aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rwxr-xr-x.gitignore9
-rw-r--r--README.md12
-rw-r--r--assets/home.html2
-rwxr-xr-xboot.php634
-rw-r--r--doc/AdvancedSearch.md6
-rw-r--r--doc/Comanche.md2
-rw-r--r--doc/Creating-Templates.md4
-rw-r--r--doc/DerivedTheme1.md3
-rw-r--r--doc/Developers.md2
-rw-r--r--doc/External-Resources.md27
-rw-r--r--doc/Features.md1
-rw-r--r--doc/Hooks.md1
-rw-r--r--doc/Install.md111
-rw-r--r--doc/Intro-for-Developers.md105
-rw-r--r--doc/Plugins.md1
-rw-r--r--doc/Privacy.md9
-rw-r--r--doc/Profiles.md36
-rw-r--r--doc/Remove-Account.md1
-rw-r--r--doc/Schema-development.md2
-rw-r--r--doc/Tags-and-Mentions.md4
-rw-r--r--doc/To-Do-Code.md60
-rw-r--r--doc/To-Do.md23
-rw-r--r--doc/Translations.md2
-rw-r--r--doc/Webpages.md4
-rw-r--r--doc/Widgets.md21
-rw-r--r--doc/Zot---A-High-Level-Overview.md4
-rw-r--r--doc/about.bb2
-rw-r--r--doc/account_basics.bb2
-rw-r--r--doc/accounts.bb2
-rw-r--r--doc/accounts_profiles_channels_basics.bb4
-rw-r--r--doc/addons.bb2
-rw-r--r--doc/addons_gnusocial.bb2
-rw-r--r--doc/api_functions.bb2
-rw-r--r--doc/api_posting.bb6
-rw-r--r--doc/bbcode.html2
-rw-r--r--doc/campaign.bb2
-rw-r--r--doc/channels.bb4
-rw-r--r--doc/checking_account_quota_usage.bb11
-rw-r--r--doc/cloud.bb2
-rw-r--r--doc/cloud_desktop_clients.bb2
-rw-r--r--doc/comanche.bb20
-rw-r--r--doc/connecting_to_channels.bb2
-rw-r--r--doc/connecting_to_channels.md1
-rw-r--r--doc/credits.bb76
-rw-r--r--doc/dav_dolphin.bb2
-rw-r--r--doc/dav_konqueror.bb3
-rw-r--r--doc/dav_mount.bb2
-rw-r--r--doc/dav_nautilus.bb2
-rw-r--r--doc/dav_nemo.bb4
-rw-r--r--doc/dav_windows.bb2
-rw-r--r--doc/de/about.bb2
-rw-r--r--doc/de/channels.bb8
-rw-r--r--doc/de/features.bb10
-rw-r--r--doc/de/main.bb29
-rw-r--r--doc/de/profiles.bb2
-rw-r--r--doc/de/registration.bb6
-rw-r--r--doc/debian_install.bb8
-rw-r--r--doc/dev-function-overview.md3
-rw-r--r--doc/developer_function_primer.bb6
-rw-r--r--doc/developers.bb5
-rw-r--r--doc/diaspora_compat.md21
-rw-r--r--doc/doco.bb33
-rw-r--r--doc/external-resource-links.bb11
-rw-r--r--doc/extra_features.bb2
-rw-r--r--doc/faq_admins.bb29
-rw-r--r--doc/faq_developers.bb5
-rw-r--r--doc/faq_members.bb15
-rw-r--r--doc/faq_users.bb14
-rw-r--r--doc/features.bb153
-rw-r--r--doc/git_for_non_developers.bb2
-rw-r--r--doc/hidden_configs.bb129
-rw-r--r--doc/history.md49
-rw-r--r--doc/html/Contact_8php.html22
-rw-r--r--doc/html/Contact_8php.js1
-rw-r--r--doc/html/Importer_8php.html129
-rw-r--r--doc/html/README_8md.html2
-rw-r--r--doc/html/RedBasicAuth_8php.html127
-rw-r--r--doc/html/RedBrowser_8php.html127
-rw-r--r--doc/html/RedDirectory_8php.html127
-rw-r--r--doc/html/RedFile_8php.html127
-rw-r--r--doc/html/account_8php.html32
-rw-r--r--doc/html/account_8php.js1
-rw-r--r--doc/html/admin_8php.html26
-rw-r--r--doc/html/annotated.html59
-rw-r--r--doc/html/annotated.js6
-rw-r--r--doc/html/apw_2php_2style_8php.html16
-rw-r--r--doc/html/auth_8php.html98
-rw-r--r--doc/html/auth_8php.js5
-rw-r--r--doc/html/bb2diaspora_8php.html40
-rw-r--r--doc/html/bb2diaspora_8php.js3
-rw-r--r--doc/html/bbcode_8php.html56
-rw-r--r--doc/html/bbcode_8php.js3
-rw-r--r--doc/html/blocks_8php.html18
-rw-r--r--doc/html/blocks_8php.js3
-rw-r--r--doc/html/boot_8php.html706
-rw-r--r--doc/html/boot_8php.js21
-rw-r--r--doc/html/chanman_8php.html29
-rw-r--r--doc/html/chanman_8php.js4
-rw-r--r--doc/html/channel_8php.html1
-rw-r--r--doc/html/classApp-members.html89
-rw-r--r--doc/html/classApp.html163
-rw-r--r--doc/html/classApp.js7
-rw-r--r--doc/html/classItem-members.html70
-rw-r--r--doc/html/classItem.html116
-rw-r--r--doc/html/classItem.js4
-rw-r--r--doc/html/classRedBasicAuth-members.html12
-rw-r--r--doc/html/classRedBasicAuth.html176
-rw-r--r--doc/html/classRedBasicAuth.js4
-rw-r--r--doc/html/classRedDirectory.html18
-rw-r--r--doc/html/classRedDirectory.pngbin773 -> 1136 bytes
-rw-r--r--doc/html/classRedMatrix_1_1Import_1_1Import-members.html132
-rw-r--r--doc/html/classRedMatrix_1_1Import_1_1Import.html447
-rw-r--r--doc/html/classRedMatrix_1_1Import_1_1Import.js18
-rw-r--r--doc/html/classRedMatrix_1_1RedDAV_1_1RedBasicAuth-members.html133
-rw-r--r--doc/html/classRedMatrix_1_1RedDAV_1_1RedBasicAuth.html519
-rw-r--r--doc/html/classRedMatrix_1_1RedDAV_1_1RedBasicAuth.js19
-rw-r--r--doc/html/classRedMatrix_1_1RedDAV_1_1RedBasicAuth.pngbin0 -> 957 bytes
-rw-r--r--doc/html/classRedMatrix_1_1RedDAV_1_1RedBrowser-members.html126
-rw-r--r--doc/html/classRedMatrix_1_1RedDAV_1_1RedBrowser.html452
-rw-r--r--doc/html/classRedMatrix_1_1RedDAV_1_1RedBrowser.js12
-rw-r--r--doc/html/classRedMatrix_1_1RedDAV_1_1RedBrowser.pngbin0 -> 876 bytes
-rw-r--r--doc/html/classRedMatrix_1_1RedDAV_1_1RedDirectory-members.html135
-rw-r--r--doc/html/classRedMatrix_1_1RedDAV_1_1RedDirectory.html642
-rw-r--r--doc/html/classRedMatrix_1_1RedDAV_1_1RedDirectory.js21
-rw-r--r--doc/html/classRedMatrix_1_1RedDAV_1_1RedDirectory.pngbin0 -> 1601 bytes
-rw-r--r--doc/html/classRedMatrix_1_1RedDAV_1_1RedFile-members.html130
-rw-r--r--doc/html/classRedMatrix_1_1RedDAV_1_1RedFile.html479
-rw-r--r--doc/html/classRedMatrix_1_1RedDAV_1_1RedFile.js16
-rw-r--r--doc/html/classRedMatrix_1_1RedDAV_1_1RedFile.pngbin0 -> 1155 bytes
-rw-r--r--doc/html/classRedmatrix_1_1Import_1_1Import-members.html132
-rw-r--r--doc/html/classRedmatrix_1_1Import_1_1Import.html407
-rw-r--r--doc/html/classRedmatrix_1_1Import_1_1Import.js18
-rw-r--r--doc/html/classdba__driver-members.html20
-rw-r--r--doc/html/classdba__driver.html289
-rw-r--r--doc/html/classdba__driver.js14
-rw-r--r--doc/html/classdba__driver.pngbin591 -> 823 bytes
-rw-r--r--doc/html/classdba__mysql-members.html20
-rw-r--r--doc/html/classdba__mysql.html49
-rw-r--r--doc/html/classdba__mysql.js1
-rw-r--r--doc/html/classdba__mysqli-members.html20
-rw-r--r--doc/html/classdba__mysqli.html49
-rw-r--r--doc/html/classdba__mysqli.js1
-rw-r--r--doc/html/classdba__postgres-members.html142
-rw-r--r--doc/html/classdba__postgres.html477
-rw-r--r--doc/html/classdba__postgres.js17
-rw-r--r--doc/html/classdba__postgres.pngbin0 -> 460 bytes
-rw-r--r--doc/html/classes.html20
-rw-r--r--doc/html/classphoto__driver.html2
-rw-r--r--doc/html/classphoto__gd.html4
-rw-r--r--doc/html/classphoto__imagick.html4
-rw-r--r--doc/html/cloud_8php.html20
-rw-r--r--doc/html/cloud_8php.js2
-rw-r--r--doc/html/comanche_8php.html4
-rw-r--r--doc/html/conversation_8php.html27
-rw-r--r--doc/html/crypto_8php.html10
-rw-r--r--doc/html/datetime_8php.html162
-rw-r--r--doc/html/datetime_8php.js6
-rw-r--r--doc/html/dba__driver_8php.html277
-rw-r--r--doc/html/dba__driver_8php.js11
-rw-r--r--doc/html/dba__postgres_8php.html120
-rw-r--r--doc/html/diaspora_8php.html50
-rw-r--r--doc/html/diaspora_8php.js7
-rw-r--r--doc/html/dimport_8php.html136
-rw-r--r--doc/html/dimport_8php.js4
-rw-r--r--doc/html/dir_0262a6a8df56a167e3761b6e5a54bb1c.html112
-rw-r--r--doc/html/dir_0262a6a8df56a167e3761b6e5a54bb1c.js4
-rw-r--r--doc/html/dir_21bc5169ff11430004758be31dcfc6c4.html3
-rw-r--r--doc/html/dir_21bc5169ff11430004758be31dcfc6c4.js3
-rw-r--r--doc/html/dir_23ec12649285f9fabf3a6b7380226c28.html2
-rw-r--r--doc/html/dir_23ec12649285f9fabf3a6b7380226c28.js1
-rw-r--r--doc/html/dir_3d9c9d0c5e9556dd3eba1e072fa6eaeb.html6
-rw-r--r--doc/html/dir_3d9c9d0c5e9556dd3eba1e072fa6eaeb.js5
-rw-r--r--doc/html/dir_4acb285a1960a920438b718da0958cf4.html112
-rw-r--r--doc/html/dir_4acb285a1960a920438b718da0958cf4.js4
-rw-r--r--doc/html/dir_65522070e0a83623cefc01ebe26a83e3.html114
-rw-r--r--doc/html/dir_65522070e0a83623cefc01ebe26a83e3.js5
-rw-r--r--doc/html/dir_6e52a2a2cd27c08b7df5e5cdb216bd77.html112
-rw-r--r--doc/html/dir_6e52a2a2cd27c08b7df5e5cdb216bd77.js4
-rw-r--r--doc/html/dir_7edbbd0f8c514efef79942dcdc21f738.html114
-rw-r--r--doc/html/dir_7edbbd0f8c514efef79942dcdc21f738.js7
-rw-r--r--doc/html/dir_8543001e5d25368a6edede3e63efb554.html6
-rw-r--r--doc/html/dir_8543001e5d25368a6edede3e63efb554.js6
-rw-r--r--doc/html/dir_9ef82eb3846cd201470898c3b6ef38cf.html114
-rw-r--r--doc/html/dir_9ef82eb3846cd201470898c3b6ef38cf.js5
-rw-r--r--doc/html/dir__fns_8php.html2
-rw-r--r--doc/html/dir_ac4f5165c8d71ebb1a1a0a168a48f3f7.html114
-rw-r--r--doc/html/dir_ac4f5165c8d71ebb1a1a0a168a48f3f7.js5
-rw-r--r--doc/html/dir_d41ce877eb409a4791b288730010abe2.html16
-rw-r--r--doc/html/dir_d41ce877eb409a4791b288730010abe2.js7
-rw-r--r--doc/html/dir_d44c64559bbebec7f509842c48db8b23.html17
-rw-r--r--doc/html/dir_d44c64559bbebec7f509842c48db8b23.js6
-rw-r--r--doc/html/dir_e7f045be8bb383d8447c6a6b84145083.html118
-rw-r--r--doc/html/dir_e7f045be8bb383d8447c6a6b84145083.js15
-rw-r--r--doc/html/dirsearch_8php.html42
-rw-r--r--doc/html/dirsearch_8php.js1
-rw-r--r--doc/html/docblox__errorchecker_8php.html2
-rw-r--r--doc/html/editblock_8php.html18
-rw-r--r--doc/html/editblock_8php.js3
-rw-r--r--doc/html/editlayout_8php.html18
-rw-r--r--doc/html/editlayout_8php.js3
-rw-r--r--doc/html/editwebpage_8php.html18
-rw-r--r--doc/html/editwebpage_8php.js3
-rw-r--r--doc/html/event_8php.html60
-rw-r--r--doc/html/event_8php.js3
-rw-r--r--doc/html/extract_8php.html6
-rw-r--r--doc/html/fbrowser_8php.html2
-rw-r--r--doc/html/features_8php.html2
-rw-r--r--doc/html/files.html472
-rw-r--r--doc/html/filestorage_8php.html6
-rw-r--r--doc/html/fixd_8php.html181
-rw-r--r--doc/html/fixd_8php.js7
-rw-r--r--doc/html/full_8php.html4
-rw-r--r--doc/html/functions.html72
-rw-r--r--doc/html/functions_0x5f.html6
-rw-r--r--doc/html/functions_0x63.html28
-rw-r--r--doc/html/functions_0x64.html2
-rw-r--r--doc/html/functions_0x65.html10
-rw-r--r--doc/html/functions_0x66.html4
-rw-r--r--doc/html/functions_0x67.html73
-rw-r--r--doc/html/functions_0x68.html2
-rw-r--r--doc/html/functions_0x69.html8
-rw-r--r--doc/html/functions_0x6c.html4
-rw-r--r--doc/html/functions_0x6e.html4
-rw-r--r--doc/html/functions_0x6f.html4
-rw-r--r--doc/html/functions_0x70.html2
-rw-r--r--doc/html/functions_0x71.html7
-rw-r--r--doc/html/functions_0x72.html11
-rw-r--r--doc/html/functions_0x73.html30
-rw-r--r--doc/html/functions_0x75.html13
-rw-r--r--doc/html/functions_0x76.html2
-rw-r--r--doc/html/functions_func.html6
-rw-r--r--doc/html/functions_func_0x63.html28
-rw-r--r--doc/html/functions_func_0x64.html2
-rw-r--r--doc/html/functions_func_0x65.html10
-rw-r--r--doc/html/functions_func_0x66.html4
-rw-r--r--doc/html/functions_func_0x67.html73
-rw-r--r--doc/html/functions_func_0x68.html2
-rw-r--r--doc/html/functions_func_0x6c.html4
-rw-r--r--doc/html/functions_func_0x6f.html4
-rw-r--r--doc/html/functions_func_0x70.html2
-rw-r--r--doc/html/functions_func_0x71.html7
-rw-r--r--doc/html/functions_func_0x72.html11
-rw-r--r--doc/html/functions_func_0x73.html30
-rw-r--r--doc/html/functions_func_0x75.html9
-rw-r--r--doc/html/functions_func_0x76.html2
-rw-r--r--doc/html/functions_vars.html99
-rw-r--r--doc/html/globals.html28
-rw-r--r--doc/html/globals_0x61.html12
-rw-r--r--doc/html/globals_0x62.html33
-rw-r--r--doc/html/globals_0x63.html11
-rw-r--r--doc/html/globals_0x64.html53
-rw-r--r--doc/html/globals_0x65.html18
-rw-r--r--doc/html/globals_0x66.html9
-rw-r--r--doc/html/globals_0x67.html12
-rw-r--r--doc/html/globals_0x68.html10
-rw-r--r--doc/html/globals_0x69.html21
-rw-r--r--doc/html/globals_0x6c.html21
-rw-r--r--doc/html/globals_0x6d.html5
-rw-r--r--doc/html/globals_0x6e.html12
-rw-r--r--doc/html/globals_0x70.html71
-rw-r--r--doc/html/globals_0x72.html54
-rw-r--r--doc/html/globals_0x73.html14
-rw-r--r--doc/html/globals_0x74.html10
-rw-r--r--doc/html/globals_0x75.html18
-rw-r--r--doc/html/globals_0x76.html33
-rw-r--r--doc/html/globals_0x77.html15
-rw-r--r--doc/html/globals_0x78.html13
-rw-r--r--doc/html/globals_0x7a.html13
-rw-r--r--doc/html/globals_func_0x61.html12
-rw-r--r--doc/html/globals_func_0x62.html33
-rw-r--r--doc/html/globals_func_0x63.html11
-rw-r--r--doc/html/globals_func_0x64.html47
-rw-r--r--doc/html/globals_func_0x65.html14
-rw-r--r--doc/html/globals_func_0x66.html9
-rw-r--r--doc/html/globals_func_0x67.html12
-rw-r--r--doc/html/globals_func_0x68.html10
-rw-r--r--doc/html/globals_func_0x69.html11
-rw-r--r--doc/html/globals_func_0x6c.html21
-rw-r--r--doc/html/globals_func_0x6d.html5
-rw-r--r--doc/html/globals_func_0x6e.html6
-rw-r--r--doc/html/globals_func_0x70.html56
-rw-r--r--doc/html/globals_func_0x72.html33
-rw-r--r--doc/html/globals_func_0x73.html14
-rw-r--r--doc/html/globals_func_0x74.html10
-rw-r--r--doc/html/globals_func_0x75.html18
-rw-r--r--doc/html/globals_func_0x77.html15
-rw-r--r--doc/html/globals_func_0x78.html10
-rw-r--r--doc/html/globals_func_0x7a.html13
-rw-r--r--doc/html/globals_vars.html29
-rw-r--r--doc/html/globals_vars.js1
-rw-r--r--doc/html/globals_vars_0x61.html1
-rw-r--r--doc/html/globals_vars_0x63.html1
-rw-r--r--doc/html/globals_vars_0x64.html7
-rw-r--r--doc/html/globals_vars_0x65.html3
-rw-r--r--doc/html/globals_vars_0x66.html1
-rw-r--r--doc/html/globals_vars_0x67.html1
-rw-r--r--doc/html/globals_vars_0x68.html1
-rw-r--r--doc/html/globals_vars_0x69.html4
-rw-r--r--doc/html/globals_vars_0x6a.html1
-rw-r--r--doc/html/globals_vars_0x6b.html1
-rw-r--r--doc/html/globals_vars_0x6c.html1
-rw-r--r--doc/html/globals_vars_0x6d.html1
-rw-r--r--doc/html/globals_vars_0x6e.html7
-rw-r--r--doc/html/globals_vars_0x70.html16
-rw-r--r--doc/html/globals_vars_0x72.html22
-rw-r--r--doc/html/globals_vars_0x73.html1
-rw-r--r--doc/html/globals_vars_0x74.html1
-rw-r--r--doc/html/globals_vars_0x75.html1
-rw-r--r--doc/html/globals_vars_0x76.html179
-rw-r--r--doc/html/globals_vars_0x77.html1
-rw-r--r--doc/html/globals_vars_0x78.html4
-rw-r--r--doc/html/globals_vars_0x7a.html1
-rw-r--r--doc/html/hierarchy.html70
-rw-r--r--doc/html/hierarchy.js27
-rw-r--r--doc/html/hivenet_2php_2style_8php.html112
-rw-r--r--doc/html/hivenet_2php_2theme_8php.html144
-rw-r--r--doc/html/hivenet_2php_2theme_8php.js4
-rw-r--r--doc/html/home_8php.html26
-rw-r--r--doc/html/home_8php.js2
-rw-r--r--doc/html/html2bbcode_8php.html2
-rw-r--r--doc/html/html2plain_8php.html2
-rw-r--r--doc/html/hubloc_8php.html79
-rw-r--r--doc/html/hubloc_8php.js6
-rw-r--r--doc/html/identity_8php.html121
-rw-r--r--doc/html/identity_8php.js5
-rw-r--r--doc/html/impel_8php.html137
-rw-r--r--doc/html/impel_8php.js4
-rw-r--r--doc/html/include_2api_8php.html86
-rw-r--r--doc/html/include_2api_8php.js3
-rw-r--r--doc/html/include_2attach_8php.html48
-rw-r--r--doc/html/include_2chat_8php.html22
-rw-r--r--doc/html/include_2chat_8php.js3
-rw-r--r--doc/html/include_2config_8php.html238
-rw-r--r--doc/html/include_2config_8php.js4
-rw-r--r--doc/html/include_2follow_8php.html2
-rw-r--r--doc/html/include_2group_8php.html6
-rw-r--r--doc/html/include_2menu_8php.html36
-rw-r--r--doc/html/include_2menu_8php.js1
-rw-r--r--doc/html/include_2network_8php.html67
-rw-r--r--doc/html/include_2network_8php.js3
-rw-r--r--doc/html/include_2photos_8php.html4
-rw-r--r--doc/html/item_8php.html66
-rw-r--r--doc/html/item_8php.js1
-rw-r--r--doc/html/items_8php.html118
-rw-r--r--doc/html/items_8php.js9
-rw-r--r--doc/html/language_8php.html6
-rw-r--r--doc/html/layouts_8php.html18
-rw-r--r--doc/html/layouts_8php.js3
-rw-r--r--doc/html/locs_8php.html155
-rw-r--r--doc/html/locs_8php.js5
-rw-r--r--doc/html/mod_2network_8php.html1
-rw-r--r--doc/html/namespaceRedMatrix.html127
-rw-r--r--doc/html/namespaceRedMatrix.js5
-rw-r--r--doc/html/namespaceRedMatrix_1_1Import.html120
-rw-r--r--doc/html/namespaceRedMatrix_1_1Import.js4
-rw-r--r--doc/html/namespaceRedMatrix_1_1RedDAV.html130
-rw-r--r--doc/html/namespaceRedMatrix_1_1RedDAV.js7
-rw-r--r--doc/html/namespaceRedmatrix_1_1Import.html120
-rw-r--r--doc/html/namespaceRedmatrix_1_1Import.js4
-rw-r--r--doc/html/namespaces.html9
-rw-r--r--doc/html/namespaces.js1
-rw-r--r--doc/html/navtree.js18
-rw-r--r--doc/html/navtreeindex0.js378
-rw-r--r--doc/html/navtreeindex1.js454
-rw-r--r--doc/html/navtreeindex2.js500
-rw-r--r--doc/html/navtreeindex3.js490
-rw-r--r--doc/html/navtreeindex4.js384
-rw-r--r--doc/html/navtreeindex5.js500
-rw-r--r--doc/html/navtreeindex6.js438
-rw-r--r--doc/html/navtreeindex7.js474
-rw-r--r--doc/html/navtreeindex8.js500
-rw-r--r--doc/html/navtreeindex9.js223
-rw-r--r--doc/html/notifier_8php.html1
-rw-r--r--doc/html/p_8php.html137
-rw-r--r--doc/html/p_8php.js4
-rw-r--r--doc/html/permissions_8php.html70
-rw-r--r--doc/html/permissions_8php.js1
-rw-r--r--doc/html/photo__driver_8php.html6
-rw-r--r--doc/html/php2po_8php.html6
-rw-r--r--doc/html/php_2default_8php.html4
-rw-r--r--doc/html/php_2theme__init_8php.html2
-rw-r--r--doc/html/ping_8php.html2
-rw-r--r--doc/html/plugin_8php.html10
-rw-r--r--doc/html/post_8php.html2
-rw-r--r--doc/html/redable_8php.html4
-rw-r--r--doc/html/redbasic_2php_2theme_8php.html2
-rw-r--r--doc/html/reddav_8php.html62
-rw-r--r--doc/html/reddav_8php.js4
-rw-r--r--doc/html/refimport_8php.html381
-rw-r--r--doc/html/refimport_8php.js16
-rw-r--r--doc/html/search/all_24.js54
-rw-r--r--doc/html/search/all_5f.js2
-rw-r--r--doc/html/search/all_61.js6
-rw-r--r--doc/html/search/all_62.js13
-rw-r--r--doc/html/search/all_63.js24
-rw-r--r--doc/html/search/all_64.js33
-rw-r--r--doc/html/search/all_65.js12
-rw-r--r--doc/html/search/all_66.js8
-rw-r--r--doc/html/search/all_67.js41
-rw-r--r--doc/html/search/all_68.js8
-rw-r--r--doc/html/search/all_69.js10
-rw-r--r--doc/html/search/all_6c.js14
-rw-r--r--doc/html/search/all_6d.js3
-rw-r--r--doc/html/search/all_6e.js10
-rw-r--r--doc/html/search/all_6f.js1
-rw-r--r--doc/html/search/all_70.js31
-rw-r--r--doc/html/search/all_71.js3
-rw-r--r--doc/html/search/all_72.js38
-rw-r--r--doc/html/search/all_73.js29
-rw-r--r--doc/html/search/all_74.js18
-rw-r--r--doc/html/search/all_75.js12
-rw-r--r--doc/html/search/all_76.js13
-rw-r--r--doc/html/search/all_77.js7
-rw-r--r--doc/html/search/all_78.js7
-rw-r--r--doc/html/search/all_7a.js7
-rw-r--r--doc/html/search/classes_64.js3
-rw-r--r--doc/html/search/classes_69.js1
-rw-r--r--doc/html/search/classes_72.js8
-rw-r--r--doc/html/search/files_63.js6
-rw-r--r--doc/html/search/files_64.js5
-rw-r--r--doc/html/search/files_66.js3
-rw-r--r--doc/html/search/files_69.js2
-rw-r--r--doc/html/search/files_6c.js1
-rw-r--r--doc/html/search/files_70.js6
-rw-r--r--doc/html/search/files_72.js8
-rw-r--r--doc/html/search/files_73.js10
-rw-r--r--doc/html/search/files_74.js12
-rw-r--r--doc/html/search/files_75.js1
-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.js13
-rw-r--r--doc/html/search/functions_63.js20
-rw-r--r--doc/html/search/functions_64.js23
-rw-r--r--doc/html/search/functions_65.js12
-rw-r--r--doc/html/search/functions_66.js7
-rw-r--r--doc/html/search/functions_67.js41
-rw-r--r--doc/html/search/functions_68.js10
-rw-r--r--doc/html/search/functions_69.js5
-rw-r--r--doc/html/search/functions_6c.js13
-rw-r--r--doc/html/search/functions_6d.js3
-rw-r--r--doc/html/search/functions_6e.js2
-rw-r--r--doc/html/search/functions_6f.js1
-rw-r--r--doc/html/search/functions_70.js22
-rw-r--r--doc/html/search/functions_71.js3
-rw-r--r--doc/html/search/functions_72.js12
-rw-r--r--doc/html/search/functions_73.js19
-rw-r--r--doc/html/search/functions_74.js8
-rw-r--r--doc/html/search/functions_75.js10
-rw-r--r--doc/html/search/functions_76.js2
-rw-r--r--doc/html/search/functions_77.js7
-rw-r--r--doc/html/search/functions_78.js6
-rw-r--r--doc/html/search/functions_7a.js7
-rw-r--r--doc/html/search/namespaces_72.html26
-rw-r--r--doc/html/search/namespaces_72.js6
-rw-r--r--doc/html/search/search.js4
-rw-r--r--doc/html/search/variables_24.js54
-rw-r--r--doc/html/search/variables_64.js2
-rw-r--r--doc/html/search/variables_65.js2
-rw-r--r--doc/html/search/variables_69.js2
-rw-r--r--doc/html/search/variables_6e.js6
-rw-r--r--doc/html/search/variables_70.js7
-rw-r--r--doc/html/search/variables_72.js7
-rw-r--r--doc/html/search/variables_75.js3
-rw-r--r--doc/html/search/variables_76.html26
-rw-r--r--doc/html/search/variables_76.js14
-rw-r--r--doc/html/search/variables_78.js1
-rw-r--r--doc/html/security_8php.html61
-rw-r--r--doc/html/service__limits_8php.html137
-rw-r--r--doc/html/service__limits_8php.js4
-rw-r--r--doc/html/setup_8php.html2
-rw-r--r--doc/html/simple__black__on__white_8php.html112
-rw-r--r--doc/html/simple__green__on__black_8php.html112
-rw-r--r--doc/html/simple__white__on__black_8php.html112
-rw-r--r--doc/html/socgraph_8php.html2
-rw-r--r--doc/html/statistics__fns_8php.html195
-rw-r--r--doc/html/statistics__fns_8php.js7
-rw-r--r--doc/html/stumble_2php_2style_8php.html112
-rw-r--r--doc/html/stumble_2php_2theme_8php.html144
-rw-r--r--doc/html/stumble_2php_2theme_8php.js4
-rw-r--r--doc/html/suckerberg_2php_2style_8php.html112
-rw-r--r--doc/html/suckerberg_2php_2theme_8php.html144
-rw-r--r--doc/html/suckerberg_2php_2theme_8php.js4
-rw-r--r--doc/html/taxonomy_8php.html114
-rw-r--r--doc/html/taxonomy_8php.js4
-rw-r--r--doc/html/text_8php.html238
-rw-r--r--doc/html/text_8php.js6
-rw-r--r--doc/html/theme_2mytheme_2php_2default_8php.html4
-rw-r--r--doc/html/todo.html24
-rw-r--r--doc/html/typo_8php.html2
-rw-r--r--doc/html/typohelper_8php.html4
-rw-r--r--doc/html/uexport_8php.html18
-rw-r--r--doc/html/uexport_8php.js1
-rw-r--r--doc/html/update__home_8php.html137
-rw-r--r--doc/html/update__home_8php.js4
-rw-r--r--doc/html/webpages_8php.html18
-rw-r--r--doc/html/webpages_8php.js3
-rw-r--r--doc/html/widgets_8php.html62
-rw-r--r--doc/html/widgets_8php.js3
-rw-r--r--doc/html/zot_8php.html163
-rw-r--r--doc/html/zot_8php.js8
-rw-r--r--doc/install.bb105
-rw-r--r--doc/install/sample-lighttpd.conf5
-rw-r--r--doc/install/sample-nginx.conf8
-rw-r--r--doc/intro_for_developers.bb37
-rw-r--r--doc/macros/addons_footer.bb2
-rw-r--r--doc/macros/cloud_footer.bb2
-rw-r--r--doc/macros/de/addons_footer.bb2
-rw-r--r--doc/macros/de/cloud_footer.bb2
-rw-r--r--doc/macros/de/main_footer.bb1
-rw-r--r--doc/macros/de/troubleshooting_footer.bb2
-rw-r--r--doc/macros/main_footer.bb1
-rw-r--r--doc/macros/troubleshooting_footer.bb2
-rw-r--r--doc/main.bb46
-rw-r--r--doc/permissions.bb4
-rw-r--r--doc/plugins.bb7
-rw-r--r--doc/problems-following-an-update.bb3
-rw-r--r--doc/profiles.bb2
-rw-r--r--doc/red2pi.bb6
-rw-r--r--doc/registration.bb7
-rw-r--r--doc/remove_account.bb24
-rw-r--r--doc/roadmap.bb49
-rw-r--r--doc/roles.md66
-rw-r--r--doc/schema_development.bb2
-rw-r--r--doc/sql_conventions.bb87
-rw-r--r--doc/tags_and_mentions.bb3
-rw-r--r--doc/to_do_code.bb39
-rw-r--r--doc/to_do_doco.md2
-rw-r--r--doc/troubleshooting.bb4
-rw-r--r--doc/webpages.bb3
-rw-r--r--doc/what_is_zot.bb2
-rw-r--r--doc/zot.md2
-rw-r--r--doc/zot_structures.md3
-rw-r--r--images/default_profile_photos/alpha/175.pngbin0 -> 3817 bytes
-rw-r--r--images/default_profile_photos/alpha/48.pngbin0 -> 3541 bytes
-rw-r--r--images/default_profile_photos/alpha/80.pngbin0 -> 3598 bytes
-rw-r--r--images/default_profile_photos/black_avatar_1/175.pngbin0 -> 6420 bytes
-rw-r--r--images/default_profile_photos/black_avatar_1/48.pngbin0 -> 1763 bytes
-rw-r--r--images/default_profile_photos/black_avatar_1/80.pngbin0 -> 2986 bytes
-rw-r--r--images/default_profile_photos/black_avatar_2/175.pngbin0 -> 5802 bytes
-rw-r--r--images/default_profile_photos/black_avatar_2/48.pngbin0 -> 1516 bytes
-rw-r--r--images/default_profile_photos/black_avatar_2/80.pngbin0 -> 2598 bytes
-rw-r--r--images/default_profile_photos/blank/175.pngbin0 -> 3817 bytes
-rw-r--r--images/default_profile_photos/blank/48.pngbin0 -> 3540 bytes
-rw-r--r--images/default_profile_photos/blank/80.pngbin0 -> 3599 bytes
-rw-r--r--images/default_profile_photos/rainbow_man/175.pngbin0 -> 57998 bytes
-rw-r--r--images/default_profile_photos/rainbow_man/48.pngbin0 -> 17365 bytes
-rw-r--r--images/default_profile_photos/rainbow_man/80.pngbin0 -> 23715 bytes
-rw-r--r--images/default_profile_photos/rainbow_man_trans/175.pngbin0 -> 71198 bytes
-rw-r--r--images/default_profile_photos/rainbow_man_trans/48.pngbin0 -> 18090 bytes
-rw-r--r--images/default_profile_photos/rainbow_man_trans/80.pngbin0 -> 26091 bytes
-rw-r--r--images/default_profile_photos/red_avatar/175.pngbin0 -> 4621 bytes
-rw-r--r--images/default_profile_photos/red_avatar/48.pngbin0 -> 1724 bytes
-rw-r--r--images/default_profile_photos/red_avatar/80.pngbin0 -> 2660 bytes
-rw-r--r--images/default_profile_photos/red_koala/175.pngbin0 -> 20722 bytes
-rw-r--r--images/default_profile_photos/red_koala/48.pngbin0 -> 11364 bytes
-rw-r--r--images/default_profile_photos/red_koala/80.pngbin0 -> 14503 bytes
-rw-r--r--images/default_profile_photos/red_koala_trans/175.pngbin0 -> 25546 bytes
-rw-r--r--images/default_profile_photos/red_koala_trans/48.pngbin0 -> 13983 bytes
-rw-r--r--images/default_profile_photos/red_koala_trans/80.pngbin0 -> 18769 bytes
-rw-r--r--images/default_profile_photos/redmatrix_logo_smiley/175.pngbin0 -> 3834 bytes
-rw-r--r--images/default_profile_photos/redmatrix_logo_smiley/48.pngbin0 -> 1205 bytes
-rw-r--r--images/default_profile_photos/redmatrix_logo_smiley/80.pngbin0 -> 1631 bytes
-rw-r--r--images/redmatrix_logo.svg85
-rw-r--r--include/Contact.php132
-rw-r--r--include/ConversationObject.php20
-rw-r--r--include/Import/Importer.php82
-rw-r--r--include/Import/refimport.php280
-rw-r--r--include/ItemObject.php101
-rw-r--r--include/RedDAV/RedBasicAuth.php212
-rw-r--r--include/RedDAV/RedBrowser.php374
-rw-r--r--include/RedDAV/RedDirectory.php462
-rw-r--r--include/RedDAV/RedFile.php279
-rw-r--r--include/account.php61
-rw-r--r--include/acl_selectors.php5
-rw-r--r--include/api.php82
-rw-r--r--include/apps.php9
-rw-r--r--include/attach.php271
-rw-r--r--include/auth.php160
-rw-r--r--include/bb2diaspora.php114
-rw-r--r--include/bbcode.php53
-rw-r--r--include/cache.php2
-rw-r--r--include/chat.php24
-rw-r--r--include/cli_startup.php10
-rw-r--r--include/config.php384
-rw-r--r--include/contact_widgets.php3
-rw-r--r--include/conversation.php308
-rw-r--r--include/datetime.php213
-rwxr-xr-xinclude/dba/dba_driver.php302
-rwxr-xr-xinclude/dba/dba_mysql.php4
-rwxr-xr-xinclude/dba/dba_mysqli.php6
-rw-r--r--include/dba/dba_postgres.php116
-rw-r--r--include/deliver.php36
-rwxr-xr-xinclude/diaspora.php567
-rw-r--r--include/dir_fns.php46
-rw-r--r--include/directory.php4
-rw-r--r--include/enotify.php4
-rw-r--r--include/event.php94
-rw-r--r--include/expire.php10
-rw-r--r--include/externals.php15
-rw-r--r--include/features.php5
-rw-r--r--include/fixd.php33
-rw-r--r--include/follow.php35
-rw-r--r--include/group.php12
-rw-r--r--include/html2bbcode.php7
-rw-r--r--include/hubloc.php218
-rw-r--r--include/identity.php253
-rwxr-xr-xinclude/items.php473
-rw-r--r--include/js_strings.php1
-rw-r--r--include/language.php2
-rw-r--r--include/menu.php16
-rw-r--r--include/message.php73
-rw-r--r--include/nav.php87
-rw-r--r--include/network.php95
-rw-r--r--include/notifier.php121
-rwxr-xr-xinclude/oembed.php22
-rw-r--r--include/onedirsync.php26
-rw-r--r--include/onepoll.php40
-rw-r--r--include/permissions.php456
-rw-r--r--include/photo/photo_driver.php77
-rw-r--r--include/photo/photo_gd.php2
-rw-r--r--include/photos.php12
-rwxr-xr-xinclude/plugin.php7
-rw-r--r--include/poller.php105
-rw-r--r--include/queue.php24
-rw-r--r--include/queue_fn.php4
-rw-r--r--include/reddav.php1214
-rw-r--r--include/security.php151
-rw-r--r--include/session.php11
-rw-r--r--include/socgraph.php57
-rw-r--r--include/statistics_fns.php79
-rw-r--r--include/taxonomy.php46
-rw-r--r--include/text.php847
-rw-r--r--include/widgets.php304
-rw-r--r--include/zot.php878
-rwxr-xr-xindex.php53
-rw-r--r--install/INSTALL.txt125
-rw-r--r--install/database-w-defaults-v1131.diff1914
-rw-r--r--install/migrate-mypg.php357
-rw-r--r--install/migrate_mypg_fixseq.sql55
-rw-r--r--install/schema_mysql.sql (renamed from install/database.sql)743
-rw-r--r--install/schema_postgres.sql1190
-rw-r--r--install/update.php29
-rw-r--r--library/Smarty/README4
-rw-r--r--library/Smarty/SMARTY_3.1_NOTES.txt2
-rw-r--r--library/Smarty/change_log.txt357
-rw-r--r--library/Smarty/demo/index.php25
-rw-r--r--library/Smarty/demo/plugins/cacheresource.apc.php28
-rw-r--r--library/Smarty/demo/plugins/cacheresource.memcache.php36
-rw-r--r--library/Smarty/demo/plugins/cacheresource.mysql.php96
-rw-r--r--library/Smarty/demo/plugins/resource.extendsall.php32
-rw-r--r--library/Smarty/demo/plugins/resource.mysql.php35
-rw-r--r--library/Smarty/demo/plugins/resource.mysqls.php28
-rw-r--r--library/Smarty/demo/templates/header.tpl2
-rw-r--r--library/Smarty/demo/templates/index.tpl91
-rw-r--r--library/Smarty/libs/Smarty.class.php513
-rw-r--r--library/Smarty/libs/SmartyBC.class.php927
-rw-r--r--library/Smarty/libs/debug.tpl256
-rw-r--r--library/Smarty/libs/plugins/block.textformat.php21
-rw-r--r--library/Smarty/libs/plugins/function.counter.php38
-rw-r--r--library/Smarty/libs/plugins/function.cycle.php47
-rw-r--r--library/Smarty/libs/plugins/function.fetch.php117
-rw-r--r--library/Smarty/libs/plugins/function.html_checkboxes.php91
-rw-r--r--library/Smarty/libs/plugins/function.html_image.php68
-rw-r--r--library/Smarty/libs/plugins/function.html_options.php84
-rw-r--r--library/Smarty/libs/plugins/function.html_radios.php87
-rw-r--r--library/Smarty/libs/plugins/function.html_select_date.php157
-rw-r--r--library/Smarty/libs/plugins/function.html_select_time.php72
-rw-r--r--library/Smarty/libs/plugins/function.html_table.php45
-rw-r--r--library/Smarty/libs/plugins/function.mailto.php45
-rw-r--r--library/Smarty/libs/plugins/function.math.php54
-rw-r--r--library/Smarty/libs/plugins/modifier.capitalize.php59
-rw-r--r--library/Smarty/libs/plugins/modifier.date_format.php36
-rw-r--r--library/Smarty/libs/plugins/modifier.debug_print_var.php61
-rw-r--r--library/Smarty/libs/plugins/modifier.escape.php40
-rw-r--r--library/Smarty/libs/plugins/modifier.regex_replace.php30
-rw-r--r--library/Smarty/libs/plugins/modifier.replace.php23
-rw-r--r--library/Smarty/libs/plugins/modifier.spacify.php18
-rw-r--r--library/Smarty/libs/plugins/modifier.truncate.php33
-rw-r--r--library/Smarty/libs/plugins/modifiercompiler.cat.php59
-rw-r--r--library/Smarty/libs/plugins/modifiercompiler.count_characters.php65
-rw-r--r--library/Smarty/libs/plugins/modifiercompiler.count_paragraphs.php55
-rw-r--r--library/Smarty/libs/plugins/modifiercompiler.count_sentences.php55
-rw-r--r--library/Smarty/libs/plugins/modifiercompiler.count_words.php63
-rw-r--r--library/Smarty/libs/plugins/modifiercompiler.default.php70
-rw-r--r--library/Smarty/libs/plugins/modifiercompiler.escape.php251
-rw-r--r--library/Smarty/libs/plugins/modifiercompiler.from_charset.php67
-rw-r--r--library/Smarty/libs/plugins/modifiercompiler.indent.php65
-rw-r--r--library/Smarty/libs/plugins/modifiercompiler.lower.php62
-rw-r--r--library/Smarty/libs/plugins/modifiercompiler.noprint.php46
-rw-r--r--library/Smarty/libs/plugins/modifiercompiler.string_format.php51
-rw-r--r--library/Smarty/libs/plugins/modifiercompiler.strip.php66
-rw-r--r--library/Smarty/libs/plugins/modifiercompiler.strip_tags.php62
-rw-r--r--library/Smarty/libs/plugins/modifiercompiler.to_charset.php67
-rw-r--r--library/Smarty/libs/plugins/modifiercompiler.unescape.php101
-rw-r--r--library/Smarty/libs/plugins/modifiercompiler.upper.php59
-rw-r--r--library/Smarty/libs/plugins/modifiercompiler.wordwrap.php93
-rw-r--r--library/Smarty/libs/plugins/outputfilter.trimwhitespace.php34
-rw-r--r--library/Smarty/libs/plugins/shared.escape_special_chars.php26
-rw-r--r--library/Smarty/libs/plugins/shared.literal_compiler_param.php8
-rw-r--r--library/Smarty/libs/plugins/shared.make_timestamp.php15
-rw-r--r--library/Smarty/libs/plugins/shared.mb_str_replace.php20
-rw-r--r--library/Smarty/libs/plugins/shared.mb_unicode.php22
-rw-r--r--library/Smarty/libs/plugins/shared.mb_wordwrap.php60
-rw-r--r--library/Smarty/libs/plugins/variablefilter.htmlspecialchars.php10
-rw-r--r--library/Smarty/libs/sysplugins/smarty_cacheresource.php337
-rw-r--r--library/Smarty/libs/sysplugins/smarty_cacheresource_custom.php159
-rw-r--r--library/Smarty/libs/sysplugins/smarty_cacheresource_keyvaluestore.php228
-rw-r--r--library/Smarty/libs/sysplugins/smarty_config_source.php37
-rw-r--r--library/Smarty/libs/sysplugins/smarty_internal_cacheresource_file.php91
-rw-r--r--library/Smarty/libs/sysplugins/smarty_internal_compile_append.php21
-rw-r--r--library/Smarty/libs/sysplugins/smarty_internal_compile_assign.php30
-rw-r--r--library/Smarty/libs/sysplugins/smarty_internal_compile_block.php433
-rw-r--r--library/Smarty/libs/sysplugins/smarty_internal_compile_break.php152
-rw-r--r--library/Smarty/libs/sysplugins/smarty_internal_compile_call.php25
-rw-r--r--library/Smarty/libs/sysplugins/smarty_internal_compile_capture.php32
-rw-r--r--library/Smarty/libs/sysplugins/smarty_internal_compile_config_load.php31
-rw-r--r--library/Smarty/libs/sysplugins/smarty_internal_compile_continue.php153
-rw-r--r--library/Smarty/libs/sysplugins/smarty_internal_compile_debug.php20
-rw-r--r--library/Smarty/libs/sysplugins/smarty_internal_compile_eval.php26
-rw-r--r--library/Smarty/libs/sysplugins/smarty_internal_compile_extends.php155
-rw-r--r--library/Smarty/libs/sysplugins/smarty_internal_compile_for.php70
-rw-r--r--library/Smarty/libs/sysplugins/smarty_internal_compile_foreach.php76
-rw-r--r--library/Smarty/libs/sysplugins/smarty_internal_compile_function.php65
-rw-r--r--library/Smarty/libs/sysplugins/smarty_internal_compile_if.php185
-rw-r--r--library/Smarty/libs/sysplugins/smarty_internal_compile_include.php246
-rw-r--r--library/Smarty/libs/sysplugins/smarty_internal_compile_include_php.php29
-rw-r--r--library/Smarty/libs/sysplugins/smarty_internal_compile_insert.php26
-rw-r--r--library/Smarty/libs/sysplugins/smarty_internal_compile_ldelim.php22
-rw-r--r--library/Smarty/libs/sysplugins/smarty_internal_compile_nocache.php37
-rw-r--r--library/Smarty/libs/sysplugins/smarty_internal_compile_private_block_plugin.php38
-rw-r--r--library/Smarty/libs/sysplugins/smarty_internal_compile_private_function_plugin.php26
-rw-r--r--library/Smarty/libs/sysplugins/smarty_internal_compile_private_modifier.php279
-rw-r--r--library/Smarty/libs/sysplugins/smarty_internal_compile_private_object_block_function.php30
-rw-r--r--library/Smarty/libs/sysplugins/smarty_internal_compile_private_object_function.php59
-rw-r--r--library/Smarty/libs/sysplugins/smarty_internal_compile_private_print_expression.php99
-rw-r--r--library/Smarty/libs/sysplugins/smarty_internal_compile_private_registered_block.php224
-rw-r--r--library/Smarty/libs/sysplugins/smarty_internal_compile_private_registered_function.php160
-rw-r--r--library/Smarty/libs/sysplugins/smarty_internal_compile_private_special_variable.php39
-rw-r--r--library/Smarty/libs/sysplugins/smarty_internal_compile_rdelim.php22
-rw-r--r--library/Smarty/libs/sysplugins/smarty_internal_compile_section.php81
-rw-r--r--library/Smarty/libs/sysplugins/smarty_internal_compile_setfilter.php142
-rw-r--r--library/Smarty/libs/sysplugins/smarty_internal_compile_while.php43
-rw-r--r--library/Smarty/libs/sysplugins/smarty_internal_compilebase.php48
-rw-r--r--library/Smarty/libs/sysplugins/smarty_internal_config.php75
-rw-r--r--library/Smarty/libs/sysplugins/smarty_internal_config_file_compiler.php51
-rw-r--r--library/Smarty/libs/sysplugins/smarty_internal_configfilelexer.php454
-rw-r--r--library/Smarty/libs/sysplugins/smarty_internal_configfileparser.php875
-rw-r--r--library/Smarty/libs/sysplugins/smarty_internal_data.php173
-rw-r--r--library/Smarty/libs/sysplugins/smarty_internal_debug.php78
-rw-r--r--library/Smarty/libs/sysplugins/smarty_internal_filter_handler.php27
-rw-r--r--library/Smarty/libs/sysplugins/smarty_internal_function_call_handler.php107
-rw-r--r--library/Smarty/libs/sysplugins/smarty_internal_get_include_path.php94
-rw-r--r--library/Smarty/libs/sysplugins/smarty_internal_nocache_insert.php104
-rw-r--r--library/Smarty/libs/sysplugins/smarty_internal_parsetree.php756
-rw-r--r--library/Smarty/libs/sysplugins/smarty_internal_resource_eval.php190
-rw-r--r--library/Smarty/libs/sysplugins/smarty_internal_resource_extends.php141
-rw-r--r--library/Smarty/libs/sysplugins/smarty_internal_resource_file.php33
-rw-r--r--library/Smarty/libs/sysplugins/smarty_internal_resource_php.php51
-rw-r--r--library/Smarty/libs/sysplugins/smarty_internal_resource_registered.php45
-rw-r--r--library/Smarty/libs/sysplugins/smarty_internal_resource_stream.php39
-rw-r--r--library/Smarty/libs/sysplugins/smarty_internal_resource_string.php55
-rw-r--r--library/Smarty/libs/sysplugins/smarty_internal_smartytemplatecompiler.php43
-rw-r--r--library/Smarty/libs/sysplugins/smarty_internal_template.php200
-rw-r--r--library/Smarty/libs/sysplugins/smarty_internal_templatebase.php297
-rw-r--r--library/Smarty/libs/sysplugins/smarty_internal_templatecompilerbase.php1484
-rw-r--r--library/Smarty/libs/sysplugins/smarty_internal_templatelexer.php1572
-rw-r--r--library/Smarty/libs/sysplugins/smarty_internal_templateparser.php6678
-rw-r--r--library/Smarty/libs/sysplugins/smarty_internal_utility.php407
-rw-r--r--library/Smarty/libs/sysplugins/smarty_internal_write_file.php32
-rw-r--r--library/Smarty/libs/sysplugins/smarty_resource.php304
-rw-r--r--library/Smarty/libs/sysplugins/smarty_resource_custom.php39
-rw-r--r--library/Smarty/libs/sysplugins/smarty_resource_recompiled.php19
-rw-r--r--library/Smarty/libs/sysplugins/smarty_resource_uncompiled.php23
-rw-r--r--library/Smarty/libs/sysplugins/smarty_security.php147
-rw-r--r--library/blueimp_upload/.gitignore3
-rw-r--r--library/blueimp_upload/.jshintrc81
-rw-r--r--library/blueimp_upload/CONTRIBUTING.md42
-rw-r--r--library/blueimp_upload/Gruntfile.js37
-rw-r--r--library/blueimp_upload/README.md123
-rw-r--r--library/blueimp_upload/angularjs.html211
-rw-r--r--library/blueimp_upload/basic-plus.html226
-rw-r--r--library/blueimp_upload/basic.html136
-rw-r--r--library/blueimp_upload/blueimp-file-upload.jquery.json50
-rw-r--r--library/blueimp_upload/bower.json85
-rw-r--r--library/blueimp_upload/cors/postmessage.html75
-rw-r--r--library/blueimp_upload/cors/result.html24
-rw-r--r--library/blueimp_upload/css/demo-ie8.css21
-rw-r--r--library/blueimp_upload/css/demo.css67
-rw-r--r--library/blueimp_upload/css/jquery.fileupload-noscript.css22
-rw-r--r--library/blueimp_upload/css/jquery.fileupload-ui-noscript.css17
-rw-r--r--library/blueimp_upload/css/jquery.fileupload-ui.css57
-rw-r--r--library/blueimp_upload/css/jquery.fileupload.css36
-rw-r--r--library/blueimp_upload/css/style.css15
-rw-r--r--library/blueimp_upload/img/loading.gifbin0 -> 3897 bytes
-rw-r--r--library/blueimp_upload/img/progressbar.gifbin0 -> 3323 bytes
-rw-r--r--library/blueimp_upload/index.html255
-rw-r--r--library/blueimp_upload/jquery-ui.html250
-rw-r--r--library/blueimp_upload/js/app.js101
-rw-r--r--library/blueimp_upload/js/cors/jquery.postmessage-transport.js117
-rw-r--r--library/blueimp_upload/js/cors/jquery.xdr-transport.js86
-rw-r--r--library/blueimp_upload/js/jquery.fileupload-angular.js429
-rw-r--r--library/blueimp_upload/js/jquery.fileupload-audio.js106
-rw-r--r--library/blueimp_upload/js/jquery.fileupload-image.js315
-rwxr-xr-xlibrary/blueimp_upload/js/jquery.fileupload-jquery-ui.js152
-rw-r--r--library/blueimp_upload/js/jquery.fileupload-process.js172
-rw-r--r--library/blueimp_upload/js/jquery.fileupload-ui.js704
-rw-r--r--library/blueimp_upload/js/jquery.fileupload-validate.js119
-rw-r--r--library/blueimp_upload/js/jquery.fileupload-video.js106
-rw-r--r--library/blueimp_upload/js/jquery.fileupload.js1457
-rw-r--r--library/blueimp_upload/js/jquery.iframe-transport.js214
-rw-r--r--library/blueimp_upload/js/main.js75
-rw-r--r--library/blueimp_upload/js/vendor/jquery.ui.widget.js558
-rw-r--r--library/blueimp_upload/package.json54
-rw-r--r--library/blueimp_upload/server/gae-go/app.yaml12
-rw-r--r--library/blueimp_upload/server/gae-go/app/main.go296
-rw-r--r--library/blueimp_upload/server/gae-go/static/robots.txt2
-rw-r--r--library/blueimp_upload/server/gae-python/app.yaml16
-rw-r--r--library/blueimp_upload/server/gae-python/main.py170
-rw-r--r--library/blueimp_upload/server/gae-python/static/robots.txt2
-rw-r--r--library/blueimp_upload/server/node/.gitignore2
-rw-r--r--library/blueimp_upload/server/node/package.json41
-rw-r--r--library/blueimp_upload/server/node/public/files/.gitignore2
-rwxr-xr-xlibrary/blueimp_upload/server/node/server.js292
-rw-r--r--library/blueimp_upload/server/node/tmp/.gitignore (renamed from .gitmodules)0
-rwxr-xr-xlibrary/blueimp_upload/server/php/UploadHandler.php1343
-rw-r--r--library/blueimp_upload/server/php/files/.gitignore3
-rw-r--r--library/blueimp_upload/server/php/files/.htaccess18
-rw-r--r--library/blueimp_upload/server/php/index.php15
-rw-r--r--library/blueimp_upload/test/index.html172
-rw-r--r--library/blueimp_upload/test/test.js1288
-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-tagsinput/LICENSE20
-rw-r--r--library/bootstrap-tagsinput/README1
-rw-r--r--library/bootstrap-tagsinput/README.md879
-rw-r--r--library/bootstrap-tagsinput/bootstrap-tagsinput.css46
-rw-r--r--library/bootstrap-tagsinput/bootstrap-tagsinput.js643
-rw-r--r--library/bootstrap/css/bootstrap-theme.css116
-rw-r--r--library/bootstrap/css/bootstrap-theme.min.css4
-rw-r--r--library/bootstrap/css/bootstrap.css535
-rw-r--r--library/bootstrap/css/bootstrap.min.css4
-rw-r--r--library/bootstrap/fonts/glyphicons-halflings-regular.svg2
-rw-r--r--library/bootstrap/js/bootbox.js894
-rw-r--r--library/bootstrap/js/bootbox.min.js4
-rw-r--r--library/bootstrap/js/bootstrap.js566
-rw-r--r--library/bootstrap/js/bootstrap.min.js5
-rw-r--r--library/cacert.pem721
-rw-r--r--library/certs/README.md1
-rw-r--r--library/certs/cacert.pem3894
-rw-r--r--library/certs/comodo.pem92
-rw-r--r--library/datetimepicker/.gitignore1
-rw-r--r--library/datetimepicker/MIT-LICENSE.txt19
-rw-r--r--library/datetimepicker/README.md20
-rw-r--r--library/datetimepicker/jquery.datetimepicker.css418
-rw-r--r--library/datetimepicker/jquery.datetimepicker.js1661
-rw-r--r--library/jquery-textcomplete/LICENSE21
-rw-r--r--library/jquery-textcomplete/jquery.textcomplete.js1088
-rw-r--r--library/justifiedGallery/dist/css/justifiedGallery.css149
-rw-r--r--library/justifiedGallery/dist/css/justifiedGallery.min.css7
-rw-r--r--library/justifiedGallery/dist/js/jquery.justifiedGallery.js661
-rw-r--r--library/justifiedGallery/dist/js/jquery.justifiedGallery.min.js7
-rw-r--r--library/oauth/LICENSE37
-rw-r--r--library/oauth/LICENSE.txt36
-rw-r--r--library/oauth/http.php2092
-rw-r--r--library/oauth/oauth_client.php2176
-rw-r--r--library/oauth/oauth_client_class.html607
-rw-r--r--library/stylish_select/index.html314
-rw-r--r--library/stylish_select/jquery.stylish-select.js492
-rwxr-xr-xlibrary/stylish_select/select-bg.pngbin0 -> 2438 bytes
-rwxr-xr-xlibrary/stylish_select/stylish-select.css121
-rw-r--r--mod/acl.php41
-rw-r--r--mod/admin.php107
-rw-r--r--mod/blocks.php160
-rw-r--r--mod/bookmarks.php4
-rw-r--r--mod/chanman.php31
-rw-r--r--mod/channel.php63
-rw-r--r--mod/chatsvc.php4
-rw-r--r--mod/cloud.php119
-rw-r--r--mod/connect.php3
-rw-r--r--mod/connections.php71
-rw-r--r--mod/connedit.php50
-rw-r--r--mod/contactgroup.php4
-rw-r--r--mod/delegate.php2
-rw-r--r--mod/directory.php134
-rw-r--r--mod/dirprofile.php184
-rw-r--r--mod/dirsearch.php88
-rw-r--r--mod/display.php20
-rw-r--r--mod/editblock.php198
-rw-r--r--mod/editlayout.php219
-rw-r--r--mod/editpost.php6
-rw-r--r--mod/editwebpage.php126
-rwxr-xr-xmod/events.php125
-rw-r--r--mod/feed.php5
-rw-r--r--mod/filer.php2
-rw-r--r--mod/filerm.php2
-rw-r--r--mod/filestorage.php47
-rw-r--r--mod/fsuggest.php2
-rw-r--r--mod/group.php6
-rw-r--r--mod/help.php26
-rw-r--r--mod/home.php209
-rw-r--r--mod/impel.php121
-rw-r--r--mod/import.php142
-rw-r--r--mod/item.php366
-rw-r--r--mod/layouts.php119
-rwxr-xr-xmod/like.php35
-rw-r--r--mod/locs.php104
-rw-r--r--mod/lostpass.php4
-rw-r--r--mod/mail.php17
-rw-r--r--mod/manage.php12
-rw-r--r--mod/menu.php72
-rw-r--r--mod/message.php22
-rw-r--r--mod/mitem.php118
-rw-r--r--mod/network.php288
-rw-r--r--mod/new_channel.php9
-rw-r--r--mod/notifications.php6
-rw-r--r--mod/oembed.php5
-rw-r--r--mod/openid.php6
-rw-r--r--mod/p.php52
-rw-r--r--mod/page.php22
-rw-r--r--mod/photo.php12
-rw-r--r--mod/photos.php502
-rw-r--r--mod/ping.php226
-rw-r--r--mod/poco.php20
-rw-r--r--mod/post.php51
-rw-r--r--mod/profile_photo.php16
-rw-r--r--mod/profiles.php61
-rw-r--r--mod/profperm.php4
-rw-r--r--mod/receive.php2
-rw-r--r--mod/register.php14
-rw-r--r--mod/removeaccount.php2
-rw-r--r--mod/removeme.php2
-rw-r--r--mod/search.php37
-rw-r--r--mod/service_limits.php23
-rw-r--r--mod/settings.php350
-rwxr-xr-xmod/setup.php32
-rw-r--r--mod/siteinfo.php74
-rw-r--r--mod/smilies.php14
-rw-r--r--mod/sources.php4
-rw-r--r--mod/sslify.php2
-rw-r--r--mod/starred.php2
-rwxr-xr-xmod/subthread.php2
-rw-r--r--mod/tagrm.php120
-rw-r--r--mod/thing.php8
-rw-r--r--mod/uexport.php39
-rw-r--r--mod/update_home.php38
-rw-r--r--mod/viewconnections.php8
-rw-r--r--mod/viewsrc.php5
-rw-r--r--mod/wall_upload.php5
-rw-r--r--mod/webpages.php164
-rw-r--r--mod/xchan.php31
-rw-r--r--mod/zfinger.php43
-rw-r--r--mod/zotfeed.php4
-rw-r--r--util/messages.po6964
-rw-r--r--util/wp/post_to_red/post_to_red.php493
-rw-r--r--util/wp/post_to_red/readme.txt39
l---------vendor/bin/sabredav1
l---------vendor/bin/vobjectvalidate.php1
-rw-r--r--version.inc2
-rw-r--r--view/ca/cmnt_received_eml.tpl18
-rw-r--r--view/ca/follow_notify_eml.tpl13
-rw-r--r--view/ca/friend_complete_eml.tpl19
-rw-r--r--view/ca/intro_complete_eml.tpl21
-rw-r--r--view/ca/mail_received_html_body_eml.tpl24
-rw-r--r--view/ca/mail_received_text_body_eml.tpl9
-rw-r--r--view/ca/request_notify_eml.tpl13
-rw-r--r--view/ca/wall_received_eml.tpl18
-rw-r--r--view/cs/cmnt_received_eml.tpl14
-rw-r--r--view/cs/cmnt_received_html_body_eml.tpl25
-rw-r--r--view/cs/cmnt_received_text_body_eml.tpl14
-rw-r--r--view/cs/follow_notify_eml.tpl14
-rw-r--r--view/cs/friend_complete_eml.tpl22
-rw-r--r--view/cs/intro_complete_eml.tpl22
-rw-r--r--view/cs/mail_received_html_body_eml.tpl25
-rw-r--r--view/cs/mail_received_text_body_eml.tpl10
-rw-r--r--view/cs/request_notify_eml.tpl17
-rw-r--r--view/cs/wall_received_eml.tpl14
-rw-r--r--view/cs/wall_received_html_body_eml.tpl24
-rw-r--r--view/cs/wall_received_text_body_eml.tpl14
-rw-r--r--view/css/bootstrap-red.css53
-rw-r--r--view/css/conversation.css37
-rw-r--r--view/css/default.css4
-rw-r--r--view/css/mod_connedit.css2
-rw-r--r--view/css/mod_directory.css36
-rw-r--r--view/css/mod_events.css14
-rw-r--r--view/css/mod_locs.css3
-rw-r--r--view/css/mod_mail.css4
-rw-r--r--view/css/mod_menu.css3
-rw-r--r--view/css/mod_message.css14
-rw-r--r--view/css/mod_new_channel.css136
-rw-r--r--view/css/mod_photos.css184
-rw-r--r--view/css/mod_profile.css16
-rw-r--r--view/css/mod_settings.css6
-rw-r--r--view/css/widgets.css98
-rw-r--r--view/de/cmnt_received_eml.tpl17
-rw-r--r--view/de/cmnt_received_html_body_eml.tpl25
-rw-r--r--view/de/cmnt_received_text_body_eml.tpl16
-rw-r--r--view/de/follow_notify_eml.tpl14
-rw-r--r--view/de/friend_complete_eml.tpl22
-rw-r--r--view/de/htconfig.tpl41
-rw-r--r--view/de/intro_complete_eml.tpl22
-rw-r--r--view/de/lostpass_eml.tpl34
-rw-r--r--view/de/mail_received_html_body_eml.tpl26
-rw-r--r--view/de/mail_received_text_body_eml.tpl11
-rw-r--r--view/de/messages.po11216
-rw-r--r--view/de/passchanged_eml.tpl24
-rw-r--r--view/de/register_open_eml.tpl26
-rw-r--r--view/de/register_verify_eml.tpl19
-rw-r--r--view/de/request_notify_eml.tpl17
-rw-r--r--view/de/strings.php2775
-rw-r--r--view/de/update_fail_eml.tpl20
-rw-r--r--view/de/wall_received_eml.tpl18
-rw-r--r--view/de/wall_received_html_body_eml.tpl24
-rw-r--r--view/de/wall_received_text_body_eml.tpl18
-rw-r--r--view/en-au/follow_notify_eml.tpl14
-rw-r--r--view/en-au/friend_complete_eml.tpl22
-rw-r--r--view/en-au/intro_complete_eml.tpl22
-rw-r--r--view/en-au/request_notify_eml.tpl17
-rw-r--r--view/en-gb/follow_notify_eml.tpl14
-rw-r--r--view/en-gb/friend_complete_eml.tpl22
-rw-r--r--view/en-gb/intro_complete_eml.tpl22
-rw-r--r--view/en-gb/request_notify_eml.tpl17
-rw-r--r--view/en-gb/strings.php2
-rw-r--r--view/en/follow_notify_eml.tpl14
-rw-r--r--view/en/friend_complete_eml.tpl22
-rw-r--r--view/en/htconfig.tpl8
-rw-r--r--view/en/intro_complete_eml.tpl22
-rw-r--r--view/en/request_notify_eml.tpl17
-rw-r--r--view/eo/follow_notify_eml.tpl14
-rw-r--r--view/eo/friend_complete_eml.tpl22
-rw-r--r--view/eo/intro_complete_eml.tpl22
-rw-r--r--view/eo/request_notify_eml.tpl17
-rw-r--r--view/es/cmnt_received_eml.tpl18
-rw-r--r--view/es/follow_notify_eml.tpl14
-rw-r--r--view/es/friend_complete_eml.tpl22
-rw-r--r--view/es/intro_complete_eml.tpl22
-rw-r--r--view/es/mail_received_html_body_eml.tpl24
-rw-r--r--view/es/mail_received_text_body_eml.tpl9
-rw-r--r--view/es/request_notify_eml.tpl17
-rw-r--r--view/es/wall_received_eml.tpl18
-rw-r--r--view/fr/cmnt_received_eml.tpl18
-rw-r--r--view/fr/cmnt_received_html_body_eml.tpl25
-rw-r--r--view/fr/cmnt_received_text_body_eml.tpl15
-rw-r--r--view/fr/follow_notify_eml.tpl14
-rw-r--r--view/fr/friend_complete_eml.tpl22
-rw-r--r--view/fr/intro_complete_eml.tpl22
-rw-r--r--view/fr/lostpass_eml.tpl16
-rw-r--r--view/fr/mail_received_html_body_eml.tpl25
-rw-r--r--view/fr/mail_received_text_body_eml.tpl10
-rw-r--r--view/fr/messages.po104
-rw-r--r--view/fr/passchanged_eml.tpl8
-rw-r--r--view/fr/register_open_eml.tpl15
-rw-r--r--view/fr/register_verify_eml.tpl8
-rw-r--r--view/fr/register_verify_member.tpl8
-rw-r--r--view/fr/request_notify_eml.tpl17
-rw-r--r--view/fr/strings.php112
-rw-r--r--view/fr/update_fail_eml.tpl8
-rw-r--r--view/fr/wall_received_eml.tpl18
-rw-r--r--view/it/cmnt_received_eml.tpl18
-rw-r--r--view/it/cmnt_received_html_body_eml.tpl25
-rw-r--r--view/it/cmnt_received_text_body_eml.tpl18
-rw-r--r--view/it/follow_notify_eml.tpl14
-rw-r--r--view/it/friend_complete_eml.tpl22
-rw-r--r--view/it/intro_complete_eml.tpl22
-rw-r--r--view/it/mail_received_html_body_eml.tpl25
-rw-r--r--view/it/mail_received_text_body_eml.tpl10
-rw-r--r--view/it/messages.po8510
-rw-r--r--view/it/request_notify_eml.tpl17
-rw-r--r--view/it/strings.php1926
-rw-r--r--view/it/wall_received_eml.tpl18
-rw-r--r--view/it/wall_received_html_body_eml.tpl24
-rw-r--r--view/it/wall_received_text_body_eml.tpl18
-rw-r--r--view/js/acl.js20
-rw-r--r--view/js/autocomplete.js209
-rw-r--r--view/js/main.js88
-rw-r--r--view/js/mod_connedit.js13
-rw-r--r--view/js/mod_directory.js3
-rw-r--r--view/js/mod_events.js37
-rw-r--r--view/js/mod_new_channel.js5
-rw-r--r--view/js/mod_photos.js13
-rw-r--r--view/js/mod_settings.js16
-rw-r--r--view/nb-no/follow_notify_eml.tpl14
-rw-r--r--view/nb-no/friend_complete_eml.tpl22
-rw-r--r--view/nb-no/intro_complete_eml.tpl22
-rw-r--r--view/nb-no/messages.po8668
-rw-r--r--view/nb-no/request_notify_eml.tpl17
-rw-r--r--view/nb-no/strings.php1828
-rw-r--r--view/nl/follow_notify_eml.tpl14
-rw-r--r--view/nl/friend_complete_eml.tpl22
-rw-r--r--view/nl/intro_complete_eml.tpl22
-rw-r--r--view/nl/messages.po8488
-rw-r--r--view/nl/register_verify_member.tpl4
-rw-r--r--view/nl/request_notify_eml.tpl17
-rw-r--r--view/nl/strings.php1898
-rw-r--r--view/php/theme_init.php8
-rw-r--r--view/pt-br/follow_notify_eml.tpl14
-rw-r--r--view/pt-br/friend_complete_eml.tpl23
-rw-r--r--view/pt-br/intro_complete_eml.tpl22
-rw-r--r--view/pt-br/messages.po6559
-rw-r--r--view/pt-br/request_notify_eml.tpl17
-rw-r--r--view/pt-br/strings.php1367
-rw-r--r--view/ru/follow_notify_eml.tpl14
-rw-r--r--view/ru/friend_complete_eml.tpl22
-rw-r--r--view/ru/intro_complete_eml.tpl22
-rw-r--r--view/ru/request_notify_eml.tpl17
-rw-r--r--view/sv/cmnt_received_eml.tpl17
-rw-r--r--view/sv/follow_notify_eml.tpl14
-rw-r--r--view/sv/friend_complete_eml.tpl22
-rw-r--r--view/sv/intro_complete_eml.tpl22
-rw-r--r--view/sv/lostpass_eml.tpl10
-rw-r--r--view/sv/mail_received_html_body_eml.tpl25
-rw-r--r--view/sv/mail_received_text_body_eml.tpl10
-rw-r--r--view/sv/messages.po10504
-rw-r--r--view/sv/passchanged_eml.tpl7
-rw-r--r--view/sv/register_open_eml.tpl12
-rw-r--r--view/sv/register_verify_eml.tpl5
-rw-r--r--view/sv/register_verify_member.tpl24
-rw-r--r--view/sv/request_notify_eml.tpl17
-rw-r--r--view/sv/strings.php2438
-rw-r--r--view/sv/update_fail_eml.tpl16
-rw-r--r--view/sv/wall_received_eml.tpl16
-rw-r--r--view/theme/redbasic/css/blockmode.css15
-rw-r--r--view/theme/redbasic/css/style.css475
-rw-r--r--view/theme/redbasic/php/style.php62
-rw-r--r--view/theme/redbasic/php/theme_init.php5
-rw-r--r--view/theme/redbasic/schema/dark.php36
-rw-r--r--view/theme/redbasic/schema/simple_black_on_white.php188
-rw-r--r--view/theme/redbasic/schema/simple_green_on_black.php188
-rw-r--r--view/theme/redbasic/schema/simple_white_on_black.php188
-rwxr-xr-xview/tpl/abook_edit.tpl35
-rwxr-xr-xview/tpl/acl_selector.tpl8
-rwxr-xr-xview/tpl/admin_aside.tpl46
-rwxr-xr-xview/tpl/admin_channels.tpl2
-rwxr-xr-xview/tpl/admin_hubloc.tpl2
-rwxr-xr-xview/tpl/admin_logs.tpl2
-rwxr-xr-xview/tpl/admin_plugins.tpl2
-rwxr-xr-xview/tpl/admin_plugins_details.tpl2
-rwxr-xr-xview/tpl/admin_site.tpl5
-rwxr-xr-xview/tpl/admin_summary.tpl2
-rwxr-xr-xview/tpl/admin_users.tpl2
-rwxr-xr-xview/tpl/album_edit.tpl33
-rw-r--r--view/tpl/app_select.tpl2
-rw-r--r--view/tpl/attach_edit.tpl4
-rw-r--r--view/tpl/blocklist.tpl6
-rwxr-xr-xview/tpl/build_query.tpl2
-rwxr-xr-xview/tpl/categories_widget.tpl6
-rwxr-xr-xview/tpl/channel_import.tpl5
-rwxr-xr-xview/tpl/channels.tpl4
-rw-r--r--view/tpl/chatroom_new.tpl4
-rw-r--r--view/tpl/cloud_actionspanel.tpl6
-rw-r--r--view/tpl/cloud_directory.tpl4
-rwxr-xr-xview/tpl/comment_item.tpl64
-rwxr-xr-xview/tpl/connection_template.tpl6
-rwxr-xr-xview/tpl/connections.tpl15
-rwxr-xr-xview/tpl/contact_slider.tpl2
-rwxr-xr-xview/tpl/contact_template.tpl2
-rw-r--r--view/tpl/contactsajax.tpl3
-rwxr-xr-xview/tpl/conv_item.tpl6
-rwxr-xr-xview/tpl/conv_list.tpl179
-rw-r--r--view/tpl/design_tools.tpl2
-rw-r--r--view/tpl/diaspora_vcard.tpl2
-rw-r--r--view/tpl/dir_sort_links.tpl10
-rwxr-xr-xview/tpl/directory_header.tpl4
-rwxr-xr-xview/tpl/direntry.tpl30
-rwxr-xr-xview/tpl/direntry_large.tpl43
-rwxr-xr-xview/tpl/display-head.tpl4
-rwxr-xr-xview/tpl/event_form.tpl104
-rwxr-xr-xview/tpl/event_head.tpl7
-rwxr-xr-xview/tpl/events-js.tpl14
-rwxr-xr-xview/tpl/failed_updates.tpl3
-rwxr-xr-xview/tpl/fileas_widget.tpl6
-rwxr-xr-xview/tpl/generic_links_widget.tpl4
-rwxr-xr-xview/tpl/group_side.tpl40
-rwxr-xr-xview/tpl/head.tpl1
-rwxr-xr-xview/tpl/install_db.tpl2
-rwxr-xr-xview/tpl/install_settings.tpl1
-rwxr-xr-xview/tpl/jot-header.tpl2
-rwxr-xr-xview/tpl/jot.tpl87
-rwxr-xr-xview/tpl/jot_geotag.tpl2
-rwxr-xr-xview/tpl/js_strings.tpl1
-rw-r--r--view/tpl/layoutlist.tpl8
-rw-r--r--view/tpl/locmanage.tpl26
-rwxr-xr-xview/tpl/mail_list.tpl2
-rw-r--r--view/tpl/menulist.tpl7
-rwxr-xr-xview/tpl/message_side.tpl17
-rw-r--r--view/tpl/mitemedit.tpl2
-rwxr-xr-xview/tpl/msg-header.tpl32
-rwxr-xr-xview/tpl/nav.tpl59
-rwxr-xr-xview/tpl/new_channel.tpl12
-rwxr-xr-xview/tpl/notifications.tpl4
-rwxr-xr-xview/tpl/peoplefind.tpl29
-rwxr-xr-xview/tpl/photo_album.tpl33
-rwxr-xr-xview/tpl/photo_albums.tpl24
-rwxr-xr-xview/tpl/photo_item.tpl41
-rwxr-xr-xview/tpl/photo_top.tpl9
-rwxr-xr-xview/tpl/photo_view.tpl247
-rwxr-xr-xview/tpl/photos_recent.tpl24
-rwxr-xr-xview/tpl/photos_upload.tpl92
-rwxr-xr-xview/tpl/photosajax.tpl4
-rwxr-xr-xview/tpl/posted_date_widget.tpl56
-rwxr-xr-xview/tpl/profile_advanced.tpl458
-rwxr-xr-xview/tpl/profile_edit.tpl3
-rwxr-xr-xview/tpl/profile_entry.tpl3
-rw-r--r--view/tpl/profile_hide_friends.tpl17
-rwxr-xr-xview/tpl/profile_listing_header.tpl2
-rwxr-xr-xview/tpl/profile_vcard.tpl2
-rwxr-xr-xview/tpl/prv_message.tpl28
-rw-r--r--view/tpl/safesearch.tpl4
-rw-r--r--view/tpl/saved_searches.tpl10
-rwxr-xr-xview/tpl/saved_searches_aside.tpl4
-rwxr-xr-xview/tpl/search_item.tpl2
-rw-r--r--view/tpl/searchbox.tpl12
-rwxr-xr-xview/tpl/settings.tpl81
-rwxr-xr-xview/tpl/settings_account.tpl2
-rwxr-xr-xview/tpl/settings_addons.tpl2
-rwxr-xr-xview/tpl/settings_connectors.tpl3
-rwxr-xr-xview/tpl/settings_display.tpl8
-rwxr-xr-xview/tpl/settings_features.tpl2
-rwxr-xr-xview/tpl/settings_oauth.tpl2
-rwxr-xr-xview/tpl/siteinfo.tpl3
-rw-r--r--view/tpl/smarty3/README4
-rw-r--r--view/tpl/suggest_widget.tpl4
-rw-r--r--view/tpl/uexport.tpl9
-rwxr-xr-xview/tpl/viewcontact_template.tpl3
-rw-r--r--view/tpl/webpagelist.tpl5
1226 files changed, 117053 insertions, 68182 deletions
diff --git a/.gitignore b/.gitignore
index 80fe3ec72..a12143ef5 100755
--- a/.gitignore
+++ b/.gitignore
@@ -14,6 +14,9 @@ compiled/
custom/
/store/
+# site apps
+apps/
+
# patch attempts
*.orig
*.rej
@@ -41,3 +44,9 @@ nbproject
#Kdevelop project files
*.kdev4
+
+# Ignore site TOS
+doc/SiteTOS.md
+
+#Ingore site theme schemas
+view/theme/redbasic/schema/default.php
diff --git a/README.md b/README.md
index 1e7e15ec0..12273801d 100644
--- a/README.md
+++ b/README.md
@@ -1,11 +1,13 @@
![the Red Matrix](images/rm.png)
-The RedMatrix (aka "red") is an open source webapp platform providing a complete **decentralised** publishing, sharing, and communications system. It combines communications (private messaging, chat and social networking), and media management (photos, events, files, web pages, app distribution) with enough features to make your head spin.
+One of the traditional problems with independent publishing on the internet has always been the fact that independent publishers often operate as isolated islands within their own website, and spend most of their resources attracting visitors. The rise of corporate providers and social networking services alleviated many of these problems; however centralisation has led to a situation where your content is no longer under your direct control. It is shared fully with corporate advertisers and governments, but ironically you are now often asked to pay money to ensure that your friends can see it. What if you could have advantages of scale and connections that centralisation typically offers whilst maintaining independent control over your own web presence?
-What makes the RedMatrix unique is what we call "magic authentication" - which is based on our groundbreaking work in decentralised identity services. This ties all RedMatrix sites and channels together into a single super-network where the boundaries between different websites are blurred or seemingly non-existent; where "who you are" has nothing to do with "what computer you're connected to", and where website content can adapt itself according to who is viewing it.
+The RedMatrix is a super network created from a huge number of smaller independent and autonomous websites - which are linked together into a cooperative publishing and social platform. It consists of an open source webapp providing a complete multi-user **decentralised** publishing, sharing, and communications system - known as a "hub". Each hub provides communications (private messaging, chat, blogging, forums, and social networking), along with media management (photos, events, files, web pages, shareable apps) for its members; all in a feature-rich platform. These hubs automatically reach out and connect with each other and the rest of the matrix. Privacy and content ownership always remain under the direct personal control of the individual; and permission to access any item can be granted or denied to anybody in the entire matrix.
-Warning: After experiencing magic authentication and nomadic identity, you may find it disconcerting and a bit "primitive" to go back to the old internet. You shouldn't need hundreds of different passwords to use the web ... or be totally isolated from your friends and family because a server or router in another country is having "*issues*".
+What makes the RedMatrix unique is what we call "magic authentication" - which is based on our groundbreaking work in decentralised identity services. No other platform provides this ability. Within the matrix the boundaries between different hubs are blurred or seemingly non-existent. Identity in the matrix is considered transient and potentially nomadic. "Who you are" has nothing to do with "what computer you're connected to", and website content can adapt itself according to who is viewing it. You have the ability to "clone" your identity to other hubs; which allows you to continue to communicate with your friends seamlessly if your primary hub is ever disabled (temporarily or permanently).
+
+The RedMatrix is ideal for communities of any size, from private individuals and families to online forums, business websites, and organisations. It can be used by anybody who has communications or web content that they wish to share, but where they desire complete control of whom they share it with.
-For the average person, the biggest advantage of decentralised identity is that you decide who you want to share your stuff with, and if somebody isn't on your list, they're not going to see it. It's all under your control (we're big on privacy). Use the RedMatrix as a social network or a business website or for personal cloud storage or media publishing - or any number of other uses; limited only by your imagination.
-
The Red Matrix is free and open source distributed under the MIT license.
+
+For a list of public hubs see [redmatrix.me/pubsites](https://redmatrix.me/pubsites). For installation instructions see [install/INSTALL.txt](install/INSTALL.txt)
diff --git a/assets/home.html b/assets/home.html
index a0d048682..cad2045d0 100644
--- a/assets/home.html
+++ b/assets/home.html
@@ -239,7 +239,7 @@ function update_element() {
<div lang="en" class="wrapper">
<div class="tr" style="font-size: 1.4em; color: #666; margin-left: 75px; margin-right: 75px;">
-One of the traditional problems with independent publishing on the internet has always been the fact that independent publishers often operate as isolated islands within their own website, and spend most of their resources attracting visitors. The rise of corporate providers and social networking services alleviated many of these problems; however centralisation has led to a situation where your content where is no longer under your direct control. It is shared fully with corporate advertisers and governments, but ironically you are now often asked to pay money to ensure that your friends can see it. What if you could have advantages of scale and connections that centralisation typically offers whilst maintaining independent control over your own web presence?
+One of the traditional problems with independent publishing on the internet has always been the fact that independent publishers often operate as isolated islands within their own website, and spend most of their resources attracting visitors. The rise of corporate providers and social networking services alleviated many of these problems; however centralisation has led to a situation where your content is no longer under your direct control. It is shared fully with corporate advertisers and governments, but ironically you are now often asked to pay money to ensure that your friends can see it. What if you could have advantages of scale and connections that centralisation typically offers whilst maintaining independent control over your own web presence?
</div>
<br />
<div class="tr" style="font-size: 1.4em; color: #666; margin-left: 75px; margin-right: 75px;">
diff --git a/boot.php b/boot.php
index 0c2cfafbf..842113c31 100755
--- a/boot.php
+++ b/boot.php
@@ -1,6 +1,8 @@
<?php
-/** @file */
-
+/** @file boot.php
+ *
+ * This file defines some global constants and includes the central App class.
+ */
/**
* Red Matrix.
@@ -25,7 +27,6 @@
* documented.
*/
-
require_once('include/config.php');
require_once('include/network.php');
require_once('include/plugin.php');
@@ -44,18 +45,27 @@ require_once('include/Contact.php');
require_once('include/account.php');
-define ( 'RED_PLATFORM', 'Red Matrix' );
+define ( 'RED_PLATFORM', 'redmatrix' );
define ( 'RED_VERSION', trim(file_get_contents('version.inc')) . 'R');
define ( 'ZOT_REVISION', 1 );
-define ( 'DB_UPDATE_VERSION', 1129 );
-
-define ( 'EOL', '<br />' . "\r\n" );
-define ( 'ATOM_TIME', 'Y-m-d\TH:i:s\Z' );
+define ( 'DB_UPDATE_VERSION', 1131 );
+/**
+ * Constant with a HTML line break.
+ *
+ * Contains a HTML line break (br) element and a real carriage return with line
+ * feed for the source.
+ * This can be used in HTML and JavaScript where needed a line break.
+ *
+ * @var string
+ */
+define ( 'EOL', '<br>' . "\r\n" );
+define ( 'ATOM_TIME', 'Y-m-d\TH:i:s\Z' );
+//define ( 'NULL_DATE', '0000-00-00 00:00:00' );
define ( 'TEMPLATE_BUILD_PATH', 'store/[data]/smarty3' );
-define ( 'DIRECTORY_MODE_NORMAL', 0x0000); // This is technically DIRECTORY_MODE_TERTIARY, but it's the default, hence 0x0000
+define ( 'DIRECTORY_MODE_NORMAL', 0x0000); // This is technically DIRECTORY_MODE_TERTIARY, but it's the default, hence 0x0000
define ( 'DIRECTORY_MODE_PRIMARY', 0x0001);
define ( 'DIRECTORY_MODE_SECONDARY', 0x0002);
define ( 'DIRECTORY_MODE_STANDALONE', 0x0100);
@@ -72,10 +82,9 @@ $DIRECTORY_FALLBACK_SERVERS = array(
'https://zothub.com',
'https://zotid.net',
'https://redmatrix.nl',
- 'https://whogotzot.com',
- 'https://red.mariovavti.com',
'https://red.zottel.red',
- 'https://red.pixelbits.de'
+ 'https://red.pixelbits.de',
+ 'https://whogotzot.com'
);
@@ -197,7 +206,6 @@ define ( 'UPDATE_SUCCESS', 0);
define ( 'UPDATE_FAILED', 1);
-
define ( 'CLIENT_MODE_NORMAL', 0x0000);
define ( 'CLIENT_MODE_LOAD', 0x0001);
define ( 'CLIENT_MODE_UPDATE', 0x0002);
@@ -217,8 +225,9 @@ define ( 'PAGE_DIRECTORY_CHANNEL', 0x0008 ); // system channel used for director
define ( 'PAGE_PREMIUM', 0x0010 );
define ( 'PAGE_ADULT', 0x0020 );
define ( 'PAGE_CENSORED', 0x0040 ); // Site admin has blocked this channel from appearing in casual search results and site feeds
-
define ( 'PAGE_SYSTEM', 0x1000 );
+define ( 'PAGE_HUBADMIN', 0x2000 ); // set this to indicate a preferred admin channel rather than the
+ // default channel of any accounts with the admin role.
define ( 'PAGE_REMOVED', 0x8000 );
@@ -230,6 +239,7 @@ define ( 'PHOTO_NORMAL', 0x0000 );
define ( 'PHOTO_PROFILE', 0x0001 );
define ( 'PHOTO_XCHAN', 0x0002 );
define ( 'PHOTO_THING', 0x0004 );
+define ( 'PHOTO_ADULT', 0x0008 );
/**
* Menu types
@@ -262,13 +272,11 @@ define ( 'NETWORK_PHANTOM', 'unkn'); // Place holder
* Permissions
*/
-
define ( 'PERMS_R_STREAM', 0x00001);
define ( 'PERMS_R_PROFILE', 0x00002);
define ( 'PERMS_R_PHOTOS', 0x00004);
define ( 'PERMS_R_ABOOK', 0x00008);
-
define ( 'PERMS_W_STREAM', 0x00010);
define ( 'PERMS_W_WALL', 0x00020);
define ( 'PERMS_W_TAGWALL', 0x00040);
@@ -320,7 +328,6 @@ define ( 'ATTACH_FLAG_DIR', 0x0001);
define ( 'ATTACH_FLAG_OS', 0x0002);
-
define ( 'MENU_ITEM_ZID', 0x0001);
define ( 'MENU_ITEM_NEWWIN', 0x0002);
define ( 'MENU_ITEM_CHATROOM', 0x0004);
@@ -335,13 +342,11 @@ define ( 'POLL_MULTIPLE_CHOICE', 0x0004);
define ( 'POLL_OVERWRITE', 0x8000); // If you vote twice remove the prior entry
-
define ( 'UPDATE_FLAGS_UPDATED', 0x0001);
define ( 'UPDATE_FLAGS_FORCED', 0x0002);
define ( 'UPDATE_FLAGS_DELETED', 0x1000);
-
define ( 'DROPITEM_NORMAL', 0);
define ( 'DROPITEM_PHASE1', 1);
define ( 'DROPITEM_PHASE2', 2);
@@ -377,6 +382,22 @@ define ( 'NOTIFY_POKE', 0x0200 );
define ( 'NOTIFY_SYSTEM', 0x8000 );
+/**
+ * visual notification options
+ */
+
+define ( 'VNOTIFY_NETWORK', 0x0001 );
+define ( 'VNOTIFY_CHANNEL', 0x0002 );
+define ( 'VNOTIFY_MAIL', 0x0004 );
+define ( 'VNOTIFY_EVENT', 0x0008 );
+define ( 'VNOTIFY_EVENTTODAY', 0x0010 );
+define ( 'VNOTIFY_BIRTHDAY', 0x0020 );
+define ( 'VNOTIFY_SYSTEM', 0x0040 );
+define ( 'VNOTIFY_INFO', 0x0080 );
+define ( 'VNOTIFY_ALERT', 0x0100 );
+define ( 'VNOTIFY_INTRO', 0x0200 );
+define ( 'VNOTIFY_REGISTER', 0x0400 );
+
// We need a flag to designate that a site is a
// global directory mirror, but probably doesn't
@@ -397,6 +418,7 @@ define ( 'XCHAN_FLAGS_ORPHAN', 0x0002);
define ( 'XCHAN_FLAGS_CENSORED', 0x0004);
define ( 'XCHAN_FLAGS_SELFCENSORED', 0x0008);
define ( 'XCHAN_FLAGS_SYSTEM', 0x0010);
+define ( 'XCHAN_FLAGS_PUBFORUM', 0x0020);
define ( 'XCHAN_FLAGS_DELETED', 0x1000);
/*
* Traficlights for Administration of HubLoc
@@ -430,7 +452,6 @@ define ( 'TERM_OBJ_OBJECT', 5 );
define ( 'TERM_OBJ_THING', 6 );
define ( 'TERM_OBJ_APP', 7 );
-
/**
* various namespaces we may need to parse
*/
@@ -450,6 +471,8 @@ define ( 'NAMESPACE_FEED', 'http://schemas.google.com/g/2010#updates-
define ( 'NAMESPACE_OSTATUS', 'http://ostatus.org/schema/1.0' );
define ( 'NAMESPACE_STATUSNET', 'http://status.net/schema/api/1/' );
define ( 'NAMESPACE_ATOM1', 'http://www.w3.org/2005/Atom' );
+define ( 'NAMESPACE_YMEDIA', 'http://search.yahoo.com/mrss/' );
+
/**
* activity stream defines
*/
@@ -493,7 +516,6 @@ define ( 'GRAVITY_PARENT', 0);
define ( 'GRAVITY_LIKE', 3);
define ( 'GRAVITY_COMMENT', 6);
-
/**
* Account Flags
*/
@@ -551,7 +573,12 @@ 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
define ( 'ITEM_RETAINED', 0x4000); // We looked at this item once to decide whether or not to expire it, and decided not to.
+define ( 'ITEM_RSS', 0x8000); // Item comes from a feed. Use this to decide whether to link the title
// Don't make us evaluate this same item again.
+
+define ( 'DBTYPE_MYSQL', 0 );
+define ( 'DBTYPE_POSTGRES', 1 );
+
/**
*
* Reverse the effect of magic_quotes_gpc if it is enabled.
@@ -567,7 +594,6 @@ function startup() {
@set_time_limit(0);
if(function_exists ('ini_set')) {
-
// This has to be quite large to deal with embedded private photos
@ini_set('pcre.backtrack_limit', 500000);
@@ -593,14 +619,13 @@ function startup() {
}
unset($process);
}
-
}
/**
- *
* class: App
*
- * Our main application structure for the life of this page
+ * @brief Our main application structure for the life of this page.
+ *
* Primarily deals with the URL that got us here
* and tries to make some sense of it, and
* stores our page contents and config storage
@@ -608,8 +633,6 @@ function startup() {
* before we spit the page out.
*
*/
-
-
class App {
public $install = false; // true if we are installing the software
@@ -621,10 +644,9 @@ class App {
public $poi = null; // "person of interest", generally a referenced connection
public $layout = array(); // Comanche parsed template
-
private $perms = null; // observer permissions
private $widgets = array(); // widgets for this page
- private $widgetlist = null; // widget ordering and inclusion directives
+ //private $widgetlist = null; // widget ordering and inclusion directives
public $groups;
public $language;
@@ -650,30 +672,34 @@ class App {
public $timezone;
public $interactive = true;
public $plugins;
- private $apps = array();
+ private $apps = array();
public $identities;
public $css_sources = array();
public $js_sources = array();
public $theme_info = array();
+ public $is_sys = false;
+ public $nav_sel;
- public $nav_sel;
-
- public $category;
+ public $category;
// Allow themes to control internal parameters
// by changing App values in theme.php
- public $sourcename = '';
- public $videowidth = 425;
- public $videoheight = 350;
- public $force_max_items = 0;
- public $theme_thread_allow = true;
-
- // An array for all theme-controllable parameters
- // Mostly unimplemented yet. Only options 'template_engine' and
- // beyond are used.
+ public $sourcename = '';
+ public $videowidth = 425;
+ public $videoheight = 350;
+ public $force_max_items = 0;
+ public $theme_thread_allow = true;
- private $theme = array(
+ /**
+ * @brief An array for all theme-controllable parameters
+ *
+ * Mostly unimplemented yet. Only options 'template_engine' and
+ * beyond are used.
+ *
+ * @var array
+ */
+ private $theme = array(
'sourcename' => '',
'videowidth' => 425,
'videoheight' => 350,
@@ -683,9 +709,17 @@ class App {
'template_engine' => 'smarty3',
);
- // array of registered template engines ('name'=>'class name')
+ /**
+ * array of registered template engines ('name'=>'class name')
+ *
+ * @var array
+ */
public $template_engines = array();
- // array of instanced template engines ('name'=>'instance')
+ /**
+ * array of instanced template engines ('name'=>'instance')
+ *
+ * @var array
+ */
public $template_engine_instance = array();
private $ldelim = array(
@@ -701,22 +735,13 @@ class App {
private $hostname;
private $baseurl;
private $path;
- private $db;
-
- private $curl_code;
- private $curl_headers;
-
- private $cached_profile_image;
- private $cached_profile_picdate;
-
-
+ /**
+ * App constructor.
+ */
function __construct() {
-
- global $default_timezone;
- $this->timezone = ((x($default_timezone)) ? $default_timezone : 'UTC');
-
- date_default_timezone_set($this->timezone);
+ // we'll reset this after we read our config file
+ date_default_timezone_set('UTC');
$this->config = array('system'=>array());
$this->page = array();
@@ -733,7 +758,6 @@ class App {
. 'library/langdet' . PATH_SEPARATOR
. '.' );
-
$this->scheme = 'http';
if(x($_SERVER,'HTTPS') && $_SERVER['HTTPS'])
$this->scheme = 'https';
@@ -757,8 +781,8 @@ class App {
set_include_path("include/$this->hostname" . PATH_SEPARATOR . get_include_path());
- if((x($_SERVER,'QUERY_STRING')) && substr($_SERVER['QUERY_STRING'],0,2) === "q=") {
- $this->query_string = substr($_SERVER['QUERY_STRING'],2);
+ if((x($_SERVER,'QUERY_STRING')) && substr($_SERVER['QUERY_STRING'], 0, 2) === "q=") {
+ $this->query_string = substr($_SERVER['QUERY_STRING'], 2);
// removing trailing / - maybe a nginx problem
if (substr($this->query_string, 0, 1) == "/")
$this->query_string = substr($this->query_string, 1);
@@ -768,9 +792,8 @@ class App {
// unix style "homedir"
- if(substr($this->cmd,0,1) === '~')
- $this->cmd = 'channel/' . substr($this->cmd,1);
-
+ if(substr($this->cmd, 0, 1) === '~')
+ $this->cmd = 'channel/' . substr($this->cmd, 1);
/**
@@ -800,14 +823,13 @@ class App {
$this->module = 'home';
}
-
/**
* See if there is any page number information, and initialise
* pagination
*/
$this->pager['page'] = ((x($_GET,'page') && intval($_GET['page']) > 0) ? intval($_GET['page']) : 1);
- $this->pager['itemspage'] = 50;
+ $this->pager['itemspage'] = 60;
$this->pager['start'] = ($this->pager['page'] * $this->pager['itemspage']) - $this->pager['itemspage'];
if($this->pager['start'] < 0)
$this->pager['start'] = 0;
@@ -837,26 +859,24 @@ class App {
}
function get_baseurl($ssl = false) {
-
-
if(is_array($this->config)
&& array_key_exists('system',$this->config)
&& is_array($this->config['system'])
&& array_key_exists('baseurl',$this->config['system'])
&& strlen($this->config['system']['baseurl'])) {
$url = $this->config['system']['baseurl'];
+
return $url;
}
-
$scheme = $this->scheme;
$this->baseurl = $scheme . "://" . $this->hostname . ((isset($this->path) && strlen($this->path)) ? '/' . $this->path : '' );
+
return $this->baseurl;
}
function set_baseurl($url) {
-
if(is_array($this->config)
&& array_key_exists('system',$this->config)
&& is_array($this->config['system'])
@@ -878,7 +898,6 @@ class App {
if(x($parsed,'path'))
$this->path = trim($parsed['path'],'\\/');
}
-
}
function get_hostname() {
@@ -890,7 +909,7 @@ class App {
}
function set_path($p) {
- $this->path = trim(trim($p),'/');
+ $this->path = trim(trim($p), '/');
}
function get_path() {
@@ -913,7 +932,6 @@ class App {
return $this->channel;
}
-
function set_observer($xchan) {
$this->observer = $xchan;
}
@@ -953,9 +971,10 @@ class App {
function get_widgets($location = '') {
if($location && count($this->widgets)) {
$ret = array();
- foreach($widgets as $w)
- if($w['location'] == $location)
+ foreach($this->widgets as $w) {
+ if ($w['location'] == $location)
$ret[] = $w;
+ }
$arr = array('location' => $location, 'widgets' => $ret);
call_hooks('get_widgets', $arr);
return $arr['widgets'];
@@ -980,9 +999,9 @@ class App {
if ($user_scalable === false)
$user_scalable = 1;
- $interval = ((local_user()) ? get_pconfig(local_user(),'system','update_interval') : 40000);
+ $interval = ((local_user()) ? get_pconfig(local_user(),'system','update_interval') : 80000);
if($interval < 10000)
- $interval = 40000;
+ $interval = 80000;
if(! x($this->page,'title'))
$this->page['title'] = $this->config['system']['sitename'];
@@ -1007,7 +1026,6 @@ class App {
// always put main.js at the end
$this->page['htmlhead'] .= head_get_main_js();
-
}
/**
@@ -1017,11 +1035,11 @@ class App {
* @param string $name
*/
function register_template_engine($class, $name = '') {
- if ($name===""){
+ if ($name === ""){
$v = get_class_vars( $class );
- if(x($v,"name")) $name = $v['name'];
+ if(x($v, "name")) $name = $v['name'];
}
- if ($name===""){
+ if ($name === ""){
echo "template engine <tt>$class</tt> cannot be registered without a name.\n";
killme();
}
@@ -1032,11 +1050,12 @@ class App {
* return template engine instance. If $name is not defined,
* return engine defined by theme, or default
*
- * @param strin $name Template engine name
+ * @param string $name Template engine name
+ *
* @return object Template Engine instance
*/
function template_engine($name = ''){
- if ($name!=="") {
+ if ($name !== "") {
$template_engine = $name;
} else {
$template_engine = 'smarty3';
@@ -1059,6 +1078,11 @@ class App {
echo "template engine <tt>$template_engine</tt> is not registered!\n"; killme();
}
+ /**
+ * @brief Returns the active template engine.
+ *
+ * @return string
+ */
function get_template_engine() {
return $this->theme['template_engine'];
}
@@ -1077,6 +1101,7 @@ class App {
break;
}*/
}
+
function get_template_ldelim($engine = 'smarty3') {
return $this->ldelim[$engine];
}
@@ -1087,7 +1112,6 @@ class App {
function head_set_icon($icon) {
$this->data['pageicon'] = $icon;
-
}
function head_get_icon() {
@@ -1097,33 +1121,43 @@ class App {
return $icon;
}
-}
-
+} // End App class
-// retrieve the App structure
-// useful in functions which require it but don't get it passed to them
+/**
+ * @brief Retrieve the App structure.
+ *
+ * Useful in functions which require it but don't get it passed to them
+ *
+ * @return App
+ */
function get_app() {
global $a;
return $a;
}
-
-// Multi-purpose function to check variable state.
-// Usage: x($var) or $x($array,'key')
-// returns false if variable/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;
-
-
-function x($s,$k = NULL) {
- if($k != NULL) {
- if((is_array($s)) && (array_key_exists($k,$s))) {
+/**
+ * @brief Multi-purpose function to check variable state.
+ *
+ * Usage: x($var) or $x($array, 'key')
+ *
+ * returns false if variable/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;
+ *
+ * @param string|array $s variable to check
+ * @param string $k key inside the array to check
+ *
+ * @return bool|int
+ */
+function x($s, $k = null) {
+ if($k != null) {
+ if((is_array($s)) && (array_key_exists($k, $s))) {
if($s[$k])
return (int) 1;
return (int) 0;
- }
+ }
return false;
}
else {
@@ -1140,7 +1174,6 @@ function x($s,$k = NULL) {
// called from db initialisation if db is dead.
-
function system_unavailable() {
include('include/system_unavailable.php');
system_down();
@@ -1150,6 +1183,7 @@ function system_unavailable() {
function clean_urls() {
global $a;
+
// if($a->config['system']['clean_urls'])
return true;
// return false;
@@ -1157,32 +1191,51 @@ function clean_urls() {
function z_path() {
global $a;
+
$base = $a->get_baseurl();
if(! clean_urls())
$base .= '/?q=';
+
return $base;
}
+/**
+ * @brief Returns the baseurl.
+ *
+ * @see App::get_baseurl()
+ *
+ * @return string
+ */
function z_root() {
global $a;
return $a->get_baseurl();
}
+/**
+ * @brief Return absolut URL for given $path.
+ *
+ * @param string $path
+ *
+ * @return string
+ */
function absurl($path) {
- if(strpos($path,'/') === 0)
+ if(strpos($path, '/') === 0)
return z_path() . $path;
+
return $path;
}
-function os_mkdir($path,$mode = 0777,$recursive = false) {
+function os_mkdir($path, $mode = 0777, $recursive = false) {
$oldumask = @umask(0);
@mkdir($path, $mode, $recursive);
@umask($oldumask);
}
-
-
-
+/**
+ * @brief Function to check if request was an AJAX (xmlhttprequest) request.
+ *
+ * @return boolean
+ */
function is_ajax() {
return (!empty($_SERVER['HTTP_X_REQUESTED_WITH']) && strtolower($_SERVER['HTTP_X_REQUESTED_WITH']) == 'xmlhttprequest');
}
@@ -1192,7 +1245,6 @@ function is_ajax() {
// base url for use in cmdline programs which don't have
// $_SERVER variables, and synchronising the state of installed plugins.
-
function check_config(&$a) {
$build = get_config('system','db_version');
@@ -1202,21 +1254,22 @@ function check_config(&$a) {
$saved = get_config('system','urlverify');
if(! $saved)
set_config('system','urlverify',bin2hex(z_root()));
+
if(($saved) && ($saved != bin2hex(z_root()))) {
// our URL changed. Do something.
$oldurl = hex2bin($saved);
logger('Baseurl changed!');
- $oldhost = substr($oldurl,strpos($oldurl,'//')+2);
- $host = substr(z_root(),strpos(z_root(),'//')+2);
+ $oldhost = substr($oldurl, strpos($oldurl, '//') + 2);
+ $host = substr(z_root(), strpos(z_root(), '//') + 2);
$is_ip_addr = ((preg_match("/^(\d{1,3})\.(\d{1,3})\.(\d{1,3})\.(\d{1,3})$/",$host)) ? true : false);
$was_ip_addr = ((preg_match("/^(\d{1,3})\.(\d{1,3})\.(\d{1,3})\.(\d{1,3})$/",$oldhost)) ? true : false);
// only change the url to an ip address if it was already an ip and not a dns name
if((! $is_ip_addr) || ($is_ip_addr && $was_ip_addr)) {
fix_system_urls($oldurl,z_root());
- set_config('system','urlverify',bin2hex(z_root()));
+ set_config('system', 'urlverify', bin2hex(z_root()));
}
else
logger('Attempt to change baseurl from a DNS name to an IP address was refused.');
@@ -1231,8 +1284,8 @@ function check_config(&$a) {
// so we just need to keep this around a couple of weeks until the hubs that
// already exist have one
$syschan_exists = get_sys_channel();
- if (! $syschan_exists)
- create_sys_channel();
+ if (! $syschan_exists)
+ create_sys_channel();
if($build != DB_UPDATE_VERSION) {
$stored = intval($build);
@@ -1303,7 +1356,6 @@ function check_config(&$a) {
}
else
set_config('database','update_r' . $x, 'success');
-
}
}
set_config('system','db_version', DB_UPDATE_VERSION);
@@ -1331,11 +1383,11 @@ function check_config(&$a) {
else
$installed = array();
- $plugins = get_config('system','addon');
+ $plugins = get_config('system', 'addon');
$plugins_arr = array();
if($plugins)
- $plugins_arr = explode(',',str_replace(' ', '',$plugins));
+ $plugins_arr = explode(',', str_replace(' ', '', $plugins));
$a->plugins = $plugins_arr;
@@ -1343,7 +1395,7 @@ function check_config(&$a) {
if(count($installed)) {
foreach($installed as $i) {
- if(! in_array($i['name'],$plugins_arr)) {
+ if(! in_array($i['name'], $plugins_arr)) {
unload_plugin($i['name']);
}
else {
@@ -1354,20 +1406,17 @@ function check_config(&$a) {
if(count($plugins_arr)) {
foreach($plugins_arr as $p) {
- if(! in_array($p,$installed_arr)) {
+ if(! in_array($p, $installed_arr)) {
load_plugin($p);
}
}
}
-
load_hooks();
- return;
}
-
-function fix_system_urls($oldurl,$newurl) {
+function fix_system_urls($oldurl, $newurl) {
require_once('include/crypto.php');
@@ -1415,7 +1464,7 @@ function fix_system_urls($oldurl,$newurl) {
$replace_xchan_url = ((strpos($rr['xchan_url'],$oldurl) !== false) ? true : false);
- $x = q("update xchan set xchan_addr = '%s', xchan_url = '%s', xchan_connurl = '%s', xchan_follow = '%s', xchan_connpage = '%s', xchan_photo_l = '%s', xchan_photo_m = '%s', xchan_photo_s = '%s', xchan_photo_date = '%s' where xchan_hash = '%s' limit 1",
+ $x = q("update xchan set xchan_addr = '%s', xchan_url = '%s', xchan_connurl = '%s', xchan_follow = '%s', xchan_connpage = '%s', xchan_photo_l = '%s', xchan_photo_m = '%s', xchan_photo_s = '%s', xchan_photo_date = '%s' where xchan_hash = '%s'",
dbesc($channel_address . '@' . $rhs),
dbesc(($replace_xchan_url) ? str_replace($oldurl,$newurl,$rr['xchan_url']) : $rr['xchan_url']),
dbesc(str_replace($oldurl,$newurl,$rr['xchan_connurl'])),
@@ -1428,7 +1477,7 @@ function fix_system_urls($oldurl,$newurl) {
dbesc($rr['xchan_hash'])
);
- $y = q("update hubloc set hubloc_addr = '%s', hubloc_url = '%s', hubloc_url_sig = '%s', hubloc_host = '%s', hubloc_callback = '%s' where hubloc_hash = '%s' and hubloc_url = '%s' limit 1",
+ $y = q("update hubloc set hubloc_addr = '%s', hubloc_url = '%s', hubloc_url_sig = '%s', hubloc_host = '%s', hubloc_callback = '%s' where hubloc_hash = '%s' and hubloc_url = '%s'",
dbesc($channel_address . '@' . $rhs),
dbesc($newurl),
dbesc(base64url_encode(rsa_sign($newurl,$c[0]['channel_prvkey']))),
@@ -1450,18 +1499,15 @@ function fix_system_urls($oldurl,$newurl) {
}
-
-
// wrapper for adding a login box. If $register == true provide a registration
// link. This will most always depend on the value of $a->config['system']['register_policy'].
// returns the complete html for inserting into the page
-
function login($register = false, $form_id = 'main-login', $hiddens=false) {
$a = get_app();
- $o = "";
+ $o = '';
$reg = false;
- $reglink = get_config('system','register_link');
+ $reglink = get_config('system', 'register_link');
if(! strlen($reglink))
$reglink = 'register';
@@ -1477,18 +1523,18 @@ function login($register = false, $form_id = 'main-login', $hiddens=false) {
$tpl = get_markup_template("logout.tpl");
}
else {
- $a->page['htmlhead'] .= replace_macros(get_markup_template("login_head.tpl"),array(
- '$baseurl' => $a->get_baseurl(true)
- ));
+// There's no such thing as login_head.tpl, has never been in Red, removed from Friendica 1 Jun 2013...
+
+// $a->page['htmlhead'] .= replace_macros(get_markup_template("login_head.tpl"), array(
+// '$baseurl' => $a->get_baseurl(true)
+// ));
$tpl = get_markup_template("login.tpl");
if(strlen($a->query_string))
- $_SESSION['login_return_url'] = $a->query_string;
+ $_SESSION['login_return_url'] = $a->query_string;
}
-
$o .= replace_macros($tpl,array(
-
'$dest_url' => $dest_url,
'$logout' => t('Logout'),
'$login' => t('Login'),
@@ -1497,102 +1543,119 @@ function login($register = false, $form_id = 'main-login', $hiddens=false) {
'$lpassword' => array('password', t('Password'), '', ''),
'$remember' => array('remember', t('Remember me'), '', ''),
'$hiddens' => $hiddens,
-
'$register' => $reg,
-
'$lostpass' => t('Forgot your password?'),
'$lostlink' => t('Password Reset'),
));
- call_hooks('login_hook',$o);
+ call_hooks('login_hook', $o);
return $o;
}
-// Used to end the current process, after saving session state.
-
-
+/**
+ * @brief Used to end the current process, after saving session state.
+ */
function killme() {
session_write_close();
exit;
}
-
-// redirect to another URL and terminate this process.
-
-
+/**
+ * @brief Redirect to another URL and terminate this process.
+ */
function goaway($s) {
header("Location: $s");
killme();
}
-
+/**
+ * @brief Returns the entity id of locally logged in account or false.
+ *
+ * Returns numeric account_id if authenticated or 0. It is possible to be
+ * authenticated and not connected to a channel.
+ *
+ * @return int|bool account_id or false
+ */
function get_account_id() {
if(get_app()->account)
return intval(get_app()->account['account_id']);
+
return false;
}
-
-// Returns the entity id of locally logged in user or false.
-
-
+/**
+ * @brief Returns the entity id (channel_id) of locally logged in user or false.
+ *
+ * Returns authenticated numeric channel_id if authenticated and connected to
+ * a channel or 0. Sometimes referred to as $uid in the code.
+ *
+ * @return int|bool channel_id or false
+ */
function local_user() {
- if((x($_SESSION,'authenticated')) && (x($_SESSION,'uid')))
+ if((x($_SESSION, 'authenticated')) && (x($_SESSION, 'uid')))
return intval($_SESSION['uid']);
+
return false;
}
-
-// Returns contact id of authenticated site visitor or false
-
-
+/**
+ * @brief Returns contact id (visitor_id) of authenticated site visitor or false.
+ *
+ * @return int|bool visitor_id or false
+ */
function remote_user() {
- if((x($_SESSION,'authenticated')) && (x($_SESSION,'visitor_id')))
+ if((x($_SESSION, 'authenticated')) && (x($_SESSION, 'visitor_id')))
return $_SESSION['visitor_id'];
+
return false;
}
-
-// contents of $s are displayed prominently on the page the next time
-// a page is loaded. Usually used for errors or alerts.
-
-
+/**
+ * Contents of $s are displayed prominently on the page the next time
+ * a page is loaded. Usually used for errors or alerts.
+ *
+ * @param string $s Text to display
+ */
function notice($s) {
$a = get_app();
- if(! x($_SESSION,'sysmsg')) $_SESSION['sysmsg'] = array();
+ if(! x($_SESSION, 'sysmsg')) $_SESSION['sysmsg'] = array();
+
if($a->interactive) {
// shameless plug, permission is denied and they have no identity.
// There's a fairly good chance that they've not got zot.
- if((stristr($s,t('permission denied'))) && (! get_observer_hash())) {
- $s .= '<br /><a href="http://getzot.com">' . t('Got Zot?') . '</a>';
+ if((stristr($s, t('permission denied'))) && (! get_observer_hash())) {
+ $s .= '<br><a href="http://getzot.com">' . t('Got Zot?') . '</a>';
}
$_SESSION['sysmsg'][] = $s;
}
}
-
+/**
+ * Contents of $s are displayed prominently on the page the next time a page is
+ * loaded. Usually used for information.
+ * For error and alerts use notice().
+ *
+ * @param string $s Text to display
+ */
function info($s) {
$a = get_app();
- if(! x($_SESSION,'sysmsg_info')) $_SESSION['sysmsg_info'] = array();
+ if(! x($_SESSION, 'sysmsg_info')) $_SESSION['sysmsg_info'] = array();
if($a->interactive)
$_SESSION['sysmsg_info'][] = $s;
}
-
-
-// wrapper around config to limit the text length of an incoming message
-
-
+/**
+ * @brief Wrapper around config to limit the text length of an incoming message
+ *
+ * @return int
+ */
function get_max_import_size() {
- return(intval(get_config('system','max_import_size')));
+ return(intval(get_config('system', 'max_import_size')));
}
-
-
-
/**
*
* Wrap calls to proc_close(proc_open()) and call hook
@@ -1606,8 +1669,6 @@ function get_max_import_size() {
*
* $cmd and string args are surrounded with ""
*/
-
-
function proc_run($cmd){
$a = get_app();
@@ -1640,24 +1701,28 @@ function proc_run($cmd){
if(count($args) && $args[0] === 'php')
$args[0] = ((x($a->config,'system')) && (x($a->config['system'],'php_path')) && (strlen($a->config['system']['php_path'])) ? $a->config['system']['php_path'] : 'php');
- for($x = 0; $x < count($args); $x ++)
+
+ for($x = 0; $x < count($args); $x++)
$args[$x] = escapeshellarg($args[$x]);
$cmdline = implode($args," ");
-
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));
+ proc_close(proc_open($cmdline ." &", array(), $foo));
}
-
+/**
+ * @brief Checks if we are running on M$ Windows.
+ *
+ * @return bool true if we run on M$ Windows
+ */
function is_windows() {
- return ((strtoupper(substr(PHP_OS,0,3)) === 'WIN') ? true : false);
+ return ((strtoupper(substr(PHP_OS, 0, 3)) === 'WIN') ? true : false);
}
@@ -1689,7 +1754,6 @@ function current_theme(){
$page_theme = null;
}
-
$is_mobile = $a->is_mobile || $a->is_tablet;
$standard_system_theme = ((isset($a->config['system']['theme'])) ? $a->config['system']['theme'] : '');
@@ -1704,7 +1768,7 @@ function current_theme(){
$system_theme = ((isset($a->config['system']['mobile_theme'])) ? $a->config['system']['mobile_theme'] : '');
$theme_name = ((isset($_SESSION) && x($_SESSION,'mobile_theme')) ? $_SESSION['mobile_theme'] : $system_theme);
- if($theme_name === '' || $theme_name === '---' ) {
+ if($theme_name === '' || $theme_name === '---' ) {
// user has selected to have the mobile theme be the same as the normal one
$system_theme = $standard_system_theme;
$theme_name = $standard_theme_name;
@@ -1712,21 +1776,20 @@ function current_theme(){
}
}
else {
- $system_theme = $standard_system_theme;
- $theme_name = $standard_theme_name;
+ $system_theme = $standard_system_theme;
+ $theme_name = $standard_theme_name;
if($page_theme)
$theme_name = $page_theme;
}
-
if($theme_name &&
(file_exists('view/theme/' . $theme_name . '/css/style.css') ||
file_exists('view/theme/' . $theme_name . '/php/style.php')))
return($theme_name);
foreach($app_base_themes as $t) {
- if(file_exists('view/theme/' . $t . '/css/style.css')||
+ if(file_exists('view/theme/' . $t . '/css/style.css') ||
file_exists('view/theme/' . $t . '/php/style.php'))
return($t);
}
@@ -1739,43 +1802,65 @@ function current_theme(){
/**
- * Return full URL to theme which is currently in effect.
+ * @brief Return full URL to theme which is currently in effect.
+ *
* Provide a sane default if nothing is chosen or the specified theme does not exist.
+ *
+ * @param bool $installing default false
+ *
+ * @return string
*/
-
function current_theme_url($installing = false) {
global $a;
+
$t = current_theme();
+
$opts = '';
$opts = (($a->profile_uid) ? '?f=&puid=' . $a->profile_uid : '');
$opts .= ((x($a->layout,'schema')) ? '&schema=' . $a->layout['schema'] : '');
if(file_exists('view/theme/' . $t . '/php/style.php'))
return('view/theme/' . $t . '/php/style.pcss' . $opts);
+
return('view/theme/' . $t . '/css/style.css');
}
+/**
+ * @brief Check if current user has admin role.
+ *
+ * Check if the current user has ACCOUNT_ROLE_ADMIN.
+ *
+ * @return bool true if user is an admin
+ */
function is_site_admin() {
$a = get_app();
+
if((intval($_SESSION['authenticated']))
&& (is_array($a->account))
&& ($a->account['account_roles'] & ACCOUNT_ROLE_ADMIN))
return true;
+
return false;
}
+/**
+ * @brief Check if current user has developer role.
+ *
+ * Check if the current user has ACCOUNT_ROLE_DEVELOPER.
+ *
+ * @return bool true if user is a developer
+ */
function is_developer() {
$a = get_app();
if((intval($_SESSION['authenticated']))
&& (is_array($a->account))
&& ($a->account['account_roles'] & ACCOUNT_ROLE_DEVELOPER))
return true;
+
return false;
}
-
function load_contact_links($uid) {
-
$a = get_app();
$ret = array();
@@ -1785,9 +1870,8 @@ function load_contact_links($uid) {
// logger('load_contact_links');
- $r = q("SELECT abook_id, abook_flags, abook_my_perms, abook_their_perms, xchan_hash, xchan_photo_m, xchan_name, xchan_url from abook left join xchan on abook_xchan = xchan_hash where abook_channel = %d and not (abook_flags & %d) ",
- intval($uid),
- intval(ABOOK_FLAG_SELF)
+ $r = q("SELECT abook_id, abook_flags, abook_my_perms, abook_their_perms, xchan_hash, xchan_photo_m, xchan_name, xchan_url from abook left join xchan on abook_xchan = xchan_hash where abook_channel = %d ",
+ intval($uid)
);
if($r) {
foreach($r as $rr){
@@ -1796,30 +1880,31 @@ function load_contact_links($uid) {
}
else
$ret['empty'] = true;
+
$a->contacts = $ret;
- return;
}
/**
- * returns querystring as string from a mapped array
+ * @brief Returns querystring as string from a mapped array.
+ *
+ * @param array $params mapped array with query parameters
+ * @param string $name of parameter, default null
*
- * @param params Array
* @return string
*/
-
-function build_querystring($params, $name=null) {
- $ret = "";
- foreach($params as $key=>$val) {
+function build_querystring($params, $name = null) {
+ $ret = '';
+ foreach($params as $key => $val) {
if(is_array($val)) {
- if($name==null) {
+ if($name === null) {
$ret .= build_querystring($val, $key);
} else {
- $ret .= build_querystring($val, $name."[$key]");
+ $ret .= build_querystring($val, $name . "[$key]");
}
} else {
$val = urlencode($val);
- if($name!=null) {
+ if($name != null) {
$ret .= $name . "[$key]" . "=$val&";
} else {
$ret .= "$key=$val&";
@@ -1839,6 +1924,7 @@ function argc() {
function argv($x) {
if(array_key_exists($x,get_app()->argv))
return get_app()->argv[$x];
+
return '';
}
@@ -1846,19 +1932,25 @@ function dba_timer() {
return microtime(true);
}
+/**
+ * @brief Returns xchan_hash from the observer.
+ *
+ * @return string Empty if no observer, otherwise xchan_hash from observer
+ */
function get_observer_hash() {
$observer = get_app()->get_observer();
if(is_array($observer))
return $observer['xchan_hash'];
+
return '';
}
/**
-* Returns the complete URL of the current page, e.g.: http(s)://something.com/network
-*
-* Taken from http://webcheatsheet.com/php/get_current_page_url.php
-*/
+ * Returns the complete URL of the current page, e.g.: http(s)://something.com/network
+ *
+ * Taken from http://webcheatsheet.com/php/get_current_page_url.php
+ */
function curPageURL() {
$pageURL = 'http';
if ($_SERVER["HTTPS"] == "on") {$pageURL .= "s";}
@@ -1871,54 +1963,76 @@ function curPageURL() {
return $pageURL;
}
-function get_custom_nav(&$a,$navname) {
+/**
+ * @brief Returns a custom navigation by name???
+ *
+ * If no $navname provided load default page['nav']
+ *
+ * @todo not fully implemented yet
+ *
+ * @param App $a global application object
+ * @param string $navname
+ *
+ * @return mixed
+ */
+function get_custom_nav(&$a, $navname) {
if(! $navname)
return $a->page['nav'];
// load custom nav menu by name here
-
}
-function construct_page(&$a) {
-
+/**
+ * @brief Loads a page definition file for a module.
+ *
+ * If there is no parsed Comanche template already load a module's pdl file
+ * and parse it with Comanche.
+ *
+ * @param App &$a global application object
+ */
+function load_pdl(&$a) {
require_once('include/comanche.php');
- // 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)) {
$n = 'mod_' . $a->module . '.pdl' ;
$u = comanche_get_channel_id();
if($u)
- $s = get_pconfig($u,'system',$n);
+ $s = get_pconfig($u, 'system', $n);
+
if((! $s) && (($p = theme_include($n)) != ''))
$s = @file_get_contents($p);
+
if($s)
- comanche_parser($a,$s);
+ comanche_parser($a, $s);
}
+}
- $comanche = ((count($a->layout)) ? true : false);
+/**
+ * @brief build the page.
+ *
+ * Build the page - now that we have all the components
+ *
+ * @param App &$a global application object
+ */
+function construct_page(&$a) {
- /**
- * Build the page - now that we have all the components
- */
+ $comanche = ((count($a->layout)) ? true : false);
require_once(theme_include('theme_init.php'));
$installing = false;
- if($a->module == 'setup')
+ if($a->module == 'setup') {
$installing = true;
- else {
+ } else {
nav($a);
}
if($comanche) {
if($a->layout['nav']) {
- $a->page['nav'] = get_custom_nav($a->layout['nav']);
+ $a->page['nav'] = get_custom_nav($a, $a->layout['nav']);
}
}
-
if(($p = theme_include(current_theme() . '.js')) != '')
head_add_js($p);
@@ -1927,10 +2041,10 @@ function construct_page(&$a) {
require_once('include/js_strings.php');
- if(x($a->page,'template_style'))
+ if(x($a->page, 'template_style'))
head_add_css($a->page['template_style'] . '.css');
else
- head_add_css(((x($a->page,'template')) ? $a->page['template'] : 'default' ) . '.css');
+ head_add_css(((x($a->page, 'template')) ? $a->page['template'] : 'default' ) . '.css');
head_add_css('mod_' . $a->module . '.css');
head_add_css(current_theme_url($installing));
@@ -1940,11 +2054,12 @@ function construct_page(&$a) {
$a->build_pagehead();
$arr = $a->get_widgets();
- ksort($arr,SORT_NUMERIC);
+ ksort($arr, SORT_NUMERIC);
if(count($arr)) {
foreach($arr as $x) {
- if(! array_key_exists($x['location'],$a->page))
+ if(! array_key_exists($x['location'], $a->page))
$a->page[$x['location']] = '';
+
$a->page[$x['location']] .= $x['html'];
}
}
@@ -1960,27 +2075,25 @@ function construct_page(&$a) {
if($comanche) {
$arr = array('module' => $a->module, 'layout' => $a->layout);
- call_hooks('construct_page',$arr);
+ 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) {
- $v = preg_replace_callback('/\$region_([a-zA-Z0-9]+)/ism','comanche_replace_region',$v);
+ if((strpos($k, 'region_') === 0) && strlen($v)) {
+ if(strpos($v, '$region_') !== false) {
+ $v = preg_replace_callback('/\$region_([a-zA-Z0-9]+)/ism', 'comanche_replace_region', $v);
}
// And a couple of convenience macros
- if(strpos($v,'$nav') !== false) {
- $v = str_replace('$nav',$a->page['nav'],$v);
+ if(strpos($v, '$nav') !== false) {
+ $v = str_replace('$nav', $a->page['nav'], $v);
}
- if(strpos($v,'$content') !== false) {
-
- $v = str_replace('$content',$a->page['content'],$v);
+ if(strpos($v, '$content') !== false) {
+ $v = str_replace('$content', $a->page['content'], $v);
}
- $a->page[substr($k,7)] = $v;
-
+ $a->page[substr($k, 7)] = $v;
}
}
}
@@ -2007,37 +2120,54 @@ function construct_page(&$a) {
header("Content-type: text/html; charset=utf-8");
require_once(theme_include(
- ((x($a->page,'template'))
- ? $a->page['template']
- : 'default' )
- . '.php' )
+ ((x($a->page, 'template')) ? $a->page['template'] : 'default' ) . '.php' )
);
-
- return;
}
-
+/**
+ * @brief Returns RedMatrix's root directory.
+ *
+ * @return string
+ */
function appdirpath() {
return dirname(__FILE__);
}
-
+/**
+ * @brief Set a pageicon.
+ *
+ * @param string $icon
+ */
function head_set_icon($icon) {
global $a;
+
$a->data['pageicon'] = $icon;
// logger('head_set_icon: ' . $icon);
}
+/**
+ * @brief Get the pageicon.
+ *
+ * @return string absolut path to pageicon
+ */
function head_get_icon() {
global $a;
+
$icon = $a->data['pageicon'];
- if(! strpos($icon,'://'))
+ if(! strpos($icon, '://'))
$icon = z_root() . $icon;
+
return $icon;
}
+/**
+ * @brief Return the Realm of the directory.
+ *
+ * @return string
+ */
function get_directory_realm() {
- if($x = get_config('system','directory_realm'))
+ if($x = get_config('system', 'directory_realm'))
return $x;
+
return DIRECTORY_REALM;
-} \ No newline at end of file
+}
diff --git a/doc/AdvancedSearch.md b/doc/AdvancedSearch.md
index 5a9a5a3bc..a67c1fc1f 100644
--- a/doc/AdvancedSearch.md
+++ b/doc/AdvancedSearch.md
@@ -50,8 +50,4 @@ Example:
name="charlie brown" and country=canada and not gender=female
-
-
-
-
-
+#include doc/macros/main_footer.bb;
diff --git a/doc/Comanche.md b/doc/Comanche.md
index 7374e8406..56bf68457 100644
--- a/doc/Comanche.md
+++ b/doc/Comanche.md
@@ -166,4 +166,4 @@ Please note that pasting this example into a layout page is not likely to do any
[/region]
-
+#include doc/macros/main_footer.bb;
diff --git a/doc/Creating-Templates.md b/doc/Creating-Templates.md
index 35003cb1a..6de627f39 100644
--- a/doc/Creating-Templates.md
+++ b/doc/Creating-Templates.md
@@ -88,4 +88,6 @@ and this would place a profile widget into the "foo" region you created.
Use the CSS file to position the region on the page where desired and optionally control its size.
-[To be continued] \ No newline at end of file
+[To be continued]
+
+#include doc/macros/main_footer.bb;
diff --git a/doc/DerivedTheme1.md b/doc/DerivedTheme1.md
index d20a958f2..d4a7ee148 100644
--- a/doc/DerivedTheme1.md
+++ b/doc/DerivedTheme1.md
@@ -74,5 +74,4 @@ Now create the actual CSS file for your theme. Put it in view/theme/mytheme/css
You've just successfully created a derived theme. This needs to be enabled in the admin "themes" panel, and then anybody on the site can use it by selecting it in Settings->Display Settings as their default theme.
-
- \ No newline at end of file
+#include doc/macros/main_footer.bb;
diff --git a/doc/Developers.md b/doc/Developers.md
index baadd1a2e..8252fa91d 100644
--- a/doc/Developers.md
+++ b/doc/Developers.md
@@ -52,4 +52,4 @@ In the interests of consistency we adopt the following code styling. We may acce
* 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.
-
+#include doc/macros/main_footer.bb;
diff --git a/doc/External-Resources.md b/doc/External-Resources.md
deleted file mode 100644
index c0880f362..000000000
--- a/doc/External-Resources.md
+++ /dev/null
@@ -1,27 +0,0 @@
-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/Features.md b/doc/Features.md
index 184652742..78c77c9bd 100644
--- a/doc/Features.md
+++ b/doc/Features.md
@@ -105,3 +105,4 @@ Ability to mark special posts with a star indicator
Provide a personal tag cloud on your channel page
+#include doc/macros/main_footer.bb;
diff --git a/doc/Hooks.md b/doc/Hooks.md
index 350068314..90edff623 100644
--- a/doc/Hooks.md
+++ b/doc/Hooks.md
@@ -133,3 +133,4 @@ Hooks - Complete List
* $a->module . '_pre_' . $selname
* $a->module . '_pre_' . $selname
+#include doc/macros/main_footer.bb;
diff --git a/doc/Install.md b/doc/Install.md
deleted file mode 100644
index 1ff6e69e7..000000000
--- a/doc/Install.md
+++ /dev/null
@@ -1,111 +0,0 @@
-
-Red Installation
-===============
-
-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 (https://github.com/friendica/red/issues). 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. Put some thought into this - because changing it is currently not-supported. Things will break, and some of your friends may have difficulty communicating with you. We plan to address this limitation in a future release.
-
-Decide if you will use SSL and obtain an SSL certificate before software installation. You SHOULD use SSL. If you use SSL, you MUST use a "browser-valid" certificate. You MUST NOT use self-signed certificates!
-
-Please test your certificate prior to installation. A web tool for testing your certificate is available at "http://www.digicert.com/help/". When visiting your site for the first time, please use the SSL ("https://") URL if SSL is available. This will avoid problems later. The installation routine will not allow you to use a non browser-valid certificate.
-
-This restriction is incorporated because public posts from you may for example contain references to images on your own hub. If your certificate is not known by the internet browser of users they get a warning message complaining about some security issues. Although these complains are not the real truth - there are no security issues with your encryption! - the users may be confused, nerved or even worse may become scared about Red Matrix having security issues. Use one of the free certification instances!
-
-1. Requirements
- - Apache with mod-rewrite enabled and "Options All" 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 "mywebsite" would be
-
- `git clone https://github.com/friendica/red.git mywebsite`
-
- - and then you can pick up the latest changes at any time with
-
- `git pull`
-
- - make sure folder *store/[data]/smarty3* exists and is writable by webserver
-
- `mkdir -p "store/\[data\]/smarty3"`
-
- `chmod 777 "store/\[data\]/smarty3"`
-
- - For installing addons
-
- - First you should be **on** your website folder
-
- `cd mywebsite`
-
- - Then you should clone the addon repository (separtely)
-
- `git clone https://github.com/friendica/red-addons.git 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 "dot" 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:
-
- - ".htconfig.php" exists ... If not, edit htconfig.php and change system settings. Rename
-to .htconfig.php
- - Database is populated. ... If not, import the contents of "database.sql" 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 "/base/directory", and "/path/to/php" as appropriate for your situation.
-
-If you are using a Linux server, run "crontab -e" 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 "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.
diff --git a/doc/Intro-for-Developers.md b/doc/Intro-for-Developers.md
deleted file mode 100644
index bf74cb7c1..000000000
--- a/doc/Intro-for-Developers.md
+++ /dev/null
@@ -1,105 +0,0 @@
-File system layout:
-===================
-
-[addon] optional addons/plugins
-
-[boot.php] Every process uses this to bootstrap the application structure
-
-[doc] Help Files
-
-[images] core required images
-
-[include] The "model" in MVC - (back-end functions), also contains PHP "executables" 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. http://sitename/foo 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
-
-
-The Database:
-=============
-
-* abook - contact table, replaces Friendica 'contact'
-* account - service provider account
-* addon - registered plugins
-* attach - file attachments
-* auth_codes - OAuth usage
-* cache - TBD
-* challenge - old DFRN structure, may re-use or may deprecate
-* channel - replaces Friendica 'user'
-* clients - OAuth usage
-* config - main configuration storage
-* event - Events
-* fcontact - friend suggestion stuff
-* ffinder - friend suggestion stuff
-* fserver - obsolete
-* fsuggest - friend suggestion stuff
-* gcign - ignored friend suggestions
-* gcontact - social graph storage, obsolete
-* glink - social graph storage - obsolete
-* group - privacy groups
-* group_member - privacy groups
-* hook - plugin hook registry
-* hubloc - Red location storage, ties a location to an xchan
-* intro - DFRN introductions, may be obsolete
-* item - posts
-* item_id - other identifiers on other services for posts
-* mail - private messages
-* manage - may be unused in Red, table of accounts that can "su" each other
-* notify - notifications
-* notify-threads - need to factor this out and use item thread info on notifications
-* outq - Red output queue
-* pconfig - personal (per channel) configuration storage
-* photo - photo storage
-* profile - channel profiles
-* profile_check - DFRN remote auth use, may be obsolete
-* queue - old Friendica queue, obsolete
-* register - registrations requiring admin approval
-* session - web session storage
-* site - site table to find directory peers
-* spam - unfinished
-* term - item taxonomy (categories, tags, etc.) table
-* tokens - OAuth usage
-* verify - general purpose verification structure
-* xchan - replaces 'gcontact', list of known channels in the universe
-* xlink - "friends of friends" linkages derived from poco
-* xprof - if this hub is a directory server, contains basic public profile info of everybody in the network
-* xtag - if this hub is a directory server, contains tags or interests of everybody in the network
-
-
-How to theme Red - by Olivier Migeot
-====================================
-
-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 <theme>.
-
-Oh, and don't forget to rename the _init function in <theme>/php/theme.php to be <theme>_init() instead of redbasic_init().
-
-At that point, if you need to add javascript or css files, add them to <theme>/js or <theme>/css, and then "register" them in <theme>_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/<theme>/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.
-
-
-
diff --git a/doc/Plugins.md b/doc/Plugins.md
index 0db7c9ebc..b657f5ceb 100644
--- a/doc/Plugins.md
+++ b/doc/Plugins.md
@@ -258,3 +258,4 @@ The Red Matrix has _install and _uninstall functions but these are used differen
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.
+#include doc/macros/main_footer.bb;
diff --git a/doc/Privacy.md b/doc/Privacy.md
index 60e087e06..2709f47aa 100644
--- a/doc/Privacy.md
+++ b/doc/Privacy.md
@@ -25,10 +25,6 @@ An individual computer or server connected to the RedMatrix. These are provided
The system operator of an individual hub.
-**spy network**
-
-Typically large centralised providers including but not limited to Facebook and Google. RedMatrix PRIVATE communications are designed to even be resistant to monitoring by the American NSA, however the technical capabilities of the NSA are not completely known and no guarantee of privacy against this organisation can be made. RedMatrix PUBLIC communications are not protected in any way.
-
##Policies
**Public Information**
@@ -52,7 +48,7 @@ Comments to posts that were created by others and posts which are designated as
**Private Information**
-RedMatrix developers will ensure that any content you provide which is designated as PRIVATE will be protected against eavesdropping - to the best of their ability. Private content is generally hidden or obscured even from hub administrators. It is also stripped from email notifications. It is difficult but NOT impossible for this content to be seen by a hub administrator who is determined to monitor your communications. We consider this like the lock on the door of a house. It will generally keep the house safe, but a determined burgler will ignore the lock on the door and instead break a window.
+RedMatrix developers will ensure that any content you provide which is designated as PRIVATE will be protected against eavesdropping - to the best of their ability. Private content is generally hidden or obscured even from hub administrators. It is also stripped from email notifications. It is difficult but NOT impossible for this content to be seen by a hub administrator. This is a side effect of the physical laws of the universe. Unfortunately, if a database needs to decrypt a post at display time, it must have the means to decrypt the post! End to end encryption is also provided and this CANNOT be seen, even by a determined administrator.
##Identity Privacy
@@ -68,9 +64,10 @@ A decentralized identity has a lot of advantages and gives you al lot of interes
The RedMatrix is a global network which is inclusive of all religions and cultures. This does not imply that every member of the network feels the same way you do on contentious issues, and some people may be STRONGLY opposed to the content you post. In general, if you wish to post something that you know may nor be universally acceptable, the best approach is to restrict the audience using privacy controls to a small circle of friends.
-The RedMatrix as a network provider is unable to censor content. However, hub administrators MAY censor any content which appears on their hub to comply with local laws or even personal judgement. Their decision is final. If you have issues with any hub administrator, you may move your account and postings to another site which is more in line with your expectations. If your content consists of material which is illegal or may cause issues, you are STRONGLY encouraged to host your own (become a hub administrator). You may still find that your content is blocked on some hubs, but the RedMatrix as a network cannot block it from being posted.
+The RedMatrix as a network provider is unable to censor content. However, hub administrators MAY censor any content which appears on their hub to comply with local laws or even personal judgement. Their decision is final. If you have issues with any hub administrator, you may move your account and postings to another site which is more in line with your expectations. Please check (periodically) the [Terms of Service](help/TermsOfService) of your hub to learn about any rules or guidelines. If your content consists of material which is illegal or may cause issues, you are STRONGLY encouraged to host your own (become a hub administrator). You may still find that your content is blocked on some hubs, but the RedMatrix as a network cannot block it from being posted.
The RedMatrix RECOMMENDS that hub administrators provide a grace period of 1-2 days between warning an account holder of content that needs to be removed and physically removing or disabling the account. This will give the content owner an opportunity to export their channel meta-data and import it to another site. In rare cases the content may be of such a nature to justify the immediate termination of the account. This is a hub decision, not a RedMatrix decision.
If you typically and regularly post content of an adult or offensive nature, you are STRONGLY encouraged to mark your account "NSFW" (Not Safe For Work). This will prevent the display of your profile photo in the directory except to viewers that have chosen to disable "safe mode". If your profile photo is found by directory administrators to be adult or offensive, the directory administrator MAY flag your profile photo as NSFW. There is currently no official mechanism to contest or reverse this decision, which is why you SHOULD mark your own account NSFW if it is likely to be inappropriate for general audiences.
+#include doc/macros/main_footer.bb;
diff --git a/doc/Profiles.md b/doc/Profiles.md
deleted file mode 100644
index 1e9e0fe5e..000000000
--- a/doc/Profiles.md
+++ /dev/null
@@ -1,36 +0,0 @@
-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 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 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 "Keywords" to your profile. Such as "music, linux, photography" or whatever. You can add as many keywords as you like.
-
-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.
-
-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.
-
-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 found be people unless you give them your channel address, you may leave your profile unpublished.
-
-**Keywords and Directory Search**
-
-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 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/Remove-Account.md b/doc/Remove-Account.md
index bc1301b16..322b95578 100644
--- a/doc/Remove-Account.md
+++ b/doc/Remove-Account.md
@@ -21,3 +21,4 @@ If you have identity clones on other sites this only removes the channel instanc
on this site.
+#include doc/macros/main_footer.bb;
diff --git a/doc/Schema-development.md b/doc/Schema-development.md
index 481792fcc..e800479f6 100644
--- a/doc/Schema-development.md
+++ b/doc/Schema-development.md
@@ -74,3 +74,5 @@ theme are as follows:
* reply_photo
* sloppy_photos
Determins whether photos are "sloppy" or aligned. Set or unset (1 or '')
+
+#include doc/macros/main_footer.bb;
diff --git a/doc/Tags-and-Mentions.md b/doc/Tags-and-Mentions.md
index cdee73167..84442dd7a 100644
--- a/doc/Tags-and-Mentions.md
+++ b/doc/Tags-and-Mentions.md
@@ -21,4 +21,6 @@ You may also tag public collections. When you create or edit a collection, there
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, #cars 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 numerica hashtag, please add some descriptive text such as #2012-elections. \ No newline at end of file
+Topical tags are also not linked if they are purely numeric, e.g. #1. If you wish to use a numerica hashtag, please add some descriptive text such as #2012-elections.
+
+#include doc/macros/main_footer.bb;
diff --git a/doc/To-Do-Code.md b/doc/To-Do-Code.md
deleted file mode 100644
index bdbbc6cdf..000000000
--- a/doc/To-Do-Code.md
+++ /dev/null
@@ -1,60 +0,0 @@
-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.
-
-* Documentation - see [Red Documentation Project To-Do List](help/To-Do)
-
-* Finish the anti-spam bayesian engine
-
-* Integrate the "open site" list with the register page
-
-* implement oembed provider interface
-
-* implement openid server interface
-
-* Write more webpage layouts
-
-* Write more webpage widgets
-
-* (Advanced) create a UI for building Comanche pages
-
-* External post connectors - create standard interface
-
-* External post connectors, add popular services
-
-* templatise and translate the Web interface to webDAV
-
-* Extend WebDAV to provide desktop access to photo albums
-
-* service classes - provide a pluggable subscription payment gateway for premium accounts
-
-* 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 - 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
-
-* App taxonomy
-
-* 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)
-
-* 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.
-
-* Implement owned and exchangeable "things".
-
-* 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).
-
-* 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.
-
-
- \ No newline at end of file
diff --git a/doc/To-Do.md b/doc/To-Do.md
deleted file mode 100644
index 76b78b6ac..000000000
--- a/doc/To-Do.md
+++ /dev/null
@@ -1,23 +0,0 @@
-Documentation we need to write
-==============================
-
-
-* Database schema detailed descriptions
-
-* Complete plugin hook documentation
-
-* API documentation
-
-* Function and code documentation (doxygen)
-
-* New Member guide
-
-* "Extra Feature" reference, description of each
-
-* Detailed Personal Settings Documentation
-
-* Administration Guide (post-install)
-
-* Administration Guide (pre-install)
-
-
diff --git a/doc/Translations.md b/doc/Translations.md
index 724286052..7435a28bf 100644
--- a/doc/Translations.md
+++ b/doc/Translations.md
@@ -89,3 +89,5 @@ Links
------
[1]: http://www.transifex.com/projects/p/red-matrix/
+
+#include doc/macros/main_footer.bb;
diff --git a/doc/Webpages.md b/doc/Webpages.md
index e9943fda8..dafd3661d 100644
--- a/doc/Webpages.md
+++ b/doc/Webpages.md
@@ -11,4 +11,6 @@ The "page link title" box allows a user to specify the "pagelinktitle" of this U
Beneath the page creation box, a list of existing pages will appear with an "edit" 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 "admin" and then the channel called "admin" creates a webpage called "home", 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
+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 "admin" and then the channel called "admin" creates a webpage called "home", we will display it's content on your websites home page. We expect this functionality to be extended to other areas in future.
+
+#include doc/macros/main_footer.bb;
diff --git a/doc/Widgets.md b/doc/Widgets.md
index 48006adcd..d45f719d9 100644
--- a/doc/Widgets.md
+++ b/doc/Widgets.md
@@ -39,6 +39,12 @@ Some/many of these widgets have restrictions which may restrict the type of page
* categories - categories filter (channel page)
* tagcloud_wall - tagcloud for channel page only
+ * args: 'limit' - number of tags to return (default 50)
+<br />&nbsp;<br />
+
+* catcloud_wall - tagcloud for channel page categories
+ * args: 'limit' - number of categories to return (default 50)
+<br />&nbsp;<br />
* affinity - affinity slider for network page - must be logged in
@@ -79,3 +85,18 @@ Some/many of these widgets have restrictions which may restrict the type of page
* style - CSS style string
<br />&nbsp;<br />
+* photo_rand - display a random photo from one of your photo albums. Photo permissions are honoured
+ * args:
+ * album - album name (very strongly recommended if you have lots of photos)
+ * scale - typically 0 (original size), 1 (640px), or 2 (320px)
+ * style - CSS style string
+ * channel_id - if not your own
+<br />&nbsp;<br />
+
+* random_block - display a random block element from your webpage design tools collection. Permissions are honoured.
+ * args:
+ * contains - only return blocks which include the contains string in the block name
+ * channel_id - if not your own
+<br />&nbsp;<br />
+
+#include doc/macros/main_footer.bb;
diff --git a/doc/Zot---A-High-Level-Overview.md b/doc/Zot---A-High-Level-Overview.md
index 07f353552..990ea037b 100644
--- a/doc/Zot---A-High-Level-Overview.md
+++ b/doc/Zot---A-High-Level-Overview.md
@@ -104,4 +104,6 @@ Good enough. Podunk.edu checks out the story and indeed, it is example.com, and
-And that's the package (the original message). Example.com converts this into a form suitable for viewing by Nickordo and notifies Nickordo that there's a new message. Podunk.edu **might** discover that there are other packages waiting for example.com. If this happens it may also send any and all other waiting packages at this time. Each has the original tracking number attached. \ No newline at end of file
+And that's the package (the original message). Example.com converts this into a form suitable for viewing by Nickordo and notifies Nickordo that there's a new message. Podunk.edu **might** discover that there are other packages waiting for example.com. If this happens it may also send any and all other waiting packages at this time. Each has the original tracking number attached.
+
+#include doc/macros/main_footer.bb;
diff --git a/doc/about.bb b/doc/about.bb
index aa4fde54d..bd91970f6 100644
--- a/doc/about.bb
+++ b/doc/about.bb
@@ -20,5 +20,5 @@ Along the way, Red offers a number of unique goodies:
[b]Privacy:[/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 [zrl=[baseurl]/help/main]Main documentation page[/zrl]
+#include doc/macros/main_footer.bb;
diff --git a/doc/account_basics.bb b/doc/account_basics.bb
index 3c5d28fbc..a8fd6e5fd 100644
--- a/doc/account_basics.bb
+++ b/doc/account_basics.bb
@@ -31,3 +31,5 @@ See Also
[zrl=[baseurl]/help/permissions]Permissions[/zrl]
[zrl=[baseurl]/help/profiles]Profiles[/zrl]
[zrl=[baseurl]/help/remove_account]Remove Account[/zrl]
+
+#include doc/macros/main_footer.bb;
diff --git a/doc/accounts.bb b/doc/accounts.bb
index bf57f1234..7c0378504 100644
--- a/doc/accounts.bb
+++ b/doc/accounts.bb
@@ -1,4 +1,4 @@
This one still needs to be written.
-Return to the [zrl=[baseurl]/help/main]Main documentation page[/zrl]
+#include doc/macros/main_footer.bb;
diff --git a/doc/accounts_profiles_channels_basics.bb b/doc/accounts_profiles_channels_basics.bb
index f803f25e9..f8abd3c3b 100644
--- a/doc/accounts_profiles_channels_basics.bb
+++ b/doc/accounts_profiles_channels_basics.bb
@@ -7,7 +7,7 @@ You have [i]one[/i] account. This consists of your email account and your passwo
[i]Think of your account as the way you authenticate at one Red Matrix site. It lets you do things, such as creating profiles and channels with which you can connect to other people.[/i]
[b]Profile[/b]
-You have surely registered with some other internet services, such as forums or online communities. For all of them you provided some information about yourself, such as date of birth, country, age and the likes. If you like you can see your profile here: [baseurl]/profile/[observer.webname] and edit it by clicking on the pencil icon next to your avatar image.
+You have surely registered with some other internet services, such as forums or online communities. For all of them you provided some information about yourself, such as date of birth, country, age and the likes. [observer=1]If you like you can see your profile here: [baseurl]/profile/[observer.webname] and edit it by clicking on the pencil icon next to your avatar image. [/observer]
Unlike other services Red Matrix offers you the advantage of creating [i]many more profiles[/i]. That way you are able to distinguish between profiles targeted specially at everyone (your public profile), your work mates, your family and your partner.
[i]Think of your profile as the basic information about yourself you tell other people.[/i]
@@ -15,5 +15,5 @@ Unlike other services Red Matrix offers you the advantage of creating [i]many mo
During the registration you created your first [i]channel[/i]. Yes, besides several profiles you are able to have several channels. This might be a bit confusing in the beginning, but let's clear things up. You already have created one channel. You can use this one for the public, to communicate with people about every day life. But perhaps you are an avid book reader and many people are bored by that. So you open a [i]second channel[/i] just for the book lovers, where you all can talk about books as much as you like. Obviously this is a new stream of posts, with a new profile (... or new profile[i]s[/i] ...) and completely different contacts. Some connections might exist in both channels, but there will be some that are exclusive to only one of both. You yourself just switch between both of them just like you would in real life switch when talking to people you meet on the street or people you meet specially to talk about books. You can even connect to yourself, or better: to your other channel. :)
[i]Think of a channel as different spaces dedicated to different topics where you meet with different people.[/i]
-Return to the [zrl=[baseurl]/help/main]Main documentation page[/zrl]
+#include doc/macros/main_footer.bb;
diff --git a/doc/addons.bb b/doc/addons.bb
index a4b76929b..726b437ed 100644
--- a/doc/addons.bb
+++ b/doc/addons.bb
@@ -1,5 +1,5 @@
* [zrl=[baseurl]/help/addons_gnusocial]Posting To Gnu Social[/zrl]
-Return to the [zrl=[baseurl]/help/main]Main documentation page[/zrl]
+#include doc/macros/main_footer.bb;
diff --git a/doc/addons_gnusocial.bb b/doc/addons_gnusocial.bb
index 664f1df39..339add5a9 100644
--- a/doc/addons_gnusocial.bb
+++ b/doc/addons_gnusocial.bb
@@ -60,5 +60,5 @@ If you don't choose this option, you will have an option to send a post to your
If all goes well, you have just cross-posted your RedMatrix post to your account on a GNUsocial instance.
-Return to the [zrl=[baseurl]/help/main]Main documentation page[/zrl]
+#include doc/macros/addons_footer.bb;
diff --git a/doc/api_functions.bb b/doc/api_functions.bb
index ade6efd42..c9d90c716 100644
--- a/doc/api_functions.bb
+++ b/doc/api_functions.bb
@@ -129,5 +129,5 @@ Red proposed API extensions to the Twitter API
api/albums/destroy (R),J
api/friends/permissions (R),J
-Return to the [zrl=[baseurl]/help/main]Main documentation page[/zrl]
+#include doc/macros/main_footer.bb;
diff --git a/doc/api_posting.bb b/doc/api_posting.bb
index eeb7127fd..fa9558268 100644
--- a/doc/api_posting.bb
+++ b/doc/api_posting.bb
@@ -2,7 +2,7 @@
The API allows you to post to the red# by HTTP POST request. Below you see an example using the command line tool cURL:
-[code]curl -ssl -u [color=blue]$E-Mail[/color]:[color=blue]$Password[/color] -d "[color=blue]$Parameters[/color]" [url][observer.baseurl]/api/statuses/update
+[code]curl -ssl -u [color=blue]$E-Mail[/color]:[color=blue]$Password[/color] -d "[color=blue]$Parameters[/color]" [url][observer=1][observer.baseurl][/observer][observer=0]example.com[/observer]/api/statuses/update
[/url][/code]
[table][tr][td]$E-Mail:[/td][td]The E-Mail Adress you use to login[/td][/tr]
[tr][td]$Password:[/td][td]The Password you use to login[/td][/tr]
@@ -18,6 +18,6 @@ The API allows you to post to the red# by HTTP POST request. Below you see an ex
[/ul]
-Instead of calling [observer.baseurl]/api/statuses/update which returns a json (you could also add .json on the end to clarify) output, you can use [observer.baseurl]/api/statuses/update.xml to get an xml formatted return.
+Instead of calling [observer=1][observer.baseurl][/observer][observer=0]example.com[/observer]/api/statuses/update which returns a json (you could also add .json on the end to clarify) output, you can use [observer.baseurl]/api/statuses/update.xml to get an xml formatted return.
-Instead of Basic HTTP Authentification you could also use oAuth. \ No newline at end of file
+Instead of Basic HTTP Authentification you could also use oAuth.
diff --git a/doc/bbcode.html b/doc/bbcode.html
index 97a0bbc6c..0f070eaa2 100644
--- a/doc/bbcode.html
+++ b/doc/bbcode.html
@@ -66,8 +66,8 @@
<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 />
<li>[qr]text to post[/qr] - create a QR code.<br />
<br />
-Return to the <a href="/help/main">Main documentation page[/a]
+#include doc/macros/main_footer.bb;
</div>
diff --git a/doc/campaign.bb b/doc/campaign.bb
index f3d23baa6..b05846a0b 100644
--- a/doc/campaign.bb
+++ b/doc/campaign.bb
@@ -233,5 +233,5 @@ Raising more than our initial goal of funds, will speed up our development effor
Awesome. We'd be more than happy to chat. You can find us {HERE}
-Return to the [url=[baseurl]/help/main]Main documentation page[/url]
+#include doc/macros/main_footer.bb;
diff --git a/doc/channels.bb b/doc/channels.bb
index 42253a664..ff0446541 100644
--- a/doc/channels.bb
+++ b/doc/channels.bb
@@ -20,11 +20,11 @@ You will be asked to provide a channel name, and a short nick name. For a channe
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.
+Once you have done this, your channel is ready to use. At [observer=1][observer.url][/observer][observer=0]example.com/channel/username[/observer] 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.
-Return to the [zrl=[baseurl]/help/main]Main documentation page[/zrl]
+#include doc/macros/main_footer.bb;
diff --git a/doc/checking_account_quota_usage.bb b/doc/checking_account_quota_usage.bb
index 5bf5b3163..ca7e070ad 100644
--- a/doc/checking_account_quota_usage.bb
+++ b/doc/checking_account_quota_usage.bb
@@ -6,12 +6,15 @@ Here's how you can quickly check how much of your assigned quota you're currentl
[b]Check file storage quota levels[/b]
Visit the following URL in your browser:
-[observer.baseurl]/filestorage/[observer.webname]
+[observer=1][observer.baseurl]/filestorage/[observer.webname][/observer]
+[observer=0]example.com/filestorage/username[/observer]
[b]Check uploaded photos storage quota levels[/b]
-[observer.baseurl]/photos/[observer.webname]
+[observer=1][observer.baseurl]/photos/[observer.webname][/observer]
+[observer=0]example.com/photos/username[/observer]
Example:
-[observer.baseurl]/filestorage/[observer.webname]
+[observer=1][observer.baseurl]/filestorage/[observer.webname][/observer]
+[observer=0]example.com/filestorage/username[/observer]
-Return to the [zrl=[baseurl]/help/main]Main documentation page[/zrl]
+#include doc/macros/main_footer.bb;
diff --git a/doc/cloud.bb b/doc/cloud.bb
index e71da78e8..92b97a21c 100644
--- a/doc/cloud.bb
+++ b/doc/cloud.bb
@@ -24,4 +24,4 @@ See: [zrl=[baseurl]/help/cloud_desktop_clients]Cloud Desktop Clients[/zrl]
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.
-Return to the [zrl=[baseurl]/help/main]Main documentation page[/zrl]
+#include doc/macros/main_footer.bb;
diff --git a/doc/cloud_desktop_clients.bb b/doc/cloud_desktop_clients.bb
index 557acb472..2f099527f 100644
--- a/doc/cloud_desktop_clients.bb
+++ b/doc/cloud_desktop_clients.bb
@@ -18,4 +18,4 @@
Note: There have been reported issues with clients that use "chunked transfer encoding", which includes Apple iOS services, and also the "AnyClient" and "CyberDuck" tools. These work fine for downloads, but uploads often end up with files of zero size. This is caused by an incorrect implemention of chunked encoding in some current FCGI (fast-cgi) implementations. Apache running with PHP as a module does not have these issues, but when running under FCGI you may need to use alternative clients or use the web uploader. At the time of this writing the issue has been open and no updates provided for at least a year. If you encounter zero size files with other clients, please check the client notes; as there are occasional configuration issues which can also produce these symptoms.
-Return to the [zrl=[baseurl]/help/main]Main documentation page[/zrl] \ No newline at end of file
+#include doc/macros/cloud_footer.bb;
diff --git a/doc/comanche.bb b/doc/comanche.bb
index d329cc34b..19a74833e 100644
--- a/doc/comanche.bb
+++ b/doc/comanche.bb
@@ -28,10 +28,10 @@ Currently there are three layout templates, unless your site provides additional
edgestwo - two column layout with fixed side margins
edgesthree - three column layout with fixed side margins
full - three column layout with fixed side margins and adds a "header" region beneath the navigation bar
-
- redable
-
- A template for reading longer texts. Three columns: aside, content and right_aside. For maximum readability it is advised to only use the middle content column.
+
+ redable
+
+ A template for reading longer texts. Three columns: aside, content and right_aside. For maximum readability it is advised to only use the middle content column.
[/code]
@@ -45,11 +45,11 @@ To choose a layout template, use the 'template' tag.
To choose the "choklet" template with the "three" flavour:
[code]
- [template=three]choklet[/template]
-[/code]
-
-Or the "redable" (sic) template:
-
+ [template=three]choklet[/template]
+[/code]
+
+Or the "redable" (sic) template:
+
[code]
[template]redable[/template]
[/code]
@@ -188,4 +188,4 @@ The 'comment' tag is used to delimit comments. These comments will not appear on
[/region]
[/code]
-Return to the [url=[baseurl]/help/main]Main documentation page[/url]
+#include doc/macros/main_footer.bb;
diff --git a/doc/connecting_to_channels.bb b/doc/connecting_to_channels.bb
index a067b6cf2..901565ad3 100644
--- a/doc/connecting_to_channels.bb
+++ b/doc/connecting_to_channels.bb
@@ -16,4 +16,4 @@ You may also connect with any channel by visiting the &quot;Connections&quot; pa
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.
-Return to the [url=[baseurl]/help/main]Main documentation page[/url]
+#include doc/macros/main_footer.bb;
diff --git a/doc/connecting_to_channels.md b/doc/connecting_to_channels.md
index 8a7b0bdde..1e0d4d3fc 100644
--- a/doc/connecting_to_channels.md
+++ b/doc/connecting_to_channels.md
@@ -31,3 +31,4 @@ Here's their meaning:
Some channels are designated "Premium Channels" 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.
+#include doc/macros/main_footer.bb;
diff --git a/doc/credits.bb b/doc/credits.bb
new file mode 100644
index 000000000..d13b99bdd
--- /dev/null
+++ b/doc/credits.bb
@@ -0,0 +1,76 @@
+[b]Credits[/b]
+
+Mike Macgirvin
+Thomas Willingham
+Fabio Comuni
+Simon L'nu
+marijus
+Tobias Diekershoff
+fabrixxm
+tommy tomson
+Simon
+zottel
+Christian Vogeley
+jeroenpraat
+Michael Vogel
+erik
+Zach Prezkuta
+Paolo T
+Michael Meer
+Michael
+Abinoam P. Marques Jr
+Tobias Hößl
+Alexander Kampmann
+Olaf Conradi
+Paolo Tacconi
+tobiasd
+Devlon Duthie
+Zvi ben Yaakov (a.k.a rdc)
+Alexandre Hannud Abdo
+Olivier Migeot
+Chris Case
+Klaus Weidenbach
+Michael Johnston
+olivierm
+Vasudev Kamath
+pixelroot
+Max Weller
+duthied
+Martin Schmitt
+Sebastian Egbers
+Erkan Yilmaz
+sasiflo
+Stefan Parviainen
+Haakon Meland Eriksen
+Oliver Hartmann (23n)
+Erik Lundin
+habeascodice
+sirius
+Charles
+Tony Baldwin
+Hauke Zuehl
+Keith Fernie
+toclimb
+Daniel Frank
+Matthew Exon
+Michal Supler
+Tobias Luther
+U-SOUND\mike
+mrjive
+nostupidzone
+tonnerkiller
+Antoine G
+Christian Drechsler
+Ludovic Grossard
+RedMatrixCanada
+Stanislav Lechev [0xAF]
+aweiher
+bufalo1973
+dsp1986
+felixgilles
+ike
+maase2
+mycocham
+ndurchx
+pafcu
+Simó Albert i Beltran
diff --git a/doc/dav_dolphin.bb b/doc/dav_dolphin.bb
index 4429303d3..a1ebba394 100644
--- a/doc/dav_dolphin.bb
+++ b/doc/dav_dolphin.bb
@@ -6,4 +6,4 @@ When prompted for a username and password, enter your username (the first part o
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
+#include doc/macros/cloud_footer.bb;
diff --git a/doc/dav_konqueror.bb b/doc/dav_konqueror.bb
index f44c11fb2..79108e1d0 100644
--- a/doc/dav_konqueror.bb
+++ b/doc/dav_konqueror.bb
@@ -8,4 +8,5 @@ Additionally, if one has authenticated at a different hub during their normal br
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
+#include doc/macros/cloud_footer.bb;
+
diff --git a/doc/dav_mount.bb b/doc/dav_mount.bb
index 62edc09d0..d8cb2e08e 100644
--- a/doc/dav_mount.bb
+++ b/doc/dav_mount.bb
@@ -82,5 +82,5 @@ If that still doesn't work, disable the cache. Note that this has a performance
If it [i]still[/i] doesn't work, there is one more thing you can try. (This one is caused by a bug in older versions of dav2fs itself, so updating to a new version may also help). Enable weak etag dropping by setting [code]drop_weak_etags 1[/code]. Unmount and remount your filesystem to apply the changes.
+#include doc/macros/cloud_footer.bb;
-Return to the [zrl=[baseurl]/help/main]Main documentation page[/zrl]
diff --git a/doc/dav_nautilus.bb b/doc/dav_nautilus.bb
index d3c478aa0..51663b6de 100644
--- a/doc/dav_nautilus.bb
+++ b/doc/dav_nautilus.bb
@@ -6,4 +6,4 @@
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
+#include doc/macros/cloud_footer.bb;
diff --git a/doc/dav_nemo.bb b/doc/dav_nemo.bb
index a2553c1d5..2c88b0782 100644
--- a/doc/dav_nemo.bb
+++ b/doc/dav_nemo.bb
@@ -15,5 +15,5 @@ Fill the dialog
- 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
+
+#include doc/macros/cloud_footer.bb;
diff --git a/doc/dav_windows.bb b/doc/dav_windows.bb
index 600944b68..0eaffd4d0 100644
--- a/doc/dav_windows.bb
+++ b/doc/dav_windows.bb
@@ -8,4 +8,4 @@ RedDav using Windows 7 graphical user interface wizard:
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
+#include doc/macros/cloud_footer.bb;
diff --git a/doc/de/about.bb b/doc/de/about.bb
index 581f55569..313337f17 100644
--- a/doc/de/about.bb
+++ b/doc/de/about.bb
@@ -20,4 +20,4 @@ Dabei bietet Red einige einzigartige Leckerbissen:
[b]Privatsphäre:[/b] Red-Identitäten (Zot-IDs) können gelöscht, gesichert/heruntergeladen und geklont werden. Du hast volle Kontrolle über Deine Daten. Wenn Du Dich entscheidest, all Deine Daten und Deine Zot-ID zu löschen, musst Du nur auf einen Link klicken, und sie werden sofort von dem Server gelöscht. Keine Fragen, keine Umstände.
-[url=[baseurl]/help]Zurück zur Hilfe-Startseite[/url]
+#include doc/macros/main_footer.bb;
diff --git a/doc/de/channels.bb b/doc/de/channels.bb
index 0308d4689..19146cf9b 100644
--- a/doc/de/channels.bb
+++ b/doc/de/channels.bb
@@ -11,16 +11,16 @@ Die wichtigsten Funktionen für einen Kanal, der einen selbst repräsentiert, si
Kurz gesagt, ein Kanal der Dich repräsentiert ist sozusagen „Ich im Internet“.
-Du musst Deinen ersten Kanal erstellen, während Du Dich anmeldest. Du kannst auch weitere Kanäle erstellen und zwischen ihnen wechseln, indem Du auf „Kanal-Auswahl“ klickst.
+Du musst Deinen ersten Kanal erstellen, während Du Dich anmeldest. Du kannst auch weitere Kanäle erstellen und zwischen ihnen wechseln, indem Du auf „Kanal-Manager“ im Menü unter Deinem Profilbild klickst.
-Du wirst nach einem Kanalnamen und einem kurzen Spitznamen gefragt. Für einen Kanal, der Dich repräsentiert, ist es eine gute Idee, hier Deinen Realnamen anzugeben, damit Deine Freunde Dich finden und sich mit Dir verbinden können. Der Spitzname wird genutzt, um Deinen „Webbie“ zu erstellen. Das ist so etwas wie ein Username und sieht aus wie eine E-Mail-Adresse, zum Beispiel spitzname@red-hub.de. Überlege ein bisschen, was Du als Spitzname nutzen willst. Stell Dir vor, Du wirst nach Deinem Webbie gefragt und musst Deinem bekannten dann buchstabieren, dass Dein Webbie „llamas.sind-cool_274@example.com“ ist. „llamassindcool@exmaple.com“ wäre da viel einfacher gewesen.
+Du wirst nach einem Kanalnamen und einem kurzen Spitznamen gefragt. Für einen Kanal, der Dich repräsentiert, ist es eine gute Idee, hier Deinen Realnamen anzugeben, damit Deine Freunde Dich finden und sich mit Dir verbinden können. Der Spitzname wird genutzt, um Deinen „Webbie“ zu erstellen. Das ist so etwas wie ein Username und sieht aus wie eine E-Mail-Adresse, zum Beispiel spitzname@red-hub.de. Überlege ein bisschen, was Du als Spitzname nutzen willst. Stell Dir vor, Du wirst nach Deinem Webbie gefragt und musst Deinem Bekannten dann buchstabieren, dass Dein Webbie „llamas.sind-cool_274@example.com“ ist. „llamassindcool@exmaple.com“ wäre da viel einfacher gewesen.
Nachdem Du Deinen Kanal erstellt hast, wirst Du zu den Einstellungen weitergeleitet. Hier kannst Du Deinen Kanal einrichten und die Standard-Berechtigungen setzen.
-Nachdem Du auch das getan hast, kannst Du Deinen Kanal verwenden. Unter der Addresse https://example.com/channel/spitzname ( [observer.url] ) findest Du Deinen Kanal. Hier werden Deine letzten Aktivitäten gezeigt, die neuesten oben. Wenn Du etwas in die Textbox schreibst, in der „Teilen“ steht, wird der neue Eintrag ganz oben in Deinem Kanal auftauchen. Du findest hier auch Links zu den anderen Kommunikationsbereichen Deines Kanals. Der „Über“-Reiter enthält Dein Profil, der „Fotos“-Reiter Deine Fotoalben, und der Veranstaltungskalender enthält Termine und Veranstaltungen, die Du und Deine Kontakte geteilt haben.
+Nachdem Du auch das getan hast, kannst Du Deinen Kanal verwenden. Unter der Addresse https://example.com/channel/spitzname [observer=1]( [observer.url] )[/observer] findest Du Deinen Kanal. Hier werden Deine letzten Aktivitäten gezeigt, die neuesten oben. Wenn Du etwas in die Textbox schreibst, in der „Teilen“ steht, wird der neue Eintrag ganz oben in Deinem Kanal auftauchen. Du findest hier auch Links zu den anderen Kommunikationsbereichen Deines Kanals. Der „Über“-Reiter enthält Dein Profil, der „Fotos“-Reiter Deine Fotoalben, und der Veranstaltungskalender enthält Termine und Veranstaltungen, die Du und Deine Kontakte geteilt haben.
Die „Matrix“-Seite enthält alle neuen Beiträge aus der gesamten Red Matrix, wieder die neuesten oben. Was genau zu sehen ist ist abhängig von den Zugriffsrechten. Falls die Zugriffsrechte Deines Kanals so eingestellt sind, dass jeder Beiträge in Deinen Stream stellen kann, wirst du auch Beiträge von Dir völlig unbekannten Personen hier sehen. Am anderen Ende der Skala kannst Du die Berechtigungen aber auch so einstellen, dass du nur die Beiträge deiner Freunde oder gar nur Deine eigenen siehst.
Wie zu Anfang erwähnt sind viele Arten von Kanälen möglich, diese unterscheiden sich hauptsächlich durch die Berechtigungen. Das Anlegen dieser Kanäle unterscheidet sich dagegen nicht. Beispiel: Um einen Kanal zum Austausch von Dokumenten zu erstellen, wirst du vermutlich die Berechtigung „Kann in meinen öffentlichen Dateiordner schreiben“ freizügiger einstellen. Für weitere Informationen sieh bitte in der Hilfe unter Zugriffsrechte nach.
-[url=[baseurl]/help]Zurück zur Hilfe-Startseite[/url]
+#include doc/macros/main_footer.bb;
diff --git a/doc/de/features.bb b/doc/de/features.bb
index 65ea45679..41dee301a 100644
--- a/doc/de/features.bb
+++ b/doc/de/features.bb
@@ -1,12 +1,10 @@
-[size=24][b]Features der Red-Matrix[/b][/size]
-
-[url=[baseurl]/help]Zurück zur Hilfe-Startseite[/url]
+[size=large][b]Features der Red-Matrix[/b][/size]
Die Red-Matrix ist ein Allzweck-Kommunikationsnetzwerk mit einigen einzigartigen Features. Sie wurde für eine große Bandbreite von Nutzern entwickelt, von Nutzern sozialer Netzwerke über technisch nicht interessierte Blogger bis hin zu PHP-Experten und erfahrenen Systemadministratoren.
Diese Seite listet einige der Kern-Features von Red auf, die in der offiziellen Distribution enthalten sind. Wie immer bei freier Open-Source-Software sind den Möglichkeiten keine Grenzen gesetzt. Beliebige Erweiterungen, Addons, Themes und Konfigurationen sind möglich.
-[b][size=18]Entwickelt für Privatsphäre und Freiheit[/size][/b]
+[h2]Entwickelt für Privatsphäre und Freiheit[/h2]
Eines der Design-Ziele von Red ist einfache Kommunikations über das Web, ohne die Privatsphäre zu vernachlässigen, wenn die Nutzer das Wünschen. Um dieses Ziel zu erreichen, verfügt Red über einige Features, die beliebige Stufen des Privatsphäre-Schutzes ermöglichen:
@@ -83,7 +81,7 @@ Solche Backups sind ein Weg, um Klone zu erstellen, und können genutzt werden,
Konten und Kanäle können sofort gelöscht werden, indem Du einfach auf einen Link klickst. Das wars. Alle damit verbundenen Inhalte werden sofort aus der Matrix gelöscht (inklusiver aller Beiträge und sonstiger Inhalte, die von dem gelöschten Konto/Kanal erzeugt wurden).
-[b][size=18]Erstellen von Inhalten[/size][/b]
+[h2]Erstellen von Inhalten[/h2]
[b]Beiträge schreiben[/b]
@@ -105,4 +103,4 @@ Genau wie jedes andere Blog-System, soziale Netzwerk oder Mikro-Blogging-Dienst
Vor dem Absenden kann eine Vorschau von Beiträgen betrachtet werden.
-[url=[baseurl]/help]Zurück zur Hilfe-Startseite[/url]
+#include doc/macros/main_footer.bb;
diff --git a/doc/de/main.bb b/doc/de/main.bb
index 7a4c8ebe2..f16016124 100644
--- a/doc/de/main.bb
+++ b/doc/de/main.bb
@@ -7,10 +7,10 @@ Die Red-Matrix ist eine dezentrale Kommunikations- und Publishing-Plattform. Sie
[zrl=[baseurl]/help/features]Features der Red-Matrix[/zrl]
Die Red-Matrix funktioniert schon heute als ein globales verteiltes Netzwerk und beweist täglich ihre Vielseitigkeit und Skalierbarkeit auf kleinen Privatservern wie auch auf riesigen Sites.
-Kommunikationsplattformen für Familien (auf Wunsch auch ohne Verbindung zum restlichen Red-Netzwerk), verteilte Online-Communities, Support-Foren, Homepages. Oder auch professionelle Inhalte-Anbieter mit kommerziellen Premium-Kanälen und eingeschränktem Zugriff – was immer Du willst, die Red-Matrix unterstützt Dich in Deinem kreativen Schaffen.
+Kommunikationsplattformen für Familien, verteilte Online-Communities, Support-Foren, Blogs und Homepages. Oder auch professionelle Inhalte-Anbieter mit kommerziellen Premium-Kanälen und eingeschränktem Zugriff – was immer Du willst, die Red-Matrix unterstützt Dich in Deinem kreativen Schaffen.
[zrl=[baseurl]/help/what_is_zot]Got Zot? Hast Du schon Zot? Wenn nicht wird es Zeit.[/zrl]
-Zot ist das großartige neue Kommunikationsprotokoll, das extra für die Red-Matrix entwickelt wurde. Als Teilnehmer bist Du dank „Nomadischer Identität“ nicht länger an einen Hoster gebunden. Ziehe einfach auf einen anderen Server um und behalte dabei alle Deine Kontakte, oder klone Deinen Kanal und lasse ihn auf mehreren Servern gleichzeitig laufen – sollte einer davon plötzlich geschlossen werden, ist das kein Problem für Dich. Und bist Du erst Teil der Red-Matrix, musst Du Dich nie wieder mehrfach anmelden, selbst wenn Du Seiten auf einem andere Red-Server betrachtest. Zot ist, was die Red-Matrix besonders macht.
+Zot ist das großartige neue Kommunikationsprotokoll, das extra für die Red-Matrix entwickelt wurde. Als Mitglied bist Du dank „Nomadischer Identität“ nicht länger an einen einzigen Server oder Anbieter gebunden. Ziehe einfach auf einen anderen Server um und behalte dabei alle Deine Kontakte, oder klone Deinen Kanal und lasse ihn auf mehreren Servern gleichzeitig laufen – sollte einer davon plötzlich geschlossen werden, ist das kein Problem für Dich. Und bist Du erst Teil der Red-Matrix, musst Du Dich nie wieder mehrfach anmelden, selbst wenn Du Seiten auf einem andere Red-Server betrachtest. Zot ist, was die Red-Matrix besonders macht.
[size=large][b]Erste Schritte[/b][/size]
[zrl=[baseurl]/help/Privacy]Datenschutz[/zrl]
@@ -18,13 +18,14 @@ Zot ist das großartige neue Kommunikationsprotokoll, das extra für die Red-Mat
[zrl=[baseurl]/help/accounts_profiles_channels_basics]Du in der Red-Matrix: Konten, Profile und Kanäle kurz erklärt[/zrl]
[zrl=[baseurl]/help/profiles]Profile[/zrl]
[zrl=[baseurl]/help/channels]Kanäle[/zrl]
+[zrl=[baseurl]/help/roles]Zugriffsrechte-Kategorien und Kanaltypen[/zrl]
[zrl=[baseurl]/help/first-post]Dein erster Beitrag[/zrl]
[zrl=[baseurl]/help/connecting_to_channels]Sich mit anderen Kanälen verbinden[/zrl]
[zrl=[baseurl]/help/permissions]Zugriffsrechte und Verschlüsselung: Du hast alles unter Kontrolle[/zrl]
[zrl=[baseurl]/help/cloud]Cloud-Speicher[/zrl]
-[zrl=[baseurl]/help/remove_account]Konto löschen[/zrl]
+[zrl=[baseurl]/help/remove_account]Einen Kanal oder das ganze Konto löschen[/zrl]
-[size=large][b]Nutzung der Red-Matrix[/b][/size]
+[size=large][b]Hilfe für RedMatrix-Mitglieder[/b][/size]
[zrl=[baseurl]/help/tags_and_mentions]Tags und Erwähnungen[/zrl]
[zrl=[baseurl]/help/webpages]Webseiten[/zrl]
[zrl=[baseurl]/help/bbcode]BBcode-Referenz für Posts und Kommentare[/zrl]
@@ -32,27 +33,27 @@ Zot ist das großartige neue Kommunikationsprotokoll, das extra für die Red-Mat
[zrl=[baseurl]/help/cloud_desktop_clients]Desktop-Anwendungen und die Cloud[/zrl]
[zrl=[baseurl]/help/AdvancedSearch]Fortgeschrittene Suche im Kanalverzeichnis[/zrl]
[zrl=[baseurl]/help/addons]Hilfe zu Addons[/zrl]
-[zrl=[baseurl]/help/nomadic-identity]Got Zot? Nomadische Identität, Kanal-Klone und mehr[/zrl]
+[zrl=[baseurl]/help/diaspora_compat]Kompatibilität zum Diaspora-Protokoll (zur Kommunikation mit Kontakten aus Diaspora und Friendica)[/zrl]
+[zrl=[baseurl]/help/faq_members]FAQ für Mitglieder[/zrl]
-[size=large][b]Häufig gestellte Fragen für Nutzer[/b][/size]
-[zrl=[baseurl]/help/faq_users]FAQ für Nutzer[/zrl]
-
-[size=large][b]Für Administratoren[/b][/size]
+[size=large][b]Hilfe für Administratoren[/b][/size]
[zrl=[baseurl]/help/install]Installation[/zrl]
[zrl=[baseurl]/help/debian_install]Einfache Installation unter Debian mit einem Skript[/zrl]
[zrl=[baseurl]/help/red2pi]Red auf einem Raspberry Pi installieren[/zrl]
-[zrl=[baseurl]/help/problems-following-an-update]Probleme nach einem Software-Update[/zrl]
[zrl=[baseurl]/help/troubleshooting]Troubleshooting-Tipps[/zrl]
-
-[size=large][b]Häufig gestellte Fragen für Sever-Admins[/b][/size]
+[zrl=[baseurl]/help/hidden_configs]Versteckte Konfigurations-Optionen[/zrl]
[zrl=[baseurl]/help/faq_admins]FAQ für Admins[/zrl]
[size=large][b]Technische Dokumentation[/b][/size]
+[zrl=[baseurl]/help/history]Die Geschichte der RedMatrix[/zrl]
+[zrl=[baseurl]/help/Zot---A-High-Level-Overview]Zot – ein grober Überblick[/zrl]
+[zrl=[baseurl]/help/zot]Eine Einführung ins Zot-Protokoll[/zrl]
+[zrl=[baseurl]/help/zot_structures]Zot-Strukturen[/zrl]
[zrl=[baseurl]/help/comanche]Seitenbeschreibung in Comanche[/zrl]
[zrl=[baseurl]/help/Creating-Templates]Vorlagen erstellen mit Comanche[/zrl]
[zrl=[baseurl]/help/Widgets]Widgets, die Teil der Standardinstallation sind[/zrl]
[zrl=[baseurl]/help/plugins]Plugins[/zrl]
-[zrl=[baseurl]/help/DerivedTheme1]Ein Theme basierend auf einem anderen erstellen[/zrl]
+[zrl=[baseurl]/help/DerivedTheme1]Einen Theme basierend auf einem anderen erstellen[/zrl]
[zrl=[baseurl]/help/schema_development]Schemata[/zrl]
[zrl=[baseurl]/help/Translations]Ãœbersetzungen[/zrl]
[zrl=[baseurl]/help/developers]Entwickler[/zrl]
@@ -63,6 +64,7 @@ Zot ist das großartige neue Kommunikationsprotokoll, das extra für die Red-Mat
[zrl=[baseurl]/doc/html/]Code-Referenz (mit doxygen generiert - setzt Cookies)[/zrl]
[zrl=[baseurl]/help/to_do_doco]To-Do-Liste für das Projekt Red-Dokumentation[/zrl]
[zrl=[baseurl]/help/to_do_code]To-Do-Liste für Entwickler[/zrl]
+[zrl=[baseurl]/help/roadmap]Roadmap für Version 3[/zrl]
[zrl=[baseurl]/help/git_for_non_developers]Git für Nicht-Entwickler[/zrl]
[size=large][b]Häufig gestellte Fragen für Entwickler[/b][/size]
@@ -74,5 +76,6 @@ Zot ist das großartige neue Kommunikationsprotokoll, das extra für die Red-Mat
[url=https://github.com/friendica/red-addons]Addons-Website[/url]
[url=https://zothub.com/channel/one]Entwickler-Kanal[/url]
+[url=[baseurl]/help/credits]RedMatrix Credits[/url]
[size=large][b]Ãœber diesen Red-Server[/b][/size]
[zrl=[baseurl]/siteinfo]Informationen zu diesem Server und der Red-Version[/zrl]
diff --git a/doc/de/profiles.bb b/doc/de/profiles.bb
index d6603dd38..cc2d94fb6 100644
--- a/doc/de/profiles.bb
+++ b/doc/de/profiles.bb
@@ -36,4 +36,4 @@ Im Verzeichnis (Kanal-Anzeiger) kannst Du nach Leuten suchen, die ihre Profile v
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.
-[zrl=[baseurl]/help]Zurück zur Hilfe-Startseite[/zrl]
+#include doc/macros/main_footer.bb;
diff --git a/doc/de/registration.bb b/doc/de/registration.bb
index e6c11810a..c7aaac55e 100644
--- a/doc/de/registration.bb
+++ b/doc/de/registration.bb
@@ -12,7 +12,7 @@ Gib ein Passwort Deiner Wahl ein und wiederhole es in der zweiten Box, um sicher
[b]Nutzungsbedingungen[/b]
-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.
+Klicke auf den Link, um die [zrl=[baseurl]/help/TermsOfService]Nutzungsbedingungen[/zrl] dieses Servers zu lesen. Wenn Du sie gelesen hast, setze den Haken im Registrierungsformular, um sie zu akzeptieren.
[b]Registrieren[/b]
@@ -27,10 +27,10 @@ Der Kanal-Name ist der Titel oder eine kurze Beschreibung des Kanals. Der „Spi
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
-[zrl=[baseurl]/help/accounts_profiles_channels_basics]Konten, Profile und Kanäle kurz erklärt[/zrl]
+[zrl=[baseurl]/help/accounts_profiles_channels_basics]Grundlagen zu Identitäten in der RedMatrix[/zrl]
[zrl=[baseurl]/help/accounts]Konten[/zrl]
[zrl=[baseurl]/help/profiles]Profile[/zrl]
[zrl=[baseurl]/help/permissions]Zugriffsrechte[/zrl]
[zrl=[baseurl]/help/remove_account]Konto löschen[/zrl]
-[url=[baseurl]/help]Zurück zur Hilfe-Startseite[/url]
+#include doc/macros/main_footer.bb;
diff --git a/doc/debian_install.bb b/doc/debian_install.bb
index f441025ae..e8f4a7bd3 100644
--- a/doc/debian_install.bb
+++ b/doc/debian_install.bb
@@ -1,13 +1,13 @@
[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=http://beardyunixer.com:1234/?p=debian-install-script.git;a=tree]downloaded here[/zrl]
+which can be [url=http://gitweb.whogotzot.com/debian-install-script]downloaded here[/url]
[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.
+Note, this script will use Nginx as the webserver. 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.
@@ -17,7 +17,7 @@ For the initial setup git may not be installed on your server, to install git:
If wget is installed try
-[code]wget "http://beardyunixer.com:1234/?p=debian-install-script.git;a=blob_plain;f=debian-setup.sh;hb=HEAD" -O debian-setup.sh[/code]
+[code]wget http://git.beardyunixer.com/debian-install-script/blob/HEAD:/debian-setup.sh[/code]
To install wget:
[code]apt-get install wget[/code]
@@ -29,4 +29,4 @@ To install Red for domain example.com, after the initial server setup run
[code]bash setup-debian.sh red example.com[/code]
-Return to the [zrl=[baseurl]/help/main]Main documentation page[/zrl]
+#include doc/macros/main_footer.bb;
diff --git a/doc/dev-function-overview.md b/doc/dev-function-overview.md
index 3cda8f7c4..5e382201f 100644
--- a/doc/dev-function-overview.md
+++ b/doc/dev-function-overview.md
@@ -48,5 +48,4 @@ Returns the translated variant of $string for the current language or $string (d
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;
-Return to the [url=[baseurl]/help/main]Main documentation page[/url]
-
+#include doc/macros/main_footer.bb;
diff --git a/doc/developer_function_primer.bb b/doc/developer_function_primer.bb
index 144664615..3db853b82 100644
--- a/doc/developer_function_primer.bb
+++ b/doc/developer_function_primer.bb
@@ -20,13 +20,13 @@ Returns the global app structure ($a).
(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]
+[b]get_config($family,$key), get_pconfig($uid,$family,$key), get_xconfig($xchan_hash,$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).
+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). The xconfig version get/sets the value for a specific xchan hash - generally used for remote users.
[b]dbesc()[/b]
@@ -44,4 +44,4 @@ Returns the translated variant of $string for the current language or $string (d
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;
-Return to the [url=[baseurl]/help/main]Main documentation page[/url]
+#include doc/macros/main_footer.bb;
diff --git a/doc/developers.bb b/doc/developers.bb
index a29a848e0..5365fd77a 100644
--- a/doc/developers.bb
+++ b/doc/developers.bb
@@ -64,4 +64,7 @@ In the interests of consistency we adopt the following code styling. We may acce
[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]
-Return to the [url=[baseurl]/help/main]Main documentation page[/url]
+[b]See Also[/b]
+[zrl=[baseurl]/help/sql_conventions]SQL Conventions[/zrl]
+
+#include doc/macros/main_footer.bb;
diff --git a/doc/diaspora_compat.md b/doc/diaspora_compat.md
index 9b3e56383..3829a9c64 100644
--- a/doc/diaspora_compat.md
+++ b/doc/diaspora_compat.md
@@ -2,8 +2,6 @@
Diaspora protocol compatibility is presently considered an ***experimental*** feature. It may not be available on all sites and presents some serious compatibility issues with redmatrix. At the moment these compatibility issues will be shared with "Friendica-over-Diaspora" protocol communications.
-Private mail is currently not working. Eventually this will be fixed. Posts and comments are partially working.
-
Private mail retraction (unsend) will not be possible on Diaspora.
Private posts and their associated comments are sent in plaintext email notifications in Diaspora and Friendica. This is a major privacy issue and affects any private communications you have where *any* member of the conversation is on another network. Be aware of it.
@@ -25,13 +23,13 @@ Multiple profiles are not supported. Diaspora members can only see your default
Birthday events will not appear in Diaspora. Other events will be translated and sent as a post, but all times will either be in the origination channel's timezone or in GMT. We do not know the recipient's timezone because Diaspora doesn't have this concept.
-Tags are converted into "un-hijackable" tags by default and will link back to your redmatrix resources. We will provide an option to allow you to let the other end of the network hijack your tags and point them at its own resources.
+We currently allow tags to be hijacked by default. We will provide an option to allow you to prevent the other end of the network from hijacking your tags and point them at its own resources.
Community tags will not work. We will send a tagging activity as a comment. It won't do anything.
Privacy tags (@!somebody) will not be available to Diaspora members. These tags may have to be stripped or obscured to prevent them from being hijacked - which could result in privacy issues.
-Plus-tagged redmatrix forums should work from Diaspora. If not today, it's very close to working.
+Plus-tagged redmatrix forums should work from Diaspora.
Premium channel redirects will not be sent. If you allow Diaspora connections, they will not see that you have a premium channel.
@@ -51,22 +49,9 @@ Embedded apps will be translated into links.
Embedded page design elements (work in progress) will be either stripped or converted to an error message.
-
Diaspora members will not appear in the directory.
There are differences in oembed compatibility between the networks. Some embedded resources will turn into a link on one side or the other.
-
-On the bright side, pokes should work.
-
-
-
-
-
-
-
-
-
-
- \ No newline at end of file
+#include doc/macros/main_footer.bb;
diff --git a/doc/doco.bb b/doc/doco.bb
new file mode 100644
index 000000000..7ca64cfea
--- /dev/null
+++ b/doc/doco.bb
@@ -0,0 +1,33 @@
+[b]Creating Documentation[/b]
+
+To contribute documentation, simply put some words in a cunning order, and make their existence known to a developer. You can do this literally anywhere as long as a developer can see it. Once made aware, somebody will check it in for you. You should try to avoid proprietary formats, or locations that require authentication with methods other than Zot in order to make it easy for a developer to access, but even this is not a strict requirement.
+
+If you wish to contribute directly, that's fine too. To contribute directly, documentation should be in one of the following formats:
+
+[li]Markdown[/li]
+[li]BBCode[/li]
+[li]HTML[/li]
+[li]Plain Text[/li]
+
+Other formats are also allowed, but support for the format must be added to mod/help.php first.
+
+If editing a plain text file, please keep column width to 80. This is because plain text is used in instances where we may not have a working installation - the installation documentation, for example - and it should be easy to read these from a CLI text editor.
+
+The advantage of Markdown is that it is human readable.
+
+The advantage of BBCode is that it is identity aware.
+
+Therefore, if using BBCode, try to make the most of it:
+[li]Use ZRL links where appropriate to ensure a link to another site retains authentication and keeps identity based documentation working[/li]
+[li]Use baseurl or observer.baseurl tags where appropriate instead of example.com for authenticated viewers.[/li]
+[li]Support non-authenticated users with observer=0 tags. We presently do not do this due to historical oversights. This needs adding everywhere[/li]
+
+[b]Translations[/b]
+
+To translate documentation, or provided documentation in languages other than English:
+[li]Create a directory in doc/ with your two letter country code if it doesn't already exist (eg, doc/de/ for German or doc/fr/ for French)[/li]
+[li]Create a document with the same filename as the English version, but with content in your own language. This allows us to fallback to the English if the translation for a particular page is not provided[/li]
+
+To create documentation that has no equivalent file in English, you can create a new file with a name of your choosing - but you'll also need to provide a localised version of the index page (main.bb in English) to make it accessible from the menu.
+
+#include doc/macros/main_footer.bb;
diff --git a/doc/external-resource-links.bb b/doc/external-resource-links.bb
index b84096b50..ca1d6f55e 100644
--- a/doc/external-resource-links.bb
+++ b/doc/external-resource-links.bb
@@ -4,21 +4,20 @@
[b]Third-Party Themes[/b]
[*][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]
[*][url=https://github.com/tonybaldwin/redmatrixthemes/]nubasic[/url]
[b]Third-Party Addons[/b]
-[*][url=http://beardyunixer.com:1234/?p=red-addons.git;a=tree]Webpage/Publishing orientated addons and modules[/url]
+[*][url=http://gitweb.whogotzot.com/red-addons-extra/tree]Additional RedMatrix addons[/url]
[*][url=https://abcentric.net/git/abcjsplugin.git]ABCjs integration - display scores in posts (WIP)[/url]
-
+[*][url=http://gitweb.whogotzot.com/extra_dir_fns/tree]Extra directory functions[/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]
-
+[*][url=http://gitweb.whogotzot.com/red-stable/tree]Red Stable - up-to-date-but-not-bleeding-edge RedMatrix distribution[/url]
[b]Utilities[/b]
-[*][url=http://beardyunixer.com:1234/?p=debian-install-script.git;a=tree]Debian Install Script[/url]
+[*][url=http://gitweb.whogotzot.com/debian-install-script]Debian Install Script[/url]
-Return to the [url=[baseurl]/help/main]Main documentation page[/url]
+#include doc/macros/main_footer.bb;
diff --git a/doc/extra_features.bb b/doc/extra_features.bb
index 372ac6bbe..2e877375e 100644
--- a/doc/extra_features.bb
+++ b/doc/extra_features.bb
@@ -94,4 +94,4 @@ Ability to mark special posts with a star indicator
Provide a personal tag cloud on your channel page
-Return to the [zrl=[baseurl]/help/main]Main documentation page[/zrl]
+#include doc/macros/main_footer.bb;
diff --git a/doc/faq_admins.bb b/doc/faq_admins.bb
index 1679ec246..953563230 100644
--- a/doc/faq_admins.bb
+++ b/doc/faq_admins.bb
@@ -35,14 +35,37 @@ Don't listen on port 443 if you cannot use it. It is strongly recommended to so
valid SSL certificate rather than disabling port 443.
[*]
+[b]How do I update a non-Git install?[/b]
+1) Backup .htconfig.php
+2) Backup everything in store/
+3) Backup any custom changes in mod/site/ and view/site
+3) Delete your existing installation
+4) Upload the new version.
+5) Upload the new version of themes and addons.
+6) Restore everything backed up earlier.
+
+[*]
[b]What do I need to do when moving my hub to a different server[/b]
1) Git clone on the new server. Repeat the process for any custom themes, and addons.
-2) Copy .htconfig.php
+2) Rsync .htconfig.php
3) Rsync everything in store/
-4) Rsync everything in custom/ (this will only exist if you have custom modules)
+4) Rsync everything in mod/site/ and view/site (these will only exist if you have custom modules)
5) Dump and restore DB.
+[*]
+[b]How do I reinstall an existing hub on the same server?[/b]
+
+1) [code]git reset --hard HEAD[/code] will reset all files to their upstream defaults. This will not reset any local files that do not also exist upstream. Eg, if you have local changes to mod/channel.php, this will reset them - but will not reset any changes in mod/site/channel.php
+2) If you absolutely must reinstall - for example, if you need to upgrade operating system - follow the steps for moving to a different server, but instead of using rsync, backup and restore some other way.
+
+Do not reinstall a hub with a fresh database and fresh .htconfig.php unless as a very last resort. Creating a temporary account and ask for help via a support channel for non-trivial reinstalls is preferable to reinstalling fresh.
+
+[*]
+[b]How do I set the default homepage for logged out viewers?[/b]
+
+Use the custom_home addon available in the main addons repository.
+
[/ul]
-Return to the [zrl=[baseurl]/help/main]Main documentation page[/zrl]
+#include doc/macros/main_footer.bb;
diff --git a/doc/faq_developers.bb b/doc/faq_developers.bb
index 192dcb5c5..61843648a 100644
--- a/doc/faq_developers.bb
+++ b/doc/faq_developers.bb
@@ -1,6 +1,5 @@
[size=large][b]Frequently Asked Questions For Developers[/b][/size]
-(...) still needs to be written (...)
[ul]
[*][b]What does $a mean?[/b]
@@ -26,3 +25,7 @@ function foo() {
}
[/code]
[/ul]
+
+
+#include doc/macros/main_footer.bb;
+
diff --git a/doc/faq_members.bb b/doc/faq_members.bb
new file mode 100644
index 000000000..a089b8b0c
--- /dev/null
+++ b/doc/faq_members.bb
@@ -0,0 +1,15 @@
+[size=large][b]The Red Matrix FAQ[/b][/size]
+
+[ul]
+[*][b]I am able to edit a post's text after I saved it, but is there a way to change the permissions?[/b]
+Short anser: No, there isn't. There are reasons. You are able to change permissons to your files, photos and the likes, but not to posts after you have saved them. The main reason is: Once you have saved a post it is being distributed either to the public channel and from there to other Red Matrix servers or to those you intended it to go. Just like you cannot reclaim something you gave to another person, you cannot change permissions to Red Matrix posts. We would need to track everywhere your posting goes, keep track of everyone you allowed to see it and then keep track of from whom to delete it.
+If a posting is public this is even harder, as the Red Matrix is a global network and there is no way to follow a post, let alone reclaim it reliably. Other networks that may receive your post have no reliable way to delete or reclaim the post.
+[*][b]I downloaded my channel and imported it (cloned my identity) to another site but there is no content, no posts, no photos. What is wrong???[/b]
+To be honest: Nothing. That's the way it is right now. Technically it is surely possible to take at least your own posts and maybe even files with you, but this has simply put not implemented yet. When creating this feature we thought that keeping all your contacts was more important. Your friends have already seen your old content. Once we find someone willing to implement this, it will be done. :)
+[*][b]I can't see private resources[/b]
+You have probably disabled third party cookies. You need to enable them for remote authentication to work.
+[*][b]There are a lot of foreign language posts. Let's auto-translate them.[/b]
+There are also a lot of [b]private[/b] foreign language posts and auto-translation services would require us to transmit these private messages to the translation service; and we don't know what they will do with them on their servers. Actually we do know thanks to Edward Snowden. Our best bet is a project called [b][i]Apertium[/i][/b] which is an open source translator we can install locally. It is currently missing German translations - which are the most requested translation in the matrix. Once again, this will be implemented when we find somebody who really wants to make it happen.
+[/ul]
+
+#include doc/macros/main_footer.bb;
diff --git a/doc/faq_users.bb b/doc/faq_users.bb
deleted file mode 100644
index 1a864f64a..000000000
--- a/doc/faq_users.bb
+++ /dev/null
@@ -1,14 +0,0 @@
-[size=large][b]The Red Matrix FAQ[/b][/size]
-
-[ul]
-[*][b]I am able to edit a post's text after I saved it, but is there a way to change the permissions?[/b]
-Short anser: No, there isn't. This has got some resons. You are able to change permissons to your files, photos and the likes, but not to posts after you have saved them. The reason is: Once you have saved a post it is being distributed either to the public channel and from there to other Red Matrix servers or to those you intended it to go. Just like you cannot reclaim a few after you have sold them off to some people, you cannot change permissions to Red Matrix posts. We would need to track everywhere your posting goes, keep track of everyone you allowed to see it and then keep track of from whom to delete it.
-If a posting is public this is even harder, as the Red Matrix is a global network and there is no way to follow a post, let alone reclaim it reliably.
-Once you have sent out an email there too is no way to take it back. So think wisely and keep alert when posting. :)
-[*][b]I downloaded my channel and uploaded it to another site but there is no content, no posts, no photos. What is wrong???[/b]
-To be honest: Nothing. That's the way it is right now. Technically it is surely possible to take at least your own posts and maybe even files with you, but this has simply put not implemented yet. When creating this feature we thought that keeping all your contacts was more important. Once we find someone willing to implement this, it will be done. :)
-[*][b]I can't see private resources[/b]
-You have probably disabled third party cookies. You need to enable them for remote authentication to work.
-[/ul]
-
-Return to the [zrl=[baseurl]/help/main]Main documentation page[/zrl]
diff --git a/doc/features.bb b/doc/features.bb
index 388f9bc91..5e42532f2 100644
--- a/doc/features.bb
+++ b/doc/features.bb
@@ -1,17 +1,17 @@
[b]Features[/b]
-[b][color= grey][size=24]Red Matrix Features[/size][/color][/b]
+[b][size=24]Red Matrix Features[/size][/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 with any free and open source software, there may be many other extensions, additions, plugins, themes and configurations that are limited only by the needs and imagination of Red's users.
+This page lists some of the core features of Red that are bundled with the official release. As with most free and open source software, there may be many other extensions, additions, plugins, themes and configurations that are limited only by the needs and imagination of Red's users.
-[b][color= grey][size=20]Built for Privacy and Freedom[/size][/color][/b]
+[b][size=20]Built for Privacy and Freedom[/size][/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]
+[b]Affinity Slider[/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;.
@@ -23,89 +23,174 @@ At this point, Red's [i]Affinity Slider[/i] tool, which usually appears at the t
The Affinity Slider allows instantaneous filtering of large amounts of content, grouped by levels of closeness.
-[b][color= grey]Access Control Lists[/color][/b]
+[b]Access Control Lists[/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.
+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 may 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.
+Access Control Lists may be applied to content and posts, photos, events, webpages, chatrooms and files.
-[b][color=grey]Private Message Encryption and Privacy Concerns[/color][/b]
+[b]Single Sign-on[/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.
+Access Control Lists work for all channels in the matrix due to our unique single sign-on technology. Most internal links provide an identity token which can be verified on other Redmatrix sites and used to control access to private resources. You login once to your home hub. After that, authentication to all Redmatrix resources is "magic".
-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]WebDAV enabled File Storage[/b]
-[b][color= grey]TLS/SSL[/color][/b]
+Files may be uploaded to your personal storage area using your operating system utilities (drag and drop in most cases). You may protect these files with Access Control Lists to any combination of Redmatrix members (including some third party network members) or make them public.
+
+[b]Photo Albums[/b]
+
+Store photos in albums. These may be protected by Access Control Lists.
+
+[b]Events Calendar[/b]
+
+Create and manage events, which may also be protected with Access Control Lists. Events can be exported to other software using the industry standard vcalendar/iCal format and shared in posts with others. Birthday events are automatically added from your friends and converted to your correct timezone so that you will know precisely when the birthday occurs - no matter where you are located in the world in relation to the birthday person.
+
+[b]Chatrooms[/b]
+
+You may create any number of personal chatrooms and allow access via Access Control Lists. These are typically more secure than XMPP, IRC, and other Instant Messaging transports, though we also allow using these other services via plugins.
+
+[b]Webpage Building[/b]
+
+Redmatrix has many "Content Management" creation tools for building webpages, including layout editing, menus, blocks, widgets, and page/content regions. All of these may be access controlled so that the resulting pages are private to their intended audience.
+
+[b]Apps[/b]
+
+Apps may be built and distributed by members. These are different from traditional "vendor lockin" apps because they are controlled completely by the author - who can provide access control on the destination app pages and charge accordingly for this access. Most apps in Redmatrix are free and can be created easily by those with no programming skills.
+
+[b]Layout[/b]
+
+Page layout is based on a description language called Comanche. Redmatrix is itself written in Comanche layouts which you can change. This allows a level of customisation you won't typically find in so-called "multi-user environments".
+
+[b]Bookmarks[/b]
+
+Share and save/manage bookmarks from links provided in conversations.
+
+
+[b]Private Message Encryption and Privacy Concerns[/b]
+
+Messages marked [b]private[/b] 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.
+
+These private messages are also stored in an encrypted form on remote systems.
+
+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.
+
+Additionally, messages may be created utilising "end-to-end encryption" which cannot be read by Redmatrix operators or ISPs or anybody who does not know the passcode.
+
+Public messages are generally not encrypted in transit or in storage.
+
+Private messages may be retracted (unsent) although there is no guarantee the recipient hasn't read it yet.
+
+Posts and messages may be created with an expiration date, at which time they will be deleted/removed on the recipient's site.
+
+
+[b]Service Federation[/b]
+
+In addition to addon "cross-post connectors" to a variety of alternate networks, there is native support for importation of content from RSS/Atom feeds and using this to create special channels. Also, an experimental but working implementation of the Diaspora protocol allows communication with people on the Friendica and Diaspora decentralised social networks. This is currently marked experimental because these networks do not have the same level of privacy and encryption features and abilities as Redmatrix and may present privacy risks.
+
+There is also experimental support for OpenID authentication which may be used in Access Control Lists. This is a work in progress.
+
+Channels may have permissions to become "derivative channels" where two or more existing channels combine to create a new topical channel.
+
+[b]Collections[/b]
+
+"Collections" is our implementation of privacy groups, which is similar to Google "Circles" and Diaspora "Aspects". This allows you to filter your incoming stream by collections or groups, and automatically set the outbound Access Control List to only those in the Collection when you post. You may over-ride this at any time.
+
+
+[b]Directory Services[/b]
+
+We provide easy access to a directory of members and provide decentralised tools capable of providing friend "suggestions". The directories are normal Redmatrix sites which have chosen to accept the directory server role. This requires more resources than most typical sites so is not the default. Directories are synchronised and mirrored so that they all contain up-to-date information on the entire network (subject to normal propagation delays).
+
+
+[b]TLS/SSL[/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]
+[b]Channel Settings[/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.
+When a channel is created, a role is chosen which applies a number of pre-configured security and privacy settings. These are chosen for best practives to maintain privacy at the requested levels.
+
+If you choose a "custom" privacy role, 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. There are also a number of other privacy settings you may edit.
[img]https://friendicared.net/photo/0f5be8da282858edd645b0a1a6626491.png[/img]
-The six options are:
+The options are:
- Nobody except yourself.
- Only those you specifically allow.
- Anybody in your address book.
- Anybody on this website.
- Anybody in this network.
+ - Anybody authenticated.
- Anybody on the Internet.
-[b][color= grey]Account Cloning[/color][/b]
+[b]Public and Private Forums[/b]
+
+Forums are typically channels which may be open to participation from multiple authors. There are currently two mechanisms to post to forums: 1) "wall-to-wall" posts and 2) via forum @mention tags. Forums can be created by anybody and used for any purpose. The directory contains an option to search for public forums. Private forums can only be posted to and often only seen by members.
+
-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.
+[b]Account Cloning[/b]
-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]
+Accounts in the Red Matrix are referred to as [i]nomadic identities[/i], because a user's identity is not bound to the hub where the identity was originally created (see What is Zot? for the full explanation). For example, when you create a 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]tina@redhub.com[/b]. You can clone it to another Red hub by choosing the same, or a different name: [b]liveForever@SomeRedMatrixHub.info[/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.
+ - 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.
+ - 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]censorship resistance[/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]Multiple Profiles[/b]
+
+Any number of profiles may be created containing different information and these may be made visible to certain of your connections/friends. A "default" profile can be seen by anybody and may contain limited information, with more information available to select groups or people.
-[b][color= grey]Account Backup[/color][/b]
+[b]Account Backup[/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]
+[b]Account Deletion[/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).
+Accounts can be immediately deleted by clicking on a link. That's it. All associated content is then deleted from the matrix (this includes posts and any other content produced by the deleted profile). Depending on the number of connections you have, the process of deleting remote content could take some time but it is scheduled to happen as quickly as is practical.
-[b][color=grey][size=20]Content Creation[/size][/color][/b]
+[b][size=20]Content Creation[/size][/b]
-[b][color=white]Writing Posts[/color][/b]
+[b]Writing Posts[/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 supports a number of different ways of adding rich-text content. The default is a custom variant of BBcode, tailored for use in Redmatrix. You may also enable the use of Markdown if you find that easier to work with. A visual editor may also be used. The traditional visual editor for Redmatrix had some serious issues and has since been removed. We are currently looking for a replacement.
-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.
+When creating &quot;Websites&quot;, content may be entered in HTML, Markdown, BBcode, and/or 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]Deletion of content[/b]
+Any content created in the Red Matrix remains under the control of the member (or channel) that originally created it. At any time, a member 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]
+[b]Media[/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.
+[b]Previewing/Editing[/b]
+Post can be previewed prior to sending and edited after sending.
+
+[b]Extending Redmatrix[/b]
+
+Redmatrix can be extended in a number of ways, through site customisation, personal customisation, option setting, themes, and addons/plugins.
+
+[b]API[/b]
+
+An API is available for use by third-party services. This is based originally on the early Twitter API (for which hundreds of third-party tools exist). It is currently being extended to provide access to facilities and abilities which are specific to Redmatrix. Access may be provided by login/password or OAuth and client registration of OAuth applications is provided.
+
+
-Return to the [url=[baseurl]/help/main]Main documentation page[/url] \ No newline at end of file
+#include doc/macros/main_footer.bb;
diff --git a/doc/git_for_non_developers.bb b/doc/git_for_non_developers.bb
index aa87fba69..029a6eb77 100644
--- a/doc/git_for_non_developers.bb
+++ b/doc/git_for_non_developers.bb
@@ -68,4 +68,4 @@ git request-pull master https://example.com/project
And simply send the output to the project maintainer.
-Return to the [url=[baseurl]/help/main]Main documentation page[/url]
+#include doc/macros/main_footer.bb;
diff --git a/doc/hidden_configs.bb b/doc/hidden_configs.bb
new file mode 100644
index 000000000..727428176
--- /dev/null
+++ b/doc/hidden_configs.bb
@@ -0,0 +1,129 @@
+[b]Advanced Configurations for Administrators[/b]
+
+RedMatrix contains many configuration options hidden from the main admin panel.
+These are generally options considered too niche, confusing, or advanced for
+the average member. These settings can be activated from the the top level Red
+directory with the syntax [code]util/config cat key value[/code] for a site
+configuration, or [code]util/pconfig channel_id cat key value[/code] for a
+member configuration.
+
+This document assumes you're an administrator.
+
+[b]pconfig[/b]
+ [b]system > user_scalable[/b]
+ Determine if the app is scalable on touch screens. Defaults to on, to
+ disable, set to zero - real zero, not just false.
+ [b]system > always_my_theme[/b]
+ Always use your own theme when viewing channels on the same hub. This
+ will break in some quite imaginative ways when viewing channels with
+ theme dependent Comanche.
+ [b]system > paranoia[/b]
+ Sets the security level of IP checking. If the IP address of a logged-in session changes
+ apply this level to determine if the account should be logged out as a security breach.
+ Options are:
+ 0 - no IP checking
+ 1 - check 3 octets
+ 2 - check 2 octets
+ 3 - check for any difference at all
+ [b]system > prevent_tag_hijacking[/b]
+ Prevent foreign networks hijacking hashtags in your posts and directing them at its own resources.
+ [b]system > blocked[/b]
+ An array of xchans blocked by this channel. Technically, this is a
+ hidden config and does belong here, however, addons (notably
+ superblock) have made this available in the UI.
+ [b]system > default_cipher[/b]
+ Set the default cipher used for E2EE items.
+ [b]system > network_page_default[/b]
+ Set default params when viewing the network page. This should contain
+ the same querystring as manual filtering.
+ [b]system > display_friend_count[/b]
+ Set the number of connections to display in the connections profile
+ widget.
+ [b]system > taganyone[/b]
+ Requires the config of the same name to be enabled. Allow the @mention tagging
+ of anyone, whether you are connected or not. This doesn't scale.
+ [b]system > startpage[/b]
+ Another of those technically hidden configs made available by addons.
+ Sets the default page to view when logging in. This is exposed to the
+ UI by the startpage addon.
+ [b]system > forcepublicuploads[/b]
+ Force uploaded photos to be public when uploaded as wall items. It
+ makes far more sense to just set your permissions properly in the first
+ place. Do that instead.
+ [b]system > do_not_track[/b]
+ As the browser header. This will break many identity based features.
+ You should really just set permissions that make sense.
+
+[b]Site config[/b]
+ [b]system > taganyone[/b]
+ Allow the @mention tagging of anyone whether you are connected or not.
+ [b]system > directorytags[/b]
+ Set the number of keyword tags displayed on the directory page.
+ [b]system > startpage[/b]
+ Set the default page to be taken to after a login for all channels at
+ this website. Can be overwritten by user settings.
+ [b]system > projecthome[/b]
+ Set the project homepage as the homepage of your hub.
+ [b]system > workflowchannelnext[/b]
+ The page to direct users to immediately after creating a channel.
+ [b]system > max_daily_registrations[/b]
+ Set the maximum number of new registrations allowed on any day.
+ Useful to prevent oversubscription after a bout of publicity
+ for the project.
+ [b]system > tos_url[/b]
+ Set an alternative link for the ToS location.
+ [b]system > block_public_search[/b]
+ Similar to block_public, except only blocks public access to
+ search features. Useful for sites that want to be public, but
+ keep getting hammered by search engines.
+ [b]system > paranoia[/b]
+ As the pconfig, but on a site-wide basis. Can be overwritten
+ by member settings.
+ [b]system > openssl_conf_file[/b]
+ Specify a file containing OpenSSL configuration. Read the code first.
+ If you can't read the code, don't play with it.
+ [b]system > optimize_items[/b]
+ Runs optimise_table during some tasks to keep your database nice and
+ defragmented. This comes at a performance cost while the operations
+ are running, but also keeps things a bit faster while it's not.
+ There also exist CLI utilities for performing this operation, which you
+ may prefer, especially if you're a large site.
+ [b]system > default_expire_days[/b]
+ When creating a new channel, set the default expiration of connections
+ posts to this number of days.
+ [b]system > dlogfile[/b]
+ Logfile to use for logging development errors. Exactly the same as
+ logger otherwise. This isn't magic, and requires your own logging
+ statements. Developer tool.
+ [b]system > authlog[/b]
+ Logfile to use for logging auth errors. Used to plug in to server
+ side software such as fail2ban. Auth failures are still logged to
+ the main logs as well.
+ [b]system > hide_in_statistics[/b]
+ Tell the red statistics servers to completely hide this hub in hub lists.
+ [b]system > reserved_channels[/b]
+ Don't allow members to register channels with this comma separated
+ list of names (no spaces)
+ [b]system > auto_follow[/b]
+ Make the first channel of an account auto-follow channels listed here - comma separated list of webbies (member@hub addresses).
+ [b]system > admin_email[/b]
+ Specifies the administrators email for this site. This is initially set during install.
+ [b]system > cron_hour[/b]
+ Specify an hour in which to run cron_daily. By default with no config, this will run at midnight UTC.
+ [b]system > minimum_feedcheck_minutes[/b]
+ The minimum interval between polling RSS feeds. If this is lower than the cron interval, feeds will be polled with each cronjob
+ [b]system > blacklisted_sites[/b]
+ An array of specific hubs to block from this hub completely.
+ [b]system > ignore_imagick[/b]
+ Ignore imagick and use GD, even if imagick is installed on the server. Prevents some issues with PNG files in older versions of imagick.
+ [b]system > no_age_restriction[/b]
+ Do not restric registration to people over the age of 13
+ [b]system > override_poll_lockfile[/b]
+ Ignore the lock file in the poller process to allow more than one process to run at a time.
+ [b]system > projecthome[/b]
+ Display the project page on your home page for logged out viewers.
+ [b]system > sellpage[/b]
+ A URL shown in the public sites list to sell your hub - display service classes, etc.
+
+#include doc/macros/main_footer.bb;
+
diff --git a/doc/history.md b/doc/history.md
new file mode 100644
index 000000000..12091d205
--- /dev/null
+++ b/doc/history.md
@@ -0,0 +1,49 @@
+RedMatrix History
+=================
+
+RedMatrix is a collaborative effort by the RedMatrix community and based on work introduced in Friendica by the Friendica community. The core design, the project mission, and software base itself were created/written primarily by Mike Macgirvin and represent the culmination of over a decade of software design using variations of this platform and an evolving vision of the role of communication software in our lives. Many others have contributed to this work, both conceptually and in terms of actual code (way too many to list individually).
+
+##Mike Macgirvin -- Biography
+
+Mike Macgirvin is an American software engineer now living in Australia. He spent his early adult years designing and repairing semiconductor fabrication equipment for a number of companies as a self-described "machine wizard". In 1985 he became a research engineer at Stanford University for the Gravity Probe-B space mission and soon became a Unix systems administrator writing communication software and utilities; and becoming an expert in emerging internet technologies such as the now ubiquitous "World Wide Web". He authored an email "client" called "ML" which pioneered some advanced concepts in encryption, the ability to filter message streams into different "views", and multi-protocol support; and was an active proponent of and participant in the open source software *movement*. In 1996 he went to Netscape Communications to become tech lead on their Messaging Server and integrate this with Collabra (groupware) into a comprehensive communications server package. He stayed on after Netscape was acquired by America Online and was tech manager of the Groups@AOL project until 2001.
+
+During a layoff round, Mike was let go from America Online in August 2001 and purchased a music store in Mountain View, California later to be known as "Sonica Music Company". Opening a retail store for non-essential goods at the beginning of a prolonged economic downturn was in retrospect probably not the wisest career move. Sonica eventually folded; in late 2006. Mike returned to working on software and systems support full-time and was employed briefly at Symantec before moving to Australia in early 2007. He currently lives on a farm "out in the middle of nowhere" and is employed as a Computer Systems Officer at the University of Wollongong.
+
+
+##RedMatrix - The Early Years
+
+The software which went into creating RedMatrix has been through three distinct historical phases. It began in 2003 when Mike Macgirvin was looking for a content management system to power the website for his music store and found the available solutions to be lacking in various respects. The project was born as the "PurpleHaze weblog" under the nom de plume "Nerdware Communications". It was a multi-user PHP/MySQL CMS which provided blogs, forums, photo albums, events and more. Initially it provided the basis for a social community and shopping for customers of the store, but was also linked to Mike's personal weblog running on another domain. The distinguishing characteristic of this software was the ability for so-called "normal users" to re-assemble the components and choose different content feeds - and in essence create their own personal "multi-user CMS" as a view. Their custom view was able to communicate with anybody else that used the system, but could be partitioned so that adult sites and motorcycle enthusiast sites would not be visible to each other and not clash (or in this case Mike's personal website and the music store website). This software was developed primarily from 2003 until 2008.
+
+In 2006 this software was used as the prototype for Symantec's "safeweb" reputation and community site. It was developed and enhanced until about 2008. A rewrite took place in 2008 named "Reflection" but work stagnated as the community dwindled. The need for content management systems and communications software dropped dramatically during this time as humans flocked to the new social aggregrators - Facebook and Twitter.
+
+
+##Mistpark/Friendica
+
+In early 2010, Mike left Facebook, concerned at the company's increasing hold and control of personal information. In his words "Companies die. We watched it happen in the dot-com years. When they do, their databases are sold to the highest bidder.". Mike used some remnants of the old CMS project to create a decentralised social communications platform. This was launched in July 2010 as "Mistpark". The name was chosen as a tribute to his new home in the Southern Highlands of Australia. The key innovation in this project was the ability to authenticate remotely and invisibly to other decentralised instances of the software so to allow remote viewing of private photos and provide "wall-to-wall" posting across website instances. The lack of simple remote identity *provenance* was a serious limitation of other decentralised communication protocols.
+
+In late 2010, the name was changed to "Friendika". The name Friendika had some symbolic issues, since the suffix was common with "swastika" and "Amerika", both having negative connotations, however the dot-com domain was available. Friendica was in fact the first choice but the 'friendica.com' domain name was already registered. It became available a year later and the project was renamed to Friendica in late 2011.
+
+Soon after version 1 was released in July 2010 - providing basic social communications, the software also took on a new role - cross-service federation; which was first introduced in August and September 2010. Federation allowed the software to "behave as" a StatusNet site and friends and messages could communicate to the other service from their own platforms. It was also hoped to provide federation with Diaspora - a project with similar scope being developed in secret in New York and first released in November of that year. Over the course of the next year, the federation ability was extended to provide integrated communications from RSS feeds, to and from email, StatusNet, Facebook, Twitter, and the emerging Diaspora project. The software provided a single "view" of your entire social space no matter what provider you or your friends used. StatusNet and Diaspora were supported natively so that one account could access any of these services. Facebook and Twitter used "API federation" which required the person to have an account on those services with which to link.
+
+By July 2012, Twitter and Facebook had both changed their terms of service and essentially outlawed "API federation" in the way Friendica was using it. Diaspora announced they were changing their protocol and would not maintain compatibility nor provide any warning when compatibility would break (or documentation on the proposed changes). The creator of StatusNet was also leaving his project to create something new (pump.io). As the software's primary purpose by this time was "federation of different social services into one interface", this created a bit of a crisis. The federated social web was crumbling. Also of concern was that independent and decentralised social websites shut down frequently, requiring all their members to start over again on another site. Often the effort involved to do this seemed daunting - and many people ran back to the relative safety of the large corporate providers - Facebook, Twitter, and now Google+.
+
+Mike realised he did not want to be held hostage to the decisions that other projects and companies and independent websites make. Friendica could operate on its own without attaching to these other networks, but its vision and implementation of a federated social world depended on federation with others for its project identity - so this created an identity crisis.
+
+Mike had been working on this project for some time and there were a number of things which needed re-writing, including the base communication protocol which Friendica used (DFRN or the "Distributed Friends and Relations Network" protocol). These ideas were starting to emerge as a different method of communication he called "zot". Zot began as a way to create a common language for federated websites, but there was no interest in this ability and as mentioned, the federated web was crumbling. The first version was soon scrapped and zot was re-designed and re-ignited as a streamlined communication protocol which was location-independent; e.g. not tied to any website. This would allow people to carry on unaffected if their website operator shut down temporarily or permanently. They wouldn't have to make friends all over again, and permissions of everything on the system wouldn't have to be changed to allow bob@site1 to see something that was private to him, even though he was now bob@site2. This was a serious problem with decentralisation. People moved and their online identities were lost and had to be re-created from scratch and existing relationships destroyed and had to be created all over again.
+
+
+##RedMatrix
+
+In July 2012, Mike left the Friendica project and began development of "zot" and a new base project called "red" in his somewhat elusive *spare time*. Red is Spanish for "network". It wasn't really a "social network" and especially not a "federated social network". It was just Red (technically "la red"), or "the network". Work began by removing all the "federation" components and going back to basics - communication and remote authentication. It was a major re-write and took roughly six months before even basic communication was re-established. It was also no longer compatible with Friendica - which had been given to the "Friendica community" and by this time (December 2012) was developing separately on its own track.
+
+It became clear during this time that the single most compelling feature of the project wasn't the social network at all, but the authentication layer and decentralised access control mechanisms. Combined with zot's location independence it created a new model for software which had never existed previously - decentralised identity-aware web publishing and single sign-on to any compatible provider across the web. These weren't *evolutionary*, they were **revolutionary**. One of the biggest flaws of the modern web is the reliance on different passwords for every service you use, or reliance on a single provider if you were to tie them to - say your Facebook login. Facebook can remove your account at any time. Gone. If you rely on their authentication for all your websites, your entire online identity - now gone. This is also what was missing from Friendica - a compelling software feature which could stand on its own, without requiring a social network and especially without requiring a federated social network with all the mentioned external dependencies.
+
+An early visitor to the project noted that he had some difficulty finding the project on Google because of the choice of name - "red". Yes, this was a poor decision in retrospect. We were buried on page 23,712 of the search results. The concept that was emerging around this identity-aware publishing was that of "a matrix of inter-connected thought streams", since we didn't have a concept of "people" and "friends". All were just connected "channels" with different ways to connect. So "Red Matrix" was chosen to give it a searchable name. It had nothing to do with the Matrix film and red and blue pills, though that is frequently cited (erronously); and in fact isn't a bad analogy.
+
+The concept of identity-aware content was alien to anything that existed previously on the web, so to make it useful we had to provide the ability to use it for content. It needed content publishing tools. This brought back concepts from the old "Content Management System" on which the software was originally based. To get it up and running quickly we created a markup language for webpages called "Comanche" which let you describe a page in high-level terms based on bbcode tags. We also added WebDAV so you could put decentralised access control on files and drag/drop from your operating system. So now you could have private photos, webpages, files, events, conversations, chatrooms - and they are visible to those you choose - no matter what site they use. All they need is zot. And your viewers could move to another site or just pop up at a different site any time they want and we don't care. And it **also** had a built-in social network; with lots of additional privacy and encryption features which were added even before the Snowden revelations gave them added urgency.
+
+Over time a few federation components re-emerged. The ability to view RSS feeds was important to many people. Diaspora never really managed to re-write their protocol, so that was re-implemented and allowed RedMatrix to connect with Diaspora and Friendica again (Friendica still had their Diaspora protocol intact, so this was the most common language now remaining on the free web - despite its faults). Diaspora communications aren't able to make use of the advanced identity features, but they work for basic communications.
+
+That brings us up to the present. Where will RedMatrix go from here? I don't know. That's up to you.
+
+#include doc/macros/main_footer.bb;
diff --git a/doc/html/Contact_8php.html b/doc/html/Contact_8php.html
index c8b87bcae..c65ecda8f 100644
--- a/doc/html/Contact_8php.html
+++ b/doc/html/Contact_8php.html
@@ -132,6 +132,8 @@ Functions</h2></td></tr>
<tr class="separator:a2fc191067dd571a79603c66b04b1ca15"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a5101d7eca5d6f387e5555f03fe249e33"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="Contact_8php.html#a5101d7eca5d6f387e5555f03fe249e33">account_remove</a> ($account_id, $local=true, $unset_session=true)</td></tr>
<tr class="separator:a5101d7eca5d6f387e5555f03fe249e33"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ab5895b75a3b2abdddf1cb351a8c6b58b"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="Contact_8php.html#ab5895b75a3b2abdddf1cb351a8c6b58b">rrmdir</a> ($path)</td></tr>
+<tr class="separator:ab5895b75a3b2abdddf1cb351a8c6b58b"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a4e8af0f0525161da74583c04b8b03097"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="Contact_8php.html#a4e8af0f0525161da74583c04b8b03097">channel_remove</a> ($channel_id, $local=true, $unset_session=true)</td></tr>
<tr class="separator:a4e8af0f0525161da74583c04b8b03097"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a08845ce8c5b997d5edac38ae7118b5c8"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="Contact_8php.html#a08845ce8c5b997d5edac38ae7118b5c8">mark_orphan_hubsxchans</a> ()</td></tr>
@@ -246,7 +248,7 @@ Functions</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="include_2chanman_8php.html#a21ba9a5c961e866ff27aee3ee67bf99b">chanman_remove_everything_from_network()</a>, and <a class="el" href="removeaccount_8php.html#a26a3325292e932c59793430ab737126a">removeaccount_post()</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>, and <a class="el" href="removeaccount_8php.html#a26a3325292e932c59793430ab737126a">removeaccount_post()</a>.</p>
</div>
</div>
@@ -455,6 +457,24 @@ Functions</h2></td></tr>
</div>
</div>
+<a class="anchor" id="ab5895b75a3b2abdddf1cb351a8c6b58b"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">rrmdir </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">
+
+<p>Referenced by <a class="el" href="Contact_8php.html#a4e8af0f0525161da74583c04b8b03097">channel_remove()</a>.</p>
+
+</div>
+</div>
<a class="anchor" id="a2fc191067dd571a79603c66b04b1ca15"></a>
<div class="memitem">
<div class="memproto">
diff --git a/doc/html/Contact_8php.js b/doc/html/Contact_8php.js
index 6315338ec..556236836 100644
--- a/doc/html/Contact_8php.js
+++ b/doc/html/Contact_8php.js
@@ -13,6 +13,7 @@ var Contact_8php =
[ "random_profile", "Contact_8php.html#a7e3f5bef8ea1d2bf8434c9be36a2b713", null ],
[ "rconnect_url", "Contact_8php.html#a2f4f495d53f2a334ab75292af79d3c91", null ],
[ "remove_all_xchan_resources", "Contact_8php.html#acc12cda999c88c4d6185cca967c15125", null ],
+ [ "rrmdir", "Contact_8php.html#ab5895b75a3b2abdddf1cb351a8c6b58b", null ],
[ "user_remove", "Contact_8php.html#a2fc191067dd571a79603c66b04b1ca15", null ],
[ "vcard_from_xchan", "Contact_8php.html#a6348a532c9d26cd1c9afbc9aa6aa8960", null ]
]; \ No newline at end of file
diff --git a/doc/html/Importer_8php.html b/doc/html/Importer_8php.html
new file mode 100644
index 000000000..1983b152a
--- /dev/null
+++ b/doc/html/Importer_8php.html
@@ -0,0 +1,129 @@
+<!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/Import/Importer.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('Importer_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="#nested-classes">Classes</a> &#124;
+<a href="#namespaces">Namespaces</a> </div>
+ <div class="headertitle">
+<div class="title">Importer.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="classRedMatrix_1_1Import_1_1Import.html">RedMatrix\Import\Import</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="namespaces"></a>
+Namespaces</h2></td></tr>
+<tr class="memitem:namespaceRedMatrix_1_1Import"><td class="memItemLeft" align="right" valign="top">namespace &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespaceRedMatrix_1_1Import.html">RedMatrix\Import</a></td></tr>
+<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:namespaceRedMatrix"><td class="memItemLeft" align="right" valign="top">namespace &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespaceRedMatrix.html">RedMatrix</a></td></tr>
+<tr class="memdesc:namespaceRedMatrix"><td class="mdescLeft">&#160;</td><td class="mdescRight">Class <a class="el" href="namespaceRedMatrix_1_1Import.html">Import</a>. <br/></td></tr>
+<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
+</table>
+</div><!-- contents -->
+</div><!-- doc-content -->
+
diff --git a/doc/html/README_8md.html b/doc/html/README_8md.html
index ec5f607aa..0b5de21e2 100644
--- a/doc/html/README_8md.html
+++ b/doc/html/README_8md.html
@@ -28,7 +28,7 @@
<table cellspacing="0" cellpadding="0">
<tbody>
<tr style="height: 56px;">
- <td id="projectlogo"><img alt="Logo" src="rhash-64.png"/></td>
+ <td id="projectlogo"><img alt="Logo" src="rm-64.png"/></td>
<td style="padding-left: 0.5em;">
<div id="projectname">The Red Matrix
</div>
diff --git a/doc/html/RedBasicAuth_8php.html b/doc/html/RedBasicAuth_8php.html
new file mode 100644
index 000000000..86984219c
--- /dev/null
+++ b/doc/html/RedBasicAuth_8php.html
@@ -0,0 +1,127 @@
+<!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/RedDAV/RedBasicAuth.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('RedBasicAuth_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="#nested-classes">Classes</a> &#124;
+<a href="#namespaces">Namespaces</a> </div>
+ <div class="headertitle">
+<div class="title">RedBasicAuth.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="classRedMatrix_1_1RedDAV_1_1RedBasicAuth.html">RedMatrix\RedDAV\RedBasicAuth</a></td></tr>
+<tr class="memdesc:"><td class="mdescLeft">&#160;</td><td class="mdescRight">Authentication backend class for <a class="el" href="namespaceRedMatrix_1_1RedDAV.html">RedDAV</a>. <a href="classRedMatrix_1_1RedDAV_1_1RedBasicAuth.html#details">More...</a><br/></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="namespaces"></a>
+Namespaces</h2></td></tr>
+<tr class="memitem:namespaceRedMatrix_1_1RedDAV"><td class="memItemLeft" align="right" valign="top">namespace &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespaceRedMatrix_1_1RedDAV.html">RedMatrix\RedDAV</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/RedBrowser_8php.html b/doc/html/RedBrowser_8php.html
new file mode 100644
index 000000000..7ee0e1d7e
--- /dev/null
+++ b/doc/html/RedBrowser_8php.html
@@ -0,0 +1,127 @@
+<!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/RedDAV/RedBrowser.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('RedBrowser_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="#nested-classes">Classes</a> &#124;
+<a href="#namespaces">Namespaces</a> </div>
+ <div class="headertitle">
+<div class="title">RedBrowser.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="classRedMatrix_1_1RedDAV_1_1RedBrowser.html">RedMatrix\RedDAV\RedBrowser</a></td></tr>
+<tr class="memdesc:"><td class="mdescLeft">&#160;</td><td class="mdescRight">Provides a DAV frontend for the webbrowser. <a href="classRedMatrix_1_1RedDAV_1_1RedBrowser.html#details">More...</a><br/></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="namespaces"></a>
+Namespaces</h2></td></tr>
+<tr class="memitem:namespaceRedMatrix_1_1RedDAV"><td class="memItemLeft" align="right" valign="top">namespace &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespaceRedMatrix_1_1RedDAV.html">RedMatrix\RedDAV</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/RedDirectory_8php.html b/doc/html/RedDirectory_8php.html
new file mode 100644
index 000000000..e0e081164
--- /dev/null
+++ b/doc/html/RedDirectory_8php.html
@@ -0,0 +1,127 @@
+<!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/RedDAV/RedDirectory.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('RedDirectory_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="#nested-classes">Classes</a> &#124;
+<a href="#namespaces">Namespaces</a> </div>
+ <div class="headertitle">
+<div class="title">RedDirectory.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="classRedMatrix_1_1RedDAV_1_1RedDirectory.html">RedMatrix\RedDAV\RedDirectory</a></td></tr>
+<tr class="memdesc:"><td class="mdescLeft">&#160;</td><td class="mdescRight"><a class="el" href="classRedMatrix_1_1RedDAV_1_1RedDirectory.html" title="RedDirectory class.">RedDirectory</a> class. <a href="classRedMatrix_1_1RedDAV_1_1RedDirectory.html#details">More...</a><br/></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="namespaces"></a>
+Namespaces</h2></td></tr>
+<tr class="memitem:namespaceRedMatrix_1_1RedDAV"><td class="memItemLeft" align="right" valign="top">namespace &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespaceRedMatrix_1_1RedDAV.html">RedMatrix\RedDAV</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/RedFile_8php.html b/doc/html/RedFile_8php.html
new file mode 100644
index 000000000..218102ecc
--- /dev/null
+++ b/doc/html/RedFile_8php.html
@@ -0,0 +1,127 @@
+<!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/RedDAV/RedFile.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('RedFile_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="#nested-classes">Classes</a> &#124;
+<a href="#namespaces">Namespaces</a> </div>
+ <div class="headertitle">
+<div class="title">RedFile.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="classRedMatrix_1_1RedDAV_1_1RedFile.html">RedMatrix\RedDAV\RedFile</a></td></tr>
+<tr class="memdesc:"><td class="mdescLeft">&#160;</td><td class="mdescRight">This class represents a file in DAV. <a href="classRedMatrix_1_1RedDAV_1_1RedFile.html#details">More...</a><br/></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="namespaces"></a>
+Namespaces</h2></td></tr>
+<tr class="memitem:namespaceRedMatrix_1_1RedDAV"><td class="memItemLeft" align="right" valign="top">namespace &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespaceRedMatrix_1_1RedDAV.html">RedMatrix\RedDAV</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/account_8php.html b/doc/html/account_8php.html
index 76f2d1b0a..0346796e4 100644
--- a/doc/html/account_8php.html
+++ b/doc/html/account_8php.html
@@ -142,6 +142,8 @@ Functions</h2></td></tr>
<tr class="separator:a030cec6793b909c439c0336ba39b1571"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a905b54e10704b283ac64680a8abc0971"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="account_8php.html#a905b54e10704b283ac64680a8abc0971">service_class_fetch</a> ($uid, $property)</td></tr>
<tr class="separator:a905b54e10704b283ac64680a8abc0971"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a4328c40ee4b3d68630cf1ebb7b9d4d89"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="account_8php.html#a4328c40ee4b3d68630cf1ebb7b9d4d89">account_service_class_fetch</a> ($aid, $property)</td></tr>
+<tr class="separator:a4328c40ee4b3d68630cf1ebb7b9d4d89"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a4fc13e528367f510fcb6d8bbfc559040"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="account_8php.html#a4fc13e528367f510fcb6d8bbfc559040">upgrade_link</a> ($<a class="el" href="bbcode_8php.html#a009f61aaf78771737ed0765c8463911b">bbcode</a>=false)</td></tr>
<tr class="separator:a4fc13e528367f510fcb6d8bbfc559040"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a901657dd078e070516cf97285e0bada7"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="account_8php.html#a901657dd078e070516cf97285e0bada7">upgrade_message</a> ($<a class="el" href="bbcode_8php.html#a009f61aaf78771737ed0765c8463911b">bbcode</a>=false)</td></tr>
@@ -150,6 +152,34 @@ Functions</h2></td></tr>
<tr class="separator:a754d7f53b3abc557b753c057dc4e021d"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table>
<h2 class="groupheader">Function Documentation</h2>
+<a class="anchor" id="a4328c40ee4b3d68630cf1ebb7b9d4d89"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">account_service_class_fetch </td>
+ <td>(</td>
+ <td class="paramtype">&#160;</td>
+ <td class="paramname"><em>$aid</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">&#160;</td>
+ <td class="paramname"><em>$property</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="import_8php.html#af17fef0410518f7eac205d0ea416eaa2">import_post()</a>, and <a class="el" href="zot_8php.html#ac301c67864917c35922257950ae0f95c">process_channel_sync_delivery()</a>.</p>
+
+</div>
+</div>
<a class="anchor" id="a43e3042b2723d76915a030bac3c668b6"></a>
<div class="memitem">
<div class="memproto">
@@ -380,7 +410,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="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="classRedBrowser.html#a1f7daf50bb9bfcde7345b3b1908dbd7e">RedBrowser\generateDirectoryIndex()</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="poller_8php.html#a5f12df3a4738124b6c039971e87e76da">poller_run()</a>, <a class="el" href="classRedFile.html#a41a49a583eb276b75626fcf97f4a699c">RedFile\put()</a>, and <a class="el" href="widgets_8php.html#ad1bf7aa69e8d100d95faba17c7bc91cd">widget_follow()</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="classRedMatrix_1_1RedDAV_1_1RedDirectory.html#a58e750256cdc2f0f79fbe8d5463ffefe">RedMatrix\RedDAV\RedDirectory\createFile()</a>, <a class="el" href="classRedMatrix_1_1RedDAV_1_1RedBrowser.html#af764d5f14df751f9ec86c34fab300c09">RedMatrix\RedDAV\RedBrowser\generateDirectoryIndex()</a>, <a class="el" href="classRedMatrix_1_1RedDAV_1_1RedDirectory.html#a69db443ed3c84938b4352fe515bf8d68">RedMatrix\RedDAV\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="poller_8php.html#a5f12df3a4738124b6c039971e87e76da">poller_run()</a>, <a class="el" href="zot_8php.html#ac301c67864917c35922257950ae0f95c">process_channel_sync_delivery()</a>, <a class="el" href="classRedMatrix_1_1RedDAV_1_1RedFile.html#a709ec1288d21ddf1353524435ab916f0">RedMatrix\RedDAV\RedFile\put()</a>, and <a class="el" href="widgets_8php.html#ad1bf7aa69e8d100d95faba17c7bc91cd">widget_follow()</a>.</p>
</div>
</div>
diff --git a/doc/html/account_8php.js b/doc/html/account_8php.js
index fa7ce6657..9434797b1 100644
--- a/doc/html/account_8php.js
+++ b/doc/html/account_8php.js
@@ -1,5 +1,6 @@
var account_8php =
[
+ [ "account_service_class_fetch", "account_8php.html#a4328c40ee4b3d68630cf1ebb7b9d4d89", null ],
[ "account_total", "account_8php.html#a43e3042b2723d76915a030bac3c668b6", null ],
[ "check_account_admin", "account_8php.html#a917d74aad0baf3e0c4b51cf1051e654f", null ],
[ "check_account_email", "account_8php.html#ae052bd5558847bd38e89c213561a9771", null ],
diff --git a/doc/html/admin_8php.html b/doc/html/admin_8php.html
index 0fa364ace..95e86c354 100644
--- a/doc/html/admin_8php.html
+++ b/doc/html/admin_8php.html
@@ -171,7 +171,7 @@ Functions</h2></td></tr>
</div><div class="memdoc">
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
- <tr><td class="paramtype"><a class="el" href="classApp.html">App</a></td><td class="paramname">$a</td><td></td></tr>
+ <tr><td class="paramtype"><a class="el" href="classApp.html" title="Our main application structure for the life of this page.">App</a></td><td class="paramname">$a</td><td></td></tr>
</table>
</dd>
</dl>
@@ -196,7 +196,7 @@ Functions</h2></td></tr>
</div><div class="memdoc">
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
- <tr><td class="paramtype"><a class="el" href="classApp.html">App</a></td><td class="paramname">$a</td><td></td></tr>
+ <tr><td class="paramtype"><a class="el" href="classApp.html" title="Our main application structure for the life of this page.">App</a></td><td class="paramname">$a</td><td></td></tr>
</table>
</dd>
</dl>
@@ -222,7 +222,7 @@ Functions</h2></td></tr>
<p>Channels admin page</p>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
- <tr><td class="paramtype"><a class="el" href="classApp.html">App</a></td><td class="paramname">$a</td><td></td></tr>
+ <tr><td class="paramtype"><a class="el" href="classApp.html" title="Our main application structure for the life of this page.">App</a></td><td class="paramname">$a</td><td></td></tr>
</table>
</dd>
</dl>
@@ -300,7 +300,7 @@ Functions</h2></td></tr>
</div><div class="memdoc">
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
- <tr><td class="paramtype"><a class="el" href="classApp.html">App</a></td><td class="paramname">$a</td><td></td></tr>
+ <tr><td class="paramtype"><a class="el" href="classApp.html" title="Our main application structure for the life of this page.">App</a></td><td class="paramname">$a</td><td></td></tr>
</table>
</dd>
</dl>
@@ -326,7 +326,7 @@ Functions</h2></td></tr>
<p>Logs admin page</p>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
- <tr><td class="paramtype"><a class="el" href="classApp.html">App</a></td><td class="paramname">$a</td><td></td></tr>
+ <tr><td class="paramtype"><a class="el" href="classApp.html" title="Our main application structure for the life of this page.">App</a></td><td class="paramname">$a</td><td></td></tr>
</table>
</dd>
</dl>
@@ -351,7 +351,7 @@ Functions</h2></td></tr>
<p>Plugins admin page</p>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
- <tr><td class="paramtype"><a class="el" href="classApp.html">App</a></td><td class="paramname">$a</td><td></td></tr>
+ <tr><td class="paramtype"><a class="el" href="classApp.html" title="Our main application structure for the life of this page.">App</a></td><td class="paramname">$a</td><td></td></tr>
</table>
</dd>
</dl>
@@ -414,7 +414,7 @@ Functions</h2></td></tr>
</div><div class="memdoc">
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
- <tr><td class="paramtype"><a class="el" href="classApp.html">App</a></td><td class="paramname">$a</td><td></td></tr>
+ <tr><td class="paramtype"><a class="el" href="classApp.html" title="Our main application structure for the life of this page.">App</a></td><td class="paramname">$a</td><td></td></tr>
</table>
</dd>
</dl>
@@ -440,7 +440,7 @@ Functions</h2></td></tr>
<p>Admin Site Page </p>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
- <tr><td class="paramtype"><a class="el" href="classApp.html">App</a></td><td class="paramname">$a</td><td></td></tr>
+ <tr><td class="paramtype"><a class="el" href="classApp.html" title="Our main application structure for the life of this page.">App</a></td><td class="paramname">$a</td><td></td></tr>
</table>
</dd>
</dl>
@@ -465,7 +465,7 @@ Functions</h2></td></tr>
<p>Admin Summary Page </p>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
- <tr><td class="paramtype"><a class="el" href="classApp.html">App</a></td><td class="paramname">$a</td><td></td></tr>
+ <tr><td class="paramtype"><a class="el" href="classApp.html" title="Our main application structure for the life of this page.">App</a></td><td class="paramname">$a</td><td></td></tr>
</table>
</dd>
</dl>
@@ -491,7 +491,7 @@ Functions</h2></td></tr>
<p>Themes admin page</p>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
- <tr><td class="paramtype"><a class="el" href="classApp.html">App</a></td><td class="paramname">$a</td><td></td></tr>
+ <tr><td class="paramtype"><a class="el" href="classApp.html" title="Our main application structure for the life of this page.">App</a></td><td class="paramname">$a</td><td></td></tr>
</table>
</dd>
</dl>
@@ -518,7 +518,7 @@ Functions</h2></td></tr>
</div><div class="memdoc">
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
- <tr><td class="paramtype"><a class="el" href="classApp.html">App</a></td><td class="paramname">$a</td><td></td></tr>
+ <tr><td class="paramtype"><a class="el" href="classApp.html" title="Our main application structure for the life of this page.">App</a></td><td class="paramname">$a</td><td></td></tr>
</table>
</dd>
</dl>
@@ -544,7 +544,7 @@ Functions</h2></td></tr>
<p>Users admin page</p>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
- <tr><td class="paramtype"><a class="el" href="classApp.html">App</a></td><td class="paramname">$a</td><td></td></tr>
+ <tr><td class="paramtype"><a class="el" href="classApp.html" title="Our main application structure for the life of this page.">App</a></td><td class="paramname">$a</td><td></td></tr>
</table>
</dd>
</dl>
@@ -569,7 +569,7 @@ Functions</h2></td></tr>
<p>Red admin </p>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
- <tr><td class="paramtype"><a class="el" href="classApp.html">App</a></td><td class="paramname">$a</td><td></td></tr>
+ <tr><td class="paramtype"><a class="el" href="classApp.html" title="Our main application structure for the life of this page.">App</a></td><td class="paramname">$a</td><td></td></tr>
</table>
</dd>
</dl>
diff --git a/doc/html/annotated.html b/doc/html/annotated.html
index 2cefb3e1b..6e1ed1edf 100644
--- a/doc/html/annotated.html
+++ b/doc/html/annotated.html
@@ -110,36 +110,41 @@ $(document).ready(function(){initNavTree('annotated.html','');});
</div><!--header-->
<div class="contents">
<div class="textblock">Here are the classes, structs, unions and interfaces with brief descriptions:</div><div class="directory">
-<table class="directory">
+<div class="levels">[detail level <span onclick="javascript:toggleLevel(1);">1</span><span onclick="javascript:toggleLevel(2);">2</span><span onclick="javascript:toggleLevel(3);">3</span>]</div><table class="directory">
<tr id="row_0_" class="even"><td class="entry"><img src="ftv2node.png" alt="o" width="16" height="22" /><img src="ftv2ns.png" alt="N" width="24" height="22" /><a class="el" href="namespaceacl__selectors.html" target="_self">acl_selectors</a></td><td class="desc"></td></tr>
<tr id="row_1_"><td class="entry"><img src="ftv2node.png" alt="o" width="16" height="22" /><img src="ftv2ns.png" alt="N" width="24" height="22" /><a class="el" href="namespaceFriendica.html" target="_self">Friendica</a></td><td class="desc"></td></tr>
<tr id="row_2_" class="even"><td class="entry"><img src="ftv2node.png" alt="o" width="16" height="22" /><img src="ftv2ns.png" alt="N" width="24" height="22" /><a class="el" href="namespacefriendica-to-smarty-tpl.html" target="_self">friendica-to-smarty-tpl</a></td><td class="desc"></td></tr>
-<tr id="row_3_"><td class="entry"><img src="ftv2node.png" alt="o" width="16" height="22" /><img src="ftv2ns.png" alt="N" width="24" height="22" /><a class="el" href="namespaceupdatetpl.html" target="_self">updatetpl</a></td><td class="desc"></td></tr>
-<tr id="row_4_" class="even"><td class="entry"><img src="ftv2node.png" alt="o" width="16" height="22" /><img src="ftv2ns.png" alt="N" width="24" height="22" /><a class="el" href="namespaceutil.html" target="_self">util</a></td><td class="desc"></td></tr>
-<tr id="row_5_"><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="classApp.html" target="_self">App</a></td><td class="desc"></td></tr>
-<tr id="row_6_" 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="classBaseObject.html" target="_self">BaseObject</a></td><td class="desc"></td></tr>
-<tr id="row_7_"><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="classCache.html" target="_self">Cache</a></td><td class="desc"></td></tr>
-<tr id="row_8_" 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="classConversation.html" target="_self">Conversation</a></td><td class="desc"></td></tr>
-<tr id="row_9_"><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="classdba__driver.html" target="_self">dba_driver</a></td><td class="desc"></td></tr>
-<tr id="row_10_" 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="classdba__mysql.html" target="_self">dba_mysql</a></td><td class="desc"></td></tr>
-<tr id="row_11_"><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="classdba__mysqli.html" target="_self">dba_mysqli</a></td><td class="desc"></td></tr>
-<tr id="row_12_" 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="classenotify.html" target="_self">enotify</a></td><td class="desc"></td></tr>
-<tr id="row_13_"><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="classFKOAuth1.html" target="_self">FKOAuth1</a></td><td class="desc"></td></tr>
-<tr id="row_14_" 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="classFKOAuthDataStore.html" target="_self">FKOAuthDataStore</a></td><td class="desc"></td></tr>
-<tr id="row_15_"><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="classFriendicaSmarty.html" target="_self">FriendicaSmarty</a></td><td class="desc"></td></tr>
-<tr id="row_16_" 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="classFriendicaSmartyEngine.html" target="_self">FriendicaSmartyEngine</a></td><td class="desc"></td></tr>
-<tr id="row_17_"><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="classItem.html" target="_self">Item</a></td><td class="desc"></td></tr>
-<tr id="row_18_" 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="interfaceITemplateEngine.html" target="_self">ITemplateEngine</a></td><td class="desc"></td></tr>
-<tr id="row_19_"><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__driver.html" target="_self">photo_driver</a></td><td class="desc"></td></tr>
-<tr id="row_20_" 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="classphoto__gd.html" target="_self">photo_gd</a></td><td class="desc"></td></tr>
-<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="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"><a class="el" href="classRedDirectory.html" title="RedDirectory class.">RedDirectory</a> class</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>
+<tr id="row_3_"><td class="entry"><img id="arr_3_" src="ftv2mnode.png" alt="o" width="16" height="22" onclick="toggleFolder('3_')"/><img src="ftv2ns.png" alt="N" width="24" height="22" /><a class="el" href="namespaceRedMatrix.html" target="_self">RedMatrix</a></td><td class="desc">Class <a class="el" href="namespaceRedMatrix_1_1Import.html">Import</a></td></tr>
+<tr id="row_3_0_" class="even"><td class="entry"><img src="ftv2vertline.png" alt="|" width="16" height="22" /><img id="arr_3_0_" src="ftv2mnode.png" alt="o" width="16" height="22" onclick="toggleFolder('3_0_')"/><img src="ftv2ns.png" alt="N" width="24" height="22" /><a class="el" href="namespaceRedMatrix_1_1Import.html" target="_self">Import</a></td><td class="desc"></td></tr>
+<tr id="row_3_0_0_"><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="ftv2cl.png" alt="C" width="24" height="22" /><a class="el" href="classRedMatrix_1_1Import_1_1Import.html" target="_self">Import</a></td><td class="desc"></td></tr>
+<tr id="row_3_1_" class="even"><td class="entry"><img src="ftv2vertline.png" alt="|" width="16" height="22" /><img id="arr_3_1_" src="ftv2mlastnode.png" alt="\" width="16" height="22" onclick="toggleFolder('3_1_')"/><img src="ftv2ns.png" alt="N" width="24" height="22" /><a class="el" href="namespaceRedMatrix_1_1RedDAV.html" target="_self">RedDAV</a></td><td class="desc"></td></tr>
+<tr id="row_3_1_0_"><td class="entry"><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="ftv2cl.png" alt="C" width="24" height="22" /><a class="el" href="classRedMatrix_1_1RedDAV_1_1RedBasicAuth.html" target="_self">RedBasicAuth</a></td><td class="desc">Authentication backend class for <a class="el" href="namespaceRedMatrix_1_1RedDAV.html">RedDAV</a></td></tr>
+<tr id="row_3_1_1_" class="even"><td class="entry"><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="ftv2cl.png" alt="C" width="24" height="22" /><a class="el" href="classRedMatrix_1_1RedDAV_1_1RedBrowser.html" target="_self">RedBrowser</a></td><td class="desc">Provides a DAV frontend for the webbrowser</td></tr>
+<tr id="row_3_1_2_"><td class="entry"><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="ftv2cl.png" alt="C" width="24" height="22" /><a class="el" href="classRedMatrix_1_1RedDAV_1_1RedDirectory.html" target="_self">RedDirectory</a></td><td class="desc"><a class="el" href="classRedMatrix_1_1RedDAV_1_1RedDirectory.html" title="RedDirectory class.">RedDirectory</a> class</td></tr>
+<tr id="row_3_1_3_" class="even"><td class="entry"><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="ftv2cl.png" alt="C" width="24" height="22" /><a class="el" href="classRedMatrix_1_1RedDAV_1_1RedFile.html" target="_self">RedFile</a></td><td class="desc">This class represents a file in DAV</td></tr>
+<tr id="row_4_"><td class="entry"><img src="ftv2node.png" alt="o" width="16" height="22" /><img src="ftv2ns.png" alt="N" width="24" height="22" /><a class="el" href="namespaceupdatetpl.html" target="_self">updatetpl</a></td><td class="desc"></td></tr>
+<tr id="row_5_" class="even"><td class="entry"><img src="ftv2node.png" alt="o" width="16" height="22" /><img src="ftv2ns.png" alt="N" width="24" height="22" /><a class="el" href="namespaceutil.html" target="_self">util</a></td><td class="desc"></td></tr>
+<tr id="row_6_"><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="classApp.html" target="_self">App</a></td><td class="desc">Our main application structure for the life of this page</td></tr>
+<tr id="row_7_" 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="classBaseObject.html" target="_self">BaseObject</a></td><td class="desc"></td></tr>
+<tr id="row_8_"><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="classCache.html" target="_self">Cache</a></td><td class="desc"></td></tr>
+<tr id="row_9_" 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="classConversation.html" target="_self">Conversation</a></td><td class="desc"></td></tr>
+<tr id="row_10_"><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="classdba__driver.html" target="_self">dba_driver</a></td><td class="desc">Abstract database driver class</td></tr>
+<tr id="row_11_" 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="classdba__mysql.html" target="_self">dba_mysql</a></td><td class="desc"></td></tr>
+<tr id="row_12_"><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="classdba__mysqli.html" target="_self">dba_mysqli</a></td><td class="desc"></td></tr>
+<tr id="row_13_" 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="classdba__postgres.html" target="_self">dba_postgres</a></td><td class="desc"></td></tr>
+<tr id="row_14_"><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="classenotify.html" target="_self">enotify</a></td><td class="desc"></td></tr>
+<tr id="row_15_" 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="classFKOAuth1.html" target="_self">FKOAuth1</a></td><td class="desc"></td></tr>
+<tr id="row_16_"><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="classFKOAuthDataStore.html" target="_self">FKOAuthDataStore</a></td><td class="desc"></td></tr>
+<tr id="row_17_" 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="classFriendicaSmarty.html" target="_self">FriendicaSmarty</a></td><td class="desc"></td></tr>
+<tr id="row_18_"><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="classFriendicaSmartyEngine.html" target="_self">FriendicaSmartyEngine</a></td><td class="desc"></td></tr>
+<tr id="row_19_" 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="classItem.html" target="_self">Item</a></td><td class="desc"></td></tr>
+<tr id="row_20_"><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="interfaceITemplateEngine.html" target="_self">ITemplateEngine</a></td><td class="desc"></td></tr>
+<tr id="row_21_" 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="classphoto__driver.html" target="_self">photo_driver</a></td><td class="desc"></td></tr>
+<tr id="row_22_"><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__gd.html" target="_self">photo_gd</a></td><td class="desc"></td></tr>
+<tr id="row_23_" 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="classphoto__imagick.html" target="_self">photo_imagick</a></td><td class="desc"></td></tr>
+<tr id="row_24_"><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_25_" 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="classTemplate.html" target="_self">Template</a></td><td class="desc"></td></tr>
+<tr id="row_26_"><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>
</div><!-- directory -->
</div><!-- contents -->
diff --git a/doc/html/annotated.js b/doc/html/annotated.js
index c6ab45689..3e28eeacf 100644
--- a/doc/html/annotated.js
+++ b/doc/html/annotated.js
@@ -3,6 +3,7 @@ var annotated =
[ "acl_selectors", "namespaceacl__selectors.html", null ],
[ "Friendica", "namespaceFriendica.html", null ],
[ "friendica-to-smarty-tpl", "namespacefriendica-to-smarty-tpl.html", null ],
+ [ "RedMatrix", "namespaceRedMatrix.html", "namespaceRedMatrix" ],
[ "updatetpl", "namespaceupdatetpl.html", null ],
[ "util", "namespaceutil.html", null ],
[ "App", "classApp.html", "classApp" ],
@@ -12,6 +13,7 @@ var annotated =
[ "dba_driver", "classdba__driver.html", "classdba__driver" ],
[ "dba_mysql", "classdba__mysql.html", "classdba__mysql" ],
[ "dba_mysqli", "classdba__mysqli.html", "classdba__mysqli" ],
+ [ "dba_postgres", "classdba__postgres.html", "classdba__postgres" ],
[ "enotify", "classenotify.html", null ],
[ "FKOAuth1", "classFKOAuth1.html", "classFKOAuth1" ],
[ "FKOAuthDataStore", "classFKOAuthDataStore.html", "classFKOAuthDataStore" ],
@@ -23,10 +25,6 @@ var annotated =
[ "photo_gd", "classphoto__gd.html", "classphoto__gd" ],
[ "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" ],
[ "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 43997f51e..942032e54 100644
--- a/doc/html/apw_2php_2style_8php.html
+++ b/doc/html/apw_2php_2style_8php.html
@@ -114,13 +114,13 @@ $(document).ready(function(){initNavTree('apw_2php_2style_8php.html','');});
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="apw_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:a2f71e817b8fac88ce7f0ec5c0fb88b8d"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="apw_2php_2style_8php.html#a2f71e817b8fac88ce7f0ec5c0fb88b8d">if</a> ($uid) <a class="el" href="include_2config_8php.html#ac543813a980b3841cc5a277fcd4a24a6">load_pconfig</a>($uid</td></tr>
+<tr class="memitem:a2f71e817b8fac88ce7f0ec5c0fb88b8d"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="apw_2php_2style_8php.html#a2f71e817b8fac88ce7f0ec5c0fb88b8d">if</a> ($uid) <a class="el" href="include_2config_8php.html#a559791dda7fef8a4b2394c83e835787b">load_pconfig</a>($uid</td></tr>
<tr class="separator:a2f71e817b8fac88ce7f0ec5c0fb88b8d"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:af3a16c5f0dd7a74cf9acf6a49fff73a7"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="apw_2php_2style_8php.html#af3a16c5f0dd7a74cf9acf6a49fff73a7">$x</a> = <a class="el" href="functions_8php.html#adefe514c95680928b3aae250cbc3c663">splitFilename</a>($font)</td></tr>
<tr class="separator:af3a16c5f0dd7a74cf9acf6a49fff73a7"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:ab9e0f70d44ab67f4334f9883631777fc"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="apw_2php_2style_8php.html#ab9e0f70d44ab67f4334f9883631777fc">$fname</a> = $<a class="el" href="boot_8php.html#a01353c9abebc3544ea080ac161729632">x</a>[0]</td></tr>
+<tr class="memitem:ab9e0f70d44ab67f4334f9883631777fc"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="apw_2php_2style_8php.html#ab9e0f70d44ab67f4334f9883631777fc">$fname</a> = $<a class="el" href="boot_8php.html#ae97836b0547953be182a2334c9c91d3c">x</a>[0]</td></tr>
<tr class="separator:ab9e0f70d44ab67f4334f9883631777fc"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:a404171b8f918c116e45a6421c92f0cc9"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="apw_2php_2style_8php.html#a404171b8f918c116e45a6421c92f0cc9">$fext</a> = $<a class="el" href="boot_8php.html#a01353c9abebc3544ea080ac161729632">x</a>[1]</td></tr>
+<tr class="memitem:a404171b8f918c116e45a6421c92f0cc9"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="apw_2php_2style_8php.html#a404171b8f918c116e45a6421c92f0cc9">$fext</a> = $<a class="el" href="boot_8php.html#ae97836b0547953be182a2334c9c91d3c">x</a>[1]</td></tr>
<tr class="separator:a404171b8f918c116e45a6421c92f0cc9"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:aa58104ba36588bbf082cecbb3910e2ea"><td class="memItemLeft" align="right" valign="top"><a class="el" href="theme_2mytheme_2php_2default_8php.html#a3987f5547ceb7e36a210a66a06241a5a">if</a>(file_exists('view/theme/apw/font/'.$fname. <br class="typebreak"/>
'i.'.$fext)) <a class="el" href="theme_2mytheme_2php_2default_8php.html#a3987f5547ceb7e36a210a66a06241a5a">if</a>(file_exists('view/theme/apw/font/'.$fname. <br class="typebreak"/>
@@ -143,7 +143,7 @@ Variables</h2></td></tr>
<div class="memproto">
<table class="memname">
<tr>
- <td class="memname">$fext = $<a class="el" href="boot_8php.html#a01353c9abebc3544ea080ac161729632">x</a>[1]</td>
+ <td class="memname">$fext = $<a class="el" href="boot_8php.html#ae97836b0547953be182a2334c9c91d3c">x</a>[1]</td>
</tr>
</table>
</div><div class="memdoc">
@@ -155,7 +155,7 @@ Variables</h2></td></tr>
<div class="memproto">
<table class="memname">
<tr>
- <td class="memname">$fname = $<a class="el" href="boot_8php.html#a01353c9abebc3544ea080ac161729632">x</a>[0]</td>
+ <td class="memname">$fname = $<a class="el" href="boot_8php.html#ae97836b0547953be182a2334c9c91d3c">x</a>[0]</td>
</tr>
</table>
</div><div class="memdoc">
@@ -246,7 +246,7 @@ Variables</h2></td></tr>
</table>
</div><div class="memdoc">
-<p>Referenced by <a class="el" href="admin_8php.html#ad6f87a764fd35f522c7b4c351d7878ec">admin_page_channels()</a>, <a class="el" href="admin_8php.html#a42e628f367c168add8013352ac74d33f">admin_page_channels_post()</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="include_2apps_8php.html#a6b472df85ed875e7ae75642cece5206f">app_destroy()</a>, <a class="el" href="include_2apps_8php.html#a72756e1601489eb77971eeda011446d0">app_install()</a>, <a class="el" href="include_2apps_8php.html#a1adcd1aff4d36ad0277daca9f3d2bbe2">app_installed()</a>, <a class="el" href="include_2apps_8php.html#a01cabfb33b2d0d843cf3bf4e3d3f0ab0">app_list()</a>, <a class="el" href="zot_8php.html#aa97b33b619dd7132a9274f852af6ceb5">build_sync_packet()</a>, <a class="el" href="include_2chat_8php.html#acea6b176eb7aff44d9ba3ae24ce511d3">chat_message()</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="include_2config_8php.html#a7ad2081c5f812ac4387fd76f3762d941">del_pconfig()</a>, <a class="el" href="zot_8php.html#adfeb9400ae6b726beec89f8f1e8fde72">delete_imported_item()</a>, <a class="el" href="diaspora_8php.html#aa8e551a53fcce34be3942d0c3e20d1f4">diaspora_get_contact_by_handle()</a>, <a class="el" href="items_8php.html#a668ece2c37f05cc3abe538eb0dabfe55">drop_items()</a>, <a class="el" href="event_8php.html#ac9f206819186b65952ac1869f0da8c6e">event_addtocal()</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="items_8php.html#a52c24114b73c0bdb605a03cd29712223">handle_feed()</a>, <a class="el" href="photo__driver_8php.html#a1d0bc7161dec0d177b7d3bbe4421af9a">import_channel_photo()</a>, <a class="el" href="items_8php.html#a02ca33c31ed535d24894f8a9a91ce9df">item_add_cid()</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#a5ed782ff5b9cf050bec931e06de12c00">item_remove_cid()</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="items_8php.html#aa2d3caa2f27720762b5c729e07df40fb">list_post_dates()</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="account_8php.html#a030cec6793b909c439c0336ba39b1571">service_class_allows()</a>, <a class="el" href="account_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="items_8php.html#a9b449eeae50003414b8b30ca927af434">update_feed_item()</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#a313a8d10ab81c71357c12e67e4d7efd5">widget_item()</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#ad6f87a764fd35f522c7b4c351d7878ec">admin_page_channels()</a>, <a class="el" href="admin_8php.html#a42e628f367c168add8013352ac74d33f">admin_page_channels_post()</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="include_2apps_8php.html#a6b472df85ed875e7ae75642cece5206f">app_destroy()</a>, <a class="el" href="include_2apps_8php.html#a72756e1601489eb77971eeda011446d0">app_install()</a>, <a class="el" href="include_2apps_8php.html#a1adcd1aff4d36ad0277daca9f3d2bbe2">app_installed()</a>, <a class="el" href="include_2apps_8php.html#a01cabfb33b2d0d843cf3bf4e3d3f0ab0">app_list()</a>, <a class="el" href="blocks_8php.html#a2531a8fd51db3cecb2eb20c002c66e12">blocks_content()</a>, <a class="el" href="zot_8php.html#aa97b33b619dd7132a9274f852af6ceb5">build_sync_packet()</a>, <a class="el" href="taxonomy_8php.html#aa8f8a1ff85daef046298e93c83e7a1b4">catblock()</a>, <a class="el" href="include_2chat_8php.html#acea6b176eb7aff44d9ba3ae24ce511d3">chat_message()</a>, <a class="el" href="include_2chat_8php.html#aedcb532a0627b8644001a2fadab4e87a">chatroom_list()</a>, <a class="el" href="include_2chat_8php.html#a26abdccc2a278a59899896dbbfc6f049">chatroom_list_count()</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="include_2config_8php.html#a7ad2081c5f812ac4387fd76f3762d941">del_pconfig()</a>, <a class="el" href="zot_8php.html#adfeb9400ae6b726beec89f8f1e8fde72">delete_imported_item()</a>, <a class="el" href="diaspora_8php.html#aa8e551a53fcce34be3942d0c3e20d1f4">diaspora_get_contact_by_handle()</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="editwebpage_8php.html#a375e945255fad79a71036528f7480650">editwebpage_content()</a>, <a class="el" href="event_8php.html#ac9f206819186b65952ac1869f0da8c6e">event_addtocal()</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="identity_8php.html#a293f416ce9050220b183e08ff5890216">get_channel_default_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="items_8php.html#a52c24114b73c0bdb605a03cd29712223">handle_feed()</a>, <a class="el" href="photo__driver_8php.html#a1d0bc7161dec0d177b7d3bbe4421af9a">import_channel_photo()</a>, <a class="el" href="items_8php.html#a02ca33c31ed535d24894f8a9a91ce9df">item_add_cid()</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#a5ed782ff5b9cf050bec931e06de12c00">item_remove_cid()</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="items_8php.html#ab33fa9756aaa5f39a6104d57a62baf00">list_post_dates()</a>, <a class="el" href="boot_8php.html#a719c7f3972d5f9268f37a41c76cd4ef6">load_contact_links()</a>, <a class="el" href="include_2config_8php.html#a559791dda7fef8a4b2394c83e835787b">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="mod_2menu_8php.html#a6fed23af14d71a78a4153c8363a685cf">menu_content()</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="mod_2menu_8php.html#aaa491ef173868fe002aece4632bcf393">menu_post()</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#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="account_8php.html#a030cec6793b909c439c0336ba39b1571">service_class_allows()</a>, <a class="el" href="account_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="items_8php.html#a9b449eeae50003414b8b30ca927af434">update_feed_item()</a>, <a class="el" href="webpages_8php.html#af3b7397d4abc153e3d2147740ee1a41d">webpages_content()</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#a313a8d10ab81c71357c12e67e4d7efd5">widget_item()</a>, <a class="el" href="widgets_8php.html#a6dbc227aac750774284ee39c45f0a200">widget_tagcloud()</a>, <a class="el" href="taxonomy_8php.html#a83f0a60f9e0c07d8451dc5be95b17287">wtagblock()</a>, and <a class="el" href="items_8php.html#a1cf89557f32d5dfbe8bd90448dc1aa92">zot_feed()</a>.</p>
</div>
</div>
@@ -255,12 +255,12 @@ Variables</h2></td></tr>
<div class="memproto">
<table class="memname">
<tr>
- <td class="memname">$<a class="el" href="boot_8php.html#a01353c9abebc3544ea080ac161729632">x</a> = <a class="el" href="functions_8php.html#adefe514c95680928b3aae250cbc3c663">splitFilename</a>($font)</td>
+ <td class="memname">$<a class="el" href="boot_8php.html#ae97836b0547953be182a2334c9c91d3c">x</a> = <a class="el" href="functions_8php.html#adefe514c95680928b3aae250cbc3c663">splitFilename</a>($font)</td>
</tr>
</table>
</div><div class="memdoc">
-<p>Referenced by <a class="el" href="classTemplate.html#abf71098c80fd1f218a59452b3408309e">Template\_replcb_for()</a>, <a class="el" href="classTemplate.html#ae0836e7d5bd5afceb04f50fd635f1228">Template\_replcb_if()</a>, <a class="el" href="Contact_8php.html#a5101d7eca5d6f387e5555f03fe249e33">account_remove()</a>, <a class="el" href="acl_8php.html#ac6776dba871806ecdb5d1659bc2eb07a">acl_init()</a>, <a class="el" href="items_8php.html#a36e656667193c83aa2cc03a024fc131b">activity_sanitise()</a>, <a class="el" href="admin_8php.html#ad6f87a764fd35f522c7b4c351d7878ec">admin_page_channels()</a>, <a class="el" href="admin_8php.html#af124619fdc278fe2bf14c45ddaa260fb">admin_page_themes()</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="include_2api_8php.html#afe534f826e4282b72d66e8cadca7bb73">api_login()</a>, <a class="el" href="include_2apps_8php.html#ad5f6f1443725386cc7af5ed34a5fe185">app_decode()</a>, <a class="el" href="include_2apps_8php.html#a72756e1601489eb77971eeda011446d0">app_install()</a>, <a class="el" href="include_2apps_8php.html#a01cabfb33b2d0d843cf3bf4e3d3f0ab0">app_list()</a>, <a class="el" href="include_2apps_8php.html#a1b2e737f477a2e0d9d11ef14adc5aa66">app_render()</a>, <a class="el" href="include_2apps_8php.html#a15626f24069c18816f7cdaf4735f58f9">app_store()</a>, <a class="el" href="include_2apps_8php.html#aeab6a62d2f3dfaa86ed043a006305f46">app_update()</a>, <a class="el" href="mod_2apps_8php.html#a546016cb960d0b110ee8e489dfa6c27c">apps_content()</a>, <a class="el" href="boot_8php.html#a768f00b7d66be0daf7ef4eea2e862006">argv()</a>, <a class="el" href="items_8php.html#abf7a1b73eb352d79acd36309b0dababd">array_sanitise()</a>, <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#a84a8a64c4805e1525b42d4add464833f">attach_store()</a>, <a class="el" href="text_8php.html#a27cd2c1b3bcb49a0cfb7249e851725ca">autoname()</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="block_8php.html#a8a82a470acdfbc7a8e749509caeeea45">block_content()</a>, <a class="el" href="blocks_8php.html#a2531a8fd51db3cecb2eb20c002c66e12">blocks_content()</a>, <a class="el" href="include_2bookmarks_8php.html#aef1cb2968c41c759f2d106e1088ca323">bookmark_add()</a>, <a class="el" href="mod_2bookmarks_8php.html#a774364b1c8404529581083631703527a">bookmarks_content()</a>, <a class="el" href="zot_8php.html#aa97b33b619dd7132a9274f852af6ceb5">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="mod_2chat_8php.html#a8b0b8bee6fef6477e8c64c5e951b1b4f">chat_content()</a>, <a class="el" href="include_2chat_8php.html#acea6b176eb7aff44d9ba3ae24ce511d3">chat_message()</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#a2c95b545e46bfee64faa05ecf0afea91">chatroom_enter()</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="items_8php.html#a87ac9e359591721a824ecd23bbb56296">check_item_source()</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="classRedDirectory.html#a5e3fc08b2bf9f61cea4d2ccae0495bec">RedDirectory\childExists()</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="boot_8php.html#acc4e0c910af066148b810e5fde55fff1">construct_page()</a>, <a class="el" href="conversation_8php.html#affea1afb3f32ca41e966c8ddb4204d81">conversation()</a>, <a class="el" href="classRedDirectory.html#a2d12d99d38a6a75fc9a830b2f7fc0bf0">RedDirectory\createFile()</a>, <a class="el" href="classphoto__gd.html#ab2232d775c8bacf66773a03308105f0c">photo_gd\cropImage()</a>, <a class="el" href="classphoto__imagick.html#a2f33a03a89497a2b2768e29736d4a8a4">photo_imagick\cropImage()</a>, <a class="el" href="datetime_8php.html#ac265b86f384ee094ed5479aae02aa5c8">datesel()</a>, <a class="el" href="datetime_8php.html#a5f29553799005b1fd4e9ce9d98ce05aa">datesel_format()</a>, <a class="el" href="items_8php.html#a56b2a4abcadfac71175cd50555528cc3">decode_tags()</a>, <a class="el" href="deliver_8php.html#a397afcb9afecf0c1816b0951189dd346">deliver_run()</a>, <a class="el" href="diaspora_8php.html#a2bf43f6b5890897f425ef4325d34b007">diaspora_reshare()</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="include_2network_8php.html#a5176176ddc1906d91f186df6fbd87b48">discover_by_url()</a>, <a class="el" href="include_2network_8php.html#a63e62946e194928eb17c5a9f2bbef0fe">discover_by_webbie()</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="include_2network_8php.html#a469b9bd700269cd07d954f1a16c5899b">email_header_encode()</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="event_8php.html#a7378e839ac3de9d55579eb3ec48eaf92">event_store_item()</a>, <a class="el" href="events_8php.html#ab3e8a8f901175f8e40a8089eea45c075">events_post()</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="externals_8php.html#a4df44079e6f915286088b7a0d44db926">externals_run()</a>, <a class="el" href="features_8php.html#a52b5bdfb61b256713efecf7a7b20b0c0">feature_enabled()</a>, <a class="el" href="items_8php.html#adf980098b6de9c3993bc3ff26a8dd6f9">fetch_post_tags()</a>, <a class="el" href="include_2network_8php.html#a850ed5307c6a18076f4b80addc99602d">fetch_xrd_links()</a>, <a class="el" href="filer_8php.html#a5fd5d7e61b2f9c43cb5f110c89dc4274">filer_content()</a>, <a class="el" href="text_8php.html#ace3c98538c63e09b70a363210b414112">find_xchan_in_array()</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="boot_8php.html#aca5e42678e178c6b9034610d66666fd7">fix_system_urls()</a>, <a class="el" href="classphoto__gd.html#a44cedef376044018702d9355ddc813ce">photo_gd\flip()</a>, <a class="el" href="fsuggest_8php.html#a61ecfe10ce937ed526614f8fd3de3c7d">fsuggest_post()</a>, <a class="el" href="permissions_8php.html#aeca9b280f3dc3358c89976d81d690008">get_all_perms()</a>, <a class="el" href="boot_8php.html#a329400dcb29897cdaae3020109272285">get_directory_realm()</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#a76d1b3435c067978d7b484c45f56472b">get_mentions()</a>, <a class="el" href="identity_8php.html#a332df795f684788002f5a6424abacfd7">get_online_status()</a>, <a class="el" href="items_8php.html#a251343637ff40a50cca93452cd530c26">get_profile_elements()</a>, <a class="el" href="identity_8php.html#a224710dfb7465b706c91134247c20afa">get_profile_fields_advanced()</a>, <a class="el" href="identity_8php.html#a4ff59df0f0a668a06a8411f87496aa21">get_profile_fields_basic()</a>, <a class="el" href="include_2apps_8php.html#ae64f72eb4f126e03b4eb65ed1702a3ca">get_system_apps()</a>, <a class="el" href="taxonomy_8php.html#a0fb8cf0ac7bcbc8b27d856fe9bf69cd1">get_terms_oftype()</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="classRedDirectory.html#aaa20f0f44da23781917af8170c0a2569">RedDirectory\getChild()</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="gprobe_8php.html#adf72cb0a70b5b9d99fdec1cc60e18ed1">gprobe_run()</a>, <a class="el" href="items_8php.html#a52c24114b73c0bdb605a03cd29712223">handle_feed()</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="text_8php.html#a436a8de00c942364c2d0fcfc7e1f4b5a">ids_to_querystr()</a>, <a class="el" href="items_8php.html#a2c3f97b2109c05df86d97449b3c78ebc">import_author_diaspora()</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#ad149f1e98c0c5b88ff9147e6ee3f330d">import_author_zot()</a>, <a class="el" href="zot_8php.html#a3bf11286c2619b4ca28e49d5b5ab374a">import_directory_keywords()</a>, <a class="el" href="zot_8php.html#a20750dd2c36961013fd382fb34e1366c">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#a528e97ca5d69c3b7f35c5d954afde315">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#a5ed782ff5b9cf050bec931e06de12c00">item_remove_cid()</a>, <a class="el" href="items_8php.html#a756738301f2ed96be50232500677d58a">items_fetch()</a>, <a class="el" href="text_8php.html#a0271381208acfa2d4cff36da281e3e23">json_decode_plus()</a>, <a class="el" href="include_2network_8php.html#a4c5d50079e089168d9248427018fffd4">json_return_and_die()</a>, <a class="el" href="layouts_8php.html#a6e0193759ad9eef76d3df2db24237b50">layouts_content()</a>, <a class="el" href="text_8php.html#a2690ad67bb6fb97ef69de3e8d23f2728">legal_webbie()</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="mail_8php.html#acfc2cc0bf4e0b178207758384977f25a">mail_post()</a>, <a class="el" href="manage_8php.html#a2bca247b5296827638959138367db4f5">manage_content()</a>, <a class="el" href="Contact_8php.html#a08845ce8c5b997d5edac38ae7118b5c8">mark_orphan_hubsxchans()</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#ad87f51ce85172bcc3f931aa0cd96a804">menu_delete_id()</a>, <a class="el" href="include_2menu_8php.html#a68ebbf492470c930f652013656f9071d">menu_fetch()</a>, <a class="el" href="include_2menu_8php.html#a03a5deed3908543581c074ce333e9d6a">menu_render()</a>, <a class="el" href="text_8php.html#a1633412120f52bdce5f43e0a127d9293">mimetype_select()</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="netgrowth_8php.html#a9b87bfc25a7cb11bc7f8e1fdd0310919">netgrowth_content()</a>, <a class="el" href="mod_2network_8php.html#a43f2f29b90c5e29072c561934bc8f8b4">network_content()</a>, <a class="el" href="new__channel_8php.html#a1ad7f99e4366a32942c6b954aba3a164">new_channel_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="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="include_2apps_8php.html#a32fe4ed9666228fd4b67dc487cc57a83">parse_app_description()</a>, <a class="el" href="include_2network_8php.html#a27a951b59d8d622c0b3e7b0673ba74c6">parse_xml_string()</a>, <a class="el" href="pdledit_8php.html#a59cb550f6b7a4e7d8196fbc9de601619">pdledit_content()</a>, <a class="el" href="crypto_8php.html#a798368843cdd9bb08386b48e53e29e8c">pemtome()</a>, <a class="el" href="permissions_8php.html#a67ada9ed51e77885b6b0f6a28cee1835">perm_is_allowed()</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="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="text_8php.html#ac19d2b33a58372a357a43d51eed19162">preg_heart()</a>, <a class="el" href="tpldebug_8php.html#a44778457a6c02554812fbfad19d32ba3">print_template()</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="zot_8php.html#ac301c67864917c35922257950ae0f95c">process_channel_sync_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="identity_8php.html#a4751b522ea913d0e7ed43e03d22e9e68">profile_load()</a>, <a class="el" href="profile__photo_8php.html#a4b80234074bd603221aa5364f330e479">profile_photo_post()</a>, <a class="el" href="hubloc_8php.html#ad3d0dcfcfcb347744f7617fe6f5de002">prune_hub_reinstalls()</a>, <a class="el" href="zot_8php.html#a083aec6c900d244e1bfc1406f9461465">public_recips()</a>, <a class="el" href="crypto_8php.html#a2a3fae7caca27f86d158eeaf69b6f287">pubrsatome()</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="randprof_8php.html#abf5dba3c608b9304cbf68327cd31b090">randprof_init()</a>, <a class="el" href="include_2api_8php.html#aafa82b65a9f879a1a1197cfe8aaf3898">red_item_new()</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="identity_8php.html#a47d6f53216f23a3484061793bef29854">remote_online_status()</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="classphoto__driver.html#a5864fae7d8389372955a8e78cec527ac">photo_driver\save()</a>, <a class="el" href="include_2network_8php.html#a316f318167a039c89719afbd129a8f3c">scrape_feed()</a>, <a class="el" href="include_2network_8php.html#acb0bd7f5fe38ff1eaebeae3284525070">scrape_vcard()</a>, <a class="el" href="search__ac_8php.html#a14f90c83a3f2be095e9e2992a8d66138">search_ac_init()</a>, <a class="el" href="items_8php.html#aab9e0c58247427126de0699c729c3b6c">send_status_notifications()</a>, <a class="el" href="share_8php.html#afeb26046bdd02567ecd29ab5f188b249">share_init()</a>, <a class="el" href="bb2diaspora_8php.html#ab61b4f8c065e97b151411858bb2f209a">share_unshield()</a>, <a class="el" href="permissions_8php.html#aa8b7b102c653649d7a71b5a1c044d90d">site_default_perms()</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="sslify_8php.html#a75b11e54a3d1fc83e7d4c0e8b4dab316">sslify_init()</a>, <a class="el" href="classphoto__driver.html#a642a8d0c4ad5f887c99c6af77cee287b">photo_driver\store()</a>, <a class="el" href="items_8php.html#af0a887050dc8d0f51c89890cdaf3145f">store_diaspora_comment_sig()</a>, <a class="el" href="spam_8php.html#a05861201147b9a538d006f0269255cf9">string_splitter()</a>, <a class="el" href="text_8php.html#a8796f6a9ca592ecdce7b3afc3462aa13">stringify_array_elms()</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="tagrm_8php.html#adfd4ea5b4d7fc6d9c9e042af5cd7d49a">tagrm_content()</a>, <a class="el" href="tagrm_8php.html#a1702f40aa53a2fa93deade1f609abe78">tagrm_post()</a>, <a class="el" href="admin_8php.html#ad4f74f33944a98b56d2c8c7601f124a4">theme_status()</a>, <a class="el" href="thing_8php.html#a24a35f1e64029a67fdbea94a776ae04b">thing_content()</a>, <a class="el" href="datetime_8php.html#a36d3d6dff8d76b5f295bb3d9c535a5b1">timesel()</a>, <a class="el" href="admin_8php.html#af81f081851791cd15e49e8ff6722dc27">toggle_theme()</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="account_8php.html#a754d7f53b3abc557b753c057dc4e021d">upgrade_bool_message()</a>, <a class="el" href="account_8php.html#a901657dd078e070516cf97285e0bada7">upgrade_message()</a>, <a class="el" href="text_8php.html#a6a3d80a6c6fb234fd0bac44203b828eb">valid_email()</a>, <a class="el" href="classRedBasicAuth.html#a8dfd9a0953f8884723b421b7c1acf79b">RedBasicAuth\validateUserPass()</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#a0e2f5179ed1a73b282dfda7270fcabb3">widget_bookmarkedchats()</a>, <a class="el" href="widgets_8php.html#a50b1410238100c8a94c06b0aa63ee3b8">widget_suggestedchats()</a>, <a class="el" href="widgets_8php.html#a0d404276fedc59f5038cf5c085028326">widget_suggestions()</a>, <a class="el" href="text_8php.html#a36a2e5d418ee81140f25c4233cfecd1f">xchan_query()</a>, <a class="el" href="text_8php.html#aaed4413ed8918838b517e3b2fafaea0d">xmlify()</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#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>
+<p>Referenced by <a class="el" href="classTemplate.html#abf71098c80fd1f218a59452b3408309e">Template\_replcb_for()</a>, <a class="el" href="classTemplate.html#ae0836e7d5bd5afceb04f50fd635f1228">Template\_replcb_if()</a>, <a class="el" href="Contact_8php.html#a5101d7eca5d6f387e5555f03fe249e33">account_remove()</a>, <a class="el" href="acl_8php.html#ac6776dba871806ecdb5d1659bc2eb07a">acl_init()</a>, <a class="el" href="items_8php.html#a36e656667193c83aa2cc03a024fc131b">activity_sanitise()</a>, <a class="el" href="admin_8php.html#ad6f87a764fd35f522c7b4c351d7878ec">admin_page_channels()</a>, <a class="el" href="admin_8php.html#af124619fdc278fe2bf14c45ddaa260fb">admin_page_themes()</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="include_2api_8php.html#ae46f964e5a9c80b96dc78df61c09ed3a">api_group_members()</a>, <a class="el" href="include_2api_8php.html#afe534f826e4282b72d66e8cadca7bb73">api_login()</a>, <a class="el" href="include_2apps_8php.html#ad5f6f1443725386cc7af5ed34a5fe185">app_decode()</a>, <a class="el" href="include_2apps_8php.html#a72756e1601489eb77971eeda011446d0">app_install()</a>, <a class="el" href="include_2apps_8php.html#a01cabfb33b2d0d843cf3bf4e3d3f0ab0">app_list()</a>, <a class="el" href="include_2apps_8php.html#a1b2e737f477a2e0d9d11ef14adc5aa66">app_render()</a>, <a class="el" href="include_2apps_8php.html#a15626f24069c18816f7cdaf4735f58f9">app_store()</a>, <a class="el" href="include_2apps_8php.html#aeab6a62d2f3dfaa86ed043a006305f46">app_update()</a>, <a class="el" href="mod_2apps_8php.html#a546016cb960d0b110ee8e489dfa6c27c">apps_content()</a>, <a class="el" href="boot_8php.html#a768f00b7d66be0daf7ef4eea2e862006">argv()</a>, <a class="el" href="items_8php.html#abf7a1b73eb352d79acd36309b0dababd">array_sanitise()</a>, <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#a84a8a64c4805e1525b42d4add464833f">attach_store()</a>, <a class="el" href="text_8php.html#a27cd2c1b3bcb49a0cfb7249e851725ca">autoname()</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="block_8php.html#a8a82a470acdfbc7a8e749509caeeea45">block_content()</a>, <a class="el" href="blocks_8php.html#a2531a8fd51db3cecb2eb20c002c66e12">blocks_content()</a>, <a class="el" href="include_2bookmarks_8php.html#aef1cb2968c41c759f2d106e1088ca323">bookmark_add()</a>, <a class="el" href="mod_2bookmarks_8php.html#a774364b1c8404529581083631703527a">bookmarks_content()</a>, <a class="el" href="zot_8php.html#aa97b33b619dd7132a9274f852af6ceb5">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="mod_2chat_8php.html#a8b0b8bee6fef6477e8c64c5e951b1b4f">chat_content()</a>, <a class="el" href="include_2chat_8php.html#acea6b176eb7aff44d9ba3ae24ce511d3">chat_message()</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#a2c95b545e46bfee64faa05ecf0afea91">chatroom_enter()</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="items_8php.html#a87ac9e359591721a824ecd23bbb56296">check_item_source()</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="classRedMatrix_1_1RedDAV_1_1RedDirectory.html#a964b13fde1a5da6f76b51ca5519234dc">RedMatrix\RedDAV\RedDirectory\childExists()</a>, <a class="el" href="cloud_8php.html#ad2e96e917852f27dedfc263d37e13756">cloud_init()</a>, <a class="el" href="common_8php.html#aca62f113655809f41f49042ce9b123c2">common_init()</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#adc26e08aa61f5666da04ab5d2a9d68a6">consume_feed()</a>, <a class="el" href="conversation_8php.html#affea1afb3f32ca41e966c8ddb4204d81">conversation()</a>, <a class="el" href="classRedMatrix_1_1RedDAV_1_1RedDirectory.html#a58e750256cdc2f0f79fbe8d5463ffefe">RedMatrix\RedDAV\RedDirectory\createFile()</a>, <a class="el" href="classphoto__gd.html#ab2232d775c8bacf66773a03308105f0c">photo_gd\cropImage()</a>, <a class="el" href="classphoto__imagick.html#a2f33a03a89497a2b2768e29736d4a8a4">photo_imagick\cropImage()</a>, <a class="el" href="items_8php.html#a56b2a4abcadfac71175cd50555528cc3">decode_tags()</a>, <a class="el" href="deliver_8php.html#a397afcb9afecf0c1816b0951189dd346">deliver_run()</a>, <a class="el" href="diaspora_8php.html#a0fb2abe304aae19efc040a5e6b917829">diaspora_comment()</a>, <a class="el" href="diaspora_8php.html#a5d57518545baa31cf8a85a937a267681">diaspora_like()</a>, <a class="el" href="bb2diaspora_8php.html#a4a27604f0745f1efda672966aaca9a3b">diaspora_mention_callback()</a>, <a class="el" href="diaspora_8php.html#ac1ab782a34552a7c6b4dc961754ed598">diaspora_request()</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="include_2network_8php.html#a5176176ddc1906d91f186df6fbd87b48">discover_by_url()</a>, <a class="el" href="include_2network_8php.html#a63e62946e194928eb17c5a9f2bbef0fe">discover_by_webbie()</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="editwebpage_8php.html#a375e945255fad79a71036528f7480650">editwebpage_content()</a>, <a class="el" href="include_2network_8php.html#a469b9bd700269cd07d954f1a16c5899b">email_header_encode()</a>, <a class="el" href="items_8php.html#a56b0f5d2cb36eb8f4bfca84813884f86">encode_item()</a>, <a class="el" href="items_8php.html#a2d840c74ed23d1b6c7daee05cf89dda7">encode_mail()</a>, <a class="el" href="classdba__postgres.html#a7108eaaae7cc2fb236212041afc9ac0f">dba_postgres\escape()</a>, <a class="el" href="event_8php.html#a7378e839ac3de9d55579eb3ec48eaf92">event_store_item()</a>, <a class="el" href="events_8php.html#ab3e8a8f901175f8e40a8089eea45c075">events_post()</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="externals_8php.html#a4df44079e6f915286088b7a0d44db926">externals_run()</a>, <a class="el" href="features_8php.html#a52b5bdfb61b256713efecf7a7b20b0c0">feature_enabled()</a>, <a class="el" href="items_8php.html#adf980098b6de9c3993bc3ff26a8dd6f9">fetch_post_tags()</a>, <a class="el" href="include_2network_8php.html#a850ed5307c6a18076f4b80addc99602d">fetch_xrd_links()</a>, <a class="el" href="filer_8php.html#a5fd5d7e61b2f9c43cb5f110c89dc4274">filer_content()</a>, <a class="el" href="text_8php.html#ace3c98538c63e09b70a363210b414112">find_xchan_in_array()</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="boot_8php.html#aca5e42678e178c6b9034610d66666fd7">fix_system_urls()</a>, <a class="el" href="classphoto__gd.html#a44cedef376044018702d9355ddc813ce">photo_gd\flip()</a>, <a class="el" href="dimport_8php.html#a581f040717941ce3e1868b0b5dceefd1">foofoo()</a>, <a class="el" href="fsuggest_8php.html#a61ecfe10ce937ed526614f8fd3de3c7d">fsuggest_post()</a>, <a class="el" href="permissions_8php.html#aeca9b280f3dc3358c89976d81d690008">get_all_perms()</a>, <a class="el" href="diaspora_8php.html#ac9e41e46626dc608204bf4b5e16e62d7">get_diaspora_reshare_xml()</a>, <a class="el" href="boot_8php.html#a329400dcb29897cdaae3020109272285">get_directory_realm()</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#a76d1b3435c067978d7b484c45f56472b">get_mentions()</a>, <a class="el" href="identity_8php.html#a332df795f684788002f5a6424abacfd7">get_online_status()</a>, <a class="el" href="items_8php.html#a251343637ff40a50cca93452cd530c26">get_profile_elements()</a>, <a class="el" href="identity_8php.html#a224710dfb7465b706c91134247c20afa">get_profile_fields_advanced()</a>, <a class="el" href="identity_8php.html#a4ff59df0f0a668a06a8411f87496aa21">get_profile_fields_basic()</a>, <a class="el" href="permissions_8php.html#a9b5f5120566a3699a98efc5ccb0c59fe">get_role_perms()</a>, <a class="el" href="include_2apps_8php.html#ae64f72eb4f126e03b4eb65ed1702a3ca">get_system_apps()</a>, <a class="el" href="taxonomy_8php.html#a0fb8cf0ac7bcbc8b27d856fe9bf69cd1">get_terms_oftype()</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="classRedMatrix_1_1RedDAV_1_1RedDirectory.html#a1a37850bdd1f188abd6160559698d5d7">RedMatrix\RedDAV\RedDirectory\getChild()</a>, <a class="el" href="classRedMatrix_1_1RedDAV_1_1RedDirectory.html#a825dc5f3e0f83f50736c16daa6a4809d">RedMatrix\RedDAV\RedDirectory\getDir()</a>, <a class="el" href="classRedMatrix_1_1RedDAV_1_1RedDirectory.html#a69db443ed3c84938b4352fe515bf8d68">RedMatrix\RedDAV\RedDirectory\getQuotaInfo()</a>, <a class="el" href="gprobe_8php.html#adf72cb0a70b5b9d99fdec1cc60e18ed1">gprobe_run()</a>, <a class="el" href="items_8php.html#a52c24114b73c0bdb605a03cd29712223">handle_feed()</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="text_8php.html#a436a8de00c942364c2d0fcfc7e1f4b5a">ids_to_querystr()</a>, <a class="el" href="impel_8php.html#ab7db6fca43b42ea4332cb3e841b3cf7b">impel_init()</a>, <a class="el" href="items_8php.html#a2c3f97b2109c05df86d97449b3c78ebc">import_author_diaspora()</a>, <a class="el" href="items_8php.html#a6bee35961f2e32905f20367a9309d627">import_author_rss()</a>, <a class="el" href="items_8php.html#a37f79991f36811cf847446ff60e8e11f">import_author_unknown()</a>, <a class="el" href="items_8php.html#ae73794179b62d39bb597ff670ab1c1e5">import_author_xchan()</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#a20750dd2c36961013fd382fb34e1366c">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#a528e97ca5d69c3b7f35c5d954afde315">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#a5ed782ff5b9cf050bec931e06de12c00">item_remove_cid()</a>, <a class="el" href="items_8php.html#a756738301f2ed96be50232500677d58a">items_fetch()</a>, <a class="el" href="text_8php.html#a0271381208acfa2d4cff36da281e3e23">json_decode_plus()</a>, <a class="el" href="include_2network_8php.html#a4c5d50079e089168d9248427018fffd4">json_return_and_die()</a>, <a class="el" href="layouts_8php.html#a6e0193759ad9eef76d3df2db24237b50">layouts_content()</a>, <a class="el" href="text_8php.html#a2690ad67bb6fb97ef69de3e8d23f2728">legal_webbie()</a>, <a class="el" href="locs_8php.html#a6c900f53970c0d0e738d2fe06d27ca44">locs_content()</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="mail_8php.html#acfc2cc0bf4e0b178207758384977f25a">mail_post()</a>, <a class="el" href="manage_8php.html#a2bca247b5296827638959138367db4f5">manage_content()</a>, <a class="el" href="Contact_8php.html#a08845ce8c5b997d5edac38ae7118b5c8">mark_orphan_hubsxchans()</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#ad87f51ce85172bcc3f931aa0cd96a804">menu_delete_id()</a>, <a class="el" href="include_2menu_8php.html#a68ebbf492470c930f652013656f9071d">menu_fetch()</a>, <a class="el" href="include_2menu_8php.html#a03a5deed3908543581c074ce333e9d6a">menu_render()</a>, <a class="el" href="text_8php.html#a1633412120f52bdce5f43e0a127d9293">mimetype_select()</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="netgrowth_8php.html#a9b87bfc25a7cb11bc7f8e1fdd0310919">netgrowth_content()</a>, <a class="el" href="mod_2network_8php.html#a43f2f29b90c5e29072c561934bc8f8b4">network_content()</a>, <a class="el" href="new__channel_8php.html#a1ad7f99e4366a32942c6b954aba3a164">new_channel_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="identity_8php.html#a2e6a1cc35887937823ec7fbb90472afe">notifications_off()</a>, <a class="el" href="identity_8php.html#a5650319c799de09d1b6d1076b6f839a4">notifications_on()</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="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#a4d89800c0366a239191b1692c09635cf">page_init()</a>, <a class="el" href="include_2apps_8php.html#a32fe4ed9666228fd4b67dc487cc57a83">parse_app_description()</a>, <a class="el" href="include_2network_8php.html#a27a951b59d8d622c0b3e7b0673ba74c6">parse_xml_string()</a>, <a class="el" href="pdledit_8php.html#a59cb550f6b7a4e7d8196fbc9de601619">pdledit_content()</a>, <a class="el" href="crypto_8php.html#a798368843cdd9bb08386b48e53e29e8c">pemtome()</a>, <a class="el" href="permissions_8php.html#a67ada9ed51e77885b6b0f6a28cee1835">perm_is_allowed()</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="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="text_8php.html#ac19d2b33a58372a357a43d51eed19162">preg_heart()</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="include_2message_8php.html#a652973ce47a262f2d238c2fd6233d97e">private_messages_list()</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#a8eeefdb0dad4c436bea9d1c06c0a7988">process_location_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="identity_8php.html#a4751b522ea913d0e7ed43e03d22e9e68">profile_load()</a>, <a class="el" href="profile__photo_8php.html#a4b80234074bd603221aa5364f330e479">profile_photo_post()</a>, <a class="el" href="hubloc_8php.html#ad3d0dcfcfcb347744f7617fe6f5de002">prune_hub_reinstalls()</a>, <a class="el" href="zot_8php.html#a083aec6c900d244e1bfc1406f9461465">public_recips()</a>, <a class="el" href="crypto_8php.html#a2a3fae7caca27f86d158eeaf69b6f287">pubrsatome()</a>, <a class="el" href="classRedMatrix_1_1RedDAV_1_1RedFile.html#a709ec1288d21ddf1353524435ab916f0">RedMatrix\RedDAV\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="classdba__postgres.html#a70352880231fba0b859f82cd5b290a9a">dba_postgres\q()</a>, <a class="el" href="randprof_8php.html#abf5dba3c608b9304cbf68327cd31b090">randprof_init()</a>, <a class="el" href="include_2api_8php.html#aafa82b65a9f879a1a1197cfe8aaf3898">red_item_new()</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="refimport_8php.html#a01a29630fa5e1ce6cd5e1fd75280747c">reflect_comment_store()</a>, <a class="el" href="refimport_8php.html#aa98de7d112e3a5b4b6956f108d04a41d">reflect_find_user()</a>, <a class="el" href="refimport_8php.html#ae9c56f779d1e0ac7bcb2a460129e7ae5">reflect_photo_callback()</a>, <a class="el" href="identity_8php.html#a47d6f53216f23a3484061793bef29854">remote_online_status()</a>, <a class="el" href="zot_8php.html#aad25a3fe0e1566121d6fb8222979bc10">remove_community_tag()</a>, <a class="el" href="hubloc_8php.html#a84c79b7be352f62d12fe4fa2c80fc6ea">remove_obsolete_hublocs()</a>, <a class="el" href="rpost_8php.html#a8190354d789000806d9879aea276728f">rpost_content()</a>, <a class="el" href="classphoto__driver.html#a5864fae7d8389372955a8e78cec527ac">photo_driver\save()</a>, <a class="el" href="include_2network_8php.html#a316f318167a039c89719afbd129a8f3c">scrape_feed()</a>, <a class="el" href="include_2network_8php.html#acb0bd7f5fe38ff1eaebeae3284525070">scrape_vcard()</a>, <a class="el" href="search__ac_8php.html#a14f90c83a3f2be095e9e2992a8d66138">search_ac_init()</a>, <a class="el" href="items_8php.html#aab9e0c58247427126de0699c729c3b6c">send_status_notifications()</a>, <a class="el" href="service__limits_8php.html#a653424aac63c5cd05ba70c3c77bf7f8a">service_limits_content()</a>, <a class="el" href="share_8php.html#afeb26046bdd02567ecd29ab5f188b249">share_init()</a>, <a class="el" href="bb2diaspora_8php.html#ab61b4f8c065e97b151411858bb2f209a">share_unshield()</a>, <a class="el" href="permissions_8php.html#aa8b7b102c653649d7a71b5a1c044d90d">site_default_perms()</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="sslify_8php.html#a75b11e54a3d1fc83e7d4c0e8b4dab316">sslify_init()</a>, <a class="el" href="classphoto__driver.html#a642a8d0c4ad5f887c99c6af77cee287b">photo_driver\store()</a>, <a class="el" href="items_8php.html#a25221826fa4621f523c68483e3b6af26">store_diaspora_comment_sig()</a>, <a class="el" href="spam_8php.html#a05861201147b9a538d006f0269255cf9">string_splitter()</a>, <a class="el" href="text_8php.html#a8796f6a9ca592ecdce7b3afc3462aa13">stringify_array_elms()</a>, <a class="el" href="dir__fns_8php.html#aa666e7df6ca8c332f4081c9b66b4bdf6">sync_directories()</a>, <a class="el" href="zot_8php.html#ab15c04e7e5f44edf45ec50dd7d183254">sync_locations()</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="tagrm_8php.html#adfd4ea5b4d7fc6d9c9e042af5cd7d49a">tagrm_content()</a>, <a class="el" href="tagrm_8php.html#a1702f40aa53a2fa93deade1f609abe78">tagrm_post()</a>, <a class="el" href="admin_8php.html#ad4f74f33944a98b56d2c8c7601f124a4">theme_status()</a>, <a class="el" href="thing_8php.html#a24a35f1e64029a67fdbea94a776ae04b">thing_content()</a>, <a class="el" href="admin_8php.html#af81f081851791cd15e49e8ff6722dc27">toggle_theme()</a>, <a class="el" href="statistics__fns_8php.html#a82726229a961d3bd3d543005c61dd8e6">update_channels_active_halfyear_stat()</a>, <a class="el" href="statistics__fns_8php.html#ad2b7b595c039c4c2eb0d6cd57a393dfe">update_channels_active_monthly_stat()</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="account_8php.html#a754d7f53b3abc557b753c057dc4e021d">upgrade_bool_message()</a>, <a class="el" href="account_8php.html#a901657dd078e070516cf97285e0bada7">upgrade_message()</a>, <a class="el" href="text_8php.html#a6a3d80a6c6fb234fd0bac44203b828eb">valid_email()</a>, <a class="el" href="classRedMatrix_1_1RedDAV_1_1RedBasicAuth.html#a6ece02655b780469e59e204c5979a624">RedMatrix\RedDAV\RedBasicAuth\validateUserPass()</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#a0e2f5179ed1a73b282dfda7270fcabb3">widget_bookmarkedchats()</a>, <a class="el" href="widgets_8php.html#a50b1410238100c8a94c06b0aa63ee3b8">widget_suggestedchats()</a>, <a class="el" href="widgets_8php.html#a0d404276fedc59f5038cf5c085028326">widget_suggestions()</a>, <a class="el" href="text_8php.html#a905c3895feb6f276df23f07f16f9bb52">xchan_query()</a>, <a class="el" href="text_8php.html#aaed4413ed8918838b517e3b2fafaea0d">xmlify()</a>, <a class="el" href="zfinger_8php.html#a8139b83a22ef98869adc10aa224027a0">zfinger_init()</a>, <a class="el" href="zot_8php.html#a084c581d534e7e3b759488b46602288f">zot_build_packet()</a>, <a class="el" href="zot_8php.html#ae26ce9f1ad74139193fb6319beac5fca">zot_encode_locations()</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>
diff --git a/doc/html/auth_8php.html b/doc/html/auth_8php.html
index e2e1408e2..9145b5ef3 100644
--- a/doc/html/auth_8php.html
+++ b/doc/html/auth_8php.html
@@ -110,24 +110,38 @@ $(document).ready(function(){initNavTree('auth_8php.html','');});
<div class="title">auth.php File Reference</div> </div>
</div><!--header-->
<div class="contents">
+
+<p>Functions and inline functionality for authentication.
+<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:a2add3a1129ffa4d5515442a9d52a9b1a"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="auth_8php.html#a2add3a1129ffa4d5515442a9d52a9b1a">nuke_session</a> ()</td></tr>
+<tr class="memdesc:a2add3a1129ffa4d5515442a9d52a9b1a"><td class="mdescLeft">&#160;</td><td class="mdescRight">Resets the current session. <a href="#a2add3a1129ffa4d5515442a9d52a9b1a">More...</a><br/></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="memdesc:a07bae0e623e2daa9ee2cd5a8aa294dee"><td class="mdescLeft">&#160;</td><td class="mdescRight">Verify login credentials. <a href="#a07bae0e623e2daa9ee2cd5a8aa294dee">More...</a><br/></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="theme_2mytheme_2php_2default_8php.html#a3987f5547ceb7e36a210a66a06241a5a">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>
+<tr class="memitem:ae3ecb5f34f202c7f9a61c5d589f6c6e1"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="auth_8php.html#ae3ecb5f34f202c7f9a61c5d589f6c6e1">log_failed_login</a> ($errormsg)</td></tr>
+<tr class="memdesc:ae3ecb5f34f202c7f9a61c5d589f6c6e1"><td class="mdescLeft">&#160;</td><td class="mdescRight">Log failed logins to a separate auth log. <a href="#ae3ecb5f34f202c7f9a61c5d589f6c6e1">More...</a><br/></td></tr>
+<tr class="separator:ae3ecb5f34f202c7f9a61c5d589f6c6e1"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a69fa663e6baf65f80d1b114ad72615f2"><td class="memItemLeft" align="right" valign="top"><a class="el" href="theme_2mytheme_2php_2default_8php.html#a3987f5547ceb7e36a210a66a06241a5a">if</a>((<a class="el" href="boot_8php.html#ae97836b0547953be182a2334c9c91d3c">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#a69fa663e6baf65f80d1b114ad72615f2">match_openid</a> ($authid)</td></tr>
+<tr class="memdesc:a69fa663e6baf65f80d1b114ad72615f2"><td class="mdescLeft">&#160;</td><td class="mdescRight">Returns the channel_id for a given openid_identity. <a href="#a69fa663e6baf65f80d1b114ad72615f2">More...</a><br/></td></tr>
+<tr class="separator:a69fa663e6baf65f80d1b114ad72615f2"><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="theme_2mytheme_2php_2default_8php.html#a3987f5547ceb7e36a210a66a06241a5a">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>
+<tr class="memitem:a6f60fb54f60cd36c2430d6615a7b4f3f"><td class="memItemLeft" align="right" valign="top"><a class="el" href="theme_2mytheme_2php_2default_8php.html#a3987f5547ceb7e36a210a66a06241a5a">if</a>((isset($_SESSION))&amp;&amp;(<a class="el" href="boot_8php.html#ae97836b0547953be182a2334c9c91d3c">x</a>($_SESSION, <br class="typebreak"/>
+'authenticated'))&amp;&amp;((!(<a class="el" href="boot_8php.html#ae97836b0547953be182a2334c9c91d3c">x</a>($_POST, <br class="typebreak"/>
+'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#a6f60fb54f60cd36c2430d6615a7b4f3f">else</a></td></tr>
+<tr class="separator:a6f60fb54f60cd36c2430d6615a7b4f3f"><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>Functions and inline functionality for authentication. </p>
+<p>This file provides some functions for authentication handling and inline functionality. Look for auth parameters or re-validate an existing session also handles logout. Also provides a function for OpenID identiy matching. </p>
+</div><h2 class="groupheader">Function Documentation</h2>
<a class="anchor" id="a07bae0e623e2daa9ee2cd5a8aa294dee"></a>
<div class="memitem">
<div class="memproto">
@@ -151,20 +165,56 @@ Variables</h2></td></tr>
</tr>
</table>
</div><div class="memdoc">
-<p>Verify login credentials</p>
-<p>Returns account record on success, null on failure </p>
+
+<p>Verify login credentials. </p>
+<p>If system <em>authlog</em> is set a log entry will be added for failed login attempts.</p>
+<dl class="params"><dt>Parameters</dt><dd>
+ <table class="params">
+ <tr><td class="paramtype">string</td><td class="paramname">$email</td><td>The email address to verify. </td></tr>
+ <tr><td class="paramtype">string</td><td class="paramname">$pass</td><td>The provided password to verify. </td></tr>
+ </table>
+ </dd>
+</dl>
+<dl class="section return"><dt>Returns</dt><dd>array|null Returns account record on success, null on failure. </dd></dl>
+
+<p>Referenced by <a class="el" href="include_2api_8php.html#afe534f826e4282b72d66e8cadca7bb73">api_login()</a>, <a class="el" href="removeaccount_8php.html#a26a3325292e932c59793430ab737126a">removeaccount_post()</a>, <a class="el" href="removeme_8php.html#a7be08738beca44bb98a79e01cdb2ee88">removeme_post()</a>, and <a class="el" href="classRedMatrix_1_1RedDAV_1_1RedBasicAuth.html#a6ece02655b780469e59e204c5979a624">RedMatrix\RedDAV\RedBasicAuth\validateUserPass()</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="ae3ecb5f34f202c7f9a61c5d589f6c6e1"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">log_failed_login </td>
+ <td>(</td>
+ <td class="paramtype">&#160;</td>
+ <td class="paramname"><em>$errormsg</em></td><td>)</td>
+ <td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Log failed logins to a separate auth log. </p>
+<p>Can be used to reduce overhead for server side intrusion prevention, like parse the authlog file with something like fail2ban, OSSEC, etc.</p>
+<dl class="params"><dt>Parameters</dt><dd>
+ <table class="params">
+ <tr><td class="paramtype">string</td><td class="paramname">$errormsg</td><td>Error message to display for failed login. </td></tr>
+ </table>
+ </dd>
+</dl>
<p>A plugin indicates successful login by setting 'authenticated' to non-zero value and returning a user record Plugins should never set 'authenticated' except to indicate success - as hooks may be chained and later plugins should not interfere with an earlier one that succeeded.</p>
-<p>Referenced by <a class="el" href="include_2api_8php.html#afe534f826e4282b72d66e8cadca7bb73">api_login()</a>, <a class="el" href="removeaccount_8php.html#a26a3325292e932c59793430ab737126a">removeaccount_post()</a>, <a class="el" href="removeme_8php.html#a7be08738beca44bb98a79e01cdb2ee88">removeme_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>, and <a class="el" href="classRedMatrix_1_1RedDAV_1_1RedBasicAuth.html#a6ece02655b780469e59e204c5979a624">RedMatrix\RedDAV\RedBasicAuth\validateUserPass()</a>.</p>
</div>
</div>
-<a class="anchor" id="ab7be44ee051c0aa29847807cf2c5dd38"></a>
+<a class="anchor" id="a69fa663e6baf65f80d1b114ad72615f2"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
- <td class="memname"><a class="el" href="theme_2mytheme_2php_2default_8php.html#a3987f5547ceb7e36a210a66a06241a5a">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 class="memname"><a class="el" href="theme_2mytheme_2php_2default_8php.html#a3987f5547ceb7e36a210a66a06241a5a">if</a> ((<a class="el" href="boot_8php.html#ae97836b0547953be182a2334c9c91d3c">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>
@@ -173,6 +223,17 @@ Variables</h2></td></tr>
</table>
</div><div class="memdoc">
+<p>Returns the channel_id for a given openid_identity. </p>
+<p>Queries the values from pconfig configuration for the given openid_identity and returns the corresponding channel_id.</p>
+<p>How do we prevent that an OpenID identity is used more than once?</p>
+<dl class="params"><dt>Parameters</dt><dd>
+ <table class="params">
+ <tr><td class="paramtype">string</td><td class="paramname">$authid</td><td>The given openid_identity </td></tr>
+ </table>
+ </dd>
+</dl>
+<dl class="section return"><dt>Returns</dt><dd>int|bool Return channel_id from pconfig or false. </dd></dl>
+
<p>Referenced by <a class="el" href="openid_8php.html#a9a13827dbcf61ae4e45f0b6b33a88f43">openid_content()</a>.</p>
</div>
@@ -190,30 +251,33 @@ Variables</h2></td></tr>
</table>
</div><div class="memdoc">
+<p>Resets the current session. </p>
+<dl class="section return"><dt>Returns</dt><dd>void </dd></dl>
+
<p>Referenced by <a class="el" href="include_2api_8php.html#a2e94eab9d6c164bfef7a1b2ab87b339b">api_account_logout()</a>.</p>
</div>
</div>
<h2 class="groupheader">Variable Documentation</h2>
-<a class="anchor" id="a0950af7c2888ca1d4743fe5d0bff9ae5"></a>
+<a class="anchor" id="a6f60fb54f60cd36c2430d6615a7b4f3f"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
- <td class="memname"><a class="el" href="theme_2mytheme_2php_2default_8php.html#a3987f5547ceb7e36a210a66a06241a5a">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="theme_2mytheme_2php_2default_8php.html#a3987f5547ceb7e36a210a66a06241a5a">if</a> ((isset($_SESSION))&amp;&amp;(<a class="el" href="boot_8php.html#ae97836b0547953be182a2334c9c91d3c">x</a>($_SESSION, 'authenticated'))&amp;&amp;((!(<a class="el" href="boot_8php.html#ae97836b0547953be182a2334c9c91d3c">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">
<b>Initial value:</b><div class="fragment"><div class="line">{</div>
<div class="line"></div>
<div class="line"> <span class="keywordflow">if</span>(isset($_SESSION)) {</div>
-<div class="line"> <a class="code" href="auth_8php.html#a2add3a1129ffa4d5515442a9d52a9b1a">nuke_session</a>();</div>
+<div class="line"> <a class="code" href="auth_8php.html#a2add3a1129ffa4d5515442a9d52a9b1a" title="Resets the current session.">nuke_session</a>();</div>
<div class="line"> }</div>
<div class="line"></div>
<div class="line"> </div>
<div class="line"></div>
-<div class="line"> <span class="keywordflow">if</span>((<a class="code" href="boot_8php.html#a01353c9abebc3544ea080ac161729632">x</a>($_POST,<span class="stringliteral">&#39;password&#39;</span>)) &amp;&amp; strlen($_POST[<span class="stringliteral">&#39;password&#39;</span>]))</div>
-<div class="line"> $encrypted = hash(<span class="stringliteral">&#39;whirlpool&#39;</span>,trim($_POST[<span class="stringliteral">&#39;password&#39;</span>]))</div>
+<div class="line"> <span class="keywordflow">if</span>((<a class="code" href="boot_8php.html#ae97836b0547953be182a2334c9c91d3c" title="Multi-purpose function to check variable state.">x</a>($_POST, <span class="stringliteral">&#39;password&#39;</span>)) &amp;&amp; strlen($_POST[<span class="stringliteral">&#39;password&#39;</span>]))</div>
+<div class="line"> $encrypted = hash(<span class="stringliteral">&#39;whirlpool&#39;</span>, trim($_POST[<span class="stringliteral">&#39;password&#39;</span>]))</div>
</div><!-- fragment --><p>Inline - not a function look for auth parameters or re-validate an existing session also handles logout </p>
</div>
diff --git a/doc/html/auth_8php.js b/doc/html/auth_8php.js
index 75241485b..b4ab0b9b1 100644
--- a/doc/html/auth_8php.js
+++ b/doc/html/auth_8php.js
@@ -1,7 +1,8 @@
var auth_8php =
[
[ "account_verify_password", "auth_8php.html#a07bae0e623e2daa9ee2cd5a8aa294dee", null ],
- [ "match_openid", "auth_8php.html#ab7be44ee051c0aa29847807cf2c5dd38", null ],
+ [ "log_failed_login", "auth_8php.html#ae3ecb5f34f202c7f9a61c5d589f6c6e1", null ],
+ [ "match_openid", "auth_8php.html#a69fa663e6baf65f80d1b114ad72615f2", null ],
[ "nuke_session", "auth_8php.html#a2add3a1129ffa4d5515442a9d52a9b1a", null ],
- [ "else", "auth_8php.html#a0950af7c2888ca1d4743fe5d0bff9ae5", null ]
+ [ "else", "auth_8php.html#a6f60fb54f60cd36c2430d6615a7b4f3f", null ]
]; \ No newline at end of file
diff --git a/doc/html/bb2diaspora_8php.html b/doc/html/bb2diaspora_8php.html
index df7ea4e63..b3efd66e6 100644
--- a/doc/html/bb2diaspora_8php.html
+++ b/doc/html/bb2diaspora_8php.html
@@ -132,8 +132,10 @@ Functions</h2></td></tr>
<tr class="separator:a8b96bd45884fa1c40b942939354197d4"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a5258d2f1addeb0a2a6b54c4f9e7d0f34"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="bb2diaspora_8php.html#a5258d2f1addeb0a2a6b54c4f9e7d0f34">bb2dmention_callback</a> ($match)</td></tr>
<tr class="separator:a5258d2f1addeb0a2a6b54c4f9e7d0f34"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:a2052c66bc1006a42b4c230320c269e47"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="bb2diaspora_8php.html#a2052c66bc1006a42b4c230320c269e47">bb2diaspora_itembody</a> ($item)</td></tr>
-<tr class="separator:a2052c66bc1006a42b4c230320c269e47"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:aab32042f8bd63552d3fadeeae9eab083"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="bb2diaspora_8php.html#aab32042f8bd63552d3fadeeae9eab083">bb2diaspora_itemwallwall</a> (&amp;$item)</td></tr>
+<tr class="separator:aab32042f8bd63552d3fadeeae9eab083"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ab27761069ea1275f0fc4c543099c5519"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="bb2diaspora_8php.html#ab27761069ea1275f0fc4c543099c5519">bb2diaspora_itembody</a> ($item, $force_update=false)</td></tr>
+<tr class="separator:ab27761069ea1275f0fc4c543099c5519"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a4f10e0876b27373c762bc1abbe745f5c"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="bb2diaspora_8php.html#a4f10e0876b27373c762bc1abbe745f5c">bb2diaspora</a> ($Text, $preserve_nl=false, $fordiaspora=true)</td></tr>
<tr class="separator:a4f10e0876b27373c762bc1abbe745f5c"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a599428bceb6f6d82a6a78cb66811f747"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="bb2diaspora_8php.html#a599428bceb6f6d82a6a78cb66811f747">unescape_underscores_in_links</a> ($m)</td></tr>
@@ -173,11 +175,11 @@ Functions</h2></td></tr>
</div><div class="memdoc">
<p>Transform #tags, strip off the [url] and replace spaces with underscore</p>
-<p>Referenced by <a class="el" href="bb2diaspora_8php.html#a2052c66bc1006a42b4c230320c269e47">bb2diaspora_itembody()</a>, <a class="el" href="diaspora_8php.html#aeb2bb78f620dbf51d9335e6eb7444f2c">diaspora_send_mail()</a>, <a class="el" href="bb2diaspora_8php.html#a29a2ad41f5826f3975fa9a49934ff863">format_event_diaspora()</a>, and <a class="el" href="items_8php.html#af0a887050dc8d0f51c89890cdaf3145f">store_diaspora_comment_sig()</a>.</p>
+<p>Referenced by <a class="el" href="bb2diaspora_8php.html#ab27761069ea1275f0fc4c543099c5519">bb2diaspora_itembody()</a>, <a class="el" href="diaspora_8php.html#aeb2bb78f620dbf51d9335e6eb7444f2c">diaspora_send_mail()</a>, and <a class="el" href="bb2diaspora_8php.html#a29a2ad41f5826f3975fa9a49934ff863">format_event_diaspora()</a>.</p>
</div>
</div>
-<a class="anchor" id="a2052c66bc1006a42b4c230320c269e47"></a>
+<a class="anchor" id="ab27761069ea1275f0fc4c543099c5519"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
@@ -185,13 +187,41 @@ Functions</h2></td></tr>
<td class="memname">bb2diaspora_itembody </td>
<td>(</td>
<td class="paramtype">&#160;</td>
+ <td class="paramname"><em>$item</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">&#160;</td>
+ <td class="paramname"><em>$force_update</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="diaspora_8php.html#af4698b165766f83d89ec1ea964bc92cc">diaspora_send_followup()</a>, <a class="el" href="diaspora_8php.html#a0b3628a5e53332c3d3196b689fe2b94d">diaspora_send_relay()</a>, <a class="el" href="diaspora_8php.html#a33ae0c4606a7df4d801c05507d87f668">diaspora_send_status()</a>, <a class="el" href="p_8php.html#af9d5530ca0b3dc9409cf591c39e2480e">p_init()</a>, and <a class="el" href="items_8php.html#a25221826fa4621f523c68483e3b6af26">store_diaspora_comment_sig()</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="aab32042f8bd63552d3fadeeae9eab083"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">bb2diaspora_itemwallwall </td>
+ <td>(</td>
+ <td class="paramtype">&amp;&#160;</td>
<td class="paramname"><em>$item</em></td><td>)</td>
<td></td>
</tr>
</table>
</div><div class="memdoc">
-<p>Referenced by <a class="el" href="diaspora_8php.html#af4698b165766f83d89ec1ea964bc92cc">diaspora_send_followup()</a>, <a class="el" href="diaspora_8php.html#a0b3628a5e53332c3d3196b689fe2b94d">diaspora_send_relay()</a>, and <a class="el" href="diaspora_8php.html#a33ae0c4606a7df4d801c05507d87f668">diaspora_send_status()</a>.</p>
+<p>Referenced by <a class="el" href="bb2diaspora_8php.html#ab27761069ea1275f0fc4c543099c5519">bb2diaspora_itembody()</a>.</p>
</div>
</div>
diff --git a/doc/html/bb2diaspora_8php.js b/doc/html/bb2diaspora_8php.js
index 60831be29..2f70d373c 100644
--- a/doc/html/bb2diaspora_8php.js
+++ b/doc/html/bb2diaspora_8php.js
@@ -1,7 +1,8 @@
var bb2diaspora_8php =
[
[ "bb2diaspora", "bb2diaspora_8php.html#a4f10e0876b27373c762bc1abbe745f5c", null ],
- [ "bb2diaspora_itembody", "bb2diaspora_8php.html#a2052c66bc1006a42b4c230320c269e47", null ],
+ [ "bb2diaspora_itembody", "bb2diaspora_8php.html#ab27761069ea1275f0fc4c543099c5519", null ],
+ [ "bb2diaspora_itemwallwall", "bb2diaspora_8php.html#aab32042f8bd63552d3fadeeae9eab083", null ],
[ "bb2dmention_callback", "bb2diaspora_8php.html#a5258d2f1addeb0a2a6b54c4f9e7d0f34", null ],
[ "bb_tag_preg_replace", "bb2diaspora_8php.html#ad0abe1a7ee50aa0736a233df0a422eba", null ],
[ "diaspora2bb", "bb2diaspora_8php.html#ac9061ee10fcfcdac69566b649614e625", null ],
diff --git a/doc/html/bbcode_8php.html b/doc/html/bbcode_8php.html
index 0a8e77351..4eaf2b009 100644
--- a/doc/html/bbcode_8php.html
+++ b/doc/html/bbcode_8php.html
@@ -127,6 +127,8 @@ Functions</h2></td></tr>
<tr class="separator:a851f5aafefe52474201b83f9fd65931f"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:abb02f1044ff1c635d12af690d0f2cfa2"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="bbcode_8php.html#abb02f1044ff1c635d12af690d0f2cfa2">bb_parse_app</a> ($match)</td></tr>
<tr class="separator:abb02f1044ff1c635d12af690d0f2cfa2"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:aa73fb62e7be1fa5fce4ad5f3d4487fc9"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="bbcode_8php.html#aa73fb62e7be1fa5fce4ad5f3d4487fc9">bb_parse_element</a> ($match)</td></tr>
+<tr class="separator:aa73fb62e7be1fa5fce4ad5f3d4487fc9"><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>
@@ -139,6 +141,10 @@ Functions</h2></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:a02d5f2434e7bb5cf683e52a9b4787f24"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="bbcode_8php.html#a02d5f2434e7bb5cf683e52a9b4787f24">bb_map_coords</a> ($match)</td></tr>
+<tr class="separator:a02d5f2434e7bb5cf683e52a9b4787f24"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a7cb403fd1c36d7376c2f3932a1ceb54d"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="bbcode_8php.html#a7cb403fd1c36d7376c2f3932a1ceb54d">bb_map_location</a> ($match)</td></tr>
+<tr class="separator:a7cb403fd1c36d7376c2f3932a1ceb54d"><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>
@@ -161,6 +167,38 @@ Functions</h2></td></tr>
</div>
</div>
+<a class="anchor" id="a02d5f2434e7bb5cf683e52a9b4787f24"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">bb_map_coords </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="a7cb403fd1c36d7376c2f3932a1ceb54d"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">bb_map_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="abb02f1044ff1c635d12af690d0f2cfa2"></a>
<div class="memitem">
<div class="memproto">
@@ -193,6 +231,22 @@ Functions</h2></td></tr>
</div>
</div>
+<a class="anchor" id="aa73fb62e7be1fa5fce4ad5f3d4487fc9"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">bb_parse_element </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">
@@ -319,7 +373,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="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#a03a5deed3908543581c074ce333e9d6a">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>
+<p>Referenced by <a class="el" href="identity_8php.html#aa870d2c1f558cfd52bef05bc124e8fa4">advanced_profile()</a>, <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="mod_2directory_8php.html#aac79396570d759da2efac24fcedf5b44">directory_content()</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="event_8php.html#a05073cd4ab837bd4a0149e8ed23ce688">format_ical_text()</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#a03a5deed3908543581c074ce333e9d6a">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="help_8php.html#a06b2a51aaabed99e53a9b639047c4ce4">preg_callback_help_include()</a>, <a class="el" href="register_8php.html#a0e91f57f111407ea8d3223a05022bb2a">register_content()</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>
diff --git a/doc/html/bbcode_8php.js b/doc/html/bbcode_8php.js
index 816f65396..ad5bce44c 100644
--- a/doc/html/bbcode_8php.js
+++ b/doc/html/bbcode_8php.js
@@ -1,8 +1,11 @@
var bbcode_8php =
[
[ "bb_location", "bbcode_8php.html#a3435c82a6c7693557800cdeb6848d0bd", null ],
+ [ "bb_map_coords", "bbcode_8php.html#a02d5f2434e7bb5cf683e52a9b4787f24", null ],
+ [ "bb_map_location", "bbcode_8php.html#a7cb403fd1c36d7376c2f3932a1ceb54d", null ],
[ "bb_parse_app", "bbcode_8php.html#abb02f1044ff1c635d12af690d0f2cfa2", null ],
[ "bb_parse_crypt", "bbcode_8php.html#a851f5aafefe52474201b83f9fd65931f", null ],
+ [ "bb_parse_element", "bbcode_8php.html#aa73fb62e7be1fa5fce4ad5f3d4487fc9", null ],
[ "bb_qr", "bbcode_8php.html#a98d0eecc620c19561639f06cfbe8e74c", null ],
[ "bb_sanitize_style", "bbcode_8php.html#a3a989cbf308a32468d171d83e9c51d1e", null ],
[ "bb_ShareAttributes", "bbcode_8php.html#a1c69e021d5e0aef97d6966bf3169c86a", null ],
diff --git a/doc/html/blocks_8php.html b/doc/html/blocks_8php.html
index 8993de9ed..d6ab862e3 100644
--- a/doc/html/blocks_8php.html
+++ b/doc/html/blocks_8php.html
@@ -112,6 +112,8 @@ $(document).ready(function(){initNavTree('blocks_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:aebe88302181883d2b17d6e98a1aaebe9"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="blocks_8php.html#aebe88302181883d2b17d6e98a1aaebe9">blocks_init</a> (&amp;$a)</td></tr>
+<tr class="separator:aebe88302181883d2b17d6e98a1aaebe9"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a2531a8fd51db3cecb2eb20c002c66e12"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="blocks_8php.html#a2531a8fd51db3cecb2eb20c002c66e12">blocks_content</a> (&amp;$a)</td></tr>
<tr class="separator:a2531a8fd51db3cecb2eb20c002c66e12"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table>
@@ -132,6 +134,22 @@ Functions</h2></td></tr>
</div>
</div>
+<a class="anchor" id="aebe88302181883d2b17d6e98a1aaebe9"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">blocks_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/blocks_8php.js b/doc/html/blocks_8php.js
index b2123aa00..c10da1ce2 100644
--- a/doc/html/blocks_8php.js
+++ b/doc/html/blocks_8php.js
@@ -1,4 +1,5 @@
var blocks_8php =
[
- [ "blocks_content", "blocks_8php.html#a2531a8fd51db3cecb2eb20c002c66e12", null ]
+ [ "blocks_content", "blocks_8php.html#a2531a8fd51db3cecb2eb20c002c66e12", null ],
+ [ "blocks_init", "blocks_8php.html#aebe88302181883d2b17d6e98a1aaebe9", null ]
]; \ No newline at end of file
diff --git a/doc/html/boot_8php.html b/doc/html/boot_8php.html
index aeb375306..95f0d437d 100644
--- a/doc/html/boot_8php.html
+++ b/doc/html/boot_8php.html
@@ -115,6 +115,7 @@ $(document).ready(function(){initNavTree('boot_8php.html','');});
<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="classApp.html">App</a></td></tr>
+<tr class="memdesc:"><td class="mdescLeft">&#160;</td><td class="mdescRight">Our main application structure for the life of this page. <a href="classApp.html#details">More...</a><br/></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>
@@ -122,9 +123,11 @@ Functions</h2></td></tr>
<tr class="memitem:aca47505b8732177f52bb2d647eb2741c"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="boot_8php.html#aca47505b8732177f52bb2d647eb2741c">startup</a> ()</td></tr>
<tr class="separator:aca47505b8732177f52bb2d647eb2741c"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a0e6db7e365f2b041a828b93786f694bc"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="boot_8php.html#a0e6db7e365f2b041a828b93786f694bc">get_app</a> ()</td></tr>
+<tr class="memdesc:a0e6db7e365f2b041a828b93786f694bc"><td class="mdescLeft">&#160;</td><td class="mdescRight">Retrieve the <a class="el" href="classApp.html" title="Our main application structure for the life of this page.">App</a> structure. <a href="#a0e6db7e365f2b041a828b93786f694bc">More...</a><br/></td></tr>
<tr class="separator:a0e6db7e365f2b041a828b93786f694bc"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:a01353c9abebc3544ea080ac161729632"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="boot_8php.html#a01353c9abebc3544ea080ac161729632">x</a> ($s, $k=NULL)</td></tr>
-<tr class="separator:a01353c9abebc3544ea080ac161729632"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ae97836b0547953be182a2334c9c91d3c"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="boot_8php.html#ae97836b0547953be182a2334c9c91d3c">x</a> ($s, $k=null)</td></tr>
+<tr class="memdesc:ae97836b0547953be182a2334c9c91d3c"><td class="mdescLeft">&#160;</td><td class="mdescRight">Multi-purpose function to check variable state. <a href="#ae97836b0547953be182a2334c9c91d3c">More...</a><br/></td></tr>
+<tr class="separator:ae97836b0547953be182a2334c9c91d3c"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ac608a34f3bc180e7724192e0fd31f9b0"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="boot_8php.html#ac608a34f3bc180e7724192e0fd31f9b0">system_unavailable</a> ()</td></tr>
<tr class="separator:ac608a34f3bc180e7724192e0fd31f9b0"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ab79b8b4555cae20d03f8200666d89d63"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="boot_8php.html#ab79b8b4555cae20d03f8200666d89d63">clean_urls</a> ()</td></tr>
@@ -132,12 +135,15 @@ Functions</h2></td></tr>
<tr class="memitem:aba208673515cbb8a55e5fa4a1da99fda"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="boot_8php.html#aba208673515cbb8a55e5fa4a1da99fda">z_path</a> ()</td></tr>
<tr class="separator:aba208673515cbb8a55e5fa4a1da99fda"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:add517a0958ac684792c62142a3877f81"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="boot_8php.html#add517a0958ac684792c62142a3877f81">z_root</a> ()</td></tr>
+<tr class="memdesc:add517a0958ac684792c62142a3877f81"><td class="mdescLeft">&#160;</td><td class="mdescRight">Returns the baseurl. <a href="#add517a0958ac684792c62142a3877f81">More...</a><br/></td></tr>
<tr class="separator:add517a0958ac684792c62142a3877f81"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a081307d681d7d04f17b9ced2076e7c85"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="boot_8php.html#a081307d681d7d04f17b9ced2076e7c85">absurl</a> ($path)</td></tr>
+<tr class="memdesc:a081307d681d7d04f17b9ced2076e7c85"><td class="mdescLeft">&#160;</td><td class="mdescRight">Return absolut URL for given $path. <a href="#a081307d681d7d04f17b9ced2076e7c85">More...</a><br/></td></tr>
<tr class="separator:a081307d681d7d04f17b9ced2076e7c85"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a5fbebdf7a1c0ea8f904dbd9d78c2c06c"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="boot_8php.html#a5fbebdf7a1c0ea8f904dbd9d78c2c06c">os_mkdir</a> ($path, $mode=0777, $recursive=false)</td></tr>
<tr class="separator:a5fbebdf7a1c0ea8f904dbd9d78c2c06c"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ac17fc8a416ea79e9d5cb4dc9a8ff8c5c"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="boot_8php.html#ac17fc8a416ea79e9d5cb4dc9a8ff8c5c">is_ajax</a> ()</td></tr>
+<tr class="memdesc:ac17fc8a416ea79e9d5cb4dc9a8ff8c5c"><td class="mdescLeft">&#160;</td><td class="mdescRight">Function to check if request was an AJAX (xmlhttprequest) request. <a href="#ac17fc8a416ea79e9d5cb4dc9a8ff8c5c">More...</a><br/></td></tr>
<tr class="separator:ac17fc8a416ea79e9d5cb4dc9a8ff8c5c"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a4c02d88e66852a01bd5a1feecb7c3ce3"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="boot_8php.html#a4c02d88e66852a01bd5a1feecb7c3ce3">check_config</a> (&amp;$a)</td></tr>
<tr class="separator:a4c02d88e66852a01bd5a1feecb7c3ce3"><td class="memSeparator" colspan="2">&#160;</td></tr>
@@ -146,71 +152,92 @@ Functions</h2></td></tr>
<tr class="memitem:aefecf8599036df7f1b95d6820e0e2fa4"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="boot_8php.html#aefecf8599036df7f1b95d6820e0e2fa4">login</a> ($register=false, $form_id= 'main-login', $hiddens=false)</td></tr>
<tr class="separator:aefecf8599036df7f1b95d6820e0e2fa4"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:aea7fc57a4d8e9dcb42f2601b0b9b761c"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="boot_8php.html#aea7fc57a4d8e9dcb42f2601b0b9b761c">killme</a> ()</td></tr>
+<tr class="memdesc:aea7fc57a4d8e9dcb42f2601b0b9b761c"><td class="mdescLeft">&#160;</td><td class="mdescRight">Used to end the current process, after saving session state. <a href="#aea7fc57a4d8e9dcb42f2601b0b9b761c">More...</a><br/></td></tr>
<tr class="separator:aea7fc57a4d8e9dcb42f2601b0b9b761c"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a5ab6181607a090bcdbaa13b15b85aba1"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="boot_8php.html#a5ab6181607a090bcdbaa13b15b85aba1">goaway</a> ($s)</td></tr>
+<tr class="memdesc:a5ab6181607a090bcdbaa13b15b85aba1"><td class="mdescLeft">&#160;</td><td class="mdescRight">Redirect to another URL and terminate this process. <a href="#a5ab6181607a090bcdbaa13b15b85aba1">More...</a><br/></td></tr>
<tr class="separator:a5ab6181607a090bcdbaa13b15b85aba1"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:afe88b920aa285982edb817a0dd44eb37"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="boot_8php.html#afe88b920aa285982edb817a0dd44eb37">get_account_id</a> ()</td></tr>
+<tr class="memdesc:afe88b920aa285982edb817a0dd44eb37"><td class="mdescLeft">&#160;</td><td class="mdescRight">Returns the entity id of locally logged in account or false. <a href="#afe88b920aa285982edb817a0dd44eb37">More...</a><br/></td></tr>
<tr class="separator:afe88b920aa285982edb817a0dd44eb37"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ad4c9dc2c8a82e8f52b7404c1655eab44"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="boot_8php.html#ad4c9dc2c8a82e8f52b7404c1655eab44">local_user</a> ()</td></tr>
+<tr class="memdesc:ad4c9dc2c8a82e8f52b7404c1655eab44"><td class="mdescLeft">&#160;</td><td class="mdescRight">Returns the entity id (channel_id) of locally logged in user or false. <a href="#ad4c9dc2c8a82e8f52b7404c1655eab44">More...</a><br/></td></tr>
<tr class="separator:ad4c9dc2c8a82e8f52b7404c1655eab44"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a5542c5c2806ab8bca04bad53d47b5209"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="boot_8php.html#a5542c5c2806ab8bca04bad53d47b5209">remote_user</a> ()</td></tr>
+<tr class="memdesc:a5542c5c2806ab8bca04bad53d47b5209"><td class="mdescLeft">&#160;</td><td class="mdescRight">Returns contact id (visitor_id) of authenticated site visitor or false. <a href="#a5542c5c2806ab8bca04bad53d47b5209">More...</a><br/></td></tr>
<tr class="separator:a5542c5c2806ab8bca04bad53d47b5209"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a9255af5ae9c887520091ea04763c1a88"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="boot_8php.html#a9255af5ae9c887520091ea04763c1a88">notice</a> ($s)</td></tr>
<tr class="separator:a9255af5ae9c887520091ea04763c1a88"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:adfb2fc7be5a4226c0a8e24131da9d498"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="boot_8php.html#adfb2fc7be5a4226c0a8e24131da9d498">info</a> ($s)</td></tr>
<tr class="separator:adfb2fc7be5a4226c0a8e24131da9d498"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a97769915c9f14adc4f8ab1ea2cecfd90"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="boot_8php.html#a97769915c9f14adc4f8ab1ea2cecfd90">get_max_import_size</a> ()</td></tr>
+<tr class="memdesc:a97769915c9f14adc4f8ab1ea2cecfd90"><td class="mdescLeft">&#160;</td><td class="mdescRight">Wrapper around config to limit the text length of an incoming message. <a href="#a97769915c9f14adc4f8ab1ea2cecfd90">More...</a><br/></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="memdesc:ac5e74f899f6e98d8e91b14ba1c08bc08"><td class="mdescLeft">&#160;</td><td class="mdescRight">Checks if we are running on M$ Windows. <a href="#ac5e74f899f6e98d8e91b14ba1c08bc08">More...</a><br/></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>
+<tr class="memdesc:a926cad0b3d8b9d9ee5da1898fc063ba3"><td class="mdescLeft">&#160;</td><td class="mdescRight">Return full URL to theme which is currently in effect. <a href="#a926cad0b3d8b9d9ee5da1898fc063ba3">More...</a><br/></td></tr>
<tr class="separator:a926cad0b3d8b9d9ee5da1898fc063ba3"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:aa1e828bbbcba170265eb2668d8daf42e"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="boot_8php.html#aa1e828bbbcba170265eb2668d8daf42e">is_site_admin</a> ()</td></tr>
+<tr class="memdesc:aa1e828bbbcba170265eb2668d8daf42e"><td class="mdescLeft">&#160;</td><td class="mdescRight">Check if current user has admin role. <a href="#aa1e828bbbcba170265eb2668d8daf42e">More...</a><br/></td></tr>
<tr class="separator:aa1e828bbbcba170265eb2668d8daf42e"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a6252d8eca67c689d9035ec6da544cf46"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="boot_8php.html#a6252d8eca67c689d9035ec6da544cf46">is_developer</a> ()</td></tr>
+<tr class="memdesc:a6252d8eca67c689d9035ec6da544cf46"><td class="mdescLeft">&#160;</td><td class="mdescRight">Check if current user has developer role. <a href="#a6252d8eca67c689d9035ec6da544cf46">More...</a><br/></td></tr>
<tr class="separator:a6252d8eca67c689d9035ec6da544cf46"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a719c7f3972d5f9268f37a41c76cd4ef6"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="boot_8php.html#a719c7f3972d5f9268f37a41c76cd4ef6">load_contact_links</a> ($uid)</td></tr>
<tr class="separator:a719c7f3972d5f9268f37a41c76cd4ef6"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a9cbab4ee728e9a8b4ce952bae643044e"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="boot_8php.html#a9cbab4ee728e9a8b4ce952bae643044e">build_querystring</a> ($params, $name=null)</td></tr>
+<tr class="memdesc:a9cbab4ee728e9a8b4ce952bae643044e"><td class="mdescLeft">&#160;</td><td class="mdescRight">Returns querystring as string from a mapped array. <a href="#a9cbab4ee728e9a8b4ce952bae643044e">More...</a><br/></td></tr>
<tr class="separator:a9cbab4ee728e9a8b4ce952bae643044e"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:abc0a90a1a77f5b668aa7e4b57d1776a7"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="boot_8php.html#abc0a90a1a77f5b668aa7e4b57d1776a7">argc</a> ()</td></tr>
<tr class="separator:abc0a90a1a77f5b668aa7e4b57d1776a7"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:a768f00b7d66be0daf7ef4eea2e862006"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="boot_8php.html#a768f00b7d66be0daf7ef4eea2e862006">argv</a> ($<a class="el" href="boot_8php.html#a01353c9abebc3544ea080ac161729632">x</a>)</td></tr>
+<tr class="memitem:a768f00b7d66be0daf7ef4eea2e862006"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="boot_8php.html#a768f00b7d66be0daf7ef4eea2e862006">argv</a> ($<a class="el" href="boot_8php.html#ae97836b0547953be182a2334c9c91d3c">x</a>)</td></tr>
<tr class="separator:a768f00b7d66be0daf7ef4eea2e862006"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a3e0930933fb2c0bf8211cc7ab4e1c3b4"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="boot_8php.html#a3e0930933fb2c0bf8211cc7ab4e1c3b4">dba_timer</a> ()</td></tr>
<tr class="separator:a3e0930933fb2c0bf8211cc7ab4e1c3b4"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a623e49c79943f3e7bdb770d021683cf7"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="boot_8php.html#a623e49c79943f3e7bdb770d021683cf7">get_observer_hash</a> ()</td></tr>
+<tr class="memdesc:a623e49c79943f3e7bdb770d021683cf7"><td class="mdescLeft">&#160;</td><td class="mdescRight">Returns xchan_hash from the observer. <a href="#a623e49c79943f3e7bdb770d021683cf7">More...</a><br/></td></tr>
<tr class="separator:a623e49c79943f3e7bdb770d021683cf7"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:aa4221641e5c21db69fa52c426b9017f5"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="boot_8php.html#aa4221641e5c21db69fa52c426b9017f5">curPageURL</a> ()</td></tr>
<tr class="separator:aa4221641e5c21db69fa52c426b9017f5"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a899d24fd074594ceebbf72e1feff335f"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="boot_8php.html#a899d24fd074594ceebbf72e1feff335f">get_custom_nav</a> (&amp;$a, $navname)</td></tr>
+<tr class="memdesc:a899d24fd074594ceebbf72e1feff335f"><td class="mdescLeft">&#160;</td><td class="mdescRight">Returns a custom navigation by name??? <a href="#a899d24fd074594ceebbf72e1feff335f">More...</a><br/></td></tr>
<tr class="separator:a899d24fd074594ceebbf72e1feff335f"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a50a6707a28c7d05d3f49eaabc7994501"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="boot_8php.html#a50a6707a28c7d05d3f49eaabc7994501">load_pdl</a> (&amp;$a)</td></tr>
+<tr class="memdesc:a50a6707a28c7d05d3f49eaabc7994501"><td class="mdescLeft">&#160;</td><td class="mdescRight">Loads a page definition file for a module. <a href="#a50a6707a28c7d05d3f49eaabc7994501">More...</a><br/></td></tr>
+<tr class="separator:a50a6707a28c7d05d3f49eaabc7994501"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:acc4e0c910af066148b810e5fde55fff1"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="boot_8php.html#acc4e0c910af066148b810e5fde55fff1">construct_page</a> (&amp;$a)</td></tr>
+<tr class="memdesc:acc4e0c910af066148b810e5fde55fff1"><td class="mdescLeft">&#160;</td><td class="mdescRight">build the page. <a href="#acc4e0c910af066148b810e5fde55fff1">More...</a><br/></td></tr>
<tr class="separator:acc4e0c910af066148b810e5fde55fff1"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a75a90b0eadd0df510f7e63210733634d"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="boot_8php.html#a75a90b0eadd0df510f7e63210733634d">appdirpath</a> ()</td></tr>
+<tr class="memdesc:a75a90b0eadd0df510f7e63210733634d"><td class="mdescLeft">&#160;</td><td class="mdescRight">Returns <a class="el" href="namespaceRedMatrix.html" title="Class Import.">RedMatrix</a>'s root directory. <a href="#a75a90b0eadd0df510f7e63210733634d">More...</a><br/></td></tr>
<tr class="separator:a75a90b0eadd0df510f7e63210733634d"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a0e4701c9742c3ef88f02ac450a042a84"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="boot_8php.html#a0e4701c9742c3ef88f02ac450a042a84">head_set_icon</a> ($icon)</td></tr>
+<tr class="memdesc:a0e4701c9742c3ef88f02ac450a042a84"><td class="mdescLeft">&#160;</td><td class="mdescRight">Set a pageicon. <a href="#a0e4701c9742c3ef88f02ac450a042a84">More...</a><br/></td></tr>
<tr class="separator:a0e4701c9742c3ef88f02ac450a042a84"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a24a7a70afedd5d85fe0eadc85afa9f77"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="boot_8php.html#a24a7a70afedd5d85fe0eadc85afa9f77">head_get_icon</a> ()</td></tr>
+<tr class="memdesc:a24a7a70afedd5d85fe0eadc85afa9f77"><td class="mdescLeft">&#160;</td><td class="mdescRight">Get the pageicon. <a href="#a24a7a70afedd5d85fe0eadc85afa9f77">More...</a><br/></td></tr>
<tr class="separator:a24a7a70afedd5d85fe0eadc85afa9f77"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a329400dcb29897cdaae3020109272285"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="boot_8php.html#a329400dcb29897cdaae3020109272285">get_directory_realm</a> ()</td></tr>
+<tr class="memdesc:a329400dcb29897cdaae3020109272285"><td class="mdescLeft">&#160;</td><td class="mdescRight">Return the Realm of the directory. <a href="#a329400dcb29897cdaae3020109272285">More...</a><br/></td></tr>
<tr class="separator:a329400dcb29897cdaae3020109272285"><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:a96ad56755a21e1361dbd7bf93c9e7ff4"><td class="memItemLeft" align="right" valign="top">const&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="boot_8php.html#a96ad56755a21e1361dbd7bf93c9e7ff4">RED_PLATFORM</a> 'Red Matrix'</td></tr>
+<tr class="memitem:a96ad56755a21e1361dbd7bf93c9e7ff4"><td class="memItemLeft" align="right" valign="top">const&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="boot_8php.html#a96ad56755a21e1361dbd7bf93c9e7ff4">RED_PLATFORM</a> 'redmatrix'</td></tr>
<tr class="separator:a96ad56755a21e1361dbd7bf93c9e7ff4"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a21cc29e0025943e7c28ff58cb4856ac3"><td class="memItemLeft" align="right" valign="top">const&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="boot_8php.html#a21cc29e0025943e7c28ff58cb4856ac3">RED_VERSION</a> trim(file_get_contents('version.inc')) . 'R'</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> 1129</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> 1131</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="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>
<tr class="memitem:ad34c1547020a305915bcc39707744690"><td class="memItemLeft" align="right" valign="top">const&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="boot_8php.html#ad34c1547020a305915bcc39707744690">ATOM_TIME</a> 'Y-m-d\TH:i:s\Z'</td></tr>
<tr class="separator:ad34c1547020a305915bcc39707744690"><td class="memSeparator" colspan="2">&#160;</td></tr>
@@ -308,6 +335,8 @@ Variables</h2></td></tr>
<tr class="separator:a36003bebe4ce860c6652bcc3e09b2214"><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:afbb21ecccac9819aa65397e816868a5f"><td class="memItemLeft" align="right" valign="top">const&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="boot_8php.html#afbb21ecccac9819aa65397e816868a5f">PAGE_HUBADMIN</a> 0x2000</td></tr>
+<tr class="separator:afbb21ecccac9819aa65397e816868a5f"><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>
@@ -318,6 +347,8 @@ 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:a921c55b9fa59a327a5f0e07fa1ccb2e0"><td class="memItemLeft" align="right" valign="top">const&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="boot_8php.html#a921c55b9fa59a327a5f0e07fa1ccb2e0">PHOTO_ADULT</a> 0x0008</td></tr>
+<tr class="separator:a921c55b9fa59a327a5f0e07fa1ccb2e0"><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>
@@ -482,6 +513,28 @@ Variables</h2></td></tr>
<tr class="separator:aca08bc4f1554ba877500f6abcc99e1e8"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a14d44d4a00223dc3db4ea962325db192"><td class="memItemLeft" align="right" valign="top">const&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="boot_8php.html#a14d44d4a00223dc3db4ea962325db192">NOTIFY_SYSTEM</a> 0x8000</td></tr>
<tr class="separator:a14d44d4a00223dc3db4ea962325db192"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a997614f25e58f8313641e1eb0109fd10"><td class="memItemLeft" align="right" valign="top">const&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="boot_8php.html#a997614f25e58f8313641e1eb0109fd10">VNOTIFY_NETWORK</a> 0x0001</td></tr>
+<tr class="separator:a997614f25e58f8313641e1eb0109fd10"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a7b511bd93202c43405adbe3b5bcebbfe"><td class="memItemLeft" align="right" valign="top">const&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="boot_8php.html#a7b511bd93202c43405adbe3b5bcebbfe">VNOTIFY_CHANNEL</a> 0x0002</td></tr>
+<tr class="separator:a7b511bd93202c43405adbe3b5bcebbfe"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a0afeb43da443d6ff3526ede5ecdcc3b3"><td class="memItemLeft" align="right" valign="top">const&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="boot_8php.html#a0afeb43da443d6ff3526ede5ecdcc3b3">VNOTIFY_MAIL</a> 0x0004</td></tr>
+<tr class="separator:a0afeb43da443d6ff3526ede5ecdcc3b3"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ad94aca4c260b8a892397786201dc4664"><td class="memItemLeft" align="right" valign="top">const&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="boot_8php.html#ad94aca4c260b8a892397786201dc4664">VNOTIFY_EVENT</a> 0x0008</td></tr>
+<tr class="separator:ad94aca4c260b8a892397786201dc4664"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a76480b213af379c0c6c7fa4e39019ca9"><td class="memItemLeft" align="right" valign="top">const&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="boot_8php.html#a76480b213af379c0c6c7fa4e39019ca9">VNOTIFY_EVENTTODAY</a> 0x0010</td></tr>
+<tr class="separator:a76480b213af379c0c6c7fa4e39019ca9"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ac89396b9144391acd08d6d0f9b332220"><td class="memItemLeft" align="right" valign="top">const&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="boot_8php.html#ac89396b9144391acd08d6d0f9b332220">VNOTIFY_BIRTHDAY</a> 0x0020</td></tr>
+<tr class="separator:ac89396b9144391acd08d6d0f9b332220"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a7e5627b5ca4b7464feb0f08663b19ea1"><td class="memItemLeft" align="right" valign="top">const&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="boot_8php.html#a7e5627b5ca4b7464feb0f08663b19ea1">VNOTIFY_SYSTEM</a> 0x0040</td></tr>
+<tr class="separator:a7e5627b5ca4b7464feb0f08663b19ea1"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a37281c30bd92cecb499878d6778c570f"><td class="memItemLeft" align="right" valign="top">const&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="boot_8php.html#a37281c30bd92cecb499878d6778c570f">VNOTIFY_INFO</a> 0x0080</td></tr>
+<tr class="separator:a37281c30bd92cecb499878d6778c570f"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a9f8a2938ddd9ee2867e6f8ce77b61b2f"><td class="memItemLeft" align="right" valign="top">const&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="boot_8php.html#a9f8a2938ddd9ee2867e6f8ce77b61b2f">VNOTIFY_ALERT</a> 0x0100</td></tr>
+<tr class="separator:a9f8a2938ddd9ee2867e6f8ce77b61b2f"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a1997c4b7d0253e036bc0fb6b20e4af71"><td class="memItemLeft" align="right" valign="top">const&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="boot_8php.html#a1997c4b7d0253e036bc0fb6b20e4af71">VNOTIFY_INTRO</a> 0x0200</td></tr>
+<tr class="separator:a1997c4b7d0253e036bc0fb6b20e4af71"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ae09767b94688657978ff9366ec63684b"><td class="memItemLeft" align="right" valign="top">const&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="boot_8php.html#ae09767b94688657978ff9366ec63684b">VNOTIFY_REGISTER</a> 0x0400</td></tr>
+<tr class="separator:ae09767b94688657978ff9366ec63684b"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a3ad9cc5d4354be741fa1de12b96e9955"><td class="memItemLeft" align="right" valign="top">const&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="boot_8php.html#a3ad9cc5d4354be741fa1de12b96e9955">HUBLOC_FLAGS_PRIMARY</a> 0x0001</td></tr>
<tr class="separator:a3ad9cc5d4354be741fa1de12b96e9955"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ab54b24cc302e1a42a67a49d788b6b764"><td class="memItemLeft" align="right" valign="top">const&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="boot_8php.html#ab54b24cc302e1a42a67a49d788b6b764">HUBLOC_FLAGS_UNVERIFIED</a> 0x0002</td></tr>
@@ -502,6 +555,8 @@ Variables</h2></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:a0209e605028a5bb492683951ab30d49d"><td class="memItemLeft" align="right" valign="top">const&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="boot_8php.html#a0209e605028a5bb492683951ab30d49d">XCHAN_FLAGS_PUBFORUM</a> 0x0020</td></tr>
+<tr class="separator:a0209e605028a5bb492683951ab30d49d"><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>
@@ -576,6 +631,8 @@ Variables</h2></td></tr>
<tr class="separator:afaf93b7026f784b113b4f8921745891e"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a444ce608ce34efb82ee11852f36e825f"><td class="memItemLeft" align="right" valign="top">const&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="boot_8php.html#a444ce608ce34efb82ee11852f36e825f">NAMESPACE_ATOM1</a> 'http://www.w3.org/2005/Atom'</td></tr>
<tr class="separator:a444ce608ce34efb82ee11852f36e825f"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a3d48dffd9dc73a187263c3002cdf00c0"><td class="memItemLeft" align="right" valign="top">const&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="boot_8php.html#a3d48dffd9dc73a187263c3002cdf00c0">NAMESPACE_YMEDIA</a> 'http://search.yahoo.com/mrss/'</td></tr>
+<tr class="separator:a3d48dffd9dc73a187263c3002cdf00c0"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:abdcdfc873ace4e0902177bad934de0c0"><td class="memItemLeft" align="right" valign="top">const&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="boot_8php.html#abdcdfc873ace4e0902177bad934de0c0">ACTIVITY_LIKE</a> <a class="el" href="boot_8php.html#a7b8f8ad9dbe82711257d23891ef6b133">NAMESPACE_ACTIVITY_SCHEMA</a> . 'like'</td></tr>
<tr class="separator:abdcdfc873ace4e0902177bad934de0c0"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a0e57f846e6d47a308feced0f7274f178"><td class="memItemLeft" align="right" valign="top">const&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="boot_8php.html#a0e57f846e6d47a308feced0f7274f178">ACTIVITY_DISLIKE</a> <a class="el" href="boot_8php.html#a49f2a70b3b43aa904223a8d19e986a47">NAMESPACE_ZOT</a> . '/activity/dislike'</td></tr>
@@ -710,8 +767,16 @@ Variables</h2></td></tr>
<tr class="separator:a18a400fa45e5632811b33041d8c048bf"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a11cfe7d99b4dac0454d0de8873989f81"><td class="memItemLeft" align="right" valign="top">const&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="boot_8php.html#a11cfe7d99b4dac0454d0de8873989f81">ITEM_RETAINED</a> 0x4000</td></tr>
<tr class="separator:a11cfe7d99b4dac0454d0de8873989f81"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ac4d1c93dabcace711ffb4931204c336b"><td class="memItemLeft" align="right" valign="top">const&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="boot_8php.html#ac4d1c93dabcace711ffb4931204c336b">ITEM_RSS</a> 0x8000</td></tr>
+<tr class="separator:ac4d1c93dabcace711ffb4931204c336b"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a8c9a11c47394244cbe18cd75b9726d5f"><td class="memItemLeft" align="right" valign="top">const&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="boot_8php.html#a8c9a11c47394244cbe18cd75b9726d5f">DBTYPE_MYSQL</a> 0</td></tr>
+<tr class="separator:a8c9a11c47394244cbe18cd75b9726d5f"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a37ddabc112db443b4c67fbc0f708817e"><td class="memItemLeft" align="right" valign="top">const&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="boot_8php.html#a37ddabc112db443b4c67fbc0f708817e">DBTYPE_POSTGRES</a> 1</td></tr>
+<tr class="separator:a37ddabc112db443b4c67fbc0f708817e"><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>This file defines some global constants and includes the central <a class="el" href="classApp.html" title="Our main application structure for the life of this page.">App</a> class. </p>
+</div><h2 class="groupheader">Function Documentation</h2>
<a class="anchor" id="a081307d681d7d04f17b9ced2076e7c85"></a>
<div class="memitem">
<div class="memproto">
@@ -726,6 +791,15 @@ Variables</h2></td></tr>
</table>
</div><div class="memdoc">
+<p>Return absolut URL for given $path. </p>
+<dl class="params"><dt>Parameters</dt><dd>
+ <table class="params">
+ <tr><td class="paramtype">string</td><td class="paramname">$path</td><td></td></tr>
+ </table>
+ </dd>
+</dl>
+<dl class="section return"><dt>Returns</dt><dd>string </dd></dl>
+
</div>
</div>
<a class="anchor" id="a75a90b0eadd0df510f7e63210733634d"></a>
@@ -741,6 +815,9 @@ Variables</h2></td></tr>
</table>
</div><div class="memdoc">
+<p>Returns <a class="el" href="namespaceRedMatrix.html" title="Class Import.">RedMatrix</a>'s root directory. </p>
+<dl class="section return"><dt>Returns</dt><dd>string </dd></dl>
+
<p>Referenced by <a class="el" href="include_2network_8php.html#a78e89557b2fbd344ad790846d761b0c7">get_capath()</a>.</p>
</div>
@@ -758,7 +835,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="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#ad6f87a764fd35f522c7b4c351d7878ec">admin_page_channels()</a>, <a class="el" href="admin_8php.html#aaa6addf2dbc3f3fcf99244a56b41eade">admin_page_dbsync()</a>, <a class="el" href="admin_8php.html#a3deba594ca1e11694eac1de0b724ef0a">admin_page_profs()</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_2apps_8php.html#a546016cb960d0b110ee8e489dfa6c27c">apps_content()</a>, <a class="el" href="mod_2attach_8php.html#aa88eb5ad87aa1036a30e70339cc6c1b1">attach_init()</a>, <a class="el" href="block_8php.html#a8a82a470acdfbc7a8e749509caeeea45">block_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#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="hcard_8php.html#ac34f26b0e6a37eef44fa49bea135136d">hcard_init()</a>, <a class="el" href="help_8php.html#af055e15f600ffa6fbca9386fdf715224">help_content()</a>, <a class="el" href="importelm_8php.html#a1a4f71e6d76ace6add5e9659845f5e5f">importelm_post()</a>, <a class="el" href="item_8php.html#a764bbb2e9a885a86fb23d0b5e4a09221">item_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="notes_8php.html#a4dbd7b1f906440746af48b484d66535a">notes_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="pdledit_8php.html#a59cb550f6b7a4e7d8196fbc9de601619">pdledit_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="rbmark_8php.html#a43fec4960b50926251574762cc491f76">rbmark_content()</a>, <a class="el" href="receive_8php.html#a03d8fa26e77844020ba5602deca7d494">receive_post()</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="regver_8php.html#ad2c5f644fd1b099abd7c715b7df6f50f">regver_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>
+<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#ad6f87a764fd35f522c7b4c351d7878ec">admin_page_channels()</a>, <a class="el" href="admin_8php.html#aaa6addf2dbc3f3fcf99244a56b41eade">admin_page_dbsync()</a>, <a class="el" href="admin_8php.html#a3deba594ca1e11694eac1de0b724ef0a">admin_page_profs()</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_2apps_8php.html#a546016cb960d0b110ee8e489dfa6c27c">apps_content()</a>, <a class="el" href="mod_2attach_8php.html#aa88eb5ad87aa1036a30e70339cc6c1b1">attach_init()</a>, <a class="el" href="block_8php.html#a8a82a470acdfbc7a8e749509caeeea45">block_content()</a>, <a class="el" href="blocks_8php.html#aebe88302181883d2b17d6e98a1aaebe9">blocks_init()</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#ad2e96e917852f27dedfc263d37e13756">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="editblock_8php.html#ab7806bb42ae5e93f0330d7bd179d4b3e">editblock_init()</a>, <a class="el" href="editlayout_8php.html#aa877e4157a26b099de904164181dd386">editlayout_content()</a>, <a class="el" href="editlayout_8php.html#a97c1e93d9e75ad8cd2c2f9a7f77341a7">editlayout_init()</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="editwebpage_8php.html#a94109f9c796fbe92508bf9574e35d19f">editwebpage_init()</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="hcard_8php.html#ac34f26b0e6a37eef44fa49bea135136d">hcard_init()</a>, <a class="el" href="help_8php.html#af055e15f600ffa6fbca9386fdf715224">help_content()</a>, <a class="el" href="home_8php.html#a6e3dbf78f4ed74ab2577de221190b33f">home_content()</a>, <a class="el" href="home_8php.html#ac4642c38b6f23a8d065dd4a75c620bde">home_init()</a>, <a class="el" href="importelm_8php.html#a1a4f71e6d76ace6add5e9659845f5e5f">importelm_post()</a>, <a class="el" href="item_8php.html#a764bbb2e9a885a86fb23d0b5e4a09221">item_content()</a>, <a class="el" href="layouts_8php.html#a6e0193759ad9eef76d3df2db24237b50">layouts_content()</a>, <a class="el" href="layouts_8php.html#a39c8e9f72641c684c8b689bd91a642fa">layouts_init()</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="notes_8php.html#a4dbd7b1f906440746af48b484d66535a">notes_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="p_8php.html#af9d5530ca0b3dc9409cf591c39e2480e">p_init()</a>, <a class="el" href="page_8php.html#a4d89800c0366a239191b1692c09635cf">page_init()</a>, <a class="el" href="pdledit_8php.html#a59cb550f6b7a4e7d8196fbc9de601619">pdledit_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="rbmark_8php.html#a43fec4960b50926251574762cc491f76">rbmark_content()</a>, <a class="el" href="receive_8php.html#a03d8fa26e77844020ba5602deca7d494">receive_post()</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="regver_8php.html#ad2c5f644fd1b099abd7c715b7df6f50f">regver_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="tagrm_8php.html#adfd4ea5b4d7fc6d9c9e042af5cd7d49a">tagrm_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__home_8php.html#a668340089acd150b830134476a647d05">update_home_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#af9ad0b65eba79acead3fa32b43d888b7">webpages_init()</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>
@@ -776,7 +853,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="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#ad6f87a764fd35f522c7b4c351d7878ec">admin_page_channels()</a>, <a class="el" href="admin_8php.html#aaa6addf2dbc3f3fcf99244a56b41eade">admin_page_dbsync()</a>, <a class="el" href="admin_8php.html#a3deba594ca1e11694eac1de0b724ef0a">admin_page_profs()</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_2apps_8php.html#a546016cb960d0b110ee8e489dfa6c27c">apps_content()</a>, <a class="el" href="mod_2attach_8php.html#aa88eb5ad87aa1036a30e70339cc6c1b1">attach_init()</a>, <a class="el" href="block_8php.html#a8a82a470acdfbc7a8e749509caeeea45">block_content()</a>, <a class="el" href="block_8php.html#a9b61c96044ed2a068f18c10370a78d5c">block_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="hcard_8php.html#ac34f26b0e6a37eef44fa49bea135136d">hcard_init()</a>, <a class="el" href="help_8php.html#af055e15f600ffa6fbca9386fdf715224">help_content()</a>, <a class="el" href="importelm_8php.html#a1a4f71e6d76ace6add5e9659845f5e5f">importelm_post()</a>, <a class="el" href="item_8php.html#a764bbb2e9a885a86fb23d0b5e4a09221">item_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="notes_8php.html#a4dbd7b1f906440746af48b484d66535a">notes_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="pdledit_8php.html#a59cb550f6b7a4e7d8196fbc9de601619">pdledit_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="rbmark_8php.html#a43fec4960b50926251574762cc491f76">rbmark_content()</a>, <a class="el" href="receive_8php.html#a03d8fa26e77844020ba5602deca7d494">receive_post()</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="regver_8php.html#ad2c5f644fd1b099abd7c715b7df6f50f">regver_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>
+<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#ad6f87a764fd35f522c7b4c351d7878ec">admin_page_channels()</a>, <a class="el" href="admin_8php.html#aaa6addf2dbc3f3fcf99244a56b41eade">admin_page_dbsync()</a>, <a class="el" href="admin_8php.html#a3deba594ca1e11694eac1de0b724ef0a">admin_page_profs()</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_2apps_8php.html#a546016cb960d0b110ee8e489dfa6c27c">apps_content()</a>, <a class="el" href="mod_2attach_8php.html#aa88eb5ad87aa1036a30e70339cc6c1b1">attach_init()</a>, <a class="el" href="block_8php.html#a8a82a470acdfbc7a8e749509caeeea45">block_content()</a>, <a class="el" href="block_8php.html#a9b61c96044ed2a068f18c10370a78d5c">block_init()</a>, <a class="el" href="blocks_8php.html#a2531a8fd51db3cecb2eb20c002c66e12">blocks_content()</a>, <a class="el" href="blocks_8php.html#aebe88302181883d2b17d6e98a1aaebe9">blocks_init()</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#ad2e96e917852f27dedfc263d37e13756">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="editblock_8php.html#ab7806bb42ae5e93f0330d7bd179d4b3e">editblock_init()</a>, <a class="el" href="editlayout_8php.html#aa877e4157a26b099de904164181dd386">editlayout_content()</a>, <a class="el" href="editlayout_8php.html#a97c1e93d9e75ad8cd2c2f9a7f77341a7">editlayout_init()</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="editwebpage_8php.html#a94109f9c796fbe92508bf9574e35d19f">editwebpage_init()</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="hcard_8php.html#ac34f26b0e6a37eef44fa49bea135136d">hcard_init()</a>, <a class="el" href="help_8php.html#af055e15f600ffa6fbca9386fdf715224">help_content()</a>, <a class="el" href="home_8php.html#a6e3dbf78f4ed74ab2577de221190b33f">home_content()</a>, <a class="el" href="home_8php.html#ac4642c38b6f23a8d065dd4a75c620bde">home_init()</a>, <a class="el" href="importelm_8php.html#a1a4f71e6d76ace6add5e9659845f5e5f">importelm_post()</a>, <a class="el" href="item_8php.html#a764bbb2e9a885a86fb23d0b5e4a09221">item_content()</a>, <a class="el" href="layouts_8php.html#a6e0193759ad9eef76d3df2db24237b50">layouts_content()</a>, <a class="el" href="layouts_8php.html#a39c8e9f72641c684c8b689bd91a642fa">layouts_init()</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="notes_8php.html#a4dbd7b1f906440746af48b484d66535a">notes_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="p_8php.html#af9d5530ca0b3dc9409cf591c39e2480e">p_init()</a>, <a class="el" href="page_8php.html#a4d89800c0366a239191b1692c09635cf">page_init()</a>, <a class="el" href="pdledit_8php.html#a59cb550f6b7a4e7d8196fbc9de601619">pdledit_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="rbmark_8php.html#a43fec4960b50926251574762cc491f76">rbmark_content()</a>, <a class="el" href="receive_8php.html#a03d8fa26e77844020ba5602deca7d494">receive_post()</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="regver_8php.html#ad2c5f644fd1b099abd7c715b7df6f50f">regver_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="tagrm_8php.html#adfd4ea5b4d7fc6d9c9e042af5cd7d49a">tagrm_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__home_8php.html#a668340089acd150b830134476a647d05">update_home_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="webpages_8php.html#af9ad0b65eba79acead3fa32b43d888b7">webpages_init()</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>
@@ -803,10 +880,12 @@ Variables</h2></td></tr>
</tr>
</table>
</div><div class="memdoc">
-<p>returns querystring as string from a mapped array</p>
+
+<p>Returns querystring as string from a mapped array. </p>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
- <tr><td class="paramname">params</td><td>Array </td></tr>
+ <tr><td class="paramtype">array</td><td class="paramname">$params</td><td>mapped array with query parameters </td></tr>
+ <tr><td class="paramtype">string</td><td class="paramname">$name</td><td>of parameter, default null</td></tr>
</table>
</dd>
</dl>
@@ -862,9 +941,17 @@ Variables</h2></td></tr>
</tr>
</table>
</div><div class="memdoc">
+
+<p>build the page. </p>
<p>Build the page - now that we have all the components</p>
+<dl class="params"><dt>Parameters</dt><dd>
+ <table class="params">
+ <tr><td class="paramtype"><a class="el" href="classApp.html" title="Our main application structure for the life of this page.">App</a></td><td class="paramname">&amp;$a</td><td>global application object </td></tr>
+ </table>
+ </dd>
+</dl>
-<p>Referenced by <a class="el" href="classRedBrowser.html#a1f7daf50bb9bfcde7345b3b1908dbd7e">RedBrowser\generateDirectoryIndex()</a>.</p>
+<p>Referenced by <a class="el" href="classRedMatrix_1_1RedDAV_1_1RedBrowser.html#af764d5f14df751f9ec86c34fab300c09">RedMatrix\RedDAV\RedBrowser\generateDirectoryIndex()</a>.</p>
</div>
</div>
@@ -900,7 +987,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="cloud_8php.html#a1b79a6fe0454bc76673ad9aef55bf02d">cloud_init()</a>, <a class="el" href="boot_8php.html#acc4e0c910af066148b810e5fde55fff1">construct_page()</a>, <a class="el" href="boot_8php.html#a926cad0b3d8b9d9ee5da1898fc063ba3">current_theme_url()</a>, and <a class="el" href="plugin_8php.html#a65fedcffbe03562ef844cabee37d34e2">theme_include()</a>.</p>
+<p>Referenced by <a class="el" href="classFriendicaSmarty.html#af12091b920b95eeef1218cbc48066ca6">FriendicaSmarty\__construct()</a>, <a class="el" href="cloud_8php.html#ad2e96e917852f27dedfc263d37e13756">cloud_init()</a>, <a class="el" href="boot_8php.html#acc4e0c910af066148b810e5fde55fff1">construct_page()</a>, <a class="el" href="boot_8php.html#a926cad0b3d8b9d9ee5da1898fc063ba3">current_theme_url()</a>, and <a class="el" href="plugin_8php.html#a65fedcffbe03562ef844cabee37d34e2">theme_include()</a>.</p>
</div>
</div>
@@ -917,7 +1004,16 @@ Variables</h2></td></tr>
</tr>
</table>
</div><div class="memdoc">
-<p>Return full URL to theme which is currently in effect. Provide a sane default if nothing is chosen or the specified theme does not exist. </p>
+
+<p>Return full URL to theme which is currently in effect. </p>
+<p>Provide a sane default if nothing is chosen or the specified theme does not exist.</p>
+<dl class="params"><dt>Parameters</dt><dd>
+ <table class="params">
+ <tr><td class="paramtype">bool</td><td class="paramname">$installing</td><td>default false</td></tr>
+ </table>
+ </dd>
+</dl>
+<dl class="section return"><dt>Returns</dt><dd>string </dd></dl>
<p>Referenced by <a class="el" href="boot_8php.html#acc4e0c910af066148b810e5fde55fff1">construct_page()</a>.</p>
@@ -936,7 +1032,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="classItem.html#ad5dcbe0b94cb2d5719bc5b6bd8ad60c8">Item\get_template_data()</a>, <a class="el" href="items_8php.html#a756738301f2ed96be50232500677d58a">items_fetch()</a>, <a class="el" href="ping_8php.html#a77217b1b190b4c5d8770867b45f0c0a1">ping_init()</a>, and <a class="el" href="classTemplate.html#a07737733f6949bdedea1e3d301b2ab7b">Template\replace_macros()</a>.</p>
+<p>Referenced by <a class="el" href="items_8php.html#a756738301f2ed96be50232500677d58a">items_fetch()</a>, <a class="el" href="ping_8php.html#a77217b1b190b4c5d8770867b45f0c0a1">ping_init()</a>, and <a class="el" href="classTemplate.html#a07737733f6949bdedea1e3d301b2ab7b">Template\replace_macros()</a>.</p>
</div>
</div>
@@ -981,6 +1077,10 @@ Variables</h2></td></tr>
</table>
</div><div class="memdoc">
+<p>Returns the entity id of locally logged in account or false. </p>
+<p>Returns numeric account_id if authenticated or 0. It is possible to be authenticated and not connected to a channel.</p>
+<dl class="section return"><dt>Returns</dt><dd>int|bool account_id or false </dd></dl>
+
<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="identity_8php.html#a2ab5172eabd375869060c9ad68323f5c">identity_selector()</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="removeaccount_8php.html#a26a3325292e932c59793430ab737126a">removeaccount_post()</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="text_8php.html#a324c58f37f6acdf9cd1922aa76077d9f">z_input_filter()</a>, and <a class="el" href="zotfeed_8php.html#a24dfc23d366e7f840cf2847d0c1c8eac">zotfeed_init()</a>.</p>
</div>
@@ -998,7 +1098,11 @@ 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="Contact_8php.html#a5101d7eca5d6f387e5555f03fe249e33">account_remove()</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="include_2apps_8php.html#a1b2e737f477a2e0d9d11ef14adc5aa66">app_render()</a>, <a class="el" href="include_2apps_8php.html#a15626f24069c18816f7cdaf4735f58f9">app_store()</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#aa97b33b619dd7132a9274f852af6ceb5">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#a4e8af0f0525161da74583c04b8b03097">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#aed39ecad69234f3ddf61f0dedb49a58e">comanche_get_channel_id()</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="diaspora_8php.html#a006731620a5242d410358b32678e48e3">diaspora_asphoto()</a>, <a class="el" href="diaspora_8php.html#a0fb2abe304aae19efc040a5e6b917829">diaspora_comment()</a>, <a class="el" href="diaspora_8php.html#adef30b6fac948baedcc7194d5d155b5f">diaspora_conversation()</a>, <a class="el" href="diaspora_8php.html#a5d57518545baa31cf8a85a937a267681">diaspora_like()</a>, <a class="el" href="diaspora_8php.html#a7cff2f8f11044c1b3a360f20e1bbee46">diaspora_message()</a>, <a class="el" href="diaspora_8php.html#a4901762cba5cd8dcdc57bdf285eefb1b">diaspora_msg_build()</a>, <a class="el" href="diaspora_8php.html#a71fe9bb66626b4197ae018a230778bb2">diaspora_photo()</a>, <a class="el" href="diaspora_8php.html#a20b968d64ef26afe5cb0cc75a7570a31">diaspora_post()</a>, <a class="el" href="diaspora_8php.html#a900abf51398b2ef26cd2cd31c52f1b0f">diaspora_profile()</a>, <a class="el" href="diaspora_8php.html#a586d5a3ba92d35cee14f879f290072aa">diaspora_pubmsg_build()</a>, <a class="el" href="diaspora_8php.html#ac1ab782a34552a7c6b4dc961754ed598">diaspora_request()</a>, <a class="el" href="diaspora_8php.html#a2bf43f6b5890897f425ef4325d34b007">diaspora_reshare()</a>, <a class="el" href="diaspora_8php.html#af4698b165766f83d89ec1ea964bc92cc">diaspora_send_followup()</a>, <a class="el" href="diaspora_8php.html#ae6f52efd81fe515cd9912bc8293abf5b">diaspora_send_images()</a>, <a class="el" href="diaspora_8php.html#aeb2bb78f620dbf51d9335e6eb7444f2c">diaspora_send_mail()</a>, <a class="el" href="diaspora_8php.html#a0b3628a5e53332c3d3196b689fe2b94d">diaspora_send_relay()</a>, <a class="el" href="diaspora_8php.html#a1704748aa2384c73e43f10e71defd31a">diaspora_send_retraction()</a>, <a class="el" href="diaspora_8php.html#a33ae0c4606a7df4d801c05507d87f668">diaspora_send_status()</a>, <a class="el" href="diaspora_8php.html#af3a7f9879c14fec761dcc5563fb39bac">diaspora_share()</a>, <a class="el" href="diaspora_8php.html#aa704d6aa2ac77be345c0f501168e6e56">diaspora_transmit()</a>, <a class="el" href="diaspora_8php.html#aa4b1cc0bca5c3fe8d11557685e0238a9">diaspora_unshare()</a>, <a class="el" href="taxonomy_8php.html#a599ee71dd3194c8127b00dabec77abc1">dir_tagblock()</a>, <a class="el" href="dirsearch_8php.html#aa1fb04e1de4f25b63349ac78f94ceb4c">dirsearch_content()</a>, <a class="el" href="items_8php.html#a555762e1022a4b8e3c3abd32e7812408">drop_item()</a>, <a class="el" href="editpost_8php.html#a34011690864d122680c802e9e748ccfb">editpost_content()</a>, <a class="el" href="event_8php.html#a7378e839ac3de9d55579eb3ec48eaf92">event_store_item()</a>, <a class="el" href="externals_8php.html#a4df44079e6f915286088b7a0d44db926">externals_run()</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="identity_8php.html#a2ab5172eabd375869060c9ad68323f5c">identity_selector()</a>, <a class="el" href="photo__driver_8php.html#a1d0bc7161dec0d177b7d3bbe4421af9a">import_channel_photo()</a>, <a class="el" href="zot_8php.html#a20750dd2c36961013fd382fb34e1366c">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#a528e97ca5d69c3b7f35c5d954afde315">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#a6252d8eca67c689d9035ec6da544cf46">is_developer()</a>, <a class="el" href="identity_8php.html#a4e996e44b50330098a04b467367a559f">is_public_profile()</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#a8675e62674de6fb7c42e4a408c7116cc">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_2apps_8php.html#a32fe4ed9666228fd4b67dc487cc57a83">parse_app_description()</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#a4d9e6ca295e443b740d9960c304b3474">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="comanche_8php.html#a3d11417d2d846dbe72638a556529ff8f">register_page_template()</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="include_2network_8php.html#a316f318167a039c89719afbd129a8f3c">scrape_feed()</a>, <a class="el" href="include_2network_8php.html#acb0bd7f5fe38ff1eaebeae3284525070">scrape_vcard()</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="account_8php.html#a030cec6793b909c439c0336ba39b1571">service_class_allows()</a>, <a class="el" href="account_8php.html#a905b54e10704b283ac64680a8abc0971">service_class_fetch()</a>, <a class="el" href="text_8php.html#a3d225b253bb9e0f2498c11647d927b0b">smilies()</a>, <a class="el" href="items_8php.html#af0a887050dc8d0f51c89890cdaf3145f">store_diaspora_comment_sig()</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="plugin_8php.html#a65fedcffbe03562ef844cabee37d34e2">theme_include()</a>, <a class="el" href="bbcode_8php.html#aa92f119341f4c69dcef2768a013079b8">tryzrlvideo()</a>, <a class="el" href="language_8php.html#a686bcafa6b0d5c86d37b38a1db5b6997">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="account_8php.html#ad07be417ac7eda939768804106ddea3d">user_approve()</a>, <a class="el" href="Contact_8php.html#a6348a532c9d26cd1c9afbc9aa6aa8960">vcard_from_xchan()</a>, <a class="el" href="account_8php.html#acd6b8d2124ba5ea4f4794d2c58ae8bf5">verify_email_address()</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#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>
+<p>Retrieve the <a class="el" href="classApp.html" title="Our main application structure for the life of this page.">App</a> structure. </p>
+<p>Useful in functions which require it but don't get it passed to them</p>
+<dl class="section return"><dt>Returns</dt><dd><a class="el" href="classApp.html" title="Our main application structure for the life of this page.">App</a> </dd></dl>
+
+<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="Contact_8php.html#a5101d7eca5d6f387e5555f03fe249e33">account_remove()</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="include_2apps_8php.html#a1b2e737f477a2e0d9d11ef14adc5aa66">app_render()</a>, <a class="el" href="include_2apps_8php.html#a15626f24069c18816f7cdaf4735f58f9">app_store()</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="zot_8php.html#aa97b33b619dd7132a9274f852af6ceb5">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#a4e8af0f0525161da74583c04b8b03097">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#aed39ecad69234f3ddf61f0dedb49a58e">comanche_get_channel_id()</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="diaspora_8php.html#a006731620a5242d410358b32678e48e3">diaspora_asphoto()</a>, <a class="el" href="diaspora_8php.html#a0fb2abe304aae19efc040a5e6b917829">diaspora_comment()</a>, <a class="el" href="diaspora_8php.html#adef30b6fac948baedcc7194d5d155b5f">diaspora_conversation()</a>, <a class="el" href="diaspora_8php.html#a5d57518545baa31cf8a85a937a267681">diaspora_like()</a>, <a class="el" href="diaspora_8php.html#a7cff2f8f11044c1b3a360f20e1bbee46">diaspora_message()</a>, <a class="el" href="diaspora_8php.html#a4901762cba5cd8dcdc57bdf285eefb1b">diaspora_msg_build()</a>, <a class="el" href="diaspora_8php.html#a71fe9bb66626b4197ae018a230778bb2">diaspora_photo()</a>, <a class="el" href="diaspora_8php.html#a20b968d64ef26afe5cb0cc75a7570a31">diaspora_post()</a>, <a class="el" href="diaspora_8php.html#a900abf51398b2ef26cd2cd31c52f1b0f">diaspora_profile()</a>, <a class="el" href="diaspora_8php.html#a586d5a3ba92d35cee14f879f290072aa">diaspora_pubmsg_build()</a>, <a class="el" href="diaspora_8php.html#ac1ab782a34552a7c6b4dc961754ed598">diaspora_request()</a>, <a class="el" href="diaspora_8php.html#a2bf43f6b5890897f425ef4325d34b007">diaspora_reshare()</a>, <a class="el" href="diaspora_8php.html#af4698b165766f83d89ec1ea964bc92cc">diaspora_send_followup()</a>, <a class="el" href="diaspora_8php.html#ae6f52efd81fe515cd9912bc8293abf5b">diaspora_send_images()</a>, <a class="el" href="diaspora_8php.html#aeb2bb78f620dbf51d9335e6eb7444f2c">diaspora_send_mail()</a>, <a class="el" href="diaspora_8php.html#a0b3628a5e53332c3d3196b689fe2b94d">diaspora_send_relay()</a>, <a class="el" href="diaspora_8php.html#a1704748aa2384c73e43f10e71defd31a">diaspora_send_retraction()</a>, <a class="el" href="diaspora_8php.html#a33ae0c4606a7df4d801c05507d87f668">diaspora_send_status()</a>, <a class="el" href="diaspora_8php.html#a69f250b078a46e405647428ec3399a16">diaspora_share()</a>, <a class="el" href="diaspora_8php.html#aa704d6aa2ac77be345c0f501168e6e56">diaspora_transmit()</a>, <a class="el" href="diaspora_8php.html#ab736d6f32b5de31c97cb579fc730e200">diaspora_unshare()</a>, <a class="el" href="taxonomy_8php.html#a599ee71dd3194c8127b00dabec77abc1">dir_tagblock()</a>, <a class="el" href="dirsearch_8php.html#aa1fb04e1de4f25b63349ac78f94ceb4c">dirsearch_content()</a>, <a class="el" href="items_8php.html#a555762e1022a4b8e3c3abd32e7812408">drop_item()</a>, <a class="el" href="editpost_8php.html#a34011690864d122680c802e9e748ccfb">editpost_content()</a>, <a class="el" href="event_8php.html#a7378e839ac3de9d55579eb3ec48eaf92">event_store_item()</a>, <a class="el" href="externals_8php.html#a4df44079e6f915286088b7a0d44db926">externals_run()</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="classRedMatrix_1_1RedDAV_1_1RedBrowser.html#af764d5f14df751f9ec86c34fab300c09">RedMatrix\RedDAV\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="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="text_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="event_8php.html#ab8cc2825013e724dc26229026711cf93">ical_wrapper()</a>, <a class="el" href="identity_8php.html#a2ab5172eabd375869060c9ad68323f5c">identity_selector()</a>, <a class="el" href="photo__driver_8php.html#a1d0bc7161dec0d177b7d3bbe4421af9a">import_channel_photo()</a>, <a class="el" href="zot_8php.html#a20750dd2c36961013fd382fb34e1366c">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#a528e97ca5d69c3b7f35c5d954afde315">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#a6252d8eca67c689d9035ec6da544cf46">is_developer()</a>, <a class="el" href="identity_8php.html#a4e996e44b50330098a04b467367a559f">is_public_profile()</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#a8675e62674de6fb7c42e4a408c7116cc">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="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#a4d89800c0366a239191b1692c09635cf">page_init()</a>, <a class="el" href="include_2apps_8php.html#a32fe4ed9666228fd4b67dc487cc57a83">parse_app_description()</a>, <a class="el" href="include_2photos_8php.html#af24c6aeed28ecc31ec39e7d9a1804979">photos_album_widget()</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="boot_8php.html#ab346a2ece14993861f3e4206befa94f0">proc_run()</a>, <a class="el" href="zot_8php.html#a0e3006e7a456b2175a9badc96bc5176d">process_delivery()</a>, <a class="el" href="zot_8php.html#a8eeefdb0dad4c436bea9d1c06c0a7988">process_location_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="comanche_8php.html#a3d11417d2d846dbe72638a556529ff8f">register_page_template()</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="include_2network_8php.html#a316f318167a039c89719afbd129a8f3c">scrape_feed()</a>, <a class="el" href="include_2network_8php.html#acb0bd7f5fe38ff1eaebeae3284525070">scrape_vcard()</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="account_8php.html#a030cec6793b909c439c0336ba39b1571">service_class_allows()</a>, <a class="el" href="account_8php.html#a905b54e10704b283ac64680a8abc0971">service_class_fetch()</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="items_8php.html#a25221826fa4621f523c68483e3b6af26">store_diaspora_comment_sig()</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="plugin_8php.html#a65fedcffbe03562ef844cabee37d34e2">theme_include()</a>, <a class="el" href="bbcode_8php.html#aa92f119341f4c69dcef2768a013079b8">tryzrlvideo()</a>, <a class="el" href="language_8php.html#a686bcafa6b0d5c86d37b38a1db5b6997">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="account_8php.html#ad07be417ac7eda939768804106ddea3d">user_approve()</a>, <a class="el" href="Contact_8php.html#a6348a532c9d26cd1c9afbc9aa6aa8960">vcard_from_xchan()</a>, <a class="el" href="account_8php.html#acd6b8d2124ba5ea4f4794d2c58ae8bf5">verify_email_address()</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#af919de8e7e2ba8192a65fadc72a2c8b5">widget_catcloud_wall()</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#af8eb466ef91d9e96e13335ead5eba380">widget_photo_rand()</a>, <a class="el" href="widgets_8php.html#abd2e508a2a0b911c4a838e3cb7599923">widget_profile()</a>, <a class="el" href="widgets_8php.html#a829c5a5c7448129266fc1df3ae1a3c2e">widget_random_block()</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>
@@ -1026,6 +1130,18 @@ Variables</h2></td></tr>
</table>
</div><div class="memdoc">
+<p>Returns a custom navigation by name??? </p>
+<p>If no $navname provided load default page['nav']</p>
+<dl class="todo"><dt><b><a class="el" href="todo.html#_todo000001">Todo:</a></b></dt><dd>not fully implemented yet</dd></dl>
+<dl class="params"><dt>Parameters</dt><dd>
+ <table class="params">
+ <tr><td class="paramtype"><a class="el" href="classApp.html" title="Our main application structure for the life of this page.">App</a></td><td class="paramname">$a</td><td>global application object </td></tr>
+ <tr><td class="paramtype">string</td><td class="paramname">$navname</td><td></td></tr>
+ </table>
+ </dd>
+</dl>
+<dl class="section return"><dt>Returns</dt><dd>mixed </dd></dl>
+
<p>Referenced by <a class="el" href="boot_8php.html#acc4e0c910af066148b810e5fde55fff1">construct_page()</a>.</p>
</div>
@@ -1043,6 +1159,9 @@ Variables</h2></td></tr>
</table>
</div><div class="memdoc">
+<p>Return the Realm of the directory. </p>
+<dl class="section return"><dt>Returns</dt><dd>string </dd></dl>
+
<p>Referenced by <a class="el" href="zot_8php.html#a528e97ca5d69c3b7f35c5d954afde315">import_xchan()</a>, <a class="el" href="dirsearch_8php.html#a985d410a170549429857af6ff2673149">list_public_sites()</a>, <a class="el" href="sitelist_8php.html#a665a59bf60f780b40f32c909f4a473b1">sitelist_init()</a>, <a class="el" href="dir__fns_8php.html#aa666e7df6ca8c332f4081c9b66b4bdf6">sync_directories()</a>, and <a class="el" href="zfinger_8php.html#a8139b83a22ef98869adc10aa224027a0">zfinger_init()</a>.</p>
</div>
@@ -1060,6 +1179,9 @@ Variables</h2></td></tr>
</table>
</div><div class="memdoc">
+<p>Wrapper around config to limit the text length of an incoming message. </p>
+<dl class="section return"><dt>Returns</dt><dd>int </dd></dl>
+
<p>Referenced by <a class="el" href="items_8php.html#a536d0313b6ffe33b9d2490c4e25c5361">get_item_elements()</a>, and <a class="el" href="items_8php.html#af94c281016c6c912d06e064113336c5c">limit_body_size()</a>.</p>
</div>
@@ -1077,7 +1199,10 @@ Variables</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="include_2api_8php.html#a32f0dda848d0c11c727fe1c3e741c283">api_statuses_user_timeline()</a>, <a class="el" href="include_2apps_8php.html#a15626f24069c18816f7cdaf4735f58f9">app_store()</a>, <a class="el" href="include_2apps_8php.html#aeab6a62d2f3dfaa86ed043a006305f46">app_update()</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="block_8php.html#a8a82a470acdfbc7a8e749509caeeea45">block_content()</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#ad5a44e42231759aba1dda49e0490501e">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="text_8php.html#ad6432621d0fafcbcf3d3b9b49bef7784">contact_block()</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="importelm_8php.html#a1a4f71e6d76ace6add5e9659845f5e5f">importelm_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="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="poll_8php.html#a26be9d4f230cb68f5be326198cfc6c77">poll_post()</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="classRedBrowser.html#a40fdbb9d9fe6c1243bbf135dd5b0a06f">RedBrowser\set_writeable()</a>, <a class="el" href="security_8php.html#a3ef2be6a7e4928e39d50059d6feb457c">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#a7b1e357b5a2027718470b77ec921fc65">widget_archive()</a>, <a class="el" href="widgets_8php.html#a0e2f5179ed1a73b282dfda7270fcabb3">widget_bookmarkedchats()</a>, <a class="el" href="widgets_8php.html#af37fdad3b2e861d860a4a8c4d8a76c0b">widget_categories()</a>, <a class="el" href="widgets_8php.html#a313a8d10ab81c71357c12e67e4d7efd5">widget_item()</a>, <a class="el" href="widgets_8php.html#a702e2fc0adc9b615999eca18b7311b5e">widget_photo_albums()</a>, <a class="el" href="widgets_8php.html#a50b1410238100c8a94c06b0aa63ee3b8">widget_suggestedchats()</a>, <a class="el" href="widgets_8php.html#a0d404276fedc59f5038cf5c085028326">widget_suggestions()</a>, <a class="el" href="widgets_8php.html#ae4ced69d83dbdd9e6b51660d9eba8653">widget_tagcloud_wall()</a>, and <a class="el" href="include_2attach_8php.html#aeb07968990e66a88c95483ca09a7f909">z_readdir()</a>.</p>
+<p>Returns xchan_hash from the observer. </p>
+<dl class="section return"><dt>Returns</dt><dd>string Empty if no observer, otherwise xchan_hash from observer </dd></dl>
+
+<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_2apps_8php.html#a15626f24069c18816f7cdaf4735f58f9">app_store()</a>, <a class="el" href="include_2apps_8php.html#aeab6a62d2f3dfaa86ed043a006305f46">app_update()</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="block_8php.html#a8a82a470acdfbc7a8e749509caeeea45">block_content()</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#ad2e96e917852f27dedfc263d37e13756">cloud_init()</a>, <a class="el" href="comanche_8php.html#ad5a44e42231759aba1dda49e0490501e">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="text_8php.html#ad6432621d0fafcbcf3d3b9b49bef7784">contact_block()</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="editpost_8php.html#a34011690864d122680c802e9e748ccfb">editpost_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="impel_8php.html#ab7db6fca43b42ea4332cb3e841b3cf7b">impel_init()</a>, <a class="el" href="importelm_8php.html#a1a4f71e6d76ace6add5e9659845f5e5f">importelm_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="magic_8php.html#acea2cc792849ca2d71d4b689f66518bf">magic_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="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="poll_8php.html#a26be9d4f230cb68f5be326198cfc6c77">poll_post()</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="classRedMatrix_1_1RedDAV_1_1RedBrowser.html#aa1607857cb59738c4dce2fe8e73d8f19">RedMatrix\RedDAV\RedBrowser\set_writeable()</a>, <a class="el" href="security_8php.html#a3ef2be6a7e4928e39d50059d6feb457c">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#a7b1e357b5a2027718470b77ec921fc65">widget_archive()</a>, <a class="el" href="widgets_8php.html#a0e2f5179ed1a73b282dfda7270fcabb3">widget_bookmarkedchats()</a>, <a class="el" href="widgets_8php.html#af919de8e7e2ba8192a65fadc72a2c8b5">widget_catcloud_wall()</a>, <a class="el" href="widgets_8php.html#af37fdad3b2e861d860a4a8c4d8a76c0b">widget_categories()</a>, <a class="el" href="widgets_8php.html#a313a8d10ab81c71357c12e67e4d7efd5">widget_item()</a>, <a class="el" href="widgets_8php.html#a702e2fc0adc9b615999eca18b7311b5e">widget_photo_albums()</a>, <a class="el" href="widgets_8php.html#a50b1410238100c8a94c06b0aa63ee3b8">widget_suggestedchats()</a>, <a class="el" href="widgets_8php.html#a0d404276fedc59f5038cf5c085028326">widget_suggestions()</a>, <a class="el" href="widgets_8php.html#ae4ced69d83dbdd9e6b51660d9eba8653">widget_tagcloud_wall()</a>, and <a class="el" href="include_2attach_8php.html#aeb07968990e66a88c95483ca09a7f909">z_readdir()</a>.</p>
</div>
</div>
@@ -1095,7 +1220,9 @@ Variables</h2></td></tr>
</table>
</div><div class="memdoc">
-<p>Referenced by <a class="el" href="Contact_8php.html#a5101d7eca5d6f387e5555f03fe249e33">account_remove()</a>, <a class="el" href="admin_8php.html#ad6f87a764fd35f522c7b4c351d7878ec">admin_page_channels()</a>, <a class="el" href="admin_8php.html#a42e628f367c168add8013352ac74d33f">admin_page_channels_post()</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#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#a3deba594ca1e11694eac1de0b724ef0a">admin_page_profs()</a>, <a class="el" href="admin_8php.html#a278289bc6d45f6f2a272a7ab6a1d1057">admin_page_profs_post()</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="appman_8php.html#a2979acbe47ffaecfa19b9eabfbfbde39">appman_post()</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#a4e8af0f0525161da74583c04b8b03097">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#a555762e1022a4b8e3c3abd32e7812408">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="filestorage_8php.html#ad3b64e3ece9831f9d3a9f00c0ae983cd">filestorage_post()</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="pdledit_8php.html#a81da3c955d0e3db55d148a31483104c7">pdledit_post()</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="rbmark_8php.html#a43fec4960b50926251574762cc491f76">rbmark_content()</a>, <a class="el" href="rbmark_8php.html#ac5a66aa8599fa5dc702bae396d8d1f8c">rbmark_post()</a>, <a class="el" href="register_8php.html#a51731dcc1917c58a790eb1c0f6132271">register_post()</a>, <a class="el" href="removeaccount_8php.html#a516e7380b9e5796054aa8245f3509695">removeaccount_content()</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="wfinger_8php.html#ae21e50c8d0a5f3c9be9f43a4e519acd3">wfinger_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>
+<p>Redirect to another URL and terminate this process. </p>
+
+<p>Referenced by <a class="el" href="Contact_8php.html#a5101d7eca5d6f387e5555f03fe249e33">account_remove()</a>, <a class="el" href="admin_8php.html#ad6f87a764fd35f522c7b4c351d7878ec">admin_page_channels()</a>, <a class="el" href="admin_8php.html#a42e628f367c168add8013352ac74d33f">admin_page_channels_post()</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#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#a3deba594ca1e11694eac1de0b724ef0a">admin_page_profs()</a>, <a class="el" href="admin_8php.html#a278289bc6d45f6f2a272a7ab6a1d1057">admin_page_profs_post()</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="appman_8php.html#a2979acbe47ffaecfa19b9eabfbfbde39">appman_post()</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#a4e8af0f0525161da74583c04b8b03097">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#a555762e1022a4b8e3c3abd32e7812408">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="filestorage_8php.html#ad3b64e3ece9831f9d3a9f00c0ae983cd">filestorage_post()</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="pdledit_8php.html#a81da3c955d0e3db55d148a31483104c7">pdledit_post()</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="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="rbmark_8php.html#a43fec4960b50926251574762cc491f76">rbmark_content()</a>, <a class="el" href="rbmark_8php.html#ac5a66aa8599fa5dc702bae396d8d1f8c">rbmark_post()</a>, <a class="el" href="register_8php.html#a51731dcc1917c58a790eb1c0f6132271">register_post()</a>, <a class="el" href="removeaccount_8php.html#a516e7380b9e5796054aa8245f3509695">removeaccount_content()</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="wfinger_8php.html#ae21e50c8d0a5f3c9be9f43a4e519acd3">wfinger_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>
@@ -1112,6 +1239,9 @@ Variables</h2></td></tr>
</table>
</div><div class="memdoc">
+<p>Get the pageicon. </p>
+<dl class="section return"><dt>Returns</dt><dd>string absolut path to pageicon </dd></dl>
+
</div>
</div>
<a class="anchor" id="a0e4701c9742c3ef88f02ac450a042a84"></a>
@@ -1128,6 +1258,14 @@ Variables</h2></td></tr>
</table>
</div><div class="memdoc">
+<p>Set a pageicon. </p>
+<dl class="params"><dt>Parameters</dt><dd>
+ <table class="params">
+ <tr><td class="paramtype">string</td><td class="paramname">$icon</td><td></td></tr>
+ </table>
+ </dd>
+</dl>
+
<p>Referenced by <a class="el" href="block_8php.html#a9b61c96044ed2a068f18c10370a78d5c">block_init()</a>, <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>
@@ -1145,8 +1283,15 @@ Variables</h2></td></tr>
</tr>
</table>
</div><div class="memdoc">
+<p>Contents of $s are displayed prominently on the page the next time a page is loaded. Usually used for information. For error and alerts use <a class="el" href="boot_8php.html#a9255af5ae9c887520091ea04763c1a88">notice()</a>.</p>
+<dl class="params"><dt>Parameters</dt><dd>
+ <table class="params">
+ <tr><td class="paramtype">string</td><td class="paramname">$s</td><td>Text to display </td></tr>
+ </table>
+ </dd>
+</dl>
-<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="appman_8php.html#a2979acbe47ffaecfa19b9eabfbfbde39">appman_post()</a>, <a class="el" href="mod_2bookmarks_8php.html#a6b7942f3d27e40f0f47c88704127b9b3">bookmarks_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#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="pdledit_8php.html#a81da3c955d0e3db55d148a31483104c7">pdledit_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="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>, <a class="el" href="account_8php.html#ad07be417ac7eda939768804106ddea3d">user_approve()</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="appman_8php.html#a2979acbe47ffaecfa19b9eabfbfbde39">appman_post()</a>, <a class="el" href="mod_2bookmarks_8php.html#a6b7942f3d27e40f0f47c88704127b9b3">bookmarks_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#a234c48426b652bf4d37053f2af329ac5">connedit_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="impel_8php.html#ab7db6fca43b42ea4332cb3e841b3cf7b">impel_init()</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="pdledit_8php.html#a81da3c955d0e3db55d148a31483104c7">pdledit_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="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#adfd4ea5b4d7fc6d9c9e042af5cd7d49a">tagrm_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>, <a class="el" href="account_8php.html#ad07be417ac7eda939768804106ddea3d">user_approve()</a>, and <a class="el" href="viewconnections_8php.html#ab6c4d983e97b3a8a879567ff76507776">viewconnections_content()</a>.</p>
</div>
</div>
@@ -1163,6 +1308,9 @@ Variables</h2></td></tr>
</table>
</div><div class="memdoc">
+<p>Function to check if request was an AJAX (xmlhttprequest) request. </p>
+<dl class="section return"><dt>Returns</dt><dd>boolean </dd></dl>
+
<p>Referenced by <a class="el" href="admin_8php.html#afef415e4011607fbb665610441595015">admin_content()</a>, <a class="el" href="admin_8php.html#acf51f5837a7427832144c2bf7308ada3">admin_post()</a>, <a class="el" href="mod_2photos_8php.html#a062bed4d04d14fee8a53f4c9be673080">photos_post()</a>, and <a class="el" href="viewsrc_8php.html#a6eff3d0c1d7d14b335c4edb785cd60a4">viewsrc_content()</a>.</p>
</div>
@@ -1180,7 +1328,11 @@ Variables</h2></td></tr>
</table>
</div><div class="memdoc">
-<p>Referenced by <a class="el" href="achievements_8php.html#a35ae04ada0e227d19671f289a32fb30e">achievements_content()</a>.</p>
+<p>Check if current user has developer role. </p>
+<p>Check if the current user has ACCOUNT_ROLE_DEVELOPER.</p>
+<dl class="section return"><dt>Returns</dt><dd>bool true if user is a developer </dd></dl>
+
+<p>Referenced by <a class="el" href="achievements_8php.html#a35ae04ada0e227d19671f289a32fb30e">achievements_content()</a>, and <a class="el" href="security_8php.html#a8d23d2597aae380a3341872fe9513380">change_channel()</a>.</p>
</div>
</div>
@@ -1197,7 +1349,11 @@ 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#acf51f5837a7427832144c2bf7308ada3">admin_post()</a>, <a class="el" href="include_2apps_8php.html#a1b2e737f477a2e0d9d11ef14adc5aa66">app_render()</a>, <a class="el" href="account_8php.html#a917d74aad0baf3e0c4b51cf1051e654f">check_account_admin()</a>, <a class="el" href="contact__widgets_8php.html#a57e73ebcfd62bb5d8c7a7b9e663726d6">findpeople_widget()</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="nav_8php.html#a43be0df73b90647ea70947ce004e231e">nav()</a>, <a class="el" href="include_2apps_8php.html#a32fe4ed9666228fd4b67dc487cc57a83">parse_app_description()</a>, <a class="el" href="ping_8php.html#a77217b1b190b4c5d8770867b45f0c0a1">ping_init()</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="thing_8php.html#a8be23b1d475ec3d9291999221c674c80">thing_init()</a>.</p>
+<p>Check if current user has admin role. </p>
+<p>Check if the current user has ACCOUNT_ROLE_ADMIN.</p>
+<dl class="section return"><dt>Returns</dt><dd>bool true if user is an admin </dd></dl>
+
+<p>Referenced by <a class="el" href="admin_8php.html#afef415e4011607fbb665610441595015">admin_content()</a>, <a class="el" href="admin_8php.html#acf51f5837a7427832144c2bf7308ada3">admin_post()</a>, <a class="el" href="include_2apps_8php.html#a1b2e737f477a2e0d9d11ef14adc5aa66">app_render()</a>, <a class="el" href="blocks_8php.html#a2531a8fd51db3cecb2eb20c002c66e12">blocks_content()</a>, <a class="el" href="blocks_8php.html#aebe88302181883d2b17d6e98a1aaebe9">blocks_init()</a>, <a class="el" href="security_8php.html#a8d23d2597aae380a3341872fe9513380">change_channel()</a>, <a class="el" href="account_8php.html#a917d74aad0baf3e0c4b51cf1051e654f">check_account_admin()</a>, <a class="el" href="text_8php.html#a87a3cefc603302c78982f1d8e1245265">design_tools()</a>, <a class="el" href="editblock_8php.html#abbe8f55de06967bc8d79d620509a49e6">editblock_content()</a>, <a class="el" href="editblock_8php.html#ab7806bb42ae5e93f0330d7bd179d4b3e">editblock_init()</a>, <a class="el" href="editlayout_8php.html#aa877e4157a26b099de904164181dd386">editlayout_content()</a>, <a class="el" href="editlayout_8php.html#a97c1e93d9e75ad8cd2c2f9a7f77341a7">editlayout_init()</a>, <a class="el" href="editwebpage_8php.html#a375e945255fad79a71036528f7480650">editwebpage_content()</a>, <a class="el" href="editwebpage_8php.html#a94109f9c796fbe92508bf9574e35d19f">editwebpage_init()</a>, <a class="el" href="contact__widgets_8php.html#a57e73ebcfd62bb5d8c7a7b9e663726d6">findpeople_widget()</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="layouts_8php.html#a39c8e9f72641c684c8b689bd91a642fa">layouts_init()</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#a9627cd857cafdf04e4fc0ae48c8e8518">mitem_init()</a>, <a class="el" href="mitem_8php.html#a6ee694cca4b551a20d7c7a94b5243ec1">mitem_post()</a>, <a class="el" href="nav_8php.html#a43be0df73b90647ea70947ce004e231e">nav()</a>, <a class="el" href="include_2apps_8php.html#a32fe4ed9666228fd4b67dc487cc57a83">parse_app_description()</a>, <a class="el" href="ping_8php.html#a77217b1b190b4c5d8770867b45f0c0a1">ping_init()</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="thing_8php.html#a8be23b1d475ec3d9291999221c674c80">thing_init()</a>, <a class="el" href="webpages_8php.html#af3b7397d4abc153e3d2147740ee1a41d">webpages_content()</a>, and <a class="el" href="webpages_8php.html#af9ad0b65eba79acead3fa32b43d888b7">webpages_init()</a>.</p>
</div>
</div>
@@ -1214,6 +1370,9 @@ Variables</h2></td></tr>
</table>
</div><div class="memdoc">
+<p>Checks if we are running on M$ Windows. </p>
+<dl class="section return"><dt>Returns</dt><dd>bool true if we run on M$ Windows </dd></dl>
+
<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>
@@ -1231,7 +1390,9 @@ 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="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="mod_2directory_8php.html#aac79396570d759da2efac24fcedf5b44">directory_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="hostxrd_8php.html#aa37ffc8e7900bc76c4828bd25916db92">hostxrd_init()</a>, <a class="el" href="include_2network_8php.html#a4cfb2c05a1c295317283d762440ce0b2">http_status_exit()</a>, <a class="el" href="importelm_8php.html#a1a4f71e6d76ace6add5e9659845f5e5f">importelm_post()</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="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="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="poll_8php.html#a3314c26bd2ac0ed831cebf3315cd3263">poll_content()</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="profiles_8php.html#a36f71405ad536228f8bb84a551b23f7e">profiles_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="regver_8php.html#ad2c5f644fd1b099abd7c715b7df6f50f">regver_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__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>Used to end the current process, after saving session state. </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#ad2e96e917852f27dedfc263d37e13756">cloud_init()</a>, <a class="el" href="connections_8php.html#aec2e457420fce3e3bf6a9f48e36df25c">connections_content()</a>, <a class="el" href="contactgroup_8php.html#a18c7391b1b25debaf98c9dba639caab3">contactgroup_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="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="hostxrd_8php.html#aa37ffc8e7900bc76c4828bd25916db92">hostxrd_init()</a>, <a class="el" href="include_2network_8php.html#a4cfb2c05a1c295317283d762440ce0b2">http_status_exit()</a>, <a class="el" href="importelm_8php.html#a1a4f71e6d76ace6add5e9659845f5e5f">importelm_post()</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="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="msearch_8php.html#ac80d2a6c0a92e79eec7efbbccd74d9a8">msearch_post()</a>, <a class="el" href="netgrowth_8php.html#a9b87bfc25a7cb11bc7f8e1fdd0310919">netgrowth_content()</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="p_8php.html#af9d5530ca0b3dc9409cf591c39e2480e">p_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#aa87382611a66ec5effdb2d78f13f5812">photos_content()</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="poll_8php.html#a3314c26bd2ac0ed831cebf3315cd3263">poll_content()</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="profiles_8php.html#a36f71405ad536228f8bb84a551b23f7e">profiles_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="regver_8php.html#ad2c5f644fd1b099abd7c715b7df6f50f">regver_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="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__display_8php.html#aa36ac524059e209d5d75a03c16206246">update_display_content()</a>, <a class="el" href="update__home_8php.html#a668340089acd150b830134476a647d05">update_home_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>
@@ -1253,6 +1414,33 @@ Variables</h2></td></tr>
</div>
</div>
+<a class="anchor" id="a50a6707a28c7d05d3f49eaabc7994501"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">load_pdl </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>Loads a page definition file for a module. </p>
+<p>If there is no parsed Comanche template already load a module's pdl file and parse it with Comanche.</p>
+<dl class="params"><dt>Parameters</dt><dd>
+ <table class="params">
+ <tr><td class="paramtype"><a class="el" href="classApp.html" title="Our main application structure for the life of this page.">App</a></td><td class="paramname">&amp;$a</td><td>global application object </td></tr>
+ </table>
+ </dd>
+</dl>
+
+<p>Referenced by <a class="el" href="classRedMatrix_1_1RedDAV_1_1RedBrowser.html#af764d5f14df751f9ec86c34fab300c09">RedMatrix\RedDAV\RedBrowser\generateDirectoryIndex()</a>.</p>
+
+</div>
+</div>
<a class="anchor" id="ad4c9dc2c8a82e8f52b7404c1655eab44"></a>
<div class="memitem">
<div class="memproto">
@@ -1266,7 +1454,11 @@ 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="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="include_2apps_8php.html#a1b2e737f477a2e0d9d11ef14adc5aa66">app_render()</a>, <a class="el" href="appman_8php.html#af48805ac2f6f123f2681a8ae1c6f123f">appman_content()</a>, <a class="el" href="appman_8php.html#a2979acbe47ffaecfa19b9eabfbfbde39">appman_post()</a>, <a class="el" href="mod_2apps_8php.html#a546016cb960d0b110ee8e489dfa6c27c">apps_content()</a>, <a class="el" href="view_2theme_2apw_2php_2config_8php.html#ad59fc09da66b66267f9753c8b2dd68d0">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#aa97b33b619dd7132a9274f852af6ceb5">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#a4e8af0f0525161da74583c04b8b03097">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="comanche_8php.html#aed39ecad69234f3ddf61f0dedb49a58e">comanche_get_channel_id()</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="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="text_8php.html#ad6432621d0fafcbcf3d3b9b49bef7784">contact_block()</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#a555762e1022a4b8e3c3abd32e7812408">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="classRedBrowser.html#a1f7daf50bb9bfcde7345b3b1908dbd7e">RedBrowser\generateDirectoryIndex()</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="hcard_8php.html#ac34f26b0e6a37eef44fa49bea135136d">hcard_init()</a>, <a class="el" href="home_8php.html#ac4642c38b6f23a8d065dd4a75c620bde">home_init()</a>, <a class="el" href="identity_8php.html#a2ab5172eabd375869060c9ad68323f5c">identity_selector()</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="identity_8php.html#a4e996e44b50330098a04b467367a559f">is_public_profile()</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="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="include_2apps_8php.html#a32fe4ed9666228fd4b67dc487cc57a83">parse_app_description()</a>, <a class="el" href="pdledit_8php.html#a59cb550f6b7a4e7d8196fbc9de601619">pdledit_content()</a>, <a class="el" href="pdledit_8php.html#a81da3c955d0e3db55d148a31483104c7">pdledit_post()</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="profile__photo_8php.html#a561103564199da56e58061a4196eb102">profile_photo_set_profile_perms()</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="rbmark_8php.html#a43fec4960b50926251574762cc491f76">rbmark_content()</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="removeaccount_8php.html#a516e7380b9e5796054aa8245f3509695">removeaccount_content()</a>, <a class="el" href="removeaccount_8php.html#a26a3325292e932c59793430ab737126a">removeaccount_post()</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="account_8php.html#a030cec6793b909c439c0336ba39b1571">service_class_allows()</a>, <a class="el" href="account_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#a6126c77a1267e046ac59cf864613f011">stream_perms_api_uids()</a>, <a class="el" href="security_8php.html#a3ef2be6a7e4928e39d50059d6feb457c">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#aced5cb177f630b30799c5eab873ee75c">widget_appselect()</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>
+<p>Returns the entity id (channel_id) of locally logged in user or false. </p>
+<p>Returns authenticated numeric channel_id if authenticated and connected to a channel or 0. Sometimes referred to as $uid in the code.</p>
+<dl class="section return"><dt>Returns</dt><dd>int|bool channel_id or false </dd></dl>
+
+<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="include_2apps_8php.html#a1b2e737f477a2e0d9d11ef14adc5aa66">app_render()</a>, <a class="el" href="appman_8php.html#af48805ac2f6f123f2681a8ae1c6f123f">appman_content()</a>, <a class="el" href="appman_8php.html#a2979acbe47ffaecfa19b9eabfbfbde39">appman_post()</a>, <a class="el" href="mod_2apps_8php.html#a546016cb960d0b110ee8e489dfa6c27c">apps_content()</a>, <a class="el" href="view_2theme_2apw_2php_2config_8php.html#ad59fc09da66b66267f9753c8b2dd68d0">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#aa97b33b619dd7132a9274f852af6ceb5">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#a4e8af0f0525161da74583c04b8b03097">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#ad2e96e917852f27dedfc263d37e13756">cloud_init()</a>, <a class="el" href="comanche_8php.html#aed39ecad69234f3ddf61f0dedb49a58e">comanche_get_channel_id()</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="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="text_8php.html#ad6432621d0fafcbcf3d3b9b49bef7784">contact_block()</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="mod_2directory_8php.html#a5ee59c213508b6b9787612a8219cb5bf">directory_init()</a>, <a class="el" href="display_8php.html#a37137c98d47bf3306f4c2bb9f5b60de0">display_content()</a>, <a class="el" href="items_8php.html#a555762e1022a4b8e3c3abd32e7812408">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="classRedMatrix_1_1RedDAV_1_1RedBrowser.html#af764d5f14df751f9ec86c34fab300c09">RedMatrix\RedDAV\RedBrowser\generateDirectoryIndex()</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="text_8php.html#aa22feef4de326e1d7078dedd892e615c">handle_tag()</a>, <a class="el" href="hcard_8php.html#ac34f26b0e6a37eef44fa49bea135136d">hcard_init()</a>, <a class="el" href="home_8php.html#a6e3dbf78f4ed74ab2577de221190b33f">home_content()</a>, <a class="el" href="home_8php.html#ac4642c38b6f23a8d065dd4a75c620bde">home_init()</a>, <a class="el" href="identity_8php.html#a2ab5172eabd375869060c9ad68323f5c">identity_selector()</a>, <a class="el" href="impel_8php.html#ab7db6fca43b42ea4332cb3e841b3cf7b">impel_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="identity_8php.html#a4e996e44b50330098a04b467367a559f">is_public_profile()</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="lockview_8php.html#a851e26ab9a1008df5c5ebebea31e9b44">lockview_content()</a>, <a class="el" href="locs_8php.html#a6c900f53970c0d0e738d2fe06d27ca44">locs_content()</a>, <a class="el" href="locs_8php.html#a6b43654592919ac863d67a1f787a69b9">locs_post()</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="include_2apps_8php.html#a32fe4ed9666228fd4b67dc487cc57a83">parse_app_description()</a>, <a class="el" href="pdledit_8php.html#a59cb550f6b7a4e7d8196fbc9de601619">pdledit_content()</a>, <a class="el" href="pdledit_8php.html#a81da3c955d0e3db55d148a31483104c7">pdledit_post()</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="profile__photo_8php.html#a561103564199da56e58061a4196eb102">profile_photo_set_profile_perms()</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="rbmark_8php.html#a43fec4960b50926251574762cc491f76">rbmark_content()</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="removeaccount_8php.html#a516e7380b9e5796054aa8245f3509695">removeaccount_content()</a>, <a class="el" href="removeaccount_8php.html#a26a3325292e932c59793430ab737126a">removeaccount_post()</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="include_2message_8php.html#a751ffd6635022b2190f56154ee745752">send_message()</a>, <a class="el" href="account_8php.html#a030cec6793b909c439c0336ba39b1571">service_class_allows()</a>, <a class="el" href="account_8php.html#a905b54e10704b283ac64680a8abc0971">service_class_fetch()</a>, <a class="el" href="service__limits_8php.html#a653424aac63c5cd05ba70c3c77bf7f8a">service_limits_content()</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#a6126c77a1267e046ac59cf864613f011">stream_perms_api_uids()</a>, <a class="el" href="security_8php.html#a3ef2be6a7e4928e39d50059d6feb457c">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#aced5cb177f630b30799c5eab873ee75c">widget_appselect()</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>
@@ -1300,7 +1492,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="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="rbmark_8php.html#a43fec4960b50926251574762cc491f76">rbmark_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#a6e3dbf78f4ed74ab2577de221190b33f">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="profile_8php.html#a3775cf6eef6587e5143133356a7b76c0">profile_content()</a>, <a class="el" href="rbmark_8php.html#a43fec4960b50926251574762cc491f76">rbmark_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>
@@ -1317,8 +1509,15 @@ Variables</h2></td></tr>
</tr>
</table>
</div><div class="memdoc">
+<p>Contents of $s are displayed prominently on the page the next time a page is loaded. Usually used for errors or alerts.</p>
+<dl class="params"><dt>Parameters</dt><dd>
+ <table class="params">
+ <tr><td class="paramtype">string</td><td class="paramname">$s</td><td>Text to display </td></tr>
+ </table>
+ </dd>
+</dl>
-<p>Referenced by <a class="el" href="Contact_8php.html#a5101d7eca5d6f387e5555f03fe249e33">account_remove()</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#ad6f87a764fd35f522c7b4c351d7878ec">admin_page_channels()</a>, <a class="el" href="admin_8php.html#a42e628f367c168add8013352ac74d33f">admin_page_channels_post()</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#a3deba594ca1e11694eac1de0b724ef0a">admin_page_profs()</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="appman_8php.html#af48805ac2f6f123f2681a8ae1c6f123f">appman_content()</a>, <a class="el" href="appman_8php.html#a2979acbe47ffaecfa19b9eabfbfbde39">appman_post()</a>, <a class="el" href="mod_2attach_8php.html#aa88eb5ad87aa1036a30e70339cc6c1b1">attach_init()</a>, <a class="el" href="block_8php.html#a8a82a470acdfbc7a8e749509caeeea45">block_content()</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="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="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#a555762e1022a4b8e3c3abd32e7812408">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="hcard_8php.html#ac34f26b0e6a37eef44fa49bea135136d">hcard_init()</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="importelm_8php.html#a1a4f71e6d76ace6add5e9659845f5e5f">importelm_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="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="pdledit_8php.html#a59cb550f6b7a4e7d8196fbc9de601619">pdledit_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="removeaccount_8php.html#a26a3325292e932c59793430ab737126a">removeaccount_post()</a>, <a class="el" href="removeme_8php.html#a7be08738beca44bb98a79e01cdb2ee88">removeme_post()</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="subthread_8php.html#a50368f3d825b77996030528e7fbfa3d3">subthread_content()</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>
+<p>Referenced by <a class="el" href="Contact_8php.html#a5101d7eca5d6f387e5555f03fe249e33">account_remove()</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#ad6f87a764fd35f522c7b4c351d7878ec">admin_page_channels()</a>, <a class="el" href="admin_8php.html#a42e628f367c168add8013352ac74d33f">admin_page_channels_post()</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#a3deba594ca1e11694eac1de0b724ef0a">admin_page_profs()</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="appman_8php.html#af48805ac2f6f123f2681a8ae1c6f123f">appman_content()</a>, <a class="el" href="appman_8php.html#a2979acbe47ffaecfa19b9eabfbfbde39">appman_post()</a>, <a class="el" href="mod_2attach_8php.html#aa88eb5ad87aa1036a30e70339cc6c1b1">attach_init()</a>, <a class="el" href="block_8php.html#a8a82a470acdfbc7a8e749509caeeea45">block_content()</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="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="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="display_8php.html#a37137c98d47bf3306f4c2bb9f5b60de0">display_content()</a>, <a class="el" href="items_8php.html#a555762e1022a4b8e3c3abd32e7812408">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="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="importelm_8php.html#a1a4f71e6d76ace6add5e9659845f5e5f">importelm_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="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="locs_8php.html#a6c900f53970c0d0e738d2fe06d27ca44">locs_content()</a>, <a class="el" href="locs_8php.html#a6b43654592919ac863d67a1f787a69b9">locs_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="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#a4d89800c0366a239191b1692c09635cf">page_init()</a>, <a class="el" href="pdledit_8php.html#a59cb550f6b7a4e7d8196fbc9de601619">pdledit_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="removeaccount_8php.html#a26a3325292e932c59793430ab737126a">removeaccount_post()</a>, <a class="el" href="removeme_8php.html#a7be08738beca44bb98a79e01cdb2ee88">removeme_post()</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="service__limits_8php.html#a653424aac63c5cd05ba70c3c77bf7f8a">service_limits_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="subthread_8php.html#a50368f3d825b77996030528e7fbfa3d3">subthread_content()</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>
@@ -1352,7 +1551,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="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>
+<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#ad2e96e917852f27dedfc263d37e13756">cloud_init()</a>.</p>
</div>
</div>
@@ -1374,7 +1573,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="admin_8php.html#a42e628f367c168add8013352ac74d33f">admin_page_channels_post()</a>, <a class="el" href="zot_8php.html#aa97b33b619dd7132a9274f852af6ceb5">build_sync_packet()</a>, <a class="el" href="Contact_8php.html#a4e8af0f0525161da74583c04b8b03097">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="diaspora_8php.html#a0fb2abe304aae19efc040a5e6b917829">diaspora_comment()</a>, <a class="el" href="diaspora_8php.html#a5d57518545baa31cf8a85a937a267681">diaspora_like()</a>, <a class="el" href="diaspora_8php.html#aa34d2748bb97e9e193cacd572f335055">diaspora_signed_retraction()</a>, <a class="el" href="diaspora_8php.html#aa704d6aa2ac77be345c0f501168e6e56">diaspora_transmit()</a>, <a class="el" href="include_2directory_8php.html#aa75d3b0697ca1456aaabdb37a74aa0f0">directory_run()</a>, <a class="el" href="items_8php.html#a555762e1022a4b8e3c3abd32e7812408">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="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#a4d9e6ca295e443b740d9960c304b3474">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#adf2b8137dc4ad9ec958de2842f16f3c2">start_delivery_chain()</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>
+<p>Referenced by <a class="el" href="admin_8php.html#ad6f87a764fd35f522c7b4c351d7878ec">admin_page_channels()</a>, <a class="el" href="admin_8php.html#a42e628f367c168add8013352ac74d33f">admin_page_channels_post()</a>, <a class="el" href="zot_8php.html#aa97b33b619dd7132a9274f852af6ceb5">build_sync_packet()</a>, <a class="el" href="Contact_8php.html#a4e8af0f0525161da74583c04b8b03097">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="diaspora_8php.html#a0fb2abe304aae19efc040a5e6b917829">diaspora_comment()</a>, <a class="el" href="diaspora_8php.html#a5d57518545baa31cf8a85a937a267681">diaspora_like()</a>, <a class="el" href="diaspora_8php.html#aa34d2748bb97e9e193cacd572f335055">diaspora_signed_retraction()</a>, <a class="el" href="diaspora_8php.html#aa704d6aa2ac77be345c0f501168e6e56">diaspora_transmit()</a>, <a class="el" href="include_2directory_8php.html#aa75d3b0697ca1456aaabdb37a74aa0f0">directory_run()</a>, <a class="el" href="items_8php.html#a555762e1022a4b8e3c3abd32e7812408">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="item_8php.html#a693cd09805755ab85bbb5ecae69a48c3">item_post()</a>, <a class="el" href="like_8php.html#a9d7dd268f21c21e9d29dd2aca2dd9538">like_content()</a>, <a class="el" href="locs_8php.html#a6b43654592919ac863d67a1f787a69b9">locs_post()</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#a0e3006e7a456b2175a9badc96bc5176d">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="hubloc_8php.html#a84c79b7be352f62d12fe4fa2c80fc6ea">remove_obsolete_hublocs()</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#adf2b8137dc4ad9ec958de2842f16f3c2">start_delivery_chain()</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>, <a class="el" href="zot_8php.html#a3920afe14fc1d82020161b4b86bcd9ac">zot_process_message_request()</a>, and <a class="el" href="zot_8php.html#a7ac30ff51274bf0b6d3eade37972145c">zot_refresh()</a>.</p>
</div>
</div>
@@ -1391,7 +1590,10 @@ Variables</h2></td></tr>
</table>
</div><div class="memdoc">
-<p>Referenced by <a class="el" href="include_2apps_8php.html#a1b2e737f477a2e0d9d11ef14adc5aa66">app_render()</a>, <a class="el" href="channel_8php.html#a9c6a6179e0e626398ebecc6151905ef1">channel_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>
+<p>Returns contact id (visitor_id) of authenticated site visitor or false. </p>
+<dl class="section return"><dt>Returns</dt><dd>int|bool visitor_id or false </dd></dl>
+
+<p>Referenced by <a class="el" href="include_2apps_8php.html#a1b2e737f477a2e0d9d11ef14adc5aa66">app_render()</a>, <a class="el" href="channel_8php.html#a9c6a6179e0e626398ebecc6151905ef1">channel_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#a668ece2c37f05cc3abe538eb0dabfe55">drop_items()</a>, <a class="el" href="identity_8php.html#a332df795f684788002f5a6424abacfd7">get_online_status()</a>, <a class="el" href="home_8php.html#a6e3dbf78f4ed74ab2577de221190b33f">home_content()</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>
@@ -1428,7 +1630,7 @@ Variables</h2></td></tr>
</div>
</div>
-<a class="anchor" id="a01353c9abebc3544ea080ac161729632"></a>
+<a class="anchor" id="ae97836b0547953be182a2334c9c91d3c"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
@@ -1442,7 +1644,7 @@ Variables</h2></td></tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">&#160;</td>
- <td class="paramname"><em>$k</em> = <code>NULL</code>&#160;</td>
+ <td class="paramname"><em>$k</em> = <code>null</code>&#160;</td>
</tr>
<tr>
<td></td>
@@ -1452,7 +1654,19 @@ 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#a42e628f367c168add8013352ac74d33f">admin_page_channels_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#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_2apps_8php.html#a15626f24069c18816f7cdaf4735f58f9">app_store()</a>, <a class="el" href="include_2apps_8php.html#aeab6a62d2f3dfaa86ed043a006305f46">app_update()</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="include_2bookmarks_8php.html#aef1cb2968c41c759f2d106e1088ca323">bookmark_add()</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="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#adc26e08aa61f5666da04ab5d2a9d68a6">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="boot_8php.html#a926cad0b3d8b9d9ee5da1898fc063ba3">current_theme_url()</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="diaspora_8php.html#a006731620a5242d410358b32678e48e3">diaspora_asphoto()</a>, <a class="el" href="diaspora_8php.html#adef30b6fac948baedcc7194d5d155b5f">diaspora_conversation()</a>, <a class="el" href="diaspora_8php.html#a5d57518545baa31cf8a85a937a267681">diaspora_like()</a>, <a class="el" href="diaspora_8php.html#a7cff2f8f11044c1b3a360f20e1bbee46">diaspora_message()</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="include_2network_8php.html#a5176176ddc1906d91f186df6fbd87b48">discover_by_url()</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="event_8php.html#ac9f206819186b65952ac1869f0da8c6e">event_addtocal()</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#a5e5be7bf1f8257dec0b2647e60a3f3f1">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#a528e97ca5d69c3b7f35c5d954afde315">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="mod_2probe_8php.html#a1f1db3fa6038e451e737964c94bf5e99">probe_content()</a>, <a class="el" href="boot_8php.html#ab346a2ece14993861f3e4206befa94f0">proc_run()</a>, <a class="el" href="profile__photo_8php.html#a4b80234074bd603221aa5364f330e479">profile_photo_post()</a>, <a class="el" href="profile__photo_8php.html#a561103564199da56e58061a4196eb102">profile_photo_set_profile_perms()</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="rbmark_8php.html#a43fec4960b50926251574762cc491f76">rbmark_content()</a>, <a class="el" href="rbmark_8php.html#ac5a66aa8599fa5dc702bae396d8d1f8c">rbmark_post()</a>, <a class="el" href="include_2api_8php.html#aafa82b65a9f879a1a1197cfe8aaf3898">red_item_new()</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="removeaccount_8php.html#a26a3325292e932c59793430ab737126a">removeaccount_post()</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="include_2network_8php.html#a316f318167a039c89719afbd129a8f3c">scrape_feed()</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="account_8php.html#a030cec6793b909c439c0336ba39b1571">service_class_allows()</a>, <a class="el" href="account_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#ac6ae482ee54fa2764d5c2e77305aeb96">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#a686bcafa6b0d5c86d37b38a1db5b6997">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>
+<p>Multi-purpose function to check variable state. </p>
+<p>Usage: x($var) or $x($array, 'key')</p>
+<p>returns false if variable/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;</p>
+<dl class="params"><dt>Parameters</dt><dd>
+ <table class="params">
+ <tr><td class="paramtype">string&#160;|&#160;array</td><td class="paramname">$s</td><td>variable to check </td></tr>
+ <tr><td class="paramtype">string</td><td class="paramname">$k</td><td>key inside the array to check</td></tr>
+ </table>
+ </dd>
+</dl>
+<dl class="section return"><dt>Returns</dt><dd>bool|int </dd></dl>
+
+<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="account_8php.html#a4328c40ee4b3d68630cf1ebb7b9d4d89">account_service_class_fetch()</a>, <a class="el" href="acl_8php.html#ac6776dba871806ecdb5d1659bc2eb07a">acl_init()</a>, <a class="el" href="admin_8php.html#a42e628f367c168add8013352ac74d33f">admin_page_channels_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#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_2apps_8php.html#a15626f24069c18816f7cdaf4735f58f9">app_store()</a>, <a class="el" href="include_2apps_8php.html#aeab6a62d2f3dfaa86ed043a006305f46">app_update()</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="include_2bookmarks_8php.html#aef1cb2968c41c759f2d106e1088ca323">bookmark_add()</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="cli__startup_8php.html#adfdde63686e33ccd4851fa5edc4fc70b">cli_startup()</a>, <a class="el" href="cloud_8php.html#ad2e96e917852f27dedfc263d37e13756">cloud_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="boot_8php.html#acc4e0c910af066148b810e5fde55fff1">construct_page()</a>, <a class="el" href="items_8php.html#adc26e08aa61f5666da04ab5d2a9d68a6">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="boot_8php.html#a926cad0b3d8b9d9ee5da1898fc063ba3">current_theme_url()</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="diaspora_8php.html#a006731620a5242d410358b32678e48e3">diaspora_asphoto()</a>, <a class="el" href="diaspora_8php.html#adef30b6fac948baedcc7194d5d155b5f">diaspora_conversation()</a>, <a class="el" href="diaspora_8php.html#a7cff2f8f11044c1b3a360f20e1bbee46">diaspora_message()</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="mod_2directory_8php.html#a5ee59c213508b6b9787612a8219cb5bf">directory_init()</a>, <a class="el" href="dirsearch_8php.html#aa1fb04e1de4f25b63349ac78f94ceb4c">dirsearch_content()</a>, <a class="el" href="include_2network_8php.html#a5176176ddc1906d91f186df6fbd87b48">discover_by_url()</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="event_8php.html#ac9f206819186b65952ac1869f0da8c6e">event_addtocal()</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#a5e5be7bf1f8257dec0b2647e60a3f3f1">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#a6e3dbf78f4ed74ab2577de221190b33f">home_content()</a>, <a class="el" href="import_8php.html#af17fef0410518f7eac205d0ea416eaa2">import_post()</a>, <a class="el" href="zot_8php.html#a528e97ca5d69c3b7f35c5d954afde315">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="mod_2probe_8php.html#a1f1db3fa6038e451e737964c94bf5e99">probe_content()</a>, <a class="el" href="boot_8php.html#ab346a2ece14993861f3e4206befa94f0">proc_run()</a>, <a class="el" href="profile__photo_8php.html#a4b80234074bd603221aa5364f330e479">profile_photo_post()</a>, <a class="el" href="profile__photo_8php.html#a561103564199da56e58061a4196eb102">profile_photo_set_profile_perms()</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="rbmark_8php.html#a43fec4960b50926251574762cc491f76">rbmark_content()</a>, <a class="el" href="rbmark_8php.html#ac5a66aa8599fa5dc702bae396d8d1f8c">rbmark_post()</a>, <a class="el" href="include_2api_8php.html#aafa82b65a9f879a1a1197cfe8aaf3898">red_item_new()</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="removeaccount_8php.html#a26a3325292e932c59793430ab737126a">removeaccount_post()</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="include_2network_8php.html#a316f318167a039c89719afbd129a8f3c">scrape_feed()</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="account_8php.html#a030cec6793b909c439c0336ba39b1571">service_class_allows()</a>, <a class="el" href="account_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="suggest_8php.html#a696acf1dd8070e479adcc80c63c6718c">suggest_init()</a>, <a class="el" href="language_8php.html#ac6ae482ee54fa2764d5c2e77305aeb96">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#a686bcafa6b0d5c86d37b38a1db5b6997">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>
@@ -1486,7 +1700,11 @@ 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#a3deba594ca1e11694eac1de0b724ef0a">admin_page_profs()</a>, <a class="el" href="admin_8php.html#a278289bc6d45f6f2a272a7ab6a1d1057">admin_page_profs_post()</a>, <a class="el" href="zot_8php.html#a703f528ade8382cf374e4119bd6f7859">allowed_public_recips()</a>, <a class="el" href="include_2apps_8php.html#a1b2e737f477a2e0d9d11ef14adc5aa66">app_render()</a>, <a class="el" href="include_2apps_8php.html#a15626f24069c18816f7cdaf4735f58f9">app_store()</a>, <a class="el" href="include_2apps_8php.html#aeab6a62d2f3dfaa86ed043a006305f46">app_update()</a>, <a class="el" href="appman_8php.html#a2979acbe47ffaecfa19b9eabfbfbde39">appman_post()</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#a4e8af0f0525161da74583c04b8b03097">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="connections_8php.html#a1224058db8e3fb56463eb312f98e561d">connections_post()</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="diaspora_8php.html#a0fb2abe304aae19efc040a5e6b917829">diaspora_comment()</a>, <a class="el" href="diaspora_8php.html#a20b968d64ef26afe5cb0cc75a7570a31">diaspora_post()</a>, <a class="el" href="diaspora_8php.html#ac1ab782a34552a7c6b4dc961754ed598">diaspora_request()</a>, <a class="el" href="diaspora_8php.html#a2bf43f6b5890897f425ef4325d34b007">diaspora_reshare()</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="include_2network_8php.html#a5176176ddc1906d91f186df6fbd87b48">discover_by_url()</a>, <a class="el" href="include_2network_8php.html#a63e62946e194928eb17c5a9f2bbef0fe">discover_by_webbie()</a>, <a class="el" href="display_8php.html#a37137c98d47bf3306f4c2bb9f5b60de0">display_content()</a>, <a class="el" href="event_8php.html#a7378e839ac3de9d55579eb3ec48eaf92">event_store_item()</a>, <a class="el" href="externals_8php.html#a4df44079e6f915286088b7a0d44db926">externals_run()</a>, <a class="el" href="filestorage_8php.html#a61bb1be78472555df4ce619f51014040">filestorage_content()</a>, <a class="el" href="dir__fns_8php.html#a8c15aa69da12f2d3476b9e93b82b337d">find_upstream_directory()</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="include_2attach_8php.html#a1d72ef7cb940f6868e3e2a841cadfe8f">get_parent_cloudpath()</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#a528e97ca5d69c3b7f35c5d954afde315">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="like_8php.html#a9d7dd268f21c21e9d29dd2aca2dd9538">like_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="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#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="page__widgets_8php.html#a39d547771c5f12a17c097436c82f0fa2">pagelist_widget()</a>, <a class="el" href="include_2apps_8php.html#a32fe4ed9666228fd4b67dc487cc57a83">parse_app_description()</a>, <a class="el" href="pdledit_8php.html#a81da3c955d0e3db55d148a31483104c7">pdledit_post()</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="poll_8php.html#a3314c26bd2ac0ed831cebf3315cd3263">poll_content()</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="rbmark_8php.html#a43fec4960b50926251574762cc491f76">rbmark_content()</a>, <a class="el" href="rbmark_8php.html#ac5a66aa8599fa5dc702bae396d8d1f8c">rbmark_post()</a>, <a class="el" href="register_8php.html#a51731dcc1917c58a790eb1c0f6132271">register_post()</a>, <a class="el" href="removeaccount_8php.html#a516e7380b9e5796054aa8245f3509695">removeaccount_content()</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="account_8php.html#acd6b8d2124ba5ea4f4794d2c58ae8bf5">verify_email_address()</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>, <a class="el" href="zot_8php.html#ab22d67660702056bf3f4696dcebf5ce7">zot_new_uid()</a>, and <a class="el" href="zot_8php.html#a7ac30ff51274bf0b6d3eade37972145c">zot_refresh()</a>.</p>
+<p>Returns the baseurl. </p>
+<dl class="section see"><dt>See Also</dt><dd><a class="el" href="classApp.html#a604d659d6977a99de42a160343e5289a">App::get_baseurl()</a></dd></dl>
+<dl class="section return"><dt>Returns</dt><dd>string </dd></dl>
+
+<p>Referenced by <a class="el" href="admin_8php.html#afef415e4011607fbb665610441595015">admin_content()</a>, <a class="el" href="admin_8php.html#a3deba594ca1e11694eac1de0b724ef0a">admin_page_profs()</a>, <a class="el" href="admin_8php.html#a278289bc6d45f6f2a272a7ab6a1d1057">admin_page_profs_post()</a>, <a class="el" href="zot_8php.html#a703f528ade8382cf374e4119bd6f7859">allowed_public_recips()</a>, <a class="el" href="include_2apps_8php.html#a1b2e737f477a2e0d9d11ef14adc5aa66">app_render()</a>, <a class="el" href="include_2apps_8php.html#a15626f24069c18816f7cdaf4735f58f9">app_store()</a>, <a class="el" href="include_2apps_8php.html#aeab6a62d2f3dfaa86ed043a006305f46">app_update()</a>, <a class="el" href="appman_8php.html#a2979acbe47ffaecfa19b9eabfbfbde39">appman_post()</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#a4e8af0f0525161da74583c04b8b03097">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="connections_8php.html#a1224058db8e3fb56463eb312f98e561d">connections_post()</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="diaspora_8php.html#a0fb2abe304aae19efc040a5e6b917829">diaspora_comment()</a>, <a class="el" href="diaspora_8php.html#a5d57518545baa31cf8a85a937a267681">diaspora_like()</a>, <a class="el" href="diaspora_8php.html#a20b968d64ef26afe5cb0cc75a7570a31">diaspora_post()</a>, <a class="el" href="diaspora_8php.html#ac1ab782a34552a7c6b4dc961754ed598">diaspora_request()</a>, <a class="el" href="diaspora_8php.html#a2bf43f6b5890897f425ef4325d34b007">diaspora_reshare()</a>, <a class="el" href="mod_2directory_8php.html#aac79396570d759da2efac24fcedf5b44">directory_content()</a>, <a class="el" href="include_2network_8php.html#a5176176ddc1906d91f186df6fbd87b48">discover_by_url()</a>, <a class="el" href="include_2network_8php.html#a63e62946e194928eb17c5a9f2bbef0fe">discover_by_webbie()</a>, <a class="el" href="display_8php.html#a37137c98d47bf3306f4c2bb9f5b60de0">display_content()</a>, <a class="el" href="event_8php.html#a7378e839ac3de9d55579eb3ec48eaf92">event_store_item()</a>, <a class="el" href="externals_8php.html#a4df44079e6f915286088b7a0d44db926">externals_run()</a>, <a class="el" href="filestorage_8php.html#a61bb1be78472555df4ce619f51014040">filestorage_content()</a>, <a class="el" href="dir__fns_8php.html#a8c15aa69da12f2d3476b9e93b82b337d">find_upstream_directory()</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="include_2attach_8php.html#a1d72ef7cb940f6868e3e2a841cadfe8f">get_parent_cloudpath()</a>, <a class="el" href="classItem.html#ad5dcbe0b94cb2d5719bc5b6bd8ad60c8">Item\get_template_data()</a>, <a class="el" href="classRedMatrix_1_1RedDAV_1_1RedBrowser.html#acaa792c08d24e9dc2919759e92ba037d">RedMatrix\RedDAV\RedBrowser\getAssetUrl()</a>, <a class="el" href="mod_2group_8php.html#aed1f009b1221348021bb34761160ef35">group_post()</a>, <a class="el" href="text_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#a6e3dbf78f4ed74ab2577de221190b33f">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="import_8php.html#af17fef0410518f7eac205d0ea416eaa2">import_post()</a>, <a class="el" href="zot_8php.html#a528e97ca5d69c3b7f35c5d954afde315">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="like_8php.html#a9d7dd268f21c21e9d29dd2aca2dd9538">like_content()</a>, <a class="el" href="locs_8php.html#a6b43654592919ac863d67a1f787a69b9">locs_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="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="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#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_2oembed_8php.html#a9e57f3e36a0a0a47e6db79544b701d9a">oembed_iframe()</a>, <a class="el" href="openid_8php.html#a9a13827dbcf61ae4e45f0b6b33a88f43">openid_content()</a>, <a class="el" href="page__widgets_8php.html#a39d547771c5f12a17c097436c82f0fa2">pagelist_widget()</a>, <a class="el" href="include_2apps_8php.html#a32fe4ed9666228fd4b67dc487cc57a83">parse_app_description()</a>, <a class="el" href="pdledit_8php.html#a81da3c955d0e3db55d148a31483104c7">pdledit_post()</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="poll_8php.html#a3314c26bd2ac0ed831cebf3315cd3263">poll_content()</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="rbmark_8php.html#a43fec4960b50926251574762cc491f76">rbmark_content()</a>, <a class="el" href="rbmark_8php.html#ac5a66aa8599fa5dc702bae396d8d1f8c">rbmark_post()</a>, <a class="el" href="refimport_8php.html#a53434bc19e6264db89e18d92ddc09860">reflect_article_callback()</a>, <a class="el" href="refimport_8php.html#a01a29630fa5e1ce6cd5e1fd75280747c">reflect_comment_store()</a>, <a class="el" href="refimport_8php.html#ae9c56f779d1e0ac7bcb2a460129e7ae5">reflect_photo_callback()</a>, <a class="el" href="register_8php.html#a51731dcc1917c58a790eb1c0f6132271">register_post()</a>, <a class="el" href="hubloc_8php.html#a84c79b7be352f62d12fe4fa2c80fc6ea">remove_obsolete_hublocs()</a>, <a class="el" href="removeaccount_8php.html#a516e7380b9e5796054aa8245f3509695">removeaccount_content()</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="account_8php.html#acd6b8d2124ba5ea4f4794d2c58ae8bf5">verify_email_address()</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="hubloc_8php.html#acb708dd197aae72a4858cf5ff4e3195b">xchan_store()</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#a084c581d534e7e3b759488b46602288f">zot_build_packet()</a>, <a class="el" href="zot_8php.html#a61cdc1ec843663c423ed2d8160ae5aea">zot_fetch()</a>, <a class="el" href="zot_8php.html#ab22d67660702056bf3f4696dcebf5ce7">zot_new_uid()</a>, and <a class="el" href="zot_8php.html#a7ac30ff51274bf0b6d3eade37972145c">zot_refresh()</a>.</p>
</div>
</div>
@@ -1504,10 +1722,9 @@ Variables</h2></td></tr>
<div class="line"> <span class="stringliteral">&#39;https://zothub.com&#39;</span>, </div>
<div class="line"> <span class="stringliteral">&#39;https://zotid.net&#39;</span>, </div>
<div class="line"> <span class="stringliteral">&#39;https://redmatrix.nl&#39;</span>, </div>
-<div class="line"> <span class="stringliteral">&#39;https://whogotzot.com&#39;</span>, </div>
-<div class="line"> <span class="stringliteral">&#39;https://red.mariovavti.com&#39;</span>,</div>
<div class="line"> <span class="stringliteral">&#39;https://red.zottel.red&#39;</span>,</div>
-<div class="line"> <span class="stringliteral">&#39;https://red.pixelbits.de&#39;</span></div>
+<div class="line"> <span class="stringliteral">&#39;https://red.pixelbits.de&#39;</span>,</div>
+<div class="line"> <span class="stringliteral">&#39;https://whogotzot.com&#39;</span></div>
<div class="line">)</div>
</div><!-- fragment -->
<p>Referenced by <a class="el" href="dir__fns_8php.html#a8c15aa69da12f2d3476b9e93b82b337d">find_upstream_directory()</a>.</p>
@@ -1538,7 +1755,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="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="onepoll_8php.html#a72753b2fdec79b37c7f432035c91fb6d">onepoll_run()</a>, and <a class="el" href="permissions_8php.html#a67ada9ed51e77885b6b0f6a28cee1835">perm_is_allowed()</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="home_8php.html#a6e3dbf78f4ed74ab2577de221190b33f">home_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>, <a class="el" href="onepoll_8php.html#a72753b2fdec79b37c7f432035c91fb6d">onepoll_run()</a>, and <a class="el" href="permissions_8php.html#a67ada9ed51e77885b6b0f6a28cee1835">perm_is_allowed()</a>.</p>
</div>
</div>
@@ -1552,7 +1769,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="include_2follow_8php.html#ae387d4ae097c23d69f3247e7f08140c7">new_contact()</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="items_8php.html#a87ac9e359591721a824ecd23bbb56296">check_item_source()</a>, <a class="el" href="import_8php.html#af17fef0410518f7eac205d0ea416eaa2">import_post()</a>, <a class="el" href="include_2follow_8php.html#ae387d4ae097c23d69f3247e7f08140c7">new_contact()</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="zot_8php.html#ac301c67864917c35922257950ae0f95c">process_channel_sync_delivery()</a>.</p>
</div>
</div>
@@ -1580,7 +1797,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="connedit_8php.html#a795acb3d9d841f55c255d7611681ab67">connedit_content()</a>, <a class="el" href="permissions_8php.html#aeca9b280f3dc3358c89976d81d690008">get_all_perms()</a>, <a class="el" href="manage_8php.html#a2bca247b5296827638959138367db4f5">manage_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>, and <a class="el" href="ping_8php.html#a77217b1b190b4c5d8770867b45f0c0a1">ping_init()</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>, <a class="el" href="manage_8php.html#a2bca247b5296827638959138367db4f5">manage_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="poller_8php.html#a5f12df3a4738124b6c039971e87e76da">poller_run()</a>.</p>
</div>
</div>
@@ -1608,7 +1825,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#a4e8af0f0525161da74583c04b8b03097">channel_remove()</a>, <a class="el" href="items_8php.html#a772f0ae77ad77c8ab68ed918a3870946">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="text_8php.html#ad6432621d0fafcbcf3d3b9b49bef7784">contact_block()</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="diaspora_8php.html#ac1ab782a34552a7c6b4dc961754ed598">diaspora_request()</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="manage_8php.html#a2bca247b5296827638959138367db4f5">manage_content()</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="zot_8php.html#ac301c67864917c35922257950ae0f95c">process_channel_sync_delivery()</a>, <a class="el" href="viewconnections_8php.html#ab6c4d983e97b3a8a879567ff76507776">viewconnections_content()</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>
+<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#a4e8af0f0525161da74583c04b8b03097">channel_remove()</a>, <a class="el" href="items_8php.html#a772f0ae77ad77c8ab68ed918a3870946">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="text_8php.html#ad6432621d0fafcbcf3d3b9b49bef7784">contact_block()</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="identity_8php.html#a293f416ce9050220b183e08ff5890216">get_channel_default_perms()</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="manage_8php.html#a2bca247b5296827638959138367db4f5">manage_content()</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="poller_8php.html#a5f12df3a4738124b6c039971e87e76da">poller_run()</a>, <a class="el" href="zot_8php.html#ac301c67864917c35922257950ae0f95c">process_channel_sync_delivery()</a>, <a class="el" href="settings_8php.html#aa7ee94d88ac088edb04ccf3a26de3586">settings_post()</a>, <a class="el" href="viewconnections_8php.html#ab6c4d983e97b3a8a879567ff76507776">viewconnections_content()</a>, <a class="el" href="widgets_8php.html#ad1bf7aa69e8d100d95faba17c7bc91cd">widget_follow()</a>, <a class="el" href="widgets_8php.html#aaa73bcf1702eaadd9dcd253502f55e01">widget_settings_menu()</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>
@@ -1693,7 +1910,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="register_8php.html#a51731dcc1917c58a790eb1c0f6132271">register_post()</a>, <a class="el" href="account_8php.html#ac5c570a2d46446bad4dd2501e9c5a4b1">user_allow()</a>, and <a class="el" href="account_8php.html#ad07be417ac7eda939768804106ddea3d">user_approve()</a>.</p>
+<p>Referenced by <a class="el" href="auth_8php.html#a07bae0e623e2daa9ee2cd5a8aa294dee">account_verify_password()</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="register_8php.html#a51731dcc1917c58a790eb1c0f6132271">register_post()</a>, <a class="el" href="account_8php.html#ac5c570a2d46446bad4dd2501e9c5a4b1">user_allow()</a>, and <a class="el" href="account_8php.html#ad07be417ac7eda939768804106ddea3d">user_approve()</a>.</p>
</div>
</div>
@@ -1707,7 +1924,7 @@ Variables</h2></td></tr>
</table>
</div><div class="memdoc">
-<p>Referenced by <a class="el" href="account_8php.html#a0d183a3cb4c67a0f5e906811df7a1fc9">downgrade_accounts()</a>.</p>
+<p>Referenced by <a class="el" href="auth_8php.html#a07bae0e623e2daa9ee2cd5a8aa294dee">account_verify_password()</a>, and <a class="el" href="account_8php.html#a0d183a3cb4c67a0f5e906811df7a1fc9">downgrade_accounts()</a>.</p>
</div>
</div>
@@ -1722,7 +1939,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="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>
+<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>, <a class="el" href="register_8php.html#a51731dcc1917c58a790eb1c0f6132271">register_post()</a>, and <a class="el" href="classRedMatrix_1_1RedDAV_1_1RedBasicAuth.html#a6ece02655b780469e59e204c5979a624">RedMatrix\RedDAV\RedBasicAuth\validateUserPass()</a>.</p>
</div>
</div>
@@ -1736,7 +1953,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="ping_8php.html#a77217b1b190b4c5d8770867b45f0c0a1">ping_init()</a>, <a class="el" href="register_8php.html#a51731dcc1917c58a790eb1c0f6132271">register_post()</a>, <a class="el" href="account_8php.html#ac5c570a2d46446bad4dd2501e9c5a4b1">user_allow()</a>, and <a class="el" href="account_8php.html#ad07be417ac7eda939768804106ddea3d">user_approve()</a>.</p>
+<p>Referenced by <a class="el" href="auth_8php.html#a07bae0e623e2daa9ee2cd5a8aa294dee">account_verify_password()</a>, <a class="el" href="admin_8php.html#a62f10f90c47686c9c3c37c4c03a108d2">admin_page_users()</a>, <a class="el" href="ping_8php.html#a77217b1b190b4c5d8770867b45f0c0a1">ping_init()</a>, <a class="el" href="register_8php.html#a51731dcc1917c58a790eb1c0f6132271">register_post()</a>, <a class="el" href="account_8php.html#ac5c570a2d46446bad4dd2501e9c5a4b1">user_allow()</a>, and <a class="el" href="account_8php.html#ad07be417ac7eda939768804106ddea3d">user_approve()</a>.</p>
</div>
</div>
@@ -1750,6 +1967,8 @@ Variables</h2></td></tr>
</table>
</div><div class="memdoc">
+<p>Referenced by <a class="el" href="auth_8php.html#a07bae0e623e2daa9ee2cd5a8aa294dee">account_verify_password()</a>.</p>
+
</div>
</div>
<a class="anchor" id="ac8400313df2c831653f9036f71ebd86d"></a>
@@ -1777,7 +1996,7 @@ Variables</h2></td></tr>
</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>
+<p>Referenced by <a class="el" href="impel_8php.html#ab7db6fca43b42ea4332cb3e841b3cf7b">impel_init()</a>, <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>
@@ -1817,7 +2036,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="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>, <a class="el" href="account_8php.html#ad07be417ac7eda939768804106ddea3d">user_approve()</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>, <a class="el" href="account_8php.html#ad07be417ac7eda939768804106ddea3d">user_approve()</a>, and <a class="el" href="classRedMatrix_1_1RedDAV_1_1RedBasicAuth.html#a6ece02655b780469e59e204c5979a624">RedMatrix\RedDAV\RedBasicAuth\validateUserPass()</a>.</p>
</div>
</div>
@@ -1831,7 +2050,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="conversation_8php.html#affea1afb3f32ca41e966c8ddb4204d81">conversation()</a>, <a class="el" href="diaspora_8php.html#a131abd521b218d6ae6f7d2917d8b2605">diaspora_process_outbound()</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>
+<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="channel_8php.html#a9c6a6179e0e626398ebecc6151905ef1">channel_content()</a>, <a class="el" href="conversation_8php.html#affea1afb3f32ca41e966c8ddb4204d81">conversation()</a>, <a class="el" href="diaspora_8php.html#af4698b165766f83d89ec1ea964bc92cc">diaspora_send_followup()</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="mod_2network_8php.html#a43f2f29b90c5e29072c561934bc8f8b4">network_content()</a>, and <a class="el" href="conversation_8php.html#a7eeaaf44506815576f3bd80053ef52c3">visible_activity()</a>.</p>
</div>
</div>
@@ -1898,7 +2117,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="identity_8php.html#aa870d2c1f558cfd52bef05bc124e8fa4">advanced_profile()</a>, <a class="el" href="conversation_8php.html#affea1afb3f32ca41e966c8ddb4204d81">conversation()</a>, <a class="el" href="diaspora_8php.html#a5d57518545baa31cf8a85a937a267681">diaspora_like()</a>, <a class="el" href="diaspora_8php.html#af4698b165766f83d89ec1ea964bc92cc">diaspora_send_followup()</a>, <a class="el" href="diaspora_8php.html#a0b3628a5e53332c3d3196b689fe2b94d">diaspora_send_relay()</a>, <a class="el" href="diaspora_8php.html#a1704748aa2384c73e43f10e71defd31a">diaspora_send_retraction()</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>
+<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="identity_8php.html#aa870d2c1f558cfd52bef05bc124e8fa4">advanced_profile()</a>, <a class="el" href="channel_8php.html#a9c6a6179e0e626398ebecc6151905ef1">channel_content()</a>, <a class="el" href="conversation_8php.html#affea1afb3f32ca41e966c8ddb4204d81">conversation()</a>, <a class="el" href="diaspora_8php.html#a5d57518545baa31cf8a85a937a267681">diaspora_like()</a>, <a class="el" href="diaspora_8php.html#af4698b165766f83d89ec1ea964bc92cc">diaspora_send_followup()</a>, <a class="el" href="diaspora_8php.html#a0b3628a5e53332c3d3196b689fe2b94d">diaspora_send_relay()</a>, <a class="el" href="diaspora_8php.html#a1704748aa2384c73e43f10e71defd31a">diaspora_send_retraction()</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="mod_2network_8php.html#a43f2f29b90c5e29072c561934bc8f8b4">network_content()</a>, and <a class="el" href="conversation_8php.html#a7eeaaf44506815576f3bd80053ef52c3">visible_activity()</a>.</p>
</div>
</div>
@@ -2098,7 +2317,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#a645397787618b5c548a31e8686e8cca4">api_status_show()</a>, <a class="el" href="include_2api_8php.html#abe8e929e93f7ab134b1cb1fb30f19a76">api_users_show()</a>, <a class="el" href="items_8php.html#a8f3c85c584ccd2b98c3ca440e45b40f8">construct_verb()</a>, <a class="el" href="diaspora_8php.html#a0fb2abe304aae19efc040a5e6b917829">diaspora_comment()</a>, <a class="el" href="diaspora_8php.html#a20b968d64ef26afe5cb0cc75a7570a31">diaspora_post()</a>, <a class="el" href="event_8php.html#a7378e839ac3de9d55579eb3ec48eaf92">event_store_item()</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#a77da7ce9a117601d49ac4a67c71b514f">mail_store()</a>, <a class="el" href="include_2photos_8php.html#a6c40ef58aefef705a5adc84a40e97109">photo_upload()</a>, <a class="el" href="items_8php.html#a410f9c743877c125ca06312373346903">post_activity_item()</a>, and <a class="el" href="items_8php.html#aab9e0c58247427126de0699c729c3b6c">send_status_notifications()</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#a645397787618b5c548a31e8686e8cca4">api_status_show()</a>, <a class="el" href="include_2api_8php.html#abe8e929e93f7ab134b1cb1fb30f19a76">api_users_show()</a>, <a class="el" href="items_8php.html#a8f3c85c584ccd2b98c3ca440e45b40f8">construct_verb()</a>, <a class="el" href="diaspora_8php.html#a0fb2abe304aae19efc040a5e6b917829">diaspora_comment()</a>, <a class="el" href="diaspora_8php.html#a20b968d64ef26afe5cb0cc75a7570a31">diaspora_post()</a>, <a class="el" href="event_8php.html#a7378e839ac3de9d55579eb3ec48eaf92">event_store_item()</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#a77da7ce9a117601d49ac4a67c71b514f">mail_store()</a>, <a class="el" href="include_2photos_8php.html#a6c40ef58aefef705a5adc84a40e97109">photo_upload()</a>, <a class="el" href="items_8php.html#a410f9c743877c125ca06312373346903">post_activity_item()</a>, <a class="el" href="refimport_8php.html#ad97ebb5feda0230a4834e0b3637a0d29">refimport_content()</a>, <a class="el" href="refimport_8php.html#a01a29630fa5e1ce6cd5e1fd75280747c">reflect_comment_store()</a>, and <a class="el" href="items_8php.html#aab9e0c58247427126de0699c729c3b6c">send_status_notifications()</a>.</p>
</div>
</div>
@@ -2192,7 +2411,7 @@ Variables</h2></td></tr>
</table>
</div><div class="memdoc">
-<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>
+<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="classRedMatrix_1_1RedDAV_1_1RedFile.html#ab7ab7ba81fab28eb02382cfdfd80ecfe">RedMatrix\RedDAV\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="classRedMatrix_1_1RedDAV_1_1RedDirectory.html#a825dc5f3e0f83f50736c16daa6a4809d">RedMatrix\RedDAV\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>
@@ -2206,7 +2425,7 @@ Variables</h2></td></tr>
</table>
</div><div class="memdoc">
-<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>
+<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="classRedMatrix_1_1RedDAV_1_1RedDirectory.html#a58e750256cdc2f0f79fbe8d5463ffefe">RedMatrix\RedDAV\RedDirectory\createFile()</a>, <a class="el" href="classRedMatrix_1_1RedDAV_1_1RedFile.html#a7241beecd01f5bb4e74659863dd85bd8">RedMatrix\RedDAV\RedFile\get()</a>, and <a class="el" href="classRedMatrix_1_1RedDAV_1_1RedFile.html#a709ec1288d21ddf1353524435ab916f0">RedMatrix\RedDAV\RedFile\put()</a>.</p>
</div>
</div>
@@ -2263,7 +2482,7 @@ Variables</h2></td></tr>
</div><div class="memdoc">
<p>relationship types </p>
-<p>Referenced by <a class="el" href="diaspora_8php.html#adef30b6fac948baedcc7194d5d155b5f">diaspora_conversation()</a>, and <a class="el" href="diaspora_8php.html#a7cff2f8f11044c1b3a360f20e1bbee46">diaspora_message()</a>.</p>
+<p>Referenced by <a class="el" href="diaspora_8php.html#a7cff2f8f11044c1b3a360f20e1bbee46">diaspora_message()</a>.</p>
</div>
</div>
@@ -2296,12 +2515,38 @@ Variables</h2></td></tr>
<div class="memproto">
<table class="memname">
<tr>
- <td class="memname">const DB_UPDATE_VERSION 1129</td>
+ <td class="memname">const DB_UPDATE_VERSION 1131</td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Referenced by <a class="el" href="include_2api_8php.html#a623793229a7256dd31bcfd5ab90eef08">api_statusnet_config()</a>, <a class="el" href="boot_8php.html#a4c02d88e66852a01bd5a1feecb7c3ce3">check_config()</a>, <a class="el" href="identity_8php.html#afaedbc8e2d2a70ec8b006162baac5249">identity_basic_export()</a>, and <a class="el" href="zfinger_8php.html#a8139b83a22ef98869adc10aa224027a0">zfinger_init()</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="a8c9a11c47394244cbe18cd75b9726d5f"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">const DBTYPE_MYSQL 0</td>
</tr>
</table>
</div><div class="memdoc">
-<p>Referenced by <a class="el" href="include_2api_8php.html#a623793229a7256dd31bcfd5ab90eef08">api_statusnet_config()</a>, <a class="el" href="boot_8php.html#a4c02d88e66852a01bd5a1feecb7c3ce3">check_config()</a>, <a class="el" href="identity_8php.html#a3570a4eb77332b292d394c4132cb8f03">identity_basic_export()</a>, and <a class="el" href="zfinger_8php.html#a8139b83a22ef98869adc10aa224027a0">zfinger_init()</a>.</p>
+</div>
+</div>
+<a class="anchor" id="a37ddabc112db443b4c67fbc0f708817e"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">const DBTYPE_POSTGRES 1</td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Referenced by <a class="el" href="text_8php.html#ad6432621d0fafcbcf3d3b9b49bef7784">contact_block()</a>, <a class="el" href="dba__driver_8php.html#a5df8499634c47b30191f34069d7b98c0">dba_factory()</a>, <a class="el" href="queue_8php.html#af8c93de86d866c3200174c8450a0f341">queue_run()</a>, <a class="el" href="reddav_8php.html#a5df0d09893f2e65dc5cf6bbab6cfb266">RedCollectionData()</a>, and <a class="el" href="search_8php.html#ab2568591359edde5b483a6cd9a24b2cc">search_content()</a>.</p>
</div>
</div>
@@ -2356,7 +2601,7 @@ Variables</h2></td></tr>
</table>
</div><div class="memdoc">
-<p>Referenced by <a class="el" href="dir__fns_8php.html#a2f7d74bb2aea8bcd2537aee5c6708a16">check_upstream_directory()</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="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="dir__fns_8php.html#a2f7d74bb2aea8bcd2537aee5c6708a16">check_upstream_directory()</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="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>
@@ -2384,7 +2629,7 @@ Variables</h2></td></tr>
</table>
</div><div class="memdoc">
-<p>Referenced by <a class="el" href="dir__fns_8php.html#a2f7d74bb2aea8bcd2537aee5c6708a16">check_upstream_directory()</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="externals_8php.html#a4df44079e6f915286088b7a0d44db926">externals_run()</a>, <a class="el" href="zot_8php.html#a2657e141d62d5f67ad3c87651b585299">import_site()</a>, <a class="el" href="zot_8php.html#a528e97ca5d69c3b7f35c5d954afde315">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="dir__fns_8php.html#a2f7d74bb2aea8bcd2537aee5c6708a16">check_upstream_directory()</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="externals_8php.html#a4df44079e6f915286088b7a0d44db926">externals_run()</a>, <a class="el" href="zot_8php.html#a2657e141d62d5f67ad3c87651b585299">import_site()</a>, <a class="el" href="zot_8php.html#a528e97ca5d69c3b7f35c5d954afde315">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>
@@ -2426,7 +2671,7 @@ Variables</h2></td></tr>
</table>
</div><div class="memdoc">
-<p>Referenced by <a class="el" href="zot_8php.html#adfeb9400ae6b726beec89f8f1e8fde72">delete_imported_item()</a>, <a class="el" href="items_8php.html#aac8c9eb4338e2a996c43914392c6cfdb">delete_item_lowlevel()</a>, and <a class="el" href="item_8php.html#a764bbb2e9a885a86fb23d0b5e4a09221">item_content()</a>.</p>
+<p>Referenced by <a class="el" href="zot_8php.html#adfeb9400ae6b726beec89f8f1e8fde72">delete_imported_item()</a>, <a class="el" href="items_8php.html#aac8c9eb4338e2a996c43914392c6cfdb">delete_item_lowlevel()</a>, <a class="el" href="diaspora_8php.html#aa34d2748bb97e9e193cacd572f335055">diaspora_signed_retraction()</a>, <a class="el" href="items_8php.html#a555762e1022a4b8e3c3abd32e7812408">drop_item()</a>, <a class="el" href="item_8php.html#a764bbb2e9a885a86fb23d0b5e4a09221">item_content()</a>, and <a class="el" href="like_8php.html#a9d7dd268f21c21e9d29dd2aca2dd9538">like_content()</a>.</p>
</div>
</div>
@@ -2449,12 +2694,12 @@ Variables</h2></td></tr>
<div class="memproto">
<table class="memname">
<tr>
- <td class="memname">const EOL '&lt;br /&gt;' . &quot;\r\n&quot;</td>
+ <td class="memname">const EOL '&lt;br&gt;' . &quot;\r\n&quot;</td>
</tr>
</table>
</div><div class="memdoc">
-<p>Referenced by <a class="el" href="Contact_8php.html#a5101d7eca5d6f387e5555f03fe249e33">account_remove()</a>, <a class="el" href="achievements_8php.html#a35ae04ada0e227d19671f289a32fb30e">achievements_content()</a>, <a class="el" href="admin_8php.html#ad6f87a764fd35f522c7b4c351d7878ec">admin_page_channels()</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#a3deba594ca1e11694eac1de0b724ef0a">admin_page_profs()</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="appman_8php.html#af48805ac2f6f123f2681a8ae1c6f123f">appman_content()</a>, <a class="el" href="appman_8php.html#a2979acbe47ffaecfa19b9eabfbfbde39">appman_post()</a>, <a class="el" href="mod_2attach_8php.html#aa88eb5ad87aa1036a30e70339cc6c1b1">attach_init()</a>, <a class="el" href="block_8php.html#a8a82a470acdfbc7a8e749509caeeea45">block_content()</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="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#a0c3f3b671381f6dccd924b8ecdfc56c4">check_htaccess()</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="common_8php.html#ab63408f39abef7a6915186e8dabc5a96">common_content()</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#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#a555762e1022a4b8e3c3abd32e7812408">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="hcard_8php.html#ac34f26b0e6a37eef44fa49bea135136d">hcard_init()</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#a528e97ca5d69c3b7f35c5d954afde315">import_xchan()</a>, <a class="el" href="importelm_8php.html#a1a4f71e6d76ace6add5e9659845f5e5f">importelm_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="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="pdledit_8php.html#a59cb550f6b7a4e7d8196fbc9de601619">pdledit_content()</a>, <a class="el" href="pdledit_8php.html#a81da3c955d0e3db55d148a31483104c7">pdledit_post()</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="removeaccount_8php.html#a26a3325292e932c59793430ab737126a">removeaccount_post()</a>, <a class="el" href="removeme_8php.html#a7be08738beca44bb98a79e01cdb2ee88">removeme_post()</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="subthread_8php.html#a50368f3d825b77996030528e7fbfa3d3">subthread_content()</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#ad07be417ac7eda939768804106ddea3d">user_approve()</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="Contact_8php.html#a5101d7eca5d6f387e5555f03fe249e33">account_remove()</a>, <a class="el" href="achievements_8php.html#a35ae04ada0e227d19671f289a32fb30e">achievements_content()</a>, <a class="el" href="admin_8php.html#ad6f87a764fd35f522c7b4c351d7878ec">admin_page_channels()</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#a3deba594ca1e11694eac1de0b724ef0a">admin_page_profs()</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="appman_8php.html#af48805ac2f6f123f2681a8ae1c6f123f">appman_content()</a>, <a class="el" href="appman_8php.html#a2979acbe47ffaecfa19b9eabfbfbde39">appman_post()</a>, <a class="el" href="mod_2attach_8php.html#aa88eb5ad87aa1036a30e70339cc6c1b1">attach_init()</a>, <a class="el" href="block_8php.html#a8a82a470acdfbc7a8e749509caeeea45">block_content()</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="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#a0c3f3b671381f6dccd924b8ecdfc56c4">check_htaccess()</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="common_8php.html#ab63408f39abef7a6915186e8dabc5a96">common_content()</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#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#a555762e1022a4b8e3c3abd32e7812408">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="hcard_8php.html#ac34f26b0e6a37eef44fa49bea135136d">hcard_init()</a>, <a class="el" href="import_8php.html#af17fef0410518f7eac205d0ea416eaa2">import_post()</a>, <a class="el" href="importelm_8php.html#a1a4f71e6d76ace6add5e9659845f5e5f">importelm_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="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="locs_8php.html#a6c900f53970c0d0e738d2fe06d27ca44">locs_content()</a>, <a class="el" href="locs_8php.html#a6b43654592919ac863d67a1f787a69b9">locs_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="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#a4d89800c0366a239191b1692c09635cf">page_init()</a>, <a class="el" href="pdledit_8php.html#a59cb550f6b7a4e7d8196fbc9de601619">pdledit_content()</a>, <a class="el" href="pdledit_8php.html#a81da3c955d0e3db55d148a31483104c7">pdledit_post()</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="refimport_8php.html#ad97ebb5feda0230a4834e0b3637a0d29">refimport_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="removeaccount_8php.html#a26a3325292e932c59793430ab737126a">removeaccount_post()</a>, <a class="el" href="removeme_8php.html#a7be08738beca44bb98a79e01cdb2ee88">removeme_post()</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="service__limits_8php.html#a653424aac63c5cd05ba70c3c77bf7f8a">service_limits_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="subthread_8php.html#a50368f3d825b77996030528e7fbfa3d3">subthread_content()</a>, <a class="el" href="suggest_8php.html#a58748a8235d4523f8333847f3e42dd91">suggest_content()</a>, <a class="el" href="zot_8php.html#ab15c04e7e5f44edf45ec50dd7d183254">sync_locations()</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="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#ad07be417ac7eda939768804106ddea3d">user_approve()</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>, <a class="el" href="xchan_8php.html#a9853348bf1a35c644460221ba75edc2d">xchan_content()</a>, and <a class="el" href="zot_8php.html#a3920afe14fc1d82020161b4b86bcd9ac">zot_process_message_request()</a>.</p>
</div>
</div>
@@ -2480,7 +2725,7 @@ Variables</h2></td></tr>
</table>
</div><div class="memdoc">
-<p>Referenced by <a class="el" href="diaspora_8php.html#a5d57518545baa31cf8a85a937a267681">diaspora_like()</a>, and <a class="el" href="subthread_8php.html#a50368f3d825b77996030528e7fbfa3d3">subthread_content()</a>.</p>
+<p>Referenced by <a class="el" href="subthread_8php.html#a50368f3d825b77996030528e7fbfa3d3">subthread_content()</a>.</p>
</div>
</div>
@@ -2507,7 +2752,7 @@ Variables</h2></td></tr>
</table>
</div><div class="memdoc">
-<p>Referenced by <a class="el" href="Contact_8php.html#a4e8af0f0525161da74583c04b8b03097">channel_remove()</a>, <a class="el" href="zot_8php.html#a528e97ca5d69c3b7f35c5d954afde315">import_xchan()</a>, <a class="el" href="notifier_8php.html#a568c502f626cff95e344c0748938b85d">notifier_run()</a>, <a class="el" href="post_8php.html#af59e6a1dc22d19d9257b01cd7ccedb75">post_post()</a>, <a class="el" href="Contact_8php.html#acc12cda999c88c4d6185cca967c15125">remove_all_xchan_resources()</a>, <a class="el" href="zfinger_8php.html#a8139b83a22ef98869adc10aa224027a0">zfinger_init()</a>, and <a class="el" href="zot_8php.html#ae7cec2b417b5858fd4a41070f843d1d7">zot_get_hublocs()</a>.</p>
+<p>Referenced by <a class="el" href="Contact_8php.html#a4e8af0f0525161da74583c04b8b03097">channel_remove()</a>, <a class="el" href="locs_8php.html#a6c900f53970c0d0e738d2fe06d27ca44">locs_content()</a>, <a class="el" href="locs_8php.html#a6b43654592919ac863d67a1f787a69b9">locs_post()</a>, <a class="el" href="notifier_8php.html#a568c502f626cff95e344c0748938b85d">notifier_run()</a>, <a class="el" href="post_8php.html#af59e6a1dc22d19d9257b01cd7ccedb75">post_post()</a>, <a class="el" href="Contact_8php.html#acc12cda999c88c4d6185cca967c15125">remove_all_xchan_resources()</a>, <a class="el" href="hubloc_8php.html#a84c79b7be352f62d12fe4fa2c80fc6ea">remove_obsolete_hublocs()</a>, <a class="el" href="zot_8php.html#ab15c04e7e5f44edf45ec50dd7d183254">sync_locations()</a>, <a class="el" href="zot_8php.html#ae26ce9f1ad74139193fb6319beac5fca">zot_encode_locations()</a>, <a class="el" href="zot_8php.html#ae7cec2b417b5858fd4a41070f843d1d7">zot_get_hublocs()</a>, and <a class="el" href="zot_8php.html#a3920afe14fc1d82020161b4b86bcd9ac">zot_process_message_request()</a>.</p>
</div>
</div>
@@ -2521,7 +2766,7 @@ Variables</h2></td></tr>
</table>
</div><div class="memdoc">
-<p>Referenced by <a class="el" href="zot_8php.html#a528e97ca5d69c3b7f35c5d954afde315">import_xchan()</a>, <a class="el" href="Contact_8php.html#a08845ce8c5b997d5edac38ae7118b5c8">mark_orphan_hubsxchans()</a>, and <a class="el" href="post_8php.html#af59e6a1dc22d19d9257b01cd7ccedb75">post_post()</a>.</p>
+<p>Referenced by <a class="el" href="Contact_8php.html#a08845ce8c5b997d5edac38ae7118b5c8">mark_orphan_hubsxchans()</a>, <a class="el" href="post_8php.html#af59e6a1dc22d19d9257b01cd7ccedb75">post_post()</a>, and <a class="el" href="zot_8php.html#ab15c04e7e5f44edf45ec50dd7d183254">sync_locations()</a>.</p>
</div>
</div>
@@ -2535,7 +2780,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="include_2network_8php.html#a63e62946e194928eb17c5a9f2bbef0fe">discover_by_webbie()</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#a528e97ca5d69c3b7f35c5d954afde315">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>
+<p>Referenced by <a class="el" href="identity_8php.html#a345f4c943d84de502ec6e72d2c813945">create_identity()</a>, <a class="el" href="include_2network_8php.html#a63e62946e194928eb17c5a9f2bbef0fe">discover_by_webbie()</a>, <a class="el" href="hubloc_8php.html#ad86214b3a74084bd7b54e8d6c919ce4d">hubloc_change_primary()</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="locs_8php.html#a6c900f53970c0d0e738d2fe06d27ca44">locs_content()</a>, <a class="el" href="locs_8php.html#a6b43654592919ac863d67a1f787a69b9">locs_post()</a>, <a class="el" href="Contact_8php.html#a2f4f495d53f2a334ab75292af79d3c91">rconnect_url()</a>, <a class="el" href="zot_8php.html#ab15c04e7e5f44edf45ec50dd7d183254">sync_locations()</a>, <a class="el" href="text_8php.html#a543447c5ed766535221e2d9636b379ee">xchan_mail_query()</a>, <a class="el" href="text_8php.html#a905c3895feb6f276df23f07f16f9bb52">xchan_query()</a>, <a class="el" href="zot_8php.html#ae26ce9f1ad74139193fb6319beac5fca">zot_encode_locations()</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>
@@ -2549,7 +2794,7 @@ Variables</h2></td></tr>
</table>
</div><div class="memdoc">
-<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#ae26ce9f1ad74139193fb6319beac5fca">zot_encode_locations()</a>.</p>
</div>
</div>
@@ -2575,7 +2820,7 @@ Variables</h2></td></tr>
</table>
</div><div class="memdoc">
-<p>Referenced by <a class="el" href="zot_8php.html#a528e97ca5d69c3b7f35c5d954afde315">import_xchan()</a>, <a class="el" href="Contact_8php.html#a08845ce8c5b997d5edac38ae7118b5c8">mark_orphan_hubsxchans()</a>, and <a class="el" href="post_8php.html#af59e6a1dc22d19d9257b01cd7ccedb75">post_post()</a>.</p>
+<p>Referenced by <a class="el" href="Contact_8php.html#a08845ce8c5b997d5edac38ae7118b5c8">mark_orphan_hubsxchans()</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="post_8php.html#af59e6a1dc22d19d9257b01cd7ccedb75">post_post()</a>, <a class="el" href="zot_8php.html#ab15c04e7e5f44edf45ec50dd7d183254">sync_locations()</a>, and <a class="el" href="zot_8php.html#a3920afe14fc1d82020161b4b86bcd9ac">zot_process_message_request()</a>.</p>
</div>
</div>
@@ -2653,7 +2898,7 @@ Variables</h2></td></tr>
</table>
</div><div class="memdoc">
-<p>Referenced by <a class="el" href="block_8php.html#a8a82a470acdfbc7a8e749509caeeea45">block_content()</a>, <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="notifier_8php.html#a568c502f626cff95e344c0748938b85d">notifier_run()</a>, and <a class="el" href="items_8php.html#a2baa9e05f1e8aa3dd61c85803ae39bd6">update_remote_id()</a>.</p>
+<p>Referenced by <a class="el" href="block_8php.html#a8a82a470acdfbc7a8e749509caeeea45">block_content()</a>, <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="impel_8php.html#ab7db6fca43b42ea4332cb3e841b3cf7b">impel_init()</a>, <a class="el" href="notifier_8php.html#a568c502f626cff95e344c0748938b85d">notifier_run()</a>, <a class="el" href="items_8php.html#a2baa9e05f1e8aa3dd61c85803ae39bd6">update_remote_id()</a>, and <a class="el" href="widgets_8php.html#a829c5a5c7448129266fc1df3ae1a3c2e">widget_random_block()</a>.</p>
</div>
</div>
@@ -2681,7 +2926,7 @@ Variables</h2></td></tr>
</table>
</div><div class="memdoc">
-<p>Referenced by <a class="el" href="items_8php.html#adc26e08aa61f5666da04ab5d2a9d68a6">consume_feed()</a>, <a class="el" href="zot_8php.html#adfeb9400ae6b726beec89f8f1e8fde72">delete_imported_item()</a>, <a class="el" href="items_8php.html#aac8c9eb4338e2a996c43914392c6cfdb">delete_item_lowlevel()</a>, <a class="el" href="diaspora_8php.html#a131abd521b218d6ae6f7d2917d8b2605">diaspora_process_outbound()</a>, <a class="el" href="diaspora_8php.html#af4698b165766f83d89ec1ea964bc92cc">diaspora_send_followup()</a>, <a class="el" href="diaspora_8php.html#a0b3628a5e53332c3d3196b689fe2b94d">diaspora_send_relay()</a>, <a class="el" href="items_8php.html#a555762e1022a4b8e3c3abd32e7812408">drop_item()</a>, <a class="el" href="items_8php.html#a5f690fc2484abec07840b4f9dd525bd9">encode_item_flags()</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#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#a4d9e6ca295e443b740d9960c304b3474">process_delivery()</a>.</p>
+<p>Referenced by <a class="el" href="items_8php.html#adc26e08aa61f5666da04ab5d2a9d68a6">consume_feed()</a>, <a class="el" href="zot_8php.html#adfeb9400ae6b726beec89f8f1e8fde72">delete_imported_item()</a>, <a class="el" href="items_8php.html#aac8c9eb4338e2a996c43914392c6cfdb">delete_item_lowlevel()</a>, <a class="el" href="diaspora_8php.html#a131abd521b218d6ae6f7d2917d8b2605">diaspora_process_outbound()</a>, <a class="el" href="diaspora_8php.html#af4698b165766f83d89ec1ea964bc92cc">diaspora_send_followup()</a>, <a class="el" href="diaspora_8php.html#a0b3628a5e53332c3d3196b689fe2b94d">diaspora_send_relay()</a>, <a class="el" href="items_8php.html#a555762e1022a4b8e3c3abd32e7812408">drop_item()</a>, <a class="el" href="items_8php.html#a5f690fc2484abec07840b4f9dd525bd9">encode_item_flags()</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="identity_8php.html#afaedbc8e2d2a70ec8b006162baac5249">identity_basic_export()</a>, <a class="el" href="item_8php.html#a5b1b36cb301a94b38150074f0d424e74">item_check_service_class()</a>, <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="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#a0e3006e7a456b2175a9badc96bc5176d">process_delivery()</a>.</p>
</div>
</div>
@@ -2695,7 +2940,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="include_2photos_8php.html#a6c40ef58aefef705a5adc84a40e97109">photo_upload()</a>, and <a class="el" href="include_2photos_8php.html#ad648c0c5544fe9263409b6f6e57c6274">photos_create_item()</a>.</p>
+<p>Referenced by <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="include_2photos_8php.html#a6c40ef58aefef705a5adc84a40e97109">photo_upload()</a>, and <a class="el" href="include_2photos_8php.html#ad648c0c5544fe9263409b6f6e57c6274">photos_create_item()</a>.</p>
</div>
</div>
@@ -2737,7 +2982,7 @@ Variables</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="items_8php.html#a82955cc578f0fa600acec84475026194">encode_item()</a>, <a class="el" href="items_8php.html#a2541e6861a56d145c9281877cc501615">item_store()</a>, and <a class="el" href="items_8php.html#adf2b8137dc4ad9ec958de2842f16f3c2">start_delivery_chain()</a>.</p>
+<p>Referenced by <a class="el" href="classConversation.html#a8335cdd43f1836e3c255638e61a09e16">Conversation\add_thread()</a>, <a class="el" href="items_8php.html#a56b0f5d2cb36eb8f4bfca84813884f86">encode_item()</a>, <a class="el" href="items_8php.html#a2541e6861a56d145c9281877cc501615">item_store()</a>, and <a class="el" href="items_8php.html#adf2b8137dc4ad9ec958de2842f16f3c2">start_delivery_chain()</a>.</p>
</div>
</div>
@@ -2779,7 +3024,7 @@ Variables</h2></td></tr>
</table>
</div><div class="memdoc">
-<p>Referenced by <a class="el" href="bb2diaspora_8php.html#a2052c66bc1006a42b4c230320c269e47">bb2diaspora_itembody()</a>, <a class="el" href="diaspora_8php.html#a131abd521b218d6ae6f7d2917d8b2605">diaspora_process_outbound()</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#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="conversation_8php.html#a9bd7f9fb6678736c581bcba3b17f471c">localize_item()</a>, <a class="el" href="enotify_8php.html#a3e9a9355b243777c488d2a9883908dfc">notification()</a>, <a class="el" href="items_8php.html#a410f9c743877c125ca06312373346903">post_activity_item()</a>, <a class="el" href="items_8php.html#adf2b8137dc4ad9ec958de2842f16f3c2">start_delivery_chain()</a>, <a class="el" href="items_8php.html#af0a887050dc8d0f51c89890cdaf3145f">store_diaspora_comment_sig()</a>, <a class="el" href="items_8php.html#ab1bce4261bcf75ad62753b498a144d17">tag_deliver()</a>, <a class="el" href="text_8php.html#a8264348059abd1d4d5bb521323d3b19a">unobscure()</a>, and <a class="el" href="viewsrc_8php.html#a6eff3d0c1d7d14b335c4edb785cd60a4">viewsrc_content()</a>.</p>
+<p>Referenced by <a class="el" href="bb2diaspora_8php.html#ab27761069ea1275f0fc4c543099c5519">bb2diaspora_itembody()</a>, <a class="el" href="diaspora_8php.html#a131abd521b218d6ae6f7d2917d8b2605">diaspora_process_outbound()</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#a56b0f5d2cb36eb8f4bfca84813884f86">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="conversation_8php.html#a9bd7f9fb6678736c581bcba3b17f471c">localize_item()</a>, <a class="el" href="enotify_8php.html#a3e9a9355b243777c488d2a9883908dfc">notification()</a>, <a class="el" href="items_8php.html#a410f9c743877c125ca06312373346903">post_activity_item()</a>, <a class="el" href="items_8php.html#adf2b8137dc4ad9ec958de2842f16f3c2">start_delivery_chain()</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="text_8php.html#a8264348059abd1d4d5bb521323d3b19a">unobscure()</a>, and <a class="el" href="viewsrc_8php.html#a6eff3d0c1d7d14b335c4edb785cd60a4">viewsrc_content()</a>.</p>
</div>
</div>
@@ -2794,7 +3039,7 @@ Variables</h2></td></tr>
</div><div class="memdoc">
<p><a class="el" href="classItem.html">Item</a> Flags </p>
-<p>Referenced by <a class="el" href="connedit_8php.html#a234c48426b652bf4d37053f2af329ac5">connedit_post()</a>, <a class="el" href="diaspora_8php.html#a0fb2abe304aae19efc040a5e6b917829">diaspora_comment()</a>, <a class="el" href="event_8php.html#a7378e839ac3de9d55579eb3ec48eaf92">event_store_item()</a>, <a class="el" href="externals_8php.html#a4df44079e6f915286088b7a0d44db926">externals_run()</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="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="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#adf2b8137dc4ad9ec958de2842f16f3c2">start_delivery_chain()</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="tagger_8php.html#a0e4a3eb177d1684553c547503d67161c">tagger_content()</a>, and <a class="el" href="thing_8php.html#a8be23b1d475ec3d9291999221c674c80">thing_init()</a>.</p>
+<p>Referenced by <a class="el" href="connedit_8php.html#a234c48426b652bf4d37053f2af329ac5">connedit_post()</a>, <a class="el" href="diaspora_8php.html#a0fb2abe304aae19efc040a5e6b917829">diaspora_comment()</a>, <a class="el" href="diaspora_8php.html#a5d57518545baa31cf8a85a937a267681">diaspora_like()</a>, <a class="el" href="diaspora_8php.html#aa34d2748bb97e9e193cacd572f335055">diaspora_signed_retraction()</a>, <a class="el" href="event_8php.html#a7378e839ac3de9d55579eb3ec48eaf92">event_store_item()</a>, <a class="el" href="externals_8php.html#a4df44079e6f915286088b7a0d44db926">externals_run()</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="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="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#a0e3006e7a456b2175a9badc96bc5176d">process_delivery()</a>, <a class="el" href="activities_8php.html#a80134e807719b3c54aba971958d2e132">profile_activity()</a>, <a class="el" href="refimport_8php.html#ad97ebb5feda0230a4834e0b3637a0d29">refimport_content()</a>, <a class="el" href="refimport_8php.html#a01a29630fa5e1ce6cd5e1fd75280747c">reflect_comment_store()</a>, <a class="el" href="items_8php.html#adf2b8137dc4ad9ec958de2842f16f3c2">start_delivery_chain()</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="tagger_8php.html#a0e4a3eb177d1684553c547503d67161c">tagger_content()</a>, and <a class="el" href="thing_8php.html#a8be23b1d475ec3d9291999221c674c80">thing_init()</a>.</p>
</div>
</div>
@@ -2808,7 +3053,7 @@ Variables</h2></td></tr>
</table>
</div><div class="memdoc">
-<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>
+<p>Referenced by <a class="el" href="editlayout_8php.html#aa877e4157a26b099de904164181dd386">editlayout_content()</a>, <a class="el" href="impel_8php.html#ab7db6fca43b42ea4332cb3e841b3cf7b">impel_init()</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>
@@ -2852,6 +3097,20 @@ Variables</h2></td></tr>
</div>
</div>
+<a class="anchor" id="ac4d1c93dabcace711ffb4931204c336b"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">const ITEM_RSS 0x8000</td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Referenced by <a class="el" href="items_8php.html#a5e5be7bf1f8257dec0b2647e60a3f3f1">get_atom_elements()</a>.</p>
+
+</div>
+</div>
<a class="anchor" id="a40d885b2cfd736aab4234ae641ca4dfb"></a>
<div class="memitem">
<div class="memproto">
@@ -2888,7 +3147,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="connedit_8php.html#a234c48426b652bf4d37053f2af329ac5">connedit_post()</a>, <a class="el" href="diaspora_8php.html#a20b968d64ef26afe5cb0cc75a7570a31">diaspora_post()</a>, <a class="el" href="items_8php.html#a5f690fc2484abec07840b4f9dd525bd9">encode_item_flags()</a>, <a class="el" href="event_8php.html#a7378e839ac3de9d55579eb3ec48eaf92">event_store_item()</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="conversation_8php.html#a9bd7f9fb6678736c581bcba3b17f471c">localize_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="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="subthread_8php.html#a50368f3d825b77996030528e7fbfa3d3">subthread_content()</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="connedit_8php.html#a234c48426b652bf4d37053f2af329ac5">connedit_post()</a>, <a class="el" href="diaspora_8php.html#a20b968d64ef26afe5cb0cc75a7570a31">diaspora_post()</a>, <a class="el" href="items_8php.html#a5f690fc2484abec07840b4f9dd525bd9">encode_item_flags()</a>, <a class="el" href="event_8php.html#a7378e839ac3de9d55579eb3ec48eaf92">event_store_item()</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="conversation_8php.html#a9bd7f9fb6678736c581bcba3b17f471c">localize_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="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="refimport_8php.html#ad97ebb5feda0230a4834e0b3637a0d29">refimport_content()</a>, <a class="el" href="subthread_8php.html#a50368f3d825b77996030528e7fbfa3d3">subthread_content()</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>
@@ -2916,7 +3175,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="diaspora_8php.html#a20b968d64ef26afe5cb0cc75a7570a31">diaspora_post()</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="manage_8php.html#a2bca247b5296827638959138367db4f5">manage_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="classItem.html#ae0c48b2fed5558642549cabd547fc4f3">Item\count_unseen_descendants()</a>, <a class="el" href="diaspora_8php.html#a20b968d64ef26afe5cb0cc75a7570a31">diaspora_post()</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="home_8php.html#a6e3dbf78f4ed74ab2577de221190b33f">home_content()</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="manage_8php.html#a2bca247b5296827638959138367db4f5">manage_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>
</div>
</div>
@@ -2985,7 +3244,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#a9c6a6179e0e626398ebecc6151905ef1">channel_content()</a>, <a class="el" href="connedit_8php.html#a234c48426b652bf4d37053f2af329ac5">connedit_post()</a>, <a class="el" href="items_8php.html#a555762e1022a4b8e3c3abd32e7812408">drop_item()</a>, <a class="el" href="event_8php.html#a7378e839ac3de9d55579eb3ec48eaf92">event_store_item()</a>, <a class="el" href="events_8php.html#a1d293fb217ae6bc9e3858c4b32e363ec">events_content()</a>, <a class="el" href="externals_8php.html#a4df44079e6f915286088b7a0d44db926">externals_run()</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="manage_8php.html#a2bca247b5296827638959138367db4f5">manage_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#a4d9e6ca295e443b740d9960c304b3474">process_delivery()</a>, <a class="el" href="activities_8php.html#a80134e807719b3c54aba971958d2e132">profile_activity()</a>, <a class="el" href="items_8php.html#adf2b8137dc4ad9ec958de2842f16f3c2">start_delivery_chain()</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="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>
+<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="connedit_8php.html#a234c48426b652bf4d37053f2af329ac5">connedit_post()</a>, <a class="el" href="items_8php.html#a555762e1022a4b8e3c3abd32e7812408">drop_item()</a>, <a class="el" href="event_8php.html#a7378e839ac3de9d55579eb3ec48eaf92">event_store_item()</a>, <a class="el" href="events_8php.html#a1d293fb217ae6bc9e3858c4b32e363ec">events_content()</a>, <a class="el" href="externals_8php.html#a4df44079e6f915286088b7a0d44db926">externals_run()</a>, <a class="el" href="items_8php.html#a0cf98bb619f07dd18f602683a55a5f59">first_post_date()</a>, <a class="el" href="identity_8php.html#afaedbc8e2d2a70ec8b006162baac5249">identity_basic_export()</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="manage_8php.html#a2bca247b5296827638959138367db4f5">manage_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="p_8php.html#af9d5530ca0b3dc9409cf591c39e2480e">p_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="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#a0e3006e7a456b2175a9badc96bc5176d">process_delivery()</a>, <a class="el" href="activities_8php.html#a80134e807719b3c54aba971958d2e132">profile_activity()</a>, <a class="el" href="refimport_8php.html#ad97ebb5feda0230a4834e0b3637a0d29">refimport_content()</a>, <a class="el" href="refimport_8php.html#a01a29630fa5e1ce6cd5e1fd75280747c">reflect_comment_store()</a>, <a class="el" href="items_8php.html#adf2b8137dc4ad9ec958de2842f16f3c2">start_delivery_chain()</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="tagger_8php.html#a0e4a3eb177d1684553c547503d67161c">tagger_content()</a>, <a class="el" href="thing_8php.html#a8be23b1d475ec3d9291999221c674c80">thing_init()</a>, <a class="el" href="statistics__fns_8php.html#a82726229a961d3bd3d543005c61dd8e6">update_channels_active_halfyear_stat()</a>, <a class="el" href="statistics__fns_8php.html#ad2b7b595c039c4c2eb0d6cd57a393dfe">update_channels_active_monthly_stat()</a>, <a class="el" href="statistics__fns_8php.html#a9dd516dda693f17f5ce48a94876f7efa">update_local_posts_stat()</a>, <a class="el" href="widgets_8php.html#af919de8e7e2ba8192a65fadc72a2c8b5">widget_catcloud_wall()</a>, <a class="el" href="widgets_8php.html#ae4ced69d83dbdd9e6b51660d9eba8653">widget_tagcloud_wall()</a>, and <a class="el" href="items_8php.html#a1cf89557f32d5dfbe8bd90448dc1aa92">zot_feed()</a>.</p>
</div>
</div>
@@ -2999,7 +3258,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="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#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>, <a class="el" href="widgets_8php.html#a313a8d10ab81c71357c12e67e4d7efd5">widget_item()</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#a6e3dbf78f4ed74ab2577de221190b33f">home_content()</a>, <a class="el" href="impel_8php.html#ab7db6fca43b42ea4332cb3e841b3cf7b">impel_init()</a>, <a class="el" href="item_8php.html#a5b1b36cb301a94b38150074f0d424e74">item_check_service_class()</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#a4d89800c0366a239191b1692c09635cf">page_init()</a>, <a class="el" href="items_8php.html#a2baa9e05f1e8aa3dd61c85803ae39bd6">update_remote_id()</a>, <a class="el" href="webpages_8php.html#af3b7397d4abc153e3d2147740ee1a41d">webpages_content()</a>, <a class="el" href="widgets_8php.html#a313a8d10ab81c71357c12e67e4d7efd5">widget_item()</a>, and <a class="el" href="widgets_8php.html#a6dbc227aac750774284ee39c45f0a200">widget_tagcloud()</a>.</p>
</div>
</div>
@@ -3071,7 +3330,7 @@ Variables</h2></td></tr>
</table>
</div><div class="memdoc">
-<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="admin_8php.html#a1d1362698af14d209aa3a0fb655551dd">admin_page_logs()</a>, <a class="el" href="zot_8php.html#aa97b33b619dd7132a9274f852af6ceb5">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="items_8php.html#adc26e08aa61f5666da04ab5d2a9d68a6">consume_feed()</a>, <a class="el" href="classRedDirectory.html#a2d12d99d38a6a75fc9a830b2f7fc0bf0">RedDirectory\createFile()</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="diaspora_8php.html#a4901762cba5cd8dcdc57bdf285eefb1b">diaspora_msg_build()</a>, <a class="el" href="diaspora_8php.html#a586d5a3ba92d35cee14f879f290072aa">diaspora_pubmsg_build()</a>, <a class="el" href="diaspora_8php.html#af4698b165766f83d89ec1ea964bc92cc">diaspora_send_followup()</a>, <a class="el" href="diaspora_8php.html#ae6f52efd81fe515cd9912bc8293abf5b">diaspora_send_images()</a>, <a class="el" href="diaspora_8php.html#aeb2bb78f620dbf51d9335e6eb7444f2c">diaspora_send_mail()</a>, <a class="el" href="diaspora_8php.html#a0b3628a5e53332c3d3196b689fe2b94d">diaspora_send_relay()</a>, <a class="el" href="diaspora_8php.html#a33ae0c4606a7df4d801c05507d87f668">diaspora_send_status()</a>, <a class="el" href="dirsearch_8php.html#a7d4cd9890d5ed23c3efc58e2a778a305">dir_parse_query()</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="include_2network_8php.html#a5176176ddc1906d91f186df6fbd87b48">discover_by_url()</a>, <a class="el" href="items_8php.html#a82955cc578f0fa600acec84475026194">encode_item()</a>, <a class="el" href="include_2network_8php.html#a850ed5307c6a18076f4b80addc99602d">fetch_xrd_links()</a>, <a class="el" href="diaspora_8php.html#aade0c165fcdded71352c7a67bf6ce37b">find_diaspora_person_by_handle()</a>, <a class="el" href="items_8php.html#aba98fcbbcd7044a7e9ea34edabc14c87">fix_private_photos()</a>, <a class="el" href="items_8php.html#a5e5be7bf1f8257dec0b2647e60a3f3f1">get_atom_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="classRedDirectory.html#a70173d4458572d95e586b2037d2fd2f4">RedDirectory\getDir()</a>, <a class="el" href="classRedDirectory.html#af6e4475dbd5abcdede00d20b8d388583">RedDirectory\getName()</a>, <a class="el" href="zot_8php.html#a528e97ca5d69c3b7f35c5d954afde315">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="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="include_2network_8php.html#a872bbe72d23826c64c9e0f822180a3ec">old_webfinger()</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="ping_8php.html#a77217b1b190b4c5d8770867b45f0c0a1">ping_init()</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="receive_8php.html#a03d8fa26e77844020ba5602deca7d494">receive_post()</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="classRedDirectory.html#adc48035679e52c55d9881f83de535553">RedDirectory\setName()</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="items_8php.html#a9b449eeae50003414b8b30ca927af434">update_feed_item()</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>
+<p>Referenced by <a class="el" href="admin_8php.html#a1d1362698af14d209aa3a0fb655551dd">admin_page_logs()</a>, <a class="el" href="zot_8php.html#a703f528ade8382cf374e4119bd6f7859">allowed_public_recips()</a>, <a class="el" href="bb2diaspora_8php.html#aab32042f8bd63552d3fadeeae9eab083">bb2diaspora_itemwallwall()</a>, <a class="el" href="zot_8php.html#aa97b33b619dd7132a9274f852af6ceb5">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="items_8php.html#adc26e08aa61f5666da04ab5d2a9d68a6">consume_feed()</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="diaspora_8php.html#a849754ec369e1a60fadae5c14584ca36">diaspora_decode()</a>, <a class="el" href="diaspora_8php.html#a4901762cba5cd8dcdc57bdf285eefb1b">diaspora_msg_build()</a>, <a class="el" href="diaspora_8php.html#a586d5a3ba92d35cee14f879f290072aa">diaspora_pubmsg_build()</a>, <a class="el" href="diaspora_8php.html#a2bf43f6b5890897f425ef4325d34b007">diaspora_reshare()</a>, <a class="el" href="diaspora_8php.html#af4698b165766f83d89ec1ea964bc92cc">diaspora_send_followup()</a>, <a class="el" href="diaspora_8php.html#ae6f52efd81fe515cd9912bc8293abf5b">diaspora_send_images()</a>, <a class="el" href="diaspora_8php.html#aeb2bb78f620dbf51d9335e6eb7444f2c">diaspora_send_mail()</a>, <a class="el" href="diaspora_8php.html#a0b3628a5e53332c3d3196b689fe2b94d">diaspora_send_relay()</a>, <a class="el" href="diaspora_8php.html#a33ae0c4606a7df4d801c05507d87f668">diaspora_send_status()</a>, <a class="el" href="dirsearch_8php.html#a7d4cd9890d5ed23c3efc58e2a778a305">dir_parse_query()</a>, <a class="el" href="mod_2directory_8php.html#aac79396570d759da2efac24fcedf5b44">directory_content()</a>, <a class="el" href="include_2network_8php.html#a5176176ddc1906d91f186df6fbd87b48">discover_by_url()</a>, <a class="el" href="items_8php.html#a56b0f5d2cb36eb8f4bfca84813884f86">encode_item()</a>, <a class="el" href="include_2network_8php.html#a850ed5307c6a18076f4b80addc99602d">fetch_xrd_links()</a>, <a class="el" href="diaspora_8php.html#aade0c165fcdded71352c7a67bf6ce37b">find_diaspora_person_by_handle()</a>, <a class="el" href="items_8php.html#aba98fcbbcd7044a7e9ea34edabc14c87">fix_private_photos()</a>, <a class="el" href="items_8php.html#a5e5be7bf1f8257dec0b2647e60a3f3f1">get_atom_elements()</a>, <a class="el" href="classRedMatrix_1_1RedDAV_1_1RedDirectory.html#a1a37850bdd1f188abd6160559698d5d7">RedMatrix\RedDAV\RedDirectory\getChild()</a>, <a class="el" href="classRedMatrix_1_1RedDAV_1_1RedDirectory.html#a825dc5f3e0f83f50736c16daa6a4809d">RedMatrix\RedDAV\RedDirectory\getDir()</a>, <a class="el" href="impel_8php.html#ab7db6fca43b42ea4332cb3e841b3cf7b">impel_init()</a>, <a class="el" href="zot_8php.html#a528e97ca5d69c3b7f35c5d954afde315">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="classRedMatrix_1_1RedDAV_1_1RedDirectory.html#af90a1a74cfd643a5c56b9a17ea250d59">RedMatrix\RedDAV\RedDirectory\log()</a>, <a class="el" href="classRedMatrix_1_1RedDAV_1_1RedBasicAuth.html#abf6fe89b0a8239ed93c3b07e1fbce75b">RedMatrix\RedDAV\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="include_2network_8php.html#a872bbe72d23826c64c9e0f822180a3ec">old_webfinger()</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="ping_8php.html#a77217b1b190b4c5d8770867b45f0c0a1">ping_init()</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="receive_8php.html#a03d8fa26e77844020ba5602deca7d494">receive_post()</a>, <a class="el" href="reddav_8php.html#ae92ea0df1993f6a7bcd1b6efa6c1fb66">RedChannelList()</a>, <a class="el" href="reddav_8php.html#a9f531641dfb4e43cd88ac1a9ae7e2088">RedFileData()</a>, <a class="el" href="classRedMatrix_1_1RedDAV_1_1RedFile.html#a0350cb4e0327e1f9922869a48ee04f1d">RedMatrix\RedDAV\RedFile\setName()</a>, <a class="el" href="classRedMatrix_1_1RedDAV_1_1RedDirectory.html#a14ac61d31a031d139956763db4e03956">RedMatrix\RedDAV\RedDirectory\setName()</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="items_8php.html#a9b449eeae50003414b8b30ca927af434">update_feed_item()</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#a084c581d534e7e3b759488b46602288f">zot_build_packet()</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#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>
@@ -3085,7 +3344,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#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#aef1cb2968c41c759f2d106e1088ca323">bookmark_add()</a>, <a class="el" href="items_8php.html#adc26e08aa61f5666da04ab5d2a9d68a6">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="classRedFile.html#aef71c9eaac7052be7dc8602eb12171e7">RedFile\delete()</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="diaspora_8php.html#adef30b6fac948baedcc7194d5d155b5f">diaspora_conversation()</a>, <a class="el" href="diaspora_8php.html#a849754ec369e1a60fadae5c14584ca36">diaspora_decode()</a>, <a class="el" href="diaspora_8php.html#a6f0a67b6b17503c125af32763be931b7">diaspora_dispatch()</a>, <a class="el" href="diaspora_8php.html#a5ed66b910d7b0284f9b3ee04e72306ff">diaspora_handle_from_contact()</a>, <a class="el" href="diaspora_8php.html#a7cff2f8f11044c1b3a360f20e1bbee46">diaspora_message()</a>, <a class="el" href="diaspora_8php.html#a71fe9bb66626b4197ae018a230778bb2">diaspora_photo()</a>, <a class="el" href="diaspora_8php.html#a2bf43f6b5890897f425ef4325d34b007">diaspora_reshare()</a>, <a class="el" href="diaspora_8php.html#aa704d6aa2ac77be345c0f501168e6e56">diaspora_transmit()</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="include_2network_8php.html#a63e62946e194928eb17c5a9f2bbef0fe">discover_by_webbie()</a>, <a class="el" href="expire_8php.html#a444e45c9b67727b27db4c779fd51a298">expire_run()</a>, <a class="el" href="externals_8php.html#a4df44079e6f915286088b7a0d44db926">externals_run()</a>, <a class="el" href="include_2network_8php.html#a8d5a3afb51cc932032b5dcc159efaae0">fetch_lrdd_template()</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="diaspora_8php.html#a9bf7ef4094e0e14f6e2b7fe76ab7ad2e">get_diaspora_key()</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#a20750dd2c36961013fd382fb34e1366c">import_directory_profile()</a>, <a class="el" href="photo__driver_8php.html#a78f5a10c568d2a9bbbb129dc96548887">import_profile_photo()</a>, <a class="el" href="zot_8php.html#a528e97ca5d69c3b7f35c5d954afde315">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="plugin_8php.html#a9ca9632b7309a65b05c03a3e2f473a3d">load_plugin()</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="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="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_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#a4d9e6ca295e443b740d9960c304b3474">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="queue_8php.html#af8c93de86d866c3200174c8450a0f341">queue_run()</a>, <a class="el" href="receive_8php.html#a03d8fa26e77844020ba5602deca7d494">receive_post()</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="include_2network_8php.html#a316f318167a039c89719afbd129a8f3c">scrape_feed()</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="items_8php.html#af0a887050dc8d0f51c89890cdaf3145f">store_diaspora_comment_sig()</a>, <a class="el" href="security_8php.html#a6126c77a1267e046ac59cf864613f011">stream_perms_api_uids()</a>, <a class="el" href="security_8php.html#a3ef2be6a7e4928e39d50059d6feb457c">stream_perms_xchans()</a>, <a class="el" href="items_8php.html#ab1bce4261bcf75ad62753b498a144d17">tag_deliver()</a>, <a class="el" href="plugin_8php.html#a90538627db68605aeb6db17a8ead6523">unload_plugin()</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="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#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="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="bb2diaspora_8php.html#aab32042f8bd63552d3fadeeae9eab083">bb2diaspora_itemwallwall()</a>, <a class="el" href="include_2bookmarks_8php.html#aef1cb2968c41c759f2d106e1088ca323">bookmark_add()</a>, <a class="el" href="items_8php.html#adc26e08aa61f5666da04ab5d2a9d68a6">consume_feed()</a>, <a class="el" href="conversation_8php.html#affea1afb3f32ca41e966c8ddb4204d81">conversation()</a>, <a class="el" href="classRedMatrix_1_1RedDAV_1_1RedDirectory.html#aca0e8d574ea66a0e210f571700663c62">RedMatrix\RedDAV\RedDirectory\createDirectory()</a>, <a class="el" href="classRedMatrix_1_1RedDAV_1_1RedDirectory.html#a58e750256cdc2f0f79fbe8d5463ffefe">RedMatrix\RedDAV\RedDirectory\createFile()</a>, <a class="el" href="classRedMatrix_1_1RedDAV_1_1RedFile.html#ab7ab7ba81fab28eb02382cfdfd80ecfe">RedMatrix\RedDAV\RedFile\delete()</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="diaspora_8php.html#adef30b6fac948baedcc7194d5d155b5f">diaspora_conversation()</a>, <a class="el" href="diaspora_8php.html#a5ed66b910d7b0284f9b3ee04e72306ff">diaspora_handle_from_contact()</a>, <a class="el" href="diaspora_8php.html#a5d57518545baa31cf8a85a937a267681">diaspora_like()</a>, <a class="el" href="diaspora_8php.html#a7cff2f8f11044c1b3a360f20e1bbee46">diaspora_message()</a>, <a class="el" href="diaspora_8php.html#a71fe9bb66626b4197ae018a230778bb2">diaspora_photo()</a>, <a class="el" href="diaspora_8php.html#a2bf43f6b5890897f425ef4325d34b007">diaspora_reshare()</a>, <a class="el" href="diaspora_8php.html#aa704d6aa2ac77be345c0f501168e6e56">diaspora_transmit()</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#a63e62946e194928eb17c5a9f2bbef0fe">discover_by_webbie()</a>, <a class="el" href="expire_8php.html#a444e45c9b67727b27db4c779fd51a298">expire_run()</a>, <a class="el" href="externals_8php.html#a4df44079e6f915286088b7a0d44db926">externals_run()</a>, <a class="el" href="include_2network_8php.html#a8d5a3afb51cc932032b5dcc159efaae0">fetch_lrdd_template()</a>, <a class="el" href="items_8php.html#aba98fcbbcd7044a7e9ea34edabc14c87">fix_private_photos()</a>, <a class="el" href="classRedMatrix_1_1RedDAV_1_1RedFile.html#a7241beecd01f5bb4e74659863dd85bd8">RedMatrix\RedDAV\RedFile\get()</a>, <a class="el" href="diaspora_8php.html#a9bf7ef4094e0e14f6e2b7fe76ab7ad2e">get_diaspora_key()</a>, <a class="el" href="diaspora_8php.html#ac9e41e46626dc608204bf4b5e16e62d7">get_diaspora_reshare_xml()</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="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="hubloc_8php.html#ad86214b3a74084bd7b54e8d6c919ce4d">hubloc_change_primary()</a>, <a class="el" href="items_8php.html#a6bee35961f2e32905f20367a9309d627">import_author_rss()</a>, <a class="el" href="items_8php.html#a37f79991f36811cf847446ff60e8e11f">import_author_unknown()</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#a20750dd2c36961013fd382fb34e1366c">import_directory_profile()</a>, <a class="el" href="photo__driver_8php.html#a78f5a10c568d2a9bbbb129dc96548887">import_profile_photo()</a>, <a class="el" href="zot_8php.html#a528e97ca5d69c3b7f35c5d954afde315">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="plugin_8php.html#a9ca9632b7309a65b05c03a3e2f473a3d">load_plugin()</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="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="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_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#a0e3006e7a456b2175a9badc96bc5176d">process_delivery()</a>, <a class="el" href="zot_8php.html#a8eeefdb0dad4c436bea9d1c06c0a7988">process_location_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="classRedMatrix_1_1RedDAV_1_1RedFile.html#a709ec1288d21ddf1353524435ab916f0">RedMatrix\RedDAV\RedFile\put()</a>, <a class="el" href="queue_8php.html#af8c93de86d866c3200174c8450a0f341">queue_run()</a>, <a class="el" href="receive_8php.html#a03d8fa26e77844020ba5602deca7d494">receive_post()</a>, <a class="el" href="classItem.html#a2ce70ef63f9f4d86a09c351678806925">Item\remove_child()</a>, <a class="el" href="hubloc_8php.html#a84c79b7be352f62d12fe4fa2c80fc6ea">remove_obsolete_hublocs()</a>, <a class="el" href="include_2network_8php.html#ae8d9c41a11000fb8667039fc71b4f73f">scale_external_images()</a>, <a class="el" href="include_2network_8php.html#a316f318167a039c89719afbd129a8f3c">scrape_feed()</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="items_8php.html#a25221826fa4621f523c68483e3b6af26">store_diaspora_comment_sig()</a>, <a class="el" href="security_8php.html#a6126c77a1267e046ac59cf864613f011">stream_perms_api_uids()</a>, <a class="el" href="security_8php.html#a3ef2be6a7e4928e39d50059d6feb457c">stream_perms_xchans()</a>, <a class="el" href="zot_8php.html#ab15c04e7e5f44edf45ec50dd7d183254">sync_locations()</a>, <a class="el" href="items_8php.html#ab1bce4261bcf75ad62753b498a144d17">tag_deliver()</a>, <a class="el" href="plugin_8php.html#a90538627db68605aeb6db17a8ead6523">unload_plugin()</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="items_8php.html#a1cf89557f32d5dfbe8bd90448dc1aa92">zot_feed()</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>
@@ -3154,7 +3413,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="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>, and <a class="el" href="include_2message_8php.html#a751ffd6635022b2190f56154ee745752">send_message()</a>.</p>
+<p>Referenced by <a class="el" href="diaspora_8php.html#adef30b6fac948baedcc7194d5d155b5f">diaspora_conversation()</a>, <a class="el" href="diaspora_8php.html#a7cff2f8f11044c1b3a360f20e1bbee46">diaspora_message()</a>, <a class="el" href="diaspora_8php.html#aeb2bb78f620dbf51d9335e6eb7444f2c">diaspora_send_mail()</a>, <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="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>, and <a class="el" href="include_2message_8php.html#a751ffd6635022b2190f56154ee745752">send_message()</a>.</p>
</div>
</div>
@@ -3241,7 +3500,7 @@ Variables</h2></td></tr>
</table>
</div><div class="memdoc">
-<p>Referenced by <a class="el" href="include_2bookmarks_8php.html#aef1cb2968c41c759f2d106e1088ca323">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>, <a class="el" href="mod_2menu_8php.html#aaa491ef173868fe002aece4632bcf393">menu_post()</a>, and <a class="el" href="rbmark_8php.html#a43fec4960b50926251574762cc491f76">rbmark_content()</a>.</p>
+<p>Referenced by <a class="el" href="include_2bookmarks_8php.html#aef1cb2968c41c759f2d106e1088ca323">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>, <a class="el" href="mod_2menu_8php.html#aaa491ef173868fe002aece4632bcf393">menu_post()</a>, <a class="el" href="nav_8php.html#a43be0df73b90647ea70947ce004e231e">nav()</a>, and <a class="el" href="rbmark_8php.html#a43fec4960b50926251574762cc491f76">rbmark_content()</a>.</p>
</div>
</div>
@@ -3298,7 +3557,7 @@ Variables</h2></td></tr>
</div><div class="memdoc">
<p>Menu types </p>
-<p>Referenced by <a class="el" href="include_2bookmarks_8php.html#aef1cb2968c41c759f2d106e1088ca323">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>
+<p>Referenced by <a class="el" href="include_2bookmarks_8php.html#aef1cb2968c41c759f2d106e1088ca323">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>, <a class="el" href="mod_2menu_8php.html#aaa491ef173868fe002aece4632bcf393">menu_post()</a>, and <a class="el" href="nav_8php.html#a43be0df73b90647ea70947ce004e231e">nav()</a>.</p>
</div>
</div>
@@ -3490,6 +3749,20 @@ Variables</h2></td></tr>
</div>
</div>
+<a class="anchor" id="a3d48dffd9dc73a187263c3002cdf00c0"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">const NAMESPACE_YMEDIA 'http://search.yahoo.com/mrss/'</td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Referenced by <a class="el" href="items_8php.html#a5e5be7bf1f8257dec0b2647e60a3f3f1">get_atom_elements()</a>.</p>
+
+</div>
+</div>
<a class="anchor" id="a49f2a70b3b43aa904223a8d19e986a47"></a>
<div class="memitem">
<div class="memproto">
@@ -3530,7 +3803,7 @@ Variables</h2></td></tr>
</table>
</div><div class="memdoc">
-<p>Referenced by <a class="el" href="diaspora_8php.html#a006731620a5242d410358b32678e48e3">diaspora_asphoto()</a>, <a class="el" href="diaspora_8php.html#a5d57518545baa31cf8a85a937a267681">diaspora_like()</a>, and <a class="el" href="contact__selectors_8php.html#ad472e4716426dd1a9dd77b62962454be">network_to_name()</a>.</p>
+<p>Referenced by <a class="el" href="diaspora_8php.html#a006731620a5242d410358b32678e48e3">diaspora_asphoto()</a>, and <a class="el" href="contact__selectors_8php.html#ad472e4716426dd1a9dd77b62962454be">network_to_name()</a>.</p>
</div>
</div>
@@ -3845,7 +4118,7 @@ Variables</h2></td></tr>
</table>
</div><div class="memdoc">
-<p>Referenced by <a class="el" href="settings_8php.html#aa7ee94d88ac088edb04ccf3a26de3586">settings_post()</a>, and <a class="el" href="zfinger_8php.html#a8139b83a22ef98869adc10aa224027a0">zfinger_init()</a>.</p>
+<p>Referenced by <a class="el" href="settings_8php.html#aa7ee94d88ac088edb04ccf3a26de3586">settings_post()</a>, <a class="el" href="security_8php.html#a6126c77a1267e046ac59cf864613f011">stream_perms_api_uids()</a>, <a class="el" href="security_8php.html#a3ef2be6a7e4928e39d50059d6feb457c">stream_perms_xchans()</a>, and <a class="el" href="zfinger_8php.html#a8139b83a22ef98869adc10aa224027a0">zfinger_init()</a>.</p>
</div>
</div>
@@ -3913,6 +4186,20 @@ Variables</h2></td></tr>
</div>
</div>
+<a class="anchor" id="afbb21ecccac9819aa65397e816868a5f"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">const PAGE_HUBADMIN 0x2000</td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Referenced by <a class="el" href="siteinfo_8php.html#a3efbd0bd6564af19ec0a9ce0294e59d0">siteinfo_init()</a>.</p>
+
+</div>
+</div>
<a class="anchor" id="a09532c3f750ae8c4527e63b2b790cbf3"></a>
<div class="memitem">
<div class="memproto">
@@ -3952,7 +4239,7 @@ Variables</h2></td></tr>
</table>
</div><div class="memdoc">
-<p>Referenced by <a class="el" href="admin_8php.html#ad6f87a764fd35f522c7b4c351d7878ec">admin_page_channels()</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="security_8php.html#adc7bf51e3b8d67bd80e9348f9ab03733">authenticate_success()</a>, <a class="el" href="security_8php.html#a8d23d2597aae380a3341872fe9513380">change_channel()</a>, <a class="el" href="Contact_8php.html#a4e8af0f0525161da74583c04b8b03097">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="identity_8php.html#a2ab5172eabd375869060c9ad68323f5c">identity_selector()</a>, <a class="el" href="manage_8php.html#a2bca247b5296827638959138367db4f5">manage_content()</a>, <a class="el" href="nav_8php.html#a43be0df73b90647ea70947ce004e231e">nav()</a>, <a class="el" href="enotify_8php.html#a3e9a9355b243777c488d2a9883908dfc">notification()</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="receive_8php.html#a03d8fa26e77844020ba5602deca7d494">receive_post()</a>, <a class="el" href="reddav_8php.html#ae92ea0df1993f6a7bcd1b6efa6c1fb66">RedChannelList()</a>, <a class="el" href="security_8php.html#a6126c77a1267e046ac59cf864613f011">stream_perms_api_uids()</a>, <a class="el" href="security_8php.html#a3ef2be6a7e4928e39d50059d6feb457c">stream_perms_xchans()</a>, <a class="el" href="zfinger_8php.html#a8139b83a22ef98869adc10aa224027a0">zfinger_init()</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="admin_8php.html#ad6f87a764fd35f522c7b4c351d7878ec">admin_page_channels()</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="security_8php.html#adc7bf51e3b8d67bd80e9348f9ab03733">authenticate_success()</a>, <a class="el" href="security_8php.html#a8d23d2597aae380a3341872fe9513380">change_channel()</a>, <a class="el" href="Contact_8php.html#a4e8af0f0525161da74583c04b8b03097">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="classRedMatrix_1_1RedDAV_1_1RedDirectory.html#aca0e8d574ea66a0e210f571700663c62">RedMatrix\RedDAV\RedDirectory\createDirectory()</a>, <a class="el" href="classRedMatrix_1_1RedDAV_1_1RedDirectory.html#a58e750256cdc2f0f79fbe8d5463ffefe">RedMatrix\RedDAV\RedDirectory\createFile()</a>, <a class="el" href="classRedMatrix_1_1RedDAV_1_1RedDirectory.html#a825dc5f3e0f83f50736c16daa6a4809d">RedMatrix\RedDAV\RedDirectory\getDir()</a>, <a class="el" href="classRedMatrix_1_1RedDAV_1_1RedDirectory.html#a69db443ed3c84938b4352fe515bf8d68">RedMatrix\RedDAV\RedDirectory\getQuotaInfo()</a>, <a class="el" href="identity_8php.html#ac9fcd5c4c371998790b5c55c3d0f4633">identity_check_service_class()</a>, <a class="el" href="identity_8php.html#a2ab5172eabd375869060c9ad68323f5c">identity_selector()</a>, <a class="el" href="manage_8php.html#a2bca247b5296827638959138367db4f5">manage_content()</a>, <a class="el" href="nav_8php.html#a43be0df73b90647ea70947ce004e231e">nav()</a>, <a class="el" href="enotify_8php.html#a3e9a9355b243777c488d2a9883908dfc">notification()</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="classRedMatrix_1_1RedDAV_1_1RedFile.html#a709ec1288d21ddf1353524435ab916f0">RedMatrix\RedDAV\RedFile\put()</a>, <a class="el" href="receive_8php.html#a03d8fa26e77844020ba5602deca7d494">receive_post()</a>, <a class="el" href="reddav_8php.html#ae92ea0df1993f6a7bcd1b6efa6c1fb66">RedChannelList()</a>, <a class="el" href="security_8php.html#a6126c77a1267e046ac59cf864613f011">stream_perms_api_uids()</a>, <a class="el" href="security_8php.html#a3ef2be6a7e4928e39d50059d6feb457c">stream_perms_xchans()</a>, <a class="el" href="zfinger_8php.html#a8139b83a22ef98869adc10aa224027a0">zfinger_init()</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>
@@ -3966,7 +4253,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="identity_8php.html#a1cf83ac2b645de12868edaa3a5718f05">create_sys_channel()</a>, <a class="el" href="identity_8php.html#aaff86ee3b5984821e7a256c2da5f1a51">get_sys_channel()</a>, <a class="el" href="identity_8php.html#aa4bd4abfcba883f43919e89ec6419025">is_sys_channel()</a>, <a class="el" href="security_8php.html#a6126c77a1267e046ac59cf864613f011">stream_perms_api_uids()</a>, and <a class="el" href="zfinger_8php.html#a8139b83a22ef98869adc10aa224027a0">zfinger_init()</a>.</p>
+<p>Referenced by <a class="el" href="security_8php.html#a8d23d2597aae380a3341872fe9513380">change_channel()</a>, <a class="el" href="identity_8php.html#a345f4c943d84de502ec6e72d2c813945">create_identity()</a>, <a class="el" href="identity_8php.html#a1cf83ac2b645de12868edaa3a5718f05">create_sys_channel()</a>, <a class="el" href="identity_8php.html#aaff86ee3b5984821e7a256c2da5f1a51">get_sys_channel()</a>, <a class="el" href="identity_8php.html#aa4bd4abfcba883f43919e89ec6419025">is_sys_channel()</a>, <a class="el" href="zot_8php.html#a0e3006e7a456b2175a9badc96bc5176d">process_delivery()</a>, <a class="el" href="security_8php.html#a6126c77a1267e046ac59cf864613f011">stream_perms_api_uids()</a>, <a class="el" href="security_8php.html#a3ef2be6a7e4928e39d50059d6feb457c">stream_perms_xchans()</a>, and <a class="el" href="zfinger_8php.html#a8139b83a22ef98869adc10aa224027a0">zfinger_init()</a>.</p>
</div>
</div>
@@ -4064,7 +4351,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="permissions_8php.html#aeca9b280f3dc3358c89976d81d690008">get_all_perms()</a>, <a class="el" href="permissions_8php.html#a9b5f5120566a3699a98efc5ccb0c59fe">get_role_perms()</a>, <a class="el" href="identity_8php.html#a4e996e44b50330098a04b467367a559f">is_public_profile()</a>, <a class="el" href="items_8php.html#a8675e62674de6fb7c42e4a408c7116cc">map_scope()</a>, <a class="el" href="permissions_8php.html#a67ada9ed51e77885b6b0f6a28cee1835">perm_is_allowed()</a>, <a class="el" href="zot_8php.html#a083aec6c900d244e1bfc1406f9461465">public_recips()</a>, <a class="el" href="search_8php.html#ab2568591359edde5b483a6cd9a24b2cc">search_content()</a>, <a class="el" href="permissions_8php.html#aa8b7b102c653649d7a71b5a1c044d90d">site_default_perms()</a>, <a class="el" href="security_8php.html#a6126c77a1267e046ac59cf864613f011">stream_perms_api_uids()</a>, <a class="el" href="security_8php.html#a3ef2be6a7e4928e39d50059d6feb457c">stream_perms_xchans()</a>, and <a class="el" href="items_8php.html#a004e89d86b0f29b2c4da20108ecc4091">zot_feed()</a>.</p>
+<p>Referenced by <a class="el" href="display_8php.html#a37137c98d47bf3306f4c2bb9f5b60de0">display_content()</a>, <a class="el" href="permissions_8php.html#aeca9b280f3dc3358c89976d81d690008">get_all_perms()</a>, <a class="el" href="permissions_8php.html#a9b5f5120566a3699a98efc5ccb0c59fe">get_role_perms()</a>, <a class="el" href="identity_8php.html#a4e996e44b50330098a04b467367a559f">is_public_profile()</a>, <a class="el" href="items_8php.html#a8675e62674de6fb7c42e4a408c7116cc">map_scope()</a>, <a class="el" href="permissions_8php.html#a67ada9ed51e77885b6b0f6a28cee1835">perm_is_allowed()</a>, <a class="el" href="zot_8php.html#a083aec6c900d244e1bfc1406f9461465">public_recips()</a>, <a class="el" href="search_8php.html#ab2568591359edde5b483a6cd9a24b2cc">search_content()</a>, <a class="el" href="permissions_8php.html#aa8b7b102c653649d7a71b5a1c044d90d">site_default_perms()</a>, <a class="el" href="security_8php.html#a6126c77a1267e046ac59cf864613f011">stream_perms_api_uids()</a>, <a class="el" href="security_8php.html#a3ef2be6a7e4928e39d50059d6feb457c">stream_perms_xchans()</a>, and <a class="el" href="items_8php.html#a1cf89557f32d5dfbe8bd90448dc1aa92">zot_feed()</a>.</p>
</div>
</div>
@@ -4078,7 +4365,7 @@ Variables</h2></td></tr>
</table>
</div><div class="memdoc">
-<p>Referenced by <a class="el" href="diaspora_8php.html#ac1ab782a34552a7c6b4dc961754ed598">diaspora_request()</a>, <a class="el" href="permissions_8php.html#a040fd3d3b8517658b1668ae0cd093972">get_perms()</a>, and <a class="el" href="permissions_8php.html#a9b5f5120566a3699a98efc5ccb0c59fe">get_role_perms()</a>.</p>
+<p>Referenced by <a class="el" href="identity_8php.html#a345f4c943d84de502ec6e72d2c813945">create_identity()</a>, <a class="el" href="diaspora_8php.html#ac1ab782a34552a7c6b4dc961754ed598">diaspora_request()</a>, <a class="el" href="permissions_8php.html#a040fd3d3b8517658b1668ae0cd093972">get_perms()</a>, and <a class="el" href="permissions_8php.html#a9b5f5120566a3699a98efc5ccb0c59fe">get_role_perms()</a>.</p>
</div>
</div>
@@ -4092,7 +4379,7 @@ Variables</h2></td></tr>
</table>
</div><div class="memdoc">
-<p>Referenced by <a class="el" href="diaspora_8php.html#ac1ab782a34552a7c6b4dc961754ed598">diaspora_request()</a>, <a class="el" href="permissions_8php.html#a040fd3d3b8517658b1668ae0cd093972">get_perms()</a>, and <a class="el" href="permissions_8php.html#a9b5f5120566a3699a98efc5ccb0c59fe">get_role_perms()</a>.</p>
+<p>Referenced by <a class="el" href="identity_8php.html#a345f4c943d84de502ec6e72d2c813945">create_identity()</a>, <a class="el" href="diaspora_8php.html#ac1ab782a34552a7c6b4dc961754ed598">diaspora_request()</a>, <a class="el" href="permissions_8php.html#a040fd3d3b8517658b1668ae0cd093972">get_perms()</a>, and <a class="el" href="permissions_8php.html#a9b5f5120566a3699a98efc5ccb0c59fe">get_role_perms()</a>.</p>
</div>
</div>
@@ -4106,7 +4393,7 @@ Variables</h2></td></tr>
</table>
</div><div class="memdoc">
-<p>Referenced by <a class="el" href="diaspora_8php.html#ac1ab782a34552a7c6b4dc961754ed598">diaspora_request()</a>, <a class="el" href="permissions_8php.html#a040fd3d3b8517658b1668ae0cd093972">get_perms()</a>, and <a class="el" href="permissions_8php.html#a9b5f5120566a3699a98efc5ccb0c59fe">get_role_perms()</a>.</p>
+<p>Referenced by <a class="el" href="identity_8php.html#a345f4c943d84de502ec6e72d2c813945">create_identity()</a>, <a class="el" href="diaspora_8php.html#ac1ab782a34552a7c6b4dc961754ed598">diaspora_request()</a>, <a class="el" href="permissions_8php.html#a040fd3d3b8517658b1668ae0cd093972">get_perms()</a>, and <a class="el" href="permissions_8php.html#a9b5f5120566a3699a98efc5ccb0c59fe">get_role_perms()</a>.</p>
</div>
</div>
@@ -4120,7 +4407,7 @@ Variables</h2></td></tr>
</table>
</div><div class="memdoc">
-<p>Referenced by <a class="el" href="diaspora_8php.html#ac1ab782a34552a7c6b4dc961754ed598">diaspora_request()</a>, <a class="el" href="permissions_8php.html#a040fd3d3b8517658b1668ae0cd093972">get_perms()</a>, and <a class="el" href="permissions_8php.html#a9b5f5120566a3699a98efc5ccb0c59fe">get_role_perms()</a>.</p>
+<p>Referenced by <a class="el" href="identity_8php.html#a345f4c943d84de502ec6e72d2c813945">create_identity()</a>, <a class="el" href="diaspora_8php.html#ac1ab782a34552a7c6b4dc961754ed598">diaspora_request()</a>, <a class="el" href="permissions_8php.html#a040fd3d3b8517658b1668ae0cd093972">get_perms()</a>, and <a class="el" href="permissions_8php.html#a9b5f5120566a3699a98efc5ccb0c59fe">get_role_perms()</a>.</p>
</div>
</div>
@@ -4134,7 +4421,7 @@ Variables</h2></td></tr>
</table>
</div><div class="memdoc">
-<p>Referenced by <a class="el" href="diaspora_8php.html#ac1ab782a34552a7c6b4dc961754ed598">diaspora_request()</a>, <a class="el" href="permissions_8php.html#a040fd3d3b8517658b1668ae0cd093972">get_perms()</a>, and <a class="el" href="permissions_8php.html#a9b5f5120566a3699a98efc5ccb0c59fe">get_role_perms()</a>.</p>
+<p>Referenced by <a class="el" href="identity_8php.html#a345f4c943d84de502ec6e72d2c813945">create_identity()</a>, <a class="el" href="diaspora_8php.html#ac1ab782a34552a7c6b4dc961754ed598">diaspora_request()</a>, <a class="el" href="permissions_8php.html#a040fd3d3b8517658b1668ae0cd093972">get_perms()</a>, and <a class="el" href="permissions_8php.html#a9b5f5120566a3699a98efc5ccb0c59fe">get_role_perms()</a>.</p>
</div>
</div>
@@ -4149,7 +4436,7 @@ Variables</h2></td></tr>
</div><div class="memdoc">
<p>Permissions </p>
-<p>Referenced by <a class="el" href="diaspora_8php.html#ac1ab782a34552a7c6b4dc961754ed598">diaspora_request()</a>, <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="permissions_8php.html#a9b5f5120566a3699a98efc5ccb0c59fe">get_role_perms()</a>, <a class="el" href="include_2follow_8php.html#ae387d4ae097c23d69f3247e7f08140c7">new_contact()</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>
+<p>Referenced by <a class="el" href="identity_8php.html#a345f4c943d84de502ec6e72d2c813945">create_identity()</a>, <a class="el" href="diaspora_8php.html#ac1ab782a34552a7c6b4dc961754ed598">diaspora_request()</a>, <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="permissions_8php.html#a9b5f5120566a3699a98efc5ccb0c59fe">get_role_perms()</a>, <a class="el" href="include_2follow_8php.html#ae387d4ae097c23d69f3247e7f08140c7">new_contact()</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>
@@ -4191,7 +4478,7 @@ Variables</h2></td></tr>
</table>
</div><div class="memdoc">
-<p>Referenced by <a class="el" href="diaspora_8php.html#ac1ab782a34552a7c6b4dc961754ed598">diaspora_request()</a>, <a class="el" href="permissions_8php.html#a040fd3d3b8517658b1668ae0cd093972">get_perms()</a>, and <a class="el" href="permissions_8php.html#a9b5f5120566a3699a98efc5ccb0c59fe">get_role_perms()</a>.</p>
+<p>Referenced by <a class="el" href="identity_8php.html#a345f4c943d84de502ec6e72d2c813945">create_identity()</a>, <a class="el" href="diaspora_8php.html#ac1ab782a34552a7c6b4dc961754ed598">diaspora_request()</a>, <a class="el" href="permissions_8php.html#a040fd3d3b8517658b1668ae0cd093972">get_perms()</a>, and <a class="el" href="permissions_8php.html#a9b5f5120566a3699a98efc5ccb0c59fe">get_role_perms()</a>.</p>
</div>
</div>
@@ -4205,7 +4492,7 @@ Variables</h2></td></tr>
</table>
</div><div class="memdoc">
-<p>Referenced by <a class="el" href="items_8php.html#a1e75047cf175aaee8dd16aa761913ff9">can_comment_on_post()</a>, <a class="el" href="diaspora_8php.html#ac1ab782a34552a7c6b4dc961754ed598">diaspora_request()</a>, <a class="el" href="permissions_8php.html#a040fd3d3b8517658b1668ae0cd093972">get_perms()</a>, <a class="el" href="permissions_8php.html#a9b5f5120566a3699a98efc5ccb0c59fe">get_role_perms()</a>, and <a class="el" href="zot_8php.html#a083aec6c900d244e1bfc1406f9461465">public_recips()</a>.</p>
+<p>Referenced by <a class="el" href="items_8php.html#a1e75047cf175aaee8dd16aa761913ff9">can_comment_on_post()</a>, <a class="el" href="identity_8php.html#a345f4c943d84de502ec6e72d2c813945">create_identity()</a>, <a class="el" href="diaspora_8php.html#ac1ab782a34552a7c6b4dc961754ed598">diaspora_request()</a>, <a class="el" href="permissions_8php.html#a040fd3d3b8517658b1668ae0cd093972">get_perms()</a>, <a class="el" href="permissions_8php.html#a9b5f5120566a3699a98efc5ccb0c59fe">get_role_perms()</a>, and <a class="el" href="zot_8php.html#a083aec6c900d244e1bfc1406f9461465">public_recips()</a>.</p>
</div>
</div>
@@ -4219,7 +4506,7 @@ Variables</h2></td></tr>
</table>
</div><div class="memdoc">
-<p>Referenced by <a class="el" href="permissions_8php.html#a040fd3d3b8517658b1668ae0cd093972">get_perms()</a>, and <a class="el" href="permissions_8php.html#a9b5f5120566a3699a98efc5ccb0c59fe">get_role_perms()</a>.</p>
+<p>Referenced by <a class="el" href="identity_8php.html#a345f4c943d84de502ec6e72d2c813945">create_identity()</a>, <a class="el" href="permissions_8php.html#a040fd3d3b8517658b1668ae0cd093972">get_perms()</a>, and <a class="el" href="permissions_8php.html#a9b5f5120566a3699a98efc5ccb0c59fe">get_role_perms()</a>.</p>
</div>
</div>
@@ -4233,7 +4520,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="diaspora_8php.html#ac1ab782a34552a7c6b4dc961754ed598">diaspora_request()</a>, <a class="el" href="permissions_8php.html#a040fd3d3b8517658b1668ae0cd093972">get_perms()</a>, <a class="el" href="permissions_8php.html#a9b5f5120566a3699a98efc5ccb0c59fe">get_role_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>
+<p>Referenced by <a class="el" href="acl_8php.html#ac6776dba871806ecdb5d1659bc2eb07a">acl_init()</a>, <a class="el" href="identity_8php.html#a345f4c943d84de502ec6e72d2c813945">create_identity()</a>, <a class="el" href="diaspora_8php.html#ac1ab782a34552a7c6b4dc961754ed598">diaspora_request()</a>, <a class="el" href="permissions_8php.html#a040fd3d3b8517658b1668ae0cd093972">get_perms()</a>, <a class="el" href="permissions_8php.html#a9b5f5120566a3699a98efc5ccb0c59fe">get_role_perms()</a>, <a class="el" href="mail_8php.html#acfc2cc0bf4e0b178207758384977f25a">mail_post()</a>, and <a class="el" href="zot_8php.html#a083aec6c900d244e1bfc1406f9461465">public_recips()</a>.</p>
</div>
</div>
@@ -4275,7 +4562,7 @@ Variables</h2></td></tr>
</table>
</div><div class="memdoc">
-<p>Referenced by <a class="el" href="permissions_8php.html#a040fd3d3b8517658b1668ae0cd093972">get_perms()</a>.</p>
+<p>Referenced by <a class="el" href="permissions_8php.html#a040fd3d3b8517658b1668ae0cd093972">get_perms()</a>, and <a class="el" href="permissions_8php.html#a9b5f5120566a3699a98efc5ccb0c59fe">get_role_perms()</a>.</p>
</div>
</div>
@@ -4289,7 +4576,7 @@ Variables</h2></td></tr>
</table>
</div><div class="memdoc">
-<p>Referenced by <a class="el" href="include_2api_8php.html#a36344c80b8e9755da2f2dd3a0e28cce8">api_ff_ids()</a>, <a class="el" href="include_2api_8php.html#aa0d6b29fff0344a8e67f3507a6d01410">api_statuses_f()</a>, <a class="el" href="diaspora_8php.html#ac1ab782a34552a7c6b4dc961754ed598">diaspora_request()</a>, <a class="el" href="permissions_8php.html#a040fd3d3b8517658b1668ae0cd093972">get_perms()</a>, <a class="el" href="permissions_8php.html#a9b5f5120566a3699a98efc5ccb0c59fe">get_role_perms()</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="include_2api_8php.html#a36344c80b8e9755da2f2dd3a0e28cce8">api_ff_ids()</a>, <a class="el" href="include_2api_8php.html#aa0d6b29fff0344a8e67f3507a6d01410">api_statuses_f()</a>, <a class="el" href="identity_8php.html#a345f4c943d84de502ec6e72d2c813945">create_identity()</a>, <a class="el" href="diaspora_8php.html#ac1ab782a34552a7c6b4dc961754ed598">diaspora_request()</a>, <a class="el" href="permissions_8php.html#a040fd3d3b8517658b1668ae0cd093972">get_perms()</a>, <a class="el" href="permissions_8php.html#a9b5f5120566a3699a98efc5ccb0c59fe">get_role_perms()</a>, and <a class="el" href="zot_8php.html#a083aec6c900d244e1bfc1406f9461465">public_recips()</a>.</p>
</div>
</div>
@@ -4303,7 +4590,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>, and <a class="el" href="item_8php.html#a693cd09805755ab85bbb5ecae69a48c3">item_post()</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="permissions_8php.html#a9b5f5120566a3699a98efc5ccb0c59fe">get_role_perms()</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>
</div>
</div>
@@ -4317,7 +4604,21 @@ Variables</h2></td></tr>
</table>
</div><div class="memdoc">
-<p>Referenced by <a class="el" href="permissions_8php.html#a040fd3d3b8517658b1668ae0cd093972">get_perms()</a>, and <a class="el" href="permissions_8php.html#a9b5f5120566a3699a98efc5ccb0c59fe">get_role_perms()</a>.</p>
+<p>Referenced by <a class="el" href="identity_8php.html#a345f4c943d84de502ec6e72d2c813945">create_identity()</a>, <a class="el" href="permissions_8php.html#a040fd3d3b8517658b1668ae0cd093972">get_perms()</a>, and <a class="el" href="permissions_8php.html#a9b5f5120566a3699a98efc5ccb0c59fe">get_role_perms()</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="a921c55b9fa59a327a5f0e07fa1ccb2e0"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">const PHOTO_ADULT 0x0008</td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Referenced by <a class="el" href="mod_2photos_8php.html#aa87382611a66ec5effdb2d78f13f5812">photos_content()</a>, and <a class="el" href="mod_2photos_8php.html#a062bed4d04d14fee8a53f4c9be673080">photos_post()</a>.</p>
</div>
</div>
@@ -4332,7 +4633,7 @@ Variables</h2></td></tr>
</div><div class="memdoc">
<p>Photo types </p>
-<p>Referenced by <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#aa27b9e435dcc34e1009f56dc02c7ca51">photos_list_photos()</a>, <a class="el" href="mod_2photos_8php.html#a062bed4d04d14fee8a53f4c9be673080">photos_post()</a>, and <a class="el" href="profile__photo_8php.html#a4b80234074bd603221aa5364f330e479">profile_photo_post()</a>.</p>
+<p>Referenced by <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#aa27b9e435dcc34e1009f56dc02c7ca51">photos_list_photos()</a>, and <a class="el" href="profile__photo_8php.html#a4b80234074bd603221aa5364f330e479">profile_photo_post()</a>.</p>
</div>
</div>
@@ -4346,7 +4647,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="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="profile__photo_8php.html#a4b80234074bd603221aa5364f330e479">profile_photo_post()</a>, and <a class="el" href="classphoto__driver.html#a5864fae7d8389372955a8e78cec527ac">photo_driver\save()</a>.</p>
+<p>Referenced by <a class="el" href="photo__driver_8php.html#a1d0bc7161dec0d177b7d3bbe4421af9a">import_channel_photo()</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="profile__photo_8php.html#a4b80234074bd603221aa5364f330e479">profile_photo_post()</a>, and <a class="el" href="classphoto__driver.html#a5864fae7d8389372955a8e78cec527ac">photo_driver\save()</a>.</p>
</div>
</div>
@@ -4451,7 +4752,7 @@ Variables</h2></td></tr>
<div class="memproto">
<table class="memname">
<tr>
- <td class="memname">const RED_PLATFORM 'Red Matrix'</td>
+ <td class="memname">const RED_PLATFORM 'redmatrix'</td>
</tr>
</table>
</div><div class="memdoc">
@@ -4460,7 +4761,7 @@ Variables</h2></td></tr>
<p>This allows any individual website to participate in a matrix of linked sites and people and media sharing which is far greater than the reach of an individual site.</p>
<p>If you are reading the source code and come across a function or code block which is not documented, but you have a good idea what it does, please add some descriptive comments and push it to the main project. Even if your description isn't perfect, it gives us a base which we can build on and correct - so that eventually everything is fully documented. </p>
-<p>Referenced by <a class="el" href="include_2api_8php.html#a623793229a7256dd31bcfd5ab90eef08">api_statusnet_config()</a>, <a class="el" href="classApp.html#a08f0537964d98958d218066364cff785">App\build_pagehead()</a>, <a class="el" href="items_8php.html#a04a35b610acfe54434df08adec39c0c7">get_feed_for()</a>, <a class="el" href="identity_8php.html#a3570a4eb77332b292d394c4132cb8f03">identity_basic_export()</a>, <a class="el" href="parse__url_8php.html#a05a9e8944380ba3cf6bbf5893dd4b74b">parse_url_content()</a>, <a class="el" href="siteinfo_8php.html#a3efbd0bd6564af19ec0a9ce0294e59d0">siteinfo_init()</a>, and <a class="el" href="zfinger_8php.html#a8139b83a22ef98869adc10aa224027a0">zfinger_init()</a>.</p>
+<p>Referenced by <a class="el" href="include_2api_8php.html#a623793229a7256dd31bcfd5ab90eef08">api_statusnet_config()</a>, <a class="el" href="classApp.html#a08f0537964d98958d218066364cff785">App\build_pagehead()</a>, <a class="el" href="items_8php.html#a04a35b610acfe54434df08adec39c0c7">get_feed_for()</a>, <a class="el" href="event_8php.html#ab8cc2825013e724dc26229026711cf93">ical_wrapper()</a>, <a class="el" href="identity_8php.html#afaedbc8e2d2a70ec8b006162baac5249">identity_basic_export()</a>, <a class="el" href="parse__url_8php.html#a05a9e8944380ba3cf6bbf5893dd4b74b">parse_url_content()</a>, <a class="el" href="siteinfo_8php.html#a3efbd0bd6564af19ec0a9ce0294e59d0">siteinfo_init()</a>, and <a class="el" href="zfinger_8php.html#a8139b83a22ef98869adc10aa224027a0">zfinger_init()</a>.</p>
</div>
</div>
@@ -4474,7 +4775,7 @@ Variables</h2></td></tr>
</table>
</div><div class="memdoc">
-<p>Referenced by <a class="el" href="admin_8php.html#ac6e95b920b5abd030cc522964987087a">admin_page_summary()</a>, <a class="el" href="include_2api_8php.html#a53b0680b682ae6078f2e1ed18cfb3f74">api_friendica_version()</a>, <a class="el" href="include_2api_8php.html#a623793229a7256dd31bcfd5ab90eef08">api_statusnet_config()</a>, <a class="el" href="classApp.html#a08f0537964d98958d218066364cff785">App\build_pagehead()</a>, <a class="el" href="items_8php.html#a04a35b610acfe54434df08adec39c0c7">get_feed_for()</a>, <a class="el" href="identity_8php.html#a3570a4eb77332b292d394c4132cb8f03">identity_basic_export()</a>, <a class="el" href="siteinfo_8php.html#a70c09bfb6dd1c86a125a35f62ed53656">siteinfo_content()</a>, <a class="el" href="siteinfo_8php.html#a3efbd0bd6564af19ec0a9ce0294e59d0">siteinfo_init()</a>, and <a class="el" href="zfinger_8php.html#a8139b83a22ef98869adc10aa224027a0">zfinger_init()</a>.</p>
+<p>Referenced by <a class="el" href="admin_8php.html#ac6e95b920b5abd030cc522964987087a">admin_page_summary()</a>, <a class="el" href="include_2api_8php.html#a53b0680b682ae6078f2e1ed18cfb3f74">api_friendica_version()</a>, <a class="el" href="include_2api_8php.html#a623793229a7256dd31bcfd5ab90eef08">api_statusnet_config()</a>, <a class="el" href="classApp.html#a08f0537964d98958d218066364cff785">App\build_pagehead()</a>, <a class="el" href="items_8php.html#a04a35b610acfe54434df08adec39c0c7">get_feed_for()</a>, <a class="el" href="identity_8php.html#afaedbc8e2d2a70ec8b006162baac5249">identity_basic_export()</a>, <a class="el" href="siteinfo_8php.html#a70c09bfb6dd1c86a125a35f62ed53656">siteinfo_content()</a>, <a class="el" href="siteinfo_8php.html#a3efbd0bd6564af19ec0a9ce0294e59d0">siteinfo_init()</a>, and <a class="el" href="zfinger_8php.html#a8139b83a22ef98869adc10aa224027a0">zfinger_init()</a>.</p>
</div>
</div>
@@ -4503,7 +4804,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="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>
+<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#a6e3dbf78f4ed74ab2577de221190b33f">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>
@@ -4569,7 +4870,7 @@ 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>, <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>
+<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#ad2e96e917852f27dedfc263d37e13756">cloud_init()</a>.</p>
</div>
</div>
@@ -4597,7 +4898,7 @@ Variables</h2></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>, and <a class="el" href="item_8php.html#aa22feef4de326e1d7078dedd892e615c">handle_tag()</a>.</p>
+<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="items_8php.html#a5e5be7bf1f8257dec0b2647e60a3f3f1">get_atom_elements()</a>, <a class="el" href="classItem.html#ad5dcbe0b94cb2d5719bc5b6bd8ad60c8">Item\get_template_data()</a>, and <a class="el" href="text_8php.html#aa22feef4de326e1d7078dedd892e615c">handle_tag()</a>.</p>
</div>
</div>
@@ -4611,7 +4912,7 @@ Variables</h2></td></tr>
</table>
</div><div class="memdoc">
-<p>Referenced by <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="items_8php.html#a56b2a4abcadfac71175cd50555528cc3">decode_tags()</a>, <a class="el" href="editpost_8php.html#a34011690864d122680c802e9e748ccfb">editpost_content()</a>, <a class="el" href="items_8php.html#ac6673627d289ee4f547de0fe3b7acd0a">encode_item_terms()</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="text_8php.html#a3054189cff173977f4216c9a3dd29e1b">format_categories()</a>, <a class="el" href="items_8php.html#a5e5be7bf1f8257dec0b2647e60a3f3f1">get_atom_elements()</a>, <a class="el" href="item_8php.html#a693cd09805755ab85bbb5ecae69a48c3">item_post()</a>, and <a class="el" href="widgets_8php.html#a6dbc227aac750774284ee39c45f0a200">widget_tagcloud()</a>.</p>
+<p>Referenced by <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="items_8php.html#a56b2a4abcadfac71175cd50555528cc3">decode_tags()</a>, <a class="el" href="editpost_8php.html#a34011690864d122680c802e9e748ccfb">editpost_content()</a>, <a class="el" href="items_8php.html#ac6673627d289ee4f547de0fe3b7acd0a">encode_item_terms()</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="taxonomy_8php.html#a163b5131f388080b0fc82398d3a32fe1">file_tag_file_query()</a>, <a class="el" href="filerm_8php.html#ae2eb28d2054fa2c37e38689882172208">filerm_content()</a>, <a class="el" href="text_8php.html#a3054189cff173977f4216c9a3dd29e1b">format_categories()</a>, <a class="el" href="items_8php.html#a5e5be7bf1f8257dec0b2647e60a3f3f1">get_atom_elements()</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="refimport_8php.html#ad97ebb5feda0230a4834e0b3637a0d29">refimport_content()</a>, and <a class="el" href="widgets_8php.html#a6dbc227aac750774284ee39c45f0a200">widget_tagcloud()</a>.</p>
</div>
</div>
@@ -4639,7 +4940,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="diaspora_8php.html#a0fb2abe304aae19efc040a5e6b917829">diaspora_comment()</a>, <a class="el" href="diaspora_8php.html#a20b968d64ef26afe5cb0cc75a7570a31">diaspora_post()</a>, <a class="el" href="diaspora_8php.html#a2bf43f6b5890897f425ef4325d34b007">diaspora_reshare()</a>, <a class="el" href="items_8php.html#ac6673627d289ee4f547de0fe3b7acd0a">encode_item_terms()</a>, <a class="el" href="text_8php.html#a3a0c432a484c17d7720b8ba2d6bfdd59">format_hashtags()</a>, <a class="el" href="taxonomy_8php.html#adfead45e3b8a3dfb2b4a4b9281d0dbe1">format_term_for_display()</a>, <a class="el" href="items_8php.html#a5e5be7bf1f8257dec0b2647e60a3f3f1">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>
+<p>Referenced by <a class="el" href="channel_8php.html#a9c6a6179e0e626398ebecc6151905ef1">channel_content()</a>, <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="diaspora_8php.html#a0fb2abe304aae19efc040a5e6b917829">diaspora_comment()</a>, <a class="el" href="diaspora_8php.html#a20b968d64ef26afe5cb0cc75a7570a31">diaspora_post()</a>, <a class="el" href="diaspora_8php.html#a2bf43f6b5890897f425ef4325d34b007">diaspora_reshare()</a>, <a class="el" href="items_8php.html#ac6673627d289ee4f547de0fe3b7acd0a">encode_item_terms()</a>, <a class="el" href="text_8php.html#a3a0c432a484c17d7720b8ba2d6bfdd59">format_hashtags()</a>, <a class="el" href="taxonomy_8php.html#adfead45e3b8a3dfb2b4a4b9281d0dbe1">format_term_for_display()</a>, <a class="el" href="items_8php.html#a5e5be7bf1f8257dec0b2647e60a3f3f1">get_atom_elements()</a>, <a class="el" href="text_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>
@@ -4653,7 +4954,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="diaspora_8php.html#a0fb2abe304aae19efc040a5e6b917829">diaspora_comment()</a>, <a class="el" href="diaspora_8php.html#a20b968d64ef26afe5cb0cc75a7570a31">diaspora_post()</a>, <a class="el" href="diaspora_8php.html#a2bf43f6b5890897f425ef4325d34b007">diaspora_reshare()</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="text_8php.html#ad8c6e13d6accf057136c5f30a23a5f08">format_mentions()</a>, <a class="el" href="taxonomy_8php.html#adfead45e3b8a3dfb2b4a4b9281d0dbe1">format_term_for_display()</a>, <a class="el" href="items_8php.html#a5e5be7bf1f8257dec0b2647e60a3f3f1">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>
+<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="diaspora_8php.html#a0fb2abe304aae19efc040a5e6b917829">diaspora_comment()</a>, <a class="el" href="diaspora_8php.html#a20b968d64ef26afe5cb0cc75a7570a31">diaspora_post()</a>, <a class="el" href="diaspora_8php.html#a2bf43f6b5890897f425ef4325d34b007">diaspora_reshare()</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="text_8php.html#ad8c6e13d6accf057136c5f30a23a5f08">format_mentions()</a>, <a class="el" href="taxonomy_8php.html#adfead45e3b8a3dfb2b4a4b9281d0dbe1">format_term_for_display()</a>, <a class="el" href="items_8php.html#a5e5be7bf1f8257dec0b2647e60a3f3f1">get_atom_elements()</a>, <a class="el" href="text_8php.html#a76d1b3435c067978d7b484c45f56472b">get_mentions()</a>, <a class="el" href="text_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>
@@ -4715,7 +5016,7 @@ Variables</h2></td></tr>
</table>
</div><div class="memdoc">
-<p>Referenced by <a class="el" href="items_8php.html#aac8c9eb4338e2a996c43914392c6cfdb">delete_item_lowlevel()</a>, <a class="el" href="diaspora_8php.html#a0fb2abe304aae19efc040a5e6b917829">diaspora_comment()</a>, <a class="el" href="diaspora_8php.html#a20b968d64ef26afe5cb0cc75a7570a31">diaspora_post()</a>, <a class="el" href="diaspora_8php.html#a2bf43f6b5890897f425ef4325d34b007">diaspora_reshare()</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#a5e5be7bf1f8257dec0b2647e60a3f3f1">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>
+<p>Referenced by <a class="el" href="items_8php.html#aac8c9eb4338e2a996c43914392c6cfdb">delete_item_lowlevel()</a>, <a class="el" href="diaspora_8php.html#a0fb2abe304aae19efc040a5e6b917829">diaspora_comment()</a>, <a class="el" href="diaspora_8php.html#a20b968d64ef26afe5cb0cc75a7570a31">diaspora_post()</a>, <a class="el" href="diaspora_8php.html#a2bf43f6b5890897f425ef4325d34b007">diaspora_reshare()</a>, <a class="el" href="event_8php.html#a7378e839ac3de9d55579eb3ec48eaf92">event_store_item()</a>, <a class="el" href="events_8php.html#ab3e8a8f901175f8e40a8089eea45c075">events_post()</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#a5e5be7bf1f8257dec0b2647e60a3f3f1">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="refimport_8php.html#ad97ebb5feda0230a4834e0b3637a0d29">refimport_content()</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>
@@ -4769,7 +5070,7 @@ Variables</h2></td></tr>
</table>
</div><div class="memdoc">
-<p>Referenced by <a class="el" href="widgets_8php.html#a94203eb9bcd63cbdecbbcb15163598d8">widget_savedsearch()</a>.</p>
+<p>Referenced by <a class="el" href="identity_8php.html#afaedbc8e2d2a70ec8b006162baac5249">identity_basic_export()</a>, and <a class="el" href="widgets_8php.html#a94203eb9bcd63cbdecbbcb15163598d8">widget_savedsearch()</a>.</p>
</div>
</div>
@@ -4783,7 +5084,7 @@ Variables</h2></td></tr>
</table>
</div><div class="memdoc">
-<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>
+<p>Referenced by <a class="el" href="items_8php.html#a56b2a4abcadfac71175cd50555528cc3">decode_tags()</a>, <a class="el" href="identity_8php.html#afaedbc8e2d2a70ec8b006162baac5249">identity_basic_export()</a>, and <a class="el" href="thing_8php.html#a8be23b1d475ec3d9291999221c674c80">thing_init()</a>.</p>
</div>
</div>
@@ -4798,7 +5099,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>, and <a class="el" href="item_8php.html#aa22feef4de326e1d7078dedd892e615c">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>, and <a class="el" href="text_8php.html#aa22feef4de326e1d7078dedd892e615c">handle_tag()</a>.</p>
</div>
</div>
@@ -4854,7 +5155,7 @@ Variables</h2></td></tr>
</table>
</div><div class="memdoc">
-<p>Referenced by <a class="el" href="zot_8php.html#a528e97ca5d69c3b7f35c5d954afde315">import_xchan()</a>, <a class="el" href="dir__fns_8php.html#acd37b17dce3bdec6d5a6344a20598c1e">local_dir_update()</a>, <a class="el" href="onedirsync_8php.html#a411aedd47c57476099647961e6a86691">onedirsync_run()</a>, <a class="el" href="poller_8php.html#a5f12df3a4738124b6c039971e87e76da">poller_run()</a>, <a class="el" href="zot_8php.html#a9a57b40669351c9791126b925cb7ef3b">process_profile_delivery()</a>, <a class="el" href="zot_8php.html#ab319d1d9fff9c7775d9daef42d1f33dd">update_modtime()</a>, and <a class="el" href="zot_8php.html#a7ac30ff51274bf0b6d3eade37972145c">zot_refresh()</a>.</p>
+<p>Referenced by <a class="el" href="zot_8php.html#a528e97ca5d69c3b7f35c5d954afde315">import_xchan()</a>, <a class="el" href="dir__fns_8php.html#acd37b17dce3bdec6d5a6344a20598c1e">local_dir_update()</a>, <a class="el" href="onedirsync_8php.html#a411aedd47c57476099647961e6a86691">onedirsync_run()</a>, <a class="el" href="poller_8php.html#a5f12df3a4738124b6c039971e87e76da">poller_run()</a>, <a class="el" href="zot_8php.html#a8eeefdb0dad4c436bea9d1c06c0a7988">process_location_delivery()</a>, <a class="el" href="zot_8php.html#a9a57b40669351c9791126b925cb7ef3b">process_profile_delivery()</a>, <a class="el" href="zot_8php.html#ab319d1d9fff9c7775d9daef42d1f33dd">update_modtime()</a>, and <a class="el" href="zot_8php.html#a7ac30ff51274bf0b6d3eade37972145c">zot_refresh()</a>.</p>
</div>
</div>
@@ -4873,6 +5174,161 @@ Variables</h2></td></tr>
</div>
</div>
+<a class="anchor" id="a9f8a2938ddd9ee2867e6f8ce77b61b2f"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">const VNOTIFY_ALERT 0x0100</td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Referenced by <a class="el" href="ping_8php.html#a77217b1b190b4c5d8770867b45f0c0a1">ping_init()</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="ac89396b9144391acd08d6d0f9b332220"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">const VNOTIFY_BIRTHDAY 0x0020</td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Referenced by <a class="el" href="ping_8php.html#a77217b1b190b4c5d8770867b45f0c0a1">ping_init()</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="a7b511bd93202c43405adbe3b5bcebbfe"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">const VNOTIFY_CHANNEL 0x0002</td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Referenced by <a class="el" href="ping_8php.html#a77217b1b190b4c5d8770867b45f0c0a1">ping_init()</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="ad94aca4c260b8a892397786201dc4664"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">const VNOTIFY_EVENT 0x0008</td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Referenced by <a class="el" href="ping_8php.html#a77217b1b190b4c5d8770867b45f0c0a1">ping_init()</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="a76480b213af379c0c6c7fa4e39019ca9"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">const VNOTIFY_EVENTTODAY 0x0010</td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Referenced by <a class="el" href="ping_8php.html#a77217b1b190b4c5d8770867b45f0c0a1">ping_init()</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="a37281c30bd92cecb499878d6778c570f"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">const VNOTIFY_INFO 0x0080</td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Referenced by <a class="el" href="ping_8php.html#a77217b1b190b4c5d8770867b45f0c0a1">ping_init()</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="a1997c4b7d0253e036bc0fb6b20e4af71"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">const VNOTIFY_INTRO 0x0200</td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Referenced by <a class="el" href="ping_8php.html#a77217b1b190b4c5d8770867b45f0c0a1">ping_init()</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="a0afeb43da443d6ff3526ede5ecdcc3b3"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">const VNOTIFY_MAIL 0x0004</td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Referenced by <a class="el" href="ping_8php.html#a77217b1b190b4c5d8770867b45f0c0a1">ping_init()</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="a997614f25e58f8313641e1eb0109fd10"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">const VNOTIFY_NETWORK 0x0001</td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+<p>visual notification options </p>
+
+<p>Referenced by <a class="el" href="ping_8php.html#a77217b1b190b4c5d8770867b45f0c0a1">ping_init()</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="ae09767b94688657978ff9366ec63684b"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">const VNOTIFY_REGISTER 0x0400</td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Referenced by <a class="el" href="ping_8php.html#a77217b1b190b4c5d8770867b45f0c0a1">ping_init()</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="a7e5627b5ca4b7464feb0f08663b19ea1"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">const VNOTIFY_SYSTEM 0x0040</td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Referenced by <a class="el" href="ping_8php.html#a77217b1b190b4c5d8770867b45f0c0a1">ping_init()</a>.</p>
+
+</div>
+</div>
<a class="anchor" id="accd6f36cc9f40225cbd720e4d12a7c6e"></a>
<div class="memitem">
<div class="memproto">
@@ -4939,7 +5395,21 @@ 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="text_8php.html#ad6432621d0fafcbcf3d3b9b49bef7784">contact_block()</a>, <a class="el" href="dirsearch_8php.html#aa1fb04e1de4f25b63349ac78f94ceb4c">dirsearch_content()</a>, <a class="el" href="zot_8php.html#a528e97ca5d69c3b7f35c5d954afde315">import_xchan()</a>, <a class="el" href="manage_8php.html#a2bca247b5296827638959138367db4f5">manage_content()</a>, <a class="el" href="Contact_8php.html#a08845ce8c5b997d5edac38ae7118b5c8">mark_orphan_hubsxchans()</a>, <a class="el" href="ping_8php.html#a77217b1b190b4c5d8770867b45f0c0a1">ping_init()</a>, <a class="el" href="post_8php.html#af59e6a1dc22d19d9257b01cd7ccedb75">post_post()</a>, and <a class="el" href="viewconnections_8php.html#ab6c4d983e97b3a8a879567ff76507776">viewconnections_content()</a>.</p>
+<p>Referenced by <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="dirsearch_8php.html#aa1fb04e1de4f25b63349ac78f94ceb4c">dirsearch_content()</a>, <a class="el" href="manage_8php.html#a2bca247b5296827638959138367db4f5">manage_content()</a>, <a class="el" href="Contact_8php.html#a08845ce8c5b997d5edac38ae7118b5c8">mark_orphan_hubsxchans()</a>, <a class="el" href="ping_8php.html#a77217b1b190b4c5d8770867b45f0c0a1">ping_init()</a>, <a class="el" href="post_8php.html#af59e6a1dc22d19d9257b01cd7ccedb75">post_post()</a>, <a class="el" href="zot_8php.html#ab15c04e7e5f44edf45ec50dd7d183254">sync_locations()</a>, and <a class="el" href="viewconnections_8php.html#ab6c4d983e97b3a8a879567ff76507776">viewconnections_content()</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="a0209e605028a5bb492683951ab30d49d"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">const XCHAN_FLAGS_PUBFORUM 0x0020</td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Referenced by <a class="el" href="dirsearch_8php.html#aa1fb04e1de4f25b63349ac78f94ceb4c">dirsearch_content()</a>, and <a class="el" href="zot_8php.html#a528e97ca5d69c3b7f35c5d954afde315">import_xchan()</a>.</p>
</div>
</div>
@@ -4953,7 +5423,7 @@ 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#a20750dd2c36961013fd382fb34e1366c">import_directory_profile()</a>, and <a class="el" href="zot_8php.html#a528e97ca5d69c3b7f35c5d954afde315">import_xchan()</a>.</p>
+<p>Referenced by <a class="el" href="dirsearch_8php.html#aa1fb04e1de4f25b63349ac78f94ceb4c">dirsearch_content()</a>, <a class="el" href="zot_8php.html#a20750dd2c36961013fd382fb34e1366c">import_directory_profile()</a>, <a class="el" href="zot_8php.html#a528e97ca5d69c3b7f35c5d954afde315">import_xchan()</a>, and <a class="el" href="zot_8php.html#a0e3006e7a456b2175a9badc96bc5176d">process_delivery()</a>.</p>
</div>
</div>
@@ -4994,7 +5464,7 @@ Variables</h2></td></tr>
</table>
</div><div class="memdoc">
-<p>Referenced by <a class="el" href="include_2api_8php.html#a623793229a7256dd31bcfd5ab90eef08">api_statusnet_config()</a>, <a class="el" href="magic_8php.html#acea2cc792849ca2d71d4b689f66518bf">magic_init()</a>, and <a class="el" href="zot_8php.html#a3862b3161b2c8557dc1a95020179bd81">zot_build_packet()</a>.</p>
+<p>Referenced by <a class="el" href="include_2api_8php.html#a623793229a7256dd31bcfd5ab90eef08">api_statusnet_config()</a>, <a class="el" href="magic_8php.html#acea2cc792849ca2d71d4b689f66518bf">magic_init()</a>, and <a class="el" href="zot_8php.html#a084c581d534e7e3b759488b46602288f">zot_build_packet()</a>.</p>
</div>
</div>
diff --git a/doc/html/boot_8php.js b/doc/html/boot_8php.js
index f5ae164f7..b460c9fee 100644
--- a/doc/html/boot_8php.js
+++ b/doc/html/boot_8php.js
@@ -30,6 +30,7 @@ var boot_8php =
[ "is_windows", "boot_8php.html#ac5e74f899f6e98d8e91b14ba1c08bc08", null ],
[ "killme", "boot_8php.html#aea7fc57a4d8e9dcb42f2601b0b9b761c", null ],
[ "load_contact_links", "boot_8php.html#a719c7f3972d5f9268f37a41c76cd4ef6", null ],
+ [ "load_pdl", "boot_8php.html#a50a6707a28c7d05d3f49eaabc7994501", null ],
[ "local_user", "boot_8php.html#ad4c9dc2c8a82e8f52b7404c1655eab44", null ],
[ "login", "boot_8php.html#aefecf8599036df7f1b95d6820e0e2fa4", null ],
[ "notice", "boot_8php.html#a9255af5ae9c887520091ea04763c1a88", null ],
@@ -38,7 +39,7 @@ var boot_8php =
[ "remote_user", "boot_8php.html#a5542c5c2806ab8bca04bad53d47b5209", null ],
[ "startup", "boot_8php.html#aca47505b8732177f52bb2d647eb2741c", null ],
[ "system_unavailable", "boot_8php.html#ac608a34f3bc180e7724192e0fd31f9b0", null ],
- [ "x", "boot_8php.html#a01353c9abebc3544ea080ac161729632", null ],
+ [ "x", "boot_8php.html#ae97836b0547953be182a2334c9c91d3c", null ],
[ "z_path", "boot_8php.html#aba208673515cbb8a55e5fa4a1da99fda", null ],
[ "z_root", "boot_8php.html#add517a0958ac684792c62142a3877f81", null ],
[ "$DIRECTORY_FALLBACK_SERVERS", "boot_8php.html#a107d53f96acf5319905a34b1870db09a", null ],
@@ -100,6 +101,8 @@ var boot_8php =
[ "CONTACT_IS_FRIEND", "boot_8php.html#a27299ecfb9e9a99826f17a1c14c6995f", null ],
[ "CONTACT_IS_SHARING", "boot_8php.html#a6c5e9e293c8242dcb9bc2c3ea2fee2c9", null ],
[ "DB_UPDATE_VERSION", "boot_8php.html#ac59a18a4838710d6c2de37aed6b21f03", null ],
+ [ "DBTYPE_MYSQL", "boot_8php.html#a8c9a11c47394244cbe18cd75b9726d5f", null ],
+ [ "DBTYPE_POSTGRES", "boot_8php.html#a37ddabc112db443b4c67fbc0f708817e", null ],
[ "DEFAULT_DB_ENGINE", "boot_8php.html#aa8a2b61e70900139d1ca28e46f1da49d", null ],
[ "DIRECTORY_FALLBACK_MASTER", "boot_8php.html#abedd940e664017c61b48c6efa31d0cb8", null ],
[ "DIRECTORY_MODE_NORMAL", "boot_8php.html#ab7d65a7e7417825a4db62906bb600729", null ],
@@ -140,6 +143,7 @@ var boot_8php =
[ "ITEM_PENDING_REMOVE", "boot_8php.html#a028380b2902a86ba32198f6d3b5d10bb", null ],
[ "ITEM_RELAY", "boot_8php.html#a2958a2bd5422b85329d7c36c06dbc221", null ],
[ "ITEM_RETAINED", "boot_8php.html#a11cfe7d99b4dac0454d0de8873989f81", null ],
+ [ "ITEM_RSS", "boot_8php.html#ac4d1c93dabcace711ffb4931204c336b", null ],
[ "ITEM_SPAM", "boot_8php.html#a40d885b2cfd736aab4234ae641ca4dfb", null ],
[ "ITEM_STARRED", "boot_8php.html#a7af107fab8d62b9a73801713b774ed30", null ],
[ "ITEM_THREAD_TOP", "boot_8php.html#a749144d8dd9c1366596a0213c277d050", null ],
@@ -186,6 +190,7 @@ var boot_8php =
[ "NAMESPACE_STATUSNET", "boot_8php.html#afaf93b7026f784b113b4f8921745891e", null ],
[ "NAMESPACE_THREAD", "boot_8php.html#a1d6e7f4c08bb68e4a424326a811bdd86", null ],
[ "NAMESPACE_TOMB", "boot_8php.html#a4bfe22e163657690dfb6d5b1d04cb47e", null ],
+ [ "NAMESPACE_YMEDIA", "boot_8php.html#a3d48dffd9dc73a187263c3002cdf00c0", null ],
[ "NAMESPACE_ZOT", "boot_8php.html#a49f2a70b3b43aa904223a8d19e986a47", null ],
[ "NETWORK_DFRN", "boot_8php.html#ae3cef7b63e25e7bafea3fcf6b99fad0e", null ],
[ "NETWORK_DIASPORA", "boot_8php.html#a38f6c7fe33b5434a24b4314567753dfa", null ],
@@ -217,6 +222,7 @@ var boot_8php =
[ "PAGE_CENSORED", "boot_8php.html#a36003bebe4ce860c6652bcc3e09b2214", null ],
[ "PAGE_DIRECTORY_CHANNEL", "boot_8php.html#a5b8484922918946d041e5e0515dbe718", null ],
[ "PAGE_HIDDEN", "boot_8php.html#a5e322a2a2d0f51924c0b2e874988e640", null ],
+ [ "PAGE_HUBADMIN", "boot_8php.html#afbb21ecccac9819aa65397e816868a5f", null ],
[ "PAGE_NORMAL", "boot_8php.html#a09532c3f750ae8c4527e63b2b790cbf3", null ],
[ "PAGE_PREMIUM", "boot_8php.html#ab3920c2f3cd64802c0b7ff625c3b2ea8", null ],
[ "PAGE_REMOVED", "boot_8php.html#a4edce16cb7f21cdafa1e85bf63d713e6", null ],
@@ -246,6 +252,7 @@ var boot_8php =
[ "PERMS_W_STREAM", "boot_8php.html#a8bb0395933b5e886f086f6a2fb0bfa55", null ],
[ "PERMS_W_TAGWALL", "boot_8php.html#a99a4a17cb644e7e6826ea07ecaf09777", null ],
[ "PERMS_W_WALL", "boot_8php.html#a6b14a31a8aa9f3452a13383f413bffa2", null ],
+ [ "PHOTO_ADULT", "boot_8php.html#a921c55b9fa59a327a5f0e07fa1ccb2e0", null ],
[ "PHOTO_NORMAL", "boot_8php.html#a4a49b29838ef2c45ab3556b52baec6a4", null ],
[ "PHOTO_PROFILE", "boot_8php.html#ab4bc9c50ecc927b92d519e36562b0df0", null ],
[ "PHOTO_THING", "boot_8php.html#a78849a1bf8ce8d9804b4cbb502e8f383", null ],
@@ -286,11 +293,23 @@ var boot_8php =
[ "UPDATE_FLAGS_FORCED", "boot_8php.html#ab9dca53455cd157d3c6ba2bdecdbd22d", null ],
[ "UPDATE_FLAGS_UPDATED", "boot_8php.html#a9690d73434125ce594a1f5e7c2a4f7c0", null ],
[ "UPDATE_SUCCESS", "boot_8php.html#ac86615ddc0763a00f5311c90e991730c", null ],
+ [ "VNOTIFY_ALERT", "boot_8php.html#a9f8a2938ddd9ee2867e6f8ce77b61b2f", null ],
+ [ "VNOTIFY_BIRTHDAY", "boot_8php.html#ac89396b9144391acd08d6d0f9b332220", null ],
+ [ "VNOTIFY_CHANNEL", "boot_8php.html#a7b511bd93202c43405adbe3b5bcebbfe", null ],
+ [ "VNOTIFY_EVENT", "boot_8php.html#ad94aca4c260b8a892397786201dc4664", null ],
+ [ "VNOTIFY_EVENTTODAY", "boot_8php.html#a76480b213af379c0c6c7fa4e39019ca9", null ],
+ [ "VNOTIFY_INFO", "boot_8php.html#a37281c30bd92cecb499878d6778c570f", null ],
+ [ "VNOTIFY_INTRO", "boot_8php.html#a1997c4b7d0253e036bc0fb6b20e4af71", null ],
+ [ "VNOTIFY_MAIL", "boot_8php.html#a0afeb43da443d6ff3526ede5ecdcc3b3", null ],
+ [ "VNOTIFY_NETWORK", "boot_8php.html#a997614f25e58f8313641e1eb0109fd10", null ],
+ [ "VNOTIFY_REGISTER", "boot_8php.html#ae09767b94688657978ff9366ec63684b", null ],
+ [ "VNOTIFY_SYSTEM", "boot_8php.html#a7e5627b5ca4b7464feb0f08663b19ea1", null ],
[ "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_PUBFORUM", "boot_8php.html#a0209e605028a5bb492683951ab30d49d", null ],
[ "XCHAN_FLAGS_SELFCENSORED", "boot_8php.html#a5a681a672e007cdc22b43345d71f07c6", null ],
[ "XCHAN_FLAGS_SYSTEM", "boot_8php.html#afef254290febac854c85fc698d9483a6", null ],
[ "ZCURL_TIMEOUT", "boot_8php.html#a3cd42a70c6b3999590e4fd7a1a9096af", null ],
diff --git a/doc/html/chanman_8php.html b/doc/html/chanman_8php.html
index 4d829d819..de9e44539 100644
--- a/doc/html/chanman_8php.html
+++ b/doc/html/chanman_8php.html
@@ -4,7 +4,7 @@
<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/chanman.php File Reference</title>
+<title>The Red Matrix: include/chanman.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>
@@ -28,7 +28,7 @@
<table cellspacing="0" cellpadding="0">
<tbody>
<tr style="height: 56px;">
- <td id="projectlogo"><img alt="Logo" src="rhash-64.png"/></td>
+ <td id="projectlogo"><img alt="Logo" src="rm-64.png"/></td>
<td style="padding-left: 0.5em;">
<div id="projectname">The Red Matrix
</div>
@@ -103,10 +103,35 @@ $(document).ready(function(){initNavTree('chanman_8php.html','');});
</div>
<div class="header">
+ <div class="summary">
+<a href="#func-members">Functions</a> </div>
<div class="headertitle">
<div class="title">chanman.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:a21ba9a5c961e866ff27aee3ee67bf99b"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="chanman_8php.html#a21ba9a5c961e866ff27aee3ee67bf99b">chanman_remove_everything_from_network</a> ($channel_id)</td></tr>
+<tr class="separator:a21ba9a5c961e866ff27aee3ee67bf99b"><td class="memSeparator" colspan="2">&#160;</td></tr>
+</table>
+<h2 class="groupheader">Function Documentation</h2>
+<a class="anchor" id="a21ba9a5c961e866ff27aee3ee67bf99b"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">chanman_remove_everything_from_network </td>
+ <td>(</td>
+ <td class="paramtype">&#160;</td>
+ <td class="paramname"><em>$channel_id</em></td><td>)</td>
+ <td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+</div>
+</div>
</div><!-- contents -->
</div><!-- doc-content -->
diff --git a/doc/html/chanman_8php.js b/doc/html/chanman_8php.js
new file mode 100644
index 000000000..803e97f0b
--- /dev/null
+++ b/doc/html/chanman_8php.js
@@ -0,0 +1,4 @@
+var chanman_8php =
+[
+ [ "chanman_remove_everything_from_network", "chanman_8php.html#a21ba9a5c961e866ff27aee3ee67bf99b", null ]
+]; \ No newline at end of file
diff --git a/doc/html/channel_8php.html b/doc/html/channel_8php.html
index 61550f610..b9c52f43a 100644
--- a/doc/html/channel_8php.html
+++ b/doc/html/channel_8php.html
@@ -148,6 +148,7 @@ Functions</h2></td></tr>
</table>
</div><div class="memdoc">
<p>Get permissions SQL - if $remote_contact is true, our remote user has been pre-verified and we already have fetched his/her groups</p>
+<p>in "list mode", only mark the parent item and any like activities as "seen". We won't distinguish between comment likes and post likes. The important thing is that the number of unseen comments will be accurate. The SQL to separate the comment likes could also get somewhat hairy.</p>
<p>Referenced by <a class="el" href="update__channel_8php.html#aca52a9da500f0db2f0a8666af5bc06ba">update_channel_content()</a>.</p>
diff --git a/doc/html/classApp-members.html b/doc/html/classApp-members.html
index 6e2218d84..199120188 100644
--- a/doc/html/classApp-members.html
+++ b/doc/html/classApp-members.html
@@ -117,8 +117,6 @@ $(document).ready(function(){initNavTree('classApp.html','');});
<tr class="even"><td class="entry"><a class="el" href="classApp.html#af58db526040829b1c8bd95561b329262">$argc</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#ab3da757abe5cb45bf88f07cc51a73b58">$argv</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#ad5175536561021548ae8188e24c7b80c">$baseurl</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#abe0e4fa91097f7a6588e1213a834121c">$cached_profile_image</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#aab4a685d15a363bb1d7edbbc20bfb94e">$cached_profile_picdate</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#a5cfc098c061b7d765add58fd2ca97445">$category</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#a050b0696118da47e8b30859ad1a2c149">$channel</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#ad1c8eb91a6fd470b94f34b7fdad3a2d0">$cid</a></td><td class="entry"><a class="el" href="classApp.html">App</a></td><td class="entry"></td></tr>
@@ -128,18 +126,16 @@ $(document).ready(function(){initNavTree('classApp.html','');});
<tr><td class="entry"><a class="el" href="classApp.html#a61ca6e3af82071ea25ff2fd5dbcddae2">$contacts</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#ac1d80a14492acc932715d54567d8a589">$content</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#a6f55d087e1ff4710132c1b0863faa2ee">$css_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#a256360c9184fed6d7556e0bc0a835d7f">$curl_code</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#af5007c42a693afd9c4899c243b2e1363">$curl_headers</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#a0ce85be198e46570366cb3344f3c55b8">$data</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#a330410a288f3393d53772f5e98f857ea">$db</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#ac1a8b2cd40609b231a560201a08852ba">$error</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#ae3f47830543d0d902f66913def8db66b">$force_max_items</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#ac6e6b1c7d6df408580ff79977fcfa656">$groups</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#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#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><td class="entry"><a class="el" href="classApp.html#ac1a8b2cd40609b231a560201a08852ba">$error</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#ae3f47830543d0d902f66913def8db66b">$force_max_items</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#ac6e6b1c7d6df408580ff79977fcfa656">$groups</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#a3694aa1907aa103a2adbc71f926f0fa0">$hooks</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#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 class="even"><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><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 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#a1f60d19d47021629faac7a0a6d917e94">$is_sys</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>
@@ -170,40 +166,39 @@ $(document).ready(function(){initNavTree('classApp.html','');});
<tr><td class="entry"><a class="el" href="classApp.html#a91fd3c8b89016113b05f3be24805ccff">$user</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#a56b1a432c96aef8b1971f779c9d93c8c">$videoheight</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#adf2aaf95b062736a6fd5fc70fadf80e8">$videowidth</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#a4833bee2eae4ad1691a04fa19e11a766">$widgetlist</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#aa5a87c46ab3fee21362c466bf78042ef">$widgets</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#af6d39f63fb7116bbeb04e51696f99474">__construct</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#a08f0537964d98958d218066364cff785">build_pagehead</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#a08bc87aff64f39fbc084e9d6545cee4d">get_account</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#a5c63eabdc7fdd8b6e3348980ec16a3ad">get_apps</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#a604d659d6977a99de42a160343e5289a">get_baseurl</a>($ssl=false)</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#a084e03c77686d8c13390fef3f7428a2b">get_channel</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#a4659785d13e4bac0bed50dbb1b0d4299">get_groups</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#a622eace13f8fc9f4b5672a68e2bc4396">get_hostname</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#a1ad3bb1b68439b3b7cbe630918e618d2">get_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#a5293a8543ba338dcf38cd4ff3bc5d4be">get_path</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#adb5a4bb657881e553978ff390babd01f">get_perms</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#acb27e607fe4c82603444676e25c36b70">get_template_engine</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#a2eb832a8577dee7d40b93abdf6d1d35a">get_template_ldelim</a>($engine= 'smarty3')</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#aab23c59172310fd30f2d60dc039d3eea">get_template_rdelim</a>($engine= 'smarty3')</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#a871898becd0697d778f36d9336253ae8">get_widgets</a>($location= '')</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#af17df107f2216ddf5ad2a7e0f2ba2166">head_get_icon</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#a8863703a0305eaa45eb970dbd2046291">head_set_icon</a>($icon)</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#abf46a653d8499e7c253cc1be894a6d83">register_template_engine</a>($class, $name= '')</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#aeb1fe1c8ad9aa639909bd183ce578536">set_account</a>($acct)</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#abea5a4f77dcd53c928dc4eed86616637">set_apps</a>($arr)</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#a78788f6e9d8b713b138f81e457c5cd08">set_baseurl</a>($url)</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#a89e9feb2bfb5253883a9720beaffe876">set_channel</a>($channel)</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#a3d84af5e42082098672531cd1a618853">set_groups</a>($g)</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#a344d2b7dc2f276648d521aee4da1731c">set_hostname</a>($h)</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#a4776d9322edea17fae56afa5d01a323e">set_observer</a>($xchan)</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#a4bdd7bfed62f50515fce652127bf481b">set_pager_itemspage</a>($n)</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#a560189f048d3db2f526841963cc43e97">set_pager_total</a>($n)</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#adb060d5c7f35a521ec7ec0effbe08097">set_path</a>($p)</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#a557d7b779d8259027f4724ebf7b248dc">set_perms</a>($perms)</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#a20d1890cc16b22ba79eeb0cbf2f719f7">set_template_engine</a>($engine= 'smarty3')</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#a123b903dfe5d3488cc68db3471d36fd2">set_widget</a>($title, $html, $location= 'aside')</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#a94a1ed2dc493c58612d17035b74ae736">template_engine</a>($name= '')</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#aa5a87c46ab3fee21362c466bf78042ef">$widgets</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#af6d39f63fb7116bbeb04e51696f99474">__construct</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#a08f0537964d98958d218066364cff785">build_pagehead</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#a08bc87aff64f39fbc084e9d6545cee4d">get_account</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#a5c63eabdc7fdd8b6e3348980ec16a3ad">get_apps</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#a604d659d6977a99de42a160343e5289a">get_baseurl</a>($ssl=false)</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#a084e03c77686d8c13390fef3f7428a2b">get_channel</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#a4659785d13e4bac0bed50dbb1b0d4299">get_groups</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#a622eace13f8fc9f4b5672a68e2bc4396">get_hostname</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#a1ad3bb1b68439b3b7cbe630918e618d2">get_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#a5293a8543ba338dcf38cd4ff3bc5d4be">get_path</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#adb5a4bb657881e553978ff390babd01f">get_perms</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#acb27e607fe4c82603444676e25c36b70">get_template_engine</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#a2eb832a8577dee7d40b93abdf6d1d35a">get_template_ldelim</a>($engine= 'smarty3')</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#aab23c59172310fd30f2d60dc039d3eea">get_template_rdelim</a>($engine= 'smarty3')</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#a871898becd0697d778f36d9336253ae8">get_widgets</a>($location= '')</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#af17df107f2216ddf5ad2a7e0f2ba2166">head_get_icon</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#a8863703a0305eaa45eb970dbd2046291">head_set_icon</a>($icon)</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#abf46a653d8499e7c253cc1be894a6d83">register_template_engine</a>($class, $name= '')</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#aeb1fe1c8ad9aa639909bd183ce578536">set_account</a>($acct)</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#abea5a4f77dcd53c928dc4eed86616637">set_apps</a>($arr)</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#a78788f6e9d8b713b138f81e457c5cd08">set_baseurl</a>($url)</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#a89e9feb2bfb5253883a9720beaffe876">set_channel</a>($channel)</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#a3d84af5e42082098672531cd1a618853">set_groups</a>($g)</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#a344d2b7dc2f276648d521aee4da1731c">set_hostname</a>($h)</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#a4776d9322edea17fae56afa5d01a323e">set_observer</a>($xchan)</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#a4bdd7bfed62f50515fce652127bf481b">set_pager_itemspage</a>($n)</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#a560189f048d3db2f526841963cc43e97">set_pager_total</a>($n)</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#adb060d5c7f35a521ec7ec0effbe08097">set_path</a>($p)</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#a557d7b779d8259027f4724ebf7b248dc">set_perms</a>($perms)</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#a20d1890cc16b22ba79eeb0cbf2f719f7">set_template_engine</a>($engine= 'smarty3')</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#a123b903dfe5d3488cc68db3471d36fd2">set_widget</a>($title, $html, $location= 'aside')</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#a94a1ed2dc493c58612d17035b74ae736">template_engine</a>($name= '')</td><td class="entry"><a class="el" href="classApp.html">App</a></td><td class="entry"></td></tr>
</table></div><!-- contents -->
</div><!-- doc-content -->
diff --git a/doc/html/classApp.html b/doc/html/classApp.html
index bd8e6bbf0..e3d0760b2 100644
--- a/doc/html/classApp.html
+++ b/doc/html/classApp.html
@@ -114,6 +114,9 @@ $(document).ready(function(){initNavTree('classApp.html','');});
<div class="title">App Class Reference</div> </div>
</div><!--header-->
<div class="contents">
+
+<p>Our main application structure for the life of this page.
+ <a href="classApp.html#details">More...</a></p>
<table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="pub-methods"></a>
Public Member Functions</h2></td></tr>
@@ -170,6 +173,7 @@ Public Member Functions</h2></td></tr>
<tr class="memitem:a94a1ed2dc493c58612d17035b74ae736"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classApp.html#a94a1ed2dc493c58612d17035b74ae736">template_engine</a> ($name= '')</td></tr>
<tr class="separator:a94a1ed2dc493c58612d17035b74ae736"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:acb27e607fe4c82603444676e25c36b70"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classApp.html#acb27e607fe4c82603444676e25c36b70">get_template_engine</a> ()</td></tr>
+<tr class="memdesc:acb27e607fe4c82603444676e25c36b70"><td class="mdescLeft">&#160;</td><td class="mdescRight">Returns the active template engine. <a href="#acb27e607fe4c82603444676e25c36b70">More...</a><br/></td></tr>
<tr class="separator:acb27e607fe4c82603444676e25c36b70"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a20d1890cc16b22ba79eeb0cbf2f719f7"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classApp.html#a20d1890cc16b22ba79eeb0cbf2f719f7">set_template_engine</a> ($engine= 'smarty3')</td></tr>
<tr class="separator:a20d1890cc16b22ba79eeb0cbf2f719f7"><td class="memSeparator" colspan="2">&#160;</td></tr>
@@ -254,6 +258,8 @@ Public Attributes</h2></td></tr>
<tr class="separator:a11e24b3ed9b33ffee7dd41d110b4366d"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:aeca29fd4f7192ca07369b3c598c36e67"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classApp.html#aeca29fd4f7192ca07369b3c598c36e67">$theme_info</a> = array()</td></tr>
<tr class="separator:aeca29fd4f7192ca07369b3c598c36e67"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a1f60d19d47021629faac7a0a6d917e94"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classApp.html#a1f60d19d47021629faac7a0a6d917e94">$is_sys</a> = false</td></tr>
+<tr class="separator:a1f60d19d47021629faac7a0a6d917e94"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a33a8e90b60ec4438f6fbf299d0f6839c"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classApp.html#a33a8e90b60ec4438f6fbf299d0f6839c">$nav_sel</a></td></tr>
<tr class="separator:a33a8e90b60ec4438f6fbf299d0f6839c"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a5cfc098c061b7d765add58fd2ca97445"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classApp.html#a5cfc098c061b7d765add58fd2ca97445">$category</a></td></tr>
@@ -279,8 +285,6 @@ Private Attributes</h2></td></tr>
<tr class="separator:ab47de68fa39806d1fb0976407e188b77"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:aa5a87c46ab3fee21362c466bf78042ef"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classApp.html#aa5a87c46ab3fee21362c466bf78042ef">$widgets</a> = array()</td></tr>
<tr class="separator:aa5a87c46ab3fee21362c466bf78042ef"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:a4833bee2eae4ad1691a04fa19e11a766"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classApp.html#a4833bee2eae4ad1691a04fa19e11a766">$widgetlist</a> = null</td></tr>
-<tr class="separator:a4833bee2eae4ad1691a04fa19e11a766"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a230e975296cf164da2fee35ef720964f"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classApp.html#a230e975296cf164da2fee35ef720964f">$apps</a> = array()</td></tr>
<tr class="separator:a230e975296cf164da2fee35ef720964f"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a764cc6cd7578132c21d2b4545de9301c"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classApp.html#a764cc6cd7578132c21d2b4545de9301c">$theme</a></td></tr>
@@ -297,20 +301,11 @@ Private Attributes</h2></td></tr>
<tr class="separator:ad5175536561021548ae8188e24c7b80c"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:acad5896b7a79ae31433ad8f89606c728"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classApp.html#acad5896b7a79ae31433ad8f89606c728">$path</a></td></tr>
<tr class="separator:acad5896b7a79ae31433ad8f89606c728"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:a330410a288f3393d53772f5e98f857ea"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classApp.html#a330410a288f3393d53772f5e98f857ea">$db</a></td></tr>
-<tr class="separator:a330410a288f3393d53772f5e98f857ea"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:a256360c9184fed6d7556e0bc0a835d7f"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classApp.html#a256360c9184fed6d7556e0bc0a835d7f">$curl_code</a></td></tr>
-<tr class="separator:a256360c9184fed6d7556e0bc0a835d7f"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:af5007c42a693afd9c4899c243b2e1363"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classApp.html#af5007c42a693afd9c4899c243b2e1363">$curl_headers</a></td></tr>
-<tr class="separator:af5007c42a693afd9c4899c243b2e1363"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:abe0e4fa91097f7a6588e1213a834121c"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classApp.html#abe0e4fa91097f7a6588e1213a834121c">$cached_profile_image</a></td></tr>
-<tr class="separator:abe0e4fa91097f7a6588e1213a834121c"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:aab4a685d15a363bb1d7edbbc20bfb94e"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classApp.html#aab4a685d15a363bb1d7edbbc20bfb94e">$cached_profile_picdate</a></td></tr>
-<tr class="separator:aab4a685d15a363bb1d7edbbc20bfb94e"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table>
<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
-<div class="textblock"><p>class: <a class="el" href="classApp.html">App</a></p>
-<p>Our main application structure for the life of this page Primarily deals with the URL that got us here and tries to make some sense of it, and stores our page contents and config storage and anything else that might need to be passed around before we spit the page out. </p>
+<div class="textblock"><p>Our main application structure for the life of this page. </p>
+<p>class: <a class="el" href="classApp.html" title="Our main application structure for the life of this page.">App</a></p>
+<p>Primarily deals with the URL that got us here and tries to make some sense of it, and stores our page contents and config storage and anything else that might need to be passed around before we spit the page out. </p>
</div><h2 class="groupheader">Constructor &amp; Destructor Documentation</h2>
<a class="anchor" id="af6d39f63fb7116bbeb04e51696f99474"></a>
<div class="memitem">
@@ -324,6 +319,7 @@ Private Attributes</h2></td></tr>
</tr>
</table>
</div><div class="memdoc">
+<p><a class="el" href="classApp.html" title="Our main application structure for the life of this page.">App</a> constructor. </p>
<p>Figure out if we are running at the top of a domain or in a sub-directory and adjust accordingly</p>
<p>Break the URL path into C style argc/argv style arguments for our modules. Given "http://example.com/module/arg1/arg2", $this-&gt;argc will be 3 (integer) and $this-&gt;argv will contain: [0] =&gt; 'module' [1] =&gt; 'arg1' [2] =&gt; 'arg2'</p>
<p>There will always be one argument. If provided a naked domain URL, $this-&gt;argv[0] is set to "home".</p>
@@ -500,6 +496,9 @@ Private Attributes</h2></td></tr>
</table>
</div><div class="memdoc">
+<p>Returns the active template engine. </p>
+<dl class="section return"><dt>Returns</dt><dd>string </dd></dl>
+
</div>
</div>
<a class="anchor" id="a2eb832a8577dee7d40b93abdf6d1d35a"></a>
@@ -861,7 +860,7 @@ Private Attributes</h2></td></tr>
<p>return template engine instance. If $name is not defined, return engine defined by theme, or default</p>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
- <tr><td class="paramtype">strin</td><td class="paramname">$name</td><td><a class="el" href="classTemplate.html">Template</a> engine name </td></tr>
+ <tr><td class="paramtype">string</td><td class="paramname">$name</td><td><a class="el" href="classTemplate.html">Template</a> engine name</td></tr>
</table>
</dd>
</dl>
@@ -952,46 +951,6 @@ Private Attributes</h2></td></tr>
</div>
</div>
-<a class="anchor" id="abe0e4fa91097f7a6588e1213a834121c"></a>
-<div class="memitem">
-<div class="memproto">
-<table class="mlabels">
- <tr>
- <td class="mlabels-left">
- <table class="memname">
- <tr>
- <td class="memname">App::$cached_profile_image</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>
-<a class="anchor" id="aab4a685d15a363bb1d7edbbc20bfb94e"></a>
-<div class="memitem">
-<div class="memproto">
-<table class="mlabels">
- <tr>
- <td class="mlabels-left">
- <table class="memname">
- <tr>
- <td class="memname">App::$cached_profile_picdate</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>
<a class="anchor" id="a5cfc098c061b7d765add58fd2ca97445"></a>
<div class="memitem">
<div class="memproto">
@@ -1102,46 +1061,6 @@ Private Attributes</h2></td></tr>
</div>
</div>
-<a class="anchor" id="a256360c9184fed6d7556e0bc0a835d7f"></a>
-<div class="memitem">
-<div class="memproto">
-<table class="mlabels">
- <tr>
- <td class="mlabels-left">
- <table class="memname">
- <tr>
- <td class="memname">App::$curl_code</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>
-<a class="anchor" id="af5007c42a693afd9c4899c243b2e1363"></a>
-<div class="memitem">
-<div class="memproto">
-<table class="mlabels">
- <tr>
- <td class="mlabels-left">
- <table class="memname">
- <tr>
- <td class="memname">App::$curl_headers</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>
<a class="anchor" id="a0ce85be198e46570366cb3344f3c55b8"></a>
<div class="memitem">
<div class="memproto">
@@ -1154,26 +1073,6 @@ Private Attributes</h2></td></tr>
</div>
</div>
-<a class="anchor" id="a330410a288f3393d53772f5e98f857ea"></a>
-<div class="memitem">
-<div class="memproto">
-<table class="mlabels">
- <tr>
- <td class="mlabels-left">
- <table class="memname">
- <tr>
- <td class="memname">App::$db</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>
<a class="anchor" id="ac1a8b2cd40609b231a560201a08852ba"></a>
<div class="memitem">
<div class="memproto">
@@ -1282,6 +1181,18 @@ Private Attributes</h2></td></tr>
</div>
</div>
+<a class="anchor" id="a1f60d19d47021629faac7a0a6d917e94"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">App::$is_sys = false</td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+</div>
+</div>
<a class="anchor" id="a11e24b3ed9b33ffee7dd41d110b4366d"></a>
<div class="memitem">
<div class="memproto">
@@ -1715,26 +1626,6 @@ Private Attributes</h2></td></tr>
</div>
</div>
-<a class="anchor" id="a4833bee2eae4ad1691a04fa19e11a766"></a>
-<div class="memitem">
-<div class="memproto">
-<table class="mlabels">
- <tr>
- <td class="mlabels-left">
- <table class="memname">
- <tr>
- <td class="memname">App::$widgetlist = null</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>
<a class="anchor" id="aa5a87c46ab3fee21362c466bf78042ef"></a>
<div class="memitem">
<div class="memproto">
@@ -1753,8 +1644,6 @@ Private Attributes</h2></td></tr>
</table>
</div><div class="memdoc">
-<p>Referenced by <a class="el" href="classApp.html#a871898becd0697d778f36d9336253ae8">get_widgets()</a>.</p>
-
</div>
</div>
<hr/>The documentation for this class was generated from the following file:<ul>
diff --git a/doc/html/classApp.js b/doc/html/classApp.js
index c7c8e3b05..248861737 100644
--- a/doc/html/classApp.js
+++ b/doc/html/classApp.js
@@ -37,8 +37,6 @@ var classApp =
[ "$argc", "classApp.html#af58db526040829b1c8bd95561b329262", null ],
[ "$argv", "classApp.html#ab3da757abe5cb45bf88f07cc51a73b58", null ],
[ "$baseurl", "classApp.html#ad5175536561021548ae8188e24c7b80c", null ],
- [ "$cached_profile_image", "classApp.html#abe0e4fa91097f7a6588e1213a834121c", null ],
- [ "$cached_profile_picdate", "classApp.html#aab4a685d15a363bb1d7edbbc20bfb94e", null ],
[ "$category", "classApp.html#a5cfc098c061b7d765add58fd2ca97445", null ],
[ "$channel", "classApp.html#a050b0696118da47e8b30859ad1a2c149", null ],
[ "$cid", "classApp.html#ad1c8eb91a6fd470b94f34b7fdad3a2d0", null ],
@@ -48,10 +46,7 @@ var classApp =
[ "$contacts", "classApp.html#a61ca6e3af82071ea25ff2fd5dbcddae2", null ],
[ "$content", "classApp.html#ac1d80a14492acc932715d54567d8a589", null ],
[ "$css_sources", "classApp.html#a6f55d087e1ff4710132c1b0863faa2ee", null ],
- [ "$curl_code", "classApp.html#a256360c9184fed6d7556e0bc0a835d7f", null ],
- [ "$curl_headers", "classApp.html#af5007c42a693afd9c4899c243b2e1363", null ],
[ "$data", "classApp.html#a0ce85be198e46570366cb3344f3c55b8", null ],
- [ "$db", "classApp.html#a330410a288f3393d53772f5e98f857ea", null ],
[ "$error", "classApp.html#ac1a8b2cd40609b231a560201a08852ba", null ],
[ "$force_max_items", "classApp.html#ae3f47830543d0d902f66913def8db66b", null ],
[ "$groups", "classApp.html#ac6e6b1c7d6df408580ff79977fcfa656", null ],
@@ -60,6 +55,7 @@ var classApp =
[ "$identities", "classApp.html#a7954862f44f606b0ff83d4c74d15e792", null ],
[ "$install", "classApp.html#a576ecb1c5b4a283221e6f2f0ec248251", null ],
[ "$interactive", "classApp.html#a4c7cfc62d39508086cf300dc2e39c4df", null ],
+ [ "$is_sys", "classApp.html#a1f60d19d47021629faac7a0a6d917e94", null ],
[ "$js_sources", "classApp.html#a11e24b3ed9b33ffee7dd41d110b4366d", null ],
[ "$language", "classApp.html#a1a297e70b3667b83f4460aa7ed9f5d6f", null ],
[ "$layout", "classApp.html#a58ac598544892ff7c32890291b72635e", null ],
@@ -90,6 +86,5 @@ var classApp =
[ "$user", "classApp.html#a91fd3c8b89016113b05f3be24805ccff", null ],
[ "$videoheight", "classApp.html#a56b1a432c96aef8b1971f779c9d93c8c", null ],
[ "$videowidth", "classApp.html#adf2aaf95b062736a6fd5fc70fadf80e8", null ],
- [ "$widgetlist", "classApp.html#a4833bee2eae4ad1691a04fa19e11a766", null ],
[ "$widgets", "classApp.html#aa5a87c46ab3fee21362c466bf78042ef", null ]
]; \ No newline at end of file
diff --git a/doc/html/classItem-members.html b/doc/html/classItem-members.html
index 3da704b93..1a4f80c9a 100644
--- a/doc/html/classItem-members.html
+++ b/doc/html/classItem-members.html
@@ -118,20 +118,22 @@ $(document).ready(function(){initNavTree('classItem.html','');});
<tr><td class="entry"><a class="el" href="classItem.html#aa2c221231ad0fc3720ccc1f00f0c6304">$commentable</a></td><td class="entry"><a class="el" href="classItem.html">Item</a></td><td class="entry"><span class="mlabel">private</span></td></tr>
<tr class="even"><td class="entry"><a class="el" href="classItem.html#a007424e3e3171dcfb4312a02161da6cd">$conversation</a></td><td class="entry"><a class="el" href="classItem.html">Item</a></td><td class="entry"><span class="mlabel">private</span></td></tr>
<tr><td class="entry"><a class="el" href="classItem.html#aec24e233f9098f902b1e57e60dcb2019">$data</a></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#a9594df6014b0b6f45364ea7a34510130">$owner_name</a></td><td class="entry"><a class="el" href="classItem.html">Item</a></td><td class="entry"><span class="mlabel">private</span></td></tr>
- <tr><td class="entry"><a class="el" href="classItem.html#a078f95b4134ce3a1df344cf8d386f986">$owner_photo</a></td><td class="entry"><a class="el" href="classItem.html">Item</a></td><td class="entry"><span class="mlabel">private</span></td></tr>
- <tr class="even"><td class="entry"><a class="el" href="classItem.html#afa54851df82962c7c42dea3cc9f5c92c">$owner_url</a></td><td class="entry"><a class="el" href="classItem.html">Item</a></td><td class="entry"><span class="mlabel">private</span></td></tr>
- <tr><td class="entry"><a class="el" href="classItem.html#a1a1e42877e6ac7af50286142ceb483d2">$parent</a></td><td class="entry"><a class="el" href="classItem.html">Item</a></td><td class="entry"><span class="mlabel">private</span></td></tr>
- <tr class="even"><td class="entry"><a class="el" href="classItem.html#a5b561415861f5b89b0733aacfe0428d1">$redirect_url</a></td><td class="entry"><a class="el" href="classItem.html">Item</a></td><td class="entry"><span class="mlabel">private</span></td></tr>
- <tr><td class="entry"><a class="el" href="classItem.html#a7f7bc059de377319282cb4ef4a828480">$template</a></td><td class="entry"><a class="el" href="classItem.html">Item</a></td><td class="entry"><span class="mlabel">private</span></td></tr>
- <tr class="even"><td class="entry"><a class="el" href="classItem.html#a1cb6aa8abdf7ea7daca647e40c8ea3a2">$threaded</a></td><td class="entry"><a class="el" href="classItem.html">Item</a></td><td class="entry"><span class="mlabel">private</span></td></tr>
- <tr><td class="entry"><a class="el" href="classItem.html#a5cfa6cf964f433a917a81cab079ff9d8">$toplevel</a></td><td class="entry"><a class="el" href="classItem.html">Item</a></td><td class="entry"><span class="mlabel">private</span></td></tr>
- <tr class="even"><td class="entry"><a class="el" href="classItem.html#a4a123ae98987c1e30ecb15c4edf5a3b8">$visiting</a></td><td class="entry"><a class="el" href="classItem.html">Item</a></td><td class="entry"><span class="mlabel">private</span></td></tr>
- <tr><td class="entry"><a class="el" href="classItem.html#a5d29ddecc073151a65a8e2ea2f6e4189">$wall_to_wall</a></td><td class="entry"><a class="el" href="classItem.html">Item</a></td><td class="entry"><span class="mlabel">private</span></td></tr>
- <tr class="even"><td class="entry"><a class="el" href="classItem.html#a248f45871ecfe82a08d1d4c0769b2eb2">__construct</a>($data)</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#a80dcd9d0f548c3ad550abe7e6981fb51">add_child</a>($item)</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#abcdb0ea9bcd1576bc99bba9b8f700bb8">check_wall_to_wall</a>()</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#aca1e66988ed00cd627b2a359b72cd0ae">count_descendants</a>()</td><td class="entry"><a class="el" href="classItem.html">Item</a></td><td class="entry"><span class="mlabel">private</span></td></tr>
+ <tr class="even"><td class="entry"><a class="el" href="classItem.html#a88a99e2d1245925867f249f543358e72">$display_mode</a></td><td class="entry"><a class="el" href="classItem.html">Item</a></td><td class="entry"><span class="mlabel">private</span></td></tr>
+ <tr><td class="entry"><a class="el" href="classItem.html#a9594df6014b0b6f45364ea7a34510130">$owner_name</a></td><td class="entry"><a class="el" href="classItem.html">Item</a></td><td class="entry"><span class="mlabel">private</span></td></tr>
+ <tr class="even"><td class="entry"><a class="el" href="classItem.html#a078f95b4134ce3a1df344cf8d386f986">$owner_photo</a></td><td class="entry"><a class="el" href="classItem.html">Item</a></td><td class="entry"><span class="mlabel">private</span></td></tr>
+ <tr><td class="entry"><a class="el" href="classItem.html#afa54851df82962c7c42dea3cc9f5c92c">$owner_url</a></td><td class="entry"><a class="el" href="classItem.html">Item</a></td><td class="entry"><span class="mlabel">private</span></td></tr>
+ <tr class="even"><td class="entry"><a class="el" href="classItem.html#a1a1e42877e6ac7af50286142ceb483d2">$parent</a></td><td class="entry"><a class="el" href="classItem.html">Item</a></td><td class="entry"><span class="mlabel">private</span></td></tr>
+ <tr><td class="entry"><a class="el" href="classItem.html#a5b561415861f5b89b0733aacfe0428d1">$redirect_url</a></td><td class="entry"><a class="el" href="classItem.html">Item</a></td><td class="entry"><span class="mlabel">private</span></td></tr>
+ <tr class="even"><td class="entry"><a class="el" href="classItem.html#a7f7bc059de377319282cb4ef4a828480">$template</a></td><td class="entry"><a class="el" href="classItem.html">Item</a></td><td class="entry"><span class="mlabel">private</span></td></tr>
+ <tr><td class="entry"><a class="el" href="classItem.html#a1cb6aa8abdf7ea7daca647e40c8ea3a2">$threaded</a></td><td class="entry"><a class="el" href="classItem.html">Item</a></td><td class="entry"><span class="mlabel">private</span></td></tr>
+ <tr class="even"><td class="entry"><a class="el" href="classItem.html#a5cfa6cf964f433a917a81cab079ff9d8">$toplevel</a></td><td class="entry"><a class="el" href="classItem.html">Item</a></td><td class="entry"><span class="mlabel">private</span></td></tr>
+ <tr><td class="entry"><a class="el" href="classItem.html#a4a123ae98987c1e30ecb15c4edf5a3b8">$visiting</a></td><td class="entry"><a class="el" href="classItem.html">Item</a></td><td class="entry"><span class="mlabel">private</span></td></tr>
+ <tr class="even"><td class="entry"><a class="el" href="classItem.html#a5d29ddecc073151a65a8e2ea2f6e4189">$wall_to_wall</a></td><td class="entry"><a class="el" href="classItem.html">Item</a></td><td class="entry"><span class="mlabel">private</span></td></tr>
+ <tr><td class="entry"><a class="el" href="classItem.html#a248f45871ecfe82a08d1d4c0769b2eb2">__construct</a>($data)</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#a80dcd9d0f548c3ad550abe7e6981fb51">add_child</a>($item)</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#abcdb0ea9bcd1576bc99bba9b8f700bb8">check_wall_to_wall</a>()</td><td class="entry"><a class="el" href="classItem.html">Item</a></td><td class="entry"><span class="mlabel">protected</span></td></tr>
+ <tr class="even"><td class="entry"><a class="el" href="classItem.html#aca1e66988ed00cd627b2a359b72cd0ae">count_descendants</a>()</td><td class="entry"><a class="el" href="classItem.html">Item</a></td><td class="entry"><span class="mlabel">private</span></td></tr>
+ <tr><td class="entry"><a class="el" href="classItem.html#ae0c48b2fed5558642549cabd547fc4f3">count_unseen_descendants</a>()</td><td class="entry"><a class="el" href="classItem.html">Item</a></td><td class="entry"><span class="mlabel">private</span></td></tr>
<tr class="even"><td class="entry"><a class="el" href="classBaseObject.html#ac43f10e69ce80c78e4870636250fc8a2">get_app</a>()</td><td class="entry"><a class="el" href="classBaseObject.html">BaseObject</a></td><td class="entry"></td></tr>
<tr><td class="entry"><a class="el" href="classItem.html#a632185dd25c5caf277067c76230a4320">get_child</a>($id)</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#aa0ee775ec94abccec6c798428835d001">get_children</a>()</td><td class="entry"><a class="el" href="classItem.html">Item</a></td><td class="entry"></td></tr>
@@ -140,26 +142,28 @@ $(document).ready(function(){initNavTree('classItem.html','');});
<tr><td class="entry"><a class="el" href="classItem.html#a0c301aaed2b7d682728d18db3a22afa3">get_conversation</a>()</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#ad3638f93065693c1f69eb349feb1b7aa">get_data</a>()</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#ac6f1c96cc82a0dfb7e881fc70309ea3c">get_data_value</a>($name)</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#ac0f27e58532612f6e7a54c8a621b9b92">get_id</a>()</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#a67892aa23d19f4431bb2e5f43c74000e">get_owner_name</a>()</td><td class="entry"><a class="el" href="classItem.html">Item</a></td><td class="entry"><span class="mlabel">private</span></td></tr>
- <tr class="even"><td class="entry"><a class="el" href="classItem.html#aa541bc4290e51bfd688d6921bebabc73">get_owner_photo</a>()</td><td class="entry"><a class="el" href="classItem.html">Item</a></td><td class="entry"><span class="mlabel">private</span></td></tr>
- <tr><td class="entry"><a class="el" href="classItem.html#a9f2d219da712390f59012fc32a342074">get_owner_url</a>()</td><td class="entry"><a class="el" href="classItem.html">Item</a></td><td class="entry"><span class="mlabel">private</span></td></tr>
- <tr class="even"><td class="entry"><a class="el" href="classItem.html#a4b92e3a9d6212c553aa2661489bd95d8">get_parent</a>()</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#a428f448f89a8629055ea3294eb942aea">get_redirect_url</a>()</td><td class="entry"><a class="el" href="classItem.html">Item</a></td><td class="entry"><span class="mlabel">private</span></td></tr>
- <tr class="even"><td class="entry"><a class="el" href="classItem.html#aba23a0a9d89e316d2b343cc46d695d91">get_template</a>()</td><td class="entry"><a class="el" href="classItem.html">Item</a></td><td class="entry"><span class="mlabel">private</span></td></tr>
- <tr><td class="entry"><a class="el" href="classItem.html#ad5dcbe0b94cb2d5719bc5b6bd8ad60c8">get_template_data</a>($alike, $dlike, $thread_level=1)</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#ac04525a8be24c12b0a2ae4ca1ba4b967">is_commentable</a>()</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#a5b2fafdca55aefeaa08993a5a60529f0">is_threaded</a>()</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#aa49e40f961dff66da32c5ae110e32993">is_toplevel</a>()</td><td class="entry"><a class="el" href="classItem.html">Item</a></td><td class="entry"><span class="mlabel">private</span></td></tr>
- <tr><td class="entry"><a class="el" href="classItem.html#a97c7feeea7f26a73176cb19faa455e12">is_visiting</a>()</td><td class="entry"><a class="el" href="classItem.html">Item</a></td><td class="entry"><span class="mlabel">private</span></td></tr>
- <tr class="even"><td class="entry"><a class="el" href="classItem.html#aabf87ded59c25b5fe2b2296678e70509">is_wall_to_wall</a>()</td><td class="entry"><a class="el" href="classItem.html">Item</a></td><td class="entry"><span class="mlabel">private</span></td></tr>
- <tr><td class="entry"><a class="el" href="classItem.html#a2ce70ef63f9f4d86a09c351678806925">remove_child</a>($item)</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#aa452b5bcd8dea12119b09212c615cb41">remove_parent</a>()</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="classBaseObject.html#a0a9acda12d751692834cf6999f889223">set_app</a>($app)</td><td class="entry"><a class="el" href="classBaseObject.html">BaseObject</a></td><td class="entry"><span class="mlabel">static</span></td></tr>
- <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#a23d4057883f8ed888c0c2ff12d8aa5d0">get_display_mode</a>()</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#ac0f27e58532612f6e7a54c8a621b9b92">get_id</a>()</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#a67892aa23d19f4431bb2e5f43c74000e">get_owner_name</a>()</td><td class="entry"><a class="el" href="classItem.html">Item</a></td><td class="entry"><span class="mlabel">private</span></td></tr>
+ <tr><td class="entry"><a class="el" href="classItem.html#aa541bc4290e51bfd688d6921bebabc73">get_owner_photo</a>()</td><td class="entry"><a class="el" href="classItem.html">Item</a></td><td class="entry"><span class="mlabel">private</span></td></tr>
+ <tr class="even"><td class="entry"><a class="el" href="classItem.html#a9f2d219da712390f59012fc32a342074">get_owner_url</a>()</td><td class="entry"><a class="el" href="classItem.html">Item</a></td><td class="entry"><span class="mlabel">private</span></td></tr>
+ <tr><td class="entry"><a class="el" href="classItem.html#a4b92e3a9d6212c553aa2661489bd95d8">get_parent</a>()</td><td class="entry"><a class="el" href="classItem.html">Item</a></td><td class="entry"><span class="mlabel">protected</span></td></tr>
+ <tr class="even"><td class="entry"><a class="el" href="classItem.html#a428f448f89a8629055ea3294eb942aea">get_redirect_url</a>()</td><td class="entry"><a class="el" href="classItem.html">Item</a></td><td class="entry"><span class="mlabel">private</span></td></tr>
+ <tr><td class="entry"><a class="el" href="classItem.html#aba23a0a9d89e316d2b343cc46d695d91">get_template</a>()</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#ad5dcbe0b94cb2d5719bc5b6bd8ad60c8">get_template_data</a>($alike, $dlike, $thread_level=1)</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#ac04525a8be24c12b0a2ae4ca1ba4b967">is_commentable</a>()</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#a5b2fafdca55aefeaa08993a5a60529f0">is_threaded</a>()</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#aa49e40f961dff66da32c5ae110e32993">is_toplevel</a>()</td><td class="entry"><a class="el" href="classItem.html">Item</a></td><td class="entry"><span class="mlabel">private</span></td></tr>
+ <tr class="even"><td class="entry"><a class="el" href="classItem.html#a97c7feeea7f26a73176cb19faa455e12">is_visiting</a>()</td><td class="entry"><a class="el" href="classItem.html">Item</a></td><td class="entry"><span class="mlabel">private</span></td></tr>
+ <tr><td class="entry"><a class="el" href="classItem.html#aabf87ded59c25b5fe2b2296678e70509">is_wall_to_wall</a>()</td><td class="entry"><a class="el" href="classItem.html">Item</a></td><td class="entry"><span class="mlabel">private</span></td></tr>
+ <tr class="even"><td class="entry"><a class="el" href="classItem.html#a2ce70ef63f9f4d86a09c351678806925">remove_child</a>($item)</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#aa452b5bcd8dea12119b09212c615cb41">remove_parent</a>()</td><td class="entry"><a class="el" href="classItem.html">Item</a></td><td class="entry"><span class="mlabel">protected</span></td></tr>
+ <tr class="even"><td class="entry"><a class="el" href="classBaseObject.html#a0a9acda12d751692834cf6999f889223">set_app</a>($app)</td><td class="entry"><a class="el" href="classBaseObject.html">BaseObject</a></td><td class="entry"><span class="mlabel">static</span></td></tr>
+ <tr><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 class="even"><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><td class="entry"><a class="el" href="classItem.html#ac09a4728d37b7783714243f7f8167214">set_display_mode</a>($mode)</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>
+ <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"></td></tr>
</table></div><!-- contents -->
</div><!-- doc-content -->
diff --git a/doc/html/classItem.html b/doc/html/classItem.html
index 131cf6d82..413293348 100644
--- a/doc/html/classItem.html
+++ b/doc/html/classItem.html
@@ -134,6 +134,10 @@ Public Member Functions</h2></td></tr>
<tr class="separator:ad5dcbe0b94cb2d5719bc5b6bd8ad60c8"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ac0f27e58532612f6e7a54c8a621b9b92"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classItem.html#ac0f27e58532612f6e7a54c8a621b9b92">get_id</a> ()</td></tr>
<tr class="separator:ac0f27e58532612f6e7a54c8a621b9b92"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a23d4057883f8ed888c0c2ff12d8aa5d0"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classItem.html#a23d4057883f8ed888c0c2ff12d8aa5d0">get_display_mode</a> ()</td></tr>
+<tr class="separator:a23d4057883f8ed888c0c2ff12d8aa5d0"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ac09a4728d37b7783714243f7f8167214"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classItem.html#ac09a4728d37b7783714243f7f8167214">set_display_mode</a> ($mode)</td></tr>
+<tr class="separator:ac09a4728d37b7783714243f7f8167214"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a5b2fafdca55aefeaa08993a5a60529f0"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classItem.html#a5b2fafdca55aefeaa08993a5a60529f0">is_threaded</a> ()</td></tr>
<tr class="separator:a5b2fafdca55aefeaa08993a5a60529f0"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:aa1bd19fc8b5577078530265a7bf64123"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classItem.html#aa1bd19fc8b5577078530265a7bf64123">set_commentable</a> ($val)</td></tr>
@@ -156,6 +160,10 @@ Public Member Functions</h2></td></tr>
<tr class="separator:ad3638f93065693c1f69eb349feb1b7aa"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ac6f1c96cc82a0dfb7e881fc70309ea3c"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classItem.html#ac6f1c96cc82a0dfb7e881fc70309ea3c">get_data_value</a> ($name)</td></tr>
<tr class="separator:ac6f1c96cc82a0dfb7e881fc70309ea3c"><td class="memSeparator" colspan="2">&#160;</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#ac6ae482ee54fa2764d5c2e77305aeb96">t</a>)</td></tr>
+<tr class="separator:af1b73df9b7c4b927e26b7e243b491f42"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="inherit_header pub_methods_classBaseObject"><td colspan="2" onclick="javascript:toggleInherit('pub_methods_classBaseObject')"><img src="closed.png" alt="-"/>&#160;Public Member Functions inherited from <a class="el" href="classBaseObject.html">BaseObject</a></td></tr>
<tr class="memitem:ac43f10e69ce80c78e4870636250fc8a2 inherit pub_methods_classBaseObject"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classBaseObject.html#ac43f10e69ce80c78e4870636250fc8a2">get_app</a> ()</td></tr>
<tr class="separator:ac43f10e69ce80c78e4870636250fc8a2 inherit pub_methods_classBaseObject"><td class="memSeparator" colspan="2">&#160;</td></tr>
@@ -178,14 +186,12 @@ Protected Member Functions</h2></td></tr>
</table><table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="pri-methods"></a>
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#ac6ae482ee54fa2764d5c2e77305aeb96">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>
<tr class="separator:aca1e66988ed00cd627b2a359b72cd0ae"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ae0c48b2fed5558642549cabd547fc4f3"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classItem.html#ae0c48b2fed5558642549cabd547fc4f3">count_unseen_descendants</a> ()</td></tr>
+<tr class="separator:ae0c48b2fed5558642549cabd547fc4f3"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a904421c7a427411bb2ab473bca872f63"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classItem.html#a904421c7a427411bb2ab473bca872f63">get_comment_box_template</a> ()</td></tr>
<tr class="separator:a904421c7a427411bb2ab473bca872f63"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a3ee7667c2ec6cd7657328e27848c0bdf"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classItem.html#a3ee7667c2ec6cd7657328e27848c0bdf">get_comment_box</a> ($indent)</td></tr>
@@ -235,6 +241,8 @@ Private Attributes</h2></td></tr>
<tr class="separator:a4a123ae98987c1e30ecb15c4edf5a3b8"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:acc32426c0f465391be8a99ad810c7b8e"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classItem.html#acc32426c0f465391be8a99ad810c7b8e">$channel</a> = null</td></tr>
<tr class="separator:acc32426c0f465391be8a99ad810c7b8e"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a88a99e2d1245925867f249f543358e72"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classItem.html#a88a99e2d1245925867f249f543358e72">$display_mode</a> = 'normal'</td></tr>
+<tr class="separator:a88a99e2d1245925867f249f543358e72"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table><table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="inherited"></a>
Additional Inherited Members</h2></td></tr>
@@ -333,6 +341,31 @@ Additional Inherited Members</h2></td></tr>
</div>
</div>
+<a class="anchor" id="ae0c48b2fed5558642549cabd547fc4f3"></a>
+<div class="memitem">
+<div class="memproto">
+<table class="mlabels">
+ <tr>
+ <td class="mlabels-left">
+ <table class="memname">
+ <tr>
+ <td class="memname">Item::count_unseen_descendants </td>
+ <td>(</td>
+ <td class="paramname"></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">
+
+<p>Referenced by <a class="el" href="classItem.html#ad5dcbe0b94cb2d5719bc5b6bd8ad60c8">get_template_data()</a>.</p>
+
+</div>
+</div>
<a class="anchor" id="a632185dd25c5caf277067c76230a4320"></a>
<div class="memitem">
<div class="memproto">
@@ -366,7 +399,7 @@ Additional Inherited Members</h2></td></tr>
</div><div class="memdoc">
<p>Get all our children </p>
-<p>Referenced by <a class="el" href="classItem.html#aca1e66988ed00cd627b2a359b72cd0ae">count_descendants()</a>, <a class="el" href="classItem.html#a632185dd25c5caf277067c76230a4320">get_child()</a>, <a class="el" href="classItem.html#ad5dcbe0b94cb2d5719bc5b6bd8ad60c8">get_template_data()</a>, <a class="el" href="classItem.html#a2ce70ef63f9f4d86a09c351678806925">remove_child()</a>, <a class="el" href="classItem.html#aa1bd19fc8b5577078530265a7bf64123">set_commentable()</a>, and <a class="el" href="classItem.html#aa8b1bbc4236890694635295e46d7fd72">set_conversation()</a>.</p>
+<p>Referenced by <a class="el" href="classItem.html#aca1e66988ed00cd627b2a359b72cd0ae">count_descendants()</a>, <a class="el" href="classItem.html#ae0c48b2fed5558642549cabd547fc4f3">count_unseen_descendants()</a>, <a class="el" href="classItem.html#a632185dd25c5caf277067c76230a4320">get_child()</a>, <a class="el" href="classItem.html#ad5dcbe0b94cb2d5719bc5b6bd8ad60c8">get_template_data()</a>, <a class="el" href="classItem.html#a2ce70ef63f9f4d86a09c351678806925">remove_child()</a>, <a class="el" href="classItem.html#aa1bd19fc8b5577078530265a7bf64123">set_commentable()</a>, and <a class="el" href="classItem.html#aa8b1bbc4236890694635295e46d7fd72">set_conversation()</a>.</p>
</div>
</div>
@@ -481,6 +514,23 @@ Additional Inherited Members</h2></td></tr>
</div>
</div>
+<a class="anchor" id="a23d4057883f8ed888c0c2ff12d8aa5d0"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">Item::get_display_mode </td>
+ <td>(</td>
+ <td class="paramname"></td><td>)</td>
+ <td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Referenced by <a class="el" href="classItem.html#ad5dcbe0b94cb2d5719bc5b6bd8ad60c8">get_template_data()</a>.</p>
+
+</div>
+</div>
<a class="anchor" id="ac0f27e58532612f6e7a54c8a621b9b92"></a>
<div class="memitem">
<div class="memproto">
@@ -625,9 +675,6 @@ Additional Inherited Members</h2></td></tr>
<a class="anchor" id="aba23a0a9d89e316d2b343cc46d695d91"></a>
<div class="memitem">
<div class="memproto">
-<table class="mlabels">
- <tr>
- <td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">Item::get_template </td>
@@ -636,11 +683,6 @@ Additional Inherited Members</h2></td></tr>
<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">
<p>Get template </p>
@@ -864,6 +906,22 @@ Additional Inherited Members</h2></td></tr>
</div>
</div>
+<a class="anchor" id="ac09a4728d37b7783714243f7f8167214"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">Item::set_display_mode </td>
+ <td>(</td>
+ <td class="paramtype">&#160;</td>
+ <td class="paramname"><em>$mode</em></td><td>)</td>
+ <td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+</div>
+</div>
<a class="anchor" id="a9890ff72662d5bba301d1f2dd8aec9d7"></a>
<div class="memitem">
<div class="memproto">
@@ -892,9 +950,6 @@ Additional Inherited Members</h2></td></tr>
<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>
@@ -904,11 +959,6 @@ Additional Inherited Members</h2></td></tr>
<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>
@@ -952,7 +1002,7 @@ Additional Inherited Members</h2></td></tr>
</table>
</div><div class="memdoc">
-<p>Referenced by <a class="el" href="classItem.html#aca1e66988ed00cd627b2a359b72cd0ae">count_descendants()</a>, <a class="el" href="classItem.html#aa0ee775ec94abccec6c798428835d001">get_children()</a>, and <a class="el" href="classItem.html#ad5dcbe0b94cb2d5719bc5b6bd8ad60c8">get_template_data()</a>.</p>
+<p>Referenced by <a class="el" href="classItem.html#aca1e66988ed00cd627b2a359b72cd0ae">count_descendants()</a>, <a class="el" href="classItem.html#ae0c48b2fed5558642549cabd547fc4f3">count_unseen_descendants()</a>, <a class="el" href="classItem.html#aa0ee775ec94abccec6c798428835d001">get_children()</a>, and <a class="el" href="classItem.html#ad5dcbe0b94cb2d5719bc5b6bd8ad60c8">get_template_data()</a>.</p>
</div>
</div>
@@ -1036,6 +1086,28 @@ Additional Inherited Members</h2></td></tr>
</div>
</div>
+<a class="anchor" id="a88a99e2d1245925867f249f543358e72"></a>
+<div class="memitem">
+<div class="memproto">
+<table class="mlabels">
+ <tr>
+ <td class="mlabels-left">
+ <table class="memname">
+ <tr>
+ <td class="memname">Item::$display_mode = 'normal'</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="classItem.html#a23d4057883f8ed888c0c2ff12d8aa5d0">get_display_mode()</a>.</p>
+
+</div>
+</div>
<a class="anchor" id="a9594df6014b0b6f45364ea7a34510130"></a>
<div class="memitem">
<div class="memproto">
diff --git a/doc/html/classItem.js b/doc/html/classItem.js
index afdf7677d..7c2ed1e04 100644
--- a/doc/html/classItem.js
+++ b/doc/html/classItem.js
@@ -4,6 +4,7 @@ var classItem =
[ "add_child", "classItem.html#a80dcd9d0f548c3ad550abe7e6981fb51", null ],
[ "check_wall_to_wall", "classItem.html#abcdb0ea9bcd1576bc99bba9b8f700bb8", null ],
[ "count_descendants", "classItem.html#aca1e66988ed00cd627b2a359b72cd0ae", null ],
+ [ "count_unseen_descendants", "classItem.html#ae0c48b2fed5558642549cabd547fc4f3", null ],
[ "get_child", "classItem.html#a632185dd25c5caf277067c76230a4320", null ],
[ "get_children", "classItem.html#aa0ee775ec94abccec6c798428835d001", null ],
[ "get_comment_box", "classItem.html#a3ee7667c2ec6cd7657328e27848c0bdf", null ],
@@ -11,6 +12,7 @@ var classItem =
[ "get_conversation", "classItem.html#a0c301aaed2b7d682728d18db3a22afa3", null ],
[ "get_data", "classItem.html#ad3638f93065693c1f69eb349feb1b7aa", null ],
[ "get_data_value", "classItem.html#ac6f1c96cc82a0dfb7e881fc70309ea3c", null ],
+ [ "get_display_mode", "classItem.html#a23d4057883f8ed888c0c2ff12d8aa5d0", null ],
[ "get_id", "classItem.html#ac0f27e58532612f6e7a54c8a621b9b92", null ],
[ "get_owner_name", "classItem.html#a67892aa23d19f4431bb2e5f43c74000e", null ],
[ "get_owner_photo", "classItem.html#aa541bc4290e51bfd688d6921bebabc73", null ],
@@ -28,6 +30,7 @@ var classItem =
[ "remove_parent", "classItem.html#aa452b5bcd8dea12119b09212c615cb41", null ],
[ "set_commentable", "classItem.html#aa1bd19fc8b5577078530265a7bf64123", null ],
[ "set_conversation", "classItem.html#aa8b1bbc4236890694635295e46d7fd72", null ],
+ [ "set_display_mode", "classItem.html#ac09a4728d37b7783714243f7f8167214", null ],
[ "set_parent", "classItem.html#a9890ff72662d5bba301d1f2dd8aec9d7", null ],
[ "set_template", "classItem.html#af1b73df9b7c4b927e26b7e243b491f42", null ],
[ "$channel", "classItem.html#acc32426c0f465391be8a99ad810c7b8e", null ],
@@ -36,6 +39,7 @@ var classItem =
[ "$commentable", "classItem.html#aa2c221231ad0fc3720ccc1f00f0c6304", null ],
[ "$conversation", "classItem.html#a007424e3e3171dcfb4312a02161da6cd", null ],
[ "$data", "classItem.html#aec24e233f9098f902b1e57e60dcb2019", null ],
+ [ "$display_mode", "classItem.html#a88a99e2d1245925867f249f543358e72", null ],
[ "$owner_name", "classItem.html#a9594df6014b0b6f45364ea7a34510130", null ],
[ "$owner_photo", "classItem.html#a078f95b4134ce3a1df344cf8d386f986", null ],
[ "$owner_url", "classItem.html#afa54851df82962c7c42dea3cc9f5c92c", null ],
diff --git a/doc/html/classRedBasicAuth-members.html b/doc/html/classRedBasicAuth-members.html
index ab4dd9f76..bb4f57333 100644
--- a/doc/html/classRedBasicAuth-members.html
+++ b/doc/html/classRedBasicAuth-members.html
@@ -115,14 +115,18 @@ $(document).ready(function(){initNavTree('classRedBasicAuth.html','');});
<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><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"><span class="mlabel">protected</span></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><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"><span class="mlabel">protected</span></td></tr>
+ <tr class="even"><td class="entry"><a class="el" href="classRedBasicAuth.html#a4a584de8eb31c786fabd8f6e1a6c8925">getCurrentUser</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#a9fdd4b890e3e7c7e1ae96ead2301418f">getTimezone</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#a3ef43177abe0ef72da140a25bc568333">setAuthenticated</a>($r)</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#a358ddad4abb5aa8c1382cf49a907adbc">setBrowserPlugin</a>($browser)</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#a072e8244a9a7f191b32d3db5ac94f857">setCurrentUser</a>($name)</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#a2f5d4ef7040c65b79b2fdfdf1212395a">setTimezone</a>($timezone)</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 6a8e064d9..e51a60e4c 100644
--- a/doc/html/classRedBasicAuth.html
+++ b/doc/html/classRedBasicAuth.html
@@ -109,11 +109,15 @@ $(document).ready(function(){initNavTree('classRedBasicAuth.html','');});
<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="#pro-attribs">Protected Attributes</a> &#124;
<a href="classRedBasicAuth-members.html">List of all members</a> </div>
<div class="headertitle">
<div class="title">RedBasicAuth Class Reference</div> </div>
</div><!--header-->
<div class="contents">
+
+<p>Authentication backend class for RedDAV.
+ <a href="classRedBasicAuth.html#details">More...</a></p>
<div class="dynheader">
Inheritance diagram for RedBasicAuth:</div>
<div class="dyncontent">
@@ -127,16 +131,22 @@ Inheritance diagram for RedBasicAuth:</div>
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:a4a584de8eb31c786fabd8f6e1a6c8925"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classRedBasicAuth.html#a4a584de8eb31c786fabd8f6e1a6c8925">getCurrentUser</a> ()</td></tr>
+<tr class="separator:a4a584de8eb31c786fabd8f6e1a6c8925"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a2f5d4ef7040c65b79b2fdfdf1212395a"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classRedBasicAuth.html#a2f5d4ef7040c65b79b2fdfdf1212395a">setTimezone</a> ($timezone)</td></tr>
+<tr class="memdesc:a2f5d4ef7040c65b79b2fdfdf1212395a"><td class="mdescLeft">&#160;</td><td class="mdescRight">Sets the timezone from the channel in <a class="el" href="classRedBasicAuth.html" title="Authentication backend class for RedDAV.">RedBasicAuth</a>. <a href="#a2f5d4ef7040c65b79b2fdfdf1212395a">More...</a><br/></td></tr>
+<tr class="separator:a2f5d4ef7040c65b79b2fdfdf1212395a"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a9fdd4b890e3e7c7e1ae96ead2301418f"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classRedBasicAuth.html#a9fdd4b890e3e7c7e1ae96ead2301418f">getTimezone</a> ()</td></tr>
+<tr class="memdesc:a9fdd4b890e3e7c7e1ae96ead2301418f"><td class="mdescLeft">&#160;</td><td class="mdescRight">Returns the timezone. <a href="#a9fdd4b890e3e7c7e1ae96ead2301418f">More...</a><br/></td></tr>
+<tr class="separator:a9fdd4b890e3e7c7e1ae96ead2301418f"><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="memdesc:a358ddad4abb5aa8c1382cf49a907adbc"><td class="mdescLeft">&#160;</td><td class="mdescRight">Set browser plugin. <a href="#a358ddad4abb5aa8c1382cf49a907adbc">More...</a><br/></td></tr>
+<tr class="memdesc:a358ddad4abb5aa8c1382cf49a907adbc"><td class="mdescLeft">&#160;</td><td class="mdescRight">Set browser plugin for SabreDAV. <a href="#a358ddad4abb5aa8c1382cf49a907adbc">More...</a><br/></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>
@@ -145,21 +155,68 @@ Public Attributes</h2></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="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> = 0</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="memdesc:a8dfd9a0953f8884723b421b7c1acf79b"><td class="mdescLeft">&#160;</td><td class="mdescRight">Validates a username and password. <a href="#a8dfd9a0953f8884723b421b7c1acf79b">More...</a><br/></td></tr>
<tr class="separator:a8dfd9a0953f8884723b421b7c1acf79b"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a3ef43177abe0ef72da140a25bc568333"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classRedBasicAuth.html#a3ef43177abe0ef72da140a25bc568333">setAuthenticated</a> ($r)</td></tr>
+<tr class="memdesc:a3ef43177abe0ef72da140a25bc568333"><td class="mdescLeft">&#160;</td><td class="mdescRight">Sets variables and session parameters after successfull authentication. <a href="#a3ef43177abe0ef72da140a25bc568333">More...</a><br/></td></tr>
+<tr class="separator:a3ef43177abe0ef72da140a25bc568333"><td class="memSeparator" colspan="2">&#160;</td></tr>
+</table><table class="memberdecls">
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="pro-attribs"></a>
+Protected 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> = null</td></tr>
+<tr class="separator:a438ab125b6ef46581947e35d49cdebac"><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>
<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
-<div class="textblock"><p><a class="el" href="classRedBasicAuth.html">RedBasicAuth</a> class. </p>
+<div class="textblock"><p>Authentication backend class for RedDAV. </p>
+<p>This class also contains some data which is not necessary for authentication like timezone settings. </p>
</div><h2 class="groupheader">Member Function Documentation</h2>
+<a class="anchor" id="a4a584de8eb31c786fabd8f6e1a6c8925"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">RedBasicAuth::getCurrentUser </td>
+ <td>(</td>
+ <td class="paramname"></td><td>)</td>
+ <td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+<p>Returns information about the currently logged-in channel.</p>
+<p>If nobody is currently logged in, this method should return null.</p>
+<dl class="section see"><dt>See Also</dt><dd>DAV::getCurrentUser </dd></dl>
+<dl class="section return"><dt>Returns</dt><dd>string|null </dd></dl>
+
+</div>
+</div>
+<a class="anchor" id="a9fdd4b890e3e7c7e1ae96ead2301418f"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">RedBasicAuth::getTimezone </td>
+ <td>(</td>
+ <td class="paramname"></td><td>)</td>
+ <td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Returns the timezone. </p>
+<dl class="section return"><dt>Returns</dt><dd>string Return the channel's timezone. </dd></dl>
+
+</div>
+</div>
<a class="anchor" id="a2cc8b1eac9c5a799bfb53ea7f287f3f0"></a>
<div class="memitem">
<div class="memproto">
@@ -172,6 +229,43 @@ Protected Member Functions</h2></td></tr>
</tr>
</table>
</div><div class="memdoc">
+<p>Prints out all <a class="el" href="classRedBasicAuth.html" title="Authentication backend class for RedDAV.">RedBasicAuth</a> variables to <a class="el" href="text_8php.html#a030fa5ecc64168af0c4f44897a9bce63">logger()</a>.</p>
+<dl class="section return"><dt>Returns</dt><dd>void </dd></dl>
+
+</div>
+</div>
+<a class="anchor" id="a3ef43177abe0ef72da140a25bc568333"></a>
+<div class="memitem">
+<div class="memproto">
+<table class="mlabels">
+ <tr>
+ <td class="mlabels-left">
+ <table class="memname">
+ <tr>
+ <td class="memname">RedBasicAuth::setAuthenticated </td>
+ <td>(</td>
+ <td class="paramtype">&#160;</td>
+ <td class="paramname"><em>$r</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>Sets variables and session parameters after successfull authentication. </p>
+<dl class="params"><dt>Parameters</dt><dd>
+ <table class="params">
+ <tr><td class="paramtype">array</td><td class="paramname">$r</td><td>Array with the values for the authenticated channel. </td></tr>
+ </table>
+ </dd>
+</dl>
+<dl class="section return"><dt>Returns</dt><dd>bool </dd></dl>
+
+<p>Referenced by <a class="el" href="classRedBasicAuth.html#a8dfd9a0953f8884723b421b7c1acf79b">validateUserPass()</a>.</p>
</div>
</div>
@@ -189,8 +283,8 @@ Protected Member Functions</h2></td></tr>
</table>
</div><div class="memdoc">
-<p>Set browser plugin. </p>
-<dl class="section see"><dt>See Also</dt><dd><a class="el" href="classRedBrowser.html#a40fdbb9d9fe6c1243bbf135dd5b0a06f">RedBrowser::set_writeable()</a> </dd></dl>
+<p>Set browser plugin for SabreDAV. </p>
+<dl class="section see"><dt>See Also</dt><dd>RedBrowser::set_writeable() </dd></dl>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramtype">DAV\Browser\Plugin</td><td class="paramname">$browser</td><td></td></tr>
@@ -213,6 +307,39 @@ Protected Member Functions</h2></td></tr>
</tr>
</table>
</div><div class="memdoc">
+<p>Sets the channel_name from the currently logged-in channel.</p>
+<dl class="params"><dt>Parameters</dt><dd>
+ <table class="params">
+ <tr><td class="paramtype">string</td><td class="paramname">$name</td><td>The channel's name </td></tr>
+ </table>
+ </dd>
+</dl>
+
+</div>
+</div>
+<a class="anchor" id="a2f5d4ef7040c65b79b2fdfdf1212395a"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">RedBasicAuth::setTimezone </td>
+ <td>(</td>
+ <td class="paramtype">&#160;</td>
+ <td class="paramname"><em>$timezone</em></td><td>)</td>
+ <td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Sets the timezone from the channel in <a class="el" href="classRedBasicAuth.html" title="Authentication backend class for RedDAV.">RedBasicAuth</a>. </p>
+<p>Set in <a class="el" href="cloud_8php.html" title="Initialize RedMatrix&#39;s cloud (SabreDAV).">mod/cloud.php</a> if the channel has a timezone set.</p>
+<dl class="params"><dt>Parameters</dt><dd>
+ <table class="params">
+ <tr><td class="paramtype">string</td><td class="paramname">$timezone</td><td>The channel's timezone. </td></tr>
+ </table>
+ </dd>
+</dl>
+<dl class="section return"><dt>Returns</dt><dd>void </dd></dl>
</div>
</div>
@@ -247,6 +374,10 @@ Protected Member Functions</h2></td></tr>
</tr>
</table>
</div><div class="memdoc">
+
+<p>Validates a username and password. </p>
+<p>Guest access is granted with the password "+++".</p>
+<dl class="section see"><dt>See Also</dt><dd>DAV::validateUserPass </dd></dl>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramtype">string</td><td class="paramname">$username</td><td></td></tr>
@@ -254,6 +385,7 @@ Protected Member Functions</h2></td></tr>
</table>
</dd>
</dl>
+<dl class="section return"><dt>Returns</dt><dd>bool </dd></dl>
</div>
</div>
@@ -299,13 +431,23 @@ Protected Member Functions</h2></td></tr>
<a class="anchor" id="a438ab125b6ef46581947e35d49cdebac"></a>
<div class="memitem">
<div class="memproto">
+<table class="mlabels">
+ <tr>
+ <td class="mlabels-left">
<table class="memname">
<tr>
- <td class="memname">RedBasicAuth::$channel_name = ''</td>
+ <td class="memname">RedBasicAuth::$channel_name = null</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>Referenced by <a class="el" href="classRedBasicAuth.html#a4a584de8eb31c786fabd8f6e1a6c8925">getCurrentUser()</a>.</p>
+
</div>
</div>
<a class="anchor" id="aa75dc43b59adc98e38a98517d3fd35d1"></a>
@@ -325,7 +467,7 @@ Protected Member Functions</h2></td></tr>
<div class="memproto">
<table class="memname">
<tr>
- <td class="memname">RedBasicAuth::$owner_id</td>
+ <td class="memname">RedBasicAuth::$owner_id = 0</td>
</tr>
</table>
</div><div class="memdoc">
@@ -347,13 +489,23 @@ Protected Member Functions</h2></td></tr>
<a class="anchor" id="a2d0246ed446fd5e55c17938b4ce6ac47"></a>
<div class="memitem">
<div class="memproto">
+<table class="mlabels">
+ <tr>
+ <td class="mlabels-left">
<table class="memname">
<tr>
- <td class="memname">RedBasicAuth::$timezone</td>
+ <td class="memname">RedBasicAuth::$timezone = ''</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>Referenced by <a class="el" href="classRedBasicAuth.html#a9fdd4b890e3e7c7e1ae96ead2301418f">getTimezone()</a>, and <a class="el" href="classRedBasicAuth.html#a2f5d4ef7040c65b79b2fdfdf1212395a">setTimezone()</a>.</p>
+
</div>
</div>
<hr/>The documentation for this class was generated from the following file:<ul>
diff --git a/doc/html/classRedBasicAuth.js b/doc/html/classRedBasicAuth.js
index ab8a752b6..7b0a17424 100644
--- a/doc/html/classRedBasicAuth.js
+++ b/doc/html/classRedBasicAuth.js
@@ -1,8 +1,12 @@
var classRedBasicAuth =
[
+ [ "getCurrentUser", "classRedBasicAuth.html#a4a584de8eb31c786fabd8f6e1a6c8925", null ],
+ [ "getTimezone", "classRedBasicAuth.html#a9fdd4b890e3e7c7e1ae96ead2301418f", null ],
[ "log", "classRedBasicAuth.html#a2cc8b1eac9c5a799bfb53ea7f287f3f0", null ],
+ [ "setAuthenticated", "classRedBasicAuth.html#a3ef43177abe0ef72da140a25bc568333", null ],
[ "setBrowserPlugin", "classRedBasicAuth.html#a358ddad4abb5aa8c1382cf49a907adbc", null ],
[ "setCurrentUser", "classRedBasicAuth.html#a072e8244a9a7f191b32d3db5ac94f857", null ],
+ [ "setTimezone", "classRedBasicAuth.html#a2f5d4ef7040c65b79b2fdfdf1212395a", null ],
[ "validateUserPass", "classRedBasicAuth.html#a8dfd9a0953f8884723b421b7c1acf79b", null ],
[ "$browser", "classRedBasicAuth.html#af14337f1baad407f8a85d48205c0f30e", null ],
[ "$channel_hash", "classRedBasicAuth.html#ad5a3ea4dc4783b242d9dc6e76478b6ef", null ],
diff --git a/doc/html/classRedDirectory.html b/doc/html/classRedDirectory.html
index 51064468b..2975fc2ef 100644
--- a/doc/html/classRedDirectory.html
+++ b/doc/html/classRedDirectory.html
@@ -169,24 +169,21 @@ Private Member Functions</h2></td></tr>
<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="memdesc:acb32b8df27538c57772824a745e751d7"><td class="mdescLeft">&#160;</td><td class="mdescRight">The path inside /cloud. <a href="#acb32b8df27538c57772824a745e751d7">More...</a><br/></td></tr>
<tr class="separator:acb32b8df27538c57772824a745e751d7"><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="memdesc:a0f113244cd85c17848df991001d024f4"><td class="mdescLeft">&#160;</td><td class="mdescRight">The full path as seen in the browser. /cloud + $red_path. <a href="#a0f113244cd85c17848df991001d024f4">More...</a><br/></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: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="memdesc:a3c148c07ad909985125aa4926d8d0021"><td class="mdescLeft">&#160;</td><td class="mdescRight">The real path on the filesystem. The actual path in store/ with the hashed names. <a href="#a3c148c07ad909985125aa4926d8d0021">More...</a><br/></td></tr>
<tr class="separator:a3c148c07ad909985125aa4926d8d0021"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table>
<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
<div class="textblock"><p><a class="el" href="classRedDirectory.html" title="RedDirectory class.">RedDirectory</a> class. </p>
-<p>A class that represents a directory. </p>
+<p>A class that represents a directory.</p>
</div><h2 class="groupheader">Constructor &amp; Destructor Documentation</h2>
<a class="anchor" id="a1e35e3cd31d2a15250655e4cafdea180"></a>
<div class="memitem">
@@ -216,7 +213,7 @@ Private Attributes</h2></td></tr>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramtype">string</td><td class="paramname">$ext_path</td><td>a full path </td></tr>
- <tr><td class="paramtype"><a class="el" href="classRedBasicAuth.html">RedBasicAuth</a></td><td class="paramname">&amp;$auth_plugin</td><td></td></tr>
+ <tr><td class="paramtype"><a class="el" href="classRedBasicAuth.html" title="Authentication backend class for RedDAV.">RedBasicAuth</a></td><td class="paramname">&amp;$auth_plugin</td><td></td></tr>
</table>
</dd>
</dl>
@@ -385,7 +382,7 @@ Private Attributes</h2></td></tr>
</tr>
</table>
</div><div class="memdoc">
-<dl class="todo"><dt><b><a class="el" href="todo.html#_todo000005">Todo:</a></b></dt><dd>add description of what this function does.</dd></dl>
+<dl class="todo"><dt><b><a class="el" href="todo.html#_todo000008">Todo:</a></b></dt><dd>add description of what this function does.</dd></dl>
<dl class="exception"><dt>Exceptions</dt><dd>
<table class="exception">
<tr><td class="paramname">DAV\Exception\NotFound</td><td></td></tr>
@@ -494,7 +491,7 @@ Private Attributes</h2></td></tr>
</div><div class="memdoc">
<p>Renames the directory. </p>
-<dl class="todo"><dt><b><a class="el" href="todo.html#_todo000004">Todo:</a></b></dt><dd>handle duplicate directory name</dd></dl>
+<dl class="todo"><dt><b><a class="el" href="todo.html#_todo000007">Todo:</a></b></dt><dd>handle duplicate directory name</dd></dl>
<dl class="exception"><dt>Exceptions</dt><dd>
<table class="exception">
<tr><td class="paramname">DAV\Exception\Forbidden</td><td></td></tr>
@@ -550,9 +547,6 @@ Private Attributes</h2></td></tr>
</table>
</div><div class="memdoc">
-<p>The full path as seen in the browser. /cloud + $red_path. </p>
-<dl class="todo"><dt><b><a class="el" href="todo.html#_todo000003">Todo:</a></b></dt><dd>I think this is not used anywhere, we always strip '/cloud' and only use it in debug </dd></dl>
-
<p>Referenced by <a class="el" href="classRedDirectory.html#a1e35e3cd31d2a15250655e4cafdea180">__construct()</a>, and <a class="el" href="classRedDirectory.html#a70173d4458572d95e586b2037d2fd2f4">getDir()</a>.</p>
</div>
@@ -595,8 +589,6 @@ Private Attributes</h2></td></tr>
</table>
</div><div class="memdoc">
-<p>The real path on the filesystem. The actual path in store/ with the hashed names. </p>
-
<p>Referenced by <a class="el" href="classRedDirectory.html#a2d12d99d38a6a75fc9a830b2f7fc0bf0">createFile()</a>, and <a class="el" href="classRedDirectory.html#a70173d4458572d95e586b2037d2fd2f4">getDir()</a>.</p>
</div>
@@ -619,8 +611,6 @@ Private Attributes</h2></td></tr>
</table>
</div><div class="memdoc">
-<p>The path inside /cloud. </p>
-
</div>
</div>
<a class="anchor" id="ad87c514a307ec97ba0f1372e9bcfa6a4"></a>
diff --git a/doc/html/classRedDirectory.png b/doc/html/classRedDirectory.png
index 75da336b4..05439b4c5 100644
--- a/doc/html/classRedDirectory.png
+++ b/doc/html/classRedDirectory.png
Binary files differ
diff --git a/doc/html/classRedMatrix_1_1Import_1_1Import-members.html b/doc/html/classRedMatrix_1_1Import_1_1Import-members.html
new file mode 100644
index 000000000..2be66a2ea
--- /dev/null
+++ b/doc/html/classRedMatrix_1_1Import_1_1Import-members.html
@@ -0,0 +1,132 @@
+<!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('classRedMatrix_1_1Import_1_1Import.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">RedMatrix\Import\Import Member List</div> </div>
+</div><!--header-->
+<div class="contents">
+
+<p>This is the complete list of members for <a class="el" href="classRedMatrix_1_1Import_1_1Import.html">RedMatrix\Import\Import</a>, including all inherited members.</p>
+<table class="directory">
+ <tr class="even"><td class="entry"><a class="el" href="classRedMatrix_1_1Import_1_1Import.html#a864aac9fadb4846f5d9f840e8e0f440f">$credentials</a></td><td class="entry"><a class="el" href="classRedMatrix_1_1Import_1_1Import.html">RedMatrix\Import\Import</a></td><td class="entry"><span class="mlabel">private</span></td></tr>
+ <tr><td class="entry"><a class="el" href="classRedMatrix_1_1Import_1_1Import.html#ad0d2bdc3b388220479063915b4f5c2fc">$itemlist</a></td><td class="entry"><a class="el" href="classRedMatrix_1_1Import_1_1Import.html">RedMatrix\Import\Import</a></td><td class="entry"><span class="mlabel">protected</span></td></tr>
+ <tr class="even"><td class="entry"><a class="el" href="classRedMatrix_1_1Import_1_1Import.html#a0a05dac405ccc5b617b7b7b3c8ed783c">$items</a></td><td class="entry"><a class="el" href="classRedMatrix_1_1Import_1_1Import.html">RedMatrix\Import\Import</a></td><td class="entry"><span class="mlabel">protected</span></td></tr>
+ <tr><td class="entry"><a class="el" href="classRedMatrix_1_1Import_1_1Import.html#a88c2eeba8d0cba3e7c12a2c45ba0fbc6">$src_items</a></td><td class="entry"><a class="el" href="classRedMatrix_1_1Import_1_1Import.html">RedMatrix\Import\Import</a></td><td class="entry"><span class="mlabel">protected</span></td></tr>
+ <tr class="even"><td class="entry"><a class="el" href="classRedMatrix_1_1Import_1_1Import.html#a5434325afb2c633c52540127d717800a">convert_child</a>($child)</td><td class="entry"><a class="el" href="classRedMatrix_1_1Import_1_1Import.html">RedMatrix\Import\Import</a></td><td class="entry"></td></tr>
+ <tr><td class="entry"><a class="el" href="classRedMatrix_1_1Import_1_1Import.html#a107703a43a1b0ceb2af7ae470cb3f218">convert_item</a>($item_ident)</td><td class="entry"><a class="el" href="classRedMatrix_1_1Import_1_1Import.html">RedMatrix\Import\Import</a></td><td class="entry"></td></tr>
+ <tr class="even"><td class="entry"><a class="el" href="classRedMatrix_1_1Import_1_1Import.html#addf6e53dacd971eaab49be4b17a767d6">convert_taxonomy</a>($item_ident)</td><td class="entry"><a class="el" href="classRedMatrix_1_1Import_1_1Import.html">RedMatrix\Import\Import</a></td><td class="entry"></td></tr>
+ <tr><td class="entry"><a class="el" href="classRedMatrix_1_1Import_1_1Import.html#a57561904b0f127e0d9a3e2c33688daf8">get_children</a>($item_ident)</td><td class="entry"><a class="el" href="classRedMatrix_1_1Import_1_1Import.html">RedMatrix\Import\Import</a></td><td class="entry"></td></tr>
+ <tr class="even"><td class="entry"><a class="el" href="classRedMatrix_1_1Import_1_1Import.html#a24134929d9a8a682da2036a0bf326367">get_credentials</a>()</td><td class="entry"><a class="el" href="classRedMatrix_1_1Import_1_1Import.html">RedMatrix\Import\Import</a></td><td class="entry"></td></tr>
+ <tr><td class="entry"><a class="el" href="classRedMatrix_1_1Import_1_1Import.html#a27987a41cb703a796f1821baeb4774a2">get_item</a>($item_ident)</td><td class="entry"><a class="el" href="classRedMatrix_1_1Import_1_1Import.html">RedMatrix\Import\Import</a></td><td class="entry"></td></tr>
+ <tr class="even"><td class="entry"><a class="el" href="classRedMatrix_1_1Import_1_1Import.html#a772c28edf36aaf8e66007a95004c4059">get_item_ident</a>($item)</td><td class="entry"><a class="el" href="classRedMatrix_1_1Import_1_1Import.html">RedMatrix\Import\Import</a></td><td class="entry"></td></tr>
+ <tr><td class="entry"><a class="el" href="classRedMatrix_1_1Import_1_1Import.html#a855cd5a79b95d269ae8737fae774e3bc">get_itemlist</a>()</td><td class="entry"><a class="el" href="classRedMatrix_1_1Import_1_1Import.html">RedMatrix\Import\Import</a></td><td class="entry"></td></tr>
+ <tr class="even"><td class="entry"><a class="el" href="classRedMatrix_1_1Import_1_1Import.html#ae3c6472bea1a44025bc2e152604eb20c">get_taxonomy</a>($item_ident)</td><td class="entry"><a class="el" href="classRedMatrix_1_1Import_1_1Import.html">RedMatrix\Import\Import</a></td><td class="entry"></td></tr>
+ <tr><td class="entry"><a class="el" href="classRedMatrix_1_1Import_1_1Import.html#a8d138a9a7d4f79b81d3446ca216a602c">run</a>()</td><td class="entry"><a class="el" href="classRedMatrix_1_1Import_1_1Import.html">RedMatrix\Import\Import</a></td><td class="entry"></td></tr>
+ <tr class="even"><td class="entry"><a class="el" href="classRedMatrix_1_1Import_1_1Import.html#a33ed595de044c0ec1cd84cca719e31dc">store</a>($item, $update=false)</td><td class="entry"><a class="el" href="classRedMatrix_1_1Import_1_1Import.html">RedMatrix\Import\Import</a></td><td class="entry"></td></tr>
+</table></div><!-- contents -->
+</div><!-- doc-content -->
+
diff --git a/doc/html/classRedMatrix_1_1Import_1_1Import.html b/doc/html/classRedMatrix_1_1Import_1_1Import.html
new file mode 100644
index 000000000..2119780c3
--- /dev/null
+++ b/doc/html/classRedMatrix_1_1Import_1_1Import.html
@@ -0,0 +1,447 @@
+<!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: RedMatrix\Import\Import 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('classRedMatrix_1_1Import_1_1Import.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-attribs">Protected Attributes</a> &#124;
+<a href="#pri-attribs">Private Attributes</a> &#124;
+<a href="classRedMatrix_1_1Import_1_1Import-members.html">List of all members</a> </div>
+ <div class="headertitle">
+<div class="title">RedMatrix\Import\Import Class Reference</div> </div>
+</div><!--header-->
+<div class="contents">
+<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:a24134929d9a8a682da2036a0bf326367"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classRedMatrix_1_1Import_1_1Import.html#a24134929d9a8a682da2036a0bf326367">get_credentials</a> ()</td></tr>
+<tr class="separator:a24134929d9a8a682da2036a0bf326367"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a855cd5a79b95d269ae8737fae774e3bc"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classRedMatrix_1_1Import_1_1Import.html#a855cd5a79b95d269ae8737fae774e3bc">get_itemlist</a> ()</td></tr>
+<tr class="separator:a855cd5a79b95d269ae8737fae774e3bc"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a772c28edf36aaf8e66007a95004c4059"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classRedMatrix_1_1Import_1_1Import.html#a772c28edf36aaf8e66007a95004c4059">get_item_ident</a> ($item)</td></tr>
+<tr class="separator:a772c28edf36aaf8e66007a95004c4059"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a27987a41cb703a796f1821baeb4774a2"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classRedMatrix_1_1Import_1_1Import.html#a27987a41cb703a796f1821baeb4774a2">get_item</a> ($item_ident)</td></tr>
+<tr class="separator:a27987a41cb703a796f1821baeb4774a2"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ae3c6472bea1a44025bc2e152604eb20c"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classRedMatrix_1_1Import_1_1Import.html#ae3c6472bea1a44025bc2e152604eb20c">get_taxonomy</a> ($item_ident)</td></tr>
+<tr class="separator:ae3c6472bea1a44025bc2e152604eb20c"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a57561904b0f127e0d9a3e2c33688daf8"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classRedMatrix_1_1Import_1_1Import.html#a57561904b0f127e0d9a3e2c33688daf8">get_children</a> ($item_ident)</td></tr>
+<tr class="separator:a57561904b0f127e0d9a3e2c33688daf8"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a107703a43a1b0ceb2af7ae470cb3f218"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classRedMatrix_1_1Import_1_1Import.html#a107703a43a1b0ceb2af7ae470cb3f218">convert_item</a> ($item_ident)</td></tr>
+<tr class="separator:a107703a43a1b0ceb2af7ae470cb3f218"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:addf6e53dacd971eaab49be4b17a767d6"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classRedMatrix_1_1Import_1_1Import.html#addf6e53dacd971eaab49be4b17a767d6">convert_taxonomy</a> ($item_ident)</td></tr>
+<tr class="separator:addf6e53dacd971eaab49be4b17a767d6"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a5434325afb2c633c52540127d717800a"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classRedMatrix_1_1Import_1_1Import.html#a5434325afb2c633c52540127d717800a">convert_child</a> ($child)</td></tr>
+<tr class="separator:a5434325afb2c633c52540127d717800a"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a33ed595de044c0ec1cd84cca719e31dc"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classRedMatrix_1_1Import_1_1Import.html#a33ed595de044c0ec1cd84cca719e31dc">store</a> ($item, $update=false)</td></tr>
+<tr class="separator:a33ed595de044c0ec1cd84cca719e31dc"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a8d138a9a7d4f79b81d3446ca216a602c"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classRedMatrix_1_1Import_1_1Import.html#a8d138a9a7d4f79b81d3446ca216a602c">run</a> ()</td></tr>
+<tr class="separator:a8d138a9a7d4f79b81d3446ca216a602c"><td class="memSeparator" colspan="2">&#160;</td></tr>
+</table><table class="memberdecls">
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="pro-attribs"></a>
+Protected Attributes</h2></td></tr>
+<tr class="memitem:ad0d2bdc3b388220479063915b4f5c2fc"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classRedMatrix_1_1Import_1_1Import.html#ad0d2bdc3b388220479063915b4f5c2fc">$itemlist</a> = null</td></tr>
+<tr class="separator:ad0d2bdc3b388220479063915b4f5c2fc"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a88c2eeba8d0cba3e7c12a2c45ba0fbc6"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classRedMatrix_1_1Import_1_1Import.html#a88c2eeba8d0cba3e7c12a2c45ba0fbc6">$src_items</a> = null</td></tr>
+<tr class="separator:a88c2eeba8d0cba3e7c12a2c45ba0fbc6"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a0a05dac405ccc5b617b7b7b3c8ed783c"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classRedMatrix_1_1Import_1_1Import.html#a0a05dac405ccc5b617b7b7b3c8ed783c">$items</a> = null</td></tr>
+<tr class="separator:a0a05dac405ccc5b617b7b7b3c8ed783c"><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:a864aac9fadb4846f5d9f840e8e0f440f"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classRedMatrix_1_1Import_1_1Import.html#a864aac9fadb4846f5d9f840e8e0f440f">$credentials</a> = null</td></tr>
+<tr class="separator:a864aac9fadb4846f5d9f840e8e0f440f"><td class="memSeparator" colspan="2">&#160;</td></tr>
+</table>
+<h2 class="groupheader">Member Function Documentation</h2>
+<a class="anchor" id="a5434325afb2c633c52540127d717800a"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">RedMatrix\Import\Import::convert_child </td>
+ <td>(</td>
+ <td class="paramtype">&#160;</td>
+ <td class="paramname"><em>$child</em></td><td>)</td>
+ <td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Referenced by <a class="el" href="classRedMatrix_1_1Import_1_1Import.html#a8d138a9a7d4f79b81d3446ca216a602c">RedMatrix\Import\Import\run()</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="a107703a43a1b0ceb2af7ae470cb3f218"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">RedMatrix\Import\Import::convert_item </td>
+ <td>(</td>
+ <td class="paramtype">&#160;</td>
+ <td class="paramname"><em>$item_ident</em></td><td>)</td>
+ <td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Referenced by <a class="el" href="classRedMatrix_1_1Import_1_1Import.html#a8d138a9a7d4f79b81d3446ca216a602c">RedMatrix\Import\Import\run()</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="addf6e53dacd971eaab49be4b17a767d6"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">RedMatrix\Import\Import::convert_taxonomy </td>
+ <td>(</td>
+ <td class="paramtype">&#160;</td>
+ <td class="paramname"><em>$item_ident</em></td><td>)</td>
+ <td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Referenced by <a class="el" href="classRedMatrix_1_1Import_1_1Import.html#a8d138a9a7d4f79b81d3446ca216a602c">RedMatrix\Import\Import\run()</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="a57561904b0f127e0d9a3e2c33688daf8"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">RedMatrix\Import\Import::get_children </td>
+ <td>(</td>
+ <td class="paramtype">&#160;</td>
+ <td class="paramname"><em>$item_ident</em></td><td>)</td>
+ <td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Referenced by <a class="el" href="classRedMatrix_1_1Import_1_1Import.html#a8d138a9a7d4f79b81d3446ca216a602c">RedMatrix\Import\Import\run()</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="a24134929d9a8a682da2036a0bf326367"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">RedMatrix\Import\Import::get_credentials </td>
+ <td>(</td>
+ <td class="paramname"></td><td>)</td>
+ <td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Referenced by <a class="el" href="classRedMatrix_1_1Import_1_1Import.html#a8d138a9a7d4f79b81d3446ca216a602c">RedMatrix\Import\Import\run()</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="a27987a41cb703a796f1821baeb4774a2"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">RedMatrix\Import\Import::get_item </td>
+ <td>(</td>
+ <td class="paramtype">&#160;</td>
+ <td class="paramname"><em>$item_ident</em></td><td>)</td>
+ <td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Referenced by <a class="el" href="classRedMatrix_1_1Import_1_1Import.html#a8d138a9a7d4f79b81d3446ca216a602c">RedMatrix\Import\Import\run()</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="a772c28edf36aaf8e66007a95004c4059"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">RedMatrix\Import\Import::get_item_ident </td>
+ <td>(</td>
+ <td class="paramtype">&#160;</td>
+ <td class="paramname"><em>$item</em></td><td>)</td>
+ <td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+</div>
+</div>
+<a class="anchor" id="a855cd5a79b95d269ae8737fae774e3bc"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">RedMatrix\Import\Import::get_itemlist </td>
+ <td>(</td>
+ <td class="paramname"></td><td>)</td>
+ <td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Referenced by <a class="el" href="classRedMatrix_1_1Import_1_1Import.html#a8d138a9a7d4f79b81d3446ca216a602c">RedMatrix\Import\Import\run()</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="ae3c6472bea1a44025bc2e152604eb20c"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">RedMatrix\Import\Import::get_taxonomy </td>
+ <td>(</td>
+ <td class="paramtype">&#160;</td>
+ <td class="paramname"><em>$item_ident</em></td><td>)</td>
+ <td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Referenced by <a class="el" href="classRedMatrix_1_1Import_1_1Import.html#a8d138a9a7d4f79b81d3446ca216a602c">RedMatrix\Import\Import\run()</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="a8d138a9a7d4f79b81d3446ca216a602c"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">RedMatrix\Import\Import::run </td>
+ <td>(</td>
+ <td class="paramname"></td><td>)</td>
+ <td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+</div>
+</div>
+<a class="anchor" id="a33ed595de044c0ec1cd84cca719e31dc"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">RedMatrix\Import\Import::store </td>
+ <td>(</td>
+ <td class="paramtype">&#160;</td>
+ <td class="paramname"><em>$item</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">&#160;</td>
+ <td class="paramname"><em>$update</em> = <code>false</code>&#160;</td>
+ </tr>
+ <tr>
+ <td></td>
+ <td>)</td>
+ <td></td><td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+</div>
+</div>
+<h2 class="groupheader">Member Data Documentation</h2>
+<a class="anchor" id="a864aac9fadb4846f5d9f840e8e0f440f"></a>
+<div class="memitem">
+<div class="memproto">
+<table class="mlabels">
+ <tr>
+ <td class="mlabels-left">
+ <table class="memname">
+ <tr>
+ <td class="memname">RedMatrix\Import\Import::$credentials = null</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="classRedMatrix_1_1Import_1_1Import.html#a24134929d9a8a682da2036a0bf326367">RedMatrix\Import\Import\get_credentials()</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="ad0d2bdc3b388220479063915b4f5c2fc"></a>
+<div class="memitem">
+<div class="memproto">
+<table class="mlabels">
+ <tr>
+ <td class="mlabels-left">
+ <table class="memname">
+ <tr>
+ <td class="memname">RedMatrix\Import\Import::$itemlist = null</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>Referenced by <a class="el" href="classRedMatrix_1_1Import_1_1Import.html#a855cd5a79b95d269ae8737fae774e3bc">RedMatrix\Import\Import\get_itemlist()</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="a0a05dac405ccc5b617b7b7b3c8ed783c"></a>
+<div class="memitem">
+<div class="memproto">
+<table class="mlabels">
+ <tr>
+ <td class="mlabels-left">
+ <table class="memname">
+ <tr>
+ <td class="memname">RedMatrix\Import\Import::$items = null</td>
+ </tr>
+ </table>
+ </td>
+ <td class="mlabels-right">
+<span class="mlabels"><span class="mlabel">protected</span></span> </td>
+ </tr>
+</table>
+</div><div class="memdoc">
+
+</div>
+</div>
+<a class="anchor" id="a88c2eeba8d0cba3e7c12a2c45ba0fbc6"></a>
+<div class="memitem">
+<div class="memproto">
+<table class="mlabels">
+ <tr>
+ <td class="mlabels-left">
+ <table class="memname">
+ <tr>
+ <td class="memname">RedMatrix\Import\Import::$src_items = null</td>
+ </tr>
+ </table>
+ </td>
+ <td class="mlabels-right">
+<span class="mlabels"><span class="mlabel">protected</span></span> </td>
+ </tr>
+</table>
+</div><div class="memdoc">
+
+</div>
+</div>
+<hr/>The documentation for this class was generated from the following file:<ul>
+<li>include/Import/<a class="el" href="Importer_8php.html">Importer.php</a></li>
+</ul>
+</div><!-- contents -->
+</div><!-- doc-content -->
+
diff --git a/doc/html/classRedMatrix_1_1Import_1_1Import.js b/doc/html/classRedMatrix_1_1Import_1_1Import.js
new file mode 100644
index 000000000..03e429289
--- /dev/null
+++ b/doc/html/classRedMatrix_1_1Import_1_1Import.js
@@ -0,0 +1,18 @@
+var classRedMatrix_1_1Import_1_1Import =
+[
+ [ "convert_child", "classRedMatrix_1_1Import_1_1Import.html#a5434325afb2c633c52540127d717800a", null ],
+ [ "convert_item", "classRedMatrix_1_1Import_1_1Import.html#a107703a43a1b0ceb2af7ae470cb3f218", null ],
+ [ "convert_taxonomy", "classRedMatrix_1_1Import_1_1Import.html#addf6e53dacd971eaab49be4b17a767d6", null ],
+ [ "get_children", "classRedMatrix_1_1Import_1_1Import.html#a57561904b0f127e0d9a3e2c33688daf8", null ],
+ [ "get_credentials", "classRedMatrix_1_1Import_1_1Import.html#a24134929d9a8a682da2036a0bf326367", null ],
+ [ "get_item", "classRedMatrix_1_1Import_1_1Import.html#a27987a41cb703a796f1821baeb4774a2", null ],
+ [ "get_item_ident", "classRedMatrix_1_1Import_1_1Import.html#a772c28edf36aaf8e66007a95004c4059", null ],
+ [ "get_itemlist", "classRedMatrix_1_1Import_1_1Import.html#a855cd5a79b95d269ae8737fae774e3bc", null ],
+ [ "get_taxonomy", "classRedMatrix_1_1Import_1_1Import.html#ae3c6472bea1a44025bc2e152604eb20c", null ],
+ [ "run", "classRedMatrix_1_1Import_1_1Import.html#a8d138a9a7d4f79b81d3446ca216a602c", null ],
+ [ "store", "classRedMatrix_1_1Import_1_1Import.html#a33ed595de044c0ec1cd84cca719e31dc", null ],
+ [ "$credentials", "classRedMatrix_1_1Import_1_1Import.html#a864aac9fadb4846f5d9f840e8e0f440f", null ],
+ [ "$itemlist", "classRedMatrix_1_1Import_1_1Import.html#ad0d2bdc3b388220479063915b4f5c2fc", null ],
+ [ "$items", "classRedMatrix_1_1Import_1_1Import.html#a0a05dac405ccc5b617b7b7b3c8ed783c", null ],
+ [ "$src_items", "classRedMatrix_1_1Import_1_1Import.html#a88c2eeba8d0cba3e7c12a2c45ba0fbc6", null ]
+]; \ No newline at end of file
diff --git a/doc/html/classRedMatrix_1_1RedDAV_1_1RedBasicAuth-members.html b/doc/html/classRedMatrix_1_1RedDAV_1_1RedBasicAuth-members.html
new file mode 100644
index 000000000..f2f77b15f
--- /dev/null
+++ b/doc/html/classRedMatrix_1_1RedDAV_1_1RedBasicAuth-members.html
@@ -0,0 +1,133 @@
+<!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('classRedMatrix_1_1RedDAV_1_1RedBasicAuth.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">RedMatrix\RedDAV\RedBasicAuth Member List</div> </div>
+</div><!--header-->
+<div class="contents">
+
+<p>This is the complete list of members for <a class="el" href="classRedMatrix_1_1RedDAV_1_1RedBasicAuth.html">RedMatrix\RedDAV\RedBasicAuth</a>, including all inherited members.</p>
+<table class="directory">
+ <tr class="even"><td class="entry"><a class="el" href="classRedMatrix_1_1RedDAV_1_1RedBasicAuth.html#a167ae032bd2ad8e6caa2e1e1a6f1b5d3">$browser</a></td><td class="entry"><a class="el" href="classRedMatrix_1_1RedDAV_1_1RedBasicAuth.html">RedMatrix\RedDAV\RedBasicAuth</a></td><td class="entry"></td></tr>
+ <tr><td class="entry"><a class="el" href="classRedMatrix_1_1RedDAV_1_1RedBasicAuth.html#a112ad78a863dc0e598b5f02c596798c0">$channel_hash</a></td><td class="entry"><a class="el" href="classRedMatrix_1_1RedDAV_1_1RedBasicAuth.html">RedMatrix\RedDAV\RedBasicAuth</a></td><td class="entry"></td></tr>
+ <tr class="even"><td class="entry"><a class="el" href="classRedMatrix_1_1RedDAV_1_1RedBasicAuth.html#abe1defedb90ac8e3b6487e124e625521">$channel_id</a></td><td class="entry"><a class="el" href="classRedMatrix_1_1RedDAV_1_1RedBasicAuth.html">RedMatrix\RedDAV\RedBasicAuth</a></td><td class="entry"></td></tr>
+ <tr><td class="entry"><a class="el" href="classRedMatrix_1_1RedDAV_1_1RedBasicAuth.html#a76fdb7fd5dd7376155abb5a58cd6fd69">$channel_name</a></td><td class="entry"><a class="el" href="classRedMatrix_1_1RedDAV_1_1RedBasicAuth.html">RedMatrix\RedDAV\RedBasicAuth</a></td><td class="entry"><span class="mlabel">protected</span></td></tr>
+ <tr class="even"><td class="entry"><a class="el" href="classRedMatrix_1_1RedDAV_1_1RedBasicAuth.html#a605aa09565a097316b80f0d17d6b5823">$observer</a></td><td class="entry"><a class="el" href="classRedMatrix_1_1RedDAV_1_1RedBasicAuth.html">RedMatrix\RedDAV\RedBasicAuth</a></td><td class="entry"></td></tr>
+ <tr><td class="entry"><a class="el" href="classRedMatrix_1_1RedDAV_1_1RedBasicAuth.html#a1a23c349cc4699a8474505972684ea9c">$owner_id</a></td><td class="entry"><a class="el" href="classRedMatrix_1_1RedDAV_1_1RedBasicAuth.html">RedMatrix\RedDAV\RedBasicAuth</a></td><td class="entry"></td></tr>
+ <tr class="even"><td class="entry"><a class="el" href="classRedMatrix_1_1RedDAV_1_1RedBasicAuth.html#aad0ef0cc05c407de84dbfbf2050bbbbe">$owner_nick</a></td><td class="entry"><a class="el" href="classRedMatrix_1_1RedDAV_1_1RedBasicAuth.html">RedMatrix\RedDAV\RedBasicAuth</a></td><td class="entry"></td></tr>
+ <tr><td class="entry"><a class="el" href="classRedMatrix_1_1RedDAV_1_1RedBasicAuth.html#a849c99cf0a7ad065d630c8a30106ad5e">$timezone</a></td><td class="entry"><a class="el" href="classRedMatrix_1_1RedDAV_1_1RedBasicAuth.html">RedMatrix\RedDAV\RedBasicAuth</a></td><td class="entry"><span class="mlabel">protected</span></td></tr>
+ <tr class="even"><td class="entry"><a class="el" href="classRedMatrix_1_1RedDAV_1_1RedBasicAuth.html#aa0b2a5fa9186d7dc0e637f1ecb379c42">getCurrentUser</a>()</td><td class="entry"><a class="el" href="classRedMatrix_1_1RedDAV_1_1RedBasicAuth.html">RedMatrix\RedDAV\RedBasicAuth</a></td><td class="entry"></td></tr>
+ <tr><td class="entry"><a class="el" href="classRedMatrix_1_1RedDAV_1_1RedBasicAuth.html#a6333c8ce58998bd11bf8102afe3b0748">getTimezone</a>()</td><td class="entry"><a class="el" href="classRedMatrix_1_1RedDAV_1_1RedBasicAuth.html">RedMatrix\RedDAV\RedBasicAuth</a></td><td class="entry"></td></tr>
+ <tr class="even"><td class="entry"><a class="el" href="classRedMatrix_1_1RedDAV_1_1RedBasicAuth.html#abf6fe89b0a8239ed93c3b07e1fbce75b">log</a>()</td><td class="entry"><a class="el" href="classRedMatrix_1_1RedDAV_1_1RedBasicAuth.html">RedMatrix\RedDAV\RedBasicAuth</a></td><td class="entry"></td></tr>
+ <tr><td class="entry"><a class="el" href="classRedMatrix_1_1RedDAV_1_1RedBasicAuth.html#a2926fe923baade564f2663632fa8c633">setAuthenticated</a>($r)</td><td class="entry"><a class="el" href="classRedMatrix_1_1RedDAV_1_1RedBasicAuth.html">RedMatrix\RedDAV\RedBasicAuth</a></td><td class="entry"><span class="mlabel">protected</span></td></tr>
+ <tr class="even"><td class="entry"><a class="el" href="classRedMatrix_1_1RedDAV_1_1RedBasicAuth.html#adc72f36f0b2b17b20ea4df900afcd697">setBrowserPlugin</a>($browser)</td><td class="entry"><a class="el" href="classRedMatrix_1_1RedDAV_1_1RedBasicAuth.html">RedMatrix\RedDAV\RedBasicAuth</a></td><td class="entry"></td></tr>
+ <tr><td class="entry"><a class="el" href="classRedMatrix_1_1RedDAV_1_1RedBasicAuth.html#aadce020fb595c7943829d7f995d3f998">setCurrentUser</a>($name)</td><td class="entry"><a class="el" href="classRedMatrix_1_1RedDAV_1_1RedBasicAuth.html">RedMatrix\RedDAV\RedBasicAuth</a></td><td class="entry"></td></tr>
+ <tr class="even"><td class="entry"><a class="el" href="classRedMatrix_1_1RedDAV_1_1RedBasicAuth.html#af6d239fefed05859327ee8db626703f9">setTimezone</a>($timezone)</td><td class="entry"><a class="el" href="classRedMatrix_1_1RedDAV_1_1RedBasicAuth.html">RedMatrix\RedDAV\RedBasicAuth</a></td><td class="entry"></td></tr>
+ <tr><td class="entry"><a class="el" href="classRedMatrix_1_1RedDAV_1_1RedBasicAuth.html#a6ece02655b780469e59e204c5979a624">validateUserPass</a>($username, $password)</td><td class="entry"><a class="el" href="classRedMatrix_1_1RedDAV_1_1RedBasicAuth.html">RedMatrix\RedDAV\RedBasicAuth</a></td><td class="entry"><span class="mlabel">protected</span></td></tr>
+</table></div><!-- contents -->
+</div><!-- doc-content -->
+
diff --git a/doc/html/classRedMatrix_1_1RedDAV_1_1RedBasicAuth.html b/doc/html/classRedMatrix_1_1RedDAV_1_1RedBasicAuth.html
new file mode 100644
index 000000000..732ee436e
--- /dev/null
+++ b/doc/html/classRedMatrix_1_1RedDAV_1_1RedBasicAuth.html
@@ -0,0 +1,519 @@
+<!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: RedMatrix\RedDAV\RedBasicAuth 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('classRedMatrix_1_1RedDAV_1_1RedBasicAuth.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="#pub-attribs">Public Attributes</a> &#124;
+<a href="#pro-methods">Protected Member Functions</a> &#124;
+<a href="#pro-attribs">Protected Attributes</a> &#124;
+<a href="classRedMatrix_1_1RedDAV_1_1RedBasicAuth-members.html">List of all members</a> </div>
+ <div class="headertitle">
+<div class="title">RedMatrix\RedDAV\RedBasicAuth Class Reference</div> </div>
+</div><!--header-->
+<div class="contents">
+
+<p>Authentication backend class for <a class="el" href="namespaceRedMatrix_1_1RedDAV.html">RedDAV</a>.
+ <a href="classRedMatrix_1_1RedDAV_1_1RedBasicAuth.html#details">More...</a></p>
+<div class="dynheader">
+Inheritance diagram for RedMatrix\RedDAV\RedBasicAuth:</div>
+<div class="dyncontent">
+ <div class="center">
+ <img src="classRedMatrix_1_1RedDAV_1_1RedBasicAuth.png" usemap="#RedMatrix\RedDAV\RedBasicAuth_map" alt=""/>
+ <map id="RedMatrix\RedDAV\RedBasicAuth_map" name="RedMatrix\RedDAV\RedBasicAuth_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:aadce020fb595c7943829d7f995d3f998"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classRedMatrix_1_1RedDAV_1_1RedBasicAuth.html#aadce020fb595c7943829d7f995d3f998">setCurrentUser</a> ($name)</td></tr>
+<tr class="separator:aadce020fb595c7943829d7f995d3f998"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:aa0b2a5fa9186d7dc0e637f1ecb379c42"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classRedMatrix_1_1RedDAV_1_1RedBasicAuth.html#aa0b2a5fa9186d7dc0e637f1ecb379c42">getCurrentUser</a> ()</td></tr>
+<tr class="separator:aa0b2a5fa9186d7dc0e637f1ecb379c42"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:af6d239fefed05859327ee8db626703f9"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classRedMatrix_1_1RedDAV_1_1RedBasicAuth.html#af6d239fefed05859327ee8db626703f9">setTimezone</a> ($timezone)</td></tr>
+<tr class="memdesc:af6d239fefed05859327ee8db626703f9"><td class="mdescLeft">&#160;</td><td class="mdescRight">Sets the timezone from the channel in <a class="el" href="classRedMatrix_1_1RedDAV_1_1RedBasicAuth.html" title="Authentication backend class for RedDAV.">RedBasicAuth</a>. <a href="#af6d239fefed05859327ee8db626703f9">More...</a><br/></td></tr>
+<tr class="separator:af6d239fefed05859327ee8db626703f9"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a6333c8ce58998bd11bf8102afe3b0748"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classRedMatrix_1_1RedDAV_1_1RedBasicAuth.html#a6333c8ce58998bd11bf8102afe3b0748">getTimezone</a> ()</td></tr>
+<tr class="memdesc:a6333c8ce58998bd11bf8102afe3b0748"><td class="mdescLeft">&#160;</td><td class="mdescRight">Returns the timezone. <a href="#a6333c8ce58998bd11bf8102afe3b0748">More...</a><br/></td></tr>
+<tr class="separator:a6333c8ce58998bd11bf8102afe3b0748"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:adc72f36f0b2b17b20ea4df900afcd697"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classRedMatrix_1_1RedDAV_1_1RedBasicAuth.html#adc72f36f0b2b17b20ea4df900afcd697">setBrowserPlugin</a> ($browser)</td></tr>
+<tr class="memdesc:adc72f36f0b2b17b20ea4df900afcd697"><td class="mdescLeft">&#160;</td><td class="mdescRight">Set browser plugin for SabreDAV. <a href="#adc72f36f0b2b17b20ea4df900afcd697">More...</a><br/></td></tr>
+<tr class="separator:adc72f36f0b2b17b20ea4df900afcd697"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:abf6fe89b0a8239ed93c3b07e1fbce75b"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classRedMatrix_1_1RedDAV_1_1RedBasicAuth.html#abf6fe89b0a8239ed93c3b07e1fbce75b">log</a> ()</td></tr>
+<tr class="memdesc:abf6fe89b0a8239ed93c3b07e1fbce75b"><td class="mdescLeft">&#160;</td><td class="mdescRight">Prints out all <a class="el" href="classRedMatrix_1_1RedDAV_1_1RedBasicAuth.html" title="Authentication backend class for RedDAV.">RedBasicAuth</a> variables to <a class="el" href="text_8php.html#a030fa5ecc64168af0c4f44897a9bce63" title="Logging function for RedMatrix.">logger()</a>. <a href="#abf6fe89b0a8239ed93c3b07e1fbce75b">More...</a><br/></td></tr>
+<tr class="separator:abf6fe89b0a8239ed93c3b07e1fbce75b"><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:abe1defedb90ac8e3b6487e124e625521"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classRedMatrix_1_1RedDAV_1_1RedBasicAuth.html#abe1defedb90ac8e3b6487e124e625521">$channel_id</a> = 0</td></tr>
+<tr class="separator:abe1defedb90ac8e3b6487e124e625521"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a112ad78a863dc0e598b5f02c596798c0"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classRedMatrix_1_1RedDAV_1_1RedBasicAuth.html#a112ad78a863dc0e598b5f02c596798c0">$channel_hash</a> = ''</td></tr>
+<tr class="separator:a112ad78a863dc0e598b5f02c596798c0"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a605aa09565a097316b80f0d17d6b5823"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classRedMatrix_1_1RedDAV_1_1RedBasicAuth.html#a605aa09565a097316b80f0d17d6b5823">$observer</a> = ''</td></tr>
+<tr class="separator:a605aa09565a097316b80f0d17d6b5823"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a167ae032bd2ad8e6caa2e1e1a6f1b5d3"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classRedMatrix_1_1RedDAV_1_1RedBasicAuth.html#a167ae032bd2ad8e6caa2e1e1a6f1b5d3">$browser</a></td></tr>
+<tr class="separator:a167ae032bd2ad8e6caa2e1e1a6f1b5d3"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a1a23c349cc4699a8474505972684ea9c"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classRedMatrix_1_1RedDAV_1_1RedBasicAuth.html#a1a23c349cc4699a8474505972684ea9c">$owner_id</a> = 0</td></tr>
+<tr class="separator:a1a23c349cc4699a8474505972684ea9c"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:aad0ef0cc05c407de84dbfbf2050bbbbe"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classRedMatrix_1_1RedDAV_1_1RedBasicAuth.html#aad0ef0cc05c407de84dbfbf2050bbbbe">$owner_nick</a> = ''</td></tr>
+<tr class="separator:aad0ef0cc05c407de84dbfbf2050bbbbe"><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:a6ece02655b780469e59e204c5979a624"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classRedMatrix_1_1RedDAV_1_1RedBasicAuth.html#a6ece02655b780469e59e204c5979a624">validateUserPass</a> ($username, $password)</td></tr>
+<tr class="memdesc:a6ece02655b780469e59e204c5979a624"><td class="mdescLeft">&#160;</td><td class="mdescRight">Validates a username and password. <a href="#a6ece02655b780469e59e204c5979a624">More...</a><br/></td></tr>
+<tr class="separator:a6ece02655b780469e59e204c5979a624"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a2926fe923baade564f2663632fa8c633"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classRedMatrix_1_1RedDAV_1_1RedBasicAuth.html#a2926fe923baade564f2663632fa8c633">setAuthenticated</a> ($r)</td></tr>
+<tr class="memdesc:a2926fe923baade564f2663632fa8c633"><td class="mdescLeft">&#160;</td><td class="mdescRight">Sets variables and session parameters after successfull authentication. <a href="#a2926fe923baade564f2663632fa8c633">More...</a><br/></td></tr>
+<tr class="separator:a2926fe923baade564f2663632fa8c633"><td class="memSeparator" colspan="2">&#160;</td></tr>
+</table><table class="memberdecls">
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="pro-attribs"></a>
+Protected Attributes</h2></td></tr>
+<tr class="memitem:a76fdb7fd5dd7376155abb5a58cd6fd69"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classRedMatrix_1_1RedDAV_1_1RedBasicAuth.html#a76fdb7fd5dd7376155abb5a58cd6fd69">$channel_name</a> = null</td></tr>
+<tr class="separator:a76fdb7fd5dd7376155abb5a58cd6fd69"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a849c99cf0a7ad065d630c8a30106ad5e"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classRedMatrix_1_1RedDAV_1_1RedBasicAuth.html#a849c99cf0a7ad065d630c8a30106ad5e">$timezone</a> = ''</td></tr>
+<tr class="separator:a849c99cf0a7ad065d630c8a30106ad5e"><td class="memSeparator" colspan="2">&#160;</td></tr>
+</table>
+<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
+<div class="textblock"><p>Authentication backend class for <a class="el" href="namespaceRedMatrix_1_1RedDAV.html">RedDAV</a>. </p>
+<p>This class also contains some data which is not necessary for authentication like timezone settings.</p>
+<p><a class="el" href=""><a href="http://opensource.org/licenses/mit-license.php">http://opensource.org/licenses/mit-license.php</a> The MIT License (MIT) </a></p>
+</div><h2 class="groupheader">Member Function Documentation</h2>
+<a class="anchor" id="aa0b2a5fa9186d7dc0e637f1ecb379c42"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">RedMatrix\RedDAV\RedBasicAuth::getCurrentUser </td>
+ <td>(</td>
+ <td class="paramname"></td><td>)</td>
+ <td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+<p>Returns information about the currently logged-in channel.</p>
+<p>If nobody is currently logged in, this method should return null.</p>
+<dl class="section see"><dt>See Also</dt><dd>::getCurrentUser </dd></dl>
+<dl class="section return"><dt>Returns</dt><dd>string|null </dd></dl>
+
+</div>
+</div>
+<a class="anchor" id="a6333c8ce58998bd11bf8102afe3b0748"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">RedMatrix\RedDAV\RedBasicAuth::getTimezone </td>
+ <td>(</td>
+ <td class="paramname"></td><td>)</td>
+ <td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Returns the timezone. </p>
+<dl class="section return"><dt>Returns</dt><dd>string Return the channel's timezone. </dd></dl>
+
+</div>
+</div>
+<a class="anchor" id="abf6fe89b0a8239ed93c3b07e1fbce75b"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">RedMatrix\RedDAV\RedBasicAuth::log </td>
+ <td>(</td>
+ <td class="paramname"></td><td>)</td>
+ <td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Prints out all <a class="el" href="classRedMatrix_1_1RedDAV_1_1RedBasicAuth.html" title="Authentication backend class for RedDAV.">RedBasicAuth</a> variables to <a class="el" href="text_8php.html#a030fa5ecc64168af0c4f44897a9bce63" title="Logging function for RedMatrix.">logger()</a>. </p>
+<dl class="section return"><dt>Returns</dt><dd>void </dd></dl>
+
+</div>
+</div>
+<a class="anchor" id="a2926fe923baade564f2663632fa8c633"></a>
+<div class="memitem">
+<div class="memproto">
+<table class="mlabels">
+ <tr>
+ <td class="mlabels-left">
+ <table class="memname">
+ <tr>
+ <td class="memname">RedMatrix\RedDAV\RedBasicAuth::setAuthenticated </td>
+ <td>(</td>
+ <td class="paramtype">&#160;</td>
+ <td class="paramname"><em>$r</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>Sets variables and session parameters after successfull authentication. </p>
+<dl class="params"><dt>Parameters</dt><dd>
+ <table class="params">
+ <tr><td class="paramtype">array</td><td class="paramname">$r</td><td>Array with the values for the authenticated channel. </td></tr>
+ </table>
+ </dd>
+</dl>
+<dl class="section return"><dt>Returns</dt><dd>bool </dd></dl>
+
+<p>Referenced by <a class="el" href="classRedMatrix_1_1RedDAV_1_1RedBasicAuth.html#a6ece02655b780469e59e204c5979a624">RedMatrix\RedDAV\RedBasicAuth\validateUserPass()</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="adc72f36f0b2b17b20ea4df900afcd697"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">RedMatrix\RedDAV\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">
+
+<p>Set browser plugin for SabreDAV. </p>
+<dl class="section see"><dt>See Also</dt><dd><a class="el" href="classRedMatrix_1_1RedDAV_1_1RedBrowser.html#aa1607857cb59738c4dce2fe8e73d8f19">RedBrowser::set_writeable()</a> </dd></dl>
+<dl class="params"><dt>Parameters</dt><dd>
+ <table class="params">
+ <tr><td class="paramtype">\Sabre\DAV\Browser\Plugin</td><td class="paramname">$browser</td><td></td></tr>
+ </table>
+ </dd>
+</dl>
+
+</div>
+</div>
+<a class="anchor" id="aadce020fb595c7943829d7f995d3f998"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">RedMatrix\RedDAV\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">
+<p>Sets the channel_name from the currently logged-in channel.</p>
+<dl class="params"><dt>Parameters</dt><dd>
+ <table class="params">
+ <tr><td class="paramtype">string</td><td class="paramname">$name</td><td>The channel's name </td></tr>
+ </table>
+ </dd>
+</dl>
+
+</div>
+</div>
+<a class="anchor" id="af6d239fefed05859327ee8db626703f9"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">RedMatrix\RedDAV\RedBasicAuth::setTimezone </td>
+ <td>(</td>
+ <td class="paramtype">&#160;</td>
+ <td class="paramname"><em>$timezone</em></td><td>)</td>
+ <td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Sets the timezone from the channel in <a class="el" href="classRedMatrix_1_1RedDAV_1_1RedBasicAuth.html" title="Authentication backend class for RedDAV.">RedBasicAuth</a>. </p>
+<p>Set in <a class="el" href="cloud_8php.html" title="Initialize RedMatrix&#39;s cloud (SabreDAV).">mod/cloud.php</a> if the channel has a timezone set.</p>
+<dl class="params"><dt>Parameters</dt><dd>
+ <table class="params">
+ <tr><td class="paramtype">string</td><td class="paramname">$timezone</td><td>The channel's timezone. </td></tr>
+ </table>
+ </dd>
+</dl>
+<dl class="section return"><dt>Returns</dt><dd>void </dd></dl>
+
+</div>
+</div>
+<a class="anchor" id="a6ece02655b780469e59e204c5979a624"></a>
+<div class="memitem">
+<div class="memproto">
+<table class="mlabels">
+ <tr>
+ <td class="mlabels-left">
+ <table class="memname">
+ <tr>
+ <td class="memname">RedMatrix\RedDAV\RedBasicAuth::validateUserPass </td>
+ <td>(</td>
+ <td class="paramtype">&#160;</td>
+ <td class="paramname"><em>$username</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">&#160;</td>
+ <td class="paramname"><em>$password</em>&#160;</td>
+ </tr>
+ <tr>
+ <td></td>
+ <td>)</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>Validates a username and password. </p>
+<p>Guest access is granted with the password "+++".</p>
+<dl class="section see"><dt>See Also</dt><dd>::validateUserPass </dd></dl>
+<dl class="params"><dt>Parameters</dt><dd>
+ <table class="params">
+ <tr><td class="paramtype">string</td><td class="paramname">$username</td><td></td></tr>
+ <tr><td class="paramtype">string</td><td class="paramname">$password</td><td></td></tr>
+ </table>
+ </dd>
+</dl>
+<dl class="section return"><dt>Returns</dt><dd>bool </dd></dl>
+
+</div>
+</div>
+<h2 class="groupheader">Member Data Documentation</h2>
+<a class="anchor" id="a167ae032bd2ad8e6caa2e1e1a6f1b5d3"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">RedMatrix\RedDAV\RedBasicAuth::$browser</td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Referenced by <a class="el" href="classRedMatrix_1_1RedDAV_1_1RedBasicAuth.html#adc72f36f0b2b17b20ea4df900afcd697">RedMatrix\RedDAV\RedBasicAuth\setBrowserPlugin()</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="a112ad78a863dc0e598b5f02c596798c0"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">RedMatrix\RedDAV\RedBasicAuth::$channel_hash = ''</td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+</div>
+</div>
+<a class="anchor" id="abe1defedb90ac8e3b6487e124e625521"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">RedMatrix\RedDAV\RedBasicAuth::$channel_id = 0</td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+</div>
+</div>
+<a class="anchor" id="a76fdb7fd5dd7376155abb5a58cd6fd69"></a>
+<div class="memitem">
+<div class="memproto">
+<table class="mlabels">
+ <tr>
+ <td class="mlabels-left">
+ <table class="memname">
+ <tr>
+ <td class="memname">RedMatrix\RedDAV\RedBasicAuth::$channel_name = null</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>Referenced by <a class="el" href="classRedMatrix_1_1RedDAV_1_1RedBasicAuth.html#aa0b2a5fa9186d7dc0e637f1ecb379c42">RedMatrix\RedDAV\RedBasicAuth\getCurrentUser()</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="a605aa09565a097316b80f0d17d6b5823"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">RedMatrix\RedDAV\RedBasicAuth::$observer = ''</td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+</div>
+</div>
+<a class="anchor" id="a1a23c349cc4699a8474505972684ea9c"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">RedMatrix\RedDAV\RedBasicAuth::$owner_id = 0</td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+</div>
+</div>
+<a class="anchor" id="aad0ef0cc05c407de84dbfbf2050bbbbe"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">RedMatrix\RedDAV\RedBasicAuth::$owner_nick = ''</td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+</div>
+</div>
+<a class="anchor" id="a849c99cf0a7ad065d630c8a30106ad5e"></a>
+<div class="memitem">
+<div class="memproto">
+<table class="mlabels">
+ <tr>
+ <td class="mlabels-left">
+ <table class="memname">
+ <tr>
+ <td class="memname">RedMatrix\RedDAV\RedBasicAuth::$timezone = ''</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>Referenced by <a class="el" href="classRedMatrix_1_1RedDAV_1_1RedBasicAuth.html#a6333c8ce58998bd11bf8102afe3b0748">RedMatrix\RedDAV\RedBasicAuth\getTimezone()</a>, and <a class="el" href="classRedMatrix_1_1RedDAV_1_1RedBasicAuth.html#af6d239fefed05859327ee8db626703f9">RedMatrix\RedDAV\RedBasicAuth\setTimezone()</a>.</p>
+
+</div>
+</div>
+<hr/>The documentation for this class was generated from the following file:<ul>
+<li>include/RedDAV/<a class="el" href="RedBasicAuth_8php.html">RedBasicAuth.php</a></li>
+</ul>
+</div><!-- contents -->
+</div><!-- doc-content -->
+
diff --git a/doc/html/classRedMatrix_1_1RedDAV_1_1RedBasicAuth.js b/doc/html/classRedMatrix_1_1RedDAV_1_1RedBasicAuth.js
new file mode 100644
index 000000000..b48393cea
--- /dev/null
+++ b/doc/html/classRedMatrix_1_1RedDAV_1_1RedBasicAuth.js
@@ -0,0 +1,19 @@
+var classRedMatrix_1_1RedDAV_1_1RedBasicAuth =
+[
+ [ "getCurrentUser", "classRedMatrix_1_1RedDAV_1_1RedBasicAuth.html#aa0b2a5fa9186d7dc0e637f1ecb379c42", null ],
+ [ "getTimezone", "classRedMatrix_1_1RedDAV_1_1RedBasicAuth.html#a6333c8ce58998bd11bf8102afe3b0748", null ],
+ [ "log", "classRedMatrix_1_1RedDAV_1_1RedBasicAuth.html#abf6fe89b0a8239ed93c3b07e1fbce75b", null ],
+ [ "setAuthenticated", "classRedMatrix_1_1RedDAV_1_1RedBasicAuth.html#a2926fe923baade564f2663632fa8c633", null ],
+ [ "setBrowserPlugin", "classRedMatrix_1_1RedDAV_1_1RedBasicAuth.html#adc72f36f0b2b17b20ea4df900afcd697", null ],
+ [ "setCurrentUser", "classRedMatrix_1_1RedDAV_1_1RedBasicAuth.html#aadce020fb595c7943829d7f995d3f998", null ],
+ [ "setTimezone", "classRedMatrix_1_1RedDAV_1_1RedBasicAuth.html#af6d239fefed05859327ee8db626703f9", null ],
+ [ "validateUserPass", "classRedMatrix_1_1RedDAV_1_1RedBasicAuth.html#a6ece02655b780469e59e204c5979a624", null ],
+ [ "$browser", "classRedMatrix_1_1RedDAV_1_1RedBasicAuth.html#a167ae032bd2ad8e6caa2e1e1a6f1b5d3", null ],
+ [ "$channel_hash", "classRedMatrix_1_1RedDAV_1_1RedBasicAuth.html#a112ad78a863dc0e598b5f02c596798c0", null ],
+ [ "$channel_id", "classRedMatrix_1_1RedDAV_1_1RedBasicAuth.html#abe1defedb90ac8e3b6487e124e625521", null ],
+ [ "$channel_name", "classRedMatrix_1_1RedDAV_1_1RedBasicAuth.html#a76fdb7fd5dd7376155abb5a58cd6fd69", null ],
+ [ "$observer", "classRedMatrix_1_1RedDAV_1_1RedBasicAuth.html#a605aa09565a097316b80f0d17d6b5823", null ],
+ [ "$owner_id", "classRedMatrix_1_1RedDAV_1_1RedBasicAuth.html#a1a23c349cc4699a8474505972684ea9c", null ],
+ [ "$owner_nick", "classRedMatrix_1_1RedDAV_1_1RedBasicAuth.html#aad0ef0cc05c407de84dbfbf2050bbbbe", null ],
+ [ "$timezone", "classRedMatrix_1_1RedDAV_1_1RedBasicAuth.html#a849c99cf0a7ad065d630c8a30106ad5e", null ]
+]; \ No newline at end of file
diff --git a/doc/html/classRedMatrix_1_1RedDAV_1_1RedBasicAuth.png b/doc/html/classRedMatrix_1_1RedDAV_1_1RedBasicAuth.png
new file mode 100644
index 000000000..f361b604b
--- /dev/null
+++ b/doc/html/classRedMatrix_1_1RedDAV_1_1RedBasicAuth.png
Binary files differ
diff --git a/doc/html/classRedMatrix_1_1RedDAV_1_1RedBrowser-members.html b/doc/html/classRedMatrix_1_1RedDAV_1_1RedBrowser-members.html
new file mode 100644
index 000000000..34718ac8d
--- /dev/null
+++ b/doc/html/classRedMatrix_1_1RedDAV_1_1RedBrowser-members.html
@@ -0,0 +1,126 @@
+<!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('classRedMatrix_1_1RedDAV_1_1RedBrowser.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">RedMatrix\RedDAV\RedBrowser Member List</div> </div>
+</div><!--header-->
+<div class="contents">
+
+<p>This is the complete list of members for <a class="el" href="classRedMatrix_1_1RedDAV_1_1RedBrowser.html">RedMatrix\RedDAV\RedBrowser</a>, including all inherited members.</p>
+<table class="directory">
+ <tr class="even"><td class="entry"><a class="el" href="classRedMatrix_1_1RedDAV_1_1RedBrowser.html#ad19179bf4ac7f18fafa7e2e3df800142">$auth</a></td><td class="entry"><a class="el" href="classRedMatrix_1_1RedDAV_1_1RedBrowser.html">RedMatrix\RedDAV\RedBrowser</a></td><td class="entry"><span class="mlabel">private</span></td></tr>
+ <tr><td class="entry"><a class="el" href="classRedMatrix_1_1RedDAV_1_1RedBrowser.html#a8161f2a0be205412e263c947b5ec46c5">__construct</a>(&amp;$auth)</td><td class="entry"><a class="el" href="classRedMatrix_1_1RedDAV_1_1RedBrowser.html">RedMatrix\RedDAV\RedBrowser</a></td><td class="entry"></td></tr>
+ <tr class="even"><td class="entry"><a class="el" href="classRedMatrix_1_1RedDAV_1_1RedBrowser.html#ad4bc0516533c62733f38043a37267d78">findAttachHash</a>($owner, $parentHash, $attachName)</td><td class="entry"><a class="el" href="classRedMatrix_1_1RedDAV_1_1RedBrowser.html">RedMatrix\RedDAV\RedBrowser</a></td><td class="entry"><span class="mlabel">protected</span></td></tr>
+ <tr><td class="entry"><a class="el" href="classRedMatrix_1_1RedDAV_1_1RedBrowser.html#a0733e38e254474d9a456825e72f1ddfd">findAttachIdByHash</a>($attachHash)</td><td class="entry"><a class="el" href="classRedMatrix_1_1RedDAV_1_1RedBrowser.html">RedMatrix\RedDAV\RedBrowser</a></td><td class="entry"><span class="mlabel">protected</span></td></tr>
+ <tr class="even"><td class="entry"><a class="el" href="classRedMatrix_1_1RedDAV_1_1RedBrowser.html#af764d5f14df751f9ec86c34fab300c09">generateDirectoryIndex</a>($path)</td><td class="entry"><a class="el" href="classRedMatrix_1_1RedDAV_1_1RedBrowser.html">RedMatrix\RedDAV\RedBrowser</a></td><td class="entry"></td></tr>
+ <tr><td class="entry"><a class="el" href="classRedMatrix_1_1RedDAV_1_1RedBrowser.html#acaa792c08d24e9dc2919759e92ba037d">getAssetUrl</a>($assetName)</td><td class="entry"><a class="el" href="classRedMatrix_1_1RedDAV_1_1RedBrowser.html">RedMatrix\RedDAV\RedBrowser</a></td><td class="entry"><span class="mlabel">protected</span></td></tr>
+ <tr class="even"><td class="entry"><a class="el" href="classRedMatrix_1_1RedDAV_1_1RedBrowser.html#a3bd98af2d1cdfd8f26deb914596176cf">htmlActionsPanel</a>(DAV\INode $node, &amp;$output)</td><td class="entry"><a class="el" href="classRedMatrix_1_1RedDAV_1_1RedBrowser.html">RedMatrix\RedDAV\RedBrowser</a></td><td class="entry"></td></tr>
+ <tr><td class="entry"><a class="el" href="classRedMatrix_1_1RedDAV_1_1RedBrowser.html#aa1607857cb59738c4dce2fe8e73d8f19">set_writeable</a>()</td><td class="entry"><a class="el" href="classRedMatrix_1_1RedDAV_1_1RedBrowser.html">RedMatrix\RedDAV\RedBrowser</a></td><td class="entry"></td></tr>
+ <tr class="even"><td class="entry"><a class="el" href="classRedMatrix_1_1RedDAV_1_1RedBrowser.html#a242ce69a2fe5a5fdf9c2b8d3954accfd">userReadableSize</a>($size)</td><td class="entry"><a class="el" href="classRedMatrix_1_1RedDAV_1_1RedBrowser.html">RedMatrix\RedDAV\RedBrowser</a></td><td class="entry"></td></tr>
+</table></div><!-- contents -->
+</div><!-- doc-content -->
+
diff --git a/doc/html/classRedMatrix_1_1RedDAV_1_1RedBrowser.html b/doc/html/classRedMatrix_1_1RedDAV_1_1RedBrowser.html
new file mode 100644
index 000000000..7c2e573d5
--- /dev/null
+++ b/doc/html/classRedMatrix_1_1RedDAV_1_1RedBrowser.html
@@ -0,0 +1,452 @@
+<!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: RedMatrix\RedDAV\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('classRedMatrix_1_1RedDAV_1_1RedBrowser.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="classRedMatrix_1_1RedDAV_1_1RedBrowser-members.html">List of all members</a> </div>
+ <div class="headertitle">
+<div class="title">RedMatrix\RedDAV\RedBrowser Class Reference</div> </div>
+</div><!--header-->
+<div class="contents">
+
+<p>Provides a DAV frontend for the webbrowser.
+ <a href="classRedMatrix_1_1RedDAV_1_1RedBrowser.html#details">More...</a></p>
+<div class="dynheader">
+Inheritance diagram for RedMatrix\RedDAV\RedBrowser:</div>
+<div class="dyncontent">
+ <div class="center">
+ <img src="classRedMatrix_1_1RedDAV_1_1RedBrowser.png" usemap="#RedMatrix\RedDAV\RedBrowser_map" alt=""/>
+ <map id="RedMatrix\RedDAV\RedBrowser_map" name="RedMatrix\RedDAV\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:a8161f2a0be205412e263c947b5ec46c5"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classRedMatrix_1_1RedDAV_1_1RedBrowser.html#a8161f2a0be205412e263c947b5ec46c5">__construct</a> (&amp;$auth)</td></tr>
+<tr class="memdesc:a8161f2a0be205412e263c947b5ec46c5"><td class="mdescLeft">&#160;</td><td class="mdescRight">Constructor for <a class="el" href="classRedMatrix_1_1RedDAV_1_1RedBrowser.html" title="Provides a DAV frontend for the webbrowser.">RedBrowser</a> class. <a href="#a8161f2a0be205412e263c947b5ec46c5">More...</a><br/></td></tr>
+<tr class="separator:a8161f2a0be205412e263c947b5ec46c5"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:aa1607857cb59738c4dce2fe8e73d8f19"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classRedMatrix_1_1RedDAV_1_1RedBrowser.html#aa1607857cb59738c4dce2fe8e73d8f19">set_writeable</a> ()</td></tr>
+<tr class="separator:aa1607857cb59738c4dce2fe8e73d8f19"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:af764d5f14df751f9ec86c34fab300c09"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classRedMatrix_1_1RedDAV_1_1RedBrowser.html#af764d5f14df751f9ec86c34fab300c09">generateDirectoryIndex</a> ($path)</td></tr>
+<tr class="memdesc:af764d5f14df751f9ec86c34fab300c09"><td class="mdescLeft">&#160;</td><td class="mdescRight">Creates the directory listing for the given path. <a href="#af764d5f14df751f9ec86c34fab300c09">More...</a><br/></td></tr>
+<tr class="separator:af764d5f14df751f9ec86c34fab300c09"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a242ce69a2fe5a5fdf9c2b8d3954accfd"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classRedMatrix_1_1RedDAV_1_1RedBrowser.html#a242ce69a2fe5a5fdf9c2b8d3954accfd">userReadableSize</a> ($size)</td></tr>
+<tr class="memdesc:a242ce69a2fe5a5fdf9c2b8d3954accfd"><td class="mdescLeft">&#160;</td><td class="mdescRight">Returns a human readable formatted string for filesizes. <a href="#a242ce69a2fe5a5fdf9c2b8d3954accfd">More...</a><br/></td></tr>
+<tr class="separator:a242ce69a2fe5a5fdf9c2b8d3954accfd"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a3bd98af2d1cdfd8f26deb914596176cf"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classRedMatrix_1_1RedDAV_1_1RedBrowser.html#a3bd98af2d1cdfd8f26deb914596176cf">htmlActionsPanel</a> (DAV\INode $node, &amp;$output)</td></tr>
+<tr class="memdesc:a3bd98af2d1cdfd8f26deb914596176cf"><td class="mdescLeft">&#160;</td><td class="mdescRight">Creates a form to add new folders and upload files. <a href="#a3bd98af2d1cdfd8f26deb914596176cf">More...</a><br/></td></tr>
+<tr class="separator:a3bd98af2d1cdfd8f26deb914596176cf"><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:acaa792c08d24e9dc2919759e92ba037d"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classRedMatrix_1_1RedDAV_1_1RedBrowser.html#acaa792c08d24e9dc2919759e92ba037d">getAssetUrl</a> ($assetName)</td></tr>
+<tr class="separator:acaa792c08d24e9dc2919759e92ba037d"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ad4bc0516533c62733f38043a37267d78"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classRedMatrix_1_1RedDAV_1_1RedBrowser.html#ad4bc0516533c62733f38043a37267d78">findAttachHash</a> ($owner, $parentHash, $attachName)</td></tr>
+<tr class="memdesc:ad4bc0516533c62733f38043a37267d78"><td class="mdescLeft">&#160;</td><td class="mdescRight">Return the hash of an attachment. <a href="#ad4bc0516533c62733f38043a37267d78">More...</a><br/></td></tr>
+<tr class="separator:ad4bc0516533c62733f38043a37267d78"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a0733e38e254474d9a456825e72f1ddfd"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classRedMatrix_1_1RedDAV_1_1RedBrowser.html#a0733e38e254474d9a456825e72f1ddfd">findAttachIdByHash</a> ($attachHash)</td></tr>
+<tr class="memdesc:a0733e38e254474d9a456825e72f1ddfd"><td class="mdescLeft">&#160;</td><td class="mdescRight">Returns an attachment's id for a given hash. <a href="#a0733e38e254474d9a456825e72f1ddfd">More...</a><br/></td></tr>
+<tr class="separator:a0733e38e254474d9a456825e72f1ddfd"><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:ad19179bf4ac7f18fafa7e2e3df800142"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classRedMatrix_1_1RedDAV_1_1RedBrowser.html#ad19179bf4ac7f18fafa7e2e3df800142">$auth</a></td></tr>
+<tr class="separator:ad19179bf4ac7f18fafa7e2e3df800142"><td class="memSeparator" colspan="2">&#160;</td></tr>
+</table>
+<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
+<div class="textblock"><p>Provides a DAV frontend for the webbrowser. </p>
+<p><a class="el" href="classRedMatrix_1_1RedDAV_1_1RedBrowser.html" title="Provides a DAV frontend for the webbrowser.">RedBrowser</a> is a SabreDAV server-plugin to provide a view to the DAV storage for the webbrowser.</p>
+<p><a class="el" href=""><a href="http://opensource.org/licenses/mit-license.php">http://opensource.org/licenses/mit-license.php</a> The MIT License (MIT) </a></p>
+</div><h2 class="groupheader">Constructor &amp; Destructor Documentation</h2>
+<a class="anchor" id="a8161f2a0be205412e263c947b5ec46c5"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">RedMatrix\RedDAV\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">
+
+<p>Constructor for <a class="el" href="classRedMatrix_1_1RedDAV_1_1RedBrowser.html" title="Provides a DAV frontend for the webbrowser.">RedBrowser</a> class. </p>
+<p>$enablePost will be activated through <a class="el" href="classRedMatrix_1_1RedDAV_1_1RedBrowser.html#aa1607857cb59738c4dce2fe8e73d8f19">set_writeable()</a> in a later stage. At the moment the write_storage permission is only valid for the whole folder. No file specific permissions yet. </p>
+<dl class="todo"><dt><b><a class="el" href="todo.html#_todo000003">Todo:</a></b></dt><dd>disable enablePost by default and only activate if permissions grant edit rights.</dd></dl>
+<p>Disable assets with $enableAssets = false. Should get some thumbnail views anyway.</p>
+<dl class="params"><dt>Parameters</dt><dd>
+ <table class="params">
+ <tr><td class="paramtype"><a class="el" href="classRedMatrix_1_1RedDAV_1_1RedBasicAuth.html" title="Authentication backend class for RedDAV.">RedBasicAuth</a></td><td class="paramname">&amp;$auth</td><td></td></tr>
+ </table>
+ </dd>
+</dl>
+
+</div>
+</div>
+<h2 class="groupheader">Member Function Documentation</h2>
+<a class="anchor" id="ad4bc0516533c62733f38043a37267d78"></a>
+<div class="memitem">
+<div class="memproto">
+<table class="mlabels">
+ <tr>
+ <td class="mlabels-left">
+ <table class="memname">
+ <tr>
+ <td class="memname">RedMatrix\RedDAV\RedBrowser::findAttachHash </td>
+ <td>(</td>
+ <td class="paramtype">&#160;</td>
+ <td class="paramname"><em>$owner</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">&#160;</td>
+ <td class="paramname"><em>$parentHash</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">&#160;</td>
+ <td class="paramname"><em>$attachName</em>&#160;</td>
+ </tr>
+ <tr>
+ <td></td>
+ <td>)</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>Return the hash of an attachment. </p>
+<p>Given the owner, the parent folder and and attach name get the attachment hash.</p>
+<dl class="params"><dt>Parameters</dt><dd>
+ <table class="params">
+ <tr><td class="paramtype">int</td><td class="paramname">$owner</td><td>The owner_id </td></tr>
+ <tr><td class="paramtype">string</td><td class="paramname">$hash</td><td>The parent's folder hash </td></tr>
+ <tr><td class="paramtype">string</td><td class="paramname">$attachName</td><td>The name of the attachment </td></tr>
+ </table>
+ </dd>
+</dl>
+<dl class="section return"><dt>Returns</dt><dd>string </dd></dl>
+
+<p>Referenced by <a class="el" href="classRedMatrix_1_1RedDAV_1_1RedBrowser.html#af764d5f14df751f9ec86c34fab300c09">RedMatrix\RedDAV\RedBrowser\generateDirectoryIndex()</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="a0733e38e254474d9a456825e72f1ddfd"></a>
+<div class="memitem">
+<div class="memproto">
+<table class="mlabels">
+ <tr>
+ <td class="mlabels-left">
+ <table class="memname">
+ <tr>
+ <td class="memname">RedMatrix\RedDAV\RedBrowser::findAttachIdByHash </td>
+ <td>(</td>
+ <td class="paramtype">&#160;</td>
+ <td class="paramname"><em>$attachHash</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>Returns an attachment's id for a given hash. </p>
+<p>This id is used to access the attachment in filestorage/</p>
+<dl class="params"><dt>Parameters</dt><dd>
+ <table class="params">
+ <tr><td class="paramtype">string</td><td class="paramname">$attachHash</td><td>The hash of an attachment </td></tr>
+ </table>
+ </dd>
+</dl>
+<dl class="section return"><dt>Returns</dt><dd>string </dd></dl>
+
+<p>Referenced by <a class="el" href="classRedMatrix_1_1RedDAV_1_1RedBrowser.html#af764d5f14df751f9ec86c34fab300c09">RedMatrix\RedDAV\RedBrowser\generateDirectoryIndex()</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="af764d5f14df751f9ec86c34fab300c09"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">RedMatrix\RedDAV\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">
+
+<p>Creates the directory listing for the given path. </p>
+<dl class="params"><dt>Parameters</dt><dd>
+ <table class="params">
+ <tr><td class="paramtype">string</td><td class="paramname">$path</td><td>which should be displayed </td></tr>
+ </table>
+ </dd>
+</dl>
+
+</div>
+</div>
+<a class="anchor" id="acaa792c08d24e9dc2919759e92ba037d"></a>
+<div class="memitem">
+<div class="memproto">
+<table class="mlabels">
+ <tr>
+ <td class="mlabels-left">
+ <table class="memname">
+ <tr>
+ <td class="memname">RedMatrix\RedDAV\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="classRedMatrix_1_1RedDAV_1_1RedBrowser.html#af764d5f14df751f9ec86c34fab300c09">RedMatrix\RedDAV\RedBrowser\generateDirectoryIndex()</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="a3bd98af2d1cdfd8f26deb914596176cf"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">RedMatrix\RedDAV\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">
+
+<p>Creates a form to add new folders and upload files. </p>
+<dl class="params"><dt>Parameters</dt><dd>
+ <table class="params">
+ <tr><td class="paramtype">\Sabre\DAV\INode</td><td class="paramname">$node</td><td></td></tr>
+ <tr><td class="paramtype">string</td><td class="paramname">&amp;$output</td><td></td></tr>
+ </table>
+ </dd>
+</dl>
+
+</div>
+</div>
+<a class="anchor" id="aa1607857cb59738c4dce2fe8e73d8f19"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">RedMatrix\RedDAV\RedBrowser::set_writeable </td>
+ <td>(</td>
+ <td class="paramname"></td><td>)</td>
+ <td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+<p>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.</p>
+<p>It only disable/enable the visible parts. Not the POST handler which handels the actual requests when uploading files or creating folders.</p>
+<dl class="todo"><dt><b><a class="el" href="todo.html#_todo000004">Todo:</a></b></dt><dd>Maybe this whole way of doing this can be solved with some $server-&gt;subscribeEvent(). </dd></dl>
+
+</div>
+</div>
+<a class="anchor" id="a242ce69a2fe5a5fdf9c2b8d3954accfd"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">RedMatrix\RedDAV\RedBrowser::userReadableSize </td>
+ <td>(</td>
+ <td class="paramtype">&#160;</td>
+ <td class="paramname"><em>$size</em></td><td>)</td>
+ <td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Returns a human readable formatted string for filesizes. </p>
+<p>Don't we need such a functionality in other places, too?</p>
+<dl class="params"><dt>Parameters</dt><dd>
+ <table class="params">
+ <tr><td class="paramtype">int</td><td class="paramname">$size</td><td>filesize in bytes </td></tr>
+ </table>
+ </dd>
+</dl>
+<dl class="section return"><dt>Returns</dt><dd>string </dd></dl>
+
+<p>Referenced by <a class="el" href="classRedMatrix_1_1RedDAV_1_1RedBrowser.html#af764d5f14df751f9ec86c34fab300c09">RedMatrix\RedDAV\RedBrowser\generateDirectoryIndex()</a>.</p>
+
+</div>
+</div>
+<h2 class="groupheader">Member Data Documentation</h2>
+<a class="anchor" id="ad19179bf4ac7f18fafa7e2e3df800142"></a>
+<div class="memitem">
+<div class="memproto">
+<table class="mlabels">
+ <tr>
+ <td class="mlabels-left">
+ <table class="memname">
+ <tr>
+ <td class="memname">RedMatrix\RedDAV\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="classRedMatrix_1_1RedDAV_1_1RedBrowser.html#a8161f2a0be205412e263c947b5ec46c5">RedMatrix\RedDAV\RedBrowser\__construct()</a>.</p>
+
+</div>
+</div>
+<hr/>The documentation for this class was generated from the following file:<ul>
+<li>include/RedDAV/<a class="el" href="RedBrowser_8php.html">RedBrowser.php</a></li>
+</ul>
+</div><!-- contents -->
+</div><!-- doc-content -->
+
diff --git a/doc/html/classRedMatrix_1_1RedDAV_1_1RedBrowser.js b/doc/html/classRedMatrix_1_1RedDAV_1_1RedBrowser.js
new file mode 100644
index 000000000..88eb33d70
--- /dev/null
+++ b/doc/html/classRedMatrix_1_1RedDAV_1_1RedBrowser.js
@@ -0,0 +1,12 @@
+var classRedMatrix_1_1RedDAV_1_1RedBrowser =
+[
+ [ "__construct", "classRedMatrix_1_1RedDAV_1_1RedBrowser.html#a8161f2a0be205412e263c947b5ec46c5", null ],
+ [ "findAttachHash", "classRedMatrix_1_1RedDAV_1_1RedBrowser.html#ad4bc0516533c62733f38043a37267d78", null ],
+ [ "findAttachIdByHash", "classRedMatrix_1_1RedDAV_1_1RedBrowser.html#a0733e38e254474d9a456825e72f1ddfd", null ],
+ [ "generateDirectoryIndex", "classRedMatrix_1_1RedDAV_1_1RedBrowser.html#af764d5f14df751f9ec86c34fab300c09", null ],
+ [ "getAssetUrl", "classRedMatrix_1_1RedDAV_1_1RedBrowser.html#acaa792c08d24e9dc2919759e92ba037d", null ],
+ [ "htmlActionsPanel", "classRedMatrix_1_1RedDAV_1_1RedBrowser.html#a3bd98af2d1cdfd8f26deb914596176cf", null ],
+ [ "set_writeable", "classRedMatrix_1_1RedDAV_1_1RedBrowser.html#aa1607857cb59738c4dce2fe8e73d8f19", null ],
+ [ "userReadableSize", "classRedMatrix_1_1RedDAV_1_1RedBrowser.html#a242ce69a2fe5a5fdf9c2b8d3954accfd", null ],
+ [ "$auth", "classRedMatrix_1_1RedDAV_1_1RedBrowser.html#ad19179bf4ac7f18fafa7e2e3df800142", null ]
+]; \ No newline at end of file
diff --git a/doc/html/classRedMatrix_1_1RedDAV_1_1RedBrowser.png b/doc/html/classRedMatrix_1_1RedDAV_1_1RedBrowser.png
new file mode 100644
index 000000000..c549bff94
--- /dev/null
+++ b/doc/html/classRedMatrix_1_1RedDAV_1_1RedBrowser.png
Binary files differ
diff --git a/doc/html/classRedMatrix_1_1RedDAV_1_1RedDirectory-members.html b/doc/html/classRedMatrix_1_1RedDAV_1_1RedDirectory-members.html
new file mode 100644
index 000000000..b6cf43ad2
--- /dev/null
+++ b/doc/html/classRedMatrix_1_1RedDAV_1_1RedDirectory-members.html
@@ -0,0 +1,135 @@
+<!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('classRedMatrix_1_1RedDAV_1_1RedDirectory.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">RedMatrix\RedDAV\RedDirectory Member List</div> </div>
+</div><!--header-->
+<div class="contents">
+
+<p>This is the complete list of members for <a class="el" href="classRedMatrix_1_1RedDAV_1_1RedDirectory.html">RedMatrix\RedDAV\RedDirectory</a>, including all inherited members.</p>
+<table class="directory">
+ <tr class="even"><td class="entry"><a class="el" href="classRedMatrix_1_1RedDAV_1_1RedDirectory.html#aab6907e7fb7f9f7227f9cd42bdc84eb9">$auth</a></td><td class="entry"><a class="el" href="classRedMatrix_1_1RedDAV_1_1RedDirectory.html">RedMatrix\RedDAV\RedDirectory</a></td><td class="entry"><span class="mlabel">private</span></td></tr>
+ <tr><td class="entry"><a class="el" href="classRedMatrix_1_1RedDAV_1_1RedDirectory.html#adf8735b3118cdf2f42416edaf42b82e9">$ext_path</a></td><td class="entry"><a class="el" href="classRedMatrix_1_1RedDAV_1_1RedDirectory.html">RedMatrix\RedDAV\RedDirectory</a></td><td class="entry"><span class="mlabel">private</span></td></tr>
+ <tr class="even"><td class="entry"><a class="el" href="classRedMatrix_1_1RedDAV_1_1RedDirectory.html#a2fc4e6b9be2108bbaa1ca1a03fd6d44e">$folder_hash</a></td><td class="entry"><a class="el" href="classRedMatrix_1_1RedDAV_1_1RedDirectory.html">RedMatrix\RedDAV\RedDirectory</a></td><td class="entry"><span class="mlabel">private</span></td></tr>
+ <tr><td class="entry"><a class="el" href="classRedMatrix_1_1RedDAV_1_1RedDirectory.html#a17ea47e34cb76b6e79f36ebed790d76a">$os_path</a></td><td class="entry"><a class="el" href="classRedMatrix_1_1RedDAV_1_1RedDirectory.html">RedMatrix\RedDAV\RedDirectory</a></td><td class="entry"><span class="mlabel">private</span></td></tr>
+ <tr class="even"><td class="entry"><a class="el" href="classRedMatrix_1_1RedDAV_1_1RedDirectory.html#a4bba2e56bc8ec3e05f05eae46f56f36d">$red_path</a></td><td class="entry"><a class="el" href="classRedMatrix_1_1RedDAV_1_1RedDirectory.html">RedMatrix\RedDAV\RedDirectory</a></td><td class="entry"><span class="mlabel">private</span></td></tr>
+ <tr><td class="entry"><a class="el" href="classRedMatrix_1_1RedDAV_1_1RedDirectory.html#a438066fb1565fbcffa22c12d5ce23695">$root_dir</a></td><td class="entry"><a class="el" href="classRedMatrix_1_1RedDAV_1_1RedDirectory.html">RedMatrix\RedDAV\RedDirectory</a></td><td class="entry"><span class="mlabel">private</span></td></tr>
+ <tr class="even"><td class="entry"><a class="el" href="classRedMatrix_1_1RedDAV_1_1RedDirectory.html#a76b58fe5223e565c97f1b9af93031a99">__construct</a>($ext_path, &amp;$auth_plugin)</td><td class="entry"><a class="el" href="classRedMatrix_1_1RedDAV_1_1RedDirectory.html">RedMatrix\RedDAV\RedDirectory</a></td><td class="entry"></td></tr>
+ <tr><td class="entry"><a class="el" href="classRedMatrix_1_1RedDAV_1_1RedDirectory.html#a964b13fde1a5da6f76b51ca5519234dc">childExists</a>($name)</td><td class="entry"><a class="el" href="classRedMatrix_1_1RedDAV_1_1RedDirectory.html">RedMatrix\RedDAV\RedDirectory</a></td><td class="entry"></td></tr>
+ <tr class="even"><td class="entry"><a class="el" href="classRedMatrix_1_1RedDAV_1_1RedDirectory.html#aca0e8d574ea66a0e210f571700663c62">createDirectory</a>($name)</td><td class="entry"><a class="el" href="classRedMatrix_1_1RedDAV_1_1RedDirectory.html">RedMatrix\RedDAV\RedDirectory</a></td><td class="entry"></td></tr>
+ <tr><td class="entry"><a class="el" href="classRedMatrix_1_1RedDAV_1_1RedDirectory.html#a58e750256cdc2f0f79fbe8d5463ffefe">createFile</a>($name, $data=null)</td><td class="entry"><a class="el" href="classRedMatrix_1_1RedDAV_1_1RedDirectory.html">RedMatrix\RedDAV\RedDirectory</a></td><td class="entry"></td></tr>
+ <tr class="even"><td class="entry"><a class="el" href="classRedMatrix_1_1RedDAV_1_1RedDirectory.html#a1a37850bdd1f188abd6160559698d5d7">getChild</a>($name)</td><td class="entry"><a class="el" href="classRedMatrix_1_1RedDAV_1_1RedDirectory.html">RedMatrix\RedDAV\RedDirectory</a></td><td class="entry"></td></tr>
+ <tr><td class="entry"><a class="el" href="classRedMatrix_1_1RedDAV_1_1RedDirectory.html#a9b9a0b5bfa4de1f78e6cafaa534b6f6a">getChildren</a>()</td><td class="entry"><a class="el" href="classRedMatrix_1_1RedDAV_1_1RedDirectory.html">RedMatrix\RedDAV\RedDirectory</a></td><td class="entry"></td></tr>
+ <tr class="even"><td class="entry"><a class="el" href="classRedMatrix_1_1RedDAV_1_1RedDirectory.html#a825dc5f3e0f83f50736c16daa6a4809d">getDir</a>()</td><td class="entry"><a class="el" href="classRedMatrix_1_1RedDAV_1_1RedDirectory.html">RedMatrix\RedDAV\RedDirectory</a></td><td class="entry"></td></tr>
+ <tr><td class="entry"><a class="el" href="classRedMatrix_1_1RedDAV_1_1RedDirectory.html#a69db5f641f8f5dc999e55cee1832ecd5">getLastModified</a>()</td><td class="entry"><a class="el" href="classRedMatrix_1_1RedDAV_1_1RedDirectory.html">RedMatrix\RedDAV\RedDirectory</a></td><td class="entry"></td></tr>
+ <tr class="even"><td class="entry"><a class="el" href="classRedMatrix_1_1RedDAV_1_1RedDirectory.html#a55f7172814a0749b5342f152ab3fa0df">getName</a>()</td><td class="entry"><a class="el" href="classRedMatrix_1_1RedDAV_1_1RedDirectory.html">RedMatrix\RedDAV\RedDirectory</a></td><td class="entry"></td></tr>
+ <tr><td class="entry"><a class="el" href="classRedMatrix_1_1RedDAV_1_1RedDirectory.html#a69db443ed3c84938b4352fe515bf8d68">getQuotaInfo</a>()</td><td class="entry"><a class="el" href="classRedMatrix_1_1RedDAV_1_1RedDirectory.html">RedMatrix\RedDAV\RedDirectory</a></td><td class="entry"></td></tr>
+ <tr class="even"><td class="entry"><a class="el" href="classRedMatrix_1_1RedDAV_1_1RedDirectory.html#af90a1a74cfd643a5c56b9a17ea250d59">log</a>()</td><td class="entry"><a class="el" href="classRedMatrix_1_1RedDAV_1_1RedDirectory.html">RedMatrix\RedDAV\RedDirectory</a></td><td class="entry"><span class="mlabel">private</span></td></tr>
+ <tr><td class="entry"><a class="el" href="classRedMatrix_1_1RedDAV_1_1RedDirectory.html#a14ac61d31a031d139956763db4e03956">setName</a>($name)</td><td class="entry"><a class="el" href="classRedMatrix_1_1RedDAV_1_1RedDirectory.html">RedMatrix\RedDAV\RedDirectory</a></td><td class="entry"></td></tr>
+</table></div><!-- contents -->
+</div><!-- doc-content -->
+
diff --git a/doc/html/classRedMatrix_1_1RedDAV_1_1RedDirectory.html b/doc/html/classRedMatrix_1_1RedDAV_1_1RedDirectory.html
new file mode 100644
index 000000000..ba9db5894
--- /dev/null
+++ b/doc/html/classRedMatrix_1_1RedDAV_1_1RedDirectory.html
@@ -0,0 +1,642 @@
+<!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: RedMatrix\RedDAV\RedDirectory 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('classRedMatrix_1_1RedDAV_1_1RedDirectory.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="#pri-methods">Private Member Functions</a> &#124;
+<a href="#pri-attribs">Private Attributes</a> &#124;
+<a href="classRedMatrix_1_1RedDAV_1_1RedDirectory-members.html">List of all members</a> </div>
+ <div class="headertitle">
+<div class="title">RedMatrix\RedDAV\RedDirectory Class Reference</div> </div>
+</div><!--header-->
+<div class="contents">
+
+<p><a class="el" href="classRedMatrix_1_1RedDAV_1_1RedDirectory.html" title="RedDirectory class.">RedDirectory</a> class.
+ <a href="classRedMatrix_1_1RedDAV_1_1RedDirectory.html#details">More...</a></p>
+<div class="dynheader">
+Inheritance diagram for RedMatrix\RedDAV\RedDirectory:</div>
+<div class="dyncontent">
+ <div class="center">
+ <img src="classRedMatrix_1_1RedDAV_1_1RedDirectory.png" usemap="#RedMatrix\RedDAV\RedDirectory_map" alt=""/>
+ <map id="RedMatrix\RedDAV\RedDirectory_map" name="RedMatrix\RedDAV\RedDirectory_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:a76b58fe5223e565c97f1b9af93031a99"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classRedMatrix_1_1RedDAV_1_1RedDirectory.html#a76b58fe5223e565c97f1b9af93031a99">__construct</a> ($ext_path, &amp;$auth_plugin)</td></tr>
+<tr class="memdesc:a76b58fe5223e565c97f1b9af93031a99"><td class="mdescLeft">&#160;</td><td class="mdescRight">Sets up the directory node, expects a full path. <a href="#a76b58fe5223e565c97f1b9af93031a99">More...</a><br/></td></tr>
+<tr class="separator:a76b58fe5223e565c97f1b9af93031a99"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a9b9a0b5bfa4de1f78e6cafaa534b6f6a"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classRedMatrix_1_1RedDAV_1_1RedDirectory.html#a9b9a0b5bfa4de1f78e6cafaa534b6f6a">getChildren</a> ()</td></tr>
+<tr class="memdesc:a9b9a0b5bfa4de1f78e6cafaa534b6f6a"><td class="mdescLeft">&#160;</td><td class="mdescRight">Returns an array with all the child nodes. <a href="#a9b9a0b5bfa4de1f78e6cafaa534b6f6a">More...</a><br/></td></tr>
+<tr class="separator:a9b9a0b5bfa4de1f78e6cafaa534b6f6a"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a1a37850bdd1f188abd6160559698d5d7"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classRedMatrix_1_1RedDAV_1_1RedDirectory.html#a1a37850bdd1f188abd6160559698d5d7">getChild</a> ($name)</td></tr>
+<tr class="memdesc:a1a37850bdd1f188abd6160559698d5d7"><td class="mdescLeft">&#160;</td><td class="mdescRight">Returns a child by name. <a href="#a1a37850bdd1f188abd6160559698d5d7">More...</a><br/></td></tr>
+<tr class="separator:a1a37850bdd1f188abd6160559698d5d7"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a55f7172814a0749b5342f152ab3fa0df"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classRedMatrix_1_1RedDAV_1_1RedDirectory.html#a55f7172814a0749b5342f152ab3fa0df">getName</a> ()</td></tr>
+<tr class="memdesc:a55f7172814a0749b5342f152ab3fa0df"><td class="mdescLeft">&#160;</td><td class="mdescRight">Returns the name of the directory. <a href="#a55f7172814a0749b5342f152ab3fa0df">More...</a><br/></td></tr>
+<tr class="separator:a55f7172814a0749b5342f152ab3fa0df"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a14ac61d31a031d139956763db4e03956"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classRedMatrix_1_1RedDAV_1_1RedDirectory.html#a14ac61d31a031d139956763db4e03956">setName</a> ($name)</td></tr>
+<tr class="memdesc:a14ac61d31a031d139956763db4e03956"><td class="mdescLeft">&#160;</td><td class="mdescRight">Renames the directory. <a href="#a14ac61d31a031d139956763db4e03956">More...</a><br/></td></tr>
+<tr class="separator:a14ac61d31a031d139956763db4e03956"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a58e750256cdc2f0f79fbe8d5463ffefe"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classRedMatrix_1_1RedDAV_1_1RedDirectory.html#a58e750256cdc2f0f79fbe8d5463ffefe">createFile</a> ($name, $data=null)</td></tr>
+<tr class="memdesc:a58e750256cdc2f0f79fbe8d5463ffefe"><td class="mdescLeft">&#160;</td><td class="mdescRight">Creates a new file in the directory. <a href="#a58e750256cdc2f0f79fbe8d5463ffefe">More...</a><br/></td></tr>
+<tr class="separator:a58e750256cdc2f0f79fbe8d5463ffefe"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:aca0e8d574ea66a0e210f571700663c62"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classRedMatrix_1_1RedDAV_1_1RedDirectory.html#aca0e8d574ea66a0e210f571700663c62">createDirectory</a> ($name)</td></tr>
+<tr class="memdesc:aca0e8d574ea66a0e210f571700663c62"><td class="mdescLeft">&#160;</td><td class="mdescRight">Creates a new subdirectory. <a href="#aca0e8d574ea66a0e210f571700663c62">More...</a><br/></td></tr>
+<tr class="separator:aca0e8d574ea66a0e210f571700663c62"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a964b13fde1a5da6f76b51ca5519234dc"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classRedMatrix_1_1RedDAV_1_1RedDirectory.html#a964b13fde1a5da6f76b51ca5519234dc">childExists</a> ($name)</td></tr>
+<tr class="memdesc:a964b13fde1a5da6f76b51ca5519234dc"><td class="mdescLeft">&#160;</td><td class="mdescRight">Checks if a child exists. <a href="#a964b13fde1a5da6f76b51ca5519234dc">More...</a><br/></td></tr>
+<tr class="separator:a964b13fde1a5da6f76b51ca5519234dc"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a825dc5f3e0f83f50736c16daa6a4809d"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classRedMatrix_1_1RedDAV_1_1RedDirectory.html#a825dc5f3e0f83f50736c16daa6a4809d">getDir</a> ()</td></tr>
+<tr class="separator:a825dc5f3e0f83f50736c16daa6a4809d"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a69db5f641f8f5dc999e55cee1832ecd5"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classRedMatrix_1_1RedDAV_1_1RedDirectory.html#a69db5f641f8f5dc999e55cee1832ecd5">getLastModified</a> ()</td></tr>
+<tr class="memdesc:a69db5f641f8f5dc999e55cee1832ecd5"><td class="mdescLeft">&#160;</td><td class="mdescRight">Returns the last modification time for the directory, as a UNIX timestamp. <a href="#a69db5f641f8f5dc999e55cee1832ecd5">More...</a><br/></td></tr>
+<tr class="separator:a69db5f641f8f5dc999e55cee1832ecd5"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a69db443ed3c84938b4352fe515bf8d68"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classRedMatrix_1_1RedDAV_1_1RedDirectory.html#a69db443ed3c84938b4352fe515bf8d68">getQuotaInfo</a> ()</td></tr>
+<tr class="memdesc:a69db443ed3c84938b4352fe515bf8d68"><td class="mdescLeft">&#160;</td><td class="mdescRight">Return quota usage. <a href="#a69db443ed3c84938b4352fe515bf8d68">More...</a><br/></td></tr>
+<tr class="separator:a69db443ed3c84938b4352fe515bf8d68"><td class="memSeparator" colspan="2">&#160;</td></tr>
+</table><table class="memberdecls">
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="pri-methods"></a>
+Private Member Functions</h2></td></tr>
+<tr class="memitem:af90a1a74cfd643a5c56b9a17ea250d59"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classRedMatrix_1_1RedDAV_1_1RedDirectory.html#af90a1a74cfd643a5c56b9a17ea250d59">log</a> ()</td></tr>
+<tr class="separator:af90a1a74cfd643a5c56b9a17ea250d59"><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:a4bba2e56bc8ec3e05f05eae46f56f36d"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classRedMatrix_1_1RedDAV_1_1RedDirectory.html#a4bba2e56bc8ec3e05f05eae46f56f36d">$red_path</a></td></tr>
+<tr class="separator:a4bba2e56bc8ec3e05f05eae46f56f36d"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a2fc4e6b9be2108bbaa1ca1a03fd6d44e"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classRedMatrix_1_1RedDAV_1_1RedDirectory.html#a2fc4e6b9be2108bbaa1ca1a03fd6d44e">$folder_hash</a></td></tr>
+<tr class="separator:a2fc4e6b9be2108bbaa1ca1a03fd6d44e"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:adf8735b3118cdf2f42416edaf42b82e9"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classRedMatrix_1_1RedDAV_1_1RedDirectory.html#adf8735b3118cdf2f42416edaf42b82e9">$ext_path</a></td></tr>
+<tr class="separator:adf8735b3118cdf2f42416edaf42b82e9"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a438066fb1565fbcffa22c12d5ce23695"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classRedMatrix_1_1RedDAV_1_1RedDirectory.html#a438066fb1565fbcffa22c12d5ce23695">$root_dir</a> = ''</td></tr>
+<tr class="separator:a438066fb1565fbcffa22c12d5ce23695"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:aab6907e7fb7f9f7227f9cd42bdc84eb9"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classRedMatrix_1_1RedDAV_1_1RedDirectory.html#aab6907e7fb7f9f7227f9cd42bdc84eb9">$auth</a></td></tr>
+<tr class="separator:aab6907e7fb7f9f7227f9cd42bdc84eb9"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a17ea47e34cb76b6e79f36ebed790d76a"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classRedMatrix_1_1RedDAV_1_1RedDirectory.html#a17ea47e34cb76b6e79f36ebed790d76a">$os_path</a> = ''</td></tr>
+<tr class="separator:a17ea47e34cb76b6e79f36ebed790d76a"><td class="memSeparator" colspan="2">&#160;</td></tr>
+</table>
+<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
+<div class="textblock"><p><a class="el" href="classRedMatrix_1_1RedDAV_1_1RedDirectory.html" title="RedDirectory class.">RedDirectory</a> class. </p>
+<p>A class that represents a directory.</p>
+<p><a class="el" href=""><a href="http://opensource.org/licenses/mit-license.php">http://opensource.org/licenses/mit-license.php</a> The MIT License (MIT) </a></p>
+</div><h2 class="groupheader">Constructor &amp; Destructor Documentation</h2>
+<a class="anchor" id="a76b58fe5223e565c97f1b9af93031a99"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">RedMatrix\RedDAV\RedDirectory::__construct </td>
+ <td>(</td>
+ <td class="paramtype">&#160;</td>
+ <td class="paramname"><em>$ext_path</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">&amp;&#160;</td>
+ <td class="paramname"><em>$auth_plugin</em>&#160;</td>
+ </tr>
+ <tr>
+ <td></td>
+ <td>)</td>
+ <td></td><td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Sets up the directory node, expects a full path. </p>
+<dl class="params"><dt>Parameters</dt><dd>
+ <table class="params">
+ <tr><td class="paramtype">string</td><td class="paramname">$ext_path</td><td>a full path </td></tr>
+ <tr><td class="paramtype"><a class="el" href="classRedMatrix_1_1RedDAV_1_1RedBasicAuth.html" title="Authentication backend class for RedDAV.">RedBasicAuth</a></td><td class="paramname">&amp;$auth_plugin</td><td></td></tr>
+ </table>
+ </dd>
+</dl>
+
+</div>
+</div>
+<h2 class="groupheader">Member Function Documentation</h2>
+<a class="anchor" id="a964b13fde1a5da6f76b51ca5519234dc"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">RedMatrix\RedDAV\RedDirectory::childExists </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">
+
+<p>Checks if a child exists. </p>
+<dl class="params"><dt>Parameters</dt><dd>
+ <table class="params">
+ <tr><td class="paramtype">string</td><td class="paramname">$name</td><td>The name to check if it exists. </td></tr>
+ </table>
+ </dd>
+</dl>
+<dl class="section return"><dt>Returns</dt><dd>boolean </dd></dl>
+
+</div>
+</div>
+<a class="anchor" id="aca0e8d574ea66a0e210f571700663c62"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">RedMatrix\RedDAV\RedDirectory::createDirectory </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">
+
+<p>Creates a new subdirectory. </p>
+<dl class="params"><dt>Parameters</dt><dd>
+ <table class="params">
+ <tr><td class="paramtype">string</td><td class="paramname">$name</td><td>the directory to create </td></tr>
+ </table>
+ </dd>
+</dl>
+<dl class="section return"><dt>Returns</dt><dd>void </dd></dl>
+
+</div>
+</div>
+<a class="anchor" id="a58e750256cdc2f0f79fbe8d5463ffefe"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">RedMatrix\RedDAV\RedDirectory::createFile </td>
+ <td>(</td>
+ <td class="paramtype">&#160;</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> = <code>null</code>&#160;</td>
+ </tr>
+ <tr>
+ <td></td>
+ <td>)</td>
+ <td></td><td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Creates a new file in the directory. </p>
+<p>Data will either be supplied as a stream resource, or in certain cases as a string. Keep in mind that you may have to support either.</p>
+<p>After successful creation of the file, you may choose to return the ETag of the new file here.</p>
+<dl class="exception"><dt>Exceptions</dt><dd>
+ <table class="exception">
+ <tr><td class="paramname">\Sabre\DAV\Exception\Forbidden</td><td></td></tr>
+ </table>
+ </dd>
+</dl>
+<dl class="params"><dt>Parameters</dt><dd>
+ <table class="params">
+ <tr><td class="paramtype">string</td><td class="paramname">$name</td><td>Name of the file </td></tr>
+ <tr><td class="paramtype">resource&#160;|&#160;string</td><td class="paramname">$data</td><td>Initial payload </td></tr>
+ </table>
+ </dd>
+</dl>
+<dl class="section return"><dt>Returns</dt><dd>null|string ETag </dd></dl>
+
+</div>
+</div>
+<a class="anchor" id="a1a37850bdd1f188abd6160559698d5d7"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">RedMatrix\RedDAV\RedDirectory::getChild </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">
+
+<p>Returns a child by name. </p>
+<dl class="exception"><dt>Exceptions</dt><dd>
+ <table class="exception">
+ <tr><td class="paramname">\Sabre\DAV\Exception\Forbidden</td><td></td></tr>
+ <tr><td class="paramname">\Sabre\DAV\Exception\NotFound</td><td></td></tr>
+ </table>
+ </dd>
+</dl>
+<dl class="params"><dt>Parameters</dt><dd>
+ <table class="params">
+ <tr><td class="paramtype">string</td><td class="paramname">$name</td><td></td></tr>
+ </table>
+ </dd>
+</dl>
+
+</div>
+</div>
+<a class="anchor" id="a9b9a0b5bfa4de1f78e6cafaa534b6f6a"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">RedMatrix\RedDAV\RedDirectory::getChildren </td>
+ <td>(</td>
+ <td class="paramname"></td><td>)</td>
+ <td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Returns an array with all the child nodes. </p>
+<dl class="exception"><dt>Exceptions</dt><dd>
+ <table class="exception">
+ <tr><td class="paramname">\Sabre\DAV\Exception\Forbidden</td><td></td></tr>
+ </table>
+ </dd>
+</dl>
+<dl class="section return"><dt>Returns</dt><dd>array [] </dd></dl>
+
+</div>
+</div>
+<a class="anchor" id="a825dc5f3e0f83f50736c16daa6a4809d"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">RedMatrix\RedDAV\RedDirectory::getDir </td>
+ <td>(</td>
+ <td class="paramname"></td><td>)</td>
+ <td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+<dl class="todo"><dt><b><a class="el" href="todo.html#_todo000007">Todo:</a></b></dt><dd>add description of what this function does.</dd></dl>
+<dl class="exception"><dt>Exceptions</dt><dd>
+ <table class="exception">
+ <tr><td class="paramname">\Sabre\DAV\Exception\NotFound</td><td></td></tr>
+ </table>
+ </dd>
+</dl>
+<dl class="section return"><dt>Returns</dt><dd>void </dd></dl>
+
+<p>Referenced by <a class="el" href="classRedMatrix_1_1RedDAV_1_1RedDirectory.html#a76b58fe5223e565c97f1b9af93031a99">RedMatrix\RedDAV\RedDirectory\__construct()</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="a69db5f641f8f5dc999e55cee1832ecd5"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">RedMatrix\RedDAV\RedDirectory::getLastModified </td>
+ <td>(</td>
+ <td class="paramname"></td><td>)</td>
+ <td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Returns the last modification time for the directory, as a UNIX timestamp. </p>
+<p>It looks for the last edited file in the folder. If it is an empty folder it returns the lastmodified time of the folder itself, to prevent zero timestamps.</p>
+<dl class="section return"><dt>Returns</dt><dd>int last modification time in UNIX timestamp </dd></dl>
+
+</div>
+</div>
+<a class="anchor" id="a55f7172814a0749b5342f152ab3fa0df"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">RedMatrix\RedDAV\RedDirectory::getName </td>
+ <td>(</td>
+ <td class="paramname"></td><td>)</td>
+ <td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Returns the name of the directory. </p>
+<dl class="section return"><dt>Returns</dt><dd>string </dd></dl>
+
+</div>
+</div>
+<a class="anchor" id="a69db443ed3c84938b4352fe515bf8d68"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">RedMatrix\RedDAV\RedDirectory::getQuotaInfo </td>
+ <td>(</td>
+ <td class="paramname"></td><td>)</td>
+ <td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Return quota usage. </p>
+<p>Should guests relly see the used/free values from filesystem of the complete store directory?</p>
+<dl class="section return"><dt>Returns</dt><dd>array with used and free values in bytes. </dd></dl>
+
+</div>
+</div>
+<a class="anchor" id="af90a1a74cfd643a5c56b9a17ea250d59"></a>
+<div class="memitem">
+<div class="memproto">
+<table class="mlabels">
+ <tr>
+ <td class="mlabels-left">
+ <table class="memname">
+ <tr>
+ <td class="memname">RedMatrix\RedDAV\RedDirectory::log </td>
+ <td>(</td>
+ <td class="paramname"></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">
+
+<p>Referenced by <a class="el" href="classRedMatrix_1_1RedDAV_1_1RedDirectory.html#a9b9a0b5bfa4de1f78e6cafaa534b6f6a">RedMatrix\RedDAV\RedDirectory\getChildren()</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="a14ac61d31a031d139956763db4e03956"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">RedMatrix\RedDAV\RedDirectory::setName </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">
+
+<p>Renames the directory. </p>
+<dl class="todo"><dt><b><a class="el" href="todo.html#_todo000006">Todo:</a></b></dt><dd>handle duplicate directory name</dd></dl>
+<dl class="exception"><dt>Exceptions</dt><dd>
+ <table class="exception">
+ <tr><td class="paramname">\Sabre\DAV\Exception\Forbidden</td><td></td></tr>
+ </table>
+ </dd>
+</dl>
+<dl class="params"><dt>Parameters</dt><dd>
+ <table class="params">
+ <tr><td class="paramtype">string</td><td class="paramname">$name</td><td>The new name of the directory. </td></tr>
+ </table>
+ </dd>
+</dl>
+<dl class="section return"><dt>Returns</dt><dd>void </dd></dl>
+
+</div>
+</div>
+<h2 class="groupheader">Member Data Documentation</h2>
+<a class="anchor" id="aab6907e7fb7f9f7227f9cd42bdc84eb9"></a>
+<div class="memitem">
+<div class="memproto">
+<table class="mlabels">
+ <tr>
+ <td class="mlabels-left">
+ <table class="memname">
+ <tr>
+ <td class="memname">RedMatrix\RedDAV\RedDirectory::$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">
+
+</div>
+</div>
+<a class="anchor" id="adf8735b3118cdf2f42416edaf42b82e9"></a>
+<div class="memitem">
+<div class="memproto">
+<table class="mlabels">
+ <tr>
+ <td class="mlabels-left">
+ <table class="memname">
+ <tr>
+ <td class="memname">RedMatrix\RedDAV\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="classRedMatrix_1_1RedDAV_1_1RedDirectory.html#a76b58fe5223e565c97f1b9af93031a99">RedMatrix\RedDAV\RedDirectory\__construct()</a>, and <a class="el" href="classRedMatrix_1_1RedDAV_1_1RedDirectory.html#a825dc5f3e0f83f50736c16daa6a4809d">RedMatrix\RedDAV\RedDirectory\getDir()</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="a2fc4e6b9be2108bbaa1ca1a03fd6d44e"></a>
+<div class="memitem">
+<div class="memproto">
+<table class="mlabels">
+ <tr>
+ <td class="mlabels-left">
+ <table class="memname">
+ <tr>
+ <td class="memname">RedMatrix\RedDAV\RedDirectory::$folder_hash</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>
+<a class="anchor" id="a17ea47e34cb76b6e79f36ebed790d76a"></a>
+<div class="memitem">
+<div class="memproto">
+<table class="mlabels">
+ <tr>
+ <td class="mlabels-left">
+ <table class="memname">
+ <tr>
+ <td class="memname">RedMatrix\RedDAV\RedDirectory::$os_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="classRedMatrix_1_1RedDAV_1_1RedDirectory.html#a58e750256cdc2f0f79fbe8d5463ffefe">RedMatrix\RedDAV\RedDirectory\createFile()</a>, and <a class="el" href="classRedMatrix_1_1RedDAV_1_1RedDirectory.html#a825dc5f3e0f83f50736c16daa6a4809d">RedMatrix\RedDAV\RedDirectory\getDir()</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="a4bba2e56bc8ec3e05f05eae46f56f36d"></a>
+<div class="memitem">
+<div class="memproto">
+<table class="mlabels">
+ <tr>
+ <td class="mlabels-left">
+ <table class="memname">
+ <tr>
+ <td class="memname">RedMatrix\RedDAV\RedDirectory::$red_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">
+
+</div>
+</div>
+<a class="anchor" id="a438066fb1565fbcffa22c12d5ce23695"></a>
+<div class="memitem">
+<div class="memproto">
+<table class="mlabels">
+ <tr>
+ <td class="mlabels-left">
+ <table class="memname">
+ <tr>
+ <td class="memname">RedMatrix\RedDAV\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>
+<hr/>The documentation for this class was generated from the following file:<ul>
+<li>include/RedDAV/<a class="el" href="RedDirectory_8php.html">RedDirectory.php</a></li>
+</ul>
+</div><!-- contents -->
+</div><!-- doc-content -->
+
diff --git a/doc/html/classRedMatrix_1_1RedDAV_1_1RedDirectory.js b/doc/html/classRedMatrix_1_1RedDAV_1_1RedDirectory.js
new file mode 100644
index 000000000..bbb92425f
--- /dev/null
+++ b/doc/html/classRedMatrix_1_1RedDAV_1_1RedDirectory.js
@@ -0,0 +1,21 @@
+var classRedMatrix_1_1RedDAV_1_1RedDirectory =
+[
+ [ "__construct", "classRedMatrix_1_1RedDAV_1_1RedDirectory.html#a76b58fe5223e565c97f1b9af93031a99", null ],
+ [ "childExists", "classRedMatrix_1_1RedDAV_1_1RedDirectory.html#a964b13fde1a5da6f76b51ca5519234dc", null ],
+ [ "createDirectory", "classRedMatrix_1_1RedDAV_1_1RedDirectory.html#aca0e8d574ea66a0e210f571700663c62", null ],
+ [ "createFile", "classRedMatrix_1_1RedDAV_1_1RedDirectory.html#a58e750256cdc2f0f79fbe8d5463ffefe", null ],
+ [ "getChild", "classRedMatrix_1_1RedDAV_1_1RedDirectory.html#a1a37850bdd1f188abd6160559698d5d7", null ],
+ [ "getChildren", "classRedMatrix_1_1RedDAV_1_1RedDirectory.html#a9b9a0b5bfa4de1f78e6cafaa534b6f6a", null ],
+ [ "getDir", "classRedMatrix_1_1RedDAV_1_1RedDirectory.html#a825dc5f3e0f83f50736c16daa6a4809d", null ],
+ [ "getLastModified", "classRedMatrix_1_1RedDAV_1_1RedDirectory.html#a69db5f641f8f5dc999e55cee1832ecd5", null ],
+ [ "getName", "classRedMatrix_1_1RedDAV_1_1RedDirectory.html#a55f7172814a0749b5342f152ab3fa0df", null ],
+ [ "getQuotaInfo", "classRedMatrix_1_1RedDAV_1_1RedDirectory.html#a69db443ed3c84938b4352fe515bf8d68", null ],
+ [ "log", "classRedMatrix_1_1RedDAV_1_1RedDirectory.html#af90a1a74cfd643a5c56b9a17ea250d59", null ],
+ [ "setName", "classRedMatrix_1_1RedDAV_1_1RedDirectory.html#a14ac61d31a031d139956763db4e03956", null ],
+ [ "$auth", "classRedMatrix_1_1RedDAV_1_1RedDirectory.html#aab6907e7fb7f9f7227f9cd42bdc84eb9", null ],
+ [ "$ext_path", "classRedMatrix_1_1RedDAV_1_1RedDirectory.html#adf8735b3118cdf2f42416edaf42b82e9", null ],
+ [ "$folder_hash", "classRedMatrix_1_1RedDAV_1_1RedDirectory.html#a2fc4e6b9be2108bbaa1ca1a03fd6d44e", null ],
+ [ "$os_path", "classRedMatrix_1_1RedDAV_1_1RedDirectory.html#a17ea47e34cb76b6e79f36ebed790d76a", null ],
+ [ "$red_path", "classRedMatrix_1_1RedDAV_1_1RedDirectory.html#a4bba2e56bc8ec3e05f05eae46f56f36d", null ],
+ [ "$root_dir", "classRedMatrix_1_1RedDAV_1_1RedDirectory.html#a438066fb1565fbcffa22c12d5ce23695", null ]
+]; \ No newline at end of file
diff --git a/doc/html/classRedMatrix_1_1RedDAV_1_1RedDirectory.png b/doc/html/classRedMatrix_1_1RedDAV_1_1RedDirectory.png
new file mode 100644
index 000000000..e3eeebb23
--- /dev/null
+++ b/doc/html/classRedMatrix_1_1RedDAV_1_1RedDirectory.png
Binary files differ
diff --git a/doc/html/classRedMatrix_1_1RedDAV_1_1RedFile-members.html b/doc/html/classRedMatrix_1_1RedDAV_1_1RedFile-members.html
new file mode 100644
index 000000000..2206f8cbf
--- /dev/null
+++ b/doc/html/classRedMatrix_1_1RedDAV_1_1RedFile-members.html
@@ -0,0 +1,130 @@
+<!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('classRedMatrix_1_1RedDAV_1_1RedFile.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">RedMatrix\RedDAV\RedFile Member List</div> </div>
+</div><!--header-->
+<div class="contents">
+
+<p>This is the complete list of members for <a class="el" href="classRedMatrix_1_1RedDAV_1_1RedFile.html">RedMatrix\RedDAV\RedFile</a>, including all inherited members.</p>
+<table class="directory">
+ <tr class="even"><td class="entry"><a class="el" href="classRedMatrix_1_1RedDAV_1_1RedFile.html#a21b6e9d420c352f25610a33f57858215">$auth</a></td><td class="entry"><a class="el" href="classRedMatrix_1_1RedDAV_1_1RedFile.html">RedMatrix\RedDAV\RedFile</a></td><td class="entry"><span class="mlabel">private</span></td></tr>
+ <tr><td class="entry"><a class="el" href="classRedMatrix_1_1RedDAV_1_1RedFile.html#a235700e2dfbe21dc41613d36e30e8acc">$data</a></td><td class="entry"><a class="el" href="classRedMatrix_1_1RedDAV_1_1RedFile.html">RedMatrix\RedDAV\RedFile</a></td><td class="entry"><span class="mlabel">private</span></td></tr>
+ <tr class="even"><td class="entry"><a class="el" href="classRedMatrix_1_1RedDAV_1_1RedFile.html#ab722dcb8c4598426c81fa2b2e4fad5f2">$name</a></td><td class="entry"><a class="el" href="classRedMatrix_1_1RedDAV_1_1RedFile.html">RedMatrix\RedDAV\RedFile</a></td><td class="entry"><span class="mlabel">private</span></td></tr>
+ <tr><td class="entry"><a class="el" href="classRedMatrix_1_1RedDAV_1_1RedFile.html#a05798eac84c578152ff21758261c6ac6">__construct</a>($name, $data, &amp;$auth)</td><td class="entry"><a class="el" href="classRedMatrix_1_1RedDAV_1_1RedFile.html">RedMatrix\RedDAV\RedFile</a></td><td class="entry"></td></tr>
+ <tr class="even"><td class="entry"><a class="el" href="classRedMatrix_1_1RedDAV_1_1RedFile.html#ab7ab7ba81fab28eb02382cfdfd80ecfe">delete</a>()</td><td class="entry"><a class="el" href="classRedMatrix_1_1RedDAV_1_1RedFile.html">RedMatrix\RedDAV\RedFile</a></td><td class="entry"></td></tr>
+ <tr><td class="entry"><a class="el" href="classRedMatrix_1_1RedDAV_1_1RedFile.html#a7241beecd01f5bb4e74659863dd85bd8">get</a>()</td><td class="entry"><a class="el" href="classRedMatrix_1_1RedDAV_1_1RedFile.html">RedMatrix\RedDAV\RedFile</a></td><td class="entry"></td></tr>
+ <tr class="even"><td class="entry"><a class="el" href="classRedMatrix_1_1RedDAV_1_1RedFile.html#af5c88b75d0c1f590af03755534cb167e">getContentType</a>()</td><td class="entry"><a class="el" href="classRedMatrix_1_1RedDAV_1_1RedFile.html">RedMatrix\RedDAV\RedFile</a></td><td class="entry"></td></tr>
+ <tr><td class="entry"><a class="el" href="classRedMatrix_1_1RedDAV_1_1RedFile.html#a9f14682acf3ccb70df5af5dd0687c689">getETag</a>()</td><td class="entry"><a class="el" href="classRedMatrix_1_1RedDAV_1_1RedFile.html">RedMatrix\RedDAV\RedFile</a></td><td class="entry"></td></tr>
+ <tr class="even"><td class="entry"><a class="el" href="classRedMatrix_1_1RedDAV_1_1RedFile.html#ac47016aa0e3f6f1a1c4570bd6fd8cf25">getLastModified</a>()</td><td class="entry"><a class="el" href="classRedMatrix_1_1RedDAV_1_1RedFile.html">RedMatrix\RedDAV\RedFile</a></td><td class="entry"></td></tr>
+ <tr><td class="entry"><a class="el" href="classRedMatrix_1_1RedDAV_1_1RedFile.html#ac945aa782d6c035d339e59974266ec4d">getName</a>()</td><td class="entry"><a class="el" href="classRedMatrix_1_1RedDAV_1_1RedFile.html">RedMatrix\RedDAV\RedFile</a></td><td class="entry"></td></tr>
+ <tr class="even"><td class="entry"><a class="el" href="classRedMatrix_1_1RedDAV_1_1RedFile.html#a07e1b19e7aaf3dcce822e9be8823a87d">getSize</a>()</td><td class="entry"><a class="el" href="classRedMatrix_1_1RedDAV_1_1RedFile.html">RedMatrix\RedDAV\RedFile</a></td><td class="entry"></td></tr>
+ <tr><td class="entry"><a class="el" href="classRedMatrix_1_1RedDAV_1_1RedFile.html#a709ec1288d21ddf1353524435ab916f0">put</a>($data)</td><td class="entry"><a class="el" href="classRedMatrix_1_1RedDAV_1_1RedFile.html">RedMatrix\RedDAV\RedFile</a></td><td class="entry"></td></tr>
+ <tr class="even"><td class="entry"><a class="el" href="classRedMatrix_1_1RedDAV_1_1RedFile.html#a0350cb4e0327e1f9922869a48ee04f1d">setName</a>($newName)</td><td class="entry"><a class="el" href="classRedMatrix_1_1RedDAV_1_1RedFile.html">RedMatrix\RedDAV\RedFile</a></td><td class="entry"></td></tr>
+</table></div><!-- contents -->
+</div><!-- doc-content -->
+
diff --git a/doc/html/classRedMatrix_1_1RedDAV_1_1RedFile.html b/doc/html/classRedMatrix_1_1RedDAV_1_1RedFile.html
new file mode 100644
index 000000000..1f48aa7b7
--- /dev/null
+++ b/doc/html/classRedMatrix_1_1RedDAV_1_1RedFile.html
@@ -0,0 +1,479 @@
+<!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: RedMatrix\RedDAV\RedFile 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('classRedMatrix_1_1RedDAV_1_1RedFile.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="#pri-attribs">Private Attributes</a> &#124;
+<a href="classRedMatrix_1_1RedDAV_1_1RedFile-members.html">List of all members</a> </div>
+ <div class="headertitle">
+<div class="title">RedMatrix\RedDAV\RedFile Class Reference</div> </div>
+</div><!--header-->
+<div class="contents">
+
+<p>This class represents a file in DAV.
+ <a href="classRedMatrix_1_1RedDAV_1_1RedFile.html#details">More...</a></p>
+<div class="dynheader">
+Inheritance diagram for RedMatrix\RedDAV\RedFile:</div>
+<div class="dyncontent">
+ <div class="center">
+ <img src="classRedMatrix_1_1RedDAV_1_1RedFile.png" usemap="#RedMatrix\RedDAV\RedFile_map" alt=""/>
+ <map id="RedMatrix\RedDAV\RedFile_map" name="RedMatrix\RedDAV\RedFile_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:a05798eac84c578152ff21758261c6ac6"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classRedMatrix_1_1RedDAV_1_1RedFile.html#a05798eac84c578152ff21758261c6ac6">__construct</a> ($name, $data, &amp;$auth)</td></tr>
+<tr class="separator:a05798eac84c578152ff21758261c6ac6"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ac945aa782d6c035d339e59974266ec4d"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classRedMatrix_1_1RedDAV_1_1RedFile.html#ac945aa782d6c035d339e59974266ec4d">getName</a> ()</td></tr>
+<tr class="memdesc:ac945aa782d6c035d339e59974266ec4d"><td class="mdescLeft">&#160;</td><td class="mdescRight">Returns the name of the file. <a href="#ac945aa782d6c035d339e59974266ec4d">More...</a><br/></td></tr>
+<tr class="separator:ac945aa782d6c035d339e59974266ec4d"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a0350cb4e0327e1f9922869a48ee04f1d"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classRedMatrix_1_1RedDAV_1_1RedFile.html#a0350cb4e0327e1f9922869a48ee04f1d">setName</a> ($newName)</td></tr>
+<tr class="memdesc:a0350cb4e0327e1f9922869a48ee04f1d"><td class="mdescLeft">&#160;</td><td class="mdescRight">Renames the file. <a href="#a0350cb4e0327e1f9922869a48ee04f1d">More...</a><br/></td></tr>
+<tr class="separator:a0350cb4e0327e1f9922869a48ee04f1d"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a709ec1288d21ddf1353524435ab916f0"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classRedMatrix_1_1RedDAV_1_1RedFile.html#a709ec1288d21ddf1353524435ab916f0">put</a> ($data)</td></tr>
+<tr class="memdesc:a709ec1288d21ddf1353524435ab916f0"><td class="mdescLeft">&#160;</td><td class="mdescRight">Updates the data of the file. <a href="#a709ec1288d21ddf1353524435ab916f0">More...</a><br/></td></tr>
+<tr class="separator:a709ec1288d21ddf1353524435ab916f0"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a7241beecd01f5bb4e74659863dd85bd8"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classRedMatrix_1_1RedDAV_1_1RedFile.html#a7241beecd01f5bb4e74659863dd85bd8">get</a> ()</td></tr>
+<tr class="memdesc:a7241beecd01f5bb4e74659863dd85bd8"><td class="mdescLeft">&#160;</td><td class="mdescRight">Returns the raw data. <a href="#a7241beecd01f5bb4e74659863dd85bd8">More...</a><br/></td></tr>
+<tr class="separator:a7241beecd01f5bb4e74659863dd85bd8"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a9f14682acf3ccb70df5af5dd0687c689"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classRedMatrix_1_1RedDAV_1_1RedFile.html#a9f14682acf3ccb70df5af5dd0687c689">getETag</a> ()</td></tr>
+<tr class="memdesc:a9f14682acf3ccb70df5af5dd0687c689"><td class="mdescLeft">&#160;</td><td class="mdescRight">Returns the ETag for a file. <a href="#a9f14682acf3ccb70df5af5dd0687c689">More...</a><br/></td></tr>
+<tr class="separator:a9f14682acf3ccb70df5af5dd0687c689"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:af5c88b75d0c1f590af03755534cb167e"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classRedMatrix_1_1RedDAV_1_1RedFile.html#af5c88b75d0c1f590af03755534cb167e">getContentType</a> ()</td></tr>
+<tr class="memdesc:af5c88b75d0c1f590af03755534cb167e"><td class="mdescLeft">&#160;</td><td class="mdescRight">Returns the mime-type for a file. <a href="#af5c88b75d0c1f590af03755534cb167e">More...</a><br/></td></tr>
+<tr class="separator:af5c88b75d0c1f590af03755534cb167e"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a07e1b19e7aaf3dcce822e9be8823a87d"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classRedMatrix_1_1RedDAV_1_1RedFile.html#a07e1b19e7aaf3dcce822e9be8823a87d">getSize</a> ()</td></tr>
+<tr class="memdesc:a07e1b19e7aaf3dcce822e9be8823a87d"><td class="mdescLeft">&#160;</td><td class="mdescRight">Returns the size of the node, in bytes. <a href="#a07e1b19e7aaf3dcce822e9be8823a87d">More...</a><br/></td></tr>
+<tr class="separator:a07e1b19e7aaf3dcce822e9be8823a87d"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ac47016aa0e3f6f1a1c4570bd6fd8cf25"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classRedMatrix_1_1RedDAV_1_1RedFile.html#ac47016aa0e3f6f1a1c4570bd6fd8cf25">getLastModified</a> ()</td></tr>
+<tr class="memdesc:ac47016aa0e3f6f1a1c4570bd6fd8cf25"><td class="mdescLeft">&#160;</td><td class="mdescRight">Returns the last modification time for the file, as a unix timestamp. <a href="#ac47016aa0e3f6f1a1c4570bd6fd8cf25">More...</a><br/></td></tr>
+<tr class="separator:ac47016aa0e3f6f1a1c4570bd6fd8cf25"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ab7ab7ba81fab28eb02382cfdfd80ecfe"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classRedMatrix_1_1RedDAV_1_1RedFile.html#ab7ab7ba81fab28eb02382cfdfd80ecfe">delete</a> ()</td></tr>
+<tr class="memdesc:ab7ab7ba81fab28eb02382cfdfd80ecfe"><td class="mdescLeft">&#160;</td><td class="mdescRight">Delete the file. <a href="#ab7ab7ba81fab28eb02382cfdfd80ecfe">More...</a><br/></td></tr>
+<tr class="separator:ab7ab7ba81fab28eb02382cfdfd80ecfe"><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:a235700e2dfbe21dc41613d36e30e8acc"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classRedMatrix_1_1RedDAV_1_1RedFile.html#a235700e2dfbe21dc41613d36e30e8acc">$data</a></td></tr>
+<tr class="separator:a235700e2dfbe21dc41613d36e30e8acc"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a21b6e9d420c352f25610a33f57858215"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classRedMatrix_1_1RedDAV_1_1RedFile.html#a21b6e9d420c352f25610a33f57858215">$auth</a></td></tr>
+<tr class="separator:a21b6e9d420c352f25610a33f57858215"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ab722dcb8c4598426c81fa2b2e4fad5f2"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classRedMatrix_1_1RedDAV_1_1RedFile.html#ab722dcb8c4598426c81fa2b2e4fad5f2">$name</a></td></tr>
+<tr class="separator:ab722dcb8c4598426c81fa2b2e4fad5f2"><td class="memSeparator" colspan="2">&#160;</td></tr>
+</table>
+<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
+<div class="textblock"><p>This class represents a file in DAV. </p>
+<p>It provides all functions to work with files in Red's cloud through DAV protocol.</p>
+<p><a class="el" href=""><a href="http://opensource.org/licenses/mit-license.php">http://opensource.org/licenses/mit-license.php</a> The MIT License (MIT) </a></p>
+</div><h2 class="groupheader">Constructor &amp; Destructor Documentation</h2>
+<a class="anchor" id="a05798eac84c578152ff21758261c6ac6"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">RedMatrix\RedDAV\RedFile::__construct </td>
+ <td>(</td>
+ <td class="paramtype">&#160;</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">
+<p>Sets up the node, expects a full path name.</p>
+<dl class="params"><dt>Parameters</dt><dd>
+ <table class="params">
+ <tr><td class="paramtype">string</td><td class="paramname">$name</td><td></td></tr>
+ <tr><td class="paramtype">array</td><td class="paramname">$data</td><td>from attach table </td></tr>
+ <tr><td class="paramtype"></td><td class="paramname">&amp;$auth</td><td></td></tr>
+ </table>
+ </dd>
+</dl>
+
+</div>
+</div>
+<h2 class="groupheader">Member Function Documentation</h2>
+<a class="anchor" id="ab7ab7ba81fab28eb02382cfdfd80ecfe"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">RedMatrix\RedDAV\RedFile::delete </td>
+ <td>(</td>
+ <td class="paramname"></td><td>)</td>
+ <td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Delete the file. </p>
+<p>This method checks the permissions and then calls <a class="el" href="include_2attach_8php.html#a70bd666e080c2af5a91f5d14c297b8cd" title="Delete a file/directory from a channel.">attach_delete()</a> function to actually remove the file.</p>
+<dl class="exception"><dt>Exceptions</dt><dd>
+ <table class="exception">
+ <tr><td class="paramname">\Sabre\DAV\Exception\Forbidden</td><td></td></tr>
+ </table>
+ </dd>
+</dl>
+
+</div>
+</div>
+<a class="anchor" id="a7241beecd01f5bb4e74659863dd85bd8"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">RedMatrix\RedDAV\RedFile::get </td>
+ <td>(</td>
+ <td class="paramname"></td><td>)</td>
+ <td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Returns the raw data. </p>
+<dl class="section return"><dt>Returns</dt><dd>string </dd></dl>
+
+</div>
+</div>
+<a class="anchor" id="af5c88b75d0c1f590af03755534cb167e"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">RedMatrix\RedDAV\RedFile::getContentType </td>
+ <td>(</td>
+ <td class="paramname"></td><td>)</td>
+ <td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Returns the mime-type for a file. </p>
+<p>If null is returned, we'll assume application/octet-stream</p>
+<dl class="section return"><dt>Returns</dt><dd>mixed </dd></dl>
+
+</div>
+</div>
+<a class="anchor" id="a9f14682acf3ccb70df5af5dd0687c689"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">RedMatrix\RedDAV\RedFile::getETag </td>
+ <td>(</td>
+ <td class="paramname"></td><td>)</td>
+ <td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Returns the ETag for a file. </p>
+<p>An ETag is a unique identifier representing the current version of the file. If the file changes, the ETag MUST change. The ETag is an arbitrary string, but MUST be surrounded by double-quotes.</p>
+<p>Return null if the ETag can not effectively be determined.</p>
+<dl class="section return"><dt>Returns</dt><dd>null|string </dd></dl>
+
+</div>
+</div>
+<a class="anchor" id="ac47016aa0e3f6f1a1c4570bd6fd8cf25"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">RedMatrix\RedDAV\RedFile::getLastModified </td>
+ <td>(</td>
+ <td class="paramname"></td><td>)</td>
+ <td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Returns the last modification time for the file, as a unix timestamp. </p>
+<dl class="section return"><dt>Returns</dt><dd>int last modification time in UNIX timestamp </dd></dl>
+
+</div>
+</div>
+<a class="anchor" id="ac945aa782d6c035d339e59974266ec4d"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">RedMatrix\RedDAV\RedFile::getName </td>
+ <td>(</td>
+ <td class="paramname"></td><td>)</td>
+ <td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Returns the name of the file. </p>
+<dl class="section return"><dt>Returns</dt><dd>string </dd></dl>
+
+</div>
+</div>
+<a class="anchor" id="a07e1b19e7aaf3dcce822e9be8823a87d"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">RedMatrix\RedDAV\RedFile::getSize </td>
+ <td>(</td>
+ <td class="paramname"></td><td>)</td>
+ <td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Returns the size of the node, in bytes. </p>
+<dl class="section return"><dt>Returns</dt><dd>int filesize in bytes </dd></dl>
+
+</div>
+</div>
+<a class="anchor" id="a709ec1288d21ddf1353524435ab916f0"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">RedMatrix\RedDAV\RedFile::put </td>
+ <td>(</td>
+ <td class="paramtype">&#160;</td>
+ <td class="paramname"><em>$data</em></td><td>)</td>
+ <td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Updates the data of the file. </p>
+<dl class="params"><dt>Parameters</dt><dd>
+ <table class="params">
+ <tr><td class="paramtype">resource</td><td class="paramname">$data</td><td></td></tr>
+ </table>
+ </dd>
+</dl>
+<dl class="section return"><dt>Returns</dt><dd>void </dd></dl>
+
+</div>
+</div>
+<a class="anchor" id="a0350cb4e0327e1f9922869a48ee04f1d"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">RedMatrix\RedDAV\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">
+
+<p>Renames the file. </p>
+<dl class="exception"><dt>Exceptions</dt><dd>
+ <table class="exception">
+ <tr><td class="paramname">Sabre\DAV\Exception\Forbidden</td><td></td></tr>
+ </table>
+ </dd>
+</dl>
+<dl class="params"><dt>Parameters</dt><dd>
+ <table class="params">
+ <tr><td class="paramtype">string</td><td class="paramname">$name</td><td>The new name of the file. </td></tr>
+ </table>
+ </dd>
+</dl>
+<dl class="section return"><dt>Returns</dt><dd>void </dd></dl>
+
+</div>
+</div>
+<h2 class="groupheader">Member Data Documentation</h2>
+<a class="anchor" id="a21b6e9d420c352f25610a33f57858215"></a>
+<div class="memitem">
+<div class="memproto">
+<table class="mlabels">
+ <tr>
+ <td class="mlabels-left">
+ <table class="memname">
+ <tr>
+ <td class="memname">RedMatrix\RedDAV\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="classRedMatrix_1_1RedDAV_1_1RedFile.html#a05798eac84c578152ff21758261c6ac6">RedMatrix\RedDAV\RedFile\__construct()</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="a235700e2dfbe21dc41613d36e30e8acc"></a>
+<div class="memitem">
+<div class="memproto">
+<table class="mlabels">
+ <tr>
+ <td class="mlabels-left">
+ <table class="memname">
+ <tr>
+ <td class="memname">RedMatrix\RedDAV\RedFile::$data</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="classRedMatrix_1_1RedDAV_1_1RedFile.html#a05798eac84c578152ff21758261c6ac6">RedMatrix\RedDAV\RedFile\__construct()</a>, and <a class="el" href="classRedMatrix_1_1RedDAV_1_1RedFile.html#a709ec1288d21ddf1353524435ab916f0">RedMatrix\RedDAV\RedFile\put()</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="ab722dcb8c4598426c81fa2b2e4fad5f2"></a>
+<div class="memitem">
+<div class="memproto">
+<table class="mlabels">
+ <tr>
+ <td class="mlabels-left">
+ <table class="memname">
+ <tr>
+ <td class="memname">RedMatrix\RedDAV\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="classRedMatrix_1_1RedDAV_1_1RedFile.html#a05798eac84c578152ff21758261c6ac6">RedMatrix\RedDAV\RedFile\__construct()</a>.</p>
+
+</div>
+</div>
+<hr/>The documentation for this class was generated from the following file:<ul>
+<li>include/RedDAV/<a class="el" href="RedFile_8php.html">RedFile.php</a></li>
+</ul>
+</div><!-- contents -->
+</div><!-- doc-content -->
+
diff --git a/doc/html/classRedMatrix_1_1RedDAV_1_1RedFile.js b/doc/html/classRedMatrix_1_1RedDAV_1_1RedFile.js
new file mode 100644
index 000000000..c65382641
--- /dev/null
+++ b/doc/html/classRedMatrix_1_1RedDAV_1_1RedFile.js
@@ -0,0 +1,16 @@
+var classRedMatrix_1_1RedDAV_1_1RedFile =
+[
+ [ "__construct", "classRedMatrix_1_1RedDAV_1_1RedFile.html#a05798eac84c578152ff21758261c6ac6", null ],
+ [ "delete", "classRedMatrix_1_1RedDAV_1_1RedFile.html#ab7ab7ba81fab28eb02382cfdfd80ecfe", null ],
+ [ "get", "classRedMatrix_1_1RedDAV_1_1RedFile.html#a7241beecd01f5bb4e74659863dd85bd8", null ],
+ [ "getContentType", "classRedMatrix_1_1RedDAV_1_1RedFile.html#af5c88b75d0c1f590af03755534cb167e", null ],
+ [ "getETag", "classRedMatrix_1_1RedDAV_1_1RedFile.html#a9f14682acf3ccb70df5af5dd0687c689", null ],
+ [ "getLastModified", "classRedMatrix_1_1RedDAV_1_1RedFile.html#ac47016aa0e3f6f1a1c4570bd6fd8cf25", null ],
+ [ "getName", "classRedMatrix_1_1RedDAV_1_1RedFile.html#ac945aa782d6c035d339e59974266ec4d", null ],
+ [ "getSize", "classRedMatrix_1_1RedDAV_1_1RedFile.html#a07e1b19e7aaf3dcce822e9be8823a87d", null ],
+ [ "put", "classRedMatrix_1_1RedDAV_1_1RedFile.html#a709ec1288d21ddf1353524435ab916f0", null ],
+ [ "setName", "classRedMatrix_1_1RedDAV_1_1RedFile.html#a0350cb4e0327e1f9922869a48ee04f1d", null ],
+ [ "$auth", "classRedMatrix_1_1RedDAV_1_1RedFile.html#a21b6e9d420c352f25610a33f57858215", null ],
+ [ "$data", "classRedMatrix_1_1RedDAV_1_1RedFile.html#a235700e2dfbe21dc41613d36e30e8acc", null ],
+ [ "$name", "classRedMatrix_1_1RedDAV_1_1RedFile.html#ab722dcb8c4598426c81fa2b2e4fad5f2", null ]
+]; \ No newline at end of file
diff --git a/doc/html/classRedMatrix_1_1RedDAV_1_1RedFile.png b/doc/html/classRedMatrix_1_1RedDAV_1_1RedFile.png
new file mode 100644
index 000000000..9a1837e1c
--- /dev/null
+++ b/doc/html/classRedMatrix_1_1RedDAV_1_1RedFile.png
Binary files differ
diff --git a/doc/html/classRedmatrix_1_1Import_1_1Import-members.html b/doc/html/classRedmatrix_1_1Import_1_1Import-members.html
new file mode 100644
index 000000000..061fc11a4
--- /dev/null
+++ b/doc/html/classRedmatrix_1_1Import_1_1Import-members.html
@@ -0,0 +1,132 @@
+<!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('classRedmatrix_1_1Import_1_1Import.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">Redmatrix\Import\Import Member List</div> </div>
+</div><!--header-->
+<div class="contents">
+
+<p>This is the complete list of members for <a class="el" href="classRedmatrix_1_1Import_1_1Import.html">Redmatrix\Import\Import</a>, including all inherited members.</p>
+<table class="directory">
+ <tr class="even"><td class="entry"><a class="el" href="classRedmatrix_1_1Import_1_1Import.html#afd251e6e5a18516bac4d1a40435602f1">$credentials</a></td><td class="entry"><a class="el" href="classRedmatrix_1_1Import_1_1Import.html">Redmatrix\Import\Import</a></td><td class="entry"></td></tr>
+ <tr><td class="entry"><a class="el" href="classRedmatrix_1_1Import_1_1Import.html#a2f69f16ecb7de1fb1daffbc38e68c9f1">$itemlist</a></td><td class="entry"><a class="el" href="classRedmatrix_1_1Import_1_1Import.html">Redmatrix\Import\Import</a></td><td class="entry"></td></tr>
+ <tr class="even"><td class="entry"><a class="el" href="classRedmatrix_1_1Import_1_1Import.html#a31d73d48e1aa93319159c692d0197a3a">$items</a></td><td class="entry"><a class="el" href="classRedmatrix_1_1Import_1_1Import.html">Redmatrix\Import\Import</a></td><td class="entry"></td></tr>
+ <tr><td class="entry"><a class="el" href="classRedmatrix_1_1Import_1_1Import.html#ac578e85e4c491bf9e09fbbfa33f9d6b7">$src_items</a></td><td class="entry"><a class="el" href="classRedmatrix_1_1Import_1_1Import.html">Redmatrix\Import\Import</a></td><td class="entry"></td></tr>
+ <tr class="even"><td class="entry"><a class="el" href="classRedmatrix_1_1Import_1_1Import.html#ad9c6677ea07c496d81914b97aeb5fba5">convert_child</a>($child)</td><td class="entry"><a class="el" href="classRedmatrix_1_1Import_1_1Import.html">Redmatrix\Import\Import</a></td><td class="entry"></td></tr>
+ <tr><td class="entry"><a class="el" href="classRedmatrix_1_1Import_1_1Import.html#add4d39232c883b59634595be14441336">convert_item</a>($item_ident)</td><td class="entry"><a class="el" href="classRedmatrix_1_1Import_1_1Import.html">Redmatrix\Import\Import</a></td><td class="entry"></td></tr>
+ <tr class="even"><td class="entry"><a class="el" href="classRedmatrix_1_1Import_1_1Import.html#a5a54b41c30aed8ac9ca6e486fd0b4b97">convert_taxonomy</a>($item_ident)</td><td class="entry"><a class="el" href="classRedmatrix_1_1Import_1_1Import.html">Redmatrix\Import\Import</a></td><td class="entry"></td></tr>
+ <tr><td class="entry"><a class="el" href="classRedmatrix_1_1Import_1_1Import.html#a832a4cc0d33d0eea29cb450004054580">get_children</a>($item_ident)</td><td class="entry"><a class="el" href="classRedmatrix_1_1Import_1_1Import.html">Redmatrix\Import\Import</a></td><td class="entry"></td></tr>
+ <tr class="even"><td class="entry"><a class="el" href="classRedmatrix_1_1Import_1_1Import.html#a76dd522e47a48d80e1678211230f2ff5">get_credentials</a>()</td><td class="entry"><a class="el" href="classRedmatrix_1_1Import_1_1Import.html">Redmatrix\Import\Import</a></td><td class="entry"></td></tr>
+ <tr><td class="entry"><a class="el" href="classRedmatrix_1_1Import_1_1Import.html#ae705dd1deb245b1d06baa73062330e43">get_item</a>($item_ident)</td><td class="entry"><a class="el" href="classRedmatrix_1_1Import_1_1Import.html">Redmatrix\Import\Import</a></td><td class="entry"></td></tr>
+ <tr class="even"><td class="entry"><a class="el" href="classRedmatrix_1_1Import_1_1Import.html#a4420d6acf6ba2f3723c655251b12abef">get_item_ident</a>($item)</td><td class="entry"><a class="el" href="classRedmatrix_1_1Import_1_1Import.html">Redmatrix\Import\Import</a></td><td class="entry"></td></tr>
+ <tr><td class="entry"><a class="el" href="classRedmatrix_1_1Import_1_1Import.html#a1af46c9f88257635f362d6027ea710c3">get_itemlist</a>()</td><td class="entry"><a class="el" href="classRedmatrix_1_1Import_1_1Import.html">Redmatrix\Import\Import</a></td><td class="entry"></td></tr>
+ <tr class="even"><td class="entry"><a class="el" href="classRedmatrix_1_1Import_1_1Import.html#ab1e4a1d404b5a5a9c518c205d1428154">get_taxonomy</a>($item_ident)</td><td class="entry"><a class="el" href="classRedmatrix_1_1Import_1_1Import.html">Redmatrix\Import\Import</a></td><td class="entry"></td></tr>
+ <tr><td class="entry"><a class="el" href="classRedmatrix_1_1Import_1_1Import.html#af432ecbc45b812a03d58dfb378a212f7">run</a>()</td><td class="entry"><a class="el" href="classRedmatrix_1_1Import_1_1Import.html">Redmatrix\Import\Import</a></td><td class="entry"></td></tr>
+ <tr class="even"><td class="entry"><a class="el" href="classRedmatrix_1_1Import_1_1Import.html#a70f9dd767d877530a7da7c6bd821e080">store</a>($item, $update=false)</td><td class="entry"><a class="el" href="classRedmatrix_1_1Import_1_1Import.html">Redmatrix\Import\Import</a></td><td class="entry"></td></tr>
+</table></div><!-- contents -->
+</div><!-- doc-content -->
+
diff --git a/doc/html/classRedmatrix_1_1Import_1_1Import.html b/doc/html/classRedmatrix_1_1Import_1_1Import.html
new file mode 100644
index 000000000..6eec161c2
--- /dev/null
+++ b/doc/html/classRedmatrix_1_1Import_1_1Import.html
@@ -0,0 +1,407 @@
+<!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: Redmatrix\Import\Import 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('classRedmatrix_1_1Import_1_1Import.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="#pub-attribs">Public Attributes</a> &#124;
+<a href="classRedmatrix_1_1Import_1_1Import-members.html">List of all members</a> </div>
+ <div class="headertitle">
+<div class="title">Redmatrix\Import\Import Class Reference</div> </div>
+</div><!--header-->
+<div class="contents">
+<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:a76dd522e47a48d80e1678211230f2ff5"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classRedmatrix_1_1Import_1_1Import.html#a76dd522e47a48d80e1678211230f2ff5">get_credentials</a> ()</td></tr>
+<tr class="separator:a76dd522e47a48d80e1678211230f2ff5"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a1af46c9f88257635f362d6027ea710c3"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classRedmatrix_1_1Import_1_1Import.html#a1af46c9f88257635f362d6027ea710c3">get_itemlist</a> ()</td></tr>
+<tr class="separator:a1af46c9f88257635f362d6027ea710c3"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a4420d6acf6ba2f3723c655251b12abef"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classRedmatrix_1_1Import_1_1Import.html#a4420d6acf6ba2f3723c655251b12abef">get_item_ident</a> ($item)</td></tr>
+<tr class="separator:a4420d6acf6ba2f3723c655251b12abef"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ae705dd1deb245b1d06baa73062330e43"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classRedmatrix_1_1Import_1_1Import.html#ae705dd1deb245b1d06baa73062330e43">get_item</a> ($item_ident)</td></tr>
+<tr class="separator:ae705dd1deb245b1d06baa73062330e43"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ab1e4a1d404b5a5a9c518c205d1428154"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classRedmatrix_1_1Import_1_1Import.html#ab1e4a1d404b5a5a9c518c205d1428154">get_taxonomy</a> ($item_ident)</td></tr>
+<tr class="separator:ab1e4a1d404b5a5a9c518c205d1428154"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a832a4cc0d33d0eea29cb450004054580"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classRedmatrix_1_1Import_1_1Import.html#a832a4cc0d33d0eea29cb450004054580">get_children</a> ($item_ident)</td></tr>
+<tr class="separator:a832a4cc0d33d0eea29cb450004054580"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:add4d39232c883b59634595be14441336"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classRedmatrix_1_1Import_1_1Import.html#add4d39232c883b59634595be14441336">convert_item</a> ($item_ident)</td></tr>
+<tr class="separator:add4d39232c883b59634595be14441336"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a5a54b41c30aed8ac9ca6e486fd0b4b97"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classRedmatrix_1_1Import_1_1Import.html#a5a54b41c30aed8ac9ca6e486fd0b4b97">convert_taxonomy</a> ($item_ident)</td></tr>
+<tr class="separator:a5a54b41c30aed8ac9ca6e486fd0b4b97"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ad9c6677ea07c496d81914b97aeb5fba5"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classRedmatrix_1_1Import_1_1Import.html#ad9c6677ea07c496d81914b97aeb5fba5">convert_child</a> ($child)</td></tr>
+<tr class="separator:ad9c6677ea07c496d81914b97aeb5fba5"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a70f9dd767d877530a7da7c6bd821e080"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classRedmatrix_1_1Import_1_1Import.html#a70f9dd767d877530a7da7c6bd821e080">store</a> ($item, $update=false)</td></tr>
+<tr class="separator:a70f9dd767d877530a7da7c6bd821e080"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:af432ecbc45b812a03d58dfb378a212f7"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classRedmatrix_1_1Import_1_1Import.html#af432ecbc45b812a03d58dfb378a212f7">run</a> ()</td></tr>
+<tr class="separator:af432ecbc45b812a03d58dfb378a212f7"><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:afd251e6e5a18516bac4d1a40435602f1"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classRedmatrix_1_1Import_1_1Import.html#afd251e6e5a18516bac4d1a40435602f1">$credentials</a> = null</td></tr>
+<tr class="separator:afd251e6e5a18516bac4d1a40435602f1"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a2f69f16ecb7de1fb1daffbc38e68c9f1"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classRedmatrix_1_1Import_1_1Import.html#a2f69f16ecb7de1fb1daffbc38e68c9f1">$itemlist</a> = null</td></tr>
+<tr class="separator:a2f69f16ecb7de1fb1daffbc38e68c9f1"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ac578e85e4c491bf9e09fbbfa33f9d6b7"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classRedmatrix_1_1Import_1_1Import.html#ac578e85e4c491bf9e09fbbfa33f9d6b7">$src_items</a> = null</td></tr>
+<tr class="separator:ac578e85e4c491bf9e09fbbfa33f9d6b7"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a31d73d48e1aa93319159c692d0197a3a"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classRedmatrix_1_1Import_1_1Import.html#a31d73d48e1aa93319159c692d0197a3a">$items</a> = null</td></tr>
+<tr class="separator:a31d73d48e1aa93319159c692d0197a3a"><td class="memSeparator" colspan="2">&#160;</td></tr>
+</table>
+<h2 class="groupheader">Member Function Documentation</h2>
+<a class="anchor" id="ad9c6677ea07c496d81914b97aeb5fba5"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">Redmatrix\Import\Import::convert_child </td>
+ <td>(</td>
+ <td class="paramtype">&#160;</td>
+ <td class="paramname"><em>$child</em></td><td>)</td>
+ <td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Referenced by <a class="el" href="classRedmatrix_1_1Import_1_1Import.html#af432ecbc45b812a03d58dfb378a212f7">Redmatrix\Import\Import\run()</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="add4d39232c883b59634595be14441336"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">Redmatrix\Import\Import::convert_item </td>
+ <td>(</td>
+ <td class="paramtype">&#160;</td>
+ <td class="paramname"><em>$item_ident</em></td><td>)</td>
+ <td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Referenced by <a class="el" href="classRedmatrix_1_1Import_1_1Import.html#af432ecbc45b812a03d58dfb378a212f7">Redmatrix\Import\Import\run()</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="a5a54b41c30aed8ac9ca6e486fd0b4b97"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">Redmatrix\Import\Import::convert_taxonomy </td>
+ <td>(</td>
+ <td class="paramtype">&#160;</td>
+ <td class="paramname"><em>$item_ident</em></td><td>)</td>
+ <td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Referenced by <a class="el" href="classRedmatrix_1_1Import_1_1Import.html#af432ecbc45b812a03d58dfb378a212f7">Redmatrix\Import\Import\run()</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="a832a4cc0d33d0eea29cb450004054580"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">Redmatrix\Import\Import::get_children </td>
+ <td>(</td>
+ <td class="paramtype">&#160;</td>
+ <td class="paramname"><em>$item_ident</em></td><td>)</td>
+ <td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Referenced by <a class="el" href="classRedmatrix_1_1Import_1_1Import.html#af432ecbc45b812a03d58dfb378a212f7">Redmatrix\Import\Import\run()</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="a76dd522e47a48d80e1678211230f2ff5"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">Redmatrix\Import\Import::get_credentials </td>
+ <td>(</td>
+ <td class="paramname"></td><td>)</td>
+ <td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Referenced by <a class="el" href="classRedmatrix_1_1Import_1_1Import.html#af432ecbc45b812a03d58dfb378a212f7">Redmatrix\Import\Import\run()</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="ae705dd1deb245b1d06baa73062330e43"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">Redmatrix\Import\Import::get_item </td>
+ <td>(</td>
+ <td class="paramtype">&#160;</td>
+ <td class="paramname"><em>$item_ident</em></td><td>)</td>
+ <td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Referenced by <a class="el" href="classRedmatrix_1_1Import_1_1Import.html#af432ecbc45b812a03d58dfb378a212f7">Redmatrix\Import\Import\run()</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="a4420d6acf6ba2f3723c655251b12abef"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">Redmatrix\Import\Import::get_item_ident </td>
+ <td>(</td>
+ <td class="paramtype">&#160;</td>
+ <td class="paramname"><em>$item</em></td><td>)</td>
+ <td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+</div>
+</div>
+<a class="anchor" id="a1af46c9f88257635f362d6027ea710c3"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">Redmatrix\Import\Import::get_itemlist </td>
+ <td>(</td>
+ <td class="paramname"></td><td>)</td>
+ <td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Referenced by <a class="el" href="classRedmatrix_1_1Import_1_1Import.html#af432ecbc45b812a03d58dfb378a212f7">Redmatrix\Import\Import\run()</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="ab1e4a1d404b5a5a9c518c205d1428154"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">Redmatrix\Import\Import::get_taxonomy </td>
+ <td>(</td>
+ <td class="paramtype">&#160;</td>
+ <td class="paramname"><em>$item_ident</em></td><td>)</td>
+ <td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Referenced by <a class="el" href="classRedmatrix_1_1Import_1_1Import.html#af432ecbc45b812a03d58dfb378a212f7">Redmatrix\Import\Import\run()</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="af432ecbc45b812a03d58dfb378a212f7"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">Redmatrix\Import\Import::run </td>
+ <td>(</td>
+ <td class="paramname"></td><td>)</td>
+ <td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+</div>
+</div>
+<a class="anchor" id="a70f9dd767d877530a7da7c6bd821e080"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">Redmatrix\Import\Import::store </td>
+ <td>(</td>
+ <td class="paramtype">&#160;</td>
+ <td class="paramname"><em>$item</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">&#160;</td>
+ <td class="paramname"><em>$update</em> = <code>false</code>&#160;</td>
+ </tr>
+ <tr>
+ <td></td>
+ <td>)</td>
+ <td></td><td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+</div>
+</div>
+<h2 class="groupheader">Member Data Documentation</h2>
+<a class="anchor" id="afd251e6e5a18516bac4d1a40435602f1"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">Redmatrix\Import\Import::$credentials = null</td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+</div>
+</div>
+<a class="anchor" id="a2f69f16ecb7de1fb1daffbc38e68c9f1"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">Redmatrix\Import\Import::$itemlist = null</td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+</div>
+</div>
+<a class="anchor" id="a31d73d48e1aa93319159c692d0197a3a"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">Redmatrix\Import\Import::$items = null</td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+</div>
+</div>
+<a class="anchor" id="ac578e85e4c491bf9e09fbbfa33f9d6b7"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">Redmatrix\Import\Import::$src_items = null</td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+</div>
+</div>
+<hr/>The documentation for this class was generated from the following file:<ul>
+<li>include/Import/<a class="el" href="Importer_8php.html">Importer.php</a></li>
+</ul>
+</div><!-- contents -->
+</div><!-- doc-content -->
+
diff --git a/doc/html/classRedmatrix_1_1Import_1_1Import.js b/doc/html/classRedmatrix_1_1Import_1_1Import.js
new file mode 100644
index 000000000..2a0e2eef0
--- /dev/null
+++ b/doc/html/classRedmatrix_1_1Import_1_1Import.js
@@ -0,0 +1,18 @@
+var classRedmatrix_1_1Import_1_1Import =
+[
+ [ "convert_child", "classRedmatrix_1_1Import_1_1Import.html#ad9c6677ea07c496d81914b97aeb5fba5", null ],
+ [ "convert_item", "classRedmatrix_1_1Import_1_1Import.html#add4d39232c883b59634595be14441336", null ],
+ [ "convert_taxonomy", "classRedmatrix_1_1Import_1_1Import.html#a5a54b41c30aed8ac9ca6e486fd0b4b97", null ],
+ [ "get_children", "classRedmatrix_1_1Import_1_1Import.html#a832a4cc0d33d0eea29cb450004054580", null ],
+ [ "get_credentials", "classRedmatrix_1_1Import_1_1Import.html#a76dd522e47a48d80e1678211230f2ff5", null ],
+ [ "get_item", "classRedmatrix_1_1Import_1_1Import.html#ae705dd1deb245b1d06baa73062330e43", null ],
+ [ "get_item_ident", "classRedmatrix_1_1Import_1_1Import.html#a4420d6acf6ba2f3723c655251b12abef", null ],
+ [ "get_itemlist", "classRedmatrix_1_1Import_1_1Import.html#a1af46c9f88257635f362d6027ea710c3", null ],
+ [ "get_taxonomy", "classRedmatrix_1_1Import_1_1Import.html#ab1e4a1d404b5a5a9c518c205d1428154", null ],
+ [ "run", "classRedmatrix_1_1Import_1_1Import.html#af432ecbc45b812a03d58dfb378a212f7", null ],
+ [ "store", "classRedmatrix_1_1Import_1_1Import.html#a70f9dd767d877530a7da7c6bd821e080", null ],
+ [ "$credentials", "classRedmatrix_1_1Import_1_1Import.html#afd251e6e5a18516bac4d1a40435602f1", null ],
+ [ "$itemlist", "classRedmatrix_1_1Import_1_1Import.html#a2f69f16ecb7de1fb1daffbc38e68c9f1", null ],
+ [ "$items", "classRedmatrix_1_1Import_1_1Import.html#a31d73d48e1aa93319159c692d0197a3a", null ],
+ [ "$src_items", "classRedmatrix_1_1Import_1_1Import.html#ac578e85e4c491bf9e09fbbfa33f9d6b7", null ]
+]; \ No newline at end of file
diff --git a/doc/html/classdba__driver-members.html b/doc/html/classdba__driver-members.html
index cf4075c93..40c9f7ed0 100644
--- a/doc/html/classdba__driver-members.html
+++ b/doc/html/classdba__driver-members.html
@@ -119,11 +119,23 @@ $(document).ready(function(){initNavTree('classdba__driver.html','');});
<tr class="even"><td class="entry"><a class="el" href="classdba__driver.html#af3541d13ccb7a3eddfc03e253c746186">__construct</a>($server, $port, $user, $pass, $db, $install=false)</td><td class="entry"><a class="el" href="classdba__driver.html">dba_driver</a></td><td class="entry"></td></tr>
<tr><td class="entry"><a class="el" href="classdba__driver.html#a1a8bc9dc839a6320a0e07d8047a6b721">__destruct</a>()</td><td class="entry"><a class="el" href="classdba__driver.html">dba_driver</a></td><td class="entry"></td></tr>
<tr class="even"><td class="entry"><a class="el" href="classdba__driver.html#a5afa54172f3c837df61643f8f5b2c975">close</a>()</td><td class="entry"><a class="el" href="classdba__driver.html">dba_driver</a></td><td class="entry"></td></tr>
- <tr><td class="entry"><a class="el" href="classdba__driver.html#ae533e62a240a793f17aef5ab4ef10edc">connect</a>($server, $port, $user, $pass, $db)</td><td class="entry"><a class="el" href="classdba__driver.html">dba_driver</a></td><td class="entry"></td></tr>
- <tr class="even"><td class="entry"><a class="el" href="classdba__driver.html#adcc1f8955120fec0708bce39202d0422">dbg</a>($dbg)</td><td class="entry"><a class="el" href="classdba__driver.html">dba_driver</a></td><td class="entry"></td></tr>
- <tr><td class="entry"><a class="el" href="classdba__driver.html#afc95ffa103a3290581b537670cde5311">escape</a>($str)</td><td class="entry"><a class="el" href="classdba__driver.html">dba_driver</a></td><td class="entry"></td></tr>
- <tr class="even"><td class="entry"><a class="el" href="classdba__driver.html#a4ccb27243e62a8ca30dd8e1b8cc67746">install</a>($server, $user, $pass, $db)</td><td class="entry"><a class="el" href="classdba__driver.html">dba_driver</a></td><td class="entry"></td></tr>
+ <tr><td class="entry"><a class="el" href="classdba__driver.html#ab9982f38a02f008b127a0f3ccc1e99f4">concat</a>($fld, $sep)</td><td class="entry"><a class="el" href="classdba__driver.html">dba_driver</a></td><td class="entry"></td></tr>
+ <tr class="even"><td class="entry"><a class="el" href="classdba__driver.html#ae533e62a240a793f17aef5ab4ef10edc">connect</a>($server, $port, $user, $pass, $db)</td><td class="entry"><a class="el" href="classdba__driver.html">dba_driver</a></td><td class="entry"></td></tr>
+ <tr><td class="entry"><a class="el" href="classdba__driver.html#adcc1f8955120fec0708bce39202d0422">dbg</a>($dbg)</td><td class="entry"><a class="el" href="classdba__driver.html">dba_driver</a></td><td class="entry"></td></tr>
+ <tr class="even"><td class="entry"><a class="el" href="classdba__driver.html#afc95ffa103a3290581b537670cde5311">escape</a>($str)</td><td class="entry"><a class="el" href="classdba__driver.html">dba_driver</a></td><td class="entry"></td></tr>
+ <tr><td class="entry"><a class="el" href="classdba__driver.html#a7dbe8318587ff1694825042bf58f4fbd">escapebin</a>($str)</td><td class="entry"><a class="el" href="classdba__driver.html">dba_driver</a></td><td class="entry"></td></tr>
+ <tr class="even"><td class="entry"><a class="el" href="classdba__driver.html#a8d6a79d39d7eaee5aea4e952c4529d48">get_install_script</a>()</td><td class="entry"><a class="el" href="classdba__driver.html">dba_driver</a></td><td class="entry"></td></tr>
+ <tr><td class="entry"><a class="el" href="classdba__driver.html#a65a5c7b355ab5529a43049e160006426">get_null_date</a>()</td><td class="entry"><a class="el" href="classdba__driver.html">dba_driver</a></td><td class="entry"></td></tr>
+ <tr class="even"><td class="entry"><a class="el" href="classdba__driver.html#a02165fc4bee63d040ebd963a4fa82a14">getdriver</a>()</td><td class="entry"><a class="el" href="classdba__driver.html">dba_driver</a></td><td class="entry"></td></tr>
+ <tr><td class="entry"><a class="el" href="classdba__driver.html#a4ccb27243e62a8ca30dd8e1b8cc67746">install</a>($server, $user, $pass, $db)</td><td class="entry"><a class="el" href="classdba__driver.html">dba_driver</a></td><td class="entry"></td></tr>
+ <tr class="even"><td class="entry"><a class="el" href="classdba__driver.html#a98d8523dcedda316085b4d4f856b6583">INSTALL_SCRIPT</a></td><td class="entry"><a class="el" href="classdba__driver.html">dba_driver</a></td><td class="entry"></td></tr>
+ <tr><td class="entry"><a class="el" href="classdba__driver.html#afce39394c010ea589d99a21579b2c31e">NULL_DATE</a></td><td class="entry"><a class="el" href="classdba__driver.html">dba_driver</a></td><td class="entry"></td></tr>
+ <tr class="even"><td class="entry"><a class="el" href="classdba__driver.html#a77e59dcbeab30ca6000131d2e9ad4092">optimize_table</a>($table)</td><td class="entry"><a class="el" href="classdba__driver.html">dba_driver</a></td><td class="entry"></td></tr>
<tr><td class="entry"><a class="el" href="classdba__driver.html#a558e738b88ae893cc5d79ffa3793d555">q</a>($sql)</td><td class="entry"><a class="el" href="classdba__driver.html">dba_driver</a></td><td class="entry"></td></tr>
+ <tr class="even"><td class="entry"><a class="el" href="classdba__driver.html#ac9127e9c55fcc93bcfbb323b9b99b9d9">quote_interval</a>($txt)</td><td class="entry"><a class="el" href="classdba__driver.html">dba_driver</a></td><td class="entry"></td></tr>
+ <tr><td class="entry"><a class="el" href="classdba__driver.html#ab43184239e1d6eb00a98319f4a3df155">unescapebin</a>($str)</td><td class="entry"><a class="el" href="classdba__driver.html">dba_driver</a></td><td class="entry"></td></tr>
+ <tr class="even"><td class="entry"><a class="el" href="classdba__driver.html#aa3325d982d4ee5d1114fd7e02a4356e8">UTC_NOW</a></td><td class="entry"><a class="el" href="classdba__driver.html">dba_driver</a></td><td class="entry"></td></tr>
+ <tr><td class="entry"><a class="el" href="classdba__driver.html#ad700712879719bee23752b8f424d97d0">utcnow</a>()</td><td class="entry"><a class="el" href="classdba__driver.html">dba_driver</a></td><td class="entry"></td></tr>
</table></div><!-- contents -->
</div><!-- doc-content -->
diff --git a/doc/html/classdba__driver.html b/doc/html/classdba__driver.html
index e70d8bf1f..4c917a0dd 100644
--- a/doc/html/classdba__driver.html
+++ b/doc/html/classdba__driver.html
@@ -114,38 +114,72 @@ $(document).ready(function(){initNavTree('classdba__driver.html','');});
<div class="title">dba_driver Class Reference</div> </div>
</div><!--header-->
<div class="contents">
+
+<p>abstract database driver class.
+ <a href="classdba__driver.html#details">More...</a></p>
<div class="dynheader">
Inheritance diagram for dba_driver:</div>
<div class="dyncontent">
<div class="center">
<img src="classdba__driver.png" usemap="#dba_driver_map" alt=""/>
<map id="dba_driver_map" name="dba_driver_map">
-<area href="classdba__mysql.html" alt="dba_mysql" shape="rect" coords="0,56,74,80"/>
-<area href="classdba__mysqli.html" alt="dba_mysqli" shape="rect" coords="84,56,158,80"/>
+<area href="classdba__mysql.html" alt="dba_mysql" shape="rect" coords="0,56,88,80"/>
+<area href="classdba__mysqli.html" alt="dba_mysqli" shape="rect" coords="98,56,186,80"/>
+<area href="classdba__postgres.html" alt="dba_postgres" shape="rect" coords="196,56,284,80"/>
</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:ae533e62a240a793f17aef5ab4ef10edc"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classdba__driver.html#ae533e62a240a793f17aef5ab4ef10edc">connect</a> ($server, $port, $user, $pass, $db)</td></tr>
+<tr class="memdesc:ae533e62a240a793f17aef5ab4ef10edc"><td class="mdescLeft">&#160;</td><td class="mdescRight">Connect to the database. <a href="#ae533e62a240a793f17aef5ab4ef10edc">More...</a><br/></td></tr>
<tr class="separator:ae533e62a240a793f17aef5ab4ef10edc"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a558e738b88ae893cc5d79ffa3793d555"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classdba__driver.html#a558e738b88ae893cc5d79ffa3793d555">q</a> ($sql)</td></tr>
+<tr class="memdesc:a558e738b88ae893cc5d79ffa3793d555"><td class="mdescLeft">&#160;</td><td class="mdescRight">Perform a DB query with the SQL statement $sql. <a href="#a558e738b88ae893cc5d79ffa3793d555">More...</a><br/></td></tr>
<tr class="separator:a558e738b88ae893cc5d79ffa3793d555"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:afc95ffa103a3290581b537670cde5311"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classdba__driver.html#afc95ffa103a3290581b537670cde5311">escape</a> ($str)</td></tr>
+<tr class="memdesc:afc95ffa103a3290581b537670cde5311"><td class="mdescLeft">&#160;</td><td class="mdescRight">Escape a string before being passed to a DB query. <a href="#afc95ffa103a3290581b537670cde5311">More...</a><br/></td></tr>
<tr class="separator:afc95ffa103a3290581b537670cde5311"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a5afa54172f3c837df61643f8f5b2c975"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classdba__driver.html#a5afa54172f3c837df61643f8f5b2c975">close</a> ()</td></tr>
+<tr class="memdesc:a5afa54172f3c837df61643f8f5b2c975"><td class="mdescLeft">&#160;</td><td class="mdescRight">Close the database connection. <a href="#a5afa54172f3c837df61643f8f5b2c975">More...</a><br/></td></tr>
<tr class="separator:a5afa54172f3c837df61643f8f5b2c975"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a02165fc4bee63d040ebd963a4fa82a14"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classdba__driver.html#a02165fc4bee63d040ebd963a4fa82a14">getdriver</a> ()</td></tr>
+<tr class="memdesc:a02165fc4bee63d040ebd963a4fa82a14"><td class="mdescLeft">&#160;</td><td class="mdescRight">Return text name for db driver. <a href="#a02165fc4bee63d040ebd963a4fa82a14">More...</a><br/></td></tr>
+<tr class="separator:a02165fc4bee63d040ebd963a4fa82a14"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:af3541d13ccb7a3eddfc03e253c746186"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classdba__driver.html#af3541d13ccb7a3eddfc03e253c746186">__construct</a> ($server, $port, $user, $pass, $db, $<a class="el" href="classdba__driver.html#a4ccb27243e62a8ca30dd8e1b8cc67746">install</a>=false)</td></tr>
<tr class="separator:af3541d13ccb7a3eddfc03e253c746186"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a65a5c7b355ab5529a43049e160006426"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classdba__driver.html#a65a5c7b355ab5529a43049e160006426">get_null_date</a> ()</td></tr>
+<tr class="separator:a65a5c7b355ab5529a43049e160006426"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a8d6a79d39d7eaee5aea4e952c4529d48"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classdba__driver.html#a8d6a79d39d7eaee5aea4e952c4529d48">get_install_script</a> ()</td></tr>
+<tr class="separator:a8d6a79d39d7eaee5aea4e952c4529d48"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ad700712879719bee23752b8f424d97d0"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classdba__driver.html#ad700712879719bee23752b8f424d97d0">utcnow</a> ()</td></tr>
+<tr class="separator:ad700712879719bee23752b8f424d97d0"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a4ccb27243e62a8ca30dd8e1b8cc67746"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classdba__driver.html#a4ccb27243e62a8ca30dd8e1b8cc67746">install</a> ($server, $user, $pass, $db)</td></tr>
<tr class="separator:a4ccb27243e62a8ca30dd8e1b8cc67746"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:adcc1f8955120fec0708bce39202d0422"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classdba__driver.html#adcc1f8955120fec0708bce39202d0422">dbg</a> ($dbg)</td></tr>
+<tr class="memdesc:adcc1f8955120fec0708bce39202d0422"><td class="mdescLeft">&#160;</td><td class="mdescRight">Sets the database driver's debugging state. <a href="#adcc1f8955120fec0708bce39202d0422">More...</a><br/></td></tr>
<tr class="separator:adcc1f8955120fec0708bce39202d0422"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a1a8bc9dc839a6320a0e07d8047a6b721"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classdba__driver.html#a1a8bc9dc839a6320a0e07d8047a6b721">__destruct</a> ()</td></tr>
<tr class="separator:a1a8bc9dc839a6320a0e07d8047a6b721"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ac9127e9c55fcc93bcfbb323b9b99b9d9"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classdba__driver.html#ac9127e9c55fcc93bcfbb323b9b99b9d9">quote_interval</a> ($txt)</td></tr>
+<tr class="separator:ac9127e9c55fcc93bcfbb323b9b99b9d9"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a77e59dcbeab30ca6000131d2e9ad4092"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classdba__driver.html#a77e59dcbeab30ca6000131d2e9ad4092">optimize_table</a> ($table)</td></tr>
+<tr class="separator:a77e59dcbeab30ca6000131d2e9ad4092"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ab9982f38a02f008b127a0f3ccc1e99f4"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classdba__driver.html#ab9982f38a02f008b127a0f3ccc1e99f4">concat</a> ($fld, $sep)</td></tr>
+<tr class="separator:ab9982f38a02f008b127a0f3ccc1e99f4"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a7dbe8318587ff1694825042bf58f4fbd"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classdba__driver.html#a7dbe8318587ff1694825042bf58f4fbd">escapebin</a> ($str)</td></tr>
+<tr class="separator:a7dbe8318587ff1694825042bf58f4fbd"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ab43184239e1d6eb00a98319f4a3df155"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classdba__driver.html#ab43184239e1d6eb00a98319f4a3df155">unescapebin</a> ($str)</td></tr>
+<tr class="separator:ab43184239e1d6eb00a98319f4a3df155"><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:a98d8523dcedda316085b4d4f856b6583"><td class="memItemLeft" align="right" valign="top">const&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classdba__driver.html#a98d8523dcedda316085b4d4f856b6583">INSTALL_SCRIPT</a> ='<a class="el" href="classdba__driver.html#a4ccb27243e62a8ca30dd8e1b8cc67746">install</a>/schema_mysql.sql'</td></tr>
+<tr class="separator:a98d8523dcedda316085b4d4f856b6583"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:afce39394c010ea589d99a21579b2c31e"><td class="memItemLeft" align="right" valign="top">const&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classdba__driver.html#afce39394c010ea589d99a21579b2c31e">NULL_DATE</a> = '0000-00-00 00:00:00'</td></tr>
+<tr class="separator:afce39394c010ea589d99a21579b2c31e"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:aa3325d982d4ee5d1114fd7e02a4356e8"><td class="memItemLeft" align="right" valign="top">const&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classdba__driver.html#aa3325d982d4ee5d1114fd7e02a4356e8">UTC_NOW</a> = 'UTC_TIMESTAMP()'</td></tr>
+<tr class="separator:aa3325d982d4ee5d1114fd7e02a4356e8"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a205f6535e399700b6fca2492f96f2229"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classdba__driver.html#a205f6535e399700b6fca2492f96f2229">$connected</a> = false</td></tr>
<tr class="separator:a205f6535e399700b6fca2492f96f2229"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a84675d28c7bd9b7290dd37e66dbd216c"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classdba__driver.html#a84675d28c7bd9b7290dd37e66dbd216c">$error</a> = false</td></tr>
@@ -158,7 +192,10 @@ Protected Attributes</h2></td></tr>
<tr class="memitem:a3033b5f1c2716b52202faeaae2592fe6"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classdba__driver.html#a3033b5f1c2716b52202faeaae2592fe6">$db</a></td></tr>
<tr class="separator:a3033b5f1c2716b52202faeaae2592fe6"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table>
-<h2 class="groupheader">Constructor &amp; Destructor Documentation</h2>
+<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
+<div class="textblock"><p>abstract database driver class. </p>
+<p>This class gets extended by the real database driver classes, e.g. <a class="el" href="classdba__mysql.html">dba_mysql</a>, <a class="el" href="classdba__mysqli.html">dba_mysqli</a>. </p>
+</div><h2 class="groupheader">Constructor &amp; Destructor Documentation</h2>
<a class="anchor" id="af3541d13ccb7a3eddfc03e253c746186"></a>
<div class="memitem">
<div class="memproto">
@@ -246,10 +283,39 @@ Protected Attributes</h2></td></tr>
</table>
</div><div class="memdoc">
+<p>Close the database connection. </p>
+<p>This abstract function needs to be implemented in the real driver. </p>
+
<p>Referenced by <a class="el" href="classdba__driver.html#a1a8bc9dc839a6320a0e07d8047a6b721">__destruct()</a>.</p>
</div>
</div>
+<a class="anchor" id="ab9982f38a02f008b127a0f3ccc1e99f4"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">dba_driver::concat </td>
+ <td>(</td>
+ <td class="paramtype">&#160;</td>
+ <td class="paramname"><em>$fld</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">&#160;</td>
+ <td class="paramname"><em>$sep</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="ae533e62a240a793f17aef5ab4ef10edc"></a>
<div class="memitem">
<div class="memproto">
@@ -300,6 +366,20 @@ Protected Attributes</h2></td></tr>
</table>
</div><div class="memdoc">
+<p>Connect to the database. </p>
+<p>This abstract function needs to be implemented in the real driver.</p>
+<dl class="params"><dt>Parameters</dt><dd>
+ <table class="params">
+ <tr><td class="paramtype">string</td><td class="paramname">$server</td><td>DB server name </td></tr>
+ <tr><td class="paramtype">string</td><td class="paramname">$port</td><td>DB port </td></tr>
+ <tr><td class="paramtype">string</td><td class="paramname">$user</td><td>DB username </td></tr>
+ <tr><td class="paramtype">string</td><td class="paramname">$pass</td><td>DB password </td></tr>
+ <tr><td class="paramtype">string</td><td class="paramname">$db</td><td>database name </td></tr>
+ </table>
+ </dd>
+</dl>
+<dl class="section return"><dt>Returns</dt><dd>bool </dd></dl>
+
<p>Referenced by <a class="el" href="classdba__driver.html#af3541d13ccb7a3eddfc03e253c746186">__construct()</a>.</p>
</div>
@@ -318,6 +398,14 @@ Protected Attributes</h2></td></tr>
</table>
</div><div class="memdoc">
+<p>Sets the database driver's debugging state. </p>
+<dl class="params"><dt>Parameters</dt><dd>
+ <table class="params">
+ <tr><td class="paramtype">int</td><td class="paramname">$dbg</td><td>0 to disable debugging </td></tr>
+ </table>
+ </dd>
+</dl>
+
</div>
</div>
<a class="anchor" id="afc95ffa103a3290581b537670cde5311"></a>
@@ -342,6 +430,87 @@ Protected Attributes</h2></td></tr>
</table>
</div><div class="memdoc">
+<p>Escape a string before being passed to a DB query. </p>
+<p>This abstract function needs to be implemented in the real driver.</p>
+<dl class="params"><dt>Parameters</dt><dd>
+ <table class="params">
+ <tr><td class="paramtype">string</td><td class="paramname">$str</td><td>The string to escape. </td></tr>
+ </table>
+ </dd>
+</dl>
+
+</div>
+</div>
+<a class="anchor" id="a7dbe8318587ff1694825042bf58f4fbd"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">dba_driver::escapebin </td>
+ <td>(</td>
+ <td class="paramtype">&#160;</td>
+ <td class="paramname"><em>$str</em></td><td>)</td>
+ <td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+</div>
+</div>
+<a class="anchor" id="a8d6a79d39d7eaee5aea4e952c4529d48"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">dba_driver::get_install_script </td>
+ <td>(</td>
+ <td class="paramname"></td><td>)</td>
+ <td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+</div>
+</div>
+<a class="anchor" id="a65a5c7b355ab5529a43049e160006426"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">dba_driver::get_null_date </td>
+ <td>(</td>
+ <td class="paramname"></td><td>)</td>
+ <td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+</div>
+</div>
+<a class="anchor" id="a02165fc4bee63d040ebd963a4fa82a14"></a>
+<div class="memitem">
+<div class="memproto">
+<table class="mlabels">
+ <tr>
+ <td class="mlabels-left">
+ <table class="memname">
+ <tr>
+ <td class="memname">dba_driver::getdriver </td>
+ <td>(</td>
+ <td class="paramname"></td><td>)</td>
+ <td></td>
+ </tr>
+ </table>
+ </td>
+ <td class="mlabels-right">
+<span class="mlabels"><span class="mlabel">abstract</span></span> </td>
+ </tr>
+</table>
+</div><div class="memdoc">
+
+<p>Return text name for db driver. </p>
+<p>This abstract function needs to be implemented in the real driver. </p>
+
</div>
</div>
<a class="anchor" id="a4ccb27243e62a8ca30dd8e1b8cc67746"></a>
@@ -384,6 +553,22 @@ Protected Attributes</h2></td></tr>
</div>
</div>
+<a class="anchor" id="a77e59dcbeab30ca6000131d2e9ad4092"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">dba_driver::optimize_table </td>
+ <td>(</td>
+ <td class="paramtype">&#160;</td>
+ <td class="paramname"><em>$table</em></td><td>)</td>
+ <td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+</div>
+</div>
<a class="anchor" id="a558e738b88ae893cc5d79ffa3793d555"></a>
<div class="memitem">
<div class="memproto">
@@ -406,6 +591,64 @@ Protected Attributes</h2></td></tr>
</table>
</div><div class="memdoc">
+<p>Perform a DB query with the SQL statement $sql. </p>
+<p>This abstract function needs to be implemented in the real driver.</p>
+<dl class="params"><dt>Parameters</dt><dd>
+ <table class="params">
+ <tr><td class="paramtype">string</td><td class="paramname">$sql</td><td>The SQL query to execute </td></tr>
+ </table>
+ </dd>
+</dl>
+
+<p>Referenced by <a class="el" href="classdba__driver.html#a77e59dcbeab30ca6000131d2e9ad4092">optimize_table()</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="ac9127e9c55fcc93bcfbb323b9b99b9d9"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">dba_driver::quote_interval </td>
+ <td>(</td>
+ <td class="paramtype">&#160;</td>
+ <td class="paramname"><em>$txt</em></td><td>)</td>
+ <td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+</div>
+</div>
+<a class="anchor" id="ab43184239e1d6eb00a98319f4a3df155"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">dba_driver::unescapebin </td>
+ <td>(</td>
+ <td class="paramtype">&#160;</td>
+ <td class="paramname"><em>$str</em></td><td>)</td>
+ <td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+</div>
+</div>
+<a class="anchor" id="ad700712879719bee23752b8f424d97d0"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">dba_driver::utcnow </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>
@@ -419,6 +662,8 @@ Protected Attributes</h2></td></tr>
</table>
</div><div class="memdoc">
+<p>Referenced by <a class="el" href="classdba__postgres.html#ab36244320f5b71dba92d9318ccf3f34e">dba_postgres\connect()</a>.</p>
+
</div>
</div>
<a class="anchor" id="a3033b5f1c2716b52202faeaae2592fe6"></a>
@@ -439,7 +684,7 @@ Protected Attributes</h2></td></tr>
</table>
</div><div class="memdoc">
-<p>Referenced by <a class="el" href="classdba__driver.html#af3541d13ccb7a3eddfc03e253c746186">__construct()</a>, <a class="el" href="classdba__mysqli.html#add062bd93961e5f0194d94820e9a51b1">dba_mysqli\connect()</a>, and <a class="el" href="classdba__mysql.html#a1887338627ce0e28786839363014bd0b">dba_mysql\connect()</a>.</p>
+<p>Referenced by <a class="el" href="classdba__driver.html#af3541d13ccb7a3eddfc03e253c746186">__construct()</a>, <a class="el" href="classdba__mysqli.html#add062bd93961e5f0194d94820e9a51b1">dba_mysqli\connect()</a>, <a class="el" href="classdba__mysql.html#a1887338627ce0e28786839363014bd0b">dba_mysql\connect()</a>, and <a class="el" href="classdba__postgres.html#ab36244320f5b71dba92d9318ccf3f34e">dba_postgres\connect()</a>.</p>
</div>
</div>
@@ -475,6 +720,42 @@ Protected Attributes</h2></td></tr>
</div>
</div>
+<a class="anchor" id="a98d8523dcedda316085b4d4f856b6583"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">const dba_driver::INSTALL_SCRIPT ='<a class="el" href="classdba__driver.html#a4ccb27243e62a8ca30dd8e1b8cc67746">install</a>/schema_mysql.sql'</td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+</div>
+</div>
+<a class="anchor" id="afce39394c010ea589d99a21579b2c31e"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">const dba_driver::NULL_DATE = '0000-00-00 00:00:00'</td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+</div>
+</div>
+<a class="anchor" id="aa3325d982d4ee5d1114fd7e02a4356e8"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">const dba_driver::UTC_NOW = 'UTC_TIMESTAMP()'</td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+</div>
+</div>
<hr/>The documentation for this class was generated from the following file:<ul>
<li>include/dba/<a class="el" href="dba__driver_8php.html">dba_driver.php</a></li>
</ul>
diff --git a/doc/html/classdba__driver.js b/doc/html/classdba__driver.js
index 14c656ca8..ea24b64f9 100644
--- a/doc/html/classdba__driver.js
+++ b/doc/html/classdba__driver.js
@@ -3,13 +3,25 @@ var classdba__driver =
[ "__construct", "classdba__driver.html#af3541d13ccb7a3eddfc03e253c746186", null ],
[ "__destruct", "classdba__driver.html#a1a8bc9dc839a6320a0e07d8047a6b721", null ],
[ "close", "classdba__driver.html#a5afa54172f3c837df61643f8f5b2c975", null ],
+ [ "concat", "classdba__driver.html#ab9982f38a02f008b127a0f3ccc1e99f4", null ],
[ "connect", "classdba__driver.html#ae533e62a240a793f17aef5ab4ef10edc", null ],
[ "dbg", "classdba__driver.html#adcc1f8955120fec0708bce39202d0422", null ],
[ "escape", "classdba__driver.html#afc95ffa103a3290581b537670cde5311", null ],
+ [ "escapebin", "classdba__driver.html#a7dbe8318587ff1694825042bf58f4fbd", null ],
+ [ "get_install_script", "classdba__driver.html#a8d6a79d39d7eaee5aea4e952c4529d48", null ],
+ [ "get_null_date", "classdba__driver.html#a65a5c7b355ab5529a43049e160006426", null ],
+ [ "getdriver", "classdba__driver.html#a02165fc4bee63d040ebd963a4fa82a14", null ],
[ "install", "classdba__driver.html#a4ccb27243e62a8ca30dd8e1b8cc67746", null ],
+ [ "optimize_table", "classdba__driver.html#a77e59dcbeab30ca6000131d2e9ad4092", null ],
[ "q", "classdba__driver.html#a558e738b88ae893cc5d79ffa3793d555", null ],
+ [ "quote_interval", "classdba__driver.html#ac9127e9c55fcc93bcfbb323b9b99b9d9", null ],
+ [ "unescapebin", "classdba__driver.html#ab43184239e1d6eb00a98319f4a3df155", null ],
+ [ "utcnow", "classdba__driver.html#ad700712879719bee23752b8f424d97d0", null ],
[ "$connected", "classdba__driver.html#a205f6535e399700b6fca2492f96f2229", null ],
[ "$db", "classdba__driver.html#a3033b5f1c2716b52202faeaae2592fe6", null ],
[ "$debug", "classdba__driver.html#af48e2afeded5285766bf92e22123ed03", null ],
- [ "$error", "classdba__driver.html#a84675d28c7bd9b7290dd37e66dbd216c", null ]
+ [ "$error", "classdba__driver.html#a84675d28c7bd9b7290dd37e66dbd216c", null ],
+ [ "INSTALL_SCRIPT", "classdba__driver.html#a98d8523dcedda316085b4d4f856b6583", null ],
+ [ "NULL_DATE", "classdba__driver.html#afce39394c010ea589d99a21579b2c31e", null ],
+ [ "UTC_NOW", "classdba__driver.html#aa3325d982d4ee5d1114fd7e02a4356e8", null ]
]; \ No newline at end of file
diff --git a/doc/html/classdba__driver.png b/doc/html/classdba__driver.png
index 7c5b7cf41..b9cc8c832 100644
--- a/doc/html/classdba__driver.png
+++ b/doc/html/classdba__driver.png
Binary files differ
diff --git a/doc/html/classdba__mysql-members.html b/doc/html/classdba__mysql-members.html
index 15a22064f..a74cfc456 100644
--- a/doc/html/classdba__mysql-members.html
+++ b/doc/html/classdba__mysql-members.html
@@ -119,11 +119,23 @@ $(document).ready(function(){initNavTree('classdba__mysql.html','');});
<tr class="even"><td class="entry"><a class="el" href="classdba__driver.html#af3541d13ccb7a3eddfc03e253c746186">__construct</a>($server, $port, $user, $pass, $db, $install=false)</td><td class="entry"><a class="el" href="classdba__driver.html">dba_driver</a></td><td class="entry"></td></tr>
<tr><td class="entry"><a class="el" href="classdba__driver.html#a1a8bc9dc839a6320a0e07d8047a6b721">__destruct</a>()</td><td class="entry"><a class="el" href="classdba__driver.html">dba_driver</a></td><td class="entry"></td></tr>
<tr class="even"><td class="entry"><a class="el" href="classdba__mysql.html#a850586714ef897bd25f643c89b4ef76e">close</a>()</td><td class="entry"><a class="el" href="classdba__mysql.html">dba_mysql</a></td><td class="entry"></td></tr>
- <tr><td class="entry"><a class="el" href="classdba__mysql.html#a1887338627ce0e28786839363014bd0b">connect</a>($server, $port, $user, $pass, $db)</td><td class="entry"><a class="el" href="classdba__mysql.html">dba_mysql</a></td><td class="entry"></td></tr>
- <tr class="even"><td class="entry"><a class="el" href="classdba__driver.html#adcc1f8955120fec0708bce39202d0422">dbg</a>($dbg)</td><td class="entry"><a class="el" href="classdba__driver.html">dba_driver</a></td><td class="entry"></td></tr>
- <tr><td class="entry"><a class="el" href="classdba__mysql.html#a99a7691ea6cb1300031fb6549379066e">escape</a>($str)</td><td class="entry"><a class="el" href="classdba__mysql.html">dba_mysql</a></td><td class="entry"></td></tr>
- <tr class="even"><td class="entry"><a class="el" href="classdba__driver.html#a4ccb27243e62a8ca30dd8e1b8cc67746">install</a>($server, $user, $pass, $db)</td><td class="entry"><a class="el" href="classdba__driver.html">dba_driver</a></td><td class="entry"></td></tr>
+ <tr><td class="entry"><a class="el" href="classdba__driver.html#ab9982f38a02f008b127a0f3ccc1e99f4">concat</a>($fld, $sep)</td><td class="entry"><a class="el" href="classdba__driver.html">dba_driver</a></td><td class="entry"></td></tr>
+ <tr class="even"><td class="entry"><a class="el" href="classdba__mysql.html#a1887338627ce0e28786839363014bd0b">connect</a>($server, $port, $user, $pass, $db)</td><td class="entry"><a class="el" href="classdba__mysql.html">dba_mysql</a></td><td class="entry"></td></tr>
+ <tr><td class="entry"><a class="el" href="classdba__driver.html#adcc1f8955120fec0708bce39202d0422">dbg</a>($dbg)</td><td class="entry"><a class="el" href="classdba__driver.html">dba_driver</a></td><td class="entry"></td></tr>
+ <tr class="even"><td class="entry"><a class="el" href="classdba__mysql.html#a99a7691ea6cb1300031fb6549379066e">escape</a>($str)</td><td class="entry"><a class="el" href="classdba__mysql.html">dba_mysql</a></td><td class="entry"></td></tr>
+ <tr><td class="entry"><a class="el" href="classdba__driver.html#a7dbe8318587ff1694825042bf58f4fbd">escapebin</a>($str)</td><td class="entry"><a class="el" href="classdba__driver.html">dba_driver</a></td><td class="entry"></td></tr>
+ <tr class="even"><td class="entry"><a class="el" href="classdba__driver.html#a8d6a79d39d7eaee5aea4e952c4529d48">get_install_script</a>()</td><td class="entry"><a class="el" href="classdba__driver.html">dba_driver</a></td><td class="entry"></td></tr>
+ <tr><td class="entry"><a class="el" href="classdba__driver.html#a65a5c7b355ab5529a43049e160006426">get_null_date</a>()</td><td class="entry"><a class="el" href="classdba__driver.html">dba_driver</a></td><td class="entry"></td></tr>
+ <tr class="even"><td class="entry"><a class="el" href="classdba__mysql.html#a31011edd67b6b394355bf04cedb498d0">getdriver</a>()</td><td class="entry"><a class="el" href="classdba__mysql.html">dba_mysql</a></td><td class="entry"></td></tr>
+ <tr><td class="entry"><a class="el" href="classdba__driver.html#a4ccb27243e62a8ca30dd8e1b8cc67746">install</a>($server, $user, $pass, $db)</td><td class="entry"><a class="el" href="classdba__driver.html">dba_driver</a></td><td class="entry"></td></tr>
+ <tr class="even"><td class="entry"><a class="el" href="classdba__driver.html#a98d8523dcedda316085b4d4f856b6583">INSTALL_SCRIPT</a></td><td class="entry"><a class="el" href="classdba__driver.html">dba_driver</a></td><td class="entry"></td></tr>
+ <tr><td class="entry"><a class="el" href="classdba__driver.html#afce39394c010ea589d99a21579b2c31e">NULL_DATE</a></td><td class="entry"><a class="el" href="classdba__driver.html">dba_driver</a></td><td class="entry"></td></tr>
+ <tr class="even"><td class="entry"><a class="el" href="classdba__driver.html#a77e59dcbeab30ca6000131d2e9ad4092">optimize_table</a>($table)</td><td class="entry"><a class="el" href="classdba__driver.html">dba_driver</a></td><td class="entry"></td></tr>
<tr><td class="entry"><a class="el" href="classdba__mysql.html#ac3fd60c278f400907322dac578754a99">q</a>($sql)</td><td class="entry"><a class="el" href="classdba__mysql.html">dba_mysql</a></td><td class="entry"></td></tr>
+ <tr class="even"><td class="entry"><a class="el" href="classdba__driver.html#ac9127e9c55fcc93bcfbb323b9b99b9d9">quote_interval</a>($txt)</td><td class="entry"><a class="el" href="classdba__driver.html">dba_driver</a></td><td class="entry"></td></tr>
+ <tr><td class="entry"><a class="el" href="classdba__driver.html#ab43184239e1d6eb00a98319f4a3df155">unescapebin</a>($str)</td><td class="entry"><a class="el" href="classdba__driver.html">dba_driver</a></td><td class="entry"></td></tr>
+ <tr class="even"><td class="entry"><a class="el" href="classdba__driver.html#aa3325d982d4ee5d1114fd7e02a4356e8">UTC_NOW</a></td><td class="entry"><a class="el" href="classdba__driver.html">dba_driver</a></td><td class="entry"></td></tr>
+ <tr><td class="entry"><a class="el" href="classdba__driver.html#ad700712879719bee23752b8f424d97d0">utcnow</a>()</td><td class="entry"><a class="el" href="classdba__driver.html">dba_driver</a></td><td class="entry"></td></tr>
</table></div><!-- contents -->
</div><!-- doc-content -->
diff --git a/doc/html/classdba__mysql.html b/doc/html/classdba__mysql.html
index df61678d5..c0bd780a2 100644
--- a/doc/html/classdba__mysql.html
+++ b/doc/html/classdba__mysql.html
@@ -118,7 +118,7 @@ Inheritance diagram for dba_mysql:</div>
<div class="center">
<img src="classdba__mysql.png" usemap="#dba_mysql_map" alt=""/>
<map id="dba_mysql_map" name="dba_mysql_map">
-<area href="classdba__driver.html" alt="dba_driver" shape="rect" coords="0,0,74,24"/>
+<area href="classdba__driver.html" title="abstract database driver class." alt="dba_driver" shape="rect" coords="0,0,74,24"/>
</map>
</div></div>
<table class="memberdecls">
@@ -132,27 +132,59 @@ Public Member Functions</h2></td></tr>
<tr class="separator:a99a7691ea6cb1300031fb6549379066e"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a850586714ef897bd25f643c89b4ef76e"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classdba__mysql.html#a850586714ef897bd25f643c89b4ef76e">close</a> ()</td></tr>
<tr class="separator:a850586714ef897bd25f643c89b4ef76e"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a31011edd67b6b394355bf04cedb498d0"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classdba__mysql.html#a31011edd67b6b394355bf04cedb498d0">getdriver</a> ()</td></tr>
+<tr class="separator:a31011edd67b6b394355bf04cedb498d0"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="inherit_header pub_methods_classdba__driver"><td colspan="2" onclick="javascript:toggleInherit('pub_methods_classdba__driver')"><img src="closed.png" alt="-"/>&#160;Public Member Functions inherited from <a class="el" href="classdba__driver.html">dba_driver</a></td></tr>
<tr class="memitem:ae533e62a240a793f17aef5ab4ef10edc inherit pub_methods_classdba__driver"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classdba__driver.html#ae533e62a240a793f17aef5ab4ef10edc">connect</a> ($server, $port, $user, $pass, $db)</td></tr>
+<tr class="memdesc:ae533e62a240a793f17aef5ab4ef10edc inherit pub_methods_classdba__driver"><td class="mdescLeft">&#160;</td><td class="mdescRight">Connect to the database. <a href="#ae533e62a240a793f17aef5ab4ef10edc">More...</a><br/></td></tr>
<tr class="separator:ae533e62a240a793f17aef5ab4ef10edc inherit pub_methods_classdba__driver"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a558e738b88ae893cc5d79ffa3793d555 inherit pub_methods_classdba__driver"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classdba__driver.html#a558e738b88ae893cc5d79ffa3793d555">q</a> ($sql)</td></tr>
+<tr class="memdesc:a558e738b88ae893cc5d79ffa3793d555 inherit pub_methods_classdba__driver"><td class="mdescLeft">&#160;</td><td class="mdescRight">Perform a DB query with the SQL statement $sql. <a href="#a558e738b88ae893cc5d79ffa3793d555">More...</a><br/></td></tr>
<tr class="separator:a558e738b88ae893cc5d79ffa3793d555 inherit pub_methods_classdba__driver"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:afc95ffa103a3290581b537670cde5311 inherit pub_methods_classdba__driver"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classdba__driver.html#afc95ffa103a3290581b537670cde5311">escape</a> ($str)</td></tr>
+<tr class="memdesc:afc95ffa103a3290581b537670cde5311 inherit pub_methods_classdba__driver"><td class="mdescLeft">&#160;</td><td class="mdescRight">Escape a string before being passed to a DB query. <a href="#afc95ffa103a3290581b537670cde5311">More...</a><br/></td></tr>
<tr class="separator:afc95ffa103a3290581b537670cde5311 inherit pub_methods_classdba__driver"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a5afa54172f3c837df61643f8f5b2c975 inherit pub_methods_classdba__driver"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classdba__driver.html#a5afa54172f3c837df61643f8f5b2c975">close</a> ()</td></tr>
+<tr class="memdesc:a5afa54172f3c837df61643f8f5b2c975 inherit pub_methods_classdba__driver"><td class="mdescLeft">&#160;</td><td class="mdescRight">Close the database connection. <a href="#a5afa54172f3c837df61643f8f5b2c975">More...</a><br/></td></tr>
<tr class="separator:a5afa54172f3c837df61643f8f5b2c975 inherit pub_methods_classdba__driver"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a02165fc4bee63d040ebd963a4fa82a14 inherit pub_methods_classdba__driver"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classdba__driver.html#a02165fc4bee63d040ebd963a4fa82a14">getdriver</a> ()</td></tr>
+<tr class="memdesc:a02165fc4bee63d040ebd963a4fa82a14 inherit pub_methods_classdba__driver"><td class="mdescLeft">&#160;</td><td class="mdescRight">Return text name for db driver. <a href="#a02165fc4bee63d040ebd963a4fa82a14">More...</a><br/></td></tr>
+<tr class="separator:a02165fc4bee63d040ebd963a4fa82a14 inherit pub_methods_classdba__driver"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:af3541d13ccb7a3eddfc03e253c746186 inherit pub_methods_classdba__driver"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classdba__driver.html#af3541d13ccb7a3eddfc03e253c746186">__construct</a> ($server, $port, $user, $pass, $db, $<a class="el" href="classdba__driver.html#a4ccb27243e62a8ca30dd8e1b8cc67746">install</a>=false)</td></tr>
<tr class="separator:af3541d13ccb7a3eddfc03e253c746186 inherit pub_methods_classdba__driver"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a65a5c7b355ab5529a43049e160006426 inherit pub_methods_classdba__driver"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classdba__driver.html#a65a5c7b355ab5529a43049e160006426">get_null_date</a> ()</td></tr>
+<tr class="separator:a65a5c7b355ab5529a43049e160006426 inherit pub_methods_classdba__driver"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a8d6a79d39d7eaee5aea4e952c4529d48 inherit pub_methods_classdba__driver"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classdba__driver.html#a8d6a79d39d7eaee5aea4e952c4529d48">get_install_script</a> ()</td></tr>
+<tr class="separator:a8d6a79d39d7eaee5aea4e952c4529d48 inherit pub_methods_classdba__driver"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ad700712879719bee23752b8f424d97d0 inherit pub_methods_classdba__driver"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classdba__driver.html#ad700712879719bee23752b8f424d97d0">utcnow</a> ()</td></tr>
+<tr class="separator:ad700712879719bee23752b8f424d97d0 inherit pub_methods_classdba__driver"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a4ccb27243e62a8ca30dd8e1b8cc67746 inherit pub_methods_classdba__driver"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classdba__driver.html#a4ccb27243e62a8ca30dd8e1b8cc67746">install</a> ($server, $user, $pass, $db)</td></tr>
<tr class="separator:a4ccb27243e62a8ca30dd8e1b8cc67746 inherit pub_methods_classdba__driver"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:adcc1f8955120fec0708bce39202d0422 inherit pub_methods_classdba__driver"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classdba__driver.html#adcc1f8955120fec0708bce39202d0422">dbg</a> ($dbg)</td></tr>
+<tr class="memdesc:adcc1f8955120fec0708bce39202d0422 inherit pub_methods_classdba__driver"><td class="mdescLeft">&#160;</td><td class="mdescRight">Sets the database driver's debugging state. <a href="#adcc1f8955120fec0708bce39202d0422">More...</a><br/></td></tr>
<tr class="separator:adcc1f8955120fec0708bce39202d0422 inherit pub_methods_classdba__driver"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a1a8bc9dc839a6320a0e07d8047a6b721 inherit pub_methods_classdba__driver"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classdba__driver.html#a1a8bc9dc839a6320a0e07d8047a6b721">__destruct</a> ()</td></tr>
<tr class="separator:a1a8bc9dc839a6320a0e07d8047a6b721 inherit pub_methods_classdba__driver"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ac9127e9c55fcc93bcfbb323b9b99b9d9 inherit pub_methods_classdba__driver"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classdba__driver.html#ac9127e9c55fcc93bcfbb323b9b99b9d9">quote_interval</a> ($txt)</td></tr>
+<tr class="separator:ac9127e9c55fcc93bcfbb323b9b99b9d9 inherit pub_methods_classdba__driver"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a77e59dcbeab30ca6000131d2e9ad4092 inherit pub_methods_classdba__driver"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classdba__driver.html#a77e59dcbeab30ca6000131d2e9ad4092">optimize_table</a> ($table)</td></tr>
+<tr class="separator:a77e59dcbeab30ca6000131d2e9ad4092 inherit pub_methods_classdba__driver"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ab9982f38a02f008b127a0f3ccc1e99f4 inherit pub_methods_classdba__driver"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classdba__driver.html#ab9982f38a02f008b127a0f3ccc1e99f4">concat</a> ($fld, $sep)</td></tr>
+<tr class="separator:ab9982f38a02f008b127a0f3ccc1e99f4 inherit pub_methods_classdba__driver"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a7dbe8318587ff1694825042bf58f4fbd inherit pub_methods_classdba__driver"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classdba__driver.html#a7dbe8318587ff1694825042bf58f4fbd">escapebin</a> ($str)</td></tr>
+<tr class="separator:a7dbe8318587ff1694825042bf58f4fbd inherit pub_methods_classdba__driver"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ab43184239e1d6eb00a98319f4a3df155 inherit pub_methods_classdba__driver"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classdba__driver.html#ab43184239e1d6eb00a98319f4a3df155">unescapebin</a> ($str)</td></tr>
+<tr class="separator:ab43184239e1d6eb00a98319f4a3df155 inherit pub_methods_classdba__driver"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table><table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="inherited"></a>
Additional Inherited Members</h2></td></tr>
<tr class="inherit_header pub_attribs_classdba__driver"><td colspan="2" onclick="javascript:toggleInherit('pub_attribs_classdba__driver')"><img src="closed.png" alt="-"/>&#160;Public Attributes inherited from <a class="el" href="classdba__driver.html">dba_driver</a></td></tr>
+<tr class="memitem:a98d8523dcedda316085b4d4f856b6583 inherit pub_attribs_classdba__driver"><td class="memItemLeft" align="right" valign="top">const&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classdba__driver.html#a98d8523dcedda316085b4d4f856b6583">INSTALL_SCRIPT</a> ='<a class="el" href="classdba__driver.html#a4ccb27243e62a8ca30dd8e1b8cc67746">install</a>/schema_mysql.sql'</td></tr>
+<tr class="separator:a98d8523dcedda316085b4d4f856b6583 inherit pub_attribs_classdba__driver"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:afce39394c010ea589d99a21579b2c31e inherit pub_attribs_classdba__driver"><td class="memItemLeft" align="right" valign="top">const&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classdba__driver.html#afce39394c010ea589d99a21579b2c31e">NULL_DATE</a> = '0000-00-00 00:00:00'</td></tr>
+<tr class="separator:afce39394c010ea589d99a21579b2c31e inherit pub_attribs_classdba__driver"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:aa3325d982d4ee5d1114fd7e02a4356e8 inherit pub_attribs_classdba__driver"><td class="memItemLeft" align="right" valign="top">const&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classdba__driver.html#aa3325d982d4ee5d1114fd7e02a4356e8">UTC_NOW</a> = 'UTC_TIMESTAMP()'</td></tr>
+<tr class="separator:aa3325d982d4ee5d1114fd7e02a4356e8 inherit pub_attribs_classdba__driver"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a205f6535e399700b6fca2492f96f2229 inherit pub_attribs_classdba__driver"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classdba__driver.html#a205f6535e399700b6fca2492f96f2229">$connected</a> = false</td></tr>
<tr class="separator:a205f6535e399700b6fca2492f96f2229 inherit pub_attribs_classdba__driver"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a84675d28c7bd9b7290dd37e66dbd216c inherit pub_attribs_classdba__driver"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classdba__driver.html#a84675d28c7bd9b7290dd37e66dbd216c">$error</a> = false</td></tr>
@@ -239,6 +271,21 @@ Additional Inherited Members</h2></td></tr>
</div>
</div>
+<a class="anchor" id="a31011edd67b6b394355bf04cedb498d0"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">dba_mysql::getdriver </td>
+ <td>(</td>
+ <td class="paramname"></td><td>)</td>
+ <td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+</div>
+</div>
<a class="anchor" id="ac3fd60c278f400907322dac578754a99"></a>
<div class="memitem">
<div class="memproto">
diff --git a/doc/html/classdba__mysql.js b/doc/html/classdba__mysql.js
index 9e5452f55..ec4c52eaf 100644
--- a/doc/html/classdba__mysql.js
+++ b/doc/html/classdba__mysql.js
@@ -3,5 +3,6 @@ var classdba__mysql =
[ "close", "classdba__mysql.html#a850586714ef897bd25f643c89b4ef76e", null ],
[ "connect", "classdba__mysql.html#a1887338627ce0e28786839363014bd0b", null ],
[ "escape", "classdba__mysql.html#a99a7691ea6cb1300031fb6549379066e", null ],
+ [ "getdriver", "classdba__mysql.html#a31011edd67b6b394355bf04cedb498d0", null ],
[ "q", "classdba__mysql.html#ac3fd60c278f400907322dac578754a99", null ]
]; \ No newline at end of file
diff --git a/doc/html/classdba__mysqli-members.html b/doc/html/classdba__mysqli-members.html
index cdfcb2dc4..0c43b330e 100644
--- a/doc/html/classdba__mysqli-members.html
+++ b/doc/html/classdba__mysqli-members.html
@@ -119,11 +119,23 @@ $(document).ready(function(){initNavTree('classdba__mysqli.html','');});
<tr class="even"><td class="entry"><a class="el" href="classdba__driver.html#af3541d13ccb7a3eddfc03e253c746186">__construct</a>($server, $port, $user, $pass, $db, $install=false)</td><td class="entry"><a class="el" href="classdba__driver.html">dba_driver</a></td><td class="entry"></td></tr>
<tr><td class="entry"><a class="el" href="classdba__driver.html#a1a8bc9dc839a6320a0e07d8047a6b721">__destruct</a>()</td><td class="entry"><a class="el" href="classdba__driver.html">dba_driver</a></td><td class="entry"></td></tr>
<tr class="even"><td class="entry"><a class="el" href="classdba__mysqli.html#acb38f2c851187ad632ecfab30fdfab55">close</a>()</td><td class="entry"><a class="el" href="classdba__mysqli.html">dba_mysqli</a></td><td class="entry"></td></tr>
- <tr><td class="entry"><a class="el" href="classdba__mysqli.html#add062bd93961e5f0194d94820e9a51b1">connect</a>($server, $port, $user, $pass, $db)</td><td class="entry"><a class="el" href="classdba__mysqli.html">dba_mysqli</a></td><td class="entry"></td></tr>
- <tr class="even"><td class="entry"><a class="el" href="classdba__driver.html#adcc1f8955120fec0708bce39202d0422">dbg</a>($dbg)</td><td class="entry"><a class="el" href="classdba__driver.html">dba_driver</a></td><td class="entry"></td></tr>
- <tr><td class="entry"><a class="el" href="classdba__mysqli.html#a27d6a748af7f80028801306e7ea33f64">escape</a>($str)</td><td class="entry"><a class="el" href="classdba__mysqli.html">dba_mysqli</a></td><td class="entry"></td></tr>
- <tr class="even"><td class="entry"><a class="el" href="classdba__driver.html#a4ccb27243e62a8ca30dd8e1b8cc67746">install</a>($server, $user, $pass, $db)</td><td class="entry"><a class="el" href="classdba__driver.html">dba_driver</a></td><td class="entry"></td></tr>
+ <tr><td class="entry"><a class="el" href="classdba__driver.html#ab9982f38a02f008b127a0f3ccc1e99f4">concat</a>($fld, $sep)</td><td class="entry"><a class="el" href="classdba__driver.html">dba_driver</a></td><td class="entry"></td></tr>
+ <tr class="even"><td class="entry"><a class="el" href="classdba__mysqli.html#add062bd93961e5f0194d94820e9a51b1">connect</a>($server, $port, $user, $pass, $db)</td><td class="entry"><a class="el" href="classdba__mysqli.html">dba_mysqli</a></td><td class="entry"></td></tr>
+ <tr><td class="entry"><a class="el" href="classdba__driver.html#adcc1f8955120fec0708bce39202d0422">dbg</a>($dbg)</td><td class="entry"><a class="el" href="classdba__driver.html">dba_driver</a></td><td class="entry"></td></tr>
+ <tr class="even"><td class="entry"><a class="el" href="classdba__mysqli.html#a27d6a748af7f80028801306e7ea33f64">escape</a>($str)</td><td class="entry"><a class="el" href="classdba__mysqli.html">dba_mysqli</a></td><td class="entry"></td></tr>
+ <tr><td class="entry"><a class="el" href="classdba__driver.html#a7dbe8318587ff1694825042bf58f4fbd">escapebin</a>($str)</td><td class="entry"><a class="el" href="classdba__driver.html">dba_driver</a></td><td class="entry"></td></tr>
+ <tr class="even"><td class="entry"><a class="el" href="classdba__driver.html#a8d6a79d39d7eaee5aea4e952c4529d48">get_install_script</a>()</td><td class="entry"><a class="el" href="classdba__driver.html">dba_driver</a></td><td class="entry"></td></tr>
+ <tr><td class="entry"><a class="el" href="classdba__driver.html#a65a5c7b355ab5529a43049e160006426">get_null_date</a>()</td><td class="entry"><a class="el" href="classdba__driver.html">dba_driver</a></td><td class="entry"></td></tr>
+ <tr class="even"><td class="entry"><a class="el" href="classdba__mysqli.html#a6eb6c578c6928908321e5e6da866e1db">getdriver</a>()</td><td class="entry"><a class="el" href="classdba__mysqli.html">dba_mysqli</a></td><td class="entry"></td></tr>
+ <tr><td class="entry"><a class="el" href="classdba__driver.html#a4ccb27243e62a8ca30dd8e1b8cc67746">install</a>($server, $user, $pass, $db)</td><td class="entry"><a class="el" href="classdba__driver.html">dba_driver</a></td><td class="entry"></td></tr>
+ <tr class="even"><td class="entry"><a class="el" href="classdba__driver.html#a98d8523dcedda316085b4d4f856b6583">INSTALL_SCRIPT</a></td><td class="entry"><a class="el" href="classdba__driver.html">dba_driver</a></td><td class="entry"></td></tr>
+ <tr><td class="entry"><a class="el" href="classdba__driver.html#afce39394c010ea589d99a21579b2c31e">NULL_DATE</a></td><td class="entry"><a class="el" href="classdba__driver.html">dba_driver</a></td><td class="entry"></td></tr>
+ <tr class="even"><td class="entry"><a class="el" href="classdba__driver.html#a77e59dcbeab30ca6000131d2e9ad4092">optimize_table</a>($table)</td><td class="entry"><a class="el" href="classdba__driver.html">dba_driver</a></td><td class="entry"></td></tr>
<tr><td class="entry"><a class="el" href="classdba__mysqli.html#a611c4de8d6d7512dffb83a38bb6701ec">q</a>($sql)</td><td class="entry"><a class="el" href="classdba__mysqli.html">dba_mysqli</a></td><td class="entry"></td></tr>
+ <tr class="even"><td class="entry"><a class="el" href="classdba__driver.html#ac9127e9c55fcc93bcfbb323b9b99b9d9">quote_interval</a>($txt)</td><td class="entry"><a class="el" href="classdba__driver.html">dba_driver</a></td><td class="entry"></td></tr>
+ <tr><td class="entry"><a class="el" href="classdba__driver.html#ab43184239e1d6eb00a98319f4a3df155">unescapebin</a>($str)</td><td class="entry"><a class="el" href="classdba__driver.html">dba_driver</a></td><td class="entry"></td></tr>
+ <tr class="even"><td class="entry"><a class="el" href="classdba__driver.html#aa3325d982d4ee5d1114fd7e02a4356e8">UTC_NOW</a></td><td class="entry"><a class="el" href="classdba__driver.html">dba_driver</a></td><td class="entry"></td></tr>
+ <tr><td class="entry"><a class="el" href="classdba__driver.html#ad700712879719bee23752b8f424d97d0">utcnow</a>()</td><td class="entry"><a class="el" href="classdba__driver.html">dba_driver</a></td><td class="entry"></td></tr>
</table></div><!-- contents -->
</div><!-- doc-content -->
diff --git a/doc/html/classdba__mysqli.html b/doc/html/classdba__mysqli.html
index 985a7216b..df0c38b6a 100644
--- a/doc/html/classdba__mysqli.html
+++ b/doc/html/classdba__mysqli.html
@@ -118,7 +118,7 @@ Inheritance diagram for dba_mysqli:</div>
<div class="center">
<img src="classdba__mysqli.png" usemap="#dba_mysqli_map" alt=""/>
<map id="dba_mysqli_map" name="dba_mysqli_map">
-<area href="classdba__driver.html" alt="dba_driver" shape="rect" coords="0,0,74,24"/>
+<area href="classdba__driver.html" title="abstract database driver class." alt="dba_driver" shape="rect" coords="0,0,74,24"/>
</map>
</div></div>
<table class="memberdecls">
@@ -132,27 +132,59 @@ Public Member Functions</h2></td></tr>
<tr class="separator:a27d6a748af7f80028801306e7ea33f64"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:acb38f2c851187ad632ecfab30fdfab55"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classdba__mysqli.html#acb38f2c851187ad632ecfab30fdfab55">close</a> ()</td></tr>
<tr class="separator:acb38f2c851187ad632ecfab30fdfab55"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a6eb6c578c6928908321e5e6da866e1db"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classdba__mysqli.html#a6eb6c578c6928908321e5e6da866e1db">getdriver</a> ()</td></tr>
+<tr class="separator:a6eb6c578c6928908321e5e6da866e1db"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="inherit_header pub_methods_classdba__driver"><td colspan="2" onclick="javascript:toggleInherit('pub_methods_classdba__driver')"><img src="closed.png" alt="-"/>&#160;Public Member Functions inherited from <a class="el" href="classdba__driver.html">dba_driver</a></td></tr>
<tr class="memitem:ae533e62a240a793f17aef5ab4ef10edc inherit pub_methods_classdba__driver"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classdba__driver.html#ae533e62a240a793f17aef5ab4ef10edc">connect</a> ($server, $port, $user, $pass, $db)</td></tr>
+<tr class="memdesc:ae533e62a240a793f17aef5ab4ef10edc inherit pub_methods_classdba__driver"><td class="mdescLeft">&#160;</td><td class="mdescRight">Connect to the database. <a href="#ae533e62a240a793f17aef5ab4ef10edc">More...</a><br/></td></tr>
<tr class="separator:ae533e62a240a793f17aef5ab4ef10edc inherit pub_methods_classdba__driver"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a558e738b88ae893cc5d79ffa3793d555 inherit pub_methods_classdba__driver"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classdba__driver.html#a558e738b88ae893cc5d79ffa3793d555">q</a> ($sql)</td></tr>
+<tr class="memdesc:a558e738b88ae893cc5d79ffa3793d555 inherit pub_methods_classdba__driver"><td class="mdescLeft">&#160;</td><td class="mdescRight">Perform a DB query with the SQL statement $sql. <a href="#a558e738b88ae893cc5d79ffa3793d555">More...</a><br/></td></tr>
<tr class="separator:a558e738b88ae893cc5d79ffa3793d555 inherit pub_methods_classdba__driver"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:afc95ffa103a3290581b537670cde5311 inherit pub_methods_classdba__driver"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classdba__driver.html#afc95ffa103a3290581b537670cde5311">escape</a> ($str)</td></tr>
+<tr class="memdesc:afc95ffa103a3290581b537670cde5311 inherit pub_methods_classdba__driver"><td class="mdescLeft">&#160;</td><td class="mdescRight">Escape a string before being passed to a DB query. <a href="#afc95ffa103a3290581b537670cde5311">More...</a><br/></td></tr>
<tr class="separator:afc95ffa103a3290581b537670cde5311 inherit pub_methods_classdba__driver"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a5afa54172f3c837df61643f8f5b2c975 inherit pub_methods_classdba__driver"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classdba__driver.html#a5afa54172f3c837df61643f8f5b2c975">close</a> ()</td></tr>
+<tr class="memdesc:a5afa54172f3c837df61643f8f5b2c975 inherit pub_methods_classdba__driver"><td class="mdescLeft">&#160;</td><td class="mdescRight">Close the database connection. <a href="#a5afa54172f3c837df61643f8f5b2c975">More...</a><br/></td></tr>
<tr class="separator:a5afa54172f3c837df61643f8f5b2c975 inherit pub_methods_classdba__driver"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a02165fc4bee63d040ebd963a4fa82a14 inherit pub_methods_classdba__driver"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classdba__driver.html#a02165fc4bee63d040ebd963a4fa82a14">getdriver</a> ()</td></tr>
+<tr class="memdesc:a02165fc4bee63d040ebd963a4fa82a14 inherit pub_methods_classdba__driver"><td class="mdescLeft">&#160;</td><td class="mdescRight">Return text name for db driver. <a href="#a02165fc4bee63d040ebd963a4fa82a14">More...</a><br/></td></tr>
+<tr class="separator:a02165fc4bee63d040ebd963a4fa82a14 inherit pub_methods_classdba__driver"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:af3541d13ccb7a3eddfc03e253c746186 inherit pub_methods_classdba__driver"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classdba__driver.html#af3541d13ccb7a3eddfc03e253c746186">__construct</a> ($server, $port, $user, $pass, $db, $<a class="el" href="classdba__driver.html#a4ccb27243e62a8ca30dd8e1b8cc67746">install</a>=false)</td></tr>
<tr class="separator:af3541d13ccb7a3eddfc03e253c746186 inherit pub_methods_classdba__driver"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a65a5c7b355ab5529a43049e160006426 inherit pub_methods_classdba__driver"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classdba__driver.html#a65a5c7b355ab5529a43049e160006426">get_null_date</a> ()</td></tr>
+<tr class="separator:a65a5c7b355ab5529a43049e160006426 inherit pub_methods_classdba__driver"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a8d6a79d39d7eaee5aea4e952c4529d48 inherit pub_methods_classdba__driver"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classdba__driver.html#a8d6a79d39d7eaee5aea4e952c4529d48">get_install_script</a> ()</td></tr>
+<tr class="separator:a8d6a79d39d7eaee5aea4e952c4529d48 inherit pub_methods_classdba__driver"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ad700712879719bee23752b8f424d97d0 inherit pub_methods_classdba__driver"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classdba__driver.html#ad700712879719bee23752b8f424d97d0">utcnow</a> ()</td></tr>
+<tr class="separator:ad700712879719bee23752b8f424d97d0 inherit pub_methods_classdba__driver"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a4ccb27243e62a8ca30dd8e1b8cc67746 inherit pub_methods_classdba__driver"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classdba__driver.html#a4ccb27243e62a8ca30dd8e1b8cc67746">install</a> ($server, $user, $pass, $db)</td></tr>
<tr class="separator:a4ccb27243e62a8ca30dd8e1b8cc67746 inherit pub_methods_classdba__driver"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:adcc1f8955120fec0708bce39202d0422 inherit pub_methods_classdba__driver"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classdba__driver.html#adcc1f8955120fec0708bce39202d0422">dbg</a> ($dbg)</td></tr>
+<tr class="memdesc:adcc1f8955120fec0708bce39202d0422 inherit pub_methods_classdba__driver"><td class="mdescLeft">&#160;</td><td class="mdescRight">Sets the database driver's debugging state. <a href="#adcc1f8955120fec0708bce39202d0422">More...</a><br/></td></tr>
<tr class="separator:adcc1f8955120fec0708bce39202d0422 inherit pub_methods_classdba__driver"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a1a8bc9dc839a6320a0e07d8047a6b721 inherit pub_methods_classdba__driver"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classdba__driver.html#a1a8bc9dc839a6320a0e07d8047a6b721">__destruct</a> ()</td></tr>
<tr class="separator:a1a8bc9dc839a6320a0e07d8047a6b721 inherit pub_methods_classdba__driver"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ac9127e9c55fcc93bcfbb323b9b99b9d9 inherit pub_methods_classdba__driver"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classdba__driver.html#ac9127e9c55fcc93bcfbb323b9b99b9d9">quote_interval</a> ($txt)</td></tr>
+<tr class="separator:ac9127e9c55fcc93bcfbb323b9b99b9d9 inherit pub_methods_classdba__driver"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a77e59dcbeab30ca6000131d2e9ad4092 inherit pub_methods_classdba__driver"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classdba__driver.html#a77e59dcbeab30ca6000131d2e9ad4092">optimize_table</a> ($table)</td></tr>
+<tr class="separator:a77e59dcbeab30ca6000131d2e9ad4092 inherit pub_methods_classdba__driver"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ab9982f38a02f008b127a0f3ccc1e99f4 inherit pub_methods_classdba__driver"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classdba__driver.html#ab9982f38a02f008b127a0f3ccc1e99f4">concat</a> ($fld, $sep)</td></tr>
+<tr class="separator:ab9982f38a02f008b127a0f3ccc1e99f4 inherit pub_methods_classdba__driver"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a7dbe8318587ff1694825042bf58f4fbd inherit pub_methods_classdba__driver"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classdba__driver.html#a7dbe8318587ff1694825042bf58f4fbd">escapebin</a> ($str)</td></tr>
+<tr class="separator:a7dbe8318587ff1694825042bf58f4fbd inherit pub_methods_classdba__driver"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ab43184239e1d6eb00a98319f4a3df155 inherit pub_methods_classdba__driver"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classdba__driver.html#ab43184239e1d6eb00a98319f4a3df155">unescapebin</a> ($str)</td></tr>
+<tr class="separator:ab43184239e1d6eb00a98319f4a3df155 inherit pub_methods_classdba__driver"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table><table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="inherited"></a>
Additional Inherited Members</h2></td></tr>
<tr class="inherit_header pub_attribs_classdba__driver"><td colspan="2" onclick="javascript:toggleInherit('pub_attribs_classdba__driver')"><img src="closed.png" alt="-"/>&#160;Public Attributes inherited from <a class="el" href="classdba__driver.html">dba_driver</a></td></tr>
+<tr class="memitem:a98d8523dcedda316085b4d4f856b6583 inherit pub_attribs_classdba__driver"><td class="memItemLeft" align="right" valign="top">const&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classdba__driver.html#a98d8523dcedda316085b4d4f856b6583">INSTALL_SCRIPT</a> ='<a class="el" href="classdba__driver.html#a4ccb27243e62a8ca30dd8e1b8cc67746">install</a>/schema_mysql.sql'</td></tr>
+<tr class="separator:a98d8523dcedda316085b4d4f856b6583 inherit pub_attribs_classdba__driver"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:afce39394c010ea589d99a21579b2c31e inherit pub_attribs_classdba__driver"><td class="memItemLeft" align="right" valign="top">const&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classdba__driver.html#afce39394c010ea589d99a21579b2c31e">NULL_DATE</a> = '0000-00-00 00:00:00'</td></tr>
+<tr class="separator:afce39394c010ea589d99a21579b2c31e inherit pub_attribs_classdba__driver"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:aa3325d982d4ee5d1114fd7e02a4356e8 inherit pub_attribs_classdba__driver"><td class="memItemLeft" align="right" valign="top">const&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classdba__driver.html#aa3325d982d4ee5d1114fd7e02a4356e8">UTC_NOW</a> = 'UTC_TIMESTAMP()'</td></tr>
+<tr class="separator:aa3325d982d4ee5d1114fd7e02a4356e8 inherit pub_attribs_classdba__driver"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a205f6535e399700b6fca2492f96f2229 inherit pub_attribs_classdba__driver"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classdba__driver.html#a205f6535e399700b6fca2492f96f2229">$connected</a> = false</td></tr>
<tr class="separator:a205f6535e399700b6fca2492f96f2229 inherit pub_attribs_classdba__driver"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a84675d28c7bd9b7290dd37e66dbd216c inherit pub_attribs_classdba__driver"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classdba__driver.html#a84675d28c7bd9b7290dd37e66dbd216c">$error</a> = false</td></tr>
@@ -239,6 +271,21 @@ Additional Inherited Members</h2></td></tr>
</div>
</div>
+<a class="anchor" id="a6eb6c578c6928908321e5e6da866e1db"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">dba_mysqli::getdriver </td>
+ <td>(</td>
+ <td class="paramname"></td><td>)</td>
+ <td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+</div>
+</div>
<a class="anchor" id="a611c4de8d6d7512dffb83a38bb6701ec"></a>
<div class="memitem">
<div class="memproto">
diff --git a/doc/html/classdba__mysqli.js b/doc/html/classdba__mysqli.js
index a5f54698e..ab2d66be7 100644
--- a/doc/html/classdba__mysqli.js
+++ b/doc/html/classdba__mysqli.js
@@ -3,5 +3,6 @@ var classdba__mysqli =
[ "close", "classdba__mysqli.html#acb38f2c851187ad632ecfab30fdfab55", null ],
[ "connect", "classdba__mysqli.html#add062bd93961e5f0194d94820e9a51b1", null ],
[ "escape", "classdba__mysqli.html#a27d6a748af7f80028801306e7ea33f64", null ],
+ [ "getdriver", "classdba__mysqli.html#a6eb6c578c6928908321e5e6da866e1db", null ],
[ "q", "classdba__mysqli.html#a611c4de8d6d7512dffb83a38bb6701ec", null ]
]; \ No newline at end of file
diff --git a/doc/html/classdba__postgres-members.html b/doc/html/classdba__postgres-members.html
new file mode 100644
index 000000000..2796566d5
--- /dev/null
+++ b/doc/html/classdba__postgres-members.html
@@ -0,0 +1,142 @@
+<!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('classdba__postgres.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">dba_postgres Member List</div> </div>
+</div><!--header-->
+<div class="contents">
+
+<p>This is the complete list of members for <a class="el" href="classdba__postgres.html">dba_postgres</a>, including all inherited members.</p>
+<table class="directory">
+ <tr class="even"><td class="entry"><a class="el" href="classdba__driver.html#a205f6535e399700b6fca2492f96f2229">$connected</a></td><td class="entry"><a class="el" href="classdba__driver.html">dba_driver</a></td><td class="entry"></td></tr>
+ <tr><td class="entry"><a class="el" href="classdba__driver.html#a3033b5f1c2716b52202faeaae2592fe6">$db</a></td><td class="entry"><a class="el" href="classdba__driver.html">dba_driver</a></td><td class="entry"><span class="mlabel">protected</span></td></tr>
+ <tr class="even"><td class="entry"><a class="el" href="classdba__driver.html#af48e2afeded5285766bf92e22123ed03">$debug</a></td><td class="entry"><a class="el" href="classdba__driver.html">dba_driver</a></td><td class="entry"><span class="mlabel">protected</span></td></tr>
+ <tr><td class="entry"><a class="el" href="classdba__driver.html#a84675d28c7bd9b7290dd37e66dbd216c">$error</a></td><td class="entry"><a class="el" href="classdba__driver.html">dba_driver</a></td><td class="entry"></td></tr>
+ <tr class="even"><td class="entry"><a class="el" href="classdba__driver.html#af3541d13ccb7a3eddfc03e253c746186">__construct</a>($server, $port, $user, $pass, $db, $install=false)</td><td class="entry"><a class="el" href="classdba__driver.html">dba_driver</a></td><td class="entry"></td></tr>
+ <tr><td class="entry"><a class="el" href="classdba__driver.html#a1a8bc9dc839a6320a0e07d8047a6b721">__destruct</a>()</td><td class="entry"><a class="el" href="classdba__driver.html">dba_driver</a></td><td class="entry"></td></tr>
+ <tr class="even"><td class="entry"><a class="el" href="classdba__postgres.html#a731d8648b41b8a126f6b99bdd5414058">close</a>()</td><td class="entry"><a class="el" href="classdba__postgres.html">dba_postgres</a></td><td class="entry"></td></tr>
+ <tr><td class="entry"><a class="el" href="classdba__postgres.html#a7ea3f24ad260c1e21588f8b5af595caa">concat</a>($fld, $sep)</td><td class="entry"><a class="el" href="classdba__postgres.html">dba_postgres</a></td><td class="entry"></td></tr>
+ <tr class="even"><td class="entry"><a class="el" href="classdba__postgres.html#ab36244320f5b71dba92d9318ccf3f34e">connect</a>($server, $port, $user, $pass, $db)</td><td class="entry"><a class="el" href="classdba__postgres.html">dba_postgres</a></td><td class="entry"></td></tr>
+ <tr><td class="entry"><a class="el" href="classdba__driver.html#adcc1f8955120fec0708bce39202d0422">dbg</a>($dbg)</td><td class="entry"><a class="el" href="classdba__driver.html">dba_driver</a></td><td class="entry"></td></tr>
+ <tr class="even"><td class="entry"><a class="el" href="classdba__postgres.html#a7108eaaae7cc2fb236212041afc9ac0f">escape</a>($str)</td><td class="entry"><a class="el" href="classdba__postgres.html">dba_postgres</a></td><td class="entry"></td></tr>
+ <tr><td class="entry"><a class="el" href="classdba__postgres.html#ab2e44e9f41d05e585afd873d18e8c127">escape_identifier</a>($str)</td><td class="entry"><a class="el" href="classdba__postgres.html">dba_postgres</a></td><td class="entry"></td></tr>
+ <tr class="even"><td class="entry"><a class="el" href="classdba__postgres.html#a8d2c6d8c92fe6f074452876483dd17fc">escapebin</a>($str)</td><td class="entry"><a class="el" href="classdba__postgres.html">dba_postgres</a></td><td class="entry"></td></tr>
+ <tr><td class="entry"><a class="el" href="classdba__driver.html#a8d6a79d39d7eaee5aea4e952c4529d48">get_install_script</a>()</td><td class="entry"><a class="el" href="classdba__driver.html">dba_driver</a></td><td class="entry"></td></tr>
+ <tr class="even"><td class="entry"><a class="el" href="classdba__driver.html#a65a5c7b355ab5529a43049e160006426">get_null_date</a>()</td><td class="entry"><a class="el" href="classdba__driver.html">dba_driver</a></td><td class="entry"></td></tr>
+ <tr><td class="entry"><a class="el" href="classdba__postgres.html#ae0f834413e57cf0735ae7b64b2f71e68">getdriver</a>()</td><td class="entry"><a class="el" href="classdba__postgres.html">dba_postgres</a></td><td class="entry"></td></tr>
+ <tr class="even"><td class="entry"><a class="el" href="classdba__driver.html#a4ccb27243e62a8ca30dd8e1b8cc67746">install</a>($server, $user, $pass, $db)</td><td class="entry"><a class="el" href="classdba__driver.html">dba_driver</a></td><td class="entry"></td></tr>
+ <tr><td class="entry"><a class="el" href="classdba__postgres.html#a7267f91c3f87f600b30d7560de62dfd7">INSTALL_SCRIPT</a></td><td class="entry"><a class="el" href="classdba__postgres.html">dba_postgres</a></td><td class="entry"></td></tr>
+ <tr class="even"><td class="entry"><a class="el" href="classdba__postgres.html#aeb404a85974d6c5df30c21650888000b">NULL_DATE</a></td><td class="entry"><a class="el" href="classdba__postgres.html">dba_postgres</a></td><td class="entry"></td></tr>
+ <tr><td class="entry"><a class="el" href="classdba__postgres.html#a3de1ac375e98886dfc38fd0066e88f90">optimize_table</a>($table)</td><td class="entry"><a class="el" href="classdba__postgres.html">dba_postgres</a></td><td class="entry"></td></tr>
+ <tr class="even"><td class="entry"><a class="el" href="classdba__postgres.html#a70352880231fba0b859f82cd5b290a9a">q</a>($sql)</td><td class="entry"><a class="el" href="classdba__postgres.html">dba_postgres</a></td><td class="entry"></td></tr>
+ <tr><td class="entry"><a class="el" href="classdba__postgres.html#a56f926f218155c88807e0e06f6817a72">quote_interval</a>($txt)</td><td class="entry"><a class="el" href="classdba__postgres.html">dba_postgres</a></td><td class="entry"></td></tr>
+ <tr class="even"><td class="entry"><a class="el" href="classdba__postgres.html#a677f850211975c9ab89602c67e2dcad9">unescapebin</a>($str)</td><td class="entry"><a class="el" href="classdba__postgres.html">dba_postgres</a></td><td class="entry"></td></tr>
+ <tr><td class="entry"><a class="el" href="classdba__postgres.html#ace80a204e34b20b9907650399cce02a3">UTC_NOW</a></td><td class="entry"><a class="el" href="classdba__postgres.html">dba_postgres</a></td><td class="entry"></td></tr>
+ <tr class="even"><td class="entry"><a class="el" href="classdba__driver.html#ad700712879719bee23752b8f424d97d0">utcnow</a>()</td><td class="entry"><a class="el" href="classdba__driver.html">dba_driver</a></td><td class="entry"></td></tr>
+</table></div><!-- contents -->
+</div><!-- doc-content -->
+
diff --git a/doc/html/classdba__postgres.html b/doc/html/classdba__postgres.html
new file mode 100644
index 000000000..c88750564
--- /dev/null
+++ b/doc/html/classdba__postgres.html
@@ -0,0 +1,477 @@
+<!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: dba_postgres 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('classdba__postgres.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="#pub-attribs">Public Attributes</a> &#124;
+<a href="classdba__postgres-members.html">List of all members</a> </div>
+ <div class="headertitle">
+<div class="title">dba_postgres Class Reference</div> </div>
+</div><!--header-->
+<div class="contents">
+<div class="dynheader">
+Inheritance diagram for dba_postgres:</div>
+<div class="dyncontent">
+ <div class="center">
+ <img src="classdba__postgres.png" usemap="#dba_postgres_map" alt=""/>
+ <map id="dba_postgres_map" name="dba_postgres_map">
+<area href="classdba__driver.html" title="abstract database driver class." alt="dba_driver" shape="rect" coords="0,0,88,24"/>
+</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:ab36244320f5b71dba92d9318ccf3f34e"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classdba__postgres.html#ab36244320f5b71dba92d9318ccf3f34e">connect</a> ($server, $port, $user, $pass, $db)</td></tr>
+<tr class="separator:ab36244320f5b71dba92d9318ccf3f34e"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a70352880231fba0b859f82cd5b290a9a"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classdba__postgres.html#a70352880231fba0b859f82cd5b290a9a">q</a> ($sql)</td></tr>
+<tr class="separator:a70352880231fba0b859f82cd5b290a9a"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a7108eaaae7cc2fb236212041afc9ac0f"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classdba__postgres.html#a7108eaaae7cc2fb236212041afc9ac0f">escape</a> ($str)</td></tr>
+<tr class="separator:a7108eaaae7cc2fb236212041afc9ac0f"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a8d2c6d8c92fe6f074452876483dd17fc"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classdba__postgres.html#a8d2c6d8c92fe6f074452876483dd17fc">escapebin</a> ($str)</td></tr>
+<tr class="separator:a8d2c6d8c92fe6f074452876483dd17fc"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a677f850211975c9ab89602c67e2dcad9"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classdba__postgres.html#a677f850211975c9ab89602c67e2dcad9">unescapebin</a> ($str)</td></tr>
+<tr class="separator:a677f850211975c9ab89602c67e2dcad9"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a731d8648b41b8a126f6b99bdd5414058"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classdba__postgres.html#a731d8648b41b8a126f6b99bdd5414058">close</a> ()</td></tr>
+<tr class="separator:a731d8648b41b8a126f6b99bdd5414058"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a56f926f218155c88807e0e06f6817a72"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classdba__postgres.html#a56f926f218155c88807e0e06f6817a72">quote_interval</a> ($txt)</td></tr>
+<tr class="separator:a56f926f218155c88807e0e06f6817a72"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ab2e44e9f41d05e585afd873d18e8c127"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classdba__postgres.html#ab2e44e9f41d05e585afd873d18e8c127">escape_identifier</a> ($str)</td></tr>
+<tr class="separator:ab2e44e9f41d05e585afd873d18e8c127"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a3de1ac375e98886dfc38fd0066e88f90"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classdba__postgres.html#a3de1ac375e98886dfc38fd0066e88f90">optimize_table</a> ($table)</td></tr>
+<tr class="separator:a3de1ac375e98886dfc38fd0066e88f90"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a7ea3f24ad260c1e21588f8b5af595caa"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classdba__postgres.html#a7ea3f24ad260c1e21588f8b5af595caa">concat</a> ($fld, $sep)</td></tr>
+<tr class="separator:a7ea3f24ad260c1e21588f8b5af595caa"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ae0f834413e57cf0735ae7b64b2f71e68"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classdba__postgres.html#ae0f834413e57cf0735ae7b64b2f71e68">getdriver</a> ()</td></tr>
+<tr class="separator:ae0f834413e57cf0735ae7b64b2f71e68"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="inherit_header pub_methods_classdba__driver"><td colspan="2" onclick="javascript:toggleInherit('pub_methods_classdba__driver')"><img src="closed.png" alt="-"/>&#160;Public Member Functions inherited from <a class="el" href="classdba__driver.html">dba_driver</a></td></tr>
+<tr class="memitem:ae533e62a240a793f17aef5ab4ef10edc inherit pub_methods_classdba__driver"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classdba__driver.html#ae533e62a240a793f17aef5ab4ef10edc">connect</a> ($server, $port, $user, $pass, $db)</td></tr>
+<tr class="memdesc:ae533e62a240a793f17aef5ab4ef10edc inherit pub_methods_classdba__driver"><td class="mdescLeft">&#160;</td><td class="mdescRight">Connect to the database. <a href="#ae533e62a240a793f17aef5ab4ef10edc">More...</a><br/></td></tr>
+<tr class="separator:ae533e62a240a793f17aef5ab4ef10edc inherit pub_methods_classdba__driver"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a558e738b88ae893cc5d79ffa3793d555 inherit pub_methods_classdba__driver"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classdba__driver.html#a558e738b88ae893cc5d79ffa3793d555">q</a> ($sql)</td></tr>
+<tr class="memdesc:a558e738b88ae893cc5d79ffa3793d555 inherit pub_methods_classdba__driver"><td class="mdescLeft">&#160;</td><td class="mdescRight">Perform a DB query with the SQL statement $sql. <a href="#a558e738b88ae893cc5d79ffa3793d555">More...</a><br/></td></tr>
+<tr class="separator:a558e738b88ae893cc5d79ffa3793d555 inherit pub_methods_classdba__driver"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:afc95ffa103a3290581b537670cde5311 inherit pub_methods_classdba__driver"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classdba__driver.html#afc95ffa103a3290581b537670cde5311">escape</a> ($str)</td></tr>
+<tr class="memdesc:afc95ffa103a3290581b537670cde5311 inherit pub_methods_classdba__driver"><td class="mdescLeft">&#160;</td><td class="mdescRight">Escape a string before being passed to a DB query. <a href="#afc95ffa103a3290581b537670cde5311">More...</a><br/></td></tr>
+<tr class="separator:afc95ffa103a3290581b537670cde5311 inherit pub_methods_classdba__driver"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a5afa54172f3c837df61643f8f5b2c975 inherit pub_methods_classdba__driver"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classdba__driver.html#a5afa54172f3c837df61643f8f5b2c975">close</a> ()</td></tr>
+<tr class="memdesc:a5afa54172f3c837df61643f8f5b2c975 inherit pub_methods_classdba__driver"><td class="mdescLeft">&#160;</td><td class="mdescRight">Close the database connection. <a href="#a5afa54172f3c837df61643f8f5b2c975">More...</a><br/></td></tr>
+<tr class="separator:a5afa54172f3c837df61643f8f5b2c975 inherit pub_methods_classdba__driver"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a02165fc4bee63d040ebd963a4fa82a14 inherit pub_methods_classdba__driver"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classdba__driver.html#a02165fc4bee63d040ebd963a4fa82a14">getdriver</a> ()</td></tr>
+<tr class="memdesc:a02165fc4bee63d040ebd963a4fa82a14 inherit pub_methods_classdba__driver"><td class="mdescLeft">&#160;</td><td class="mdescRight">Return text name for db driver. <a href="#a02165fc4bee63d040ebd963a4fa82a14">More...</a><br/></td></tr>
+<tr class="separator:a02165fc4bee63d040ebd963a4fa82a14 inherit pub_methods_classdba__driver"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:af3541d13ccb7a3eddfc03e253c746186 inherit pub_methods_classdba__driver"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classdba__driver.html#af3541d13ccb7a3eddfc03e253c746186">__construct</a> ($server, $port, $user, $pass, $db, $<a class="el" href="classdba__driver.html#a4ccb27243e62a8ca30dd8e1b8cc67746">install</a>=false)</td></tr>
+<tr class="separator:af3541d13ccb7a3eddfc03e253c746186 inherit pub_methods_classdba__driver"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a65a5c7b355ab5529a43049e160006426 inherit pub_methods_classdba__driver"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classdba__driver.html#a65a5c7b355ab5529a43049e160006426">get_null_date</a> ()</td></tr>
+<tr class="separator:a65a5c7b355ab5529a43049e160006426 inherit pub_methods_classdba__driver"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a8d6a79d39d7eaee5aea4e952c4529d48 inherit pub_methods_classdba__driver"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classdba__driver.html#a8d6a79d39d7eaee5aea4e952c4529d48">get_install_script</a> ()</td></tr>
+<tr class="separator:a8d6a79d39d7eaee5aea4e952c4529d48 inherit pub_methods_classdba__driver"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ad700712879719bee23752b8f424d97d0 inherit pub_methods_classdba__driver"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classdba__driver.html#ad700712879719bee23752b8f424d97d0">utcnow</a> ()</td></tr>
+<tr class="separator:ad700712879719bee23752b8f424d97d0 inherit pub_methods_classdba__driver"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a4ccb27243e62a8ca30dd8e1b8cc67746 inherit pub_methods_classdba__driver"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classdba__driver.html#a4ccb27243e62a8ca30dd8e1b8cc67746">install</a> ($server, $user, $pass, $db)</td></tr>
+<tr class="separator:a4ccb27243e62a8ca30dd8e1b8cc67746 inherit pub_methods_classdba__driver"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:adcc1f8955120fec0708bce39202d0422 inherit pub_methods_classdba__driver"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classdba__driver.html#adcc1f8955120fec0708bce39202d0422">dbg</a> ($dbg)</td></tr>
+<tr class="memdesc:adcc1f8955120fec0708bce39202d0422 inherit pub_methods_classdba__driver"><td class="mdescLeft">&#160;</td><td class="mdescRight">Sets the database driver's debugging state. <a href="#adcc1f8955120fec0708bce39202d0422">More...</a><br/></td></tr>
+<tr class="separator:adcc1f8955120fec0708bce39202d0422 inherit pub_methods_classdba__driver"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a1a8bc9dc839a6320a0e07d8047a6b721 inherit pub_methods_classdba__driver"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classdba__driver.html#a1a8bc9dc839a6320a0e07d8047a6b721">__destruct</a> ()</td></tr>
+<tr class="separator:a1a8bc9dc839a6320a0e07d8047a6b721 inherit pub_methods_classdba__driver"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ac9127e9c55fcc93bcfbb323b9b99b9d9 inherit pub_methods_classdba__driver"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classdba__driver.html#ac9127e9c55fcc93bcfbb323b9b99b9d9">quote_interval</a> ($txt)</td></tr>
+<tr class="separator:ac9127e9c55fcc93bcfbb323b9b99b9d9 inherit pub_methods_classdba__driver"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a77e59dcbeab30ca6000131d2e9ad4092 inherit pub_methods_classdba__driver"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classdba__driver.html#a77e59dcbeab30ca6000131d2e9ad4092">optimize_table</a> ($table)</td></tr>
+<tr class="separator:a77e59dcbeab30ca6000131d2e9ad4092 inherit pub_methods_classdba__driver"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ab9982f38a02f008b127a0f3ccc1e99f4 inherit pub_methods_classdba__driver"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classdba__driver.html#ab9982f38a02f008b127a0f3ccc1e99f4">concat</a> ($fld, $sep)</td></tr>
+<tr class="separator:ab9982f38a02f008b127a0f3ccc1e99f4 inherit pub_methods_classdba__driver"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a7dbe8318587ff1694825042bf58f4fbd inherit pub_methods_classdba__driver"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classdba__driver.html#a7dbe8318587ff1694825042bf58f4fbd">escapebin</a> ($str)</td></tr>
+<tr class="separator:a7dbe8318587ff1694825042bf58f4fbd inherit pub_methods_classdba__driver"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ab43184239e1d6eb00a98319f4a3df155 inherit pub_methods_classdba__driver"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classdba__driver.html#ab43184239e1d6eb00a98319f4a3df155">unescapebin</a> ($str)</td></tr>
+<tr class="separator:ab43184239e1d6eb00a98319f4a3df155 inherit pub_methods_classdba__driver"><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:a7267f91c3f87f600b30d7560de62dfd7"><td class="memItemLeft" align="right" valign="top">const&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classdba__postgres.html#a7267f91c3f87f600b30d7560de62dfd7">INSTALL_SCRIPT</a> ='<a class="el" href="classdba__driver.html#a4ccb27243e62a8ca30dd8e1b8cc67746">install</a>/schema_postgres.sql'</td></tr>
+<tr class="separator:a7267f91c3f87f600b30d7560de62dfd7"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:aeb404a85974d6c5df30c21650888000b"><td class="memItemLeft" align="right" valign="top">const&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classdba__postgres.html#aeb404a85974d6c5df30c21650888000b">NULL_DATE</a> = '0001-01-01 00:00:00'</td></tr>
+<tr class="separator:aeb404a85974d6c5df30c21650888000b"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ace80a204e34b20b9907650399cce02a3"><td class="memItemLeft" align="right" valign="top">const&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classdba__postgres.html#ace80a204e34b20b9907650399cce02a3">UTC_NOW</a> = &quot;now() at time zone 'UTC'&quot;</td></tr>
+<tr class="separator:ace80a204e34b20b9907650399cce02a3"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="inherit_header pub_attribs_classdba__driver"><td colspan="2" onclick="javascript:toggleInherit('pub_attribs_classdba__driver')"><img src="closed.png" alt="-"/>&#160;Public Attributes inherited from <a class="el" href="classdba__driver.html">dba_driver</a></td></tr>
+<tr class="memitem:a98d8523dcedda316085b4d4f856b6583 inherit pub_attribs_classdba__driver"><td class="memItemLeft" align="right" valign="top">const&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classdba__driver.html#a98d8523dcedda316085b4d4f856b6583">INSTALL_SCRIPT</a> ='<a class="el" href="classdba__driver.html#a4ccb27243e62a8ca30dd8e1b8cc67746">install</a>/schema_mysql.sql'</td></tr>
+<tr class="separator:a98d8523dcedda316085b4d4f856b6583 inherit pub_attribs_classdba__driver"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:afce39394c010ea589d99a21579b2c31e inherit pub_attribs_classdba__driver"><td class="memItemLeft" align="right" valign="top">const&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classdba__driver.html#afce39394c010ea589d99a21579b2c31e">NULL_DATE</a> = '0000-00-00 00:00:00'</td></tr>
+<tr class="separator:afce39394c010ea589d99a21579b2c31e inherit pub_attribs_classdba__driver"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:aa3325d982d4ee5d1114fd7e02a4356e8 inherit pub_attribs_classdba__driver"><td class="memItemLeft" align="right" valign="top">const&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classdba__driver.html#aa3325d982d4ee5d1114fd7e02a4356e8">UTC_NOW</a> = 'UTC_TIMESTAMP()'</td></tr>
+<tr class="separator:aa3325d982d4ee5d1114fd7e02a4356e8 inherit pub_attribs_classdba__driver"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a205f6535e399700b6fca2492f96f2229 inherit pub_attribs_classdba__driver"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classdba__driver.html#a205f6535e399700b6fca2492f96f2229">$connected</a> = false</td></tr>
+<tr class="separator:a205f6535e399700b6fca2492f96f2229 inherit pub_attribs_classdba__driver"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a84675d28c7bd9b7290dd37e66dbd216c inherit pub_attribs_classdba__driver"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classdba__driver.html#a84675d28c7bd9b7290dd37e66dbd216c">$error</a> = false</td></tr>
+<tr class="separator:a84675d28c7bd9b7290dd37e66dbd216c inherit pub_attribs_classdba__driver"><td class="memSeparator" colspan="2">&#160;</td></tr>
+</table><table class="memberdecls">
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="inherited"></a>
+Additional Inherited Members</h2></td></tr>
+<tr class="inherit_header pro_attribs_classdba__driver"><td colspan="2" onclick="javascript:toggleInherit('pro_attribs_classdba__driver')"><img src="closed.png" alt="-"/>&#160;Protected Attributes inherited from <a class="el" href="classdba__driver.html">dba_driver</a></td></tr>
+<tr class="memitem:af48e2afeded5285766bf92e22123ed03 inherit pro_attribs_classdba__driver"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classdba__driver.html#af48e2afeded5285766bf92e22123ed03">$debug</a> = 0</td></tr>
+<tr class="separator:af48e2afeded5285766bf92e22123ed03 inherit pro_attribs_classdba__driver"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a3033b5f1c2716b52202faeaae2592fe6 inherit pro_attribs_classdba__driver"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classdba__driver.html#a3033b5f1c2716b52202faeaae2592fe6">$db</a></td></tr>
+<tr class="separator:a3033b5f1c2716b52202faeaae2592fe6 inherit pro_attribs_classdba__driver"><td class="memSeparator" colspan="2">&#160;</td></tr>
+</table>
+<h2 class="groupheader">Member Function Documentation</h2>
+<a class="anchor" id="a731d8648b41b8a126f6b99bdd5414058"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">dba_postgres::close </td>
+ <td>(</td>
+ <td class="paramname"></td><td>)</td>
+ <td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+</div>
+</div>
+<a class="anchor" id="a7ea3f24ad260c1e21588f8b5af595caa"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">dba_postgres::concat </td>
+ <td>(</td>
+ <td class="paramtype">&#160;</td>
+ <td class="paramname"><em>$fld</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">&#160;</td>
+ <td class="paramname"><em>$sep</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="ab36244320f5b71dba92d9318ccf3f34e"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">dba_postgres::connect </td>
+ <td>(</td>
+ <td class="paramtype">&#160;</td>
+ <td class="paramname"><em>$server</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">&#160;</td>
+ <td class="paramname"><em>$port</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">&#160;</td>
+ <td class="paramname"><em>$user</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">&#160;</td>
+ <td class="paramname"><em>$pass</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">&#160;</td>
+ <td class="paramname"><em>$db</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="a7108eaaae7cc2fb236212041afc9ac0f"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">dba_postgres::escape </td>
+ <td>(</td>
+ <td class="paramtype">&#160;</td>
+ <td class="paramname"><em>$str</em></td><td>)</td>
+ <td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+</div>
+</div>
+<a class="anchor" id="ab2e44e9f41d05e585afd873d18e8c127"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">dba_postgres::escape_identifier </td>
+ <td>(</td>
+ <td class="paramtype">&#160;</td>
+ <td class="paramname"><em>$str</em></td><td>)</td>
+ <td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+</div>
+</div>
+<a class="anchor" id="a8d2c6d8c92fe6f074452876483dd17fc"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">dba_postgres::escapebin </td>
+ <td>(</td>
+ <td class="paramtype">&#160;</td>
+ <td class="paramname"><em>$str</em></td><td>)</td>
+ <td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+</div>
+</div>
+<a class="anchor" id="ae0f834413e57cf0735ae7b64b2f71e68"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">dba_postgres::getdriver </td>
+ <td>(</td>
+ <td class="paramname"></td><td>)</td>
+ <td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+</div>
+</div>
+<a class="anchor" id="a3de1ac375e98886dfc38fd0066e88f90"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">dba_postgres::optimize_table </td>
+ <td>(</td>
+ <td class="paramtype">&#160;</td>
+ <td class="paramname"><em>$table</em></td><td>)</td>
+ <td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+</div>
+</div>
+<a class="anchor" id="a70352880231fba0b859f82cd5b290a9a"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">dba_postgres::q </td>
+ <td>(</td>
+ <td class="paramtype">&#160;</td>
+ <td class="paramname"><em>$sql</em></td><td>)</td>
+ <td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Referenced by <a class="el" href="classdba__postgres.html#ab36244320f5b71dba92d9318ccf3f34e">connect()</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="a56f926f218155c88807e0e06f6817a72"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">dba_postgres::quote_interval </td>
+ <td>(</td>
+ <td class="paramtype">&#160;</td>
+ <td class="paramname"><em>$txt</em></td><td>)</td>
+ <td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+</div>
+</div>
+<a class="anchor" id="a677f850211975c9ab89602c67e2dcad9"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">dba_postgres::unescapebin </td>
+ <td>(</td>
+ <td class="paramtype">&#160;</td>
+ <td class="paramname"><em>$str</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="a7267f91c3f87f600b30d7560de62dfd7"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">const dba_postgres::INSTALL_SCRIPT ='<a class="el" href="classdba__driver.html#a4ccb27243e62a8ca30dd8e1b8cc67746">install</a>/schema_postgres.sql'</td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+</div>
+</div>
+<a class="anchor" id="aeb404a85974d6c5df30c21650888000b"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">const dba_postgres::NULL_DATE = '0001-01-01 00:00:00'</td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+</div>
+</div>
+<a class="anchor" id="ace80a204e34b20b9907650399cce02a3"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">const dba_postgres::UTC_NOW = &quot;now() at time zone 'UTC'&quot;</td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+</div>
+</div>
+<hr/>The documentation for this class was generated from the following file:<ul>
+<li>include/dba/<a class="el" href="dba__postgres_8php.html">dba_postgres.php</a></li>
+</ul>
+</div><!-- contents -->
+</div><!-- doc-content -->
+
diff --git a/doc/html/classdba__postgres.js b/doc/html/classdba__postgres.js
new file mode 100644
index 000000000..64f18d9d9
--- /dev/null
+++ b/doc/html/classdba__postgres.js
@@ -0,0 +1,17 @@
+var classdba__postgres =
+[
+ [ "close", "classdba__postgres.html#a731d8648b41b8a126f6b99bdd5414058", null ],
+ [ "concat", "classdba__postgres.html#a7ea3f24ad260c1e21588f8b5af595caa", null ],
+ [ "connect", "classdba__postgres.html#ab36244320f5b71dba92d9318ccf3f34e", null ],
+ [ "escape", "classdba__postgres.html#a7108eaaae7cc2fb236212041afc9ac0f", null ],
+ [ "escape_identifier", "classdba__postgres.html#ab2e44e9f41d05e585afd873d18e8c127", null ],
+ [ "escapebin", "classdba__postgres.html#a8d2c6d8c92fe6f074452876483dd17fc", null ],
+ [ "getdriver", "classdba__postgres.html#ae0f834413e57cf0735ae7b64b2f71e68", null ],
+ [ "optimize_table", "classdba__postgres.html#a3de1ac375e98886dfc38fd0066e88f90", null ],
+ [ "q", "classdba__postgres.html#a70352880231fba0b859f82cd5b290a9a", null ],
+ [ "quote_interval", "classdba__postgres.html#a56f926f218155c88807e0e06f6817a72", null ],
+ [ "unescapebin", "classdba__postgres.html#a677f850211975c9ab89602c67e2dcad9", null ],
+ [ "INSTALL_SCRIPT", "classdba__postgres.html#a7267f91c3f87f600b30d7560de62dfd7", null ],
+ [ "NULL_DATE", "classdba__postgres.html#aeb404a85974d6c5df30c21650888000b", null ],
+ [ "UTC_NOW", "classdba__postgres.html#ace80a204e34b20b9907650399cce02a3", null ]
+]; \ No newline at end of file
diff --git a/doc/html/classdba__postgres.png b/doc/html/classdba__postgres.png
new file mode 100644
index 000000000..b57f604c4
--- /dev/null
+++ b/doc/html/classdba__postgres.png
Binary files differ
diff --git a/doc/html/classes.html b/doc/html/classes.html
index 4125fa1dd..62aa19187 100644
--- a/doc/html/classes.html
+++ b/doc/html/classes.html
@@ -122,18 +122,18 @@ $(document).ready(function(){initNavTree('classes.html','');});
</td><td rowspan="2" valign="bottom"><a name="letter_R"></a><table border="0" cellspacing="0" cellpadding="0"><tr><td><div class="ah">&#160;&#160;R&#160;&#160;</div></td></tr></table>
</td><td></td></tr>
<tr><td valign="top"><a class="el" href="classdba__mysqli.html">dba_mysqli</a>&#160;&#160;&#160;</td><td></td></tr>
-<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 valign="top"><a class="el" href="classBaseObject.html">BaseObject</a>&#160;&#160;&#160;</td><td valign="top"><a class="el" href="classdba__postgres.html">dba_postgres</a>&#160;&#160;&#160;</td><td valign="top"><a class="el" href="classRedMatrix_1_1Import_1_1Import.html">Import</a> (<a class="el" href="namespaceRedMatrix_1_1Import.html">RedMatrix\Import</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="classRedMatrix_1_1RedDAV_1_1RedBasicAuth.html">RedBasicAuth</a> (<a class="el" href="namespaceRedMatrix_1_1RedDAV.html">RedMatrix\RedDAV</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="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="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="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 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="classRedMatrix_1_1RedDAV_1_1RedBrowser.html">RedBrowser</a> (<a class="el" href="namespaceRedMatrix_1_1RedDAV.html">RedMatrix\RedDAV</a>)&#160;&#160;&#160;</td><td></td></tr>
+<tr><td valign="top"><a class="el" href="interfaceITemplateEngine.html">ITemplateEngine</a>&#160;&#160;&#160;</td><td valign="top"><a class="el" href="classRedMatrix_1_1RedDAV_1_1RedDirectory.html">RedDirectory</a> (<a class="el" href="namespaceRedMatrix_1_1RedDAV.html">RedMatrix\RedDAV</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 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="classRedMatrix_1_1RedDAV_1_1RedFile.html">RedFile</a> (<a class="el" href="namespaceRedMatrix_1_1RedDAV.html">RedMatrix\RedDAV</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 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 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>
-<tr><td></td><td></td><td></td><td valign="top"><a class="el" href="classTemplate.html">Template</a>&#160;&#160;&#160;</td><td></td></tr>
+<tr><td></td><td valign="top"><a class="el" href="classphoto__driver.html">photo_driver</a>&#160;&#160;&#160;</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 valign="top"><a class="el" href="classTemplate.html">Template</a>&#160;&#160;&#160;</td><td></td></tr>
<tr><td></td><td></td><td></td><td></td><td></td></tr>
</table>
<div class="qindex"><a class="qindex" href="#letter_A">A</a>&#160;|&#160;<a class="qindex" href="#letter_B">B</a>&#160;|&#160;<a class="qindex" href="#letter_C">C</a>&#160;|&#160;<a class="qindex" href="#letter_D">D</a>&#160;|&#160;<a class="qindex" href="#letter_E">E</a>&#160;|&#160;<a class="qindex" href="#letter_F">F</a>&#160;|&#160;<a class="qindex" href="#letter_I">I</a>&#160;|&#160;<a class="qindex" href="#letter_P">P</a>&#160;|&#160;<a class="qindex" href="#letter_R">R</a>&#160;|&#160;<a class="qindex" href="#letter_T">T</a>&#160;|&#160;<a class="qindex" href="#letter_Z">Z</a></div>
diff --git a/doc/html/classphoto__driver.html b/doc/html/classphoto__driver.html
index 8a8ed59ff..f6c922574 100644
--- a/doc/html/classphoto__driver.html
+++ b/doc/html/classphoto__driver.html
@@ -142,7 +142,7 @@ Public Member Functions</h2></td></tr>
<tr class="separator:a2f2b6337cf9aa0688d10b422123f0eec"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a2b2a99021fc63ed6465d703ddddcb832"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classphoto__driver.html#a2b2a99021fc63ed6465d703ddddcb832">flip</a> ($horiz=true, $vert=false)</td></tr>
<tr class="separator:a2b2a99021fc63ed6465d703ddddcb832"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:a2e6e61f1e356a90bc978f4404a77137e"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classphoto__driver.html#a2e6e61f1e356a90bc978f4404a77137e">cropImage</a> ($max, $<a class="el" href="boot_8php.html#a01353c9abebc3544ea080ac161729632">x</a>, $y, $w, $h)</td></tr>
+<tr class="memitem:a2e6e61f1e356a90bc978f4404a77137e"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classphoto__driver.html#a2e6e61f1e356a90bc978f4404a77137e">cropImage</a> ($max, $<a class="el" href="boot_8php.html#ae97836b0547953be182a2334c9c91d3c">x</a>, $y, $w, $h)</td></tr>
<tr class="separator:a2e6e61f1e356a90bc978f4404a77137e"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:abc9f73ad90923772d52b9fcc4eb117dd"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classphoto__driver.html#abc9f73ad90923772d52b9fcc4eb117dd">imageString</a> ()</td></tr>
<tr class="separator:abc9f73ad90923772d52b9fcc4eb117dd"><td class="memSeparator" colspan="2">&#160;</td></tr>
diff --git a/doc/html/classphoto__gd.html b/doc/html/classphoto__gd.html
index f6d76b31c..53d819bfb 100644
--- a/doc/html/classphoto__gd.html
+++ b/doc/html/classphoto__gd.html
@@ -140,7 +140,7 @@ Public Member Functions</h2></td></tr>
<tr class="separator:a77f87730b11093b76980c541159df37d"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a44cedef376044018702d9355ddc813ce"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classphoto__gd.html#a44cedef376044018702d9355ddc813ce">flip</a> ($horiz=true, $vert=false)</td></tr>
<tr class="separator:a44cedef376044018702d9355ddc813ce"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:ab2232d775c8bacf66773a03308105f0c"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classphoto__gd.html#ab2232d775c8bacf66773a03308105f0c">cropImage</a> ($max, $<a class="el" href="boot_8php.html#a01353c9abebc3544ea080ac161729632">x</a>, $y, $w, $h)</td></tr>
+<tr class="memitem:ab2232d775c8bacf66773a03308105f0c"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classphoto__gd.html#ab2232d775c8bacf66773a03308105f0c">cropImage</a> ($max, $<a class="el" href="boot_8php.html#ae97836b0547953be182a2334c9c91d3c">x</a>, $y, $w, $h)</td></tr>
<tr class="separator:ab2232d775c8bacf66773a03308105f0c"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a0795fc029be382557ae3f6e285f40e00"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classphoto__gd.html#a0795fc029be382557ae3f6e285f40e00">imageString</a> ()</td></tr>
<tr class="separator:a0795fc029be382557ae3f6e285f40e00"><td class="memSeparator" colspan="2">&#160;</td></tr>
@@ -161,7 +161,7 @@ Public Member Functions</h2></td></tr>
<tr class="separator:a2f2b6337cf9aa0688d10b422123f0eec inherit pub_methods_classphoto__driver"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a2b2a99021fc63ed6465d703ddddcb832 inherit pub_methods_classphoto__driver"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classphoto__driver.html#a2b2a99021fc63ed6465d703ddddcb832">flip</a> ($horiz=true, $vert=false)</td></tr>
<tr class="separator:a2b2a99021fc63ed6465d703ddddcb832 inherit pub_methods_classphoto__driver"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:a2e6e61f1e356a90bc978f4404a77137e inherit pub_methods_classphoto__driver"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classphoto__driver.html#a2e6e61f1e356a90bc978f4404a77137e">cropImage</a> ($max, $<a class="el" href="boot_8php.html#a01353c9abebc3544ea080ac161729632">x</a>, $y, $w, $h)</td></tr>
+<tr class="memitem:a2e6e61f1e356a90bc978f4404a77137e inherit pub_methods_classphoto__driver"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classphoto__driver.html#a2e6e61f1e356a90bc978f4404a77137e">cropImage</a> ($max, $<a class="el" href="boot_8php.html#ae97836b0547953be182a2334c9c91d3c">x</a>, $y, $w, $h)</td></tr>
<tr class="separator:a2e6e61f1e356a90bc978f4404a77137e inherit pub_methods_classphoto__driver"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:abc9f73ad90923772d52b9fcc4eb117dd inherit pub_methods_classphoto__driver"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classphoto__driver.html#abc9f73ad90923772d52b9fcc4eb117dd">imageString</a> ()</td></tr>
<tr class="separator:abc9f73ad90923772d52b9fcc4eb117dd inherit pub_methods_classphoto__driver"><td class="memSeparator" colspan="2">&#160;</td></tr>
diff --git a/doc/html/classphoto__imagick.html b/doc/html/classphoto__imagick.html
index 8b6f1c630..bc6554cd0 100644
--- a/doc/html/classphoto__imagick.html
+++ b/doc/html/classphoto__imagick.html
@@ -142,7 +142,7 @@ Public Member Functions</h2></td></tr>
<tr class="separator:a9df5738a4a18e76dd304c440e96f045f"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:aff6bcdbab18593a3fc5a480db8509393"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classphoto__imagick.html#aff6bcdbab18593a3fc5a480db8509393">flip</a> ($horiz=true, $vert=false)</td></tr>
<tr class="separator:aff6bcdbab18593a3fc5a480db8509393"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:a2f33a03a89497a2b2768e29736d4a8a4"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classphoto__imagick.html#a2f33a03a89497a2b2768e29736d4a8a4">cropImage</a> ($max, $<a class="el" href="boot_8php.html#a01353c9abebc3544ea080ac161729632">x</a>, $y, $w, $h)</td></tr>
+<tr class="memitem:a2f33a03a89497a2b2768e29736d4a8a4"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classphoto__imagick.html#a2f33a03a89497a2b2768e29736d4a8a4">cropImage</a> ($max, $<a class="el" href="boot_8php.html#ae97836b0547953be182a2334c9c91d3c">x</a>, $y, $w, $h)</td></tr>
<tr class="separator:a2f33a03a89497a2b2768e29736d4a8a4"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a70adbef31128c0ac8cbc5dcf34cdb019"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classphoto__imagick.html#a70adbef31128c0ac8cbc5dcf34cdb019">imageString</a> ()</td></tr>
<tr class="separator:a70adbef31128c0ac8cbc5dcf34cdb019"><td class="memSeparator" colspan="2">&#160;</td></tr>
@@ -163,7 +163,7 @@ Public Member Functions</h2></td></tr>
<tr class="separator:a2f2b6337cf9aa0688d10b422123f0eec inherit pub_methods_classphoto__driver"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a2b2a99021fc63ed6465d703ddddcb832 inherit pub_methods_classphoto__driver"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classphoto__driver.html#a2b2a99021fc63ed6465d703ddddcb832">flip</a> ($horiz=true, $vert=false)</td></tr>
<tr class="separator:a2b2a99021fc63ed6465d703ddddcb832 inherit pub_methods_classphoto__driver"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:a2e6e61f1e356a90bc978f4404a77137e inherit pub_methods_classphoto__driver"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classphoto__driver.html#a2e6e61f1e356a90bc978f4404a77137e">cropImage</a> ($max, $<a class="el" href="boot_8php.html#a01353c9abebc3544ea080ac161729632">x</a>, $y, $w, $h)</td></tr>
+<tr class="memitem:a2e6e61f1e356a90bc978f4404a77137e inherit pub_methods_classphoto__driver"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classphoto__driver.html#a2e6e61f1e356a90bc978f4404a77137e">cropImage</a> ($max, $<a class="el" href="boot_8php.html#ae97836b0547953be182a2334c9c91d3c">x</a>, $y, $w, $h)</td></tr>
<tr class="separator:a2e6e61f1e356a90bc978f4404a77137e inherit pub_methods_classphoto__driver"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:abc9f73ad90923772d52b9fcc4eb117dd inherit pub_methods_classphoto__driver"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classphoto__driver.html#abc9f73ad90923772d52b9fcc4eb117dd">imageString</a> ()</td></tr>
<tr class="separator:abc9f73ad90923772d52b9fcc4eb117dd inherit pub_methods_classphoto__driver"><td class="memSeparator" colspan="2">&#160;</td></tr>
diff --git a/doc/html/cloud_8php.html b/doc/html/cloud_8php.html
index 33b1a3d56..c8a127ea6 100644
--- a/doc/html/cloud_8php.html
+++ b/doc/html/cloud_8php.html
@@ -110,25 +110,27 @@ $(document).ready(function(){initNavTree('cloud_8php.html','');});
</div><!--header-->
<div class="contents">
-<p>Initialize Red Matrix's cloud (SabreDAV)
+<p>Initialize <a class="el" href="namespaceRedMatrix.html" title="Class Import.">RedMatrix</a>'s cloud (SabreDAV).
<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:a1b79a6fe0454bc76673ad9aef55bf02d"><td class="memItemLeft" align="right" valign="top"><a class="el" href="theme_2mytheme_2php_2default_8php.html#a3987f5547ceb7e36a210a66a06241a5a">if</a>(<a class="el" href="boot_8php.html#a01353c9abebc3544ea080ac161729632">x</a>($_SERVER,'REDIRECT_REMOTE_USER')) <br class="typebreak"/>
-<a class="el" href="theme_2mytheme_2php_2default_8php.html#a3987f5547ceb7e36a210a66a06241a5a">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="memdesc:a1b79a6fe0454bc76673ad9aef55bf02d"><td class="mdescLeft">&#160;</td><td class="mdescRight">Fires up the SabreDAV server. <a href="#a1b79a6fe0454bc76673ad9aef55bf02d">More...</a><br/></td></tr>
-<tr class="separator:a1b79a6fe0454bc76673ad9aef55bf02d"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ad2e96e917852f27dedfc263d37e13756"><td class="memItemLeft" align="right" valign="top"><a class="el" href="theme_2mytheme_2php_2default_8php.html#a3987f5547ceb7e36a210a66a06241a5a">if</a>(<a class="el" href="boot_8php.html#ae97836b0547953be182a2334c9c91d3c">x</a>($_SERVER, <br class="typebreak"/>
+'REDIRECT_REMOTE_USER')) <a class="el" href="theme_2mytheme_2php_2default_8php.html#a3987f5547ceb7e36a210a66a06241a5a">if</a>(<a class="el" href="boot_8php.html#ae97836b0547953be182a2334c9c91d3c">x</a>($_SERVER, <br class="typebreak"/>
+'HTTP_AUTHORIZATION'))&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="cloud_8php.html#ad2e96e917852f27dedfc263d37e13756">cloud_init</a> (&amp;$a)</td></tr>
+<tr class="memdesc:ad2e96e917852f27dedfc263d37e13756"><td class="mdescLeft">&#160;</td><td class="mdescRight">Fires up the SabreDAV server. <a href="#ad2e96e917852f27dedfc263d37e13756">More...</a><br/></td></tr>
+<tr class="separator:ad2e96e917852f27dedfc263d37e13756"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table>
<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
-<div class="textblock"><p>Initialize Red Matrix's cloud (SabreDAV) </p>
+<div class="textblock"><p>Initialize <a class="el" href="namespaceRedMatrix.html" title="Class Import.">RedMatrix</a>'s cloud (SabreDAV). </p>
+<p>Module for accessing the DAV storage area. </p>
</div><h2 class="groupheader">Function Documentation</h2>
-<a class="anchor" id="a1b79a6fe0454bc76673ad9aef55bf02d"></a>
+<a class="anchor" id="ad2e96e917852f27dedfc263d37e13756"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
- <td class="memname"><a class="el" href="theme_2mytheme_2php_2default_8php.html#a3987f5547ceb7e36a210a66a06241a5a">if</a> (<a class="el" href="boot_8php.html#a01353c9abebc3544ea080ac161729632">x</a>($_SERVER,'REDIRECT_REMOTE_USER')) <a class="el" href="theme_2mytheme_2php_2default_8php.html#a3987f5547ceb7e36a210a66a06241a5a">if</a> (<a class="el" href="boot_8php.html#a01353c9abebc3544ea080ac161729632">x</a>($_SERVER,'HTTP_AUTHORIZATION')) cloud_init </td>
+ <td class="memname"><a class="el" href="theme_2mytheme_2php_2default_8php.html#a3987f5547ceb7e36a210a66a06241a5a">if</a> (<a class="el" href="boot_8php.html#ae97836b0547953be182a2334c9c91d3c">x</a>($_SERVER, 'REDIRECT_REMOTE_USER')) <a class="el" href="theme_2mytheme_2php_2default_8php.html#a3987f5547ceb7e36a210a66a06241a5a">if</a> (<a class="el" href="boot_8php.html#ae97836b0547953be182a2334c9c91d3c">x</a>($_SERVER, 'HTTP_AUTHORIZATION')) cloud_init </td>
<td>(</td>
<td class="paramtype">&amp;&#160;</td>
<td class="paramname"><em>$a</em></td><td>)</td>
@@ -140,7 +142,7 @@ Functions</h2></td></tr>
<p>Fires up the SabreDAV server. </p>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
- <tr><td class="paramtype"><a class="el" href="classApp.html">App</a></td><td class="paramname">&amp;$a</td><td></td></tr>
+ <tr><td class="paramtype"><a class="el" href="classApp.html" title="Our main application structure for the life of this page.">App</a></td><td class="paramname">&amp;$a</td><td></td></tr>
</table>
</dd>
</dl>
diff --git a/doc/html/cloud_8php.js b/doc/html/cloud_8php.js
index 6b3de1272..333d1c197 100644
--- a/doc/html/cloud_8php.js
+++ b/doc/html/cloud_8php.js
@@ -1,4 +1,4 @@
var cloud_8php =
[
- [ "cloud_init", "cloud_8php.html#a1b79a6fe0454bc76673ad9aef55bf02d", null ]
+ [ "cloud_init", "cloud_8php.html#ad2e96e917852f27dedfc263d37e13756", null ]
]; \ No newline at end of file
diff --git a/doc/html/comanche_8php.html b/doc/html/comanche_8php.html
index 5967a7d6a..aec807d58 100644
--- a/doc/html/comanche_8php.html
+++ b/doc/html/comanche_8php.html
@@ -166,7 +166,7 @@ Functions</h2></td></tr>
</div><div class="memdoc">
<p><a class="el" href="comanche_8php.html#aed39ecad69234f3ddf61f0dedb49a58e">comanche_get_channel_id()</a> Returns the channel_id of the profile owner of the page, or the local_user if there is no profile owner. Otherwise returns 0 </p>
-<p>Referenced by <a class="el" href="comanche_8php.html#a5a7ab801717d38e91ac910b933973887">comanche_block()</a>, <a class="el" href="comanche_8php.html#ad5a44e42231759aba1dda49e0490501e">comanche_menu()</a>, and <a class="el" href="boot_8php.html#acc4e0c910af066148b810e5fde55fff1">construct_page()</a>.</p>
+<p>Referenced by <a class="el" href="comanche_8php.html#a5a7ab801717d38e91ac910b933973887">comanche_block()</a>, <a class="el" href="comanche_8php.html#ad5a44e42231759aba1dda49e0490501e">comanche_menu()</a>, and <a class="el" href="boot_8php.html#a50a6707a28c7d05d3f49eaabc7994501">load_pdl()</a>.</p>
</div>
</div>
@@ -222,7 +222,7 @@ Functions</h2></td></tr>
</table>
</div><div class="memdoc">
-<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>
+<p>Referenced by <a class="el" href="boot_8php.html#a50a6707a28c7d05d3f49eaabc7994501">load_pdl()</a>, and <a class="el" href="page_8php.html#a4d89800c0366a239191b1692c09635cf">page_init()</a>.</p>
</div>
</div>
diff --git a/doc/html/conversation_8php.html b/doc/html/conversation_8php.html
index 723c0f719..350d2463d 100644
--- a/doc/html/conversation_8php.html
+++ b/doc/html/conversation_8php.html
@@ -129,10 +129,11 @@ Functions</h2></td></tr>
<tr class="memitem:aacbb12d372d5e9c3ab0735b4aea48fb3"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="conversation_8php.html#aacbb12d372d5e9c3ab0735b4aea48fb3">item_photo_menu</a> ($item)</td></tr>
<tr class="separator:aacbb12d372d5e9c3ab0735b4aea48fb3"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:afe5b2f38d8b803edb0d7ec5fa2868db0"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="conversation_8php.html#afe5b2f38d8b803edb0d7ec5fa2868db0">like_puller</a> ($a, $item, &amp;$arr, $mode)</td></tr>
+<tr class="memdesc:afe5b2f38d8b803edb0d7ec5fa2868db0"><td class="mdescLeft">&#160;</td><td class="mdescRight">Returns a like/dislike entry. It gives back a HTML link to the channel that liked/disliked. <a href="#afe5b2f38d8b803edb0d7ec5fa2868db0">More...</a><br/></td></tr>
<tr class="separator:afe5b2f38d8b803edb0d7ec5fa2868db0"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a3d8e30cc94f9a175054c021305d3aca3"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="conversation_8php.html#a3d8e30cc94f9a175054c021305d3aca3">format_like</a> ($cnt, $arr, $type, $id)</td></tr>
<tr class="separator:a3d8e30cc94f9a175054c021305d3aca3"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:a2a7d541854bba755eb8ada59af7dcb1a"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="conversation_8php.html#a2a7d541854bba755eb8ada59af7dcb1a">status_editor</a> ($a, $<a class="el" href="boot_8php.html#a01353c9abebc3544ea080ac161729632">x</a>, $popup=false)</td></tr>
+<tr class="memitem:a2a7d541854bba755eb8ada59af7dcb1a"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="conversation_8php.html#a2a7d541854bba755eb8ada59af7dcb1a">status_editor</a> ($a, $<a class="el" href="boot_8php.html#ae97836b0547953be182a2334c9c91d3c">x</a>, $popup=false)</td></tr>
<tr class="separator:a2a7d541854bba755eb8ada59af7dcb1a"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a7f6ef0dfa554bacf620e84c18d386e67"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="conversation_8php.html#a7f6ef0dfa554bacf620e84c18d386e67">get_item_children</a> ($arr, $parent)</td></tr>
<tr class="separator:a7f6ef0dfa554bacf620e84c18d386e67"><td class="memSeparator" colspan="2">&#160;</td></tr>
@@ -148,7 +149,7 @@ Functions</h2></td></tr>
<tr class="separator:a9cc2a679606da9e535a06433f9f553a0"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a9f909b8885259b79c6ac8da93afd8f11"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="conversation_8php.html#a9f909b8885259b79c6ac8da93afd8f11">sort_thr_commented</a> ($a, $b)</td></tr>
<tr class="separator:a9f909b8885259b79c6ac8da93afd8f11"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:ae59703b07ce2ddf627b4172ff26058b6"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="conversation_8php.html#ae59703b07ce2ddf627b4172ff26058b6">find_thread_parent_index</a> ($arr, $<a class="el" href="boot_8php.html#a01353c9abebc3544ea080ac161729632">x</a>)</td></tr>
+<tr class="memitem:ae59703b07ce2ddf627b4172ff26058b6"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="conversation_8php.html#ae59703b07ce2ddf627b4172ff26058b6">find_thread_parent_index</a> ($arr, $<a class="el" href="boot_8php.html#ae97836b0547953be182a2334c9c91d3c">x</a>)</td></tr>
<tr class="separator:ae59703b07ce2ddf627b4172ff26058b6"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a0891aaa4492cba2b51eda12fe01957f3"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="conversation_8php.html#a0891aaa4492cba2b51eda12fe01957f3">format_location</a> ($item)</td></tr>
<tr class="separator:a0891aaa4492cba2b51eda12fe01957f3"><td class="memSeparator" colspan="2">&#160;</td></tr>
@@ -230,7 +231,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="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="home_8php.html#a6e3dbf78f4ed74ab2577de221190b33f">home_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#a1cf89557f32d5dfbe8bd90448dc1aa92">zot_feed()</a>.</p>
</div>
</div>
@@ -287,7 +288,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="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>
+<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="home_8php.html#a6e3dbf78f4ed74ab2577de221190b33f">home_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>
@@ -520,6 +521,18 @@ Functions</h2></td></tr>
</table>
</div><div class="memdoc">
+<p>Returns a like/dislike entry. It gives back a HTML link to the channel that liked/disliked. </p>
+<dl class="params"><dt>Parameters</dt><dd>
+ <table class="params">
+ <tr><td class="paramtype">array</td><td class="paramname">$a</td><td>(not used) </td></tr>
+ <tr><td class="paramtype">array</td><td class="paramname">$item</td><td></td></tr>
+ <tr><td class="paramtype">array</td><td class="paramname">&amp;$arr</td><td></td></tr>
+ <tr><td class="paramtype">string</td><td class="paramname">$mode</td><td>like/dislike </td></tr>
+ </table>
+ </dd>
+</dl>
+<dl class="section return"><dt>Returns</dt><dd>void </dd></dl>
+
<p>Referenced by <a class="el" href="conversation_8php.html#affea1afb3f32ca41e966c8ddb4204d81">conversation()</a>.</p>
</div>
@@ -574,7 +587,7 @@ Functions</h2></td></tr>
</table>
</div><div class="memdoc">
-<p>Referenced by <a class="el" href="block_8php.html#a8a82a470acdfbc7a8e749509caeeea45">block_content()</a>, <a class="el" href="home_8php.html#aa1cf697851a646755baf537f75334c46">home_content()</a>, <a class="el" href="page_8php.html#a91a5f649f68406149108bded1dc90b22">page_content()</a>, and <a class="el" href="widgets_8php.html#a313a8d10ab81c71357c12e67e4d7efd5">widget_item()</a>.</p>
+<p>Referenced by <a class="el" href="block_8php.html#a8a82a470acdfbc7a8e749509caeeea45">block_content()</a>, <a class="el" href="home_8php.html#a6e3dbf78f4ed74ab2577de221190b33f">home_content()</a>, <a class="el" href="page_8php.html#a91a5f649f68406149108bded1dc90b22">page_content()</a>, and <a class="el" href="widgets_8php.html#a313a8d10ab81c71357c12e67e4d7efd5">widget_item()</a>.</p>
</div>
</div>
@@ -608,7 +621,7 @@ Functions</h2></td></tr>
</table>
</div><div class="memdoc">
-<p>Referenced by <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="mod_2chat_8php.html#a8b0b8bee6fef6477e8c64c5e951b1b4f">chat_content()</a>, <a class="el" href="events_8php.html#a1d293fb217ae6bc9e3858c4b32e363ec">events_content()</a>, <a class="el" href="classRedBrowser.html#a1f7daf50bb9bfcde7345b3b1908dbd7e">RedBrowser\generateDirectoryIndex()</a>, <a class="el" href="mod_2photos_8php.html#aa87382611a66ec5effdb2d78f13f5812">photos_content()</a>, <a class="el" href="profile_8php.html#a3775cf6eef6587e5143133356a7b76c0">profile_content()</a>, and <a class="el" href="webpages_8php.html#af3b7397d4abc153e3d2147740ee1a41d">webpages_content()</a>.</p>
+<p>Referenced by <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="mod_2chat_8php.html#a8b0b8bee6fef6477e8c64c5e951b1b4f">chat_content()</a>, <a class="el" href="events_8php.html#a1d293fb217ae6bc9e3858c4b32e363ec">events_content()</a>, <a class="el" href="classRedMatrix_1_1RedDAV_1_1RedBrowser.html#af764d5f14df751f9ec86c34fab300c09">RedMatrix\RedDAV\RedBrowser\generateDirectoryIndex()</a>, <a class="el" href="mod_2photos_8php.html#aa87382611a66ec5effdb2d78f13f5812">photos_content()</a>, <a class="el" href="profile_8php.html#a3775cf6eef6587e5143133356a7b76c0">profile_content()</a>, and <a class="el" href="webpages_8php.html#af3b7397d4abc153e3d2147740ee1a41d">webpages_content()</a>.</p>
</div>
</div>
@@ -770,7 +783,7 @@ Functions</h2></td></tr>
</table>
</div><div class="memdoc">
-<p>Referenced by <a class="el" href="classItem.html#a248f45871ecfe82a08d1d4c0769b2eb2">Item\__construct()</a>, <a class="el" href="conversation_8php.html#affea1afb3f32ca41e966c8ddb4204d81">conversation()</a>, <a class="el" href="conversation_8php.html#ab2383dff4f823e580399ff469d90ab19">count_descendants()</a>, and <a class="el" href="enotify_8php.html#a3e9a9355b243777c488d2a9883908dfc">notification()</a>.</p>
+<p>Referenced by <a class="el" href="classItem.html#a248f45871ecfe82a08d1d4c0769b2eb2">Item\__construct()</a>, <a class="el" href="conversation_8php.html#affea1afb3f32ca41e966c8ddb4204d81">conversation()</a>, <a class="el" href="conversation_8php.html#ab2383dff4f823e580399ff469d90ab19">count_descendants()</a>, <a class="el" href="classItem.html#ae0c48b2fed5558642549cabd547fc4f3">Item\count_unseen_descendants()</a>, and <a class="el" href="enotify_8php.html#a3e9a9355b243777c488d2a9883908dfc">notification()</a>.</p>
</div>
</div>
diff --git a/doc/html/crypto_8php.html b/doc/html/crypto_8php.html
index 06fcf6200..c860813bb 100644
--- a/doc/html/crypto_8php.html
+++ b/doc/html/crypto_8php.html
@@ -316,7 +316,7 @@ Functions</h2></td></tr>
</table>
</div><div class="memdoc">
-<p>Referenced by <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="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="conversation_8php.html#a9bd7f9fb6678736c581bcba3b17f471c">localize_item()</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#a751ffd6635022b2190f56154ee745752">send_message()</a>, <a class="el" href="items_8php.html#adf2b8137dc4ad9ec958de2842f16f3c2">start_delivery_chain()</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="diaspora_8php.html#a0fb2abe304aae19efc040a5e6b917829">diaspora_comment()</a>, <a class="el" href="diaspora_8php.html#adef30b6fac948baedcc7194d5d155b5f">diaspora_conversation()</a>, <a class="el" href="diaspora_8php.html#a5d57518545baa31cf8a85a937a267681">diaspora_like()</a>, <a class="el" href="diaspora_8php.html#a7cff2f8f11044c1b3a360f20e1bbee46">diaspora_message()</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="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="conversation_8php.html#a9bd7f9fb6678736c581bcba3b17f471c">localize_item()</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#a751ffd6635022b2190f56154ee745752">send_message()</a>, <a class="el" href="items_8php.html#adf2b8137dc4ad9ec958de2842f16f3c2">start_delivery_chain()</a>, <a class="el" href="items_8php.html#a25221826fa4621f523c68483e3b6af26">store_diaspora_comment_sig()</a>, <a class="el" href="zfinger_8php.html#a8139b83a22ef98869adc10aa224027a0">zfinger_init()</a>, <a class="el" href="zot_8php.html#a084c581d534e7e3b759488b46602288f">zot_build_packet()</a>, and <a class="el" href="zot_8php.html#a61cdc1ec843663c423ed2d8160ae5aea">zot_fetch()</a>.</p>
</div>
</div>
@@ -344,7 +344,7 @@ Functions</h2></td></tr>
</table>
</div><div class="memdoc">
-<p>Referenced by <a class="el" href="bb2diaspora_8php.html#a2052c66bc1006a42b4c230320c269e47">bb2diaspora_itembody()</a>, <a class="el" href="diaspora_8php.html#a131abd521b218d6ae6f7d2917d8b2605">diaspora_process_outbound()</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="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="mod_2probe_8php.html#a1f1db3fa6038e451e737964c94bf5e99">probe_content()</a>, <a class="el" href="items_8php.html#adf2b8137dc4ad9ec958de2842f16f3c2">start_delivery_chain()</a>, <a class="el" href="items_8php.html#af0a887050dc8d0f51c89890cdaf3145f">store_diaspora_comment_sig()</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="viewsrc_8php.html#a6eff3d0c1d7d14b335c4edb785cd60a4">viewsrc_content()</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>
+<p>Referenced by <a class="el" href="bb2diaspora_8php.html#ab27761069ea1275f0fc4c543099c5519">bb2diaspora_itembody()</a>, <a class="el" href="diaspora_8php.html#a131abd521b218d6ae6f7d2917d8b2605">diaspora_process_outbound()</a>, <a class="el" href="diaspora_8php.html#af4698b165766f83d89ec1ea964bc92cc">diaspora_send_followup()</a>, <a class="el" href="diaspora_8php.html#aeb2bb78f620dbf51d9335e6eb7444f2c">diaspora_send_mail()</a>, <a class="el" href="diaspora_8php.html#a0b3628a5e53332c3d3196b689fe2b94d">diaspora_send_relay()</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#a56b0f5d2cb36eb8f4bfca84813884f86">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="mod_2probe_8php.html#a1f1db3fa6038e451e737964c94bf5e99">probe_content()</a>, <a class="el" href="items_8php.html#adf2b8137dc4ad9ec958de2842f16f3c2">start_delivery_chain()</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="text_8php.html#a8264348059abd1d4d5bb521323d3b19a">unobscure()</a>, <a class="el" href="viewsrc_8php.html#a6eff3d0c1d7d14b335c4edb785cd60a4">viewsrc_content()</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>
@@ -464,7 +464,7 @@ Functions</h2></td></tr>
</table>
</div><div class="memdoc">
-<p>Referenced by <a class="el" href="account_8php.html#a141fe579c351c78209d425473f978eb5">create_account()</a>, <a class="el" href="identity_8php.html#a345f4c943d84de502ec6e72d2c813945">create_identity()</a>, and <a class="el" href="identity_8php.html#a1cf83ac2b645de12868edaa3a5718f05">create_sys_channel()</a>.</p>
+<p>Referenced by <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="identity_8php.html#a1cf83ac2b645de12868edaa3a5718f05">create_sys_channel()</a>, and <a class="el" href="dimport_8php.html#a581f040717941ce3e1868b0b5dceefd1">foofoo()</a>.</p>
</div>
</div>
@@ -738,7 +738,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="diaspora_8php.html#a4901762cba5cd8dcdc57bdf285eefb1b">diaspora_msg_build()</a>, <a class="el" href="diaspora_8php.html#a586d5a3ba92d35cee14f879f290072aa">diaspora_pubmsg_build()</a>, <a class="el" href="diaspora_8php.html#af4698b165766f83d89ec1ea964bc92cc">diaspora_send_followup()</a>, <a class="el" href="diaspora_8php.html#aeb2bb78f620dbf51d9335e6eb7444f2c">diaspora_send_mail()</a>, <a class="el" href="diaspora_8php.html#a0b3628a5e53332c3d3196b689fe2b94d">diaspora_send_relay()</a>, <a class="el" href="diaspora_8php.html#a1704748aa2384c73e43f10e71defd31a">diaspora_send_retraction()</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="items_8php.html#af0a887050dc8d0f51c89890cdaf3145f">store_diaspora_comment_sig()</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="diaspora_8php.html#a4901762cba5cd8dcdc57bdf285eefb1b">diaspora_msg_build()</a>, <a class="el" href="diaspora_8php.html#a586d5a3ba92d35cee14f879f290072aa">diaspora_pubmsg_build()</a>, <a class="el" href="diaspora_8php.html#af4698b165766f83d89ec1ea964bc92cc">diaspora_send_followup()</a>, <a class="el" href="diaspora_8php.html#aeb2bb78f620dbf51d9335e6eb7444f2c">diaspora_send_mail()</a>, <a class="el" href="diaspora_8php.html#a0b3628a5e53332c3d3196b689fe2b94d">diaspora_send_relay()</a>, <a class="el" href="diaspora_8php.html#a1704748aa2384c73e43f10e71defd31a">diaspora_send_retraction()</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="items_8php.html#a25221826fa4621f523c68483e3b6af26">store_diaspora_comment_sig()</a>, <a class="el" href="zfinger_8php.html#a8139b83a22ef98869adc10aa224027a0">zfinger_init()</a>, <a class="el" href="zot_8php.html#a084c581d534e7e3b759488b46602288f">zot_build_packet()</a>, and <a class="el" href="zot_8php.html#a61cdc1ec843663c423ed2d8160ae5aea">zot_fetch()</a>.</p>
</div>
</div>
@@ -778,7 +778,7 @@ Functions</h2></td></tr>
</table>
</div><div class="memdoc">
-<p>Referenced by <a class="el" href="diaspora_8php.html#a0fb2abe304aae19efc040a5e6b917829">diaspora_comment()</a>, <a class="el" href="diaspora_8php.html#adef30b6fac948baedcc7194d5d155b5f">diaspora_conversation()</a>, <a class="el" href="diaspora_8php.html#a849754ec369e1a60fadae5c14584ca36">diaspora_decode()</a>, <a class="el" href="diaspora_8php.html#a5d57518545baa31cf8a85a937a267681">diaspora_like()</a>, <a class="el" href="diaspora_8php.html#a7cff2f8f11044c1b3a360f20e1bbee46">diaspora_message()</a>, <a class="el" href="diaspora_8php.html#aa34d2748bb97e9e193cacd572f335055">diaspora_signed_retraction()</a>, <a class="el" href="items_8php.html#a536d0313b6ffe33b9d2490c4e25c5361">get_item_elements()</a>, <a class="el" href="zot_8php.html#a2657e141d62d5f67ad3c87651b585299">import_site()</a>, <a class="el" href="zot_8php.html#a528e97ca5d69c3b7f35c5d954afde315">import_xchan()</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="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="diaspora_8php.html#a0fb2abe304aae19efc040a5e6b917829">diaspora_comment()</a>, <a class="el" href="diaspora_8php.html#adef30b6fac948baedcc7194d5d155b5f">diaspora_conversation()</a>, <a class="el" href="diaspora_8php.html#a849754ec369e1a60fadae5c14584ca36">diaspora_decode()</a>, <a class="el" href="diaspora_8php.html#a5d57518545baa31cf8a85a937a267681">diaspora_like()</a>, <a class="el" href="diaspora_8php.html#a7cff2f8f11044c1b3a360f20e1bbee46">diaspora_message()</a>, <a class="el" href="diaspora_8php.html#aa34d2748bb97e9e193cacd572f335055">diaspora_signed_retraction()</a>, <a class="el" href="items_8php.html#a536d0313b6ffe33b9d2490c4e25c5361">get_item_elements()</a>, <a class="el" href="zot_8php.html#a2657e141d62d5f67ad3c87651b585299">import_site()</a>, <a class="el" href="zot_8php.html#a528e97ca5d69c3b7f35c5d954afde315">import_xchan()</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="zot_8php.html#ab15c04e7e5f44edf45ec50dd7d183254">sync_locations()</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>
diff --git a/doc/html/datetime_8php.html b/doc/html/datetime_8php.html
index 01455ef29..a6556efd7 100644
--- a/doc/html/datetime_8php.html
+++ b/doc/html/datetime_8php.html
@@ -122,12 +122,12 @@ Functions</h2></td></tr>
<tr class="separator:ad6301e74b0f9267d52f8d432b5beb226"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a3f2897db32e745fe2f3e70a6b46578f8"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="datetime_8php.html#a3f2897db32e745fe2f3e70a6b46578f8">dob</a> ($dob)</td></tr>
<tr class="separator:a3f2897db32e745fe2f3e70a6b46578f8"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:a5f29553799005b1fd4e9ce9d98ce05aa"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="datetime_8php.html#a5f29553799005b1fd4e9ce9d98ce05aa">datesel_format</a> ($f)</td></tr>
-<tr class="separator:a5f29553799005b1fd4e9ce9d98ce05aa"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:ac265b86f384ee094ed5479aae02aa5c8"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="datetime_8php.html#ac265b86f384ee094ed5479aae02aa5c8">datesel</a> ($f, $pre, $ymin, $ymax, $allow_blank, $y, $m, $d)</td></tr>
-<tr class="separator:ac265b86f384ee094ed5479aae02aa5c8"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:a36d3d6dff8d76b5f295bb3d9c535a5b1"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="datetime_8php.html#a36d3d6dff8d76b5f295bb3d9c535a5b1">timesel</a> ($pre, $h, $m)</td></tr>
-<tr class="separator:a36d3d6dff8d76b5f295bb3d9c535a5b1"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a77bb385ae8a9e7ca663309c102c0d766"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="datetime_8php.html#a77bb385ae8a9e7ca663309c102c0d766">datesel</a> ($format, $min, $max, $default, $id= 'datepicker')</td></tr>
+<tr class="separator:a77bb385ae8a9e7ca663309c102c0d766"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a3f239f94e23335d860b148958d87a093"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="datetime_8php.html#a3f239f94e23335d860b148958d87a093">timesel</a> ($format, $h, $m, $id='timepicker')</td></tr>
+<tr class="separator:a3f239f94e23335d860b148958d87a093"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a72218e5ee21876484934bacbb6bd9ba3"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="datetime_8php.html#a72218e5ee21876484934bacbb6bd9ba3">datetimesel</a> ($format, $min, $max, $default, $id= 'datetimepicker', $pickdate=true, $picktime=true, $minfrom= '', $maxfrom= '')</td></tr>
+<tr class="separator:a72218e5ee21876484934bacbb6bd9ba3"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a8ae8dc95ace7ac27fa5a1ecf42b78c82"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="datetime_8php.html#a8ae8dc95ace7ac27fa5a1ecf42b78c82">relative_date</a> ($posted_date, $format=null)</td></tr>
<tr class="separator:a8ae8dc95ace7ac27fa5a1ecf42b78c82"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:abc1652f96799cec6fce8797ba2ebc2df"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="datetime_8php.html#abc1652f96799cec6fce8797ba2ebc2df">age</a> ($<a class="el" href="datetime_8php.html#a3f2897db32e745fe2f3e70a6b46578f8">dob</a>, $owner_tz= '', $viewer_tz= '')</td></tr>
@@ -174,7 +174,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="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>
+<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="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>
@@ -218,7 +218,7 @@ Functions</h2></td></tr>
</div>
</div>
-<a class="anchor" id="ac265b86f384ee094ed5479aae02aa5c8"></a>
+<a class="anchor" id="a77bb385ae8a9e7ca663309c102c0d766"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
@@ -226,49 +226,80 @@ Functions</h2></td></tr>
<td class="memname">datesel </td>
<td>(</td>
<td class="paramtype">&#160;</td>
- <td class="paramname"><em>$f</em>, </td>
+ <td class="paramname"><em>$format</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">&#160;</td>
- <td class="paramname"><em>$pre</em>, </td>
+ <td class="paramname"><em>$min</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">&#160;</td>
- <td class="paramname"><em>$ymin</em>, </td>
+ <td class="paramname"><em>$max</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">&#160;</td>
- <td class="paramname"><em>$ymax</em>, </td>
+ <td class="paramname"><em>$default</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">&#160;</td>
- <td class="paramname"><em>$allow_blank</em>, </td>
+ <td class="paramname"><em>$id</em> = <code>'datepicker'</code>&#160;</td>
+ </tr>
+ <tr>
+ <td></td>
+ <td>)</td>
+ <td></td><td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+<p>returns a date selector </p>
+<dl class="params"><dt>Parameters</dt><dd>
+ <table class="params">
+ <tr><td class="paramname">$format</td><td>format string, e.g. 'ymd' or 'mdy'. Not currently supported </td></tr>
+ <tr><td class="paramname">$min</td><td>unix timestamp of minimum date </td></tr>
+ <tr><td class="paramname">$max</td><td>unix timestap of maximum date </td></tr>
+ <tr><td class="paramname">$default</td><td>unix timestamp of default date </td></tr>
+ <tr><td class="paramname">$id</td><td>id and name of datetimepicker (defaults to "datetimepicker") </td></tr>
+ </table>
+ </dd>
+</dl>
+
+</div>
+</div>
+<a class="anchor" id="ad6301e74b0f9267d52f8d432b5beb226"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">datetime_convert </td>
+ <td>(</td>
+ <td class="paramtype">&#160;</td>
+ <td class="paramname"><em>$from</em> = <code>'UTC'</code>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">&#160;</td>
- <td class="paramname"><em>$y</em>, </td>
+ <td class="paramname"><em>$to</em> = <code>'UTC'</code>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">&#160;</td>
- <td class="paramname"><em>$m</em>, </td>
+ <td class="paramname"><em>$s</em> = <code>'now'</code>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">&#160;</td>
- <td class="paramname"><em>$d</em>&#160;</td>
+ <td class="paramname"><em>$fmt</em> = <code>&quot;Y-m-d&#160;H:i:s&quot;</code>&#160;</td>
</tr>
<tr>
<td></td>
@@ -278,55 +309,67 @@ Functions</h2></td></tr>
</table>
</div><div class="memdoc">
-<p>Referenced by <a class="el" href="datetime_8php.html#a3f2897db32e745fe2f3e70a6b46578f8">dob()</a>, and <a class="el" href="events_8php.html#a1d293fb217ae6bc9e3858c4b32e363ec">events_content()</a>.</p>
+<p>Referenced by <a class="el" href="Contact_8php.html#a024919623a830e8703ac4f23496dd66c">abook_toggle_flag()</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#a70bd666e080c2af5a91f5d14c297b8cd">attach_delete()</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#aa97b33b619dd7132a9274f852af6ceb5">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#a4e8af0f0525161da74583c04b8b03097">channel_remove()</a>, <a class="el" href="include_2chat_8php.html#acea6b176eb7aff44d9ba3ae24ce511d3">chat_message()</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#abeb7886cde44d9a83dbaf2bc4ab18723">comments_are_now_closed()</a>, <a class="el" href="items_8php.html#adc26e08aa61f5666da04ab5d2a9d68a6">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="classRedMatrix_1_1RedDAV_1_1RedDirectory.html#a58e750256cdc2f0f79fbe8d5463ffefe">RedMatrix\RedDAV\RedDirectory\createFile()</a>, <a class="el" href="cronhooks_8php.html#a4c4c1bbec4ecc9a0efa00dd6afd2c0ca">cronhooks_run()</a>, <a class="el" href="items_8php.html#aac8c9eb4338e2a996c43914392c6cfdb">delete_item_lowlevel()</a>, <a class="el" href="deliver_8php.html#a397afcb9afecf0c1816b0951189dd346">deliver_run()</a>, <a class="el" href="diaspora_8php.html#a006731620a5242d410358b32678e48e3">diaspora_asphoto()</a>, <a class="el" href="diaspora_8php.html#a0fb2abe304aae19efc040a5e6b917829">diaspora_comment()</a>, <a class="el" href="diaspora_8php.html#adef30b6fac948baedcc7194d5d155b5f">diaspora_conversation()</a>, <a class="el" href="diaspora_8php.html#a7cff2f8f11044c1b3a360f20e1bbee46">diaspora_message()</a>, <a class="el" href="diaspora_8php.html#a20b968d64ef26afe5cb0cc75a7570a31">diaspora_post()</a>, <a class="el" href="diaspora_8php.html#a900abf51398b2ef26cd2cd31c52f1b0f">diaspora_profile()</a>, <a class="el" href="diaspora_8php.html#ac1ab782a34552a7c6b4dc961754ed598">diaspora_request()</a>, <a class="el" href="diaspora_8php.html#a2bf43f6b5890897f425ef4325d34b007">diaspora_reshare()</a>, <a class="el" href="diaspora_8php.html#ae6f52efd81fe515cd9912bc8293abf5b">diaspora_send_images()</a>, <a class="el" href="diaspora_8php.html#aeb2bb78f620dbf51d9335e6eb7444f2c">diaspora_send_mail()</a>, <a class="el" href="diaspora_8php.html#a33ae0c4606a7df4d801c05507d87f668">diaspora_send_status()</a>, <a class="el" href="diaspora_8php.html#aa704d6aa2ac77be345c0f501168e6e56">diaspora_transmit()</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="include_2network_8php.html#a5176176ddc1906d91f186df6fbd87b48">discover_by_url()</a>, <a class="el" href="include_2network_8php.html#a63e62946e194928eb17c5a9f2bbef0fe">discover_by_webbie()</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#af5ac41e7ea3f7131088fe6333fd2846c">event_store_event()</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="externals_8php.html#a4df44079e6f915286088b7a0d44db926">externals_run()</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="event_8php.html#a3ff7f1824540a38f4a3991a59a9542d4">format_event_ical()</a>, <a class="el" href="fsuggest_8php.html#a61ecfe10ce937ed526614f8fd3de3c7d">fsuggest_post()</a>, <a class="el" href="classRedMatrix_1_1RedDAV_1_1RedBrowser.html#af764d5f14df751f9ec86c34fab300c09">RedMatrix\RedDAV\RedBrowser\generateDirectoryIndex()</a>, <a class="el" href="items_8php.html#a5e5be7bf1f8257dec0b2647e60a3f3f1">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="classRedMatrix_1_1RedDAV_1_1RedFile.html#ac47016aa0e3f6f1a1c4570bd6fd8cf25">RedMatrix\RedDAV\RedFile\getLastModified()</a>, <a class="el" href="classRedMatrix_1_1RedDAV_1_1RedDirectory.html#a69db5f641f8f5dc999e55cee1832ecd5">RedMatrix\RedDAV\RedDirectory\getLastModified()</a>, <a class="el" href="home_8php.html#a6e3dbf78f4ed74ab2577de221190b33f">home_content()</a>, <a class="el" href="impel_8php.html#ab7db6fca43b42ea4332cb3e841b3cf7b">impel_init()</a>, <a class="el" href="items_8php.html#a6bee35961f2e32905f20367a9309d627">import_author_rss()</a>, <a class="el" href="items_8php.html#a37f79991f36811cf847446ff60e8e11f">import_author_unknown()</a>, <a class="el" href="zot_8php.html#a20750dd2c36961013fd382fb34e1366c">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#a528e97ca5d69c3b7f35c5d954afde315">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="items_8php.html#ab33fa9756aaa5f39a6104d57a62baf00">list_post_dates()</a>, <a class="el" href="auth_8php.html#ae3ecb5f34f202c7f9a61c5d589f6c6e1">log_failed_login()</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="manage_8php.html#a2bca247b5296827638959138367db4f5">manage_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="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="p_8php.html#af9d5530ca0b3dc9409cf591c39e2480e">p_init()</a>, <a class="el" href="page__widgets_8php.html#a39d547771c5f12a17c097436c82f0fa2">pagelist_widget()</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="hubloc_8php.html#ad3d0dcfcfcb347744f7617fe6f5de002">prune_hub_reinstalls()</a>, <a class="el" href="classRedMatrix_1_1RedDAV_1_1RedFile.html#a709ec1288d21ddf1353524435ab916f0">RedMatrix\RedDAV\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="classdba__postgres.html#a70352880231fba0b859f82cd5b290a9a">dba_postgres\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="removeaccount_8php.html#a26a3325292e932c59793430ab737126a">removeaccount_post()</a>, <a class="el" href="removeme_8php.html#a7be08738beca44bb98a79e01cdb2ee88">removeme_post()</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="zot_8php.html#ab15c04e7e5f44edf45ec50dd7d183254">sync_locations()</a>, <a class="el" href="items_8php.html#ab1bce4261bcf75ad62753b498a144d17">tag_deliver()</a>, <a class="el" href="datetime_8php.html#af1cd77c97c901d9239cb7a61f97f9826">update_birthdays()</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#acd6b8d2124ba5ea4f4794d2c58ae8bf5">verify_email_address()</a>, <a class="el" href="webpages_8php.html#af3b7397d4abc153e3d2147740ee1a41d">webpages_content()</a>, <a class="el" href="widgets_8php.html#a7b1e357b5a2027718470b77ec921fc65">widget_archive()</a>, <a class="el" href="hubloc_8php.html#acb708dd197aae72a4858cf5ff4e3195b">xchan_store()</a>, <a class="el" href="datetime_8php.html#ab55e545b72ec8c097e052ea7d373491f">z_birthday()</a>, <a class="el" href="items_8php.html#a1cf89557f32d5dfbe8bd90448dc1aa92">zot_feed()</a>, <a class="el" href="zot_8php.html#a3920afe14fc1d82020161b4b86bcd9ac">zot_process_message_request()</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>
-<a class="anchor" id="a5f29553799005b1fd4e9ce9d98ce05aa"></a>
+<a class="anchor" id="a72218e5ee21876484934bacbb6bd9ba3"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
- <td class="memname">datesel_format </td>
+ <td class="memname">datetimesel </td>
<td>(</td>
<td class="paramtype">&#160;</td>
- <td class="paramname"><em>$f</em></td><td>)</td>
+ <td class="paramname"><em>$format</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
<td></td>
+ <td class="paramtype">&#160;</td>
+ <td class="paramname"><em>$min</em>, </td>
</tr>
- </table>
-</div><div class="memdoc">
-
-<p>Referenced by <a class="el" href="events_8php.html#a1d293fb217ae6bc9e3858c4b32e363ec">events_content()</a>, and <a class="el" href="profiles_8php.html#a46975783b8b8d70402d51487eb1f0b00">profiles_content()</a>.</p>
-
-</div>
-</div>
-<a class="anchor" id="ad6301e74b0f9267d52f8d432b5beb226"></a>
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
<tr>
- <td class="memname">datetime_convert </td>
- <td>(</td>
+ <td class="paramkey"></td>
+ <td></td>
<td class="paramtype">&#160;</td>
- <td class="paramname"><em>$from</em> = <code>'UTC'</code>, </td>
+ <td class="paramname"><em>$max</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">&#160;</td>
- <td class="paramname"><em>$to</em> = <code>'UTC'</code>, </td>
+ <td class="paramname"><em>$default</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">&#160;</td>
- <td class="paramname"><em>$s</em> = <code>'now'</code>, </td>
+ <td class="paramname"><em>$id</em> = <code>'datetimepicker'</code>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">&#160;</td>
- <td class="paramname"><em>$fmt</em> = <code>&quot;Y-m-d&#160;H:i:s&quot;</code>&#160;</td>
+ <td class="paramname"><em>$pickdate</em> = <code>true</code>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">&#160;</td>
+ <td class="paramname"><em>$picktime</em> = <code>true</code>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">&#160;</td>
+ <td class="paramname"><em>$minfrom</em> = <code>''</code>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">&#160;</td>
+ <td class="paramname"><em>$maxfrom</em> = <code>''</code>&#160;</td>
</tr>
<tr>
<td></td>
@@ -335,8 +378,23 @@ Functions</h2></td></tr>
</tr>
</table>
</div><div class="memdoc">
-
-<p>Referenced by <a class="el" href="Contact_8php.html#a024919623a830e8703ac4f23496dd66c">abook_toggle_flag()</a>, <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#a70bd666e080c2af5a91f5d14c297b8cd">attach_delete()</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#aa97b33b619dd7132a9274f852af6ceb5">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#a4e8af0f0525161da74583c04b8b03097">channel_remove()</a>, <a class="el" href="include_2chat_8php.html#acea6b176eb7aff44d9ba3ae24ce511d3">chat_message()</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#abeb7886cde44d9a83dbaf2bc4ab18723">comments_are_now_closed()</a>, <a class="el" href="items_8php.html#adc26e08aa61f5666da04ab5d2a9d68a6">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#aac8c9eb4338e2a996c43914392c6cfdb">delete_item_lowlevel()</a>, <a class="el" href="deliver_8php.html#a397afcb9afecf0c1816b0951189dd346">deliver_run()</a>, <a class="el" href="diaspora_8php.html#a006731620a5242d410358b32678e48e3">diaspora_asphoto()</a>, <a class="el" href="diaspora_8php.html#a0fb2abe304aae19efc040a5e6b917829">diaspora_comment()</a>, <a class="el" href="diaspora_8php.html#adef30b6fac948baedcc7194d5d155b5f">diaspora_conversation()</a>, <a class="el" href="diaspora_8php.html#a7cff2f8f11044c1b3a360f20e1bbee46">diaspora_message()</a>, <a class="el" href="diaspora_8php.html#a20b968d64ef26afe5cb0cc75a7570a31">diaspora_post()</a>, <a class="el" href="diaspora_8php.html#a900abf51398b2ef26cd2cd31c52f1b0f">diaspora_profile()</a>, <a class="el" href="diaspora_8php.html#ac1ab782a34552a7c6b4dc961754ed598">diaspora_request()</a>, <a class="el" href="diaspora_8php.html#a2bf43f6b5890897f425ef4325d34b007">diaspora_reshare()</a>, <a class="el" href="diaspora_8php.html#a938c7ee808d38725c0988fa6006805b9">diaspora_retraction()</a>, <a class="el" href="diaspora_8php.html#ae6f52efd81fe515cd9912bc8293abf5b">diaspora_send_images()</a>, <a class="el" href="diaspora_8php.html#aeb2bb78f620dbf51d9335e6eb7444f2c">diaspora_send_mail()</a>, <a class="el" href="diaspora_8php.html#a33ae0c4606a7df4d801c05507d87f668">diaspora_send_status()</a>, <a class="el" href="diaspora_8php.html#aa34d2748bb97e9e193cacd572f335055">diaspora_signed_retraction()</a>, <a class="el" href="diaspora_8php.html#aa704d6aa2ac77be345c0f501168e6e56">diaspora_transmit()</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="include_2network_8php.html#a5176176ddc1906d91f186df6fbd87b48">discover_by_url()</a>, <a class="el" href="include_2network_8php.html#a63e62946e194928eb17c5a9f2bbef0fe">discover_by_webbie()</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#af5ac41e7ea3f7131088fe6333fd2846c">event_store_event()</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="externals_8php.html#a4df44079e6f915286088b7a0d44db926">externals_run()</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#a5e5be7bf1f8257dec0b2647e60a3f3f1">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#a20750dd2c36961013fd382fb34e1366c">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#a528e97ca5d69c3b7f35c5d954afde315">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="items_8php.html#aa2d3caa2f27720762b5c729e07df40fb">list_post_dates()</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="manage_8php.html#a2bca247b5296827638959138367db4f5">manage_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="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="page__widgets_8php.html#a39d547771c5f12a17c097436c82f0fa2">pagelist_widget()</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="hubloc_8php.html#ad3d0dcfcfcb347744f7617fe6f5de002">prune_hub_reinstalls()</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="removeaccount_8php.html#a26a3325292e932c59793430ab737126a">removeaccount_post()</a>, <a class="el" href="removeme_8php.html#a7be08738beca44bb98a79e01cdb2ee88">removeme_post()</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="datetime_8php.html#af1cd77c97c901d9239cb7a61f97f9826">update_birthdays()</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#acd6b8d2124ba5ea4f4794d2c58ae8bf5">verify_email_address()</a>, <a class="el" href="webpages_8php.html#af3b7397d4abc153e3d2147740ee1a41d">webpages_content()</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>
+<p>returns a datetime selector </p>
+<dl class="params"><dt>Parameters</dt><dd>
+ <table class="params">
+ <tr><td class="paramname">$format</td><td>format string, e.g. 'ymd' or 'mdy'. Not currently supported </td></tr>
+ <tr><td class="paramname">$min</td><td>unix timestamp of minimum date </td></tr>
+ <tr><td class="paramname">$max</td><td>unix timestap of maximum date </td></tr>
+ <tr><td class="paramname">$default</td><td>unix timestamp of default date </td></tr>
+ <tr><td class="paramname">$id</td><td>id and name of datetimepicker (defaults to "datetimepicker") </td></tr>
+ <tr><td class="paramname">$pickdate</td><td>true to show date picker (default) </td></tr>
+ <tr><td class="paramname">$picktime</td><td>true to show time picker (default) </td></tr>
+ <tr><td class="paramname">$minfrom</td><td>set minimum date from picker with id $minfrom (none by default) </td></tr>
+ <tr><td class="paramname">$maxfrom</td><td>set maximum date from picker with id $maxfrom (none by default) </td></tr>
+ </table>
+ </dd>
+</dl>
+
+<p>Referenced by <a class="el" href="datetime_8php.html#a77bb385ae8a9e7ca663309c102c0d766">datesel()</a>, <a class="el" href="events_8php.html#a1d293fb217ae6bc9e3858c4b32e363ec">events_content()</a>, and <a class="el" href="datetime_8php.html#a3f239f94e23335d860b148958d87a093">timesel()</a>.</p>
</div>
</div>
@@ -422,7 +480,7 @@ Functions</h2></td></tr>
</table>
</div><div class="memdoc">
-<p>Referenced by <a class="el" href="datetime_8php.html#aea356409ba69f9de412298c998595dd2">cal()</a>, <a class="el" href="events_8php.html#a1d293fb217ae6bc9e3858c4b32e363ec">events_content()</a>, <a class="el" href="items_8php.html#aa2d3caa2f27720762b5c729e07df40fb">list_post_dates()</a>, and <a class="el" href="items_8php.html#ad2abb4644ff1f20fefbc80326fe01cf0">posted_dates()</a>.</p>
+<p>Referenced by <a class="el" href="datetime_8php.html#aea356409ba69f9de412298c998595dd2">cal()</a>, <a class="el" href="events_8php.html#a1d293fb217ae6bc9e3858c4b32e363ec">events_content()</a>, <a class="el" href="items_8php.html#ab33fa9756aaa5f39a6104d57a62baf00">list_post_dates()</a>, and <a class="el" href="items_8php.html#ad2abb4644ff1f20fefbc80326fe01cf0">posted_dates()</a>.</p>
</div>
</div>
@@ -500,7 +558,7 @@ Functions</h2></td></tr>
</div>
</div>
-<a class="anchor" id="a36d3d6dff8d76b5f295bb3d9c535a5b1"></a>
+<a class="anchor" id="a3f239f94e23335d860b148958d87a093"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
@@ -508,7 +566,7 @@ Functions</h2></td></tr>
<td class="memname">timesel </td>
<td>(</td>
<td class="paramtype">&#160;</td>
- <td class="paramname"><em>$pre</em>, </td>
+ <td class="paramname"><em>$format</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
@@ -520,7 +578,13 @@ Functions</h2></td></tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">&#160;</td>
- <td class="paramname"><em>$m</em>&#160;</td>
+ <td class="paramname"><em>$m</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">&#160;</td>
+ <td class="paramname"><em>$id</em> = <code>'timepicker'</code>&#160;</td>
</tr>
<tr>
<td></td>
@@ -529,8 +593,16 @@ Functions</h2></td></tr>
</tr>
</table>
</div><div class="memdoc">
-
-<p>Referenced by <a class="el" href="events_8php.html#a1d293fb217ae6bc9e3858c4b32e363ec">events_content()</a>.</p>
+<p>returns a time selector </p>
+<dl class="params"><dt>Parameters</dt><dd>
+ <table class="params">
+ <tr><td class="paramname">$format</td><td>format string, e.g. 'ymd' or 'mdy'. Not currently supported </td></tr>
+ <tr><td class="paramname">$h</td><td>already selected hour </td></tr>
+ <tr><td class="paramname">$m</td><td>already selected minute </td></tr>
+ <tr><td class="paramname">$id</td><td>id and name of datetimepicker (defaults to "timepicker") </td></tr>
+ </table>
+ </dd>
+</dl>
</div>
</div>
diff --git a/doc/html/datetime_8php.js b/doc/html/datetime_8php.js
index 19d2d7f24..7fdf58cfd 100644
--- a/doc/html/datetime_8php.js
+++ b/doc/html/datetime_8php.js
@@ -2,16 +2,16 @@ var datetime_8php =
[
[ "age", "datetime_8php.html#abc1652f96799cec6fce8797ba2ebc2df", null ],
[ "cal", "datetime_8php.html#aea356409ba69f9de412298c998595dd2", null ],
- [ "datesel", "datetime_8php.html#ac265b86f384ee094ed5479aae02aa5c8", null ],
- [ "datesel_format", "datetime_8php.html#a5f29553799005b1fd4e9ce9d98ce05aa", null ],
+ [ "datesel", "datetime_8php.html#a77bb385ae8a9e7ca663309c102c0d766", null ],
[ "datetime_convert", "datetime_8php.html#ad6301e74b0f9267d52f8d432b5beb226", null ],
+ [ "datetimesel", "datetime_8php.html#a72218e5ee21876484934bacbb6bd9ba3", null ],
[ "dob", "datetime_8php.html#a3f2897db32e745fe2f3e70a6b46578f8", null ],
[ "field_timezone", "datetime_8php.html#a03900dcf0f9e3c58793a031673a70326", null ],
[ "get_dim", "datetime_8php.html#a7df24d72ea05922d3127363e2295174c", null ],
[ "get_first_dim", "datetime_8php.html#aba971b67f17fecf050813f1eba72367f", null ],
[ "relative_date", "datetime_8php.html#a8ae8dc95ace7ac27fa5a1ecf42b78c82", null ],
[ "select_timezone", "datetime_8php.html#a633dadba426fa2f60b25fabdb19ebc1f", null ],
- [ "timesel", "datetime_8php.html#a36d3d6dff8d76b5f295bb3d9c535a5b1", null ],
+ [ "timesel", "datetime_8php.html#a3f239f94e23335d860b148958d87a093", null ],
[ "timezone_cmp", "datetime_8php.html#aa51b5a7ea4f931b23acbdfcea46e9865", null ],
[ "update_birthdays", "datetime_8php.html#af1cd77c97c901d9239cb7a61f97f9826", null ],
[ "z_birthday", "datetime_8php.html#ab55e545b72ec8c097e052ea7d373491f", null ]
diff --git a/doc/html/dba__driver_8php.html b/doc/html/dba__driver_8php.html
index 95075c913..dcfa2ffac 100644
--- a/doc/html/dba__driver_8php.html
+++ b/doc/html/dba__driver_8php.html
@@ -110,33 +110,162 @@ $(document).ready(function(){initNavTree('dba__driver_8php.html','');});
<div class="title">dba_driver.php File Reference</div> </div>
</div><!--header-->
<div class="contents">
+
+<p>some database related functions and abstract driver class.
+<a href="#details">More...</a></p>
<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="classdba__driver.html">dba_driver</a></td></tr>
+<tr class="memdesc:"><td class="mdescLeft">&#160;</td><td class="mdescRight">abstract database driver class. <a href="classdba__driver.html#details">More...</a><br/></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:ac10e60f6e5b95bcf67bd82cb88f37947"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="dba__driver_8php.html#ac10e60f6e5b95bcf67bd82cb88f37947">dba_factory</a> ($server, $port, $user, $pass, $db, $install=false)</td></tr>
-<tr class="separator:ac10e60f6e5b95bcf67bd82cb88f37947"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a5df8499634c47b30191f34069d7b98c0"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="dba__driver_8php.html#a5df8499634c47b30191f34069d7b98c0">dba_factory</a> ($server, $port, $user, $pass, $db, $dbtype, $install=false)</td></tr>
+<tr class="memdesc:a5df8499634c47b30191f34069d7b98c0"><td class="mdescLeft">&#160;</td><td class="mdescRight">Returns the database driver object. <a href="#a5df8499634c47b30191f34069d7b98c0">More...</a><br/></td></tr>
+<tr class="separator:a5df8499634c47b30191f34069d7b98c0"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a55bf30d8176967e682656b5be4ad9249"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="dba__driver_8php.html#a55bf30d8176967e682656b5be4ad9249">printable</a> ($s)</td></tr>
<tr class="separator:a55bf30d8176967e682656b5be4ad9249"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:aa6607893d8f60ade9122bcfbd1a53ffb"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="dba__driver_8php.html#aa6607893d8f60ade9122bcfbd1a53ffb">dbg</a> ($state)</td></tr>
+<tr class="memdesc:aa6607893d8f60ade9122bcfbd1a53ffb"><td class="mdescLeft">&#160;</td><td class="mdescRight">set database driver debugging state. <a href="#aa6607893d8f60ade9122bcfbd1a53ffb">More...</a><br/></td></tr>
<tr class="separator:aa6607893d8f60ade9122bcfbd1a53ffb"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ab222aa1dbf9ea93b320f82028739127e"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="dba__driver_8php.html#ab222aa1dbf9ea93b320f82028739127e">dbesc</a> ($str)</td></tr>
+<tr class="memdesc:ab222aa1dbf9ea93b320f82028739127e"><td class="mdescLeft">&#160;</td><td class="mdescRight">Escape strings being passed to DB queries. <a href="#ab222aa1dbf9ea93b320f82028739127e">More...</a><br/></td></tr>
<tr class="separator:ab222aa1dbf9ea93b320f82028739127e"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a2a38996670c2936b5769270c49c57593"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="dba__driver_8php.html#a2a38996670c2936b5769270c49c57593">dbescbin</a> ($str)</td></tr>
+<tr class="separator:a2a38996670c2936b5769270c49c57593"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:afaaa1a7eff9c1b65b3b8c464ae37640e"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="dba__driver_8php.html#afaaa1a7eff9c1b65b3b8c464ae37640e">dbunescbin</a> ($str)</td></tr>
+<tr class="separator:afaaa1a7eff9c1b65b3b8c464ae37640e"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a2c8a72ec73f39b17a167c90737693f78"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="dba__driver_8php.html#a2c8a72ec73f39b17a167c90737693f78">dbescdate</a> ($date)</td></tr>
+<tr class="separator:a2c8a72ec73f39b17a167c90737693f78"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:acec84a8fb75d78daf657cbe5df74e25a"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="dba__driver_8php.html#acec84a8fb75d78daf657cbe5df74e25a">db_quoteinterval</a> ($txt)</td></tr>
+<tr class="separator:acec84a8fb75d78daf657cbe5df74e25a"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:aa051799567690a124a3b865bf902f58a"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="dba__driver_8php.html#aa051799567690a124a3b865bf902f58a">dbesc_identifier</a> ($str)</td></tr>
+<tr class="separator:aa051799567690a124a3b865bf902f58a"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a30e9a643be804e905f5614a3279d2645"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="dba__driver_8php.html#a30e9a643be804e905f5614a3279d2645">db_utcnow</a> ()</td></tr>
+<tr class="separator:a30e9a643be804e905f5614a3279d2645"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a75098bf1d59ea57f7ebae657a369137e"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="dba__driver_8php.html#a75098bf1d59ea57f7ebae657a369137e">db_optimizetable</a> ($table)</td></tr>
+<tr class="separator:a75098bf1d59ea57f7ebae657a369137e"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a7c1b98a710ead27382c958ad3216c4ee"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="dba__driver_8php.html#a7c1b98a710ead27382c958ad3216c4ee">db_concat</a> ($fld, $sep)</td></tr>
+<tr class="separator:a7c1b98a710ead27382c958ad3216c4ee"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a2c09a731d3b4fef41fed0e83db01be1f"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="dba__driver_8php.html#a2c09a731d3b4fef41fed0e83db01be1f">q</a> ($sql)</td></tr>
+<tr class="memdesc:a2c09a731d3b4fef41fed0e83db01be1f"><td class="mdescLeft">&#160;</td><td class="mdescRight">Execute a SQL query with printf style args. <a href="#a2c09a731d3b4fef41fed0e83db01be1f">More...</a><br/></td></tr>
<tr class="separator:a2c09a731d3b4fef41fed0e83db01be1f"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:aa377074e70981e8c4e82ca0accd068ee"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="dba__driver_8php.html#aa377074e70981e8c4e82ca0accd068ee">dbq</a> ($sql)</td></tr>
+<tr class="memdesc:aa377074e70981e8c4e82ca0accd068ee"><td class="mdescLeft">&#160;</td><td class="mdescRight">Raw DB query, no arguments. <a href="#aa377074e70981e8c4e82ca0accd068ee">More...</a><br/></td></tr>
<tr class="separator:aa377074e70981e8c4e82ca0accd068ee"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:af531546fac5f0836a8557a4f6dfee930"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="dba__driver_8php.html#af531546fac5f0836a8557a4f6dfee930">dbesc_array_cb</a> (&amp;$item, $key)</td></tr>
<tr class="separator:af531546fac5f0836a8557a4f6dfee930"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a65b83462bd26968106aebd43f16540e4"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="dba__driver_8php.html#a65b83462bd26968106aebd43f16540e4">dbesc_array</a> (&amp;$arr)</td></tr>
<tr class="separator:a65b83462bd26968106aebd43f16540e4"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a2994daa03b1c23229a27e39bcab75e67"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="dba__driver_8php.html#a2994daa03b1c23229a27e39bcab75e67">db_getfunc</a> ($f)</td></tr>
+<tr class="separator:a2994daa03b1c23229a27e39bcab75e67"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table>
-<h2 class="groupheader">Function Documentation</h2>
-<a class="anchor" id="ac10e60f6e5b95bcf67bd82cb88f37947"></a>
+<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
+<div class="textblock"><p>some database related functions and abstract driver class. </p>
+<p>This file contains the abstract database driver class <a class="el" href="classdba__driver.html" title="abstract database driver class.">dba_driver</a> and some functions for working with databases. </p>
+</div><h2 class="groupheader">Function Documentation</h2>
+<a class="anchor" id="a7c1b98a710ead27382c958ad3216c4ee"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">db_concat </td>
+ <td>(</td>
+ <td class="paramtype">&#160;</td>
+ <td class="paramname"><em>$fld</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">&#160;</td>
+ <td class="paramname"><em>$sep</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="acl_8php.html#ac6776dba871806ecdb5d1659bc2eb07a">acl_init()</a>, and <a class="el" href="admin_8php.html#a62f10f90c47686c9c3c37c4c03a108d2">admin_page_users()</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="a2994daa03b1c23229a27e39bcab75e67"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">db_getfunc </td>
+ <td>(</td>
+ <td class="paramtype">&#160;</td>
+ <td class="paramname"><em>$f</em></td><td>)</td>
+ <td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Referenced by <a class="el" href="Contact_8php.html#a024919623a830e8703ac4f23496dd66c">abook_toggle_flag()</a>, <a class="el" href="socgraph_8php.html#a7d34cd58025bcd9e575282f44db75918">common_friends()</a>, <a class="el" href="connect_8php.html#a417ec27afe33f21a929667a665e32ee2">connect_post()</a>, <a class="el" href="account_8php.html#a0d183a3cb4c67a0f5e906811df7a1fc9">downgrade_accounts()</a>, <a class="el" href="externals_8php.html#a4df44079e6f915286088b7a0d44db926">externals_run()</a>, <a class="el" href="security_8php.html#a9355488460ab11d6058656ff919e5cf9">item_permissions_sql()</a>, <a class="el" href="security_8php.html#afa683bc025a1d2fe9065e2f6cd71a22f">permissions_sql()</a>, <a class="el" href="poller_8php.html#a5f12df3a4738124b6c039971e87e76da">poller_run()</a>, <a class="el" href="security_8php.html#ab3bdd30dc60d9ee72370b866aa4a2d01">public_permissions_sql()</a>, <a class="el" href="Contact_8php.html#a7e3f5bef8ea1d2bf8434c9be36a2b713">random_profile()</a>, <a class="el" href="search_8php.html#ab2568591359edde5b483a6cd9a24b2cc">search_content()</a>, and <a class="el" href="widgets_8php.html#a829c5a5c7448129266fc1df3ae1a3c2e">widget_random_block()</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="a75098bf1d59ea57f7ebae657a369137e"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">db_optimizetable </td>
+ <td>(</td>
+ <td class="paramtype">&#160;</td>
+ <td class="paramname"><em>$table</em></td><td>)</td>
+ <td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Referenced by <a class="el" href="session_8php.html#ac95373f4966862a028033dd2f94d4da1">ref_session_gc()</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="acec84a8fb75d78daf657cbe5df74e25a"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">db_quoteinterval </td>
+ <td>(</td>
+ <td class="paramtype">&#160;</td>
+ <td class="paramname"><em>$txt</em></td><td>)</td>
+ <td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Referenced by <a class="el" href="include_2chat_8php.html#a2c95b545e46bfee64faa05ecf0afea91">chatroom_enter()</a>, <a class="el" href="expire_8php.html#a444e45c9b67727b27db4c779fd51a298">expire_run()</a>, <a class="el" href="items_8php.html#a6f7e1334af5d684a987fa6a3eb37f4cc">item_expire()</a>, <a class="el" href="Contact_8php.html#a08845ce8c5b997d5edac38ae7118b5c8">mark_orphan_hubsxchans()</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="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="queue_8php.html#af8c93de86d866c3200174c8450a0f341">queue_run()</a>, <a class="el" href="Contact_8php.html#a7e3f5bef8ea1d2bf8434c9be36a2b713">random_profile()</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="datetime_8php.html#af1cd77c97c901d9239cb7a61f97f9826">update_birthdays()</a>, <a class="el" href="statistics__fns_8php.html#a82726229a961d3bd3d543005c61dd8e6">update_channels_active_halfyear_stat()</a>, <a class="el" href="statistics__fns_8php.html#ad2b7b595c039c4c2eb0d6cd57a393dfe">update_channels_active_monthly_stat()</a>, and <a class="el" href="socgraph_8php.html#a790690bb1a1d02483fe31632a160144d">update_suggestions()</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="a30e9a643be804e905f5614a3279d2645"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">db_utcnow </td>
+ <td>(</td>
+ <td class="paramname"></td><td>)</td>
+ <td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Referenced by <a class="el" href="include_2chat_8php.html#a2c95b545e46bfee64faa05ecf0afea91">chatroom_enter()</a>, <a class="el" href="expire_8php.html#a444e45c9b67727b27db4c779fd51a298">expire_run()</a>, <a class="el" href="items_8php.html#a6f7e1334af5d684a987fa6a3eb37f4cc">item_expire()</a>, <a class="el" href="Contact_8php.html#a08845ce8c5b997d5edac38ae7118b5c8">mark_orphan_hubsxchans()</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="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="queue_8php.html#af8c93de86d866c3200174c8450a0f341">queue_run()</a>, <a class="el" href="Contact_8php.html#a7e3f5bef8ea1d2bf8434c9be36a2b713">random_profile()</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="datetime_8php.html#af1cd77c97c901d9239cb7a61f97f9826">update_birthdays()</a>, <a class="el" href="statistics__fns_8php.html#a82726229a961d3bd3d543005c61dd8e6">update_channels_active_halfyear_stat()</a>, <a class="el" href="statistics__fns_8php.html#ad2b7b595c039c4c2eb0d6cd57a393dfe">update_channels_active_monthly_stat()</a>, and <a class="el" href="socgraph_8php.html#a790690bb1a1d02483fe31632a160144d">update_suggestions()</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="a5df8499634c47b30191f34069d7b98c0"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
@@ -174,6 +303,12 @@ Functions</h2></td></tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">&#160;</td>
+ <td class="paramname"><em>$dbtype</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">&#160;</td>
<td class="paramname"><em>$install</em> = <code>false</code>&#160;</td>
</tr>
<tr>
@@ -184,6 +319,22 @@ Functions</h2></td></tr>
</table>
</div><div class="memdoc">
+<p>Returns the database driver object. </p>
+<p>If available it will use PHP's mysqli otherwise mysql driver.</p>
+<dl class="params"><dt>Parameters</dt><dd>
+ <table class="params">
+ <tr><td class="paramtype">string</td><td class="paramname">$server</td><td>DB server name </td></tr>
+ <tr><td class="paramtype">string</td><td class="paramname">$port</td><td>DB port </td></tr>
+ <tr><td class="paramtype">string</td><td class="paramname">$user</td><td>DB username </td></tr>
+ <tr><td class="paramtype">string</td><td class="paramname">$pass</td><td>DB password </td></tr>
+ <tr><td class="paramtype">string</td><td class="paramname">$db</td><td>database name </td></tr>
+ <tr><td class="paramtype">string</td><td class="paramname">$dbtype</td><td>0 for mysql, 1 for postgres </td></tr>
+ <tr><td class="paramtype">bool</td><td class="paramname">$install</td><td>Defaults to false </td></tr>
+ </table>
+ </dd>
+</dl>
+<dl class="section return"><dt>Returns</dt><dd>null|dba_driver A database driver object (dba_mysql|dba_mysqli) or null if no driver found. </dd></dl>
+
<p>Referenced by <a class="el" href="cli__startup_8php.html#adfdde63686e33ccd4851fa5edc4fc70b">cli_startup()</a>, and <a class="el" href="setup_8php.html#a13cf286774149a0a7bd8adb8179cec75">setup_post()</a>.</p>
</div>
@@ -202,7 +353,17 @@ Functions</h2></td></tr>
</table>
</div><div class="memdoc">
-<p>Referenced by <a class="el" href="Contact_8php.html#a024919623a830e8703ac4f23496dd66c">abook_toggle_flag()</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="items_8php.html#a81565acf729e629e588d823308448e3c">add_source_route()</a>, <a class="el" href="admin_8php.html#a278289bc6d45f6f2a272a7ab6a1d1057">admin_page_profs_post()</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#afe534f826e4282b72d66e8cadca7bb73">api_login()</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_2apps_8php.html#a6b472df85ed875e7ae75642cece5206f">app_destroy()</a>, <a class="el" href="include_2apps_8php.html#a1adcd1aff4d36ad0277daca9f3d2bbe2">app_installed()</a>, <a class="el" href="include_2apps_8php.html#a15626f24069c18816f7cdaf4735f58f9">app_store()</a>, <a class="el" href="include_2apps_8php.html#aeab6a62d2f3dfaa86ed043a006305f46">app_update()</a>, <a class="el" href="appman_8php.html#af48805ac2f6f123f2681a8ae1c6f123f">appman_content()</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="bb2diaspora_8php.html#a5258d2f1addeb0a2a6b54c4f9e7d0f34">bb2dmention_callback()</a>, <a class="el" href="block_8php.html#a8a82a470acdfbc7a8e749509caeeea45">block_content()</a>, <a class="el" href="blocks_8php.html#a2531a8fd51db3cecb2eb20c002c66e12">blocks_content()</a>, <a class="el" href="include_2bookmarks_8php.html#aef1cb2968c41c759f2d106e1088ca323">bookmark_add()</a>, <a class="el" href="mod_2bookmarks_8php.html#a6b7942f3d27e40f0f47c88704127b9b3">bookmarks_init()</a>, <a class="el" href="zot_8php.html#aa97b33b619dd7132a9274f852af6ceb5">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#a4e8af0f0525161da74583c04b8b03097">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="include_2chat_8php.html#acea6b176eb7aff44d9ba3ae24ce511d3">chat_message()</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="dir__fns_8php.html#a2f7d74bb2aea8bcd2537aee5c6708a16">check_upstream_directory()</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#adc26e08aa61f5666da04ab5d2a9d68a6">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#aac8c9eb4338e2a996c43914392c6cfdb">delete_item_lowlevel()</a>, <a class="el" href="deliver_8php.html#a397afcb9afecf0c1816b0951189dd346">deliver_run()</a>, <a class="el" href="diaspora_8php.html#a006731620a5242d410358b32678e48e3">diaspora_asphoto()</a>, <a class="el" href="diaspora_8php.html#a0fb2abe304aae19efc040a5e6b917829">diaspora_comment()</a>, <a class="el" href="diaspora_8php.html#adef30b6fac948baedcc7194d5d155b5f">diaspora_conversation()</a>, <a class="el" href="diaspora_8php.html#ab99505944728d46585b8312989de533d">diaspora_dispatch_public()</a>, <a class="el" href="diaspora_8php.html#aa8e551a53fcce34be3942d0c3e20d1f4">diaspora_get_contact_by_handle()</a>, <a class="el" href="diaspora_8php.html#a5ed66b910d7b0284f9b3ee04e72306ff">diaspora_handle_from_contact()</a>, <a class="el" href="diaspora_8php.html#a5d57518545baa31cf8a85a937a267681">diaspora_like()</a>, <a class="el" href="bb2diaspora_8php.html#a4a27604f0745f1efda672966aaca9a3b">diaspora_mention_callback()</a>, <a class="el" href="diaspora_8php.html#a7cff2f8f11044c1b3a360f20e1bbee46">diaspora_message()</a>, <a class="el" href="diaspora_8php.html#a71fe9bb66626b4197ae018a230778bb2">diaspora_photo()</a>, <a class="el" href="diaspora_8php.html#a20b968d64ef26afe5cb0cc75a7570a31">diaspora_post()</a>, <a class="el" href="diaspora_8php.html#a131abd521b218d6ae6f7d2917d8b2605">diaspora_process_outbound()</a>, <a class="el" href="diaspora_8php.html#a900abf51398b2ef26cd2cd31c52f1b0f">diaspora_profile()</a>, <a class="el" href="diaspora_8php.html#ac1ab782a34552a7c6b4dc961754ed598">diaspora_request()</a>, <a class="el" href="diaspora_8php.html#a2bf43f6b5890897f425ef4325d34b007">diaspora_reshare()</a>, <a class="el" href="diaspora_8php.html#a938c7ee808d38725c0988fa6006805b9">diaspora_retraction()</a>, <a class="el" href="diaspora_8php.html#af4698b165766f83d89ec1ea964bc92cc">diaspora_send_followup()</a>, <a class="el" href="diaspora_8php.html#ae6f52efd81fe515cd9912bc8293abf5b">diaspora_send_images()</a>, <a class="el" href="diaspora_8php.html#a0b3628a5e53332c3d3196b689fe2b94d">diaspora_send_relay()</a>, <a class="el" href="diaspora_8php.html#af3a7f9879c14fec761dcc5563fb39bac">diaspora_share()</a>, <a class="el" href="diaspora_8php.html#aa34d2748bb97e9e193cacd572f335055">diaspora_signed_retraction()</a>, <a class="el" href="diaspora_8php.html#aa704d6aa2ac77be345c0f501168e6e56">diaspora_transmit()</a>, <a class="el" href="dirsearch_8php.html#a52bcac49b0e35cc8c6b70066143c2ee2">dir_query_build()</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="include_2network_8php.html#a5176176ddc1906d91f186df6fbd87b48">discover_by_url()</a>, <a class="el" href="include_2network_8php.html#a63e62946e194928eb17c5a9f2bbef0fe">discover_by_webbie()</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="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#ac9f206819186b65952ac1869f0da8c6e">event_addtocal()</a>, <a class="el" href="event_8php.html#af5ac41e7ea3f7131088fe6333fd2846c">event_store_event()</a>, <a class="el" href="event_8php.html#a7378e839ac3de9d55579eb3ec48eaf92">event_store_item()</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="externals_8php.html#a4df44079e6f915286088b7a0d44db926">externals_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="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="items_8php.html#a8cda98925a4c5c2f6dade70d9586d79a">filter_insecure()</a>, <a class="el" href="diaspora_8php.html#aade0c165fcdded71352c7a67bf6ce37b">find_diaspora_person_by_handle()</a>, <a class="el" href="include_2attach_8php.html#a4dbfd7e1cef52aa9ef52f4b88929fa86">find_filename_by_hash()</a>, <a class="el" href="include_2attach_8php.html#a052f14487ff2ce72f62a09fac8d7e997">find_folder_hash_by_attach_hash()</a>, <a class="el" href="classRedBrowser.html#ae4edd4e10c709e2624c1aeb47b0440c5">RedBrowser\findAttachHash()</a>, <a class="el" href="classRedBrowser.html#a20d81230645ddca08a88bfd9ea9f88f1">RedBrowser\findAttachIdByHash()</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="taxonomy_8php.html#a7747fa859ac56fbffd4f9782d85505de">get_things()</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="items_8php.html#a52c24114b73c0bdb605a03cd29712223">handle_feed()</a>, <a class="el" href="item_8php.html#aa22feef4de326e1d7078dedd892e615c">handle_tag()</a>, <a class="el" href="hcard_8php.html#ac34f26b0e6a37eef44fa49bea135136d">hcard_init()</a>, <a class="el" href="home_8php.html#aa1cf697851a646755baf537f75334c46">home_content()</a>, <a class="el" href="items_8php.html#a2c3f97b2109c05df86d97449b3c78ebc">import_author_diaspora()</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#a20750dd2c36961013fd382fb34e1366c">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#a528e97ca5d69c3b7f35c5d954afde315">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="hubloc_8php.html#aebd244b4616ded022cbbee5e82926951">is_matrix_url()</a>, <a class="el" href="items_8php.html#a02ca33c31ed535d24894f8a9a91ce9df">item_add_cid()</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#a5ed782ff5b9cf050bec931e06de12c00">item_remove_cid()</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="dirsearch_8php.html#a985d410a170549429857af6ff2673149">list_public_sites()</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="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="Contact_8php.html#a08845ce8c5b997d5edac38ae7118b5c8">mark_orphan_hubsxchans()</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="netgrowth_8php.html#a9b87bfc25a7cb11bc7f8e1fdd0310919">netgrowth_content()</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="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="plugin_8php.html#a855c4fdb38c0fc2714d537752a4347f9">plugin_is_installed()</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="poll_8php.html#a26be9d4f230cb68f5be326198cfc6c77">poll_post()</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#a4d9e6ca295e443b740d9960c304b3474">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="profile__photo_8php.html#a561103564199da56e58061a4196eb102">profile_photo_set_profile_perms()</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="hubloc_8php.html#ad3d0dcfcfcb347744f7617fe6f5de002">prune_hub_reinstalls()</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="receive_8php.html#a03d8fa26e77844020ba5602deca7d494">receive_post()</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="rpost_8php.html#a8190354d789000806d9879aea276728f">rpost_content()</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="classRedDirectory.html#adc48035679e52c55d9881f83de535553">RedDirectory\setName()</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="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="items_8php.html#adf2b8137dc4ad9ec958de2842f16f3c2">start_delivery_chain()</a>, <a class="el" href="classphoto__driver.html#a642a8d0c4ad5f887c99c6af77cee287b">photo_driver\store()</a>, <a class="el" href="items_8php.html#af0a887050dc8d0f51c89890cdaf3145f">store_diaspora_comment_sig()</a>, <a class="el" href="taxonomy_8php.html#a4ba1339b2a7054971178ce194e4440fd">store_item_tag()</a>, <a class="el" href="security_8php.html#a3ef2be6a7e4928e39d50059d6feb457c">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="plugin_8php.html#a093a9cb98f51e3643634bd8bc6ed6e76">uninstall_plugin()</a>, <a class="el" href="plugin_8php.html#a56f71fe5adf9586ce950523d8180443e">unregister_hook()</a>, <a class="el" href="datetime_8php.html#af1cd77c97c901d9239cb7a61f97f9826">update_birthdays()</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#ad07be417ac7eda939768804106ddea3d">user_approve()</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="account_8php.html#acd6b8d2124ba5ea4f4794d2c58ae8bf5">verify_email_address()</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#a0e2f5179ed1a73b282dfda7270fcabb3">widget_bookmarkedchats()</a>, <a class="el" href="widgets_8php.html#a313a8d10ab81c71357c12e67e4d7efd5">widget_item()</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>
+<p>Escape strings being passed to DB queries. </p>
+<p>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().</p>
+<dl class="params"><dt>Parameters</dt><dd>
+ <table class="params">
+ <tr><td class="paramtype">string</td><td class="paramname">$str</td><td>A string to pass to a DB query </td></tr>
+ </table>
+ </dd>
+</dl>
+<dl class="section return"><dt>Returns</dt><dd>Return an escaped string of the value to pass to a DB query. </dd></dl>
+
+<p>Referenced by <a class="el" href="Contact_8php.html#a024919623a830e8703ac4f23496dd66c">abook_toggle_flag()</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="items_8php.html#a81565acf729e629e588d823308448e3c">add_source_route()</a>, <a class="el" href="admin_8php.html#a278289bc6d45f6f2a272a7ab6a1d1057">admin_page_profs_post()</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#afe534f826e4282b72d66e8cadca7bb73">api_login()</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_2apps_8php.html#a6b472df85ed875e7ae75642cece5206f">app_destroy()</a>, <a class="el" href="include_2apps_8php.html#a1adcd1aff4d36ad0277daca9f3d2bbe2">app_installed()</a>, <a class="el" href="include_2apps_8php.html#a15626f24069c18816f7cdaf4735f58f9">app_store()</a>, <a class="el" href="include_2apps_8php.html#aeab6a62d2f3dfaa86ed043a006305f46">app_update()</a>, <a class="el" href="appman_8php.html#af48805ac2f6f123f2681a8ae1c6f123f">appman_content()</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="bb2diaspora_8php.html#aab32042f8bd63552d3fadeeae9eab083">bb2diaspora_itemwallwall()</a>, <a class="el" href="bb2diaspora_8php.html#a5258d2f1addeb0a2a6b54c4f9e7d0f34">bb2dmention_callback()</a>, <a class="el" href="block_8php.html#a8a82a470acdfbc7a8e749509caeeea45">block_content()</a>, <a class="el" href="blocks_8php.html#a2531a8fd51db3cecb2eb20c002c66e12">blocks_content()</a>, <a class="el" href="include_2bookmarks_8php.html#aef1cb2968c41c759f2d106e1088ca323">bookmark_add()</a>, <a class="el" href="mod_2bookmarks_8php.html#a6b7942f3d27e40f0f47c88704127b9b3">bookmarks_init()</a>, <a class="el" href="zot_8php.html#aa97b33b619dd7132a9274f852af6ceb5">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#a4e8af0f0525161da74583c04b8b03097">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="include_2chat_8php.html#acea6b176eb7aff44d9ba3ae24ce511d3">chat_message()</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="dir__fns_8php.html#a2f7d74bb2aea8bcd2537aee5c6708a16">check_upstream_directory()</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#adc26e08aa61f5666da04ab5d2a9d68a6">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="classRedMatrix_1_1RedDAV_1_1RedDirectory.html#a58e750256cdc2f0f79fbe8d5463ffefe">RedMatrix\RedDAV\RedDirectory\createFile()</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#aac8c9eb4338e2a996c43914392c6cfdb">delete_item_lowlevel()</a>, <a class="el" href="deliver_8php.html#a397afcb9afecf0c1816b0951189dd346">deliver_run()</a>, <a class="el" href="diaspora_8php.html#a006731620a5242d410358b32678e48e3">diaspora_asphoto()</a>, <a class="el" href="diaspora_8php.html#a0fb2abe304aae19efc040a5e6b917829">diaspora_comment()</a>, <a class="el" href="diaspora_8php.html#adef30b6fac948baedcc7194d5d155b5f">diaspora_conversation()</a>, <a class="el" href="diaspora_8php.html#ab99505944728d46585b8312989de533d">diaspora_dispatch_public()</a>, <a class="el" href="diaspora_8php.html#aa8e551a53fcce34be3942d0c3e20d1f4">diaspora_get_contact_by_handle()</a>, <a class="el" href="diaspora_8php.html#a5ed66b910d7b0284f9b3ee04e72306ff">diaspora_handle_from_contact()</a>, <a class="el" href="diaspora_8php.html#a5d57518545baa31cf8a85a937a267681">diaspora_like()</a>, <a class="el" href="bb2diaspora_8php.html#a4a27604f0745f1efda672966aaca9a3b">diaspora_mention_callback()</a>, <a class="el" href="diaspora_8php.html#a7cff2f8f11044c1b3a360f20e1bbee46">diaspora_message()</a>, <a class="el" href="diaspora_8php.html#a71fe9bb66626b4197ae018a230778bb2">diaspora_photo()</a>, <a class="el" href="diaspora_8php.html#a20b968d64ef26afe5cb0cc75a7570a31">diaspora_post()</a>, <a class="el" href="diaspora_8php.html#a131abd521b218d6ae6f7d2917d8b2605">diaspora_process_outbound()</a>, <a class="el" href="diaspora_8php.html#ac1ab782a34552a7c6b4dc961754ed598">diaspora_request()</a>, <a class="el" href="diaspora_8php.html#a2bf43f6b5890897f425ef4325d34b007">diaspora_reshare()</a>, <a class="el" href="diaspora_8php.html#a938c7ee808d38725c0988fa6006805b9">diaspora_retraction()</a>, <a class="el" href="diaspora_8php.html#af4698b165766f83d89ec1ea964bc92cc">diaspora_send_followup()</a>, <a class="el" href="diaspora_8php.html#ae6f52efd81fe515cd9912bc8293abf5b">diaspora_send_images()</a>, <a class="el" href="diaspora_8php.html#a0b3628a5e53332c3d3196b689fe2b94d">diaspora_send_relay()</a>, <a class="el" href="diaspora_8php.html#a69f250b078a46e405647428ec3399a16">diaspora_share()</a>, <a class="el" href="diaspora_8php.html#aa34d2748bb97e9e193cacd572f335055">diaspora_signed_retraction()</a>, <a class="el" href="diaspora_8php.html#aa704d6aa2ac77be345c0f501168e6e56">diaspora_transmit()</a>, <a class="el" href="dirsearch_8php.html#ab6d5fefa98da249a994b910434a669c2">dir_flag_build()</a>, <a class="el" href="dirsearch_8php.html#a52bcac49b0e35cc8c6b70066143c2ee2">dir_query_build()</a>, <a class="el" href="mod_2directory_8php.html#a5ee59c213508b6b9787612a8219cb5bf">directory_init()</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="include_2network_8php.html#a5176176ddc1906d91f186df6fbd87b48">discover_by_url()</a>, <a class="el" href="include_2network_8php.html#a63e62946e194928eb17c5a9f2bbef0fe">discover_by_webbie()</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#ac9f206819186b65952ac1869f0da8c6e">event_addtocal()</a>, <a class="el" href="event_8php.html#af5ac41e7ea3f7131088fe6333fd2846c">event_store_event()</a>, <a class="el" href="event_8php.html#a7378e839ac3de9d55579eb3ec48eaf92">event_store_item()</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="externals_8php.html#a4df44079e6f915286088b7a0d44db926">externals_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="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="items_8php.html#a8cda98925a4c5c2f6dade70d9586d79a">filter_insecure()</a>, <a class="el" href="diaspora_8php.html#aade0c165fcdded71352c7a67bf6ce37b">find_diaspora_person_by_handle()</a>, <a class="el" href="include_2attach_8php.html#a4dbfd7e1cef52aa9ef52f4b88929fa86">find_filename_by_hash()</a>, <a class="el" href="include_2attach_8php.html#a052f14487ff2ce72f62a09fac8d7e997">find_folder_hash_by_attach_hash()</a>, <a class="el" href="classRedMatrix_1_1RedDAV_1_1RedBrowser.html#ad4bc0516533c62733f38043a37267d78">RedMatrix\RedDAV\RedBrowser\findAttachHash()</a>, <a class="el" href="classRedMatrix_1_1RedDAV_1_1RedBrowser.html#a0733e38e254474d9a456825e72f1ddfd">RedMatrix\RedDAV\RedBrowser\findAttachIdByHash()</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="classRedMatrix_1_1RedDAV_1_1RedFile.html#a7241beecd01f5bb4e74659863dd85bd8">RedMatrix\RedDAV\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="taxonomy_8php.html#a7747fa859ac56fbffd4f9782d85505de">get_things()</a>, <a class="el" href="classRedMatrix_1_1RedDAV_1_1RedDirectory.html#a825dc5f3e0f83f50736c16daa6a4809d">RedMatrix\RedDAV\RedDirectory\getDir()</a>, <a class="el" href="classRedMatrix_1_1RedDAV_1_1RedDirectory.html#a69db5f641f8f5dc999e55cee1832ecd5">RedMatrix\RedDAV\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="items_8php.html#a52c24114b73c0bdb605a03cd29712223">handle_feed()</a>, <a class="el" href="text_8php.html#aa22feef4de326e1d7078dedd892e615c">handle_tag()</a>, <a class="el" href="hcard_8php.html#ac34f26b0e6a37eef44fa49bea135136d">hcard_init()</a>, <a class="el" href="home_8php.html#a6e3dbf78f4ed74ab2577de221190b33f">home_content()</a>, <a class="el" href="hubloc_8php.html#ad86214b3a74084bd7b54e8d6c919ce4d">hubloc_change_primary()</a>, <a class="el" href="impel_8php.html#ab7db6fca43b42ea4332cb3e841b3cf7b">impel_init()</a>, <a class="el" href="items_8php.html#a2c3f97b2109c05df86d97449b3c78ebc">import_author_diaspora()</a>, <a class="el" href="items_8php.html#a6bee35961f2e32905f20367a9309d627">import_author_rss()</a>, <a class="el" href="items_8php.html#a37f79991f36811cf847446ff60e8e11f">import_author_unknown()</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#a20750dd2c36961013fd382fb34e1366c">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#a528e97ca5d69c3b7f35c5d954afde315">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="hubloc_8php.html#aebd244b4616ded022cbbee5e82926951">is_matrix_url()</a>, <a class="el" href="items_8php.html#a02ca33c31ed535d24894f8a9a91ce9df">item_add_cid()</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#a5ed782ff5b9cf050bec931e06de12c00">item_remove_cid()</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="dirsearch_8php.html#a985d410a170549429857af6ff2673149">list_public_sites()</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#aee4b619839cf4b64220f34edf5c67b52">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="locs_8php.html#a6c900f53970c0d0e738d2fe06d27ca44">locs_content()</a>, <a class="el" href="locs_8php.html#a6b43654592919ac863d67a1f787a69b9">locs_post()</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="Contact_8php.html#a08845ce8c5b997d5edac38ae7118b5c8">mark_orphan_hubsxchans()</a>, <a class="el" href="auth_8php.html#a69fa663e6baf65f80d1b114ad72615f2">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="include_2menu_8php.html#a251bf7e15d21627fd92614198e41c485">menu_list_count()</a>, <a class="el" href="msearch_8php.html#ac80d2a6c0a92e79eec7efbbccd74d9a8">msearch_post()</a>, <a class="el" href="netgrowth_8php.html#a9b87bfc25a7cb11bc7f8e1fdd0310919">netgrowth_content()</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="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="p_8php.html#af9d5530ca0b3dc9409cf591c39e2480e">p_init()</a>, <a class="el" href="page_8php.html#a4d89800c0366a239191b1692c09635cf">page_init()</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="plugin_8php.html#a855c4fdb38c0fc2714d537752a4347f9">plugin_is_installed()</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="poll_8php.html#a26be9d4f230cb68f5be326198cfc6c77">poll_post()</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#a0e3006e7a456b2175a9badc96bc5176d">process_delivery()</a>, <a class="el" href="zot_8php.html#a8eeefdb0dad4c436bea9d1c06c0a7988">process_location_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="profile__photo_8php.html#a561103564199da56e58061a4196eb102">profile_photo_set_profile_perms()</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="hubloc_8php.html#ad3d0dcfcfcb347744f7617fe6f5de002">prune_hub_reinstalls()</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="classRedMatrix_1_1RedDAV_1_1RedFile.html#a709ec1288d21ddf1353524435ab916f0">RedMatrix\RedDAV\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="receive_8php.html#a03d8fa26e77844020ba5602deca7d494">receive_post()</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="refimport_8php.html#ad97ebb5feda0230a4834e0b3637a0d29">refimport_content()</a>, <a class="el" href="refimport_8php.html#a01a29630fa5e1ce6cd5e1fd75280747c">reflect_comment_store()</a>, <a class="el" href="refimport_8php.html#a6c3e0475fde9fe72ff2492a5e3e5259c">reflect_get_channel()</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="hubloc_8php.html#a84c79b7be352f62d12fe4fa2c80fc6ea">remove_obsolete_hublocs()</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="rpost_8php.html#a8190354d789000806d9879aea276728f">rpost_content()</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="classRedMatrix_1_1RedDAV_1_1RedFile.html#a0350cb4e0327e1f9922869a48ee04f1d">RedMatrix\RedDAV\RedFile\setName()</a>, <a class="el" href="classRedMatrix_1_1RedDAV_1_1RedDirectory.html#a14ac61d31a031d139956763db4e03956">RedMatrix\RedDAV\RedDirectory\setName()</a>, <a class="el" href="settings_8php.html#aa7ee94d88ac088edb04ccf3a26de3586">settings_post()</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="items_8php.html#adf2b8137dc4ad9ec958de2842f16f3c2">start_delivery_chain()</a>, <a class="el" href="classphoto__driver.html#a642a8d0c4ad5f887c99c6af77cee287b">photo_driver\store()</a>, <a class="el" href="items_8php.html#a25221826fa4621f523c68483e3b6af26">store_diaspora_comment_sig()</a>, <a class="el" href="taxonomy_8php.html#a4ba1339b2a7054971178ce194e4440fd">store_item_tag()</a>, <a class="el" href="security_8php.html#a3ef2be6a7e4928e39d50059d6feb457c">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="zot_8php.html#ab15c04e7e5f44edf45ec50dd7d183254">sync_locations()</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="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="plugin_8php.html#a093a9cb98f51e3643634bd8bc6ed6e76">uninstall_plugin()</a>, <a class="el" href="plugin_8php.html#a56f71fe5adf9586ce950523d8180443e">unregister_hook()</a>, <a class="el" href="datetime_8php.html#af1cd77c97c901d9239cb7a61f97f9826">update_birthdays()</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#ad07be417ac7eda939768804106ddea3d">user_approve()</a>, <a class="el" href="account_8php.html#ac1653efba62493b9d87513e1b6c04c83">user_deny()</a>, <a class="el" href="classRedMatrix_1_1RedDAV_1_1RedBasicAuth.html#a6ece02655b780469e59e204c5979a624">RedMatrix\RedDAV\RedBasicAuth\validateUserPass()</a>, <a class="el" href="Contact_8php.html#a6348a532c9d26cd1c9afbc9aa6aa8960">vcard_from_xchan()</a>, <a class="el" href="account_8php.html#acd6b8d2124ba5ea4f4794d2c58ae8bf5">verify_email_address()</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#a0e2f5179ed1a73b282dfda7270fcabb3">widget_bookmarkedchats()</a>, <a class="el" href="widgets_8php.html#a313a8d10ab81c71357c12e67e4d7efd5">widget_item()</a>, <a class="el" href="widgets_8php.html#a829c5a5c7448129266fc1df3ae1a3c2e">widget_random_block()</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#a905c3895feb6f276df23f07f16f9bb52">xchan_query()</a>, <a class="el" href="hubloc_8php.html#acb708dd197aae72a4858cf5ff4e3195b">xchan_store()</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#a1cf89557f32d5dfbe8bd90448dc1aa92">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#a3920afe14fc1d82020161b4b86bcd9ac">zot_process_message_request()</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>
@@ -250,6 +411,58 @@ Functions</h2></td></tr>
</div>
</div>
+<a class="anchor" id="aa051799567690a124a3b865bf902f58a"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">dbesc_identifier </td>
+ <td>(</td>
+ <td class="paramtype">&#160;</td>
+ <td class="paramname"><em>$str</em></td><td>)</td>
+ <td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+</div>
+</div>
+<a class="anchor" id="a2a38996670c2936b5769270c49c57593"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">dbescbin </td>
+ <td>(</td>
+ <td class="paramtype">&#160;</td>
+ <td class="paramname"><em>$str</em></td><td>)</td>
+ <td></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="mod_2photos_8php.html#a062bed4d04d14fee8a53f4c9be673080">photos_post()</a>, <a class="el" href="classphoto__driver.html#a5864fae7d8389372955a8e78cec527ac">photo_driver\save()</a>, and <a class="el" href="classphoto__driver.html#a642a8d0c4ad5f887c99c6af77cee287b">photo_driver\store()</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="a2c8a72ec73f39b17a167c90737693f78"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">dbescdate </td>
+ <td>(</td>
+ <td class="paramtype">&#160;</td>
+ <td class="paramname"><em>$date</em></td><td>)</td>
+ <td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Referenced by <a class="el" href="include_2network_8php.html#a63e62946e194928eb17c5a9f2bbef0fe">discover_by_webbie()</a>, and <a class="el" href="zot_8php.html#a528e97ca5d69c3b7f35c5d954afde315">import_xchan()</a>.</p>
+
+</div>
+</div>
<a class="anchor" id="aa6607893d8f60ade9122bcfbd1a53ffb"></a>
<div class="memitem">
<div class="memproto">
@@ -264,6 +477,16 @@ Functions</h2></td></tr>
</table>
</div><div class="memdoc">
+<p>set database driver debugging state. </p>
+<dl class="params"><dt>Parameters</dt><dd>
+ <table class="params">
+ <tr><td class="paramtype">int</td><td class="paramname">$state</td><td>0 to disable debugging </td></tr>
+ </table>
+ </dd>
+</dl>
+
+<p>Referenced by <a class="el" href="connedit_8php.html#a234c48426b652bf4d37053f2af329ac5">connedit_post()</a>.</p>
+
</div>
</div>
<a class="anchor" id="aa377074e70981e8c4e82ca0accd068ee"></a>
@@ -279,12 +502,38 @@ Functions</h2></td></tr>
</tr>
</table>
</div><div class="memdoc">
-<p>Raw db query, no arguments </p>
+
+<p>Raw DB query, no arguments. </p>
+<p>This function executes a raw DB query without any arguments.</p>
+<dl class="params"><dt>Parameters</dt><dd>
+ <table class="params">
+ <tr><td class="paramtype">string</td><td class="paramname">$sql</td><td>The SQL query to execute </td></tr>
+ </table>
+ </dd>
+</dl>
<p>Referenced by <a class="el" href="import_8php.html#af17fef0410518f7eac205d0ea416eaa2">import_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#a77da7ce9a117601d49ac4a67c71b514f">mail_store()</a>, <a class="el" href="zot_8php.html#ac301c67864917c35922257950ae0f95c">process_channel_sync_delivery()</a>, and <a class="el" href="profiles_8php.html#a36f71405ad536228f8bb84a551b23f7e">profiles_init()</a>.</p>
</div>
</div>
+<a class="anchor" id="afaaa1a7eff9c1b65b3b8c464ae37640e"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">dbunescbin </td>
+ <td>(</td>
+ <td class="paramtype">&#160;</td>
+ <td class="paramname"><em>$str</em></td><td>)</td>
+ <td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Referenced by <a class="el" href="photo_8php.html#a582779d24882b0d31ee909a91d70a448">photo_init()</a>, and <a class="el" href="mod_2photos_8php.html#a062bed4d04d14fee8a53f4c9be673080">photos_post()</a>.</p>
+
+</div>
+</div>
<a class="anchor" id="a55bf30d8176967e682656b5be4ad9249"></a>
<div class="memitem">
<div class="memproto">
@@ -299,7 +548,7 @@ Functions</h2></td></tr>
</table>
</div><div class="memdoc">
-<p>Referenced by <a class="el" href="classdba__mysql.html#ac3fd60c278f400907322dac578754a99">dba_mysql\q()</a>, and <a class="el" href="classdba__mysqli.html#a611c4de8d6d7512dffb83a38bb6701ec">dba_mysqli\q()</a>.</p>
+<p>Referenced by <a class="el" href="classdba__mysql.html#ac3fd60c278f400907322dac578754a99">dba_mysql\q()</a>, <a class="el" href="classdba__mysqli.html#a611c4de8d6d7512dffb83a38bb6701ec">dba_mysqli\q()</a>, and <a class="el" href="classdba__postgres.html#a70352880231fba0b859f82cd5b290a9a">dba_postgres\q()</a>.</p>
</div>
</div>
@@ -316,9 +565,19 @@ Functions</h2></td></tr>
</tr>
</table>
</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#a5101d7eca5d6f387e5555f03fe249e33">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="items_8php.html#a81565acf729e629e588d823308448e3c">add_source_route()</a>, <a class="el" href="admin_8php.html#afef415e4011607fbb665610441595015">admin_content()</a>, <a class="el" href="admin_8php.html#ad6f87a764fd35f522c7b4c351d7878ec">admin_page_channels()</a>, <a class="el" href="admin_8php.html#a42e628f367c168add8013352ac74d33f">admin_page_channels_post()</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#a3deba594ca1e11694eac1de0b724ef0a">admin_page_profs()</a>, <a class="el" href="admin_8php.html#a278289bc6d45f6f2a272a7ab6a1d1057">admin_page_profs_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="identity_8php.html#aa870d2c1f558cfd52bef05bc124e8fa4">advanced_profile()</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#afe534f826e4282b72d66e8cadca7bb73">api_login()</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_2apps_8php.html#a6b472df85ed875e7ae75642cece5206f">app_destroy()</a>, <a class="el" href="include_2apps_8php.html#a1adcd1aff4d36ad0277daca9f3d2bbe2">app_installed()</a>, <a class="el" href="include_2apps_8php.html#a01cabfb33b2d0d843cf3bf4e3d3f0ab0">app_list()</a>, <a class="el" href="include_2apps_8php.html#a15626f24069c18816f7cdaf4735f58f9">app_store()</a>, <a class="el" href="include_2apps_8php.html#aeab6a62d2f3dfaa86ed043a006305f46">app_update()</a>, <a class="el" href="appman_8php.html#af48805ac2f6f123f2681a8ae1c6f123f">appman_content()</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="bb2diaspora_8php.html#a5258d2f1addeb0a2a6b54c4f9e7d0f34">bb2dmention_callback()</a>, <a class="el" href="block_8php.html#a8a82a470acdfbc7a8e749509caeeea45">block_content()</a>, <a class="el" href="blocks_8php.html#a2531a8fd51db3cecb2eb20c002c66e12">blocks_content()</a>, <a class="el" href="include_2bookmarks_8php.html#aef1cb2968c41c759f2d106e1088ca323">bookmark_add()</a>, <a class="el" href="mod_2bookmarks_8php.html#a6b7942f3d27e40f0f47c88704127b9b3">bookmarks_init()</a>, <a class="el" href="zot_8php.html#aa97b33b619dd7132a9274f852af6ceb5">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#a4e8af0f0525161da74583c04b8b03097">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="include_2chat_8php.html#acea6b176eb7aff44d9ba3ae24ce511d3">chat_message()</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="dir__fns_8php.html#a2f7d74bb2aea8bcd2537aee5c6708a16">check_upstream_directory()</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#a772f0ae77ad77c8ab68ed918a3870946">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="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#adc26e08aa61f5666da04ab5d2a9d68a6">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#aac8c9eb4338e2a996c43914392c6cfdb">delete_item_lowlevel()</a>, <a class="el" href="deliver_8php.html#a397afcb9afecf0c1816b0951189dd346">deliver_run()</a>, <a class="el" href="diaspora_8php.html#a006731620a5242d410358b32678e48e3">diaspora_asphoto()</a>, <a class="el" href="diaspora_8php.html#a0fb2abe304aae19efc040a5e6b917829">diaspora_comment()</a>, <a class="el" href="diaspora_8php.html#adef30b6fac948baedcc7194d5d155b5f">diaspora_conversation()</a>, <a class="el" href="diaspora_8php.html#ab99505944728d46585b8312989de533d">diaspora_dispatch_public()</a>, <a class="el" href="diaspora_8php.html#aa8e551a53fcce34be3942d0c3e20d1f4">diaspora_get_contact_by_handle()</a>, <a class="el" href="diaspora_8php.html#a5ed66b910d7b0284f9b3ee04e72306ff">diaspora_handle_from_contact()</a>, <a class="el" href="diaspora_8php.html#a5d57518545baa31cf8a85a937a267681">diaspora_like()</a>, <a class="el" href="bb2diaspora_8php.html#a4a27604f0745f1efda672966aaca9a3b">diaspora_mention_callback()</a>, <a class="el" href="diaspora_8php.html#a7cff2f8f11044c1b3a360f20e1bbee46">diaspora_message()</a>, <a class="el" href="diaspora_8php.html#a71fe9bb66626b4197ae018a230778bb2">diaspora_photo()</a>, <a class="el" href="diaspora_8php.html#a20b968d64ef26afe5cb0cc75a7570a31">diaspora_post()</a>, <a class="el" href="diaspora_8php.html#a131abd521b218d6ae6f7d2917d8b2605">diaspora_process_outbound()</a>, <a class="el" href="diaspora_8php.html#a900abf51398b2ef26cd2cd31c52f1b0f">diaspora_profile()</a>, <a class="el" href="diaspora_8php.html#ac1ab782a34552a7c6b4dc961754ed598">diaspora_request()</a>, <a class="el" href="diaspora_8php.html#a2bf43f6b5890897f425ef4325d34b007">diaspora_reshare()</a>, <a class="el" href="diaspora_8php.html#a938c7ee808d38725c0988fa6006805b9">diaspora_retraction()</a>, <a class="el" href="diaspora_8php.html#af4698b165766f83d89ec1ea964bc92cc">diaspora_send_followup()</a>, <a class="el" href="diaspora_8php.html#ae6f52efd81fe515cd9912bc8293abf5b">diaspora_send_images()</a>, <a class="el" href="diaspora_8php.html#aeb2bb78f620dbf51d9335e6eb7444f2c">diaspora_send_mail()</a>, <a class="el" href="diaspora_8php.html#a0b3628a5e53332c3d3196b689fe2b94d">diaspora_send_relay()</a>, <a class="el" href="diaspora_8php.html#af3a7f9879c14fec761dcc5563fb39bac">diaspora_share()</a>, <a class="el" href="diaspora_8php.html#aa34d2748bb97e9e193cacd572f335055">diaspora_signed_retraction()</a>, <a class="el" href="diaspora_8php.html#aa704d6aa2ac77be345c0f501168e6e56">diaspora_transmit()</a>, <a class="el" href="dirsearch_8php.html#a7d4cd9890d5ed23c3efc58e2a778a305">dir_parse_query()</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="include_2network_8php.html#a5176176ddc1906d91f186df6fbd87b48">discover_by_url()</a>, <a class="el" href="include_2network_8php.html#a63e62946e194928eb17c5a9f2bbef0fe">discover_by_webbie()</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#a555762e1022a4b8e3c3abd32e7812408">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#ac9f206819186b65952ac1869f0da8c6e">event_addtocal()</a>, <a class="el" href="event_8php.html#af5ac41e7ea3f7131088fe6333fd2846c">event_store_event()</a>, <a class="el" href="event_8php.html#a7378e839ac3de9d55579eb3ec48eaf92">event_store_item()</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="include_2group_8php.html#a22a81875259c7d3d64d4848afea6b345">expand_groups()</a>, <a class="el" href="expire_8php.html#a444e45c9b67727b27db4c779fd51a298">expire_run()</a>, <a class="el" href="externals_8php.html#a4df44079e6f915286088b7a0d44db926">externals_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#a8cda98925a4c5c2f6dade70d9586d79a">filter_insecure()</a>, <a class="el" href="diaspora_8php.html#aade0c165fcdded71352c7a67bf6ce37b">find_diaspora_person_by_handle()</a>, <a class="el" href="include_2attach_8php.html#a4dbfd7e1cef52aa9ef52f4b88929fa86">find_filename_by_hash()</a>, <a class="el" href="include_2attach_8php.html#a052f14487ff2ce72f62a09fac8d7e997">find_folder_hash_by_attach_hash()</a>, <a class="el" href="classRedBrowser.html#ae4edd4e10c709e2624c1aeb47b0440c5">RedBrowser\findAttachHash()</a>, <a class="el" href="classRedBrowser.html#a20d81230645ddca08a88bfd9ea9f88f1">RedBrowser\findAttachIdByHash()</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="classRedBrowser.html#a1f7daf50bb9bfcde7345b3b1908dbd7e">RedBrowser\generateDirectoryIndex()</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="items_8php.html#a52c24114b73c0bdb605a03cd29712223">handle_feed()</a>, <a class="el" href="item_8php.html#aa22feef4de326e1d7078dedd892e615c">handle_tag()</a>, <a class="el" href="hcard_8php.html#ac34f26b0e6a37eef44fa49bea135136d">hcard_init()</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="identity_8php.html#a2ab5172eabd375869060c9ad68323f5c">identity_selector()</a>, <a class="el" href="items_8php.html#a2c3f97b2109c05df86d97449b3c78ebc">import_author_diaspora()</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#a20750dd2c36961013fd382fb34e1366c">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#a528e97ca5d69c3b7f35c5d954afde315">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="hubloc_8php.html#aebd244b4616ded022cbbee5e82926951">is_matrix_url()</a>, <a class="el" href="identity_8php.html#aa4bd4abfcba883f43919e89ec6419025">is_sys_channel()</a>, <a class="el" href="items_8php.html#a02ca33c31ed535d24894f8a9a91ce9df">item_add_cid()</a>, <a class="el" href="item_8php.html#a5b1b36cb301a94b38150074f0d424e74">item_check_service_class()</a>, <a class="el" href="item_8php.html#a764bbb2e9a885a86fb23d0b5e4a09221">item_content()</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#a5ed782ff5b9cf050bec931e06de12c00">item_remove_cid()</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="Contact_8php.html#a08845ce8c5b997d5edac38ae7118b5c8">mark_orphan_hubsxchans()</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="nav_8php.html#a43be0df73b90647ea70947ce004e231e">nav()</a>, <a class="el" href="netgrowth_8php.html#a9b87bfc25a7cb11bc7f8e1fdd0310919">netgrowth_content()</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="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#a39d547771c5f12a17c097436c82f0fa2">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="plugin_8php.html#a855c4fdb38c0fc2714d537752a4347f9">plugin_is_installed()</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="poll_8php.html#a3314c26bd2ac0ed831cebf3315cd3263">poll_content()</a>, <a class="el" href="poll_8php.html#a26be9d4f230cb68f5be326198cfc6c77">poll_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="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#a4d9e6ca295e443b740d9960c304b3474">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="profile__photo_8php.html#a561103564199da56e58061a4196eb102">profile_photo_set_profile_perms()</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="hubloc_8php.html#ad3d0dcfcfcb347744f7617fe6f5de002">prune_hub_reinstalls()</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#a7e3f5bef8ea1d2bf8434c9be36a2b713">random_profile()</a>, <a class="el" href="Contact_8php.html#a2f4f495d53f2a334ab75292af79d3c91">rconnect_url()</a>, <a class="el" href="receive_8php.html#a03d8fa26e77844020ba5602deca7d494">receive_post()</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="items_8php.html#af6237605c60d69abdd959ddbbee3420c">retain_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="rpost_8php.html#a8190354d789000806d9879aea276728f">rpost_content()</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="account_8php.html#a030cec6793b909c439c0336ba39b1571">service_class_allows()</a>, <a class="el" href="account_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="classRedDirectory.html#adc48035679e52c55d9881f83de535553">RedDirectory\setName()</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="items_8php.html#adf2b8137dc4ad9ec958de2842f16f3c2">start_delivery_chain()</a>, <a class="el" href="classphoto__driver.html#a642a8d0c4ad5f887c99c6af77cee287b">photo_driver\store()</a>, <a class="el" href="items_8php.html#af0a887050dc8d0f51c89890cdaf3145f">store_diaspora_comment_sig()</a>, <a class="el" href="taxonomy_8php.html#a4ba1339b2a7054971178ce194e4440fd">store_item_tag()</a>, <a class="el" href="security_8php.html#a6126c77a1267e046ac59cf864613f011">stream_perms_api_uids()</a>, <a class="el" href="security_8php.html#a3ef2be6a7e4928e39d50059d6feb457c">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="plugin_8php.html#a093a9cb98f51e3643634bd8bc6ed6e76">uninstall_plugin()</a>, <a class="el" href="plugin_8php.html#a56f71fe5adf9586ce950523d8180443e">unregister_hook()</a>, <a class="el" href="datetime_8php.html#af1cd77c97c901d9239cb7a61f97f9826">update_birthdays()</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#ad07be417ac7eda939768804106ddea3d">user_approve()</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="account_8php.html#acd6b8d2124ba5ea4f4794d2c58ae8bf5">verify_email_address()</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#a0e2f5179ed1a73b282dfda7270fcabb3">widget_bookmarkedchats()</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#a313a8d10ab81c71357c12e67e4d7efd5">widget_item()</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#a50b1410238100c8a94c06b0aa63ee3b8">widget_suggestedchats()</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>
+<p>Execute a SQL query with printf style args. </p>
+<p>printf style arguments s and d are replaced with variable arguments, which should each be appropriately <a class="el" href="dba__driver_8php.html#ab222aa1dbf9ea93b320f82028739127e" title="Escape strings being passed to DB queries.">dbesc()</a> 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.</p>
+<p>Example: $r = q("SELECT * FROM &lt;tt&gt;%s&lt;/tt&gt; WHERE &lt;tt&gt;uid&lt;/tt&gt; = %d", 'user', 1);</p>
+<dl class="params"><dt>Parameters</dt><dd>
+ <table class="params">
+ <tr><td class="paramtype">string</td><td class="paramname">$sql</td><td>The SQL query to execute </td></tr>
+ </table>
+ </dd>
+</dl>
+<dl class="section return"><dt>Returns</dt><dd>bool|array </dd></dl>
+
+<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#a5101d7eca5d6f387e5555f03fe249e33">account_remove()</a>, <a class="el" href="account_8php.html#a4328c40ee4b3d68630cf1ebb7b9d4d89">account_service_class_fetch()</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="items_8php.html#a81565acf729e629e588d823308448e3c">add_source_route()</a>, <a class="el" href="admin_8php.html#afef415e4011607fbb665610441595015">admin_content()</a>, <a class="el" href="admin_8php.html#ad6f87a764fd35f522c7b4c351d7878ec">admin_page_channels()</a>, <a class="el" href="admin_8php.html#a42e628f367c168add8013352ac74d33f">admin_page_channels_post()</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#a3deba594ca1e11694eac1de0b724ef0a">admin_page_profs()</a>, <a class="el" href="admin_8php.html#a278289bc6d45f6f2a272a7ab6a1d1057">admin_page_profs_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="identity_8php.html#aa870d2c1f558cfd52bef05bc124e8fa4">advanced_profile()</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#ad5fe62d6c25c86999f627b2e6cfde536">api_group()</a>, <a class="el" href="include_2api_8php.html#ae46f964e5a9c80b96dc78df61c09ed3a">api_group_members()</a>, <a class="el" href="include_2api_8php.html#afe534f826e4282b72d66e8cadca7bb73">api_login()</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_2apps_8php.html#a6b472df85ed875e7ae75642cece5206f">app_destroy()</a>, <a class="el" href="include_2apps_8php.html#a1adcd1aff4d36ad0277daca9f3d2bbe2">app_installed()</a>, <a class="el" href="include_2apps_8php.html#a01cabfb33b2d0d843cf3bf4e3d3f0ab0">app_list()</a>, <a class="el" href="include_2apps_8php.html#a15626f24069c18816f7cdaf4735f58f9">app_store()</a>, <a class="el" href="include_2apps_8php.html#aeab6a62d2f3dfaa86ed043a006305f46">app_update()</a>, <a class="el" href="appman_8php.html#af48805ac2f6f123f2681a8ae1c6f123f">appman_content()</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="bb2diaspora_8php.html#aab32042f8bd63552d3fadeeae9eab083">bb2diaspora_itemwallwall()</a>, <a class="el" href="bb2diaspora_8php.html#a5258d2f1addeb0a2a6b54c4f9e7d0f34">bb2dmention_callback()</a>, <a class="el" href="block_8php.html#a8a82a470acdfbc7a8e749509caeeea45">block_content()</a>, <a class="el" href="blocks_8php.html#a2531a8fd51db3cecb2eb20c002c66e12">blocks_content()</a>, <a class="el" href="include_2bookmarks_8php.html#aef1cb2968c41c759f2d106e1088ca323">bookmark_add()</a>, <a class="el" href="mod_2bookmarks_8php.html#a6b7942f3d27e40f0f47c88704127b9b3">bookmarks_init()</a>, <a class="el" href="zot_8php.html#aa97b33b619dd7132a9274f852af6ceb5">build_sync_packet()</a>, <a class="el" href="plugin_8php.html#a7f05de16c0a32602853b09b99dd85e7c">call_hooks()</a>, <a class="el" href="taxonomy_8php.html#aa8f8a1ff85daef046298e93c83e7a1b4">catblock()</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#a4e8af0f0525161da74583c04b8b03097">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="include_2chat_8php.html#acea6b176eb7aff44d9ba3ae24ce511d3">chat_message()</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="include_2chat_8php.html#a26abdccc2a278a59899896dbbfc6f049">chatroom_list_count()</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="dir__fns_8php.html#a2f7d74bb2aea8bcd2537aee5c6708a16">check_upstream_directory()</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#a772f0ae77ad77c8ab68ed918a3870946">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="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#adc26e08aa61f5666da04ab5d2a9d68a6">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="classRedMatrix_1_1RedDAV_1_1RedDirectory.html#aca0e8d574ea66a0e210f571700663c62">RedMatrix\RedDAV\RedDirectory\createDirectory()</a>, <a class="el" href="classRedMatrix_1_1RedDAV_1_1RedDirectory.html#a58e750256cdc2f0f79fbe8d5463ffefe">RedMatrix\RedDAV\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#aac8c9eb4338e2a996c43914392c6cfdb">delete_item_lowlevel()</a>, <a class="el" href="deliver_8php.html#a397afcb9afecf0c1816b0951189dd346">deliver_run()</a>, <a class="el" href="diaspora_8php.html#a006731620a5242d410358b32678e48e3">diaspora_asphoto()</a>, <a class="el" href="diaspora_8php.html#a0fb2abe304aae19efc040a5e6b917829">diaspora_comment()</a>, <a class="el" href="diaspora_8php.html#adef30b6fac948baedcc7194d5d155b5f">diaspora_conversation()</a>, <a class="el" href="diaspora_8php.html#ab99505944728d46585b8312989de533d">diaspora_dispatch_public()</a>, <a class="el" href="diaspora_8php.html#aa8e551a53fcce34be3942d0c3e20d1f4">diaspora_get_contact_by_handle()</a>, <a class="el" href="diaspora_8php.html#a5ed66b910d7b0284f9b3ee04e72306ff">diaspora_handle_from_contact()</a>, <a class="el" href="diaspora_8php.html#a5d57518545baa31cf8a85a937a267681">diaspora_like()</a>, <a class="el" href="bb2diaspora_8php.html#a4a27604f0745f1efda672966aaca9a3b">diaspora_mention_callback()</a>, <a class="el" href="diaspora_8php.html#a7cff2f8f11044c1b3a360f20e1bbee46">diaspora_message()</a>, <a class="el" href="diaspora_8php.html#a71fe9bb66626b4197ae018a230778bb2">diaspora_photo()</a>, <a class="el" href="diaspora_8php.html#a20b968d64ef26afe5cb0cc75a7570a31">diaspora_post()</a>, <a class="el" href="diaspora_8php.html#a131abd521b218d6ae6f7d2917d8b2605">diaspora_process_outbound()</a>, <a class="el" href="diaspora_8php.html#ac1ab782a34552a7c6b4dc961754ed598">diaspora_request()</a>, <a class="el" href="diaspora_8php.html#a2bf43f6b5890897f425ef4325d34b007">diaspora_reshare()</a>, <a class="el" href="diaspora_8php.html#a938c7ee808d38725c0988fa6006805b9">diaspora_retraction()</a>, <a class="el" href="diaspora_8php.html#af4698b165766f83d89ec1ea964bc92cc">diaspora_send_followup()</a>, <a class="el" href="diaspora_8php.html#ae6f52efd81fe515cd9912bc8293abf5b">diaspora_send_images()</a>, <a class="el" href="diaspora_8php.html#aeb2bb78f620dbf51d9335e6eb7444f2c">diaspora_send_mail()</a>, <a class="el" href="diaspora_8php.html#a0b3628a5e53332c3d3196b689fe2b94d">diaspora_send_relay()</a>, <a class="el" href="diaspora_8php.html#a69f250b078a46e405647428ec3399a16">diaspora_share()</a>, <a class="el" href="diaspora_8php.html#aa34d2748bb97e9e193cacd572f335055">diaspora_signed_retraction()</a>, <a class="el" href="diaspora_8php.html#aa704d6aa2ac77be345c0f501168e6e56">diaspora_transmit()</a>, <a class="el" href="dirsearch_8php.html#a7d4cd9890d5ed23c3efc58e2a778a305">dir_parse_query()</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="mod_2directory_8php.html#a5ee59c213508b6b9787612a8219cb5bf">directory_init()</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="include_2network_8php.html#a5176176ddc1906d91f186df6fbd87b48">discover_by_url()</a>, <a class="el" href="include_2network_8php.html#a63e62946e194928eb17c5a9f2bbef0fe">discover_by_webbie()</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#a555762e1022a4b8e3c3abd32e7812408">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#a56b0f5d2cb36eb8f4bfca84813884f86">encode_item()</a>, <a class="el" href="event_8php.html#ac9f206819186b65952ac1869f0da8c6e">event_addtocal()</a>, <a class="el" href="event_8php.html#af5ac41e7ea3f7131088fe6333fd2846c">event_store_event()</a>, <a class="el" href="event_8php.html#a7378e839ac3de9d55579eb3ec48eaf92">event_store_item()</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="include_2group_8php.html#a22a81875259c7d3d64d4848afea6b345">expand_groups()</a>, <a class="el" href="expire_8php.html#a444e45c9b67727b27db4c779fd51a298">expire_run()</a>, <a class="el" href="externals_8php.html#a4df44079e6f915286088b7a0d44db926">externals_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#a8cda98925a4c5c2f6dade70d9586d79a">filter_insecure()</a>, <a class="el" href="diaspora_8php.html#aade0c165fcdded71352c7a67bf6ce37b">find_diaspora_person_by_handle()</a>, <a class="el" href="include_2attach_8php.html#a4dbfd7e1cef52aa9ef52f4b88929fa86">find_filename_by_hash()</a>, <a class="el" href="include_2attach_8php.html#a052f14487ff2ce72f62a09fac8d7e997">find_folder_hash_by_attach_hash()</a>, <a class="el" href="classRedMatrix_1_1RedDAV_1_1RedBrowser.html#ad4bc0516533c62733f38043a37267d78">RedMatrix\RedDAV\RedBrowser\findAttachHash()</a>, <a class="el" href="classRedMatrix_1_1RedDAV_1_1RedBrowser.html#a0733e38e254474d9a456825e72f1ddfd">RedMatrix\RedDAV\RedBrowser\findAttachIdByHash()</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="classRedMatrix_1_1RedDAV_1_1RedBrowser.html#af764d5f14df751f9ec86c34fab300c09">RedMatrix\RedDAV\RedBrowser\generateDirectoryIndex()</a>, <a class="el" href="classCache.html#a70392b109331897bf9fdd7f1960e21de">Cache\get()</a>, <a class="el" href="classRedMatrix_1_1RedDAV_1_1RedFile.html#a7241beecd01f5bb4e74659863dd85bd8">RedMatrix\RedDAV\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="identity_8php.html#a293f416ce9050220b183e08ff5890216">get_channel_default_perms()</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="classRedMatrix_1_1RedDAV_1_1RedDirectory.html#a825dc5f3e0f83f50736c16daa6a4809d">RedMatrix\RedDAV\RedDirectory\getDir()</a>, <a class="el" href="classRedMatrix_1_1RedDAV_1_1RedDirectory.html#a69db5f641f8f5dc999e55cee1832ecd5">RedMatrix\RedDAV\RedDirectory\getLastModified()</a>, <a class="el" href="classRedMatrix_1_1RedDAV_1_1RedDirectory.html#a69db443ed3c84938b4352fe515bf8d68">RedMatrix\RedDAV\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="items_8php.html#a52c24114b73c0bdb605a03cd29712223">handle_feed()</a>, <a class="el" href="text_8php.html#aa22feef4de326e1d7078dedd892e615c">handle_tag()</a>, <a class="el" href="hcard_8php.html#ac34f26b0e6a37eef44fa49bea135136d">hcard_init()</a>, <a class="el" href="home_8php.html#a6e3dbf78f4ed74ab2577de221190b33f">home_content()</a>, <a class="el" href="hubloc_8php.html#ad86214b3a74084bd7b54e8d6c919ce4d">hubloc_change_primary()</a>, <a class="el" href="identity_8php.html#afaedbc8e2d2a70ec8b006162baac5249">identity_basic_export()</a>, <a class="el" href="identity_8php.html#ac9fcd5c4c371998790b5c55c3d0f4633">identity_check_service_class()</a>, <a class="el" href="identity_8php.html#a2ab5172eabd375869060c9ad68323f5c">identity_selector()</a>, <a class="el" href="impel_8php.html#ab7db6fca43b42ea4332cb3e841b3cf7b">impel_init()</a>, <a class="el" href="items_8php.html#a2c3f97b2109c05df86d97449b3c78ebc">import_author_diaspora()</a>, <a class="el" href="items_8php.html#a6bee35961f2e32905f20367a9309d627">import_author_rss()</a>, <a class="el" href="items_8php.html#a37f79991f36811cf847446ff60e8e11f">import_author_unknown()</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#a20750dd2c36961013fd382fb34e1366c">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#a528e97ca5d69c3b7f35c5d954afde315">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="hubloc_8php.html#aebd244b4616ded022cbbee5e82926951">is_matrix_url()</a>, <a class="el" href="identity_8php.html#aa4bd4abfcba883f43919e89ec6419025">is_sys_channel()</a>, <a class="el" href="items_8php.html#a02ca33c31ed535d24894f8a9a91ce9df">item_add_cid()</a>, <a class="el" href="item_8php.html#a5b1b36cb301a94b38150074f0d424e74">item_check_service_class()</a>, <a class="el" href="item_8php.html#a764bbb2e9a885a86fb23d0b5e4a09221">item_content()</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#a5ed782ff5b9cf050bec931e06de12c00">item_remove_cid()</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#a559791dda7fef8a4b2394c83e835787b">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#aee4b619839cf4b64220f34edf5c67b52">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="locs_8php.html#a6c900f53970c0d0e738d2fe06d27ca44">locs_content()</a>, <a class="el" href="locs_8php.html#a6b43654592919ac863d67a1f787a69b9">locs_post()</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="Contact_8php.html#a08845ce8c5b997d5edac38ae7118b5c8">mark_orphan_hubsxchans()</a>, <a class="el" href="match_8php.html#a1dd853e959b9e70c1911bb2fb5f5130d">match_content()</a>, <a class="el" href="auth_8php.html#a69fa663e6baf65f80d1b114ad72615f2">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="include_2menu_8php.html#a251bf7e15d21627fd92614198e41c485">menu_list_count()</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="nav_8php.html#a43be0df73b90647ea70947ce004e231e">nav()</a>, <a class="el" href="netgrowth_8php.html#a9b87bfc25a7cb11bc7f8e1fdd0310919">netgrowth_content()</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="identity_8php.html#a2e6a1cc35887937823ec7fbb90472afe">notifications_off()</a>, <a class="el" href="identity_8php.html#a5650319c799de09d1b6d1076b6f839a4">notifications_on()</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="openid_8php.html#a9a13827dbcf61ae4e45f0b6b33a88f43">openid_content()</a>, <a class="el" href="p_8php.html#af9d5530ca0b3dc9409cf591c39e2480e">p_init()</a>, <a class="el" href="page_8php.html#a4d89800c0366a239191b1692c09635cf">page_init()</a>, <a class="el" href="page__widgets_8php.html#a39d547771c5f12a17c097436c82f0fa2">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="plugin_8php.html#a855c4fdb38c0fc2714d537752a4347f9">plugin_is_installed()</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="poll_8php.html#a3314c26bd2ac0ed831cebf3315cd3263">poll_content()</a>, <a class="el" href="poll_8php.html#a26be9d4f230cb68f5be326198cfc6c77">poll_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="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#a0e3006e7a456b2175a9badc96bc5176d">process_delivery()</a>, <a class="el" href="zot_8php.html#a8eeefdb0dad4c436bea9d1c06c0a7988">process_location_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="profile__photo_8php.html#a561103564199da56e58061a4196eb102">profile_photo_set_profile_perms()</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="hubloc_8php.html#ad3d0dcfcfcb347744f7617fe6f5de002">prune_hub_reinstalls()</a>, <a class="el" href="zot_8php.html#a083aec6c900d244e1bfc1406f9461465">public_recips()</a>, <a class="el" href="classRedMatrix_1_1RedDAV_1_1RedFile.html#a709ec1288d21ddf1353524435ab916f0">RedMatrix\RedDAV\RedFile\put()</a>, <a class="el" href="queue_8php.html#af8c93de86d866c3200174c8450a0f341">queue_run()</a>, <a class="el" href="Contact_8php.html#a7e3f5bef8ea1d2bf8434c9be36a2b713">random_profile()</a>, <a class="el" href="Contact_8php.html#a2f4f495d53f2a334ab75292af79d3c91">rconnect_url()</a>, <a class="el" href="receive_8php.html#a03d8fa26e77844020ba5602deca7d494">receive_post()</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="refimport_8php.html#ad97ebb5feda0230a4834e0b3637a0d29">refimport_content()</a>, <a class="el" href="refimport_8php.html#a01a29630fa5e1ce6cd5e1fd75280747c">reflect_comment_store()</a>, <a class="el" href="refimport_8php.html#a6c3e0475fde9fe72ff2492a5e3e5259c">reflect_get_channel()</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="hubloc_8php.html#a84c79b7be352f62d12fe4fa2c80fc6ea">remove_obsolete_hublocs()</a>, <a class="el" href="queue__fn_8php.html#a8fe71e981399bbf5d000a6ca42f57b24">remove_queue_item()</a>, <a class="el" href="items_8php.html#af6237605c60d69abdd959ddbbee3420c">retain_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="rpost_8php.html#a8190354d789000806d9879aea276728f">rpost_content()</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="account_8php.html#a030cec6793b909c439c0336ba39b1571">service_class_allows()</a>, <a class="el" href="account_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="classRedMatrix_1_1RedDAV_1_1RedFile.html#a0350cb4e0327e1f9922869a48ee04f1d">RedMatrix\RedDAV\RedFile\setName()</a>, <a class="el" href="classRedMatrix_1_1RedDAV_1_1RedDirectory.html#a14ac61d31a031d139956763db4e03956">RedMatrix\RedDAV\RedDirectory\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="items_8php.html#adf2b8137dc4ad9ec958de2842f16f3c2">start_delivery_chain()</a>, <a class="el" href="classphoto__driver.html#a642a8d0c4ad5f887c99c6af77cee287b">photo_driver\store()</a>, <a class="el" href="items_8php.html#a25221826fa4621f523c68483e3b6af26">store_diaspora_comment_sig()</a>, <a class="el" href="taxonomy_8php.html#a4ba1339b2a7054971178ce194e4440fd">store_item_tag()</a>, <a class="el" href="security_8php.html#a6126c77a1267e046ac59cf864613f011">stream_perms_api_uids()</a>, <a class="el" href="security_8php.html#a3ef2be6a7e4928e39d50059d6feb457c">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="zot_8php.html#ab15c04e7e5f44edf45ec50dd7d183254">sync_locations()</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="plugin_8php.html#a093a9cb98f51e3643634bd8bc6ed6e76">uninstall_plugin()</a>, <a class="el" href="plugin_8php.html#a56f71fe5adf9586ce950523d8180443e">unregister_hook()</a>, <a class="el" href="datetime_8php.html#af1cd77c97c901d9239cb7a61f97f9826">update_birthdays()</a>, <a class="el" href="statistics__fns_8php.html#a82726229a961d3bd3d543005c61dd8e6">update_channels_active_halfyear_stat()</a>, <a class="el" href="statistics__fns_8php.html#ad2b7b595c039c4c2eb0d6cd57a393dfe">update_channels_active_monthly_stat()</a>, <a class="el" href="statistics__fns_8php.html#a05858927cce81fd367aedf85a94ed90c">update_channels_total_stat()</a>, <a class="el" href="dir__fns_8php.html#a44062d4b471d1e83f92f6c184585aa13">update_directory_entry()</a>, <a class="el" href="statistics__fns_8php.html#a9dd516dda693f17f5ce48a94876f7efa">update_local_posts_stat()</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#ad07be417ac7eda939768804106ddea3d">user_approve()</a>, <a class="el" href="account_8php.html#ac1653efba62493b9d87513e1b6c04c83">user_deny()</a>, <a class="el" href="classRedMatrix_1_1RedDAV_1_1RedBasicAuth.html#a6ece02655b780469e59e204c5979a624">RedMatrix\RedDAV\RedBasicAuth\validateUserPass()</a>, <a class="el" href="Contact_8php.html#a6348a532c9d26cd1c9afbc9aa6aa8960">vcard_from_xchan()</a>, <a class="el" href="account_8php.html#acd6b8d2124ba5ea4f4794d2c58ae8bf5">verify_email_address()</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#a0e2f5179ed1a73b282dfda7270fcabb3">widget_bookmarkedchats()</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#a313a8d10ab81c71357c12e67e4d7efd5">widget_item()</a>, <a class="el" href="widgets_8php.html#a829c5a5c7448129266fc1df3ae1a3c2e">widget_random_block()</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#a50b1410238100c8a94c06b0aa63ee3b8">widget_suggestedchats()</a>, <a class="el" href="taxonomy_8php.html#a83f0a60f9e0c07d8451dc5be95b17287">wtagblock()</a>, <a class="el" href="xchan_8php.html#a9853348bf1a35c644460221ba75edc2d">xchan_content()</a>, <a class="el" href="hubloc_8php.html#af1b476c936f96a93282b1d058e3d05ea">xchan_fetch()</a>, <a class="el" href="text_8php.html#a543447c5ed766535221e2d9636b379ee">xchan_mail_query()</a>, <a class="el" href="text_8php.html#a905c3895feb6f276df23f07f16f9bb52">xchan_query()</a>, <a class="el" href="hubloc_8php.html#acb708dd197aae72a4858cf5ff4e3195b">xchan_store()</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#a1cf89557f32d5dfbe8bd90448dc1aa92">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#a3920afe14fc1d82020161b4b86bcd9ac">zot_process_message_request()</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/dba__driver_8php.js b/doc/html/dba__driver_8php.js
index 425133552..cfe110f61 100644
--- a/doc/html/dba__driver_8php.js
+++ b/doc/html/dba__driver_8php.js
@@ -1,12 +1,21 @@
var dba__driver_8php =
[
[ "dba_driver", "classdba__driver.html", "classdba__driver" ],
- [ "dba_factory", "dba__driver_8php.html#ac10e60f6e5b95bcf67bd82cb88f37947", null ],
+ [ "db_concat", "dba__driver_8php.html#a7c1b98a710ead27382c958ad3216c4ee", null ],
+ [ "db_getfunc", "dba__driver_8php.html#a2994daa03b1c23229a27e39bcab75e67", null ],
+ [ "db_optimizetable", "dba__driver_8php.html#a75098bf1d59ea57f7ebae657a369137e", null ],
+ [ "db_quoteinterval", "dba__driver_8php.html#acec84a8fb75d78daf657cbe5df74e25a", null ],
+ [ "db_utcnow", "dba__driver_8php.html#a30e9a643be804e905f5614a3279d2645", null ],
+ [ "dba_factory", "dba__driver_8php.html#a5df8499634c47b30191f34069d7b98c0", null ],
[ "dbesc", "dba__driver_8php.html#ab222aa1dbf9ea93b320f82028739127e", null ],
[ "dbesc_array", "dba__driver_8php.html#a65b83462bd26968106aebd43f16540e4", null ],
[ "dbesc_array_cb", "dba__driver_8php.html#af531546fac5f0836a8557a4f6dfee930", null ],
+ [ "dbesc_identifier", "dba__driver_8php.html#aa051799567690a124a3b865bf902f58a", null ],
+ [ "dbescbin", "dba__driver_8php.html#a2a38996670c2936b5769270c49c57593", null ],
+ [ "dbescdate", "dba__driver_8php.html#a2c8a72ec73f39b17a167c90737693f78", null ],
[ "dbg", "dba__driver_8php.html#aa6607893d8f60ade9122bcfbd1a53ffb", null ],
[ "dbq", "dba__driver_8php.html#aa377074e70981e8c4e82ca0accd068ee", null ],
+ [ "dbunescbin", "dba__driver_8php.html#afaaa1a7eff9c1b65b3b8c464ae37640e", null ],
[ "printable", "dba__driver_8php.html#a55bf30d8176967e682656b5be4ad9249", null ],
[ "q", "dba__driver_8php.html#a2c09a731d3b4fef41fed0e83db01be1f", null ]
]; \ No newline at end of file
diff --git a/doc/html/dba__postgres_8php.html b/doc/html/dba__postgres_8php.html
new file mode 100644
index 000000000..de5f03278
--- /dev/null
+++ b/doc/html/dba__postgres_8php.html
@@ -0,0 +1,120 @@
+<!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/dba/dba_postgres.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('dba__postgres_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="#nested-classes">Classes</a> </div>
+ <div class="headertitle">
+<div class="title">dba_postgres.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="classdba__postgres.html">dba_postgres</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/diaspora_8php.html b/doc/html/diaspora_8php.html
index 5d5b0102d..6396a547b 100644
--- a/doc/html/diaspora_8php.html
+++ b/doc/html/diaspora_8php.html
@@ -138,6 +138,8 @@ Functions</h2></td></tr>
<tr class="separator:ac1ab782a34552a7c6b4dc961754ed598"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a20b968d64ef26afe5cb0cc75a7570a31"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="diaspora_8php.html#a20b968d64ef26afe5cb0cc75a7570a31">diaspora_post</a> ($importer, $xml, $msg)</td></tr>
<tr class="separator:a20b968d64ef26afe5cb0cc75a7570a31"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ac9e41e46626dc608204bf4b5e16e62d7"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="diaspora_8php.html#ac9e41e46626dc608204bf4b5e16e62d7">get_diaspora_reshare_xml</a> ($url, $recurse=0)</td></tr>
+<tr class="separator:ac9e41e46626dc608204bf4b5e16e62d7"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a2bf43f6b5890897f425ef4325d34b007"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="diaspora_8php.html#a2bf43f6b5890897f425ef4325d34b007">diaspora_reshare</a> ($importer, $xml, $msg)</td></tr>
<tr class="separator:a2bf43f6b5890897f425ef4325d34b007"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a006731620a5242d410358b32678e48e3"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="diaspora_8php.html#a006731620a5242d410358b32678e48e3">diaspora_asphoto</a> ($importer, $xml, $msg)</td></tr>
@@ -158,10 +160,10 @@ Functions</h2></td></tr>
<tr class="separator:aa34d2748bb97e9e193cacd572f335055"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a900abf51398b2ef26cd2cd31c52f1b0f"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="diaspora_8php.html#a900abf51398b2ef26cd2cd31c52f1b0f">diaspora_profile</a> ($importer, $xml, $msg)</td></tr>
<tr class="separator:a900abf51398b2ef26cd2cd31c52f1b0f"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:af3a7f9879c14fec761dcc5563fb39bac"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="diaspora_8php.html#af3a7f9879c14fec761dcc5563fb39bac">diaspora_share</a> ($me, $contact)</td></tr>
-<tr class="separator:af3a7f9879c14fec761dcc5563fb39bac"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:aa4b1cc0bca5c3fe8d11557685e0238a9"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="diaspora_8php.html#aa4b1cc0bca5c3fe8d11557685e0238a9">diaspora_unshare</a> ($me, $contact)</td></tr>
-<tr class="separator:aa4b1cc0bca5c3fe8d11557685e0238a9"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a69f250b078a46e405647428ec3399a16"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="diaspora_8php.html#a69f250b078a46e405647428ec3399a16">diaspora_share</a> ($owner, $contact)</td></tr>
+<tr class="separator:a69f250b078a46e405647428ec3399a16"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ab736d6f32b5de31c97cb579fc730e200"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="diaspora_8php.html#ab736d6f32b5de31c97cb579fc730e200">diaspora_unshare</a> ($owner, $contact)</td></tr>
+<tr class="separator:ab736d6f32b5de31c97cb579fc730e200"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a33ae0c4606a7df4d801c05507d87f668"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="diaspora_8php.html#a33ae0c4606a7df4d801c05507d87f668">diaspora_send_status</a> ($item, $owner, $contact, $public_batch=false)</td></tr>
<tr class="separator:a33ae0c4606a7df4d801c05507d87f668"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ad9985cc4214bdfc14878785c838c8690"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="diaspora_8php.html#ad9985cc4214bdfc14878785c838c8690">diaspora_is_reshare</a> ($body)</td></tr>
@@ -577,7 +579,7 @@ Functions</h2></td></tr>
</table>
</div><div class="memdoc">
-<p>Referenced by <a class="el" href="diaspora_8php.html#af4698b165766f83d89ec1ea964bc92cc">diaspora_send_followup()</a>, <a class="el" href="diaspora_8php.html#ae6f52efd81fe515cd9912bc8293abf5b">diaspora_send_images()</a>, <a class="el" href="diaspora_8php.html#aeb2bb78f620dbf51d9335e6eb7444f2c">diaspora_send_mail()</a>, <a class="el" href="diaspora_8php.html#a0b3628a5e53332c3d3196b689fe2b94d">diaspora_send_relay()</a>, <a class="el" href="diaspora_8php.html#a1704748aa2384c73e43f10e71defd31a">diaspora_send_retraction()</a>, <a class="el" href="diaspora_8php.html#a33ae0c4606a7df4d801c05507d87f668">diaspora_send_status()</a>, <a class="el" href="diaspora_8php.html#af3a7f9879c14fec761dcc5563fb39bac">diaspora_share()</a>, and <a class="el" href="diaspora_8php.html#aa4b1cc0bca5c3fe8d11557685e0238a9">diaspora_unshare()</a>.</p>
+<p>Referenced by <a class="el" href="diaspora_8php.html#af4698b165766f83d89ec1ea964bc92cc">diaspora_send_followup()</a>, <a class="el" href="diaspora_8php.html#ae6f52efd81fe515cd9912bc8293abf5b">diaspora_send_images()</a>, <a class="el" href="diaspora_8php.html#aeb2bb78f620dbf51d9335e6eb7444f2c">diaspora_send_mail()</a>, <a class="el" href="diaspora_8php.html#a0b3628a5e53332c3d3196b689fe2b94d">diaspora_send_relay()</a>, <a class="el" href="diaspora_8php.html#a1704748aa2384c73e43f10e71defd31a">diaspora_send_retraction()</a>, <a class="el" href="diaspora_8php.html#a33ae0c4606a7df4d801c05507d87f668">diaspora_send_status()</a>, <a class="el" href="diaspora_8php.html#a69f250b078a46e405647428ec3399a16">diaspora_share()</a>, and <a class="el" href="diaspora_8php.html#ab736d6f32b5de31c97cb579fc730e200">diaspora_unshare()</a>.</p>
</div>
</div>
@@ -1084,7 +1086,7 @@ Functions</h2></td></tr>
</div>
</div>
-<a class="anchor" id="af3a7f9879c14fec761dcc5563fb39bac"></a>
+<a class="anchor" id="a69f250b078a46e405647428ec3399a16"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
@@ -1092,7 +1094,7 @@ Functions</h2></td></tr>
<td class="memname">diaspora_share </td>
<td>(</td>
<td class="paramtype">&#160;</td>
- <td class="paramname"><em>$me</em>, </td>
+ <td class="paramname"><em>$owner</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
@@ -1188,11 +1190,11 @@ Functions</h2></td></tr>
</table>
</div><div class="memdoc">
-<p>Referenced by <a class="el" href="diaspora_8php.html#af4698b165766f83d89ec1ea964bc92cc">diaspora_send_followup()</a>, <a class="el" href="diaspora_8php.html#ae6f52efd81fe515cd9912bc8293abf5b">diaspora_send_images()</a>, <a class="el" href="diaspora_8php.html#aeb2bb78f620dbf51d9335e6eb7444f2c">diaspora_send_mail()</a>, <a class="el" href="diaspora_8php.html#a0b3628a5e53332c3d3196b689fe2b94d">diaspora_send_relay()</a>, <a class="el" href="diaspora_8php.html#a1704748aa2384c73e43f10e71defd31a">diaspora_send_retraction()</a>, <a class="el" href="diaspora_8php.html#a33ae0c4606a7df4d801c05507d87f668">diaspora_send_status()</a>, <a class="el" href="diaspora_8php.html#af3a7f9879c14fec761dcc5563fb39bac">diaspora_share()</a>, and <a class="el" href="diaspora_8php.html#aa4b1cc0bca5c3fe8d11557685e0238a9">diaspora_unshare()</a>.</p>
+<p>Referenced by <a class="el" href="diaspora_8php.html#af4698b165766f83d89ec1ea964bc92cc">diaspora_send_followup()</a>, <a class="el" href="diaspora_8php.html#ae6f52efd81fe515cd9912bc8293abf5b">diaspora_send_images()</a>, <a class="el" href="diaspora_8php.html#aeb2bb78f620dbf51d9335e6eb7444f2c">diaspora_send_mail()</a>, <a class="el" href="diaspora_8php.html#a0b3628a5e53332c3d3196b689fe2b94d">diaspora_send_relay()</a>, <a class="el" href="diaspora_8php.html#a1704748aa2384c73e43f10e71defd31a">diaspora_send_retraction()</a>, <a class="el" href="diaspora_8php.html#a33ae0c4606a7df4d801c05507d87f668">diaspora_send_status()</a>, <a class="el" href="diaspora_8php.html#a69f250b078a46e405647428ec3399a16">diaspora_share()</a>, and <a class="el" href="diaspora_8php.html#ab736d6f32b5de31c97cb579fc730e200">diaspora_unshare()</a>.</p>
</div>
</div>
-<a class="anchor" id="aa4b1cc0bca5c3fe8d11557685e0238a9"></a>
+<a class="anchor" id="ab736d6f32b5de31c97cb579fc730e200"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
@@ -1200,7 +1202,7 @@ Functions</h2></td></tr>
<td class="memname">diaspora_unshare </td>
<td>(</td>
<td class="paramtype">&#160;</td>
- <td class="paramname"><em>$me</em>, </td>
+ <td class="paramname"><em>$owner</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
@@ -1254,6 +1256,34 @@ Functions</h2></td></tr>
</div>
</div>
+<a class="anchor" id="ac9e41e46626dc608204bf4b5e16e62d7"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">get_diaspora_reshare_xml </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>$recurse</em> = <code>0</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="diaspora_8php.html#a2bf43f6b5890897f425ef4325d34b007">diaspora_reshare()</a>.</p>
+
+</div>
+</div>
</div><!-- contents -->
</div><!-- doc-content -->
diff --git a/doc/html/diaspora_8php.js b/doc/html/diaspora_8php.js
index 98cfef962..9db03ac5d 100644
--- a/doc/html/diaspora_8php.js
+++ b/doc/html/diaspora_8php.js
@@ -27,10 +27,11 @@ var diaspora_8php =
[ "diaspora_send_relay", "diaspora_8php.html#a0b3628a5e53332c3d3196b689fe2b94d", null ],
[ "diaspora_send_retraction", "diaspora_8php.html#a1704748aa2384c73e43f10e71defd31a", null ],
[ "diaspora_send_status", "diaspora_8php.html#a33ae0c4606a7df4d801c05507d87f668", null ],
- [ "diaspora_share", "diaspora_8php.html#af3a7f9879c14fec761dcc5563fb39bac", null ],
+ [ "diaspora_share", "diaspora_8php.html#a69f250b078a46e405647428ec3399a16", null ],
[ "diaspora_signed_retraction", "diaspora_8php.html#aa34d2748bb97e9e193cacd572f335055", null ],
[ "diaspora_transmit", "diaspora_8php.html#aa704d6aa2ac77be345c0f501168e6e56", null ],
- [ "diaspora_unshare", "diaspora_8php.html#aa4b1cc0bca5c3fe8d11557685e0238a9", null ],
+ [ "diaspora_unshare", "diaspora_8php.html#ab736d6f32b5de31c97cb579fc730e200", null ],
[ "find_diaspora_person_by_handle", "diaspora_8php.html#aade0c165fcdded71352c7a67bf6ce37b", null ],
- [ "get_diaspora_key", "diaspora_8php.html#a9bf7ef4094e0e14f6e2b7fe76ab7ad2e", null ]
+ [ "get_diaspora_key", "diaspora_8php.html#a9bf7ef4094e0e14f6e2b7fe76ab7ad2e", null ],
+ [ "get_diaspora_reshare_xml", "diaspora_8php.html#ac9e41e46626dc608204bf4b5e16e62d7", null ]
]; \ No newline at end of file
diff --git a/doc/html/dimport_8php.html b/doc/html/dimport_8php.html
new file mode 100644
index 000000000..925e95097
--- /dev/null
+++ b/doc/html/dimport_8php.html
@@ -0,0 +1,136 @@
+<!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/dimport.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('dimport_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">dimport.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:a581f040717941ce3e1868b0b5dceefd1"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="dimport_8php.html#a581f040717941ce3e1868b0b5dceefd1">foofoo</a> ()</td></tr>
+<tr class="separator:a581f040717941ce3e1868b0b5dceefd1"><td class="memSeparator" colspan="2">&#160;</td></tr>
+</table>
+<h2 class="groupheader">Function Documentation</h2>
+<a class="anchor" id="a581f040717941ce3e1868b0b5dceefd1"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">foofoo </td>
+ <td>(</td>
+ <td class="paramname"></td><td>)</td>
+ <td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+</div>
+</div>
+</div><!-- contents -->
+</div><!-- doc-content -->
+
diff --git a/doc/html/dimport_8php.js b/doc/html/dimport_8php.js
new file mode 100644
index 000000000..1f463fb3d
--- /dev/null
+++ b/doc/html/dimport_8php.js
@@ -0,0 +1,4 @@
+var dimport_8php =
+[
+ [ "foofoo", "dimport_8php.html#a581f040717941ce3e1868b0b5dceefd1", null ]
+]; \ No newline at end of file
diff --git a/doc/html/dir_0262a6a8df56a167e3761b6e5a54bb1c.html b/doc/html/dir_0262a6a8df56a167e3761b6e5a54bb1c.html
new file mode 100644
index 000000000..e3fe69222
--- /dev/null
+++ b/doc/html/dir_0262a6a8df56a167e3761b6e5a54bb1c.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/suckerberg 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_0262a6a8df56a167e3761b6e5a54bb1c.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">suckerberg Directory Reference</div> </div>
+</div><!--header-->
+<div class="contents">
+<table class="memberdecls">
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="subdirs"></a>
+Directories</h2></td></tr>
+<tr class="memitem:dir_ac4f5165c8d71ebb1a1a0a168a48f3f7"><td class="memItemLeft" align="right" valign="top">directory &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="dir_ac4f5165c8d71ebb1a1a0a168a48f3f7.html">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_0262a6a8df56a167e3761b6e5a54bb1c.js b/doc/html/dir_0262a6a8df56a167e3761b6e5a54bb1c.js
new file mode 100644
index 000000000..c0919b906
--- /dev/null
+++ b/doc/html/dir_0262a6a8df56a167e3761b6e5a54bb1c.js
@@ -0,0 +1,4 @@
+var dir_0262a6a8df56a167e3761b6e5a54bb1c =
+[
+ [ "php", "dir_ac4f5165c8d71ebb1a1a0a168a48f3f7.html", "dir_ac4f5165c8d71ebb1a1a0a168a48f3f7" ]
+]; \ No newline at end of file
diff --git a/doc/html/dir_21bc5169ff11430004758be31dcfc6c4.html b/doc/html/dir_21bc5169ff11430004758be31dcfc6c4.html
index 51284f865..ac82b3a1d 100644
--- a/doc/html/dir_21bc5169ff11430004758be31dcfc6c4.html
+++ b/doc/html/dir_21bc5169ff11430004758be31dcfc6c4.html
@@ -105,11 +105,14 @@ $(document).ready(function(){initNavTree('dir_21bc5169ff11430004758be31dcfc6c4.h
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="files"></a>
Files</h2></td></tr>
<tr class="memitem:dba__driver_8php"><td class="memItemLeft" align="right" valign="top">file &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="dba__driver_8php.html">dba_driver.php</a></td></tr>
+<tr class="memdesc:dba__driver_8php"><td class="mdescLeft">&#160;</td><td class="mdescRight">some database related functions and abstract driver class. <br/></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:dba__mysql_8php"><td class="memItemLeft" align="right" valign="top">file &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="dba__mysql_8php.html">dba_mysql.php</a></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:dba__mysqli_8php"><td class="memItemLeft" align="right" valign="top">file &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="dba__mysqli_8php.html">dba_mysqli.php</a></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:dba__postgres_8php"><td class="memItemLeft" align="right" valign="top">file &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="dba__postgres_8php.html">dba_postgres.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_21bc5169ff11430004758be31dcfc6c4.js b/doc/html/dir_21bc5169ff11430004758be31dcfc6c4.js
index 7b0143847..1c1549310 100644
--- a/doc/html/dir_21bc5169ff11430004758be31dcfc6c4.js
+++ b/doc/html/dir_21bc5169ff11430004758be31dcfc6c4.js
@@ -6,5 +6,8 @@ var dir_21bc5169ff11430004758be31dcfc6c4 =
] ],
[ "dba_mysqli.php", "dba__mysqli_8php.html", [
[ "dba_mysqli", "classdba__mysqli.html", "classdba__mysqli" ]
+ ] ],
+ [ "dba_postgres.php", "dba__postgres_8php.html", [
+ [ "dba_postgres", "classdba__postgres.html", "classdba__postgres" ]
] ]
]; \ No newline at end of file
diff --git a/doc/html/dir_23ec12649285f9fabf3a6b7380226c28.html b/doc/html/dir_23ec12649285f9fabf3a6b7380226c28.html
index 44036cc73..a67f14997 100644
--- a/doc/html/dir_23ec12649285f9fabf3a6b7380226c28.html
+++ b/doc/html/dir_23ec12649285f9fabf3a6b7380226c28.html
@@ -106,8 +106,6 @@ $(document).ready(function(){initNavTree('dir_23ec12649285f9fabf3a6b7380226c28.h
Directories</h2></td></tr>
<tr class="memitem:dir_0eaa4a0adae8ba4811e133c6e594aeee"><td class="memItemLeft" align="right" valign="top">directory &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="dir_0eaa4a0adae8ba4811e133c6e594aeee.html">fpostit</a></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:dir_720432dea4a717197ae070dbc42b8f20"><td class="memItemLeft" align="right" valign="top">directory &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="dir_720432dea4a717197ae070dbc42b8f20.html">wp</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="files"></a>
Files</h2></td></tr>
diff --git a/doc/html/dir_23ec12649285f9fabf3a6b7380226c28.js b/doc/html/dir_23ec12649285f9fabf3a6b7380226c28.js
index e59a2a7c4..1ea37ec69 100644
--- a/doc/html/dir_23ec12649285f9fabf3a6b7380226c28.js
+++ b/doc/html/dir_23ec12649285f9fabf3a6b7380226c28.js
@@ -1,7 +1,6 @@
var dir_23ec12649285f9fabf3a6b7380226c28 =
[
[ "fpostit", "dir_0eaa4a0adae8ba4811e133c6e594aeee.html", "dir_0eaa4a0adae8ba4811e133c6e594aeee" ],
- [ "wp", "dir_720432dea4a717197ae070dbc42b8f20.html", "dir_720432dea4a717197ae070dbc42b8f20" ],
[ "db_update.php", "db__update_8php.html", null ],
[ "docblox_errorchecker.php", "docblox__errorchecker_8php.html", "docblox__errorchecker_8php" ],
[ "extract.php", "extract_8php.html", "extract_8php" ],
diff --git a/doc/html/dir_3d9c9d0c5e9556dd3eba1e072fa6eaeb.html b/doc/html/dir_3d9c9d0c5e9556dd3eba1e072fa6eaeb.html
index 0f7deb162..9949aeeb2 100644
--- a/doc/html/dir_3d9c9d0c5e9556dd3eba1e072fa6eaeb.html
+++ b/doc/html/dir_3d9c9d0c5e9556dd3eba1e072fa6eaeb.html
@@ -112,6 +112,12 @@ Files</h2></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>
+<tr class="memitem:simple__black__on__white_8php"><td class="memItemLeft" align="right" valign="top">file &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="simple__black__on__white_8php.html">simple_black_on_white.php</a></td></tr>
+<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:simple__green__on__black_8php"><td class="memItemLeft" align="right" valign="top">file &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="simple__green__on__black_8php.html">simple_green_on_black.php</a></td></tr>
+<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:simple__white__on__black_8php"><td class="memItemLeft" align="right" valign="top">file &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="simple__white__on__black_8php.html">simple_white_on_black.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 0ec7e6954..459c9186f 100644
--- a/doc/html/dir_3d9c9d0c5e9556dd3eba1e072fa6eaeb.js
+++ b/doc/html/dir_3d9c9d0c5e9556dd3eba1e072fa6eaeb.js
@@ -3,5 +3,8 @@ var dir_3d9c9d0c5e9556dd3eba1e072fa6eaeb =
[ "boxy.php", "boxy_8php.html", null ],
[ "BS-Default.php", "BS-Default_8php.html", null ],
[ "dark.php", "dark_8php.html", null ],
- [ "notred.php", "notred_8php.html", null ]
+ [ "notred.php", "notred_8php.html", null ],
+ [ "simple_black_on_white.php", "simple__black__on__white_8php.html", null ],
+ [ "simple_green_on_black.php", "simple__green__on__black_8php.html", null ],
+ [ "simple_white_on_black.php", "simple__white__on__black_8php.html", null ]
]; \ No newline at end of file
diff --git a/doc/html/dir_4acb285a1960a920438b718da0958cf4.html b/doc/html/dir_4acb285a1960a920438b718da0958cf4.html
new file mode 100644
index 000000000..b609d2603
--- /dev/null
+++ b/doc/html/dir_4acb285a1960a920438b718da0958cf4.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/stumble 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_4acb285a1960a920438b718da0958cf4.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">stumble Directory Reference</div> </div>
+</div><!--header-->
+<div class="contents">
+<table class="memberdecls">
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="subdirs"></a>
+Directories</h2></td></tr>
+<tr class="memitem:dir_65522070e0a83623cefc01ebe26a83e3"><td class="memItemLeft" align="right" valign="top">directory &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="dir_65522070e0a83623cefc01ebe26a83e3.html">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_4acb285a1960a920438b718da0958cf4.js b/doc/html/dir_4acb285a1960a920438b718da0958cf4.js
new file mode 100644
index 000000000..ddf00ba8a
--- /dev/null
+++ b/doc/html/dir_4acb285a1960a920438b718da0958cf4.js
@@ -0,0 +1,4 @@
+var dir_4acb285a1960a920438b718da0958cf4 =
+[
+ [ "php", "dir_65522070e0a83623cefc01ebe26a83e3.html", "dir_65522070e0a83623cefc01ebe26a83e3" ]
+]; \ No newline at end of file
diff --git a/doc/html/dir_65522070e0a83623cefc01ebe26a83e3.html b/doc/html/dir_65522070e0a83623cefc01ebe26a83e3.html
new file mode 100644
index 000000000..70b82fa1e
--- /dev/null
+++ b/doc/html/dir_65522070e0a83623cefc01ebe26a83e3.html
@@ -0,0 +1,114 @@
+<!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/stumble/php 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_65522070e0a83623cefc01ebe26a83e3.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">php 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:stumble_2php_2style_8php"><td class="memItemLeft" align="right" valign="top">file &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="stumble_2php_2style_8php.html">style.php</a></td></tr>
+<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:stumble_2php_2theme_8php"><td class="memItemLeft" align="right" valign="top">file &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="stumble_2php_2theme_8php.html">theme.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_65522070e0a83623cefc01ebe26a83e3.js b/doc/html/dir_65522070e0a83623cefc01ebe26a83e3.js
new file mode 100644
index 000000000..f914d9b01
--- /dev/null
+++ b/doc/html/dir_65522070e0a83623cefc01ebe26a83e3.js
@@ -0,0 +1,5 @@
+var dir_65522070e0a83623cefc01ebe26a83e3 =
+[
+ [ "style.php", "stumble_2php_2style_8php.html", null ],
+ [ "theme.php", "stumble_2php_2theme_8php.html", "stumble_2php_2theme_8php" ]
+]; \ No newline at end of file
diff --git a/doc/html/dir_6e52a2a2cd27c08b7df5e5cdb216bd77.html b/doc/html/dir_6e52a2a2cd27c08b7df5e5cdb216bd77.html
new file mode 100644
index 000000000..920784d3d
--- /dev/null
+++ b/doc/html/dir_6e52a2a2cd27c08b7df5e5cdb216bd77.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/hivenet 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_6e52a2a2cd27c08b7df5e5cdb216bd77.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">hivenet Directory Reference</div> </div>
+</div><!--header-->
+<div class="contents">
+<table class="memberdecls">
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="subdirs"></a>
+Directories</h2></td></tr>
+<tr class="memitem:dir_9ef82eb3846cd201470898c3b6ef38cf"><td class="memItemLeft" align="right" valign="top">directory &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="dir_9ef82eb3846cd201470898c3b6ef38cf.html">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_6e52a2a2cd27c08b7df5e5cdb216bd77.js b/doc/html/dir_6e52a2a2cd27c08b7df5e5cdb216bd77.js
new file mode 100644
index 000000000..cc2615730
--- /dev/null
+++ b/doc/html/dir_6e52a2a2cd27c08b7df5e5cdb216bd77.js
@@ -0,0 +1,4 @@
+var dir_6e52a2a2cd27c08b7df5e5cdb216bd77 =
+[
+ [ "php", "dir_9ef82eb3846cd201470898c3b6ef38cf.html", "dir_9ef82eb3846cd201470898c3b6ef38cf" ]
+]; \ No newline at end of file
diff --git a/doc/html/dir_7edbbd0f8c514efef79942dcdc21f738.html b/doc/html/dir_7edbbd0f8c514efef79942dcdc21f738.html
new file mode 100644
index 000000000..d477e48a8
--- /dev/null
+++ b/doc/html/dir_7edbbd0f8c514efef79942dcdc21f738.html
@@ -0,0 +1,114 @@
+<!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/Import 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_7edbbd0f8c514efef79942dcdc21f738.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">Import 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:Importer_8php"><td class="memItemLeft" align="right" valign="top">file &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="Importer_8php.html">Importer.php</a></td></tr>
+<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:refimport_8php"><td class="memItemLeft" align="right" valign="top">file &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="refimport_8php.html">refimport.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_7edbbd0f8c514efef79942dcdc21f738.js b/doc/html/dir_7edbbd0f8c514efef79942dcdc21f738.js
new file mode 100644
index 000000000..70fef9c82
--- /dev/null
+++ b/doc/html/dir_7edbbd0f8c514efef79942dcdc21f738.js
@@ -0,0 +1,7 @@
+var dir_7edbbd0f8c514efef79942dcdc21f738 =
+[
+ [ "Importer.php", "Importer_8php.html", [
+ [ "Import", "classRedMatrix_1_1Import_1_1Import.html", "classRedMatrix_1_1Import_1_1Import" ]
+ ] ],
+ [ "refimport.php", "refimport_8php.html", "refimport_8php" ]
+]; \ No newline at end of file
diff --git a/doc/html/dir_8543001e5d25368a6edede3e63efb554.html b/doc/html/dir_8543001e5d25368a6edede3e63efb554.html
index 5c15c9f91..da6696cd0 100644
--- a/doc/html/dir_8543001e5d25368a6edede3e63efb554.html
+++ b/doc/html/dir_8543001e5d25368a6edede3e63efb554.html
@@ -106,12 +106,16 @@ $(document).ready(function(){initNavTree('dir_8543001e5d25368a6edede3e63efb554.h
Directories</h2></td></tr>
<tr class="memitem:dir_d520c5cf583201d9437764f209363c22"><td class="memItemLeft" align="right" valign="top">directory &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="dir_d520c5cf583201d9437764f209363c22.html">apw</a></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:dir_922c77e958c99a98db92d38a3a349bf2"><td class="memItemLeft" align="right" valign="top">directory &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="dir_922c77e958c99a98db92d38a3a349bf2.html">blogga</a></td></tr>
+<tr class="memitem:dir_6e52a2a2cd27c08b7df5e5cdb216bd77"><td class="memItemLeft" align="right" valign="top">directory &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="dir_6e52a2a2cd27c08b7df5e5cdb216bd77.html">hivenet</a></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:dir_8e58ba5e98ac07e59ee15ca7486c9950"><td class="memItemLeft" align="right" valign="top">directory &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="dir_8e58ba5e98ac07e59ee15ca7486c9950.html">mytheme</a></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:dir_55dbaf9b7b53c4fc605c9011743a7353"><td class="memItemLeft" align="right" valign="top">directory &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="dir_55dbaf9b7b53c4fc605c9011743a7353.html">redbasic</a></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:dir_4acb285a1960a920438b718da0958cf4"><td class="memItemLeft" align="right" valign="top">directory &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="dir_4acb285a1960a920438b718da0958cf4.html">stumble</a></td></tr>
+<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:dir_0262a6a8df56a167e3761b6e5a54bb1c"><td class="memItemLeft" align="right" valign="top">directory &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="dir_0262a6a8df56a167e3761b6e5a54bb1c.html">suckerberg</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_8543001e5d25368a6edede3e63efb554.js b/doc/html/dir_8543001e5d25368a6edede3e63efb554.js
index 25e3e7cc0..8851cf93a 100644
--- a/doc/html/dir_8543001e5d25368a6edede3e63efb554.js
+++ b/doc/html/dir_8543001e5d25368a6edede3e63efb554.js
@@ -1,7 +1,9 @@
var dir_8543001e5d25368a6edede3e63efb554 =
[
[ "apw", "dir_d520c5cf583201d9437764f209363c22.html", "dir_d520c5cf583201d9437764f209363c22" ],
- [ "blogga", "dir_922c77e958c99a98db92d38a3a349bf2.html", "dir_922c77e958c99a98db92d38a3a349bf2" ],
+ [ "hivenet", "dir_6e52a2a2cd27c08b7df5e5cdb216bd77.html", "dir_6e52a2a2cd27c08b7df5e5cdb216bd77" ],
[ "mytheme", "dir_8e58ba5e98ac07e59ee15ca7486c9950.html", "dir_8e58ba5e98ac07e59ee15ca7486c9950" ],
- [ "redbasic", "dir_55dbaf9b7b53c4fc605c9011743a7353.html", "dir_55dbaf9b7b53c4fc605c9011743a7353" ]
+ [ "redbasic", "dir_55dbaf9b7b53c4fc605c9011743a7353.html", "dir_55dbaf9b7b53c4fc605c9011743a7353" ],
+ [ "stumble", "dir_4acb285a1960a920438b718da0958cf4.html", "dir_4acb285a1960a920438b718da0958cf4" ],
+ [ "suckerberg", "dir_0262a6a8df56a167e3761b6e5a54bb1c.html", "dir_0262a6a8df56a167e3761b6e5a54bb1c" ]
]; \ No newline at end of file
diff --git a/doc/html/dir_9ef82eb3846cd201470898c3b6ef38cf.html b/doc/html/dir_9ef82eb3846cd201470898c3b6ef38cf.html
new file mode 100644
index 000000000..91c6ed04b
--- /dev/null
+++ b/doc/html/dir_9ef82eb3846cd201470898c3b6ef38cf.html
@@ -0,0 +1,114 @@
+<!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/hivenet/php 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_9ef82eb3846cd201470898c3b6ef38cf.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">php 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:hivenet_2php_2style_8php"><td class="memItemLeft" align="right" valign="top">file &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="hivenet_2php_2style_8php.html">style.php</a></td></tr>
+<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:hivenet_2php_2theme_8php"><td class="memItemLeft" align="right" valign="top">file &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="hivenet_2php_2theme_8php.html">theme.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_9ef82eb3846cd201470898c3b6ef38cf.js b/doc/html/dir_9ef82eb3846cd201470898c3b6ef38cf.js
new file mode 100644
index 000000000..576c2c655
--- /dev/null
+++ b/doc/html/dir_9ef82eb3846cd201470898c3b6ef38cf.js
@@ -0,0 +1,5 @@
+var dir_9ef82eb3846cd201470898c3b6ef38cf =
+[
+ [ "style.php", "hivenet_2php_2style_8php.html", null ],
+ [ "theme.php", "hivenet_2php_2theme_8php.html", "hivenet_2php_2theme_8php" ]
+]; \ No newline at end of file
diff --git a/doc/html/dir__fns_8php.html b/doc/html/dir__fns_8php.html
index b0da4b911..5e83185aa 100644
--- a/doc/html/dir__fns_8php.html
+++ b/doc/html/dir__fns_8php.html
@@ -195,7 +195,7 @@ Functions</h2></td></tr>
</div><div class="memdoc">
<p>No directory has yet been set. For most sites, pick one at random from our list of directory servers. However, if we're a directory server ourself, point at the local instance We will then set this value so this should only ever happen once. Ideally there will be an admin setting to change to a different directory server if you don't like our choice or if circumstances change.</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>
+<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>
</div>
</div>
diff --git a/doc/html/dir_ac4f5165c8d71ebb1a1a0a168a48f3f7.html b/doc/html/dir_ac4f5165c8d71ebb1a1a0a168a48f3f7.html
new file mode 100644
index 000000000..76a464461
--- /dev/null
+++ b/doc/html/dir_ac4f5165c8d71ebb1a1a0a168a48f3f7.html
@@ -0,0 +1,114 @@
+<!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/suckerberg/php 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_ac4f5165c8d71ebb1a1a0a168a48f3f7.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">php 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:suckerberg_2php_2style_8php"><td class="memItemLeft" align="right" valign="top">file &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="suckerberg_2php_2style_8php.html">style.php</a></td></tr>
+<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:suckerberg_2php_2theme_8php"><td class="memItemLeft" align="right" valign="top">file &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="suckerberg_2php_2theme_8php.html">theme.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_ac4f5165c8d71ebb1a1a0a168a48f3f7.js b/doc/html/dir_ac4f5165c8d71ebb1a1a0a168a48f3f7.js
new file mode 100644
index 000000000..0e2f340ef
--- /dev/null
+++ b/doc/html/dir_ac4f5165c8d71ebb1a1a0a168a48f3f7.js
@@ -0,0 +1,5 @@
+var dir_ac4f5165c8d71ebb1a1a0a168a48f3f7 =
+[
+ [ "style.php", "suckerberg_2php_2style_8php.html", null ],
+ [ "theme.php", "suckerberg_2php_2theme_8php.html", "suckerberg_2php_2theme_8php" ]
+]; \ No newline at end of file
diff --git a/doc/html/dir_d41ce877eb409a4791b288730010abe2.html b/doc/html/dir_d41ce877eb409a4791b288730010abe2.html
index 927b81185..eebd1d1dc 100644
--- a/doc/html/dir_d41ce877eb409a4791b288730010abe2.html
+++ b/doc/html/dir_d41ce877eb409a4791b288730010abe2.html
@@ -126,8 +126,6 @@ Files</h2></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>
@@ -137,7 +135,7 @@ Files</h2></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="memdesc:cloud_8php"><td class="mdescLeft">&#160;</td><td class="mdescRight">Initialize Red Matrix's cloud (SabreDAV) <br/></td></tr>
+<tr class="memdesc:cloud_8php"><td class="mdescLeft">&#160;</td><td class="mdescRight">Initialize <a class="el" href="namespaceRedMatrix.html" title="Class Import.">RedMatrix</a>'s cloud (SabreDAV). <br/></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>
<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
@@ -153,8 +151,6 @@ Files</h2></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>
@@ -193,6 +189,8 @@ Files</h2></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:hostxrd_8php"><td class="memItemLeft" align="right" valign="top">file &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="hostxrd_8php.html">hostxrd.php</a></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:impel_8php"><td class="memItemLeft" align="right" valign="top">file &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="impel_8php.html">impel.php</a></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:importelm_8php"><td class="memItemLeft" align="right" valign="top">file &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="importelm_8php.html">importelm.php</a></td></tr>
@@ -209,6 +207,8 @@ Files</h2></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:lockview_8php"><td class="memItemLeft" align="right" valign="top">file &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="lockview_8php.html">lockview.php</a></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:locs_8php"><td class="memItemLeft" align="right" valign="top">file &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="locs_8php.html">locs.php</a></td></tr>
+<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:login_8php"><td class="memItemLeft" align="right" valign="top">file &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="login_8php.html">login.php</a></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:lostpass_8php"><td class="memItemLeft" align="right" valign="top">file &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="lostpass_8php.html">lostpass.php</a></td></tr>
@@ -253,6 +253,8 @@ Files</h2></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:p_8php"><td class="memItemLeft" align="right" valign="top">file &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="p_8php.html">p.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>
<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:parse__url_8php"><td class="memItemLeft" align="right" valign="top">file &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="parse__url_8php.html">parse_url.php</a></td></tr>
@@ -315,6 +317,8 @@ Files</h2></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:search__ac_8php"><td class="memItemLeft" align="right" valign="top">file &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="search__ac_8php.html">search_ac.php</a></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:service__limits_8php"><td class="memItemLeft" align="right" valign="top">file &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="service__limits_8php.html">service_limits.php</a></td></tr>
+<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:settings_8php"><td class="memItemLeft" align="right" valign="top">file &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="settings_8php.html">settings.php</a></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:setup_8php"><td class="memItemLeft" align="right" valign="top">file &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="setup_8php.html">setup.php</a></td></tr>
@@ -353,6 +357,8 @@ Files</h2></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:update__display_8php"><td class="memItemLeft" align="right" valign="top">file &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="update__display_8php.html">update_display.php</a></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:update__home_8php"><td class="memItemLeft" align="right" valign="top">file &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="update__home_8php.html">update_home.php</a></td></tr>
+<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:update__network_8php"><td class="memItemLeft" align="right" valign="top">file &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="update__network_8php.html">update_network.php</a></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:update__search_8php"><td class="memItemLeft" align="right" valign="top">file &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="update__search_8php.html">update_search.php</a></td></tr>
diff --git a/doc/html/dir_d41ce877eb409a4791b288730010abe2.js b/doc/html/dir_d41ce877eb409a4791b288730010abe2.js
index f6374b795..df75ab37a 100644
--- a/doc/html/dir_d41ce877eb409a4791b288730010abe2.js
+++ b/doc/html/dir_d41ce877eb409a4791b288730010abe2.js
@@ -11,7 +11,6 @@ var dir_d41ce877eb409a4791b288730010abe2 =
[ "block.php", "block_8php.html", "block_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" ],
@@ -24,7 +23,6 @@ var dir_d41ce877eb409a4791b288730010abe2 =
[ "contactgroup.php", "contactgroup_8php.html", "contactgroup_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" ],
@@ -44,6 +42,7 @@ var dir_d41ce877eb409a4791b288730010abe2 =
[ "help.php", "help_8php.html", "help_8php" ],
[ "home.php", "home_8php.html", "home_8php" ],
[ "hostxrd.php", "hostxrd_8php.html", "hostxrd_8php" ],
+ [ "impel.php", "impel_8php.html", "impel_8php" ],
[ "import.php", "import_8php.html", "import_8php" ],
[ "importelm.php", "importelm_8php.html", "importelm_8php" ],
[ "invite.php", "invite_8php.html", "invite_8php" ],
@@ -52,6 +51,7 @@ var dir_d41ce877eb409a4791b288730010abe2 =
[ "layouts.php", "layouts_8php.html", "layouts_8php" ],
[ "like.php", "like_8php.html", "like_8php" ],
[ "lockview.php", "lockview_8php.html", "lockview_8php" ],
+ [ "locs.php", "locs_8php.html", "locs_8php" ],
[ "login.php", "login_8php.html", "login_8php" ],
[ "lostpass.php", "lostpass_8php.html", "lostpass_8php" ],
[ "magic.php", "magic_8php.html", "magic_8php" ],
@@ -74,6 +74,7 @@ var dir_d41ce877eb409a4791b288730010abe2 =
[ "online.php", "online_8php.html", "online_8php" ],
[ "openid.php", "openid_8php.html", "openid_8php" ],
[ "opensearch.php", "opensearch_8php.html", "opensearch_8php" ],
+ [ "p.php", "p_8php.html", "p_8php" ],
[ "page.php", "page_8php.html", "page_8php" ],
[ "parse_url.php", "parse__url_8php.html", "parse__url_8php" ],
[ "pdledit.php", "pdledit_8php.html", "pdledit_8php" ],
@@ -105,6 +106,7 @@ var dir_d41ce877eb409a4791b288730010abe2 =
[ "rsd_xml.php", "rsd__xml_8php.html", "rsd__xml_8php" ],
[ "search.php", "search_8php.html", "search_8php" ],
[ "search_ac.php", "search__ac_8php.html", "search__ac_8php" ],
+ [ "service_limits.php", "service__limits_8php.html", "service__limits_8php" ],
[ "settings.php", "settings_8php.html", "settings_8php" ],
[ "setup.php", "setup_8php.html", "setup_8php" ],
[ "share.php", "share_8php.html", "share_8php" ],
@@ -124,6 +126,7 @@ var dir_d41ce877eb409a4791b288730010abe2 =
[ "uexport.php", "uexport_8php.html", "uexport_8php" ],
[ "update_channel.php", "update__channel_8php.html", "update__channel_8php" ],
[ "update_display.php", "update__display_8php.html", "update__display_8php" ],
+ [ "update_home.php", "update__home_8php.html", "update__home_8php" ],
[ "update_network.php", "update__network_8php.html", "update__network_8php" ],
[ "update_search.php", "update__search_8php.html", "update__search_8php" ],
[ "view.php", "view_8php.html", "view_8php" ],
diff --git a/doc/html/dir_d44c64559bbebec7f509842c48db8b23.html b/doc/html/dir_d44c64559bbebec7f509842c48db8b23.html
index 72ea68b77..538c6c7a9 100644
--- a/doc/html/dir_d44c64559bbebec7f509842c48db8b23.html
+++ b/doc/html/dir_d44c64559bbebec7f509842c48db8b23.html
@@ -106,8 +106,12 @@ $(document).ready(function(){initNavTree('dir_d44c64559bbebec7f509842c48db8b23.h
Directories</h2></td></tr>
<tr class="memitem:dir_21bc5169ff11430004758be31dcfc6c4"><td class="memItemLeft" align="right" valign="top">directory &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="dir_21bc5169ff11430004758be31dcfc6c4.html">dba</a></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:dir_7edbbd0f8c514efef79942dcdc21f738"><td class="memItemLeft" align="right" valign="top">directory &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="dir_7edbbd0f8c514efef79942dcdc21f738.html">Import</a></td></tr>
+<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:dir_aae29906d7bfc07d076125f669c8352e"><td class="memItemLeft" align="right" valign="top">directory &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="dir_aae29906d7bfc07d076125f669c8352e.html">photo</a></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:dir_e7f045be8bb383d8447c6a6b84145083"><td class="memItemLeft" align="right" valign="top">directory &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="dir_e7f045be8bb383d8447c6a6b84145083.html">RedDAV</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="files"></a>
Files</h2></td></tr>
@@ -125,6 +129,7 @@ Files</h2></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="memdesc:auth_8php"><td class="mdescLeft">&#160;</td><td class="mdescRight">Functions and inline functionality for authentication. <br/></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:BaseObject_8php"><td class="memItemLeft" align="right" valign="top">file &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="BaseObject_8php.html">BaseObject.php</a></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
@@ -136,8 +141,6 @@ Files</h2></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>
@@ -147,6 +150,7 @@ Files</h2></td></tr>
<tr class="memitem:comanche_8php"><td class="memItemLeft" align="right" valign="top">file &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="comanche_8php.html">comanche.php</a></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:include_2config_8php"><td class="memItemLeft" align="right" valign="top">file &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="include_2config_8php.html">config.php</a></td></tr>
+<tr class="memdesc:include_2config_8php"><td class="mdescLeft">&#160;</td><td class="mdescRight">Arbitrary configuration storage. <br/></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:Contact_8php"><td class="memItemLeft" align="right" valign="top">file &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="Contact_8php.html">Contact.php</a></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
@@ -168,6 +172,8 @@ Files</h2></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:diaspora_8php"><td class="memItemLeft" align="right" valign="top">file &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="diaspora_8php.html">diaspora.php</a></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:dimport_8php"><td class="memItemLeft" align="right" valign="top">file &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="dimport_8php.html">dimport.php</a></td></tr>
+<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:dir__fns_8php"><td class="memItemLeft" align="right" valign="top">file &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="dir__fns_8php.html">dir_fns.php</a></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:include_2directory_8php"><td class="memItemLeft" align="right" valign="top">file &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="include_2directory_8php.html">directory.php</a></td></tr>
@@ -182,6 +188,8 @@ Files</h2></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:features_8php"><td class="memItemLeft" align="right" valign="top">file &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="features_8php.html">features.php</a></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:fixd_8php"><td class="memItemLeft" align="right" valign="top">file &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="fixd_8php.html">fixd.php</a></td></tr>
+<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:include_2follow_8php"><td class="memItemLeft" align="right" valign="top">file &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="include_2follow_8php.html">follow.php</a></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:gprobe_8php"><td class="memItemLeft" align="right" valign="top">file &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="gprobe_8php.html">gprobe.php</a></td></tr>
@@ -247,7 +255,7 @@ Files</h2></td></tr>
<tr class="memitem:queue__fn_8php"><td class="memItemLeft" align="right" valign="top">file &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="queue__fn_8php.html">queue_fn.php</a></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:reddav_8php"><td class="memItemLeft" align="right" valign="top">file &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="reddav_8php.html">reddav.php</a></td></tr>
-<tr class="memdesc:reddav_8php"><td class="mdescLeft">&#160;</td><td class="mdescRight">DAV related classes from SabreDAV for Red Matrix. <br/></td></tr>
+<tr class="memdesc:reddav_8php"><td class="mdescLeft">&#160;</td><td class="mdescRight">some DAV related functions for <a class="el" href="namespaceRedMatrix.html" title="Class Import.">RedMatrix</a>. <br/></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:security_8php"><td class="memItemLeft" align="right" valign="top">file &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="security_8php.html">security.php</a></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
@@ -259,6 +267,8 @@ Files</h2></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:statistics__fns_8php"><td class="memItemLeft" align="right" valign="top">file &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="statistics__fns_8php.html">statistics_fns.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>
@@ -268,6 +278,7 @@ Files</h2></td></tr>
<tr class="memitem:text_8php"><td class="memItemLeft" align="right" valign="top">file &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="text_8php.html">text.php</a></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:widgets_8php"><td class="memItemLeft" align="right" valign="top">file &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="widgets_8php.html">widgets.php</a></td></tr>
+<tr class="memdesc:widgets_8php"><td class="mdescLeft">&#160;</td><td class="mdescRight">This file contains the widgets. <br/></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:zot_8php"><td class="memItemLeft" align="right" valign="top">file &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="zot_8php.html">zot.php</a></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
diff --git a/doc/html/dir_d44c64559bbebec7f509842c48db8b23.js b/doc/html/dir_d44c64559bbebec7f509842c48db8b23.js
index 68646ae5b..30877f15e 100644
--- a/doc/html/dir_d44c64559bbebec7f509842c48db8b23.js
+++ b/doc/html/dir_d44c64559bbebec7f509842c48db8b23.js
@@ -1,7 +1,9 @@
var dir_d44c64559bbebec7f509842c48db8b23 =
[
[ "dba", "dir_21bc5169ff11430004758be31dcfc6c4.html", "dir_21bc5169ff11430004758be31dcfc6c4" ],
+ [ "Import", "dir_7edbbd0f8c514efef79942dcdc21f738.html", "dir_7edbbd0f8c514efef79942dcdc21f738" ],
[ "photo", "dir_aae29906d7bfc07d076125f669c8352e.html", "dir_aae29906d7bfc07d076125f669c8352e" ],
+ [ "RedDAV", "dir_e7f045be8bb383d8447c6a6b84145083.html", "dir_e7f045be8bb383d8447c6a6b84145083" ],
[ "account.php", "account_8php.html", "account_8php" ],
[ "acl_selectors.php", "acl__selectors_8php.html", "acl__selectors_8php" ],
[ "activities.php", "activities_8php.html", "activities_8php" ],
@@ -18,7 +20,6 @@ var dir_d44c64559bbebec7f509842c48db8b23 =
[ "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" ],
@@ -36,6 +37,7 @@ var dir_d44c64559bbebec7f509842c48db8b23 =
[ "datetime.php", "datetime_8php.html", "datetime_8php" ],
[ "deliver.php", "deliver_8php.html", "deliver_8php" ],
[ "diaspora.php", "diaspora_8php.html", "diaspora_8php" ],
+ [ "dimport.php", "dimport_8php.html", "dimport_8php" ],
[ "dir_fns.php", "dir__fns_8php.html", "dir__fns_8php" ],
[ "directory.php", "include_2directory_8php.html", "include_2directory_8php" ],
[ "enotify.php", "enotify_8php.html", "enotify_8php" ],
@@ -43,6 +45,7 @@ var dir_d44c64559bbebec7f509842c48db8b23 =
[ "expire.php", "expire_8php.html", "expire_8php" ],
[ "externals.php", "externals_8php.html", "externals_8php" ],
[ "features.php", "features_8php.html", "features_8php" ],
+ [ "fixd.php", "fixd_8php.html", "fixd_8php" ],
[ "follow.php", "include_2follow_8php.html", "include_2follow_8php" ],
[ "gprobe.php", "gprobe_8php.html", "gprobe_8php" ],
[ "group.php", "include_2group_8php.html", "include_2group_8php" ],
@@ -90,6 +93,7 @@ var dir_d44c64559bbebec7f509842c48db8b23 =
] ],
[ "socgraph.php", "socgraph_8php.html", "socgraph_8php" ],
[ "spam.php", "spam_8php.html", "spam_8php" ],
+ [ "statistics_fns.php", "statistics__fns_8php.html", "statistics__fns_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/dir_e7f045be8bb383d8447c6a6b84145083.html b/doc/html/dir_e7f045be8bb383d8447c6a6b84145083.html
new file mode 100644
index 000000000..14d998f04
--- /dev/null
+++ b/doc/html/dir_e7f045be8bb383d8447c6a6b84145083.html
@@ -0,0 +1,118 @@
+<!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/RedDAV 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_e7f045be8bb383d8447c6a6b84145083.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">RedDAV 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:RedBasicAuth_8php"><td class="memItemLeft" align="right" valign="top">file &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="RedBasicAuth_8php.html">RedBasicAuth.php</a></td></tr>
+<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:RedBrowser_8php"><td class="memItemLeft" align="right" valign="top">file &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="RedBrowser_8php.html">RedBrowser.php</a></td></tr>
+<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:RedDirectory_8php"><td class="memItemLeft" align="right" valign="top">file &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="RedDirectory_8php.html">RedDirectory.php</a></td></tr>
+<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:RedFile_8php"><td class="memItemLeft" align="right" valign="top">file &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="RedFile_8php.html">RedFile.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_e7f045be8bb383d8447c6a6b84145083.js b/doc/html/dir_e7f045be8bb383d8447c6a6b84145083.js
new file mode 100644
index 000000000..477c22fe8
--- /dev/null
+++ b/doc/html/dir_e7f045be8bb383d8447c6a6b84145083.js
@@ -0,0 +1,15 @@
+var dir_e7f045be8bb383d8447c6a6b84145083 =
+[
+ [ "RedBasicAuth.php", "RedBasicAuth_8php.html", [
+ [ "RedBasicAuth", "classRedMatrix_1_1RedDAV_1_1RedBasicAuth.html", "classRedMatrix_1_1RedDAV_1_1RedBasicAuth" ]
+ ] ],
+ [ "RedBrowser.php", "RedBrowser_8php.html", [
+ [ "RedBrowser", "classRedMatrix_1_1RedDAV_1_1RedBrowser.html", "classRedMatrix_1_1RedDAV_1_1RedBrowser" ]
+ ] ],
+ [ "RedDirectory.php", "RedDirectory_8php.html", [
+ [ "RedDirectory", "classRedMatrix_1_1RedDAV_1_1RedDirectory.html", "classRedMatrix_1_1RedDAV_1_1RedDirectory" ]
+ ] ],
+ [ "RedFile.php", "RedFile_8php.html", [
+ [ "RedFile", "classRedMatrix_1_1RedDAV_1_1RedFile.html", "classRedMatrix_1_1RedDAV_1_1RedFile" ]
+ ] ]
+]; \ No newline at end of file
diff --git a/doc/html/dirsearch_8php.html b/doc/html/dirsearch_8php.html
index 8727aa805..8ea9faed9 100644
--- a/doc/html/dirsearch_8php.html
+++ b/doc/html/dirsearch_8php.html
@@ -118,12 +118,54 @@ Functions</h2></td></tr>
<tr class="separator:aa1fb04e1de4f25b63349ac78f94ceb4c"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a52bcac49b0e35cc8c6b70066143c2ee2"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="dirsearch_8php.html#a52bcac49b0e35cc8c6b70066143c2ee2">dir_query_build</a> ($joiner, $field, $s)</td></tr>
<tr class="separator:a52bcac49b0e35cc8c6b70066143c2ee2"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ab6d5fefa98da249a994b910434a669c2"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="dirsearch_8php.html#ab6d5fefa98da249a994b910434a669c2">dir_flag_build</a> ($joiner, $field, $bit, $s)</td></tr>
+<tr class="separator:ab6d5fefa98da249a994b910434a669c2"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a7d4cd9890d5ed23c3efc58e2a778a305"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="dirsearch_8php.html#a7d4cd9890d5ed23c3efc58e2a778a305">dir_parse_query</a> ($s)</td></tr>
<tr class="separator:a7d4cd9890d5ed23c3efc58e2a778a305"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a985d410a170549429857af6ff2673149"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="dirsearch_8php.html#a985d410a170549429857af6ff2673149">list_public_sites</a> ()</td></tr>
<tr class="separator:a985d410a170549429857af6ff2673149"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table>
<h2 class="groupheader">Function Documentation</h2>
+<a class="anchor" id="ab6d5fefa98da249a994b910434a669c2"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">dir_flag_build </td>
+ <td>(</td>
+ <td class="paramtype">&#160;</td>
+ <td class="paramname"><em>$joiner</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">&#160;</td>
+ <td class="paramname"><em>$field</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">&#160;</td>
+ <td class="paramname"><em>$bit</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">&#160;</td>
+ <td class="paramname"><em>$s</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="dirsearch_8php.html#aa1fb04e1de4f25b63349ac78f94ceb4c">dirsearch_content()</a>.</p>
+
+</div>
+</div>
<a class="anchor" id="a7d4cd9890d5ed23c3efc58e2a778a305"></a>
<div class="memitem">
<div class="memproto">
diff --git a/doc/html/dirsearch_8php.js b/doc/html/dirsearch_8php.js
index 325a941b9..635a97231 100644
--- a/doc/html/dirsearch_8php.js
+++ b/doc/html/dirsearch_8php.js
@@ -1,5 +1,6 @@
var dirsearch_8php =
[
+ [ "dir_flag_build", "dirsearch_8php.html#ab6d5fefa98da249a994b910434a669c2", null ],
[ "dir_parse_query", "dirsearch_8php.html#a7d4cd9890d5ed23c3efc58e2a778a305", null ],
[ "dir_query_build", "dirsearch_8php.html#a52bcac49b0e35cc8c6b70066143c2ee2", null ],
[ "dirsearch_content", "dirsearch_8php.html#aa1fb04e1de4f25b63349ac78f94ceb4c", null ],
diff --git a/doc/html/docblox__errorchecker_8php.html b/doc/html/docblox__errorchecker_8php.html
index 3b257594f..1774283f6 100644
--- a/doc/html/docblox__errorchecker_8php.html
+++ b/doc/html/docblox__errorchecker_8php.html
@@ -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="mod_2bookmarks_8php.html#a6b7942f3d27e40f0f47c88704127b9b3">bookmarks_init()</a>, <a class="el" href="boot_8php.html#a4c02d88e66852a01bd5a1feecb7c3ce3">check_config()</a>, <a class="el" href="include_2network_8php.html#a63e62946e194928eb17c5a9f2bbef0fe">discover_by_webbie()</a>, <a class="el" href="items_8php.html#a555762e1022a4b8e3c3abd32e7812408">drop_item()</a>, <a class="el" href="event_8php.html#a7378e839ac3de9d55579eb3ec48eaf92">event_store_item()</a>, <a class="el" href="items_8php.html#aba98fcbbcd7044a7e9ea34edabc14c87">fix_private_photos()</a>, <a class="el" href="classRedBrowser.html#a1f7daf50bb9bfcde7345b3b1908dbd7e">RedBrowser\generateDirectoryIndex()</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#a764bbb2e9a885a86fb23d0b5e4a09221">item_content()</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="diaspora_8php.html#a5d57518545baa31cf8a85a937a267681">diaspora_like()</a>, <a class="el" href="include_2network_8php.html#a63e62946e194928eb17c5a9f2bbef0fe">discover_by_webbie()</a>, <a class="el" href="items_8php.html#a555762e1022a4b8e3c3abd32e7812408">drop_item()</a>, <a class="el" href="event_8php.html#a7378e839ac3de9d55579eb3ec48eaf92">event_store_item()</a>, <a class="el" href="items_8php.html#aba98fcbbcd7044a7e9ea34edabc14c87">fix_private_photos()</a>, <a class="el" href="classRedMatrix_1_1RedDAV_1_1RedBrowser.html#af764d5f14df751f9ec86c34fab300c09">RedMatrix\RedDAV\RedBrowser\generateDirectoryIndex()</a>, <a class="el" href="bb2diaspora_8php.html#a4c2f8f11b29a06809d9b07782215b1b2">get_bb_tag_pos()</a>, <a class="el" href="impel_8php.html#ab7db6fca43b42ea4332cb3e841b3cf7b">impel_init()</a>, <a class="el" href="import_8php.html#af17fef0410518f7eac205d0ea416eaa2">import_post()</a>, <a class="el" href="text_8php.html#a1557112a774ec00fa06ed6b6f6495506">is_a_date_arg()</a>, <a class="el" href="item_8php.html#a764bbb2e9a885a86fb23d0b5e4a09221">item_content()</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/editblock_8php.html b/doc/html/editblock_8php.html
index f33d0956e..019938416 100644
--- a/doc/html/editblock_8php.html
+++ b/doc/html/editblock_8php.html
@@ -112,6 +112,8 @@ $(document).ready(function(){initNavTree('editblock_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:ab7806bb42ae5e93f0330d7bd179d4b3e"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="editblock_8php.html#ab7806bb42ae5e93f0330d7bd179d4b3e">editblock_init</a> (&amp;$a)</td></tr>
+<tr class="separator:ab7806bb42ae5e93f0330d7bd179d4b3e"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:abbe8f55de06967bc8d79d620509a49e6"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="editblock_8php.html#abbe8f55de06967bc8d79d620509a49e6">editblock_content</a> (&amp;$a)</td></tr>
<tr class="separator:abbe8f55de06967bc8d79d620509a49e6"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table>
@@ -132,6 +134,22 @@ Functions</h2></td></tr>
</div>
</div>
+<a class="anchor" id="ab7806bb42ae5e93f0330d7bd179d4b3e"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">editblock_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/editblock_8php.js b/doc/html/editblock_8php.js
index dae23cf05..7acf62547 100644
--- a/doc/html/editblock_8php.js
+++ b/doc/html/editblock_8php.js
@@ -1,4 +1,5 @@
var editblock_8php =
[
- [ "editblock_content", "editblock_8php.html#abbe8f55de06967bc8d79d620509a49e6", null ]
+ [ "editblock_content", "editblock_8php.html#abbe8f55de06967bc8d79d620509a49e6", null ],
+ [ "editblock_init", "editblock_8php.html#ab7806bb42ae5e93f0330d7bd179d4b3e", null ]
]; \ No newline at end of file
diff --git a/doc/html/editlayout_8php.html b/doc/html/editlayout_8php.html
index e59994c3e..ec62348c1 100644
--- a/doc/html/editlayout_8php.html
+++ b/doc/html/editlayout_8php.html
@@ -112,6 +112,8 @@ $(document).ready(function(){initNavTree('editlayout_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:a97c1e93d9e75ad8cd2c2f9a7f77341a7"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="editlayout_8php.html#a97c1e93d9e75ad8cd2c2f9a7f77341a7">editlayout_init</a> (&amp;$a)</td></tr>
+<tr class="separator:a97c1e93d9e75ad8cd2c2f9a7f77341a7"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:aa877e4157a26b099de904164181dd386"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="editlayout_8php.html#aa877e4157a26b099de904164181dd386">editlayout_content</a> (&amp;$a)</td></tr>
<tr class="separator:aa877e4157a26b099de904164181dd386"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table>
@@ -132,6 +134,22 @@ Functions</h2></td></tr>
</div>
</div>
+<a class="anchor" id="a97c1e93d9e75ad8cd2c2f9a7f77341a7"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">editlayout_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/editlayout_8php.js b/doc/html/editlayout_8php.js
index a41acddd1..0720ddc09 100644
--- a/doc/html/editlayout_8php.js
+++ b/doc/html/editlayout_8php.js
@@ -1,4 +1,5 @@
var editlayout_8php =
[
- [ "editlayout_content", "editlayout_8php.html#aa877e4157a26b099de904164181dd386", null ]
+ [ "editlayout_content", "editlayout_8php.html#aa877e4157a26b099de904164181dd386", null ],
+ [ "editlayout_init", "editlayout_8php.html#a97c1e93d9e75ad8cd2c2f9a7f77341a7", null ]
]; \ No newline at end of file
diff --git a/doc/html/editwebpage_8php.html b/doc/html/editwebpage_8php.html
index e8f689b67..8672a9779 100644
--- a/doc/html/editwebpage_8php.html
+++ b/doc/html/editwebpage_8php.html
@@ -112,6 +112,8 @@ $(document).ready(function(){initNavTree('editwebpage_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:a94109f9c796fbe92508bf9574e35d19f"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="editwebpage_8php.html#a94109f9c796fbe92508bf9574e35d19f">editwebpage_init</a> (&amp;$a)</td></tr>
+<tr class="separator:a94109f9c796fbe92508bf9574e35d19f"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a375e945255fad79a71036528f7480650"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="editwebpage_8php.html#a375e945255fad79a71036528f7480650">editwebpage_content</a> (&amp;$a)</td></tr>
<tr class="separator:a375e945255fad79a71036528f7480650"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table>
@@ -132,6 +134,22 @@ Functions</h2></td></tr>
</div>
</div>
+<a class="anchor" id="a94109f9c796fbe92508bf9574e35d19f"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">editwebpage_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/editwebpage_8php.js b/doc/html/editwebpage_8php.js
index c9e825bb8..ccce7d0cd 100644
--- a/doc/html/editwebpage_8php.js
+++ b/doc/html/editwebpage_8php.js
@@ -1,4 +1,5 @@
var editwebpage_8php =
[
- [ "editwebpage_content", "editwebpage_8php.html#a375e945255fad79a71036528f7480650", null ]
+ [ "editwebpage_content", "editwebpage_8php.html#a375e945255fad79a71036528f7480650", null ],
+ [ "editwebpage_init", "editwebpage_8php.html#a94109f9c796fbe92508bf9574e35d19f", null ]
]; \ No newline at end of file
diff --git a/doc/html/event_8php.html b/doc/html/event_8php.html
index a6368ee29..827491d8c 100644
--- a/doc/html/event_8php.html
+++ b/doc/html/event_8php.html
@@ -114,6 +114,12 @@ $(document).ready(function(){initNavTree('event_8php.html','');});
Functions</h2></td></tr>
<tr class="memitem:a2ac9f1b08de03250ecd794f705781d17"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="event_8php.html#a2ac9f1b08de03250ecd794f705781d17">format_event_html</a> ($ev)</td></tr>
<tr class="separator:a2ac9f1b08de03250ecd794f705781d17"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ab8cc2825013e724dc26229026711cf93"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="event_8php.html#ab8cc2825013e724dc26229026711cf93">ical_wrapper</a> ($ev)</td></tr>
+<tr class="separator:ab8cc2825013e724dc26229026711cf93"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a3ff7f1824540a38f4a3991a59a9542d4"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="event_8php.html#a3ff7f1824540a38f4a3991a59a9542d4">format_event_ical</a> ($ev)</td></tr>
+<tr class="separator:a3ff7f1824540a38f4a3991a59a9542d4"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a05073cd4ab837bd4a0149e8ed23ce688"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="event_8php.html#a05073cd4ab837bd4a0149e8ed23ce688">format_ical_text</a> ($s)</td></tr>
+<tr class="separator:a05073cd4ab837bd4a0149e8ed23ce688"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:abb74206cf42d694307c3d7abb7af9869"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="event_8php.html#abb74206cf42d694307c3d7abb7af9869">format_event_bbcode</a> ($ev)</td></tr>
<tr class="separator:abb74206cf42d694307c3d7abb7af9869"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a184d6b9690e5b6dee35a0aa9edd47279"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="event_8php.html#a184d6b9690e5b6dee35a0aa9edd47279">bbtovcal</a> ($s)</td></tr>
@@ -302,6 +308,60 @@ Functions</h2></td></tr>
</div>
</div>
+<a class="anchor" id="a3ff7f1824540a38f4a3991a59a9542d4"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">format_event_ical </td>
+ <td>(</td>
+ <td class="paramtype">&#160;</td>
+ <td class="paramname"><em>$ev</em></td><td>)</td>
+ <td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Referenced by <a class="el" href="event_8php.html#ab8cc2825013e724dc26229026711cf93">ical_wrapper()</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="a05073cd4ab837bd4a0149e8ed23ce688"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">format_ical_text </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="event_8php.html#a3ff7f1824540a38f4a3991a59a9542d4">format_event_ical()</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="ab8cc2825013e724dc26229026711cf93"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">ical_wrapper </td>
+ <td>(</td>
+ <td class="paramtype">&#160;</td>
+ <td class="paramname"><em>$ev</em></td><td>)</td>
+ <td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Referenced by <a class="el" href="events_8php.html#a1d293fb217ae6bc9e3858c4b32e363ec">events_content()</a>.</p>
+
+</div>
+</div>
<a class="anchor" id="a018ea4484910a873a7c1eaa126de9b1a"></a>
<div class="memitem">
<div class="memproto">
diff --git a/doc/html/event_8php.js b/doc/html/event_8php.js
index b748ecc51..f95c17696 100644
--- a/doc/html/event_8php.js
+++ b/doc/html/event_8php.js
@@ -8,5 +8,8 @@ var event_8php =
[ "event_store_item", "event_8php.html#a7378e839ac3de9d55579eb3ec48eaf92", null ],
[ "format_event_bbcode", "event_8php.html#abb74206cf42d694307c3d7abb7af9869", null ],
[ "format_event_html", "event_8php.html#a2ac9f1b08de03250ecd794f705781d17", null ],
+ [ "format_event_ical", "event_8php.html#a3ff7f1824540a38f4a3991a59a9542d4", null ],
+ [ "format_ical_text", "event_8php.html#a05073cd4ab837bd4a0149e8ed23ce688", null ],
+ [ "ical_wrapper", "event_8php.html#ab8cc2825013e724dc26229026711cf93", null ],
[ "sort_by_date", "event_8php.html#a018ea4484910a873a7c1eaa126de9b1a", null ]
]; \ No newline at end of file
diff --git a/doc/html/extract_8php.html b/doc/html/extract_8php.html
index 9790cd81d..422f1cf38 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="__well__known_8php.html#a6ebfa937a2024f0b5dab53f0ac90fed0">_well_known_init()</a>, <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="include_2apps_8php.html#a15626f24069c18816f7cdaf4735f58f9">app_store()</a>, <a class="el" href="include_2apps_8php.html#aeab6a62d2f3dfaa86ed043a006305f46">app_update()</a>, <a class="el" href="appman_8php.html#a2979acbe47ffaecfa19b9eabfbfbde39">appman_post()</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#aef1cb2968c41c759f2d106e1088ca323">bookmark_add()</a>, <a class="el" href="include_2chat_8php.html#acea6b176eb7aff44d9ba3ae24ce511d3">chat_message()</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="chatsvc_8php.html#a7c9a9b9c24a2b02eed8efd6b09632d03">chatsvc_post()</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="diaspora_8php.html#a5d57518545baa31cf8a85a937a267681">diaspora_like()</a>, <a class="el" href="diaspora_8php.html#a131abd521b218d6ae6f7d2917d8b2605">diaspora_process_outbound()</a>, <a class="el" href="mod_2directory_8php.html#aac79396570d759da2efac24fcedf5b44">directory_content()</a>, <a class="el" href="include_2network_8php.html#a5176176ddc1906d91f186df6fbd87b48">discover_by_url()</a>, <a class="el" href="include_2network_8php.html#a63e62946e194928eb17c5a9f2bbef0fe">discover_by_webbie()</a>, <a class="el" href="items_8php.html#a555762e1022a4b8e3c3abd32e7812408">drop_item()</a>, <a class="el" href="event_8php.html#af5ac41e7ea3f7131088fe6333fd2846c">event_store_event()</a>, <a class="el" href="event_8php.html#a7378e839ac3de9d55579eb3ec48eaf92">event_store_item()</a>, <a class="el" href="externals_8php.html#a4df44079e6f915286088b7a0d44db926">externals_run()</a>, <a class="el" href="features_8php.html#a52b5bdfb61b256713efecf7a7b20b0c0">feature_enabled()</a>, <a class="el" href="include_2network_8php.html#a850ed5307c6a18076f4b80addc99602d">fetch_xrd_links()</a>, <a class="el" href="items_8php.html#a8cda98925a4c5c2f6dade70d9586d79a">filter_insecure()</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#a5e5be7bf1f8257dec0b2647e60a3f3f1">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="hostxrd_8php.html#aa37ffc8e7900bc76c4828bd25916db92">hostxrd_init()</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#a20750dd2c36961013fd382fb34e1366c">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#a528e97ca5d69c3b7f35c5d954afde315">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#a4d9e6ca295e443b740d9960c304b3474">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="comanche_8php.html#a3d11417d2d846dbe72638a556529ff8f">register_page_template()</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="account_8php.html#a030cec6793b909c439c0336ba39b1571">service_class_allows()</a>, <a class="el" href="account_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="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="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="include_2apps_8php.html#a48289d5cc44b7638191738106ac5d030">translate_system_apps()</a>, <a class="el" href="identity_8php.html#af2802bc13a00a17b867bba7978ba8f58">validate_channelname()</a>, <a class="el" href="account_8php.html#acd6b8d2124ba5ea4f4794d2c58ae8bf5">verify_email_address()</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#a9d60539db68042e63c0015abd69a6f7a">widget_clock()</a>, <a class="el" href="widgets_8php.html#a313a8d10ab81c71357c12e67e4d7efd5">widget_item()</a>, <a class="el" href="widgets_8php.html#a999ba893cac7600d3d3b4e7e14cf8c20">widget_photo()</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>
+<p>Referenced by <a class="el" href="__well__known_8php.html#a6ebfa937a2024f0b5dab53f0ac90fed0">_well_known_init()</a>, <a class="el" href="account_8php.html#a4328c40ee4b3d68630cf1ebb7b9d4d89">account_service_class_fetch()</a>, <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="include_2apps_8php.html#a15626f24069c18816f7cdaf4735f58f9">app_store()</a>, <a class="el" href="include_2apps_8php.html#aeab6a62d2f3dfaa86ed043a006305f46">app_update()</a>, <a class="el" href="appman_8php.html#a2979acbe47ffaecfa19b9eabfbfbde39">appman_post()</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#aef1cb2968c41c759f2d106e1088ca323">bookmark_add()</a>, <a class="el" href="include_2chat_8php.html#acea6b176eb7aff44d9ba3ae24ce511d3">chat_message()</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="chatsvc_8php.html#a7c9a9b9c24a2b02eed8efd6b09632d03">chatsvc_post()</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="diaspora_8php.html#a5d57518545baa31cf8a85a937a267681">diaspora_like()</a>, <a class="el" href="diaspora_8php.html#a131abd521b218d6ae6f7d2917d8b2605">diaspora_process_outbound()</a>, <a class="el" href="mod_2directory_8php.html#aac79396570d759da2efac24fcedf5b44">directory_content()</a>, <a class="el" href="include_2network_8php.html#a5176176ddc1906d91f186df6fbd87b48">discover_by_url()</a>, <a class="el" href="include_2network_8php.html#a63e62946e194928eb17c5a9f2bbef0fe">discover_by_webbie()</a>, <a class="el" href="items_8php.html#a555762e1022a4b8e3c3abd32e7812408">drop_item()</a>, <a class="el" href="event_8php.html#af5ac41e7ea3f7131088fe6333fd2846c">event_store_event()</a>, <a class="el" href="event_8php.html#a7378e839ac3de9d55579eb3ec48eaf92">event_store_item()</a>, <a class="el" href="externals_8php.html#a4df44079e6f915286088b7a0d44db926">externals_run()</a>, <a class="el" href="features_8php.html#a52b5bdfb61b256713efecf7a7b20b0c0">feature_enabled()</a>, <a class="el" href="include_2network_8php.html#a850ed5307c6a18076f4b80addc99602d">fetch_xrd_links()</a>, <a class="el" href="items_8php.html#a8cda98925a4c5c2f6dade70d9586d79a">filter_insecure()</a>, <a class="el" href="text_8php.html#ace3c98538c63e09b70a363210b414112">find_xchan_in_array()</a>, <a class="el" href="dimport_8php.html#a581f040717941ce3e1868b0b5dceefd1">foofoo()</a>, <a class="el" href="conversation_8php.html#a3d8e30cc94f9a175054c021305d3aca3">format_like()</a>, <a class="el" href="text_8php.html#ae0333c304ec5b4b72e66bb2933fa7357">generate_map()</a>, <a class="el" href="text_8php.html#af5eb4a9c1599764f80c5bc71e0125d4b">generate_named_map()</a>, <a class="el" href="permissions_8php.html#aeca9b280f3dc3358c89976d81d690008">get_all_perms()</a>, <a class="el" href="items_8php.html#a5e5be7bf1f8257dec0b2647e60a3f3f1">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="hostxrd_8php.html#aa37ffc8e7900bc76c4828bd25916db92">hostxrd_init()</a>, <a class="el" href="text_8php.html#a436a8de00c942364c2d0fcfc7e1f4b5a">ids_to_querystr()</a>, <a class="el" href="impel_8php.html#ab7db6fca43b42ea4332cb3e841b3cf7b">impel_init()</a>, <a class="el" href="items_8php.html#a6bee35961f2e32905f20367a9309d627">import_author_rss()</a>, <a class="el" href="items_8php.html#a37f79991f36811cf847446ff60e8e11f">import_author_unknown()</a>, <a class="el" href="items_8php.html#ae73794179b62d39bb597ff670ab1c1e5">import_author_xchan()</a>, <a class="el" href="zot_8php.html#a20750dd2c36961013fd382fb34e1366c">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#a528e97ca5d69c3b7f35c5d954afde315">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#a0e3006e7a456b2175a9badc96bc5176d">process_delivery()</a>, <a class="el" href="zot_8php.html#a8eeefdb0dad4c436bea9d1c06c0a7988">process_location_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="refimport_8php.html#ad97ebb5feda0230a4834e0b3637a0d29">refimport_content()</a>, <a class="el" href="refimport_8php.html#a01a29630fa5e1ce6cd5e1fd75280747c">reflect_comment_store()</a>, <a class="el" href="comanche_8php.html#a3d11417d2d846dbe72638a556529ff8f">register_page_template()</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="account_8php.html#a030cec6793b909c439c0336ba39b1571">service_class_allows()</a>, <a class="el" href="account_8php.html#a905b54e10704b283ac64680a8abc0971">service_class_fetch()</a>, <a class="el" href="classApp.html#abea5a4f77dcd53c928dc4eed86616637">App\set_apps()</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="zot_8php.html#ab15c04e7e5f44edf45ec50dd7d183254">sync_locations()</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="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="include_2apps_8php.html#a48289d5cc44b7638191738106ac5d030">translate_system_apps()</a>, <a class="el" href="identity_8php.html#af2802bc13a00a17b867bba7978ba8f58">validate_channelname()</a>, <a class="el" href="account_8php.html#acd6b8d2124ba5ea4f4794d2c58ae8bf5">verify_email_address()</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#af919de8e7e2ba8192a65fadc72a2c8b5">widget_catcloud_wall()</a>, <a class="el" href="widgets_8php.html#a9d60539db68042e63c0015abd69a6f7a">widget_clock()</a>, <a class="el" href="widgets_8php.html#a313a8d10ab81c71357c12e67e4d7efd5">widget_item()</a>, <a class="el" href="widgets_8php.html#a999ba893cac7600d3d3b4e7e14cf8c20">widget_photo()</a>, <a class="el" href="widgets_8php.html#af8eb466ef91d9e96e13335ead5eba380">widget_photo_rand()</a>, <a class="el" href="widgets_8php.html#a829c5a5c7448129266fc1df3ae1a3c2e">widget_random_block()</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="hubloc_8php.html#af1b476c936f96a93282b1d058e3d05ea">xchan_fetch()</a>, <a class="el" href="text_8php.html#a543447c5ed766535221e2d9636b379ee">xchan_mail_query()</a>, <a class="el" href="text_8php.html#a905c3895feb6f276df23f07f16f9bb52">xchan_query()</a>, <a class="el" href="hubloc_8php.html#acb708dd197aae72a4858cf5ff4e3195b">xchan_store()</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="items_8php.html#a1cf89557f32d5dfbe8bd90448dc1aa92">zot_feed()</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#a3920afe14fc1d82020161b4b86bcd9ac">zot_process_message_request()</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#ad59fc09da66b66267f9753c8b2dd68d0">apw_form()</a>, <a class="el" href="fbrowser_8php.html#aee476addcf7a3e0fe9454f7dfd5a56c4">fbrowser_content()</a>, <a class="el" href="classRedBrowser.html#a1f7daf50bb9bfcde7345b3b1908dbd7e">RedBrowser\generateDirectoryIndex()</a>, <a class="el" href="include_2apps_8php.html#ae64f72eb4f126e03b4eb65ed1702a3ca">get_system_apps()</a>, <a class="el" href="pdledit_8php.html#a59cb550f6b7a4e7d8196fbc9de601619">pdledit_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#ad59fc09da66b66267f9753c8b2dd68d0">apw_form()</a>, <a class="el" href="fbrowser_8php.html#aee476addcf7a3e0fe9454f7dfd5a56c4">fbrowser_content()</a>, <a class="el" href="classRedMatrix_1_1RedDAV_1_1RedBrowser.html#af764d5f14df751f9ec86c34fab300c09">RedMatrix\RedDAV\RedBrowser\generateDirectoryIndex()</a>, <a class="el" href="include_2apps_8php.html#ae64f72eb4f126e03b4eb65ed1702a3ca">get_system_apps()</a>, <a class="el" href="pdledit_8php.html#a59cb550f6b7a4e7d8196fbc9de601619">pdledit_content()</a>, <a class="el" href="view_2theme_2redbasic_2php_2config_8php.html#a8574a41fa9735ee391ba57ab24b93793">redbasic_form()</a>, <a class="el" href="refimport_8php.html#ad97ebb5feda0230a4834e0b3637a0d29">refimport_content()</a>, and <a class="el" href="Contact_8php.html#ab5895b75a3b2abdddf1cb351a8c6b58b">rrmdir()</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="include_2apps_8php.html#ad5f6f1443725386cc7af5ed34a5fe185">app_decode()</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="boot_8php.html#acc4e0c910af066148b810e5fde55fff1">construct_page()</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#ac9061ee10fcfcdac69566b649614e625">diaspora2bb()</a>, <a class="el" href="diaspora_8php.html#a858f70153c384f8778082cf7843a19da">diaspora_is_blacklisted()</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="dirsearch_8php.html#a7d4cd9890d5ed23c3efc58e2a778a305">dir_parse_query()</a>, <a class="el" href="dirsearch_8php.html#a52bcac49b0e35cc8c6b70066143c2ee2">dir_query_build()</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="text_8php.html#a3a0c432a484c17d7720b8ba2d6bfdd59">format_hashtags()</a>, <a class="el" href="text_8php.html#ad8c6e13d6accf057136c5f30a23a5f08">format_mentions()</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="include_2network_8php.html#a316f318167a039c89719afbd129a8f3c">scrape_feed()</a>, <a class="el" href="include_2network_8php.html#acb0bd7f5fe38ff1eaebeae3284525070">scrape_vcard()</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#ac6ae482ee54fa2764d5c2e77305aeb96">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#a3e6c751a51de33ad3563f0938296e78a">webfinger_rfc7033()</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="include_2apps_8php.html#ad5f6f1443725386cc7af5ed34a5fe185">app_decode()</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#ac9061ee10fcfcdac69566b649614e625">diaspora2bb()</a>, <a class="el" href="diaspora_8php.html#a858f70153c384f8778082cf7843a19da">diaspora_is_blacklisted()</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="dirsearch_8php.html#ab6d5fefa98da249a994b910434a669c2">dir_flag_build()</a>, <a class="el" href="dirsearch_8php.html#a7d4cd9890d5ed23c3efc58e2a778a305">dir_parse_query()</a>, <a class="el" href="dirsearch_8php.html#a52bcac49b0e35cc8c6b70066143c2ee2">dir_query_build()</a>, <a class="el" href="event_8php.html#a7378e839ac3de9d55579eb3ec48eaf92">event_store_item()</a>, <a class="el" href="text_8php.html#ae4282a39492caa23ccbc2ce98e54f110">expand_acl()</a>, <a class="el" href="text_8php.html#a3ba47b4dd1248e7e51095572e7b814dc">extra_query_args()</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="text_8php.html#a3a0c432a484c17d7720b8ba2d6bfdd59">format_hashtags()</a>, <a class="el" href="event_8php.html#a05073cd4ab837bd4a0149e8ed23ce688">format_ical_text()</a>, <a class="el" href="text_8php.html#ad8c6e13d6accf057136c5f30a23a5f08">format_mentions()</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="zot_8php.html#a528e97ca5d69c3b7f35c5d954afde315">import_xchan()</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="boot_8php.html#a50a6707a28c7d05d3f49eaabc7994501">load_pdl()</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="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="refimport_8php.html#ad97ebb5feda0230a4834e0b3637a0d29">refimport_content()</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="include_2network_8php.html#a316f318167a039c89719afbd129a8f3c">scrape_feed()</a>, <a class="el" href="include_2network_8php.html#acb0bd7f5fe38ff1eaebeae3284525070">scrape_vcard()</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#ac6ae482ee54fa2764d5c2e77305aeb96">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="statistics__fns_8php.html#a82726229a961d3bd3d543005c61dd8e6">update_channels_active_halfyear_stat()</a>, <a class="el" href="statistics__fns_8php.html#ad2b7b595c039c4c2eb0d6cd57a393dfe">update_channels_active_monthly_stat()</a>, <a class="el" href="classTemplate.html#abbc484016ddf5d818f55b823cae6feb0">Template\var_replace()</a>, <a class="el" href="include_2network_8php.html#a3e6c751a51de33ad3563f0938296e78a">webfinger_rfc7033()</a>, <a class="el" href="boot_8php.html#ae97836b0547953be182a2334c9c91d3c">x()</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="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/fbrowser_8php.html b/doc/html/fbrowser_8php.html
index 0ccc72963..a94a434cf 100644
--- a/doc/html/fbrowser_8php.html
+++ b/doc/html/fbrowser_8php.html
@@ -137,7 +137,7 @@ Functions</h2></td></tr>
</div><div class="memdoc">
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
- <tr><td class="paramtype"><a class="el" href="classApp.html">App</a></td><td class="paramname">$a</td><td></td></tr>
+ <tr><td class="paramtype"><a class="el" href="classApp.html" title="Our main application structure for the life of this page.">App</a></td><td class="paramname">$a</td><td></td></tr>
</table>
</dd>
</dl>
diff --git a/doc/html/features_8php.html b/doc/html/features_8php.html
index ad454827d..cbd3e1603 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="include_2apps_8php.html#a1b2e737f477a2e0d9d11ef14adc5aa66">app_render()</a>, <a class="el" href="view_2theme_2apw_2php_2config_8php.html#ad59fc09da66b66267f9753c8b2dd68d0">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="nav_8php.html#a43be0df73b90647ea70947ce004e231e">nav()</a>, <a class="el" href="include_2apps_8php.html#a32fe4ed9666228fd4b67dc487cc57a83">parse_app_description()</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="profiles_8php.html#a46975783b8b8d70402d51487eb1f0b00">profiles_content()</a>, <a class="el" href="profiles_8php.html#ab0362c81b1d3b0b12a772b9fac446e04">profiles_post()</a>, <a class="el" href="view_2theme_2redbasic_2php_2config_8php.html#a8574a41fa9735ee391ba57ab24b93793">redbasic_form()</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="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>
+<p>Referenced by <a class="el" href="include_2apps_8php.html#a1b2e737f477a2e0d9d11ef14adc5aa66">app_render()</a>, <a class="el" href="view_2theme_2apw_2php_2config_8php.html#ad59fc09da66b66267f9753c8b2dd68d0">apw_form()</a>, <a class="el" href="blocks_8php.html#a2531a8fd51db3cecb2eb20c002c66e12">blocks_content()</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="editpost_8php.html#a34011690864d122680c802e9e748ccfb">editpost_content()</a>, <a class="el" href="events_8php.html#a1d293fb217ae6bc9e3858c4b32e363ec">events_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="nav_8php.html#a43be0df73b90647ea70947ce004e231e">nav()</a>, <a class="el" href="include_2apps_8php.html#a32fe4ed9666228fd4b67dc487cc57a83">parse_app_description()</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="profiles_8php.html#a46975783b8b8d70402d51487eb1f0b00">profiles_content()</a>, <a class="el" href="profiles_8php.html#ab0362c81b1d3b0b12a772b9fac446e04">profiles_post()</a>, <a class="el" href="view_2theme_2redbasic_2php_2config_8php.html#a8574a41fa9735ee391ba57ab24b93793">redbasic_form()</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="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="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#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 0c8713881..c711be295 100644
--- a/doc/html/files.html
+++ b/doc/html/files.html
@@ -108,94 +108,105 @@ $(document).ready(function(){initNavTree('files.html','');});
</div><!--header-->
<div class="contents">
<div class="textblock">Here is a list of all files with brief descriptions:</div><div class="directory">
-<div class="levels">[detail level <span onclick="javascript:toggleLevel(1);">1</span><span onclick="javascript:toggleLevel(2);">2</span><span onclick="javascript:toggleLevel(3);">3</span><span onclick="javascript:toggleLevel(4);">4</span><span onclick="javascript:toggleLevel(5);">5</span><span onclick="javascript:toggleLevel(6);">6</span><span onclick="javascript:toggleLevel(7);">7</span>]</div><table class="directory">
+<div class="levels">[detail level <span onclick="javascript:toggleLevel(1);">1</span><span onclick="javascript:toggleLevel(2);">2</span><span onclick="javascript:toggleLevel(3);">3</span><span onclick="javascript:toggleLevel(4);">4</span><span onclick="javascript:toggleLevel(5);">5</span>]</div><table class="directory">
<tr id="row_0_" class="even"><td class="entry"><img id="arr_0_" src="ftv2pnode.png" alt="o" width="16" height="22" onclick="toggleFolder('0_')"/><img id="img_0_" src="ftv2folderclosed.png" alt="+" width="24" height="22" onclick="toggleFolder('0_')"/><a class="el" href="dir_d44c64559bbebec7f509842c48db8b23.html" target="_self">include</a></td><td class="desc"></td></tr>
<tr id="row_0_0_" style="display:none;"><td class="entry"><img src="ftv2vertline.png" alt="|" width="16" height="22" /><img id="arr_0_0_" src="ftv2pnode.png" alt="o" width="16" height="22" onclick="toggleFolder('0_0_')"/><img id="img_0_0_" src="ftv2folderclosed.png" alt="+" width="24" height="22" onclick="toggleFolder('0_0_')"/><a class="el" href="dir_21bc5169ff11430004758be31dcfc6c4.html" target="_self">dba</a></td><td class="desc"></td></tr>
-<tr id="row_0_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="ftv2node.png" alt="o" width="16" height="22" /><img src="ftv2doc.png" alt="*" width="24" height="22" /><a class="el" href="dba__driver_8php.html" target="_self">dba_driver.php</a></td><td class="desc"></td></tr>
+<tr id="row_0_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="ftv2node.png" alt="o" width="16" height="22" /><img src="ftv2doc.png" alt="*" width="24" height="22" /><a class="el" href="dba__driver_8php.html" target="_self">dba_driver.php</a></td><td class="desc">Some database related functions and abstract driver class</td></tr>
<tr id="row_0_0_1_" 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="dba__mysql_8php.html" target="_self">dba_mysql.php</a></td><td class="desc"></td></tr>
-<tr id="row_0_0_2_" 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="dba__mysqli_8php.html" target="_self">dba_mysqli.php</a></td><td class="desc"></td></tr>
-<tr id="row_0_1_" style="display:none;"><td class="entry"><img src="ftv2vertline.png" alt="|" width="16" height="22" /><img id="arr_0_1_" src="ftv2pnode.png" alt="o" width="16" height="22" onclick="toggleFolder('0_1_')"/><img id="img_0_1_" src="ftv2folderclosed.png" alt="+" width="24" height="22" onclick="toggleFolder('0_1_')"/><a class="el" href="dir_aae29906d7bfc07d076125f669c8352e.html" target="_self">photo</a></td><td class="desc"></td></tr>
-<tr id="row_0_1_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="ftv2node.png" alt="o" width="16" height="22" /><img src="ftv2doc.png" alt="*" width="24" height="22" /><a class="el" href="photo__driver_8php.html" target="_self">photo_driver.php</a></td><td class="desc"></td></tr>
-<tr id="row_0_1_1_" 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="photo__gd_8php.html" target="_self">photo_gd.php</a></td><td class="desc"></td></tr>
-<tr id="row_0_1_2_" 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="photo__imagick_8php.html" target="_self">photo_imagick.php</a></td><td class="desc"></td></tr>
-<tr id="row_0_2_" style="display:none;"><td class="entry"><img src="ftv2vertline.png" alt="|" width="16" height="22" /><img src="ftv2node.png" alt="o" width="16" height="22" /><img src="ftv2doc.png" alt="*" width="24" height="22" /><a class="el" href="account_8php.html" target="_self">account.php</a></td><td class="desc"></td></tr>
-<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_2apps_8php.html" target="_self">apps.php</a></td><td class="desc"></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="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_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="auth_8php.html" target="_self">auth.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="BaseObject_8php.html" target="_self">BaseObject.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="bb2diaspora_8php.html" target="_self">bb2diaspora.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="bbcode_8php.html" target="_self">bbcode.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_2bookmarks_8php.html" target="_self">bookmarks.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="cache_8php.html" target="_self">cache.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_2chanman_8php.html" target="_self">chanman.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="include_2chat_8php.html" target="_self">chat.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__startup_8php.html" target="_self">cli_startup.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="cli__suggest_8php.html" target="_self">cli_suggest.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="comanche_8php.html" target="_self">comanche.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="include_2config_8php.html" target="_self">config.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_8php.html" target="_self">Contact.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__selectors_8php.html" target="_self">contact_selectors.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="contact__widgets_8php.html" target="_self">contact_widgets.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="conversation_8php.html" target="_self">conversation.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="ConversationObject_8php.html" target="_self">ConversationObject.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="cronhooks_8php.html" target="_self">cronhooks.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="crypto_8php.html" target="_self">crypto.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="datetime_8php.html" target="_self">datetime.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="deliver_8php.html" target="_self">deliver.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="diaspora_8php.html" target="_self">diaspora.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="dir__fns_8php.html" target="_self">dir_fns.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="include_2directory_8php.html" target="_self">directory.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="enotify_8php.html" target="_self">enotify.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="event_8php.html" target="_self">event.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="expire_8php.html" target="_self">expire.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="externals_8php.html" target="_self">externals.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="features_8php.html" target="_self">features.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_2follow_8php.html" target="_self">follow.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="gprobe_8php.html" target="_self">gprobe.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="include_2group_8php.html" target="_self">group.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="html2bbcode_8php.html" target="_self">html2bbcode.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="html2plain_8php.html" target="_self">html2plain.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="hubloc_8php.html" target="_self">hubloc.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="identity_8php.html" target="_self">identity.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="ItemObject_8php.html" target="_self">ItemObject.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="ITemplateEngine_8php.html" target="_self">ITemplateEngine.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="items_8php.html" target="_self">items.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="language_8php.html" target="_self">language.php</a></td><td class="desc">Translation support</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_2menu_8php.html" target="_self">menu.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="include_2message_8php.html" target="_self">message.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="nav_8php.html" target="_self">nav.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="include_2network_8php.html" target="_self">network.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="notifier_8php.html" target="_self">notifier.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="include_2notify_8php.html" target="_self">notify.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="oauth_8php.html" target="_self">oauth.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_2oembed_8php.html" target="_self">oembed.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="onedirsync_8php.html" target="_self">onedirsync.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="onepoll_8php.html" target="_self">onepoll.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="page__widgets_8php.html" target="_self">page_widgets.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="permissions_8php.html" target="_self">permissions.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="include_2photos_8php.html" target="_self">photos.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="plugin_8php.html" target="_self">plugin.php</a></td><td class="desc">Some functions to handle addons and themes</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="poller_8php.html" target="_self">poller.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="include_2probe_8php.html" target="_self">probe.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="profile__selectors_8php.html" target="_self">profile_selectors.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="ProtoDriver_8php.html" target="_self">ProtoDriver.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="queue_8php.html" target="_self">queue.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="queue__fn_8php.html" target="_self">queue_fn.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="reddav_8php.html" target="_self">reddav.php</a></td><td class="desc">DAV related classes from SabreDAV for Red Matrix</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="security_8php.html" target="_self">security.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="session_8php.html" target="_self">session.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="smarty_8php.html" target="_self">smarty.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="socgraph_8php.html" target="_self">socgraph.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="spam_8php.html" target="_self">spam.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="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_75_" style="display:none;"><td class="entry"><img src="ftv2vertline.png" alt="|" width="16" height="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_76_" style="display:none;"><td class="entry"><img src="ftv2vertline.png" alt="|" width="16" height="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_77_" style="display:none;"><td class="entry"><img src="ftv2vertline.png" alt="|" width="16" height="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_78_" style="display:none;"><td class="entry"><img src="ftv2vertline.png" alt="|" width="16" height="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_79_" 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_0_2_" 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="dba__mysqli_8php.html" target="_self">dba_mysqli.php</a></td><td class="desc"></td></tr>
+<tr id="row_0_0_3_" 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="dba__postgres_8php.html" target="_self">dba_postgres.php</a></td><td class="desc"></td></tr>
+<tr id="row_0_1_" style="display:none;"><td class="entry"><img src="ftv2vertline.png" alt="|" width="16" height="22" /><img id="arr_0_1_" src="ftv2pnode.png" alt="o" width="16" height="22" onclick="toggleFolder('0_1_')"/><img id="img_0_1_" src="ftv2folderclosed.png" alt="+" width="24" height="22" onclick="toggleFolder('0_1_')"/><a class="el" href="dir_7edbbd0f8c514efef79942dcdc21f738.html" target="_self">Import</a></td><td class="desc"></td></tr>
+<tr id="row_0_1_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="ftv2node.png" alt="o" width="16" height="22" /><img src="ftv2doc.png" alt="*" width="24" height="22" /><a class="el" href="Importer_8php.html" target="_self">Importer.php</a></td><td class="desc"></td></tr>
+<tr id="row_0_1_1_" 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="refimport_8php.html" target="_self">refimport.php</a></td><td class="desc"></td></tr>
+<tr id="row_0_2_" style="display:none;"><td class="entry"><img src="ftv2vertline.png" alt="|" width="16" height="22" /><img id="arr_0_2_" src="ftv2pnode.png" alt="o" width="16" height="22" onclick="toggleFolder('0_2_')"/><img id="img_0_2_" src="ftv2folderclosed.png" alt="+" width="24" height="22" onclick="toggleFolder('0_2_')"/><a class="el" href="dir_aae29906d7bfc07d076125f669c8352e.html" target="_self">photo</a></td><td class="desc"></td></tr>
+<tr id="row_0_2_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="ftv2node.png" alt="o" width="16" height="22" /><img src="ftv2doc.png" alt="*" width="24" height="22" /><a class="el" href="photo__driver_8php.html" target="_self">photo_driver.php</a></td><td class="desc"></td></tr>
+<tr id="row_0_2_1_" 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="photo__gd_8php.html" target="_self">photo_gd.php</a></td><td class="desc"></td></tr>
+<tr id="row_0_2_2_" 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="photo__imagick_8php.html" target="_self">photo_imagick.php</a></td><td class="desc"></td></tr>
+<tr id="row_0_3_" style="display:none;"><td class="entry"><img src="ftv2vertline.png" alt="|" width="16" height="22" /><img id="arr_0_3_" src="ftv2pnode.png" alt="o" width="16" height="22" onclick="toggleFolder('0_3_')"/><img id="img_0_3_" src="ftv2folderclosed.png" alt="+" width="24" height="22" onclick="toggleFolder('0_3_')"/><a class="el" href="dir_e7f045be8bb383d8447c6a6b84145083.html" target="_self">RedDAV</a></td><td class="desc"></td></tr>
+<tr id="row_0_3_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="ftv2node.png" alt="o" width="16" height="22" /><img src="ftv2doc.png" alt="*" width="24" height="22" /><a class="el" href="RedBasicAuth_8php.html" target="_self">RedBasicAuth.php</a></td><td class="desc"></td></tr>
+<tr id="row_0_3_1_" 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="RedBrowser_8php.html" target="_self">RedBrowser.php</a></td><td class="desc"></td></tr>
+<tr id="row_0_3_2_" 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="RedDirectory_8php.html" target="_self">RedDirectory.php</a></td><td class="desc"></td></tr>
+<tr id="row_0_3_3_" 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="RedFile_8php.html" target="_self">RedFile.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="account_8php.html" target="_self">account.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="acl__selectors_8php.html" target="_self">acl_selectors.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="activities_8php.html" target="_self">activities.php</a></td><td class="desc"></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="include_2api_8php.html" target="_self">api.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="include_2apps_8php.html" target="_self">apps.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="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_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="auth_8php.html" target="_self">auth.php</a></td><td class="desc">Functions and inline functionality for authentication</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="BaseObject_8php.html" target="_self">BaseObject.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="bb2diaspora_8php.html" target="_self">bb2diaspora.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="bbcode_8php.html" target="_self">bbcode.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_2bookmarks_8php.html" target="_self">bookmarks.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="cache_8php.html" target="_self">cache.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_2chat_8php.html" target="_self">chat.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="cli__startup_8php.html" target="_self">cli_startup.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="cli__suggest_8php.html" target="_self">cli_suggest.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="comanche_8php.html" target="_self">comanche.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="include_2config_8php.html" target="_self">config.php</a></td><td class="desc">Arbitrary configuration storage</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_8php.html" target="_self">Contact.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="contact__selectors_8php.html" target="_self">contact_selectors.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="contact__widgets_8php.html" target="_self">contact_widgets.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="conversation_8php.html" target="_self">conversation.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="ConversationObject_8php.html" target="_self">ConversationObject.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="cronhooks_8php.html" target="_self">cronhooks.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="crypto_8php.html" target="_self">crypto.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="datetime_8php.html" target="_self">datetime.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="deliver_8php.html" target="_self">deliver.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="diaspora_8php.html" target="_self">diaspora.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="dimport_8php.html" target="_self">dimport.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="dir__fns_8php.html" target="_self">dir_fns.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="include_2directory_8php.html" target="_self">directory.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="enotify_8php.html" target="_self">enotify.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="event_8php.html" target="_self">event.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="expire_8php.html" target="_self">expire.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="externals_8php.html" target="_self">externals.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="features_8php.html" target="_self">features.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="fixd_8php.html" target="_self">fixd.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="include_2follow_8php.html" target="_self">follow.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="gprobe_8php.html" target="_self">gprobe.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="include_2group_8php.html" target="_self">group.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="html2bbcode_8php.html" target="_self">html2bbcode.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="html2plain_8php.html" target="_self">html2plain.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="hubloc_8php.html" target="_self">hubloc.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="identity_8php.html" target="_self">identity.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="ItemObject_8php.html" target="_self">ItemObject.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="ITemplateEngine_8php.html" target="_self">ITemplateEngine.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="items_8php.html" target="_self">items.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="language_8php.html" target="_self">language.php</a></td><td class="desc">Translation support</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="include_2menu_8php.html" target="_self">menu.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_2message_8php.html" target="_self">message.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="nav_8php.html" target="_self">nav.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="include_2network_8php.html" target="_self">network.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="notifier_8php.html" target="_self">notifier.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="include_2notify_8php.html" target="_self">notify.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="oauth_8php.html" target="_self">oauth.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="include_2oembed_8php.html" target="_self">oembed.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="onedirsync_8php.html" target="_self">onedirsync.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="onepoll_8php.html" target="_self">onepoll.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="page__widgets_8php.html" target="_self">page_widgets.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="permissions_8php.html" target="_self">permissions.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="include_2photos_8php.html" target="_self">photos.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="plugin_8php.html" target="_self">plugin.php</a></td><td class="desc">Some functions to handle addons and themes</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="poller_8php.html" target="_self">poller.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="include_2probe_8php.html" target="_self">probe.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="profile__selectors_8php.html" target="_self">profile_selectors.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="ProtoDriver_8php.html" target="_self">ProtoDriver.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="queue_8php.html" target="_self">queue.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="queue__fn_8php.html" target="_self">queue_fn.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="reddav_8php.html" target="_self">reddav.php</a></td><td class="desc">Some DAV related functions for <a class="el" href="namespaceRedMatrix.html" title="Class Import.">RedMatrix</a></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="security_8php.html" target="_self">security.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="session_8php.html" target="_self">session.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="ftv2node.png" alt="o" width="16" height="22" /><img src="ftv2doc.png" alt="*" width="24" height="22" /><a class="el" href="smarty_8php.html" target="_self">smarty.php</a></td><td class="desc"></td></tr>
+<tr id="row_0_75_" style="display:none;"><td class="entry"><img src="ftv2vertline.png" alt="|" width="16" height="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_76_" style="display:none;"><td class="entry"><img src="ftv2vertline.png" alt="|" width="16" height="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_77_" style="display:none;"><td class="entry"><img src="ftv2vertline.png" alt="|" width="16" height="22" /><img src="ftv2node.png" alt="o" width="16" height="22" /><img src="ftv2doc.png" alt="*" width="24" height="22" /><a class="el" href="statistics__fns_8php.html" target="_self">statistics_fns.php</a></td><td class="desc"></td></tr>
+<tr id="row_0_78_" style="display:none;"><td class="entry"><img src="ftv2vertline.png" alt="|" width="16" height="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_79_" style="display:none;"><td class="entry"><img src="ftv2vertline.png" alt="|" width="16" height="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_80_" style="display:none;"><td class="entry"><img src="ftv2vertline.png" alt="|" width="16" height="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_81_" style="display:none;"><td class="entry"><img src="ftv2vertline.png" alt="|" width="16" height="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_82_" style="display:none;"><td class="entry"><img src="ftv2vertline.png" alt="|" width="16" height="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">This file contains the widgets</td></tr>
+<tr id="row_0_83_" 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="achievements_8php.html" target="_self">achievements.php</a></td><td class="desc"></td></tr>
@@ -208,47 +219,47 @@ $(document).ready(function(){initNavTree('files.html','');});
<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="block_8php.html" target="_self">block.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="blocks_8php.html" target="_self">blocks.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="mod_2bookmarks_8php.html" target="_self">bookmarks.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="mod_2chanman_8php.html" target="_self">chanman.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="channel_8php.html" target="_self">channel.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="chanview_8php.html" target="_self">chanview.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="mod_2chat_8php.html" target="_self">chat.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="chatsvc_8php.html" target="_self">chatsvc.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="cloud_8php.html" target="_self">cloud.php</a></td><td class="desc">Initialize Red Matrix's cloud (SabreDAV)</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="common_8php.html" target="_self">common.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="connect_8php.html" target="_self">connect.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="connections_8php.html" target="_self">connections.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="connedit_8php.html" target="_self">connedit.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="contactgroup_8php.html" target="_self">contactgroup.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="delegate_8php.html" target="_self">delegate.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="mod_2directory_8php.html" target="_self">directory.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="dirprofile_8php.html" target="_self">dirprofile.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="dirsearch_8php.html" target="_self">dirsearch.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="display_8php.html" target="_self">display.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="editblock_8php.html" target="_self">editblock.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="editlayout_8php.html" target="_self">editlayout.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="editpost_8php.html" target="_self">editpost.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="editwebpage_8php.html" target="_self">editwebpage.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="events_8php.html" target="_self">events.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="fbrowser_8php.html" target="_self">fbrowser.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="feed_8php.html" target="_self">feed.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="filer_8php.html" target="_self">filer.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="filerm_8php.html" target="_self">filerm.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="filestorage_8php.html" target="_self">filestorage.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="mod_2follow_8php.html" target="_self">follow.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="fsuggest_8php.html" target="_self">fsuggest.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="mod_2group_8php.html" target="_self">group.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="hcard_8php.html" target="_self">hcard.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="help_8php.html" target="_self">help.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="home_8php.html" target="_self">home.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="hostxrd_8php.html" target="_self">hostxrd.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="import_8php.html" target="_self">import.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="importelm_8php.html" target="_self">importelm.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="invite_8php.html" target="_self">invite.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="item_8php.html" target="_self">item.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="lang_8php.html" target="_self">lang.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="layouts_8php.html" target="_self">layouts.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="like_8php.html" target="_self">like.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="lockview_8php.html" target="_self">lockview.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="channel_8php.html" target="_self">channel.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="chanview_8php.html" target="_self">chanview.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="mod_2chat_8php.html" target="_self">chat.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="chatsvc_8php.html" target="_self">chatsvc.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="cloud_8php.html" target="_self">cloud.php</a></td><td class="desc">Initialize <a class="el" href="namespaceRedMatrix.html" title="Class Import.">RedMatrix</a>'s cloud (SabreDAV)</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="common_8php.html" target="_self">common.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="dirsearch_8php.html" target="_self">dirsearch.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="display_8php.html" target="_self">display.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="editblock_8php.html" target="_self">editblock.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="editlayout_8php.html" target="_self">editlayout.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="editpost_8php.html" target="_self">editpost.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="editwebpage_8php.html" target="_self">editwebpage.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="events_8php.html" target="_self">events.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="fbrowser_8php.html" target="_self">fbrowser.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="feed_8php.html" target="_self">feed.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="filer_8php.html" target="_self">filer.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="filerm_8php.html" target="_self">filerm.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="filestorage_8php.html" target="_self">filestorage.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="mod_2follow_8php.html" target="_self">follow.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="fsuggest_8php.html" target="_self">fsuggest.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="mod_2group_8php.html" target="_self">group.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="hcard_8php.html" target="_self">hcard.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="impel_8php.html" target="_self">impel.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="import_8php.html" target="_self">import.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="importelm_8php.html" target="_self">importelm.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="invite_8php.html" target="_self">invite.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="item_8php.html" target="_self">item.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="lang_8php.html" target="_self">lang.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="layouts_8php.html" target="_self">layouts.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="like_8php.html" target="_self">like.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="lockview_8php.html" target="_self">lockview.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="locs_8php.html" target="_self">locs.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="login_8php.html" target="_self">login.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="lostpass_8php.html" target="_self">lostpass.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="magic_8php.html" target="_self">magic.php</a></td><td class="desc"></td></tr>
@@ -271,89 +282,89 @@ $(document).ready(function(){initNavTree('files.html','');});
<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="online_8php.html" target="_self">online.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="openid_8php.html" target="_self">openid.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="opensearch_8php.html" target="_self">opensearch.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="page_8php.html" target="_self">page.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="parse__url_8php.html" target="_self">parse_url.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="pdledit_8php.html" target="_self">pdledit.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="photo_8php.html" target="_self">photo.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="mod_2photos_8php.html" target="_self">photos.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="php_8php.html" target="_self">php.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="ping_8php.html" target="_self">ping.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="poco_8php.html" target="_self">poco.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="poke_8php.html" target="_self">poke.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="poll_8php.html" target="_self">poll.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="post_8php.html" target="_self">post.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="pretheme_8php.html" target="_self">pretheme.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="mod_2probe_8php.html" target="_self">probe.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="profile_8php.html" target="_self">profile.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="profile__photo_8php.html" target="_self">profile_photo.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="profiles_8php.html" target="_self">profiles.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="profperm_8php.html" target="_self">profperm.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="pubsites_8php.html" target="_self">pubsites.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="randprof_8php.html" target="_self">randprof.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="rbmark_8php.html" target="_self">rbmark.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="receive_8php.html" target="_self">receive.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="register_8php.html" target="_self">register.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="regmod_8php.html" target="_self">regmod.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="regver_8php.html" target="_self">regver.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="removeaccount_8php.html" target="_self">removeaccount.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="removeme_8php.html" target="_self">removeme.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="rmagic_8php.html" target="_self">rmagic.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="rpost_8php.html" target="_self">rpost.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="rsd__xml_8php.html" target="_self">rsd_xml.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="search_8php.html" target="_self">search.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="search__ac_8php.html" target="_self">search_ac.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="settings_8php.html" target="_self">settings.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="setup_8php.html" target="_self">setup.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="share_8php.html" target="_self">share.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="siteinfo_8php.html" target="_self">siteinfo.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="sitelist_8php.html" target="_self">sitelist.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="smilies_8php.html" target="_self">smilies.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="sources_8php.html" target="_self">sources.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="sslify_8php.html" target="_self">sslify.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="starred_8php.html" target="_self">starred.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="subthread_8php.html" target="_self">subthread.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="suggest_8php.html" target="_self">suggest.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="tagger_8php.html" target="_self">tagger.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="tagrm_8php.html" target="_self">tagrm.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="thing_8php.html" target="_self">thing.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="toggle__mobile_8php.html" target="_self">toggle_mobile.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="toggle__safesearch_8php.html" target="_self">toggle_safesearch.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="uexport_8php.html" target="_self">uexport.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="update__channel_8php.html" target="_self">update_channel.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="update__display_8php.html" target="_self">update_display.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="update__network_8php.html" target="_self">update_network.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="update__search_8php.html" target="_self">update_search.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="view_8php.html" target="_self">view.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="viewconnections_8php.html" target="_self">viewconnections.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="viewsrc_8php.html" target="_self">viewsrc.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="vote_8php.html" target="_self">vote.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="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_131_" 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_132_" 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_133_" 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_134_" 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_135_" 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_136_" 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_137_" 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_138_" 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_139_" 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_140_" 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_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="p_8php.html" target="_self">p.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="page_8php.html" target="_self">page.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="parse__url_8php.html" target="_self">parse_url.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="pdledit_8php.html" target="_self">pdledit.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="photo_8php.html" target="_self">photo.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="mod_2photos_8php.html" target="_self">photos.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="php_8php.html" target="_self">php.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="ping_8php.html" target="_self">ping.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="poco_8php.html" target="_self">poco.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="poke_8php.html" target="_self">poke.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="poll_8php.html" target="_self">poll.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="post_8php.html" target="_self">post.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="pretheme_8php.html" target="_self">pretheme.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="mod_2probe_8php.html" target="_self">probe.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="profile_8php.html" target="_self">profile.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="profile__photo_8php.html" target="_self">profile_photo.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="profiles_8php.html" target="_self">profiles.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="profperm_8php.html" target="_self">profperm.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="pubsites_8php.html" target="_self">pubsites.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="randprof_8php.html" target="_self">randprof.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="rbmark_8php.html" target="_self">rbmark.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="receive_8php.html" target="_self">receive.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="register_8php.html" target="_self">register.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="regmod_8php.html" target="_self">regmod.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="regver_8php.html" target="_self">regver.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="removeaccount_8php.html" target="_self">removeaccount.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="removeme_8php.html" target="_self">removeme.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="rmagic_8php.html" target="_self">rmagic.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="rpost_8php.html" target="_self">rpost.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="rsd__xml_8php.html" target="_self">rsd_xml.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="search_8php.html" target="_self">search.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="search__ac_8php.html" target="_self">search_ac.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="service__limits_8php.html" target="_self">service_limits.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="settings_8php.html" target="_self">settings.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="setup_8php.html" target="_self">setup.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="share_8php.html" target="_self">share.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="siteinfo_8php.html" target="_self">siteinfo.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="sitelist_8php.html" target="_self">sitelist.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="smilies_8php.html" target="_self">smilies.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="sources_8php.html" target="_self">sources.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="sslify_8php.html" target="_self">sslify.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="starred_8php.html" target="_self">starred.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="subthread_8php.html" target="_self">subthread.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="suggest_8php.html" target="_self">suggest.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="tagger_8php.html" target="_self">tagger.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="tagrm_8php.html" target="_self">tagrm.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="thing_8php.html" target="_self">thing.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="toggle__mobile_8php.html" target="_self">toggle_mobile.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="toggle__safesearch_8php.html" target="_self">toggle_safesearch.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="uexport_8php.html" target="_self">uexport.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="update__channel_8php.html" target="_self">update_channel.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="update__display_8php.html" target="_self">update_display.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="update__home_8php.html" target="_self">update_home.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="update__network_8php.html" target="_self">update_network.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="update__search_8php.html" target="_self">update_search.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="view_8php.html" target="_self">view.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="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_131_" 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_132_" 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_133_" 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_134_" 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_135_" 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_136_" 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_137_" 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_138_" 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_139_" 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_140_" 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_141_" 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_142_" 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_143_" 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>
-<tr id="row_2_1_" style="display:none;"><td class="entry"><img src="ftv2vertline.png" alt="|" width="16" height="22" /><img id="arr_2_1_" src="ftv2pnode.png" alt="o" width="16" height="22" onclick="toggleFolder('2_1_')"/><img id="img_2_1_" src="ftv2folderclosed.png" alt="+" width="24" height="22" onclick="toggleFolder('2_1_')"/><a class="el" href="dir_720432dea4a717197ae070dbc42b8f20.html" target="_self">wp</a></td><td class="desc"></td></tr>
-<tr id="row_2_1_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 id="arr_2_1_0_" src="ftv2plastnode.png" alt="\" width="16" height="22" onclick="toggleFolder('2_1_0_')"/><img id="img_2_1_0_" src="ftv2folderclosed.png" alt="+" width="24" height="22" onclick="toggleFolder('2_1_0_')"/><a class="el" href="dir_25f74a9991dbbca1b52a94e358ca73c1.html" target="_self">post_to_red</a></td><td class="desc"></td></tr>
-<tr id="row_2_1_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="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="post__to__red_8php.html" target="_self">post_to_red.php</a></td><td class="desc"></td></tr>
-<tr id="row_2_2_" style="display:none;"><td class="entry"><img src="ftv2vertline.png" alt="|" width="16" height="22" /><img src="ftv2node.png" alt="o" width="16" height="22" /><img src="ftv2doc.png" alt="*" width="24" height="22" /><a class="el" href="db__update_8php.html" target="_self">db_update.php</a></td><td class="desc"></td></tr>
-<tr id="row_2_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="docblox__errorchecker_8php.html" target="_self">docblox_errorchecker.php</a></td><td class="desc"></td></tr>
-<tr id="row_2_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="extract_8php.html" target="_self">extract.php</a></td><td class="desc"></td></tr>
-<tr id="row_2_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="friendica-to-smarty-tpl_8py.html" target="_self">friendica-to-smarty-tpl.py</a></td><td class="desc"></td></tr>
-<tr id="row_2_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="php2po_8php.html" target="_self">php2po.php</a></td><td class="desc"></td></tr>
-<tr id="row_2_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="po2php_8php.html" target="_self">po2php.php</a></td><td class="desc"></td></tr>
-<tr id="row_2_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="tpldebug_8php.html" target="_self">tpldebug.php</a></td><td class="desc"></td></tr>
-<tr id="row_2_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="typo_8php.html" target="_self">typo.php</a></td><td class="desc"></td></tr>
-<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_2_1_" style="display:none;"><td class="entry"><img src="ftv2vertline.png" alt="|" width="16" height="22" /><img src="ftv2node.png" alt="o" width="16" height="22" /><img src="ftv2doc.png" alt="*" width="24" height="22" /><a class="el" href="db__update_8php.html" target="_self">db_update.php</a></td><td class="desc"></td></tr>
+<tr id="row_2_2_" style="display:none;"><td class="entry"><img src="ftv2vertline.png" alt="|" width="16" height="22" /><img src="ftv2node.png" alt="o" width="16" height="22" /><img src="ftv2doc.png" alt="*" width="24" height="22" /><a class="el" href="docblox__errorchecker_8php.html" target="_self">docblox_errorchecker.php</a></td><td class="desc"></td></tr>
+<tr id="row_2_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="extract_8php.html" target="_self">extract.php</a></td><td class="desc"></td></tr>
+<tr id="row_2_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="friendica-to-smarty-tpl_8py.html" target="_self">friendica-to-smarty-tpl.py</a></td><td class="desc"></td></tr>
+<tr id="row_2_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="php2po_8php.html" target="_self">php2po.php</a></td><td class="desc"></td></tr>
+<tr id="row_2_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="po2php_8php.html" target="_self">po2php.php</a></td><td class="desc"></td></tr>
+<tr id="row_2_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="tpldebug_8php.html" target="_self">tpldebug.php</a></td><td class="desc"></td></tr>
+<tr id="row_2_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="typo_8php.html" target="_self">typo.php</a></td><td class="desc"></td></tr>
+<tr id="row_2_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="typohelper_8php.html" target="_self">typohelper.php</a></td><td class="desc"></td></tr>
+<tr id="row_2_10_" 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="choklet_8php.html" target="_self">choklet.php</a></td><td class="desc"></td></tr>
@@ -386,34 +397,37 @@ $(document).ready(function(){initNavTree('files.html','');});
<tr id="row_3_1_0_2_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_2_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_2_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_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_6e52a2a2cd27c08b7df5e5cdb216bd77.html" target="_self">hivenet</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="ftv2plastnode.png" alt="\" 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_9ef82eb3846cd201470898c3b6ef38cf.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="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="hivenet_2php_2style_8php.html" target="_self">style.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="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="hivenet_2php_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="ftv2pnode.png" alt="o" 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_8e58ba5e98ac07e59ee15ca7486c9950.html" target="_self">mytheme</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="ftv2vertline.png" alt="|" width="16" height="22" /><img id="arr_3_1_2_0_" src="ftv2plastnode.png" alt="\" 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_887fdc94312ba7b057b6bfe7fdd27ea5.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="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="theme_2mytheme_2php_2default_8php.html" target="_self">default.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="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="mytheme_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="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="mytheme_2php_2theme_8php.html" target="_self">theme.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="ftv2blank.png" alt="&#160;" width="16" height="22" /><img id="arr_3_1_3_" src="ftv2plastnode.png" alt="\" width="16" height="22" onclick="toggleFolder('3_1_3_')"/><img id="img_3_1_3_" src="ftv2folderclosed.png" alt="+" width="24" height="22" onclick="toggleFolder('3_1_3_')"/><a class="el" href="dir_55dbaf9b7b53c4fc605c9011743a7353.html" target="_self">redbasic</a></td><td class="desc"></td></tr>
-<tr id="row_3_1_3_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_3_0_" src="ftv2pnode.png" alt="o" width="16" height="22" onclick="toggleFolder('3_1_3_0_')"/><img id="img_3_1_3_0_" src="ftv2folderclosed.png" alt="+" width="24" height="22" onclick="toggleFolder('3_1_3_0_')"/><a class="el" href="dir_032dd9e2cfe278a2cfa5eb9547448eb9.html" target="_self">php</a></td><td class="desc"></td></tr>
-<tr id="row_3_1_3_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_3_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_3_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_3_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_3_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_3_1_" src="ftv2plastnode.png" alt="\" width="16" height="22" onclick="toggleFolder('3_1_3_1_')"/><img id="img_3_1_3_1_" src="ftv2folderclosed.png" alt="+" width="24" height="22" onclick="toggleFolder('3_1_3_1_')"/><a class="el" href="dir_3d9c9d0c5e9556dd3eba1e072fa6eaeb.html" target="_self">schema</a></td><td class="desc"></td></tr>
-<tr id="row_3_1_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 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="boxy_8php.html" target="_self">boxy.php</a></td><td class="desc"></td></tr>
-<tr id="row_3_1_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 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="BS-Default_8php.html" target="_self">BS-Default.php</a></td><td class="desc"></td></tr>
-<tr id="row_3_1_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 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_1_3_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="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_3_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 id="arr_3_1_3_" src="ftv2pnode.png" alt="o" width="16" height="22" onclick="toggleFolder('3_1_3_')"/><img id="img_3_1_3_" src="ftv2folderclosed.png" alt="+" width="24" height="22" onclick="toggleFolder('3_1_3_')"/><a class="el" href="dir_55dbaf9b7b53c4fc605c9011743a7353.html" target="_self">redbasic</a></td><td class="desc"></td></tr>
+<tr id="row_3_1_3_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_3_0_" src="ftv2pnode.png" alt="o" width="16" height="22" onclick="toggleFolder('3_1_3_0_')"/><img id="img_3_1_3_0_" src="ftv2folderclosed.png" alt="+" width="24" height="22" onclick="toggleFolder('3_1_3_0_')"/><a class="el" href="dir_032dd9e2cfe278a2cfa5eb9547448eb9.html" target="_self">php</a></td><td class="desc"></td></tr>
+<tr id="row_3_1_3_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_2redbasic_2php_2config_8php.html" target="_self">config.php</a></td><td class="desc"></td></tr>
+<tr id="row_3_1_3_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="redbasic_2php_2style_8php.html" target="_self">style.php</a></td><td class="desc"></td></tr>
+<tr id="row_3_1_3_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="redbasic_2php_2theme_8php.html" target="_self">theme.php</a></td><td class="desc"></td></tr>
+<tr id="row_3_1_3_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_2redbasic_2php_2theme__init_8php.html" target="_self">theme_init.php</a></td><td class="desc"></td></tr>
+<tr id="row_3_1_3_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_3_1_" src="ftv2plastnode.png" alt="\" width="16" height="22" onclick="toggleFolder('3_1_3_1_')"/><img id="img_3_1_3_1_" src="ftv2folderclosed.png" alt="+" width="24" height="22" onclick="toggleFolder('3_1_3_1_')"/><a class="el" href="dir_3d9c9d0c5e9556dd3eba1e072fa6eaeb.html" target="_self">schema</a></td><td class="desc"></td></tr>
+<tr id="row_3_1_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 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="boxy_8php.html" target="_self">boxy.php</a></td><td class="desc"></td></tr>
+<tr id="row_3_1_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 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="BS-Default_8php.html" target="_self">BS-Default.php</a></td><td class="desc"></td></tr>
+<tr id="row_3_1_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 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="dark_8php.html" target="_self">dark.php</a></td><td class="desc"></td></tr>
+<tr id="row_3_1_3_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="notred_8php.html" target="_self">notred.php</a></td><td class="desc"></td></tr>
+<tr id="row_3_1_3_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="simple__black__on__white_8php.html" target="_self">simple_black_on_white.php</a></td><td class="desc"></td></tr>
+<tr id="row_3_1_3_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="simple__green__on__black_8php.html" target="_self">simple_green_on_black.php</a></td><td class="desc"></td></tr>
+<tr id="row_3_1_3_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="ftv2lastnode.png" alt="\" width="16" height="22" /><img src="ftv2doc.png" alt="*" width="24" height="22" /><a class="el" href="simple__white__on__black_8php.html" target="_self">simple_white_on_black.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="ftv2blank.png" alt="&#160;" width="16" height="22" /><img id="arr_3_1_4_" src="ftv2pnode.png" alt="o" width="16" height="22" onclick="toggleFolder('3_1_4_')"/><img id="img_3_1_4_" src="ftv2folderclosed.png" alt="+" width="24" height="22" onclick="toggleFolder('3_1_4_')"/><a class="el" href="dir_4acb285a1960a920438b718da0958cf4.html" target="_self">stumble</a></td><td class="desc"></td></tr>
+<tr id="row_3_1_4_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_4_0_" src="ftv2plastnode.png" alt="\" width="16" height="22" onclick="toggleFolder('3_1_4_0_')"/><img id="img_3_1_4_0_" src="ftv2folderclosed.png" alt="+" width="24" height="22" onclick="toggleFolder('3_1_4_0_')"/><a class="el" href="dir_65522070e0a83623cefc01ebe26a83e3.html" target="_self">php</a></td><td class="desc"></td></tr>
+<tr id="row_3_1_4_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="ftv2node.png" alt="o" width="16" height="22" /><img src="ftv2doc.png" alt="*" width="24" height="22" /><a class="el" href="stumble_2php_2style_8php.html" target="_self">style.php</a></td><td class="desc"></td></tr>
+<tr id="row_3_1_4_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="ftv2lastnode.png" alt="\" width="16" height="22" /><img src="ftv2doc.png" alt="*" width="24" height="22" /><a class="el" href="stumble_2php_2theme_8php.html" target="_self">theme.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="ftv2blank.png" alt="&#160;" width="16" height="22" /><img id="arr_3_1_5_" src="ftv2plastnode.png" alt="\" width="16" height="22" onclick="toggleFolder('3_1_5_')"/><img id="img_3_1_5_" src="ftv2folderclosed.png" alt="+" width="24" height="22" onclick="toggleFolder('3_1_5_')"/><a class="el" href="dir_0262a6a8df56a167e3761b6e5a54bb1c.html" target="_self">suckerberg</a></td><td class="desc"></td></tr>
+<tr id="row_3_1_5_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_5_0_" src="ftv2plastnode.png" alt="\" width="16" height="22" onclick="toggleFolder('3_1_5_0_')"/><img id="img_3_1_5_0_" src="ftv2folderclosed.png" alt="+" width="24" height="22" onclick="toggleFolder('3_1_5_0_')"/><a class="el" href="dir_ac4f5165c8d71ebb1a1a0a168a48f3f7.html" target="_self">php</a></td><td class="desc"></td></tr>
+<tr id="row_3_1_5_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="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="suckerberg_2php_2style_8php.html" target="_self">style.php</a></td><td class="desc"></td></tr>
+<tr id="row_3_1_5_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="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="suckerberg_2php_2theme_8php.html" target="_self">theme.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 91508e06f..5696cd2a8 100644
--- a/doc/html/filestorage_8php.html
+++ b/doc/html/filestorage_8php.html
@@ -147,6 +147,12 @@ Functions</h2></td></tr>
</tr>
</table>
</div><div class="memdoc">
+<dl class="params"><dt>Parameters</dt><dd>
+ <table class="params">
+ <tr><td class="paramtype">object</td><td class="paramname">&amp;$a</td><td></td></tr>
+ </table>
+ </dd>
+</dl>
</div>
</div>
diff --git a/doc/html/fixd_8php.html b/doc/html/fixd_8php.html
new file mode 100644
index 000000000..7386d674a
--- /dev/null
+++ b/doc/html/fixd_8php.html
@@ -0,0 +1,181 @@
+<!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/fixd.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('fixd_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="#var-members">Variables</a> </div>
+ <div class="headertitle">
+<div class="title">fixd.php File Reference</div> </div>
+</div><!--header-->
+<div class="contents">
+<table class="memberdecls">
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="var-members"></a>
+Variables</h2></td></tr>
+<tr class="memitem:a2da3681c9cce2efe7de29aa578ff4219"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="fixd_8php.html#a2da3681c9cce2efe7de29aa578ff4219">$rand</a> = <a class="el" href="dba__driver_8php.html#a2994daa03b1c23229a27e39bcab75e67">db_getfunc</a>('RAND')</td></tr>
+<tr class="separator:a2da3681c9cce2efe7de29aa578ff4219"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a8abe176bc41afd728f32ba8c506cbd98"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="fixd_8php.html#a8abe176bc41afd728f32ba8c506cbd98">$r</a> = <a class="el" href="dba__driver_8php.html#a2c09a731d3b4fef41fed0e83db01be1f">q</a>(&quot;select xchan_addr, hubloc_url from xchan left join hubloc on hubloc_hash = xchan_hash where xchan_network like '%%diaspora%%' order by $rand&quot;)</td></tr>
+<tr class="separator:a8abe176bc41afd728f32ba8c506cbd98"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a241b818f48030b628685b2e5119c5624"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="fixd_8php.html#a241b818f48030b628685b2e5119c5624">$total</a> = 0</td></tr>
+<tr class="separator:a241b818f48030b628685b2e5119c5624"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a9d4f8a2ab4d92b3ccfd7cba0458098eb"><td class="memItemLeft" align="right" valign="top"><a class="el" href="typo_8php.html#a329c9c12217d2c8660c47bbc7c8df4c5">foreach</a>($r as $rr) print $total&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="fixd_8php.html#a9d4f8a2ab4d92b3ccfd7cba0458098eb">n</a></td></tr>
+<tr class="separator:a9d4f8a2ab4d92b3ccfd7cba0458098eb"><td class="memSeparator" colspan="2">&#160;</td></tr>
+</table>
+<h2 class="groupheader">Variable Documentation</h2>
+<a class="anchor" id="a8abe176bc41afd728f32ba8c506cbd98"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">$r = <a class="el" href="dba__driver_8php.html#a2c09a731d3b4fef41fed0e83db01be1f">q</a>(&quot;select xchan_addr, hubloc_url from xchan left join hubloc on hubloc_hash = xchan_hash where xchan_network like '%%diaspora%%' order by $rand&quot;)</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="Contact_8php.html#a024919623a830e8703ac4f23496dd66c">abook_toggle_flag()</a>, <a class="el" href="Contact_8php.html#a5101d7eca5d6f387e5555f03fe249e33">account_remove()</a>, <a class="el" href="account_8php.html#a4328c40ee4b3d68630cf1ebb7b9d4d89">account_service_class_fetch()</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="items_8php.html#a81565acf729e629e588d823308448e3c">add_source_route()</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#a60ba9783ad14545814919970bc3fb725">admin_page_hubloc_post()</a>, <a class="el" href="admin_8php.html#a3deba594ca1e11694eac1de0b724ef0a">admin_page_profs()</a>, <a class="el" href="admin_8php.html#a278289bc6d45f6f2a272a7ab6a1d1057">admin_page_profs_post()</a>, <a class="el" href="admin_8php.html#ac6e95b920b5abd030cc522964987087a">admin_page_summary()</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#a176c448d79c211ad41c2bbe3124658f5">api_call()</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#ad5fe62d6c25c86999f627b2e6cfde536">api_group()</a>, <a class="el" href="include_2api_8php.html#ae46f964e5a9c80b96dc78df61c09ed3a">api_group_members()</a>, <a class="el" href="include_2api_8php.html#afe534f826e4282b72d66e8cadca7bb73">api_login()</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#a4fe872332ff0bd8d5eae2f0c6819cb60">api_red_xchan()</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_2apps_8php.html#a6b472df85ed875e7ae75642cece5206f">app_destroy()</a>, <a class="el" href="include_2apps_8php.html#a1adcd1aff4d36ad0277daca9f3d2bbe2">app_installed()</a>, <a class="el" href="include_2apps_8php.html#a01cabfb33b2d0d843cf3bf4e3d3f0ab0">app_list()</a>, <a class="el" href="include_2apps_8php.html#a15626f24069c18816f7cdaf4735f58f9">app_store()</a>, <a class="el" href="include_2apps_8php.html#aeab6a62d2f3dfaa86ed043a006305f46">app_update()</a>, <a class="el" href="appman_8php.html#af48805ac2f6f123f2681a8ae1c6f123f">appman_content()</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="text_8php.html#a27cd2c1b3bcb49a0cfb7249e851725ca">autoname()</a>, <a class="el" href="bb2diaspora_8php.html#aab32042f8bd63552d3fadeeae9eab083">bb2diaspora_itemwallwall()</a>, <a class="el" href="bb2diaspora_8php.html#a5258d2f1addeb0a2a6b54c4f9e7d0f34">bb2dmention_callback()</a>, <a class="el" href="text_8php.html#a3d2793d66db3345fd290b71e2eadf98e">bb_translate_video()</a>, <a class="el" href="block_8php.html#a8a82a470acdfbc7a8e749509caeeea45">block_content()</a>, <a class="el" href="blocks_8php.html#a2531a8fd51db3cecb2eb20c002c66e12">blocks_content()</a>, <a class="el" href="include_2bookmarks_8php.html#aef1cb2968c41c759f2d106e1088ca323">bookmark_add()</a>, <a class="el" href="zot_8php.html#aa97b33b619dd7132a9274f852af6ceb5">build_sync_packet()</a>, <a class="el" href="taxonomy_8php.html#aa8f8a1ff85daef046298e93c83e7a1b4">catblock()</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#a4e8af0f0525161da74583c04b8b03097">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="include_2chat_8php.html#acea6b176eb7aff44d9ba3ae24ce511d3">chat_message()</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="include_2chat_8php.html#a26abdccc2a278a59899896dbbfc6f049">chatroom_list_count()</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="boot_8php.html#a4c02d88e66852a01bd5a1feecb7c3ce3">check_config()</a>, <a class="el" href="items_8php.html#a87ac9e359591721a824ecd23bbb56296">check_item_source()</a>, <a class="el" href="dir__fns_8php.html#a2f7d74bb2aea8bcd2537aee5c6708a16">check_upstream_directory()</a>, <a class="el" href="text_8php.html#a0c65597bb4aed3a039eb795ff540e5e3">check_webbie()</a>, <a class="el" href="items_8php.html#a772f0ae77ad77c8ab68ed918a3870946">collect_recipients()</a>, <a class="el" href="comanche_8php.html#a5a7ab801717d38e91ac910b933973887">comanche_block()</a>, <a class="el" href="common_8php.html#ab63408f39abef7a6915186e8dabc5a96">common_content()</a>, <a class="el" href="socgraph_8php.html#a7d34cd58025bcd9e575282f44db75918">common_friends()</a>, <a class="el" href="contact__widgets_8php.html#a552f8544528cec0c995cea7287ea9d65">common_friends_visitor_widget()</a>, <a class="el" href="socgraph_8php.html#ac343a846241d36cdf046b08f3396cfe9">common_friends_zcid()</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#a4da871e075597a09a8b374b9171dd92e">connedit_init()</a>, <a class="el" href="connedit_8php.html#a234c48426b652bf4d37053f2af329ac5">connedit_post()</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#adc26e08aa61f5666da04ab5d2a9d68a6">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="classRedMatrix_1_1RedDAV_1_1RedDirectory.html#aca0e8d574ea66a0e210f571700663c62">RedMatrix\RedDAV\RedDirectory\createDirectory()</a>, <a class="el" href="classRedMatrix_1_1RedDAV_1_1RedDirectory.html#a58e750256cdc2f0f79fbe8d5463ffefe">RedMatrix\RedDAV\RedDirectory\createFile()</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="zot_8php.html#adfeb9400ae6b726beec89f8f1e8fde72">delete_imported_item()</a>, <a class="el" href="items_8php.html#aac8c9eb4338e2a996c43914392c6cfdb">delete_item_lowlevel()</a>, <a class="el" href="deliver_8php.html#a397afcb9afecf0c1816b0951189dd346">deliver_run()</a>, <a class="el" href="diaspora_8php.html#a006731620a5242d410358b32678e48e3">diaspora_asphoto()</a>, <a class="el" href="diaspora_8php.html#a0fb2abe304aae19efc040a5e6b917829">diaspora_comment()</a>, <a class="el" href="diaspora_8php.html#adef30b6fac948baedcc7194d5d155b5f">diaspora_conversation()</a>, <a class="el" href="diaspora_8php.html#ab99505944728d46585b8312989de533d">diaspora_dispatch_public()</a>, <a class="el" href="diaspora_8php.html#aa8e551a53fcce34be3942d0c3e20d1f4">diaspora_get_contact_by_handle()</a>, <a class="el" href="diaspora_8php.html#a5ed66b910d7b0284f9b3ee04e72306ff">diaspora_handle_from_contact()</a>, <a class="el" href="diaspora_8php.html#a5d57518545baa31cf8a85a937a267681">diaspora_like()</a>, <a class="el" href="bb2diaspora_8php.html#a4a27604f0745f1efda672966aaca9a3b">diaspora_mention_callback()</a>, <a class="el" href="diaspora_8php.html#a7cff2f8f11044c1b3a360f20e1bbee46">diaspora_message()</a>, <a class="el" href="diaspora_8php.html#a71fe9bb66626b4197ae018a230778bb2">diaspora_photo()</a>, <a class="el" href="diaspora_8php.html#a20b968d64ef26afe5cb0cc75a7570a31">diaspora_post()</a>, <a class="el" href="diaspora_8php.html#a131abd521b218d6ae6f7d2917d8b2605">diaspora_process_outbound()</a>, <a class="el" href="diaspora_8php.html#ac1ab782a34552a7c6b4dc961754ed598">diaspora_request()</a>, <a class="el" href="diaspora_8php.html#a2bf43f6b5890897f425ef4325d34b007">diaspora_reshare()</a>, <a class="el" href="diaspora_8php.html#a938c7ee808d38725c0988fa6006805b9">diaspora_retraction()</a>, <a class="el" href="diaspora_8php.html#ae6f52efd81fe515cd9912bc8293abf5b">diaspora_send_images()</a>, <a class="el" href="diaspora_8php.html#aeb2bb78f620dbf51d9335e6eb7444f2c">diaspora_send_mail()</a>, <a class="el" href="diaspora_8php.html#aa34d2748bb97e9e193cacd572f335055">diaspora_signed_retraction()</a>, <a class="el" href="taxonomy_8php.html#a088371f4bc19155b2291508f5cd63332">dir_tagadelic()</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="include_2network_8php.html#a5176176ddc1906d91f186df6fbd87b48">discover_by_url()</a>, <a class="el" href="include_2network_8php.html#a63e62946e194928eb17c5a9f2bbef0fe">discover_by_webbie()</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#a555762e1022a4b8e3c3abd32e7812408">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="editwebpage_8php.html#a375e945255fad79a71036528f7480650">editwebpage_content()</a>, <a class="el" href="items_8php.html#a56b0f5d2cb36eb8f4bfca84813884f86">encode_item()</a>, <a class="el" href="event_8php.html#ac9f206819186b65952ac1869f0da8c6e">event_addtocal()</a>, <a class="el" href="event_8php.html#af5ac41e7ea3f7131088fe6333fd2846c">event_store_event()</a>, <a class="el" href="event_8php.html#a7378e839ac3de9d55579eb3ec48eaf92">event_store_item()</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="externals_8php.html#a4df44079e6f915286088b7a0d44db926">externals_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="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#a8cda98925a4c5c2f6dade70d9586d79a">filter_insecure()</a>, <a class="el" href="diaspora_8php.html#aade0c165fcdded71352c7a67bf6ce37b">find_diaspora_person_by_handle()</a>, <a class="el" href="include_2attach_8php.html#a4dbfd7e1cef52aa9ef52f4b88929fa86">find_filename_by_hash()</a>, <a class="el" href="include_2attach_8php.html#a052f14487ff2ce72f62a09fac8d7e997">find_folder_hash_by_attach_hash()</a>, <a class="el" href="classRedMatrix_1_1RedDAV_1_1RedBrowser.html#ad4bc0516533c62733f38043a37267d78">RedMatrix\RedDAV\RedBrowser\findAttachHash()</a>, <a class="el" href="classRedMatrix_1_1RedDAV_1_1RedBrowser.html#a0733e38e254474d9a456825e72f1ddfd">RedMatrix\RedDAV\RedBrowser\findAttachIdByHash()</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="classRedMatrix_1_1RedDAV_1_1RedBrowser.html#af764d5f14df751f9ec86c34fab300c09">RedMatrix\RedDAV\RedBrowser\generateDirectoryIndex()</a>, <a class="el" href="classCache.html#a70392b109331897bf9fdd7f1960e21de">Cache\get()</a>, <a class="el" href="classRedMatrix_1_1RedDAV_1_1RedFile.html#a7241beecd01f5bb4e74659863dd85bd8">RedMatrix\RedDAV\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="identity_8php.html#a293f416ce9050220b183e08ff5890216">get_channel_default_perms()</a>, <a class="el" href="include_2attach_8php.html#a6aa00ea010ea030110faefb75eafc1ce">get_cloudpath()</a>, <a class="el" href="diaspora_8php.html#a9bf7ef4094e0e14f6e2b7fe76ab7ad2e">get_diaspora_key()</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="plugin_8php.html#aff0178bd8d0b34a94d5efddc883edd35">get_plugin_info()</a>, <a class="el" href="identity_8php.html#aaff86ee3b5984821e7a256c2da5f1a51">get_sys_channel()</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="spam_8php.html#ab8fd81a82c9622cbebb8ceab6b310ca6">get_words()</a>, <a class="el" href="classRedMatrix_1_1RedDAV_1_1RedDirectory.html#a825dc5f3e0f83f50736c16daa6a4809d">RedMatrix\RedDAV\RedDirectory\getDir()</a>, <a class="el" href="classRedMatrix_1_1RedDAV_1_1RedDirectory.html#a69db5f641f8f5dc999e55cee1832ecd5">RedMatrix\RedDAV\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="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="text_8php.html#aa22feef4de326e1d7078dedd892e615c">handle_tag()</a>, <a class="el" href="hcard_8php.html#ac34f26b0e6a37eef44fa49bea135136d">hcard_init()</a>, <a class="el" href="home_8php.html#a6e3dbf78f4ed74ab2577de221190b33f">home_content()</a>, <a class="el" href="hubloc_8php.html#ad86214b3a74084bd7b54e8d6c919ce4d">hubloc_change_primary()</a>, <a class="el" href="identity_8php.html#afaedbc8e2d2a70ec8b006162baac5249">identity_basic_export()</a>, <a class="el" href="identity_8php.html#ac9fcd5c4c371998790b5c55c3d0f4633">identity_check_service_class()</a>, <a class="el" href="identity_8php.html#a2ab5172eabd375869060c9ad68323f5c">identity_selector()</a>, <a class="el" href="items_8php.html#a2c3f97b2109c05df86d97449b3c78ebc">import_author_diaspora()</a>, <a class="el" href="items_8php.html#a6bee35961f2e32905f20367a9309d627">import_author_rss()</a>, <a class="el" href="items_8php.html#a37f79991f36811cf847446ff60e8e11f">import_author_unknown()</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#a3bf11286c2619b4ca28e49d5b5ab374a">import_directory_keywords()</a>, <a class="el" href="zot_8php.html#a20750dd2c36961013fd382fb34e1366c">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#a528e97ca5d69c3b7f35c5d954afde315">import_xchan()</a>, <a class="el" href="importelm_8php.html#a1a4f71e6d76ace6add5e9659845f5e5f">importelm_post()</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="hubloc_8php.html#aebd244b4616ded022cbbee5e82926951">is_matrix_url()</a>, <a class="el" href="identity_8php.html#aa4bd4abfcba883f43919e89ec6419025">is_sys_channel()</a>, <a class="el" href="items_8php.html#a02ca33c31ed535d24894f8a9a91ce9df">item_add_cid()</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#a09d425596b9f8663472cf7474ad36d96">item_getfeedattach()</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#a5ed782ff5b9cf050bec931e06de12c00">item_remove_cid()</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="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#a559791dda7fef8a4b2394c83e835787b">load_pconfig()</a>, <a class="el" href="include_2config_8php.html#aee4b619839cf4b64220f34edf5c67b52">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="locs_8php.html#a6c900f53970c0d0e738d2fe06d27ca44">locs_content()</a>, <a class="el" href="locs_8php.html#a6b43654592919ac863d67a1f787a69b9">locs_post()</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="Contact_8php.html#a08845ce8c5b997d5edac38ae7118b5c8">mark_orphan_hubsxchans()</a>, <a class="el" href="match_8php.html#a1dd853e959b9e70c1911bb2fb5f5130d">match_content()</a>, <a class="el" href="auth_8php.html#a69fa663e6baf65f80d1b114ad72615f2">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="mod_2menu_8php.html#a6fed23af14d71a78a4153c8363a685cf">menu_content()</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="include_2menu_8php.html#a251bf7e15d21627fd92614198e41c485">menu_list_count()</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="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#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="netgrowth_8php.html#a9b87bfc25a7cb11bc7f8e1fdd0310919">netgrowth_content()</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="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="identity_8php.html#a2e6a1cc35887937823ec7fbb90472afe">notifications_off()</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="openid_8php.html#a9a13827dbcf61ae4e45f0b6b33a88f43">openid_content()</a>, <a class="el" href="p_8php.html#af9d5530ca0b3dc9409cf591c39e2480e">p_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="page__widgets_8php.html#a39d547771c5f12a17c097436c82f0fa2">pagelist_widget()</a>, <a class="el" href="comanche_8php.html#af7150df735e5ff9d467994cd6f769c6e">pdl_selector()</a>, <a class="el" href="crypto_8php.html#a798368843cdd9bb08386b48e53e29e8c">pemtome()</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="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="plugin_8php.html#a855c4fdb38c0fc2714d537752a4347f9">plugin_is_installed()</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#af59e6a1dc22d19d9257b01cd7ccedb75">post_post()</a>, <a class="el" href="text_8php.html#ac19d2b33a58372a357a43d51eed19162">preg_heart()</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#a0e3006e7a456b2175a9badc96bc5176d">process_delivery()</a>, <a class="el" href="zot_8php.html#a8eeefdb0dad4c436bea9d1c06c0a7988">process_location_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="profile__photo_8php.html#a561103564199da56e58061a4196eb102">profile_photo_set_profile_perms()</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="hubloc_8php.html#ad3d0dcfcfcb347744f7617fe6f5de002">prune_hub_reinstalls()</a>, <a class="el" href="zot_8php.html#a083aec6c900d244e1bfc1406f9461465">public_recips()</a>, <a class="el" href="crypto_8php.html#a2a3fae7caca27f86d158eeaf69b6f287">pubrsatome()</a>, <a class="el" href="classRedMatrix_1_1RedDAV_1_1RedFile.html#a709ec1288d21ddf1353524435ab916f0">RedMatrix\RedDAV\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="classdba__postgres.html#a70352880231fba0b859f82cd5b290a9a">dba_postgres\q()</a>, <a class="el" href="queue_8php.html#af8c93de86d866c3200174c8450a0f341">queue_run()</a>, <a class="el" href="Contact_8php.html#a7e3f5bef8ea1d2bf8434c9be36a2b713">random_profile()</a>, <a class="el" href="Contact_8php.html#a2f4f495d53f2a334ab75292af79d3c91">rconnect_url()</a>, <a class="el" href="receive_8php.html#a03d8fa26e77844020ba5602deca7d494">receive_post()</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#a7f0f50576360d9ba52d29364e0b83a8e">ref_session_read()</a>, <a class="el" href="session_8php.html#ac4461c1984543d3553e73dba2771568f">ref_session_write()</a>, <a class="el" href="refimport_8php.html#ad97ebb5feda0230a4834e0b3637a0d29">refimport_content()</a>, <a class="el" href="refimport_8php.html#a01a29630fa5e1ce6cd5e1fd75280747c">reflect_comment_store()</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="datetime_8php.html#a8ae8dc95ace7ac27fa5a1ecf42b78c82">relative_date()</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="hubloc_8php.html#a84c79b7be352f62d12fe4fa2c80fc6ea">remove_obsolete_hublocs()</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="items_8php.html#af6237605c60d69abdd959ddbbee3420c">retain_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="rpost_8php.html#a8190354d789000806d9879aea276728f">rpost_content()</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="account_8php.html#a030cec6793b909c439c0336ba39b1571">service_class_allows()</a>, <a class="el" href="account_8php.html#a905b54e10704b283ac64680a8abc0971">service_class_fetch()</a>, <a class="el" href="classCache.html#ae622b82adc1c2fb1f3e2cc4fd9688fce">Cache\set()</a>, <a class="el" href="identity_8php.html#a78151baf4407a8482d2681a91a9c486b">set_default_login_identity()</a>, <a class="el" href="classRedMatrix_1_1RedDAV_1_1RedBasicAuth.html#a2926fe923baade564f2663632fa8c633">RedMatrix\RedDAV\RedBasicAuth\setAuthenticated()</a>, <a class="el" href="classRedMatrix_1_1RedDAV_1_1RedFile.html#a0350cb4e0327e1f9922869a48ee04f1d">RedMatrix\RedDAV\RedFile\setName()</a>, <a class="el" href="classRedMatrix_1_1RedDAV_1_1RedDirectory.html#a14ac61d31a031d139956763db4e03956">RedMatrix\RedDAV\RedDirectory\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="items_8php.html#adf2b8137dc4ad9ec958de2842f16f3c2">start_delivery_chain()</a>, <a class="el" href="classphoto__driver.html#a642a8d0c4ad5f887c99c6af77cee287b">photo_driver\store()</a>, <a class="el" href="items_8php.html#a25221826fa4621f523c68483e3b6af26">store_diaspora_comment_sig()</a>, <a class="el" href="taxonomy_8php.html#a4ba1339b2a7054971178ce194e4440fd">store_item_tag()</a>, <a class="el" href="security_8php.html#a6126c77a1267e046ac59cf864613f011">stream_perms_api_uids()</a>, <a class="el" href="security_8php.html#a3ef2be6a7e4928e39d50059d6feb457c">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="socgraph_8php.html#a76e6fca3d2bc842dcd9e710bb87c8329">suggestion_query()</a>, <a class="el" href="dir__fns_8php.html#aa666e7df6ca8c332f4081c9b66b4bdf6">sync_directories()</a>, <a class="el" href="zot_8php.html#ab15c04e7e5f44edf45ec50dd7d183254">sync_locations()</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="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="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="plugin_8php.html#a56f71fe5adf9586ce950523d8180443e">unregister_hook()</a>, <a class="el" href="datetime_8php.html#af1cd77c97c901d9239cb7a61f97f9826">update_birthdays()</a>, <a class="el" href="statistics__fns_8php.html#a82726229a961d3bd3d543005c61dd8e6">update_channels_active_halfyear_stat()</a>, <a class="el" href="statistics__fns_8php.html#ad2b7b595c039c4c2eb0d6cd57a393dfe">update_channels_active_monthly_stat()</a>, <a class="el" href="statistics__fns_8php.html#a05858927cce81fd367aedf85a94ed90c">update_channels_total_stat()</a>, <a class="el" href="dir__fns_8php.html#a44062d4b471d1e83f92f6c184585aa13">update_directory_entry()</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#ad07be417ac7eda939768804106ddea3d">user_approve()</a>, <a class="el" href="account_8php.html#ac1653efba62493b9d87513e1b6c04c83">user_deny()</a>, <a class="el" href="classRedMatrix_1_1RedDAV_1_1RedBasicAuth.html#a6ece02655b780469e59e204c5979a624">RedMatrix\RedDAV\RedBasicAuth\validateUserPass()</a>, <a class="el" href="Contact_8php.html#a6348a532c9d26cd1c9afbc9aa6aa8960">vcard_from_xchan()</a>, <a class="el" href="account_8php.html#acd6b8d2124ba5ea4f4794d2c58ae8bf5">verify_email_address()</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="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#a0e2f5179ed1a73b282dfda7270fcabb3">widget_bookmarkedchats()</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#a313a8d10ab81c71357c12e67e4d7efd5">widget_item()</a>, <a class="el" href="widgets_8php.html#a829c5a5c7448129266fc1df3ae1a3c2e">widget_random_block()</a>, <a class="el" href="widgets_8php.html#a94203eb9bcd63cbdecbbcb15163598d8">widget_savedsearch()</a>, <a class="el" href="widgets_8php.html#a50b1410238100c8a94c06b0aa63ee3b8">widget_suggestedchats()</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="taxonomy_8php.html#a83f0a60f9e0c07d8451dc5be95b17287">wtagblock()</a>, <a class="el" href="xchan_8php.html#a9853348bf1a35c644460221ba75edc2d">xchan_content()</a>, <a class="el" href="hubloc_8php.html#af1b476c936f96a93282b1d058e3d05ea">xchan_fetch()</a>, <a class="el" href="hubloc_8php.html#acb708dd197aae72a4858cf5ff4e3195b">xchan_store()</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#a1cf89557f32d5dfbe8bd90448dc1aa92">zot_feed()</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#a3920afe14fc1d82020161b4b86bcd9ac">zot_process_message_request()</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="zotfeed_8php.html#a24dfc23d366e7f840cf2847d0c1c8eac">zotfeed_init()</a>, and <a class="el" href="zping_8php.html#a4d3a6b0b8b04ed6469015823e615ee75">zping_content()</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="a2da3681c9cce2efe7de29aa578ff4219"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">$rand = <a class="el" href="dba__driver_8php.html#a2994daa03b1c23229a27e39bcab75e67">db_getfunc</a>('RAND')</td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Referenced by <a class="el" href="socgraph_8php.html#a7d34cd58025bcd9e575282f44db75918">common_friends()</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="a241b818f48030b628685b2e5119c5624"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">$total = 0</td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Referenced by <a class="el" href="admin_8php.html#ad6f87a764fd35f522c7b4c351d7878ec">admin_page_channels()</a>, <a class="el" href="admin_8php.html#a62f10f90c47686c9c3c37c4c03a108d2">admin_page_users()</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="conversation_8php.html#ab2383dff4f823e580399ff469d90ab19">count_descendants()</a>, <a class="el" href="classItem.html#aca1e66988ed00cd627b2a359b72cd0ae">Item\count_descendants()</a>, <a class="el" href="classItem.html#ae0c48b2fed5558642549cabd547fc4f3">Item\count_unseen_descendants()</a>, <a class="el" href="externals_8php.html#a4df44079e6f915286088b7a0d44db926">externals_run()</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="invite_8php.html#aeb0881c0f93c8e8552e5ed756ce6e5a5">invite_post()</a>, <a class="el" href="msearch_8php.html#ac80d2a6c0a92e79eec7efbbccd74d9a8">msearch_post()</a>, <a class="el" href="onepoll_8php.html#a72753b2fdec79b37c7f432035c91fb6d">onepoll_run()</a>, and <a class="el" href="socgraph_8php.html#a5ef8bef37161df53718a21e93d02fbd6">poco_load()</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="a9d4f8a2ab4d92b3ccfd7cba0458098eb"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname"><a class="el" href="typo_8php.html#a329c9c12217d2c8660c47bbc7c8df4c5">foreach</a> ($r as $rr) print $total n</td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+</div>
+</div>
+</div><!-- contents -->
+</div><!-- doc-content -->
+
diff --git a/doc/html/fixd_8php.js b/doc/html/fixd_8php.js
new file mode 100644
index 000000000..2486b89d6
--- /dev/null
+++ b/doc/html/fixd_8php.js
@@ -0,0 +1,7 @@
+var fixd_8php =
+[
+ [ "$r", "fixd_8php.html#a8abe176bc41afd728f32ba8c506cbd98", null ],
+ [ "$rand", "fixd_8php.html#a2da3681c9cce2efe7de29aa578ff4219", null ],
+ [ "$total", "fixd_8php.html#a241b818f48030b628685b2e5119c5624", null ],
+ [ "n", "fixd_8php.html#a9d4f8a2ab4d92b3ccfd7cba0458098eb", null ]
+]; \ No newline at end of file
diff --git a/doc/html/full_8php.html b/doc/html/full_8php.html
index 1d4f388a1..711ab2fec 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:a3987f5547ceb7e36a210a66a06241a5a"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="full_8php.html#a3987f5547ceb7e36a210a66a06241a5a">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; header &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="memitem:a3987f5547ceb7e36a210a66a06241a5a"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="full_8php.html#a3987f5547ceb7e36a210a66a06241a5a">if</a> (<a class="el" href="boot_8php.html#ae97836b0547953be182a2334c9c91d3c">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; header &gt;&lt;?php if(<a class="el" href="boot_8php.html#ae97836b0547953be182a2334c9c91d3c">x</a>($<a class="el" href="mod__import_8php.html#a8db1899eeeb44dabd0904065b63627bb">page</a></td></tr>
<tr class="separator:a3987f5547ceb7e36a210a66a06241a5a"><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__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; header &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>
+ <td class="memname">if(<a class="el" href="boot_8php.html#ae97836b0547953be182a2334c9c91d3c">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; header &gt;&lt;?php if(<a class="el" href="boot_8php.html#ae97836b0547953be182a2334c9c91d3c">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 b83df8f1b..be0509f05 100644
--- a/doc/html/functions.html
+++ b/doc/html/functions.html
@@ -156,21 +156,15 @@ $(document).ready(function(){initNavTree('functions.html','');});
: <a class="el" href="classApp.html#ab3da757abe5cb45bf88f07cc51a73b58">App</a>
</li>
<li>$auth
-: <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>
+: <a class="el" href="classRedMatrix_1_1RedDAV_1_1RedFile.html#a21b6e9d420c352f25610a33f57858215">RedMatrix\RedDAV\RedFile</a>
+, <a class="el" href="classRedMatrix_1_1RedDAV_1_1RedBrowser.html#ad19179bf4ac7f18fafa7e2e3df800142">RedMatrix\RedDAV\RedBrowser</a>
+, <a class="el" href="classRedMatrix_1_1RedDAV_1_1RedDirectory.html#aab6907e7fb7f9f7227f9cd42bdc84eb9">RedMatrix\RedDAV\RedDirectory</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>
-<li>$cached_profile_picdate
-: <a class="el" href="classApp.html#aab4a685d15a363bb1d7edbbc20bfb94e">App</a>
+: <a class="el" href="classRedMatrix_1_1RedDAV_1_1RedBasicAuth.html#a167ae032bd2ad8e6caa2e1e1a6f1b5d3">RedMatrix\RedDAV\RedBasicAuth</a>
</li>
<li>$category
: <a class="el" href="classApp.html#a5cfc098c061b7d765add58fd2ca97445">App</a>
@@ -180,13 +174,13 @@ $(document).ready(function(){initNavTree('functions.html','');});
, <a class="el" href="classItem.html#acc32426c0f465391be8a99ad810c7b8e">Item</a>
</li>
<li>$channel_hash
-: <a class="el" href="classRedBasicAuth.html#ad5a3ea4dc4783b242d9dc6e76478b6ef">RedBasicAuth</a>
+: <a class="el" href="classRedMatrix_1_1RedDAV_1_1RedBasicAuth.html#a112ad78a863dc0e598b5f02c596798c0">RedMatrix\RedDAV\RedBasicAuth</a>
</li>
<li>$channel_id
-: <a class="el" href="classRedBasicAuth.html#a2dab393650d1573e3515969a153e8354">RedBasicAuth</a>
+: <a class="el" href="classRedMatrix_1_1RedDAV_1_1RedBasicAuth.html#abe1defedb90ac8e3b6487e124e625521">RedMatrix\RedDAV\RedBasicAuth</a>
</li>
<li>$channel_name
-: <a class="el" href="classRedBasicAuth.html#a438ab125b6ef46581947e35d49cdebac">RedBasicAuth</a>
+: <a class="el" href="classRedMatrix_1_1RedDAV_1_1RedBasicAuth.html#a76fdb7fd5dd7376155abb5a58cd6fd69">RedMatrix\RedDAV\RedBasicAuth</a>
</li>
<li>$children
: <a class="el" href="classItem.html#a80dcd0fb7673776c0967839d429c2a0f">Item</a>
@@ -225,31 +219,30 @@ $(document).ready(function(){initNavTree('functions.html','');});
<li>$conversation
: <a class="el" href="classItem.html#a007424e3e3171dcfb4312a02161da6cd">Item</a>
</li>
+<li>$credentials
+: <a class="el" href="classRedMatrix_1_1Import_1_1Import.html#a864aac9fadb4846f5d9f840e8e0f440f">RedMatrix\Import\Import</a>
+</li>
<li>$css_sources
: <a class="el" href="classApp.html#a6f55d087e1ff4710132c1b0863faa2ee">App</a>
</li>
-<li>$curl_code
-: <a class="el" href="classApp.html#a256360c9184fed6d7556e0bc0a835d7f">App</a>
-</li>
-<li>$curl_headers
-: <a class="el" href="classApp.html#af5007c42a693afd9c4899c243b2e1363">App</a>
-</li>
<li>$d
: <a class="el" href="classTemplate.html#a8469ab2988b6be2681516dc4b4e07d38">Template</a>
</li>
<li>$data
: <a class="el" href="classApp.html#a0ce85be198e46570366cb3344f3c55b8">App</a>
, <a class="el" href="classItem.html#aec24e233f9098f902b1e57e60dcb2019">Item</a>
-, <a class="el" href="classRedFile.html#a2ff12032b45538353eded9809d3b7550">RedFile</a>
+, <a class="el" href="classRedMatrix_1_1RedDAV_1_1RedFile.html#a235700e2dfbe21dc41613d36e30e8acc">RedMatrix\RedDAV\RedFile</a>
</li>
<li>$db
-: <a class="el" href="classApp.html#a330410a288f3393d53772f5e98f857ea">App</a>
-, <a class="el" href="classdba__driver.html#a3033b5f1c2716b52202faeaae2592fe6">dba_driver</a>
+: <a class="el" href="classdba__driver.html#a3033b5f1c2716b52202faeaae2592fe6">dba_driver</a>
</li>
<li>$debug
: <a class="el" href="classdba__driver.html#af48e2afeded5285766bf92e22123ed03">dba_driver</a>
, <a class="el" href="classTemplate.html#afc4afb6f89bebcd5480022312a56cb4a">Template</a>
</li>
+<li>$display_mode
+: <a class="el" href="classItem.html#a88a99e2d1245925867f249f543358e72">Item</a>
+</li>
<li>$done
: <a class="el" href="classTemplate.html#abda4c8d049f70553338eae7c905e9d5c">Template</a>
</li>
@@ -258,13 +251,13 @@ $(document).ready(function(){initNavTree('functions.html','');});
, <a class="el" href="classdba__driver.html#a84675d28c7bd9b7290dd37e66dbd216c">dba_driver</a>
</li>
<li>$ext_path
-: <a class="el" href="classRedDirectory.html#a0f113244cd85c17848df991001d024f4">RedDirectory</a>
+: <a class="el" href="classRedMatrix_1_1RedDAV_1_1RedDirectory.html#adf8735b3118cdf2f42416edaf42b82e9">RedMatrix\RedDAV\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>
+: <a class="el" href="classRedMatrix_1_1RedDAV_1_1RedDirectory.html#a2fc4e6b9be2108bbaa1ca1a03fd6d44e">RedMatrix\RedDAV\RedDirectory</a>
</li>
<li>$force_max_items
: <a class="el" href="classApp.html#ae3f47830543d0d902f66913def8db66b">App</a>
@@ -293,6 +286,15 @@ $(document).ready(function(){initNavTree('functions.html','');});
<li>$interactive
: <a class="el" href="classApp.html#a4c7cfc62d39508086cf300dc2e39c4df">App</a>
</li>
+<li>$is_sys
+: <a class="el" href="classApp.html#a1f60d19d47021629faac7a0a6d917e94">App</a>
+</li>
+<li>$itemlist
+: <a class="el" href="classRedMatrix_1_1Import_1_1Import.html#ad0d2bdc3b388220479063915b4f5c2fc">RedMatrix\Import\Import</a>
+</li>
+<li>$items
+: <a class="el" href="classRedMatrix_1_1Import_1_1Import.html#a0a05dac405ccc5b617b7b7b3c8ed783c">RedMatrix\Import\Import</a>
+</li>
<li>$js_sources
: <a class="el" href="classApp.html#a11e24b3ed9b33ffee7dd41d110b4366d">App</a>
</li>
@@ -318,7 +320,7 @@ $(document).ready(function(){initNavTree('functions.html','');});
: <a class="el" href="classApp.html#a6e4f0fbfa3cf6c11baebe22a03db6165">App</a>
</li>
<li>$name
-: <a class="el" href="classRedFile.html#acc48c05cd5a70951cb3c615ad84f03ba">RedFile</a>
+: <a class="el" href="classRedMatrix_1_1RedDAV_1_1RedFile.html#ab722dcb8c4598426c81fa2b2e4fad5f2">RedMatrix\RedDAV\RedFile</a>
, <a class="el" href="classFriendicaSmartyEngine.html#aaba6a42101bc9ae32e36b7fa2e243f02">FriendicaSmartyEngine</a>
, <a class="el" href="classTemplate.html#a6eb301a51cc94d8b94f4548fbad85eae">Template</a>
</li>
@@ -330,20 +332,20 @@ $(document).ready(function(){initNavTree('functions.html','');});
</li>
<li>$observer
: <a class="el" href="classConversation.html#a8748445aa26047ebed5141f3c3cbc244">Conversation</a>
-, <a class="el" href="classRedBasicAuth.html#aa75dc43b59adc98e38a98517d3fd35d1">RedBasicAuth</a>
+, <a class="el" href="classRedMatrix_1_1RedDAV_1_1RedBasicAuth.html#a605aa09565a097316b80f0d17d6b5823">RedMatrix\RedDAV\RedBasicAuth</a>
, <a class="el" href="classApp.html#a4ffe529fb14389f7fedf5fdc5f722e7f">App</a>
</li>
<li>$os_path
-: <a class="el" href="classRedDirectory.html#a3c148c07ad909985125aa4926d8d0021">RedDirectory</a>
+: <a class="el" href="classRedMatrix_1_1RedDAV_1_1RedDirectory.html#a17ea47e34cb76b6e79f36ebed790d76a">RedMatrix\RedDAV\RedDirectory</a>
</li>
<li>$owner_id
-: <a class="el" href="classRedBasicAuth.html#a09c1488a0b290f5a54dc15180c5690d7">RedBasicAuth</a>
+: <a class="el" href="classRedMatrix_1_1RedDAV_1_1RedBasicAuth.html#a1a23c349cc4699a8474505972684ea9c">RedMatrix\RedDAV\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>
+: <a class="el" href="classRedMatrix_1_1RedDAV_1_1RedBasicAuth.html#aad0ef0cc05c407de84dbfbf2050bbbbe">RedMatrix\RedDAV\RedBasicAuth</a>
</li>
<li>$owner_photo
: <a class="el" href="classItem.html#a078f95b4134ce3a1df344cf8d386f986">Item</a>
@@ -397,7 +399,7 @@ $(document).ready(function(){initNavTree('functions.html','');});
: <a class="el" href="classApp.html#a244b2d53b21be269aad2269d23192f95">App</a>
</li>
<li>$red_path
-: <a class="el" href="classRedDirectory.html#acb32b8df27538c57772824a745e751d7">RedDirectory</a>
+: <a class="el" href="classRedMatrix_1_1RedDAV_1_1RedDirectory.html#a4bba2e56bc8ec3e05f05eae46f56f36d">RedMatrix\RedDAV\RedDirectory</a>
</li>
<li>$redirect_url
: <a class="el" href="classItem.html#a5b561415861f5b89b0733aacfe0428d1">Item</a>
@@ -406,7 +408,7 @@ $(document).ready(function(){initNavTree('functions.html','');});
: <a class="el" href="classTemplate.html#a4e86b566c3f728e95ce5db1b33665c10">Template</a>
</li>
<li>$root_dir
-: <a class="el" href="classRedDirectory.html#ad87c514a307ec97ba0f1372e9bcfa6a4">RedDirectory</a>
+: <a class="el" href="classRedMatrix_1_1RedDAV_1_1RedDirectory.html#a438066fb1565fbcffa22c12d5ce23695">RedMatrix\RedDAV\RedDirectory</a>
</li>
<li>$scheme
: <a class="el" href="classApp.html#ad082d63acc078e5bf23825a03bdd6a76">App</a>
@@ -417,6 +419,9 @@ $(document).ready(function(){initNavTree('functions.html','');});
<li>$sourcename
: <a class="el" href="classApp.html#a13710907ef62554a0b4dd8a5eaa2eb11">App</a>
</li>
+<li>$src_items
+: <a class="el" href="classRedMatrix_1_1Import_1_1Import.html#a88c2eeba8d0cba3e7c12a2c45ba0fbc6">RedMatrix\Import\Import</a>
+</li>
<li>$stack
: <a class="el" href="classTemplate.html#a6f0efc256688c36110180b501067ff11">Template</a>
</li>
@@ -448,7 +453,7 @@ $(document).ready(function(){initNavTree('functions.html','');});
: <a class="el" href="classConversation.html#a41f4a549e6a99f98935c4742addd22c8">Conversation</a>
</li>
<li>$timezone
-: <a class="el" href="classRedBasicAuth.html#a2d0246ed446fd5e55c17938b4ce6ac47">RedBasicAuth</a>
+: <a class="el" href="classRedMatrix_1_1RedDAV_1_1RedBasicAuth.html#a849c99cf0a7ad065d630c8a30106ad5e">RedMatrix\RedDAV\RedBasicAuth</a>
, <a class="el" href="classApp.html#ab35b01a366a2ea95725e97af278f87ab">App</a>
</li>
<li>$toplevel
@@ -478,9 +483,6 @@ $(document).ready(function(){initNavTree('functions.html','');});
<li>$wall_to_wall
: <a class="el" href="classItem.html#a5d29ddecc073151a65a8e2ea2f6e4189">Item</a>
</li>
-<li>$widgetlist
-: <a class="el" href="classApp.html#a4833bee2eae4ad1691a04fa19e11a766">App</a>
-</li>
<li>$widgets
: <a class="el" href="classApp.html#aa5a87c46ab3fee21362c466bf78042ef">App</a>
</li>
diff --git a/doc/html/functions_0x5f.html b/doc/html/functions_0x5f.html
index c74083daa..e94eaa1c4 100644
--- a/doc/html/functions_0x5f.html
+++ b/doc/html/functions_0x5f.html
@@ -144,14 +144,14 @@ $(document).ready(function(){initNavTree('functions_0x5f.html','');});
: <a class="el" href="classApp.html#af6d39f63fb7116bbeb04e51696f99474">App</a>
, <a class="el" href="classConversation.html#af84ea6ccd72214c9bb4c504461cc8b09">Conversation</a>
, <a class="el" href="classItem.html#a248f45871ecfe82a08d1d4c0769b2eb2">Item</a>
-, <a class="el" href="classRedFile.html#a9a67bdb34c9db6ce144b3f371148b183">RedFile</a>
-, <a class="el" href="classRedBrowser.html#a4b76be9ccef0262cf78fffb4129eda93">RedBrowser</a>
+, <a class="el" href="classRedMatrix_1_1RedDAV_1_1RedDirectory.html#a76b58fe5223e565c97f1b9af93031a99">RedMatrix\RedDAV\RedDirectory</a>
+, <a class="el" href="classRedMatrix_1_1RedDAV_1_1RedFile.html#a05798eac84c578152ff21758261c6ac6">RedMatrix\RedDAV\RedFile</a>
, <a class="el" href="classFKOAuth1.html#a2f1276872329a6f0b704ccda1a4b9fa6">FKOAuth1</a>
, <a class="el" href="classFriendicaSmarty.html#af12091b920b95eeef1218cbc48066ca6">FriendicaSmarty</a>
, <a class="el" href="classFriendicaSmartyEngine.html#ab7c305bd8c386c2944e4dc9136cea5b6">FriendicaSmartyEngine</a>
, <a class="el" href="classdba__driver.html#af3541d13ccb7a3eddfc03e253c746186">dba_driver</a>
, <a class="el" href="classphoto__driver.html#ac6e85f8e507cab4e755ed7acdec401ae">photo_driver</a>
-, <a class="el" href="classRedDirectory.html#a1e35e3cd31d2a15250655e4cafdea180">RedDirectory</a>
+, <a class="el" href="classRedMatrix_1_1RedDAV_1_1RedBrowser.html#a8161f2a0be205412e263c947b5ec46c5">RedMatrix\RedDAV\RedBrowser</a>
</li>
<li>__destruct()
: <a class="el" href="classdba__driver.html#a1a8bc9dc839a6320a0e07d8047a6b721">dba_driver</a>
diff --git a/doc/html/functions_0x63.html b/doc/html/functions_0x63.html
index cdcca330f..7070c95ef 100644
--- a/doc/html/functions_0x63.html
+++ b/doc/html/functions_0x63.html
@@ -148,13 +148,14 @@ $(document).ready(function(){initNavTree('functions_0x63.html','');});
: <a class="el" href="classItem.html#abcdb0ea9bcd1576bc99bba9b8f700bb8">Item</a>
</li>
<li>childExists()
-: <a class="el" href="classRedDirectory.html#a5e3fc08b2bf9f61cea4d2ccae0495bec">RedDirectory</a>
+: <a class="el" href="classRedMatrix_1_1RedDAV_1_1RedDirectory.html#a964b13fde1a5da6f76b51ca5519234dc">RedMatrix\RedDAV\RedDirectory</a>
</li>
<li>clear()
: <a class="el" href="classCache.html#ab14d0f4bdf7116a94d545c574b38f568">Cache</a>
</li>
<li>close()
: <a class="el" href="classdba__mysqli.html#acb38f2c851187ad632ecfab30fdfab55">dba_mysqli</a>
+, <a class="el" href="classdba__postgres.html#a731d8648b41b8a126f6b99bdd5414058">dba_postgres</a>
, <a class="el" href="classdba__driver.html#a5afa54172f3c837df61643f8f5b2c975">dba_driver</a>
, <a class="el" href="classdba__mysql.html#a850586714ef897bd25f643c89b4ef76e">dba_mysql</a>
</li>
@@ -166,24 +167,41 @@ $(document).ready(function(){initNavTree('functions_0x63.html','');});
: <a class="el" href="classProtoDriver.html#af66171aa7dab9b62cee915cb4f1abe1b">ProtoDriver</a>
, <a class="el" href="classZotDriver.html#a2e15ff09772f0608203dad1c98299394">ZotDriver</a>
</li>
+<li>concat()
+: <a class="el" href="classdba__driver.html#ab9982f38a02f008b127a0f3ccc1e99f4">dba_driver</a>
+, <a class="el" href="classdba__postgres.html#a7ea3f24ad260c1e21588f8b5af595caa">dba_postgres</a>
+</li>
<li>connect()
: <a class="el" href="classdba__driver.html#ae533e62a240a793f17aef5ab4ef10edc">dba_driver</a>
-, <a class="el" href="classdba__mysqli.html#add062bd93961e5f0194d94820e9a51b1">dba_mysqli</a>
, <a class="el" href="classdba__mysql.html#a1887338627ce0e28786839363014bd0b">dba_mysql</a>
+, <a class="el" href="classdba__mysqli.html#add062bd93961e5f0194d94820e9a51b1">dba_mysqli</a>
+, <a class="el" href="classdba__postgres.html#ab36244320f5b71dba92d9318ccf3f34e">dba_postgres</a>
+</li>
+<li>convert_child()
+: <a class="el" href="classRedMatrix_1_1Import_1_1Import.html#a5434325afb2c633c52540127d717800a">RedMatrix\Import\Import</a>
+</li>
+<li>convert_item()
+: <a class="el" href="classRedMatrix_1_1Import_1_1Import.html#a107703a43a1b0ceb2af7ae470cb3f218">RedMatrix\Import\Import</a>
+</li>
+<li>convert_taxonomy()
+: <a class="el" href="classRedMatrix_1_1Import_1_1Import.html#addf6e53dacd971eaab49be4b17a767d6">RedMatrix\Import\Import</a>
</li>
<li>count_descendants()
: <a class="el" href="classItem.html#aca1e66988ed00cd627b2a359b72cd0ae">Item</a>
</li>
+<li>count_unseen_descendants()
+: <a class="el" href="classItem.html#ae0c48b2fed5558642549cabd547fc4f3">Item</a>
+</li>
<li>createDirectory()
-: <a class="el" href="classRedDirectory.html#a986936910f0216887a25e28916c166c7">RedDirectory</a>
+: <a class="el" href="classRedMatrix_1_1RedDAV_1_1RedDirectory.html#aca0e8d574ea66a0e210f571700663c62">RedMatrix\RedDAV\RedDirectory</a>
</li>
<li>createFile()
-: <a class="el" href="classRedDirectory.html#a2d12d99d38a6a75fc9a830b2f7fc0bf0">RedDirectory</a>
+: <a class="el" href="classRedMatrix_1_1RedDAV_1_1RedDirectory.html#a58e750256cdc2f0f79fbe8d5463ffefe">RedMatrix\RedDAV\RedDirectory</a>
</li>
<li>cropImage()
: <a class="el" href="classphoto__driver.html#a2e6e61f1e356a90bc978f4404a77137e">photo_driver</a>
-, <a class="el" href="classphoto__gd.html#ab2232d775c8bacf66773a03308105f0c">photo_gd</a>
, <a class="el" href="classphoto__imagick.html#a2f33a03a89497a2b2768e29736d4a8a4">photo_imagick</a>
+, <a class="el" href="classphoto__gd.html#ab2232d775c8bacf66773a03308105f0c">photo_gd</a>
</li>
</ul>
</div><!-- contents -->
diff --git a/doc/html/functions_0x64.html b/doc/html/functions_0x64.html
index 7c8b04fa0..2bada26c8 100644
--- a/doc/html/functions_0x64.html
+++ b/doc/html/functions_0x64.html
@@ -144,7 +144,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="classRedFile.html#aef71c9eaac7052be7dc8602eb12171e7">RedFile</a>
+: <a class="el" href="classRedMatrix_1_1RedDAV_1_1RedFile.html#ab7ab7ba81fab28eb02382cfdfd80ecfe">RedMatrix\RedDAV\RedFile</a>
</li>
<li>deliver()
: <a class="el" href="classZotDriver.html#a876e3e0e4cad83c0b58c8696b344be6f">ZotDriver</a>
diff --git a/doc/html/functions_0x65.html b/doc/html/functions_0x65.html
index f9b5ba9bd..efb086291 100644
--- a/doc/html/functions_0x65.html
+++ b/doc/html/functions_0x65.html
@@ -142,8 +142,16 @@ $(document).ready(function(){initNavTree('functions_0x65.html','');});
<h3><a class="anchor" id="index_e"></a>- e -</h3><ul>
<li>escape()
: <a class="el" href="classdba__driver.html#afc95ffa103a3290581b537670cde5311">dba_driver</a>
-, <a class="el" href="classdba__mysqli.html#a27d6a748af7f80028801306e7ea33f64">dba_mysqli</a>
, <a class="el" href="classdba__mysql.html#a99a7691ea6cb1300031fb6549379066e">dba_mysql</a>
+, <a class="el" href="classdba__postgres.html#a7108eaaae7cc2fb236212041afc9ac0f">dba_postgres</a>
+, <a class="el" href="classdba__mysqli.html#a27d6a748af7f80028801306e7ea33f64">dba_mysqli</a>
+</li>
+<li>escape_identifier()
+: <a class="el" href="classdba__postgres.html#ab2e44e9f41d05e585afd873d18e8c127">dba_postgres</a>
+</li>
+<li>escapebin()
+: <a class="el" href="classdba__driver.html#a7dbe8318587ff1694825042bf58f4fbd">dba_driver</a>
+, <a class="el" href="classdba__postgres.html#a8d2c6d8c92fe6f074452876483dd17fc">dba_postgres</a>
</li>
</ul>
</div><!-- contents -->
diff --git a/doc/html/functions_0x66.html b/doc/html/functions_0x66.html
index c0135d718..75316b566 100644
--- a/doc/html/functions_0x66.html
+++ b/doc/html/functions_0x66.html
@@ -141,10 +141,10 @@ $(document).ready(function(){initNavTree('functions_0x66.html','');});
<h3><a class="anchor" id="index_f"></a>- f -</h3><ul>
<li>findAttachHash()
-: <a class="el" href="classRedBrowser.html#ae4edd4e10c709e2624c1aeb47b0440c5">RedBrowser</a>
+: <a class="el" href="classRedMatrix_1_1RedDAV_1_1RedBrowser.html#ad4bc0516533c62733f38043a37267d78">RedMatrix\RedDAV\RedBrowser</a>
</li>
<li>findAttachIdByHash()
-: <a class="el" href="classRedBrowser.html#a20d81230645ddca08a88bfd9ea9f88f1">RedBrowser</a>
+: <a class="el" href="classRedMatrix_1_1RedDAV_1_1RedBrowser.html#a0733e38e254474d9a456825e72f1ddfd">RedMatrix\RedDAV\RedBrowser</a>
</li>
<li>flip()
: <a class="el" href="classphoto__gd.html#a44cedef376044018702d9355ddc813ce">photo_gd</a>
diff --git a/doc/html/functions_0x67.html b/doc/html/functions_0x67.html
index eb3dabc2a..b75070e82 100644
--- a/doc/html/functions_0x67.html
+++ b/doc/html/functions_0x67.html
@@ -144,10 +144,10 @@ $(document).ready(function(){initNavTree('functions_0x67.html','');});
: <a class="el" href="classFKOAuthDataStore.html#aa1a268be88ad3979bb4cc35bbb4dc819">FKOAuthDataStore</a>
</li>
<li>generateDirectoryIndex()
-: <a class="el" href="classRedBrowser.html#a1f7daf50bb9bfcde7345b3b1908dbd7e">RedBrowser</a>
+: <a class="el" href="classRedMatrix_1_1RedDAV_1_1RedBrowser.html#af764d5f14df751f9ec86c34fab300c09">RedMatrix\RedDAV\RedBrowser</a>
</li>
<li>get()
-: <a class="el" href="classRedFile.html#a7c868dfcef6c70cd0e24cf3caa2c3535">RedFile</a>
+: <a class="el" href="classRedMatrix_1_1RedDAV_1_1RedFile.html#a7241beecd01f5bb4e74659863dd85bd8">RedMatrix\RedDAV\RedFile</a>
, <a class="el" href="classCache.html#a70392b109331897bf9fdd7f1960e21de">Cache</a>
</li>
<li>get_account()
@@ -169,7 +169,8 @@ $(document).ready(function(){initNavTree('functions_0x67.html','');});
: <a class="el" href="classItem.html#a632185dd25c5caf277067c76230a4320">Item</a>
</li>
<li>get_children()
-: <a class="el" href="classItem.html#aa0ee775ec94abccec6c798428835d001">Item</a>
+: <a class="el" href="classRedMatrix_1_1Import_1_1Import.html#a57561904b0f127e0d9a3e2c33688daf8">RedMatrix\Import\Import</a>
+, <a class="el" href="classItem.html#aa0ee775ec94abccec6c798428835d001">Item</a>
</li>
<li>get_cipher()
: <a class="el" href="classConversation.html#a4aab60bb39fa6761b6cacdc8d9da2901">Conversation</a>
@@ -183,12 +184,18 @@ $(document).ready(function(){initNavTree('functions_0x67.html','');});
<li>get_conversation()
: <a class="el" href="classItem.html#a0c301aaed2b7d682728d18db3a22afa3">Item</a>
</li>
+<li>get_credentials()
+: <a class="el" href="classRedMatrix_1_1Import_1_1Import.html#a24134929d9a8a682da2036a0bf326367">RedMatrix\Import\Import</a>
+</li>
<li>get_data()
: <a class="el" href="classItem.html#ad3638f93065693c1f69eb349feb1b7aa">Item</a>
</li>
<li>get_data_value()
: <a class="el" href="classItem.html#ac6f1c96cc82a0dfb7e881fc70309ea3c">Item</a>
</li>
+<li>get_display_mode()
+: <a class="el" href="classItem.html#a23d4057883f8ed888c0c2ff12d8aa5d0">Item</a>
+</li>
<li>get_FormatsMap()
: <a class="el" href="classphoto__imagick.html#aef020d929f66f4370e33fc158c8eebd4">photo_imagick</a>
</li>
@@ -201,17 +208,32 @@ $(document).ready(function(){initNavTree('functions_0x67.html','');});
<li>get_id()
: <a class="el" href="classItem.html#ac0f27e58532612f6e7a54c8a621b9b92">Item</a>
</li>
+<li>get_install_script()
+: <a class="el" href="classdba__driver.html#a8d6a79d39d7eaee5aea4e952c4529d48">dba_driver</a>
+</li>
<li>get_intltext_template()
: <a class="el" href="classFriendicaSmartyEngine.html#a35ec0ee828c36640ea25296bcb84a118">FriendicaSmartyEngine</a>
</li>
+<li>get_item()
+: <a class="el" href="classRedMatrix_1_1Import_1_1Import.html#a27987a41cb703a796f1821baeb4774a2">RedMatrix\Import\Import</a>
+</li>
+<li>get_item_ident()
+: <a class="el" href="classRedMatrix_1_1Import_1_1Import.html#a772c28edf36aaf8e66007a95004c4059">RedMatrix\Import\Import</a>
+</li>
+<li>get_itemlist()
+: <a class="el" href="classRedMatrix_1_1Import_1_1Import.html#a855cd5a79b95d269ae8737fae774e3bc">RedMatrix\Import\Import</a>
+</li>
<li>get_markup_template()
-: <a class="el" href="interfaceITemplateEngine.html#aaf2698adbf46c073c24b162fe1b1c442">ITemplateEngine</a>
+: <a class="el" href="classTemplate.html#afd97b4b1e7754a550e67c0ea79159059">Template</a>
+, <a class="el" href="interfaceITemplateEngine.html#aaf2698adbf46c073c24b162fe1b1c442">ITemplateEngine</a>
, <a class="el" href="classFriendicaSmartyEngine.html#aab5994077fc3a64222e41b28e2bd8d88">FriendicaSmartyEngine</a>
-, <a class="el" href="classTemplate.html#afd97b4b1e7754a550e67c0ea79159059">Template</a>
</li>
<li>get_mode()
: <a class="el" href="classConversation.html#a87a0d704d5f2b1a008cc2e9ce06a1bcd">Conversation</a>
</li>
+<li>get_null_date()
+: <a class="el" href="classdba__driver.html#a65a5c7b355ab5529a43049e160006426">dba_driver</a>
+</li>
<li>get_observer()
: <a class="el" href="classApp.html#a1ad3bb1b68439b3b7cbe630918e618d2">App</a>
, <a class="el" href="classConversation.html#ae3d4190142e12b57051f11f2911f77a0">Conversation</a>
@@ -240,6 +262,9 @@ $(document).ready(function(){initNavTree('functions_0x67.html','');});
<li>get_redirect_url()
: <a class="el" href="classItem.html#a428f448f89a8629055ea3294eb942aea">Item</a>
</li>
+<li>get_taxonomy()
+: <a class="el" href="classRedMatrix_1_1Import_1_1Import.html#ae3c6472bea1a44025bc2e152604eb20c">RedMatrix\Import\Import</a>
+</li>
<li>get_template()
: <a class="el" href="classItem.html#aba23a0a9d89e316d2b343cc46d695d91">Item</a>
</li>
@@ -263,22 +288,31 @@ $(document).ready(function(){initNavTree('functions_0x67.html','');});
: <a class="el" href="classApp.html#a871898becd0697d778f36d9336253ae8">App</a>
</li>
<li>getAssetUrl()
-: <a class="el" href="classRedBrowser.html#a87529b4988a7777b49616f5c0a1c55d3">RedBrowser</a>
+: <a class="el" href="classRedMatrix_1_1RedDAV_1_1RedBrowser.html#acaa792c08d24e9dc2919759e92ba037d">RedMatrix\RedDAV\RedBrowser</a>
</li>
<li>getChild()
-: <a class="el" href="classRedDirectory.html#aaa20f0f44da23781917af8170c0a2569">RedDirectory</a>
+: <a class="el" href="classRedMatrix_1_1RedDAV_1_1RedDirectory.html#a1a37850bdd1f188abd6160559698d5d7">RedMatrix\RedDAV\RedDirectory</a>
</li>
<li>getChildren()
-: <a class="el" href="classRedDirectory.html#aa42d3065f6f065b17db87146a7cb031a">RedDirectory</a>
+: <a class="el" href="classRedMatrix_1_1RedDAV_1_1RedDirectory.html#a9b9a0b5bfa4de1f78e6cafaa534b6f6a">RedMatrix\RedDAV\RedDirectory</a>
</li>
<li>getContentType()
-: <a class="el" href="classRedFile.html#a26416827eb68554d033d1e2e5cc6dd3b">RedFile</a>
+: <a class="el" href="classRedMatrix_1_1RedDAV_1_1RedFile.html#af5c88b75d0c1f590af03755534cb167e">RedMatrix\RedDAV\RedFile</a>
+</li>
+<li>getCurrentUser()
+: <a class="el" href="classRedMatrix_1_1RedDAV_1_1RedBasicAuth.html#aa0b2a5fa9186d7dc0e637f1ecb379c42">RedMatrix\RedDAV\RedBasicAuth</a>
</li>
<li>getDir()
-: <a class="el" href="classRedDirectory.html#a70173d4458572d95e586b2037d2fd2f4">RedDirectory</a>
+: <a class="el" href="classRedMatrix_1_1RedDAV_1_1RedDirectory.html#a825dc5f3e0f83f50736c16daa6a4809d">RedMatrix\RedDAV\RedDirectory</a>
+</li>
+<li>getdriver()
+: <a class="el" href="classdba__mysqli.html#a6eb6c578c6928908321e5e6da866e1db">dba_mysqli</a>
+, <a class="el" href="classdba__postgres.html#ae0f834413e57cf0735ae7b64b2f71e68">dba_postgres</a>
+, <a class="el" href="classdba__mysql.html#a31011edd67b6b394355bf04cedb498d0">dba_mysql</a>
+, <a class="el" href="classdba__driver.html#a02165fc4bee63d040ebd963a4fa82a14">dba_driver</a>
</li>
<li>getETag()
-: <a class="el" href="classRedFile.html#ae96d5caa2db7a461c57b24380fa87e28">RedFile</a>
+: <a class="el" href="classRedMatrix_1_1RedDAV_1_1RedFile.html#a9f14682acf3ccb70df5af5dd0687c689">RedMatrix\RedDAV\RedFile</a>
</li>
<li>getExt()
: <a class="el" href="classphoto__driver.html#aa2efb5b2a6af3fd67e3f1c2b9852a5ba">photo_driver</a>
@@ -288,22 +322,25 @@ $(document).ready(function(){initNavTree('functions_0x67.html','');});
</li>
<li>getImage()
: <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__imagick.html#ad07288e0eb3922cb08cc9d33a163decc">photo_imagick</a>
+, <a class="el" href="classphoto__driver.html#ab98da263bd7341fc132c4fb6fc76e8d5">photo_driver</a>
</li>
<li>getLastModified()
-: <a class="el" href="classRedDirectory.html#a6c7e08199abc24e6eeb94a4037ef8bfc">RedDirectory</a>
-, <a class="el" href="classRedFile.html#a41562a28007789bbe7fe06d6a20eef47">RedFile</a>
+: <a class="el" href="classRedMatrix_1_1RedDAV_1_1RedDirectory.html#a69db5f641f8f5dc999e55cee1832ecd5">RedMatrix\RedDAV\RedDirectory</a>
+, <a class="el" href="classRedMatrix_1_1RedDAV_1_1RedFile.html#ac47016aa0e3f6f1a1c4570bd6fd8cf25">RedMatrix\RedDAV\RedFile</a>
</li>
<li>getName()
-: <a class="el" href="classRedFile.html#a0c961c5f49544d2502420361fa526437">RedFile</a>
-, <a class="el" href="classRedDirectory.html#af6e4475dbd5abcdede00d20b8d388583">RedDirectory</a>
+: <a class="el" href="classRedMatrix_1_1RedDAV_1_1RedDirectory.html#a55f7172814a0749b5342f152ab3fa0df">RedMatrix\RedDAV\RedDirectory</a>
+, <a class="el" href="classRedMatrix_1_1RedDAV_1_1RedFile.html#ac945aa782d6c035d339e59974266ec4d">RedMatrix\RedDAV\RedFile</a>
</li>
<li>getQuotaInfo()
-: <a class="el" href="classRedDirectory.html#a2f7a574f2115f099d6dd103d5b252375">RedDirectory</a>
+: <a class="el" href="classRedMatrix_1_1RedDAV_1_1RedDirectory.html#a69db443ed3c84938b4352fe515bf8d68">RedMatrix\RedDAV\RedDirectory</a>
</li>
<li>getSize()
-: <a class="el" href="classRedFile.html#acb1edbe1848fab05347746fa1ea09d8f">RedFile</a>
+: <a class="el" href="classRedMatrix_1_1RedDAV_1_1RedFile.html#a07e1b19e7aaf3dcce822e9be8823a87d">RedMatrix\RedDAV\RedFile</a>
+</li>
+<li>getTimezone()
+: <a class="el" href="classRedMatrix_1_1RedDAV_1_1RedBasicAuth.html#a6333c8ce58998bd11bf8102afe3b0748">RedMatrix\RedDAV\RedBasicAuth</a>
</li>
<li>getType()
: <a class="el" href="classphoto__driver.html#a6c6c16dbc4f517ce799f9143ed61f0e3">photo_driver</a>
diff --git a/doc/html/functions_0x68.html b/doc/html/functions_0x68.html
index 5a61a6a4c..221892d5e 100644
--- a/doc/html/functions_0x68.html
+++ b/doc/html/functions_0x68.html
@@ -147,7 +147,7 @@ $(document).ready(function(){initNavTree('functions_0x68.html','');});
: <a class="el" href="classApp.html#a8863703a0305eaa45eb970dbd2046291">App</a>
</li>
<li>htmlActionsPanel()
-: <a class="el" href="classRedBrowser.html#a7f6bf0bda07833f4c647557bd172e349">RedBrowser</a>
+: <a class="el" href="classRedMatrix_1_1RedDAV_1_1RedBrowser.html#a3bd98af2d1cdfd8f26deb914596176cf">RedMatrix\RedDAV\RedBrowser</a>
</li>
</ul>
</div><!-- contents -->
diff --git a/doc/html/functions_0x69.html b/doc/html/functions_0x69.html
index 5c919b259..3d44a81a4 100644
--- a/doc/html/functions_0x69.html
+++ b/doc/html/functions_0x69.html
@@ -148,9 +148,13 @@ $(document).ready(function(){initNavTree('functions_0x69.html','');});
<li>install()
: <a class="el" href="classdba__driver.html#a4ccb27243e62a8ca30dd8e1b8cc67746">dba_driver</a>
</li>
+<li>INSTALL_SCRIPT
+: <a class="el" href="classdba__driver.html#a98d8523dcedda316085b4d4f856b6583">dba_driver</a>
+, <a class="el" href="classdba__postgres.html#a7267f91c3f87f600b30d7560de62dfd7">dba_postgres</a>
+</li>
<li>is_commentable()
-: <a class="el" href="classConversation.html#a8b47c92b69459d461ea3cc9aae9597a3">Conversation</a>
-, <a class="el" href="classItem.html#ac04525a8be24c12b0a2ae4ca1ba4b967">Item</a>
+: <a class="el" href="classItem.html#ac04525a8be24c12b0a2ae4ca1ba4b967">Item</a>
+, <a class="el" href="classConversation.html#a8b47c92b69459d461ea3cc9aae9597a3">Conversation</a>
</li>
<li>is_preview()
: <a class="el" href="classConversation.html#adf25ce023b69a166c63c6e84e02c136a">Conversation</a>
diff --git a/doc/html/functions_0x6c.html b/doc/html/functions_0x6c.html
index c032d01b6..97abf9ab9 100644
--- a/doc/html/functions_0x6c.html
+++ b/doc/html/functions_0x6c.html
@@ -146,8 +146,8 @@ $(document).ready(function(){initNavTree('functions_0x6c.html','');});
, <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>
+: <a class="el" href="classRedMatrix_1_1RedDAV_1_1RedBasicAuth.html#abf6fe89b0a8239ed93c3b07e1fbce75b">RedMatrix\RedDAV\RedBasicAuth</a>
+, <a class="el" href="classRedMatrix_1_1RedDAV_1_1RedDirectory.html#af90a1a74cfd643a5c56b9a17ea250d59">RedMatrix\RedDAV\RedDirectory</a>
</li>
<li>loginUser()
: <a class="el" href="classFKOAuth1.html#a2b1dac2ed31fc6ef84668afdda8b263f">FKOAuth1</a>
diff --git a/doc/html/functions_0x6e.html b/doc/html/functions_0x6e.html
index 72fb064ff..5fde22d13 100644
--- a/doc/html/functions_0x6e.html
+++ b/doc/html/functions_0x6e.html
@@ -146,6 +146,10 @@ $(document).ready(function(){initNavTree('functions_0x6e.html','');});
<li>new_request_token()
: <a class="el" href="classFKOAuthDataStore.html#a431b44d70e3da6a8256ab38f710e3050">FKOAuthDataStore</a>
</li>
+<li>NULL_DATE
+: <a class="el" href="classdba__driver.html#afce39394c010ea589d99a21579b2c31e">dba_driver</a>
+, <a class="el" href="classdba__postgres.html#aeb404a85974d6c5df30c21650888000b">dba_postgres</a>
+</li>
</ul>
</div><!-- contents -->
</div><!-- doc-content -->
diff --git a/doc/html/functions_0x6f.html b/doc/html/functions_0x6f.html
index cff96e18b..0d3b556fc 100644
--- a/doc/html/functions_0x6f.html
+++ b/doc/html/functions_0x6f.html
@@ -140,6 +140,10 @@ $(document).ready(function(){initNavTree('functions_0x6f.html','');});
<div class="textblock">Here is a list of all class members with links to the classes they belong to:</div>
<h3><a class="anchor" id="index_o"></a>- o -</h3><ul>
+<li>optimize_table()
+: <a class="el" href="classdba__driver.html#a77e59dcbeab30ca6000131d2e9ad4092">dba_driver</a>
+, <a class="el" href="classdba__postgres.html#a3de1ac375e98886dfc38fd0066e88f90">dba_postgres</a>
+</li>
<li>orient()
: <a class="el" href="classphoto__driver.html#a4de5bac8daea8f291a33c80788019d0d">photo_driver</a>
</li>
diff --git a/doc/html/functions_0x70.html b/doc/html/functions_0x70.html
index 543a28bda..f67e4b87b 100644
--- a/doc/html/functions_0x70.html
+++ b/doc/html/functions_0x70.html
@@ -144,7 +144,7 @@ $(document).ready(function(){initNavTree('functions_0x70.html','');});
: <a class="el" href="classFriendicaSmarty.html#a6a4d4281d6fa9be1d37a97b188ffe8c9">FriendicaSmarty</a>
</li>
<li>put()
-: <a class="el" href="classRedFile.html#a41a49a583eb276b75626fcf97f4a699c">RedFile</a>
+: <a class="el" href="classRedMatrix_1_1RedDAV_1_1RedFile.html#a709ec1288d21ddf1353524435ab916f0">RedMatrix\RedDAV\RedFile</a>
</li>
</ul>
</div><!-- contents -->
diff --git a/doc/html/functions_0x71.html b/doc/html/functions_0x71.html
index 0fc0b0367..3419cc601 100644
--- a/doc/html/functions_0x71.html
+++ b/doc/html/functions_0x71.html
@@ -142,8 +142,13 @@ $(document).ready(function(){initNavTree('functions_0x71.html','');});
<h3><a class="anchor" id="index_q"></a>- q -</h3><ul>
<li>q()
: <a class="el" href="classdba__driver.html#a558e738b88ae893cc5d79ffa3793d555">dba_driver</a>
-, <a class="el" href="classdba__mysqli.html#a611c4de8d6d7512dffb83a38bb6701ec">dba_mysqli</a>
, <a class="el" href="classdba__mysql.html#ac3fd60c278f400907322dac578754a99">dba_mysql</a>
+, <a class="el" href="classdba__postgres.html#a70352880231fba0b859f82cd5b290a9a">dba_postgres</a>
+, <a class="el" href="classdba__mysqli.html#a611c4de8d6d7512dffb83a38bb6701ec">dba_mysqli</a>
+</li>
+<li>quote_interval()
+: <a class="el" href="classdba__postgres.html#a56f926f218155c88807e0e06f6817a72">dba_postgres</a>
+, <a class="el" href="classdba__driver.html#ac9127e9c55fcc93bcfbb323b9b99b9d9">dba_driver</a>
</li>
</ul>
</div><!-- contents -->
diff --git a/doc/html/functions_0x72.html b/doc/html/functions_0x72.html
index 3080f08d4..d840367ff 100644
--- a/doc/html/functions_0x72.html
+++ b/doc/html/functions_0x72.html
@@ -153,14 +153,17 @@ $(document).ready(function(){initNavTree('functions_0x72.html','');});
: <a class="el" href="classTemplate.html#a285b5b2007dbbf733476273df3fed4ef">Template</a>
</li>
<li>replace_macros()
-: <a class="el" href="classTemplate.html#a07737733f6949bdedea1e3d301b2ab7b">Template</a>
-, <a class="el" href="interfaceITemplateEngine.html#aaa7381c8becc3d1c1790b53988a0f243">ITemplateEngine</a>
+: <a class="el" href="interfaceITemplateEngine.html#aaa7381c8becc3d1c1790b53988a0f243">ITemplateEngine</a>
+, <a class="el" href="classTemplate.html#a07737733f6949bdedea1e3d301b2ab7b">Template</a>
, <a class="el" href="classFriendicaSmartyEngine.html#ad62f1181d2f02b54b46731ad2bd46db2">FriendicaSmartyEngine</a>
</li>
<li>rotate()
-: <a class="el" href="classphoto__imagick.html#a9df5738a4a18e76dd304c440e96f045f">photo_imagick</a>
+: <a class="el" href="classphoto__gd.html#a77f87730b11093b76980c541159df37d">photo_gd</a>
, <a class="el" href="classphoto__driver.html#a2f2b6337cf9aa0688d10b422123f0eec">photo_driver</a>
-, <a class="el" href="classphoto__gd.html#a77f87730b11093b76980c541159df37d">photo_gd</a>
+, <a class="el" href="classphoto__imagick.html#a9df5738a4a18e76dd304c440e96f045f">photo_imagick</a>
+</li>
+<li>run()
+: <a class="el" href="classRedMatrix_1_1Import_1_1Import.html#a8d138a9a7d4f79b81d3446ca216a602c">RedMatrix\Import\Import</a>
</li>
</ul>
</div><!-- contents -->
diff --git a/doc/html/functions_0x73.html b/doc/html/functions_0x73.html
index aea19c463..49d226ca8 100644
--- a/doc/html/functions_0x73.html
+++ b/doc/html/functions_0x73.html
@@ -182,6 +182,9 @@ $(document).ready(function(){initNavTree('functions_0x73.html','');});
<li>set_conversation()
: <a class="el" href="classItem.html#aa8b1bbc4236890694635295e46d7fd72">Item</a>
</li>
+<li>set_display_mode()
+: <a class="el" href="classItem.html#ac09a4728d37b7783714243f7f8167214">Item</a>
+</li>
<li>set_groups()
: <a class="el" href="classApp.html#a3d84af5e42082098672531cd1a618853">App</a>
</li>
@@ -222,30 +225,37 @@ $(document).ready(function(){initNavTree('functions_0x73.html','');});
: <a class="el" href="classApp.html#a123b903dfe5d3488cc68db3471d36fd2">App</a>
</li>
<li>set_writeable()
-: <a class="el" href="classRedBrowser.html#a40fdbb9d9fe6c1243bbf135dd5b0a06f">RedBrowser</a>
+: <a class="el" href="classRedMatrix_1_1RedDAV_1_1RedBrowser.html#aa1607857cb59738c4dce2fe8e73d8f19">RedMatrix\RedDAV\RedBrowser</a>
+</li>
+<li>setAuthenticated()
+: <a class="el" href="classRedMatrix_1_1RedDAV_1_1RedBasicAuth.html#a2926fe923baade564f2663632fa8c633">RedMatrix\RedDAV\RedBasicAuth</a>
</li>
<li>setBrowserPlugin()
-: <a class="el" href="classRedBasicAuth.html#a358ddad4abb5aa8c1382cf49a907adbc">RedBasicAuth</a>
+: <a class="el" href="classRedMatrix_1_1RedDAV_1_1RedBasicAuth.html#adc72f36f0b2b17b20ea4df900afcd697">RedMatrix\RedDAV\RedBasicAuth</a>
</li>
<li>setCurrentUser()
-: <a class="el" href="classRedBasicAuth.html#a072e8244a9a7f191b32d3db5ac94f857">RedBasicAuth</a>
+: <a class="el" href="classRedMatrix_1_1RedDAV_1_1RedBasicAuth.html#aadce020fb595c7943829d7f995d3f998">RedMatrix\RedDAV\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>
-, <a class="el" href="classphoto__driver.html#ae663867d2c4eaa2fae50d60670920143">photo_driver</a>
+, <a class="el" href="classphoto__gd.html#a1c75304bd15f3b9986f0b315fb59271e">photo_gd</a>
</li>
<li>setName()
-: <a class="el" href="classRedDirectory.html#adc48035679e52c55d9881f83de535553">RedDirectory</a>
-, <a class="el" href="classRedFile.html#a38a82bfc1b30028ea6ac75923e90fa25">RedFile</a>
+: <a class="el" href="classRedMatrix_1_1RedDAV_1_1RedDirectory.html#a14ac61d31a031d139956763db4e03956">RedMatrix\RedDAV\RedDirectory</a>
+, <a class="el" href="classRedMatrix_1_1RedDAV_1_1RedFile.html#a0350cb4e0327e1f9922869a48ee04f1d">RedMatrix\RedDAV\RedFile</a>
+</li>
+<li>setTimezone()
+: <a class="el" href="classRedMatrix_1_1RedDAV_1_1RedBasicAuth.html#af6d239fefed05859327ee8db626703f9">RedMatrix\RedDAV\RedBasicAuth</a>
</li>
<li>store()
-: <a class="el" href="classphoto__driver.html#a642a8d0c4ad5f887c99c6af77cee287b">photo_driver</a>
+: <a class="el" href="classRedMatrix_1_1Import_1_1Import.html#a33ed595de044c0ec1cd84cca719e31dc">RedMatrix\Import\Import</a>
+, <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_0x75.html b/doc/html/functions_0x75.html
index be02f7916..69f595432 100644
--- a/doc/html/functions_0x75.html
+++ b/doc/html/functions_0x75.html
@@ -140,8 +140,19 @@ $(document).ready(function(){initNavTree('functions_0x75.html','');});
<div class="textblock">Here is a list of all class members with links to the classes they belong to:</div>
<h3><a class="anchor" id="index_u"></a>- u -</h3><ul>
+<li>unescapebin()
+: <a class="el" href="classdba__driver.html#ab43184239e1d6eb00a98319f4a3df155">dba_driver</a>
+, <a class="el" href="classdba__postgres.html#a677f850211975c9ab89602c67e2dcad9">dba_postgres</a>
+</li>
<li>userReadableSize()
-: <a class="el" href="classRedBrowser.html#ad3418b8ccad42a1ef4ad0079e15b2e64">RedBrowser</a>
+: <a class="el" href="classRedMatrix_1_1RedDAV_1_1RedBrowser.html#a242ce69a2fe5a5fdf9c2b8d3954accfd">RedMatrix\RedDAV\RedBrowser</a>
+</li>
+<li>UTC_NOW
+: <a class="el" href="classdba__driver.html#aa3325d982d4ee5d1114fd7e02a4356e8">dba_driver</a>
+, <a class="el" href="classdba__postgres.html#ace80a204e34b20b9907650399cce02a3">dba_postgres</a>
+</li>
+<li>utcnow()
+: <a class="el" href="classdba__driver.html#ad700712879719bee23752b8f424d97d0">dba_driver</a>
</li>
</ul>
</div><!-- contents -->
diff --git a/doc/html/functions_0x76.html b/doc/html/functions_0x76.html
index 04dc1bc4f..7e530d4a2 100644
--- a/doc/html/functions_0x76.html
+++ b/doc/html/functions_0x76.html
@@ -141,7 +141,7 @@ $(document).ready(function(){initNavTree('functions_0x76.html','');});
<h3><a class="anchor" id="index_v"></a>- v -</h3><ul>
<li>validateUserPass()
-: <a class="el" href="classRedBasicAuth.html#a8dfd9a0953f8884723b421b7c1acf79b">RedBasicAuth</a>
+: <a class="el" href="classRedMatrix_1_1RedDAV_1_1RedBasicAuth.html#a6ece02655b780469e59e204c5979a624">RedMatrix\RedDAV\RedBasicAuth</a>
</li>
<li>var_replace()
: <a class="el" href="classTemplate.html#abbc484016ddf5d818f55b823cae6feb0">Template</a>
diff --git a/doc/html/functions_func.html b/doc/html/functions_func.html
index 2ffb3fe6d..14866baca 100644
--- a/doc/html/functions_func.html
+++ b/doc/html/functions_func.html
@@ -143,14 +143,14 @@ $(document).ready(function(){initNavTree('functions_func.html','');});
: <a class="el" href="classApp.html#af6d39f63fb7116bbeb04e51696f99474">App</a>
, <a class="el" href="classConversation.html#af84ea6ccd72214c9bb4c504461cc8b09">Conversation</a>
, <a class="el" href="classItem.html#a248f45871ecfe82a08d1d4c0769b2eb2">Item</a>
-, <a class="el" href="classRedFile.html#a9a67bdb34c9db6ce144b3f371148b183">RedFile</a>
-, <a class="el" href="classRedBrowser.html#a4b76be9ccef0262cf78fffb4129eda93">RedBrowser</a>
+, <a class="el" href="classRedMatrix_1_1RedDAV_1_1RedDirectory.html#a76b58fe5223e565c97f1b9af93031a99">RedMatrix\RedDAV\RedDirectory</a>
+, <a class="el" href="classRedMatrix_1_1RedDAV_1_1RedFile.html#a05798eac84c578152ff21758261c6ac6">RedMatrix\RedDAV\RedFile</a>
, <a class="el" href="classFKOAuth1.html#a2f1276872329a6f0b704ccda1a4b9fa6">FKOAuth1</a>
, <a class="el" href="classFriendicaSmarty.html#af12091b920b95eeef1218cbc48066ca6">FriendicaSmarty</a>
, <a class="el" href="classFriendicaSmartyEngine.html#ab7c305bd8c386c2944e4dc9136cea5b6">FriendicaSmartyEngine</a>
, <a class="el" href="classdba__driver.html#af3541d13ccb7a3eddfc03e253c746186">dba_driver</a>
, <a class="el" href="classphoto__driver.html#ac6e85f8e507cab4e755ed7acdec401ae">photo_driver</a>
-, <a class="el" href="classRedDirectory.html#a1e35e3cd31d2a15250655e4cafdea180">RedDirectory</a>
+, <a class="el" href="classRedMatrix_1_1RedDAV_1_1RedBrowser.html#a8161f2a0be205412e263c947b5ec46c5">RedMatrix\RedDAV\RedBrowser</a>
</li>
<li>__destruct()
: <a class="el" href="classdba__driver.html#a1a8bc9dc839a6320a0e07d8047a6b721">dba_driver</a>
diff --git a/doc/html/functions_func_0x63.html b/doc/html/functions_func_0x63.html
index 349a68589..4c98531a6 100644
--- a/doc/html/functions_func_0x63.html
+++ b/doc/html/functions_func_0x63.html
@@ -147,13 +147,14 @@ $(document).ready(function(){initNavTree('functions_func_0x63.html','');});
: <a class="el" href="classItem.html#abcdb0ea9bcd1576bc99bba9b8f700bb8">Item</a>
</li>
<li>childExists()
-: <a class="el" href="classRedDirectory.html#a5e3fc08b2bf9f61cea4d2ccae0495bec">RedDirectory</a>
+: <a class="el" href="classRedMatrix_1_1RedDAV_1_1RedDirectory.html#a964b13fde1a5da6f76b51ca5519234dc">RedMatrix\RedDAV\RedDirectory</a>
</li>
<li>clear()
: <a class="el" href="classCache.html#ab14d0f4bdf7116a94d545c574b38f568">Cache</a>
</li>
<li>close()
: <a class="el" href="classdba__mysqli.html#acb38f2c851187ad632ecfab30fdfab55">dba_mysqli</a>
+, <a class="el" href="classdba__postgres.html#a731d8648b41b8a126f6b99bdd5414058">dba_postgres</a>
, <a class="el" href="classdba__driver.html#a5afa54172f3c837df61643f8f5b2c975">dba_driver</a>
, <a class="el" href="classdba__mysql.html#a850586714ef897bd25f643c89b4ef76e">dba_mysql</a>
</li>
@@ -165,24 +166,41 @@ $(document).ready(function(){initNavTree('functions_func_0x63.html','');});
: <a class="el" href="classProtoDriver.html#af66171aa7dab9b62cee915cb4f1abe1b">ProtoDriver</a>
, <a class="el" href="classZotDriver.html#a2e15ff09772f0608203dad1c98299394">ZotDriver</a>
</li>
+<li>concat()
+: <a class="el" href="classdba__driver.html#ab9982f38a02f008b127a0f3ccc1e99f4">dba_driver</a>
+, <a class="el" href="classdba__postgres.html#a7ea3f24ad260c1e21588f8b5af595caa">dba_postgres</a>
+</li>
<li>connect()
: <a class="el" href="classdba__driver.html#ae533e62a240a793f17aef5ab4ef10edc">dba_driver</a>
-, <a class="el" href="classdba__mysqli.html#add062bd93961e5f0194d94820e9a51b1">dba_mysqli</a>
, <a class="el" href="classdba__mysql.html#a1887338627ce0e28786839363014bd0b">dba_mysql</a>
+, <a class="el" href="classdba__mysqli.html#add062bd93961e5f0194d94820e9a51b1">dba_mysqli</a>
+, <a class="el" href="classdba__postgres.html#ab36244320f5b71dba92d9318ccf3f34e">dba_postgres</a>
+</li>
+<li>convert_child()
+: <a class="el" href="classRedMatrix_1_1Import_1_1Import.html#a5434325afb2c633c52540127d717800a">RedMatrix\Import\Import</a>
+</li>
+<li>convert_item()
+: <a class="el" href="classRedMatrix_1_1Import_1_1Import.html#a107703a43a1b0ceb2af7ae470cb3f218">RedMatrix\Import\Import</a>
+</li>
+<li>convert_taxonomy()
+: <a class="el" href="classRedMatrix_1_1Import_1_1Import.html#addf6e53dacd971eaab49be4b17a767d6">RedMatrix\Import\Import</a>
</li>
<li>count_descendants()
: <a class="el" href="classItem.html#aca1e66988ed00cd627b2a359b72cd0ae">Item</a>
</li>
+<li>count_unseen_descendants()
+: <a class="el" href="classItem.html#ae0c48b2fed5558642549cabd547fc4f3">Item</a>
+</li>
<li>createDirectory()
-: <a class="el" href="classRedDirectory.html#a986936910f0216887a25e28916c166c7">RedDirectory</a>
+: <a class="el" href="classRedMatrix_1_1RedDAV_1_1RedDirectory.html#aca0e8d574ea66a0e210f571700663c62">RedMatrix\RedDAV\RedDirectory</a>
</li>
<li>createFile()
-: <a class="el" href="classRedDirectory.html#a2d12d99d38a6a75fc9a830b2f7fc0bf0">RedDirectory</a>
+: <a class="el" href="classRedMatrix_1_1RedDAV_1_1RedDirectory.html#a58e750256cdc2f0f79fbe8d5463ffefe">RedMatrix\RedDAV\RedDirectory</a>
</li>
<li>cropImage()
: <a class="el" href="classphoto__driver.html#a2e6e61f1e356a90bc978f4404a77137e">photo_driver</a>
-, <a class="el" href="classphoto__gd.html#ab2232d775c8bacf66773a03308105f0c">photo_gd</a>
, <a class="el" href="classphoto__imagick.html#a2f33a03a89497a2b2768e29736d4a8a4">photo_imagick</a>
+, <a class="el" href="classphoto__gd.html#ab2232d775c8bacf66773a03308105f0c">photo_gd</a>
</li>
</ul>
</div><!-- contents -->
diff --git a/doc/html/functions_func_0x64.html b/doc/html/functions_func_0x64.html
index a44648c78..4470d1ada 100644
--- a/doc/html/functions_func_0x64.html
+++ b/doc/html/functions_func_0x64.html
@@ -143,7 +143,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="classRedFile.html#aef71c9eaac7052be7dc8602eb12171e7">RedFile</a>
+: <a class="el" href="classRedMatrix_1_1RedDAV_1_1RedFile.html#ab7ab7ba81fab28eb02382cfdfd80ecfe">RedMatrix\RedDAV\RedFile</a>
</li>
<li>deliver()
: <a class="el" href="classZotDriver.html#a876e3e0e4cad83c0b58c8696b344be6f">ZotDriver</a>
diff --git a/doc/html/functions_func_0x65.html b/doc/html/functions_func_0x65.html
index 2add8b68a..8fa81466f 100644
--- a/doc/html/functions_func_0x65.html
+++ b/doc/html/functions_func_0x65.html
@@ -141,8 +141,16 @@ $(document).ready(function(){initNavTree('functions_func_0x65.html','');});
<h3><a class="anchor" id="index_e"></a>- e -</h3><ul>
<li>escape()
: <a class="el" href="classdba__driver.html#afc95ffa103a3290581b537670cde5311">dba_driver</a>
-, <a class="el" href="classdba__mysqli.html#a27d6a748af7f80028801306e7ea33f64">dba_mysqli</a>
, <a class="el" href="classdba__mysql.html#a99a7691ea6cb1300031fb6549379066e">dba_mysql</a>
+, <a class="el" href="classdba__postgres.html#a7108eaaae7cc2fb236212041afc9ac0f">dba_postgres</a>
+, <a class="el" href="classdba__mysqli.html#a27d6a748af7f80028801306e7ea33f64">dba_mysqli</a>
+</li>
+<li>escape_identifier()
+: <a class="el" href="classdba__postgres.html#ab2e44e9f41d05e585afd873d18e8c127">dba_postgres</a>
+</li>
+<li>escapebin()
+: <a class="el" href="classdba__driver.html#a7dbe8318587ff1694825042bf58f4fbd">dba_driver</a>
+, <a class="el" href="classdba__postgres.html#a8d2c6d8c92fe6f074452876483dd17fc">dba_postgres</a>
</li>
</ul>
</div><!-- contents -->
diff --git a/doc/html/functions_func_0x66.html b/doc/html/functions_func_0x66.html
index fe8b7eaa1..cb6652bdd 100644
--- a/doc/html/functions_func_0x66.html
+++ b/doc/html/functions_func_0x66.html
@@ -140,10 +140,10 @@ $(document).ready(function(){initNavTree('functions_func_0x66.html','');});
<h3><a class="anchor" id="index_f"></a>- f -</h3><ul>
<li>findAttachHash()
-: <a class="el" href="classRedBrowser.html#ae4edd4e10c709e2624c1aeb47b0440c5">RedBrowser</a>
+: <a class="el" href="classRedMatrix_1_1RedDAV_1_1RedBrowser.html#ad4bc0516533c62733f38043a37267d78">RedMatrix\RedDAV\RedBrowser</a>
</li>
<li>findAttachIdByHash()
-: <a class="el" href="classRedBrowser.html#a20d81230645ddca08a88bfd9ea9f88f1">RedBrowser</a>
+: <a class="el" href="classRedMatrix_1_1RedDAV_1_1RedBrowser.html#a0733e38e254474d9a456825e72f1ddfd">RedMatrix\RedDAV\RedBrowser</a>
</li>
<li>flip()
: <a class="el" href="classphoto__gd.html#a44cedef376044018702d9355ddc813ce">photo_gd</a>
diff --git a/doc/html/functions_func_0x67.html b/doc/html/functions_func_0x67.html
index 695e8c912..ee6f7d6fc 100644
--- a/doc/html/functions_func_0x67.html
+++ b/doc/html/functions_func_0x67.html
@@ -143,10 +143,10 @@ $(document).ready(function(){initNavTree('functions_func_0x67.html','');});
: <a class="el" href="classFKOAuthDataStore.html#aa1a268be88ad3979bb4cc35bbb4dc819">FKOAuthDataStore</a>
</li>
<li>generateDirectoryIndex()
-: <a class="el" href="classRedBrowser.html#a1f7daf50bb9bfcde7345b3b1908dbd7e">RedBrowser</a>
+: <a class="el" href="classRedMatrix_1_1RedDAV_1_1RedBrowser.html#af764d5f14df751f9ec86c34fab300c09">RedMatrix\RedDAV\RedBrowser</a>
</li>
<li>get()
-: <a class="el" href="classRedFile.html#a7c868dfcef6c70cd0e24cf3caa2c3535">RedFile</a>
+: <a class="el" href="classRedMatrix_1_1RedDAV_1_1RedFile.html#a7241beecd01f5bb4e74659863dd85bd8">RedMatrix\RedDAV\RedFile</a>
, <a class="el" href="classCache.html#a70392b109331897bf9fdd7f1960e21de">Cache</a>
</li>
<li>get_account()
@@ -168,7 +168,8 @@ $(document).ready(function(){initNavTree('functions_func_0x67.html','');});
: <a class="el" href="classItem.html#a632185dd25c5caf277067c76230a4320">Item</a>
</li>
<li>get_children()
-: <a class="el" href="classItem.html#aa0ee775ec94abccec6c798428835d001">Item</a>
+: <a class="el" href="classRedMatrix_1_1Import_1_1Import.html#a57561904b0f127e0d9a3e2c33688daf8">RedMatrix\Import\Import</a>
+, <a class="el" href="classItem.html#aa0ee775ec94abccec6c798428835d001">Item</a>
</li>
<li>get_cipher()
: <a class="el" href="classConversation.html#a4aab60bb39fa6761b6cacdc8d9da2901">Conversation</a>
@@ -182,12 +183,18 @@ $(document).ready(function(){initNavTree('functions_func_0x67.html','');});
<li>get_conversation()
: <a class="el" href="classItem.html#a0c301aaed2b7d682728d18db3a22afa3">Item</a>
</li>
+<li>get_credentials()
+: <a class="el" href="classRedMatrix_1_1Import_1_1Import.html#a24134929d9a8a682da2036a0bf326367">RedMatrix\Import\Import</a>
+</li>
<li>get_data()
: <a class="el" href="classItem.html#ad3638f93065693c1f69eb349feb1b7aa">Item</a>
</li>
<li>get_data_value()
: <a class="el" href="classItem.html#ac6f1c96cc82a0dfb7e881fc70309ea3c">Item</a>
</li>
+<li>get_display_mode()
+: <a class="el" href="classItem.html#a23d4057883f8ed888c0c2ff12d8aa5d0">Item</a>
+</li>
<li>get_FormatsMap()
: <a class="el" href="classphoto__imagick.html#aef020d929f66f4370e33fc158c8eebd4">photo_imagick</a>
</li>
@@ -200,17 +207,32 @@ $(document).ready(function(){initNavTree('functions_func_0x67.html','');});
<li>get_id()
: <a class="el" href="classItem.html#ac0f27e58532612f6e7a54c8a621b9b92">Item</a>
</li>
+<li>get_install_script()
+: <a class="el" href="classdba__driver.html#a8d6a79d39d7eaee5aea4e952c4529d48">dba_driver</a>
+</li>
<li>get_intltext_template()
: <a class="el" href="classFriendicaSmartyEngine.html#a35ec0ee828c36640ea25296bcb84a118">FriendicaSmartyEngine</a>
</li>
+<li>get_item()
+: <a class="el" href="classRedMatrix_1_1Import_1_1Import.html#a27987a41cb703a796f1821baeb4774a2">RedMatrix\Import\Import</a>
+</li>
+<li>get_item_ident()
+: <a class="el" href="classRedMatrix_1_1Import_1_1Import.html#a772c28edf36aaf8e66007a95004c4059">RedMatrix\Import\Import</a>
+</li>
+<li>get_itemlist()
+: <a class="el" href="classRedMatrix_1_1Import_1_1Import.html#a855cd5a79b95d269ae8737fae774e3bc">RedMatrix\Import\Import</a>
+</li>
<li>get_markup_template()
-: <a class="el" href="interfaceITemplateEngine.html#aaf2698adbf46c073c24b162fe1b1c442">ITemplateEngine</a>
+: <a class="el" href="classTemplate.html#afd97b4b1e7754a550e67c0ea79159059">Template</a>
+, <a class="el" href="interfaceITemplateEngine.html#aaf2698adbf46c073c24b162fe1b1c442">ITemplateEngine</a>
, <a class="el" href="classFriendicaSmartyEngine.html#aab5994077fc3a64222e41b28e2bd8d88">FriendicaSmartyEngine</a>
-, <a class="el" href="classTemplate.html#afd97b4b1e7754a550e67c0ea79159059">Template</a>
</li>
<li>get_mode()
: <a class="el" href="classConversation.html#a87a0d704d5f2b1a008cc2e9ce06a1bcd">Conversation</a>
</li>
+<li>get_null_date()
+: <a class="el" href="classdba__driver.html#a65a5c7b355ab5529a43049e160006426">dba_driver</a>
+</li>
<li>get_observer()
: <a class="el" href="classApp.html#a1ad3bb1b68439b3b7cbe630918e618d2">App</a>
, <a class="el" href="classConversation.html#ae3d4190142e12b57051f11f2911f77a0">Conversation</a>
@@ -239,6 +261,9 @@ $(document).ready(function(){initNavTree('functions_func_0x67.html','');});
<li>get_redirect_url()
: <a class="el" href="classItem.html#a428f448f89a8629055ea3294eb942aea">Item</a>
</li>
+<li>get_taxonomy()
+: <a class="el" href="classRedMatrix_1_1Import_1_1Import.html#ae3c6472bea1a44025bc2e152604eb20c">RedMatrix\Import\Import</a>
+</li>
<li>get_template()
: <a class="el" href="classItem.html#aba23a0a9d89e316d2b343cc46d695d91">Item</a>
</li>
@@ -262,22 +287,31 @@ $(document).ready(function(){initNavTree('functions_func_0x67.html','');});
: <a class="el" href="classApp.html#a871898becd0697d778f36d9336253ae8">App</a>
</li>
<li>getAssetUrl()
-: <a class="el" href="classRedBrowser.html#a87529b4988a7777b49616f5c0a1c55d3">RedBrowser</a>
+: <a class="el" href="classRedMatrix_1_1RedDAV_1_1RedBrowser.html#acaa792c08d24e9dc2919759e92ba037d">RedMatrix\RedDAV\RedBrowser</a>
</li>
<li>getChild()
-: <a class="el" href="classRedDirectory.html#aaa20f0f44da23781917af8170c0a2569">RedDirectory</a>
+: <a class="el" href="classRedMatrix_1_1RedDAV_1_1RedDirectory.html#a1a37850bdd1f188abd6160559698d5d7">RedMatrix\RedDAV\RedDirectory</a>
</li>
<li>getChildren()
-: <a class="el" href="classRedDirectory.html#aa42d3065f6f065b17db87146a7cb031a">RedDirectory</a>
+: <a class="el" href="classRedMatrix_1_1RedDAV_1_1RedDirectory.html#a9b9a0b5bfa4de1f78e6cafaa534b6f6a">RedMatrix\RedDAV\RedDirectory</a>
</li>
<li>getContentType()
-: <a class="el" href="classRedFile.html#a26416827eb68554d033d1e2e5cc6dd3b">RedFile</a>
+: <a class="el" href="classRedMatrix_1_1RedDAV_1_1RedFile.html#af5c88b75d0c1f590af03755534cb167e">RedMatrix\RedDAV\RedFile</a>
+</li>
+<li>getCurrentUser()
+: <a class="el" href="classRedMatrix_1_1RedDAV_1_1RedBasicAuth.html#aa0b2a5fa9186d7dc0e637f1ecb379c42">RedMatrix\RedDAV\RedBasicAuth</a>
</li>
<li>getDir()
-: <a class="el" href="classRedDirectory.html#a70173d4458572d95e586b2037d2fd2f4">RedDirectory</a>
+: <a class="el" href="classRedMatrix_1_1RedDAV_1_1RedDirectory.html#a825dc5f3e0f83f50736c16daa6a4809d">RedMatrix\RedDAV\RedDirectory</a>
+</li>
+<li>getdriver()
+: <a class="el" href="classdba__mysqli.html#a6eb6c578c6928908321e5e6da866e1db">dba_mysqli</a>
+, <a class="el" href="classdba__postgres.html#ae0f834413e57cf0735ae7b64b2f71e68">dba_postgres</a>
+, <a class="el" href="classdba__mysql.html#a31011edd67b6b394355bf04cedb498d0">dba_mysql</a>
+, <a class="el" href="classdba__driver.html#a02165fc4bee63d040ebd963a4fa82a14">dba_driver</a>
</li>
<li>getETag()
-: <a class="el" href="classRedFile.html#ae96d5caa2db7a461c57b24380fa87e28">RedFile</a>
+: <a class="el" href="classRedMatrix_1_1RedDAV_1_1RedFile.html#a9f14682acf3ccb70df5af5dd0687c689">RedMatrix\RedDAV\RedFile</a>
</li>
<li>getExt()
: <a class="el" href="classphoto__driver.html#aa2efb5b2a6af3fd67e3f1c2b9852a5ba">photo_driver</a>
@@ -287,22 +321,25 @@ $(document).ready(function(){initNavTree('functions_func_0x67.html','');});
</li>
<li>getImage()
: <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__imagick.html#ad07288e0eb3922cb08cc9d33a163decc">photo_imagick</a>
+, <a class="el" href="classphoto__driver.html#ab98da263bd7341fc132c4fb6fc76e8d5">photo_driver</a>
</li>
<li>getLastModified()
-: <a class="el" href="classRedDirectory.html#a6c7e08199abc24e6eeb94a4037ef8bfc">RedDirectory</a>
-, <a class="el" href="classRedFile.html#a41562a28007789bbe7fe06d6a20eef47">RedFile</a>
+: <a class="el" href="classRedMatrix_1_1RedDAV_1_1RedDirectory.html#a69db5f641f8f5dc999e55cee1832ecd5">RedMatrix\RedDAV\RedDirectory</a>
+, <a class="el" href="classRedMatrix_1_1RedDAV_1_1RedFile.html#ac47016aa0e3f6f1a1c4570bd6fd8cf25">RedMatrix\RedDAV\RedFile</a>
</li>
<li>getName()
-: <a class="el" href="classRedFile.html#a0c961c5f49544d2502420361fa526437">RedFile</a>
-, <a class="el" href="classRedDirectory.html#af6e4475dbd5abcdede00d20b8d388583">RedDirectory</a>
+: <a class="el" href="classRedMatrix_1_1RedDAV_1_1RedDirectory.html#a55f7172814a0749b5342f152ab3fa0df">RedMatrix\RedDAV\RedDirectory</a>
+, <a class="el" href="classRedMatrix_1_1RedDAV_1_1RedFile.html#ac945aa782d6c035d339e59974266ec4d">RedMatrix\RedDAV\RedFile</a>
</li>
<li>getQuotaInfo()
-: <a class="el" href="classRedDirectory.html#a2f7a574f2115f099d6dd103d5b252375">RedDirectory</a>
+: <a class="el" href="classRedMatrix_1_1RedDAV_1_1RedDirectory.html#a69db443ed3c84938b4352fe515bf8d68">RedMatrix\RedDAV\RedDirectory</a>
</li>
<li>getSize()
-: <a class="el" href="classRedFile.html#acb1edbe1848fab05347746fa1ea09d8f">RedFile</a>
+: <a class="el" href="classRedMatrix_1_1RedDAV_1_1RedFile.html#a07e1b19e7aaf3dcce822e9be8823a87d">RedMatrix\RedDAV\RedFile</a>
+</li>
+<li>getTimezone()
+: <a class="el" href="classRedMatrix_1_1RedDAV_1_1RedBasicAuth.html#a6333c8ce58998bd11bf8102afe3b0748">RedMatrix\RedDAV\RedBasicAuth</a>
</li>
<li>getType()
: <a class="el" href="classphoto__driver.html#a6c6c16dbc4f517ce799f9143ed61f0e3">photo_driver</a>
diff --git a/doc/html/functions_func_0x68.html b/doc/html/functions_func_0x68.html
index f520afb12..afa29fced 100644
--- a/doc/html/functions_func_0x68.html
+++ b/doc/html/functions_func_0x68.html
@@ -146,7 +146,7 @@ $(document).ready(function(){initNavTree('functions_func_0x68.html','');});
: <a class="el" href="classApp.html#a8863703a0305eaa45eb970dbd2046291">App</a>
</li>
<li>htmlActionsPanel()
-: <a class="el" href="classRedBrowser.html#a7f6bf0bda07833f4c647557bd172e349">RedBrowser</a>
+: <a class="el" href="classRedMatrix_1_1RedDAV_1_1RedBrowser.html#a3bd98af2d1cdfd8f26deb914596176cf">RedMatrix\RedDAV\RedBrowser</a>
</li>
</ul>
</div><!-- contents -->
diff --git a/doc/html/functions_func_0x6c.html b/doc/html/functions_func_0x6c.html
index 8ff2e29fe..0a8e5dd19 100644
--- a/doc/html/functions_func_0x6c.html
+++ b/doc/html/functions_func_0x6c.html
@@ -145,8 +145,8 @@ $(document).ready(function(){initNavTree('functions_func_0x6c.html','');});
, <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>
+: <a class="el" href="classRedMatrix_1_1RedDAV_1_1RedBasicAuth.html#abf6fe89b0a8239ed93c3b07e1fbce75b">RedMatrix\RedDAV\RedBasicAuth</a>
+, <a class="el" href="classRedMatrix_1_1RedDAV_1_1RedDirectory.html#af90a1a74cfd643a5c56b9a17ea250d59">RedMatrix\RedDAV\RedDirectory</a>
</li>
<li>loginUser()
: <a class="el" href="classFKOAuth1.html#a2b1dac2ed31fc6ef84668afdda8b263f">FKOAuth1</a>
diff --git a/doc/html/functions_func_0x6f.html b/doc/html/functions_func_0x6f.html
index c955abd89..382222e6f 100644
--- a/doc/html/functions_func_0x6f.html
+++ b/doc/html/functions_func_0x6f.html
@@ -139,6 +139,10 @@ $(document).ready(function(){initNavTree('functions_func_0x6f.html','');});
&#160;
<h3><a class="anchor" id="index_o"></a>- o -</h3><ul>
+<li>optimize_table()
+: <a class="el" href="classdba__driver.html#a77e59dcbeab30ca6000131d2e9ad4092">dba_driver</a>
+, <a class="el" href="classdba__postgres.html#a3de1ac375e98886dfc38fd0066e88f90">dba_postgres</a>
+</li>
<li>orient()
: <a class="el" href="classphoto__driver.html#a4de5bac8daea8f291a33c80788019d0d">photo_driver</a>
</li>
diff --git a/doc/html/functions_func_0x70.html b/doc/html/functions_func_0x70.html
index 01b2a562d..b450d4bd0 100644
--- a/doc/html/functions_func_0x70.html
+++ b/doc/html/functions_func_0x70.html
@@ -143,7 +143,7 @@ $(document).ready(function(){initNavTree('functions_func_0x70.html','');});
: <a class="el" href="classFriendicaSmarty.html#a6a4d4281d6fa9be1d37a97b188ffe8c9">FriendicaSmarty</a>
</li>
<li>put()
-: <a class="el" href="classRedFile.html#a41a49a583eb276b75626fcf97f4a699c">RedFile</a>
+: <a class="el" href="classRedMatrix_1_1RedDAV_1_1RedFile.html#a709ec1288d21ddf1353524435ab916f0">RedMatrix\RedDAV\RedFile</a>
</li>
</ul>
</div><!-- contents -->
diff --git a/doc/html/functions_func_0x71.html b/doc/html/functions_func_0x71.html
index df5b7d285..186454586 100644
--- a/doc/html/functions_func_0x71.html
+++ b/doc/html/functions_func_0x71.html
@@ -141,8 +141,13 @@ $(document).ready(function(){initNavTree('functions_func_0x71.html','');});
<h3><a class="anchor" id="index_q"></a>- q -</h3><ul>
<li>q()
: <a class="el" href="classdba__driver.html#a558e738b88ae893cc5d79ffa3793d555">dba_driver</a>
-, <a class="el" href="classdba__mysqli.html#a611c4de8d6d7512dffb83a38bb6701ec">dba_mysqli</a>
, <a class="el" href="classdba__mysql.html#ac3fd60c278f400907322dac578754a99">dba_mysql</a>
+, <a class="el" href="classdba__postgres.html#a70352880231fba0b859f82cd5b290a9a">dba_postgres</a>
+, <a class="el" href="classdba__mysqli.html#a611c4de8d6d7512dffb83a38bb6701ec">dba_mysqli</a>
+</li>
+<li>quote_interval()
+: <a class="el" href="classdba__postgres.html#a56f926f218155c88807e0e06f6817a72">dba_postgres</a>
+, <a class="el" href="classdba__driver.html#ac9127e9c55fcc93bcfbb323b9b99b9d9">dba_driver</a>
</li>
</ul>
</div><!-- contents -->
diff --git a/doc/html/functions_func_0x72.html b/doc/html/functions_func_0x72.html
index f01b1c583..8fc461d7d 100644
--- a/doc/html/functions_func_0x72.html
+++ b/doc/html/functions_func_0x72.html
@@ -152,14 +152,17 @@ $(document).ready(function(){initNavTree('functions_func_0x72.html','');});
: <a class="el" href="classTemplate.html#a285b5b2007dbbf733476273df3fed4ef">Template</a>
</li>
<li>replace_macros()
-: <a class="el" href="classTemplate.html#a07737733f6949bdedea1e3d301b2ab7b">Template</a>
-, <a class="el" href="interfaceITemplateEngine.html#aaa7381c8becc3d1c1790b53988a0f243">ITemplateEngine</a>
+: <a class="el" href="interfaceITemplateEngine.html#aaa7381c8becc3d1c1790b53988a0f243">ITemplateEngine</a>
+, <a class="el" href="classTemplate.html#a07737733f6949bdedea1e3d301b2ab7b">Template</a>
, <a class="el" href="classFriendicaSmartyEngine.html#ad62f1181d2f02b54b46731ad2bd46db2">FriendicaSmartyEngine</a>
</li>
<li>rotate()
-: <a class="el" href="classphoto__imagick.html#a9df5738a4a18e76dd304c440e96f045f">photo_imagick</a>
+: <a class="el" href="classphoto__gd.html#a77f87730b11093b76980c541159df37d">photo_gd</a>
, <a class="el" href="classphoto__driver.html#a2f2b6337cf9aa0688d10b422123f0eec">photo_driver</a>
-, <a class="el" href="classphoto__gd.html#a77f87730b11093b76980c541159df37d">photo_gd</a>
+, <a class="el" href="classphoto__imagick.html#a9df5738a4a18e76dd304c440e96f045f">photo_imagick</a>
+</li>
+<li>run()
+: <a class="el" href="classRedMatrix_1_1Import_1_1Import.html#a8d138a9a7d4f79b81d3446ca216a602c">RedMatrix\Import\Import</a>
</li>
</ul>
</div><!-- contents -->
diff --git a/doc/html/functions_func_0x73.html b/doc/html/functions_func_0x73.html
index 90cfed4bc..9a5cd3d9f 100644
--- a/doc/html/functions_func_0x73.html
+++ b/doc/html/functions_func_0x73.html
@@ -181,6 +181,9 @@ $(document).ready(function(){initNavTree('functions_func_0x73.html','');});
<li>set_conversation()
: <a class="el" href="classItem.html#aa8b1bbc4236890694635295e46d7fd72">Item</a>
</li>
+<li>set_display_mode()
+: <a class="el" href="classItem.html#ac09a4728d37b7783714243f7f8167214">Item</a>
+</li>
<li>set_groups()
: <a class="el" href="classApp.html#a3d84af5e42082098672531cd1a618853">App</a>
</li>
@@ -221,30 +224,37 @@ $(document).ready(function(){initNavTree('functions_func_0x73.html','');});
: <a class="el" href="classApp.html#a123b903dfe5d3488cc68db3471d36fd2">App</a>
</li>
<li>set_writeable()
-: <a class="el" href="classRedBrowser.html#a40fdbb9d9fe6c1243bbf135dd5b0a06f">RedBrowser</a>
+: <a class="el" href="classRedMatrix_1_1RedDAV_1_1RedBrowser.html#aa1607857cb59738c4dce2fe8e73d8f19">RedMatrix\RedDAV\RedBrowser</a>
+</li>
+<li>setAuthenticated()
+: <a class="el" href="classRedMatrix_1_1RedDAV_1_1RedBasicAuth.html#a2926fe923baade564f2663632fa8c633">RedMatrix\RedDAV\RedBasicAuth</a>
</li>
<li>setBrowserPlugin()
-: <a class="el" href="classRedBasicAuth.html#a358ddad4abb5aa8c1382cf49a907adbc">RedBasicAuth</a>
+: <a class="el" href="classRedMatrix_1_1RedDAV_1_1RedBasicAuth.html#adc72f36f0b2b17b20ea4df900afcd697">RedMatrix\RedDAV\RedBasicAuth</a>
</li>
<li>setCurrentUser()
-: <a class="el" href="classRedBasicAuth.html#a072e8244a9a7f191b32d3db5ac94f857">RedBasicAuth</a>
+: <a class="el" href="classRedMatrix_1_1RedDAV_1_1RedBasicAuth.html#aadce020fb595c7943829d7f995d3f998">RedMatrix\RedDAV\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>
-, <a class="el" href="classphoto__driver.html#ae663867d2c4eaa2fae50d60670920143">photo_driver</a>
+, <a class="el" href="classphoto__gd.html#a1c75304bd15f3b9986f0b315fb59271e">photo_gd</a>
</li>
<li>setName()
-: <a class="el" href="classRedDirectory.html#adc48035679e52c55d9881f83de535553">RedDirectory</a>
-, <a class="el" href="classRedFile.html#a38a82bfc1b30028ea6ac75923e90fa25">RedFile</a>
+: <a class="el" href="classRedMatrix_1_1RedDAV_1_1RedDirectory.html#a14ac61d31a031d139956763db4e03956">RedMatrix\RedDAV\RedDirectory</a>
+, <a class="el" href="classRedMatrix_1_1RedDAV_1_1RedFile.html#a0350cb4e0327e1f9922869a48ee04f1d">RedMatrix\RedDAV\RedFile</a>
+</li>
+<li>setTimezone()
+: <a class="el" href="classRedMatrix_1_1RedDAV_1_1RedBasicAuth.html#af6d239fefed05859327ee8db626703f9">RedMatrix\RedDAV\RedBasicAuth</a>
</li>
<li>store()
-: <a class="el" href="classphoto__driver.html#a642a8d0c4ad5f887c99c6af77cee287b">photo_driver</a>
+: <a class="el" href="classRedMatrix_1_1Import_1_1Import.html#a33ed595de044c0ec1cd84cca719e31dc">RedMatrix\Import\Import</a>
+, <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_0x75.html b/doc/html/functions_func_0x75.html
index 150e28988..7996cb15c 100644
--- a/doc/html/functions_func_0x75.html
+++ b/doc/html/functions_func_0x75.html
@@ -139,8 +139,15 @@ $(document).ready(function(){initNavTree('functions_func_0x75.html','');});
&#160;
<h3><a class="anchor" id="index_u"></a>- u -</h3><ul>
+<li>unescapebin()
+: <a class="el" href="classdba__driver.html#ab43184239e1d6eb00a98319f4a3df155">dba_driver</a>
+, <a class="el" href="classdba__postgres.html#a677f850211975c9ab89602c67e2dcad9">dba_postgres</a>
+</li>
<li>userReadableSize()
-: <a class="el" href="classRedBrowser.html#ad3418b8ccad42a1ef4ad0079e15b2e64">RedBrowser</a>
+: <a class="el" href="classRedMatrix_1_1RedDAV_1_1RedBrowser.html#a242ce69a2fe5a5fdf9c2b8d3954accfd">RedMatrix\RedDAV\RedBrowser</a>
+</li>
+<li>utcnow()
+: <a class="el" href="classdba__driver.html#ad700712879719bee23752b8f424d97d0">dba_driver</a>
</li>
</ul>
</div><!-- contents -->
diff --git a/doc/html/functions_func_0x76.html b/doc/html/functions_func_0x76.html
index 54c79f0bd..c6e5fd2be 100644
--- a/doc/html/functions_func_0x76.html
+++ b/doc/html/functions_func_0x76.html
@@ -140,7 +140,7 @@ $(document).ready(function(){initNavTree('functions_func_0x76.html','');});
<h3><a class="anchor" id="index_v"></a>- v -</h3><ul>
<li>validateUserPass()
-: <a class="el" href="classRedBasicAuth.html#a8dfd9a0953f8884723b421b7c1acf79b">RedBasicAuth</a>
+: <a class="el" href="classRedMatrix_1_1RedDAV_1_1RedBasicAuth.html#a6ece02655b780469e59e204c5979a624">RedMatrix\RedDAV\RedBasicAuth</a>
</li>
<li>var_replace()
: <a class="el" href="classTemplate.html#abbc484016ddf5d818f55b823cae6feb0">Template</a>
diff --git a/doc/html/functions_vars.html b/doc/html/functions_vars.html
index d63de2c1b..a01410c3e 100644
--- a/doc/html/functions_vars.html
+++ b/doc/html/functions_vars.html
@@ -85,6 +85,9 @@ var searchBox = new SearchBox("searchBox", "search",false,'Search');
<div id="navrow4" class="tabs3">
<ul class="tablist">
<li><a href="#index_0x24"><span>$</span></a></li>
+ <li><a href="#index_i"><span>i</span></a></li>
+ <li><a href="#index_n"><span>n</span></a></li>
+ <li><a href="#index_u"><span>u</span></a></li>
</ul>
</div>
</div><!-- top -->
@@ -136,21 +139,15 @@ $(document).ready(function(){initNavTree('functions_vars.html','');});
: <a class="el" href="classApp.html#ab3da757abe5cb45bf88f07cc51a73b58">App</a>
</li>
<li>$auth
-: <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>
+: <a class="el" href="classRedMatrix_1_1RedDAV_1_1RedFile.html#a21b6e9d420c352f25610a33f57858215">RedMatrix\RedDAV\RedFile</a>
+, <a class="el" href="classRedMatrix_1_1RedDAV_1_1RedBrowser.html#ad19179bf4ac7f18fafa7e2e3df800142">RedMatrix\RedDAV\RedBrowser</a>
+, <a class="el" href="classRedMatrix_1_1RedDAV_1_1RedDirectory.html#aab6907e7fb7f9f7227f9cd42bdc84eb9">RedMatrix\RedDAV\RedDirectory</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>
-<li>$cached_profile_picdate
-: <a class="el" href="classApp.html#aab4a685d15a363bb1d7edbbc20bfb94e">App</a>
+: <a class="el" href="classRedMatrix_1_1RedDAV_1_1RedBasicAuth.html#a167ae032bd2ad8e6caa2e1e1a6f1b5d3">RedMatrix\RedDAV\RedBasicAuth</a>
</li>
<li>$category
: <a class="el" href="classApp.html#a5cfc098c061b7d765add58fd2ca97445">App</a>
@@ -160,13 +157,13 @@ $(document).ready(function(){initNavTree('functions_vars.html','');});
, <a class="el" href="classItem.html#acc32426c0f465391be8a99ad810c7b8e">Item</a>
</li>
<li>$channel_hash
-: <a class="el" href="classRedBasicAuth.html#ad5a3ea4dc4783b242d9dc6e76478b6ef">RedBasicAuth</a>
+: <a class="el" href="classRedMatrix_1_1RedDAV_1_1RedBasicAuth.html#a112ad78a863dc0e598b5f02c596798c0">RedMatrix\RedDAV\RedBasicAuth</a>
</li>
<li>$channel_id
-: <a class="el" href="classRedBasicAuth.html#a2dab393650d1573e3515969a153e8354">RedBasicAuth</a>
+: <a class="el" href="classRedMatrix_1_1RedDAV_1_1RedBasicAuth.html#abe1defedb90ac8e3b6487e124e625521">RedMatrix\RedDAV\RedBasicAuth</a>
</li>
<li>$channel_name
-: <a class="el" href="classRedBasicAuth.html#a438ab125b6ef46581947e35d49cdebac">RedBasicAuth</a>
+: <a class="el" href="classRedMatrix_1_1RedDAV_1_1RedBasicAuth.html#a76fdb7fd5dd7376155abb5a58cd6fd69">RedMatrix\RedDAV\RedBasicAuth</a>
</li>
<li>$children
: <a class="el" href="classItem.html#a80dcd0fb7673776c0967839d429c2a0f">Item</a>
@@ -205,31 +202,30 @@ $(document).ready(function(){initNavTree('functions_vars.html','');});
<li>$conversation
: <a class="el" href="classItem.html#a007424e3e3171dcfb4312a02161da6cd">Item</a>
</li>
+<li>$credentials
+: <a class="el" href="classRedMatrix_1_1Import_1_1Import.html#a864aac9fadb4846f5d9f840e8e0f440f">RedMatrix\Import\Import</a>
+</li>
<li>$css_sources
: <a class="el" href="classApp.html#a6f55d087e1ff4710132c1b0863faa2ee">App</a>
</li>
-<li>$curl_code
-: <a class="el" href="classApp.html#a256360c9184fed6d7556e0bc0a835d7f">App</a>
-</li>
-<li>$curl_headers
-: <a class="el" href="classApp.html#af5007c42a693afd9c4899c243b2e1363">App</a>
-</li>
<li>$d
: <a class="el" href="classTemplate.html#a8469ab2988b6be2681516dc4b4e07d38">Template</a>
</li>
<li>$data
: <a class="el" href="classApp.html#a0ce85be198e46570366cb3344f3c55b8">App</a>
, <a class="el" href="classItem.html#aec24e233f9098f902b1e57e60dcb2019">Item</a>
-, <a class="el" href="classRedFile.html#a2ff12032b45538353eded9809d3b7550">RedFile</a>
+, <a class="el" href="classRedMatrix_1_1RedDAV_1_1RedFile.html#a235700e2dfbe21dc41613d36e30e8acc">RedMatrix\RedDAV\RedFile</a>
</li>
<li>$db
-: <a class="el" href="classApp.html#a330410a288f3393d53772f5e98f857ea">App</a>
-, <a class="el" href="classdba__driver.html#a3033b5f1c2716b52202faeaae2592fe6">dba_driver</a>
+: <a class="el" href="classdba__driver.html#a3033b5f1c2716b52202faeaae2592fe6">dba_driver</a>
</li>
<li>$debug
: <a class="el" href="classdba__driver.html#af48e2afeded5285766bf92e22123ed03">dba_driver</a>
, <a class="el" href="classTemplate.html#afc4afb6f89bebcd5480022312a56cb4a">Template</a>
</li>
+<li>$display_mode
+: <a class="el" href="classItem.html#a88a99e2d1245925867f249f543358e72">Item</a>
+</li>
<li>$done
: <a class="el" href="classTemplate.html#abda4c8d049f70553338eae7c905e9d5c">Template</a>
</li>
@@ -238,13 +234,13 @@ $(document).ready(function(){initNavTree('functions_vars.html','');});
, <a class="el" href="classdba__driver.html#a84675d28c7bd9b7290dd37e66dbd216c">dba_driver</a>
</li>
<li>$ext_path
-: <a class="el" href="classRedDirectory.html#a0f113244cd85c17848df991001d024f4">RedDirectory</a>
+: <a class="el" href="classRedMatrix_1_1RedDAV_1_1RedDirectory.html#adf8735b3118cdf2f42416edaf42b82e9">RedMatrix\RedDAV\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>
+: <a class="el" href="classRedMatrix_1_1RedDAV_1_1RedDirectory.html#a2fc4e6b9be2108bbaa1ca1a03fd6d44e">RedMatrix\RedDAV\RedDirectory</a>
</li>
<li>$force_max_items
: <a class="el" href="classApp.html#ae3f47830543d0d902f66913def8db66b">App</a>
@@ -273,6 +269,15 @@ $(document).ready(function(){initNavTree('functions_vars.html','');});
<li>$interactive
: <a class="el" href="classApp.html#a4c7cfc62d39508086cf300dc2e39c4df">App</a>
</li>
+<li>$is_sys
+: <a class="el" href="classApp.html#a1f60d19d47021629faac7a0a6d917e94">App</a>
+</li>
+<li>$itemlist
+: <a class="el" href="classRedMatrix_1_1Import_1_1Import.html#ad0d2bdc3b388220479063915b4f5c2fc">RedMatrix\Import\Import</a>
+</li>
+<li>$items
+: <a class="el" href="classRedMatrix_1_1Import_1_1Import.html#a0a05dac405ccc5b617b7b7b3c8ed783c">RedMatrix\Import\Import</a>
+</li>
<li>$js_sources
: <a class="el" href="classApp.html#a11e24b3ed9b33ffee7dd41d110b4366d">App</a>
</li>
@@ -298,7 +303,7 @@ $(document).ready(function(){initNavTree('functions_vars.html','');});
: <a class="el" href="classApp.html#a6e4f0fbfa3cf6c11baebe22a03db6165">App</a>
</li>
<li>$name
-: <a class="el" href="classRedFile.html#acc48c05cd5a70951cb3c615ad84f03ba">RedFile</a>
+: <a class="el" href="classRedMatrix_1_1RedDAV_1_1RedFile.html#ab722dcb8c4598426c81fa2b2e4fad5f2">RedMatrix\RedDAV\RedFile</a>
, <a class="el" href="classFriendicaSmartyEngine.html#aaba6a42101bc9ae32e36b7fa2e243f02">FriendicaSmartyEngine</a>
, <a class="el" href="classTemplate.html#a6eb301a51cc94d8b94f4548fbad85eae">Template</a>
</li>
@@ -310,20 +315,20 @@ $(document).ready(function(){initNavTree('functions_vars.html','');});
</li>
<li>$observer
: <a class="el" href="classConversation.html#a8748445aa26047ebed5141f3c3cbc244">Conversation</a>
-, <a class="el" href="classRedBasicAuth.html#aa75dc43b59adc98e38a98517d3fd35d1">RedBasicAuth</a>
+, <a class="el" href="classRedMatrix_1_1RedDAV_1_1RedBasicAuth.html#a605aa09565a097316b80f0d17d6b5823">RedMatrix\RedDAV\RedBasicAuth</a>
, <a class="el" href="classApp.html#a4ffe529fb14389f7fedf5fdc5f722e7f">App</a>
</li>
<li>$os_path
-: <a class="el" href="classRedDirectory.html#a3c148c07ad909985125aa4926d8d0021">RedDirectory</a>
+: <a class="el" href="classRedMatrix_1_1RedDAV_1_1RedDirectory.html#a17ea47e34cb76b6e79f36ebed790d76a">RedMatrix\RedDAV\RedDirectory</a>
</li>
<li>$owner_id
-: <a class="el" href="classRedBasicAuth.html#a09c1488a0b290f5a54dc15180c5690d7">RedBasicAuth</a>
+: <a class="el" href="classRedMatrix_1_1RedDAV_1_1RedBasicAuth.html#a1a23c349cc4699a8474505972684ea9c">RedMatrix\RedDAV\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>
+: <a class="el" href="classRedMatrix_1_1RedDAV_1_1RedBasicAuth.html#aad0ef0cc05c407de84dbfbf2050bbbbe">RedMatrix\RedDAV\RedBasicAuth</a>
</li>
<li>$owner_photo
: <a class="el" href="classItem.html#a078f95b4134ce3a1df344cf8d386f986">Item</a>
@@ -377,7 +382,7 @@ $(document).ready(function(){initNavTree('functions_vars.html','');});
: <a class="el" href="classApp.html#a244b2d53b21be269aad2269d23192f95">App</a>
</li>
<li>$red_path
-: <a class="el" href="classRedDirectory.html#acb32b8df27538c57772824a745e751d7">RedDirectory</a>
+: <a class="el" href="classRedMatrix_1_1RedDAV_1_1RedDirectory.html#a4bba2e56bc8ec3e05f05eae46f56f36d">RedMatrix\RedDAV\RedDirectory</a>
</li>
<li>$redirect_url
: <a class="el" href="classItem.html#a5b561415861f5b89b0733aacfe0428d1">Item</a>
@@ -386,7 +391,7 @@ $(document).ready(function(){initNavTree('functions_vars.html','');});
: <a class="el" href="classTemplate.html#a4e86b566c3f728e95ce5db1b33665c10">Template</a>
</li>
<li>$root_dir
-: <a class="el" href="classRedDirectory.html#ad87c514a307ec97ba0f1372e9bcfa6a4">RedDirectory</a>
+: <a class="el" href="classRedMatrix_1_1RedDAV_1_1RedDirectory.html#a438066fb1565fbcffa22c12d5ce23695">RedMatrix\RedDAV\RedDirectory</a>
</li>
<li>$scheme
: <a class="el" href="classApp.html#ad082d63acc078e5bf23825a03bdd6a76">App</a>
@@ -397,6 +402,9 @@ $(document).ready(function(){initNavTree('functions_vars.html','');});
<li>$sourcename
: <a class="el" href="classApp.html#a13710907ef62554a0b4dd8a5eaa2eb11">App</a>
</li>
+<li>$src_items
+: <a class="el" href="classRedMatrix_1_1Import_1_1Import.html#a88c2eeba8d0cba3e7c12a2c45ba0fbc6">RedMatrix\Import\Import</a>
+</li>
<li>$stack
: <a class="el" href="classTemplate.html#a6f0efc256688c36110180b501067ff11">Template</a>
</li>
@@ -428,7 +436,7 @@ $(document).ready(function(){initNavTree('functions_vars.html','');});
: <a class="el" href="classConversation.html#a41f4a549e6a99f98935c4742addd22c8">Conversation</a>
</li>
<li>$timezone
-: <a class="el" href="classRedBasicAuth.html#a2d0246ed446fd5e55c17938b4ce6ac47">RedBasicAuth</a>
+: <a class="el" href="classRedMatrix_1_1RedDAV_1_1RedBasicAuth.html#a849c99cf0a7ad065d630c8a30106ad5e">RedMatrix\RedDAV\RedBasicAuth</a>
, <a class="el" href="classApp.html#ab35b01a366a2ea95725e97af278f87ab">App</a>
</li>
<li>$toplevel
@@ -458,9 +466,6 @@ $(document).ready(function(){initNavTree('functions_vars.html','');});
<li>$wall_to_wall
: <a class="el" href="classItem.html#a5d29ddecc073151a65a8e2ea2f6e4189">Item</a>
</li>
-<li>$widgetlist
-: <a class="el" href="classApp.html#a4833bee2eae4ad1691a04fa19e11a766">App</a>
-</li>
<li>$widgets
: <a class="el" href="classApp.html#aa5a87c46ab3fee21362c466bf78042ef">App</a>
</li>
@@ -471,6 +476,30 @@ $(document).ready(function(){initNavTree('functions_vars.html','');});
: <a class="el" href="classConversation.html#ae81221251307e315f566a11f921ce0a9">Conversation</a>
</li>
</ul>
+
+
+<h3><a class="anchor" id="index_i"></a>- i -</h3><ul>
+<li>INSTALL_SCRIPT
+: <a class="el" href="classdba__driver.html#a98d8523dcedda316085b4d4f856b6583">dba_driver</a>
+, <a class="el" href="classdba__postgres.html#a7267f91c3f87f600b30d7560de62dfd7">dba_postgres</a>
+</li>
+</ul>
+
+
+<h3><a class="anchor" id="index_n"></a>- n -</h3><ul>
+<li>NULL_DATE
+: <a class="el" href="classdba__driver.html#afce39394c010ea589d99a21579b2c31e">dba_driver</a>
+, <a class="el" href="classdba__postgres.html#aeb404a85974d6c5df30c21650888000b">dba_postgres</a>
+</li>
+</ul>
+
+
+<h3><a class="anchor" id="index_u"></a>- u -</h3><ul>
+<li>UTC_NOW
+: <a class="el" href="classdba__driver.html#aa3325d982d4ee5d1114fd7e02a4356e8">dba_driver</a>
+, <a class="el" href="classdba__postgres.html#ace80a204e34b20b9907650399cce02a3">dba_postgres</a>
+</li>
+</ul>
</div><!-- contents -->
</div><!-- doc-content -->
diff --git a/doc/html/globals.html b/doc/html/globals.html
index d96b84b06..b0a91ce95 100644
--- a/doc/html/globals.html
+++ b/doc/html/globals.html
@@ -156,9 +156,6 @@ $(document).ready(function(){initNavTree('globals.html','');});
<li>$aside
: <a class="el" href="minimalisticdarkness_8php.html#a6e5d97615c6faef5dbffe04b8024ceaf">minimalisticdarkness.php</a>
</li>
-<li>$bodyclass
-: <a class="el" href="theme_2blogga_2php_2default_8php.html#a720581ae288aa09511670563e4205a4a">default.php</a>
-</li>
<li>$called_api
: <a class="el" href="include_2api_8php.html#aa62b15a6bbb280e86b98132eb214013d">api.php</a>
</li>
@@ -184,9 +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>$fname
: <a class="el" href="apw_2php_2style_8php.html#ab9e0f70d44ab67f4334f9883631777fc">style.php</a>
@@ -194,12 +191,6 @@ $(document).ready(function(){initNavTree('globals.html','');});
<li>$gc_probability
: <a class="el" href="session_8php.html#a96b09cc763572f45280786a7b33feb7e">session.php</a>
</li>
-<li>$headimg
-: <a class="el" href="theme_2blogga_2php_2default_8php.html#ac7062908d1eb80c0735270f7997c4527">default.php</a>
-</li>
-<li>$headimghome
-: <a class="el" href="theme_2blogga_2php_2default_8php.html#a1230ab83d4ec9785d8f3a966f33dc5f3">default.php</a>
-</li>
<li>$i
: <a class="el" href="docblox__errorchecker_8php.html#a83018d9153d17d91fbcf3bc10158d34f">docblox_errorchecker.php</a>
</li>
@@ -245,15 +236,15 @@ $(document).ready(function(){initNavTree('globals.html','');});
<li>$phpfile
: <a class="el" href="php2po_8php.html#abbb0e5fd8fbc1f13a9bf68f86eb3d2a4">php2po.php</a>
</li>
-<li>$plugin
-: <a class="el" href="post__to__red_8php.html#ada8a7130088351710bb02ed622d6bf65">post_to_red.php</a>
-</li>
-<li>$plugin_dir
-: <a class="el" href="post__to__red_8php.html#a99811555b30bde504a863e44015f2f19">post_to_red.php</a>
-</li>
<li>$pofile
: <a class="el" href="php2po_8php.html#a401d84ce156e49e8168bd0c4781e1be1">php2po.php</a>
</li>
+<li>$r
+: <a class="el" href="fixd_8php.html#a8abe176bc41afd728f32ba8c506cbd98">fixd.php</a>
+</li>
+<li>$rand
+: <a class="el" href="fixd_8php.html#a2da3681c9cce2efe7de29aa578ff4219">fixd.php</a>
+</li>
<li>$res
: <a class="el" href="docblox__errorchecker_8php.html#a49a8a4009b02e49717caa88b128affc5">docblox_errorchecker.php</a>
</li>
@@ -284,6 +275,9 @@ $(document).ready(function(){initNavTree('globals.html','');});
<li>$strongmacro
: <a class="el" href="apw_2php_2style_8php.html#aa58104ba36588bbf082cecbb3910e2ea">style.php</a>
</li>
+<li>$total
+: <a class="el" href="fixd_8php.html#a241b818f48030b628685b2e5119c5624">fixd.php</a>
+</li>
<li>$uid
: <a class="el" href="apw_2php_2style_8php.html#a109bbd7f4add27541707b191b73ef84a">style.php</a>
</li>
diff --git a/doc/html/globals_0x61.html b/doc/html/globals_0x61.html
index c68a8a195..1274fbb03 100644
--- a/doc/html/globals_0x61.html
+++ b/doc/html/globals_0x61.html
@@ -225,6 +225,9 @@ $(document).ready(function(){initNavTree('globals_0x61.html','');});
<li>ACCOUNT_ROLE_SYSTEM
: <a class="el" href="boot_8php.html#a7c2eb822d50e1554bf5c32861f36342b">boot.php</a>
</li>
+<li>account_service_class_fetch()
+: <a class="el" href="account_8php.html#a4328c40ee4b3d68630cf1ebb7b9d4d89">account.php</a>
+</li>
<li>account_total()
: <a class="el" href="account_8php.html#a43e3042b2723d76915a030bac3c668b6">account.php</a>
</li>
@@ -492,6 +495,12 @@ $(document).ready(function(){initNavTree('globals_0x61.html','');});
<li>api_get_user()
: <a class="el" href="include_2api_8php.html#aa40bae797bcd9ccacffdce5a3b5a1afa">api.php</a>
</li>
+<li>api_group()
+: <a class="el" href="include_2api_8php.html#ad5fe62d6c25c86999f627b2e6cfde536">api.php</a>
+</li>
+<li>api_group_members()
+: <a class="el" href="include_2api_8php.html#ae46f964e5a9c80b96dc78df61c09ed3a">api.php</a>
+</li>
<li>api_help_test()
: <a class="el" href="include_2api_8php.html#ac5a64cc81d70ff3cf866093ea9721d23">api.php</a>
</li>
@@ -513,6 +522,9 @@ $(document).ready(function(){initNavTree('globals_0x61.html','');});
<li>api_post()
: <a class="el" href="mod_2api_8php.html#a6fe77f05c07cb51048df0d557b4b9bd2">api.php</a>
</li>
+<li>api_red_xchan()
+: <a class="el" href="include_2api_8php.html#a4fe872332ff0bd8d5eae2f0c6819cb60">api.php</a>
+</li>
<li>api_register_func()
: <a class="el" href="include_2api_8php.html#ac2c2b18c426d697d11a830bca146be8a">api.php</a>
</li>
diff --git a/doc/html/globals_0x62.html b/doc/html/globals_0x62.html
index 940e54dee..a5ffe38ed 100644
--- a/doc/html/globals_0x62.html
+++ b/doc/html/globals_0x62.html
@@ -154,7 +154,10 @@ $(document).ready(function(){initNavTree('globals_0x62.html','');});
: <a class="el" href="bb2diaspora_8php.html#a4f10e0876b27373c762bc1abbe745f5c">bb2diaspora.php</a>
</li>
<li>bb2diaspora_itembody()
-: <a class="el" href="bb2diaspora_8php.html#a2052c66bc1006a42b4c230320c269e47">bb2diaspora.php</a>
+: <a class="el" href="bb2diaspora_8php.html#ab27761069ea1275f0fc4c543099c5519">bb2diaspora.php</a>
+</li>
+<li>bb2diaspora_itemwallwall()
+: <a class="el" href="bb2diaspora_8php.html#aab32042f8bd63552d3fadeeae9eab083">bb2diaspora.php</a>
</li>
<li>bb2dmention_callback()
: <a class="el" href="bb2diaspora_8php.html#a5258d2f1addeb0a2a6b54c4f9e7d0f34">bb2diaspora.php</a>
@@ -162,12 +165,21 @@ $(document).ready(function(){initNavTree('globals_0x62.html','');});
<li>bb_location()
: <a class="el" href="bbcode_8php.html#a3435c82a6c7693557800cdeb6848d0bd">bbcode.php</a>
</li>
+<li>bb_map_coords()
+: <a class="el" href="bbcode_8php.html#a02d5f2434e7bb5cf683e52a9b4787f24">bbcode.php</a>
+</li>
+<li>bb_map_location()
+: <a class="el" href="bbcode_8php.html#a7cb403fd1c36d7376c2f3932a1ceb54d">bbcode.php</a>
+</li>
<li>bb_parse_app()
: <a class="el" href="bbcode_8php.html#abb02f1044ff1c635d12af690d0f2cfa2">bbcode.php</a>
</li>
<li>bb_parse_crypt()
: <a class="el" href="bbcode_8php.html#a851f5aafefe52474201b83f9fd65931f">bbcode.php</a>
</li>
+<li>bb_parse_element()
+: <a class="el" href="bbcode_8php.html#aa73fb62e7be1fa5fce4ad5f3d4487fc9">bbcode.php</a>
+</li>
<li>bb_qr()
: <a class="el" href="bbcode_8php.html#a98d0eecc620c19561639f06cfbe8e74c">bbcode.php</a>
</li>
@@ -216,23 +228,8 @@ $(document).ready(function(){initNavTree('globals_0x62.html','');});
<li>blocks_content()
: <a class="el" href="blocks_8php.html#a2531a8fd51db3cecb2eb20c002c66e12">blocks.php</a>
</li>
-<li>blog_init()
-: <a class="el" href="blogga_2php_2theme_8php.html#aa55c1cb1f05087b5002ecb633b550b1b">theme.php</a>
-</li>
-<li>blog_install()
-: <a class="el" href="blogga_2view_2theme_2blog_2theme_8php.html#aae58cc837fe56473d9f3370abfe533ae">theme.php</a>
-</li>
-<li>blog_uninstall()
-: <a class="el" href="blogga_2view_2theme_2blog_2theme_8php.html#a3e77dbe111f330c64a1ff6c741cd515c">theme.php</a>
-</li>
-<li>blogtheme_display_item()
-: <a class="el" href="blogga_2view_2theme_2blog_2theme_8php.html#a028ae8e9f2824670dfa76a6651d817e5">theme.php</a>
-</li>
-<li>blogtheme_form()
-: <a class="el" href="view_2theme_2blogga_2view_2theme_2blog_2config_8php.html#a8a311a402d3e746ce53fadc38e4b2d27">config.php</a>
-</li>
-<li>blogtheme_imgurl()
-: <a class="el" href="blogga_2view_2theme_2blog_2theme_8php.html#af634a3f721c5e238530d0636d33230ec">theme.php</a>
+<li>blocks_init()
+: <a class="el" href="blocks_8php.html#aebe88302181883d2b17d6e98a1aaebe9">blocks.php</a>
</li>
<li>bookmark_add()
: <a class="el" href="include_2bookmarks_8php.html#aef1cb2968c41c759f2d106e1088ca323">bookmarks.php</a>
diff --git a/doc/html/globals_0x63.html b/doc/html/globals_0x63.html
index 81da4a01e..16df1649d 100644
--- a/doc/html/globals_0x63.html
+++ b/doc/html/globals_0x63.html
@@ -153,6 +153,9 @@ $(document).ready(function(){initNavTree('globals_0x63.html','');});
<li>can_comment_on_post()
: <a class="el" href="items_8php.html#a1e75047cf175aaee8dd16aa761913ff9">items.php</a>
</li>
+<li>catblock()
+: <a class="el" href="taxonomy_8php.html#aa8f8a1ff85daef046298e93c83e7a1b4">taxonomy.php</a>
+</li>
<li>categories_widget()
: <a class="el" href="contact__widgets_8php.html#a165eb021e61c4dcab2a552f28628d353">contact_widgets.php</a>
</li>
@@ -168,9 +171,6 @@ $(document).ready(function(){initNavTree('globals_0x63.html','');});
<li>chanlink_url()
: <a class="el" href="text_8php.html#a2e8d6c402603be3a1256a16605e09c2a">text.php</a>
</li>
-<li>chanman_remove_everything_from_network()
-: <a class="el" href="include_2chanman_8php.html#a21ba9a5c961e866ff27aee3ee67bf99b">chanman.php</a>
-</li>
<li>channel_content()
: <a class="el" href="channel_8php.html#a9c6a6179e0e626398ebecc6151905ef1">channel.php</a>
</li>
@@ -222,6 +222,9 @@ $(document).ready(function(){initNavTree('globals_0x63.html','');});
<li>chatroom_list()
: <a class="el" href="include_2chat_8php.html#aedcb532a0627b8644001a2fadab4e87a">chat.php</a>
</li>
+<li>chatroom_list_count()
+: <a class="el" href="include_2chat_8php.html#a26abdccc2a278a59899896dbbfc6f049">chat.php</a>
+</li>
<li>chatsvc_content()
: <a class="el" href="chatsvc_8php.html#a7032784215e1f6747cf385a6598770f9">chatsvc.php</a>
</li>
@@ -316,7 +319,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#a1b79a6fe0454bc76673ad9aef55bf02d">cloud.php</a>
+: <a class="el" href="cloud_8php.html#ad2e96e917852f27dedfc263d37e13756">cloud.php</a>
</li>
<li>collect_recipients()
: <a class="el" href="items_8php.html#a772f0ae77ad77c8ab68ed918a3870946">items.php</a>
diff --git a/doc/html/globals_0x64.html b/doc/html/globals_0x64.html
index c0dfc77fa..77a5ed11d 100644
--- a/doc/html/globals_0x64.html
+++ b/doc/html/globals_0x64.html
@@ -145,22 +145,37 @@ $(document).ready(function(){initNavTree('globals_0x64.html','');});
<h3><a class="anchor" id="index_d"></a>- d -</h3><ul>
<li>datesel()
-: <a class="el" href="datetime_8php.html#ac265b86f384ee094ed5479aae02aa5c8">datetime.php</a>
-</li>
-<li>datesel_format()
-: <a class="el" href="datetime_8php.html#a5f29553799005b1fd4e9ce9d98ce05aa">datetime.php</a>
+: <a class="el" href="datetime_8php.html#a77bb385ae8a9e7ca663309c102c0d766">datetime.php</a>
</li>
<li>datetime_convert()
: <a class="el" href="datetime_8php.html#ad6301e74b0f9267d52f8d432b5beb226">datetime.php</a>
</li>
+<li>datetimesel()
+: <a class="el" href="datetime_8php.html#a72218e5ee21876484934bacbb6bd9ba3">datetime.php</a>
+</li>
<li>day_translate()
: <a class="el" href="text_8php.html#a63fb21c0bed2fc72eef2c1471ac42b63">text.php</a>
</li>
+<li>db_concat()
+: <a class="el" href="dba__driver_8php.html#a7c1b98a710ead27382c958ad3216c4ee">dba_driver.php</a>
+</li>
+<li>db_getfunc()
+: <a class="el" href="dba__driver_8php.html#a2994daa03b1c23229a27e39bcab75e67">dba_driver.php</a>
+</li>
+<li>db_optimizetable()
+: <a class="el" href="dba__driver_8php.html#a75098bf1d59ea57f7ebae657a369137e">dba_driver.php</a>
+</li>
+<li>db_quoteinterval()
+: <a class="el" href="dba__driver_8php.html#acec84a8fb75d78daf657cbe5df74e25a">dba_driver.php</a>
+</li>
<li>DB_UPDATE_VERSION
: <a class="el" href="boot_8php.html#ac59a18a4838710d6c2de37aed6b21f03">boot.php</a>
</li>
+<li>db_utcnow()
+: <a class="el" href="dba__driver_8php.html#a30e9a643be804e905f5614a3279d2645">dba_driver.php</a>
+</li>
<li>dba_factory()
-: <a class="el" href="dba__driver_8php.html#ac10e60f6e5b95bcf67bd82cb88f37947">dba_driver.php</a>
+: <a class="el" href="dba__driver_8php.html#a5df8499634c47b30191f34069d7b98c0">dba_driver.php</a>
</li>
<li>dba_timer()
: <a class="el" href="boot_8php.html#a3e0930933fb2c0bf8211cc7ab4e1c3b4">boot.php</a>
@@ -174,12 +189,30 @@ $(document).ready(function(){initNavTree('globals_0x64.html','');});
<li>dbesc_array_cb()
: <a class="el" href="dba__driver_8php.html#af531546fac5f0836a8557a4f6dfee930">dba_driver.php</a>
</li>
+<li>dbesc_identifier()
+: <a class="el" href="dba__driver_8php.html#aa051799567690a124a3b865bf902f58a">dba_driver.php</a>
+</li>
+<li>dbescbin()
+: <a class="el" href="dba__driver_8php.html#a2a38996670c2936b5769270c49c57593">dba_driver.php</a>
+</li>
+<li>dbescdate()
+: <a class="el" href="dba__driver_8php.html#a2c8a72ec73f39b17a167c90737693f78">dba_driver.php</a>
+</li>
<li>dbg()
: <a class="el" href="dba__driver_8php.html#aa6607893d8f60ade9122bcfbd1a53ffb">dba_driver.php</a>
</li>
<li>dbq()
: <a class="el" href="dba__driver_8php.html#aa377074e70981e8c4e82ca0accd068ee">dba_driver.php</a>
</li>
+<li>DBTYPE_MYSQL
+: <a class="el" href="boot_8php.html#a8c9a11c47394244cbe18cd75b9726d5f">boot.php</a>
+</li>
+<li>DBTYPE_POSTGRES
+: <a class="el" href="boot_8php.html#a37ddabc112db443b4c67fbc0f708817e">boot.php</a>
+</li>
+<li>dbunescbin()
+: <a class="el" href="dba__driver_8php.html#afaaa1a7eff9c1b65b3b8c464ae37640e">dba_driver.php</a>
+</li>
<li>decode_tags()
: <a class="el" href="items_8php.html#a56b2a4abcadfac71175cd50555528cc3">items.php</a>
</li>
@@ -313,7 +346,7 @@ $(document).ready(function(){initNavTree('globals_0x64.html','');});
: <a class="el" href="diaspora_8php.html#a33ae0c4606a7df4d801c05507d87f668">diaspora.php</a>
</li>
<li>diaspora_share()
-: <a class="el" href="diaspora_8php.html#af3a7f9879c14fec761dcc5563fb39bac">diaspora.php</a>
+: <a class="el" href="diaspora_8php.html#a69f250b078a46e405647428ec3399a16">diaspora.php</a>
</li>
<li>diaspora_signed_retraction()
: <a class="el" href="diaspora_8php.html#aa34d2748bb97e9e193cacd572f335055">diaspora.php</a>
@@ -325,7 +358,10 @@ $(document).ready(function(){initNavTree('globals_0x64.html','');});
: <a class="el" href="bb2diaspora_8php.html#adc92ccda5f85ed27e64fcc17712c89cc">bb2diaspora.php</a>
</li>
<li>diaspora_unshare()
-: <a class="el" href="diaspora_8php.html#aa4b1cc0bca5c3fe8d11557685e0238a9">diaspora.php</a>
+: <a class="el" href="diaspora_8php.html#ab736d6f32b5de31c97cb579fc730e200">diaspora.php</a>
+</li>
+<li>dir_flag_build()
+: <a class="el" href="dirsearch_8php.html#ab6d5fefa98da249a994b910434a669c2">dirsearch.php</a>
</li>
<li>dir_parse_query()
: <a class="el" href="dirsearch_8php.html#a7d4cd9890d5ed23c3efc58e2a778a305">dirsearch.php</a>
@@ -372,9 +408,6 @@ $(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>
diff --git a/doc/html/globals_0x65.html b/doc/html/globals_0x65.html
index e79e01487..15f68dbbc 100644
--- a/doc/html/globals_0x65.html
+++ b/doc/html/globals_0x65.html
@@ -147,20 +147,29 @@ $(document).ready(function(){initNavTree('globals_0x65.html','');});
<li>editblock_content()
: <a class="el" href="editblock_8php.html#abbe8f55de06967bc8d79d620509a49e6">editblock.php</a>
</li>
+<li>editblock_init()
+: <a class="el" href="editblock_8php.html#ab7806bb42ae5e93f0330d7bd179d4b3e">editblock.php</a>
+</li>
<li>editlayout_content()
: <a class="el" href="editlayout_8php.html#aa877e4157a26b099de904164181dd386">editlayout.php</a>
</li>
+<li>editlayout_init()
+: <a class="el" href="editlayout_8php.html#a97c1e93d9e75ad8cd2c2f9a7f77341a7">editlayout.php</a>
+</li>
<li>editpost_content()
: <a class="el" href="editpost_8php.html#a34011690864d122680c802e9e748ccfb">editpost.php</a>
</li>
<li>editwebpage_content()
: <a class="el" href="editwebpage_8php.html#a375e945255fad79a71036528f7480650">editwebpage.php</a>
</li>
+<li>editwebpage_init()
+: <a class="el" href="editwebpage_8php.html#a94109f9c796fbe92508bf9574e35d19f">editwebpage.php</a>
+</li>
<li>else
-: <a class="el" href="redbasic_2php_2style_8php.html#ab3afb90d611eca90819f597a2c0bb459">style.php</a>
-, <a class="el" href="auth_8php.html#a0950af7c2888ca1d4743fe5d0bff9ae5">auth.php</a>
+: <a class="el" href="auth_8php.html#a6f60fb54f60cd36c2430d6615a7b4f3f">auth.php</a>
, <a class="el" href="fpostit_8php.html#a501b5ca82f287509fc691c88524064c1">fpostit.php</a>
, <a class="el" href="tpldebug_8php.html#afbc7aadb3f7ff1edf0aaaa326a42179c">tpldebug.php</a>
+, <a class="el" href="redbasic_2php_2style_8php.html#ab3afb90d611eca90819f597a2c0bb459">style.php</a>
</li>
<li>email_header_encode()
: <a class="el" href="include_2network_8php.html#a469b9bd700269cd07d954f1a16c5899b">network.php</a>
@@ -169,7 +178,7 @@ $(document).ready(function(){initNavTree('globals_0x65.html','');});
: <a class="el" href="include_2network_8php.html#a1ff07d9fad93b713b93da0ab77aab7f0">network.php</a>
</li>
<li>encode_item()
-: <a class="el" href="items_8php.html#a82955cc578f0fa600acec84475026194">items.php</a>
+: <a class="el" href="items_8php.html#a56b0f5d2cb36eb8f4bfca84813884f86">items.php</a>
</li>
<li>encode_item_flags()
: <a class="el" href="items_8php.html#a5f690fc2484abec07840b4f9dd525bd9">items.php</a>
@@ -228,6 +237,9 @@ $(document).ready(function(){initNavTree('globals_0x65.html','');});
<li>externals_run()
: <a class="el" href="externals_8php.html#a4df44079e6f915286088b7a0d44db926">externals.php</a>
</li>
+<li>extra_query_args()
+: <a class="el" href="text_8php.html#a3ba47b4dd1248e7e51095572e7b814dc">text.php</a>
+</li>
</ul>
</div><!-- contents -->
</div><!-- doc-content -->
diff --git a/doc/html/globals_0x66.html b/doc/html/globals_0x66.html
index 75b966ec1..b88d3b72a 100644
--- a/doc/html/globals_0x66.html
+++ b/doc/html/globals_0x66.html
@@ -246,6 +246,9 @@ $(document).ready(function(){initNavTree('globals_0x66.html','');});
<li>follow_init()
: <a class="el" href="mod_2follow_8php.html#a171f5b19f50d7738adc3b2e96ec6018a">follow.php</a>
</li>
+<li>foofoo()
+: <a class="el" href="dimport_8php.html#a581f040717941ce3e1868b0b5dceefd1">dimport.php</a>
+</li>
<li>foreach
: <a class="el" href="typo_8php.html#a329c9c12217d2c8660c47bbc7c8df4c5">typo.php</a>
</li>
@@ -264,12 +267,18 @@ $(document).ready(function(){initNavTree('globals_0x66.html','');});
<li>format_event_html()
: <a class="el" href="event_8php.html#a2ac9f1b08de03250ecd794f705781d17">event.php</a>
</li>
+<li>format_event_ical()
+: <a class="el" href="event_8php.html#a3ff7f1824540a38f4a3991a59a9542d4">event.php</a>
+</li>
<li>format_filer()
: <a class="el" href="text_8php.html#a4e4d42b0a805148d9f9a92bcac89bf91">text.php</a>
</li>
<li>format_hashtags()
: <a class="el" href="text_8php.html#a3a0c432a484c17d7720b8ba2d6bfdd59">text.php</a>
</li>
+<li>format_ical_text()
+: <a class="el" href="event_8php.html#a05073cd4ab837bd4a0149e8ed23ce688">event.php</a>
+</li>
<li>format_js_if_exists()
: <a class="el" href="plugin_8php.html#ad9ff8ba554576383c5911a4bce068c1f">plugin.php</a>
</li>
diff --git a/doc/html/globals_0x67.html b/doc/html/globals_0x67.html
index b5d386137..aca38280d 100644
--- a/doc/html/globals_0x67.html
+++ b/doc/html/globals_0x67.html
@@ -150,6 +150,12 @@ $(document).ready(function(){initNavTree('globals_0x67.html','');});
<li>gender_selector_min()
: <a class="el" href="profile__selectors_8php.html#a8bfa1ca2d1598a3d65f1f9bb803ca816">profile_selectors.php</a>
</li>
+<li>generate_map()
+: <a class="el" href="text_8php.html#ae0333c304ec5b4b72e66bb2933fa7357">text.php</a>
+</li>
+<li>generate_named_map()
+: <a class="el" href="text_8php.html#af5eb4a9c1599764f80c5bc71e0125d4b">text.php</a>
+</li>
<li>get_account_id()
: <a class="el" href="boot_8php.html#afe88b920aa285982edb817a0dd44eb37">boot.php</a>
</li>
@@ -183,6 +189,9 @@ $(document).ready(function(){initNavTree('globals_0x67.html','');});
<li>get_channel_by_nick()
: <a class="el" href="identity_8php.html#ac73b3e13778c564c877554517a7f51ba">identity.php</a>
</li>
+<li>get_channel_default_perms()
+: <a class="el" href="identity_8php.html#a293f416ce9050220b183e08ff5890216">identity.php</a>
+</li>
<li>get_cloudpath()
: <a class="el" href="include_2attach_8php.html#a6aa00ea010ea030110faefb75eafc1ce">attach.php</a>
</li>
@@ -204,6 +213,9 @@ $(document).ready(function(){initNavTree('globals_0x67.html','');});
<li>get_diaspora_key()
: <a class="el" href="diaspora_8php.html#a9bf7ef4094e0e14f6e2b7fe76ab7ad2e">diaspora.php</a>
</li>
+<li>get_diaspora_reshare_xml()
+: <a class="el" href="diaspora_8php.html#ac9e41e46626dc608204bf4b5e16e62d7">diaspora.php</a>
+</li>
<li>get_dim()
: <a class="el" href="datetime_8php.html#a7df24d72ea05922d3127363e2295174c">datetime.php</a>
</li>
diff --git a/doc/html/globals_0x68.html b/doc/html/globals_0x68.html
index e4dd5086b..eda1d5c74 100644
--- a/doc/html/globals_0x68.html
+++ b/doc/html/globals_0x68.html
@@ -148,7 +148,7 @@ $(document).ready(function(){initNavTree('globals_0x68.html','');});
: <a class="el" href="items_8php.html#a52c24114b73c0bdb605a03cd29712223">items.php</a>
</li>
<li>handle_tag()
-: <a class="el" href="item_8php.html#aa22feef4de326e1d7078dedd892e615c">item.php</a>
+: <a class="el" href="text_8php.html#aa22feef4de326e1d7078dedd892e615c">text.php</a>
</li>
<li>has_permissions()
: <a class="el" href="items_8php.html#a77051724d1784074ff187e73a4db93fe">items.php</a>
@@ -189,8 +189,11 @@ $(document).ready(function(){initNavTree('globals_0x68.html','');});
<li>help_content()
: <a class="el" href="help_8php.html#af055e15f600ffa6fbca9386fdf715224">help.php</a>
</li>
+<li>hivenet_init()
+: <a class="el" href="hivenet_2php_2theme_8php.html#a3a8b539b112ae63936025236dbaf0a29">theme.php</a>
+</li>
<li>home_content()
-: <a class="el" href="home_8php.html#aa1cf697851a646755baf537f75334c46">home.php</a>
+: <a class="el" href="home_8php.html#a6e3dbf78f4ed74ab2577de221190b33f">home.php</a>
</li>
<li>home_init()
: <a class="el" href="home_8php.html#ac4642c38b6f23a8d065dd4a75c620bde">home.php</a>
@@ -210,6 +213,9 @@ $(document).ready(function(){initNavTree('globals_0x68.html','');});
<li>http_status_exit()
: <a class="el" href="include_2network_8php.html#a4cfb2c05a1c295317283d762440ce0b2">network.php</a>
</li>
+<li>hubloc_change_primary()
+: <a class="el" href="hubloc_8php.html#ad86214b3a74084bd7b54e8d6c919ce4d">hubloc.php</a>
+</li>
<li>HUBLOC_FLAGS_DELETED
: <a class="el" href="boot_8php.html#a7c286add8961fd2d79216314cd4aadd8">boot.php</a>
</li>
diff --git a/doc/html/globals_0x69.html b/doc/html/globals_0x69.html
index 41df68ff8..46871c62e 100644
--- a/doc/html/globals_0x69.html
+++ b/doc/html/globals_0x69.html
@@ -144,8 +144,11 @@ $(document).ready(function(){initNavTree('globals_0x69.html','');});
<div class="textblock">Here is a list of all file members with links to the files they belong to:</div>
<h3><a class="anchor" id="index_i"></a>- i -</h3><ul>
+<li>ical_wrapper()
+: <a class="el" href="event_8php.html#ab8cc2825013e724dc26229026711cf93">event.php</a>
+</li>
<li>identity_basic_export()
-: <a class="el" href="identity_8php.html#a3570a4eb77332b292d394c4132cb8f03">identity.php</a>
+: <a class="el" href="identity_8php.html#afaedbc8e2d2a70ec8b006162baac5249">identity.php</a>
</li>
<li>identity_check_service_class()
: <a class="el" href="identity_8php.html#ac9fcd5c4c371998790b5c55c3d0f4633">identity.php</a>
@@ -157,11 +160,15 @@ $(document).ready(function(){initNavTree('globals_0x69.html','');});
: <a class="el" href="text_8php.html#a436a8de00c942364c2d0fcfc7e1f4b5a">text.php</a>
</li>
<li>if
-: <a class="el" href="redable_8php.html#a3987f5547ceb7e36a210a66a06241a5a">redable.php</a>
+: <a class="el" href="full_8php.html#a3987f5547ceb7e36a210a66a06241a5a">full.php</a>
+, <a class="el" href="redable_8php.html#a3987f5547ceb7e36a210a66a06241a5a">redable.php</a>
, <a class="el" href="apw_2php_2style_8php.html#a2f71e817b8fac88ce7f0ec5c0fb88b8d">style.php</a>
-, <a class="el" href="php2po_8php.html#a45b05625748f412ec97afcd61cf7980b">php2po.php</a>
, <a class="el" href="theme_2mytheme_2php_2default_8php.html#a3987f5547ceb7e36a210a66a06241a5a">default.php</a>
-, <a class="el" href="full_8php.html#a3987f5547ceb7e36a210a66a06241a5a">full.php</a>
+, <a class="el" href="php2po_8php.html#a45b05625748f412ec97afcd61cf7980b">php2po.php</a>
+, <a class="el" href="php_2default_8php.html#a3987f5547ceb7e36a210a66a06241a5a">default.php</a>
+</li>
+<li>impel_init()
+: <a class="el" href="impel_8php.html#ab7db6fca43b42ea4332cb3e841b3cf7b">impel.php</a>
</li>
<li>import_author_diaspora()
: <a class="el" href="items_8php.html#a2c3f97b2109c05df86d97449b3c78ebc">items.php</a>
@@ -169,6 +176,9 @@ $(document).ready(function(){initNavTree('globals_0x69.html','');});
<li>import_author_rss()
: <a class="el" href="items_8php.html#a6bee35961f2e32905f20367a9309d627">items.php</a>
</li>
+<li>import_author_unknown()
+: <a class="el" href="items_8php.html#a37f79991f36811cf847446ff60e8e11f">items.php</a>
+</li>
<li>import_author_xchan()
: <a class="el" href="items_8php.html#ae73794179b62d39bb597ff670ab1c1e5">items.php</a>
</li>
@@ -343,6 +353,9 @@ $(document).ready(function(){initNavTree('globals_0x69.html','');});
<li>ITEM_RETAINED
: <a class="el" href="boot_8php.html#a11cfe7d99b4dac0454d0de8873989f81">boot.php</a>
</li>
+<li>ITEM_RSS
+: <a class="el" href="boot_8php.html#ac4d1c93dabcace711ffb4931204c336b">boot.php</a>
+</li>
<li>ITEM_SPAM
: <a class="el" href="boot_8php.html#a40d885b2cfd736aab4234ae641ca4dfb">boot.php</a>
</li>
diff --git a/doc/html/globals_0x6c.html b/doc/html/globals_0x6c.html
index 808af3f25..7c8fc6085 100644
--- a/doc/html/globals_0x6c.html
+++ b/doc/html/globals_0x6c.html
@@ -162,6 +162,9 @@ $(document).ready(function(){initNavTree('globals_0x6c.html','');});
<li>layouts_content()
: <a class="el" href="layouts_8php.html#a6e0193759ad9eef76d3df2db24237b50">layouts.php</a>
</li>
+<li>layouts_init()
+: <a class="el" href="layouts_8php.html#a39c8e9f72641c684c8b689bd91a642fa">layouts.php</a>
+</li>
<li>legal_webbie()
: <a class="el" href="text_8php.html#a2690ad67bb6fb97ef69de3e8d23f2728">text.php</a>
</li>
@@ -181,7 +184,7 @@ $(document).ready(function(){initNavTree('globals_0x6c.html','');});
: <a class="el" href="text_8php.html#a11255c8c4e5245b6c24f97684826aa54">text.php</a>
</li>
<li>list_post_dates()
-: <a class="el" href="items_8php.html#aa2d3caa2f27720762b5c729e07df40fb">items.php</a>
+: <a class="el" href="items_8php.html#ab33fa9756aaa5f39a6104d57a62baf00">items.php</a>
</li>
<li>list_public_sites()
: <a class="el" href="dirsearch_8php.html#a985d410a170549429857af6ff2673149">dirsearch.php</a>
@@ -202,7 +205,10 @@ $(document).ready(function(){initNavTree('globals_0x6c.html','');});
: <a class="el" href="plugin_8php.html#a326365e48ef94f0b9a0a771b8d75e813">plugin.php</a>
</li>
<li>load_pconfig()
-: <a class="el" href="include_2config_8php.html#ac543813a980b3841cc5a277fcd4a24a6">config.php</a>
+: <a class="el" href="include_2config_8php.html#a559791dda7fef8a4b2394c83e835787b">config.php</a>
+</li>
+<li>load_pdl()
+: <a class="el" href="boot_8php.html#a50a6707a28c7d05d3f49eaabc7994501">boot.php</a>
</li>
<li>load_plugin()
: <a class="el" href="plugin_8php.html#a9ca9632b7309a65b05c03a3e2f473a3d">plugin.php</a>
@@ -211,7 +217,7 @@ $(document).ready(function(){initNavTree('globals_0x6c.html','');});
: <a class="el" href="language_8php.html#a7e9904c730bb24ddcb0ff50fc96f6b05">language.php</a>
</li>
<li>load_xconfig()
-: <a class="el" href="include_2config_8php.html#a55bbed9a014c9109c767486834f3ca33">config.php</a>
+: <a class="el" href="include_2config_8php.html#aee4b619839cf4b64220f34edf5c67b52">config.php</a>
</li>
<li>local_dir_update()
: <a class="el" href="dir__fns_8php.html#acd37b17dce3bdec6d5a6344a20598c1e">dir_fns.php</a>
@@ -225,6 +231,15 @@ $(document).ready(function(){initNavTree('globals_0x6c.html','');});
<li>lockview_content()
: <a class="el" href="lockview_8php.html#a851e26ab9a1008df5c5ebebea31e9b44">lockview.php</a>
</li>
+<li>locs_content()
+: <a class="el" href="locs_8php.html#a6c900f53970c0d0e738d2fe06d27ca44">locs.php</a>
+</li>
+<li>locs_post()
+: <a class="el" href="locs_8php.html#a6b43654592919ac863d67a1f787a69b9">locs.php</a>
+</li>
+<li>log_failed_login()
+: <a class="el" href="auth_8php.html#ae3ecb5f34f202c7f9a61c5d589f6c6e1">auth.php</a>
+</li>
<li>logger()
: <a class="el" href="text_8php.html#a030fa5ecc64168af0c4f44897a9bce63">text.php</a>
</li>
diff --git a/doc/html/globals_0x6d.html b/doc/html/globals_0x6d.html
index 3c8b8f959..8a4bcc2cc 100644
--- a/doc/html/globals_0x6d.html
+++ b/doc/html/globals_0x6d.html
@@ -205,7 +205,7 @@ $(document).ready(function(){initNavTree('globals_0x6d.html','');});
: <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>
+: <a class="el" href="auth_8php.html#a69fa663e6baf65f80d1b114ad72615f2">auth.php</a>
</li>
<li>MAX_IMAGE_LENGTH
: <a class="el" href="boot_8php.html#a525ca93ff35d3535d1a2b8ba57876afa">boot.php</a>
@@ -261,6 +261,9 @@ $(document).ready(function(){initNavTree('globals_0x6d.html','');});
<li>menu_list()
: <a class="el" href="include_2menu_8php.html#a32701c4245e78ba9106eef52c08bf33d">menu.php</a>
</li>
+<li>menu_list_count()
+: <a class="el" href="include_2menu_8php.html#a251bf7e15d21627fd92614198e41c485">menu.php</a>
+</li>
<li>menu_post()
: <a class="el" href="mod_2menu_8php.html#aaa491ef173868fe002aece4632bcf393">menu.php</a>
</li>
diff --git a/doc/html/globals_0x6e.html b/doc/html/globals_0x6e.html
index bfe2639a5..0da5b30b7 100644
--- a/doc/html/globals_0x6e.html
+++ b/doc/html/globals_0x6e.html
@@ -145,7 +145,8 @@ $(document).ready(function(){initNavTree('globals_0x6e.html','');});
<h3><a class="anchor" id="index_n"></a>- n -</h3><ul>
<li>n
-: <a class="el" href="php2po_8php.html#a1594a11499d06cc8a789ee7ca0c7a12b">php2po.php</a>
+: <a class="el" href="fixd_8php.html#a9d4f8a2ab4d92b3ccfd7cba0458098eb">fixd.php</a>
+, <a class="el" href="php2po_8php.html#a1594a11499d06cc8a789ee7ca0c7a12b">php2po.php</a>
</li>
<li>namesList()
: <a class="el" href="docblox__errorchecker_8php.html#a2b767cfc461fdd5061fffc9e4a806d5b">docblox_errorchecker.php</a>
@@ -192,6 +193,9 @@ $(document).ready(function(){initNavTree('globals_0x6e.html','');});
<li>NAMESPACE_TOMB
: <a class="el" href="boot_8php.html#a4bfe22e163657690dfb6d5b1d04cb47e">boot.php</a>
</li>
+<li>NAMESPACE_YMEDIA
+: <a class="el" href="boot_8php.html#a3d48dffd9dc73a187263c3002cdf00c0">boot.php</a>
+</li>
<li>NAMESPACE_ZOT
: <a class="el" href="boot_8php.html#a49f2a70b3b43aa904223a8d19e986a47">boot.php</a>
</li>
@@ -306,6 +310,12 @@ $(document).ready(function(){initNavTree('globals_0x6e.html','');});
<li>notifications_content()
: <a class="el" href="notifications_8php.html#aadd0b5525bd8c283a5d8a37982bbfe62">notifications.php</a>
</li>
+<li>notifications_off()
+: <a class="el" href="identity_8php.html#a2e6a1cc35887937823ec7fbb90472afe">identity.php</a>
+</li>
+<li>notifications_on()
+: <a class="el" href="identity_8php.html#a5650319c799de09d1b6d1076b6f839a4">identity.php</a>
+</li>
<li>notifications_post()
: <a class="el" href="notifications_8php.html#a5baffec7b2e625c9f9cefbc097550d33">notifications.php</a>
</li>
diff --git a/doc/html/globals_0x70.html b/doc/html/globals_0x70.html
index 97abc9796..c4c0eaf40 100644
--- a/doc/html/globals_0x70.html
+++ b/doc/html/globals_0x70.html
@@ -144,6 +144,9 @@ $(document).ready(function(){initNavTree('globals_0x70.html','');});
<div class="textblock">Here is a list of all file members with links to the files they belong to:</div>
<h3><a class="anchor" id="index_p"></a>- p -</h3><ul>
+<li>p_init()
+: <a class="el" href="p_8php.html#af9d5530ca0b3dc9409cf591c39e2480e">p.php</a>
+</li>
<li>page
: <a class="el" href="mod__import_8php.html#a8db1899eeeb44dabd0904065b63627bb">mod_import.php</a>
</li>
@@ -168,6 +171,9 @@ $(document).ready(function(){initNavTree('globals_0x70.html','');});
<li>PAGE_HIDDEN
: <a class="el" href="boot_8php.html#a5e322a2a2d0f51924c0b2e874988e640">boot.php</a>
</li>
+<li>PAGE_HUBADMIN
+: <a class="el" href="boot_8php.html#afbb21ecccac9819aa65397e816868a5f">boot.php</a>
+</li>
<li>page_init()
: <a class="el" href="page_8php.html#a4d89800c0366a239191b1692c09635cf">page.php</a>
</li>
@@ -303,6 +309,9 @@ $(document).ready(function(){initNavTree('globals_0x70.html','');});
<li>PERMS_W_WALL
: <a class="el" href="boot_8php.html#a6b14a31a8aa9f3452a13383f413bffa2">boot.php</a>
</li>
+<li>PHOTO_ADULT
+: <a class="el" href="boot_8php.html#a921c55b9fa59a327a5f0e07fa1ccb2e0">boot.php</a>
+</li>
<li>photo_factory()
: <a class="el" href="photo__driver_8php.html#a32e2817faa25d7f11f60a8abff565035">photo_driver.php</a>
</li>
@@ -444,63 +453,6 @@ $(document).ready(function(){initNavTree('globals_0x70.html','');});
<li>post_post()
: <a class="el" href="post_8php.html#af59e6a1dc22d19d9257b01cd7ccedb75">post.php</a>
</li>
-<li>post_to_red_acct_name
-: <a class="el" href="post__to__red_8php.html#a588cea66afe0b32f27f2713d44940119">post_to_red.php</a>
-</li>
-<li>post_to_red_admin()
-: <a class="el" href="post__to__red_8php.html#aeec4125719184e7b097b3b9fba3101b5">post_to_red.php</a>
-</li>
-<li>post_to_red_deactivate()
-: <a class="el" href="post__to__red_8php.html#a49fd35f7b1cdddfe6e26ddfcf8d3c4ec">post_to_red.php</a>
-</li>
-<li>post_to_red_delete_comment()
-: <a class="el" href="post__to__red_8php.html#a5cc2a89a6d33cdb8e2ca557a69bef42d">post_to_red.php</a>
-</li>
-<li>post_to_red_delete_post()
-: <a class="el" href="post__to__red_8php.html#a4674bb5ce2baa32c559607460c39a2c5">post_to_red.php</a>
-</li>
-<li>post_to_red_display_admin_page()
-: <a class="el" href="post__to__red_8php.html#a8ec8f8809e3c5d1b2c9598c8185d63aa">post_to_red.php</a>
-</li>
-<li>post_to_red_displayAdminContent()
-: <a class="el" href="post__to__red_8php.html#a75db5d87226a0287a0ac0fa315f2bcfd">post_to_red.php</a>
-</li>
-<li>post_to_red_get_acct_name()
-: <a class="el" href="post__to__red_8php.html#ae6f3a2c0561cbeacda5be565b06de8a7">post_to_red.php</a>
-</li>
-<li>post_to_red_get_avatar()
-: <a class="el" href="post__to__red_8php.html#ae0b881461afbdba93d9329068ea52136">post_to_red.php</a>
-</li>
-<li>post_to_red_get_channel_name()
-: <a class="el" href="post__to__red_8php.html#aacba7a0646fc00ae6ac4f5dc383fccab">post_to_red.php</a>
-</li>
-<li>post_to_red_get_password()
-: <a class="el" href="post__to__red_8php.html#a4d90ac085c14f53ff4d8ab4c23477ea6">post_to_red.php</a>
-</li>
-<li>post_to_red_get_seed_location()
-: <a class="el" href="post__to__red_8php.html#a96d0ccecb96600ef1bfd50ab3f77315f">post_to_red.php</a>
-</li>
-<li>post_to_red_path
-: <a class="el" href="post__to__red_8php.html#a6210f39392a5f0fa0255cc7d3760493a">post_to_red.php</a>
-</li>
-<li>post_to_red_post()
-: <a class="el" href="post__to__red_8php.html#af5fd50e2c42ede85f8a9e8d9ee3cf540">post_to_red.php</a>
-</li>
-<li>post_to_red_post_checkbox()
-: <a class="el" href="post__to__red_8php.html#a0f139dea77a94c98f26007963eea639c">post_to_red.php</a>
-</li>
-<li>post_to_red_post_field_data()
-: <a class="el" href="post__to__red_8php.html#a7e68a8d9c83cb28d032aad3ea85ce0a6">post_to_red.php</a>
-</li>
-<li>post_to_red_post_meta_content()
-: <a class="el" href="post__to__red_8php.html#aa97aeda12ef080665f16311a4e1eb901">post_to_red.php</a>
-</li>
-<li>post_to_red_settings_link()
-: <a class="el" href="post__to__red_8php.html#a906be8f72cf1aa2e199c0683ea6a4017">post_to_red.php</a>
-</li>
-<li>post_to_red_version
-: <a class="el" href="post__to__red_8php.html#af3e7ebd361d4ed7cb6d43209970cd94a">post_to_red.php</a>
-</li>
<li>posted_dates()
: <a class="el" href="items_8php.html#ad2abb4644ff1f20fefbc80326fe01cf0">items.php</a>
</li>
@@ -574,7 +526,10 @@ $(document).ready(function(){initNavTree('globals_0x70.html','');});
: <a class="el" href="zot_8php.html#ac301c67864917c35922257950ae0f95c">zot.php</a>
</li>
<li>process_delivery()
-: <a class="el" href="zot_8php.html#a4d9e6ca295e443b740d9960c304b3474">zot.php</a>
+: <a class="el" href="zot_8php.html#a0e3006e7a456b2175a9badc96bc5176d">zot.php</a>
+</li>
+<li>process_location_delivery()
+: <a class="el" href="zot_8php.html#a8eeefdb0dad4c436bea9d1c06c0a7988">zot.php</a>
</li>
<li>process_mail_delivery()
: <a class="el" href="zot_8php.html#aa6ae96db8cbbdbb10e6876d206bbf7cc">zot.php</a>
diff --git a/doc/html/globals_0x72.html b/doc/html/globals_0x72.html
index 59d754eb8..3c64e1a56 100644
--- a/doc/html/globals_0x72.html
+++ b/doc/html/globals_0x72.html
@@ -174,9 +174,6 @@ $(document).ready(function(){initNavTree('globals_0x72.html','');});
<li>receive_post()
: <a class="el" href="receive_8php.html#a03d8fa26e77844020ba5602deca7d494">receive.php</a>
</li>
-<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>
@@ -195,9 +192,6 @@ $(document).ready(function(){initNavTree('globals_0x72.html','');});
<li>RED_VERSION
: <a class="el" href="boot_8php.html#a21cc29e0025943e7c28ff58cb4856ac3">boot.php</a>
</li>
-<li>red_xmlrpc_methods()
-: <a class="el" href="post__to__red_8php.html#a3a2af6ad845239f26e86fccabf8639e1">post_to_red.php</a>
-</li>
<li>red_zrl_callback()
: <a class="el" href="items_8php.html#a4e6d7639431e0dd8e9f4dba8e1ac408b">items.php</a>
</li>
@@ -219,6 +213,9 @@ $(document).ready(function(){initNavTree('globals_0x72.html','');});
<li>RedFileData()
: <a class="el" href="reddav_8php.html#a9f531641dfb4e43cd88ac1a9ae7e2088">reddav.php</a>
</li>
+<li>REDMATRIX_IMPORTCHANNEL
+: <a class="el" href="refimport_8php.html#a54003135d7c8994a76e831fb6faa2fe6">refimport.php</a>
+</li>
<li>reduce()
: <a class="el" href="docblox__errorchecker_8php.html#ae9562cf60aa693114603d27b55d2185f">docblox_errorchecker.php</a>
</li>
@@ -240,6 +237,42 @@ $(document).ready(function(){initNavTree('globals_0x72.html','');});
<li>ref_session_write()
: <a class="el" href="session_8php.html#ac4461c1984543d3553e73dba2771568f">session.php</a>
</li>
+<li>refimport_content()
+: <a class="el" href="refimport_8php.html#ad97ebb5feda0230a4834e0b3637a0d29">refimport.php</a>
+</li>
+<li>reflect_article_callback()
+: <a class="el" href="refimport_8php.html#a53434bc19e6264db89e18d92ddc09860">refimport.php</a>
+</li>
+<li>REFLECT_BASEURL
+: <a class="el" href="refimport_8php.html#ac43699d8ae86175e049aa4e87853caac">refimport.php</a>
+</li>
+<li>REFLECT_BLOGNAME
+: <a class="el" href="refimport_8php.html#a8459983ebf013ed5737f7ed317bfae1f">refimport.php</a>
+</li>
+<li>reflect_comment_store()
+: <a class="el" href="refimport_8php.html#a01a29630fa5e1ce6cd5e1fd75280747c">refimport.php</a>
+</li>
+<li>REFLECT_EXPORTUSERNAME
+: <a class="el" href="refimport_8php.html#ad297afe0730c9119dd94d3cf0521b025">refimport.php</a>
+</li>
+<li>reflect_find_user()
+: <a class="el" href="refimport_8php.html#aa98de7d112e3a5b4b6956f108d04a41d">refimport.php</a>
+</li>
+<li>reflect_get_channel()
+: <a class="el" href="refimport_8php.html#a6c3e0475fde9fe72ff2492a5e3e5259c">refimport.php</a>
+</li>
+<li>REFLECT_MAXPERRUN
+: <a class="el" href="refimport_8php.html#a9c1f681f1f303400a9818696a9f96d6f">refimport.php</a>
+</li>
+<li>REFLECT_OVERWRITE
+: <a class="el" href="refimport_8php.html#aeec793cefa260f788b7d005adcb35796">refimport.php</a>
+</li>
+<li>reflect_photo_callback()
+: <a class="el" href="refimport_8php.html#ae9c56f779d1e0ac7bcb2a460129e7ae5">refimport.php</a>
+</li>
+<li>REFLECT_USERFILE
+: <a class="el" href="refimport_8php.html#a684a44d2401abf75f441591bcb41d10d">refimport.php</a>
+</li>
<li>REGISTER_APPROVE
: <a class="el" href="boot_8php.html#a7176c0f9f1c98421b97735d892cf6252">boot.php</a>
</li>
@@ -291,6 +324,9 @@ $(document).ready(function(){initNavTree('globals_0x72.html','');});
<li>remove_community_tag()
: <a class="el" href="zot_8php.html#aad25a3fe0e1566121d6fb8222979bc10">zot.php</a>
</li>
+<li>remove_obsolete_hublocs()
+: <a class="el" href="hubloc_8php.html#a84c79b7be352f62d12fe4fa2c80fc6ea">hubloc.php</a>
+</li>
<li>remove_queue_item()
: <a class="el" href="queue__fn_8php.html#a8fe71e981399bbf5d000a6ca42f57b24">queue_fn.php</a>
</li>
@@ -333,12 +369,18 @@ $(document).ready(function(){initNavTree('globals_0x72.html','');});
<li>rmagic_post()
: <a class="el" href="rmagic_8php.html#a869de069d081b3c4e98b957d06bbf08f">rmagic.php</a>
</li>
+<li>role_selector()
+: <a class="el" href="permissions_8php.html#a50e8099ea8a4d7ed68b2a0a7ea9aa724">permissions.php</a>
+</li>
<li>rpost_callback()
: <a class="el" href="bbcode_8php.html#a5165a5221a52cf1bc1d7812ebd2069c7">bbcode.php</a>
</li>
<li>rpost_content()
: <a class="el" href="rpost_8php.html#a8190354d789000806d9879aea276728f">rpost.php</a>
</li>
+<li>rrmdir()
+: <a class="el" href="Contact_8php.html#ab5895b75a3b2abdddf1cb351a8c6b58b">Contact.php</a>
+</li>
<li>rsa_sign()
: <a class="el" href="crypto_8php.html#a920e5f222d0020f47556033d8b2b6552">crypto.php</a>
</li>
diff --git a/doc/html/globals_0x73.html b/doc/html/globals_0x73.html
index 0fe98ada5..03522e36b 100644
--- a/doc/html/globals_0x73.html
+++ b/doc/html/globals_0x73.html
@@ -198,6 +198,9 @@ $(document).ready(function(){initNavTree('globals_0x73.html','');});
<li>service_class_fetch()
: <a class="el" href="account_8php.html#a905b54e10704b283ac64680a8abc0971">account.php</a>
</li>
+<li>service_limits_content()
+: <a class="el" href="service__limits_8php.html#a653424aac63c5cd05ba70c3c77bf7f8a">service_limits.php</a>
+</li>
<li>set_config()
: <a class="el" href="include_2config_8php.html#ad6da879e4fb5b37d1e161d4e9be5c32a">config.php</a>
</li>
@@ -322,7 +325,7 @@ $(document).ready(function(){initNavTree('globals_0x73.html','');});
: <a class="el" href="boot_8php.html#aecaa1b6945b317ba8f1daf4af2aed8e6">boot.php</a>
</li>
<li>store_diaspora_comment_sig()
-: <a class="el" href="items_8php.html#af0a887050dc8d0f51c89890cdaf3145f">items.php</a>
+: <a class="el" href="items_8php.html#a25221826fa4621f523c68483e3b6af26">items.php</a>
</li>
<li>store_item_tag()
: <a class="el" href="taxonomy_8php.html#a4ba1339b2a7054971178ce194e4440fd">taxonomy.php</a>
@@ -348,9 +351,15 @@ $(document).ready(function(){initNavTree('globals_0x73.html','');});
<li>stripdcode_br_cb()
: <a class="el" href="bb2diaspora_8php.html#a180b0e3a7d702998be19e3c3b44b0e93">bb2diaspora.php</a>
</li>
+<li>stumble_init()
+: <a class="el" href="stumble_2php_2theme_8php.html#a71db9eff6289e0ee47771c37c01d6753">theme.php</a>
+</li>
<li>subthread_content()
: <a class="el" href="subthread_8php.html#a50368f3d825b77996030528e7fbfa3d3">subthread.php</a>
</li>
+<li>suckerberg_init()
+: <a class="el" href="suckerberg_2php_2theme_8php.html#a4104fce7d5fb71d15ed811978b628fc8">theme.php</a>
+</li>
<li>suggest_content()
: <a class="el" href="suggest_8php.html#a58748a8235d4523f8333847f3e42dd91">suggest.php</a>
</li>
@@ -363,6 +372,9 @@ $(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>sync_locations()
+: <a class="el" href="zot_8php.html#ab15c04e7e5f44edf45ec50dd7d183254">zot.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 1013da261..2580271b1 100644
--- a/doc/html/globals_0x74.html
+++ b/doc/html/globals_0x74.html
@@ -237,12 +237,6 @@ $(document).ready(function(){initNavTree('globals_0x74.html','');});
<li>tgroup_check()
: <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>
-</li>
-<li>theme_admin_post()
-: <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>
</li>
@@ -253,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_2redbasic_2php_2config_8php.html#ad29461920cf03b9ce1428e21eb1f4ba6">config.php</a>
</li>
<li>theme_status()
: <a class="el" href="admin_8php.html#ad4f74f33944a98b56d2c8c7601f124a4">admin.php</a>
@@ -265,7 +259,7 @@ $(document).ready(function(){initNavTree('globals_0x74.html','');});
: <a class="el" href="thing_8php.html#a8be23b1d475ec3d9291999221c674c80">thing.php</a>
</li>
<li>timesel()
-: <a class="el" href="datetime_8php.html#a36d3d6dff8d76b5f295bb3d9c535a5b1">datetime.php</a>
+: <a class="el" href="datetime_8php.html#a3f239f94e23335d860b148958d87a093">datetime.php</a>
</li>
<li>timezone_cmp()
: <a class="el" href="datetime_8php.html#aa51b5a7ea4f931b23acbdfcea46e9865">datetime.php</a>
diff --git a/doc/html/globals_0x75.html b/doc/html/globals_0x75.html
index 8afce83cb..95ad7b526 100644
--- a/doc/html/globals_0x75.html
+++ b/doc/html/globals_0x75.html
@@ -144,6 +144,9 @@ $(document).ready(function(){initNavTree('globals_0x75.html','');});
<div class="textblock">Here is a list of all file members with links to the files they belong to:</div>
<h3><a class="anchor" id="index_u"></a>- u -</h3><ul>
+<li>uexport_content()
+: <a class="el" href="uexport_8php.html#ae6f79d60916c01675c8cf663cb5fec84">uexport.php</a>
+</li>
<li>uexport_init()
: <a class="el" href="uexport_8php.html#a118920137dedebe0581623a2e57e7b0d">uexport.php</a>
</li>
@@ -177,6 +180,15 @@ $(document).ready(function(){initNavTree('globals_0x75.html','');});
<li>update_channel_content()
: <a class="el" href="update__channel_8php.html#aca52a9da500f0db2f0a8666af5bc06ba">update_channel.php</a>
</li>
+<li>update_channels_active_halfyear_stat()
+: <a class="el" href="statistics__fns_8php.html#a82726229a961d3bd3d543005c61dd8e6">statistics_fns.php</a>
+</li>
+<li>update_channels_active_monthly_stat()
+: <a class="el" href="statistics__fns_8php.html#ad2b7b595c039c4c2eb0d6cd57a393dfe">statistics_fns.php</a>
+</li>
+<li>update_channels_total_stat()
+: <a class="el" href="statistics__fns_8php.html#a05858927cce81fd367aedf85a94ed90c">statistics_fns.php</a>
+</li>
<li>update_directory_entry()
: <a class="el" href="dir__fns_8php.html#a44062d4b471d1e83f92f6c184585aa13">dir_fns.php</a>
</li>
@@ -198,9 +210,15 @@ $(document).ready(function(){initNavTree('globals_0x75.html','');});
<li>UPDATE_FLAGS_UPDATED
: <a class="el" href="boot_8php.html#a9690d73434125ce594a1f5e7c2a4f7c0">boot.php</a>
</li>
+<li>update_home_content()
+: <a class="el" href="update__home_8php.html#a668340089acd150b830134476a647d05">update_home.php</a>
+</li>
<li>update_imported_item()
: <a class="el" href="zot_8php.html#a31aad56acf8ff8f2353e6ff8595544df">zot.php</a>
</li>
+<li>update_local_posts_stat()
+: <a class="el" href="statistics__fns_8php.html#a9dd516dda693f17f5ce48a94876f7efa">statistics_fns.php</a>
+</li>
<li>update_modtime()
: <a class="el" href="zot_8php.html#ab319d1d9fff9c7775d9daef42d1f33dd">zot.php</a>
</li>
diff --git a/doc/html/globals_0x76.html b/doc/html/globals_0x76.html
index 749f67860..a37a10692 100644
--- a/doc/html/globals_0x76.html
+++ b/doc/html/globals_0x76.html
@@ -177,6 +177,39 @@ $(document).ready(function(){initNavTree('globals_0x76.html','');});
<li>visible_activity()
: <a class="el" href="conversation_8php.html#a7eeaaf44506815576f3bd80053ef52c3">conversation.php</a>
</li>
+<li>VNOTIFY_ALERT
+: <a class="el" href="boot_8php.html#a9f8a2938ddd9ee2867e6f8ce77b61b2f">boot.php</a>
+</li>
+<li>VNOTIFY_BIRTHDAY
+: <a class="el" href="boot_8php.html#ac89396b9144391acd08d6d0f9b332220">boot.php</a>
+</li>
+<li>VNOTIFY_CHANNEL
+: <a class="el" href="boot_8php.html#a7b511bd93202c43405adbe3b5bcebbfe">boot.php</a>
+</li>
+<li>VNOTIFY_EVENT
+: <a class="el" href="boot_8php.html#ad94aca4c260b8a892397786201dc4664">boot.php</a>
+</li>
+<li>VNOTIFY_EVENTTODAY
+: <a class="el" href="boot_8php.html#a76480b213af379c0c6c7fa4e39019ca9">boot.php</a>
+</li>
+<li>VNOTIFY_INFO
+: <a class="el" href="boot_8php.html#a37281c30bd92cecb499878d6778c570f">boot.php</a>
+</li>
+<li>VNOTIFY_INTRO
+: <a class="el" href="boot_8php.html#a1997c4b7d0253e036bc0fb6b20e4af71">boot.php</a>
+</li>
+<li>VNOTIFY_MAIL
+: <a class="el" href="boot_8php.html#a0afeb43da443d6ff3526ede5ecdcc3b3">boot.php</a>
+</li>
+<li>VNOTIFY_NETWORK
+: <a class="el" href="boot_8php.html#a997614f25e58f8313641e1eb0109fd10">boot.php</a>
+</li>
+<li>VNOTIFY_REGISTER
+: <a class="el" href="boot_8php.html#ae09767b94688657978ff9366ec63684b">boot.php</a>
+</li>
+<li>VNOTIFY_SYSTEM
+: <a class="el" href="boot_8php.html#a7e5627b5ca4b7464feb0f08663b19ea1">boot.php</a>
+</li>
<li>vote_content()
: <a class="el" href="vote_8php.html#a6aa67489bf458ca5e3206e46dac68596">vote.php</a>
</li>
diff --git a/doc/html/globals_0x77.html b/doc/html/globals_0x77.html
index 027bdc27f..4eed5dc3a 100644
--- a/doc/html/globals_0x77.html
+++ b/doc/html/globals_0x77.html
@@ -159,6 +159,9 @@ $(document).ready(function(){initNavTree('globals_0x77.html','');});
<li>webpages_content()
: <a class="el" href="webpages_8php.html#af3b7397d4abc153e3d2147740ee1a41d">webpages.php</a>
</li>
+<li>webpages_init()
+: <a class="el" href="webpages_8php.html#af9ad0b65eba79acead3fa32b43d888b7">webpages.php</a>
+</li>
<li>wfinger_init()
: <a class="el" href="wfinger_8php.html#ae21e50c8d0a5f3c9be9f43a4e519acd3">wfinger.php</a>
</li>
@@ -180,6 +183,9 @@ $(document).ready(function(){initNavTree('globals_0x77.html','');});
<li>widget_bookmarkedchats()
: <a class="el" href="widgets_8php.html#a0e2f5179ed1a73b282dfda7270fcabb3">widgets.php</a>
</li>
+<li>widget_catcloud_wall()
+: <a class="el" href="widgets_8php.html#af919de8e7e2ba8192a65fadc72a2c8b5">widgets.php</a>
+</li>
<li>widget_categories()
: <a class="el" href="widgets_8php.html#af37fdad3b2e861d860a4a8c4d8a76c0b">widgets.php</a>
</li>
@@ -234,9 +240,15 @@ $(document).ready(function(){initNavTree('globals_0x77.html','');});
<li>widget_photo_albums()
: <a class="el" href="widgets_8php.html#a702e2fc0adc9b615999eca18b7311b5e">widgets.php</a>
</li>
+<li>widget_photo_rand()
+: <a class="el" href="widgets_8php.html#af8eb466ef91d9e96e13335ead5eba380">widgets.php</a>
+</li>
<li>widget_profile()
: <a class="el" href="widgets_8php.html#abd2e508a2a0b911c4a838e3cb7599923">widgets.php</a>
</li>
+<li>widget_random_block()
+: <a class="el" href="widgets_8php.html#a829c5a5c7448129266fc1df3ae1a3c2e">widgets.php</a>
+</li>
<li>widget_savedsearch()
: <a class="el" href="widgets_8php.html#a94203eb9bcd63cbdecbbcb15163598d8">widgets.php</a>
</li>
@@ -261,6 +273,9 @@ $(document).ready(function(){initNavTree('globals_0x77.html','');});
<li>writepages_widget()
: <a class="el" href="page__widgets_8php.html#a1a1e729da27f252cab6678288a17958f">page_widgets.php</a>
</li>
+<li>wtagblock()
+: <a class="el" href="taxonomy_8php.html#a83f0a60f9e0c07d8451dc5be95b17287">taxonomy.php</a>
+</li>
</ul>
</div><!-- contents -->
</div><!-- doc-content -->
diff --git a/doc/html/globals_0x78.html b/doc/html/globals_0x78.html
index 247422995..e3a2f782c 100644
--- a/doc/html/globals_0x78.html
+++ b/doc/html/globals_0x78.html
@@ -145,11 +145,14 @@ $(document).ready(function(){initNavTree('globals_0x78.html','');});
<h3><a class="anchor" id="index_x"></a>- x -</h3><ul>
<li>x()
-: <a class="el" href="boot_8php.html#a01353c9abebc3544ea080ac161729632">boot.php</a>
+: <a class="el" href="boot_8php.html#ae97836b0547953be182a2334c9c91d3c">boot.php</a>
</li>
<li>xchan_content()
: <a class="el" href="xchan_8php.html#a9853348bf1a35c644460221ba75edc2d">xchan.php</a>
</li>
+<li>xchan_fetch()
+: <a class="el" href="hubloc_8php.html#af1b476c936f96a93282b1d058e3d05ea">hubloc.php</a>
+</li>
<li>XCHAN_FLAGS_CENSORED
: <a class="el" href="boot_8php.html#accd6f36cc9f40225cbd720e4d12a7c6e">boot.php</a>
</li>
@@ -165,6 +168,9 @@ $(document).ready(function(){initNavTree('globals_0x78.html','');});
<li>XCHAN_FLAGS_ORPHAN
: <a class="el" href="boot_8php.html#a1c923b99bf77e4203ae94e5684b6ad0f">boot.php</a>
</li>
+<li>XCHAN_FLAGS_PUBFORUM
+: <a class="el" href="boot_8php.html#a0209e605028a5bb492683951ab30d49d">boot.php</a>
+</li>
<li>XCHAN_FLAGS_SELFCENSORED
: <a class="el" href="boot_8php.html#a5a681a672e007cdc22b43345d71f07c6">boot.php</a>
</li>
@@ -175,7 +181,10 @@ $(document).ready(function(){initNavTree('globals_0x78.html','');});
: <a class="el" href="text_8php.html#a543447c5ed766535221e2d9636b379ee">text.php</a>
</li>
<li>xchan_query()
-: <a class="el" href="text_8php.html#a36a2e5d418ee81140f25c4233cfecd1f">text.php</a>
+: <a class="el" href="text_8php.html#a905c3895feb6f276df23f07f16f9bb52">text.php</a>
+</li>
+<li>xchan_store()
+: <a class="el" href="hubloc_8php.html#acb708dd197aae72a4858cf5ff4e3195b">hubloc.php</a>
</li>
<li>xml2array()
: <a class="el" href="include_2network_8php.html#a99353baabbc3e0584b85eb79ee802cff">network.php</a>
diff --git a/doc/html/globals_0x7a.html b/doc/html/globals_0x7a.html
index 96043b279..955f88faa 100644
--- a/doc/html/globals_0x7a.html
+++ b/doc/html/globals_0x7a.html
@@ -162,6 +162,9 @@ $(document).ready(function(){initNavTree('globals_0x7a.html','');});
<li>z_post_url()
: <a class="el" href="include_2network_8php.html#a9129fd55e7fc175b4ea9a195cccc16bc">network.php</a>
</li>
+<li>z_post_url_json()
+: <a class="el" href="include_2network_8php.html#a984708e60d531b31b2d1f88b5f408f7b">network.php</a>
+</li>
<li>z_readdir()
: <a class="el" href="include_2attach_8php.html#aeb07968990e66a88c95483ca09a7f909">attach.php</a>
</li>
@@ -190,10 +193,13 @@ $(document).ready(function(){initNavTree('globals_0x7a.html','');});
: <a class="el" href="text_8php.html#a29988052f3944111def3b6aaf2c7a8f6">text.php</a>
</li>
<li>zot_build_packet()
-: <a class="el" href="zot_8php.html#a3862b3161b2c8557dc1a95020179bd81">zot.php</a>
+: <a class="el" href="zot_8php.html#a084c581d534e7e3b759488b46602288f">zot.php</a>
+</li>
+<li>zot_encode_locations()
+: <a class="el" href="zot_8php.html#ae26ce9f1ad74139193fb6319beac5fca">zot.php</a>
</li>
<li>zot_feed()
-: <a class="el" href="items_8php.html#a004e89d86b0f29b2c4da20108ecc4091">items.php</a>
+: <a class="el" href="items_8php.html#a1cf89557f32d5dfbe8bd90448dc1aa92">items.php</a>
</li>
<li>zot_fetch()
: <a class="el" href="zot_8php.html#a61cdc1ec843663c423ed2d8160ae5aea">zot.php</a>
@@ -213,6 +219,9 @@ $(document).ready(function(){initNavTree('globals_0x7a.html','');});
<li>zot_new_uid()
: <a class="el" href="zot_8php.html#ab22d67660702056bf3f4696dcebf5ce7">zot.php</a>
</li>
+<li>zot_process_message_request()
+: <a class="el" href="zot_8php.html#a3920afe14fc1d82020161b4b86bcd9ac">zot.php</a>
+</li>
<li>zot_process_response()
: <a class="el" href="zot_8php.html#a928f5643ca66ae9635d85aeb2be62e03">zot.php</a>
</li>
diff --git a/doc/html/globals_func_0x61.html b/doc/html/globals_func_0x61.html
index f900f96de..a7712761a 100644
--- a/doc/html/globals_func_0x61.html
+++ b/doc/html/globals_func_0x61.html
@@ -158,6 +158,9 @@ $(document).ready(function(){initNavTree('globals_func_0x61.html','');});
<li>account_remove()
: <a class="el" href="Contact_8php.html#a5101d7eca5d6f387e5555f03fe249e33">Contact.php</a>
</li>
+<li>account_service_class_fetch()
+: <a class="el" href="account_8php.html#a4328c40ee4b3d68630cf1ebb7b9d4d89">account.php</a>
+</li>
<li>account_total()
: <a class="el" href="account_8php.html#a43e3042b2723d76915a030bac3c668b6">account.php</a>
</li>
@@ -344,6 +347,12 @@ $(document).ready(function(){initNavTree('globals_func_0x61.html','');});
<li>api_get_user()
: <a class="el" href="include_2api_8php.html#aa40bae797bcd9ccacffdce5a3b5a1afa">api.php</a>
</li>
+<li>api_group()
+: <a class="el" href="include_2api_8php.html#ad5fe62d6c25c86999f627b2e6cfde536">api.php</a>
+</li>
+<li>api_group_members()
+: <a class="el" href="include_2api_8php.html#ae46f964e5a9c80b96dc78df61c09ed3a">api.php</a>
+</li>
<li>api_help_test()
: <a class="el" href="include_2api_8php.html#ac5a64cc81d70ff3cf866093ea9721d23">api.php</a>
</li>
@@ -365,6 +374,9 @@ $(document).ready(function(){initNavTree('globals_func_0x61.html','');});
<li>api_post()
: <a class="el" href="mod_2api_8php.html#a6fe77f05c07cb51048df0d557b4b9bd2">api.php</a>
</li>
+<li>api_red_xchan()
+: <a class="el" href="include_2api_8php.html#a4fe872332ff0bd8d5eae2f0c6819cb60">api.php</a>
+</li>
<li>api_register_func()
: <a class="el" href="include_2api_8php.html#ac2c2b18c426d697d11a830bca146be8a">api.php</a>
</li>
diff --git a/doc/html/globals_func_0x62.html b/doc/html/globals_func_0x62.html
index 7b6a33cf5..c9af0a0ff 100644
--- a/doc/html/globals_func_0x62.html
+++ b/doc/html/globals_func_0x62.html
@@ -153,7 +153,10 @@ $(document).ready(function(){initNavTree('globals_func_0x62.html','');});
: <a class="el" href="bb2diaspora_8php.html#a4f10e0876b27373c762bc1abbe745f5c">bb2diaspora.php</a>
</li>
<li>bb2diaspora_itembody()
-: <a class="el" href="bb2diaspora_8php.html#a2052c66bc1006a42b4c230320c269e47">bb2diaspora.php</a>
+: <a class="el" href="bb2diaspora_8php.html#ab27761069ea1275f0fc4c543099c5519">bb2diaspora.php</a>
+</li>
+<li>bb2diaspora_itemwallwall()
+: <a class="el" href="bb2diaspora_8php.html#aab32042f8bd63552d3fadeeae9eab083">bb2diaspora.php</a>
</li>
<li>bb2dmention_callback()
: <a class="el" href="bb2diaspora_8php.html#a5258d2f1addeb0a2a6b54c4f9e7d0f34">bb2diaspora.php</a>
@@ -161,12 +164,21 @@ $(document).ready(function(){initNavTree('globals_func_0x62.html','');});
<li>bb_location()
: <a class="el" href="bbcode_8php.html#a3435c82a6c7693557800cdeb6848d0bd">bbcode.php</a>
</li>
+<li>bb_map_coords()
+: <a class="el" href="bbcode_8php.html#a02d5f2434e7bb5cf683e52a9b4787f24">bbcode.php</a>
+</li>
+<li>bb_map_location()
+: <a class="el" href="bbcode_8php.html#a7cb403fd1c36d7376c2f3932a1ceb54d">bbcode.php</a>
+</li>
<li>bb_parse_app()
: <a class="el" href="bbcode_8php.html#abb02f1044ff1c635d12af690d0f2cfa2">bbcode.php</a>
</li>
<li>bb_parse_crypt()
: <a class="el" href="bbcode_8php.html#a851f5aafefe52474201b83f9fd65931f">bbcode.php</a>
</li>
+<li>bb_parse_element()
+: <a class="el" href="bbcode_8php.html#aa73fb62e7be1fa5fce4ad5f3d4487fc9">bbcode.php</a>
+</li>
<li>bb_qr()
: <a class="el" href="bbcode_8php.html#a98d0eecc620c19561639f06cfbe8e74c">bbcode.php</a>
</li>
@@ -215,23 +227,8 @@ $(document).ready(function(){initNavTree('globals_func_0x62.html','');});
<li>blocks_content()
: <a class="el" href="blocks_8php.html#a2531a8fd51db3cecb2eb20c002c66e12">blocks.php</a>
</li>
-<li>blog_init()
-: <a class="el" href="blogga_2php_2theme_8php.html#aa55c1cb1f05087b5002ecb633b550b1b">theme.php</a>
-</li>
-<li>blog_install()
-: <a class="el" href="blogga_2view_2theme_2blog_2theme_8php.html#aae58cc837fe56473d9f3370abfe533ae">theme.php</a>
-</li>
-<li>blog_uninstall()
-: <a class="el" href="blogga_2view_2theme_2blog_2theme_8php.html#a3e77dbe111f330c64a1ff6c741cd515c">theme.php</a>
-</li>
-<li>blogtheme_display_item()
-: <a class="el" href="blogga_2view_2theme_2blog_2theme_8php.html#a028ae8e9f2824670dfa76a6651d817e5">theme.php</a>
-</li>
-<li>blogtheme_form()
-: <a class="el" href="view_2theme_2blogga_2view_2theme_2blog_2config_8php.html#a8a311a402d3e746ce53fadc38e4b2d27">config.php</a>
-</li>
-<li>blogtheme_imgurl()
-: <a class="el" href="blogga_2view_2theme_2blog_2theme_8php.html#af634a3f721c5e238530d0636d33230ec">theme.php</a>
+<li>blocks_init()
+: <a class="el" href="blocks_8php.html#aebe88302181883d2b17d6e98a1aaebe9">blocks.php</a>
</li>
<li>bookmark_add()
: <a class="el" href="include_2bookmarks_8php.html#aef1cb2968c41c759f2d106e1088ca323">bookmarks.php</a>
diff --git a/doc/html/globals_func_0x63.html b/doc/html/globals_func_0x63.html
index 2b4614ceb..62db2f3e8 100644
--- a/doc/html/globals_func_0x63.html
+++ b/doc/html/globals_func_0x63.html
@@ -152,6 +152,9 @@ $(document).ready(function(){initNavTree('globals_func_0x63.html','');});
<li>can_comment_on_post()
: <a class="el" href="items_8php.html#a1e75047cf175aaee8dd16aa761913ff9">items.php</a>
</li>
+<li>catblock()
+: <a class="el" href="taxonomy_8php.html#aa8f8a1ff85daef046298e93c83e7a1b4">taxonomy.php</a>
+</li>
<li>categories_widget()
: <a class="el" href="contact__widgets_8php.html#a165eb021e61c4dcab2a552f28628d353">contact_widgets.php</a>
</li>
@@ -167,9 +170,6 @@ $(document).ready(function(){initNavTree('globals_func_0x63.html','');});
<li>chanlink_url()
: <a class="el" href="text_8php.html#a2e8d6c402603be3a1256a16605e09c2a">text.php</a>
</li>
-<li>chanman_remove_everything_from_network()
-: <a class="el" href="include_2chanman_8php.html#a21ba9a5c961e866ff27aee3ee67bf99b">chanman.php</a>
-</li>
<li>channel_content()
: <a class="el" href="channel_8php.html#a9c6a6179e0e626398ebecc6151905ef1">channel.php</a>
</li>
@@ -221,6 +221,9 @@ $(document).ready(function(){initNavTree('globals_func_0x63.html','');});
<li>chatroom_list()
: <a class="el" href="include_2chat_8php.html#aedcb532a0627b8644001a2fadab4e87a">chat.php</a>
</li>
+<li>chatroom_list_count()
+: <a class="el" href="include_2chat_8php.html#a26abdccc2a278a59899896dbbfc6f049">chat.php</a>
+</li>
<li>chatsvc_content()
: <a class="el" href="chatsvc_8php.html#a7032784215e1f6747cf385a6598770f9">chatsvc.php</a>
</li>
@@ -306,7 +309,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#a1b79a6fe0454bc76673ad9aef55bf02d">cloud.php</a>
+: <a class="el" href="cloud_8php.html#ad2e96e917852f27dedfc263d37e13756">cloud.php</a>
</li>
<li>collect_recipients()
: <a class="el" href="items_8php.html#a772f0ae77ad77c8ab68ed918a3870946">items.php</a>
diff --git a/doc/html/globals_func_0x64.html b/doc/html/globals_func_0x64.html
index 5d360e46f..430403744 100644
--- a/doc/html/globals_func_0x64.html
+++ b/doc/html/globals_func_0x64.html
@@ -144,19 +144,34 @@ $(document).ready(function(){initNavTree('globals_func_0x64.html','');});
<h3><a class="anchor" id="index_d"></a>- d -</h3><ul>
<li>datesel()
-: <a class="el" href="datetime_8php.html#ac265b86f384ee094ed5479aae02aa5c8">datetime.php</a>
-</li>
-<li>datesel_format()
-: <a class="el" href="datetime_8php.html#a5f29553799005b1fd4e9ce9d98ce05aa">datetime.php</a>
+: <a class="el" href="datetime_8php.html#a77bb385ae8a9e7ca663309c102c0d766">datetime.php</a>
</li>
<li>datetime_convert()
: <a class="el" href="datetime_8php.html#ad6301e74b0f9267d52f8d432b5beb226">datetime.php</a>
</li>
+<li>datetimesel()
+: <a class="el" href="datetime_8php.html#a72218e5ee21876484934bacbb6bd9ba3">datetime.php</a>
+</li>
<li>day_translate()
: <a class="el" href="text_8php.html#a63fb21c0bed2fc72eef2c1471ac42b63">text.php</a>
</li>
+<li>db_concat()
+: <a class="el" href="dba__driver_8php.html#a7c1b98a710ead27382c958ad3216c4ee">dba_driver.php</a>
+</li>
+<li>db_getfunc()
+: <a class="el" href="dba__driver_8php.html#a2994daa03b1c23229a27e39bcab75e67">dba_driver.php</a>
+</li>
+<li>db_optimizetable()
+: <a class="el" href="dba__driver_8php.html#a75098bf1d59ea57f7ebae657a369137e">dba_driver.php</a>
+</li>
+<li>db_quoteinterval()
+: <a class="el" href="dba__driver_8php.html#acec84a8fb75d78daf657cbe5df74e25a">dba_driver.php</a>
+</li>
+<li>db_utcnow()
+: <a class="el" href="dba__driver_8php.html#a30e9a643be804e905f5614a3279d2645">dba_driver.php</a>
+</li>
<li>dba_factory()
-: <a class="el" href="dba__driver_8php.html#ac10e60f6e5b95bcf67bd82cb88f37947">dba_driver.php</a>
+: <a class="el" href="dba__driver_8php.html#a5df8499634c47b30191f34069d7b98c0">dba_driver.php</a>
</li>
<li>dba_timer()
: <a class="el" href="boot_8php.html#a3e0930933fb2c0bf8211cc7ab4e1c3b4">boot.php</a>
@@ -170,12 +185,24 @@ $(document).ready(function(){initNavTree('globals_func_0x64.html','');});
<li>dbesc_array_cb()
: <a class="el" href="dba__driver_8php.html#af531546fac5f0836a8557a4f6dfee930">dba_driver.php</a>
</li>
+<li>dbesc_identifier()
+: <a class="el" href="dba__driver_8php.html#aa051799567690a124a3b865bf902f58a">dba_driver.php</a>
+</li>
+<li>dbescbin()
+: <a class="el" href="dba__driver_8php.html#a2a38996670c2936b5769270c49c57593">dba_driver.php</a>
+</li>
+<li>dbescdate()
+: <a class="el" href="dba__driver_8php.html#a2c8a72ec73f39b17a167c90737693f78">dba_driver.php</a>
+</li>
<li>dbg()
: <a class="el" href="dba__driver_8php.html#aa6607893d8f60ade9122bcfbd1a53ffb">dba_driver.php</a>
</li>
<li>dbq()
: <a class="el" href="dba__driver_8php.html#aa377074e70981e8c4e82ca0accd068ee">dba_driver.php</a>
</li>
+<li>dbunescbin()
+: <a class="el" href="dba__driver_8php.html#afaaa1a7eff9c1b65b3b8c464ae37640e">dba_driver.php</a>
+</li>
<li>decode_tags()
: <a class="el" href="items_8php.html#a56b2a4abcadfac71175cd50555528cc3">items.php</a>
</li>
@@ -306,7 +333,7 @@ $(document).ready(function(){initNavTree('globals_func_0x64.html','');});
: <a class="el" href="diaspora_8php.html#a33ae0c4606a7df4d801c05507d87f668">diaspora.php</a>
</li>
<li>diaspora_share()
-: <a class="el" href="diaspora_8php.html#af3a7f9879c14fec761dcc5563fb39bac">diaspora.php</a>
+: <a class="el" href="diaspora_8php.html#a69f250b078a46e405647428ec3399a16">diaspora.php</a>
</li>
<li>diaspora_signed_retraction()
: <a class="el" href="diaspora_8php.html#aa34d2748bb97e9e193cacd572f335055">diaspora.php</a>
@@ -318,7 +345,10 @@ $(document).ready(function(){initNavTree('globals_func_0x64.html','');});
: <a class="el" href="bb2diaspora_8php.html#adc92ccda5f85ed27e64fcc17712c89cc">bb2diaspora.php</a>
</li>
<li>diaspora_unshare()
-: <a class="el" href="diaspora_8php.html#aa4b1cc0bca5c3fe8d11557685e0238a9">diaspora.php</a>
+: <a class="el" href="diaspora_8php.html#ab736d6f32b5de31c97cb579fc730e200">diaspora.php</a>
+</li>
+<li>dir_flag_build()
+: <a class="el" href="dirsearch_8php.html#ab6d5fefa98da249a994b910434a669c2">dirsearch.php</a>
</li>
<li>dir_parse_query()
: <a class="el" href="dirsearch_8php.html#a7d4cd9890d5ed23c3efc58e2a778a305">dirsearch.php</a>
@@ -347,9 +377,6 @@ $(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>
diff --git a/doc/html/globals_func_0x65.html b/doc/html/globals_func_0x65.html
index 9b7b41459..fc927e91c 100644
--- a/doc/html/globals_func_0x65.html
+++ b/doc/html/globals_func_0x65.html
@@ -146,15 +146,24 @@ $(document).ready(function(){initNavTree('globals_func_0x65.html','');});
<li>editblock_content()
: <a class="el" href="editblock_8php.html#abbe8f55de06967bc8d79d620509a49e6">editblock.php</a>
</li>
+<li>editblock_init()
+: <a class="el" href="editblock_8php.html#ab7806bb42ae5e93f0330d7bd179d4b3e">editblock.php</a>
+</li>
<li>editlayout_content()
: <a class="el" href="editlayout_8php.html#aa877e4157a26b099de904164181dd386">editlayout.php</a>
</li>
+<li>editlayout_init()
+: <a class="el" href="editlayout_8php.html#a97c1e93d9e75ad8cd2c2f9a7f77341a7">editlayout.php</a>
+</li>
<li>editpost_content()
: <a class="el" href="editpost_8php.html#a34011690864d122680c802e9e748ccfb">editpost.php</a>
</li>
<li>editwebpage_content()
: <a class="el" href="editwebpage_8php.html#a375e945255fad79a71036528f7480650">editwebpage.php</a>
</li>
+<li>editwebpage_init()
+: <a class="el" href="editwebpage_8php.html#a94109f9c796fbe92508bf9574e35d19f">editwebpage.php</a>
+</li>
<li>email_header_encode()
: <a class="el" href="include_2network_8php.html#a469b9bd700269cd07d954f1a16c5899b">network.php</a>
</li>
@@ -162,7 +171,7 @@ $(document).ready(function(){initNavTree('globals_func_0x65.html','');});
: <a class="el" href="include_2network_8php.html#a1ff07d9fad93b713b93da0ab77aab7f0">network.php</a>
</li>
<li>encode_item()
-: <a class="el" href="items_8php.html#a82955cc578f0fa600acec84475026194">items.php</a>
+: <a class="el" href="items_8php.html#a56b0f5d2cb36eb8f4bfca84813884f86">items.php</a>
</li>
<li>encode_item_flags()
: <a class="el" href="items_8php.html#a5f690fc2484abec07840b4f9dd525bd9">items.php</a>
@@ -215,6 +224,9 @@ $(document).ready(function(){initNavTree('globals_func_0x65.html','');});
<li>externals_run()
: <a class="el" href="externals_8php.html#a4df44079e6f915286088b7a0d44db926">externals.php</a>
</li>
+<li>extra_query_args()
+: <a class="el" href="text_8php.html#a3ba47b4dd1248e7e51095572e7b814dc">text.php</a>
+</li>
</ul>
</div><!-- contents -->
</div><!-- doc-content -->
diff --git a/doc/html/globals_func_0x66.html b/doc/html/globals_func_0x66.html
index 8b86e9df8..d3d48d48a 100644
--- a/doc/html/globals_func_0x66.html
+++ b/doc/html/globals_func_0x66.html
@@ -245,6 +245,9 @@ $(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>foofoo()
+: <a class="el" href="dimport_8php.html#a581f040717941ce3e1868b0b5dceefd1">dimport.php</a>
+</li>
<li>format_categories()
: <a class="el" href="text_8php.html#a3054189cff173977f4216c9a3dd29e1b">text.php</a>
</li>
@@ -260,12 +263,18 @@ $(document).ready(function(){initNavTree('globals_func_0x66.html','');});
<li>format_event_html()
: <a class="el" href="event_8php.html#a2ac9f1b08de03250ecd794f705781d17">event.php</a>
</li>
+<li>format_event_ical()
+: <a class="el" href="event_8php.html#a3ff7f1824540a38f4a3991a59a9542d4">event.php</a>
+</li>
<li>format_filer()
: <a class="el" href="text_8php.html#a4e4d42b0a805148d9f9a92bcac89bf91">text.php</a>
</li>
<li>format_hashtags()
: <a class="el" href="text_8php.html#a3a0c432a484c17d7720b8ba2d6bfdd59">text.php</a>
</li>
+<li>format_ical_text()
+: <a class="el" href="event_8php.html#a05073cd4ab837bd4a0149e8ed23ce688">event.php</a>
+</li>
<li>format_js_if_exists()
: <a class="el" href="plugin_8php.html#ad9ff8ba554576383c5911a4bce068c1f">plugin.php</a>
</li>
diff --git a/doc/html/globals_func_0x67.html b/doc/html/globals_func_0x67.html
index ec470029a..d37424b7f 100644
--- a/doc/html/globals_func_0x67.html
+++ b/doc/html/globals_func_0x67.html
@@ -149,6 +149,12 @@ $(document).ready(function(){initNavTree('globals_func_0x67.html','');});
<li>gender_selector_min()
: <a class="el" href="profile__selectors_8php.html#a8bfa1ca2d1598a3d65f1f9bb803ca816">profile_selectors.php</a>
</li>
+<li>generate_map()
+: <a class="el" href="text_8php.html#ae0333c304ec5b4b72e66bb2933fa7357">text.php</a>
+</li>
+<li>generate_named_map()
+: <a class="el" href="text_8php.html#af5eb4a9c1599764f80c5bc71e0125d4b">text.php</a>
+</li>
<li>get_account_id()
: <a class="el" href="boot_8php.html#afe88b920aa285982edb817a0dd44eb37">boot.php</a>
</li>
@@ -182,6 +188,9 @@ $(document).ready(function(){initNavTree('globals_func_0x67.html','');});
<li>get_channel_by_nick()
: <a class="el" href="identity_8php.html#ac73b3e13778c564c877554517a7f51ba">identity.php</a>
</li>
+<li>get_channel_default_perms()
+: <a class="el" href="identity_8php.html#a293f416ce9050220b183e08ff5890216">identity.php</a>
+</li>
<li>get_cloudpath()
: <a class="el" href="include_2attach_8php.html#a6aa00ea010ea030110faefb75eafc1ce">attach.php</a>
</li>
@@ -203,6 +212,9 @@ $(document).ready(function(){initNavTree('globals_func_0x67.html','');});
<li>get_diaspora_key()
: <a class="el" href="diaspora_8php.html#a9bf7ef4094e0e14f6e2b7fe76ab7ad2e">diaspora.php</a>
</li>
+<li>get_diaspora_reshare_xml()
+: <a class="el" href="diaspora_8php.html#ac9e41e46626dc608204bf4b5e16e62d7">diaspora.php</a>
+</li>
<li>get_dim()
: <a class="el" href="datetime_8php.html#a7df24d72ea05922d3127363e2295174c">datetime.php</a>
</li>
diff --git a/doc/html/globals_func_0x68.html b/doc/html/globals_func_0x68.html
index df141a260..c97ea8315 100644
--- a/doc/html/globals_func_0x68.html
+++ b/doc/html/globals_func_0x68.html
@@ -147,7 +147,7 @@ $(document).ready(function(){initNavTree('globals_func_0x68.html','');});
: <a class="el" href="items_8php.html#a52c24114b73c0bdb605a03cd29712223">items.php</a>
</li>
<li>handle_tag()
-: <a class="el" href="item_8php.html#aa22feef4de326e1d7078dedd892e615c">item.php</a>
+: <a class="el" href="text_8php.html#aa22feef4de326e1d7078dedd892e615c">text.php</a>
</li>
<li>has_permissions()
: <a class="el" href="items_8php.html#a77051724d1784074ff187e73a4db93fe">items.php</a>
@@ -188,8 +188,11 @@ $(document).ready(function(){initNavTree('globals_func_0x68.html','');});
<li>help_content()
: <a class="el" href="help_8php.html#af055e15f600ffa6fbca9386fdf715224">help.php</a>
</li>
+<li>hivenet_init()
+: <a class="el" href="hivenet_2php_2theme_8php.html#a3a8b539b112ae63936025236dbaf0a29">theme.php</a>
+</li>
<li>home_content()
-: <a class="el" href="home_8php.html#aa1cf697851a646755baf537f75334c46">home.php</a>
+: <a class="el" href="home_8php.html#a6e3dbf78f4ed74ab2577de221190b33f">home.php</a>
</li>
<li>home_init()
: <a class="el" href="home_8php.html#ac4642c38b6f23a8d065dd4a75c620bde">home.php</a>
@@ -209,6 +212,9 @@ $(document).ready(function(){initNavTree('globals_func_0x68.html','');});
<li>http_status_exit()
: <a class="el" href="include_2network_8php.html#a4cfb2c05a1c295317283d762440ce0b2">network.php</a>
</li>
+<li>hubloc_change_primary()
+: <a class="el" href="hubloc_8php.html#ad86214b3a74084bd7b54e8d6c919ce4d">hubloc.php</a>
+</li>
</ul>
</div><!-- contents -->
</div><!-- doc-content -->
diff --git a/doc/html/globals_func_0x69.html b/doc/html/globals_func_0x69.html
index e99d28bbb..7a4c62227 100644
--- a/doc/html/globals_func_0x69.html
+++ b/doc/html/globals_func_0x69.html
@@ -143,8 +143,11 @@ $(document).ready(function(){initNavTree('globals_func_0x69.html','');});
&#160;
<h3><a class="anchor" id="index_i"></a>- i -</h3><ul>
+<li>ical_wrapper()
+: <a class="el" href="event_8php.html#ab8cc2825013e724dc26229026711cf93">event.php</a>
+</li>
<li>identity_basic_export()
-: <a class="el" href="identity_8php.html#a3570a4eb77332b292d394c4132cb8f03">identity.php</a>
+: <a class="el" href="identity_8php.html#afaedbc8e2d2a70ec8b006162baac5249">identity.php</a>
</li>
<li>identity_check_service_class()
: <a class="el" href="identity_8php.html#ac9fcd5c4c371998790b5c55c3d0f4633">identity.php</a>
@@ -155,12 +158,18 @@ $(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>impel_init()
+: <a class="el" href="impel_8php.html#ab7db6fca43b42ea4332cb3e841b3cf7b">impel.php</a>
+</li>
<li>import_author_diaspora()
: <a class="el" href="items_8php.html#a2c3f97b2109c05df86d97449b3c78ebc">items.php</a>
</li>
<li>import_author_rss()
: <a class="el" href="items_8php.html#a6bee35961f2e32905f20367a9309d627">items.php</a>
</li>
+<li>import_author_unknown()
+: <a class="el" href="items_8php.html#a37f79991f36811cf847446ff60e8e11f">items.php</a>
+</li>
<li>import_author_xchan()
: <a class="el" href="items_8php.html#ae73794179b62d39bb597ff670ab1c1e5">items.php</a>
</li>
diff --git a/doc/html/globals_func_0x6c.html b/doc/html/globals_func_0x6c.html
index 0cf4c0f94..7747b6fde 100644
--- a/doc/html/globals_func_0x6c.html
+++ b/doc/html/globals_func_0x6c.html
@@ -155,6 +155,9 @@ $(document).ready(function(){initNavTree('globals_func_0x6c.html','');});
<li>layouts_content()
: <a class="el" href="layouts_8php.html#a6e0193759ad9eef76d3df2db24237b50">layouts.php</a>
</li>
+<li>layouts_init()
+: <a class="el" href="layouts_8php.html#a39c8e9f72641c684c8b689bd91a642fa">layouts.php</a>
+</li>
<li>legal_webbie()
: <a class="el" href="text_8php.html#a2690ad67bb6fb97ef69de3e8d23f2728">text.php</a>
</li>
@@ -174,7 +177,7 @@ $(document).ready(function(){initNavTree('globals_func_0x6c.html','');});
: <a class="el" href="text_8php.html#a11255c8c4e5245b6c24f97684826aa54">text.php</a>
</li>
<li>list_post_dates()
-: <a class="el" href="items_8php.html#aa2d3caa2f27720762b5c729e07df40fb">items.php</a>
+: <a class="el" href="items_8php.html#ab33fa9756aaa5f39a6104d57a62baf00">items.php</a>
</li>
<li>list_public_sites()
: <a class="el" href="dirsearch_8php.html#a985d410a170549429857af6ff2673149">dirsearch.php</a>
@@ -195,7 +198,10 @@ $(document).ready(function(){initNavTree('globals_func_0x6c.html','');});
: <a class="el" href="plugin_8php.html#a326365e48ef94f0b9a0a771b8d75e813">plugin.php</a>
</li>
<li>load_pconfig()
-: <a class="el" href="include_2config_8php.html#ac543813a980b3841cc5a277fcd4a24a6">config.php</a>
+: <a class="el" href="include_2config_8php.html#a559791dda7fef8a4b2394c83e835787b">config.php</a>
+</li>
+<li>load_pdl()
+: <a class="el" href="boot_8php.html#a50a6707a28c7d05d3f49eaabc7994501">boot.php</a>
</li>
<li>load_plugin()
: <a class="el" href="plugin_8php.html#a9ca9632b7309a65b05c03a3e2f473a3d">plugin.php</a>
@@ -204,7 +210,7 @@ $(document).ready(function(){initNavTree('globals_func_0x6c.html','');});
: <a class="el" href="language_8php.html#a7e9904c730bb24ddcb0ff50fc96f6b05">language.php</a>
</li>
<li>load_xconfig()
-: <a class="el" href="include_2config_8php.html#a55bbed9a014c9109c767486834f3ca33">config.php</a>
+: <a class="el" href="include_2config_8php.html#aee4b619839cf4b64220f34edf5c67b52">config.php</a>
</li>
<li>local_dir_update()
: <a class="el" href="dir__fns_8php.html#acd37b17dce3bdec6d5a6344a20598c1e">dir_fns.php</a>
@@ -218,6 +224,15 @@ $(document).ready(function(){initNavTree('globals_func_0x6c.html','');});
<li>lockview_content()
: <a class="el" href="lockview_8php.html#a851e26ab9a1008df5c5ebebea31e9b44">lockview.php</a>
</li>
+<li>locs_content()
+: <a class="el" href="locs_8php.html#a6c900f53970c0d0e738d2fe06d27ca44">locs.php</a>
+</li>
+<li>locs_post()
+: <a class="el" href="locs_8php.html#a6b43654592919ac863d67a1f787a69b9">locs.php</a>
+</li>
+<li>log_failed_login()
+: <a class="el" href="auth_8php.html#ae3ecb5f34f202c7f9a61c5d589f6c6e1">auth.php</a>
+</li>
<li>logger()
: <a class="el" href="text_8php.html#a030fa5ecc64168af0c4f44897a9bce63">text.php</a>
</li>
diff --git a/doc/html/globals_func_0x6d.html b/doc/html/globals_func_0x6d.html
index 27125b1a7..d5f9778a2 100644
--- a/doc/html/globals_func_0x6d.html
+++ b/doc/html/globals_func_0x6d.html
@@ -186,7 +186,7 @@ $(document).ready(function(){initNavTree('globals_func_0x6d.html','');});
: <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>
+: <a class="el" href="auth_8php.html#a69fa663e6baf65f80d1b114ad72615f2">auth.php</a>
</li>
<li>member_of()
: <a class="el" href="include_2group_8php.html#a048f6892bfd28852de1b76470df411de">group.php</a>
@@ -224,6 +224,9 @@ $(document).ready(function(){initNavTree('globals_func_0x6d.html','');});
<li>menu_list()
: <a class="el" href="include_2menu_8php.html#a32701c4245e78ba9106eef52c08bf33d">menu.php</a>
</li>
+<li>menu_list_count()
+: <a class="el" href="include_2menu_8php.html#a251bf7e15d21627fd92614198e41c485">menu.php</a>
+</li>
<li>menu_post()
: <a class="el" href="mod_2menu_8php.html#aaa491ef173868fe002aece4632bcf393">menu.php</a>
</li>
diff --git a/doc/html/globals_func_0x6e.html b/doc/html/globals_func_0x6e.html
index df62368c6..45592dc25 100644
--- a/doc/html/globals_func_0x6e.html
+++ b/doc/html/globals_func_0x6e.html
@@ -218,6 +218,12 @@ $(document).ready(function(){initNavTree('globals_func_0x6e.html','');});
<li>notifications_content()
: <a class="el" href="notifications_8php.html#aadd0b5525bd8c283a5d8a37982bbfe62">notifications.php</a>
</li>
+<li>notifications_off()
+: <a class="el" href="identity_8php.html#a2e6a1cc35887937823ec7fbb90472afe">identity.php</a>
+</li>
+<li>notifications_on()
+: <a class="el" href="identity_8php.html#a5650319c799de09d1b6d1076b6f839a4">identity.php</a>
+</li>
<li>notifications_post()
: <a class="el" href="notifications_8php.html#a5baffec7b2e625c9f9cefbc097550d33">notifications.php</a>
</li>
diff --git a/doc/html/globals_func_0x70.html b/doc/html/globals_func_0x70.html
index dc9c4c03d..fe1a5488a 100644
--- a/doc/html/globals_func_0x70.html
+++ b/doc/html/globals_func_0x70.html
@@ -143,6 +143,9 @@ $(document).ready(function(){initNavTree('globals_func_0x70.html','');});
&#160;
<h3><a class="anchor" id="index_p"></a>- p -</h3><ul>
+<li>p_init()
+: <a class="el" href="p_8php.html#af9d5530ca0b3dc9409cf591c39e2480e">p.php</a>
+</li>
<li>page_content()
: <a class="el" href="page_8php.html#a91a5f649f68406149108bded1dc90b22">page.php</a>
</li>
@@ -308,54 +311,6 @@ $(document).ready(function(){initNavTree('globals_func_0x70.html','');});
<li>post_post()
: <a class="el" href="post_8php.html#af59e6a1dc22d19d9257b01cd7ccedb75">post.php</a>
</li>
-<li>post_to_red_admin()
-: <a class="el" href="post__to__red_8php.html#aeec4125719184e7b097b3b9fba3101b5">post_to_red.php</a>
-</li>
-<li>post_to_red_deactivate()
-: <a class="el" href="post__to__red_8php.html#a49fd35f7b1cdddfe6e26ddfcf8d3c4ec">post_to_red.php</a>
-</li>
-<li>post_to_red_delete_comment()
-: <a class="el" href="post__to__red_8php.html#a5cc2a89a6d33cdb8e2ca557a69bef42d">post_to_red.php</a>
-</li>
-<li>post_to_red_delete_post()
-: <a class="el" href="post__to__red_8php.html#a4674bb5ce2baa32c559607460c39a2c5">post_to_red.php</a>
-</li>
-<li>post_to_red_display_admin_page()
-: <a class="el" href="post__to__red_8php.html#a8ec8f8809e3c5d1b2c9598c8185d63aa">post_to_red.php</a>
-</li>
-<li>post_to_red_displayAdminContent()
-: <a class="el" href="post__to__red_8php.html#a75db5d87226a0287a0ac0fa315f2bcfd">post_to_red.php</a>
-</li>
-<li>post_to_red_get_acct_name()
-: <a class="el" href="post__to__red_8php.html#ae6f3a2c0561cbeacda5be565b06de8a7">post_to_red.php</a>
-</li>
-<li>post_to_red_get_avatar()
-: <a class="el" href="post__to__red_8php.html#ae0b881461afbdba93d9329068ea52136">post_to_red.php</a>
-</li>
-<li>post_to_red_get_channel_name()
-: <a class="el" href="post__to__red_8php.html#aacba7a0646fc00ae6ac4f5dc383fccab">post_to_red.php</a>
-</li>
-<li>post_to_red_get_password()
-: <a class="el" href="post__to__red_8php.html#a4d90ac085c14f53ff4d8ab4c23477ea6">post_to_red.php</a>
-</li>
-<li>post_to_red_get_seed_location()
-: <a class="el" href="post__to__red_8php.html#a96d0ccecb96600ef1bfd50ab3f77315f">post_to_red.php</a>
-</li>
-<li>post_to_red_post()
-: <a class="el" href="post__to__red_8php.html#af5fd50e2c42ede85f8a9e8d9ee3cf540">post_to_red.php</a>
-</li>
-<li>post_to_red_post_checkbox()
-: <a class="el" href="post__to__red_8php.html#a0f139dea77a94c98f26007963eea639c">post_to_red.php</a>
-</li>
-<li>post_to_red_post_field_data()
-: <a class="el" href="post__to__red_8php.html#a7e68a8d9c83cb28d032aad3ea85ce0a6">post_to_red.php</a>
-</li>
-<li>post_to_red_post_meta_content()
-: <a class="el" href="post__to__red_8php.html#aa97aeda12ef080665f16311a4e1eb901">post_to_red.php</a>
-</li>
-<li>post_to_red_settings_link()
-: <a class="el" href="post__to__red_8php.html#a906be8f72cf1aa2e199c0683ea6a4017">post_to_red.php</a>
-</li>
<li>posted_dates()
: <a class="el" href="items_8php.html#ad2abb4644ff1f20fefbc80326fe01cf0">items.php</a>
</li>
@@ -429,7 +384,10 @@ $(document).ready(function(){initNavTree('globals_func_0x70.html','');});
: <a class="el" href="zot_8php.html#ac301c67864917c35922257950ae0f95c">zot.php</a>
</li>
<li>process_delivery()
-: <a class="el" href="zot_8php.html#a4d9e6ca295e443b740d9960c304b3474">zot.php</a>
+: <a class="el" href="zot_8php.html#a0e3006e7a456b2175a9badc96bc5176d">zot.php</a>
+</li>
+<li>process_location_delivery()
+: <a class="el" href="zot_8php.html#a8eeefdb0dad4c436bea9d1c06c0a7988">zot.php</a>
</li>
<li>process_mail_delivery()
: <a class="el" href="zot_8php.html#aa6ae96db8cbbdbb10e6876d206bbf7cc">zot.php</a>
diff --git a/doc/html/globals_func_0x72.html b/doc/html/globals_func_0x72.html
index df84835d5..5b0182fcb 100644
--- a/doc/html/globals_func_0x72.html
+++ b/doc/html/globals_func_0x72.html
@@ -167,9 +167,6 @@ $(document).ready(function(){initNavTree('globals_func_0x72.html','');});
<li>receive_post()
: <a class="el" href="receive_8php.html#a03d8fa26e77844020ba5602deca7d494">receive.php</a>
</li>
-<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>
@@ -182,9 +179,6 @@ $(document).ready(function(){initNavTree('globals_func_0x72.html','');});
<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>
<li>red_zrl_callback()
: <a class="el" href="items_8php.html#a4e6d7639431e0dd8e9f4dba8e1ac408b">items.php</a>
</li>
@@ -227,6 +221,24 @@ $(document).ready(function(){initNavTree('globals_func_0x72.html','');});
<li>ref_session_write()
: <a class="el" href="session_8php.html#ac4461c1984543d3553e73dba2771568f">session.php</a>
</li>
+<li>refimport_content()
+: <a class="el" href="refimport_8php.html#ad97ebb5feda0230a4834e0b3637a0d29">refimport.php</a>
+</li>
+<li>reflect_article_callback()
+: <a class="el" href="refimport_8php.html#a53434bc19e6264db89e18d92ddc09860">refimport.php</a>
+</li>
+<li>reflect_comment_store()
+: <a class="el" href="refimport_8php.html#a01a29630fa5e1ce6cd5e1fd75280747c">refimport.php</a>
+</li>
+<li>reflect_find_user()
+: <a class="el" href="refimport_8php.html#aa98de7d112e3a5b4b6956f108d04a41d">refimport.php</a>
+</li>
+<li>reflect_get_channel()
+: <a class="el" href="refimport_8php.html#a6c3e0475fde9fe72ff2492a5e3e5259c">refimport.php</a>
+</li>
+<li>reflect_photo_callback()
+: <a class="el" href="refimport_8php.html#ae9c56f779d1e0ac7bcb2a460129e7ae5">refimport.php</a>
+</li>
<li>register_content()
: <a class="el" href="register_8php.html#a0e91f57f111407ea8d3223a05022bb2a">register.php</a>
</li>
@@ -269,6 +281,9 @@ $(document).ready(function(){initNavTree('globals_func_0x72.html','');});
<li>remove_community_tag()
: <a class="el" href="zot_8php.html#aad25a3fe0e1566121d6fb8222979bc10">zot.php</a>
</li>
+<li>remove_obsolete_hublocs()
+: <a class="el" href="hubloc_8php.html#a84c79b7be352f62d12fe4fa2c80fc6ea">hubloc.php</a>
+</li>
<li>remove_queue_item()
: <a class="el" href="queue__fn_8php.html#a8fe71e981399bbf5d000a6ca42f57b24">queue_fn.php</a>
</li>
@@ -308,12 +323,18 @@ $(document).ready(function(){initNavTree('globals_func_0x72.html','');});
<li>rmagic_post()
: <a class="el" href="rmagic_8php.html#a869de069d081b3c4e98b957d06bbf08f">rmagic.php</a>
</li>
+<li>role_selector()
+: <a class="el" href="permissions_8php.html#a50e8099ea8a4d7ed68b2a0a7ea9aa724">permissions.php</a>
+</li>
<li>rpost_callback()
: <a class="el" href="bbcode_8php.html#a5165a5221a52cf1bc1d7812ebd2069c7">bbcode.php</a>
</li>
<li>rpost_content()
: <a class="el" href="rpost_8php.html#a8190354d789000806d9879aea276728f">rpost.php</a>
</li>
+<li>rrmdir()
+: <a class="el" href="Contact_8php.html#ab5895b75a3b2abdddf1cb351a8c6b58b">Contact.php</a>
+</li>
<li>rsa_sign()
: <a class="el" href="crypto_8php.html#a920e5f222d0020f47556033d8b2b6552">crypto.php</a>
</li>
diff --git a/doc/html/globals_func_0x73.html b/doc/html/globals_func_0x73.html
index 84131a69b..dd80318c2 100644
--- a/doc/html/globals_func_0x73.html
+++ b/doc/html/globals_func_0x73.html
@@ -197,6 +197,9 @@ $(document).ready(function(){initNavTree('globals_func_0x73.html','');});
<li>service_class_fetch()
: <a class="el" href="account_8php.html#a905b54e10704b283ac64680a8abc0971">account.php</a>
</li>
+<li>service_limits_content()
+: <a class="el" href="service__limits_8php.html#a653424aac63c5cd05ba70c3c77bf7f8a">service_limits.php</a>
+</li>
<li>set_config()
: <a class="el" href="include_2config_8php.html#ad6da879e4fb5b37d1e161d4e9be5c32a">config.php</a>
</li>
@@ -309,7 +312,7 @@ $(document).ready(function(){initNavTree('globals_func_0x73.html','');});
: <a class="el" href="conversation_8php.html#a2a7d541854bba755eb8ada59af7dcb1a">conversation.php</a>
</li>
<li>store_diaspora_comment_sig()
-: <a class="el" href="items_8php.html#af0a887050dc8d0f51c89890cdaf3145f">items.php</a>
+: <a class="el" href="items_8php.html#a25221826fa4621f523c68483e3b6af26">items.php</a>
</li>
<li>store_item_tag()
: <a class="el" href="taxonomy_8php.html#a4ba1339b2a7054971178ce194e4440fd">taxonomy.php</a>
@@ -335,9 +338,15 @@ $(document).ready(function(){initNavTree('globals_func_0x73.html','');});
<li>stripdcode_br_cb()
: <a class="el" href="bb2diaspora_8php.html#a180b0e3a7d702998be19e3c3b44b0e93">bb2diaspora.php</a>
</li>
+<li>stumble_init()
+: <a class="el" href="stumble_2php_2theme_8php.html#a71db9eff6289e0ee47771c37c01d6753">theme.php</a>
+</li>
<li>subthread_content()
: <a class="el" href="subthread_8php.html#a50368f3d825b77996030528e7fbfa3d3">subthread.php</a>
</li>
+<li>suckerberg_init()
+: <a class="el" href="suckerberg_2php_2theme_8php.html#a4104fce7d5fb71d15ed811978b628fc8">theme.php</a>
+</li>
<li>suggest_content()
: <a class="el" href="suggest_8php.html#a58748a8235d4523f8333847f3e42dd91">suggest.php</a>
</li>
@@ -350,6 +359,9 @@ $(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>sync_locations()
+: <a class="el" href="zot_8php.html#ab15c04e7e5f44edf45ec50dd7d183254">zot.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 948474abe..6723ca6b5 100644
--- a/doc/html/globals_func_0x74.html
+++ b/doc/html/globals_func_0x74.html
@@ -185,12 +185,6 @@ $(document).ready(function(){initNavTree('globals_func_0x74.html','');});
<li>tgroup_check()
: <a class="el" href="items_8php.html#a88c6cf7649ac836fbbed82a7a0315110">items.php</a>
</li>
-<li>theme_admin()
-: <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_2php_2config_8php.html#aef2da5582b7cb6b5f63e5ca5d69fd30b">config.php</a>
-</li>
<li>theme_attachments()
: <a class="el" href="text_8php.html#af9c9ac3f74c82dc60acfa404d0e9dc53">text.php</a>
</li>
@@ -201,7 +195,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_2blogga_2view_2theme_2blog_2config_8php.html#ad29461920cf03b9ce1428e21eb1f4ba6">config.php</a>
+: <a class="el" href="view_2theme_2apw_2php_2config_8php.html#ad29461920cf03b9ce1428e21eb1f4ba6">config.php</a>
</li>
<li>theme_status()
: <a class="el" href="admin_8php.html#ad4f74f33944a98b56d2c8c7601f124a4">admin.php</a>
@@ -213,7 +207,7 @@ $(document).ready(function(){initNavTree('globals_func_0x74.html','');});
: <a class="el" href="thing_8php.html#a8be23b1d475ec3d9291999221c674c80">thing.php</a>
</li>
<li>timesel()
-: <a class="el" href="datetime_8php.html#a36d3d6dff8d76b5f295bb3d9c535a5b1">datetime.php</a>
+: <a class="el" href="datetime_8php.html#a3f239f94e23335d860b148958d87a093">datetime.php</a>
</li>
<li>timezone_cmp()
: <a class="el" href="datetime_8php.html#aa51b5a7ea4f931b23acbdfcea46e9865">datetime.php</a>
diff --git a/doc/html/globals_func_0x75.html b/doc/html/globals_func_0x75.html
index e6254f708..23cce5cc1 100644
--- a/doc/html/globals_func_0x75.html
+++ b/doc/html/globals_func_0x75.html
@@ -143,6 +143,9 @@ $(document).ready(function(){initNavTree('globals_func_0x75.html','');});
&#160;
<h3><a class="anchor" id="index_u"></a>- u -</h3><ul>
+<li>uexport_content()
+: <a class="el" href="uexport_8php.html#ae6f79d60916c01675c8cf663cb5fec84">uexport.php</a>
+</li>
<li>uexport_init()
: <a class="el" href="uexport_8php.html#a118920137dedebe0581623a2e57e7b0d">uexport.php</a>
</li>
@@ -176,6 +179,15 @@ $(document).ready(function(){initNavTree('globals_func_0x75.html','');});
<li>update_channel_content()
: <a class="el" href="update__channel_8php.html#aca52a9da500f0db2f0a8666af5bc06ba">update_channel.php</a>
</li>
+<li>update_channels_active_halfyear_stat()
+: <a class="el" href="statistics__fns_8php.html#a82726229a961d3bd3d543005c61dd8e6">statistics_fns.php</a>
+</li>
+<li>update_channels_active_monthly_stat()
+: <a class="el" href="statistics__fns_8php.html#ad2b7b595c039c4c2eb0d6cd57a393dfe">statistics_fns.php</a>
+</li>
+<li>update_channels_total_stat()
+: <a class="el" href="statistics__fns_8php.html#a05858927cce81fd367aedf85a94ed90c">statistics_fns.php</a>
+</li>
<li>update_directory_entry()
: <a class="el" href="dir__fns_8php.html#a44062d4b471d1e83f92f6c184585aa13">dir_fns.php</a>
</li>
@@ -185,9 +197,15 @@ $(document).ready(function(){initNavTree('globals_func_0x75.html','');});
<li>update_feed_item()
: <a class="el" href="items_8php.html#a9b449eeae50003414b8b30ca927af434">items.php</a>
</li>
+<li>update_home_content()
+: <a class="el" href="update__home_8php.html#a668340089acd150b830134476a647d05">update_home.php</a>
+</li>
<li>update_imported_item()
: <a class="el" href="zot_8php.html#a31aad56acf8ff8f2353e6ff8595544df">zot.php</a>
</li>
+<li>update_local_posts_stat()
+: <a class="el" href="statistics__fns_8php.html#a9dd516dda693f17f5ce48a94876f7efa">statistics_fns.php</a>
+</li>
<li>update_modtime()
: <a class="el" href="zot_8php.html#ab319d1d9fff9c7775d9daef42d1f33dd">zot.php</a>
</li>
diff --git a/doc/html/globals_func_0x77.html b/doc/html/globals_func_0x77.html
index 83d145707..399f6a6fc 100644
--- a/doc/html/globals_func_0x77.html
+++ b/doc/html/globals_func_0x77.html
@@ -158,6 +158,9 @@ $(document).ready(function(){initNavTree('globals_func_0x77.html','');});
<li>webpages_content()
: <a class="el" href="webpages_8php.html#af3b7397d4abc153e3d2147740ee1a41d">webpages.php</a>
</li>
+<li>webpages_init()
+: <a class="el" href="webpages_8php.html#af9ad0b65eba79acead3fa32b43d888b7">webpages.php</a>
+</li>
<li>wfinger_init()
: <a class="el" href="wfinger_8php.html#ae21e50c8d0a5f3c9be9f43a4e519acd3">wfinger.php</a>
</li>
@@ -176,6 +179,9 @@ $(document).ready(function(){initNavTree('globals_func_0x77.html','');});
<li>widget_bookmarkedchats()
: <a class="el" href="widgets_8php.html#a0e2f5179ed1a73b282dfda7270fcabb3">widgets.php</a>
</li>
+<li>widget_catcloud_wall()
+: <a class="el" href="widgets_8php.html#af919de8e7e2ba8192a65fadc72a2c8b5">widgets.php</a>
+</li>
<li>widget_categories()
: <a class="el" href="widgets_8php.html#af37fdad3b2e861d860a4a8c4d8a76c0b">widgets.php</a>
</li>
@@ -230,9 +236,15 @@ $(document).ready(function(){initNavTree('globals_func_0x77.html','');});
<li>widget_photo_albums()
: <a class="el" href="widgets_8php.html#a702e2fc0adc9b615999eca18b7311b5e">widgets.php</a>
</li>
+<li>widget_photo_rand()
+: <a class="el" href="widgets_8php.html#af8eb466ef91d9e96e13335ead5eba380">widgets.php</a>
+</li>
<li>widget_profile()
: <a class="el" href="widgets_8php.html#abd2e508a2a0b911c4a838e3cb7599923">widgets.php</a>
</li>
+<li>widget_random_block()
+: <a class="el" href="widgets_8php.html#a829c5a5c7448129266fc1df3ae1a3c2e">widgets.php</a>
+</li>
<li>widget_savedsearch()
: <a class="el" href="widgets_8php.html#a94203eb9bcd63cbdecbbcb15163598d8">widgets.php</a>
</li>
@@ -257,6 +269,9 @@ $(document).ready(function(){initNavTree('globals_func_0x77.html','');});
<li>writepages_widget()
: <a class="el" href="page__widgets_8php.html#a1a1e729da27f252cab6678288a17958f">page_widgets.php</a>
</li>
+<li>wtagblock()
+: <a class="el" href="taxonomy_8php.html#a83f0a60f9e0c07d8451dc5be95b17287">taxonomy.php</a>
+</li>
</ul>
</div><!-- contents -->
</div><!-- doc-content -->
diff --git a/doc/html/globals_func_0x78.html b/doc/html/globals_func_0x78.html
index 077f66945..133418043 100644
--- a/doc/html/globals_func_0x78.html
+++ b/doc/html/globals_func_0x78.html
@@ -144,16 +144,22 @@ $(document).ready(function(){initNavTree('globals_func_0x78.html','');});
<h3><a class="anchor" id="index_x"></a>- x -</h3><ul>
<li>x()
-: <a class="el" href="boot_8php.html#a01353c9abebc3544ea080ac161729632">boot.php</a>
+: <a class="el" href="boot_8php.html#ae97836b0547953be182a2334c9c91d3c">boot.php</a>
</li>
<li>xchan_content()
: <a class="el" href="xchan_8php.html#a9853348bf1a35c644460221ba75edc2d">xchan.php</a>
</li>
+<li>xchan_fetch()
+: <a class="el" href="hubloc_8php.html#af1b476c936f96a93282b1d058e3d05ea">hubloc.php</a>
+</li>
<li>xchan_mail_query()
: <a class="el" href="text_8php.html#a543447c5ed766535221e2d9636b379ee">text.php</a>
</li>
<li>xchan_query()
-: <a class="el" href="text_8php.html#a36a2e5d418ee81140f25c4233cfecd1f">text.php</a>
+: <a class="el" href="text_8php.html#a905c3895feb6f276df23f07f16f9bb52">text.php</a>
+</li>
+<li>xchan_store()
+: <a class="el" href="hubloc_8php.html#acb708dd197aae72a4858cf5ff4e3195b">hubloc.php</a>
</li>
<li>xml2array()
: <a class="el" href="include_2network_8php.html#a99353baabbc3e0584b85eb79ee802cff">network.php</a>
diff --git a/doc/html/globals_func_0x7a.html b/doc/html/globals_func_0x7a.html
index 6b484536f..dc104b249 100644
--- a/doc/html/globals_func_0x7a.html
+++ b/doc/html/globals_func_0x7a.html
@@ -161,6 +161,9 @@ $(document).ready(function(){initNavTree('globals_func_0x7a.html','');});
<li>z_post_url()
: <a class="el" href="include_2network_8php.html#a9129fd55e7fc175b4ea9a195cccc16bc">network.php</a>
</li>
+<li>z_post_url_json()
+: <a class="el" href="include_2network_8php.html#a984708e60d531b31b2d1f88b5f408f7b">network.php</a>
+</li>
<li>z_readdir()
: <a class="el" href="include_2attach_8php.html#aeb07968990e66a88c95483ca09a7f909">attach.php</a>
</li>
@@ -186,10 +189,13 @@ $(document).ready(function(){initNavTree('globals_func_0x7a.html','');});
: <a class="el" href="text_8php.html#a29988052f3944111def3b6aaf2c7a8f6">text.php</a>
</li>
<li>zot_build_packet()
-: <a class="el" href="zot_8php.html#a3862b3161b2c8557dc1a95020179bd81">zot.php</a>
+: <a class="el" href="zot_8php.html#a084c581d534e7e3b759488b46602288f">zot.php</a>
+</li>
+<li>zot_encode_locations()
+: <a class="el" href="zot_8php.html#ae26ce9f1ad74139193fb6319beac5fca">zot.php</a>
</li>
<li>zot_feed()
-: <a class="el" href="items_8php.html#a004e89d86b0f29b2c4da20108ecc4091">items.php</a>
+: <a class="el" href="items_8php.html#a1cf89557f32d5dfbe8bd90448dc1aa92">items.php</a>
</li>
<li>zot_fetch()
: <a class="el" href="zot_8php.html#a61cdc1ec843663c423ed2d8160ae5aea">zot.php</a>
@@ -209,6 +215,9 @@ $(document).ready(function(){initNavTree('globals_func_0x7a.html','');});
<li>zot_new_uid()
: <a class="el" href="zot_8php.html#ab22d67660702056bf3f4696dcebf5ce7">zot.php</a>
</li>
+<li>zot_process_message_request()
+: <a class="el" href="zot_8php.html#a3920afe14fc1d82020161b4b86bcd9ac">zot.php</a>
+</li>
<li>zot_process_response()
: <a class="el" href="zot_8php.html#a928f5643ca66ae9635d85aeb2be62e03">zot.php</a>
</li>
diff --git a/doc/html/globals_vars.html b/doc/html/globals_vars.html
index db57ee822..ee5b3dd4e 100644
--- a/doc/html/globals_vars.html
+++ b/doc/html/globals_vars.html
@@ -101,6 +101,7 @@ var searchBox = new SearchBox("searchBox", "search",false,'Search');
<li><a href="globals_vars_0x73.html#index_s"><span>s</span></a></li>
<li><a href="globals_vars_0x74.html#index_t"><span>t</span></a></li>
<li><a href="globals_vars_0x75.html#index_u"><span>u</span></a></li>
+ <li><a href="globals_vars_0x76.html#index_v"><span>v</span></a></li>
<li><a href="globals_vars_0x77.html#index_w"><span>w</span></a></li>
<li><a href="globals_vars_0x78.html#index_x"><span>x</span></a></li>
<li><a href="globals_vars_0x7a.html#index_z"><span>z</span></a></li>
@@ -151,9 +152,6 @@ $(document).ready(function(){initNavTree('globals_vars.html','');});
<li>$aside
: <a class="el" href="minimalisticdarkness_8php.html#a6e5d97615c6faef5dbffe04b8024ceaf">minimalisticdarkness.php</a>
</li>
-<li>$bodyclass
-: <a class="el" href="theme_2blogga_2php_2default_8php.html#a720581ae288aa09511670563e4205a4a">default.php</a>
-</li>
<li>$called_api
: <a class="el" href="include_2api_8php.html#aa62b15a6bbb280e86b98132eb214013d">api.php</a>
</li>
@@ -179,9 +177,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>$fname
: <a class="el" href="apw_2php_2style_8php.html#ab9e0f70d44ab67f4334f9883631777fc">style.php</a>
@@ -189,12 +187,6 @@ $(document).ready(function(){initNavTree('globals_vars.html','');});
<li>$gc_probability
: <a class="el" href="session_8php.html#a96b09cc763572f45280786a7b33feb7e">session.php</a>
</li>
-<li>$headimg
-: <a class="el" href="theme_2blogga_2php_2default_8php.html#ac7062908d1eb80c0735270f7997c4527">default.php</a>
-</li>
-<li>$headimghome
-: <a class="el" href="theme_2blogga_2php_2default_8php.html#a1230ab83d4ec9785d8f3a966f33dc5f3">default.php</a>
-</li>
<li>$i
: <a class="el" href="docblox__errorchecker_8php.html#a83018d9153d17d91fbcf3bc10158d34f">docblox_errorchecker.php</a>
</li>
@@ -240,15 +232,15 @@ $(document).ready(function(){initNavTree('globals_vars.html','');});
<li>$phpfile
: <a class="el" href="php2po_8php.html#abbb0e5fd8fbc1f13a9bf68f86eb3d2a4">php2po.php</a>
</li>
-<li>$plugin
-: <a class="el" href="post__to__red_8php.html#ada8a7130088351710bb02ed622d6bf65">post_to_red.php</a>
-</li>
-<li>$plugin_dir
-: <a class="el" href="post__to__red_8php.html#a99811555b30bde504a863e44015f2f19">post_to_red.php</a>
-</li>
<li>$pofile
: <a class="el" href="php2po_8php.html#a401d84ce156e49e8168bd0c4781e1be1">php2po.php</a>
</li>
+<li>$r
+: <a class="el" href="fixd_8php.html#a8abe176bc41afd728f32ba8c506cbd98">fixd.php</a>
+</li>
+<li>$rand
+: <a class="el" href="fixd_8php.html#a2da3681c9cce2efe7de29aa578ff4219">fixd.php</a>
+</li>
<li>$res
: <a class="el" href="docblox__errorchecker_8php.html#a49a8a4009b02e49717caa88b128affc5">docblox_errorchecker.php</a>
</li>
@@ -279,6 +271,9 @@ $(document).ready(function(){initNavTree('globals_vars.html','');});
<li>$strongmacro
: <a class="el" href="apw_2php_2style_8php.html#aa58104ba36588bbf082cecbb3910e2ea">style.php</a>
</li>
+<li>$total
+: <a class="el" href="fixd_8php.html#a241b818f48030b628685b2e5119c5624">fixd.php</a>
+</li>
<li>$uid
: <a class="el" href="apw_2php_2style_8php.html#a109bbd7f4add27541707b191b73ef84a">style.php</a>
</li>
diff --git a/doc/html/globals_vars.js b/doc/html/globals_vars.js
index f614b41fa..280040c50 100644
--- a/doc/html/globals_vars.js
+++ b/doc/html/globals_vars.js
@@ -19,6 +19,7 @@ var globals_vars =
[ "s", "globals_vars_0x73.html", null ],
[ "t", "globals_vars_0x74.html", null ],
[ "u", "globals_vars_0x75.html", null ],
+ [ "v", "globals_vars_0x76.html", null ],
[ "w", "globals_vars_0x77.html", null ],
[ "x", "globals_vars_0x78.html", null ],
[ "z", "globals_vars_0x7a.html", null ]
diff --git a/doc/html/globals_vars_0x61.html b/doc/html/globals_vars_0x61.html
index bfb98856f..67bdaf4ce 100644
--- a/doc/html/globals_vars_0x61.html
+++ b/doc/html/globals_vars_0x61.html
@@ -101,6 +101,7 @@ var searchBox = new SearchBox("searchBox", "search",false,'Search');
<li><a href="globals_vars_0x73.html#index_s"><span>s</span></a></li>
<li><a href="globals_vars_0x74.html#index_t"><span>t</span></a></li>
<li><a href="globals_vars_0x75.html#index_u"><span>u</span></a></li>
+ <li><a href="globals_vars_0x76.html#index_v"><span>v</span></a></li>
<li><a href="globals_vars_0x77.html#index_w"><span>w</span></a></li>
<li><a href="globals_vars_0x78.html#index_x"><span>x</span></a></li>
<li><a href="globals_vars_0x7a.html#index_z"><span>z</span></a></li>
diff --git a/doc/html/globals_vars_0x63.html b/doc/html/globals_vars_0x63.html
index 6899381a8..c0c2ec3e8 100644
--- a/doc/html/globals_vars_0x63.html
+++ b/doc/html/globals_vars_0x63.html
@@ -101,6 +101,7 @@ var searchBox = new SearchBox("searchBox", "search",false,'Search');
<li><a href="globals_vars_0x73.html#index_s"><span>s</span></a></li>
<li><a href="globals_vars_0x74.html#index_t"><span>t</span></a></li>
<li><a href="globals_vars_0x75.html#index_u"><span>u</span></a></li>
+ <li><a href="globals_vars_0x76.html#index_v"><span>v</span></a></li>
<li><a href="globals_vars_0x77.html#index_w"><span>w</span></a></li>
<li><a href="globals_vars_0x78.html#index_x"><span>x</span></a></li>
<li><a href="globals_vars_0x7a.html#index_z"><span>z</span></a></li>
diff --git a/doc/html/globals_vars_0x64.html b/doc/html/globals_vars_0x64.html
index cb5747ff2..eeee1c304 100644
--- a/doc/html/globals_vars_0x64.html
+++ b/doc/html/globals_vars_0x64.html
@@ -101,6 +101,7 @@ var searchBox = new SearchBox("searchBox", "search",false,'Search');
<li><a href="globals_vars_0x73.html#index_s"><span>s</span></a></li>
<li><a href="globals_vars_0x74.html#index_t"><span>t</span></a></li>
<li><a href="globals_vars_0x75.html#index_u"><span>u</span></a></li>
+ <li><a href="globals_vars_0x76.html#index_v"><span>v</span></a></li>
<li><a href="globals_vars_0x77.html#index_w"><span>w</span></a></li>
<li><a href="globals_vars_0x78.html#index_x"><span>x</span></a></li>
<li><a href="globals_vars_0x7a.html#index_z"><span>z</span></a></li>
@@ -142,6 +143,12 @@ $(document).ready(function(){initNavTree('globals_vars_0x64.html','');});
<li>DB_UPDATE_VERSION
: <a class="el" href="boot_8php.html#ac59a18a4838710d6c2de37aed6b21f03">boot.php</a>
</li>
+<li>DBTYPE_MYSQL
+: <a class="el" href="boot_8php.html#a8c9a11c47394244cbe18cd75b9726d5f">boot.php</a>
+</li>
+<li>DBTYPE_POSTGRES
+: <a class="el" href="boot_8php.html#a37ddabc112db443b4c67fbc0f708817e">boot.php</a>
+</li>
<li>DEFAULT_DB_ENGINE
: <a class="el" href="boot_8php.html#aa8a2b61e70900139d1ca28e46f1da49d">boot.php</a>
</li>
diff --git a/doc/html/globals_vars_0x65.html b/doc/html/globals_vars_0x65.html
index b39b21f8a..586510f97 100644
--- a/doc/html/globals_vars_0x65.html
+++ b/doc/html/globals_vars_0x65.html
@@ -101,6 +101,7 @@ var searchBox = new SearchBox("searchBox", "search",false,'Search');
<li><a href="globals_vars_0x73.html#index_s"><span>s</span></a></li>
<li><a href="globals_vars_0x74.html#index_t"><span>t</span></a></li>
<li><a href="globals_vars_0x75.html#index_u"><span>u</span></a></li>
+ <li><a href="globals_vars_0x76.html#index_v"><span>v</span></a></li>
<li><a href="globals_vars_0x77.html#index_w"><span>w</span></a></li>
<li><a href="globals_vars_0x78.html#index_x"><span>x</span></a></li>
<li><a href="globals_vars_0x7a.html#index_z"><span>z</span></a></li>
@@ -140,7 +141,7 @@ $(document).ready(function(){initNavTree('globals_vars_0x65.html','');});
<h3><a class="anchor" id="index_e"></a>- e -</h3><ul>
<li>else
-: <a class="el" href="auth_8php.html#a0950af7c2888ca1d4743fe5d0bff9ae5">auth.php</a>
+: <a class="el" href="auth_8php.html#a6f60fb54f60cd36c2430d6615a7b4f3f">auth.php</a>
, <a class="el" href="fpostit_8php.html#a501b5ca82f287509fc691c88524064c1">fpostit.php</a>
, <a class="el" href="redbasic_2php_2style_8php.html#ab3afb90d611eca90819f597a2c0bb459">style.php</a>
, <a class="el" href="tpldebug_8php.html#afbc7aadb3f7ff1edf0aaaa326a42179c">tpldebug.php</a>
diff --git a/doc/html/globals_vars_0x66.html b/doc/html/globals_vars_0x66.html
index ac01ed206..79f67b3d5 100644
--- a/doc/html/globals_vars_0x66.html
+++ b/doc/html/globals_vars_0x66.html
@@ -101,6 +101,7 @@ var searchBox = new SearchBox("searchBox", "search",false,'Search');
<li><a href="globals_vars_0x73.html#index_s"><span>s</span></a></li>
<li><a href="globals_vars_0x74.html#index_t"><span>t</span></a></li>
<li><a href="globals_vars_0x75.html#index_u"><span>u</span></a></li>
+ <li><a href="globals_vars_0x76.html#index_v"><span>v</span></a></li>
<li><a href="globals_vars_0x77.html#index_w"><span>w</span></a></li>
<li><a href="globals_vars_0x78.html#index_x"><span>x</span></a></li>
<li><a href="globals_vars_0x7a.html#index_z"><span>z</span></a></li>
diff --git a/doc/html/globals_vars_0x67.html b/doc/html/globals_vars_0x67.html
index 350a44913..6d33c7a1b 100644
--- a/doc/html/globals_vars_0x67.html
+++ b/doc/html/globals_vars_0x67.html
@@ -101,6 +101,7 @@ var searchBox = new SearchBox("searchBox", "search",false,'Search');
<li><a href="globals_vars_0x73.html#index_s"><span>s</span></a></li>
<li><a href="globals_vars_0x74.html#index_t"><span>t</span></a></li>
<li><a href="globals_vars_0x75.html#index_u"><span>u</span></a></li>
+ <li><a href="globals_vars_0x76.html#index_v"><span>v</span></a></li>
<li><a href="globals_vars_0x77.html#index_w"><span>w</span></a></li>
<li><a href="globals_vars_0x78.html#index_x"><span>x</span></a></li>
<li><a href="globals_vars_0x7a.html#index_z"><span>z</span></a></li>
diff --git a/doc/html/globals_vars_0x68.html b/doc/html/globals_vars_0x68.html
index 856ab6ec1..fba7c5730 100644
--- a/doc/html/globals_vars_0x68.html
+++ b/doc/html/globals_vars_0x68.html
@@ -101,6 +101,7 @@ var searchBox = new SearchBox("searchBox", "search",false,'Search');
<li><a href="globals_vars_0x73.html#index_s"><span>s</span></a></li>
<li><a href="globals_vars_0x74.html#index_t"><span>t</span></a></li>
<li><a href="globals_vars_0x75.html#index_u"><span>u</span></a></li>
+ <li><a href="globals_vars_0x76.html#index_v"><span>v</span></a></li>
<li><a href="globals_vars_0x77.html#index_w"><span>w</span></a></li>
<li><a href="globals_vars_0x78.html#index_x"><span>x</span></a></li>
<li><a href="globals_vars_0x7a.html#index_z"><span>z</span></a></li>
diff --git a/doc/html/globals_vars_0x69.html b/doc/html/globals_vars_0x69.html
index 478edb9bb..a2e21c212 100644
--- a/doc/html/globals_vars_0x69.html
+++ b/doc/html/globals_vars_0x69.html
@@ -101,6 +101,7 @@ var searchBox = new SearchBox("searchBox", "search",false,'Search');
<li><a href="globals_vars_0x73.html#index_s"><span>s</span></a></li>
<li><a href="globals_vars_0x74.html#index_t"><span>t</span></a></li>
<li><a href="globals_vars_0x75.html#index_u"><span>u</span></a></li>
+ <li><a href="globals_vars_0x76.html#index_v"><span>v</span></a></li>
<li><a href="globals_vars_0x77.html#index_w"><span>w</span></a></li>
<li><a href="globals_vars_0x78.html#index_x"><span>x</span></a></li>
<li><a href="globals_vars_0x7a.html#index_z"><span>z</span></a></li>
@@ -198,6 +199,9 @@ $(document).ready(function(){initNavTree('globals_vars_0x69.html','');});
<li>ITEM_RETAINED
: <a class="el" href="boot_8php.html#a11cfe7d99b4dac0454d0de8873989f81">boot.php</a>
</li>
+<li>ITEM_RSS
+: <a class="el" href="boot_8php.html#ac4d1c93dabcace711ffb4931204c336b">boot.php</a>
+</li>
<li>ITEM_SPAM
: <a class="el" href="boot_8php.html#a40d885b2cfd736aab4234ae641ca4dfb">boot.php</a>
</li>
diff --git a/doc/html/globals_vars_0x6a.html b/doc/html/globals_vars_0x6a.html
index b2d1d4353..b2df893eb 100644
--- a/doc/html/globals_vars_0x6a.html
+++ b/doc/html/globals_vars_0x6a.html
@@ -101,6 +101,7 @@ var searchBox = new SearchBox("searchBox", "search",false,'Search');
<li><a href="globals_vars_0x73.html#index_s"><span>s</span></a></li>
<li><a href="globals_vars_0x74.html#index_t"><span>t</span></a></li>
<li><a href="globals_vars_0x75.html#index_u"><span>u</span></a></li>
+ <li><a href="globals_vars_0x76.html#index_v"><span>v</span></a></li>
<li><a href="globals_vars_0x77.html#index_w"><span>w</span></a></li>
<li><a href="globals_vars_0x78.html#index_x"><span>x</span></a></li>
<li><a href="globals_vars_0x7a.html#index_z"><span>z</span></a></li>
diff --git a/doc/html/globals_vars_0x6b.html b/doc/html/globals_vars_0x6b.html
index 8ebbfc2e3..6ef61e098 100644
--- a/doc/html/globals_vars_0x6b.html
+++ b/doc/html/globals_vars_0x6b.html
@@ -101,6 +101,7 @@ var searchBox = new SearchBox("searchBox", "search",false,'Search');
<li><a href="globals_vars_0x73.html#index_s"><span>s</span></a></li>
<li><a href="globals_vars_0x74.html#index_t"><span>t</span></a></li>
<li><a href="globals_vars_0x75.html#index_u"><span>u</span></a></li>
+ <li><a href="globals_vars_0x76.html#index_v"><span>v</span></a></li>
<li><a href="globals_vars_0x77.html#index_w"><span>w</span></a></li>
<li><a href="globals_vars_0x78.html#index_x"><span>x</span></a></li>
<li><a href="globals_vars_0x7a.html#index_z"><span>z</span></a></li>
diff --git a/doc/html/globals_vars_0x6c.html b/doc/html/globals_vars_0x6c.html
index f771e49cb..2532cd99d 100644
--- a/doc/html/globals_vars_0x6c.html
+++ b/doc/html/globals_vars_0x6c.html
@@ -101,6 +101,7 @@ var searchBox = new SearchBox("searchBox", "search",false,'Search');
<li><a href="globals_vars_0x73.html#index_s"><span>s</span></a></li>
<li><a href="globals_vars_0x74.html#index_t"><span>t</span></a></li>
<li><a href="globals_vars_0x75.html#index_u"><span>u</span></a></li>
+ <li><a href="globals_vars_0x76.html#index_v"><span>v</span></a></li>
<li><a href="globals_vars_0x77.html#index_w"><span>w</span></a></li>
<li><a href="globals_vars_0x78.html#index_x"><span>x</span></a></li>
<li><a href="globals_vars_0x7a.html#index_z"><span>z</span></a></li>
diff --git a/doc/html/globals_vars_0x6d.html b/doc/html/globals_vars_0x6d.html
index b6da098d2..e95cfac46 100644
--- a/doc/html/globals_vars_0x6d.html
+++ b/doc/html/globals_vars_0x6d.html
@@ -101,6 +101,7 @@ var searchBox = new SearchBox("searchBox", "search",false,'Search');
<li><a href="globals_vars_0x73.html#index_s"><span>s</span></a></li>
<li><a href="globals_vars_0x74.html#index_t"><span>t</span></a></li>
<li><a href="globals_vars_0x75.html#index_u"><span>u</span></a></li>
+ <li><a href="globals_vars_0x76.html#index_v"><span>v</span></a></li>
<li><a href="globals_vars_0x77.html#index_w"><span>w</span></a></li>
<li><a href="globals_vars_0x78.html#index_x"><span>x</span></a></li>
<li><a href="globals_vars_0x7a.html#index_z"><span>z</span></a></li>
diff --git a/doc/html/globals_vars_0x6e.html b/doc/html/globals_vars_0x6e.html
index 8fcd642b9..42504fe64 100644
--- a/doc/html/globals_vars_0x6e.html
+++ b/doc/html/globals_vars_0x6e.html
@@ -101,6 +101,7 @@ var searchBox = new SearchBox("searchBox", "search",false,'Search');
<li><a href="globals_vars_0x73.html#index_s"><span>s</span></a></li>
<li><a href="globals_vars_0x74.html#index_t"><span>t</span></a></li>
<li><a href="globals_vars_0x75.html#index_u"><span>u</span></a></li>
+ <li><a href="globals_vars_0x76.html#index_v"><span>v</span></a></li>
<li><a href="globals_vars_0x77.html#index_w"><span>w</span></a></li>
<li><a href="globals_vars_0x78.html#index_x"><span>x</span></a></li>
<li><a href="globals_vars_0x7a.html#index_z"><span>z</span></a></li>
@@ -140,7 +141,8 @@ $(document).ready(function(){initNavTree('globals_vars_0x6e.html','');});
<h3><a class="anchor" id="index_n"></a>- n -</h3><ul>
<li>n
-: <a class="el" href="php2po_8php.html#a1594a11499d06cc8a789ee7ca0c7a12b">php2po.php</a>
+: <a class="el" href="fixd_8php.html#a9d4f8a2ab4d92b3ccfd7cba0458098eb">fixd.php</a>
+, <a class="el" href="php2po_8php.html#a1594a11499d06cc8a789ee7ca0c7a12b">php2po.php</a>
</li>
<li>NAMESPACE_ACTIVITY
: <a class="el" href="boot_8php.html#a5df5359090d1f8e898c36d7cf8878ad2">boot.php</a>
@@ -184,6 +186,9 @@ $(document).ready(function(){initNavTree('globals_vars_0x6e.html','');});
<li>NAMESPACE_TOMB
: <a class="el" href="boot_8php.html#a4bfe22e163657690dfb6d5b1d04cb47e">boot.php</a>
</li>
+<li>NAMESPACE_YMEDIA
+: <a class="el" href="boot_8php.html#a3d48dffd9dc73a187263c3002cdf00c0">boot.php</a>
+</li>
<li>NAMESPACE_ZOT
: <a class="el" href="boot_8php.html#a49f2a70b3b43aa904223a8d19e986a47">boot.php</a>
</li>
diff --git a/doc/html/globals_vars_0x70.html b/doc/html/globals_vars_0x70.html
index 093dbc365..956ed7d82 100644
--- a/doc/html/globals_vars_0x70.html
+++ b/doc/html/globals_vars_0x70.html
@@ -101,6 +101,7 @@ var searchBox = new SearchBox("searchBox", "search",false,'Search');
<li><a href="globals_vars_0x73.html#index_s"><span>s</span></a></li>
<li><a href="globals_vars_0x74.html#index_t"><span>t</span></a></li>
<li><a href="globals_vars_0x75.html#index_u"><span>u</span></a></li>
+ <li><a href="globals_vars_0x76.html#index_v"><span>v</span></a></li>
<li><a href="globals_vars_0x77.html#index_w"><span>w</span></a></li>
<li><a href="globals_vars_0x78.html#index_x"><span>x</span></a></li>
<li><a href="globals_vars_0x7a.html#index_z"><span>z</span></a></li>
@@ -160,6 +161,9 @@ $(document).ready(function(){initNavTree('globals_vars_0x70.html','');});
<li>PAGE_HIDDEN
: <a class="el" href="boot_8php.html#a5e322a2a2d0f51924c0b2e874988e640">boot.php</a>
</li>
+<li>PAGE_HUBADMIN
+: <a class="el" href="boot_8php.html#afbb21ecccac9819aa65397e816868a5f">boot.php</a>
+</li>
<li>PAGE_NORMAL
: <a class="el" href="boot_8php.html#a09532c3f750ae8c4527e63b2b790cbf3">boot.php</a>
</li>
@@ -247,6 +251,9 @@ $(document).ready(function(){initNavTree('globals_vars_0x70.html','');});
<li>PERMS_W_WALL
: <a class="el" href="boot_8php.html#a6b14a31a8aa9f3452a13383f413bffa2">boot.php</a>
</li>
+<li>PHOTO_ADULT
+: <a class="el" href="boot_8php.html#a921c55b9fa59a327a5f0e07fa1ccb2e0">boot.php</a>
+</li>
<li>PHOTO_NORMAL
: <a class="el" href="boot_8php.html#a4a49b29838ef2c45ab3556b52baec6a4">boot.php</a>
</li>
@@ -274,15 +281,6 @@ $(document).ready(function(){initNavTree('globals_vars_0x70.html','');});
<li>POLL_TENSCALE
: <a class="el" href="boot_8php.html#a1ba00027b718db732f30fc0e2c3e0abc">boot.php</a>
</li>
-<li>post_to_red_acct_name
-: <a class="el" href="post__to__red_8php.html#a588cea66afe0b32f27f2713d44940119">post_to_red.php</a>
-</li>
-<li>post_to_red_path
-: <a class="el" href="post__to__red_8php.html#a6210f39392a5f0fa0255cc7d3760493a">post_to_red.php</a>
-</li>
-<li>post_to_red_version
-: <a class="el" href="post__to__red_8php.html#af3e7ebd361d4ed7cb6d43209970cd94a">post_to_red.php</a>
-</li>
</ul>
</div><!-- contents -->
</div><!-- doc-content -->
diff --git a/doc/html/globals_vars_0x72.html b/doc/html/globals_vars_0x72.html
index 12c800d3f..20a6af1a9 100644
--- a/doc/html/globals_vars_0x72.html
+++ b/doc/html/globals_vars_0x72.html
@@ -101,6 +101,7 @@ var searchBox = new SearchBox("searchBox", "search",false,'Search');
<li><a href="globals_vars_0x73.html#index_s"><span>s</span></a></li>
<li><a href="globals_vars_0x74.html#index_t"><span>t</span></a></li>
<li><a href="globals_vars_0x75.html#index_u"><span>u</span></a></li>
+ <li><a href="globals_vars_0x76.html#index_v"><span>v</span></a></li>
<li><a href="globals_vars_0x77.html#index_w"><span>w</span></a></li>
<li><a href="globals_vars_0x78.html#index_x"><span>x</span></a></li>
<li><a href="globals_vars_0x7a.html#index_z"><span>z</span></a></li>
@@ -151,6 +152,27 @@ $(document).ready(function(){initNavTree('globals_vars_0x72.html','');});
<li>RED_VERSION
: <a class="el" href="boot_8php.html#a21cc29e0025943e7c28ff58cb4856ac3">boot.php</a>
</li>
+<li>REDMATRIX_IMPORTCHANNEL
+: <a class="el" href="refimport_8php.html#a54003135d7c8994a76e831fb6faa2fe6">refimport.php</a>
+</li>
+<li>REFLECT_BASEURL
+: <a class="el" href="refimport_8php.html#ac43699d8ae86175e049aa4e87853caac">refimport.php</a>
+</li>
+<li>REFLECT_BLOGNAME
+: <a class="el" href="refimport_8php.html#a8459983ebf013ed5737f7ed317bfae1f">refimport.php</a>
+</li>
+<li>REFLECT_EXPORTUSERNAME
+: <a class="el" href="refimport_8php.html#ad297afe0730c9119dd94d3cf0521b025">refimport.php</a>
+</li>
+<li>REFLECT_MAXPERRUN
+: <a class="el" href="refimport_8php.html#a9c1f681f1f303400a9818696a9f96d6f">refimport.php</a>
+</li>
+<li>REFLECT_OVERWRITE
+: <a class="el" href="refimport_8php.html#aeec793cefa260f788b7d005adcb35796">refimport.php</a>
+</li>
+<li>REFLECT_USERFILE
+: <a class="el" href="refimport_8php.html#a684a44d2401abf75f441591bcb41d10d">refimport.php</a>
+</li>
<li>REGISTER_APPROVE
: <a class="el" href="boot_8php.html#a7176c0f9f1c98421b97735d892cf6252">boot.php</a>
</li>
diff --git a/doc/html/globals_vars_0x73.html b/doc/html/globals_vars_0x73.html
index 578fb9bd7..34e04bb36 100644
--- a/doc/html/globals_vars_0x73.html
+++ b/doc/html/globals_vars_0x73.html
@@ -101,6 +101,7 @@ var searchBox = new SearchBox("searchBox", "search",false,'Search');
<li class="current"><a href="globals_vars_0x73.html#index_s"><span>s</span></a></li>
<li><a href="globals_vars_0x74.html#index_t"><span>t</span></a></li>
<li><a href="globals_vars_0x75.html#index_u"><span>u</span></a></li>
+ <li><a href="globals_vars_0x76.html#index_v"><span>v</span></a></li>
<li><a href="globals_vars_0x77.html#index_w"><span>w</span></a></li>
<li><a href="globals_vars_0x78.html#index_x"><span>x</span></a></li>
<li><a href="globals_vars_0x7a.html#index_z"><span>z</span></a></li>
diff --git a/doc/html/globals_vars_0x74.html b/doc/html/globals_vars_0x74.html
index 815c04462..193d418d0 100644
--- a/doc/html/globals_vars_0x74.html
+++ b/doc/html/globals_vars_0x74.html
@@ -101,6 +101,7 @@ var searchBox = new SearchBox("searchBox", "search",false,'Search');
<li><a href="globals_vars_0x73.html#index_s"><span>s</span></a></li>
<li class="current"><a href="globals_vars_0x74.html#index_t"><span>t</span></a></li>
<li><a href="globals_vars_0x75.html#index_u"><span>u</span></a></li>
+ <li><a href="globals_vars_0x76.html#index_v"><span>v</span></a></li>
<li><a href="globals_vars_0x77.html#index_w"><span>w</span></a></li>
<li><a href="globals_vars_0x78.html#index_x"><span>x</span></a></li>
<li><a href="globals_vars_0x7a.html#index_z"><span>z</span></a></li>
diff --git a/doc/html/globals_vars_0x75.html b/doc/html/globals_vars_0x75.html
index 86d992d41..58204f28b 100644
--- a/doc/html/globals_vars_0x75.html
+++ b/doc/html/globals_vars_0x75.html
@@ -101,6 +101,7 @@ var searchBox = new SearchBox("searchBox", "search",false,'Search');
<li><a href="globals_vars_0x73.html#index_s"><span>s</span></a></li>
<li><a href="globals_vars_0x74.html#index_t"><span>t</span></a></li>
<li class="current"><a href="globals_vars_0x75.html#index_u"><span>u</span></a></li>
+ <li><a href="globals_vars_0x76.html#index_v"><span>v</span></a></li>
<li><a href="globals_vars_0x77.html#index_w"><span>w</span></a></li>
<li><a href="globals_vars_0x78.html#index_x"><span>x</span></a></li>
<li><a href="globals_vars_0x7a.html#index_z"><span>z</span></a></li>
diff --git a/doc/html/globals_vars_0x76.html b/doc/html/globals_vars_0x76.html
new file mode 100644
index 000000000..a3452e61d
--- /dev/null
+++ b/doc/html/globals_vars_0x76.html
@@ -0,0 +1,179 @@
+<!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: File Members</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 class="current"><a href="globals.html"><span>File&#160;Members</span></a></li>
+ </ul>
+ </div>
+ <div id="navrow3" class="tabs2">
+ <ul class="tablist">
+ <li><a href="globals.html"><span>All</span></a></li>
+ <li><a href="globals_func.html"><span>Functions</span></a></li>
+ <li class="current"><a href="globals_vars.html"><span>Variables</span></a></li>
+ </ul>
+ </div>
+ <div id="navrow4" class="tabs3">
+ <ul class="tablist">
+ <li><a href="globals_vars.html#index_0x24"><span>$</span></a></li>
+ <li><a href="globals_vars_0x61.html#index_a"><span>a</span></a></li>
+ <li><a href="globals_vars_0x63.html#index_c"><span>c</span></a></li>
+ <li><a href="globals_vars_0x64.html#index_d"><span>d</span></a></li>
+ <li><a href="globals_vars_0x65.html#index_e"><span>e</span></a></li>
+ <li><a href="globals_vars_0x66.html#index_f"><span>f</span></a></li>
+ <li><a href="globals_vars_0x67.html#index_g"><span>g</span></a></li>
+ <li><a href="globals_vars_0x68.html#index_h"><span>h</span></a></li>
+ <li><a href="globals_vars_0x69.html#index_i"><span>i</span></a></li>
+ <li><a href="globals_vars_0x6a.html#index_j"><span>j</span></a></li>
+ <li><a href="globals_vars_0x6b.html#index_k"><span>k</span></a></li>
+ <li><a href="globals_vars_0x6c.html#index_l"><span>l</span></a></li>
+ <li><a href="globals_vars_0x6d.html#index_m"><span>m</span></a></li>
+ <li><a href="globals_vars_0x6e.html#index_n"><span>n</span></a></li>
+ <li><a href="globals_vars_0x70.html#index_p"><span>p</span></a></li>
+ <li><a href="globals_vars_0x72.html#index_r"><span>r</span></a></li>
+ <li><a href="globals_vars_0x73.html#index_s"><span>s</span></a></li>
+ <li><a href="globals_vars_0x74.html#index_t"><span>t</span></a></li>
+ <li><a href="globals_vars_0x75.html#index_u"><span>u</span></a></li>
+ <li class="current"><a href="globals_vars_0x76.html#index_v"><span>v</span></a></li>
+ <li><a href="globals_vars_0x77.html#index_w"><span>w</span></a></li>
+ <li><a href="globals_vars_0x78.html#index_x"><span>x</span></a></li>
+ <li><a href="globals_vars_0x7a.html#index_z"><span>z</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('globals_vars_0x76.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="contents">
+&#160;
+
+<h3><a class="anchor" id="index_v"></a>- v -</h3><ul>
+<li>VNOTIFY_ALERT
+: <a class="el" href="boot_8php.html#a9f8a2938ddd9ee2867e6f8ce77b61b2f">boot.php</a>
+</li>
+<li>VNOTIFY_BIRTHDAY
+: <a class="el" href="boot_8php.html#ac89396b9144391acd08d6d0f9b332220">boot.php</a>
+</li>
+<li>VNOTIFY_CHANNEL
+: <a class="el" href="boot_8php.html#a7b511bd93202c43405adbe3b5bcebbfe">boot.php</a>
+</li>
+<li>VNOTIFY_EVENT
+: <a class="el" href="boot_8php.html#ad94aca4c260b8a892397786201dc4664">boot.php</a>
+</li>
+<li>VNOTIFY_EVENTTODAY
+: <a class="el" href="boot_8php.html#a76480b213af379c0c6c7fa4e39019ca9">boot.php</a>
+</li>
+<li>VNOTIFY_INFO
+: <a class="el" href="boot_8php.html#a37281c30bd92cecb499878d6778c570f">boot.php</a>
+</li>
+<li>VNOTIFY_INTRO
+: <a class="el" href="boot_8php.html#a1997c4b7d0253e036bc0fb6b20e4af71">boot.php</a>
+</li>
+<li>VNOTIFY_MAIL
+: <a class="el" href="boot_8php.html#a0afeb43da443d6ff3526ede5ecdcc3b3">boot.php</a>
+</li>
+<li>VNOTIFY_NETWORK
+: <a class="el" href="boot_8php.html#a997614f25e58f8313641e1eb0109fd10">boot.php</a>
+</li>
+<li>VNOTIFY_REGISTER
+: <a class="el" href="boot_8php.html#ae09767b94688657978ff9366ec63684b">boot.php</a>
+</li>
+<li>VNOTIFY_SYSTEM
+: <a class="el" href="boot_8php.html#a7e5627b5ca4b7464feb0f08663b19ea1">boot.php</a>
+</li>
+</ul>
+</div><!-- contents -->
+</div><!-- doc-content -->
+
diff --git a/doc/html/globals_vars_0x77.html b/doc/html/globals_vars_0x77.html
index c9cdeb78a..042ef4a64 100644
--- a/doc/html/globals_vars_0x77.html
+++ b/doc/html/globals_vars_0x77.html
@@ -101,6 +101,7 @@ var searchBox = new SearchBox("searchBox", "search",false,'Search');
<li><a href="globals_vars_0x73.html#index_s"><span>s</span></a></li>
<li><a href="globals_vars_0x74.html#index_t"><span>t</span></a></li>
<li><a href="globals_vars_0x75.html#index_u"><span>u</span></a></li>
+ <li><a href="globals_vars_0x76.html#index_v"><span>v</span></a></li>
<li class="current"><a href="globals_vars_0x77.html#index_w"><span>w</span></a></li>
<li><a href="globals_vars_0x78.html#index_x"><span>x</span></a></li>
<li><a href="globals_vars_0x7a.html#index_z"><span>z</span></a></li>
diff --git a/doc/html/globals_vars_0x78.html b/doc/html/globals_vars_0x78.html
index 4278aa8f4..41525e813 100644
--- a/doc/html/globals_vars_0x78.html
+++ b/doc/html/globals_vars_0x78.html
@@ -101,6 +101,7 @@ var searchBox = new SearchBox("searchBox", "search",false,'Search');
<li><a href="globals_vars_0x73.html#index_s"><span>s</span></a></li>
<li><a href="globals_vars_0x74.html#index_t"><span>t</span></a></li>
<li><a href="globals_vars_0x75.html#index_u"><span>u</span></a></li>
+ <li><a href="globals_vars_0x76.html#index_v"><span>v</span></a></li>
<li><a href="globals_vars_0x77.html#index_w"><span>w</span></a></li>
<li class="current"><a href="globals_vars_0x78.html#index_x"><span>x</span></a></li>
<li><a href="globals_vars_0x7a.html#index_z"><span>z</span></a></li>
@@ -154,6 +155,9 @@ $(document).ready(function(){initNavTree('globals_vars_0x78.html','');});
<li>XCHAN_FLAGS_ORPHAN
: <a class="el" href="boot_8php.html#a1c923b99bf77e4203ae94e5684b6ad0f">boot.php</a>
</li>
+<li>XCHAN_FLAGS_PUBFORUM
+: <a class="el" href="boot_8php.html#a0209e605028a5bb492683951ab30d49d">boot.php</a>
+</li>
<li>XCHAN_FLAGS_SELFCENSORED
: <a class="el" href="boot_8php.html#a5a681a672e007cdc22b43345d71f07c6">boot.php</a>
</li>
diff --git a/doc/html/globals_vars_0x7a.html b/doc/html/globals_vars_0x7a.html
index 1d8482c2c..2f0197c73 100644
--- a/doc/html/globals_vars_0x7a.html
+++ b/doc/html/globals_vars_0x7a.html
@@ -101,6 +101,7 @@ var searchBox = new SearchBox("searchBox", "search",false,'Search');
<li><a href="globals_vars_0x73.html#index_s"><span>s</span></a></li>
<li><a href="globals_vars_0x74.html#index_t"><span>t</span></a></li>
<li><a href="globals_vars_0x75.html#index_u"><span>u</span></a></li>
+ <li><a href="globals_vars_0x76.html#index_v"><span>v</span></a></li>
<li><a href="globals_vars_0x77.html#index_w"><span>w</span></a></li>
<li><a href="globals_vars_0x78.html#index_x"><span>x</span></a></li>
<li class="current"><a href="globals_vars_0x7a.html#index_z"><span>z</span></a></li>
diff --git a/doc/html/hierarchy.html b/doc/html/hierarchy.html
index 39ff3d4e9..d86962f9f 100644
--- a/doc/html/hierarchy.html
+++ b/doc/html/hierarchy.html
@@ -112,41 +112,51 @@ $(document).ready(function(){initNavTree('hierarchy.html','');});
<div class="textblock">This inheritance list is sorted roughly, but not completely, alphabetically:</div><div class="directory">
<div class="levels">[detail level <span onclick="javascript:toggleLevel(1);">1</span><span onclick="javascript:toggleLevel(2);">2</span>]</div><table class="directory">
<tr id="row_0_" class="even"><td class="entry"><img id="arr_0_" src="ftv2mnode.png" alt="o" width="16" height="22" onclick="toggleFolder('0_')"/><img src="ftv2cl.png" alt="C" width="24" height="22" /><b>AbstractBasic</b></td><td class="desc"></td></tr>
-<tr id="row_0_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="classRedBasicAuth.html" target="_self">RedBasicAuth</a></td><td class="desc"></td></tr>
-<tr id="row_1_" 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="classApp.html" target="_self">App</a></td><td class="desc"></td></tr>
+<tr id="row_0_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="classRedMatrix_1_1RedDAV_1_1RedBasicAuth.html" target="_self">RedMatrix\RedDAV\RedBasicAuth</a></td><td class="desc">Authentication backend class for <a class="el" href="namespaceRedMatrix_1_1RedDAV.html">RedDAV</a></td></tr>
+<tr id="row_1_" 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="classApp.html" target="_self">App</a></td><td class="desc">Our main application structure for the life of this page</td></tr>
<tr id="row_2_"><td class="entry"><img id="arr_2_" src="ftv2mnode.png" alt="o" width="16" height="22" onclick="toggleFolder('2_')"/><img src="ftv2cl.png" alt="C" width="24" height="22" /><a class="el" href="classBaseObject.html" target="_self">BaseObject</a></td><td class="desc"></td></tr>
<tr id="row_2_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="classConversation.html" target="_self">Conversation</a></td><td class="desc"></td></tr>
<tr id="row_2_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="classItem.html" target="_self">Item</a></td><td class="desc"></td></tr>
<tr id="row_3_" 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="classCache.html" target="_self">Cache</a></td><td class="desc"></td></tr>
-<tr id="row_4_"><td class="entry"><img id="arr_4_" src="ftv2mnode.png" alt="o" width="16" height="22" onclick="toggleFolder('4_')"/><img src="ftv2cl.png" alt="C" width="24" height="22" /><a class="el" href="classdba__driver.html" target="_self">dba_driver</a></td><td class="desc"></td></tr>
+<tr id="row_4_"><td class="entry"><img id="arr_4_" src="ftv2mnode.png" alt="o" width="16" height="22" onclick="toggleFolder('4_')"/><img src="ftv2cl.png" alt="C" width="24" height="22" /><a class="el" href="classdba__driver.html" target="_self">dba_driver</a></td><td class="desc">Abstract database driver class</td></tr>
<tr id="row_4_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="classdba__mysql.html" target="_self">dba_mysql</a></td><td class="desc"></td></tr>
-<tr id="row_4_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="classdba__mysqli.html" target="_self">dba_mysqli</a></td><td class="desc"></td></tr>
-<tr id="row_5_" 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="classenotify.html" target="_self">enotify</a></td><td class="desc"></td></tr>
-<tr id="row_6_"><td class="entry"><img id="arr_6_" src="ftv2mnode.png" alt="o" width="16" height="22" onclick="toggleFolder('6_')"/><img src="ftv2cl.png" alt="C" width="24" height="22" /><b>ICollection</b></td><td class="desc"></td></tr>
-<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"><a class="el" href="classRedDirectory.html" title="RedDirectory class.">RedDirectory</a> class</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>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"><a class="el" href="classRedDirectory.html" title="RedDirectory class.">RedDirectory</a> class</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>
-<tr id="row_10_" class="even"><td class="entry"><img id="arr_10_" src="ftv2mnode.png" alt="o" width="16" height="22" onclick="toggleFolder('10_')"/><img src="ftv2cl.png" alt="C" width="24" height="22" /><b>Node</b></td><td class="desc"></td></tr>
-<tr id="row_10_0_"><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="classRedDirectory.html" target="_self">RedDirectory</a></td><td class="desc"><a class="el" href="classRedDirectory.html" title="RedDirectory class.">RedDirectory</a> class</td></tr>
-<tr id="row_10_1_" 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_11_"><td class="entry"><img id="arr_11_" src="ftv2mnode.png" alt="o" width="16" height="22" onclick="toggleFolder('11_')"/><img src="ftv2cl.png" alt="C" width="24" height="22" /><b>OAuthDataStore</b></td><td class="desc"></td></tr>
-<tr id="row_11_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="classFKOAuthDataStore.html" target="_self">FKOAuthDataStore</a></td><td class="desc"></td></tr>
-<tr id="row_12_"><td class="entry"><img id="arr_12_" src="ftv2mnode.png" alt="o" width="16" height="22" onclick="toggleFolder('12_')"/><img src="ftv2cl.png" alt="C" width="24" height="22" /><b>OAuthServer</b></td><td class="desc"></td></tr>
-<tr id="row_12_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="classFKOAuth1.html" target="_self">FKOAuth1</a></td><td class="desc"></td></tr>
-<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" /><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>
+<tr id="row_4_1_"><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="classdba__mysqli.html" target="_self">dba_mysqli</a></td><td class="desc"></td></tr>
+<tr id="row_4_2_" 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="classdba__postgres.html" target="_self">dba_postgres</a></td><td class="desc"></td></tr>
+<tr id="row_5_"><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="classenotify.html" target="_self">enotify</a></td><td class="desc"></td></tr>
+<tr id="row_6_" class="even"><td class="entry"><img id="arr_6_" src="ftv2mnode.png" alt="o" width="16" height="22" onclick="toggleFolder('6_')"/><img src="ftv2cl.png" alt="C" width="24" height="22" /><b>ICollection</b></td><td class="desc"></td></tr>
+<tr id="row_6_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="classRedMatrix_1_1RedDAV_1_1RedDirectory.html" target="_self">RedMatrix\RedDAV\RedDirectory</a></td><td class="desc"><a class="el" href="classRedMatrix_1_1RedDAV_1_1RedDirectory.html" title="RedDirectory class.">RedDirectory</a> class</td></tr>
+<tr id="row_7_" class="even"><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_"><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="classRedMatrix_1_1RedDAV_1_1RedFile.html" target="_self">RedMatrix\RedDAV\RedFile</a></td><td class="desc">This class represents a file in DAV</td></tr>
+<tr id="row_8_" 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="classRedMatrix_1_1Import_1_1Import.html" target="_self">RedMatrix\Import\Import</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" /><b>IQuota</b></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="ftv2lastnode.png" alt="\" width="16" height="22" /><img src="ftv2cl.png" alt="C" width="24" height="22" /><a class="el" href="classRedMatrix_1_1RedDAV_1_1RedDirectory.html" target="_self">RedMatrix\RedDAV\RedDirectory</a></td><td class="desc"><a class="el" href="classRedMatrix_1_1RedDAV_1_1RedDirectory.html" title="RedDirectory class.">RedDirectory</a> class</td></tr>
+<tr id="row_10_"><td class="entry"><img id="arr_10_" src="ftv2mnode.png" alt="o" width="16" height="22" onclick="toggleFolder('10_')"/><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_10_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_10_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>
+<tr id="row_11_" class="even"><td class="entry"><img id="arr_11_" src="ftv2mnode.png" alt="o" width="16" height="22" onclick="toggleFolder('11_')"/><img src="ftv2cl.png" alt="C" width="24" height="22" /><b>Node</b></td><td class="desc"></td></tr>
+<tr id="row_11_0_"><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="classRedMatrix_1_1RedDAV_1_1RedDirectory.html" target="_self">RedMatrix\RedDAV\RedDirectory</a></td><td class="desc"><a class="el" href="classRedMatrix_1_1RedDAV_1_1RedDirectory.html" title="RedDirectory class.">RedDirectory</a> class</td></tr>
+<tr id="row_11_1_" 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="classRedMatrix_1_1RedDAV_1_1RedFile.html" target="_self">RedMatrix\RedDAV\RedFile</a></td><td class="desc">This class represents a file in DAV</td></tr>
+<tr id="row_12_"><td class="entry"><img id="arr_12_" src="ftv2mnode.png" alt="o" width="16" height="22" onclick="toggleFolder('12_')"/><img src="ftv2cl.png" alt="C" width="24" height="22" /><b>OAuthDataStore</b></td><td class="desc"></td></tr>
+<tr id="row_12_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="classFKOAuthDataStore.html" target="_self">FKOAuthDataStore</a></td><td class="desc"></td></tr>
+<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" /><b>OAuthServer</b></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="ftv2lastnode.png" alt="\" width="16" height="22" /><img src="ftv2cl.png" alt="C" width="24" height="22" /><a class="el" href="classFKOAuth1.html" target="_self">FKOAuth1</a></td><td class="desc"></td></tr>
+<tr id="row_14_"><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="classphoto__driver.html" target="_self">photo_driver</a></td><td class="desc"></td></tr>
+<tr id="row_14_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_14_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_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" /><b>Plugin</b></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="classRedMatrix_1_1RedDAV_1_1RedBrowser.html" target="_self">RedMatrix\RedDAV\RedBrowser</a></td><td class="desc">Provides a DAV frontend for the webbrowser</td></tr>
+<tr id="row_16_" class="even"><td class="entry"><img id="arr_16_" src="ftv2mnode.png" alt="o" width="16" height="22" onclick="toggleFolder('16_')"/><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_16_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_17_" class="even"><td class="entry"><img id="arr_17_" src="ftv2mnode.png" alt="o" width="16" height="22" onclick="toggleFolder('17_')"/><img src="ftv2cl.png" alt="C" width="24" height="22" /><b>Sabre</b></td><td class="desc"></td></tr>
+<tr id="row_17_0_"><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="classRedMatrix_1_1RedDAV_1_1RedBasicAuth.html" target="_self">RedMatrix\RedDAV\RedBasicAuth</a></td><td class="desc">Authentication backend class for <a class="el" href="namespaceRedMatrix_1_1RedDAV.html">RedDAV</a></td></tr>
+<tr id="row_17_1_" 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="classRedMatrix_1_1RedDAV_1_1RedBrowser.html" target="_self">RedMatrix\RedDAV\RedBrowser</a></td><td class="desc">Provides a DAV frontend for the webbrowser</td></tr>
+<tr id="row_17_2_"><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="classRedMatrix_1_1RedDAV_1_1RedDirectory.html" target="_self">RedMatrix\RedDAV\RedDirectory</a></td><td class="desc"><a class="el" href="classRedMatrix_1_1RedDAV_1_1RedDirectory.html" title="RedDirectory class.">RedDirectory</a> class</td></tr>
+<tr id="row_17_3_" 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="classRedMatrix_1_1RedDAV_1_1RedDirectory.html" target="_self">RedMatrix\RedDAV\RedDirectory</a></td><td class="desc"><a class="el" href="classRedMatrix_1_1RedDAV_1_1RedDirectory.html" title="RedDirectory class.">RedDirectory</a> class</td></tr>
+<tr id="row_17_4_"><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="classRedMatrix_1_1RedDAV_1_1RedDirectory.html" target="_self">RedMatrix\RedDAV\RedDirectory</a></td><td class="desc"><a class="el" href="classRedMatrix_1_1RedDAV_1_1RedDirectory.html" title="RedDirectory class.">RedDirectory</a> class</td></tr>
+<tr id="row_17_5_" 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="classRedMatrix_1_1RedDAV_1_1RedFile.html" target="_self">RedMatrix\RedDAV\RedFile</a></td><td class="desc">This class represents a file in DAV</td></tr>
+<tr id="row_17_6_"><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="classRedMatrix_1_1RedDAV_1_1RedFile.html" target="_self">RedMatrix\RedDAV\RedFile</a></td><td class="desc">This class represents a file in DAV</td></tr>
+<tr id="row_18_" class="even"><td class="entry"><img id="arr_18_" src="ftv2mlastnode.png" alt="\" width="16" height="22" onclick="toggleFolder('18_')"/><img src="ftv2cl.png" alt="C" width="24" height="22" /><b>Smarty</b></td><td class="desc"></td></tr>
+<tr id="row_18_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 6259fc750..83fcb9ea8 100644
--- a/doc/html/hierarchy.js
+++ b/doc/html/hierarchy.js
@@ -1,7 +1,7 @@
var hierarchy =
[
[ "AbstractBasic", null, [
- [ "RedBasicAuth", "classRedBasicAuth.html", null ]
+ [ "RedMatrix\\RedDAV\\RedBasicAuth", "classRedMatrix_1_1RedDAV_1_1RedBasicAuth.html", null ]
] ],
[ "App", "classApp.html", null ],
[ "BaseObject", "classBaseObject.html", [
@@ -11,25 +11,27 @@ var hierarchy =
[ "Cache", "classCache.html", null ],
[ "dba_driver", "classdba__driver.html", [
[ "dba_mysql", "classdba__mysql.html", null ],
- [ "dba_mysqli", "classdba__mysqli.html", null ]
+ [ "dba_mysqli", "classdba__mysqli.html", null ],
+ [ "dba_postgres", "classdba__postgres.html", null ]
] ],
[ "enotify", "classenotify.html", null ],
[ "ICollection", null, [
- [ "RedDirectory", "classRedDirectory.html", null ]
+ [ "RedMatrix\\RedDAV\\RedDirectory", "classRedMatrix_1_1RedDAV_1_1RedDirectory.html", null ]
] ],
[ "IFile", null, [
- [ "RedFile", "classRedFile.html", null ]
+ [ "RedMatrix\\RedDAV\\RedFile", "classRedMatrix_1_1RedDAV_1_1RedFile.html", null ]
] ],
+ [ "RedMatrix\\Import\\Import", "classRedMatrix_1_1Import_1_1Import.html", null ],
[ "IQuota", null, [
- [ "RedDirectory", "classRedDirectory.html", null ]
+ [ "RedMatrix\\RedDAV\\RedDirectory", "classRedMatrix_1_1RedDAV_1_1RedDirectory.html", null ]
] ],
[ "ITemplateEngine", "interfaceITemplateEngine.html", [
[ "FriendicaSmartyEngine", "classFriendicaSmartyEngine.html", null ],
[ "Template", "classTemplate.html", null ]
] ],
[ "Node", null, [
- [ "RedDirectory", "classRedDirectory.html", null ],
- [ "RedFile", "classRedFile.html", null ]
+ [ "RedMatrix\\RedDAV\\RedDirectory", "classRedMatrix_1_1RedDAV_1_1RedDirectory.html", null ],
+ [ "RedMatrix\\RedDAV\\RedFile", "classRedMatrix_1_1RedDAV_1_1RedFile.html", null ]
] ],
[ "OAuthDataStore", null, [
[ "FKOAuthDataStore", "classFKOAuthDataStore.html", null ]
@@ -42,11 +44,20 @@ var hierarchy =
[ "photo_imagick", "classphoto__imagick.html", null ]
] ],
[ "Plugin", null, [
- [ "RedBrowser", "classRedBrowser.html", null ]
+ [ "RedMatrix\\RedDAV\\RedBrowser", "classRedMatrix_1_1RedDAV_1_1RedBrowser.html", null ]
] ],
[ "ProtoDriver", "classProtoDriver.html", [
[ "ZotDriver", "classZotDriver.html", null ]
] ],
+ [ "Sabre", null, [
+ [ "RedMatrix\\RedDAV\\RedBasicAuth", "classRedMatrix_1_1RedDAV_1_1RedBasicAuth.html", null ],
+ [ "RedMatrix\\RedDAV\\RedBrowser", "classRedMatrix_1_1RedDAV_1_1RedBrowser.html", null ],
+ [ "RedMatrix\\RedDAV\\RedDirectory", "classRedMatrix_1_1RedDAV_1_1RedDirectory.html", null ],
+ [ "RedMatrix\\RedDAV\\RedDirectory", "classRedMatrix_1_1RedDAV_1_1RedDirectory.html", null ],
+ [ "RedMatrix\\RedDAV\\RedDirectory", "classRedMatrix_1_1RedDAV_1_1RedDirectory.html", null ],
+ [ "RedMatrix\\RedDAV\\RedFile", "classRedMatrix_1_1RedDAV_1_1RedFile.html", null ],
+ [ "RedMatrix\\RedDAV\\RedFile", "classRedMatrix_1_1RedDAV_1_1RedFile.html", null ]
+ ] ],
[ "Smarty", null, [
[ "FriendicaSmarty", "classFriendicaSmarty.html", null ]
] ]
diff --git a/doc/html/hivenet_2php_2style_8php.html b/doc/html/hivenet_2php_2style_8php.html
new file mode 100644
index 000000000..b2adc9011
--- /dev/null
+++ b/doc/html/hivenet_2php_2style_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/hivenet/php/style.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('hivenet_2php_2style_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">style.php File Reference</div> </div>
+</div><!--header-->
+<div class="contents">
+</div><!-- contents -->
+</div><!-- doc-content -->
+
diff --git a/doc/html/hivenet_2php_2theme_8php.html b/doc/html/hivenet_2php_2theme_8php.html
new file mode 100644
index 000000000..de9afb019
--- /dev/null
+++ b/doc/html/hivenet_2php_2theme_8php.html
@@ -0,0 +1,144 @@
+<!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/hivenet/php/theme.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('hivenet_2php_2theme_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">theme.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:a3a8b539b112ae63936025236dbaf0a29"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="hivenet_2php_2theme_8php.html#a3a8b539b112ae63936025236dbaf0a29">hivenet_init</a> (&amp;$a)</td></tr>
+<tr class="separator:a3a8b539b112ae63936025236dbaf0a29"><td class="memSeparator" colspan="2">&#160;</td></tr>
+</table>
+<h2 class="groupheader">Function Documentation</h2>
+<a class="anchor" id="a3a8b539b112ae63936025236dbaf0a29"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">hivenet_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">
+<ul>
+<li>Name: Hivenet</li>
+<li>Description: An experimental red-colored theme based on redbasic</li>
+<li>Version: 1.0</li>
+<li>Author: Sean Tilley</li>
+<li>Compat: Red [*] </li>
+</ul>
+
+</div>
+</div>
+</div><!-- contents -->
+</div><!-- doc-content -->
+
diff --git a/doc/html/hivenet_2php_2theme_8php.js b/doc/html/hivenet_2php_2theme_8php.js
new file mode 100644
index 000000000..f6923b33f
--- /dev/null
+++ b/doc/html/hivenet_2php_2theme_8php.js
@@ -0,0 +1,4 @@
+var hivenet_2php_2theme_8php =
+[
+ [ "hivenet_init", "hivenet_2php_2theme_8php.html#a3a8b539b112ae63936025236dbaf0a29", null ]
+]; \ No newline at end of file
diff --git a/doc/html/home_8php.html b/doc/html/home_8php.html
index ec629b7c2..6e5b05937 100644
--- a/doc/html/home_8php.html
+++ b/doc/html/home_8php.html
@@ -114,11 +114,11 @@ $(document).ready(function(){initNavTree('home_8php.html','');});
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>
+<tr class="memitem:a6e3dbf78f4ed74ab2577de221190b33f"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="home_8php.html#a6e3dbf78f4ed74ab2577de221190b33f">home_content</a> (&amp;$a, $update=0, $load=false)</td></tr>
+<tr class="separator:a6e3dbf78f4ed74ab2577de221190b33f"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table>
<h2 class="groupheader">Function Documentation</h2>
-<a class="anchor" id="aa1cf697851a646755baf537f75334c46"></a>
+<a class="anchor" id="a6e3dbf78f4ed74ab2577de221190b33f"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
@@ -126,12 +126,30 @@ Functions</h2></td></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 class="paramname"><em>$a</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">&#160;</td>
+ <td class="paramname"><em>$update</em> = <code>0</code>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
<td></td>
+ <td class="paramtype">&#160;</td>
+ <td class="paramname"><em>$load</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="update__home_8php.html#a668340089acd150b830134476a647d05">update_home_content()</a>.</p>
+
</div>
</div>
<a class="anchor" id="ac4642c38b6f23a8d065dd4a75c620bde"></a>
diff --git a/doc/html/home_8php.js b/doc/html/home_8php.js
index e4f6d5dc9..3aacc0b85 100644
--- a/doc/html/home_8php.js
+++ b/doc/html/home_8php.js
@@ -1,5 +1,5 @@
var home_8php =
[
- [ "home_content", "home_8php.html#aa1cf697851a646755baf537f75334c46", null ],
+ [ "home_content", "home_8php.html#a6e3dbf78f4ed74ab2577de221190b33f", null ],
[ "home_init", "home_8php.html#ac4642c38b6f23a8d065dd4a75c620bde", null ]
]; \ No newline at end of file
diff --git a/doc/html/html2bbcode_8php.html b/doc/html/html2bbcode_8php.html
index b04e5d27a..e1496199b 100644
--- a/doc/html/html2bbcode_8php.html
+++ b/doc/html/html2bbcode_8php.html
@@ -164,7 +164,7 @@ Functions</h2></td></tr>
</table>
</div><div class="memdoc">
-<p>Referenced by <a class="el" href="include_2api_8php.html#a450d8732b7b608f7ac929aee61572b95">api_statuses_mediap()</a>, <a class="el" href="include_2api_8php.html#ad4d1634df6b35126552324683caaffa2">api_statuses_update()</a>, <a class="el" href="bb2diaspora_8php.html#ac9061ee10fcfcdac69566b649614e625">diaspora2bb()</a>, <a class="el" href="items_8php.html#a5e5be7bf1f8257dec0b2647e60a3f3f1">get_atom_elements()</a>, and <a class="el" href="rpost_8php.html#a8190354d789000806d9879aea276728f">rpost_content()</a>.</p>
+<p>Referenced by <a class="el" href="include_2api_8php.html#a450d8732b7b608f7ac929aee61572b95">api_statuses_mediap()</a>, <a class="el" href="include_2api_8php.html#ad4d1634df6b35126552324683caaffa2">api_statuses_update()</a>, <a class="el" href="bb2diaspora_8php.html#ac9061ee10fcfcdac69566b649614e625">diaspora2bb()</a>, <a class="el" href="items_8php.html#a5e5be7bf1f8257dec0b2647e60a3f3f1">get_atom_elements()</a>, <a class="el" href="refimport_8php.html#ad97ebb5feda0230a4834e0b3637a0d29">refimport_content()</a>, <a class="el" href="refimport_8php.html#a01a29630fa5e1ce6cd5e1fd75280747c">reflect_comment_store()</a>, and <a class="el" href="rpost_8php.html#a8190354d789000806d9879aea276728f">rpost_content()</a>.</p>
</div>
</div>
diff --git a/doc/html/html2plain_8php.html b/doc/html/html2plain_8php.html
index bf8dd4f1e..a050e25f8 100644
--- a/doc/html/html2plain_8php.html
+++ b/doc/html/html2plain_8php.html
@@ -204,7 +204,7 @@ Functions</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#ae82608c317421f27446465aa6724733d">api_format_messages()</a>, <a class="el" href="include_2api_8php.html#a645397787618b5c548a31e8686e8cca4">api_status_show()</a>, <a class="el" href="include_2api_8php.html#abe8e929e93f7ab134b1cb1fb30f19a76">api_users_show()</a>, <a class="el" href="items_8php.html#a87ac9e359591721a824ecd23bbb56296">check_item_source()</a>, and <a class="el" href="include_2network_8php.html#a1ff07d9fad93b713b93da0ab77aab7f0">email_send()</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#ae82608c317421f27446465aa6724733d">api_format_messages()</a>, <a class="el" href="include_2api_8php.html#a645397787618b5c548a31e8686e8cca4">api_status_show()</a>, <a class="el" href="include_2api_8php.html#abe8e929e93f7ab134b1cb1fb30f19a76">api_users_show()</a>, <a class="el" href="items_8php.html#a87ac9e359591721a824ecd23bbb56296">check_item_source()</a>, <a class="el" href="include_2network_8php.html#a1ff07d9fad93b713b93da0ab77aab7f0">email_send()</a>, and <a class="el" href="event_8php.html#a05073cd4ab837bd4a0149e8ed23ce688">format_ical_text()</a>.</p>
</div>
</div>
diff --git a/doc/html/hubloc_8php.html b/doc/html/hubloc_8php.html
index 12b2bf7f3..66ef98c09 100644
--- a/doc/html/hubloc_8php.html
+++ b/doc/html/hubloc_8php.html
@@ -116,8 +116,34 @@ Functions</h2></td></tr>
<tr class="separator:aebd244b4616ded022cbbee5e82926951"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ad3d0dcfcfcb347744f7617fe6f5de002"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="hubloc_8php.html#ad3d0dcfcfcb347744f7617fe6f5de002">prune_hub_reinstalls</a> ()</td></tr>
<tr class="separator:ad3d0dcfcfcb347744f7617fe6f5de002"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a84c79b7be352f62d12fe4fa2c80fc6ea"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="hubloc_8php.html#a84c79b7be352f62d12fe4fa2c80fc6ea">remove_obsolete_hublocs</a> ()</td></tr>
+<tr class="separator:a84c79b7be352f62d12fe4fa2c80fc6ea"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ad86214b3a74084bd7b54e8d6c919ce4d"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="hubloc_8php.html#ad86214b3a74084bd7b54e8d6c919ce4d">hubloc_change_primary</a> ($hubloc)</td></tr>
+<tr class="separator:ad86214b3a74084bd7b54e8d6c919ce4d"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:acb708dd197aae72a4858cf5ff4e3195b"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="hubloc_8php.html#acb708dd197aae72a4858cf5ff4e3195b">xchan_store</a> ($arr)</td></tr>
+<tr class="separator:acb708dd197aae72a4858cf5ff4e3195b"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:af1b476c936f96a93282b1d058e3d05ea"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="hubloc_8php.html#af1b476c936f96a93282b1d058e3d05ea">xchan_fetch</a> ($arr)</td></tr>
+<tr class="separator:af1b476c936f96a93282b1d058e3d05ea"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table>
<h2 class="groupheader">Function Documentation</h2>
+<a class="anchor" id="ad86214b3a74084bd7b54e8d6c919ce4d"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">hubloc_change_primary </td>
+ <td>(</td>
+ <td class="paramtype">&#160;</td>
+ <td class="paramname"><em>$hubloc</em></td><td>)</td>
+ <td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Referenced by <a class="el" href="zot_8php.html#ab15c04e7e5f44edf45ec50dd7d183254">sync_locations()</a>.</p>
+
+</div>
+</div>
<a class="anchor" id="aebd244b4616ded022cbbee5e82926951"></a>
<div class="memitem">
<div class="memproto">
@@ -153,6 +179,59 @@ Functions</h2></td></tr>
</div>
</div>
+<a class="anchor" id="a84c79b7be352f62d12fe4fa2c80fc6ea"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">remove_obsolete_hublocs </td>
+ <td>(</td>
+ <td class="paramname"></td><td>)</td>
+ <td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Referenced by <a class="el" href="poller_8php.html#a5f12df3a4738124b6c039971e87e76da">poller_run()</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="af1b476c936f96a93282b1d058e3d05ea"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">xchan_fetch </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="include_2api_8php.html#a4fe872332ff0bd8d5eae2f0c6819cb60">api_red_xchan()</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="acb708dd197aae72a4858cf5ff4e3195b"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">xchan_store </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="include_2api_8php.html#a4fe872332ff0bd8d5eae2f0c6819cb60">api_red_xchan()</a>, and <a class="el" href="refimport_8php.html#a01a29630fa5e1ce6cd5e1fd75280747c">reflect_comment_store()</a>.</p>
+
+</div>
+</div>
</div><!-- contents -->
</div><!-- doc-content -->
diff --git a/doc/html/hubloc_8php.js b/doc/html/hubloc_8php.js
index d025f7c76..d16715d55 100644
--- a/doc/html/hubloc_8php.js
+++ b/doc/html/hubloc_8php.js
@@ -1,5 +1,9 @@
var hubloc_8php =
[
+ [ "hubloc_change_primary", "hubloc_8php.html#ad86214b3a74084bd7b54e8d6c919ce4d", null ],
[ "is_matrix_url", "hubloc_8php.html#aebd244b4616ded022cbbee5e82926951", null ],
- [ "prune_hub_reinstalls", "hubloc_8php.html#ad3d0dcfcfcb347744f7617fe6f5de002", null ]
+ [ "prune_hub_reinstalls", "hubloc_8php.html#ad3d0dcfcfcb347744f7617fe6f5de002", null ],
+ [ "remove_obsolete_hublocs", "hubloc_8php.html#a84c79b7be352f62d12fe4fa2c80fc6ea", null ],
+ [ "xchan_fetch", "hubloc_8php.html#af1b476c936f96a93282b1d058e3d05ea", null ],
+ [ "xchan_store", "hubloc_8php.html#acb708dd197aae72a4858cf5ff4e3195b", null ]
]; \ No newline at end of file
diff --git a/doc/html/identity_8php.html b/doc/html/identity_8php.html
index 5474c3758..be318d8eb 100644
--- a/doc/html/identity_8php.html
+++ b/doc/html/identity_8php.html
@@ -128,8 +128,8 @@ Functions</h2></td></tr>
<tr class="separator:a345f4c943d84de502ec6e72d2c813945"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a78151baf4407a8482d2681a91a9c486b"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="identity_8php.html#a78151baf4407a8482d2681a91a9c486b">set_default_login_identity</a> ($account_id, $channel_id, $force=true)</td></tr>
<tr class="separator:a78151baf4407a8482d2681a91a9c486b"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:a3570a4eb77332b292d394c4132cb8f03"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="identity_8php.html#a3570a4eb77332b292d394c4132cb8f03">identity_basic_export</a> ($channel_id)</td></tr>
-<tr class="separator:a3570a4eb77332b292d394c4132cb8f03"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:afaedbc8e2d2a70ec8b006162baac5249"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="identity_8php.html#afaedbc8e2d2a70ec8b006162baac5249">identity_basic_export</a> ($channel_id, $items=false)</td></tr>
+<tr class="separator:afaedbc8e2d2a70ec8b006162baac5249"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a4751b522ea913d0e7ed43e03d22e9e68"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="identity_8php.html#a4751b522ea913d0e7ed43e03d22e9e68">profile_load</a> (&amp;$a, $nickname, $profile= '')</td></tr>
<tr class="separator:a4751b522ea913d0e7ed43e03d22e9e68"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ad4a2c8caca8f6ae93633ebeca0ed6620"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="identity_8php.html#ad4a2c8caca8f6ae93633ebeca0ed6620">profile_create_sidebar</a> (&amp;$a, $connect=true)</td></tr>
@@ -172,6 +172,12 @@ Functions</h2></td></tr>
<tr class="separator:a4ff59df0f0a668a06a8411f87496aa21"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a224710dfb7465b706c91134247c20afa"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="identity_8php.html#a224710dfb7465b706c91134247c20afa">get_profile_fields_advanced</a> ($filter=0)</td></tr>
<tr class="separator:a224710dfb7465b706c91134247c20afa"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a2e6a1cc35887937823ec7fbb90472afe"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="identity_8php.html#a2e6a1cc35887937823ec7fbb90472afe">notifications_off</a> ($channel_id)</td></tr>
+<tr class="separator:a2e6a1cc35887937823ec7fbb90472afe"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a5650319c799de09d1b6d1076b6f839a4"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="identity_8php.html#a5650319c799de09d1b6d1076b6f839a4">notifications_on</a> ($channel_id, $value)</td></tr>
+<tr class="separator:a5650319c799de09d1b6d1076b6f839a4"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a293f416ce9050220b183e08ff5890216"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="identity_8php.html#a293f416ce9050220b183e08ff5890216">get_channel_default_perms</a> ($uid)</td></tr>
+<tr class="separator:a293f416ce9050220b183e08ff5890216"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table>
<h2 class="groupheader">Function Documentation</h2>
<a class="anchor" id="aa870d2c1f558cfd52bef05bc124e8fa4"></a>
@@ -284,7 +290,25 @@ Functions</h2></td></tr>
</table>
</div><div class="memdoc">
-<p>Referenced by <a class="el" href="editblock_8php.html#abbe8f55de06967bc8d79d620509a49e6">editblock_content()</a>, <a class="el" href="importelm_8php.html#a1a4f71e6d76ace6add5e9659845f5e5f">importelm_post()</a>, <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>
+<p>Referenced by <a class="el" href="importelm_8php.html#a1a4f71e6d76ace6add5e9659845f5e5f">importelm_post()</a>, <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="a293f416ce9050220b183e08ff5890216"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">get_channel_default_perms </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="connedit_8php.html#a795acb3d9d841f55c255d7611681ab67">connedit_content()</a>, and <a class="el" href="include_2follow_8php.html#ae387d4ae097c23d69f3247e7f08140c7">new_contact()</a>.</p>
</div>
</div>
@@ -310,7 +334,7 @@ Functions</h2></td></tr>
</dl>
<dl class="section return"><dt>Returns</dt><dd>string </dd></dl>
-<p>Referenced by <a class="el" href="include_2apps_8php.html#a1b2e737f477a2e0d9d11ef14adc5aa66">app_render()</a>, <a class="el" href="include_2apps_8php.html#a15626f24069c18816f7cdaf4735f58f9">app_store()</a>, <a class="el" href="include_2apps_8php.html#aeab6a62d2f3dfaa86ed043a006305f46">app_update()</a>, <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>, <a class="el" href="include_2apps_8php.html#a32fe4ed9666228fd4b67dc487cc57a83">parse_app_description()</a>, and <a class="el" href="photo_8php.html#a582779d24882b0d31ee909a91d70a448">photo_init()</a>.</p>
+<p>Referenced by <a class="el" href="include_2apps_8php.html#a1b2e737f477a2e0d9d11ef14adc5aa66">app_render()</a>, <a class="el" href="include_2apps_8php.html#a15626f24069c18816f7cdaf4735f58f9">app_store()</a>, <a class="el" href="include_2apps_8php.html#aeab6a62d2f3dfaa86ed043a006305f46">app_update()</a>, <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>, <a class="el" href="include_2apps_8php.html#a32fe4ed9666228fd4b67dc487cc57a83">parse_app_description()</a>, <a class="el" href="photo_8php.html#a582779d24882b0d31ee909a91d70a448">photo_init()</a>, <a class="el" href="refimport_8php.html#a01a29630fa5e1ce6cd5e1fd75280747c">reflect_comment_store()</a>, and <a class="el" href="hubloc_8php.html#acb708dd197aae72a4858cf5ff4e3195b">xchan_store()</a>.</p>
</div>
</div>
@@ -430,7 +454,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="boot_8php.html#a4c02d88e66852a01bd5a1feecb7c3ce3">check_config()</a>, <a class="el" href="identity_8php.html#a1cf83ac2b645de12868edaa3a5718f05">create_sys_channel()</a>, <a class="el" href="display_8php.html#a37137c98d47bf3306f4c2bb9f5b60de0">display_content()</a>, <a class="el" href="expire_8php.html#a444e45c9b67727b27db4c779fd51a298">expire_run()</a>, <a class="el" href="externals_8php.html#a4df44079e6f915286088b7a0d44db926">externals_run()</a>, <a class="el" href="identity_8php.html#aaeb666872995e3ab8da8f7bc5f3b2bd3">get_theme_uid()</a>, <a class="el" href="like_8php.html#a9d7dd268f21c21e9d29dd2aca2dd9538">like_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="search_8php.html#ab2568591359edde5b483a6cd9a24b2cc">search_content()</a>, <a class="el" href="subthread_8php.html#a50368f3d825b77996030528e7fbfa3d3">subthread_content()</a>, and <a class="el" href="zotfeed_8php.html#a24dfc23d366e7f840cf2847d0c1c8eac">zotfeed_init()</a>.</p>
+<p>Referenced by <a class="el" href="blocks_8php.html#a2531a8fd51db3cecb2eb20c002c66e12">blocks_content()</a>, <a class="el" href="blocks_8php.html#aebe88302181883d2b17d6e98a1aaebe9">blocks_init()</a>, <a class="el" href="boot_8php.html#a4c02d88e66852a01bd5a1feecb7c3ce3">check_config()</a>, <a class="el" href="items_8php.html#a772f0ae77ad77c8ab68ed918a3870946">collect_recipients()</a>, <a class="el" href="conversation_8php.html#affea1afb3f32ca41e966c8ddb4204d81">conversation()</a>, <a class="el" href="identity_8php.html#a1cf83ac2b645de12868edaa3a5718f05">create_sys_channel()</a>, <a class="el" href="text_8php.html#a87a3cefc603302c78982f1d8e1245265">design_tools()</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="editblock_8php.html#ab7806bb42ae5e93f0330d7bd179d4b3e">editblock_init()</a>, <a class="el" href="editlayout_8php.html#aa877e4157a26b099de904164181dd386">editlayout_content()</a>, <a class="el" href="editlayout_8php.html#a97c1e93d9e75ad8cd2c2f9a7f77341a7">editlayout_init()</a>, <a class="el" href="editwebpage_8php.html#a375e945255fad79a71036528f7480650">editwebpage_content()</a>, <a class="el" href="editwebpage_8php.html#a94109f9c796fbe92508bf9574e35d19f">editwebpage_init()</a>, <a class="el" href="expire_8php.html#a444e45c9b67727b27db4c779fd51a298">expire_run()</a>, <a class="el" href="externals_8php.html#a4df44079e6f915286088b7a0d44db926">externals_run()</a>, <a class="el" href="identity_8php.html#aaeb666872995e3ab8da8f7bc5f3b2bd3">get_theme_uid()</a>, <a class="el" href="home_8php.html#a6e3dbf78f4ed74ab2577de221190b33f">home_content()</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="layouts_8php.html#a39c8e9f72641c684c8b689bd91a642fa">layouts_init()</a>, <a class="el" href="like_8php.html#a9d7dd268f21c21e9d29dd2aca2dd9538">like_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#a9627cd857cafdf04e4fc0ae48c8e8518">mitem_init()</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="notifier_8php.html#a568c502f626cff95e344c0748938b85d">notifier_run()</a>, <a class="el" href="zot_8php.html#a083aec6c900d244e1bfc1406f9461465">public_recips()</a>, <a class="el" href="search_8php.html#ab2568591359edde5b483a6cd9a24b2cc">search_content()</a>, <a class="el" href="subthread_8php.html#a50368f3d825b77996030528e7fbfa3d3">subthread_content()</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="webpages_8php.html#af9ad0b65eba79acead3fa32b43d888b7">webpages_init()</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>
@@ -449,7 +473,7 @@ Functions</h2></td></tr>
</div>
</div>
-<a class="anchor" id="a3570a4eb77332b292d394c4132cb8f03"></a>
+<a class="anchor" id="afaedbc8e2d2a70ec8b006162baac5249"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
@@ -457,15 +481,26 @@ Functions</h2></td></tr>
<td class="memname">identity_basic_export </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>$items</em> = <code>false</code>&#160;</td>
+ </tr>
+ <tr>
+ <td></td>
+ <td>)</td>
+ <td></td><td></td>
</tr>
</table>
</div><div class="memdoc">
-<p>identity_basic_export($channel_id) Create an array representing the important channel information which would be necessary to create a nomadic identity clone. This includes most channel resources and connection information with the exception of content.</p>
+<p>identity_basic_export($channel_id,$items = false) Create an array representing the important channel information which would be necessary to create a nomadic identity clone. This includes most channel resources and connection information with the exception of content.</p>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
- <tr><td class="paramtype">int</td><td class="paramname">$channel_id</td><td>Channel_id to export</td></tr>
+ <tr><td class="paramtype">int</td><td class="paramname">$channel_id</td><td>Channel_id to export </td></tr>
+ <tr><td class="paramtype">boolean</td><td class="paramname">$items</td><td>Include channel posts (wall items), default false</td></tr>
</table>
</dd>
</dl>
@@ -538,7 +573,7 @@ Functions</h2></td></tr>
</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>
+<p>Referenced by <a class="el" href="identity_8php.html#a9637c557e13d9671f3eeb124ab98212a">is_member()</a>, and <a class="el" href="text_8php.html#af9c9ac3f74c82dc60acfa404d0e9dc53">theme_attachments()</a>.</p>
</div>
</div>
@@ -597,7 +632,61 @@ Functions</h2></td></tr>
</table>
</div><div class="memdoc">
-<p>Referenced by <a class="el" href="items_8php.html#a004e89d86b0f29b2c4da20108ecc4091">zot_feed()</a>.</p>
+<p>Referenced by <a class="el" href="items_8php.html#a1cf89557f32d5dfbe8bd90448dc1aa92">zot_feed()</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="a2e6a1cc35887937823ec7fbb90472afe"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">notifications_off </td>
+ <td>(</td>
+ <td class="paramtype">&#160;</td>
+ <td class="paramname"><em>$channel_id</em></td><td>)</td>
+ <td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+<p>notifications_off($channel_id) Clear notifyflags for a channel - most likely during bulk import of content or other activity that is likely to generate huge amounts of undesired notifications. </p>
+<dl class="params"><dt>Parameters</dt><dd>
+ <table class="params">
+ <tr><td class="paramtype">int</td><td class="paramname">$channel_id</td><td>The channel to disable notifications for </td></tr>
+ </table>
+ </dd>
+</dl>
+<dl class="section return"><dt>Returns</dt><dd>int Current notification flag value. Send this to <a class="el" href="identity_8php.html#a5650319c799de09d1b6d1076b6f839a4">notifications_on()</a> to restore the channel settings when finished with the activity requiring <a class="el" href="identity_8php.html#a2e6a1cc35887937823ec7fbb90472afe">notifications_off()</a>; </dd></dl>
+
+<p>Referenced by <a class="el" href="import_8php.html#af17fef0410518f7eac205d0ea416eaa2">import_post()</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="a5650319c799de09d1b6d1076b6f839a4"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">notifications_on </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>$value</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="import_8php.html#af17fef0410518f7eac205d0ea416eaa2">import_post()</a>.</p>
</div>
</div>
@@ -659,9 +748,9 @@ Functions</h2></td></tr>
<p>: profile_load(&amp;$a, $nickname, $profile) Generate </p>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
- <tr><td class="paramtype"><a class="el" href="classApp.html">App</a></td><td class="paramname">$a</td><td></td></tr>
+ <tr><td class="paramtype"><a class="el" href="classApp.html" title="Our main application structure for the life of this page.">App</a></td><td class="paramname">$a</td><td></td></tr>
<tr><td class="paramtype">string</td><td class="paramname">$nickname</td><td></td></tr>
- <tr><td class="paramtype">string</td><td class="paramname">$profile</td><td>Summary: Loads a profile into the <a class="el" href="classApp.html">App</a> structure. The function requires a writeable copy of the main <a class="el" href="classApp.html">App</a> structure, and the nickname of a valid channel.</td></tr>
+ <tr><td class="paramtype">string</td><td class="paramname">$profile</td><td>Summary: Loads a profile into the <a class="el" href="classApp.html" title="Our main application structure for the life of this page.">App</a> structure. The function requires a writeable copy of the main <a class="el" href="classApp.html" title="Our main application structure for the life of this page.">App</a> structure, and the nickname of a valid channel.</td></tr>
</table>
</dd>
</dl>
@@ -670,7 +759,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="achievements_8php.html#a35ae04ada0e227d19671f289a32fb30e">achievements_content()</a>, <a class="el" href="block_8php.html#a9b61c96044ed2a068f18c10370a78d5c">block_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#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="hcard_8php.html#ac34f26b0e6a37eef44fa49bea135136d">hcard_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>
+<p>Referenced by <a class="el" href="achievements_8php.html#a35ae04ada0e227d19671f289a32fb30e">achievements_content()</a>, <a class="el" href="block_8php.html#a9b61c96044ed2a068f18c10370a78d5c">block_init()</a>, <a class="el" href="blocks_8php.html#aebe88302181883d2b17d6e98a1aaebe9">blocks_init()</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#ad2e96e917852f27dedfc263d37e13756">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="editblock_8php.html#ab7806bb42ae5e93f0330d7bd179d4b3e">editblock_init()</a>, <a class="el" href="editlayout_8php.html#a97c1e93d9e75ad8cd2c2f9a7f77341a7">editlayout_init()</a>, <a class="el" href="editwebpage_8php.html#a94109f9c796fbe92508bf9574e35d19f">editwebpage_init()</a>, <a class="el" href="hcard_8php.html#ac34f26b0e6a37eef44fa49bea135136d">hcard_init()</a>, <a class="el" href="layouts_8php.html#a39c8e9f72641c684c8b689bd91a642fa">layouts_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>, <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="profiles_8php.html#ab0362c81b1d3b0b12a772b9fac446e04">profiles_post()</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#af9ad0b65eba79acead3fa32b43d888b7">webpages_init()</a>.</p>
</div>
</div>
@@ -726,8 +815,6 @@ Functions</h2></td></tr>
</table>
</div><div class="memdoc">
-<p>Referenced by <a class="el" href="dirprofile_8php.html#a3e1d30d3d93863ff5615f2df4ac7f052">dirprofile_init()</a>.</p>
-
</div>
</div>
<a class="anchor" id="a78151baf4407a8482d2681a91a9c486b"></a>
@@ -835,7 +922,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="identity_8php.html#aa870d2c1f558cfd52bef05bc124e8fa4">advanced_profile()</a>, <a class="el" href="include_2apps_8php.html#a1b2e737f477a2e0d9d11ef14adc5aa66">app_render()</a>, <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#a3a0c432a484c17d7720b8ba2d6bfdd59">format_hashtags()</a>, <a class="el" href="text_8php.html#ad8c6e13d6accf057136c5f30a23a5f08">format_mentions()</a>, <a class="el" href="text_8php.html#aac0969ae09853205992ba06ab9f9f61a">get_plink()</a>, <a class="el" href="taxonomy_8php.html#a7747fa859ac56fbffd4f9782d85505de">get_things()</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#a03a5deed3908543581c074ce333e9d6a">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="include_2apps_8php.html#a32fe4ed9666228fd4b67dc487cc57a83">parse_app_description()</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="widgets_8php.html#a0e2f5179ed1a73b282dfda7270fcabb3">widget_bookmarkedchats()</a>, <a class="el" href="widgets_8php.html#a999ba893cac7600d3d3b4e7e14cf8c20">widget_photo()</a>, and <a class="el" href="widgets_8php.html#a50b1410238100c8a94c06b0aa63ee3b8">widget_suggestedchats()</a>.</p>
+<p>Referenced by <a class="el" href="identity_8php.html#aa870d2c1f558cfd52bef05bc124e8fa4">advanced_profile()</a>, <a class="el" href="include_2apps_8php.html#a1b2e737f477a2e0d9d11ef14adc5aa66">app_render()</a>, <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="text_8php.html#a3054189cff173977f4216c9a3dd29e1b">format_categories()</a>, <a class="el" href="text_8php.html#a3a0c432a484c17d7720b8ba2d6bfdd59">format_hashtags()</a>, <a class="el" href="text_8php.html#ad8c6e13d6accf057136c5f30a23a5f08">format_mentions()</a>, <a class="el" href="text_8php.html#aac0969ae09853205992ba06ab9f9f61a">get_plink()</a>, <a class="el" href="taxonomy_8php.html#a7747fa859ac56fbffd4f9782d85505de">get_things()</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#a03a5deed3908543581c074ce333e9d6a">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="include_2apps_8php.html#a32fe4ed9666228fd4b67dc487cc57a83">parse_app_description()</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="widgets_8php.html#a0e2f5179ed1a73b282dfda7270fcabb3">widget_bookmarkedchats()</a>, <a class="el" href="widgets_8php.html#a999ba893cac7600d3d3b4e7e14cf8c20">widget_photo()</a>, <a class="el" href="widgets_8php.html#af8eb466ef91d9e96e13335ead5eba380">widget_photo_rand()</a>, and <a class="el" href="widgets_8php.html#a50b1410238100c8a94c06b0aa63ee3b8">widget_suggestedchats()</a>.</p>
</div>
</div>
diff --git a/doc/html/identity_8php.js b/doc/html/identity_8php.js
index e28d89abb..92b4f2c38 100644
--- a/doc/html/identity_8php.js
+++ b/doc/html/identity_8php.js
@@ -6,6 +6,7 @@ var identity_8php =
[ "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_channel_default_perms", "identity_8php.html#a293f416ce9050220b183e08ff5890216", 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 ],
@@ -15,13 +16,15 @@ var identity_8php =
[ "get_profile_fields_basic", "identity_8php.html#a4ff59df0f0a668a06a8411f87496aa21", 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_basic_export", "identity_8php.html#afaedbc8e2d2a70ec8b006162baac5249", null ],
[ "identity_check_service_class", "identity_8php.html#ac9fcd5c4c371998790b5c55c3d0f4633", null ],
[ "identity_selector", "identity_8php.html#a2ab5172eabd375869060c9ad68323f5c", null ],
[ "is_foreigner", "identity_8php.html#ae2b140df652a55ca11bb6a99005fce35", null ],
[ "is_member", "identity_8php.html#a9637c557e13d9671f3eeb124ab98212a", null ],
[ "is_public_profile", "identity_8php.html#a4e996e44b50330098a04b467367a559f", null ],
[ "is_sys_channel", "identity_8php.html#aa4bd4abfcba883f43919e89ec6419025", null ],
+ [ "notifications_off", "identity_8php.html#a2e6a1cc35887937823ec7fbb90472afe", null ],
+ [ "notifications_on", "identity_8php.html#a5650319c799de09d1b6d1076b6f839a4", null ],
[ "profile_create_sidebar", "identity_8php.html#ad4a2c8caca8f6ae93633ebeca0ed6620", null ],
[ "profile_load", "identity_8php.html#a4751b522ea913d0e7ed43e03d22e9e68", null ],
[ "profile_sidebar", "identity_8php.html#a432259b2cf5b6f59be53e71db9f2c7dc", null ],
diff --git a/doc/html/impel_8php.html b/doc/html/impel_8php.html
new file mode 100644
index 000000000..1a35a56cf
--- /dev/null
+++ b/doc/html/impel_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/impel.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('impel_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">impel.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:ab7db6fca43b42ea4332cb3e841b3cf7b"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="impel_8php.html#ab7db6fca43b42ea4332cb3e841b3cf7b">impel_init</a> (&amp;$a)</td></tr>
+<tr class="separator:ab7db6fca43b42ea4332cb3e841b3cf7b"><td class="memSeparator" colspan="2">&#160;</td></tr>
+</table>
+<h2 class="groupheader">Function Documentation</h2>
+<a class="anchor" id="ab7db6fca43b42ea4332cb3e841b3cf7b"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">impel_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/impel_8php.js b/doc/html/impel_8php.js
new file mode 100644
index 000000000..fdd6ebee7
--- /dev/null
+++ b/doc/html/impel_8php.js
@@ -0,0 +1,4 @@
+var impel_8php =
+[
+ [ "impel_init", "impel_8php.html#ab7db6fca43b42ea4332cb3e841b3cf7b", null ]
+]; \ No newline at end of file
diff --git a/doc/html/include_2api_8php.html b/doc/html/include_2api_8php.html
index 2491ddee0..2347d75af 100644
--- a/doc/html/include_2api_8php.html
+++ b/doc/html/include_2api_8php.html
@@ -145,6 +145,12 @@ Functions</h2></td></tr>
<tr class="separator:aa9dc5350b26d6c7727d6c4b641ecba18"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:aa6fc3bc8c0fad1d081db0dcc456dd77f"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="include_2api_8php.html#aa6fc3bc8c0fad1d081db0dcc456dd77f">api_photos</a> (&amp;$a, $type)</td></tr>
<tr class="separator:aa6fc3bc8c0fad1d081db0dcc456dd77f"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ae46f964e5a9c80b96dc78df61c09ed3a"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="include_2api_8php.html#ae46f964e5a9c80b96dc78df61c09ed3a">api_group_members</a> (&amp;$a, $type)</td></tr>
+<tr class="separator:ae46f964e5a9c80b96dc78df61c09ed3a"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ad5fe62d6c25c86999f627b2e6cfde536"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="include_2api_8php.html#ad5fe62d6c25c86999f627b2e6cfde536">api_group</a> (&amp;$a, $type)</td></tr>
+<tr class="separator:ad5fe62d6c25c86999f627b2e6cfde536"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a4fe872332ff0bd8d5eae2f0c6819cb60"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="include_2api_8php.html#a4fe872332ff0bd8d5eae2f0c6819cb60">api_red_xchan</a> (&amp;$a, $type)</td></tr>
+<tr class="separator:a4fe872332ff0bd8d5eae2f0c6819cb60"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a450d8732b7b608f7ac929aee61572b95"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="include_2api_8php.html#a450d8732b7b608f7ac929aee61572b95">api_statuses_mediap</a> (&amp;$a, $type)</td></tr>
<tr class="separator:a450d8732b7b608f7ac929aee61572b95"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ad4d1634df6b35126552324683caaffa2"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="include_2api_8php.html#ad4d1634df6b35126552324683caaffa2">api_statuses_update</a> (&amp;$a, $type)</td></tr>
@@ -879,6 +885,58 @@ Variables</h2></td></tr>
</div>
</div>
+<a class="anchor" id="ad5fe62d6c25c86999f627b2e6cfde536"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">api_group </td>
+ <td>(</td>
+ <td class="paramtype">&amp;&#160;</td>
+ <td class="paramname"><em>$a</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">&#160;</td>
+ <td class="paramname"><em>$type</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="ae46f964e5a9c80b96dc78df61c09ed3a"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">api_group_members </td>
+ <td>(</td>
+ <td class="paramtype">&amp;&#160;</td>
+ <td class="paramname"><em>$a</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">&#160;</td>
+ <td class="paramname"><em>$type</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="ac5a64cc81d70ff3cf866093ea9721d23"></a>
<div class="memitem">
<div class="memproto">
@@ -1030,6 +1088,32 @@ Variables</h2></td></tr>
</div>
</div>
+<a class="anchor" id="a4fe872332ff0bd8d5eae2f0c6819cb60"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">api_red_xchan </td>
+ <td>(</td>
+ <td class="paramtype">&amp;&#160;</td>
+ <td class="paramname"><em>$a</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">&#160;</td>
+ <td class="paramname"><em>$type</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="ac2c2b18c426d697d11a830bca146be8a"></a>
<div class="memitem">
<div class="memproto">
@@ -1514,7 +1598,7 @@ Variables</h2></td></tr>
</table>
</div><div class="memdoc">
-<p>Referenced by <a class="el" href="include_2api_8php.html#a864191bb876a515ed71b17e260ef35ad">api_account_verify_credentials()</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#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#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#a36344c80b8e9755da2f2dd3a0e28cce8">api_ff_ids()</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#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#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>, and <a class="el" href="include_2api_8php.html#aafa82b65a9f879a1a1197cfe8aaf3898">red_item_new()</a>.</p>
+<p>Referenced by <a class="el" href="include_2api_8php.html#a864191bb876a515ed71b17e260ef35ad">api_account_verify_credentials()</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#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#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#a36344c80b8e9755da2f2dd3a0e28cce8">api_ff_ids()</a>, <a class="el" href="include_2api_8php.html#aa40bae797bcd9ccacffdce5a3b5a1afa">api_get_user()</a>, <a class="el" href="include_2api_8php.html#ad5fe62d6c25c86999f627b2e6cfde536">api_group()</a>, <a class="el" href="include_2api_8php.html#ae46f964e5a9c80b96dc78df61c09ed3a">api_group_members()</a>, <a class="el" href="include_2api_8php.html#a4fe872332ff0bd8d5eae2f0c6819cb60">api_red_xchan()</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#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>, and <a class="el" href="include_2api_8php.html#aafa82b65a9f879a1a1197cfe8aaf3898">red_item_new()</a>.</p>
</div>
</div>
diff --git a/doc/html/include_2api_8php.js b/doc/html/include_2api_8php.js
index 6a699f1fa..6e8ba125d 100644
--- a/doc/html/include_2api_8php.js
+++ b/doc/html/include_2api_8php.js
@@ -24,12 +24,15 @@ var include_2api_8php =
[ "api_friendica_version", "include_2api_8php.html#a53b0680b682ae6078f2e1ed18cfb3f74", null ],
[ "api_friends_ids", "include_2api_8php.html#acafd2899309a005fcb725289173dc7fe", null ],
[ "api_get_user", "include_2api_8php.html#aa40bae797bcd9ccacffdce5a3b5a1afa", null ],
+ [ "api_group", "include_2api_8php.html#ad5fe62d6c25c86999f627b2e6cfde536", null ],
+ [ "api_group_members", "include_2api_8php.html#ae46f964e5a9c80b96dc78df61c09ed3a", null ],
[ "api_help_test", "include_2api_8php.html#ac5a64cc81d70ff3cf866093ea9721d23", null ],
[ "api_item_get_user", "include_2api_8php.html#aa49741342ad8ba285737eea1209a37e1", null ],
[ "api_login", "include_2api_8php.html#afe534f826e4282b72d66e8cadca7bb73", null ],
[ "api_oauth_access_token", "include_2api_8php.html#aff322705cc6084b329003fc8eab0aad0", null ],
[ "api_oauth_request_token", "include_2api_8php.html#aa1bddb580510e70cc1a7b7381667f1a3", null ],
[ "api_photos", "include_2api_8php.html#aa6fc3bc8c0fad1d081db0dcc456dd77f", null ],
+ [ "api_red_xchan", "include_2api_8php.html#a4fe872332ff0bd8d5eae2f0c6819cb60", null ],
[ "api_register_func", "include_2api_8php.html#ac2c2b18c426d697d11a830bca146be8a", null ],
[ "api_rss_extra", "include_2api_8php.html#a6a04b48168ba1d9dd2de3081a630611f", null ],
[ "api_status_show", "include_2api_8php.html#a645397787618b5c548a31e8686e8cca4", null ],
diff --git a/doc/html/include_2attach_8php.html b/doc/html/include_2attach_8php.html
index 8cfed4f91..22833ea99 100644
--- a/doc/html/include_2attach_8php.html
+++ b/doc/html/include_2attach_8php.html
@@ -141,7 +141,7 @@ Functions</h2></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/directory. <a href="#a70bd666e080c2af5a91f5d14c297b8cd">More...</a><br/></td></tr>
+<tr class="memdesc:a70bd666e080c2af5a91f5d14c297b8cd"><td class="mdescLeft">&#160;</td><td class="mdescRight">Delete a file/directory from a channel. <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>
@@ -150,8 +150,10 @@ Functions</h2></td></tr>
<tr class="memdesc:a1d72ef7cb940f6868e3e2a841cadfe8f"><td class="mdescLeft">&#160;</td><td class="mdescRight">Returns path to parent folder in cloud/. <a href="#a1d72ef7cb940f6868e3e2a841cadfe8f">More...</a><br/></td></tr>
<tr class="separator:a1d72ef7cb940f6868e3e2a841cadfe8f"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a052f14487ff2ce72f62a09fac8d7e997"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="include_2attach_8php.html#a052f14487ff2ce72f62a09fac8d7e997">find_folder_hash_by_attach_hash</a> ($channel_id, $attachHash)</td></tr>
+<tr class="memdesc:a052f14487ff2ce72f62a09fac8d7e997"><td class="mdescLeft">&#160;</td><td class="mdescRight">Return the hash of an attachment's folder. <a href="#a052f14487ff2ce72f62a09fac8d7e997">More...</a><br/></td></tr>
<tr class="separator:a052f14487ff2ce72f62a09fac8d7e997"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a4dbfd7e1cef52aa9ef52f4b88929fa86"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="include_2attach_8php.html#a4dbfd7e1cef52aa9ef52f4b88929fa86">find_filename_by_hash</a> ($channel_id, $attachHash)</td></tr>
+<tr class="memdesc:a4dbfd7e1cef52aa9ef52f4b88929fa86"><td class="mdescLeft">&#160;</td><td class="mdescRight">Returns the filename of an attachment in a given channel. <a href="#a4dbfd7e1cef52aa9ef52f4b88929fa86">More...</a><br/></td></tr>
<tr class="separator:a4dbfd7e1cef52aa9ef52f4b88929fa86"><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>
@@ -391,16 +393,18 @@ Functions</h2></td></tr>
</table>
</div><div class="memdoc">
-<p>Delete a file/directory. </p>
+<p>Delete a file/directory from a channel. </p>
+<p>If the provided resource hash is from a directory it will delete everything recursively under this directory.</p>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
- <tr><td class="paramtype">int</td><td class="paramname">$channel_id</td><td></td></tr>
- <tr><td class="paramtype">string</td><td class="paramname">$resource</td><td>a hash to delete </td></tr>
+ <tr><td class="paramtype">int</td><td class="paramname">$channel_id</td><td>The id of the channel </td></tr>
+ <tr><td class="paramtype">string</td><td class="paramname">$resource</td><td>The hash to delete </td></tr>
</table>
</dd>
</dl>
+<dl class="section return"><dt>Returns</dt><dd>void </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>
+<p>Referenced by <a class="el" href="classRedMatrix_1_1RedDAV_1_1RedDirectory.html#a58e750256cdc2f0f79fbe8d5463ffefe">RedMatrix\RedDAV\RedDirectory\createFile()</a>, <a class="el" href="classRedMatrix_1_1RedDAV_1_1RedFile.html#ab7ab7ba81fab28eb02382cfdfd80ecfe">RedMatrix\RedDAV\RedFile\delete()</a>, <a class="el" href="filestorage_8php.html#a61bb1be78472555df4ce619f51014040">filestorage_content()</a>, and <a class="el" href="classRedMatrix_1_1RedDAV_1_1RedFile.html#a709ec1288d21ddf1353524435ab916f0">RedMatrix\RedDAV\RedFile\put()</a>.</p>
</div>
</div>
@@ -523,7 +527,7 @@ Functions</h2></td></tr>
</dd>
</dl>
-<p>Referenced by <a class="el" href="classRedDirectory.html#a986936910f0216887a25e28916c166c7">RedDirectory\createDirectory()</a>.</p>
+<p>Referenced by <a class="el" href="classRedMatrix_1_1RedDAV_1_1RedDirectory.html#aca0e8d574ea66a0e210f571700663c62">RedMatrix\RedDAV\RedDirectory\createDirectory()</a>.</p>
</div>
</div>
@@ -600,6 +604,16 @@ Functions</h2></td></tr>
</table>
</div><div class="memdoc">
+<p>Returns the filename of an attachment in a given channel. </p>
+<dl class="params"><dt>Parameters</dt><dd>
+ <table class="params">
+ <tr><td class="paramtype">mixed</td><td class="paramname">$channel_id</td><td>The id of the channel </td></tr>
+ <tr><td class="paramtype">mixed</td><td class="paramname">$attachHash</td><td>The hash of the attachment </td></tr>
+ </table>
+ </dd>
+</dl>
+<dl class="section return"><dt>Returns</dt><dd>string The filename of the attachment </dd></dl>
+
<p>Referenced by <a class="el" href="include_2attach_8php.html#a1d72ef7cb940f6868e3e2a841cadfe8f">get_parent_cloudpath()</a>.</p>
</div>
@@ -628,6 +642,16 @@ Functions</h2></td></tr>
</table>
</div><div class="memdoc">
+<p>Return the hash of an attachment's folder. </p>
+<dl class="params"><dt>Parameters</dt><dd>
+ <table class="params">
+ <tr><td class="paramtype">int</td><td class="paramname">$channel_id</td><td>The id of the channel </td></tr>
+ <tr><td class="paramtype">string</td><td class="paramname">$attachHash</td><td>The hash of the attachment </td></tr>
+ </table>
+ </dd>
+</dl>
+<dl class="section return"><dt>Returns</dt><dd>string </dd></dl>
+
<p>Referenced by <a class="el" href="include_2attach_8php.html#a1d72ef7cb940f6868e3e2a841cadfe8f">get_parent_cloudpath()</a>.</p>
</div>
@@ -649,11 +673,11 @@ Functions</h2></td></tr>
<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>
+ <tr><td class="paramtype">array</td><td class="paramname">$arr,[uid]</td><td>int the channels uid $arr[folder] string $arr[filename]] string </td></tr>
</table>
</dd>
</dl>
-<dl class="section return"><dt>Returns</dt><dd>string with the path the file to cloud/ </dd></dl>
+<dl class="section return"><dt>Returns</dt><dd>string path to the file in cloud/ </dd></dl>
<p>Referenced by <a class="el" href="filestorage_8php.html#a61bb1be78472555df4ce619f51014040">filestorage_content()</a>.</p>
@@ -692,11 +716,13 @@ Functions</h2></td></tr>
<p>Returns path to parent folder in cloud/. </p>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
- <tr><td class="paramname">$arr</td><td></td></tr>
+ <tr><td class="paramtype">int</td><td class="paramname">$channel_id</td><td>The id of the channel </td></tr>
+ <tr><td class="paramtype">string</td><td class="paramname">$channel_name</td><td>The name of the channel </td></tr>
+ <tr><td class="paramtype">string</td><td class="paramname">$attachHash</td><td></td></tr>
</table>
</dd>
</dl>
-<dl class="section return"><dt>Returns</dt><dd>string with the folder path </dd></dl>
+<dl class="section return"><dt>Returns</dt><dd>string with the full folder path </dd></dl>
<p>Referenced by <a class="el" href="filestorage_8php.html#a61bb1be78472555df4ce619f51014040">filestorage_content()</a>, and <a class="el" href="filestorage_8php.html#ad3b64e3ece9831f9d3a9f00c0ae983cd">filestorage_post()</a>.</p>
@@ -761,7 +787,7 @@ Functions</h2></td></tr>
</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>
+<p>Referenced by <a class="el" href="include_2attach_8php.html#a84a8a64c4805e1525b42d4add464833f">attach_store()</a>, and <a class="el" href="classRedMatrix_1_1RedDAV_1_1RedDirectory.html#a58e750256cdc2f0f79fbe8d5463ffefe">RedMatrix\RedDAV\RedDirectory\createFile()</a>.</p>
</div>
</div>
diff --git a/doc/html/include_2chat_8php.html b/doc/html/include_2chat_8php.html
index 8d38b7e76..cadccebf3 100644
--- a/doc/html/include_2chat_8php.html
+++ b/doc/html/include_2chat_8php.html
@@ -122,6 +122,8 @@ Functions</h2></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>
+<tr class="memitem:a26abdccc2a278a59899896dbbfc6f049"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="include_2chat_8php.html#a26abdccc2a278a59899896dbbfc6f049">chatroom_list_count</a> ($uid)</td></tr>
+<tr class="separator:a26abdccc2a278a59899896dbbfc6f049"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:acea6b176eb7aff44d9ba3ae24ce511d3"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="include_2chat_8php.html#acea6b176eb7aff44d9ba3ae24ce511d3">chat_message</a> ($uid, $room_id, $xchan, $text)</td></tr>
<tr class="separator:acea6b176eb7aff44d9ba3ae24ce511d3"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table>
@@ -309,7 +311,25 @@ Functions</h2></td></tr>
</table>
</div><div class="memdoc">
-<p>Referenced by <a class="el" href="nav_8php.html#a43be0df73b90647ea70947ce004e231e">nav()</a>, and <a class="el" href="widgets_8php.html#a47c72aac42058ea086c9ef8651c259da">widget_chatroom_list()</a>.</p>
+<p>Referenced by <a class="el" href="widgets_8php.html#a47c72aac42058ea086c9ef8651c259da">widget_chatroom_list()</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="a26abdccc2a278a59899896dbbfc6f049"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">chatroom_list_count </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="nav_8php.html#a43be0df73b90647ea70947ce004e231e">nav()</a>.</p>
</div>
</div>
diff --git a/doc/html/include_2chat_8php.js b/doc/html/include_2chat_8php.js
index db3011fcf..176f640cb 100644
--- a/doc/html/include_2chat_8php.js
+++ b/doc/html/include_2chat_8php.js
@@ -5,5 +5,6 @@ var include_2chat_8php =
[ "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 ]
+ [ "chatroom_list", "include_2chat_8php.html#aedcb532a0627b8644001a2fadab4e87a", null ],
+ [ "chatroom_list_count", "include_2chat_8php.html#a26abdccc2a278a59899896dbbfc6f049", null ]
]; \ No newline at end of file
diff --git a/doc/html/include_2config_8php.html b/doc/html/include_2config_8php.html
index 59239b48e..9f222df93 100644
--- a/doc/html/include_2config_8php.html
+++ b/doc/html/include_2config_8php.html
@@ -109,37 +109,72 @@ $(document).ready(function(){initNavTree('include_2config_8php.html','');});
<div class="title">config.php File Reference</div> </div>
</div><!--header-->
<div class="contents">
+
+<p>Arbitrary configuration storage.
+<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:a27559f388c9b9af81c94e48d6889d1d1"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="include_2config_8php.html#a27559f388c9b9af81c94e48d6889d1d1">load_config</a> ($family)</td></tr>
+<tr class="memdesc:a27559f388c9b9af81c94e48d6889d1d1"><td class="mdescLeft">&#160;</td><td class="mdescRight">Loads the hub's configuration from database to a cached storage. <a href="#a27559f388c9b9af81c94e48d6889d1d1">More...</a><br/></td></tr>
<tr class="separator:a27559f388c9b9af81c94e48d6889d1d1"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:af02c96e6b37335774b548914ede1d22e"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="include_2config_8php.html#af02c96e6b37335774b548914ede1d22e">get_config</a> ($family, $key)</td></tr>
+<tr class="memdesc:af02c96e6b37335774b548914ede1d22e"><td class="mdescLeft">&#160;</td><td class="mdescRight">Get a particular config variable given the category name ($family) and a key. <a href="#af02c96e6b37335774b548914ede1d22e">More...</a><br/></td></tr>
<tr class="separator:af02c96e6b37335774b548914ede1d22e"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:af08b7adb63adfb2eda7c466fba0cce74"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="include_2config_8php.html#af08b7adb63adfb2eda7c466fba0cce74">get_config_from_storage</a> ($family, $key)</td></tr>
+<tr class="memdesc:af08b7adb63adfb2eda7c466fba0cce74"><td class="mdescLeft">&#160;</td><td class="mdescRight">Returns a value directly from the database configuration storage. <a href="#af08b7adb63adfb2eda7c466fba0cce74">More...</a><br/></td></tr>
<tr class="separator:af08b7adb63adfb2eda7c466fba0cce74"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ad6da879e4fb5b37d1e161d4e9be5c32a"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="include_2config_8php.html#ad6da879e4fb5b37d1e161d4e9be5c32a">set_config</a> ($family, $key, $value)</td></tr>
+<tr class="memdesc:ad6da879e4fb5b37d1e161d4e9be5c32a"><td class="mdescLeft">&#160;</td><td class="mdescRight">Sets a configuration value for the hub. <a href="#ad6da879e4fb5b37d1e161d4e9be5c32a">More...</a><br/></td></tr>
<tr class="separator:ad6da879e4fb5b37d1e161d4e9be5c32a"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a549910227348003efc3c05c9105c42da"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="include_2config_8php.html#a549910227348003efc3c05c9105c42da">del_config</a> ($family, $key)</td></tr>
+<tr class="memdesc:a549910227348003efc3c05c9105c42da"><td class="mdescLeft">&#160;</td><td class="mdescRight">Deletes the given key from the hub's configuration database. <a href="#a549910227348003efc3c05c9105c42da">More...</a><br/></td></tr>
<tr class="separator:a549910227348003efc3c05c9105c42da"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:ac543813a980b3841cc5a277fcd4a24a6"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="include_2config_8php.html#ac543813a980b3841cc5a277fcd4a24a6">load_pconfig</a> ($uid, $family= '')</td></tr>
-<tr class="separator:ac543813a980b3841cc5a277fcd4a24a6"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a559791dda7fef8a4b2394c83e835787b"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="include_2config_8php.html#a559791dda7fef8a4b2394c83e835787b">load_pconfig</a> ($uid)</td></tr>
+<tr class="memdesc:a559791dda7fef8a4b2394c83e835787b"><td class="mdescLeft">&#160;</td><td class="mdescRight">Loads all configuration values of a channel into a cached storage. <a href="#a559791dda7fef8a4b2394c83e835787b">More...</a><br/></td></tr>
+<tr class="separator:a559791dda7fef8a4b2394c83e835787b"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ad58a4913937179adb13201c2ee3261ad"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="include_2config_8php.html#ad58a4913937179adb13201c2ee3261ad">get_pconfig</a> ($uid, $family, $key, $instore=false)</td></tr>
+<tr class="memdesc:ad58a4913937179adb13201c2ee3261ad"><td class="mdescLeft">&#160;</td><td class="mdescRight">Get a particular channel's config variable given the category name ($family) and a key. <a href="#ad58a4913937179adb13201c2ee3261ad">More...</a><br/></td></tr>
<tr class="separator:ad58a4913937179adb13201c2ee3261ad"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a61591371cb18764138655d67dc817ab2"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="include_2config_8php.html#a61591371cb18764138655d67dc817ab2">set_pconfig</a> ($uid, $family, $key, $value)</td></tr>
+<tr class="memdesc:a61591371cb18764138655d67dc817ab2"><td class="mdescLeft">&#160;</td><td class="mdescRight">Sets a configuration value for a channel. <a href="#a61591371cb18764138655d67dc817ab2">More...</a><br/></td></tr>
<tr class="separator:a61591371cb18764138655d67dc817ab2"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a7ad2081c5f812ac4387fd76f3762d941"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="include_2config_8php.html#a7ad2081c5f812ac4387fd76f3762d941">del_pconfig</a> ($uid, $family, $key)</td></tr>
+<tr class="memdesc:a7ad2081c5f812ac4387fd76f3762d941"><td class="mdescLeft">&#160;</td><td class="mdescRight">Deletes the given key from the channel's configuration. <a href="#a7ad2081c5f812ac4387fd76f3762d941">More...</a><br/></td></tr>
<tr class="separator:a7ad2081c5f812ac4387fd76f3762d941"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:a55bbed9a014c9109c767486834f3ca33"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="include_2config_8php.html#a55bbed9a014c9109c767486834f3ca33">load_xconfig</a> ($xchan, $family= '')</td></tr>
-<tr class="separator:a55bbed9a014c9109c767486834f3ca33"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:aee4b619839cf4b64220f34edf5c67b52"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="include_2config_8php.html#aee4b619839cf4b64220f34edf5c67b52">load_xconfig</a> ($xchan)</td></tr>
+<tr class="memdesc:aee4b619839cf4b64220f34edf5c67b52"><td class="mdescLeft">&#160;</td><td class="mdescRight">Loads a full xchan's configuration into a cached storage. <a href="#aee4b619839cf4b64220f34edf5c67b52">More...</a><br/></td></tr>
+<tr class="separator:aee4b619839cf4b64220f34edf5c67b52"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:aa3dc1d3de2d091ac702e675acd3a085e"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="include_2config_8php.html#aa3dc1d3de2d091ac702e675acd3a085e">get_xconfig</a> ($xchan, $family, $key)</td></tr>
+<tr class="memdesc:aa3dc1d3de2d091ac702e675acd3a085e"><td class="mdescLeft">&#160;</td><td class="mdescRight">Get a particular observer's config variable given the category name ($family) and a key. <a href="#aa3dc1d3de2d091ac702e675acd3a085e">More...</a><br/></td></tr>
<tr class="separator:aa3dc1d3de2d091ac702e675acd3a085e"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:afe117b70f1bba2f6348d9300b601f86e"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="include_2config_8php.html#afe117b70f1bba2f6348d9300b601f86e">set_xconfig</a> ($xchan, $family, $key, $value)</td></tr>
+<tr class="memdesc:afe117b70f1bba2f6348d9300b601f86e"><td class="mdescLeft">&#160;</td><td class="mdescRight">Sets a configuration value for an observer. <a href="#afe117b70f1bba2f6348d9300b601f86e">More...</a><br/></td></tr>
<tr class="separator:afe117b70f1bba2f6348d9300b601f86e"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a9c171def547deee16738dc58fdeb4b72"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="include_2config_8php.html#a9c171def547deee16738dc58fdeb4b72">del_xconfig</a> ($xchan, $family, $key)</td></tr>
+<tr class="memdesc:a9c171def547deee16738dc58fdeb4b72"><td class="mdescLeft">&#160;</td><td class="mdescRight">Deletes the given key from the observer's config. <a href="#a9c171def547deee16738dc58fdeb4b72">More...</a><br/></td></tr>
<tr class="separator:a9c171def547deee16738dc58fdeb4b72"><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>Arbitrary configuration storage. </p>
+<p>Note: Please do not store booleans - convert to 0/1 integer values The get_?config() functions return boolean false for keys that are unset, and this could lead to subtle bugs.</p>
+<p>Arrays get stored as serialize strings.</p>
+<dl class="todo"><dt><b><a class="el" href="todo.html#_todo000002">Todo:</a></b></dt><dd>There are a few places in the code (such as the admin panel) where boolean configurations need to be fixed as of 10/08/2011.</dd></dl>
+<ul>
+<li><b>config</b> is used for hub specific configurations. It overrides the configurations from .htconfig file. The storage is of size TEXT.</li>
+<li><b>pconfig</b> is used for channel specific configurations and takes a <em>channel_id</em> as identifier. It stores for example which features are enabled per channel. The storage is of size MEDIUMTEXT. <div class="fragment"><div class="line">$var = <a class="code" href="include_2config_8php.html#ad58a4913937179adb13201c2ee3261ad" title="Get a particular channel&#39;s config variable given the category name ($family) and a key...">get_pconfig</a>(<a class="code" href="boot_8php.html#ad4c9dc2c8a82e8f52b7404c1655eab44" title="Returns the entity id (channel_id) of locally logged in user or false.">local_user</a>(), <span class="stringliteral">&#39;category&#39;</span>, <span class="stringliteral">&#39;key&#39;</span>);</div>
+</div><!-- fragment --></li>
+<li><b>xconfig</b> is the same as pconfig, except that it uses <em>xchan</em> as an identifier. This is for example for people who do not have a local account. The storage is of size MEDIUMTEXT. <div class="fragment"><div class="line"> $observer = <a class="code" href="typo_8php.html#acebf83966ef6d7e5645a6b62ba368f9f">$a</a>-&gt;get_observer_hash();</div>
+<div class="line"><span class="keywordflow">if</span> ($observer) {</div>
+<div class="line"> $var = <a class="code" href="include_2config_8php.html#aa3dc1d3de2d091ac702e675acd3a085e" title="Get a particular observer&#39;s config variable given the category name ($family) and a key...">get_xconfig</a>($observer, <span class="stringliteral">&#39;category&#39;</span>, <span class="stringliteral">&#39;key&#39;</span>);</div>
+<div class="line">}</div>
+</div><!-- fragment --></li>
+</ul>
+<ul>
+<li><a class="el" href="include_2config_8php.html#af02c96e6b37335774b548914ede1d22e" title="Get a particular config variable given the category name ($family) and a key.">get_config()</a> and <a class="el" href="include_2config_8php.html#ad6da879e4fb5b37d1e161d4e9be5c32a" title="Sets a configuration value for the hub.">set_config()</a> can also be done through the command line tool util/config</li>
+<li><a class="el" href="include_2config_8php.html#ad58a4913937179adb13201c2ee3261ad" title="Get a particular channel&#39;s config variable given the category name ($family) and a key...">get_pconfig()</a> and <a class="el" href="include_2config_8php.html#a61591371cb18764138655d67dc817ab2" title="Sets a configuration value for a channel.">set_pconfig()</a> can also be done through the command line tool util/pconfig and takes a channel_id as first argument. </li>
+</ul>
+</div><h2 class="groupheader">Function Documentation</h2>
<a class="anchor" id="a549910227348003efc3c05c9105c42da"></a>
<div class="memitem">
<div class="memproto">
@@ -164,6 +199,17 @@ Functions</h2></td></tr>
</table>
</div><div class="memdoc">
+<p>Deletes the given key from the hub's configuration database. </p>
+<p>Removes the configured value from the stored cache in $a-&gt;config[$family] and removes it from the database.</p>
+<dl class="params"><dt>Parameters</dt><dd>
+ <table class="params">
+ <tr><td class="paramtype">string</td><td class="paramname">$family</td><td>The category of the configuration value </td></tr>
+ <tr><td class="paramtype">string</td><td class="paramname">$key</td><td>The configuration key to delete </td></tr>
+ </table>
+ </dd>
+</dl>
+<dl class="section return"><dt>Returns</dt><dd>mixed </dd></dl>
+
<p>Referenced by <a class="el" href="admin_8php.html#add865f4ae806ecbf716f423fc3e50e4f">admin_page_site_post()</a>, and <a class="el" href="classFKOAuthDataStore.html#a434882f03e3cdb171ed89e09e337e934">FKOAuthDataStore\new_access_token()</a>.</p>
</div>
@@ -198,7 +244,19 @@ Functions</h2></td></tr>
</table>
</div><div class="memdoc">
-<p>Referenced by <a class="el" href="pdledit_8php.html#a81da3c955d0e3db55d148a31483104c7">pdledit_post()</a>.</p>
+<p>Deletes the given key from the channel's configuration. </p>
+<p>Removes the configured value from the stored cache in $a-&gt;config[$uid] and removes it from the database.</p>
+<dl class="params"><dt>Parameters</dt><dd>
+ <table class="params">
+ <tr><td class="paramtype">string</td><td class="paramname">$uid</td><td>The channel_id </td></tr>
+ <tr><td class="paramtype">string</td><td class="paramname">$family</td><td>The category of the configuration value </td></tr>
+ <tr><td class="paramtype">string</td><td class="paramname">$key</td><td>The configuration key to delete </td></tr>
+ </table>
+ </dd>
+</dl>
+<dl class="section return"><dt>Returns</dt><dd>mixed </dd></dl>
+
+<p>Referenced by <a class="el" href="pdledit_8php.html#a81da3c955d0e3db55d148a31483104c7">pdledit_post()</a>, and <a class="el" href="settings_8php.html#aa7ee94d88ac088edb04ccf3a26de3586">settings_post()</a>.</p>
</div>
</div>
@@ -232,6 +290,18 @@ Functions</h2></td></tr>
</table>
</div><div class="memdoc">
+<p>Deletes the given key from the observer's config. </p>
+<p>Removes the configured value from the stored cache in $a-&gt;config[$xchan] and removes it from the database.</p>
+<dl class="params"><dt>Parameters</dt><dd>
+ <table class="params">
+ <tr><td class="paramtype">string</td><td class="paramname">$xchan</td><td>The observer's hash </td></tr>
+ <tr><td class="paramtype">string</td><td class="paramname">$family</td><td>The category of the configuration value </td></tr>
+ <tr><td class="paramtype">string</td><td class="paramname">$key</td><td>The configuration key to delete </td></tr>
+ </table>
+ </dd>
+</dl>
+<dl class="section return"><dt>Returns</dt><dd>mixed </dd></dl>
+
</div>
</div>
<a class="anchor" id="af02c96e6b37335774b548914ede1d22e"></a>
@@ -258,7 +328,19 @@ 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#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="bb2diaspora_8php.html#a2052c66bc1006a42b4c230320c269e47">bb2diaspora_itembody()</a>, <a class="el" href="bbcode_8php.html#a009f61aaf78771737ed0765c8463911b">bbcode()</a>, <a class="el" href="zot_8php.html#aa97b33b619dd7132a9274f852af6ceb5">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="dir__fns_8php.html#a2f7d74bb2aea8bcd2537aee5c6708a16">check_upstream_directory()</a>, <a class="el" href="cli__startup_8php.html#adfdde63686e33ccd4851fa5edc4fc70b">cli_startup()</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="identity_8php.html#a1cf83ac2b645de12868edaa3a5718f05">create_sys_channel()</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="diaspora_8php.html#a6f0a67b6b17503c125af32763be931b7">diaspora_dispatch()</a>, <a class="el" href="diaspora_8php.html#ab99505944728d46585b8312989de533d">diaspora_dispatch_public()</a>, <a class="el" href="diaspora_8php.html#a858f70153c384f8778082cf7843a19da">diaspora_is_blacklisted()</a>, <a class="el" href="diaspora_8php.html#a5d57518545baa31cf8a85a937a267681">diaspora_like()</a>, <a class="el" href="diaspora_8php.html#a131abd521b218d6ae6f7d2917d8b2605">diaspora_process_outbound()</a>, <a class="el" href="diaspora_8php.html#aa704d6aa2ac77be345c0f501168e6e56">diaspora_transmit()</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="externals_8php.html#a4df44079e6f915286088b7a0d44db926">externals_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="items_8php.html#a8cda98925a4c5c2f6dade70d9586d79a">filter_insecure()</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="permissions_8php.html#aeca9b280f3dc3358c89976d81d690008">get_all_perms()</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="boot_8php.html#a329400dcb29897cdaae3020109272285">get_directory_realm()</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="identity_8php.html#a224710dfb7465b706c91134247c20afa">get_profile_fields_advanced()</a>, <a class="el" href="identity_8php.html#a4ff59df0f0a668a06a8411f87496aa21">get_profile_fields_basic()</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="home_8php.html#ac4642c38b6f23a8d065dd4a75c620bde">home_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#a528e97ca5d69c3b7f35c5d954afde315">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="identity_8php.html#a4e996e44b50330098a04b467367a559f">is_public_profile()</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="conversation_8php.html#a9bd7f9fb6678736c581bcba3b17f471c">localize_item()</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="Contact_8php.html#a08845ce8c5b997d5edac38ae7118b5c8">mark_orphan_hubsxchans()</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="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="include_2follow_8php.html#ae387d4ae097c23d69f3247e7f08140c7">new_contact()</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="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="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="receive_8php.html#a03d8fa26e77844020ba5602deca7d494">receive_post()</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="account_8php.html#a030cec6793b909c439c0336ba39b1571">service_class_allows()</a>, <a class="el" href="account_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#adf2b8137dc4ad9ec958de2842f16f3c2">start_delivery_chain()</a>, <a class="el" href="items_8php.html#af0a887050dc8d0f51c89890cdaf3145f">store_diaspora_comment_sig()</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="account_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="account_8php.html#acd6b8d2124ba5ea4f4794d2c58ae8bf5">verify_email_address()</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#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#a55056e863a7860bc0cf922e78fcce073">zot_gethub()</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>Get a particular config variable given the category name ($family) and a key. </p>
+<p>Get a particular config variable from the given category ($family) and the $key from a cached storage in $a-&gt;config[$family]. If a key is found in the DB but does not exist in local config cache, pull it into the cache so we do not have to hit the DB again for this item.</p>
+<p>Returns false if not set.</p>
+<dl class="params"><dt>Parameters</dt><dd>
+ <table class="params">
+ <tr><td class="paramtype">string</td><td class="paramname">$family</td><td>The category of the configuration value </td></tr>
+ <tr><td class="paramtype">string</td><td class="paramname">$key</td><td>The configuration key to query </td></tr>
+ </table>
+ </dd>
+</dl>
+<dl class="section return"><dt>Returns</dt><dd>mixed Return value or false on error or if not set </dd></dl>
+
+<p>Referenced by <a class="el" href="account_8php.html#a4328c40ee4b3d68630cf1ebb7b9d4d89">account_service_class_fetch()</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#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="bb2diaspora_8php.html#ab27761069ea1275f0fc4c543099c5519">bb2diaspora_itembody()</a>, <a class="el" href="bbcode_8php.html#a009f61aaf78771737ed0765c8463911b">bbcode()</a>, <a class="el" href="zot_8php.html#aa97b33b619dd7132a9274f852af6ceb5">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="dir__fns_8php.html#a2f7d74bb2aea8bcd2537aee5c6708a16">check_upstream_directory()</a>, <a class="el" href="text_8php.html#a0c65597bb4aed3a039eb795ff540e5e3">check_webbie()</a>, <a class="el" href="cli__startup_8php.html#adfdde63686e33ccd4851fa5edc4fc70b">cli_startup()</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="identity_8php.html#a1cf83ac2b645de12868edaa3a5718f05">create_sys_channel()</a>, <a class="el" href="classRedMatrix_1_1RedDAV_1_1RedDirectory.html#a58e750256cdc2f0f79fbe8d5463ffefe">RedMatrix\RedDAV\RedDirectory\createFile()</a>, <a class="el" href="language_8php.html#a632da17c7ac0d2dc1a00a4706870194b">detect_language()</a>, <a class="el" href="diaspora_8php.html#a0fb2abe304aae19efc040a5e6b917829">diaspora_comment()</a>, <a class="el" href="diaspora_8php.html#adef30b6fac948baedcc7194d5d155b5f">diaspora_conversation()</a>, <a class="el" href="diaspora_8php.html#a6f0a67b6b17503c125af32763be931b7">diaspora_dispatch()</a>, <a class="el" href="diaspora_8php.html#ab99505944728d46585b8312989de533d">diaspora_dispatch_public()</a>, <a class="el" href="diaspora_8php.html#a858f70153c384f8778082cf7843a19da">diaspora_is_blacklisted()</a>, <a class="el" href="diaspora_8php.html#a5d57518545baa31cf8a85a937a267681">diaspora_like()</a>, <a class="el" href="diaspora_8php.html#a7cff2f8f11044c1b3a360f20e1bbee46">diaspora_message()</a>, <a class="el" href="diaspora_8php.html#a131abd521b218d6ae6f7d2917d8b2605">diaspora_process_outbound()</a>, <a class="el" href="diaspora_8php.html#af4698b165766f83d89ec1ea964bc92cc">diaspora_send_followup()</a>, <a class="el" href="diaspora_8php.html#aeb2bb78f620dbf51d9335e6eb7444f2c">diaspora_send_mail()</a>, <a class="el" href="diaspora_8php.html#a0b3628a5e53332c3d3196b689fe2b94d">diaspora_send_relay()</a>, <a class="el" href="diaspora_8php.html#aa704d6aa2ac77be345c0f501168e6e56">diaspora_transmit()</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="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#a56b0f5d2cb36eb8f4bfca84813884f86">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="externals_8php.html#a4df44079e6f915286088b7a0d44db926">externals_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="items_8php.html#a8cda98925a4c5c2f6dade70d9586d79a">filter_insecure()</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="permissions_8php.html#aeca9b280f3dc3358c89976d81d690008">get_all_perms()</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="boot_8php.html#a329400dcb29897cdaae3020109272285">get_directory_realm()</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="identity_8php.html#a224710dfb7465b706c91134247c20afa">get_profile_fields_advanced()</a>, <a class="el" href="identity_8php.html#a4ff59df0f0a668a06a8411f87496aa21">get_profile_fields_basic()</a>, <a class="el" href="permissions_8php.html#a9b5f5120566a3699a98efc5ccb0c59fe">get_role_perms()</a>, <a class="el" href="classRedMatrix_1_1RedDAV_1_1RedDirectory.html#a1a37850bdd1f188abd6160559698d5d7">RedMatrix\RedDAV\RedDirectory\getChild()</a>, <a class="el" href="classRedMatrix_1_1RedDAV_1_1RedDirectory.html#a9b9a0b5bfa4de1f78e6cafaa534b6f6a">RedMatrix\RedDAV\RedDirectory\getChildren()</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="home_8php.html#a6e3dbf78f4ed74ab2577de221190b33f">home_content()</a>, <a class="el" href="home_8php.html#ac4642c38b6f23a8d065dd4a75c620bde">home_init()</a>, <a class="el" href="event_8php.html#ab8cc2825013e724dc26229026711cf93">ical_wrapper()</a>, <a class="el" href="identity_8php.html#afaedbc8e2d2a70ec8b006162baac5249">identity_basic_export()</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#a528e97ca5d69c3b7f35c5d954afde315">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="identity_8php.html#a4e996e44b50330098a04b467367a559f">is_public_profile()</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="conversation_8php.html#a9bd7f9fb6678736c581bcba3b17f471c">localize_item()</a>, <a class="el" href="auth_8php.html#ae3ecb5f34f202c7f9a61c5d589f6c6e1">log_failed_login()</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="Contact_8php.html#a08845ce8c5b997d5edac38ae7118b5c8">mark_orphan_hubsxchans()</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="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="include_2follow_8php.html#ae387d4ae097c23d69f3247e7f08140c7">new_contact()</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="permissions_8php.html#a67ada9ed51e77885b6b0f6a28cee1835">perm_is_allowed()</a>, <a class="el" href="photo__driver_8php.html#a32e2817faa25d7f11f60a8abff565035">photo_factory()</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="classRedMatrix_1_1RedDAV_1_1RedFile.html#a709ec1288d21ddf1353524435ab916f0">RedMatrix\RedDAV\RedFile\put()</a>, <a class="el" href="receive_8php.html#a03d8fa26e77844020ba5602deca7d494">receive_post()</a>, <a class="el" href="session_8php.html#ac95373f4966862a028033dd2f94d4da1">ref_session_gc()</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="hubloc_8php.html#a84c79b7be352f62d12fe4fa2c80fc6ea">remove_obsolete_hublocs()</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="account_8php.html#a030cec6793b909c439c0336ba39b1571">service_class_allows()</a>, <a class="el" href="account_8php.html#a905b54e10704b283ac64680a8abc0971">service_class_fetch()</a>, <a class="el" href="service__limits_8php.html#a653424aac63c5cd05ba70c3c77bf7f8a">service_limits_content()</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="siteinfo_8php.html#a3efbd0bd6564af19ec0a9ce0294e59d0">siteinfo_init()</a>, <a class="el" href="text_8php.html#a3d225b253bb9e0f2498c11647d927b0b">smilies()</a>, <a class="el" href="items_8php.html#adf2b8137dc4ad9ec958de2842f16f3c2">start_delivery_chain()</a>, <a class="el" href="items_8php.html#a25221826fa4621f523c68483e3b6af26">store_diaspora_comment_sig()</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="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="account_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="account_8php.html#acd6b8d2124ba5ea4f4794d2c58ae8bf5">verify_email_address()</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="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#a55056e863a7860bc0cf922e78fcce073">zot_gethub()</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>
@@ -286,6 +368,17 @@ Functions</h2></td></tr>
</table>
</div><div class="memdoc">
+<p>Returns a value directly from the database configuration storage. </p>
+<p>This function queries directly the database and bypasses the chached storage from get_config($family, $key).</p>
+<dl class="params"><dt>Parameters</dt><dd>
+ <table class="params">
+ <tr><td class="paramtype">string</td><td class="paramname">$family</td><td>The category of the configuration value </td></tr>
+ <tr><td class="paramtype">string</td><td class="paramname">$key</td><td>The configuration key to query </td></tr>
+ </table>
+ </dd>
+</dl>
+<dl class="section return"><dt>Returns</dt><dd>mixed </dd></dl>
+
<p>Referenced by <a class="el" href="include_2config_8php.html#ad6da879e4fb5b37d1e161d4e9be5c32a">set_config()</a>.</p>
</div>
@@ -326,7 +419,21 @@ 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="acl_8php.html#ac6776dba871806ecdb5d1659bc2eb07a">acl_init()</a>, <a class="el" href="bb2diaspora_8php.html#a2052c66bc1006a42b4c230320c269e47">bb2diaspora_itembody()</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="connect_8php.html#a489f0a66c660de6ec4d6917b27674f07">connect_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_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="item_8php.html#a3daae7944f737bd30412a0d042207c0f">fix_attached_file_permissions()</a>, <a class="el" href="item_8php.html#a7b63a9d0cd02096e17dcf11f4afa7c10">fix_attached_photo_permissions()</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="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="enotify_8php.html#a3e9a9355b243777c488d2a9883908dfc">notification()</a>, <a class="el" href="pdledit_8php.html#a59cb550f6b7a4e7d8196fbc9de601619">pdledit_content()</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#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>
+<p>Get a particular channel's config variable given the category name ($family) and a key. </p>
+<p>Get a particular channel's config value from the given category ($family) and the $key from a cached storage in $a-&gt;config[$uid].</p>
+<p>Returns false if not set.</p>
+<dl class="params"><dt>Parameters</dt><dd>
+ <table class="params">
+ <tr><td class="paramtype">string</td><td class="paramname">$uid</td><td>The channel_id </td></tr>
+ <tr><td class="paramtype">string</td><td class="paramname">$family</td><td>The category of the configuration value </td></tr>
+ <tr><td class="paramtype">string</td><td class="paramname">$key</td><td>The configuration key to query </td></tr>
+ <tr><td class="paramtype">boolean</td><td class="paramname">$instore</td><td>(deprecated, without function) </td></tr>
+ </table>
+ </dd>
+</dl>
+<dl class="section return"><dt>Returns</dt><dd>mixed Stored value or false if it does not exist </dd></dl>
+
+<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="bb2diaspora_8php.html#ab27761069ea1275f0fc4c543099c5519">bb2diaspora_itembody()</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="security_8php.html#a8d23d2597aae380a3341872fe9513380">change_channel()</a>, <a class="el" href="channel_8php.html#a9c6a6179e0e626398ebecc6151905ef1">channel_content()</a>, <a class="el" href="connect_8php.html#a489f0a66c660de6ec4d6917b27674f07">connect_content()</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="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="diaspora_8php.html#ac1ab782a34552a7c6b4dc961754ed598">diaspora_request()</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="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="item_8php.html#a3daae7944f737bd30412a0d042207c0f">fix_attached_file_permissions()</a>, <a class="el" href="item_8php.html#a7b63a9d0cd02096e17dcf11f4afa7c10">fix_attached_photo_permissions()</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="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="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#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="boot_8php.html#a50a6707a28c7d05d3f49eaabc7994501">load_pdl()</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="nav_8php.html#a43be0df73b90647ea70947ce004e231e">nav()</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="pdledit_8php.html#a59cb550f6b7a4e7d8196fbc9de601619">pdledit_content()</a>, <a class="el" href="ping_8php.html#a77217b1b190b4c5d8770867b45f0c0a1">ping_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#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="settings_8php.html#aa7ee94d88ac088edb04ccf3a26de3586">settings_post()</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>, <a class="el" href="webpages_8php.html#af3b7397d4abc153e3d2147740ee1a41d">webpages_content()</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#aaa73bcf1702eaadd9dcd253502f55e01">widget_settings_menu()</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>
@@ -360,6 +467,19 @@ Functions</h2></td></tr>
</table>
</div><div class="memdoc">
+<p>Get a particular observer's config variable given the category name ($family) and a key. </p>
+<p>Get a particular observer's config value from the given category ($family) and the $key from a cached storage in $a-&gt;config[$xchan].</p>
+<p>Returns false if not set.</p>
+<dl class="params"><dt>Parameters</dt><dd>
+ <table class="params">
+ <tr><td class="paramtype">string</td><td class="paramname">$xchan</td><td>The observer's hash </td></tr>
+ <tr><td class="paramtype">string</td><td class="paramname">$family</td><td>The category of the configuration value </td></tr>
+ <tr><td class="paramtype">string</td><td class="paramname">$key</td><td>The configuration key to query </td></tr>
+ </table>
+ </dd>
+</dl>
+<dl class="section return"><dt>Returns</dt><dd>mixed Stored $value or false if it does not exist </dd></dl>
+
<p>Referenced by <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="include_2config_8php.html#afe117b70f1bba2f6348d9300b601f86e">set_xconfig()</a>, and <a class="el" href="toggle__safesearch_8php.html#a23d5cfb2727a266e44993ffbf5595a79">toggle_safesearch_init()</a>.</p>
</div>
@@ -377,14 +497,21 @@ Functions</h2></td></tr>
</tr>
</table>
</div><div class="memdoc">
-<p>Arbitrary configuration storage Note: Please do not store booleans - convert to 0/1 integer values The get_?config() functions return boolean false for keys that are unset, and this could lead to subtle bugs.</p>
-<p>There are a few places in the code (such as the admin panel) where boolean configurations need to be fixed as of 10/08/2011. </p>
+
+<p>Loads the hub's configuration from database to a cached storage. </p>
+<p>Retrieve a category ($family) of config variables from database to a cached storage in the global $a-&gt;config[$family].</p>
+<dl class="params"><dt>Parameters</dt><dd>
+ <table class="params">
+ <tr><td class="paramtype">string</td><td class="paramname">$family</td><td>The category of the configuration value </td></tr>
+ </table>
+ </dd>
+</dl>
<p>Referenced by <a class="el" href="include_2api_8php.html#a623793229a7256dd31bcfd5ab90eef08">api_statusnet_config()</a>, <a class="el" href="boot_8php.html#a4c02d88e66852a01bd5a1feecb7c3ce3">check_config()</a>, <a class="el" href="cli__startup_8php.html#adfdde63686e33ccd4851fa5edc4fc70b">cli_startup()</a>, and <a class="el" href="include_2config_8php.html#af02c96e6b37335774b548914ede1d22e">get_config()</a>.</p>
</div>
</div>
-<a class="anchor" id="ac543813a980b3841cc5a277fcd4a24a6"></a>
+<a class="anchor" id="a559791dda7fef8a4b2394c83e835787b"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
@@ -392,27 +519,27 @@ Functions</h2></td></tr>
<td class="memname">load_pconfig </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>$family</em> = <code>''</code>&#160;</td>
- </tr>
- <tr>
+ <td class="paramname"><em>$uid</em></td><td>)</td>
<td></td>
- <td>)</td>
- <td></td><td></td>
</tr>
</table>
</div><div class="memdoc">
+<p>Loads all configuration values of a channel into a cached storage. </p>
+<p>All configuration values of the given channel are stored in global cache which is available under the global variable $a-&gt;config[$uid].</p>
+<dl class="params"><dt>Parameters</dt><dd>
+ <table class="params">
+ <tr><td class="paramtype">string</td><td class="paramname">$uid</td><td>The channel_id </td></tr>
+ </table>
+ </dd>
+</dl>
+<dl class="section return"><dt>Returns</dt><dd>void|false Nothing or false if $uid is false </dd></dl>
+
<p>Referenced by <a class="el" href="conversation_8php.html#affea1afb3f32ca41e966c8ddb4204d81">conversation()</a>, and <a class="el" href="include_2config_8php.html#ad58a4913937179adb13201c2ee3261ad">get_pconfig()</a>.</p>
</div>
</div>
-<a class="anchor" id="a55bbed9a014c9109c767486834f3ca33"></a>
+<a class="anchor" id="aee4b619839cf4b64220f34edf5c67b52"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
@@ -420,22 +547,22 @@ Functions</h2></td></tr>
<td class="memname">load_xconfig </td>
<td>(</td>
<td class="paramtype">&#160;</td>
- <td class="paramname"><em>$xchan</em>, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
+ <td class="paramname"><em>$xchan</em></td><td>)</td>
<td></td>
- <td class="paramtype">&#160;</td>
- <td class="paramname"><em>$family</em> = <code>''</code>&#160;</td>
- </tr>
- <tr>
- <td></td>
- <td>)</td>
- <td></td><td></td>
</tr>
</table>
</div><div class="memdoc">
+<p>Loads a full xchan's configuration into a cached storage. </p>
+<p>All configuration values of the given observer hash are stored in global cache which is available under the global variable $a-&gt;config[$xchan].</p>
+<dl class="params"><dt>Parameters</dt><dd>
+ <table class="params">
+ <tr><td class="paramtype">string</td><td class="paramname">$xchan</td><td>The observer's hash </td></tr>
+ </table>
+ </dd>
+</dl>
+<dl class="section return"><dt>Returns</dt><dd>void|false Returns false if xchan is not set </dd></dl>
+
<p>Referenced by <a class="el" href="include_2config_8php.html#aa3dc1d3de2d091ac702e675acd3a085e">get_xconfig()</a>.</p>
</div>
@@ -470,7 +597,20 @@ 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="dir__fns_8php.html#a2f7d74bb2aea8bcd2537aee5c6708a16">check_upstream_directory()</a>, <a class="el" href="account_8php.html#a141fe579c351c78209d425473f978eb5">create_account()</a>, <a class="el" href="identity_8php.html#a1cf83ac2b645de12868edaa3a5718f05">create_sys_channel()</a>, <a class="el" href="dir__fns_8php.html#a8c15aa69da12f2d3476b9e93b82b337d">find_upstream_directory()</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>
+<p>Sets a configuration value for the hub. </p>
+<p>Stores a config value ($value) in the category ($family) under the key ($key).</p>
+<p>Please do not store booleans - convert to 0/1 integer values!</p>
+<dl class="params"><dt>Parameters</dt><dd>
+ <table class="params">
+ <tr><td class="paramtype">string</td><td class="paramname">$family</td><td>The category of the configuration value </td></tr>
+ <tr><td class="paramtype">string</td><td class="paramname">$key</td><td>The configuration key to set </td></tr>
+ <tr><td class="paramtype">mixed</td><td class="paramname">$value</td><td>The value to store in the configuration </td></tr>
+ </table>
+ </dd>
+</dl>
+<dl class="section return"><dt>Returns</dt><dd>mixed Return the set value, or false if the database update failed </dd></dl>
+
+<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="dir__fns_8php.html#a2f7d74bb2aea8bcd2537aee5c6708a16">check_upstream_directory()</a>, <a class="el" href="account_8php.html#a141fe579c351c78209d425473f978eb5">create_account()</a>, <a class="el" href="identity_8php.html#a1cf83ac2b645de12868edaa3a5718f05">create_sys_channel()</a>, <a class="el" href="dir__fns_8php.html#a8c15aa69da12f2d3476b9e93b82b337d">find_upstream_directory()</a>, <a class="el" href="poller_8php.html#a5f12df3a4738124b6c039971e87e76da">poller_run()</a>, <a class="el" href="statistics__fns_8php.html#a82726229a961d3bd3d543005c61dd8e6">update_channels_active_halfyear_stat()</a>, <a class="el" href="statistics__fns_8php.html#ad2b7b595c039c4c2eb0d6cd57a393dfe">update_channels_active_monthly_stat()</a>, <a class="el" href="statistics__fns_8php.html#a05858927cce81fd367aedf85a94ed90c">update_channels_total_stat()</a>, <a class="el" href="statistics__fns_8php.html#a9dd516dda693f17f5ce48a94876f7efa">update_local_posts_stat()</a>, and <a class="el" href="setup_8php.html#aea1ebdda58ec938f4e7b31aa5c5f6b58">what_next()</a>.</p>
</div>
</div>
@@ -510,7 +650,20 @@ 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="notes_8php.html#a4dbd7b1f906440746af48b484d66535a">notes_init()</a>, <a class="el" href="pdledit_8php.html#a81da3c955d0e3db55d148a31483104c7">pdledit_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>Sets a configuration value for a channel. </p>
+<p>Stores a config value ($value) in the category ($family) under the key ($key) for the channel_id $uid.</p>
+<p>Please do not store booleans - convert to 0/1 integer values!</p>
+<dl class="params"><dt>Parameters</dt><dd>
+ <table class="params">
+ <tr><td class="paramtype">string</td><td class="paramname">$uid</td><td>The channel_id </td></tr>
+ <tr><td class="paramtype">string</td><td class="paramname">$family</td><td>The category of the configuration value </td></tr>
+ <tr><td class="paramtype">string</td><td class="paramname">$key</td><td>The configuration key to query </td></tr>
+ </table>
+ </dd>
+</dl>
+<dl class="section return"><dt>Returns</dt><dd>mixed Stored $value or false </dd></dl>
+
+<p>Referenced by <a class="el" href="connect_8php.html#a417ec27afe33f21a929667a665e32ee2">connect_post()</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="invite_8php.html#aeb0881c0f93c8e8552e5ed756ce6e5a5">invite_post()</a>, <a class="el" href="notes_8php.html#a4dbd7b1f906440746af48b484d66535a">notes_init()</a>, <a class="el" href="pdledit_8php.html#a81da3c955d0e3db55d148a31483104c7">pdledit_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>
</div>
</div>
@@ -550,6 +703,19 @@ Functions</h2></td></tr>
</table>
</div><div class="memdoc">
+<p>Sets a configuration value for an observer. </p>
+<p>Stores a config value ($value) in the category ($family) under the key ($key) for the observer's $xchan hash.</p>
+<p>Please do not store booleans - convert to 0/1 integer values!</p>
+<dl class="params"><dt>Parameters</dt><dd>
+ <table class="params">
+ <tr><td class="paramtype">string</td><td class="paramname">$xchan</td><td>The observer's hash </td></tr>
+ <tr><td class="paramtype">string</td><td class="paramname">$family</td><td>The category of the configuration value </td></tr>
+ <tr><td class="paramtype">string</td><td class="paramname">$key</td><td>The configuration key to set </td></tr>
+ </table>
+ </dd>
+</dl>
+<dl class="section return"><dt>Returns</dt><dd>mixed Stored $value or false </dd></dl>
+
<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>
diff --git a/doc/html/include_2config_8php.js b/doc/html/include_2config_8php.js
index a9f05bed3..5ba8c47a5 100644
--- a/doc/html/include_2config_8php.js
+++ b/doc/html/include_2config_8php.js
@@ -8,8 +8,8 @@ var include_2config_8php =
[ "get_pconfig", "include_2config_8php.html#ad58a4913937179adb13201c2ee3261ad", null ],
[ "get_xconfig", "include_2config_8php.html#aa3dc1d3de2d091ac702e675acd3a085e", null ],
[ "load_config", "include_2config_8php.html#a27559f388c9b9af81c94e48d6889d1d1", null ],
- [ "load_pconfig", "include_2config_8php.html#ac543813a980b3841cc5a277fcd4a24a6", null ],
- [ "load_xconfig", "include_2config_8php.html#a55bbed9a014c9109c767486834f3ca33", null ],
+ [ "load_pconfig", "include_2config_8php.html#a559791dda7fef8a4b2394c83e835787b", null ],
+ [ "load_xconfig", "include_2config_8php.html#aee4b619839cf4b64220f34edf5c67b52", null ],
[ "set_config", "include_2config_8php.html#ad6da879e4fb5b37d1e161d4e9be5c32a", null ],
[ "set_pconfig", "include_2config_8php.html#a61591371cb18764138655d67dc817ab2", null ],
[ "set_xconfig", "include_2config_8php.html#afe117b70f1bba2f6348d9300b601f86e", null ]
diff --git a/doc/html/include_2follow_8php.html b/doc/html/include_2follow_8php.html
index 64e43db27..cef93a114 100644
--- a/doc/html/include_2follow_8php.html
+++ b/doc/html/include_2follow_8php.html
@@ -159,7 +159,7 @@ Functions</h2></td></tr>
</div><div class="memdoc">
<p>If there is a default group for this channel, add this member to it </p>
-<p>Referenced by <a class="el" href="mod_2follow_8php.html#a171f5b19f50d7738adc3b2e96ec6018a">follow_init()</a>.</p>
+<p>Referenced by <a class="el" href="identity_8php.html#a345f4c943d84de502ec6e72d2c813945">create_identity()</a>, and <a class="el" href="mod_2follow_8php.html#a171f5b19f50d7738adc3b2e96ec6018a">follow_init()</a>.</p>
</div>
</div>
diff --git a/doc/html/include_2group_8php.html b/doc/html/include_2group_8php.html
index dfba8fafe..2f442e6c2 100644
--- a/doc/html/include_2group_8php.html
+++ b/doc/html/include_2group_8php.html
@@ -186,7 +186,7 @@ Functions</h2></td></tr>
</table>
</div><div class="memdoc">
-<p>Referenced by <a class="el" href="identity_8php.html#a345f4c943d84de502ec6e72d2c813945">create_identity()</a>, and <a class="el" href="mod_2group_8php.html#aed1f009b1221348021bb34761160ef35">group_post()</a>.</p>
+<p>Referenced by <a class="el" href="identity_8php.html#a345f4c943d84de502ec6e72d2c813945">create_identity()</a>, <a class="el" href="mod_2group_8php.html#aed1f009b1221348021bb34761160ef35">group_post()</a>, and <a class="el" href="settings_8php.html#aa7ee94d88ac088edb04ccf3a26de3586">settings_post()</a>.</p>
</div>
</div>
@@ -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="connedit_8php.html#a234c48426b652bf4d37053f2af329ac5">connedit_post()</a>, <a class="el" href="contactgroup_8php.html#a18c7391b1b25debaf98c9dba639caab3">contactgroup_content()</a>, <a class="el" href="diaspora_8php.html#ac1ab782a34552a7c6b4dc961754ed598">diaspora_request()</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="identity_8php.html#a345f4c943d84de502ec6e72d2c813945">create_identity()</a>, <a class="el" href="diaspora_8php.html#ac1ab782a34552a7c6b4dc961754ed598">diaspora_request()</a>, <a class="el" href="mod_2group_8php.html#a07a64f6c65b0080d8190b3d9728a7a83">group_content()</a>, <a class="el" href="include_2follow_8php.html#ae387d4ae097c23d69f3247e7f08140c7">new_contact()</a>, and <a class="el" href="settings_8php.html#aa7ee94d88ac088edb04ccf3a26de3586">settings_post()</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>, <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>
+<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="text_8php.html#aa22feef4de326e1d7078dedd892e615c">handle_tag()</a>.</p>
</div>
</div>
diff --git a/doc/html/include_2menu_8php.html b/doc/html/include_2menu_8php.html
index b00d62faa..ad434f83d 100644
--- a/doc/html/include_2menu_8php.html
+++ b/doc/html/include_2menu_8php.html
@@ -122,6 +122,8 @@ Functions</h2></td></tr>
<tr class="separator:a08a800821721781a8dfffbe31481ff98"><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:a251bf7e15d21627fd92614198e41c485"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="include_2menu_8php.html#a251bf7e15d21627fd92614198e41c485">menu_list_count</a> ($channel_id, $name= '', $flags=0)</td></tr>
+<tr class="separator:a251bf7e15d21627fd92614198e41c485"><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>
@@ -425,6 +427,40 @@ Functions</h2></td></tr>
</div>
</div>
+<a class="anchor" id="a251bf7e15d21627fd92614198e41c485"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">menu_list_count </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>$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>Referenced by <a class="el" href="nav_8php.html#a43be0df73b90647ea70947ce004e231e">nav()</a>.</p>
+
+</div>
+</div>
<a class="anchor" id="a03a5deed3908543581c074ce333e9d6a"></a>
<div class="memitem">
<div class="memproto">
diff --git a/doc/html/include_2menu_8php.js b/doc/html/include_2menu_8php.js
index c5e645c10..0db36147b 100644
--- a/doc/html/include_2menu_8php.js
+++ b/doc/html/include_2menu_8php.js
@@ -10,5 +10,6 @@ var include_2menu_8php =
[ "menu_fetch", "include_2menu_8php.html#a68ebbf492470c930f652013656f9071d", null ],
[ "menu_fetch_id", "include_2menu_8php.html#a47447c01ba8ea04cd74af1d4c5b68fc7", null ],
[ "menu_list", "include_2menu_8php.html#a32701c4245e78ba9106eef52c08bf33d", null ],
+ [ "menu_list_count", "include_2menu_8php.html#a251bf7e15d21627fd92614198e41c485", null ],
[ "menu_render", "include_2menu_8php.html#a03a5deed3908543581c074ce333e9d6a", null ]
]; \ No newline at end of file
diff --git a/doc/html/include_2network_8php.html b/doc/html/include_2network_8php.html
index 66b95e7c0..56a0aadea 100644
--- a/doc/html/include_2network_8php.html
+++ b/doc/html/include_2network_8php.html
@@ -118,7 +118,9 @@ Functions</h2></td></tr>
<tr class="separator:aafd06c0a75402aefb06cfb9f9740fa37"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a9129fd55e7fc175b4ea9a195cccc16bc"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="include_2network_8php.html#a9129fd55e7fc175b4ea9a195cccc16bc">z_post_url</a> ($url, $params, $redirects=0, $opts=array())</td></tr>
<tr class="separator:a9129fd55e7fc175b4ea9a195cccc16bc"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:a4c5d50079e089168d9248427018fffd4"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="include_2network_8php.html#a4c5d50079e089168d9248427018fffd4">json_return_and_die</a> ($<a class="el" href="boot_8php.html#a01353c9abebc3544ea080ac161729632">x</a>)</td></tr>
+<tr class="memitem:a984708e60d531b31b2d1f88b5f408f7b"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="include_2network_8php.html#a984708e60d531b31b2d1f88b5f408f7b">z_post_url_json</a> ($url, $params, $redirects=0, $opts=array())</td></tr>
+<tr class="separator:a984708e60d531b31b2d1f88b5f408f7b"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a4c5d50079e089168d9248427018fffd4"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="include_2network_8php.html#a4c5d50079e089168d9248427018fffd4">json_return_and_die</a> ($<a class="el" href="boot_8php.html#ae97836b0547953be182a2334c9c91d3c">x</a>)</td></tr>
<tr class="separator:a4c5d50079e089168d9248427018fffd4"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a9e9da2aafb806c98ecdc318604e60dc6"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="include_2network_8php.html#a9e9da2aafb806c98ecdc318604e60dc6">xml_status</a> ($st, $message= '')</td></tr>
<tr class="separator:a9e9da2aafb806c98ecdc318604e60dc6"><td class="memSeparator" colspan="2">&#160;</td></tr>
@@ -286,7 +288,7 @@ Functions</h2></td></tr>
</table>
</div><div class="memdoc">
-<p>Referenced by <a class="el" href="diaspora_8php.html#aade0c165fcdded71352c7a67bf6ce37b">find_diaspora_person_by_handle()</a>, <a class="el" href="items_8php.html#a2c3f97b2109c05df86d97449b3c78ebc">import_author_diaspora()</a>, and <a class="el" href="include_2follow_8php.html#ae387d4ae097c23d69f3247e7f08140c7">new_contact()</a>.</p>
+<p>Referenced by <a class="el" href="bb2diaspora_8php.html#a4a27604f0745f1efda672966aaca9a3b">diaspora_mention_callback()</a>, <a class="el" href="diaspora_8php.html#aade0c165fcdded71352c7a67bf6ce37b">find_diaspora_person_by_handle()</a>, <a class="el" href="items_8php.html#a2c3f97b2109c05df86d97449b3c78ebc">import_author_diaspora()</a>, and <a class="el" href="include_2follow_8php.html#ae387d4ae097c23d69f3247e7f08140c7">new_contact()</a>.</p>
</div>
</div>
@@ -443,7 +445,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="cloud_8php.html#a1b79a6fe0454bc76673ad9aef55bf02d">cloud_init()</a>, <a class="el" href="diaspora_8php.html#a849754ec369e1a60fadae5c14584ca36">diaspora_decode()</a>, <a class="el" href="items_8php.html#a04a35b610acfe54434df08adec39c0c7">get_feed_for()</a>, <a class="el" href="poco_8php.html#a53def16f75e3d41f1d2bb7cfa4905498">poco_init()</a>, and <a class="el" href="receive_8php.html#a03d8fa26e77844020ba5602deca7d494">receive_post()</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#ad2e96e917852f27dedfc263d37e13756">cloud_init()</a>, <a class="el" href="diaspora_8php.html#a849754ec369e1a60fadae5c14584ca36">diaspora_decode()</a>, <a class="el" href="items_8php.html#a04a35b610acfe54434df08adec39c0c7">get_feed_for()</a>, <a class="el" href="p_8php.html#af9d5530ca0b3dc9409cf591c39e2480e">p_init()</a>, <a class="el" href="poco_8php.html#a53def16f75e3d41f1d2bb7cfa4905498">poco_init()</a>, and <a class="el" href="receive_8php.html#a03d8fa26e77844020ba5602deca7d494">receive_post()</a>.</p>
</div>
</div>
@@ -461,7 +463,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="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="include_2api_8php.html#aafa82b65a9f879a1a1197cfe8aaf3898">red_item_new()</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#ad5fe62d6c25c86999f627b2e6cfde536">api_group()</a>, <a class="el" href="include_2api_8php.html#ae46f964e5a9c80b96dc78df61c09ed3a">api_group_members()</a>, <a class="el" href="include_2api_8php.html#aa6fc3bc8c0fad1d081db0dcc456dd77f">api_photos()</a>, <a class="el" href="include_2api_8php.html#a4fe872332ff0bd8d5eae2f0c6819cb60">api_red_xchan()</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="impel_8php.html#ab7db6fca43b42ea4332cb3e841b3cf7b">impel_init()</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="include_2api_8php.html#aafa82b65a9f879a1a1197cfe8aaf3898">red_item_new()</a>, <a class="el" href="register_8php.html#ae20c0cd40f738d6295de58b9202c83d5">register_init()</a>, <a class="el" href="siteinfo_8php.html#a3efbd0bd6564af19ec0a9ce0294e59d0">siteinfo_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>
@@ -507,7 +509,7 @@ Functions</h2></td></tr>
</table>
</div><div class="memdoc">
-<p>Referenced by <a class="el" href="diaspora_8php.html#a849754ec369e1a60fadae5c14584ca36">diaspora_decode()</a>, <a class="el" href="diaspora_8php.html#a6f0a67b6b17503c125af32763be931b7">diaspora_dispatch()</a>, <a class="el" href="diaspora_8php.html#a2bf43f6b5890897f425ef4325d34b007">diaspora_reshare()</a>, and <a class="el" href="include_2network_8php.html#a850ed5307c6a18076f4b80addc99602d">fetch_xrd_links()</a>.</p>
+<p>Referenced by <a class="el" href="diaspora_8php.html#a849754ec369e1a60fadae5c14584ca36">diaspora_decode()</a>, <a class="el" href="diaspora_8php.html#a6f0a67b6b17503c125af32763be931b7">diaspora_dispatch()</a>, <a class="el" href="include_2network_8php.html#a850ed5307c6a18076f4b80addc99602d">fetch_xrd_links()</a>, <a class="el" href="dimport_8php.html#a581f040717941ce3e1868b0b5dceefd1">foofoo()</a>, and <a class="el" href="diaspora_8php.html#ac9e41e46626dc608204bf4b5e16e62d7">get_diaspora_reshare_xml()</a>.</p>
</div>
</div>
@@ -541,7 +543,7 @@ Functions</h2></td></tr>
</table>
</div><div class="memdoc">
-<p>Referenced by <a class="el" href="bb2diaspora_8php.html#ac9061ee10fcfcdac69566b649614e625">diaspora2bb()</a>, <a class="el" href="diaspora_8php.html#a006731620a5242d410358b32678e48e3">diaspora_asphoto()</a>, <a class="el" href="diaspora_8php.html#a71fe9bb66626b4197ae018a230778bb2">diaspora_photo()</a>, <a class="el" href="diaspora_8php.html#a2bf43f6b5890897f425ef4325d34b007">diaspora_reshare()</a>, and <a class="el" href="item_8php.html#a693cd09805755ab85bbb5ecae69a48c3">item_post()</a>.</p>
+<p>Referenced by <a class="el" href="bb2diaspora_8php.html#ac9061ee10fcfcdac69566b649614e625">diaspora2bb()</a>, <a class="el" href="diaspora_8php.html#a006731620a5242d410358b32678e48e3">diaspora_asphoto()</a>, <a class="el" href="diaspora_8php.html#a20b968d64ef26afe5cb0cc75a7570a31">diaspora_post()</a>, <a class="el" href="diaspora_8php.html#a2bf43f6b5890897f425ef4325d34b007">diaspora_reshare()</a>, and <a class="el" href="item_8php.html#a693cd09805755ab85bbb5ecae69a48c3">item_post()</a>.</p>
</div>
</div>
@@ -745,7 +747,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="diaspora_8php.html#a2bf43f6b5890897f425ef4325d34b007">diaspora_reshare()</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="include_2network_8php.html#a5176176ddc1906d91f186df6fbd87b48">discover_by_url()</a>, <a class="el" href="include_2network_8php.html#a63e62946e194928eb17c5a9f2bbef0fe">discover_by_webbie()</a>, <a class="el" href="externals_8php.html#a4df44079e6f915286088b7a0d44db926">externals_run()</a>, <a class="el" href="include_2network_8php.html#a850ed5307c6a18076f4b80addc99602d">fetch_xrd_links()</a>, <a class="el" href="items_8php.html#a52c24114b73c0bdb605a03cd29712223">handle_feed()</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#a528e97ca5d69c3b7f35c5d954afde315">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="include_2network_8php.html#a316f318167a039c89719afbd129a8f3c">scrape_feed()</a>, <a class="el" href="include_2network_8php.html#acb0bd7f5fe38ff1eaebeae3284525070">scrape_vcard()</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#a3e6c751a51de33ad3563f0938296e78a">webfinger_rfc7033()</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="include_2network_8php.html#a5176176ddc1906d91f186df6fbd87b48">discover_by_url()</a>, <a class="el" href="include_2network_8php.html#a63e62946e194928eb17c5a9f2bbef0fe">discover_by_webbie()</a>, <a class="el" href="externals_8php.html#a4df44079e6f915286088b7a0d44db926">externals_run()</a>, <a class="el" href="include_2network_8php.html#a850ed5307c6a18076f4b80addc99602d">fetch_xrd_links()</a>, <a class="el" href="diaspora_8php.html#ac9e41e46626dc608204bf4b5e16e62d7">get_diaspora_reshare_xml()</a>, <a class="el" href="items_8php.html#a52c24114b73c0bdb605a03cd29712223">handle_feed()</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#a528e97ca5d69c3b7f35c5d954afde315">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="refimport_8php.html#ae9c56f779d1e0ac7bcb2a460129e7ae5">reflect_photo_callback()</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="include_2network_8php.html#a316f318167a039c89719afbd129a8f3c">scrape_feed()</a>, <a class="el" href="include_2network_8php.html#acb0bd7f5fe38ff1eaebeae3284525070">scrape_vcard()</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#a3e6c751a51de33ad3563f0938296e78a">webfinger_rfc7033()</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>
@@ -784,8 +786,57 @@ Functions</h2></td></tr>
</tr>
</table>
</div><div class="memdoc">
+<p>z_post_url </p>
+<dl class="params"><dt>Parameters</dt><dd>
+ <table class="params">
+ <tr><td class="paramtype">string</td><td class="paramname">$url</td><td>URL to post </td></tr>
+ <tr><td class="paramtype">mixed</td><td class="paramname">$params</td><td>The full data to post in a HTTP "POST" operation. This parameter can either be passed as a urlencoded string like 'para1=val1&amp;para2=val2&amp;...' or as an array with the field name as key and field data as value. If value is an array, the Content-Type header will be set to multipart/form-data. </td></tr>
+ <tr><td class="paramtype">int</td><td class="paramname">$redirects</td><td>= 0 internal use, recursion counter </td></tr>
+ <tr><td class="paramtype">array</td><td class="paramname">$opts</td><td>(optional parameters) 'accept_content' =&gt; supply Accept: header with 'accept_content' as the value 'timeout' =&gt; int seconds, default system config value or 60 seconds 'http_auth' =&gt; username:password 'novalidate' =&gt; do not validate SSL certs, default is to validate using our CA list</td></tr>
+ </table>
+ </dd>
+</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="deliver_8php.html#a397afcb9afecf0c1816b0951189dd346">deliver_run()</a>, <a class="el" href="oexchange_8php.html#a2d8b785cd7d041a4e6274f5af370cf26">oexchange_content()</a>, <a class="el" href="queue_8php.html#af8c93de86d866c3200174c8450a0f341">queue_run()</a>, <a class="el" href="share_8php.html#afeb26046bdd02567ecd29ab5f188b249">share_init()</a>, <a class="el" href="include_2network_8php.html#a984708e60d531b31b2d1f88b5f408f7b">z_post_url_json()</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>
-<p>Referenced by <a class="el" href="deliver_8php.html#a397afcb9afecf0c1816b0951189dd346">deliver_run()</a>, <a class="el" href="oexchange_8php.html#a2d8b785cd7d041a4e6274f5af370cf26">oexchange_content()</a>, <a class="el" href="queue_8php.html#af8c93de86d866c3200174c8450a0f341">queue_run()</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>
+<a class="anchor" id="a984708e60d531b31b2d1f88b5f408f7b"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">z_post_url_json </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>$params</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">&#160;</td>
+ <td class="paramname"><em>$redirects</em> = <code>0</code>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">&#160;</td>
+ <td class="paramname"><em>$opts</em> = <code>array()</code>&#160;</td>
+ </tr>
+ <tr>
+ <td></td>
+ <td>)</td>
+ <td></td><td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
</div>
</div>
diff --git a/doc/html/include_2network_8php.js b/doc/html/include_2network_8php.js
index 95d48dbd8..4e4382941 100644
--- a/doc/html/include_2network_8php.js
+++ b/doc/html/include_2network_8php.js
@@ -24,5 +24,6 @@ var include_2network_8php =
[ "xml2array", "include_2network_8php.html#a99353baabbc3e0584b85eb79ee802cff", null ],
[ "xml_status", "include_2network_8php.html#a9e9da2aafb806c98ecdc318604e60dc6", null ],
[ "z_fetch_url", "include_2network_8php.html#aafd06c0a75402aefb06cfb9f9740fa37", null ],
- [ "z_post_url", "include_2network_8php.html#a9129fd55e7fc175b4ea9a195cccc16bc", null ]
+ [ "z_post_url", "include_2network_8php.html#a9129fd55e7fc175b4ea9a195cccc16bc", null ],
+ [ "z_post_url_json", "include_2network_8php.html#a984708e60d531b31b2d1f88b5f408f7b", null ]
]; \ No newline at end of file
diff --git a/doc/html/include_2photos_8php.html b/doc/html/include_2photos_8php.html
index 2e9d67da2..81047d3e7 100644
--- a/doc/html/include_2photos_8php.html
+++ b/doc/html/include_2photos_8php.html
@@ -162,7 +162,7 @@ Functions</h2></td></tr>
<p>Determine the album to use</p>
<p>We create a wall item for every photo, but we don't want to overwhelm the data stream with a hundred newly uploaded photos. So we will make the first photo uploaded to this album in the last several hours visible by default, the rest will become visible over time when and if they acquire comments, likes, dislikes, and/or tags</p>
-<p>Referenced by <a class="el" href="mod_2photos_8php.html#a062bed4d04d14fee8a53f4c9be673080">photos_post()</a>, and <a class="el" href="wall__upload_8php.html#a7cbe204244cf9e0380ee932263a74d8f">wall_upload_post()</a>.</p>
+<p>Referenced by <a class="el" href="mod_2photos_8php.html#a062bed4d04d14fee8a53f4c9be673080">photos_post()</a>, <a class="el" href="refimport_8php.html#ae9c56f779d1e0ac7bcb2a460129e7ae5">reflect_photo_callback()</a>, and <a class="el" href="wall__upload_8php.html#a7cbe204244cf9e0380ee932263a74d8f">wall_upload_post()</a>.</p>
</div>
</div>
@@ -394,7 +394,7 @@ Functions</h2></td></tr>
</table>
</div><div class="memdoc">
-<p>Referenced by <a class="el" href="include_2api_8php.html#aa6fc3bc8c0fad1d081db0dcc456dd77f">api_photos()</a>.</p>
+<p>Referenced by <a class="el" href="include_2api_8php.html#aa6fc3bc8c0fad1d081db0dcc456dd77f">api_photos()</a>, and <a class="el" href="widgets_8php.html#af8eb466ef91d9e96e13335ead5eba380">widget_photo_rand()</a>.</p>
</div>
</div>
diff --git a/doc/html/item_8php.html b/doc/html/item_8php.html
index ebaf4de28..4109e4e21 100644
--- a/doc/html/item_8php.html
+++ b/doc/html/item_8php.html
@@ -116,8 +116,6 @@ 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: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,70 +240,6 @@ Functions</h2></td></tr>
</div>
</div>
-<a class="anchor" id="aa22feef4de326e1d7078dedd892e615c"></a>
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname">handle_tag </td>
- <td>(</td>
- <td class="paramtype">&#160;</td>
- <td class="paramname"><em>$a</em>, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype">&amp;&#160;</td>
- <td class="paramname"><em>$body</em>, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype">&amp;&#160;</td>
- <td class="paramname"><em>$access_tag</em>, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype">&amp;&#160;</td>
- <td class="paramname"><em>$str_tags</em>, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype">&#160;</td>
- <td class="paramname"><em>$profile_uid</em>, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype">&#160;</td>
- <td class="paramname"><em>$tag</em>&#160;</td>
- </tr>
- <tr>
- <td></td>
- <td>)</td>
- <td></td><td></td>
- </tr>
- </table>
-</div><div class="memdoc">
-<p>This function removes the tag $tag from the text $body and replaces it with the appropiate link.</p>
-<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">$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>
- </table>
- </dd>
-</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>, and <a class="el" href="mod_2photos_8php.html#a062bed4d04d14fee8a53f4c9be673080">photos_post()</a>.</p>
-
-</div>
-</div>
<a class="anchor" id="a5b1b36cb301a94b38150074f0d424e74"></a>
<div class="memitem">
<div class="memproto">
diff --git a/doc/html/item_8php.js b/doc/html/item_8php.js
index 6fe342a64..4cf9b1b0b 100644
--- a/doc/html/item_8php.js
+++ b/doc/html/item_8php.js
@@ -2,7 +2,6 @@ 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#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 fbdfe7082..9cd5f6dea 100644
--- a/doc/html/items_8php.html
+++ b/doc/html/items_8php.html
@@ -148,16 +148,18 @@ Functions</h2></td></tr>
<tr class="separator:af94c281016c6c912d06e064113336c5c"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:aa371905f0a211b307cb3f7188c6cba04"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="items_8php.html#aa371905f0a211b307cb3f7188c6cba04">title_is_body</a> ($title, $body)</td></tr>
<tr class="separator:aa371905f0a211b307cb3f7188c6cba04"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:a536d0313b6ffe33b9d2490c4e25c5361"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="items_8php.html#a536d0313b6ffe33b9d2490c4e25c5361">get_item_elements</a> ($<a class="el" href="boot_8php.html#a01353c9abebc3544ea080ac161729632">x</a>)</td></tr>
+<tr class="memitem:a536d0313b6ffe33b9d2490c4e25c5361"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="items_8php.html#a536d0313b6ffe33b9d2490c4e25c5361">get_item_elements</a> ($<a class="el" href="boot_8php.html#ae97836b0547953be182a2334c9c91d3c">x</a>)</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="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#ae97836b0547953be182a2334c9c91d3c">x</a>)</td></tr>
<tr class="separator:ae73794179b62d39bb597ff670ab1c1e5"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:a2c3f97b2109c05df86d97449b3c78ebc"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="items_8php.html#a2c3f97b2109c05df86d97449b3c78ebc">import_author_diaspora</a> ($<a class="el" href="boot_8php.html#a01353c9abebc3544ea080ac161729632">x</a>)</td></tr>
+<tr class="memitem:a2c3f97b2109c05df86d97449b3c78ebc"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="items_8php.html#a2c3f97b2109c05df86d97449b3c78ebc">import_author_diaspora</a> ($<a class="el" href="boot_8php.html#ae97836b0547953be182a2334c9c91d3c">x</a>)</td></tr>
<tr class="separator:a2c3f97b2109c05df86d97449b3c78ebc"><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="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#ae97836b0547953be182a2334c9c91d3c">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:a37f79991f36811cf847446ff60e8e11f"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="items_8php.html#a37f79991f36811cf847446ff60e8e11f">import_author_unknown</a> ($<a class="el" href="boot_8php.html#ae97836b0547953be182a2334c9c91d3c">x</a>)</td></tr>
+<tr class="separator:a37f79991f36811cf847446ff60e8e11f"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a56b0f5d2cb36eb8f4bfca84813884f86"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="items_8php.html#a56b0f5d2cb36eb8f4bfca84813884f86">encode_item</a> ($item, $mirror=false)</td></tr>
+<tr class="separator:a56b0f5d2cb36eb8f4bfca84813884f86"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a8675e62674de6fb7c42e4a408c7116cc"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="items_8php.html#a8675e62674de6fb7c42e4a408c7116cc">map_scope</a> ($scope, $strip=false)</td></tr>
<tr class="separator:a8675e62674de6fb7c42e4a408c7116cc"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:aabfaa193b83154c2a81e91284e5d5e59"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="items_8php.html#aabfaa193b83154c2a81e91284e5d5e59">translate_scope</a> ($scope)</td></tr>
@@ -178,9 +180,9 @@ Functions</h2></td></tr>
<tr class="separator:a5f690fc2484abec07840b4f9dd525bd9"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a2d840c74ed23d1b6c7daee05cf89dda7"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="items_8php.html#a2d840c74ed23d1b6c7daee05cf89dda7">encode_mail</a> ($item)</td></tr>
<tr class="separator:a2d840c74ed23d1b6c7daee05cf89dda7"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:a94ddb1d6c8fa21dd7433677e85168037"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="items_8php.html#a94ddb1d6c8fa21dd7433677e85168037">get_mail_elements</a> ($<a class="el" href="boot_8php.html#a01353c9abebc3544ea080ac161729632">x</a>)</td></tr>
+<tr class="memitem:a94ddb1d6c8fa21dd7433677e85168037"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="items_8php.html#a94ddb1d6c8fa21dd7433677e85168037">get_mail_elements</a> ($<a class="el" href="boot_8php.html#ae97836b0547953be182a2334c9c91d3c">x</a>)</td></tr>
<tr class="separator:a94ddb1d6c8fa21dd7433677e85168037"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:a251343637ff40a50cca93452cd530c26"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="items_8php.html#a251343637ff40a50cca93452cd530c26">get_profile_elements</a> ($<a class="el" href="boot_8php.html#a01353c9abebc3544ea080ac161729632">x</a>)</td></tr>
+<tr class="memitem:a251343637ff40a50cca93452cd530c26"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="items_8php.html#a251343637ff40a50cca93452cd530c26">get_profile_elements</a> ($<a class="el" href="boot_8php.html#ae97836b0547953be182a2334c9c91d3c">x</a>)</td></tr>
<tr class="separator:a251343637ff40a50cca93452cd530c26"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a5e5be7bf1f8257dec0b2647e60a3f3f1"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="items_8php.html#a5e5be7bf1f8257dec0b2647e60a3f3f1">get_atom_elements</a> ($feed, $item, &amp;$author)</td></tr>
<tr class="separator:a5e5be7bf1f8257dec0b2647e60a3f3f1"><td class="memSeparator" colspan="2">&#160;</td></tr>
@@ -190,8 +192,8 @@ Functions</h2></td></tr>
<tr class="separator:a2541e6861a56d145c9281877cc501615"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:acf0bf7c9d21ac84f32effb754f7ad484"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="items_8php.html#acf0bf7c9d21ac84f32effb754f7ad484">item_store_update</a> ($arr, $allow_exec=false)</td></tr>
<tr class="separator:acf0bf7c9d21ac84f32effb754f7ad484"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:af0a887050dc8d0f51c89890cdaf3145f"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="items_8php.html#af0a887050dc8d0f51c89890cdaf3145f">store_diaspora_comment_sig</a> ($datarray, $channel, $parent_item, $post_id)</td></tr>
-<tr class="separator:af0a887050dc8d0f51c89890cdaf3145f"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a25221826fa4621f523c68483e3b6af26"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="items_8php.html#a25221826fa4621f523c68483e3b6af26">store_diaspora_comment_sig</a> ($datarray, $channel, $parent_item, $post_id, $walltowall=false)</td></tr>
+<tr class="separator:a25221826fa4621f523c68483e3b6af26"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:aab9e0c58247427126de0699c729c3b6c"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="items_8php.html#aab9e0c58247427126de0699c729c3b6c">send_status_notifications</a> ($post_id, $item)</td></tr>
<tr class="separator:aab9e0c58247427126de0699c729c3b6c"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:aab9c6bae4c40799867596bdaae9829fd"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="items_8php.html#aab9c6bae4c40799867596bdaae9829fd">get_item_contact</a> ($item, $contacts)</td></tr>
@@ -240,14 +242,14 @@ Functions</h2></td></tr>
<tr class="separator:aac8c9eb4338e2a996c43914392c6cfdb"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a0cf98bb619f07dd18f602683a55a5f59"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="items_8php.html#a0cf98bb619f07dd18f602683a55a5f59">first_post_date</a> ($uid, $wall=false)</td></tr>
<tr class="separator:a0cf98bb619f07dd18f602683a55a5f59"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:aa2d3caa2f27720762b5c729e07df40fb"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="items_8php.html#aa2d3caa2f27720762b5c729e07df40fb">list_post_dates</a> ($uid, $wall)</td></tr>
-<tr class="separator:aa2d3caa2f27720762b5c729e07df40fb"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ab33fa9756aaa5f39a6104d57a62baf00"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="items_8php.html#ab33fa9756aaa5f39a6104d57a62baf00">list_post_dates</a> ($uid, $wall, $mindate)</td></tr>
+<tr class="separator:ab33fa9756aaa5f39a6104d57a62baf00"><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: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:a1cf89557f32d5dfbe8bd90448dc1aa92"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="items_8php.html#a1cf89557f32d5dfbe8bd90448dc1aa92">zot_feed</a> ($uid, $observer_xchan, $arr)</td></tr>
+<tr class="separator:a1cf89557f32d5dfbe8bd90448dc1aa92"><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>
@@ -309,7 +311,7 @@ Functions</h2></td></tr>
</dl>
<p>$item['route'] contains a comma-separated list of xchans that sent the current message, somewhat analogous to the * Received: header line in email. We can use this to perform loop detection and to avoid sending a particular item to any "upstream" sender (they already have a copy because they sent it to us). </p>
-<p>Referenced by <a class="el" href="zot_8php.html#a4d9e6ca295e443b740d9960c304b3474">process_delivery()</a>.</p>
+<p>Referenced by <a class="el" href="zot_8php.html#a0e3006e7a456b2175a9badc96bc5176d">process_delivery()</a>.</p>
</div>
</div>
@@ -465,7 +467,7 @@ Functions</h2></td></tr>
</table>
</div><div class="memdoc">
<p>can_comment_on_post($observer_xchan,$item);</p>
-<p>This function examines the comment_policy attached to an item and decides if the current observer has sufficient privileges to comment. This will normally be called on a remote site where <a class="el" href="permissions_8php.html#a67ada9ed51e77885b6b0f6a28cee1835">perm_is_allowed()</a> will not be suitable because the post owner does not have a local channel_id. Generally we should look at the item - in particular the author['book_flags'] and see if ABOOK_FLAG_SELF is set. If it is, you should be able to use perm_is_allowed( ... 'post_comments'), and if it isn't you need to call <a class="el" href="items_8php.html#a1e75047cf175aaee8dd16aa761913ff9">can_comment_on_post()</a> We also check the comments_closed date/time on the item if this is set. </p>
+<p>This function examines the comment_policy attached to an item and decides if the current observer has sufficient privileges to comment. This will normally be called on a remote site where <a class="el" href="permissions_8php.html#a67ada9ed51e77885b6b0f6a28cee1835" title="Checks if given permission is allowed for given observer on a channel.">perm_is_allowed()</a> will not be suitable because the post owner does not have a local channel_id. Generally we should look at the item - in particular the author['book_flags'] and see if ABOOK_FLAG_SELF is set. If it is, you should be able to use perm_is_allowed( ... 'post_comments'), and if it isn't you need to call <a class="el" href="items_8php.html#a1e75047cf175aaee8dd16aa761913ff9">can_comment_on_post()</a> We also check the comments_closed date/time on the item if this is set. </p>
<p>Referenced by <a class="el" href="classConversation.html#a8335cdd43f1836e3c255638e61a09e16">Conversation\add_thread()</a>, and <a class="el" href="item_8php.html#a693cd09805755ab85bbb5ecae69a48c3">item_post()</a>.</p>
@@ -755,7 +757,7 @@ Functions</h2></td></tr>
</table>
</div><div class="memdoc">
-<p>Referenced by <a class="el" href="include_2api_8php.html#ad4c29f43418f6110f85a6b3998239ab4">api_statuses_destroy()</a>, <a class="el" href="items_8php.html#adc26e08aa61f5666da04ab5d2a9d68a6">consume_feed()</a>, <a class="el" href="Contact_8php.html#a28e062c884331dbb5dfa713228c25ad6">contact_remove()</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="expire_8php.html#a444e45c9b67727b27db4c779fd51a298">expire_run()</a>, <a class="el" href="item_8php.html#a764bbb2e9a885a86fb23d0b5e4a09221">item_content()</a>, <a class="el" href="items_8php.html#a6f7e1334af5d684a987fa6a3eb37f4cc">item_expire()</a>, <a class="el" href="like_8php.html#a9d7dd268f21c21e9d29dd2aca2dd9538">like_content()</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="Contact_8php.html#acc12cda999c88c4d6185cca967c15125">remove_all_xchan_resources()</a>.</p>
+<p>Referenced by <a class="el" href="include_2api_8php.html#ad4c29f43418f6110f85a6b3998239ab4">api_statuses_destroy()</a>, <a class="el" href="items_8php.html#adc26e08aa61f5666da04ab5d2a9d68a6">consume_feed()</a>, <a class="el" href="Contact_8php.html#a28e062c884331dbb5dfa713228c25ad6">contact_remove()</a>, <a class="el" href="zot_8php.html#adfeb9400ae6b726beec89f8f1e8fde72">delete_imported_item()</a>, <a class="el" href="diaspora_8php.html#a938c7ee808d38725c0988fa6006805b9">diaspora_retraction()</a>, <a class="el" href="diaspora_8php.html#aa34d2748bb97e9e193cacd572f335055">diaspora_signed_retraction()</a>, <a class="el" href="items_8php.html#a668ece2c37f05cc3abe538eb0dabfe55">drop_items()</a>, <a class="el" href="expire_8php.html#a444e45c9b67727b27db4c779fd51a298">expire_run()</a>, <a class="el" href="item_8php.html#a764bbb2e9a885a86fb23d0b5e4a09221">item_content()</a>, <a class="el" href="items_8php.html#a6f7e1334af5d684a987fa6a3eb37f4cc">item_expire()</a>, <a class="el" href="like_8php.html#a9d7dd268f21c21e9d29dd2aca2dd9538">like_content()</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="Contact_8php.html#acc12cda999c88c4d6185cca967c15125">remove_all_xchan_resources()</a>.</p>
</div>
</div>
@@ -777,7 +779,7 @@ Functions</h2></td></tr>
</div>
</div>
-<a class="anchor" id="a82955cc578f0fa600acec84475026194"></a>
+<a class="anchor" id="a56b0f5d2cb36eb8f4bfca84813884f86"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
@@ -785,13 +787,23 @@ Functions</h2></td></tr>
<td class="memname">encode_item </td>
<td>(</td>
<td class="paramtype">&#160;</td>
- <td class="paramname"><em>$item</em></td><td>)</td>
+ <td class="paramname"><em>$item</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
<td></td>
+ <td class="paramtype">&#160;</td>
+ <td class="paramname"><em>$mirror</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="notifier_8php.html#a568c502f626cff95e344c0748938b85d">notifier_run()</a>, and <a class="el" href="items_8php.html#a004e89d86b0f29b2c4da20108ecc4091">zot_feed()</a>.</p>
+<p>Referenced by <a class="el" href="identity_8php.html#afaedbc8e2d2a70ec8b006162baac5249">identity_basic_export()</a>, <a class="el" href="notifier_8php.html#a568c502f626cff95e344c0748938b85d">notifier_run()</a>, and <a class="el" href="items_8php.html#a1cf89557f32d5dfbe8bd90448dc1aa92">zot_feed()</a>.</p>
</div>
</div>
@@ -809,7 +821,7 @@ Functions</h2></td></tr>
</table>
</div><div class="memdoc">
-<p>Referenced by <a class="el" href="items_8php.html#a82955cc578f0fa600acec84475026194">encode_item()</a>.</p>
+<p>Referenced by <a class="el" href="items_8php.html#a56b0f5d2cb36eb8f4bfca84813884f86">encode_item()</a>.</p>
</div>
</div>
@@ -827,7 +839,7 @@ Functions</h2></td></tr>
</table>
</div><div class="memdoc">
-<p>Referenced by <a class="el" href="items_8php.html#a82955cc578f0fa600acec84475026194">encode_item()</a>.</p>
+<p>Referenced by <a class="el" href="items_8php.html#a56b0f5d2cb36eb8f4bfca84813884f86">encode_item()</a>.</p>
</div>
</div>
@@ -845,7 +857,7 @@ Functions</h2></td></tr>
</table>
</div><div class="memdoc">
-<p>Referenced by <a class="el" href="items_8php.html#a82955cc578f0fa600acec84475026194">encode_item()</a>, and <a class="el" href="items_8php.html#a2d840c74ed23d1b6c7daee05cf89dda7">encode_mail()</a>.</p>
+<p>Referenced by <a class="el" href="items_8php.html#a56b0f5d2cb36eb8f4bfca84813884f86">encode_item()</a>, and <a class="el" href="items_8php.html#a2d840c74ed23d1b6c7daee05cf89dda7">encode_mail()</a>.</p>
</div>
</div>
@@ -927,7 +939,7 @@ Functions</h2></td></tr>
</table>
</div><div class="memdoc">
-<p>Referenced by <a class="el" href="block_8php.html#a8a82a470acdfbc7a8e749509caeeea45">block_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="display_8php.html#a37137c98d47bf3306f4c2bb9f5b60de0">display_content()</a>, <a class="el" href="editpost_8php.html#a34011690864d122680c802e9e748ccfb">editpost_content()</a>, <a class="el" href="event_8php.html#a7378e839ac3de9d55579eb3ec48eaf92">event_store_item()</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>, <a class="el" href="widgets_8php.html#a313a8d10ab81c71357c12e67e4d7efd5">widget_item()</a>, and <a class="el" href="items_8php.html#a004e89d86b0f29b2c4da20108ecc4091">zot_feed()</a>.</p>
+<p>Referenced by <a class="el" href="block_8php.html#a8a82a470acdfbc7a8e749509caeeea45">block_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="display_8php.html#a37137c98d47bf3306f4c2bb9f5b60de0">display_content()</a>, <a class="el" href="editpost_8php.html#a34011690864d122680c802e9e748ccfb">editpost_content()</a>, <a class="el" href="event_8php.html#a7378e839ac3de9d55579eb3ec48eaf92">event_store_item()</a>, <a class="el" href="events_8php.html#a1d293fb217ae6bc9e3858c4b32e363ec">events_content()</a>, <a class="el" href="home_8php.html#a6e3dbf78f4ed74ab2577de221190b33f">home_content()</a>, <a class="el" href="identity_8php.html#afaedbc8e2d2a70ec8b006162baac5249">identity_basic_export()</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="mod_2photos_8php.html#a062bed4d04d14fee8a53f4c9be673080">photos_post()</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="tagrm_8php.html#adfd4ea5b4d7fc6d9c9e042af5cd7d49a">tagrm_content()</a>, <a class="el" href="tagrm_8php.html#a1702f40aa53a2fa93deade1f609abe78">tagrm_post()</a>, <a class="el" href="widgets_8php.html#a313a8d10ab81c71357c12e67e4d7efd5">widget_item()</a>, and <a class="el" href="items_8php.html#a1cf89557f32d5dfbe8bd90448dc1aa92">zot_feed()</a>.</p>
</div>
</div>
@@ -985,7 +997,7 @@ Functions</h2></td></tr>
</table>
</div><div class="memdoc">
-<p>Referenced by <a class="el" href="items_8php.html#aa2d3caa2f27720762b5c729e07df40fb">list_post_dates()</a>, and <a class="el" href="items_8php.html#ad2abb4644ff1f20fefbc80326fe01cf0">posted_dates()</a>.</p>
+<p>Referenced by <a class="el" href="items_8php.html#ab33fa9756aaa5f39a6104d57a62baf00">list_post_dates()</a>, and <a class="el" href="items_8php.html#ad2abb4644ff1f20fefbc80326fe01cf0">posted_dates()</a>.</p>
</div>
</div>
@@ -1138,7 +1150,7 @@ Functions</h2></td></tr>
</table>
</div><div class="memdoc">
-<p>Referenced by <a class="el" href="externals_8php.html#a4df44079e6f915286088b7a0d44db926">externals_run()</a>, <a class="el" href="onepoll_8php.html#a72753b2fdec79b37c7f432035c91fb6d">onepoll_run()</a>, and <a class="el" href="zot_8php.html#aeea071f17e306fe3d0c488551906bfab">zot_import()</a>.</p>
+<p>Referenced by <a class="el" href="externals_8php.html#a4df44079e6f915286088b7a0d44db926">externals_run()</a>, <a class="el" href="import_8php.html#af17fef0410518f7eac205d0ea416eaa2">import_post()</a>, <a class="el" href="onepoll_8php.html#a72753b2fdec79b37c7f432035c91fb6d">onepoll_run()</a>, and <a class="el" href="zot_8php.html#aeea071f17e306fe3d0c488551906bfab">zot_import()</a>.</p>
</div>
</div>
@@ -1295,6 +1307,24 @@ Functions</h2></td></tr>
</div>
</div>
+<a class="anchor" id="a37f79991f36811cf847446ff60e8e11f"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">import_author_unknown </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#adc26e08aa61f5666da04ab5d2a9d68a6">consume_feed()</a>, and <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">
@@ -1462,7 +1492,7 @@ Functions</h2></td></tr>
</table>
</div><div class="memdoc">
-<p>Referenced by <a class="el" href="items_8php.html#adc26e08aa61f5666da04ab5d2a9d68a6">consume_feed()</a>, <a class="el" href="diaspora_8php.html#a006731620a5242d410358b32678e48e3">diaspora_asphoto()</a>, <a class="el" href="diaspora_8php.html#a0fb2abe304aae19efc040a5e6b917829">diaspora_comment()</a>, <a class="el" href="diaspora_8php.html#a5d57518545baa31cf8a85a937a267681">diaspora_like()</a>, <a class="el" href="diaspora_8php.html#a20b968d64ef26afe5cb0cc75a7570a31">diaspora_post()</a>, <a class="el" href="diaspora_8php.html#a2bf43f6b5890897f425ef4325d34b007">diaspora_reshare()</a>, <a class="el" href="event_8php.html#a7378e839ac3de9d55579eb3ec48eaf92">event_store_item()</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#a4d9e6ca295e443b740d9960c304b3474">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="items_8php.html#adc26e08aa61f5666da04ab5d2a9d68a6">consume_feed()</a>, <a class="el" href="diaspora_8php.html#a006731620a5242d410358b32678e48e3">diaspora_asphoto()</a>, <a class="el" href="diaspora_8php.html#a0fb2abe304aae19efc040a5e6b917829">diaspora_comment()</a>, <a class="el" href="diaspora_8php.html#a5d57518545baa31cf8a85a937a267681">diaspora_like()</a>, <a class="el" href="diaspora_8php.html#a20b968d64ef26afe5cb0cc75a7570a31">diaspora_post()</a>, <a class="el" href="diaspora_8php.html#a2bf43f6b5890897f425ef4325d34b007">diaspora_reshare()</a>, <a class="el" href="event_8php.html#a7378e839ac3de9d55579eb3ec48eaf92">event_store_item()</a>, <a class="el" href="impel_8php.html#ab7db6fca43b42ea4332cb3e841b3cf7b">impel_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="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#a0e3006e7a456b2175a9badc96bc5176d">process_delivery()</a>, <a class="el" href="activities_8php.html#a80134e807719b3c54aba971958d2e132">profile_activity()</a>, <a class="el" href="refimport_8php.html#ad97ebb5feda0230a4834e0b3637a0d29">refimport_content()</a>, <a class="el" href="refimport_8php.html#a01a29630fa5e1ce6cd5e1fd75280747c">reflect_comment_store()</a>, and <a class="el" href="subthread_8php.html#a50368f3d825b77996030528e7fbfa3d3">subthread_content()</a>.</p>
</div>
</div>
@@ -1490,7 +1520,7 @@ Functions</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_2photos_8php.html#a062bed4d04d14fee8a53f4c9be673080">photos_post()</a>, and <a class="el" href="zot_8php.html#a31aad56acf8ff8f2353e6ff8595544df">update_imported_item()</a>.</p>
+<p>Referenced by <a class="el" href="impel_8php.html#ab7db6fca43b42ea4332cb3e841b3cf7b">impel_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="mod_2photos_8php.html#a062bed4d04d14fee8a53f4c9be673080">photos_post()</a>, <a class="el" href="refimport_8php.html#ad97ebb5feda0230a4834e0b3637a0d29">refimport_content()</a>, <a class="el" href="refimport_8php.html#a01a29630fa5e1ce6cd5e1fd75280747c">reflect_comment_store()</a>, <a class="el" href="tagrm_8php.html#adfd4ea5b4d7fc6d9c9e042af5cd7d49a">tagrm_content()</a>, <a class="el" href="tagrm_8php.html#a1702f40aa53a2fa93deade1f609abe78">tagrm_post()</a>, and <a class="el" href="zot_8php.html#a31aad56acf8ff8f2353e6ff8595544df">update_imported_item()</a>.</p>
</div>
</div>
@@ -1558,7 +1588,7 @@ Functions</h2></td></tr>
</div>
</div>
-<a class="anchor" id="aa2d3caa2f27720762b5c729e07df40fb"></a>
+<a class="anchor" id="ab33fa9756aaa5f39a6104d57a62baf00"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
@@ -1572,7 +1602,13 @@ Functions</h2></td></tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">&#160;</td>
- <td class="paramname"><em>$wall</em>&#160;</td>
+ <td class="paramname"><em>$wall</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">&#160;</td>
+ <td class="paramname"><em>$mindate</em>&#160;</td>
</tr>
<tr>
<td></td>
@@ -1629,7 +1665,7 @@ Functions</h2></td></tr>
</table>
</div><div class="memdoc">
-<p>Referenced by <a class="el" href="items_8php.html#a82955cc578f0fa600acec84475026194">encode_item()</a>, <a class="el" href="item_8php.html#a693cd09805755ab85bbb5ecae69a48c3">item_post()</a>, <a class="el" href="items_8php.html#a410f9c743877c125ca06312373346903">post_activity_item()</a>, <a class="el" href="profiles_8php.html#a46975783b8b8d70402d51487eb1f0b00">profiles_content()</a>, and <a class="el" href="items_8php.html#adf2b8137dc4ad9ec958de2842f16f3c2">start_delivery_chain()</a>.</p>
+<p>Referenced by <a class="el" href="items_8php.html#a56b0f5d2cb36eb8f4bfca84813884f86">encode_item()</a>, <a class="el" href="item_8php.html#a693cd09805755ab85bbb5ecae69a48c3">item_post()</a>, <a class="el" href="items_8php.html#a410f9c743877c125ca06312373346903">post_activity_item()</a>, <a class="el" href="profiles_8php.html#a46975783b8b8d70402d51487eb1f0b00">profiles_content()</a>, and <a class="el" href="items_8php.html#adf2b8137dc4ad9ec958de2842f16f3c2">start_delivery_chain()</a>.</p>
</div>
</div>
@@ -1854,7 +1890,7 @@ Functions</h2></td></tr>
</div>
</div>
-<a class="anchor" id="af0a887050dc8d0f51c89890cdaf3145f"></a>
+<a class="anchor" id="a25221826fa4621f523c68483e3b6af26"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
@@ -1880,7 +1916,13 @@ Functions</h2></td></tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">&#160;</td>
- <td class="paramname"><em>$post_id</em>&#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>$walltowall</em> = <code>false</code>&#160;</td>
</tr>
<tr>
<td></td>
@@ -1972,7 +2014,7 @@ Functions</h2></td></tr>
<p>tgroup_check($uid,$item)</p>
<p>This function is called pre-deliver to see if a post matches the criteria to be tag delivered. We don't actually do anything except check that it matches the criteria. This is so that the channel with tag_delivery enabled can receive the post even if they turn off permissions for the sender to send their stream. <a class="el" href="items_8php.html#ab1bce4261bcf75ad62753b498a144d17">tag_deliver()</a> can't be called until the post is actually stored. By then it would be too late to reject it. </p>
-<p>Referenced by <a class="el" href="zot_8php.html#a4d9e6ca295e443b740d9960c304b3474">process_delivery()</a>.</p>
+<p>Referenced by <a class="el" href="zot_8php.html#a0e3006e7a456b2175a9badc96bc5176d">process_delivery()</a>.</p>
</div>
</div>
@@ -2104,11 +2146,11 @@ Functions</h2></td></tr>
</table>
</div><div class="memdoc">
-<p>Referenced by <a class="el" href="item_8php.html#a693cd09805755ab85bbb5ecae69a48c3">item_post()</a>.</p>
+<p>Referenced by <a class="el" href="impel_8php.html#ab7db6fca43b42ea4332cb3e841b3cf7b">impel_init()</a>, and <a class="el" href="item_8php.html#a693cd09805755ab85bbb5ecae69a48c3">item_post()</a>.</p>
</div>
</div>
-<a class="anchor" id="a004e89d86b0f29b2c4da20108ecc4091"></a>
+<a class="anchor" id="a1cf89557f32d5dfbe8bd90448dc1aa92"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
@@ -2128,7 +2170,7 @@ Functions</h2></td></tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">&#160;</td>
- <td class="paramname"><em>$mindate</em>&#160;</td>
+ <td class="paramname"><em>$arr</em>&#160;</td>
</tr>
<tr>
<td></td>
@@ -2138,7 +2180,7 @@ Functions</h2></td></tr>
</table>
</div><div class="memdoc">
-<p>Referenced by <a class="el" href="zotfeed_8php.html#a24dfc23d366e7f840cf2847d0c1c8eac">zotfeed_init()</a>.</p>
+<p>Referenced by <a class="el" href="zot_8php.html#a3920afe14fc1d82020161b4b86bcd9ac">zot_process_message_request()</a>, and <a class="el" href="zotfeed_8php.html#a24dfc23d366e7f840cf2847d0c1c8eac">zotfeed_init()</a>.</p>
</div>
</div>
diff --git a/doc/html/items_8php.js b/doc/html/items_8php.js
index 0354bfd6a..f3ac4dfd0 100644
--- a/doc/html/items_8php.js
+++ b/doc/html/items_8php.js
@@ -18,7 +18,7 @@ var items_8php =
[ "delete_item_lowlevel", "items_8php.html#aac8c9eb4338e2a996c43914392c6cfdb", null ],
[ "drop_item", "items_8php.html#a555762e1022a4b8e3c3abd32e7812408", null ],
[ "drop_items", "items_8php.html#a668ece2c37f05cc3abe538eb0dabfe55", null ],
- [ "encode_item", "items_8php.html#a82955cc578f0fa600acec84475026194", null ],
+ [ "encode_item", "items_8php.html#a56b0f5d2cb36eb8f4bfca84813884f86", null ],
[ "encode_item_flags", "items_8php.html#a5f690fc2484abec07840b4f9dd525bd9", null ],
[ "encode_item_terms", "items_8php.html#ac6673627d289ee4f547de0fe3b7acd0a", null ],
[ "encode_item_xchan", "items_8php.html#a566c601726697e044e75284af7fb6f17", null ],
@@ -40,6 +40,7 @@ var items_8php =
[ "has_permissions", "items_8php.html#a77051724d1784074ff187e73a4db93fe", null ],
[ "import_author_diaspora", "items_8php.html#a2c3f97b2109c05df86d97449b3c78ebc", null ],
[ "import_author_rss", "items_8php.html#a6bee35961f2e32905f20367a9309d627", null ],
+ [ "import_author_unknown", "items_8php.html#a37f79991f36811cf847446ff60e8e11f", null ],
[ "import_author_xchan", "items_8php.html#ae73794179b62d39bb597ff670ab1c1e5", null ],
[ "item_add_cid", "items_8php.html#a02ca33c31ed535d24894f8a9a91ce9df", null ],
[ "item_expire", "items_8php.html#a6f7e1334af5d684a987fa6a3eb37f4cc", null ],
@@ -50,7 +51,7 @@ var items_8php =
[ "item_store_update", "items_8php.html#acf0bf7c9d21ac84f32effb754f7ad484", null ],
[ "items_fetch", "items_8php.html#a756738301f2ed96be50232500677d58a", null ],
[ "limit_body_size", "items_8php.html#af94c281016c6c912d06e064113336c5c", null ],
- [ "list_post_dates", "items_8php.html#aa2d3caa2f27720762b5c729e07df40fb", null ],
+ [ "list_post_dates", "items_8php.html#ab33fa9756aaa5f39a6104d57a62baf00", null ],
[ "mail_store", "items_8php.html#a77da7ce9a117601d49ac4a67c71b514f", null ],
[ "map_scope", "items_8php.html#a8675e62674de6fb7c42e4a408c7116cc", null ],
[ "post_activity_item", "items_8php.html#a410f9c743877c125ca06312373346903", null ],
@@ -63,7 +64,7 @@ var items_8php =
[ "retain_item", "items_8php.html#af6237605c60d69abdd959ddbbee3420c", null ],
[ "send_status_notifications", "items_8php.html#aab9e0c58247427126de0699c729c3b6c", null ],
[ "start_delivery_chain", "items_8php.html#adf2b8137dc4ad9ec958de2842f16f3c2", null ],
- [ "store_diaspora_comment_sig", "items_8php.html#af0a887050dc8d0f51c89890cdaf3145f", null ],
+ [ "store_diaspora_comment_sig", "items_8php.html#a25221826fa4621f523c68483e3b6af26", null ],
[ "tag_deliver", "items_8php.html#ab1bce4261bcf75ad62753b498a144d17", null ],
[ "termtype", "items_8php.html#ad34827ed330898456783fb14c7b46154", null ],
[ "tgroup_check", "items_8php.html#a88c6cf7649ac836fbbed82a7a0315110", null ],
@@ -71,5 +72,5 @@ var items_8php =
[ "translate_scope", "items_8php.html#aabfaa193b83154c2a81e91284e5d5e59", null ],
[ "update_feed_item", "items_8php.html#a9b449eeae50003414b8b30ca927af434", null ],
[ "update_remote_id", "items_8php.html#a2baa9e05f1e8aa3dd61c85803ae39bd6", null ],
- [ "zot_feed", "items_8php.html#a004e89d86b0f29b2c4da20108ecc4091", null ]
+ [ "zot_feed", "items_8php.html#a1cf89557f32d5dfbe8bd90448dc1aa92", null ]
]; \ No newline at end of file
diff --git a/doc/html/language_8php.html b/doc/html/language_8php.html
index 98cc4693a..df5ee1a79 100644
--- a/doc/html/language_8php.html
+++ b/doc/html/language_8php.html
@@ -212,7 +212,7 @@ Functions</h2></td></tr>
<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>Get the language setting directly from system variables, bypassing <a class="el" href="include_2config_8php.html#af02c96e6b37335774b548914ede1d22e" title="Get a particular config variable given the category name ($family) and a key.">get_config()</a> as database may not yet be configured.</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>
@@ -370,9 +370,9 @@ Functions</h2></td></tr>
</table>
</dd>
</dl>
-<dl class="section return"><dt>Returns</dt><dd>translated string if exsists, otherwise s </dd></dl>
+<dl class="section return"><dt>Returns</dt><dd>translated string if exists, otherwise return $s </dd></dl>
-<p>Referenced by <a class="el" href="Contact_8php.html#a5101d7eca5d6f387e5555f03fe249e33">account_remove()</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#ad6f87a764fd35f522c7b4c351d7878ec">admin_page_channels()</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#a3deba594ca1e11694eac1de0b724ef0a">admin_page_profs()</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="include_2apps_8php.html#a1b2e737f477a2e0d9d11ef14adc5aa66">app_render()</a>, <a class="el" href="include_2apps_8php.html#a15626f24069c18816f7cdaf4735f58f9">app_store()</a>, <a class="el" href="include_2apps_8php.html#aeab6a62d2f3dfaa86ed043a006305f46">app_update()</a>, <a class="el" href="appman_8php.html#af48805ac2f6f123f2681a8ae1c6f123f">appman_content()</a>, <a class="el" href="appman_8php.html#a2979acbe47ffaecfa19b9eabfbfbde39">appman_post()</a>, <a class="el" href="mod_2apps_8php.html#a546016cb960d0b110ee8e489dfa6c27c">apps_content()</a>, <a class="el" href="view_2theme_2apw_2php_2config_8php.html#ad59fc09da66b66267f9753c8b2dd68d0">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="bb2diaspora_8php.html#a2052c66bc1006a42b4c230320c269e47">bb2diaspora_itembody()</a>, <a class="el" href="bbcode_8php.html#a009f61aaf78771737ed0765c8463911b">bbcode()</a>, <a class="el" href="block_8php.html#a8a82a470acdfbc7a8e749509caeeea45">block_content()</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#aef1cb2968c41c759f2d106e1088ca323">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="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="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="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="diaspora_8php.html#a5d57518545baa31cf8a85a937a267681">diaspora_like()</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#a555762e1022a4b8e3c3abd32e7812408">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#a7378e839ac3de9d55579eb3ec48eaf92">event_store_item()</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="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="profile__selectors_8php.html#a8bfa1ca2d1598a3d65f1f9bb803ca816">gender_selector_min()</a>, <a class="el" href="classRedBrowser.html#a1f7daf50bb9bfcde7345b3b1908dbd7e">RedBrowser\generateDirectoryIndex()</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="hcard_8php.html#ac34f26b0e6a37eef44fa49bea135136d">hcard_init()</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#a528e97ca5d69c3b7f35c5d954afde315">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="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="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="profile__selectors_8php.html#adc79715bd2e102b4583fb530749ec534">marital_selector_min()</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#a03a5deed3908543581c074ce333e9d6a">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="page__widgets_8php.html#a39d547771c5f12a17c097436c82f0fa2">pagelist_widget()</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="pdledit_8php.html#a59cb550f6b7a4e7d8196fbc9de601619">pdledit_content()</a>, <a class="el" href="pdledit_8php.html#a81da3c955d0e3db55d148a31483104c7">pdledit_post()</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="poll_8php.html#a3314c26bd2ac0ed831cebf3315cd3263">poll_content()</a>, <a class="el" href="acl__selectors_8php.html#ad25bba63a51a2b0b5b463efae50df528">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="mod_2probe_8php.html#a1f1db3fa6038e451e737964c94bf5e99">probe_content()</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="rbmark_8php.html#a43fec4960b50926251574762cc491f76">rbmark_content()</a>, <a class="el" href="rbmark_8php.html#ac5a66aa8599fa5dc702bae396d8d1f8c">rbmark_post()</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="removeaccount_8php.html#a516e7380b9e5796054aa8245f3509695">removeaccount_content()</a>, <a class="el" href="removeaccount_8php.html#a26a3325292e932c59793430ab737126a">removeaccount_post()</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#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="profile__selectors_8php.html#ab0eae5c0ceba77364469f0f580f0d074">sexpref_selector_min()</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="items_8php.html#aabfaa193b83154c2a81e91284e5d5e59">translate_scope()</a>, <a class="el" href="include_2apps_8php.html#a48289d5cc44b7638191738106ac5d030">translate_system_apps()</a>, <a class="el" href="datetime_8php.html#af1cd77c97c901d9239cb7a61f97f9826">update_birthdays()</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="account_8php.html#a754d7f53b3abc557b753c057dc4e021d">upgrade_bool_message()</a>, <a class="el" href="account_8php.html#a4fc13e528367f510fcb6d8bbfc559040">upgrade_link()</a>, <a class="el" href="account_8php.html#a901657dd078e070516cf97285e0bada7">upgrade_message()</a>, <a class="el" href="account_8php.html#ac5c570a2d46446bad4dd2501e9c5a4b1">user_allow()</a>, <a class="el" href="account_8php.html#ad07be417ac7eda939768804106ddea3d">user_approve()</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="account_8php.html#acd6b8d2124ba5ea4f4794d2c58ae8bf5">verify_email_address()</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#aced5cb177f630b30799c5eab873ee75c">widget_appselect()</a>, <a class="el" href="widgets_8php.html#a7b1e357b5a2027718470b77ec921fc65">widget_archive()</a>, <a class="el" href="widgets_8php.html#a0e2f5179ed1a73b282dfda7270fcabb3">widget_bookmarkedchats()</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#a50b1410238100c8a94c06b0aa63ee3b8">widget_suggestedchats()</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>
+<p>Referenced by <a class="el" href="Contact_8php.html#a5101d7eca5d6f387e5555f03fe249e33">account_remove()</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#ad6f87a764fd35f522c7b4c351d7878ec">admin_page_channels()</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#a3deba594ca1e11694eac1de0b724ef0a">admin_page_profs()</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="include_2apps_8php.html#a1b2e737f477a2e0d9d11ef14adc5aa66">app_render()</a>, <a class="el" href="include_2apps_8php.html#a15626f24069c18816f7cdaf4735f58f9">app_store()</a>, <a class="el" href="include_2apps_8php.html#aeab6a62d2f3dfaa86ed043a006305f46">app_update()</a>, <a class="el" href="appman_8php.html#af48805ac2f6f123f2681a8ae1c6f123f">appman_content()</a>, <a class="el" href="appman_8php.html#a2979acbe47ffaecfa19b9eabfbfbde39">appman_post()</a>, <a class="el" href="mod_2apps_8php.html#a546016cb960d0b110ee8e489dfa6c27c">apps_content()</a>, <a class="el" href="view_2theme_2apw_2php_2config_8php.html#ad59fc09da66b66267f9753c8b2dd68d0">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="bb2diaspora_8php.html#ab27761069ea1275f0fc4c543099c5519">bb2diaspora_itembody()</a>, <a class="el" href="bbcode_8php.html#a009f61aaf78771737ed0765c8463911b">bbcode()</a>, <a class="el" href="block_8php.html#a8a82a470acdfbc7a8e749509caeeea45">block_content()</a>, <a class="el" href="blocks_8php.html#a2531a8fd51db3cecb2eb20c002c66e12">blocks_content()</a>, <a class="el" href="include_2bookmarks_8php.html#aef1cb2968c41c759f2d106e1088ca323">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="taxonomy_8php.html#aa8f8a1ff85daef046298e93c83e7a1b4">catblock()</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="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#ad2e96e917852f27dedfc263d37e13756">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="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="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="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="diaspora_8php.html#a5d57518545baa31cf8a85a937a267681">diaspora_like()</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="datetime_8php.html#a3f2897db32e745fe2f3e70a6b46578f8">dob()</a>, <a class="el" href="items_8php.html#a555762e1022a4b8e3c3abd32e7812408">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#a7378e839ac3de9d55579eb3ec48eaf92">event_store_item()</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="mod_2follow_8php.html#a171f5b19f50d7738adc3b2e96ec6018a">follow_init()</a>, <a class="el" href="dimport_8php.html#a581f040717941ce3e1868b0b5dceefd1">foofoo()</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="profile__selectors_8php.html#a8bfa1ca2d1598a3d65f1f9bb803ca816">gender_selector_min()</a>, <a class="el" href="classRedMatrix_1_1RedDAV_1_1RedBrowser.html#af764d5f14df751f9ec86c34fab300c09">RedMatrix\RedDAV\RedBrowser\generateDirectoryIndex()</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="hcard_8php.html#ac34f26b0e6a37eef44fa49bea135136d">hcard_init()</a>, <a class="el" href="help_8php.html#af055e15f600ffa6fbca9386fdf715224">help_content()</a>, <a class="el" href="home_8php.html#a6e3dbf78f4ed74ab2577de221190b33f">home_content()</a>, <a class="el" href="classRedMatrix_1_1RedDAV_1_1RedBrowser.html#a3bd98af2d1cdfd8f26deb914596176cf">RedMatrix\RedDAV\RedBrowser\htmlActionsPanel()</a>, <a class="el" href="identity_8php.html#ac9fcd5c4c371998790b5c55c3d0f4633">identity_check_service_class()</a>, <a class="el" href="impel_8php.html#ab7db6fca43b42ea4332cb3e841b3cf7b">impel_init()</a>, <a class="el" href="items_8php.html#a6bee35961f2e32905f20367a9309d627">import_author_rss()</a>, <a class="el" href="items_8php.html#a37f79991f36811cf847446ff60e8e11f">import_author_unknown()</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#a528e97ca5d69c3b7f35c5d954afde315">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="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="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="conversation_8php.html#afe5b2f38d8b803edb0d7ec5fa2868db0">like_puller()</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="locs_8php.html#a6c900f53970c0d0e738d2fe06d27ca44">locs_content()</a>, <a class="el" href="locs_8php.html#a6b43654592919ac863d67a1f787a69b9">locs_post()</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="profile__selectors_8php.html#adc79715bd2e102b4583fb530749ec534">marital_selector_min()</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#a03a5deed3908543581c074ce333e9d6a">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#a4d89800c0366a239191b1692c09635cf">page_init()</a>, <a class="el" href="page__widgets_8php.html#a39d547771c5f12a17c097436c82f0fa2">pagelist_widget()</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="pdledit_8php.html#a59cb550f6b7a4e7d8196fbc9de601619">pdledit_content()</a>, <a class="el" href="pdledit_8php.html#a81da3c955d0e3db55d148a31483104c7">pdledit_post()</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="poll_8php.html#a3314c26bd2ac0ed831cebf3315cd3263">poll_content()</a>, <a class="el" href="acl__selectors_8php.html#ad25bba63a51a2b0b5b463efae50df528">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="mod_2probe_8php.html#a1f1db3fa6038e451e737964c94bf5e99">probe_content()</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="rbmark_8php.html#a43fec4960b50926251574762cc491f76">rbmark_content()</a>, <a class="el" href="rbmark_8php.html#ac5a66aa8599fa5dc702bae396d8d1f8c">rbmark_post()</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="removeaccount_8php.html#a516e7380b9e5796054aa8245f3509695">removeaccount_content()</a>, <a class="el" href="removeaccount_8php.html#a26a3325292e932c59793430ab737126a">removeaccount_post()</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#a3e28db1e5cfa7e5c2617f90222c1caef">rmagic_content()</a>, <a class="el" href="rmagic_8php.html#a869de069d081b3c4e98b957d06bbf08f">rmagic_post()</a>, <a class="el" href="permissions_8php.html#a50e8099ea8a4d7ed68b2a0a7ea9aa724">role_selector()</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="service__limits_8php.html#a653424aac63c5cd05ba70c3c77bf7f8a">service_limits_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="profile__selectors_8php.html#a3b50b3ea4ea4bdbebebfffc5d1b157c7">sexpref_selector()</a>, <a class="el" href="profile__selectors_8php.html#ab0eae5c0ceba77364469f0f580f0d074">sexpref_selector_min()</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="zot_8php.html#ab15c04e7e5f44edf45ec50dd7d183254">sync_locations()</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="items_8php.html#aabfaa193b83154c2a81e91284e5d5e59">translate_scope()</a>, <a class="el" href="include_2apps_8php.html#a48289d5cc44b7638191738106ac5d030">translate_system_apps()</a>, <a class="el" href="uexport_8php.html#ae6f79d60916c01675c8cf663cb5fec84">uexport_content()</a>, <a class="el" href="datetime_8php.html#af1cd77c97c901d9239cb7a61f97f9826">update_birthdays()</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__home_8php.html#a668340089acd150b830134476a647d05">update_home_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="account_8php.html#a754d7f53b3abc557b753c057dc4e021d">upgrade_bool_message()</a>, <a class="el" href="account_8php.html#a4fc13e528367f510fcb6d8bbfc559040">upgrade_link()</a>, <a class="el" href="account_8php.html#a901657dd078e070516cf97285e0bada7">upgrade_message()</a>, <a class="el" href="account_8php.html#ac5c570a2d46446bad4dd2501e9c5a4b1">user_allow()</a>, <a class="el" href="account_8php.html#ad07be417ac7eda939768804106ddea3d">user_approve()</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="account_8php.html#acd6b8d2124ba5ea4f4794d2c58ae8bf5">verify_email_address()</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#aced5cb177f630b30799c5eab873ee75c">widget_appselect()</a>, <a class="el" href="widgets_8php.html#a7b1e357b5a2027718470b77ec921fc65">widget_archive()</a>, <a class="el" href="widgets_8php.html#a0e2f5179ed1a73b282dfda7270fcabb3">widget_bookmarkedchats()</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#a999ba893cac7600d3d3b4e7e14cf8c20">widget_photo()</a>, <a class="el" href="widgets_8php.html#af8eb466ef91d9e96e13335ead5eba380">widget_photo_rand()</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#a50b1410238100c8a94c06b0aa63ee3b8">widget_suggestedchats()</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="taxonomy_8php.html#a83f0a60f9e0c07d8451dc5be95b17287">wtagblock()</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/layouts_8php.html b/doc/html/layouts_8php.html
index 01db274f4..7287e9147 100644
--- a/doc/html/layouts_8php.html
+++ b/doc/html/layouts_8php.html
@@ -112,6 +112,8 @@ $(document).ready(function(){initNavTree('layouts_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:a39c8e9f72641c684c8b689bd91a642fa"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="layouts_8php.html#a39c8e9f72641c684c8b689bd91a642fa">layouts_init</a> (&amp;$a)</td></tr>
+<tr class="separator:a39c8e9f72641c684c8b689bd91a642fa"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a6e0193759ad9eef76d3df2db24237b50"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="layouts_8php.html#a6e0193759ad9eef76d3df2db24237b50">layouts_content</a> (&amp;$a)</td></tr>
<tr class="separator:a6e0193759ad9eef76d3df2db24237b50"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table>
@@ -132,6 +134,22 @@ Functions</h2></td></tr>
</div>
</div>
+<a class="anchor" id="a39c8e9f72641c684c8b689bd91a642fa"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">layouts_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/layouts_8php.js b/doc/html/layouts_8php.js
index ee929d2fc..5c56bc6c3 100644
--- a/doc/html/layouts_8php.js
+++ b/doc/html/layouts_8php.js
@@ -1,4 +1,5 @@
var layouts_8php =
[
- [ "layouts_content", "layouts_8php.html#a6e0193759ad9eef76d3df2db24237b50", null ]
+ [ "layouts_content", "layouts_8php.html#a6e0193759ad9eef76d3df2db24237b50", null ],
+ [ "layouts_init", "layouts_8php.html#a39c8e9f72641c684c8b689bd91a642fa", null ]
]; \ No newline at end of file
diff --git a/doc/html/locs_8php.html b/doc/html/locs_8php.html
new file mode 100644
index 000000000..229d5978f
--- /dev/null
+++ b/doc/html/locs_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/locs.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('locs_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">locs.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:a6b43654592919ac863d67a1f787a69b9"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="locs_8php.html#a6b43654592919ac863d67a1f787a69b9">locs_post</a> (&amp;$a)</td></tr>
+<tr class="separator:a6b43654592919ac863d67a1f787a69b9"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a6c900f53970c0d0e738d2fe06d27ca44"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="locs_8php.html#a6c900f53970c0d0e738d2fe06d27ca44">locs_content</a> (&amp;$a)</td></tr>
+<tr class="separator:a6c900f53970c0d0e738d2fe06d27ca44"><td class="memSeparator" colspan="2">&#160;</td></tr>
+</table>
+<h2 class="groupheader">Function Documentation</h2>
+<a class="anchor" id="a6c900f53970c0d0e738d2fe06d27ca44"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">locs_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="a6b43654592919ac863d67a1f787a69b9"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">locs_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/locs_8php.js b/doc/html/locs_8php.js
new file mode 100644
index 000000000..6444a590f
--- /dev/null
+++ b/doc/html/locs_8php.js
@@ -0,0 +1,5 @@
+var locs_8php =
+[
+ [ "locs_content", "locs_8php.html#a6c900f53970c0d0e738d2fe06d27ca44", null ],
+ [ "locs_post", "locs_8php.html#a6b43654592919ac863d67a1f787a69b9", null ]
+]; \ No newline at end of file
diff --git a/doc/html/mod_2network_8php.html b/doc/html/mod_2network_8php.html
index 16de4ad96..bfbd5bd2c 100644
--- a/doc/html/mod_2network_8php.html
+++ b/doc/html/mod_2network_8php.html
@@ -147,6 +147,7 @@ Functions</h2></td></tr>
</tr>
</table>
</div><div class="memdoc">
+<p>in "list mode", only mark the parent item and any like activities as "seen". We won't distinguish between comment likes and post likes. The important thing is that the number of unseen comments will be accurate. The SQL to separate the comment likes could also get somewhat hairy.</p>
<p>Referenced by <a class="el" href="update__network_8php.html#a8abf5b9f65af6a27ee2f9d7207ed1b41">update_network_content()</a>.</p>
diff --git a/doc/html/namespaceRedMatrix.html b/doc/html/namespaceRedMatrix.html
new file mode 100644
index 000000000..873af1168
--- /dev/null
+++ b/doc/html/namespaceRedMatrix.html
@@ -0,0 +1,127 @@
+<!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: RedMatrix Namespace 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 class="current"><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 id="navrow2" class="tabs2">
+ <ul class="tablist">
+ <li><a href="namespaces.html"><span>Namespace&#160;List</span></a></li>
+ <li><a href="namespacemembers.html"><span>Namespace&#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('namespaceRedMatrix.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="#namespaces">Namespaces</a> </div>
+ <div class="headertitle">
+<div class="title">RedMatrix Namespace Reference</div> </div>
+</div><!--header-->
+<div class="contents">
+
+<p>Class <a class="el" href="namespaceRedMatrix_1_1Import.html">Import</a>.
+<a href="#details">More...</a></p>
+<table class="memberdecls">
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="namespaces"></a>
+Namespaces</h2></td></tr>
+<tr class="memitem:namespaceRedMatrix_1_1Import"><td class="memItemLeft" align="right" valign="top">namespace &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespaceRedMatrix_1_1Import.html">Import</a></td></tr>
+<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:namespaceRedMatrix_1_1RedDAV"><td class="memItemLeft" align="right" valign="top">namespace &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespaceRedMatrix_1_1RedDAV.html">RedDAV</a></td></tr>
+<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
+</table>
+<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
+<div class="textblock"><p>Class <a class="el" href="namespaceRedMatrix_1_1Import.html">Import</a>. </p>
+</div></div><!-- contents -->
+</div><!-- doc-content -->
+
diff --git a/doc/html/namespaceRedMatrix.js b/doc/html/namespaceRedMatrix.js
new file mode 100644
index 000000000..f08741c6c
--- /dev/null
+++ b/doc/html/namespaceRedMatrix.js
@@ -0,0 +1,5 @@
+var namespaceRedMatrix =
+[
+ [ "Import", "namespaceRedMatrix_1_1Import.html", "namespaceRedMatrix_1_1Import" ],
+ [ "RedDAV", "namespaceRedMatrix_1_1RedDAV.html", "namespaceRedMatrix_1_1RedDAV" ]
+]; \ No newline at end of file
diff --git a/doc/html/namespaceRedMatrix_1_1Import.html b/doc/html/namespaceRedMatrix_1_1Import.html
new file mode 100644
index 000000000..a0ab85227
--- /dev/null
+++ b/doc/html/namespaceRedMatrix_1_1Import.html
@@ -0,0 +1,120 @@
+<!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: RedMatrix\Import Namespace 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 class="current"><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 id="navrow2" class="tabs2">
+ <ul class="tablist">
+ <li><a href="namespaces.html"><span>Namespace&#160;List</span></a></li>
+ <li><a href="namespacemembers.html"><span>Namespace&#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('namespaceRedMatrix_1_1Import.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="#nested-classes">Classes</a> </div>
+ <div class="headertitle">
+<div class="title">RedMatrix\Import Namespace 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="classRedMatrix_1_1Import_1_1Import.html">Import</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/namespaceRedMatrix_1_1Import.js b/doc/html/namespaceRedMatrix_1_1Import.js
new file mode 100644
index 000000000..c26a05140
--- /dev/null
+++ b/doc/html/namespaceRedMatrix_1_1Import.js
@@ -0,0 +1,4 @@
+var namespaceRedMatrix_1_1Import =
+[
+ [ "Import", "classRedMatrix_1_1Import_1_1Import.html", "classRedMatrix_1_1Import_1_1Import" ]
+]; \ No newline at end of file
diff --git a/doc/html/namespaceRedMatrix_1_1RedDAV.html b/doc/html/namespaceRedMatrix_1_1RedDAV.html
new file mode 100644
index 000000000..f078431e9
--- /dev/null
+++ b/doc/html/namespaceRedMatrix_1_1RedDAV.html
@@ -0,0 +1,130 @@
+<!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: RedMatrix\RedDAV Namespace 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 class="current"><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 id="navrow2" class="tabs2">
+ <ul class="tablist">
+ <li><a href="namespaces.html"><span>Namespace&#160;List</span></a></li>
+ <li><a href="namespacemembers.html"><span>Namespace&#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('namespaceRedMatrix_1_1RedDAV.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="#nested-classes">Classes</a> </div>
+ <div class="headertitle">
+<div class="title">RedMatrix\RedDAV Namespace 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="classRedMatrix_1_1RedDAV_1_1RedBasicAuth.html">RedBasicAuth</a></td></tr>
+<tr class="memdesc:"><td class="mdescLeft">&#160;</td><td class="mdescRight">Authentication backend class for <a class="el" href="namespaceRedMatrix_1_1RedDAV.html">RedDAV</a>. <a href="classRedMatrix_1_1RedDAV_1_1RedBasicAuth.html#details">More...</a><br/></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="classRedMatrix_1_1RedDAV_1_1RedBrowser.html">RedBrowser</a></td></tr>
+<tr class="memdesc:"><td class="mdescLeft">&#160;</td><td class="mdescRight">Provides a DAV frontend for the webbrowser. <a href="classRedMatrix_1_1RedDAV_1_1RedBrowser.html#details">More...</a><br/></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="classRedMatrix_1_1RedDAV_1_1RedDirectory.html">RedDirectory</a></td></tr>
+<tr class="memdesc:"><td class="mdescLeft">&#160;</td><td class="mdescRight"><a class="el" href="classRedMatrix_1_1RedDAV_1_1RedDirectory.html" title="RedDirectory class.">RedDirectory</a> class. <a href="classRedMatrix_1_1RedDAV_1_1RedDirectory.html#details">More...</a><br/></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="classRedMatrix_1_1RedDAV_1_1RedFile.html">RedFile</a></td></tr>
+<tr class="memdesc:"><td class="mdescLeft">&#160;</td><td class="mdescRight">This class represents a file in DAV. <a href="classRedMatrix_1_1RedDAV_1_1RedFile.html#details">More...</a><br/></td></tr>
+<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
+</table>
+</div><!-- contents -->
+</div><!-- doc-content -->
+
diff --git a/doc/html/namespaceRedMatrix_1_1RedDAV.js b/doc/html/namespaceRedMatrix_1_1RedDAV.js
new file mode 100644
index 000000000..b0d685e01
--- /dev/null
+++ b/doc/html/namespaceRedMatrix_1_1RedDAV.js
@@ -0,0 +1,7 @@
+var namespaceRedMatrix_1_1RedDAV =
+[
+ [ "RedBasicAuth", "classRedMatrix_1_1RedDAV_1_1RedBasicAuth.html", "classRedMatrix_1_1RedDAV_1_1RedBasicAuth" ],
+ [ "RedBrowser", "classRedMatrix_1_1RedDAV_1_1RedBrowser.html", "classRedMatrix_1_1RedDAV_1_1RedBrowser" ],
+ [ "RedDirectory", "classRedMatrix_1_1RedDAV_1_1RedDirectory.html", "classRedMatrix_1_1RedDAV_1_1RedDirectory" ],
+ [ "RedFile", "classRedMatrix_1_1RedDAV_1_1RedFile.html", "classRedMatrix_1_1RedDAV_1_1RedFile" ]
+]; \ No newline at end of file
diff --git a/doc/html/namespaceRedmatrix_1_1Import.html b/doc/html/namespaceRedmatrix_1_1Import.html
new file mode 100644
index 000000000..b21ffdff2
--- /dev/null
+++ b/doc/html/namespaceRedmatrix_1_1Import.html
@@ -0,0 +1,120 @@
+<!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: Redmatrix\Import Namespace 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 class="current"><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 id="navrow2" class="tabs2">
+ <ul class="tablist">
+ <li><a href="namespaces.html"><span>Namespace&#160;List</span></a></li>
+ <li><a href="namespacemembers.html"><span>Namespace&#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('namespaceRedmatrix_1_1Import.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="#nested-classes">Classes</a> </div>
+ <div class="headertitle">
+<div class="title">Redmatrix\Import Namespace 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="classRedmatrix_1_1Import_1_1Import.html">Import</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/namespaceRedmatrix_1_1Import.js b/doc/html/namespaceRedmatrix_1_1Import.js
new file mode 100644
index 000000000..74692ac3b
--- /dev/null
+++ b/doc/html/namespaceRedmatrix_1_1Import.js
@@ -0,0 +1,4 @@
+var namespaceRedmatrix_1_1Import =
+[
+ [ "Import", "classRedmatrix_1_1Import_1_1Import.html", "classRedmatrix_1_1Import_1_1Import" ]
+]; \ No newline at end of file
diff --git a/doc/html/namespaces.html b/doc/html/namespaces.html
index 8ff7eddf2..dc5efaebd 100644
--- a/doc/html/namespaces.html
+++ b/doc/html/namespaces.html
@@ -108,12 +108,15 @@ $(document).ready(function(){initNavTree('namespaces.html','');});
</div><!--header-->
<div class="contents">
<div class="textblock">Here is a list of all namespaces with brief descriptions:</div><div class="directory">
-<table class="directory">
+<div class="levels">[detail level <span onclick="javascript:toggleLevel(1);">1</span><span onclick="javascript:toggleLevel(2);">2</span>]</div><table class="directory">
<tr id="row_0_" class="even"><td class="entry"><img src="ftv2node.png" alt="o" width="16" height="22" /><img src="ftv2ns.png" alt="N" width="24" height="22" /><a class="el" href="namespaceacl__selectors.html" target="_self">acl_selectors</a></td><td class="desc"></td></tr>
<tr id="row_1_"><td class="entry"><img src="ftv2node.png" alt="o" width="16" height="22" /><img src="ftv2ns.png" alt="N" width="24" height="22" /><a class="el" href="namespaceFriendica.html" target="_self">Friendica</a></td><td class="desc"></td></tr>
<tr id="row_2_" class="even"><td class="entry"><img src="ftv2node.png" alt="o" width="16" height="22" /><img src="ftv2ns.png" alt="N" width="24" height="22" /><a class="el" href="namespacefriendica-to-smarty-tpl.html" target="_self">friendica-to-smarty-tpl</a></td><td class="desc"></td></tr>
-<tr id="row_3_"><td class="entry"><img src="ftv2node.png" alt="o" width="16" height="22" /><img src="ftv2ns.png" alt="N" width="24" height="22" /><a class="el" href="namespaceupdatetpl.html" target="_self">updatetpl</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="ftv2ns.png" alt="N" width="24" height="22" /><a class="el" href="namespaceutil.html" target="_self">util</a></td><td class="desc"></td></tr>
+<tr id="row_3_"><td class="entry"><img id="arr_3_" src="ftv2mnode.png" alt="o" width="16" height="22" onclick="toggleFolder('3_')"/><img src="ftv2ns.png" alt="N" width="24" height="22" /><a class="el" href="namespaceRedMatrix.html" target="_self">RedMatrix</a></td><td class="desc">Class <a class="el" href="namespaceRedMatrix_1_1Import.html">Import</a></td></tr>
+<tr id="row_3_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="ftv2ns.png" alt="N" width="24" height="22" /><a class="el" href="namespaceRedMatrix_1_1Import.html" target="_self">Import</a></td><td class="desc"></td></tr>
+<tr id="row_3_1_"><td class="entry"><img src="ftv2vertline.png" alt="|" width="16" height="22" /><img src="ftv2lastnode.png" alt="\" width="16" height="22" /><img src="ftv2ns.png" alt="N" width="24" height="22" /><a class="el" href="namespaceRedMatrix_1_1RedDAV.html" target="_self">RedDAV</a></td><td class="desc"></td></tr>
+<tr id="row_4_" class="even"><td class="entry"><img src="ftv2node.png" alt="o" width="16" height="22" /><img src="ftv2ns.png" alt="N" width="24" height="22" /><a class="el" href="namespaceupdatetpl.html" target="_self">updatetpl</a></td><td class="desc"></td></tr>
+<tr id="row_5_"><td class="entry"><img src="ftv2lastnode.png" alt="\" width="16" height="22" /><img src="ftv2ns.png" alt="N" width="24" height="22" /><a class="el" href="namespaceutil.html" target="_self">util</a></td><td class="desc"></td></tr>
</table>
</div><!-- directory -->
</div><!-- contents -->
diff --git a/doc/html/namespaces.js b/doc/html/namespaces.js
index 681592f37..451e130fb 100644
--- a/doc/html/namespaces.js
+++ b/doc/html/namespaces.js
@@ -3,6 +3,7 @@ var namespaces =
[ "acl_selectors", "namespaceacl__selectors.html", null ],
[ "Friendica", "namespaceFriendica.html", null ],
[ "friendica-to-smarty-tpl", "namespacefriendica-to-smarty-tpl.html", null ],
+ [ "RedMatrix", "namespaceRedMatrix.html", "namespaceRedMatrix" ],
[ "updatetpl", "namespaceupdatetpl.html", null ],
[ "util", "namespaceutil.html", null ]
]; \ No newline at end of file
diff --git a/doc/html/navtree.js b/doc/html/navtree.js
index 8f0be4bc1..36a0f36dc 100644
--- a/doc/html/navtree.js
+++ b/doc/html/navtree.js
@@ -37,15 +37,15 @@ var NAVTREE =
var NAVTREEINDEX =
[
"BS-Default_8php.html",
-"boot_8php.html#a5df5359090d1f8e898c36d7cf8878ad2",
-"classApp.html#a6844aedad10e201b8c3d80cfc9e876d3",
-"classdba__mysql.html#ac3fd60c278f400907322dac578754a99",
-"dir__fns_8php.html#acd37b17dce3bdec6d5a6344a20598c1e",
-"html2plain_8php.html#a3214912e3d00cf0a948072daccf16740",
-"invite_8php.html#a244385b28cfd021d308715f01158bfd9",
-"pdledit_8php.html#a81da3c955d0e3db55d148a31483104c7",
-"spam_8php.html#ab8fd81a82c9622cbebb8ceab6b310ca6",
-"widgets_8php.html#ad1bf7aa69e8d100d95faba17c7bc91cd"
+"boot_8php.html#a52b599cd13e152ebc80d7e4413683195",
+"classApp.html#a4659785d13e4bac0bed50dbb1b0d4299",
+"classTemplate.html#a4e86b566c3f728e95ce5db1b33665c10",
+"datetime_8php.html#af1cd77c97c901d9239cb7a61f97f9826",
+"globals_0x61.html",
+"include_2chat_8php.html#aedcb532a0627b8644001a2fadab4e87a",
+"mod_2api_8php.html#a6fe77f05c07cb51048df0d557b4b9bd2",
+"reddav_8php.html#a5df0d09893f2e65dc5cf6bbab6cfb266",
+"text_8php.html#acedb584f65114a33f389efb796172a91"
];
var SYNCONMSG = 'click to disable panel synchronisation';
diff --git a/doc/html/navtreeindex0.js b/doc/html/navtreeindex0.js
index 0adf988bb..dcfaca689 100644
--- a/doc/html/navtreeindex0.js
+++ b/doc/html/navtreeindex0.js
@@ -1,60 +1,67 @@
var NAVTREEINDEX0 =
{
"BS-Default_8php.html":[6,0,3,1,3,1,1],
-"BaseObject_8php.html":[6,0,0,9],
-"Contact_8php.html":[6,0,0,20],
-"Contact_8php.html#a024919623a830e8703ac4f23496dd66c":[6,0,0,20,2],
-"Contact_8php.html#a08845ce8c5b997d5edac38ae7118b5c8":[6,0,0,20,9],
-"Contact_8php.html#a28e062c884331dbb5dfa713228c25ad6":[6,0,0,20,8],
-"Contact_8php.html#a2f4f495d53f2a334ab75292af79d3c91":[6,0,0,20,11],
-"Contact_8php.html#a2fc191067dd571a79603c66b04b1ca15":[6,0,0,20,13],
-"Contact_8php.html#a3a0844dac1e86d523de5d2f432cfeebc":[6,0,0,20,6],
-"Contact_8php.html#a483cda56f9e37c3a4a8773dcdfeb0258":[6,0,0,20,5],
-"Contact_8php.html#a4e8af0f0525161da74583c04b8b03097":[6,0,0,20,4],
-"Contact_8php.html#a5101d7eca5d6f387e5555f03fe249e33":[6,0,0,20,3],
-"Contact_8php.html#a6348a532c9d26cd1c9afbc9aa6aa8960":[6,0,0,20,14],
-"Contact_8php.html#a7e3f5bef8ea1d2bf8434c9be36a2b713":[6,0,0,20,10],
-"Contact_8php.html#a87e699f74a1102b25e8aa0432d86a91e":[6,0,0,20,7],
-"Contact_8php.html#acc12cda999c88c4d6185cca967c15125":[6,0,0,20,12],
-"Contact_8php.html#ad5b02c2a962ee55b1b7ca6c159d6e4c5":[6,0,0,20,1],
-"Contact_8php.html#ae8803c330352cbf1e828eb7490edf47e":[6,0,0,20,0],
-"ConversationObject_8php.html":[6,0,0,24],
-"ITemplateEngine_8php.html":[6,0,0,45],
-"ItemObject_8php.html":[6,0,0,44],
-"ProtoDriver_8php.html":[6,0,0,65],
+"BaseObject_8php.html":[6,0,0,11],
+"Contact_8php.html":[6,0,0,21],
+"Contact_8php.html#a024919623a830e8703ac4f23496dd66c":[6,0,0,21,2],
+"Contact_8php.html#a08845ce8c5b997d5edac38ae7118b5c8":[6,0,0,21,9],
+"Contact_8php.html#a28e062c884331dbb5dfa713228c25ad6":[6,0,0,21,8],
+"Contact_8php.html#a2f4f495d53f2a334ab75292af79d3c91":[6,0,0,21,11],
+"Contact_8php.html#a2fc191067dd571a79603c66b04b1ca15":[6,0,0,21,14],
+"Contact_8php.html#a3a0844dac1e86d523de5d2f432cfeebc":[6,0,0,21,6],
+"Contact_8php.html#a483cda56f9e37c3a4a8773dcdfeb0258":[6,0,0,21,5],
+"Contact_8php.html#a4e8af0f0525161da74583c04b8b03097":[6,0,0,21,4],
+"Contact_8php.html#a5101d7eca5d6f387e5555f03fe249e33":[6,0,0,21,3],
+"Contact_8php.html#a6348a532c9d26cd1c9afbc9aa6aa8960":[6,0,0,21,15],
+"Contact_8php.html#a7e3f5bef8ea1d2bf8434c9be36a2b713":[6,0,0,21,10],
+"Contact_8php.html#a87e699f74a1102b25e8aa0432d86a91e":[6,0,0,21,7],
+"Contact_8php.html#ab5895b75a3b2abdddf1cb351a8c6b58b":[6,0,0,21,13],
+"Contact_8php.html#acc12cda999c88c4d6185cca967c15125":[6,0,0,21,12],
+"Contact_8php.html#ad5b02c2a962ee55b1b7ca6c159d6e4c5":[6,0,0,21,1],
+"Contact_8php.html#ae8803c330352cbf1e828eb7490edf47e":[6,0,0,21,0],
+"ConversationObject_8php.html":[6,0,0,25],
+"ITemplateEngine_8php.html":[6,0,0,48],
+"Importer_8php.html":[6,0,0,1,0],
+"ItemObject_8php.html":[6,0,0,47],
+"ProtoDriver_8php.html":[6,0,0,68],
+"RedBasicAuth_8php.html":[6,0,0,3,0],
+"RedBrowser_8php.html":[6,0,0,3,1],
+"RedDirectory_8php.html":[6,0,0,3,2],
+"RedFile_8php.html":[6,0,0,3,3],
"__well__known_8php.html":[6,0,1,0],
"__well__known_8php.html#a6ebfa937a2024f0b5dab53f0ac90fed0":[6,0,1,0,0],
-"account_8php.html":[6,0,0,2],
-"account_8php.html#a014de2d5d5c9785de5bf547a485822fa":[6,0,0,2,7],
-"account_8php.html#a030cec6793b909c439c0336ba39b1571":[6,0,0,2,9],
-"account_8php.html#a0d183a3cb4c67a0f5e906811df7a1fc9":[6,0,0,2,6],
-"account_8php.html#a141fe579c351c78209d425473f978eb5":[6,0,0,2,5],
-"account_8php.html#a144b4891022567668375b58ea61cfff0":[6,0,0,2,4],
-"account_8php.html#a43e3042b2723d76915a030bac3c668b6":[6,0,0,2,0],
-"account_8php.html#a4fc13e528367f510fcb6d8bbfc559040":[6,0,0,2,12],
-"account_8php.html#a754d7f53b3abc557b753c057dc4e021d":[6,0,0,2,11],
-"account_8php.html#a901657dd078e070516cf97285e0bada7":[6,0,0,2,13],
-"account_8php.html#a905b54e10704b283ac64680a8abc0971":[6,0,0,2,10],
-"account_8php.html#a917d74aad0baf3e0c4b51cf1051e654f":[6,0,0,2,1],
-"account_8php.html#aa9c29c497c17d8f9344dce8631ad8761":[6,0,0,2,8],
-"account_8php.html#aaff7720423417a4333697894ffd9ddeb":[6,0,0,2,3],
-"account_8php.html#ac1653efba62493b9d87513e1b6c04c83":[6,0,0,2,16],
-"account_8php.html#ac5c570a2d46446bad4dd2501e9c5a4b1":[6,0,0,2,14],
-"account_8php.html#acd6b8d2124ba5ea4f4794d2c58ae8bf5":[6,0,0,2,17],
-"account_8php.html#ad07be417ac7eda939768804106ddea3d":[6,0,0,2,15],
-"account_8php.html#ae052bd5558847bd38e89c213561a9771":[6,0,0,2,2],
+"account_8php.html":[6,0,0,4],
+"account_8php.html#a014de2d5d5c9785de5bf547a485822fa":[6,0,0,4,8],
+"account_8php.html#a030cec6793b909c439c0336ba39b1571":[6,0,0,4,10],
+"account_8php.html#a0d183a3cb4c67a0f5e906811df7a1fc9":[6,0,0,4,7],
+"account_8php.html#a141fe579c351c78209d425473f978eb5":[6,0,0,4,6],
+"account_8php.html#a144b4891022567668375b58ea61cfff0":[6,0,0,4,5],
+"account_8php.html#a4328c40ee4b3d68630cf1ebb7b9d4d89":[6,0,0,4,0],
+"account_8php.html#a43e3042b2723d76915a030bac3c668b6":[6,0,0,4,1],
+"account_8php.html#a4fc13e528367f510fcb6d8bbfc559040":[6,0,0,4,13],
+"account_8php.html#a754d7f53b3abc557b753c057dc4e021d":[6,0,0,4,12],
+"account_8php.html#a901657dd078e070516cf97285e0bada7":[6,0,0,4,14],
+"account_8php.html#a905b54e10704b283ac64680a8abc0971":[6,0,0,4,11],
+"account_8php.html#a917d74aad0baf3e0c4b51cf1051e654f":[6,0,0,4,2],
+"account_8php.html#aa9c29c497c17d8f9344dce8631ad8761":[6,0,0,4,9],
+"account_8php.html#aaff7720423417a4333697894ffd9ddeb":[6,0,0,4,4],
+"account_8php.html#ac1653efba62493b9d87513e1b6c04c83":[6,0,0,4,17],
+"account_8php.html#ac5c570a2d46446bad4dd2501e9c5a4b1":[6,0,0,4,15],
+"account_8php.html#acd6b8d2124ba5ea4f4794d2c58ae8bf5":[6,0,0,4,18],
+"account_8php.html#ad07be417ac7eda939768804106ddea3d":[6,0,0,4,16],
+"account_8php.html#ae052bd5558847bd38e89c213561a9771":[6,0,0,4,3],
"achievements_8php.html":[6,0,1,1],
"achievements_8php.html#a35ae04ada0e227d19671f289a32fb30e":[6,0,1,1,0],
"acl_8php.html":[6,0,1,2],
"acl_8php.html#a57dceff370d4a0e7ae673d50fbfda61f":[6,0,1,2,1],
"acl_8php.html#ac6776dba871806ecdb5d1659bc2eb07a":[6,0,1,2,0],
-"acl__selectors_8php.html":[6,0,0,3],
-"acl__selectors_8php.html#a9476997d2968a5794f3723878ed89c91":[6,0,0,3,0],
-"acl__selectors_8php.html#aa1e3bc344ca2b29f97eb9860216d21a0":[6,0,0,3,2],
-"acl__selectors_8php.html#ad25bba63a51a2b0b5b463efae50df528":[6,0,0,3,3],
-"acl__selectors_8php.html#ad6664fb8330308e23f2645cd6624727e":[6,0,0,3,1],
-"activities_8php.html":[6,0,0,4],
-"activities_8php.html#a80134e807719b3c54aba971958d2e132":[6,0,0,4,0],
+"acl__selectors_8php.html":[6,0,0,5],
+"acl__selectors_8php.html#a9476997d2968a5794f3723878ed89c91":[6,0,0,5,0],
+"acl__selectors_8php.html#aa1e3bc344ca2b29f97eb9860216d21a0":[6,0,0,5,2],
+"acl__selectors_8php.html#ad25bba63a51a2b0b5b463efae50df528":[6,0,0,5,3],
+"acl__selectors_8php.html#ad6664fb8330308e23f2645cd6624727e":[6,0,0,5,1],
+"activities_8php.html":[6,0,0,6],
+"activities_8php.html#a80134e807719b3c54aba971958d2e132":[6,0,0,6,0],
"admin_8php.html":[6,0,1,3],
"admin_8php.html#a1d1362698af14d209aa3a0fb655551dd":[6,0,1,3,6],
"admin_8php.html#a233b7c8c31776b7020532003c6e44e1c":[6,0,1,3,7],
@@ -95,159 +102,152 @@ var NAVTREEINDEX0 =
"apw_2php_2style_8php.html#af3a16c5f0dd7a74cf9acf6a49fff73a7":[6,0,3,1,0,1,2,9],
"apw_2php_2theme_8php.html":[6,0,3,1,0,1,3],
"apw_2php_2theme_8php.html#a42167c539043a39a6b83c252d05f1e89":[6,0,3,1,0,1,3,0],
-"auth_8php.html":[6,0,0,8],
-"auth_8php.html#a07bae0e623e2daa9ee2cd5a8aa294dee":[6,0,0,8,0],
-"auth_8php.html#a0950af7c2888ca1d4743fe5d0bff9ae5":[6,0,0,8,3],
-"auth_8php.html#a2add3a1129ffa4d5515442a9d52a9b1a":[6,0,0,8,2],
-"auth_8php.html#ab7be44ee051c0aa29847807cf2c5dd38":[6,0,0,8,1],
-"bb2diaspora_8php.html":[6,0,0,10],
-"bb2diaspora_8php.html#a180b0e3a7d702998be19e3c3b44b0e93":[6,0,0,10,12],
-"bb2diaspora_8php.html#a2052c66bc1006a42b4c230320c269e47":[6,0,0,10,1],
-"bb2diaspora_8php.html#a29a2ad41f5826f3975fa9a49934ff863":[6,0,0,10,8],
-"bb2diaspora_8php.html#a4a27604f0745f1efda672966aaca9a3b":[6,0,0,10,5],
-"bb2diaspora_8php.html#a4c2f8f11b29a06809d9b07782215b1b2":[6,0,0,10,9],
-"bb2diaspora_8php.html#a4f10e0876b27373c762bc1abbe745f5c":[6,0,0,10,0],
-"bb2diaspora_8php.html#a5258d2f1addeb0a2a6b54c4f9e7d0f34":[6,0,0,10,2],
-"bb2diaspora_8php.html#a599428bceb6f6d82a6a78cb66811f747":[6,0,0,10,13],
-"bb2diaspora_8php.html#a8b96bd45884fa1c40b942939354197d4":[6,0,0,10,6],
-"bb2diaspora_8php.html#ab61b4f8c065e97b151411858bb2f209a":[6,0,0,10,11],
-"bb2diaspora_8php.html#ac9061ee10fcfcdac69566b649614e625":[6,0,0,10,4],
-"bb2diaspora_8php.html#ad033be99e87a2aaa05e569c68f30792d":[6,0,0,10,10],
-"bb2diaspora_8php.html#ad0abe1a7ee50aa0736a233df0a422eba":[6,0,0,10,3],
-"bb2diaspora_8php.html#adc92ccda5f85ed27e64fcc17712c89cc":[6,0,0,10,7],
-"bbcode_8php.html":[6,0,0,11],
-"bbcode_8php.html#a009f61aaf78771737ed0765c8463911b":[6,0,0,11,9],
-"bbcode_8php.html#a064dcfd9767df6f53be1a0e11ceeb15d":[6,0,0,11,8],
-"bbcode_8php.html#a1c69e021d5e0aef97d6966bf3169c86a":[6,0,0,11,5],
-"bbcode_8php.html#a2be26414a367118143cc89e2d58e7377":[6,0,0,11,6],
-"bbcode_8php.html#a3435c82a6c7693557800cdeb6848d0bd":[6,0,0,11,0],
-"bbcode_8php.html#a39de4de32a9456d1ca914d0dc52bd322":[6,0,0,11,13],
-"bbcode_8php.html#a3a989cbf308a32468d171d83e9c51d1e":[6,0,0,11,4],
-"bbcode_8php.html#a5165a5221a52cf1bc1d7812ebd2069c7":[6,0,0,11,11],
-"bbcode_8php.html#a55b0cb6973f1ec731de0e726bcc0efa7":[6,0,0,11,12],
-"bbcode_8php.html#a7cc811ff1939a508cfb54f39c1d584d7":[6,0,0,11,10],
-"bbcode_8php.html#a851f5aafefe52474201b83f9fd65931f":[6,0,0,11,2],
-"bbcode_8php.html#a8911e027907820df3db03b4f76724b50":[6,0,0,11,7],
-"bbcode_8php.html#a98d0eecc620c19561639f06cfbe8e74c":[6,0,0,11,3],
-"bbcode_8php.html#aa92f119341f4c69dcef2768a013079b8":[6,0,0,11,14],
-"bbcode_8php.html#abb02f1044ff1c635d12af690d0f2cfa2":[6,0,0,11,1],
+"auth_8php.html":[6,0,0,10],
+"auth_8php.html#a07bae0e623e2daa9ee2cd5a8aa294dee":[6,0,0,10,0],
+"auth_8php.html#a2add3a1129ffa4d5515442a9d52a9b1a":[6,0,0,10,3],
+"auth_8php.html#a69fa663e6baf65f80d1b114ad72615f2":[6,0,0,10,2],
+"auth_8php.html#a6f60fb54f60cd36c2430d6615a7b4f3f":[6,0,0,10,4],
+"auth_8php.html#ae3ecb5f34f202c7f9a61c5d589f6c6e1":[6,0,0,10,1],
+"bb2diaspora_8php.html":[6,0,0,12],
+"bb2diaspora_8php.html#a180b0e3a7d702998be19e3c3b44b0e93":[6,0,0,12,13],
+"bb2diaspora_8php.html#a29a2ad41f5826f3975fa9a49934ff863":[6,0,0,12,9],
+"bb2diaspora_8php.html#a4a27604f0745f1efda672966aaca9a3b":[6,0,0,12,6],
+"bb2diaspora_8php.html#a4c2f8f11b29a06809d9b07782215b1b2":[6,0,0,12,10],
+"bb2diaspora_8php.html#a4f10e0876b27373c762bc1abbe745f5c":[6,0,0,12,0],
+"bb2diaspora_8php.html#a5258d2f1addeb0a2a6b54c4f9e7d0f34":[6,0,0,12,3],
+"bb2diaspora_8php.html#a599428bceb6f6d82a6a78cb66811f747":[6,0,0,12,14],
+"bb2diaspora_8php.html#a8b96bd45884fa1c40b942939354197d4":[6,0,0,12,7],
+"bb2diaspora_8php.html#aab32042f8bd63552d3fadeeae9eab083":[6,0,0,12,2],
+"bb2diaspora_8php.html#ab27761069ea1275f0fc4c543099c5519":[6,0,0,12,1],
+"bb2diaspora_8php.html#ab61b4f8c065e97b151411858bb2f209a":[6,0,0,12,12],
+"bb2diaspora_8php.html#ac9061ee10fcfcdac69566b649614e625":[6,0,0,12,5],
+"bb2diaspora_8php.html#ad033be99e87a2aaa05e569c68f30792d":[6,0,0,12,11],
+"bb2diaspora_8php.html#ad0abe1a7ee50aa0736a233df0a422eba":[6,0,0,12,4],
+"bb2diaspora_8php.html#adc92ccda5f85ed27e64fcc17712c89cc":[6,0,0,12,8],
+"bbcode_8php.html":[6,0,0,13],
+"bbcode_8php.html#a009f61aaf78771737ed0765c8463911b":[6,0,0,13,12],
+"bbcode_8php.html#a02d5f2434e7bb5cf683e52a9b4787f24":[6,0,0,13,1],
+"bbcode_8php.html#a064dcfd9767df6f53be1a0e11ceeb15d":[6,0,0,13,11],
+"bbcode_8php.html#a1c69e021d5e0aef97d6966bf3169c86a":[6,0,0,13,8],
+"bbcode_8php.html#a2be26414a367118143cc89e2d58e7377":[6,0,0,13,9],
+"bbcode_8php.html#a3435c82a6c7693557800cdeb6848d0bd":[6,0,0,13,0],
+"bbcode_8php.html#a39de4de32a9456d1ca914d0dc52bd322":[6,0,0,13,16],
+"bbcode_8php.html#a3a989cbf308a32468d171d83e9c51d1e":[6,0,0,13,7],
+"bbcode_8php.html#a5165a5221a52cf1bc1d7812ebd2069c7":[6,0,0,13,14],
+"bbcode_8php.html#a55b0cb6973f1ec731de0e726bcc0efa7":[6,0,0,13,15],
+"bbcode_8php.html#a7cb403fd1c36d7376c2f3932a1ceb54d":[6,0,0,13,2],
+"bbcode_8php.html#a7cc811ff1939a508cfb54f39c1d584d7":[6,0,0,13,13],
+"bbcode_8php.html#a851f5aafefe52474201b83f9fd65931f":[6,0,0,13,4],
+"bbcode_8php.html#a8911e027907820df3db03b4f76724b50":[6,0,0,13,10],
+"bbcode_8php.html#a98d0eecc620c19561639f06cfbe8e74c":[6,0,0,13,6],
+"bbcode_8php.html#aa73fb62e7be1fa5fce4ad5f3d4487fc9":[6,0,0,13,5],
+"bbcode_8php.html#aa92f119341f4c69dcef2768a013079b8":[6,0,0,13,17],
+"bbcode_8php.html#abb02f1044ff1c635d12af690d0f2cfa2":[6,0,0,13,3],
"block_8php.html":[6,0,1,8],
"block_8php.html#a8a82a470acdfbc7a8e749509caeeea45":[6,0,1,8,0],
"block_8php.html#a9b61c96044ed2a068f18c10370a78d5c":[6,0,1,8,1],
"blocks_8php.html":[6,0,1,9],
"blocks_8php.html#a2531a8fd51db3cecb2eb20c002c66e12":[6,0,1,9,0],
-"blogga_2php_2theme_8php.html":[6,0,3,1,1,0,2],
-"blogga_2php_2theme_8php.html#aa55c1cb1f05087b5002ecb633b550b1b":[6,0,3,1,1,0,2,0],
-"blogga_2view_2theme_2blog_2theme_8php.html":[6,0,3,1,1,1,0,0,2],
-"blogga_2view_2theme_2blog_2theme_8php.html#a028ae8e9f2824670dfa76a6651d817e5":[6,0,3,1,1,1,0,0,2,3],
-"blogga_2view_2theme_2blog_2theme_8php.html#a3e77dbe111f330c64a1ff6c741cd515c":[6,0,3,1,1,1,0,0,2,2],
-"blogga_2view_2theme_2blog_2theme_8php.html#aa55c1cb1f05087b5002ecb633b550b1b":[6,0,3,1,1,1,0,0,2,0],
-"blogga_2view_2theme_2blog_2theme_8php.html#aae58cc837fe56473d9f3370abfe533ae":[6,0,3,1,1,1,0,0,2,1],
-"blogga_2view_2theme_2blog_2theme_8php.html#af634a3f721c5e238530d0636d33230ec":[6,0,3,1,1,1,0,0,2,4],
+"blocks_8php.html#aebe88302181883d2b17d6e98a1aaebe9":[6,0,1,9,1],
"boot_8php.html":[6,0,4],
-"boot_8php.html#a009e6a0637cb65804ea8094ecc4450b0":[6,0,4,144],
-"boot_8php.html#a01353c9abebc3544ea080ac161729632":[6,0,4,38],
-"boot_8php.html#a022cea669f9f13ef7c6268b63884c57f":[6,0,4,158],
-"boot_8php.html#a02566ac9d891369a1d3ebb81a15722fc":[6,0,4,260],
-"boot_8php.html#a028380b2902a86ba32198f6d3b5d10bb":[6,0,4,137],
-"boot_8php.html#a032bbd6d0321e99e9117332c9ed2b1b8":[6,0,4,57],
-"boot_8php.html#a03d19251c245587de7ed959300b87bdf":[6,0,4,177],
-"boot_8php.html#a0450389f24c632906fbc24347700a543":[6,0,4,48],
-"boot_8php.html#a0603d6ece8c5d37b4b7db697db053a4b":[6,0,4,110],
+"boot_8php.html#a009e6a0637cb65804ea8094ecc4450b0":[6,0,4,148],
+"boot_8php.html#a0209e605028a5bb492683951ab30d49d":[6,0,4,309],
+"boot_8php.html#a022cea669f9f13ef7c6268b63884c57f":[6,0,4,162],
+"boot_8php.html#a02566ac9d891369a1d3ebb81a15722fc":[6,0,4,267],
+"boot_8php.html#a028380b2902a86ba32198f6d3b5d10bb":[6,0,4,140],
+"boot_8php.html#a032bbd6d0321e99e9117332c9ed2b1b8":[6,0,4,58],
+"boot_8php.html#a03d19251c245587de7ed959300b87bdf":[6,0,4,181],
+"boot_8php.html#a0450389f24c632906fbc24347700a543":[6,0,4,49],
+"boot_8php.html#a0603d6ece8c5d37b4b7db697db053a4b":[6,0,4,113],
"boot_8php.html#a081307d681d7d04f17b9ced2076e7c85":[6,0,4,1],
-"boot_8php.html#a09532c3f750ae8c4527e63b2b790cbf3":[6,0,4,217],
-"boot_8php.html#a0a98dd0110dc6c8e24cefc8ae74d5562":[6,0,4,72],
-"boot_8php.html#a0b73e2548d6f9beb9c93211f488e336a":[6,0,4,181],
-"boot_8php.html#a0c59dde058efebbc66520d136cbd1631":[6,0,4,280],
-"boot_8php.html#a0cc8dc76bd10ac0ec81bac08a46f82fe":[6,0,4,276],
-"boot_8php.html#a0d877df1e20bae765e1708be50f6b503":[6,0,4,279],
+"boot_8php.html#a09532c3f750ae8c4527e63b2b790cbf3":[6,0,4,223],
+"boot_8php.html#a0a98dd0110dc6c8e24cefc8ae74d5562":[6,0,4,73],
+"boot_8php.html#a0afeb43da443d6ff3526ede5ecdcc3b3":[6,0,4,300],
+"boot_8php.html#a0b73e2548d6f9beb9c93211f488e336a":[6,0,4,185],
+"boot_8php.html#a0c59dde058efebbc66520d136cbd1631":[6,0,4,287],
+"boot_8php.html#a0cc8dc76bd10ac0ec81bac08a46f82fe":[6,0,4,283],
+"boot_8php.html#a0d877df1e20bae765e1708be50f6b503":[6,0,4,286],
"boot_8php.html#a0e4701c9742c3ef88f02ac450a042a84":[6,0,4,22],
-"boot_8php.html#a0e57f846e6d47a308feced0f7274f178":[6,0,4,64],
+"boot_8php.html#a0e57f846e6d47a308feced0f7274f178":[6,0,4,65],
"boot_8php.html#a0e6db7e365f2b041a828b93786f694bc":[6,0,4,15],
-"boot_8php.html#a0fb63e51c2a9814941842ae8f2f4dff8":[6,0,4,82],
-"boot_8php.html#a107d53f96acf5319905a34b1870db09a":[6,0,4,41],
-"boot_8php.html#a115faf8797718c3165498abbd6895843":[6,0,4,265],
-"boot_8php.html#a11cfe7d99b4dac0454d0de8873989f81":[6,0,4,139],
-"boot_8php.html#a1200c1f968ff3d52ef878de5fc5c30c1":[6,0,4,264],
-"boot_8php.html#a12c781cefc20167231e2e3fd5866b1b5":[6,0,4,86],
-"boot_8php.html#a14ba8f9e162f2559831ee3bf98e0c3bd":[6,0,4,83],
-"boot_8php.html#a14d44d4a00223dc3db4ea962325db192":[6,0,4,207],
-"boot_8php.html#a176664e78dcb9132e16be69418223eb2":[6,0,4,67],
-"boot_8php.html#a17b4ea23d9ecf628d9c8f53b7abcb805":[6,0,4,157],
-"boot_8php.html#a17cf72338b040891781a4bcbdd9a8595":[6,0,4,153],
-"boot_8php.html#a181c111f4b6c14d091dfd3bf0d0a22cd":[6,0,4,180],
-"boot_8php.html#a18a400fa45e5632811b33041d8c048bf":[6,0,4,147],
-"boot_8php.html#a1af3ed96de14aa0d7891b39cc75b60f2":[6,0,4,288],
-"boot_8php.html#a1ba00027b718db732f30fc0e2c3e0abc":[6,0,4,254],
-"boot_8php.html#a1c923b99bf77e4203ae94e5684b6ad0f":[6,0,4,290],
-"boot_8php.html#a1d6e7f4c08bb68e4a424326a811bdd86":[6,0,4,184],
-"boot_8php.html#a1da180f961f49a11573cac4ff6c62c05":[6,0,4,81],
-"boot_8php.html#a1db4f0009c9cb4e107eab0f914a3c8dc":[6,0,4,232],
-"boot_8php.html#a1f5906598e90b5ea2b4245f682be4348":[6,0,4,112],
-"boot_8php.html#a1fbb93cf030f07391f22cc2948744869":[6,0,4,164],
-"boot_8php.html#a205d013103997adfa72953d2f20c01e1":[6,0,4,226],
-"boot_8php.html#a20f0eed431d25870b624b8937a07a59f":[6,0,4,200],
-"boot_8php.html#a21cc29e0025943e7c28ff58cb4856ac3":[6,0,4,256],
-"boot_8php.html#a222395aa223cfbff6166fab0b4e2e1d5":[6,0,4,42],
+"boot_8php.html#a0fb63e51c2a9814941842ae8f2f4dff8":[6,0,4,83],
+"boot_8php.html#a107d53f96acf5319905a34b1870db09a":[6,0,4,42],
+"boot_8php.html#a115faf8797718c3165498abbd6895843":[6,0,4,272],
+"boot_8php.html#a11cfe7d99b4dac0454d0de8873989f81":[6,0,4,142],
+"boot_8php.html#a1200c1f968ff3d52ef878de5fc5c30c1":[6,0,4,271],
+"boot_8php.html#a12c781cefc20167231e2e3fd5866b1b5":[6,0,4,87],
+"boot_8php.html#a14ba8f9e162f2559831ee3bf98e0c3bd":[6,0,4,84],
+"boot_8php.html#a14d44d4a00223dc3db4ea962325db192":[6,0,4,212],
+"boot_8php.html#a176664e78dcb9132e16be69418223eb2":[6,0,4,68],
+"boot_8php.html#a17b4ea23d9ecf628d9c8f53b7abcb805":[6,0,4,161],
+"boot_8php.html#a17cf72338b040891781a4bcbdd9a8595":[6,0,4,157],
+"boot_8php.html#a181c111f4b6c14d091dfd3bf0d0a22cd":[6,0,4,184],
+"boot_8php.html#a18a400fa45e5632811b33041d8c048bf":[6,0,4,151],
+"boot_8php.html#a1997c4b7d0253e036bc0fb6b20e4af71":[6,0,4,299],
+"boot_8php.html#a1af3ed96de14aa0d7891b39cc75b60f2":[6,0,4,306],
+"boot_8php.html#a1ba00027b718db732f30fc0e2c3e0abc":[6,0,4,261],
+"boot_8php.html#a1c923b99bf77e4203ae94e5684b6ad0f":[6,0,4,308],
+"boot_8php.html#a1d6e7f4c08bb68e4a424326a811bdd86":[6,0,4,188],
+"boot_8php.html#a1da180f961f49a11573cac4ff6c62c05":[6,0,4,82],
+"boot_8php.html#a1db4f0009c9cb4e107eab0f914a3c8dc":[6,0,4,238],
+"boot_8php.html#a1f5906598e90b5ea2b4245f682be4348":[6,0,4,115],
+"boot_8php.html#a1fbb93cf030f07391f22cc2948744869":[6,0,4,168],
+"boot_8php.html#a205d013103997adfa72953d2f20c01e1":[6,0,4,232],
+"boot_8php.html#a20f0eed431d25870b624b8937a07a59f":[6,0,4,205],
+"boot_8php.html#a21cc29e0025943e7c28ff58cb4856ac3":[6,0,4,263],
+"boot_8php.html#a222395aa223cfbff6166fab0b4e2e1d5":[6,0,4,43],
"boot_8php.html#a24a7a70afedd5d85fe0eadc85afa9f77":[6,0,4,21],
-"boot_8php.html#a25476eec71fceda237f7dc1d78b0adb8":[6,0,4,105],
-"boot_8php.html#a27299ecfb9e9a99826f17a1c14c6995f":[6,0,4,97],
-"boot_8php.html#a2750985ec445617d7e82ae3098c91e3f":[6,0,4,268],
-"boot_8php.html#a285732e7889fa7f333cbe431111e1029":[6,0,4,203],
-"boot_8php.html#a29528a2544373cc19a378f350040c6a1":[6,0,4,88],
-"boot_8php.html#a2958a2bd5422b85329d7c36c06dbc221":[6,0,4,138],
-"boot_8php.html#a29e921c0c72412cc738e44cca6ca1f62":[6,0,4,230],
-"boot_8php.html#a2af173e4e9836ee7c90757b4793a2be3":[6,0,4,113],
-"boot_8php.html#a2b525996e4426bdddbcec277778bde08":[6,0,4,252],
-"boot_8php.html#a2c65e925994566a63e6c03c381f1b4a0":[6,0,4,199],
-"boot_8php.html#a2c8906f1af94a3559a5b4661067bb79d":[6,0,4,134],
-"boot_8php.html#a2e90096fede6acce16abf0da8cb2febe":[6,0,4,73],
-"boot_8php.html#a2f8f25b13480c37a5f22511f53da8bab":[6,0,4,78],
+"boot_8php.html#a25476eec71fceda237f7dc1d78b0adb8":[6,0,4,108],
+"boot_8php.html#a27299ecfb9e9a99826f17a1c14c6995f":[6,0,4,98],
+"boot_8php.html#a2750985ec445617d7e82ae3098c91e3f":[6,0,4,275],
+"boot_8php.html#a285732e7889fa7f333cbe431111e1029":[6,0,4,208],
+"boot_8php.html#a29528a2544373cc19a378f350040c6a1":[6,0,4,89],
+"boot_8php.html#a2958a2bd5422b85329d7c36c06dbc221":[6,0,4,141],
+"boot_8php.html#a29e921c0c72412cc738e44cca6ca1f62":[6,0,4,236],
+"boot_8php.html#a2af173e4e9836ee7c90757b4793a2be3":[6,0,4,116],
+"boot_8php.html#a2b525996e4426bdddbcec277778bde08":[6,0,4,259],
+"boot_8php.html#a2c65e925994566a63e6c03c381f1b4a0":[6,0,4,204],
+"boot_8php.html#a2c8906f1af94a3559a5b4661067bb79d":[6,0,4,137],
+"boot_8php.html#a2e90096fede6acce16abf0da8cb2febe":[6,0,4,74],
+"boot_8php.html#a2f8f25b13480c37a5f22511f53da8bab":[6,0,4,79],
"boot_8php.html#a329400dcb29897cdaae3020109272285":[6,0,4,17],
-"boot_8php.html#a32df13fec0e43281da5979e1f5579aa8":[6,0,4,237],
-"boot_8php.html#a3475ff6c2e575f946ea0ee377e944173":[6,0,4,151],
-"boot_8php.html#a34c756469ebed32e2fc987bcde62d382":[6,0,4,45],
-"boot_8php.html#a3515ea6bf77495de89b93e9ccd881c49":[6,0,4,127],
-"boot_8php.html#a35625dacd2158b9f1f1a8e77f9f081fd":[6,0,4,166],
-"boot_8php.html#a36003bebe4ce860c6652bcc3e09b2214":[6,0,4,214],
-"boot_8php.html#a36b31575f992a10b5927b76efba9362e":[6,0,4,294],
-"boot_8php.html#a38f6c7fe33b5434a24b4314567753dfa":[6,0,4,188],
-"boot_8php.html#a3ad9cc5d4354be741fa1de12b96e9955":[6,0,4,116],
-"boot_8php.html#a3b56bfc6a0dd159070e316ddac3b7456":[6,0,4,121],
-"boot_8php.html#a3cd42a70c6b3999590e4fd7a1a9096af":[6,0,4,293],
-"boot_8php.html#a3d6d4fc5fafcc9156811669158541caf":[6,0,4,228],
+"boot_8php.html#a32df13fec0e43281da5979e1f5579aa8":[6,0,4,243],
+"boot_8php.html#a3475ff6c2e575f946ea0ee377e944173":[6,0,4,155],
+"boot_8php.html#a34c756469ebed32e2fc987bcde62d382":[6,0,4,46],
+"boot_8php.html#a3515ea6bf77495de89b93e9ccd881c49":[6,0,4,130],
+"boot_8php.html#a35625dacd2158b9f1f1a8e77f9f081fd":[6,0,4,170],
+"boot_8php.html#a36003bebe4ce860c6652bcc3e09b2214":[6,0,4,219],
+"boot_8php.html#a36b31575f992a10b5927b76efba9362e":[6,0,4,313],
+"boot_8php.html#a37281c30bd92cecb499878d6778c570f":[6,0,4,298],
+"boot_8php.html#a37ddabc112db443b4c67fbc0f708817e":[6,0,4,102],
+"boot_8php.html#a38f6c7fe33b5434a24b4314567753dfa":[6,0,4,193],
+"boot_8php.html#a3ad9cc5d4354be741fa1de12b96e9955":[6,0,4,119],
+"boot_8php.html#a3b56bfc6a0dd159070e316ddac3b7456":[6,0,4,124],
+"boot_8php.html#a3cd42a70c6b3999590e4fd7a1a9096af":[6,0,4,312],
+"boot_8php.html#a3d48dffd9dc73a187263c3002cdf00c0":[6,0,4,190],
+"boot_8php.html#a3d6d4fc5fafcc9156811669158541caf":[6,0,4,234],
"boot_8php.html#a3e0930933fb2c0bf8211cc7ab4e1c3b4":[6,0,4,12],
-"boot_8php.html#a3e2ea123d29a72012db1241f96280b0e":[6,0,4,65],
-"boot_8php.html#a3f40aa5bafff8c4eebdc62e5121daf77":[6,0,4,95],
-"boot_8php.html#a400519fa181591cd6fdbb8f25fbcba0a":[6,0,4,55],
-"boot_8php.html#a40d885b2cfd736aab4234ae641ca4dfb":[6,0,4,140],
-"boot_8php.html#a423505ab8dbd8e39d04ae3fe1374102b":[6,0,4,221],
-"boot_8php.html#a43296b1b4398aacbf92a4b2d56bab91e":[6,0,4,198],
-"boot_8php.html#a43c6c7d84d880e9500bd4f8f8ecc5731":[6,0,4,94],
-"boot_8php.html#a444ce608ce34efb82ee11852f36e825f":[6,0,4,174],
-"boot_8php.html#a44ae1542a805ffd7f826fb511db07374":[6,0,4,161],
-"boot_8php.html#a44d069c8a1cfcc6d2007c506a17ff28f":[6,0,4,76],
-"boot_8php.html#a458e19af801bc4b0d1f1ce1a6d9e857e":[6,0,4,167],
-"boot_8php.html#a45b12aefab9675baffc7a07a09486db8":[6,0,4,277],
-"boot_8php.html#a49f2a70b3b43aa904223a8d19e986a47":[6,0,4,186],
-"boot_8php.html#a4a12ce5de39789b0361e308d89925a20":[6,0,4,111],
-"boot_8php.html#a4a49b29838ef2c45ab3556b52baec6a4":[6,0,4,246],
-"boot_8php.html#a4bfe22e163657690dfb6d5b1d04cb47e":[6,0,4,185],
+"boot_8php.html#a3e2ea123d29a72012db1241f96280b0e":[6,0,4,66],
+"boot_8php.html#a3f40aa5bafff8c4eebdc62e5121daf77":[6,0,4,96],
+"boot_8php.html#a400519fa181591cd6fdbb8f25fbcba0a":[6,0,4,56],
+"boot_8php.html#a40d885b2cfd736aab4234ae641ca4dfb":[6,0,4,144],
+"boot_8php.html#a423505ab8dbd8e39d04ae3fe1374102b":[6,0,4,227],
+"boot_8php.html#a43296b1b4398aacbf92a4b2d56bab91e":[6,0,4,203],
+"boot_8php.html#a43c6c7d84d880e9500bd4f8f8ecc5731":[6,0,4,95],
+"boot_8php.html#a444ce608ce34efb82ee11852f36e825f":[6,0,4,178],
+"boot_8php.html#a44ae1542a805ffd7f826fb511db07374":[6,0,4,165],
+"boot_8php.html#a44d069c8a1cfcc6d2007c506a17ff28f":[6,0,4,77],
+"boot_8php.html#a458e19af801bc4b0d1f1ce1a6d9e857e":[6,0,4,171],
+"boot_8php.html#a45b12aefab9675baffc7a07a09486db8":[6,0,4,284],
+"boot_8php.html#a49f2a70b3b43aa904223a8d19e986a47":[6,0,4,191],
+"boot_8php.html#a4a12ce5de39789b0361e308d89925a20":[6,0,4,114],
+"boot_8php.html#a4a49b29838ef2c45ab3556b52baec6a4":[6,0,4,253],
+"boot_8php.html#a4bfe22e163657690dfb6d5b1d04cb47e":[6,0,4,189],
"boot_8php.html#a4c02d88e66852a01bd5a1feecb7c3ce3":[6,0,4,6],
-"boot_8php.html#a4edce16cb7f21cdafa1e85bf63d713e6":[6,0,4,219],
-"boot_8php.html#a4f507a5996dbb3da148add0339a40d5a":[6,0,4,61],
-"boot_8php.html#a4fefd7486d3b888a05cfd3dc9575f115":[6,0,4,242],
-"boot_8php.html#a505410c7edc5f5bb5fa227b98359793e":[6,0,4,210],
-"boot_8php.html#a525ca93ff35d3535d1a2b8ba57876afa":[6,0,4,165],
-"boot_8php.html#a52b599cd13e152ebc80d7e4413683195":[6,0,4,43],
-"boot_8php.html#a53e4bdb6f225da55115acb9277f75e53":[6,0,4,87],
-"boot_8php.html#a5542c5c2806ab8bca04bad53d47b5209":[6,0,4,35],
-"boot_8php.html#a56fd673eaa7014150297ce1162502db5":[6,0,4,202],
-"boot_8php.html#a57eee7352714c004d36c26dda74af73e":[6,0,4,241],
-"boot_8php.html#a5a681a672e007cdc22b43345d71f07c6":[6,0,4,291],
-"boot_8php.html#a5ab6181607a090bcdbaa13b15b85aba1":[6,0,4,20],
-"boot_8php.html#a5ae728ac966ea1d3525a19e7fec59434":[6,0,4,66],
-"boot_8php.html#a5b043b7fdcfd4e8c9c3747574afc6caa":[6,0,4,192],
-"boot_8php.html#a5b8484922918946d041e5e0515dbe718":[6,0,4,215],
-"boot_8php.html#a5c3747e0f505f0d5271dc4c54e3feaf4":[6,0,4,84]
+"boot_8php.html#a4edce16cb7f21cdafa1e85bf63d713e6":[6,0,4,225],
+"boot_8php.html#a4f507a5996dbb3da148add0339a40d5a":[6,0,4,62],
+"boot_8php.html#a4fefd7486d3b888a05cfd3dc9575f115":[6,0,4,248],
+"boot_8php.html#a505410c7edc5f5bb5fa227b98359793e":[6,0,4,215],
+"boot_8php.html#a50a6707a28c7d05d3f49eaabc7994501":[6,0,4,30],
+"boot_8php.html#a525ca93ff35d3535d1a2b8ba57876afa":[6,0,4,169]
};
diff --git a/doc/html/navtreeindex1.js b/doc/html/navtreeindex1.js
index 79f4e8017..299da6394 100644
--- a/doc/html/navtreeindex1.js
+++ b/doc/html/navtreeindex1.js
@@ -1,253 +1,253 @@
var NAVTREEINDEX1 =
{
-"boot_8php.html#a5df5359090d1f8e898c36d7cf8878ad2":[6,0,4,172],
-"boot_8php.html#a5e322a2a2d0f51924c0b2e874988e640":[6,0,4,216],
-"boot_8php.html#a5fbebdf7a1c0ea8f904dbd9d78c2c06c":[6,0,4,33],
+"boot_8php.html#a52b599cd13e152ebc80d7e4413683195":[6,0,4,44],
+"boot_8php.html#a53e4bdb6f225da55115acb9277f75e53":[6,0,4,88],
+"boot_8php.html#a5542c5c2806ab8bca04bad53d47b5209":[6,0,4,36],
+"boot_8php.html#a56fd673eaa7014150297ce1162502db5":[6,0,4,207],
+"boot_8php.html#a57eee7352714c004d36c26dda74af73e":[6,0,4,247],
+"boot_8php.html#a5a681a672e007cdc22b43345d71f07c6":[6,0,4,310],
+"boot_8php.html#a5ab6181607a090bcdbaa13b15b85aba1":[6,0,4,20],
+"boot_8php.html#a5ae728ac966ea1d3525a19e7fec59434":[6,0,4,67],
+"boot_8php.html#a5b043b7fdcfd4e8c9c3747574afc6caa":[6,0,4,197],
+"boot_8php.html#a5b8484922918946d041e5e0515dbe718":[6,0,4,220],
+"boot_8php.html#a5c3747e0f505f0d5271dc4c54e3feaf4":[6,0,4,85],
+"boot_8php.html#a5df5359090d1f8e898c36d7cf8878ad2":[6,0,4,176],
+"boot_8php.html#a5e322a2a2d0f51924c0b2e874988e640":[6,0,4,221],
+"boot_8php.html#a5fbebdf7a1c0ea8f904dbd9d78c2c06c":[6,0,4,34],
"boot_8php.html#a623e49c79943f3e7bdb770d021683cf7":[6,0,4,19],
"boot_8php.html#a6252d8eca67c689d9035ec6da544cf46":[6,0,4,25],
-"boot_8php.html#a62c832a95e38b1fa23e6cef39521b7d5":[6,0,4,80],
-"boot_8php.html#a639f079bf28f7bbb2769fee651d76dd8":[6,0,4,109],
-"boot_8php.html#a64617d4655804de2a3c86501ab4fdbfd":[6,0,4,273],
-"boot_8php.html#a6626f383c3d2d459f731ab8b4f237d16":[6,0,4,178],
-"boot_8php.html#a6788e99021ec8ffb0fa94d651f22a322":[6,0,4,149],
-"boot_8php.html#a68d1d5bc9c7ccb663dc671b48c66df11":[6,0,4,152],
-"boot_8php.html#a68eebe493e6f729ffd1aeda7a4b11155":[6,0,4,47],
-"boot_8php.html#a6969947145a139ec374ce098224d8e81":[6,0,4,155],
-"boot_8php.html#a69aac276ed82e010dc382b16ab4d59e1":[6,0,4,258],
-"boot_8php.html#a6b14a31a8aa9f3452a13383f413bffa2":[6,0,4,245],
-"boot_8php.html#a6b31dd451bc6c37fe7c9c766ff385aaf":[6,0,4,239],
-"boot_8php.html#a6b9909db6a7ec80ec6fdd40ba74014dd":[6,0,4,106],
-"boot_8php.html#a6c5e9e293c8242dcb9bc2c3ea2fee2c9":[6,0,4,98],
-"boot_8php.html#a6df1102664f64b274810db85197c2755":[6,0,4,225],
-"boot_8php.html#a6e57d913634d033b4d5ad72d99fd3e9d":[6,0,4,136],
-"boot_8php.html#a6ee7a72d558d1851bbb9e3cdde377932":[6,0,4,220],
-"boot_8php.html#a7037bcbca223395c06bc67f65024de7a":[6,0,4,107],
-"boot_8php.html#a7176c0f9f1c98421b97735d892cf6252":[6,0,4,257],
-"boot_8php.html#a718a801b0be6cbaef5e519516da12721":[6,0,4,171],
+"boot_8php.html#a62c832a95e38b1fa23e6cef39521b7d5":[6,0,4,81],
+"boot_8php.html#a639f079bf28f7bbb2769fee651d76dd8":[6,0,4,112],
+"boot_8php.html#a64617d4655804de2a3c86501ab4fdbfd":[6,0,4,280],
+"boot_8php.html#a6626f383c3d2d459f731ab8b4f237d16":[6,0,4,182],
+"boot_8php.html#a6788e99021ec8ffb0fa94d651f22a322":[6,0,4,153],
+"boot_8php.html#a68d1d5bc9c7ccb663dc671b48c66df11":[6,0,4,156],
+"boot_8php.html#a68eebe493e6f729ffd1aeda7a4b11155":[6,0,4,48],
+"boot_8php.html#a6969947145a139ec374ce098224d8e81":[6,0,4,159],
+"boot_8php.html#a69aac276ed82e010dc382b16ab4d59e1":[6,0,4,265],
+"boot_8php.html#a6b14a31a8aa9f3452a13383f413bffa2":[6,0,4,251],
+"boot_8php.html#a6b31dd451bc6c37fe7c9c766ff385aaf":[6,0,4,245],
+"boot_8php.html#a6b9909db6a7ec80ec6fdd40ba74014dd":[6,0,4,109],
+"boot_8php.html#a6c5e9e293c8242dcb9bc2c3ea2fee2c9":[6,0,4,99],
+"boot_8php.html#a6df1102664f64b274810db85197c2755":[6,0,4,231],
+"boot_8php.html#a6e57d913634d033b4d5ad72d99fd3e9d":[6,0,4,139],
+"boot_8php.html#a6ee7a72d558d1851bbb9e3cdde377932":[6,0,4,226],
+"boot_8php.html#a7037bcbca223395c06bc67f65024de7a":[6,0,4,110],
+"boot_8php.html#a7176c0f9f1c98421b97735d892cf6252":[6,0,4,264],
+"boot_8php.html#a718a801b0be6cbaef5e519516da12721":[6,0,4,175],
"boot_8php.html#a719c7f3972d5f9268f37a41c76cd4ef6":[6,0,4,29],
-"boot_8php.html#a7236b2cdcf59f02a42302e893a99013b":[6,0,4,193],
-"boot_8php.html#a749144d8dd9c1366596a0213c277d050":[6,0,4,142],
-"boot_8php.html#a74bf27f7564c9a37975e7b37d973dcab":[6,0,4,77],
+"boot_8php.html#a7236b2cdcf59f02a42302e893a99013b":[6,0,4,198],
+"boot_8php.html#a749144d8dd9c1366596a0213c277d050":[6,0,4,146],
+"boot_8php.html#a74bf27f7564c9a37975e7b37d973dcab":[6,0,4,78],
"boot_8php.html#a75a90b0eadd0df510f7e63210733634d":[6,0,4,2],
-"boot_8php.html#a75fc600186b13c3b25e661afefb5eac8":[6,0,4,281],
+"boot_8php.html#a75fc600186b13c3b25e661afefb5eac8":[6,0,4,288],
+"boot_8php.html#a76480b213af379c0c6c7fa4e39019ca9":[6,0,4,297],
"boot_8php.html#a768f00b7d66be0daf7ef4eea2e862006":[6,0,4,4],
-"boot_8php.html#a774f0f792ebfec1e774c5a17bb9d5966":[6,0,4,79],
-"boot_8php.html#a781916f83fcc8ff1035649afa45f0292":[6,0,4,92],
-"boot_8php.html#a78849a1bf8ce8d9804b4cbb502e8f383":[6,0,4,248],
-"boot_8php.html#a7a8ba64d089cc0412c59a2eefc6d655c":[6,0,4,122],
-"boot_8php.html#a7aa57438db03834aaa0b468bdce773a6":[6,0,4,70],
-"boot_8php.html#a7af107fab8d62b9a73801713b774ed30":[6,0,4,141],
-"boot_8php.html#a7b8f8ad9dbe82711257d23891ef6b133":[6,0,4,173],
-"boot_8php.html#a7bff2278e68a71e524afd1c7c951e1e3":[6,0,4,74],
-"boot_8php.html#a7c286add8961fd2d79216314cd4aadd8":[6,0,4,114],
-"boot_8php.html#a7c2eb822d50e1554bf5c32861f36342b":[6,0,4,62],
-"boot_8php.html#a7ed4581ab66ebcde97f6b3730856b028":[6,0,4,175],
-"boot_8php.html#a7eeb83e15968f7a6cc5937d493815773":[6,0,4,49],
-"boot_8php.html#a7f3474fec541e261fc8dff47313c4017":[6,0,4,52],
-"boot_8php.html#a7f4264232dbb6c3b41f2617deecb1866":[6,0,4,89],
-"boot_8php.html#a7fc4b291a7cdaa48b38e27344ea183cf":[6,0,4,125],
-"boot_8php.html#a8231d115060d41a9c2a677f2c86f10ed":[6,0,4,212],
-"boot_8php.html#a84057c5bfa1bca5fba8497fe005ee4d8":[6,0,4,56],
-"boot_8php.html#a845891f82bf6edd7fa2d578b66703112":[6,0,4,119],
-"boot_8php.html#a84f48897059bbd4a8738d7ee4cec6688":[6,0,4,60],
-"boot_8php.html#a852d4036a3bed66af1534d014c4ecde2":[6,0,4,223],
-"boot_8php.html#a8663f32171568489dbb2a01dd00371f8":[6,0,4,132],
-"boot_8php.html#a87b0f279f8413c7e4d805c5d85f20d34":[6,0,4,124],
-"boot_8php.html#a882b666adfe21f035a0f8c02806066d6":[6,0,4,272],
-"boot_8php.html#a8892374789fd261eb32a7969d934a14a":[6,0,4,271],
-"boot_8php.html#a8905fde0a5b7882bdc083b20d9b34701":[6,0,4,191],
+"boot_8php.html#a774f0f792ebfec1e774c5a17bb9d5966":[6,0,4,80],
+"boot_8php.html#a781916f83fcc8ff1035649afa45f0292":[6,0,4,93],
+"boot_8php.html#a78849a1bf8ce8d9804b4cbb502e8f383":[6,0,4,255],
+"boot_8php.html#a7a8ba64d089cc0412c59a2eefc6d655c":[6,0,4,125],
+"boot_8php.html#a7aa57438db03834aaa0b468bdce773a6":[6,0,4,71],
+"boot_8php.html#a7af107fab8d62b9a73801713b774ed30":[6,0,4,145],
+"boot_8php.html#a7b511bd93202c43405adbe3b5bcebbfe":[6,0,4,295],
+"boot_8php.html#a7b8f8ad9dbe82711257d23891ef6b133":[6,0,4,177],
+"boot_8php.html#a7bff2278e68a71e524afd1c7c951e1e3":[6,0,4,75],
+"boot_8php.html#a7c286add8961fd2d79216314cd4aadd8":[6,0,4,117],
+"boot_8php.html#a7c2eb822d50e1554bf5c32861f36342b":[6,0,4,63],
+"boot_8php.html#a7e5627b5ca4b7464feb0f08663b19ea1":[6,0,4,303],
+"boot_8php.html#a7ed4581ab66ebcde97f6b3730856b028":[6,0,4,179],
+"boot_8php.html#a7eeb83e15968f7a6cc5937d493815773":[6,0,4,50],
+"boot_8php.html#a7f3474fec541e261fc8dff47313c4017":[6,0,4,53],
+"boot_8php.html#a7f4264232dbb6c3b41f2617deecb1866":[6,0,4,90],
+"boot_8php.html#a7fc4b291a7cdaa48b38e27344ea183cf":[6,0,4,128],
+"boot_8php.html#a8231d115060d41a9c2a677f2c86f10ed":[6,0,4,217],
+"boot_8php.html#a84057c5bfa1bca5fba8497fe005ee4d8":[6,0,4,57],
+"boot_8php.html#a845891f82bf6edd7fa2d578b66703112":[6,0,4,122],
+"boot_8php.html#a84f48897059bbd4a8738d7ee4cec6688":[6,0,4,61],
+"boot_8php.html#a852d4036a3bed66af1534d014c4ecde2":[6,0,4,229],
+"boot_8php.html#a8663f32171568489dbb2a01dd00371f8":[6,0,4,135],
+"boot_8php.html#a87b0f279f8413c7e4d805c5d85f20d34":[6,0,4,127],
+"boot_8php.html#a882b666adfe21f035a0f8c02806066d6":[6,0,4,279],
+"boot_8php.html#a8892374789fd261eb32a7969d934a14a":[6,0,4,278],
+"boot_8php.html#a8905fde0a5b7882bdc083b20d9b34701":[6,0,4,196],
"boot_8php.html#a899d24fd074594ceebbf72e1feff335f":[6,0,4,16],
-"boot_8php.html#a8a60cc38bb567765fd926fef70205f16":[6,0,4,103],
-"boot_8php.html#a8bb0395933b5e886f086f6a2fb0bfa55":[6,0,4,243],
-"boot_8php.html#a8c9dce0ef27b35397e29298eb966f7f7":[6,0,4,135],
-"boot_8php.html#a8da836617174eed9fc2ac8054125354b":[6,0,4,129],
-"boot_8php.html#a8df201788c9dd0ca91384e3a14c08bce":[6,0,4,250],
-"boot_8php.html#a8fdcc4ffb365a3267bd02ce8a8d466d6":[6,0,4,289],
-"boot_8php.html#a9255af5ae9c887520091ea04763c1a88":[6,0,4,32],
+"boot_8php.html#a8a60cc38bb567765fd926fef70205f16":[6,0,4,106],
+"boot_8php.html#a8bb0395933b5e886f086f6a2fb0bfa55":[6,0,4,249],
+"boot_8php.html#a8c9a11c47394244cbe18cd75b9726d5f":[6,0,4,101],
+"boot_8php.html#a8c9dce0ef27b35397e29298eb966f7f7":[6,0,4,138],
+"boot_8php.html#a8da836617174eed9fc2ac8054125354b":[6,0,4,132],
+"boot_8php.html#a8df201788c9dd0ca91384e3a14c08bce":[6,0,4,257],
+"boot_8php.html#a8fdcc4ffb365a3267bd02ce8a8d466d6":[6,0,4,307],
+"boot_8php.html#a921c55b9fa59a327a5f0e07fa1ccb2e0":[6,0,4,252],
+"boot_8php.html#a9255af5ae9c887520091ea04763c1a88":[6,0,4,33],
"boot_8php.html#a926cad0b3d8b9d9ee5da1898fc063ba3":[6,0,4,11],
-"boot_8php.html#a93823d15ae07548a4c49de88d325cd26":[6,0,4,156],
-"boot_8php.html#a939de9a99278f4fd7dcd0ee67f243f08":[6,0,4,133],
-"boot_8php.html#a949116d9a295b214293006c060ca4848":[6,0,4,131],
-"boot_8php.html#a9690d73434125ce594a1f5e7c2a4f7c0":[6,0,4,284],
-"boot_8php.html#a96ad56755a21e1361dbd7bf93c9e7ff4":[6,0,4,255],
+"boot_8php.html#a93823d15ae07548a4c49de88d325cd26":[6,0,4,160],
+"boot_8php.html#a939de9a99278f4fd7dcd0ee67f243f08":[6,0,4,136],
+"boot_8php.html#a949116d9a295b214293006c060ca4848":[6,0,4,134],
+"boot_8php.html#a9690d73434125ce594a1f5e7c2a4f7c0":[6,0,4,291],
+"boot_8php.html#a96ad56755a21e1361dbd7bf93c9e7ff4":[6,0,4,262],
"boot_8php.html#a97769915c9f14adc4f8ab1ea2cecfd90":[6,0,4,18],
-"boot_8php.html#a981d46380f9f23c308bac1f9cb00dc5b":[6,0,4,205],
-"boot_8php.html#a99a4a17cb644e7e6826ea07ecaf09777":[6,0,4,244],
-"boot_8php.html#a9c80420e5a063a4a87ce4831f086134d":[6,0,4,51],
+"boot_8php.html#a981d46380f9f23c308bac1f9cb00dc5b":[6,0,4,210],
+"boot_8php.html#a997614f25e58f8313641e1eb0109fd10":[6,0,4,301],
+"boot_8php.html#a99a4a17cb644e7e6826ea07ecaf09777":[6,0,4,250],
+"boot_8php.html#a9c80420e5a063a4a87ce4831f086134d":[6,0,4,52],
"boot_8php.html#a9cbab4ee728e9a8b4ce952bae643044e":[6,0,4,5],
-"boot_8php.html#a9cc986b4f9dd6558cbb2e25aadbfd964":[6,0,4,235],
-"boot_8php.html#a9d01ef178b72b145016cca1393415bc4":[6,0,4,206],
-"boot_8php.html#a9ea1290e00c6d40684892047f2c778a9":[6,0,4,287],
-"boot_8php.html#a9eeb8989272d5ff804a616898bb13659":[6,0,4,274],
-"boot_8php.html#a9ff652e5cb83cd11cbb0350844e7b28f":[6,0,4,234],
-"boot_8php.html#aa17a4f9c63f5cbc5c06f1066b6aebc42":[6,0,4,194],
+"boot_8php.html#a9cc986b4f9dd6558cbb2e25aadbfd964":[6,0,4,241],
+"boot_8php.html#a9d01ef178b72b145016cca1393415bc4":[6,0,4,211],
+"boot_8php.html#a9ea1290e00c6d40684892047f2c778a9":[6,0,4,305],
+"boot_8php.html#a9eeb8989272d5ff804a616898bb13659":[6,0,4,281],
+"boot_8php.html#a9f8a2938ddd9ee2867e6f8ce77b61b2f":[6,0,4,293],
+"boot_8php.html#a9ff652e5cb83cd11cbb0350844e7b28f":[6,0,4,240],
+"boot_8php.html#aa17a4f9c63f5cbc5c06f1066b6aebc42":[6,0,4,199],
"boot_8php.html#aa1e828bbbcba170265eb2668d8daf42e":[6,0,4,26],
-"boot_8php.html#aa275653b9c87abc7391bb8040c1c2de9":[6,0,4,213],
-"boot_8php.html#aa3425e2de85b08f7041656d3a8502cb6":[6,0,4,46],
-"boot_8php.html#aa3679df31c8dad1b71816b0322d5baff":[6,0,4,163],
+"boot_8php.html#aa275653b9c87abc7391bb8040c1c2de9":[6,0,4,218],
+"boot_8php.html#aa3425e2de85b08f7041656d3a8502cb6":[6,0,4,47],
+"boot_8php.html#aa3679df31c8dad1b71816b0322d5baff":[6,0,4,167],
"boot_8php.html#aa4221641e5c21db69fa52c426b9017f5":[6,0,4,9],
-"boot_8php.html#aa544a6c078130d0967a1f4ed8ce0a2d2":[6,0,4,160],
-"boot_8php.html#aa589421267f0c2f0d643f727792cce35":[6,0,4,118],
-"boot_8php.html#aa74438cf71e48e37bf7b440b94243985":[6,0,4,91],
-"boot_8php.html#aa8a2b61e70900139d1ca28e46f1da49d":[6,0,4,100],
-"boot_8php.html#aa9244fc9cc221980c07a20cc534111be":[6,0,4,240],
-"boot_8php.html#aad33b494084f729b6ee3b0bc457718a1":[6,0,4,146],
-"boot_8php.html#aae6c941bde5fd6fce07e51dba7326ead":[6,0,4,222],
-"boot_8php.html#aaf9b76832ee5f85e56466af162ba8a14":[6,0,4,71],
-"boot_8php.html#ab21fb0f3e6b962419955c6fc7f26734f":[6,0,4,197],
-"boot_8php.html#ab28dc518fa90b6f617dd8c564eb4f35f":[6,0,4,123],
-"boot_8php.html#ab2d0e8a9b81ee548ef2ce8e4560da2f6":[6,0,4,224],
-"boot_8php.html#ab346a2ece14993861f3e4206befa94f0":[6,0,4,34],
-"boot_8php.html#ab3920c2f3cd64802c0b7ff625c3b2ea8":[6,0,4,218],
-"boot_8php.html#ab4bc9c50ecc927b92d519e36562b0df0":[6,0,4,247],
-"boot_8php.html#ab4bddb41a0cf407178ec5278b950c393":[6,0,4,190],
-"boot_8php.html#ab51965fabe54dc031e9a0ce1142ee83e":[6,0,4,229],
-"boot_8php.html#ab54b24cc302e1a42a67a49d788b6b764":[6,0,4,117],
-"boot_8php.html#ab55b16ae7fc19fafe5afaedd49163bbf":[6,0,4,148],
-"boot_8php.html#ab5ddbe69d3d03acd06e1fb281488cb78":[6,0,4,58],
-"boot_8php.html#ab724491497ab2618b23a01d5da60aec0":[6,0,4,208],
+"boot_8php.html#aa544a6c078130d0967a1f4ed8ce0a2d2":[6,0,4,164],
+"boot_8php.html#aa589421267f0c2f0d643f727792cce35":[6,0,4,121],
+"boot_8php.html#aa74438cf71e48e37bf7b440b94243985":[6,0,4,92],
+"boot_8php.html#aa8a2b61e70900139d1ca28e46f1da49d":[6,0,4,103],
+"boot_8php.html#aa9244fc9cc221980c07a20cc534111be":[6,0,4,246],
+"boot_8php.html#aad33b494084f729b6ee3b0bc457718a1":[6,0,4,150],
+"boot_8php.html#aae6c941bde5fd6fce07e51dba7326ead":[6,0,4,228],
+"boot_8php.html#aaf9b76832ee5f85e56466af162ba8a14":[6,0,4,72],
+"boot_8php.html#ab21fb0f3e6b962419955c6fc7f26734f":[6,0,4,202],
+"boot_8php.html#ab28dc518fa90b6f617dd8c564eb4f35f":[6,0,4,126],
+"boot_8php.html#ab2d0e8a9b81ee548ef2ce8e4560da2f6":[6,0,4,230],
+"boot_8php.html#ab346a2ece14993861f3e4206befa94f0":[6,0,4,35],
+"boot_8php.html#ab3920c2f3cd64802c0b7ff625c3b2ea8":[6,0,4,224],
+"boot_8php.html#ab4bc9c50ecc927b92d519e36562b0df0":[6,0,4,254],
+"boot_8php.html#ab4bddb41a0cf407178ec5278b950c393":[6,0,4,195],
+"boot_8php.html#ab51965fabe54dc031e9a0ce1142ee83e":[6,0,4,235],
+"boot_8php.html#ab54b24cc302e1a42a67a49d788b6b764":[6,0,4,120],
+"boot_8php.html#ab55b16ae7fc19fafe5afaedd49163bbf":[6,0,4,152],
+"boot_8php.html#ab5ddbe69d3d03acd06e1fb281488cb78":[6,0,4,59],
+"boot_8php.html#ab724491497ab2618b23a01d5da60aec0":[6,0,4,213],
"boot_8php.html#ab79b8b4555cae20d03f8200666d89d63":[6,0,4,7],
-"boot_8php.html#ab7d65a7e7417825a4db62906bb600729":[6,0,4,102],
-"boot_8php.html#ab9dca53455cd157d3c6ba2bdecdbd22d":[6,0,4,283],
-"boot_8php.html#aba208673515cbb8a55e5fa4a1da99fda":[6,0,4,39],
-"boot_8php.html#abbf5ac24eb8aeedb862f618ee0d21e86":[6,0,4,251],
+"boot_8php.html#ab7d65a7e7417825a4db62906bb600729":[6,0,4,105],
+"boot_8php.html#ab9dca53455cd157d3c6ba2bdecdbd22d":[6,0,4,290],
+"boot_8php.html#aba208673515cbb8a55e5fa4a1da99fda":[6,0,4,40],
+"boot_8php.html#abbf5ac24eb8aeedb862f618ee0d21e86":[6,0,4,258],
"boot_8php.html#abc0a90a1a77f5b668aa7e4b57d1776a7":[6,0,4,3],
-"boot_8php.html#abd7bb40da9cc073297e49736b338ca07":[6,0,4,278],
-"boot_8php.html#abdcdfc873ace4e0902177bad934de0c0":[6,0,4,69],
-"boot_8php.html#abeb4d86e17cefa8584f1244e2183b0e1":[6,0,4,120],
-"boot_8php.html#abedd940e664017c61b48c6efa31d0cb8":[6,0,4,101],
-"boot_8php.html#ac01230c7655e0705b2e99c9bc03c4450":[6,0,4,130],
+"boot_8php.html#abd7bb40da9cc073297e49736b338ca07":[6,0,4,285],
+"boot_8php.html#abdcdfc873ace4e0902177bad934de0c0":[6,0,4,70],
+"boot_8php.html#abeb4d86e17cefa8584f1244e2183b0e1":[6,0,4,123],
+"boot_8php.html#abedd940e664017c61b48c6efa31d0cb8":[6,0,4,104],
+"boot_8php.html#ac01230c7655e0705b2e99c9bc03c4450":[6,0,4,133],
"boot_8php.html#ac17fc8a416ea79e9d5cb4dc9a8ff8c5c":[6,0,4,24],
-"boot_8php.html#ac195fc9003298923ea81f144388e24b1":[6,0,4,176],
-"boot_8php.html#ac43182e0d8bae7576a30b603774974f8":[6,0,4,249],
-"boot_8php.html#ac59a18a4838710d6c2de37aed6b21f03":[6,0,4,99],
+"boot_8php.html#ac195fc9003298923ea81f144388e24b1":[6,0,4,180],
+"boot_8php.html#ac43182e0d8bae7576a30b603774974f8":[6,0,4,256],
+"boot_8php.html#ac4d1c93dabcace711ffb4931204c336b":[6,0,4,143],
+"boot_8php.html#ac59a18a4838710d6c2de37aed6b21f03":[6,0,4,100],
"boot_8php.html#ac5e74f899f6e98d8e91b14ba1c08bc08":[6,0,4,27],
-"boot_8php.html#ac608a34f3bc180e7724192e0fd31f9b0":[6,0,4,37],
-"boot_8php.html#ac8400313df2c831653f9036f71ebd86d":[6,0,4,59],
-"boot_8php.html#ac86615ddc0763a00f5311c90e991730c":[6,0,4,285],
-"boot_8php.html#ac890557fedc5b5a3b1d996249b1e1a20":[6,0,4,126],
-"boot_8php.html#ac99fc4d040764eac1736bec6973556fe":[6,0,4,128],
-"boot_8php.html#aca08bc4f1554ba877500f6abcc99e1e8":[6,0,4,204],
-"boot_8php.html#aca47505b8732177f52bb2d647eb2741c":[6,0,4,36],
+"boot_8php.html#ac608a34f3bc180e7724192e0fd31f9b0":[6,0,4,38],
+"boot_8php.html#ac8400313df2c831653f9036f71ebd86d":[6,0,4,60],
+"boot_8php.html#ac86615ddc0763a00f5311c90e991730c":[6,0,4,292],
+"boot_8php.html#ac890557fedc5b5a3b1d996249b1e1a20":[6,0,4,129],
+"boot_8php.html#ac89396b9144391acd08d6d0f9b332220":[6,0,4,294],
+"boot_8php.html#ac99fc4d040764eac1736bec6973556fe":[6,0,4,131],
+"boot_8php.html#aca08bc4f1554ba877500f6abcc99e1e8":[6,0,4,209],
+"boot_8php.html#aca47505b8732177f52bb2d647eb2741c":[6,0,4,37],
"boot_8php.html#aca5e42678e178c6b9034610d66666fd7":[6,0,4,13],
"boot_8php.html#acc4e0c910af066148b810e5fde55fff1":[6,0,4,8],
-"boot_8php.html#acca19aae62e1a6951a856b945de20d67":[6,0,4,179],
-"boot_8php.html#accd6f36cc9f40225cbd720e4d12a7c6e":[6,0,4,286],
-"boot_8php.html#acd877c405b06b348b37b6f7e62a211e9":[6,0,4,236],
-"boot_8php.html#ace6d70ac290397ddd40e561fd0831858":[6,0,4,270],
-"boot_8php.html#ace83842dbeb84f7ed9ac59a9f57a7c32":[6,0,4,211],
-"boot_8php.html#aced60c7285192e80b7c4757e45a7f1e3":[6,0,4,68],
-"boot_8php.html#ad0876e837cf3fad8a26417e315f6e2c8":[6,0,4,159],
-"boot_8php.html#ad11f30a6590d3d77f0c5e1e3909af8f5":[6,0,4,169],
+"boot_8php.html#acca19aae62e1a6951a856b945de20d67":[6,0,4,183],
+"boot_8php.html#accd6f36cc9f40225cbd720e4d12a7c6e":[6,0,4,304],
+"boot_8php.html#acd877c405b06b348b37b6f7e62a211e9":[6,0,4,242],
+"boot_8php.html#ace6d70ac290397ddd40e561fd0831858":[6,0,4,277],
+"boot_8php.html#ace83842dbeb84f7ed9ac59a9f57a7c32":[6,0,4,216],
+"boot_8php.html#aced60c7285192e80b7c4757e45a7f1e3":[6,0,4,69],
+"boot_8php.html#ad0876e837cf3fad8a26417e315f6e2c8":[6,0,4,163],
+"boot_8php.html#ad11f30a6590d3d77f0c5e1e3909af8f5":[6,0,4,173],
"boot_8php.html#ad206598b909e8eb67eb0e0bb5ef69c13":[6,0,4,10],
-"boot_8php.html#ad302cb26b838898d475f57f61b0fcc9f":[6,0,4,75],
-"boot_8php.html#ad34c1547020a305915bcc39707744690":[6,0,4,90],
-"boot_8php.html#ad4c9dc2c8a82e8f52b7404c1655eab44":[6,0,4,30],
-"boot_8php.html#ad789aef3cb95fc1eb36be7c4283d0137":[6,0,4,231],
-"boot_8php.html#ad8887b49bbb02dd30b4eb9f6c7773c63":[6,0,4,259],
-"boot_8php.html#ad88a70ec62e08d590123d3697dfe64d5":[6,0,4,253],
-"boot_8php.html#ada72d88ae39a7e3b45baea201cb49a29":[6,0,4,96],
-"boot_8php.html#adaeb4f590c56326b2dca3b19f31b6272":[6,0,4,143],
-"boot_8php.html#adca48aee78465ae3064ca4432c0d87b5":[6,0,4,262],
-"boot_8php.html#add517a0958ac684792c62142a3877f81":[6,0,4,40],
+"boot_8php.html#ad302cb26b838898d475f57f61b0fcc9f":[6,0,4,76],
+"boot_8php.html#ad34c1547020a305915bcc39707744690":[6,0,4,91],
+"boot_8php.html#ad4c9dc2c8a82e8f52b7404c1655eab44":[6,0,4,31],
+"boot_8php.html#ad789aef3cb95fc1eb36be7c4283d0137":[6,0,4,237],
+"boot_8php.html#ad8887b49bbb02dd30b4eb9f6c7773c63":[6,0,4,266],
+"boot_8php.html#ad88a70ec62e08d590123d3697dfe64d5":[6,0,4,260],
+"boot_8php.html#ad94aca4c260b8a892397786201dc4664":[6,0,4,296],
+"boot_8php.html#ada72d88ae39a7e3b45baea201cb49a29":[6,0,4,97],
+"boot_8php.html#adaeb4f590c56326b2dca3b19f31b6272":[6,0,4,147],
+"boot_8php.html#adca48aee78465ae3064ca4432c0d87b5":[6,0,4,269],
+"boot_8php.html#add517a0958ac684792c62142a3877f81":[6,0,4,41],
"boot_8php.html#adfb2fc7be5a4226c0a8e24131da9d498":[6,0,4,23],
-"boot_8php.html#ae0d9527117cd87dcba11986047ae336e":[6,0,4,44],
-"boot_8php.html#ae0da3ca0f54d75d22c71e007331f8d06":[6,0,4,108],
-"boot_8php.html#ae37444eaa42705185080ccf3e670cbc2":[6,0,4,269],
-"boot_8php.html#ae3cef7b63e25e7bafea3fcf6b99fad0e":[6,0,4,187],
-"boot_8php.html#ae4861de36017fe399c1839f778bad9f5":[6,0,4,162],
-"boot_8php.html#ae94f7c7c0909629a75aed1c41f10bc95":[6,0,4,195],
-"boot_8php.html#aea392cb26ed617f3a8cde648385b5df0":[6,0,4,282],
+"boot_8php.html#ae09767b94688657978ff9366ec63684b":[6,0,4,302],
+"boot_8php.html#ae0d9527117cd87dcba11986047ae336e":[6,0,4,45],
+"boot_8php.html#ae0da3ca0f54d75d22c71e007331f8d06":[6,0,4,111],
+"boot_8php.html#ae37444eaa42705185080ccf3e670cbc2":[6,0,4,276],
+"boot_8php.html#ae3cef7b63e25e7bafea3fcf6b99fad0e":[6,0,4,192],
+"boot_8php.html#ae4861de36017fe399c1839f778bad9f5":[6,0,4,166],
+"boot_8php.html#ae94f7c7c0909629a75aed1c41f10bc95":[6,0,4,200],
+"boot_8php.html#ae97836b0547953be182a2334c9c91d3c":[6,0,4,39],
+"boot_8php.html#aea392cb26ed617f3a8cde648385b5df0":[6,0,4,289],
"boot_8php.html#aea7fc57a4d8e9dcb42f2601b0b9b761c":[6,0,4,28],
-"boot_8php.html#aead84fa27d7516b855220fe004964a45":[6,0,4,275],
-"boot_8php.html#aeb1039302affcbe7e8872c01c08c88f8":[6,0,4,53],
-"boot_8php.html#aec36f8fcd4cb14a52934590b3d6666b4":[6,0,4,233],
-"boot_8php.html#aecaa1b6945b317ba8f1daf4af2aed8e6":[6,0,4,263],
-"boot_8php.html#aed0dfb35f7dd00dc9e4f868ea7f7ff53":[6,0,4,170],
-"boot_8php.html#aedfb9501ed408278667995524e0d15cf":[6,0,4,104],
-"boot_8php.html#aee324eca9de4e0fedf01ab5f92e27c67":[6,0,4,182],
-"boot_8php.html#aef4b6c558c68c88c10f13c5a00c20e3d":[6,0,4,196],
-"boot_8php.html#aefba06f1c0842036329033e7567ecf6d":[6,0,4,145],
-"boot_8php.html#aefe573c3c7b0d37fbff264bbae79d673":[6,0,4,115],
-"boot_8php.html#aefecf8599036df7f1b95d6820e0e2fa4":[6,0,4,31],
-"boot_8php.html#af33d1b2e98a1e21af672005525d46dfe":[6,0,4,266],
-"boot_8php.html#af3905ea8f8568d0236db13fca40514e3":[6,0,4,189],
-"boot_8php.html#af3a4271630aabd8be592213f925d6a36":[6,0,4,63],
-"boot_8php.html#af3bdfc20979c16f15bb9c60446a480f9":[6,0,4,54],
-"boot_8php.html#af3ff14985bffbd951a6ea356b7ec3007":[6,0,4,238],
-"boot_8php.html#af489d0c3166551b93e63a79ff2c9be35":[6,0,4,150],
-"boot_8php.html#af6937db5f581d006bf4a5c3d9c7e0461":[6,0,4,209],
-"boot_8php.html#af6b3de425e5849c73370a484c44607a3":[6,0,4,168],
-"boot_8php.html#af6f6f6f40139f12fc09ec47373b30919":[6,0,4,93],
-"boot_8php.html#af86c651547aa8f9e549ee40a09455549":[6,0,4,261],
-"boot_8php.html#af8c0cb0744c9a6b5d6d3baafb1f1e71d":[6,0,4,201],
-"boot_8php.html#afaf93b7026f784b113b4f8921745891e":[6,0,4,183],
-"boot_8php.html#afb97615e985a013799839b68b99018d7":[6,0,4,267],
-"boot_8php.html#afbb1fe1b2c8c730ec8e08da93b6512c4":[6,0,4,50],
-"boot_8php.html#afe084c30a1810c10442edb4fbcbc0086":[6,0,4,85],
-"boot_8php.html#afe63ae69ba55299f813766e54df06ede":[6,0,4,154],
+"boot_8php.html#aead84fa27d7516b855220fe004964a45":[6,0,4,282],
+"boot_8php.html#aeb1039302affcbe7e8872c01c08c88f8":[6,0,4,54],
+"boot_8php.html#aec36f8fcd4cb14a52934590b3d6666b4":[6,0,4,239],
+"boot_8php.html#aecaa1b6945b317ba8f1daf4af2aed8e6":[6,0,4,270],
+"boot_8php.html#aed0dfb35f7dd00dc9e4f868ea7f7ff53":[6,0,4,174],
+"boot_8php.html#aedfb9501ed408278667995524e0d15cf":[6,0,4,107],
+"boot_8php.html#aee324eca9de4e0fedf01ab5f92e27c67":[6,0,4,186],
+"boot_8php.html#aef4b6c558c68c88c10f13c5a00c20e3d":[6,0,4,201],
+"boot_8php.html#aefba06f1c0842036329033e7567ecf6d":[6,0,4,149],
+"boot_8php.html#aefe573c3c7b0d37fbff264bbae79d673":[6,0,4,118],
+"boot_8php.html#aefecf8599036df7f1b95d6820e0e2fa4":[6,0,4,32],
+"boot_8php.html#af33d1b2e98a1e21af672005525d46dfe":[6,0,4,273],
+"boot_8php.html#af3905ea8f8568d0236db13fca40514e3":[6,0,4,194],
+"boot_8php.html#af3a4271630aabd8be592213f925d6a36":[6,0,4,64],
+"boot_8php.html#af3bdfc20979c16f15bb9c60446a480f9":[6,0,4,55],
+"boot_8php.html#af3ff14985bffbd951a6ea356b7ec3007":[6,0,4,244],
+"boot_8php.html#af489d0c3166551b93e63a79ff2c9be35":[6,0,4,154],
+"boot_8php.html#af6937db5f581d006bf4a5c3d9c7e0461":[6,0,4,214],
+"boot_8php.html#af6b3de425e5849c73370a484c44607a3":[6,0,4,172],
+"boot_8php.html#af6f6f6f40139f12fc09ec47373b30919":[6,0,4,94],
+"boot_8php.html#af86c651547aa8f9e549ee40a09455549":[6,0,4,268],
+"boot_8php.html#af8c0cb0744c9a6b5d6d3baafb1f1e71d":[6,0,4,206],
+"boot_8php.html#afaf93b7026f784b113b4f8921745891e":[6,0,4,187],
+"boot_8php.html#afb97615e985a013799839b68b99018d7":[6,0,4,274],
+"boot_8php.html#afbb1fe1b2c8c730ec8e08da93b6512c4":[6,0,4,51],
+"boot_8php.html#afbb21ecccac9819aa65397e816868a5f":[6,0,4,222],
+"boot_8php.html#afe084c30a1810c10442edb4fbcbc0086":[6,0,4,86],
+"boot_8php.html#afe63ae69ba55299f813766e54df06ede":[6,0,4,158],
"boot_8php.html#afe88b920aa285982edb817a0dd44eb37":[6,0,4,14],
-"boot_8php.html#afef254290febac854c85fc698d9483a6":[6,0,4,292],
-"boot_8php.html#aff210e8403dd72368522b17fb6e5d4e7":[6,0,4,227],
+"boot_8php.html#afef254290febac854c85fc698d9483a6":[6,0,4,311],
+"boot_8php.html#aff210e8403dd72368522b17fb6e5d4e7":[6,0,4,233],
"boxy_8php.html":[6,0,3,1,3,1,0],
-"cache_8php.html":[6,0,0,13],
-"channel_8php.html":[6,0,1,12],
-"channel_8php.html#a9c6a6179e0e626398ebecc6151905ef1":[6,0,1,12,0],
-"channel_8php.html#ac7c8c7845741baadf87fae6bc279f3dc":[6,0,1,12,1],
-"chanview_8php.html":[6,0,1,13],
-"chanview_8php.html#a4192c6da888c8c1165851acf9ad4cb8b":[6,0,1,13,0],
-"chatsvc_8php.html":[6,0,1,15],
-"chatsvc_8php.html#a28d248b056fa47452e28ed01130e9116":[6,0,1,15,1],
-"chatsvc_8php.html#a7032784215e1f6747cf385a6598770f9":[6,0,1,15,0],
-"chatsvc_8php.html#a7c9a9b9c24a2b02eed8efd6b09632d03":[6,0,1,15,2],
+"cache_8php.html":[6,0,0,15],
+"channel_8php.html":[6,0,1,11],
+"channel_8php.html#a9c6a6179e0e626398ebecc6151905ef1":[6,0,1,11,0],
+"channel_8php.html#ac7c8c7845741baadf87fae6bc279f3dc":[6,0,1,11,1],
+"chanview_8php.html":[6,0,1,12],
+"chanview_8php.html#a4192c6da888c8c1165851acf9ad4cb8b":[6,0,1,12,0],
+"chatsvc_8php.html":[6,0,1,14],
+"chatsvc_8php.html#a28d248b056fa47452e28ed01130e9116":[6,0,1,14,1],
+"chatsvc_8php.html#a7032784215e1f6747cf385a6598770f9":[6,0,1,14,0],
+"chatsvc_8php.html#a7c9a9b9c24a2b02eed8efd6b09632d03":[6,0,1,14,2],
"choklet_8php.html":[6,0,3,0,0],
-"classApp.html":[5,0,5],
-"classApp.html#a037049cba88dfc6ff94f4b5b779e3fd3":[5,0,5,56],
-"classApp.html#a050b0696118da47e8b30859ad1a2c149":[5,0,5,40],
-"classApp.html#a084e03c77686d8c13390fef3f7428a2b":[5,0,5,5],
-"classApp.html#a08bc87aff64f39fbc084e9d6545cee4d":[5,0,5,2],
-"classApp.html#a08c24d6a6fc52fcc784b0f765f13b820":[5,0,5,75],
-"classApp.html#a08f0537964d98958d218066364cff785":[5,0,5,1],
-"classApp.html#a0ce85be198e46570366cb3344f3c55b8":[5,0,5,50],
-"classApp.html#a11e24b3ed9b33ffee7dd41d110b4366d":[5,0,5,60],
-"classApp.html#a123b903dfe5d3488cc68db3471d36fd2":[5,0,5,30],
-"classApp.html#a13710907ef62554a0b4dd8a5eaa2eb11":[5,0,5,79],
-"classApp.html#a14bd4b1c29f3aff371fe5d4cb11aeea3":[5,0,5,32],
-"classApp.html#a1936f2afce0dc0d1bbed15ae1f2ee81a":[5,0,5,73],
-"classApp.html#a1a297e70b3667b83f4460aa7ed9f5d6f":[5,0,5,61],
-"classApp.html#a1ad3bb1b68439b3b7cbe630918e618d2":[5,0,5,8],
-"classApp.html#a20d1890cc16b22ba79eeb0cbf2f719f7":[5,0,5,29],
-"classApp.html#a230e975296cf164da2fee35ef720964f":[5,0,5,33],
-"classApp.html#a244b2d53b21be269aad2269d23192f95":[5,0,5,77],
-"classApp.html#a256360c9184fed6d7556e0bc0a835d7f":[5,0,5,48],
-"classApp.html#a2e82da4aecfc2017a8d1d332ca501f9f":[5,0,5,76],
-"classApp.html#a2eb832a8577dee7d40b93abdf6d1d35a":[5,0,5,12],
-"classApp.html#a330410a288f3393d53772f5e98f857ea":[5,0,5,51],
-"classApp.html#a33a8e90b60ec4438f6fbf299d0f6839c":[5,0,5,66],
-"classApp.html#a344d2b7dc2f276648d521aee4da1731c":[5,0,5,23],
-"classApp.html#a3694aa1907aa103a2adbc71f926f0fa0":[5,0,5,55],
-"classApp.html#a3d84af5e42082098672531cd1a618853":[5,0,5,22],
-"classApp.html#a4659785d13e4bac0bed50dbb1b0d4299":[5,0,5,6],
-"classApp.html#a4776d9322edea17fae56afa5d01a323e":[5,0,5,24],
-"classApp.html#a4833bee2eae4ad1691a04fa19e11a766":[5,0,5,90],
-"classApp.html#a487332f8de40414ca1a54a4265570b70":[5,0,5,85],
-"classApp.html#a495ec082c2719314e536070ca1ce073d":[5,0,5,42],
-"classApp.html#a4b67935096f66d1f14b657399a8461ac":[5,0,5,68],
-"classApp.html#a4bdd7bfed62f50515fce652127bf481b":[5,0,5,25],
-"classApp.html#a4c7cfc62d39508086cf300dc2e39c4df":[5,0,5,59],
-"classApp.html#a4ffe529fb14389f7fedf5fdc5f722e7f":[5,0,5,67],
-"classApp.html#a5293a8543ba338dcf38cd4ff3bc5d4be":[5,0,5,9],
-"classApp.html#a557d7b779d8259027f4724ebf7b248dc":[5,0,5,28],
-"classApp.html#a560189f048d3db2f526841963cc43e97":[5,0,5,26],
-"classApp.html#a56b1a432c96aef8b1971f779c9d93c8c":[5,0,5,88],
-"classApp.html#a576ecb1c5b4a283221e6f2f0ec248251":[5,0,5,58],
-"classApp.html#a57d041fcc003d08c127dfa99a02bc192":[5,0,5,74],
-"classApp.html#a58ac598544892ff7c32890291b72635e":[5,0,5,62],
-"classApp.html#a59dd4b665c70e7dbd80682c014ff7145":[5,0,5,63],
-"classApp.html#a5c63eabdc7fdd8b6e3348980ec16a3ad":[5,0,5,3],
-"classApp.html#a5cfc098c061b7d765add58fd2ca97445":[5,0,5,39],
-"classApp.html#a5f64620473a9727a48ebe9cf6f335a98":[5,0,5,80],
-"classApp.html#a604d659d6977a99de42a160343e5289a":[5,0,5,4],
-"classApp.html#a61ca6e3af82071ea25ff2fd5dbcddae2":[5,0,5,45],
-"classApp.html#a622eace13f8fc9f4b5672a68e2bc4396":[5,0,5,7]
+"classApp.html":[5,0,6],
+"classApp.html#a037049cba88dfc6ff94f4b5b779e3fd3":[5,0,6,51],
+"classApp.html#a050b0696118da47e8b30859ad1a2c149":[5,0,6,38],
+"classApp.html#a084e03c77686d8c13390fef3f7428a2b":[5,0,6,5],
+"classApp.html#a08bc87aff64f39fbc084e9d6545cee4d":[5,0,6,2],
+"classApp.html#a08c24d6a6fc52fcc784b0f765f13b820":[5,0,6,71],
+"classApp.html#a08f0537964d98958d218066364cff785":[5,0,6,1],
+"classApp.html#a0ce85be198e46570366cb3344f3c55b8":[5,0,6,46],
+"classApp.html#a11e24b3ed9b33ffee7dd41d110b4366d":[5,0,6,56],
+"classApp.html#a123b903dfe5d3488cc68db3471d36fd2":[5,0,6,30],
+"classApp.html#a13710907ef62554a0b4dd8a5eaa2eb11":[5,0,6,75],
+"classApp.html#a14bd4b1c29f3aff371fe5d4cb11aeea3":[5,0,6,32],
+"classApp.html#a1936f2afce0dc0d1bbed15ae1f2ee81a":[5,0,6,69],
+"classApp.html#a1a297e70b3667b83f4460aa7ed9f5d6f":[5,0,6,57],
+"classApp.html#a1ad3bb1b68439b3b7cbe630918e618d2":[5,0,6,8],
+"classApp.html#a1f60d19d47021629faac7a0a6d917e94":[5,0,6,55],
+"classApp.html#a20d1890cc16b22ba79eeb0cbf2f719f7":[5,0,6,29],
+"classApp.html#a230e975296cf164da2fee35ef720964f":[5,0,6,33],
+"classApp.html#a244b2d53b21be269aad2269d23192f95":[5,0,6,73],
+"classApp.html#a2e82da4aecfc2017a8d1d332ca501f9f":[5,0,6,72],
+"classApp.html#a2eb832a8577dee7d40b93abdf6d1d35a":[5,0,6,12],
+"classApp.html#a33a8e90b60ec4438f6fbf299d0f6839c":[5,0,6,62],
+"classApp.html#a344d2b7dc2f276648d521aee4da1731c":[5,0,6,23],
+"classApp.html#a3694aa1907aa103a2adbc71f926f0fa0":[5,0,6,50],
+"classApp.html#a3d84af5e42082098672531cd1a618853":[5,0,6,22]
};
diff --git a/doc/html/navtreeindex2.js b/doc/html/navtreeindex2.js
index 02c78068c..9deea102a 100644
--- a/doc/html/navtreeindex2.js
+++ b/doc/html/navtreeindex2.js
@@ -1,253 +1,253 @@
var NAVTREEINDEX2 =
{
-"classApp.html#a6844aedad10e201b8c3d80cfc9e876d3":[5,0,5,81],
-"classApp.html#a6859a4848a5c0049b4134cc4b34228b6":[5,0,5,82],
-"classApp.html#a6bcb19cdc4907077da72864686d5a780":[5,0,5,69],
-"classApp.html#a6e4f0fbfa3cf6c11baebe22a03db6165":[5,0,5,65],
-"classApp.html#a6f55d087e1ff4710132c1b0863faa2ee":[5,0,5,47],
-"classApp.html#a764cc6cd7578132c21d2b4545de9301c":[5,0,5,83],
-"classApp.html#a78788f6e9d8b713b138f81e457c5cd08":[5,0,5,20],
-"classApp.html#a7954862f44f606b0ff83d4c74d15e792":[5,0,5,57],
-"classApp.html#a871898becd0697d778f36d9336253ae8":[5,0,5,14],
-"classApp.html#a8863703a0305eaa45eb970dbd2046291":[5,0,5,16],
-"classApp.html#a89e9feb2bfb5253883a9720beaffe876":[5,0,5,21],
-"classApp.html#a91fd3c8b89016113b05f3be24805ccff":[5,0,5,87],
-"classApp.html#a94a1ed2dc493c58612d17035b74ae736":[5,0,5,31],
-"classApp.html#a98ef4cfd36693a3457c879b76bc6d694":[5,0,5,44],
-"classApp.html#a9bf62f8e39585c0aa48fcffc3bf3484d":[5,0,5,64],
-"classApp.html#aa5a87c46ab3fee21362c466bf78042ef":[5,0,5,91],
-"classApp.html#aab23c59172310fd30f2d60dc039d3eea":[5,0,5,13],
-"classApp.html#aab4a685d15a363bb1d7edbbc20bfb94e":[5,0,5,38],
-"classApp.html#ab35b01a366a2ea95725e97af278f87ab":[5,0,5,86],
-"classApp.html#ab3da757abe5cb45bf88f07cc51a73b58":[5,0,5,35],
-"classApp.html#ab47de68fa39806d1fb0976407e188b77":[5,0,5,71],
-"classApp.html#abe0e4fa91097f7a6588e1213a834121c":[5,0,5,37],
-"classApp.html#abea5a4f77dcd53c928dc4eed86616637":[5,0,5,19],
-"classApp.html#abf46a653d8499e7c253cc1be894a6d83":[5,0,5,17],
-"classApp.html#ac1a8b2cd40609b231a560201a08852ba":[5,0,5,52],
-"classApp.html#ac1d80a14492acc932715d54567d8a589":[5,0,5,46],
-"classApp.html#ac6e6b1c7d6df408580ff79977fcfa656":[5,0,5,54],
-"classApp.html#ac73dc90e4764497e2f1b7e6612c8fb88":[5,0,5,43],
-"classApp.html#acad5896b7a79ae31433ad8f89606c728":[5,0,5,70],
-"classApp.html#acb27e607fe4c82603444676e25c36b70":[5,0,5,11],
-"classApp.html#ad082d63acc078e5bf23825a03bdd6a76":[5,0,5,78],
-"classApp.html#ad1c8eb91a6fd470b94f34b7fdad3a2d0":[5,0,5,41],
-"classApp.html#ad5175536561021548ae8188e24c7b80c":[5,0,5,36],
-"classApp.html#adb060d5c7f35a521ec7ec0effbe08097":[5,0,5,27],
-"classApp.html#adb5a4bb657881e553978ff390babd01f":[5,0,5,10],
-"classApp.html#adf2aaf95b062736a6fd5fc70fadf80e8":[5,0,5,89],
-"classApp.html#ae3f47830543d0d902f66913def8db66b":[5,0,5,53],
-"classApp.html#ae9f96338f32187d308b67b980eea0008":[5,0,5,72],
-"classApp.html#aeb1fe1c8ad9aa639909bd183ce578536":[5,0,5,18],
-"classApp.html#aeca29fd4f7192ca07369b3c598c36e67":[5,0,5,84],
-"classApp.html#af17df107f2216ddf5ad2a7e0f2ba2166":[5,0,5,15],
-"classApp.html#af5007c42a693afd9c4899c243b2e1363":[5,0,5,49],
-"classApp.html#af58db526040829b1c8bd95561b329262":[5,0,5,34],
-"classApp.html#af6d39f63fb7116bbeb04e51696f99474":[5,0,5,0],
-"classBaseObject.html":[5,0,6],
-"classBaseObject.html#ac43f10e69ce80c78e4870636250fc8a2":[5,0,6,0],
-"classCache.html":[5,0,7],
-"classConversation.html":[5,0,8],
-"classConversation.html#a2a96b7a6573ae53db861624659e831cb":[5,0,8,6],
-"classConversation.html#a2f12724ef0244e9049fe1bb9641b516d":[5,0,8,19],
-"classConversation.html#a41f4a549e6a99f98935c4742addd22c8":[5,0,8,20],
-"classConversation.html#a4aab60bb39fa6761b6cacdc8d9da2901":[5,0,8,2],
-"classConversation.html#a4cff75d8c46b517e7133e4d0da6fc1c8":[5,0,8,7],
-"classConversation.html#a5879199008b96bee7550b576d614e1c1":[5,0,8,10],
-"classConversation.html#a5b6adbb2fe24f0f53d6c22660dff91b2":[5,0,8,17],
-"classConversation.html#a5effe8ad3007e01333df44b81432b813":[5,0,8,5],
-"classConversation.html#a66f121ca4026246f86a732e5faa0682c":[5,0,8,11],
-"classConversation.html#a8335cdd43f1836e3c255638e61a09e16":[5,0,8,1],
-"classConversation.html#a8748445aa26047ebed5141f3c3cbc244":[5,0,8,16],
-"classConversation.html#a87a0d704d5f2b1a008cc2e9ce06a1bcd":[5,0,8,3],
-"classConversation.html#a8898bddc1e8990e81dab9a13a532cc93":[5,0,8,12],
-"classConversation.html#a8b47c92b69459d461ea3cc9aae9597a3":[5,0,8,8],
-"classConversation.html#aa95c1a62af38bdfba7add9549bec083b":[5,0,8,13],
-"classConversation.html#adf25ce023b69a166c63c6e84e02c136a":[5,0,8,9],
-"classConversation.html#ae3d4190142e12b57051f11f2911f77a0":[5,0,8,4],
-"classConversation.html#ae81221251307e315f566a11f921ce0a9":[5,0,8,21],
-"classConversation.html#ae9937f9e0f3d927acc2bed46cc72e9ae":[5,0,8,18],
-"classConversation.html#af84ea6ccd72214c9bb4c504461cc8b09":[5,0,8,0],
-"classConversation.html#afb03d1648dbfafe62caa1e30f32f2b1a":[5,0,8,15],
-"classConversation.html#afd4965d22a6e4bfea2f35e931b3273c6":[5,0,8,14],
-"classFKOAuth1.html":[5,0,13],
-"classFKOAuth1.html#a2b1dac2ed31fc6ef84668afdda8b263f":[5,0,13,1],
-"classFKOAuth1.html#a2f1276872329a6f0b704ccda1a4b9fa6":[5,0,13,0],
-"classFKOAuthDataStore.html":[5,0,14],
-"classFKOAuthDataStore.html#a1148d47b546350bf440bdd92792c5df1":[5,0,14,1],
-"classFKOAuthDataStore.html#a431b44d70e3da6a8256ab38f710e3050":[5,0,14,5],
-"classFKOAuthDataStore.html#a434882f03e3cdb171ed89e09e337e934":[5,0,14,4],
-"classFKOAuthDataStore.html#a4edfe2e77ecd2e16ff6b5eb516ed3599":[5,0,14,2],
-"classFKOAuthDataStore.html#a96f76387c3a93b0abe27a98013804bab":[5,0,14,3],
-"classFKOAuthDataStore.html#aa1a268be88ad3979bb4cc35bbb4dc819":[5,0,14,0],
-"classFriendicaSmarty.html":[5,0,15],
-"classFriendicaSmarty.html#a33fabbd4d6eef869df496adf357ae690":[5,0,15,2],
-"classFriendicaSmarty.html#a6a4d4281d6fa9be1d37a97b188ffe8c9":[5,0,15,1],
-"classFriendicaSmarty.html#af12091b920b95eeef1218cbc48066ca6":[5,0,15,0],
-"classFriendicaSmartyEngine.html":[5,0,16],
-"classFriendicaSmartyEngine.html#a35ec0ee828c36640ea25296bcb84a118":[5,0,16,1],
-"classFriendicaSmartyEngine.html#aab5994077fc3a64222e41b28e2bd8d88":[5,0,16,2],
-"classFriendicaSmartyEngine.html#ab7c305bd8c386c2944e4dc9136cea5b6":[5,0,16,0],
-"classFriendicaSmartyEngine.html#ad62f1181d2f02b54b46731ad2bd46db2":[5,0,16,3],
-"classItem.html":[5,0,17],
-"classItem.html#a007424e3e3171dcfb4312a02161da6cd":[5,0,17,34],
-"classItem.html#a078f95b4134ce3a1df344cf8d386f986":[5,0,17,37],
-"classItem.html#a0c301aaed2b7d682728d18db3a22afa3":[5,0,17,8],
-"classItem.html#a1a1e42877e6ac7af50286142ceb483d2":[5,0,17,39],
-"classItem.html#a1cb6aa8abdf7ea7daca647e40c8ea3a2":[5,0,17,42],
-"classItem.html#a248f45871ecfe82a08d1d4c0769b2eb2":[5,0,17,0],
-"classItem.html#a2ce70ef63f9f4d86a09c351678806925":[5,0,17,24],
-"classItem.html#a3ee7667c2ec6cd7657328e27848c0bdf":[5,0,17,6],
-"classItem.html#a428f448f89a8629055ea3294eb942aea":[5,0,17,16],
-"classItem.html#a4a123ae98987c1e30ecb15c4edf5a3b8":[5,0,17,44],
-"classItem.html#a4b92e3a9d6212c553aa2661489bd95d8":[5,0,17,15],
-"classItem.html#a5b2fafdca55aefeaa08993a5a60529f0":[5,0,17,20],
-"classItem.html#a5b561415861f5b89b0733aacfe0428d1":[5,0,17,40],
-"classItem.html#a5cfa6cf964f433a917a81cab079ff9d8":[5,0,17,43],
-"classItem.html#a5d29ddecc073151a65a8e2ea2f6e4189":[5,0,17,45],
-"classItem.html#a632185dd25c5caf277067c76230a4320":[5,0,17,4],
-"classItem.html#a67892aa23d19f4431bb2e5f43c74000e":[5,0,17,12],
-"classItem.html#a7f7bc059de377319282cb4ef4a828480":[5,0,17,41],
-"classItem.html#a80dcd0fb7673776c0967839d429c2a0f":[5,0,17,31],
-"classItem.html#a80dcd9d0f548c3ad550abe7e6981fb51":[5,0,17,1],
-"classItem.html#a904421c7a427411bb2ab473bca872f63":[5,0,17,7],
-"classItem.html#a90743c8348b13213275c223bb9333aa0":[5,0,17,32],
-"classItem.html#a9594df6014b0b6f45364ea7a34510130":[5,0,17,36],
-"classItem.html#a97c7feeea7f26a73176cb19faa455e12":[5,0,17,22],
-"classItem.html#a9890ff72662d5bba301d1f2dd8aec9d7":[5,0,17,28],
-"classItem.html#a9f2d219da712390f59012fc32a342074":[5,0,17,14],
-"classItem.html#aa0ee775ec94abccec6c798428835d001":[5,0,17,5],
-"classItem.html#aa1bd19fc8b5577078530265a7bf64123":[5,0,17,26],
-"classItem.html#aa2c221231ad0fc3720ccc1f00f0c6304":[5,0,17,33],
-"classItem.html#aa452b5bcd8dea12119b09212c615cb41":[5,0,17,25],
-"classItem.html#aa49e40f961dff66da32c5ae110e32993":[5,0,17,21],
-"classItem.html#aa541bc4290e51bfd688d6921bebabc73":[5,0,17,13],
-"classItem.html#aa8b1bbc4236890694635295e46d7fd72":[5,0,17,27],
-"classItem.html#aabf87ded59c25b5fe2b2296678e70509":[5,0,17,23],
-"classItem.html#aba23a0a9d89e316d2b343cc46d695d91":[5,0,17,17],
-"classItem.html#abcdb0ea9bcd1576bc99bba9b8f700bb8":[5,0,17,2],
-"classItem.html#ac04525a8be24c12b0a2ae4ca1ba4b967":[5,0,17,19],
-"classItem.html#ac0f27e58532612f6e7a54c8a621b9b92":[5,0,17,11],
-"classItem.html#ac6f1c96cc82a0dfb7e881fc70309ea3c":[5,0,17,10],
-"classItem.html#aca1e66988ed00cd627b2a359b72cd0ae":[5,0,17,3],
-"classItem.html#acc32426c0f465391be8a99ad810c7b8e":[5,0,17,30],
-"classItem.html#ad3638f93065693c1f69eb349feb1b7aa":[5,0,17,9],
-"classItem.html#ad5dcbe0b94cb2d5719bc5b6bd8ad60c8":[5,0,17,18],
-"classItem.html#aec24e233f9098f902b1e57e60dcb2019":[5,0,17,35],
-"classItem.html#af1b73df9b7c4b927e26b7e243b491f42":[5,0,17,29],
-"classItem.html#afa54851df82962c7c42dea3cc9f5c92c":[5,0,17,38],
-"classProtoDriver.html":[5,0,22],
-"classProtoDriver.html#a1593f3abae050edbd9304f4f8bc4894a":[5,0,22,0],
-"classProtoDriver.html#a2ba1758f0f9e3564580b6ff85292804d":[5,0,22,2],
-"classProtoDriver.html#a34b97ca5ef2165f2e16eb2fe59ff6c67":[5,0,22,1],
-"classProtoDriver.html#a64a3868cffe27d601d55f69a2ecc4337":[5,0,22,6],
-"classProtoDriver.html#a85e9063f6d0c304410cd246f7900ea1b":[5,0,22,4],
-"classProtoDriver.html#ae5b44739f84c10d00a9b65adf3785181":[5,0,22,5],
-"classProtoDriver.html#af66171aa7dab9b62cee915cb4f1abe1b":[5,0,22,3],
-"classRedBasicAuth.html":[5,0,23],
-"classRedBasicAuth.html#a072e8244a9a7f191b32d3db5ac94f857":[5,0,23,2],
-"classRedBasicAuth.html#a09c1488a0b290f5a54dc15180c5690d7":[5,0,23,9],
-"classRedBasicAuth.html#a2cc8b1eac9c5a799bfb53ea7f287f3f0":[5,0,23,0],
-"classRedBasicAuth.html#a2d0246ed446fd5e55c17938b4ce6ac47":[5,0,23,11],
-"classRedBasicAuth.html#a2dab393650d1573e3515969a153e8354":[5,0,23,6],
-"classRedBasicAuth.html#a358ddad4abb5aa8c1382cf49a907adbc":[5,0,23,1],
-"classRedBasicAuth.html#a438ab125b6ef46581947e35d49cdebac":[5,0,23,7],
-"classRedBasicAuth.html#a8d09b8d784cc810a0b3be580d05106a7":[5,0,23,10],
-"classRedBasicAuth.html#a8dfd9a0953f8884723b421b7c1acf79b":[5,0,23,3],
-"classRedBasicAuth.html#aa75dc43b59adc98e38a98517d3fd35d1":[5,0,23,8],
-"classRedBasicAuth.html#ad5a3ea4dc4783b242d9dc6e76478b6ef":[5,0,23,5],
-"classRedBasicAuth.html#af14337f1baad407f8a85d48205c0f30e":[5,0,23,4],
-"classRedBrowser.html":[5,0,24],
-"classRedBrowser.html#a1f7daf50bb9bfcde7345b3b1908dbd7e":[5,0,24,3],
-"classRedBrowser.html#a20d81230645ddca08a88bfd9ea9f88f1":[5,0,24,2],
-"classRedBrowser.html#a40fdbb9d9fe6c1243bbf135dd5b0a06f":[5,0,24,6],
-"classRedBrowser.html#a4b76be9ccef0262cf78fffb4129eda93":[5,0,24,0],
-"classRedBrowser.html#a7f6bf0bda07833f4c647557bd172e349":[5,0,24,5],
-"classRedBrowser.html#a87529b4988a7777b49616f5c0a1c55d3":[5,0,24,4],
-"classRedBrowser.html#ab6d6d1e2a67e06b344a4cede1bd00b35":[5,0,24,8],
-"classRedBrowser.html#ad3418b8ccad42a1ef4ad0079e15b2e64":[5,0,24,7],
-"classRedBrowser.html#ae4edd4e10c709e2624c1aeb47b0440c5":[5,0,24,1],
-"classRedDirectory.html":[5,0,25],
-"classRedDirectory.html#a0f113244cd85c17848df991001d024f4":[5,0,25,13],
-"classRedDirectory.html#a11376aed1963b4471eb1592c13c63976":[5,0,25,10],
-"classRedDirectory.html#a1e35e3cd31d2a15250655e4cafdea180":[5,0,25,0],
-"classRedDirectory.html#a2d12d99d38a6a75fc9a830b2f7fc0bf0":[5,0,25,3],
-"classRedDirectory.html#a2f7a574f2115f099d6dd103d5b252375":[5,0,25,9],
-"classRedDirectory.html#a3c148c07ad909985125aa4926d8d0021":[5,0,25,15],
-"classRedDirectory.html#a5e3fc08b2bf9f61cea4d2ccae0495bec":[5,0,25,1],
-"classRedDirectory.html#a6c7e08199abc24e6eeb94a4037ef8bfc":[5,0,25,7],
-"classRedDirectory.html#a70173d4458572d95e586b2037d2fd2f4":[5,0,25,6],
-"classRedDirectory.html#a9616af16cd19a18a6afebebcc2881c44":[5,0,25,12],
-"classRedDirectory.html#a986936910f0216887a25e28916c166c7":[5,0,25,2],
-"classRedDirectory.html#aa10254abf177bb2a0e4a88495725e09b":[5,0,25,14],
-"classRedDirectory.html#aa42d3065f6f065b17db87146a7cb031a":[5,0,25,5],
-"classRedDirectory.html#aaa20f0f44da23781917af8170c0a2569":[5,0,25,4],
-"classRedDirectory.html#acb32b8df27538c57772824a745e751d7":[5,0,25,16],
-"classRedDirectory.html#ad87c514a307ec97ba0f1372e9bcfa6a4":[5,0,25,17],
-"classRedDirectory.html#adc48035679e52c55d9881f83de535553":[5,0,25,11],
-"classRedDirectory.html#af6e4475dbd5abcdede00d20b8d388583":[5,0,25,8],
-"classRedFile.html":[5,0,26],
-"classRedFile.html#a0c961c5f49544d2502420361fa526437":[5,0,26,6],
-"classRedFile.html#a26416827eb68554d033d1e2e5cc6dd3b":[5,0,26,3],
-"classRedFile.html#a2ff12032b45538353eded9809d3b7550":[5,0,26,11],
-"classRedFile.html#a38a82bfc1b30028ea6ac75923e90fa25":[5,0,26,9],
-"classRedFile.html#a41562a28007789bbe7fe06d6a20eef47":[5,0,26,5],
-"classRedFile.html#a41a49a583eb276b75626fcf97f4a699c":[5,0,26,8],
-"classRedFile.html#a4b5d0e33f919c6c175b30a55de6263f2":[5,0,26,10],
-"classRedFile.html#a7c868dfcef6c70cd0e24cf3caa2c3535":[5,0,26,2],
-"classRedFile.html#a9a67bdb34c9db6ce144b3f371148b183":[5,0,26,0],
-"classRedFile.html#acb1edbe1848fab05347746fa1ea09d8f":[5,0,26,7],
-"classRedFile.html#acc48c05cd5a70951cb3c615ad84f03ba":[5,0,26,12],
-"classRedFile.html#ae96d5caa2db7a461c57b24380fa87e28":[5,0,26,4],
-"classRedFile.html#aef71c9eaac7052be7dc8602eb12171e7":[5,0,26,1],
-"classTemplate.html":[5,0,27],
-"classTemplate.html#a07737733f6949bdedea1e3d301b2ab7b":[5,0,27,13],
-"classTemplate.html#a285b5b2007dbbf733476273df3fed4ef":[5,0,27,12],
-"classTemplate.html#a317d535946dc065c35dd5cd38380e6c6":[5,0,27,22],
-"classTemplate.html#a35d599c9b53a02e2fe2232e5b7ed5da7":[5,0,27,2],
-"classTemplate.html#a37c15f6d1ade500943629f27a62808b7":[5,0,27,3],
-"classTemplate.html#a4b933954086d9e01a1804b0b1c6ee93e":[5,0,27,6],
-"classTemplate.html#a4e86b566c3f728e95ce5db1b33665c10":[5,0,27,21],
-"classTemplate.html#a6f0efc256688c36110180b501067ff11":[5,0,27,23],
-"classTemplate.html#a8469ab2988b6be2681516dc4b4e07d38":[5,0,27,15],
-"classTemplate.html#a86e8fd27955ef10cadfd86f3fca70677":[5,0,27,9],
-"classTemplate.html#a8f4d17e49f42b876a97364c13fb572d1":[5,0,27,19],
-"classTemplate.html#aa6a087e0b7b887dd1c98c9e0ecbd3b29":[5,0,27,4],
-"classTemplate.html#aa6f9bd7a8f7512efcf90e8d376fe05ee":[5,0,27,10],
-"classTemplate.html#aac9a4638f11271e1b1dcc9f247242718":[5,0,27,20],
-"classTemplate.html#aae9c4d761ea1298e745e8052d7910194":[5,0,27,1],
-"classTemplate.html#abbc484016ddf5d818f55b823cae6feb0":[5,0,27,14],
-"classTemplate.html#abda4c8d049f70553338eae7c905e9d5c":[5,0,27,17],
-"classTemplate.html#abf71098c80fd1f218a59452b3408309e":[5,0,27,7],
-"classTemplate.html#ac41c96e1f407b1a910029e5f4b7de8e4":[5,0,27,0],
-"classTemplate.html#ace26b8a4252fbc1c385d2b5e1e93e5c8":[5,0,27,18],
-"classTemplate.html#ae0836e7d5bd5afceb04f50fd635f1228":[5,0,27,8],
-"classTemplate.html#ae791766c3d055f7f1ba5a5e60d647934":[5,0,27,5],
-"classTemplate.html#afc4afb6f89bebcd5480022312a56cb4a":[5,0,27,16],
-"classTemplate.html#afd97b4b1e7754a550e67c0ea79159059":[5,0,27,11],
-"classZotDriver.html":[5,0,28],
-"classZotDriver.html#a2e15ff09772f0608203dad1c98299394":[5,0,28,3],
-"classZotDriver.html#a3cfdf443da4e5326e205855d7c0054f2":[5,0,28,0],
-"classZotDriver.html#a40d328ff9f6b0a238afe286dddee1514":[5,0,28,6],
-"classZotDriver.html#a6776935156accb0f170e2e24577133db":[5,0,28,1],
-"classZotDriver.html#a876e3e0e4cad83c0b58c8696b344be6f":[5,0,28,4],
-"classZotDriver.html#af65febb26031eb7f39871b9e2a539797":[5,0,28,2],
-"classZotDriver.html#afaaf9941169fc966e43e25b25e6daea6":[5,0,28,5],
-"classdba__driver.html":[5,0,9],
-"classdba__driver.html#a1a8bc9dc839a6320a0e07d8047a6b721":[5,0,9,1],
-"classdba__driver.html#a205f6535e399700b6fca2492f96f2229":[5,0,9,8],
-"classdba__driver.html#a3033b5f1c2716b52202faeaae2592fe6":[5,0,9,9],
-"classdba__driver.html#a4ccb27243e62a8ca30dd8e1b8cc67746":[5,0,9,6],
-"classdba__driver.html#a558e738b88ae893cc5d79ffa3793d555":[5,0,9,7],
-"classdba__driver.html#a5afa54172f3c837df61643f8f5b2c975":[5,0,9,2],
-"classdba__driver.html#a84675d28c7bd9b7290dd37e66dbd216c":[5,0,9,11],
-"classdba__driver.html#adcc1f8955120fec0708bce39202d0422":[5,0,9,4],
-"classdba__driver.html#ae533e62a240a793f17aef5ab4ef10edc":[5,0,9,3],
-"classdba__driver.html#af3541d13ccb7a3eddfc03e253c746186":[5,0,9,0],
-"classdba__driver.html#af48e2afeded5285766bf92e22123ed03":[5,0,9,10],
-"classdba__driver.html#afc95ffa103a3290581b537670cde5311":[5,0,9,5],
-"classdba__mysql.html":[5,0,10],
-"classdba__mysql.html#a1887338627ce0e28786839363014bd0b":[5,0,10,1],
-"classdba__mysql.html#a850586714ef897bd25f643c89b4ef76e":[5,0,10,0],
-"classdba__mysql.html#a99a7691ea6cb1300031fb6549379066e":[5,0,10,2]
+"classApp.html#a4659785d13e4bac0bed50dbb1b0d4299":[5,0,6,6],
+"classApp.html#a4776d9322edea17fae56afa5d01a323e":[5,0,6,24],
+"classApp.html#a487332f8de40414ca1a54a4265570b70":[5,0,6,81],
+"classApp.html#a495ec082c2719314e536070ca1ce073d":[5,0,6,40],
+"classApp.html#a4b67935096f66d1f14b657399a8461ac":[5,0,6,64],
+"classApp.html#a4bdd7bfed62f50515fce652127bf481b":[5,0,6,25],
+"classApp.html#a4c7cfc62d39508086cf300dc2e39c4df":[5,0,6,54],
+"classApp.html#a4ffe529fb14389f7fedf5fdc5f722e7f":[5,0,6,63],
+"classApp.html#a5293a8543ba338dcf38cd4ff3bc5d4be":[5,0,6,9],
+"classApp.html#a557d7b779d8259027f4724ebf7b248dc":[5,0,6,28],
+"classApp.html#a560189f048d3db2f526841963cc43e97":[5,0,6,26],
+"classApp.html#a56b1a432c96aef8b1971f779c9d93c8c":[5,0,6,84],
+"classApp.html#a576ecb1c5b4a283221e6f2f0ec248251":[5,0,6,53],
+"classApp.html#a57d041fcc003d08c127dfa99a02bc192":[5,0,6,70],
+"classApp.html#a58ac598544892ff7c32890291b72635e":[5,0,6,58],
+"classApp.html#a59dd4b665c70e7dbd80682c014ff7145":[5,0,6,59],
+"classApp.html#a5c63eabdc7fdd8b6e3348980ec16a3ad":[5,0,6,3],
+"classApp.html#a5cfc098c061b7d765add58fd2ca97445":[5,0,6,37],
+"classApp.html#a5f64620473a9727a48ebe9cf6f335a98":[5,0,6,76],
+"classApp.html#a604d659d6977a99de42a160343e5289a":[5,0,6,4],
+"classApp.html#a61ca6e3af82071ea25ff2fd5dbcddae2":[5,0,6,43],
+"classApp.html#a622eace13f8fc9f4b5672a68e2bc4396":[5,0,6,7],
+"classApp.html#a6844aedad10e201b8c3d80cfc9e876d3":[5,0,6,77],
+"classApp.html#a6859a4848a5c0049b4134cc4b34228b6":[5,0,6,78],
+"classApp.html#a6bcb19cdc4907077da72864686d5a780":[5,0,6,65],
+"classApp.html#a6e4f0fbfa3cf6c11baebe22a03db6165":[5,0,6,61],
+"classApp.html#a6f55d087e1ff4710132c1b0863faa2ee":[5,0,6,45],
+"classApp.html#a764cc6cd7578132c21d2b4545de9301c":[5,0,6,79],
+"classApp.html#a78788f6e9d8b713b138f81e457c5cd08":[5,0,6,20],
+"classApp.html#a7954862f44f606b0ff83d4c74d15e792":[5,0,6,52],
+"classApp.html#a871898becd0697d778f36d9336253ae8":[5,0,6,14],
+"classApp.html#a8863703a0305eaa45eb970dbd2046291":[5,0,6,16],
+"classApp.html#a89e9feb2bfb5253883a9720beaffe876":[5,0,6,21],
+"classApp.html#a91fd3c8b89016113b05f3be24805ccff":[5,0,6,83],
+"classApp.html#a94a1ed2dc493c58612d17035b74ae736":[5,0,6,31],
+"classApp.html#a98ef4cfd36693a3457c879b76bc6d694":[5,0,6,42],
+"classApp.html#a9bf62f8e39585c0aa48fcffc3bf3484d":[5,0,6,60],
+"classApp.html#aa5a87c46ab3fee21362c466bf78042ef":[5,0,6,86],
+"classApp.html#aab23c59172310fd30f2d60dc039d3eea":[5,0,6,13],
+"classApp.html#ab35b01a366a2ea95725e97af278f87ab":[5,0,6,82],
+"classApp.html#ab3da757abe5cb45bf88f07cc51a73b58":[5,0,6,35],
+"classApp.html#ab47de68fa39806d1fb0976407e188b77":[5,0,6,67],
+"classApp.html#abea5a4f77dcd53c928dc4eed86616637":[5,0,6,19],
+"classApp.html#abf46a653d8499e7c253cc1be894a6d83":[5,0,6,17],
+"classApp.html#ac1a8b2cd40609b231a560201a08852ba":[5,0,6,47],
+"classApp.html#ac1d80a14492acc932715d54567d8a589":[5,0,6,44],
+"classApp.html#ac6e6b1c7d6df408580ff79977fcfa656":[5,0,6,49],
+"classApp.html#ac73dc90e4764497e2f1b7e6612c8fb88":[5,0,6,41],
+"classApp.html#acad5896b7a79ae31433ad8f89606c728":[5,0,6,66],
+"classApp.html#acb27e607fe4c82603444676e25c36b70":[5,0,6,11],
+"classApp.html#ad082d63acc078e5bf23825a03bdd6a76":[5,0,6,74],
+"classApp.html#ad1c8eb91a6fd470b94f34b7fdad3a2d0":[5,0,6,39],
+"classApp.html#ad5175536561021548ae8188e24c7b80c":[5,0,6,36],
+"classApp.html#adb060d5c7f35a521ec7ec0effbe08097":[5,0,6,27],
+"classApp.html#adb5a4bb657881e553978ff390babd01f":[5,0,6,10],
+"classApp.html#adf2aaf95b062736a6fd5fc70fadf80e8":[5,0,6,85],
+"classApp.html#ae3f47830543d0d902f66913def8db66b":[5,0,6,48],
+"classApp.html#ae9f96338f32187d308b67b980eea0008":[5,0,6,68],
+"classApp.html#aeb1fe1c8ad9aa639909bd183ce578536":[5,0,6,18],
+"classApp.html#aeca29fd4f7192ca07369b3c598c36e67":[5,0,6,80],
+"classApp.html#af17df107f2216ddf5ad2a7e0f2ba2166":[5,0,6,15],
+"classApp.html#af58db526040829b1c8bd95561b329262":[5,0,6,34],
+"classApp.html#af6d39f63fb7116bbeb04e51696f99474":[5,0,6,0],
+"classBaseObject.html":[5,0,7],
+"classBaseObject.html#ac43f10e69ce80c78e4870636250fc8a2":[5,0,7,0],
+"classCache.html":[5,0,8],
+"classConversation.html":[5,0,9],
+"classConversation.html#a2a96b7a6573ae53db861624659e831cb":[5,0,9,6],
+"classConversation.html#a2f12724ef0244e9049fe1bb9641b516d":[5,0,9,19],
+"classConversation.html#a41f4a549e6a99f98935c4742addd22c8":[5,0,9,20],
+"classConversation.html#a4aab60bb39fa6761b6cacdc8d9da2901":[5,0,9,2],
+"classConversation.html#a4cff75d8c46b517e7133e4d0da6fc1c8":[5,0,9,7],
+"classConversation.html#a5879199008b96bee7550b576d614e1c1":[5,0,9,10],
+"classConversation.html#a5b6adbb2fe24f0f53d6c22660dff91b2":[5,0,9,17],
+"classConversation.html#a5effe8ad3007e01333df44b81432b813":[5,0,9,5],
+"classConversation.html#a66f121ca4026246f86a732e5faa0682c":[5,0,9,11],
+"classConversation.html#a8335cdd43f1836e3c255638e61a09e16":[5,0,9,1],
+"classConversation.html#a8748445aa26047ebed5141f3c3cbc244":[5,0,9,16],
+"classConversation.html#a87a0d704d5f2b1a008cc2e9ce06a1bcd":[5,0,9,3],
+"classConversation.html#a8898bddc1e8990e81dab9a13a532cc93":[5,0,9,12],
+"classConversation.html#a8b47c92b69459d461ea3cc9aae9597a3":[5,0,9,8],
+"classConversation.html#aa95c1a62af38bdfba7add9549bec083b":[5,0,9,13],
+"classConversation.html#adf25ce023b69a166c63c6e84e02c136a":[5,0,9,9],
+"classConversation.html#ae3d4190142e12b57051f11f2911f77a0":[5,0,9,4],
+"classConversation.html#ae81221251307e315f566a11f921ce0a9":[5,0,9,21],
+"classConversation.html#ae9937f9e0f3d927acc2bed46cc72e9ae":[5,0,9,18],
+"classConversation.html#af84ea6ccd72214c9bb4c504461cc8b09":[5,0,9,0],
+"classConversation.html#afb03d1648dbfafe62caa1e30f32f2b1a":[5,0,9,15],
+"classConversation.html#afd4965d22a6e4bfea2f35e931b3273c6":[5,0,9,14],
+"classFKOAuth1.html":[5,0,15],
+"classFKOAuth1.html#a2b1dac2ed31fc6ef84668afdda8b263f":[5,0,15,1],
+"classFKOAuth1.html#a2f1276872329a6f0b704ccda1a4b9fa6":[5,0,15,0],
+"classFKOAuthDataStore.html":[5,0,16],
+"classFKOAuthDataStore.html#a1148d47b546350bf440bdd92792c5df1":[5,0,16,1],
+"classFKOAuthDataStore.html#a431b44d70e3da6a8256ab38f710e3050":[5,0,16,5],
+"classFKOAuthDataStore.html#a434882f03e3cdb171ed89e09e337e934":[5,0,16,4],
+"classFKOAuthDataStore.html#a4edfe2e77ecd2e16ff6b5eb516ed3599":[5,0,16,2],
+"classFKOAuthDataStore.html#a96f76387c3a93b0abe27a98013804bab":[5,0,16,3],
+"classFKOAuthDataStore.html#aa1a268be88ad3979bb4cc35bbb4dc819":[5,0,16,0],
+"classFriendicaSmarty.html":[5,0,17],
+"classFriendicaSmarty.html#a33fabbd4d6eef869df496adf357ae690":[5,0,17,2],
+"classFriendicaSmarty.html#a6a4d4281d6fa9be1d37a97b188ffe8c9":[5,0,17,1],
+"classFriendicaSmarty.html#af12091b920b95eeef1218cbc48066ca6":[5,0,17,0],
+"classFriendicaSmartyEngine.html":[5,0,18],
+"classFriendicaSmartyEngine.html#a35ec0ee828c36640ea25296bcb84a118":[5,0,18,1],
+"classFriendicaSmartyEngine.html#aab5994077fc3a64222e41b28e2bd8d88":[5,0,18,2],
+"classFriendicaSmartyEngine.html#ab7c305bd8c386c2944e4dc9136cea5b6":[5,0,18,0],
+"classFriendicaSmartyEngine.html#ad62f1181d2f02b54b46731ad2bd46db2":[5,0,18,3],
+"classItem.html":[5,0,19],
+"classItem.html#a007424e3e3171dcfb4312a02161da6cd":[5,0,19,37],
+"classItem.html#a078f95b4134ce3a1df344cf8d386f986":[5,0,19,41],
+"classItem.html#a0c301aaed2b7d682728d18db3a22afa3":[5,0,19,9],
+"classItem.html#a1a1e42877e6ac7af50286142ceb483d2":[5,0,19,43],
+"classItem.html#a1cb6aa8abdf7ea7daca647e40c8ea3a2":[5,0,19,46],
+"classItem.html#a23d4057883f8ed888c0c2ff12d8aa5d0":[5,0,19,12],
+"classItem.html#a248f45871ecfe82a08d1d4c0769b2eb2":[5,0,19,0],
+"classItem.html#a2ce70ef63f9f4d86a09c351678806925":[5,0,19,26],
+"classItem.html#a3ee7667c2ec6cd7657328e27848c0bdf":[5,0,19,7],
+"classItem.html#a428f448f89a8629055ea3294eb942aea":[5,0,19,18],
+"classItem.html#a4a123ae98987c1e30ecb15c4edf5a3b8":[5,0,19,48],
+"classItem.html#a4b92e3a9d6212c553aa2661489bd95d8":[5,0,19,17],
+"classItem.html#a5b2fafdca55aefeaa08993a5a60529f0":[5,0,19,22],
+"classItem.html#a5b561415861f5b89b0733aacfe0428d1":[5,0,19,44],
+"classItem.html#a5cfa6cf964f433a917a81cab079ff9d8":[5,0,19,47],
+"classItem.html#a5d29ddecc073151a65a8e2ea2f6e4189":[5,0,19,49],
+"classItem.html#a632185dd25c5caf277067c76230a4320":[5,0,19,5],
+"classItem.html#a67892aa23d19f4431bb2e5f43c74000e":[5,0,19,14],
+"classItem.html#a7f7bc059de377319282cb4ef4a828480":[5,0,19,45],
+"classItem.html#a80dcd0fb7673776c0967839d429c2a0f":[5,0,19,34],
+"classItem.html#a80dcd9d0f548c3ad550abe7e6981fb51":[5,0,19,1],
+"classItem.html#a88a99e2d1245925867f249f543358e72":[5,0,19,39],
+"classItem.html#a904421c7a427411bb2ab473bca872f63":[5,0,19,8],
+"classItem.html#a90743c8348b13213275c223bb9333aa0":[5,0,19,35],
+"classItem.html#a9594df6014b0b6f45364ea7a34510130":[5,0,19,40],
+"classItem.html#a97c7feeea7f26a73176cb19faa455e12":[5,0,19,24],
+"classItem.html#a9890ff72662d5bba301d1f2dd8aec9d7":[5,0,19,31],
+"classItem.html#a9f2d219da712390f59012fc32a342074":[5,0,19,16],
+"classItem.html#aa0ee775ec94abccec6c798428835d001":[5,0,19,6],
+"classItem.html#aa1bd19fc8b5577078530265a7bf64123":[5,0,19,28],
+"classItem.html#aa2c221231ad0fc3720ccc1f00f0c6304":[5,0,19,36],
+"classItem.html#aa452b5bcd8dea12119b09212c615cb41":[5,0,19,27],
+"classItem.html#aa49e40f961dff66da32c5ae110e32993":[5,0,19,23],
+"classItem.html#aa541bc4290e51bfd688d6921bebabc73":[5,0,19,15],
+"classItem.html#aa8b1bbc4236890694635295e46d7fd72":[5,0,19,29],
+"classItem.html#aabf87ded59c25b5fe2b2296678e70509":[5,0,19,25],
+"classItem.html#aba23a0a9d89e316d2b343cc46d695d91":[5,0,19,19],
+"classItem.html#abcdb0ea9bcd1576bc99bba9b8f700bb8":[5,0,19,2],
+"classItem.html#ac04525a8be24c12b0a2ae4ca1ba4b967":[5,0,19,21],
+"classItem.html#ac09a4728d37b7783714243f7f8167214":[5,0,19,30],
+"classItem.html#ac0f27e58532612f6e7a54c8a621b9b92":[5,0,19,13],
+"classItem.html#ac6f1c96cc82a0dfb7e881fc70309ea3c":[5,0,19,11],
+"classItem.html#aca1e66988ed00cd627b2a359b72cd0ae":[5,0,19,3],
+"classItem.html#acc32426c0f465391be8a99ad810c7b8e":[5,0,19,33],
+"classItem.html#ad3638f93065693c1f69eb349feb1b7aa":[5,0,19,10],
+"classItem.html#ad5dcbe0b94cb2d5719bc5b6bd8ad60c8":[5,0,19,20],
+"classItem.html#ae0c48b2fed5558642549cabd547fc4f3":[5,0,19,4],
+"classItem.html#aec24e233f9098f902b1e57e60dcb2019":[5,0,19,38],
+"classItem.html#af1b73df9b7c4b927e26b7e243b491f42":[5,0,19,32],
+"classItem.html#afa54851df82962c7c42dea3cc9f5c92c":[5,0,19,42],
+"classProtoDriver.html":[5,0,24],
+"classProtoDriver.html#a1593f3abae050edbd9304f4f8bc4894a":[5,0,24,0],
+"classProtoDriver.html#a2ba1758f0f9e3564580b6ff85292804d":[5,0,24,2],
+"classProtoDriver.html#a34b97ca5ef2165f2e16eb2fe59ff6c67":[5,0,24,1],
+"classProtoDriver.html#a64a3868cffe27d601d55f69a2ecc4337":[5,0,24,6],
+"classProtoDriver.html#a85e9063f6d0c304410cd246f7900ea1b":[5,0,24,4],
+"classProtoDriver.html#ae5b44739f84c10d00a9b65adf3785181":[5,0,24,5],
+"classProtoDriver.html#af66171aa7dab9b62cee915cb4f1abe1b":[5,0,24,3],
+"classRedMatrix_1_1Import_1_1Import.html":[5,0,3,0,0],
+"classRedMatrix_1_1Import_1_1Import.html#a0a05dac405ccc5b617b7b7b3c8ed783c":[5,0,3,0,0,13],
+"classRedMatrix_1_1Import_1_1Import.html#a107703a43a1b0ceb2af7ae470cb3f218":[5,0,3,0,0,1],
+"classRedMatrix_1_1Import_1_1Import.html#a24134929d9a8a682da2036a0bf326367":[5,0,3,0,0,4],
+"classRedMatrix_1_1Import_1_1Import.html#a27987a41cb703a796f1821baeb4774a2":[5,0,3,0,0,5],
+"classRedMatrix_1_1Import_1_1Import.html#a33ed595de044c0ec1cd84cca719e31dc":[5,0,3,0,0,10],
+"classRedMatrix_1_1Import_1_1Import.html#a5434325afb2c633c52540127d717800a":[5,0,3,0,0,0],
+"classRedMatrix_1_1Import_1_1Import.html#a57561904b0f127e0d9a3e2c33688daf8":[5,0,3,0,0,3],
+"classRedMatrix_1_1Import_1_1Import.html#a772c28edf36aaf8e66007a95004c4059":[5,0,3,0,0,6],
+"classRedMatrix_1_1Import_1_1Import.html#a855cd5a79b95d269ae8737fae774e3bc":[5,0,3,0,0,7],
+"classRedMatrix_1_1Import_1_1Import.html#a864aac9fadb4846f5d9f840e8e0f440f":[5,0,3,0,0,11],
+"classRedMatrix_1_1Import_1_1Import.html#a88c2eeba8d0cba3e7c12a2c45ba0fbc6":[5,0,3,0,0,14],
+"classRedMatrix_1_1Import_1_1Import.html#a8d138a9a7d4f79b81d3446ca216a602c":[5,0,3,0,0,9],
+"classRedMatrix_1_1Import_1_1Import.html#ad0d2bdc3b388220479063915b4f5c2fc":[5,0,3,0,0,12],
+"classRedMatrix_1_1Import_1_1Import.html#addf6e53dacd971eaab49be4b17a767d6":[5,0,3,0,0,2],
+"classRedMatrix_1_1Import_1_1Import.html#ae3c6472bea1a44025bc2e152604eb20c":[5,0,3,0,0,8],
+"classRedMatrix_1_1RedDAV_1_1RedBasicAuth.html":[5,0,3,1,0],
+"classRedMatrix_1_1RedDAV_1_1RedBasicAuth.html#a112ad78a863dc0e598b5f02c596798c0":[5,0,3,1,0,9],
+"classRedMatrix_1_1RedDAV_1_1RedBasicAuth.html#a167ae032bd2ad8e6caa2e1e1a6f1b5d3":[5,0,3,1,0,8],
+"classRedMatrix_1_1RedDAV_1_1RedBasicAuth.html#a1a23c349cc4699a8474505972684ea9c":[5,0,3,1,0,13],
+"classRedMatrix_1_1RedDAV_1_1RedBasicAuth.html#a2926fe923baade564f2663632fa8c633":[5,0,3,1,0,3],
+"classRedMatrix_1_1RedDAV_1_1RedBasicAuth.html#a605aa09565a097316b80f0d17d6b5823":[5,0,3,1,0,12],
+"classRedMatrix_1_1RedDAV_1_1RedBasicAuth.html#a6333c8ce58998bd11bf8102afe3b0748":[5,0,3,1,0,1],
+"classRedMatrix_1_1RedDAV_1_1RedBasicAuth.html#a6ece02655b780469e59e204c5979a624":[5,0,3,1,0,7],
+"classRedMatrix_1_1RedDAV_1_1RedBasicAuth.html#a76fdb7fd5dd7376155abb5a58cd6fd69":[5,0,3,1,0,11],
+"classRedMatrix_1_1RedDAV_1_1RedBasicAuth.html#a849c99cf0a7ad065d630c8a30106ad5e":[5,0,3,1,0,15],
+"classRedMatrix_1_1RedDAV_1_1RedBasicAuth.html#aa0b2a5fa9186d7dc0e637f1ecb379c42":[5,0,3,1,0,0],
+"classRedMatrix_1_1RedDAV_1_1RedBasicAuth.html#aad0ef0cc05c407de84dbfbf2050bbbbe":[5,0,3,1,0,14],
+"classRedMatrix_1_1RedDAV_1_1RedBasicAuth.html#aadce020fb595c7943829d7f995d3f998":[5,0,3,1,0,5],
+"classRedMatrix_1_1RedDAV_1_1RedBasicAuth.html#abe1defedb90ac8e3b6487e124e625521":[5,0,3,1,0,10],
+"classRedMatrix_1_1RedDAV_1_1RedBasicAuth.html#abf6fe89b0a8239ed93c3b07e1fbce75b":[5,0,3,1,0,2],
+"classRedMatrix_1_1RedDAV_1_1RedBasicAuth.html#adc72f36f0b2b17b20ea4df900afcd697":[5,0,3,1,0,4],
+"classRedMatrix_1_1RedDAV_1_1RedBasicAuth.html#af6d239fefed05859327ee8db626703f9":[5,0,3,1,0,6],
+"classRedMatrix_1_1RedDAV_1_1RedBrowser.html":[5,0,3,1,1],
+"classRedMatrix_1_1RedDAV_1_1RedBrowser.html#a0733e38e254474d9a456825e72f1ddfd":[5,0,3,1,1,2],
+"classRedMatrix_1_1RedDAV_1_1RedBrowser.html#a242ce69a2fe5a5fdf9c2b8d3954accfd":[5,0,3,1,1,7],
+"classRedMatrix_1_1RedDAV_1_1RedBrowser.html#a3bd98af2d1cdfd8f26deb914596176cf":[5,0,3,1,1,5],
+"classRedMatrix_1_1RedDAV_1_1RedBrowser.html#a8161f2a0be205412e263c947b5ec46c5":[5,0,3,1,1,0],
+"classRedMatrix_1_1RedDAV_1_1RedBrowser.html#aa1607857cb59738c4dce2fe8e73d8f19":[5,0,3,1,1,6],
+"classRedMatrix_1_1RedDAV_1_1RedBrowser.html#acaa792c08d24e9dc2919759e92ba037d":[5,0,3,1,1,4],
+"classRedMatrix_1_1RedDAV_1_1RedBrowser.html#ad19179bf4ac7f18fafa7e2e3df800142":[5,0,3,1,1,8],
+"classRedMatrix_1_1RedDAV_1_1RedBrowser.html#ad4bc0516533c62733f38043a37267d78":[5,0,3,1,1,1],
+"classRedMatrix_1_1RedDAV_1_1RedBrowser.html#af764d5f14df751f9ec86c34fab300c09":[5,0,3,1,1,3],
+"classRedMatrix_1_1RedDAV_1_1RedDirectory.html":[5,0,3,1,2],
+"classRedMatrix_1_1RedDAV_1_1RedDirectory.html#a14ac61d31a031d139956763db4e03956":[5,0,3,1,2,11],
+"classRedMatrix_1_1RedDAV_1_1RedDirectory.html#a17ea47e34cb76b6e79f36ebed790d76a":[5,0,3,1,2,15],
+"classRedMatrix_1_1RedDAV_1_1RedDirectory.html#a1a37850bdd1f188abd6160559698d5d7":[5,0,3,1,2,4],
+"classRedMatrix_1_1RedDAV_1_1RedDirectory.html#a2fc4e6b9be2108bbaa1ca1a03fd6d44e":[5,0,3,1,2,14],
+"classRedMatrix_1_1RedDAV_1_1RedDirectory.html#a438066fb1565fbcffa22c12d5ce23695":[5,0,3,1,2,17],
+"classRedMatrix_1_1RedDAV_1_1RedDirectory.html#a4bba2e56bc8ec3e05f05eae46f56f36d":[5,0,3,1,2,16],
+"classRedMatrix_1_1RedDAV_1_1RedDirectory.html#a55f7172814a0749b5342f152ab3fa0df":[5,0,3,1,2,8],
+"classRedMatrix_1_1RedDAV_1_1RedDirectory.html#a58e750256cdc2f0f79fbe8d5463ffefe":[5,0,3,1,2,3],
+"classRedMatrix_1_1RedDAV_1_1RedDirectory.html#a69db443ed3c84938b4352fe515bf8d68":[5,0,3,1,2,9],
+"classRedMatrix_1_1RedDAV_1_1RedDirectory.html#a69db5f641f8f5dc999e55cee1832ecd5":[5,0,3,1,2,7],
+"classRedMatrix_1_1RedDAV_1_1RedDirectory.html#a76b58fe5223e565c97f1b9af93031a99":[5,0,3,1,2,0],
+"classRedMatrix_1_1RedDAV_1_1RedDirectory.html#a825dc5f3e0f83f50736c16daa6a4809d":[5,0,3,1,2,6],
+"classRedMatrix_1_1RedDAV_1_1RedDirectory.html#a964b13fde1a5da6f76b51ca5519234dc":[5,0,3,1,2,1],
+"classRedMatrix_1_1RedDAV_1_1RedDirectory.html#a9b9a0b5bfa4de1f78e6cafaa534b6f6a":[5,0,3,1,2,5],
+"classRedMatrix_1_1RedDAV_1_1RedDirectory.html#aab6907e7fb7f9f7227f9cd42bdc84eb9":[5,0,3,1,2,12],
+"classRedMatrix_1_1RedDAV_1_1RedDirectory.html#aca0e8d574ea66a0e210f571700663c62":[5,0,3,1,2,2],
+"classRedMatrix_1_1RedDAV_1_1RedDirectory.html#adf8735b3118cdf2f42416edaf42b82e9":[5,0,3,1,2,13],
+"classRedMatrix_1_1RedDAV_1_1RedDirectory.html#af90a1a74cfd643a5c56b9a17ea250d59":[5,0,3,1,2,10],
+"classRedMatrix_1_1RedDAV_1_1RedFile.html":[5,0,3,1,3],
+"classRedMatrix_1_1RedDAV_1_1RedFile.html#a0350cb4e0327e1f9922869a48ee04f1d":[5,0,3,1,3,9],
+"classRedMatrix_1_1RedDAV_1_1RedFile.html#a05798eac84c578152ff21758261c6ac6":[5,0,3,1,3,0],
+"classRedMatrix_1_1RedDAV_1_1RedFile.html#a07e1b19e7aaf3dcce822e9be8823a87d":[5,0,3,1,3,7],
+"classRedMatrix_1_1RedDAV_1_1RedFile.html#a21b6e9d420c352f25610a33f57858215":[5,0,3,1,3,10],
+"classRedMatrix_1_1RedDAV_1_1RedFile.html#a235700e2dfbe21dc41613d36e30e8acc":[5,0,3,1,3,11],
+"classRedMatrix_1_1RedDAV_1_1RedFile.html#a709ec1288d21ddf1353524435ab916f0":[5,0,3,1,3,8],
+"classRedMatrix_1_1RedDAV_1_1RedFile.html#a7241beecd01f5bb4e74659863dd85bd8":[5,0,3,1,3,2],
+"classRedMatrix_1_1RedDAV_1_1RedFile.html#a9f14682acf3ccb70df5af5dd0687c689":[5,0,3,1,3,4],
+"classRedMatrix_1_1RedDAV_1_1RedFile.html#ab722dcb8c4598426c81fa2b2e4fad5f2":[5,0,3,1,3,12],
+"classRedMatrix_1_1RedDAV_1_1RedFile.html#ab7ab7ba81fab28eb02382cfdfd80ecfe":[5,0,3,1,3,1],
+"classRedMatrix_1_1RedDAV_1_1RedFile.html#ac47016aa0e3f6f1a1c4570bd6fd8cf25":[5,0,3,1,3,5],
+"classRedMatrix_1_1RedDAV_1_1RedFile.html#ac945aa782d6c035d339e59974266ec4d":[5,0,3,1,3,6],
+"classRedMatrix_1_1RedDAV_1_1RedFile.html#af5c88b75d0c1f590af03755534cb167e":[5,0,3,1,3,3],
+"classTemplate.html":[5,0,25],
+"classTemplate.html#a07737733f6949bdedea1e3d301b2ab7b":[5,0,25,13],
+"classTemplate.html#a285b5b2007dbbf733476273df3fed4ef":[5,0,25,12],
+"classTemplate.html#a317d535946dc065c35dd5cd38380e6c6":[5,0,25,22],
+"classTemplate.html#a35d599c9b53a02e2fe2232e5b7ed5da7":[5,0,25,2],
+"classTemplate.html#a37c15f6d1ade500943629f27a62808b7":[5,0,25,3],
+"classTemplate.html#a4b933954086d9e01a1804b0b1c6ee93e":[5,0,25,6]
};
diff --git a/doc/html/navtreeindex3.js b/doc/html/navtreeindex3.js
index 87872da25..d623cb5b7 100644
--- a/doc/html/navtreeindex3.js
+++ b/doc/html/navtreeindex3.js
@@ -1,253 +1,253 @@
var NAVTREEINDEX3 =
{
-"classdba__mysql.html#ac3fd60c278f400907322dac578754a99":[5,0,10,3],
-"classdba__mysqli.html":[5,0,11],
-"classdba__mysqli.html#a27d6a748af7f80028801306e7ea33f64":[5,0,11,2],
-"classdba__mysqli.html#a611c4de8d6d7512dffb83a38bb6701ec":[5,0,11,3],
-"classdba__mysqli.html#acb38f2c851187ad632ecfab30fdfab55":[5,0,11,0],
-"classdba__mysqli.html#add062bd93961e5f0194d94820e9a51b1":[5,0,11,1],
-"classenotify.html":[5,0,12],
+"classTemplate.html#a4e86b566c3f728e95ce5db1b33665c10":[5,0,25,21],
+"classTemplate.html#a6f0efc256688c36110180b501067ff11":[5,0,25,23],
+"classTemplate.html#a8469ab2988b6be2681516dc4b4e07d38":[5,0,25,15],
+"classTemplate.html#a86e8fd27955ef10cadfd86f3fca70677":[5,0,25,9],
+"classTemplate.html#a8f4d17e49f42b876a97364c13fb572d1":[5,0,25,19],
+"classTemplate.html#aa6a087e0b7b887dd1c98c9e0ecbd3b29":[5,0,25,4],
+"classTemplate.html#aa6f9bd7a8f7512efcf90e8d376fe05ee":[5,0,25,10],
+"classTemplate.html#aac9a4638f11271e1b1dcc9f247242718":[5,0,25,20],
+"classTemplate.html#aae9c4d761ea1298e745e8052d7910194":[5,0,25,1],
+"classTemplate.html#abbc484016ddf5d818f55b823cae6feb0":[5,0,25,14],
+"classTemplate.html#abda4c8d049f70553338eae7c905e9d5c":[5,0,25,17],
+"classTemplate.html#abf71098c80fd1f218a59452b3408309e":[5,0,25,7],
+"classTemplate.html#ac41c96e1f407b1a910029e5f4b7de8e4":[5,0,25,0],
+"classTemplate.html#ace26b8a4252fbc1c385d2b5e1e93e5c8":[5,0,25,18],
+"classTemplate.html#ae0836e7d5bd5afceb04f50fd635f1228":[5,0,25,8],
+"classTemplate.html#ae791766c3d055f7f1ba5a5e60d647934":[5,0,25,5],
+"classTemplate.html#afc4afb6f89bebcd5480022312a56cb4a":[5,0,25,16],
+"classTemplate.html#afd97b4b1e7754a550e67c0ea79159059":[5,0,25,11],
+"classZotDriver.html":[5,0,26],
+"classZotDriver.html#a2e15ff09772f0608203dad1c98299394":[5,0,26,3],
+"classZotDriver.html#a3cfdf443da4e5326e205855d7c0054f2":[5,0,26,0],
+"classZotDriver.html#a40d328ff9f6b0a238afe286dddee1514":[5,0,26,6],
+"classZotDriver.html#a6776935156accb0f170e2e24577133db":[5,0,26,1],
+"classZotDriver.html#a876e3e0e4cad83c0b58c8696b344be6f":[5,0,26,4],
+"classZotDriver.html#af65febb26031eb7f39871b9e2a539797":[5,0,26,2],
+"classZotDriver.html#afaaf9941169fc966e43e25b25e6daea6":[5,0,26,5],
+"classdba__driver.html":[5,0,10],
+"classdba__driver.html#a02165fc4bee63d040ebd963a4fa82a14":[5,0,10,10],
+"classdba__driver.html#a1a8bc9dc839a6320a0e07d8047a6b721":[5,0,10,1],
+"classdba__driver.html#a205f6535e399700b6fca2492f96f2229":[5,0,10,17],
+"classdba__driver.html#a3033b5f1c2716b52202faeaae2592fe6":[5,0,10,18],
+"classdba__driver.html#a4ccb27243e62a8ca30dd8e1b8cc67746":[5,0,10,11],
+"classdba__driver.html#a558e738b88ae893cc5d79ffa3793d555":[5,0,10,13],
+"classdba__driver.html#a5afa54172f3c837df61643f8f5b2c975":[5,0,10,2],
+"classdba__driver.html#a65a5c7b355ab5529a43049e160006426":[5,0,10,9],
+"classdba__driver.html#a77e59dcbeab30ca6000131d2e9ad4092":[5,0,10,12],
+"classdba__driver.html#a7dbe8318587ff1694825042bf58f4fbd":[5,0,10,7],
+"classdba__driver.html#a84675d28c7bd9b7290dd37e66dbd216c":[5,0,10,20],
+"classdba__driver.html#a8d6a79d39d7eaee5aea4e952c4529d48":[5,0,10,8],
+"classdba__driver.html#a98d8523dcedda316085b4d4f856b6583":[5,0,10,21],
+"classdba__driver.html#aa3325d982d4ee5d1114fd7e02a4356e8":[5,0,10,23],
+"classdba__driver.html#ab43184239e1d6eb00a98319f4a3df155":[5,0,10,15],
+"classdba__driver.html#ab9982f38a02f008b127a0f3ccc1e99f4":[5,0,10,3],
+"classdba__driver.html#ac9127e9c55fcc93bcfbb323b9b99b9d9":[5,0,10,14],
+"classdba__driver.html#ad700712879719bee23752b8f424d97d0":[5,0,10,16],
+"classdba__driver.html#adcc1f8955120fec0708bce39202d0422":[5,0,10,5],
+"classdba__driver.html#ae533e62a240a793f17aef5ab4ef10edc":[5,0,10,4],
+"classdba__driver.html#af3541d13ccb7a3eddfc03e253c746186":[5,0,10,0],
+"classdba__driver.html#af48e2afeded5285766bf92e22123ed03":[5,0,10,19],
+"classdba__driver.html#afc95ffa103a3290581b537670cde5311":[5,0,10,6],
+"classdba__driver.html#afce39394c010ea589d99a21579b2c31e":[5,0,10,22],
+"classdba__mysql.html":[5,0,11],
+"classdba__mysql.html#a1887338627ce0e28786839363014bd0b":[5,0,11,1],
+"classdba__mysql.html#a31011edd67b6b394355bf04cedb498d0":[5,0,11,3],
+"classdba__mysql.html#a850586714ef897bd25f643c89b4ef76e":[5,0,11,0],
+"classdba__mysql.html#a99a7691ea6cb1300031fb6549379066e":[5,0,11,2],
+"classdba__mysql.html#ac3fd60c278f400907322dac578754a99":[5,0,11,4],
+"classdba__mysqli.html":[5,0,12],
+"classdba__mysqli.html#a27d6a748af7f80028801306e7ea33f64":[5,0,12,2],
+"classdba__mysqli.html#a611c4de8d6d7512dffb83a38bb6701ec":[5,0,12,4],
+"classdba__mysqli.html#a6eb6c578c6928908321e5e6da866e1db":[5,0,12,3],
+"classdba__mysqli.html#acb38f2c851187ad632ecfab30fdfab55":[5,0,12,0],
+"classdba__mysqli.html#add062bd93961e5f0194d94820e9a51b1":[5,0,12,1],
+"classdba__postgres.html":[5,0,13],
+"classdba__postgres.html#a3de1ac375e98886dfc38fd0066e88f90":[5,0,13,7],
+"classdba__postgres.html#a56f926f218155c88807e0e06f6817a72":[5,0,13,9],
+"classdba__postgres.html#a677f850211975c9ab89602c67e2dcad9":[5,0,13,10],
+"classdba__postgres.html#a70352880231fba0b859f82cd5b290a9a":[5,0,13,8],
+"classdba__postgres.html#a7108eaaae7cc2fb236212041afc9ac0f":[5,0,13,3],
+"classdba__postgres.html#a7267f91c3f87f600b30d7560de62dfd7":[5,0,13,11],
+"classdba__postgres.html#a731d8648b41b8a126f6b99bdd5414058":[5,0,13,0],
+"classdba__postgres.html#a7ea3f24ad260c1e21588f8b5af595caa":[5,0,13,1],
+"classdba__postgres.html#a8d2c6d8c92fe6f074452876483dd17fc":[5,0,13,5],
+"classdba__postgres.html#ab2e44e9f41d05e585afd873d18e8c127":[5,0,13,4],
+"classdba__postgres.html#ab36244320f5b71dba92d9318ccf3f34e":[5,0,13,2],
+"classdba__postgres.html#ace80a204e34b20b9907650399cce02a3":[5,0,13,13],
+"classdba__postgres.html#ae0f834413e57cf0735ae7b64b2f71e68":[5,0,13,6],
+"classdba__postgres.html#aeb404a85974d6c5df30c21650888000b":[5,0,13,12],
+"classenotify.html":[5,0,14],
"classes.html":[5,1],
-"classphoto__driver.html":[5,0,19],
-"classphoto__driver.html#a00cb166c00b7502dbc456c94330e5b03":[5,0,19,27],
-"classphoto__driver.html#a01d28d43b404d6f6de219dc9c5069dc9":[5,0,19,28],
-"classphoto__driver.html#a19e1af2b6af4c63aa6230abe69f83712":[5,0,19,13],
-"classphoto__driver.html#a1a63c4ae17e892a115ab9cf6efb960ce":[5,0,19,20],
-"classphoto__driver.html#a22ecb8c696de65a5a10bd185be9d90c3":[5,0,19,17],
-"classphoto__driver.html#a2b2a99021fc63ed6465d703ddddcb832":[5,0,19,5],
-"classphoto__driver.html#a2e6e61f1e356a90bc978f4404a77137e":[5,0,19,2],
-"classphoto__driver.html#a2f2b6337cf9aa0688d10b422123f0eec":[5,0,19,15],
-"classphoto__driver.html#a3e4215890f4a4894bf3799a7d2e0c0b1":[5,0,19,29],
-"classphoto__driver.html#a4920ed7cbb1ac735ac84153067537f03":[5,0,19,26],
-"classphoto__driver.html#a4de5bac8daea8f291a33c80788019d0d":[5,0,19,14],
-"classphoto__driver.html#a56634842b071b96502716e9843ea5361":[5,0,19,19],
-"classphoto__driver.html#a5864fae7d8389372955a8e78cec527ac":[5,0,19,16],
-"classphoto__driver.html#a642a8d0c4ad5f887c99c6af77cee287b":[5,0,19,22],
-"classphoto__driver.html#a6c6c16dbc4f517ce799f9143ed61f0e3":[5,0,19,9],
-"classphoto__driver.html#a6eee8e36eaf9339f4faf80ddd43162da":[5,0,19,23],
-"classphoto__driver.html#a7c78b5a01afe61ba3895ac07f4869b55":[5,0,19,25],
-"classphoto__driver.html#a97289aef3be43d9435ca3717ef10b8ab":[5,0,19,12],
-"classphoto__driver.html#aa2efb5b2a6af3fd67e3f1c2b9852a5ba":[5,0,19,6],
-"classphoto__driver.html#ab98da263bd7341fc132c4fb6fc76e8d5":[5,0,19,8],
-"classphoto__driver.html#abc9f73ad90923772d52b9fcc4eb117dd":[5,0,19,11],
-"classphoto__driver.html#ac6e85f8e507cab4e755ed7acdec401ae":[5,0,19,0],
-"classphoto__driver.html#acc30486acee9e89e32701f44a1738117":[5,0,19,10],
-"classphoto__driver.html#ae18716018afcf362c7c24586b53e9e2f":[5,0,19,4],
-"classphoto__driver.html#ae1a9edaf846983780dc65ea77d99e813":[5,0,19,3],
-"classphoto__driver.html#ae4501abdc9651359f81d036b63625686":[5,0,19,1],
-"classphoto__driver.html#ae663867d2c4eaa2fae50d60670920143":[5,0,19,21],
-"classphoto__driver.html#aea560be5dfba09117d36c12bacbf3b80":[5,0,19,24],
-"classphoto__driver.html#af0f7ec48a31ae9b557b6e3f8bd5b4af0":[5,0,19,18],
-"classphoto__driver.html#af769e9abb144e57002c59aa2aa8f3468":[5,0,19,7],
-"classphoto__gd.html":[5,0,20],
-"classphoto__gd.html#a0795fc029be382557ae3f6e285f40e00":[5,0,20,5],
-"classphoto__gd.html#a16f3dd7d3559f715aa2fe3f7880836dd":[5,0,20,9],
-"classphoto__gd.html#a1c75304bd15f3b9986f0b315fb59271e":[5,0,20,8],
-"classphoto__gd.html#a2f2e5900e6d8b1667892ac631b1d4754":[5,0,20,2],
-"classphoto__gd.html#a33092b889875b68bfb1c97ff123012d9":[5,0,20,6],
-"classphoto__gd.html#a44cedef376044018702d9355ddc813ce":[5,0,20,3],
-"classphoto__gd.html#a724703ecf71b1f1d04a80e86c76db6b1":[5,0,20,1],
-"classphoto__gd.html#a77f87730b11093b76980c541159df37d":[5,0,20,7],
-"classphoto__gd.html#a86757ba021fd80d1a5cf8c2f766a8484":[5,0,20,4],
-"classphoto__gd.html#ab2232d775c8bacf66773a03308105f0c":[5,0,20,0],
-"classphoto__imagick.html":[5,0,21],
-"classphoto__imagick.html#a27596faca6108d9d563674d1b654a0b7":[5,0,21,10],
-"classphoto__imagick.html#a2c9168f110ccd6c264095d766615dfa8":[5,0,21,7],
-"classphoto__imagick.html#a2f33a03a89497a2b2768e29736d4a8a4":[5,0,21,0],
-"classphoto__imagick.html#a3047c68bb4de7f66c2893fe451db2b66":[5,0,21,2],
-"classphoto__imagick.html#a70adbef31128c0ac8cbc5dcf34cdb019":[5,0,21,6],
-"classphoto__imagick.html#a9df5738a4a18e76dd304c440e96f045f":[5,0,21,8],
-"classphoto__imagick.html#ad07288e0eb3922cb08cc9d33a163decc":[5,0,21,5],
-"classphoto__imagick.html#aef020d929f66f4370e33fc158c8eebd4":[5,0,21,4],
-"classphoto__imagick.html#af92901d252c1e6ab5b54eebedbed23bb":[5,0,21,9],
-"classphoto__imagick.html#afd49d64751ee3a298eac0c0ce0ba0207":[5,0,21,1],
-"classphoto__imagick.html#aff6bcdbab18593a3fc5a480db8509393":[5,0,21,3],
-"cli__startup_8php.html":[6,0,0,16],
-"cli__startup_8php.html#adfdde63686e33ccd4851fa5edc4fc70b":[6,0,0,16,0],
-"cli__suggest_8php.html":[6,0,0,17],
-"cli__suggest_8php.html#a8f3a60fc96f4bec7d3837c4efc7725f2":[6,0,0,17,0],
-"cloud_8php.html":[6,0,1,16],
-"cloud_8php.html#a1b79a6fe0454bc76673ad9aef55bf02d":[6,0,1,16,0],
-"comanche_8php.html":[6,0,0,18],
-"comanche_8php.html#a028f004d5b8c23d6367816d899e17cfe":[6,0,0,18,5],
-"comanche_8php.html#a1a208fdb40dd83d6298caec4290ee922":[6,0,0,18,3],
-"comanche_8php.html#a3d11417d2d846dbe72638a556529ff8f":[6,0,0,18,9],
-"comanche_8php.html#a5718daeda40bf835345fe061e8808cdf":[6,0,0,18,4],
-"comanche_8php.html#a5a7ab801717d38e91ac910b933973887":[6,0,0,18,0],
-"comanche_8php.html#a6b0191c1a63db1696a2eb139d90d9e7f":[6,0,0,18,7],
-"comanche_8php.html#ad5a44e42231759aba1dda49e0490501e":[6,0,0,18,2],
-"comanche_8php.html#ae9fe1ce574db3dd0931eada80234f82a":[6,0,0,18,6],
-"comanche_8php.html#aed39ecad69234f3ddf61f0dedb49a58e":[6,0,0,18,1],
-"comanche_8php.html#af7150df735e5ff9d467994cd6f769c6e":[6,0,0,18,8],
-"common_8php.html":[6,0,1,17],
-"common_8php.html#ab63408f39abef7a6915186e8dabc5a96":[6,0,1,17,0],
-"common_8php.html#aca62f113655809f41f49042ce9b123c2":[6,0,1,17,1],
-"connect_8php.html":[6,0,1,18],
-"connect_8php.html#a417ec27afe33f21a929667a665e32ee2":[6,0,1,18,2],
-"connect_8php.html#a489f0a66c660de6ec4d6917b27674f07":[6,0,1,18,0],
-"connect_8php.html#ad46a38f32fd7a3d324b1fa26373efa36":[6,0,1,18,1],
-"connections_8php.html":[6,0,1,19],
-"connections_8php.html#a1224058db8e3fb56463eb312f98e561d":[6,0,1,19,3],
-"connections_8php.html#a15af118efee9c948b6f8294e54a73bb2":[6,0,1,19,0],
-"connections_8php.html#a1f23623f802af7bd35e95b0e94e5d558":[6,0,1,19,2],
-"connections_8php.html#aec2e457420fce3e3bf6a9f48e36df25c":[6,0,1,19,1],
-"connedit_8php.html":[6,0,1,20],
-"connedit_8php.html#a234c48426b652bf4d37053f2af329ac5":[6,0,1,20,3],
-"connedit_8php.html#a4da871e075597a09a8b374b9171dd92e":[6,0,1,20,2],
-"connedit_8php.html#a707ea7e63cf9674025b1d6b081ae74f5":[6,0,1,20,0],
-"connedit_8php.html#a795acb3d9d841f55c255d7611681ab67":[6,0,1,20,1],
-"contact__selectors_8php.html":[6,0,0,21],
-"contact__selectors_8php.html#a2c743d2eb526eb758d943a1490162d75":[6,0,0,21,1],
-"contact__selectors_8php.html#a9839e8fdaac7ffb37bf1420493f5c28f":[6,0,0,21,0],
-"contact__selectors_8php.html#ad472e4716426dd1a9dd77b62962454be":[6,0,0,21,2],
-"contact__widgets_8php.html":[6,0,0,22],
-"contact__widgets_8php.html#a165eb021e61c4dcab2a552f28628d353":[6,0,0,22,0],
-"contact__widgets_8php.html#a1eda66319d170f60a8d07c7ece95533b":[6,0,0,22,2],
-"contact__widgets_8php.html#a552f8544528cec0c995cea7287ea9d65":[6,0,0,22,1],
-"contact__widgets_8php.html#a57e73ebcfd62bb5d8c7a7b9e663726d6":[6,0,0,22,3],
-"contactgroup_8php.html":[6,0,1,21],
-"contactgroup_8php.html#a18c7391b1b25debaf98c9dba639caab3":[6,0,1,21,0],
-"conversation_8php.html":[6,0,0,23],
-"conversation_8php.html#a0891aaa4492cba2b51eda12fe01957f3":[6,0,0,23,7],
-"conversation_8php.html#a0ee05f15255fb1cc3d89f30bc378a654":[6,0,0,23,9],
-"conversation_8php.html#a1dfcb5146e9d1eca4528bc580ad5d273":[6,0,0,23,16],
-"conversation_8php.html#a2a7d541854bba755eb8ada59af7dcb1a":[6,0,0,23,22],
-"conversation_8php.html#a3d8e30cc94f9a175054c021305d3aca3":[6,0,0,23,6],
-"conversation_8php.html#a40b9b5e7825bc73932a32e667f05e6f2":[6,0,0,23,17],
-"conversation_8php.html#a4b0888b0f26e1c284a4341fe5fd04f0c":[6,0,0,23,15],
-"conversation_8php.html#a7eeaaf44506815576f3bd80053ef52c3":[6,0,0,23,23],
-"conversation_8php.html#a7f6ef0dfa554bacf620e84c18d386e67":[6,0,0,23,8],
-"conversation_8php.html#a96b34b9d64d13c543e8163e52f5ce8c4":[6,0,0,23,14],
-"conversation_8php.html#a9bd7f9fb6678736c581bcba3b17f471c":[6,0,0,23,13],
-"conversation_8php.html#a9cc2a679606da9e535a06433f9f553a0":[6,0,0,23,21],
-"conversation_8php.html#a9f909b8885259b79c6ac8da93afd8f11":[6,0,0,23,19],
-"conversation_8php.html#aacbb12d372d5e9c3ab0735b4aea48fb3":[6,0,0,23,10],
-"conversation_8php.html#ab2383dff4f823e580399ff469d90ab19":[6,0,0,23,4],
-"conversation_8php.html#abed85a41f1160598de880b84021c9cf7":[6,0,0,23,2],
-"conversation_8php.html#ac55e070f65f46fcc8e269f7896be4c7d":[6,0,0,23,20],
-"conversation_8php.html#ad3e1d4b15e7d6d026ee182edd58f692b":[6,0,0,23,0],
-"conversation_8php.html#ad470fc7766f0db66d138fa1916c7a8b7":[6,0,0,23,1],
-"conversation_8php.html#adda79b75bf1ccf6ce9503aa310953533":[6,0,0,23,11],
-"conversation_8php.html#ae59703b07ce2ddf627b4172ff26058b6":[6,0,0,23,5],
-"conversation_8php.html#ae996eb116d397a2c6396c312d7b98664":[6,0,0,23,18],
-"conversation_8php.html#afe5b2f38d8b803edb0d7ec5fa2868db0":[6,0,0,23,12],
-"conversation_8php.html#affea1afb3f32ca41e966c8ddb4204d81":[6,0,0,23,3],
-"cronhooks_8php.html":[6,0,0,25],
-"cronhooks_8php.html#a4c4c1bbec4ecc9a0efa00dd6afd2c0ca":[6,0,0,25,0],
-"crypto_8php.html":[6,0,0,26],
-"crypto_8php.html#a0781202b0a43b82426929cc87c2fa2b5":[6,0,0,26,5],
-"crypto_8php.html#a0e941b6b18ff895d1a2448741abf2ef2":[6,0,0,26,17],
-"crypto_8php.html#a2148d7aac7b30c720f7ebda7e9790286":[6,0,0,26,2],
-"crypto_8php.html#a2a3fae7caca27f86d158eeaf69b6f287":[6,0,0,26,19],
-"crypto_8php.html#a32fc08d57a5694f94d8543ecbb03323c":[6,0,0,26,4],
-"crypto_8php.html#a35bc357c93f4ddc67ef377620b0349e8":[6,0,0,26,12],
-"crypto_8php.html#a4d15d19b446dbf47804675df7c85e2a9":[6,0,0,26,14],
-"crypto_8php.html#a573f02517abe4ac9241268263063b2a0":[6,0,0,26,9],
-"crypto_8php.html#a5c61821d205f95f127114159cbffa764":[6,0,0,26,1],
-"crypto_8php.html#a630e1574554f34e7c38511585d9e71a2":[6,0,0,26,6],
-"crypto_8php.html#a7427a18417341aa35e2207bfa205e432":[6,0,0,26,18],
-"crypto_8php.html#a798368843cdd9bb08386b48e53e29e8c":[6,0,0,26,11],
-"crypto_8php.html#a7f7e650aaeaa3832580a73eb00966b26":[6,0,0,26,22],
-"crypto_8php.html#a890b443f80f0968fb9eabd93fc99dbb5":[6,0,0,26,13],
-"crypto_8php.html#a9191447cc46f0b4eaba3273e313994d5":[6,0,0,26,23],
-"crypto_8php.html#a920e5f222d0020f47556033d8b2b6552":[6,0,0,26,20],
-"crypto_8php.html#aae0ab70d6a199b29555b1ac3cf250d6a":[6,0,0,26,10],
-"crypto_8php.html#ab4f21d8f6b8ece0915e7c8bb73379f96":[6,0,0,26,21],
-"crypto_8php.html#ac852ee41392d1358c3a54d54935e0bf9":[6,0,0,26,0],
-"crypto_8php.html#ac95ac3b1b23b65b04a86613d4206ae85":[6,0,0,26,16],
-"crypto_8php.html#aca7c3a574bfb6c6ef1f2403a56823914":[6,0,0,26,3],
-"crypto_8php.html#ad5e51fd44cff93cfaa07a37e24a5edec":[6,0,0,26,15],
-"crypto_8php.html#ae5af17db1cb5d7c91d486e1264079839":[6,0,0,26,7],
-"crypto_8php.html#af8bbdeaf4abed7b40365d301e6013c85":[6,0,0,26,8],
+"classphoto__driver.html":[5,0,21],
+"classphoto__driver.html#a00cb166c00b7502dbc456c94330e5b03":[5,0,21,27],
+"classphoto__driver.html#a01d28d43b404d6f6de219dc9c5069dc9":[5,0,21,28],
+"classphoto__driver.html#a19e1af2b6af4c63aa6230abe69f83712":[5,0,21,13],
+"classphoto__driver.html#a1a63c4ae17e892a115ab9cf6efb960ce":[5,0,21,20],
+"classphoto__driver.html#a22ecb8c696de65a5a10bd185be9d90c3":[5,0,21,17],
+"classphoto__driver.html#a2b2a99021fc63ed6465d703ddddcb832":[5,0,21,5],
+"classphoto__driver.html#a2e6e61f1e356a90bc978f4404a77137e":[5,0,21,2],
+"classphoto__driver.html#a2f2b6337cf9aa0688d10b422123f0eec":[5,0,21,15],
+"classphoto__driver.html#a3e4215890f4a4894bf3799a7d2e0c0b1":[5,0,21,29],
+"classphoto__driver.html#a4920ed7cbb1ac735ac84153067537f03":[5,0,21,26],
+"classphoto__driver.html#a4de5bac8daea8f291a33c80788019d0d":[5,0,21,14],
+"classphoto__driver.html#a56634842b071b96502716e9843ea5361":[5,0,21,19],
+"classphoto__driver.html#a5864fae7d8389372955a8e78cec527ac":[5,0,21,16],
+"classphoto__driver.html#a642a8d0c4ad5f887c99c6af77cee287b":[5,0,21,22],
+"classphoto__driver.html#a6c6c16dbc4f517ce799f9143ed61f0e3":[5,0,21,9],
+"classphoto__driver.html#a6eee8e36eaf9339f4faf80ddd43162da":[5,0,21,23],
+"classphoto__driver.html#a7c78b5a01afe61ba3895ac07f4869b55":[5,0,21,25],
+"classphoto__driver.html#a97289aef3be43d9435ca3717ef10b8ab":[5,0,21,12],
+"classphoto__driver.html#aa2efb5b2a6af3fd67e3f1c2b9852a5ba":[5,0,21,6],
+"classphoto__driver.html#ab98da263bd7341fc132c4fb6fc76e8d5":[5,0,21,8],
+"classphoto__driver.html#abc9f73ad90923772d52b9fcc4eb117dd":[5,0,21,11],
+"classphoto__driver.html#ac6e85f8e507cab4e755ed7acdec401ae":[5,0,21,0],
+"classphoto__driver.html#acc30486acee9e89e32701f44a1738117":[5,0,21,10],
+"classphoto__driver.html#ae18716018afcf362c7c24586b53e9e2f":[5,0,21,4],
+"classphoto__driver.html#ae1a9edaf846983780dc65ea77d99e813":[5,0,21,3],
+"classphoto__driver.html#ae4501abdc9651359f81d036b63625686":[5,0,21,1],
+"classphoto__driver.html#ae663867d2c4eaa2fae50d60670920143":[5,0,21,21],
+"classphoto__driver.html#aea560be5dfba09117d36c12bacbf3b80":[5,0,21,24],
+"classphoto__driver.html#af0f7ec48a31ae9b557b6e3f8bd5b4af0":[5,0,21,18],
+"classphoto__driver.html#af769e9abb144e57002c59aa2aa8f3468":[5,0,21,7],
+"classphoto__gd.html":[5,0,22],
+"classphoto__gd.html#a0795fc029be382557ae3f6e285f40e00":[5,0,22,5],
+"classphoto__gd.html#a16f3dd7d3559f715aa2fe3f7880836dd":[5,0,22,9],
+"classphoto__gd.html#a1c75304bd15f3b9986f0b315fb59271e":[5,0,22,8],
+"classphoto__gd.html#a2f2e5900e6d8b1667892ac631b1d4754":[5,0,22,2],
+"classphoto__gd.html#a33092b889875b68bfb1c97ff123012d9":[5,0,22,6],
+"classphoto__gd.html#a44cedef376044018702d9355ddc813ce":[5,0,22,3],
+"classphoto__gd.html#a724703ecf71b1f1d04a80e86c76db6b1":[5,0,22,1],
+"classphoto__gd.html#a77f87730b11093b76980c541159df37d":[5,0,22,7],
+"classphoto__gd.html#a86757ba021fd80d1a5cf8c2f766a8484":[5,0,22,4],
+"classphoto__gd.html#ab2232d775c8bacf66773a03308105f0c":[5,0,22,0],
+"classphoto__imagick.html":[5,0,23],
+"classphoto__imagick.html#a27596faca6108d9d563674d1b654a0b7":[5,0,23,10],
+"classphoto__imagick.html#a2c9168f110ccd6c264095d766615dfa8":[5,0,23,7],
+"classphoto__imagick.html#a2f33a03a89497a2b2768e29736d4a8a4":[5,0,23,0],
+"classphoto__imagick.html#a3047c68bb4de7f66c2893fe451db2b66":[5,0,23,2],
+"classphoto__imagick.html#a70adbef31128c0ac8cbc5dcf34cdb019":[5,0,23,6],
+"classphoto__imagick.html#a9df5738a4a18e76dd304c440e96f045f":[5,0,23,8],
+"classphoto__imagick.html#ad07288e0eb3922cb08cc9d33a163decc":[5,0,23,5],
+"classphoto__imagick.html#aef020d929f66f4370e33fc158c8eebd4":[5,0,23,4],
+"classphoto__imagick.html#af92901d252c1e6ab5b54eebedbed23bb":[5,0,23,9],
+"classphoto__imagick.html#afd49d64751ee3a298eac0c0ce0ba0207":[5,0,23,1],
+"classphoto__imagick.html#aff6bcdbab18593a3fc5a480db8509393":[5,0,23,3],
+"cli__startup_8php.html":[6,0,0,17],
+"cli__startup_8php.html#adfdde63686e33ccd4851fa5edc4fc70b":[6,0,0,17,0],
+"cli__suggest_8php.html":[6,0,0,18],
+"cli__suggest_8php.html#a8f3a60fc96f4bec7d3837c4efc7725f2":[6,0,0,18,0],
+"cloud_8php.html":[6,0,1,15],
+"cloud_8php.html#ad2e96e917852f27dedfc263d37e13756":[6,0,1,15,0],
+"comanche_8php.html":[6,0,0,19],
+"comanche_8php.html#a028f004d5b8c23d6367816d899e17cfe":[6,0,0,19,5],
+"comanche_8php.html#a1a208fdb40dd83d6298caec4290ee922":[6,0,0,19,3],
+"comanche_8php.html#a3d11417d2d846dbe72638a556529ff8f":[6,0,0,19,9],
+"comanche_8php.html#a5718daeda40bf835345fe061e8808cdf":[6,0,0,19,4],
+"comanche_8php.html#a5a7ab801717d38e91ac910b933973887":[6,0,0,19,0],
+"comanche_8php.html#a6b0191c1a63db1696a2eb139d90d9e7f":[6,0,0,19,7],
+"comanche_8php.html#ad5a44e42231759aba1dda49e0490501e":[6,0,0,19,2],
+"comanche_8php.html#ae9fe1ce574db3dd0931eada80234f82a":[6,0,0,19,6],
+"comanche_8php.html#aed39ecad69234f3ddf61f0dedb49a58e":[6,0,0,19,1],
+"comanche_8php.html#af7150df735e5ff9d467994cd6f769c6e":[6,0,0,19,8],
+"common_8php.html":[6,0,1,16],
+"common_8php.html#ab63408f39abef7a6915186e8dabc5a96":[6,0,1,16,0],
+"common_8php.html#aca62f113655809f41f49042ce9b123c2":[6,0,1,16,1],
+"connect_8php.html":[6,0,1,17],
+"connect_8php.html#a417ec27afe33f21a929667a665e32ee2":[6,0,1,17,2],
+"connect_8php.html#a489f0a66c660de6ec4d6917b27674f07":[6,0,1,17,0],
+"connect_8php.html#ad46a38f32fd7a3d324b1fa26373efa36":[6,0,1,17,1],
+"connections_8php.html":[6,0,1,18],
+"connections_8php.html#a1224058db8e3fb56463eb312f98e561d":[6,0,1,18,3],
+"connections_8php.html#a15af118efee9c948b6f8294e54a73bb2":[6,0,1,18,0],
+"connections_8php.html#a1f23623f802af7bd35e95b0e94e5d558":[6,0,1,18,2],
+"connections_8php.html#aec2e457420fce3e3bf6a9f48e36df25c":[6,0,1,18,1],
+"connedit_8php.html":[6,0,1,19],
+"connedit_8php.html#a234c48426b652bf4d37053f2af329ac5":[6,0,1,19,3],
+"connedit_8php.html#a4da871e075597a09a8b374b9171dd92e":[6,0,1,19,2],
+"connedit_8php.html#a707ea7e63cf9674025b1d6b081ae74f5":[6,0,1,19,0],
+"connedit_8php.html#a795acb3d9d841f55c255d7611681ab67":[6,0,1,19,1],
+"contact__selectors_8php.html":[6,0,0,22],
+"contact__selectors_8php.html#a2c743d2eb526eb758d943a1490162d75":[6,0,0,22,1],
+"contact__selectors_8php.html#a9839e8fdaac7ffb37bf1420493f5c28f":[6,0,0,22,0],
+"contact__selectors_8php.html#ad472e4716426dd1a9dd77b62962454be":[6,0,0,22,2],
+"contact__widgets_8php.html":[6,0,0,23],
+"contact__widgets_8php.html#a165eb021e61c4dcab2a552f28628d353":[6,0,0,23,0],
+"contact__widgets_8php.html#a1eda66319d170f60a8d07c7ece95533b":[6,0,0,23,2],
+"contact__widgets_8php.html#a552f8544528cec0c995cea7287ea9d65":[6,0,0,23,1],
+"contact__widgets_8php.html#a57e73ebcfd62bb5d8c7a7b9e663726d6":[6,0,0,23,3],
+"contactgroup_8php.html":[6,0,1,20],
+"contactgroup_8php.html#a18c7391b1b25debaf98c9dba639caab3":[6,0,1,20,0],
+"conversation_8php.html":[6,0,0,24],
+"conversation_8php.html#a0891aaa4492cba2b51eda12fe01957f3":[6,0,0,24,7],
+"conversation_8php.html#a0ee05f15255fb1cc3d89f30bc378a654":[6,0,0,24,9],
+"conversation_8php.html#a1dfcb5146e9d1eca4528bc580ad5d273":[6,0,0,24,16],
+"conversation_8php.html#a2a7d541854bba755eb8ada59af7dcb1a":[6,0,0,24,22],
+"conversation_8php.html#a3d8e30cc94f9a175054c021305d3aca3":[6,0,0,24,6],
+"conversation_8php.html#a40b9b5e7825bc73932a32e667f05e6f2":[6,0,0,24,17],
+"conversation_8php.html#a4b0888b0f26e1c284a4341fe5fd04f0c":[6,0,0,24,15],
+"conversation_8php.html#a7eeaaf44506815576f3bd80053ef52c3":[6,0,0,24,23],
+"conversation_8php.html#a7f6ef0dfa554bacf620e84c18d386e67":[6,0,0,24,8],
+"conversation_8php.html#a96b34b9d64d13c543e8163e52f5ce8c4":[6,0,0,24,14],
+"conversation_8php.html#a9bd7f9fb6678736c581bcba3b17f471c":[6,0,0,24,13],
+"conversation_8php.html#a9cc2a679606da9e535a06433f9f553a0":[6,0,0,24,21],
+"conversation_8php.html#a9f909b8885259b79c6ac8da93afd8f11":[6,0,0,24,19],
+"conversation_8php.html#aacbb12d372d5e9c3ab0735b4aea48fb3":[6,0,0,24,10],
+"conversation_8php.html#ab2383dff4f823e580399ff469d90ab19":[6,0,0,24,4],
+"conversation_8php.html#abed85a41f1160598de880b84021c9cf7":[6,0,0,24,2],
+"conversation_8php.html#ac55e070f65f46fcc8e269f7896be4c7d":[6,0,0,24,20],
+"conversation_8php.html#ad3e1d4b15e7d6d026ee182edd58f692b":[6,0,0,24,0],
+"conversation_8php.html#ad470fc7766f0db66d138fa1916c7a8b7":[6,0,0,24,1],
+"conversation_8php.html#adda79b75bf1ccf6ce9503aa310953533":[6,0,0,24,11],
+"conversation_8php.html#ae59703b07ce2ddf627b4172ff26058b6":[6,0,0,24,5],
+"conversation_8php.html#ae996eb116d397a2c6396c312d7b98664":[6,0,0,24,18],
+"conversation_8php.html#afe5b2f38d8b803edb0d7ec5fa2868db0":[6,0,0,24,12],
+"conversation_8php.html#affea1afb3f32ca41e966c8ddb4204d81":[6,0,0,24,3],
+"cronhooks_8php.html":[6,0,0,26],
+"cronhooks_8php.html#a4c4c1bbec4ecc9a0efa00dd6afd2c0ca":[6,0,0,26,0],
+"crypto_8php.html":[6,0,0,27],
+"crypto_8php.html#a0781202b0a43b82426929cc87c2fa2b5":[6,0,0,27,5],
+"crypto_8php.html#a0e941b6b18ff895d1a2448741abf2ef2":[6,0,0,27,17],
+"crypto_8php.html#a2148d7aac7b30c720f7ebda7e9790286":[6,0,0,27,2],
+"crypto_8php.html#a2a3fae7caca27f86d158eeaf69b6f287":[6,0,0,27,19],
+"crypto_8php.html#a32fc08d57a5694f94d8543ecbb03323c":[6,0,0,27,4],
+"crypto_8php.html#a35bc357c93f4ddc67ef377620b0349e8":[6,0,0,27,12],
+"crypto_8php.html#a4d15d19b446dbf47804675df7c85e2a9":[6,0,0,27,14],
+"crypto_8php.html#a573f02517abe4ac9241268263063b2a0":[6,0,0,27,9],
+"crypto_8php.html#a5c61821d205f95f127114159cbffa764":[6,0,0,27,1],
+"crypto_8php.html#a630e1574554f34e7c38511585d9e71a2":[6,0,0,27,6],
+"crypto_8php.html#a7427a18417341aa35e2207bfa205e432":[6,0,0,27,18],
+"crypto_8php.html#a798368843cdd9bb08386b48e53e29e8c":[6,0,0,27,11],
+"crypto_8php.html#a7f7e650aaeaa3832580a73eb00966b26":[6,0,0,27,22],
+"crypto_8php.html#a890b443f80f0968fb9eabd93fc99dbb5":[6,0,0,27,13],
+"crypto_8php.html#a9191447cc46f0b4eaba3273e313994d5":[6,0,0,27,23],
+"crypto_8php.html#a920e5f222d0020f47556033d8b2b6552":[6,0,0,27,20],
+"crypto_8php.html#aae0ab70d6a199b29555b1ac3cf250d6a":[6,0,0,27,10],
+"crypto_8php.html#ab4f21d8f6b8ece0915e7c8bb73379f96":[6,0,0,27,21],
+"crypto_8php.html#ac852ee41392d1358c3a54d54935e0bf9":[6,0,0,27,0],
+"crypto_8php.html#ac95ac3b1b23b65b04a86613d4206ae85":[6,0,0,27,16],
+"crypto_8php.html#aca7c3a574bfb6c6ef1f2403a56823914":[6,0,0,27,3],
+"crypto_8php.html#ad5e51fd44cff93cfaa07a37e24a5edec":[6,0,0,27,15],
+"crypto_8php.html#ae5af17db1cb5d7c91d486e1264079839":[6,0,0,27,7],
+"crypto_8php.html#af8bbdeaf4abed7b40365d301e6013c85":[6,0,0,27,8],
"dark_8php.html":[6,0,3,1,3,1,2],
"darkness_8php.html":[6,0,3,1,0,2,0],
"darknessleftaside_8php.html":[6,0,3,1,0,2,1],
"darknessrightaside_8php.html":[6,0,3,1,0,2,2],
-"datetime_8php.html":[6,0,0,27],
-"datetime_8php.html#a03900dcf0f9e3c58793a031673a70326":[6,0,0,27,6],
-"datetime_8php.html#a36d3d6dff8d76b5f295bb3d9c535a5b1":[6,0,0,27,11],
-"datetime_8php.html#a3f2897db32e745fe2f3e70a6b46578f8":[6,0,0,27,5],
-"datetime_8php.html#a5f29553799005b1fd4e9ce9d98ce05aa":[6,0,0,27,3],
-"datetime_8php.html#a633dadba426fa2f60b25fabdb19ebc1f":[6,0,0,27,10],
-"datetime_8php.html#a7df24d72ea05922d3127363e2295174c":[6,0,0,27,7],
-"datetime_8php.html#a8ae8dc95ace7ac27fa5a1ecf42b78c82":[6,0,0,27,9],
-"datetime_8php.html#aa51b5a7ea4f931b23acbdfcea46e9865":[6,0,0,27,12],
-"datetime_8php.html#ab55e545b72ec8c097e052ea7d373491f":[6,0,0,27,14],
-"datetime_8php.html#aba971b67f17fecf050813f1eba72367f":[6,0,0,27,8],
-"datetime_8php.html#abc1652f96799cec6fce8797ba2ebc2df":[6,0,0,27,0],
-"datetime_8php.html#ac265b86f384ee094ed5479aae02aa5c8":[6,0,0,27,2],
-"datetime_8php.html#ad6301e74b0f9267d52f8d432b5beb226":[6,0,0,27,4],
-"datetime_8php.html#aea356409ba69f9de412298c998595dd2":[6,0,0,27,1],
-"datetime_8php.html#af1cd77c97c901d9239cb7a61f97f9826":[6,0,0,27,13],
-"db__update_8php.html":[6,0,2,2],
-"dba__driver_8php.html":[6,0,0,0,0],
-"dba__driver_8php.html#a2c09a731d3b4fef41fed0e83db01be1f":[6,0,0,0,0,8],
-"dba__driver_8php.html#a55bf30d8176967e682656b5be4ad9249":[6,0,0,0,0,7],
-"dba__driver_8php.html#a65b83462bd26968106aebd43f16540e4":[6,0,0,0,0,3],
-"dba__driver_8php.html#aa377074e70981e8c4e82ca0accd068ee":[6,0,0,0,0,6],
-"dba__driver_8php.html#aa6607893d8f60ade9122bcfbd1a53ffb":[6,0,0,0,0,5],
-"dba__driver_8php.html#ab222aa1dbf9ea93b320f82028739127e":[6,0,0,0,0,2],
-"dba__driver_8php.html#ac10e60f6e5b95bcf67bd82cb88f37947":[6,0,0,0,0,1],
-"dba__driver_8php.html#af531546fac5f0836a8557a4f6dfee930":[6,0,0,0,0,4],
-"dba__mysql_8php.html":[6,0,0,0,1],
-"dba__mysqli_8php.html":[6,0,0,0,2],
-"delegate_8php.html":[6,0,1,22],
-"delegate_8php.html#a943eea8996ef348eb845c498f9f354dd":[6,0,1,22,0],
-"deliver_8php.html":[6,0,0,28],
-"deliver_8php.html#a397afcb9afecf0c1816b0951189dd346":[6,0,0,28,0],
-"diaspora_8php.html":[6,0,0,29],
-"diaspora_8php.html#a006731620a5242d410358b32678e48e3":[6,0,0,29,0],
-"diaspora_8php.html#a0b3628a5e53332c3d3196b689fe2b94d":[6,0,0,29,24],
-"diaspora_8php.html#a0fb2abe304aae19efc040a5e6b917829":[6,0,0,29,1],
-"diaspora_8php.html#a131abd521b218d6ae6f7d2917d8b2605":[6,0,0,29,15],
-"diaspora_8php.html#a1704748aa2384c73e43f10e71defd31a":[6,0,0,29,25],
-"diaspora_8php.html#a20b968d64ef26afe5cb0cc75a7570a31":[6,0,0,29,14],
-"diaspora_8php.html#a2bf43f6b5890897f425ef4325d34b007":[6,0,0,29,19],
-"diaspora_8php.html#a33ae0c4606a7df4d801c05507d87f668":[6,0,0,29,26],
-"diaspora_8php.html#a4901762cba5cd8dcdc57bdf285eefb1b":[6,0,0,29,12],
-"diaspora_8php.html#a586d5a3ba92d35cee14f879f290072aa":[6,0,0,29,17],
-"diaspora_8php.html#a5d57518545baa31cf8a85a937a267681":[6,0,0,29,10],
-"diaspora_8php.html#a5ed66b910d7b0284f9b3ee04e72306ff":[6,0,0,29,7],
-"diaspora_8php.html#a6f0a67b6b17503c125af32763be931b7":[6,0,0,29,4],
-"diaspora_8php.html#a71fe9bb66626b4197ae018a230778bb2":[6,0,0,29,13],
-"diaspora_8php.html#a7cff2f8f11044c1b3a360f20e1bbee46":[6,0,0,29,11],
-"diaspora_8php.html#a849754ec369e1a60fadae5c14584ca36":[6,0,0,29,3],
-"diaspora_8php.html#a858f70153c384f8778082cf7843a19da":[6,0,0,29,8],
-"diaspora_8php.html#a900abf51398b2ef26cd2cd31c52f1b0f":[6,0,0,29,16],
-"diaspora_8php.html#a938c7ee808d38725c0988fa6006805b9":[6,0,0,29,20],
-"diaspora_8php.html#a9bf7ef4094e0e14f6e2b7fe76ab7ad2e":[6,0,0,29,32],
-"diaspora_8php.html#aa34d2748bb97e9e193cacd572f335055":[6,0,0,29,28],
-"diaspora_8php.html#aa4b1cc0bca5c3fe8d11557685e0238a9":[6,0,0,29,30],
-"diaspora_8php.html#aa704d6aa2ac77be345c0f501168e6e56":[6,0,0,29,29],
-"diaspora_8php.html#aa8e551a53fcce34be3942d0c3e20d1f4":[6,0,0,29,6],
-"diaspora_8php.html#aade0c165fcdded71352c7a67bf6ce37b":[6,0,0,29,31],
-"diaspora_8php.html#ab99505944728d46585b8312989de533d":[6,0,0,29,5],
-"diaspora_8php.html#ac1ab782a34552a7c6b4dc961754ed598":[6,0,0,29,18],
-"diaspora_8php.html#ad9985cc4214bdfc14878785c838c8690":[6,0,0,29,9],
-"diaspora_8php.html#adef30b6fac948baedcc7194d5d155b5f":[6,0,0,29,2],
-"diaspora_8php.html#ae6f52efd81fe515cd9912bc8293abf5b":[6,0,0,29,22],
-"diaspora_8php.html#aeb2bb78f620dbf51d9335e6eb7444f2c":[6,0,0,29,23],
-"diaspora_8php.html#af3a7f9879c14fec761dcc5563fb39bac":[6,0,0,29,27],
-"diaspora_8php.html#af4698b165766f83d89ec1ea964bc92cc":[6,0,0,29,21],
-"dir_032dd9e2cfe278a2cfa5eb9547448eb9.html":[6,0,3,1,3,0],
-"dir_05f4fba29266e8fd7869afcd6cefb5cb.html":[6,0,3,1,0,2],
-"dir_0eaa4a0adae8ba4811e133c6e594aeee.html":[6,0,2,0],
-"dir_21bc5169ff11430004758be31dcfc6c4.html":[6,0,0,0],
-"dir_23ec12649285f9fabf3a6b7380226c28.html":[6,0,2],
-"dir_25f74a9991dbbca1b52a94e358ca73c1.html":[6,0,2,1,0],
-"dir_3d9c9d0c5e9556dd3eba1e072fa6eaeb.html":[6,0,3,1,3,1],
-"dir_55dbaf9b7b53c4fc605c9011743a7353.html":[6,0,3,1,3],
-"dir_6cee3bb9ace89cc4e2f065aa2ca7bc5b.html":[6,0,3,1,1,1,0],
-"dir_720432dea4a717197ae070dbc42b8f20.html":[6,0,2,1],
-"dir_817f6d302394b98e59575acdb59998bc.html":[6,0,3,0],
-"dir_8543001e5d25368a6edede3e63efb554.html":[6,0,3,1],
-"dir_887fdc94312ba7b057b6bfe7fdd27ea5.html":[6,0,3,1,2,0],
-"dir_8e58ba5e98ac07e59ee15ca7486c9950.html":[6,0,3,1,2],
-"dir_922c77e958c99a98db92d38a3a349bf2.html":[6,0,3,1,1],
-"dir_92d6b429199666aa3765c8a934db5e14.html":[6,0,3,1,1,1],
-"dir__fns_8php.html":[6,0,0,30],
-"dir__fns_8php.html#a2f7d74bb2aea8bcd2537aee5c6708a16":[6,0,0,30,0],
-"dir__fns_8php.html#a44062d4b471d1e83f92f6c184585aa13":[6,0,0,30,6],
-"dir__fns_8php.html#a8c15aa69da12f2d3476b9e93b82b337d":[6,0,0,30,3],
-"dir__fns_8php.html#aa666e7df6ca8c332f4081c9b66b4bdf6":[6,0,0,30,5]
+"datetime_8php.html":[6,0,0,28],
+"datetime_8php.html#a03900dcf0f9e3c58793a031673a70326":[6,0,0,28,6],
+"datetime_8php.html#a3f239f94e23335d860b148958d87a093":[6,0,0,28,11],
+"datetime_8php.html#a3f2897db32e745fe2f3e70a6b46578f8":[6,0,0,28,5],
+"datetime_8php.html#a633dadba426fa2f60b25fabdb19ebc1f":[6,0,0,28,10],
+"datetime_8php.html#a72218e5ee21876484934bacbb6bd9ba3":[6,0,0,28,4],
+"datetime_8php.html#a77bb385ae8a9e7ca663309c102c0d766":[6,0,0,28,2],
+"datetime_8php.html#a7df24d72ea05922d3127363e2295174c":[6,0,0,28,7],
+"datetime_8php.html#a8ae8dc95ace7ac27fa5a1ecf42b78c82":[6,0,0,28,9],
+"datetime_8php.html#aa51b5a7ea4f931b23acbdfcea46e9865":[6,0,0,28,12],
+"datetime_8php.html#ab55e545b72ec8c097e052ea7d373491f":[6,0,0,28,14],
+"datetime_8php.html#aba971b67f17fecf050813f1eba72367f":[6,0,0,28,8],
+"datetime_8php.html#abc1652f96799cec6fce8797ba2ebc2df":[6,0,0,28,0],
+"datetime_8php.html#ad6301e74b0f9267d52f8d432b5beb226":[6,0,0,28,3],
+"datetime_8php.html#aea356409ba69f9de412298c998595dd2":[6,0,0,28,1]
};
diff --git a/doc/html/navtreeindex4.js b/doc/html/navtreeindex4.js
index d1955779a..b59cdb5ae 100644
--- a/doc/html/navtreeindex4.js
+++ b/doc/html/navtreeindex4.js
@@ -1,108 +1,204 @@
var NAVTREEINDEX4 =
{
-"dir__fns_8php.html#acd37b17dce3bdec6d5a6344a20598c1e":[6,0,0,30,4],
-"dir__fns_8php.html#acf621621e929d49441da30aad76a58cf":[6,0,0,30,1],
-"dir__fns_8php.html#ae56881d69bb6f8e828c9e35454386774":[6,0,0,30,2],
-"dir_a8a0005c2b8590c535262d232c22afab.html":[6,0,3,1,1,1,0,0],
-"dir_aae29906d7bfc07d076125f669c8352e.html":[6,0,0,1],
+"datetime_8php.html#af1cd77c97c901d9239cb7a61f97f9826":[6,0,0,28,13],
+"db__update_8php.html":[6,0,2,1],
+"dba__driver_8php.html":[6,0,0,0,0],
+"dba__driver_8php.html#a2994daa03b1c23229a27e39bcab75e67":[6,0,0,0,0,2],
+"dba__driver_8php.html#a2a38996670c2936b5769270c49c57593":[6,0,0,0,0,11],
+"dba__driver_8php.html#a2c09a731d3b4fef41fed0e83db01be1f":[6,0,0,0,0,17],
+"dba__driver_8php.html#a2c8a72ec73f39b17a167c90737693f78":[6,0,0,0,0,12],
+"dba__driver_8php.html#a30e9a643be804e905f5614a3279d2645":[6,0,0,0,0,5],
+"dba__driver_8php.html#a55bf30d8176967e682656b5be4ad9249":[6,0,0,0,0,16],
+"dba__driver_8php.html#a5df8499634c47b30191f34069d7b98c0":[6,0,0,0,0,6],
+"dba__driver_8php.html#a65b83462bd26968106aebd43f16540e4":[6,0,0,0,0,8],
+"dba__driver_8php.html#a75098bf1d59ea57f7ebae657a369137e":[6,0,0,0,0,3],
+"dba__driver_8php.html#a7c1b98a710ead27382c958ad3216c4ee":[6,0,0,0,0,1],
+"dba__driver_8php.html#aa051799567690a124a3b865bf902f58a":[6,0,0,0,0,10],
+"dba__driver_8php.html#aa377074e70981e8c4e82ca0accd068ee":[6,0,0,0,0,14],
+"dba__driver_8php.html#aa6607893d8f60ade9122bcfbd1a53ffb":[6,0,0,0,0,13],
+"dba__driver_8php.html#ab222aa1dbf9ea93b320f82028739127e":[6,0,0,0,0,7],
+"dba__driver_8php.html#acec84a8fb75d78daf657cbe5df74e25a":[6,0,0,0,0,4],
+"dba__driver_8php.html#af531546fac5f0836a8557a4f6dfee930":[6,0,0,0,0,9],
+"dba__driver_8php.html#afaaa1a7eff9c1b65b3b8c464ae37640e":[6,0,0,0,0,15],
+"dba__mysql_8php.html":[6,0,0,0,1],
+"dba__mysqli_8php.html":[6,0,0,0,2],
+"dba__postgres_8php.html":[6,0,0,0,3],
+"delegate_8php.html":[6,0,1,21],
+"delegate_8php.html#a943eea8996ef348eb845c498f9f354dd":[6,0,1,21,0],
+"deliver_8php.html":[6,0,0,29],
+"deliver_8php.html#a397afcb9afecf0c1816b0951189dd346":[6,0,0,29,0],
+"diaspora_8php.html":[6,0,0,30],
+"diaspora_8php.html#a006731620a5242d410358b32678e48e3":[6,0,0,30,0],
+"diaspora_8php.html#a0b3628a5e53332c3d3196b689fe2b94d":[6,0,0,30,24],
+"diaspora_8php.html#a0fb2abe304aae19efc040a5e6b917829":[6,0,0,30,1],
+"diaspora_8php.html#a131abd521b218d6ae6f7d2917d8b2605":[6,0,0,30,15],
+"diaspora_8php.html#a1704748aa2384c73e43f10e71defd31a":[6,0,0,30,25],
+"diaspora_8php.html#a20b968d64ef26afe5cb0cc75a7570a31":[6,0,0,30,14],
+"diaspora_8php.html#a2bf43f6b5890897f425ef4325d34b007":[6,0,0,30,19],
+"diaspora_8php.html#a33ae0c4606a7df4d801c05507d87f668":[6,0,0,30,26],
+"diaspora_8php.html#a4901762cba5cd8dcdc57bdf285eefb1b":[6,0,0,30,12],
+"diaspora_8php.html#a586d5a3ba92d35cee14f879f290072aa":[6,0,0,30,17],
+"diaspora_8php.html#a5d57518545baa31cf8a85a937a267681":[6,0,0,30,10],
+"diaspora_8php.html#a5ed66b910d7b0284f9b3ee04e72306ff":[6,0,0,30,7],
+"diaspora_8php.html#a69f250b078a46e405647428ec3399a16":[6,0,0,30,27],
+"diaspora_8php.html#a6f0a67b6b17503c125af32763be931b7":[6,0,0,30,4],
+"diaspora_8php.html#a71fe9bb66626b4197ae018a230778bb2":[6,0,0,30,13],
+"diaspora_8php.html#a7cff2f8f11044c1b3a360f20e1bbee46":[6,0,0,30,11],
+"diaspora_8php.html#a849754ec369e1a60fadae5c14584ca36":[6,0,0,30,3],
+"diaspora_8php.html#a858f70153c384f8778082cf7843a19da":[6,0,0,30,8],
+"diaspora_8php.html#a900abf51398b2ef26cd2cd31c52f1b0f":[6,0,0,30,16],
+"diaspora_8php.html#a938c7ee808d38725c0988fa6006805b9":[6,0,0,30,20],
+"diaspora_8php.html#a9bf7ef4094e0e14f6e2b7fe76ab7ad2e":[6,0,0,30,32],
+"diaspora_8php.html#aa34d2748bb97e9e193cacd572f335055":[6,0,0,30,28],
+"diaspora_8php.html#aa704d6aa2ac77be345c0f501168e6e56":[6,0,0,30,29],
+"diaspora_8php.html#aa8e551a53fcce34be3942d0c3e20d1f4":[6,0,0,30,6],
+"diaspora_8php.html#aade0c165fcdded71352c7a67bf6ce37b":[6,0,0,30,31],
+"diaspora_8php.html#ab736d6f32b5de31c97cb579fc730e200":[6,0,0,30,30],
+"diaspora_8php.html#ab99505944728d46585b8312989de533d":[6,0,0,30,5],
+"diaspora_8php.html#ac1ab782a34552a7c6b4dc961754ed598":[6,0,0,30,18],
+"diaspora_8php.html#ac9e41e46626dc608204bf4b5e16e62d7":[6,0,0,30,33],
+"diaspora_8php.html#ad9985cc4214bdfc14878785c838c8690":[6,0,0,30,9],
+"diaspora_8php.html#adef30b6fac948baedcc7194d5d155b5f":[6,0,0,30,2],
+"diaspora_8php.html#ae6f52efd81fe515cd9912bc8293abf5b":[6,0,0,30,22],
+"diaspora_8php.html#aeb2bb78f620dbf51d9335e6eb7444f2c":[6,0,0,30,23],
+"diaspora_8php.html#af4698b165766f83d89ec1ea964bc92cc":[6,0,0,30,21],
+"dimport_8php.html":[6,0,0,31],
+"dimport_8php.html#a581f040717941ce3e1868b0b5dceefd1":[6,0,0,31,0],
+"dir_0262a6a8df56a167e3761b6e5a54bb1c.html":[6,0,3,1,5],
+"dir_032dd9e2cfe278a2cfa5eb9547448eb9.html":[6,0,3,1,3,0],
+"dir_05f4fba29266e8fd7869afcd6cefb5cb.html":[6,0,3,1,0,2],
+"dir_0eaa4a0adae8ba4811e133c6e594aeee.html":[6,0,2,0],
+"dir_21bc5169ff11430004758be31dcfc6c4.html":[6,0,0,0],
+"dir_23ec12649285f9fabf3a6b7380226c28.html":[6,0,2],
+"dir_3d9c9d0c5e9556dd3eba1e072fa6eaeb.html":[6,0,3,1,3,1],
+"dir_4acb285a1960a920438b718da0958cf4.html":[6,0,3,1,4],
+"dir_55dbaf9b7b53c4fc605c9011743a7353.html":[6,0,3,1,3],
+"dir_65522070e0a83623cefc01ebe26a83e3.html":[6,0,3,1,4,0],
+"dir_6e52a2a2cd27c08b7df5e5cdb216bd77.html":[6,0,3,1,1],
+"dir_7edbbd0f8c514efef79942dcdc21f738.html":[6,0,0,1],
+"dir_817f6d302394b98e59575acdb59998bc.html":[6,0,3,0],
+"dir_8543001e5d25368a6edede3e63efb554.html":[6,0,3,1],
+"dir_887fdc94312ba7b057b6bfe7fdd27ea5.html":[6,0,3,1,2,0],
+"dir_8e58ba5e98ac07e59ee15ca7486c9950.html":[6,0,3,1,2],
+"dir_9ef82eb3846cd201470898c3b6ef38cf.html":[6,0,3,1,1,0],
+"dir__fns_8php.html":[6,0,0,32],
+"dir__fns_8php.html#a2f7d74bb2aea8bcd2537aee5c6708a16":[6,0,0,32,0],
+"dir__fns_8php.html#a44062d4b471d1e83f92f6c184585aa13":[6,0,0,32,6],
+"dir__fns_8php.html#a8c15aa69da12f2d3476b9e93b82b337d":[6,0,0,32,3],
+"dir__fns_8php.html#aa666e7df6ca8c332f4081c9b66b4bdf6":[6,0,0,32,5],
+"dir__fns_8php.html#acd37b17dce3bdec6d5a6344a20598c1e":[6,0,0,32,4],
+"dir__fns_8php.html#acf621621e929d49441da30aad76a58cf":[6,0,0,32,1],
+"dir__fns_8php.html#ae56881d69bb6f8e828c9e35454386774":[6,0,0,32,2],
+"dir_aae29906d7bfc07d076125f669c8352e.html":[6,0,0,2],
+"dir_ac4f5165c8d71ebb1a1a0a168a48f3f7.html":[6,0,3,1,5,0],
"dir_b2f003339c516cc00c8cadcafbe82f13.html":[6,0,3],
-"dir_c02447ad39a5307c81c64e880ec9e8d3.html":[6,0,3,1,1,0],
"dir_cb8a8f75dcdd0b3fbfcc82e9eda410c5.html":[6,0,3,1,0,1],
"dir_d41ce877eb409a4791b288730010abe2.html":[6,0,1],
"dir_d44c64559bbebec7f509842c48db8b23.html":[6,0,0],
"dir_d520c5cf583201d9437764f209363c22.html":[6,0,3,1,0],
+"dir_e7f045be8bb383d8447c6a6b84145083.html":[6,0,0,3],
"dir_f19da925ee886ec38f19b0e8c19779bc.html":[6,0,3,1,0,0],
-"dirprofile_8php.html":[6,0,1,24],
-"dirprofile_8php.html#a3e1d30d3d93863ff5615f2df4ac7f052":[6,0,1,24,0],
-"dirsearch_8php.html":[6,0,1,25],
-"dirsearch_8php.html#a3e51964ae3f5ff147403407b65324752":[6,0,1,25,3],
-"dirsearch_8php.html#a52bcac49b0e35cc8c6b70066143c2ee2":[6,0,1,25,1],
-"dirsearch_8php.html#a7d4cd9890d5ed23c3efc58e2a778a305":[6,0,1,25,0],
-"dirsearch_8php.html#a985d410a170549429857af6ff2673149":[6,0,1,25,4],
-"dirsearch_8php.html#aa1fb04e1de4f25b63349ac78f94ceb4c":[6,0,1,25,2],
-"display_8php.html":[6,0,1,26],
-"display_8php.html#a37137c98d47bf3306f4c2bb9f5b60de0":[6,0,1,26,0],
-"docblox__errorchecker_8php.html":[6,0,2,3],
-"docblox__errorchecker_8php.html#a1659f0a629d408e0f849dbe4ee061e62":[6,0,2,3,3],
-"docblox__errorchecker_8php.html#a21b4bbe5aae2d85db33affc7126a67ec":[6,0,2,3,2],
-"docblox__errorchecker_8php.html#a2b767cfc461fdd5061fffc9e4a806d5b":[6,0,2,3,0],
-"docblox__errorchecker_8php.html#a49a8a4009b02e49717caa88b128affc5":[6,0,2,3,8],
-"docblox__errorchecker_8php.html#a648a570b0f9f6e0e51b7267647c4b09b":[6,0,2,3,5],
-"docblox__errorchecker_8php.html#a721c6ff80a6d3e4ad4ffa52a04c60085":[6,0,2,3,9],
-"docblox__errorchecker_8php.html#a83018d9153d17d91fbcf3bc10158d34f":[6,0,2,3,6],
-"docblox__errorchecker_8php.html#a852004caba0a34390297a079f4aaac73":[6,0,2,3,7],
-"docblox__errorchecker_8php.html#ab66bc0493d25f39bf8b4dcbb429f04e6":[6,0,2,3,4],
-"docblox__errorchecker_8php.html#ae9562cf60aa693114603d27b55d2185f":[6,0,2,3,1],
-"docblox__errorchecker_8php.html#af4ca738a05beffe9c8c23e1f7aea3c2d":[6,0,2,3,10],
-"editblock_8php.html":[6,0,1,27],
-"editblock_8php.html#abbe8f55de06967bc8d79d620509a49e6":[6,0,1,27,0],
-"editlayout_8php.html":[6,0,1,28],
-"editlayout_8php.html#aa877e4157a26b099de904164181dd386":[6,0,1,28,0],
-"editpost_8php.html":[6,0,1,29],
-"editpost_8php.html#a34011690864d122680c802e9e748ccfb":[6,0,1,29,0],
-"editwebpage_8php.html":[6,0,1,30],
-"editwebpage_8php.html#a375e945255fad79a71036528f7480650":[6,0,1,30,0],
-"enotify_8php.html":[6,0,0,32],
-"enotify_8php.html#a3e9a9355b243777c488d2a9883908dfc":[6,0,0,32,1],
-"event_8php.html":[6,0,0,33],
-"event_8php.html#a018ea4484910a873a7c1eaa126de9b1a":[6,0,0,33,8],
-"event_8php.html#a180cccd63c2a2f00ff432b03113531f3":[6,0,0,33,0],
-"event_8php.html#a184d6b9690e5b6dee35a0aa9edd47279":[6,0,0,33,1],
-"event_8php.html#a2ac9f1b08de03250ecd794f705781d17":[6,0,0,33,7],
-"event_8php.html#a32ba1b9ddf7a744a9a1512b052e5f850":[6,0,0,33,2],
-"event_8php.html#a7378e839ac3de9d55579eb3ec48eaf92":[6,0,0,33,5],
-"event_8php.html#abb74206cf42d694307c3d7abb7af9869":[6,0,0,33,6],
-"event_8php.html#ac9f206819186b65952ac1869f0da8c6e":[6,0,0,33,3],
-"event_8php.html#af5ac41e7ea3f7131088fe6333fd2846c":[6,0,0,33,4],
-"events_8php.html":[6,0,1,31],
-"events_8php.html#a1d293fb217ae6bc9e3858c4b32e363ec":[6,0,1,31,0],
-"events_8php.html#ab3e8a8f901175f8e40a8089eea45c075":[6,0,1,31,1],
-"expire_8php.html":[6,0,0,34],
-"expire_8php.html#a444e45c9b67727b27db4c779fd51a298":[6,0,0,34,0],
-"externals_8php.html":[6,0,0,35],
-"externals_8php.html#a4df44079e6f915286088b7a0d44db926":[6,0,0,35,0],
-"extract_8php.html":[6,0,2,4],
-"extract_8php.html#a0cbe524ffc9a496114fd7ba9f423ef44":[6,0,2,4,3],
-"extract_8php.html#a50b05cf2e02ef0b67fcad97106dd7634":[6,0,2,4,2],
-"extract_8php.html#a63bb4c41bc532baacf6a4976cfaa0feb":[6,0,2,4,0],
-"extract_8php.html#a9590b15215a21e9b42eb546aeef79704":[6,0,2,4,1],
-"fbrowser_8php.html":[6,0,1,32],
-"fbrowser_8php.html#aee476addcf7a3e0fe9454f7dfd5a56c4":[6,0,1,32,0],
-"features_8php.html":[6,0,0,36],
-"features_8php.html#a52b5bdfb61b256713efecf7a7b20b0c0":[6,0,0,36,0],
-"features_8php.html#ae73c5b03b01c7284ed7e7e0e774e975c":[6,0,0,36,1],
-"feed_8php.html":[6,0,1,33],
-"feed_8php.html#af86137700b56f33d1d5f25c8dec22c04":[6,0,1,33,0],
-"filer_8php.html":[6,0,1,34],
-"filer_8php.html#a5fd5d7e61b2f9c43cb5f110c89dc4274":[6,0,1,34,0],
-"filerm_8php.html":[6,0,1,35],
-"filerm_8php.html#ae2eb28d2054fa2c37e38689882172208":[6,0,1,35,0],
+"dirsearch_8php.html":[6,0,1,23],
+"dirsearch_8php.html#a3e51964ae3f5ff147403407b65324752":[6,0,1,23,4],
+"dirsearch_8php.html#a52bcac49b0e35cc8c6b70066143c2ee2":[6,0,1,23,2],
+"dirsearch_8php.html#a7d4cd9890d5ed23c3efc58e2a778a305":[6,0,1,23,1],
+"dirsearch_8php.html#a985d410a170549429857af6ff2673149":[6,0,1,23,5],
+"dirsearch_8php.html#aa1fb04e1de4f25b63349ac78f94ceb4c":[6,0,1,23,3],
+"dirsearch_8php.html#ab6d5fefa98da249a994b910434a669c2":[6,0,1,23,0],
+"display_8php.html":[6,0,1,24],
+"display_8php.html#a37137c98d47bf3306f4c2bb9f5b60de0":[6,0,1,24,0],
+"docblox__errorchecker_8php.html":[6,0,2,2],
+"docblox__errorchecker_8php.html#a1659f0a629d408e0f849dbe4ee061e62":[6,0,2,2,3],
+"docblox__errorchecker_8php.html#a21b4bbe5aae2d85db33affc7126a67ec":[6,0,2,2,2],
+"docblox__errorchecker_8php.html#a2b767cfc461fdd5061fffc9e4a806d5b":[6,0,2,2,0],
+"docblox__errorchecker_8php.html#a49a8a4009b02e49717caa88b128affc5":[6,0,2,2,8],
+"docblox__errorchecker_8php.html#a648a570b0f9f6e0e51b7267647c4b09b":[6,0,2,2,5],
+"docblox__errorchecker_8php.html#a721c6ff80a6d3e4ad4ffa52a04c60085":[6,0,2,2,9],
+"docblox__errorchecker_8php.html#a83018d9153d17d91fbcf3bc10158d34f":[6,0,2,2,6],
+"docblox__errorchecker_8php.html#a852004caba0a34390297a079f4aaac73":[6,0,2,2,7],
+"docblox__errorchecker_8php.html#ab66bc0493d25f39bf8b4dcbb429f04e6":[6,0,2,2,4],
+"docblox__errorchecker_8php.html#ae9562cf60aa693114603d27b55d2185f":[6,0,2,2,1],
+"docblox__errorchecker_8php.html#af4ca738a05beffe9c8c23e1f7aea3c2d":[6,0,2,2,10],
+"editblock_8php.html":[6,0,1,25],
+"editblock_8php.html#ab7806bb42ae5e93f0330d7bd179d4b3e":[6,0,1,25,1],
+"editblock_8php.html#abbe8f55de06967bc8d79d620509a49e6":[6,0,1,25,0],
+"editlayout_8php.html":[6,0,1,26],
+"editlayout_8php.html#a97c1e93d9e75ad8cd2c2f9a7f77341a7":[6,0,1,26,1],
+"editlayout_8php.html#aa877e4157a26b099de904164181dd386":[6,0,1,26,0],
+"editpost_8php.html":[6,0,1,27],
+"editpost_8php.html#a34011690864d122680c802e9e748ccfb":[6,0,1,27,0],
+"editwebpage_8php.html":[6,0,1,28],
+"editwebpage_8php.html#a375e945255fad79a71036528f7480650":[6,0,1,28,0],
+"editwebpage_8php.html#a94109f9c796fbe92508bf9574e35d19f":[6,0,1,28,1],
+"enotify_8php.html":[6,0,0,34],
+"enotify_8php.html#a3e9a9355b243777c488d2a9883908dfc":[6,0,0,34,1],
+"event_8php.html":[6,0,0,35],
+"event_8php.html#a018ea4484910a873a7c1eaa126de9b1a":[6,0,0,35,11],
+"event_8php.html#a05073cd4ab837bd4a0149e8ed23ce688":[6,0,0,35,9],
+"event_8php.html#a180cccd63c2a2f00ff432b03113531f3":[6,0,0,35,0],
+"event_8php.html#a184d6b9690e5b6dee35a0aa9edd47279":[6,0,0,35,1],
+"event_8php.html#a2ac9f1b08de03250ecd794f705781d17":[6,0,0,35,7],
+"event_8php.html#a32ba1b9ddf7a744a9a1512b052e5f850":[6,0,0,35,2],
+"event_8php.html#a3ff7f1824540a38f4a3991a59a9542d4":[6,0,0,35,8],
+"event_8php.html#a7378e839ac3de9d55579eb3ec48eaf92":[6,0,0,35,5],
+"event_8php.html#ab8cc2825013e724dc26229026711cf93":[6,0,0,35,10],
+"event_8php.html#abb74206cf42d694307c3d7abb7af9869":[6,0,0,35,6],
+"event_8php.html#ac9f206819186b65952ac1869f0da8c6e":[6,0,0,35,3],
+"event_8php.html#af5ac41e7ea3f7131088fe6333fd2846c":[6,0,0,35,4],
+"events_8php.html":[6,0,1,29],
+"events_8php.html#a1d293fb217ae6bc9e3858c4b32e363ec":[6,0,1,29,0],
+"events_8php.html#ab3e8a8f901175f8e40a8089eea45c075":[6,0,1,29,1],
+"expire_8php.html":[6,0,0,36],
+"expire_8php.html#a444e45c9b67727b27db4c779fd51a298":[6,0,0,36,0],
+"externals_8php.html":[6,0,0,37],
+"externals_8php.html#a4df44079e6f915286088b7a0d44db926":[6,0,0,37,0],
+"extract_8php.html":[6,0,2,3],
+"extract_8php.html#a0cbe524ffc9a496114fd7ba9f423ef44":[6,0,2,3,3],
+"extract_8php.html#a50b05cf2e02ef0b67fcad97106dd7634":[6,0,2,3,2],
+"extract_8php.html#a63bb4c41bc532baacf6a4976cfaa0feb":[6,0,2,3,0],
+"extract_8php.html#a9590b15215a21e9b42eb546aeef79704":[6,0,2,3,1],
+"fbrowser_8php.html":[6,0,1,30],
+"fbrowser_8php.html#aee476addcf7a3e0fe9454f7dfd5a56c4":[6,0,1,30,0],
+"features_8php.html":[6,0,0,38],
+"features_8php.html#a52b5bdfb61b256713efecf7a7b20b0c0":[6,0,0,38,0],
+"features_8php.html#ae73c5b03b01c7284ed7e7e0e774e975c":[6,0,0,38,1],
+"feed_8php.html":[6,0,1,31],
+"feed_8php.html#af86137700b56f33d1d5f25c8dec22c04":[6,0,1,31,0],
+"filer_8php.html":[6,0,1,32],
+"filer_8php.html#a5fd5d7e61b2f9c43cb5f110c89dc4274":[6,0,1,32,0],
+"filerm_8php.html":[6,0,1,33],
+"filerm_8php.html#ae2eb28d2054fa2c37e38689882172208":[6,0,1,33,0],
"files.html":[6,0],
-"filestorage_8php.html":[6,0,1,36],
-"filestorage_8php.html#a61bb1be78472555df4ce619f51014040":[6,0,1,36,0],
-"filestorage_8php.html#ad3b64e3ece9831f9d3a9f00c0ae983cd":[6,0,1,36,1],
+"filestorage_8php.html":[6,0,1,34],
+"filestorage_8php.html#a61bb1be78472555df4ce619f51014040":[6,0,1,34,0],
+"filestorage_8php.html#ad3b64e3ece9831f9d3a9f00c0ae983cd":[6,0,1,34,1],
+"fixd_8php.html":[6,0,0,39],
+"fixd_8php.html#a241b818f48030b628685b2e5119c5624":[6,0,0,39,2],
+"fixd_8php.html#a2da3681c9cce2efe7de29aa578ff4219":[6,0,0,39,1],
+"fixd_8php.html#a8abe176bc41afd728f32ba8c506cbd98":[6,0,0,39,0],
+"fixd_8php.html#a9d4f8a2ab4d92b3ccfd7cba0458098eb":[6,0,0,39,3],
"fpostit_8php.html":[6,0,2,0,0],
"fpostit_8php.html#a3f3ae3ae61578b5671673914fd894443":[6,0,2,0,0,0],
"fpostit_8php.html#a501b5ca82f287509fc691c88524064c1":[6,0,2,0,0,1],
-"friendica-to-smarty-tpl_8py.html":[6,0,2,5],
-"friendica-to-smarty-tpl_8py.html#a005c1b7a69cac31fad72a941974ba7bb":[6,0,2,5,11],
-"friendica-to-smarty-tpl_8py.html#a0b4cf73d1a8d201a28d269eeb62a5d5c":[6,0,2,5,8],
-"friendica-to-smarty-tpl_8py.html#a3719dd46e286a57d315e6adae1845854":[6,0,2,5,1],
-"friendica-to-smarty-tpl_8py.html#a38503e37fe68ac27c88cce91a9ac9efa":[6,0,2,5,0],
-"friendica-to-smarty-tpl_8py.html#a5dfc21ab8282dda8e3a7dff43cd0e283":[6,0,2,5,13],
-"friendica-to-smarty-tpl_8py.html#a5f9bf7a67d955c0d6be70a82097611c5":[6,0,2,5,6],
-"friendica-to-smarty-tpl_8py.html#a68d15934660cd1f4301ce251b1646f09":[6,0,2,5,12],
-"friendica-to-smarty-tpl_8py.html#a8540514fb7c4aa18ad2dffa2a975036b":[6,0,2,5,14],
-"friendica-to-smarty-tpl_8py.html#a87182a9bab47640428bd0b2b9946bef9":[6,0,2,5,10],
-"friendica-to-smarty-tpl_8py.html#a89388ea9b2826e8218ed480e917d8105":[6,0,2,5,2],
-"friendica-to-smarty-tpl_8py.html#a965e1d6d6293654a56e029a7e454dec7":[6,0,2,5,5],
-"friendica-to-smarty-tpl_8py.html#ad9ef87ccb2c9960501f5e02424a22d80":[6,0,2,5,9],
-"friendica-to-smarty-tpl_8py.html#ae74419b16516956c66f7db714a93a6ac":[6,0,2,5,7],
-"friendica-to-smarty-tpl_8py.html#aecf730e0884bb4ddc6c0deb1ef85f8eb":[6,0,2,5,4],
-"friendica-to-smarty-tpl_8py.html#af6b2c793958aae2aadc294577431f749":[6,0,2,5,3],
-"fsuggest_8php.html":[6,0,1,38],
-"fsuggest_8php.html#a61ecfe10ce937ed526614f8fd3de3c7d":[6,0,1,38,1],
-"fsuggest_8php.html#aa6c49ed4b50a387f1845f36844dd7998":[6,0,1,38,0],
+"friendica-to-smarty-tpl_8py.html":[6,0,2,4],
+"friendica-to-smarty-tpl_8py.html#a005c1b7a69cac31fad72a941974ba7bb":[6,0,2,4,11],
+"friendica-to-smarty-tpl_8py.html#a0b4cf73d1a8d201a28d269eeb62a5d5c":[6,0,2,4,8],
+"friendica-to-smarty-tpl_8py.html#a3719dd46e286a57d315e6adae1845854":[6,0,2,4,1],
+"friendica-to-smarty-tpl_8py.html#a38503e37fe68ac27c88cce91a9ac9efa":[6,0,2,4,0],
+"friendica-to-smarty-tpl_8py.html#a5dfc21ab8282dda8e3a7dff43cd0e283":[6,0,2,4,13],
+"friendica-to-smarty-tpl_8py.html#a5f9bf7a67d955c0d6be70a82097611c5":[6,0,2,4,6],
+"friendica-to-smarty-tpl_8py.html#a68d15934660cd1f4301ce251b1646f09":[6,0,2,4,12],
+"friendica-to-smarty-tpl_8py.html#a8540514fb7c4aa18ad2dffa2a975036b":[6,0,2,4,14],
+"friendica-to-smarty-tpl_8py.html#a87182a9bab47640428bd0b2b9946bef9":[6,0,2,4,10],
+"friendica-to-smarty-tpl_8py.html#a89388ea9b2826e8218ed480e917d8105":[6,0,2,4,2],
+"friendica-to-smarty-tpl_8py.html#a965e1d6d6293654a56e029a7e454dec7":[6,0,2,4,5],
+"friendica-to-smarty-tpl_8py.html#ad9ef87ccb2c9960501f5e02424a22d80":[6,0,2,4,9],
+"friendica-to-smarty-tpl_8py.html#ae74419b16516956c66f7db714a93a6ac":[6,0,2,4,7],
+"friendica-to-smarty-tpl_8py.html#aecf730e0884bb4ddc6c0deb1ef85f8eb":[6,0,2,4,4],
+"friendica-to-smarty-tpl_8py.html#af6b2c793958aae2aadc294577431f749":[6,0,2,4,3],
+"fsuggest_8php.html":[6,0,1,36],
+"fsuggest_8php.html#a61ecfe10ce937ed526614f8fd3de3c7d":[6,0,1,36,1],
+"fsuggest_8php.html#aa6c49ed4b50a387f1845f36844dd7998":[6,0,1,36,0],
"full_8php.html":[6,0,3,0,2],
"full_8php.html#a3987f5547ceb7e36a210a66a06241a5a":[6,0,3,0,2,0],
"functions.html":[5,3,0],
@@ -129,8 +225,8 @@ var NAVTREEINDEX4 =
"functions_0x76.html":[5,3,0,20],
"functions_8php.html":[6,0,3,1,0,1,1],
"functions_8php.html#adefe514c95680928b3aae250cbc3c663":[6,0,3,1,0,1,1,0],
-"functions_func.html":[5,3,1],
"functions_func.html":[5,3,1,0],
+"functions_func.html":[5,3,1],
"functions_func_0x61.html":[5,3,1,1],
"functions_func_0x62.html":[5,3,1,2],
"functions_func_0x63.html":[5,3,1,3],
@@ -151,103 +247,7 @@ var NAVTREEINDEX4 =
"functions_func_0x75.html":[5,3,1,18],
"functions_func_0x76.html":[5,3,1,19],
"functions_vars.html":[5,3,2],
-"globals.html":[6,1,0],
"globals.html":[6,1,0,0],
-"globals_0x5f.html":[6,1,0,1],
-"globals_0x61.html":[6,1,0,2],
-"globals_0x62.html":[6,1,0,3],
-"globals_0x63.html":[6,1,0,4],
-"globals_0x64.html":[6,1,0,5],
-"globals_0x65.html":[6,1,0,6],
-"globals_0x66.html":[6,1,0,7],
-"globals_0x67.html":[6,1,0,8],
-"globals_0x68.html":[6,1,0,9],
-"globals_0x69.html":[6,1,0,10],
-"globals_0x6a.html":[6,1,0,11],
-"globals_0x6b.html":[6,1,0,12],
-"globals_0x6c.html":[6,1,0,13],
-"globals_0x6d.html":[6,1,0,14],
-"globals_0x6e.html":[6,1,0,15],
-"globals_0x6f.html":[6,1,0,16],
-"globals_0x70.html":[6,1,0,17],
-"globals_0x71.html":[6,1,0,18],
-"globals_0x72.html":[6,1,0,19],
-"globals_0x73.html":[6,1,0,20],
-"globals_0x74.html":[6,1,0,21],
-"globals_0x75.html":[6,1,0,22],
-"globals_0x76.html":[6,1,0,23],
-"globals_0x77.html":[6,1,0,24],
-"globals_0x78.html":[6,1,0,25],
-"globals_0x7a.html":[6,1,0,26],
-"globals_func.html":[6,1,1],
-"globals_func.html":[6,1,1,0],
-"globals_func_0x61.html":[6,1,1,1],
-"globals_func_0x62.html":[6,1,1,2],
-"globals_func_0x63.html":[6,1,1,3],
-"globals_func_0x64.html":[6,1,1,4],
-"globals_func_0x65.html":[6,1,1,5],
-"globals_func_0x66.html":[6,1,1,6],
-"globals_func_0x67.html":[6,1,1,7],
-"globals_func_0x68.html":[6,1,1,8],
-"globals_func_0x69.html":[6,1,1,9],
-"globals_func_0x6a.html":[6,1,1,10],
-"globals_func_0x6b.html":[6,1,1,11],
-"globals_func_0x6c.html":[6,1,1,12],
-"globals_func_0x6d.html":[6,1,1,13],
-"globals_func_0x6e.html":[6,1,1,14],
-"globals_func_0x6f.html":[6,1,1,15],
-"globals_func_0x70.html":[6,1,1,16],
-"globals_func_0x71.html":[6,1,1,17],
-"globals_func_0x72.html":[6,1,1,18],
-"globals_func_0x73.html":[6,1,1,19],
-"globals_func_0x74.html":[6,1,1,20],
-"globals_func_0x75.html":[6,1,1,21],
-"globals_func_0x76.html":[6,1,1,22],
-"globals_func_0x77.html":[6,1,1,23],
-"globals_func_0x78.html":[6,1,1,24],
-"globals_func_0x7a.html":[6,1,1,25],
-"globals_vars.html":[6,1,2],
-"globals_vars.html":[6,1,2,0],
-"globals_vars_0x61.html":[6,1,2,1],
-"globals_vars_0x63.html":[6,1,2,2],
-"globals_vars_0x64.html":[6,1,2,3],
-"globals_vars_0x65.html":[6,1,2,4],
-"globals_vars_0x66.html":[6,1,2,5],
-"globals_vars_0x67.html":[6,1,2,6],
-"globals_vars_0x68.html":[6,1,2,7],
-"globals_vars_0x69.html":[6,1,2,8],
-"globals_vars_0x6a.html":[6,1,2,9],
-"globals_vars_0x6b.html":[6,1,2,10],
-"globals_vars_0x6c.html":[6,1,2,11],
-"globals_vars_0x6d.html":[6,1,2,12],
-"globals_vars_0x6e.html":[6,1,2,13],
-"globals_vars_0x70.html":[6,1,2,14],
-"globals_vars_0x72.html":[6,1,2,15],
-"globals_vars_0x73.html":[6,1,2,16],
-"globals_vars_0x74.html":[6,1,2,17],
-"globals_vars_0x75.html":[6,1,2,18],
-"globals_vars_0x77.html":[6,1,2,19],
-"globals_vars_0x78.html":[6,1,2,20],
-"globals_vars_0x7a.html":[6,1,2,21],
-"gprobe_8php.html":[6,0,0,38],
-"gprobe_8php.html#adf72cb0a70b5b9d99fdec1cc60e18ed1":[6,0,0,38,0],
-"greenthumbnails_8php.html":[6,0,3,1,0,2,3],
-"hcard_8php.html":[6,0,1,40],
-"hcard_8php.html#a3663012f1549849af88aba2bb87388e3":[6,0,1,40,0],
-"hcard_8php.html#ac34f26b0e6a37eef44fa49bea135136d":[6,0,1,40,1],
-"help_8php.html":[6,0,1,41],
-"help_8php.html#a06b2a51aaabed99e53a9b639047c4ce4":[6,0,1,41,1],
-"help_8php.html#af055e15f600ffa6fbca9386fdf715224":[6,0,1,41,0],
-"hierarchy.html":[5,2],
-"home_8php.html":[6,0,1,42],
-"home_8php.html#aa1cf697851a646755baf537f75334c46":[6,0,1,42,0],
-"home_8php.html#ac4642c38b6f23a8d065dd4a75c620bde":[6,0,1,42,1],
-"hostxrd_8php.html":[6,0,1,43],
-"hostxrd_8php.html#aa37ffc8e7900bc76c4828bd25916db92":[6,0,1,43,0],
-"html2bbcode_8php.html":[6,0,0,40],
-"html2bbcode_8php.html#a39c662b19d318990fee2ba795a55d7a7":[6,0,0,40,3],
-"html2bbcode_8php.html#a5ad726995ac4070213abdb3bd09f4837":[6,0,0,40,1],
-"html2bbcode_8php.html#a71a07f135d196ec5943b13f7b2e6a9b2":[6,0,0,40,0],
-"html2bbcode_8php.html#ad174afe0ccbd8c475e48f8a6ee2f27d8":[6,0,0,40,2],
-"html2plain_8php.html":[6,0,0,41]
+"globals.html":[6,1,0],
+"globals_0x5f.html":[6,1,0,1]
};
diff --git a/doc/html/navtreeindex5.js b/doc/html/navtreeindex5.js
index fce0cb86e..5ff3f0feb 100644
--- a/doc/html/navtreeindex5.js
+++ b/doc/html/navtreeindex5.js
@@ -1,253 +1,253 @@
var NAVTREEINDEX5 =
{
-"html2plain_8php.html#a3214912e3d00cf0a948072daccf16740":[6,0,0,41,0],
-"html2plain_8php.html#a56d29b254333d29abb9d96a9a903a4b0":[6,0,0,41,3],
-"html2plain_8php.html#ab3e121fa9f3feb16f9f942e705bc6c04":[6,0,0,41,2],
-"html2plain_8php.html#ae1c203d0f089d5678d73a6c64a395201":[6,0,0,41,1],
-"hubloc_8php.html":[6,0,0,42],
-"hubloc_8php.html#ad3d0dcfcfcb347744f7617fe6f5de002":[6,0,0,42,1],
-"hubloc_8php.html#aebd244b4616ded022cbbee5e82926951":[6,0,0,42,0],
-"identity_8php.html":[6,0,0,43],
-"identity_8php.html#a1cf83ac2b645de12868edaa3a5718f05":[6,0,0,43,3],
-"identity_8php.html#a224710dfb7465b706c91134247c20afa":[6,0,0,43,11],
-"identity_8php.html#a2ab5172eabd375869060c9ad68323f5c":[6,0,0,43,17],
-"identity_8php.html#a332df795f684788002f5a6424abacfd7":[6,0,0,43,10],
-"identity_8php.html#a345f4c943d84de502ec6e72d2c813945":[6,0,0,43,2],
-"identity_8php.html#a3570a4eb77332b292d394c4132cb8f03":[6,0,0,43,15],
-"identity_8php.html#a432259b2cf5b6f59be53e71db9f2c7dc":[6,0,0,43,24],
-"identity_8php.html#a4751b522ea913d0e7ed43e03d22e9e68":[6,0,0,43,23],
-"identity_8php.html#a47d6f53216f23a3484061793bef29854":[6,0,0,43,25],
-"identity_8php.html#a490972c02fdb638c52ec0e012a30bfd2":[6,0,0,43,8],
-"identity_8php.html#a4e996e44b50330098a04b467367a559f":[6,0,0,43,20],
-"identity_8php.html#a4ff59df0f0a668a06a8411f87496aa21":[6,0,0,43,12],
-"identity_8php.html#a5b815330f3d177ab383af37a6c12e532":[6,0,0,43,28],
-"identity_8php.html#a680fbafc2db023c5b1309e0180e81315":[6,0,0,43,29],
-"identity_8php.html#a77d2237f1846964634b1c99089c27c7d":[6,0,0,43,1],
-"identity_8php.html#a78151baf4407a8482d2681a91a9c486b":[6,0,0,43,26],
-"identity_8php.html#a9637c557e13d9671f3eeb124ab98212a":[6,0,0,43,19],
-"identity_8php.html#aa46321e1cd6a3b8dfde8bf9510112fec":[6,0,0,43,9],
-"identity_8php.html#aa4bd4abfcba883f43919e89ec6419025":[6,0,0,43,21],
-"identity_8php.html#aa870d2c1f558cfd52bef05bc124e8fa4":[6,0,0,43,0],
-"identity_8php.html#aaeb666872995e3ab8da8f7bc5f3b2bd3":[6,0,0,43,14],
-"identity_8php.html#aaff86ee3b5984821e7a256c2da5f1a51":[6,0,0,43,13],
-"identity_8php.html#ab1485a26b032956e1496fc08c58b83ed":[6,0,0,43,6],
-"identity_8php.html#ac73b3e13778c564c877554517a7f51ba":[6,0,0,43,5],
-"identity_8php.html#ac9fcd5c4c371998790b5c55c3d0f4633":[6,0,0,43,16],
-"identity_8php.html#ad2c97627a313d53df1a1c7b4215ddb51":[6,0,0,43,4],
-"identity_8php.html#ad4a2c8caca8f6ae93633ebeca0ed6620":[6,0,0,43,22],
-"identity_8php.html#ae2b140df652a55ca11bb6a99005fce35":[6,0,0,43,18],
-"identity_8php.html#ae381db3d43f8e7c1da8b15d14ecf5312":[6,0,0,43,7],
-"identity_8php.html#af2802bc13a00a17b867bba7978ba8f58":[6,0,0,43,27],
-"import_8php.html":[6,0,1,44],
-"import_8php.html#af17fef0410518f7eac205d0ea416eaa2":[6,0,1,44,1],
-"import_8php.html#afdf25ed70096d5dbf4f6d0ca79fea184":[6,0,1,44,0],
-"importelm_8php.html":[6,0,1,45],
-"importelm_8php.html#a1a4f71e6d76ace6add5e9659845f5e5f":[6,0,1,45,0],
-"include_2api_8php.html":[6,0,0,5],
-"include_2api_8php.html#a0991f72554f821255397d615e76f3203":[6,0,0,5,12],
-"include_2api_8php.html#a176c448d79c211ad41c2bbe3124658f5":[6,0,0,5,5],
-"include_2api_8php.html#a18cab7c6391df5c421753463f5d2a879":[6,0,0,5,18],
-"include_2api_8php.html#a2c71b1226ef1283b5370bd1c200fee5f":[6,0,0,5,15],
-"include_2api_8php.html#a2e94eab9d6c164bfef7a1b2ab87b339b":[6,0,0,5,0],
-"include_2api_8php.html#a32f0dda848d0c11c727fe1c3e741c283":[6,0,0,5,44],
-"include_2api_8php.html#a36344c80b8e9755da2f2dd3a0e28cce8":[6,0,0,5,16],
-"include_2api_8php.html#a43c47de8565cc00c3369cb35c19cc75e":[6,0,0,5,50],
-"include_2api_8php.html#a450d8732b7b608f7ac929aee61572b95":[6,0,0,5,38],
-"include_2api_8php.html#a4c6fb9fb5203aa60f4b3afd4521db8ea":[6,0,0,5,19],
-"include_2api_8php.html#a528d8070ee74ea800102936ce73cf366":[6,0,0,5,37],
-"include_2api_8php.html#a53b0680b682ae6078f2e1ed18cfb3f74":[6,0,0,5,21],
-"include_2api_8php.html#a58cf4c02ef435996f5c3bc4283d3968d":[6,0,0,5,13],
-"include_2api_8php.html#a5990101034e7abf6404feba3cd273629":[6,0,0,5,4],
-"include_2api_8php.html#a623793229a7256dd31bcfd5ab90eef08":[6,0,0,5,45],
-"include_2api_8php.html#a645397787618b5c548a31e8686e8cca4":[6,0,0,5,32],
-"include_2api_8php.html#a6951c690d87775eb37e569c66011988e":[6,0,0,5,35],
-"include_2api_8php.html#a6a04b48168ba1d9dd2de3081a630611f":[6,0,0,5,31],
-"include_2api_8php.html#a72bfecac1970bc29b853073e816388ff":[6,0,0,5,6],
-"include_2api_8php.html#a7759ccddc8dff012ad168e511ffe5af5":[6,0,0,5,9],
-"include_2api_8php.html#a864191bb876a515ed71b17e260ef35ad":[6,0,0,5,2],
-"include_2api_8php.html#a8969e8d9c683f12ba17dcd4b059e020d":[6,0,0,5,46],
-"include_2api_8php.html#a8b25a186bd0893f51aa72a62f655735e":[6,0,0,5,39],
-"include_2api_8php.html#a9160288b7ac220635942d8dc209b78c3":[6,0,0,5,10],
-"include_2api_8php.html#a970b02c06dea8b229aa3d5fff9cf4705":[6,0,0,5,8],
-"include_2api_8php.html#aa0d6b29fff0344a8e67f3507a6d01410":[6,0,0,5,34],
-"include_2api_8php.html#aa1bddb580510e70cc1a7b7381667f1a3":[6,0,0,5,28],
-"include_2api_8php.html#aa40bae797bcd9ccacffdce5a3b5a1afa":[6,0,0,5,23],
-"include_2api_8php.html#aa49741342ad8ba285737eea1209a37e1":[6,0,0,5,25],
-"include_2api_8php.html#aa62b15a6bbb280e86b98132eb214013d":[6,0,0,5,52],
-"include_2api_8php.html#aa6fc3bc8c0fad1d081db0dcc456dd77f":[6,0,0,5,29],
-"include_2api_8php.html#aa9dc5350b26d6c7727d6c4b641ecba18":[6,0,0,5,3],
-"include_2api_8php.html#aafa82b65a9f879a1a1197cfe8aaf3898":[6,0,0,5,49],
-"include_2api_8php.html#ab1ecb58954f722444bfe03233345cb1b":[6,0,0,5,17],
-"include_2api_8php.html#abe8e929e93f7ab134b1cb1fb30f19a76":[6,0,0,5,48],
-"include_2api_8php.html#ac2c2b18c426d697d11a830bca146be8a":[6,0,0,5,30],
-"include_2api_8php.html#ac5a64cc81d70ff3cf866093ea9721d23":[6,0,0,5,24],
-"include_2api_8php.html#acafd2899309a005fcb725289173dc7fe":[6,0,0,5,22],
-"include_2api_8php.html#ad24ce1bf20867add4c9211a8eaf93f22":[6,0,0,5,40],
-"include_2api_8php.html#ad2b0192f3006918bea895de8074bf8d2":[6,0,0,5,11],
-"include_2api_8php.html#ad4c29f43418f6110f85a6b3998239ab4":[6,0,0,5,33],
-"include_2api_8php.html#ad4d1634df6b35126552324683caaffa2":[6,0,0,5,43],
-"include_2api_8php.html#ade742525b2e41c82b090799ef3c51d5e":[6,0,0,5,36],
-"include_2api_8php.html#adfc035ee6303c1d8ba5336a4ead2bd53":[6,0,0,5,14],
-"include_2api_8php.html#ae0fa388479cace9c5a7a45b571ab42f8":[6,0,0,5,41],
-"include_2api_8php.html#ae82608c317421f27446465aa6724733d":[6,0,0,5,20],
-"include_2api_8php.html#ae8f5863e18d69421005c71441c9d99a5":[6,0,0,5,1],
-"include_2api_8php.html#aea2dda92a155f2843a0ca188d8dfdf25":[6,0,0,5,7],
-"include_2api_8php.html#aeb2e7ad00ea666b4b6dfcf82008194f8":[6,0,0,5,51],
-"include_2api_8php.html#af6f1d89cdb0a0621025efbec1597bc63":[6,0,0,5,42],
-"include_2api_8php.html#afb99daa6b731bf497b81f2128084852c":[6,0,0,5,47],
-"include_2api_8php.html#afe534f826e4282b72d66e8cadca7bb73":[6,0,0,5,26],
-"include_2api_8php.html#aff322705cc6084b329003fc8eab0aad0":[6,0,0,5,27],
-"include_2apps_8php.html":[6,0,0,6],
-"include_2apps_8php.html#a01cabfb33b2d0d843cf3bf4e3d3f0ab0":[6,0,0,6,5],
-"include_2apps_8php.html#a15626f24069c18816f7cdaf4735f58f9":[6,0,0,6,8],
-"include_2apps_8php.html#a1adcd1aff4d36ad0277daca9f3d2bbe2":[6,0,0,6,4],
-"include_2apps_8php.html#a1b2e737f477a2e0d9d11ef14adc5aa66":[6,0,0,6,7],
-"include_2apps_8php.html#a1cb5c016510e39bcdc1d1c096d51c5c7":[6,0,0,6,2],
-"include_2apps_8php.html#a32fe4ed9666228fd4b67dc487cc57a83":[6,0,0,6,12],
-"include_2apps_8php.html#a48289d5cc44b7638191738106ac5d030":[6,0,0,6,13],
-"include_2apps_8php.html#a6b472df85ed875e7ae75642cece5206f":[6,0,0,6,1],
-"include_2apps_8php.html#a72756e1601489eb77971eeda011446d0":[6,0,0,6,3],
-"include_2apps_8php.html#ab93a3310b7de99ee90f673518eccb658":[6,0,0,6,6],
-"include_2apps_8php.html#ad5f6f1443725386cc7af5ed34a5fe185":[6,0,0,6,0],
-"include_2apps_8php.html#ad6ba3f254003f69f8f3f94ca5bda0680":[6,0,0,6,11],
-"include_2apps_8php.html#ae64f72eb4f126e03b4eb65ed1702a3ca":[6,0,0,6,10],
-"include_2apps_8php.html#aeab6a62d2f3dfaa86ed043a006305f46":[6,0,0,6,9],
-"include_2attach_8php.html":[6,0,0,7],
-"include_2attach_8php.html#a052f14487ff2ce72f62a09fac8d7e997":[6,0,0,7,9],
-"include_2attach_8php.html#a0d07c5b83d3d54e186f752e571847b36":[6,0,0,7,0],
-"include_2attach_8php.html#a1d72ef7cb940f6868e3e2a841cadfe8f":[6,0,0,7,11],
-"include_2attach_8php.html#a3634af95f11a023dd8e882c3c7a3600d":[6,0,0,7,5],
-"include_2attach_8php.html#a4dbfd7e1cef52aa9ef52f4b88929fa86":[6,0,0,7,8],
-"include_2attach_8php.html#a5c0875eafb8c0f8a0620ff7a875a2221":[6,0,0,7,2],
-"include_2attach_8php.html#a5d484de2d19a93071571d6499a50ae34":[6,0,0,7,12],
-"include_2attach_8php.html#a6aa00ea010ea030110faefb75eafc1ce":[6,0,0,7,10],
-"include_2attach_8php.html#a6fdd92775f31c07d2863e16e0026018a":[6,0,0,7,13],
-"include_2attach_8php.html#a70bd666e080c2af5a91f5d14c297b8cd":[6,0,0,7,4],
-"include_2attach_8php.html#a84a8a64c4805e1525b42d4add464833f":[6,0,0,7,7],
-"include_2attach_8php.html#a887d2d44a3ef18dcb6624e7fb58dc8e3":[6,0,0,7,3],
-"include_2attach_8php.html#ab6830b3ab74a5d284876141ac80f6cbc":[6,0,0,7,6],
-"include_2attach_8php.html#ad991208ce939387e2f93a3bce7d09932":[6,0,0,7,1],
-"include_2attach_8php.html#aeb07968990e66a88c95483ca09a7f909":[6,0,0,7,14],
-"include_2bookmarks_8php.html":[6,0,0,12],
-"include_2bookmarks_8php.html#a743763b0ce83af0bbc8a2f7ac16033aa":[6,0,0,12,1],
-"include_2bookmarks_8php.html#aef1cb2968c41c759f2d106e1088ca323":[6,0,0,12,0],
-"include_2chanman_8php.html":[6,0,0,14],
-"include_2chanman_8php.html#a21ba9a5c961e866ff27aee3ee67bf99b":[6,0,0,14,0],
-"include_2chat_8php.html":[6,0,0,15],
-"include_2chat_8php.html#a1ee1360f7d2549c7549ae07cb5190f0f":[6,0,0,15,4],
-"include_2chat_8php.html#a2ba3af6884ecdce95de69262fe599639":[6,0,0,15,2],
-"include_2chat_8php.html#a2c95b545e46bfee64faa05ecf0afea91":[6,0,0,15,3],
-"include_2chat_8php.html#acdc80dba4eb796c7472b21129b435422":[6,0,0,15,1],
-"include_2chat_8php.html#acea6b176eb7aff44d9ba3ae24ce511d3":[6,0,0,15,0],
-"include_2chat_8php.html#aedcb532a0627b8644001a2fadab4e87a":[6,0,0,15,5],
-"include_2config_8php.html":[6,0,0,19],
-"include_2config_8php.html#a27559f388c9b9af81c94e48d6889d1d1":[6,0,0,19,7],
-"include_2config_8php.html#a549910227348003efc3c05c9105c42da":[6,0,0,19,0],
-"include_2config_8php.html#a55bbed9a014c9109c767486834f3ca33":[6,0,0,19,9],
-"include_2config_8php.html#a61591371cb18764138655d67dc817ab2":[6,0,0,19,11],
-"include_2config_8php.html#a7ad2081c5f812ac4387fd76f3762d941":[6,0,0,19,1],
-"include_2config_8php.html#a9c171def547deee16738dc58fdeb4b72":[6,0,0,19,2],
-"include_2config_8php.html#aa3dc1d3de2d091ac702e675acd3a085e":[6,0,0,19,6],
-"include_2config_8php.html#ac543813a980b3841cc5a277fcd4a24a6":[6,0,0,19,8],
-"include_2config_8php.html#ad58a4913937179adb13201c2ee3261ad":[6,0,0,19,5],
-"include_2config_8php.html#ad6da879e4fb5b37d1e161d4e9be5c32a":[6,0,0,19,10],
-"include_2config_8php.html#af02c96e6b37335774b548914ede1d22e":[6,0,0,19,3],
-"include_2config_8php.html#af08b7adb63adfb2eda7c466fba0cce74":[6,0,0,19,4],
-"include_2config_8php.html#afe117b70f1bba2f6348d9300b601f86e":[6,0,0,19,12],
-"include_2directory_8php.html":[6,0,0,31],
-"include_2directory_8php.html#aa75d3b0697ca1456aaabdb37a74aa0f0":[6,0,0,31,0],
-"include_2follow_8php.html":[6,0,0,37],
-"include_2follow_8php.html#ae387d4ae097c23d69f3247e7f08140c7":[6,0,0,37,0],
-"include_2group_8php.html":[6,0,0,39],
-"include_2group_8php.html#a0122ef312df2c5546b1a46b3e6c7b31b":[6,0,0,39,2],
-"include_2group_8php.html#a048f6892bfd28852de1b76470df411de":[6,0,0,39,10],
-"include_2group_8php.html#a06ec565d2b64e79044e7c1bf91a2a4ce":[6,0,0,39,1],
-"include_2group_8php.html#a22a81875259c7d3d64d4848afea6b345":[6,0,0,39,0],
-"include_2group_8php.html#a4118f498bbd1530c1d0136d016d197a5":[6,0,0,39,6],
-"include_2group_8php.html#a540e3ef36f47d47532646be4241f6518":[6,0,0,39,7],
-"include_2group_8php.html#a5bd191d9692e6c34d48c0ede10810f09":[6,0,0,39,4],
-"include_2group_8php.html#a6a69bd7be032fa8ce4e49c43a42cc6e9":[6,0,0,39,8],
-"include_2group_8php.html#a90e157b3e1b99c981809cb5a2abd3245":[6,0,0,39,5],
-"include_2group_8php.html#ab0e422a0f31c0c64fd9084ca03d85f32":[6,0,0,39,11],
-"include_2group_8php.html#abd66a5ea34a07a3422dc2dde6c7b3ecb":[6,0,0,39,3],
-"include_2group_8php.html#afb802ae2ce73aae4bc36d157f7b6a92f":[6,0,0,39,9],
-"include_2menu_8php.html":[6,0,0,48],
-"include_2menu_8php.html#a03a5deed3908543581c074ce333e9d6a":[6,0,0,48,10],
-"include_2menu_8php.html#a08a800821721781a8dfffbe31481ff98":[6,0,0,48,1],
-"include_2menu_8php.html#a32701c4245e78ba9106eef52c08bf33d":[6,0,0,48,9],
-"include_2menu_8php.html#a3884bda4d85d84ec99447db9403a68d8":[6,0,0,48,3],
-"include_2menu_8php.html#a47447c01ba8ea04cd74af1d4c5b68fc7":[6,0,0,48,8],
-"include_2menu_8php.html#a68ebbf492470c930f652013656f9071d":[6,0,0,48,7],
-"include_2menu_8php.html#a6a33c6a3db2a7510b16cc656edaec571":[6,0,0,48,5],
-"include_2menu_8php.html#a9aa8e0052dd47c1a93f53a983bd4620a":[6,0,0,48,2],
-"include_2menu_8php.html#acb66f80ca895a6ccd562b3d9ae7b41aa":[6,0,0,48,6],
-"include_2menu_8php.html#ad87f51ce85172bcc3f931aa0cd96a804":[6,0,0,48,4],
-"include_2menu_8php.html#add35fae5e9695031b3d46e30ac409eb8":[6,0,0,48,0],
-"include_2message_8php.html":[6,0,0,49],
-"include_2message_8php.html#a254a756031e4d5e94f85e2939bdb5091":[6,0,0,49,2],
-"include_2message_8php.html#a5f8de9847e203329e317ac38dc646898":[6,0,0,49,1],
-"include_2message_8php.html#a652973ce47a262f2d238c2fd6233d97e":[6,0,0,49,3],
-"include_2message_8php.html#a751ffd6635022b2190f56154ee745752":[6,0,0,49,4],
-"include_2message_8php.html#aed272d77c06a309e2836ac79e75613f1":[6,0,0,49,0],
-"include_2network_8php.html":[6,0,0,51],
-"include_2network_8php.html#a1ff07d9fad93b713b93da0ab77aab7f0":[6,0,0,51,7],
-"include_2network_8php.html#a27a951b59d8d622c0b3e7b0673ba74c6":[6,0,0,51,14],
-"include_2network_8php.html#a316f318167a039c89719afbd129a8f3c":[6,0,0,51,16],
-"include_2network_8php.html#a3e6c751a51de33ad3563f0938296e78a":[6,0,0,51,20],
-"include_2network_8php.html#a469b9bd700269cd07d954f1a16c5899b":[6,0,0,51,6],
-"include_2network_8php.html#a4c5d50079e089168d9248427018fffd4":[6,0,0,51,12],
-"include_2network_8php.html#a4cfb2c05a1c295317283d762440ce0b2":[6,0,0,51,11],
-"include_2network_8php.html#a5176176ddc1906d91f186df6fbd87b48":[6,0,0,51,4],
-"include_2network_8php.html#a5caa264fab6d2b2344e6bd5b298b08f2":[6,0,0,51,19],
-"include_2network_8php.html#a63e62946e194928eb17c5a9f2bbef0fe":[6,0,0,51,5],
-"include_2network_8php.html#a78e89557b2fbd344ad790846d761b0c7":[6,0,0,51,10],
-"include_2network_8php.html#a850ed5307c6a18076f4b80addc99602d":[6,0,0,51,9],
-"include_2network_8php.html#a872bbe72d23826c64c9e0f822180a3ec":[6,0,0,51,13],
-"include_2network_8php.html#a897e7112d86eb95526cbd0bff9375f02":[6,0,0,51,18],
-"include_2network_8php.html#a8d5a3afb51cc932032b5dcc159efaae0":[6,0,0,51,8],
-"include_2network_8php.html#a9129fd55e7fc175b4ea9a195cccc16bc":[6,0,0,51,24],
-"include_2network_8php.html#a99353baabbc3e0584b85eb79ee802cff":[6,0,0,51,21],
-"include_2network_8php.html#a9e9da2aafb806c98ecdc318604e60dc6":[6,0,0,51,22],
-"include_2network_8php.html#aafd06c0a75402aefb06cfb9f9740fa37":[6,0,0,51,23],
-"include_2network_8php.html#ab07ce9d75eae559865ed90aad2154bd7":[6,0,0,51,2],
-"include_2network_8php.html#aba38458a2ff2d92d3536488dbb119694":[6,0,0,51,0],
-"include_2network_8php.html#acb0bd7f5fe38ff1eaebeae3284525070":[6,0,0,51,17],
-"include_2network_8php.html#ad4056d3ce69988f5c1a997a79f503246":[6,0,0,51,3],
-"include_2network_8php.html#ae8d9c41a11000fb8667039fc71b4f73f":[6,0,0,51,15],
-"include_2network_8php.html#aee35d9ad6b3f872bfb39ba3598936aa7":[6,0,0,51,1],
-"include_2notify_8php.html":[6,0,0,53],
-"include_2notify_8php.html#a0e61728e487df50c72e6434f911a57d3":[6,0,0,53,0],
-"include_2oembed_8php.html":[6,0,0,55],
-"include_2oembed_8php.html#a000a62b97113cf95b0e9e00412168172":[6,0,0,55,5],
-"include_2oembed_8php.html#a00c4c80deffd9daf8dc97b58d4c64ed0":[6,0,0,55,7],
-"include_2oembed_8php.html#a03fa3b7832c98a3d0b4630afeb73d487":[6,0,0,55,1],
-"include_2oembed_8php.html#a26bb4c1e330d2f94ea7b6ce2fe970cf3":[6,0,0,55,4],
-"include_2oembed_8php.html#a98549b9af8140eda3eceaeedcaabc2c2":[6,0,0,55,3],
-"include_2oembed_8php.html#a9e57f3e36a0a0a47e6db79544b701d9a":[6,0,0,55,6],
-"include_2oembed_8php.html#ab953a6e7c11bc6498ce01ed73e2ba319":[6,0,0,55,0],
-"include_2oembed_8php.html#aba89ae64b355efcb4f706553d3edb6a2":[6,0,0,55,2],
-"include_2photos_8php.html":[6,0,0,60],
-"include_2photos_8php.html#a6c40ef58aefef705a5adc84a40e97109":[6,0,0,60,0],
-"include_2photos_8php.html#a7e7abc69872180697c5471dc69349afe":[6,0,0,60,2],
-"include_2photos_8php.html#a8e8b7be99e24c2497bc2cb3339280c35":[6,0,0,60,1],
-"include_2photos_8php.html#aa27b9e435dcc34e1009f56dc02c7ca51":[6,0,0,60,7],
-"include_2photos_8php.html#ab0365f25b22ccea5f085fe7c49e1f4ab":[6,0,0,60,3],
-"include_2photos_8php.html#ad648c0c5544fe9263409b6f6e57c6274":[6,0,0,60,6],
-"include_2photos_8php.html#aedccaf18282b26899d9549c29bd9d1b9":[6,0,0,60,5],
-"include_2photos_8php.html#af24c6aeed28ecc31ec39e7d9a1804979":[6,0,0,60,4],
-"include_2probe_8php.html":[6,0,0,63],
-"include_2probe_8php.html#a12ea7a0def2f0e07242b5c9ac684e01a":[6,0,0,63,3],
-"include_2probe_8php.html#a2b4ac769508f7cfc17fee130279b9cb7":[6,0,0,63,4],
-"include_2probe_8php.html#a2daa857942aceca01f956016dbbd139c":[6,0,0,63,1],
-"include_2probe_8php.html#a3c02c7a23e8335a79c3c0f5331d11a85":[6,0,0,63,8],
-"include_2probe_8php.html#a471851151d8cd7fbb79703e9522eeea8":[6,0,0,63,0],
-"include_2probe_8php.html#a950a200372393f706851103cd3fffcba":[6,0,0,63,6],
-"include_2probe_8php.html#a9b5eca1e01e52b3e65d64db0c92181e0":[6,0,0,63,2],
-"include_2probe_8php.html#aa748dc73a6686c13826b1ee9d16c800d":[6,0,0,63,7],
-"include_2probe_8php.html#ab19a52326b27607a0fb8191cc75ba481":[6,0,0,63,5],
-"index.html":[],
-"interfaceITemplateEngine.html":[5,0,18],
-"interfaceITemplateEngine.html#aaa7381c8becc3d1c1790b53988a0f243":[5,0,18,1],
-"interfaceITemplateEngine.html#aaf2698adbf46c073c24b162fe1b1c442":[5,0,18,0],
-"invite_8php.html":[6,0,1,46]
+"globals_0x61.html":[6,1,0,2],
+"globals_0x62.html":[6,1,0,3],
+"globals_0x63.html":[6,1,0,4],
+"globals_0x64.html":[6,1,0,5],
+"globals_0x65.html":[6,1,0,6],
+"globals_0x66.html":[6,1,0,7],
+"globals_0x67.html":[6,1,0,8],
+"globals_0x68.html":[6,1,0,9],
+"globals_0x69.html":[6,1,0,10],
+"globals_0x6a.html":[6,1,0,11],
+"globals_0x6b.html":[6,1,0,12],
+"globals_0x6c.html":[6,1,0,13],
+"globals_0x6d.html":[6,1,0,14],
+"globals_0x6e.html":[6,1,0,15],
+"globals_0x6f.html":[6,1,0,16],
+"globals_0x70.html":[6,1,0,17],
+"globals_0x71.html":[6,1,0,18],
+"globals_0x72.html":[6,1,0,19],
+"globals_0x73.html":[6,1,0,20],
+"globals_0x74.html":[6,1,0,21],
+"globals_0x75.html":[6,1,0,22],
+"globals_0x76.html":[6,1,0,23],
+"globals_0x77.html":[6,1,0,24],
+"globals_0x78.html":[6,1,0,25],
+"globals_0x7a.html":[6,1,0,26],
+"globals_func.html":[6,1,1,0],
+"globals_func.html":[6,1,1],
+"globals_func_0x61.html":[6,1,1,1],
+"globals_func_0x62.html":[6,1,1,2],
+"globals_func_0x63.html":[6,1,1,3],
+"globals_func_0x64.html":[6,1,1,4],
+"globals_func_0x65.html":[6,1,1,5],
+"globals_func_0x66.html":[6,1,1,6],
+"globals_func_0x67.html":[6,1,1,7],
+"globals_func_0x68.html":[6,1,1,8],
+"globals_func_0x69.html":[6,1,1,9],
+"globals_func_0x6a.html":[6,1,1,10],
+"globals_func_0x6b.html":[6,1,1,11],
+"globals_func_0x6c.html":[6,1,1,12],
+"globals_func_0x6d.html":[6,1,1,13],
+"globals_func_0x6e.html":[6,1,1,14],
+"globals_func_0x6f.html":[6,1,1,15],
+"globals_func_0x70.html":[6,1,1,16],
+"globals_func_0x71.html":[6,1,1,17],
+"globals_func_0x72.html":[6,1,1,18],
+"globals_func_0x73.html":[6,1,1,19],
+"globals_func_0x74.html":[6,1,1,20],
+"globals_func_0x75.html":[6,1,1,21],
+"globals_func_0x76.html":[6,1,1,22],
+"globals_func_0x77.html":[6,1,1,23],
+"globals_func_0x78.html":[6,1,1,24],
+"globals_func_0x7a.html":[6,1,1,25],
+"globals_vars.html":[6,1,2],
+"globals_vars.html":[6,1,2,0],
+"globals_vars_0x61.html":[6,1,2,1],
+"globals_vars_0x63.html":[6,1,2,2],
+"globals_vars_0x64.html":[6,1,2,3],
+"globals_vars_0x65.html":[6,1,2,4],
+"globals_vars_0x66.html":[6,1,2,5],
+"globals_vars_0x67.html":[6,1,2,6],
+"globals_vars_0x68.html":[6,1,2,7],
+"globals_vars_0x69.html":[6,1,2,8],
+"globals_vars_0x6a.html":[6,1,2,9],
+"globals_vars_0x6b.html":[6,1,2,10],
+"globals_vars_0x6c.html":[6,1,2,11],
+"globals_vars_0x6d.html":[6,1,2,12],
+"globals_vars_0x6e.html":[6,1,2,13],
+"globals_vars_0x70.html":[6,1,2,14],
+"globals_vars_0x72.html":[6,1,2,15],
+"globals_vars_0x73.html":[6,1,2,16],
+"globals_vars_0x74.html":[6,1,2,17],
+"globals_vars_0x75.html":[6,1,2,18],
+"globals_vars_0x76.html":[6,1,2,19],
+"globals_vars_0x77.html":[6,1,2,20],
+"globals_vars_0x78.html":[6,1,2,21],
+"globals_vars_0x7a.html":[6,1,2,22],
+"gprobe_8php.html":[6,0,0,41],
+"gprobe_8php.html#adf72cb0a70b5b9d99fdec1cc60e18ed1":[6,0,0,41,0],
+"greenthumbnails_8php.html":[6,0,3,1,0,2,3],
+"hcard_8php.html":[6,0,1,38],
+"hcard_8php.html#a3663012f1549849af88aba2bb87388e3":[6,0,1,38,0],
+"hcard_8php.html#ac34f26b0e6a37eef44fa49bea135136d":[6,0,1,38,1],
+"help_8php.html":[6,0,1,39],
+"help_8php.html#a06b2a51aaabed99e53a9b639047c4ce4":[6,0,1,39,1],
+"help_8php.html#af055e15f600ffa6fbca9386fdf715224":[6,0,1,39,0],
+"hierarchy.html":[5,2],
+"hivenet_2php_2style_8php.html":[6,0,3,1,1,0,0],
+"hivenet_2php_2theme_8php.html":[6,0,3,1,1,0,1],
+"hivenet_2php_2theme_8php.html#a3a8b539b112ae63936025236dbaf0a29":[6,0,3,1,1,0,1,0],
+"home_8php.html":[6,0,1,40],
+"home_8php.html#a6e3dbf78f4ed74ab2577de221190b33f":[6,0,1,40,0],
+"home_8php.html#ac4642c38b6f23a8d065dd4a75c620bde":[6,0,1,40,1],
+"hostxrd_8php.html":[6,0,1,41],
+"hostxrd_8php.html#aa37ffc8e7900bc76c4828bd25916db92":[6,0,1,41,0],
+"html2bbcode_8php.html":[6,0,0,43],
+"html2bbcode_8php.html#a39c662b19d318990fee2ba795a55d7a7":[6,0,0,43,3],
+"html2bbcode_8php.html#a5ad726995ac4070213abdb3bd09f4837":[6,0,0,43,1],
+"html2bbcode_8php.html#a71a07f135d196ec5943b13f7b2e6a9b2":[6,0,0,43,0],
+"html2bbcode_8php.html#ad174afe0ccbd8c475e48f8a6ee2f27d8":[6,0,0,43,2],
+"html2plain_8php.html":[6,0,0,44],
+"html2plain_8php.html#a3214912e3d00cf0a948072daccf16740":[6,0,0,44,0],
+"html2plain_8php.html#a56d29b254333d29abb9d96a9a903a4b0":[6,0,0,44,3],
+"html2plain_8php.html#ab3e121fa9f3feb16f9f942e705bc6c04":[6,0,0,44,2],
+"html2plain_8php.html#ae1c203d0f089d5678d73a6c64a395201":[6,0,0,44,1],
+"hubloc_8php.html":[6,0,0,45],
+"hubloc_8php.html#a84c79b7be352f62d12fe4fa2c80fc6ea":[6,0,0,45,3],
+"hubloc_8php.html#acb708dd197aae72a4858cf5ff4e3195b":[6,0,0,45,5],
+"hubloc_8php.html#ad3d0dcfcfcb347744f7617fe6f5de002":[6,0,0,45,2],
+"hubloc_8php.html#ad86214b3a74084bd7b54e8d6c919ce4d":[6,0,0,45,0],
+"hubloc_8php.html#aebd244b4616ded022cbbee5e82926951":[6,0,0,45,1],
+"hubloc_8php.html#af1b476c936f96a93282b1d058e3d05ea":[6,0,0,45,4],
+"identity_8php.html":[6,0,0,46],
+"identity_8php.html#a1cf83ac2b645de12868edaa3a5718f05":[6,0,0,46,3],
+"identity_8php.html#a224710dfb7465b706c91134247c20afa":[6,0,0,46,12],
+"identity_8php.html#a293f416ce9050220b183e08ff5890216":[6,0,0,46,6],
+"identity_8php.html#a2ab5172eabd375869060c9ad68323f5c":[6,0,0,46,18],
+"identity_8php.html#a2e6a1cc35887937823ec7fbb90472afe":[6,0,0,46,23],
+"identity_8php.html#a332df795f684788002f5a6424abacfd7":[6,0,0,46,11],
+"identity_8php.html#a345f4c943d84de502ec6e72d2c813945":[6,0,0,46,2],
+"identity_8php.html#a432259b2cf5b6f59be53e71db9f2c7dc":[6,0,0,46,27],
+"identity_8php.html#a4751b522ea913d0e7ed43e03d22e9e68":[6,0,0,46,26],
+"identity_8php.html#a47d6f53216f23a3484061793bef29854":[6,0,0,46,28],
+"identity_8php.html#a490972c02fdb638c52ec0e012a30bfd2":[6,0,0,46,9],
+"identity_8php.html#a4e996e44b50330098a04b467367a559f":[6,0,0,46,21],
+"identity_8php.html#a4ff59df0f0a668a06a8411f87496aa21":[6,0,0,46,13],
+"identity_8php.html#a5650319c799de09d1b6d1076b6f839a4":[6,0,0,46,24],
+"identity_8php.html#a5b815330f3d177ab383af37a6c12e532":[6,0,0,46,31],
+"identity_8php.html#a680fbafc2db023c5b1309e0180e81315":[6,0,0,46,32],
+"identity_8php.html#a77d2237f1846964634b1c99089c27c7d":[6,0,0,46,1],
+"identity_8php.html#a78151baf4407a8482d2681a91a9c486b":[6,0,0,46,29],
+"identity_8php.html#a9637c557e13d9671f3eeb124ab98212a":[6,0,0,46,20],
+"identity_8php.html#aa46321e1cd6a3b8dfde8bf9510112fec":[6,0,0,46,10],
+"identity_8php.html#aa4bd4abfcba883f43919e89ec6419025":[6,0,0,46,22],
+"identity_8php.html#aa870d2c1f558cfd52bef05bc124e8fa4":[6,0,0,46,0],
+"identity_8php.html#aaeb666872995e3ab8da8f7bc5f3b2bd3":[6,0,0,46,15],
+"identity_8php.html#aaff86ee3b5984821e7a256c2da5f1a51":[6,0,0,46,14],
+"identity_8php.html#ab1485a26b032956e1496fc08c58b83ed":[6,0,0,46,7],
+"identity_8php.html#ac73b3e13778c564c877554517a7f51ba":[6,0,0,46,5],
+"identity_8php.html#ac9fcd5c4c371998790b5c55c3d0f4633":[6,0,0,46,17],
+"identity_8php.html#ad2c97627a313d53df1a1c7b4215ddb51":[6,0,0,46,4],
+"identity_8php.html#ad4a2c8caca8f6ae93633ebeca0ed6620":[6,0,0,46,25],
+"identity_8php.html#ae2b140df652a55ca11bb6a99005fce35":[6,0,0,46,19],
+"identity_8php.html#ae381db3d43f8e7c1da8b15d14ecf5312":[6,0,0,46,8],
+"identity_8php.html#af2802bc13a00a17b867bba7978ba8f58":[6,0,0,46,30],
+"identity_8php.html#afaedbc8e2d2a70ec8b006162baac5249":[6,0,0,46,16],
+"impel_8php.html":[6,0,1,42],
+"impel_8php.html#ab7db6fca43b42ea4332cb3e841b3cf7b":[6,0,1,42,0],
+"import_8php.html":[6,0,1,43],
+"import_8php.html#af17fef0410518f7eac205d0ea416eaa2":[6,0,1,43,1],
+"import_8php.html#afdf25ed70096d5dbf4f6d0ca79fea184":[6,0,1,43,0],
+"importelm_8php.html":[6,0,1,44],
+"importelm_8php.html#a1a4f71e6d76ace6add5e9659845f5e5f":[6,0,1,44,0],
+"include_2api_8php.html":[6,0,0,7],
+"include_2api_8php.html#a0991f72554f821255397d615e76f3203":[6,0,0,7,12],
+"include_2api_8php.html#a176c448d79c211ad41c2bbe3124658f5":[6,0,0,7,5],
+"include_2api_8php.html#a18cab7c6391df5c421753463f5d2a879":[6,0,0,7,18],
+"include_2api_8php.html#a2c71b1226ef1283b5370bd1c200fee5f":[6,0,0,7,15],
+"include_2api_8php.html#a2e94eab9d6c164bfef7a1b2ab87b339b":[6,0,0,7,0],
+"include_2api_8php.html#a32f0dda848d0c11c727fe1c3e741c283":[6,0,0,7,47],
+"include_2api_8php.html#a36344c80b8e9755da2f2dd3a0e28cce8":[6,0,0,7,16],
+"include_2api_8php.html#a43c47de8565cc00c3369cb35c19cc75e":[6,0,0,7,53],
+"include_2api_8php.html#a450d8732b7b608f7ac929aee61572b95":[6,0,0,7,41],
+"include_2api_8php.html#a4c6fb9fb5203aa60f4b3afd4521db8ea":[6,0,0,7,19],
+"include_2api_8php.html#a4fe872332ff0bd8d5eae2f0c6819cb60":[6,0,0,7,32],
+"include_2api_8php.html#a528d8070ee74ea800102936ce73cf366":[6,0,0,7,40],
+"include_2api_8php.html#a53b0680b682ae6078f2e1ed18cfb3f74":[6,0,0,7,21],
+"include_2api_8php.html#a58cf4c02ef435996f5c3bc4283d3968d":[6,0,0,7,13],
+"include_2api_8php.html#a5990101034e7abf6404feba3cd273629":[6,0,0,7,4],
+"include_2api_8php.html#a623793229a7256dd31bcfd5ab90eef08":[6,0,0,7,48],
+"include_2api_8php.html#a645397787618b5c548a31e8686e8cca4":[6,0,0,7,35],
+"include_2api_8php.html#a6951c690d87775eb37e569c66011988e":[6,0,0,7,38],
+"include_2api_8php.html#a6a04b48168ba1d9dd2de3081a630611f":[6,0,0,7,34],
+"include_2api_8php.html#a72bfecac1970bc29b853073e816388ff":[6,0,0,7,6],
+"include_2api_8php.html#a7759ccddc8dff012ad168e511ffe5af5":[6,0,0,7,9],
+"include_2api_8php.html#a864191bb876a515ed71b17e260ef35ad":[6,0,0,7,2],
+"include_2api_8php.html#a8969e8d9c683f12ba17dcd4b059e020d":[6,0,0,7,49],
+"include_2api_8php.html#a8b25a186bd0893f51aa72a62f655735e":[6,0,0,7,42],
+"include_2api_8php.html#a9160288b7ac220635942d8dc209b78c3":[6,0,0,7,10],
+"include_2api_8php.html#a970b02c06dea8b229aa3d5fff9cf4705":[6,0,0,7,8],
+"include_2api_8php.html#aa0d6b29fff0344a8e67f3507a6d01410":[6,0,0,7,37],
+"include_2api_8php.html#aa1bddb580510e70cc1a7b7381667f1a3":[6,0,0,7,30],
+"include_2api_8php.html#aa40bae797bcd9ccacffdce5a3b5a1afa":[6,0,0,7,23],
+"include_2api_8php.html#aa49741342ad8ba285737eea1209a37e1":[6,0,0,7,27],
+"include_2api_8php.html#aa62b15a6bbb280e86b98132eb214013d":[6,0,0,7,55],
+"include_2api_8php.html#aa6fc3bc8c0fad1d081db0dcc456dd77f":[6,0,0,7,31],
+"include_2api_8php.html#aa9dc5350b26d6c7727d6c4b641ecba18":[6,0,0,7,3],
+"include_2api_8php.html#aafa82b65a9f879a1a1197cfe8aaf3898":[6,0,0,7,52],
+"include_2api_8php.html#ab1ecb58954f722444bfe03233345cb1b":[6,0,0,7,17],
+"include_2api_8php.html#abe8e929e93f7ab134b1cb1fb30f19a76":[6,0,0,7,51],
+"include_2api_8php.html#ac2c2b18c426d697d11a830bca146be8a":[6,0,0,7,33],
+"include_2api_8php.html#ac5a64cc81d70ff3cf866093ea9721d23":[6,0,0,7,26],
+"include_2api_8php.html#acafd2899309a005fcb725289173dc7fe":[6,0,0,7,22],
+"include_2api_8php.html#ad24ce1bf20867add4c9211a8eaf93f22":[6,0,0,7,43],
+"include_2api_8php.html#ad2b0192f3006918bea895de8074bf8d2":[6,0,0,7,11],
+"include_2api_8php.html#ad4c29f43418f6110f85a6b3998239ab4":[6,0,0,7,36],
+"include_2api_8php.html#ad4d1634df6b35126552324683caaffa2":[6,0,0,7,46],
+"include_2api_8php.html#ad5fe62d6c25c86999f627b2e6cfde536":[6,0,0,7,24],
+"include_2api_8php.html#ade742525b2e41c82b090799ef3c51d5e":[6,0,0,7,39],
+"include_2api_8php.html#adfc035ee6303c1d8ba5336a4ead2bd53":[6,0,0,7,14],
+"include_2api_8php.html#ae0fa388479cace9c5a7a45b571ab42f8":[6,0,0,7,44],
+"include_2api_8php.html#ae46f964e5a9c80b96dc78df61c09ed3a":[6,0,0,7,25],
+"include_2api_8php.html#ae82608c317421f27446465aa6724733d":[6,0,0,7,20],
+"include_2api_8php.html#ae8f5863e18d69421005c71441c9d99a5":[6,0,0,7,1],
+"include_2api_8php.html#aea2dda92a155f2843a0ca188d8dfdf25":[6,0,0,7,7],
+"include_2api_8php.html#aeb2e7ad00ea666b4b6dfcf82008194f8":[6,0,0,7,54],
+"include_2api_8php.html#af6f1d89cdb0a0621025efbec1597bc63":[6,0,0,7,45],
+"include_2api_8php.html#afb99daa6b731bf497b81f2128084852c":[6,0,0,7,50],
+"include_2api_8php.html#afe534f826e4282b72d66e8cadca7bb73":[6,0,0,7,28],
+"include_2api_8php.html#aff322705cc6084b329003fc8eab0aad0":[6,0,0,7,29],
+"include_2apps_8php.html":[6,0,0,8],
+"include_2apps_8php.html#a01cabfb33b2d0d843cf3bf4e3d3f0ab0":[6,0,0,8,5],
+"include_2apps_8php.html#a15626f24069c18816f7cdaf4735f58f9":[6,0,0,8,8],
+"include_2apps_8php.html#a1adcd1aff4d36ad0277daca9f3d2bbe2":[6,0,0,8,4],
+"include_2apps_8php.html#a1b2e737f477a2e0d9d11ef14adc5aa66":[6,0,0,8,7],
+"include_2apps_8php.html#a1cb5c016510e39bcdc1d1c096d51c5c7":[6,0,0,8,2],
+"include_2apps_8php.html#a32fe4ed9666228fd4b67dc487cc57a83":[6,0,0,8,12],
+"include_2apps_8php.html#a48289d5cc44b7638191738106ac5d030":[6,0,0,8,13],
+"include_2apps_8php.html#a6b472df85ed875e7ae75642cece5206f":[6,0,0,8,1],
+"include_2apps_8php.html#a72756e1601489eb77971eeda011446d0":[6,0,0,8,3],
+"include_2apps_8php.html#ab93a3310b7de99ee90f673518eccb658":[6,0,0,8,6],
+"include_2apps_8php.html#ad5f6f1443725386cc7af5ed34a5fe185":[6,0,0,8,0],
+"include_2apps_8php.html#ad6ba3f254003f69f8f3f94ca5bda0680":[6,0,0,8,11],
+"include_2apps_8php.html#ae64f72eb4f126e03b4eb65ed1702a3ca":[6,0,0,8,10],
+"include_2apps_8php.html#aeab6a62d2f3dfaa86ed043a006305f46":[6,0,0,8,9],
+"include_2attach_8php.html":[6,0,0,9],
+"include_2attach_8php.html#a052f14487ff2ce72f62a09fac8d7e997":[6,0,0,9,9],
+"include_2attach_8php.html#a0d07c5b83d3d54e186f752e571847b36":[6,0,0,9,0],
+"include_2attach_8php.html#a1d72ef7cb940f6868e3e2a841cadfe8f":[6,0,0,9,11],
+"include_2attach_8php.html#a3634af95f11a023dd8e882c3c7a3600d":[6,0,0,9,5],
+"include_2attach_8php.html#a4dbfd7e1cef52aa9ef52f4b88929fa86":[6,0,0,9,8],
+"include_2attach_8php.html#a5c0875eafb8c0f8a0620ff7a875a2221":[6,0,0,9,2],
+"include_2attach_8php.html#a5d484de2d19a93071571d6499a50ae34":[6,0,0,9,12],
+"include_2attach_8php.html#a6aa00ea010ea030110faefb75eafc1ce":[6,0,0,9,10],
+"include_2attach_8php.html#a6fdd92775f31c07d2863e16e0026018a":[6,0,0,9,13],
+"include_2attach_8php.html#a70bd666e080c2af5a91f5d14c297b8cd":[6,0,0,9,4],
+"include_2attach_8php.html#a84a8a64c4805e1525b42d4add464833f":[6,0,0,9,7],
+"include_2attach_8php.html#a887d2d44a3ef18dcb6624e7fb58dc8e3":[6,0,0,9,3],
+"include_2attach_8php.html#ab6830b3ab74a5d284876141ac80f6cbc":[6,0,0,9,6],
+"include_2attach_8php.html#ad991208ce939387e2f93a3bce7d09932":[6,0,0,9,1],
+"include_2attach_8php.html#aeb07968990e66a88c95483ca09a7f909":[6,0,0,9,14],
+"include_2bookmarks_8php.html":[6,0,0,14],
+"include_2bookmarks_8php.html#a743763b0ce83af0bbc8a2f7ac16033aa":[6,0,0,14,1],
+"include_2bookmarks_8php.html#aef1cb2968c41c759f2d106e1088ca323":[6,0,0,14,0],
+"include_2chat_8php.html":[6,0,0,16],
+"include_2chat_8php.html#a1ee1360f7d2549c7549ae07cb5190f0f":[6,0,0,16,4],
+"include_2chat_8php.html#a26abdccc2a278a59899896dbbfc6f049":[6,0,0,16,6],
+"include_2chat_8php.html#a2ba3af6884ecdce95de69262fe599639":[6,0,0,16,2],
+"include_2chat_8php.html#a2c95b545e46bfee64faa05ecf0afea91":[6,0,0,16,3],
+"include_2chat_8php.html#acdc80dba4eb796c7472b21129b435422":[6,0,0,16,1],
+"include_2chat_8php.html#acea6b176eb7aff44d9ba3ae24ce511d3":[6,0,0,16,0]
};
diff --git a/doc/html/navtreeindex6.js b/doc/html/navtreeindex6.js
index e3d8f5c10..1aca50ae6 100644
--- a/doc/html/navtreeindex6.js
+++ b/doc/html/navtreeindex6.js
@@ -1,106 +1,223 @@
var NAVTREEINDEX6 =
{
-"invite_8php.html#a244385b28cfd021d308715f01158bfd9":[6,0,1,46,0],
-"invite_8php.html#aeb0881c0f93c8e8552e5ed756ce6e5a5":[6,0,1,46,1],
-"item_8php.html":[6,0,1,47],
-"item_8php.html#a3daae7944f737bd30412a0d042207c0f":[6,0,1,47,0],
-"item_8php.html#a5b1b36cb301a94b38150074f0d424e74":[6,0,1,47,3],
-"item_8php.html#a693cd09805755ab85bbb5ecae69a48c3":[6,0,1,47,5],
-"item_8php.html#a764bbb2e9a885a86fb23d0b5e4a09221":[6,0,1,47,4],
-"item_8php.html#a7b63a9d0cd02096e17dcf11f4afa7c10":[6,0,1,47,1],
-"item_8php.html#aa22feef4de326e1d7078dedd892e615c":[6,0,1,47,2],
-"items_8php.html":[6,0,0,46],
-"items_8php.html#a004e89d86b0f29b2c4da20108ecc4091":[6,0,0,46,71],
-"items_8php.html#a016dd86c827d08db89061ea81d15c6cb":[6,0,0,46,3],
-"items_8php.html#a02ca33c31ed535d24894f8a9a91ce9df":[6,0,0,46,41],
-"items_8php.html#a04a35b610acfe54434df08adec39c0c7":[6,0,0,46,30],
-"items_8php.html#a0790a4550b829e85504af548623002ca":[6,0,0,46,9],
-"items_8php.html#a079e099e15d88d47aeb6ca6d60da7107":[6,0,0,46,35],
-"items_8php.html#a09d425596b9f8663472cf7474ad36d96":[6,0,0,46,43],
-"items_8php.html#a0cf98bb619f07dd18f602683a55a5f59":[6,0,0,46,27],
-"items_8php.html#a1e75047cf175aaee8dd16aa761913ff9":[6,0,0,46,5],
-"items_8php.html#a251343637ff40a50cca93452cd530c26":[6,0,0,46,34],
-"items_8php.html#a2541e6861a56d145c9281877cc501615":[6,0,0,46,46],
-"items_8php.html#a275108c050f7eb18bcbb5018e6b81cf6":[6,0,0,46,4],
-"items_8php.html#a2baa9e05f1e8aa3dd61c85803ae39bd6":[6,0,0,46,70],
-"items_8php.html#a2c3f97b2109c05df86d97449b3c78ebc":[6,0,0,46,38],
-"items_8php.html#a2d840c74ed23d1b6c7daee05cf89dda7":[6,0,0,46,22],
-"items_8php.html#a36e656667193c83aa2cc03a024fc131b":[6,0,0,46,0],
-"items_8php.html#a410f9c743877c125ca06312373346903":[6,0,0,46,53],
-"items_8php.html#a49905ea75adfe8a2d110be344d18d6a6":[6,0,0,46,55],
-"items_8php.html#a4e6d7639431e0dd8e9f4dba8e1ac408b":[6,0,0,46,58],
-"items_8php.html#a52c24114b73c0bdb605a03cd29712223":[6,0,0,46,36],
-"items_8php.html#a536d0313b6ffe33b9d2490c4e25c5361":[6,0,0,46,32],
-"items_8php.html#a555762e1022a4b8e3c3abd32e7812408":[6,0,0,46,16],
-"items_8php.html#a566c601726697e044e75284af7fb6f17":[6,0,0,46,21],
-"items_8php.html#a56b2a4abcadfac71175cd50555528cc3":[6,0,0,46,14],
-"items_8php.html#a5e5be7bf1f8257dec0b2647e60a3f3f1":[6,0,0,46,29],
-"items_8php.html#a5ed782ff5b9cf050bec931e06de12c00":[6,0,0,46,45],
-"items_8php.html#a5f690fc2484abec07840b4f9dd525bd9":[6,0,0,46,19],
-"items_8php.html#a649dc3e53ed794d0ead4b5d037f8d8d7":[6,0,0,46,44],
-"items_8php.html#a668ece2c37f05cc3abe538eb0dabfe55":[6,0,0,46,17],
-"items_8php.html#a6bee35961f2e32905f20367a9309d627":[6,0,0,46,39],
-"items_8php.html#a6f7e1334af5d684a987fa6a3eb37f4cc":[6,0,0,46,42],
-"items_8php.html#a756738301f2ed96be50232500677d58a":[6,0,0,46,48],
-"items_8php.html#a77051724d1784074ff187e73a4db93fe":[6,0,0,46,37],
-"items_8php.html#a772f0ae77ad77c8ab68ed918a3870946":[6,0,0,46,7],
-"items_8php.html#a77da7ce9a117601d49ac4a67c71b514f":[6,0,0,46,51],
-"items_8php.html#a78a60e39f6991bd3324a24dcbf9dac5a":[6,0,0,46,59],
-"items_8php.html#a81565acf729e629e588d823308448e3c":[6,0,0,46,1],
-"items_8php.html#a82955cc578f0fa600acec84475026194":[6,0,0,46,18],
-"items_8php.html#a83a349062945d585edb4b3c5d763ab6e":[6,0,0,46,56],
-"items_8php.html#a8675e62674de6fb7c42e4a408c7116cc":[6,0,0,46,52],
-"items_8php.html#a87ac9e359591721a824ecd23bbb56296":[6,0,0,46,6],
-"items_8php.html#a88c6cf7649ac836fbbed82a7a0315110":[6,0,0,46,66],
-"items_8php.html#a8cda98925a4c5c2f6dade70d9586d79a":[6,0,0,46,26],
-"items_8php.html#a8f3c85c584ccd2b98c3ca440e45b40f8":[6,0,0,46,12],
-"items_8php.html#a94ddb1d6c8fa21dd7433677e85168037":[6,0,0,46,33],
-"items_8php.html#a9b449eeae50003414b8b30ca927af434":[6,0,0,46,69],
-"items_8php.html#aa2d3caa2f27720762b5c729e07df40fb":[6,0,0,46,50],
-"items_8php.html#aa371905f0a211b307cb3f7188c6cba04":[6,0,0,46,67],
-"items_8php.html#aa579bc4445d60098b1410961ca8e96b7":[6,0,0,46,11],
-"items_8php.html#aa723c0571e314a1853a24c5854b4f54f":[6,0,0,46,23],
-"items_8php.html#aa9e99613d38a97b39c8cf5449699c2ee":[6,0,0,46,10],
-"items_8php.html#aab9c6bae4c40799867596bdaae9829fd":[6,0,0,46,31],
-"items_8php.html#aab9e0c58247427126de0699c729c3b6c":[6,0,0,46,61],
-"items_8php.html#aabfaa193b83154c2a81e91284e5d5e59":[6,0,0,46,68],
-"items_8php.html#aac8c9eb4338e2a996c43914392c6cfdb":[6,0,0,46,15],
-"items_8php.html#ab1bce4261bcf75ad62753b498a144d17":[6,0,0,46,64],
-"items_8php.html#aba98fcbbcd7044a7e9ea34edabc14c87":[6,0,0,46,28],
-"items_8php.html#abeb7886cde44d9a83dbaf2bc4ab18723":[6,0,0,46,8],
-"items_8php.html#abf7a1b73eb352d79acd36309b0dababd":[6,0,0,46,2],
-"items_8php.html#ac6673627d289ee4f547de0fe3b7acd0a":[6,0,0,46,20],
-"items_8php.html#acf0bf7c9d21ac84f32effb754f7ad484":[6,0,0,46,47],
-"items_8php.html#ad2abb4644ff1f20fefbc80326fe01cf0":[6,0,0,46,54],
-"items_8php.html#ad34827ed330898456783fb14c7b46154":[6,0,0,46,65],
-"items_8php.html#ad4ee16e3ff1eaf60428c61f82ba25e6a":[6,0,0,46,57],
-"items_8php.html#adc26e08aa61f5666da04ab5d2a9d68a6":[6,0,0,46,13],
-"items_8php.html#adf2b8137dc4ad9ec958de2842f16f3c2":[6,0,0,46,62],
-"items_8php.html#adf980098b6de9c3993bc3ff26a8dd6f9":[6,0,0,46,25],
-"items_8php.html#ae73794179b62d39bb597ff670ab1c1e5":[6,0,0,46,40],
-"items_8php.html#af0a887050dc8d0f51c89890cdaf3145f":[6,0,0,46,63],
-"items_8php.html#af6237605c60d69abdd959ddbbee3420c":[6,0,0,46,60],
-"items_8php.html#af94c281016c6c912d06e064113336c5c":[6,0,0,46,49],
-"items_8php.html#afbcf26dfcf8a83fff952aa858c1b7b67":[6,0,0,46,24],
-"lang_8php.html":[6,0,1,48],
-"lang_8php.html#a4c5c1140f51a638f224275cd618c2f37":[6,0,1,48,0],
-"language_8php.html":[6,0,0,47],
-"language_8php.html#a151e5b4689aef86a12642cbb7a00bfe0":[6,0,0,47,7],
-"language_8php.html#a43e6ddba9df019c9ac3ab4c94c444ae7":[6,0,0,47,3],
-"language_8php.html#a632da17c7ac0d2dc1a00a4706870194b":[6,0,0,47,0],
-"language_8php.html#a686bcafa6b0d5c86d37b38a1db5b6997":[6,0,0,47,9],
-"language_8php.html#a78bd204955ec4cc3a9ac651285a1689d":[6,0,0,47,5],
-"language_8php.html#a7e9904c730bb24ddcb0ff50fc96f6b05":[6,0,0,47,4],
-"language_8php.html#a980dee1d8715a98ab02e36b59facf8ed":[6,0,0,47,1],
-"language_8php.html#ac6ae482ee54fa2764d5c2e77305aeb96":[6,0,0,47,8],
-"language_8php.html#ac9142ef1d01a235c760deb0f16643f5a":[6,0,0,47,6],
-"language_8php.html#ace67d6cad57da08d030ad9dc9b8c836e":[6,0,0,47,2],
-"layouts_8php.html":[6,0,1,49],
-"layouts_8php.html#a6e0193759ad9eef76d3df2db24237b50":[6,0,1,49,0],
-"like_8php.html":[6,0,1,50],
-"like_8php.html#a9d7dd268f21c21e9d29dd2aca2dd9538":[6,0,1,50,0],
-"lockview_8php.html":[6,0,1,51],
-"lockview_8php.html#a851e26ab9a1008df5c5ebebea31e9b44":[6,0,1,51,0],
+"include_2chat_8php.html#aedcb532a0627b8644001a2fadab4e87a":[6,0,0,16,5],
+"include_2config_8php.html":[6,0,0,20],
+"include_2config_8php.html#a27559f388c9b9af81c94e48d6889d1d1":[6,0,0,20,7],
+"include_2config_8php.html#a549910227348003efc3c05c9105c42da":[6,0,0,20,0],
+"include_2config_8php.html#a559791dda7fef8a4b2394c83e835787b":[6,0,0,20,8],
+"include_2config_8php.html#a61591371cb18764138655d67dc817ab2":[6,0,0,20,11],
+"include_2config_8php.html#a7ad2081c5f812ac4387fd76f3762d941":[6,0,0,20,1],
+"include_2config_8php.html#a9c171def547deee16738dc58fdeb4b72":[6,0,0,20,2],
+"include_2config_8php.html#aa3dc1d3de2d091ac702e675acd3a085e":[6,0,0,20,6],
+"include_2config_8php.html#ad58a4913937179adb13201c2ee3261ad":[6,0,0,20,5],
+"include_2config_8php.html#ad6da879e4fb5b37d1e161d4e9be5c32a":[6,0,0,20,10],
+"include_2config_8php.html#aee4b619839cf4b64220f34edf5c67b52":[6,0,0,20,9],
+"include_2config_8php.html#af02c96e6b37335774b548914ede1d22e":[6,0,0,20,3],
+"include_2config_8php.html#af08b7adb63adfb2eda7c466fba0cce74":[6,0,0,20,4],
+"include_2config_8php.html#afe117b70f1bba2f6348d9300b601f86e":[6,0,0,20,12],
+"include_2directory_8php.html":[6,0,0,33],
+"include_2directory_8php.html#aa75d3b0697ca1456aaabdb37a74aa0f0":[6,0,0,33,0],
+"include_2follow_8php.html":[6,0,0,40],
+"include_2follow_8php.html#ae387d4ae097c23d69f3247e7f08140c7":[6,0,0,40,0],
+"include_2group_8php.html":[6,0,0,42],
+"include_2group_8php.html#a0122ef312df2c5546b1a46b3e6c7b31b":[6,0,0,42,2],
+"include_2group_8php.html#a048f6892bfd28852de1b76470df411de":[6,0,0,42,10],
+"include_2group_8php.html#a06ec565d2b64e79044e7c1bf91a2a4ce":[6,0,0,42,1],
+"include_2group_8php.html#a22a81875259c7d3d64d4848afea6b345":[6,0,0,42,0],
+"include_2group_8php.html#a4118f498bbd1530c1d0136d016d197a5":[6,0,0,42,6],
+"include_2group_8php.html#a540e3ef36f47d47532646be4241f6518":[6,0,0,42,7],
+"include_2group_8php.html#a5bd191d9692e6c34d48c0ede10810f09":[6,0,0,42,4],
+"include_2group_8php.html#a6a69bd7be032fa8ce4e49c43a42cc6e9":[6,0,0,42,8],
+"include_2group_8php.html#a90e157b3e1b99c981809cb5a2abd3245":[6,0,0,42,5],
+"include_2group_8php.html#ab0e422a0f31c0c64fd9084ca03d85f32":[6,0,0,42,11],
+"include_2group_8php.html#abd66a5ea34a07a3422dc2dde6c7b3ecb":[6,0,0,42,3],
+"include_2group_8php.html#afb802ae2ce73aae4bc36d157f7b6a92f":[6,0,0,42,9],
+"include_2menu_8php.html":[6,0,0,51],
+"include_2menu_8php.html#a03a5deed3908543581c074ce333e9d6a":[6,0,0,51,11],
+"include_2menu_8php.html#a08a800821721781a8dfffbe31481ff98":[6,0,0,51,1],
+"include_2menu_8php.html#a251bf7e15d21627fd92614198e41c485":[6,0,0,51,10],
+"include_2menu_8php.html#a32701c4245e78ba9106eef52c08bf33d":[6,0,0,51,9],
+"include_2menu_8php.html#a3884bda4d85d84ec99447db9403a68d8":[6,0,0,51,3],
+"include_2menu_8php.html#a47447c01ba8ea04cd74af1d4c5b68fc7":[6,0,0,51,8],
+"include_2menu_8php.html#a68ebbf492470c930f652013656f9071d":[6,0,0,51,7],
+"include_2menu_8php.html#a6a33c6a3db2a7510b16cc656edaec571":[6,0,0,51,5],
+"include_2menu_8php.html#a9aa8e0052dd47c1a93f53a983bd4620a":[6,0,0,51,2],
+"include_2menu_8php.html#acb66f80ca895a6ccd562b3d9ae7b41aa":[6,0,0,51,6],
+"include_2menu_8php.html#ad87f51ce85172bcc3f931aa0cd96a804":[6,0,0,51,4],
+"include_2menu_8php.html#add35fae5e9695031b3d46e30ac409eb8":[6,0,0,51,0],
+"include_2message_8php.html":[6,0,0,52],
+"include_2message_8php.html#a254a756031e4d5e94f85e2939bdb5091":[6,0,0,52,2],
+"include_2message_8php.html#a5f8de9847e203329e317ac38dc646898":[6,0,0,52,1],
+"include_2message_8php.html#a652973ce47a262f2d238c2fd6233d97e":[6,0,0,52,3],
+"include_2message_8php.html#a751ffd6635022b2190f56154ee745752":[6,0,0,52,4],
+"include_2message_8php.html#aed272d77c06a309e2836ac79e75613f1":[6,0,0,52,0],
+"include_2network_8php.html":[6,0,0,54],
+"include_2network_8php.html#a1ff07d9fad93b713b93da0ab77aab7f0":[6,0,0,54,7],
+"include_2network_8php.html#a27a951b59d8d622c0b3e7b0673ba74c6":[6,0,0,54,14],
+"include_2network_8php.html#a316f318167a039c89719afbd129a8f3c":[6,0,0,54,16],
+"include_2network_8php.html#a3e6c751a51de33ad3563f0938296e78a":[6,0,0,54,20],
+"include_2network_8php.html#a469b9bd700269cd07d954f1a16c5899b":[6,0,0,54,6],
+"include_2network_8php.html#a4c5d50079e089168d9248427018fffd4":[6,0,0,54,12],
+"include_2network_8php.html#a4cfb2c05a1c295317283d762440ce0b2":[6,0,0,54,11],
+"include_2network_8php.html#a5176176ddc1906d91f186df6fbd87b48":[6,0,0,54,4],
+"include_2network_8php.html#a5caa264fab6d2b2344e6bd5b298b08f2":[6,0,0,54,19],
+"include_2network_8php.html#a63e62946e194928eb17c5a9f2bbef0fe":[6,0,0,54,5],
+"include_2network_8php.html#a78e89557b2fbd344ad790846d761b0c7":[6,0,0,54,10],
+"include_2network_8php.html#a850ed5307c6a18076f4b80addc99602d":[6,0,0,54,9],
+"include_2network_8php.html#a872bbe72d23826c64c9e0f822180a3ec":[6,0,0,54,13],
+"include_2network_8php.html#a897e7112d86eb95526cbd0bff9375f02":[6,0,0,54,18],
+"include_2network_8php.html#a8d5a3afb51cc932032b5dcc159efaae0":[6,0,0,54,8],
+"include_2network_8php.html#a9129fd55e7fc175b4ea9a195cccc16bc":[6,0,0,54,24],
+"include_2network_8php.html#a984708e60d531b31b2d1f88b5f408f7b":[6,0,0,54,25],
+"include_2network_8php.html#a99353baabbc3e0584b85eb79ee802cff":[6,0,0,54,21],
+"include_2network_8php.html#a9e9da2aafb806c98ecdc318604e60dc6":[6,0,0,54,22],
+"include_2network_8php.html#aafd06c0a75402aefb06cfb9f9740fa37":[6,0,0,54,23],
+"include_2network_8php.html#ab07ce9d75eae559865ed90aad2154bd7":[6,0,0,54,2],
+"include_2network_8php.html#aba38458a2ff2d92d3536488dbb119694":[6,0,0,54,0],
+"include_2network_8php.html#acb0bd7f5fe38ff1eaebeae3284525070":[6,0,0,54,17],
+"include_2network_8php.html#ad4056d3ce69988f5c1a997a79f503246":[6,0,0,54,3],
+"include_2network_8php.html#ae8d9c41a11000fb8667039fc71b4f73f":[6,0,0,54,15],
+"include_2network_8php.html#aee35d9ad6b3f872bfb39ba3598936aa7":[6,0,0,54,1],
+"include_2notify_8php.html":[6,0,0,56],
+"include_2notify_8php.html#a0e61728e487df50c72e6434f911a57d3":[6,0,0,56,0],
+"include_2oembed_8php.html":[6,0,0,58],
+"include_2oembed_8php.html#a000a62b97113cf95b0e9e00412168172":[6,0,0,58,5],
+"include_2oembed_8php.html#a00c4c80deffd9daf8dc97b58d4c64ed0":[6,0,0,58,7],
+"include_2oembed_8php.html#a03fa3b7832c98a3d0b4630afeb73d487":[6,0,0,58,1],
+"include_2oembed_8php.html#a26bb4c1e330d2f94ea7b6ce2fe970cf3":[6,0,0,58,4],
+"include_2oembed_8php.html#a98549b9af8140eda3eceaeedcaabc2c2":[6,0,0,58,3],
+"include_2oembed_8php.html#a9e57f3e36a0a0a47e6db79544b701d9a":[6,0,0,58,6],
+"include_2oembed_8php.html#ab953a6e7c11bc6498ce01ed73e2ba319":[6,0,0,58,0],
+"include_2oembed_8php.html#aba89ae64b355efcb4f706553d3edb6a2":[6,0,0,58,2],
+"include_2photos_8php.html":[6,0,0,63],
+"include_2photos_8php.html#a6c40ef58aefef705a5adc84a40e97109":[6,0,0,63,0],
+"include_2photos_8php.html#a7e7abc69872180697c5471dc69349afe":[6,0,0,63,2],
+"include_2photos_8php.html#a8e8b7be99e24c2497bc2cb3339280c35":[6,0,0,63,1],
+"include_2photos_8php.html#aa27b9e435dcc34e1009f56dc02c7ca51":[6,0,0,63,7],
+"include_2photos_8php.html#ab0365f25b22ccea5f085fe7c49e1f4ab":[6,0,0,63,3],
+"include_2photos_8php.html#ad648c0c5544fe9263409b6f6e57c6274":[6,0,0,63,6],
+"include_2photos_8php.html#aedccaf18282b26899d9549c29bd9d1b9":[6,0,0,63,5],
+"include_2photos_8php.html#af24c6aeed28ecc31ec39e7d9a1804979":[6,0,0,63,4],
+"include_2probe_8php.html":[6,0,0,66],
+"include_2probe_8php.html#a12ea7a0def2f0e07242b5c9ac684e01a":[6,0,0,66,3],
+"include_2probe_8php.html#a2b4ac769508f7cfc17fee130279b9cb7":[6,0,0,66,4],
+"include_2probe_8php.html#a2daa857942aceca01f956016dbbd139c":[6,0,0,66,1],
+"include_2probe_8php.html#a3c02c7a23e8335a79c3c0f5331d11a85":[6,0,0,66,8],
+"include_2probe_8php.html#a471851151d8cd7fbb79703e9522eeea8":[6,0,0,66,0],
+"include_2probe_8php.html#a950a200372393f706851103cd3fffcba":[6,0,0,66,6],
+"include_2probe_8php.html#a9b5eca1e01e52b3e65d64db0c92181e0":[6,0,0,66,2],
+"include_2probe_8php.html#aa748dc73a6686c13826b1ee9d16c800d":[6,0,0,66,7],
+"include_2probe_8php.html#ab19a52326b27607a0fb8191cc75ba481":[6,0,0,66,5],
+"index.html":[],
+"interfaceITemplateEngine.html":[5,0,20],
+"interfaceITemplateEngine.html#aaa7381c8becc3d1c1790b53988a0f243":[5,0,20,1],
+"interfaceITemplateEngine.html#aaf2698adbf46c073c24b162fe1b1c442":[5,0,20,0],
+"invite_8php.html":[6,0,1,45],
+"invite_8php.html#a244385b28cfd021d308715f01158bfd9":[6,0,1,45,0],
+"invite_8php.html#aeb0881c0f93c8e8552e5ed756ce6e5a5":[6,0,1,45,1],
+"item_8php.html":[6,0,1,46],
+"item_8php.html#a3daae7944f737bd30412a0d042207c0f":[6,0,1,46,0],
+"item_8php.html#a5b1b36cb301a94b38150074f0d424e74":[6,0,1,46,2],
+"item_8php.html#a693cd09805755ab85bbb5ecae69a48c3":[6,0,1,46,4],
+"item_8php.html#a764bbb2e9a885a86fb23d0b5e4a09221":[6,0,1,46,3],
+"item_8php.html#a7b63a9d0cd02096e17dcf11f4afa7c10":[6,0,1,46,1],
+"items_8php.html":[6,0,0,49],
+"items_8php.html#a016dd86c827d08db89061ea81d15c6cb":[6,0,0,49,3],
+"items_8php.html#a02ca33c31ed535d24894f8a9a91ce9df":[6,0,0,49,42],
+"items_8php.html#a04a35b610acfe54434df08adec39c0c7":[6,0,0,49,30],
+"items_8php.html#a0790a4550b829e85504af548623002ca":[6,0,0,49,9],
+"items_8php.html#a079e099e15d88d47aeb6ca6d60da7107":[6,0,0,49,35],
+"items_8php.html#a09d425596b9f8663472cf7474ad36d96":[6,0,0,49,44],
+"items_8php.html#a0cf98bb619f07dd18f602683a55a5f59":[6,0,0,49,27],
+"items_8php.html#a1cf89557f32d5dfbe8bd90448dc1aa92":[6,0,0,49,72],
+"items_8php.html#a1e75047cf175aaee8dd16aa761913ff9":[6,0,0,49,5],
+"items_8php.html#a251343637ff40a50cca93452cd530c26":[6,0,0,49,34],
+"items_8php.html#a25221826fa4621f523c68483e3b6af26":[6,0,0,49,64],
+"items_8php.html#a2541e6861a56d145c9281877cc501615":[6,0,0,49,47],
+"items_8php.html#a275108c050f7eb18bcbb5018e6b81cf6":[6,0,0,49,4],
+"items_8php.html#a2baa9e05f1e8aa3dd61c85803ae39bd6":[6,0,0,49,71],
+"items_8php.html#a2c3f97b2109c05df86d97449b3c78ebc":[6,0,0,49,38],
+"items_8php.html#a2d840c74ed23d1b6c7daee05cf89dda7":[6,0,0,49,22],
+"items_8php.html#a36e656667193c83aa2cc03a024fc131b":[6,0,0,49,0],
+"items_8php.html#a37f79991f36811cf847446ff60e8e11f":[6,0,0,49,40],
+"items_8php.html#a410f9c743877c125ca06312373346903":[6,0,0,49,54],
+"items_8php.html#a49905ea75adfe8a2d110be344d18d6a6":[6,0,0,49,56],
+"items_8php.html#a4e6d7639431e0dd8e9f4dba8e1ac408b":[6,0,0,49,59],
+"items_8php.html#a52c24114b73c0bdb605a03cd29712223":[6,0,0,49,36],
+"items_8php.html#a536d0313b6ffe33b9d2490c4e25c5361":[6,0,0,49,32],
+"items_8php.html#a555762e1022a4b8e3c3abd32e7812408":[6,0,0,49,16],
+"items_8php.html#a566c601726697e044e75284af7fb6f17":[6,0,0,49,21],
+"items_8php.html#a56b0f5d2cb36eb8f4bfca84813884f86":[6,0,0,49,18],
+"items_8php.html#a56b2a4abcadfac71175cd50555528cc3":[6,0,0,49,14],
+"items_8php.html#a5e5be7bf1f8257dec0b2647e60a3f3f1":[6,0,0,49,29],
+"items_8php.html#a5ed782ff5b9cf050bec931e06de12c00":[6,0,0,49,46],
+"items_8php.html#a5f690fc2484abec07840b4f9dd525bd9":[6,0,0,49,19],
+"items_8php.html#a649dc3e53ed794d0ead4b5d037f8d8d7":[6,0,0,49,45],
+"items_8php.html#a668ece2c37f05cc3abe538eb0dabfe55":[6,0,0,49,17],
+"items_8php.html#a6bee35961f2e32905f20367a9309d627":[6,0,0,49,39],
+"items_8php.html#a6f7e1334af5d684a987fa6a3eb37f4cc":[6,0,0,49,43],
+"items_8php.html#a756738301f2ed96be50232500677d58a":[6,0,0,49,49],
+"items_8php.html#a77051724d1784074ff187e73a4db93fe":[6,0,0,49,37],
+"items_8php.html#a772f0ae77ad77c8ab68ed918a3870946":[6,0,0,49,7],
+"items_8php.html#a77da7ce9a117601d49ac4a67c71b514f":[6,0,0,49,52],
+"items_8php.html#a78a60e39f6991bd3324a24dcbf9dac5a":[6,0,0,49,60],
+"items_8php.html#a81565acf729e629e588d823308448e3c":[6,0,0,49,1],
+"items_8php.html#a83a349062945d585edb4b3c5d763ab6e":[6,0,0,49,57],
+"items_8php.html#a8675e62674de6fb7c42e4a408c7116cc":[6,0,0,49,53],
+"items_8php.html#a87ac9e359591721a824ecd23bbb56296":[6,0,0,49,6],
+"items_8php.html#a88c6cf7649ac836fbbed82a7a0315110":[6,0,0,49,67],
+"items_8php.html#a8cda98925a4c5c2f6dade70d9586d79a":[6,0,0,49,26],
+"items_8php.html#a8f3c85c584ccd2b98c3ca440e45b40f8":[6,0,0,49,12],
+"items_8php.html#a94ddb1d6c8fa21dd7433677e85168037":[6,0,0,49,33],
+"items_8php.html#a9b449eeae50003414b8b30ca927af434":[6,0,0,49,70],
+"items_8php.html#aa371905f0a211b307cb3f7188c6cba04":[6,0,0,49,68],
+"items_8php.html#aa579bc4445d60098b1410961ca8e96b7":[6,0,0,49,11],
+"items_8php.html#aa723c0571e314a1853a24c5854b4f54f":[6,0,0,49,23],
+"items_8php.html#aa9e99613d38a97b39c8cf5449699c2ee":[6,0,0,49,10],
+"items_8php.html#aab9c6bae4c40799867596bdaae9829fd":[6,0,0,49,31],
+"items_8php.html#aab9e0c58247427126de0699c729c3b6c":[6,0,0,49,62],
+"items_8php.html#aabfaa193b83154c2a81e91284e5d5e59":[6,0,0,49,69],
+"items_8php.html#aac8c9eb4338e2a996c43914392c6cfdb":[6,0,0,49,15],
+"items_8php.html#ab1bce4261bcf75ad62753b498a144d17":[6,0,0,49,65],
+"items_8php.html#ab33fa9756aaa5f39a6104d57a62baf00":[6,0,0,49,51],
+"items_8php.html#aba98fcbbcd7044a7e9ea34edabc14c87":[6,0,0,49,28],
+"items_8php.html#abeb7886cde44d9a83dbaf2bc4ab18723":[6,0,0,49,8],
+"items_8php.html#abf7a1b73eb352d79acd36309b0dababd":[6,0,0,49,2],
+"items_8php.html#ac6673627d289ee4f547de0fe3b7acd0a":[6,0,0,49,20],
+"items_8php.html#acf0bf7c9d21ac84f32effb754f7ad484":[6,0,0,49,48],
+"items_8php.html#ad2abb4644ff1f20fefbc80326fe01cf0":[6,0,0,49,55],
+"items_8php.html#ad34827ed330898456783fb14c7b46154":[6,0,0,49,66],
+"items_8php.html#ad4ee16e3ff1eaf60428c61f82ba25e6a":[6,0,0,49,58],
+"items_8php.html#adc26e08aa61f5666da04ab5d2a9d68a6":[6,0,0,49,13],
+"items_8php.html#adf2b8137dc4ad9ec958de2842f16f3c2":[6,0,0,49,63],
+"items_8php.html#adf980098b6de9c3993bc3ff26a8dd6f9":[6,0,0,49,25],
+"items_8php.html#ae73794179b62d39bb597ff670ab1c1e5":[6,0,0,49,41],
+"items_8php.html#af6237605c60d69abdd959ddbbee3420c":[6,0,0,49,61],
+"items_8php.html#af94c281016c6c912d06e064113336c5c":[6,0,0,49,50],
+"items_8php.html#afbcf26dfcf8a83fff952aa858c1b7b67":[6,0,0,49,24],
+"lang_8php.html":[6,0,1,47],
+"lang_8php.html#a4c5c1140f51a638f224275cd618c2f37":[6,0,1,47,0],
+"language_8php.html":[6,0,0,50],
+"language_8php.html#a151e5b4689aef86a12642cbb7a00bfe0":[6,0,0,50,7],
+"language_8php.html#a43e6ddba9df019c9ac3ab4c94c444ae7":[6,0,0,50,3],
+"language_8php.html#a632da17c7ac0d2dc1a00a4706870194b":[6,0,0,50,0],
+"language_8php.html#a686bcafa6b0d5c86d37b38a1db5b6997":[6,0,0,50,9],
+"language_8php.html#a78bd204955ec4cc3a9ac651285a1689d":[6,0,0,50,5],
+"language_8php.html#a7e9904c730bb24ddcb0ff50fc96f6b05":[6,0,0,50,4],
+"language_8php.html#a980dee1d8715a98ab02e36b59facf8ed":[6,0,0,50,1],
+"language_8php.html#ac6ae482ee54fa2764d5c2e77305aeb96":[6,0,0,50,8],
+"language_8php.html#ac9142ef1d01a235c760deb0f16643f5a":[6,0,0,50,6],
+"language_8php.html#ace67d6cad57da08d030ad9dc9b8c836e":[6,0,0,50,2],
+"layouts_8php.html":[6,0,1,48],
+"layouts_8php.html#a39c8e9f72641c684c8b689bd91a642fa":[6,0,1,48,1],
+"layouts_8php.html#a6e0193759ad9eef76d3df2db24237b50":[6,0,1,48,0],
+"like_8php.html":[6,0,1,49],
+"like_8php.html#a9d7dd268f21c21e9d29dd2aca2dd9538":[6,0,1,49,0],
+"lockview_8php.html":[6,0,1,50],
+"lockview_8php.html#a851e26ab9a1008df5c5ebebea31e9b44":[6,0,1,50,0],
+"locs_8php.html":[6,0,1,51],
+"locs_8php.html#a6b43654592919ac863d67a1f787a69b9":[6,0,1,51,1],
+"locs_8php.html#a6c900f53970c0d0e738d2fe06d27ca44":[6,0,1,51,0],
"login_8php.html":[6,0,1,52],
"login_8php.html#a1d69ca88eb9005a7026e128b9a645904":[6,0,1,52,0],
"lostpass_8php.html":[6,0,1,53],
@@ -132,122 +249,5 @@ var NAVTREEINDEX6 =
"mitem_8php.html#a9627cd857cafdf04e4fc0ae48c8e8518":[6,0,1,60,1],
"mod_2api_8php.html":[6,0,1,4],
"mod_2api_8php.html#a02ae0f60e240dc806b860edb7d582117":[6,0,1,4,2],
-"mod_2api_8php.html#a33315b5bbf5418f6850b2038107b526d":[6,0,1,4,0],
-"mod_2api_8php.html#a6fe77f05c07cb51048df0d557b4b9bd2":[6,0,1,4,1],
-"mod_2apps_8php.html":[6,0,1,6],
-"mod_2apps_8php.html#a546016cb960d0b110ee8e489dfa6c27c":[6,0,1,6,0],
-"mod_2attach_8php.html":[6,0,1,7],
-"mod_2attach_8php.html#aa88eb5ad87aa1036a30e70339cc6c1b1":[6,0,1,7,0],
-"mod_2bookmarks_8php.html":[6,0,1,10],
-"mod_2bookmarks_8php.html#a6b7942f3d27e40f0f47c88704127b9b3":[6,0,1,10,1],
-"mod_2bookmarks_8php.html#a774364b1c8404529581083631703527a":[6,0,1,10,0],
-"mod_2chanman_8php.html":[6,0,1,11],
-"mod_2chat_8php.html":[6,0,1,14],
-"mod_2chat_8php.html#a8b0b8bee6fef6477e8c64c5e951b1b4f":[6,0,1,14,0],
-"mod_2chat_8php.html#a999d594745597c656c9760253ae297ad":[6,0,1,14,2],
-"mod_2chat_8php.html#aa9ae4782e9baef0b7314ab9527c2707e":[6,0,1,14,1],
-"mod_2directory_8php.html":[6,0,1,23],
-"mod_2directory_8php.html#a5ee59c213508b6b9787612a8219cb5bf":[6,0,1,23,1],
-"mod_2directory_8php.html#aac79396570d759da2efac24fcedf5b44":[6,0,1,23,0],
-"mod_2follow_8php.html":[6,0,1,37],
-"mod_2follow_8php.html#a171f5b19f50d7738adc3b2e96ec6018a":[6,0,1,37,1],
-"mod_2follow_8php.html#a4c540ea4e9f5c581c1a53516ac585592":[6,0,1,37,0],
-"mod_2group_8php.html":[6,0,1,39],
-"mod_2group_8php.html#a07a64f6c65b0080d8190b3d9728a7a83":[6,0,1,39,0],
-"mod_2group_8php.html#aed1f009b1221348021bb34761160ef35":[6,0,1,39,1],
-"mod_2menu_8php.html":[6,0,1,58],
-"mod_2menu_8php.html#a6fed23af14d71a78a4153c8363a685cf":[6,0,1,58,0],
-"mod_2menu_8php.html#aaa491ef173868fe002aece4632bcf393":[6,0,1,58,1],
-"mod_2message_8php.html":[6,0,1,59],
-"mod_2message_8php.html#ac72dfed3ce08fcb331d66b37edc6e15f":[6,0,1,59,0],
-"mod_2network_8php.html":[6,0,1,64],
-"mod_2network_8php.html#a180fce90ad11d7e0e45be094da7149ec":[6,0,1,64,1],
-"mod_2network_8php.html#a43f2f29b90c5e29072c561934bc8f8b4":[6,0,1,64,0],
-"mod_2notify_8php.html":[6,0,1,68],
-"mod_2notify_8php.html#a94f9a6a9d4b5fd704baafff0c34f41ae":[6,0,1,68,1],
-"mod_2notify_8php.html#acdf3851688ebd6d6a575eb84ef9febe3":[6,0,1,68,0],
-"mod_2oembed_8php.html":[6,0,1,69],
-"mod_2oembed_8php.html#a9145025aaf057fb5d3f9f7011e5e1014":[6,0,1,69,0],
-"mod_2photos_8php.html":[6,0,1,78],
-"mod_2photos_8php.html#a062bed4d04d14fee8a53f4c9be673080":[6,0,1,78,2],
-"mod_2photos_8php.html#aa87382611a66ec5effdb2d78f13f5812":[6,0,1,78,0],
-"mod_2photos_8php.html#ab950295cd77626f5fe65331a87693014":[6,0,1,78,1],
-"mod_2probe_8php.html":[6,0,1,86],
-"mod_2probe_8php.html#a1f1db3fa6038e451e737964c94bf5e99":[6,0,1,86,0],
-"mod__chanview_8php.html":[6,0,3,1,0,0,0],
-"mod__import_8php.html":[6,0,3,0,4],
-"mod__import_8php.html#a8db1899eeeb44dabd0904065b63627bb":[6,0,3,0,4,0],
-"mood_8php.html":[6,0,1,61],
-"mood_8php.html#a721b9b6703b3234a005641c92d409b8f":[6,0,1,61,0],
-"mood_8php.html#a7ae136dd7476865b4828136175db5022":[6,0,1,61,1],
-"msearch_8php.html":[6,0,1,62],
-"msearch_8php.html#ac80d2a6c0a92e79eec7efbbccd74d9a8":[6,0,1,62,0],
-"mytheme_2php_2style_8php.html":[6,0,3,1,2,0,1],
-"mytheme_2php_2theme_8php.html":[6,0,3,1,2,0,2],
-"mytheme_2php_2theme_8php.html#a6ce5df8ece6acc09c1fddaccbeb244e8":[6,0,3,1,2,0,2,0],
-"namespaceFriendica.html":[5,0,1],
-"namespaceFriendica.html":[4,0,1],
-"namespaceacl__selectors.html":[4,0,0],
-"namespaceacl__selectors.html":[5,0,0],
-"namespacefriendica-to-smarty-tpl.html":[5,0,2],
-"namespacefriendica-to-smarty-tpl.html":[4,0,2],
-"namespacemembers.html":[4,1,0],
-"namespacemembers_func.html":[4,1,1],
-"namespacemembers_vars.html":[4,1,2],
-"namespaces.html":[4,0],
-"namespaceupdatetpl.html":[5,0,3],
-"namespaceupdatetpl.html":[4,0,3],
-"namespaceutil.html":[5,0,4],
-"namespaceutil.html":[4,0,4],
-"nav_8php.html":[6,0,0,50],
-"nav_8php.html#a43be0df73b90647ea70947ce004e231e":[6,0,0,50,0],
-"nav_8php.html#ac3c920ce3ea5b0d9e0678ee37155f06a":[6,0,0,50,1],
-"netgrowth_8php.html":[6,0,1,63],
-"netgrowth_8php.html#a9b87bfc25a7cb11bc7f8e1fdd0310919":[6,0,1,63,0],
-"new__channel_8php.html":[6,0,1,65],
-"new__channel_8php.html#a180b0646957db8290482f02454ad7f23":[6,0,1,65,2],
-"new__channel_8php.html#a1ad7f99e4366a32942c6b954aba3a164":[6,0,1,65,1],
-"new__channel_8php.html#ae585191610f79da129492482ce8e2fee":[6,0,1,65,0],
-"none_8php.html":[6,0,3,0,5],
-"notes_8php.html":[6,0,1,66],
-"notes_8php.html#a4dbd7b1f906440746af48b484d66535a":[6,0,1,66,0],
-"notifications_8php.html":[6,0,1,67],
-"notifications_8php.html#a5baffec7b2e625c9f9cefbc097550d33":[6,0,1,67,1],
-"notifications_8php.html#aadd0b5525bd8c283a5d8a37982bbfe62":[6,0,1,67,0],
-"notifier_8php.html":[6,0,0,52],
-"notifier_8php.html#a568c502f626cff95e344c0748938b85d":[6,0,0,52,0],
-"notred_8php.html":[6,0,3,1,3,1,3],
-"oauth_8php.html":[6,0,0,54],
-"oauth_8php.html#a7a32a5990f113ac9465b03b29175cf16":[6,0,0,54,3],
-"oauth_8php.html#ad343cab37aa860d2d14dc86b7f5ca0c6":[6,0,0,54,2],
-"oexchange_8php.html":[6,0,1,70],
-"oexchange_8php.html#a2d8b785cd7d041a4e6274f5af370cf26":[6,0,1,70,0],
-"oexchange_8php.html#ac8e2e469ddc3db984b0c1b44558aca59":[6,0,1,70,1],
-"olddefault_8php.html":[6,0,3,1,0,2,5],
-"onedirsync_8php.html":[6,0,0,56],
-"onedirsync_8php.html#a411aedd47c57476099647961e6a86691":[6,0,0,56,0],
-"onepoll_8php.html":[6,0,0,57],
-"onepoll_8php.html#a72753b2fdec79b37c7f432035c91fb6d":[6,0,0,57,0],
-"online_8php.html":[6,0,1,71],
-"online_8php.html#a80e107c84eb722b0ca11d0413b96f9f7":[6,0,1,71,0],
-"openid_8php.html":[6,0,1,72],
-"openid_8php.html#a9a13827dbcf61ae4e45f0b6b33a88f43":[6,0,1,72,0],
-"opensearch_8php.html":[6,0,1,73],
-"opensearch_8php.html#ad13034877a496565ac7d99e9fc6f55e9":[6,0,1,73,0],
-"page_8php.html":[6,0,1,74],
-"page_8php.html#a4d89800c0366a239191b1692c09635cf":[6,0,1,74,1],
-"page_8php.html#a91a5f649f68406149108bded1dc90b22":[6,0,1,74,0],
-"page__widgets_8php.html":[6,0,0,58],
-"page__widgets_8php.html#a1a1e729da27f252cab6678288a17958f":[6,0,0,58,1],
-"page__widgets_8php.html#a39d547771c5f12a17c097436c82f0fa2":[6,0,0,58,0],
-"pages.html":[],
-"parse__url_8php.html":[6,0,1,75],
-"parse__url_8php.html#a05a9e8944380ba3cf6bbf5893dd4b74b":[6,0,1,75,2],
-"parse__url_8php.html#a25635549f2c22955d72465f4d2e58993":[6,0,1,75,3],
-"parse__url_8php.html#a496f4e3836154f6f32b8e805a7160d3a":[6,0,1,75,1],
-"parse__url_8php.html#aa7dd8f961bea042d62726ed909e4a868":[6,0,1,75,0],
-"passion_8php.html":[6,0,3,1,0,2,6],
-"passionwide_8php.html":[6,0,3,1,0,2,7],
-"pdledit_8php.html":[6,0,1,76],
-"pdledit_8php.html#a59cb550f6b7a4e7d8196fbc9de601619":[6,0,1,76,0]
+"mod_2api_8php.html#a33315b5bbf5418f6850b2038107b526d":[6,0,1,4,0]
};
diff --git a/doc/html/navtreeindex7.js b/doc/html/navtreeindex7.js
index b2d0617f6..6e9f98d6f 100644
--- a/doc/html/navtreeindex7.js
+++ b/doc/html/navtreeindex7.js
@@ -1,145 +1,246 @@
var NAVTREEINDEX7 =
{
-"pdledit_8php.html#a81da3c955d0e3db55d148a31483104c7":[6,0,1,76,1],
-"permissions_8php.html":[6,0,0,59],
-"permissions_8php.html#a040fd3d3b8517658b1668ae0cd093972":[6,0,0,59,2],
-"permissions_8php.html#a0f5bd9f7f4c8fb7ba4b2c1ed048b4dc7":[6,0,0,59,0],
-"permissions_8php.html#a67ada9ed51e77885b6b0f6a28cee1835":[6,0,0,59,4],
-"permissions_8php.html#a9b5f5120566a3699a98efc5ccb0c59fe":[6,0,0,59,3],
-"permissions_8php.html#aa8b7b102c653649d7a71b5a1c044d90d":[6,0,0,59,5],
-"permissions_8php.html#aeca9b280f3dc3358c89976d81d690008":[6,0,0,59,1],
-"photo_8php.html":[6,0,1,77],
-"photo_8php.html#a582779d24882b0d31ee909a91d70a448":[6,0,1,77,0],
-"photo__driver_8php.html":[6,0,0,1,0],
-"photo__driver_8php.html#a1d0bc7161dec0d177b7d3bbe4421af9a":[6,0,0,1,0,2],
-"photo__driver_8php.html#a243cee492ce443afb6a7d77d54b6c4aa":[6,0,0,1,0,1],
-"photo__driver_8php.html#a32e2817faa25d7f11f60a8abff565035":[6,0,0,1,0,4],
-"photo__driver_8php.html#a78f5a10c568d2a9bbbb129dc96548887":[6,0,0,1,0,3],
-"photo__gd_8php.html":[6,0,0,1,1],
-"photo__imagick_8php.html":[6,0,0,1,2],
-"php2po_8php.html":[6,0,2,6],
-"php2po_8php.html#a1594a11499d06cc8a789ee7ca0c7a12b":[6,0,2,6,7],
-"php2po_8php.html#a401d84ce156e49e8168bd0c4781e1be1":[6,0,2,6,5],
-"php2po_8php.html#a45b05625748f412ec97afcd61cf7980b":[6,0,2,6,6],
-"php2po_8php.html#a48cb304902320d173a4eaa41543327b9":[6,0,2,6,3],
-"php2po_8php.html#a61f8ddeb5557d46ebc546cc355bda214":[6,0,2,6,0],
-"php2po_8php.html#a6b0b8ebd9ce811d1325ef2c129443bc0":[6,0,2,6,1],
-"php2po_8php.html#abbb0e5fd8fbc1f13a9bf68f86eb3d2a4":[6,0,2,6,4],
-"php2po_8php.html#ad6726cfaa85d4b8299d2b0f034cbf178":[6,0,2,6,2],
+"mod_2api_8php.html#a6fe77f05c07cb51048df0d557b4b9bd2":[6,0,1,4,1],
+"mod_2apps_8php.html":[6,0,1,6],
+"mod_2apps_8php.html#a546016cb960d0b110ee8e489dfa6c27c":[6,0,1,6,0],
+"mod_2attach_8php.html":[6,0,1,7],
+"mod_2attach_8php.html#aa88eb5ad87aa1036a30e70339cc6c1b1":[6,0,1,7,0],
+"mod_2bookmarks_8php.html":[6,0,1,10],
+"mod_2bookmarks_8php.html#a6b7942f3d27e40f0f47c88704127b9b3":[6,0,1,10,1],
+"mod_2bookmarks_8php.html#a774364b1c8404529581083631703527a":[6,0,1,10,0],
+"mod_2chat_8php.html":[6,0,1,13],
+"mod_2chat_8php.html#a8b0b8bee6fef6477e8c64c5e951b1b4f":[6,0,1,13,0],
+"mod_2chat_8php.html#a999d594745597c656c9760253ae297ad":[6,0,1,13,2],
+"mod_2chat_8php.html#aa9ae4782e9baef0b7314ab9527c2707e":[6,0,1,13,1],
+"mod_2directory_8php.html":[6,0,1,22],
+"mod_2directory_8php.html#a5ee59c213508b6b9787612a8219cb5bf":[6,0,1,22,1],
+"mod_2directory_8php.html#aac79396570d759da2efac24fcedf5b44":[6,0,1,22,0],
+"mod_2follow_8php.html":[6,0,1,35],
+"mod_2follow_8php.html#a171f5b19f50d7738adc3b2e96ec6018a":[6,0,1,35,1],
+"mod_2follow_8php.html#a4c540ea4e9f5c581c1a53516ac585592":[6,0,1,35,0],
+"mod_2group_8php.html":[6,0,1,37],
+"mod_2group_8php.html#a07a64f6c65b0080d8190b3d9728a7a83":[6,0,1,37,0],
+"mod_2group_8php.html#aed1f009b1221348021bb34761160ef35":[6,0,1,37,1],
+"mod_2menu_8php.html":[6,0,1,58],
+"mod_2menu_8php.html#a6fed23af14d71a78a4153c8363a685cf":[6,0,1,58,0],
+"mod_2menu_8php.html#aaa491ef173868fe002aece4632bcf393":[6,0,1,58,1],
+"mod_2message_8php.html":[6,0,1,59],
+"mod_2message_8php.html#ac72dfed3ce08fcb331d66b37edc6e15f":[6,0,1,59,0],
+"mod_2network_8php.html":[6,0,1,64],
+"mod_2network_8php.html#a180fce90ad11d7e0e45be094da7149ec":[6,0,1,64,1],
+"mod_2network_8php.html#a43f2f29b90c5e29072c561934bc8f8b4":[6,0,1,64,0],
+"mod_2notify_8php.html":[6,0,1,68],
+"mod_2notify_8php.html#a94f9a6a9d4b5fd704baafff0c34f41ae":[6,0,1,68,1],
+"mod_2notify_8php.html#acdf3851688ebd6d6a575eb84ef9febe3":[6,0,1,68,0],
+"mod_2oembed_8php.html":[6,0,1,69],
+"mod_2oembed_8php.html#a9145025aaf057fb5d3f9f7011e5e1014":[6,0,1,69,0],
+"mod_2photos_8php.html":[6,0,1,79],
+"mod_2photos_8php.html#a062bed4d04d14fee8a53f4c9be673080":[6,0,1,79,2],
+"mod_2photos_8php.html#aa87382611a66ec5effdb2d78f13f5812":[6,0,1,79,0],
+"mod_2photos_8php.html#ab950295cd77626f5fe65331a87693014":[6,0,1,79,1],
+"mod_2probe_8php.html":[6,0,1,87],
+"mod_2probe_8php.html#a1f1db3fa6038e451e737964c94bf5e99":[6,0,1,87,0],
+"mod__chanview_8php.html":[6,0,3,1,0,0,0],
+"mod__import_8php.html":[6,0,3,0,4],
+"mod__import_8php.html#a8db1899eeeb44dabd0904065b63627bb":[6,0,3,0,4,0],
+"mood_8php.html":[6,0,1,61],
+"mood_8php.html#a721b9b6703b3234a005641c92d409b8f":[6,0,1,61,0],
+"mood_8php.html#a7ae136dd7476865b4828136175db5022":[6,0,1,61,1],
+"msearch_8php.html":[6,0,1,62],
+"msearch_8php.html#ac80d2a6c0a92e79eec7efbbccd74d9a8":[6,0,1,62,0],
+"mytheme_2php_2style_8php.html":[6,0,3,1,2,0,1],
+"mytheme_2php_2theme_8php.html":[6,0,3,1,2,0,2],
+"mytheme_2php_2theme_8php.html#a6ce5df8ece6acc09c1fddaccbeb244e8":[6,0,3,1,2,0,2,0],
+"namespaceFriendica.html":[4,0,1],
+"namespaceFriendica.html":[5,0,1],
+"namespaceRedMatrix.html":[5,0,3],
+"namespaceRedMatrix.html":[4,0,3],
+"namespaceRedMatrix_1_1Import.html":[5,0,3,0],
+"namespaceRedMatrix_1_1Import.html":[4,0,3,0],
+"namespaceRedMatrix_1_1RedDAV.html":[5,0,3,1],
+"namespaceRedMatrix_1_1RedDAV.html":[4,0,3,1],
+"namespaceacl__selectors.html":[4,0,0],
+"namespaceacl__selectors.html":[5,0,0],
+"namespacefriendica-to-smarty-tpl.html":[4,0,2],
+"namespacefriendica-to-smarty-tpl.html":[5,0,2],
+"namespacemembers.html":[4,1,0],
+"namespacemembers_func.html":[4,1,1],
+"namespacemembers_vars.html":[4,1,2],
+"namespaces.html":[4,0],
+"namespaceupdatetpl.html":[4,0,4],
+"namespaceupdatetpl.html":[5,0,4],
+"namespaceutil.html":[5,0,5],
+"namespaceutil.html":[4,0,5],
+"nav_8php.html":[6,0,0,53],
+"nav_8php.html#a43be0df73b90647ea70947ce004e231e":[6,0,0,53,0],
+"nav_8php.html#ac3c920ce3ea5b0d9e0678ee37155f06a":[6,0,0,53,1],
+"netgrowth_8php.html":[6,0,1,63],
+"netgrowth_8php.html#a9b87bfc25a7cb11bc7f8e1fdd0310919":[6,0,1,63,0],
+"new__channel_8php.html":[6,0,1,65],
+"new__channel_8php.html#a180b0646957db8290482f02454ad7f23":[6,0,1,65,2],
+"new__channel_8php.html#a1ad7f99e4366a32942c6b954aba3a164":[6,0,1,65,1],
+"new__channel_8php.html#ae585191610f79da129492482ce8e2fee":[6,0,1,65,0],
+"none_8php.html":[6,0,3,0,5],
+"notes_8php.html":[6,0,1,66],
+"notes_8php.html#a4dbd7b1f906440746af48b484d66535a":[6,0,1,66,0],
+"notifications_8php.html":[6,0,1,67],
+"notifications_8php.html#a5baffec7b2e625c9f9cefbc097550d33":[6,0,1,67,1],
+"notifications_8php.html#aadd0b5525bd8c283a5d8a37982bbfe62":[6,0,1,67,0],
+"notifier_8php.html":[6,0,0,55],
+"notifier_8php.html#a568c502f626cff95e344c0748938b85d":[6,0,0,55,0],
+"notred_8php.html":[6,0,3,1,3,1,3],
+"oauth_8php.html":[6,0,0,57],
+"oauth_8php.html#a7a32a5990f113ac9465b03b29175cf16":[6,0,0,57,3],
+"oauth_8php.html#ad343cab37aa860d2d14dc86b7f5ca0c6":[6,0,0,57,2],
+"oexchange_8php.html":[6,0,1,70],
+"oexchange_8php.html#a2d8b785cd7d041a4e6274f5af370cf26":[6,0,1,70,0],
+"oexchange_8php.html#ac8e2e469ddc3db984b0c1b44558aca59":[6,0,1,70,1],
+"olddefault_8php.html":[6,0,3,1,0,2,5],
+"onedirsync_8php.html":[6,0,0,59],
+"onedirsync_8php.html#a411aedd47c57476099647961e6a86691":[6,0,0,59,0],
+"onepoll_8php.html":[6,0,0,60],
+"onepoll_8php.html#a72753b2fdec79b37c7f432035c91fb6d":[6,0,0,60,0],
+"online_8php.html":[6,0,1,71],
+"online_8php.html#a80e107c84eb722b0ca11d0413b96f9f7":[6,0,1,71,0],
+"openid_8php.html":[6,0,1,72],
+"openid_8php.html#a9a13827dbcf61ae4e45f0b6b33a88f43":[6,0,1,72,0],
+"opensearch_8php.html":[6,0,1,73],
+"opensearch_8php.html#ad13034877a496565ac7d99e9fc6f55e9":[6,0,1,73,0],
+"p_8php.html":[6,0,1,74],
+"p_8php.html#af9d5530ca0b3dc9409cf591c39e2480e":[6,0,1,74,0],
+"page_8php.html":[6,0,1,75],
+"page_8php.html#a4d89800c0366a239191b1692c09635cf":[6,0,1,75,1],
+"page_8php.html#a91a5f649f68406149108bded1dc90b22":[6,0,1,75,0],
+"page__widgets_8php.html":[6,0,0,61],
+"page__widgets_8php.html#a1a1e729da27f252cab6678288a17958f":[6,0,0,61,1],
+"page__widgets_8php.html#a39d547771c5f12a17c097436c82f0fa2":[6,0,0,61,0],
+"pages.html":[],
+"parse__url_8php.html":[6,0,1,76],
+"parse__url_8php.html#a05a9e8944380ba3cf6bbf5893dd4b74b":[6,0,1,76,2],
+"parse__url_8php.html#a25635549f2c22955d72465f4d2e58993":[6,0,1,76,3],
+"parse__url_8php.html#a496f4e3836154f6f32b8e805a7160d3a":[6,0,1,76,1],
+"parse__url_8php.html#aa7dd8f961bea042d62726ed909e4a868":[6,0,1,76,0],
+"passion_8php.html":[6,0,3,1,0,2,6],
+"passionwide_8php.html":[6,0,3,1,0,2,7],
+"pdledit_8php.html":[6,0,1,77],
+"pdledit_8php.html#a59cb550f6b7a4e7d8196fbc9de601619":[6,0,1,77,0],
+"pdledit_8php.html#a81da3c955d0e3db55d148a31483104c7":[6,0,1,77,1],
+"permissions_8php.html":[6,0,0,62],
+"permissions_8php.html#a040fd3d3b8517658b1668ae0cd093972":[6,0,0,62,2],
+"permissions_8php.html#a0f5bd9f7f4c8fb7ba4b2c1ed048b4dc7":[6,0,0,62,0],
+"permissions_8php.html#a50e8099ea8a4d7ed68b2a0a7ea9aa724":[6,0,0,62,5],
+"permissions_8php.html#a67ada9ed51e77885b6b0f6a28cee1835":[6,0,0,62,4],
+"permissions_8php.html#a9b5f5120566a3699a98efc5ccb0c59fe":[6,0,0,62,3],
+"permissions_8php.html#aa8b7b102c653649d7a71b5a1c044d90d":[6,0,0,62,6],
+"permissions_8php.html#aeca9b280f3dc3358c89976d81d690008":[6,0,0,62,1],
+"photo_8php.html":[6,0,1,78],
+"photo_8php.html#a582779d24882b0d31ee909a91d70a448":[6,0,1,78,0],
+"photo__driver_8php.html":[6,0,0,2,0],
+"photo__driver_8php.html#a1d0bc7161dec0d177b7d3bbe4421af9a":[6,0,0,2,0,2],
+"photo__driver_8php.html#a243cee492ce443afb6a7d77d54b6c4aa":[6,0,0,2,0,1],
+"photo__driver_8php.html#a32e2817faa25d7f11f60a8abff565035":[6,0,0,2,0,4],
+"photo__driver_8php.html#a78f5a10c568d2a9bbbb129dc96548887":[6,0,0,2,0,3],
+"photo__gd_8php.html":[6,0,0,2,1],
+"photo__imagick_8php.html":[6,0,0,2,2],
+"php2po_8php.html":[6,0,2,5],
+"php2po_8php.html#a1594a11499d06cc8a789ee7ca0c7a12b":[6,0,2,5,7],
+"php2po_8php.html#a401d84ce156e49e8168bd0c4781e1be1":[6,0,2,5,5],
+"php2po_8php.html#a45b05625748f412ec97afcd61cf7980b":[6,0,2,5,6],
+"php2po_8php.html#a48cb304902320d173a4eaa41543327b9":[6,0,2,5,3],
+"php2po_8php.html#a61f8ddeb5557d46ebc546cc355bda214":[6,0,2,5,0],
+"php2po_8php.html#a6b0b8ebd9ce811d1325ef2c129443bc0":[6,0,2,5,1],
+"php2po_8php.html#abbb0e5fd8fbc1f13a9bf68f86eb3d2a4":[6,0,2,5,4],
+"php2po_8php.html#ad6726cfaa85d4b8299d2b0f034cbf178":[6,0,2,5,2],
"php_2default_8php.html":[6,0,3,0,1],
"php_2default_8php.html#a3987f5547ceb7e36a210a66a06241a5a":[6,0,3,0,1,0],
"php_2theme__init_8php.html":[6,0,3,0,7],
"php_2theme__init_8php.html#a54f32c086fe209c99769a4c4047dd864":[6,0,3,0,7,0],
-"php_8php.html":[6,0,1,79],
-"php_8php.html#adb7164dfed9a4ecbe2e168e1e78f12f6":[6,0,1,79,0],
+"php_8php.html":[6,0,1,80],
+"php_8php.html#adb7164dfed9a4ecbe2e168e1e78f12f6":[6,0,1,80,0],
"pine_8php.html":[6,0,3,1,0,2,8],
-"ping_8php.html":[6,0,1,80],
-"ping_8php.html#a77217b1b190b4c5d8770867b45f0c0a1":[6,0,1,80,0],
-"plugin_8php.html":[6,0,0,61],
-"plugin_8php.html#a093a9cb98f51e3643634bd8bc6ed6e76":[6,0,0,61,24],
-"plugin_8php.html#a0e8c2ea50bfdbc39e17ccccaea21ddc3":[6,0,0,61,22],
-"plugin_8php.html#a23c4fccf1eb5fcd63b24783ba1f05f7a":[6,0,0,61,8],
-"plugin_8php.html#a326365e48ef94f0b9a0a771b8d75e813":[6,0,0,61,17],
-"plugin_8php.html#a425472c5f3afc137268b2ad45652b209":[6,0,0,61,20],
-"plugin_8php.html#a48047edfbef770125a5508dcc2f9282f":[6,0,0,61,7],
-"plugin_8php.html#a482131013272a1d5d5c1b1469c6c55d5":[6,0,0,61,16],
-"plugin_8php.html#a4a0ae7b881e7c8af99a69e3b03f898b4":[6,0,0,61,14],
-"plugin_8php.html#a516591850f4fd49fd1425cfa54089db8":[6,0,0,61,9],
-"plugin_8php.html#a56f71fe5adf9586ce950523d8180443e":[6,0,0,61,26],
-"plugin_8php.html#a65ab52cb1a7030d5190e247211bef2a1":[6,0,0,61,11],
-"plugin_8php.html#a65fedcffbe03562ef844cabee37d34e2":[6,0,0,61,23],
-"plugin_8php.html#a67ca417634de2d0beffffc54aeb951ff":[6,0,0,61,12],
-"plugin_8php.html#a75f7dfed291fd7add7fc85b5c022a1f4":[6,0,0,61,4],
-"plugin_8php.html#a7f05de16c0a32602853b09b99dd85e7c":[6,0,0,61,0],
-"plugin_8php.html#a855c4fdb38c0fc2714d537752a4347f9":[6,0,0,61,19],
-"plugin_8php.html#a9039e15aae27676af7777dcbee5a11d6":[6,0,0,61,1],
-"plugin_8php.html#a90538627db68605aeb6db17a8ead6523":[6,0,0,61,25],
-"plugin_8php.html#a9ab6caae31935f6cf781ce7872db7cdf":[6,0,0,61,13],
-"plugin_8php.html#a9ca9632b7309a65b05c03a3e2f473a3d":[6,0,0,61,18],
-"plugin_8php.html#acb63c27d07f6d7dffe95f98a6cef1295":[6,0,0,61,3],
-"plugin_8php.html#ad48de9c0fb7f19413a2aa49250d00405":[6,0,0,61,6],
-"plugin_8php.html#ad9ff8ba554576383c5911a4bce068c1f":[6,0,0,61,2],
-"plugin_8php.html#aeaebe63dcf6fa2794f363ba2bc0b2c6b":[6,0,0,61,15],
-"plugin_8php.html#af92789f559b89a380e49d303218aeeca":[6,0,0,61,10],
-"plugin_8php.html#af9ac19004dca49adae1ac7a0d9f3b025":[6,0,0,61,21],
-"plugin_8php.html#aff0178bd8d0b34a94d5efddc883edd35":[6,0,0,61,5],
-"po2php_8php.html":[6,0,2,7],
-"po2php_8php.html#a3b75e36f913198299e99559b175cd8b4":[6,0,2,7,0],
-"poco_8php.html":[6,0,1,81],
-"poco_8php.html#a53def16f75e3d41f1d2bb7cfa4905498":[6,0,1,81,0],
-"poke_8php.html":[6,0,1,82],
-"poke_8php.html#a9725aab97b3983e6a98bd81c4efe7d3b":[6,0,1,82,1],
-"poke_8php.html#ac9190563a8da9c07a16f9dcd71cf6993":[6,0,1,82,0],
-"poll_8php.html":[6,0,1,83],
-"poll_8php.html#a26be9d4f230cb68f5be326198cfc6c77":[6,0,1,83,2],
-"poll_8php.html#a3314c26bd2ac0ed831cebf3315cd3263":[6,0,1,83,0],
-"poll_8php.html#ab9ecd5b71af090a5da9c93f34f7ec930":[6,0,1,83,1],
-"poller_8php.html":[6,0,0,62],
-"poller_8php.html#a5f12df3a4738124b6c039971e87e76da":[6,0,0,62,0],
-"post_8php.html":[6,0,1,84],
-"post_8php.html#af4b48181ce773ef0cdfc972441445c34":[6,0,1,84,0],
-"post_8php.html#af59e6a1dc22d19d9257b01cd7ccedb75":[6,0,1,84,1],
-"post__to__red_8php.html":[6,0,2,1,0,0],
-"post__to__red_8php.html#a085c250d4ceff5e4f10052f3d2039823":[6,0,2,1,0,0,16],
-"post__to__red_8php.html#a0f139dea77a94c98f26007963eea639c":[6,0,2,1,0,0,12],
-"post__to__red_8php.html#a3a2af6ad845239f26e86fccabf8639e1":[6,0,2,1,0,0,17],
-"post__to__red_8php.html#a4674bb5ce2baa32c559607460c39a2c5":[6,0,2,1,0,0,3],
-"post__to__red_8php.html#a49fd35f7b1cdddfe6e26ddfcf8d3c4ec":[6,0,2,1,0,0,1],
-"post__to__red_8php.html#a4d90ac085c14f53ff4d8ab4c23477ea6":[6,0,2,1,0,0,9],
-"post__to__red_8php.html#a588cea66afe0b32f27f2713d44940119":[6,0,2,1,0,0,20],
-"post__to__red_8php.html#a5cc2a89a6d33cdb8e2ca557a69bef42d":[6,0,2,1,0,0,2],
-"post__to__red_8php.html#a6210f39392a5f0fa0255cc7d3760493a":[6,0,2,1,0,0,21],
-"post__to__red_8php.html#a75db5d87226a0287a0ac0fa315f2bcfd":[6,0,2,1,0,0,5],
-"post__to__red_8php.html#a7e68a8d9c83cb28d032aad3ea85ce0a6":[6,0,2,1,0,0,13],
-"post__to__red_8php.html#a8ec8f8809e3c5d1b2c9598c8185d63aa":[6,0,2,1,0,0,4],
-"post__to__red_8php.html#a906be8f72cf1aa2e199c0683ea6a4017":[6,0,2,1,0,0,15],
-"post__to__red_8php.html#a96d0ccecb96600ef1bfd50ab3f77315f":[6,0,2,1,0,0,10],
-"post__to__red_8php.html#a99811555b30bde504a863e44015f2f19":[6,0,2,1,0,0,19],
-"post__to__red_8php.html#aa97aeda12ef080665f16311a4e1eb901":[6,0,2,1,0,0,14],
-"post__to__red_8php.html#aacba7a0646fc00ae6ac4f5dc383fccab":[6,0,2,1,0,0,8],
-"post__to__red_8php.html#ada8a7130088351710bb02ed622d6bf65":[6,0,2,1,0,0,18],
-"post__to__red_8php.html#ae0b881461afbdba93d9329068ea52136":[6,0,2,1,0,0,7],
-"post__to__red_8php.html#ae6f3a2c0561cbeacda5be565b06de8a7":[6,0,2,1,0,0,6],
-"post__to__red_8php.html#aeec4125719184e7b097b3b9fba3101b5":[6,0,2,1,0,0,0],
-"post__to__red_8php.html#af3e7ebd361d4ed7cb6d43209970cd94a":[6,0,2,1,0,0,22],
-"post__to__red_8php.html#af5fd50e2c42ede85f8a9e8d9ee3cf540":[6,0,2,1,0,0,11],
-"pretheme_8php.html":[6,0,1,85],
-"pretheme_8php.html#af5660943ee99db5fd75182316522eafe":[6,0,1,85,0],
-"profile_8php.html":[6,0,1,87],
-"profile_8php.html#a3775cf6eef6587e5143133356a7b76c0":[6,0,1,87,0],
-"profile_8php.html#ab5d0246be0552e2182a585c1206d22a5":[6,0,1,87,1],
-"profile__photo_8php.html":[6,0,1,88],
-"profile__photo_8php.html#a140631c56438fbfacb61a1eb43067d02":[6,0,1,88,0],
-"profile__photo_8php.html#a4b80234074bd603221aa5364f330e479":[6,0,1,88,1],
-"profile__photo_8php.html#a561103564199da56e58061a4196eb102":[6,0,1,88,2],
-"profile__selectors_8php.html":[6,0,0,64],
-"profile__selectors_8php.html#a3b50b3ea4ea4bdbebebfffc5d1b157c7":[6,0,0,64,4],
-"profile__selectors_8php.html#a7473dd095987e1cdcc79d4f0bb5e6798":[6,0,0,64,2],
-"profile__selectors_8php.html#a8bfa1ca2d1598a3d65f1f9bb803ca816":[6,0,0,64,1],
-"profile__selectors_8php.html#ab0eae5c0ceba77364469f0f580f0d074":[6,0,0,64,5],
-"profile__selectors_8php.html#adc79715bd2e102b4583fb530749ec534":[6,0,0,64,3],
-"profile__selectors_8php.html#ae2b2c087e6530c61c0b256fd26d52355":[6,0,0,64,0],
-"profiles_8php.html":[6,0,1,89],
-"profiles_8php.html#a36f71405ad536228f8bb84a551b23f7e":[6,0,1,89,1],
-"profiles_8php.html#a46975783b8b8d70402d51487eb1f0b00":[6,0,1,89,0],
-"profiles_8php.html#ab0362c81b1d3b0b12a772b9fac446e04":[6,0,1,89,2],
-"profperm_8php.html":[6,0,1,90],
-"profperm_8php.html#a17fb64ec05edee1dc94d95438807d6c6":[6,0,1,90,1],
-"profperm_8php.html#aef015787de2373d9fb3fe3f814fb5023":[6,0,1,90,0],
-"pubsites_8php.html":[6,0,1,91],
-"pubsites_8php.html#af614e279aab54065345bda6b03eafdf0":[6,0,1,91,0],
-"queue_8php.html":[6,0,0,66],
-"queue_8php.html#af8c93de86d866c3200174c8450a0f341":[6,0,0,66,0],
-"queue__fn_8php.html":[6,0,0,67],
-"queue__fn_8php.html#a4c2876181f75a4a61e85b7f00dfdbba1":[6,0,0,67,1],
-"queue__fn_8php.html#a8fe71e981399bbf5d000a6ca42f57b24":[6,0,0,67,0],
-"randprof_8php.html":[6,0,1,92],
-"randprof_8php.html#abf5dba3c608b9304cbf68327cd31b090":[6,0,1,92,0],
-"rbmark_8php.html":[6,0,1,93],
-"rbmark_8php.html#a43fec4960b50926251574762cc491f76":[6,0,1,93,0],
-"rbmark_8php.html#ac5a66aa8599fa5dc702bae396d8d1f8c":[6,0,1,93,1],
-"receive_8php.html":[6,0,1,94],
-"receive_8php.html#a03d8fa26e77844020ba5602deca7d494":[6,0,1,94,0],
+"ping_8php.html":[6,0,1,81],
+"ping_8php.html#a77217b1b190b4c5d8770867b45f0c0a1":[6,0,1,81,0],
+"plugin_8php.html":[6,0,0,64],
+"plugin_8php.html#a093a9cb98f51e3643634bd8bc6ed6e76":[6,0,0,64,24],
+"plugin_8php.html#a0e8c2ea50bfdbc39e17ccccaea21ddc3":[6,0,0,64,22],
+"plugin_8php.html#a23c4fccf1eb5fcd63b24783ba1f05f7a":[6,0,0,64,8],
+"plugin_8php.html#a326365e48ef94f0b9a0a771b8d75e813":[6,0,0,64,17],
+"plugin_8php.html#a425472c5f3afc137268b2ad45652b209":[6,0,0,64,20],
+"plugin_8php.html#a48047edfbef770125a5508dcc2f9282f":[6,0,0,64,7],
+"plugin_8php.html#a482131013272a1d5d5c1b1469c6c55d5":[6,0,0,64,16],
+"plugin_8php.html#a4a0ae7b881e7c8af99a69e3b03f898b4":[6,0,0,64,14],
+"plugin_8php.html#a516591850f4fd49fd1425cfa54089db8":[6,0,0,64,9],
+"plugin_8php.html#a56f71fe5adf9586ce950523d8180443e":[6,0,0,64,26],
+"plugin_8php.html#a65ab52cb1a7030d5190e247211bef2a1":[6,0,0,64,11],
+"plugin_8php.html#a65fedcffbe03562ef844cabee37d34e2":[6,0,0,64,23],
+"plugin_8php.html#a67ca417634de2d0beffffc54aeb951ff":[6,0,0,64,12],
+"plugin_8php.html#a75f7dfed291fd7add7fc85b5c022a1f4":[6,0,0,64,4],
+"plugin_8php.html#a7f05de16c0a32602853b09b99dd85e7c":[6,0,0,64,0],
+"plugin_8php.html#a855c4fdb38c0fc2714d537752a4347f9":[6,0,0,64,19],
+"plugin_8php.html#a9039e15aae27676af7777dcbee5a11d6":[6,0,0,64,1],
+"plugin_8php.html#a90538627db68605aeb6db17a8ead6523":[6,0,0,64,25],
+"plugin_8php.html#a9ab6caae31935f6cf781ce7872db7cdf":[6,0,0,64,13],
+"plugin_8php.html#a9ca9632b7309a65b05c03a3e2f473a3d":[6,0,0,64,18],
+"plugin_8php.html#acb63c27d07f6d7dffe95f98a6cef1295":[6,0,0,64,3],
+"plugin_8php.html#ad48de9c0fb7f19413a2aa49250d00405":[6,0,0,64,6],
+"plugin_8php.html#ad9ff8ba554576383c5911a4bce068c1f":[6,0,0,64,2],
+"plugin_8php.html#aeaebe63dcf6fa2794f363ba2bc0b2c6b":[6,0,0,64,15],
+"plugin_8php.html#af92789f559b89a380e49d303218aeeca":[6,0,0,64,10],
+"plugin_8php.html#af9ac19004dca49adae1ac7a0d9f3b025":[6,0,0,64,21],
+"plugin_8php.html#aff0178bd8d0b34a94d5efddc883edd35":[6,0,0,64,5],
+"po2php_8php.html":[6,0,2,6],
+"po2php_8php.html#a3b75e36f913198299e99559b175cd8b4":[6,0,2,6,0],
+"poco_8php.html":[6,0,1,82],
+"poco_8php.html#a53def16f75e3d41f1d2bb7cfa4905498":[6,0,1,82,0],
+"poke_8php.html":[6,0,1,83],
+"poke_8php.html#a9725aab97b3983e6a98bd81c4efe7d3b":[6,0,1,83,1],
+"poke_8php.html#ac9190563a8da9c07a16f9dcd71cf6993":[6,0,1,83,0],
+"poll_8php.html":[6,0,1,84],
+"poll_8php.html#a26be9d4f230cb68f5be326198cfc6c77":[6,0,1,84,2],
+"poll_8php.html#a3314c26bd2ac0ed831cebf3315cd3263":[6,0,1,84,0],
+"poll_8php.html#ab9ecd5b71af090a5da9c93f34f7ec930":[6,0,1,84,1],
+"poller_8php.html":[6,0,0,65],
+"poller_8php.html#a5f12df3a4738124b6c039971e87e76da":[6,0,0,65,0],
+"post_8php.html":[6,0,1,85],
+"post_8php.html#af4b48181ce773ef0cdfc972441445c34":[6,0,1,85,0],
+"post_8php.html#af59e6a1dc22d19d9257b01cd7ccedb75":[6,0,1,85,1],
+"pretheme_8php.html":[6,0,1,86],
+"pretheme_8php.html#af5660943ee99db5fd75182316522eafe":[6,0,1,86,0],
+"profile_8php.html":[6,0,1,88],
+"profile_8php.html#a3775cf6eef6587e5143133356a7b76c0":[6,0,1,88,0],
+"profile_8php.html#ab5d0246be0552e2182a585c1206d22a5":[6,0,1,88,1],
+"profile__photo_8php.html":[6,0,1,89],
+"profile__photo_8php.html#a140631c56438fbfacb61a1eb43067d02":[6,0,1,89,0],
+"profile__photo_8php.html#a4b80234074bd603221aa5364f330e479":[6,0,1,89,1],
+"profile__photo_8php.html#a561103564199da56e58061a4196eb102":[6,0,1,89,2],
+"profile__selectors_8php.html":[6,0,0,67],
+"profile__selectors_8php.html#a3b50b3ea4ea4bdbebebfffc5d1b157c7":[6,0,0,67,4],
+"profile__selectors_8php.html#a7473dd095987e1cdcc79d4f0bb5e6798":[6,0,0,67,2],
+"profile__selectors_8php.html#a8bfa1ca2d1598a3d65f1f9bb803ca816":[6,0,0,67,1],
+"profile__selectors_8php.html#ab0eae5c0ceba77364469f0f580f0d074":[6,0,0,67,5],
+"profile__selectors_8php.html#adc79715bd2e102b4583fb530749ec534":[6,0,0,67,3],
+"profile__selectors_8php.html#ae2b2c087e6530c61c0b256fd26d52355":[6,0,0,67,0],
+"profiles_8php.html":[6,0,1,90],
+"profiles_8php.html#a36f71405ad536228f8bb84a551b23f7e":[6,0,1,90,1],
+"profiles_8php.html#a46975783b8b8d70402d51487eb1f0b00":[6,0,1,90,0],
+"profiles_8php.html#ab0362c81b1d3b0b12a772b9fac446e04":[6,0,1,90,2],
+"profperm_8php.html":[6,0,1,91],
+"profperm_8php.html#a17fb64ec05edee1dc94d95438807d6c6":[6,0,1,91,1],
+"profperm_8php.html#aef015787de2373d9fb3fe3f814fb5023":[6,0,1,91,0],
+"pubsites_8php.html":[6,0,1,92],
+"pubsites_8php.html#af614e279aab54065345bda6b03eafdf0":[6,0,1,92,0],
+"queue_8php.html":[6,0,0,69],
+"queue_8php.html#af8c93de86d866c3200174c8450a0f341":[6,0,0,69,0],
+"queue__fn_8php.html":[6,0,0,70],
+"queue__fn_8php.html#a4c2876181f75a4a61e85b7f00dfdbba1":[6,0,0,70,1],
+"queue__fn_8php.html#a8fe71e981399bbf5d000a6ca42f57b24":[6,0,0,70,0],
+"randprof_8php.html":[6,0,1,93],
+"randprof_8php.html#abf5dba3c608b9304cbf68327cd31b090":[6,0,1,93,0],
+"rbmark_8php.html":[6,0,1,94],
+"rbmark_8php.html#a43fec4960b50926251574762cc491f76":[6,0,1,94,0],
+"rbmark_8php.html#ac5a66aa8599fa5dc702bae396d8d1f8c":[6,0,1,94,1],
+"receive_8php.html":[6,0,1,95],
+"receive_8php.html#a03d8fa26e77844020ba5602deca7d494":[6,0,1,95,0],
"redable_8php.html":[6,0,3,0,6],
"redable_8php.html#a3987f5547ceb7e36a210a66a06241a5a":[6,0,3,0,6,0],
"redbasic_2php_2style_8php.html":[6,0,3,1,3,0,1],
@@ -148,106 +249,5 @@ var NAVTREEINDEX7 =
"redbasic_2php_2theme_8php.html":[6,0,3,1,3,0,2],
"redbasic_2php_2theme_8php.html#af6eb813e9fc7e2d76ac1b82bc5c0ed9b":[6,0,3,1,3,0,2,0],
"redbasic_8php.html":[6,0,3,1,0,2,9],
-"reddav_8php.html":[6,0,0,68],
-"reddav_8php.html#a5df0d09893f2e65dc5cf6bbab6cfb266":[6,0,0,68,5],
-"reddav_8php.html#a9f531641dfb4e43cd88ac1a9ae7e2088":[6,0,0,68,6],
-"reddav_8php.html#ae92ea0df1993f6a7bcd1b6efa6c1fb66":[6,0,0,68,4],
-"register_8php.html":[6,0,1,95],
-"register_8php.html#a0e91f57f111407ea8d3223a05022bb2a":[6,0,1,95,0],
-"register_8php.html#a51731dcc1917c58a790eb1c0f6132271":[6,0,1,95,2],
-"register_8php.html#ae20c0cd40f738d6295de58b9202c83d5":[6,0,1,95,1],
-"regmod_8php.html":[6,0,1,96],
-"regmod_8php.html#a7953df4e32e63946565e90cdd5d50409":[6,0,1,96,0],
-"regver_8php.html":[6,0,1,97],
-"regver_8php.html#ad2c5f644fd1b099abd7c715b7df6f50f":[6,0,1,97,0],
-"removeaccount_8php.html":[6,0,1,98],
-"removeaccount_8php.html#a26a3325292e932c59793430ab737126a":[6,0,1,98,1],
-"removeaccount_8php.html#a516e7380b9e5796054aa8245f3509695":[6,0,1,98,0],
-"removeme_8php.html":[6,0,1,99],
-"removeme_8php.html#a065a589caa2aa84c60f7073a28f0ad9c":[6,0,1,99,0],
-"removeme_8php.html#a7be08738beca44bb98a79e01cdb2ee88":[6,0,1,99,1],
-"rmagic_8php.html":[6,0,1,100],
-"rmagic_8php.html#a3e28db1e5cfa7e5c2617f90222c1caef":[6,0,1,100,0],
-"rmagic_8php.html#a869de069d081b3c4e98b957d06bbf08f":[6,0,1,100,2],
-"rmagic_8php.html#a95455edd43f1bff39446a57388cdde16":[6,0,1,100,1],
-"rpost_8php.html":[6,0,1,101],
-"rpost_8php.html#a8190354d789000806d9879aea276728f":[6,0,1,101,0],
-"rsd__xml_8php.html":[6,0,1,102],
-"rsd__xml_8php.html#a740cd02fa15e5a53f8547fac73f0ab82":[6,0,1,102,0],
-"search_8php.html":[6,0,1,103],
-"search_8php.html#ab2568591359edde5b483a6cd9a24b2cc":[6,0,1,103,0],
-"search_8php.html#acf19fd30f07f495781ca0d7a0a08b435":[6,0,1,103,1],
-"search__ac_8php.html":[6,0,1,104],
-"search__ac_8php.html#a14f90c83a3f2be095e9e2992a8d66138":[6,0,1,104,0],
-"security_8php.html":[6,0,0,69],
-"security_8php.html#a20f8b9851f23ee8894b8925584ef6821":[6,0,0,69,2],
-"security_8php.html#a3ef2be6a7e4928e39d50059d6feb457c":[6,0,0,69,11],
-"security_8php.html#a444ac867dfa8c37cf0a7a226412bee28":[6,0,0,69,4],
-"security_8php.html#a6126c77a1267e046ac59cf864613f011":[6,0,0,69,10],
-"security_8php.html#a77ba0d1889a39cf32434c5ce96fe1433":[6,0,0,69,5],
-"security_8php.html#a8d23d2597aae380a3341872fe9513380":[6,0,0,69,1],
-"security_8php.html#a9355488460ab11d6058656ff919e5cf9":[6,0,0,69,7],
-"security_8php.html#a9c6180e82150a5a9af91a1255d096b5c":[6,0,0,69,3],
-"security_8php.html#ab3bdd30dc60d9ee72370b866aa4a2d01":[6,0,0,69,9],
-"security_8php.html#acd06ef411116115c2f0a92633700db8a":[6,0,0,69,6],
-"security_8php.html#adc7bf51e3b8d67bd80e9348f9ab03733":[6,0,0,69,0],
-"security_8php.html#afa683bc025a1d2fe9065e2f6cd71a22f":[6,0,0,69,8],
-"session_8php.html":[6,0,0,70],
-"session_8php.html#a26fa1042356d555023cbf15ddd4f8507":[6,0,0,70,4],
-"session_8php.html#a4c0ead624f95483e386bc80abf570a8f":[6,0,0,70,0],
-"session_8php.html#a5e1c616e02b863d5450317d101366bb7":[6,0,0,70,1],
-"session_8php.html#a62e4a6cb26b4bb1b8ddd8277b26090eb":[6,0,0,70,8],
-"session_8php.html#a7f0f50576360d9ba52d29364e0b83a8e":[6,0,0,70,5],
-"session_8php.html#a96b09cc763572f45280786a7b33feb7e":[6,0,0,70,7],
-"session_8php.html#ac4461c1984543d3553e73dba2771568f":[6,0,0,70,6],
-"session_8php.html#ac95373f4966862a028033dd2f94d4da1":[6,0,0,70,3],
-"session_8php.html#af0100a2642a5268594bbd5742a03d885":[6,0,0,70,9],
-"session_8php.html#af230b86bfff7db66c3bdd7e0bbc24052":[6,0,0,70,2],
-"settings_8php.html":[6,0,1,105],
-"settings_8php.html#a39abc76ff5459c57e3b957664f273f18":[6,0,1,105,0],
-"settings_8php.html#a3a4cde287482fced008583f54ba2a722":[6,0,1,105,1],
-"settings_8php.html#aa7ee94d88ac088edb04ccf3a26de3586":[6,0,1,105,2],
-"setup_8php.html":[6,0,1,106],
-"setup_8php.html#a0c3f3b671381f6dccd924b8ecdfc56c4":[6,0,1,106,2],
-"setup_8php.html#a13cf286774149a0a7bd8adb8179cec75":[6,0,1,106,14],
-"setup_8php.html#a14d208682a88632290c895d20da6e7d6":[6,0,1,106,5],
-"setup_8php.html#a267555abd17290e659b4bf44b885e4e0":[6,0,1,106,13],
-"setup_8php.html#a2b375ddc555140236fc500135de99371":[6,0,1,106,10],
-"setup_8php.html#a5ad92c0857d1dadd6b60a9a557159c9f":[6,0,1,106,3],
-"setup_8php.html#a69a450e06dd3771fb51d3e4b0266a35e":[6,0,1,106,1],
-"setup_8php.html#a8652788e8589778c5f81634a9d5b9429":[6,0,1,106,8],
-"setup_8php.html#a88247384a96e14516f474d7af6a465c1":[6,0,1,106,12],
-"setup_8php.html#aa3bbb111780da70ba35cc23a306f2c76":[6,0,1,106,4],
-"setup_8php.html#ab4b71369a25021d59247c917e98d8246":[6,0,1,106,7],
-"setup_8php.html#abe405d227ba7232971964a706d4f3bce":[6,0,1,106,11],
-"setup_8php.html#ad2e0375a9ab87ebe6e78124ee125054a":[6,0,1,106,9],
-"setup_8php.html#addb24714bc2542aa4f4215e98fe48432":[6,0,1,106,16],
-"setup_8php.html#ae8e4d9279a61de74d5f39962cb7b6ca1":[6,0,1,106,0],
-"setup_8php.html#aea1ebdda58ec938f4e7b31aa5c5f6b58":[6,0,1,106,15],
-"setup_8php.html#afd8b0b3ade1507c45325caf377bf459d":[6,0,1,106,6],
-"share_8php.html":[6,0,1,107],
-"share_8php.html#afeb26046bdd02567ecd29ab5f188b249":[6,0,1,107,0],
-"siteinfo_8php.html":[6,0,1,108],
-"siteinfo_8php.html#a3efbd0bd6564af19ec0a9ce0294e59d0":[6,0,1,108,1],
-"siteinfo_8php.html#a70c09bfb6dd1c86a125a35f62ed53656":[6,0,1,108,0],
-"sitelist_8php.html":[6,0,1,109],
-"sitelist_8php.html#a665a59bf60f780b40f32c909f4a473b1":[6,0,1,109,0],
-"smarty_8php.html":[6,0,0,71],
-"smilies_8php.html":[6,0,1,110],
-"smilies_8php.html#ab43b1e9f33a700a830aff14c7b3a617f":[6,0,1,110,0],
-"socgraph_8php.html":[6,0,0,72],
-"socgraph_8php.html#a16ac51c505d72987ed8d6d6aed0e8586":[6,0,0,72,0],
-"socgraph_8php.html#a5ef8bef37161df53718a21e93d02fbd6":[6,0,0,72,6],
-"socgraph_8php.html#a76e6fca3d2bc842dcd9e710bb87c8329":[6,0,0,72,7],
-"socgraph_8php.html#a790690bb1a1d02483fe31632a160144d":[6,0,0,72,8],
-"socgraph_8php.html#a7d34cd58025bcd9e575282f44db75918":[6,0,0,72,1],
-"socgraph_8php.html#a887d576f21fd708132a06d0f72f90f84":[6,0,0,72,4],
-"socgraph_8php.html#ac343a846241d36cdf046b08f3396cfe9":[6,0,0,72,2],
-"socgraph_8php.html#af175807406d94407a5e11742a3287746":[6,0,0,72,5],
-"socgraph_8php.html#af29d056beec10b4e38e5209c92452894":[6,0,0,72,3],
-"sources_8php.html":[6,0,1,111],
-"sources_8php.html#ac442ccef080ab95772d8929fcafcb4b7":[6,0,1,111,0],
-"sources_8php.html#ac73298ff162ce7b2de8dcaf3d3305b1e":[6,0,1,111,1],
-"spam_8php.html":[6,0,0,73],
-"spam_8php.html#a05861201147b9a538d006f0269255cf9":[6,0,0,73,1]
+"reddav_8php.html":[6,0,0,71]
};
diff --git a/doc/html/navtreeindex8.js b/doc/html/navtreeindex8.js
index 53e731b10..ee6d9a365 100644
--- a/doc/html/navtreeindex8.js
+++ b/doc/html/navtreeindex8.js
@@ -1,253 +1,253 @@
var NAVTREEINDEX8 =
{
-"spam_8php.html#ab8fd81a82c9622cbebb8ceab6b310ca6":[6,0,0,73,0],
-"sslify_8php.html":[6,0,1,112],
-"sslify_8php.html#a75b11e54a3d1fc83e7d4c0e8b4dab316":[6,0,1,112,0],
-"starred_8php.html":[6,0,1,113],
-"starred_8php.html#a63024fb418c678e49fd535e3752d349a":[6,0,1,113,0],
-"subthread_8php.html":[6,0,1,114],
-"subthread_8php.html#a50368f3d825b77996030528e7fbfa3d3":[6,0,1,114,0],
-"suggest_8php.html":[6,0,1,115],
-"suggest_8php.html#a58748a8235d4523f8333847f3e42dd91":[6,0,1,115,0],
-"suggest_8php.html#a696acf1dd8070e479adcc80c63c6718c":[6,0,1,115,1],
-"system__unavailable_8php.html":[6,0,0,74],
-"system__unavailable_8php.html#a73751a6bcc17ad3ca503496e2fb020fa":[6,0,0,74,0],
-"tagger_8php.html":[6,0,1,116],
-"tagger_8php.html#a0e4a3eb177d1684553c547503d67161c":[6,0,1,116,0],
-"tagrm_8php.html":[6,0,1,117],
-"tagrm_8php.html#a1702f40aa53a2fa93deade1f609abe78":[6,0,1,117,1],
-"tagrm_8php.html#adfd4ea5b4d7fc6d9c9e042af5cd7d49a":[6,0,1,117,0],
-"taxonomy_8php.html":[6,0,0,75],
-"taxonomy_8php.html#a03f55ee46c5f496e42f3d29db8d09cce":[6,0,0,75,9],
-"taxonomy_8php.html#a088371f4bc19155b2291508f5cd63332":[6,0,0,75,0],
-"taxonomy_8php.html#a08df5164926d2b31b8e9fcfe919de2b6":[6,0,0,75,2],
-"taxonomy_8php.html#a0fb8cf0ac7bcbc8b27d856fe9bf69cd1":[6,0,0,75,6],
-"taxonomy_8php.html#a163b5131f388080b0fc82398d3a32fe1":[6,0,0,75,4],
-"taxonomy_8php.html#a3299482ac20e9d79453048dd52881d37":[6,0,0,75,3],
-"taxonomy_8php.html#a4ba1339b2a7054971178ce194e4440fd":[6,0,0,75,10],
-"taxonomy_8php.html#a599ee71dd3194c8127b00dabec77abc1":[6,0,0,75,1],
-"taxonomy_8php.html#a7747fa859ac56fbffd4f9782d85505de":[6,0,0,75,7],
-"taxonomy_8php.html#a7a913d19c77610da689be48fbbf6734c":[6,0,0,75,14],
-"taxonomy_8php.html#aaeded36bcc983b35d9205fe5b6c18c43":[6,0,0,75,13],
-"taxonomy_8php.html#aaf90ba8b839d6459065f39a4f1109b8a":[6,0,0,75,11],
-"taxonomy_8php.html#ac21d1dff16d569e7d110167aea4e63c2":[6,0,0,75,12],
-"taxonomy_8php.html#adfead45e3b8a3dfb2b4a4b9281d0dbe1":[6,0,0,75,5],
-"taxonomy_8php.html#af387463d42ffdf7d2ab3d5b22e40a0c7":[6,0,0,75,8],
-"template__processor_8php.html":[6,0,0,76],
-"template__processor_8php.html#a797745996c7839a93b2ab1af456631ab":[6,0,0,76,3],
-"template__processor_8php.html#ab2bcd8738f20f293636a6ae8e1099db5":[6,0,0,76,1],
-"template__processor_8php.html#ac635bb19a5f6eadd6b0cddefdd537c1e":[6,0,0,76,2],
-"text_8php.html":[6,0,0,77],
-"text_8php.html#a0271381208acfa2d4cff36da281e3e23":[6,0,0,77,40],
-"text_8php.html#a030fa5ecc64168af0c4f44897a9bce63":[6,0,0,77,46],
-"text_8php.html#a070384ec000fd65043fce11d5392d241":[6,0,0,77,6],
-"text_8php.html#a0a1f7c0e97f9ecbebf3e5834582b014c":[6,0,0,77,16],
-"text_8php.html#a0c65597bb4aed3a039eb795ff540e5e3":[6,0,0,77,11],
-"text_8php.html#a10dde167249ed5abf190a7a0986878ea":[6,0,0,77,71],
-"text_8php.html#a11255c8c4e5245b6c24f97684826aa54":[6,0,0,77,45],
-"text_8php.html#a13286f8a95d2de6b102966ecc270c8d6":[6,0,0,77,5],
-"text_8php.html#a1360fed7f918d859daaca1c9f384f9af":[6,0,0,77,82],
-"text_8php.html#a138a3a611fa7f4f3630674145fc826bf":[6,0,0,77,33],
-"text_8php.html#a1557112a774ec00fa06ed6b6f6495506":[6,0,0,77,36],
-"text_8php.html#a1633412120f52bdce5f43e0a127d9293":[6,0,0,77,50],
-"text_8php.html#a1af49756c8c71902a66c7e329c462beb":[6,0,0,77,53],
-"text_8php.html#a1e510c53624933ce9b7d6715784894db":[6,0,0,77,47],
-"text_8php.html#a24d441d30df4b8e6bf6780bf62a5e2c6":[6,0,0,77,48],
-"text_8php.html#a2690ad67bb6fb97ef69de3e8d23f2728":[6,0,0,77,43],
-"text_8php.html#a273156a6f5cddc6652ad656821cd5805":[6,0,0,77,72],
-"text_8php.html#a27cd2c1b3bcb49a0cfb7249e851725ca":[6,0,0,77,4],
-"text_8php.html#a29988052f3944111def3b6aaf2c7a8f6":[6,0,0,77,90],
-"text_8php.html#a29d6b804e368d3ef359ee295e96ed4c7":[6,0,0,77,79],
-"text_8php.html#a2a902f5fdba8646333e997898ac45ea3":[6,0,0,77,49],
-"text_8php.html#a2e8d6c402603be3a1256a16605e09c2a":[6,0,0,77,10],
-"text_8php.html#a2f2585385530cb935a6325c809d84a4d":[6,0,0,77,76],
-"text_8php.html#a2ffd79c60cc87cec24ef76447b905187":[6,0,0,77,92],
-"text_8php.html#a3054189cff173977f4216c9a3dd29e1b":[6,0,0,77,23],
-"text_8php.html#a324c58f37f6acdf9cd1922aa76077d9f":[6,0,0,77,87],
-"text_8php.html#a33bdb5d4bfff2ede7caf61a98ac0a2e9":[6,0,0,77,74],
-"text_8php.html#a36a2e5d418ee81140f25c4233cfecd1f":[6,0,0,77,85],
-"text_8php.html#a3972701c5c83624ec4e2d06242f614e7":[6,0,0,77,31],
-"text_8php.html#a3999a0b3e22e440f280ee791ce34d384":[6,0,0,77,42],
-"text_8php.html#a3a0c432a484c17d7720b8ba2d6bfdd59":[6,0,0,77,25],
-"text_8php.html#a3d225b253bb9e0f2498c11647d927b0b":[6,0,0,77,73],
-"text_8php.html#a3d2793d66db3345fd290b71e2eadf98e":[6,0,0,77,7],
-"text_8php.html#a405afe814a23f3bd94d826101aa168ab":[6,0,0,77,88],
-"text_8php.html#a436a8de00c942364c2d0fcfc7e1f4b5a":[6,0,0,77,34],
-"text_8php.html#a4659fbc4e54ddc700c3aa66b9092c623":[6,0,0,77,32],
-"text_8php.html#a47c1e4a5f3f53027daacd8a9db24f285":[6,0,0,77,44],
-"text_8php.html#a4841df5beabdd1bdd1ed56781a915d61":[6,0,0,77,62],
-"text_8php.html#a4bbb7d00c05cd20b4e043424f322388f":[6,0,0,77,51],
-"text_8php.html#a4e4d42b0a805148d9f9a92bcac89bf91":[6,0,0,77,24],
-"text_8php.html#a4e7698aca48982512594b274543c3b9b":[6,0,0,77,61],
-"text_8php.html#a543447c5ed766535221e2d9636b379ee":[6,0,0,77,84],
-"text_8php.html#a55ab893be57feda59c2a7ba1e58ff2d0":[6,0,0,77,9],
-"text_8php.html#a63fb21c0bed2fc72eef2c1471ac42b63":[6,0,0,77,14],
-"text_8php.html#a6a3d80a6c6fb234fd0bac44203b828eb":[6,0,0,77,83],
-"text_8php.html#a71f6952243d3fe1c5a8154f78027e29c":[6,0,0,77,41],
-"text_8php.html#a736db13a966b8abaf8c9198faa35911a":[6,0,0,77,28],
-"text_8php.html#a740ad03e00459039a2c0992246c4e727":[6,0,0,77,80],
-"text_8php.html#a75c243e06341ec16bd5a44b9b1cacd85":[6,0,0,77,1],
-"text_8php.html#a75c326298519ed14ebe762194c8a3f2a":[6,0,0,77,35],
-"text_8php.html#a76d1b3435c067978d7b484c45f56472b":[6,0,0,77,27],
-"text_8php.html#a8264348059abd1d4d5bb521323d3b19a":[6,0,0,77,81],
-"text_8php.html#a85e3a4851c16674834010d8419a5d7ca":[6,0,0,77,8],
-"text_8php.html#a876e94892867019935b348b573299352":[6,0,0,77,69],
-"text_8php.html#a8796f6a9ca592ecdce7b3afc3462aa13":[6,0,0,77,75],
-"text_8php.html#a87a3cefc603302c78982f1d8e1245265":[6,0,0,77,15],
-"text_8php.html#a89929fa6f70a8ba54d5273fcf622b665":[6,0,0,77,20],
-"text_8php.html#a8b0a799341b1fc4cba2c3ede3e3fc9b6":[6,0,0,77,60],
-"text_8php.html#a8d8c4a11e53461caca21181ebd72daca":[6,0,0,77,19],
-"text_8php.html#a95fd2f8f23a1948414a03ebc963bac57":[6,0,0,77,3],
-"text_8php.html#a98fd99dee3da8cf4c148dc04efe782ee":[6,0,0,77,55],
-"text_8php.html#a9c6ce4e12a4ac883c5e3f36fed6e1e09":[6,0,0,77,66],
-"text_8php.html#a9d6a5ee1290de7a8b483fe78585daade":[6,0,0,77,64],
-"text_8php.html#a9fbeae13c9abd6e27cb4d8d1817f969c":[6,0,0,77,68],
-"text_8php.html#aa46f941155c2ac1155f2f17ffb0adb66":[6,0,0,77,30],
-"text_8php.html#aa5148a0dfea2a1ca64c3d52f10aa2d64":[6,0,0,77,17],
-"text_8php.html#aa5528f41533927e1bd2da3618a74a6d7":[6,0,0,77,56],
-"text_8php.html#aa6b0aa8afbeab50d1a3058ad21acb74e":[6,0,0,77,37],
-"text_8php.html#aac0969ae09853205992ba06ab9f9f61a":[6,0,0,77,29],
-"text_8php.html#aad557c054cf2ed915633701018fc7e3f":[6,0,0,77,91],
-"text_8php.html#aae91e4d2a2c6f7a9daccd2c186ae3447":[6,0,0,77,70],
-"text_8php.html#aaed4413ed8918838b517e3b2fafaea0d":[6,0,0,77,86],
-"text_8php.html#ab4a4c3d4700bc219bb84f33b499314f4":[6,0,0,77,89],
-"text_8php.html#ac19d2b33a58372a357a43d51eed19162":[6,0,0,77,57],
-"text_8php.html#ac1dbf2e37e8069bea2c0f557fdbf203e":[6,0,0,77,38],
-"text_8php.html#ac2ff88e800f74b22e9cc091c10809c54":[6,0,0,77,77],
-"text_8php.html#ace3c98538c63e09b70a363210b414112":[6,0,0,77,21],
-"text_8php.html#acedb584f65114a33f389efb796172a91":[6,0,0,77,2],
-"text_8php.html#ad6432621d0fafcbcf3d3b9b49bef7784":[6,0,0,77,13],
-"text_8php.html#ad855a32bee22c3f3b9734e3a334b96f2":[6,0,0,77,65],
-"text_8php.html#ad8c6e13d6accf057136c5f30a23a5f08":[6,0,0,77,26],
-"text_8php.html#adba17ec946f4285285dc100f7860bf51":[6,0,0,77,52],
-"text_8php.html#ae17b39d5e321debd3ad16dcbbde842b8":[6,0,0,77,39],
-"text_8php.html#ae2126da85966da0e79c6bcbac63b0bda":[6,0,0,77,67],
-"text_8php.html#ae4282a39492caa23ccbc2ce98e54f110":[6,0,0,77,18],
-"text_8php.html#ae4df74296fbe55051ed3c035e55205e5":[6,0,0,77,58],
-"text_8php.html#af8a3e3a66a7b862d4510f145d2e13186":[6,0,0,77,0],
-"text_8php.html#af9c9ac3f74c82dc60acfa404d0e9dc53":[6,0,0,77,78],
-"text_8php.html#afc998d2796a6b2a08e96f7cc061e7221":[6,0,0,77,63],
-"text_8php.html#afdc69fe3f6c09e35e46304dcea63ae28":[6,0,0,77,22],
-"text_8php.html#afe18627c4983ee5f7c940a0992818cd5":[6,0,0,77,12],
-"text_8php.html#afe54312607d92f7ce9593f5760831f80":[6,0,0,77,59],
-"text_8php.html#afe9f178d264d44a94dc1292aaf0fd585":[6,0,0,77,54],
-"theme_2apw_2php_2theme__init_8php.html":[6,0,3,1,0,1,4],
-"theme_2apw_2php_2theme__init_8php.html#a54f32c086fe209c99769a4c4047dd864":[6,0,3,1,0,1,4,0],
-"theme_2blogga_2php_2default_8php.html":[6,0,3,1,1,0,1],
-"theme_2blogga_2php_2default_8php.html#a1230ab83d4ec9785d8f3a966f33dc5f3":[6,0,3,1,1,0,1,2],
-"theme_2blogga_2php_2default_8php.html#a720581ae288aa09511670563e4205a4a":[6,0,3,1,1,0,1,0],
-"theme_2blogga_2php_2default_8php.html#ac7062908d1eb80c0735270f7997c4527":[6,0,3,1,1,0,1,1],
-"theme_2blogga_2php_2theme__init_8php.html":[6,0,3,1,1,0,3],
-"theme_2blogga_2view_2theme_2blog_2default_8php.html":[6,0,3,1,1,1,0,0,1],
-"theme_2blogga_2view_2theme_2blog_2default_8php.html#a1230ab83d4ec9785d8f3a966f33dc5f3":[6,0,3,1,1,1,0,0,1,2],
-"theme_2blogga_2view_2theme_2blog_2default_8php.html#a52d9dd070ed541729088395c22502539":[6,0,3,1,1,1,0,0,1,1],
-"theme_2blogga_2view_2theme_2blog_2default_8php.html#a720581ae288aa09511670563e4205a4a":[6,0,3,1,1,1,0,0,1,0],
-"theme_2mytheme_2php_2default_8php.html":[6,0,3,1,2,0,0],
-"theme_2mytheme_2php_2default_8php.html#a3987f5547ceb7e36a210a66a06241a5a":[6,0,3,1,2,0,0,0],
-"theme_2redbasic_2php_2theme__init_8php.html":[6,0,3,1,3,0,3],
-"thing_8php.html":[6,0,1,118],
-"thing_8php.html#a24a35f1e64029a67fdbea94a776ae04b":[6,0,1,118,0],
-"thing_8php.html#a8be23b1d475ec3d9291999221c674c80":[6,0,1,118,1],
-"todo.html":[3],
-"toggle__mobile_8php.html":[6,0,1,119],
-"toggle__mobile_8php.html#aca53ade8971802b45c31e722b22c6254":[6,0,1,119,0],
-"toggle__safesearch_8php.html":[6,0,1,120],
-"toggle__safesearch_8php.html#a23d5cfb2727a266e44993ffbf5595a79":[6,0,1,120,0],
-"tpldebug_8php.html":[6,0,2,8],
-"tpldebug_8php.html#a44778457a6c02554812fbfad19d32ba3":[6,0,2,8,0],
-"tpldebug_8php.html#a5358407d65f2ca826f96356a6642d149":[6,0,2,8,1],
-"tpldebug_8php.html#afbc7aadb3f7ff1edf0aaaa326a42179c":[6,0,2,8,2],
-"typo_8php.html":[6,0,2,9],
-"typo_8php.html#a1b709c1d79631ebc8320b41bda028b54":[6,0,2,9,1],
-"typo_8php.html#a329c9c12217d2c8660c47bbc7c8df4c5":[6,0,2,9,4],
-"typo_8php.html#a3ecd17ac846be1b35f3662f5c12ab6bd":[6,0,2,9,3],
-"typo_8php.html#a9590b15215a21e9b42eb546aeef79704":[6,0,2,9,2],
-"typo_8php.html#acebf83966ef6d7e5645a6b62ba368f9f":[6,0,2,9,0],
-"typohelper_8php.html":[6,0,2,10],
-"typohelper_8php.html#a7542d95618011800c61773127fa625cf":[6,0,2,10,0],
-"typohelper_8php.html#ab6fd357fb5b2a3ba8aab9e8b98c6a805":[6,0,2,10,1],
-"uexport_8php.html":[6,0,1,121],
-"uexport_8php.html#a118920137dedebe0581623a2e57e7b0d":[6,0,1,121,0],
-"update__channel_8php.html":[6,0,1,122],
-"update__channel_8php.html#aca52a9da500f0db2f0a8666af5bc06ba":[6,0,1,122,0],
-"update__display_8php.html":[6,0,1,123],
-"update__display_8php.html#aa36ac524059e209d5d75a03c16206246":[6,0,1,123,0],
-"update__network_8php.html":[6,0,1,124],
-"update__network_8php.html#a8abf5b9f65af6a27ee2f9d7207ed1b41":[6,0,1,124,0],
-"update__search_8php.html":[6,0,1,125],
-"update__search_8php.html#ace4c3a23fa7d6922399e27c297a6ba52":[6,0,1,125,0],
-"updatetpl_8py.html":[6,0,2,11],
-"updatetpl_8py.html#a52a85ffa6b6d63d840b185a133478c12":[6,0,2,11,5],
-"updatetpl_8py.html#a79c20eb62d568c999b56eb08530355d3":[6,0,2,11,2],
-"updatetpl_8py.html#a988d937ed5d5c2b592b763036af5cf94":[6,0,2,11,1],
-"updatetpl_8py.html#ab42dd79af65ee82201fd6f04715f62f6":[6,0,2,11,3],
-"updatetpl_8py.html#ac9d11279fed403a329a719298feafc4f":[6,0,2,11,0],
-"updatetpl_8py.html#ae694f5e1f25f8a92a945eb90c432dfe6":[6,0,2,11,4],
-"view_2theme_2apw_2php_2config_8php.html":[6,0,3,1,0,1,0],
-"view_2theme_2apw_2php_2config_8php.html#aa7d5739b72efef9822535b2b32d5364d":[6,0,3,1,0,1,0,1],
-"view_2theme_2apw_2php_2config_8php.html#ad29461920cf03b9ce1428e21eb1f4ba6":[6,0,3,1,0,1,0,2],
-"view_2theme_2apw_2php_2config_8php.html#ad59fc09da66b66267f9753c8b2dd68d0":[6,0,3,1,0,1,0,0],
-"view_2theme_2blogga_2php_2config_8php.html":[6,0,3,1,1,0,0],
-"view_2theme_2blogga_2php_2config_8php.html#a09cd81013505f83aea0771243a1e4e53":[6,0,3,1,1,0,0,1],
-"view_2theme_2blogga_2php_2config_8php.html#a8a311a402d3e746ce53fadc38e4b2d27":[6,0,3,1,1,0,0,0],
-"view_2theme_2blogga_2php_2config_8php.html#aa7d5739b72efef9822535b2b32d5364d":[6,0,3,1,1,0,0,3],
-"view_2theme_2blogga_2php_2config_8php.html#ad29461920cf03b9ce1428e21eb1f4ba6":[6,0,3,1,1,0,0,4],
-"view_2theme_2blogga_2php_2config_8php.html#aef2da5582b7cb6b5f63e5ca5d69fd30b":[6,0,3,1,1,0,0,2],
-"view_2theme_2blogga_2view_2theme_2blog_2config_8php.html":[6,0,3,1,1,1,0,0,0],
-"view_2theme_2blogga_2view_2theme_2blog_2config_8php.html#a09cd81013505f83aea0771243a1e4e53":[6,0,3,1,1,1,0,0,0,1],
-"view_2theme_2blogga_2view_2theme_2blog_2config_8php.html#a8a311a402d3e746ce53fadc38e4b2d27":[6,0,3,1,1,1,0,0,0,0],
-"view_2theme_2blogga_2view_2theme_2blog_2config_8php.html#aa7d5739b72efef9822535b2b32d5364d":[6,0,3,1,1,1,0,0,0,3],
-"view_2theme_2blogga_2view_2theme_2blog_2config_8php.html#ad29461920cf03b9ce1428e21eb1f4ba6":[6,0,3,1,1,1,0,0,0,4],
-"view_2theme_2blogga_2view_2theme_2blog_2config_8php.html#aef2da5582b7cb6b5f63e5ca5d69fd30b":[6,0,3,1,1,1,0,0,0,2],
-"view_2theme_2redbasic_2php_2config_8php.html":[6,0,3,1,3,0,0],
-"view_2theme_2redbasic_2php_2config_8php.html#a8574a41fa9735ee391ba57ab24b93793":[6,0,3,1,3,0,0,0],
-"view_2theme_2redbasic_2php_2config_8php.html#aa7d5739b72efef9822535b2b32d5364d":[6,0,3,1,3,0,0,1],
-"view_2theme_2redbasic_2php_2config_8php.html#ad29461920cf03b9ce1428e21eb1f4ba6":[6,0,3,1,3,0,0,2],
-"view_8php.html":[6,0,1,126],
-"view_8php.html#ac168f6c61a91ba2063f13b441c0ae96e":[6,0,1,126,0],
-"viewconnections_8php.html":[6,0,1,127],
-"viewconnections_8php.html#a00163d50b17568f7b0e48b1ca9ab7330":[6,0,1,127,1],
-"viewconnections_8php.html#ab6c4d983e97b3a8a879567ff76507776":[6,0,1,127,0],
-"viewsrc_8php.html":[6,0,1,128],
-"viewsrc_8php.html#a6eff3d0c1d7d14b335c4edb785cd60a4":[6,0,1,128,0],
-"vote_8php.html":[6,0,1,129],
-"vote_8php.html#a57a9516ee1b923b224e66dcc47377fb2":[6,0,1,129,2],
-"vote_8php.html#a6aa67489bf458ca5e3206e46dac68596":[6,0,1,129,0],
-"vote_8php.html#ae0c6610f40afbbc1f4fe6494c51fbab2":[6,0,1,129,1],
-"wall__attach_8php.html":[6,0,1,130],
-"wall__attach_8php.html#a7385e970e93228d082f0fd7254f6e653":[6,0,1,130,0],
-"wall__upload_8php.html":[6,0,1,131],
-"wall__upload_8php.html#a7cbe204244cf9e0380ee932263a74d8f":[6,0,1,131,0],
-"webfinger_8php.html":[6,0,1,132],
-"webfinger_8php.html#a17dd28db6d390194bf9ecb809739d1d3":[6,0,1,132,0],
-"webpages_8php.html":[6,0,1,133],
-"webpages_8php.html#af3b7397d4abc153e3d2147740ee1a41d":[6,0,1,133,0],
-"wfinger_8php.html":[6,0,1,134],
-"wfinger_8php.html#ae21e50c8d0a5f3c9be9f43a4e519acd3":[6,0,1,134,0],
-"widedarkness_8php.html":[6,0,3,1,0,2,10],
-"widgets_8php.html":[6,0,0,78],
-"widgets_8php.html#a08035db02ff6a23260146b4c64153422":[6,0,0,78,11],
-"widgets_8php.html#a0d404276fedc59f5038cf5c085028326":[6,0,0,78,26],
-"widgets_8php.html#a0e2f5179ed1a73b282dfda7270fcabb3":[6,0,0,78,3],
-"widgets_8php.html#a145ff35319cfa47a9cc07f9425bd674b":[6,0,0,78,8],
-"widgets_8php.html#a268b01ce1ab8fe2cb346cb769b9d1091":[6,0,0,78,9],
-"widgets_8php.html#a313a8d10ab81c71357c12e67e4d7efd5":[6,0,0,78,16],
-"widgets_8php.html#a3bdfb81bf9a8ddf219924fa7eaf22013":[6,0,0,78,18],
-"widgets_8php.html#a45ea061dabe9a8372e4ca3b9e5714256":[6,0,0,78,19],
-"widgets_8php.html#a47c72aac42058ea086c9ef8651c259da":[6,0,0,78,5],
-"widgets_8php.html#a50b1410238100c8a94c06b0aa63ee3b8":[6,0,0,78,25],
-"widgets_8php.html#a5ab3b64496e02cab56429978ad55f1c0":[6,0,0,78,12],
-"widgets_8php.html#a6dbc227aac750774284ee39c45f0a200":[6,0,0,78,27],
-"widgets_8php.html#a702e2fc0adc9b615999eca18b7311b5e":[6,0,0,78,21],
-"widgets_8php.html#a70442dfa079312d9d5e5ee01be51a165":[6,0,0,78,15],
-"widgets_8php.html#a7b1e357b5a2027718470b77ec921fc65":[6,0,0,78,2],
-"widgets_8php.html#a94203eb9bcd63cbdecbbcb15163598d8":[6,0,0,78,23],
-"widgets_8php.html#a95c06bc9be133e89768746302d2ac395":[6,0,0,78,10],
-"widgets_8php.html#a999ba893cac7600d3d3b4e7e14cf8c20":[6,0,0,78,20],
-"widgets_8php.html#a9d60539db68042e63c0015abd69a6f7a":[6,0,0,78,6],
-"widgets_8php.html#aa189a07241246d97efbee29f1c6a6f7f":[6,0,0,78,7],
-"widgets_8php.html#aaa73bcf1702eaadd9dcd253502f55e01":[6,0,0,78,24],
-"widgets_8php.html#abd2e508a2a0b911c4a838e3cb7599923":[6,0,0,78,22],
-"widgets_8php.html#abe03366fd22fd27d683518fa0765da50":[6,0,0,78,29],
-"widgets_8php.html#aced5cb177f630b30799c5eab873ee75c":[6,0,0,78,1]
+"reddav_8php.html#a5df0d09893f2e65dc5cf6bbab6cfb266":[6,0,0,71,1],
+"reddav_8php.html#a9f531641dfb4e43cd88ac1a9ae7e2088":[6,0,0,71,2],
+"reddav_8php.html#ae92ea0df1993f6a7bcd1b6efa6c1fb66":[6,0,0,71,0],
+"refimport_8php.html":[6,0,0,1,1],
+"refimport_8php.html#a01a29630fa5e1ce6cd5e1fd75280747c":[6,0,0,1,1,2],
+"refimport_8php.html#a53434bc19e6264db89e18d92ddc09860":[6,0,0,1,1,1],
+"refimport_8php.html#a54003135d7c8994a76e831fb6faa2fe6":[6,0,0,1,1,6],
+"refimport_8php.html#a684a44d2401abf75f441591bcb41d10d":[6,0,0,1,1,12],
+"refimport_8php.html#a6c3e0475fde9fe72ff2492a5e3e5259c":[6,0,0,1,1,4],
+"refimport_8php.html#a8459983ebf013ed5737f7ed317bfae1f":[6,0,0,1,1,8],
+"refimport_8php.html#a9c1f681f1f303400a9818696a9f96d6f":[6,0,0,1,1,10],
+"refimport_8php.html#aa98de7d112e3a5b4b6956f108d04a41d":[6,0,0,1,1,3],
+"refimport_8php.html#ac43699d8ae86175e049aa4e87853caac":[6,0,0,1,1,7],
+"refimport_8php.html#ad297afe0730c9119dd94d3cf0521b025":[6,0,0,1,1,9],
+"refimport_8php.html#ad97ebb5feda0230a4834e0b3637a0d29":[6,0,0,1,1,0],
+"refimport_8php.html#ae9c56f779d1e0ac7bcb2a460129e7ae5":[6,0,0,1,1,5],
+"refimport_8php.html#aeec793cefa260f788b7d005adcb35796":[6,0,0,1,1,11],
+"register_8php.html":[6,0,1,96],
+"register_8php.html#a0e91f57f111407ea8d3223a05022bb2a":[6,0,1,96,0],
+"register_8php.html#a51731dcc1917c58a790eb1c0f6132271":[6,0,1,96,2],
+"register_8php.html#ae20c0cd40f738d6295de58b9202c83d5":[6,0,1,96,1],
+"regmod_8php.html":[6,0,1,97],
+"regmod_8php.html#a7953df4e32e63946565e90cdd5d50409":[6,0,1,97,0],
+"regver_8php.html":[6,0,1,98],
+"regver_8php.html#ad2c5f644fd1b099abd7c715b7df6f50f":[6,0,1,98,0],
+"removeaccount_8php.html":[6,0,1,99],
+"removeaccount_8php.html#a26a3325292e932c59793430ab737126a":[6,0,1,99,1],
+"removeaccount_8php.html#a516e7380b9e5796054aa8245f3509695":[6,0,1,99,0],
+"removeme_8php.html":[6,0,1,100],
+"removeme_8php.html#a065a589caa2aa84c60f7073a28f0ad9c":[6,0,1,100,0],
+"removeme_8php.html#a7be08738beca44bb98a79e01cdb2ee88":[6,0,1,100,1],
+"rmagic_8php.html":[6,0,1,101],
+"rmagic_8php.html#a3e28db1e5cfa7e5c2617f90222c1caef":[6,0,1,101,0],
+"rmagic_8php.html#a869de069d081b3c4e98b957d06bbf08f":[6,0,1,101,2],
+"rmagic_8php.html#a95455edd43f1bff39446a57388cdde16":[6,0,1,101,1],
+"rpost_8php.html":[6,0,1,102],
+"rpost_8php.html#a8190354d789000806d9879aea276728f":[6,0,1,102,0],
+"rsd__xml_8php.html":[6,0,1,103],
+"rsd__xml_8php.html#a740cd02fa15e5a53f8547fac73f0ab82":[6,0,1,103,0],
+"search_8php.html":[6,0,1,104],
+"search_8php.html#ab2568591359edde5b483a6cd9a24b2cc":[6,0,1,104,0],
+"search_8php.html#acf19fd30f07f495781ca0d7a0a08b435":[6,0,1,104,1],
+"search__ac_8php.html":[6,0,1,105],
+"search__ac_8php.html#a14f90c83a3f2be095e9e2992a8d66138":[6,0,1,105,0],
+"security_8php.html":[6,0,0,72],
+"security_8php.html#a20f8b9851f23ee8894b8925584ef6821":[6,0,0,72,2],
+"security_8php.html#a3ef2be6a7e4928e39d50059d6feb457c":[6,0,0,72,11],
+"security_8php.html#a444ac867dfa8c37cf0a7a226412bee28":[6,0,0,72,4],
+"security_8php.html#a6126c77a1267e046ac59cf864613f011":[6,0,0,72,10],
+"security_8php.html#a77ba0d1889a39cf32434c5ce96fe1433":[6,0,0,72,5],
+"security_8php.html#a8d23d2597aae380a3341872fe9513380":[6,0,0,72,1],
+"security_8php.html#a9355488460ab11d6058656ff919e5cf9":[6,0,0,72,7],
+"security_8php.html#a9c6180e82150a5a9af91a1255d096b5c":[6,0,0,72,3],
+"security_8php.html#ab3bdd30dc60d9ee72370b866aa4a2d01":[6,0,0,72,9],
+"security_8php.html#acd06ef411116115c2f0a92633700db8a":[6,0,0,72,6],
+"security_8php.html#adc7bf51e3b8d67bd80e9348f9ab03733":[6,0,0,72,0],
+"security_8php.html#afa683bc025a1d2fe9065e2f6cd71a22f":[6,0,0,72,8],
+"service__limits_8php.html":[6,0,1,106],
+"service__limits_8php.html#a653424aac63c5cd05ba70c3c77bf7f8a":[6,0,1,106,0],
+"session_8php.html":[6,0,0,73],
+"session_8php.html#a26fa1042356d555023cbf15ddd4f8507":[6,0,0,73,4],
+"session_8php.html#a4c0ead624f95483e386bc80abf570a8f":[6,0,0,73,0],
+"session_8php.html#a5e1c616e02b863d5450317d101366bb7":[6,0,0,73,1],
+"session_8php.html#a62e4a6cb26b4bb1b8ddd8277b26090eb":[6,0,0,73,8],
+"session_8php.html#a7f0f50576360d9ba52d29364e0b83a8e":[6,0,0,73,5],
+"session_8php.html#a96b09cc763572f45280786a7b33feb7e":[6,0,0,73,7],
+"session_8php.html#ac4461c1984543d3553e73dba2771568f":[6,0,0,73,6],
+"session_8php.html#ac95373f4966862a028033dd2f94d4da1":[6,0,0,73,3],
+"session_8php.html#af0100a2642a5268594bbd5742a03d885":[6,0,0,73,9],
+"session_8php.html#af230b86bfff7db66c3bdd7e0bbc24052":[6,0,0,73,2],
+"settings_8php.html":[6,0,1,107],
+"settings_8php.html#a39abc76ff5459c57e3b957664f273f18":[6,0,1,107,0],
+"settings_8php.html#a3a4cde287482fced008583f54ba2a722":[6,0,1,107,1],
+"settings_8php.html#aa7ee94d88ac088edb04ccf3a26de3586":[6,0,1,107,2],
+"setup_8php.html":[6,0,1,108],
+"setup_8php.html#a0c3f3b671381f6dccd924b8ecdfc56c4":[6,0,1,108,2],
+"setup_8php.html#a13cf286774149a0a7bd8adb8179cec75":[6,0,1,108,14],
+"setup_8php.html#a14d208682a88632290c895d20da6e7d6":[6,0,1,108,5],
+"setup_8php.html#a267555abd17290e659b4bf44b885e4e0":[6,0,1,108,13],
+"setup_8php.html#a2b375ddc555140236fc500135de99371":[6,0,1,108,10],
+"setup_8php.html#a5ad92c0857d1dadd6b60a9a557159c9f":[6,0,1,108,3],
+"setup_8php.html#a69a450e06dd3771fb51d3e4b0266a35e":[6,0,1,108,1],
+"setup_8php.html#a8652788e8589778c5f81634a9d5b9429":[6,0,1,108,8],
+"setup_8php.html#a88247384a96e14516f474d7af6a465c1":[6,0,1,108,12],
+"setup_8php.html#aa3bbb111780da70ba35cc23a306f2c76":[6,0,1,108,4],
+"setup_8php.html#ab4b71369a25021d59247c917e98d8246":[6,0,1,108,7],
+"setup_8php.html#abe405d227ba7232971964a706d4f3bce":[6,0,1,108,11],
+"setup_8php.html#ad2e0375a9ab87ebe6e78124ee125054a":[6,0,1,108,9],
+"setup_8php.html#addb24714bc2542aa4f4215e98fe48432":[6,0,1,108,16],
+"setup_8php.html#ae8e4d9279a61de74d5f39962cb7b6ca1":[6,0,1,108,0],
+"setup_8php.html#aea1ebdda58ec938f4e7b31aa5c5f6b58":[6,0,1,108,15],
+"setup_8php.html#afd8b0b3ade1507c45325caf377bf459d":[6,0,1,108,6],
+"share_8php.html":[6,0,1,109],
+"share_8php.html#afeb26046bdd02567ecd29ab5f188b249":[6,0,1,109,0],
+"simple__black__on__white_8php.html":[6,0,3,1,3,1,4],
+"simple__green__on__black_8php.html":[6,0,3,1,3,1,5],
+"simple__white__on__black_8php.html":[6,0,3,1,3,1,6],
+"siteinfo_8php.html":[6,0,1,110],
+"siteinfo_8php.html#a3efbd0bd6564af19ec0a9ce0294e59d0":[6,0,1,110,1],
+"siteinfo_8php.html#a70c09bfb6dd1c86a125a35f62ed53656":[6,0,1,110,0],
+"sitelist_8php.html":[6,0,1,111],
+"sitelist_8php.html#a665a59bf60f780b40f32c909f4a473b1":[6,0,1,111,0],
+"smarty_8php.html":[6,0,0,74],
+"smilies_8php.html":[6,0,1,112],
+"smilies_8php.html#ab43b1e9f33a700a830aff14c7b3a617f":[6,0,1,112,0],
+"socgraph_8php.html":[6,0,0,75],
+"socgraph_8php.html#a16ac51c505d72987ed8d6d6aed0e8586":[6,0,0,75,0],
+"socgraph_8php.html#a5ef8bef37161df53718a21e93d02fbd6":[6,0,0,75,6],
+"socgraph_8php.html#a76e6fca3d2bc842dcd9e710bb87c8329":[6,0,0,75,7],
+"socgraph_8php.html#a790690bb1a1d02483fe31632a160144d":[6,0,0,75,8],
+"socgraph_8php.html#a7d34cd58025bcd9e575282f44db75918":[6,0,0,75,1],
+"socgraph_8php.html#a887d576f21fd708132a06d0f72f90f84":[6,0,0,75,4],
+"socgraph_8php.html#ac343a846241d36cdf046b08f3396cfe9":[6,0,0,75,2],
+"socgraph_8php.html#af175807406d94407a5e11742a3287746":[6,0,0,75,5],
+"socgraph_8php.html#af29d056beec10b4e38e5209c92452894":[6,0,0,75,3],
+"sources_8php.html":[6,0,1,113],
+"sources_8php.html#ac442ccef080ab95772d8929fcafcb4b7":[6,0,1,113,0],
+"sources_8php.html#ac73298ff162ce7b2de8dcaf3d3305b1e":[6,0,1,113,1],
+"spam_8php.html":[6,0,0,76],
+"spam_8php.html#a05861201147b9a538d006f0269255cf9":[6,0,0,76,1],
+"spam_8php.html#ab8fd81a82c9622cbebb8ceab6b310ca6":[6,0,0,76,0],
+"sslify_8php.html":[6,0,1,114],
+"sslify_8php.html#a75b11e54a3d1fc83e7d4c0e8b4dab316":[6,0,1,114,0],
+"starred_8php.html":[6,0,1,115],
+"starred_8php.html#a63024fb418c678e49fd535e3752d349a":[6,0,1,115,0],
+"statistics__fns_8php.html":[6,0,0,77],
+"statistics__fns_8php.html#a05858927cce81fd367aedf85a94ed90c":[6,0,0,77,2],
+"statistics__fns_8php.html#a82726229a961d3bd3d543005c61dd8e6":[6,0,0,77,0],
+"statistics__fns_8php.html#a9dd516dda693f17f5ce48a94876f7efa":[6,0,0,77,3],
+"statistics__fns_8php.html#ad2b7b595c039c4c2eb0d6cd57a393dfe":[6,0,0,77,1],
+"stumble_2php_2style_8php.html":[6,0,3,1,4,0,0],
+"stumble_2php_2theme_8php.html":[6,0,3,1,4,0,1],
+"stumble_2php_2theme_8php.html#a71db9eff6289e0ee47771c37c01d6753":[6,0,3,1,4,0,1,0],
+"subthread_8php.html":[6,0,1,116],
+"subthread_8php.html#a50368f3d825b77996030528e7fbfa3d3":[6,0,1,116,0],
+"suckerberg_2php_2style_8php.html":[6,0,3,1,5,0,0],
+"suckerberg_2php_2theme_8php.html":[6,0,3,1,5,0,1],
+"suckerberg_2php_2theme_8php.html#a4104fce7d5fb71d15ed811978b628fc8":[6,0,3,1,5,0,1,0],
+"suggest_8php.html":[6,0,1,117],
+"suggest_8php.html#a58748a8235d4523f8333847f3e42dd91":[6,0,1,117,0],
+"suggest_8php.html#a696acf1dd8070e479adcc80c63c6718c":[6,0,1,117,1],
+"system__unavailable_8php.html":[6,0,0,78],
+"system__unavailable_8php.html#a73751a6bcc17ad3ca503496e2fb020fa":[6,0,0,78,0],
+"tagger_8php.html":[6,0,1,118],
+"tagger_8php.html#a0e4a3eb177d1684553c547503d67161c":[6,0,1,118,0],
+"tagrm_8php.html":[6,0,1,119],
+"tagrm_8php.html#a1702f40aa53a2fa93deade1f609abe78":[6,0,1,119,1],
+"tagrm_8php.html#adfd4ea5b4d7fc6d9c9e042af5cd7d49a":[6,0,1,119,0],
+"taxonomy_8php.html":[6,0,0,79],
+"taxonomy_8php.html#a03f55ee46c5f496e42f3d29db8d09cce":[6,0,0,79,10],
+"taxonomy_8php.html#a088371f4bc19155b2291508f5cd63332":[6,0,0,79,1],
+"taxonomy_8php.html#a08df5164926d2b31b8e9fcfe919de2b6":[6,0,0,79,3],
+"taxonomy_8php.html#a0fb8cf0ac7bcbc8b27d856fe9bf69cd1":[6,0,0,79,7],
+"taxonomy_8php.html#a163b5131f388080b0fc82398d3a32fe1":[6,0,0,79,5],
+"taxonomy_8php.html#a3299482ac20e9d79453048dd52881d37":[6,0,0,79,4],
+"taxonomy_8php.html#a4ba1339b2a7054971178ce194e4440fd":[6,0,0,79,11],
+"taxonomy_8php.html#a599ee71dd3194c8127b00dabec77abc1":[6,0,0,79,2],
+"taxonomy_8php.html#a7747fa859ac56fbffd4f9782d85505de":[6,0,0,79,8],
+"taxonomy_8php.html#a7a913d19c77610da689be48fbbf6734c":[6,0,0,79,15],
+"taxonomy_8php.html#a83f0a60f9e0c07d8451dc5be95b17287":[6,0,0,79,16],
+"taxonomy_8php.html#aa8f8a1ff85daef046298e93c83e7a1b4":[6,0,0,79,0],
+"taxonomy_8php.html#aaeded36bcc983b35d9205fe5b6c18c43":[6,0,0,79,14],
+"taxonomy_8php.html#aaf90ba8b839d6459065f39a4f1109b8a":[6,0,0,79,12],
+"taxonomy_8php.html#ac21d1dff16d569e7d110167aea4e63c2":[6,0,0,79,13],
+"taxonomy_8php.html#adfead45e3b8a3dfb2b4a4b9281d0dbe1":[6,0,0,79,6],
+"taxonomy_8php.html#af387463d42ffdf7d2ab3d5b22e40a0c7":[6,0,0,79,9],
+"template__processor_8php.html":[6,0,0,80],
+"template__processor_8php.html#a797745996c7839a93b2ab1af456631ab":[6,0,0,80,3],
+"template__processor_8php.html#ab2bcd8738f20f293636a6ae8e1099db5":[6,0,0,80,1],
+"template__processor_8php.html#ac635bb19a5f6eadd6b0cddefdd537c1e":[6,0,0,80,2],
+"text_8php.html":[6,0,0,81],
+"text_8php.html#a0271381208acfa2d4cff36da281e3e23":[6,0,0,81,44],
+"text_8php.html#a030fa5ecc64168af0c4f44897a9bce63":[6,0,0,81,50],
+"text_8php.html#a070384ec000fd65043fce11d5392d241":[6,0,0,81,6],
+"text_8php.html#a0a1f7c0e97f9ecbebf3e5834582b014c":[6,0,0,81,16],
+"text_8php.html#a0c65597bb4aed3a039eb795ff540e5e3":[6,0,0,81,11],
+"text_8php.html#a10dde167249ed5abf190a7a0986878ea":[6,0,0,81,75],
+"text_8php.html#a11255c8c4e5245b6c24f97684826aa54":[6,0,0,81,49],
+"text_8php.html#a13286f8a95d2de6b102966ecc270c8d6":[6,0,0,81,5],
+"text_8php.html#a1360fed7f918d859daaca1c9f384f9af":[6,0,0,81,86],
+"text_8php.html#a138a3a611fa7f4f3630674145fc826bf":[6,0,0,81,37],
+"text_8php.html#a1557112a774ec00fa06ed6b6f6495506":[6,0,0,81,40],
+"text_8php.html#a1633412120f52bdce5f43e0a127d9293":[6,0,0,81,54],
+"text_8php.html#a1af49756c8c71902a66c7e329c462beb":[6,0,0,81,57],
+"text_8php.html#a1e510c53624933ce9b7d6715784894db":[6,0,0,81,51],
+"text_8php.html#a24d441d30df4b8e6bf6780bf62a5e2c6":[6,0,0,81,52],
+"text_8php.html#a2690ad67bb6fb97ef69de3e8d23f2728":[6,0,0,81,47],
+"text_8php.html#a273156a6f5cddc6652ad656821cd5805":[6,0,0,81,76],
+"text_8php.html#a27cd2c1b3bcb49a0cfb7249e851725ca":[6,0,0,81,4],
+"text_8php.html#a29988052f3944111def3b6aaf2c7a8f6":[6,0,0,81,94],
+"text_8php.html#a29d6b804e368d3ef359ee295e96ed4c7":[6,0,0,81,83],
+"text_8php.html#a2a902f5fdba8646333e997898ac45ea3":[6,0,0,81,53],
+"text_8php.html#a2e8d6c402603be3a1256a16605e09c2a":[6,0,0,81,10],
+"text_8php.html#a2f2585385530cb935a6325c809d84a4d":[6,0,0,81,80],
+"text_8php.html#a2ffd79c60cc87cec24ef76447b905187":[6,0,0,81,96],
+"text_8php.html#a3054189cff173977f4216c9a3dd29e1b":[6,0,0,81,24],
+"text_8php.html#a324c58f37f6acdf9cd1922aa76077d9f":[6,0,0,81,91],
+"text_8php.html#a33bdb5d4bfff2ede7caf61a98ac0a2e9":[6,0,0,81,78],
+"text_8php.html#a3972701c5c83624ec4e2d06242f614e7":[6,0,0,81,34],
+"text_8php.html#a3999a0b3e22e440f280ee791ce34d384":[6,0,0,81,46],
+"text_8php.html#a3a0c432a484c17d7720b8ba2d6bfdd59":[6,0,0,81,26],
+"text_8php.html#a3ba47b4dd1248e7e51095572e7b814dc":[6,0,0,81,19],
+"text_8php.html#a3d225b253bb9e0f2498c11647d927b0b":[6,0,0,81,77],
+"text_8php.html#a3d2793d66db3345fd290b71e2eadf98e":[6,0,0,81,7],
+"text_8php.html#a405afe814a23f3bd94d826101aa168ab":[6,0,0,81,92],
+"text_8php.html#a436a8de00c942364c2d0fcfc7e1f4b5a":[6,0,0,81,38],
+"text_8php.html#a4659fbc4e54ddc700c3aa66b9092c623":[6,0,0,81,35],
+"text_8php.html#a47c1e4a5f3f53027daacd8a9db24f285":[6,0,0,81,48],
+"text_8php.html#a4841df5beabdd1bdd1ed56781a915d61":[6,0,0,81,66],
+"text_8php.html#a4bbb7d00c05cd20b4e043424f322388f":[6,0,0,81,55],
+"text_8php.html#a4e4d42b0a805148d9f9a92bcac89bf91":[6,0,0,81,25],
+"text_8php.html#a4e7698aca48982512594b274543c3b9b":[6,0,0,81,65],
+"text_8php.html#a543447c5ed766535221e2d9636b379ee":[6,0,0,81,88],
+"text_8php.html#a55ab893be57feda59c2a7ba1e58ff2d0":[6,0,0,81,9],
+"text_8php.html#a63fb21c0bed2fc72eef2c1471ac42b63":[6,0,0,81,14],
+"text_8php.html#a6a3d80a6c6fb234fd0bac44203b828eb":[6,0,0,81,87],
+"text_8php.html#a71f6952243d3fe1c5a8154f78027e29c":[6,0,0,81,45],
+"text_8php.html#a736db13a966b8abaf8c9198faa35911a":[6,0,0,81,31],
+"text_8php.html#a740ad03e00459039a2c0992246c4e727":[6,0,0,81,84],
+"text_8php.html#a75c243e06341ec16bd5a44b9b1cacd85":[6,0,0,81,1],
+"text_8php.html#a75c326298519ed14ebe762194c8a3f2a":[6,0,0,81,39],
+"text_8php.html#a76d1b3435c067978d7b484c45f56472b":[6,0,0,81,30],
+"text_8php.html#a8264348059abd1d4d5bb521323d3b19a":[6,0,0,81,85],
+"text_8php.html#a85e3a4851c16674834010d8419a5d7ca":[6,0,0,81,8],
+"text_8php.html#a876e94892867019935b348b573299352":[6,0,0,81,73],
+"text_8php.html#a8796f6a9ca592ecdce7b3afc3462aa13":[6,0,0,81,79],
+"text_8php.html#a87a3cefc603302c78982f1d8e1245265":[6,0,0,81,15],
+"text_8php.html#a89929fa6f70a8ba54d5273fcf622b665":[6,0,0,81,21],
+"text_8php.html#a8b0a799341b1fc4cba2c3ede3e3fc9b6":[6,0,0,81,64],
+"text_8php.html#a8d8c4a11e53461caca21181ebd72daca":[6,0,0,81,20],
+"text_8php.html#a905c3895feb6f276df23f07f16f9bb52":[6,0,0,81,89],
+"text_8php.html#a95fd2f8f23a1948414a03ebc963bac57":[6,0,0,81,3],
+"text_8php.html#a98fd99dee3da8cf4c148dc04efe782ee":[6,0,0,81,59],
+"text_8php.html#a9c6ce4e12a4ac883c5e3f36fed6e1e09":[6,0,0,81,70],
+"text_8php.html#a9d6a5ee1290de7a8b483fe78585daade":[6,0,0,81,68],
+"text_8php.html#a9fbeae13c9abd6e27cb4d8d1817f969c":[6,0,0,81,72],
+"text_8php.html#aa22feef4de326e1d7078dedd892e615c":[6,0,0,81,36],
+"text_8php.html#aa46f941155c2ac1155f2f17ffb0adb66":[6,0,0,81,33],
+"text_8php.html#aa5148a0dfea2a1ca64c3d52f10aa2d64":[6,0,0,81,17],
+"text_8php.html#aa5528f41533927e1bd2da3618a74a6d7":[6,0,0,81,60],
+"text_8php.html#aa6b0aa8afbeab50d1a3058ad21acb74e":[6,0,0,81,41],
+"text_8php.html#aac0969ae09853205992ba06ab9f9f61a":[6,0,0,81,32],
+"text_8php.html#aad557c054cf2ed915633701018fc7e3f":[6,0,0,81,95],
+"text_8php.html#aae91e4d2a2c6f7a9daccd2c186ae3447":[6,0,0,81,74],
+"text_8php.html#aaed4413ed8918838b517e3b2fafaea0d":[6,0,0,81,90],
+"text_8php.html#ab4a4c3d4700bc219bb84f33b499314f4":[6,0,0,81,93],
+"text_8php.html#ac19d2b33a58372a357a43d51eed19162":[6,0,0,81,61],
+"text_8php.html#ac1dbf2e37e8069bea2c0f557fdbf203e":[6,0,0,81,42],
+"text_8php.html#ac2ff88e800f74b22e9cc091c10809c54":[6,0,0,81,81],
+"text_8php.html#ace3c98538c63e09b70a363210b414112":[6,0,0,81,22]
};
diff --git a/doc/html/navtreeindex9.js b/doc/html/navtreeindex9.js
index f3f7f75e9..b4480a2eb 100644
--- a/doc/html/navtreeindex9.js
+++ b/doc/html/navtreeindex9.js
@@ -1,51 +1,178 @@
var NAVTREEINDEX9 =
{
-"widgets_8php.html#ad1bf7aa69e8d100d95faba17c7bc91cd":[6,0,0,78,14],
-"widgets_8php.html#add9b24d3304e529a7975e96122315554":[6,0,0,78,0],
-"widgets_8php.html#ade630b19fb4c622b7b2f6f8ef89eefa2":[6,0,0,78,13],
-"widgets_8php.html#ae4ced69d83dbdd9e6b51660d9eba8653":[6,0,0,78,28],
-"widgets_8php.html#af37fdad3b2e861d860a4a8c4d8a76c0b":[6,0,0,78,4],
-"widgets_8php.html#afa2e55a78f95667a6da082efac7fec74":[6,0,0,78,17],
-"xchan_8php.html":[6,0,1,135],
-"xchan_8php.html#a9853348bf1a35c644460221ba75edc2d":[6,0,1,135,0],
-"xrd_8php.html":[6,0,1,136],
-"xrd_8php.html#aee3cf087968e4a0ff3a87de16eb23270":[6,0,1,136,0],
-"xref_8php.html":[6,0,1,137],
-"xref_8php.html#a9bee399213b8de8226b0d60834307473":[6,0,1,137,0],
-"zfinger_8php.html":[6,0,1,138],
-"zfinger_8php.html#a8139b83a22ef98869adc10aa224027a0":[6,0,1,138,0],
-"zot_8php.html":[6,0,0,79],
-"zot_8php.html#a083aec6c900d244e1bfc1406f9461465":[6,0,0,79,14],
-"zot_8php.html#a0fc2211c5309d9f925ecc4115e3fdb75":[6,0,0,79,9],
-"zot_8php.html#a20750dd2c36961013fd382fb34e1366c":[6,0,0,79,6],
-"zot_8php.html#a2657e141d62d5f67ad3c87651b585299":[6,0,0,79,7],
-"zot_8php.html#a31aad56acf8ff8f2353e6ff8595544df":[6,0,0,79,16],
-"zot_8php.html#a3862b3161b2c8557dc1a95020179bd81":[6,0,0,79,18],
-"zot_8php.html#a3bf11286c2619b4ca28e49d5b5ab374a":[6,0,0,79,5],
-"zot_8php.html#a4d9e6ca295e443b740d9960c304b3474":[6,0,0,79,11],
-"zot_8php.html#a528e97ca5d69c3b7f35c5d954afde315":[6,0,0,79,8],
-"zot_8php.html#a55056e863a7860bc0cf922e78fcce073":[6,0,0,79,22],
-"zot_8php.html#a5bcdfef419b16075a0eca990956223dc":[6,0,0,79,27],
-"zot_8php.html#a61cdc1ec843663c423ed2d8160ae5aea":[6,0,0,79,19],
-"zot_8php.html#a703f528ade8382cf374e4119bd6f7859":[6,0,0,79,0],
-"zot_8php.html#a7ac30ff51274bf0b6d3eade37972145c":[6,0,0,79,26],
-"zot_8php.html#a8e22dbc6f884be3644a892a876cbd972":[6,0,0,79,3],
-"zot_8php.html#a928f5643ca66ae9635d85aeb2be62e03":[6,0,0,79,25],
-"zot_8php.html#a95528377d7303131958c9f0b7158fdce":[6,0,0,79,20],
-"zot_8php.html#a9a57b40669351c9791126b925cb7ef3b":[6,0,0,79,13],
-"zot_8php.html#aa6ae96db8cbbdbb10e6876d206bbf7cc":[6,0,0,79,12],
-"zot_8php.html#aa97b33b619dd7132a9274f852af6ceb5":[6,0,0,79,1],
-"zot_8php.html#aad25a3fe0e1566121d6fb8222979bc10":[6,0,0,79,15],
-"zot_8php.html#ab22d67660702056bf3f4696dcebf5ce7":[6,0,0,79,24],
-"zot_8php.html#ab319d1d9fff9c7775d9daef42d1f33dd":[6,0,0,79,17],
-"zot_8php.html#ab3e9b99ddb11353f37f265a05bb42142":[6,0,0,79,28],
-"zot_8php.html#ac301c67864917c35922257950ae0f95c":[6,0,0,79,10],
-"zot_8php.html#ad149f1e98c0c5b88ff9147e6ee3f330d":[6,0,0,79,4],
-"zot_8php.html#adfeb9400ae6b726beec89f8f1e8fde72":[6,0,0,79,2],
-"zot_8php.html#ae7cec2b417b5858fd4a41070f843d1d7":[6,0,0,79,21],
-"zot_8php.html#aeea071f17e306fe3d0c488551906bfab":[6,0,0,79,23],
-"zotfeed_8php.html":[6,0,1,139],
-"zotfeed_8php.html#a24dfc23d366e7f840cf2847d0c1c8eac":[6,0,1,139,0],
-"zping_8php.html":[6,0,1,140],
-"zping_8php.html#a4d3a6b0b8b04ed6469015823e615ee75":[6,0,1,140,0]
+"text_8php.html#acedb584f65114a33f389efb796172a91":[6,0,0,81,2],
+"text_8php.html#ad6432621d0fafcbcf3d3b9b49bef7784":[6,0,0,81,13],
+"text_8php.html#ad855a32bee22c3f3b9734e3a334b96f2":[6,0,0,81,69],
+"text_8php.html#ad8c6e13d6accf057136c5f30a23a5f08":[6,0,0,81,27],
+"text_8php.html#adba17ec946f4285285dc100f7860bf51":[6,0,0,81,56],
+"text_8php.html#ae0333c304ec5b4b72e66bb2933fa7357":[6,0,0,81,28],
+"text_8php.html#ae17b39d5e321debd3ad16dcbbde842b8":[6,0,0,81,43],
+"text_8php.html#ae2126da85966da0e79c6bcbac63b0bda":[6,0,0,81,71],
+"text_8php.html#ae4282a39492caa23ccbc2ce98e54f110":[6,0,0,81,18],
+"text_8php.html#ae4df74296fbe55051ed3c035e55205e5":[6,0,0,81,62],
+"text_8php.html#af5eb4a9c1599764f80c5bc71e0125d4b":[6,0,0,81,29],
+"text_8php.html#af8a3e3a66a7b862d4510f145d2e13186":[6,0,0,81,0],
+"text_8php.html#af9c9ac3f74c82dc60acfa404d0e9dc53":[6,0,0,81,82],
+"text_8php.html#afc998d2796a6b2a08e96f7cc061e7221":[6,0,0,81,67],
+"text_8php.html#afdc69fe3f6c09e35e46304dcea63ae28":[6,0,0,81,23],
+"text_8php.html#afe18627c4983ee5f7c940a0992818cd5":[6,0,0,81,12],
+"text_8php.html#afe54312607d92f7ce9593f5760831f80":[6,0,0,81,63],
+"text_8php.html#afe9f178d264d44a94dc1292aaf0fd585":[6,0,0,81,58],
+"theme_2apw_2php_2theme__init_8php.html":[6,0,3,1,0,1,4],
+"theme_2apw_2php_2theme__init_8php.html#a54f32c086fe209c99769a4c4047dd864":[6,0,3,1,0,1,4,0],
+"theme_2mytheme_2php_2default_8php.html":[6,0,3,1,2,0,0],
+"theme_2mytheme_2php_2default_8php.html#a3987f5547ceb7e36a210a66a06241a5a":[6,0,3,1,2,0,0,0],
+"theme_2redbasic_2php_2theme__init_8php.html":[6,0,3,1,3,0,3],
+"thing_8php.html":[6,0,1,120],
+"thing_8php.html#a24a35f1e64029a67fdbea94a776ae04b":[6,0,1,120,0],
+"thing_8php.html#a8be23b1d475ec3d9291999221c674c80":[6,0,1,120,1],
+"todo.html":[3],
+"toggle__mobile_8php.html":[6,0,1,121],
+"toggle__mobile_8php.html#aca53ade8971802b45c31e722b22c6254":[6,0,1,121,0],
+"toggle__safesearch_8php.html":[6,0,1,122],
+"toggle__safesearch_8php.html#a23d5cfb2727a266e44993ffbf5595a79":[6,0,1,122,0],
+"tpldebug_8php.html":[6,0,2,7],
+"tpldebug_8php.html#a44778457a6c02554812fbfad19d32ba3":[6,0,2,7,0],
+"tpldebug_8php.html#a5358407d65f2ca826f96356a6642d149":[6,0,2,7,1],
+"tpldebug_8php.html#afbc7aadb3f7ff1edf0aaaa326a42179c":[6,0,2,7,2],
+"typo_8php.html":[6,0,2,8],
+"typo_8php.html#a1b709c1d79631ebc8320b41bda028b54":[6,0,2,8,1],
+"typo_8php.html#a329c9c12217d2c8660c47bbc7c8df4c5":[6,0,2,8,4],
+"typo_8php.html#a3ecd17ac846be1b35f3662f5c12ab6bd":[6,0,2,8,3],
+"typo_8php.html#a9590b15215a21e9b42eb546aeef79704":[6,0,2,8,2],
+"typo_8php.html#acebf83966ef6d7e5645a6b62ba368f9f":[6,0,2,8,0],
+"typohelper_8php.html":[6,0,2,9],
+"typohelper_8php.html#a7542d95618011800c61773127fa625cf":[6,0,2,9,0],
+"typohelper_8php.html#ab6fd357fb5b2a3ba8aab9e8b98c6a805":[6,0,2,9,1],
+"uexport_8php.html":[6,0,1,123],
+"uexport_8php.html#a118920137dedebe0581623a2e57e7b0d":[6,0,1,123,1],
+"uexport_8php.html#ae6f79d60916c01675c8cf663cb5fec84":[6,0,1,123,0],
+"update__channel_8php.html":[6,0,1,124],
+"update__channel_8php.html#aca52a9da500f0db2f0a8666af5bc06ba":[6,0,1,124,0],
+"update__display_8php.html":[6,0,1,125],
+"update__display_8php.html#aa36ac524059e209d5d75a03c16206246":[6,0,1,125,0],
+"update__home_8php.html":[6,0,1,126],
+"update__home_8php.html#a668340089acd150b830134476a647d05":[6,0,1,126,0],
+"update__network_8php.html":[6,0,1,127],
+"update__network_8php.html#a8abf5b9f65af6a27ee2f9d7207ed1b41":[6,0,1,127,0],
+"update__search_8php.html":[6,0,1,128],
+"update__search_8php.html#ace4c3a23fa7d6922399e27c297a6ba52":[6,0,1,128,0],
+"updatetpl_8py.html":[6,0,2,10],
+"updatetpl_8py.html#a52a85ffa6b6d63d840b185a133478c12":[6,0,2,10,5],
+"updatetpl_8py.html#a79c20eb62d568c999b56eb08530355d3":[6,0,2,10,2],
+"updatetpl_8py.html#a988d937ed5d5c2b592b763036af5cf94":[6,0,2,10,1],
+"updatetpl_8py.html#ab42dd79af65ee82201fd6f04715f62f6":[6,0,2,10,3],
+"updatetpl_8py.html#ac9d11279fed403a329a719298feafc4f":[6,0,2,10,0],
+"updatetpl_8py.html#ae694f5e1f25f8a92a945eb90c432dfe6":[6,0,2,10,4],
+"view_2theme_2apw_2php_2config_8php.html":[6,0,3,1,0,1,0],
+"view_2theme_2apw_2php_2config_8php.html#aa7d5739b72efef9822535b2b32d5364d":[6,0,3,1,0,1,0,1],
+"view_2theme_2apw_2php_2config_8php.html#ad29461920cf03b9ce1428e21eb1f4ba6":[6,0,3,1,0,1,0,2],
+"view_2theme_2apw_2php_2config_8php.html#ad59fc09da66b66267f9753c8b2dd68d0":[6,0,3,1,0,1,0,0],
+"view_2theme_2redbasic_2php_2config_8php.html":[6,0,3,1,3,0,0],
+"view_2theme_2redbasic_2php_2config_8php.html#a8574a41fa9735ee391ba57ab24b93793":[6,0,3,1,3,0,0,0],
+"view_2theme_2redbasic_2php_2config_8php.html#aa7d5739b72efef9822535b2b32d5364d":[6,0,3,1,3,0,0,1],
+"view_2theme_2redbasic_2php_2config_8php.html#ad29461920cf03b9ce1428e21eb1f4ba6":[6,0,3,1,3,0,0,2],
+"view_8php.html":[6,0,1,129],
+"view_8php.html#ac168f6c61a91ba2063f13b441c0ae96e":[6,0,1,129,0],
+"viewconnections_8php.html":[6,0,1,130],
+"viewconnections_8php.html#a00163d50b17568f7b0e48b1ca9ab7330":[6,0,1,130,1],
+"viewconnections_8php.html#ab6c4d983e97b3a8a879567ff76507776":[6,0,1,130,0],
+"viewsrc_8php.html":[6,0,1,131],
+"viewsrc_8php.html#a6eff3d0c1d7d14b335c4edb785cd60a4":[6,0,1,131,0],
+"vote_8php.html":[6,0,1,132],
+"vote_8php.html#a57a9516ee1b923b224e66dcc47377fb2":[6,0,1,132,2],
+"vote_8php.html#a6aa67489bf458ca5e3206e46dac68596":[6,0,1,132,0],
+"vote_8php.html#ae0c6610f40afbbc1f4fe6494c51fbab2":[6,0,1,132,1],
+"wall__attach_8php.html":[6,0,1,133],
+"wall__attach_8php.html#a7385e970e93228d082f0fd7254f6e653":[6,0,1,133,0],
+"wall__upload_8php.html":[6,0,1,134],
+"wall__upload_8php.html#a7cbe204244cf9e0380ee932263a74d8f":[6,0,1,134,0],
+"webfinger_8php.html":[6,0,1,135],
+"webfinger_8php.html#a17dd28db6d390194bf9ecb809739d1d3":[6,0,1,135,0],
+"webpages_8php.html":[6,0,1,136],
+"webpages_8php.html#af3b7397d4abc153e3d2147740ee1a41d":[6,0,1,136,0],
+"webpages_8php.html#af9ad0b65eba79acead3fa32b43d888b7":[6,0,1,136,1],
+"wfinger_8php.html":[6,0,1,137],
+"wfinger_8php.html#ae21e50c8d0a5f3c9be9f43a4e519acd3":[6,0,1,137,0],
+"widedarkness_8php.html":[6,0,3,1,0,2,10],
+"widgets_8php.html":[6,0,0,82],
+"widgets_8php.html#a08035db02ff6a23260146b4c64153422":[6,0,0,82,12],
+"widgets_8php.html#a0d404276fedc59f5038cf5c085028326":[6,0,0,82,29],
+"widgets_8php.html#a0e2f5179ed1a73b282dfda7270fcabb3":[6,0,0,82,3],
+"widgets_8php.html#a145ff35319cfa47a9cc07f9425bd674b":[6,0,0,82,9],
+"widgets_8php.html#a268b01ce1ab8fe2cb346cb769b9d1091":[6,0,0,82,10],
+"widgets_8php.html#a313a8d10ab81c71357c12e67e4d7efd5":[6,0,0,82,17],
+"widgets_8php.html#a3bdfb81bf9a8ddf219924fa7eaf22013":[6,0,0,82,19],
+"widgets_8php.html#a45ea061dabe9a8372e4ca3b9e5714256":[6,0,0,82,20],
+"widgets_8php.html#a47c72aac42058ea086c9ef8651c259da":[6,0,0,82,6],
+"widgets_8php.html#a50b1410238100c8a94c06b0aa63ee3b8":[6,0,0,82,28],
+"widgets_8php.html#a5ab3b64496e02cab56429978ad55f1c0":[6,0,0,82,13],
+"widgets_8php.html#a6dbc227aac750774284ee39c45f0a200":[6,0,0,82,30],
+"widgets_8php.html#a702e2fc0adc9b615999eca18b7311b5e":[6,0,0,82,22],
+"widgets_8php.html#a70442dfa079312d9d5e5ee01be51a165":[6,0,0,82,16],
+"widgets_8php.html#a7b1e357b5a2027718470b77ec921fc65":[6,0,0,82,2],
+"widgets_8php.html#a829c5a5c7448129266fc1df3ae1a3c2e":[6,0,0,82,25],
+"widgets_8php.html#a94203eb9bcd63cbdecbbcb15163598d8":[6,0,0,82,26],
+"widgets_8php.html#a95c06bc9be133e89768746302d2ac395":[6,0,0,82,11],
+"widgets_8php.html#a999ba893cac7600d3d3b4e7e14cf8c20":[6,0,0,82,21],
+"widgets_8php.html#a9d60539db68042e63c0015abd69a6f7a":[6,0,0,82,7],
+"widgets_8php.html#aa189a07241246d97efbee29f1c6a6f7f":[6,0,0,82,8],
+"widgets_8php.html#aaa73bcf1702eaadd9dcd253502f55e01":[6,0,0,82,27],
+"widgets_8php.html#abd2e508a2a0b911c4a838e3cb7599923":[6,0,0,82,24],
+"widgets_8php.html#abe03366fd22fd27d683518fa0765da50":[6,0,0,82,32],
+"widgets_8php.html#aced5cb177f630b30799c5eab873ee75c":[6,0,0,82,1],
+"widgets_8php.html#ad1bf7aa69e8d100d95faba17c7bc91cd":[6,0,0,82,15],
+"widgets_8php.html#add9b24d3304e529a7975e96122315554":[6,0,0,82,0],
+"widgets_8php.html#ade630b19fb4c622b7b2f6f8ef89eefa2":[6,0,0,82,14],
+"widgets_8php.html#ae4ced69d83dbdd9e6b51660d9eba8653":[6,0,0,82,31],
+"widgets_8php.html#af37fdad3b2e861d860a4a8c4d8a76c0b":[6,0,0,82,5],
+"widgets_8php.html#af8eb466ef91d9e96e13335ead5eba380":[6,0,0,82,23],
+"widgets_8php.html#af919de8e7e2ba8192a65fadc72a2c8b5":[6,0,0,82,4],
+"widgets_8php.html#afa2e55a78f95667a6da082efac7fec74":[6,0,0,82,18],
+"xchan_8php.html":[6,0,1,138],
+"xchan_8php.html#a9853348bf1a35c644460221ba75edc2d":[6,0,1,138,0],
+"xrd_8php.html":[6,0,1,139],
+"xrd_8php.html#aee3cf087968e4a0ff3a87de16eb23270":[6,0,1,139,0],
+"xref_8php.html":[6,0,1,140],
+"xref_8php.html#a9bee399213b8de8226b0d60834307473":[6,0,1,140,0],
+"zfinger_8php.html":[6,0,1,141],
+"zfinger_8php.html#a8139b83a22ef98869adc10aa224027a0":[6,0,1,141,0],
+"zot_8php.html":[6,0,0,83],
+"zot_8php.html#a083aec6c900d244e1bfc1406f9461465":[6,0,0,83,15],
+"zot_8php.html#a084c581d534e7e3b759488b46602288f":[6,0,0,83,20],
+"zot_8php.html#a0e3006e7a456b2175a9badc96bc5176d":[6,0,0,83,11],
+"zot_8php.html#a0fc2211c5309d9f925ecc4115e3fdb75":[6,0,0,83,9],
+"zot_8php.html#a20750dd2c36961013fd382fb34e1366c":[6,0,0,83,6],
+"zot_8php.html#a2657e141d62d5f67ad3c87651b585299":[6,0,0,83,7],
+"zot_8php.html#a31aad56acf8ff8f2353e6ff8595544df":[6,0,0,83,18],
+"zot_8php.html#a3920afe14fc1d82020161b4b86bcd9ac":[6,0,0,83,28],
+"zot_8php.html#a3bf11286c2619b4ca28e49d5b5ab374a":[6,0,0,83,5],
+"zot_8php.html#a528e97ca5d69c3b7f35c5d954afde315":[6,0,0,83,8],
+"zot_8php.html#a55056e863a7860bc0cf922e78fcce073":[6,0,0,83,25],
+"zot_8php.html#a5bcdfef419b16075a0eca990956223dc":[6,0,0,83,31],
+"zot_8php.html#a61cdc1ec843663c423ed2d8160ae5aea":[6,0,0,83,22],
+"zot_8php.html#a703f528ade8382cf374e4119bd6f7859":[6,0,0,83,0],
+"zot_8php.html#a7ac30ff51274bf0b6d3eade37972145c":[6,0,0,83,30],
+"zot_8php.html#a8e22dbc6f884be3644a892a876cbd972":[6,0,0,83,3],
+"zot_8php.html#a8eeefdb0dad4c436bea9d1c06c0a7988":[6,0,0,83,12],
+"zot_8php.html#a928f5643ca66ae9635d85aeb2be62e03":[6,0,0,83,29],
+"zot_8php.html#a95528377d7303131958c9f0b7158fdce":[6,0,0,83,23],
+"zot_8php.html#a9a57b40669351c9791126b925cb7ef3b":[6,0,0,83,14],
+"zot_8php.html#aa6ae96db8cbbdbb10e6876d206bbf7cc":[6,0,0,83,13],
+"zot_8php.html#aa97b33b619dd7132a9274f852af6ceb5":[6,0,0,83,1],
+"zot_8php.html#aad25a3fe0e1566121d6fb8222979bc10":[6,0,0,83,16],
+"zot_8php.html#ab15c04e7e5f44edf45ec50dd7d183254":[6,0,0,83,17],
+"zot_8php.html#ab22d67660702056bf3f4696dcebf5ce7":[6,0,0,83,27],
+"zot_8php.html#ab319d1d9fff9c7775d9daef42d1f33dd":[6,0,0,83,19],
+"zot_8php.html#ab3e9b99ddb11353f37f265a05bb42142":[6,0,0,83,32],
+"zot_8php.html#ac301c67864917c35922257950ae0f95c":[6,0,0,83,10],
+"zot_8php.html#ad149f1e98c0c5b88ff9147e6ee3f330d":[6,0,0,83,4],
+"zot_8php.html#adfeb9400ae6b726beec89f8f1e8fde72":[6,0,0,83,2],
+"zot_8php.html#ae26ce9f1ad74139193fb6319beac5fca":[6,0,0,83,21],
+"zot_8php.html#ae7cec2b417b5858fd4a41070f843d1d7":[6,0,0,83,24],
+"zot_8php.html#aeea071f17e306fe3d0c488551906bfab":[6,0,0,83,26],
+"zotfeed_8php.html":[6,0,1,142],
+"zotfeed_8php.html#a24dfc23d366e7f840cf2847d0c1c8eac":[6,0,1,142,0],
+"zping_8php.html":[6,0,1,143],
+"zping_8php.html#a4d3a6b0b8b04ed6469015823e615ee75":[6,0,1,143,0]
};
diff --git a/doc/html/notifier_8php.html b/doc/html/notifier_8php.html
index 9cccb089c..0dba5aef4 100644
--- a/doc/html/notifier_8php.html
+++ b/doc/html/notifier_8php.html
@@ -139,6 +139,7 @@ Functions</h2></td></tr>
</tr>
</table>
</div><div class="memdoc">
+<p>Reduce the hubs to those that are unique. For zot hubs, we need to verify uniqueness by the sitekey, since it may have been a re-install which has not yet been detected and pruned. For other networks which don't have or require sitekeys, we'll have to use the URL</p>
</div>
</div>
diff --git a/doc/html/p_8php.html b/doc/html/p_8php.html
new file mode 100644
index 000000000..2246ccadd
--- /dev/null
+++ b/doc/html/p_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/p.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('p_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">p.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:af9d5530ca0b3dc9409cf591c39e2480e"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="p_8php.html#af9d5530ca0b3dc9409cf591c39e2480e">p_init</a> (&amp;$a)</td></tr>
+<tr class="separator:af9d5530ca0b3dc9409cf591c39e2480e"><td class="memSeparator" colspan="2">&#160;</td></tr>
+</table>
+<h2 class="groupheader">Function Documentation</h2>
+<a class="anchor" id="af9d5530ca0b3dc9409cf591c39e2480e"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">p_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/p_8php.js b/doc/html/p_8php.js
new file mode 100644
index 000000000..5f4d00b0c
--- /dev/null
+++ b/doc/html/p_8php.js
@@ -0,0 +1,4 @@
+var p_8php =
+[
+ [ "p_init", "p_8php.html#af9d5530ca0b3dc9409cf591c39e2480e", null ]
+]; \ No newline at end of file
diff --git a/doc/html/permissions_8php.html b/doc/html/permissions_8php.html
index f4baf95c3..f74b5e10e 100644
--- a/doc/html/permissions_8php.html
+++ b/doc/html/permissions_8php.html
@@ -113,17 +113,23 @@ $(document).ready(function(){initNavTree('permissions_8php.html','');});
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="func-members"></a>
Functions</h2></td></tr>
<tr class="memitem:a040fd3d3b8517658b1668ae0cd093972"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="permissions_8php.html#a040fd3d3b8517658b1668ae0cd093972">get_perms</a> ()</td></tr>
+<tr class="memdesc:a040fd3d3b8517658b1668ae0cd093972"><td class="mdescLeft">&#160;</td><td class="mdescRight">Return an array with all available permissions. <a href="#a040fd3d3b8517658b1668ae0cd093972">More...</a><br/></td></tr>
<tr class="separator:a040fd3d3b8517658b1668ae0cd093972"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:aeca9b280f3dc3358c89976d81d690008"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="permissions_8php.html#aeca9b280f3dc3358c89976d81d690008">get_all_perms</a> ($uid, $observer_xchan, $internal_use=true)</td></tr>
<tr class="separator:aeca9b280f3dc3358c89976d81d690008"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a67ada9ed51e77885b6b0f6a28cee1835"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="permissions_8php.html#a67ada9ed51e77885b6b0f6a28cee1835">perm_is_allowed</a> ($uid, $observer_xchan, $permission)</td></tr>
+<tr class="memdesc:a67ada9ed51e77885b6b0f6a28cee1835"><td class="mdescLeft">&#160;</td><td class="mdescRight">Checks if given permission is allowed for given observer on a channel. <a href="#a67ada9ed51e77885b6b0f6a28cee1835">More...</a><br/></td></tr>
<tr class="separator:a67ada9ed51e77885b6b0f6a28cee1835"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a0f5bd9f7f4c8fb7ba4b2c1ed048b4dc7"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="permissions_8php.html#a0f5bd9f7f4c8fb7ba4b2c1ed048b4dc7">check_list_permissions</a> ($uid, $arr, $perm)</td></tr>
<tr class="separator:a0f5bd9f7f4c8fb7ba4b2c1ed048b4dc7"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:aa8b7b102c653649d7a71b5a1c044d90d"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="permissions_8php.html#aa8b7b102c653649d7a71b5a1c044d90d">site_default_perms</a> ()</td></tr>
+<tr class="memdesc:aa8b7b102c653649d7a71b5a1c044d90d"><td class="mdescLeft">&#160;</td><td class="mdescRight">Sets site wide default permissions. <a href="#aa8b7b102c653649d7a71b5a1c044d90d">More...</a><br/></td></tr>
<tr class="separator:aa8b7b102c653649d7a71b5a1c044d90d"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a9b5f5120566a3699a98efc5ccb0c59fe"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="permissions_8php.html#a9b5f5120566a3699a98efc5ccb0c59fe">get_role_perms</a> ($role)</td></tr>
<tr class="separator:a9b5f5120566a3699a98efc5ccb0c59fe"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a50e8099ea8a4d7ed68b2a0a7ea9aa724"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="permissions_8php.html#a50e8099ea8a4d7ed68b2a0a7ea9aa724">role_selector</a> ($current)</td></tr>
+<tr class="memdesc:a50e8099ea8a4d7ed68b2a0a7ea9aa724"><td class="mdescLeft">&#160;</td><td class="mdescRight">Creates a HTML select field with all available roles. <a href="#a50e8099ea8a4d7ed68b2a0a7ea9aa724">More...</a><br/></td></tr>
+<tr class="separator:a50e8099ea8a4d7ed68b2a0a7ea9aa724"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table>
<h2 class="groupheader">Function Documentation</h2>
<a class="anchor" id="a0f5bd9f7f4c8fb7ba4b2c1ed048b4dc7"></a>
@@ -192,14 +198,15 @@ Functions</h2></td></tr>
<p>get_all_perms($uid,$observer_xchan)</p>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
- <tr><td class="paramname">$uid</td><td>: The channel_id associated with the resource owner </td></tr>
- <tr><td class="paramname">$observer_xchan,:</td><td>The xchan_hash representing the observer</td></tr>
+ <tr><td class="paramtype">int</td><td class="paramname">$uid</td><td>The channel_id associated with the resource owner </td></tr>
+ <tr><td class="paramtype">string</td><td class="paramname">$observer_xchan</td><td>The xchan_hash representing the observer </td></tr>
+ <tr><td class="paramtype">bool</td><td class="paramname">$internal_use</td><td>(default true)</td></tr>
</table>
</dd>
</dl>
-<dl class="section return"><dt>Returns</dt><dd>: array of all permissions, key is permission name, value is true or false </dd></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="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="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="like_8php.html#a9d7dd268f21c21e9d29dd2aca2dd9538">like_content()</a>, <a class="el" href="page_8php.html#a91a5f649f68406149108bded1dc90b22">page_content()</a>, <a class="el" href="webpages_8php.html#af3b7397d4abc153e3d2147740ee1a41d">webpages_content()</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>
+<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="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="like_8php.html#a9d7dd268f21c21e9d29dd2aca2dd9538">like_content()</a>, <a class="el" href="page_8php.html#a4d89800c0366a239191b1692c09635cf">page_init()</a>, <a class="el" href="webpages_8php.html#af3b7397d4abc153e3d2147740ee1a41d">webpages_content()</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>
@@ -216,7 +223,11 @@ Functions</h2></td></tr>
</table>
</div><div class="memdoc">
-<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>
+<p>Return an array with all available permissions. </p>
+<p>These are channel specific permissions. The list of available permissions can get manipulated by the <em>hook</em> <b>global_permissions</b>.</p>
+<dl class="section return"><dt>Returns</dt><dd>array associative array containing all permissions </dd></dl>
+
+<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="settings_8php.html#aa7ee94d88ac088edb04ccf3a26de3586">settings_post()</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>
@@ -236,11 +247,12 @@ Functions</h2></td></tr>
<p>get_role_perms($role) </p>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
- <tr><td class="paramtype">string</td><td class="paramname">$role</td><td>Given a string for the channel role ('social','forum', etc) return an array of all permission fields pre-filled for this role. This includes the channel permission scope indicators as well as perms_auto: The permissions to apply automatically on receipt of a connection request perms_follow: The permissions to apply when initiating a connection request to another channel perms_accept: The permissions to apply when accepting a connection request from another channel (not automatic)</td></tr>
+ <tr><td class="paramtype">string</td><td class="paramname">$role</td><td>Given a string for the channel role ('social','forum', etc) return an array of all permission fields pre-filled for this role. This includes the channel permission scope indicators (anything beginning with 'channel_') as well as perms_auto: true or false to create auto-permissions for this channel perms_follow: The permissions to apply when initiating a connection request to another channel perms_accept: The permissions to apply when accepting a connection request from another channel (not automatic) default_collection: true or false to make the default ACL include the channel's default collection directory_publish: true or false to publish this channel in the directory Any attributes may be extended (new roles defined) and modified (specific permissions altered) by plugins </td></tr>
</table>
</dd>
</dl>
-<p>Any attributes may be extended (new roles defined) and modified (specific permissions altered) by plugins </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="diaspora_8php.html#ac1ab782a34552a7c6b4dc961754ed598">diaspora_request()</a>, <a class="el" href="dimport_8php.html#a581f040717941ce3e1868b0b5dceefd1">foofoo()</a>, <a class="el" href="include_2follow_8php.html#ae387d4ae097c23d69f3247e7f08140c7">new_contact()</a>, <a class="el" href="settings_8php.html#aa7ee94d88ac088edb04ccf3a26de3586">settings_post()</a>, and <a class="el" href="zot_8php.html#a7ac30ff51274bf0b6d3eade37972145c">zot_refresh()</a>.</p>
</div>
</div>
@@ -274,7 +286,46 @@ 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="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="block_8php.html#a8a82a470acdfbc7a8e749509caeeea45">block_content()</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="text_8php.html#ad6432621d0fafcbcf3d3b9b49bef7784">contact_block()</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="diaspora_8php.html#a006731620a5242d410358b32678e48e3">diaspora_asphoto()</a>, <a class="el" href="diaspora_8php.html#a0fb2abe304aae19efc040a5e6b917829">diaspora_comment()</a>, <a class="el" href="diaspora_8php.html#a5d57518545baa31cf8a85a937a267681">diaspora_like()</a>, <a class="el" href="diaspora_8php.html#a71fe9bb66626b4197ae018a230778bb2">diaspora_photo()</a>, <a class="el" href="diaspora_8php.html#a20b968d64ef26afe5cb0cc75a7570a31">diaspora_post()</a>, <a class="el" href="diaspora_8php.html#a2bf43f6b5890897f425ef4325d34b007">diaspora_reshare()</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="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="post_8php.html#af59e6a1dc22d19d9257b01cd7ccedb75">post_post()</a>, <a class="el" href="zot_8php.html#a4d9e6ca295e443b740d9960c304b3474">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="search_8php.html#ab2568591359edde5b483a6cd9a24b2cc">search_content()</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="classRedDirectory.html#adc48035679e52c55d9881f83de535553">RedDirectory\setName()</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="datetime_8php.html#af1cd77c97c901d9239cb7a61f97f9826">update_birthdays()</a>, <a class="el" href="viewconnections_8php.html#ab6c4d983e97b3a8a879567ff76507776">viewconnections_content()</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#a313a8d10ab81c71357c12e67e4d7efd5">widget_item()</a>, <a class="el" href="widgets_8php.html#a702e2fc0adc9b615999eca18b7311b5e">widget_photo_albums()</a>, <a class="el" href="widgets_8php.html#ae4ced69d83dbdd9e6b51660d9eba8653">widget_tagcloud_wall()</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>Checks if given permission is allowed for given observer on a channel. </p>
+<p>Checks if the given observer with the hash $observer_xchan has permission $permission on channel_id $uid. $permission is one defined in <a class="el" href="permissions_8php.html#a040fd3d3b8517658b1668ae0cd093972" title="Return an array with all available permissions.">get_perms()</a>;</p>
+<dl class="params"><dt>Parameters</dt><dd>
+ <table class="params">
+ <tr><td class="paramtype">int</td><td class="paramname">$uid</td><td>The channel_id associated with the resource owner </td></tr>
+ <tr><td class="paramtype">string</td><td class="paramname">$observer_xchan</td><td>The xchan_hash representing the observer </td></tr>
+ <tr><td class="paramtype">string</td><td class="paramname">$permission</td><td></td></tr>
+ </table>
+ </dd>
+</dl>
+<dl class="section return"><dt>Returns</dt><dd>bool true if permission is allowed for observer on channel </dd></dl>
+
+<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="block_8php.html#a8a82a470acdfbc7a8e749509caeeea45">block_content()</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="text_8php.html#ad6432621d0fafcbcf3d3b9b49bef7784">contact_block()</a>, <a class="el" href="classRedMatrix_1_1RedDAV_1_1RedDirectory.html#aca0e8d574ea66a0e210f571700663c62">RedMatrix\RedDAV\RedDirectory\createDirectory()</a>, <a class="el" href="classRedMatrix_1_1RedDAV_1_1RedDirectory.html#a58e750256cdc2f0f79fbe8d5463ffefe">RedMatrix\RedDAV\RedDirectory\createFile()</a>, <a class="el" href="classRedMatrix_1_1RedDAV_1_1RedFile.html#ab7ab7ba81fab28eb02382cfdfd80ecfe">RedMatrix\RedDAV\RedFile\delete()</a>, <a class="el" href="diaspora_8php.html#a006731620a5242d410358b32678e48e3">diaspora_asphoto()</a>, <a class="el" href="diaspora_8php.html#a0fb2abe304aae19efc040a5e6b917829">diaspora_comment()</a>, <a class="el" href="diaspora_8php.html#adef30b6fac948baedcc7194d5d155b5f">diaspora_conversation()</a>, <a class="el" href="diaspora_8php.html#a5d57518545baa31cf8a85a937a267681">diaspora_like()</a>, <a class="el" href="diaspora_8php.html#a71fe9bb66626b4197ae018a230778bb2">diaspora_photo()</a>, <a class="el" href="diaspora_8php.html#a20b968d64ef26afe5cb0cc75a7570a31">diaspora_post()</a>, <a class="el" href="diaspora_8php.html#a2bf43f6b5890897f425ef4325d34b007">diaspora_reshare()</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="editwebpage_8php.html#a375e945255fad79a71036528f7480650">editwebpage_content()</a>, <a class="el" href="items_8php.html#a04a35b610acfe54434df08adec39c0c7">get_feed_for()</a>, <a class="el" href="classRedMatrix_1_1RedDAV_1_1RedDirectory.html#a1a37850bdd1f188abd6160559698d5d7">RedMatrix\RedDAV\RedDirectory\getChild()</a>, <a class="el" href="classRedMatrix_1_1RedDAV_1_1RedDirectory.html#a9b9a0b5bfa4de1f78e6cafaa534b6f6a">RedMatrix\RedDAV\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="p_8php.html#af9d5530ca0b3dc9409cf591c39e2480e">p_init()</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="post_8php.html#af59e6a1dc22d19d9257b01cd7ccedb75">post_post()</a>, <a class="el" href="zot_8php.html#a0e3006e7a456b2175a9badc96bc5176d">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="search_8php.html#ab2568591359edde5b483a6cd9a24b2cc">search_content()</a>, <a class="el" href="classConversation.html#a66f121ca4026246f86a732e5faa0682c">Conversation\set_mode()</a>, <a class="el" href="classRedMatrix_1_1RedDAV_1_1RedBrowser.html#aa1607857cb59738c4dce2fe8e73d8f19">RedMatrix\RedDAV\RedBrowser\set_writeable()</a>, <a class="el" href="classRedMatrix_1_1RedDAV_1_1RedFile.html#a0350cb4e0327e1f9922869a48ee04f1d">RedMatrix\RedDAV\RedFile\setName()</a>, <a class="el" href="classRedMatrix_1_1RedDAV_1_1RedDirectory.html#a14ac61d31a031d139956763db4e03956">RedMatrix\RedDAV\RedDirectory\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="datetime_8php.html#af1cd77c97c901d9239cb7a61f97f9826">update_birthdays()</a>, <a class="el" href="viewconnections_8php.html#ab6c4d983e97b3a8a879567ff76507776">viewconnections_content()</a>, <a class="el" href="widgets_8php.html#a7b1e357b5a2027718470b77ec921fc65">widget_archive()</a>, <a class="el" href="widgets_8php.html#af919de8e7e2ba8192a65fadc72a2c8b5">widget_catcloud_wall()</a>, <a class="el" href="widgets_8php.html#af37fdad3b2e861d860a4a8c4d8a76c0b">widget_categories()</a>, <a class="el" href="widgets_8php.html#a313a8d10ab81c71357c12e67e4d7efd5">widget_item()</a>, <a class="el" href="widgets_8php.html#a702e2fc0adc9b615999eca18b7311b5e">widget_photo_albums()</a>, <a class="el" href="widgets_8php.html#ae4ced69d83dbdd9e6b51660d9eba8653">widget_tagcloud_wall()</a>, <a class="el" href="include_2attach_8php.html#aeb07968990e66a88c95483ca09a7f909">z_readdir()</a>, and <a class="el" href="items_8php.html#a1cf89557f32d5dfbe8bd90448dc1aa92">zot_feed()</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="a50e8099ea8a4d7ed68b2a0a7ea9aa724"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">role_selector </td>
+ <td>(</td>
+ <td class="paramtype">&#160;</td>
+ <td class="paramname"><em>$current</em></td><td>)</td>
+ <td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Creates a HTML select field with all available roles. </p>
+<dl class="params"><dt>Parameters</dt><dd>
+ <table class="params">
+ <tr><td class="paramtype">string</td><td class="paramname">$current</td><td>The current role </td></tr>
+ </table>
+ </dd>
+</dl>
+<dl class="section return"><dt>Returns</dt><dd>string Returns the complete HTML code for this privacy-role-select field. </dd></dl>
+
+<p>Referenced by <a class="el" href="new__channel_8php.html#ae585191610f79da129492482ce8e2fee">new_channel_content()</a>.</p>
</div>
</div>
@@ -291,6 +342,9 @@ Functions</h2></td></tr>
</table>
</div><div class="memdoc">
+<p>Sets site wide default permissions. </p>
+<dl class="section return"><dt>Returns</dt><dd>array </dd></dl>
+
<p>Referenced by <a class="el" href="identity_8php.html#a345f4c943d84de502ec6e72d2c813945">create_identity()</a>.</p>
</div>
diff --git a/doc/html/permissions_8php.js b/doc/html/permissions_8php.js
index df2e58f84..22580253a 100644
--- a/doc/html/permissions_8php.js
+++ b/doc/html/permissions_8php.js
@@ -5,5 +5,6 @@ var permissions_8php =
[ "get_perms", "permissions_8php.html#a040fd3d3b8517658b1668ae0cd093972", null ],
[ "get_role_perms", "permissions_8php.html#a9b5f5120566a3699a98efc5ccb0c59fe", null ],
[ "perm_is_allowed", "permissions_8php.html#a67ada9ed51e77885b6b0f6a28cee1835", null ],
+ [ "role_selector", "permissions_8php.html#a50e8099ea8a4d7ed68b2a0a7ea9aa724", null ],
[ "site_default_perms", "permissions_8php.html#aa8b7b102c653649d7a71b5a1c044d90d", null ]
]; \ No newline at end of file
diff --git a/doc/html/photo__driver_8php.html b/doc/html/photo__driver_8php.html
index 6c8bfe058..204df52dd 100644
--- a/doc/html/photo__driver_8php.html
+++ b/doc/html/photo__driver_8php.html
@@ -154,11 +154,11 @@ Functions</h2></td></tr>
<p>Guess image mimetype from filename or from Content-Type header</p>
<ul>
<li>$filename string Image filename </li>
-<li>$fromcurl boolean Check Content-Type header from curl request </li>
+<li>$headers string Headers to check for Content-Type (from curl request) </li>
</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#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>
+<p>Referenced by <a class="el" href="photo__driver_8php.html#a78f5a10c568d2a9bbbb129dc96548887">import_profile_photo()</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="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>
@@ -232,7 +232,7 @@ Functions</h2></td></tr>
</table>
</div><div class="memdoc">
-<p>Referenced by <a class="el" href="include_2apps_8php.html#a15626f24069c18816f7cdaf4735f58f9">app_store()</a>, <a class="el" href="include_2apps_8php.html#aeab6a62d2f3dfaa86ed043a006305f46">app_update()</a>, <a class="el" href="diaspora_8php.html#a900abf51398b2ef26cd2cd31c52f1b0f">diaspora_profile()</a>, <a class="el" href="include_2network_8php.html#a5176176ddc1906d91f186df6fbd87b48">discover_by_url()</a>, <a class="el" href="include_2network_8php.html#a63e62946e194928eb17c5a9f2bbef0fe">discover_by_webbie()</a>, <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#a528e97ca5d69c3b7f35c5d954afde315">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>
+<p>Referenced by <a class="el" href="include_2apps_8php.html#a15626f24069c18816f7cdaf4735f58f9">app_store()</a>, <a class="el" href="include_2apps_8php.html#aeab6a62d2f3dfaa86ed043a006305f46">app_update()</a>, <a class="el" href="diaspora_8php.html#a900abf51398b2ef26cd2cd31c52f1b0f">diaspora_profile()</a>, <a class="el" href="include_2network_8php.html#a5176176ddc1906d91f186df6fbd87b48">discover_by_url()</a>, <a class="el" href="include_2network_8php.html#a63e62946e194928eb17c5a9f2bbef0fe">discover_by_webbie()</a>, <a class="el" href="items_8php.html#a6bee35961f2e32905f20367a9309d627">import_author_rss()</a>, <a class="el" href="items_8php.html#a37f79991f36811cf847446ff60e8e11f">import_author_unknown()</a>, <a class="el" href="import_8php.html#af17fef0410518f7eac205d0ea416eaa2">import_post()</a>, <a class="el" href="zot_8php.html#a528e97ca5d69c3b7f35c5d954afde315">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>, <a class="el" href="thing_8php.html#a8be23b1d475ec3d9291999221c674c80">thing_init()</a>, and <a class="el" href="hubloc_8php.html#acb708dd197aae72a4858cf5ff4e3195b">xchan_store()</a>.</p>
</div>
</div>
diff --git a/doc/html/php2po_8php.html b/doc/html/php2po_8php.html
index bed5db208..ec2862d4c 100644
--- a/doc/html/php2po_8php.html
+++ b/doc/html/php2po_8php.html
@@ -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="crypto_8php.html#a2148d7aac7b30c720f7ebda7e9790286">aes_encapsulate()</a>, <a class="el" href="crypto_8php.html#aca7c3a574bfb6c6ef1f2403a56823914">aes_unencapsulate()</a>, <a class="el" href="include_2apps_8php.html#a1b2e737f477a2e0d9d11ef14adc5aa66">app_render()</a>, <a class="el" href="bbcode_8php.html#a3a989cbf308a32468d171d83e9c51d1e">bb_sanitize_style()</a>, <a class="el" href="zot_8php.html#aa97b33b619dd7132a9274f852af6ceb5">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="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#a20750dd2c36961013fd382fb34e1366c">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="netgrowth_8php.html#a9b87bfc25a7cb11bc7f8e1fdd0310919">netgrowth_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_2apps_8php.html#a32fe4ed9666228fd4b67dc487cc57a83">parse_app_description()</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="identity_8php.html#a4751b522ea913d0e7ed43e03d22e9e68">profile_load()</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#a686bcafa6b0d5c86d37b38a1db5b6997">tt()</a>, <a class="el" href="classRedBrowser.html#ad3418b8ccad42a1ef4ad0079e15b2e64">RedBrowser\userReadableSize()</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>
+<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="include_2apps_8php.html#a1b2e737f477a2e0d9d11ef14adc5aa66">app_render()</a>, <a class="el" href="bbcode_8php.html#a3a989cbf308a32468d171d83e9c51d1e">bb_sanitize_style()</a>, <a class="el" href="zot_8php.html#aa97b33b619dd7132a9274f852af6ceb5">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="mod_2directory_8php.html#aac79396570d759da2efac24fcedf5b44">directory_content()</a>, <a class="el" href="dirsearch_8php.html#aa1fb04e1de4f25b63349ac78f94ceb4c">dirsearch_content()</a>, <a class="el" href="text_8php.html#a3ba47b4dd1248e7e51095572e7b814dc">extra_query_args()</a>, <a class="el" href="dimport_8php.html#a581f040717941ce3e1868b0b5dceefd1">foofoo()</a>, <a class="el" href="classRedMatrix_1_1RedDAV_1_1RedBrowser.html#af764d5f14df751f9ec86c34fab300c09">RedMatrix\RedDAV\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#a20750dd2c36961013fd382fb34e1366c">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#a559791dda7fef8a4b2394c83e835787b">load_pconfig()</a>, <a class="el" href="include_2config_8php.html#aee4b619839cf4b64220f34edf5c67b52">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="netgrowth_8php.html#a9b87bfc25a7cb11bc7f8e1fdd0310919">netgrowth_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_2apps_8php.html#a32fe4ed9666228fd4b67dc487cc57a83">parse_app_description()</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="identity_8php.html#a4751b522ea913d0e7ed43e03d22e9e68">profile_load()</a>, <a class="el" href="include_2api_8php.html#a43c47de8565cc00c3369cb35c19cc75e">requestdata()</a>, <a class="el" href="permissions_8php.html#a50e8099ea8a4d7ed68b2a0a7ea9aa724">role_selector()</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#a686bcafa6b0d5c86d37b38a1db5b6997">tt()</a>, <a class="el" href="classRedMatrix_1_1RedDAV_1_1RedBrowser.html#a242ce69a2fe5a5fdf9c2b8d3954accfd">RedMatrix\RedDAV\RedBrowser\userReadableSize()</a>, <a class="el" href="vote_8php.html#a57a9516ee1b923b224e66dcc47377fb2">vote_post()</a>, <a class="el" href="boot_8php.html#ae97836b0547953be182a2334c9c91d3c">x()</a>, <a class="el" href="hubloc_8php.html#af1b476c936f96a93282b1d058e3d05ea">xchan_fetch()</a>, <a class="el" href="zfinger_8php.html#a8139b83a22ef98869adc10aa224027a0">zfinger_init()</a>, <a class="el" href="zot_8php.html#a084c581d534e7e3b759488b46602288f">zot_build_packet()</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="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>
+<p>Referenced by <a class="el" href="mod_2directory_8php.html#aac79396570d759da2efac24fcedf5b44">directory_content()</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>
@@ -224,7 +224,7 @@ Variables</h2></td></tr>
<b>Initial value:</b><div class="fragment"><div class="line">{</div>
<div class="line"> <a class="code" href="fpostit_8php.html#a3f3ae3ae61578b5671673914fd894443">showForm</a>(null, $content)</div>
</div><!-- fragment -->
-<p>Referenced by <a class="el" href="include_2oembed_8php.html#a26bb4c1e330d2f94ea7b6ce2fe970cf3">oembed_format_object()</a>, and <a class="el" href="post__to__red_8php.html#a085c250d4ceff5e4f10052f3d2039823">red_comment()</a>.</p>
+<p>Referenced by <a class="el" href="include_2oembed_8php.html#a26bb4c1e330d2f94ea7b6ce2fe970cf3">oembed_format_object()</a>.</p>
</div>
</div>
diff --git a/doc/html/php_2default_8php.html b/doc/html/php_2default_8php.html
index 19e67f2d6..35a9b50f1 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:a3987f5547ceb7e36a210a66a06241a5a"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="php_2default_8php.html#a3987f5547ceb7e36a210a66a06241a5a">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; header &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="memitem:a3987f5547ceb7e36a210a66a06241a5a"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="php_2default_8php.html#a3987f5547ceb7e36a210a66a06241a5a">if</a> (<a class="el" href="boot_8php.html#ae97836b0547953be182a2334c9c91d3c">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; header &gt;&lt;?php if(<a class="el" href="boot_8php.html#ae97836b0547953be182a2334c9c91d3c">x</a>($<a class="el" href="mod__import_8php.html#a8db1899eeeb44dabd0904065b63627bb">page</a></td></tr>
<tr class="separator:a3987f5547ceb7e36a210a66a06241a5a"><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__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; header &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>
+ <td class="memname">if(<a class="el" href="boot_8php.html#ae97836b0547953be182a2334c9c91d3c">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; header &gt;&lt;?php if(<a class="el" href="boot_8php.html#ae97836b0547953be182a2334c9c91d3c">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 4e0755d37..18e724398 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="admin_8php.html#ad6f87a764fd35f522c7b4c351d7878ec">admin_page_channels()</a>, <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="appman_8php.html#af48805ac2f6f123f2681a8ae1c6f123f">appman_content()</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#aef1cb2968c41c759f2d106e1088ca323">bookmark_add()</a>, <a class="el" href="mod_2bookmarks_8php.html#a774364b1c8404529581083631703527a">bookmarks_content()</a>, <a class="el" href="zot_8php.html#aa97b33b619dd7132a9274f852af6ceb5">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#a4e8af0f0525161da74583c04b8b03097">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="diaspora_8php.html#a4901762cba5cd8dcdc57bdf285eefb1b">diaspora_msg_build()</a>, <a class="el" href="diaspora_8php.html#a586d5a3ba92d35cee14f879f290072aa">diaspora_pubmsg_build()</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="event_8php.html#ac9f206819186b65952ac1869f0da8c6e">event_addtocal()</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="filestorage_8php.html#ad3b64e3ece9831f9d3a9f00c0ae983cd">filestorage_post()</a>, <a class="el" href="item_8php.html#a3daae7944f737bd30412a0d042207c0f">fix_attached_file_permissions()</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="items_8php.html#a52c24114b73c0bdb605a03cd29712223">handle_feed()</a>, <a class="el" href="item_8php.html#aa22feef4de326e1d7078dedd892e615c">handle_tag()</a>, <a class="el" href="hcard_8php.html#ac34f26b0e6a37eef44fa49bea135136d">hcard_init()</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="importelm_8php.html#a1a4f71e6d76ace6add5e9659845f5e5f">importelm_post()</a>, <a class="el" href="invite_8php.html#a244385b28cfd021d308715f01158bfd9">invite_content()</a>, <a class="el" href="identity_8php.html#a4e996e44b50330098a04b467367a559f">is_public_profile()</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_2apps_8php.html#a32fe4ed9666228fd4b67dc487cc57a83">parse_app_description()</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="mod_2probe_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#a4d9e6ca295e443b740d9960c304b3474">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#a46975783b8b8d70402d51487eb1f0b00">profiles_content()</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="rbmark_8php.html#a43fec4960b50926251574762cc491f76">rbmark_content()</a>, <a class="el" href="rbmark_8php.html#ac5a66aa8599fa5dc702bae396d8d1f8c">rbmark_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#aa7ee94d88ac088edb04ccf3a26de3586">settings_post()</a>, <a class="el" href="sources_8php.html#ac73298ff162ce7b2de8dcaf3d3305b1e">sources_post()</a>, <a class="el" href="items_8php.html#adf2b8137dc4ad9ec958de2842f16f3c2">start_delivery_chain()</a>, <a class="el" href="items_8php.html#af0a887050dc8d0f51c89890cdaf3145f">store_diaspora_comment_sig()</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="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>
+<p>Referenced by <a class="el" href="admin_8php.html#ad6f87a764fd35f522c7b4c351d7878ec">admin_page_channels()</a>, <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="appman_8php.html#af48805ac2f6f123f2681a8ae1c6f123f">appman_content()</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#aef1cb2968c41c759f2d106e1088ca323">bookmark_add()</a>, <a class="el" href="mod_2bookmarks_8php.html#a774364b1c8404529581083631703527a">bookmarks_content()</a>, <a class="el" href="zot_8php.html#aa97b33b619dd7132a9274f852af6ceb5">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#a4e8af0f0525161da74583c04b8b03097">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#ad2e96e917852f27dedfc263d37e13756">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="diaspora_8php.html#a4901762cba5cd8dcdc57bdf285eefb1b">diaspora_msg_build()</a>, <a class="el" href="diaspora_8php.html#a586d5a3ba92d35cee14f879f290072aa">diaspora_pubmsg_build()</a>, <a class="el" href="diaspora_8php.html#ac1ab782a34552a7c6b4dc961754ed598">diaspora_request()</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="event_8php.html#ac9f206819186b65952ac1869f0da8c6e">event_addtocal()</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="filestorage_8php.html#ad3b64e3ece9831f9d3a9f00c0ae983cd">filestorage_post()</a>, <a class="el" href="item_8php.html#a3daae7944f737bd30412a0d042207c0f">fix_attached_file_permissions()</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="items_8php.html#a52c24114b73c0bdb605a03cd29712223">handle_feed()</a>, <a class="el" href="text_8php.html#aa22feef4de326e1d7078dedd892e615c">handle_tag()</a>, <a class="el" href="hcard_8php.html#ac34f26b0e6a37eef44fa49bea135136d">hcard_init()</a>, <a class="el" href="home_8php.html#ac4642c38b6f23a8d065dd4a75c620bde">home_init()</a>, <a class="el" href="impel_8php.html#ab7db6fca43b42ea4332cb3e841b3cf7b">impel_init()</a>, <a class="el" href="import_8php.html#af17fef0410518f7eac205d0ea416eaa2">import_post()</a>, <a class="el" href="importelm_8php.html#a1a4f71e6d76ace6add5e9659845f5e5f">importelm_post()</a>, <a class="el" href="invite_8php.html#a244385b28cfd021d308715f01158bfd9">invite_content()</a>, <a class="el" href="identity_8php.html#a4e996e44b50330098a04b467367a559f">is_public_profile()</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="locs_8php.html#a6c900f53970c0d0e738d2fe06d27ca44">locs_content()</a>, <a class="el" href="locs_8php.html#a6b43654592919ac863d67a1f787a69b9">locs_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="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_2apps_8php.html#a32fe4ed9666228fd4b67dc487cc57a83">parse_app_description()</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="mod_2probe_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#a0e3006e7a456b2175a9badc96bc5176d">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#a46975783b8b8d70402d51487eb1f0b00">profiles_content()</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="rbmark_8php.html#a43fec4960b50926251574762cc491f76">rbmark_content()</a>, <a class="el" href="rbmark_8php.html#ac5a66aa8599fa5dc702bae396d8d1f8c">rbmark_post()</a>, <a class="el" href="refimport_8php.html#ad97ebb5feda0230a4834e0b3637a0d29">refimport_content()</a>, <a class="el" href="refimport_8php.html#a01a29630fa5e1ce6cd5e1fd75280747c">reflect_comment_store()</a>, <a class="el" href="refimport_8php.html#ae9c56f779d1e0ac7bcb2a460129e7ae5">reflect_photo_callback()</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="items_8php.html#adf2b8137dc4ad9ec958de2842f16f3c2">start_delivery_chain()</a>, <a class="el" href="items_8php.html#a25221826fa4621f523c68483e3b6af26">store_diaspora_comment_sig()</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="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#a084c581d534e7e3b759488b46602288f">zot_build_packet()</a>, <a class="el" href="zot_8php.html#ae26ce9f1ad74139193fb6319beac5fca">zot_encode_locations()</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/ping_8php.html b/doc/html/ping_8php.html
index eb295fb35..0fd7a5794 100644
--- a/doc/html/ping_8php.html
+++ b/doc/html/ping_8php.html
@@ -135,7 +135,7 @@ Functions</h2></td></tr>
<p>This function does several tasks. Whenever called it checks for new messages, introductions, notifications, etc. and returns a json with the results.</p>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
- <tr><td class="paramtype"><a class="el" href="classApp.html">App</a></td><td class="paramname">&amp;$a</td><td></td></tr>
+ <tr><td class="paramtype"><a class="el" href="classApp.html" title="Our main application structure for the life of this page.">App</a></td><td class="paramname">&amp;$a</td><td></td></tr>
</table>
</dd>
</dl>
diff --git a/doc/html/plugin_8php.html b/doc/html/plugin_8php.html
index 1e218d63e..ab3538fb3 100644
--- a/doc/html/plugin_8php.html
+++ b/doc/html/plugin_8php.html
@@ -206,7 +206,7 @@ Functions</h2></td></tr>
</table>
</div><div class="memdoc">
-<p>Referenced by <a class="el" href="__well__known_8php.html#a6ebfa937a2024f0b5dab53f0ac90fed0">_well_known_init()</a>, <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#a4e8af0f0525161da74583c04b8b03097">channel_remove()</a>, <a class="el" href="include_2chat_8php.html#acea6b176eb7aff44d9ba3ae24ce511d3">chat_message()</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="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#a555762e1022a4b8e3c3abd32e7812408">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#a7378e839ac3de9d55579eb3ec48eaf92">event_store_item()</a>, <a class="el" href="externals_8php.html#a4df44079e6f915286088b7a0d44db926">externals_run()</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="profile__selectors_8php.html#a8bfa1ca2d1598a3d65f1f9bb803ca816">gender_selector_min()</a>, <a class="el" href="permissions_8php.html#aeca9b280f3dc3358c89976d81d690008">get_all_perms()</a>, <a class="el" href="items_8php.html#a5e5be7bf1f8257dec0b2647e60a3f3f1">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="permissions_8php.html#a9b5f5120566a3699a98efc5ccb0c59fe">get_role_perms()</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="hostxrd_8php.html#aa37ffc8e7900bc76c4828bd25916db92">hostxrd_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#a20750dd2c36961013fd382fb34e1366c">import_directory_profile()</a>, <a class="el" href="zot_8php.html#a528e97ca5d69c3b7f35c5d954afde315">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="profile__selectors_8php.html#adc79715bd2e102b4583fb530749ec534">marital_selector_min()</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="poller_8php.html#a5f12df3a4738124b6c039971e87e76da">poller_run()</a>, <a class="el" href="acl__selectors_8php.html#ad25bba63a51a2b0b5b463efae50df528">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="text_8php.html#ae4df74296fbe55051ed3c035e55205e5">prepare_body()</a>, <a class="el" href="include_2probe_8php.html#aa748dc73a6686c13826b1ee9d16c800d">probe_well_known()</a>, <a class="el" href="boot_8php.html#ab346a2ece14993861f3e4206befa94f0">proc_run()</a>, <a class="el" href="zot_8php.html#a4d9e6ca295e443b740d9960c304b3474">process_delivery()</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="profile__selectors_8php.html#ab0eae5c0ceba77364469f0f580f0d074">sexpref_selector_min()</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="items_8php.html#ab1bce4261bcf75ad62753b498a144d17">tag_deliver()</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>
+<p>Referenced by <a class="el" href="__well__known_8php.html#a6ebfa937a2024f0b5dab53f0ac90fed0">_well_known_init()</a>, <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#a4e8af0f0525161da74583c04b8b03097">channel_remove()</a>, <a class="el" href="include_2chat_8php.html#acea6b176eb7aff44d9ba3ae24ce511d3">chat_message()</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="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#a555762e1022a4b8e3c3abd32e7812408">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#a7378e839ac3de9d55579eb3ec48eaf92">event_store_item()</a>, <a class="el" href="externals_8php.html#a4df44079e6f915286088b7a0d44db926">externals_run()</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="profile__selectors_8php.html#a8bfa1ca2d1598a3d65f1f9bb803ca816">gender_selector_min()</a>, <a class="el" href="text_8php.html#ae0333c304ec5b4b72e66bb2933fa7357">generate_map()</a>, <a class="el" href="text_8php.html#af5eb4a9c1599764f80c5bc71e0125d4b">generate_named_map()</a>, <a class="el" href="permissions_8php.html#aeca9b280f3dc3358c89976d81d690008">get_all_perms()</a>, <a class="el" href="items_8php.html#a5e5be7bf1f8257dec0b2647e60a3f3f1">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="permissions_8php.html#a9b5f5120566a3699a98efc5ccb0c59fe">get_role_perms()</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#a6e3dbf78f4ed74ab2577de221190b33f">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="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#a20750dd2c36961013fd382fb34e1366c">import_directory_profile()</a>, <a class="el" href="zot_8php.html#a528e97ca5d69c3b7f35c5d954afde315">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="profile__selectors_8php.html#adc79715bd2e102b4583fb530749ec534">marital_selector_min()</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="poller_8php.html#a5f12df3a4738124b6c039971e87e76da">poller_run()</a>, <a class="el" href="acl__selectors_8php.html#ad25bba63a51a2b0b5b463efae50df528">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="text_8php.html#ae4df74296fbe55051ed3c035e55205e5">prepare_body()</a>, <a class="el" href="include_2probe_8php.html#aa748dc73a6686c13826b1ee9d16c800d">probe_well_known()</a>, <a class="el" href="boot_8php.html#ab346a2ece14993861f3e4206befa94f0">proc_run()</a>, <a class="el" href="zot_8php.html#a0e3006e7a456b2175a9badc96bc5176d">process_delivery()</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="profile__selectors_8php.html#ab0eae5c0ceba77364469f0f580f0d074">sexpref_selector_min()</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="items_8php.html#ab1bce4261bcf75ad62753b498a144d17">tag_deliver()</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>
@@ -298,7 +298,7 @@ Functions</h2></td></tr>
</table>
</div><div class="memdoc">
-<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#ad6f87a764fd35f522c7b4c351d7878ec">admin_page_channels()</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#a3deba594ca1e11694eac1de0b724ef0a">admin_page_profs()</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="include_2apps_8php.html#a1b2e737f477a2e0d9d11ef14adc5aa66">app_render()</a>, <a class="el" href="appman_8php.html#af48805ac2f6f123f2681a8ae1c6f123f">appman_content()</a>, <a class="el" href="mod_2apps_8php.html#a546016cb960d0b110ee8e489dfa6c27c">apps_content()</a>, <a class="el" href="view_2theme_2apw_2php_2config_8php.html#ad59fc09da66b66267f9753c8b2dd68d0">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="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="diaspora_8php.html#af4698b165766f83d89ec1ea964bc92cc">diaspora_send_followup()</a>, <a class="el" href="diaspora_8php.html#ae6f52efd81fe515cd9912bc8293abf5b">diaspora_send_images()</a>, <a class="el" href="diaspora_8php.html#aeb2bb78f620dbf51d9335e6eb7444f2c">diaspora_send_mail()</a>, <a class="el" href="diaspora_8php.html#a0b3628a5e53332c3d3196b689fe2b94d">diaspora_send_relay()</a>, <a class="el" href="diaspora_8php.html#a1704748aa2384c73e43f10e71defd31a">diaspora_send_retraction()</a>, <a class="el" href="diaspora_8php.html#a33ae0c4606a7df4d801c05507d87f668">diaspora_send_status()</a>, <a class="el" href="diaspora_8php.html#af3a7f9879c14fec761dcc5563fb39bac">diaspora_share()</a>, <a class="el" href="diaspora_8php.html#aa4b1cc0bca5c3fe8d11557685e0238a9">diaspora_unshare()</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="classRedBrowser.html#a1f7daf50bb9bfcde7345b3b1908dbd7e">RedBrowser\generateDirectoryIndex()</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="classRedBrowser.html#a7f6bf0bda07833f4c647557bd172e349">RedBrowser\htmlActionsPanel()</a>, <a class="el" href="identity_8php.html#a2ab5172eabd375869060c9ad68323f5c">identity_selector()</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#a03a5deed3908543581c074ce333e9d6a">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#a39d547771c5f12a17c097436c82f0fa2">pagelist_widget()</a>, <a class="el" href="pdledit_8php.html#a59cb550f6b7a4e7d8196fbc9de601619">pdledit_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="poco_8php.html#a53def16f75e3d41f1d2bb7cfa4905498">poco_init()</a>, <a class="el" href="poke_8php.html#ac9190563a8da9c07a16f9dcd71cf6993">poke_content()</a>, <a class="el" href="poll_8php.html#a3314c26bd2ac0ed831cebf3315cd3263">poll_content()</a>, <a class="el" href="acl__selectors_8php.html#ad25bba63a51a2b0b5b463efae50df528">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="rbmark_8php.html#a43fec4960b50926251574762cc491f76">rbmark_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="removeaccount_8php.html#a516e7380b9e5796054aa8245f3509695">removeaccount_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#aced5cb177f630b30799c5eab873ee75c">widget_appselect()</a>, <a class="el" href="widgets_8php.html#a7b1e357b5a2027718470b77ec921fc65">widget_archive()</a>, <a class="el" href="widgets_8php.html#a0e2f5179ed1a73b282dfda7270fcabb3">widget_bookmarkedchats()</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#a50b1410238100c8a94c06b0aa63ee3b8">widget_suggestedchats()</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>
+<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#ad6f87a764fd35f522c7b4c351d7878ec">admin_page_channels()</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#a3deba594ca1e11694eac1de0b724ef0a">admin_page_profs()</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="include_2apps_8php.html#a1b2e737f477a2e0d9d11ef14adc5aa66">app_render()</a>, <a class="el" href="appman_8php.html#af48805ac2f6f123f2681a8ae1c6f123f">appman_content()</a>, <a class="el" href="mod_2apps_8php.html#a546016cb960d0b110ee8e489dfa6c27c">apps_content()</a>, <a class="el" href="view_2theme_2apw_2php_2config_8php.html#ad59fc09da66b66267f9753c8b2dd68d0">apw_form()</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="contact__widgets_8php.html#a165eb021e61c4dcab2a552f28628d353">categories_widget()</a>, <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="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="diaspora_8php.html#af4698b165766f83d89ec1ea964bc92cc">diaspora_send_followup()</a>, <a class="el" href="diaspora_8php.html#ae6f52efd81fe515cd9912bc8293abf5b">diaspora_send_images()</a>, <a class="el" href="diaspora_8php.html#aeb2bb78f620dbf51d9335e6eb7444f2c">diaspora_send_mail()</a>, <a class="el" href="diaspora_8php.html#a0b3628a5e53332c3d3196b689fe2b94d">diaspora_send_relay()</a>, <a class="el" href="diaspora_8php.html#a1704748aa2384c73e43f10e71defd31a">diaspora_send_retraction()</a>, <a class="el" href="diaspora_8php.html#a33ae0c4606a7df4d801c05507d87f668">diaspora_send_status()</a>, <a class="el" href="diaspora_8php.html#a69f250b078a46e405647428ec3399a16">diaspora_share()</a>, <a class="el" href="diaspora_8php.html#ab736d6f32b5de31c97cb579fc730e200">diaspora_unshare()</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="text_8php.html#a3054189cff173977f4216c9a3dd29e1b">format_categories()</a>, <a class="el" href="text_8php.html#a4e4d42b0a805148d9f9a92bcac89bf91">format_filer()</a>, <a class="el" href="classRedMatrix_1_1RedDAV_1_1RedBrowser.html#af764d5f14df751f9ec86c34fab300c09">RedMatrix\RedDAV\RedBrowser\generateDirectoryIndex()</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="home_8php.html#a6e3dbf78f4ed74ab2577de221190b33f">home_content()</a>, <a class="el" href="hostxrd_8php.html#aa37ffc8e7900bc76c4828bd25916db92">hostxrd_init()</a>, <a class="el" href="classRedMatrix_1_1RedDAV_1_1RedBrowser.html#a3bd98af2d1cdfd8f26deb914596176cf">RedMatrix\RedDAV\RedBrowser\htmlActionsPanel()</a>, <a class="el" href="identity_8php.html#a2ab5172eabd375869060c9ad68323f5c">identity_selector()</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="locs_8php.html#a6c900f53970c0d0e738d2fe06d27ca44">locs_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#a03a5deed3908543581c074ce333e9d6a">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="p_8php.html#af9d5530ca0b3dc9409cf591c39e2480e">p_init()</a>, <a class="el" href="page__widgets_8php.html#a39d547771c5f12a17c097436c82f0fa2">pagelist_widget()</a>, <a class="el" href="pdledit_8php.html#a59cb550f6b7a4e7d8196fbc9de601619">pdledit_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="poco_8php.html#a53def16f75e3d41f1d2bb7cfa4905498">poco_init()</a>, <a class="el" href="poke_8php.html#ac9190563a8da9c07a16f9dcd71cf6993">poke_content()</a>, <a class="el" href="poll_8php.html#a3314c26bd2ac0ed831cebf3315cd3263">poll_content()</a>, <a class="el" href="acl__selectors_8php.html#ad25bba63a51a2b0b5b463efae50df528">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="rbmark_8php.html#a43fec4960b50926251574762cc491f76">rbmark_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="removeaccount_8php.html#a516e7380b9e5796054aa8245f3509695">removeaccount_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="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="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="uexport_8php.html#ae6f79d60916c01675c8cf663cb5fec84">uexport_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#aced5cb177f630b30799c5eab873ee75c">widget_appselect()</a>, <a class="el" href="widgets_8php.html#a7b1e357b5a2027718470b77ec921fc65">widget_archive()</a>, <a class="el" href="widgets_8php.html#a0e2f5179ed1a73b282dfda7270fcabb3">widget_bookmarkedchats()</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#a50b1410238100c8a94c06b0aa63ee3b8">widget_suggestedchats()</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>
@@ -716,8 +716,6 @@ Functions</h2></td></tr>
</dl>
<dl class="section return"><dt>Returns</dt><dd>mixed|bool </dd></dl>
-<p>Referenced by <a class="el" href="blogga_2view_2theme_2blog_2theme_8php.html#aae58cc837fe56473d9f3370abfe533ae">blog_install()</a>.</p>
-
</div>
</div>
<a class="anchor" id="af9ac19004dca49adae1ac7a0d9f3b025"></a>
@@ -778,7 +776,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="pdledit_8php.html#a59cb550f6b7a4e7d8196fbc9de601619">pdledit_content()</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>, <a class="el" href="classTemplate.html#afd97b4b1e7754a550e67c0ea79159059">Template\get_markup_template()</a>, <a class="el" href="boot_8php.html#a50a6707a28c7d05d3f49eaabc7994501">load_pdl()</a>, and <a class="el" href="pdledit_8php.html#a59cb550f6b7a4e7d8196fbc9de601619">pdledit_content()</a>.</p>
</div>
</div>
@@ -877,8 +875,6 @@ Functions</h2></td></tr>
</dl>
<dl class="section return"><dt>Returns</dt><dd>mixed </dd></dl>
-<p>Referenced by <a class="el" href="blogga_2view_2theme_2blog_2theme_8php.html#a3e77dbe111f330c64a1ff6c741cd515c">blog_uninstall()</a>.</p>
-
</div>
</div>
</div><!-- contents -->
diff --git a/doc/html/post_8php.html b/doc/html/post_8php.html
index 0c0745a3a..ece06c97c 100644
--- a/doc/html/post_8php.html
+++ b/doc/html/post_8php.html
@@ -172,7 +172,7 @@ Functions</h2></td></tr>
<p>If verification is successful, a json structure is returned containing a success indicator and an array of type 'pickup'. Each pickup element contains the original notify request and a message field whose contents are dependent on the message type</p>
<p>This JSON array is AES encapsulated using the site public key of the site that sent the initial zot pickup packet. Using the above example, this would be example.com.</p>
<p>{ "success":1, "pickup":{ "notify":{ "type":"notify", "sender":{ "guid":"kgVFf_...", "guid_sig":"PT9-TApz...", "url":"http:\/\/z.podunk.edu", "url_sig":"T8Bp7j5D..." }, "callback":"\/post", "version":1, "secret":"1eaa661..." }, "message":{ "type":"activity", "message_id":"10b049ce384cbb2da9467319bc98169ab36290b8bbb403aa0c0accd9cb072e76@podunk.edu", "message_top":"10b049ce384cbb2da9467319bc98169ab36290b8bbb403aa0c0accd9cb072e76@podunk.edu", "message_parent":"10b049ce384cbb2da9467319bc98169ab36290b8bbb403aa0c0accd9cb072e76@podunk.edu", "created":"2012-11-20 04:04:16", "edited":"2012-11-20 04:04:16", "title":"", "body":"Hi Nickordo", "app":"", "verb":"post", "object_type":"", "target_type":"", "permalink":"", "location":"", "longlat":"", "owner":{ "name":"Indigo", "address":"indigo@podunk.edu", "url":"http:\/\/podunk.edu", "photo":{ "mimetype":"image\/jpeg", "src":"http:\/\/podunk.edu\/photo\/profile\/m\/5" }, "guid":"kgVFf_...", "guid_sig":"PT9-TAp...", }, "author":{ "name":"Indigo", "address":"indigo@podunk.edu", "url":"http:\/\/podunk.edu", "photo":{ "mimetype":"image\/jpeg", "src":"http:\/\/podunk.edu\/photo\/profile\/m\/5" }, "guid":"kgVFf_...", "guid_sig":"PT9-TAp..." } } } }</p>
-<p>Currently defined message types are 'activity', 'mail', 'profile' and 'channel_sync', which each have different content schemas.</p>
+<p>Currently defined message types are 'activity', 'mail', 'profile', 'location' and 'channel_sync', which each have different content schemas.</p>
<p>Ping packet: A ping packet does not require any parameters except the type. It may or may not be encrypted.</p>
<p>{ "type": "ping" }</p>
<p>On receipt of a ping packet a ping response will be returned:</p>
diff --git a/doc/html/redable_8php.html b/doc/html/redable_8php.html
index 11a11e977..549b7af78 100644
--- a/doc/html/redable_8php.html
+++ b/doc/html/redable_8php.html
@@ -112,7 +112,7 @@ $(document).ready(function(){initNavTree('redable_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:a3987f5547ceb7e36a210a66a06241a5a"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="redable_8php.html#a3987f5547ceb7e36a210a66a06241a5a">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; header &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="memitem:a3987f5547ceb7e36a210a66a06241a5a"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="redable_8php.html#a3987f5547ceb7e36a210a66a06241a5a">if</a> (<a class="el" href="boot_8php.html#ae97836b0547953be182a2334c9c91d3c">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; header &gt;&lt;?php if(<a class="el" href="boot_8php.html#ae97836b0547953be182a2334c9c91d3c">x</a>($<a class="el" href="mod__import_8php.html#a8db1899eeeb44dabd0904065b63627bb">page</a></td></tr>
<tr class="separator:a3987f5547ceb7e36a210a66a06241a5a"><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__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; header &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>
+ <td class="memname">if(<a class="el" href="boot_8php.html#ae97836b0547953be182a2334c9c91d3c">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; header &gt;&lt;?php if(<a class="el" href="boot_8php.html#ae97836b0547953be182a2334c9c91d3c">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/redbasic_2php_2theme_8php.html b/doc/html/redbasic_2php_2theme_8php.html
index c71a95829..905d26738 100644
--- a/doc/html/redbasic_2php_2theme_8php.html
+++ b/doc/html/redbasic_2php_2theme_8php.html
@@ -131,7 +131,7 @@ Functions</h2></td></tr>
</div><div class="memdoc">
<ul>
<li>Name: Redbasic</li>
-<li>Description: RedMatrix standard theme</li>
+<li>Description: <a class="el" href="namespaceRedMatrix.html" title="Class Import.">RedMatrix</a> standard theme</li>
<li>Version: 1.0</li>
<li>Author: Fabrixxm</li>
<li>Maintainer: Mike Macgirvin</li>
diff --git a/doc/html/reddav_8php.html b/doc/html/reddav_8php.html
index e0cff75df..d27cb2190 100644
--- a/doc/html/reddav_8php.html
+++ b/doc/html/reddav_8php.html
@@ -104,28 +104,15 @@ $(document).ready(function(){initNavTree('reddav_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">reddav.php File Reference</div> </div>
</div><!--header-->
<div class="contents">
-<p>DAV related classes from SabreDAV for Red Matrix.
+<p>some DAV related functions for <a class="el" href="namespaceRedMatrix.html" title="Class Import.">RedMatrix</a>.
<a href="#details">More...</a></p>
<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="classRedDirectory.html">RedDirectory</a></td></tr>
-<tr class="memdesc:"><td class="mdescLeft">&#160;</td><td class="mdescRight"><a class="el" href="classRedDirectory.html" title="RedDirectory class.">RedDirectory</a> class. <a href="classRedDirectory.html#details">More...</a><br/></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>
@@ -139,9 +126,11 @@ Functions</h2></td></tr>
<tr class="separator:a9f531641dfb4e43cd88ac1a9ae7e2088"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table>
<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
-<div class="textblock"><p>DAV related classes from SabreDAV for Red Matrix. </p>
-<p>This file contains the classes from SabreDAV that got extended to adapt it for Red Matrix.</p>
-<p>You find the original SabreDAV classes under vendor/sabre/dav/. We need to use SabreDAV 1.8.x for PHP5.3 compatibility. SabreDAV &gt;= 2.0 requires PHP &gt;= 5.4. </p>
+<div class="textblock"><p>some DAV related functions for <a class="el" href="namespaceRedMatrix.html" title="Class Import.">RedMatrix</a>. </p>
+<p>This file contains some functions which did not fit into one of the RedDAV classes.</p>
+<p>The extended SabreDAV classes you will find in the RedDAV namespace under includes/RedDAV/. The original SabreDAV classes you can find under vendor/sabre/dav/. We need to use SabreDAV 1.8.x for PHP5.3 compatibility. SabreDAV &gt;= 2.0 requires PHP &gt;= 5.4.</p>
+<dl class="todo"><dt><b><a class="el" href="todo.html#_todo000008">Todo:</a></b></dt><dd>split up the classes into own files.</dd></dl>
+<p><a class="el" href=""><a href="http://opensource.org/licenses/mit-license.php">http://opensource.org/licenses/mit-license.php</a> The MIT License (MIT) </a></p>
</div><h2 class="groupheader">Function Documentation</h2>
<a class="anchor" id="ae92ea0df1993f6a7bcd1b6efa6c1fb66"></a>
<div class="memitem">
@@ -158,15 +147,15 @@ Functions</h2></td></tr>
</div><div class="memdoc">
<p>Returns an array with viewable channels. </p>
-<p>Get a list of <a class="el" href="classRedDirectory.html" title="RedDirectory class.">RedDirectory</a> objects with all the channels where the visitor has <b>view_storage</b> perms.</p>
-<dl class="todo"><dt><b><a class="el" href="todo.html#_todo000001">Todo:</a></b></dt><dd>Is there any reason why this is not inside <a class="el" href="classRedDirectory.html" title="RedDirectory class.">RedDirectory</a> class?</dd></dl>
+<p>Get a list of RedDirectory objects with all the channels where the visitor has <b>view_storage</b> perms.</p>
+<dl class="todo"><dt><b><a class="el" href="todo.html#_todo000009">Todo:</a></b></dt><dd>Is there any reason why this is not inside RedDirectory class? function name looks like a class name, should we rename it?</dd></dl>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
- <tr><td class="paramname">$auth</td><td></td></tr>
+ <tr><td class="paramtype">RedBasicAuth</td><td class="paramname">&amp;$auth</td><td></td></tr>
</table>
</dd>
</dl>
-<dl class="section return"><dt>Returns</dt><dd>array containing <a class="el" href="classRedDirectory.html" title="RedDirectory class.">RedDirectory</a> objects </dd></dl>
+<dl class="section return"><dt>Returns</dt><dd>array RedDirectory[] </dd></dl>
<p>Referenced by <a class="el" href="reddav_8php.html#a5df0d09893f2e65dc5cf6bbab6cfb266">RedCollectionData()</a>.</p>
@@ -197,18 +186,25 @@ Functions</h2></td></tr>
</div><div class="memdoc">
<p>TODO what exactly does this function? </p>
-<p>Array with all <a class="el" href="classRedDirectory.html" title="RedDirectory class.">RedDirectory</a> and <a class="el" href="classRedFile.html">RedFile</a> DAV items for the given path.</p>
-<dl class="todo"><dt><b><a class="el" href="todo.html#_todo000002">Todo:</a></b></dt><dd>Is there any reason why this is not inside <a class="el" href="classRedDirectory.html" title="RedDirectory class.">RedDirectory</a> class? Seems only to be used there and we could simplify it a bit there.</dd></dl>
+<p>Array with all RedDirectory and RedFile DAV items for the given path.</p>
+<dl class="todo"><dt><b><a class="el" href="todo.html#_todo000010">Todo:</a></b></dt><dd>Is there any reason why this is not inside RedDirectory class? Seems only to be used there and we could simplify it a bit there. function name looks like a class name, should we rename it?</dd></dl>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramtype">string</td><td class="paramname">$file</td><td>path to a directory </td></tr>
- <tr><td class="paramtype"></td><td class="paramname">&amp;$auth</td><td></td></tr>
+ <tr><td class="paramtype">RedBasicAuth</td><td class="paramname">&amp;$auth</td><td></td></tr>
+ </table>
+ </dd>
+</dl>
+<dl class="section return"><dt>Returns</dt><dd>null|array [] </dd></dl>
+<dl class="exception"><dt>Exceptions</dt><dd>
+ <table class="exception">
+ <tr><td class="paramname">\Sabre\DAV\Exception\Forbidden</td><td></td></tr>
+ <tr><td class="paramname">\Sabre\DAV\Exception\NotFound</td><td></td></tr>
</table>
</dd>
</dl>
-<dl class="section return"><dt>Returns</dt><dd>array DAV[] </dd></dl>
-<p>Referenced by <a class="el" href="classRedDirectory.html#aa42d3065f6f065b17db87146a7cb031a">RedDirectory\getChildren()</a>.</p>
+<p>Referenced by <a class="el" href="classRedMatrix_1_1RedDAV_1_1RedDirectory.html#a9b9a0b5bfa4de1f78e6cafaa534b6f6a">RedMatrix\RedDAV\RedDirectory\getChildren()</a>.</p>
</div>
</div>
@@ -243,16 +239,24 @@ Functions</h2></td></tr>
</div><div class="memdoc">
<p>TODO What exactly is this function for? </p>
+<p>function name looks like a class name, should we rename it?</p>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
- <tr><td class="paramtype">string</td><td class="paramname">$file</td><td></td></tr>
- <tr><td class="paramtype"></td><td class="paramname">&amp;$auth</td><td></td></tr>
+ <tr><td class="paramtype">string</td><td class="paramname">$file</td><td>path to file or directory </td></tr>
+ <tr><td class="paramtype">RedBasicAuth</td><td class="paramname">&amp;$auth</td><td></td></tr>
<tr><td class="paramtype">boolean</td><td class="paramname">$test</td><td>(optional) enable test mode </td></tr>
</table>
</dd>
</dl>
+<dl class="section return"><dt>Returns</dt><dd>RedFile|RedDirectory|boolean|null </dd></dl>
+<dl class="exception"><dt>Exceptions</dt><dd>
+ <table class="exception">
+ <tr><td class="paramname">\Sabre\DAV\Exception\Forbidden</td><td></td></tr>
+ </table>
+ </dd>
+</dl>
-<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>
+<p>Referenced by <a class="el" href="classRedMatrix_1_1RedDAV_1_1RedDirectory.html#a964b13fde1a5da6f76b51ca5519234dc">RedMatrix\RedDAV\RedDirectory\childExists()</a>, <a class="el" href="cloud_8php.html#ad2e96e917852f27dedfc263d37e13756">cloud_init()</a>, and <a class="el" href="classRedMatrix_1_1RedDAV_1_1RedDirectory.html#a1a37850bdd1f188abd6160559698d5d7">RedMatrix\RedDAV\RedDirectory\getChild()</a>.</p>
</div>
</div>
diff --git a/doc/html/reddav_8php.js b/doc/html/reddav_8php.js
index 3e2dd2ffe..02eaf1811 100644
--- a/doc/html/reddav_8php.js
+++ b/doc/html/reddav_8php.js
@@ -1,9 +1,5 @@
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 ]
diff --git a/doc/html/refimport_8php.html b/doc/html/refimport_8php.html
new file mode 100644
index 000000000..26dc98a08
--- /dev/null
+++ b/doc/html/refimport_8php.html
@@ -0,0 +1,381 @@
+<!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/Import/refimport.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('refimport_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> &#124;
+<a href="#var-members">Variables</a> </div>
+ <div class="headertitle">
+<div class="title">refimport.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:a6c3e0475fde9fe72ff2492a5e3e5259c"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="refimport_8php.html#a6c3e0475fde9fe72ff2492a5e3e5259c">reflect_get_channel</a> ()</td></tr>
+<tr class="separator:a6c3e0475fde9fe72ff2492a5e3e5259c"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ad97ebb5feda0230a4834e0b3637a0d29"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="refimport_8php.html#ad97ebb5feda0230a4834e0b3637a0d29">refimport_content</a> (&amp;$a)</td></tr>
+<tr class="separator:ad97ebb5feda0230a4834e0b3637a0d29"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a53434bc19e6264db89e18d92ddc09860"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="refimport_8php.html#a53434bc19e6264db89e18d92ddc09860">reflect_article_callback</a> ($matches)</td></tr>
+<tr class="separator:a53434bc19e6264db89e18d92ddc09860"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ae9c56f779d1e0ac7bcb2a460129e7ae5"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="refimport_8php.html#ae9c56f779d1e0ac7bcb2a460129e7ae5">reflect_photo_callback</a> ($matches)</td></tr>
+<tr class="separator:ae9c56f779d1e0ac7bcb2a460129e7ae5"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:aa98de7d112e3a5b4b6956f108d04a41d"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="refimport_8php.html#aa98de7d112e3a5b4b6956f108d04a41d">reflect_find_user</a> ($users, $name)</td></tr>
+<tr class="separator:aa98de7d112e3a5b4b6956f108d04a41d"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a01a29630fa5e1ce6cd5e1fd75280747c"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="refimport_8php.html#a01a29630fa5e1ce6cd5e1fd75280747c">reflect_comment_store</a> ($channel, $post, $comment, $user)</td></tr>
+<tr class="separator:a01a29630fa5e1ce6cd5e1fd75280747c"><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:a54003135d7c8994a76e831fb6faa2fe6"><td class="memItemLeft" align="right" valign="top">const&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="refimport_8php.html#a54003135d7c8994a76e831fb6faa2fe6">REDMATRIX_IMPORTCHANNEL</a> 'mike'</td></tr>
+<tr class="separator:a54003135d7c8994a76e831fb6faa2fe6"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ad297afe0730c9119dd94d3cf0521b025"><td class="memItemLeft" align="right" valign="top">const&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="refimport_8php.html#ad297afe0730c9119dd94d3cf0521b025">REFLECT_EXPORTUSERNAME</a> 'mike'</td></tr>
+<tr class="separator:ad297afe0730c9119dd94d3cf0521b025"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a8459983ebf013ed5737f7ed317bfae1f"><td class="memItemLeft" align="right" valign="top">const&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="refimport_8php.html#a8459983ebf013ed5737f7ed317bfae1f">REFLECT_BLOGNAME</a> 'Diary and Other Rantings'</td></tr>
+<tr class="separator:a8459983ebf013ed5737f7ed317bfae1f"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ac43699d8ae86175e049aa4e87853caac"><td class="memItemLeft" align="right" valign="top">const&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="refimport_8php.html#ac43699d8ae86175e049aa4e87853caac">REFLECT_BASEURL</a> 'http://example.com/'</td></tr>
+<tr class="separator:ac43699d8ae86175e049aa4e87853caac"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a684a44d2401abf75f441591bcb41d10d"><td class="memItemLeft" align="right" valign="top">const&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="refimport_8php.html#a684a44d2401abf75f441591bcb41d10d">REFLECT_USERFILE</a> 'user.json'</td></tr>
+<tr class="separator:a684a44d2401abf75f441591bcb41d10d"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:aeec793cefa260f788b7d005adcb35796"><td class="memItemLeft" align="right" valign="top">const&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="refimport_8php.html#aeec793cefa260f788b7d005adcb35796">REFLECT_OVERWRITE</a> false</td></tr>
+<tr class="separator:aeec793cefa260f788b7d005adcb35796"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a9c1f681f1f303400a9818696a9f96d6f"><td class="memItemLeft" align="right" valign="top">const&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="refimport_8php.html#a9c1f681f1f303400a9818696a9f96d6f">REFLECT_MAXPERRUN</a> 30</td></tr>
+<tr class="separator:a9c1f681f1f303400a9818696a9f96d6f"><td class="memSeparator" colspan="2">&#160;</td></tr>
+</table>
+<h2 class="groupheader">Function Documentation</h2>
+<a class="anchor" id="ad97ebb5feda0230a4834e0b3637a0d29"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">refimport_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="a53434bc19e6264db89e18d92ddc09860"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">reflect_article_callback </td>
+ <td>(</td>
+ <td class="paramtype">&#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="a01a29630fa5e1ce6cd5e1fd75280747c"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">reflect_comment_store </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</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">&#160;</td>
+ <td class="paramname"><em>$comment</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">&#160;</td>
+ <td class="paramname"><em>$user</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="refimport_8php.html#ad97ebb5feda0230a4834e0b3637a0d29">refimport_content()</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="aa98de7d112e3a5b4b6956f108d04a41d"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">reflect_find_user </td>
+ <td>(</td>
+ <td class="paramtype">&#160;</td>
+ <td class="paramname"><em>$users</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">&#160;</td>
+ <td class="paramname"><em>$name</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="refimport_8php.html#ad97ebb5feda0230a4834e0b3637a0d29">refimport_content()</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="a6c3e0475fde9fe72ff2492a5e3e5259c"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">reflect_get_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="refimport_8php.html#ad97ebb5feda0230a4834e0b3637a0d29">refimport_content()</a>, and <a class="el" href="refimport_8php.html#ae9c56f779d1e0ac7bcb2a460129e7ae5">reflect_photo_callback()</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="ae9c56f779d1e0ac7bcb2a460129e7ae5"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">reflect_photo_callback </td>
+ <td>(</td>
+ <td class="paramtype">&#160;</td>
+ <td class="paramname"><em>$matches</em></td><td>)</td>
+ <td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+</div>
+</div>
+<h2 class="groupheader">Variable Documentation</h2>
+<a class="anchor" id="a54003135d7c8994a76e831fb6faa2fe6"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">const REDMATRIX_IMPORTCHANNEL 'mike'</td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Referenced by <a class="el" href="refimport_8php.html#a6c3e0475fde9fe72ff2492a5e3e5259c">reflect_get_channel()</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="ac43699d8ae86175e049aa4e87853caac"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">const REFLECT_BASEURL 'http://example.com/'</td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Referenced by <a class="el" href="refimport_8php.html#a01a29630fa5e1ce6cd5e1fd75280747c">reflect_comment_store()</a>, and <a class="el" href="refimport_8php.html#ae9c56f779d1e0ac7bcb2a460129e7ae5">reflect_photo_callback()</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="a8459983ebf013ed5737f7ed317bfae1f"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">const REFLECT_BLOGNAME 'Diary and Other Rantings'</td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Referenced by <a class="el" href="refimport_8php.html#ad97ebb5feda0230a4834e0b3637a0d29">refimport_content()</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="ad297afe0730c9119dd94d3cf0521b025"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">const REFLECT_EXPORTUSERNAME 'mike'</td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Referenced by <a class="el" href="refimport_8php.html#a01a29630fa5e1ce6cd5e1fd75280747c">reflect_comment_store()</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="a9c1f681f1f303400a9818696a9f96d6f"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">const REFLECT_MAXPERRUN 30</td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Referenced by <a class="el" href="refimport_8php.html#ad97ebb5feda0230a4834e0b3637a0d29">refimport_content()</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="aeec793cefa260f788b7d005adcb35796"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">const REFLECT_OVERWRITE false</td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Referenced by <a class="el" href="refimport_8php.html#ad97ebb5feda0230a4834e0b3637a0d29">refimport_content()</a>, and <a class="el" href="refimport_8php.html#a01a29630fa5e1ce6cd5e1fd75280747c">reflect_comment_store()</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="a684a44d2401abf75f441591bcb41d10d"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">const REFLECT_USERFILE 'user.json'</td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Referenced by <a class="el" href="refimport_8php.html#ad97ebb5feda0230a4834e0b3637a0d29">refimport_content()</a>.</p>
+
+</div>
+</div>
+</div><!-- contents -->
+</div><!-- doc-content -->
+
diff --git a/doc/html/refimport_8php.js b/doc/html/refimport_8php.js
new file mode 100644
index 000000000..f0b97cbee
--- /dev/null
+++ b/doc/html/refimport_8php.js
@@ -0,0 +1,16 @@
+var refimport_8php =
+[
+ [ "refimport_content", "refimport_8php.html#ad97ebb5feda0230a4834e0b3637a0d29", null ],
+ [ "reflect_article_callback", "refimport_8php.html#a53434bc19e6264db89e18d92ddc09860", null ],
+ [ "reflect_comment_store", "refimport_8php.html#a01a29630fa5e1ce6cd5e1fd75280747c", null ],
+ [ "reflect_find_user", "refimport_8php.html#aa98de7d112e3a5b4b6956f108d04a41d", null ],
+ [ "reflect_get_channel", "refimport_8php.html#a6c3e0475fde9fe72ff2492a5e3e5259c", null ],
+ [ "reflect_photo_callback", "refimport_8php.html#ae9c56f779d1e0ac7bcb2a460129e7ae5", null ],
+ [ "REDMATRIX_IMPORTCHANNEL", "refimport_8php.html#a54003135d7c8994a76e831fb6faa2fe6", null ],
+ [ "REFLECT_BASEURL", "refimport_8php.html#ac43699d8ae86175e049aa4e87853caac", null ],
+ [ "REFLECT_BLOGNAME", "refimport_8php.html#a8459983ebf013ed5737f7ed317bfae1f", null ],
+ [ "REFLECT_EXPORTUSERNAME", "refimport_8php.html#ad297afe0730c9119dd94d3cf0521b025", null ],
+ [ "REFLECT_MAXPERRUN", "refimport_8php.html#a9c1f681f1f303400a9818696a9f96d6f", null ],
+ [ "REFLECT_OVERWRITE", "refimport_8php.html#aeec793cefa260f788b7d005adcb35796", null ],
+ [ "REFLECT_USERFILE", "refimport_8php.html#a684a44d2401abf75f441591bcb41d10d", null ]
+]; \ No newline at end of file
diff --git a/doc/html/search/all_24.js b/doc/html/search/all_24.js
index 2409f73b0..9ad473a4f 100644
--- a/doc/html/search/all_24.js
+++ b/doc/html/search/all_24.js
@@ -9,18 +9,15 @@ 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']]],
- ['_24auth',['$auth',['../classRedDirectory.html#a9616af16cd19a18a6afebebcc2881c44',1,'RedDirectory\$auth()'],['../classRedFile.html#a4b5d0e33f919c6c175b30a55de6263f2',1,'RedFile\$auth()'],['../classRedBrowser.html#ab6d6d1e2a67e06b344a4cede1bd00b35',1,'RedBrowser\$auth()']]],
+ ['_24auth',['$auth',['../classRedMatrix_1_1RedDAV_1_1RedBrowser.html#ad19179bf4ac7f18fafa7e2e3df800142',1,'RedMatrix\RedDAV\RedBrowser\$auth()'],['../classRedMatrix_1_1RedDAV_1_1RedDirectory.html#aab6907e7fb7f9f7227f9cd42bdc84eb9',1,'RedMatrix\RedDAV\RedDirectory\$auth()'],['../classRedMatrix_1_1RedDAV_1_1RedFile.html#a21b6e9d420c352f25610a33f57858215',1,'RedMatrix\RedDAV\RedFile\$auth()']]],
['_24baseurl',['$baseurl',['../classApp.html#ad5175536561021548ae8188e24c7b80c',1,'App']]],
- ['_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']]],
+ ['_24browser',['$browser',['../classRedMatrix_1_1RedDAV_1_1RedBasicAuth.html#a167ae032bd2ad8e6caa2e1e1a6f1b5d3',1,'RedMatrix::RedDAV::RedBasicAuth']]],
['_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'],['../theme_2apw_2php_2theme__init_8php.html#a54f32c086fe209c99769a4c4047dd864',1,'$channel():&#160;theme_init.php']]],
- ['_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']]],
+ ['_24channel_5fhash',['$channel_hash',['../classRedMatrix_1_1RedDAV_1_1RedBasicAuth.html#a112ad78a863dc0e598b5f02c596798c0',1,'RedMatrix::RedDAV::RedBasicAuth']]],
+ ['_24channel_5fid',['$channel_id',['../classRedMatrix_1_1RedDAV_1_1RedBasicAuth.html#abe1defedb90ac8e3b6487e124e625521',1,'RedMatrix::RedDAV::RedBasicAuth']]],
+ ['_24channel_5fname',['$channel_name',['../classRedMatrix_1_1RedDAV_1_1RedBasicAuth.html#a76fdb7fd5dd7376155abb5a58cd6fd69',1,'RedMatrix::RedDAV::RedBasicAuth']]],
['_24children',['$children',['../classItem.html#a80dcd0fb7673776c0967839d429c2a0f',1,'Item']]],
['_24cid',['$cid',['../classApp.html#ad1c8eb91a6fd470b94f34b7fdad3a2d0',1,'App']]],
['_24cipher',['$cipher',['../classConversation.html#aa95c1a62af38bdfba7add9549bec083b',1,'Conversation']]],
@@ -33,31 +30,29 @@ var searchData=
['_24contacts',['$contacts',['../classApp.html#a61ca6e3af82071ea25ff2fd5dbcddae2',1,'App']]],
['_24content',['$content',['../classApp.html#ac1d80a14492acc932715d54567d8a589',1,'App']]],
['_24conversation',['$conversation',['../classItem.html#a007424e3e3171dcfb4312a02161da6cd',1,'Item']]],
+ ['_24credentials',['$credentials',['../classRedMatrix_1_1Import_1_1Import.html#a864aac9fadb4846f5d9f840e8e0f440f',1,'RedMatrix::Import::Import']]],
['_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']]],
['_24d',['$d',['../classTemplate.html#a8469ab2988b6be2681516dc4b4e07d38',1,'Template']]],
- ['_24data',['$data',['../classApp.html#a0ce85be198e46570366cb3344f3c55b8',1,'App\$data()'],['../classItem.html#aec24e233f9098f902b1e57e60dcb2019',1,'Item\$data()'],['../classRedFile.html#a2ff12032b45538353eded9809d3b7550',1,'RedFile\$data()']]],
- ['_24db',['$db',['../classApp.html#a330410a288f3393d53772f5e98f857ea',1,'App\$db()'],['../classdba__driver.html#a3033b5f1c2716b52202faeaae2592fe6',1,'dba_driver\$db()']]],
+ ['_24data',['$data',['../classApp.html#a0ce85be198e46570366cb3344f3c55b8',1,'App\$data()'],['../classItem.html#aec24e233f9098f902b1e57e60dcb2019',1,'Item\$data()'],['../classRedMatrix_1_1RedDAV_1_1RedFile.html#a235700e2dfbe21dc41613d36e30e8acc',1,'RedMatrix\RedDAV\RedFile\$data()']]],
+ ['_24db',['$db',['../classdba__driver.html#a3033b5f1c2716b52202faeaae2592fe6',1,'dba_driver']]],
['_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']]],
['_24directory_5ffallback_5fservers',['$DIRECTORY_FALLBACK_SERVERS',['../boot_8php.html#a107d53f96acf5319905a34b1870db09a',1,'boot.php']]],
['_24dirs',['$dirs',['../typo_8php.html#a1b709c1d79631ebc8320b41bda028b54',1,'typo.php']]],
['_24dirstack',['$dirstack',['../docblox__errorchecker_8php.html#ab66bc0493d25f39bf8b4dcbb429f04e6',1,'docblox_errorchecker.php']]],
+ ['_24display_5fmode',['$display_mode',['../classItem.html#a88a99e2d1245925867f249f543358e72',1,'Item']]],
['_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']]],
+ ['_24ext_5fpath',['$ext_path',['../classRedMatrix_1_1RedDAV_1_1RedDirectory.html#adf8735b3118cdf2f42416edaf42b82e9',1,'RedMatrix::RedDAV::RedDirectory']]],
['_24fext',['$fext',['../apw_2php_2style_8php.html#a404171b8f918c116e45a6421c92f0cc9',1,'style.php']]],
['_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']]],
['_24fname',['$fname',['../apw_2php_2style_8php.html#ab9e0f70d44ab67f4334f9883631777fc',1,'style.php']]],
- ['_24folder_5fhash',['$folder_hash',['../classRedDirectory.html#aa10254abf177bb2a0e4a88495725e09b',1,'RedDirectory']]],
+ ['_24folder_5fhash',['$folder_hash',['../classRedMatrix_1_1RedDAV_1_1RedDirectory.html#a2fc4e6b9be2108bbaa1ca1a03fd6d44e',1,'RedMatrix::RedDAV::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']]],
- ['_24headimg',['$headimg',['../theme_2blogga_2php_2default_8php.html#ac7062908d1eb80c0735270f7997c4527',1,'$headimg():&#160;default.php'],['../theme_2blogga_2view_2theme_2blog_2default_8php.html#a52d9dd070ed541729088395c22502539',1,'$headimg():&#160;default.php']]],
- ['_24headimghome',['$headimghome',['../theme_2blogga_2php_2default_8php.html#a1230ab83d4ec9785d8f3a966f33dc5f3',1,'$headimghome():&#160;default.php'],['../theme_2blogga_2view_2theme_2blog_2default_8php.html#a1230ab83d4ec9785d8f3a966f33dc5f3',1,'$headimghome():&#160;default.php']]],
['_24height',['$height',['../classphoto__driver.html#aea560be5dfba09117d36c12bacbf3b80',1,'photo_driver']]],
['_24hooks',['$hooks',['../classApp.html#a3694aa1907aa103a2adbc71f926f0fa0',1,'App']]],
['_24hostname',['$hostname',['../classApp.html#a037049cba88dfc6ff94f4b5b779e3fd3',1,'App']]],
@@ -70,7 +65,10 @@ var searchData=
['_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']]],
+ ['_24is_5fsys',['$is_sys',['../classApp.html#a1f60d19d47021629faac7a0a6d917e94',1,'App']]],
['_24itemfloat',['$itemfloat',['../minimalisticdarkness_8php.html#a7e6c3d4efde4e9a2de32308081372c6b',1,'minimalisticdarkness.php']]],
+ ['_24itemlist',['$itemlist',['../classRedMatrix_1_1Import_1_1Import.html#ad0d2bdc3b388220479063915b4f5c2fc',1,'RedMatrix::Import::Import']]],
+ ['_24items',['$items',['../classRedMatrix_1_1Import_1_1Import.html#a0a05dac405ccc5b617b7b7b3c8ed783c',1,'RedMatrix::Import::Import']]],
['_24js_5fsources',['$js_sources',['../classApp.html#a11e24b3ed9b33ffee7dd41d110b4366d',1,'App']]],
['_24k',['$k',['../php2po_8php.html#ad6726cfaa85d4b8299d2b0f034cbf178',1,'php2po.php']]],
['_24lang',['$lang',['../classTemplate.html#ace26b8a4252fbc1c385d2b5e1e93e5c8',1,'Template']]],
@@ -81,19 +79,19 @@ 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',['../classRedFile.html#acc48c05cd5a70951cb3c615ad84f03ba',1,'RedFile\$name()'],['../classFriendicaSmartyEngine.html#aaba6a42101bc9ae32e36b7fa2e243f02',1,'FriendicaSmartyEngine\$name()'],['../classTemplate.html#a6eb301a51cc94d8b94f4548fbad85eae',1,'Template\$name()']]],
+ ['_24name',['$name',['../classRedMatrix_1_1RedDAV_1_1RedFile.html#ab722dcb8c4598426c81fa2b2e4fad5f2',1,'RedMatrix\RedDAV\RedFile\$name()'],['../classFriendicaSmartyEngine.html#aaba6a42101bc9ae32e36b7fa2e243f02',1,'FriendicaSmartyEngine\$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']]],
['_24navheight',['$navheight',['../apw_2php_2style_8php.html#a1c8a7c0db8c174239f3909cb931cb872',1,'style.php']]],
['_24needed',['$needed',['../docblox__errorchecker_8php.html#a852004caba0a34390297a079f4aaac73',1,'docblox_errorchecker.php']]],
['_24nodes',['$nodes',['../classTemplate.html#a8f4d17e49f42b876a97364c13fb572d1',1,'Template']]],
['_24obliquemacro',['$obliquemacro',['../apw_2php_2style_8php.html#a2cad82a3ecadbe58dbc4197de1c63da0',1,'style.php']]],
- ['_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']]],
+ ['_24observer',['$observer',['../classApp.html#a4ffe529fb14389f7fedf5fdc5f722e7f',1,'App\$observer()'],['../classConversation.html#a8748445aa26047ebed5141f3c3cbc244',1,'Conversation\$observer()'],['../classRedMatrix_1_1RedDAV_1_1RedBasicAuth.html#a605aa09565a097316b80f0d17d6b5823',1,'RedMatrix\RedDAV\RedBasicAuth\$observer()']]],
+ ['_24os_5fpath',['$os_path',['../classRedMatrix_1_1RedDAV_1_1RedDirectory.html#a17ea47e34cb76b6e79f36ebed790d76a',1,'RedMatrix::RedDAV::RedDirectory']]],
['_24out',['$out',['../php2po_8php.html#a48cb304902320d173a4eaa41543327b9',1,'php2po.php']]],
- ['_24owner_5fid',['$owner_id',['../classRedBasicAuth.html#a09c1488a0b290f5a54dc15180c5690d7',1,'RedBasicAuth']]],
+ ['_24owner_5fid',['$owner_id',['../classRedMatrix_1_1RedDAV_1_1RedBasicAuth.html#a1a23c349cc4699a8474505972684ea9c',1,'RedMatrix::RedDAV::RedBasicAuth']]],
['_24owner_5fname',['$owner_name',['../classItem.html#a9594df6014b0b6f45364ea7a34510130',1,'Item']]],
- ['_24owner_5fnick',['$owner_nick',['../classRedBasicAuth.html#a8d09b8d784cc810a0b3be580d05106a7',1,'RedBasicAuth']]],
+ ['_24owner_5fnick',['$owner_nick',['../classRedMatrix_1_1RedDAV_1_1RedBasicAuth.html#aad0ef0cc05c407de84dbfbf2050bbbbe',1,'RedMatrix::RedDAV::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']]],
@@ -103,8 +101,6 @@ var searchData=
['_24perms',['$perms',['../classApp.html#ab47de68fa39806d1fb0976407e188b77',1,'App']]],
['_24phpath',['$phpath',['../typo_8php.html#a3ecd17ac846be1b35f3662f5c12ab6bd',1,'typo.php']]],
['_24phpfile',['$phpfile',['../php2po_8php.html#abbb0e5fd8fbc1f13a9bf68f86eb3d2a4',1,'php2po.php']]],
- ['_24plugin',['$plugin',['../post__to__red_8php.html#ada8a7130088351710bb02ed622d6bf65',1,'post_to_red.php']]],
- ['_24plugin_5fdir',['$plugin_dir',['../post__to__red_8php.html#a99811555b30bde504a863e44015f2f19',1,'post_to_red.php']]],
['_24plugins',['$plugins',['../classApp.html#ae9f96338f32187d308b67b980eea0008',1,'App']]],
['_24pofile',['$pofile',['../php2po_8php.html#a401d84ce156e49e8168bd0c4781e1be1',1,'php2po.php']]],
['_24poi',['$poi',['../classApp.html#a1936f2afce0dc0d1bbed15ae1f2ee81a',1,'App']]],
@@ -114,13 +110,14 @@ var searchData=
['_24profile_5fowner',['$profile_owner',['../classConversation.html#a2f12724ef0244e9049fe1bb9641b516d',1,'Conversation']]],
['_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']]],
+ ['_24r',['$r',['../classTemplate.html#aac9a4638f11271e1b1dcc9f247242718',1,'Template\$r()'],['../fixd_8php.html#a8abe176bc41afd728f32ba8c506cbd98',1,'$r():&#160;fixd.php']]],
+ ['_24rand',['$rand',['../fixd_8php.html#a2da3681c9cce2efe7de29aa578ff4219',1,'fixd.php']]],
['_24rdelim',['$rdelim',['../classApp.html#a244b2d53b21be269aad2269d23192f95',1,'App']]],
- ['_24red_5fpath',['$red_path',['../classRedDirectory.html#acb32b8df27538c57772824a745e751d7',1,'RedDirectory']]],
+ ['_24red_5fpath',['$red_path',['../classRedMatrix_1_1RedDAV_1_1RedDirectory.html#a4bba2e56bc8ec3e05f05eae46f56f36d',1,'RedMatrix::RedDAV::RedDirectory']]],
['_24redirect_5furl',['$redirect_url',['../classItem.html#a5b561415861f5b89b0733aacfe0428d1',1,'Item']]],
['_24replace',['$replace',['../classTemplate.html#a4e86b566c3f728e95ce5db1b33665c10',1,'Template']]],
['_24res',['$res',['../docblox__errorchecker_8php.html#a49a8a4009b02e49717caa88b128affc5',1,'docblox_errorchecker.php']]],
- ['_24root_5fdir',['$root_dir',['../classRedDirectory.html#ad87c514a307ec97ba0f1372e9bcfa6a4',1,'RedDirectory']]],
+ ['_24root_5fdir',['$root_dir',['../classRedMatrix_1_1RedDAV_1_1RedDirectory.html#a438066fb1565fbcffa22c12d5ce23695',1,'RedMatrix::RedDAV::RedDirectory']]],
['_24s',['$s',['../extract_8php.html#a50b05cf2e02ef0b67fcad97106dd7634',1,'extract.php']]],
['_24scheme',['$scheme',['../classApp.html#ad082d63acc078e5bf23825a03bdd6a76',1,'App']]],
['_24search',['$search',['../classTemplate.html#a317d535946dc065c35dd5cd38380e6c6',1,'Template']]],
@@ -131,6 +128,7 @@ var searchData=
['_24session_5fexpire',['$session_expire',['../session_8php.html#af0100a2642a5268594bbd5742a03d885',1,'session.php']]],
['_24showlock',['$showlock',['../apw_2php_2style_8php.html#ad401ea1d1ba236f86863b4574f01e425',1,'style.php']]],
['_24sourcename',['$sourcename',['../classApp.html#a13710907ef62554a0b4dd8a5eaa2eb11',1,'App']]],
+ ['_24src_5fitems',['$src_items',['../classRedMatrix_1_1Import_1_1Import.html#a88c2eeba8d0cba3e7c12a2c45ba0fbc6',1,'RedMatrix::Import::Import']]],
['_24stack',['$stack',['../classTemplate.html#a6f0efc256688c36110180b501067ff11',1,'Template']]],
['_24str',['$str',['../typohelper_8php.html#a7542d95618011800c61773127fa625cf',1,'typohelper.php']]],
['_24strings',['$strings',['../classApp.html#a5f64620473a9727a48ebe9cf6f335a98',1,'App']]],
@@ -143,8 +141,9 @@ 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\$timezone()'],['../classRedBasicAuth.html#a2d0246ed446fd5e55c17938b4ce6ac47',1,'RedBasicAuth\$timezone()']]],
+ ['_24timezone',['$timezone',['../classApp.html#ab35b01a366a2ea95725e97af278f87ab',1,'App\$timezone()'],['../classRedMatrix_1_1RedDAV_1_1RedBasicAuth.html#a849c99cf0a7ad065d630c8a30106ad5e',1,'RedMatrix\RedDAV\RedBasicAuth\$timezone()']]],
['_24toplevel',['$toplevel',['../classItem.html#a5cfa6cf964f433a917a81cab079ff9d8',1,'Item']]],
+ ['_24total',['$total',['../fixd_8php.html#a241b818f48030b628685b2e5119c5624',1,'fixd.php']]],
['_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,'style.php']]],
@@ -154,7 +153,6 @@ var searchData=
['_24videowidth',['$videowidth',['../classApp.html#adf2aaf95b062736a6fd5fc70fadf80e8',1,'App']]],
['_24visiting',['$visiting',['../classItem.html#a4a123ae98987c1e30ecb15c4edf5a3b8',1,'Item']]],
['_24wall_5fto_5fwall',['$wall_to_wall',['../classItem.html#a5d29ddecc073151a65a8e2ea2f6e4189',1,'Item']]],
- ['_24widgetlist',['$widgetlist',['../classApp.html#a4833bee2eae4ad1691a04fa19e11a766',1,'App']]],
['_24widgets',['$widgets',['../classApp.html#aa5a87c46ab3fee21362c466bf78042ef',1,'App']]],
['_24width',['$width',['../classphoto__driver.html#a3e4215890f4a4894bf3799a7d2e0c0b1',1,'photo_driver\$width()'],['../minimalisticdarkness_8php.html#a5795120b4b324bc4ca83f1e6fdce7d57',1,'$width():&#160;minimalisticdarkness.php']]],
['_24writable',['$writable',['../classConversation.html#ae81221251307e315f566a11f921ce0a9',1,'Conversation']]],
diff --git a/doc/html/search/all_5f.js b/doc/html/search/all_5f.js
index a3e11a68b..419f16ab5 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()'],['../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()'],['../classFriendicaSmarty.html#af12091b920b95eeef1218cbc48066ca6',1,'FriendicaSmarty\__construct()'],['../classFriendicaSmartyEngine.html#ab7c305bd8c386c2944e4dc9136cea5b6',1,'FriendicaSmartyEngine\__construct()']]],
+ ['_5f_5fconstruct',['__construct',['../classApp.html#af6d39f63fb7116bbeb04e51696f99474',1,'App\__construct()'],['../classConversation.html#af84ea6ccd72214c9bb4c504461cc8b09',1,'Conversation\__construct()'],['../classdba__driver.html#af3541d13ccb7a3eddfc03e253c746186',1,'dba_driver\__construct()'],['../classItem.html#a248f45871ecfe82a08d1d4c0769b2eb2',1,'Item\__construct()'],['../classFKOAuth1.html#a2f1276872329a6f0b704ccda1a4b9fa6',1,'FKOAuth1\__construct()'],['../classphoto__driver.html#ac6e85f8e507cab4e755ed7acdec401ae',1,'photo_driver\__construct()'],['../classRedMatrix_1_1RedDAV_1_1RedBrowser.html#a8161f2a0be205412e263c947b5ec46c5',1,'RedMatrix\RedDAV\RedBrowser\__construct()'],['../classRedMatrix_1_1RedDAV_1_1RedDirectory.html#a76b58fe5223e565c97f1b9af93031a99',1,'RedMatrix\RedDAV\RedDirectory\__construct()'],['../classRedMatrix_1_1RedDAV_1_1RedFile.html#a05798eac84c578152ff21758261c6ac6',1,'RedMatrix\RedDAV\RedFile\__construct()'],['../classFriendicaSmarty.html#af12091b920b95eeef1218cbc48066ca6',1,'FriendicaSmarty\__construct()'],['../classFriendicaSmartyEngine.html#ab7c305bd8c386c2944e4dc9136cea5b6',1,'FriendicaSmartyEngine\__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 380730a10..3ab5333ef 100644
--- a/doc/html/search/all_61.js
+++ b/doc/html/search/all_61.js
@@ -28,6 +28,7 @@ var searchData=
['account_5frole_5fallowcode',['ACCOUNT_ROLE_ALLOWCODE',['../boot_8php.html#a84f48897059bbd4a8738d7ee4cec6688',1,'boot.php']]],
['account_5frole_5fdeveloper',['ACCOUNT_ROLE_DEVELOPER',['../boot_8php.html#a4f507a5996dbb3da148add0339a40d5a',1,'boot.php']]],
['account_5frole_5fsystem',['ACCOUNT_ROLE_SYSTEM',['../boot_8php.html#a7c2eb822d50e1554bf5c32861f36342b',1,'boot.php']]],
+ ['account_5fservice_5fclass_5ffetch',['account_service_class_fetch',['../account_8php.html#a4328c40ee4b3d68630cf1ebb7b9d4d89',1,'account.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']]],
@@ -128,6 +129,8 @@ var searchData=
['api_5ffriendica_5fversion',['api_friendica_version',['../include_2api_8php.html#a53b0680b682ae6078f2e1ed18cfb3f74',1,'api.php']]],
['api_5ffriends_5fids',['api_friends_ids',['../include_2api_8php.html#acafd2899309a005fcb725289173dc7fe',1,'api.php']]],
['api_5fget_5fuser',['api_get_user',['../include_2api_8php.html#aa40bae797bcd9ccacffdce5a3b5a1afa',1,'api.php']]],
+ ['api_5fgroup',['api_group',['../include_2api_8php.html#ad5fe62d6c25c86999f627b2e6cfde536',1,'api.php']]],
+ ['api_5fgroup_5fmembers',['api_group_members',['../include_2api_8php.html#ae46f964e5a9c80b96dc78df61c09ed3a',1,'api.php']]],
['api_5fhelp_5ftest',['api_help_test',['../include_2api_8php.html#ac5a64cc81d70ff3cf866093ea9721d23',1,'api.php']]],
['api_5fitem_5fget_5fuser',['api_item_get_user',['../include_2api_8php.html#aa49741342ad8ba285737eea1209a37e1',1,'api.php']]],
['api_5flogin',['api_login',['../include_2api_8php.html#afe534f826e4282b72d66e8cadca7bb73',1,'api.php']]],
@@ -135,6 +138,7 @@ var searchData=
['api_5foauth_5frequest_5ftoken',['api_oauth_request_token',['../include_2api_8php.html#aa1bddb580510e70cc1a7b7381667f1a3',1,'api.php']]],
['api_5fphotos',['api_photos',['../include_2api_8php.html#aa6fc3bc8c0fad1d081db0dcc456dd77f',1,'api.php']]],
['api_5fpost',['api_post',['../mod_2api_8php.html#a6fe77f05c07cb51048df0d557b4b9bd2',1,'api.php']]],
+ ['api_5fred_5fxchan',['api_red_xchan',['../include_2api_8php.html#a4fe872332ff0bd8d5eae2f0c6819cb60',1,'api.php']]],
['api_5fregister_5ffunc',['api_register_func',['../include_2api_8php.html#ac2c2b18c426d697d11a830bca146be8a',1,'api.php']]],
['api_5frss_5fextra',['api_rss_extra',['../include_2api_8php.html#a6a04b48168ba1d9dd2de3081a630611f',1,'api.php']]],
['api_5fstatus_5fshow',['api_status_show',['../include_2api_8php.html#a645397787618b5c548a31e8686e8cca4',1,'api.php']]],
@@ -169,8 +173,8 @@ var searchData=
['appman_2ephp',['appman.php',['../appman_8php.html',1,'']]],
['appman_5fcontent',['appman_content',['../appman_8php.html#af48805ac2f6f123f2681a8ae1c6f123f',1,'appman.php']]],
['appman_5fpost',['appman_post',['../appman_8php.html#a2979acbe47ffaecfa19b9eabfbfbde39',1,'appman.php']]],
- ['apps_2ephp',['apps.php',['../include_2apps_8php.html',1,'']]],
['apps_2ephp',['apps.php',['../mod_2apps_8php.html',1,'']]],
+ ['apps_2ephp',['apps.php',['../include_2apps_8php.html',1,'']]],
['apps_5fcontent',['apps_content',['../mod_2apps_8php.html#a546016cb960d0b110ee8e489dfa6c27c',1,'apps.php']]],
['apw_5fform',['apw_form',['../view_2theme_2apw_2php_2config_8php.html#ad59fc09da66b66267f9753c8b2dd68d0',1,'config.php']]],
['apw_5finit',['apw_init',['../apw_2php_2theme_8php.html#a42167c539043a39a6b83c252d05f1e89',1,'theme.php']]],
diff --git a/doc/html/search/all_62.js b/doc/html/search/all_62.js
index 959791f4b..c4d2bcad1 100644
--- a/doc/html/search/all_62.js
+++ b/doc/html/search/all_62.js
@@ -6,11 +6,15 @@ 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,'']]],
- ['bb2diaspora_5fitembody',['bb2diaspora_itembody',['../bb2diaspora_8php.html#a2052c66bc1006a42b4c230320c269e47',1,'bb2diaspora.php']]],
+ ['bb2diaspora_5fitembody',['bb2diaspora_itembody',['../bb2diaspora_8php.html#ab27761069ea1275f0fc4c543099c5519',1,'bb2diaspora.php']]],
+ ['bb2diaspora_5fitemwallwall',['bb2diaspora_itemwallwall',['../bb2diaspora_8php.html#aab32042f8bd63552d3fadeeae9eab083',1,'bb2diaspora.php']]],
['bb2dmention_5fcallback',['bb2dmention_callback',['../bb2diaspora_8php.html#a5258d2f1addeb0a2a6b54c4f9e7d0f34',1,'bb2diaspora.php']]],
['bb_5flocation',['bb_location',['../bbcode_8php.html#a3435c82a6c7693557800cdeb6848d0bd',1,'bbcode.php']]],
+ ['bb_5fmap_5fcoords',['bb_map_coords',['../bbcode_8php.html#a02d5f2434e7bb5cf683e52a9b4787f24',1,'bbcode.php']]],
+ ['bb_5fmap_5flocation',['bb_map_location',['../bbcode_8php.html#a7cb403fd1c36d7376c2f3932a1ceb54d',1,'bbcode.php']]],
['bb_5fparse_5fapp',['bb_parse_app',['../bbcode_8php.html#abb02f1044ff1c635d12af690d0f2cfa2',1,'bbcode.php']]],
['bb_5fparse_5fcrypt',['bb_parse_crypt',['../bbcode_8php.html#a851f5aafefe52474201b83f9fd65931f',1,'bbcode.php']]],
+ ['bb_5fparse_5felement',['bb_parse_element',['../bbcode_8php.html#aa73fb62e7be1fa5fce4ad5f3d4487fc9',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']]],
@@ -30,12 +34,7 @@ var searchData=
['block_5finit',['block_init',['../block_8php.html#a9b61c96044ed2a068f18c10370a78d5c',1,'block.php']]],
['blocks_2ephp',['blocks.php',['../blocks_8php.html',1,'']]],
['blocks_5fcontent',['blocks_content',['../blocks_8php.html#a2531a8fd51db3cecb2eb20c002c66e12',1,'blocks.php']]],
- ['blog_5finit',['blog_init',['../blogga_2php_2theme_8php.html#aa55c1cb1f05087b5002ecb633b550b1b',1,'blog_init(&amp;$a):&#160;theme.php'],['../blogga_2view_2theme_2blog_2theme_8php.html#aa55c1cb1f05087b5002ecb633b550b1b',1,'blog_init(&amp;$a):&#160;theme.php']]],
- ['blog_5finstall',['blog_install',['../blogga_2view_2theme_2blog_2theme_8php.html#aae58cc837fe56473d9f3370abfe533ae',1,'theme.php']]],
- ['blog_5funinstall',['blog_uninstall',['../blogga_2view_2theme_2blog_2theme_8php.html#a3e77dbe111f330c64a1ff6c741cd515c',1,'theme.php']]],
- ['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']]],
+ ['blocks_5finit',['blocks_init',['../blocks_8php.html#aebe88302181883d2b17d6e98a1aaebe9',1,'blocks.php']]],
['bookmark_5fadd',['bookmark_add',['../include_2bookmarks_8php.html#aef1cb2968c41c759f2d106e1088ca323',1,'bookmarks.php']]],
['bookmarks_2ephp',['bookmarks.php',['../include_2bookmarks_8php.html',1,'']]],
['bookmarks_2ephp',['bookmarks.php',['../mod_2bookmarks_8php.html',1,'']]],
diff --git a/doc/html/search/all_63.js b/doc/html/search/all_63.js
index 4b480a8d1..02105a0a3 100644
--- a/doc/html/search/all_63.js
+++ b/doc/html/search/all_63.js
@@ -5,15 +5,13 @@ var searchData=
['cal',['cal',['../datetime_8php.html#aea356409ba69f9de412298c998595dd2',1,'datetime.php']]],
['call_5fhooks',['call_hooks',['../plugin_8php.html#a7f05de16c0a32602853b09b99dd85e7c',1,'plugin.php']]],
['can_5fcomment_5fon_5fpost',['can_comment_on_post',['../items_8php.html#a1e75047cf175aaee8dd16aa761913ff9',1,'items.php']]],
+ ['catblock',['catblock',['../taxonomy_8php.html#aa8f8a1ff85daef046298e93c83e7a1b4',1,'taxonomy.php']]],
['categories_5fwidget',['categories_widget',['../contact__widgets_8php.html#a165eb021e61c4dcab2a552f28628d353',1,'contact_widgets.php']]],
['change_5fchannel',['change_channel',['../security_8php.html#a8d23d2597aae380a3341872fe9513380',1,'security.php']]],
['change_5fpermissions',['change_permissions',['../classProtoDriver.html#a34b97ca5ef2165f2e16eb2fe59ff6c67',1,'ProtoDriver\change_permissions()'],['../classZotDriver.html#a6776935156accb0f170e2e24577133db',1,'ZotDriver\change_permissions()']]],
['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',['../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_5fcontent',['channel_content',['../channel_8php.html#a9c6a6179e0e626398ebecc6151905ef1',1,'channel.php']]],
['channel_5finit',['channel_init',['../channel_8php.html#ac7c8c7845741baadf87fae6bc279f3dc',1,'channel.php']]],
@@ -35,6 +33,7 @@ var searchData=
['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']]],
+ ['chatroom_5flist_5fcount',['chatroom_list_count',['../include_2chat_8php.html#a26abdccc2a278a59899896dbbfc6f049',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']]],
@@ -61,7 +60,7 @@ var searchData=
['check_5fupstream_5fdirectory',['check_upstream_directory',['../dir__fns_8php.html#a2f7d74bb2aea8bcd2537aee5c6708a16',1,'dir_fns.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']]],
+ ['childexists',['childExists',['../classRedMatrix_1_1RedDAV_1_1RedDirectory.html#a964b13fde1a5da6f76b51ca5519234dc',1,'RedMatrix::RedDAV::RedDirectory']]],
['choklet_2ephp',['choklet.php',['../choklet_8php.html',1,'']]],
['clean_5furls',['clean_urls',['../boot_8php.html#ab79b8b4555cae20d03f8200666d89d63',1,'boot.php']]],
['clear',['clear',['../classCache.html#ab14d0f4bdf7116a94d545c574b38f568',1,'Cache']]],
@@ -73,9 +72,9 @@ var searchData=
['client_5fmode_5fload',['CLIENT_MODE_LOAD',['../boot_8php.html#af6f6f6f40139f12fc09ec47373b30919',1,'boot.php']]],
['client_5fmode_5fnormal',['CLIENT_MODE_NORMAL',['../boot_8php.html#a43c6c7d84d880e9500bd4f8f8ecc5731',1,'boot.php']]],
['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()']]],
+ ['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()'],['../classdba__postgres.html#a731d8648b41b8a126f6b99bdd5414058',1,'dba_postgres\close()']]],
['cloud_2ephp',['cloud.php',['../cloud_8php.html',1,'']]],
- ['cloud_5finit',['cloud_init',['../cloud_8php.html#a1b79a6fe0454bc76673ad9aef55bf02d',1,'cloud.php']]],
+ ['cloud_5finit',['cloud_init',['../cloud_8php.html#ad2e96e917852f27dedfc263d37e13756',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#a772f0ae77ad77c8ab68ed918a3870946',1,'items.php']]],
@@ -98,13 +97,12 @@ var searchData=
['common_5finit',['common_init',['../common_8php.html#aca62f113655809f41f49042ce9b123c2',1,'common.php']]],
['compare_5fpermissions',['compare_permissions',['../items_8php.html#a0790a4550b829e85504af548623002ca',1,'items.php']]],
['completeurl',['completeurl',['../parse__url_8php.html#a496f4e3836154f6f32b8e805a7160d3a',1,'parse_url.php']]],
+ ['concat',['concat',['../classdba__driver.html#ab9982f38a02f008b127a0f3ccc1e99f4',1,'dba_driver\concat()'],['../classdba__postgres.html#a7ea3f24ad260c1e21588f8b5af595caa',1,'dba_postgres\concat()']]],
['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_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,'']]],
- ['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',['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()'],['../classdba__postgres.html#ab36244320f5b71dba92d9318ccf3f34e',1,'dba_postgres\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']]],
@@ -142,16 +140,20 @@ var searchData=
['conversation_2ephp',['conversation.php',['../conversation_8php.html',1,'']]],
['conversationobject_2ephp',['ConversationObject.php',['../ConversationObject_8php.html',1,'']]],
['convert',['convert',['../namespacefriendica-to-smarty-tpl.html#a38503e37fe68ac27c88cce91a9ac9efa',1,'friendica-to-smarty-tpl']]],
+ ['convert_5fchild',['convert_child',['../classRedMatrix_1_1Import_1_1Import.html#a5434325afb2c633c52540127d717800a',1,'RedMatrix::Import::Import']]],
+ ['convert_5fitem',['convert_item',['../classRedMatrix_1_1Import_1_1Import.html#a107703a43a1b0ceb2af7ae470cb3f218',1,'RedMatrix::Import::Import']]],
+ ['convert_5ftaxonomy',['convert_taxonomy',['../classRedMatrix_1_1Import_1_1Import.html#addf6e53dacd971eaab49be4b17a767d6',1,'RedMatrix::Import::Import']]],
['convert_5fxml_5felement_5fto_5farray',['convert_xml_element_to_array',['../include_2network_8php.html#ad4056d3ce69988f5c1a997a79f503246',1,'network.php']]],
['count_5fall_5ffriends',['count_all_friends',['../socgraph_8php.html#af29d056beec10b4e38e5209c92452894',1,'socgraph.php']]],
['count_5fcommon_5ffriends',['count_common_friends',['../socgraph_8php.html#a887d576f21fd708132a06d0f72f90f84',1,'socgraph.php']]],
['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']]],
+ ['count_5funseen_5fdescendants',['count_unseen_descendants',['../classItem.html#ae0c48b2fed5558642549cabd547fc4f3',1,'Item']]],
['create_5faccount',['create_account',['../account_8php.html#a141fe579c351c78209d425473f978eb5',1,'account.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']]],
+ ['createdirectory',['createDirectory',['../classRedMatrix_1_1RedDAV_1_1RedDirectory.html#aca0e8d574ea66a0e210f571700663c62',1,'RedMatrix::RedDAV::RedDirectory']]],
+ ['createfile',['createFile',['../classRedMatrix_1_1RedDAV_1_1RedDirectory.html#a58e750256cdc2f0f79fbe8d5463ffefe',1,'RedMatrix::RedDAV::RedDirectory']]],
['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 1271af9ed..b69aa1e2f 100644
--- a/doc/html/search/all_64.js
+++ b/doc/html/search/all_64.js
@@ -4,30 +4,41 @@ var searchData=
['darkness_2ephp',['darkness.php',['../darkness_8php.html',1,'']]],
['darknessleftaside_2ephp',['darknessleftaside.php',['../darknessleftaside_8php.html',1,'']]],
['darknessrightaside_2ephp',['darknessrightaside.php',['../darknessrightaside_8php.html',1,'']]],
- ['datesel',['datesel',['../datetime_8php.html#ac265b86f384ee094ed5479aae02aa5c8',1,'datetime.php']]],
- ['datesel_5fformat',['datesel_format',['../datetime_8php.html#a5f29553799005b1fd4e9ce9d98ce05aa',1,'datetime.php']]],
+ ['datesel',['datesel',['../datetime_8php.html#a77bb385ae8a9e7ca663309c102c0d766',1,'datetime.php']]],
['datetime_2ephp',['datetime.php',['../datetime_8php.html',1,'']]],
['datetime_5fconvert',['datetime_convert',['../datetime_8php.html#ad6301e74b0f9267d52f8d432b5beb226',1,'datetime.php']]],
+ ['datetimesel',['datetimesel',['../datetime_8php.html#a72218e5ee21876484934bacbb6bd9ba3',1,'datetime.php']]],
['day_5ftranslate',['day_translate',['../text_8php.html#a63fb21c0bed2fc72eef2c1471ac42b63',1,'text.php']]],
+ ['db_5fconcat',['db_concat',['../dba__driver_8php.html#a7c1b98a710ead27382c958ad3216c4ee',1,'dba_driver.php']]],
+ ['db_5fgetfunc',['db_getfunc',['../dba__driver_8php.html#a2994daa03b1c23229a27e39bcab75e67',1,'dba_driver.php']]],
+ ['db_5foptimizetable',['db_optimizetable',['../dba__driver_8php.html#a75098bf1d59ea57f7ebae657a369137e',1,'dba_driver.php']]],
+ ['db_5fquoteinterval',['db_quoteinterval',['../dba__driver_8php.html#acec84a8fb75d78daf657cbe5df74e25a',1,'dba_driver.php']]],
['db_5fupdate_2ephp',['db_update.php',['../db__update_8php.html',1,'']]],
['db_5fupdate_5fversion',['DB_UPDATE_VERSION',['../boot_8php.html#ac59a18a4838710d6c2de37aed6b21f03',1,'boot.php']]],
+ ['db_5futcnow',['db_utcnow',['../dba__driver_8php.html#a30e9a643be804e905f5614a3279d2645',1,'dba_driver.php']]],
['dba_5fdriver',['dba_driver',['../classdba__driver.html',1,'']]],
['dba_5fdriver_2ephp',['dba_driver.php',['../dba__driver_8php.html',1,'']]],
- ['dba_5ffactory',['dba_factory',['../dba__driver_8php.html#ac10e60f6e5b95bcf67bd82cb88f37947',1,'dba_driver.php']]],
+ ['dba_5ffactory',['dba_factory',['../dba__driver_8php.html#a5df8499634c47b30191f34069d7b98c0',1,'dba_driver.php']]],
['dba_5fmysql',['dba_mysql',['../classdba__mysql.html',1,'']]],
['dba_5fmysql_2ephp',['dba_mysql.php',['../dba__mysql_8php.html',1,'']]],
['dba_5fmysqli',['dba_mysqli',['../classdba__mysqli.html',1,'']]],
['dba_5fmysqli_2ephp',['dba_mysqli.php',['../dba__mysqli_8php.html',1,'']]],
+ ['dba_5fpostgres',['dba_postgres',['../classdba__postgres.html',1,'']]],
+ ['dba_5fpostgres_2ephp',['dba_postgres.php',['../dba__postgres_8php.html',1,'']]],
['dba_5ftimer',['dba_timer',['../boot_8php.html#a3e0930933fb2c0bf8211cc7ab4e1c3b4',1,'boot.php']]],
['dbesc',['dbesc',['../dba__driver_8php.html#ab222aa1dbf9ea93b320f82028739127e',1,'dba_driver.php']]],
['dbesc_5farray',['dbesc_array',['../dba__driver_8php.html#a65b83462bd26968106aebd43f16540e4',1,'dba_driver.php']]],
['dbesc_5farray_5fcb',['dbesc_array_cb',['../dba__driver_8php.html#af531546fac5f0836a8557a4f6dfee930',1,'dba_driver.php']]],
+ ['dbesc_5fidentifier',['dbesc_identifier',['../dba__driver_8php.html#aa051799567690a124a3b865bf902f58a',1,'dba_driver.php']]],
+ ['dbescbin',['dbescbin',['../dba__driver_8php.html#a2a38996670c2936b5769270c49c57593',1,'dba_driver.php']]],
+ ['dbescdate',['dbescdate',['../dba__driver_8php.html#a2c8a72ec73f39b17a167c90737693f78',1,'dba_driver.php']]],
['dbg',['dbg',['../classdba__driver.html#adcc1f8955120fec0708bce39202d0422',1,'dba_driver\dbg()'],['../dba__driver_8php.html#aa6607893d8f60ade9122bcfbd1a53ffb',1,'dbg():&#160;dba_driver.php']]],
['dbq',['dbq',['../dba__driver_8php.html#aa377074e70981e8c4e82ca0accd068ee',1,'dba_driver.php']]],
+ ['dbtype_5fmysql',['DBTYPE_MYSQL',['../boot_8php.html#a8c9a11c47394244cbe18cd75b9726d5f',1,'boot.php']]],
+ ['dbtype_5fpostgres',['DBTYPE_POSTGRES',['../boot_8php.html#a37ddabc112db443b4c67fbc0f708817e',1,'boot.php']]],
+ ['dbunescbin',['dbunescbin',['../dba__driver_8php.html#afaaa1a7eff9c1b65b3b8c464ae37640e',1,'dba_driver.php']]],
['decode_5ftags',['decode_tags',['../items_8php.html#a56b2a4abcadfac71175cd50555528cc3',1,'items.php']]],
['default_2ephp',['default.php',['../php_2default_8php.html',1,'']]],
- ['default_2ephp',['default.php',['../theme_2blogga_2php_2default_8php.html',1,'']]],
- ['default_2ephp',['default.php',['../theme_2blogga_2view_2theme_2blog_2default_8php.html',1,'']]],
['default_2ephp',['default.php',['../theme_2mytheme_2php_2default_8php.html',1,'']]],
['default_5fdb_5fengine',['DEFAULT_DB_ENGINE',['../boot_8php.html#aa8a2b61e70900139d1ca28e46f1da49d',1,'boot.php']]],
['del_5fconfig',['del_config',['../include_2config_8php.html#a549910227348003efc3c05c9105c42da',1,'config.php']]],
@@ -35,7 +46,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',['../classRedFile.html#aef71c9eaac7052be7dc8602eb12171e7',1,'RedFile']]],
+ ['delete',['delete',['../classRedMatrix_1_1RedDAV_1_1RedFile.html#ab7ab7ba81fab28eb02382cfdfd80ecfe',1,'RedMatrix::RedDAV::RedFile']]],
['delete_5fimported_5fitem',['delete_imported_item',['../zot_8php.html#adfeb9400ae6b726beec89f8f1e8fde72',1,'zot.php']]],
['delete_5fitem_5flowlevel',['delete_item_lowlevel',['../items_8php.html#aac8c9eb4338e2a996c43914392c6cfdb',1,'items.php']]],
['deletenode',['deletenode',['../html2bbcode_8php.html#a71a07f135d196ec5943b13f7b2e6a9b2',1,'html2bbcode.php']]],
@@ -79,11 +90,13 @@ var searchData=
['diaspora_5fsend_5frelay',['diaspora_send_relay',['../diaspora_8php.html#a0b3628a5e53332c3d3196b689fe2b94d',1,'diaspora.php']]],
['diaspora_5fsend_5fretraction',['diaspora_send_retraction',['../diaspora_8php.html#a1704748aa2384c73e43f10e71defd31a',1,'diaspora.php']]],
['diaspora_5fsend_5fstatus',['diaspora_send_status',['../diaspora_8php.html#a33ae0c4606a7df4d801c05507d87f668',1,'diaspora.php']]],
- ['diaspora_5fshare',['diaspora_share',['../diaspora_8php.html#af3a7f9879c14fec761dcc5563fb39bac',1,'diaspora.php']]],
+ ['diaspora_5fshare',['diaspora_share',['../diaspora_8php.html#a69f250b078a46e405647428ec3399a16',1,'diaspora.php']]],
['diaspora_5fsigned_5fretraction',['diaspora_signed_retraction',['../diaspora_8php.html#aa34d2748bb97e9e193cacd572f335055',1,'diaspora.php']]],
['diaspora_5ftransmit',['diaspora_transmit',['../diaspora_8php.html#aa704d6aa2ac77be345c0f501168e6e56',1,'diaspora.php']]],
['diaspora_5ful',['diaspora_ul',['../bb2diaspora_8php.html#adc92ccda5f85ed27e64fcc17712c89cc',1,'bb2diaspora.php']]],
- ['diaspora_5funshare',['diaspora_unshare',['../diaspora_8php.html#aa4b1cc0bca5c3fe8d11557685e0238a9',1,'diaspora.php']]],
+ ['diaspora_5funshare',['diaspora_unshare',['../diaspora_8php.html#ab736d6f32b5de31c97cb579fc730e200',1,'diaspora.php']]],
+ ['dimport_2ephp',['dimport.php',['../dimport_8php.html',1,'']]],
+ ['dir_5fflag_5fbuild',['dir_flag_build',['../dirsearch_8php.html#ab6d5fefa98da249a994b910434a669c2',1,'dirsearch.php']]],
['dir_5ffns_2ephp',['dir_fns.php',['../dir__fns_8php.html',1,'']]],
['dir_5fparse_5fquery',['dir_parse_query',['../dirsearch_8php.html#a7d4cd9890d5ed23c3efc58e2a778a305',1,'dirsearch.php']]],
['dir_5fquery_5fbuild',['dir_query_build',['../dirsearch_8php.html#a52bcac49b0e35cc8c6b70066143c2ee2',1,'dirsearch.php']]],
@@ -91,8 +104,8 @@ 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_2ephp',['directory.php',['../mod_2directory_8php.html',1,'']]],
['directory_2ephp',['directory.php',['../include_2directory_8php.html',1,'']]],
+ ['directory_2ephp',['directory.php',['../mod_2directory_8php.html',1,'']]],
['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']]],
@@ -102,8 +115,6 @@ 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']]],
diff --git a/doc/html/search/all_65.js b/doc/html/search/all_65.js
index 10bddfec9..7efea7c31 100644
--- a/doc/html/search/all_65.js
+++ b/doc/html/search/all_65.js
@@ -2,16 +2,19 @@ var searchData=
[
['editblock_2ephp',['editblock.php',['../editblock_8php.html',1,'']]],
['editblock_5fcontent',['editblock_content',['../editblock_8php.html#abbe8f55de06967bc8d79d620509a49e6',1,'editblock.php']]],
+ ['editblock_5finit',['editblock_init',['../editblock_8php.html#ab7806bb42ae5e93f0330d7bd179d4b3e',1,'editblock.php']]],
['editlayout_2ephp',['editlayout.php',['../editlayout_8php.html',1,'']]],
['editlayout_5fcontent',['editlayout_content',['../editlayout_8php.html#aa877e4157a26b099de904164181dd386',1,'editlayout.php']]],
+ ['editlayout_5finit',['editlayout_init',['../editlayout_8php.html#a97c1e93d9e75ad8cd2c2f9a7f77341a7',1,'editlayout.php']]],
['editpost_2ephp',['editpost.php',['../editpost_8php.html',1,'']]],
['editpost_5fcontent',['editpost_content',['../editpost_8php.html#a34011690864d122680c802e9e748ccfb',1,'editpost.php']]],
['editwebpage_2ephp',['editwebpage.php',['../editwebpage_8php.html',1,'']]],
['editwebpage_5fcontent',['editwebpage_content',['../editwebpage_8php.html#a375e945255fad79a71036528f7480650',1,'editwebpage.php']]],
- ['else',['else',['../auth_8php.html#a0950af7c2888ca1d4743fe5d0bff9ae5',1,'else():&#160;auth.php'],['../fpostit_8php.html#a501b5ca82f287509fc691c88524064c1',1,'else():&#160;fpostit.php'],['../tpldebug_8php.html#afbc7aadb3f7ff1edf0aaaa326a42179c',1,'else():&#160;tpldebug.php'],['../redbasic_2php_2style_8php.html#ab3afb90d611eca90819f597a2c0bb459',1,'else():&#160;style.php']]],
+ ['editwebpage_5finit',['editwebpage_init',['../editwebpage_8php.html#a94109f9c796fbe92508bf9574e35d19f',1,'editwebpage.php']]],
+ ['else',['else',['../auth_8php.html#a6f60fb54f60cd36c2430d6615a7b4f3f',1,'else():&#160;auth.php'],['../fpostit_8php.html#a501b5ca82f287509fc691c88524064c1',1,'else():&#160;fpostit.php'],['../tpldebug_8php.html#afbc7aadb3f7ff1edf0aaaa326a42179c',1,'else():&#160;tpldebug.php'],['../redbasic_2php_2style_8php.html#ab3afb90d611eca90819f597a2c0bb459',1,'else():&#160;style.php']]],
['email_5fheader_5fencode',['email_header_encode',['../include_2network_8php.html#a469b9bd700269cd07d954f1a16c5899b',1,'network.php']]],
['email_5fsend',['email_send',['../include_2network_8php.html#a1ff07d9fad93b713b93da0ab77aab7f0',1,'network.php']]],
- ['encode_5fitem',['encode_item',['../items_8php.html#a82955cc578f0fa600acec84475026194',1,'items.php']]],
+ ['encode_5fitem',['encode_item',['../items_8php.html#a56b0f5d2cb36eb8f4bfca84813884f86',1,'items.php']]],
['encode_5fitem_5fflags',['encode_item_flags',['../items_8php.html#a5f690fc2484abec07840b4f9dd525bd9',1,'items.php']]],
['encode_5fitem_5fterms',['encode_item_terms',['../items_8php.html#ac6673627d289ee4f547de0fe3b7acd0a',1,'items.php']]],
['encode_5fitem_5fxchan',['encode_item_xchan',['../items_8php.html#a566c601726697e044e75284af7fb6f17',1,'items.php']]],
@@ -22,8 +25,10 @@ var searchData=
['enumerate_5fpermissions',['enumerate_permissions',['../items_8php.html#afbcf26dfcf8a83fff952aa858c1b7b67',1,'items.php']]],
['eol',['EOL',['../boot_8php.html#a0603d6ece8c5d37b4b7db697db053a4b',1,'boot.php']]],
['eot',['EOT',['../typohelper_8php.html#ab6fd357fb5b2a3ba8aab9e8b98c6a805',1,'typohelper.php']]],
- ['escape',['escape',['../classdba__driver.html#afc95ffa103a3290581b537670cde5311',1,'dba_driver\escape()'],['../classdba__mysql.html#a99a7691ea6cb1300031fb6549379066e',1,'dba_mysql\escape()'],['../classdba__mysqli.html#a27d6a748af7f80028801306e7ea33f64',1,'dba_mysqli\escape()']]],
+ ['escape',['escape',['../classdba__driver.html#afc95ffa103a3290581b537670cde5311',1,'dba_driver\escape()'],['../classdba__mysql.html#a99a7691ea6cb1300031fb6549379066e',1,'dba_mysql\escape()'],['../classdba__mysqli.html#a27d6a748af7f80028801306e7ea33f64',1,'dba_mysqli\escape()'],['../classdba__postgres.html#a7108eaaae7cc2fb236212041afc9ac0f',1,'dba_postgres\escape()']]],
+ ['escape_5fidentifier',['escape_identifier',['../classdba__postgres.html#ab2e44e9f41d05e585afd873d18e8c127',1,'dba_postgres']]],
['escape_5ftags',['escape_tags',['../text_8php.html#aa5148a0dfea2a1ca64c3d52f10aa2d64',1,'text.php']]],
+ ['escapebin',['escapebin',['../classdba__driver.html#a7dbe8318587ff1694825042bf58f4fbd',1,'dba_driver\escapebin()'],['../classdba__postgres.html#a8d2c6d8c92fe6f074452876483dd17fc',1,'dba_postgres\escapebin()']]],
['ev_5fcompare',['ev_compare',['../event_8php.html#a32ba1b9ddf7a744a9a1512b052e5f850',1,'event.php']]],
['event_2ephp',['event.php',['../event_8php.html',1,'']]],
['event_5faddtocal',['event_addtocal',['../event_8php.html#ac9f206819186b65952ac1869f0da8c6e',1,'event.php']]],
@@ -40,5 +45,6 @@ var searchData=
['ext',['ext',['../namespacefriendica-to-smarty-tpl.html#aecf730e0884bb4ddc6c0deb1ef85f8eb',1,'friendica-to-smarty-tpl']]],
['externals_2ephp',['externals.php',['../externals_8php.html',1,'']]],
['externals_5frun',['externals_run',['../externals_8php.html#a4df44079e6f915286088b7a0d44db926',1,'externals.php']]],
+ ['extra_5fquery_5fargs',['extra_query_args',['../text_8php.html#a3ba47b4dd1248e7e51095572e7b814dc',1,'text.php']]],
['extract_2ephp',['extract.php',['../extract_8php.html',1,'']]]
];
diff --git a/doc/html/search/all_66.js b/doc/html/search/all_66.js
index 3e2bbcd59..70717140d 100644
--- a/doc/html/search/all_66.js
+++ b/doc/html/search/all_66.js
@@ -33,8 +33,8 @@ var searchData=
['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']]],
- ['findattachhash',['findAttachHash',['../classRedBrowser.html#ae4edd4e10c709e2624c1aeb47b0440c5',1,'RedBrowser']]],
- ['findattachidbyhash',['findAttachIdByHash',['../classRedBrowser.html#a20d81230645ddca08a88bfd9ea9f88f1',1,'RedBrowser']]],
+ ['findattachhash',['findAttachHash',['../classRedMatrix_1_1RedDAV_1_1RedBrowser.html#ad4bc0516533c62733f38043a37267d78',1,'RedMatrix::RedDAV::RedBrowser']]],
+ ['findattachidbyhash',['findAttachIdByHash',['../classRedMatrix_1_1RedDAV_1_1RedBrowser.html#a0733e38e254474d9a456825e72f1ddfd',1,'RedMatrix::RedDAV::RedBrowser']]],
['findpeople_5fwidget',['findpeople_widget',['../contact__widgets_8php.html#a57e73ebcfd62bb5d8c7a7b9e663726d6',1,'contact_widgets.php']]],
['first_5fpost_5fdate',['first_post_date',['../items_8php.html#a0cf98bb619f07dd18f602683a55a5f59',1,'items.php']]],
['fix_5fattached_5ffile_5fpermissions',['fix_attached_file_permissions',['../item_8php.html#a3daae7944f737bd30412a0d042207c0f',1,'item.php']]],
@@ -44,6 +44,7 @@ var searchData=
['fix_5fprivate_5fphotos',['fix_private_photos',['../items_8php.html#aba98fcbbcd7044a7e9ea34edabc14c87',1,'items.php']]],
['fix_5fsystem_5furls',['fix_system_urls',['../boot_8php.html#aca5e42678e178c6b9034610d66666fd7',1,'boot.php']]],
['fixacl',['fixacl',['../acl__selectors_8php.html#ad6664fb8330308e23f2645cd6624727e',1,'acl_selectors.php']]],
+ ['fixd_2ephp',['fixd.php',['../fixd_8php.html',1,'']]],
['fkoauth1',['FKOAuth1',['../classFKOAuth1.html',1,'']]],
['fkoauthdatastore',['FKOAuthDataStore',['../classFKOAuthDataStore.html',1,'']]],
['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()']]],
@@ -52,14 +53,17 @@ 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']]],
+ ['foofoo',['foofoo',['../dimport_8php.html#a581f040717941ce3e1868b0b5dceefd1',1,'dimport.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']]],
['format_5fevent_5fbbcode',['format_event_bbcode',['../event_8php.html#abb74206cf42d694307c3d7abb7af9869',1,'event.php']]],
['format_5fevent_5fdiaspora',['format_event_diaspora',['../bb2diaspora_8php.html#a29a2ad41f5826f3975fa9a49934ff863',1,'bb2diaspora.php']]],
['format_5fevent_5fhtml',['format_event_html',['../event_8php.html#a2ac9f1b08de03250ecd794f705781d17',1,'event.php']]],
+ ['format_5fevent_5fical',['format_event_ical',['../event_8php.html#a3ff7f1824540a38f4a3991a59a9542d4',1,'event.php']]],
['format_5ffiler',['format_filer',['../text_8php.html#a4e4d42b0a805148d9f9a92bcac89bf91',1,'text.php']]],
['format_5fhashtags',['format_hashtags',['../text_8php.html#a3a0c432a484c17d7720b8ba2d6bfdd59',1,'text.php']]],
+ ['format_5fical_5ftext',['format_ical_text',['../event_8php.html#a05073cd4ab837bd4a0149e8ed23ce688',1,'event.php']]],
['format_5fjs_5fif_5fexists',['format_js_if_exists',['../plugin_8php.html#ad9ff8ba554576383c5911a4bce068c1f',1,'plugin.php']]],
['format_5flike',['format_like',['../conversation_8php.html#a3d8e30cc94f9a175054c021305d3aca3',1,'conversation.php']]],
['format_5flocation',['format_location',['../conversation_8php.html#a0891aaa4492cba2b51eda12fe01957f3',1,'conversation.php']]],
diff --git a/doc/html/search/all_67.js b/doc/html/search/all_67.js
index 63d49ae1a..065d9ae9b 100644
--- a/doc/html/search/all_67.js
+++ b/doc/html/search/all_67.js
@@ -3,8 +3,10 @@ var searchData=
['gen_5ftoken',['gen_token',['../classFKOAuthDataStore.html#aa1a268be88ad3979bb4cc35bbb4dc819',1,'FKOAuthDataStore']]],
['gender_5fselector',['gender_selector',['../profile__selectors_8php.html#ae2b2c087e6530c61c0b256fd26d52355',1,'profile_selectors.php']]],
['gender_5fselector_5fmin',['gender_selector_min',['../profile__selectors_8php.html#a8bfa1ca2d1598a3d65f1f9bb803ca816',1,'profile_selectors.php']]],
- ['generatedirectoryindex',['generateDirectoryIndex',['../classRedBrowser.html#a1f7daf50bb9bfcde7345b3b1908dbd7e',1,'RedBrowser']]],
- ['get',['get',['../classCache.html#a70392b109331897bf9fdd7f1960e21de',1,'Cache\get()'],['../classRedFile.html#a7c868dfcef6c70cd0e24cf3caa2c3535',1,'RedFile\get()']]],
+ ['generate_5fmap',['generate_map',['../text_8php.html#ae0333c304ec5b4b72e66bb2933fa7357',1,'text.php']]],
+ ['generate_5fnamed_5fmap',['generate_named_map',['../text_8php.html#af5eb4a9c1599764f80c5bc71e0125d4b',1,'text.php']]],
+ ['generatedirectoryindex',['generateDirectoryIndex',['../classRedMatrix_1_1RedDAV_1_1RedBrowser.html#af764d5f14df751f9ec86c34fab300c09',1,'RedMatrix::RedDAV::RedBrowser']]],
+ ['get',['get',['../classCache.html#a70392b109331897bf9fdd7f1960e21de',1,'Cache\get()'],['../classRedMatrix_1_1RedDAV_1_1RedFile.html#a7241beecd01f5bb4e74659863dd85bd8',1,'RedMatrix\RedDAV\RedFile\get()']]],
['get_5faccount',['get_account',['../classApp.html#a08bc87aff64f39fbc084e9d6545cee4d',1,'App']]],
['get_5faccount_5fid',['get_account_id',['../boot_8php.html#afe88b920aa285982edb817a0dd44eb37',1,'boot.php']]],
['get_5fall_5fperms',['get_all_perms',['../permissions_8php.html#aeca9b280f3dc3358c89976d81d690008',1,'permissions.php']]],
@@ -20,8 +22,9 @@ var searchData=
['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_5fchannel_5fdefault_5fperms',['get_channel_default_perms',['../identity_8php.html#a293f416ce9050220b183e08ff5890216',1,'identity.php']]],
['get_5fchild',['get_child',['../classItem.html#a632185dd25c5caf277067c76230a4320',1,'Item']]],
- ['get_5fchildren',['get_children',['../classItem.html#aa0ee775ec94abccec6c798428835d001',1,'Item']]],
+ ['get_5fchildren',['get_children',['../classRedMatrix_1_1Import_1_1Import.html#a57561904b0f127e0d9a3e2c33688daf8',1,'RedMatrix\Import\Import\get_children()'],['../classItem.html#aa0ee775ec94abccec6c798428835d001',1,'Item\get_children()']]],
['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']]],
@@ -29,14 +32,17 @@ var searchData=
['get_5fconfig',['get_config',['../include_2config_8php.html#af02c96e6b37335774b548914ede1d22e',1,'config.php']]],
['get_5fconfig_5ffrom_5fstorage',['get_config_from_storage',['../include_2config_8php.html#af08b7adb63adfb2eda7c466fba0cce74',1,'config.php']]],
['get_5fconversation',['get_conversation',['../classItem.html#a0c301aaed2b7d682728d18db3a22afa3',1,'Item']]],
+ ['get_5fcredentials',['get_credentials',['../classRedMatrix_1_1Import_1_1Import.html#a24134929d9a8a682da2036a0bf326367',1,'RedMatrix::Import::Import']]],
['get_5fcustom_5fnav',['get_custom_nav',['../boot_8php.html#a899d24fd074594ceebbf72e1feff335f',1,'boot.php']]],
['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_5fdiaspora_5fkey',['get_diaspora_key',['../diaspora_8php.html#a9bf7ef4094e0e14f6e2b7fe76ab7ad2e',1,'diaspora.php']]],
+ ['get_5fdiaspora_5freshare_5fxml',['get_diaspora_reshare_xml',['../diaspora_8php.html#ac9e41e46626dc608204bf4b5e16e62d7',1,'diaspora.php']]],
['get_5fdim',['get_dim',['../datetime_8php.html#a7df24d72ea05922d3127363e2295174c',1,'datetime.php']]],
['get_5fdirectory_5frealm',['get_directory_realm',['../boot_8php.html#a329400dcb29897cdaae3020109272285',1,'boot.php']]],
+ ['get_5fdisplay_5fmode',['get_display_mode',['../classItem.html#a23d4057883f8ed888c0c2ff12d8aa5d0',1,'Item']]],
['get_5fevents',['get_events',['../identity_8php.html#ae381db3d43f8e7c1da8b15d14ecf5312',1,'identity.php']]],
['get_5ffeatures',['get_features',['../features_8php.html#ae73c5b03b01c7284ed7e7e0e774e975c',1,'features.php']]],
['get_5ffeed_5ffor',['get_feed_for',['../items_8php.html#a04a35b610acfe54434df08adec39c0c7',1,'items.php']]],
@@ -46,10 +52,14 @@ var searchData=
['get_5fgroups',['get_groups',['../classApp.html#a4659785d13e4bac0bed50dbb1b0d4299',1,'App']]],
['get_5fhostname',['get_hostname',['../classApp.html#a622eace13f8fc9f4b5672a68e2bc4396',1,'App']]],
['get_5fid',['get_id',['../classItem.html#ac0f27e58532612f6e7a54c8a621b9b92',1,'Item']]],
+ ['get_5finstall_5fscript',['get_install_script',['../classdba__driver.html#a8d6a79d39d7eaee5aea4e952c4529d48',1,'dba_driver']]],
['get_5fintltext_5ftemplate',['get_intltext_template',['../classFriendicaSmartyEngine.html#a35ec0ee828c36640ea25296bcb84a118',1,'FriendicaSmartyEngine\get_intltext_template()'],['../plugin_8php.html#acb63c27d07f6d7dffe95f98a6cef1295',1,'get_intltext_template():&#160;plugin.php']]],
+ ['get_5fitem',['get_item',['../classRedMatrix_1_1Import_1_1Import.html#a27987a41cb703a796f1821baeb4774a2',1,'RedMatrix::Import::Import']]],
['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_5fitem_5fident',['get_item_ident',['../classRedMatrix_1_1Import_1_1Import.html#a772c28edf36aaf8e66007a95004c4059',1,'RedMatrix::Import::Import']]],
+ ['get_5fitemlist',['get_itemlist',['../classRedMatrix_1_1Import_1_1Import.html#a855cd5a79b95d269ae8737fae774e3bc',1,'RedMatrix::Import::Import']]],
['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',['../interfaceITemplateEngine.html#aaf2698adbf46c073c24b162fe1b1c442',1,'ITemplateEngine\get_markup_template()'],['../classFriendicaSmartyEngine.html#aab5994077fc3a64222e41b28e2bd8d88',1,'FriendicaSmartyEngine\get_markup_template()'],['../classTemplate.html#afd97b4b1e7754a550e67c0ea79159059',1,'Template\get_markup_template()'],['../plugin_8php.html#a75f7dfed291fd7add7fc85b5c022a1f4',1,'get_markup_template():&#160;plugin.php']]],
@@ -59,6 +69,7 @@ var searchData=
['get_5fmood_5fverbs',['get_mood_verbs',['../text_8php.html#a736db13a966b8abaf8c9198faa35911a',1,'text.php']]],
['get_5fmy_5faddress',['get_my_address',['../identity_8php.html#a490972c02fdb638c52ec0e012a30bfd2',1,'identity.php']]],
['get_5fmy_5furl',['get_my_url',['../identity_8php.html#aa46321e1cd6a3b8dfde8bf9510112fec',1,'identity.php']]],
+ ['get_5fnull_5fdate',['get_null_date',['../classdba__driver.html#a65a5c7b355ab5529a43049e160006426',1,'dba_driver']]],
['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']]],
@@ -85,6 +96,7 @@ var searchData=
['get_5fsys_5fchannel',['get_sys_channel',['../identity_8php.html#aaff86ee3b5984821e7a256c2da5f1a51',1,'identity.php']]],
['get_5fsystem_5fapps',['get_system_apps',['../include_2apps_8php.html#ae64f72eb4f126e03b4eb65ed1702a3ca',1,'apps.php']]],
['get_5ftags',['get_tags',['../text_8php.html#a4659fbc4e54ddc700c3aa66b9092c623',1,'text.php']]],
+ ['get_5ftaxonomy',['get_taxonomy',['../classRedMatrix_1_1Import_1_1Import.html#ae3c6472bea1a44025bc2e152604eb20c',1,'RedMatrix::Import::Import']]],
['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()']]],
['get_5ftemplate_5fengine',['get_template_engine',['../classApp.html#acb27e607fe4c82603444676e25c36b70',1,'App']]],
@@ -100,19 +112,22 @@ var searchData=
['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']]],
+ ['getasseturl',['getAssetUrl',['../classRedMatrix_1_1RedDAV_1_1RedBrowser.html#acaa792c08d24e9dc2919759e92ba037d',1,'RedMatrix::RedDAV::RedBrowser']]],
+ ['getchild',['getChild',['../classRedMatrix_1_1RedDAV_1_1RedDirectory.html#a1a37850bdd1f188abd6160559698d5d7',1,'RedMatrix::RedDAV::RedDirectory']]],
+ ['getchildren',['getChildren',['../classRedMatrix_1_1RedDAV_1_1RedDirectory.html#a9b9a0b5bfa4de1f78e6cafaa534b6f6a',1,'RedMatrix::RedDAV::RedDirectory']]],
+ ['getcontenttype',['getContentType',['../classRedMatrix_1_1RedDAV_1_1RedFile.html#af5c88b75d0c1f590af03755534cb167e',1,'RedMatrix::RedDAV::RedFile']]],
+ ['getcurrentuser',['getCurrentUser',['../classRedMatrix_1_1RedDAV_1_1RedBasicAuth.html#aa0b2a5fa9186d7dc0e637f1ecb379c42',1,'RedMatrix::RedDAV::RedBasicAuth']]],
+ ['getdir',['getDir',['../classRedMatrix_1_1RedDAV_1_1RedDirectory.html#a825dc5f3e0f83f50736c16daa6a4809d',1,'RedMatrix::RedDAV::RedDirectory']]],
+ ['getdriver',['getdriver',['../classdba__driver.html#a02165fc4bee63d040ebd963a4fa82a14',1,'dba_driver\getdriver()'],['../classdba__mysql.html#a31011edd67b6b394355bf04cedb498d0',1,'dba_mysql\getdriver()'],['../classdba__mysqli.html#a6eb6c578c6928908321e5e6da866e1db',1,'dba_mysqli\getdriver()'],['../classdba__postgres.html#ae0f834413e57cf0735ae7b64b2f71e68',1,'dba_postgres\getdriver()']]],
+ ['getetag',['getETag',['../classRedMatrix_1_1RedDAV_1_1RedFile.html#a9f14682acf3ccb70df5af5dd0687c689',1,'RedMatrix::RedDAV::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',['../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']]],
+ ['getlastmodified',['getLastModified',['../classRedMatrix_1_1RedDAV_1_1RedDirectory.html#a69db5f641f8f5dc999e55cee1832ecd5',1,'RedMatrix\RedDAV\RedDirectory\getLastModified()'],['../classRedMatrix_1_1RedDAV_1_1RedFile.html#ac47016aa0e3f6f1a1c4570bd6fd8cf25',1,'RedMatrix\RedDAV\RedFile\getLastModified()']]],
+ ['getname',['getName',['../classRedMatrix_1_1RedDAV_1_1RedDirectory.html#a55f7172814a0749b5342f152ab3fa0df',1,'RedMatrix\RedDAV\RedDirectory\getName()'],['../classRedMatrix_1_1RedDAV_1_1RedFile.html#ac945aa782d6c035d339e59974266ec4d',1,'RedMatrix\RedDAV\RedFile\getName()']]],
+ ['getquotainfo',['getQuotaInfo',['../classRedMatrix_1_1RedDAV_1_1RedDirectory.html#a69db443ed3c84938b4352fe515bf8d68',1,'RedMatrix::RedDAV::RedDirectory']]],
+ ['getsize',['getSize',['../classRedMatrix_1_1RedDAV_1_1RedFile.html#a07e1b19e7aaf3dcce822e9be8823a87d',1,'RedMatrix::RedDAV::RedFile']]],
+ ['gettimezone',['getTimezone',['../classRedMatrix_1_1RedDAV_1_1RedBasicAuth.html#a6333c8ce58998bd11bf8102afe3b0748',1,'RedMatrix::RedDAV::RedBasicAuth']]],
['gettype',['getType',['../classphoto__driver.html#a6c6c16dbc4f517ce799f9143ed61f0e3',1,'photo_driver']]],
['getwidth',['getWidth',['../classphoto__driver.html#acc30486acee9e89e32701f44a1738117',1,'photo_driver']]],
['goaway',['goaway',['../boot_8php.html#a5ab6181607a090bcdbaa13b15b85aba1',1,'boot.php']]],
diff --git a/doc/html/search/all_68.js b/doc/html/search/all_68.js
index 7d0f6ce9e..184f04666 100644
--- a/doc/html/search/all_68.js
+++ b/doc/html/search/all_68.js
@@ -1,7 +1,7 @@
var searchData=
[
['handle_5ffeed',['handle_feed',['../items_8php.html#a52c24114b73c0bdb605a03cd29712223',1,'items.php']]],
- ['handle_5ftag',['handle_tag',['../item_8php.html#aa22feef4de326e1d7078dedd892e615c',1,'item.php']]],
+ ['handle_5ftag',['handle_tag',['../text_8php.html#aa22feef4de326e1d7078dedd892e615c',1,'text.php']]],
['has_5fpermissions',['has_permissions',['../items_8php.html#a77051724d1784074ff187e73a4db93fe',1,'items.php']]],
['hcard_2ephp',['hcard.php',['../hcard_8php.html',1,'']]],
['hcard_5fcontent',['hcard_content',['../hcard_8php.html#a3663012f1549849af88aba2bb87388e3',1,'hcard.php']]],
@@ -18,8 +18,9 @@ var searchData=
['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']]],
+ ['hivenet_5finit',['hivenet_init',['../hivenet_2php_2theme_8php.html#a3a8b539b112ae63936025236dbaf0a29',1,'theme.php']]],
['home_2ephp',['home.php',['../home_8php.html',1,'']]],
- ['home_5fcontent',['home_content',['../home_8php.html#aa1cf697851a646755baf537f75334c46',1,'home.php']]],
+ ['home_5fcontent',['home_content',['../home_8php.html#a6e3dbf78f4ed74ab2577de221190b33f',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']]],
@@ -28,9 +29,10 @@ 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']]],
+ ['htmlactionspanel',['htmlActionsPanel',['../classRedMatrix_1_1RedDAV_1_1RedBrowser.html#a3bd98af2d1cdfd8f26deb914596176cf',1,'RedMatrix::RedDAV::RedBrowser']]],
['http_5fstatus_5fexit',['http_status_exit',['../include_2network_8php.html#a4cfb2c05a1c295317283d762440ce0b2',1,'network.php']]],
['hubloc_2ephp',['hubloc.php',['../hubloc_8php.html',1,'']]],
+ ['hubloc_5fchange_5fprimary',['hubloc_change_primary',['../hubloc_8php.html#ad86214b3a74084bd7b54e8d6c919ce4d',1,'hubloc.php']]],
['hubloc_5fflags_5fdeleted',['HUBLOC_FLAGS_DELETED',['../boot_8php.html#a7c286add8961fd2d79216314cd4aadd8',1,'boot.php']]],
['hubloc_5fflags_5forphancheck',['HUBLOC_FLAGS_ORPHANCHECK',['../boot_8php.html#aefe573c3c7b0d37fbff264bbae79d673',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 e97771040..887925d63 100644
--- a/doc/html/search/all_69.js
+++ b/doc/html/search/all_69.js
@@ -1,15 +1,20 @@
var searchData=
[
+ ['ical_5fwrapper',['ical_wrapper',['../event_8php.html#ab8cc2825013e724dc26229026711cf93',1,'event.php']]],
['identity_2ephp',['identity.php',['../identity_8php.html',1,'']]],
- ['identity_5fbasic_5fexport',['identity_basic_export',['../identity_8php.html#a3570a4eb77332b292d394c4132cb8f03',1,'identity.php']]],
+ ['identity_5fbasic_5fexport',['identity_basic_export',['../identity_8php.html#afaedbc8e2d2a70ec8b006162baac5249',1,'identity.php']]],
['identity_5fcheck_5fservice_5fclass',['identity_check_service_class',['../identity_8php.html#ac9fcd5c4c371998790b5c55c3d0f4633',1,'identity.php']]],
['identity_5fselector',['identity_selector',['../identity_8php.html#a2ab5172eabd375869060c9ad68323f5c',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#a3987f5547ceb7e36a210a66a06241a5a',1,'if():&#160;default.php'],['../full_8php.html#a3987f5547ceb7e36a210a66a06241a5a',1,'if():&#160;full.php'],['../redable_8php.html#a3987f5547ceb7e36a210a66a06241a5a',1,'if():&#160;redable.php'],['../apw_2php_2style_8php.html#a2f71e817b8fac88ce7f0ec5c0fb88b8d',1,'if():&#160;style.php'],['../theme_2mytheme_2php_2default_8php.html#a3987f5547ceb7e36a210a66a06241a5a',1,'if():&#160;default.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()']]],
+ ['impel_2ephp',['impel.php',['../impel_8php.html',1,'']]],
+ ['impel_5finit',['impel_init',['../impel_8php.html#ab7db6fca43b42ea4332cb3e841b3cf7b',1,'impel.php']]],
+ ['import',['Import',['../classRedMatrix_1_1Import_1_1Import.html',1,'RedMatrix::Import']]],
['import_2ephp',['import.php',['../import_8php.html',1,'']]],
['import_5fauthor_5fdiaspora',['import_author_diaspora',['../items_8php.html#a2c3f97b2109c05df86d97449b3c78ebc',1,'items.php']]],
['import_5fauthor_5frss',['import_author_rss',['../items_8php.html#a6bee35961f2e32905f20367a9309d627',1,'items.php']]],
+ ['import_5fauthor_5funknown',['import_author_unknown',['../items_8php.html#a37f79991f36811cf847446ff60e8e11f',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']]],
@@ -22,11 +27,13 @@ var searchData=
['import_5fxchan',['import_xchan',['../zot_8php.html#a528e97ca5d69c3b7f35c5d954afde315',1,'zot.php']]],
['importelm_2ephp',['importelm.php',['../importelm_8php.html',1,'']]],
['importelm_5fpost',['importelm_post',['../importelm_8php.html#a1a4f71e6d76ace6add5e9659845f5e5f',1,'importelm.php']]],
+ ['importer_2ephp',['Importer.php',['../Importer_8php.html',1,'']]],
['in_5farrayi',['in_arrayi',['../text_8php.html#a75c326298519ed14ebe762194c8a3f2a',1,'text.php']]],
['info',['info',['../boot_8php.html#adfb2fc7be5a4226c0a8e24131da9d498',1,'boot.php']]],
['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']]],
+ ['install_5fscript',['INSTALL_SCRIPT',['../classdba__driver.html#a98d8523dcedda316085b4d4f856b6583',1,'dba_driver\INSTALL_SCRIPT()'],['../classdba__postgres.html#a7267f91c3f87f600b30d7560de62dfd7',1,'dba_postgres\INSTALL_SCRIPT()']]],
['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']]],
@@ -81,6 +88,7 @@ var searchData=
['item_5frelay',['ITEM_RELAY',['../boot_8php.html#a2958a2bd5422b85329d7c36c06dbc221',1,'boot.php']]],
['item_5fremove_5fcid',['item_remove_cid',['../items_8php.html#a5ed782ff5b9cf050bec931e06de12c00',1,'items.php']]],
['item_5fretained',['ITEM_RETAINED',['../boot_8php.html#a11cfe7d99b4dac0454d0de8873989f81',1,'boot.php']]],
+ ['item_5frss',['ITEM_RSS',['../boot_8php.html#ac4d1c93dabcace711ffb4931204c336b',1,'boot.php']]],
['item_5fspam',['ITEM_SPAM',['../boot_8php.html#a40d885b2cfd736aab4234ae641ca4dfb',1,'boot.php']]],
['item_5fstarred',['ITEM_STARRED',['../boot_8php.html#a7af107fab8d62b9a73801713b774ed30',1,'boot.php']]],
['item_5fstore',['item_store',['../items_8php.html#a2541e6861a56d145c9281877cc501615',1,'items.php']]],
diff --git a/doc/html/search/all_6c.js b/doc/html/search/all_6c.js
index 8299c4b92..3d8365dbc 100644
--- a/doc/html/search/all_6c.js
+++ b/doc/html/search/all_6c.js
@@ -9,6 +9,7 @@ var searchData=
['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']]],
+ ['layouts_5finit',['layouts_init',['../layouts_8php.html#a39c8e9f72641c684c8b689bd91a642fa',1,'layouts.php']]],
['ldelim',['ldelim',['../namespacefriendica-to-smarty-tpl.html#a0b4cf73d1a8d201a28d269eeb62a5d5c',1,'friendica-to-smarty-tpl']]],
['legal_5fwebbie',['legal_webbie',['../text_8php.html#a2690ad67bb6fb97ef69de3e8d23f2728',1,'text.php']]],
['like_2ephp',['like.php',['../like_8php.html',1,'']]],
@@ -17,7 +18,7 @@ var searchData=
['limit_5fbody_5fsize',['limit_body_size',['../items_8php.html#af94c281016c6c912d06e064113336c5c',1,'items.php']]],
['link_5fcompare',['link_compare',['../text_8php.html#a47c1e4a5f3f53027daacd8a9db24f285',1,'text.php']]],
['linkify',['linkify',['../text_8php.html#a11255c8c4e5245b6c24f97684826aa54',1,'text.php']]],
- ['list_5fpost_5fdates',['list_post_dates',['../items_8php.html#aa2d3caa2f27720762b5c729e07df40fb',1,'items.php']]],
+ ['list_5fpost_5fdates',['list_post_dates',['../items_8php.html#ab33fa9756aaa5f39a6104d57a62baf00',1,'items.php']]],
['list_5fpublic_5fsites',['list_public_sites',['../dirsearch_8php.html#a985d410a170549429857af6ff2673149',1,'dirsearch.php']]],
['load',['load',['../classphoto__driver.html#a19e1af2b6af4c63aa6230abe69f83712',1,'photo_driver\load()'],['../classphoto__gd.html#a33092b889875b68bfb1c97ff123012d9',1,'photo_gd\load()'],['../classphoto__imagick.html#a2c9168f110ccd6c264095d766615dfa8',1,'photo_imagick\load()']]],
['load_5fconfig',['load_config',['../include_2config_8php.html#a27559f388c9b9af81c94e48d6889d1d1',1,'config.php']]],
@@ -25,16 +26,21 @@ var searchData=
['load_5fdatabase',['load_database',['../setup_8php.html#ad2e0375a9ab87ebe6e78124ee125054a',1,'setup.php']]],
['load_5fdatabase_5frem',['load_database_rem',['../setup_8php.html#a2b375ddc555140236fc500135de99371',1,'setup.php']]],
['load_5fhooks',['load_hooks',['../plugin_8php.html#a326365e48ef94f0b9a0a771b8d75e813',1,'plugin.php']]],
- ['load_5fpconfig',['load_pconfig',['../include_2config_8php.html#ac543813a980b3841cc5a277fcd4a24a6',1,'config.php']]],
+ ['load_5fpconfig',['load_pconfig',['../include_2config_8php.html#a559791dda7fef8a4b2394c83e835787b',1,'config.php']]],
+ ['load_5fpdl',['load_pdl',['../boot_8php.html#a50a6707a28c7d05d3f49eaabc7994501',1,'boot.php']]],
['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']]],
+ ['load_5fxconfig',['load_xconfig',['../include_2config_8php.html#aee4b619839cf4b64220f34edf5c67b52',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()']]],
+ ['locs_2ephp',['locs.php',['../locs_8php.html',1,'']]],
+ ['locs_5fcontent',['locs_content',['../locs_8php.html#a6c900f53970c0d0e738d2fe06d27ca44',1,'locs.php']]],
+ ['locs_5fpost',['locs_post',['../locs_8php.html#a6b43654592919ac863d67a1f787a69b9',1,'locs.php']]],
+ ['log',['log',['../classRedMatrix_1_1RedDAV_1_1RedBasicAuth.html#abf6fe89b0a8239ed93c3b07e1fbce75b',1,'RedMatrix\RedDAV\RedBasicAuth\log()'],['../classRedMatrix_1_1RedDAV_1_1RedDirectory.html#af90a1a74cfd643a5c56b9a17ea250d59',1,'RedMatrix\RedDAV\RedDirectory\log()']]],
+ ['log_5ffailed_5flogin',['log_failed_login',['../auth_8php.html#ae3ecb5f34f202c7f9a61c5d589f6c6e1',1,'auth.php']]],
['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 73d951943..879ff1473 100644
--- a/doc/html/search/all_6d.js
+++ b/doc/html/search/all_6d.js
@@ -24,7 +24,7 @@ var searchData=
['mark_5forphan_5fhubsxchans',['mark_orphan_hubsxchans',['../Contact_8php.html#a08845ce8c5b997d5edac38ae7118b5c8',1,'Contact.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']]],
+ ['match_5fopenid',['match_openid',['../auth_8php.html#a69fa663e6baf65f80d1b114ad72615f2',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']]],
@@ -45,6 +45,7 @@ var searchData=
['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#a32701c4245e78ba9106eef52c08bf33d',1,'menu.php']]],
+ ['menu_5flist_5fcount',['menu_list_count',['../include_2menu_8php.html#a251bf7e15d21627fd92614198e41c485',1,'menu.php']]],
['menu_5fpost',['menu_post',['../mod_2menu_8php.html#aaa491ef173868fe002aece4632bcf393',1,'menu.php']]],
['menu_5frender',['menu_render',['../include_2menu_8php.html#a03a5deed3908543581c074ce333e9d6a',1,'menu.php']]],
['menu_5fsystem',['MENU_SYSTEM',['../boot_8php.html#a718a801b0be6cbaef5e519516da12721',1,'boot.php']]],
diff --git a/doc/html/search/all_6e.js b/doc/html/search/all_6e.js
index a776758e5..033269fb9 100644
--- a/doc/html/search/all_6e.js
+++ b/doc/html/search/all_6e.js
@@ -1,6 +1,6 @@
var searchData=
[
- ['n',['n',['../php2po_8php.html#a1594a11499d06cc8a789ee7ca0c7a12b',1,'php2po.php']]],
+ ['n',['n',['../fixd_8php.html#a9d4f8a2ab4d92b3ccfd7cba0458098eb',1,'n():&#160;fixd.php'],['../php2po_8php.html#a1594a11499d06cc8a789ee7ca0c7a12b',1,'n():&#160;php2po.php']]],
['names',['names',['../namespaceupdatetpl.html#ab42dd79af65ee82201fd6f04715f62f6',1,'updatetpl']]],
['nameslist',['namesList',['../docblox__errorchecker_8php.html#a2b767cfc461fdd5061fffc9e4a806d5b',1,'docblox_errorchecker.php']]],
['namespace_5factivity',['NAMESPACE_ACTIVITY',['../boot_8php.html#a5df5359090d1f8e898c36d7cf8878ad2',1,'boot.php']]],
@@ -17,6 +17,7 @@ var searchData=
['namespace_5fstatusnet',['NAMESPACE_STATUSNET',['../boot_8php.html#afaf93b7026f784b113b4f8921745891e',1,'boot.php']]],
['namespace_5fthread',['NAMESPACE_THREAD',['../boot_8php.html#a1d6e7f4c08bb68e4a424326a811bdd86',1,'boot.php']]],
['namespace_5ftomb',['NAMESPACE_TOMB',['../boot_8php.html#a4bfe22e163657690dfb6d5b1d04cb47e',1,'boot.php']]],
+ ['namespace_5fymedia',['NAMESPACE_YMEDIA',['../boot_8php.html#a3d48dffd9dc73a187263c3002cdf00c0',1,'boot.php']]],
['namespace_5fzot',['NAMESPACE_ZOT',['../boot_8php.html#a49f2a70b3b43aa904223a8d19e986a47',1,'boot.php']]],
['nav',['nav',['../nav_8php.html#a43be0df73b90647ea70947ce004e231e',1,'nav.php']]],
['nav_2ephp',['nav.php',['../nav_8php.html',1,'']]],
@@ -66,11 +67,13 @@ var searchData=
['notification',['notification',['../enotify_8php.html#a3e9a9355b243777c488d2a9883908dfc',1,'enotify.php']]],
['notifications_2ephp',['notifications.php',['../notifications_8php.html',1,'']]],
['notifications_5fcontent',['notifications_content',['../notifications_8php.html#aadd0b5525bd8c283a5d8a37982bbfe62',1,'notifications.php']]],
+ ['notifications_5foff',['notifications_off',['../identity_8php.html#a2e6a1cc35887937823ec7fbb90472afe',1,'identity.php']]],
+ ['notifications_5fon',['notifications_on',['../identity_8php.html#a5650319c799de09d1b6d1076b6f839a4',1,'identity.php']]],
['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',['../include_2notify_8php.html',1,'']]],
['notify_2ephp',['notify.php',['../mod_2notify_8php.html',1,'']]],
+ ['notify_2ephp',['notify.php',['../include_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']]],
@@ -85,5 +88,6 @@ var searchData=
['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']]]
+ ['nuke_5fsession',['nuke_session',['../auth_8php.html#a2add3a1129ffa4d5515442a9d52a9b1a',1,'auth.php']]],
+ ['null_5fdate',['NULL_DATE',['../classdba__driver.html#afce39394c010ea589d99a21579b2c31e',1,'dba_driver\NULL_DATE()'],['../classdba__postgres.html#aeb404a85974d6c5df30c21650888000b',1,'dba_postgres\NULL_DATE()']]]
];
diff --git a/doc/html/search/all_6f.js b/doc/html/search/all_6f.js
index 65f262de1..dfad733d0 100644
--- a/doc/html/search/all_6f.js
+++ b/doc/html/search/all_6f.js
@@ -30,6 +30,7 @@ var searchData=
['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']]],
+ ['optimize_5ftable',['optimize_table',['../classdba__driver.html#a77e59dcbeab30ca6000131d2e9ad4092',1,'dba_driver\optimize_table()'],['../classdba__postgres.html#a3de1ac375e98886dfc38fd0066e88f90',1,'dba_postgres\optimize_table()']]],
['orient',['orient',['../classphoto__driver.html#a4de5bac8daea8f291a33c80788019d0d',1,'photo_driver']]],
['os_5fmkdir',['os_mkdir',['../boot_8php.html#a5fbebdf7a1c0ea8f904dbd9d78c2c06c',1,'boot.php']]],
['outf',['outf',['../namespacefriendica-to-smarty-tpl.html#a87182a9bab47640428bd0b2b9946bef9',1,'friendica-to-smarty-tpl']]],
diff --git a/doc/html/search/all_70.js b/doc/html/search/all_70.js
index ccd965d62..df9d49a93 100644
--- a/doc/html/search/all_70.js
+++ b/doc/html/search/all_70.js
@@ -1,5 +1,7 @@
var searchData=
[
+ ['p_2ephp',['p.php',['../p_8php.html',1,'']]],
+ ['p_5finit',['p_init',['../p_8php.html#af9d5530ca0b3dc9409cf591c39e2480e',1,'p.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']]],
@@ -9,6 +11,7 @@ var searchData=
['page_5fcontent',['page_content',['../page_8php.html#a91a5f649f68406149108bded1dc90b22',1,'page.php']]],
['page_5fdirectory_5fchannel',['PAGE_DIRECTORY_CHANNEL',['../boot_8php.html#a5b8484922918946d041e5e0515dbe718',1,'boot.php']]],
['page_5fhidden',['PAGE_HIDDEN',['../boot_8php.html#a5e322a2a2d0f51924c0b2e874988e640',1,'boot.php']]],
+ ['page_5fhubadmin',['PAGE_HUBADMIN',['../boot_8php.html#afbb21ecccac9819aa65397e816868a5f',1,'boot.php']]],
['page_5finit',['page_init',['../page_8php.html#a4d89800c0366a239191b1692c09635cf',1,'page.php']]],
['page_5fnormal',['PAGE_NORMAL',['../boot_8php.html#a09532c3f750ae8c4527e63b2b790cbf3',1,'boot.php']]],
['page_5fpremium',['PAGE_PREMIUM',['../boot_8php.html#ab3920c2f3cd64802c0b7ff625c3b2ea8',1,'boot.php']]],
@@ -63,6 +66,7 @@ var searchData=
['perms_5fw_5ftagwall',['PERMS_W_TAGWALL',['../boot_8php.html#a99a4a17cb644e7e6826ea07ecaf09777',1,'boot.php']]],
['perms_5fw_5fwall',['PERMS_W_WALL',['../boot_8php.html#a6b14a31a8aa9f3452a13383f413bffa2',1,'boot.php']]],
['photo_2ephp',['photo.php',['../photo_8php.html',1,'']]],
+ ['photo_5fadult',['PHOTO_ADULT',['../boot_8php.html#a921c55b9fa59a327a5f0e07fa1ccb2e0',1,'boot.php']]],
['photo_5fdriver',['photo_driver',['../classphoto__driver.html',1,'']]],
['photo_5fdriver_2ephp',['photo_driver.php',['../photo__driver_8php.html',1,'']]],
['photo_5ffactory',['photo_factory',['../photo__driver_8php.html#a32e2817faa25d7f11f60a8abff565035',1,'photo_driver.php']]],
@@ -130,26 +134,6 @@ var searchData=
['post_5factivity_5fitem',['post_activity_item',['../items_8php.html#a410f9c743877c125ca06312373346903',1,'items.php']]],
['post_5finit',['post_init',['../post_8php.html#af4b48181ce773ef0cdfc972441445c34',1,'post.php']]],
['post_5fpost',['post_post',['../post_8php.html#af59e6a1dc22d19d9257b01cd7ccedb75',1,'post.php']]],
- ['post_5fto_5fred_2ephp',['post_to_red.php',['../post__to__red_8php.html',1,'']]],
- ['post_5fto_5fred_5facct_5fname',['post_to_red_acct_name',['../post__to__red_8php.html#a588cea66afe0b32f27f2713d44940119',1,'post_to_red.php']]],
- ['post_5fto_5fred_5fadmin',['post_to_red_admin',['../post__to__red_8php.html#aeec4125719184e7b097b3b9fba3101b5',1,'post_to_red.php']]],
- ['post_5fto_5fred_5fdeactivate',['post_to_red_deactivate',['../post__to__red_8php.html#a49fd35f7b1cdddfe6e26ddfcf8d3c4ec',1,'post_to_red.php']]],
- ['post_5fto_5fred_5fdelete_5fcomment',['post_to_red_delete_comment',['../post__to__red_8php.html#a5cc2a89a6d33cdb8e2ca557a69bef42d',1,'post_to_red.php']]],
- ['post_5fto_5fred_5fdelete_5fpost',['post_to_red_delete_post',['../post__to__red_8php.html#a4674bb5ce2baa32c559607460c39a2c5',1,'post_to_red.php']]],
- ['post_5fto_5fred_5fdisplay_5fadmin_5fpage',['post_to_red_display_admin_page',['../post__to__red_8php.html#a8ec8f8809e3c5d1b2c9598c8185d63aa',1,'post_to_red.php']]],
- ['post_5fto_5fred_5fdisplayadmincontent',['post_to_red_displayAdminContent',['../post__to__red_8php.html#a75db5d87226a0287a0ac0fa315f2bcfd',1,'post_to_red.php']]],
- ['post_5fto_5fred_5fget_5facct_5fname',['post_to_red_get_acct_name',['../post__to__red_8php.html#ae6f3a2c0561cbeacda5be565b06de8a7',1,'post_to_red.php']]],
- ['post_5fto_5fred_5fget_5favatar',['post_to_red_get_avatar',['../post__to__red_8php.html#ae0b881461afbdba93d9329068ea52136',1,'post_to_red.php']]],
- ['post_5fto_5fred_5fget_5fchannel_5fname',['post_to_red_get_channel_name',['../post__to__red_8php.html#aacba7a0646fc00ae6ac4f5dc383fccab',1,'post_to_red.php']]],
- ['post_5fto_5fred_5fget_5fpassword',['post_to_red_get_password',['../post__to__red_8php.html#a4d90ac085c14f53ff4d8ab4c23477ea6',1,'post_to_red.php']]],
- ['post_5fto_5fred_5fget_5fseed_5flocation',['post_to_red_get_seed_location',['../post__to__red_8php.html#a96d0ccecb96600ef1bfd50ab3f77315f',1,'post_to_red.php']]],
- ['post_5fto_5fred_5fpath',['post_to_red_path',['../post__to__red_8php.html#a6210f39392a5f0fa0255cc7d3760493a',1,'post_to_red.php']]],
- ['post_5fto_5fred_5fpost',['post_to_red_post',['../post__to__red_8php.html#af5fd50e2c42ede85f8a9e8d9ee3cf540',1,'post_to_red.php']]],
- ['post_5fto_5fred_5fpost_5fcheckbox',['post_to_red_post_checkbox',['../post__to__red_8php.html#a0f139dea77a94c98f26007963eea639c',1,'post_to_red.php']]],
- ['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']]],
- ['post_5fto_5fred_5fversion',['post_to_red_version',['../post__to__red_8php.html#af3e7ebd361d4ed7cb6d43209970cd94a',1,'post_to_red.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']]],
@@ -164,8 +148,8 @@ var searchData=
['private_5fmessages_5ffetch_5fconversation',['private_messages_fetch_conversation',['../include_2message_8php.html#a5f8de9847e203329e317ac38dc646898',1,'message.php']]],
['private_5fmessages_5ffetch_5fmessage',['private_messages_fetch_message',['../include_2message_8php.html#a254a756031e4d5e94f85e2939bdb5091',1,'message.php']]],
['private_5fmessages_5flist',['private_messages_list',['../include_2message_8php.html#a652973ce47a262f2d238c2fd6233d97e',1,'message.php']]],
- ['probe_2ephp',['probe.php',['../mod_2probe_8php.html',1,'']]],
['probe_2ephp',['probe.php',['../include_2probe_8php.html',1,'']]],
+ ['probe_2ephp',['probe.php',['../mod_2probe_8php.html',1,'']]],
['probe_5factivity_5fstream',['probe_activity_stream',['../include_2probe_8php.html#a2daa857942aceca01f956016dbbd139c',1,'probe.php']]],
['probe_5fcontent',['probe_content',['../mod_2probe_8php.html#a1f1db3fa6038e451e737964c94bf5e99',1,'probe.php']]],
['probe_5fdfrn',['probe_dfrn',['../include_2probe_8php.html#a9b5eca1e01e52b3e65d64db0c92181e0',1,'probe.php']]],
@@ -177,7 +161,8 @@ var searchData=
['probe_5fzot',['probe_zot',['../include_2probe_8php.html#a3c02c7a23e8335a79c3c0f5331d11a85',1,'probe.php']]],
['proc_5frun',['proc_run',['../boot_8php.html#ab346a2ece14993861f3e4206befa94f0',1,'boot.php']]],
['process_5fchannel_5fsync_5fdelivery',['process_channel_sync_delivery',['../zot_8php.html#ac301c67864917c35922257950ae0f95c',1,'zot.php']]],
- ['process_5fdelivery',['process_delivery',['../zot_8php.html#a4d9e6ca295e443b740d9960c304b3474',1,'zot.php']]],
+ ['process_5fdelivery',['process_delivery',['../zot_8php.html#a0e3006e7a456b2175a9badc96bc5176d',1,'zot.php']]],
+ ['process_5flocation_5fdelivery',['process_location_delivery',['../zot_8php.html#a8eeefdb0dad4c436bea9d1c06c0a7988',1,'zot.php']]],
['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_2ephp',['profile.php',['../profile_8php.html',1,'']]],
@@ -212,5 +197,5 @@ var searchData=
['pubsites_5fcontent',['pubsites_content',['../pubsites_8php.html#af614e279aab54065345bda6b03eafdf0',1,'pubsites.php']]],
['purify_5fhtml',['purify_html',['../text_8php.html#a4841df5beabdd1bdd1ed56781a915d61',1,'text.php']]],
['push_5flang',['push_lang',['../language_8php.html#ac9142ef1d01a235c760deb0f16643f5a',1,'language.php']]],
- ['put',['put',['../classRedFile.html#a41a49a583eb276b75626fcf97f4a699c',1,'RedFile']]]
+ ['put',['put',['../classRedMatrix_1_1RedDAV_1_1RedFile.html#a709ec1288d21ddf1353524435ab916f0',1,'RedMatrix::RedDAV::RedFile']]]
];
diff --git a/doc/html/search/all_71.js b/doc/html/search/all_71.js
index c1c1f6ba7..be0700f6d 100644
--- a/doc/html/search/all_71.js
+++ b/doc/html/search/all_71.js
@@ -1,9 +1,10 @@
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']]],
+ ['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()'],['../classdba__postgres.html#a70352880231fba0b859f82cd5b290a9a',1,'dba_postgres\q()'],['../dba__driver_8php.html#a2c09a731d3b4fef41fed0e83db01be1f',1,'q():&#160;dba_driver.php']]],
['qp',['qp',['../text_8php.html#afc998d2796a6b2a08e96f7cc061e7221',1,'text.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']]],
+ ['quote_5finterval',['quote_interval',['../classdba__driver.html#ac9127e9c55fcc93bcfbb323b9b99b9d9',1,'dba_driver\quote_interval()'],['../classdba__postgres.html#a56f926f218155c88807e0e06f6817a72',1,'dba_postgres\quote_interval()']]],
['quotelevel',['quotelevel',['../html2plain_8php.html#a56d29b254333d29abb9d96a9a903a4b0',1,'html2plain.php']]]
];
diff --git a/doc/html/search/all_72.js b/doc/html/search/all_72.js
index dcee0cdf4..91380a803 100644
--- a/doc/html/search/all_72.js
+++ b/doc/html/search/all_72.js
@@ -1,5 +1,6 @@
var searchData=
[
+ ['import',['Import',['../namespaceRedMatrix_1_1Import.html',1,'RedMatrix']]],
['random_5fprofile',['random_profile',['../Contact_8php.html#a7e3f5bef8ea1d2bf8434c9be36a2b713',1,'Contact.php']]],
['random_5fstring',['random_string',['../text_8php.html#a9d6a5ee1290de7a8b483fe78585daade',1,'text.php']]],
['random_5fstring_5fhex',['RANDOM_STRING_HEX',['../text_8php.html#aad557c054cf2ed915633701018fc7e3f',1,'text.php']]],
@@ -11,33 +12,37 @@ var searchData=
['rbmark_5fpost',['rbmark_post',['../rbmark_8php.html#ac5a66aa8599fa5dc702bae396d8d1f8c',1,'rbmark.php']]],
['rconnect_5furl',['rconnect_url',['../Contact_8php.html#a2f4f495d53f2a334ab75292af79d3c91',1,'Contact.php']]],
['rdelim',['rdelim',['../namespacefriendica-to-smarty-tpl.html#a8540514fb7c4aa18ad2dffa2a975036b',1,'friendica-to-smarty-tpl']]],
- ['readme_2emd',['README.md',['../blogga_2php_2README_8md.html',1,'']]],
- ['readme_2emd',['README.md',['../apw_2README_8md.html',1,'']]],
+ ['readme_2emd',['README.md',['../README_8md.html',1,'']]],
['rebuild_5ftheme_5ftable',['rebuild_theme_table',['../admin_8php.html#ae46311a3fefc21abc838a26e91789de6',1,'admin.php']]],
['receive_2ephp',['receive.php',['../receive_8php.html',1,'']]],
['receive_5fpost',['receive_post',['../receive_8php.html#a03d8fa26e77844020ba5602deca7d494',1,'receive.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_5fitem_5fnew',['red_item_new',['../include_2api_8php.html#aafa82b65a9f879a1a1197cfe8aaf3898',1,'api.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']]],
['red_5fzrlify_5fimg_5fcallback',['red_zrlify_img_callback',['../items_8php.html#a78a60e39f6991bd3324a24dcbf9dac5a',1,'items.php']]],
['redable_2ephp',['redable.php',['../redable_8php.html',1,'']]],
['redbasic_2ephp',['redbasic.php',['../redbasic_8php.html',1,'']]],
['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,'']]],
+ ['redbasicauth',['RedBasicAuth',['../classRedMatrix_1_1RedDAV_1_1RedBasicAuth.html',1,'RedMatrix::RedDAV']]],
+ ['redbasicauth_2ephp',['RedBasicAuth.php',['../RedBasicAuth_8php.html',1,'']]],
+ ['redbrowser',['RedBrowser',['../classRedMatrix_1_1RedDAV_1_1RedBrowser.html',1,'RedMatrix::RedDAV']]],
+ ['redbrowser_2ephp',['RedBrowser.php',['../RedBrowser_8php.html',1,'']]],
['redchannellist',['RedChannelList',['../reddav_8php.html#ae92ea0df1993f6a7bcd1b6efa6c1fb66',1,'reddav.php']]],
['redcollectiondata',['RedCollectionData',['../reddav_8php.html#a5df0d09893f2e65dc5cf6bbab6cfb266',1,'reddav.php']]],
+ ['reddav',['RedDAV',['../namespaceRedMatrix_1_1RedDAV.html',1,'RedMatrix']]],
['reddav_2ephp',['reddav.php',['../reddav_8php.html',1,'']]],
- ['reddirectory',['RedDirectory',['../classRedDirectory.html',1,'']]],
- ['redfile',['RedFile',['../classRedFile.html',1,'']]],
+ ['reddirectory',['RedDirectory',['../classRedMatrix_1_1RedDAV_1_1RedDirectory.html',1,'RedMatrix::RedDAV']]],
+ ['reddirectory_2ephp',['RedDirectory.php',['../RedDirectory_8php.html',1,'']]],
+ ['redfile',['RedFile',['../classRedMatrix_1_1RedDAV_1_1RedFile.html',1,'RedMatrix::RedDAV']]],
+ ['redfile_2ephp',['RedFile.php',['../RedFile_8php.html',1,'']]],
['redfiledata',['RedFileData',['../reddav_8php.html#a9f531641dfb4e43cd88ac1a9ae7e2088',1,'reddav.php']]],
+ ['redmatrix',['RedMatrix',['../namespaceRedMatrix.html',1,'']]],
+ ['redmatrix_5fimportchannel',['REDMATRIX_IMPORTCHANNEL',['../refimport_8php.html#a54003135d7c8994a76e831fb6faa2fe6',1,'refimport.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']]],
@@ -45,6 +50,19 @@ var searchData=
['ref_5fsession_5fopen',['ref_session_open',['../session_8php.html#a26fa1042356d555023cbf15ddd4f8507',1,'session.php']]],
['ref_5fsession_5fread',['ref_session_read',['../session_8php.html#a7f0f50576360d9ba52d29364e0b83a8e',1,'session.php']]],
['ref_5fsession_5fwrite',['ref_session_write',['../session_8php.html#ac4461c1984543d3553e73dba2771568f',1,'session.php']]],
+ ['refimport_2ephp',['refimport.php',['../refimport_8php.html',1,'']]],
+ ['refimport_5fcontent',['refimport_content',['../refimport_8php.html#ad97ebb5feda0230a4834e0b3637a0d29',1,'refimport.php']]],
+ ['reflect_5farticle_5fcallback',['reflect_article_callback',['../refimport_8php.html#a53434bc19e6264db89e18d92ddc09860',1,'refimport.php']]],
+ ['reflect_5fbaseurl',['REFLECT_BASEURL',['../refimport_8php.html#ac43699d8ae86175e049aa4e87853caac',1,'refimport.php']]],
+ ['reflect_5fblogname',['REFLECT_BLOGNAME',['../refimport_8php.html#a8459983ebf013ed5737f7ed317bfae1f',1,'refimport.php']]],
+ ['reflect_5fcomment_5fstore',['reflect_comment_store',['../refimport_8php.html#a01a29630fa5e1ce6cd5e1fd75280747c',1,'refimport.php']]],
+ ['reflect_5fexportusername',['REFLECT_EXPORTUSERNAME',['../refimport_8php.html#ad297afe0730c9119dd94d3cf0521b025',1,'refimport.php']]],
+ ['reflect_5ffind_5fuser',['reflect_find_user',['../refimport_8php.html#aa98de7d112e3a5b4b6956f108d04a41d',1,'refimport.php']]],
+ ['reflect_5fget_5fchannel',['reflect_get_channel',['../refimport_8php.html#a6c3e0475fde9fe72ff2492a5e3e5259c',1,'refimport.php']]],
+ ['reflect_5fmaxperrun',['REFLECT_MAXPERRUN',['../refimport_8php.html#a9c1f681f1f303400a9818696a9f96d6f',1,'refimport.php']]],
+ ['reflect_5foverwrite',['REFLECT_OVERWRITE',['../refimport_8php.html#aeec793cefa260f788b7d005adcb35796',1,'refimport.php']]],
+ ['reflect_5fphoto_5fcallback',['reflect_photo_callback',['../refimport_8php.html#ae9c56f779d1e0ac7bcb2a460129e7ae5',1,'refimport.php']]],
+ ['reflect_5fuserfile',['REFLECT_USERFILE',['../refimport_8php.html#a684a44d2401abf75f441591bcb41d10d',1,'refimport.php']]],
['register_2ephp',['register.php',['../register_8php.html',1,'']]],
['register_5fapprove',['REGISTER_APPROVE',['../boot_8php.html#a7176c0f9f1c98421b97735d892cf6252',1,'boot.php']]],
['register_5fclosed',['REGISTER_CLOSED',['../boot_8php.html#a69aac276ed82e010dc382b16ab4d59e1',1,'boot.php']]],
@@ -67,6 +85,7 @@ var searchData=
['remove_5fall_5fxchan_5fresources',['remove_all_xchan_resources',['../Contact_8php.html#acc12cda999c88c4d6185cca967c15125',1,'Contact.php']]],
['remove_5fchild',['remove_child',['../classItem.html#a2ce70ef63f9f4d86a09c351678806925',1,'Item']]],
['remove_5fcommunity_5ftag',['remove_community_tag',['../zot_8php.html#aad25a3fe0e1566121d6fb8222979bc10',1,'zot.php']]],
+ ['remove_5fobsolete_5fhublocs',['remove_obsolete_hublocs',['../hubloc_8php.html#a84c79b7be352f62d12fe4fa2c80fc6ea',1,'hubloc.php']]],
['remove_5fparent',['remove_parent',['../classItem.html#aa452b5bcd8dea12119b09212c615cb41',1,'Item']]],
['remove_5fqueue_5fitem',['remove_queue_item',['../queue__fn_8php.html#a8fe71e981399bbf5d000a6ca42f57b24',1,'queue_fn.php']]],
['removeaccount_2ephp',['removeaccount.php',['../removeaccount_8php.html',1,'']]],
@@ -86,14 +105,17 @@ var searchData=
['rmagic_5fcontent',['rmagic_content',['../rmagic_8php.html#a3e28db1e5cfa7e5c2617f90222c1caef',1,'rmagic.php']]],
['rmagic_5finit',['rmagic_init',['../rmagic_8php.html#a95455edd43f1bff39446a57388cdde16',1,'rmagic.php']]],
['rmagic_5fpost',['rmagic_post',['../rmagic_8php.html#a869de069d081b3c4e98b957d06bbf08f',1,'rmagic.php']]],
+ ['role_5fselector',['role_selector',['../permissions_8php.html#a50e8099ea8a4d7ed68b2a0a7ea9aa724',1,'permissions.php']]],
['rotate',['rotate',['../classphoto__driver.html#a2f2b6337cf9aa0688d10b422123f0eec',1,'photo_driver\rotate()'],['../classphoto__gd.html#a77f87730b11093b76980c541159df37d',1,'photo_gd\rotate()'],['../classphoto__imagick.html#a9df5738a4a18e76dd304c440e96f045f',1,'photo_imagick\rotate()']]],
['rpost_2ephp',['rpost.php',['../rpost_8php.html',1,'']]],
['rpost_5fcallback',['rpost_callback',['../bbcode_8php.html#a5165a5221a52cf1bc1d7812ebd2069c7',1,'bbcode.php']]],
['rpost_5fcontent',['rpost_content',['../rpost_8php.html#a8190354d789000806d9879aea276728f',1,'rpost.php']]],
+ ['rrmdir',['rrmdir',['../Contact_8php.html#ab5895b75a3b2abdddf1cb351a8c6b58b',1,'Contact.php']]],
['rsa_5fsign',['rsa_sign',['../crypto_8php.html#a920e5f222d0020f47556033d8b2b6552',1,'crypto.php']]],
['rsa_5fverify',['rsa_verify',['../crypto_8php.html#ab4f21d8f6b8ece0915e7c8bb73379f96',1,'crypto.php']]],
['rsatopem',['rsatopem',['../crypto_8php.html#a7f7e650aaeaa3832580a73eb00966b26',1,'crypto.php']]],
['rsd_5fxml_2ephp',['rsd_xml.php',['../rsd__xml_8php.html',1,'']]],
['rsd_5fxml_5fcontent',['rsd_xml_content',['../rsd__xml_8php.html#a740cd02fa15e5a53f8547fac73f0ab82',1,'rsd_xml.php']]],
+ ['run',['run',['../classRedMatrix_1_1Import_1_1Import.html#a8d138a9a7d4f79b81d3446ca216a602c',1,'RedMatrix::Import::Import']]],
['runs',['runs',['../docblox__errorchecker_8php.html#a21b4bbe5aae2d85db33affc7126a67ec',1,'docblox_errorchecker.php']]]
];
diff --git a/doc/html/search/all_73.js b/doc/html/search/all_73.js
index 806257116..d0a3ea246 100644
--- a/doc/html/search/all_73.js
+++ b/doc/html/search/all_73.js
@@ -27,6 +27,8 @@ var searchData=
['send_5fverification_5femail',['send_verification_email',['../account_8php.html#aa9c29c497c17d8f9344dce8631ad8761',1,'account.php']]],
['service_5fclass_5fallows',['service_class_allows',['../account_8php.html#a030cec6793b909c439c0336ba39b1571',1,'account.php']]],
['service_5fclass_5ffetch',['service_class_fetch',['../account_8php.html#a905b54e10704b283ac64680a8abc0971',1,'account.php']]],
+ ['service_5flimits_2ephp',['service_limits.php',['../service__limits_8php.html',1,'']]],
+ ['service_5flimits_5fcontent',['service_limits_content',['../service__limits_8php.html#a653424aac63c5cd05ba70c3c77bf7f8a',1,'service_limits.php']]],
['session_2ephp',['session.php',['../session_8php.html',1,'']]],
['set',['set',['../classCache.html#ae622b82adc1c2fb1f3e2cc4fd9688fce',1,'Cache']]],
['set_5faccount',['set_account',['../classApp.html#aeb1fe1c8ad9aa639909bd183ce578536',1,'App']]],
@@ -38,6 +40,7 @@ var searchData=
['set_5fconfig',['set_config',['../include_2config_8php.html#ad6da879e4fb5b37d1e161d4e9be5c32a',1,'config.php']]],
['set_5fconversation',['set_conversation',['../classItem.html#aa8b1bbc4236890694635295e46d7fd72',1,'Item']]],
['set_5fdefault_5flogin_5fidentity',['set_default_login_identity',['../identity_8php.html#a78151baf4407a8482d2681a91a9c486b',1,'identity.php']]],
+ ['set_5fdisplay_5fmode',['set_display_mode',['../classItem.html#ac09a4728d37b7783714243f7f8167214',1,'Item']]],
['set_5fgroups',['set_groups',['../classApp.html#a3d84af5e42082098672531cd1a618853',1,'App']]],
['set_5fhostname',['set_hostname',['../classApp.html#a344d2b7dc2f276648d521aee4da1731c',1,'App']]],
['set_5fmode',['set_mode',['../classConversation.html#a66f121ca4026246f86a732e5faa0682c',1,'Conversation']]],
@@ -52,12 +55,14 @@ var searchData=
['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_5fwriteable',['set_writeable',['../classRedMatrix_1_1RedDAV_1_1RedBrowser.html#aa1607857cb59738c4dce2fe8e73d8f19',1,'RedMatrix::RedDAV::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']]],
+ ['setauthenticated',['setAuthenticated',['../classRedMatrix_1_1RedDAV_1_1RedBasicAuth.html#a2926fe923baade564f2663632fa8c633',1,'RedMatrix::RedDAV::RedBasicAuth']]],
+ ['setbrowserplugin',['setBrowserPlugin',['../classRedMatrix_1_1RedDAV_1_1RedBasicAuth.html#adc72f36f0b2b17b20ea4df900afcd697',1,'RedMatrix::RedDAV::RedBasicAuth']]],
+ ['setcurrentuser',['setCurrentUser',['../classRedMatrix_1_1RedDAV_1_1RedBasicAuth.html#aadce020fb595c7943829d7f995d3f998',1,'RedMatrix::RedDAV::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',['../classRedDirectory.html#adc48035679e52c55d9881f83de535553',1,'RedDirectory\setName()'],['../classRedFile.html#a38a82bfc1b30028ea6ac75923e90fa25',1,'RedFile\setName()']]],
+ ['setname',['setName',['../classRedMatrix_1_1RedDAV_1_1RedDirectory.html#a14ac61d31a031d139956763db4e03956',1,'RedMatrix\RedDAV\RedDirectory\setName()'],['../classRedMatrix_1_1RedDAV_1_1RedFile.html#a0350cb4e0327e1f9922869a48ee04f1d',1,'RedMatrix\RedDAV\RedFile\setName()']]],
+ ['settimezone',['setTimezone',['../classRedMatrix_1_1RedDAV_1_1RedBasicAuth.html#af6d239fefed05859327ee8db626703f9',1,'RedMatrix::RedDAV::RedBasicAuth']]],
['settings_2ephp',['settings.php',['../settings_8php.html',1,'']]],
['settings_5finit',['settings_init',['../settings_8php.html#a3a4cde287482fced008583f54ba2a722',1,'settings.php']]],
['settings_5fpost',['settings_post',['../settings_8php.html#aa7ee94d88ac088edb04ccf3a26de3586',1,'settings.php']]],
@@ -72,6 +77,9 @@ var searchData=
['share_5fshield',['share_shield',['../bb2diaspora_8php.html#ad033be99e87a2aaa05e569c68f30792d',1,'bb2diaspora.php']]],
['share_5funshield',['share_unshield',['../bb2diaspora_8php.html#ab61b4f8c065e97b151411858bb2f209a',1,'bb2diaspora.php']]],
['showform',['showForm',['../fpostit_8php.html#a3f3ae3ae61578b5671673914fd894443',1,'fpostit.php']]],
+ ['simple_5fblack_5fon_5fwhite_2ephp',['simple_black_on_white.php',['../simple__black__on__white_8php.html',1,'']]],
+ ['simple_5fgreen_5fon_5fblack_2ephp',['simple_green_on_black.php',['../simple__green__on__black_8php.html',1,'']]],
+ ['simple_5fwhite_5fon_5fblack_2ephp',['simple_white_on_black.php',['../simple__white__on__black_8php.html',1,'']]],
['site_5fdefault_5fperms',['site_default_perms',['../permissions_8php.html#aa8b7b102c653649d7a71b5a1c044d90d',1,'permissions.php']]],
['siteinfo_2ephp',['siteinfo.php',['../siteinfo_8php.html',1,'']]],
['siteinfo_5fcontent',['siteinfo_content',['../siteinfo_8php.html#a70c09bfb6dd1c86a125a35f62ed53656',1,'siteinfo.php']]],
@@ -105,10 +113,11 @@ var searchData=
['starred_5finit',['starred_init',['../starred_8php.html#a63024fb418c678e49fd535e3752d349a',1,'starred.php']]],
['start_5fdelivery_5fchain',['start_delivery_chain',['../items_8php.html#adf2b8137dc4ad9ec958de2842f16f3c2',1,'items.php']]],
['startup',['startup',['../boot_8php.html#aca47505b8732177f52bb2d647eb2741c',1,'boot.php']]],
+ ['statistics_5ffns_2ephp',['statistics_fns.php',['../statistics__fns_8php.html',1,'']]],
['status_5feditor',['status_editor',['../conversation_8php.html#a2a7d541854bba755eb8ada59af7dcb1a',1,'conversation.php']]],
['storage_5fdefault_5fpermissions',['STORAGE_DEFAULT_PERMISSIONS',['../boot_8php.html#aecaa1b6945b317ba8f1daf4af2aed8e6',1,'boot.php']]],
- ['store',['store',['../classphoto__driver.html#a642a8d0c4ad5f887c99c6af77cee287b',1,'photo_driver']]],
- ['store_5fdiaspora_5fcomment_5fsig',['store_diaspora_comment_sig',['../items_8php.html#af0a887050dc8d0f51c89890cdaf3145f',1,'items.php']]],
+ ['store',['store',['../classRedMatrix_1_1Import_1_1Import.html#a33ed595de044c0ec1cd84cca719e31dc',1,'RedMatrix\Import\Import\store()'],['../classphoto__driver.html#a642a8d0c4ad5f887c99c6af77cee287b',1,'photo_driver\store()']]],
+ ['store_5fdiaspora_5fcomment_5fsig',['store_diaspora_comment_sig',['../items_8php.html#a25221826fa4621f523c68483e3b6af26',1,'items.php']]],
['store_5fitem_5ftag',['store_item_tag',['../taxonomy_8php.html#a4ba1339b2a7054971178ce194e4440fd',1,'taxonomy.php']]],
['stream_5fperms_5fapi_5fuids',['stream_perms_api_uids',['../security_8php.html#a6126c77a1267e046ac59cf864613f011',1,'security.php']]],
['stream_5fperms_5fxchans',['stream_perms_xchans',['../security_8php.html#a3ef2be6a7e4928e39d50059d6feb457c',1,'security.php']]],
@@ -117,17 +126,23 @@ var searchData=
['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',['../apw_2php_2style_8php.html',1,'']]],
+ ['stumble_5finit',['stumble_init',['../stumble_2php_2theme_8php.html#a71db9eff6289e0ee47771c37c01d6753',1,'theme.php']]],
['style_2ephp',['style.php',['../mytheme_2php_2style_8php.html',1,'']]],
['style_2ephp',['style.php',['../redbasic_2php_2style_8php.html',1,'']]],
+ ['style_2ephp',['style.php',['../stumble_2php_2style_8php.html',1,'']]],
+ ['style_2ephp',['style.php',['../suckerberg_2php_2style_8php.html',1,'']]],
+ ['style_2ephp',['style.php',['../apw_2php_2style_8php.html',1,'']]],
+ ['style_2ephp',['style.php',['../hivenet_2php_2style_8php.html',1,'']]],
['subthread_2ephp',['subthread.php',['../subthread_8php.html',1,'']]],
['subthread_5fcontent',['subthread_content',['../subthread_8php.html#a50368f3d825b77996030528e7fbfa3d3',1,'subthread.php']]],
+ ['suckerberg_5finit',['suckerberg_init',['../suckerberg_2php_2theme_8php.html#a4104fce7d5fb71d15ed811978b628fc8',1,'theme.php']]],
['suggest_2ephp',['suggest.php',['../suggest_8php.html',1,'']]],
['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']]],
+ ['sync_5flocations',['sync_locations',['../zot_8php.html#ab15c04e7e5f44edf45ec50dd7d183254',1,'zot.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 dd14daf49..676cbba88 100644
--- a/doc/html/search/all_74.js
+++ b/doc/html/search/all_74.js
@@ -39,25 +39,23 @@ var searchData=
['text_2ephp',['text.php',['../text_8php.html',1,'']]],
['tgroup_5fcheck',['tgroup_check',['../items_8php.html#a88c6cf7649ac836fbbed82a7a0315110',1,'items.php']]],
['theme_2ephp',['theme.php',['../apw_2php_2theme_8php.html',1,'']]],
- ['theme_2ephp',['theme.php',['../blogga_2php_2theme_8php.html',1,'']]],
- ['theme_2ephp',['theme.php',['../blogga_2view_2theme_2blog_2theme_8php.html',1,'']]],
+ ['theme_2ephp',['theme.php',['../hivenet_2php_2theme_8php.html',1,'']]],
['theme_2ephp',['theme.php',['../mytheme_2php_2theme_8php.html',1,'']]],
['theme_2ephp',['theme.php',['../redbasic_2php_2theme_8php.html',1,'']]],
- ['theme_5fadmin',['theme_admin',['../view_2theme_2blogga_2php_2config_8php.html#a09cd81013505f83aea0771243a1e4e53',1,'theme_admin(&amp;$a):&#160;config.php'],['../view_2theme_2blogga_2view_2theme_2blog_2config_8php.html#a09cd81013505f83aea0771243a1e4e53',1,'theme_admin(&amp;$a):&#160;config.php']]],
- ['theme_5fadmin_5fpost',['theme_admin_post',['../view_2theme_2blogga_2php_2config_8php.html#aef2da5582b7cb6b5f63e5ca5d69fd30b',1,'theme_admin_post(&amp;$a):&#160;config.php'],['../view_2theme_2blogga_2view_2theme_2blog_2config_8php.html#aef2da5582b7cb6b5f63e5ca5d69fd30b',1,'theme_admin_post(&amp;$a):&#160;config.php']]],
+ ['theme_2ephp',['theme.php',['../stumble_2php_2theme_8php.html',1,'']]],
+ ['theme_2ephp',['theme.php',['../suckerberg_2php_2theme_8php.html',1,'']]],
['theme_5fattachments',['theme_attachments',['../text_8php.html#af9c9ac3f74c82dc60acfa404d0e9dc53',1,'text.php']]],
- ['theme_5fcontent',['theme_content',['../view_2theme_2apw_2php_2config_8php.html#aa7d5739b72efef9822535b2b32d5364d',1,'theme_content(&amp;$a):&#160;config.php'],['../view_2theme_2blogga_2php_2config_8php.html#aa7d5739b72efef9822535b2b32d5364d',1,'theme_content(&amp;$a):&#160;config.php'],['../view_2theme_2blogga_2view_2theme_2blog_2config_8php.html#aa7d5739b72efef9822535b2b32d5364d',1,'theme_content(&amp;$a):&#160;config.php'],['../view_2theme_2redbasic_2php_2config_8php.html#aa7d5739b72efef9822535b2b32d5364d',1,'theme_content(&amp;$a):&#160;config.php']]],
+ ['theme_5fcontent',['theme_content',['../view_2theme_2apw_2php_2config_8php.html#aa7d5739b72efef9822535b2b32d5364d',1,'theme_content(&amp;$a):&#160;config.php'],['../view_2theme_2redbasic_2php_2config_8php.html#aa7d5739b72efef9822535b2b32d5364d',1,'theme_content(&amp;$a):&#160;config.php']]],
['theme_5finclude',['theme_include',['../plugin_8php.html#a65fedcffbe03562ef844cabee37d34e2',1,'plugin.php']]],
- ['theme_5finit_2ephp',['theme_init.php',['../theme_2redbasic_2php_2theme__init_8php.html',1,'']]],
- ['theme_5finit_2ephp',['theme_init.php',['../theme_2apw_2php_2theme__init_8php.html',1,'']]],
['theme_5finit_2ephp',['theme_init.php',['../php_2theme__init_8php.html',1,'']]],
- ['theme_5finit_2ephp',['theme_init.php',['../theme_2blogga_2php_2theme__init_8php.html',1,'']]],
- ['theme_5fpost',['theme_post',['../view_2theme_2apw_2php_2config_8php.html#ad29461920cf03b9ce1428e21eb1f4ba6',1,'theme_post(&amp;$a):&#160;config.php'],['../view_2theme_2blogga_2php_2config_8php.html#ad29461920cf03b9ce1428e21eb1f4ba6',1,'theme_post(&amp;$a):&#160;config.php'],['../view_2theme_2blogga_2view_2theme_2blog_2config_8php.html#ad29461920cf03b9ce1428e21eb1f4ba6',1,'theme_post(&amp;$a):&#160;config.php'],['../view_2theme_2redbasic_2php_2config_8php.html#ad29461920cf03b9ce1428e21eb1f4ba6',1,'theme_post(&amp;$a):&#160;config.php']]],
+ ['theme_5finit_2ephp',['theme_init.php',['../theme_2apw_2php_2theme__init_8php.html',1,'']]],
+ ['theme_5finit_2ephp',['theme_init.php',['../theme_2redbasic_2php_2theme__init_8php.html',1,'']]],
+ ['theme_5fpost',['theme_post',['../view_2theme_2apw_2php_2config_8php.html#ad29461920cf03b9ce1428e21eb1f4ba6',1,'theme_post(&amp;$a):&#160;config.php'],['../view_2theme_2redbasic_2php_2config_8php.html#ad29461920cf03b9ce1428e21eb1f4ba6',1,'theme_post(&amp;$a):&#160;config.php']]],
['theme_5fstatus',['theme_status',['../admin_8php.html#ad4f74f33944a98b56d2c8c7601f124a4',1,'admin.php']]],
['thing_2ephp',['thing.php',['../thing_8php.html',1,'']]],
['thing_5fcontent',['thing_content',['../thing_8php.html#a24a35f1e64029a67fdbea94a776ae04b',1,'thing.php']]],
['thing_5finit',['thing_init',['../thing_8php.html#a8be23b1d475ec3d9291999221c674c80',1,'thing.php']]],
- ['timesel',['timesel',['../datetime_8php.html#a36d3d6dff8d76b5f295bb3d9c535a5b1',1,'datetime.php']]],
+ ['timesel',['timesel',['../datetime_8php.html#a3f239f94e23335d860b148958d87a093',1,'datetime.php']]],
['timezone_5fcmp',['timezone_cmp',['../datetime_8php.html#aa51b5a7ea4f931b23acbdfcea46e9865',1,'datetime.php']]],
['title_5fis_5fbody',['title_is_body',['../items_8php.html#aa371905f0a211b307cb3f7188c6cba04',1,'items.php']]],
['todo_20list',['Todo List',['../todo.html',1,'']]],
diff --git a/doc/html/search/all_75.js b/doc/html/search/all_75.js
index a052a0a78..3162bb574 100644
--- a/doc/html/search/all_75.js
+++ b/doc/html/search/all_75.js
@@ -1,10 +1,12 @@
var searchData=
[
['uexport_2ephp',['uexport.php',['../uexport_8php.html',1,'']]],
+ ['uexport_5fcontent',['uexport_content',['../uexport_8php.html#ae6f79d60916c01675c8cf663cb5fec84',1,'uexport.php']]],
['uexport_5finit',['uexport_init',['../uexport_8php.html#a118920137dedebe0581623a2e57e7b0d',1,'uexport.php']]],
['unamp',['unamp',['../text_8php.html#a29d6b804e368d3ef359ee295e96ed4c7',1,'text.php']]],
['undo_5fpost_5ftagging',['undo_post_tagging',['../text_8php.html#a740ad03e00459039a2c0992246c4e727',1,'text.php']]],
['unescape_5funderscores_5fin_5flinks',['unescape_underscores_in_links',['../bb2diaspora_8php.html#a599428bceb6f6d82a6a78cb66811f747',1,'bb2diaspora.php']]],
+ ['unescapebin',['unescapebin',['../classdba__driver.html#ab43184239e1d6eb00a98319f4a3df155',1,'dba_driver\unescapebin()'],['../classdba__postgres.html#a677f850211975c9ab89602c67e2dcad9',1,'dba_postgres\unescapebin()']]],
['uninstall_5fplugin',['uninstall_plugin',['../plugin_8php.html#a093a9cb98f51e3643634bd8bc6ed6e76',1,'plugin.php']]],
['unload_5fplugin',['unload_plugin',['../plugin_8php.html#a90538627db68605aeb6db17a8ead6523',1,'plugin.php']]],
['unobscure',['unobscure',['../text_8php.html#a8264348059abd1d4d5bb521323d3b19a',1,'text.php']]],
@@ -13,6 +15,9 @@ var searchData=
['update_5fbirthdays',['update_birthdays',['../datetime_8php.html#af1cd77c97c901d9239cb7a61f97f9826',1,'datetime.php']]],
['update_5fchannel_2ephp',['update_channel.php',['../update__channel_8php.html',1,'']]],
['update_5fchannel_5fcontent',['update_channel_content',['../update__channel_8php.html#aca52a9da500f0db2f0a8666af5bc06ba',1,'update_channel.php']]],
+ ['update_5fchannels_5factive_5fhalfyear_5fstat',['update_channels_active_halfyear_stat',['../statistics__fns_8php.html#a82726229a961d3bd3d543005c61dd8e6',1,'statistics_fns.php']]],
+ ['update_5fchannels_5factive_5fmonthly_5fstat',['update_channels_active_monthly_stat',['../statistics__fns_8php.html#ad2b7b595c039c4c2eb0d6cd57a393dfe',1,'statistics_fns.php']]],
+ ['update_5fchannels_5ftotal_5fstat',['update_channels_total_stat',['../statistics__fns_8php.html#a05858927cce81fd367aedf85a94ed90c',1,'statistics_fns.php']]],
['update_5fdirectory_5fentry',['update_directory_entry',['../dir__fns_8php.html#a44062d4b471d1e83f92f6c184585aa13',1,'dir_fns.php']]],
['update_5fdisplay_2ephp',['update_display.php',['../update__display_8php.html',1,'']]],
['update_5fdisplay_5fcontent',['update_display_content',['../update__display_8php.html#aa36ac524059e209d5d75a03c16206246',1,'update_display.php']]],
@@ -21,7 +26,10 @@ var searchData=
['update_5fflags_5fdeleted',['UPDATE_FLAGS_DELETED',['../boot_8php.html#aea392cb26ed617f3a8cde648385b5df0',1,'boot.php']]],
['update_5fflags_5fforced',['UPDATE_FLAGS_FORCED',['../boot_8php.html#ab9dca53455cd157d3c6ba2bdecdbd22d',1,'boot.php']]],
['update_5fflags_5fupdated',['UPDATE_FLAGS_UPDATED',['../boot_8php.html#a9690d73434125ce594a1f5e7c2a4f7c0',1,'boot.php']]],
+ ['update_5fhome_2ephp',['update_home.php',['../update__home_8php.html',1,'']]],
+ ['update_5fhome_5fcontent',['update_home_content',['../update__home_8php.html#a668340089acd150b830134476a647d05',1,'update_home.php']]],
['update_5fimported_5fitem',['update_imported_item',['../zot_8php.html#a31aad56acf8ff8f2353e6ff8595544df',1,'zot.php']]],
+ ['update_5flocal_5fposts_5fstat',['update_local_posts_stat',['../statistics__fns_8php.html#a9dd516dda693f17f5ce48a94876f7efa',1,'statistics_fns.php']]],
['update_5fmodtime',['update_modtime',['../zot_8php.html#ab319d1d9fff9c7775d9daef42d1f33dd',1,'zot.php']]],
['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']]],
@@ -40,6 +48,8 @@ var searchData=
['user_5fapprove',['user_approve',['../account_8php.html#ad07be417ac7eda939768804106ddea3d',1,'account.php']]],
['user_5fdeny',['user_deny',['../account_8php.html#ac1653efba62493b9d87513e1b6c04c83',1,'account.php']]],
['user_5fremove',['user_remove',['../Contact_8php.html#a2fc191067dd571a79603c66b04b1ca15',1,'Contact.php']]],
- ['userreadablesize',['userReadableSize',['../classRedBrowser.html#ad3418b8ccad42a1ef4ad0079e15b2e64',1,'RedBrowser']]],
+ ['userreadablesize',['userReadableSize',['../classRedMatrix_1_1RedDAV_1_1RedBrowser.html#a242ce69a2fe5a5fdf9c2b8d3954accfd',1,'RedMatrix::RedDAV::RedBrowser']]],
+ ['utc_5fnow',['UTC_NOW',['../classdba__driver.html#aa3325d982d4ee5d1114fd7e02a4356e8',1,'dba_driver\UTC_NOW()'],['../classdba__postgres.html#ace80a204e34b20b9907650399cce02a3',1,'dba_postgres\UTC_NOW()']]],
+ ['utcnow',['utcnow',['../classdba__driver.html#ad700712879719bee23752b8f424d97d0',1,'dba_driver']]],
['util',['util',['../namespaceutil.html',1,'']]]
];
diff --git a/doc/html/search/all_76.js b/doc/html/search/all_76.js
index 823caf7e5..ec35b57e4 100644
--- a/doc/html/search/all_76.js
+++ b/doc/html/search/all_76.js
@@ -4,7 +4,7 @@ var searchData=
['validate_5fchannelname',['validate_channelname',['../identity_8php.html#af2802bc13a00a17b867bba7978ba8f58',1,'identity.php']]],
['validate_5femail',['validate_email',['../include_2network_8php.html#a897e7112d86eb95526cbd0bff9375f02',1,'network.php']]],
['validate_5furl',['validate_url',['../include_2network_8php.html#a5caa264fab6d2b2344e6bd5b298b08f2',1,'network.php']]],
- ['validateuserpass',['validateUserPass',['../classRedBasicAuth.html#a8dfd9a0953f8884723b421b7c1acf79b',1,'RedBasicAuth']]],
+ ['validateuserpass',['validateUserPass',['../classRedMatrix_1_1RedDAV_1_1RedBasicAuth.html#a6ece02655b780469e59e204c5979a624',1,'RedMatrix::RedDAV::RedBasicAuth']]],
['var_5freplace',['var_replace',['../classTemplate.html#abbc484016ddf5d818f55b823cae6feb0',1,'Template']]],
['vcard_5ffrom_5fxchan',['vcard_from_xchan',['../Contact_8php.html#a6348a532c9d26cd1c9afbc9aa6aa8960',1,'Contact.php']]],
['verify_5femail_5faddress',['verify_email_address',['../account_8php.html#acd6b8d2124ba5ea4f4794d2c58ae8bf5',1,'account.php']]],
@@ -16,6 +16,17 @@ var searchData=
['viewsrc_2ephp',['viewsrc.php',['../viewsrc_8php.html',1,'']]],
['viewsrc_5fcontent',['viewsrc_content',['../viewsrc_8php.html#a6eff3d0c1d7d14b335c4edb785cd60a4',1,'viewsrc.php']]],
['visible_5factivity',['visible_activity',['../conversation_8php.html#a7eeaaf44506815576f3bd80053ef52c3',1,'conversation.php']]],
+ ['vnotify_5falert',['VNOTIFY_ALERT',['../boot_8php.html#a9f8a2938ddd9ee2867e6f8ce77b61b2f',1,'boot.php']]],
+ ['vnotify_5fbirthday',['VNOTIFY_BIRTHDAY',['../boot_8php.html#ac89396b9144391acd08d6d0f9b332220',1,'boot.php']]],
+ ['vnotify_5fchannel',['VNOTIFY_CHANNEL',['../boot_8php.html#a7b511bd93202c43405adbe3b5bcebbfe',1,'boot.php']]],
+ ['vnotify_5fevent',['VNOTIFY_EVENT',['../boot_8php.html#ad94aca4c260b8a892397786201dc4664',1,'boot.php']]],
+ ['vnotify_5feventtoday',['VNOTIFY_EVENTTODAY',['../boot_8php.html#a76480b213af379c0c6c7fa4e39019ca9',1,'boot.php']]],
+ ['vnotify_5finfo',['VNOTIFY_INFO',['../boot_8php.html#a37281c30bd92cecb499878d6778c570f',1,'boot.php']]],
+ ['vnotify_5fintro',['VNOTIFY_INTRO',['../boot_8php.html#a1997c4b7d0253e036bc0fb6b20e4af71',1,'boot.php']]],
+ ['vnotify_5fmail',['VNOTIFY_MAIL',['../boot_8php.html#a0afeb43da443d6ff3526ede5ecdcc3b3',1,'boot.php']]],
+ ['vnotify_5fnetwork',['VNOTIFY_NETWORK',['../boot_8php.html#a997614f25e58f8313641e1eb0109fd10',1,'boot.php']]],
+ ['vnotify_5fregister',['VNOTIFY_REGISTER',['../boot_8php.html#ae09767b94688657978ff9366ec63684b',1,'boot.php']]],
+ ['vnotify_5fsystem',['VNOTIFY_SYSTEM',['../boot_8php.html#a7e5627b5ca4b7464feb0f08663b19ea1',1,'boot.php']]],
['vote_2ephp',['vote.php',['../vote_8php.html',1,'']]],
['vote_5fcontent',['vote_content',['../vote_8php.html#a6aa67489bf458ca5e3206e46dac68596',1,'vote.php']]],
['vote_5finit',['vote_init',['../vote_8php.html#ae0c6610f40afbbc1f4fe6494c51fbab2',1,'vote.php']]],
diff --git a/doc/html/search/all_77.js b/doc/html/search/all_77.js
index b3a5a4947..6ecd9d302 100644
--- a/doc/html/search/all_77.js
+++ b/doc/html/search/all_77.js
@@ -9,6 +9,7 @@ var searchData=
['webfinger_5frfc7033',['webfinger_rfc7033',['../include_2network_8php.html#a3e6c751a51de33ad3563f0938296e78a',1,'network.php']]],
['webpages_2ephp',['webpages.php',['../webpages_8php.html',1,'']]],
['webpages_5fcontent',['webpages_content',['../webpages_8php.html#af3b7397d4abc153e3d2147740ee1a41d',1,'webpages.php']]],
+ ['webpages_5finit',['webpages_init',['../webpages_8php.html#af9ad0b65eba79acead3fa32b43d888b7',1,'webpages.php']]],
['wfinger_2ephp',['wfinger.php',['../wfinger_8php.html',1,'']]],
['wfinger_5finit',['wfinger_init',['../wfinger_8php.html#ae21e50c8d0a5f3c9be9f43a4e519acd3',1,'wfinger.php']]],
['what_5fnext',['what_next',['../setup_8php.html#aea1ebdda58ec938f4e7b31aa5c5f6b58',1,'setup.php']]],
@@ -18,6 +19,7 @@ var searchData=
['widget_5fappselect',['widget_appselect',['../widgets_8php.html#aced5cb177f630b30799c5eab873ee75c',1,'widgets.php']]],
['widget_5farchive',['widget_archive',['../widgets_8php.html#a7b1e357b5a2027718470b77ec921fc65',1,'widgets.php']]],
['widget_5fbookmarkedchats',['widget_bookmarkedchats',['../widgets_8php.html#a0e2f5179ed1a73b282dfda7270fcabb3',1,'widgets.php']]],
+ ['widget_5fcatcloud_5fwall',['widget_catcloud_wall',['../widgets_8php.html#af919de8e7e2ba8192a65fadc72a2c8b5',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_5fclock',['widget_clock',['../widgets_8php.html#a9d60539db68042e63c0015abd69a6f7a',1,'widgets.php']]],
@@ -36,7 +38,9 @@ var searchData=
['widget_5fnotes',['widget_notes',['../widgets_8php.html#a45ea061dabe9a8372e4ca3b9e5714256',1,'widgets.php']]],
['widget_5fphoto',['widget_photo',['../widgets_8php.html#a999ba893cac7600d3d3b4e7e14cf8c20',1,'widgets.php']]],
['widget_5fphoto_5falbums',['widget_photo_albums',['../widgets_8php.html#a702e2fc0adc9b615999eca18b7311b5e',1,'widgets.php']]],
+ ['widget_5fphoto_5frand',['widget_photo_rand',['../widgets_8php.html#af8eb466ef91d9e96e13335ead5eba380',1,'widgets.php']]],
['widget_5fprofile',['widget_profile',['../widgets_8php.html#abd2e508a2a0b911c4a838e3cb7599923',1,'widgets.php']]],
+ ['widget_5frandom_5fblock',['widget_random_block',['../widgets_8php.html#a829c5a5c7448129266fc1df3ae1a3c2e',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_5fsuggestedchats',['widget_suggestedchats',['../widgets_8php.html#a50b1410238100c8a94c06b0aa63ee3b8',1,'widgets.php']]],
@@ -45,5 +49,6 @@ var searchData=
['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']]]
+ ['writepages_5fwidget',['writepages_widget',['../page__widgets_8php.html#a1a1e729da27f252cab6678288a17958f',1,'page_widgets.php']]],
+ ['wtagblock',['wtagblock',['../taxonomy_8php.html#a83f0a60f9e0c07d8451dc5be95b17287',1,'taxonomy.php']]]
];
diff --git a/doc/html/search/all_78.js b/doc/html/search/all_78.js
index 8abd01215..11483478c 100644
--- a/doc/html/search/all_78.js
+++ b/doc/html/search/all_78.js
@@ -1,17 +1,20 @@
var searchData=
[
- ['x',['x',['../boot_8php.html#a01353c9abebc3544ea080ac161729632',1,'boot.php']]],
+ ['x',['x',['../boot_8php.html#ae97836b0547953be182a2334c9c91d3c',1,'boot.php']]],
['xchan_2ephp',['xchan.php',['../xchan_8php.html',1,'']]],
['xchan_5fcontent',['xchan_content',['../xchan_8php.html#a9853348bf1a35c644460221ba75edc2d',1,'xchan.php']]],
+ ['xchan_5ffetch',['xchan_fetch',['../hubloc_8php.html#af1b476c936f96a93282b1d058e3d05ea',1,'hubloc.php']]],
['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_5fpubforum',['XCHAN_FLAGS_PUBFORUM',['../boot_8php.html#a0209e605028a5bb492683951ab30d49d',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']]],
+ ['xchan_5fquery',['xchan_query',['../text_8php.html#a905c3895feb6f276df23f07f16f9bb52',1,'text.php']]],
+ ['xchan_5fstore',['xchan_store',['../hubloc_8php.html#acb708dd197aae72a4858cf5ff4e3195b',1,'hubloc.php']]],
['xml2array',['xml2array',['../include_2network_8php.html#a99353baabbc3e0584b85eb79ee802cff',1,'network.php']]],
['xml_5fstatus',['xml_status',['../include_2network_8php.html#a9e9da2aafb806c98ecdc318604e60dc6',1,'network.php']]],
['xmlify',['xmlify',['../text_8php.html#aaed4413ed8918838b517e3b2fafaea0d',1,'text.php']]],
diff --git a/doc/html/search/all_7a.js b/doc/html/search/all_7a.js
index b003d4edf..e38522726 100644
--- a/doc/html/search/all_7a.js
+++ b/doc/html/search/all_7a.js
@@ -6,6 +6,7 @@ var searchData=
['z_5fmime_5fcontent_5ftype',['z_mime_content_type',['../include_2attach_8php.html#a6fdd92775f31c07d2863e16e0026018a',1,'attach.php']]],
['z_5fpath',['z_path',['../boot_8php.html#aba208673515cbb8a55e5fa4a1da99fda',1,'boot.php']]],
['z_5fpost_5furl',['z_post_url',['../include_2network_8php.html#a9129fd55e7fc175b4ea9a195cccc16bc',1,'network.php']]],
+ ['z_5fpost_5furl_5fjson',['z_post_url_json',['../include_2network_8php.html#a984708e60d531b31b2d1f88b5f408f7b',1,'network.php']]],
['z_5freaddir',['z_readdir',['../include_2attach_8php.html#aeb07968990e66a88c95483ca09a7f909',1,'attach.php']]],
['z_5froot',['z_root',['../boot_8php.html#add517a0958ac684792c62142a3877f81',1,'boot.php']]],
['zcurl_5ftimeout',['ZCURL_TIMEOUT',['../boot_8php.html#a3cd42a70c6b3999590e4fd7a1a9096af',1,'boot.php']]],
@@ -17,14 +18,16 @@ var searchData=
['zidify_5fimg_5fcallback',['zidify_img_callback',['../text_8php.html#ab4a4c3d4700bc219bb84f33b499314f4',1,'text.php']]],
['zidify_5flinks',['zidify_links',['../text_8php.html#a29988052f3944111def3b6aaf2c7a8f6',1,'text.php']]],
['zot_2ephp',['zot.php',['../zot_8php.html',1,'']]],
- ['zot_5fbuild_5fpacket',['zot_build_packet',['../zot_8php.html#a3862b3161b2c8557dc1a95020179bd81',1,'zot.php']]],
- ['zot_5ffeed',['zot_feed',['../items_8php.html#a004e89d86b0f29b2c4da20108ecc4091',1,'items.php']]],
+ ['zot_5fbuild_5fpacket',['zot_build_packet',['../zot_8php.html#a084c581d534e7e3b759488b46602288f',1,'zot.php']]],
+ ['zot_5fencode_5flocations',['zot_encode_locations',['../zot_8php.html#ae26ce9f1ad74139193fb6319beac5fca',1,'zot.php']]],
+ ['zot_5ffeed',['zot_feed',['../items_8php.html#a1cf89557f32d5dfbe8bd90448dc1aa92',1,'items.php']]],
['zot_5ffetch',['zot_fetch',['../zot_8php.html#a61cdc1ec843663c423ed2d8160ae5aea',1,'zot.php']]],
['zot_5ffinger',['zot_finger',['../zot_8php.html#a95528377d7303131958c9f0b7158fdce',1,'zot.php']]],
['zot_5fget_5fhublocs',['zot_get_hublocs',['../zot_8php.html#ae7cec2b417b5858fd4a41070f843d1d7',1,'zot.php']]],
['zot_5fgethub',['zot_gethub',['../zot_8php.html#a55056e863a7860bc0cf922e78fcce073',1,'zot.php']]],
['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_5fmessage_5frequest',['zot_process_message_request',['../zot_8php.html#a3920afe14fc1d82020161b4b86bcd9ac',1,'zot.php']]],
['zot_5fprocess_5fresponse',['zot_process_response',['../zot_8php.html#a928f5643ca66ae9635d85aeb2be62e03',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']]],
diff --git a/doc/html/search/classes_64.js b/doc/html/search/classes_64.js
index c52174855..439607209 100644
--- a/doc/html/search/classes_64.js
+++ b/doc/html/search/classes_64.js
@@ -2,5 +2,6 @@ var searchData=
[
['dba_5fdriver',['dba_driver',['../classdba__driver.html',1,'']]],
['dba_5fmysql',['dba_mysql',['../classdba__mysql.html',1,'']]],
- ['dba_5fmysqli',['dba_mysqli',['../classdba__mysqli.html',1,'']]]
+ ['dba_5fmysqli',['dba_mysqli',['../classdba__mysqli.html',1,'']]],
+ ['dba_5fpostgres',['dba_postgres',['../classdba__postgres.html',1,'']]]
];
diff --git a/doc/html/search/classes_69.js b/doc/html/search/classes_69.js
index b0394186f..a9767d06a 100644
--- a/doc/html/search/classes_69.js
+++ b/doc/html/search/classes_69.js
@@ -1,5 +1,6 @@
var searchData=
[
+ ['import',['Import',['../classRedMatrix_1_1Import_1_1Import.html',1,'RedMatrix::Import']]],
['item',['Item',['../classItem.html',1,'']]],
['itemplateengine',['ITemplateEngine',['../interfaceITemplateEngine.html',1,'']]]
];
diff --git a/doc/html/search/classes_72.js b/doc/html/search/classes_72.js
index 7196e9f30..e437f3cef 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,'']]]
+ ['redbasicauth',['RedBasicAuth',['../classRedMatrix_1_1RedDAV_1_1RedBasicAuth.html',1,'RedMatrix::RedDAV']]],
+ ['redbrowser',['RedBrowser',['../classRedMatrix_1_1RedDAV_1_1RedBrowser.html',1,'RedMatrix::RedDAV']]],
+ ['reddirectory',['RedDirectory',['../classRedMatrix_1_1RedDAV_1_1RedDirectory.html',1,'RedMatrix::RedDAV']]],
+ ['redfile',['RedFile',['../classRedMatrix_1_1RedDAV_1_1RedFile.html',1,'RedMatrix::RedDAV']]]
];
diff --git a/doc/html/search/files_63.js b/doc/html/search/files_63.js
index 69fb8fee5..f15bd328a 100644
--- a/doc/html/search/files_63.js
+++ b/doc/html/search/files_63.js
@@ -1,8 +1,6 @@
var searchData=
[
['cache_2ephp',['cache.php',['../cache_8php.html',1,'']]],
- ['chanman_2ephp',['chanman.php',['../mod_2chanman_8php.html',1,'']]],
- ['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,'']]],
@@ -15,11 +13,9 @@ var searchData=
['comanche_2ephp',['comanche.php',['../comanche_8php.html',1,'']]],
['common_2ephp',['common.php',['../common_8php.html',1,'']]],
['config_2emd',['config.md',['../config_8md.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_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_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,'']]],
diff --git a/doc/html/search/files_64.js b/doc/html/search/files_64.js
index a4f523e4a..7655469bc 100644
--- a/doc/html/search/files_64.js
+++ b/doc/html/search/files_64.js
@@ -9,17 +9,16 @@ var searchData=
['dba_5fdriver_2ephp',['dba_driver.php',['../dba__driver_8php.html',1,'']]],
['dba_5fmysql_2ephp',['dba_mysql.php',['../dba__mysql_8php.html',1,'']]],
['dba_5fmysqli_2ephp',['dba_mysqli.php',['../dba__mysqli_8php.html',1,'']]],
+ ['dba_5fpostgres_2ephp',['dba_postgres.php',['../dba__postgres_8php.html',1,'']]],
['default_2ephp',['default.php',['../php_2default_8php.html',1,'']]],
- ['default_2ephp',['default.php',['../theme_2blogga_2php_2default_8php.html',1,'']]],
- ['default_2ephp',['default.php',['../theme_2blogga_2view_2theme_2blog_2default_8php.html',1,'']]],
['default_2ephp',['default.php',['../theme_2mytheme_2php_2default_8php.html',1,'']]],
['delegate_2ephp',['delegate.php',['../delegate_8php.html',1,'']]],
['deliver_2ephp',['deliver.php',['../deliver_8php.html',1,'']]],
['diaspora_2ephp',['diaspora.php',['../diaspora_8php.html',1,'']]],
+ ['dimport_2ephp',['dimport.php',['../dimport_8php.html',1,'']]],
['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_66.js b/doc/html/search/files_66.js
index 41bca4490..6d83aa37c 100644
--- a/doc/html/search/files_66.js
+++ b/doc/html/search/files_66.js
@@ -6,8 +6,9 @@ var searchData=
['filer_2ephp',['filer.php',['../filer_8php.html',1,'']]],
['filerm_2ephp',['filerm.php',['../filerm_8php.html',1,'']]],
['filestorage_2ephp',['filestorage.php',['../filestorage_8php.html',1,'']]],
- ['follow_2ephp',['follow.php',['../include_2follow_8php.html',1,'']]],
+ ['fixd_2ephp',['fixd.php',['../fixd_8php.html',1,'']]],
['follow_2ephp',['follow.php',['../mod_2follow_8php.html',1,'']]],
+ ['follow_2ephp',['follow.php',['../include_2follow_8php.html',1,'']]],
['fpostit_2ephp',['fpostit.php',['../fpostit_8php.html',1,'']]],
['fresh_2emd',['fresh.md',['../fresh_8md.html',1,'']]],
['friendica_2dto_2dsmarty_2dtpl_2epy',['friendica-to-smarty-tpl.py',['../friendica-to-smarty-tpl_8py.html',1,'']]],
diff --git a/doc/html/search/files_69.js b/doc/html/search/files_69.js
index f7506b140..8345e5929 100644
--- a/doc/html/search/files_69.js
+++ b/doc/html/search/files_69.js
@@ -1,8 +1,10 @@
var searchData=
[
['identity_2ephp',['identity.php',['../identity_8php.html',1,'']]],
+ ['impel_2ephp',['impel.php',['../impel_8php.html',1,'']]],
['import_2ephp',['import.php',['../import_8php.html',1,'']]],
['importelm_2ephp',['importelm.php',['../importelm_8php.html',1,'']]],
+ ['importer_2ephp',['Importer.php',['../Importer_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 b695ca079..272421a4f 100644
--- a/doc/html/search/files_6c.js
+++ b/doc/html/search/files_6c.js
@@ -5,6 +5,7 @@ var searchData=
['layouts_2ephp',['layouts.php',['../layouts_8php.html',1,'']]],
['like_2ephp',['like.php',['../like_8php.html',1,'']]],
['lockview_2ephp',['lockview.php',['../lockview_8php.html',1,'']]],
+ ['locs_2ephp',['locs.php',['../locs_8php.html',1,'']]],
['login_2ephp',['login.php',['../login_8php.html',1,'']]],
['lostpass_2ephp',['lostpass.php',['../lostpass_8php.html',1,'']]]
];
diff --git a/doc/html/search/files_70.js b/doc/html/search/files_70.js
index 26618c5c7..9892d5e4d 100644
--- a/doc/html/search/files_70.js
+++ b/doc/html/search/files_70.js
@@ -1,5 +1,6 @@
var searchData=
[
+ ['p_2ephp',['p.php',['../p_8php.html',1,'']]],
['page_2ephp',['page.php',['../page_8php.html',1,'']]],
['page_5fwidgets_2ephp',['page_widgets.php',['../page__widgets_8php.html',1,'']]],
['parse_5furl_2ephp',['parse_url.php',['../parse__url_8php.html',1,'']]],
@@ -11,8 +12,8 @@ var searchData=
['photo_5fdriver_2ephp',['photo_driver.php',['../photo__driver_8php.html',1,'']]],
['photo_5fgd_2ephp',['photo_gd.php',['../photo__gd_8php.html',1,'']]],
['photo_5fimagick_2ephp',['photo_imagick.php',['../photo__imagick_8php.html',1,'']]],
- ['photos_2ephp',['photos.php',['../mod_2photos_8php.html',1,'']]],
['photos_2ephp',['photos.php',['../include_2photos_8php.html',1,'']]],
+ ['photos_2ephp',['photos.php',['../mod_2photos_8php.html',1,'']]],
['php_2ephp',['php.php',['../php_8php.html',1,'']]],
['php2po_2ephp',['php2po.php',['../php2po_8php.html',1,'']]],
['pine_2ephp',['pine.php',['../pine_8php.html',1,'']]],
@@ -24,10 +25,9 @@ var searchData=
['poll_2ephp',['poll.php',['../poll_8php.html',1,'']]],
['poller_2ephp',['poller.php',['../poller_8php.html',1,'']]],
['post_2ephp',['post.php',['../post_8php.html',1,'']]],
- ['post_5fto_5fred_2ephp',['post_to_red.php',['../post__to__red_8php.html',1,'']]],
['pretheme_2ephp',['pretheme.php',['../pretheme_8php.html',1,'']]],
- ['probe_2ephp',['probe.php',['../mod_2probe_8php.html',1,'']]],
['probe_2ephp',['probe.php',['../include_2probe_8php.html',1,'']]],
+ ['probe_2ephp',['probe.php',['../mod_2probe_8php.html',1,'']]],
['profile_2ephp',['profile.php',['../profile_8php.html',1,'']]],
['profile_5fphoto_2ephp',['profile_photo.php',['../profile__photo_8php.html',1,'']]],
['profile_5fselectors_2ephp',['profile_selectors.php',['../profile__selectors_8php.html',1,'']]],
diff --git a/doc/html/search/files_72.js b/doc/html/search/files_72.js
index 569d91934..c61471237 100644
--- a/doc/html/search/files_72.js
+++ b/doc/html/search/files_72.js
@@ -2,12 +2,16 @@ var searchData=
[
['randprof_2ephp',['randprof.php',['../randprof_8php.html',1,'']]],
['rbmark_2ephp',['rbmark.php',['../rbmark_8php.html',1,'']]],
- ['readme_2emd',['README.md',['../apw_2README_8md.html',1,'']]],
- ['readme_2emd',['README.md',['../blogga_2php_2README_8md.html',1,'']]],
+ ['readme_2emd',['README.md',['../README_8md.html',1,'']]],
['receive_2ephp',['receive.php',['../receive_8php.html',1,'']]],
['redable_2ephp',['redable.php',['../redable_8php.html',1,'']]],
['redbasic_2ephp',['redbasic.php',['../redbasic_8php.html',1,'']]],
+ ['redbasicauth_2ephp',['RedBasicAuth.php',['../RedBasicAuth_8php.html',1,'']]],
+ ['redbrowser_2ephp',['RedBrowser.php',['../RedBrowser_8php.html',1,'']]],
['reddav_2ephp',['reddav.php',['../reddav_8php.html',1,'']]],
+ ['reddirectory_2ephp',['RedDirectory.php',['../RedDirectory_8php.html',1,'']]],
+ ['redfile_2ephp',['RedFile.php',['../RedFile_8php.html',1,'']]],
+ ['refimport_2ephp',['refimport.php',['../refimport_8php.html',1,'']]],
['register_2ephp',['register.php',['../register_8php.html',1,'']]],
['regmod_2ephp',['regmod.php',['../regmod_8php.html',1,'']]],
['regver_2ephp',['regver.php',['../regver_8php.html',1,'']]],
diff --git a/doc/html/search/files_73.js b/doc/html/search/files_73.js
index dbd285224..f4c9ba8ba 100644
--- a/doc/html/search/files_73.js
+++ b/doc/html/search/files_73.js
@@ -3,10 +3,14 @@ var searchData=
['search_2ephp',['search.php',['../search_8php.html',1,'']]],
['search_5fac_2ephp',['search_ac.php',['../search__ac_8php.html',1,'']]],
['security_2ephp',['security.php',['../security_8php.html',1,'']]],
+ ['service_5flimits_2ephp',['service_limits.php',['../service__limits_8php.html',1,'']]],
['session_2ephp',['session.php',['../session_8php.html',1,'']]],
['settings_2ephp',['settings.php',['../settings_8php.html',1,'']]],
['setup_2ephp',['setup.php',['../setup_8php.html',1,'']]],
['share_2ephp',['share.php',['../share_8php.html',1,'']]],
+ ['simple_5fblack_5fon_5fwhite_2ephp',['simple_black_on_white.php',['../simple__black__on__white_8php.html',1,'']]],
+ ['simple_5fgreen_5fon_5fblack_2ephp',['simple_green_on_black.php',['../simple__green__on__black_8php.html',1,'']]],
+ ['simple_5fwhite_5fon_5fblack_2ephp',['simple_white_on_black.php',['../simple__white__on__black_8php.html',1,'']]],
['siteinfo_2ephp',['siteinfo.php',['../siteinfo_8php.html',1,'']]],
['sitelist_2ephp',['sitelist.php',['../sitelist_8php.html',1,'']]],
['smarty_2ephp',['smarty.php',['../smarty_8php.html',1,'']]],
@@ -16,9 +20,13 @@ var searchData=
['spam_2ephp',['spam.php',['../spam_8php.html',1,'']]],
['sslify_2ephp',['sslify.php',['../sslify_8php.html',1,'']]],
['starred_2ephp',['starred.php',['../starred_8php.html',1,'']]],
+ ['statistics_5ffns_2ephp',['statistics_fns.php',['../statistics__fns_8php.html',1,'']]],
+ ['style_2ephp',['style.php',['../stumble_2php_2style_8php.html',1,'']]],
['style_2ephp',['style.php',['../mytheme_2php_2style_8php.html',1,'']]],
- ['style_2ephp',['style.php',['../redbasic_2php_2style_8php.html',1,'']]],
+ ['style_2ephp',['style.php',['../hivenet_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,'']]],
+ ['style_2ephp',['style.php',['../suckerberg_2php_2style_8php.html',1,'']]],
['subthread_2ephp',['subthread.php',['../subthread_8php.html',1,'']]],
['suggest_2ephp',['suggest.php',['../suggest_8php.html',1,'']]],
['system_5funavailable_2ephp',['system_unavailable.php',['../system__unavailable_8php.html',1,'']]]
diff --git a/doc/html/search/files_74.js b/doc/html/search/files_74.js
index 8a5b0ea9f..12f380367 100644
--- a/doc/html/search/files_74.js
+++ b/doc/html/search/files_74.js
@@ -5,15 +5,15 @@ var searchData=
['taxonomy_2ephp',['taxonomy.php',['../taxonomy_8php.html',1,'']]],
['template_5fprocessor_2ephp',['template_processor.php',['../template__processor_8php.html',1,'']]],
['text_2ephp',['text.php',['../text_8php.html',1,'']]],
+ ['theme_2ephp',['theme.php',['../stumble_2php_2theme_8php.html',1,'']]],
+ ['theme_2ephp',['theme.php',['../hivenet_2php_2theme_8php.html',1,'']]],
['theme_2ephp',['theme.php',['../mytheme_2php_2theme_8php.html',1,'']]],
- ['theme_2ephp',['theme.php',['../apw_2php_2theme_8php.html',1,'']]],
- ['theme_2ephp',['theme.php',['../blogga_2php_2theme_8php.html',1,'']]],
- ['theme_2ephp',['theme.php',['../blogga_2view_2theme_2blog_2theme_8php.html',1,'']]],
['theme_2ephp',['theme.php',['../redbasic_2php_2theme_8php.html',1,'']]],
- ['theme_5finit_2ephp',['theme_init.php',['../theme_2redbasic_2php_2theme__init_8php.html',1,'']]],
- ['theme_5finit_2ephp',['theme_init.php',['../php_2theme__init_8php.html',1,'']]],
+ ['theme_2ephp',['theme.php',['../suckerberg_2php_2theme_8php.html',1,'']]],
+ ['theme_2ephp',['theme.php',['../apw_2php_2theme_8php.html',1,'']]],
['theme_5finit_2ephp',['theme_init.php',['../theme_2apw_2php_2theme__init_8php.html',1,'']]],
- ['theme_5finit_2ephp',['theme_init.php',['../theme_2blogga_2php_2theme__init_8php.html',1,'']]],
+ ['theme_5finit_2ephp',['theme_init.php',['../php_2theme__init_8php.html',1,'']]],
+ ['theme_5finit_2ephp',['theme_init.php',['../theme_2redbasic_2php_2theme__init_8php.html',1,'']]],
['thing_2ephp',['thing.php',['../thing_8php.html',1,'']]],
['toggle_5fmobile_2ephp',['toggle_mobile.php',['../toggle__mobile_8php.html',1,'']]],
['toggle_5fsafesearch_2ephp',['toggle_safesearch.php',['../toggle__safesearch_8php.html',1,'']]],
diff --git a/doc/html/search/files_75.js b/doc/html/search/files_75.js
index 33a82596e..440a0e7f0 100644
--- a/doc/html/search/files_75.js
+++ b/doc/html/search/files_75.js
@@ -3,6 +3,7 @@ var searchData=
['uexport_2ephp',['uexport.php',['../uexport_8php.html',1,'']]],
['update_5fchannel_2ephp',['update_channel.php',['../update__channel_8php.html',1,'']]],
['update_5fdisplay_2ephp',['update_display.php',['../update__display_8php.html',1,'']]],
+ ['update_5fhome_2ephp',['update_home.php',['../update__home_8php.html',1,'']]],
['update_5fnetwork_2ephp',['update_network.php',['../update__network_8php.html',1,'']]],
['update_5fsearch_2ephp',['update_search.php',['../update__search_8php.html',1,'']]],
['updatetpl_2epy',['updatetpl.py',['../updatetpl_8py.html',1,'']]]
diff --git a/doc/html/search/functions_5f.js b/doc/html/search/functions_5f.js
index a0bd71165..a25babe06 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()'],['../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()'],['../classFriendicaSmarty.html#af12091b920b95eeef1218cbc48066ca6',1,'FriendicaSmarty\__construct()'],['../classFriendicaSmartyEngine.html#ab7c305bd8c386c2944e4dc9136cea5b6',1,'FriendicaSmartyEngine\__construct()']]],
+ ['_5f_5fconstruct',['__construct',['../classApp.html#af6d39f63fb7116bbeb04e51696f99474',1,'App\__construct()'],['../classConversation.html#af84ea6ccd72214c9bb4c504461cc8b09',1,'Conversation\__construct()'],['../classdba__driver.html#af3541d13ccb7a3eddfc03e253c746186',1,'dba_driver\__construct()'],['../classItem.html#a248f45871ecfe82a08d1d4c0769b2eb2',1,'Item\__construct()'],['../classFKOAuth1.html#a2f1276872329a6f0b704ccda1a4b9fa6',1,'FKOAuth1\__construct()'],['../classphoto__driver.html#ac6e85f8e507cab4e755ed7acdec401ae',1,'photo_driver\__construct()'],['../classRedMatrix_1_1RedDAV_1_1RedBrowser.html#a8161f2a0be205412e263c947b5ec46c5',1,'RedMatrix\RedDAV\RedBrowser\__construct()'],['../classRedMatrix_1_1RedDAV_1_1RedDirectory.html#a76b58fe5223e565c97f1b9af93031a99',1,'RedMatrix\RedDAV\RedDirectory\__construct()'],['../classRedMatrix_1_1RedDAV_1_1RedFile.html#a05798eac84c578152ff21758261c6ac6',1,'RedMatrix\RedDAV\RedFile\__construct()'],['../classFriendicaSmarty.html#af12091b920b95eeef1218cbc48066ca6',1,'FriendicaSmarty\__construct()'],['../classFriendicaSmartyEngine.html#ab7c305bd8c386c2944e4dc9136cea5b6',1,'FriendicaSmartyEngine\__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 ec92d674e..4c85f29be 100644
--- a/doc/html/search/functions_61.js
+++ b/doc/html/search/functions_61.js
@@ -5,6 +5,7 @@ var searchData=
['abook_5ftoggle_5fflag',['abook_toggle_flag',['../Contact_8php.html#a024919623a830e8703ac4f23496dd66c',1,'Contact.php']]],
['absurl',['absurl',['../boot_8php.html#a081307d681d7d04f17b9ced2076e7c85',1,'boot.php']]],
['account_5fremove',['account_remove',['../Contact_8php.html#a5101d7eca5d6f387e5555f03fe249e33',1,'Contact.php']]],
+ ['account_5fservice_5fclass_5ffetch',['account_service_class_fetch',['../account_8php.html#a4328c40ee4b3d68630cf1ebb7b9d4d89',1,'account.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']]],
@@ -70,6 +71,8 @@ var searchData=
['api_5ffriendica_5fversion',['api_friendica_version',['../include_2api_8php.html#a53b0680b682ae6078f2e1ed18cfb3f74',1,'api.php']]],
['api_5ffriends_5fids',['api_friends_ids',['../include_2api_8php.html#acafd2899309a005fcb725289173dc7fe',1,'api.php']]],
['api_5fget_5fuser',['api_get_user',['../include_2api_8php.html#aa40bae797bcd9ccacffdce5a3b5a1afa',1,'api.php']]],
+ ['api_5fgroup',['api_group',['../include_2api_8php.html#ad5fe62d6c25c86999f627b2e6cfde536',1,'api.php']]],
+ ['api_5fgroup_5fmembers',['api_group_members',['../include_2api_8php.html#ae46f964e5a9c80b96dc78df61c09ed3a',1,'api.php']]],
['api_5fhelp_5ftest',['api_help_test',['../include_2api_8php.html#ac5a64cc81d70ff3cf866093ea9721d23',1,'api.php']]],
['api_5fitem_5fget_5fuser',['api_item_get_user',['../include_2api_8php.html#aa49741342ad8ba285737eea1209a37e1',1,'api.php']]],
['api_5flogin',['api_login',['../include_2api_8php.html#afe534f826e4282b72d66e8cadca7bb73',1,'api.php']]],
@@ -77,6 +80,7 @@ var searchData=
['api_5foauth_5frequest_5ftoken',['api_oauth_request_token',['../include_2api_8php.html#aa1bddb580510e70cc1a7b7381667f1a3',1,'api.php']]],
['api_5fphotos',['api_photos',['../include_2api_8php.html#aa6fc3bc8c0fad1d081db0dcc456dd77f',1,'api.php']]],
['api_5fpost',['api_post',['../mod_2api_8php.html#a6fe77f05c07cb51048df0d557b4b9bd2',1,'api.php']]],
+ ['api_5fred_5fxchan',['api_red_xchan',['../include_2api_8php.html#a4fe872332ff0bd8d5eae2f0c6819cb60',1,'api.php']]],
['api_5fregister_5ffunc',['api_register_func',['../include_2api_8php.html#ac2c2b18c426d697d11a830bca146be8a',1,'api.php']]],
['api_5frss_5fextra',['api_rss_extra',['../include_2api_8php.html#a6a04b48168ba1d9dd2de3081a630611f',1,'api.php']]],
['api_5fstatus_5fshow',['api_status_show',['../include_2api_8php.html#a645397787618b5c548a31e8686e8cca4',1,'api.php']]],
diff --git a/doc/html/search/functions_62.js b/doc/html/search/functions_62.js
index 50e587929..47ba65793 100644
--- a/doc/html/search/functions_62.js
+++ b/doc/html/search/functions_62.js
@@ -3,11 +3,15 @@ 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']]],
- ['bb2diaspora_5fitembody',['bb2diaspora_itembody',['../bb2diaspora_8php.html#a2052c66bc1006a42b4c230320c269e47',1,'bb2diaspora.php']]],
+ ['bb2diaspora_5fitembody',['bb2diaspora_itembody',['../bb2diaspora_8php.html#ab27761069ea1275f0fc4c543099c5519',1,'bb2diaspora.php']]],
+ ['bb2diaspora_5fitemwallwall',['bb2diaspora_itemwallwall',['../bb2diaspora_8php.html#aab32042f8bd63552d3fadeeae9eab083',1,'bb2diaspora.php']]],
['bb2dmention_5fcallback',['bb2dmention_callback',['../bb2diaspora_8php.html#a5258d2f1addeb0a2a6b54c4f9e7d0f34',1,'bb2diaspora.php']]],
['bb_5flocation',['bb_location',['../bbcode_8php.html#a3435c82a6c7693557800cdeb6848d0bd',1,'bbcode.php']]],
+ ['bb_5fmap_5fcoords',['bb_map_coords',['../bbcode_8php.html#a02d5f2434e7bb5cf683e52a9b4787f24',1,'bbcode.php']]],
+ ['bb_5fmap_5flocation',['bb_map_location',['../bbcode_8php.html#a7cb403fd1c36d7376c2f3932a1ceb54d',1,'bbcode.php']]],
['bb_5fparse_5fapp',['bb_parse_app',['../bbcode_8php.html#abb02f1044ff1c635d12af690d0f2cfa2',1,'bbcode.php']]],
['bb_5fparse_5fcrypt',['bb_parse_crypt',['../bbcode_8php.html#a851f5aafefe52474201b83f9fd65931f',1,'bbcode.php']]],
+ ['bb_5fparse_5felement',['bb_parse_element',['../bbcode_8php.html#aa73fb62e7be1fa5fce4ad5f3d4487fc9',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']]],
@@ -24,12 +28,7 @@ var searchData=
['block_5fcontent',['block_content',['../block_8php.html#a8a82a470acdfbc7a8e749509caeeea45',1,'block.php']]],
['block_5finit',['block_init',['../block_8php.html#a9b61c96044ed2a068f18c10370a78d5c',1,'block.php']]],
['blocks_5fcontent',['blocks_content',['../blocks_8php.html#a2531a8fd51db3cecb2eb20c002c66e12',1,'blocks.php']]],
- ['blog_5finit',['blog_init',['../blogga_2php_2theme_8php.html#aa55c1cb1f05087b5002ecb633b550b1b',1,'blog_init(&amp;$a):&#160;theme.php'],['../blogga_2view_2theme_2blog_2theme_8php.html#aa55c1cb1f05087b5002ecb633b550b1b',1,'blog_init(&amp;$a):&#160;theme.php']]],
- ['blog_5finstall',['blog_install',['../blogga_2view_2theme_2blog_2theme_8php.html#aae58cc837fe56473d9f3370abfe533ae',1,'theme.php']]],
- ['blog_5funinstall',['blog_uninstall',['../blogga_2view_2theme_2blog_2theme_8php.html#a3e77dbe111f330c64a1ff6c741cd515c',1,'theme.php']]],
- ['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']]],
+ ['blocks_5finit',['blocks_init',['../blocks_8php.html#aebe88302181883d2b17d6e98a1aaebe9',1,'blocks.php']]],
['bookmark_5fadd',['bookmark_add',['../include_2bookmarks_8php.html#aef1cb2968c41c759f2d106e1088ca323',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']]],
diff --git a/doc/html/search/functions_63.js b/doc/html/search/functions_63.js
index ea32c91b1..45e867c89 100644
--- a/doc/html/search/functions_63.js
+++ b/doc/html/search/functions_63.js
@@ -3,13 +3,13 @@ var searchData=
['cal',['cal',['../datetime_8php.html#aea356409ba69f9de412298c998595dd2',1,'datetime.php']]],
['call_5fhooks',['call_hooks',['../plugin_8php.html#a7f05de16c0a32602853b09b99dd85e7c',1,'plugin.php']]],
['can_5fcomment_5fon_5fpost',['can_comment_on_post',['../items_8php.html#a1e75047cf175aaee8dd16aa761913ff9',1,'items.php']]],
+ ['catblock',['catblock',['../taxonomy_8php.html#aa8f8a1ff85daef046298e93c83e7a1b4',1,'taxonomy.php']]],
['categories_5fwidget',['categories_widget',['../contact__widgets_8php.html#a165eb021e61c4dcab2a552f28628d353',1,'contact_widgets.php']]],
['change_5fchannel',['change_channel',['../security_8php.html#a8d23d2597aae380a3341872fe9513380',1,'security.php']]],
['change_5fpermissions',['change_permissions',['../classProtoDriver.html#a34b97ca5ef2165f2e16eb2fe59ff6c67',1,'ProtoDriver\change_permissions()'],['../classZotDriver.html#a6776935156accb0f170e2e24577133db',1,'ZotDriver\change_permissions()']]],
['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_5fremove_5feverything_5ffrom_5fnetwork',['chanman_remove_everything_from_network',['../include_2chanman_8php.html#a21ba9a5c961e866ff27aee3ee67bf99b',1,'chanman.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#a4e8af0f0525161da74583c04b8b03097',1,'Contact.php']]],
@@ -27,6 +27,7 @@ var searchData=
['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']]],
+ ['chatroom_5flist_5fcount',['chatroom_list_count',['../include_2chat_8php.html#a26abdccc2a278a59899896dbbfc6f049',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']]],
@@ -52,14 +53,14 @@ var searchData=
['check_5fupstream_5fdirectory',['check_upstream_directory',['../dir__fns_8php.html#a2f7d74bb2aea8bcd2537aee5c6708a16',1,'dir_fns.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']]],
+ ['childexists',['childExists',['../classRedMatrix_1_1RedDAV_1_1RedDirectory.html#a964b13fde1a5da6f76b51ca5519234dc',1,'RedMatrix::RedDAV::RedDirectory']]],
['clean_5furls',['clean_urls',['../boot_8php.html#ab79b8b4555cae20d03f8200666d89d63',1,'boot.php']]],
['clear',['clear',['../classCache.html#ab14d0f4bdf7116a94d545c574b38f568',1,'Cache']]],
['cleardiv',['cleardiv',['../text_8php.html#afe18627c4983ee5f7c940a0992818cd5',1,'text.php']]],
['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#a1b79a6fe0454bc76673ad9aef55bf02d',1,'cloud.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()'],['../classdba__postgres.html#a731d8648b41b8a126f6b99bdd5414058',1,'dba_postgres\close()']]],
+ ['cloud_5finit',['cloud_init',['../cloud_8php.html#ad2e96e917852f27dedfc263d37e13756',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#a772f0ae77ad77c8ab68ed918a3870946',1,'items.php']]],
@@ -80,7 +81,8 @@ var searchData=
['common_5finit',['common_init',['../common_8php.html#aca62f113655809f41f49042ce9b123c2',1,'common.php']]],
['compare_5fpermissions',['compare_permissions',['../items_8php.html#a0790a4550b829e85504af548623002ca',1,'items.php']]],
['completeurl',['completeurl',['../parse__url_8php.html#a496f4e3836154f6f32b8e805a7160d3a',1,'parse_url.php']]],
- ['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()']]],
+ ['concat',['concat',['../classdba__driver.html#ab9982f38a02f008b127a0f3ccc1e99f4',1,'dba_driver\concat()'],['../classdba__postgres.html#a7ea3f24ad260c1e21588f8b5af595caa',1,'dba_postgres\concat()']]],
+ ['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()'],['../classdba__postgres.html#ab36244320f5b71dba92d9318ccf3f34e',1,'dba_postgres\connect()']]],
['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']]],
@@ -106,16 +108,20 @@ var searchData=
['conv_5fsort',['conv_sort',['../conversation_8php.html#abed85a41f1160598de880b84021c9cf7',1,'conversation.php']]],
['conversation',['conversation',['../conversation_8php.html#affea1afb3f32ca41e966c8ddb4204d81',1,'conversation.php']]],
['convert',['convert',['../namespacefriendica-to-smarty-tpl.html#a38503e37fe68ac27c88cce91a9ac9efa',1,'friendica-to-smarty-tpl']]],
+ ['convert_5fchild',['convert_child',['../classRedMatrix_1_1Import_1_1Import.html#a5434325afb2c633c52540127d717800a',1,'RedMatrix::Import::Import']]],
+ ['convert_5fitem',['convert_item',['../classRedMatrix_1_1Import_1_1Import.html#a107703a43a1b0ceb2af7ae470cb3f218',1,'RedMatrix::Import::Import']]],
+ ['convert_5ftaxonomy',['convert_taxonomy',['../classRedMatrix_1_1Import_1_1Import.html#addf6e53dacd971eaab49be4b17a767d6',1,'RedMatrix::Import::Import']]],
['convert_5fxml_5felement_5fto_5farray',['convert_xml_element_to_array',['../include_2network_8php.html#ad4056d3ce69988f5c1a997a79f503246',1,'network.php']]],
['count_5fall_5ffriends',['count_all_friends',['../socgraph_8php.html#af29d056beec10b4e38e5209c92452894',1,'socgraph.php']]],
['count_5fcommon_5ffriends',['count_common_friends',['../socgraph_8php.html#a887d576f21fd708132a06d0f72f90f84',1,'socgraph.php']]],
['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']]],
+ ['count_5funseen_5fdescendants',['count_unseen_descendants',['../classItem.html#ae0c48b2fed5558642549cabd547fc4f3',1,'Item']]],
['create_5faccount',['create_account',['../account_8php.html#a141fe579c351c78209d425473f978eb5',1,'account.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']]],
+ ['createdirectory',['createDirectory',['../classRedMatrix_1_1RedDAV_1_1RedDirectory.html#aca0e8d574ea66a0e210f571700663c62',1,'RedMatrix::RedDAV::RedDirectory']]],
+ ['createfile',['createFile',['../classRedMatrix_1_1RedDAV_1_1RedDirectory.html#a58e750256cdc2f0f79fbe8d5463ffefe',1,'RedMatrix::RedDAV::RedDirectory']]],
['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 5f9bb71b5..ba2666498 100644
--- a/doc/html/search/functions_64.js
+++ b/doc/html/search/functions_64.js
@@ -1,22 +1,31 @@
var searchData=
[
- ['datesel',['datesel',['../datetime_8php.html#ac265b86f384ee094ed5479aae02aa5c8',1,'datetime.php']]],
- ['datesel_5fformat',['datesel_format',['../datetime_8php.html#a5f29553799005b1fd4e9ce9d98ce05aa',1,'datetime.php']]],
+ ['datesel',['datesel',['../datetime_8php.html#a77bb385ae8a9e7ca663309c102c0d766',1,'datetime.php']]],
['datetime_5fconvert',['datetime_convert',['../datetime_8php.html#ad6301e74b0f9267d52f8d432b5beb226',1,'datetime.php']]],
+ ['datetimesel',['datetimesel',['../datetime_8php.html#a72218e5ee21876484934bacbb6bd9ba3',1,'datetime.php']]],
['day_5ftranslate',['day_translate',['../text_8php.html#a63fb21c0bed2fc72eef2c1471ac42b63',1,'text.php']]],
- ['dba_5ffactory',['dba_factory',['../dba__driver_8php.html#ac10e60f6e5b95bcf67bd82cb88f37947',1,'dba_driver.php']]],
+ ['db_5fconcat',['db_concat',['../dba__driver_8php.html#a7c1b98a710ead27382c958ad3216c4ee',1,'dba_driver.php']]],
+ ['db_5fgetfunc',['db_getfunc',['../dba__driver_8php.html#a2994daa03b1c23229a27e39bcab75e67',1,'dba_driver.php']]],
+ ['db_5foptimizetable',['db_optimizetable',['../dba__driver_8php.html#a75098bf1d59ea57f7ebae657a369137e',1,'dba_driver.php']]],
+ ['db_5fquoteinterval',['db_quoteinterval',['../dba__driver_8php.html#acec84a8fb75d78daf657cbe5df74e25a',1,'dba_driver.php']]],
+ ['db_5futcnow',['db_utcnow',['../dba__driver_8php.html#a30e9a643be804e905f5614a3279d2645',1,'dba_driver.php']]],
+ ['dba_5ffactory',['dba_factory',['../dba__driver_8php.html#a5df8499634c47b30191f34069d7b98c0',1,'dba_driver.php']]],
['dba_5ftimer',['dba_timer',['../boot_8php.html#a3e0930933fb2c0bf8211cc7ab4e1c3b4',1,'boot.php']]],
['dbesc',['dbesc',['../dba__driver_8php.html#ab222aa1dbf9ea93b320f82028739127e',1,'dba_driver.php']]],
['dbesc_5farray',['dbesc_array',['../dba__driver_8php.html#a65b83462bd26968106aebd43f16540e4',1,'dba_driver.php']]],
['dbesc_5farray_5fcb',['dbesc_array_cb',['../dba__driver_8php.html#af531546fac5f0836a8557a4f6dfee930',1,'dba_driver.php']]],
+ ['dbesc_5fidentifier',['dbesc_identifier',['../dba__driver_8php.html#aa051799567690a124a3b865bf902f58a',1,'dba_driver.php']]],
+ ['dbescbin',['dbescbin',['../dba__driver_8php.html#a2a38996670c2936b5769270c49c57593',1,'dba_driver.php']]],
+ ['dbescdate',['dbescdate',['../dba__driver_8php.html#a2c8a72ec73f39b17a167c90737693f78',1,'dba_driver.php']]],
['dbg',['dbg',['../classdba__driver.html#adcc1f8955120fec0708bce39202d0422',1,'dba_driver\dbg()'],['../dba__driver_8php.html#aa6607893d8f60ade9122bcfbd1a53ffb',1,'dbg():&#160;dba_driver.php']]],
['dbq',['dbq',['../dba__driver_8php.html#aa377074e70981e8c4e82ca0accd068ee',1,'dba_driver.php']]],
+ ['dbunescbin',['dbunescbin',['../dba__driver_8php.html#afaaa1a7eff9c1b65b3b8c464ae37640e',1,'dba_driver.php']]],
['decode_5ftags',['decode_tags',['../items_8php.html#a56b2a4abcadfac71175cd50555528cc3',1,'items.php']]],
['del_5fconfig',['del_config',['../include_2config_8php.html#a549910227348003efc3c05c9105c42da',1,'config.php']]],
['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',['../classRedFile.html#aef71c9eaac7052be7dc8602eb12171e7',1,'RedFile']]],
+ ['delete',['delete',['../classRedMatrix_1_1RedDAV_1_1RedFile.html#ab7ab7ba81fab28eb02382cfdfd80ecfe',1,'RedMatrix::RedDAV::RedFile']]],
['delete_5fimported_5fitem',['delete_imported_item',['../zot_8php.html#adfeb9400ae6b726beec89f8f1e8fde72',1,'zot.php']]],
['delete_5fitem_5flowlevel',['delete_item_lowlevel',['../items_8php.html#aac8c9eb4338e2a996c43914392c6cfdb',1,'items.php']]],
['deletenode',['deletenode',['../html2bbcode_8php.html#a71a07f135d196ec5943b13f7b2e6a9b2',1,'html2bbcode.php']]],
@@ -58,11 +67,12 @@ var searchData=
['diaspora_5fsend_5frelay',['diaspora_send_relay',['../diaspora_8php.html#a0b3628a5e53332c3d3196b689fe2b94d',1,'diaspora.php']]],
['diaspora_5fsend_5fretraction',['diaspora_send_retraction',['../diaspora_8php.html#a1704748aa2384c73e43f10e71defd31a',1,'diaspora.php']]],
['diaspora_5fsend_5fstatus',['diaspora_send_status',['../diaspora_8php.html#a33ae0c4606a7df4d801c05507d87f668',1,'diaspora.php']]],
- ['diaspora_5fshare',['diaspora_share',['../diaspora_8php.html#af3a7f9879c14fec761dcc5563fb39bac',1,'diaspora.php']]],
+ ['diaspora_5fshare',['diaspora_share',['../diaspora_8php.html#a69f250b078a46e405647428ec3399a16',1,'diaspora.php']]],
['diaspora_5fsigned_5fretraction',['diaspora_signed_retraction',['../diaspora_8php.html#aa34d2748bb97e9e193cacd572f335055',1,'diaspora.php']]],
['diaspora_5ftransmit',['diaspora_transmit',['../diaspora_8php.html#aa704d6aa2ac77be345c0f501168e6e56',1,'diaspora.php']]],
['diaspora_5ful',['diaspora_ul',['../bb2diaspora_8php.html#adc92ccda5f85ed27e64fcc17712c89cc',1,'bb2diaspora.php']]],
- ['diaspora_5funshare',['diaspora_unshare',['../diaspora_8php.html#aa4b1cc0bca5c3fe8d11557685e0238a9',1,'diaspora.php']]],
+ ['diaspora_5funshare',['diaspora_unshare',['../diaspora_8php.html#ab736d6f32b5de31c97cb579fc730e200',1,'diaspora.php']]],
+ ['dir_5fflag_5fbuild',['dir_flag_build',['../dirsearch_8php.html#ab6d5fefa98da249a994b910434a669c2',1,'dirsearch.php']]],
['dir_5fparse_5fquery',['dir_parse_query',['../dirsearch_8php.html#a7d4cd9890d5ed23c3efc58e2a778a305',1,'dirsearch.php']]],
['dir_5fquery_5fbuild',['dir_query_build',['../dirsearch_8php.html#a52bcac49b0e35cc8c6b70066143c2ee2',1,'dirsearch.php']]],
['dir_5fsafe_5fmode',['dir_safe_mode',['../dir__fns_8php.html#acf621621e929d49441da30aad76a58cf',1,'dir_fns.php']]],
@@ -72,7 +82,6 @@ var searchData=
['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()']]],
diff --git a/doc/html/search/functions_65.js b/doc/html/search/functions_65.js
index 8424dbba4..e912fd337 100644
--- a/doc/html/search/functions_65.js
+++ b/doc/html/search/functions_65.js
@@ -1,20 +1,25 @@
var searchData=
[
['editblock_5fcontent',['editblock_content',['../editblock_8php.html#abbe8f55de06967bc8d79d620509a49e6',1,'editblock.php']]],
+ ['editblock_5finit',['editblock_init',['../editblock_8php.html#ab7806bb42ae5e93f0330d7bd179d4b3e',1,'editblock.php']]],
['editlayout_5fcontent',['editlayout_content',['../editlayout_8php.html#aa877e4157a26b099de904164181dd386',1,'editlayout.php']]],
+ ['editlayout_5finit',['editlayout_init',['../editlayout_8php.html#a97c1e93d9e75ad8cd2c2f9a7f77341a7',1,'editlayout.php']]],
['editpost_5fcontent',['editpost_content',['../editpost_8php.html#a34011690864d122680c802e9e748ccfb',1,'editpost.php']]],
['editwebpage_5fcontent',['editwebpage_content',['../editwebpage_8php.html#a375e945255fad79a71036528f7480650',1,'editwebpage.php']]],
+ ['editwebpage_5finit',['editwebpage_init',['../editwebpage_8php.html#a94109f9c796fbe92508bf9574e35d19f',1,'editwebpage.php']]],
['email_5fheader_5fencode',['email_header_encode',['../include_2network_8php.html#a469b9bd700269cd07d954f1a16c5899b',1,'network.php']]],
['email_5fsend',['email_send',['../include_2network_8php.html#a1ff07d9fad93b713b93da0ab77aab7f0',1,'network.php']]],
- ['encode_5fitem',['encode_item',['../items_8php.html#a82955cc578f0fa600acec84475026194',1,'items.php']]],
+ ['encode_5fitem',['encode_item',['../items_8php.html#a56b0f5d2cb36eb8f4bfca84813884f86',1,'items.php']]],
['encode_5fitem_5fflags',['encode_item_flags',['../items_8php.html#a5f690fc2484abec07840b4f9dd525bd9',1,'items.php']]],
['encode_5fitem_5fterms',['encode_item_terms',['../items_8php.html#ac6673627d289ee4f547de0fe3b7acd0a',1,'items.php']]],
['encode_5fitem_5fxchan',['encode_item_xchan',['../items_8php.html#a566c601726697e044e75284af7fb6f17',1,'items.php']]],
['encode_5fmail',['encode_mail',['../items_8php.html#a2d840c74ed23d1b6c7daee05cf89dda7',1,'items.php']]],
['encode_5frel_5flinks',['encode_rel_links',['../items_8php.html#aa723c0571e314a1853a24c5854b4f54f',1,'items.php']]],
['enumerate_5fpermissions',['enumerate_permissions',['../items_8php.html#afbcf26dfcf8a83fff952aa858c1b7b67',1,'items.php']]],
- ['escape',['escape',['../classdba__driver.html#afc95ffa103a3290581b537670cde5311',1,'dba_driver\escape()'],['../classdba__mysql.html#a99a7691ea6cb1300031fb6549379066e',1,'dba_mysql\escape()'],['../classdba__mysqli.html#a27d6a748af7f80028801306e7ea33f64',1,'dba_mysqli\escape()']]],
+ ['escape',['escape',['../classdba__driver.html#afc95ffa103a3290581b537670cde5311',1,'dba_driver\escape()'],['../classdba__mysql.html#a99a7691ea6cb1300031fb6549379066e',1,'dba_mysql\escape()'],['../classdba__mysqli.html#a27d6a748af7f80028801306e7ea33f64',1,'dba_mysqli\escape()'],['../classdba__postgres.html#a7108eaaae7cc2fb236212041afc9ac0f',1,'dba_postgres\escape()']]],
+ ['escape_5fidentifier',['escape_identifier',['../classdba__postgres.html#ab2e44e9f41d05e585afd873d18e8c127',1,'dba_postgres']]],
['escape_5ftags',['escape_tags',['../text_8php.html#aa5148a0dfea2a1ca64c3d52f10aa2d64',1,'text.php']]],
+ ['escapebin',['escapebin',['../classdba__driver.html#a7dbe8318587ff1694825042bf58f4fbd',1,'dba_driver\escapebin()'],['../classdba__postgres.html#a8d2c6d8c92fe6f074452876483dd17fc',1,'dba_postgres\escapebin()']]],
['ev_5fcompare',['ev_compare',['../event_8php.html#a32ba1b9ddf7a744a9a1512b052e5f850',1,'event.php']]],
['event_5faddtocal',['event_addtocal',['../event_8php.html#ac9f206819186b65952ac1869f0da8c6e',1,'event.php']]],
['event_5fstore_5fevent',['event_store_event',['../event_8php.html#af5ac41e7ea3f7131088fe6333fd2846c',1,'event.php']]],
@@ -24,5 +29,6 @@ var searchData=
['expand_5facl',['expand_acl',['../text_8php.html#ae4282a39492caa23ccbc2ce98e54f110',1,'text.php']]],
['expand_5fgroups',['expand_groups',['../include_2group_8php.html#a22a81875259c7d3d64d4848afea6b345',1,'group.php']]],
['expire_5frun',['expire_run',['../expire_8php.html#a444e45c9b67727b27db4c779fd51a298',1,'expire.php']]],
- ['externals_5frun',['externals_run',['../externals_8php.html#a4df44079e6f915286088b7a0d44db926',1,'externals.php']]]
+ ['externals_5frun',['externals_run',['../externals_8php.html#a4df44079e6f915286088b7a0d44db926',1,'externals.php']]],
+ ['extra_5fquery_5fargs',['extra_query_args',['../text_8php.html#a3ba47b4dd1248e7e51095572e7b814dc',1,'text.php']]]
];
diff --git a/doc/html/search/functions_66.js b/doc/html/search/functions_66.js
index 4e63189e8..23dd781c2 100644
--- a/doc/html/search/functions_66.js
+++ b/doc/html/search/functions_66.js
@@ -24,8 +24,8 @@ var searchData=
['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']]],
- ['findattachhash',['findAttachHash',['../classRedBrowser.html#ae4edd4e10c709e2624c1aeb47b0440c5',1,'RedBrowser']]],
- ['findattachidbyhash',['findAttachIdByHash',['../classRedBrowser.html#a20d81230645ddca08a88bfd9ea9f88f1',1,'RedBrowser']]],
+ ['findattachhash',['findAttachHash',['../classRedMatrix_1_1RedDAV_1_1RedBrowser.html#ad4bc0516533c62733f38043a37267d78',1,'RedMatrix::RedDAV::RedBrowser']]],
+ ['findattachidbyhash',['findAttachIdByHash',['../classRedMatrix_1_1RedDAV_1_1RedBrowser.html#a0733e38e254474d9a456825e72f1ddfd',1,'RedMatrix::RedDAV::RedBrowser']]],
['findpeople_5fwidget',['findpeople_widget',['../contact__widgets_8php.html#a57e73ebcfd62bb5d8c7a7b9e663726d6',1,'contact_widgets.php']]],
['first_5fpost_5fdate',['first_post_date',['../items_8php.html#a0cf98bb619f07dd18f602683a55a5f59',1,'items.php']]],
['fix_5fattached_5ffile_5fpermissions',['fix_attached_file_permissions',['../item_8php.html#a3daae7944f737bd30412a0d042207c0f',1,'item.php']]],
@@ -38,13 +38,16 @@ 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']]],
+ ['foofoo',['foofoo',['../dimport_8php.html#a581f040717941ce3e1868b0b5dceefd1',1,'dimport.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']]],
['format_5fevent_5fdiaspora',['format_event_diaspora',['../bb2diaspora_8php.html#a29a2ad41f5826f3975fa9a49934ff863',1,'bb2diaspora.php']]],
['format_5fevent_5fhtml',['format_event_html',['../event_8php.html#a2ac9f1b08de03250ecd794f705781d17',1,'event.php']]],
+ ['format_5fevent_5fical',['format_event_ical',['../event_8php.html#a3ff7f1824540a38f4a3991a59a9542d4',1,'event.php']]],
['format_5ffiler',['format_filer',['../text_8php.html#a4e4d42b0a805148d9f9a92bcac89bf91',1,'text.php']]],
['format_5fhashtags',['format_hashtags',['../text_8php.html#a3a0c432a484c17d7720b8ba2d6bfdd59',1,'text.php']]],
+ ['format_5fical_5ftext',['format_ical_text',['../event_8php.html#a05073cd4ab837bd4a0149e8ed23ce688',1,'event.php']]],
['format_5fjs_5fif_5fexists',['format_js_if_exists',['../plugin_8php.html#ad9ff8ba554576383c5911a4bce068c1f',1,'plugin.php']]],
['format_5flike',['format_like',['../conversation_8php.html#a3d8e30cc94f9a175054c021305d3aca3',1,'conversation.php']]],
['format_5flocation',['format_location',['../conversation_8php.html#a0891aaa4492cba2b51eda12fe01957f3',1,'conversation.php']]],
diff --git a/doc/html/search/functions_67.js b/doc/html/search/functions_67.js
index 51338a0e0..e93a57b23 100644
--- a/doc/html/search/functions_67.js
+++ b/doc/html/search/functions_67.js
@@ -3,8 +3,10 @@ var searchData=
['gen_5ftoken',['gen_token',['../classFKOAuthDataStore.html#aa1a268be88ad3979bb4cc35bbb4dc819',1,'FKOAuthDataStore']]],
['gender_5fselector',['gender_selector',['../profile__selectors_8php.html#ae2b2c087e6530c61c0b256fd26d52355',1,'profile_selectors.php']]],
['gender_5fselector_5fmin',['gender_selector_min',['../profile__selectors_8php.html#a8bfa1ca2d1598a3d65f1f9bb803ca816',1,'profile_selectors.php']]],
- ['generatedirectoryindex',['generateDirectoryIndex',['../classRedBrowser.html#a1f7daf50bb9bfcde7345b3b1908dbd7e',1,'RedBrowser']]],
- ['get',['get',['../classCache.html#a70392b109331897bf9fdd7f1960e21de',1,'Cache\get()'],['../classRedFile.html#a7c868dfcef6c70cd0e24cf3caa2c3535',1,'RedFile\get()']]],
+ ['generate_5fmap',['generate_map',['../text_8php.html#ae0333c304ec5b4b72e66bb2933fa7357',1,'text.php']]],
+ ['generate_5fnamed_5fmap',['generate_named_map',['../text_8php.html#af5eb4a9c1599764f80c5bc71e0125d4b',1,'text.php']]],
+ ['generatedirectoryindex',['generateDirectoryIndex',['../classRedMatrix_1_1RedDAV_1_1RedBrowser.html#af764d5f14df751f9ec86c34fab300c09',1,'RedMatrix::RedDAV::RedBrowser']]],
+ ['get',['get',['../classCache.html#a70392b109331897bf9fdd7f1960e21de',1,'Cache\get()'],['../classRedMatrix_1_1RedDAV_1_1RedFile.html#a7241beecd01f5bb4e74659863dd85bd8',1,'RedMatrix\RedDAV\RedFile\get()']]],
['get_5faccount',['get_account',['../classApp.html#a08bc87aff64f39fbc084e9d6545cee4d',1,'App']]],
['get_5faccount_5fid',['get_account_id',['../boot_8php.html#afe88b920aa285982edb817a0dd44eb37',1,'boot.php']]],
['get_5fall_5fperms',['get_all_perms',['../permissions_8php.html#aeca9b280f3dc3358c89976d81d690008',1,'permissions.php']]],
@@ -20,8 +22,9 @@ var searchData=
['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_5fchannel_5fdefault_5fperms',['get_channel_default_perms',['../identity_8php.html#a293f416ce9050220b183e08ff5890216',1,'identity.php']]],
['get_5fchild',['get_child',['../classItem.html#a632185dd25c5caf277067c76230a4320',1,'Item']]],
- ['get_5fchildren',['get_children',['../classItem.html#aa0ee775ec94abccec6c798428835d001',1,'Item']]],
+ ['get_5fchildren',['get_children',['../classRedMatrix_1_1Import_1_1Import.html#a57561904b0f127e0d9a3e2c33688daf8',1,'RedMatrix\Import\Import\get_children()'],['../classItem.html#aa0ee775ec94abccec6c798428835d001',1,'Item\get_children()']]],
['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']]],
@@ -29,14 +32,17 @@ var searchData=
['get_5fconfig',['get_config',['../include_2config_8php.html#af02c96e6b37335774b548914ede1d22e',1,'config.php']]],
['get_5fconfig_5ffrom_5fstorage',['get_config_from_storage',['../include_2config_8php.html#af08b7adb63adfb2eda7c466fba0cce74',1,'config.php']]],
['get_5fconversation',['get_conversation',['../classItem.html#a0c301aaed2b7d682728d18db3a22afa3',1,'Item']]],
+ ['get_5fcredentials',['get_credentials',['../classRedMatrix_1_1Import_1_1Import.html#a24134929d9a8a682da2036a0bf326367',1,'RedMatrix::Import::Import']]],
['get_5fcustom_5fnav',['get_custom_nav',['../boot_8php.html#a899d24fd074594ceebbf72e1feff335f',1,'boot.php']]],
['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_5fdiaspora_5fkey',['get_diaspora_key',['../diaspora_8php.html#a9bf7ef4094e0e14f6e2b7fe76ab7ad2e',1,'diaspora.php']]],
+ ['get_5fdiaspora_5freshare_5fxml',['get_diaspora_reshare_xml',['../diaspora_8php.html#ac9e41e46626dc608204bf4b5e16e62d7',1,'diaspora.php']]],
['get_5fdim',['get_dim',['../datetime_8php.html#a7df24d72ea05922d3127363e2295174c',1,'datetime.php']]],
['get_5fdirectory_5frealm',['get_directory_realm',['../boot_8php.html#a329400dcb29897cdaae3020109272285',1,'boot.php']]],
+ ['get_5fdisplay_5fmode',['get_display_mode',['../classItem.html#a23d4057883f8ed888c0c2ff12d8aa5d0',1,'Item']]],
['get_5fevents',['get_events',['../identity_8php.html#ae381db3d43f8e7c1da8b15d14ecf5312',1,'identity.php']]],
['get_5ffeatures',['get_features',['../features_8php.html#ae73c5b03b01c7284ed7e7e0e774e975c',1,'features.php']]],
['get_5ffeed_5ffor',['get_feed_for',['../items_8php.html#a04a35b610acfe54434df08adec39c0c7',1,'items.php']]],
@@ -46,10 +52,14 @@ var searchData=
['get_5fgroups',['get_groups',['../classApp.html#a4659785d13e4bac0bed50dbb1b0d4299',1,'App']]],
['get_5fhostname',['get_hostname',['../classApp.html#a622eace13f8fc9f4b5672a68e2bc4396',1,'App']]],
['get_5fid',['get_id',['../classItem.html#ac0f27e58532612f6e7a54c8a621b9b92',1,'Item']]],
+ ['get_5finstall_5fscript',['get_install_script',['../classdba__driver.html#a8d6a79d39d7eaee5aea4e952c4529d48',1,'dba_driver']]],
['get_5fintltext_5ftemplate',['get_intltext_template',['../classFriendicaSmartyEngine.html#a35ec0ee828c36640ea25296bcb84a118',1,'FriendicaSmartyEngine\get_intltext_template()'],['../plugin_8php.html#acb63c27d07f6d7dffe95f98a6cef1295',1,'get_intltext_template():&#160;plugin.php']]],
+ ['get_5fitem',['get_item',['../classRedMatrix_1_1Import_1_1Import.html#a27987a41cb703a796f1821baeb4774a2',1,'RedMatrix::Import::Import']]],
['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_5fitem_5fident',['get_item_ident',['../classRedMatrix_1_1Import_1_1Import.html#a772c28edf36aaf8e66007a95004c4059',1,'RedMatrix::Import::Import']]],
+ ['get_5fitemlist',['get_itemlist',['../classRedMatrix_1_1Import_1_1Import.html#a855cd5a79b95d269ae8737fae774e3bc',1,'RedMatrix::Import::Import']]],
['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',['../interfaceITemplateEngine.html#aaf2698adbf46c073c24b162fe1b1c442',1,'ITemplateEngine\get_markup_template()'],['../classFriendicaSmartyEngine.html#aab5994077fc3a64222e41b28e2bd8d88',1,'FriendicaSmartyEngine\get_markup_template()'],['../classTemplate.html#afd97b4b1e7754a550e67c0ea79159059',1,'Template\get_markup_template()'],['../plugin_8php.html#a75f7dfed291fd7add7fc85b5c022a1f4',1,'get_markup_template():&#160;plugin.php']]],
@@ -59,6 +69,7 @@ var searchData=
['get_5fmood_5fverbs',['get_mood_verbs',['../text_8php.html#a736db13a966b8abaf8c9198faa35911a',1,'text.php']]],
['get_5fmy_5faddress',['get_my_address',['../identity_8php.html#a490972c02fdb638c52ec0e012a30bfd2',1,'identity.php']]],
['get_5fmy_5furl',['get_my_url',['../identity_8php.html#aa46321e1cd6a3b8dfde8bf9510112fec',1,'identity.php']]],
+ ['get_5fnull_5fdate',['get_null_date',['../classdba__driver.html#a65a5c7b355ab5529a43049e160006426',1,'dba_driver']]],
['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']]],
@@ -85,6 +96,7 @@ var searchData=
['get_5fsys_5fchannel',['get_sys_channel',['../identity_8php.html#aaff86ee3b5984821e7a256c2da5f1a51',1,'identity.php']]],
['get_5fsystem_5fapps',['get_system_apps',['../include_2apps_8php.html#ae64f72eb4f126e03b4eb65ed1702a3ca',1,'apps.php']]],
['get_5ftags',['get_tags',['../text_8php.html#a4659fbc4e54ddc700c3aa66b9092c623',1,'text.php']]],
+ ['get_5ftaxonomy',['get_taxonomy',['../classRedMatrix_1_1Import_1_1Import.html#ae3c6472bea1a44025bc2e152604eb20c',1,'RedMatrix::Import::Import']]],
['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()']]],
['get_5ftemplate_5fengine',['get_template_engine',['../classApp.html#acb27e607fe4c82603444676e25c36b70',1,'App']]],
@@ -100,19 +112,22 @@ var searchData=
['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']]],
+ ['getasseturl',['getAssetUrl',['../classRedMatrix_1_1RedDAV_1_1RedBrowser.html#acaa792c08d24e9dc2919759e92ba037d',1,'RedMatrix::RedDAV::RedBrowser']]],
+ ['getchild',['getChild',['../classRedMatrix_1_1RedDAV_1_1RedDirectory.html#a1a37850bdd1f188abd6160559698d5d7',1,'RedMatrix::RedDAV::RedDirectory']]],
+ ['getchildren',['getChildren',['../classRedMatrix_1_1RedDAV_1_1RedDirectory.html#a9b9a0b5bfa4de1f78e6cafaa534b6f6a',1,'RedMatrix::RedDAV::RedDirectory']]],
+ ['getcontenttype',['getContentType',['../classRedMatrix_1_1RedDAV_1_1RedFile.html#af5c88b75d0c1f590af03755534cb167e',1,'RedMatrix::RedDAV::RedFile']]],
+ ['getcurrentuser',['getCurrentUser',['../classRedMatrix_1_1RedDAV_1_1RedBasicAuth.html#aa0b2a5fa9186d7dc0e637f1ecb379c42',1,'RedMatrix::RedDAV::RedBasicAuth']]],
+ ['getdir',['getDir',['../classRedMatrix_1_1RedDAV_1_1RedDirectory.html#a825dc5f3e0f83f50736c16daa6a4809d',1,'RedMatrix::RedDAV::RedDirectory']]],
+ ['getdriver',['getdriver',['../classdba__driver.html#a02165fc4bee63d040ebd963a4fa82a14',1,'dba_driver\getdriver()'],['../classdba__mysql.html#a31011edd67b6b394355bf04cedb498d0',1,'dba_mysql\getdriver()'],['../classdba__mysqli.html#a6eb6c578c6928908321e5e6da866e1db',1,'dba_mysqli\getdriver()'],['../classdba__postgres.html#ae0f834413e57cf0735ae7b64b2f71e68',1,'dba_postgres\getdriver()']]],
+ ['getetag',['getETag',['../classRedMatrix_1_1RedDAV_1_1RedFile.html#a9f14682acf3ccb70df5af5dd0687c689',1,'RedMatrix::RedDAV::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',['../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']]],
+ ['getlastmodified',['getLastModified',['../classRedMatrix_1_1RedDAV_1_1RedDirectory.html#a69db5f641f8f5dc999e55cee1832ecd5',1,'RedMatrix\RedDAV\RedDirectory\getLastModified()'],['../classRedMatrix_1_1RedDAV_1_1RedFile.html#ac47016aa0e3f6f1a1c4570bd6fd8cf25',1,'RedMatrix\RedDAV\RedFile\getLastModified()']]],
+ ['getname',['getName',['../classRedMatrix_1_1RedDAV_1_1RedDirectory.html#a55f7172814a0749b5342f152ab3fa0df',1,'RedMatrix\RedDAV\RedDirectory\getName()'],['../classRedMatrix_1_1RedDAV_1_1RedFile.html#ac945aa782d6c035d339e59974266ec4d',1,'RedMatrix\RedDAV\RedFile\getName()']]],
+ ['getquotainfo',['getQuotaInfo',['../classRedMatrix_1_1RedDAV_1_1RedDirectory.html#a69db443ed3c84938b4352fe515bf8d68',1,'RedMatrix::RedDAV::RedDirectory']]],
+ ['getsize',['getSize',['../classRedMatrix_1_1RedDAV_1_1RedFile.html#a07e1b19e7aaf3dcce822e9be8823a87d',1,'RedMatrix::RedDAV::RedFile']]],
+ ['gettimezone',['getTimezone',['../classRedMatrix_1_1RedDAV_1_1RedBasicAuth.html#a6333c8ce58998bd11bf8102afe3b0748',1,'RedMatrix::RedDAV::RedBasicAuth']]],
['gettype',['getType',['../classphoto__driver.html#a6c6c16dbc4f517ce799f9143ed61f0e3',1,'photo_driver']]],
['getwidth',['getWidth',['../classphoto__driver.html#acc30486acee9e89e32701f44a1738117',1,'photo_driver']]],
['goaway',['goaway',['../boot_8php.html#a5ab6181607a090bcdbaa13b15b85aba1',1,'boot.php']]],
diff --git a/doc/html/search/functions_68.js b/doc/html/search/functions_68.js
index 1fa2cdd16..4d5d89d71 100644
--- a/doc/html/search/functions_68.js
+++ b/doc/html/search/functions_68.js
@@ -1,7 +1,7 @@
var searchData=
[
['handle_5ffeed',['handle_feed',['../items_8php.html#a52c24114b73c0bdb605a03cd29712223',1,'items.php']]],
- ['handle_5ftag',['handle_tag',['../item_8php.html#aa22feef4de326e1d7078dedd892e615c',1,'item.php']]],
+ ['handle_5ftag',['handle_tag',['../text_8php.html#aa22feef4de326e1d7078dedd892e615c',1,'text.php']]],
['has_5fpermissions',['has_permissions',['../items_8php.html#a77051724d1784074ff187e73a4db93fe',1,'items.php']]],
['hcard_5fcontent',['hcard_content',['../hcard_8php.html#a3663012f1549849af88aba2bb87388e3',1,'hcard.php']]],
['hcard_5finit',['hcard_init',['../hcard_8php.html#ac34f26b0e6a37eef44fa49bea135136d',1,'hcard.php']]],
@@ -16,12 +16,14 @@ var searchData=
['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']]],
+ ['hivenet_5finit',['hivenet_init',['../hivenet_2php_2theme_8php.html#a3a8b539b112ae63936025236dbaf0a29',1,'theme.php']]],
+ ['home_5fcontent',['home_content',['../home_8php.html#a6e3dbf78f4ed74ab2577de221190b33f',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']]]
+ ['htmlactionspanel',['htmlActionsPanel',['../classRedMatrix_1_1RedDAV_1_1RedBrowser.html#a3bd98af2d1cdfd8f26deb914596176cf',1,'RedMatrix::RedDAV::RedBrowser']]],
+ ['http_5fstatus_5fexit',['http_status_exit',['../include_2network_8php.html#a4cfb2c05a1c295317283d762440ce0b2',1,'network.php']]],
+ ['hubloc_5fchange_5fprimary',['hubloc_change_primary',['../hubloc_8php.html#ad86214b3a74084bd7b54e8d6c919ce4d',1,'hubloc.php']]]
];
diff --git a/doc/html/search/functions_69.js b/doc/html/search/functions_69.js
index 8a7f609a5..b7d49b52c 100644
--- a/doc/html/search/functions_69.js
+++ b/doc/html/search/functions_69.js
@@ -1,12 +1,15 @@
var searchData=
[
- ['identity_5fbasic_5fexport',['identity_basic_export',['../identity_8php.html#a3570a4eb77332b292d394c4132cb8f03',1,'identity.php']]],
+ ['ical_5fwrapper',['ical_wrapper',['../event_8php.html#ab8cc2825013e724dc26229026711cf93',1,'event.php']]],
+ ['identity_5fbasic_5fexport',['identity_basic_export',['../identity_8php.html#afaedbc8e2d2a70ec8b006162baac5249',1,'identity.php']]],
['identity_5fcheck_5fservice_5fclass',['identity_check_service_class',['../identity_8php.html#ac9fcd5c4c371998790b5c55c3d0f4633',1,'identity.php']]],
['identity_5fselector',['identity_selector',['../identity_8php.html#a2ab5172eabd375869060c9ad68323f5c',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()']]],
+ ['impel_5finit',['impel_init',['../impel_8php.html#ab7db6fca43b42ea4332cb3e841b3cf7b',1,'impel.php']]],
['import_5fauthor_5fdiaspora',['import_author_diaspora',['../items_8php.html#a2c3f97b2109c05df86d97449b3c78ebc',1,'items.php']]],
['import_5fauthor_5frss',['import_author_rss',['../items_8php.html#a6bee35961f2e32905f20367a9309d627',1,'items.php']]],
+ ['import_5fauthor_5funknown',['import_author_unknown',['../items_8php.html#a37f79991f36811cf847446ff60e8e11f',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']]],
diff --git a/doc/html/search/functions_6c.js b/doc/html/search/functions_6c.js
index a1915c9e8..de4a599eb 100644
--- a/doc/html/search/functions_6c.js
+++ b/doc/html/search/functions_6c.js
@@ -4,13 +4,14 @@ var searchData=
['lang_5fselector',['lang_selector',['../text_8php.html#a71f6952243d3fe1c5a8154f78027e29c',1,'text.php']]],
['layout_5fselect',['layout_select',['../text_8php.html#a3999a0b3e22e440f280ee791ce34d384',1,'text.php']]],
['layouts_5fcontent',['layouts_content',['../layouts_8php.html#a6e0193759ad9eef76d3df2db24237b50',1,'layouts.php']]],
+ ['layouts_5finit',['layouts_init',['../layouts_8php.html#a39c8e9f72641c684c8b689bd91a642fa',1,'layouts.php']]],
['legal_5fwebbie',['legal_webbie',['../text_8php.html#a2690ad67bb6fb97ef69de3e8d23f2728',1,'text.php']]],
['like_5fcontent',['like_content',['../like_8php.html#a9d7dd268f21c21e9d29dd2aca2dd9538',1,'like.php']]],
['like_5fpuller',['like_puller',['../conversation_8php.html#afe5b2f38d8b803edb0d7ec5fa2868db0',1,'conversation.php']]],
['limit_5fbody_5fsize',['limit_body_size',['../items_8php.html#af94c281016c6c912d06e064113336c5c',1,'items.php']]],
['link_5fcompare',['link_compare',['../text_8php.html#a47c1e4a5f3f53027daacd8a9db24f285',1,'text.php']]],
['linkify',['linkify',['../text_8php.html#a11255c8c4e5245b6c24f97684826aa54',1,'text.php']]],
- ['list_5fpost_5fdates',['list_post_dates',['../items_8php.html#aa2d3caa2f27720762b5c729e07df40fb',1,'items.php']]],
+ ['list_5fpost_5fdates',['list_post_dates',['../items_8php.html#ab33fa9756aaa5f39a6104d57a62baf00',1,'items.php']]],
['list_5fpublic_5fsites',['list_public_sites',['../dirsearch_8php.html#a985d410a170549429857af6ff2673149',1,'dirsearch.php']]],
['load',['load',['../classphoto__driver.html#a19e1af2b6af4c63aa6230abe69f83712',1,'photo_driver\load()'],['../classphoto__gd.html#a33092b889875b68bfb1c97ff123012d9',1,'photo_gd\load()'],['../classphoto__imagick.html#a2c9168f110ccd6c264095d766615dfa8',1,'photo_imagick\load()']]],
['load_5fconfig',['load_config',['../include_2config_8php.html#a27559f388c9b9af81c94e48d6889d1d1',1,'config.php']]],
@@ -18,15 +19,19 @@ var searchData=
['load_5fdatabase',['load_database',['../setup_8php.html#ad2e0375a9ab87ebe6e78124ee125054a',1,'setup.php']]],
['load_5fdatabase_5frem',['load_database_rem',['../setup_8php.html#a2b375ddc555140236fc500135de99371',1,'setup.php']]],
['load_5fhooks',['load_hooks',['../plugin_8php.html#a326365e48ef94f0b9a0a771b8d75e813',1,'plugin.php']]],
- ['load_5fpconfig',['load_pconfig',['../include_2config_8php.html#ac543813a980b3841cc5a277fcd4a24a6',1,'config.php']]],
+ ['load_5fpconfig',['load_pconfig',['../include_2config_8php.html#a559791dda7fef8a4b2394c83e835787b',1,'config.php']]],
+ ['load_5fpdl',['load_pdl',['../boot_8php.html#a50a6707a28c7d05d3f49eaabc7994501',1,'boot.php']]],
['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']]],
+ ['load_5fxconfig',['load_xconfig',['../include_2config_8php.html#aee4b619839cf4b64220f34edf5c67b52',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()']]],
+ ['locs_5fcontent',['locs_content',['../locs_8php.html#a6c900f53970c0d0e738d2fe06d27ca44',1,'locs.php']]],
+ ['locs_5fpost',['locs_post',['../locs_8php.html#a6b43654592919ac863d67a1f787a69b9',1,'locs.php']]],
+ ['log',['log',['../classRedMatrix_1_1RedDAV_1_1RedBasicAuth.html#abf6fe89b0a8239ed93c3b07e1fbce75b',1,'RedMatrix\RedDAV\RedBasicAuth\log()'],['../classRedMatrix_1_1RedDAV_1_1RedDirectory.html#af90a1a74cfd643a5c56b9a17ea250d59',1,'RedMatrix\RedDAV\RedDirectory\log()']]],
+ ['log_5ffailed_5flogin',['log_failed_login',['../auth_8php.html#ae3ecb5f34f202c7f9a61c5d589f6c6e1',1,'auth.php']]],
['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 bdf817a57..8ace240f9 100644
--- a/doc/html/search/functions_6d.js
+++ b/doc/html/search/functions_6d.js
@@ -14,7 +14,7 @@ var searchData=
['marital_5fselector_5fmin',['marital_selector_min',['../profile__selectors_8php.html#adc79715bd2e102b4583fb530749ec534',1,'profile_selectors.php']]],
['mark_5forphan_5fhubsxchans',['mark_orphan_hubsxchans',['../Contact_8php.html#a08845ce8c5b997d5edac38ae7118b5c8',1,'Contact.php']]],
['match_5fcontent',['match_content',['../match_8php.html#a1dd853e959b9e70c1911bb2fb5f5130d',1,'match.php']]],
- ['match_5fopenid',['match_openid',['../auth_8php.html#ab7be44ee051c0aa29847807cf2c5dd38',1,'auth.php']]],
+ ['match_5fopenid',['match_openid',['../auth_8php.html#a69fa663e6baf65f80d1b114ad72615f2',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']]],
@@ -27,6 +27,7 @@ var searchData=
['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#a32701c4245e78ba9106eef52c08bf33d',1,'menu.php']]],
+ ['menu_5flist_5fcount',['menu_list_count',['../include_2menu_8php.html#a251bf7e15d21627fd92614198e41c485',1,'menu.php']]],
['menu_5fpost',['menu_post',['../mod_2menu_8php.html#aaa491ef173868fe002aece4632bcf393',1,'menu.php']]],
['menu_5frender',['menu_render',['../include_2menu_8php.html#a03a5deed3908543581c074ce333e9d6a',1,'menu.php']]],
['message_5fcontent',['message_content',['../mod_2message_8php.html#ac72dfed3ce08fcb331d66b37edc6e15f',1,'message.php']]],
diff --git a/doc/html/search/functions_6e.js b/doc/html/search/functions_6e.js
index 7949a4dca..e9981a764 100644
--- a/doc/html/search/functions_6e.js
+++ b/doc/html/search/functions_6e.js
@@ -27,6 +27,8 @@ var searchData=
['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']]],
+ ['notifications_5foff',['notifications_off',['../identity_8php.html#a2e6a1cc35887937823ec7fbb90472afe',1,'identity.php']]],
+ ['notifications_5fon',['notifications_on',['../identity_8php.html#a5650319c799de09d1b6d1076b6f839a4',1,'identity.php']]],
['notifications_5fpost',['notifications_post',['../notifications_8php.html#a5baffec7b2e625c9f9cefbc097550d33',1,'notifications.php']]],
['notifier_5frun',['notifier_run',['../notifier_8php.html#a568c502f626cff95e344c0748938b85d',1,'notifier.php']]],
['notify_5fcontent',['notify_content',['../mod_2notify_8php.html#acdf3851688ebd6d6a575eb84ef9febe3',1,'notify.php']]],
diff --git a/doc/html/search/functions_6f.js b/doc/html/search/functions_6f.js
index 4d843de13..6e1766c1d 100644
--- a/doc/html/search/functions_6f.js
+++ b/doc/html/search/functions_6f.js
@@ -20,6 +20,7 @@ var searchData=
['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']]],
+ ['optimize_5ftable',['optimize_table',['../classdba__driver.html#a77e59dcbeab30ca6000131d2e9ad4092',1,'dba_driver\optimize_table()'],['../classdba__postgres.html#a3de1ac375e98886dfc38fd0066e88f90',1,'dba_postgres\optimize_table()']]],
['orient',['orient',['../classphoto__driver.html#a4de5bac8daea8f291a33c80788019d0d',1,'photo_driver']]],
['os_5fmkdir',['os_mkdir',['../boot_8php.html#a5fbebdf7a1c0ea8f904dbd9d78c2c06c',1,'boot.php']]]
];
diff --git a/doc/html/search/functions_70.js b/doc/html/search/functions_70.js
index 9fb807cb9..dc785aa57 100644
--- a/doc/html/search/functions_70.js
+++ b/doc/html/search/functions_70.js
@@ -1,5 +1,6 @@
var searchData=
[
+ ['p_5finit',['p_init',['../p_8php.html#af9d5530ca0b3dc9409cf591c39e2480e',1,'p.php']]],
['page_5fcontent',['page_content',['../page_8php.html#a91a5f649f68406149108bded1dc90b22',1,'page.php']]],
['page_5finit',['page_init',['../page_8php.html#a4d89800c0366a239191b1692c09635cf',1,'page.php']]],
['pagelist_5fwidget',['pagelist_widget',['../page__widgets_8php.html#a39d547771c5f12a17c097436c82f0fa2',1,'page_widgets.php']]],
@@ -56,22 +57,6 @@ var searchData=
['post_5factivity_5fitem',['post_activity_item',['../items_8php.html#a410f9c743877c125ca06312373346903',1,'items.php']]],
['post_5finit',['post_init',['../post_8php.html#af4b48181ce773ef0cdfc972441445c34',1,'post.php']]],
['post_5fpost',['post_post',['../post_8php.html#af59e6a1dc22d19d9257b01cd7ccedb75',1,'post.php']]],
- ['post_5fto_5fred_5fadmin',['post_to_red_admin',['../post__to__red_8php.html#aeec4125719184e7b097b3b9fba3101b5',1,'post_to_red.php']]],
- ['post_5fto_5fred_5fdeactivate',['post_to_red_deactivate',['../post__to__red_8php.html#a49fd35f7b1cdddfe6e26ddfcf8d3c4ec',1,'post_to_red.php']]],
- ['post_5fto_5fred_5fdelete_5fcomment',['post_to_red_delete_comment',['../post__to__red_8php.html#a5cc2a89a6d33cdb8e2ca557a69bef42d',1,'post_to_red.php']]],
- ['post_5fto_5fred_5fdelete_5fpost',['post_to_red_delete_post',['../post__to__red_8php.html#a4674bb5ce2baa32c559607460c39a2c5',1,'post_to_red.php']]],
- ['post_5fto_5fred_5fdisplay_5fadmin_5fpage',['post_to_red_display_admin_page',['../post__to__red_8php.html#a8ec8f8809e3c5d1b2c9598c8185d63aa',1,'post_to_red.php']]],
- ['post_5fto_5fred_5fdisplayadmincontent',['post_to_red_displayAdminContent',['../post__to__red_8php.html#a75db5d87226a0287a0ac0fa315f2bcfd',1,'post_to_red.php']]],
- ['post_5fto_5fred_5fget_5facct_5fname',['post_to_red_get_acct_name',['../post__to__red_8php.html#ae6f3a2c0561cbeacda5be565b06de8a7',1,'post_to_red.php']]],
- ['post_5fto_5fred_5fget_5favatar',['post_to_red_get_avatar',['../post__to__red_8php.html#ae0b881461afbdba93d9329068ea52136',1,'post_to_red.php']]],
- ['post_5fto_5fred_5fget_5fchannel_5fname',['post_to_red_get_channel_name',['../post__to__red_8php.html#aacba7a0646fc00ae6ac4f5dc383fccab',1,'post_to_red.php']]],
- ['post_5fto_5fred_5fget_5fpassword',['post_to_red_get_password',['../post__to__red_8php.html#a4d90ac085c14f53ff4d8ab4c23477ea6',1,'post_to_red.php']]],
- ['post_5fto_5fred_5fget_5fseed_5flocation',['post_to_red_get_seed_location',['../post__to__red_8php.html#a96d0ccecb96600ef1bfd50ab3f77315f',1,'post_to_red.php']]],
- ['post_5fto_5fred_5fpost',['post_to_red_post',['../post__to__red_8php.html#af5fd50e2c42ede85f8a9e8d9ee3cf540',1,'post_to_red.php']]],
- ['post_5fto_5fred_5fpost_5fcheckbox',['post_to_red_post_checkbox',['../post__to__red_8php.html#a0f139dea77a94c98f26007963eea639c',1,'post_to_red.php']]],
- ['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_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']]],
@@ -96,7 +81,8 @@ var searchData=
['probe_5fzot',['probe_zot',['../include_2probe_8php.html#a3c02c7a23e8335a79c3c0f5331d11a85',1,'probe.php']]],
['proc_5frun',['proc_run',['../boot_8php.html#ab346a2ece14993861f3e4206befa94f0',1,'boot.php']]],
['process_5fchannel_5fsync_5fdelivery',['process_channel_sync_delivery',['../zot_8php.html#ac301c67864917c35922257950ae0f95c',1,'zot.php']]],
- ['process_5fdelivery',['process_delivery',['../zot_8php.html#a4d9e6ca295e443b740d9960c304b3474',1,'zot.php']]],
+ ['process_5fdelivery',['process_delivery',['../zot_8php.html#a0e3006e7a456b2175a9badc96bc5176d',1,'zot.php']]],
+ ['process_5flocation_5fdelivery',['process_location_delivery',['../zot_8php.html#a8eeefdb0dad4c436bea9d1c06c0a7988',1,'zot.php']]],
['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']]],
@@ -123,5 +109,5 @@ var searchData=
['pubsites_5fcontent',['pubsites_content',['../pubsites_8php.html#af614e279aab54065345bda6b03eafdf0',1,'pubsites.php']]],
['purify_5fhtml',['purify_html',['../text_8php.html#a4841df5beabdd1bdd1ed56781a915d61',1,'text.php']]],
['push_5flang',['push_lang',['../language_8php.html#ac9142ef1d01a235c760deb0f16643f5a',1,'language.php']]],
- ['put',['put',['../classRedFile.html#a41a49a583eb276b75626fcf97f4a699c',1,'RedFile']]]
+ ['put',['put',['../classRedMatrix_1_1RedDAV_1_1RedFile.html#a709ec1288d21ddf1353524435ab916f0',1,'RedMatrix::RedDAV::RedFile']]]
];
diff --git a/doc/html/search/functions_71.js b/doc/html/search/functions_71.js
index 11b357b31..ce23278cf 100644
--- a/doc/html/search/functions_71.js
+++ b/doc/html/search/functions_71.js
@@ -1,7 +1,8 @@
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']]],
+ ['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()'],['../classdba__postgres.html#a70352880231fba0b859f82cd5b290a9a',1,'dba_postgres\q()'],['../dba__driver_8php.html#a2c09a731d3b4fef41fed0e83db01be1f',1,'q():&#160;dba_driver.php']]],
['qp',['qp',['../text_8php.html#afc998d2796a6b2a08e96f7cc061e7221',1,'text.php']]],
['queue_5frun',['queue_run',['../queue_8php.html#af8c93de86d866c3200174c8450a0f341',1,'queue.php']]],
+ ['quote_5finterval',['quote_interval',['../classdba__driver.html#ac9127e9c55fcc93bcfbb323b9b99b9d9',1,'dba_driver\quote_interval()'],['../classdba__postgres.html#a56f926f218155c88807e0e06f6817a72',1,'dba_postgres\quote_interval()']]],
['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 1a4dfc7e2..caf791a0f 100644
--- a/doc/html/search/functions_72.js
+++ b/doc/html/search/functions_72.js
@@ -8,12 +8,10 @@ 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']]],
['receive_5fpost',['receive_post',['../receive_8php.html#a03d8fa26e77844020ba5602deca7d494',1,'receive.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_5fitem_5fnew',['red_item_new',['../include_2api_8php.html#aafa82b65a9f879a1a1197cfe8aaf3898',1,'api.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']]],
['red_5fzrlify_5fimg_5fcallback',['red_zrlify_img_callback',['../items_8php.html#a78a60e39f6991bd3324a24dcbf9dac5a',1,'items.php']]],
['redbasic_5fform',['redbasic_form',['../view_2theme_2redbasic_2php_2config_8php.html#a8574a41fa9735ee391ba57ab24b93793',1,'config.php']]],
@@ -28,6 +26,12 @@ var searchData=
['ref_5fsession_5fopen',['ref_session_open',['../session_8php.html#a26fa1042356d555023cbf15ddd4f8507',1,'session.php']]],
['ref_5fsession_5fread',['ref_session_read',['../session_8php.html#a7f0f50576360d9ba52d29364e0b83a8e',1,'session.php']]],
['ref_5fsession_5fwrite',['ref_session_write',['../session_8php.html#ac4461c1984543d3553e73dba2771568f',1,'session.php']]],
+ ['refimport_5fcontent',['refimport_content',['../refimport_8php.html#ad97ebb5feda0230a4834e0b3637a0d29',1,'refimport.php']]],
+ ['reflect_5farticle_5fcallback',['reflect_article_callback',['../refimport_8php.html#a53434bc19e6264db89e18d92ddc09860',1,'refimport.php']]],
+ ['reflect_5fcomment_5fstore',['reflect_comment_store',['../refimport_8php.html#a01a29630fa5e1ce6cd5e1fd75280747c',1,'refimport.php']]],
+ ['reflect_5ffind_5fuser',['reflect_find_user',['../refimport_8php.html#aa98de7d112e3a5b4b6956f108d04a41d',1,'refimport.php']]],
+ ['reflect_5fget_5fchannel',['reflect_get_channel',['../refimport_8php.html#a6c3e0475fde9fe72ff2492a5e3e5259c',1,'refimport.php']]],
+ ['reflect_5fphoto_5fcallback',['reflect_photo_callback',['../refimport_8php.html#ae9c56f779d1e0ac7bcb2a460129e7ae5',1,'refimport.php']]],
['register_5fcontent',['register_content',['../register_8php.html#a0e91f57f111407ea8d3223a05022bb2a',1,'register.php']]],
['register_5fhook',['register_hook',['../plugin_8php.html#a425472c5f3afc137268b2ad45652b209',1,'plugin.php']]],
['register_5finit',['register_init',['../register_8php.html#ae20c0cd40f738d6295de58b9202c83d5',1,'register.php']]],
@@ -44,6 +48,7 @@ var searchData=
['remove_5fall_5fxchan_5fresources',['remove_all_xchan_resources',['../Contact_8php.html#acc12cda999c88c4d6185cca967c15125',1,'Contact.php']]],
['remove_5fchild',['remove_child',['../classItem.html#a2ce70ef63f9f4d86a09c351678806925',1,'Item']]],
['remove_5fcommunity_5ftag',['remove_community_tag',['../zot_8php.html#aad25a3fe0e1566121d6fb8222979bc10',1,'zot.php']]],
+ ['remove_5fobsolete_5fhublocs',['remove_obsolete_hublocs',['../hubloc_8php.html#a84c79b7be352f62d12fe4fa2c80fc6ea',1,'hubloc.php']]],
['remove_5fparent',['remove_parent',['../classItem.html#aa452b5bcd8dea12119b09212c615cb41',1,'Item']]],
['remove_5fqueue_5fitem',['remove_queue_item',['../queue__fn_8php.html#a8fe71e981399bbf5d000a6ca42f57b24',1,'queue_fn.php']]],
['removeaccount_5fcontent',['removeaccount_content',['../removeaccount_8php.html#a516e7380b9e5796054aa8245f3509695',1,'removeaccount.php']]],
@@ -59,12 +64,15 @@ var searchData=
['rmagic_5fcontent',['rmagic_content',['../rmagic_8php.html#a3e28db1e5cfa7e5c2617f90222c1caef',1,'rmagic.php']]],
['rmagic_5finit',['rmagic_init',['../rmagic_8php.html#a95455edd43f1bff39446a57388cdde16',1,'rmagic.php']]],
['rmagic_5fpost',['rmagic_post',['../rmagic_8php.html#a869de069d081b3c4e98b957d06bbf08f',1,'rmagic.php']]],
+ ['role_5fselector',['role_selector',['../permissions_8php.html#a50e8099ea8a4d7ed68b2a0a7ea9aa724',1,'permissions.php']]],
['rotate',['rotate',['../classphoto__driver.html#a2f2b6337cf9aa0688d10b422123f0eec',1,'photo_driver\rotate()'],['../classphoto__gd.html#a77f87730b11093b76980c541159df37d',1,'photo_gd\rotate()'],['../classphoto__imagick.html#a9df5738a4a18e76dd304c440e96f045f',1,'photo_imagick\rotate()']]],
['rpost_5fcallback',['rpost_callback',['../bbcode_8php.html#a5165a5221a52cf1bc1d7812ebd2069c7',1,'bbcode.php']]],
['rpost_5fcontent',['rpost_content',['../rpost_8php.html#a8190354d789000806d9879aea276728f',1,'rpost.php']]],
+ ['rrmdir',['rrmdir',['../Contact_8php.html#ab5895b75a3b2abdddf1cb351a8c6b58b',1,'Contact.php']]],
['rsa_5fsign',['rsa_sign',['../crypto_8php.html#a920e5f222d0020f47556033d8b2b6552',1,'crypto.php']]],
['rsa_5fverify',['rsa_verify',['../crypto_8php.html#ab4f21d8f6b8ece0915e7c8bb73379f96',1,'crypto.php']]],
['rsatopem',['rsatopem',['../crypto_8php.html#a7f7e650aaeaa3832580a73eb00966b26',1,'crypto.php']]],
['rsd_5fxml_5fcontent',['rsd_xml_content',['../rsd__xml_8php.html#a740cd02fa15e5a53f8547fac73f0ab82',1,'rsd_xml.php']]],
+ ['run',['run',['../classRedMatrix_1_1Import_1_1Import.html#a8d138a9a7d4f79b81d3446ca216a602c',1,'RedMatrix::Import::Import']]],
['runs',['runs',['../docblox__errorchecker_8php.html#a21b4bbe5aae2d85db33affc7126a67ec',1,'docblox_errorchecker.php']]]
];
diff --git a/doc/html/search/functions_73.js b/doc/html/search/functions_73.js
index 60abef114..ce54bd453 100644
--- a/doc/html/search/functions_73.js
+++ b/doc/html/search/functions_73.js
@@ -24,6 +24,7 @@ var searchData=
['send_5fverification_5femail',['send_verification_email',['../account_8php.html#aa9c29c497c17d8f9344dce8631ad8761',1,'account.php']]],
['service_5fclass_5fallows',['service_class_allows',['../account_8php.html#a030cec6793b909c439c0336ba39b1571',1,'account.php']]],
['service_5fclass_5ffetch',['service_class_fetch',['../account_8php.html#a905b54e10704b283ac64680a8abc0971',1,'account.php']]],
+ ['service_5flimits_5fcontent',['service_limits_content',['../service__limits_8php.html#a653424aac63c5cd05ba70c3c77bf7f8a',1,'service_limits.php']]],
['set',['set',['../classCache.html#ae622b82adc1c2fb1f3e2cc4fd9688fce',1,'Cache']]],
['set_5faccount',['set_account',['../classApp.html#aeb1fe1c8ad9aa639909bd183ce578536',1,'App']]],
['set_5fapp',['set_app',['../classBaseObject.html#a0a9acda12d751692834cf6999f889223',1,'BaseObject']]],
@@ -34,6 +35,7 @@ var searchData=
['set_5fconfig',['set_config',['../include_2config_8php.html#ad6da879e4fb5b37d1e161d4e9be5c32a',1,'config.php']]],
['set_5fconversation',['set_conversation',['../classItem.html#aa8b1bbc4236890694635295e46d7fd72',1,'Item']]],
['set_5fdefault_5flogin_5fidentity',['set_default_login_identity',['../identity_8php.html#a78151baf4407a8482d2681a91a9c486b',1,'identity.php']]],
+ ['set_5fdisplay_5fmode',['set_display_mode',['../classItem.html#ac09a4728d37b7783714243f7f8167214',1,'Item']]],
['set_5fgroups',['set_groups',['../classApp.html#a3d84af5e42082098672531cd1a618853',1,'App']]],
['set_5fhostname',['set_hostname',['../classApp.html#a344d2b7dc2f276648d521aee4da1731c',1,'App']]],
['set_5fmode',['set_mode',['../classConversation.html#a66f121ca4026246f86a732e5faa0682c',1,'Conversation']]],
@@ -48,12 +50,14 @@ var searchData=
['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_5fwriteable',['set_writeable',['../classRedMatrix_1_1RedDAV_1_1RedBrowser.html#aa1607857cb59738c4dce2fe8e73d8f19',1,'RedMatrix::RedDAV::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']]],
+ ['setauthenticated',['setAuthenticated',['../classRedMatrix_1_1RedDAV_1_1RedBasicAuth.html#a2926fe923baade564f2663632fa8c633',1,'RedMatrix::RedDAV::RedBasicAuth']]],
+ ['setbrowserplugin',['setBrowserPlugin',['../classRedMatrix_1_1RedDAV_1_1RedBasicAuth.html#adc72f36f0b2b17b20ea4df900afcd697',1,'RedMatrix::RedDAV::RedBasicAuth']]],
+ ['setcurrentuser',['setCurrentUser',['../classRedMatrix_1_1RedDAV_1_1RedBasicAuth.html#aadce020fb595c7943829d7f995d3f998',1,'RedMatrix::RedDAV::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',['../classRedDirectory.html#adc48035679e52c55d9881f83de535553',1,'RedDirectory\setName()'],['../classRedFile.html#a38a82bfc1b30028ea6ac75923e90fa25',1,'RedFile\setName()']]],
+ ['setname',['setName',['../classRedMatrix_1_1RedDAV_1_1RedDirectory.html#a14ac61d31a031d139956763db4e03956',1,'RedMatrix\RedDAV\RedDirectory\setName()'],['../classRedMatrix_1_1RedDAV_1_1RedFile.html#a0350cb4e0327e1f9922869a48ee04f1d',1,'RedMatrix\RedDAV\RedFile\setName()']]],
+ ['settimezone',['setTimezone',['../classRedMatrix_1_1RedDAV_1_1RedBasicAuth.html#af6d239fefed05859327ee8db626703f9',1,'RedMatrix::RedDAV::RedBasicAuth']]],
['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']]],
@@ -87,8 +91,8 @@ var searchData=
['start_5fdelivery_5fchain',['start_delivery_chain',['../items_8php.html#adf2b8137dc4ad9ec958de2842f16f3c2',1,'items.php']]],
['startup',['startup',['../boot_8php.html#aca47505b8732177f52bb2d647eb2741c',1,'boot.php']]],
['status_5feditor',['status_editor',['../conversation_8php.html#a2a7d541854bba755eb8ada59af7dcb1a',1,'conversation.php']]],
- ['store',['store',['../classphoto__driver.html#a642a8d0c4ad5f887c99c6af77cee287b',1,'photo_driver']]],
- ['store_5fdiaspora_5fcomment_5fsig',['store_diaspora_comment_sig',['../items_8php.html#af0a887050dc8d0f51c89890cdaf3145f',1,'items.php']]],
+ ['store',['store',['../classRedMatrix_1_1Import_1_1Import.html#a33ed595de044c0ec1cd84cca719e31dc',1,'RedMatrix\Import\Import\store()'],['../classphoto__driver.html#a642a8d0c4ad5f887c99c6af77cee287b',1,'photo_driver\store()']]],
+ ['store_5fdiaspora_5fcomment_5fsig',['store_diaspora_comment_sig',['../items_8php.html#a25221826fa4621f523c68483e3b6af26',1,'items.php']]],
['store_5fitem_5ftag',['store_item_tag',['../taxonomy_8php.html#a4ba1339b2a7054971178ce194e4440fd',1,'taxonomy.php']]],
['stream_5fperms_5fapi_5fuids',['stream_perms_api_uids',['../security_8php.html#a6126c77a1267e046ac59cf864613f011',1,'security.php']]],
['stream_5fperms_5fxchans',['stream_perms_xchans',['../security_8php.html#a3ef2be6a7e4928e39d50059d6feb457c',1,'security.php']]],
@@ -97,12 +101,15 @@ var searchData=
['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']]],
+ ['stumble_5finit',['stumble_init',['../stumble_2php_2theme_8php.html#a71db9eff6289e0ee47771c37c01d6753',1,'theme.php']]],
['subthread_5fcontent',['subthread_content',['../subthread_8php.html#a50368f3d825b77996030528e7fbfa3d3',1,'subthread.php']]],
+ ['suckerberg_5finit',['suckerberg_init',['../suckerberg_2php_2theme_8php.html#a4104fce7d5fb71d15ed811978b628fc8',1,'theme.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']]],
+ ['sync_5flocations',['sync_locations',['../zot_8php.html#ab15c04e7e5f44edf45ec50dd7d183254',1,'zot.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 4b68ef1d9..54d918d35 100644
--- a/doc/html/search/functions_74.js
+++ b/doc/html/search/functions_74.js
@@ -15,16 +15,14 @@ var searchData=
['term_5fquery',['term_query',['../taxonomy_8php.html#a7a913d19c77610da689be48fbbf6734c',1,'taxonomy.php']]],
['termtype',['termtype',['../items_8php.html#ad34827ed330898456783fb14c7b46154',1,'items.php']]],
['tgroup_5fcheck',['tgroup_check',['../items_8php.html#a88c6cf7649ac836fbbed82a7a0315110',1,'items.php']]],
- ['theme_5fadmin',['theme_admin',['../view_2theme_2blogga_2php_2config_8php.html#a09cd81013505f83aea0771243a1e4e53',1,'theme_admin(&amp;$a):&#160;config.php'],['../view_2theme_2blogga_2view_2theme_2blog_2config_8php.html#a09cd81013505f83aea0771243a1e4e53',1,'theme_admin(&amp;$a):&#160;config.php']]],
- ['theme_5fadmin_5fpost',['theme_admin_post',['../view_2theme_2blogga_2php_2config_8php.html#aef2da5582b7cb6b5f63e5ca5d69fd30b',1,'theme_admin_post(&amp;$a):&#160;config.php'],['../view_2theme_2blogga_2view_2theme_2blog_2config_8php.html#aef2da5582b7cb6b5f63e5ca5d69fd30b',1,'theme_admin_post(&amp;$a):&#160;config.php']]],
['theme_5fattachments',['theme_attachments',['../text_8php.html#af9c9ac3f74c82dc60acfa404d0e9dc53',1,'text.php']]],
- ['theme_5fcontent',['theme_content',['../view_2theme_2apw_2php_2config_8php.html#aa7d5739b72efef9822535b2b32d5364d',1,'theme_content(&amp;$a):&#160;config.php'],['../view_2theme_2blogga_2php_2config_8php.html#aa7d5739b72efef9822535b2b32d5364d',1,'theme_content(&amp;$a):&#160;config.php'],['../view_2theme_2blogga_2view_2theme_2blog_2config_8php.html#aa7d5739b72efef9822535b2b32d5364d',1,'theme_content(&amp;$a):&#160;config.php'],['../view_2theme_2redbasic_2php_2config_8php.html#aa7d5739b72efef9822535b2b32d5364d',1,'theme_content(&amp;$a):&#160;config.php']]],
+ ['theme_5fcontent',['theme_content',['../view_2theme_2apw_2php_2config_8php.html#aa7d5739b72efef9822535b2b32d5364d',1,'theme_content(&amp;$a):&#160;config.php'],['../view_2theme_2redbasic_2php_2config_8php.html#aa7d5739b72efef9822535b2b32d5364d',1,'theme_content(&amp;$a):&#160;config.php']]],
['theme_5finclude',['theme_include',['../plugin_8php.html#a65fedcffbe03562ef844cabee37d34e2',1,'plugin.php']]],
- ['theme_5fpost',['theme_post',['../view_2theme_2apw_2php_2config_8php.html#ad29461920cf03b9ce1428e21eb1f4ba6',1,'theme_post(&amp;$a):&#160;config.php'],['../view_2theme_2blogga_2php_2config_8php.html#ad29461920cf03b9ce1428e21eb1f4ba6',1,'theme_post(&amp;$a):&#160;config.php'],['../view_2theme_2blogga_2view_2theme_2blog_2config_8php.html#ad29461920cf03b9ce1428e21eb1f4ba6',1,'theme_post(&amp;$a):&#160;config.php'],['../view_2theme_2redbasic_2php_2config_8php.html#ad29461920cf03b9ce1428e21eb1f4ba6',1,'theme_post(&amp;$a):&#160;config.php']]],
+ ['theme_5fpost',['theme_post',['../view_2theme_2apw_2php_2config_8php.html#ad29461920cf03b9ce1428e21eb1f4ba6',1,'theme_post(&amp;$a):&#160;config.php'],['../view_2theme_2redbasic_2php_2config_8php.html#ad29461920cf03b9ce1428e21eb1f4ba6',1,'theme_post(&amp;$a):&#160;config.php']]],
['theme_5fstatus',['theme_status',['../admin_8php.html#ad4f74f33944a98b56d2c8c7601f124a4',1,'admin.php']]],
['thing_5fcontent',['thing_content',['../thing_8php.html#a24a35f1e64029a67fdbea94a776ae04b',1,'thing.php']]],
['thing_5finit',['thing_init',['../thing_8php.html#a8be23b1d475ec3d9291999221c674c80',1,'thing.php']]],
- ['timesel',['timesel',['../datetime_8php.html#a36d3d6dff8d76b5f295bb3d9c535a5b1',1,'datetime.php']]],
+ ['timesel',['timesel',['../datetime_8php.html#a3f239f94e23335d860b148958d87a093',1,'datetime.php']]],
['timezone_5fcmp',['timezone_cmp',['../datetime_8php.html#aa51b5a7ea4f931b23acbdfcea46e9865',1,'datetime.php']]],
['title_5fis_5fbody',['title_is_body',['../items_8php.html#aa371905f0a211b307cb3f7188c6cba04',1,'items.php']]],
['toggle_5fmobile_5finit',['toggle_mobile_init',['../toggle__mobile_8php.html#aca53ade8971802b45c31e722b22c6254',1,'toggle_mobile.php']]],
diff --git a/doc/html/search/functions_75.js b/doc/html/search/functions_75.js
index 9c23d4d2e..e05062fb2 100644
--- a/doc/html/search/functions_75.js
+++ b/doc/html/search/functions_75.js
@@ -1,9 +1,11 @@
var searchData=
[
+ ['uexport_5fcontent',['uexport_content',['../uexport_8php.html#ae6f79d60916c01675c8cf663cb5fec84',1,'uexport.php']]],
['uexport_5finit',['uexport_init',['../uexport_8php.html#a118920137dedebe0581623a2e57e7b0d',1,'uexport.php']]],
['unamp',['unamp',['../text_8php.html#a29d6b804e368d3ef359ee295e96ed4c7',1,'text.php']]],
['undo_5fpost_5ftagging',['undo_post_tagging',['../text_8php.html#a740ad03e00459039a2c0992246c4e727',1,'text.php']]],
['unescape_5funderscores_5fin_5flinks',['unescape_underscores_in_links',['../bb2diaspora_8php.html#a599428bceb6f6d82a6a78cb66811f747',1,'bb2diaspora.php']]],
+ ['unescapebin',['unescapebin',['../classdba__driver.html#ab43184239e1d6eb00a98319f4a3df155',1,'dba_driver\unescapebin()'],['../classdba__postgres.html#a677f850211975c9ab89602c67e2dcad9',1,'dba_postgres\unescapebin()']]],
['uninstall_5fplugin',['uninstall_plugin',['../plugin_8php.html#a093a9cb98f51e3643634bd8bc6ed6e76',1,'plugin.php']]],
['unload_5fplugin',['unload_plugin',['../plugin_8php.html#a90538627db68605aeb6db17a8ead6523',1,'plugin.php']]],
['unobscure',['unobscure',['../text_8php.html#a8264348059abd1d4d5bb521323d3b19a',1,'text.php']]],
@@ -11,10 +13,15 @@ var searchData=
['unxmlify',['unxmlify',['../text_8php.html#a1360fed7f918d859daaca1c9f384f9af',1,'text.php']]],
['update_5fbirthdays',['update_birthdays',['../datetime_8php.html#af1cd77c97c901d9239cb7a61f97f9826',1,'datetime.php']]],
['update_5fchannel_5fcontent',['update_channel_content',['../update__channel_8php.html#aca52a9da500f0db2f0a8666af5bc06ba',1,'update_channel.php']]],
+ ['update_5fchannels_5factive_5fhalfyear_5fstat',['update_channels_active_halfyear_stat',['../statistics__fns_8php.html#a82726229a961d3bd3d543005c61dd8e6',1,'statistics_fns.php']]],
+ ['update_5fchannels_5factive_5fmonthly_5fstat',['update_channels_active_monthly_stat',['../statistics__fns_8php.html#ad2b7b595c039c4c2eb0d6cd57a393dfe',1,'statistics_fns.php']]],
+ ['update_5fchannels_5ftotal_5fstat',['update_channels_total_stat',['../statistics__fns_8php.html#a05858927cce81fd367aedf85a94ed90c',1,'statistics_fns.php']]],
['update_5fdirectory_5fentry',['update_directory_entry',['../dir__fns_8php.html#a44062d4b471d1e83f92f6c184585aa13',1,'dir_fns.php']]],
['update_5fdisplay_5fcontent',['update_display_content',['../update__display_8php.html#aa36ac524059e209d5d75a03c16206246',1,'update_display.php']]],
['update_5ffeed_5fitem',['update_feed_item',['../items_8php.html#a9b449eeae50003414b8b30ca927af434',1,'items.php']]],
+ ['update_5fhome_5fcontent',['update_home_content',['../update__home_8php.html#a668340089acd150b830134476a647d05',1,'update_home.php']]],
['update_5fimported_5fitem',['update_imported_item',['../zot_8php.html#a31aad56acf8ff8f2353e6ff8595544df',1,'zot.php']]],
+ ['update_5flocal_5fposts_5fstat',['update_local_posts_stat',['../statistics__fns_8php.html#a9dd516dda693f17f5ce48a94876f7efa',1,'statistics_fns.php']]],
['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']]],
@@ -28,5 +35,6 @@ var searchData=
['user_5fapprove',['user_approve',['../account_8php.html#ad07be417ac7eda939768804106ddea3d',1,'account.php']]],
['user_5fdeny',['user_deny',['../account_8php.html#ac1653efba62493b9d87513e1b6c04c83',1,'account.php']]],
['user_5fremove',['user_remove',['../Contact_8php.html#a2fc191067dd571a79603c66b04b1ca15',1,'Contact.php']]],
- ['userreadablesize',['userReadableSize',['../classRedBrowser.html#ad3418b8ccad42a1ef4ad0079e15b2e64',1,'RedBrowser']]]
+ ['userreadablesize',['userReadableSize',['../classRedMatrix_1_1RedDAV_1_1RedBrowser.html#a242ce69a2fe5a5fdf9c2b8d3954accfd',1,'RedMatrix::RedDAV::RedBrowser']]],
+ ['utcnow',['utcnow',['../classdba__driver.html#ad700712879719bee23752b8f424d97d0',1,'dba_driver']]]
];
diff --git a/doc/html/search/functions_76.js b/doc/html/search/functions_76.js
index c0f0bd296..7a4c524e4 100644
--- a/doc/html/search/functions_76.js
+++ b/doc/html/search/functions_76.js
@@ -4,7 +4,7 @@ var searchData=
['validate_5fchannelname',['validate_channelname',['../identity_8php.html#af2802bc13a00a17b867bba7978ba8f58',1,'identity.php']]],
['validate_5femail',['validate_email',['../include_2network_8php.html#a897e7112d86eb95526cbd0bff9375f02',1,'network.php']]],
['validate_5furl',['validate_url',['../include_2network_8php.html#a5caa264fab6d2b2344e6bd5b298b08f2',1,'network.php']]],
- ['validateuserpass',['validateUserPass',['../classRedBasicAuth.html#a8dfd9a0953f8884723b421b7c1acf79b',1,'RedBasicAuth']]],
+ ['validateuserpass',['validateUserPass',['../classRedMatrix_1_1RedDAV_1_1RedBasicAuth.html#a6ece02655b780469e59e204c5979a624',1,'RedMatrix::RedDAV::RedBasicAuth']]],
['var_5freplace',['var_replace',['../classTemplate.html#abbc484016ddf5d818f55b823cae6feb0',1,'Template']]],
['vcard_5ffrom_5fxchan',['vcard_from_xchan',['../Contact_8php.html#a6348a532c9d26cd1c9afbc9aa6aa8960',1,'Contact.php']]],
['verify_5femail_5faddress',['verify_email_address',['../account_8php.html#acd6b8d2124ba5ea4f4794d2c58ae8bf5',1,'account.php']]],
diff --git a/doc/html/search/functions_77.js b/doc/html/search/functions_77.js
index 8cfb46c63..ff626b35a 100644
--- a/doc/html/search/functions_77.js
+++ b/doc/html/search/functions_77.js
@@ -5,12 +5,14 @@ var searchData=
['webfinger_5fcontent',['webfinger_content',['../webfinger_8php.html#a17dd28db6d390194bf9ecb809739d1d3',1,'webfinger.php']]],
['webfinger_5frfc7033',['webfinger_rfc7033',['../include_2network_8php.html#a3e6c751a51de33ad3563f0938296e78a',1,'network.php']]],
['webpages_5fcontent',['webpages_content',['../webpages_8php.html#af3b7397d4abc153e3d2147740ee1a41d',1,'webpages.php']]],
+ ['webpages_5finit',['webpages_init',['../webpages_8php.html#af9ad0b65eba79acead3fa32b43d888b7',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_5fappselect',['widget_appselect',['../widgets_8php.html#aced5cb177f630b30799c5eab873ee75c',1,'widgets.php']]],
['widget_5farchive',['widget_archive',['../widgets_8php.html#a7b1e357b5a2027718470b77ec921fc65',1,'widgets.php']]],
['widget_5fbookmarkedchats',['widget_bookmarkedchats',['../widgets_8php.html#a0e2f5179ed1a73b282dfda7270fcabb3',1,'widgets.php']]],
+ ['widget_5fcatcloud_5fwall',['widget_catcloud_wall',['../widgets_8php.html#af919de8e7e2ba8192a65fadc72a2c8b5',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_5fclock',['widget_clock',['../widgets_8php.html#a9d60539db68042e63c0015abd69a6f7a',1,'widgets.php']]],
@@ -29,7 +31,9 @@ var searchData=
['widget_5fnotes',['widget_notes',['../widgets_8php.html#a45ea061dabe9a8372e4ca3b9e5714256',1,'widgets.php']]],
['widget_5fphoto',['widget_photo',['../widgets_8php.html#a999ba893cac7600d3d3b4e7e14cf8c20',1,'widgets.php']]],
['widget_5fphoto_5falbums',['widget_photo_albums',['../widgets_8php.html#a702e2fc0adc9b615999eca18b7311b5e',1,'widgets.php']]],
+ ['widget_5fphoto_5frand',['widget_photo_rand',['../widgets_8php.html#af8eb466ef91d9e96e13335ead5eba380',1,'widgets.php']]],
['widget_5fprofile',['widget_profile',['../widgets_8php.html#abd2e508a2a0b911c4a838e3cb7599923',1,'widgets.php']]],
+ ['widget_5frandom_5fblock',['widget_random_block',['../widgets_8php.html#a829c5a5c7448129266fc1df3ae1a3c2e',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_5fsuggestedchats',['widget_suggestedchats',['../widgets_8php.html#a50b1410238100c8a94c06b0aa63ee3b8',1,'widgets.php']]],
@@ -37,5 +41,6 @@ var searchData=
['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']]]
+ ['writepages_5fwidget',['writepages_widget',['../page__widgets_8php.html#a1a1e729da27f252cab6678288a17958f',1,'page_widgets.php']]],
+ ['wtagblock',['wtagblock',['../taxonomy_8php.html#a83f0a60f9e0c07d8451dc5be95b17287',1,'taxonomy.php']]]
];
diff --git a/doc/html/search/functions_78.js b/doc/html/search/functions_78.js
index 2653d63e2..80f9b5f99 100644
--- a/doc/html/search/functions_78.js
+++ b/doc/html/search/functions_78.js
@@ -1,9 +1,11 @@
var searchData=
[
- ['x',['x',['../boot_8php.html#a01353c9abebc3544ea080ac161729632',1,'boot.php']]],
+ ['x',['x',['../boot_8php.html#ae97836b0547953be182a2334c9c91d3c',1,'boot.php']]],
['xchan_5fcontent',['xchan_content',['../xchan_8php.html#a9853348bf1a35c644460221ba75edc2d',1,'xchan.php']]],
+ ['xchan_5ffetch',['xchan_fetch',['../hubloc_8php.html#af1b476c936f96a93282b1d058e3d05ea',1,'hubloc.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']]],
+ ['xchan_5fquery',['xchan_query',['../text_8php.html#a905c3895feb6f276df23f07f16f9bb52',1,'text.php']]],
+ ['xchan_5fstore',['xchan_store',['../hubloc_8php.html#acb708dd197aae72a4858cf5ff4e3195b',1,'hubloc.php']]],
['xml2array',['xml2array',['../include_2network_8php.html#a99353baabbc3e0584b85eb79ee802cff',1,'network.php']]],
['xml_5fstatus',['xml_status',['../include_2network_8php.html#a9e9da2aafb806c98ecdc318604e60dc6',1,'network.php']]],
['xmlify',['xmlify',['../text_8php.html#aaed4413ed8918838b517e3b2fafaea0d',1,'text.php']]],
diff --git a/doc/html/search/functions_7a.js b/doc/html/search/functions_7a.js
index 13a4cefe7..3aa864421 100644
--- a/doc/html/search/functions_7a.js
+++ b/doc/html/search/functions_7a.js
@@ -6,6 +6,7 @@ var searchData=
['z_5fmime_5fcontent_5ftype',['z_mime_content_type',['../include_2attach_8php.html#a6fdd92775f31c07d2863e16e0026018a',1,'attach.php']]],
['z_5fpath',['z_path',['../boot_8php.html#aba208673515cbb8a55e5fa4a1da99fda',1,'boot.php']]],
['z_5fpost_5furl',['z_post_url',['../include_2network_8php.html#a9129fd55e7fc175b4ea9a195cccc16bc',1,'network.php']]],
+ ['z_5fpost_5furl_5fjson',['z_post_url_json',['../include_2network_8php.html#a984708e60d531b31b2d1f88b5f408f7b',1,'network.php']]],
['z_5freaddir',['z_readdir',['../include_2attach_8php.html#aeb07968990e66a88c95483ca09a7f909',1,'attach.php']]],
['z_5froot',['z_root',['../boot_8php.html#add517a0958ac684792c62142a3877f81',1,'boot.php']]],
['zfinger_5finit',['zfinger_init',['../zfinger_8php.html#a8139b83a22ef98869adc10aa224027a0',1,'zfinger.php']]],
@@ -14,14 +15,16 @@ var searchData=
['zidify_5fcallback',['zidify_callback',['../text_8php.html#a405afe814a23f3bd94d826101aa168ab',1,'text.php']]],
['zidify_5fimg_5fcallback',['zidify_img_callback',['../text_8php.html#ab4a4c3d4700bc219bb84f33b499314f4',1,'text.php']]],
['zidify_5flinks',['zidify_links',['../text_8php.html#a29988052f3944111def3b6aaf2c7a8f6',1,'text.php']]],
- ['zot_5fbuild_5fpacket',['zot_build_packet',['../zot_8php.html#a3862b3161b2c8557dc1a95020179bd81',1,'zot.php']]],
- ['zot_5ffeed',['zot_feed',['../items_8php.html#a004e89d86b0f29b2c4da20108ecc4091',1,'items.php']]],
+ ['zot_5fbuild_5fpacket',['zot_build_packet',['../zot_8php.html#a084c581d534e7e3b759488b46602288f',1,'zot.php']]],
+ ['zot_5fencode_5flocations',['zot_encode_locations',['../zot_8php.html#ae26ce9f1ad74139193fb6319beac5fca',1,'zot.php']]],
+ ['zot_5ffeed',['zot_feed',['../items_8php.html#a1cf89557f32d5dfbe8bd90448dc1aa92',1,'items.php']]],
['zot_5ffetch',['zot_fetch',['../zot_8php.html#a61cdc1ec843663c423ed2d8160ae5aea',1,'zot.php']]],
['zot_5ffinger',['zot_finger',['../zot_8php.html#a95528377d7303131958c9f0b7158fdce',1,'zot.php']]],
['zot_5fget_5fhublocs',['zot_get_hublocs',['../zot_8php.html#ae7cec2b417b5858fd4a41070f843d1d7',1,'zot.php']]],
['zot_5fgethub',['zot_gethub',['../zot_8php.html#a55056e863a7860bc0cf922e78fcce073',1,'zot.php']]],
['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_5fmessage_5frequest',['zot_process_message_request',['../zot_8php.html#a3920afe14fc1d82020161b4b86bcd9ac',1,'zot.php']]],
['zot_5fprocess_5fresponse',['zot_process_response',['../zot_8php.html#a928f5643ca66ae9635d85aeb2be62e03',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']]],
diff --git a/doc/html/search/namespaces_72.html b/doc/html/search/namespaces_72.html
new file mode 100644
index 000000000..ae42baffb
--- /dev/null
+++ b/doc/html/search/namespaces_72.html
@@ -0,0 +1,26 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html><head><title></title>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta name="generator" content="Doxygen 1.8.3.1">
+<link rel="stylesheet" type="text/css" href="search.css"/>
+<script type="text/javascript" src="namespaces_72.js"></script>
+<script type="text/javascript" src="search.js"></script>
+</head>
+<body class="SRPage">
+<div id="SRIndex">
+<div class="SRStatus" id="Loading">Loading...</div>
+<div id="SRResults"></div>
+<script type="text/javascript"><!--
+createResults();
+--></script>
+<div class="SRStatus" id="Searching">Searching...</div>
+<div class="SRStatus" id="NoMatches">No Matches</div>
+<script type="text/javascript"><!--
+document.getElementById("Loading").style.display="none";
+document.getElementById("NoMatches").style.display="none";
+var searchResults = new SearchResults("searchResults");
+searchResults.Search();
+--></script>
+</div>
+</body>
+</html>
diff --git a/doc/html/search/namespaces_72.js b/doc/html/search/namespaces_72.js
new file mode 100644
index 000000000..56f831e1c
--- /dev/null
+++ b/doc/html/search/namespaces_72.js
@@ -0,0 +1,6 @@
+var searchData=
+[
+ ['import',['Import',['../namespaceRedMatrix_1_1Import.html',1,'RedMatrix']]],
+ ['reddav',['RedDAV',['../namespaceRedMatrix_1_1RedDAV.html',1,'RedMatrix']]],
+ ['redmatrix',['RedMatrix',['../namespaceRedMatrix.html',1,'']]]
+];
diff --git a/doc/html/search/search.js b/doc/html/search/search.js
index 9b5c322ac..4477a1d6c 100644
--- a/doc/html/search/search.js
+++ b/doc/html/search/search.js
@@ -9,10 +9,10 @@ var indexSectionsWithContent =
{
0: "0000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000010111111111111111111111111010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000",
1: "0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000111111001000000101010000010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000",
- 2: "0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000100001000000000000001000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000",
+ 2: "0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000100001000000000001001000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000",
3: "0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000010111111111001111111111111010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000",
4: "0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000010111111111111111111111111010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000",
- 5: "0000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000101111111111111101111011010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000",
+ 5: "0000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000101111111111111101111111010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000",
6: "0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000101001000000000000010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000"
};
diff --git a/doc/html/search/variables_24.js b/doc/html/search/variables_24.js
index 2409f73b0..9ad473a4f 100644
--- a/doc/html/search/variables_24.js
+++ b/doc/html/search/variables_24.js
@@ -9,18 +9,15 @@ 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']]],
- ['_24auth',['$auth',['../classRedDirectory.html#a9616af16cd19a18a6afebebcc2881c44',1,'RedDirectory\$auth()'],['../classRedFile.html#a4b5d0e33f919c6c175b30a55de6263f2',1,'RedFile\$auth()'],['../classRedBrowser.html#ab6d6d1e2a67e06b344a4cede1bd00b35',1,'RedBrowser\$auth()']]],
+ ['_24auth',['$auth',['../classRedMatrix_1_1RedDAV_1_1RedBrowser.html#ad19179bf4ac7f18fafa7e2e3df800142',1,'RedMatrix\RedDAV\RedBrowser\$auth()'],['../classRedMatrix_1_1RedDAV_1_1RedDirectory.html#aab6907e7fb7f9f7227f9cd42bdc84eb9',1,'RedMatrix\RedDAV\RedDirectory\$auth()'],['../classRedMatrix_1_1RedDAV_1_1RedFile.html#a21b6e9d420c352f25610a33f57858215',1,'RedMatrix\RedDAV\RedFile\$auth()']]],
['_24baseurl',['$baseurl',['../classApp.html#ad5175536561021548ae8188e24c7b80c',1,'App']]],
- ['_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']]],
+ ['_24browser',['$browser',['../classRedMatrix_1_1RedDAV_1_1RedBasicAuth.html#a167ae032bd2ad8e6caa2e1e1a6f1b5d3',1,'RedMatrix::RedDAV::RedBasicAuth']]],
['_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'],['../theme_2apw_2php_2theme__init_8php.html#a54f32c086fe209c99769a4c4047dd864',1,'$channel():&#160;theme_init.php']]],
- ['_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']]],
+ ['_24channel_5fhash',['$channel_hash',['../classRedMatrix_1_1RedDAV_1_1RedBasicAuth.html#a112ad78a863dc0e598b5f02c596798c0',1,'RedMatrix::RedDAV::RedBasicAuth']]],
+ ['_24channel_5fid',['$channel_id',['../classRedMatrix_1_1RedDAV_1_1RedBasicAuth.html#abe1defedb90ac8e3b6487e124e625521',1,'RedMatrix::RedDAV::RedBasicAuth']]],
+ ['_24channel_5fname',['$channel_name',['../classRedMatrix_1_1RedDAV_1_1RedBasicAuth.html#a76fdb7fd5dd7376155abb5a58cd6fd69',1,'RedMatrix::RedDAV::RedBasicAuth']]],
['_24children',['$children',['../classItem.html#a80dcd0fb7673776c0967839d429c2a0f',1,'Item']]],
['_24cid',['$cid',['../classApp.html#ad1c8eb91a6fd470b94f34b7fdad3a2d0',1,'App']]],
['_24cipher',['$cipher',['../classConversation.html#aa95c1a62af38bdfba7add9549bec083b',1,'Conversation']]],
@@ -33,31 +30,29 @@ var searchData=
['_24contacts',['$contacts',['../classApp.html#a61ca6e3af82071ea25ff2fd5dbcddae2',1,'App']]],
['_24content',['$content',['../classApp.html#ac1d80a14492acc932715d54567d8a589',1,'App']]],
['_24conversation',['$conversation',['../classItem.html#a007424e3e3171dcfb4312a02161da6cd',1,'Item']]],
+ ['_24credentials',['$credentials',['../classRedMatrix_1_1Import_1_1Import.html#a864aac9fadb4846f5d9f840e8e0f440f',1,'RedMatrix::Import::Import']]],
['_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']]],
['_24d',['$d',['../classTemplate.html#a8469ab2988b6be2681516dc4b4e07d38',1,'Template']]],
- ['_24data',['$data',['../classApp.html#a0ce85be198e46570366cb3344f3c55b8',1,'App\$data()'],['../classItem.html#aec24e233f9098f902b1e57e60dcb2019',1,'Item\$data()'],['../classRedFile.html#a2ff12032b45538353eded9809d3b7550',1,'RedFile\$data()']]],
- ['_24db',['$db',['../classApp.html#a330410a288f3393d53772f5e98f857ea',1,'App\$db()'],['../classdba__driver.html#a3033b5f1c2716b52202faeaae2592fe6',1,'dba_driver\$db()']]],
+ ['_24data',['$data',['../classApp.html#a0ce85be198e46570366cb3344f3c55b8',1,'App\$data()'],['../classItem.html#aec24e233f9098f902b1e57e60dcb2019',1,'Item\$data()'],['../classRedMatrix_1_1RedDAV_1_1RedFile.html#a235700e2dfbe21dc41613d36e30e8acc',1,'RedMatrix\RedDAV\RedFile\$data()']]],
+ ['_24db',['$db',['../classdba__driver.html#a3033b5f1c2716b52202faeaae2592fe6',1,'dba_driver']]],
['_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']]],
['_24directory_5ffallback_5fservers',['$DIRECTORY_FALLBACK_SERVERS',['../boot_8php.html#a107d53f96acf5319905a34b1870db09a',1,'boot.php']]],
['_24dirs',['$dirs',['../typo_8php.html#a1b709c1d79631ebc8320b41bda028b54',1,'typo.php']]],
['_24dirstack',['$dirstack',['../docblox__errorchecker_8php.html#ab66bc0493d25f39bf8b4dcbb429f04e6',1,'docblox_errorchecker.php']]],
+ ['_24display_5fmode',['$display_mode',['../classItem.html#a88a99e2d1245925867f249f543358e72',1,'Item']]],
['_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']]],
+ ['_24ext_5fpath',['$ext_path',['../classRedMatrix_1_1RedDAV_1_1RedDirectory.html#adf8735b3118cdf2f42416edaf42b82e9',1,'RedMatrix::RedDAV::RedDirectory']]],
['_24fext',['$fext',['../apw_2php_2style_8php.html#a404171b8f918c116e45a6421c92f0cc9',1,'style.php']]],
['_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']]],
['_24fname',['$fname',['../apw_2php_2style_8php.html#ab9e0f70d44ab67f4334f9883631777fc',1,'style.php']]],
- ['_24folder_5fhash',['$folder_hash',['../classRedDirectory.html#aa10254abf177bb2a0e4a88495725e09b',1,'RedDirectory']]],
+ ['_24folder_5fhash',['$folder_hash',['../classRedMatrix_1_1RedDAV_1_1RedDirectory.html#a2fc4e6b9be2108bbaa1ca1a03fd6d44e',1,'RedMatrix::RedDAV::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']]],
- ['_24headimg',['$headimg',['../theme_2blogga_2php_2default_8php.html#ac7062908d1eb80c0735270f7997c4527',1,'$headimg():&#160;default.php'],['../theme_2blogga_2view_2theme_2blog_2default_8php.html#a52d9dd070ed541729088395c22502539',1,'$headimg():&#160;default.php']]],
- ['_24headimghome',['$headimghome',['../theme_2blogga_2php_2default_8php.html#a1230ab83d4ec9785d8f3a966f33dc5f3',1,'$headimghome():&#160;default.php'],['../theme_2blogga_2view_2theme_2blog_2default_8php.html#a1230ab83d4ec9785d8f3a966f33dc5f3',1,'$headimghome():&#160;default.php']]],
['_24height',['$height',['../classphoto__driver.html#aea560be5dfba09117d36c12bacbf3b80',1,'photo_driver']]],
['_24hooks',['$hooks',['../classApp.html#a3694aa1907aa103a2adbc71f926f0fa0',1,'App']]],
['_24hostname',['$hostname',['../classApp.html#a037049cba88dfc6ff94f4b5b779e3fd3',1,'App']]],
@@ -70,7 +65,10 @@ var searchData=
['_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']]],
+ ['_24is_5fsys',['$is_sys',['../classApp.html#a1f60d19d47021629faac7a0a6d917e94',1,'App']]],
['_24itemfloat',['$itemfloat',['../minimalisticdarkness_8php.html#a7e6c3d4efde4e9a2de32308081372c6b',1,'minimalisticdarkness.php']]],
+ ['_24itemlist',['$itemlist',['../classRedMatrix_1_1Import_1_1Import.html#ad0d2bdc3b388220479063915b4f5c2fc',1,'RedMatrix::Import::Import']]],
+ ['_24items',['$items',['../classRedMatrix_1_1Import_1_1Import.html#a0a05dac405ccc5b617b7b7b3c8ed783c',1,'RedMatrix::Import::Import']]],
['_24js_5fsources',['$js_sources',['../classApp.html#a11e24b3ed9b33ffee7dd41d110b4366d',1,'App']]],
['_24k',['$k',['../php2po_8php.html#ad6726cfaa85d4b8299d2b0f034cbf178',1,'php2po.php']]],
['_24lang',['$lang',['../classTemplate.html#ace26b8a4252fbc1c385d2b5e1e93e5c8',1,'Template']]],
@@ -81,19 +79,19 @@ 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',['../classRedFile.html#acc48c05cd5a70951cb3c615ad84f03ba',1,'RedFile\$name()'],['../classFriendicaSmartyEngine.html#aaba6a42101bc9ae32e36b7fa2e243f02',1,'FriendicaSmartyEngine\$name()'],['../classTemplate.html#a6eb301a51cc94d8b94f4548fbad85eae',1,'Template\$name()']]],
+ ['_24name',['$name',['../classRedMatrix_1_1RedDAV_1_1RedFile.html#ab722dcb8c4598426c81fa2b2e4fad5f2',1,'RedMatrix\RedDAV\RedFile\$name()'],['../classFriendicaSmartyEngine.html#aaba6a42101bc9ae32e36b7fa2e243f02',1,'FriendicaSmartyEngine\$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']]],
['_24navheight',['$navheight',['../apw_2php_2style_8php.html#a1c8a7c0db8c174239f3909cb931cb872',1,'style.php']]],
['_24needed',['$needed',['../docblox__errorchecker_8php.html#a852004caba0a34390297a079f4aaac73',1,'docblox_errorchecker.php']]],
['_24nodes',['$nodes',['../classTemplate.html#a8f4d17e49f42b876a97364c13fb572d1',1,'Template']]],
['_24obliquemacro',['$obliquemacro',['../apw_2php_2style_8php.html#a2cad82a3ecadbe58dbc4197de1c63da0',1,'style.php']]],
- ['_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']]],
+ ['_24observer',['$observer',['../classApp.html#a4ffe529fb14389f7fedf5fdc5f722e7f',1,'App\$observer()'],['../classConversation.html#a8748445aa26047ebed5141f3c3cbc244',1,'Conversation\$observer()'],['../classRedMatrix_1_1RedDAV_1_1RedBasicAuth.html#a605aa09565a097316b80f0d17d6b5823',1,'RedMatrix\RedDAV\RedBasicAuth\$observer()']]],
+ ['_24os_5fpath',['$os_path',['../classRedMatrix_1_1RedDAV_1_1RedDirectory.html#a17ea47e34cb76b6e79f36ebed790d76a',1,'RedMatrix::RedDAV::RedDirectory']]],
['_24out',['$out',['../php2po_8php.html#a48cb304902320d173a4eaa41543327b9',1,'php2po.php']]],
- ['_24owner_5fid',['$owner_id',['../classRedBasicAuth.html#a09c1488a0b290f5a54dc15180c5690d7',1,'RedBasicAuth']]],
+ ['_24owner_5fid',['$owner_id',['../classRedMatrix_1_1RedDAV_1_1RedBasicAuth.html#a1a23c349cc4699a8474505972684ea9c',1,'RedMatrix::RedDAV::RedBasicAuth']]],
['_24owner_5fname',['$owner_name',['../classItem.html#a9594df6014b0b6f45364ea7a34510130',1,'Item']]],
- ['_24owner_5fnick',['$owner_nick',['../classRedBasicAuth.html#a8d09b8d784cc810a0b3be580d05106a7',1,'RedBasicAuth']]],
+ ['_24owner_5fnick',['$owner_nick',['../classRedMatrix_1_1RedDAV_1_1RedBasicAuth.html#aad0ef0cc05c407de84dbfbf2050bbbbe',1,'RedMatrix::RedDAV::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']]],
@@ -103,8 +101,6 @@ var searchData=
['_24perms',['$perms',['../classApp.html#ab47de68fa39806d1fb0976407e188b77',1,'App']]],
['_24phpath',['$phpath',['../typo_8php.html#a3ecd17ac846be1b35f3662f5c12ab6bd',1,'typo.php']]],
['_24phpfile',['$phpfile',['../php2po_8php.html#abbb0e5fd8fbc1f13a9bf68f86eb3d2a4',1,'php2po.php']]],
- ['_24plugin',['$plugin',['../post__to__red_8php.html#ada8a7130088351710bb02ed622d6bf65',1,'post_to_red.php']]],
- ['_24plugin_5fdir',['$plugin_dir',['../post__to__red_8php.html#a99811555b30bde504a863e44015f2f19',1,'post_to_red.php']]],
['_24plugins',['$plugins',['../classApp.html#ae9f96338f32187d308b67b980eea0008',1,'App']]],
['_24pofile',['$pofile',['../php2po_8php.html#a401d84ce156e49e8168bd0c4781e1be1',1,'php2po.php']]],
['_24poi',['$poi',['../classApp.html#a1936f2afce0dc0d1bbed15ae1f2ee81a',1,'App']]],
@@ -114,13 +110,14 @@ var searchData=
['_24profile_5fowner',['$profile_owner',['../classConversation.html#a2f12724ef0244e9049fe1bb9641b516d',1,'Conversation']]],
['_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']]],
+ ['_24r',['$r',['../classTemplate.html#aac9a4638f11271e1b1dcc9f247242718',1,'Template\$r()'],['../fixd_8php.html#a8abe176bc41afd728f32ba8c506cbd98',1,'$r():&#160;fixd.php']]],
+ ['_24rand',['$rand',['../fixd_8php.html#a2da3681c9cce2efe7de29aa578ff4219',1,'fixd.php']]],
['_24rdelim',['$rdelim',['../classApp.html#a244b2d53b21be269aad2269d23192f95',1,'App']]],
- ['_24red_5fpath',['$red_path',['../classRedDirectory.html#acb32b8df27538c57772824a745e751d7',1,'RedDirectory']]],
+ ['_24red_5fpath',['$red_path',['../classRedMatrix_1_1RedDAV_1_1RedDirectory.html#a4bba2e56bc8ec3e05f05eae46f56f36d',1,'RedMatrix::RedDAV::RedDirectory']]],
['_24redirect_5furl',['$redirect_url',['../classItem.html#a5b561415861f5b89b0733aacfe0428d1',1,'Item']]],
['_24replace',['$replace',['../classTemplate.html#a4e86b566c3f728e95ce5db1b33665c10',1,'Template']]],
['_24res',['$res',['../docblox__errorchecker_8php.html#a49a8a4009b02e49717caa88b128affc5',1,'docblox_errorchecker.php']]],
- ['_24root_5fdir',['$root_dir',['../classRedDirectory.html#ad87c514a307ec97ba0f1372e9bcfa6a4',1,'RedDirectory']]],
+ ['_24root_5fdir',['$root_dir',['../classRedMatrix_1_1RedDAV_1_1RedDirectory.html#a438066fb1565fbcffa22c12d5ce23695',1,'RedMatrix::RedDAV::RedDirectory']]],
['_24s',['$s',['../extract_8php.html#a50b05cf2e02ef0b67fcad97106dd7634',1,'extract.php']]],
['_24scheme',['$scheme',['../classApp.html#ad082d63acc078e5bf23825a03bdd6a76',1,'App']]],
['_24search',['$search',['../classTemplate.html#a317d535946dc065c35dd5cd38380e6c6',1,'Template']]],
@@ -131,6 +128,7 @@ var searchData=
['_24session_5fexpire',['$session_expire',['../session_8php.html#af0100a2642a5268594bbd5742a03d885',1,'session.php']]],
['_24showlock',['$showlock',['../apw_2php_2style_8php.html#ad401ea1d1ba236f86863b4574f01e425',1,'style.php']]],
['_24sourcename',['$sourcename',['../classApp.html#a13710907ef62554a0b4dd8a5eaa2eb11',1,'App']]],
+ ['_24src_5fitems',['$src_items',['../classRedMatrix_1_1Import_1_1Import.html#a88c2eeba8d0cba3e7c12a2c45ba0fbc6',1,'RedMatrix::Import::Import']]],
['_24stack',['$stack',['../classTemplate.html#a6f0efc256688c36110180b501067ff11',1,'Template']]],
['_24str',['$str',['../typohelper_8php.html#a7542d95618011800c61773127fa625cf',1,'typohelper.php']]],
['_24strings',['$strings',['../classApp.html#a5f64620473a9727a48ebe9cf6f335a98',1,'App']]],
@@ -143,8 +141,9 @@ 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\$timezone()'],['../classRedBasicAuth.html#a2d0246ed446fd5e55c17938b4ce6ac47',1,'RedBasicAuth\$timezone()']]],
+ ['_24timezone',['$timezone',['../classApp.html#ab35b01a366a2ea95725e97af278f87ab',1,'App\$timezone()'],['../classRedMatrix_1_1RedDAV_1_1RedBasicAuth.html#a849c99cf0a7ad065d630c8a30106ad5e',1,'RedMatrix\RedDAV\RedBasicAuth\$timezone()']]],
['_24toplevel',['$toplevel',['../classItem.html#a5cfa6cf964f433a917a81cab079ff9d8',1,'Item']]],
+ ['_24total',['$total',['../fixd_8php.html#a241b818f48030b628685b2e5119c5624',1,'fixd.php']]],
['_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,'style.php']]],
@@ -154,7 +153,6 @@ var searchData=
['_24videowidth',['$videowidth',['../classApp.html#adf2aaf95b062736a6fd5fc70fadf80e8',1,'App']]],
['_24visiting',['$visiting',['../classItem.html#a4a123ae98987c1e30ecb15c4edf5a3b8',1,'Item']]],
['_24wall_5fto_5fwall',['$wall_to_wall',['../classItem.html#a5d29ddecc073151a65a8e2ea2f6e4189',1,'Item']]],
- ['_24widgetlist',['$widgetlist',['../classApp.html#a4833bee2eae4ad1691a04fa19e11a766',1,'App']]],
['_24widgets',['$widgets',['../classApp.html#aa5a87c46ab3fee21362c466bf78042ef',1,'App']]],
['_24width',['$width',['../classphoto__driver.html#a3e4215890f4a4894bf3799a7d2e0c0b1',1,'photo_driver\$width()'],['../minimalisticdarkness_8php.html#a5795120b4b324bc4ca83f1e6fdce7d57',1,'$width():&#160;minimalisticdarkness.php']]],
['_24writable',['$writable',['../classConversation.html#ae81221251307e315f566a11f921ce0a9',1,'Conversation']]],
diff --git a/doc/html/search/variables_64.js b/doc/html/search/variables_64.js
index ea1a85e2a..172029abf 100644
--- a/doc/html/search/variables_64.js
+++ b/doc/html/search/variables_64.js
@@ -1,6 +1,8 @@
var searchData=
[
['db_5fupdate_5fversion',['DB_UPDATE_VERSION',['../boot_8php.html#ac59a18a4838710d6c2de37aed6b21f03',1,'boot.php']]],
+ ['dbtype_5fmysql',['DBTYPE_MYSQL',['../boot_8php.html#a8c9a11c47394244cbe18cd75b9726d5f',1,'boot.php']]],
+ ['dbtype_5fpostgres',['DBTYPE_POSTGRES',['../boot_8php.html#a37ddabc112db443b4c67fbc0f708817e',1,'boot.php']]],
['default_5fdb_5fengine',['DEFAULT_DB_ENGINE',['../boot_8php.html#aa8a2b61e70900139d1ca28e46f1da49d',1,'boot.php']]],
['directory_5ffallback_5fmaster',['DIRECTORY_FALLBACK_MASTER',['../boot_8php.html#abedd940e664017c61b48c6efa31d0cb8',1,'boot.php']]],
['directory_5fmode_5fnormal',['DIRECTORY_MODE_NORMAL',['../boot_8php.html#ab7d65a7e7417825a4db62906bb600729',1,'boot.php']]],
diff --git a/doc/html/search/variables_65.js b/doc/html/search/variables_65.js
index 78718ea57..cb68909a7 100644
--- a/doc/html/search/variables_65.js
+++ b/doc/html/search/variables_65.js
@@ -1,6 +1,6 @@
var searchData=
[
- ['else',['else',['../auth_8php.html#a0950af7c2888ca1d4743fe5d0bff9ae5',1,'else():&#160;auth.php'],['../fpostit_8php.html#a501b5ca82f287509fc691c88524064c1',1,'else():&#160;fpostit.php'],['../tpldebug_8php.html#afbc7aadb3f7ff1edf0aaaa326a42179c',1,'else():&#160;tpldebug.php'],['../redbasic_2php_2style_8php.html#ab3afb90d611eca90819f597a2c0bb459',1,'else():&#160;style.php']]],
+ ['else',['else',['../auth_8php.html#a6f60fb54f60cd36c2430d6615a7b4f3f',1,'else():&#160;auth.php'],['../fpostit_8php.html#a501b5ca82f287509fc691c88524064c1',1,'else():&#160;fpostit.php'],['../tpldebug_8php.html#afbc7aadb3f7ff1edf0aaaa326a42179c',1,'else():&#160;tpldebug.php'],['../redbasic_2php_2style_8php.html#ab3afb90d611eca90819f597a2c0bb459',1,'else():&#160;style.php']]],
['eol',['EOL',['../boot_8php.html#a0603d6ece8c5d37b4b7db697db053a4b',1,'boot.php']]],
['eot',['EOT',['../typohelper_8php.html#ab6fd357fb5b2a3ba8aab9e8b98c6a805',1,'typohelper.php']]],
['excludepaths',['excludepaths',['../namespaceupdatetpl.html#a988d937ed5d5c2b592b763036af5cf94',1,'updatetpl']]],
diff --git a/doc/html/search/variables_69.js b/doc/html/search/variables_69.js
index bf0b248c0..fb77c49eb 100644
--- a/doc/html/search/variables_69.js
+++ b/doc/html/search/variables_69.js
@@ -1,6 +1,7 @@
var searchData=
[
['if',['if',['../php2po_8php.html#a45b05625748f412ec97afcd61cf7980b',1,'if():&#160;php2po.php'],['../php_2default_8php.html#a3987f5547ceb7e36a210a66a06241a5a',1,'if():&#160;default.php'],['../full_8php.html#a3987f5547ceb7e36a210a66a06241a5a',1,'if():&#160;full.php'],['../redable_8php.html#a3987f5547ceb7e36a210a66a06241a5a',1,'if():&#160;redable.php'],['../apw_2php_2style_8php.html#a2f71e817b8fac88ce7f0ec5c0fb88b8d',1,'if():&#160;style.php'],['../theme_2mytheme_2php_2default_8php.html#a3987f5547ceb7e36a210a66a06241a5a',1,'if():&#160;default.php']]],
+ ['install_5fscript',['INSTALL_SCRIPT',['../classdba__driver.html#a98d8523dcedda316085b4d4f856b6583',1,'dba_driver\INSTALL_SCRIPT()'],['../classdba__postgres.html#a7267f91c3f87f600b30d7560de62dfd7',1,'dba_postgres\INSTALL_SCRIPT()']]],
['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']]],
@@ -18,6 +19,7 @@ var searchData=
['item_5fpending_5fremove',['ITEM_PENDING_REMOVE',['../boot_8php.html#a028380b2902a86ba32198f6d3b5d10bb',1,'boot.php']]],
['item_5frelay',['ITEM_RELAY',['../boot_8php.html#a2958a2bd5422b85329d7c36c06dbc221',1,'boot.php']]],
['item_5fretained',['ITEM_RETAINED',['../boot_8php.html#a11cfe7d99b4dac0454d0de8873989f81',1,'boot.php']]],
+ ['item_5frss',['ITEM_RSS',['../boot_8php.html#ac4d1c93dabcace711ffb4931204c336b',1,'boot.php']]],
['item_5fspam',['ITEM_SPAM',['../boot_8php.html#a40d885b2cfd736aab4234ae641ca4dfb',1,'boot.php']]],
['item_5fstarred',['ITEM_STARRED',['../boot_8php.html#a7af107fab8d62b9a73801713b774ed30',1,'boot.php']]],
['item_5fthread_5ftop',['ITEM_THREAD_TOP',['../boot_8php.html#a749144d8dd9c1366596a0213c277d050',1,'boot.php']]],
diff --git a/doc/html/search/variables_6e.js b/doc/html/search/variables_6e.js
index cf8c2728f..55b3c17f6 100644
--- a/doc/html/search/variables_6e.js
+++ b/doc/html/search/variables_6e.js
@@ -1,6 +1,6 @@
var searchData=
[
- ['n',['n',['../php2po_8php.html#a1594a11499d06cc8a789ee7ca0c7a12b',1,'php2po.php']]],
+ ['n',['n',['../fixd_8php.html#a9d4f8a2ab4d92b3ccfd7cba0458098eb',1,'n():&#160;fixd.php'],['../php2po_8php.html#a1594a11499d06cc8a789ee7ca0c7a12b',1,'n():&#160;php2po.php']]],
['names',['names',['../namespaceupdatetpl.html#ab42dd79af65ee82201fd6f04715f62f6',1,'updatetpl']]],
['namespace_5factivity',['NAMESPACE_ACTIVITY',['../boot_8php.html#a5df5359090d1f8e898c36d7cf8878ad2',1,'boot.php']]],
['namespace_5factivity_5fschema',['NAMESPACE_ACTIVITY_SCHEMA',['../boot_8php.html#a7b8f8ad9dbe82711257d23891ef6b133',1,'boot.php']]],
@@ -16,6 +16,7 @@ var searchData=
['namespace_5fstatusnet',['NAMESPACE_STATUSNET',['../boot_8php.html#afaf93b7026f784b113b4f8921745891e',1,'boot.php']]],
['namespace_5fthread',['NAMESPACE_THREAD',['../boot_8php.html#a1d6e7f4c08bb68e4a424326a811bdd86',1,'boot.php']]],
['namespace_5ftomb',['NAMESPACE_TOMB',['../boot_8php.html#a4bfe22e163657690dfb6d5b1d04cb47e',1,'boot.php']]],
+ ['namespace_5fymedia',['NAMESPACE_YMEDIA',['../boot_8php.html#a3d48dffd9dc73a187263c3002cdf00c0',1,'boot.php']]],
['namespace_5fzot',['NAMESPACE_ZOT',['../boot_8php.html#a49f2a70b3b43aa904223a8d19e986a47',1,'boot.php']]],
['network_5fdfrn',['NETWORK_DFRN',['../boot_8php.html#ae3cef7b63e25e7bafea3fcf6b99fad0e',1,'boot.php']]],
['network_5fdiaspora',['NETWORK_DIASPORA',['../boot_8php.html#a38f6c7fe33b5434a24b4314567753dfa',1,'boot.php']]],
@@ -41,5 +42,6 @@ var searchData=
['notify_5fsystem',['NOTIFY_SYSTEM',['../boot_8php.html#a14d44d4a00223dc3db4ea962325db192',1,'boot.php']]],
['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']]]
+ ['notify_5fwall',['NOTIFY_WALL',['../boot_8php.html#a505410c7edc5f5bb5fa227b98359793e',1,'boot.php']]],
+ ['null_5fdate',['NULL_DATE',['../classdba__driver.html#afce39394c010ea589d99a21579b2c31e',1,'dba_driver\NULL_DATE()'],['../classdba__postgres.html#aeb404a85974d6c5df30c21650888000b',1,'dba_postgres\NULL_DATE()']]]
];
diff --git a/doc/html/search/variables_70.js b/doc/html/search/variables_70.js
index 2505bac30..e9954a9de 100644
--- a/doc/html/search/variables_70.js
+++ b/doc/html/search/variables_70.js
@@ -7,6 +7,7 @@ var searchData=
['page_5fcensored',['PAGE_CENSORED',['../boot_8php.html#a36003bebe4ce860c6652bcc3e09b2214',1,'boot.php']]],
['page_5fdirectory_5fchannel',['PAGE_DIRECTORY_CHANNEL',['../boot_8php.html#a5b8484922918946d041e5e0515dbe718',1,'boot.php']]],
['page_5fhidden',['PAGE_HIDDEN',['../boot_8php.html#a5e322a2a2d0f51924c0b2e874988e640',1,'boot.php']]],
+ ['page_5fhubadmin',['PAGE_HUBADMIN',['../boot_8php.html#afbb21ecccac9819aa65397e816868a5f',1,'boot.php']]],
['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']]],
@@ -37,6 +38,7 @@ var searchData=
['perms_5fw_5fstream',['PERMS_W_STREAM',['../boot_8php.html#a8bb0395933b5e886f086f6a2fb0bfa55',1,'boot.php']]],
['perms_5fw_5ftagwall',['PERMS_W_TAGWALL',['../boot_8php.html#a99a4a17cb644e7e6826ea07ecaf09777',1,'boot.php']]],
['perms_5fw_5fwall',['PERMS_W_WALL',['../boot_8php.html#a6b14a31a8aa9f3452a13383f413bffa2',1,'boot.php']]],
+ ['photo_5fadult',['PHOTO_ADULT',['../boot_8php.html#a921c55b9fa59a327a5f0e07fa1ccb2e0',1,'boot.php']]],
['photo_5fnormal',['PHOTO_NORMAL',['../boot_8php.html#a4a49b29838ef2c45ab3556b52baec6a4',1,'boot.php']]],
['photo_5fprofile',['PHOTO_PROFILE',['../boot_8php.html#ab4bc9c50ecc927b92d519e36562b0df0',1,'boot.php']]],
['photo_5fthing',['PHOTO_THING',['../boot_8php.html#a78849a1bf8ce8d9804b4cbb502e8f383',1,'boot.php']]],
@@ -46,8 +48,5 @@ var searchData=
['poll_5fmultiple_5fchoice',['POLL_MULTIPLE_CHOICE',['../boot_8php.html#abbf5ac24eb8aeedb862f618ee0d21e86',1,'boot.php']]],
['poll_5foverwrite',['POLL_OVERWRITE',['../boot_8php.html#a2b525996e4426bdddbcec277778bde08',1,'boot.php']]],
['poll_5fsimple_5frating',['POLL_SIMPLE_RATING',['../boot_8php.html#ad88a70ec62e08d590123d3697dfe64d5',1,'boot.php']]],
- ['poll_5ftenscale',['POLL_TENSCALE',['../boot_8php.html#a1ba00027b718db732f30fc0e2c3e0abc',1,'boot.php']]],
- ['post_5fto_5fred_5facct_5fname',['post_to_red_acct_name',['../post__to__red_8php.html#a588cea66afe0b32f27f2713d44940119',1,'post_to_red.php']]],
- ['post_5fto_5fred_5fpath',['post_to_red_path',['../post__to__red_8php.html#a6210f39392a5f0fa0255cc7d3760493a',1,'post_to_red.php']]],
- ['post_5fto_5fred_5fversion',['post_to_red_version',['../post__to__red_8php.html#af3e7ebd361d4ed7cb6d43209970cd94a',1,'post_to_red.php']]]
+ ['poll_5ftenscale',['POLL_TENSCALE',['../boot_8php.html#a1ba00027b718db732f30fc0e2c3e0abc',1,'boot.php']]]
];
diff --git a/doc/html/search/variables_72.js b/doc/html/search/variables_72.js
index be2927ed5..885c50398 100644
--- a/doc/html/search/variables_72.js
+++ b/doc/html/search/variables_72.js
@@ -5,6 +5,13 @@ var searchData=
['rdelim',['rdelim',['../namespacefriendica-to-smarty-tpl.html#a8540514fb7c4aa18ad2dffa2a975036b',1,'friendica-to-smarty-tpl']]],
['red_5fplatform',['RED_PLATFORM',['../boot_8php.html#a96ad56755a21e1361dbd7bf93c9e7ff4',1,'boot.php']]],
['red_5fversion',['RED_VERSION',['../boot_8php.html#a21cc29e0025943e7c28ff58cb4856ac3',1,'boot.php']]],
+ ['redmatrix_5fimportchannel',['REDMATRIX_IMPORTCHANNEL',['../refimport_8php.html#a54003135d7c8994a76e831fb6faa2fe6',1,'refimport.php']]],
+ ['reflect_5fbaseurl',['REFLECT_BASEURL',['../refimport_8php.html#ac43699d8ae86175e049aa4e87853caac',1,'refimport.php']]],
+ ['reflect_5fblogname',['REFLECT_BLOGNAME',['../refimport_8php.html#a8459983ebf013ed5737f7ed317bfae1f',1,'refimport.php']]],
+ ['reflect_5fexportusername',['REFLECT_EXPORTUSERNAME',['../refimport_8php.html#ad297afe0730c9119dd94d3cf0521b025',1,'refimport.php']]],
+ ['reflect_5fmaxperrun',['REFLECT_MAXPERRUN',['../refimport_8php.html#a9c1f681f1f303400a9818696a9f96d6f',1,'refimport.php']]],
+ ['reflect_5foverwrite',['REFLECT_OVERWRITE',['../refimport_8php.html#aeec793cefa260f788b7d005adcb35796',1,'refimport.php']]],
+ ['reflect_5fuserfile',['REFLECT_USERFILE',['../refimport_8php.html#a684a44d2401abf75f441591bcb41d10d',1,'refimport.php']]],
['register_5fapprove',['REGISTER_APPROVE',['../boot_8php.html#a7176c0f9f1c98421b97735d892cf6252',1,'boot.php']]],
['register_5fclosed',['REGISTER_CLOSED',['../boot_8php.html#a69aac276ed82e010dc382b16ab4d59e1',1,'boot.php']]],
['register_5fopen',['REGISTER_OPEN',['../boot_8php.html#ad8887b49bbb02dd30b4eb9f6c7773c63',1,'boot.php']]],
diff --git a/doc/html/search/variables_75.js b/doc/html/search/variables_75.js
index 3ba76224d..0cf257ad6 100644
--- a/doc/html/search/variables_75.js
+++ b/doc/html/search/variables_75.js
@@ -4,5 +4,6 @@ var searchData=
['update_5fflags_5fdeleted',['UPDATE_FLAGS_DELETED',['../boot_8php.html#aea392cb26ed617f3a8cde648385b5df0',1,'boot.php']]],
['update_5fflags_5fforced',['UPDATE_FLAGS_FORCED',['../boot_8php.html#ab9dca53455cd157d3c6ba2bdecdbd22d',1,'boot.php']]],
['update_5fflags_5fupdated',['UPDATE_FLAGS_UPDATED',['../boot_8php.html#a9690d73434125ce594a1f5e7c2a4f7c0',1,'boot.php']]],
- ['update_5fsuccess',['UPDATE_SUCCESS',['../boot_8php.html#ac86615ddc0763a00f5311c90e991730c',1,'boot.php']]]
+ ['update_5fsuccess',['UPDATE_SUCCESS',['../boot_8php.html#ac86615ddc0763a00f5311c90e991730c',1,'boot.php']]],
+ ['utc_5fnow',['UTC_NOW',['../classdba__driver.html#aa3325d982d4ee5d1114fd7e02a4356e8',1,'dba_driver\UTC_NOW()'],['../classdba__postgres.html#ace80a204e34b20b9907650399cce02a3',1,'dba_postgres\UTC_NOW()']]]
];
diff --git a/doc/html/search/variables_76.html b/doc/html/search/variables_76.html
new file mode 100644
index 000000000..8af237461
--- /dev/null
+++ b/doc/html/search/variables_76.html
@@ -0,0 +1,26 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html><head><title></title>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta name="generator" content="Doxygen 1.8.3.1">
+<link rel="stylesheet" type="text/css" href="search.css"/>
+<script type="text/javascript" src="variables_76.js"></script>
+<script type="text/javascript" src="search.js"></script>
+</head>
+<body class="SRPage">
+<div id="SRIndex">
+<div class="SRStatus" id="Loading">Loading...</div>
+<div id="SRResults"></div>
+<script type="text/javascript"><!--
+createResults();
+--></script>
+<div class="SRStatus" id="Searching">Searching...</div>
+<div class="SRStatus" id="NoMatches">No Matches</div>
+<script type="text/javascript"><!--
+document.getElementById("Loading").style.display="none";
+document.getElementById("NoMatches").style.display="none";
+var searchResults = new SearchResults("searchResults");
+searchResults.Search();
+--></script>
+</div>
+</body>
+</html>
diff --git a/doc/html/search/variables_76.js b/doc/html/search/variables_76.js
new file mode 100644
index 000000000..f046273ce
--- /dev/null
+++ b/doc/html/search/variables_76.js
@@ -0,0 +1,14 @@
+var searchData=
+[
+ ['vnotify_5falert',['VNOTIFY_ALERT',['../boot_8php.html#a9f8a2938ddd9ee2867e6f8ce77b61b2f',1,'boot.php']]],
+ ['vnotify_5fbirthday',['VNOTIFY_BIRTHDAY',['../boot_8php.html#ac89396b9144391acd08d6d0f9b332220',1,'boot.php']]],
+ ['vnotify_5fchannel',['VNOTIFY_CHANNEL',['../boot_8php.html#a7b511bd93202c43405adbe3b5bcebbfe',1,'boot.php']]],
+ ['vnotify_5fevent',['VNOTIFY_EVENT',['../boot_8php.html#ad94aca4c260b8a892397786201dc4664',1,'boot.php']]],
+ ['vnotify_5feventtoday',['VNOTIFY_EVENTTODAY',['../boot_8php.html#a76480b213af379c0c6c7fa4e39019ca9',1,'boot.php']]],
+ ['vnotify_5finfo',['VNOTIFY_INFO',['../boot_8php.html#a37281c30bd92cecb499878d6778c570f',1,'boot.php']]],
+ ['vnotify_5fintro',['VNOTIFY_INTRO',['../boot_8php.html#a1997c4b7d0253e036bc0fb6b20e4af71',1,'boot.php']]],
+ ['vnotify_5fmail',['VNOTIFY_MAIL',['../boot_8php.html#a0afeb43da443d6ff3526ede5ecdcc3b3',1,'boot.php']]],
+ ['vnotify_5fnetwork',['VNOTIFY_NETWORK',['../boot_8php.html#a997614f25e58f8313641e1eb0109fd10',1,'boot.php']]],
+ ['vnotify_5fregister',['VNOTIFY_REGISTER',['../boot_8php.html#ae09767b94688657978ff9366ec63684b',1,'boot.php']]],
+ ['vnotify_5fsystem',['VNOTIFY_SYSTEM',['../boot_8php.html#a7e5627b5ca4b7464feb0f08663b19ea1',1,'boot.php']]]
+];
diff --git a/doc/html/search/variables_78.js b/doc/html/search/variables_78.js
index 75be51da5..312bf2391 100644
--- a/doc/html/search/variables_78.js
+++ b/doc/html/search/variables_78.js
@@ -5,6 +5,7 @@ var searchData=
['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_5fpubforum',['XCHAN_FLAGS_PUBFORUM',['../boot_8php.html#a0209e605028a5bb492683951ab30d49d',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/security_8php.html b/doc/html/security_8php.html
index ed960b87d..a8efeb979 100644
--- a/doc/html/security_8php.html
+++ b/doc/html/security_8php.html
@@ -115,10 +115,13 @@ Functions</h2></td></tr>
<tr class="memitem:adc7bf51e3b8d67bd80e9348f9ab03733"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="security_8php.html#adc7bf51e3b8d67bd80e9348f9ab03733">authenticate_success</a> ($user_record, $login_initial=false, $interactive=false, $return=false, $update_lastlog=false)</td></tr>
<tr class="separator:adc7bf51e3b8d67bd80e9348f9ab03733"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a8d23d2597aae380a3341872fe9513380"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="security_8php.html#a8d23d2597aae380a3341872fe9513380">change_channel</a> ($change_channel)</td></tr>
+<tr class="memdesc:a8d23d2597aae380a3341872fe9513380"><td class="mdescLeft">&#160;</td><td class="mdescRight">Change to another channel with current logged-in account. <a href="#a8d23d2597aae380a3341872fe9513380">More...</a><br/></td></tr>
<tr class="separator:a8d23d2597aae380a3341872fe9513380"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:afa683bc025a1d2fe9065e2f6cd71a22f"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="security_8php.html#afa683bc025a1d2fe9065e2f6cd71a22f">permissions_sql</a> ($owner_id, $remote_verified=false, $groups=null)</td></tr>
+<tr class="memdesc:afa683bc025a1d2fe9065e2f6cd71a22f"><td class="mdescLeft">&#160;</td><td class="mdescRight">Creates an addiontal SQL where statement to check permissions. <a href="#afa683bc025a1d2fe9065e2f6cd71a22f">More...</a><br/></td></tr>
<tr class="separator:afa683bc025a1d2fe9065e2f6cd71a22f"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a9355488460ab11d6058656ff919e5cf9"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="security_8php.html#a9355488460ab11d6058656ff919e5cf9">item_permissions_sql</a> ($owner_id, $remote_verified=false, $groups=null)</td></tr>
+<tr class="memdesc:a9355488460ab11d6058656ff919e5cf9"><td class="mdescLeft">&#160;</td><td class="mdescRight">Creates an addiontal SQL where statement to check permissions for an item. <a href="#a9355488460ab11d6058656ff919e5cf9">More...</a><br/></td></tr>
<tr class="separator:a9355488460ab11d6058656ff919e5cf9"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ab3bdd30dc60d9ee72370b866aa4a2d01"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="security_8php.html#ab3bdd30dc60d9ee72370b866aa4a2d01">public_permissions_sql</a> ($observer_hash)</td></tr>
<tr class="separator:ab3bdd30dc60d9ee72370b866aa4a2d01"><td class="memSeparator" colspan="2">&#160;</td></tr>
@@ -137,7 +140,9 @@ Functions</h2></td></tr>
<tr class="memitem:a3ef2be6a7e4928e39d50059d6feb457c"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="security_8php.html#a3ef2be6a7e4928e39d50059d6feb457c">stream_perms_xchans</a> ($perms=NULL)</td></tr>
<tr class="separator:a3ef2be6a7e4928e39d50059d6feb457c"><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>Some security related functions. </p>
+</div><h2 class="groupheader">Function Documentation</h2>
<a class="anchor" id="adc7bf51e3b8d67bd80e9348f9ab03733"></a>
<div class="memitem">
<div class="memproto">
@@ -179,6 +184,16 @@ Functions</h2></td></tr>
</tr>
</table>
</div><div class="memdoc">
+<dl class="params"><dt>Parameters</dt><dd>
+ <table class="params">
+ <tr><td class="paramtype">int</td><td class="paramname">$user_record</td><td>The account_id </td></tr>
+ <tr><td class="paramtype">bool</td><td class="paramname">$login_initial</td><td>default false </td></tr>
+ <tr><td class="paramtype">bool</td><td class="paramname">$interactive</td><td>default false </td></tr>
+ <tr><td class="paramtype">bool</td><td class="paramname">$return</td><td></td></tr>
+ <tr><td class="paramtype">bool</td><td class="paramname">$update_lastlog</td><td></td></tr>
+ </table>
+ </dd>
+</dl>
<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>
@@ -198,6 +213,15 @@ Functions</h2></td></tr>
</table>
</div><div class="memdoc">
+<p>Change to another channel with current logged-in account. </p>
+<dl class="params"><dt>Parameters</dt><dd>
+ <table class="params">
+ <tr><td class="paramtype">int</td><td class="paramname">$change_channel</td><td>The channel_id of the channel you want to change to</td></tr>
+ </table>
+ </dd>
+</dl>
+<dl class="section return"><dt>Returns</dt><dd>bool|array false or channel record of the new channel </dd></dl>
+
<p>Referenced by <a class="el" href="include_2api_8php.html#afe534f826e4282b72d66e8cadca7bb73">api_login()</a>, <a class="el" href="include_2api_8php.html#afb99daa6b731bf497b81f2128084852c">api_user()</a>, <a class="el" href="security_8php.html#adc7bf51e3b8d67bd80e9348f9ab03733">authenticate_success()</a>, <a class="el" href="import_8php.html#af17fef0410518f7eac205d0ea416eaa2">import_post()</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="new__channel_8php.html#a180b0646957db8290482f02454ad7f23">new_channel_post()</a>, and <a class="el" href="rpost_8php.html#a8190354d789000806d9879aea276728f">rpost_content()</a>.</p>
</div>
@@ -356,12 +380,23 @@ Functions</h2></td></tr>
</tr>
</table>
</div><div class="memdoc">
+
+<p>Creates an addiontal SQL where statement to check permissions for an item. </p>
+<dl class="params"><dt>Parameters</dt><dd>
+ <table class="params">
+ <tr><td class="paramtype">int</td><td class="paramname">$owner_id</td><td></td></tr>
+ <tr><td class="paramtype">bool</td><td class="paramname">$remote_verified</td><td>default false, not used at all </td></tr>
+ <tr><td class="paramtype">string</td><td class="paramname">$groups</td><td>this param is not used at all</td></tr>
+ </table>
+ </dd>
+</dl>
+<dl class="section return"><dt>Returns</dt><dd>string additional SQL where statement </dd></dl>
<p>Construct permissions</p>
<p>default permissions - anonymous user</p>
<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="block_8php.html#a8a82a470acdfbc7a8e749509caeeea45">block_content()</a>, <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>, <a class="el" href="widgets_8php.html#a313a8d10ab81c71357c12e67e4d7efd5">widget_item()</a>, and <a class="el" href="items_8php.html#a004e89d86b0f29b2c4da20108ecc4091">zot_feed()</a>.</p>
+<p>Referenced by <a class="el" href="block_8php.html#a8a82a470acdfbc7a8e749509caeeea45">block_content()</a>, <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#a4d89800c0366a239191b1692c09635cf">page_init()</a>, <a class="el" href="comanche_8php.html#af7150df735e5ff9d467994cd6f769c6e">pdl_selector()</a>, <a class="el" href="share_8php.html#afeb26046bdd02567ecd29ab5f188b249">share_init()</a>, <a class="el" href="widgets_8php.html#a313a8d10ab81c71357c12e67e4d7efd5">widget_item()</a>, <a class="el" href="widgets_8php.html#a829c5a5c7448129266fc1df3ae1a3c2e">widget_random_block()</a>, and <a class="el" href="items_8php.html#a1cf89557f32d5dfbe8bd90448dc1aa92">zot_feed()</a>.</p>
</div>
</div>
@@ -394,12 +429,23 @@ Functions</h2></td></tr>
</tr>
</table>
</div><div class="memdoc">
+
+<p>Creates an addiontal SQL where statement to check permissions. </p>
+<dl class="params"><dt>Parameters</dt><dd>
+ <table class="params">
+ <tr><td class="paramtype">int</td><td class="paramname">$owner_id</td><td></td></tr>
+ <tr><td class="paramtype">bool</td><td class="paramname">$remote_verified</td><td>default false, not used at all </td></tr>
+ <tr><td class="paramtype">string</td><td class="paramname">$groups</td><td>this param is not used at all</td></tr>
+ </table>
+ </dd>
+</dl>
+<dl class="section return"><dt>Returns</dt><dd>string additional SQL where statement </dd></dl>
<p>Construct permissions</p>
<p>default permissions - anonymous user</p>
<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="mod_2chat_8php.html#a8b0b8bee6fef6477e8c64c5e951b1b4f">chat_content()</a>, <a class="el" href="include_2chat_8php.html#acea6b176eb7aff44d9ba3ae24ce511d3">chat_message()</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>
+<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#acea6b176eb7aff44d9ba3ae24ce511d3">chat_message()</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="include_2chat_8php.html#a26abdccc2a278a59899896dbbfc6f049">chatroom_list_count()</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>
@@ -416,6 +462,13 @@ Functions</h2></td></tr>
</tr>
</table>
</div><div class="memdoc">
+<dl class="params"><dt>Parameters</dt><dd>
+ <table class="params">
+ <tr><td class="paramtype">string</td><td class="paramname">$observer_hash</td><td></td></tr>
+ </table>
+ </dd>
+</dl>
+<dl class="section return"><dt>Returns</dt><dd>string additional SQL where statement </dd></dl>
<p>Referenced by <a class="el" href="display_8php.html#a37137c98d47bf3306f4c2bb9f5b60de0">display_content()</a>, and <a class="el" href="search_8php.html#ab2568591359edde5b483a6cd9a24b2cc">search_content()</a>.</p>
@@ -435,7 +488,7 @@ Functions</h2></td></tr>
</table>
</div><div class="memdoc">
-<p>Referenced by <a class="el" href="include_2api_8php.html#a645397787618b5c548a31e8686e8cca4">api_status_show()</a>, <a class="el" href="include_2api_8php.html#ad24ce1bf20867add4c9211a8eaf93f22">api_statuses_public_timeline()</a>, <a class="el" href="include_2api_8php.html#abe8e929e93f7ab134b1cb1fb30f19a76">api_users_show()</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#a645397787618b5c548a31e8686e8cca4">api_status_show()</a>, <a class="el" href="include_2api_8php.html#ad24ce1bf20867add4c9211a8eaf93f22">api_statuses_public_timeline()</a>, <a class="el" href="include_2api_8php.html#abe8e929e93f7ab134b1cb1fb30f19a76">api_users_show()</a>, and <a class="el" href="items_8php.html#a1cf89557f32d5dfbe8bd90448dc1aa92">zot_feed()</a>.</p>
</div>
</div>
diff --git a/doc/html/service__limits_8php.html b/doc/html/service__limits_8php.html
new file mode 100644
index 000000000..808e3ca9a
--- /dev/null
+++ b/doc/html/service__limits_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/service_limits.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('service__limits_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">service_limits.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:a653424aac63c5cd05ba70c3c77bf7f8a"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="service__limits_8php.html#a653424aac63c5cd05ba70c3c77bf7f8a">service_limits_content</a> (&amp;$a)</td></tr>
+<tr class="separator:a653424aac63c5cd05ba70c3c77bf7f8a"><td class="memSeparator" colspan="2">&#160;</td></tr>
+</table>
+<h2 class="groupheader">Function Documentation</h2>
+<a class="anchor" id="a653424aac63c5cd05ba70c3c77bf7f8a"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">service_limits_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/service__limits_8php.js b/doc/html/service__limits_8php.js
new file mode 100644
index 000000000..4ab8d3a33
--- /dev/null
+++ b/doc/html/service__limits_8php.js
@@ -0,0 +1,4 @@
+var service__limits_8php =
+[
+ [ "service_limits_content", "service__limits_8php.html#a653424aac63c5cd05ba70c3c77bf7f8a", null ]
+]; \ No newline at end of file
diff --git a/doc/html/setup_8php.html b/doc/html/setup_8php.html
index 3537830f1..8c57c8058 100644
--- a/doc/html/setup_8php.html
+++ b/doc/html/setup_8php.html
@@ -348,8 +348,6 @@ Variables</h2></td></tr>
</table>
</div><div class="memdoc">
-<p>Referenced by <a class="el" href="setup_8php.html#a13cf286774149a0a7bd8adb8179cec75">setup_post()</a>.</p>
-
</div>
</div>
<a class="anchor" id="ad2e0375a9ab87ebe6e78124ee125054a"></a>
diff --git a/doc/html/simple__black__on__white_8php.html b/doc/html/simple__black__on__white_8php.html
new file mode 100644
index 000000000..24c0fcde5
--- /dev/null
+++ b/doc/html/simple__black__on__white_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/simple_black_on_white.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('simple__black__on__white_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">simple_black_on_white.php File Reference</div> </div>
+</div><!--header-->
+<div class="contents">
+</div><!-- contents -->
+</div><!-- doc-content -->
+
diff --git a/doc/html/simple__green__on__black_8php.html b/doc/html/simple__green__on__black_8php.html
new file mode 100644
index 000000000..58eb19f83
--- /dev/null
+++ b/doc/html/simple__green__on__black_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/simple_green_on_black.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('simple__green__on__black_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">simple_green_on_black.php File Reference</div> </div>
+</div><!--header-->
+<div class="contents">
+</div><!-- contents -->
+</div><!-- doc-content -->
+
diff --git a/doc/html/simple__white__on__black_8php.html b/doc/html/simple__white__on__black_8php.html
new file mode 100644
index 000000000..932361b92
--- /dev/null
+++ b/doc/html/simple__white__on__black_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/simple_white_on_black.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('simple__white__on__black_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">simple_white_on_black.php File Reference</div> </div>
+</div><!--header-->
+<div class="contents">
+</div><!-- contents -->
+</div><!-- doc-content -->
+
diff --git a/doc/html/socgraph_8php.html b/doc/html/socgraph_8php.html
index 47a2222ca..2a9aa7209 100644
--- a/doc/html/socgraph_8php.html
+++ b/doc/html/socgraph_8php.html
@@ -404,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>, and <a class="el" href="widgets_8php.html#a0d404276fedc59f5038cf5c085028326">widget_suggestions()</a>.</p>
+<p>Referenced by <a class="el" href="mod_2directory_8php.html#aac79396570d759da2efac24fcedf5b44">directory_content()</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>
diff --git a/doc/html/statistics__fns_8php.html b/doc/html/statistics__fns_8php.html
new file mode 100644
index 000000000..541842b29
--- /dev/null
+++ b/doc/html/statistics__fns_8php.html
@@ -0,0 +1,195 @@
+<!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/statistics_fns.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('statistics__fns_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">statistics_fns.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:a05858927cce81fd367aedf85a94ed90c"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="statistics__fns_8php.html#a05858927cce81fd367aedf85a94ed90c">update_channels_total_stat</a> ()</td></tr>
+<tr class="separator:a05858927cce81fd367aedf85a94ed90c"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a82726229a961d3bd3d543005c61dd8e6"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="statistics__fns_8php.html#a82726229a961d3bd3d543005c61dd8e6">update_channels_active_halfyear_stat</a> ()</td></tr>
+<tr class="separator:a82726229a961d3bd3d543005c61dd8e6"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ad2b7b595c039c4c2eb0d6cd57a393dfe"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="statistics__fns_8php.html#ad2b7b595c039c4c2eb0d6cd57a393dfe">update_channels_active_monthly_stat</a> ()</td></tr>
+<tr class="separator:ad2b7b595c039c4c2eb0d6cd57a393dfe"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a9dd516dda693f17f5ce48a94876f7efa"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="statistics__fns_8php.html#a9dd516dda693f17f5ce48a94876f7efa">update_local_posts_stat</a> ()</td></tr>
+<tr class="separator:a9dd516dda693f17f5ce48a94876f7efa"><td class="memSeparator" colspan="2">&#160;</td></tr>
+</table>
+<h2 class="groupheader">Function Documentation</h2>
+<a class="anchor" id="a82726229a961d3bd3d543005c61dd8e6"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">update_channels_active_halfyear_stat </td>
+ <td>(</td>
+ <td class="paramname"></td><td>)</td>
+ <td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Referenced by <a class="el" href="poller_8php.html#a5f12df3a4738124b6c039971e87e76da">poller_run()</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="ad2b7b595c039c4c2eb0d6cd57a393dfe"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">update_channels_active_monthly_stat </td>
+ <td>(</td>
+ <td class="paramname"></td><td>)</td>
+ <td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Referenced by <a class="el" href="poller_8php.html#a5f12df3a4738124b6c039971e87e76da">poller_run()</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="a05858927cce81fd367aedf85a94ed90c"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">update_channels_total_stat </td>
+ <td>(</td>
+ <td class="paramname"></td><td>)</td>
+ <td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Referenced by <a class="el" href="poller_8php.html#a5f12df3a4738124b6c039971e87e76da">poller_run()</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="a9dd516dda693f17f5ce48a94876f7efa"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">update_local_posts_stat </td>
+ <td>(</td>
+ <td class="paramname"></td><td>)</td>
+ <td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Referenced by <a class="el" href="poller_8php.html#a5f12df3a4738124b6c039971e87e76da">poller_run()</a>.</p>
+
+</div>
+</div>
+</div><!-- contents -->
+</div><!-- doc-content -->
+
diff --git a/doc/html/statistics__fns_8php.js b/doc/html/statistics__fns_8php.js
new file mode 100644
index 000000000..6ef78ffae
--- /dev/null
+++ b/doc/html/statistics__fns_8php.js
@@ -0,0 +1,7 @@
+var statistics__fns_8php =
+[
+ [ "update_channels_active_halfyear_stat", "statistics__fns_8php.html#a82726229a961d3bd3d543005c61dd8e6", null ],
+ [ "update_channels_active_monthly_stat", "statistics__fns_8php.html#ad2b7b595c039c4c2eb0d6cd57a393dfe", null ],
+ [ "update_channels_total_stat", "statistics__fns_8php.html#a05858927cce81fd367aedf85a94ed90c", null ],
+ [ "update_local_posts_stat", "statistics__fns_8php.html#a9dd516dda693f17f5ce48a94876f7efa", null ]
+]; \ No newline at end of file
diff --git a/doc/html/stumble_2php_2style_8php.html b/doc/html/stumble_2php_2style_8php.html
new file mode 100644
index 000000000..57672ce6a
--- /dev/null
+++ b/doc/html/stumble_2php_2style_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/stumble/php/style.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('stumble_2php_2style_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">style.php File Reference</div> </div>
+</div><!--header-->
+<div class="contents">
+</div><!-- contents -->
+</div><!-- doc-content -->
+
diff --git a/doc/html/stumble_2php_2theme_8php.html b/doc/html/stumble_2php_2theme_8php.html
new file mode 100644
index 000000000..1d04d981d
--- /dev/null
+++ b/doc/html/stumble_2php_2theme_8php.html
@@ -0,0 +1,144 @@
+<!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/stumble/php/theme.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('stumble_2php_2theme_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">theme.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:a71db9eff6289e0ee47771c37c01d6753"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="stumble_2php_2theme_8php.html#a71db9eff6289e0ee47771c37c01d6753">stumble_init</a> (&amp;$a)</td></tr>
+<tr class="separator:a71db9eff6289e0ee47771c37c01d6753"><td class="memSeparator" colspan="2">&#160;</td></tr>
+</table>
+<h2 class="groupheader">Function Documentation</h2>
+<a class="anchor" id="a71db9eff6289e0ee47771c37c01d6753"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">stumble_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">
+<ul>
+<li>Name: Stumble</li>
+<li>Description: A Tumblr-like theme based on redbasic</li>
+<li>Version: 1.0</li>
+<li>Author: Sean Tilley</li>
+<li>Compat: Red [*] </li>
+</ul>
+
+</div>
+</div>
+</div><!-- contents -->
+</div><!-- doc-content -->
+
diff --git a/doc/html/stumble_2php_2theme_8php.js b/doc/html/stumble_2php_2theme_8php.js
new file mode 100644
index 000000000..88ddab748
--- /dev/null
+++ b/doc/html/stumble_2php_2theme_8php.js
@@ -0,0 +1,4 @@
+var stumble_2php_2theme_8php =
+[
+ [ "stumble_init", "stumble_2php_2theme_8php.html#a71db9eff6289e0ee47771c37c01d6753", null ]
+]; \ No newline at end of file
diff --git a/doc/html/suckerberg_2php_2style_8php.html b/doc/html/suckerberg_2php_2style_8php.html
new file mode 100644
index 000000000..97bb9bdec
--- /dev/null
+++ b/doc/html/suckerberg_2php_2style_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/suckerberg/php/style.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('suckerberg_2php_2style_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">style.php File Reference</div> </div>
+</div><!--header-->
+<div class="contents">
+</div><!-- contents -->
+</div><!-- doc-content -->
+
diff --git a/doc/html/suckerberg_2php_2theme_8php.html b/doc/html/suckerberg_2php_2theme_8php.html
new file mode 100644
index 000000000..bca524b6e
--- /dev/null
+++ b/doc/html/suckerberg_2php_2theme_8php.html
@@ -0,0 +1,144 @@
+<!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/suckerberg/php/theme.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('suckerberg_2php_2theme_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">theme.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:a4104fce7d5fb71d15ed811978b628fc8"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="suckerberg_2php_2theme_8php.html#a4104fce7d5fb71d15ed811978b628fc8">suckerberg_init</a> (&amp;$a)</td></tr>
+<tr class="separator:a4104fce7d5fb71d15ed811978b628fc8"><td class="memSeparator" colspan="2">&#160;</td></tr>
+</table>
+<h2 class="groupheader">Function Documentation</h2>
+<a class="anchor" id="a4104fce7d5fb71d15ed811978b628fc8"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">suckerberg_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">
+<ul>
+<li>Name: Suckerberg</li>
+<li>Description: A Facebook-like theme based on redbasic</li>
+<li>Version: 1.0</li>
+<li>Author: Sean Tilley</li>
+<li>Compat: Red [*] </li>
+</ul>
+
+</div>
+</div>
+</div><!-- contents -->
+</div><!-- doc-content -->
+
diff --git a/doc/html/suckerberg_2php_2theme_8php.js b/doc/html/suckerberg_2php_2theme_8php.js
new file mode 100644
index 000000000..3ab17833a
--- /dev/null
+++ b/doc/html/suckerberg_2php_2theme_8php.js
@@ -0,0 +1,4 @@
+var suckerberg_2php_2theme_8php =
+[
+ [ "suckerberg_init", "suckerberg_2php_2theme_8php.html#a4104fce7d5fb71d15ed811978b628fc8", null ]
+]; \ No newline at end of file
diff --git a/doc/html/taxonomy_8php.html b/doc/html/taxonomy_8php.html
index dc9c3d02c..2336f9d83 100644
--- a/doc/html/taxonomy_8php.html
+++ b/doc/html/taxonomy_8php.html
@@ -134,6 +134,10 @@ Functions</h2></td></tr>
<tr class="separator:a088371f4bc19155b2291508f5cd63332"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ac21d1dff16d569e7d110167aea4e63c2"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="taxonomy_8php.html#ac21d1dff16d569e7d110167aea4e63c2">tagblock</a> ($link, $uid, $count=0, $authors= '', $flags=0, $restrict=0, $type=<a class="el" href="boot_8php.html#a2750985ec445617d7e82ae3098c91e3f">TERM_HASHTAG</a>)</td></tr>
<tr class="separator:ac21d1dff16d569e7d110167aea4e63c2"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a83f0a60f9e0c07d8451dc5be95b17287"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="taxonomy_8php.html#a83f0a60f9e0c07d8451dc5be95b17287">wtagblock</a> ($uid, $count=0, $authors= '', $flags=0, $restrict=0, $type=<a class="el" href="boot_8php.html#a2750985ec445617d7e82ae3098c91e3f">TERM_HASHTAG</a>)</td></tr>
+<tr class="separator:a83f0a60f9e0c07d8451dc5be95b17287"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:aa8f8a1ff85daef046298e93c83e7a1b4"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="taxonomy_8php.html#aa8f8a1ff85daef046298e93c83e7a1b4">catblock</a> ($uid, $count=0, $authors= '', $flags=0, $restrict=0, $type=<a class="el" href="boot_8php.html#af33d1b2e98a1e21af672005525d46dfe">TERM_CATEGORY</a>)</td></tr>
+<tr class="separator:aa8f8a1ff85daef046298e93c83e7a1b4"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a599ee71dd3194c8127b00dabec77abc1"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="taxonomy_8php.html#a599ee71dd3194c8127b00dabec77abc1">dir_tagblock</a> ($link, $r)</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>
@@ -144,6 +148,58 @@ Functions</h2></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="aa8f8a1ff85daef046298e93c83e7a1b4"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">catblock </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>$count</em> = <code>0</code>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">&#160;</td>
+ <td class="paramname"><em>$authors</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>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">&#160;</td>
+ <td class="paramname"><em>$restrict</em> = <code>0</code>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">&#160;</td>
+ <td class="paramname"><em>$type</em> = <code><a class="el" href="boot_8php.html#af33d1b2e98a1e21af672005525d46dfe">TERM_CATEGORY</a></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#af919de8e7e2ba8192a65fadc72a2c8b5">widget_catcloud_wall()</a>.</p>
+
+</div>
+</div>
<a class="anchor" id="a088371f4bc19155b2291508f5cd63332"></a>
<div class="memitem">
<div class="memproto">
@@ -296,7 +352,7 @@ Functions</h2></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="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="text_8php.html#a3a0c432a484c17d7720b8ba2d6bfdd59">format_hashtags()</a>, <a class="el" href="text_8php.html#ad8c6e13d6accf057136c5f30a23a5f08">format_mentions()</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="events_8php.html#a1d293fb217ae6bc9e3858c4b32e363ec">events_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="text_8php.html#a3a0c432a484c17d7720b8ba2d6bfdd59">format_hashtags()</a>, <a class="el" href="text_8php.html#ad8c6e13d6accf057136c5f30a23a5f08">format_mentions()</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>
@@ -464,7 +520,7 @@ Functions</h2></td></tr>
</table>
</div><div class="memdoc">
-<p>Referenced by <a class="el" href="taxonomy_8php.html#ac21d1dff16d569e7d110167aea4e63c2">tagblock()</a>, and <a class="el" href="widgets_8php.html#a6dbc227aac750774284ee39c45f0a200">widget_tagcloud()</a>.</p>
+<p>Referenced by <a class="el" href="taxonomy_8php.html#aa8f8a1ff85daef046298e93c83e7a1b4">catblock()</a>, <a class="el" href="taxonomy_8php.html#ac21d1dff16d569e7d110167aea4e63c2">tagblock()</a>, <a class="el" href="widgets_8php.html#a6dbc227aac750774284ee39c45f0a200">widget_tagcloud()</a>, and <a class="el" href="taxonomy_8php.html#a83f0a60f9e0c07d8451dc5be95b17287">wtagblock()</a>.</p>
</div>
</div>
@@ -522,8 +578,6 @@ Functions</h2></td></tr>
</table>
</div><div class="memdoc">
-<p>Referenced by <a class="el" href="widgets_8php.html#ae4ced69d83dbdd9e6b51660d9eba8653">widget_tagcloud_wall()</a>.</p>
-
</div>
</div>
<a class="anchor" id="aaeded36bcc983b35d9205fe5b6c18c43"></a>
@@ -586,6 +640,58 @@ Functions</h2></td></tr>
</div>
</div>
+<a class="anchor" id="a83f0a60f9e0c07d8451dc5be95b17287"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">wtagblock </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>$count</em> = <code>0</code>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">&#160;</td>
+ <td class="paramname"><em>$authors</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>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">&#160;</td>
+ <td class="paramname"><em>$restrict</em> = <code>0</code>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">&#160;</td>
+ <td class="paramname"><em>$type</em> = <code><a class="el" href="boot_8php.html#a2750985ec445617d7e82ae3098c91e3f">TERM_HASHTAG</a></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#ae4ced69d83dbdd9e6b51660d9eba8653">widget_tagcloud_wall()</a>.</p>
+
+</div>
+</div>
</div><!-- contents -->
</div><!-- doc-content -->
diff --git a/doc/html/taxonomy_8php.js b/doc/html/taxonomy_8php.js
index 24b5fb426..bb390422e 100644
--- a/doc/html/taxonomy_8php.js
+++ b/doc/html/taxonomy_8php.js
@@ -1,5 +1,6 @@
var taxonomy_8php =
[
+ [ "catblock", "taxonomy_8php.html#aa8f8a1ff85daef046298e93c83e7a1b4", null ],
[ "dir_tagadelic", "taxonomy_8php.html#a088371f4bc19155b2291508f5cd63332", null ],
[ "dir_tagblock", "taxonomy_8php.html#a599ee71dd3194c8127b00dabec77abc1", null ],
[ "file_tag_decode", "taxonomy_8php.html#a08df5164926d2b31b8e9fcfe919de2b6", null ],
@@ -14,5 +15,6 @@ var taxonomy_8php =
[ "tagadelic", "taxonomy_8php.html#aaf90ba8b839d6459065f39a4f1109b8a", null ],
[ "tagblock", "taxonomy_8php.html#ac21d1dff16d569e7d110167aea4e63c2", null ],
[ "tags_sort", "taxonomy_8php.html#aaeded36bcc983b35d9205fe5b6c18c43", null ],
- [ "term_query", "taxonomy_8php.html#a7a913d19c77610da689be48fbbf6734c", null ]
+ [ "term_query", "taxonomy_8php.html#a7a913d19c77610da689be48fbbf6734c", null ],
+ [ "wtagblock", "taxonomy_8php.html#a83f0a60f9e0c07d8451dc5be95b17287", null ]
]; \ No newline at end of file
diff --git a/doc/html/text_8php.html b/doc/html/text_8php.html
index d2086b669..71fca21d1 100644
--- a/doc/html/text_8php.html
+++ b/doc/html/text_8php.html
@@ -142,14 +142,18 @@ Functions</h2></td></tr>
<tr class="memitem:a98fd99dee3da8cf4c148dc04efe782ee"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="text_8php.html#a98fd99dee3da8cf4c148dc04efe782ee">perms2str</a> ($p)</td></tr>
<tr class="separator:a98fd99dee3da8cf4c148dc04efe782ee"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:aa6b0aa8afbeab50d1a3058ad21acb74e"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="text_8php.html#aa6b0aa8afbeab50d1a3058ad21acb74e">item_message_id</a> ()</td></tr>
+<tr class="memdesc:aa6b0aa8afbeab50d1a3058ad21acb74e"><td class="mdescLeft">&#160;</td><td class="mdescRight">Generate a guaranteed unique (for this domain) item ID for ATOM. <a href="#aa6b0aa8afbeab50d1a3058ad21acb74e">More...</a><br/></td></tr>
<tr class="separator:aa6b0aa8afbeab50d1a3058ad21acb74e"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:aa5528f41533927e1bd2da3618a74a6d7"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="text_8php.html#aa5528f41533927e1bd2da3618a74a6d7">photo_new_resource</a> ()</td></tr>
+<tr class="memdesc:aa5528f41533927e1bd2da3618a74a6d7"><td class="mdescLeft">&#160;</td><td class="mdescRight">Generate a guaranteed unique photo ID. <a href="#aa5528f41533927e1bd2da3618a74a6d7">More...</a><br/></td></tr>
<tr class="separator:aa5528f41533927e1bd2da3618a74a6d7"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a95fd2f8f23a1948414a03ebc963bac57"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="text_8php.html#a95fd2f8f23a1948414a03ebc963bac57">attribute_contains</a> ($attr, $s)</td></tr>
<tr class="separator:a95fd2f8f23a1948414a03ebc963bac57"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a030fa5ecc64168af0c4f44897a9bce63"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="text_8php.html#a030fa5ecc64168af0c4f44897a9bce63">logger</a> ($msg, $level=0)</td></tr>
+<tr class="memdesc:a030fa5ecc64168af0c4f44897a9bce63"><td class="mdescLeft">&#160;</td><td class="mdescRight">Logging function for <a class="el" href="namespaceRedMatrix.html" title="Class Import.">RedMatrix</a>. <a href="#a030fa5ecc64168af0c4f44897a9bce63">More...</a><br/></td></tr>
<tr class="separator:a030fa5ecc64168af0c4f44897a9bce63"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a0a1f7c0e97f9ecbebf3e5834582b014c"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="text_8php.html#a0a1f7c0e97f9ecbebf3e5834582b014c">dlogger</a> ($msg, $level=0)</td></tr>
+<tr class="memdesc:a0a1f7c0e97f9ecbebf3e5834582b014c"><td class="mdescLeft">&#160;</td><td class="mdescRight">This is a special logging facility for developers. <a href="#a0a1f7c0e97f9ecbebf3e5834582b014c">More...</a><br/></td></tr>
<tr class="separator:a0a1f7c0e97f9ecbebf3e5834582b014c"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a8b0a799341b1fc4cba2c3ede3e3fc9b6"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="text_8php.html#a8b0a799341b1fc4cba2c3ede3e3fc9b6">profiler</a> ($t1, $t2, $label)</td></tr>
<tr class="separator:a8b0a799341b1fc4cba2c3ede3e3fc9b6"><td class="memSeparator" colspan="2">&#160;</td></tr>
@@ -181,7 +185,7 @@ Functions</h2></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="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#ae97836b0547953be182a2334c9c91d3c">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>
@@ -197,7 +201,7 @@ Functions</h2></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="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#ae97836b0547953be182a2334c9c91d3c">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>
<tr class="separator:a63fb21c0bed2fc72eef2c1471ac42b63"><td class="memSeparator" colspan="2">&#160;</td></tr>
@@ -217,6 +221,10 @@ Functions</h2></td></tr>
<tr class="separator:ad8c6e13d6accf057136c5f30a23a5f08"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a4e4d42b0a805148d9f9a92bcac89bf91"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="text_8php.html#a4e4d42b0a805148d9f9a92bcac89bf91">format_filer</a> (&amp;$item)</td></tr>
<tr class="separator:a4e4d42b0a805148d9f9a92bcac89bf91"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ae0333c304ec5b4b72e66bb2933fa7357"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="text_8php.html#ae0333c304ec5b4b72e66bb2933fa7357">generate_map</a> ($coord)</td></tr>
+<tr class="separator:ae0333c304ec5b4b72e66bb2933fa7357"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:af5eb4a9c1599764f80c5bc71e0125d4b"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="text_8php.html#af5eb4a9c1599764f80c5bc71e0125d4b">generate_named_map</a> ($location)</td></tr>
+<tr class="separator:af5eb4a9c1599764f80c5bc71e0125d4b"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ae4df74296fbe55051ed3c035e55205e5"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="text_8php.html#ae4df74296fbe55051ed3c035e55205e5">prepare_body</a> (&amp;$item, $attach=false)</td></tr>
<tr class="separator:ae4df74296fbe55051ed3c035e55205e5"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:afe54312607d92f7ce9593f5760831f80"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="text_8php.html#afe54312607d92f7ce9593f5760831f80">prepare_text</a> ($text, $content_type= 'text/<a class="el" href="bbcode_8php.html#a009f61aaf78771737ed0765c8463911b">bbcode</a>')</td></tr>
@@ -273,8 +281,8 @@ Functions</h2></td></tr>
<tr class="separator:a0c65597bb4aed3a039eb795ff540e5e3"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a436a8de00c942364c2d0fcfc7e1f4b5a"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="text_8php.html#a436a8de00c942364c2d0fcfc7e1f4b5a">ids_to_querystr</a> ($arr, $idx= 'id')</td></tr>
<tr class="separator:a436a8de00c942364c2d0fcfc7e1f4b5a"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:a36a2e5d418ee81140f25c4233cfecd1f"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="text_8php.html#a36a2e5d418ee81140f25c4233cfecd1f">xchan_query</a> (&amp;$items, $abook=true)</td></tr>
-<tr class="separator:a36a2e5d418ee81140f25c4233cfecd1f"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a905c3895feb6f276df23f07f16f9bb52"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="text_8php.html#a905c3895feb6f276df23f07f16f9bb52">xchan_query</a> (&amp;$items, $abook=true, $effective_uid=0)</td></tr>
+<tr class="separator:a905c3895feb6f276df23f07f16f9bb52"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a543447c5ed766535221e2d9636b379ee"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="text_8php.html#a543447c5ed766535221e2d9636b379ee">xchan_mail_query</a> (&amp;$item)</td></tr>
<tr class="separator:a543447c5ed766535221e2d9636b379ee"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ace3c98538c63e09b70a363210b414112"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="text_8php.html#ace3c98538c63e09b70a363210b414112">find_xchan_in_array</a> ($xchan, $arr)</td></tr>
@@ -295,6 +303,10 @@ Functions</h2></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>
+<tr class="memitem:a3ba47b4dd1248e7e51095572e7b814dc"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="text_8php.html#a3ba47b4dd1248e7e51095572e7b814dc">extra_query_args</a> ()</td></tr>
+<tr class="separator:a3ba47b4dd1248e7e51095572e7b814dc"><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="text_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>
</table><table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="var-members"></a>
Variables</h2></td></tr>
@@ -328,7 +340,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="conversation_8php.html#affea1afb3f32ca41e966c8ddb4204d81">conversation()</a>, <a class="el" href="diaspora_8php.html#a131abd521b218d6ae6f7d2917d8b2605">diaspora_process_outbound()</a>, <a class="el" href="items_8php.html#a5e5be7bf1f8257dec0b2647e60a3f3f1">get_atom_elements()</a>, <a class="el" href="text_8php.html#ac1dbf2e37e8069bea2c0f557fdbf203e">item_post_type()</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="zot_8php.html#aad25a3fe0e1566121d6fb8222979bc10">remove_community_tag()</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="conversation_8php.html#affea1afb3f32ca41e966c8ddb4204d81">conversation()</a>, <a class="el" href="items_8php.html#a5e5be7bf1f8257dec0b2647e60a3f3f1">get_atom_elements()</a>, <a class="el" href="text_8php.html#ac1dbf2e37e8069bea2c0f557fdbf203e">item_post_type()</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="zot_8php.html#aad25a3fe0e1566121d6fb8222979bc10">remove_community_tag()</a>, and <a class="el" href="conversation_8php.html#a7eeaaf44506815576f3bd80053ef52c3">visible_activity()</a>.</p>
</div>
</div>
@@ -368,7 +380,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="mod_2message_8php.html#ac72dfed3ce08fcb331d66b37edc6e15f">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="mod_2directory_8php.html#aac79396570d759da2efac24fcedf5b44">directory_content()</a>, <a class="el" href="home_8php.html#a6e3dbf78f4ed74ab2577de221190b33f">home_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>
@@ -459,7 +471,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="diaspora_8php.html#a849754ec369e1a60fadae5c14584ca36">diaspora_decode()</a>, <a class="el" href="items_8php.html#a5e5be7bf1f8257dec0b2647e60a3f3f1">get_atom_elements()</a>, <a class="el" href="items_8php.html#a536d0313b6ffe33b9d2490c4e25c5361">get_item_elements()</a>, <a class="el" href="mod_2group_8php.html#a07a64f6c65b0080d8190b3d9728a7a83">group_content()</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#a528e97ca5d69c3b7f35c5d954afde315">import_xchan()</a>, <a class="el" href="mod_2oembed_8php.html#a9145025aaf057fb5d3f9f7011e5e1014">oembed_init()</a>, <a class="el" href="crypto_8php.html#a798368843cdd9bb08386b48e53e29e8c">pemtome()</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="crypto_8php.html#a2a3fae7caca27f86d158eeaf69b6f287">pubrsatome()</a>, <a class="el" href="bb2diaspora_8php.html#ab61b4f8c065e97b151411858bb2f209a">share_unshield()</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>
+<p>Referenced by <a class="el" href="crypto_8php.html#aca7c3a574bfb6c6ef1f2403a56823914">aes_unencapsulate()</a>, <a class="el" href="items_8php.html#adc26e08aa61f5666da04ab5d2a9d68a6">consume_feed()</a>, <a class="el" href="contactgroup_8php.html#a18c7391b1b25debaf98c9dba639caab3">contactgroup_content()</a>, <a class="el" href="diaspora_8php.html#a849754ec369e1a60fadae5c14584ca36">diaspora_decode()</a>, <a class="el" href="items_8php.html#a5e5be7bf1f8257dec0b2647e60a3f3f1">get_atom_elements()</a>, <a class="el" href="items_8php.html#a536d0313b6ffe33b9d2490c4e25c5361">get_item_elements()</a>, <a class="el" href="mod_2group_8php.html#a07a64f6c65b0080d8190b3d9728a7a83">group_content()</a>, <a class="el" href="impel_8php.html#ab7db6fca43b42ea4332cb3e841b3cf7b">impel_init()</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#a528e97ca5d69c3b7f35c5d954afde315">import_xchan()</a>, <a class="el" href="mod_2oembed_8php.html#a9145025aaf057fb5d3f9f7011e5e1014">oembed_init()</a>, <a class="el" href="crypto_8php.html#a798368843cdd9bb08386b48e53e29e8c">pemtome()</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="crypto_8php.html#a2a3fae7caca27f86d158eeaf69b6f287">pubrsatome()</a>, <a class="el" href="bb2diaspora_8php.html#ab61b4f8c065e97b151411858bb2f209a">share_unshield()</a>, <a class="el" href="text_8php.html#a273156a6f5cddc6652ad656821cd5805">smile_unshield()</a>, <a class="el" href="zot_8php.html#ab15c04e7e5f44edf45ec50dd7d183254">sync_locations()</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>
@@ -487,7 +499,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="identity_8php.html#a345f4c943d84de502ec6e72d2c813945">create_identity()</a>, <a class="el" href="diaspora_8php.html#a849754ec369e1a60fadae5c14584ca36">diaspora_decode()</a>, <a class="el" href="diaspora_8php.html#a4901762cba5cd8dcdc57bdf285eefb1b">diaspora_msg_build()</a>, <a class="el" href="diaspora_8php.html#a586d5a3ba92d35cee14f879f290072aa">diaspora_pubmsg_build()</a>, <a class="el" href="boot_8php.html#aca5e42678e178c6b9034610d66666fd7">fix_system_urls()</a>, <a class="el" href="mod_2group_8php.html#a07a64f6c65b0080d8190b3d9728a7a83">group_content()</a>, <a class="el" href="identity_8php.html#a3570a4eb77332b292d394c4132cb8f03">identity_basic_export()</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="zot_8php.html#a0fc2211c5309d9f925ecc4115e3fdb75">make_xchan_hash()</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="crypto_8php.html#a9191447cc46f0b4eaba3273e313994d5">salmon_key()</a>, <a class="el" href="bb2diaspora_8php.html#ad033be99e87a2aaa05e569c68f30792d">share_shield()</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>, and <a class="el" href="zot_8php.html#ab22d67660702056bf3f4696dcebf5ce7">zot_new_uid()</a>.</p>
+<p>Referenced by <a class="el" href="crypto_8php.html#a2148d7aac7b30c720f7ebda7e9790286">aes_encapsulate()</a>, <a class="el" href="items_8php.html#adc26e08aa61f5666da04ab5d2a9d68a6">consume_feed()</a>, <a class="el" href="identity_8php.html#a345f4c943d84de502ec6e72d2c813945">create_identity()</a>, <a class="el" href="diaspora_8php.html#a849754ec369e1a60fadae5c14584ca36">diaspora_decode()</a>, <a class="el" href="diaspora_8php.html#a4901762cba5cd8dcdc57bdf285eefb1b">diaspora_msg_build()</a>, <a class="el" href="diaspora_8php.html#a586d5a3ba92d35cee14f879f290072aa">diaspora_pubmsg_build()</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="boot_8php.html#aca5e42678e178c6b9034610d66666fd7">fix_system_urls()</a>, <a class="el" href="items_8php.html#a5e5be7bf1f8257dec0b2647e60a3f3f1">get_atom_elements()</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="identity_8php.html#afaedbc8e2d2a70ec8b006162baac5249">identity_basic_export()</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="zot_8php.html#a0fc2211c5309d9f925ecc4115e3fdb75">make_xchan_hash()</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="crypto_8php.html#a9191447cc46f0b4eaba3273e313994d5">salmon_key()</a>, <a class="el" href="bb2diaspora_8php.html#ad033be99e87a2aaa05e569c68f30792d">share_shield()</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#a084c581d534e7e3b759488b46602288f">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>
@@ -559,7 +571,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="connections_8php.html#aec2e457420fce3e3bf6a9f48e36df25c">connections_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="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#afe5b2f38d8b803edb0d7ec5fa2868db0">like_puller()</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>, <a class="el" href="viewconnections_8php.html#ab6c4d983e97b3a8a879567ff76507776">viewconnections_content()</a>, and <a class="el" href="widgets_8php.html#a0d404276fedc59f5038cf5c085028326">widget_suggestions()</a>.</p>
+<p>Referenced by <a class="el" href="classItem.html#abcdb0ea9bcd1576bc99bba9b8f700bb8">Item\check_wall_to_wall()</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="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#afe5b2f38d8b803edb0d7ec5fa2868db0">like_puller()</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>, <a class="el" href="viewconnections_8php.html#ab6c4d983e97b3a8a879567ff76507776">viewconnections_content()</a>, and <a class="el" href="widgets_8php.html#a0d404276fedc59f5038cf5c085028326">widget_suggestions()</a>.</p>
</div>
</div>
@@ -577,7 +589,7 @@ Variables</h2></td></tr>
</table>
</div><div class="memdoc">
-<p>Referenced by <a class="el" href="identity_8php.html#a345f4c943d84de502ec6e72d2c813945">create_identity()</a>, and <a class="el" href="new__channel_8php.html#a1ad7f99e4366a32942c6b954aba3a164">new_channel_init()</a>.</p>
+<p>Referenced by <a class="el" href="identity_8php.html#a345f4c943d84de502ec6e72d2c813945">create_identity()</a>, <a class="el" href="dimport_8php.html#a581f040717941ce3e1868b0b5dceefd1">foofoo()</a>, and <a class="el" href="new__channel_8php.html#a1ad7f99e4366a32942c6b954aba3a164">new_channel_init()</a>.</p>
</div>
</div>
@@ -593,6 +605,8 @@ Variables</h2></td></tr>
</tr>
</table>
</div><div class="memdoc">
+<p>@ Return a div to clear floats.</p>
+<dl class="section return"><dt>Returns</dt><dd>string </dd></dl>
<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>
@@ -629,7 +643,7 @@ Variables</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#aea356409ba69f9de412298c998595dd2">cal()</a>, <a class="el" href="events_8php.html#a1d293fb217ae6bc9e3858c4b32e363ec">events_content()</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="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#aa2d3caa2f27720762b5c729e07df40fb">list_post_dates()</a>, <a class="el" href="ping_8php.html#a77217b1b190b4c5d8770867b45f0c0a1">ping_init()</a>, and <a class="el" href="items_8php.html#ad2abb4644ff1f20fefbc80326fe01cf0">posted_dates()</a>.</p>
+<p>Referenced by <a class="el" href="identity_8php.html#aa870d2c1f558cfd52bef05bc124e8fa4">advanced_profile()</a>, <a class="el" href="datetime_8php.html#aea356409ba69f9de412298c998595dd2">cal()</a>, <a class="el" href="events_8php.html#a1d293fb217ae6bc9e3858c4b32e363ec">events_content()</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="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#ab33fa9756aaa5f39a6104d57a62baf00">list_post_dates()</a>, <a class="el" href="ping_8php.html#a77217b1b190b4c5d8770867b45f0c0a1">ping_init()</a>, and <a class="el" href="items_8php.html#ad2abb4644ff1f20fefbc80326fe01cf0">posted_dates()</a>.</p>
</div>
</div>
@@ -674,6 +688,17 @@ Variables</h2></td></tr>
</table>
</div><div class="memdoc">
+<p>This is a special logging facility for developers. </p>
+<p>It allows one to target specific things to trace/debug and is identical to <a class="el" href="text_8php.html#a030fa5ecc64168af0c4f44897a9bce63" title="Logging function for RedMatrix.">logger()</a> with the exception of the log filename. This allows one to isolate specific calls while allowing <a class="el" href="text_8php.html#a030fa5ecc64168af0c4f44897a9bce63" title="Logging function for RedMatrix.">logger()</a> to paint a bigger picture of overall activity and capture more detail.</p>
+<p>If you find <a class="el" href="text_8php.html#a0a1f7c0e97f9ecbebf3e5834582b014c" title="This is a special logging facility for developers.">dlogger()</a> calls in checked in code, you are free to remove them - so as to provide a noise-free development environment which responds to events you are targetting personally.</p>
+<dl class="params"><dt>Parameters</dt><dd>
+ <table class="params">
+ <tr><td class="paramtype">string</td><td class="paramname">$msg</td><td>Message to log </td></tr>
+ <tr><td class="paramtype">int</td><td class="paramname">$level</td><td>A log level. </td></tr>
+ </table>
+ </dd>
+</dl>
+
</div>
</div>
<a class="anchor" id="aa5148a0dfea2a1ca64c3d52f10aa2d64"></a>
@@ -698,7 +723,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="include_2apps_8php.html#a15626f24069c18816f7cdaf4735f58f9">app_store()</a>, <a class="el" href="include_2apps_8php.html#aeab6a62d2f3dfaa86ed043a006305f46">app_update()</a>, <a class="el" href="appman_8php.html#a2979acbe47ffaecfa19b9eabfbfbde39">appman_post()</a>, <a class="el" href="include_2bookmarks_8php.html#aef1cb2968c41c759f2d106e1088ca323">bookmark_add()</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#a5e5be7bf1f8257dec0b2647e60a3f3f1">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="pdledit_8php.html#a81da3c955d0e3db55d148a31483104c7">pdledit_post()</a>, <a class="el" href="socgraph_8php.html#a5ef8bef37161df53718a21e93d02fbd6">poco_load()</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="rbmark_8php.html#a43fec4960b50926251574762cc491f76">rbmark_content()</a>, <a class="el" href="rbmark_8php.html#ac5a66aa8599fa5dc702bae396d8d1f8c">rbmark_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="include_2apps_8php.html#a15626f24069c18816f7cdaf4735f58f9">app_store()</a>, <a class="el" href="include_2apps_8php.html#aeab6a62d2f3dfaa86ed043a006305f46">app_update()</a>, <a class="el" href="appman_8php.html#a2979acbe47ffaecfa19b9eabfbfbde39">appman_post()</a>, <a class="el" href="include_2bookmarks_8php.html#aef1cb2968c41c759f2d106e1088ca323">bookmark_add()</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#a5e5be7bf1f8257dec0b2647e60a3f3f1">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="pdledit_8php.html#a81da3c955d0e3db55d148a31483104c7">pdledit_post()</a>, <a class="el" href="socgraph_8php.html#a5ef8bef37161df53718a21e93d02fbd6">poco_load()</a>, <a class="el" href="items_8php.html#a410f9c743877c125ca06312373346903">post_activity_item()</a>, <a class="el" href="profiles_8php.html#ab0362c81b1d3b0b12a772b9fac446e04">profiles_post()</a>, <a class="el" href="rbmark_8php.html#a43fec4960b50926251574762cc491f76">rbmark_content()</a>, <a class="el" href="rbmark_8php.html#ac5a66aa8599fa5dc702bae396d8d1f8c">rbmark_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>
@@ -720,6 +745,23 @@ Variables</h2></td></tr>
</div>
</div>
+<a class="anchor" id="a3ba47b4dd1248e7e51095572e7b814dc"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">extra_query_args </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#aec2e457420fce3e3bf6a9f48e36df25c">connections_content()</a>, <a class="el" href="mod_2directory_8php.html#aac79396570d759da2efac24fcedf5b44">directory_content()</a>, and <a class="el" href="mod_2photos_8php.html#aa87382611a66ec5effdb2d78f13f5812">photos_content()</a>.</p>
+
+</div>
+</div>
<a class="anchor" id="a8d8c4a11e53461caca21181ebd72daca"></a>
<div class="memitem">
<div class="memproto">
@@ -776,7 +818,7 @@ Variables</h2></td></tr>
</table>
</div><div class="memdoc">
-<p>Referenced by <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#a543447c5ed766535221e2d9636b379ee">xchan_mail_query()</a>, and <a class="el" href="text_8php.html#a36a2e5d418ee81140f25c4233cfecd1f">xchan_query()</a>.</p>
+<p>Referenced by <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#a543447c5ed766535221e2d9636b379ee">xchan_mail_query()</a>, and <a class="el" href="text_8php.html#a905c3895feb6f276df23f07f16f9bb52">xchan_query()</a>.</p>
</div>
</div>
@@ -880,6 +922,42 @@ Variables</h2></td></tr>
</div>
</div>
+<a class="anchor" id="ae0333c304ec5b4b72e66bb2933fa7357"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">generate_map </td>
+ <td>(</td>
+ <td class="paramtype">&#160;</td>
+ <td class="paramname"><em>$coord</em></td><td>)</td>
+ <td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Referenced by <a class="el" href="bbcode_8php.html#a02d5f2434e7bb5cf683e52a9b4787f24">bb_map_coords()</a>, and <a class="el" href="text_8php.html#ae4df74296fbe55051ed3c035e55205e5">prepare_body()</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="af5eb4a9c1599764f80c5bc71e0125d4b"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">generate_named_map </td>
+ <td>(</td>
+ <td class="paramtype">&#160;</td>
+ <td class="paramname"><em>$location</em></td><td>)</td>
+ <td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Referenced by <a class="el" href="bbcode_8php.html#a7cb403fd1c36d7376c2f3932a1ceb54d">bb_map_location()</a>.</p>
+
+</div>
+</div>
<a class="anchor" id="a76d1b3435c067978d7b484c45f56472b"></a>
<div class="memitem">
<div class="memproto">
@@ -1010,7 +1088,71 @@ Variables</h2></td></tr>
</table>
</div><div class="memdoc">
-<p>Referenced by <a class="el" href="diaspora_8php.html#a0fb2abe304aae19efc040a5e6b917829">diaspora_comment()</a>, <a class="el" href="diaspora_8php.html#a20b968d64ef26afe5cb0cc75a7570a31">diaspora_post()</a>, <a class="el" href="diaspora_8php.html#a2bf43f6b5890897f425ef4325d34b007">diaspora_reshare()</a>, <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>
+<p>Referenced by <a class="el" href="identity_8php.html#aa870d2c1f558cfd52bef05bc124e8fa4">advanced_profile()</a>, <a class="el" href="diaspora_8php.html#a0fb2abe304aae19efc040a5e6b917829">diaspora_comment()</a>, <a class="el" href="diaspora_8php.html#a20b968d64ef26afe5cb0cc75a7570a31">diaspora_post()</a>, <a class="el" href="diaspora_8php.html#a2bf43f6b5890897f425ef4325d34b007">diaspora_reshare()</a>, <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>
+<a class="anchor" id="aa22feef4de326e1d7078dedd892e615c"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">handle_tag </td>
+ <td>(</td>
+ <td class="paramtype">&#160;</td>
+ <td class="paramname"><em>$a</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">&amp;&#160;</td>
+ <td class="paramname"><em>$body</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">&amp;&#160;</td>
+ <td class="paramname"><em>$access_tag</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">&amp;&#160;</td>
+ <td class="paramname"><em>$str_tags</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">&#160;</td>
+ <td class="paramname"><em>$profile_uid</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">&#160;</td>
+ <td class="paramname"><em>$tag</em>&#160;</td>
+ </tr>
+ <tr>
+ <td></td>
+ <td>)</td>
+ <td></td><td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+<p>This function removes the tag $tag from the text $body and replaces it with the appropiate link.</p>
+<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">$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>
+ </table>
+ </dd>
+</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="identity_8php.html#aa870d2c1f558cfd52bef05bc124e8fa4">advanced_profile()</a>, <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>
@@ -1056,7 +1198,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="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="home_8php.html#a6e3dbf78f4ed74ab2577de221190b33f">home_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#a1cf89557f32d5dfbe8bd90448dc1aa92">zot_feed()</a>.</p>
</div>
</div>
@@ -1084,7 +1226,7 @@ Variables</h2></td></tr>
</table>
</div><div class="memdoc">
-<p>Referenced by <a class="el" href="dirprofile_8php.html#a3e1d30d3d93863ff5615f2df4ac7f052">dirprofile_init()</a>, and <a class="el" href="zot_8php.html#a20750dd2c36961013fd382fb34e1366c">import_directory_profile()</a>.</p>
+<p>Referenced by <a class="el" href="mod_2directory_8php.html#aac79396570d759da2efac24fcedf5b44">directory_content()</a>, and <a class="el" href="zot_8php.html#a20750dd2c36961013fd382fb34e1366c">import_directory_profile()</a>.</p>
</div>
</div>
@@ -1119,7 +1261,11 @@ Variables</h2></td></tr>
</table>
</div><div class="memdoc">
-<p>Referenced by <a class="el" href="event_8php.html#a7378e839ac3de9d55579eb3ec48eaf92">event_store_item()</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>
+<p>Generate a guaranteed unique (for this domain) item ID for ATOM. </p>
+<p>Safe from birthday paradox.</p>
+<dl class="section return"><dt>Returns</dt><dd>string a unique id </dd></dl>
+
+<p>Referenced by <a class="el" href="event_8php.html#a7378e839ac3de9d55579eb3ec48eaf92">event_store_item()</a>, <a class="el" href="impel_8php.html#ab7db6fca43b42ea4332cb3e841b3cf7b">impel_init()</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>
@@ -1179,7 +1325,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="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>
+<p>Referenced by <a class="el" href="diaspora_8php.html#aeb2bb78f620dbf51d9335e6eb7444f2c">diaspora_send_mail()</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#a56b0f5d2cb36eb8f4bfca84813884f86">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>
@@ -1272,7 +1418,7 @@ Variables</h2></td></tr>
<p>Compare two URLs to see if they are the same, but ignore slight but hopefully insignificant differences such as if one is https and the other isn't, or if one is www.something and the other isn't - and also ignore case differences.</p>
<p>Return true if the URLs match, otherwise false. </p>
-<p>Referenced by <a class="el" href="items_8php.html#adc26e08aa61f5666da04ab5d2a9d68a6">consume_feed()</a>, <a class="el" href="diaspora_8php.html#a938c7ee808d38725c0988fa6006805b9">diaspora_retraction()</a>, <a class="el" href="diaspora_8php.html#aa34d2748bb97e9e193cacd572f335055">diaspora_signed_retraction()</a>, <a class="el" href="items_8php.html#ab1bce4261bcf75ad62753b498a144d17">tag_deliver()</a>, <a class="el" href="items_8php.html#a88c6cf7649ac836fbbed82a7a0315110">tgroup_check()</a>, and <a class="el" href="identity_8php.html#a5b815330f3d177ab383af37a6c12e532">zid()</a>.</p>
+<p>Referenced by <a class="el" href="items_8php.html#adc26e08aa61f5666da04ab5d2a9d68a6">consume_feed()</a>, <a class="el" href="diaspora_8php.html#a938c7ee808d38725c0988fa6006805b9">diaspora_retraction()</a>, <a class="el" href="items_8php.html#ab1bce4261bcf75ad62753b498a144d17">tag_deliver()</a>, <a class="el" href="items_8php.html#a88c6cf7649ac836fbbed82a7a0315110">tgroup_check()</a>, and <a class="el" href="identity_8php.html#a5b815330f3d177ab383af37a6c12e532">zid()</a>.</p>
</div>
</div>
@@ -1292,7 +1438,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>, <a class="el" href="dirprofile_8php.html#a3e1d30d3d93863ff5615f2df4ac7f052">dirprofile_init()</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="mod_2directory_8php.html#aac79396570d759da2efac24fcedf5b44">directory_content()</a>, <a class="el" href="activities_8php.html#a80134e807719b3c54aba971958d2e132">profile_activity()</a>, and <a class="el" href="identity_8php.html#a432259b2cf5b6f59be53e71db9f2c7dc">profile_sidebar()</a>.</p>
</div>
</div>
@@ -1320,7 +1466,19 @@ Variables</h2></td></tr>
</table>
</div><div class="memdoc">
-<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#a5101d7eca5d6f387e5555f03fe249e33">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="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="bb2diaspora_8php.html#a2052c66bc1006a42b4c230320c269e47">bb2diaspora_itembody()</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#aef1cb2968c41c759f2d106e1088ca323">bookmark_add()</a>, <a class="el" href="mod_2bookmarks_8php.html#a6b7942f3d27e40f0f47c88704127b9b3">bookmarks_init()</a>, <a class="el" href="zot_8php.html#aa97b33b619dd7132a9274f852af6ceb5">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#a4e8af0f0525161da74583c04b8b03097">channel_remove()</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="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="connedit_8php.html#a234c48426b652bf4d37053f2af329ac5">connedit_post()</a>, <a class="el" href="items_8php.html#adc26e08aa61f5666da04ab5d2a9d68a6">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="classRedFile.html#aef71c9eaac7052be7dc8602eb12171e7">RedFile\delete()</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="diaspora_8php.html#a006731620a5242d410358b32678e48e3">diaspora_asphoto()</a>, <a class="el" href="diaspora_8php.html#a0fb2abe304aae19efc040a5e6b917829">diaspora_comment()</a>, <a class="el" href="diaspora_8php.html#adef30b6fac948baedcc7194d5d155b5f">diaspora_conversation()</a>, <a class="el" href="diaspora_8php.html#a849754ec369e1a60fadae5c14584ca36">diaspora_decode()</a>, <a class="el" href="diaspora_8php.html#a6f0a67b6b17503c125af32763be931b7">diaspora_dispatch()</a>, <a class="el" href="diaspora_8php.html#ab99505944728d46585b8312989de533d">diaspora_dispatch_public()</a>, <a class="el" href="diaspora_8php.html#a5ed66b910d7b0284f9b3ee04e72306ff">diaspora_handle_from_contact()</a>, <a class="el" href="diaspora_8php.html#a858f70153c384f8778082cf7843a19da">diaspora_is_blacklisted()</a>, <a class="el" href="diaspora_8php.html#a5d57518545baa31cf8a85a937a267681">diaspora_like()</a>, <a class="el" href="diaspora_8php.html#a7cff2f8f11044c1b3a360f20e1bbee46">diaspora_message()</a>, <a class="el" href="diaspora_8php.html#a4901762cba5cd8dcdc57bdf285eefb1b">diaspora_msg_build()</a>, <a class="el" href="diaspora_8php.html#a71fe9bb66626b4197ae018a230778bb2">diaspora_photo()</a>, <a class="el" href="diaspora_8php.html#a20b968d64ef26afe5cb0cc75a7570a31">diaspora_post()</a>, <a class="el" href="diaspora_8php.html#a131abd521b218d6ae6f7d2917d8b2605">diaspora_process_outbound()</a>, <a class="el" href="diaspora_8php.html#a900abf51398b2ef26cd2cd31c52f1b0f">diaspora_profile()</a>, <a class="el" href="diaspora_8php.html#a586d5a3ba92d35cee14f879f290072aa">diaspora_pubmsg_build()</a>, <a class="el" href="diaspora_8php.html#ac1ab782a34552a7c6b4dc961754ed598">diaspora_request()</a>, <a class="el" href="diaspora_8php.html#a2bf43f6b5890897f425ef4325d34b007">diaspora_reshare()</a>, <a class="el" href="diaspora_8php.html#af4698b165766f83d89ec1ea964bc92cc">diaspora_send_followup()</a>, <a class="el" href="diaspora_8php.html#ae6f52efd81fe515cd9912bc8293abf5b">diaspora_send_images()</a>, <a class="el" href="diaspora_8php.html#aeb2bb78f620dbf51d9335e6eb7444f2c">diaspora_send_mail()</a>, <a class="el" href="diaspora_8php.html#a0b3628a5e53332c3d3196b689fe2b94d">diaspora_send_relay()</a>, <a class="el" href="diaspora_8php.html#a33ae0c4606a7df4d801c05507d87f668">diaspora_send_status()</a>, <a class="el" href="diaspora_8php.html#af3a7f9879c14fec761dcc5563fb39bac">diaspora_share()</a>, <a class="el" href="diaspora_8php.html#aa34d2748bb97e9e193cacd572f335055">diaspora_signed_retraction()</a>, <a class="el" href="diaspora_8php.html#aa704d6aa2ac77be345c0f501168e6e56">diaspora_transmit()</a>, <a class="el" href="dirsearch_8php.html#a7d4cd9890d5ed23c3efc58e2a778a305">dir_parse_query()</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="include_2network_8php.html#a5176176ddc1906d91f186df6fbd87b48">discover_by_url()</a>, <a class="el" href="include_2network_8php.html#a63e62946e194928eb17c5a9f2bbef0fe">discover_by_webbie()</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="externals_8php.html#a4df44079e6f915286088b7a0d44db926">externals_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="include_2network_8php.html#a850ed5307c6a18076f4b80addc99602d">fetch_xrd_links()</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="diaspora_8php.html#aade0c165fcdded71352c7a67bf6ce37b">find_diaspora_person_by_handle()</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#a5e5be7bf1f8257dec0b2647e60a3f3f1">get_atom_elements()</a>, <a class="el" href="diaspora_8php.html#a9bf7ef4094e0e14f6e2b7fe76ab7ad2e">get_diaspora_key()</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="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#a20750dd2c36961013fd382fb34e1366c">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#a528e97ca5d69c3b7f35c5d954afde315">import_xchan()</a>, <a class="el" href="plugin_8php.html#a482131013272a1d5d5c1b1469c6c55d5">install_plugin()</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="include_2network_8php.html#a872bbe72d23826c64c9e0f822180a3ec">old_webfinger()</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#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#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#a4d9e6ca295e443b740d9960c304b3474">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="profile__photo_8php.html#a561103564199da56e58061a4196eb102">profile_photo_set_profile_perms()</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="hubloc_8php.html#ad3d0dcfcfcb347744f7617fe6f5de002">prune_hub_reinstalls()</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="rbmark_8php.html#ac5a66aa8599fa5dc702bae396d8d1f8c">rbmark_post()</a>, <a class="el" href="receive_8php.html#a03d8fa26e77844020ba5602deca7d494">receive_post()</a>, <a class="el" href="include_2api_8php.html#aafa82b65a9f879a1a1197cfe8aaf3898">red_item_new()</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="include_2network_8php.html#a316f318167a039c89719afbd129a8f3c">scrape_feed()</a>, <a class="el" href="include_2network_8php.html#acb0bd7f5fe38ff1eaebeae3284525070">scrape_vcard()</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="classRedDirectory.html#adc48035679e52c55d9881f83de535553">RedDirectory\setName()</a>, <a class="el" href="classRedFile.html#a38a82bfc1b30028ea6ac75923e90fa25">RedFile\setName()</a>, <a class="el" href="items_8php.html#adf2b8137dc4ad9ec958de2842f16f3c2">start_delivery_chain()</a>, <a class="el" href="items_8php.html#af0a887050dc8d0f51c89890cdaf3145f">store_diaspora_comment_sig()</a>, <a class="el" href="security_8php.html#a6126c77a1267e046ac59cf864613f011">stream_perms_api_uids()</a>, <a class="el" href="security_8php.html#a3ef2be6a7e4928e39d50059d6feb457c">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="items_8php.html#a9b449eeae50003414b8b30ca927af434">update_feed_item()</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="account_8php.html#acd6b8d2124ba5ea4f4794d2c58ae8bf5">verify_email_address()</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>
+<p>Logging function for <a class="el" href="namespaceRedMatrix.html" title="Class Import.">RedMatrix</a>. </p>
+<p>Logging output is configured through <a class="el" href="namespaceRedMatrix.html" title="Class Import.">RedMatrix</a>'s system config. The log file is set in system logfile, log level in system loglevel and to enable logging set system debugging.</p>
+<p>Available constants for log level are LOGGER_NORMAL, LOGGER_TRACE, LOGGER_DEBUG, LOGGER_DATA and LOGGER_ALL.</p>
+<p>Since PHP5.4 we get the file, function and line automatically where the logger was caleld, so no need to add it to the message anymore.</p>
+<dl class="params"><dt>Parameters</dt><dd>
+ <table class="params">
+ <tr><td class="paramtype">string</td><td class="paramname">$msg</td><td>Message to log </td></tr>
+ <tr><td class="paramtype">int</td><td class="paramname">$level</td><td>A log level. </td></tr>
+ </table>
+ </dd>
+</dl>
+
+<p>Referenced by <a class="el" href="Contact_8php.html#a5101d7eca5d6f387e5555f03fe249e33">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="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="bb2diaspora_8php.html#ab27761069ea1275f0fc4c543099c5519">bb2diaspora_itembody()</a>, <a class="el" href="bb2diaspora_8php.html#aab32042f8bd63552d3fadeeae9eab083">bb2diaspora_itemwallwall()</a>, <a class="el" href="include_2bookmarks_8php.html#aef1cb2968c41c759f2d106e1088ca323">bookmark_add()</a>, <a class="el" href="mod_2bookmarks_8php.html#a6b7942f3d27e40f0f47c88704127b9b3">bookmarks_init()</a>, <a class="el" href="zot_8php.html#aa97b33b619dd7132a9274f852af6ceb5">build_sync_packet()</a>, <a class="el" href="Contact_8php.html#a4e8af0f0525161da74583c04b8b03097">channel_remove()</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="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="cloud_8php.html#ad2e96e917852f27dedfc263d37e13756">cloud_init()</a>, <a class="el" href="connedit_8php.html#a234c48426b652bf4d37053f2af329ac5">connedit_post()</a>, <a class="el" href="items_8php.html#adc26e08aa61f5666da04ab5d2a9d68a6">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="classRedMatrix_1_1RedDAV_1_1RedDirectory.html#aca0e8d574ea66a0e210f571700663c62">RedMatrix\RedDAV\RedDirectory\createDirectory()</a>, <a class="el" href="classRedMatrix_1_1RedDAV_1_1RedDirectory.html#a58e750256cdc2f0f79fbe8d5463ffefe">RedMatrix\RedDAV\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="classRedMatrix_1_1RedDAV_1_1RedFile.html#ab7ab7ba81fab28eb02382cfdfd80ecfe">RedMatrix\RedDAV\RedFile\delete()</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="diaspora_8php.html#a006731620a5242d410358b32678e48e3">diaspora_asphoto()</a>, <a class="el" href="diaspora_8php.html#a0fb2abe304aae19efc040a5e6b917829">diaspora_comment()</a>, <a class="el" href="diaspora_8php.html#adef30b6fac948baedcc7194d5d155b5f">diaspora_conversation()</a>, <a class="el" href="diaspora_8php.html#a849754ec369e1a60fadae5c14584ca36">diaspora_decode()</a>, <a class="el" href="diaspora_8php.html#a6f0a67b6b17503c125af32763be931b7">diaspora_dispatch()</a>, <a class="el" href="diaspora_8php.html#ab99505944728d46585b8312989de533d">diaspora_dispatch_public()</a>, <a class="el" href="diaspora_8php.html#a5ed66b910d7b0284f9b3ee04e72306ff">diaspora_handle_from_contact()</a>, <a class="el" href="diaspora_8php.html#a858f70153c384f8778082cf7843a19da">diaspora_is_blacklisted()</a>, <a class="el" href="diaspora_8php.html#a5d57518545baa31cf8a85a937a267681">diaspora_like()</a>, <a class="el" href="diaspora_8php.html#a7cff2f8f11044c1b3a360f20e1bbee46">diaspora_message()</a>, <a class="el" href="diaspora_8php.html#a4901762cba5cd8dcdc57bdf285eefb1b">diaspora_msg_build()</a>, <a class="el" href="diaspora_8php.html#a71fe9bb66626b4197ae018a230778bb2">diaspora_photo()</a>, <a class="el" href="diaspora_8php.html#a20b968d64ef26afe5cb0cc75a7570a31">diaspora_post()</a>, <a class="el" href="diaspora_8php.html#a131abd521b218d6ae6f7d2917d8b2605">diaspora_process_outbound()</a>, <a class="el" href="diaspora_8php.html#a900abf51398b2ef26cd2cd31c52f1b0f">diaspora_profile()</a>, <a class="el" href="diaspora_8php.html#a586d5a3ba92d35cee14f879f290072aa">diaspora_pubmsg_build()</a>, <a class="el" href="diaspora_8php.html#ac1ab782a34552a7c6b4dc961754ed598">diaspora_request()</a>, <a class="el" href="diaspora_8php.html#a2bf43f6b5890897f425ef4325d34b007">diaspora_reshare()</a>, <a class="el" href="diaspora_8php.html#af4698b165766f83d89ec1ea964bc92cc">diaspora_send_followup()</a>, <a class="el" href="diaspora_8php.html#ae6f52efd81fe515cd9912bc8293abf5b">diaspora_send_images()</a>, <a class="el" href="diaspora_8php.html#aeb2bb78f620dbf51d9335e6eb7444f2c">diaspora_send_mail()</a>, <a class="el" href="diaspora_8php.html#a0b3628a5e53332c3d3196b689fe2b94d">diaspora_send_relay()</a>, <a class="el" href="diaspora_8php.html#a33ae0c4606a7df4d801c05507d87f668">diaspora_send_status()</a>, <a class="el" href="diaspora_8php.html#a69f250b078a46e405647428ec3399a16">diaspora_share()</a>, <a class="el" href="diaspora_8php.html#aa34d2748bb97e9e193cacd572f335055">diaspora_signed_retraction()</a>, <a class="el" href="diaspora_8php.html#aa704d6aa2ac77be345c0f501168e6e56">diaspora_transmit()</a>, <a class="el" href="dirsearch_8php.html#a7d4cd9890d5ed23c3efc58e2a778a305">dir_parse_query()</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#a5176176ddc1906d91f186df6fbd87b48">discover_by_url()</a>, <a class="el" href="include_2network_8php.html#a63e62946e194928eb17c5a9f2bbef0fe">discover_by_webbie()</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#a56b0f5d2cb36eb8f4bfca84813884f86">encode_item()</a>, <a class="el" href="expire_8php.html#a444e45c9b67727b27db4c779fd51a298">expire_run()</a>, <a class="el" href="externals_8php.html#a4df44079e6f915286088b7a0d44db926">externals_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="include_2network_8php.html#a850ed5307c6a18076f4b80addc99602d">fetch_xrd_links()</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="diaspora_8php.html#aade0c165fcdded71352c7a67bf6ce37b">find_diaspora_person_by_handle()</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="classRedMatrix_1_1RedDAV_1_1RedFile.html#a7241beecd01f5bb4e74659863dd85bd8">RedMatrix\RedDAV\RedFile\get()</a>, <a class="el" href="items_8php.html#a5e5be7bf1f8257dec0b2647e60a3f3f1">get_atom_elements()</a>, <a class="el" href="diaspora_8php.html#a9bf7ef4094e0e14f6e2b7fe76ab7ad2e">get_diaspora_key()</a>, <a class="el" href="diaspora_8php.html#ac9e41e46626dc608204bf4b5e16e62d7">get_diaspora_reshare_xml()</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="classRedMatrix_1_1RedDAV_1_1RedDirectory.html#a1a37850bdd1f188abd6160559698d5d7">RedMatrix\RedDAV\RedDirectory\getChild()</a>, <a class="el" href="classRedMatrix_1_1RedDAV_1_1RedDirectory.html#a825dc5f3e0f83f50736c16daa6a4809d">RedMatrix\RedDAV\RedDirectory\getDir()</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="include_2network_8php.html#a4cfb2c05a1c295317283d762440ce0b2">http_status_exit()</a>, <a class="el" href="hubloc_8php.html#ad86214b3a74084bd7b54e8d6c919ce4d">hubloc_change_primary()</a>, <a class="el" href="impel_8php.html#ab7db6fca43b42ea4332cb3e841b3cf7b">impel_init()</a>, <a class="el" href="items_8php.html#a6bee35961f2e32905f20367a9309d627">import_author_rss()</a>, <a class="el" href="items_8php.html#a37f79991f36811cf847446ff60e8e11f">import_author_unknown()</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#a20750dd2c36961013fd382fb34e1366c">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#a528e97ca5d69c3b7f35c5d954afde315">import_xchan()</a>, <a class="el" href="plugin_8php.html#a482131013272a1d5d5c1b1469c6c55d5">install_plugin()</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="classRedMatrix_1_1RedDAV_1_1RedDirectory.html#af90a1a74cfd643a5c56b9a17ea250d59">RedMatrix\RedDAV\RedDirectory\log()</a>, <a class="el" href="classRedMatrix_1_1RedDAV_1_1RedBasicAuth.html#abf6fe89b0a8239ed93c3b07e1fbce75b">RedMatrix\RedDAV\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="include_2network_8php.html#a872bbe72d23826c64c9e0f822180a3ec">old_webfinger()</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#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#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="zot_8php.html#ac301c67864917c35922257950ae0f95c">process_channel_sync_delivery()</a>, <a class="el" href="zot_8php.html#a0e3006e7a456b2175a9badc96bc5176d">process_delivery()</a>, <a class="el" href="zot_8php.html#a8eeefdb0dad4c436bea9d1c06c0a7988">process_location_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="profile__photo_8php.html#a561103564199da56e58061a4196eb102">profile_photo_set_profile_perms()</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="hubloc_8php.html#ad3d0dcfcfcb347744f7617fe6f5de002">prune_hub_reinstalls()</a>, <a class="el" href="zot_8php.html#a083aec6c900d244e1bfc1406f9461465">public_recips()</a>, <a class="el" href="classRedMatrix_1_1RedDAV_1_1RedFile.html#a709ec1288d21ddf1353524435ab916f0">RedMatrix\RedDAV\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="classdba__postgres.html#a70352880231fba0b859f82cd5b290a9a">dba_postgres\q()</a>, <a class="el" href="queue_8php.html#af8c93de86d866c3200174c8450a0f341">queue_run()</a>, <a class="el" href="rbmark_8php.html#ac5a66aa8599fa5dc702bae396d8d1f8c">rbmark_post()</a>, <a class="el" href="receive_8php.html#a03d8fa26e77844020ba5602deca7d494">receive_post()</a>, <a class="el" href="include_2api_8php.html#aafa82b65a9f879a1a1197cfe8aaf3898">red_item_new()</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="hubloc_8php.html#a84c79b7be352f62d12fe4fa2c80fc6ea">remove_obsolete_hublocs()</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="include_2network_8php.html#a316f318167a039c89719afbd129a8f3c">scrape_feed()</a>, <a class="el" href="include_2network_8php.html#acb0bd7f5fe38ff1eaebeae3284525070">scrape_vcard()</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="classRedMatrix_1_1RedDAV_1_1RedFile.html#a0350cb4e0327e1f9922869a48ee04f1d">RedMatrix\RedDAV\RedFile\setName()</a>, <a class="el" href="classRedMatrix_1_1RedDAV_1_1RedDirectory.html#a14ac61d31a031d139956763db4e03956">RedMatrix\RedDAV\RedDirectory\setName()</a>, <a class="el" href="settings_8php.html#aa7ee94d88ac088edb04ccf3a26de3586">settings_post()</a>, <a class="el" href="items_8php.html#adf2b8137dc4ad9ec958de2842f16f3c2">start_delivery_chain()</a>, <a class="el" href="items_8php.html#a25221826fa4621f523c68483e3b6af26">store_diaspora_comment_sig()</a>, <a class="el" href="security_8php.html#a6126c77a1267e046ac59cf864613f011">stream_perms_api_uids()</a>, <a class="el" href="security_8php.html#a3ef2be6a7e4928e39d50059d6feb457c">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="zot_8php.html#ab15c04e7e5f44edf45ec50dd7d183254">sync_locations()</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="items_8php.html#a9b449eeae50003414b8b30ca927af434">update_feed_item()</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="classRedMatrix_1_1RedDAV_1_1RedBasicAuth.html#a6ece02655b780469e59e204c5979a624">RedMatrix\RedDAV\RedBasicAuth\validateUserPass()</a>, <a class="el" href="account_8php.html#acd6b8d2124ba5ea4f4794d2c58ae8bf5">verify_email_address()</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#a084c581d534e7e3b759488b46602288f">zot_build_packet()</a>, <a class="el" href="items_8php.html#a1cf89557f32d5dfbe8bd90448dc1aa92">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#a3920afe14fc1d82020161b4b86bcd9ac">zot_process_message_request()</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>
@@ -1503,7 +1661,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="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="diaspora_8php.html#a006731620a5242d410358b32678e48e3">diaspora_asphoto()</a>, <a class="el" href="diaspora_8php.html#a0fb2abe304aae19efc040a5e6b917829">diaspora_comment()</a>, <a class="el" href="diaspora_8php.html#adef30b6fac948baedcc7194d5d155b5f">diaspora_conversation()</a>, <a class="el" href="diaspora_8php.html#a5d57518545baa31cf8a85a937a267681">diaspora_like()</a>, <a class="el" href="diaspora_8php.html#a7cff2f8f11044c1b3a360f20e1bbee46">diaspora_message()</a>, <a class="el" href="diaspora_8php.html#a71fe9bb66626b4197ae018a230778bb2">diaspora_photo()</a>, <a class="el" href="diaspora_8php.html#a20b968d64ef26afe5cb0cc75a7570a31">diaspora_post()</a>, <a class="el" href="diaspora_8php.html#a900abf51398b2ef26cd2cd31c52f1b0f">diaspora_profile()</a>, <a class="el" href="diaspora_8php.html#a2bf43f6b5890897f425ef4325d34b007">diaspora_reshare()</a>, <a class="el" href="diaspora_8php.html#a938c7ee808d38725c0988fa6006805b9">diaspora_retraction()</a>, <a class="el" href="diaspora_8php.html#aa34d2748bb97e9e193cacd572f335055">diaspora_signed_retraction()</a>, <a class="el" href="mod_2directory_8php.html#aac79396570d759da2efac24fcedf5b44">directory_content()</a>, <a class="el" href="include_2network_8php.html#a5176176ddc1906d91f186df6fbd87b48">discover_by_url()</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#a5e5be7bf1f8257dec0b2647e60a3f3f1">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>
+<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="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="diaspora_8php.html#a006731620a5242d410358b32678e48e3">diaspora_asphoto()</a>, <a class="el" href="diaspora_8php.html#a0fb2abe304aae19efc040a5e6b917829">diaspora_comment()</a>, <a class="el" href="diaspora_8php.html#adef30b6fac948baedcc7194d5d155b5f">diaspora_conversation()</a>, <a class="el" href="diaspora_8php.html#a5d57518545baa31cf8a85a937a267681">diaspora_like()</a>, <a class="el" href="diaspora_8php.html#a7cff2f8f11044c1b3a360f20e1bbee46">diaspora_message()</a>, <a class="el" href="diaspora_8php.html#a71fe9bb66626b4197ae018a230778bb2">diaspora_photo()</a>, <a class="el" href="diaspora_8php.html#a20b968d64ef26afe5cb0cc75a7570a31">diaspora_post()</a>, <a class="el" href="diaspora_8php.html#a900abf51398b2ef26cd2cd31c52f1b0f">diaspora_profile()</a>, <a class="el" href="diaspora_8php.html#a2bf43f6b5890897f425ef4325d34b007">diaspora_reshare()</a>, <a class="el" href="diaspora_8php.html#a938c7ee808d38725c0988fa6006805b9">diaspora_retraction()</a>, <a class="el" href="diaspora_8php.html#aa34d2748bb97e9e193cacd572f335055">diaspora_signed_retraction()</a>, <a class="el" href="mod_2directory_8php.html#aac79396570d759da2efac24fcedf5b44">directory_content()</a>, <a class="el" href="include_2network_8php.html#a5176176ddc1906d91f186df6fbd87b48">discover_by_url()</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#a5e5be7bf1f8257dec0b2647e60a3f3f1">get_atom_elements()</a>, <a class="el" href="diaspora_8php.html#ac9e41e46626dc608204bf4b5e16e62d7">get_diaspora_reshare_xml()</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>
@@ -1521,7 +1679,7 @@ Variables</h2></td></tr>
</table>
</div><div class="memdoc">
-<p>Referenced by <a class="el" href="admin_8php.html#ad6f87a764fd35f522c7b4c351d7878ec">admin_page_channels()</a>, <a class="el" href="admin_8php.html#a62f10f90c47686c9c3c37c4c03a108d2">admin_page_users()</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>
+<p>Referenced by <a class="el" href="admin_8php.html#ad6f87a764fd35f522c7b4c351d7878ec">admin_page_channels()</a>, <a class="el" href="admin_8php.html#a62f10f90c47686c9c3c37c4c03a108d2">admin_page_users()</a>, <a class="el" href="connections_8php.html#aec2e457420fce3e3bf6a9f48e36df25c">connections_content()</a>, <a class="el" href="match_8php.html#a1dd853e959b9e70c1911bb2fb5f5130d">match_content()</a>, and <a class="el" href="viewconnections_8php.html#ab6c4d983e97b3a8a879567ff76507776">viewconnections_content()</a>.</p>
</div>
</div>
@@ -1556,6 +1714,10 @@ Variables</h2></td></tr>
</table>
</div><div class="memdoc">
+<p>Generate a guaranteed unique photo ID. </p>
+<p>Safe from birthday paradox.</p>
+<dl class="section return"><dt>Returns</dt><dd>string a uniqe hash </dd></dl>
+
<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>
@@ -1628,7 +1790,7 @@ Variables</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="include_2api_8php.html#a4c6fb9fb5203aa60f4b3afd4521db8ea">api_format_items()</a>, <a class="el" href="include_2api_8php.html#ae82608c317421f27446465aa6724733d">api_format_messages()</a>, <a class="el" href="include_2api_8php.html#a645397787618b5c548a31e8686e8cca4">api_status_show()</a>, <a class="el" href="include_2api_8php.html#abe8e929e93f7ab134b1cb1fb30f19a76">api_users_show()</a>, <a class="el" href="items_8php.html#a275108c050f7eb18bcbb5018e6b81cf6">atom_entry()</a>, <a class="el" href="items_8php.html#a87ac9e359591721a824ecd23bbb56296">check_item_source()</a>, <a class="el" href="comanche_8php.html#a5a7ab801717d38e91ac910b933973887">comanche_block()</a>, <a class="el" href="connect_8php.html#a489f0a66c660de6ec4d6917b27674f07">connect_content()</a>, and <a class="el" href="text_8php.html#ae4df74296fbe55051ed3c035e55205e5">prepare_body()</a>.</p>
+<p>Referenced by <a class="el" href="identity_8php.html#aa870d2c1f558cfd52bef05bc124e8fa4">advanced_profile()</a>, <a class="el" href="include_2api_8php.html#a4c6fb9fb5203aa60f4b3afd4521db8ea">api_format_items()</a>, <a class="el" href="include_2api_8php.html#ae82608c317421f27446465aa6724733d">api_format_messages()</a>, <a class="el" href="include_2api_8php.html#a645397787618b5c548a31e8686e8cca4">api_status_show()</a>, <a class="el" href="include_2api_8php.html#abe8e929e93f7ab134b1cb1fb30f19a76">api_users_show()</a>, <a class="el" href="items_8php.html#a275108c050f7eb18bcbb5018e6b81cf6">atom_entry()</a>, <a class="el" href="items_8php.html#a87ac9e359591721a824ecd23bbb56296">check_item_source()</a>, <a class="el" href="comanche_8php.html#a5a7ab801717d38e91ac910b933973887">comanche_block()</a>, <a class="el" href="connect_8php.html#a489f0a66c660de6ec4d6917b27674f07">connect_content()</a>, <a class="el" href="text_8php.html#ae4df74296fbe55051ed3c035e55205e5">prepare_body()</a>, and <a class="el" href="widgets_8php.html#a829c5a5c7448129266fc1df3ae1a3c2e">widget_random_block()</a>.</p>
</div>
</div>
@@ -1662,8 +1824,6 @@ Variables</h2></td></tr>
</table>
</div><div class="memdoc">
-<p>Referenced by <a class="el" href="conversation_8php.html#affea1afb3f32ca41e966c8ddb4204d81">conversation()</a>.</p>
-
</div>
</div>
<a class="anchor" id="a4e7698aca48982512594b274543c3b9b"></a>
@@ -1680,7 +1840,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="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#a52bcac49b0e35cc8c6b70066143c2ee2">dir_query_build()</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>, <a class="el" href="dir__fns_8php.html#aa666e7df6ca8c332f4081c9b66b4bdf6">sync_directories()</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#a52bcac49b0e35cc8c6b70066143c2ee2">dir_query_build()</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="include_2menu_8php.html#a251bf7e15d21627fd92614198e41c485">menu_list_count()</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>, <a class="el" href="dir__fns_8php.html#aa666e7df6ca8c332f4081c9b66b4bdf6">sync_directories()</a>, and <a class="el" href="taxonomy_8php.html#a7a913d19c77610da689be48fbbf6734c">term_query()</a>.</p>
</div>
</div>
@@ -1742,7 +1902,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_2apps_8php.html#a15626f24069c18816f7cdaf4735f58f9">app_store()</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#aa97b33b619dd7132a9274f852af6ceb5">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="diaspora_8php.html#a4901762cba5cd8dcdc57bdf285eefb1b">diaspora_msg_build()</a>, <a class="el" href="diaspora_8php.html#aa704d6aa2ac77be345c0f501168e6e56">diaspora_transmit()</a>, <a class="el" href="include_2directory_8php.html#aa75d3b0697ca1456aaabdb37a74aa0f0">directory_run()</a>, <a class="el" href="event_8php.html#af5ac41e7ea3f7131088fe6333fd2846c">event_store_event()</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#a20750dd2c36961013fd382fb34e1366c">import_directory_profile()</a>, <a class="el" href="zot_8php.html#a528e97ca5d69c3b7f35c5d954afde315">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="removeaccount_8php.html#a516e7380b9e5796054aa8245f3509695">removeaccount_content()</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="thing_8php.html#a8be23b1d475ec3d9291999221c674c80">thing_init()</a>, and <a class="el" href="account_8php.html#acd6b8d2124ba5ea4f4794d2c58ae8bf5">verify_email_address()</a>.</p>
+<p>Referenced by <a class="el" href="crypto_8php.html#a2148d7aac7b30c720f7ebda7e9790286">aes_encapsulate()</a>, <a class="el" href="include_2apps_8php.html#a15626f24069c18816f7cdaf4735f58f9">app_store()</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#aa97b33b619dd7132a9274f852af6ceb5">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="classRedMatrix_1_1RedDAV_1_1RedDirectory.html#a58e750256cdc2f0f79fbe8d5463ffefe">RedMatrix\RedDAV\RedDirectory\createFile()</a>, <a class="el" href="diaspora_8php.html#a4901762cba5cd8dcdc57bdf285eefb1b">diaspora_msg_build()</a>, <a class="el" href="diaspora_8php.html#aa704d6aa2ac77be345c0f501168e6e56">diaspora_transmit()</a>, <a class="el" href="include_2directory_8php.html#aa75d3b0697ca1456aaabdb37a74aa0f0">directory_run()</a>, <a class="el" href="event_8php.html#af5ac41e7ea3f7131088fe6333fd2846c">event_store_event()</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#a20750dd2c36961013fd382fb34e1366c">import_directory_profile()</a>, <a class="el" href="zot_8php.html#a528e97ca5d69c3b7f35c5d954afde315">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="zot_8php.html#a8eeefdb0dad4c436bea9d1c06c0a7988">process_location_delivery()</a>, <a class="el" href="profiles_8php.html#a36f71405ad536228f8bb84a551b23f7e">profiles_init()</a>, <a class="el" href="refimport_8php.html#a01a29630fa5e1ce6cd5e1fd75280747c">reflect_comment_store()</a>, <a class="el" href="removeaccount_8php.html#a516e7380b9e5796054aa8245f3509695">removeaccount_content()</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="thing_8php.html#a8be23b1d475ec3d9291999221c674c80">thing_init()</a>, <a class="el" href="account_8php.html#acd6b8d2124ba5ea4f4794d2c58ae8bf5">verify_email_address()</a>, and <a class="el" href="zot_8php.html#a3920afe14fc1d82020161b4b86bcd9ac">zot_process_message_request()</a>.</p>
</div>
</div>
@@ -1807,7 +1967,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="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#ad6f87a764fd35f522c7b4c351d7878ec">admin_page_channels()</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#a3deba594ca1e11694eac1de0b724ef0a">admin_page_profs()</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="include_2apps_8php.html#a1b2e737f477a2e0d9d11ef14adc5aa66">app_render()</a>, <a class="el" href="appman_8php.html#af48805ac2f6f123f2681a8ae1c6f123f">appman_content()</a>, <a class="el" href="mod_2apps_8php.html#a546016cb960d0b110ee8e489dfa6c27c">apps_content()</a>, <a class="el" href="view_2theme_2apw_2php_2config_8php.html#ad59fc09da66b66267f9753c8b2dd68d0">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="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="diaspora_8php.html#af4698b165766f83d89ec1ea964bc92cc">diaspora_send_followup()</a>, <a class="el" href="diaspora_8php.html#ae6f52efd81fe515cd9912bc8293abf5b">diaspora_send_images()</a>, <a class="el" href="diaspora_8php.html#aeb2bb78f620dbf51d9335e6eb7444f2c">diaspora_send_mail()</a>, <a class="el" href="diaspora_8php.html#a0b3628a5e53332c3d3196b689fe2b94d">diaspora_send_relay()</a>, <a class="el" href="diaspora_8php.html#a1704748aa2384c73e43f10e71defd31a">diaspora_send_retraction()</a>, <a class="el" href="diaspora_8php.html#a33ae0c4606a7df4d801c05507d87f668">diaspora_send_status()</a>, <a class="el" href="diaspora_8php.html#af3a7f9879c14fec761dcc5563fb39bac">diaspora_share()</a>, <a class="el" href="diaspora_8php.html#aa4b1cc0bca5c3fe8d11557685e0238a9">diaspora_unshare()</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="classRedBrowser.html#a1f7daf50bb9bfcde7345b3b1908dbd7e">RedBrowser\generateDirectoryIndex()</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="classRedBrowser.html#a7f6bf0bda07833f4c647557bd172e349">RedBrowser\htmlActionsPanel()</a>, <a class="el" href="identity_8php.html#a2ab5172eabd375869060c9ad68323f5c">identity_selector()</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#a03a5deed3908543581c074ce333e9d6a">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#a39d547771c5f12a17c097436c82f0fa2">pagelist_widget()</a>, <a class="el" href="pdledit_8php.html#a59cb550f6b7a4e7d8196fbc9de601619">pdledit_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="poco_8php.html#a53def16f75e3d41f1d2bb7cfa4905498">poco_init()</a>, <a class="el" href="poke_8php.html#ac9190563a8da9c07a16f9dcd71cf6993">poke_content()</a>, <a class="el" href="poll_8php.html#a3314c26bd2ac0ed831cebf3315cd3263">poll_content()</a>, <a class="el" href="acl__selectors_8php.html#ad25bba63a51a2b0b5b463efae50df528">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="rbmark_8php.html#a43fec4960b50926251574762cc491f76">rbmark_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="removeaccount_8php.html#a516e7380b9e5796054aa8245f3509695">removeaccount_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="account_8php.html#acd6b8d2124ba5ea4f4794d2c58ae8bf5">verify_email_address()</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#aced5cb177f630b30799c5eab873ee75c">widget_appselect()</a>, <a class="el" href="widgets_8php.html#a7b1e357b5a2027718470b77ec921fc65">widget_archive()</a>, <a class="el" href="widgets_8php.html#a0e2f5179ed1a73b282dfda7270fcabb3">widget_bookmarkedchats()</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#a50b1410238100c8a94c06b0aa63ee3b8">widget_suggestedchats()</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>
+<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#ad6f87a764fd35f522c7b4c351d7878ec">admin_page_channels()</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#a3deba594ca1e11694eac1de0b724ef0a">admin_page_profs()</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="include_2apps_8php.html#a1b2e737f477a2e0d9d11ef14adc5aa66">app_render()</a>, <a class="el" href="appman_8php.html#af48805ac2f6f123f2681a8ae1c6f123f">appman_content()</a>, <a class="el" href="mod_2apps_8php.html#a546016cb960d0b110ee8e489dfa6c27c">apps_content()</a>, <a class="el" href="view_2theme_2apw_2php_2config_8php.html#ad59fc09da66b66267f9753c8b2dd68d0">apw_form()</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="contact__widgets_8php.html#a165eb021e61c4dcab2a552f28628d353">categories_widget()</a>, <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="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="diaspora_8php.html#af4698b165766f83d89ec1ea964bc92cc">diaspora_send_followup()</a>, <a class="el" href="diaspora_8php.html#ae6f52efd81fe515cd9912bc8293abf5b">diaspora_send_images()</a>, <a class="el" href="diaspora_8php.html#aeb2bb78f620dbf51d9335e6eb7444f2c">diaspora_send_mail()</a>, <a class="el" href="diaspora_8php.html#a0b3628a5e53332c3d3196b689fe2b94d">diaspora_send_relay()</a>, <a class="el" href="diaspora_8php.html#a1704748aa2384c73e43f10e71defd31a">diaspora_send_retraction()</a>, <a class="el" href="diaspora_8php.html#a33ae0c4606a7df4d801c05507d87f668">diaspora_send_status()</a>, <a class="el" href="diaspora_8php.html#a69f250b078a46e405647428ec3399a16">diaspora_share()</a>, <a class="el" href="diaspora_8php.html#ab736d6f32b5de31c97cb579fc730e200">diaspora_unshare()</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="text_8php.html#a3054189cff173977f4216c9a3dd29e1b">format_categories()</a>, <a class="el" href="text_8php.html#a4e4d42b0a805148d9f9a92bcac89bf91">format_filer()</a>, <a class="el" href="classRedMatrix_1_1RedDAV_1_1RedBrowser.html#af764d5f14df751f9ec86c34fab300c09">RedMatrix\RedDAV\RedBrowser\generateDirectoryIndex()</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="home_8php.html#a6e3dbf78f4ed74ab2577de221190b33f">home_content()</a>, <a class="el" href="hostxrd_8php.html#aa37ffc8e7900bc76c4828bd25916db92">hostxrd_init()</a>, <a class="el" href="classRedMatrix_1_1RedDAV_1_1RedBrowser.html#a3bd98af2d1cdfd8f26deb914596176cf">RedMatrix\RedDAV\RedBrowser\htmlActionsPanel()</a>, <a class="el" href="identity_8php.html#a2ab5172eabd375869060c9ad68323f5c">identity_selector()</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="locs_8php.html#a6c900f53970c0d0e738d2fe06d27ca44">locs_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#a03a5deed3908543581c074ce333e9d6a">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="p_8php.html#af9d5530ca0b3dc9409cf591c39e2480e">p_init()</a>, <a class="el" href="page__widgets_8php.html#a39d547771c5f12a17c097436c82f0fa2">pagelist_widget()</a>, <a class="el" href="pdledit_8php.html#a59cb550f6b7a4e7d8196fbc9de601619">pdledit_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="poco_8php.html#a53def16f75e3d41f1d2bb7cfa4905498">poco_init()</a>, <a class="el" href="poke_8php.html#ac9190563a8da9c07a16f9dcd71cf6993">poke_content()</a>, <a class="el" href="poll_8php.html#a3314c26bd2ac0ed831cebf3315cd3263">poll_content()</a>, <a class="el" href="acl__selectors_8php.html#ad25bba63a51a2b0b5b463efae50df528">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="rbmark_8php.html#a43fec4960b50926251574762cc491f76">rbmark_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="removeaccount_8php.html#a516e7380b9e5796054aa8245f3509695">removeaccount_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="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="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="uexport_8php.html#ae6f79d60916c01675c8cf663cb5fec84">uexport_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="account_8php.html#acd6b8d2124ba5ea4f4794d2c58ae8bf5">verify_email_address()</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#aced5cb177f630b30799c5eab873ee75c">widget_appselect()</a>, <a class="el" href="widgets_8php.html#a7b1e357b5a2027718470b77ec921fc65">widget_archive()</a>, <a class="el" href="widgets_8php.html#a0e2f5179ed1a73b282dfda7270fcabb3">widget_bookmarkedchats()</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#a50b1410238100c8a94c06b0aa63ee3b8">widget_suggestedchats()</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>
@@ -2039,7 +2199,7 @@ 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="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>
+<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#afaedbc8e2d2a70ec8b006162baac5249">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>
@@ -2057,7 +2217,7 @@ Variables</h2></td></tr>
</table>
</div><div class="memdoc">
-<p>Referenced by <a class="el" href="cloud_8php.html#a1b79a6fe0454bc76673ad9aef55bf02d">cloud_init()</a>, <a class="el" href="items_8php.html#a4e6d7639431e0dd8e9f4dba8e1ac408b">red_zrl_callback()</a>, and <a class="el" href="items_8php.html#a78a60e39f6991bd3324a24dcbf9dac5a">red_zrlify_img_callback()</a>.</p>
+<p>Referenced by <a class="el" href="cloud_8php.html#ad2e96e917852f27dedfc263d37e13756">cloud_init()</a>, <a class="el" href="items_8php.html#a4e6d7639431e0dd8e9f4dba8e1ac408b">red_zrl_callback()</a>, and <a class="el" href="items_8php.html#a78a60e39f6991bd3324a24dcbf9dac5a">red_zrlify_img_callback()</a>.</p>
</div>
</div>
@@ -2173,7 +2333,7 @@ Variables</h2></td></tr>
</table>
</div><div class="memdoc">
-<p>Referenced by <a class="el" href="diaspora_8php.html#a006731620a5242d410358b32678e48e3">diaspora_asphoto()</a>, <a class="el" href="diaspora_8php.html#a0fb2abe304aae19efc040a5e6b917829">diaspora_comment()</a>, <a class="el" href="diaspora_8php.html#adef30b6fac948baedcc7194d5d155b5f">diaspora_conversation()</a>, <a class="el" href="diaspora_8php.html#a5d57518545baa31cf8a85a937a267681">diaspora_like()</a>, <a class="el" href="diaspora_8php.html#a7cff2f8f11044c1b3a360f20e1bbee46">diaspora_message()</a>, <a class="el" href="diaspora_8php.html#a71fe9bb66626b4197ae018a230778bb2">diaspora_photo()</a>, <a class="el" href="diaspora_8php.html#a20b968d64ef26afe5cb0cc75a7570a31">diaspora_post()</a>, <a class="el" href="diaspora_8php.html#a900abf51398b2ef26cd2cd31c52f1b0f">diaspora_profile()</a>, <a class="el" href="diaspora_8php.html#ac1ab782a34552a7c6b4dc961754ed598">diaspora_request()</a>, <a class="el" href="diaspora_8php.html#a2bf43f6b5890897f425ef4325d34b007">diaspora_reshare()</a>, <a class="el" href="diaspora_8php.html#a938c7ee808d38725c0988fa6006805b9">diaspora_retraction()</a>, <a class="el" href="diaspora_8php.html#aa34d2748bb97e9e193cacd572f335055">diaspora_signed_retraction()</a>, <a class="el" href="include_2network_8php.html#a5176176ddc1906d91f186df6fbd87b48">discover_by_url()</a>, <a class="el" href="filer_8php.html#a5fd5d7e61b2f9c43cb5f110c89dc4274">filer_content()</a>, and <a class="el" href="items_8php.html#a5e5be7bf1f8257dec0b2647e60a3f3f1">get_atom_elements()</a>.</p>
+<p>Referenced by <a class="el" href="diaspora_8php.html#a006731620a5242d410358b32678e48e3">diaspora_asphoto()</a>, <a class="el" href="diaspora_8php.html#a0fb2abe304aae19efc040a5e6b917829">diaspora_comment()</a>, <a class="el" href="diaspora_8php.html#adef30b6fac948baedcc7194d5d155b5f">diaspora_conversation()</a>, <a class="el" href="diaspora_8php.html#a5d57518545baa31cf8a85a937a267681">diaspora_like()</a>, <a class="el" href="diaspora_8php.html#a7cff2f8f11044c1b3a360f20e1bbee46">diaspora_message()</a>, <a class="el" href="diaspora_8php.html#a71fe9bb66626b4197ae018a230778bb2">diaspora_photo()</a>, <a class="el" href="diaspora_8php.html#a20b968d64ef26afe5cb0cc75a7570a31">diaspora_post()</a>, <a class="el" href="diaspora_8php.html#a900abf51398b2ef26cd2cd31c52f1b0f">diaspora_profile()</a>, <a class="el" href="diaspora_8php.html#ac1ab782a34552a7c6b4dc961754ed598">diaspora_request()</a>, <a class="el" href="diaspora_8php.html#a2bf43f6b5890897f425ef4325d34b007">diaspora_reshare()</a>, <a class="el" href="diaspora_8php.html#a938c7ee808d38725c0988fa6006805b9">diaspora_retraction()</a>, <a class="el" href="diaspora_8php.html#aa34d2748bb97e9e193cacd572f335055">diaspora_signed_retraction()</a>, <a class="el" href="include_2network_8php.html#a5176176ddc1906d91f186df6fbd87b48">discover_by_url()</a>, <a class="el" href="filer_8php.html#a5fd5d7e61b2f9c43cb5f110c89dc4274">filer_content()</a>, <a class="el" href="items_8php.html#a5e5be7bf1f8257dec0b2647e60a3f3f1">get_atom_elements()</a>, and <a class="el" href="diaspora_8php.html#ac9e41e46626dc608204bf4b5e16e62d7">get_diaspora_reshare_xml()</a>.</p>
</div>
</div>
@@ -2213,7 +2373,7 @@ Variables</h2></td></tr>
</div>
</div>
-<a class="anchor" id="a36a2e5d418ee81140f25c4233cfecd1f"></a>
+<a class="anchor" id="a905c3895feb6f276df23f07f16f9bb52"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
@@ -2227,7 +2387,13 @@ Variables</h2></td></tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">&#160;</td>
- <td class="paramname"><em>$abook</em> = <code>true</code>&#160;</td>
+ <td class="paramname"><em>$abook</em> = <code>true</code>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">&#160;</td>
+ <td class="paramname"><em>$effective_uid</em> = <code>0</code>&#160;</td>
</tr>
<tr>
<td></td>
@@ -2237,7 +2403,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="block_8php.html#a8a82a470acdfbc7a8e749509caeeea45">block_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="event_8php.html#a7378e839ac3de9d55579eb3ec48eaf92">event_store_item()</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>, <a class="el" href="widgets_8php.html#a313a8d10ab81c71357c12e67e4d7efd5">widget_item()</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="block_8php.html#a8a82a470acdfbc7a8e749509caeeea45">block_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="event_8php.html#a7378e839ac3de9d55579eb3ec48eaf92">event_store_item()</a>, <a class="el" href="events_8php.html#a1d293fb217ae6bc9e3858c4b32e363ec">events_content()</a>, <a class="el" href="home_8php.html#a6e3dbf78f4ed74ab2577de221190b33f">home_content()</a>, <a class="el" href="identity_8php.html#afaedbc8e2d2a70ec8b006162baac5249">identity_basic_export()</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>, <a class="el" href="widgets_8php.html#a313a8d10ab81c71357c12e67e4d7efd5">widget_item()</a>, and <a class="el" href="items_8php.html#a1cf89557f32d5dfbe8bd90448dc1aa92">zot_feed()</a>.</p>
</div>
</div>
@@ -2263,7 +2429,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="diaspora_8php.html#a5d57518545baa31cf8a85a937a267681">diaspora_like()</a>, <a class="el" href="diaspora_8php.html#a20b968d64ef26afe5cb0cc75a7570a31">diaspora_post()</a>, <a class="el" href="diaspora_8php.html#af4698b165766f83d89ec1ea964bc92cc">diaspora_send_followup()</a>, <a class="el" href="diaspora_8php.html#ae6f52efd81fe515cd9912bc8293abf5b">diaspora_send_images()</a>, <a class="el" href="diaspora_8php.html#aeb2bb78f620dbf51d9335e6eb7444f2c">diaspora_send_mail()</a>, <a class="el" href="diaspora_8php.html#a0b3628a5e53332c3d3196b689fe2b94d">diaspora_send_relay()</a>, <a class="el" href="diaspora_8php.html#a1704748aa2384c73e43f10e71defd31a">diaspora_send_retraction()</a>, <a class="el" href="diaspora_8php.html#a33ae0c4606a7df4d801c05507d87f668">diaspora_send_status()</a>, <a class="el" href="items_8php.html#aa723c0571e314a1853a24c5854b4f54f">encode_rel_links()</a>, <a class="el" href="items_8php.html#a5e5be7bf1f8257dec0b2647e60a3f3f1">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>
+<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="diaspora_8php.html#a20b968d64ef26afe5cb0cc75a7570a31">diaspora_post()</a>, <a class="el" href="diaspora_8php.html#af4698b165766f83d89ec1ea964bc92cc">diaspora_send_followup()</a>, <a class="el" href="diaspora_8php.html#ae6f52efd81fe515cd9912bc8293abf5b">diaspora_send_images()</a>, <a class="el" href="diaspora_8php.html#aeb2bb78f620dbf51d9335e6eb7444f2c">diaspora_send_mail()</a>, <a class="el" href="diaspora_8php.html#a0b3628a5e53332c3d3196b689fe2b94d">diaspora_send_relay()</a>, <a class="el" href="diaspora_8php.html#a1704748aa2384c73e43f10e71defd31a">diaspora_send_retraction()</a>, <a class="el" href="diaspora_8php.html#a33ae0c4606a7df4d801c05507d87f668">diaspora_send_status()</a>, <a class="el" href="items_8php.html#aa723c0571e314a1853a24c5854b4f54f">encode_rel_links()</a>, <a class="el" href="items_8php.html#a5e5be7bf1f8257dec0b2647e60a3f3f1">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="p_8php.html#af9d5530ca0b3dc9409cf591c39e2480e">p_init()</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>
diff --git a/doc/html/text_8php.js b/doc/html/text_8php.js
index 961e2f581..14999d6f0 100644
--- a/doc/html/text_8php.js
+++ b/doc/html/text_8php.js
@@ -19,6 +19,7 @@ var text_8php =
[ "dlogger", "text_8php.html#a0a1f7c0e97f9ecbebf3e5834582b014c", null ],
[ "escape_tags", "text_8php.html#aa5148a0dfea2a1ca64c3d52f10aa2d64", null ],
[ "expand_acl", "text_8php.html#ae4282a39492caa23ccbc2ce98e54f110", null ],
+ [ "extra_query_args", "text_8php.html#a3ba47b4dd1248e7e51095572e7b814dc", null ],
[ "feed_hublinks", "text_8php.html#a8d8c4a11e53461caca21181ebd72daca", null ],
[ "feed_salmonlinks", "text_8php.html#a89929fa6f70a8ba54d5273fcf622b665", null ],
[ "find_xchan_in_array", "text_8php.html#ace3c98538c63e09b70a363210b414112", null ],
@@ -27,12 +28,15 @@ var text_8php =
[ "format_filer", "text_8php.html#a4e4d42b0a805148d9f9a92bcac89bf91", null ],
[ "format_hashtags", "text_8php.html#a3a0c432a484c17d7720b8ba2d6bfdd59", null ],
[ "format_mentions", "text_8php.html#ad8c6e13d6accf057136c5f30a23a5f08", null ],
+ [ "generate_map", "text_8php.html#ae0333c304ec5b4b72e66bb2933fa7357", null ],
+ [ "generate_named_map", "text_8php.html#af5eb4a9c1599764f80c5bc71e0125d4b", null ],
[ "get_mentions", "text_8php.html#a76d1b3435c067978d7b484c45f56472b", null ],
[ "get_mood_verbs", "text_8php.html#a736db13a966b8abaf8c9198faa35911a", 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 ],
+ [ "handle_tag", "text_8php.html#aa22feef4de326e1d7078dedd892e615c", null ],
[ "html2bb_video", "text_8php.html#a138a3a611fa7f4f3630674145fc826bf", null ],
[ "ids_to_querystr", "text_8php.html#a436a8de00c942364c2d0fcfc7e1f4b5a", null ],
[ "in_arrayi", "text_8php.html#a75c326298519ed14ebe762194c8a3f2a", null ],
@@ -85,7 +89,7 @@ var text_8php =
[ "unxmlify", "text_8php.html#a1360fed7f918d859daaca1c9f384f9af", null ],
[ "valid_email", "text_8php.html#a6a3d80a6c6fb234fd0bac44203b828eb", null ],
[ "xchan_mail_query", "text_8php.html#a543447c5ed766535221e2d9636b379ee", null ],
- [ "xchan_query", "text_8php.html#a36a2e5d418ee81140f25c4233cfecd1f", null ],
+ [ "xchan_query", "text_8php.html#a905c3895feb6f276df23f07f16f9bb52", null ],
[ "xmlify", "text_8php.html#aaed4413ed8918838b517e3b2fafaea0d", null ],
[ "z_input_filter", "text_8php.html#a324c58f37f6acdf9cd1922aa76077d9f", null ],
[ "zidify_callback", "text_8php.html#a405afe814a23f3bd94d826101aa168ab", null ],
diff --git a/doc/html/theme_2mytheme_2php_2default_8php.html b/doc/html/theme_2mytheme_2php_2default_8php.html
index e3ebc868e..ea01d8615 100644
--- a/doc/html/theme_2mytheme_2php_2default_8php.html
+++ b/doc/html/theme_2mytheme_2php_2default_8php.html
@@ -112,7 +112,7 @@ $(document).ready(function(){initNavTree('theme_2mytheme_2php_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:a3987f5547ceb7e36a210a66a06241a5a"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="theme_2mytheme_2php_2default_8php.html#a3987f5547ceb7e36a210a66a06241a5a">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; header &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="memitem:a3987f5547ceb7e36a210a66a06241a5a"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="theme_2mytheme_2php_2default_8php.html#a3987f5547ceb7e36a210a66a06241a5a">if</a> (<a class="el" href="boot_8php.html#ae97836b0547953be182a2334c9c91d3c">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; header &gt;&lt;?php if(<a class="el" href="boot_8php.html#ae97836b0547953be182a2334c9c91d3c">x</a>($<a class="el" href="mod__import_8php.html#a8db1899eeeb44dabd0904065b63627bb">page</a></td></tr>
<tr class="separator:a3987f5547ceb7e36a210a66a06241a5a"><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__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; header &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>
+ <td class="memname">if(<a class="el" href="boot_8php.html#ae97836b0547953be182a2334c9c91d3c">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; header &gt;&lt;?php if(<a class="el" href="boot_8php.html#ae97836b0547953be182a2334c9c91d3c">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/todo.html b/doc/html/todo.html
index 7ae19e7d0..f09357862 100644
--- a/doc/html/todo.html
+++ b/doc/html/todo.html
@@ -102,15 +102,23 @@ $(document).ready(function(){initNavTree('todo.html','');});
</div><!--header-->
<div class="contents">
<div class="textblock"><dl class="reflist">
-<dt><a class="anchor" id="_todo000001"></a>Member <a class="el" href="reddav_8php.html#ae92ea0df1993f6a7bcd1b6efa6c1fb66">RedChannelList</a> (&amp;$auth)</dt>
-<dd>Is there any reason why this is not inside <a class="el" href="classRedDirectory.html" title="RedDirectory class.">RedDirectory</a> class? </dd>
-<dt><a class="anchor" id="_todo000002"></a>Member <a class="el" href="reddav_8php.html#a5df0d09893f2e65dc5cf6bbab6cfb266">RedCollectionData</a> ($file, &amp;$auth)</dt>
-<dd>Is there any reason why this is not inside <a class="el" href="classRedDirectory.html" title="RedDirectory class.">RedDirectory</a> class? Seems only to be used there and we could simplify it a bit there. </dd>
-<dt><a class="anchor" id="_todo000003"></a>Member <a class="el" href="classRedDirectory.html#a0f113244cd85c17848df991001d024f4">RedDirectory::$ext_path</a> </dt>
-<dd>I think this is not used anywhere, we always strip '/cloud' and only use it in debug </dd>
-<dt><a class="anchor" id="_todo000005"></a>Member <a class="el" href="classRedDirectory.html#a70173d4458572d95e586b2037d2fd2f4">RedDirectory::getDir</a> ()</dt>
+<dt><a class="anchor" id="_todo000002"></a>File <a class="el" href="include_2config_8php.html">config.php</a> </dt>
+<dd>There are a few places in the code (such as the admin panel) where boolean configurations need to be fixed as of 10/08/2011. </dd>
+<dt><a class="anchor" id="_todo000001"></a>Member <a class="el" href="boot_8php.html#a899d24fd074594ceebbf72e1feff335f">get_custom_nav</a> (&amp;$a, $navname)</dt>
+<dd>not fully implemented yet </dd>
+<dt><a class="anchor" id="_todo000009"></a>Member <a class="el" href="reddav_8php.html#ae92ea0df1993f6a7bcd1b6efa6c1fb66">RedChannelList</a> (&amp;$auth)</dt>
+<dd>Is there any reason why this is not inside RedDirectory class? function name looks like a class name, should we rename it? </dd>
+<dt><a class="anchor" id="_todo000010"></a>Member <a class="el" href="reddav_8php.html#a5df0d09893f2e65dc5cf6bbab6cfb266">RedCollectionData</a> ($file, &amp;$auth)</dt>
+<dd>Is there any reason why this is not inside RedDirectory class? Seems only to be used there and we could simplify it a bit there. function name looks like a class name, should we rename it? </dd>
+<dt><a class="anchor" id="_todo000008"></a>File <a class="el" href="reddav_8php.html">reddav.php</a> </dt>
+<dd>split up the classes into own files. </dd>
+<dt><a class="anchor" id="_todo000003"></a>Member <a class="el" href="classRedMatrix_1_1RedDAV_1_1RedBrowser.html#a8161f2a0be205412e263c947b5ec46c5">RedMatrix::__construct</a> (&amp;$auth)</dt>
+<dd>disable enablePost by default and only activate if permissions grant edit rights. </dd>
+<dt><a class="anchor" id="_todo000004"></a>Member <a class="el" href="classRedMatrix_1_1RedDAV_1_1RedBrowser.html#aa1607857cb59738c4dce2fe8e73d8f19">RedMatrix::set_writeable</a> ()</dt>
+<dd>Maybe this whole way of doing this can be solved with some $server-&gt;subscribeEvent(). </dd>
+<dt><a class="anchor" id="_todo000007"></a>Member <a class="el" href="classRedMatrix_1_1RedDAV_1_1RedDirectory.html#a825dc5f3e0f83f50736c16daa6a4809d">RedMatrix::getDir</a> ()</dt>
<dd>add description of what this function does. </dd>
-<dt><a class="anchor" id="_todo000004"></a>Member <a class="el" href="classRedDirectory.html#adc48035679e52c55d9881f83de535553">RedDirectory::setName</a> ($name)</dt>
+<dt><a class="anchor" id="_todo000006"></a>Member <a class="el" href="classRedMatrix_1_1RedDAV_1_1RedDirectory.html#a14ac61d31a031d139956763db4e03956">RedMatrix::setName</a> ($name)</dt>
<dd>handle duplicate directory name</dd>
</dl>
</div></div><!-- contents -->
diff --git a/doc/html/typo_8php.html b/doc/html/typo_8php.html
index 39533d0cf..ed74a536b 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="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#ad6f87a764fd35f522c7b4c351d7878ec">admin_page_channels()</a>, <a class="el" href="admin_8php.html#a42e628f367c168add8013352ac74d33f">admin_page_channels_post()</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="include_2apps_8php.html#ab93a3310b7de99ee90f673518eccb658">app_name_compare()</a>, <a class="el" href="appman_8php.html#af48805ac2f6f123f2681a8ae1c6f123f">appman_content()</a>, <a class="el" href="view_2theme_2apw_2php_2config_8php.html#ad59fc09da66b66267f9753c8b2dd68d0">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="block_8php.html#a8a82a470acdfbc7a8e749509caeeea45">block_content()</a>, <a class="el" href="block_8php.html#a9b61c96044ed2a068f18c10370a78d5c">block_init()</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#a774364b1c8404529581083631703527a">bookmarks_content()</a>, <a class="el" href="mod_2bookmarks_8php.html#a6b7942f3d27e40f0f47c88704127b9b3">bookmarks_init()</a>, <a class="el" href="zot_8php.html#aa97b33b619dd7132a9274f852af6ceb5">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#a4e8af0f0525161da74583c04b8b03097">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#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="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="diaspora_8php.html#a006731620a5242d410358b32678e48e3">diaspora_asphoto()</a>, <a class="el" href="diaspora_8php.html#a0fb2abe304aae19efc040a5e6b917829">diaspora_comment()</a>, <a class="el" href="diaspora_8php.html#adef30b6fac948baedcc7194d5d155b5f">diaspora_conversation()</a>, <a class="el" href="diaspora_8php.html#a5d57518545baa31cf8a85a937a267681">diaspora_like()</a>, <a class="el" href="diaspora_8php.html#a7cff2f8f11044c1b3a360f20e1bbee46">diaspora_message()</a>, <a class="el" href="diaspora_8php.html#a4901762cba5cd8dcdc57bdf285eefb1b">diaspora_msg_build()</a>, <a class="el" href="diaspora_8php.html#a71fe9bb66626b4197ae018a230778bb2">diaspora_photo()</a>, <a class="el" href="diaspora_8php.html#a20b968d64ef26afe5cb0cc75a7570a31">diaspora_post()</a>, <a class="el" href="diaspora_8php.html#a900abf51398b2ef26cd2cd31c52f1b0f">diaspora_profile()</a>, <a class="el" href="diaspora_8php.html#a586d5a3ba92d35cee14f879f290072aa">diaspora_pubmsg_build()</a>, <a class="el" href="diaspora_8php.html#ac1ab782a34552a7c6b4dc961754ed598">diaspora_request()</a>, <a class="el" href="diaspora_8php.html#a2bf43f6b5890897f425ef4325d34b007">diaspora_reshare()</a>, <a class="el" href="diaspora_8php.html#af4698b165766f83d89ec1ea964bc92cc">diaspora_send_followup()</a>, <a class="el" href="diaspora_8php.html#ae6f52efd81fe515cd9912bc8293abf5b">diaspora_send_images()</a>, <a class="el" href="diaspora_8php.html#aeb2bb78f620dbf51d9335e6eb7444f2c">diaspora_send_mail()</a>, <a class="el" href="diaspora_8php.html#a0b3628a5e53332c3d3196b689fe2b94d">diaspora_send_relay()</a>, <a class="el" href="diaspora_8php.html#a1704748aa2384c73e43f10e71defd31a">diaspora_send_retraction()</a>, <a class="el" href="diaspora_8php.html#a33ae0c4606a7df4d801c05507d87f668">diaspora_send_status()</a>, <a class="el" href="diaspora_8php.html#af3a7f9879c14fec761dcc5563fb39bac">diaspora_share()</a>, <a class="el" href="diaspora_8php.html#aa704d6aa2ac77be345c0f501168e6e56">diaspora_transmit()</a>, <a class="el" href="diaspora_8php.html#aa4b1cc0bca5c3fe8d11557685e0238a9">diaspora_unshare()</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#a555762e1022a4b8e3c3abd32e7812408">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#a7378e839ac3de9d55579eb3ec48eaf92">event_store_item()</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="externals_8php.html#a4df44079e6f915286088b7a0d44db926">externals_run()</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="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="hcard_8php.html#ac34f26b0e6a37eef44fa49bea135136d">hcard_init()</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#a6252d8eca67c689d9035ec6da544cf46">is_developer()</a>, <a class="el" href="boot_8php.html#aa1e828bbbcba170265eb2668d8daf42e">is_site_admin()</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="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="mytheme_2php_2theme_8php.html#a6ce5df8ece6acc09c1fddaccbeb244e8">mytheme_init()</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="mod_2probe_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="rbmark_8php.html#a43fec4960b50926251574762cc491f76">rbmark_content()</a>, <a class="el" href="rbmark_8php.html#ac5a66aa8599fa5dc702bae396d8d1f8c">rbmark_post()</a>, <a class="el" href="include_2api_8php.html#aafa82b65a9f879a1a1197cfe8aaf3898">red_item_new()</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="regver_8php.html#ad2c5f644fd1b099abd7c715b7df6f50f">regver_content()</a>, <a class="el" href="datetime_8php.html#a8ae8dc95ace7ac27fa5a1ecf42b78c82">relative_date()</a>, <a class="el" href="removeaccount_8php.html#a516e7380b9e5796054aa8245f3509695">removeaccount_content()</a>, <a class="el" href="removeaccount_8php.html#a26a3325292e932c59793430ab737126a">removeaccount_post()</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="include_2network_8php.html#a316f318167a039c89719afbd129a8f3c">scrape_feed()</a>, <a class="el" href="include_2network_8php.html#acb0bd7f5fe38ff1eaebeae3284525070">scrape_vcard()</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="account_8php.html#a030cec6793b909c439c0336ba39b1571">service_class_allows()</a>, <a class="el" href="account_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#ac6ae482ee54fa2764d5c2e77305aeb96">t()</a>, <a class="el" href="items_8php.html#ab1bce4261bcf75ad62753b498a144d17">tag_deliver()</a>, <a class="el" href="text_8php.html#ac2ff88e800f74b22e9cc091c10809c54">tag_sort_length()</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="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#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="toggle__mobile_8php.html#aca53ade8971802b45c31e722b22c6254">toggle_mobile_init()</a>, <a class="el" href="language_8php.html#a686bcafa6b0d5c86d37b38a1db5b6997">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__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="account_8php.html#ad07be417ac7eda939768804106ddea3d">user_approve()</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#a313a8d10ab81c71357c12e67e4d7efd5">widget_item()</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>
+<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#ad6f87a764fd35f522c7b4c351d7878ec">admin_page_channels()</a>, <a class="el" href="admin_8php.html#a42e628f367c168add8013352ac74d33f">admin_page_channels_post()</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="include_2apps_8php.html#ab93a3310b7de99ee90f673518eccb658">app_name_compare()</a>, <a class="el" href="appman_8php.html#af48805ac2f6f123f2681a8ae1c6f123f">appman_content()</a>, <a class="el" href="view_2theme_2apw_2php_2config_8php.html#ad59fc09da66b66267f9753c8b2dd68d0">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="block_8php.html#a8a82a470acdfbc7a8e749509caeeea45">block_content()</a>, <a class="el" href="block_8php.html#a9b61c96044ed2a068f18c10370a78d5c">block_init()</a>, <a class="el" href="blocks_8php.html#a2531a8fd51db3cecb2eb20c002c66e12">blocks_content()</a>, <a class="el" href="blocks_8php.html#aebe88302181883d2b17d6e98a1aaebe9">blocks_init()</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="zot_8php.html#aa97b33b619dd7132a9274f852af6ceb5">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#a4e8af0f0525161da74583c04b8b03097">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#ad2e96e917852f27dedfc263d37e13756">cloud_init()</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="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="diaspora_8php.html#a006731620a5242d410358b32678e48e3">diaspora_asphoto()</a>, <a class="el" href="diaspora_8php.html#a0fb2abe304aae19efc040a5e6b917829">diaspora_comment()</a>, <a class="el" href="diaspora_8php.html#adef30b6fac948baedcc7194d5d155b5f">diaspora_conversation()</a>, <a class="el" href="diaspora_8php.html#a5d57518545baa31cf8a85a937a267681">diaspora_like()</a>, <a class="el" href="diaspora_8php.html#a7cff2f8f11044c1b3a360f20e1bbee46">diaspora_message()</a>, <a class="el" href="diaspora_8php.html#a4901762cba5cd8dcdc57bdf285eefb1b">diaspora_msg_build()</a>, <a class="el" href="diaspora_8php.html#a71fe9bb66626b4197ae018a230778bb2">diaspora_photo()</a>, <a class="el" href="diaspora_8php.html#a20b968d64ef26afe5cb0cc75a7570a31">diaspora_post()</a>, <a class="el" href="diaspora_8php.html#a900abf51398b2ef26cd2cd31c52f1b0f">diaspora_profile()</a>, <a class="el" href="diaspora_8php.html#a586d5a3ba92d35cee14f879f290072aa">diaspora_pubmsg_build()</a>, <a class="el" href="diaspora_8php.html#ac1ab782a34552a7c6b4dc961754ed598">diaspora_request()</a>, <a class="el" href="diaspora_8php.html#a2bf43f6b5890897f425ef4325d34b007">diaspora_reshare()</a>, <a class="el" href="diaspora_8php.html#af4698b165766f83d89ec1ea964bc92cc">diaspora_send_followup()</a>, <a class="el" href="diaspora_8php.html#ae6f52efd81fe515cd9912bc8293abf5b">diaspora_send_images()</a>, <a class="el" href="diaspora_8php.html#aeb2bb78f620dbf51d9335e6eb7444f2c">diaspora_send_mail()</a>, <a class="el" href="diaspora_8php.html#a0b3628a5e53332c3d3196b689fe2b94d">diaspora_send_relay()</a>, <a class="el" href="diaspora_8php.html#a1704748aa2384c73e43f10e71defd31a">diaspora_send_retraction()</a>, <a class="el" href="diaspora_8php.html#a33ae0c4606a7df4d801c05507d87f668">diaspora_send_status()</a>, <a class="el" href="diaspora_8php.html#a69f250b078a46e405647428ec3399a16">diaspora_share()</a>, <a class="el" href="diaspora_8php.html#aa704d6aa2ac77be345c0f501168e6e56">diaspora_transmit()</a>, <a class="el" href="diaspora_8php.html#ab736d6f32b5de31c97cb579fc730e200">diaspora_unshare()</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#a555762e1022a4b8e3c3abd32e7812408">drop_item()</a>, <a class="el" href="editblock_8php.html#abbe8f55de06967bc8d79d620509a49e6">editblock_content()</a>, <a class="el" href="editblock_8php.html#ab7806bb42ae5e93f0330d7bd179d4b3e">editblock_init()</a>, <a class="el" href="editlayout_8php.html#aa877e4157a26b099de904164181dd386">editlayout_content()</a>, <a class="el" href="editlayout_8php.html#a97c1e93d9e75ad8cd2c2f9a7f77341a7">editlayout_init()</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="editwebpage_8php.html#a94109f9c796fbe92508bf9574e35d19f">editwebpage_init()</a>, <a class="el" href="event_8php.html#a32ba1b9ddf7a744a9a1512b052e5f850">ev_compare()</a>, <a class="el" href="event_8php.html#a7378e839ac3de9d55579eb3ec48eaf92">event_store_item()</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="externals_8php.html#a4df44079e6f915286088b7a0d44db926">externals_run()</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="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="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="text_8php.html#aa22feef4de326e1d7078dedd892e615c">handle_tag()</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="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="hivenet_2php_2theme_8php.html#a3a8b539b112ae63936025236dbaf0a29">hivenet_init()</a>, <a class="el" href="home_8php.html#a6e3dbf78f4ed74ab2577de221190b33f">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="impel_8php.html#ab7db6fca43b42ea4332cb3e841b3cf7b">impel_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#a6252d8eca67c689d9035ec6da544cf46">is_developer()</a>, <a class="el" href="boot_8php.html#aa1e828bbbcba170265eb2668d8daf42e">is_site_admin()</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="layouts_8php.html#a39c8e9f72641c684c8b689bd91a642fa">layouts_init()</a>, <a class="el" href="like_8php.html#a9d7dd268f21c21e9d29dd2aca2dd9538">like_content()</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#a559791dda7fef8a4b2394c83e835787b">load_pconfig()</a>, <a class="el" href="boot_8php.html#a50a6707a28c7d05d3f49eaabc7994501">load_pdl()</a>, <a class="el" href="language_8php.html#a7e9904c730bb24ddcb0ff50fc96f6b05">load_translation_table()</a>, <a class="el" href="include_2config_8php.html#aee4b619839cf4b64220f34edf5c67b52">load_xconfig()</a>, <a class="el" href="locs_8php.html#a6c900f53970c0d0e738d2fe06d27ca44">locs_content()</a>, <a class="el" href="locs_8php.html#a6b43654592919ac863d67a1f787a69b9">locs_post()</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_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#a7ae136dd7476865b4828136175db5022">mood_init()</a>, <a class="el" href="msearch_8php.html#ac80d2a6c0a92e79eec7efbbccd74d9a8">msearch_post()</a>, <a class="el" href="mytheme_2php_2theme_8php.html#a6ce5df8ece6acc09c1fddaccbeb244e8">mytheme_init()</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="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="p_8php.html#af9d5530ca0b3dc9409cf591c39e2480e">p_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="mod_2probe_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="rbmark_8php.html#a43fec4960b50926251574762cc491f76">rbmark_content()</a>, <a class="el" href="rbmark_8php.html#ac5a66aa8599fa5dc702bae396d8d1f8c">rbmark_post()</a>, <a class="el" href="include_2api_8php.html#aafa82b65a9f879a1a1197cfe8aaf3898">red_item_new()</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="regver_8php.html#ad2c5f644fd1b099abd7c715b7df6f50f">regver_content()</a>, <a class="el" href="datetime_8php.html#a8ae8dc95ace7ac27fa5a1ecf42b78c82">relative_date()</a>, <a class="el" href="removeaccount_8php.html#a516e7380b9e5796054aa8245f3509695">removeaccount_content()</a>, <a class="el" href="removeaccount_8php.html#a26a3325292e932c59793430ab737126a">removeaccount_post()</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="include_2network_8php.html#a316f318167a039c89719afbd129a8f3c">scrape_feed()</a>, <a class="el" href="include_2network_8php.html#acb0bd7f5fe38ff1eaebeae3284525070">scrape_vcard()</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="include_2message_8php.html#a751ffd6635022b2190f56154ee745752">send_message()</a>, <a class="el" href="account_8php.html#a030cec6793b909c439c0336ba39b1571">service_class_allows()</a>, <a class="el" href="account_8php.html#a905b54e10704b283ac64680a8abc0971">service_class_fetch()</a>, <a class="el" href="service__limits_8php.html#a653424aac63c5cd05ba70c3c77bf7f8a">service_limits_content()</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="stumble_2php_2theme_8php.html#a71db9eff6289e0ee47771c37c01d6753">stumble_init()</a>, <a class="el" href="subthread_8php.html#a50368f3d825b77996030528e7fbfa3d3">subthread_content()</a>, <a class="el" href="suckerberg_2php_2theme_8php.html#a4104fce7d5fb71d15ed811978b628fc8">suckerberg_init()</a>, <a class="el" href="suggest_8php.html#a58748a8235d4523f8333847f3e42dd91">suggest_content()</a>, <a class="el" href="language_8php.html#ac6ae482ee54fa2764d5c2e77305aeb96">t()</a>, <a class="el" href="items_8php.html#ab1bce4261bcf75ad62753b498a144d17">tag_deliver()</a>, <a class="el" href="text_8php.html#ac2ff88e800f74b22e9cc091c10809c54">tag_sort_length()</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="items_8php.html#a88c6cf7649ac836fbbed82a7a0315110">tgroup_check()</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#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="toggle__mobile_8php.html#aca53ade8971802b45c31e722b22c6254">toggle_mobile_init()</a>, <a class="el" href="language_8php.html#a686bcafa6b0d5c86d37b38a1db5b6997">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__display_8php.html#aa36ac524059e209d5d75a03c16206246">update_display_content()</a>, <a class="el" href="update__home_8php.html#a668340089acd150b830134476a647d05">update_home_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="account_8php.html#ad07be417ac7eda939768804106ddea3d">user_approve()</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="webpages_8php.html#af9ad0b65eba79acead3fa32b43d888b7">webpages_init()</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#af919de8e7e2ba8192a65fadc72a2c8b5">widget_catcloud_wall()</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#a313a8d10ab81c71357c12e67e4d7efd5">widget_item()</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 0ff9a52ee..775f1fde8 100644
--- a/doc/html/typohelper_8php.html
+++ b/doc/html/typohelper_8php.html
@@ -130,7 +130,7 @@ Variables</h2></td></tr>
<b>Initial value:</b><div class="fragment"><div class="line">= &lt;&lt;&lt; <a class="code" href="typohelper_8php.html#ab6fd357fb5b2a3ba8aab9e8b98c6a805">EOT</a></div>
<div class="line"> error_reporting(E_ERROR | E_WARNING | E_PARSE )</div>
</div><!-- fragment -->
-<p>Referenced by <a class="el" href="include_2api_8php.html#aea2dda92a155f2843a0ca188d8dfdf25">api_date()</a>, <a class="el" href="setup_8php.html#a14d208682a88632290c895d20da6e7d6">check_php()</a>, <a class="el" href="text_8php.html#a0c65597bb4aed3a039eb795ff540e5e3">check_webbie()</a>, <a class="el" href="dba__driver_8php.html#ab222aa1dbf9ea93b320f82028739127e">dbesc()</a>, <a class="el" href="classdba__mysql.html#a99a7691ea6cb1300031fb6549379066e">dba_mysql\escape()</a>, <a class="el" href="classdba__mysqli.html#a27d6a748af7f80028801306e7ea33f64">dba_mysqli\escape()</a>, <a class="el" href="items_8php.html#a8cda98925a4c5c2f6dade70d9586d79a">filter_insecure()</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#a67ca417634de2d0beffffc54aeb951ff">head_get_main_js()</a>, <a class="el" href="items_8php.html#acf0bf7c9d21ac84f32effb754f7ad484">item_store_update()</a>, <a class="el" href="items_8php.html#aa2d3caa2f27720762b5c729e07df40fb">list_post_dates()</a>, <a class="el" href="setup_8php.html#ad2e0375a9ab87ebe6e78124ee125054a">load_database()</a>, <a class="el" href="include_2photos_8php.html#a7e7abc69872180697c5471dc69349afe">photos_album_get_db_idstr()</a>, <a class="el" href="mod_2photos_8php.html#a062bed4d04d14fee8a53f4c9be673080">photos_post()</a>, <a class="el" href="items_8php.html#ad2abb4644ff1f20fefbc80326fe01cf0">posted_dates()</a>, <a class="el" href="datetime_8php.html#a8ae8dc95ace7ac27fa5a1ecf42b78c82">relative_date()</a>, <a class="el" href="security_8php.html#a6126c77a1267e046ac59cf864613f011">stream_perms_api_uids()</a>, <a class="el" href="security_8php.html#a3ef2be6a7e4928e39d50059d6feb457c">stream_perms_xchans()</a>, <a class="el" href="thing_8php.html#a8be23b1d475ec3d9291999221c674c80">thing_init()</a>, and <a class="el" href="text_8php.html#aaed4413ed8918838b517e3b2fafaea0d">xmlify()</a>.</p>
+<p>Referenced by <a class="el" href="include_2api_8php.html#aea2dda92a155f2843a0ca188d8dfdf25">api_date()</a>, <a class="el" href="setup_8php.html#a14d208682a88632290c895d20da6e7d6">check_php()</a>, <a class="el" href="text_8php.html#a0c65597bb4aed3a039eb795ff540e5e3">check_webbie()</a>, <a class="el" href="classdba__mysql.html#a99a7691ea6cb1300031fb6549379066e">dba_mysql\escape()</a>, <a class="el" href="classdba__mysqli.html#a27d6a748af7f80028801306e7ea33f64">dba_mysqli\escape()</a>, <a class="el" href="classdba__postgres.html#a7108eaaae7cc2fb236212041afc9ac0f">dba_postgres\escape()</a>, <a class="el" href="classdba__postgres.html#ab2e44e9f41d05e585afd873d18e8c127">dba_postgres\escape_identifier()</a>, <a class="el" href="classdba__postgres.html#a8d2c6d8c92fe6f074452876483dd17fc">dba_postgres\escapebin()</a>, <a class="el" href="items_8php.html#a8cda98925a4c5c2f6dade70d9586d79a">filter_insecure()</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#a67ca417634de2d0beffffc54aeb951ff">head_get_main_js()</a>, <a class="el" href="items_8php.html#acf0bf7c9d21ac84f32effb754f7ad484">item_store_update()</a>, <a class="el" href="items_8php.html#ab33fa9756aaa5f39a6104d57a62baf00">list_post_dates()</a>, <a class="el" href="setup_8php.html#ad2e0375a9ab87ebe6e78124ee125054a">load_database()</a>, <a class="el" href="include_2photos_8php.html#a7e7abc69872180697c5471dc69349afe">photos_album_get_db_idstr()</a>, <a class="el" href="mod_2photos_8php.html#a062bed4d04d14fee8a53f4c9be673080">photos_post()</a>, <a class="el" href="items_8php.html#ad2abb4644ff1f20fefbc80326fe01cf0">posted_dates()</a>, <a class="el" href="datetime_8php.html#a8ae8dc95ace7ac27fa5a1ecf42b78c82">relative_date()</a>, <a class="el" href="security_8php.html#a6126c77a1267e046ac59cf864613f011">stream_perms_api_uids()</a>, <a class="el" href="security_8php.html#a3ef2be6a7e4928e39d50059d6feb457c">stream_perms_xchans()</a>, <a class="el" href="thing_8php.html#a8be23b1d475ec3d9291999221c674c80">thing_init()</a>, <a class="el" href="classdba__postgres.html#a677f850211975c9ab89602c67e2dcad9">dba_postgres\unescapebin()</a>, and <a class="el" href="text_8php.html#aaed4413ed8918838b517e3b2fafaea0d">xmlify()</a>.</p>
</div>
</div>
@@ -144,7 +144,7 @@ Variables</h2></td></tr>
</table>
</div><div class="memdoc">
-<p>Referenced by <a class="el" href="diaspora_8php.html#a5d57518545baa31cf8a85a937a267681">diaspora_like()</a>, <a class="el" href="diaspora_8php.html#a4901762cba5cd8dcdc57bdf285eefb1b">diaspora_msg_build()</a>, <a class="el" href="diaspora_8php.html#a586d5a3ba92d35cee14f879f290072aa">diaspora_pubmsg_build()</a>, <a class="el" href="nav_8php.html#a43be0df73b90647ea70947ce004e231e">nav()</a>, <a class="el" href="subthread_8php.html#a50368f3d825b77996030528e7fbfa3d3">subthread_content()</a>, <a class="el" href="system__unavailable_8php.html#a73751a6bcc17ad3ca503496e2fb020fa">system_down()</a>, and <a class="el" href="widgets_8php.html#a9d60539db68042e63c0015abd69a6f7a">widget_clock()</a>.</p>
+<p>Referenced by <a class="el" href="diaspora_8php.html#a4901762cba5cd8dcdc57bdf285eefb1b">diaspora_msg_build()</a>, <a class="el" href="diaspora_8php.html#a586d5a3ba92d35cee14f879f290072aa">diaspora_pubmsg_build()</a>, <a class="el" href="nav_8php.html#a43be0df73b90647ea70947ce004e231e">nav()</a>, <a class="el" href="subthread_8php.html#a50368f3d825b77996030528e7fbfa3d3">subthread_content()</a>, <a class="el" href="system__unavailable_8php.html#a73751a6bcc17ad3ca503496e2fb020fa">system_down()</a>, and <a class="el" href="widgets_8php.html#a9d60539db68042e63c0015abd69a6f7a">widget_clock()</a>.</p>
</div>
</div>
diff --git a/doc/html/uexport_8php.html b/doc/html/uexport_8php.html
index ac904249a..dc0265b2e 100644
--- a/doc/html/uexport_8php.html
+++ b/doc/html/uexport_8php.html
@@ -114,8 +114,26 @@ $(document).ready(function(){initNavTree('uexport_8php.html','');});
Functions</h2></td></tr>
<tr class="memitem:a118920137dedebe0581623a2e57e7b0d"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="uexport_8php.html#a118920137dedebe0581623a2e57e7b0d">uexport_init</a> (&amp;$a)</td></tr>
<tr class="separator:a118920137dedebe0581623a2e57e7b0d"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ae6f79d60916c01675c8cf663cb5fec84"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="uexport_8php.html#ae6f79d60916c01675c8cf663cb5fec84">uexport_content</a> (&amp;$a)</td></tr>
+<tr class="separator:ae6f79d60916c01675c8cf663cb5fec84"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table>
<h2 class="groupheader">Function Documentation</h2>
+<a class="anchor" id="ae6f79d60916c01675c8cf663cb5fec84"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">uexport_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="a118920137dedebe0581623a2e57e7b0d"></a>
<div class="memitem">
<div class="memproto">
diff --git a/doc/html/uexport_8php.js b/doc/html/uexport_8php.js
index 05a236df8..ec8404f5c 100644
--- a/doc/html/uexport_8php.js
+++ b/doc/html/uexport_8php.js
@@ -1,4 +1,5 @@
var uexport_8php =
[
+ [ "uexport_content", "uexport_8php.html#ae6f79d60916c01675c8cf663cb5fec84", null ],
[ "uexport_init", "uexport_8php.html#a118920137dedebe0581623a2e57e7b0d", null ]
]; \ No newline at end of file
diff --git a/doc/html/update__home_8php.html b/doc/html/update__home_8php.html
new file mode 100644
index 000000000..ce5a5581e
--- /dev/null
+++ b/doc/html/update__home_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/update_home.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('update__home_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">update_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:a668340089acd150b830134476a647d05"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="update__home_8php.html#a668340089acd150b830134476a647d05">update_home_content</a> (&amp;$a)</td></tr>
+<tr class="separator:a668340089acd150b830134476a647d05"><td class="memSeparator" colspan="2">&#160;</td></tr>
+</table>
+<h2 class="groupheader">Function Documentation</h2>
+<a class="anchor" id="a668340089acd150b830134476a647d05"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">update_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>
+</div><!-- contents -->
+</div><!-- doc-content -->
+
diff --git a/doc/html/update__home_8php.js b/doc/html/update__home_8php.js
new file mode 100644
index 000000000..eda951a37
--- /dev/null
+++ b/doc/html/update__home_8php.js
@@ -0,0 +1,4 @@
+var update__home_8php =
+[
+ [ "update_home_content", "update__home_8php.html#a668340089acd150b830134476a647d05", null ]
+]; \ No newline at end of file
diff --git a/doc/html/webpages_8php.html b/doc/html/webpages_8php.html
index 303ce4718..f82e10ed4 100644
--- a/doc/html/webpages_8php.html
+++ b/doc/html/webpages_8php.html
@@ -112,6 +112,8 @@ $(document).ready(function(){initNavTree('webpages_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:af9ad0b65eba79acead3fa32b43d888b7"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="webpages_8php.html#af9ad0b65eba79acead3fa32b43d888b7">webpages_init</a> (&amp;$a)</td></tr>
+<tr class="separator:af9ad0b65eba79acead3fa32b43d888b7"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:af3b7397d4abc153e3d2147740ee1a41d"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="webpages_8php.html#af3b7397d4abc153e3d2147740ee1a41d">webpages_content</a> (&amp;$a)</td></tr>
<tr class="separator:af3b7397d4abc153e3d2147740ee1a41d"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table>
@@ -132,6 +134,22 @@ Functions</h2></td></tr>
</div>
</div>
+<a class="anchor" id="af9ad0b65eba79acead3fa32b43d888b7"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">webpages_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/webpages_8php.js b/doc/html/webpages_8php.js
index 8e145305c..961f9a5e8 100644
--- a/doc/html/webpages_8php.js
+++ b/doc/html/webpages_8php.js
@@ -1,4 +1,5 @@
var webpages_8php =
[
- [ "webpages_content", "webpages_8php.html#af3b7397d4abc153e3d2147740ee1a41d", null ]
+ [ "webpages_content", "webpages_8php.html#af3b7397d4abc153e3d2147740ee1a41d", null ],
+ [ "webpages_init", "webpages_8php.html#af9ad0b65eba79acead3fa32b43d888b7", null ]
]; \ No newline at end of file
diff --git a/doc/html/widgets_8php.html b/doc/html/widgets_8php.html
index 0d3e55b22..03fd52903 100644
--- a/doc/html/widgets_8php.html
+++ b/doc/html/widgets_8php.html
@@ -109,6 +109,9 @@ $(document).ready(function(){initNavTree('widgets_8php.html','');});
<div class="title">widgets.php File Reference</div> </div>
</div><!--header-->
<div class="contents">
+
+<p>This file contains the widgets.
+<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>
@@ -138,6 +141,8 @@ Functions</h2></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:af919de8e7e2ba8192a65fadc72a2c8b5"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="widgets_8php.html#af919de8e7e2ba8192a65fadc72a2c8b5">widget_catcloud_wall</a> ($arr)</td></tr>
+<tr class="separator:af919de8e7e2ba8192a65fadc72a2c8b5"><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>
@@ -172,8 +177,14 @@ Functions</h2></td></tr>
<tr class="separator:a9d60539db68042e63c0015abd69a6f7a"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a999ba893cac7600d3d3b4e7e14cf8c20"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="widgets_8php.html#a999ba893cac7600d3d3b4e7e14cf8c20">widget_photo</a> ($arr)</td></tr>
<tr class="separator:a999ba893cac7600d3d3b4e7e14cf8c20"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:af8eb466ef91d9e96e13335ead5eba380"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="widgets_8php.html#af8eb466ef91d9e96e13335ead5eba380">widget_photo_rand</a> ($arr)</td></tr>
+<tr class="separator:af8eb466ef91d9e96e13335ead5eba380"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a829c5a5c7448129266fc1df3ae1a3c2e"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="widgets_8php.html#a829c5a5c7448129266fc1df3ae1a3c2e">widget_random_block</a> ($arr)</td></tr>
+<tr class="separator:a829c5a5c7448129266fc1df3ae1a3c2e"><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>This file contains the widgets. </p>
+</div><h2 class="groupheader">Function Documentation</h2>
<a class="anchor" id="add9b24d3304e529a7975e96122315554"></a>
<div class="memitem">
<div class="memproto">
@@ -238,6 +249,22 @@ Functions</h2></td></tr>
</div>
</div>
+<a class="anchor" id="af919de8e7e2ba8192a65fadc72a2c8b5"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">widget_catcloud_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="af37fdad3b2e861d860a4a8c4d8a76c0b"></a>
<div class="memitem">
<div class="memproto">
@@ -333,7 +360,6 @@ Functions</h2></td></tr>
</tr>
</table>
</div><div class="memdoc">
-<p>The following directory widgets are only useful on the directory page </p>
</div>
</div>
@@ -536,6 +562,22 @@ Functions</h2></td></tr>
</div>
</div>
+<a class="anchor" id="af8eb466ef91d9e96e13335ead5eba380"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">widget_photo_rand </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">
@@ -554,6 +596,22 @@ Functions</h2></td></tr>
</div>
</div>
+<a class="anchor" id="a829c5a5c7448129266fc1df3ae1a3c2e"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">widget_random_block </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="a94203eb9bcd63cbdecbbcb15163598d8"></a>
<div class="memitem">
<div class="memproto">
diff --git a/doc/html/widgets_8php.js b/doc/html/widgets_8php.js
index 69c9d267d..f78b49912 100644
--- a/doc/html/widgets_8php.js
+++ b/doc/html/widgets_8php.js
@@ -4,6 +4,7 @@ var widgets_8php =
[ "widget_appselect", "widgets_8php.html#aced5cb177f630b30799c5eab873ee75c", null ],
[ "widget_archive", "widgets_8php.html#a7b1e357b5a2027718470b77ec921fc65", null ],
[ "widget_bookmarkedchats", "widgets_8php.html#a0e2f5179ed1a73b282dfda7270fcabb3", null ],
+ [ "widget_catcloud_wall", "widgets_8php.html#af919de8e7e2ba8192a65fadc72a2c8b5", null ],
[ "widget_categories", "widgets_8php.html#af37fdad3b2e861d860a4a8c4d8a76c0b", null ],
[ "widget_chatroom_list", "widgets_8php.html#a47c72aac42058ea086c9ef8651c259da", null ],
[ "widget_clock", "widgets_8php.html#a9d60539db68042e63c0015abd69a6f7a", null ],
@@ -22,7 +23,9 @@ var widgets_8php =
[ "widget_notes", "widgets_8php.html#a45ea061dabe9a8372e4ca3b9e5714256", null ],
[ "widget_photo", "widgets_8php.html#a999ba893cac7600d3d3b4e7e14cf8c20", null ],
[ "widget_photo_albums", "widgets_8php.html#a702e2fc0adc9b615999eca18b7311b5e", null ],
+ [ "widget_photo_rand", "widgets_8php.html#af8eb466ef91d9e96e13335ead5eba380", null ],
[ "widget_profile", "widgets_8php.html#abd2e508a2a0b911c4a838e3cb7599923", null ],
+ [ "widget_random_block", "widgets_8php.html#a829c5a5c7448129266fc1df3ae1a3c2e", null ],
[ "widget_savedsearch", "widgets_8php.html#a94203eb9bcd63cbdecbbcb15163598d8", null ],
[ "widget_settings_menu", "widgets_8php.html#aaa73bcf1702eaadd9dcd253502f55e01", null ],
[ "widget_suggestedchats", "widgets_8php.html#a50b1410238100c8a94c06b0aa63ee3b8", null ],
diff --git a/doc/html/zot_8php.html b/doc/html/zot_8php.html
index e62ee94f8..9d79e4f17 100644
--- a/doc/html/zot_8php.html
+++ b/doc/html/zot_8php.html
@@ -118,8 +118,8 @@ Functions</h2></td></tr>
<tr class="separator:a0fc2211c5309d9f925ecc4115e3fdb75"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ae7cec2b417b5858fd4a41070f843d1d7"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="zot_8php.html#ae7cec2b417b5858fd4a41070f843d1d7">zot_get_hublocs</a> ($hash)</td></tr>
<tr class="separator:ae7cec2b417b5858fd4a41070f843d1d7"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:a3862b3161b2c8557dc1a95020179bd81"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="zot_8php.html#a3862b3161b2c8557dc1a95020179bd81">zot_build_packet</a> ($channel, $type= 'notify', $recipients=null, $remote_key=null, $secret=null)</td></tr>
-<tr class="separator:a3862b3161b2c8557dc1a95020179bd81"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a084c581d534e7e3b759488b46602288f"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="zot_8php.html#a084c581d534e7e3b759488b46602288f">zot_build_packet</a> ($channel, $type= 'notify', $recipients=null, $remote_key=null, $secret=null, $extra=null)</td></tr>
+<tr class="separator:a084c581d534e7e3b759488b46602288f"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ab3e9b99ddb11353f37f265a05bb42142"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="zot_8php.html#ab3e9b99ddb11353f37f265a05bb42142">zot_zot</a> ($url, $data)</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>
@@ -142,8 +142,8 @@ Functions</h2></td></tr>
<tr class="separator:a083aec6c900d244e1bfc1406f9461465"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a703f528ade8382cf374e4119bd6f7859"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="zot_8php.html#a703f528ade8382cf374e4119bd6f7859">allowed_public_recips</a> ($msg)</td></tr>
<tr class="separator:a703f528ade8382cf374e4119bd6f7859"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:a4d9e6ca295e443b740d9960c304b3474"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="zot_8php.html#a4d9e6ca295e443b740d9960c304b3474">process_delivery</a> ($sender, $arr, $deliveries, $relay, $public=false)</td></tr>
-<tr class="separator:a4d9e6ca295e443b740d9960c304b3474"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a0e3006e7a456b2175a9badc96bc5176d"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="zot_8php.html#a0e3006e7a456b2175a9badc96bc5176d">process_delivery</a> ($sender, $arr, $deliveries, $relay, $public=false, $request=false)</td></tr>
+<tr class="separator:a0e3006e7a456b2175a9badc96bc5176d"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:aad25a3fe0e1566121d6fb8222979bc10"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="zot_8php.html#aad25a3fe0e1566121d6fb8222979bc10">remove_community_tag</a> ($sender, $arr, $uid)</td></tr>
<tr class="separator:aad25a3fe0e1566121d6fb8222979bc10"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a31aad56acf8ff8f2353e6ff8595544df"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="zot_8php.html#a31aad56acf8ff8f2353e6ff8595544df">update_imported_item</a> ($sender, $item, $uid)</td></tr>
@@ -154,6 +154,12 @@ Functions</h2></td></tr>
<tr class="separator:aa6ae96db8cbbdbb10e6876d206bbf7cc"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a9a57b40669351c9791126b925cb7ef3b"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="zot_8php.html#a9a57b40669351c9791126b925cb7ef3b">process_profile_delivery</a> ($sender, $arr, $deliveries)</td></tr>
<tr class="separator:a9a57b40669351c9791126b925cb7ef3b"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a8eeefdb0dad4c436bea9d1c06c0a7988"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="zot_8php.html#a8eeefdb0dad4c436bea9d1c06c0a7988">process_location_delivery</a> ($sender, $arr, $deliveries)</td></tr>
+<tr class="separator:a8eeefdb0dad4c436bea9d1c06c0a7988"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ab15c04e7e5f44edf45ec50dd7d183254"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="zot_8php.html#ab15c04e7e5f44edf45ec50dd7d183254">sync_locations</a> ($sender, $arr, $absolute=false)</td></tr>
+<tr class="separator:ab15c04e7e5f44edf45ec50dd7d183254"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ae26ce9f1ad74139193fb6319beac5fca"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="zot_8php.html#ae26ce9f1ad74139193fb6319beac5fca">zot_encode_locations</a> ($channel)</td></tr>
+<tr class="separator:ae26ce9f1ad74139193fb6319beac5fca"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a20750dd2c36961013fd382fb34e1366c"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="zot_8php.html#a20750dd2c36961013fd382fb34e1366c">import_directory_profile</a> ($hash, $profile, $addr, $ud_flags=<a class="el" href="boot_8php.html#a9690d73434125ce594a1f5e7c2a4f7c0">UPDATE_FLAGS_UPDATED</a>, $suppress_update=0)</td></tr>
<tr class="separator:a20750dd2c36961013fd382fb34e1366c"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a3bf11286c2619b4ca28e49d5b5ab374a"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="zot_8php.html#a3bf11286c2619b4ca28e49d5b5ab374a">import_directory_keywords</a> ($hash, $keywords)</td></tr>
@@ -168,8 +174,10 @@ Functions</h2></td></tr>
<tr class="separator:ac301c67864917c35922257950ae0f95c"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a8e22dbc6f884be3644a892a876cbd972"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="zot_8php.html#a8e22dbc6f884be3644a892a876cbd972">get_rpost_path</a> ($observer)</td></tr>
<tr class="separator:a8e22dbc6f884be3644a892a876cbd972"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:ad149f1e98c0c5b88ff9147e6ee3f330d"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="zot_8php.html#ad149f1e98c0c5b88ff9147e6ee3f330d">import_author_zot</a> ($<a class="el" href="boot_8php.html#a01353c9abebc3544ea080ac161729632">x</a>)</td></tr>
+<tr class="memitem:ad149f1e98c0c5b88ff9147e6ee3f330d"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="zot_8php.html#ad149f1e98c0c5b88ff9147e6ee3f330d">import_author_zot</a> ($<a class="el" href="boot_8php.html#ae97836b0547953be182a2334c9c91d3c">x</a>)</td></tr>
<tr class="separator:ad149f1e98c0c5b88ff9147e6ee3f330d"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a3920afe14fc1d82020161b4b86bcd9ac"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="zot_8php.html#a3920afe14fc1d82020161b4b86bcd9ac">zot_process_message_request</a> ($data)</td></tr>
+<tr class="separator:a3920afe14fc1d82020161b4b86bcd9ac"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table>
<h2 class="groupheader">Function Documentation</h2>
<a class="anchor" id="a703f528ade8382cf374e4119bd6f7859"></a>
@@ -255,7 +263,7 @@ Functions</h2></td></tr>
</table>
</div><div class="memdoc">
-<p>Referenced by <a class="el" href="zot_8php.html#a4d9e6ca295e443b740d9960c304b3474">process_delivery()</a>.</p>
+<p>Referenced by <a class="el" href="zot_8php.html#a0e3006e7a456b2175a9badc96bc5176d">process_delivery()</a>.</p>
</div>
</div>
@@ -467,7 +475,7 @@ Functions</h2></td></tr>
<p>function make_xchan_hash($guid,$guid_sig)</p>
<p>Generates a portable hash identifier for the channel identified by $guid and signed with $guid_sig This ID is portable across the network but MUST be calculated locally by verifying the signature and can not be trusted as an identity. </p>
-<p>Referenced by <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="items_8php.html#a536d0313b6ffe33b9d2490c4e25c5361">get_item_elements()</a>, <a class="el" href="zot_8php.html#ad149f1e98c0c5b88ff9147e6ee3f330d">import_author_zot()</a>, <a class="el" href="zot_8php.html#a528e97ca5d69c3b7f35c5d954afde315">import_xchan()</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#aeea071f17e306fe3d0c488551906bfab">zot_import()</a>, and <a class="el" href="zot_8php.html#a5bcdfef419b16075a0eca990956223dc">zot_register_hub()</a>.</p>
+<p>Referenced by <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="items_8php.html#a536d0313b6ffe33b9d2490c4e25c5361">get_item_elements()</a>, <a class="el" href="zot_8php.html#ad149f1e98c0c5b88ff9147e6ee3f330d">import_author_zot()</a>, <a class="el" href="zot_8php.html#a528e97ca5d69c3b7f35c5d954afde315">import_xchan()</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#aeea071f17e306fe3d0c488551906bfab">zot_import()</a>, <a class="el" href="zot_8php.html#a3920afe14fc1d82020161b4b86bcd9ac">zot_process_message_request()</a>, and <a class="el" href="zot_8php.html#a5bcdfef419b16075a0eca990956223dc">zot_register_hub()</a>.</p>
</div>
</div>
@@ -505,7 +513,7 @@ Functions</h2></td></tr>
</div>
</div>
-<a class="anchor" id="a4d9e6ca295e443b740d9960c304b3474"></a>
+<a class="anchor" id="a0e3006e7a456b2175a9badc96bc5176d"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
@@ -537,7 +545,13 @@ Functions</h2></td></tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">&#160;</td>
- <td class="paramname"><em>$public</em> = <code>false</code>&#160;</td>
+ <td class="paramname"><em>$public</em> = <code>false</code>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">&#160;</td>
+ <td class="paramname"><em>$request</em> = <code>false</code>&#160;</td>
</tr>
<tr>
<td></td>
@@ -551,6 +565,40 @@ Functions</h2></td></tr>
</div>
</div>
+<a class="anchor" id="a8eeefdb0dad4c436bea9d1c06c0a7988"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">process_location_delivery </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>$arr</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">&#160;</td>
+ <td class="paramname"><em>$deliveries</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="zot_8php.html#aeea071f17e306fe3d0c488551906bfab">zot_import()</a>.</p>
+
+</div>
+</div>
<a class="anchor" id="aa6ae96db8cbbdbb10e6876d206bbf7cc"></a>
<div class="memitem">
<div class="memproto">
@@ -667,7 +715,41 @@ Functions</h2></td></tr>
</table>
</div><div class="memdoc">
-<p>Referenced by <a class="el" href="zot_8php.html#a4d9e6ca295e443b740d9960c304b3474">process_delivery()</a>.</p>
+<p>Referenced by <a class="el" href="zot_8php.html#a0e3006e7a456b2175a9badc96bc5176d">process_delivery()</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="ab15c04e7e5f44edf45ec50dd7d183254"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">sync_locations </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>$arr</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">&#160;</td>
+ <td class="paramname"><em>$absolute</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="zot_8php.html#a528e97ca5d69c3b7f35c5d954afde315">import_xchan()</a>, and <a class="el" href="zot_8php.html#a8eeefdb0dad4c436bea9d1c06c0a7988">process_location_delivery()</a>.</p>
</div>
</div>
@@ -701,7 +783,7 @@ Functions</h2></td></tr>
</table>
</div><div class="memdoc">
-<p>Referenced by <a class="el" href="zot_8php.html#a4d9e6ca295e443b740d9960c304b3474">process_delivery()</a>.</p>
+<p>Referenced by <a class="el" href="zot_8php.html#a0e3006e7a456b2175a9badc96bc5176d">process_delivery()</a>.</p>
</div>
</div>
@@ -741,11 +823,11 @@ Functions</h2></td></tr>
</table>
</div><div class="memdoc">
-<p>Referenced by <a class="el" href="zot_8php.html#a20750dd2c36961013fd382fb34e1366c">import_directory_profile()</a>, <a class="el" href="zot_8php.html#a528e97ca5d69c3b7f35c5d954afde315">import_xchan()</a>, and <a class="el" href="dir__fns_8php.html#acd37b17dce3bdec6d5a6344a20598c1e">local_dir_update()</a>.</p>
+<p>Referenced by <a class="el" href="zot_8php.html#a20750dd2c36961013fd382fb34e1366c">import_directory_profile()</a>, <a class="el" href="zot_8php.html#a528e97ca5d69c3b7f35c5d954afde315">import_xchan()</a>, <a class="el" href="dir__fns_8php.html#acd37b17dce3bdec6d5a6344a20598c1e">local_dir_update()</a>, and <a class="el" href="zot_8php.html#a8eeefdb0dad4c436bea9d1c06c0a7988">process_location_delivery()</a>.</p>
</div>
</div>
-<a class="anchor" id="a3862b3161b2c8557dc1a95020179bd81"></a>
+<a class="anchor" id="a084c581d534e7e3b759488b46602288f"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
@@ -777,7 +859,13 @@ Functions</h2></td></tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">&#160;</td>
- <td class="paramname"><em>$secret</em> = <code>null</code>&#160;</td>
+ <td class="paramname"><em>$secret</em> = <code>null</code>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">&#160;</td>
+ <td class="paramname"><em>$extra</em> = <code>null</code>&#160;</td>
</tr>
<tr>
<td></td>
@@ -799,7 +887,25 @@ Functions</h2></td></tr>
</dl>
<dl class="section return"><dt>Returns</dt><dd>string json encoded zot packet </dd></dl>
-<p>Referenced by <a class="el" href="admin_8php.html#a60ba9783ad14545814919970bc3fb725">admin_page_hubloc_post()</a>, <a class="el" href="zot_8php.html#aa97b33b619dd7132a9274f852af6ceb5">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#aa97b33b619dd7132a9274f852af6ceb5">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>, <a class="el" href="zot_8php.html#a3920afe14fc1d82020161b4b86bcd9ac">zot_process_message_request()</a>, and <a class="el" href="zping_8php.html#a4d3a6b0b8b04ed6469015823e615ee75">zping_content()</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="ae26ce9f1ad74139193fb6319beac5fca"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">zot_encode_locations </td>
+ <td>(</td>
+ <td class="paramtype">&#160;</td>
+ <td class="paramname"><em>$channel</em></td><td>)</td>
+ <td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Referenced by <a class="el" href="notifier_8php.html#a568c502f626cff95e344c0748938b85d">notifier_run()</a>, and <a class="el" href="zfinger_8php.html#a8139b83a22ef98869adc10aa224027a0">zfinger_init()</a>.</p>
</div>
</div>
@@ -900,7 +1006,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="zot_8php.html#ac301c67864917c35922257950ae0f95c">process_channel_sync_delivery()</a>, and <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="zot_8php.html#ae26ce9f1ad74139193fb6319beac5fca">zot_encode_locations()</a>.</p>
</div>
</div>
@@ -963,7 +1069,7 @@ which will be processed and delivered before this function ultimately returns.
</table>
</dd>
</dl>
-<p>The message types handled here are 'activity' (e.g. posts), 'mail' , 'profile', and 'channel_sync'</p>
+<p>The message types handled here are 'activity' (e.g. posts), 'mail' , 'profile', 'location', and 'channel_sync'</p>
<dl class="section return"><dt>Returns</dt><dd>array =&gt; array ( [0] =&gt; string $channel_hash, [1] =&gt; string $delivery_status, [2] =&gt; string $address ) suitable for logging remotely, enumerating the processing results of each message/recipient combination. </dd></dl>
<p>Referenced by <a class="el" href="deliver_8php.html#a397afcb9afecf0c1816b0951189dd346">deliver_run()</a>, and <a class="el" href="zot_8php.html#a61cdc1ec843663c423ed2d8160ae5aea">zot_fetch()</a>.</p>
@@ -995,7 +1101,28 @@ which will be processed and delivered before this function ultimately returns.
</dl>
<dl class="section return"><dt>Returns</dt><dd>string </dd></dl>
-<p>Referenced by <a class="el" href="identity_8php.html#a345f4c943d84de502ec6e72d2c813945">create_identity()</a>.</p>
+<p>Referenced by <a class="el" href="identity_8php.html#a345f4c943d84de502ec6e72d2c813945">create_identity()</a>, and <a class="el" href="dimport_8php.html#a581f040717941ce3e1868b0b5dceefd1">foofoo()</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="a3920afe14fc1d82020161b4b86bcd9ac"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">zot_process_message_request </td>
+ <td>(</td>
+ <td class="paramtype">&#160;</td>
+ <td class="paramname"><em>$data</em></td><td>)</td>
+ <td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+<p>zot_process_message_request($data) If a site receives a comment to a post but finds they have no parent to attach it with, they may send a 'request' packet containing the message_id of the missing parent. This is the handler for that packet. We will create a message_list array of the entire conversation starting with the missing parent and invoke delivery to the sender of the packet.</p>
+<p><a class="el" href="deliver_8php.html">include/deliver.php</a> (for local delivery) and <a class="el" href="post_8php.html">mod/post.php</a> (for web delivery) detect the existence of this 'message_list' at the destination and split it into individual messages which are processed/delivered in order.</p>
+<p>Called from <a class="el" href="post_8php.html">mod/post.php</a> </p>
+
+<p>Referenced by <a class="el" href="post_8php.html#af59e6a1dc22d19d9257b01cd7ccedb75">post_post()</a>.</p>
</div>
</div>
diff --git a/doc/html/zot_8php.js b/doc/html/zot_8php.js
index 897063ee0..521de64be 100644
--- a/doc/html/zot_8php.js
+++ b/doc/html/zot_8php.js
@@ -11,20 +11,24 @@ var zot_8php =
[ "import_xchan", "zot_8php.html#a528e97ca5d69c3b7f35c5d954afde315", null ],
[ "make_xchan_hash", "zot_8php.html#a0fc2211c5309d9f925ecc4115e3fdb75", null ],
[ "process_channel_sync_delivery", "zot_8php.html#ac301c67864917c35922257950ae0f95c", null ],
- [ "process_delivery", "zot_8php.html#a4d9e6ca295e443b740d9960c304b3474", null ],
+ [ "process_delivery", "zot_8php.html#a0e3006e7a456b2175a9badc96bc5176d", null ],
+ [ "process_location_delivery", "zot_8php.html#a8eeefdb0dad4c436bea9d1c06c0a7988", null ],
[ "process_mail_delivery", "zot_8php.html#aa6ae96db8cbbdbb10e6876d206bbf7cc", null ],
[ "process_profile_delivery", "zot_8php.html#a9a57b40669351c9791126b925cb7ef3b", null ],
[ "public_recips", "zot_8php.html#a083aec6c900d244e1bfc1406f9461465", null ],
[ "remove_community_tag", "zot_8php.html#aad25a3fe0e1566121d6fb8222979bc10", null ],
+ [ "sync_locations", "zot_8php.html#ab15c04e7e5f44edf45ec50dd7d183254", null ],
[ "update_imported_item", "zot_8php.html#a31aad56acf8ff8f2353e6ff8595544df", null ],
[ "update_modtime", "zot_8php.html#ab319d1d9fff9c7775d9daef42d1f33dd", null ],
- [ "zot_build_packet", "zot_8php.html#a3862b3161b2c8557dc1a95020179bd81", null ],
+ [ "zot_build_packet", "zot_8php.html#a084c581d534e7e3b759488b46602288f", null ],
+ [ "zot_encode_locations", "zot_8php.html#ae26ce9f1ad74139193fb6319beac5fca", null ],
[ "zot_fetch", "zot_8php.html#a61cdc1ec843663c423ed2d8160ae5aea", null ],
[ "zot_finger", "zot_8php.html#a95528377d7303131958c9f0b7158fdce", null ],
[ "zot_get_hublocs", "zot_8php.html#ae7cec2b417b5858fd4a41070f843d1d7", null ],
[ "zot_gethub", "zot_8php.html#a55056e863a7860bc0cf922e78fcce073", null ],
[ "zot_import", "zot_8php.html#aeea071f17e306fe3d0c488551906bfab", null ],
[ "zot_new_uid", "zot_8php.html#ab22d67660702056bf3f4696dcebf5ce7", null ],
+ [ "zot_process_message_request", "zot_8php.html#a3920afe14fc1d82020161b4b86bcd9ac", null ],
[ "zot_process_response", "zot_8php.html#a928f5643ca66ae9635d85aeb2be62e03", null ],
[ "zot_refresh", "zot_8php.html#a7ac30ff51274bf0b6d3eade37972145c", null ],
[ "zot_register_hub", "zot_8php.html#a5bcdfef419b16075a0eca990956223dc", null ],
diff --git a/doc/install.bb b/doc/install.bb
index 16e3730ee..e68b4a230 100644
--- a/doc/install.bb
+++ b/doc/install.bb
@@ -1,105 +1,4 @@
-[b]Red Installation[/b]
+#include install/INSTALL.txt;
-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.
+#include doc/macros/main_footer.bb;
-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
-
- - 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 *store/[data]/smarty3* exists and is writable by webserver
-
- `mkdir -p "store/\[data\]/smarty3"`
-
- `chmod 777 "store/\[data\]/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.
-
-Return to the [url=[baseurl]/help/main]Main documentation page[/url]
diff --git a/doc/install/sample-lighttpd.conf b/doc/install/sample-lighttpd.conf
index 721fa25ea..db26c3b64 100644
--- a/doc/install/sample-lighttpd.conf
+++ b/doc/install/sample-lighttpd.conf
@@ -67,6 +67,11 @@ $SERVER["socket"] == ":443" {
ssl.engine = "enable"
ssl.ca-file = "/etc/lighttpd/certs/ca-certs.crt" #adjust to your needs
ssl.pemfile = "/etc/lighttpd/certs/red-ssl.crt" #adjust to your needs
+
+ ssl.use-compression = "disable"
+ ssl.use-sslv2 = "disable"
+ ssl.use-sslv3 = "disable"
+ ssl.cipher-list = "ECDHE-RSA-AES128-GCM-SHA256:ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-RSA-AES256-GCM-SHA384:ECDHE-ECDSA-AES256-GCM-SHA384:DHE-RSA-AES128-GCM-SHA256:DHE-DSS-AES128-GCM-SHA256:kEDH+AESGCM:ECDHE-RSA-AES128-SHA256:ECDHE-ECDSA-AES128-SHA256:ECDHE-RSA-AES128-SHA:ECDHE-ECDSA-AES128-SHA:ECDHE-RSA-AES256-SHA384:ECDHE-ECDSA-AES256-SHA384:ECDHE-RSA-AES256-SHA:ECDHE-ECDSA-AES256-SHA:DHE-RSA-AES128-SHA256:DHE-RSA-AES128-SHA:DHE-DSS-AES128-SHA256:DHE-RSA-AES256-SHA256:DHE-DSS-AES256-SHA:DHE-RSA-AES256-SHA:AES128-GCM-SHA256:AES256-GCM-SHA384:AES128-SHA:AES256-SHA:AES:CAMELLIA:DES-CBC3-SHA:!aNULL:!eNULL:!EXPORT:!DES:!RC4:!MD5:!PSK:!aECDH:!EDH-DSS-DES-CBC3-SHA:!EDH-RSA-DES-CBC3-SHA:!KRB5-DES-CBC3-SHA"
}
### RISTRICT ACCESS TO DIRECTORYS AND FILES
diff --git a/doc/install/sample-nginx.conf b/doc/install/sample-nginx.conf
index ade323a4f..f533d8ee0 100644
--- a/doc/install/sample-nginx.conf
+++ b/doc/install/sample-nginx.conf
@@ -55,8 +55,8 @@ server {
ssl_certificate /etc/nginx/ssl/red.example.net.chain.pem;
ssl_certificate_key /etc/nginx/ssl/example.net.key;
ssl_session_timeout 5m;
- ssl_protocols SSLv3 TLSv1;
- ssl_ciphers ALL:!ADH:!EXPORT56:RC4+RSA:+HIGH:+MEDIUM:+LOW:+SSLv3:+EXP;
+ ssl_protocols TLSv1 TLSv1.1 TLSv1.2;
+ ssl_ciphers ECDHE-RSA-AES128-GCM-SHA256:ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-RSA-AES256-GCM-SHA384:ECDHE-ECDSA-AES256-GCM-SHA384:DHE-RSA-AES128-GCM-SHA256:DHE-DSS-AES128-GCM-SHA256:kEDH+AESGCM:ECDHE-RSA-AES128-SHA256:ECDHE-ECDSA-AES128-SHA256:ECDHE-RSA-AES128-SHA:ECDHE-ECDSA-AES128-SHA:ECDHE-RSA-AES256-SHA384:ECDHE-ECDSA-AES256-SHA384:ECDHE-RSA-AES256-SHA:ECDHE-ECDSA-AES256-SHA:DHE-RSA-AES128-SHA256:DHE-RSA-AES128-SHA:DHE-DSS-AES128-SHA256:DHE-RSA-AES256-SHA256:DHE-DSS-AES256-SHA:DHE-RSA-AES256-SHA:AES128-GCM-SHA256:AES256-GCM-SHA384:AES128-SHA:AES256-SHA:AES:CAMELLIA:DES-CBC3-SHA:!aNULL:!eNULL:!EXPORT:!DES:!RC4:!MD5:!PSK:!aECDH:!EDH-DSS-DES-CBC3-SHA:!EDH-RSA-DES-CBC3-SHA:!KRB5-DES-CBC3-SHA;
ssl_prefer_server_ciphers on;
fastcgi_param HTTPS on;
@@ -65,7 +65,9 @@ server {
charset utf-8;
root /var/www/red;
access_log /var/log/nginx/red.log;
- #Uncomment the following line to include a standard configuration file
+ #Uncomment the following line to include a standard configuration file
+ #Note that the most specific rule wins and your standard configuration
+ #will therefore *add* to this file, but not override it.
#include standard.conf
# allow uploads up to 20MB in size
client_max_body_size 20m;
diff --git a/doc/intro_for_developers.bb b/doc/intro_for_developers.bb
index 086d3c681..b8a4e4eb5 100644
--- a/doc/intro_for_developers.bb
+++ b/doc/intro_for_developers.bb
@@ -16,13 +16,11 @@
[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
+[mod/site/] site-specific mod overrides, excluded from git
[util] translation tools, main English string database and other miscellaneous utilities
@@ -41,46 +39,61 @@
[li]abook - contact table, replaces Friendica 'contact'[/li]
[li]account - service provider account[/li]
[li]addon - registered plugins[/li]
+ [li]app - peronal app data[/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]cache - OEmbed cache[/li]
[li]channel - replaces Friendica 'user'[/li]
+ [li]chat - chat room content[/li]
+ [li]chatpresence - channel presence information for chat[/li]
+ [li]chatroom - data for the actual chat room[/li]
[li]clients - OAuth usage[/li]
[li]config - main configuration storage[/li]
+ [li]conv - Diaspora private messages[/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]groups - 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]likes - likes of 'things'[/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]menu - channel menu data[/li]
+ [li]menu_item - items uses by channel menus[/li]
[li]notify - notifications[/li]
[li]notify-threads - need to factor this out and use item thread info on notifications[/li]
+ [li]obj - object data for things (x has y)[/li]
[li]outq - Red output queue[/li]
[li]pconfig - personal (per channel) configuration storage[/li]
[li]photo - photo storage[/li]
+ [li]poll - data for polls[/li]
+ [li]poll_elm - data for poll elements[/li]
+ [li]profdef - custom profile field definitions[/li]
+ [li]profext - custom profile field data[/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]shares - shared item information[/li]
+ [li[sign - Diaspora signatures. To be phased out.[/li]
[li]site - site table to find directory peers[/li]
+ [li]source - channel sources data[/li]
[li]spam - unfinished[/li]
+ [li]sys_perms - extensible permissions for the sys channel[/li]
[li]term - item taxonomy (categories, tags, etc.) table[/li]
[li]tokens - OAuth usage[/li]
+ [li]updates - directory sync updates[/li]
[li]verify - general purpose verification structure[/li]
+ [li]vote - vote data for polls[/li]
[li]xchan - replaces 'gcontact', list of known channels in the universe[/li]
+ [li]xchat - bookmarked chat rooms[/li]
+ [li]xconfig - as pconfig but for channels with no local account[/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]
@@ -98,4 +111,4 @@ At that point, if you need to add javascript or css files, add them to /js or /c
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.
-Return to the [url=[baseurl]/help/main]Main documentation page[/url]
+#include doc/macros/main_footer.bb;
diff --git a/doc/macros/addons_footer.bb b/doc/macros/addons_footer.bb
new file mode 100644
index 000000000..32814c59b
--- /dev/null
+++ b/doc/macros/addons_footer.bb
@@ -0,0 +1,2 @@
+Return to the [zrl=[baseurl]/help/addons]Addons documentation[/zrl]
+Return to the [zrl=[baseurl]/help/main]Main documentation[/zrl]
diff --git a/doc/macros/cloud_footer.bb b/doc/macros/cloud_footer.bb
new file mode 100644
index 000000000..798cc9ea6
--- /dev/null
+++ b/doc/macros/cloud_footer.bb
@@ -0,0 +1,2 @@
+Return to the [zrl=[baseurl]/help/cloud]Cloud documentation[/zrl]
+Return to the [zrl=[baseurl]/help/main]Main documentation page[/zrl]
diff --git a/doc/macros/de/addons_footer.bb b/doc/macros/de/addons_footer.bb
new file mode 100644
index 000000000..068bb7ec7
--- /dev/null
+++ b/doc/macros/de/addons_footer.bb
@@ -0,0 +1,2 @@
+Zurück zur [zrl=[baseurl]/help/addons]Addons-Hilfe[/zrl]
+Zurück zur [zrl=[baseurl]/help/main]Hilfe-Startseite[/zrl]
diff --git a/doc/macros/de/cloud_footer.bb b/doc/macros/de/cloud_footer.bb
new file mode 100644
index 000000000..921448a3c
--- /dev/null
+++ b/doc/macros/de/cloud_footer.bb
@@ -0,0 +1,2 @@
+Zurück zur [zrl=[baseurl]/help/cloud]Cloud-Hilfe[/zrl]
+Zurück zur [zrl=[baseurl]/help/main]Hilfe-Startseite[/zrl]
diff --git a/doc/macros/de/main_footer.bb b/doc/macros/de/main_footer.bb
new file mode 100644
index 000000000..e71603626
--- /dev/null
+++ b/doc/macros/de/main_footer.bb
@@ -0,0 +1 @@
+Zurück zur [zrl=[baseurl]/help/main]Hilfe-Startseite[/zrl]
diff --git a/doc/macros/de/troubleshooting_footer.bb b/doc/macros/de/troubleshooting_footer.bb
new file mode 100644
index 000000000..be8c13a28
--- /dev/null
+++ b/doc/macros/de/troubleshooting_footer.bb
@@ -0,0 +1,2 @@
+Zurück zur [zrl=[baseurl]/help/troubleshooting]Troubleshooting-Startseite[/zrl]
+Zurück zur [zrl=[baseurl]/help/troubleshooting]Hilfe-Startseite[/zrl]
diff --git a/doc/macros/main_footer.bb b/doc/macros/main_footer.bb
new file mode 100644
index 000000000..08f671ded
--- /dev/null
+++ b/doc/macros/main_footer.bb
@@ -0,0 +1 @@
+Return to the [zrl=[baseurl]/help/main]Main documentation page[/zrl]
diff --git a/doc/macros/troubleshooting_footer.bb b/doc/macros/troubleshooting_footer.bb
new file mode 100644
index 000000000..c7603a62b
--- /dev/null
+++ b/doc/macros/troubleshooting_footer.bb
@@ -0,0 +1,2 @@
+[zrl=[baseurl]/help/troubleshooting]Troubleshooting documentation[/zrl]
+[zrl=[baseurl]/help/troubleshooting]Documentation Main Page[/zrl]
diff --git a/doc/main.bb b/doc/main.bb
index 0c34ced55..4f1852642 100644
--- a/doc/main.bb
+++ b/doc/main.bb
@@ -1,30 +1,31 @@
[img][baseurl]/assets/hashlogo.png[/img]
-[size=large][b]Red Matrix Documentation[/b][/size]
+[size=large][b]RedMatrix Documentation[/b][/size]
-[zrl=[baseurl]/help/about][b]What is the Red Matrix?[/b][/zrl]
-Red Matrix is a decentralized communication and publishing platform that enables you to keep in control of your communication needs by automatic encryption and finely grained access control. It's you, and only you who decides who is allowed to see your stuff.
+[zrl=[baseurl]/help/about][b]What is the RedMatrix?[/b][/zrl]
+RedMatrix is a decentralized communication and publishing platform that enables you to keep in control of your communication needs by automatic encryption and finely grained access control. It's you, and only you who decides who is allowed to see your stuff.
-[zrl=[baseurl]/help/features][b]Red Matrix Features[/b][/zrl]
-The Red Matrix is already running as a global distributed network and proves its versatility and scalability from standalone to huge sites on a daily basis.
-Think of standalone family communication platforms, distributed online communities, support forums, blogs and homepages. Or professional content providers with commercial premium channels and targeted content acces. Whatever you want, the Red Matrix is there to cater to your creativity.
+[zrl=[baseurl]/help/features][b]RedMatrix Features[/b][/zrl]
+The RedMatrix is already running as a global distributed network and proves its versatility and scalability from standalone to huge sites on a daily basis.
+Think of standalone family communication platforms, distributed online communities, support forums, blogs and homepages. Or professional content providers with commercial premium channels and targeted content acces. Whatever you want, the RedMatrix is there to cater to your creativity.
[zrl=[baseurl]/help/what_is_zot][b]Got Zot? Well, you should.[/b][/zrl]
-Zot is the great new communicaton protocol invented especially for the Red Matrix. As a member you are no longer bound to a single site or hub thanks to "Nomadic Identities". Migrate easily to another server and keep your contacts intact, or clone it and run the same channel on several servers. Just in case one of them might shut down, you don't lose out. Plus once you are inside the Red Matrix there is no need for you to authenticate twice, even when accessing another Red Matrix site. Zot is what sets the Red Matrix apart.
+Zot is the great new communicaton protocol invented especially for the RedMatrix. As a member you are no longer bound to a single site or hub thanks to "Nomadic Identities". Migrate easily to another server and keep your contacts intact, or clone it and run the same channel on several servers. Just in case one of them might shut down, you don't lose out. Plus once you are inside the RedMatrix there is no need for you to authenticate twice, even when accessing another RedMatrix site. Zot is what sets the RedMatrix apart.
[size=large][b]Getting Started[/b][/size]
[zrl=[baseurl]/help/Privacy]Privacy Policy[/zrl]
[zrl=[baseurl]/help/registration]Account Registration[/zrl]
-[zrl=[baseurl]/help/accounts_profiles_channels_basics]You at the Red Matrix: accounts, profiles and channels in short[/zrl]
+[zrl=[baseurl]/help/accounts_profiles_channels_basics]You at the RedMatrix: accounts, profiles and channels in short[/zrl]
[zrl=[baseurl]/help/profiles]Profiles[/zrl]
[zrl=[baseurl]/help/channels]Channels[/zrl]
+[zrl=[baseurl]/help/roles]Permission roles and Channel types[/zrl]
[zrl=[baseurl]/help/first-post]Your first posting[/zrl]
[zrl=[baseurl]/help/connecting_to_channels]Connecting To Other Channels[/zrl]
[zrl=[baseurl]/help/permissions]Permissions And Encryption: You Are In Control[/zrl]
[zrl=[baseurl]/help/cloud]Cloud Storage[/zrl]
-[zrl=[baseurl]/help/remove_account]Remove Account[/zrl]
+[zrl=[baseurl]/help/remove_account]Remove Channel or Account[/zrl]
-[size=large][b]Using the Red Matrix[/b][/size]
+[size=large][b]Members Help[/b][/size]
[zrl=[baseurl]/help/tags_and_mentions]Tags and Mentions[/zrl]
[zrl=[baseurl]/help/webpages]Web Pages[/zrl]
[zrl=[baseurl]/help/bbcode]BBcode reference for posts and comments[/zrl]
@@ -32,27 +33,27 @@ Zot is the great new communicaton protocol invented especially for the Red Matri
[zrl=[baseurl]/help/cloud_desktop_clients]Cloud Desktop Clients[/zrl]
[zrl=[baseurl]/help/AdvancedSearch]Advanced Directory Search[/zrl]
[zrl=[baseurl]/help/addons]Help With Addons[/zrl]
-[zrl=[baseurl]/help/nomadic-identity]Got Zot? Nomadic Identity, Channel Cloning And More[/zrl]
[zrl=[baseurl]/help/diaspora_compat]Diaspora Communications Compatibility (Diaspora and Friendica)[/zrl]
+[zrl=[baseurl]/help/faq_members]FAQ For Members[/zrl]
-[size=large][b]Frequently Asked Questions For Users[/b][/size]
-[zrl=[baseurl]/help/faq_users]FAQ For Users[/zrl]
-
-[size=large][b]For Hub Administrators[/b][/size]
+[size=large][b]Administrators Help[/b][/size]
[zrl=[baseurl]/help/install]Install[/zrl]
[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]
-
-[size=large][b]Frequently Asked Questions For Hub Admins[/b][/size]
+[zrl=[baseurl]/help/hidden_configs]Tweaking RedMatrix's Hidden Configurations[/zrl]
[zrl=[baseurl]/help/faq_admins]FAQ For Admins[/zrl]
[size=large][b]Technical Documentation[/b][/size]
+[zrl=[baseurl]/help/history]RedMatrix history[/zrl]
+[zrl=[baseurl]/help/Zot---A-High-Level-Overview]A high level overview of Zot[/zrl]
+[zrl=[baseurl]/help/zot]An introduction to Zot[/zrl]
+[zrl=[baseurl]/help/zot_structures]Zot Stuctures[/zrl]
[zrl=[baseurl]/help/comanche]Comanche Page Descriptions[/zrl]
[zrl=[baseurl]/help/Creating-Templates]Creating Comanche Templates[/zrl]
[zrl=[baseurl]/help/Widgets]Core Widgets[/zrl]
[zrl=[baseurl]/help/plugins]Plugins[/zrl]
+[zrl=[baseurl]/help/doco]Contributing Documentation[/zrl]
[zrl=[baseurl]/help/DerivedTheme1]Creating Derivative Themes[/zrl]
[zrl=[baseurl]/help/schema_development]Schemas[/zrl]
[zrl=[baseurl]/help/Translations]Translations[/zrl]
@@ -64,9 +65,9 @@ Zot is the great new communicaton protocol invented especially for the Red Matri
[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/roadmap]Version 3 roadmap[/zrl]
[zrl=[baseurl]/help/git_for_non_developers]Git for Non-Developers[/zrl]
-
[size=large][b]Frequently Asked Questions For Developers[/b][/size]
[zrl=[baseurl]/help/faq_developers]FAQ For Developers[/zrl]
@@ -76,5 +77,8 @@ Zot is the great new communicaton protocol invented especially for the Red Matri
[url=https://github.com/friendica/red-addons]Addon Website[/url]
[url=https://zothub.com/channel/one]Development Channel[/url]
-[size=large][b]About This Red Matrix Site[/b][/size]
-[zrl=[baseurl]/siteinfo] [baseurl]/siteinfo[/zrl]
+[url=[baseurl]/help/credits]RedMatrix Credits[/url]
+
+[size=large][b]About This RedMatrix Hub[/b][/size]
+[zrl=[baseurl]/help/TermsOfService]Terms of Service For This Hub[/zrl]
+[zrl=[baseurl]/siteinfo]Hub Information (/siteinfo)[/zrl]
diff --git a/doc/permissions.bb b/doc/permissions.bb
index 8a071a3f5..232ea9e96 100644
--- a/doc/permissions.bb
+++ b/doc/permissions.bb
@@ -66,7 +66,7 @@ This permission determines who can write to your wall when clicking through to y
[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
+This permission determines who can comment on posts you create. Normally, you would want this to match your &quot;can view my public stream and posts&quot; permission
[i]Can send me private mail messages.[/i]
@@ -107,4 +107,4 @@ The connection edit screen offers a slider to select a degree of friendship with
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.
-Return to the [url=[baseurl]/help/main]Main documentation page[/url]
+#include doc/macros/main_footer.bb;
diff --git a/doc/plugins.bb b/doc/plugins.bb
index 099f9fdf4..06801eb20 100644
--- a/doc/plugins.bb
+++ b/doc/plugins.bb
@@ -240,6 +240,11 @@ we will create an argc/argv list for use by your module functions
3 whatever
[/code]
+If you want to keep your plugin hidden from the siteinfo page, simply create a file called '.hidden' in your addon directory
+[code]
+ touch addon/<addon name>/.hidden
+[/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:
@@ -256,4 +261,4 @@ The Red Matrix has _install and _uninstall functions but these are used differen
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.
-Return to the [url=[baseurl]/help/main]Main documentation page[/url]
+#include doc/macros/main_footer.bb;
diff --git a/doc/problems-following-an-update.bb b/doc/problems-following-an-update.bb
index 0b2c2e11a..a8a764cf1 100644
--- a/doc/problems-following-an-update.bb
+++ b/doc/problems-following-an-update.bb
@@ -34,4 +34,5 @@ Redbasic uses a few javascript libraries that are done differently, or entirely
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
+#include doc/macros/troubleshooting_footer.bb;
+
diff --git a/doc/profiles.bb b/doc/profiles.bb
index 63b161962..5fcf5245a 100644
--- a/doc/profiles.bb
+++ b/doc/profiles.bb
@@ -32,4 +32,4 @@ On the directory page, you may search for people with published profiles. Curren
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.
-Return to the [url=[baseurl]/help/main]Main documentation page[/url]
+#include doc/macros/main_footer.bb;
diff --git a/doc/red2pi.bb b/doc/red2pi.bb
index 4ca58a382..48b7f6d38 100644
--- a/doc/red2pi.bb
+++ b/doc/red2pi.bb
@@ -1,9 +1,5 @@
[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:
@@ -342,4 +338,4 @@ Save and exit.
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]
-Return to the [zrl=[baseurl]/help/main]Main documentation page[/zrl]
+#include doc/macros/main_footer.bb;
diff --git a/doc/registration.bb b/doc/registration.bb
index 1649db62e..072e82bf2 100644
--- a/doc/registration.bb
+++ b/doc/registration.bb
@@ -4,7 +4,7 @@ Not all Red Matrix sites allow open registration. If registration is allowed, yo
[b]Your Email Address[/b]
-Please provide a valid email address. Your email address is never published. This address will be used to activate your account, to (optionally) send email notifications for incoming messages or items, [/i]and to recover lost passwords[/i].
+Please provide a valid email address. Your email address is never published. This address will be used to activate your account, to (optionally) send email notifications for incoming messages or items, [i]and to recover lost passwords[/i].
[b]Password[/b]
@@ -12,7 +12,7 @@ Enter a password of your choice, and repeat it in the second box to ensure it wa
[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.
+Click the link to read the site's [zrl=[baseurl]/help/TermsOfService]Terms of Service[/zrl]. Once you've read them, tick the box in the register form to confirm.
[b]Register[/b]
@@ -31,4 +31,5 @@ See Also
[zrl=[baseurl]/help/permissions]Permissions[/zrl]
[zrl=[baseurl]/help/remove_account]Remove Account[/zrl]
-Return to the [url=[baseurl]/help/main]Main documentation page[/url]
+#include doc/macros/main_footer.bb;
+
diff --git a/doc/remove_account.bb b/doc/remove_account.bb
index 8b17816ac..feb3f249a 100644
--- a/doc/remove_account.bb
+++ b/doc/remove_account.bb
@@ -1,12 +1,8 @@
-[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 or Account[/b]
[b]Remove Channel[/b]
-Visit the URL
+Go to the bottom of your channel settings page or visit the URL:
[baseurl]/removeme
@@ -14,6 +10,18 @@ You will need to confirm your password and the channel you are currently logged
This is irreversible.
-If you have identity clones on other sites this only removes the channel instance which exists on this site.
+If you have identity clones on other sites this only removes by default the channel instance which exists on this site.
+
+[b]Remove Account[/b]
+
+Go to the bottom of your account settings page or visit the URL:
+
+ [baseurl]/removeaccount
+
+You will need to confirm your password and the account you are currently logged into will be removed.
+
+This is irreversible.
+
+All your channels will be deleted. If you have identity clones on other sites this only removes by default the channels instances which exists on this site.
-Return to the [url=[baseurl]/help/main]Main documentation page[/url]
+#include doc/macros/main_footer.bb;
diff --git a/doc/roadmap.bb b/doc/roadmap.bb
new file mode 100644
index 000000000..9ac51adf2
--- /dev/null
+++ b/doc/roadmap.bb
@@ -0,0 +1,49 @@
+
+
+Roadmap for Redmatrix V3
+
+
+Subscriptions and business models
+ Build enough into core(/addons) to generate income (or at least try and cover costs) out of the box
+
+Merge all uploads into common DAV interface
+ Separate photo albums from photos and turn them into file directories.
+ Upload everything direct to /store
+ If photo, generate thumbnails and image resources
+ Provide default upload folders with %y (and other?) macros for both photos and other file resources
+ Allow "media" (anything that we can generate a thumbnail for) in the Photos section (and show thumbnails in the Files section where possible)
+ Resolve the "every photo has an item" confusion, perhaps every file should also - but only if we can explain it and separate them conceptually.
+
+Migration tools
+ Friendica importer
+ Diaspora importer
+
+Poco reputation
+ Make it happen
+
+Webpage design UI improvements
+ If practical, separate "conversation" sub-themes from overall themes so one can choose different conversation and content layouts within a base theme.
+ Make webpage building easy, with point-n-click selectors to build PDLs
+ bring back WYSIWYG, which ideally requires a JS abstraction layer so we can use any editor and change it based on mimetype
+
+Social Networking Federation
+ Friendica native mode?
+ Pump.io?
+ Others?
+
+Lists
+ Create a list object to contain arbitrary things for system use
+ Create a list object to contain arbitrary things for personal use
+
+Events
+ Recurring events and participation (RSVP)
+
+Zot
+ Provide a way to sync web resources. This could be built on DAV except for preserving resource naming (guids) instead of filenames.
+
+API extensions
+ More, more, more.
+
+DNS abstraction for V3
+ Allow a channel to live in an arbitrary "DNS" namespace, for instance "mike@core.redmatrix". Use our directories and zot to find the actual DNS location via redirection. This could potentially allow hubs to be hidden behind tor or alt-roots and accessible only via the matrix.
+ \ No newline at end of file
diff --git a/doc/roles.md b/doc/roles.md
new file mode 100644
index 000000000..5d8d07113
--- /dev/null
+++ b/doc/roles.md
@@ -0,0 +1,66 @@
+Account Permission Roles
+========================
+
+
+##Social
+
+**Mostly Public**
+
+The channel is a typical social networking profile. By default posts and published items are public, but one can over-ride this when creating the item and restrict it. You are listed in the directory. Your online presence and connections are visible to others.
+
+
+**Restricted**
+
+By default all posts and published items are sent to your 'Friends' collection and not made public. New friends are added to this collection. You can over-ride this and create a public post or published item if you desire. You are listed in the directory. Your online presence (for chat) and your connections (friends) are visible to your profile viewers.
+
+**Private**
+
+By default all posts and published items are sent to your 'Friends' collection. New friends are added to this collection. You can over-ride this and create a public post or public item if you desire. You are NOT listed in the directory. Only your connections can see your other connections. Your online presence is hidden.
+
+
+##Forum
+
+**Mostly Public**
+
+The channel is a typical forum. By default posts and published items are public. Members may post by @mention+ or wall-to-wall post. Posting photos and other published items is blocked. The channel is visible in the directory. Members are added automatically.
+
+
+**Restricted**
+
+By default all posts and published items are sent to the channel's 'Friends' collection. New friends are added to this collection. Members may post by @mention+ or wall-to-wall post, but posts and replies may also be seen by other receipients of the top-level post who are not members. The channel is visible in the directory. Members must be manually added by the forum owner.
+
+**Private**
+
+By default all posts and published items are sent to your 'Friends' collection. New friends are added to this collection. The owner can over-ride this and create a public post or public item if desired. Members cannot. You are NOT listed in the directory. Only your connections can see your other connections. Your online presence is hidden. Members must be manually added by the forum owner. Posting by @mention+ is disabled. Posts can only be made via wall-to-wall posts, and sent to members of the 'Friends' collection. They are not publicly visible.
+
+
+##Feed
+
+
+**Public**
+
+Similiar to Social - Mostly Public, but tailored for RSS feed sources. Items may be freely republished and sourced. Online presence is meaningless, therefore hidden. New connections are automatically approved.
+
+
+**Restricted**
+
+Not listed in directory. Online presence is meaningless, therefore hidden. Feed is published only to members of the 'Friends' collection. New connections are automatically added to this collections. Members must be manually approved by the channel owner.
+
+
+##Special
+
+**Celebrity/Soapbox**
+
+Listed in directory. Communications are by default public. Online presence is hidden. No commenting or feedback of any form is allowed, though connections have the ability to "like" your profile.
+
+
+**Group Repository**
+
+A public forum which allows members to post files/photos/webpages.
+
+
+##Custom/Expert Mode
+
+Set all the privacy and permissions manually to suit your specific needs.
+
+#include doc/macros/main_footer.bb;
diff --git a/doc/schema_development.bb b/doc/schema_development.bb
index 2890d5454..c92536d7a 100644
--- a/doc/schema_development.bb
+++ b/doc/schema_development.bb
@@ -73,4 +73,4 @@ theme are as follows:
[li] sloppy_photos
Determins whether photos are &quot;sloppy&quot; or aligned. Set or unset (1 or '')[/li]
-Return to the [url=[baseurl]/help/main]Main documentation page[/url]
+#include doc/macros/main_footer.bb;
diff --git a/doc/sql_conventions.bb b/doc/sql_conventions.bb
new file mode 100644
index 000000000..88539ae19
--- /dev/null
+++ b/doc/sql_conventions.bb
@@ -0,0 +1,87 @@
+[h1]SQL Conventions[/h1]
+[b]Intro[/b]
+The following common SQL conventions appear throughout the code in many places. We use a simple DBA (DataBase Abstraction layer) to handle differences between databases. Please be sure to use only standards-compliant SQL.
+
+[b]Rule One[/b]
+Worth Repeating: Don't use non-standard SQL. This goes for addons as well. If you do use non-standard SQL, and the dba funcs are insufficient, do a if()/switch() or similar for all currently supported databases. Currently nothing red# does requires non-standard SQL.
+
+[b]Using a format string[/b]
+[li]Uses sprintf()
+To be written
+[code]// Example
+$r = q("SELECT * FROM profile WHERE uid = %d",
+ local_user()
+);
+[/code][/li]
+
+[b]Checking bit flags in a where clause[/b]
+[li]You must explicitly convert integers to booleans. The easiest way to do this is to compare to 0.
+[code]// Example
+$r = q("SELECT abook_id, abook_flags, abook_my_perms, abook_their_perms, xchan_hash, xchan_photo_m, xchan_name, xchan_url from abook left join xchan on abook_xchan = xchan_hash where abook_channel = %d and not (abook_flags & %d)>0 ",
+ intval($uid),
+ intval(ABOOK_FLAG_SELF)
+);
+[/code]
+[/li]
+[li]Turning off a flag
+[code]$y = q("update xchan set xchan_flags = (xchan_flags & ~%d) where (xchan_flags & %d)>0 and xchan_hash = '%s'",
+ intval(XCHAN_FLAGS_ORPHAN),
+ intval(XCHAN_FLAGS_ORPHAN),
+ dbesc($rr['hubloc_hash'])
+);[/code]
+[/li]
+[li]Turning on a flag
+[code]$y = q("update xchan set xchan_flags = (xchan_flags | %d) where xchan_hash = '%s'",
+ intval(XCHAN_FLAGS_ORPHAN),
+ dbesc($rr['hubloc_hash'])
+);[/code]
+[/li]
+
+[b]Using relative times (INTERVALs)[/b]
+[li]Sometimes you want to compare something, like less than x days old.
+[code]// Example
+$r = q("SELECT * FROM abook left join xchan on abook_xchan = xchan_hash
+ WHERE abook_dob > %s + interval %s and abook_dob < %s + interval %s",
+ db_utcnow(), db_quoteinterval('7 day'),
+ db_utcnow(), db_quoteinterval('14 day')
+);[/code]
+[/li]
+[b]Paged results[/b]
+[li]To be written
+[code]// Example
+$r = q("SELECT * FROM mail WHERE uid=%d AND $sql_extra ORDER BY created DESC LIMIT %d OFFSET %d",
+ intval(api_user()),
+ intval($count), intval($start)
+);[/code][/li]
+
+[b]NULL dates[/b]
+[li]To be written
+[code]Example[/code][/li]
+
+[b]Storing binary data[/b]
+[li]To be written
+[code]// Example
+$x = q("update photo set data = '%s', height = %d, width = %d where resource_id = '%s' and uid = %d and scale = 0",
+ dbescbin($ph->imageString()),
+ intval($height),
+ intval($width),
+ dbesc($resource_id),
+ intval($page_owner_uid)
+);[/code][/li]
+
+[b]Current timestamp[/b]
+[li][code]// Example
+$randfunc = db_getfunc('rand');
+$r = q("select xchan_url from xchan left join hubloc on hubloc_hash = xchan_hash where hubloc_connected > %s - interval %s order by $randfunc limit 1",
+ db_utcnow(), db_quoteinterval('30 day')
+);[/code][/li]
+
+[b]SQL Function and Operator Abstraction[/b]
+[li]Sometimes the same function or operator has a different name/symbol in each database. You use db_getfunc('funcname') to look them up. The string is [i]not[/i] case-sensitive; do [i]not[/i] include parens.
+[code]// Example
+$randfunc = db_getfunc('rand');
+$r = q("select xchan_url from xchan left join hubloc on hubloc_hash = xchan_hash where hubloc_connected > %s - interval %s order by $randfunc limit 1",
+ db_utcnow(), db_quoteinterval('30 day')
+);[/code][/li]
+
+#include doc/macros/main_footer.bb; \ No newline at end of file
diff --git a/doc/tags_and_mentions.bb b/doc/tags_and_mentions.bb
index 477fbe291..d638492bb 100644
--- a/doc/tags_and_mentions.bb
+++ b/doc/tags_and_mentions.bb
@@ -66,5 +66,4 @@ will tag Robert Johnson, but we can only match one space. If the name was "Blind
[/code]
are both equivalent.
-
-Return to the [url=[baseurl]/help/main]Main documentation page[/url]
+#include doc/macros/main_footer.bb;
diff --git a/doc/to_do_code.bb b/doc/to_do_code.bb
index 91997a284..0dd0b8e24 100644
--- a/doc/to_do_code.bb
+++ b/doc/to_do_code.bb
@@ -3,55 +3,42 @@
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]Documentation - see Red Documentation Project To-Do List[/li]
-
+[li]Include TOS link in registration/verification email[/li]
+[li]Create bug tracker module[/li]
[li]Finish the anti-spam bayesian engine[/li]
-
+[li]implement an email permission denied bounce message from the sys channel[/li]
+[li]finish Wordpress connector - import wordpress comments back to redmatrix[/li]
+[li]provide a way for xchans with a certain network type to upgrade (unknown to rss, rss to statusnet, friendica-over-diaspora to friendica, for instance) based on new knowledge and/or redmatrix ability[/li]
[li]If DAV folders exist, add an option to the Settings page to set a default folder for attachment uploads.[/li]
-
[li]Integrate the &quot;open site&quot; list with the register page[/li]
-
[li]implement oembed provider interface[/li]
-
+[li]refactor the oembed client interface so that we can safely sandbox remote content[/li]
[li]implement openid server interface[/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]External post connectors - create standard interface[/li]
-
[li]External post connectors, add popular services[/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 - 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]Import/export - include events, things, etc.[/li]
+[li]Import channel from Diaspora/Friendica[/li]
+[li]MediaGoblin photo "crosspost" connector[/li]
+[li]Create management page/UI for extensible profile fields[/li]
+[li]Create interface to include/exclude and re-order standard profile fields[/li]
+[li]Provide a mechanism to share page design elements in posts (just like apps)[/li]
[li]App taxonomy[/li]
-
+[li]Customisable App collection pages[/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]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.
diff --git a/doc/to_do_doco.md b/doc/to_do_doco.md
index 6e4f17724..018b9efa2 100644
--- a/doc/to_do_doco.md
+++ b/doc/to_do_doco.md
@@ -27,3 +27,5 @@ For translating documentation, create a directory in */doc* named by the languag
* Administration Guide (post-install)
* Administration Guide (pre-install)
+
+#include doc/macros/main_footer.bb;
diff --git a/doc/troubleshooting.bb b/doc/troubleshooting.bb
index f5572c6ed..d5e1a29dc 100644
--- a/doc/troubleshooting.bb
+++ b/doc/troubleshooting.bb
@@ -3,4 +3,6 @@
[li][zrl=[baseurl]/help/technical_faq]Technical FAQ[/zrl][/li]
[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]
+#include doc/macros/troubleshooting_footer.bb;
+#include doc/macros/main_footer.bb;
+
diff --git a/doc/webpages.bb b/doc/webpages.bb
index 2bf7af762..780bde45c 100644
--- a/doc/webpages.bb
+++ b/doc/webpages.bb
@@ -10,6 +10,5 @@ The &quot;page link title&quot; box allows a user to specify the &quot;pagelinkt
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.
+#include doc/macros/main_footer.bb;
-Return to the [url=[baseurl]/help/main]Main documentation page[/url]
diff --git a/doc/what_is_zot.bb b/doc/what_is_zot.bb
index 0e59d2d4c..67c0159e3 100644
--- a/doc/what_is_zot.bb
+++ b/doc/what_is_zot.bb
@@ -58,4 +58,4 @@ For more detailed, technical information about Zot, check out the following link
- [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
+#include doc/macros/main_footer.bb;
diff --git a/doc/zot.md b/doc/zot.md
index f514fb3f8..54af44161 100644
--- a/doc/zot.md
+++ b/doc/zot.md
@@ -397,4 +397,4 @@ auth_check messages MUST be encrypted with AES256CBC. This message is sent to th
'confirm' in this case is the base64url encoded RSA signature of the concatenation of 'secret' with the base64url encoded whirlpool hash of the source 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.
-Return to the [url=[baseurl]/help/main]Main documentation page[/url]
+#include doc/macros/main_footer.bb;
diff --git a/doc/zot_structures.md b/doc/zot_structures.md
index 44fc63c41..e8a65ff1f 100644
--- a/doc/zot_structures.md
+++ b/doc/zot_structures.md
@@ -59,5 +59,4 @@ secret is a 64-char string which is randomly generated by the sending site.
secret_sig is the RSA signature of the secret, signed with the sender's private key.
-
-
+#include doc/macros/main_footer.bb;
diff --git a/images/default_profile_photos/alpha/175.png b/images/default_profile_photos/alpha/175.png
new file mode 100644
index 000000000..17211ee27
--- /dev/null
+++ b/images/default_profile_photos/alpha/175.png
Binary files differ
diff --git a/images/default_profile_photos/alpha/48.png b/images/default_profile_photos/alpha/48.png
new file mode 100644
index 000000000..b8212131c
--- /dev/null
+++ b/images/default_profile_photos/alpha/48.png
Binary files differ
diff --git a/images/default_profile_photos/alpha/80.png b/images/default_profile_photos/alpha/80.png
new file mode 100644
index 000000000..19da3ffc1
--- /dev/null
+++ b/images/default_profile_photos/alpha/80.png
Binary files differ
diff --git a/images/default_profile_photos/black_avatar_1/175.png b/images/default_profile_photos/black_avatar_1/175.png
new file mode 100644
index 000000000..bc5b19793
--- /dev/null
+++ b/images/default_profile_photos/black_avatar_1/175.png
Binary files differ
diff --git a/images/default_profile_photos/black_avatar_1/48.png b/images/default_profile_photos/black_avatar_1/48.png
new file mode 100644
index 000000000..7c7ed4504
--- /dev/null
+++ b/images/default_profile_photos/black_avatar_1/48.png
Binary files differ
diff --git a/images/default_profile_photos/black_avatar_1/80.png b/images/default_profile_photos/black_avatar_1/80.png
new file mode 100644
index 000000000..21108b008
--- /dev/null
+++ b/images/default_profile_photos/black_avatar_1/80.png
Binary files differ
diff --git a/images/default_profile_photos/black_avatar_2/175.png b/images/default_profile_photos/black_avatar_2/175.png
new file mode 100644
index 000000000..8ff3cbd4c
--- /dev/null
+++ b/images/default_profile_photos/black_avatar_2/175.png
Binary files differ
diff --git a/images/default_profile_photos/black_avatar_2/48.png b/images/default_profile_photos/black_avatar_2/48.png
new file mode 100644
index 000000000..e7c37b741
--- /dev/null
+++ b/images/default_profile_photos/black_avatar_2/48.png
Binary files differ
diff --git a/images/default_profile_photos/black_avatar_2/80.png b/images/default_profile_photos/black_avatar_2/80.png
new file mode 100644
index 000000000..9a4843562
--- /dev/null
+++ b/images/default_profile_photos/black_avatar_2/80.png
Binary files differ
diff --git a/images/default_profile_photos/blank/175.png b/images/default_profile_photos/blank/175.png
new file mode 100644
index 000000000..1edb25b76
--- /dev/null
+++ b/images/default_profile_photos/blank/175.png
Binary files differ
diff --git a/images/default_profile_photos/blank/48.png b/images/default_profile_photos/blank/48.png
new file mode 100644
index 000000000..cbff2264d
--- /dev/null
+++ b/images/default_profile_photos/blank/48.png
Binary files differ
diff --git a/images/default_profile_photos/blank/80.png b/images/default_profile_photos/blank/80.png
new file mode 100644
index 000000000..e7eb91fd3
--- /dev/null
+++ b/images/default_profile_photos/blank/80.png
Binary files differ
diff --git a/images/default_profile_photos/rainbow_man/175.png b/images/default_profile_photos/rainbow_man/175.png
new file mode 100644
index 000000000..30a7e0ffb
--- /dev/null
+++ b/images/default_profile_photos/rainbow_man/175.png
Binary files differ
diff --git a/images/default_profile_photos/rainbow_man/48.png b/images/default_profile_photos/rainbow_man/48.png
new file mode 100644
index 000000000..8bd2695e6
--- /dev/null
+++ b/images/default_profile_photos/rainbow_man/48.png
Binary files differ
diff --git a/images/default_profile_photos/rainbow_man/80.png b/images/default_profile_photos/rainbow_man/80.png
new file mode 100644
index 000000000..970f10a1e
--- /dev/null
+++ b/images/default_profile_photos/rainbow_man/80.png
Binary files differ
diff --git a/images/default_profile_photos/rainbow_man_trans/175.png b/images/default_profile_photos/rainbow_man_trans/175.png
new file mode 100644
index 000000000..a0a236841
--- /dev/null
+++ b/images/default_profile_photos/rainbow_man_trans/175.png
Binary files differ
diff --git a/images/default_profile_photos/rainbow_man_trans/48.png b/images/default_profile_photos/rainbow_man_trans/48.png
new file mode 100644
index 000000000..9e3399598
--- /dev/null
+++ b/images/default_profile_photos/rainbow_man_trans/48.png
Binary files differ
diff --git a/images/default_profile_photos/rainbow_man_trans/80.png b/images/default_profile_photos/rainbow_man_trans/80.png
new file mode 100644
index 000000000..b0b1ca784
--- /dev/null
+++ b/images/default_profile_photos/rainbow_man_trans/80.png
Binary files differ
diff --git a/images/default_profile_photos/red_avatar/175.png b/images/default_profile_photos/red_avatar/175.png
new file mode 100644
index 000000000..31d39a41a
--- /dev/null
+++ b/images/default_profile_photos/red_avatar/175.png
Binary files differ
diff --git a/images/default_profile_photos/red_avatar/48.png b/images/default_profile_photos/red_avatar/48.png
new file mode 100644
index 000000000..cf42b51fa
--- /dev/null
+++ b/images/default_profile_photos/red_avatar/48.png
Binary files differ
diff --git a/images/default_profile_photos/red_avatar/80.png b/images/default_profile_photos/red_avatar/80.png
new file mode 100644
index 000000000..850c59938
--- /dev/null
+++ b/images/default_profile_photos/red_avatar/80.png
Binary files differ
diff --git a/images/default_profile_photos/red_koala/175.png b/images/default_profile_photos/red_koala/175.png
new file mode 100644
index 000000000..ee4a701d9
--- /dev/null
+++ b/images/default_profile_photos/red_koala/175.png
Binary files differ
diff --git a/images/default_profile_photos/red_koala/48.png b/images/default_profile_photos/red_koala/48.png
new file mode 100644
index 000000000..bc5e61e7b
--- /dev/null
+++ b/images/default_profile_photos/red_koala/48.png
Binary files differ
diff --git a/images/default_profile_photos/red_koala/80.png b/images/default_profile_photos/red_koala/80.png
new file mode 100644
index 000000000..be5b70269
--- /dev/null
+++ b/images/default_profile_photos/red_koala/80.png
Binary files differ
diff --git a/images/default_profile_photos/red_koala_trans/175.png b/images/default_profile_photos/red_koala_trans/175.png
new file mode 100644
index 000000000..4e51c80e2
--- /dev/null
+++ b/images/default_profile_photos/red_koala_trans/175.png
Binary files differ
diff --git a/images/default_profile_photos/red_koala_trans/48.png b/images/default_profile_photos/red_koala_trans/48.png
new file mode 100644
index 000000000..69ecfebd9
--- /dev/null
+++ b/images/default_profile_photos/red_koala_trans/48.png
Binary files differ
diff --git a/images/default_profile_photos/red_koala_trans/80.png b/images/default_profile_photos/red_koala_trans/80.png
new file mode 100644
index 000000000..48c161fc7
--- /dev/null
+++ b/images/default_profile_photos/red_koala_trans/80.png
Binary files differ
diff --git a/images/default_profile_photos/redmatrix_logo_smiley/175.png b/images/default_profile_photos/redmatrix_logo_smiley/175.png
new file mode 100644
index 000000000..7299c4494
--- /dev/null
+++ b/images/default_profile_photos/redmatrix_logo_smiley/175.png
Binary files differ
diff --git a/images/default_profile_photos/redmatrix_logo_smiley/48.png b/images/default_profile_photos/redmatrix_logo_smiley/48.png
new file mode 100644
index 000000000..0b0ebad12
--- /dev/null
+++ b/images/default_profile_photos/redmatrix_logo_smiley/48.png
Binary files differ
diff --git a/images/default_profile_photos/redmatrix_logo_smiley/80.png b/images/default_profile_photos/redmatrix_logo_smiley/80.png
new file mode 100644
index 000000000..4d8b18a13
--- /dev/null
+++ b/images/default_profile_photos/redmatrix_logo_smiley/80.png
Binary files differ
diff --git a/images/redmatrix_logo.svg b/images/redmatrix_logo.svg
new file mode 100644
index 000000000..cb98a7fb5
--- /dev/null
+++ b/images/redmatrix_logo.svg
@@ -0,0 +1,85 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!-- Created with Inkscape (http://www.inkscape.org/) -->
+
+<svg
+ xmlns:dc="http://purl.org/dc/elements/1.1/"
+ xmlns:cc="http://creativecommons.org/ns#"
+ xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
+ xmlns:svg="http://www.w3.org/2000/svg"
+ xmlns="http://www.w3.org/2000/svg"
+ xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
+ xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
+ width="200"
+ height="200"
+ id="svg3053"
+ version="1.1"
+ inkscape:version="0.48.4 r9939"
+ sodipodi:docname="redmatrix.svg">
+ <defs
+ id="defs3055" />
+ <sodipodi:namedview
+ id="base"
+ pagecolor="#ffffff"
+ bordercolor="#666666"
+ borderopacity="1.0"
+ inkscape:pageopacity="0.0"
+ inkscape:pageshadow="2"
+ inkscape:zoom="1.979899"
+ inkscape:cx="35.049163"
+ inkscape:cy="27.799654"
+ inkscape:document-units="px"
+ inkscape:current-layer="layer1"
+ showgrid="false"
+ fit-margin-top="0"
+ fit-margin-left="0"
+ fit-margin-right="0"
+ fit-margin-bottom="0"
+ inkscape:window-width="1871"
+ inkscape:window-height="1056"
+ inkscape:window-x="49"
+ inkscape:window-y="24"
+ inkscape:window-maximized="1" />
+ <metadata
+ id="metadata3058">
+ <rdf:RDF>
+ <cc:Work
+ rdf:about="">
+ <dc:format>image/svg+xml</dc:format>
+ <dc:type
+ rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
+ <dc:title />
+ </cc:Work>
+ </rdf:RDF>
+ </metadata>
+ <g
+ inkscape:label="Laag 1"
+ inkscape:groupmode="layer"
+ id="layer1"
+ transform="translate(-315.00002,-392.36223)"
+ style="display:inline">
+ <g
+ id="g2985"
+ transform="matrix(4.7619048,0,0,4.7619048,-1370.7143,-2042.6958)">
+ <path
+ style="fill:#c60032;fill-opacity:1"
+ d="m 218.0851,397.84091 c 0,12.77893 -10.00215,23.1383 -22.34043,23.1383 -12.33827,0 -22.34042,-10.35937 -22.34042,-23.1383 0,-12.77893 10.00215,-23.1383 22.34042,-23.1383 12.33828,0 22.34043,10.35937 22.34043,23.1383 z"
+ sodipodi:ry="23.138298"
+ sodipodi:rx="22.340425"
+ sodipodi:cy="397.84091"
+ sodipodi:cx="195.74467"
+ id="path3028-4-5-3"
+ sodipodi:type="arc"
+ transform="matrix(0.94,0,0,0.9075862,191.00001,171.28726)" />
+ <g
+ id="text3003-0-4-0"
+ style="font-size:46px;font-style:normal;font-weight:normal;line-height:125%;letter-spacing:0px;word-spacing:0px;fill:#ffffff;fill-opacity:1;stroke:none;font-family:Sans"
+ transform="translate(52.138256,-208.57143)">
+ <path
+ inkscape:connector-curvature="0"
+ id="path3008"
+ style="font-size:45.09999847px;font-variant:normal;font-weight:bold;font-stretch:normal;fill:#ffffff;font-family:generic;-inkscape-font-specification:generic Bold"
+ d="m 322.85053,756.03406 4.7355,0 1.3079,-7.9827 4.8708,0 0,-4.4649 -4.1492,0 1.0373,-6.4944 4.9159,0 0,-4.4649 -4.1492,0 1.1275,-7.0356 -4.7355,0 -1.1275,7.0356 -5.1865,0 1.1275,-7.0356 -4.7355,0 -1.1275,7.0356 -5.0963,0 0,4.4649 4.3296,0 -1.0373,6.4944 -5.0963,0 0,4.4649 4.3747,0 -1.3079,7.9827 4.7355,0 1.3079,-7.9827 5.1865,0 -1.3079,7.9827 m 2.0295,-12.4476 -5.1865,0 1.0373,-6.4944 5.1865,0 -1.0373,6.4944" />
+ </g>
+ </g>
+ </g>
+</svg>
diff --git a/include/Contact.php b/include/Contact.php
index 0590f9d1e..4fd43db44 100644
--- a/include/Contact.php
+++ b/include/Contact.php
@@ -22,7 +22,7 @@ function rconnect_url($channel_id,$xchan) {
if(($r) && ($r[0]['xchan_follow']))
return $r[0]['xchan_follow'];
- $r = q("select hubloc_url from hubloc where hubloc_hash = '%s' and ( hubloc_flags & %d ) limit 1",
+ $r = q("select hubloc_url from hubloc where hubloc_hash = '%s' and ( hubloc_flags & %d )>0 limit 1",
dbesc($xchan),
intval(HUBLOC_FLAGS_PRIMARY)
);
@@ -35,7 +35,7 @@ function rconnect_url($channel_id,$xchan) {
function abook_connections($channel_id, $sql_conditions = '') {
$r = q("select * from abook left join xchan on abook_xchan = xchan_hash where abook_channel = %d
- and not ( abook_flags & %d ) $sql_conditions",
+ and not ( abook_flags & %d )>0 $sql_conditions",
intval($channel_id),
intval(ABOOK_FLAG_SELF)
);
@@ -44,7 +44,7 @@ function abook_connections($channel_id, $sql_conditions = '') {
function abook_self($channel_id) {
$r = q("select * from abook left join xchan on abook_xchan = xchan_hash where abook_channel = %d
- and ( abook_flags & %d ) limit 1",
+ and ( abook_flags & %d )>0 limit 1",
intval($channel_id),
intval(ABOOK_FLAG_SELF)
);
@@ -52,7 +52,7 @@ function abook_self($channel_id) {
}
function channelx_by_nick($nick) {
- $r = 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 )>0 LIMIT 1",
dbesc($nick),
intval(PAGE_REMOVED)
);
@@ -60,7 +60,7 @@ function channelx_by_nick($nick) {
}
function channelx_by_hash($hash) {
- $r = 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 )>0 LIMIT 1",
dbesc($hash),
intval(PAGE_REMOVED)
);
@@ -68,7 +68,7 @@ function channelx_by_hash($hash) {
}
function channelx_by_n($id) {
- $r = 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 )>0 LIMIT 1",
dbesc($id),
intval(PAGE_REMOVED)
);
@@ -128,17 +128,19 @@ function vcard_from_xchan($xchan, $observer = null, $mode = '') {
function abook_toggle_flag($abook,$flag) {
- $r = q("UPDATE abook set abook_flags = (abook_flags ^ %d) where abook_id = %d and abook_channel = %d limit 1",
- intval($flag),
- intval($abook['abook_id']),
- intval($abook['abook_channel'])
+ $r = q("UPDATE abook set abook_flags = (abook_flags %s %d) where abook_id = %d and abook_channel = %d",
+ db_getfunc('^'),
+ intval($flag),
+ intval($abook['abook_id']),
+ intval($abook['abook_channel'])
);
+
// if unsetting the archive bit, update the timestamps so we'll try to connect for an additional 30 days.
if(($flag === ABOOK_FLAG_ARCHIVED) && ($abook['abook_flags'] & ABOOK_FLAG_ARCHIVED)) {
$r = q("update abook set abook_connected = '%s', abook_updated = '%s'
- where abook_id = %d and abook_channel = %d limit 1",
+ where abook_id = %d and abook_channel = %d",
dbesc(datetime_convert()),
dbesc(datetime_convert()),
intval($abook['abook_id']),
@@ -173,7 +175,7 @@ function account_remove($account_id,$local = true,$unset_session=true) {
// Don't let anybody nuke the only admin account.
- $r = q("select account_id from account where (account_roles & %d)",
+ $r = q("select account_id from account where (account_roles & %d)>0",
intval(ACCOUNT_ROLE_ADMIN)
);
@@ -201,10 +203,11 @@ function account_remove($account_id,$local = true,$unset_session=true) {
}
}
- $r = q("delete from account where account_id = %d limit 1",
+ $r = q("delete from account where account_id = %d",
intval($account_id)
);
+
if ($unset_session) {
unset($_SESSION['authenticated']);
unset($_SESSION['uid']);
@@ -214,6 +217,28 @@ function account_remove($account_id,$local = true,$unset_session=true) {
return $r;
}
+// recursively delete a directory
+function rrmdir($path)
+{
+ if (is_dir($path) === true)
+ {
+ $files = array_diff(scandir($path), array('.', '..'));
+
+ foreach ($files as $file)
+ {
+ rrmdir(realpath($path) . '/' . $file);
+ }
+
+ return rmdir($path);
+ }
+
+ else if (is_file($path) === true)
+ {
+ return unlink($path);
+ }
+
+ return false;
+}
function channel_remove($channel_id, $local = true, $unset_session=true) {
@@ -239,17 +264,19 @@ function channel_remove($channel_id, $local = true, $unset_session=true) {
channel_r_photos = 0, channel_r_abook = 0, channel_w_stream = 0, channel_w_wall = 0, channel_w_tagwall = 0,
channel_w_comment = 0, channel_w_mail = 0, channel_w_photos = 0, channel_w_chat = 0, channel_a_delegate = 0,
channel_r_storage = 0, channel_w_storage = 0, channel_r_pages = 0, channel_w_pages = 0, channel_a_republish = 0
- where channel_id = %d limit 1",
+ where channel_id = %d",
dbesc(datetime_convert()),
intval(PAGE_REMOVED),
intval($channel_id)
);
+
$r = q("update hubloc set hubloc_flags = (hubloc_flags | %d) where hubloc_hash = '%s'",
intval(HUBLOC_FLAGS_DELETED),
dbesc($channel['channel_hash'])
);
+
$r = q("update xchan set xchan_flags = (xchan_flags | %d) where xchan_hash = '%s'",
intval(XCHAN_FLAGS_DELETED),
dbesc($channel['channel_hash'])
@@ -257,7 +284,6 @@ function channel_remove($channel_id, $local = true, $unset_session=true) {
proc_run('php','include/notifier.php','purge_all',$channel_id);
-
}
q("DELETE FROM `groups` WHERE `uid` = %d", intval($channel_id));
@@ -274,12 +300,12 @@ function channel_remove($channel_id, $local = true, $unset_session=true) {
q("DELETE FROM `spam` WHERE `uid` = %d", intval($channel_id));
- q("delete from abook where abook_xchan = '%s' and (abook_flags & %d) limit 1",
+ q("delete from abook where abook_xchan = '%s' and (abook_flags & %d)>0",
dbesc($channel['channel_hash']),
dbesc(ABOOK_FLAG_SELF)
);
- $r = q("update channel set channel_deleted = '%s', channel_pageflags = (channel_pageflags | %d) where channel_id = %d limit 1",
+ $r = q("update channel set channel_deleted = '%s', channel_pageflags = (channel_pageflags | %d) where channel_id = %d",
dbesc(datetime_convert()),
intval(PAGE_REMOVED),
intval($channel_id)
@@ -291,11 +317,36 @@ function channel_remove($channel_id, $local = true, $unset_session=true) {
dbesc(z_root())
);
- $r = q("update xchan set xchan_flags = (xchan_flags | %d) where xchan_hash = '%s' ",
- intval(XCHAN_FLAGS_DELETED),
- dbesc($channel['channel_hash'])
+ // Do we have any valid hublocs remaining?
+
+ $hublocs = 0;
+
+ $r = q("select hubloc_id from hubloc where hubloc_hash = '%s' and not (hubloc_flags & %d)>0",
+ dbesc($channel['channel_hash']),
+ intval(HUBLOC_FLAGS_DELETED)
);
+ if($r)
+ $hublocs = count($r);
+ if(! $hublocs) {
+ $r = q("update xchan set xchan_flags = (xchan_flags | %d) where xchan_hash = '%s' ",
+ intval(XCHAN_FLAGS_DELETED),
+ dbesc($channel['channel_hash'])
+ );
+ }
+
+ //remove from file system
+ $r = q("select channel_address from channel where channel_id = %d limit 1",
+ intval($channel_id)
+ );
+ if($r)
+ $channel_address = $r[0]['channel_address'] ;
+ if ($channel_address !== '') {
+ $f = 'store/' . $channel_address.'/';
+ logger ('delete '. $f);
+ if(is_dir($f))
+ @rrmdir($f);
+ }
proc_run('php','include/directory.php',$channel_id);
@@ -322,13 +373,27 @@ function mark_orphan_hubsxchans() {
if($dirmode == DIRECTORY_MODE_NORMAL)
return;
- $r = q("update hubloc set hubloc_status = (hubloc_status | %d) where not (hubloc_status & %d)
- and hubloc_network != 'zot' and hubloc_connected < utc_timestamp() - interval 36 day",
+ $r = q("update hubloc set hubloc_status = (hubloc_status | %d) where not (hubloc_status & %d)>0
+ and hubloc_network = 'zot' and hubloc_connected < %s - interval %s",
+ intval(HUBLOC_OFFLINE),
intval(HUBLOC_OFFLINE),
- intval(HUBLOC_OFFLINE)
+ db_utcnow(), db_quoteinterval('36 day')
);
- $r = q("select hubloc_id, hubloc_hash from hubloc where (hubloc_status & %d) and not (hubloc_flags & %d)",
+// $realm = get_directory_realm();
+// if($realm == DIRECTORY_REALM) {
+// $r = q("select * from site where site_access != 0 and site_register !=0 and ( site_realm = '%s' or site_realm = '') order by rand()",
+// dbesc($realm)
+// );
+// }
+// else {
+// $r = q("select * from site where site_access != 0 and site_register !=0 and site_realm = '%s' order by rand()",
+// dbesc($realm)
+// );
+// }
+
+
+ $r = q("select hubloc_id, hubloc_hash from hubloc where (hubloc_status & %d)>0 and not (hubloc_flags & %d)>0",
intval(HUBLOC_OFFLINE),
intval(HUBLOC_FLAGS_ORPHANCHECK)
);
@@ -338,7 +403,7 @@ function mark_orphan_hubsxchans() {
// see if any other hublocs are still alive for this channel
- $x = q("select * from hubloc where hubloc_hash = '%s' and not (hubloc_status & %d)",
+ $x = q("select * from hubloc where hubloc_hash = '%s' and not (hubloc_status & %d)>0",
dbesc($rr['hubloc_hash']),
intval(HUBLOC_OFFLINE)
);
@@ -346,7 +411,7 @@ function mark_orphan_hubsxchans() {
// yes - if the xchan was marked as an orphan, undo it
- $y = q("update xchan set xchan_flags = (xchan_flags ^ %d) where (xchan_flags & %d) and xchan_hash = '%s' limit 1",
+ $y = q("update xchan set xchan_flags = (xchan_flags & ~%d) where (xchan_flags & %d)>0 and xchan_hash = '%s'",
intval(XCHAN_FLAGS_ORPHAN),
intval(XCHAN_FLAGS_ORPHAN),
dbesc($rr['hubloc_hash'])
@@ -357,7 +422,7 @@ function mark_orphan_hubsxchans() {
// nope - mark the xchan as an orphan
- $y = q("update xchan set xchan_flags = (xchan_flags | %d) where xchan_hash = '%s' limit 1",
+ $y = q("update xchan set xchan_flags = (xchan_flags | %d) where xchan_hash = '%s'",
intval(XCHAN_FLAGS_ORPHAN),
dbesc($rr['hubloc_hash'])
);
@@ -365,7 +430,7 @@ function mark_orphan_hubsxchans() {
// mark that we've checked this entry so we don't need to do it again
- $y = q("update hubloc set hubloc_flags = (hubloc_flags | %d) where hubloc_id = %d limit 1",
+ $y = q("update hubloc set hubloc_flags = (hubloc_flags | %d) where hubloc_id = %d",
intval(HUBLOC_FLAGS_ORPHANCHECK),
dbesc($rr['hubloc_id'])
);
@@ -423,7 +488,7 @@ function remove_all_xchan_resources($xchan, $channel_id = 0) {
if($dirmode === false || $dirmode == DIRECTORY_MODE_NORMAL) {
- $r = q("delete from xchan where xchan_hash = '%s' limit 1",
+ $r = q("delete from xchan where xchan_hash = '%s'",
dbesc($xchan)
);
$r = q("delete from hubloc where hubloc_hash = '%s'",
@@ -456,7 +521,7 @@ function contact_remove($channel_id, $abook_id) {
$archive = get_pconfig($channel_id, 'system','archive_removed_contacts');
if($archive) {
- q("update abook set abook_flags = ( abook_flags | %d ) where abook_id = %d and abook_channel = %d limit 1",
+ q("update abook set abook_flags = ( abook_flags | %d ) where abook_id = %d and abook_channel = %d",
intval(ABOOK_FLAG_ARCHIVED),
intval($abook_id),
intval($channel_id)
@@ -488,7 +553,7 @@ function contact_remove($channel_id, $abook_id) {
}
}
- q("delete from abook where abook_id = %d and abook_channel = %d limit 1",
+ q("delete from abook where abook_id = %d and abook_channel = %d",
intval($abook['abook_id']),
intval($channel_id)
);
@@ -515,7 +580,10 @@ function contact_remove($channel_id, $abook_id) {
function random_profile() {
- $r = q("select xchan_url from xchan left join hubloc on hubloc_hash = xchan_hash where hubloc_connected > UTC_TIMESTAMP() - interval 30 day order by rand() limit 1");
+ $randfunc = db_getfunc('rand');
+ $r = q("select xchan_url from xchan left join hubloc on hubloc_hash = xchan_hash where hubloc_connected > %s - interval %s order by $randfunc limit 1",
+ db_utcnow(), db_quoteinterval('30 day')
+ );
if($r)
return $r[0]['xchan_url'];
return '';
diff --git a/include/ConversationObject.php b/include/ConversationObject.php
index 767ef7360..a02ba102f 100644
--- a/include/ConversationObject.php
+++ b/include/ConversationObject.php
@@ -52,14 +52,14 @@ class Conversation extends BaseObject {
switch($mode) {
case 'network':
- if(array_key_exists('firehose',$a->data) && intval($a->data['firehose'])) {
- $this->profile_owner = intval($a->data['firehose']);
- $this->writable = false;
- }
- else {
+// if(array_key_exists('firehose',$a->data) && intval($a->data['firehose'])) {
+// $this->profile_owner = intval($a->data['firehose']);
+// $this->writable = false;
+// }
+// else {
$this->profile_owner = local_user();
$this->writable = true;
- }
+// }
break;
case 'channel':
$this->profile_owner = $a->profile['profile_uid'];
@@ -177,11 +177,11 @@ class Conversation extends BaseObject {
}
}
require_once('include/identity.php');
- $sys = get_sys_channel();
+// $sys = get_sys_channel();
- if($sys && $item->get_data_value('uid') == $sys['channel_id']) {
- $item->set_commentable(false);
- }
+// if($sys && $item->get_data_value('uid') == $sys['channel_id']) {
+// $item->set_commentable(false);
+// }
$item->set_conversation($this);
$this->threads[] = $item;
diff --git a/include/Import/Importer.php b/include/Import/Importer.php
new file mode 100644
index 000000000..5e684cd8e
--- /dev/null
+++ b/include/Import/Importer.php
@@ -0,0 +1,82 @@
+<?php /** @file */
+
+namespace RedMatrix\Import;
+
+/**
+ * @brief Class Import
+ *
+ * @package RedMatrix\Import
+ */
+class Import {
+
+ private $credentials = null;
+
+ protected $itemlist = null;
+ protected $src_items = null;
+ protected $items = null;
+
+ function get_credentials() {
+ return $this->credentials;
+ }
+
+ function get_itemlist() {
+ return $this->itemlist;
+ }
+
+ function get_item_ident($item) {
+
+ }
+
+ function get_item($item_ident) {
+
+ }
+
+ function get_taxonomy($item_ident) {
+
+ }
+
+ function get_children($item_ident) {
+
+ }
+
+ function convert_item($item_ident) {
+
+ }
+
+ function convert_taxonomy($item_ident) {
+
+ }
+
+ function convert_child($child) {
+
+ }
+
+ function store($item, $update = false) {
+
+ }
+
+ function run() {
+ $this->credentials = $this->get_credentials();
+ $this->itemlist = $this->get_itemlist();
+ if($this->itemlist) {
+ $this->src_items = array();
+ $this->items = array();
+ $cnt = 0;
+ foreach($this->itemlist as $item) {
+ $ident = $item->get_item_ident($item);
+ $this->src_items[$ident]['item'] = $this->get_item($ident);
+ $this->src_items[$ident]['taxonomy'] = $this->get_taxonomy($ident);
+ $this->src_items[$ident]['children'] = $this->get_children($ident);
+ $this->items[$cnt]['item'] = $this->convert_item($ident);
+ $this->items[$cnt]['item']['term'] = $this->convert_taxonomy($ident);
+ if($this->src_items[$ident]['children']) {
+ $this->items[$cnt]['children'] = array();
+ foreach($this->src_items[$ident]['children'] as $child) {
+ $this[$cnt]['children'][] = $this->convert_child($child);
+ }
+ }
+ $cnt ++;
+ }
+ }
+ }
+} \ No newline at end of file
diff --git a/include/Import/refimport.php b/include/Import/refimport.php
new file mode 100644
index 000000000..181b2b398
--- /dev/null
+++ b/include/Import/refimport.php
@@ -0,0 +1,280 @@
+<?php
+
+require_once('include/html2bbcode.php');
+require_once('include/hubloc.php');
+
+// Sample module for importing conversation data from Reflection CMS. Some preparation was used to
+// dump relevant posts, categories and comments into individual JSON files, and also JSON dump of
+// the user table to search for avatars. Importation was also batched in sets of 20 posts per page
+// visit so as to survive shared hosting process limits. This provides some clues as how to handle
+// WordPress imports, which use a somewhat similar DB structure. The batching and individual files
+// might not be needed in VPS environments. As such this could be considered an extreme test case, but
+// the importation was successful in all regards using this code. The module URL was visited repeatedly
+// with a browser until all the posts had been imported.
+
+
+define('REDMATRIX_IMPORTCHANNEL','mike');
+define('REFLECT_EXPORTUSERNAME','mike');
+define('REFLECT_BLOGNAME','Diary and Other Rantings');
+define('REFLECT_BASEURL','http://example.com/');
+define('REFLECT_USERFILE','user.json');
+
+// set to true if you need to process everything again
+define('REFLECT_OVERWRITE',false);
+
+// we'll only process a small number of posts at a time on a shared host.
+
+define('REFLECT_MAXPERRUN',30);
+
+function reflect_get_channel() {
+
+ // this will be the channel_address or nickname of the red channel
+
+ $c = q("select * from channel left join xchan on channel_hash = xchan_hash
+ where channel_address = '%s' limit 1",
+ dbesc(REDMATRIX_IMPORTCHANNEL)
+ );
+ return $c[0];
+}
+
+
+function refimport_content(&$a) {
+
+ $channel = reflect_get_channel();
+
+ // load the user file. We need that to find the commenter's avatars
+
+ $u = file_get_contents(REFLECT_USERFILE);
+ if($u) {
+ $users = json_decode($u,true);
+ }
+
+ $ignored = 0;
+ $processed = 0;
+
+ $files = glob('article/*');
+ if(! $files)
+ return;
+
+ foreach($files as $f) {
+ $s = file_get_contents($f);
+ $j = json_decode($s,true);
+
+ if(! $j)
+ continue;
+
+ $arr = array();
+
+ // see if this article was already processed
+ $r = q("select * from item where mid = '%s' and uid = %d limit 1",
+ dbesc($j['guid']),
+ intval($channel['channel_id'])
+ );
+ if($r) {
+ if(REFLECT_OVERWRITE)
+ $arr['id'] = $r[0]['id'];
+ else {
+ $ignored ++;
+ rename($f,str_replace('article','done',$f));
+ continue;
+ }
+ }
+
+ $arr['uid'] = $channel['channel_account_id'];
+ $arr['aid'] = $channel['channel_id'];
+ $arr['mid'] = $arr['parent_mid'] = $j['guid'];
+ $arr['created'] = $j['created'];
+ $arr['edited'] = $j['edited'];
+ $arr['author_xchan'] = $channel['channel_hash'];
+ $arr['owner_xchan'] = $channel['channel_hash'];
+ $arr['app'] = REFLECT_BLOGNAME;
+ $arr['item_flags'] = ITEM_ORIGIN|ITEM_WALL|ITEM_THREAD_TOP;
+ $arr['verb'] = ACTIVITY_POST;
+
+ // this is an assumption
+ $arr['comment_policy'] = 'contacts';
+
+
+ // import content. In this case the content is XHTML.
+
+ $arr['title'] = html2bbcode($j['title']);
+ $arr['title'] = htmlspecialchars($arr['title'],ENT_COMPAT,'UTF-8',false);
+
+
+ $arr['body'] = html2bbcode($j['body']);
+ $arr['body'] = htmlspecialchars($arr['body'],ENT_COMPAT,'UTF-8',false);
+
+
+ // convert relative urls to other posts on that service to absolute url on our service.
+ $arr['body'] = preg_replace_callback("/\[url\=\/+article\/(.*?)\](.*?)\[url\]/",'reflect_article_callback',$arr['body']);
+
+ // also import any photos
+ $arr['body'] = preg_replace_callback("/\[img(.*?)\](.*?)\[\/img\]/",'reflect_photo_callback',$arr['body']);
+
+
+ // add categories
+
+ if($j['taxonomy'] && is_array($j['taxonomy']) && count($j['taxonomy'])) {
+ $arr['term'] = array();
+ foreach($j['taxonomy'] as $tax) {
+ $arr['term'][] = array(
+ 'uid' => $channel['channel_id'],
+ 'type' => TERM_CATEGORY,
+ 'otype' => TERM_OBJ_POST,
+ 'term' => trim($tax['name']),
+ 'url' => $channel['xchan_url'] . '?f=&cat=' . urlencode(trim($tax['name']))
+ );
+ }
+ }
+
+ // store the item
+
+ if($arr['id'])
+ item_store_update($arr);
+ else
+ item_store($arr);
+
+ // if there are any comments, process them
+ // $comment['registered'] is somebody with an account on the system. Others are mostly anonymous
+
+ if($j['comments']) {
+ foreach($j['comments'] as $comment) {
+ $user = (($comment['registered']) ? reflect_find_user($users,$comment['author']) : null);
+ reflect_comment_store($channel,$arr,$comment,$user);
+ }
+ }
+ $processed ++;
+
+ if(REFLECT_MAXPERRUN && $processed > REFLECT_MAXPERRUN)
+ break;
+ }
+ return 'processed: ' . $processed . EOL . 'completed: ' . $ignored . EOL;
+
+}
+
+function reflect_article_callback($matches) {
+ return '[zrl=' . z_root() . '/display/'. $matches[1] . ']' . $matches[2] . '[/zrl]';
+}
+
+function reflect_photo_callback($matches) {
+
+ if(strpos($matches[2],'http') !== false)
+ return $matches[0];
+
+ $prefix = REFLECT_BASEURL;
+ $x = z_fetch_url($prefix.$matches[2],true);
+
+ $hash = basename($matches[2]);
+
+ if($x['success']) {
+ $channel = reflect_get_channel();
+ require_once('include/photos.php');
+ $p = photo_upload($channel,$channel,
+ array('data' => $x['body'],
+ 'resource_id' => str_replace('-','',$hash),
+ 'filename' => $hash . '.jpg',
+ 'type' => 'image/jpeg',
+ 'not_visible' => true
+ )
+ );
+
+ if($p['success'])
+ $newlink = $p['resource_id'] . '-0.jpg';
+
+
+ // import photo and locate the link for it.
+ return '[zmg]' . z_root() . '/photo/' . $newlink . '[/zmg]';
+
+ }
+ // no replacement. Leave it alone.
+ return $matches[0];
+}
+
+function reflect_find_user($users,$name) {
+ if($users) {
+ foreach($users as $x) {
+ if($x['name'] === $name) {
+ return $x;
+ }
+ }
+ }
+
+ return false;
+
+}
+
+function reflect_comment_store($channel,$post,$comment,$user) {
+
+ // if the commenter was the channel owner, use their redmatrix xchan
+
+ if($comment['author'] === REFLECT_EXPORTUSERNAME && $comment['registered'])
+ $hash = $channel['xchan_hash'];
+ else {
+ // we need a unique hash for the commenter. We don't know how many may have supplied
+ // http://yahoo.com as their URL, so we'll use their avatar guid if they have one.
+ // anonymous folks may get more than one xchan_hash if they commented more than once.
+
+ $hash = (($comment['registered'] && $user) ? $user['avatar'] : '');
+ if(! $hash)
+ $hash = random_string() . '.unknown';
+
+ // create an xchan for them which will also import their profile photo
+ // they will have a network type 'unknown'.
+
+ $x = array(
+ 'hash' => $hash,
+ 'guid' => $hash,
+ 'url' => (($comment['url']) ? $comment['url'] : z_root()),
+ 'photo' => (($user) ? REFLECT_BASEURL . $user['avatar'] : z_root() . '/' . get_default_profile_photo()),
+ 'name' => $comment['author']
+ );
+ xchan_store($x);
+
+ }
+
+ $arr = array();
+
+ $r = q("select * from item where mid = '%s' and uid = %d limit 1",
+ dbesc($comment['guid']),
+ intval($channel['channel_id'])
+ );
+ if($r) {
+ if(REFLECT_OVERWRITE)
+ $arr['id'] = $r[0]['id'];
+ else
+ return;
+ }
+
+ // this is a lot like storing the post except for subtle differences, like parent_mid, flags, author_xchan,
+ // and we don't have a comment edited field so use creation date
+
+ $arr['uid'] = $channel['channel_account_id'];
+ $arr['aid'] = $channel['channel_id'];
+ $arr['mid'] = $comment['guid'];
+ $arr['parent_mid'] = $post['mid'];
+ $arr['created'] = $comment['created'];
+ $arr['edited'] = $comment['created'];
+ $arr['author_xchan'] = $hash;
+ $arr['owner_xchan'] = $channel['channel_hash'];
+ $arr['item_flags'] = ITEM_ORIGIN|ITEM_WALL;
+ $arr['verb'] = ACTIVITY_POST;
+ $arr['comment_policy'] = 'contacts';
+
+
+ $arr['title'] = html2bbcode($comment['title']);
+ $arr['title'] = htmlspecialchars($arr['title'],ENT_COMPAT,'UTF-8',false);
+
+
+ $arr['body'] = html2bbcode($comment['body']);
+ $arr['body'] = htmlspecialchars($arr['body'],ENT_COMPAT,'UTF-8',false);
+ $arr['body'] = preg_replace_callback("/\[url\=\/+article\/(.*?)\](.*?)\[url\]/",'reflect_article_callback',$arr['body']);
+ $arr['body'] = preg_replace_callback("/\[img(.*?)\](.*?)\[\/img\]/",'reflect_photo_callback',$arr['body']);
+
+ // logger('comment: ' . print_r($arr,true));
+
+ if($arr['id'])
+ item_store_update($arr);
+ else
+ item_store($arr);
+
+}
diff --git a/include/ItemObject.php b/include/ItemObject.php
index b4a60762b..ec8116297 100644
--- a/include/ItemObject.php
+++ b/include/ItemObject.php
@@ -28,6 +28,7 @@ class Item extends BaseObject {
private $threaded = false;
private $visiting = false;
private $channel = null;
+ private $display_mode = 'normal';
public function __construct($data) {
@@ -64,8 +65,6 @@ class Item extends BaseObject {
public function get_template_data($alike, $dlike, $thread_level=1) {
- $t1 = dba_timer();
-
$result = array();
$a = $this->get_app();
@@ -80,6 +79,7 @@ class Item extends BaseObject {
$indent = '';
$osparkle = '';
$total_children = $this->count_descendants();
+ $unseen_comments = (($item['real_uid']) ? 0 : $this->count_unseen_descendants());
$conv = $this->get_conversation();
$observer = $conv->get_observer();
@@ -88,7 +88,7 @@ class Item extends BaseObject {
|| strlen($item['deny_cid']) || strlen($item['deny_gid']))))
? t('Private Message')
: false);
- $shareable = ((($conv->get_profile_owner() == local_user()) && ($item['item_private'] != 1)) ? true : false);
+ $shareable = ((($conv->get_profile_owner() == local_user() && local_user()) && ($item['item_private'] != 1)) ? true : false);
// allow an exemption for sharing stuff from your private feeds
if($item['author']['xchan_network'] === 'rss')
@@ -101,11 +101,19 @@ class Item extends BaseObject {
else
$edpost = false;
+
if($observer['xchan_hash'] == $this->get_data_value('author_xchan')
|| $observer['xchan_hash'] == $this->get_data_value('owner_xchan')
|| $this->get_data_value('uid') == local_user())
$dropping = true;
+
+ if(array_key_exists('real_uid',$item)) {
+ $edpost = false;
+ $dropping = false;
+ }
+
+
if($dropping) {
$drop = array(
'dropping' => $dropping,
@@ -119,7 +127,7 @@ class Item extends BaseObject {
);
}
- $filer = (($conv->get_profile_owner() == local_user()) ? t("Save to Folder") : false);
+ $filer = ((($conv->get_profile_owner() == local_user()) && (! array_key_exists('real_uid',$item))) ? t("Save to Folder") : false);
$profile_avatar = $item['author']['xchan_photo_m'];
$profile_link = chanlink_url($item['author']['xchan_url']);
@@ -163,7 +171,7 @@ class Item extends BaseObject {
if($this->is_toplevel()) {
// FIXME check this permission
- if($conv->get_profile_owner() == local_user()) {
+ if(($conv->get_profile_owner() == local_user()) && (! array_key_exists('real_uid',$item))) {
// FIXME we don't need all this stuff, some can be done in the template
@@ -183,7 +191,8 @@ class Item extends BaseObject {
}
- $verified = (($item['item_flags'] & ITEM_VERIFIED) ? t('Message is verified') : '');
+ $verified = (($item['item_flags'] & ITEM_VERIFIED) ? t('Message signature validated') : '');
+ $forged = ((($item['sig']) && (! ($item['item_flags'] & ITEM_VERIFIED))) ? t('Message signature incorrect') : '');
$unverified = '' ; // (($this->is_wall_to_wall() && (! ($item['item_flags'] & ITEM_VERIFIED))) ? t('Message cannot be verified') : '');
@@ -219,15 +228,22 @@ class Item extends BaseObject {
if(strcmp(datetime_convert('UTC','UTC',$item['created']),datetime_convert('UTC','UTC','now - 12 hours')) > 0)
$indent .= ' shiny';
- $t2 = dba_timer();
localize_item($item);
-
- $t3 = dba_timer();
-
$body = prepare_body($item,true);
- $t4 = dba_timer();
+ // $viewthread (below) is only valid in list mode. If this is a channel page, build the thread viewing link
+ // since we can't depend on llink or plink pointing to the right local location.
+
+ $owner_address = substr($item['owner']['xchan_addr'],0,strpos($item['owner']['xchan_addr'],'@'));
+ $viewthread = $item['llink'];
+ if($conv->get_mode() === 'channel')
+ $viewthread = z_root() . '/channel/' . $owner_address . '?f=&mid=' . $item['mid'];
+
+ $comment_count_txt = sprintf( tt('%d comment','%d comments',$total_children),$total_children );
+ $list_unseen_txt = (($unseen_comments) ? sprintf('%d unseen',$unseen_comments) : '');
+
+ $children = $this->get_children();
$tmp_item = array(
'template' => $this->get_template(),
@@ -239,6 +255,8 @@ class Item extends BaseObject {
'id' => $this->get_id(),
'linktitle' => sprintf( t('View %s\'s profile - %s'), $profile_name, $item['author']['xchan_addr']),
'olinktitle' => sprintf( t('View %s\'s profile - %s'), $this->get_owner_name(), $item['owner']['xchan_addr']),
+ 'llink' => $item['llink'],
+ 'viewthread' => $viewthread,
'to' => t('to'),
'via' => t('via'),
'wall' => t('Wall-to-Wall'),
@@ -250,16 +268,18 @@ class Item extends BaseObject {
'osparkle' => $osparkle,
'sparkle' => $sparkle,
'title' => $item['title'],
+ 'title_tosource' => get_pconfig($conv->get_profile_owner(),'system','title_tosource'),
'ago' => relative_date($item['created']),
'app' => $item['app'],
'str_app' => sprintf( t(' from %s'), $item['app']),
'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')):''),
+ 'expiretime' => (($item['expires'] !== NULL_DATE) ? sprintf( t('Expires: %s'), datetime_convert('UTC', date_default_timezone_get(), $item['expires'], 'r')):''),
'lock' => $lock,
'verified' => $verified,
'unverified' => $unverified,
+ 'forged' => $forged,
'location' => $location,
'indent' => $indent,
'owner_url' => $this->get_owner_url(),
@@ -272,15 +292,21 @@ class Item extends BaseObject {
'share' => $share,
'rawmid' => $item['mid'],
'plink' => get_plink($item),
- 'edpost' => ((feature_enabled($conv->get_profile_owner(),'edit_posts')) ? $edpost : ''),
+ 'edpost' => $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('Save Bookmarks') : ''),
+ 'bookmark' => (($conv->get_profile_owner() == local_user() && local_user() && $has_bookmarks) ? t('Save Bookmarks') : ''),
'addtocal' => (($has_event) ? t('Add to Calendar') : ''),
'drop' => $drop,
'multidrop' => ((feature_enabled($conv->get_profile_owner(),'multi_delete')) ? $multidrop : ''),
// end toolbar buttons
+
+ 'unseen_comments' => $unseen_comments,
+ 'comment_count' => $total_children,
+ 'comment_count_txt' => $comment_count_txt,
+ 'list_unseen_txt' => $list_unseen_txt,
+ 'markseen' => t('Mark all seen'),
'like_count' => $like_count,
'like_list' => $like_list,
'like_list_part' => $like_list_part,
@@ -300,24 +326,22 @@ class Item extends BaseObject {
'thread_level' => $thread_level
);
- $t5 = dba_timer();
-
$arr = array('item' => $item, 'output' => $tmp_item);
call_hooks('display_item', $arr);
$result = $arr['output'];
$result['children'] = array();
- $children = $this->get_children();
$nb_children = count($children);
- if($nb_children > 0) {
+
+ if(($this->get_display_mode() === 'normal') && ($nb_children > 0)) {
foreach($children as $child) {
$result['children'][] = $child->get_template_data($alike, $dlike, $thread_level + 1);
}
// Collapse
if(($nb_children > 2) || ($thread_level > 1)) {
$result['children'][0]['comment_firstcollapsed'] = true;
- $result['children'][0]['num_comments'] = sprintf( tt('%d comment','%d comments',$total_children),$total_children );
+ $result['children'][0]['num_comments'] = $comment_count_txt;
$result['children'][0]['hide_text'] = t('[+] show all');
if($thread_level > 1) {
$result['children'][$nb_children - 1]['comment_lastcollapsed'] = true;
@@ -339,14 +363,6 @@ class Item extends BaseObject {
$result['flatten'] = true;
$result['threaded'] = false;
}
- $t6 = dba_timer();
-
-// profiler($t1,$t2,'t2');
-// profiler($t2,$t3,'t3');
-// profiler($t3,$t4,'t4');
-// profiler($t4,$t5,'t5');
-// profiler($t5,$t6,'t6');
-// profiler($t1,$t6,'item total');
return $result;
}
@@ -355,6 +371,14 @@ class Item extends BaseObject {
return $this->get_data_value('id');
}
+ public function get_display_mode() {
+ return $this->display_mode;
+ }
+
+ public function set_display_mode($mode) {
+ $this->display_mode = $mode;
+ }
+
public function is_threaded() {
return $this->threaded;
}
@@ -506,12 +530,12 @@ class Item extends BaseObject {
/**
* Get template
*/
- private function get_template() {
+ public function get_template() {
return $this->template;
}
- private function set_template($t) {
+ public function set_template($t) {
$this->template = $t;
}
@@ -536,6 +560,23 @@ class Item extends BaseObject {
return $total;
}
+ private function count_unseen_descendants() {
+ $children = $this->get_children();
+ $total = count($children);
+ if($total > 0) {
+ $total = 0;
+ foreach($children as $child) {
+ if((! visible_activity($child->data)) || array_key_exists('author_blocked',$child->data)) {
+ continue;
+ }
+ if($child->data['item_flags'] & ITEM_UNSEEN)
+ $total ++;
+ }
+ }
+ return $total;
+ }
+
+
/**
* Get the template for the comment box
*/
@@ -594,7 +635,7 @@ class Item extends BaseObject {
'$edimg' => t('Image'),
'$edurl' => t('Link'),
'$edvideo' => t('Video'),
- '$preview' => ((feature_enabled($conv->get_profile_owner(),'preview')) ? t('Preview') : ''),
+ '$preview' => t('Preview'), // ((feature_enabled($conv->get_profile_owner(),'preview')) ? t('Preview') : ''),
'$indent' => $indent,
'$feature_encrypt' => ((feature_enabled($conv->get_profile_owner(),'content_encrypt')) ? true : false),
'$encrypt' => t('Encrypt text'),
diff --git a/include/RedDAV/RedBasicAuth.php b/include/RedDAV/RedBasicAuth.php
new file mode 100644
index 000000000..19dd9a5f0
--- /dev/null
+++ b/include/RedDAV/RedBasicAuth.php
@@ -0,0 +1,212 @@
+<?php
+
+namespace RedMatrix\RedDAV;
+
+use Sabre\DAV;
+
+/**
+ * @brief Authentication backend class for RedDAV.
+ *
+ * This class also contains some data which is not necessary for authentication
+ * like timezone settings.
+ *
+ * @extends Sabre\DAV\Auth\Backend\AbstractBasic
+ *
+ * @link http://github.com/friendica/red
+ * @license http://opensource.org/licenses/mit-license.php The MIT License (MIT)
+ */
+class RedBasicAuth extends DAV\Auth\Backend\AbstractBasic {
+
+ /**
+ * @brief This variable holds the currently logged-in channel_address.
+ *
+ * It is used for building path in filestorage/.
+ *
+ * @var string|null
+ */
+ protected $channel_name = null;
+ /**
+ * channel_id of the current channel of the logged-in account.
+ *
+ * @var int
+ */
+ public $channel_id = 0;
+ /**
+ * channel_hash of the current channel of the logged-in account.
+ *
+ * @var string
+ */
+ public $channel_hash = '';
+ /**
+ * Set in mod/cloud.php to observer_hash.
+ *
+ * @var string
+ */
+ public $observer = '';
+ /**
+ *
+ * @see RedBrowser::set_writeable()
+ * @var \Sabre\DAV\Browser\Plugin
+ */
+ public $browser;
+ /**
+ * channel_id of the current visited path. Set in RedDirectory::getDir().
+ *
+ * @var int
+ */
+ public $owner_id = 0;
+ /**
+ * channel_name of the current visited path. Set in RedDirectory::getDir().
+ *
+ * Used for creating the path in cloud/
+ *
+ * @var string
+ */
+ public $owner_nick = '';
+ /**
+ * Timezone from the visiting channel's channel_timezone.
+ *
+ * Used in @ref RedBrowser
+ *
+ * @var string
+ */
+ protected $timezone = '';
+
+
+ /**
+ * @brief Validates a username and password.
+ *
+ * Guest access is granted with the password "+++".
+ *
+ * @see \Sabre\DAV\Auth\Backend\AbstractBasic::validateUserPass
+ * @param string $username
+ * @param string $password
+ * @return bool
+ */
+ protected function validateUserPass($username, $password) {
+ if (trim($password) === '+++') {
+ logger('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) {
+ return $this->setAuthenticated($r[0]);
+ }
+ }
+ $r = q("SELECT * FROM channel WHERE channel_address = '%s' LIMIT 1",
+ dbesc($username)
+ );
+ if ($r) {
+ $x = q("SELECT account_flags, account_salt, account_password FROM account WHERE account_id = %d LIMIT 1",
+ intval($r[0]['channel_account_id'])
+ );
+ if ($x) {
+ // @fixme this foreach should not be needed?
+ 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('password verified for ' . $username);
+ return $this->setAuthenticated($r[0]);
+ }
+ }
+ }
+ }
+
+ $error = 'password failed for ' . $username;
+ logger($error);
+ log_failed_login($error);
+
+ return false;
+ }
+
+ /**
+ * @brief Sets variables and session parameters after successfull authentication.
+ *
+ * @param array $r
+ * Array with the values for the authenticated channel.
+ * @return bool
+ */
+ protected function setAuthenticated($r) {
+ $this->channel_name = $r['channel_address'];
+ $this->channel_id = $r['channel_id'];
+ $this->channel_hash = $this->observer = $r['channel_hash'];
+ $_SESSION['uid'] = $r['channel_id'];
+ $_SESSION['account_id'] = $r['channel_account_id'];
+ $_SESSION['authenticated'] = true;
+ return true;
+ }
+
+ /**
+ * Sets the channel_name from the currently logged-in channel.
+ *
+ * @param string $name
+ * The channel's name
+ */
+ public function setCurrentUser($name) {
+ $this->channel_name = $name;
+ }
+ /**
+ * Returns information about the currently logged-in channel.
+ *
+ * If nobody is currently logged in, this method should return null.
+ *
+ * @see \Sabre\DAV\Auth\Backend\AbstractBasic::getCurrentUser
+ * @return string|null
+ */
+ public function getCurrentUser() {
+ return $this->channel_name;
+ }
+
+ /**
+ * @brief Sets the timezone from the channel in RedBasicAuth.
+ *
+ * Set in mod/cloud.php if the channel has a timezone set.
+ *
+ * @param string $timezone
+ * The channel's timezone.
+ * @return void
+ */
+ public function setTimezone($timezone) {
+ $this->timezone = $timezone;
+ }
+ /**
+ * @brief Returns the timezone.
+ *
+ * @return string
+ * Return the channel's timezone.
+ */
+ public function getTimezone() {
+ return $this->timezone;
+ }
+
+ /**
+ * @brief Set browser plugin for SabreDAV.
+ *
+ * @see RedBrowser::set_writeable()
+ * @param \Sabre\DAV\Browser\Plugin $browser
+ */
+ public function setBrowserPlugin($browser) {
+ $this->browser = $browser;
+ }
+
+ /**
+ * @brief Prints out all RedBasicAuth variables to logger().
+ *
+ * @return void
+ */
+ public function log() {
+ logger('channel_name ' . $this->channel_name, LOGGER_DATA);
+ logger('channel_id ' . $this->channel_id, LOGGER_DATA);
+ logger('channel_hash ' . $this->channel_hash, LOGGER_DATA);
+ logger('observer ' . $this->observer, LOGGER_DATA);
+ logger('owner_id ' . $this->owner_id, LOGGER_DATA);
+ logger('owner_nick ' . $this->owner_nick, LOGGER_DATA);
+ }
+} \ No newline at end of file
diff --git a/include/RedDAV/RedBrowser.php b/include/RedDAV/RedBrowser.php
new file mode 100644
index 000000000..eb08fd79f
--- /dev/null
+++ b/include/RedDAV/RedBrowser.php
@@ -0,0 +1,374 @@
+<?php
+
+namespace RedMatrix\RedDAV;
+
+use Sabre\DAV;
+
+/**
+ * @brief Provides a DAV frontend for the webbrowser.
+ *
+ * RedBrowser is a SabreDAV server-plugin to provide a view to the DAV storage
+ * for the webbrowser.
+ *
+ * @extends \Sabre\DAV\Browser\Plugin
+ *
+ * @link http://github.com/friendica/red
+ * @license http://opensource.org/licenses/mit-license.php The MIT License (MIT)
+ */
+class RedBrowser extends DAV\Browser\Plugin {
+
+ /**
+ * @see set_writeable()
+ * @see \Sabre\DAV\Auth\Backend\BackendInterface
+ * @var RedBasicAuth
+ */
+ private $auth;
+
+ /**
+ * @brief Constructor for RedBrowser class.
+ *
+ * $enablePost will be activated through set_writeable() in a later stage.
+ * At the moment the write_storage permission is only valid for the whole
+ * folder. No file specific permissions yet.
+ * @todo disable enablePost by default and only activate if permissions
+ * grant edit rights.
+ *
+ * Disable assets with $enableAssets = false. Should get some thumbnail views
+ * anyway.
+ *
+ * @param RedBasicAuth &$auth
+ */
+ public function __construct(&$auth) {
+ $this->auth = $auth;
+ parent::__construct(true, 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.
+ *
+ * @fixme It only disable/enable the visible parts. Not the POST handler
+ * which handels the actual requests when uploading files or creating folders.
+ *
+ * @todo Maybe this whole way of doing this can be solved with some
+ * $server->subscribeEvent().
+ */
+ public 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;
+ }
+ }
+
+ /**
+ * @brief Creates the directory listing for the given path.
+ *
+ * @param string $path which should be displayed
+ */
+ public function generateDirectoryIndex($path) {
+ // (owner_id = channel_id) is visitor owner of this directory?
+ $is_owner = ((local_user() && $this->auth->owner_id == local_user()) ? true : false);
+
+ if ($this->auth->getTimezone())
+ date_default_timezone_set($this->auth->getTimezone());
+
+ require_once('include/conversation.php');
+
+ if ($this->auth->owner_nick) {
+ $html = profile_tabs(get_app(), (($is_owner) ? true : false), $this->auth->owner_nick);
+ }
+
+ $files = $this->server->getPropertiesForPath($path, array(
+ '{DAV:}displayname',
+ '{DAV:}resourcetype',
+ '{DAV:}getcontenttype',
+ '{DAV:}getcontentlength',
+ '{DAV:}getlastmodified',
+ ), 1);
+
+ $parent = $this->server->tree->getNodeForPath($path);
+
+ $parentpath = array();
+ // only show parent if not leaving /cloud/; TODO how to improve this?
+ if ($path && $path != "cloud") {
+ list($parentUri) = DAV\URLUtil::splitPath($path);
+ $fullPath = DAV\URLUtil::encodePath($this->server->getBaseUri() . $parentUri);
+
+ $parentpath['icon'] = $this->enableAssets ? '<a href="' . $fullPath . '"><img src="' . $this->getAssetUrl('icons/parent' . $this->iconExtension) . '" width="24" alt="' . t('parent') . '"></a>' : '';
+ $parentpath['path'] = $fullPath;
+ }
+
+ $f = array();
+ foreach ($files as $file) {
+ $ft = array();
+ $type = null;
+
+ // This is the current directory, we can skip it
+ if (rtrim($file['href'],'/') == $path) continue;
+
+ list(, $name) = DAV\URLUtil::splitPath($file['href']);
+
+ 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] = t('Collection');
+ break;
+ case '{DAV:}principal' :
+ $type[$k] = t('Principal');
+ break;
+ case '{urn:ietf:params:xml:ns:carddav}addressbook' :
+ $type[$k] = t('Addressbook');
+ break;
+ case '{urn:ietf:params:xml:ns:caldav}calendar' :
+ $type[$k] = t('Calendar');
+ break;
+ case '{urn:ietf:params:xml:ns:caldav}schedule-inbox' :
+ $type[$k] = t('Schedule Inbox');
+ break;
+ case '{urn:ietf:params:xml:ns:caldav}schedule-outbox' :
+ $type[$k] = t('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 = t('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;
+ }
+ }
+ }
+
+ $parentHash = '';
+ $owner = $this->auth->owner_id;
+ $splitPath = split('/', $fullPath);
+ if (count($splitPath) > 3) {
+ for ($i = 3; $i < count($splitPath); $i++) {
+ $attachName = urldecode($splitPath[$i]);
+ $attachHash = $this->findAttachHash($owner, $parentHash, $attachName);
+ $parentHash = $attachHash;
+ }
+ }
+
+ $attachIcon = ""; // "<a href=\"attach/".$attachHash."\" title=\"".$displayName."\"><i class=\"icon-download\"></i></a>";
+
+ // put the array for this file together
+ $ft['attachId'] = $this->findAttachIdByHash($attachHash);
+ $ft['fileStorageUrl'] = substr($fullPath, 0, strpos($fullPath, "cloud/")) . "filestorage/" . $this->auth->getCurrentUser();
+ $ft['icon'] = $icon;
+ $ft['attachIcon'] = (($size) ? $attachIcon : '');
+ // @todo Should this be an item value, not a global one?
+ $ft['is_owner'] = $is_owner;
+ $ft['fullPath'] = $fullPath;
+ $ft['displayName'] = $displayName;
+ $ft['type'] = $type;
+ $ft['size'] = $size;
+ $ft['sizeFormatted'] = $this->userReadableSize($size);
+ $ft['lastmodified'] = (($lastmodified) ? datetime_convert('UTC', date_default_timezone_get(), $lastmodified) : '');
+
+ $f[] = $ft;
+ }
+
+ // Storage and quota for the account (all channels of the owner of this directory)!
+ $limit = service_class_fetch($owner, 'attach_upload_limit');
+ $r = q("SELECT SUM(filesize) AS total FROM attach WHERE aid = %d",
+ intval($this->auth->channel_account_id)
+ );
+ $used = $r[0]['total'];
+ if ($used) {
+ $quotaDesc = t('%1$s used');
+ $quotaDesc = sprintf($quotaDesc,
+ $this->userReadableSize($used));
+ }
+ if ($limit && $used) {
+ $quotaDesc = t('%1$s used of %2$s (%3$s&#37;)');
+ $quotaDesc = sprintf($quotaDesc,
+ $this->userReadableSize($used),
+ $this->userReadableSize($limit),
+ round($used / $limit, 1));
+ }
+
+ // prepare quota for template
+ $quota = array();
+ $quota['used'] = $used;
+ $quota['limit'] = $limit;
+ $quota['desc'] = $quotaDesc;
+
+ $html .= replace_macros(get_markup_template('cloud_directory.tpl'), array(
+ '$header' => t('Files') . ": " . $this->escapeHTML($path) . "/",
+ '$parentpath' => $parentpath,
+ '$entries' => $f,
+ '$quota' => $quota,
+ '$name' => t('Name'),
+ '$type' => t('Type'),
+ '$size' => t('Size'),
+ '$lastmod' => t('Last Modified'),
+ '$parent' => t('parent'),
+ '$edit' => t('Edit'),
+ '$delete' => t('Delete'),
+ '$total' => t('Total')
+ ));
+
+ $output = '';
+ if ($this->enablePost) {
+ $this->server->broadcastEvent('onHTMLActionsPanel', array($parent, &$output));
+ }
+ $html .= $output;
+
+ get_app()->page['content'] = $html;
+ load_pdl(get_app());
+ construct_page(get_app());
+ }
+
+ /**
+ * @brief Returns a human readable formatted string for filesizes.
+ *
+ * Don't we need such a functionality in other places, too?
+ *
+ * @param int $size filesize in bytes
+ * @return string
+ */
+ function userReadableSize($size) {
+ $ret = "";
+ if (is_numeric($size)) {
+ $incr = 0;
+ $k = 1024;
+ $unit = array('bytes', 'KB', 'MB', 'GB', 'TB', 'PB');
+ while (($size / $k) >= 1){
+ $incr++;
+ $size = round($size / $k, 2);
+ }
+ $ret = $size . " " . $unit[$incr];
+ }
+ return $ret;
+ }
+
+ /**
+ * @brief Creates a form to add new folders and upload files.
+ *
+ * @param \Sabre\DAV\INode $node
+ * @param string &$output
+ */
+ 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 .= replace_macros(get_markup_template('cloud_actionspanel.tpl'), array(
+ '$folder_header' => t('Create new folder'),
+ '$folder_submit' => t('Create'),
+ '$upload_header' => t('Upload file'),
+ '$upload_submit' => t('Upload')
+ ));
+ }
+
+ /**
+ * 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);
+ }
+
+ /**
+ * @brief Return the hash of an attachment.
+ *
+ * Given the owner, the parent folder and and attach name get the attachment
+ * hash.
+ *
+ * @param int $owner
+ * The owner_id
+ * @param string $hash
+ * The parent's folder hash
+ * @param string $attachName
+ * The name of the attachment
+ * @return string
+ */
+ protected function findAttachHash($owner, $parentHash, $attachName) {
+ $r = q("SELECT hash FROM attach WHERE uid = %d AND folder = '%s' AND filename = '%s' ORDER BY edited DESC LIMIT 1",
+ intval($owner),
+ dbesc($parentHash),
+ dbesc($attachName)
+ );
+ $hash = "";
+ if ($r) {
+ foreach ($r as $rr) {
+ $hash = $rr['hash'];
+ }
+ }
+ return $hash;
+ }
+
+ /**
+ * @brief Returns an attachment's id for a given hash.
+ *
+ * This id is used to access the attachment in filestorage/
+ *
+ * @param string $attachHash
+ * The hash of an attachment
+ * @return string
+ */
+ protected function findAttachIdByHash($attachHash) {
+ $r = q("SELECT id FROM attach WHERE hash = '%s' ORDER BY edited DESC LIMIT 1",
+ dbesc($attachHash)
+ );
+ $id = "";
+ if ($r) {
+ foreach ($r as $rr) {
+ $id = $rr['id'];
+ }
+ }
+ return $id;
+ }
+} \ No newline at end of file
diff --git a/include/RedDAV/RedDirectory.php b/include/RedDAV/RedDirectory.php
new file mode 100644
index 000000000..85af0d57f
--- /dev/null
+++ b/include/RedDAV/RedDirectory.php
@@ -0,0 +1,462 @@
+<?php
+
+namespace RedMatrix\RedDAV;
+
+use Sabre\DAV;
+
+/**
+ * @brief RedDirectory class.
+ *
+ * A class that represents a directory.
+ *
+ * @extends \Sabre\DAV\Node
+ * @implements \Sabre\DAV\ICollection
+ * @implements \Sabre\DAV\IQuota
+ *
+ * @link http://github.com/friendica/red
+ * @license http://opensource.org/licenses/mit-license.php The MIT License (MIT)
+ */
+class RedDirectory extends DAV\Node implements DAV\ICollection, DAV\IQuota {
+
+ /**
+ * @brief The path inside /cloud
+ *
+ * @var string
+ */
+ private $red_path;
+ private $folder_hash;
+ /**
+ * @brief The full path as seen in the browser.
+ * /cloud + $red_path
+ * @todo I think this is not used anywhere, we always strip '/cloud' and only use it in debug
+ * @var string
+ */
+ private $ext_path;
+ private $root_dir = '';
+ private $auth;
+ /**
+ * @brief The real path on the filesystem.
+ * The actual path in store/ with the hashed names.
+ *
+ * @var string
+ */
+ private $os_path = '';
+
+ /**
+ * @brief Sets up the directory node, expects a full path.
+ *
+ * @param string $ext_path a full path
+ * @param RedBasicAuth &$auth_plugin
+ */
+ public function __construct($ext_path, &$auth_plugin) {
+ //logger('directory ' . $ext_path, LOGGER_DATA);
+ $this->ext_path = $ext_path;
+ // remove "/cloud" from the beginning of the 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();
+ }
+ }
+
+ private function log() {
+ logger('ext_path ' . $this->ext_path, LOGGER_DATA);
+ logger('os_path ' . $this->os_path, LOGGER_DATA);
+ logger('red_path ' . $this->red_path, LOGGER_DATA);
+ }
+
+ /**
+ * @brief Returns an array with all the child nodes.
+ *
+ * @throw \Sabre\DAV\Exception\Forbidden
+ * @return array \Sabre\DAV\INode[]
+ */
+ public function getChildren() {
+ //logger('children 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.');
+ }
+
+ if (($this->auth->owner_id) && (! perm_is_allowed($this->auth->owner_id, $this->auth->observer, 'view_storage'))) {
+ throw new DAV\Exception\Forbidden('Permission denied.');
+ }
+
+ $contents = RedCollectionData($this->red_path, $this->auth);
+ return $contents;
+ }
+
+ /**
+ * @brief Returns a child by name.
+ *
+ *
+ * @throw \Sabre\DAV\Exception\Forbidden
+ * @throw \Sabre\DAV\Exception\NotFound
+ * @param string $name
+ */
+ public function getChild($name) {
+ logger($name, LOGGER_DATA);
+
+ if (get_config('system', 'block_public') && (! $this->auth->channel_id) && (! $this->auth->observer)) {
+ throw new DAV\Exception\Forbidden('Permission denied.');
+ }
+
+ if (($this->auth->owner_id) && (! perm_is_allowed($this->auth->owner_id, $this->auth->observer, 'view_storage'))) {
+ throw new DAV\Exception\Forbidden('Permission denied.');
+ }
+
+ 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.');
+ }
+
+ /**
+ * @brief Returns the name of the directory.
+ *
+ * @return string
+ */
+ public function getName() {
+ //logger(basename($this->red_path), LOGGER_DATA);
+ return (basename($this->red_path));
+ }
+
+ /**
+ * @brief Renames the directory.
+ *
+ * @todo handle duplicate directory name
+ *
+ * @throw \Sabre\DAV\Exception\Forbidden
+ * @param string $name The new name of the directory.
+ * @return void
+ */
+ public function setName($name) {
+ logger('old name ' . basename($this->red_path) . ' -> ' . $name, LOGGER_DATA);
+
+ if ((! $name) || (! $this->auth->owner_id)) {
+ logger('permission denied ' . $name);
+ throw new DAV\Exception\Forbidden('Permission denied.');
+ }
+
+ if (! perm_is_allowed($this->auth->owner_id, $this->auth->observer, 'write_storage')) {
+ logger('permission denied '. $name);
+ throw new DAV\Exception\Forbidden('Permission denied.');
+ }
+
+ list($parent_path, ) = DAV\URLUtil::splitPath($this->red_path);
+ $new_path = $parent_path . '/' . $name;
+
+ $r = q("UPDATE attach SET filename = '%s' WHERE hash = '%s' AND uid = %d",
+ dbesc($name),
+ dbesc($this->folder_hash),
+ intval($this->auth->owner_id)
+ );
+
+ $this->red_path = $new_path;
+ }
+
+ /**
+ * @brief Creates a new file in the directory.
+ *
+ * Data will either be supplied as a stream resource, or in certain cases
+ * as a string. Keep in mind that you may have to support either.
+ *
+ * After successful creation of the file, you may choose to return the ETag
+ * of the new file here.
+ *
+ * @throw \Sabre\DAV\Exception\Forbidden
+ * @param string $name Name of the file
+ * @param resource|string $data Initial payload
+ * @return null|string ETag
+ */
+ public function createFile($name, $data = null) {
+ logger($name, LOGGER_DEBUG);
+
+ if (! $this->auth->owner_id) {
+ logger('permission denied ' . $name);
+ throw new DAV\Exception\Forbidden('Permission denied.');
+ }
+
+ if (! perm_is_allowed($this->auth->owner_id, $this->auth->observer, 'write_storage')) {
+ logger('permission denied ' . $name);
+ throw new DAV\Exception\Forbidden('Permission denied.');
+ }
+
+ $mimetype = z_mime_content_type($name);
+
+ $c = q("SELECT * FROM channel WHERE channel_id = %d AND NOT (channel_pageflags & %d)>0 LIMIT 1",
+ intval($this->auth->owner_id),
+ intval(PAGE_REMOVED)
+ );
+
+ if (! $c) {
+ logger('no channel');
+ throw new DAV\Exception\Forbidden('Permission denied.');
+ }
+
+ $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;
+
+ // returns the number of bytes that were written to the file, or FALSE on failure
+ $size = file_put_contents($f, $data);
+ // delete attach entry if file_put_contents() failed
+ if ($size === false) {
+ logger('file_put_contents() failed to ' . $f);
+ attach_delete($c[0]['channel_id'], $hash);
+ return;
+ }
+
+ // returns now
+ $edited = datetime_convert();
+
+ // updates entry with filesize and timestamp
+ $d = q("UPDATE attach SET filesize = '%s', edited = '%s' WHERE hash = '%s' AND uid = %d",
+ dbesc($size),
+ dbesc($edited),
+ dbesc($hash),
+ intval($c[0]['channel_id'])
+ );
+
+ // update the folder's lastmodified timestamp
+ $e = q("UPDATE attach SET edited = '%s' WHERE hash = '%s' AND uid = %d",
+ 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;
+ }
+
+ // check against service class quota
+ $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('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;
+ }
+ }
+ }
+
+ /**
+ * @brief Creates a new subdirectory.
+ *
+ * @param string $name the directory to create
+ * @return void
+ */
+ public function createDirectory($name) {
+ logger($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.');
+ }
+
+ $r = q("SELECT * FROM channel WHERE channel_id = %d AND NOT (channel_pageflags & %d)>0 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('error ' . print_r($result, true), LOGGER_DEBUG);
+ }
+ }
+ }
+
+ /**
+ * @brief Checks if a child exists.
+ *
+ * @param string $name
+ * The name to check if it exists.
+ * @return boolean
+ */
+ public function childExists($name) {
+ // On /cloud we show a list of available channels.
+ // @todo what happens if no channels are available?
+ if ($this->red_path === '/' && $name === 'cloud') {
+ //logger('We are at /cloud show a channel list', LOGGER_DEBUG);
+ 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;
+ }
+
+ /**
+ * @todo add description of what this function does.
+ *
+ * @throw \Sabre\DAV\Exception\NotFound
+ * @return void
+ */
+ function getDir() {
+ //logger($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;
+
+ logger('paths: ' . print_r($path_arr, true), LOGGER_DATA);
+
+ $channel_name = $path_arr[0];
+
+ $r = q("SELECT channel_id FROM channel WHERE channel_address = '%s' AND NOT ( channel_pageflags & %d )>0 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.');
+ }
+
+ $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 uid = %d and (flags & %d)>0",
+ 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;
+ }
+
+ /**
+ * @brief Returns the last modification time for the directory, as a UNIX
+ * timestamp.
+ *
+ * It looks for the last edited file in the folder. If it is an empty folder
+ * it returns the lastmodified time of the folder itself, to prevent zero
+ * timestamps.
+ *
+ * @return int last modification time in UNIX timestamp
+ */
+ public function getLastModified() {
+ $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) {
+ $r = q("SELECT edited FROM attach WHERE hash = '%s' AND uid = %d LIMIT 1",
+ dbesc($this->folder_hash),
+ intval($this->auth->owner_id)
+ );
+ if (! $r)
+ return '';
+ }
+ return datetime_convert('UTC', 'UTC', $r[0]['edited'], 'U');
+ }
+
+ /**
+ * @brief Return quota usage.
+ *
+ * @fixme Should guests relly see the used/free values from filesystem of the
+ * complete store directory?
+ *
+ * @return array with used and free values in bytes.
+ */
+ public function getQuotaInfo() {
+ // values from the filesystem of the complete <i>store/</i> directory
+ $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)>0 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
+ );
+ }
+} \ No newline at end of file
diff --git a/include/RedDAV/RedFile.php b/include/RedDAV/RedFile.php
new file mode 100644
index 000000000..3a5230dc1
--- /dev/null
+++ b/include/RedDAV/RedFile.php
@@ -0,0 +1,279 @@
+<?php
+
+namespace RedMatrix\RedDAV;
+
+use Sabre\DAV;
+
+/**
+ * @brief This class represents a file in DAV.
+ *
+ * It provides all functions to work with files in Red's cloud through DAV protocol.
+ *
+ * @extends \Sabre\DAV\Node
+ * @implements \Sabre\DAV\IFile
+ *
+ * @link http://github.com/friendica/red
+ * @license http://opensource.org/licenses/mit-license.php The MIT License (MIT)
+ */
+class RedFile extends DAV\Node implements DAV\IFile {
+
+ /**
+ * The file from attach table.
+ *
+ * @var array
+ * data
+ * flags
+ * filename (string)
+ * filetype (string)
+ */
+ private $data;
+ /**
+ * @see \Sabre\DAV\Auth\Backend\BackendInterface
+ * @var \RedMatrix\RedDAV\RedBasicAuth
+ */
+ private $auth;
+ /**
+ * @var string
+ */
+ private $name;
+
+ /**
+ * Sets up the node, expects a full path name.
+ *
+ * @param string $name
+ * @param array $data from attach table
+ * @param &$auth
+ */
+ public function __construct($name, $data, &$auth) {
+ $this->name = $name;
+ $this->data = $data;
+ $this->auth = $auth;
+
+ //logger(print_r($this->data, true), LOGGER_DATA);
+ }
+
+ /**
+ * @brief Returns the name of the file.
+ *
+ * @return string
+ */
+ public function getName() {
+ //logger(basename($this->name), LOGGER_DATA);
+ return basename($this->name);
+ }
+
+ /**
+ * @brief Renames the file.
+ *
+ * @throw Sabre\DAV\Exception\Forbidden
+ * @param string $name The new name of the file.
+ * @return void
+ */
+ public function setName($newName) {
+ logger('old name ' . basename($this->name) . ' -> ' . $newName, LOGGER_DATA);
+
+ if ((! $newName) || (! $this->auth->owner_id) || (! perm_is_allowed($this->auth->owner_id, $this->auth->observer, 'write_storage'))) {
+ logger('permission denied '. $newName);
+ throw new DAV\Exception\Forbidden('Permission denied.');
+ }
+
+ $newName = str_replace('/', '%2F', $newName);
+
+ $r = q("UPDATE attach SET filename = '%s' WHERE hash = '%s' AND id = %d",
+ dbesc($this->data['filename']),
+ intval($this->data['id'])
+ );
+ }
+
+ /**
+ * @brief Updates the data of the file.
+ *
+ * @param resource $data
+ * @return void
+ */
+ public function put($data) {
+ logger('put file: ' . basename($this->name), LOGGER_DEBUG);
+ $size = 0;
+
+ // @todo only 3 values are needed
+ $c = q("SELECT * FROM channel WHERE channel_id = %d AND NOT (channel_pageflags & %d)>0 LIMIT 1",
+ intval($this->auth->owner_id),
+ intval(PAGE_REMOVED)
+ );
+
+ $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) {
+ if ($r[0]['flags'] & ATTACH_FLAG_OS) {
+ $f = 'store/' . $this->auth->owner_nick . '/' . (($r[0]['data']) ? $r[0]['data'] : '');
+ // @todo check return value and set $size directly
+ @file_put_contents($f, $data);
+ $size = @filesize($f);
+ logger('filename: ' . $f . ' size: ' . $size, LOGGER_DEBUG);
+ } else {
+ $r = q("UPDATE attach SET data = '%s' WHERE hash = '%s' AND uid = %d",
+ 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'];
+ }
+ }
+ }
+
+ // returns now()
+ $edited = datetime_convert();
+
+ $d = q("UPDATE attach SET filesize = '%s', edited = '%s' WHERE hash = '%s' AND uid = %d",
+ dbesc($size),
+ dbesc($edited),
+ dbesc($this->data['hash']),
+ intval($c[0]['channel_id'])
+ );
+
+ // update the folder's lastmodified timestamp
+ $e = q("UPDATE attach SET edited = '%s' WHERE hash = '%s' AND uid = %d",
+ dbesc($edited),
+ dbesc($r[0]['folder']),
+ intval($c[0]['channel_id'])
+ );
+
+ // @todo do we really want to remove the whole file if an update fails
+ // because of maxfilesize or quota?
+ // There is an Exception "InsufficientStorage" or "PaymentRequired" for
+ // our service class from SabreDAV we could use.
+
+ $maxfilesize = get_config('system', 'maxfilesize');
+ if (($maxfilesize) && ($size > $maxfilesize)) {
+ attach_delete($c[0]['channel_id'], $this->data['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('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;
+ }
+ }
+ }
+
+ /**
+ * @brief Returns the raw data.
+ *
+ * @return string
+ */
+ public function get() {
+ logger('get file ' . 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) {
+ // @todo this should be a global definition
+ $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'];
+ }
+ }
+
+ /**
+ * @brief Returns the ETag for a file.
+ *
+ * An ETag is a unique identifier representing the current version of the file.
+ * If the file changes, the ETag MUST change.
+ * The ETag is an arbitrary string, but MUST be surrounded by double-quotes.
+ *
+ * Return null if the ETag can not effectively be determined.
+ *
+ * @return null|string
+ */
+ public function getETag() {
+ $ret = null;
+ if ($this->data['hash']) {
+ $ret = '"' . $this->data['hash'] . '"';
+ }
+ return $ret;
+ }
+
+ /**
+ * @brief Returns the mime-type for a file.
+ *
+ * If null is returned, we'll assume application/octet-stream
+ *
+ * @return mixed
+ */
+ public function getContentType() {
+ // @todo this should be a global definition.
+ $unsafe_types = array('text/html', 'text/css', 'application/javascript');
+ if (in_array($this->data['filetype'], $unsafe_types)) {
+ return 'text/plain';
+ }
+ return $this->data['filetype'];
+ }
+
+ /**
+ * @brief Returns the size of the node, in bytes.
+ *
+ * @return int
+ * filesize in bytes
+ */
+ public function getSize() {
+ return $this->data['filesize'];
+ }
+
+ /**
+ * @brief Returns the last modification time for the file, as a unix
+ * timestamp.
+ *
+ * @return int last modification time in UNIX timestamp
+ */
+ public function getLastModified() {
+ return datetime_convert('UTC', 'UTC', $this->data['edited'], 'U');
+ }
+
+ /**
+ * @brief Delete the file.
+ *
+ * This method checks the permissions and then calls attach_delete() function
+ * to actually remove the file.
+ *
+ * @throw \Sabre\DAV\Exception\Forbidden
+ */
+ public function delete() {
+ logger('delete file ' . basename($this->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.');
+ }
+
+ 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.');
+ }
+ }
+
+ attach_delete($this->auth->owner_id, $this->data['hash']);
+ }
+} \ No newline at end of file
diff --git a/include/account.php b/include/account.php
index 6cc203dc8..8df44acba 100644
--- a/include/account.php
+++ b/include/account.php
@@ -108,7 +108,7 @@ function create_account($arr) {
$parent = ((x($arr,'parent')) ? intval($arr['parent']) : 0 );
$flags = ((x($arr,'account_flags')) ? intval($arr['account_flags']) : ACCOUNT_OK);
$roles = ((x($arr,'account_roles')) ? intval($arr['account_roles']) : 0 );
- $expires = ((x($arr,'expires')) ? intval($arr['expires']) : '0000-00-00 00:00:00');
+ $expires = ((x($arr,'expires')) ? intval($arr['expires']) : NULL_DATE);
$default_service_class = get_config('system','default_service_class');
@@ -202,7 +202,7 @@ function create_account($arr) {
// Set the parent record to the current record_id if no parent was provided
if(! $parent) {
- $r = q("update account set account_parent = %d where account_id = %d limit 1",
+ $r = q("update account set account_parent = %d where account_id = %d",
intval($result['account']['account_id']),
intval($result['account']['account_id'])
);
@@ -367,16 +367,16 @@ function user_allow($hash) {
if(! $account)
return $ret;
- $r = q("DELETE FROM register WHERE hash = '%s' LIMIT 1",
+ $r = q("DELETE FROM register WHERE hash = '%s'",
dbesc($register[0]['hash'])
);
- $r = q("update account set account_flags = (account_flags ^ %d) where (account_flags & %d) and account_id = %d limit 1",
+ $r = q("update account set account_flags = (account_flags & ~%d) where (account_flags & %d)>0 and account_id = %d",
intval(ACCOUNT_BLOCKED),
intval(ACCOUNT_BLOCKED),
intval($register[0]['uid'])
);
- $r = q("update account set account_flags = (account_flags ^ %d) where (account_flags & %d) and account_id = %d limit 1",
+ $r = q("update account set account_flags = (account_flags & ~%d) where (account_flags & %d)>0 and account_id = %d",
intval(ACCOUNT_PENDING),
intval(ACCOUNT_PENDING),
intval($register[0]['uid'])
@@ -430,11 +430,11 @@ function user_deny($hash) {
if(! $account)
return false;
- $r = q("DELETE FROM account WHERE account_id = %d LIMIT 1",
+ $r = q("DELETE FROM account WHERE account_id = %d",
intval($register[0]['uid'])
);
- $r = q("DELETE FROM `register` WHERE id = %d LIMIT 1",
+ $r = q("DELETE FROM `register` WHERE id = %d",
dbesc($register[0]['id'])
);
notice( sprintf(t('Registration revoked for %s'), $account[0]['account_email']) . EOL);
@@ -463,21 +463,21 @@ function user_approve($hash) {
if(! $account)
return $ret;
- $r = q("DELETE FROM register WHERE hash = '%s' and password = 'verify' LIMIT 1",
+ $r = q("DELETE FROM register WHERE hash = '%s' and password = 'verify'",
dbesc($register[0]['hash'])
);
- $r = q("update account set account_flags = (account_flags ^ %d) where (account_flags & %d) and account_id = %d limit 1",
+ $r = q("update account set account_flags = (account_flags & ~%d) where (account_flags & %d)>0 and account_id = %d",
intval(ACCOUNT_BLOCKED),
intval(ACCOUNT_BLOCKED),
intval($register[0]['uid'])
);
- $r = q("update account set account_flags = (account_flags ^ %d) where (account_flags & %d) and account_id = %d limit 1",
+ $r = q("update account set account_flags = (account_flags & ~%d) where (account_flags & %d)>0 and account_id = %d",
intval(ACCOUNT_PENDING),
intval(ACCOUNT_PENDING),
intval($register[0]['uid'])
);
- $r = q("update account set account_flags = (account_flags ^ %d) where (account_flags & %d) and account_id = %d limit 1",
+ $r = q("update account set account_flags = (account_flags & ~%d) where (account_flags & %d)>0 and account_id = %d",
intval(ACCOUNT_UNVERIFIED),
intval(ACCOUNT_UNVERIFIED),
intval($register[0]['uid'])
@@ -510,10 +510,12 @@ function user_approve($hash) {
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)
+ $r = q("select * from account where not ( account_flags & %d )>0
+ and account_expires != '%s'
+ and account_expires < %s ",
+ intval(ACCOUNT_EXPIRED),
+ dbesc(NULL_DATE),
+ db_getfunc('UTC_TIMESTAMP')
);
if(! $r)
@@ -526,9 +528,9 @@ function downgrade_accounts() {
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",
+ where account_id = %d",
dbesc($basic),
- dbesc('0000-00-00 00:00:00'),
+ dbesc(NULL_DATE),
intval($rr['account_id'])
);
$ret = array('account' => $rr);
@@ -536,7 +538,7 @@ function downgrade_accounts() {
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",
+ $x = q("UPDATE account SET account_flags = (account_flags | %d) where account_id = %d",
intval(ACCOUNT_EXPIRED),
intval($rr['account_id'])
);
@@ -615,6 +617,29 @@ function service_class_fetch($uid,$property) {
return((array_key_exists($property,$arr)) ? $arr[$property] : false);
}
+// like service_class_fetch but queries by account rather than channel
+
+function account_service_class_fetch($aid,$property) {
+
+ $r = q("select account_service_class as service_class from account where account_id = %d limit 1",
+ intval($aid)
+ );
+ if($r !== false && count($r)) {
+ $service_class = $r[0]['service_class'];
+ }
+
+ if(! x($service_class))
+ return false; // everything is allowed
+
+ $arr = get_config('service_class',$service_class);
+
+ if(! is_array($arr) || (! count($arr)))
+ return false;
+
+ return((array_key_exists($property,$arr)) ? $arr[$property] : false);
+}
+
+
function upgrade_link($bbcode = false) {
$l = get_config('service_class','upgrade_link');
if(! $l)
diff --git a/include/acl_selectors.php b/include/acl_selectors.php
index 0b68ba227..243e7a549 100644
--- a/include/acl_selectors.php
+++ b/include/acl_selectors.php
@@ -171,7 +171,7 @@ function contact_select($selname, $selclass, $preselected = false, $size = 4, $p
$o .= "<select name=\"{$selname}[]\" id=\"$selclass\" class=\"$selclass\" multiple=\"multiple\" size=\"$size\" $tabindex >\r\n";
$r = q("SELECT abook_id, xchan_name, xchan_url, xchan_photo_s from abook left join xchan on abook_xchan = xchan_hash
- where abook_flags = 0 or not ( abook_flags & %d ) and abook_channel = %d
+ where abook_flags = 0 or not ( abook_flags & %d )>0 and abook_channel = %d
$sql_extra
ORDER BY xchan_name ASC ",
intval(ABOOK_FLAG_SELF),
@@ -248,8 +248,7 @@ function populate_acl($defaults = null,$show_jotnets = true) {
'$aclModalTitle' => t('Permissions'),
'$aclModalDismiss' => t('Close')
));
-
-
+
return $o;
}
diff --git a/include/api.php b/include/api.php
index c0f54af19..aeee95d3b 100644
--- a/include/api.php
+++ b/include/api.php
@@ -197,7 +197,10 @@ require_once('include/items.php');
case "json":
header ("Content-Type: application/json");
foreach($r as $rr)
- return json_encode($rr);
+ $json = json_encode($rr);
+ if ($_GET['callback'])
+ $json = $_GET['callback']."(".$json.")";
+ return $json;
break;
case "rss":
header ("Content-Type: application/rss+xml");
@@ -306,7 +309,7 @@ require_once('include/items.php');
return False;
} else {
$user = local_user();
- $extra_query = " AND abook_channel = %d AND (abook_flags & " . ABOOK_FLAG_SELF . " ) ";
+ $extra_query = " AND abook_channel = %d AND (abook_flags & " . ABOOK_FLAG_SELF . " )>0 ";
}
}
@@ -333,7 +336,7 @@ require_once('include/items.php');
// count public wall messages
$r = q("SELECT COUNT(`id`) as `count` FROM `item`
WHERE `uid` = %d
- AND ( item_flags & %d ) and item_restrict = 0
+ AND ( item_flags & %d )>0 and item_restrict = 0
AND `allow_cid`='' AND `allow_gid`='' AND `deny_cid`='' AND `deny_gid`=''",
intval($usr[0]['channel_id']),
intval(ITEM_WALL)
@@ -360,7 +363,7 @@ require_once('include/items.php');
$countfollowers = $r[0]['count'];
}
- $r = q("SELECT count(`id`) as `count` FROM item where ( item_flags & %d ) and uid = %d and item_restrict = 0",
+ $r = q("SELECT count(`id`) as `count` FROM item where ( item_flags & %d )>0 and uid = %d and item_restrict = 0",
intval($uinfo[0]['channel_id']),
intval(ITEM_STARRED)
);
@@ -546,8 +549,8 @@ require_once('include/items.php');
}
require_once('include/identity.php');
-
- json_return_and_die(identity_basic_export(api_user()));
+
+ json_return_and_die(identity_basic_export(api_user(),(($_REQUEST['posts']) ? intval($_REQUEST['posts']) : 0 )));
}
api_register_func('api/export/basic','api_export_basic', true);
api_register_func('api/red/channel/export/basic','api_export_basic', true);
@@ -582,10 +585,55 @@ require_once('include/items.php');
api_register_func('api/red/photos','api_photos', true);
+ function api_group_members(&$a,$type) {
+ if(api_user() === false)
+ return false;
+
+ if($_REQUEST['group_id']) {
+ $r = q("select * from groups where uid = %d and id = %d limit 1",
+ intval(api_user()),
+ intval($_REQUEST['group_id'])
+ );
+ if($r) {
+ $x = q("select * from group_member left join xchan on group_member.xchan = xchan.xchan_hash
+ left join abook on abook_xchan = xchan_hash where gid = %d",
+ intval($_REQUEST['group_id'])
+ );
+ json_return_and_die($x);
+ }
+ }
+ }
+
+ api_register_func('api/red/group_members','api_group_members', true);
+
+ function api_group(&$a,$type) {
+ if(api_user() === false)
+ return false;
+
+ $r = q("select * from groups where uid = %d",
+ intval(api_user())
+ );
+ json_return_and_die($r);
+ }
+ api_register_func('api/red/group','api_group', true);
+
+ function api_red_xchan(&$a,$type) {
+ if(api_user() === false)
+ return false;
+ require_once('include/hubloc.php');
+ if($_SERVER['request_method'] === 'POST') {
+ $r = xchan_store($_REQUEST);
+ }
+ $r = xchan_fetch($_REQUEST);
+ json_return_and_die($r);
+ };
+
+ api_register_func('api/red/xchan','api_red_xchan',true);
+
function api_statuses_mediap(&$a, $type) {
if (api_user() === false) {
@@ -956,8 +1004,8 @@ require_once('include/items.php');
// at the network timeline just mark everything seen.
if (api_user() == $user_info['uid']) {
- $r = q("UPDATE `item` SET item_flags = ( item_flags ^ %d )
- WHERE item_flags & %d and uid = %d",
+ $r = q("UPDATE `item` SET item_flags = ( item_flags & ~%d )
+ WHERE (item_flags & %d)>0 and uid = %d",
intval(ITEM_UNSEEN),
intval(ITEM_UNSEEN),
intval($user_info['uid'])
@@ -1014,10 +1062,10 @@ require_once('include/items.php');
and uid in ( " . stream_perms_api_uids() . " )
$sql_extra
AND id > %d group by mid
- order by received desc LIMIT %d, %d ",
+ order by received desc LIMIT %d OFFSET %d ",
intval($since_id),
- intval($start),
- intval($count)
+ intval($count),
+ intval($start)
);
xchan_query($r,true);
@@ -1658,9 +1706,9 @@ require_once('include/items.php');
// For Red, the closest thing we can do to figure out if you're friends is if both of you are sending each other your streams.
// This won't work if either of you send your stream to everybody on the network
if($qtype == 'friends')
- $sql_extra = sprintf(" AND ( abook_their_perms & %d ) and ( abook_my_perms & %d ) ", intval(PERMS_W_STREAM), intval(PERMS_W_STREAM));
+ $sql_extra = sprintf(" AND ( abook_their_perms & %d )>0 and ( abook_my_perms & %d )>0 ", intval(PERMS_W_STREAM), intval(PERMS_W_STREAM));
if($qtype == 'followers')
- $sql_extra = sprintf(" AND ( abook_my_perms & %d ) and not ( abook_their_perms & %d ) ", intval(PERMS_W_STREAM), intval(PERMS_W_STREAM));
+ $sql_extra = sprintf(" AND ( abook_my_perms & %d )>0 and not ( abook_their_perms & %d )>0 ", intval(PERMS_W_STREAM), intval(PERMS_W_STREAM));
$r = q("SELECT abook_id FROM abook where abook_flags = 0 and abook_channel = %d $sql_extra",
intval(api_user())
@@ -1774,9 +1822,9 @@ require_once('include/items.php');
// This won't work if either of you send your stream to everybody on the network
if($qtype == 'friends')
- $sql_extra = sprintf(" AND ( abook_their_perms & %d ) and ( abook_my_perms & %d ) ", intval(PERMS_W_STREAM), intval(PERMS_W_STREAM));
+ $sql_extra = sprintf(" AND ( abook_their_perms & %d )>0 and ( abook_my_perms & %d )>0 ", intval(PERMS_W_STREAM), intval(PERMS_W_STREAM));
if($qtype == 'followers')
- $sql_extra = sprintf(" AND ( abook_my_perms & %d ) and not ( abook_their_perms & %d ) ", intval(PERMS_W_STREAM), intval(PERMS_W_STREAM));
+ $sql_extra = sprintf(" AND ( abook_my_perms & %d )>0 and not ( abook_their_perms & %d )>0 ", intval(PERMS_W_STREAM), intval(PERMS_W_STREAM));
$r = q("SELECT abook_id FROM abook where abook_flags = 0 and abook_channel = %d $sql_extra",
intval(api_user())
@@ -1892,9 +1940,9 @@ require_once('include/items.php');
$sql_extra = "`from-url`!='".dbesc( $profile_url )."'";
}
- $r = q("SELECT * FROM `mail` WHERE uid=%d AND $sql_extra ORDER BY created DESC LIMIT %d,%d",
+ $r = q("SELECT * FROM `mail` WHERE uid=%d AND $sql_extra ORDER BY created DESC LIMIT %d OFFSET %d",
intval(api_user()),
- intval($start), intval($count)
+ intval($count), intval($start)
);
$ret = Array();
diff --git a/include/apps.php b/include/apps.php
index 91012b0ef..9c4fe826a 100644
--- a/include/apps.php
+++ b/include/apps.php
@@ -11,7 +11,10 @@ require_once('include/identity.php');
function get_system_apps() {
$ret = array();
- $files = glob('app/*.apd');
+ if(is_dir('apps'))
+ $files = glob('apps/*.apd');
+ else
+ $files = glob('app/*.apd');
if($files) {
foreach($files as $f) {
$x = parse_app_description($f);
@@ -264,7 +267,7 @@ function app_install($uid,$app) {
function app_destroy($uid,$app) {
if($uid && $app['guid']) {
- $r = q("delete from app where app_id = '%s' and app_channel = %d limit 1",
+ $r = q("delete from app where app_id = '%s' and app_channel = %d",
dbesc($app['guid']),
intval($uid)
);
@@ -385,7 +388,7 @@ function app_update($arr) {
$darray['app_page'] = ((x($arr,'page')) ? escape_tags($arr['page']) : '');
$darray['app_requires'] = ((x($arr,'requires')) ? escape_tags($arr['requires']) : '');
- $r = q("update app set app_sig = '%s', app_author = '%s', app_name = '%s', app_desc = '%s', app_url = '%s', app_photo = '%s', app_version = '%s', app_addr = '%s', app_price = '%s', app_page = '%s', app_requires = '%s' where app_id = '%s' and app_channel = %d limit 1",
+ $r = q("update app set app_sig = '%s', app_author = '%s', app_name = '%s', app_desc = '%s', app_url = '%s', app_photo = '%s', app_version = '%s', app_addr = '%s', app_price = '%s', app_page = '%s', app_requires = '%s' where app_id = '%s' and app_channel = %d",
dbesc($darray['app_sig']),
dbesc($darray['app_author']),
dbesc($darray['app_name']),
diff --git a/include/attach.php b/include/attach.php
index 0df2e82a5..ad6ca1b21 100644
--- a/include/attach.php
+++ b/include/attach.php
@@ -26,77 +26,74 @@ function z_mime_content_type($filename) {
$mime_types = array(
- 'txt' => 'text/plain',
- 'htm' => 'text/html',
- 'html' => 'text/html',
- 'php' => 'text/html',
- 'css' => 'text/css',
- 'js' => 'application/javascript',
- 'json' => 'application/json',
- 'xml' => 'application/xml',
- 'swf' => 'application/x-shockwave-flash',
- 'flv' => 'video/x-flv',
- 'epub' => 'application/epub+zip',
-
- // images
- 'png' => 'image/png',
- 'jpe' => 'image/jpeg',
- 'jpeg' => 'image/jpeg',
- 'jpg' => 'image/jpeg',
- 'gif' => 'image/gif',
- 'bmp' => 'image/bmp',
- 'ico' => 'image/vnd.microsoft.icon',
- 'tiff' => 'image/tiff',
- 'tif' => 'image/tiff',
- 'svg' => 'image/svg+xml',
- 'svgz' => 'image/svg+xml',
-
- // archives
- 'zip' => 'application/zip',
- 'rar' => 'application/x-rar-compressed',
- 'exe' => 'application/x-msdownload',
- 'msi' => 'application/x-msdownload',
- 'cab' => 'application/vnd.ms-cab-compressed',
-
- // audio/video
- 'mp3' => 'audio/mpeg',
- 'wav' => 'audio/wav',
- 'qt' => 'video/quicktime',
- 'mov' => 'video/quicktime',
- 'ogg' => 'application/ogg',
-
- // adobe
- 'pdf' => 'application/pdf',
- 'psd' => 'image/vnd.adobe.photoshop',
- 'ai' => 'application/postscript',
- 'eps' => 'application/postscript',
- 'ps' => 'application/postscript',
-
- // ms office
- 'doc' => 'application/msword',
- 'rtf' => 'application/rtf',
- 'xls' => 'application/vnd.ms-excel',
- 'ppt' => 'application/vnd.ms-powerpoint',
-
-
- // open office
- 'odt' => 'application/vnd.oasis.opendocument.text',
- 'ods' => 'application/vnd.oasis.opendocument.spreadsheet',
+ 'txt' => 'text/plain',
+ 'htm' => 'text/html',
+ 'html' => 'text/html',
+ 'php' => 'text/html',
+ 'css' => 'text/css',
+ 'js' => 'application/javascript',
+ 'json' => 'application/json',
+ 'xml' => 'application/xml',
+ 'swf' => 'application/x-shockwave-flash',
+ 'flv' => 'video/x-flv',
+ 'epub' => 'application/epub+zip',
+
+ // images
+ 'png' => 'image/png',
+ 'jpe' => 'image/jpeg',
+ 'jpeg' => 'image/jpeg',
+ 'jpg' => 'image/jpeg',
+ 'gif' => 'image/gif',
+ 'bmp' => 'image/bmp',
+ 'ico' => 'image/vnd.microsoft.icon',
+ 'tiff' => 'image/tiff',
+ 'tif' => 'image/tiff',
+ 'svg' => 'image/svg+xml',
+ 'svgz' => 'image/svg+xml',
+
+ // archives
+ 'zip' => 'application/zip',
+ 'rar' => 'application/x-rar-compressed',
+ 'exe' => 'application/x-msdownload',
+ 'msi' => 'application/x-msdownload',
+ 'cab' => 'application/vnd.ms-cab-compressed',
+
+ // audio/video
+ 'mp3' => 'audio/mpeg',
+ 'wav' => 'audio/wav',
+ 'qt' => 'video/quicktime',
+ 'mov' => 'video/quicktime',
+ 'ogg' => 'application/ogg',
+
+ // adobe
+ 'pdf' => 'application/pdf',
+ 'psd' => 'image/vnd.adobe.photoshop',
+ 'ai' => 'application/postscript',
+ 'eps' => 'application/postscript',
+ 'ps' => 'application/postscript',
+
+ // ms office
+ 'doc' => 'application/msword',
+ 'rtf' => 'application/rtf',
+ 'xls' => 'application/vnd.ms-excel',
+ 'ppt' => 'application/vnd.ms-powerpoint',
+
+ // open office
+ 'odt' => 'application/vnd.oasis.opendocument.text',
+ 'ods' => 'application/vnd.oasis.opendocument.spreadsheet',
);
- $dot = strpos($filename,'.');
- if($dot !== false) {
- $ext = strtolower(substr($filename,$dot+1));
+ $dot = strpos($filename, '.');
+ if ($dot !== false) {
+ $ext = strtolower(substr($filename, $dot + 1));
if (array_key_exists($ext, $mime_types)) {
return $mime_types[$ext];
}
}
return 'application/octet-stream';
-
}
-
/**
* @brief Count files/attachments.
*
@@ -138,8 +135,8 @@ function attach_count_files($channel_id, $observer, $hash = '', $filename = '',
$ret['success'] = ((is_array($r)) ? true : false);
$ret['results'] = ((is_array($r)) ? count($r) : false);
- return $ret;
+ return $ret;
}
/**
@@ -190,8 +187,8 @@ function attach_list_files($channel_id, $observer, $hash = '', $filename = '', $
$ret['success'] = ((is_array($r)) ? true : false);
$ret['results'] = ((is_array($r)) ? $r : false);
- return $ret;
+ return $ret;
}
/**
@@ -246,8 +243,8 @@ function attach_by_hash($hash, $rev = 0) {
$ret['success'] = true;
$ret['data'] = $r[0];
- return $ret;
+ return $ret;
}
/**
@@ -301,7 +298,6 @@ function attach_by_hash_nodata($hash, $rev = 0) {
$ret['success'] = true;
$ret['data'] = $r[0];
return $ret;
-
}
/**
@@ -400,14 +396,15 @@ function attach_store($channel, $observer_hash, $options = '', $arr = null) {
if(! isset($hash))
$hash = random_string();
+
$created = datetime_convert();
if($options === 'replace') {
- $r = q("update attach set filename = '%s', filetype = '%s', filesize = %d, data = '%s', edited = '%s' where id = %d and uid = %d limit 1",
+ $r = q("update attach set filename = '%s', filetype = '%s', filesize = %d, data = '%s', edited = '%s' where id = %d and uid = %d",
dbesc($filename),
dbesc($mimetype),
intval($filesize),
- dbesc(@file_get_contents($src)),
+ dbescbin(@file_get_contents($src)),
dbesc($created),
intval($existing_id),
intval($channel_id)
@@ -424,7 +421,7 @@ function attach_store($channel, $observer_hash, $options = '', $arr = null) {
dbesc($mimetype),
intval($filesize),
intval($x[0]['revision'] + 1),
- dbesc(@file_get_contents($src)),
+ dbescbin(@file_get_contents($src)),
dbesc($created),
dbesc($created),
dbesc($x[0]['allow_cid']),
@@ -432,10 +429,10 @@ function attach_store($channel, $observer_hash, $options = '', $arr = null) {
dbesc($x[0]['deny_cid']),
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",
+ allow_cid = '%s', allow_gid = '%s', deny_cid = '%s', deny_gid = '%s' where id = %d and uid = %d",
dbesc((array_key_exists('filename',$arr)) ? $arr['filename'] : $x[0]['filename']),
dbesc((array_key_exists('filetype',$arr)) ? $arr['filetype'] : $x[0]['filetype']),
dbesc($created),
@@ -446,7 +443,7 @@ function attach_store($channel, $observer_hash, $options = '', $arr = null) {
intval($x[0]['id']),
intval($x[0]['uid'])
);
- }
+ }
else {
$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' ) ",
@@ -458,7 +455,7 @@ function attach_store($channel, $observer_hash, $options = '', $arr = null) {
dbesc($mimetype),
intval($filesize),
intval(0),
- dbesc(@file_get_contents($src)),
+ dbescbin(@file_get_contents($src)),
dbesc($created),
dbesc($created),
dbesc(($arr && array_key_exists('allow_cid',$arr)) ? $arr['allow_cid'] : '<' . $channel['channel_hash'] . '>'),
@@ -466,7 +463,7 @@ function attach_store($channel, $observer_hash, $options = '', $arr = null) {
dbesc(($arr && array_key_exists('deny_cid',$arr)) ? $arr['deny_cid'] : ''),
dbesc(($arr && array_key_exists('deny_gid',$arr)) ? $arr['deny_gid'] : '')
);
- }
+ }
if($options !== 'update')
@unlink($src);
@@ -490,6 +487,7 @@ function attach_store($channel, $observer_hash, $options = '', $arr = null) {
$ret['success'] = true;
$ret['data'] = $r[0];
+
return $ret;
}
@@ -507,8 +505,8 @@ function attach_store($channel, $observer_hash, $options = '', $arr = null) {
* $ret['data'] = array of attach DB entries without data component
*/
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')) {
$ret['message'] = t('Permission denied.');
return $ret;
@@ -519,7 +517,7 @@ function z_readdir($channel_id, $observer_hash, $pathname, $parent_hash = '') {
if(count($paths) > 1) {
$curpath = array_shift($paths);
- $r = q("select hash, id from attach where uid = %d and filename = '%s' and (flags & %d ) " . permissions_sql($channel_id) . " limit 1",
+ $r = q("select hash, id from attach where uid = %d and filename = '%s' and (flags & %d )>0 " . permissions_sql($channel_id) . " limit 1",
intval($channel_id),
dbesc($curpath),
intval(ATTACH_FLAG_DIR)
@@ -535,7 +533,7 @@ function z_readdir($channel_id, $observer_hash, $pathname, $parent_hash = '') {
else
$paths = array($pathname);
- $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),
+ $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 )>0 " . permissions_sql($channel_id),
intval($channel_id),
dbesc($parent_hash),
dbesc($paths[0]),
@@ -547,6 +545,7 @@ function z_readdir($channel_id, $observer_hash, $pathname, $parent_hash = '') {
}
$ret['success'] = true;
$ret['data'] = $r;
+
return $ret;
}
@@ -568,6 +567,7 @@ function z_readdir($channel_id, $observer_hash, $pathname, $parent_hash = '') {
* $arr['deny_cid']
* $arr['deny_gid']
*/
+
function attach_mkdir($channel, $observer_hash, $arr = null) {
$ret = array('success' => false);
@@ -618,7 +618,7 @@ function attach_mkdir($channel, $observer_hash, $arr = null) {
$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 )
+ $r = q("select filename, hash, flags, folder from attach where uid = %d and hash = '%s' and ( flags & %d )>0
$sql_options limit 1",
intval($channel['channel_id']),
dbesc($lfile),
@@ -670,7 +670,7 @@ function attach_mkdir($channel, $observer_hash, $arr = null) {
$ret['data'] = $arr;
// update the parent folder's lastmodified timestamp
- $e = q("UPDATE attach SET edited = '%s' WHERE hash = '%s' AND uid = %d LIMIT 1",
+ $e = q("UPDATE attach SET edited = '%s' WHERE hash = '%s' AND uid = %d",
dbesc($created),
dbesc($arr['folder']),
intval($channel_id)
@@ -686,7 +686,6 @@ function attach_mkdir($channel, $observer_hash, $arr = null) {
}
return $ret;
-
}
/**
@@ -724,7 +723,7 @@ function attach_change_permissions($channel_id, $resource, $allow_cid, $allow_gi
}
}
- $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",
+ $x = q("update attach set allow_cid = '%s', allow_gid = '%s', deny_cid = '%s', deny_gid = '%s' where hash = '%s' and uid = %d",
dbesc($allow_cid),
dbesc($allow_gid),
dbesc($deny_cid),
@@ -732,15 +731,19 @@ function attach_change_permissions($channel_id, $resource, $allow_cid, $allow_gi
dbesc($resource),
intval($channel_id)
);
-
- return;
}
/**
- * @brief Delete a file/directory.
- *
+ * @brief Delete a file/directory from a channel.
+ *
+ * If the provided resource hash is from a directory it will delete everything
+ * recursively under this directory.
+ *
* @param int $channel_id
- * @param string $resource a hash to delete
+ * The id of the channel
+ * @param string $resource
+ * The hash to delete
+ * @return void
*/
function attach_delete($channel_id, $resource) {
@@ -760,7 +763,7 @@ function attach_delete($channel_id, $resource) {
// If resource is a directory delete everything in the directory recursive
if($r[0]['flags'] & ATTACH_FLAG_DIR) {
- $x = q("select hash, flags from attach where folder = '%s' and uid = %d",
+ $x = q("SELECT hash, flags FROM attach WHERE folder = '%s' AND uid = %d",
dbesc($resource),
intval($channel_id)
);
@@ -788,30 +791,32 @@ function attach_delete($channel_id, $resource) {
}
// delete from database
- $z = q("DELETE FROM attach WHERE hash = '%s' AND uid = %d LIMIT 1",
+ $z = q("DELETE FROM attach WHERE hash = '%s' AND uid = %d",
dbesc($resource),
intval($channel_id)
);
// update the parent folder's lastmodified timestamp
- $e = q("UPDATE attach SET edited = '%s' WHERE hash = '%s' AND uid = %d LIMIT 1",
+ $e = q("UPDATE attach SET edited = '%s' WHERE hash = '%s' AND uid = %d",
dbesc(datetime_convert()),
dbesc($r[0]['folder']),
intval($channel_id)
);
-
- return;
}
/**
* @brief Returns path to file in cloud/.
*
- * @param $arr
- * @return string with the path the file to cloud/
+ * @param array
+ * $arr[uid] int the channels uid
+ * $arr[folder] string
+ * $arr[filename]] string
+ * @return string
+ * path to the file in 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'])
@@ -823,12 +828,11 @@ function get_cloudpath($arr) {
$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 )
+ $r = q("select filename, hash, flags, folder from attach where uid = %d and hash = '%s' and ( flags & %d )>0
limit 1",
intval($arr['uid']),
dbesc($lfile),
@@ -842,60 +846,83 @@ function get_cloudpath($arr) {
$lpath = $r[0]['filename'] . '/' . $lpath;
$lfile = $r[0]['folder'];
- } while ( ($r[0]['folder']) && ($r[0]['flags'] & ATTACH_FLAG_DIR)) ;
+ } while ( ($r[0]['folder']) && ($r[0]['flags'] & ATTACH_FLAG_DIR));
- $path .= $lpath;
+ $path .= $lpath;
}
-
$path .= $arr['filename'];
+
return $path;
}
/**
* @brief Returns path to parent folder in cloud/.
- *
- * @param $arr
- * @return string with the folder path
+ *
+ * @param int $channel_id
+ * The id of the channel
+ * @param string $channel_name
+ * The name of the channel
+ * @param string $attachHash
+ * @return string with the full folder path
*/
function get_parent_cloudpath($channel_id, $channel_name, $attachHash) {
- //Build directory tree and redirect
+ // build directory tree
$parentHash = $attachHash;
do {
$parentHash = find_folder_hash_by_attach_hash($channel_id, $parentHash);
if ($parentHash) {
$parentName = find_filename_by_hash($channel_id, $parentHash);
- $parentFullPath = $parentName."/".$parentFullPath;
+ $parentFullPath = $parentName . '/' . $parentFullPath;
}
} while ($parentHash);
- $parentFullPath = z_root() . "/cloud/" . $channel_name . "/" . $parentFullPath;
+ $parentFullPath = z_root() . '/cloud/' . $channel_name . '/' . $parentFullPath;
+
return $parentFullPath;
}
+
+/**
+ * @brief Return the hash of an attachment's folder.
+ *
+ * @param int $channel_id
+ * The id of the channel
+ * @param string $attachHash
+ * The hash of the attachment
+ * @return string
+ */
function find_folder_hash_by_attach_hash($channel_id, $attachHash) {
- $r = q("select * from attach where uid = %d and hash = '%s' limit 1",
- intval($channel_id), dbesc($attachHash)
+ $r = q("SELECT folder FROM attach WHERE uid = %d AND hash = '%s' LIMIT 1",
+ intval($channel_id),
+ dbesc($attachHash)
);
- $hash = "";
- if($r) {
- foreach($r as $rr) {
- $hash = $rr['folder'];
- }
+ $hash = '';
+ if ($r) {
+ $hash = $r[0]['folder'];
}
- return $hash;
+ return $hash;
}
+
+/**
+ * @brief Returns the filename of an attachment in a given channel.
+ *
+ * @param mixed $channel_id
+ * The id of the channel
+ * @param mixed $attachHash
+ * The hash of the attachment
+ * @return string
+ * The filename of the attachment
+ */
function find_filename_by_hash($channel_id, $attachHash) {
- $r = q("select * from attach where uid = %d and hash = '%s' limit 1",
- intval($channel_id), dbesc($attachHash)
+ $r = q("SELECT filename FROM attach WHERE uid = %d AND hash = '%s' LIMIT 1",
+ intval($channel_id),
+ dbesc($attachHash)
);
- $filename = "";
- if($r) {
- foreach($r as $rr) {
- $filename = $rr['filename'];
- }
+ $filename = '';
+ if ($r) {
+ $filename = $r[0]['filename'];
}
- return $filename;
+ return $filename;
}
-
/**
*
* @param $in
@@ -904,6 +931,6 @@ function find_filename_by_hash($channel_id, $attachHash) {
function pipe_streams($in, $out) {
$size = 0;
while (!feof($in))
- $size += fwrite($out, fread($in,8192));
+ $size += fwrite($out, fread($in, 8192));
return $size;
}
diff --git a/include/auth.php b/include/auth.php
index cc07917b7..545fbe8c9 100644
--- a/include/auth.php
+++ b/include/auth.php
@@ -1,11 +1,23 @@
-<?php /** @file */
-
+<?php
+/**
+ * @file include/auth.php
+ * @brief Functions and inline functionality for authentication.
+ *
+ * This file provides some functions for authentication handling and inline
+ * functionality. Look for auth parameters or re-validate an existing session
+ * also handles logout.
+ * Also provides a function for OpenID identiy matching.
+ */
require_once('include/security.php');
+/**
+ * @brief Resets the current session.
+ *
+ * @return void
+ */
function nuke_session() {
-
- new_cookie(0);
+ new_cookie(0); // 0 means delete on browser exit
unset($_SESSION['authenticated']);
unset($_SESSION['account_id']);
@@ -27,21 +39,27 @@ function nuke_session() {
}
/**
- * Verify login credentials
+ * @brief Verify login credentials.
*
- * Returns account record on success, null on failure
+ * If system <i>authlog</i> is set a log entry will be added for failed login
+ * attempts.
*
+ * @param string $email
+ * The email address to verify.
+ * @param string $pass
+ * The provided password to verify.
+ * @return array|null
+ * Returns account record on success, null on failure.
*/
+function account_verify_password($email, $pass) {
-function account_verify_password($email,$pass) {
-
- $email_verify = get_config('system','verify_email');
- $register_policy = get_config('system','register_policy');
+ $email_verify = get_config('system', 'verify_email');
+ $register_policy = get_config('system', 'register_policy');
// Currently we only verify email address if there is an open registration policy.
// This isn't because of any policy - it's because the workflow gets too complicated if
// you have to verify the email and then go through the account approval workflow before
- // letting them login.
+ // letting them login.
if(($email_verify) && ($register_policy == REGISTER_OPEN) && ($record['account_flags'] & ACCOUNT_UNVERIFIED))
return null;
@@ -51,23 +69,47 @@ function account_verify_password($email,$pass) {
);
if(! ($r && count($r)))
return null;
+
foreach($r as $record) {
if(($record['account_flags'] == ACCOUNT_OK)
- && (hash('whirlpool',$record['account_salt'] . $pass) === $record['account_password'])) {
+ && (hash('whirlpool', $record['account_salt'] . $pass) === $record['account_password'])) {
logger('password verified for ' . $email);
return $record;
}
}
$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);
+
+ if($record['account_flags'] & ACCOUNT_UNVERIFIED)
+ logger('Account is unverified. account_flags = ' . $record['account_flags']);
+ if($record['account_flags'] & ACCOUNT_BLOCKED)
+ logger('Account is blocked. account_flags = ' . $record['account_flags']);
+ if($record['account_flags'] & ACCOUNT_EXPIRED)
+ logger('Account is expired. account_flags = ' . $record['account_flags']);
+ if($record['account_flags'] & ACCOUNT_REMOVED)
+ logger('Account is removed. account_flags = ' . $record['account_flags']);
+ if($record['account_flags'] & ACCOUNT_PENDING)
+ logger('Account is pending. account_flags = ' . $record['account_flags']);
+
+ log_failed_login($error);
return null;
}
+/**
+ * @brief Log failed logins to a separate auth log.
+ *
+ * Can be used to reduce overhead for server side intrusion prevention, like
+ * parse the authlog file with something like fail2ban, OSSEC, etc.
+ *
+ * @param string $errormsg
+ * Error message to display for failed login.
+ */
+function log_failed_login($errormsg) {
+ $authlog = get_config('system', 'authlog');
+ if ($authlog)
+ @file_put_contents($authlog, datetime_convert() . ':' . session_id() . ' ' . $errormsg . PHP_EOL, FILE_APPEND);
+}
/**
* Inline - not a function
@@ -75,14 +117,12 @@ function account_verify_password($email,$pass) {
* 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')) {
-
+ if(((x($_POST, 'auth-params')) && ($_POST['auth-params'] === 'logout')) || ($a->module === 'logout')) {
// process logout request
$args = array('channel_id' => local_user());
call_hooks('logging_out', $args);
@@ -93,16 +133,16 @@ if((isset($_SESSION)) && (x($_SESSION,'authenticated')) && ((! (x($_POST,'auth-p
// re-validate a visitor, optionally invoke "su" if permitted to do so
- if(x($_SESSION,'visitor_id') && (! x($_SESSION,'uid'))) {
+ 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');
- if($admins && is_array($admins) && in_array($_SESSION['visitor_id'],$admins)) {
- $x = q("select * from account where account_email = '%s' and account_email != '' and ( account_flags & %d ) limit 1",
- dbesc(get_config('system','admin_email')),
+ $admins = get_config('system', 'remote_admin');
+ if($admins && is_array($admins) && in_array($_SESSION['visitor_id'], $admins)) {
+ $x = q("select * from account where account_email = '%s' and account_email != '' and ( account_flags & %d )>0 limit 1",
+ dbesc(get_config('system', 'admin_email')),
intval(ACCOUNT_ROLE_ADMIN)
);
if($x) {
- new_cookie(60*60*24); // one day
+ new_cookie(60 * 60 * 24); // one day
$_SESSION['last_login_date'] = datetime_convert();
unset($_SESSION['visitor_id']); // no longer a visitor
authenticate_success($x[0], true, true);
@@ -124,20 +164,19 @@ if((isset($_SESSION)) && (x($_SESSION,'authenticated')) && ((! (x($_POST,'auth-p
// already logged in user returning
- if(x($_SESSION,'uid') || x($_SESSION,'account_id')) {
+ if(x($_SESSION, 'uid') || x($_SESSION, 'account_id')) {
// first check if we're enforcing that sessions can't change IP address
-
+ // @todo what to do with IPv6 addresses
if($_SESSION['addr'] && $_SESSION['addr'] != $_SERVER['REMOTE_ADDR']) {
logger('SECURITY: Session IP address changed: ' . $_SESSION['addr'] . ' != ' . $_SERVER['REMOTE_ADDR']);
- $partial1 = substr($_SESSION['addr'],0,strrpos($_SESSION['addr'],'.'));
- $partial2 = substr($_SERVER['REMOTE_ADDR'],0,strrpos($_SERVER['REMOTE_ADDR'],'.'));
+ $partial1 = substr($_SESSION['addr'], 0, strrpos($_SESSION['addr'], '.'));
+ $partial2 = substr($_SERVER['REMOTE_ADDR'], 0, strrpos($_SERVER['REMOTE_ADDR'], '.'));
-
- $paranoia = intval(get_pconfig($_SESSION['uid'],'system','paranoia'));
+ $paranoia = intval(get_pconfig($_SESSION['uid'], 'system', 'paranoia'));
if(! $paranoia)
- $paranoia = intval(get_config('system','paranoia'));
+ $paranoia = intval(get_config('system', 'paranoia'));
switch($paranoia) {
case 0:
@@ -145,8 +184,8 @@ if((isset($_SESSION)) && (x($_SESSION,'authenticated')) && ((! (x($_POST,'auth-p
break;
case 2:
// check 2 octets
- $partial1 = substr($partial1,0,strrpos($partial1,'.'));
- $partial2 = substr($partial2,0,strrpos($partial2,'.'));
+ $partial1 = substr($partial1, 0, strrpos($partial1, '.'));
+ $partial2 = substr($partial2, 0, strrpos($partial2, '.'));
if($partial1 == $partial2)
break;
case 1:
@@ -156,12 +195,11 @@ if((isset($_SESSION)) && (x($_SESSION,'authenticated')) && ((! (x($_POST,'auth-p
case 3:
default:
// check any difference at all
- logger('Session address changed. Paranoid setting in effect, blocking session. '
+ logger('Session address changed. Paranoid setting in effect, blocking session. '
. $_SESSION['addr'] . ' != ' . $_SERVER['REMOTE_ADDR']);
nuke_session();
goaway(z_root());
break;
-
}
}
@@ -178,17 +216,15 @@ if((isset($_SESSION)) && (x($_SESSION,'authenticated')) && ((! (x($_POST,'auth-p
if(strcmp(datetime_convert('UTC','UTC','now - 12 hours'), $_SESSION['last_login_date']) > 0 ) {
$_SESSION['last_login_date'] = datetime_convert();
$login_refresh = true;
- }
- authenticate_success($r[0], false, false, false, $login_refresh);
+ }
+ authenticate_success($r[0], false, false, false, $login_refresh);
}
else {
$_SESSION['account_id'] = 0;
nuke_session();
goaway(z_root());
}
-
- }
-
+ } // end logged in user returning
}
else {
@@ -198,10 +234,10 @@ else {
// handle a fresh login request
- if((x($_POST,'password')) && strlen($_POST['password']))
- $encrypted = hash('whirlpool',trim($_POST['password']));
+ if((x($_POST, 'password')) && strlen($_POST['password']))
+ $encrypted = hash('whirlpool', trim($_POST['password']));
- if((x($_POST,'auth-params')) && $_POST['auth-params'] === 'login') {
+ if((x($_POST, 'auth-params')) && $_POST['auth-params'] === 'login') {
$record = null;
@@ -226,8 +262,7 @@ else {
$record = $addon_auth['user_record'];
}
else {
-
- $record = get_app()->account = account_verify_password($_POST['username'],$_POST['password']);
+ $record = get_app()->account = account_verify_password($_POST['username'], $_POST['password']);
if(get_app()->account) {
$_SESSION['account_id'] = get_app()->account['account_id'];
@@ -236,21 +271,20 @@ else {
notice( t('Failed authentication') . EOL);
}
- logger('authenticate: ' . print_r(get_app()->account,true), LOGGER_DEBUG);
-
+ logger('authenticate: ' . print_r(get_app()->account, true), LOGGER_DEBUG);
}
if((! $record) || (! count($record))) {
$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);
+ $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());
- }
+ }
// If the user specified to remember the authentication, then change the cookie
// to expire after one year (the default is when the browser is closed).
@@ -280,11 +314,25 @@ else {
}
+/**
+ * @brief Returns the channel_id for a given openid_identity.
+ *
+ * Queries the values from pconfig configuration for the given openid_identity
+ * and returns the corresponding channel_id.
+ *
+ * @fixme How do we prevent that an OpenID identity is used more than once?
+ *
+ * @param string $authid
+ * The given openid_identity
+ * @return int|bool
+ * Return channel_id from pconfig or false.
+ */
function match_openid($authid) {
- $r = q("select * from pconfig where cat = 'system' and k = 'openid' and v = '%s' limit 1",
+ // Query the uid/channel_id from pconfig for a given value.
+ $r = q("SELECT uid 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/bb2diaspora.php b/include/bb2diaspora.php
index 5fb708706..3c4f07568 100644
--- a/include/bb2diaspora.php
+++ b/include/bb2diaspora.php
@@ -79,19 +79,30 @@ function share_unshield($m) {
function diaspora_mention_callback($matches) {
- $webbie = $matches[2];
+ $webbie = $matches[2] . '@' . $matches[3];
$link = '';
if($webbie) {
$r = q("select * from hubloc left join xchan on hubloc_hash = xchan_hash where hubloc_addr = '%s' limit 1",
dbesc($webbie)
);
+ if(! $r) {
+ $x = discover_by_webbie($webbie);
+ if($x) {
+ $r = q("select * from hubloc left join xchan on hubloc_hash = xchan_hash where hubloc_addr = '%s' limit 1",
+ dbesc($webbie)
+ );
+ }
+ }
if($r)
$link = $r[0]['xchan_url'];
}
if(! $link)
$link = 'https://' . $matches[3] . '/u/' . $matches[2];
- return '@[url=' . $link . ']' . trim($matches[1]) . '[/url]';
+ if($r && $r[0]['hubloc_network'] === 'zot')
+ return '@[zrl=' . $link . ']' . trim($matches[1]) . ((substr($matches[0],-1,1) === '+') ? '+' : '') . '[/zrl]' ;
+ else
+ return '@[url=' . $link . ']' . trim($matches[1]) . ((substr($matches[0],-1,1) === '+') ? '+' : '') . '[/url]' ;
}
@@ -105,6 +116,8 @@ function diaspora_mention_callback($matches) {
function diaspora2bb($s,$use_zrl = false) {
+ $s = str_replace("&#xD;\n&gt;","",$s);
+
$s = html_entity_decode($s,ENT_COMPAT,'UTF-8');
// Too many new lines. So deactivated the following line
@@ -119,6 +132,10 @@ function diaspora2bb($s,$use_zrl = false) {
// $s = preg_replace('/\@\{(.+?)\; (.+?)\@(.+?)\}/','@[url=https://$3/u/$2]$1[/url]',$s);
+ // first try plustags
+
+ $s = preg_replace_callback('/\@\{(.+?)\; (.+?)\@(.+?)\}\+/','diaspora_mention_callback',$s);
+
$s = preg_replace_callback('/\@\{(.+?)\; (.+?)\@(.+?)\}/','diaspora_mention_callback',$s);
// Escaping the hash tags - doesn't always seem to work
@@ -246,26 +263,95 @@ function bb2dmention_callback($match) {
}
+function bb2diaspora_itemwallwall(&$item) {
+
+ $author_exists = true;
+ if(! array_key_exists('author',$item)) {
+ $author_exists = false;
+ logger('bb2diaspora_itemwallwall: no author');
+ $r = q("select * from xchan where xchan_hash = '%s' limit 1",
+ dbesc($item['author_xchan'])
+ );
+ if($r)
+ $item['author'] = $r[0];
+ }
+
+ if(($item['mid'] == $item['parent_mid']) && ($item['author_xchan'] != $item['owner_xchan']) && (is_array($item['author']))) {
+ logger('bb2diaspora_itemwallwall: author: ' . print_r($item['author'],true), LOGGER_DATA);
+ }
+
+ if(($item['mid'] == $item['parent_mid']) && ($item['author_xchan'] != $item['owner_xchan']) && (is_array($item['author'])) && $item['author']['xchan_url'] && $item['author']['xchan_name'] && $item['author']['xchan_photo_m']) {
+ logger('bb2diaspora_itemwallwall: wall to wall post',LOGGER_DEBUG);
+ // post will come across with the owner's identity. Throw a preamble onto the post to indicate the true author.
+ $item['body'] = "\n\n"
+ . '[img]' . $item['author']['xchan_photo_m'] . '[/img]'
+ . '[url=' . $item['author']['xchan_url'] . ']' . $item['author']['xchan_name'] . '[/url]' . "\n\n"
+ . $item['body'];
+ }
+
+ // We have to do something similar for wall-to-wall comments. ITEM_WALL|ITEM_ORIGIN indicates that it was posted on this site.
+ // Regular matrix comments may have one of these bits set, but not both.
+
+ // Update: this is getting triggered way too often and unnecessarily. Commenting out until we find a better solution.
+ // It's not an easy problem. For now we'll live with the mis-attributions, as wall to wall comments are much less frequent
+ // than wall-to-wall posts.
+
+// if(($item['mid'] != $item['parent_mid']) && ($item['author_xchan'] != $item['owner_xchan']) && (($item['item_flags'] & (ITEM_WALL|ITEM_ORIGIN)) == (ITEM_WALL|ITEM_ORIGIN)) && (is_array($item['author'])) && $item['author']['xchan_url'] && $item['author']['xchan_name'] && $item['author']['xchan_photo_m']) {
+// logger('bb2diaspora_itemwallwall: wall to wall comment',LOGGER_DEBUG);
+ // post will come across with the owner's identity. Throw a preamble onto the post to indicate the true author.
+// $item['body'] = "\n\n"
+// . '[img]' . $item['author']['xchan_photo_m'] . '[/img]'
+// . '[url=' . $item['author']['xchan_url'] . ']' . $item['author']['xchan_name'] . '[/url]' . "\n\n"
+// . $item['body'];
+// }
+
+ // $item['author'] might cause a surprise further down the line if it wasn't expected to be here.
+
+ if(! $author_exists)
+ $unset($item['author']);
+
+}
-function bb2diaspora_itembody($item) {
- if($item['diaspora_meta']) {
- $j = json_decode($item['diaspora_meta'],true);
- if($j && $j['body']) {
- logger('bb2diaspora_itembody: cached ');
- return $j['body'];
+function bb2diaspora_itembody($item,$force_update = false) {
+
+ if(($item['diaspora_meta']) && (! $force_update)) {
+ $diaspora_meta = json_decode($item['diaspora_meta'],true);
+ if($diaspora_meta) {
+ if(array_key_exists('iv',$diaspora_meta)) {
+ $key = get_config('system','prvkey');
+ $meta = json_decode(crypto_unencapsulate($diaspora_meta,$key),true);
+ }
+ else {
+ $meta = $diaspora_meta;
+ }
+ if($meta) {
+ logger('bb2diaspora_itembody: cached ');
+ $newitem = $item;
+ $newitem['body'] = $meta['body'];
+// this won't work - the post is now in markdown
+// bb2diaspora_itemwallwall($newitem);
+ return $newitem['body'];
+ }
}
}
- $body = $item['body'];
+ $newitem = $item;
if(array_key_exists('item_flags',$item) && ($item['item_flags'] & ITEM_OBSCURED)) {
$key = get_config('system','prvkey');
- $title = (($item['title']) ? crypto_unencapsulate(json_decode($item['title'],true),$key) : '');
- $body = (($item['body']) ? crypto_unencapsulate(json_decode($item['body'],true),$key) : '');
+ $b = json_decode($item['body'],true);
+ // if called from diaspora_process_outbound, this decoding has already been done.
+ // Everything else that calls us will not yet be decoded.
+ if($b && is_array($b) && array_key_exists('iv',$b)) {
+ $newitem['title'] = (($item['title']) ? crypto_unencapsulate(json_decode($item['title'],true),$key) : '');
+ $newitem['body'] = (($item['body']) ? crypto_unencapsulate(json_decode($item['body'],true),$key) : '');
+ }
}
- $body = preg_replace('/\#\^http/i', 'http', $body);
+ bb2diaspora_itemwallwall($newitem);
+
+ $body = preg_replace('/\#\^http/i', 'http', $newitem['body']);
// protect tags and mentions from hijacking
@@ -302,7 +388,7 @@ function bb2diaspora_itembody($item) {
}
}
- logger('bb2diaspora_itembody : ' . $body);
+// logger('bb2diaspora_itembody : ' . $body, LOGGER_DATA);
return html_entity_decode($body);
@@ -376,7 +462,7 @@ function format_event_diaspora($ev) {
$bd_format = t('l F d, Y \@ g:i A') ; // Friday January 18, 2011 @ 8 AM
- $o = 'Friendica event notification:' . "\n";
+ $o = t('Redmatrix event notification:') . "\n";
$o .= '**' . (($ev['summary']) ? bb2diaspora($ev['summary']) : bb2diaspora($ev['desc'])) . '**' . "\n";
diff --git a/include/bbcode.php b/include/bbcode.php
index a7055fc45..1037db045 100644
--- a/include/bbcode.php
+++ b/include/bbcode.php
@@ -159,6 +159,14 @@ function bb_parse_app($match) {
}
+function bb_parse_element($match) {
+ $j = json_decode(base64url_decode($match[1]),true);
+ if($j) {
+ $o = EOL . '<a href="#" onclick="importElement(\'' . $match[1] . '\'); return false;" >' . t('Install design element: ') . $j['pagetitle'] . '</a>' . EOL;
+ }
+ return $o;
+}
+
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') . '" />';
}
@@ -270,6 +278,17 @@ function rpost_callback($match) {
}
}
+function bb_map_coords($match) {
+ // the extra space in the following line is intentional
+ return str_replace($match[0],'<div class="map" >' . generate_map(str_replace('/',' ',$match[1])) . '</div>', $match[0]);
+}
+
+function bb_map_location($match) {
+ // the extra space in the following line is intentional
+ return str_replace($match[0],'<div class="map" >' . generate_named_map($match[1]) . '</div>', $match[0]);
+}
+
+
function bb_sanitize_style($input) {
//whitelist property limits (0 = no limitation)
$w = array( // color properties
@@ -423,14 +442,16 @@ function bbcode($Text,$preserve_nl = false, $tryoembed = true) {
// replace [observer.baseurl]
if ($observer) {
+ $s1 = '<span class="bb_observer">';
+ $s2 = '</span>';
$obsBaseURL = $observer['xchan_connurl'];
$obsBaseURL = preg_replace("/\/poco\/.*$/", '', $obsBaseURL);
$Text = str_replace('[observer.baseurl]', $obsBaseURL, $Text);
$Text = str_replace('[observer.url]',$observer['xchan_url'], $Text);
- $Text = str_replace('[observer.name]',$observer['xchan_name'], $Text);
- $Text = str_replace('[observer.address]',$observer['xchan_addr'], $Text);
- $Text = str_replace('[observer.webname]',substr($observer['xchan_addr'],0,strpos($observer['xchan_addr'],'@')), $Text);
- $Text = str_replace('[observer.photo]','[zmg]'.$observer['xchan_photo_l'].'[/zmg]', $Text);
+ $Text = str_replace('[observer.name]',$s1 . $observer['xchan_name'] . $s2, $Text);
+ $Text = str_replace('[observer.address]',$s1 . $observer['xchan_addr'] . $s2, $Text);
+ $Text = str_replace('[observer.webname]',$s1 . substr($observer['xchan_addr'],0,strpos($observer['xchan_addr'],'@')) . $s2, $Text);
+ $Text = str_replace('[observer.photo]',$s1 . '[zmg]'.$observer['xchan_photo_l'].'[/zmg]' . $s2, $Text);
} else {
$Text = str_replace('[observer.baseurl]', '', $Text);
$Text = str_replace('[observer.url]','', $Text);
@@ -482,6 +503,22 @@ function bbcode($Text,$preserve_nl = false, $tryoembed = true) {
$Text = preg_replace("/\[mail\]([$MAILSearchString]*)\[\/mail\]/", '<a href="mailto:$1">$1</a>', $Text);
$Text = preg_replace("/\[mail\=([$MAILSearchString]*)\](.*?)\[\/mail\]/", '<a href="mailto:$1">$2</a>', $Text);
}
+
+ // leave open the posibility of [map=something]
+ // this is replaced in prepare_body() which has knowledge of the item location
+
+ if (strpos($Text,'[/map]') !== false) {
+ $Text = preg_replace_callback("/\[map\](.*?)\[\/map\]/ism",'bb_map_location',$Text);
+ }
+
+ if (strpos($Text,'[map=') !== false) {
+ $Text = preg_replace_callback("/\[map=(.*?)\]/ism",'bb_map_coords',$Text);
+ }
+
+ if (strpos($Text,'[map]') !== false) {
+ $Text = preg_replace("/\[map\]/", '<div class="map"></div>', $Text);
+ }
+
// Check for bold text
if (strpos($Text,'[b]') !== false) {
$Text = preg_replace("(\[b\](.*?)\[\/b\])ism",'<strong>$1</strong>',$Text);
@@ -610,7 +647,7 @@ function bbcode($Text,$preserve_nl = false, $tryoembed = true) {
// Check for [spoiler=Author] text
- $t_wrote = t('$1 wrote:');
+ $t_wrote = t('$1 spoiler');
// handle nested quotes
$endlessloop = 0;
@@ -700,6 +737,10 @@ function bbcode($Text,$preserve_nl = false, $tryoembed = true) {
$Text = preg_replace_callback("/\[app\](.*?)\[\/app\]/ism",'bb_parse_app', $Text);
}
+ if(strpos($Text,'[/element]') !== false) {
+ $Text = preg_replace_callback("/\[element\](.*?)\[\/element\]/ism",'bb_parse_element', $Text);
+ }
+
// html5 video and audio
if (strpos($Text,'[/video]') !== false) {
@@ -811,7 +852,7 @@ function bbcode($Text,$preserve_nl = false, $tryoembed = true) {
// fix any escaped ampersands that may have been converted into links
$Text = preg_replace("/\<(.*?)(src|href)=(.*?)\&amp\;(.*?)\>/ism",'<$1$2=$3&$4>',$Text);
- $Text = preg_replace("/\<(.*?)(src|href)=\"[^hfm](.*?)\>/ism",'<$1$2="">',$Text);
+ $Text = preg_replace("/\<(.*?)(src|href)=\"[^hfm#](.*?)\>/ism",'<$1$2="">',$Text);
call_hooks('bbcode',$Text);
diff --git a/include/cache.php b/include/cache.php
index a70650b5e..4a3f453e1 100644
--- a/include/cache.php
+++ b/include/cache.php
@@ -21,7 +21,7 @@
dbesc($key)
);
if($r) {
- q("UPDATE cache SET v = '%s', updated = '%s' WHERE k = '%s' limit 1",
+ q("UPDATE cache SET v = '%s', updated = '%s' WHERE k = '%s'",
dbesc($value),
dbesc(datetime_convert()),
dbesc($key));
diff --git a/include/chat.php b/include/chat.php
index b8fb185df..533c03dde 100644
--- a/include/chat.php
+++ b/include/chat.php
@@ -77,7 +77,7 @@ function chatroom_destroy($channel,$arr) {
return $ret;
}
- q("delete from chatroom where cr_id = %d limit 1",
+ q("delete from chatroom where cr_id = %d",
intval($r[0]['cr_id'])
);
if($r[0]['cr_id']) {
@@ -129,8 +129,11 @@ function chatroom_enter($observer_xchan,$room_id,$status,$client) {
}
if(intval($x[0]['cr_expire'])) {
- $sql = "delete from chat where created < UTC_TIMESTAMP() - INTERVAL " . intval($x[0]['cr_expire']) . " MINUTE and chat_room = " . intval($x[0]['cr_id']);
- $r = q($sql);
+ $r = q("delete from chat where created < %s - INTERVAL %s and chat_room = %d",
+ db_utcnow(),
+ db_quoteinterval( intval($x[0]['cr_expire']) . ' MINUTE' ),
+ intval($x[0]['cr_id'])
+ );
}
$r = q("select * from chatpresence where cp_xchan = '%s' and cp_room = %d limit 1",
@@ -138,7 +141,7 @@ function chatroom_enter($observer_xchan,$room_id,$status,$client) {
intval($room_id)
);
if($r) {
- q("update chatpresence set cp_last = '%s' where cp_id = %d and cp_client = '%s' limit 1",
+ q("update chatpresence set cp_last = '%s' where cp_id = %d and cp_client = '%s'",
dbesc(datetime_convert()),
intval($r[0]['cp_id']),
dbesc($client)
@@ -169,7 +172,7 @@ function chatroom_leave($observer_xchan,$room_id,$client) {
dbesc($client)
);
if($r) {
- q("delete from chatpresence where cp_id = %d limit 1",
+ q("delete from chatpresence where cp_id = %d",
intval($r[0]['cp_id'])
);
}
@@ -189,6 +192,17 @@ function chatroom_list($uid) {
return $r;
}
+function chatroom_list_count($uid) {
+ require_once('include/security.php');
+ $sql_extra = permissions_sql($uid);
+
+ $r = q("select count(*) as total from chatroom where cr_uid = %d $sql_extra",
+ intval($uid)
+ );
+
+ return $r[0]['total'];
+}
+
/**
* create a chat message via API.
* It is the caller's responsibility to enter the room.
diff --git a/include/cli_startup.php b/include/cli_startup.php
index 6bd4e7520..027d62953 100644
--- a/include/cli_startup.php
+++ b/include/cli_startup.php
@@ -6,7 +6,7 @@ require_once('boot.php');
function cli_startup() {
- global $a, $db;
+ global $a, $db, $default_timezone;
if(is_null($a)) {
$a = new App;
@@ -14,9 +14,13 @@ function cli_startup() {
if(is_null($db)) {
@include(".htconfig.php");
+
+ $a->timezone = ((x($default_timezone)) ? $default_timezone : 'UTC');
+ date_default_timezone_set($a->timezone);
+
require_once('include/dba/dba_driver.php');
- $db = dba_factory($db_host, $db_port, $db_user, $db_pass, $db_data);
- unset($db_host, $db_port, $db_user, $db_pass, $db_data);
+ $db = dba_factory($db_host, $db_port, $db_user, $db_pass, $db_data, $db_type);
+ unset($db_host, $db_port, $db_user, $db_pass, $db_data, $db_type);
};
require_once('include/session.php');
diff --git a/include/config.php b/include/config.php
index add7b5f71..87b91e51a 100644
--- a/include/config.php
+++ b/include/config.php
@@ -1,30 +1,56 @@
-<?php /** @file */
-
+<?php
/**
+ * @file include/config.php
+ * @brief Arbitrary configuration storage.
*
- * Arbitrary configuration storage
* Note:
* Please do not store booleans - convert to 0/1 integer values
* The get_?config() functions return boolean false for keys that are unset,
* and this could lead to subtle bugs.
*
- * There are a few places in the code (such as the admin panel) where boolean
- * configurations need to be fixed as of 10/08/2011.
+ * Arrays get stored as serialize strings.
+ *
+ * @todo There are a few places in the code (such as the admin panel) where
+ * boolean configurations need to be fixed as of 10/08/2011.
+ *
+ * - <b>config</b> is used for hub specific configurations. It overrides the
+ * configurations from .htconfig file. The storage is of size TEXT.
+ * - <b>pconfig</b> is used for channel specific configurations and takes a
+ * <i>channel_id</i> as identifier. It stores for example which features are
+ * enabled per channel. The storage is of size MEDIUMTEXT.
+ * @code $var = get_pconfig(local_user(), 'category', 'key');@endcode
+ * - <b>xconfig</b> is the same as pconfig, except that it uses <i>xchan</i> as
+ * an identifier. This is for example for people who do not have a local account.
+ * The storage is of size MEDIUMTEXT.
+ * @code $observer = $a->get_observer_hash();
+ * if ($observer) {
+ * $var = get_xconfig($observer, 'category', 'key');
+ * }@endcode
+ *
+ * - get_config() and set_config() can also be done through the command line tool
+ * @ref util/config
+ * - get_pconfig() and set_pconfig() can also be done through the command line tool
+ * @ref util/pconfig and takes a channel_id as first argument.
+ *
*/
-
-// retrieve a "family" of config variables from database to cached storage
-
+/**
+ * @brief Loads the hub's configuration from database to a cached storage.
+ *
+ * Retrieve a category ($family) of config variables from database to a cached
+ * storage in the global $a->config[$family].
+ *
+ * @param string $family
+ * The category of the configuration value
+ */
function load_config($family) {
global $a;
- if(! array_key_exists($family,$a->config))
+ if(! array_key_exists($family, $a->config))
$a->config[$family] = array();
- if(! array_key_exists('config_loaded',$a->config[$family])) {
-
+ if(! array_key_exists('config_loaded', $a->config[$family])) {
$r = q("SELECT * FROM config WHERE cat = '%s'", dbesc($family));
-
if($r !== false) {
if($r) {
foreach($r as $rr) {
@@ -37,24 +63,31 @@ function load_config($family) {
}
}
-// get a particular config variable given the family name
-// and key. Returns false if not set.
-// $instore is only used by the set_config function
-// to determine if the key already exists in the DB
-// If a key is found in the DB but doesn't exist in
-// local config cache, pull it into the cache so we don't have
-// to hit the DB again for this item.
-
-
+/**
+ * @brief Get a particular config variable given the category name ($family)
+ * and a key.
+ *
+ * Get a particular config variable from the given category ($family) and the
+ * $key from a cached storage in $a->config[$family]. If a key is found in the
+ * DB but does not exist in local config cache, pull it into the cache so we
+ * do not have to hit the DB again for this item.
+ *
+ * Returns false if not set.
+ *
+ * @param string $family
+ * The category of the configuration value
+ * @param string $key
+ * The configuration key to query
+ * @return mixed Return value or false on error or if not set
+ */
function get_config($family, $key) {
-
global $a;
- if((! array_key_exists($family,$a->config)) || (! array_key_exists('config_loaded',$a->config[$family])))
+ if((! array_key_exists($family, $a->config)) || (! array_key_exists('config_loaded', $a->config[$family])))
load_config($family);
- if(array_key_exists('config_loaded',$a->config[$family])) {
- if(! array_key_exists($key,$a->config[$family])) {
+ if(array_key_exists('config_loaded', $a->config[$family])) {
+ if(! array_key_exists($key, $a->config[$family])) {
return false;
}
return ((! is_array($a->config[$family][$key])) && (preg_match('|^a:[0-9]+:{.*}$|s', $a->config[$family][$key]))
@@ -65,57 +98,94 @@ function get_config($family, $key) {
return false;
}
-function get_config_from_storage($family,$key) {
- $ret = q("select * from config where cat = '%s' and k = '%s' limit 1",
+/**
+ * @brief Returns a value directly from the database configuration storage.
+ *
+ * This function queries directly the database and bypasses the chached storage
+ * from get_config($family, $key).
+ *
+ * @param string $family
+ * The category of the configuration value
+ * @param string $key
+ * The configuration key to query
+ * @return mixed
+ */
+function get_config_from_storage($family, $key) {
+ $ret = q("SELECT * FROM config WHERE cat = '%s' AND k = '%s' LIMIT 1",
dbesc($family),
dbesc($key)
);
return $ret;
}
-
-
-// Store a config value ($value) in the category ($family)
-// under the key ($key)
-// Return the value, or false if the database update failed
-
-function set_config($family,$key,$value) {
+/**
+ * @brief Sets a configuration value for the hub.
+ *
+ * Stores a config value ($value) in the category ($family) under the key ($key).
+ *
+ * Please do not store booleans - convert to 0/1 integer values!
+ *
+ * @param string $family
+ * The category of the configuration value
+ * @param string $key
+ * The configuration key to set
+ * @param mixed $value
+ * The value to store in the configuration
+ * @return mixed
+ * Return the set value, or false if the database update failed
+ */
+function set_config($family, $key, $value) {
global $a;
+
// manage array value
$dbvalue = ((is_array($value)) ? serialize($value) : $value);
$dbvalue = ((is_bool($dbvalue)) ? intval($dbvalue) : $dbvalue);
- if(get_config($family,$key) === false || (! get_config_from_storage($family,$key))) {
- $a->config[$family][$key] = $value;
-
+ if(get_config($family, $key) === false || (! get_config_from_storage($family, $key))) {
$ret = q("INSERT INTO config ( cat, k, v ) VALUES ( '%s', '%s', '%s' ) ",
dbesc($family),
dbesc($key),
dbesc($dbvalue)
);
- if($ret)
- return $value;
+ if($ret) {
+ $a->config[$family][$key] = $value;
+ $ret = $value;
+ }
return $ret;
}
- $ret = q("UPDATE config SET v = '%s' WHERE cat = '%s' AND k = '%s' LIMIT 1",
+ $ret = q("UPDATE config SET v = '%s' WHERE cat = '%s' AND k = '%s'",
dbesc($dbvalue),
dbesc($family),
dbesc($key)
);
- $a->config[$family][$key] = $value;
-
- if($ret)
- return $value;
+ if($ret) {
+ $a->config[$family][$key] = $value;
+ $ret = $value;
+ }
return $ret;
}
-function del_config($family,$key) {
+/**
+ * @brief Deletes the given key from the hub's configuration database.
+ *
+ * Removes the configured value from the stored cache in $a->config[$family]
+ * and removes it from the database.
+ *
+ * @param string $family
+ * The category of the configuration value
+ * @param string $key
+ * The configuration key to delete
+ * @return mixed
+ */
+function del_config($family, $key) {
global $a;
- if(array_key_exists($family,$a->config) && array_key_exists($key,$a->config[$family]))
+ $ret = false;
+
+ if(array_key_exists($family, $a->config) && array_key_exists($key, $a->config[$family]))
unset($a->config[$family][$key]);
- $ret = q("DELETE FROM config WHERE cat = '%s' AND k = '%s' LIMIT 1",
+ $ret = q("DELETE FROM config WHERE cat = '%s' AND k = '%s'",
dbesc($family),
dbesc($key)
);
@@ -123,18 +193,26 @@ function del_config($family,$key) {
}
-function load_pconfig($uid,$family = '') {
+/**
+ * @brief Loads all configuration values of a channel into a cached storage.
+ *
+ * All configuration values of the given channel are stored in global cache
+ * which is available under the global variable $a->config[$uid].
+ *
+ * @param string $uid
+ * The channel_id
+ * @return void|false Nothing or false if $uid is false
+ */
+function load_pconfig($uid) {
global $a;
if($uid === false)
return false;
- if(! array_key_exists($uid,$a->config))
+ if(! array_key_exists($uid, $a->config))
$a->config[$uid] = array();
- // family is no longer used - load entire user config
-
- $r = q("SELECT * FROM `pconfig` WHERE `uid` = %d",
+ $r = q("SELECT * FROM pconfig WHERE uid = %d",
intval($uid)
);
@@ -142,59 +220,88 @@ function load_pconfig($uid,$family = '') {
foreach($r as $rr) {
$k = $rr['k'];
$c = $rr['cat'];
- if(! array_key_exists($c,$a->config[$uid])) {
+ if(! array_key_exists($c, $a->config[$uid])) {
$a->config[$uid][$c] = array();
$a->config[$uid][$c]['config_loaded'] = true;
}
$a->config[$uid][$c][$k] = $rr['v'];
}
- }
+ }
}
-
-
-
-function get_pconfig($uid,$family, $key, $instore = false) {
-
+/**
+ * @brief Get a particular channel's config variable given the category name
+ * ($family) and a key.
+ *
+ * Get a particular channel's config value from the given category ($family)
+ * and the $key from a cached storage in $a->config[$uid].
+ *
+ * Returns false if not set.
+ *
+ * @param string $uid
+ * The channel_id
+ * @param string $family
+ * The category of the configuration value
+ * @param string $key
+ * The configuration key to query
+ * @param boolean $instore (deprecated, without function)
+ * @return mixed Stored value or false if it does not exist
+ */
+function get_pconfig($uid, $family, $key, $instore = false) {
+// logger('include/config.php: get_pconfig() deprecated instore param used', LOGGER_DEBUG);
global $a;
if($uid === false)
return false;
- if(! array_key_exists($uid,$a->config))
+ if(! array_key_exists($uid, $a->config))
load_pconfig($uid);
- if((! array_key_exists($family,$a->config[$uid])) || (! array_key_exists($key,$a->config[$uid][$family])))
+ if((! array_key_exists($family, $a->config[$uid])) || (! array_key_exists($key, $a->config[$uid][$family])))
return false;
-
+
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]
);
}
-function set_pconfig($uid,$family,$key,$value) {
-
+/**
+ * @brief Sets a configuration value for a channel.
+ *
+ * Stores a config value ($value) in the category ($family) under the key ($key)
+ * for the channel_id $uid.
+ *
+ * Please do not store booleans - convert to 0/1 integer values!
+ *
+ * @param string $uid
+ * The channel_id
+ * @param string $family
+ * The category of the configuration value
+ * @param string $key
+ * The configuration key to query
+ * @return mixed Stored $value or false
+ */
+function set_pconfig($uid, $family, $key, $value) {
global $a;
-
// manage array value
$dbvalue = ((is_array($value)) ? serialize($value) : $value);
$dbvalue = ((is_bool($dbvalue)) ? intval($dbvalue) : $dbvalue);
- if(get_pconfig($uid,$family,$key) === false) {
- if(! array_key_exists($uid,$a->config))
+ if(get_pconfig($uid, $family, $key) === false) {
+ if(! array_key_exists($uid, $a->config))
$a->config[$uid] = array();
- if(! array_key_exists($family,$a->config[$uid]))
+ if(! array_key_exists($family, $a->config[$uid]))
$a->config[$uid][$family] = array();
// keep a separate copy for all variables which were
// set in the life of this page. We need this to
// synchronise channel clones.
- if(! array_key_exists('transient',$a->config[$uid]))
+ if(! array_key_exists('transient', $a->config[$uid]))
$a->config[$uid]['transient'] = array();
- if(! array_key_exists($family,$a->config[$uid]['transient']))
+ if(! array_key_exists($family, $a->config[$uid]['transient']))
$a->config[$uid]['transient'][$family] = array();
$a->config[$uid][$family][$key] = $value;
@@ -211,7 +318,7 @@ function set_pconfig($uid,$family,$key,$value) {
return $ret;
}
- $ret = q("UPDATE pconfig SET v = '%s' WHERE uid = %d and cat = '%s' AND k = '%s' LIMIT 1",
+ $ret = q("UPDATE pconfig SET v = '%s' WHERE uid = %d and cat = '%s' AND k = '%s'",
dbesc($dbvalue),
intval($uid),
dbesc($family),
@@ -222,9 +329,9 @@ function set_pconfig($uid,$family,$key,$value) {
// set in the life of this page. We need this to
// synchronise channel clones.
- if(! array_key_exists('transient',$a->config[$uid]))
+ if(! array_key_exists('transient', $a->config[$uid]))
$a->config[$uid]['transient'] = array();
- if(! array_key_exists($family,$a->config[$uid]['transient']))
+ if(! array_key_exists($family, $a->config[$uid]['transient']))
$a->config[$uid]['transient'][$family] = array();
$a->config[$uid][$family][$key] = $value;
@@ -235,13 +342,27 @@ function set_pconfig($uid,$family,$key,$value) {
return $ret;
}
-
-function del_pconfig($uid,$family,$key) {
-
+/**
+ * @brief Deletes the given key from the channel's configuration.
+ *
+ * Removes the configured value from the stored cache in $a->config[$uid]
+ * and removes it from the database.
+ *
+ * @param string $uid
+ * The channel_id
+ * @param string $family
+ * The category of the configuration value
+ * @param string $key
+ * The configuration key to delete
+ * @return mixed
+ */
+function del_pconfig($uid, $family, $key) {
global $a;
- if(x($a->config[$uid][$family],$key))
+ $ret = false;
+
+ if(x($a->config[$uid][$family], $key))
unset($a->config[$uid][$family][$key]);
- $ret = q("DELETE FROM pconfig WHERE uid = %d AND cat = '%s' AND k = '%s' LIMIT 1",
+ $ret = q("DELETE FROM pconfig WHERE uid = %d AND cat = '%s' AND k = '%s'",
intval($uid),
dbesc($family),
dbesc($key)
@@ -250,19 +371,26 @@ function del_pconfig($uid,$family,$key) {
}
-
-function load_xconfig($xchan,$family = '') {
+/**
+ * @brief Loads a full xchan's configuration into a cached storage.
+ *
+ * All configuration values of the given observer hash are stored in global
+ * cache which is available under the global variable $a->config[$xchan].
+ *
+ * @param string $xchan
+ * The observer's hash
+ * @return void|false Returns false if xchan is not set
+ */
+function load_xconfig($xchan) {
global $a;
if(! $xchan)
return false;
- if(! array_key_exists($xchan,$a->config))
+ if(! array_key_exists($xchan, $a->config))
$a->config[$xchan] = array();
- // family is no longer used. Entire config is loaded
-
- $r = q("SELECT * FROM `xconfig` WHERE `xchan` = '%s'",
+ $r = q("SELECT * FROM xconfig WHERE xchan = '%s'",
dbesc($xchan)
);
@@ -270,51 +398,77 @@ function load_xconfig($xchan,$family = '') {
foreach($r as $rr) {
$k = $rr['k'];
$c = $rr['cat'];
- if(! array_key_exists($c,$a->config[$xchan])) {
+ if(! array_key_exists($c, $a->config[$xchan])) {
$a->config[$xchan][$c] = array();
$a->config[$xchan][$c]['config_loaded'] = true;
}
$a->config[$xchan][$c][$k] = $rr['v'];
}
- }
+ }
}
-
-
-
-function get_xconfig($xchan,$family, $key) {
-
+/**
+ * @brief Get a particular observer's config variable given the category
+ * name ($family) and a key.
+ *
+ * Get a particular observer's config value from the given category ($family)
+ * and the $key from a cached storage in $a->config[$xchan].
+ *
+ * Returns false if not set.
+ *
+ * @param string $xchan
+ * The observer's hash
+ * @param string $family
+ * The category of the configuration value
+ * @param string $key
+ * The configuration key to query
+ * @return mixed Stored $value or false if it does not exist
+ */
+function get_xconfig($xchan, $family, $key) {
global $a;
if(! $xchan)
return false;
- if(! array_key_exists($xchan,$a->config))
+ if(! array_key_exists($xchan, $a->config))
load_xconfig($xchan);
- if((! array_key_exists($family,$a->config[$xchan])) || (! array_key_exists($key,$a->config[$xchan][$family])))
+ if((! array_key_exists($family, $a->config[$xchan])) || (! array_key_exists($key, $a->config[$xchan][$family])))
return false;
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]
);
-
}
-
-function set_xconfig($xchan,$family,$key,$value) {
-
+/**
+ * @brief Sets a configuration value for an observer.
+ *
+ * Stores a config value ($value) in the category ($family) under the key ($key)
+ * for the observer's $xchan hash.
+ *
+ * Please do not store booleans - convert to 0/1 integer values!
+ *
+ * @param string $xchan
+ * The observer's hash
+ * @param string $family
+ * The category of the configuration value
+ * @param string $key
+ * The configuration key to set
+ * @return mixed Stored $value or false
+ */
+function set_xconfig($xchan, $family, $key, $value) {
global $a;
// manage array value
$dbvalue = ((is_array($value)) ? serialize($value) : $value);
$dbvalue = ((is_bool($dbvalue)) ? intval($dbvalue) : $dbvalue);
- if(get_xconfig($xchan,$family,$key) === false) {
- if(! array_key_exists($xchan,$a->config))
+ if(get_xconfig($xchan, $family, $key) === false) {
+ if(! array_key_exists($xchan, $a->config))
$a->config[$xchan] = array();
- if(! array_key_exists($family,$a->config[$xchan]))
+ if(! array_key_exists($family, $a->config[$xchan]))
$a->config[$xchan][$family] = array();
$a->config[$xchan][$family][$key] = $value;
@@ -329,7 +483,7 @@ function set_xconfig($xchan,$family,$key,$value) {
return $ret;
}
- $ret = q("UPDATE xconfig SET v = '%s' WHERE xchan = '%s' and cat = '%s' AND k = '%s' LIMIT 1",
+ $ret = q("UPDATE xconfig SET v = '%s' WHERE xchan = '%s' and cat = '%s' AND k = '%s'",
dbesc($dbvalue),
dbesc($xchan),
dbesc($family),
@@ -341,22 +495,32 @@ function set_xconfig($xchan,$family,$key,$value) {
if($ret)
return $value;
return $ret;
-
}
-
-function del_xconfig($xchan,$family,$key) {
-
+/**
+ * @brief Deletes the given key from the observer's config.
+ *
+ * Removes the configured value from the stored cache in $a->config[$xchan]
+ * and removes it from the database.
+ *
+ * @param string $xchan
+ * The observer's hash
+ * @param string $family
+ * The category of the configuration value
+ * @param string $key
+ * The configuration key to delete
+ * @return mixed
+ */
+function del_xconfig($xchan, $family, $key) {
global $a;
- if(x($a->config[$xchan][$family],$key))
+ $ret = false;
+
+ if(x($a->config[$xchan][$family], $key))
unset($a->config[$xchan][$family][$key]);
- $ret = q("DELETE FROM `xconfig` WHERE `xchan` = '%s' AND `cat` = '%s' AND `k` = '%s' LIMIT 1",
+ $ret = q("DELETE FROM xconfig WHERE xchan = '%s' AND cat = '%s' AND k = '%s'",
dbesc($xchan),
dbesc($family),
dbesc($key)
);
return $ret;
}
-
-
-
diff --git a/include/contact_widgets.php b/include/contact_widgets.php
index 28a9fcfd3..ee9394e95 100644
--- a/include/contact_widgets.php
+++ b/include/contact_widgets.php
@@ -29,8 +29,7 @@ function findpeople_widget() {
'$random' => t('Random Profile'),
'$inv' => t('Invite Friends'),
'$advanced_search' => $advanced_search,
- '$advanced_hint' => t('Exammple: name=fred and country=iceland'),
- '$find_advanced' => t('Advanced Find'),
+ '$advanced_hint' => "\r\n" . t('Advanced example: name=fred and country=iceland'),
'$loggedin' => local_user()
));
diff --git a/include/conversation.php b/include/conversation.php
index c346a204c..a2fb3d162 100644
--- a/include/conversation.php
+++ b/include/conversation.php
@@ -419,8 +419,6 @@ function visible_activity($item) {
function conversation(&$a, $items, $mode, $update, $page_mode = 'traditional', $prepared_item = '') {
- $tstart = dba_timer();
- $t0 = $t1 = $t2 = $t3 = $t4 = $t5 = $t6 = null;
$content_html = '';
$o = '';
@@ -433,14 +431,18 @@ function conversation(&$a, $items, $mode, $update, $page_mode = 'traditional', $
$arr_blocked = null;
- if(local_user()) {
+ if(local_user())
$str_blocked = get_pconfig(local_user(),'system','blocked');
- if($str_blocked) {
+ if(! local_user() && ($mode == 'network')) {
+ $sys = get_sys_channel();
+ $id = $sys['channel_id'];
+ $str_blocked = get_pconfig($id,'system','blocked');
+ }
+
+ if($str_blocked) {
$arr_blocked = explode(',',$str_blocked);
for($x = 0; $x < count($arr_blocked); $x ++)
- $arr_blocked[$x] = trim($arr_blocked[$x]);
- }
-
+ $arr_blocked[$x] = trim($arr_blocked[$x]);
}
@@ -453,64 +455,56 @@ function conversation(&$a, $items, $mode, $update, $page_mode = 'traditional', $
if($mode === 'network') {
- $t1 = dba_timer();
-
$profile_owner = local_user();
$page_writeable = true;
- if(!$update) {
- // The special div is needed for liveUpdate to kick in for this page.
- // We only launch liveUpdate if you aren't filtering in some incompatible
- // way and also you aren't writing a comment (discovered in javascript).
-
- $live_update_div = '<div id="live-network"></div>' . "\r\n"
- . "<script> var profile_uid = " . $_SESSION['uid']
- . "; var netargs = '" . substr($a->cmd,8)
- . '?f='
- . ((x($_GET,'cid')) ? '&cid=' . $_GET['cid'] : '')
- . ((x($_GET,'search')) ? '&search=' . $_GET['search'] : '')
- . ((x($_GET,'star')) ? '&star=' . $_GET['star'] : '')
- . ((x($_GET,'order')) ? '&order=' . $_GET['order'] : '')
- . ((x($_GET,'bmark')) ? '&bmark=' . $_GET['bmark'] : '')
- . ((x($_GET,'liked')) ? '&liked=' . $_GET['liked'] : '')
- . ((x($_GET,'conv')) ? '&conv=' . $_GET['conv'] : '')
- . ((x($_GET,'spam')) ? '&spam=' . $_GET['spam'] : '')
- . ((x($_GET,'nets')) ? '&nets=' . $_GET['nets'] : '')
- . ((x($_GET,'cmin')) ? '&cmin=' . $_GET['cmin'] : '')
- . ((x($_GET,'cmax')) ? '&cmax=' . $_GET['cmax'] : '')
- . ((x($_GET,'file')) ? '&file=' . $_GET['file'] : '')
- . ((x($_GET,'uri')) ? '&uri=' . $_GET['uri'] : '')
-
- . "'; var profile_page = " . $a->pager['page'] . "; </script>\r\n";
- }
-
-
+ if(!$update) {
+ // The special div is needed for liveUpdate to kick in for this page.
+ // We only launch liveUpdate if you aren't filtering in some incompatible
+ // way and also you aren't writing a comment (discovered in javascript).
+
+ $live_update_div = '<div id="live-network"></div>' . "\r\n"
+ . "<script> var profile_uid = " . $_SESSION['uid']
+ . "; var netargs = '" . substr($a->cmd,8)
+ . '?f='
+ . ((x($_GET,'cid')) ? '&cid=' . $_GET['cid'] : '')
+ . ((x($_GET,'search')) ? '&search=' . $_GET['search'] : '')
+ . ((x($_GET,'star')) ? '&star=' . $_GET['star'] : '')
+ . ((x($_GET,'order')) ? '&order=' . $_GET['order'] : '')
+ . ((x($_GET,'bmark')) ? '&bmark=' . $_GET['bmark'] : '')
+ . ((x($_GET,'liked')) ? '&liked=' . $_GET['liked'] : '')
+ . ((x($_GET,'conv')) ? '&conv=' . $_GET['conv'] : '')
+ . ((x($_GET,'spam')) ? '&spam=' . $_GET['spam'] : '')
+ . ((x($_GET,'nets')) ? '&nets=' . $_GET['nets'] : '')
+ . ((x($_GET,'cmin')) ? '&cmin=' . $_GET['cmin'] : '')
+ . ((x($_GET,'cmax')) ? '&cmax=' . $_GET['cmax'] : '')
+ . ((x($_GET,'file')) ? '&file=' . $_GET['file'] : '')
+ . ((x($_GET,'uri')) ? '&uri=' . $_GET['uri'] : '')
+ . "'; var profile_page = " . $a->pager['page'] . "; </script>\r\n";
+ }
}
elseif($mode === 'channel') {
$profile_owner = $a->profile['profile_uid'];
$page_writeable = ($profile_owner == local_user());
- if(!$update) {
- $tab = notags(trim($_GET['tab']));
- if($tab === 'posts') {
- // This is ugly, but we can't pass the profile_uid through the session to the ajax updater,
- // because browser prefetching might change it on us. We have to deliver it with the page.
-
- $live_update_div = '<div id="live-channel"></div>' . "\r\n"
- . "<script> var profile_uid = " . $a->profile['profile_uid']
- . "; var netargs = '?f='; var profile_page = " . $a->pager['page'] . "; </script>\r\n";
- }
- }
+ if(!$update) {
+ $tab = notags(trim($_GET['tab']));
+ if($tab === 'posts') {
+ // This is ugly, but we can't pass the profile_uid through the session to the ajax updater,
+ // because browser prefetching might change it on us. We have to deliver it with the page.
+ $live_update_div = '<div id="live-channel"></div>' . "\r\n"
+ . "<script> var profile_uid = " . $a->profile['profile_uid']
+ . "; var netargs = '?f='; var profile_page = " . $a->pager['page'] . "; </script>\r\n";
+ }
+ }
}
elseif($mode === 'display') {
$profile_owner = local_user();
$page_writeable = false;
-
- $live_update_div = '<div id="live-display"></div>' . "\r\n";
-
+ $live_update_div = '<div id="live-display"></div>' . "\r\n";
}
elseif($mode === 'page') {
@@ -519,10 +513,10 @@ function conversation(&$a, $items, $mode, $update, $page_mode = 'traditional', $
$live_update_div = '<div id="live-page"></div>' . "\r\n";
}
+ elseif($mode === 'search') {
+ $live_update_div = '<div id="live-search"></div>' . "\r\n";
+ }
- elseif($mode === 'search') {
- $live_update_div = '<div id="live-search"></div>' . "\r\n";
- }
elseif($mode === 'photos') {
$profile_onwer = $a->profile['profile_uid'];
$page_writeable = ($profile_owner == local_user());
@@ -555,7 +549,6 @@ function conversation(&$a, $items, $mode, $update, $page_mode = 'traditional', $
$alike = array();
$dlike = array();
-
// array with html for each thread (parent+comments)
$threads = array();
$threadsid = -1;
@@ -603,12 +596,11 @@ function conversation(&$a, $items, $mode, $update, $page_mode = 'traditional', $
}
else
$nickname = $a->user['nickname'];
-
+
$profile_name = ((strlen($item['author-name'])) ? $item['author-name'] : $item['name']);
if($item['author-link'] && (! $item['author-name']))
$profile_name = $item['author-link'];
-
$tags=array();
$hashtags = array();
@@ -631,7 +623,6 @@ function conversation(&$a, $items, $mode, $update, $page_mode = 'traditional', $
$profile_link = $item['author']['xchan_url'];
$profile_avatar = $item['author']['xchan_photo_m'];
-
$location = format_location($item);
localize_item($item);
@@ -659,10 +650,12 @@ function conversation(&$a, $items, $mode, $update, $page_mode = 'traditional', $
$likebuttons = false;
$shareable = false;
- $verified = (($item['item_flags'] & ITEM_VERIFIED) ? t('Message is verified') : '');
- $unverified = '';
+ $verified = (($item['item_flags'] & ITEM_VERIFIED) ? t('Message signature validated') : '');
+ $forged = ((($item['sig']) && (! ($item['item_flags'] & ITEM_VERIFIED))) ? t('Message signature incorrect') : '');
+ $unverified = '';
+
$tags=array();
$terms = get_terms_oftype($item['term'],array(TERM_HASHTAG,TERM_MENTION,TERM_UNKNOWN));
@@ -673,7 +666,6 @@ function conversation(&$a, $items, $mode, $update, $page_mode = 'traditional', $
$body = prepare_body($item,true);
- //$tmp_item = replace_macros($tpl,array(
$tmp_item = array(
'template' => $tpl,
'toplevel' => 'toplevel_item',
@@ -693,13 +685,13 @@ function conversation(&$a, $items, $mode, $update, $page_mode = 'traditional', $
'mentions' => $mentions,
'verified' => $verified,
'unverified' => $unverified,
+ 'forged' => $forged,
'txt_cats' => t('Categories:'),
- 'txt_folders' => t('Filed under:'),
- 'has_cats' => ((count($categories)) ? 'true' : ''),
- 'has_folders' => ((count($folders)) ? 'true' : ''),
- 'categories' => $categories,
- 'folders' => $folders,
-
+ 'txt_folders' => t('Filed under:'),
+ 'has_cats' => ((count($categories)) ? 'true' : ''),
+ 'has_folders' => ((count($folders)) ? 'true' : ''),
+ 'categories' => $categories,
+ 'folders' => $folders,
'text' => strip_tags($body),
'ago' => relative_date($item['created']),
'app' => $item['app'],
@@ -707,7 +699,7 @@ 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')):''),
+ 'expiretime' => (($item['expires'] !== NULL_DATE) ? sprintf( t('Expires: %s'), datetime_convert('UTC', date_default_timezone_get(), $item['expires'], 'r')):''),
'location' => $location,
'indent' => '',
'owner_name' => $owner_name,
@@ -743,10 +735,10 @@ function conversation(&$a, $items, $mode, $update, $page_mode = 'traditional', $
// Normal View
// logger('conv: items: ' . print_r($items,true));
- require_once('include/ConversationObject.php');
- require_once('include/ItemObject.php');
+ require_once('include/ConversationObject.php');
+ require_once('include/ItemObject.php');
- $conv = new Conversation($mode, $preview, $prepared_item);
+ $conv = new Conversation($mode, $preview, $prepared_item);
// In the display mode we don't have a profile owner.
@@ -754,12 +746,12 @@ function conversation(&$a, $items, $mode, $update, $page_mode = 'traditional', $
$conv->set_profile_owner($items[0]['uid']);
- // get all the topmost parents
- // this shouldn't be needed, as we should have only them in our array
- // But for now, this array respects the old style, just in case
+ // get all the topmost parents
+ // this shouldn't be needed, as we should have only them in our array
+ // But for now, this array respects the old style, just in case
- $threads = array();
- foreach($items as $item) {
+ $threads = array();
+ foreach($items as $item) {
// Check for any blocked authors
@@ -774,7 +766,7 @@ function conversation(&$a, $items, $mode, $update, $page_mode = 'traditional', $
if($blocked)
continue;
}
-
+
// Check all the kids too
if($arr_blocked && $item['children']) {
@@ -786,46 +778,35 @@ function conversation(&$a, $items, $mode, $update, $page_mode = 'traditional', $
}
}
+ like_puller($a, $item, $alike, 'like');
+ if(feature_enabled($profile_owner, 'dislike'))
+ like_puller($a, $item, $dlike, 'dislike');
- like_puller($a,$item,$alike,'like');
-
- if(feature_enabled($profile_owner,'dislike'))
- like_puller($a,$item,$dlike,'dislike');
+ if(! visible_activity($item)) {
+ continue;
+ }
- if(! visible_activity($item)) {
- continue;
- }
+ $item['pagedrop'] = $page_dropping;
- $item['pagedrop'] = $page_dropping;
+ if($item['id'] == $item['parent']) {
- if($item['id'] == $item['parent']) {
-// $tx1 = dba_timer();
- $item_object = new Item($item);
- $conv->add_thread($item_object);
- if($page_mode === 'list')
+ $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']);
- }
- }
- $t2 = dba_timer();
- $threads = $conv->get_template_data($alike, $dlike);
- if(!$threads) {
- logger('[ERROR] conversation : Failed to get template data.', LOGGER_DEBUG);
- $threads = array();
- }
- $t3 = dba_timer();
- if($mode === 'network') {
- profiler($t1,$t2,'Conversation prepare');
- profiler($t2,$t3,'Conversation get_template');
+ $item_object->set_display_mode('list');
+ }
+ }
}
-
- }
- }
+ $threads = $conv->get_template_data($alike, $dlike);
+ if(!$threads) {
+ logger('[ERROR] conversation : Failed to get template data.', LOGGER_DEBUG);
+ $threads = array();
+ }
+ }
+ }
if($page_mode === 'traditional' || $page_mode === 'preview') {
$page_template = get_markup_template("threaded_conversation.tpl");
@@ -838,8 +819,8 @@ function conversation(&$a, $items, $mode, $update, $page_mode = 'traditional', $
$threads = null;
}
- if($page_mode === 'preview')
- logger('preview: ' . print_r($threads,true));
+// if($page_mode === 'preview')
+// logger('preview: ' . print_r($threads,true));
// Do not un-comment if smarty3 is in use
// logger('page_template: ' . $page_template);
@@ -859,16 +840,7 @@ function conversation(&$a, $items, $mode, $update, $page_mode = 'traditional', $
'$dropping' => ($page_dropping?t('Delete Selected Items'):False),
));
- if($mode === 'network') {
- $t4 = dba_timer();
- profiler($t3,$t4,'conversation template');
- }
-
- if($page_mode === 'preview')
- logger('preview: ' . $o);
-
- return $o;
-
+ return $o;
}
@@ -917,15 +889,18 @@ function item_photo_menu($item){
$vsrc_link = "";
$follow_url = "";
- if(local_user()) {
+
+ $local_user = local_user();
+
+ if($local_user) {
$ssl_state = true;
if(! count($a->contacts))
- load_contact_links(local_user());
+ load_contact_links($local_user);
$channel = $a->get_channel();
$channel_hash = (($channel) ? $channel['channel_hash'] : '');
}
- if((local_user()) && local_user() == $item['uid']) {
+ if(($local_user) && $local_user == $item['uid']) {
$vsrc_link = 'javascript:viewsrc(' . $item['id'] . '); return false;';
if($item['parent'] == $item['id'] && $channel && ($channel_hash != $item['author_xchan'])) {
$sub_link = 'javascript:dosubthread(' . $item['id'] . '); return false;';
@@ -933,17 +908,19 @@ function item_photo_menu($item){
}
$profile_link = chanlink_hash($item['author_xchan']);
- $pm_url = $a->get_baseurl($ssl_state) . '/mail/new/?f=&hash=' . $item['author_xchan'];
+ if($item['uid'] > 0)
+ $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']];
else
- if(local_user() && $item['author']['xchan_addr'])
+ if($local_user && $item['author']['xchan_addr'])
$follow_url = z_root() . '/follow/?f=&url=' . $item['author']['xchan_addr'];
if($contact) {
$poke_link = $a->get_baseurl($ssl_state) . '/poke/?f=&c=' . $contact['abook_id'];
- $contact_url = $a->get_baseurl($ssl_state) . '/connedit/' . $contact['abook_id'];
+ if (!($contact['abook_flags'] & ABOOK_FLAG_SELF))
+ $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']);
@@ -981,26 +958,43 @@ function item_photo_menu($item){
return $o;
}
-
-function like_puller($a,$item,&$arr,$mode) {
+/**
+ * @brief Returns a like/dislike entry.
+ * It gives back a HTML link to the channel that liked/disliked.
+ *
+ * @param array $a (not used)
+ * @param array $item
+ * @param array &$arr
+ * @param string $mode like/dislike
+ * @return void
+ */
+function like_puller($a, $item, &$arr, $mode) {
$url = '';
- $sparkle = '';
$verb = (($mode === 'like') ? ACTIVITY_LIKE : ACTIVITY_DISLIKE);
- if((activity_match($item['verb'],$verb)) && ($item['id'] != $item['parent'])) {
- $url = chanlink_url($item['author']['xchan_url']);
+ if((activity_match($item['verb'], $verb)) && ($item['id'] != $item['parent'])) {
+
+ if($item['author']['xchan_url'])
+ $url = chanlink_url($item['author']['xchan_url']);
if(! $item['thr_parent'])
$item['thr_parent'] = $item['parent_mid'];
if(! ((isset($arr[$item['thr_parent'] . '-l'])) && (is_array($arr[$item['thr_parent'] . '-l']))))
$arr[$item['thr_parent'] . '-l'] = array();
+
if(! isset($arr[$item['thr_parent']]))
$arr[$item['thr_parent']] = 1;
else
$arr[$item['thr_parent']] ++;
- $arr[$item['thr_parent'] . '-l'][] = '<a href="'. $url . '">' . $item['author']['xchan_name'] . '</a>';
+
+ $name = (($item['author']['xchan_name']) ? $item['author']['xchan_name'] : t('Unknown'));
+
+ if($url)
+ $arr[$item['thr_parent'] . '-l'][] = '<a href="'. $url . '">' . $name . '</a>';
+ else
+ $arr[$item['thr_parent'] . '-l'][] = '<a href="#" class="disabled">' . $name . '</a>';
}
return;
}
@@ -1105,8 +1099,8 @@ function status_editor($a,$x,$popup=false) {
$jotplugins = '';
$jotnets = '';
-
- $preview = ((feature_enabled($x['profile_uid'],'preview')) ? t('Preview') : '');
+ $preview = t('Preview');
+// $preview = ((feature_enabled($x['profile_uid'],'preview')) ? t('Preview') : '');
if(x($x,'nopreview'))
$preview = '';
@@ -1138,13 +1132,13 @@ function status_editor($a,$x,$popup=false) {
'$shortaudio' => t('audio link'),
'$setloc' => t('Set your location'),
'$shortsetloc' => t('set location'),
- '$noloc' => t('Clear browser location'),
+ '$noloc' => ((get_pconfig($x['profile_uid'],'system','use_browser_location')) ? t('Clear browser location') : ''),
'$shortnoloc' => t('clear location'),
'$title' => ((x($x,'title')) ? htmlspecialchars($x['title'], ENT_COMPAT,'UTF-8') : ''),
- '$placeholdertitle' => t('Set title'),
+ '$placeholdertitle' => t('Title (optional)'),
'$catsenabled' => ((feature_enabled($x['profile_uid'],'categories') && (! $webpage)) ? 'categories' : ''),
'$category' => "",
- '$placeholdercategory' => t('Categories (comma-separated list)'),
+ '$placeholdercategory' => t('Categories (optional, comma-separated list)'),
'$wait' => t('Please wait'),
'$permset' => t('Permission settings'),
'$shortpermset' => t('permissions'),
@@ -1340,8 +1334,10 @@ function prepare_page($item) {
// the template will get passed an unobscured title.
$body = prepare_body($item,true);
-
- return replace_macros(get_markup_template('page_display.tpl'),array(
+ $tpl = get_pconfig($item['uid'],'system','pagetemplate');
+ if (! $tpl)
+ $tpl = 'page_display.tpl';
+ return replace_macros(get_markup_template($tpl),array(
'$author' => (($naked) ? '' : $item['author']['xchan_name']),
'$auth_url' => (($naked) ? '' : zid($item['author']['xchan_url'])),
'$date' => (($naked) ? '' : datetime_convert('UTC',date_default_timezone_get(),$item['created'],'Y-m-d H:i')),
@@ -1486,8 +1482,12 @@ function network_tabs() {
function profile_tabs($a, $is_owner=False, $nickname=Null){
- //echo "<pre>"; var_dump($a->user); killme();
-
+
+ // Don't provide any profile tabs if we're running as the sys channel
+
+ if($a->is_sys)
+ return;
+
$channel = $a->get_channel();
if (is_null($nickname))
@@ -1544,19 +1544,23 @@ function profile_tabs($a, $is_owner=False, $nickname=Null){
);
}
- require_once('include/chat.php');
- $chats = chatroom_list($uid);
- if (count($chats)) {
- $tabs[] = array(
- 'label' => t('Chatrooms'),
- 'url' => $a->get_baseurl() . '/chat/' . $nickname,
- 'sel' => ((argv(0) == 'chat') ? 'active' : '' ),
- 'title' => t('Chatrooms'),
- 'id' => 'chat-tab',
- );
+ if($p['chat']) {
+ require_once('include/chat.php');
+ $has_chats = chatroom_list_count($uid);
+ if ($has_chats) {
+ $tabs[] = array(
+ 'label' => t('Chatrooms'),
+ 'url' => $a->get_baseurl() . '/chat/' . $nickname,
+ 'sel' => ((argv(0) == 'chat') ? 'active' : '' ),
+ 'title' => t('Chatrooms'),
+ 'id' => 'chat-tab',
+ );
+ }
}
- if($is_owner) {
+ require_once('include/menu.php');
+ $has_bookmarks = menu_list_count(local_user(),'',MENU_BOOKMARK) + menu_list_count(local_user(),'',MENU_SYSTEM|MENU_BOOKMARK);
+ if($is_owner && $has_bookmarks) {
$tabs[] = array(
'label' => t('Bookmarks'),
'url' => $a->get_baseurl() . '/bookmarks',
diff --git a/include/datetime.php b/include/datetime.php
index 0214b9e4c..59dad2045 100644
--- a/include/datetime.php
+++ b/include/datetime.php
@@ -130,135 +130,119 @@ function datetime_convert($from = 'UTC', $to = 'UTC', $s = 'now', $fmt = "Y-m-d
function dob($dob) {
list($year,$month,$day) = sscanf($dob,'%4d-%2d-%2d');
- $y = datetime_convert('UTC',date_default_timezone_get(),'now','Y');
$f = get_config('system','birthday_input_format');
if(! $f)
$f = 'ymd';
- $o = datesel($f,'',1920,$y,true,$year,$month,$day);
- return $o;
-}
+ if($dob === '0000-00-00')
+ $value = '';
+ else
+ $value = (($year) ? datetime_convert('UTC','UTC',$dob,'Y-m-d') : datetime_convert('UTC','UTC',$dob,'m-d'));
-function datesel_format($f) {
+ $o = '<input type="text" name="dob" value="' . $value . '" placeholder="' . t('YYYY-MM-DD or MM-DD') . '" />';
- $o = '';
+// if ($dob && $dob != '0000-00-00')
+// $o = datesel($f,mktime(0,0,0,0,0,1900),mktime(),mktime(0,0,0,$month,$day,$year),'dob');
+// else
+// $o = datesel($f,mktime(0,0,0,0,0,1900),mktime(),false,'dob');
- if(strlen($f)) {
- for($x = 0; $x < strlen($f); $x ++) {
- switch($f[$x]) {
- case 'y':
- if(strlen($o))
- $o .= '-';
- $o .= t('year');
- break;
- case 'm':
- if(strlen($o))
- $o .= '-';
- $o .= t('month');
- break;
- case 'd':
- if(strlen($o))
- $o .= '-';
- $o .= t('day');
- break;
- default:
- break;
- }
- }
- }
return $o;
}
-// returns a date selector.
-// $f = format string, e.g. 'ymd' or 'mdy'
-// $pre = prefix (if needed) for HTML name and class fields
-// $ymin = first year shown in selector dropdown
-// $ymax = last year shown in selector dropdown
-// $allow_blank = allow an empty response on any field
-// $y = already selected year
-// $m = already selected month
-// $d = already selected day
-
-
-function datesel($f,$pre,$ymin,$ymax,$allow_blank,$y,$m,$d) {
-
- $o = '';
-
- if(strlen($f)) {
- for($z = 0; $z < strlen($f); $z ++) {
- if($f[$z] === 'y') {
-
- $o .= "<select name=\"{$pre}year\" class=\"{$pre}year\" size=\"1\">";
- if($allow_blank) {
- $sel = (($y == '0000') ? " selected=\"selected\" " : "");
- $o .= "<option value=\"0000\" $sel ></option>";
- }
-
- if($ymax > $ymin) {
- for($x = $ymax; $x >= $ymin; $x --) {
- $sel = (($x == $y) ? " selected=\"selected\" " : "");
- $o .= "<option value=\"$x\" $sel>$x</option>";
- }
- }
- else {
- for($x = $ymax; $x <= $ymin; $x ++) {
- $sel = (($x == $y) ? " selected=\"selected\" " : "");
- $o .= "<option value=\"$x\" $sel>$x</option>";
- }
- }
- }
- elseif($f[$z] == 'm') {
-
- $o .= "</select> <select name=\"{$pre}month\" class=\"{$pre}month\" size=\"1\">";
- for($x = (($allow_blank) ? 0 : 1); $x <= 12; $x ++) {
- $sel = (($x == $m) ? " selected=\"selected\" " : "");
- $y = (($x) ? $x : '');
- $o .= "<option value=\"$x\" $sel>$y</option>";
- }
- }
- elseif($f[$z] == 'd') {
-
- $o .= "</select> <select name=\"{$pre}day\" class=\"{$pre}day\" size=\"1\">";
- for($x = (($allow_blank) ? 0 : 1); $x <= 31; $x ++) {
- $sel = (($x == $d) ? " selected=\"selected\" " : "");
- $y = (($x) ? $x : '');
- $o .= "<option value=\"$x\" $sel>$y</option>";
- }
- }
- }
- }
+/**
+ * returns a date selector
+ * @param $format
+ * format string, e.g. 'ymd' or 'mdy'. Not currently supported
+ * @param $min
+ * unix timestamp of minimum date
+ * @param $max
+ * unix timestap of maximum date
+ * @param $default
+ * unix timestamp of default date
+ * @param $id
+ * id and name of datetimepicker (defaults to "datetimepicker")
+ */
+function datesel($format, $min, $max, $default, $id = 'datepicker') {
+ return datetimesel($format,$min,$max,$default,$id,true,false, '','');
+}
- $o .= "</select>";
- return $o;
+/**
+ * returns a time selector
+ * @param $format
+ * format string, e.g. 'ymd' or 'mdy'. Not currently supported
+ * @param $h
+ * already selected hour
+ * @param $m
+ * already selected minute
+ * @param $id
+ * id and name of datetimepicker (defaults to "timepicker")
+ */
+function timesel($format, $h, $m, $id='timepicker') {
+ return datetimesel($format,new DateTime(),new DateTime(),new DateTime("$h:$m"),$id,false,true);
}
+/**
+ * returns a datetime selector
+ * @param $format
+ * format string, e.g. 'ymd' or 'mdy'. Not currently supported
+ * @param $min
+ * unix timestamp of minimum date
+ * @param $max
+ * unix timestap of maximum date
+ * @param $default
+ * unix timestamp of default date
+ * @param $id
+ * id and name of datetimepicker (defaults to "datetimepicker")
+ * @param $pickdate
+ * true to show date picker (default)
+ * @param $picktime
+ * true to show time picker (default)
+ * @param $minfrom
+ * set minimum date from picker with id $minfrom (none by default)
+ * @param $maxfrom
+ * set maximum date from picker with id $maxfrom (none by default)
+ */
+function datetimesel($format, $min, $max, $default, $id = 'datetimepicker', $pickdate = true, $picktime = true, $minfrom = '', $maxfrom = '') {
+ // Once browser support is better this could probably be replaced with native HTML5 date picker
+ $o = '';
-function timesel($pre,$h,$m) {
+ $dateformat = '';
- $o = '';
- $o .= "<select name=\"{$pre}hour\" class=\"{$pre}hour\" size=\"1\">";
- for($x = 0; $x < 24; $x ++) {
- $sel = (($x == $h) ? " selected=\"selected\" " : "");
- $o .= "<option value=\"$x\" $sel>$x</option>";
- }
- $o .= "</select> : <select name=\"{$pre}minute\" class=\"{$pre}minute\" size=\"1\">";
- for($x = 0; $x < 60; $x ++) {
- $sel = (($x == $m) ? " selected=\"selected\" " : "");
- $o .= "<option value=\"$x\" $sel>$x</option>";
- }
+ if($pickdate) $dateformat .= 'Y-m-d';
+ if($pickdate && $picktime) $dateformat .= ' ';
+ if($picktime) $dateformat .= 'H:i';
- $o .= "</select>";
+ $minjs = $min ? ",minDate: new Date({$min->getTimestamp()}*1000), yearStart: " . $min->format('Y') : '';
+ $maxjs = $max ? ",maxDate: new Date({$max->getTimestamp()}*1000), yearEnd: " . $max->format('Y') : '';
+
+ $input_text = $default ? 'value="' . date($dateformat, $default->getTimestamp()) . '"' : '';
+ $defaultdatejs = $default ? ",defaultDate: new Date({$default->getTimestamp()}*1000)" : '';
+
+ $pickers = '';
+ if(!$pickdate) $pickers .= ',datepicker: false';
+ if(!$picktime) $pickers .= ',timepicker: false';
+
+ $extra_js = '';
+ if($minfrom != '')
+ $extra_js .= "\$('#$minfrom').data('xdsoft_datetimepicker').setOptions({onChangeDateTime: function (currentDateTime) { \$('#$id').data('xdsoft_datetimepicker').setOptions({minDate: currentDateTime})}})";
+
+ if($maxfrom != '')
+ $extra_js .= "\$('#$maxfrom').data('xdsoft_datetimepicker').setOptions({onChangeDateTime: function (currentDateTime) { \$('#$id').data('xdsoft_datetimepicker').setOptions({maxDate: currentDateTime})}})";
+
+ $readable_format = $dateformat;
+ $readable_format = str_replace('Y','yyyy',$readable_format);
+ $readable_format = str_replace('m','mm',$readable_format);
+ $readable_format = str_replace('d','dd',$readable_format);
+ $readable_format = str_replace('H','HH',$readable_format);
+ $readable_format = str_replace('i','MM',$readable_format);
+
+ $o .= "<div class='date'><input type='text' placeholder='$readable_format' name='$id' id='$id' $input_text />";
+ $o .= '</div>';
+ $o .= "<script type='text/javascript'>\$(function () {var picker = \$('#$id').datetimepicker({step:5,format:'$dateformat' $minjs $maxjs $pickers $defaultdatejs}); $extra_js})</script>";
return $o;
}
-
-
-
-
-
-
-
// implements "3 seconds ago" etc.
// based on $posted_date, (UTC).
// Results relative to current timezone
@@ -271,7 +255,7 @@ function relative_date($posted_date,$format = null) {
$abs = strtotime($localtime);
- if (is_null($posted_date) || $posted_date === '0000-00-00 00:00:00' || $abs === False) {
+ if (is_null($posted_date) || $posted_date === NULL_DATE || $abs === False) {
return t('never');
}
@@ -487,7 +471,10 @@ function update_birthdays() {
require_once('include/permissions.php');
$r = q("SELECT * FROM abook left join xchan on abook_xchan = xchan_hash
- WHERE abook_dob > utc_timestamp() + interval 7 day and abook_dob < utc_timestamp() + interval 14 day");
+ WHERE abook_dob > %s + interval %s and abook_dob < %s + interval %s",
+ db_utcnow(), db_quoteinterval('7 day'),
+ db_utcnow(), db_quoteinterval('14 day')
+ );
if($r) {
foreach($r as $rr) {
@@ -509,11 +496,11 @@ function update_birthdays() {
$z = event_store_event($ev);
if($z) {
$item_id = event_store_item($ev,$z);
- q("update abook set abook_dob = '%s' where abook_id = %d limit 1",
+ q("update abook set abook_dob = '%s' where abook_id = %d",
dbesc(intval($rr['abook_dob']) + 1 . substr($rr['abook_dob'],4)),
intval($rr['abook_id'])
);
}
}
}
-} \ No newline at end of file
+}
diff --git a/include/dba/dba_driver.php b/include/dba/dba_driver.php
index c829c3714..4a0f5e37b 100755
--- a/include/dba/dba_driver.php
+++ b/include/dba/dba_driver.php
@@ -1,42 +1,134 @@
-<?php /** @file */
+<?php
+/**
+ * @file dba_driver.php
+ * @brief some database related functions and abstract driver class.
+ *
+ * This file contains the abstract database driver class dba_driver and some
+ * functions for working with databases.
+ */
-function dba_factory($server, $port,$user,$pass,$db,$install = false) {
+/**
+ * @brief Returns the database driver object.
+ *
+ * If available it will use PHP's mysqli otherwise mysql driver.
+ *
+ * @param string $server DB server name
+ * @param string $port DB port
+ * @param string $user DB username
+ * @param string $pass DB password
+ * @param string $db database name
+ * @param string $dbtype 0 for mysql, 1 for postgres
+ * @param bool $install Defaults to false
+ * @return null|dba_driver A database driver object (dba_mysql|dba_mysqli) or null if no driver found.
+ */
+function dba_factory($server, $port,$user,$pass,$db,$dbtype,$install = false) {
$dba = null;
- if(class_exists('mysqli')) {
- if (is_null($port)) $port = ini_get("mysqli.default_port");
- require_once('include/dba/dba_mysqli.php');
- $dba = new dba_mysqli($server, $port,$user,$pass,$db,$install);
- }
- else {
- if (is_null($port)) $port = "3306";
- require_once('include/dba/dba_mysql.php');
- $dba = new dba_mysql($server, $port,$user,$pass,$db,$install);
+
+ $dbtype = intval($dbtype);
+
+ if($dbtype == DBTYPE_POSTGRES) {
+ require_once('include/dba/dba_postgres.php');
+ if(is_null($port)) $port = 5432;
+ $dba = new dba_postgres($server, $port, $user, $pass, $db, $install);
+ } else {
+ if(class_exists('mysqli')) {
+ if (is_null($port)) $port = ini_get("mysqli.default_port");
+ require_once('include/dba/dba_mysqli.php');
+ $dba = new dba_mysqli($server, $port,$user,$pass,$db,$install);
+ } else {
+ if (is_null($port)) $port = "3306";
+ require_once('include/dba/dba_mysql.php');
+ $dba = new dba_mysql($server, $port,$user,$pass,$db,$install);
+ }
}
+ define('NULL_DATE', $dba->get_null_date());
+ define('ACTIVE_DBTYPE', $dbtype);
return $dba;
}
-
+/**
+ * @brief abstract database driver class.
+ *
+ * This class gets extended by the real database driver classes, e.g. dba_mysql,
+ * dba_mysqli.
+ */
abstract class dba_driver {
-
+ // legacy behavior
+ const INSTALL_SCRIPT='install/schema_mysql.sql';
+ const NULL_DATE = '0000-00-00 00:00:00';
+ const UTC_NOW = 'UTC_TIMESTAMP()';
+
protected $debug = 0;
protected $db;
public $connected = false;
public $error = false;
- abstract function connect($server, $port, $user,$pass,$db);
+ /**
+ * @brief Connect to the database.
+ *
+ * This abstract function needs to be implemented in the real driver.
+ *
+ * @param string $server DB server name
+ * @param string $port DB port
+ * @param string $user DB username
+ * @param string $pass DB password
+ * @param string $db database name
+ * @return bool
+ */
+ abstract function connect($server, $port, $user, $pass, $db);
+
+ /**
+ * @brief Perform a DB query with the SQL statement $sql.
+ *
+ * This abstract function needs to be implemented in the real driver.
+ *
+ * @param string $sql The SQL query to execute
+ */
abstract function q($sql);
+
+ /**
+ * @brief Escape a string before being passed to a DB query.
+ *
+ * This abstract function needs to be implemented in the real driver.
+ *
+ * @param string $str The string to escape.
+ */
abstract function escape($str);
+
+ /**
+ * @brief Close the database connection.
+ *
+ * This abstract function needs to be implemented in the real driver.
+ */
abstract function close();
+ /**
+ * @brief Return text name for db driver
+ *
+ * This abstract function needs to be implemented in the real driver.
+ */
+ abstract function getdriver();
+
function __construct($server, $port, $user,$pass,$db,$install = false) {
- if(($install) && (! $this->install($server, $port, $user,$pass,$db))) {
+ if(($install) && (! $this->install($server, $port, $user, $pass, $db))) {
return;
}
- $this->connect($server, $port, $user,$pass,$db);
+ $this->connect($server, $port, $user, $pass, $db);
}
+ function get_null_date() {
+ return static::NULL_DATE;
+ }
+
+ function get_install_script() {
+ return static::INSTALL_SCRIPT;
+ }
+
+ function utcnow() {
+ return static::UTC_NOW;
+ }
function install($server,$user,$pass,$db) {
if (!(strlen($server) && strlen($user))){
@@ -56,7 +148,11 @@ abstract class dba_driver {
return true;
}
-
+ /**
+ * @brief Sets the database driver's debugging state.
+ *
+ * @param int $dbg 0 to disable debugging
+ */
function dbg($dbg) {
$this->debug = $dbg;
}
@@ -67,9 +163,30 @@ abstract class dba_driver {
}
}
-}
+ function quote_interval($txt) {
+ return $txt;
+ }
+
+ function optimize_table($table) {
+ q('OPTIMIZE TABLE '.$table);
+ }
+
+ function concat($fld, $sep) {
+ return 'GROUP_CONCAT(DISTINCT '.$fld.' SEPARATOR \''.$sep.'\')';
+ }
+
+ function escapebin($str) {
+ return $this->escape($str);
+ }
+
+ function unescapebin($str) {
+ return $str;
+ }
+} // end abstract dba_driver class
+
+// Procedural functions
function printable($s) {
$s = preg_replace("~([\x01-\x08\x0E-\x0F\x10-\x1F\x7F-\xFF])~",".", $s);
@@ -79,24 +196,79 @@ function printable($s) {
return $s;
}
-// Procedural functions
-
+/**
+ * @brief set database driver debugging state.
+ *
+ * @param int $state 0 to disable debugging
+ */
function dbg($state) {
global $db;
+
if($db)
- $db->dbg($state);
+ $db->dbg($state);
}
-
+/**
+ * @brief Escape strings being passed to DB queries.
+ *
+ * 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().
+ *
+ * @param string $str A string to pass to a DB query
+ * @return Return an escaped string of the value to pass to a DB query.
+ */
function dbesc($str) {
global $db;
+
if($db && $db->connected)
return($db->escape($str));
else
- return(str_replace("'","\\'",$str));
+ return(str_replace("'", "\\'", $str));
+}
+function dbescbin($str) {
+ global $db;
+ return $db->escapebin($str);
+}
+
+function dbunescbin($str) {
+ global $db;
+ return $db->unescapebin($str);
}
+function dbescdate($date) {
+ if(ACTIVE_DBTYPE == DBTYPE_POSTGRES && $date == '0000-00-00 00:00:00') {
+ $date = NULL_DATE;
+ } else if(ACTIVE_DBTYPE != DBTYPE_POSTGRES && $date == '0001-01-01 00:00:00') {
+ $date = NULL_DATE;
+ }
+ return $date;
+}
+
+function db_quoteinterval($txt) {
+ global $db;
+ return $db->quote_interval($txt);
+}
+
+function dbesc_identifier($str) {
+ global $db;
+ return $db->escape_identifier($txt);
+}
+
+function db_utcnow() {
+ global $db;
+ return $db->utcnow();
+}
+
+function db_optimizetable($table) {
+ global $db;
+ $db->optimize_table($table);
+}
+function db_concat($fld, $sep) {
+ global $db;
+ return $db->concat($fld, $sep);
+}
// Function: q($sql,$args);
// Description: execute SQL query with printf style args.
@@ -104,64 +276,114 @@ function dbesc($str) {
// 'user', 1);
+/**
+ * @brief Execute a SQL query with printf style args.
+ *
+ * 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.
+ *
+ * Example:
+ * $r = q("SELECT * FROM `%s` WHERE `uid` = %d",
+ * 'user', 1);
+ *
+ * @param string $sql The SQL query to execute
+ * @return bool|array
+ */
function q($sql) {
-
global $db;
+
$args = func_get_args();
unset($args[0]);
if($db && $db->connected) {
- $stmt = vsprintf($sql,$args);
- if($stmt === false)
- logger('dba: vsprintf error: ' . print_r(debug_backtrace(),true));
+ $stmt = vsprintf($sql, $args);
+ if($stmt === false) {
+ if(version_compare(PHP_VERSION, '5.4.0') >= 0)
+ logger('dba: vsprintf error: ' .
+ print_r(debug_backtrace(DEBUG_BACKTRACE_PROVIDE_OBJECT, 1), true));
+ else
+ logger('dba: vsprintf error: ' . print_r(debug_backtrace(), true));
+ }
return $db->q($stmt);
}
- /**
- *
+ /*
* This will happen occasionally trying to store the
* session data after abnormal program termination
- *
*/
logger('dba: no database: ' . print_r($args,true));
- return false;
+ return false;
}
/**
+ * @brief Raw DB query, no arguments.
*
- * Raw db query, no arguments
+ * This function executes a raw DB query without any arguments.
*
+ * @param string $sql The SQL query to execute
*/
-
-
function dbq($sql) {
-
global $db;
+
if($db && $db->connected)
$ret = $db->q($sql);
else
$ret = false;
+
return $ret;
}
-// Caller is responsible for ensuring that any integer arguments to
+
+// Caller is responsible for ensuring that any integer arguments to
// dbesc_array are actually integers and not malformed strings containing
// SQL injection vectors. All integer array elements should be specifically
// cast to int to avoid trouble.
-
-
function dbesc_array_cb(&$item, $key) {
- if(is_string($item))
+ if(is_string($item)) {
+ if($item == '0000-00-00 00:00:00' && ACTIVE_DBTYPE == DBTYPE_POSTGRES)
+ $item = '0001-01-01 00:00:00';
+ else if($item == '0001-01-01 00:00:00' && ACTIVE_DBTYPE == DBTYPE_MYSQL)
+ $item = '0000-00-00 00:00:00';
$item = dbesc($item);
+ }
}
-
function dbesc_array(&$arr) {
if(is_array($arr) && count($arr)) {
array_walk($arr,'dbesc_array_cb');
}
}
+
+function db_getfunc($f) {
+ $lookup = array(
+ 'rand'=>array(
+ DBTYPE_MYSQL=>'RAND()',
+ DBTYPE_POSTGRES=>'RANDOM()'
+ ),
+ 'utc_timestamp'=>array(
+ DBTYPE_MYSQL=>'UTC_TIMESTAMP()',
+ DBTYPE_POSTGRES=>"now() at time zone 'UTC'"
+ ),
+ 'regexp'=>array(
+ DBTYPE_MYSQL=>'REGEXP',
+ DBTYPE_POSTGRES=>'~'
+ ),
+ '^'=>array(
+ DBTYPE_MYSQL=>'^',
+ DBTYPE_POSTGRES=>'#'
+ )
+ );
+ $f = strtolower($f);
+ if(isset($lookup[$f]) && isset($lookup[$f][ACTIVE_DBTYPE]))
+ return $lookup[$f][ACTIVE_DBTYPE];
+
+ logger('Unable to abstract DB function "'. $f . '" for dbtype ' . ACTIVE_DBTYPE, LOGGER_DEBUG);
+ return $f;
+}
+
diff --git a/include/dba/dba_mysql.php b/include/dba/dba_mysql.php
index f5a2a47ba..3cadad6dc 100755
--- a/include/dba/dba_mysql.php
+++ b/include/dba/dba_mysql.php
@@ -59,5 +59,9 @@ class dba_mysql extends dba_driver {
mysql_close($this->db);
$this->connected = false;
}
+
+ function getdriver() {
+ return 'mysql';
+ }
}
diff --git a/include/dba/dba_mysqli.php b/include/dba/dba_mysqli.php
index 19907705b..74a999974 100755
--- a/include/dba/dba_mysqli.php
+++ b/include/dba/dba_mysqli.php
@@ -40,7 +40,7 @@ class dba_mysqli extends dba_driver {
if(($result === true) || ($result === false)) {
if($this->debug) {
- logger('dba_mysqli: DEBUG: returns ' . (($result) ? 'true' : 'false'));
+ logger('dba_mysqli: DEBUG: ' . printable($sql) . ' returns ' . (($result) ? 'true' : 'false'));
}
return $result;
}
@@ -72,5 +72,9 @@ class dba_mysqli extends dba_driver {
$this->db->close();
$this->connected = false;
}
+
+ function getdriver() {
+ return 'mysqli';
+ }
} \ No newline at end of file
diff --git a/include/dba/dba_postgres.php b/include/dba/dba_postgres.php
new file mode 100644
index 000000000..ba4366d13
--- /dev/null
+++ b/include/dba/dba_postgres.php
@@ -0,0 +1,116 @@
+<?php
+
+require_once('include/dba/dba_driver.php');
+
+
+class dba_postgres extends dba_driver {
+ const INSTALL_SCRIPT='install/schema_postgres.sql';
+ const NULL_DATE = '0001-01-01 00:00:00';
+ const UTC_NOW = "now() at time zone 'UTC'";
+
+ function connect($server,$port,$user,$pass,$db) {
+ if(!$port) $port = 5432;
+ $connstr = 'host=' . $server . ' port='.$port . ' user=' . $user . ' password=' . $pass . ' dbname='. $db;
+ $this->db = pg_connect($connstr);
+ if($this->db !== false) {
+ $this->connected = true;
+ } else {
+ $this->connected = false;
+ }
+ $this->q("SET standard_conforming_strings = 'off'; SET backslash_quote = 'on';"); // emulate mysql string escaping to prevent massive code-clobber
+ return $this->connected;
+ }
+
+ function q($sql) {
+ if((! $this->db) || (! $this->connected))
+ return false;
+
+ if(!strpos($sql, ';'))
+ $sql .= ';';
+
+ if(strpos($sql, '`')) // this is a hack. quoted identifiers should be replaced everywhere in the code with dbesc_identifier(), remove this once it is
+ $sql = str_replace('`', '"', $sql);
+
+ $this->error = '';
+ $result = @pg_query($this->db, $sql);
+ if(file_exists('db-allqueries.out')) {
+ $bt = debug_backtrace();
+ $trace = array();
+ foreach($bt as $frame) {
+ if(!empty($frame['file']) && @strstr($frame['file'], $_SERVER['DOCUMENT_ROOT']))
+ $frame['file'] = substr($frame['file'], strlen($_SERVER['DOCUMENT_ROOT'])+1);
+
+ $trace[] = $frame['file'] . ':' . $frame['function'] . '():' . $frame['line'] ;
+ }
+ $compact = join(', ', $trace);
+ file_put_contents('db-allqueries.out', datetime_convert() . ": " . $sql . ' is_resource: '.var_export(is_resource($result), true).', backtrace: '.$compact."\n\n", FILE_APPEND);
+ }
+
+ if($result === false)
+ $this->error = pg_last_error($this->db);
+
+ if($result === false || $this->error) {
+ //logger('dba_postgres: ' . printable($sql) . ' returned false.' . "\n" . $this->error);
+ if(file_exists('dbfail.out'))
+ file_put_contents('dbfail.out', datetime_convert() . "\n" . printable($sql) . ' returned false' . "\n" . $this->error . "\n", FILE_APPEND);
+ }
+
+ if(($result === true) || ($result === false))
+ return $result;
+
+ if(pg_result_status($result) == PGSQL_COMMAND_OK)
+ return true;
+
+ $r = array();
+ if(pg_num_rows($result)) {
+ while($x = pg_fetch_array($result, null, PGSQL_ASSOC))
+ $r[] = $x;
+ pg_free_result($result);
+ if($this->debug)
+ logger('dba_postgres: ' . printable(print_r($r,true)));
+ }
+ return $r;
+ }
+
+ function escape($str) {
+ if($this->db && $this->connected) {
+ $x = @pg_escape_string($this->db, $str);
+ return $x;
+ }
+ }
+
+ function escapebin($str) {
+ return pg_escape_bytea($str);
+ }
+
+ function unescapebin($str) {
+ return pg_unescape_bytea($str);
+ }
+
+ function close() {
+ if($this->db)
+ pg_close($this->db);
+ $this->connected = false;
+ }
+
+ function quote_interval($txt) {
+ return "'$txt'";
+ }
+
+ function escape_identifier($str) {
+ return pg_escape_identifier($this->db, $str);
+ }
+
+ function optimize_table($table) {
+ // perhaps do some equivalent thing here, vacuum, etc? I think this is the DBA's domain anyway. Applications should not need to muss with this.
+ // for now do nothing without a compelling reason. function overrides default legacy mysql.
+ }
+
+ function concat($fld, $sep) {
+ return 'string_agg(' . $fld . ',\'' . $sep . '\')';
+ }
+
+ function getdriver() {
+ return 'pgsql';
+ }
+} \ No newline at end of file
diff --git a/include/deliver.php b/include/deliver.php
index f4fae6061..47d8562df 100644
--- a/include/deliver.php
+++ b/include/deliver.php
@@ -24,13 +24,13 @@ function deliver_run($argv, $argc) {
$result = z_post_url($r[0]['outq_posturl'],$r[0]['outq_msg']);
if($result['success'] && $result['return_code'] < 300) {
logger('deliver: queue post success to ' . $r[0]['outq_posturl'], LOGGER_DEBUG);
- $y = q("delete from outq where outq_hash = '%s' limit 1",
+ $y = q("delete from outq where outq_hash = '%s'",
dbesc($argv[$x])
);
}
else {
logger('deliver: queue post returned ' . $result['return_code'] . ' from ' . $r[0]['outq_posturl'],LOGGER_DEBUG);
- $y = q("update outq set outq_updated = '%s' where outq_hash = '%s' limit 1",
+ $y = q("update outq set outq_updated = '%s' where outq_hash = '%s'",
dbesc(datetime_convert()),
dbesc($argv[$x])
);
@@ -38,16 +38,34 @@ function deliver_run($argv, $argc) {
continue;
}
- if($r[0]['outq_posturl'] === z_root() . '/post') {
+ $notify = json_decode($r[0]['outq_notify'],true);
+
+ // Check if this is a conversation request packet. It won't have outq_msg
+ // but will be an encrypted packet - so will need to be handed off to
+ // web delivery rather than processed inline.
+
+ $sendtoweb = false;
+ if(array_key_exists('iv',$notify) && (! $r[0]['outq_msg']))
+ $sendtoweb = true;
+
+ if(($r[0]['outq_posturl'] === z_root() . '/post') && (! $sendtoweb)) {
logger('deliver: local delivery', LOGGER_DEBUG);
// local delivery
// we should probably batch these and save a few delivery processes
- // 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",
+ if($r[0]['outq_msg']) {
+ $m = json_decode($r[0]['outq_msg'],true);
+ if(array_key_exists('message_list',$m)) {
+ foreach($m['message_list'] as $mm) {
+ $msg = array('body' => json_encode(array('pickup' => array(array('notify' => $notify,'message' => $mm)))));
+ zot_import($msg,z_root());
+ }
+ }
+ else {
+ $msg = array('body' => json_encode(array('pickup' => array(array('notify' => $notify,'message' => $m)))));
+ zot_import($msg,z_root());
+ }
+ $r = q("delete from outq where outq_hash = '%s'",
dbesc($argv[$x])
);
}
@@ -59,7 +77,7 @@ function deliver_run($argv, $argc) {
zot_process_response($r[0]['outq_posturl'],$result, $r[0]);
}
else {
- $y = q("update outq set outq_updated = '%s' where outq_hash = '%s' limit 1",
+ $y = q("update outq set outq_updated = '%s' where outq_hash = '%s'",
dbesc(datetime_convert()),
dbesc($argv[$x])
);
diff --git a/include/diaspora.php b/include/diaspora.php
index 0b598ffb2..e494aac0f 100755
--- a/include/diaspora.php
+++ b/include/diaspora.php
@@ -58,7 +58,7 @@ function diaspora_dispatch($importer,$msg,$attempt=1) {
$xmlbase = $parsed_xml->post;
- logger('diaspora_dispatch: ' . print_r($xmlbase,true), LOGGER_DEBUG);
+// logger('diaspora_dispatch: ' . print_r($xmlbase,true), LOGGER_DATA);
if($xmlbase->request) {
@@ -142,6 +142,7 @@ function diaspora_process_outbound($arr) {
'cmd' => $cmd,
'expire' => $expire,
'mail' => $mail,
+ 'location' => $location,
'fsuggest' => $fsuggest,
'normal_mode' => $normal_mode,
'packet_type' => $packet_type,
@@ -150,6 +151,10 @@ function diaspora_process_outbound($arr) {
*/
+ if($arr['location'])
+ return;
+
+
$target_item = $arr['target_item'];
if($target_item && array_key_exists('item_flags',$target_item) && ($target_item['item_flags'] & ITEM_OBSCURED)) {
@@ -160,8 +165,7 @@ function diaspora_process_outbound($arr) {
$target_item['body'] = crypto_unencapsulate(json_decode($target_item['body'],true),$key);
}
- if($arr['walltowall'])
- return;
+
if($arr['env_recips']) {
$hashes = array();
@@ -202,10 +206,7 @@ function diaspora_process_outbound($arr) {
if(! $contact['xchan_pubkey'])
continue;
- if(activity_match($target_item['verb'],ACTIVITY_DISLIKE)) {
- continue;
- }
- elseif(($target_item['item_restrict'] & ITEM_DELETED)
+ if(($target_item['item_restrict'] & ITEM_DELETED)
&& (($target_item['mid'] === $target_item['parent_mid']) || $arr['followup'])) {
// send both top-level retractions and relayable retractions for owner to relay
diaspora_send_retraction($target_item,$arr['channel'],$contact);
@@ -234,11 +235,7 @@ function diaspora_process_outbound($arr) {
$contact = $arr['hub'];
- if($target_item['verb'] === ACTIVITY_DISLIKE) {
- // unsupported
- return;
- }
- elseif(($target_item['deleted'])
+ if(($target_item['deleted'])
&& ($target_item['mid'] === $target_item['parent_mod'])) {
// top-level retraction
logger('delivery: diaspora retract: ' . $loc);
@@ -252,7 +249,6 @@ function diaspora_process_outbound($arr) {
return;
}
elseif($arr['top_level_post']) {
- // currently no workable solution for sending walltowall
logger('delivery: diaspora status: ' . $loc);
diaspora_send_status($target_item,$arr['channel'],$contact,true);
return;
@@ -541,7 +537,7 @@ function diaspora_decode($importer,$xml) {
* </decrypted_header>
*/
- logger('decrypted: ' . $decrypted, LOGGER_DEBUG);
+ logger('decrypted: ' . $decrypted, LOGGER_DATA);
$idom = parse_xml_string($decrypted,false);
$inner_iv = base64_decode($idom->iv);
@@ -661,7 +657,7 @@ function diaspora_request($importer,$xml) {
$newperms = PERMS_R_STREAM|PERMS_R_PROFILE|PERMS_R_PHOTOS|PERMS_R_ABOOK|PERMS_W_STREAM|PERMS_W_COMMENT|PERMS_W_MAIL|PERMS_W_CHAT|PERMS_R_STORAGE|PERMS_R_PAGES;
- $r = q("update abook set abook_their_perms = %d where abook_id = %d and abook_channel = %d limit 1",
+ $r = q("update abook set abook_their_perms = %d where abook_id = %d and abook_channel = %d",
intval($newperms),
intval($contact['abook_id']),
intval($importer['channel_id'])
@@ -677,19 +673,18 @@ function diaspora_request($importer,$xml) {
return;
}
- $default_perms = 0;
- // look for default permissions to apply in return - e.g. auto-friend
- $z = q("select * from abook where abook_channel = %d and (abook_flags & %d) limit 1",
- intval($importer['channel_id']),
- intval(ABOOK_FLAG_SELF)
- );
-
- if($z)
- $default_perms = intval($z[0]['abook_my_perms']);
-
+ $role = get_pconfig($channel['channel_id'],'system','permissions_role');
+ if($role) {
+ $x = get_role_perms($role);
+ if($x['perms_auto'])
+ $default_perms = $x['perms_accept'];
+ }
+ if(! $default_perms)
+ $default_perms = intval(get_pconfig($channel['channel_id'],'system','autoperms'));
+
$their_perms = PERMS_R_STREAM|PERMS_R_PROFILE|PERMS_R_PHOTOS|PERMS_R_ABOOK|PERMS_W_STREAM|PERMS_W_COMMENT|PERMS_W_MAIL|PERMS_W_CHAT|PERMS_R_STORAGE|PERMS_R_PAGES;
- $r = q("insert into abook ( abook_account, abook_channel, abook_xchan, abook_my_perms, abook_their_perms, abook_closeness, abook_rating, abook_created, abook_updated, abook_connected, abook_dob, abook_flags, abook_profile) values ( %d, %d, '%s' %d %d, %d, %d, '%s', '%s', '%s', '%s', %d, '%s')",
+ $r = q("insert into abook ( abook_account, abook_channel, abook_xchan, abook_my_perms, abook_their_perms, abook_closeness, abook_rating, abook_created, abook_updated, abook_connected, abook_dob, abook_flags) values ( %d, %d, '%s', %d, %d, %d, %d, '%s', '%s', '%s', '%s', %d )",
intval($importer['channel_account_id']),
intval($importer['channel_id']),
dbesc($ret['xchan_hash']),
@@ -700,7 +695,7 @@ function diaspora_request($importer,$xml) {
dbesc(datetime_convert()),
dbesc(datetime_convert()),
dbesc(datetime_convert()),
- dbesc('0000-00-00 00:00:00'),
+ dbesc(NULL_DATE),
intval(($default_perms) ? 0 : ABOOK_FLAG_PENDING)
);
@@ -708,7 +703,7 @@ function diaspora_request($importer,$xml) {
if($r) {
logger("New Diaspora introduction received for {$importer['channel_name']}");
- $new_connection = q("select * from abook left join xchan on abook_xchan = xchan_hash where abook_channel = %d and abook_xchan = '%s' order by abook_created desc limit 1",
+ $new_connection = q("select * from abook left join xchan on abook_xchan = xchan_hash left join hubloc on hubloc_hash = xchan_hash where abook_channel = %d and abook_xchan = '%s' order by abook_created desc limit 1",
intval($importer['channel_id']),
dbesc($ret['xchan_hash'])
);
@@ -723,7 +718,7 @@ function diaspora_request($importer,$xml) {
if($default_perms) {
// Send back a sharing notification to them
- diaspora_share($importer['channel_id'],$new_connection[0]);
+ diaspora_share($importer,$new_connection[0]);
}
}
@@ -761,8 +756,6 @@ function diaspora_post($importer,$xml,$msg) {
$app = notags(xmlify($xml->provider_display_name));
-
-
if($diaspora_handle != $msg['author']) {
logger('diaspora_post: Potential forgery. Message handle is not the same as envelope sender.');
return 202;
@@ -805,6 +798,12 @@ function diaspora_post($importer,$xml,$msg) {
$body = diaspora2bb($xml->raw_message);
+ if($xml->photo) {
+ $body = '[img]' . $xml->photo->remote_photo_path . $xml->photo->remote_photo_name . '[/img]' . "\n\n" . $body;
+ $body = scale_external_images($body);
+ }
+
+
//WTF? FIXME
// Add OEmbed and other information to the body
// $body = add_page_info_to_body($body, false, true);
@@ -821,7 +820,7 @@ function diaspora_post($importer,$xml,$msg) {
foreach($tags as $tag) {
if(strpos($tag,'#') === 0) {
- if(strpos($tag,'[url='))
+ if((strpos($tag,'[url=')) || (strpos($tag,'[zrl')))
continue;
// don't link tags that are already embedded in links
@@ -858,6 +857,22 @@ function diaspora_post($importer,$xml,$msg) {
}
}
+ $cnt = preg_match_all('/@\[zrl=(.*?)\](.*?)\[\/zrl\]/ism',$body,$matches,PREG_SET_ORDER);
+ if($cnt) {
+ foreach($matches as $mtch) {
+ // don't include plustags in the term
+ $term = ((substr($mtch[2],-1,1) === '+') ? substr($mtch[2],0,-1) : $mtch[2]);
+ $datarray['term'][] = array(
+ 'uid' => $importer['channel_id'],
+ 'type' => TERM_MENTION,
+ 'otype' => TERM_OBJ_POST,
+ 'term' => $term,
+ 'url' => $mtch[1]
+ );
+ }
+ }
+
+
// this won't work for Friendica or Redmatrix but it's probably the best we can do.
$plink = 'https://'.substr($diaspora_handle,strpos($diaspora_handle,'@')+1).'/posts/'.$guid;
@@ -886,9 +901,52 @@ function diaspora_post($importer,$xml,$msg) {
}
+
+function get_diaspora_reshare_xml($url,$recurse = 0) {
+
+ $x = z_fetch_url($url);
+ if(! $x['success'])
+ $x = z_fetch_url(str_replace('https://','http://',$url));
+ if(! $x['success']) {
+ logger('get_diaspora_reshare_xml: unable to fetch source url ' . $url);
+ return;
+ }
+ logger('get_diaspora_reshare_xml: source: ' . $x['body'], LOGGER_DEBUG);
+
+ $source_xml = parse_xml_string($x['body'],false);
+
+ if(! $source_xml) {
+ logger('get_diaspora_reshare_xml: unparseable result from ' . $url);
+ return '';
+ }
+
+ if($source_xml->post->status_message) {
+ return $source_xml;
+ }
+
+ // see if it's a reshare of a reshare
+
+ if($source_xml->post->reshare)
+ $xml = $source_xml->post->reshare;
+ else
+ return false;
+
+ if($xml->root_diaspora_id && $xml->root_guid && $recurse < 15) {
+ $orig_author = notags(unxmlify($xml->root_diaspora_id));
+ $orig_guid = notags(unxmlify($xml->root_guid));
+ $source_url = 'https://' . substr($orig_author,strpos($orig_author,'@')+1) . '/p/' . $orig_guid . '.xml';
+ $y = get_diaspora_reshare_xml($source_url,$recurse+1);
+ if($y)
+ return $y;
+ }
+ return false;
+}
+
+
+
function diaspora_reshare($importer,$xml,$msg) {
- logger('diaspora_reshare: init: ' . print_r($xml,true));
+ logger('diaspora_reshare: init: ' . print_r($xml,true), LOGGER_DATA);
$a = get_app();
$guid = notags(unxmlify($xml->guid));
@@ -924,32 +982,18 @@ function diaspora_reshare($importer,$xml,$msg) {
$source_url = 'https://' . substr($orig_author,strpos($orig_author,'@')+1) . '/p/' . $orig_guid . '.xml';
$orig_url = 'https://'.substr($orig_author,strpos($orig_author,'@')+1).'/posts/'.$orig_guid;
- $x = z_fetch_url($source_url);
- if(! $x['success'])
- $x = z_fetch_url(str_replace('https://','http://',$source_url));
- if(! $x['success']) {
- logger('diaspora_reshare: unable to fetch source url ' . $source_url);
- return;
- }
- logger('diaspora_reshare: source: ' . $x['body']);
-
- $x = str_replace(array('<activity_streams-photo>','</activity_streams-photo>'),array('<asphoto>','</asphoto>'),$x['body']);
- $source_xml = parse_xml_string($x,false);
+ $source_xml = get_diaspora_reshare_xml($source_url);
- if(strlen($source_xml->post->asphoto->objectId) && ($source_xml->post->asphoto->objectId != 0) && ($source_xml->post->asphoto->image_url)) {
- $body = '[url=' . notags(unxmlify($source_xml->post->asphoto->image_url)) . '][img]' . notags(unxmlify($source_xml->post->asphoto->objectId)) . '[/img][/url]' . "\n";
- $body = scale_external_images($body,false);
- }
- elseif($source_xml->post->asphoto->image_url) {
- $body = '[img]' . notags(unxmlify($source_xml->post->asphoto->image_url)) . '[/img]' . "\n";
- $body = scale_external_images($body);
- }
- elseif($source_xml->post->status_message) {
+ if($source_xml->post->status_message) {
$body = diaspora2bb($source_xml->post->status_message->raw_message);
+ $orig_author = notags(unxmlify($source_xml->post->status_message->diaspora_handle));
+ $orig_guid = notags(unxmlify($source_xml->post->status_message->guid));
+
+
// Checking for embedded pictures
- if($source_xml->post->status_message->photo->remote_photo_path AND
+ if($source_xml->post->status_message->photo->remote_photo_path &&
$source_xml->post->status_message->photo->remote_photo_name) {
$remote_photo_path = notags(unxmlify($source_xml->post->status_message->photo->remote_photo_path));
@@ -979,12 +1023,19 @@ function diaspora_reshare($importer,$xml,$msg) {
$person = find_diaspora_person_by_handle($orig_author);
- /*if(is_array($person) && x($person,'name') && x($person,'url'))
- $details = '[url=' . $person['url'] . ']' . $person['name'] . '[/url]';
- else
- $details = $orig_author;
+ if($person) {
+ $orig_author_name = $person['xchan_name'];
+ $orig_author_link = $person['xchan_url'];
+ $orig_author_photo = $person['xchan_photo_m'];
+ }
- $prefix = html_entity_decode("&#x2672; ", ENT_QUOTES, 'UTF-8') . $details . "\n";*/
+ $newbody = "[share author='" . urlencode($orig_author_name)
+ . "' profile='" . $orig_author_link
+ . "' avatar='" . $orig_author_photo
+ . "' link='" . $orig_url
+ . "' posted='" . datetime_convert('UTC','UTC',unxmlify($source_xml->post->status_message->created_at))
+ . "' message_id='" . unxmlify($source_xml->post->status_message->guid)
+ . "']" . $body . "[/share]";
$created = unxmlify($xml->created_at);
@@ -994,7 +1045,7 @@ function diaspora_reshare($importer,$xml,$msg) {
$str_tags = '';
- $tags = get_tags($body);
+ $tags = get_tags($newbody);
if(count($tags)) {
@@ -1003,18 +1054,18 @@ function diaspora_reshare($importer,$xml,$msg) {
foreach($tags as $tag) {
if(strpos($tag,'#') === 0) {
- if(strpos($tag,'[url='))
+ if((strpos($tag,'[url=')) || (strpos($tag,'[zrl')))
continue;
// don't link tags that are already embedded in links
- if(preg_match('/\[(.*?)' . preg_quote($tag,'/') . '(.*?)\]/',$body))
+ if(preg_match('/\[(.*?)' . preg_quote($tag,'/') . '(.*?)\]/',$newbody))
continue;
- if(preg_match('/\[(.*?)\]\((.*?)' . preg_quote($tag,'/') . '(.*?)\)/',$body))
+ if(preg_match('/\[(.*?)\]\((.*?)' . preg_quote($tag,'/') . '(.*?)\)/',$newbody))
continue;
$basetag = str_replace('_',' ',substr($tag,1));
- $body = str_replace($tag,'#[url=' . $a->get_baseurl() . '/search?tag=' . rawurlencode($basetag) . ']' . $basetag . '[/url]',$body);
+ $newbody = str_replace($tag,'#[url=' . $a->get_baseurl() . '/search?tag=' . rawurlencode($basetag) . ']' . $basetag . '[/url]',$newbody);
$datarray['term'][] = array(
'uid' => $importer['channel_id'],
@@ -1027,7 +1078,7 @@ function diaspora_reshare($importer,$xml,$msg) {
}
}
- $cnt = preg_match_all('/@\[url=(.*?)\](.*?)\[\/url\]/ism',$body,$matches,PREG_SET_ORDER);
+ $cnt = preg_match_all('/@\[url=(.*?)\](.*?)\[\/url\]/ism',$newbody,$matches,PREG_SET_ORDER);
if($cnt) {
foreach($matches as $mtch) {
$datarray['term'][] = array(
@@ -1040,7 +1091,7 @@ function diaspora_reshare($importer,$xml,$msg) {
}
}
- // This won't work
+ // This won't work on redmatrix
$plink = 'https://'.substr($diaspora_handle,strpos($diaspora_handle,'@')+1).'/posts/'.$guid;
$datarray['uid'] = $importer['channel_id'];
@@ -1049,9 +1100,9 @@ function diaspora_reshare($importer,$xml,$msg) {
$datarray['item_private'] = $private;
$datarray['plink'] = $plink;
$datarray['owner_xchan'] = $contact['xchan_hash'];
- $datarray['author_xchan'] = $person['xchan_hash'];
+ $datarray['author_xchan'] = $contact['xchan_hash'];
- $datarray['body'] = $body;
+ $datarray['body'] = $newbody;
$datarray['app'] = 'Diaspora';
@@ -1290,7 +1341,7 @@ function diaspora_comment($importer,$xml,$msg) {
foreach($tags as $tag) {
if(strpos($tag,'#') === 0) {
- if(strpos($tag,'[url='))
+ if((strpos($tag,'[url=')) || (strpos($tag,'[zrl')))
continue;
// don't link tags that are already embedded in links
@@ -1332,6 +1383,8 @@ function diaspora_comment($importer,$xml,$msg) {
$datarray['mid'] = $guid;
$datarray['parent_mid'] = $parent_item['mid'];
+ // set the route to that of the parent so downstream hubs won't reject it.
+ $datarray['route'] = $parent_item['route'];
// No timestamps for comments? OK, we'll the use current time.
$datarray['changed'] = $datarray['created'] = $datarray['edited'] = datetime_convert();
@@ -1342,11 +1395,18 @@ function diaspora_comment($importer,$xml,$msg) {
$datarray['body'] = $body;
- $datarray['app'] = 'Diaspora';
+ if(strstr($person['xchan_network'],'friendica'))
+ $app = 'Friendica';
+ else
+ $app = 'Diaspora';
+
+ $datarray['app'] = $app;
if(! $parent_author_signature) {
- $datarray['diaspora_meta'] = array('signer' => $diaspora_handle, 'body' => $text,
- 'signed_text' => $signed_data, 'signature' => base64_encode($author_signature));
+ $key = get_config('system','pubkey');
+ $x = array('signer' => $diaspora_handle, 'body' => $text,
+ 'signed_text' => $signed_data, 'signature' => base64_encode($author_signature));
+ $datarray['diaspora_meta'] = json_encode(crypto_encapsulate(json_encode($x),$key));
}
$result = item_store($datarray);
@@ -1355,13 +1415,6 @@ function diaspora_comment($importer,$xml,$msg) {
$message_id = $result['item_id'];
if(($parent_item['item_flags'] & ITEM_ORIGIN) && (! $parent_author_signature)) {
- q("insert into sign (`iid`,`signed_text`,`signature`,`signer`) values (%d,'%s','%s','%s') ",
- intval($message_id),
- dbesc($signed_data),
- dbesc(base64_encode($author_signature)),
- dbesc($diaspora_handle)
- );
-
// if the message isn't already being relayed, notify others
// the existence of parent_author_signature means the parent_author or owner
// is already relaying.
@@ -1408,7 +1461,8 @@ function diaspora_conversation($importer,$xml,$msg) {
return;
}
- if(($contact['rel'] == CONTACT_IS_FOLLOWER) || ($contact['blocked']) || ($contact['readonly'])) {
+
+ if(! perm_is_allowed($importer['channel_id'],$contact['xchan_hash'],'post_mail')) {
logger('diaspora_conversation: Ignoring this author.');
return 202;
}
@@ -1508,14 +1562,20 @@ function diaspora_conversation($importer,$xml,$msg) {
continue;
}
- q("insert into mail ( `uid`, `convid`, `from_xchan`,`to_xchan`,`title`,`body`,`mail_flags`,`mid`,`parent_mid`,`created`) values ( %d, %d, '%s', '%s', '%s', '%s', %d, '%s', '%s', '%s')",
+ $key = get_config('system','pubkey');
+ if($subject)
+ $subject = json_encode(crypto_encapsulate($subject,$key));
+ if($body)
+ $body = json_encode(crypto_encapsulate($body,$key));
+
+ q("insert into mail ( `channel_id`, `convid`, `from_xchan`,`to_xchan`,`title`,`body`,`mail_flags`,`mid`,`parent_mid`,`created`) values ( %d, %d, '%s', '%s', '%s', '%s', %d, '%s', '%s', '%s')",
intval($importer['channel_id']),
intval($conversation['id']),
dbesc($person['xchan_hash']),
dbesc($importer['channel_hash']),
dbesc($subject),
dbesc($body),
- 0,
+ intval(MAIL_OBSCURED),
dbesc($msg_guid),
dbesc($parent_uri),
dbesc($msg_created_at)
@@ -1564,7 +1624,7 @@ function diaspora_message($importer,$xml,$msg) {
$msg_diaspora_handle = notags(unxmlify($xml->diaspora_handle));
$msg_conversation_guid = notags(unxmlify($xml->conversation_guid));
- $parent_uri = $diaspora_handle . ':' . $msg_parent_guid;
+ $parent_uri = $msg_parent_guid;
$contact = diaspora_get_contact_by_handle($importer['channel_id'],$msg_diaspora_handle);
if(! $contact) {
@@ -1583,7 +1643,7 @@ function diaspora_message($importer,$xml,$msg) {
intval($importer['channel_id']),
dbesc($msg_conversation_guid)
);
- if(count($c))
+ if($c)
$conversation = $c[0];
else {
logger('diaspora_message: conversation not available.');
@@ -1592,6 +1652,7 @@ function diaspora_message($importer,$xml,$msg) {
$reply = 0;
+ $subject = $conversation['subject'];
$body = diaspora2bb($msg_text);
$message_id = $msg_diaspora_handle . ':' . $msg_guid;
@@ -1601,8 +1662,8 @@ function diaspora_message($importer,$xml,$msg) {
$author_signature = base64_decode($msg_author_signature);
$person = find_diaspora_person_by_handle($msg_diaspora_handle);
- if(is_array($person) && x($person,'pubkey'))
- $key = $person['pubkey'];
+ if(is_array($person) && x($person,'xchan_pubkey'))
+ $key = $person['xchan_pubkey'];
else {
logger('diaspora_message: unable to find author details');
return;
@@ -1613,28 +1674,30 @@ function diaspora_message($importer,$xml,$msg) {
return;
}
- $r = q("select id from mail where `uri` = '%s' and uid = %d limit 1",
+ $r = q("select id from mail where mid = '%s' and channel_id = %d limit 1",
dbesc($message_id),
intval($importer['channel_id'])
);
- if(count($r)) {
+ if($r) {
logger('diaspora_message: duplicate message already delivered.', LOGGER_DEBUG);
return;
}
- q("insert into mail ( `uid`, `guid`, `convid`, `from-name`,`from-photo`,`from-url`,`contact-id`,`title`,`body`,`seen`,`reply`,`uri`,`parent-uri`,`created`) values ( %d, '%s', %d, '%s', '%s', '%s', %d, '%s', '%s', %d, %d, '%s','%s','%s')",
+ $key = get_config('system','pubkey');
+ if($subject)
+ $subject = json_encode(crypto_encapsulate($subject,$key));
+ if($body)
+ $body = json_encode(crypto_encapsulate($body,$key));
+
+ q("insert into mail ( `channel_id`, `convid`, `from_xchan`,`to_xchan`,`title`,`body`,`mail_flags`,`mid`,`parent_mid`,`created`) values ( %d, %d, '%s', '%s', '%s', '%s', '%d','%s','%s','%s')",
intval($importer['channel_id']),
- dbesc($msg_guid),
intval($conversation['id']),
- dbesc($person['name']),
- dbesc($person['photo']),
- dbesc($person['url']),
- intval($contact['id']),
- dbesc($conversation['subject']),
+ dbesc($person['xchan_hash']),
+ dbesc($importer['xchan_hash']),
+ dbesc($subject),
dbesc($body),
- 0,
- 1,
- dbesc($message_id),
+ intval(MAIL_OBSCURED),
+ dbesc($msg_guid),
dbesc($parent_uri),
dbesc($msg_created_at)
);
@@ -1681,36 +1744,29 @@ function diaspora_photo($importer,$xml,$msg,$attempt=1) {
return 202;
}
- $r = q("SELECT * FROM `item` WHERE `uid` = %d AND `guid` = '%s' LIMIT 1",
+ $r = q("SELECT * FROM `item` WHERE `uid` = %d AND `mid` = '%s' LIMIT 1",
intval($importer['channel_id']),
dbesc($status_message_guid)
);
- if(! count($r)) {
- if($attempt <= 3) {
- q("INSERT INTO dsprphotoq (uid, msg, attempt) VALUES (%d, '%s', %d)",
- intval($importer['channel_id']),
- dbesc(serialize($msg)),
- intval($attempt + 1)
- );
- }
+ if(! $r) {
logger('diaspora_photo: attempt = ' . $attempt . '; status message not found: ' . $status_message_guid . ' for photo: ' . $guid);
return;
}
- $parent_item = $r[0];
+// $parent_item = $r[0];
- $link_text = '[img]' . $remote_photo_path . $remote_photo_name . '[/img]' . "\n";
+// $link_text = '[img]' . $remote_photo_path . $remote_photo_name . '[/img]' . "\n";
- $link_text = scale_external_images($link_text, true,
- array($remote_photo_name, 'scaled_full_' . $remote_photo_name));
+// $link_text = scale_external_images($link_text, true,
+// array($remote_photo_name, 'scaled_full_' . $remote_photo_name));
- if(strpos($parent_item['body'],$link_text) === false) {
- $r = q("update item set `body` = '%s', `visible` = 1 where `id` = %d and `uid` = %d",
- dbesc($link_text . $parent_item['body']),
- intval($parent_item['id']),
- intval($parent_item['uid'])
- );
- }
+// if(strpos($parent_item['body'],$link_text) === false) {
+// $r = q("update item set `body` = '%s', `visible` = 1 where `id` = %d and `uid` = %d",
+// dbesc($link_text . $parent_item['body']),
+// intval($parent_item['id']),
+// intval($parent_item['uid'])
+// );
+// }
return;
}
@@ -1737,7 +1793,7 @@ function diaspora_like($importer,$xml,$msg) {
$contact = diaspora_get_contact_by_handle($importer['channel_id'],$msg['author']);
if(! $contact) {
- logger('diaspora_like: cannot find contact: ' . $msg['author']);
+ logger('diaspora_like: cannot find contact: ' . $msg['author'] . ' for channel ' . $importer['channel_name']);
return;
}
@@ -1747,7 +1803,7 @@ function diaspora_like($importer,$xml,$msg) {
return 202;
}
- $r = q("SELECT * FROM `item` WHERE `uid` = %d AND `guid` = '%s' LIMIT 1",
+ $r = q("SELECT * FROM `item` WHERE `uid` = %d AND `mid` = '%s' LIMIT 1",
intval($importer['channel_id']),
dbesc($parent_guid)
);
@@ -1758,7 +1814,7 @@ function diaspora_like($importer,$xml,$msg) {
$parent_item = $r[0];
- $r = q("SELECT * FROM `item` WHERE `uid` = %d AND `guid` = '%s' LIMIT 1",
+ $r = q("SELECT * FROM `item` WHERE `uid` = %d AND `mid` = '%s' LIMIT 1",
intval($importer['channel_id']),
dbesc($guid)
);
@@ -1771,15 +1827,19 @@ function diaspora_like($importer,$xml,$msg) {
// It looks like "RelayableRetractions" are used for "unlike" instead
if($positive === 'false') {
logger('diaspora_like: received a like with positive set to "false"...ignoring');
-/* q("UPDATE `item` SET `deleted` = 1 WHERE `id` = %d AND `uid` = %d",
- intval($r[0]['id']),
- intval($importer['channel_id'])
- );*/
+ // perhaps call drop_item()
// FIXME--actually don't unless it turns out that Diaspora does indeed send out "false" likes
// send notification via proc_run()
return;
}
}
+
+ $i = q("select * from xchan where xchan_hash = '%s' limit 1",
+ dbesc($parent_item['author_xchan'])
+ );
+ if($i)
+ $item_author = $i[0];
+
// Note: I don't think "Like" objects with positive = "false" are ever actually used
// It looks like "RelayableRetractions" are used for "unlike" instead
if($positive === 'false') {
@@ -1801,7 +1861,12 @@ function diaspora_like($importer,$xml,$msg) {
who sent the salmon
*/
- $signed_data = $guid . ';' . $target_type . ';' . $parent_guid . ';' . $positive . ';' . $diaspora_handle;
+ // 2014-09-10 let's try this: signatures are failing. I'll try and make a signable string from
+ // the parameters in the order they were presented in the post. This is how D* creates the signable string.
+
+
+ $signed_data = $positive . ';' . $guid . ';' . $target_type . ';' . $parent_guid . ';' . $diaspora_handle;
+
$key = $msg['key'];
if($parent_author_signature) {
@@ -1837,6 +1902,8 @@ function diaspora_like($importer,$xml,$msg) {
}
}
}
+
+ logger('diaspora_like: signature check complete.',LOGGER_DEBUG);
// Phew! Everything checks out. Now create an item.
@@ -1857,93 +1924,79 @@ function diaspora_like($importer,$xml,$msg) {
$uri = $diaspora_handle . ':' . $guid;
$activity = ACTIVITY_LIKE;
- $post_type = (($parent_item['resource-id']) ? t('photo') : t('status'));
- $objtype = (($parent_item['resource-id']) ? ACTIVITY_OBJ_PHOTO : ACTIVITY_OBJ_NOTE );
- $link = xmlify('<link rel="alternate" type="text/html" href="' . $a->get_baseurl() . '/display/' . $importer['nickname'] . '/' . $parent_item['id'] . '" />' . "\n") ;
+
+ $post_type = (($parent_item['resource_type'] === 'photo') ? t('photo') : t('status'));
+
+ $links = array(array('rel' => 'alternate','type' => 'text/html', 'href' => $parent_item['plink']));
+ $objtype = (($parent_item['resource_type'] === 'photo') ? ACTIVITY_OBJ_PHOTO : ACTIVITY_OBJ_NOTE );
+
$body = $parent_item['body'];
- $obj = <<< EOT
- <object>
- <type>$objtype</type>
- <local>1</local>
- <id>{$parent_item['uri']}</id>
- <link>$link</link>
- <title></title>
- <content>$body</content>
- </object>
-EOT;
+ $object = json_encode(array(
+ 'type' => $post_type,
+ 'id' => $parent_item['mid'],
+ 'parent' => (($parent_item['thr_parent']) ? $parent_item['thr_parent'] : $parent_item['parent_mid']),
+ 'link' => $links,
+ 'title' => $parent_item['title'],
+ 'content' => $parent_item['body'],
+ 'created' => $parent_item['created'],
+ 'edited' => $parent_item['edited'],
+ 'author' => array(
+ 'name' => $item_author['xchan_name'],
+ 'address' => $item_author['xchan_addr'],
+ 'guid' => $item_author['xchan_guid'],
+ 'guid_sig' => $item_author['xchan_guid_sig'],
+ 'link' => array(
+ array('rel' => 'alternate', 'type' => 'text/html', 'href' => $item_author['xchan_url']),
+ array('rel' => 'photo', 'type' => $item_author['xchan_photo_mimetype'], 'href' => $item_author['xchan_photo_m'])),
+ ),
+ ));
+
+
$bodyverb = t('%1$s likes %2$s\'s %3$s');
$arr = array();
- $arr['uri'] = $uri;
$arr['uid'] = $importer['channel_id'];
- $arr['guid'] = $guid;
- $arr['network'] = NETWORK_DIASPORA;
- $arr['contact-id'] = $contact['id'];
- $arr['type'] = 'activity';
- $arr['wall'] = $parent_item['wall'];
- $arr['gravity'] = GRAVITY_LIKE;
- $arr['parent'] = $parent_item['id'];
- $arr['parent-uri'] = $parent_item['uri'];
-
- $arr['owner-name'] = $parent_item['name'];
- $arr['owner-link'] = $parent_item['url'];
- //$arr['owner-avatar'] = $parent_item['thumb'];
- $arr['owner-avatar'] = ((x($parent_item,'thumb')) ? $parent_item['thumb'] : $parent_item['photo']);
-
- $arr['author-name'] = $person['name'];
- $arr['author-link'] = $person['url'];
- $arr['author-avatar'] = ((x($person,'thumb')) ? $person['thumb'] : $person['photo']);
+ $arr['aid'] = $importer['channel_account_id'];
+ $arr['mid'] = $guid;
+ $arr['parent_mid'] = $parent_item['mid'];
+ $arr['owner_xchan'] = $parent_item['owner_xchan'];
+ $arr['author_xchan'] = $person['xchan_hash'];
$ulink = '[url=' . $contact['url'] . ']' . $contact['name'] . '[/url]';
$alink = '[url=' . $parent_item['author-link'] . ']' . $parent_item['author-name'] . '[/url]';
- //$plink = '[url=' . $a->get_baseurl() . '/display/' . $importer['nickname'] . '/' . $parent_item['id'] . ']' . $post_type . '[/url]';
- $plink = '[url='.$a->get_baseurl().'/display/'.$guid.']'.$post_type.'[/url]';
+ $plink = '[url='. z_root() .'/display/'.$guid.']'.$post_type.'[/url]';
$arr['body'] = sprintf( $bodyverb, $ulink, $alink, $plink );
$arr['app'] = 'Diaspora';
- $arr['private'] = $parent_item['private'];
+ // set the route to that of the parent so downstream hubs won't reject it.
+ $arr['route'] = $parent_item['route'];
+
+ $arr['item_private'] = $parent_item['item_private'];
$arr['verb'] = $activity;
- $arr['object-type'] = $objtype;
- $arr['object'] = $obj;
- $arr['visible'] = 1;
- $arr['unseen'] = 1;
- $arr['last-child'] = 0;
+ $arr['obj_type'] = $objtype;
+ $arr['object'] = $object;
if(! $parent_author_signature) {
- $datarray['diaspora_meta'] = array('signer' => $diaspora_handle, 'body' => $text,
- 'signed_text' => $signed_data, 'signature' => base64_encode($author_signature));
+ $key = get_config('system','pubkey');
+ $x = array('signer' => $diaspora_handle, 'body' => $text,
+ 'signed_text' => $signed_data, 'signature' => base64_encode($author_signature));
+ $arr['diaspora_meta'] = json_encode(crypto_encapsulate(json_encode($x),$key));
}
+ $x = item_store($arr);
- $message_id = item_store($arr);
-
-
- //if($message_id) {
- // q("update item set plink = '%s' where id = %d",
- // //dbesc($a->get_baseurl() . '/display/' . $importer['nickname'] . '/' . $message_id),
- // dbesc($a->get_baseurl().'/display/'.$guid),
- // intval($message_id)
- // );
- //}
-
- if(! $parent_author_signature) {
- q("insert into sign (`iid`,`signed_text`,`signature`,`signer`) values (%d,'%s','%s','%s') ",
- intval($message_id),
- dbesc($signed_data),
- dbesc(base64_encode($author_signature)),
- dbesc($diaspora_handle)
- );
- }
+ if($x)
+ $message_id = $x['item_id'];
// if the message isn't already being relayed, notify others
// the existence of parent_author_signature means the parent_author or owner
// is already relaying. The parent_item['origin'] indicates the message was created on our system
- if(($parent_item['origin']) && (! $parent_author_signature))
+ if(($parent_item['item_flags'] & ITEM_ORIGIN) && (! $parent_author_signature))
proc_run('php','include/notifier.php','comment-import',$message_id);
return;
@@ -1962,19 +2015,16 @@ function diaspora_retraction($importer,$xml) {
if($type === 'Person') {
require_once('include/Contact.php');
- contact_remove($contact['id']);
+ contact_remove($importer['channel_id'],$contact['abook_id']);
}
elseif($type === 'Post') {
- $r = q("select * from item where guid = '%s' and uid = %d and not file like '%%[%%' limit 1",
+ $r = q("select * from item where mid = '%s' and uid = %d limit 1",
dbesc('guid'),
intval($importer['channel_id'])
);
if(count($r)) {
- if(link_compare($r[0]['author-link'],$contact['url'])) {
- q("update item set `deleted` = 1, `changed` = '%s' where `id` = %d",
- dbesc(datetime_convert()),
- intval($r[0]['id'])
- );
+ if(link_compare($r[0]['author_xchan'],$contact['xchan_hash'])) {
+ drop_item($r[0]['id'],false);
}
}
}
@@ -2036,35 +2086,33 @@ function diaspora_signed_retraction($importer,$xml,$msg) {
}
if($type === 'StatusMessage' || $type === 'Comment' || $type === 'Like') {
- $r = q("select * from item where guid = '%s' and uid = %d and not file like '%%[%%' limit 1",
+ $r = q("select * from item where mid = '%s' and uid = %d limit 1",
dbesc($guid),
intval($importer['channel_id'])
);
- if(count($r)) {
- if(link_compare($r[0]['author-link'],$contact['url'])) {
- q("update item set `deleted` = 1, `edited` = '%s', `changed` = '%s', `body` = '' , `title` = '' where `id` = %d",
- dbesc(datetime_convert()),
- dbesc(datetime_convert()),
- intval($r[0]['id'])
- );
+ if($r) {
+ if($r[0]['author_xchan'] == $contact['xchan_hash']) {
+
+ drop_item($r[0]['id'],false, DROPITEM_PHASE1);
// Now check if the retraction needs to be relayed by us
//
// The first item in the `item` table with the parent id is the parent. However, MySQL doesn't always
// return the items ordered by `item`.`id`, in which case the wrong item is chosen as the parent.
// The only item with `parent` and `id` as the parent id is the parent item.
- $p = q("select origin from item where parent = %d and id = %d limit 1",
+ $p = q("select item_flags from item where parent = %d and id = %d limit 1",
$r[0]['parent'],
$r[0]['parent']
);
- if(count($p)) {
- if(($p[0]['origin']) && (! $parent_author_signature)) {
- q("insert into sign (`retract_iid`,`signed_text`,`signature`,`signer`) values (%d,'%s','%s','%s') ",
- $r[0]['id'],
- dbesc($signed_data),
- dbesc($sig),
- dbesc($diaspora_handle)
- );
+ if($p) {
+ if(($p[0]['item_flags'] & ITEM_ORIGIN) && (! $parent_author_signature)) {
+// FIXME so we can relay this
+// q("insert into sign (`retract_iid`,`signed_text`,`signature`,`signer`) values (%d,'%s','%s','%s') ",
+// $r[0]['id'],
+// dbesc($signed_data),
+// dbesc($sig),
+// dbesc($diaspora_handle)
+// );
// the existence of parent_author_signature would have meant the parent_author or owner
// is already relaying.
@@ -2118,15 +2166,9 @@ function diaspora_profile($importer,$xml,$msg) {
$image_url = "http://" . $handle_parts[1] . $image_url;
}
-/* $r = q("SELECT DISTINCT ( `resource-id` ) FROM `photo` WHERE `uid` = %d AND `contact-id` = %d AND `album` = 'Contact Photos' ",
- intval($importer['channel_id']),
- intval($contact['id'])
- );
- $oldphotos = ((count($r)) ? $r : null);*/
-
- require_once('include/Photo.php');
+ require_once('include/photo/photo_driver.php');
- $images = import_profile_photo($image_url,$importer['channel_id'],$contact['id']);
+ $images = import_profile_photo($image_url,$contact['xchan_hash']);
// Generic birthday. We don't know the timezone. The year is irrelevant.
@@ -2143,7 +2185,7 @@ function diaspora_profile($importer,$xml,$msg) {
// TODO: update name on item['author-name'] if the name changed. See consume_feed()
// Not doing this currently because D* protocol is scheduled for revision soon.
- $r = q("UPDATE `contact` SET `name` = '%s', `name-date` = '%s', `photo` = '%s', `thumb` = '%s', `micro` = '%s', `avatar-date` = '%s' , `bd` = '%s' WHERE `id` = %d AND `uid` = %d",
+/* $r = q("UPDATE `contact` SET `name` = '%s', `name-date` = '%s', `photo` = '%s', `thumb` = '%s', `micro` = '%s', `avatar-date` = '%s' , `bd` = '%s' WHERE `id` = %d AND `uid` = %d",
dbesc($name),
dbesc(datetime_convert()),
dbesc($images[0]),
@@ -2154,7 +2196,7 @@ function diaspora_profile($importer,$xml,$msg) {
intval($contact['id']),
intval($importer['channel_id'])
);
-
+*/
/* if($r) {
if($oldphotos) {
foreach($oldphotos as $ph) {
@@ -2171,9 +2213,9 @@ function diaspora_profile($importer,$xml,$msg) {
}
-function diaspora_share($me,$contact) {
+function diaspora_share($owner,$contact) {
$a = get_app();
- $myaddr = $me['channel_address'] . '@' . substr($a->get_baseurl(), strpos($a->get_baseurl(),'://') + 3);
+ $myaddr = $owner['channel_address'] . '@' . substr($a->get_baseurl(), strpos($a->get_baseurl(),'://') + 3);
if(! array_key_exists('xchan_hash',$contact)) {
$c = q("select * from xchan left join hubloc on xchan_hash = hubloc_hash where xchan_hash = '%s' limit 1",
@@ -2194,23 +2236,23 @@ function diaspora_share($me,$contact) {
'$recipient' => $theiraddr
));
- $slap = 'xml=' . urlencode(urlencode(diaspora_msg_build($msg,$me,$contact,$me['channel_prvkey'],$contact['xchan_pubkey'])));
+ $slap = 'xml=' . urlencode(urlencode(diaspora_msg_build($msg,$owner,$contact,$owner['channel_prvkey'],$contact['xchan_pubkey'])));
return(diaspora_transmit($owner,$contact,$slap, false));
}
-function diaspora_unshare($me,$contact) {
+function diaspora_unshare($owner,$contact) {
$a = get_app();
- $myaddr = $me['channel_address'] . '@' . substr($a->get_baseurl(), strpos($a->get_baseurl(),'://') + 3);
+ $myaddr = $owner['channel_address'] . '@' . substr($a->get_baseurl(), strpos($a->get_baseurl(),'://') + 3);
$tpl = get_markup_template('diaspora_retract.tpl');
$msg = replace_macros($tpl, array(
- '$guid' => $me['channel_guid'],
+ '$guid' => $owner['channel_guid'],
'$type' => 'Person',
'$handle' => $myaddr
));
- $slap = 'xml=' . urlencode(urlencode(diaspora_msg_build($msg,$me,$contact,$me['channel_prvkey'],$contact['xchan_pubkey'])));
+ $slap = 'xml=' . urlencode(urlencode(diaspora_msg_build($msg,$owner,$contact,$owner['channel_prvkey'],$contact['xchan_pubkey'])));
return(diaspora_transmit($owner,$contact,$slap, false));
}
@@ -2224,7 +2266,7 @@ function diaspora_send_status($item,$owner,$contact,$public_batch = false) {
$images = array();
$title = $item['title'];
- $body = bb2diaspora_itembody($item);
+ $body = bb2diaspora_itembody($item,true);
/*
// We're trying to match Diaspora's split message/photo protocol but
@@ -2386,13 +2428,13 @@ function diaspora_send_images($item,$owner,$contact,$images,$public_batch = fals
function diaspora_send_followup($item,$owner,$contact,$public_batch = false) {
$a = get_app();
- $myaddr = $owner['channel_address'] . '@' . substr($a->get_baseurl(), strpos($a->get_baseurl(),'://') + 3);
+ $myaddr = $owner['channel_address'] . '@' . get_app()->get_hostname();
$theiraddr = $contact['xchan_addr'];
// Diaspora doesn't support threaded comments, but some
// versions of Diaspora (i.e. Diaspora-pistos) support
// likes on comments
- if($item['verb'] === ACTIVITY_LIKE && $item['thr_parent']) {
+ if(($item['verb'] === ACTIVITY_LIKE || $item['verb'] === ACTIVITY_DISLIKE) && $item['thr_parent']) {
$p = q("select mid, parent_mid from item where mid = '%s' limit 1",
dbesc($item['thr_parent'])
);
@@ -2411,10 +2453,11 @@ function diaspora_send_followup($item,$owner,$contact,$public_batch = false) {
else
return;
- if($item['verb'] === ACTIVITY_LIKE) {
+
+ if(($item['verb'] === ACTIVITY_LIKE) && ($parent['mid'] === $parent['parent_mid'])) {
$tpl = get_markup_template('diaspora_like.tpl');
$like = true;
- $target_type = ( $parent['mid'] === $parent['parent_mid'] ? 'Post' : 'Comment');
+ $target_type = 'Post';
$positive = 'true';
if(($item_['item_restrict'] & ITEM_DELETED))
@@ -2426,13 +2469,19 @@ function diaspora_send_followup($item,$owner,$contact,$public_batch = false) {
}
if($item['diaspora_meta'] && ! $like) {
- $j = json_decode($item['diaspora_meta'],true);
- if($j) {
- $signed_text = $j['signed_text'];
- $text = $j['body'];
- $signer = $j['signer'];
- $authorsig = $j['signature'];
+ $diaspora_meta = json_decode($item['diaspora_meta'],true);
+ if($diaspora_meta) {
+ if(array_key_exists('iv',$diaspora_meta)) {
+ $key = get_config('system','prvkey');
+ $meta = json_decode(crypto_unencapsulate($diaspora_meta,$key),true);
+ }
+ else
+ $meta = $diaspora_meta;
}
+ $signed_text = $meta['signed_text'];
+ $authorsig = $meta['signature'];
+ $signer = $meta['signer'];
+ $text = $meta['body'];
}
else {
$text = bb2diaspora_itembody($item);
@@ -2471,7 +2520,7 @@ function diaspora_send_relay($item,$owner,$contact,$public_batch = false) {
$a = get_app();
- $myaddr = $owner['channel_address'] . '@' . substr($a->get_baseurl(), strpos($a->get_baseurl(),'://') + 3);
+ $myaddr = $owner['channel_address'] . '@' . get_app()->get_hostname();
$text = bb2diaspora_itembody($item);
@@ -2530,10 +2579,16 @@ function diaspora_send_relay($item,$owner,$contact,$public_batch = false) {
$diaspora_meta = (($item['diaspora_meta']) ? json_decode($item['diaspora_meta'],true) : '');
if($diaspora_meta) {
- $sender_signed_text = $diaspora_meta['signed_text'];
- $authorsig = $diaspora_meta['signature'];
- $handle = $diaspora_meta['signer'];
- $text = $diaspora_meta['body'];
+ if(array_key_exists('iv',$diaspora_meta)) {
+ $key = get_config('system','prvkey');
+ $meta = json_decode(crypto_unencapsulate($diaspora_meta,$key),true);
+ }
+ else
+ $meta = $diaspora_meta;
+ $sender_signed_text = $meta['signed_text'];
+ $authorsig = $meta['signature'];
+ $handle = $meta['signer'];
+ $text = $meta['body'];
}
else
logger('diaspora_send_relay: original author signature not found');
@@ -2565,7 +2620,7 @@ function diaspora_send_relay($item,$owner,$contact,$public_batch = false) {
if($relay_retract)
$sender_signed_text = $item['mid'] . ';' . $target_type;
elseif($like)
- $sender_signed_text = $item['mid'] . ';' . $target_type . ';' . $parent['mid'] . ';' . $positive . ';' . $handle;
+ $sender_signed_text = $positive . ';' . $item['mid'] . ';' . $target_type . ';' . $parent['mid'] . ';' . $handle;
else
$sender_signed_text = $item['mid'] . ';' . $parent['mid'] . ';' . $text . ';' . $handle;
}
@@ -2583,6 +2638,9 @@ function diaspora_send_relay($item,$owner,$contact,$public_batch = false) {
$parentauthorsig = base64_encode(rsa_sign($sender_signed_text,$owner['channel_prvkey'],'sha256'));
+ if(! $text)
+ logger('diaspora_send_relay: no text');
+
$msg = replace_macros($tpl,array(
'$guid' => xmlify($item['mid']),
'$parent_guid' => xmlify($parent['mid']),
@@ -2607,7 +2665,7 @@ function diaspora_send_relay($item,$owner,$contact,$public_batch = false) {
function diaspora_send_retraction($item,$owner,$contact,$public_batch = false) {
$a = get_app();
- $myaddr = $owner['nickname'] . '@' . substr($a->get_baseurl(), strpos($a->get_baseurl(),'://') + 3);
+ $myaddr = $owner['channel_address'] . '@' . get_app()->get_hostname();
// Check whether the retraction is for a top-level post or whether it's a relayable
if( $item['mid'] !== $item['parent_mid'] ) {
@@ -2638,11 +2696,11 @@ function diaspora_send_retraction($item,$owner,$contact,$public_batch = false) {
function diaspora_send_mail($item,$owner,$contact) {
$a = get_app();
- $myaddr = $owner['nickname'] . '@' . substr($a->get_baseurl(), strpos($a->get_baseurl(),'://') + 3);
+ $myaddr = $owner['channel_address'] . '@' . get_app()->get_hostname();
$r = q("select * from conv where id = %d and uid = %d limit 1",
intval($item['convid']),
- intval($item['uid'])
+ intval($item['channel_id'])
);
if(! count($r)) {
@@ -2659,16 +2717,25 @@ function diaspora_send_mail($item,$owner,$contact) {
'participant_handles' => xmlify($cnv['recips'])
);
+ if(array_key_exists('mail_flags',$item) && ($item['mail_flags'] & MAIL_OBSCURED)) {
+ $key = get_config('system','prvkey');
+// if($item['title'])
+// $item['title'] = crypto_unencapsulate(json_decode_plus($item['title']),$key);
+ if($item['body'])
+ $item['body'] = crypto_unencapsulate(json_decode_plus($item['body']),$key);
+ }
+
+
$body = bb2diaspora($item['body']);
$created = datetime_convert('UTC','UTC',$item['created'],'Y-m-d H:i:s \U\T\C');
- $signed_text = $item['guid'] . ';' . $cnv['guid'] . ';' . $body . ';'
+ $signed_text = $item['mid'] . ';' . $cnv['guid'] . ';' . $body . ';'
. $created . ';' . $myaddr . ';' . $cnv['guid'];
$sig = base64_encode(rsa_sign($signed_text,$owner['channel_prvkey'],'sha256'));
$msg = array(
- 'guid' => xmlify($item['guid']),
+ 'guid' => xmlify($item['mid']),
'parent_guid' => xmlify($cnv['guid']),
'parent_author_signature' => (($item['reply']) ? null : xmlify($sig)),
'author_signature' => xmlify($sig),
diff --git a/include/dir_fns.php b/include/dir_fns.php
index 5fad6567e..af6f78c01 100644
--- a/include/dir_fns.php
+++ b/include/dir_fns.php
@@ -38,7 +38,7 @@ function check_upstream_directory() {
*/
$directory = get_config('system','directory_server');
if ($directory) {
- $r = q("select * from site where site_url = '%s' and (site_flags & %d) ",
+ $r = q("select * from site where site_url = '%s' and (site_flags & %d) > 0 ",
dbesc($directory),
intval(DIRECTORY_MODE_PRIMARY|DIRECTORY_MODE_SECONDARY|DIRECTORY_MODE_STANDALONE)
);
@@ -51,12 +51,32 @@ function check_upstream_directory() {
}
function dir_sort_links() {
+ // Build urls without order and pubforums so it's easy to tack on the changed value
+ // Probably there's an easier way to do this
+
+ $current_order = (($_REQUEST['order']) ? $_REQUEST['order'] : 'normal');
+ $url = 'directory?';
+ $tmp = $_REQUEST;
+ unset($tmp['order']);
+ $sorturl = $url . http_build_query($tmp);
+ $tmp = $_REQUEST;
+
+ unset($tmp['pubforums']);
+ $forumsurl = $url . http_build_query($tmp);
$o = replace_macros(get_markup_template('dir_sort_links.tpl'), array(
- '$header' => t('Sort Options'),
+ '$header' => t('Directory Options'),
'$normal' => t('Alphabetic'),
'$reverse' => t('Reverse Alphabetic'),
- '$date' => t('Newest to Oldest')
+ '$date' => t('Newest to Oldest'),
+ '$reversedate' => t('Oldest to Newest'),
+ '$pubforums' => t('Public Forums Only'),
+ '$pubforumsonly' => x($_REQUEST,'pubforums') ? $_REQUEST['pubforums'] : '',
+ '$sort' => t('Sort'),
+ '$selected_sort' => $current_order,
+ '$sorturl' => $sorturl,
+ '$forumsurl' => $forumsurl,
+
));
return $o;
}
@@ -86,14 +106,14 @@ function sync_directories($dirmode) {
$realm = get_directory_realm();
if($realm == DIRECTORY_REALM) {
- $r = q("select * from site where (site_flags & %d) and site_url != '%s' and ( site_realm = '%s' or site_realm = '') ",
+ $r = q("select * from site where (site_flags & %d) > 0 and site_url != '%s' and ( site_realm = '%s' or site_realm = '') ",
intval(DIRECTORY_MODE_PRIMARY|DIRECTORY_MODE_SECONDARY),
dbesc(z_root()),
dbesc($realm)
);
}
else {
- $r = q("select * from site where (site_flags & %d) and site_url != '%s' and site_realm like '%s' ",
+ $r = q("select * from site where (site_flags & %d) > 0 and site_url != '%s' and site_realm like '%s' ",
intval(DIRECTORY_MODE_PRIMARY|DIRECTORY_MODE_SECONDARY),
dbesc(z_root()),
dbesc(protect_sprintf('%' . $realm . '%'))
@@ -107,7 +127,7 @@ function sync_directories($dirmode) {
$r = array(
'site_url' => DIRECTORY_FALLBACK_MASTER,
'site_flags' => DIRECTORY_MODE_PRIMARY,
- 'site_update' => '0000-00-00 00:00:00',
+ 'site_update' => NULL_DATE,
'site_directory' => DIRECTORY_FALLBACK_MASTER . '/dirsearch',
'site_realm' => DIRECTORY_REALM
);
@@ -120,7 +140,7 @@ function sync_directories($dirmode) {
dbesc($r[0]['site_realm'])
);
- $r = q("select * from site where (site_flags & %d) and site_url != '%s'",
+ $r = q("select * from site where (site_flags & %d) > 0 and site_url != '%s'",
intval(DIRECTORY_MODE_PRIMARY|DIRECTORY_MODE_SECONDARY),
dbesc(z_root())
);
@@ -137,7 +157,7 @@ function sync_directories($dirmode) {
// for brand new directory servers, only load the last couple of days. Everything before that will be repeats.
- $syncdate = (($rr['site_sync'] === '0000-00-00 00:00:00') ? datetime_convert('UTC','UTC','now - 2 days') : $rr['site_sync']);
+ $syncdate = (($rr['site_sync'] === NULL_DATE) ? datetime_convert('UTC','UTC','now - 2 days') : $rr['site_sync']);
$x = z_fetch_url($rr['site_directory'] . '?f=&sync=' . urlencode($syncdate));
if(! $x['success'])
@@ -146,7 +166,7 @@ function sync_directories($dirmode) {
if((! $j['transactions']) || (! is_array($j['transactions'])))
continue;
- q("update site set site_sync = '%s' where site_url = '%s' limit 1",
+ q("update site set site_sync = '%s' where site_url = '%s'",
dbesc(datetime_convert()),
dbesc($rr['site_url'])
);
@@ -212,7 +232,7 @@ function update_directory_entry($ud) {
function local_dir_update($uid,$force) {
- logger('local_dir_update', LOGGER_DEBUG);
+ logger('local_dir_update: uid: ' . $uid, 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)
@@ -267,7 +287,7 @@ function local_dir_update($uid,$force) {
if($new_flags != $r[0]['xchan_flags']) {
- $r = q("update xchan set xchan_flags = %d where xchan_hash = '%s' limit 1",
+ $r = q("update xchan set xchan_flags = %d where xchan_hash = '%s'",
intval($new_flags),
dbesc($p[0]['channel_hash'])
);
@@ -281,10 +301,10 @@ function local_dir_update($uid,$force) {
}
else {
// they may have made it private
- $r = q("delete from xprof where xprof_hash = '%s' limit 1",
+ $r = q("delete from xprof where xprof_hash = '%s'",
dbesc($hash)
);
- $r = q("delete from xtag where xtag_hash = '%s' limit 1",
+ $r = q("delete from xtag where xtag_hash = '%s'",
dbesc($hash)
);
}
diff --git a/include/directory.php b/include/directory.php
index 60070f7ec..a7324a99a 100644
--- a/include/directory.php
+++ b/include/directory.php
@@ -42,7 +42,7 @@ function directory_run($argv, $argc){
local_dir_update($argv[1],$force);
- q("update channel set channel_dirdate = '%s' where channel_id = %d limit 1",
+ q("update channel set channel_dirdate = '%s' where channel_id = %d",
dbesc(datetime_convert()),
intval($channel['channel_id'])
);
@@ -85,7 +85,7 @@ function directory_run($argv, $argc){
);
}
else {
- q("update channel set channel_dirdate = '%s' where channel_id = %d limit 1",
+ q("update channel set channel_dirdate = '%s' where channel_id = %d",
dbesc(datetime_convert()),
intval($channel['channel_id'])
);
diff --git a/include/enotify.php b/include/enotify.php
index 2503f9ab0..f3eb80117 100644
--- a/include/enotify.php
+++ b/include/enotify.php
@@ -18,7 +18,7 @@ function notification($params) {
}
if($params['to_xchan']) {
$y = q("select channel.*, account.* from channel left join account on channel_account_id = account_id
- where channel_hash = '%s' and not (channel_pageflags & %d) limit 1",
+ where channel_hash = '%s' and not (channel_pageflags & %d)>0 limit 1",
dbesc($params['to_xchan']),
intval(PAGE_REMOVED)
);
@@ -394,7 +394,7 @@ function notification($params) {
if(($a->language === 'en' || (! $a->language)) && strpos($msg,', '))
$msg = substr($msg,strpos($msg,', ')+1);
- $r = q("update notify set msg = '%s' where id = %d and uid = %d limit 1",
+ $r = q("update notify set msg = '%s' where id = %d and uid = %d",
dbesc($msg),
intval($notify_id),
intval($datarray['uid'])
diff --git a/include/event.php b/include/event.php
index 0c29d26f6..1ed541d99 100644
--- a/include/event.php
+++ b/include/event.php
@@ -45,6 +45,56 @@ function format_event_html($ev) {
return $o;
}
+
+
+function ical_wrapper($ev) {
+
+ if(! ((is_array($ev)) && count($ev)))
+ return '';
+
+ $o .= "BEGIN:VCALENDAR";
+ $o .= "\nVERSION:2.0";
+ $o .= "\nMETHOD:PUBLISH";
+ $o .= "\nPRODID:-//" . get_config('system','sitename') . "//" . RED_PLATFORM . "//" . strtoupper(get_app()->language). "\n";
+ if(array_key_exists('start',$ev))
+ $o .= format_event_ical($ev);
+ else {
+ foreach($ev as $e) {
+ $o .= format_event_ical($e);
+ }
+ }
+ $o .= "\nEND:VCALENDAR\n";
+
+ return $o;
+}
+
+function format_event_ical($ev) {
+
+ $o = '';
+
+ $o .= "\nBEGIN:VEVENT";
+ if($ev['start'])
+ $o .= "\nDTSTART:" . datetime_convert('UTC','UTC', $ev['start'],'Ymd\\THis' . (($ev['adjust']) ? '\\Z' : ''));
+ if($ev['finish'] && ! $ev['nofinish'])
+ $o .= "\nDTEND:" . datetime_convert('UTC','UTC', $ev['finish'],'Ymd\\THis' . (($ev['adjust']) ? '\\Z' : ''));
+ if($ev['summary'])
+ $o .= "\nSUMMARY:" . format_ical_text($ev['summary']);
+ if($ev['location'])
+ $o .= "\nLOCATION:" . format_ical_text($ev['location']);
+ if($ev['description'])
+ $o .= "\nDESCRIPTION:" . format_ical_text($ev['description']);
+ $o .= "\nEND:VEVENT\n";
+ return $o;
+}
+
+function format_ical_text($s) {
+
+ require_once('include/bbcode.php');
+ require_once('include/html2plain.php');
+ return(wordwrap(html2plain(bbcode($s)),72,"\n ",true));
+}
+
+
function format_event_bbcode($ev) {
$o = '';
@@ -183,7 +233,7 @@ function event_store_event($arr) {
`allow_gid` = '%s',
`deny_cid` = '%s',
`deny_gid` = '%s'
- WHERE `id` = %d AND `uid` = %d LIMIT 1",
+ WHERE `id` = %d AND `uid` = %d",
dbesc($arr['edited']),
dbesc($arr['start']),
@@ -284,7 +334,7 @@ function event_addtocal($item_id, $uid) {
$event = event_store_event($ev);
if($event) {
- $r = q("update item set resource_id = '%s', resource_type = 'event' where id = %d and uid = %d limit 1",
+ $r = q("update item set resource_id = '%s', resource_type = 'event' where id = %d and uid = %d",
dbesc($event['event_hash']),
intval($item['id']),
intval($channel['channel_id'])
@@ -359,7 +409,7 @@ function event_store_item($arr,$event) {
$private = (($arr['allow_cid'] || $arr['allow_gid'] || $arr['deny_cid'] || $arr['deny_gid']) ? 1 : 0);
- q("UPDATE item SET title = '%s', body = '%s', object = '%s', allow_cid = '%s', allow_gid = '%s', deny_cid = '%s', deny_gid = '%s', edited = '%s', item_flags = %d, item_private = %d WHERE id = %d AND uid = %d LIMIT 1",
+ q("UPDATE item SET title = '%s', body = '%s', object = '%s', allow_cid = '%s', allow_gid = '%s', deny_cid = '%s', deny_gid = '%s', edited = '%s', item_flags = %d, item_private = %d WHERE id = %d AND uid = %d",
dbesc($arr['summary']),
dbesc($prefix . format_event_bbcode($arr)),
dbesc($object),
@@ -374,14 +424,33 @@ function event_store_item($arr,$event) {
intval($arr['uid'])
);
+
+ $s = q("delete from term where oid = %d and otype = %d",
+ intval($r[0]['id']),
+ intval(TERM_OBJ_POST)
+ );
+
+ if(($arr['term']) && (is_array($arr['term']))) {
+ foreach($arr['term'] as $t) {
+ q("insert into term (uid,oid,otype,type,term,url)
+ values(%d,%d,%d,%d,'%s','%s') ",
+ intval($arr['uid']),
+ intval($r[0]['id']),
+ intval(TERM_OBJ_POST),
+ intval($t['type']),
+ dbesc($t['term']),
+ dbesc($t['url'])
+ );
+ }
+ }
+
$item_id = $r[0]['id'];
call_hooks('event_updated', $event['id']);
return $item_id;
}
else {
- $z = q("select * from channel where channel_hash = '%s' and channel_id = %d limit 1",
- dbesc($event['event_xchan']),
+ $z = q("select * from channel where channel_id = %d limit 1",
intval($arr['uid'])
);
@@ -393,7 +462,7 @@ function event_store_item($arr,$event) {
$item_arr['id'] = $item['id'];
}
else {
- $wall = (($z) ? true : false);
+ $wall = (($z[0]['channel_hash'] == $event['event_xchan']) ? true : false);
$item_flags = ITEM_THREAD_TOP;
if($wall) {
@@ -424,6 +493,10 @@ function event_store_item($arr,$event) {
$item_arr['item_private'] = $private;
$item_arr['verb'] = ACTIVITY_POST;
+
+ if(array_key_exists('term',$arr))
+ $item_arr['term'] = $arr['term'];
+
$item_arr['resource_type'] = 'event';
$item_arr['resource_id'] = $event['event_hash'];
@@ -431,7 +504,14 @@ function event_store_item($arr,$event) {
$item_arr['body'] = $prefix . format_event_bbcode($arr);
- $item_arr['plink'] = z_root() . '/channel/' . $z[0]['channel_address'] . '/?f=&mid=' . $item_arr['mid'];
+ // if it's local send the permalink to the channel page.
+ // otherwise we'll fallback to /display/$message_id
+
+ if($wall)
+ $item_arr['plink'] = z_root() . '/channel/' . $z[0]['channel_address'] . '/?f=&mid=' . $item_arr['mid'];
+ else
+ $item_arr['plink'] = z_root() . '/display/' . $item_arr['mid'];
+
$x = q("select * from xchan where xchan_hash = '%s' limit 1",
dbesc($arr['event_xchan'])
diff --git a/include/expire.php b/include/expire.php
index 442914a39..a229bd4ac 100644
--- a/include/expire.php
+++ b/include/expire.php
@@ -7,9 +7,10 @@ function expire_run($argv, $argc){
cli_startup();
- $r = q("select id from item where (item_restrict & %d) and not (item_restrict & %d) and changed < UTC_TIMESTAMP() - INTERVAL 10 DAY",
+ $r = q("select id from item where (item_restrict & %d)>0 and not (item_restrict & %d)>0 and changed < %s - INTERVAL %s",
intval(ITEM_DELETED),
- intval(ITEM_PENDING_REMOVE)
+ intval(ITEM_PENDING_REMOVE),
+ db_utcnow(), db_quoteinterval('10 DAY')
);
if($r) {
foreach($r as $rr) {
@@ -19,8 +20,9 @@ function expire_run($argv, $argc){
// physically remove anything that has been deleted for more than two months
- $r = q("delete from item where ( item_restrict & %d ) and changed < UTC_TIMESTAMP() - INTERVAL 36 DAY",
- intval(ITEM_PENDING_REMOVE)
+ $r = q("delete from item where ( item_restrict & %d )>0 and changed < %s - INTERVAL %s",
+ intval(ITEM_PENDING_REMOVE),
+ db_utcnow(), db_quoteinterval('36 DAY')
);
// make this optional as it could have a performance impact on large sites
diff --git a/include/externals.php b/include/externals.php
index ad2c71ac9..b0f853dc6 100644
--- a/include/externals.php
+++ b/include/externals.php
@@ -14,6 +14,8 @@ function externals_run($argv, $argc){
$total = 0;
$attempts = 0;
+ logger('externals: startup', LOGGER_DEBUG);
+
// pull in some public posts
@@ -25,7 +27,8 @@ function externals_run($argv, $argc){
$url = $arr['url'];
}
else {
- $r = q("select site_url, site_pull from site where site_url != '%s' and site_flags != %d order by rand() limit 1",
+ $randfunc = db_getfunc('RAND');
+ $r = q("select site_url, site_pull from site where site_url != '%s' and site_flags != %d order by $randfunc limit 1",
dbesc(z_root()),
intval(DIRECTORY_MODE_STANDALONE)
);
@@ -60,7 +63,7 @@ function externals_run($argv, $argc){
}
if($url) {
- if($r[0]['site_pull'] !== '0000-00-00 00:00:00')
+ if($r[0]['site_pull'] !== NULL_DATE)
$mindate = urlencode(datetime_convert('','',$r[0]['site_pull'] . ' - 1 day'));
else {
$days = get_config('externals','since_days');
@@ -76,7 +79,7 @@ function externals_run($argv, $argc){
$x = z_fetch_url($feedurl);
if(($x) && ($x['success'])) {
- q("update site set site_pull = '%s' where site_url = '%s' limit 1",
+ q("update site set site_pull = '%s' where site_url = '%s'",
dbesc(datetime_convert()),
dbesc($url)
);
@@ -85,6 +88,8 @@ function externals_run($argv, $argc){
if($j['success'] && $j['messages']) {
$sys = get_sys_channel();
foreach($j['messages'] as $message) {
+ // on these posts, clear any route info.
+ $message['route'] = '';
$results = process_delivery(array('hash' => 'undefined'), get_item_elements($message),
array(array('hash' => $sys['xchan_hash'])), false, true);
$total ++;
@@ -97,12 +102,12 @@ $z = null;
$flag_bits = ITEM_WALL|ITEM_ORIGIN|ITEM_UPLINK;
// preserve the source
- $r = q("update item set source_xchan = owner_xchan where id = %d limit 1",
+ $r = q("update item set source_xchan = owner_xchan where id = %d",
intval($z[0]['id'])
);
$r = q("update item set item_flags = ( item_flags | %d ), owner_xchan = '%s'
- where id = %d limit 1",
+ where id = %d",
intval($flag_bits),
dbesc($sys['xchan_hash']),
intval($z[0]['id'])
diff --git a/include/features.php b/include/features.php
index 7530158ec..7009b1d6b 100644
--- a/include/features.php
+++ b/include/features.php
@@ -45,9 +45,10 @@ function get_features() {
t('Post Composition Features'),
// array('richtext', t('Richtext Editor'), t('Enable richtext editor')),
array('markdown', t('Use Markdown'), t('Allow use of "Markdown" to format posts')),
- array('preview', t('Post Preview'), t('Allow previewing posts and comments before publishing them')),
+// 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 optional encryption of content end-to-end with a shared secret key')),
+ array('adult_photo_flagging', t('Flag Adult Photos'), t('Provide photo edit option to hide adult photos from default album view')),
),
// Network Tools
@@ -66,7 +67,7 @@ function get_features() {
'tools' => array(
t('Post/Comment Tools'),
// array('multi_delete', t('Multiple Deletion'), t('Select and delete multiple posts/comments at once')),
- array('edit_posts', t('Edit Sent Posts'), t('Edit and correct posts and comments after sending')),
+// array('edit_posts', t('Edit Sent Posts'), t('Edit and correct posts and comments after sending')),
array('commtag', t('Tagging'), t('Ability to tag existing posts')),
array('categories', t('Post Categories'), t('Add categories to your posts')),
array('filing', t('Saved Folders'), t('Ability to file posts under folders')),
diff --git a/include/fixd.php b/include/fixd.php
new file mode 100644
index 000000000..bce5eb348
--- /dev/null
+++ b/include/fixd.php
@@ -0,0 +1,33 @@
+<?php
+
+ require_once('include/cli_startup.php');
+
+ cli_startup();
+
+ $rand = db_getfunc('RAND');
+ $r = q("select xchan_addr, hubloc_url from xchan left join hubloc on hubloc_hash = xchan_hash where xchan_network like '%%diaspora%%' order by $rand");
+
+ if(! $r)
+ killme();
+
+ require_once('include/network.php');
+ $total = 0;
+ foreach ($r as $rr) {
+ if($rr['hubloc_url']) {
+ continue;
+ }
+ $total ++;
+ }
+
+ print $total . "\n";
+
+ foreach ($r as $rr) {
+ if($rr['hubloc_url']) {
+ continue;
+ }
+
+ $webbie = $rr['xchan_addr'];
+ print $webbie . ' ';
+
+ discover_by_webbie($webbie);
+ }
diff --git a/include/follow.php b/include/follow.php
index 18a9e66ea..1abd0e3b9 100644
--- a/include/follow.php
+++ b/include/follow.php
@@ -13,12 +13,17 @@ require_once('include/zot.php');
function new_contact($uid,$url,$channel,$interactive = false, $confirm = false) {
+
+
$result = array('success' => false,'message' => '');
$a = get_app();
$is_red = false;
$is_http = ((strpos($url,'://') !== false) ? true : false);
+ if($is_http && substr($url,-1,1) === '/')
+ $url = substr($url,0,-1);
+
if(! allowed_url($url)) {
$result['message'] = t('Channel is blocked on this site.');
return $result;
@@ -32,7 +37,7 @@ function new_contact($uid,$url,$channel,$interactive = false, $confirm = false)
// check service class limits
- $r = q("select count(*) as total from abook where abook_channel = %d and not (abook_flags & %d) ",
+ $r = q("select count(*) as total from abook where abook_channel = %d and not (abook_flags & %d)>0 ",
intval($uid),
intval(ABOOK_FLAG_SELF)
);
@@ -59,9 +64,16 @@ function new_contact($uid,$url,$channel,$interactive = false, $confirm = false)
$j = json_decode($ret['body'],true);
}
+ $my_perms = get_channel_default_perms($uid);
+
if($is_red && $j) {
- $my_perms = PERMS_W_STREAM|PERMS_W_MAIL;
+ $role = get_pconfig($uid,'system','permissions_role');
+ if($role) {
+ $x = get_role_perms($role);
+ if($x['perms_follow'])
+ $my_perms = $x['perms_follow'];
+ }
logger('follow: ' . $url . ' ' . print_r($j,true), LOGGER_DEBUG);
@@ -74,7 +86,7 @@ function new_contact($uid,$url,$channel,$interactive = false, $confirm = false)
// Premium channel, set confirm before callback to avoid recursion
- if(array_key_exists('connect_url',$j) && (! $confirm))
+ if(array_key_exists('connect_url',$j) && ($interactive) && (! $confirm))
goaway(zid($j['connect_url']));
@@ -125,7 +137,6 @@ function new_contact($uid,$url,$channel,$interactive = false, $confirm = false)
}
}
- $my_perms = 0;
$their_perms = 0;
$xchan_hash = '';
@@ -136,7 +147,7 @@ function new_contact($uid,$url,$channel,$interactive = false, $confirm = false)
if(! $r) {
// attempt network auto-discovery
- if(strpos($url,'@')) {
+ if(strpos($url,'@') && (! $is_http)) {
$r = discover_by_webbie($url);
}
elseif($is_http) {
@@ -152,7 +163,12 @@ function new_contact($uid,$url,$channel,$interactive = false, $confirm = false)
if($r) {
$xchan_hash = $r[0]['xchan_hash'];
$their_perms = 0;
- $my_perms = PERMS_W_STREAM|PERMS_W_MAIL;
+ $role = get_pconfig($uid,'system','permissions_role');
+ if($role) {
+ $x = get_role_perms($role);
+ if($x['perms_follow'])
+ $my_perms = $x['perms_follow'];
+ }
}
}
@@ -187,8 +203,9 @@ function new_contact($uid,$url,$channel,$interactive = false, $confirm = false)
return $result;
}
- $r = q("select count(*) as total from abook where abook_account = %d and ( abook_flags & ABOOK_FLAG_FEED )",
- intval($aid)
+ $r = q("select count(*) as total from abook where abook_account = %d and ( abook_flags & %d )>0",
+ intval($aid),
+ intval(ABOOK_FLAG_FEED)
);
if($r)
$total_feeds = $r[0]['total'];
@@ -209,7 +226,7 @@ function new_contact($uid,$url,$channel,$interactive = false, $confirm = false)
intval($uid)
);
if($r) {
- $x = q("update abook set abook_their_perms = %d where abook_id = %d limit 1",
+ $x = q("update abook set abook_their_perms = %d where abook_id = %d",
intval($their_perms),
intval($r[0]['abook_id'])
);
diff --git a/include/group.php b/include/group.php
index acb65df28..28cf5d80d 100644
--- a/include/group.php
+++ b/include/group.php
@@ -18,10 +18,11 @@ function group_add($uid,$name,$public = 0) {
intval($r)
);
if(count($z) && $z[0]['deleted']) {
- $r = q("UPDATE `groups` 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)
- );
+ );*/
+ q('UPDATE groups SET deleted = 0 WHERE id = %d', intval($z[0]['id']));
notice( t('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.') . EOL);
}
return true;
@@ -107,7 +108,7 @@ function group_rmv($uid,$name) {
);
// remove group
- $r = q("UPDATE `groups` SET `deleted` = 1 WHERE `uid` = %d AND `name` = '%s' LIMIT 1",
+ $r = q("UPDATE `groups` SET `deleted` = 1 WHERE `uid` = %d AND `name` = '%s'",
intval($uid),
dbesc($name)
);
@@ -152,7 +153,7 @@ function group_rmv_member($uid,$name,$member) {
return false;
if(! ( $uid && $gid && $member))
return false;
- $r = q("DELETE FROM `group_member` WHERE `uid` = %d AND `gid` = %d AND xchan = '%s' LIMIT 1 ",
+ $r = q("DELETE FROM `group_member` WHERE `uid` = %d AND `gid` = %d AND xchan = '%s' ",
intval($uid),
intval($gid),
dbesc($member)
@@ -199,7 +200,7 @@ 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 ( xchan_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 )>0 and not ( abook_flags & %d )>0 and not ( abook_flags & %d )>0 ORDER BY xchan_name ASC ",
intval($gid),
intval(local_user()),
intval(local_user()),
@@ -280,6 +281,7 @@ function group_side($every="connections",$each="group",$edit = false, $group_id
$groups[] = array(
'id' => $rr['id'],
+ 'enc_cid' => base64url_encode($cid),
'cid' => $cid,
'text' => $rr['name'],
'selected' => $selected,
diff --git a/include/html2bbcode.php b/include/html2bbcode.php
index df430e6c7..9ffc85a82 100644
--- a/include/html2bbcode.php
+++ b/include/html2bbcode.php
@@ -16,7 +16,7 @@ function node2bbcode(&$doc, $oldnode, $attributes, $startbb, $endbb)
function node2bbcodesub(&$doc, $oldnode, $attributes, $startbb, $endbb)
{
- $savestart = str_replace('$', '%', $startbb);
+ $savestart = str_replace('$', '\x01', $startbb);
$replace = false;
$xpath = new DomXPath($doc);
@@ -37,7 +37,7 @@ function node2bbcodesub(&$doc, $oldnode, $attributes, $startbb, $endbb)
foreach ($attributes as $attribute => $value) {
- $startbb = str_replace('%'.++$i, '$1', $startbb);
+ $startbb = str_replace('\x01'.++$i, '$1', $startbb);
if (strpos('*'.$startbb, '$1') > 0) {
@@ -283,8 +283,9 @@ function html2bbcode($message)
array('[b]', '[/b]', '[i]', '[/i]'), $message);
// Handling Yahoo style of mails
- $message = str_replace('[hr][b]From:[/b]', '[quote][b]From:[/b]', $message);
+ // $message = str_replace('[hr][b]From:[/b]', '[quote][b]From:[/b]', $message);
+ $message = htmlspecialchars($message,ENT_COMPAT,'UTF-8',false);
return(trim($message));
}
diff --git a/include/hubloc.php b/include/hubloc.php
index 566875ce9..b5a3d47c5 100644
--- a/include/hubloc.php
+++ b/include/hubloc.php
@@ -33,7 +33,7 @@ function prune_hub_reinstalls() {
// allow some slop period, say 3 days - just in case this is a glitch or transient occurrence
// Then remove any hublocs pointing to the oldest entry.
- if($d1 < $d2) {
+ if(($d1 < $d2) && ($x[0]['hubloc_sitekey'])) {
logger('prune_hub_reinstalls: removing dead hublocs at ' . $rr['site_url']);
$y = q("delete from hubloc where hubloc_sitekey = '%s'",
dbesc($x[0]['hubloc_sitekey'])
@@ -42,4 +42,220 @@ function prune_hub_reinstalls() {
}
}
}
+}
+
+function remove_obsolete_hublocs() {
+
+ logger('remove_obsolete_hublocs',LOGGER_DEBUG);
+
+ // Get rid of any hublocs which are ours but aren't valid anymore -
+ // e.g. they point to a different and perhaps transient URL that we aren't using.
+
+ // I need to stress that this shouldn't happen. fix_system_urls() fixes hublocs
+ // when it discovers the URL has changed. So it's unclear how we could end up
+ // with URLs pointing to the old site name. But it happens. This may be an artifact
+ // of an old bug or maybe a regression in some newer code. In any event, they
+ // mess up communications and we have to take action if we find any.
+
+ // First make sure we have any hublocs (at all) with this URL and sitekey.
+ // We don't want to perform this operation while somebody is in the process
+ // of renaming their hub or installing certs.
+
+ $r = q("select hubloc_id from hubloc where hubloc_url = '%s' and hubloc_sitekey = '%s'",
+ dbesc(z_root()),
+ dbesc(get_config('system','pubkey'))
+ );
+ if((! $r) || (! count($r)))
+ return;
+
+ $channels = array();
+
+ // Good. We have at least one *valid* hubloc.
+
+ // Do we have any invalid ones?
+
+ $r = q("select hubloc_id from hubloc where hubloc_sitekey = '%s' and hubloc_url != '%s'",
+ dbesc(get_config('system','pubkey')),
+ dbesc(z_root())
+ );
+ $p = q("select hubloc_id from hubloc where hubloc_sitekey != '%s' and hubloc_url = '%s'",
+ dbesc(get_config('system','pubkey')),
+ dbesc(z_root())
+ );
+ if(is_array($r) && is_array($p))
+ $r = array_merge($r,$p);
+
+ if(! $r)
+ return;
+
+ // We've got invalid hublocs. Get rid of them.
+
+ logger('remove_obsolete_hublocs: removing ' . count($r) . ' hublocs.');
+
+ $interval = ((get_config('system','delivery_interval') !== false)
+ ? intval(get_config('system','delivery_interval')) : 2 );
+
+ foreach($r as $rr) {
+ q("update hubloc set hubloc_flags = (hubloc_flags | %d) where hubloc_id = %d",
+ intval(HUBLOC_FLAGS_DELETED),
+ intval($rr['hubloc_id'])
+ );
+
+ $x = q("select channel_id from channel where channel_hash = '%s' limit 1",
+ dbesc($rr['hubloc_hash'])
+ );
+ if($x) {
+ proc_run('php','include/notifier.php','location',$x[0]['channel_id']);
+ if($interval)
+ @time_sleep_until(microtime(true) + (float) $interval);
+ }
+ }
+}
+
+
+// This actually changes other structures to match the given (presumably current) hubloc primary selection
+
+function hubloc_change_primary($hubloc) {
+
+ if(! is_array($hubloc)) {
+ logger('no hubloc');
+ return false;
+ }
+ if(! ($hubloc['hubloc_flags'] & HUBLOC_FLAGS_PRIMARY)) {
+ logger('not primary: ' . $hubloc['hubloc_url']);
+ return false;
+ }
+
+ logger('setting primary: ' . $hubloc['hubloc_url']);
+
+ // See if there's a local channel
+
+ $r = q("select channel_id, channel_primary from channel where channel_hash = '%s' limit 1",
+ dbesc($hubloc['hubloc_hash'])
+ );
+ if(($r) && (! $r[0]['channel_primary'])) {
+ q("update channel set channel_primary = 1 where channel_id = %d",
+ intval($r[0]['channel_id'])
+ );
+ }
+
+ // do we even have an xchan for this hubloc and if so is it already set as primary?
+
+ $r = q("select * from xchan where xchan_hash = '%s' limit 1",
+ dbesc($hubloc['hubloc_hash'])
+ );
+ if(! $r) {
+ logger('xchan not found');
+ return false;
+ }
+ if($r[0]['xchan_addr'] === $hubloc['hubloc_addr']) {
+ logger('xchan already changed');
+ return false;
+ }
+
+ $url = $hubloc['hubloc_url'];
+ $lwebbie = substr($hubloc['hubloc_addr'],0,strpos($hubloc['hubloc_addr'],'@'));
+
+ $r = q("update xchan set xchan_addr = '%s', xchan_url = '%s', xchan_follow = '%s', xchan_connurl = '%s' where xchan_hash = '%s'",
+ dbesc($hubloc['hubloc_addr']),
+ dbesc($url . '/channel/' . $lwebbie),
+ dbesc($url . '/follow?f=&url=%s'),
+ dbesc($url . '/poco/' . $lwebbie),
+ dbesc($hubloc['hubloc_hash'])
+ );
+ if(! $r)
+ logger('xchan_update failed.');
+
+ logger('primary hubloc changed.' . print_r($hubloc,true),LOGGER_DEBUG);
+ return true;
+
+}
+
+
+function xchan_store($arr) {
+
+ if(! $arr['hash'])
+ $arr['hash'] = $arr['guid'];
+ if(! $arr['hash'])
+ return false;
+
+ $r = q("select * from xchan where xchan_hash = '%s' limit 1",
+ dbesc($arr['hash'])
+ );
+ if($r)
+ return true;
+
+ if(! $arr['network'])
+ $arr['network'] = 'unknown';
+ if(! $arr['name'])
+ $arr['name'] = 'unknown';
+ if(! $arr['url'])
+ $arr['url'] = z_root();
+ if(! $arr['photo'])
+ $arr['photo'] = get_default_profile_photo();
+
+ $r = q("insert into xchan ( xchan_hash, xchan_guid, xchan_guid_sig, xchan_pubkey, xchan_addr, xchan_url, xchan_connurl, xchan_follow, xchan_connpage, xchan_name, xchan_network, xchan_instance_url, xchan_flags, xchan_name_date ) values ('%s', '%s', '%s', '%s', '%s', '%s', '%s', '%s', '%s','%s','%s','%s',%d,'%s') ",
+ dbesc($arr['hash']),
+ dbesc($arr['guid']),
+ dbesc($arr['guid_sig']),
+ dbesc($arr['pubkey']),
+ dbesc($arr['address']),
+ dbesc($arr['url']),
+ dbesc($arr['connurl']),
+ dbesc($arr['follow']),
+ dbesc($arr['connpage']),
+ dbesc($arr['name']),
+ dbesc($arr['network']),
+ dbesc($arr['instance_url']),
+ intval($arr['flags']),
+ dbesc(datetime_convert())
+ );
+ if(! $r)
+ return $r;
+
+ $photos = import_profile_photo($arr['photo'],$arr['hash']);
+ $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_hash = '%s'",
+ dbesc(datetime_convert()),
+ dbesc($photos[0]),
+ dbesc($photos[1]),
+ dbesc($photos[2]),
+ dbesc($photos[3]),
+ dbesc($arr['hash'])
+ );
+ return $r;
+
+}
+
+
+function xchan_fetch($arr) {
+
+ $key = '';
+ if($arr['hash']) {
+ $key = 'xchan_hash';
+ $v = $arr['hash'];
+ }
+ elseif($arr['guid']) {
+ $key = 'xchan_guid';
+ $v = $arr['guid'];
+ }
+ elseif($arr['address']) {
+ $key = 'xchan_addr';
+ $v = $arr['address'];
+ }
+
+ if(! $key)
+ return false;
+
+ $r = q("select * from xchan where $key = '$v'");
+ if(! $r)
+ return false;
+
+ $ret = array();
+ foreach($r as $k => $v) {
+ if($k === 'xchan_addr')
+ $ret['address'] = $v;
+ else
+ $ret[str_replace('xchan_','',$k)] = $v;
+ }
+ return $ret;
} \ No newline at end of file
diff --git a/include/identity.php b/include/identity.php
index 282d323be..7ae8e48f6 100644
--- a/include/identity.php
+++ b/include/identity.php
@@ -22,15 +22,18 @@ 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 and not ( channel_pageflags & %d ) ",
+ $r = q("select count(channel_id) as total from channel where channel_account_id = %d and not ( channel_pageflags & %d )>0 ",
intval($account_id),
intval(PAGE_REMOVED)
);
if(! ($r && count($r))) {
+ $ret['total_identities'] = 0;
$ret['message'] = t('Unable to obtain identity information from database');
return $ret;
}
+ $ret['total_identities'] = intval($r[0]['total']);
+
if(! service_class_allows($account_id,'total_identities',$r[0]['total'])) {
$result['message'] .= upgrade_message();
return $result;
@@ -101,7 +104,7 @@ function create_sys_channel() {
}
function get_sys_channel() {
- $r = q("select * from channel left join xchan on channel_hash = xchan_hash where (channel_pageflags & %d) limit 1",
+ $r = q("select * from channel left join xchan on channel_hash = xchan_hash where (channel_pageflags & %d)>0 limit 1",
intval(PAGE_SYSTEM)
);
if($r)
@@ -129,7 +132,7 @@ function is_sys_channel($channel_id) {
*/
function channel_total() {
- $r = q("select channel_id from channel where not ( channel_pageflags & %d )",
+ $r = q("select channel_id from channel where not ( channel_pageflags & %d )>0",
intval(PAGE_REMOVED)
);
@@ -166,10 +169,13 @@ function create_identity($arr) {
$ret['message'] = t('No account identifier');
return $ret;
}
- $ret=identity_check_service_class($arr['account_id']);
+ $ret = identity_check_service_class($arr['account_id']);
if (!$ret['success']) {
return $ret;
}
+ // save this for auto_friending
+ $total_identities = $ret['total_identities'];
+
$nick = mb_strtolower(trim($arr['nickname']));
if(! $nick) {
@@ -215,22 +221,42 @@ function create_identity($arr) {
if(array_key_exists('primary', $arr))
$primary = intval($arr['primary']);
+
$perms_sql = '';
- $defperms = site_default_perms();
+ $role_permissions = null;
$global_perms = get_perms();
- foreach($defperms as $p => $v) {
- $perms_keys .= ', ' . $global_perms[$p][0];
- $perms_vals .= ', ' . intval($v);
+
+ if(array_key_exists('permissions_role',$arr) && $arr['permissions_role']) {
+ $role_permissions = get_role_perms($arr['permissions_role']);
+
+ if($role_permissions) {
+ foreach($role_permissions as $p => $v) {
+ if(strpos($p,'channel_') !== false) {
+ $perms_keys .= ', ' . $p;
+ $perms_vals .= ', ' . intval($v);
+ }
+ if($p === 'directory_publish')
+ $publish = intval($v);
+ }
+ }
+ }
+ else {
+ $defperms = site_default_perms();
+ foreach($defperms as $p => $v) {
+ $perms_keys .= ', ' . $global_perms[$p][0];
+ $perms_vals .= ', ' . intval($v);
+ }
}
+
$expire = get_config('system', 'default_expire_days');
$expire = (($expire===false)? '0': $expire);
-
+
$r = q("insert into channel ( channel_account_id, channel_primary,
channel_name, channel_address, channel_guid, channel_guid_sig,
- channel_hash, channel_prvkey, channel_pubkey, channel_pageflags, channel_expire_days $perms_keys )
- values ( %d, %d, '%s', '%s', '%s', '%s', '%s', '%s', '%s', %d, %d $perms_vals ) ",
+ channel_hash, channel_prvkey, channel_pubkey, channel_pageflags, channel_expire_days, channel_timezone $perms_keys )
+ values ( %d, %d, '%s', '%s', '%s', '%s', '%s', '%s', '%s', %d, %d, '%s' $perms_vals ) ",
intval($arr['account_id']),
intval($primary),
@@ -242,12 +268,11 @@ function create_identity($arr) {
dbesc($key['prvkey']),
dbesc($key['pubkey']),
intval($pageflags),
- intval($expire)
+ intval($expire),
+ dbesc($a->timezone)
);
-
-
$r = q("select * from channel where channel_account_id = %d
and channel_guid = '%s' limit 1",
intval($arr['account_id']),
@@ -267,8 +292,8 @@ function create_identity($arr) {
// Create a verified hub location pointing to this site.
$r = q("insert into hubloc ( hubloc_guid, hubloc_guid_sig, hubloc_hash, hubloc_addr, hubloc_flags,
- hubloc_url, hubloc_url_sig, hubloc_host, hubloc_callback, hubloc_sitekey )
- values ( '%s', '%s', '%s', '%s', %d, '%s', '%s', '%s', '%s', '%s' )",
+ hubloc_url, hubloc_url_sig, hubloc_host, hubloc_callback, hubloc_sitekey, hubloc_network )
+ values ( '%s', '%s', '%s', '%s', %d, '%s', '%s', '%s', '%s', '%s', '%s' )",
dbesc($guid),
dbesc($sig),
dbesc($hash),
@@ -278,7 +303,8 @@ function create_identity($arr) {
dbesc(base64url_encode(rsa_sign(z_root(),$ret['channel']['channel_prvkey']))),
dbesc(get_app()->get_hostname()),
dbesc(z_root() . '/post'),
- dbesc(get_config('system','pubkey'))
+ dbesc(get_config('system','pubkey')),
+ dbesc('zot')
);
if(! $r)
logger('create_identity: Unable to store hub location');
@@ -322,24 +348,76 @@ function create_identity($arr) {
dbesc($a->get_baseurl() . "/photo/profile/m/{$newuid}")
);
- $r = q("insert into abook ( abook_account, abook_channel, abook_xchan, abook_closeness, abook_created, abook_updated, abook_flags )
- values ( %d, %d, '%s', %d, '%s', '%s', %d ) ",
+ if($role_permissions) {
+ $myperms = ((array_key_exists('perms_auto',$role_permissions) && $role_permissions['perms_auto']) ? intval($role_permissions['perms_accept']) : 0);
+ }
+ else
+ $myperms = PERMS_R_STREAM|PERMS_R_PROFILE|PERMS_R_PHOTOS|PERMS_R_ABOOK
+ |PERMS_W_STREAM|PERMS_W_WALL|PERMS_W_COMMENT|PERMS_W_MAIL|PERMS_W_CHAT
+ |PERMS_R_STORAGE|PERMS_R_PAGES|PERMS_W_LIKE;
+
+ $r = q("insert into abook ( abook_account, abook_channel, abook_xchan, abook_closeness, abook_created, abook_updated, abook_flags, abook_my_perms )
+ values ( %d, %d, '%s', %d, '%s', '%s', %d, %d ) ",
intval($ret['channel']['channel_account_id']),
intval($newuid),
dbesc($hash),
intval(0),
dbesc(datetime_convert()),
dbesc(datetime_convert()),
- intval(ABOOK_FLAG_SELF)
+ intval(ABOOK_FLAG_SELF),
+ intval($myperms)
);
if(intval($ret['channel']['channel_account_id'])) {
- // Create a group with no members. This allows somebody to use it
+ // Save our permissions role so we can perhaps call it up and modify it later.
+
+ if($role_permissions) {
+ set_pconfig($newuid,'system','permissions_role',$arr['permissions_role']);
+ if(array_key_exists('online',$role_permissions))
+ set_pconfig($newuid,'system','hide_presence',1-intval($role_permissions['online']));
+ if(array_key_exists('perms_auto',$role_permissions))
+ set_pconfig($newuid,'system','autoperms',(($role_permissions['perms_auto']) ? $role_permissions['perms_accept'] : 0));
+ }
+
+ // Create a group with yourself as a member. This allows somebody to use it
// right away as a default group for new contacts.
require_once('include/group.php');
group_add($newuid, t('Friends'));
+ group_add_member($newuid,t('Friends'),$ret['channel']['channel_hash']);
+
+ // if our role_permissions indicate that we're using a default collection ACL, add it.
+
+ if(is_array($role_permissions) && $role_permissions['default_collection']) {
+ $r = q("select hash from groups where uid = %d and name = '%s' limit 1",
+ intval($newuid),
+ dbesc( t('Friends') )
+ );
+ if($r) {
+ q("update channel set channel_default_group = '%s', channel_allow_gid = '%s' where channel_id = %d",
+ dbesc($r[0]['hash']),
+ dbesc('<' . $r[0]['hash'] . '>'),
+ intval($newuid)
+ );
+ }
+ }
+
+ // auto-follow any of the hub's pre-configured channel choices.
+ // Only do this if it's the first channel for this account;
+ // otherwise it could get annoying. Don't make this list too big
+ // or it will impact registration time.
+
+ $accts = get_config('system','auto_follow');
+ if(($accts) && (! $total_identities)) {
+ require_once('include/follow.php');
+ if(! is_array($accts))
+ $accts = array($accts);
+ foreach($accts as $acct) {
+ if(trim($acct))
+ new_contact($newuid,trim($acct),$ret['channel'],false);
+ }
+ }
call_hooks('register_account', $newuid);
@@ -373,7 +451,7 @@ function set_default_login_identity($account_id,$channel_id,$force = true) {
);
if($r) {
if((intval($r[0]['account_default_channel']) == 0) || ($force)) {
- $r = q("update account set account_default_channel = %d where account_id = %d limit 1",
+ $r = q("update account set account_default_channel = %d where account_id = %d",
intval($channel_id),
intval($account_id)
);
@@ -382,21 +460,22 @@ function set_default_login_identity($account_id,$channel_id,$force = true) {
}
/**
- * @function identity_basic_export($channel_id)
+ * @function identity_basic_export($channel_id,$items = false)
* Create an array representing the important channel information
* which would be necessary to create a nomadic identity clone. This includes
* most channel resources and connection information with the exception of content.
*
* @param int $channel_id
* Channel_id to export
- *
+ * @param boolean $items
+ * Include channel posts (wall items), default false
*
* @returns array
* See function for details
*
*/
-function identity_basic_export($channel_id) {
+function identity_basic_export($channel_id, $items = false) {
/*
* Red basic channel export
@@ -469,7 +548,62 @@ function identity_basic_export($channel_id) {
}
+ // All other term types will be included in items, if requested.
+
+ $r = q("select * from term where type in (%d,%d) and uid = %d",
+ intval(TERM_SAVEDSEARCH),
+ intval(TERM_THING),
+ intval($channel_id)
+ );
+ if($r)
+ $ret['term'] = $r;
+
+ $r = q("select * from obj where obj_channel = %d",
+ intval($channel_id)
+ );
+
+ if($r)
+ $ret['obj'] = $r;
+
+
+ if(! $items)
+ return $ret;
+
+
+ $r = q("select likes.*, item.mid from likes left join item on likes.iid = item.id where likes.channel_id = %d",
+ intval($channel_id)
+ );
+
+ if($r)
+ $ret['likes'] = $r;
+
+
+ $r = q("select item_id.*, item.mid from item_id left join item on item_id.iid = item.id where item_id.uid = %d",
+ intval($channel_id)
+ );
+
+ if($r)
+ $ret['item_id'] = $r;
+
+ $key = get_config('system','prvkey');
+
+ // warning: this may run into memory limits on smaller systems
+
+ $r = q("select * from item where (item_flags & %d)>0 and not (item_restrict & %d)>0 and uid = %d",
+ intval(ITEM_WALL),
+ intval(ITEM_DELETED),
+ intval($channel_id)
+ );
+ if($r) {
+ $ret['item'] = array();
+ xchan_query($r);
+ $r = fetch_post_tags($r,true);
+ foreach($r as $rr)
+ $ret['item'][] = encode_item($rr,true);
+
+ }
return $ret;
+
}
@@ -544,7 +678,7 @@ function profile_load(&$a, $nickname, $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 )
+ WHERE channel.channel_address = '%s' and not ( channel_pageflags & %d )>0
AND profile.is_default = 1 LIMIT 1",
dbesc($nickname),
intval(PAGE_REMOVED)
@@ -756,6 +890,8 @@ function profile_sidebar($profile, $block = 0, $show_connect = true) {
|| (x($profile,'country_name') == 1))
$location = t('Location:');
+ $profile['homepage'] = linkify($profile['homepage']);
+
$gender = ((x($profile,'gender') == 1) ? t('Gender:') : False);
$marital = ((x($profile,'marital') == 1) ? t('Status:') : False);
$homepage = ((x($profile,'homepage') == 1) ? t('Homepage:') : False);
@@ -977,7 +1113,7 @@ logger('online: ' . $profile['online']);
function advanced_profile(&$a) {
-
+ require_once('include/text.php');
if(! perm_is_allowed($a->profile['profile_uid'],get_observer_hash(),'view_profile'))
return '';
@@ -1042,7 +1178,7 @@ function advanced_profile(&$a) {
if($a->profile['with']) $profile['marital']['with'] = bbcode($a->profile['with']);
- if(strlen($a->profile['howlong']) && $a->profile['howlong'] !== '0000-00-00 00:00:00') {
+ if(strlen($a->profile['howlong']) && $a->profile['howlong'] !== NULL_DATE) {
$profile['howlong'] = relative_date($a->profile['howlong'], t('for %1$d %2$s'));
}
@@ -1069,7 +1205,18 @@ 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);
+ // Support tags in the other channels field (probably want to restrict it to channels only?)
+ $txt = $a->profile['channels'];
+ $matches = get_tags($txt);
+ $access_tag = '';
+ $str_tags = '';
+ foreach($matches as $m) {
+ $success = handle_tag($a, $txt, $access_tag, $str_tags, $a->profile_uid, $m); // Use uid of the profile maker
+ }
+
+ if($txt = prepare_text($txt)) {
+ $profile['channels'] = array( t('My other channels:'), $txt);
+ }
if($txt = prepare_text($a->profile['music'])) $profile['music'] = array( t('Musical interests:'), $txt);
@@ -1244,7 +1391,7 @@ 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';
+ return 'images/default_profile_photos/' . $scheme . '/' . $size . '.png';
}
@@ -1337,7 +1484,7 @@ function get_channel_by_nick($nick) {
function identity_selector() {
if(local_user()) {
- $r = q("select channel.*, xchan.* from channel left join xchan on channel.channel_hash = xchan.xchan_hash where channel.channel_account_id = %d and not ( channel_pageflags & %d ) order by channel_name ",
+ $r = q("select channel.*, xchan.* from channel left join xchan on channel.channel_hash = xchan.xchan_hash where channel.channel_account_id = %d and (channel_pageflags & %d) = 0 order by channel_name ",
intval(get_account_id()),
intval(PAGE_REMOVED)
);
@@ -1400,4 +1547,48 @@ function get_profile_fields_advanced($filter = 0) {
return $x;
}
+/**
+ * @function notifications_off($channel_id)
+ * Clear notifyflags for a channel - most likely during bulk import of content or other activity that is likely
+ * to generate huge amounts of undesired notifications.
+ * @param int $channel_id
+ * The channel to disable notifications for
+ * @returns int
+ * Current notification flag value. Send this to notifications_on() to restore the channel settings when finished
+ * with the activity requiring notifications_off();
+ */
+
+
+
+function notifications_off($channel_id) {
+ $r = q("select channel_notifyflags from channel where channel_id = %d limit 1",
+ intval($channel_id)
+ );
+ $x = q("update channel set channel_notifyflags = 0 where channel_id = %d",
+ intval($channel_id)
+ );
+
+ return intval($r[0]['channel_notifyflags']);
+
+}
+
+
+function notifications_on($channel_id,$value) {
+ $x = q("update channel set channel_notifyflags = %d where channel_id = %d",
+ intval($value),
+ intval($channel_id)
+ );
+ return $x;
+}
+
+
+function get_channel_default_perms($uid) {
+ $r = q("select abook_my_perms from abook where abook_channel = %d and (abook_flags & %d) > 0 limit 1",
+ intval($uid),
+ intval(ABOOK_FLAG_SELF)
+ );
+ if($r)
+ return $r[0]['abook_my_perms'];
+ return 0;
+}
diff --git a/include/items.php b/include/items.php
index 44d4abdf8..c488e1953 100755
--- a/include/items.php
+++ b/include/items.php
@@ -30,7 +30,7 @@ function collect_recipients($item,&$private_envelope) {
// as that would allow the denied person to see the post by logging out.
if((! $item['allow_cid']) && (! $item['allow_gid'])) {
- $r = q("select * from abook where abook_channel = %d and not (abook_flags & %d) ",
+ $r = q("select * from abook where abook_channel = %d and not (abook_flags & %d)>0 ",
intval($item['uid']),
intval(ABOOK_FLAG_SELF|ABOOK_FLAG_PENDING|ABOOK_FLAG_ARCHIVED)
);
@@ -66,20 +66,44 @@ function collect_recipients($item,&$private_envelope) {
// by the directives in $item['public_policy'].
$private_envelope = false;
+ require_once('include/identity.php');
+ $sys = get_sys_channel();
if(array_key_exists('public_policy',$item) && $item['public_policy'] !== 'self') {
- $r = q("select abook_xchan from abook where abook_channel = %d and not (abook_flags & %d) ",
+ $r = q("select abook_xchan, xchan_network from abook left join xchan on abook_xchan = xchan_hash where abook_channel = %d and not (abook_flags & %d)>0 ",
intval($item['uid']),
intval(ABOOK_FLAG_SELF|ABOOK_FLAG_PENDING|ABOOK_FLAG_ARCHIVED)
);
if($r) {
+
+ // filter out restrictive public_policy settings from remote networks
+ // which don't have this concept and will treat them as public.
+
+ $policy = substr($item['public_policy'],0,3);
foreach($r as $rr) {
- $recipients[] = $rr['abook_xchan'];
+ switch($policy) {
+ case 'net':
+ case 'aut':
+ case 'sit':
+ case 'any':
+ case 'con':
+ if($rr['xchan_network'] != 'zot')
+ break;
+ case 'pub':
+ case '':
+ default:
+ $recipients[] = $rr['abook_xchan'];
+ break;
+ }
}
}
+// we probably want to check that discovery channel delivery is allowed before uncommenting this.
+// if($policy === 'pub')
+// $recipients[] = $sys['xchan_hash'];
}
}
+
// This is a somewhat expensive operation but important.
// Don't send this item to anybody who isn't allowed to see it
@@ -144,7 +168,7 @@ function filter_insecure($channel_id,$arr) {
function comments_are_now_closed($item) {
- if($item['comments_closed'] !== '0000-00-00 00:00:00') {
+ if($item['comments_closed'] !== NULL_DATE) {
$d = datetime_convert();
if($d > $item['comments_closed'])
return true;
@@ -195,6 +219,7 @@ function can_comment_on_post($observer_xchan,$item) {
break;
case 'any connections':
case 'contacts':
+ case 'authenticated':
case '':
if(array_key_exists('owner',$item)) {
if(($item['owner']['abook_xchan']) && ($item['owner']['abook_their_perms'] & PERMS_W_COMMENT))
@@ -238,7 +263,7 @@ function add_source_route($iid,$hash) {
);
if($r) {
$new_route = (($r[0]['route']) ? $r[0]['route'] . ',' : '') . $hash;
- q("update item set route = '%s' where id = %d limit 1",
+ q("update item set route = '%s' where id = %d",
(dbesc($new_route)),
intval($iid)
);
@@ -448,7 +473,7 @@ function post_activity_item($arr) {
function get_public_feed($channel,$params) {
$type = 'xml';
- $begin = '0000-00-00 00:00:00';
+ $begin = NULL_DATE;
$end = '';
$start = 0;
$records = 40;
@@ -459,7 +484,7 @@ function get_public_feed($channel,$params) {
$params = array();
$params['type'] = ((x($params,'type')) ? $params['type'] : 'xml');
- $params['begin'] = ((x($params,'begin')) ? $params['begin'] : '0000-00-00 00:00:00');
+ $params['begin'] = ((x($params,'begin')) ? $params['begin'] : NULL_DATE);
$params['end'] = ((x($params,'end')) ? $params['end'] : datetime_convert('UTC','UTC','now'));
$params['start'] = ((x($params,'start')) ? $params['start'] : 0);
$params['records'] = ((x($params,'records')) ? $params['records'] : 40);
@@ -741,6 +766,8 @@ function get_item_elements($x) {
$arr = array();
$arr['body'] = (($x['body']) ? htmlspecialchars($x['body'],ENT_COMPAT,'UTF-8',false) : '');
+ $key = get_config('system','pubkey');
+
$maxlen = get_max_import_size();
if($maxlen && mb_strlen($arr['body']) > $maxlen) {
@@ -758,14 +785,14 @@ function get_item_elements($x) {
$arr['expires'] = ((x($x,'expires') && $x['expires'])
? datetime_convert('UTC','UTC',$x['expires'])
- : '0000-00-00 00:00:00');
+ : NULL_DATE);
$arr['commented'] = ((x($x,'commented') && $x['commented'])
? datetime_convert('UTC','UTC',$x['commented'])
: $arr['created']);
$arr['comments_closed'] = ((x($x,'comments_closed') && $x['comments_closed'])
? datetime_convert('UTC','UTC',$x['comments_closed'])
- : '0000-00-00 00:00:00');
+ : NULL_DATE);
$arr['title'] = (($x['title']) ? htmlspecialchars($x['title'], ENT_COMPAT,'UTF-8',false) : '');
@@ -795,7 +822,7 @@ function get_item_elements($x) {
$arr['sig'] = (($x['signature']) ? htmlspecialchars($x['signature'], ENT_COMPAT,'UTF-8',false) : '');
- $arr['diaspora_meta'] = (($x['diaspora_meta']) ? $x['diaspora_meta'] : '');
+ $arr['diaspora_meta'] = (($x['diaspora_signature']) ? json_encode(crypto_encapsulate($x['diaspora_signature'],$key)) : '');
$arr['object'] = activity_sanitise($x['object']);
$arr['target'] = activity_sanitise($x['target']);
@@ -847,15 +874,35 @@ function get_item_elements($x) {
// We have to do that here because we need to cleanse the input and prevent bad stuff from getting in,
// and we need plaintext to do that.
+
+
if(intval($arr['item_private'])) {
$arr['item_flags'] = $arr['item_flags'] | ITEM_OBSCURED;
- $key = get_config('system','pubkey');
if($arr['title'])
$arr['title'] = json_encode(crypto_encapsulate($arr['title'],$key));
if($arr['body'])
$arr['body'] = json_encode(crypto_encapsulate($arr['body'],$key));
}
+
+ if(array_key_exists('revision',$x)) {
+ // extended export encoding
+
+ $arr['revision'] = $x['revision'];
+ $arr['allow_cid'] = $x['allow_cid'];
+ $arr['allow_gid'] = $x['allow_gid'];
+ $arr['deny_cid'] = $x['deny_cid'];
+ $arr['deny_gid'] = $x['deny_gid'];
+ $arr['layout_mid'] = $x['layout_mid'];
+ $arr['postopts'] = $x['postopts'];
+ $arr['resource_id'] = $x['resource_id'];
+ $arr['resource_type'] = $x['resource_type'];
+ $arr['item_restrict'] = $x['item_restrict'];
+ $arr['item_flags'] = $x['item_flags'];
+ $arr['attach'] = $x['attach'];
+
+ }
+
return $arr;
}
@@ -878,6 +925,10 @@ function import_author_xchan($x) {
$y = import_author_rss($x);
}
+ if($x['network'] === 'unknown') {
+ $y = import_author_unknown($x);
+ }
+
return(($y) ? $y : false);
}
@@ -918,12 +969,12 @@ function import_author_rss($x) {
dbesc(($name) ? $name : t('(Unknown)')),
dbesc('rss')
);
- if($r) {
+ if($r && $x['photo']) {
- $photos = import_profile_photo($x['photo'],$x['url']);
+ $photos = import_profile_photo($x['photo']['src'],$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",
+ $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'",
dbesc(datetime_convert('UTC','UTC',$arr['photo_updated'])),
dbesc($photos[0]),
dbesc($photos[1]),
@@ -940,8 +991,52 @@ function import_author_rss($x) {
}
+function import_author_unknown($x) {
+
+ if(! $x['url'])
+ return false;
+
+ $r = q("select xchan_hash from xchan where xchan_network = 'unknown' and xchan_url = '%s' limit 1",
+ dbesc($x['url'])
+ );
+ if($r) {
+ logger('import_author_unknown: in cache' , LOGGER_DEBUG);
+ return $r[0]['xchan_hash'];
+ }
+
+ $name = trim($x['name']);
-function encode_item($item) {
+ $r = q("insert into xchan ( xchan_hash, xchan_guid, xchan_url, xchan_name, xchan_network )
+ values ( '%s', '%s', '%s', '%s', '%s' )",
+ dbesc($x['url']),
+ dbesc($x['url']),
+ dbesc($x['url']),
+ dbesc(($name) ? $name : t('(Unknown)')),
+ dbesc('unknown')
+ );
+ if($r && $x['photo']) {
+
+ $photos = import_profile_photo($x['photo']['src'],$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 = 'unknown'",
+ 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,$mirror = false) {
$x = array();
$x['type'] = 'activity';
$x['encoding'] = 'zot';
@@ -963,21 +1058,44 @@ function encode_item($item) {
$c_scope = map_scope($comment_scope);
+ $key = get_config('system','prvkey');
+
if(array_key_exists('item_flags',$item) && ($item['item_flags'] & ITEM_OBSCURED)) {
- $key = get_config('system','prvkey');
if($item['title'])
$item['title'] = crypto_unencapsulate(json_decode_plus($item['title']),$key);
if($item['body'])
$item['body'] = crypto_unencapsulate(json_decode_plus($item['body']),$key);
}
+ // If we're trying to backup an item so that it's recoverable or for export/imprt,
+ // add all the attributes we need to recover it
+
+ if($mirror) {
+ $x['id'] = $item['id'];
+ $x['parent'] = $item['parent'];
+ $x['uid'] = $item['uid'];
+ $x['allow_cid'] = $item['allow_cid'];
+ $x['allow_gid'] = $item['allow_gid'];
+ $x['deny_cid'] = $item['deny_cid'];
+ $x['deny_gid'] = $item['deny_gid'];
+ $x['revision'] = $item['revision'];
+ $x['layout_mid'] = $item['layout_mid'];
+ $x['postopts'] = $item['postopts'];
+ $x['resource_id'] = $item['resource_id'];
+ $x['resource_type'] = $item['resource_type'];
+ $x['item_restrict'] = $item['item_restrict'];
+ $x['item_flags'] = $item['item_flags'];
+ $x['attach'] = $item['attach'];
+ }
+
$x['message_id'] = $item['mid'];
$x['message_top'] = $item['parent_mid'];
$x['message_parent'] = $item['thr_parent'];
$x['created'] = $item['created'];
$x['edited'] = $item['edited'];
- $x['expires'] = $item['expires'];
+ // always send 0's over the wire
+ $x['expires'] = (($item['expires'] == '0001-01-01 00:00:00') ? '0000-00-00 00:00:00' : $item['expires']);
$x['commented'] = $item['commented'];
$x['mimetype'] = $item['mimetype'];
$x['title'] = $item['title'];
@@ -1003,7 +1121,7 @@ function encode_item($item) {
if($y = encode_item_flags($item))
$x['flags'] = $y;
- if($item['comments_closed'] !== '0000-00-00 00:00:00')
+ if($item['comments_closed'] !== NULL_DATE)
$x['comments_closed'] = $item['comments_closed'];
$x['public_scope'] = $scope;
@@ -1016,6 +1134,9 @@ function encode_item($item) {
if($item['term'])
$x['tags'] = encode_item_terms($item['term']);
+ if($item['diaspora_meta'])
+ $x['diaspora_signature'] = crypto_unencapsulate(json_decode($item['diaspora_meta'],true),$key);
+
logger('encode_item: ' . print_r($x,true), LOGGER_DATA);
return $x;
@@ -1242,8 +1363,8 @@ function get_mail_elements($x) {
$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'))
- $arr['expires'] = '0000-00-00 00:00:00';
+ if((! array_key_exists('expires',$x)) || ($x['expires'] === NULL_DATE))
+ $arr['expires'] = NULL_DATE;
else
$arr['expires'] = datetime_convert('UTC','UTC',$x['expires']);
@@ -1329,16 +1450,23 @@ function get_atom_elements($feed,$item,&$author) {
if($found_author) {
$author['author_name'] = unxmlify($found_author->get_name());
$author['author_link'] = unxmlify($found_author->get_link());
+ $author['author_is_feed'] = false;
}
else {
$author['author_name'] = unxmlify($feed->get_title());
$author['author_link'] = unxmlify($feed->get_permalink());
+ $author['author_is_feed'] = true;
}
- $res['mid'] = unxmlify($item->get_id());
+ if(substr($author['author_link'],-1,1) == '/')
+ $author['author_link'] = substr($author['author_link'],0,-1);
+
+ $res['mid'] = base64url_encode(unxmlify($item->get_id()));
$res['title'] = unxmlify($item->get_title());
$res['body'] = unxmlify($item->get_content());
$res['plink'] = unxmlify($item->get_link(0));
+ $res['item_flags'] = ITEM_RSS;
+
// removing the content of the title if its identically to the body
// This helps with auto generated titles e.g. from tumblr
@@ -1382,6 +1510,16 @@ function get_atom_elements($feed,$item,&$author) {
}
}
+ // check for a yahoo media element (github etc.)
+
+ if(! $author['author_photo']) {
+ $rawmedia = $item->get_item_tags(NAMESPACE_YMEDIA,'thumbnail');
+ if($rawmedia && $rawmedia[0]['attribs']['']['url']) {
+ $author['author_photo'] = strip_tags(unxmlify($rawmedia[0]['attribs']['']['url']));
+ }
+ }
+
+
// No photo/profile-link on the item - look at the feed level
if((! (x($author,'author_link'))) || (! (x($author,'author_photo')))) {
@@ -1389,8 +1527,10 @@ function get_atom_elements($feed,$item,&$author) {
if($rawauthor && $rawauthor[0]['child'][SIMPLEPIE_NAMESPACE_ATOM_10]['link']) {
$base = $rawauthor[0]['child'][SIMPLEPIE_NAMESPACE_ATOM_10]['link'];
foreach($base as $link) {
- if($link['attribs']['']['rel'] === 'alternate' && (! $author['author_link']))
+ if($link['attribs']['']['rel'] === 'alternate' && (! $author['author_link'])) {
$author['author_link'] = unxmlify($link['attribs']['']['href']);
+ $author['author_is_feed'] = true;
+ }
if(! $author['author_photo']) {
if($link['attribs']['']['rel'] === 'photo' || $link['attribs']['']['rel'] === 'avatar')
$author['author_photo'] = unxmlify($link['attribs']['']['href']);
@@ -1438,7 +1578,7 @@ function get_atom_elements($feed,$item,&$author) {
// We could probably turn these old Friendica bbcode bookmarks into bookmark tags but we'd have to
// create a term table item for them. For now just make sure they stay as links.
- $res['body'] = preg_replace('/\[bookmark(.*?)\](.*?)\[\/bookmark\]','[url$1]$2[/url]',$res['body']);
+ $res['body'] = preg_replace('/\[bookmark(.*?)\](.*?)\[\/bookmark\]/','[url$1]$2[/url]',$res['body']);
}
@@ -1477,6 +1617,28 @@ function get_atom_elements($feed,$item,&$author) {
$res['body'] = escape_tags($res['body']);
}
+ if($res['plink'] && $res['title']) {
+ $res['body'] = '#^[url=' . $res['plink'] . ']' . $res['title'] . '[/url]' . "\n\n" . $res['body'];
+ $terms = array();
+ $terms[] = array(
+ 'otype' => TERM_OBJ_POST,
+ 'type' => TERM_BOOKMARK,
+ 'url' => $res['plink'],
+ 'term' => $res['title'],
+ );
+ }
+ elseif($res['plink']) {
+ $res['body'] = '#^[url]' . $res['plink'] . '[/url]' . "\n\n" . $res['body'];
+ $terms = array();
+ $terms[] = array(
+ 'otype' => TERM_OBJ_POST,
+ 'type' => TERM_BOOKMARK,
+ 'url' => $res['plink'],
+ 'term' => $res['plink'],
+ );
+ }
+
+
$private = $item->get_item_tags(NAMESPACE_DFRN,'private');
if($private && intval($private[0]['data']) > 0)
$res['item_private'] = ((intval($private[0]['data'])) ? 1 : 0);
@@ -1565,7 +1727,8 @@ function get_atom_elements($feed,$item,&$author) {
$cats = $item->get_categories();
if($cats) {
- $terms = array();
+ if(is_null($terms))
+ $terms = array();
foreach($cats as $cat) {
$term = $cat->get_term();
if(! $term)
@@ -1590,9 +1753,11 @@ function get_atom_elements($feed,$item,&$author) {
);
}
}
- $res['term'] = $terms;
}
+ if(! is_null($terms))
+ $res['term'] = $terms;
+
$attach = $item->get_enclosures();
if($attach) {
$res['attach'] = array();
@@ -1692,6 +1857,7 @@ function get_atom_elements($feed,$item,&$author) {
call_hooks('parse_atom', $arr);
logger('get_atom_elements: author: ' . print_r($author,true),LOGGER_DATA);
+
logger('get_atom_elements: ' . print_r($res,true),LOGGER_DATA);
return $res;
@@ -1839,9 +2005,9 @@ function item_store($arr,$allow_exec = false) {
$arr['owner_xchan'] = ((x($arr,'owner_xchan')) ? notags(trim($arr['owner_xchan'])) : '');
$arr['created'] = ((x($arr,'created') !== false) ? datetime_convert('UTC','UTC',$arr['created']) : datetime_convert());
$arr['edited'] = ((x($arr,'edited') !== false) ? datetime_convert('UTC','UTC',$arr['edited']) : datetime_convert());
- $arr['expires'] = ((x($arr,'expires') !== false) ? datetime_convert('UTC','UTC',$arr['expires']) : '0000-00-00 00:00:00');
+ $arr['expires'] = ((x($arr,'expires') !== false) ? datetime_convert('UTC','UTC',$arr['expires']) : NULL_DATE);
$arr['commented'] = ((x($arr,'commented') !== false) ? datetime_convert('UTC','UTC',$arr['commented']) : datetime_convert());
- $arr['comments_closed'] = ((x($arr,'comments_closed') !== false) ? datetime_convert('UTC','UTC',$arr['comments_closed']) : '0000-00-00 00:00:00');
+ $arr['comments_closed'] = ((x($arr,'comments_closed') !== false) ? datetime_convert('UTC','UTC',$arr['comments_closed']) : NULL_DATE);
$arr['received'] = datetime_convert();
$arr['changed'] = datetime_convert();
@@ -1914,6 +2080,7 @@ function item_store($arr,$allow_exec = false) {
return $ret;
}
+
// is the new message multi-level threaded?
// even though we don't support it now, preserve the info
// and re-attach to the conversation parent.
@@ -2052,7 +2219,7 @@ function item_store($arr,$allow_exec = false) {
$r = q("UPDATE item SET parent = %d, allow_cid = '%s', allow_gid = '%s',
deny_cid = '%s', deny_gid = '%s', public_policy = '%s', item_private = %d, comments_closed = '%s'
- WHERE id = %d LIMIT 1",
+ WHERE id = %d",
intval($parent_id),
dbesc($allow_cid),
dbesc($allow_gid),
@@ -2097,13 +2264,13 @@ function item_store($arr,$allow_exec = false) {
// update the commented timestamp on the parent
- $z = q("select max(created) as commented from item where parent_mid = '%s' and uid = %d and not ( item_restrict & %d ) ",
+ $z = q("select max(created) as commented from item where parent_mid = '%s' and uid = %d and not ( item_restrict & %d )>0 ",
dbesc($arr['parent_mid']),
intval($arr['uid']),
intval(ITEM_DELAYED_PUBLISH)
);
- q("UPDATE item set commented = '%s', changed = '%s' WHERE id = %d LIMIT 1",
+ q("UPDATE item set commented = '%s', changed = '%s' WHERE id = %d",
dbesc(($z) ? $z[0]['commented'] : (datetime_convert())),
dbesc(datetime_convert()),
intval($parent_id)
@@ -2248,7 +2415,7 @@ function item_store_update($arr,$allow_exec = false) {
$arr['edited'] = ((x($arr,'edited') !== false) ? datetime_convert('UTC','UTC',$arr['edited']) : datetime_convert());
$arr['expires'] = ((x($arr,'expires') !== false) ? datetime_convert('UTC','UTC',$arr['expires']) : $orig[0]['expires']);
- if(array_key_exists('comments_closed',$arr) && $arr['comments_closed'] != '0000-00-00 00:00:00')
+ if(array_key_exists('comments_closed',$arr) && $arr['comments_closed'] != NULL_DATE)
$arr['comments_closed'] = datetime_convert('UTC','UTC',$arr['comments_closed']);
else
$arr['comments_closed'] = $orig[0]['comments_closed'];
@@ -2256,7 +2423,7 @@ function item_store_update($arr,$allow_exec = false) {
$arr['commented'] = $orig[0]['commented'];
$arr['received'] = datetime_convert();
$arr['changed'] = datetime_convert();
-
+ $arr['route'] = ((array_key_exists('route',$arr)) ? trim($arr['route']) : $orig[0]['route']);
$arr['diaspora_meta'] = ((x($arr,'diaspora_meta')) ? $arr['diaspora_meta'] : $orig[0]['diaspora_meta']);
$arr['location'] = ((x($arr,'location')) ? notags(trim($arr['location'])) : $orig[0]['location']);
$arr['coord'] = ((x($arr,'coord')) ? notags(trim($arr['coord'])) : $orig[0]['coord']);
@@ -2315,7 +2482,7 @@ function item_store_update($arr,$allow_exec = false) {
$str .= " `" . $k . "` = '" . $v . "' ";
}
- $r = dbq("update `item` set " . $str . " where id = " . $orig_post_id . " limit 1");
+ $r = dbq("update `item` set " . $str . " where id = " . $orig_post_id );
if($r)
logger('item_store_update: updated item ' . $orig_post_id, LOGGER_DEBUG);
@@ -2357,31 +2524,26 @@ function item_store_update($arr,$allow_exec = false) {
return $ret;
}
-function store_diaspora_comment_sig($datarray, $channel, $parent_item, $post_id) {
+function store_diaspora_comment_sig($datarray, $channel, $parent_item, $post_id, $walltowall = false) {
// We won't be able to sign Diaspora comments for authenticated visitors
// - we don't have their private key
// since Diaspora doesn't handle edits we can only do this for the original text and not update it.
- $enabled = intval(get_config('system','diaspora_enabled'));
- if(! $enabled) {
- logger('mod_item: diaspora support disabled, not storing comment signature', LOGGER_DEBUG);
- return;
- }
+ require_once('include/bb2diaspora.php');
+ $signed_body = bb2diaspora_itembody($datarray,$walltowall);
- $body = $datarray['body'];
- if(array_key_exists('item_flags',$datarray) && ($datarray['item_flags'] & ITEM_OBSCURED)) {
- $key = get_config('system','prvkey');
- if($datarray['body'])
- $body = crypto_unencapsulate(json_decode($datarray['body'],true),$key);
+ if($walltowall) {
+ logger('wall to wall comment',LOGGER_DEBUG);
+ // post will come across with the owner's identity. Throw a preamble onto the post to indicate the true author.
+ $signed_body = "\n\n"
+ . '![' . $datarray['author']['xchan_name'] . '](' . $datarray['author']['xchan_photo_m'] . ')'
+ . '[' . $datarray['author']['xchan_name'] . '](' . $datarray['author']['xchan_url'] . ')' . "\n\n"
+ . $signed_body;
}
- logger('mod_item: storing diaspora comment signature',LOGGER_DEBUG);
-
- require_once('include/bb2diaspora.php');
-
- $signed_body = html_entity_decode(bb2diaspora($body));
+ logger('storing diaspora comment signature',LOGGER_DEBUG);
$diaspora_handle = $channel['channel_address'] . '@' . get_app()->get_hostname();
@@ -2394,17 +2556,14 @@ function store_diaspora_comment_sig($datarray, $channel, $parent_item, $post_id)
$x = array('signer' => $diaspora_handle, 'body' => $signed_body, 'signed_text' => $signed_text, 'signature' => base64_encode($authorsig));
- $r = q("update item set diaspora_meta = '%s' where id = %d limit 1",
- dbesc(json_encode($x)),
+ $key = get_config('system','pubkey');
+ $y = crypto_encapsulate(json_encode($x),$key);
+
+ $r = q("update item set diaspora_meta = '%s' where id = %d",
+ dbesc(json_encode($y)),
intval($post_id)
);
- $r = q("insert into sign (`iid`,`signed_text`,`signature`,`signer`) values (%d,'%s','%s','%s') ",
- intval($post_id),
- dbesc($signed_text),
- dbesc(base64_encode($authorsig)),
- dbesc($diaspora_handle)
- );
if(! $r)
logger('store_diaspora_comment_sig: DB write failed');
@@ -2596,7 +2755,7 @@ function tag_deliver($uid,$item_id) {
$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",
+ $x = q("update item set edited = '%s', received = '%s', changed = '%s' where mid = '%s' and uid = %d",
dbesc(datetime_convert()),
dbesc(datetime_convert()),
dbesc(datetime_convert()),
@@ -2662,7 +2821,7 @@ function tag_deliver($uid,$item_id) {
if($mention) {
logger('tag_deliver: mention found for ' . $u[0]['channel_name']);
- $r = q("update item set item_flags = ( item_flags | %d ) where id = %d limit 1",
+ $r = q("update item set item_flags = ( item_flags | %d ) where id = %d",
intval(ITEM_MENTIONSME),
intval($item_id)
);
@@ -2777,7 +2936,7 @@ function tgroup_check($uid,$item) {
// 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 and ( item_flags & %d ) limit 1",
+ $r = q("select id from item where mid = '%s' and uid = %d and ( item_flags & %d )>0 limit 1",
dbesc($item['parent_mid']),
intval($uid),
intval(ITEM_UPLINK)
@@ -2821,7 +2980,15 @@ function tgroup_check($uid,$item) {
// At this point we've determined that the person receiving this post was mentioned in it.
// Now let's check if this mention was inside a reshare so we don't spam a forum
- $body = preg_replace('/\[share(.*?)\[\/share\]/','',$item['body']);
+
+ $body = $item['body'];
+
+ if(array_key_exists('item_flags',$item) && ($item['item_flags'] & ITEM_OBSCURED) && $body) {
+ $key = get_config('system','prvkey');
+ $body = crypto_unencapsulate(json_decode($body,true),$key);
+ }
+
+ $body = preg_replace('/\[share(.*?)\[\/share\]/','',$body);
$pattern = '/@\!?\[zrl\=' . preg_quote($term['url'],'/') . '\]' . preg_quote($term['term'] . '+','/') . '\[\/zrl\]/';
@@ -2867,14 +3034,14 @@ function start_delivery_chain($channel,$item,$item_id,$parent) {
// when we created the delivery fork
if($parent) {
- $r = q("update item set source_xchan = '%s' where id = %d limit 1",
+ $r = q("update item set source_xchan = '%s' where id = %d",
dbesc($parent['source_xchan']),
intval($item_id)
);
}
else {
$flag_bits = $flag_bits | ITEM_UPLINK;
- $r = q("update item set source_xchan = owner_xchan where id = %d limit 1",
+ $r = q("update item set source_xchan = owner_xchan where id = %d",
intval($item_id)
);
}
@@ -2904,7 +3071,7 @@ function start_delivery_chain($channel,$item,$item_id,$parent) {
}
$r = q("update item set item_flags = %d, owner_xchan = '%s', allow_cid = '%s', allow_gid = '%s',
- deny_cid = '%s', deny_gid = '%s', item_private = %d, public_policy = '%s', comment_policy = '%s', title = '%s', body = '%s' where id = %d limit 1",
+ deny_cid = '%s', deny_gid = '%s', item_private = %d, public_policy = '%s', comment_policy = '%s', title = '%s', body = '%s' where id = %d",
intval($flag_bits),
dbesc($channel['channel_hash']),
dbesc($channel['channel_allow_cid']),
@@ -2944,7 +3111,7 @@ function start_delivery_chain($channel,$item,$item_id,$parent) {
function check_item_source($uid,$item) {
- $r = q("select * from source where src_channel_id = %d and ( src_xchan = '%s' || src_xchan = '*' ) limit 1",
+ $r = q("select * from source where src_channel_id = %d and ( src_xchan = '%s' or src_xchan = '*' ) limit 1",
intval($uid),
dbesc(($item['source_xchan']) ? $item['source_xchan'] : $item['owner_xchan'])
);
@@ -3018,7 +3185,7 @@ function mail_store($arr) {
$arr['from_xchan'] = ((x($arr,'from_xchan')) ? notags(trim($arr['from_xchan'])) : '');
$arr['to_xchan'] = ((x($arr,'to_xchan')) ? notags(trim($arr['to_xchan'])) : '');
$arr['created'] = ((x($arr,'created') !== false) ? datetime_convert('UTC','UTC',$arr['created']) : datetime_convert());
- $arr['expires'] = ((x($arr,'expires') !== false) ? datetime_convert('UTC','UTC',$arr['expires']) : '0000-00-00 00:00:00');
+ $arr['expires'] = ((x($arr,'expires') !== false) ? datetime_convert('UTC','UTC',$arr['expires']) : NULL_DATE);
$arr['title'] = ((x($arr,'title')) ? notags(trim($arr['title'])) : '');
$arr['parent_mid'] = ((x($arr,'parent_mid')) ? notags(trim($arr['parent_mid'])) : '');
$arr['body'] = ((x($arr,'body')) ? trim($arr['body']) : '');
@@ -3101,7 +3268,6 @@ function mail_store($arr) {
}
-
/**
*
* consume_feed - process atom feed and update anything/everything we might need to update
@@ -3169,7 +3335,7 @@ function consume_feed($xml,$importer,&$contact,$pass = 0) {
if($deleted && is_array($contact)) {
$r = q("SELECT * from item where mid = '%s' and author_xchan = '%s' and uid = %d limit 1",
- dbesc($mid),
+ dbesc(base64url_encode($mid)),
dbesc($contact['xchan_hash']),
intval($importer['channel_id'])
);
@@ -3178,7 +3344,7 @@ function consume_feed($xml,$importer,&$contact,$pass = 0) {
$item = $r[0];
if(! ($item['item_restrict'] & ITEM_DELETED)) {
- logger('consume_feed: deleting item ' . $item['id'] . ' mid=' . $item['mid'], LOGGER_DEBUG);
+ logger('consume_feed: deleting item ' . $item['id'] . ' mid=' . base64url_decode($item['mid']), LOGGER_DEBUG);
drop_item($item['id'],false);
}
}
@@ -3197,14 +3363,14 @@ function consume_feed($xml,$importer,&$contact,$pass = 0) {
foreach($items as $item) {
$is_reply = false;
- $item_id = $item->get_id();
+ $item_id = base64url_encode($item->get_id());
logger('consume_feed: processing ' . $item_id, LOGGER_DEBUG);
$rawthread = $item->get_item_tags( NAMESPACE_THREAD,'in-reply-to');
if(isset($rawthread[0]['attribs']['']['ref'])) {
$is_reply = true;
- $parent_mid = $rawthread[0]['attribs']['']['ref'];
+ $parent_mid = base64url_encode($rawthread[0]['attribs']['']['ref']);
}
if($is_reply) {
@@ -3215,17 +3381,32 @@ function consume_feed($xml,$importer,&$contact,$pass = 0) {
// Have we seen it? If not, import it.
- $item_id = $item->get_id();
+ $item_id = base64url_encode($item->get_id());
$author = array();
$datarray = get_atom_elements($feed,$item,$author);
- if(! x($author,'author_name'))
+ if((! x($author,'author_name')) || ($author['author_is_feed']))
$author['author_name'] = $contact['xchan_name'];
- if(! x($author,'author_link'))
+ if((! x($author,'author_link')) || ($author['author_is_feed']))
$author['author_link'] = $contact['xchan_url'];
- if(! x($author,'author_photo'))
+ if((! x($author,'author_photo'))|| ($author['author_is_feed']))
$author['author_photo'] = $contact['xchan_photo_m'];
+ $datarray['author_xchan'] = '';
+
+ if($author['author_link'] != $contact['xchan_url']) {
+ $x = import_author_unknown(array('name' => $author['author_name'],'url' => $author['author_link'],'photo' => array('src' => $author['author_photo'])));
+ if($x)
+ $datarray['author_xchan'] = $x;
+
+ }
+ if(! $datarray['author_xchan'])
+ $datarray['author_xchan'] = $contact['xchan_hash'];
+
+
+ $datarray['owner_xchan'] = $contact['xchan_hash'];
+
+
$r = q("SELECT edited FROM item WHERE mid = '%s' AND uid = %d LIMIT 1",
dbesc($item_id),
intval($importer['channel_id'])
@@ -3249,10 +3430,6 @@ function consume_feed($xml,$importer,&$contact,$pass = 0) {
$datarray['parent_mid'] = $parent_mid;
$datarray['uid'] = $importer['channel_id'];
-//FIXME
- $datarray['owner_xchan'] = $datarray['author_xchan'] = $contact['xchan_hash'];
-
- // FIXME pull out the author and owner
logger('consume_feed: ' . print_r($datarray,true),LOGGER_DATA);
@@ -3266,16 +3443,16 @@ function consume_feed($xml,$importer,&$contact,$pass = 0) {
// Head post of a conversation. Have we seen it? If not, import it.
- $item_id = $item->get_id();
+ $item_id = base64url_encode($item->get_id());
$author = array();
$datarray = get_atom_elements($feed,$item,$author);
if(is_array($contact)) {
- if(! x($author,'author_name'))
+ if((! x($author,'author_name')) || ($author['author_is_feed']))
$author['author_name'] = $contact['xchan_name'];
- if(! x($author,'author_link'))
+ if((! x($author,'author_link')) || ($author['author_is_feed']))
$author['author_link'] = $contact['xchan_url'];
- if(! x($author,'author_photo'))
+ if((! x($author,'author_photo'))|| ($author['author_is_feed']))
$author['author_photo'] = $contact['xchan_photo_m'];
}
@@ -3284,6 +3461,20 @@ function consume_feed($xml,$importer,&$contact,$pass = 0) {
continue;
}
+ $datarray['author_xchan'] = '';
+
+ if($author['author_link'] != $contact['xchan_url']) {
+ $x = import_author_unknown(array('name' => $author['author_name'],'url' => $author['author_link'],'photo' => array('src' => $author['author_photo'])));
+ if($x)
+ $datarray['author_xchan'] = $x;
+
+ }
+ if(! $datarray['author_xchan'])
+ $datarray['author_xchan'] = $contact['xchan_hash'];
+
+
+ $datarray['owner_xchan'] = $contact['xchan_hash'];
+
$r = q("SELECT edited FROM item WHERE mid = '%s' AND uid = %d LIMIT 1",
dbesc($item_id),
@@ -3309,9 +3500,7 @@ function consume_feed($xml,$importer,&$contact,$pass = 0) {
$datarray['parent_mid'] = $item_id;
$datarray['uid'] = $importer['channel_id'];
-//FIXME
- $datarray['owner_xchan'] = $datarray['author_xchan'] = $contact['xchan_hash'];
-
+
if(! link_compare($author['owner_link'],$contact['xchan_url'])) {
logger('consume_feed: Correcting item owner.', LOGGER_DEBUG);
$author['owner_name'] = $contact['name'];
@@ -3319,7 +3508,7 @@ function consume_feed($xml,$importer,&$contact,$pass = 0) {
$author['owner_avatar'] = $contact['thumb'];
}
- logger('consume_feed: author ' . print_r($author,true));
+ logger('consume_feed: author ' . print_r($author,true),LOGGER_DEBUG);
logger('consume_feed: ' . print_r($datarray,true),LOGGER_DATA);
@@ -3337,8 +3526,7 @@ function consume_feed($xml,$importer,&$contact,$pass = 0) {
function update_feed_item($uid,$datarray) {
- logger('update_feed_item: ' . $uid . ' ' . print_r($datarray,true), LOGGER_DATA);
-
+ logger('update_feed_item: not implemented! ' . $uid . ' ' . print_r($datarray,true), LOGGER_DATA);
}
@@ -3663,17 +3851,17 @@ function item_expire($uid,$days) {
$expire_network_only = 1;
- $sql_extra = ((intval($expire_network_only)) ? " AND not (item_flags & " . intval(ITEM_WALL) . ") " : "");
+ $sql_extra = ((intval($expire_network_only)) ? " AND not (item_flags & " . intval(ITEM_WALL) . ")>0 " : "");
$r = q("SELECT * FROM `item`
WHERE `uid` = %d
- AND `created` < UTC_TIMESTAMP() - INTERVAL %d DAY
+ AND `created` < %s - INTERVAL %s
AND `id` = `parent`
$sql_extra
- AND NOT ( item_flags & %d )
+ AND NOT ( item_flags & %d )>0
AND (item_restrict = 0 ) ",
intval($uid),
- intval($days),
+ db_utcnow(), db_quoteinterval(intval($days).' DAY'),
intval(ITEM_RETAINED)
);
@@ -3711,7 +3899,7 @@ function item_expire($uid,$days) {
}
function retain_item($id) {
- $r = q("update item set item_flags = (item_flags | %d ) where id = %d limit 1",
+ $r = q("update item set item_flags = (item_flags | %d ) where id = %d",
intval(ITEM_RETAINED),
intval($id)
);
@@ -3787,7 +3975,7 @@ function drop_item($id,$interactive = true,$stage = DROPITEM_NORMAL) {
// set the deleted flag immediately on this item just in case the
// hook calls a remote process which loops. We'll delete it properly in a second.
- $r = q("UPDATE item SET item_restrict = ( item_restrict | %d ) WHERE id = %d LIMIT 1",
+ $r = q("UPDATE item SET item_restrict = ( item_restrict | %d ) WHERE id = %d",
intval(ITEM_DELETED),
intval($item['id'])
);
@@ -3814,7 +4002,12 @@ function drop_item($id,$interactive = true,$stage = DROPITEM_NORMAL) {
// send the notification upstream/downstream as the case may be
// only send notifications to others if this is the owner's wall item.
- if(($item['item_flags'] & ITEM_WALL) && ($stage != DROPITEM_PHASE2))
+ // This isn't optimal. We somehow need to pass to this function whether or not
+ // to call the notifier, or we need to call the notifier from the calling function.
+ // We'll rely on the undocumented behaviour that DROPITEM_PHASE1 is (hopefully) only
+ // set if we know we're going to send delete notifications out to others.
+
+ if((($item['item_flags'] & ITEM_WALL) && ($stage != DROPITEM_PHASE2)) || ($stage == DROPITEM_PHASE1))
proc_run('php','include/notifier.php','drop',$notify_id);
goaway($a->get_baseurl() . '/' . $_SESSION['return_url']);
@@ -3839,7 +4032,7 @@ function delete_item_lowlevel($item,$stage = DROPITEM_NORMAL) {
switch($stage) {
case DROPITEM_PHASE2:
$r = q("UPDATE item SET item_restrict = ( item_restrict | %d ), body = '', title = '',
- changed = '%s', edited = '%s' WHERE id = %d LIMIT 1",
+ changed = '%s', edited = '%s' WHERE id = %d",
intval(ITEM_PENDING_REMOVE),
dbesc(datetime_convert()),
dbesc(datetime_convert()),
@@ -3849,7 +4042,7 @@ function delete_item_lowlevel($item,$stage = DROPITEM_NORMAL) {
case DROPITEM_PHASE1:
$r = q("UPDATE item SET item_restrict = ( item_restrict | %d ),
- changed = '%s', edited = '%s' WHERE id = %d LIMIT 1",
+ changed = '%s', edited = '%s' WHERE id = %d",
intval(ITEM_DELETED),
dbesc(datetime_convert()),
dbesc(datetime_convert()),
@@ -3860,7 +4053,7 @@ function delete_item_lowlevel($item,$stage = DROPITEM_NORMAL) {
case DROPITEM_NORMAL:
default:
$r = q("UPDATE item SET item_restrict = ( item_restrict | %d ), body = '', title = '',
- changed = '%s', edited = '%s' WHERE id = %d LIMIT 1",
+ changed = '%s', edited = '%s' WHERE id = %d",
intval(ITEM_DELETED),
dbesc(datetime_convert()),
dbesc(datetime_convert()),
@@ -3872,7 +4065,7 @@ function delete_item_lowlevel($item,$stage = DROPITEM_NORMAL) {
// immediately remove any undesired profile likes.
- q("delete from likes where iid = %d and channel_id = %d limit 1",
+ q("delete from likes where iid = %d and channel_id = %d",
intval($item['id']),
intval($item['uid'])
);
@@ -3883,7 +4076,7 @@ function delete_item_lowlevel($item,$stage = DROPITEM_NORMAL) {
if(strlen($item['resource_id'])) {
if($item['resource_type'] === 'event') {
- q("delete from event where event_hash = '%s' and uid = %d limit 1",
+ q("delete from event where event_hash = '%s' and uid = %d",
dbesc($item['resource_id']),
intval($item['uid'])
);
@@ -3903,12 +4096,12 @@ function delete_item_lowlevel($item,$stage = DROPITEM_NORMAL) {
if($stage == DROPITEM_PHASE1)
return true;
- $r = q("delete from term where otype = %d and oid = %d limit 1",
+ $r = q("delete from term where otype = %d and oid = %d",
intval(TERM_OBJ_POST),
intval($item['id'])
);
- q("delete from item_id where iid = %d and uid = %d limit 1",
+ q("delete from item_id where iid = %d and uid = %d",
intval($item['id']),
intval($item['uid'])
);
@@ -3927,7 +4120,7 @@ function delete_item_lowlevel($item,$stage = DROPITEM_NORMAL) {
function first_post_date($uid,$wall = false) {
- $wall_sql = (($wall) ? sprintf(" and item_flags & %d ", ITEM_WALL) : "" );
+ $wall_sql = (($wall) ? sprintf(" and (item_flags & %d)>0 ", ITEM_WALL) : "" );
$r = q("select id, created from item
where item_restrict = %d and uid = %d and id = parent $wall_sql
@@ -3949,10 +4142,13 @@ function first_post_date($uid,$wall = false) {
* current flat list of all representative dates.
*/
-function list_post_dates($uid,$wall) {
+function list_post_dates($uid,$wall,$mindate) {
$dnow = datetime_convert('',date_default_timezone_get(),'now','Y-m-d');
- $dthen = first_post_date($uid,$wall);
+ if($mindate)
+ $dthen = datetime_convert('',date_default_timezone_get(),$mindate);
+ else
+ $dthen = first_post_date($uid,$wall);
if(! $dthen)
return array();
@@ -3962,7 +4158,7 @@ function list_post_dates($uid,$wall) {
if(intval(substr($dnow,8)) > 28)
$dnow = substr($dnow,0,8) . '28';
if(intval(substr($dthen,8)) > 28)
- $dnow = substr($dthen,0,8) . '28';
+ $dthen = substr($dthen,0,8) . '28';
$ret = array();
// Starting with the current month, get the first and last days of every
@@ -3996,7 +4192,7 @@ function posted_dates($uid,$wall) {
if(intval(substr($dnow,8)) > 28)
$dnow = substr($dnow,0,8) . '28';
if(intval(substr($dthen,8)) > 28)
- $dnow = substr($dthen,0,8) . '28';
+ $dthen = substr($dthen,0,8) . '28';
$ret = array();
// Starting with the current month, get the first and last days of every
@@ -4070,17 +4266,29 @@ function fetch_post_tags($items,$link = false) {
-function zot_feed($uid,$observer_xchan,$mindate) {
+function zot_feed($uid,$observer_xchan,$arr) {
$result = array();
- $mindate = datetime_convert('UTC','UTC',$mindate);
- if(! $mindate)
- $mindate = '0000-00-00 00:00:00';
+ $mindate = null;
+ $message_id = null;
+ if(array_key_exists('mindate',$arr)) {
+ $mindate = datetime_convert('UTC','UTC',$arr['mindate']);
+ }
+
+ if(array_key_exists('message_id',$arr)) {
+ $message_id = $arr['message_id'];
+ }
+
+
+ if(! $mindate)
+ $mindate = NULL_DATE;
$mindate = dbesc($mindate);
- logger('zot_feed: ' . $uid);
+ logger('zot_feed: requested for uid ' . $uid . ' from observer ' . $observer_xchan, LOGGER_DEBUG);
+ if($message_id)
+ logger('message_id: ' . $message_id,LOGGER_DEBUG);
if(! perm_is_allowed($uid,$observer_xchan,'view_stream')) {
logger('zot_feed: permission denied.');
@@ -4092,30 +4300,35 @@ function zot_feed($uid,$observer_xchan,$mindate) {
$sql_extra = item_permissions_sql($uid);
}
- if($mindate != '0000-00-00 00:00:00') {
+ if($mindate != NULL_DATE) {
$sql_extra .= " and ( created > '$mindate' or edited > '$mindate' ) ";
$limit = "";
}
else
$limit = " limit 0, 50 ";
+ if($message_id) {
+ $sql_extra .= " and mid = '" . dbesc($message_id) . "' ";
+ $limit = '';
+ }
+
$items = array();
if(is_sys_channel($uid)) {
require_once('include/security.php');
- $r = q("SELECT distinct parent from item
+ $r = q("SELECT distinct parent, created from item
WHERE uid != %d
and uid in (" . stream_perms_api_uids(PERMS_PUBLIC) . ") AND item_restrict = 0
- AND (item_flags & %d)
+ AND (item_flags & %d)>0
and item_private = 0 $sql_extra ORDER BY created ASC $limit",
intval($uid),
intval(ITEM_WALL)
);
}
else {
- $r = q("SELECT distinct parent from item
+ $r = q("SELECT distinct parent, created from item
WHERE uid = %d AND item_restrict = 0
- AND (item_flags & %d)
+ AND (item_flags & %d)>0
$sql_extra ORDER BY created ASC $limit",
intval($uid),
intval(ITEM_WALL)
@@ -4178,12 +4391,12 @@ function items_fetch($arr,$channel = null,$observer_hash = null,$client_mode = C
}
if($arr['star'])
- $sql_options .= " and (item_flags & " . intval(ITEM_STARRED) . ") ";
+ $sql_options .= " and (item_flags & " . intval(ITEM_STARRED) . ")>0 ";
if($arr['wall'])
- $sql_options .= " and (item_flags & " . intval(ITEM_WALL) . ") ";
+ $sql_options .= " and (item_flags & " . intval(ITEM_WALL) . ")>0 ";
- $sql_extra = " AND item.parent IN ( SELECT parent FROM item WHERE (item_flags & " . intval(ITEM_THREAD_TOP) . ") $sql_options ) ";
+ $sql_extra = " AND item.parent IN ( SELECT parent FROM item WHERE (item_flags & " . intval(ITEM_THREAD_TOP) . ")>0 $sql_options ) ";
if($arr['since_id'])
$sql_extra .= " and item.id > " . $since_id . " ";
@@ -4221,7 +4434,7 @@ function items_fetch($arr,$channel = null,$observer_hash = null,$client_mode = C
}
elseif($arr['cid'] && $uid) {
- $r = 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 & " . intval(ABOOK_FLAG_BLOCKED) . ") limit 1",
+ $r = 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 & " . intval(ABOOK_FLAG_BLOCKED) . ")>0 limit 1",
intval($arr['cid']),
intval(local_user())
);
@@ -4261,7 +4474,7 @@ function items_fetch($arr,$channel = null,$observer_hash = null,$client_mode = C
}
if($arr['conv'] && $channel) {
- $sql_extra .= sprintf(" AND parent IN (SELECT distinct parent from item where ( author_xchan like '%s' or ( item_flags & %d ))) ",
+ $sql_extra .= sprintf(" AND parent IN (SELECT distinct parent from item where ( author_xchan like '%s' or ( item_flags & %d )>0)) ",
dbesc(protect_sprintf($uidhash)),
intval(ITEM_MENTIONSME)
);
@@ -4277,11 +4490,11 @@ function items_fetch($arr,$channel = null,$observer_hash = null,$client_mode = C
else {
$itemspage = (($channel) ? get_pconfig($uid,'system','itemspage') : 20);
$a->set_pager_itemspage(((intval($itemspage)) ? $itemspage : 20));
- $pager_sql = sprintf(" LIMIT %d, %d ",intval(get_app()->pager['start']), intval(get_app()->pager['itemspage']));
+ $pager_sql = sprintf(" LIMIT %d OFFSET %d ", intval(get_app()->pager['itemspage']), intval(get_app()->pager['start']));
}
if(isset($arr['start']) && isset($arr['records']))
- $pager_sql = sprintf(" LIMIT %d, %d ",intval($arr['start']), intval($arr['records']));
+ $pager_sql = sprintf(" LIMIT %d OFFSET %d ", intval($arr['records']), intval($arr['start']));
if(array_key_exists('cmin',$arr) || array_key_exists('cmax',$arr)) {
if(($arr['cmin'] != 0) || ($arr['cmax'] != 99)) {
@@ -4303,7 +4516,7 @@ function items_fetch($arr,$channel = null,$observer_hash = null,$client_mode = C
}
}
- $simple_update = (($client_mode & CLIENT_MODE_UPDATE) ? " and ( item.item_flags & " . intval(ITEM_UNSEEN) . " ) " : '');
+ $simple_update = (($client_mode & CLIENT_MODE_UPDATE) ? " and ( item.item_flags & " . intval(ITEM_UNSEEN) . " )>0 " : '');
if($client_mode & CLIENT_MODE_LOAD)
$simple_update = '';
@@ -4347,7 +4560,7 @@ function items_fetch($arr,$channel = null,$observer_hash = null,$client_mode = C
// Fetch a page full of parent items for this page
- $r = q("SELECT distinct item.id AS item_id FROM item
+ $r = q("SELECT distinct item.id AS item_id, item.$ordering FROM item
left join abook on item.author_xchan = abook.abook_xchan
WHERE $item_uids $item_restrict
AND item.parent = item.id
@@ -4445,7 +4658,7 @@ function update_remote_id($channel,$post_id,$webpage,$pagetitle,$namespace,$remo
dbesc($page_type)
);
if($r) {
- q("update item_id set sid = '%s' where id = %d limit 1",
+ q("update item_id set sid = '%s' where id = %d",
dbesc(($pagetitle) ? $pagetitle : substr($mid,0,16)),
intval($r[0]['id'])
);
@@ -4476,7 +4689,7 @@ function item_add_cid($xchan_hash,$mid,$uid) {
dbesc('<' . $xchan_hash . '>')
);
if(! $r) {
- $r = q("update item set allow_cid = concat(allow_cid,'%s') where mid = '%s' and uid = %d limit 1",
+ $r = q("update item set allow_cid = concat(allow_cid,'%s') where mid = '%s' and uid = %d",
dbesc('<' . $xchan_hash . '>'),
dbesc($mid),
intval($uid)
@@ -4491,7 +4704,7 @@ function item_remove_cid($xchan_hash,$mid,$uid) {
dbesc('<' . $xchan_hash . '>')
);
if($r) {
- $x = q("update item set allow_cid = '%s' where mid = '%s' and uid = %d limit 1",
+ $x = q("update item set allow_cid = '%s' where mid = '%s' and uid = %d",
dbesc(str_replace('<' . $xchan_hash . '>','',$r[0]['allow_cid'])),
dbesc($mid),
intval($uid)
diff --git a/include/js_strings.php b/include/js_strings.php
index cda66a09c..f4c0a631d 100644
--- a/include/js_strings.php
+++ b/include/js_strings.php
@@ -15,6 +15,7 @@ function js_strings() {
'$passhint' => t('Passphrase hint'),
'$permschange' => t('Notice: Permissions have changed but have not yet been submitted.'),
'$closeAll' => t('close all'),
+ '$nothingnew' => t('Nothing new here'),
'$t01' => ((t('timeago.prefixAgo') != 'timeago.prefixAgo') ? t('timeago.prefixAgo') : ''),
'$t02' => ((t('timeago.prefixFromNow') != 'timeago.prefixFromNow') ? t('timeago.prefixFromNow') : ''),
diff --git a/include/language.php b/include/language.php
index 855d94505..9db57dceb 100644
--- a/include/language.php
+++ b/include/language.php
@@ -146,7 +146,7 @@ function load_translation_table($lang, $install = false) {
*
* @param $s string that should get translated
* @param $ctx optional context to appear in po file
- * @return translated string if exsists, otherwise s
+ * @return translated string if exists, otherwise return $s
*
*/
function t($s,$ctx = '') {
diff --git a/include/menu.php b/include/menu.php
index 4b0a11f10..9dc236605 100644
--- a/include/menu.php
+++ b/include/menu.php
@@ -124,7 +124,17 @@ function menu_list($channel_id, $name = '', $flags = 0) {
return $r;
}
+function menu_list_count($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 count(*) as total from menu where menu_channel_id = %d $sel_options",
+ intval($channel_id)
+ );
+ return $r[0]['total'];
+}
function menu_edit($arr) {
@@ -166,7 +176,7 @@ function menu_edit($arr) {
}
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",
+ where menu_id = %d and menu_channel_id = %d",
dbesc($menu_name),
dbesc($menu_desc),
intval($menu_flags),
@@ -293,7 +303,7 @@ function menu_edit_item($menu_id, $uid, $arr) {
}
- $r = q("update menu_item set mitem_link = '%s', mitem_desc = '%s', mitem_flags = %d, allow_cid = '%s', allow_gid = '%s', deny_cid = '%s', deny_gid = '%s', mitem_order = %d where mitem_channel_id = %d and mitem_menu_id = %d and mitem_id = %d limit 1",
+ $r = q("update menu_item set mitem_link = '%s', mitem_desc = '%s', mitem_flags = %d, allow_cid = '%s', allow_gid = '%s', deny_cid = '%s', deny_gid = '%s', mitem_order = %d where mitem_channel_id = %d and mitem_menu_id = %d and mitem_id = %d",
dbesc($mitem_link),
dbesc($mitem_desc),
intval($mitem_flags),
@@ -313,7 +323,7 @@ function menu_edit_item($menu_id, $uid, $arr) {
function menu_del_item($menu_id,$uid,$item_id) {
- $r = q("delete from menu_item where mitem_menu_id = %d and mitem_channel_id = %d and mitem_id = %d limit 1",
+ $r = q("delete from menu_item where mitem_menu_id = %d and mitem_channel_id = %d and mitem_id = %d",
intval($menu_id),
intval($uid),
intval($item_id)
diff --git a/include/message.php b/include/message.php
index 607166ec9..49278f273 100644
--- a/include/message.php
+++ b/include/message.php
@@ -23,10 +23,13 @@ function send_message($uid = 0, $recipient='', $body='', $subject='', $replyto='
$subject = t('[no subject]');
// if(! $expires)
-// $expires = '0000-00-00 00:00:00';
+// $expires = NULL_DATE;
// else
// $expires = datetime_convert(date_default_timezone_get(),'UTC',$expires);
+
+
+
if($uid) {
$r = q("select * from channel where channel_id = %d limit 1",
intval($uid)
@@ -43,6 +46,59 @@ function send_message($uid = 0, $recipient='', $body='', $subject='', $replyto='
return $ret;
}
+
+ // look for any existing conversation structure
+
+ if(strlen($replyto)) {
+ $r = q("select convid from mail where channel_id = %d and ( mid = '%s' or parent_mid = '%s' ) limit 1",
+ intval(local_user()),
+ dbesc($replyto),
+ dbesc($replyto)
+ );
+ if($r)
+ $convid = $r[0]['convid'];
+ }
+
+ if(! $convid) {
+
+ // create a new conversation
+
+ $conv_guid = random_string();
+
+ $recip = q("select * from xchan where xchan_hash = '%s' limit 1",
+ dbesc($recipient)
+ );
+ if($recip)
+ $recip_handle = $recip[0]['xchan_addr'];
+
+ $sender_handle = $channel['channel_address'] . '@' . get_app()->get_hostname();
+
+ $handles = $recip_handle . ';' . $sender_handle;
+
+ $r = q("insert into conv (uid,guid,creator,created,updated,subject,recips) values(%d, '%s', '%s', '%s', '%s', '%s', '%s') ",
+ intval(local_user()),
+ dbesc($conv_guid),
+ dbesc($sender_handle),
+ dbesc(datetime_convert()),
+ dbesc(datetime_convert()),
+ dbesc($subject),
+ dbesc($handles)
+ );
+
+ $r = q("select * from conv where guid = '%s' and uid = %d limit 1",
+ dbesc($conv_guid),
+ intval(local_user())
+ );
+ if($r)
+ $convid = $r[0]['id'];
+ }
+
+ if(! $convid) {
+ $ret['message'] = 'conversation not found';
+ return $ret;
+ }
+
+
// generate a unique message_id
do {
@@ -115,9 +171,10 @@ function send_message($uid = 0, $recipient='', $body='', $subject='', $replyto='
- $r = q("INSERT INTO mail ( account_id, mail_flags, channel_id, from_xchan, to_xchan, title, body, attach, mid, parent_mid, created, expires )
- VALUES ( %d, %d, %d, '%s', '%s', '%s', '%s', '%s', '%s', '%s', '%s', '%s' )",
+ $r = q("INSERT INTO mail ( account_id, convid, mail_flags, channel_id, from_xchan, to_xchan, title, body, attach, mid, parent_mid, created, expires )
+ VALUES ( %d, %d, %d, %d, '%s', '%s', '%s', '%s', '%s', '%s', '%s', '%s', '%s' )",
intval($channel['channel_account_id']),
+ intval($convid),
intval(MAIL_OBSCURED),
intval($channel['channel_id']),
dbesc($channel['channel_hash']),
@@ -186,7 +243,7 @@ function private_messages_list($uid, $mailbox = '', $start = 0, $numitems = 0) {
$limit = '';
if($numitems)
- $limit = " LIMIT " . intval($start) . ", " . intval($numitems);
+ $limit = " LIMIT " . intval($numitems) . " OFFSET " . intval($start);
if($mailbox !== '') {
$x = q("select channel_hash from channel where channel_id = %d limit 1",
@@ -227,9 +284,7 @@ function private_messages_list($uid, $mailbox = '', $start = 0, $numitems = 0) {
$r[$k]['to'] = find_xchan_in_array($rr['to_xchan'],$c);
$r[$k]['seen'] = (($rr['mail_flags'] & MAIL_SEEN) ? 1 : 0);
if($r[$k]['mail_flags'] & MAIL_OBSCURED) {
- logger('unencrypting');
$key = get_config('system','prvkey');
-
if($r[$k]['title'])
$r[$k]['title'] = crypto_unencapsulate(json_decode_plus($r[$k]['title']),$key);
if($r[$k]['body'])
@@ -277,7 +332,7 @@ function private_messages_fetch_message($channel_id, $messageitem_id, $updatesee
}
if($updateseen) {
- $r = q("UPDATE `mail` SET mail_flags = (mail_flags ^ %d) where not (mail_flags & %d) and id = %d AND channel_id = %d",
+ $r = q("UPDATE `mail` SET mail_flags = (mail_flags | %d) where not (mail_flags & %d)>0 and id = %d AND channel_id = %d",
intval(MAIL_SEEN),
intval(MAIL_SEEN),
dbesc($messageitem_id),
@@ -308,7 +363,7 @@ function private_messages_drop($channel_id, $messageitem_id, $drop_conversation
}
}
else {
- $r = q("DELETE FROM mail WHERE id = %d AND channel_id = %d LIMIT 1",
+ $r = q("DELETE FROM mail WHERE id = %d AND channel_id = %d",
intval($messageitem_id),
intval($channel_id)
);
@@ -366,7 +421,7 @@ function private_messages_fetch_conversation($channel_id, $messageitem_id, $upda
if($updateseen) {
- $r = q("UPDATE `mail` SET mail_flags = (mail_flags ^ %d) where not (mail_flags & %d) and parent_mid = '%s' AND channel_id = %d",
+ $r = q("UPDATE `mail` SET mail_flags = (mail_flags | %d) where not (mail_flags & %d)>0 and parent_mid = '%s' AND channel_id = %d",
intval(MAIL_SEEN),
intval(MAIL_SEEN),
dbesc($r[0]['parent_mid']),
diff --git a/include/nav.php b/include/nav.php
index 799faf5ce..a9bff4b29 100644
--- a/include/nav.php
+++ b/include/nav.php
@@ -38,7 +38,7 @@ EOT;
intval($channel['channel_id'])
);
- $chans = q("select channel_name, channel_id from channel where channel_account_id = %d and not ( channel_pageflags & %d ) order by channel_name ",
+ $chans = q("select channel_name, channel_id from channel where channel_account_id = %d and not ( channel_pageflags & %d )>0 order by channel_name ",
intval(get_account_id()),
intval(PAGE_REMOVED)
);
@@ -84,6 +84,7 @@ EOT;
$nav['usermenu']=array();
$userinfo = null;
+ $nav['loginmenu']=array();
if(local_user()) {
@@ -91,54 +92,57 @@ EOT;
if($chans && count($chans) > 1 && feature_enabled(local_user(),'nav_channel_select'))
$nav['channels'] = $chans;
- $nav['logout'] = Array('logout',t('Logout'), "", t('End this session'));
+ $nav['logout'] = Array('logout',t('Logout'), "", t('End this session'),'logout_nav_btn');
// user menu
- $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'));
+ $nav['usermenu'][] = Array('channel/' . $channel['channel_address'], t('Home'), "", t('Your posts and conversations'),'channel_nav_btn');
+ $nav['usermenu'][] = Array('profile/' . $channel['channel_address'], t('View Profile'), "", t('Your profile page'),'profile_nav_btn');
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'),'profiles_nav_btn');
else
- $nav['usermenu'][] = Array('profiles/' . $prof[0]['id'], t('Edit Profile'),"", t('Edit your profile'));
+ $nav['usermenu'][] = Array('profiles/' . $prof[0]['id'], t('Edit Profile'),"", t('Edit your profile'),'profiles_nav_btn');
- $nav['usermenu'][] = Array('photos/' . $channel['channel_address'], t('Photos'), "", t('Your photos'));
- $nav['usermenu'][] = Array('cloud/' . $channel['channel_address'],t('Files'),"",t('Your files'));
+ $nav['usermenu'][] = Array('photos/' . $channel['channel_address'], t('Photos'), "", t('Your photos'),'photos_nav_btn');
+ $nav['usermenu'][] = Array('cloud/' . $channel['channel_address'],t('Files'),"",t('Your files'),'cloud_nav_btn');
require_once('include/chat.php');
- $chats = chatroom_list(local_user());
- if (count($chats)) {
- $nav['usermenu'][] = Array('chat/' . $channel['channel_address'],t('Chat'),"",t('Your chatrooms'));
+ $has_chats = chatroom_list_count(local_user());
+ if($has_chats) {
+ $nav['usermenu'][] = Array('chat/' . $channel['channel_address'],t('Chat'),"",t('Your chatrooms'),'chat_nav_btn');
+ }
+
+ require_once('include/menu.php');
+ $has_bookmarks = menu_list_count(local_user(),'',MENU_BOOKMARK) + menu_list_count(local_user(),'',MENU_SYSTEM|MENU_BOOKMARK);
+ if($has_bookmarks) {
+ $nav['usermenu'][] = Array('bookmarks', t('Bookmarks'), "", t('Your bookmarks'),'bookmarks_nav_btn');
}
- $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'));
+ $nav['usermenu'][] = Array('webpages/' . $channel['channel_address'],t('Webpages'),"",t('Your webpages'),'webpages_nav_btn');
}
else {
- if(! get_account_id())
- $nav['login'] = Array('login',t('Login'), ($a->module == 'login'?'selected':''), t('Sign in'));
+ if(! get_account_id()) {
+ $nav['loginmenu'][] = Array('login',t('Login'),'',t('Sign in'),'login_nav_btn');
+ }
else
- $nav['alogout'] = Array('logout',t('Logout'), "", t('End this session'));
+ $nav['alogout'] = Array('logout',t('Logout'), "", t('End this session'),'logout_nav_btn');
}
if($observer) {
$userinfo = array(
- 'icon' => $observer['xchan_photo_m'],
+ 'icon' => $observer['xchan_photo_s'],
'name' => $observer['xchan_addr'],
);
}
if($observer) {
- $nav['locked'] = true;
$nav['lock'] = array('logout','','lock',
sprintf( t('%s - click to logout'), $observer['xchan_addr']));
}
else {
- $nav['locked'] = false;
- $nav['lock'] = array('rmagic','','unlock',
- t('Click to authenticate to your home hub'));
+ $nav['loginmenu'][] = Array('rmagic',t('Remote authentication'),'',t('Click to authenticate to your home hub'),'rmagic_nav_btn');
}
/**
@@ -152,24 +156,24 @@ EOT;
}
if(($a->module != 'home') && (! (local_user())))
- $nav['home'] = array($homelink, t('Home'), "", t('Home Page'));
+ $nav['home'] = array($homelink, t('Home'), "", t('Home Page'),'home_nav_btn');
if(($a->config['system']['register_policy'] == REGISTER_OPEN) && (! local_user()) && (! remote_user()))
- $nav['register'] = array('register',t('Register'), "", t('Create an account'));
+ $nav['register'] = array('register',t('Register'), "", t('Create an account'),'register_nav_btn');
$help_url = z_root() . '/help?f=&cmd=' . $a->cmd;
if(! get_config('system','hide_help'))
- $nav['help'] = array($help_url, t('Help'), "", t('Help and documentation'));
+ $nav['help'] = array($help_url, t('Help'), "", t('Help and documentation'),'help_nav_btn');
- $nav['apps'] = array('apps', t('Apps'), "", t('Applications, utilities, links, games'));
+ $nav['apps'] = array('apps', t('Apps'), "", t('Applications, utilities, links, games'),'apps_nav_btn');
$nav['search'] = array('search', t('Search'), "", t('Search site content'));
- $nav['directory'] = array('directory', t('Directory'), "", t('Channel Locator'));
+ $nav['directory'] = array('directory', t('Directory'), "", t('Channel Directory'),'directory_nav_btn');
/**
@@ -180,21 +184,24 @@ EOT;
if(local_user()) {
- $nav['network'] = array('network', t('Matrix'), "", t('Your matrix'));
+ $network_options = get_pconfig(local_user(),'system','network_page_default');
+
+ $nav['network'] = array('network' . (($network_options) ? '?f=&' . $network_options : ''),
+ t('Matrix'), "", t('Your matrix'),'network_nav_btn');
$nav['network']['mark'] = array('', t('Mark all matrix notifications seen'), '','');
- $nav['home'] = array('channel/' . $channel['channel_address'], t('Channel Home'), "", t('Channel home'));
+ $nav['home'] = array('channel/' . $channel['channel_address'], t('Channel Home'), "", t('Channel home'),'home_nav_btn');
$nav['home']['mark'] = array('', t('Mark all channel notifications seen'), '','');
- $nav['intros'] = array('connections/ifpending', t('Connections'), "", t('Connections'));
+ $nav['intros'] = array('connections/ifpending', t('Connections'), "", t('Connections'),'connections_nav_btn');
- $nav['notifications'] = array('notifications/system', t('Notices'), "", t('Notifications'));
+ $nav['notifications'] = array('notifications/system', t('Notices'), "", t('Notifications'),'notifications_nav_btn');
$nav['notifications']['all']=array('notifications/system', t('See all notifications'), "", "");
$nav['notifications']['mark'] = array('', t('Mark all system notifications seen'), '','');
- $nav['messages'] = array('message', t('Mail'), "", t('Private mail'));
+ $nav['messages'] = array('message', t('Mail'), "", t('Private mail'),'mail_nav_btn');
$nav['messages']['all']=array('message', t('See all private messages'), "", "");
$nav['messages']['mark'] = array('', t('Mark all private messages seen'), '','');
$nav['messages']['inbox'] = array('message', t('Inbox'), "", t('Inbox'));
@@ -202,13 +209,13 @@ EOT;
$nav['messages']['new'] = array('mail/new', t('New Message'), "", t('New Message'));
- $nav['all_events'] = array('events', t('Events'), "", t('Event Calendar'));
+ $nav['all_events'] = array('events', t('Events'), "", t('Event Calendar'),'events_nav_btn');
$nav['all_events']['all']=array('events', t('See all events'), "", "");
$nav['all_events']['mark'] = array('', t('Mark all events seen'), '','');
- $nav['manage'] = array('manage', t('Channel Manager'), "", t('Manage Your Channels'));
+ $nav['manage'] = array('manage', t('Channel Manager'), "", t('Manage Your Channels'),'manage_nav_btn');
- $nav['settings'] = array('settings', t('Settings'),"", t('Account/Channel Settings'));
+ $nav['settings'] = array('settings', t('Settings'),"", t('Account/Channel Settings'),'settings_nav_btn');
}
@@ -216,7 +223,7 @@ EOT;
* Admin page
*/
if (is_site_admin()){
- $nav['admin'] = array('admin/', t('Admin'), "", t('Site Setup and Configuration'));
+ $nav['admin'] = array('admin/', t('Admin'), "", t('Site Setup and Configuration'),'admin_nav_btn');
}
@@ -234,6 +241,12 @@ EOT;
$x = array('nav' => $nav, 'usermenu' => $userinfo );
call_hooks('nav', $x);
+// Not sure the best place to put this on the page. So I'm implementing it but leaving it
+// turned off until somebody discovers this and figures out a good location for it.
+$powered_by = '';
+
+// $powered_by = '<strong>red<img class="smiley" src="' . $a->get_baseurl() . '/images/rm-16.png" alt="r#" />matrix</strong>';
+
$tpl = get_markup_template('nav.tpl');
$a->page['nav'] .= replace_macros($tpl, array(
@@ -241,10 +254,12 @@ EOT;
'$sitelocation' => $sitelocation,
'$nav' => $x['nav'],
'$banner' => $banner,
- '$emptynotifications' => t('Nothing new here'),
+ '$emptynotifications' => t('Loading...'),
'$userinfo' => $x['usermenu'],
'$localuser' => local_user(),
'$sel' => $a->nav_sel,
+ '$powered_by' => $powered_by,
+ '$help' => t('@name, #tag, content'),
'$pleasewait' => t('Please wait...')
));
diff --git a/include/network.php b/include/network.php
index 5ad391491..98c411cd8 100644
--- a/include/network.php
+++ b/include/network.php
@@ -38,6 +38,7 @@ function z_fetch_url($url, $binary = false, $redirects = 0, $opts = array()) {
return false;
@curl_setopt($ch, CURLOPT_HEADER, true);
+ @curl_setopt($ch, CURLINFO_HEADER_OUT, true);
@curl_setopt($ch, CURLOPT_CAINFO, get_capath());
@curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, true);
@curl_setopt($ch, CURLOPT_RETURNTRANSFER,true);
@@ -47,11 +48,8 @@ function z_fetch_url($url, $binary = false, $redirects = 0, $opts = array()) {
if($ciphers)
@curl_setopt($ch, CURLOPT_SSL_CIPHER_LIST, $ciphers);
- if (x($opts,'accept_content')){
- @curl_setopt($ch,CURLOPT_HTTPHEADER, array (
- "Accept: " . $opts['accept_content']
- ));
- }
+ if(x($opts,'headers'))
+ @curl_setopt($ch, CURLOPT_HTTPHEADER, $opts['headers']);
if(x($opts,'timeout') && intval($opts['timeout'])) {
@curl_setopt($ch, CURLOPT_TIMEOUT, $opts['timeout']);
@@ -126,12 +124,39 @@ function z_fetch_url($url, $binary = false, $redirects = 0, $opts = array()) {
}
$ret['body'] = substr($s,strlen($header));
$ret['header'] = $header;
+
+ if(x($opts,'debug')) {
+ $ret['debug'] = $curl_info;
+ }
@curl_close($ch);
return($ret);
}
+/**
+ * @function z_post_url
+ * @param string $url
+ * URL to post
+ * @param mixed $params
+ * The full data to post in a HTTP "POST" operation. This parameter can
+ * either be passed as a urlencoded string like 'para1=val1&para2=val2&...'
+ * or as an array with the field name as key and field data as value. If value
+ * is an array, the Content-Type header will be set to multipart/form-data.
+ * @param int $redirects = 0
+ * internal use, recursion counter
+ * @param array $opts (optional parameters)
+ * 'accept_content' => supply Accept: header with 'accept_content' as the value
+ * 'timeout' => int seconds, default system config value or 60 seconds
+ * 'http_auth' => username:password
+ * 'novalidate' => do not validate SSL certs, default is to validate using our CA list
+ *
+ * @returns array
+ * 'return_code' => HTTP return code or 0 if timeout or failure
+ * 'success' => boolean true (if HTTP 2xx result) or false
+ * 'header' => HTTP headers
+ * 'body' => fetched content
+ */
function z_post_url($url,$params, $redirects = 0, $opts = array()) {
@@ -143,6 +168,7 @@ function z_post_url($url,$params, $redirects = 0, $opts = array()) {
return ret;
@curl_setopt($ch, CURLOPT_HEADER, true);
+ @curl_setopt($ch, CURLINFO_HEADER_OUT, true);
@curl_setopt($ch, CURLOPT_CAINFO, get_capath());
@curl_setopt($ch, CURLOPT_RETURNTRANSFER,true);
@curl_setopt($ch, CURLOPT_POST,1);
@@ -153,12 +179,6 @@ function z_post_url($url,$params, $redirects = 0, $opts = array()) {
if($ciphers)
@curl_setopt($ch, CURLOPT_SSL_CIPHER_LIST, $ciphers);
-
- if (x($opts,'accept_content')){
- @curl_setopt($ch,CURLOPT_HTTPHEADER, array (
- "Accept: " . $opts['accept_content']
- ));
- }
if(x($opts,'headers'))
@curl_setopt($ch, CURLOPT_HTTPHEADER, $opts['headers']);
@@ -235,11 +255,24 @@ function z_post_url($url,$params, $redirects = 0, $opts = array()) {
$ret['body'] = substr($s,strlen($header));
$ret['header'] = $header;
+
+ if(x($opts,'debug')) {
+ $ret['debug'] = $curl_info;
+ }
+
+
curl_close($ch);
return($ret);
}
+function z_post_url_json($url,$params,$redirects = 0, $opts = array()) {
+
+ $opts = array_merge($opts,array('headers' => array('Content-Type: application/json')));
+ return z_post_url($url,json_encode($params),$redirects,$opts);
+
+}
+
function json_return_and_die($x) {
header("content-type: application/json");
@@ -369,7 +402,7 @@ function validate_email($addr) {
return false;
$h = substr($addr,strpos($addr,'@') + 1);
- if(($h) && (dns_get_record($h, DNS_A + DNS_CNAME + DNS_PTR + DNS_MX) || filter_var($h['host'], FILTER_VALIDATE_IP) )) {
+ if(($h) && (dns_get_record($h, DNS_A + DNS_CNAME + DNS_PTR + DNS_MX) || filter_var($h, FILTER_VALIDATE_IP) )) {
return true;
}
return false;
@@ -958,7 +991,7 @@ function discover_by_url($url,$arr = null) {
);
$photos = import_profile_photo($photo,$guid);
- $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_hash = '%s' limit 1",
+ $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_hash = '%s'",
dbesc(datetime_convert()),
dbesc($photos[0]),
dbesc($photos[1]),
@@ -1059,25 +1092,27 @@ function discover_by_webbie($webbie) {
$r = q("select * from xchan where xchan_hash = '%s' limit 1",
dbesc($webbie)
);
- if($r)
- return true;
-
- $r = q("insert into xchan ( xchan_hash, xchan_guid, xchan_pubkey, xchan_addr, xchan_url, xchan_name, xchan_network, xchan_instance_url, xchan_name_date ) values ('%s', '%s', '%s', '%s', '%s', '%s', '%s', '%s', '%s') ",
- dbesc($addr),
- dbesc($guid),
- dbesc($pubkey),
- dbesc($addr),
- dbesc($profile),
- dbesc($vcard['fn']),
- dbesc($network),
- dbesc(z_root()),
- dbesc(datetime_convert())
- );
+ if(! $r) {
+
+ $r = q("insert into xchan ( xchan_hash, xchan_guid, xchan_pubkey, xchan_addr, xchan_url, xchan_name, xchan_network, xchan_instance_url, xchan_name_date ) values ('%s', '%s', '%s', '%s', '%s', '%s', '%s', '%s', '%s') ",
+ dbesc($addr),
+ dbesc($guid),
+ dbesc($pubkey),
+ dbesc($addr),
+ dbesc($profile),
+ dbesc($vcard['fn']),
+ dbesc($network),
+ dbesc(z_root()),
+ dbescdate(datetime_convert())
+ );
+ }
$r = q("select * from hubloc where hubloc_hash = '%s' limit 1",
dbesc($webbie)
);
+
if(! $r) {
+
$r = q("insert into hubloc ( hubloc_guid, hubloc_hash, hubloc_addr, hubloc_network, hubloc_url, hubloc_host, hubloc_callback, hubloc_updated, hubloc_flags ) values ('%s','%s','%s','%s','%s','%s','%s','%s', %d)",
dbesc($guid),
dbesc($addr),
@@ -1086,13 +1121,13 @@ function discover_by_webbie($webbie) {
dbesc(trim($diaspora_base,'/')),
dbesc($hostname),
dbesc($notify),
- dbesc(datetime_convert()),
+ dbescdate(datetime_convert()),
intval(HUBLOC_FLAGS_PRIMARY)
);
}
$photos = import_profile_photo($vcard['photo'],$addr);
- $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_hash = '%s' limit 1",
- dbesc(datetime_convert('UTC','UTC',$arr['photo_updated'])),
+ $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_hash = '%s'",
+ dbescdate(datetime_convert('UTC','UTC',$arr['photo_updated'])),
dbesc($photos[0]),
dbesc($photos[1]),
dbesc($photos[2]),
diff --git a/include/notifier.php b/include/notifier.php
index 88bb9a0cb..e1eb0c554 100644
--- a/include/notifier.php
+++ b/include/notifier.php
@@ -57,6 +57,8 @@ require_once('include/html2plain.php');
* purge_all channel_id
* expire channel_id
* relay item_id (item was relayed to owner, we will deliver it as owner)
+ * location channel_id
+ * request channel_id xchan_hash message_id
*
*/
@@ -97,7 +99,7 @@ function notifier_run($argv, $argc){
// Get the recipient
$r = q("select abook.*, hubloc.* from abook
left join hubloc on hubloc_hash = abook_xchan
- where abook_id = %d and not ( abook_flags & %d ) limit 1",
+ where abook_id = %d and not ( abook_flags & %d )>0 limit 1",
intval($item_id),
intval(ABOOK_FLAG_SELF)
);
@@ -141,9 +143,11 @@ function notifier_run($argv, $argc){
$expire = false;
+ $request = false;
$mail = false;
$fsuggest = false;
$top_level = false;
+ $location = false;
$recipients = array();
$url_recipients = array();
$normal_mode = true;
@@ -156,7 +160,7 @@ function notifier_run($argv, $argc){
$message = q("SELECT * FROM `mail` WHERE `id` = %d LIMIT 1",
intval($item_id)
);
- if(! count($message)){
+ if(! $message) {
return;
}
xchan_mail_query($message[0]);
@@ -173,6 +177,22 @@ function notifier_run($argv, $argc){
$channel = $s[0];
}
+ elseif($cmd === 'request') {
+ $channel_id = $item_id;
+ $xchan = $argv[3];
+ $request_message_id = $argv[4];
+
+ $s = q("select * from channel where channel_id = %d limit 1",
+ intval($channel_id)
+ );
+ if($s)
+ $channel = $s[0];
+
+ $private = true;
+ $recipients[] = $xchan;
+ $packet_type = 'request';
+ $normal_mode = false;
+ }
elseif($cmd === 'expire') {
// FIXME
@@ -185,11 +205,12 @@ function notifier_run($argv, $argc){
$normal_mode = false;
$expire = true;
- $items = q("SELECT * FROM item WHERE uid = %d AND ( item_flags & %d )
- AND ( item_restrict & %d ) AND `changed` > UTC_TIMESTAMP() - INTERVAL 10 MINUTE",
+ $items = q("SELECT * FROM item WHERE uid = %d AND ( item_flags & %d )>0
+ AND ( item_restrict & %d )>0 AND `changed` > %s - INTERVAL %s",
intval($item_id),
intval(ITEM_WALL),
- intval(ITEM_DELETED)
+ intval(ITEM_DELETED),
+ db_utcnow(), db_quoteinterval('10 MINUTE')
);
$uid = $item_id;
$item_id = 0;
@@ -230,6 +251,30 @@ function notifier_run($argv, $argc){
$private = false;
$packet_type = 'refresh';
}
+ elseif($cmd === 'location') {
+ logger('notifier: location: ' . $item_id);
+ $s = q("select * from channel where channel_id = %d limit 1",
+ intval($item_id)
+ );
+ if($s)
+ $channel = $s[0];
+ $uid = $item_id;
+ $recipients = array();
+ $r = q("select abook_xchan from abook where abook_channel = %d",
+ intval($item_id)
+ );
+ if($r) {
+ foreach($r as $rr) {
+ $recipients[] = $rr['abook_xchan'];
+ }
+ }
+
+ $encoded_item = array('locations' => zot_encode_locations($channel),'type' => 'location', 'encoding' => 'zot');
+ $target_item = array('aid' => $channel['channel_account_id'],'uid' => $channel['channel_id']);
+ $private = false;
+ $packet_type = 'location';
+ $location = true;
+ }
elseif($cmd === 'purge_all') {
logger('notifier: purge_all: ' . $item_id);
$s = q("select * from channel where channel_id = %d limit 1",
@@ -429,8 +474,10 @@ function notifier_run($argv, $argc){
// for public posts always include our own hub
+// this shouldn't be needed any more. collect_recipients should take care of it.
+// $sql_extra = (($private) ? "" : " or hubloc_url = '" . dbesc(z_root()) . "' ");
- $sql_extra = (($private) ? "" : " or hubloc_url = '" . dbesc(z_root()) . "' ");
+ logger('notifier: hub choice: ' . intval($relay_to_owner) . ' ' . intval($private) . ' ' . $cmd, LOGGER_DEBUG);
if($relay_to_owner && (! $private) && ($cmd !== 'relay')) {
@@ -446,28 +493,51 @@ function notifier_run($argv, $argc){
$r = q("select hubloc_guid, hubloc_url, hubloc_sitekey, hubloc_network, 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");
+ where hubloc_hash in (" . implode(',',$recipients) . ") order by hubloc_connected desc limit 1");
}
else {
$r = q("select hubloc_guid, hubloc_url, hubloc_sitekey, hubloc_network, hubloc_flags, hubloc_callback, hubloc_host from hubloc
- where hubloc_hash in (" . implode(',',$recipients) . ") $sql_extra group by hubloc_sitekey");
- }
+ where hubloc_hash in (" . implode(',',$recipients) . ") and not (hubloc_flags & %d) > 0 and not (hubloc_status & %d) > 0",
+ intval(HUBLOC_FLAGS_DELETED),
+ intval(HUBLOC_OFFLINE)
+ );
+ }
if(! $r) {
logger('notifier: no hubs');
return;
}
+
$hubs = $r;
- $hublist = array();
- $keys = array();
+
+ /**
+ * Reduce the hubs to those that are unique. For zot hubs, we need to verify uniqueness by the sitekey, since it may have been
+ * a re-install which has not yet been detected and pruned.
+ * For other networks which don't have or require sitekeys, we'll have to use the URL
+ */
+
+
+ $hublist = array(); // this provides an easily printable list for the logs
+ $dhubs = array(); // delivery hubs where we store our resulting unique array
+ $keys = array(); // array of keys to check uniquness for zot hubs
+ $urls = array(); // array of urls to check uniqueness of hubs from other networks
+
foreach($hubs as $hub) {
- // don't try to deliver to deleted hublocs - and inexplicably SQL "distinct" and "group by"
- // both return records with duplicate keys in rare circumstances
- if((! ($hub['hubloc_flags'] & HUBLOC_FLAGS_DELETED)) && (! in_array($hub['hubloc_sitekey'],$keys))) {
- $hublist[] = $hub['hubloc_host'];
- $keys[] = $hub['hubloc_sitekey'];
+ if($hub['hubloc_network'] == 'zot') {
+ if(! in_array($hub['hubloc_sitekey'],$keys)) {
+ $hublist[] = $hub['hubloc_host'];
+ $dhubs[] = $hub;
+ $keys[] = $hub['hubloc_sitekey'];
+ }
+ }
+ else {
+ if(! in_array($hub['hubloc_url'],$urls)) {
+ $hublist[] = $hub['hubloc_host'];
+ $dhubs[] = $hub;
+ $urls[] = $hub['hubloc_url'];
+ }
}
}
@@ -483,7 +553,7 @@ function notifier_run($argv, $argc){
$deliver = array();
- foreach($hubs as $hub) {
+ foreach($dhubs as $hub) {
if(defined('DIASPORA_RELIABILITY_EMULATION')) {
$cointoss = mt_rand(0,2);
@@ -514,7 +584,9 @@ function notifier_run($argv, $argc){
'cmd' => $cmd,
'expire' => $expire,
'mail' => $mail,
+ 'location' => $location,
'fsuggest' => $fsuggest,
+ 'request' => $request,
'normal_mode' => $normal_mode,
'packet_type' => $packet_type,
'walltowall' => $walltowall
@@ -544,6 +616,21 @@ function notifier_run($argv, $argc){
dbesc('')
);
}
+ elseif($packet_type === 'request') {
+ $n = zot_build_packet($channel,'request',$env_recips,$hub['hubloc_sitekey'],$hash,array('message_id' => $request_message_id));
+ q("insert into outq ( outq_hash, outq_account, outq_channel, outq_driver, outq_posturl, outq_async, outq_created, outq_updated, outq_notify, outq_msg ) values ( '%s', %d, %d, '%s', '%s', %d, '%s', '%s', '%s', '%s' )",
+ dbesc($hash),
+ intval($channel['channel_account_id']),
+ intval($channel['channel_id']),
+ dbesc('zot'),
+ dbesc($hub['hubloc_callback']),
+ intval(1),
+ dbesc(datetime_convert()),
+ dbesc(datetime_convert()),
+ dbesc($n),
+ dbesc('')
+ );
+ }
else {
$n = zot_build_packet($channel,'notify',$env_recips,(($private) ? $hub['hubloc_sitekey'] : null),$hash);
q("insert into outq ( outq_hash, outq_account, outq_channel, outq_driver, outq_posturl, outq_async, outq_created, outq_updated, outq_notify, outq_msg ) values ( '%s', %d, %d, '%s', '%s', %d, '%s', '%s', '%s', '%s' )",
diff --git a/include/oembed.php b/include/oembed.php
index de3a6edc8..e08b287d1 100755
--- a/include/oembed.php
+++ b/include/oembed.php
@@ -56,6 +56,15 @@ function oembed_fetch_url($embedurl){
$txt = $x['body'];
break;
}
+ // soundcloud is now using text/json+oembed instead of application/json+oembed,
+ // others may be also
+ $entries = $xpath->query("//link[@type='text/json+oembed']");
+ foreach($entries as $e){
+ $href = $e->getAttributeNode("href")->nodeValue;
+ $x = z_fetch_url($href . '&maxwidth=' . $a->videowidth);
+ $txt = $x['body'];
+ break;
+ }
}
}
}
@@ -83,7 +92,8 @@ function oembed_fetch_url($embedurl){
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) );
+
+ $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) {
@@ -118,7 +128,6 @@ function oembed_format_object($j){
}; break;
case "photo": {
$ret.= "<img width='".$j->width."' src='".$j->url."'>";
- //$ret.= "<img width='".$j->width."' height='".$j->height."' src='".$j->url."'>";
$ret.="<br>";
}; break;
case "link": {
@@ -154,13 +163,12 @@ function oembed_iframe($src,$width,$height) {
$height = intval($height) + 80;
$width = intval($width) + 40;
- $a = get_app();
-
- $sandbox = ((strpos($src,get_app()->get_hostname())) ? ' sandbox="allow-scripts" ' : '');
+ $s = z_root() . '/oembed/' . base64url_encode($src);
- $s = $a->get_baseurl()."/oembed/".base64url_encode($src);
+ // Make sure any children are sandboxed within their own iframe.
- return '<iframe ' . $sandbox . ' height="' . $height . '" width="' . $width . '" src="' . $s . '" frameborder="no" >' . t('Embedded content') . '</iframe>';
+ return '<iframe height="' . $height . '" width="' . $width . '" src="' . $s . '" frameborder="no" >'
+ . t('Embedded content') . '</iframe>';
}
diff --git a/include/onedirsync.php b/include/onedirsync.php
index 8ae1df5e5..a1450e183 100644
--- a/include/onedirsync.php
+++ b/include/onedirsync.php
@@ -35,13 +35,13 @@ function onedirsync_run($argv, $argc){
// (where we received this update from) ?
// If we have, we don't need to do anything except mark any older entries updated
- $x = q("select * from updates where ud_addr = '%s' and ud_date > '%s' and ( ud_flags & %d ) order by ud_date desc limit 1",
+ $x = q("select * from updates where ud_addr = '%s' and ud_date > '%s' and ( ud_flags & %d )>0 order by ud_date desc limit 1",
dbesc($r[0]['ud_addr']),
dbesc($r[0]['ud_date']),
intval(UPDATE_FLAGS_UPDATED)
);
if($x) {
- $y = q("update updates set ud_flags = ( ud_flags | %d ) where ud_addr = '%s' and not ( ud_flags & %d ) and ud_date < '%s' ",
+ $y = q("update updates set ud_flags = ( ud_flags | %d ) where ud_addr = '%s' and ( ud_flags & %d ) = 0 and ud_date < '%s' ",
intval(UPDATE_FLAGS_UPDATED),
dbesc($r[0]['ud_addr']),
intval(UPDATE_FLAGS_UPDATED),
@@ -50,6 +50,28 @@ function onedirsync_run($argv, $argc){
return;
}
+ // ignore doing an update if this ud_addr refers to a known dead hubloc
+
+ $h = q("select * from hubloc where hubloc_addr = '%s' limit 1",
+ dbesc($r[0]['ud_addr'])
+ );
+ if(($h) && ($h[0]['hubloc_status'] & HUBLOC_OFFLINE)) {
+ $y = q("update updates set ud_flags = ( ud_flags | %d ) where ud_addr = '%s' and ( ud_flags & %d ) = 0 and ud_date < '%s' ",
+ intval(UPDATE_FLAGS_UPDATED),
+ dbesc($r[0]['ud_addr']),
+ intval(UPDATE_FLAGS_UPDATED),
+ dbesc($x[0]['ud_date'])
+ );
+
+ return;
+ }
+
+ // we might have to pull this out some day, but for now update_directory_entry()
+ // runs zot_finger() and is kind of zot specific
+
+ if($h && $h[0]['hubloc_network'] !== 'zot')
+ return;
+
update_directory_entry($r[0]);
return;
diff --git a/include/onepoll.php b/include/onepoll.php
index d64785f92..095edd095 100644
--- a/include/onepoll.php
+++ b/include/onepoll.php
@@ -15,12 +15,6 @@ function onepoll_run($argv, $argc){
logger('onepoll: start');
- $manual_id = 0;
- $generation = 0;
-
- $force = false;
- $restart = false;
-
if(($argc > 1) && (intval($argv[1])))
$contact_id = intval($argv[1]);
@@ -28,14 +22,14 @@ function onepoll_run($argv, $argc){
logger('onepoll: no contact');
return;
}
-
+
$d = datetime_convert();
$contacts = q("SELECT abook.*, xchan.*, account.*
FROM abook LEFT JOIN account on abook_account = account_id left join xchan on xchan_hash = abook_xchan
where abook_id = %d
- AND (( abook_flags & %d ) OR ( abook_flags = %d ))
- AND NOT ( abook_flags & %d )
+ AND (( abook_flags & %d )>0 OR ( abook_flags = %d ))
+ AND NOT ( abook_flags & %d )>0
AND (( account_flags = %d ) OR ( account_flags = %d )) limit 1",
intval($contact_id),
intval(ABOOK_FLAG_HIDDEN|ABOOK_FLAG_PENDING|ABOOK_FLAG_UNCONNECTED|ABOOK_FLAG_FEED),
@@ -67,7 +61,7 @@ function onepoll_run($argv, $argc){
logger("onepoll: poll: ({$contact['id']}) IMPORTER: {$importer['xchan_name']}, CONTACT: {$contact['xchan_name']}");
- $last_update = ((($contact['abook_updated'] === $contact['abook_created']) || ($contact['abook_updated'] === '0000-00-00 00:00:00'))
+ $last_update = ((($contact['abook_updated'] === $contact['abook_created']) || ($contact['abook_updated'] === NULL_DATE))
? datetime_convert('UTC','UTC','now - 7 days')
: datetime_convert('UTC','UTC',$contact['abook_updated'] . ' - 2 days')
);
@@ -75,7 +69,7 @@ function onepoll_run($argv, $argc){
if($contact['xchan_network'] === 'rss') {
logger('onepoll: processing feed ' . $contact['xchan_name'], LOGGER_DEBUG);
handle_feed($importer['channel_id'],$contact_id,$contact['xchan_hash']);
- q("update abook set abook_connected = '%s' where abook_id = %d limit 1",
+ q("update abook set abook_connected = '%s' where abook_id = %d",
dbesc(datetime_convert()),
intval($contact['abook_id'])
);
@@ -90,18 +84,19 @@ function onepoll_run($argv, $argc){
$x = zot_refresh($contact,$importer);
$responded = false;
- $updated = datetime_convert();
+ $updated = datetime_convert();
+ $connected = datetime_convert();
if(! $x) {
// mark for death by not updating abook_connected, this is caught in include/poller.php
- q("update abook set abook_updated = '%s' where abook_id = %d limit 1",
+ q("update abook set abook_updated = '%s' where abook_id = %d",
dbesc($updated),
intval($contact['abook_id'])
);
}
else {
- q("update abook set abook_updated = '%s', abook_connected = '%s' where abook_id = %d limit 1",
- dbesc($updated),
+ q("update abook set abook_updated = '%s', abook_connected = '%s' where abook_id = %d",
dbesc($updated),
+ dbesc($connected),
intval($contact['abook_id'])
);
$responded = true;
@@ -120,7 +115,9 @@ function onepoll_run($argv, $argc){
if($fetch_feed) {
$feedurl = str_replace('/poco/','/zotfeed/',$contact['xchan_connurl']);
- $x = z_fetch_url($feedurl . '?f=&mindate=' . urlencode($last_update));
+ $feedurl .= '?f=&mindate=' . urlencode($last_update);
+
+ $x = z_fetch_url($feedurl);
logger('feed_update: ' . print_r($x,true), LOGGER_DATA);
@@ -135,7 +132,7 @@ function onepoll_run($argv, $argc){
foreach($j['messages'] as $message) {
$results = process_delivery(array('hash' => $contact['xchan_hash']), get_item_elements($message),
array(array('hash' => $importer['xchan_hash'])), false);
- logger('onepoll: feed_update: process_delivery: ' . print_r($results,true));
+ logger('onepoll: feed_update: process_delivery: ' . print_r($results,true), LOGGER_DATA);
$total ++;
}
logger("onepoll: $total messages processed");
@@ -143,13 +140,14 @@ function onepoll_run($argv, $argc){
}
}
- // fetch some items
- // set last updated timestamp
+
+ // update the poco details for this connection
if($contact['xchan_connurl']) {
$r = q("SELECT xlink_id from xlink
- where xlink_xchan = '%s' and xlink_updated > UTC_TIMESTAMP() - INTERVAL 1 DAY limit 1",
- intval($contact['xchan_hash'])
+ where xlink_xchan = '%s' and xlink_updated > %s - INTERVAL %s limit 1",
+ intval($contact['xchan_hash']),
+ db_utcnow(), db_quoteinterval('1 DAY')
);
if(! $r) {
poco_load($contact['xchan_hash'],$contact['xchan_connurl']);
diff --git a/include/permissions.php b/include/permissions.php
index 8e4676f51..563d574db 100644
--- a/include/permissions.php
+++ b/include/permissions.php
@@ -1,6 +1,19 @@
-<?php /** @file */
-
+<?php
+/**
+ * @file incldue/permissions.php
+ *
+ * This file conntains functions to check and work with permissions.
+ */
+/**
+ * @brief Return an array with all available permissions.
+ *
+ * These are channel specific permissions.
+ * The list of available permissions can get manipulated by the <i>hook</i>
+ * <b>global_permissions</b>.
+ *
+ * @return array associative array containing all permissions
+ */
function get_perms() {
// thinking about making element[2] a bitmask instead of boolean so that we can provide a list of applicable selections
@@ -14,8 +27,8 @@ function get_perms() {
'view_profile' => array('channel_r_profile', intval(PERMS_R_PROFILE), true, t('Can view my default channel profile'), ''),
'view_photos' => array('channel_r_photos', intval(PERMS_R_PHOTOS), true, t('Can view my photo albums'), ''),
'view_contacts' => array('channel_r_abook', intval(PERMS_R_ABOOK), true, t('Can view my connections'), ''),
- 'view_storage' => array('channel_r_storage', intval(PERMS_R_STORAGE), true, t('Can view my file storage'), ''),
- 'view_pages' => array('channel_r_pages', intval(PERMS_R_PAGES), true, t('Can view my webpages'), ''),
+ 'view_storage' => array('channel_r_storage', intval(PERMS_R_STORAGE), true, t('Can view my file storage'), ''),
+ 'view_pages' => array('channel_r_pages', intval(PERMS_R_PAGES), true, t('Can view my webpages'), ''),
// Write permissions
'send_stream' => array('channel_w_stream', intval(PERMS_W_STREAM), false, t('Can send me their channel stream and posts'), ''),
@@ -23,19 +36,20 @@ function get_perms() {
'post_comments' => array('channel_w_comment', intval(PERMS_W_COMMENT), false, t('Can comment on or like my posts'), ''),
'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'), ''),
- 'post_like' => array('channel_w_like', intval(PERMS_W_LIKE), false, t('Can like/dislike stuff'), t('Profiles and things other than posts/comments')),
+ 'post_like' => array('channel_w_like', intval(PERMS_W_LIKE), false, t('Can like/dislike stuff'), t('Profiles and things other than posts/comments')),
'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('')),
- 'write_storage' => array('channel_w_storage', intval(PERMS_W_STORAGE), false, t('Can write to my file storage'), ''),
- 'write_pages' => array('channel_w_pages', intval(PERMS_W_PAGES), false, t('Can edit my webpages'), ''),
+ 'write_storage' => array('channel_w_storage', intval(PERMS_W_STORAGE), false, t('Can write to my file storage'), ''),
+ 'write_pages' => array('channel_w_pages', intval(PERMS_W_PAGES), false, t('Can edit my webpages'), ''),
- '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')),
+ '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')),
- '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')),
+ '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);
- call_hooks('global_permissions',$ret);
+ call_hooks('global_permissions', $ret);
+
return $ret['global_permissions'];
}
@@ -43,13 +57,13 @@ function get_perms() {
/**
* get_all_perms($uid,$observer_xchan)
*
- * @param $uid : The channel_id associated with the resource owner
- * @param $observer_xchan: The xchan_hash representing the observer
+ * @param int $uid The channel_id associated with the resource owner
+ * @param string $observer_xchan The xchan_hash representing the observer
+ * @param bool $internal_use (default true)
*
- * @returns: array of all permissions, key is permission name, value is true or false
+ * @returns array of all permissions, key is permission name, value is true or false
*/
-
-function get_all_perms($uid,$observer_xchan,$internal_use = true) {
+function get_all_perms($uid, $observer_xchan, $internal_use = true) {
$global_perms = get_perms();
@@ -85,7 +99,6 @@ function get_all_perms($uid,$observer_xchan,$internal_use = true) {
continue;
}
-
// Next we're going to check for blocked or ignored contacts.
// These take priority over all other settings.
@@ -94,10 +107,10 @@ function get_all_perms($uid,$observer_xchan,$internal_use = true) {
$ret[$perm_name] = true;
continue;
}
-
+
if(! $abook_checked) {
$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",
+ where abook_channel = %d and abook_xchan = '%s' and not ( abook_flags & %d )>0 limit 1",
intval($uid),
dbesc($observer_xchan),
intval(ABOOK_FLAG_SELF)
@@ -105,7 +118,7 @@ function get_all_perms($uid,$observer_xchan,$internal_use = true) {
if(! $x) {
// not in address book, see if they've got an xchan
$y = q("select xchan_network from xchan where xchan_hash = '%s' limit 1",
- dbesc($observer_xchan)
+ dbesc($observer_xchan)
);
}
@@ -113,7 +126,7 @@ function get_all_perms($uid,$observer_xchan,$internal_use = true) {
}
// If they're blocked - they can't read or write
-
+
if(($x) && ($x[0]['abook_flags'] & ABOOK_FLAG_BLOCKED)) {
$ret[$perm_name] = false;
continue;
@@ -130,7 +143,7 @@ function get_all_perms($uid,$observer_xchan,$internal_use = true) {
// system is blocked to anybody who is not authenticated
- if((! $observer_xchan) && intval(get_config('system','block_public'))) {
+ if((! $observer_xchan) && intval(get_config('system', 'block_public'))) {
$ret[$perm_name] = false;
continue;
}
@@ -177,14 +190,14 @@ function get_all_perms($uid,$observer_xchan,$internal_use = true) {
$onsite_checked = true;
}
-
+
if($c)
$ret[$perm_name] = true;
else
$ret[$perm_name] = false;
continue;
- }
+ }
// From here on we require that the observer be a connection and
// handle whether we're allowing any, approved or specific ones
@@ -226,7 +239,6 @@ function get_all_perms($uid,$observer_xchan,$internal_use = true) {
$ret[$perm_name] = false;
continue;
-
}
$arr = array(
@@ -235,11 +247,23 @@ function get_all_perms($uid,$observer_xchan,$internal_use = true) {
'permissions' => $ret);
call_hooks('get_all_perms',$arr);
+
return $arr['permissions'];
}
-
-function perm_is_allowed($uid,$observer_xchan,$permission) {
+/**
+ * @brief Checks if given permission is allowed for given observer on a channel.
+ *
+ * Checks if the given observer with the hash $observer_xchan has permission
+ * $permission on channel_id $uid.
+ * $permission is one defined in get_perms();
+ *
+ * @param int $uid The channel_id associated with the resource owner
+ * @param string $observer_xchan The xchan_hash representing the observer
+ * @param string $permission
+ * @return bool true if permission is allowed for observer on channel
+ */
+function perm_is_allowed($uid, $observer_xchan, $permission) {
$arr = array(
'channel_id' => $uid,
@@ -247,7 +271,7 @@ function perm_is_allowed($uid,$observer_xchan,$permission) {
'permission' => $permission,
'result' => false);
- call_hooks('perm_is_allowed',$arr);
+ call_hooks('perm_is_allowed', $arr);
if($arr['result'])
return true;
@@ -257,7 +281,7 @@ function perm_is_allowed($uid,$observer_xchan,$permission) {
$channel_perm = $global_perms[$permission][0];
- $r = q("select %s, channel_hash from channel where channel_id = %d limit 1",
+ $r = q("select %s, channel_pageflags, channel_hash from channel where channel_id = %d limit 1",
dbesc($channel_perm),
intval($uid)
);
@@ -269,7 +293,7 @@ function perm_is_allowed($uid,$observer_xchan,$permission) {
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",
+ where abook_channel = %d and abook_xchan = '%s' and not ( abook_flags & %d )>0 limit 1",
intval($uid),
dbesc($observer_xchan),
intval(ABOOK_FLAG_SELF)
@@ -279,21 +303,21 @@ function perm_is_allowed($uid,$observer_xchan,$permission) {
if(($x) && ($x[0]['abook_flags'] & ABOOK_FLAG_BLOCKED))
return false;
-
+
if(($x) && (! $global_perms[$permission][2]) && ($x[0]['abook_flags'] & ABOOK_FLAG_IGNORED))
return false;
if(! $x) {
// not in address book, see if they've got an xchan
$y = q("select xchan_network from xchan where xchan_hash = '%s' limit 1",
- dbesc($observer_xchan)
+ dbesc($observer_xchan)
);
}
}
// system is blocked to anybody who is not authenticated
- if((! $observer_xchan) && intval(get_config('system','block_public')))
+ if((! $observer_xchan) && intval(get_config('system', 'block_public')))
return false;
// Check if this $uid is actually the $observer_xchan
@@ -301,7 +325,6 @@ function perm_is_allowed($uid,$observer_xchan,$permission) {
if($r[0]['channel_hash'] === $observer_xchan)
return true;
-
if($r[0][$channel_perm] & PERMS_PUBLIC)
return true;
@@ -326,6 +349,7 @@ function perm_is_allowed($uid,$observer_xchan,$permission) {
);
if($c)
return true;
+
return false;
}
@@ -361,25 +385,32 @@ function perm_is_allowed($uid,$observer_xchan,$permission) {
// No permissions allowed.
- return false;
+ return false;
}
// Check a simple array of observers against a permissions
// return a simple array of those with permission
-function check_list_permissions($uid,$arr,$perm) {
+function check_list_permissions($uid, $arr, $perm) {
$result = array();
if($arr)
foreach($arr as $x)
- if(perm_is_allowed($uid,$x,$perm))
+ if(perm_is_allowed($uid, $x, $perm))
$result[] = $x;
+
return($result);
}
-
+/**
+ * @brief Sets site wide default permissions.
+ *
+ * @return array
+ */
function site_default_perms() {
+ $ret = array();
+
$typical = array(
'view_stream' => PERMS_PUBLIC,
'view_profile' => PERMS_PUBLIC,
@@ -401,14 +432,14 @@ function site_default_perms() {
);
$global_perms = get_perms();
- $ret = array();
foreach($global_perms as $perm => $v) {
- $x = get_config('default_perms',$perm);
+ $x = get_config('default_perms', $perm);
if($x === false)
$x = $typical[$perm];
$ret[$perm] = $x;
}
+
return $ret;
}
@@ -419,11 +450,12 @@ function site_default_perms() {
*
* Given a string for the channel role ('social','forum', etc)
* return an array of all permission fields pre-filled for this role.
- * This includes the channel permission scope indicators as well as
- * perms_auto: The permissions to apply automatically on receipt of a connection request
+ * This includes the channel permission scope indicators (anything beginning with 'channel_') as well as
+ * perms_auto: true or false to create auto-permissions for this channel
* perms_follow: The permissions to apply when initiating a connection request to another channel
* perms_accept: The permissions to apply when accepting a connection request from another channel (not automatic)
- *
+ * default_collection: true or false to make the default ACL include the channel's default collection
+ * directory_publish: true or false to publish this channel in the directory
* Any attributes may be extended (new roles defined) and modified (specific permissions altered) by plugins
*
*/
@@ -436,7 +468,10 @@ function get_role_perms($role) {
switch($role) {
case 'social':
- $ret['perms_auto'] = 0;
+ $ret['perms_auto'] = false;
+ $ret['default_collection'] = false;
+ $ret['directory_publish'] = true;
+ $ret['online'] = true;
$ret['perms_follow'] = PERMS_R_STREAM|PERMS_R_PROFILE|PERMS_R_PHOTOS|PERMS_R_ABOOK
|PERMS_W_STREAM|PERMS_W_WALL|PERMS_W_COMMENT|PERMS_W_MAIL|PERMS_W_CHAT
|PERMS_R_STORAGE|PERMS_R_PAGES|PERMS_A_REPUBLISH|PERMS_W_LIKE;
@@ -445,7 +480,231 @@ function get_role_perms($role) {
|PERMS_R_STORAGE|PERMS_R_PAGES|PERMS_A_REPUBLISH|PERMS_W_LIKE;
$ret['channel_r_stream'] = PERMS_PUBLIC;
$ret['channel_r_profile'] = PERMS_PUBLIC;
- $ret['channel_r_photos'] = PERMS_PUBLIC;
+ $ret['channel_r_photos'] = PERMS_PUBLIC;
+ $ret['channel_r_abook'] = PERMS_PUBLIC;
+ $ret['channel_w_stream'] = PERMS_CONTACTS;
+ $ret['channel_w_wall'] = PERMS_CONTACTS;
+ $ret['channel_w_tagwall'] = PERMS_SPECIFIC;
+ $ret['channel_w_comment'] = PERMS_CONTACTS;
+ $ret['channel_w_mail'] = PERMS_CONTACTS;
+ $ret['channel_w_photos'] = 0;
+ $ret['channel_w_chat'] = PERMS_CONTACTS;
+ $ret['channel_a_delegate'] = 0;
+ $ret['channel_r_storage'] = PERMS_PUBLIC;
+ $ret['channel_w_storage'] = 0;
+ $ret['channel_r_pages'] = PERMS_PUBLIC;
+ $ret['channel_w_pages'] = 0;
+ $ret['channel_a_republish'] = PERMS_SPECIFIC;
+ $ret['channel_w_like'] = PERMS_NETWORK;
+
+ break;
+
+ case 'social_restricted':
+ $ret['perms_auto'] = false;
+ $ret['default_collection'] = true;
+ $ret['directory_publish'] = true;
+ $ret['online'] = true;
+ $ret['perms_follow'] = PERMS_R_STREAM|PERMS_R_PROFILE|PERMS_R_PHOTOS|PERMS_R_ABOOK
+ |PERMS_W_STREAM|PERMS_W_WALL|PERMS_W_COMMENT|PERMS_W_MAIL|PERMS_W_CHAT
+ |PERMS_R_STORAGE|PERMS_R_PAGES|PERMS_W_LIKE;
+ $ret['perms_accept'] = PERMS_R_STREAM|PERMS_R_PROFILE|PERMS_R_PHOTOS|PERMS_R_ABOOK
+ |PERMS_W_STREAM|PERMS_W_WALL|PERMS_W_COMMENT|PERMS_W_MAIL|PERMS_W_CHAT
+ |PERMS_R_STORAGE|PERMS_R_PAGES|PERMS_W_LIKE;
+ $ret['channel_r_stream'] = PERMS_PUBLIC;
+ $ret['channel_r_profile'] = PERMS_PUBLIC;
+ $ret['channel_r_photos'] = PERMS_PUBLIC;
+ $ret['channel_r_abook'] = PERMS_PUBLIC;
+ $ret['channel_w_stream'] = PERMS_CONTACTS;
+ $ret['channel_w_wall'] = PERMS_CONTACTS;
+ $ret['channel_w_tagwall'] = PERMS_SPECIFIC;
+ $ret['channel_w_comment'] = PERMS_CONTACTS;
+ $ret['channel_w_mail'] = PERMS_CONTACTS;
+ $ret['channel_w_photos'] = 0;
+ $ret['channel_w_chat'] = PERMS_CONTACTS;
+ $ret['channel_a_delegate'] = 0;
+ $ret['channel_r_storage'] = PERMS_PUBLIC;
+ $ret['channel_w_storage'] = 0;
+ $ret['channel_r_pages'] = PERMS_PUBLIC;
+ $ret['channel_w_pages'] = 0;
+ $ret['channel_a_republish'] = PERMS_SPECIFIC;
+ $ret['channel_w_like'] = PERMS_CONTACTS;
+
+ break;
+
+ case 'social_private':
+ $ret['perms_auto'] = false;
+ $ret['default_collection'] = true;
+ $ret['directory_publish'] = false;
+ $ret['online'] = false;
+ $ret['perms_follow'] = PERMS_R_STREAM|PERMS_R_PROFILE|PERMS_R_PHOTOS|PERMS_R_ABOOK
+ |PERMS_W_STREAM|PERMS_W_WALL|PERMS_W_COMMENT|PERMS_W_MAIL|PERMS_W_CHAT
+ |PERMS_R_STORAGE|PERMS_R_PAGES|PERMS_W_LIKE;
+ $ret['perms_accept'] = PERMS_R_STREAM|PERMS_R_PROFILE|PERMS_R_PHOTOS|PERMS_R_ABOOK
+ |PERMS_W_STREAM|PERMS_W_WALL|PERMS_W_COMMENT|PERMS_W_MAIL|PERMS_W_CHAT
+ |PERMS_R_STORAGE|PERMS_R_PAGES|PERMS_W_LIKE;
+ $ret['channel_r_stream'] = PERMS_PUBLIC;
+ $ret['channel_r_profile'] = PERMS_PUBLIC;
+ $ret['channel_r_photos'] = PERMS_PUBLIC;
+ $ret['channel_r_abook'] = PERMS_CONTACTS;
+ $ret['channel_w_stream'] = PERMS_CONTACTS;
+ $ret['channel_w_wall'] = PERMS_CONTACTS;
+ $ret['channel_w_tagwall'] = PERMS_SPECIFIC;
+ $ret['channel_w_comment'] = PERMS_CONTACTS;
+ $ret['channel_w_mail'] = PERMS_SPECIFIC;
+ $ret['channel_w_photos'] = 0;
+ $ret['channel_w_chat'] = PERMS_SPECIFIC;
+ $ret['channel_a_delegate'] = 0;
+ $ret['channel_r_storage'] = PERMS_PUBLIC;
+ $ret['channel_w_storage'] = 0;
+ $ret['channel_r_pages'] = PERMS_PUBLIC;
+ $ret['channel_w_pages'] = 0;
+ $ret['channel_a_republish'] = PERMS_SPECIFIC;
+ $ret['channel_w_like'] = PERMS_CONTACTS;
+
+ break;
+
+ case 'forum':
+ $ret['perms_auto'] = true;
+ $ret['default_collection'] = false;
+ $ret['directory_publish'] = true;
+ $ret['online'] = false;
+ $ret['perms_follow'] = PERMS_R_STREAM|PERMS_R_PROFILE|PERMS_R_PHOTOS|PERMS_R_ABOOK
+ |PERMS_W_STREAM|PERMS_W_WALL|PERMS_W_COMMENT|PERMS_W_MAIL|PERMS_W_CHAT
+ |PERMS_R_STORAGE|PERMS_R_PAGES|PERMS_A_REPUBLISH|PERMS_W_LIKE|PERMS_W_TAGWALL;
+ $ret['perms_accept'] = PERMS_R_STREAM|PERMS_R_PROFILE|PERMS_R_PHOTOS|PERMS_R_ABOOK
+ |PERMS_W_STREAM|PERMS_W_WALL|PERMS_W_COMMENT|PERMS_W_MAIL|PERMS_W_CHAT
+ |PERMS_R_STORAGE|PERMS_R_PAGES|PERMS_A_REPUBLISH|PERMS_W_LIKE|PERMS_W_TAGWALL;
+ $ret['channel_r_stream'] = PERMS_PUBLIC;
+ $ret['channel_r_profile'] = PERMS_PUBLIC;
+ $ret['channel_r_photos'] = PERMS_PUBLIC;
+ $ret['channel_r_abook'] = PERMS_PUBLIC;
+ $ret['channel_w_stream'] = 0;
+ $ret['channel_w_wall'] = PERMS_CONTACTS;
+ $ret['channel_w_tagwall'] = PERMS_CONTACTS;
+ $ret['channel_w_comment'] = PERMS_CONTACTS;
+ $ret['channel_w_mail'] = PERMS_CONTACTS;
+ $ret['channel_w_photos'] = 0;
+ $ret['channel_w_chat'] = PERMS_CONTACTS;
+ $ret['channel_a_delegate'] = 0;
+ $ret['channel_r_storage'] = PERMS_PUBLIC;
+ $ret['channel_w_storage'] = 0;
+ $ret['channel_r_pages'] = PERMS_PUBLIC;
+ $ret['channel_w_pages'] = 0;
+ $ret['channel_a_republish'] = PERMS_SPECIFIC;
+ $ret['channel_w_like'] = PERMS_NETWORK;
+
+ break;
+
+ case 'forum_restricted':
+ $ret['perms_auto'] = false;
+ $ret['default_collection'] = true;
+ $ret['directory_publish'] = true;
+ $ret['online'] = false;
+ $ret['perms_follow'] = PERMS_R_STREAM|PERMS_R_PROFILE|PERMS_R_PHOTOS|PERMS_R_ABOOK
+ |PERMS_W_STREAM|PERMS_W_WALL|PERMS_W_COMMENT|PERMS_W_MAIL|PERMS_W_CHAT
+ |PERMS_R_STORAGE|PERMS_R_PAGES|PERMS_W_LIKE|PERMS_W_TAGWALL;
+ $ret['perms_accept'] = PERMS_R_STREAM|PERMS_R_PROFILE|PERMS_R_PHOTOS|PERMS_R_ABOOK
+ |PERMS_W_STREAM|PERMS_W_WALL|PERMS_W_COMMENT|PERMS_W_MAIL|PERMS_W_CHAT
+ |PERMS_R_STORAGE|PERMS_R_PAGES|PERMS_W_LIKE|PERMS_W_TAGWALL;
+ $ret['channel_r_stream'] = PERMS_PUBLIC;
+ $ret['channel_r_profile'] = PERMS_PUBLIC;
+ $ret['channel_r_photos'] = PERMS_PUBLIC;
+ $ret['channel_r_abook'] = PERMS_PUBLIC;
+ $ret['channel_w_stream'] = 0;
+ $ret['channel_w_wall'] = PERMS_CONTACTS;
+ $ret['channel_w_tagwall'] = PERMS_SPECIFIC;
+ $ret['channel_w_comment'] = PERMS_CONTACTS;
+ $ret['channel_w_mail'] = PERMS_CONTACTS;
+ $ret['channel_w_photos'] = 0;
+ $ret['channel_w_chat'] = PERMS_CONTACTS;
+ $ret['channel_a_delegate'] = 0;
+ $ret['channel_r_storage'] = PERMS_PUBLIC;
+ $ret['channel_w_storage'] = 0;
+ $ret['channel_r_pages'] = PERMS_PUBLIC;
+ $ret['channel_w_pages'] = 0;
+ $ret['channel_a_republish'] = PERMS_SPECIFIC;
+ $ret['channel_w_like'] = PERMS_CONTACTS;
+
+ break;
+
+ case 'forum_private':
+ $ret['perms_auto'] = false;
+ $ret['default_collection'] = true;
+ $ret['directory_publish'] = false;
+ $ret['online'] = false;
+ $ret['perms_follow'] = PERMS_R_STREAM|PERMS_R_PROFILE|PERMS_R_PHOTOS|PERMS_R_ABOOK
+ |PERMS_W_STREAM|PERMS_W_WALL|PERMS_W_COMMENT|PERMS_W_MAIL|PERMS_W_CHAT
+ |PERMS_R_STORAGE|PERMS_R_PAGES|PERMS_W_LIKE;
+ $ret['perms_accept'] = PERMS_R_STREAM|PERMS_R_PROFILE|PERMS_R_PHOTOS|PERMS_R_ABOOK
+ |PERMS_W_STREAM|PERMS_W_WALL|PERMS_W_COMMENT|PERMS_W_MAIL|PERMS_W_CHAT
+ |PERMS_R_STORAGE|PERMS_R_PAGES|PERMS_W_LIKE;
+ $ret['channel_r_stream'] = PERMS_PUBLIC;
+ $ret['channel_r_profile'] = PERMS_CONTACTS;
+ $ret['channel_r_photos'] = PERMS_CONTACTS;
+ $ret['channel_r_abook'] = PERMS_CONTACTS;
+ $ret['channel_w_stream'] = 0;
+ $ret['channel_w_wall'] = PERMS_CONTACTS;
+ $ret['channel_w_tagwall'] = 0;
+ $ret['channel_w_comment'] = PERMS_CONTACTS;
+ $ret['channel_w_mail'] = PERMS_SPECIFIC;
+ $ret['channel_w_photos'] = 0;
+ $ret['channel_w_chat'] = PERMS_SPECIFIC;
+ $ret['channel_a_delegate'] = 0;
+ $ret['channel_r_storage'] = PERMS_CONTACTS;
+ $ret['channel_w_storage'] = 0;
+ $ret['channel_r_pages'] = PERMS_CONTACTS;
+ $ret['channel_w_pages'] = 0;
+ $ret['channel_a_republish'] = PERMS_SPECIFIC;
+ $ret['channel_w_like'] = PERMS_CONTACTS;
+
+ break;
+
+ case 'feed':
+ $ret['perms_auto'] = true;
+ $ret['default_collection'] = false;
+ $ret['directory_publish'] = true;
+ $ret['online'] = false;
+ $ret['perms_follow'] = PERMS_R_STREAM|PERMS_R_PROFILE|PERMS_R_PHOTOS|PERMS_R_ABOOK
+ |PERMS_W_STREAM|PERMS_W_WALL|PERMS_W_COMMENT|PERMS_W_MAIL
+ |PERMS_R_STORAGE|PERMS_R_PAGES|PERMS_A_REPUBLISH|PERMS_W_LIKE;
+ $ret['perms_accept'] = PERMS_R_STREAM|PERMS_R_PROFILE|PERMS_R_PHOTOS|PERMS_R_ABOOK
+ |PERMS_W_STREAM|PERMS_W_WALL|PERMS_W_COMMENT|PERMS_W_MAIL
+ |PERMS_R_STORAGE|PERMS_R_PAGES|PERMS_A_REPUBLISH|PERMS_W_LIKE;
+ $ret['channel_r_stream'] = PERMS_PUBLIC;
+ $ret['channel_r_profile'] = PERMS_PUBLIC;
+ $ret['channel_r_photos'] = PERMS_PUBLIC;
+ $ret['channel_r_abook'] = PERMS_PUBLIC;
+ $ret['channel_w_stream'] = PERMS_CONTACTS;
+ $ret['channel_w_wall'] = PERMS_CONTACTS;
+ $ret['channel_w_tagwall'] = PERMS_SPECIFIC;
+ $ret['channel_w_comment'] = PERMS_CONTACTS;
+ $ret['channel_w_mail'] = PERMS_CONTACTS;
+ $ret['channel_w_photos'] = 0;
+ $ret['channel_w_chat'] = PERMS_CONTACTS;
+ $ret['channel_a_delegate'] = 0;
+ $ret['channel_r_storage'] = PERMS_PUBLIC;
+ $ret['channel_w_storage'] = 0;
+ $ret['channel_r_pages'] = PERMS_PUBLIC;
+ $ret['channel_w_pages'] = 0;
+ $ret['channel_a_republish'] = PERMS_NETWORK;
+ $ret['channel_w_like'] = PERMS_NETWORK;
+
+ break;
+
+ case 'feed_restricted':
+ $ret['perms_auto'] = false;
+ $ret['default_collection'] = true;
+ $ret['directory_publish'] = false;
+ $ret['online'] = false;
+ $ret['perms_follow'] = PERMS_R_STREAM|PERMS_R_PROFILE|PERMS_R_PHOTOS|PERMS_R_ABOOK
+ |PERMS_W_STREAM|PERMS_W_WALL|PERMS_W_COMMENT|PERMS_W_MAIL
+ |PERMS_R_STORAGE|PERMS_R_PAGES|PERMS_W_LIKE;
+ $ret['perms_accept'] = PERMS_R_STREAM|PERMS_R_PROFILE|PERMS_R_PHOTOS|PERMS_R_ABOOK
+ |PERMS_W_STREAM|PERMS_W_WALL|PERMS_W_COMMENT|PERMS_W_MAIL
+ |PERMS_R_STORAGE|PERMS_R_PAGES|PERMS_W_LIKE;
+ $ret['channel_r_stream'] = PERMS_PUBLIC;
+ $ret['channel_r_profile'] = PERMS_PUBLIC;
+ $ret['channel_r_photos'] = PERMS_PUBLIC;
$ret['channel_r_abook'] = PERMS_PUBLIC;
$ret['channel_w_stream'] = PERMS_CONTACTS;
$ret['channel_w_wall'] = PERMS_CONTACTS;
@@ -456,18 +715,123 @@ function get_role_perms($role) {
$ret['channel_w_chat'] = PERMS_CONTACTS;
$ret['channel_a_delegate'] = 0;
$ret['channel_r_storage'] = PERMS_PUBLIC;
+ $ret['channel_w_storage'] = 0;
+ $ret['channel_r_pages'] = PERMS_PUBLIC;
+ $ret['channel_w_pages'] = 0;
+ $ret['channel_a_republish'] = PERMS_SPECIFIC;
+ $ret['channel_w_like'] = PERMS_NETWORK;
+
+ break;
+
+ case 'soapbox':
+ $ret['perms_auto'] = true;
+ $ret['default_collection'] = false;
+ $ret['directory_publish'] = true;
+ $ret['online'] = false;
+ $ret['perms_follow'] = PERMS_R_STREAM|PERMS_R_PROFILE|PERMS_R_PHOTOS|PERMS_R_ABOOK
+ |PERMS_R_STORAGE|PERMS_R_PAGES|PERMS_A_REPUBLISH|PERMS_W_LIKE;
+ $ret['perms_accept'] = PERMS_R_STREAM|PERMS_R_PROFILE|PERMS_R_PHOTOS|PERMS_R_ABOOK
+ |PERMS_R_STORAGE|PERMS_R_PAGES|PERMS_A_REPUBLISH|PERMS_W_LIKE;
+ $ret['channel_r_stream'] = PERMS_PUBLIC;
+ $ret['channel_r_profile'] = PERMS_PUBLIC;
+ $ret['channel_r_photos'] = PERMS_PUBLIC;
+ $ret['channel_r_abook'] = PERMS_PUBLIC;
+ $ret['channel_w_stream'] = 0;
+ $ret['channel_w_wall'] = 0;
+ $ret['channel_w_tagwall'] = 0;
+ $ret['channel_w_comment'] = 0;
+ $ret['channel_w_mail'] = 0;
+ $ret['channel_w_photos'] = 0;
+ $ret['channel_w_chat'] = 0;
+ $ret['channel_a_delegate'] = 0;
+ $ret['channel_r_storage'] = PERMS_PUBLIC;
+ $ret['channel_w_storage'] = 0;
$ret['channel_r_pages'] = PERMS_PUBLIC;
$ret['channel_w_pages'] = 0;
$ret['channel_a_republish'] = PERMS_SPECIFIC;
$ret['channel_w_like'] = PERMS_NETWORK;
-
+
+ break;
+
+ case 'repository':
+ $ret['perms_auto'] = true;
+ $ret['default_collection'] = false;
+ $ret['directory_publish'] = true;
+ $ret['online'] = false;
+ $ret['perms_follow'] = PERMS_R_STREAM|PERMS_R_PROFILE|PERMS_R_PHOTOS|PERMS_R_ABOOK
+ |PERMS_W_STREAM|PERMS_W_WALL|PERMS_W_COMMENT|PERMS_W_MAIL|PERMS_W_CHAT
+ |PERMS_R_STORAGE|PERMS_W_STORAGE|PERMS_R_PAGES|PERMS_A_REPUBLISH|PERMS_W_LIKE|PERMS_W_TAGWALL;
+ $ret['perms_accept'] = PERMS_R_STREAM|PERMS_R_PROFILE|PERMS_R_PHOTOS|PERMS_R_ABOOK
+ |PERMS_W_STREAM|PERMS_W_WALL|PERMS_W_COMMENT|PERMS_W_MAIL|PERMS_W_CHAT
+ |PERMS_R_STORAGE|PERMS_W_STORAGE|PERMS_R_PAGES|PERMS_A_REPUBLISH|PERMS_W_LIKE|PERMS_W_TAGWALL;
+ $ret['channel_r_stream'] = PERMS_PUBLIC;
+ $ret['channel_r_profile'] = PERMS_PUBLIC;
+ $ret['channel_r_photos'] = PERMS_PUBLIC;
+ $ret['channel_r_abook'] = PERMS_PUBLIC;
+ $ret['channel_w_stream'] = PERMS_CONTACTS;
+ $ret['channel_w_wall'] = PERMS_CONTACTS;
+ $ret['channel_w_tagwall'] = PERMS_CONTACTS;
+ $ret['channel_w_comment'] = PERMS_CONTACTS;
+ $ret['channel_w_mail'] = PERMS_CONTACTS;
+ $ret['channel_w_photos'] = PERMS_CONTACTS;
+ $ret['channel_w_chat'] = PERMS_CONTACTS;
+ $ret['channel_a_delegate'] = 0;
+ $ret['channel_r_storage'] = PERMS_PUBLIC;
+ $ret['channel_w_storage'] = PERMS_CONTACTS;
+ $ret['channel_r_pages'] = PERMS_PUBLIC;
+ $ret['channel_w_pages'] = PERMS_CONTACTS;
+ $ret['channel_a_republish'] = PERMS_SPECIFIC;
+ $ret['channel_w_like'] = PERMS_NETWORK;
+
+ break;
+
+ default:
break;
-
}
+ $x = get_config('system','role_perms');
+ // let system settings over-ride any or all
+ if($x && is_array($x) && array_key_exists($role,$x))
+ $ret = array_merge($ret,$x[$role]);
+
call_hooks('get_role_perms',$ret);
return $ret;
}
+/**
+ * @brief Creates a HTML select field with all available roles.
+ *
+ * @param string $current The current role
+ * @return string Returns the complete HTML code for this privacy-role-select field.
+ */
+function role_selector($current) {
+
+ if(! $current)
+ $current = 'custom';
+
+ $roles = array(
+ 'social' => array( t('Social Networking'),
+ array('social' => t('Mostly Public'), 'social_restricted' => t('Restricted'), 'social_private' => t('Private'))),
+ 'forum' => array( t('Community Forum'),
+ array('forum' => t('Mostly Public'), 'forum_restricted' => t('Restricted'), 'forum_private' => t('Private'))),
+ 'feed' => array( t('Feed Republish'),
+ array('feed' => t('Mostly Public'), 'feed_restricted' => t('Restricted'))),
+ 'special' => array( t('Special Purpose'),
+ array('soapbox' => t('Celebrity/Soapbox'), 'repository' => t('Group Repository'))),
+ 'other' => array( t('Other'),
+ array('custom' => t('Custom/Expert Mode'))));
+
+ $o = '<select name="permissions_role" id="privacy-role-select">';
+ foreach($roles as $k => $v) {
+ $o .= '<optgroup label="'. htmlspecialchars($v[0]) . '">';
+ foreach($v[1] as $kk => $vv) {
+ $selected = (($kk === $current) ? ' selected="selected"' : '');
+ $o .= '<option value="' . $kk . '"' . $selected . '>' . htmlspecialchars($vv) . '</option>';
+ }
+ $o .= '</optgroup>';
+ }
+ $o .= '</select>';
+ return $o;
+}
diff --git a/include/photo/photo_driver.php b/include/photo/photo_driver.php
index daf1bfc25..e63125671 100644
--- a/include/photo/photo_driver.php
+++ b/include/photo/photo_driver.php
@@ -3,11 +3,24 @@
function photo_factory($data, $type = null) {
$ph = null;
- if(class_exists('Imagick')) {
- require_once('include/photo/photo_imagick.php');
- $ph = new photo_imagick($data,$type);
+ $ignore_imagick = get_config('system', 'ignore_imagick');
+
+ if(class_exists('Imagick') && !$ignore_imagick) {
+ $v = Imagick::getVersion();
+ preg_match('/ImageMagick ([0-9]+\.[0-9]+\.[0-9]+)/', $v['versionString'], $m);
+ if(version_compare($m[1],'6.6.7') >= 0) {
+ require_once('include/photo/photo_imagick.php');
+ $ph = new photo_imagick($data,$type);
+ }
+ else {
+ // earlier imagick versions have issues with scaling png's
+ // don't log this because it will just fill the logfile.
+ // leave this note here so those who are looking for why
+ // we aren't using imagick can find it
+ }
}
- else {
+
+ if(! $ph) {
require_once('include/photo/photo_gd.php');
$ph = new photo_gd($data,$type);
}
@@ -328,7 +341,7 @@ abstract class photo_driver {
`allow_gid` = '%s',
`deny_cid` = '%s',
`deny_gid` = '%s'
- where id = %d limit 1",
+ where id = %d",
intval($p['aid']),
intval($p['uid']),
@@ -341,7 +354,7 @@ abstract class photo_driver {
dbesc($p['album']),
intval($this->getHeight()),
intval($this->getWidth()),
- dbesc($this->imageString()),
+ dbescbin($this->imageString()),
intval(strlen($this->imageString())),
intval($p['scale']),
intval($p['profile']),
@@ -370,7 +383,7 @@ abstract class photo_driver {
dbesc($p['album']),
intval($this->getHeight()),
intval($this->getWidth()),
- dbesc($this->imageString()),
+ dbescbin($this->imageString()),
intval(strlen($this->imageString())),
intval($p['scale']),
intval($p['profile']),
@@ -415,7 +428,7 @@ abstract class photo_driver {
`allow_gid` = '%s',
`deny_cid` = '%s',
`deny_gid` = '%s'
- where id = %d limit 1",
+ where id = %d",
intval($aid),
intval($uid),
@@ -428,7 +441,7 @@ abstract class photo_driver {
dbesc($album),
intval($this->getHeight()),
intval($this->getWidth()),
- dbesc($this->imageString()),
+ dbescbin($this->imageString()),
intval(strlen($this->imageString())),
intval($scale),
intval($profile),
@@ -454,7 +467,7 @@ abstract class photo_driver {
dbesc($album),
intval($this->getHeight()),
intval($this->getWidth()),
- dbesc($this->imageString()),
+ dbescbin($this->imageString()),
intval(strlen($this->imageString())),
intval($scale),
intval($profile),
@@ -480,11 +493,11 @@ abstract class photo_driver {
* Guess image mimetype from filename or from Content-Type header
*
* @arg $filename string Image filename
- * @arg $fromcurl boolean Check Content-Type header from curl request
+ * @arg $headers string Headers to check for Content-Type (from curl request)
*/
function guess_image_type($filename, $headers = '') {
- logger('Photo: guess_image_type: '.$filename . ($fromcurl?' from curl headers':''), LOGGER_DEBUG);
+ logger('Photo: guess_image_type: '.$filename . ($headers?' from curl headers':''), LOGGER_DEBUG);
$type = null;
if ($headers) {
$a = get_app();
@@ -494,21 +507,35 @@ function guess_image_type($filename, $headers = '') {
list($k,$v) = array_map("trim", explode(":", trim($l), 2));
$hdrs[$k] = $v;
}
+ logger('Curl headers: '.var_export($hdrs, true), LOGGER_DEBUG);
if (array_key_exists('Content-Type', $hdrs))
$type = $hdrs['Content-Type'];
}
if (is_null($type)){
-// FIXME!!!!
+
+ $ignore_imagick = get_config('system', 'ignore_imagick');
// Guessing from extension? Isn't that... dangerous?
- if(class_exists('Imagick') && file_exists($filename) && is_readable($filename)) {
- /**
- * 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
- */
- $image = new Imagick($filename);
- $type = $image->getImageMimeType();
- } else {
+ if(class_exists('Imagick') && file_exists($filename) && is_readable($filename) && !$ignore_imagick) {
+ $v = Imagick::getVersion();
+ preg_match('/ImageMagick ([0-9]+\.[0-9]+\.[0-9]+)/', $v['versionString'], $m);
+ if(version_compare($m[1],'6.6.7') >= 0) {
+ /**
+ * 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
+ */
+ $image = new Imagick($filename);
+ $type = $image->getImageMimeType();
+ }
+ else {
+ // earlier imagick versions have issues with scaling png's
+ // don't log this because it will just fill the logfile.
+ // leave this note here so those who are looking for why
+ // we aren't using imagick can find it
+ }
+ }
+
+ if(is_null($type)) {
$ext = pathinfo($filename, PATHINFO_EXTENSION);
$ph = photo_factory('');
$types = $ph->supportedTypes();
@@ -535,7 +562,7 @@ function import_profile_photo($photo,$xchan,$thing = false) {
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",
+ $r = q("select resource_id from photo where xchan = '%s' and (photo_flags & %d )>0 and scale = 4 limit 1",
dbesc($xchan),
intval(PHOTO_XCHAN)
);
@@ -552,7 +579,7 @@ function import_profile_photo($photo,$xchan,$thing = false) {
if($photo) {
$filename = basename($photo);
- $type = guess_image_type($photo,true);
+ $type = guess_image_type($photo);
if(! $type)
$type = 'image/jpeg';
@@ -623,7 +650,7 @@ function import_profile_photo($photo,$xchan,$thing = false) {
$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';
+ $type = 'image/png';
}
return(array($photo,$thumb,$micro,$type,$photo_failure));
diff --git a/include/photo/photo_gd.php b/include/photo/photo_gd.php
index 466f8c23a..fa1f700e9 100644
--- a/include/photo/photo_gd.php
+++ b/include/photo/photo_gd.php
@@ -10,7 +10,7 @@ class photo_gd extends photo_driver {
$t = array();
$t['image/jpeg'] ='jpg';
if (imagetypes() & IMG_PNG) $t['image/png'] = 'png';
-
+ if (imagetypes() & IMG_GIF) $t['image/gif'] = 'gif';
return $t;
}
diff --git a/include/photos.php b/include/photos.php
index 06a99457a..2393153c6 100644
--- a/include/photos.php
+++ b/include/photos.php
@@ -44,9 +44,10 @@ function photo_upload($channel, $observer, $args) {
*
*/
- $r = q("SELECT * FROM photo WHERE album = '%s' AND uid = %d AND created > UTC_TIMESTAMP() - INTERVAL 3 HOUR ",
+ $r = q("SELECT * FROM photo WHERE album = '%s' AND uid = %d AND created > %s - INTERVAL %s ",
dbesc($album),
- intval($channel_id)
+ intval($channel_id),
+ db_utcnow(), db_quoteinterval('3 HOUR')
);
if((! $r) || ($album == t('Profile Photos')))
$visible = 1;
@@ -178,7 +179,7 @@ function photo_upload($channel, $observer, $args) {
if($args['title'])
$p['title'] = $args['title'];
if($args['description'])
- $p['desciprion'] = $args['description'];
+ $p['description'] = $args['description'];
$r1 = $ph->save($p);
@@ -266,6 +267,7 @@ function photo_upload($channel, $observer, $args) {
proc_run('php', "include/notifier.php", 'wall-new', $item_id);
$ret['success'] = true;
+ $ret['item'] = $arr;
$ret['body'] = $arr['body'];
$ret['resource_id'] = $photo_hash;
$ret['photoitem_id'] = $item_id;
@@ -290,7 +292,7 @@ function photos_albums_list($channel,$observer) {
$sql_extra = permissions_sql($channel_id);
- $albums = q("SELECT count( distinct resource_id ) as total, album from photo where uid = %d and ( photo_flags = %d or photo_flags = %d ) $sql_extra group by album order by created desc",
+ $albums = q("SELECT count( distinct resource_id ) as total, album from photo where uid = %d and ( photo_flags = %d or photo_flags = %d ) $sql_extra group by album order by max(created) desc",
intval($channel_id),
intval(PHOTO_NORMAL),
intval(PHOTO_PROFILE)
@@ -430,7 +432,7 @@ function photos_create_item($channel, $creator_hash, $photo, $visible = false) {
// Create item container
$item_flags = ITEM_WALL|ITEM_ORIGIN|ITEM_THREAD_TOP;
- $item_restrict = (($visible) ? ITEM_HIDDEN : ITEM_VISIBLE);
+ $item_restrict = (($visible) ? ITEM_VISIBLE : ITEM_HIDDEN);
$title = '';
$mid = item_message_id();
diff --git a/include/plugin.php b/include/plugin.php
index c2e08a989..e500ccc56 100755
--- a/include/plugin.php
+++ b/include/plugin.php
@@ -102,7 +102,7 @@ function load_plugin($plugin) {
// This way the system won't fall over dead during the update.
if(file_exists('addon/' . $plugin . '/.hidden')) {
- q("update addon set hidden = 1 where name = '%s' limit 1",
+ q("update addon set hidden = 1 where name = '%s'",
dbesc($plugin)
);
}
@@ -158,7 +158,7 @@ function reload_plugins() {
$func = $pl . '_load';
$func();
}
- q("UPDATE `addon` SET `timestamp` = %d WHERE `id` = %d LIMIT 1",
+ q("UPDATE `addon` SET `timestamp` = %d WHERE `id` = %d",
intval($t),
intval($i['id'])
);
@@ -208,7 +208,7 @@ function register_hook($hook, $file, $function, $priority = 0) {
* @return mixed
*/
function unregister_hook($hook, $file, $function) {
- $r = q("DELETE FROM hook WHERE hook = '%s' AND `file` = '%s' AND `function` = '%s' LIMIT 1",
+ $r = q("DELETE FROM hook WHERE hook = '%s' AND `file` = '%s' AND `function` = '%s'",
dbesc($hook),
dbesc($file),
dbesc($function)
@@ -552,6 +552,7 @@ function theme_include($file, $root = '') {
$paths = array(
"{$root}view/theme/$theme/$ext/$file",
"{$root}view/theme/$parent/$ext/$file",
+ "{$root}view/site/$ext/$file",
"{$root}view/$ext/$file",
);
diff --git a/include/poller.php b/include/poller.php
index b26b9e696..e13c6829d 100644
--- a/include/poller.php
+++ b/include/poller.php
@@ -25,6 +25,16 @@ function poller_run($argv, $argc){
if(! $interval)
$interval = ((get_config('system','delivery_interval') === false) ? 3 : intval(get_config('system','delivery_interval')));
+ // Check for a lockfile. If it exists, but is over an hour old, it's stale. Ignore it.
+ $lockfile = 'store/[data]/poller';
+ if((file_exists($lockfile)) && (filemtime($lockfile) > (time() - 3600))
+ && (! get_config('system','override_poll_lockfile'))) {
+ logger("poller: Already running");
+ return;
+ }
+
+ // Create a lockfile. Needs two vars, but $x doesn't need to contain anything.
+ file_put_contents($lockfile, $x);
logger('poller: start');
@@ -35,12 +45,17 @@ function poller_run($argv, $argc){
// expire any expired mail
- q("delete from mail where expires != '0000-00-00 00:00:00' and expires < UTC_TIMESTAMP() ");
+ q("delete from mail where expires != '%s' and expires < %s ",
+ dbesc(NULL_DATE),
+ db_utcnow()
+ );
// 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 ) ",
+ $r = q("select id from item where expires != '%s' and expires < %s
+ and ( item_restrict & %d ) = 0 ",
+ dbesc(NULL_DATE),
+ db_utcnow(),
intval(ITEM_DELETED)
);
if($r) {
@@ -54,7 +69,10 @@ function poller_run($argv, $argc){
// channels and sites that quietly vanished and prevent the directory from accumulating stale
// or dead entries.
- $r = q("select channel_id from channel where channel_dirdate < UTC_TIMESTAMP() - INTERVAL 30 DAY");
+ $r = q("select channel_id from channel where channel_dirdate < %s - INTERVAL %s",
+ db_utcnow(),
+ db_quoteinterval('30 DAY')
+ );
if($r) {
foreach($r as $rr) {
proc_run('php','include/directory.php',$rr['channel_id'],'force');
@@ -66,12 +84,13 @@ function poller_run($argv, $argc){
// publish any applicable items that were set to be published in the future
// (time travel posts)
- $r = q("select id from item where ( item_restrict & %d ) and created <= UTC_TIMESTAMP() ",
- intval(ITEM_DELAYED_PUBLISH)
+ $r = q("select id from item where ( item_restrict & %d ) > 0 and created <= %s ",
+ intval(ITEM_DELAYED_PUBLISH),
+ db_utcnow()
);
if($r) {
foreach($r as $rr) {
- $x = q("update item set item_restrict = ( item_restrict ^ %d ) where id = %d limit 1",
+ $x = q("update item set item_restrict = ( item_restrict & ~%d ) where id = %d",
intval(ITEM_DELAYED_PUBLISH),
intval($rr['id'])
);
@@ -111,8 +130,8 @@ function poller_run($argv, $argc){
if(($d2 != $d1) && ($h1 == $h2)) {
- require_once('include/dir_fns.php');
- check_upstream_directory();
+ require_once('include/dir_fns.php');
+ check_upstream_directory();
call_hooks('cron_daily',datetime_convert());
@@ -146,9 +165,18 @@ function poller_run($argv, $argc){
update_birthdays();
+ //update statistics in config
+ require_once('include/statistics_fns.php');
+ update_channels_total_stat();
+ update_channels_active_halfyear_stat();
+ update_channels_active_monthly_stat();
+ update_local_posts_stat();
+
// expire any read notifications over a month old
- q("delete from notify where seen = 1 and date < UTC_TIMESTAMP() - INTERVAL 30 DAY");
+ q("delete from notify where seen = 1 and date < %s - INTERVAL %s",
+ db_utcnow(), db_quoteinterval('30 DAY')
+ );
// expire any expired accounts
downgrade_accounts();
@@ -168,6 +196,9 @@ function poller_run($argv, $argc){
proc_run('php','include/expire.php');
proc_run('php','include/cli_suggest.php');
+ require_once('include/hubloc.php');
+ remove_obsolete_hublocs();
+
/**
* End Cron Daily
*/
@@ -177,13 +208,16 @@ function poller_run($argv, $argc){
// This should be rare
$r = q("select xchan_photo_l, xchan_hash from xchan where xchan_photo_l != '' and xchan_photo_m = ''
- and xchan_photo_date < UTC_TIMESTAMP() - INTERVAL 1 DAY");
+ and xchan_photo_date < %s - INTERVAL %s",
+ db_utcnow(),
+ db_quoteinterval('1 DAY')
+ );
if($r) {
require_once('include/photo/photo_driver.php');
foreach($r as $rr) {
$photos = import_profile_photo($rr['xchan_photo_l'],$rr['xchan_hash']);
$x = q("update xchan set xchan_photo_l = '%s', xchan_photo_m = '%s', xchan_photo_s = '%s', xchan_photo_mimetype = '%s'
- where xchan_hash = '%s' limit 1",
+ where xchan_hash = '%s'",
dbesc($photos[0]),
dbesc($photos[1]),
dbesc($photos[2]),
@@ -222,13 +256,13 @@ function poller_run($argv, $argc){
}
- $sql_extra = (($manual_id) ? " AND abook_id = $manual_id " : "");
+ $sql_extra = (($manual_id) ? " AND abook_id = " . intval($manual_id) . " " : "");
reload_plugins();
$d = datetime_convert();
- //TODO check to see if there are any cronhooks before wasting a process
+ // TODO check to see if there are any cronhooks before wasting a process
if(! $restart)
proc_run('php','include/cronhooks.php');
@@ -236,16 +270,17 @@ function poller_run($argv, $argc){
// Only poll from those with suitable relationships
$abandon_sql = (($abandon_days)
- ? sprintf(" AND account_lastlog > UTC_TIMESTAMP() - INTERVAL %d DAY ", intval($abandon_days))
+ ? sprintf(" AND account_lastlog > %s - INTERVAL %s ", db_utcnow(), db_quoteinterval(intval($abandon_days).' DAY'))
: ''
);
-
- $contacts = q("SELECT abook_id, abook_flags, abook_updated, abook_connected, abook_closeness, abook_channel
- FROM abook LEFT JOIN account on abook_account = account_id where 1
+ $randfunc = db_getfunc('RAND');
+
+ $contacts = q("SELECT abook_id, abook_flags, abook_updated, abook_connected, abook_closeness, abook_xchan, abook_channel, xchan_network
+ FROM abook LEFT JOIN xchan on abook_xchan = xchan_hash LEFT JOIN account on abook_account = account_id
$sql_extra
- AND (( abook_flags & %d ) OR ( abook_flags = %d ))
- AND (( account_flags = %d ) OR ( account_flags = %d )) $abandon_sql ORDER BY RAND()",
+ AND (( abook_flags & %d ) > 0 OR ( abook_flags = %d ))
+ AND (( account_flags = %d ) OR ( account_flags = %d )) $abandon_sql ORDER BY $randfunc",
intval(ABOOK_FLAG_HIDDEN|ABOOK_FLAG_PENDING|ABOOK_FLAG_UNCONNECTED|ABOOK_FLAG_FEED),
intval(0),
intval(ACCOUNT_OK),
@@ -257,6 +292,9 @@ function poller_run($argv, $argc){
foreach($contacts as $contact) {
+ if($contact['abook_flags'] & ABOOK_FLAG_SELF)
+ continue;
+
$update = false;
$t = $contact['abook_updated'];
@@ -278,15 +316,19 @@ function poller_run($argv, $argc){
}
+ if($contact['xchan_network'] !== 'zot')
+ continue;
+
if($c == $t) {
if(datetime_convert('UTC','UTC', 'now') > datetime_convert('UTC','UTC', $t . " + 1 day"))
$update = true;
}
else {
+
// if we've never connected with them, start the mark for death countdown from now
- if($c == '0000-00-00 00:00:00') {
- $r = q("update abook set abook_connected = '%s' where abook_id = %d limit 1",
+ if($c == NULL_DATE) {
+ $r = q("update abook set abook_connected = '%s' where abook_id = %d",
dbesc(datetime_convert()),
intval($contact['abook_id'])
);
@@ -297,7 +339,7 @@ function poller_run($argv, $argc){
// He's dead, Jim
if(strcmp(datetime_convert('UTC','UTC', 'now'),datetime_convert('UTC','UTC', $c . " + 30 day")) > 0) {
- $r = q("update abook set abook_flags = (abook_flags | %d) where abook_id = %d limit 1",
+ $r = q("update abook set abook_flags = (abook_flags | %d) where abook_id = %d",
intval(ABOOK_FLAG_ARCHIVED),
intval($contact['abook_id'])
);
@@ -324,9 +366,11 @@ function poller_run($argv, $argc){
$update = true;
}
-
}
+ if($contact['abook_flags'] & (ABOOK_FLAG_PENDING|ABOOK_FLAG_ARCHIVED|ABOOK_FLAG_IGNORED))
+ continue;
+
if((! $update) && (! $force))
continue;
@@ -338,8 +382,10 @@ function poller_run($argv, $argc){
}
if($dirmode == DIRECTORY_MODE_SECONDARY || $dirmode == DIRECTORY_MODE_PRIMARY) {
- $r = q("select distinct ud_addr, updates.* from updates where not ( ud_flags & %d ) and ud_addr != '' and ( ud_last = '0000-00-00 00:00:00' OR ud_last > UTC_TIMESTAMP() - INTERVAL 7 DAY ) group by ud_addr ",
- intval(UPDATE_FLAGS_UPDATED)
+ $r = q("select distinct ud_addr, updates.* from updates where ( ud_flags & %d ) = 0 and ud_addr != '' and ( ud_last = '%s' OR ud_last > %s - INTERVAL %s ) group by ud_addr ",
+ intval(UPDATE_FLAGS_UPDATED),
+ dbesc(NULL_DATE),
+ db_utcnow(), db_quoteinterval('7 DAY')
);
if($r) {
foreach($r as $rr) {
@@ -347,7 +393,7 @@ function poller_run($argv, $argc){
// If they didn't respond when we attempted before, back off to once a day
// After 7 days we won't bother anymore
- if($rr['ud_last'] != '0000-00-00 00:00:00')
+ if($rr['ud_last'] != NULL_DATE)
if($rr['ud_last'] > datetime_convert('UTC','UTC', 'now - 1 day'))
continue;
proc_run('php','include/onedirsync.php',$rr['ud_id']);
@@ -356,7 +402,10 @@ function poller_run($argv, $argc){
}
}
}
-
+
+ //All done - clear the lockfile
+ @unlink($lockfile);
+
return;
}
diff --git a/include/queue.php b/include/queue.php
index 222ebada4..b6a540ef9 100644
--- a/include/queue.php
+++ b/include/queue.php
@@ -22,7 +22,9 @@ function queue_run($argv, $argc){
logger('queue: start');
- $r = q("DELETE FROM outq WHERE outq_created < UTC_TIMESTAMP() - INTERVAL 3 DAY");
+ $r = q("DELETE FROM outq WHERE outq_created < %s - INTERVAL %s",
+ db_utcnow(), db_quoteinterval('3 DAY')
+ );
if($queue_id) {
$r = q("SELECT * FROM outq WHERE outq_hash = '%s' LIMIT 1",
@@ -37,8 +39,18 @@ function queue_run($argv, $argc){
// so that we don't start off a thousand deliveries for a couple of dead hubs.
// The zot driver will deliver everything destined for a single hub once contact is made (*if* contact is made).
// Other drivers will have to do something different here and may need their own query.
-
- $r = q("SELECT * FROM outq WHERE outq_delivered = 0 and (( outq_created > UTC_TIMESTAMP() - INTERVAL 12 HOUR and outq_updated < UTC_TIMESTAMP() - INTERVAL 15 MINUTE ) OR ( outq_updated < UTC_TIMESTAMP() - INTERVAL 1 HOUR )) group by outq_posturl");
+ if(ACTIVE_DBTYPE == DBTYPE_POSTGRES) {
+ $prefix = 'DISTINCT ON (outq_posturl)';
+ $suffix = 'ORDER BY outq_posturl';
+ } else {
+ $prefix = '';
+ $suffix = 'GROUP BY outq_posturl';
+ }
+ $r = q("SELECT $prefix * FROM outq WHERE outq_delivered = 0 and (( outq_created > %s - INTERVAL %s and outq_updated < %s - INTERVAL %s ) OR ( outq_updated < %s - INTERVAL %s )) $suffix",
+ db_utcnow(), db_quoteinterval('12 HOUR'),
+ db_utcnow(), db_quoteinterval('15 MINUTE'),
+ db_utcnow(), db_quoteinterval('1 HOUR')
+ );
}
if(! $r)
return;
@@ -51,13 +63,13 @@ function queue_run($argv, $argc){
$result = z_post_url($rr['outq_posturl'],$rr['outq_msg']);
if($result['success'] && $result['return_code'] < 300) {
logger('queue: queue post success to ' . $rr['outq_posturl'], LOGGER_DEBUG);
- $y = q("delete from outq where outq_hash = '%s' limit 1",
+ $y = q("delete from outq where outq_hash = '%s'",
dbesc($rr['ouq_hash'])
);
}
else {
logger('queue: queue post returned ' . $result['return_code'] . ' from ' . $rr['outq_posturl'],LOGGER_DEBUG);
- $y = q("update outq set outq_updated = '%s' where outq_hash = '%s' limit 1",
+ $y = q("update outq set outq_updated = '%s' where outq_hash = '%s'",
dbesc(datetime_convert()),
dbesc($rr['outq_hash'])
);
@@ -70,7 +82,7 @@ function queue_run($argv, $argc){
}
else {
$deadguys[] = $rr['outq_posturl'];
- $y = q("update outq set outq_updated = '%s' where outq_hash = '%s' limit 1",
+ $y = q("update outq set outq_updated = '%s' where outq_hash = '%s'",
dbesc(datetime_convert()),
dbesc($rr['outq_hash'])
);
diff --git a/include/queue_fn.php b/include/queue_fn.php
index 512edb531..22580bc48 100644
--- a/include/queue_fn.php
+++ b/include/queue_fn.php
@@ -2,7 +2,7 @@
function update_queue_time($id) {
logger('queue: requeue item ' . $id);
- q("UPDATE outq SET outq_updated = '%s' WHERE outq_hash = '%s' LIMIT 1",
+ q("UPDATE outq SET outq_updated = '%s' WHERE outq_hash = '%s'",
dbesc(datetime_convert()),
dbesc($id)
);
@@ -10,7 +10,7 @@ function update_queue_time($id) {
function remove_queue_item($id) {
logger('queue: remove queue item ' . $id);
- q("DELETE FROM outq WHERE hash = '%s' LIMIT 1",
+ q("DELETE FROM outq WHERE hash = '%s'",
dbesc($id)
);
}
diff --git a/include/reddav.php b/include/reddav.php
index c4ef5bd08..750ca1b24 100644
--- a/include/reddav.php
+++ b/include/reddav.php
@@ -1,713 +1,31 @@
<?php
/**
* @file include/reddav.php
- * @brief DAV related classes from SabreDAV for Red Matrix.
+ * @brief some DAV related functions for RedMatrix.
*
- * This file contains the classes from SabreDAV that got extended to adapt it
- * for Red Matrix.
+ * This file contains some functions which did not fit into one of the RedDAV
+ * classes.
*
- * You find the original SabreDAV classes under @ref vendor/sabre/dav/.
+ * The extended SabreDAV classes you will find in the RedDAV namespace under
+ * @ref includes/RedDAV/.
+ * The original SabreDAV classes you can find under @ref vendor/sabre/dav/.
* We need to use SabreDAV 1.8.x for PHP5.3 compatibility. SabreDAV >= 2.0
* requires PHP >= 5.4.
- */
-
-use Sabre\DAV;
-require_once('vendor/autoload.php');
-require_once('include/attach.php');
-
-
-/**
- * @brief RedDirectory class.
*
- * A class that represents a directory.
- */
-class RedDirectory extends DAV\Node implements DAV\ICollection, DAV\IQuota {
-
- /**
- * @brief The path inside /cloud
- */
- private $red_path;
- private $folder_hash;
- /**
- * @brief The full path as seen in the browser.
- * /cloud + $red_path
- * @todo I think this is not used anywhere, we always strip '/cloud' and only use it in debug
- */
- private $ext_path;
- private $root_dir = '';
- private $auth;
- /**
- * @brief The real path on the filesystem.
- * The actual path in store/ with the hashed names.
- */
- private $os_path = '';
-
- /**
- * @brief Sets up the directory node, expects a full path.
- *
- * @param string $ext_path a full path
- * @param RedBasicAuth &$auth_plugin
- */
- public function __construct($ext_path, &$auth_plugin) {
- logger('RedDirectory::__construct() ' . $ext_path, LOGGER_DATA);
- $this->ext_path = $ext_path;
- // remove "/cloud" from the beginning of the 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();
- }
- }
-
- private 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);
- }
-
- /**
- * @brief Returns an array with all the child nodes.
- *
- * @throws DAV\Exception\Forbidden
- * @return array DAV\INode[]
- */
- public 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.');
- }
-
- if (($this->auth->owner_id) && (! perm_is_allowed($this->auth->owner_id, $this->auth->observer, 'view_storage'))) {
- throw new DAV\Exception\Forbidden('Permission denied.');
- }
-
- $contents = RedCollectionData($this->red_path, $this->auth);
- return $contents;
- }
-
- /**
- * @brief Returns a child by name.
- *
- *
- * @throw DAV\Exception\Forbidden
- * @throw DAV\Exception\NotFound
- * @param string $name
- */
- public 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.');
- }
-
- if (($this->auth->owner_id) && (! perm_is_allowed($this->auth->owner_id, $this->auth->observer, 'view_storage'))) {
- throw new DAV\Exception\Forbidden('Permission denied.');
- }
-
- 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.');
- }
-
- /**
- * @brief Returns the name of the directory.
- *
- * @return string
- */
- public function getName() {
- logger('RedDirectory::getName() returns: ' . basename($this->red_path), LOGGER_DATA);
- return (basename($this->red_path));
- }
-
- /**
- * @brief Renames the directory.
- *
- * @todo handle duplicate directory name
- *
- * @throw DAV\Exception\Forbidden
- * @param string $name The new name of the directory.
- * @return void
- */
- public function setName($name) {
- logger('RedDirectory::setName(): ' . basename($this->red_path) . ' -> ' . $name, LOGGER_DATA);
-
- if ((! $name) || (! $this->auth->owner_id)) {
- logger('RedDirectory::setName(): permission denied');
- throw new DAV\Exception\Forbidden('Permission denied.');
- }
-
- if (! perm_is_allowed($this->auth->owner_id, $this->auth->observer, 'write_storage')) {
- logger('RedDirectory::setName(): permission denied');
- throw new DAV\Exception\Forbidden('Permission denied.');
- }
-
- list($parent_path, ) = DAV\URLUtil::splitPath($this->red_path);
- $new_path = $parent_path . '/' . $name;
-
- $r = q("UPDATE attach SET filename = '%s' WHERE hash = '%s' AND uid = %d LIMIT 1",
- dbesc($name),
- dbesc($this->folder_hash),
- intval($this->auth->owner_id)
- );
-
- $this->red_path = $new_path;
- }
-
- /**
- * @brief Creates a new file in the directory.
- *
- * Data will either be supplied as a stream resource, or in certain cases
- * as a string. Keep in mind that you may have to support either.
- *
- * After successful creation of the file, you may choose to return the ETag
- * of the new file here.
- *
- * @throws DAV\Exception\Forbidden
- * @param string $name Name of the file
- * @param resource|string $data Initial payload
- * @return null|string ETag
- */
- public function createFile($name, $data = null) {
- logger('RedDirectory::createFile(): ' . $name, LOGGER_DATA);
-
- if (! $this->auth->owner_id) {
- logger('RedDirectory::createFile(): permission denied');
- throw new DAV\Exception\Forbidden('Permission denied.');
- }
-
- if (! perm_is_allowed($this->auth->owner_id, $this->auth->observer, 'write_storage')) {
- logger('RedDirectory::createFile(): permission denied');
- throw new DAV\Exception\Forbidden('Permission denied.');
- }
-
- $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('RedDirectory::createFile(): no channel');
- throw new DAV\Exception\Forbidden('Permission denied.');
- }
-
- $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;
-
- // returns the number of bytes that were written to the file, or FALSE on failure
- $size = file_put_contents($f, $data);
- // delete attach entry if file_put_contents() failed
- if ($size === false) {
- logger('RedDirectory::createFile(): file_put_contents() failed for ' . $name, LOGGER_DEBUG);
- attach_delete($c[0]['channel_id'], $hash);
- return;
- }
-
- // returns now
- $edited = datetime_convert();
-
- // updates entry with filesize and timestamp
- $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'])
- );
-
- // update the folder's lastmodified timestamp
- $e = q("UPDATE attach SET edited = '%s' WHERE hash = '%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;
- }
-
- // check against service class quota
- $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;
- }
- }
- }
-
- /**
- * @brief Creates a new subdirectory.
- *
- * @param string $name the directory to create
- * @return void
- */
- public 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.');
- }
-
- $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);
- }
- }
- }
-
- /**
- * @brief Checks if a child exists.
- *
- * @param string $name
- * @return boolean
- */
- public function childExists($name) {
- // On /cloud we show a list of available channels.
- // @todo what happens if no channels are available?
- 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;
- }
-
- /**
- * @todo add description of what this function does.
- *
- * @throw DAV\Exception\NotFound
- * @return void
- */
- function getDir() {
- logger('RedDirectory::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;
-
- logger('RedDirectory::getDir(): path: ' . print_r($path_arr, true), LOGGER_DATA);
-
- $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 uid = %d 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;
- }
-
- /**
- * @brief Returns the last modification time for the directory, as a UNIX
- * timestamp.
- *
- * It looks for the last edited file in the folder. If it is an empty folder
- * it returns the lastmodified time of the folder itself, to prevent zero
- * timestamps.
- *
- * @return int last modification time in UNIX timestamp
- */
- public function getLastModified() {
- $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) {
- $r = q("SELECT edited FROM attach WHERE hash = '%s' AND uid = %d LIMIT 1",
- dbesc($this->folder_hash),
- intval($this->auth->owner_id)
- );
- if (! $r)
- return '';
- }
- return datetime_convert('UTC', 'UTC', $r[0]['edited'], 'U');
- }
-
- /**
- * @brief Return quota usage.
- *
- * Do guests relly see the used/free values from filesystem of the complete store directory?
- *
- * @return array with used and free values in bytes.
- */
- public function getQuotaInfo() {
- // values from the filesystem of the complete <i>store/</i> directory
- $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
- );
- }
-} // class RedDirectory
-
-
-
-/**
- * RedFile class.
+ * @todo split up the classes into own files.
*
+ * @link http://github.com/friendica/red
+ * @license http://opensource.org/licenses/mit-license.php The MIT License (MIT)
*/
-class RedFile extends DAV\Node implements DAV\IFile {
-
- private $data;
- private $auth;
- private $name;
-
- /**
- * Sets up the node, expects a full path name.
- *
- * @param string $name
- * @param array $data from attach table
- * @param &$auth
- */
- public function __construct($name, $data, &$auth) {
- $this->name = $name;
- $this->data = $data;
- $this->auth = $auth;
-
- logger('RedFile::__construct(): ' . print_r($this->data, true), LOGGER_DATA);
- }
-
- /**
- * @brief Returns the name of the file.
- *
- * @return string
- */
- public function getName() {
- logger('RedFile::getName(): ' . basename($this->name), LOGGER_DEBUG);
- return basename($this->name);
- }
- /**
- * @brief Renames the file.
- *
- * @throw DAV\Exception\Forbidden
- * @param string $name The new name of the file.
- * @return void
- */
- public 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.');
- }
-
- $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'])
- );
- }
-
- /**
- * @brief Updates the data of the file.
- *
- * @param resource $data
- * @return void
- */
- public function put($data) {
- logger('RedFile::put(): ' . basename($this->name), LOGGER_DEBUG);
- $size = 0;
-
- // @todo only 3 values are needed
- $c = q("SELECT * FROM channel WHERE channel_id = %d AND NOT (channel_pageflags & %d) LIMIT 1",
- intval($this->auth->owner_id),
- intval(PAGE_REMOVED)
- );
-
- $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) {
- if ($r[0]['flags'] & ATTACH_FLAG_OS) {
- $f = 'store/' . $this->auth->owner_nick . '/' . (($r[0]['data']) ? $r[0]['data'] : '');
- // @todo check return value and set $size directly
- @file_put_contents($f, $data);
- $size = @filesize($f);
- logger('RedFile::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'];
- }
- }
- }
-
- // returns now()
- $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'])
- );
-
- // update the folder's lastmodified timestamp
- $e = q("UPDATE attach SET edited = '%s' WHERE hash = '%s' AND uid = %d LIMIT 1",
- dbesc($edited),
- dbesc($r[0]['folder']),
- intval($c[0]['channel_id'])
- );
-
- // @todo do we really want to remove the whole file if an update fails
- // because of maxfilesize or quota?
- // There is an Exception "InsufficientStorage" or "PaymentRequired" for
- // our service class from SabreDAV we could use.
-
- $maxfilesize = get_config('system', 'maxfilesize');
- if (($maxfilesize) && ($size > $maxfilesize)) {
- attach_delete($c[0]['channel_id'], $this->data['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('RedFile::put(): 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;
- }
- }
- }
-
- /**
- * @brief Returns the raw data.
- *
- * @return string
- */
- public 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) {
- // @todo this should be a global definition
- $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'];
- }
- }
-
- /**
- * @brief Returns the ETag for a file.
- *
- * An ETag is a unique identifier representing the current version of the file. If the file changes, the ETag MUST change.
- * The ETag is an arbitrary string, but MUST be surrounded by double-quotes.
- *
- * Return null if the ETag can not effectively be determined.
- *
- * @return mixed
- */
- public function getETag() {
- $ret = null;
- if ($this->data['hash']) {
- $ret = '"' . $this->data['hash'] . '"';
- }
- return $ret;
- }
-
- /**
- * @brief Returns the mime-type for a file.
- *
- * If null is returned, we'll assume application/octet-stream
- *
- * @return mixed
- */
- public function getContentType() {
- // @todo this should be a global definition.
- $unsafe_types = array('text/html', 'text/css', 'application/javascript');
- if (in_array($this->data['filetype'], $unsafe_types)) {
- return 'text/plain';
- }
- return $this->data['filetype'];
- }
-
- /**
- * @brief Returns the size of the node, in bytes.
- *
- * @return int
- */
- public function getSize() {
- return $this->data['filesize'];
- }
-
- /**
- * @brief Returns the last modification time for the file, as a unix
- * timestamp.
- *
- * @return int last modification time in UNIX timestamp
- */
- public function getLastModified() {
- return datetime_convert('UTC', 'UTC', $this->data['edited'], 'U');
- }
-
- /**
- * @brief Delete the file.
- *
- * @throw DAV\Exception\Forbidden
- * @return void
- */
- public function delete() {
- logger('RedFile::delete(): ' . basename($this->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.');
- }
-
- 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.');
- }
- }
-
- attach_delete($this->auth->owner_id, $this->data['hash']);
- }
-} // class RedFile
+use Sabre\DAV;
+use RedMatrix\RedDAV;
+require_once('vendor/autoload.php');
+require_once('include/attach.php');
+require_once('include/RedDAV/RedFile.php');
+require_once('include/RedDAV/RedDirectory.php');
+require_once('include/RedDAV/RedBasicAuth.php');
/**
* @brief Returns an array with viewable channels.
@@ -716,14 +34,15 @@ class RedFile extends DAV\Node implements DAV\IFile {
* has <b>view_storage</b> perms.
*
* @todo Is there any reason why this is not inside RedDirectory class?
+ * @fixme function name looks like a class name, should we rename it?
*
- * @param $auth
- * @return array containing RedDirectory objects
+ * @param RedBasicAuth &$auth
+ * @return array RedDirectory[]
*/
function RedChannelList(&$auth) {
$ret = array();
- $r = q("SELECT channel_id, channel_address FROM channel WHERE NOT (channel_pageflags & %d) AND NOT (channel_pageflags & %d)",
+ $r = q("SELECT channel_id, channel_address FROM channel WHERE NOT (channel_pageflags & %d)>0 AND NOT (channel_pageflags & %d)>0",
intval(PAGE_REMOVED),
intval(PAGE_HIDDEN)
);
@@ -731,9 +50,9 @@ function RedChannelList(&$auth) {
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);
+ logger('found channel: /cloud/' . $rr['channel_address'], LOGGER_DATA);
// @todo can't we drop '/cloud'? It gets stripped off anyway in RedDirectory
- $ret[] = new RedDirectory('/cloud/' . $rr['channel_address'], $auth);
+ $ret[] = new RedDAV\RedDirectory('/cloud/' . $rr['channel_address'], $auth);
}
}
}
@@ -746,11 +65,15 @@ function RedChannelList(&$auth) {
*
* Array with all RedDirectory and RedFile DAV\Node items for the given path.
*
- * @todo Is there any reason why this is not inside RedDirectory class? Seems only to be used there and we could simplify it a bit there.
+ * @todo Is there any reason why this is not inside RedDirectory class? Seems
+ * only to be used there and we could simplify it a bit there.
+ * @fixme function name looks like a class name, should we rename it?
*
* @param string $file path to a directory
- * @param &$auth
- * @returns array DAV\INode[]
+ * @param RedBasicAuth &$auth
+ * @returns null|array \Sabre\DAV\INode[]
+ * @throw \Sabre\DAV\Exception\Forbidden
+ * @throw \Sabre\DAV\Exception\NotFound
*/
function RedCollectionData($file, &$auth) {
$ret = array();
@@ -767,7 +90,7 @@ function RedCollectionData($file, &$auth) {
$file = trim($file, '/');
$path_arr = explode('/', $file);
-
+
if (! $path_arr)
return null;
@@ -792,7 +115,7 @@ function RedCollectionData($file, &$auth) {
$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 uid = %d AND (flags & %d) $perms LIMIT 1",
+ $r = q("SELECT id, hash, filename, flags FROM attach WHERE folder = '%s' AND filename = '%s' AND uid = %d AND (flags & %d)>0 $perms LIMIT 1",
dbesc($folder),
dbesc($path_arr[$x]),
intval($channel_id),
@@ -801,7 +124,7 @@ function RedCollectionData($file, &$auth) {
if (! $r) {
// 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 uid = %d and (flags & %d) limit 1",
+ $r = q("select id, hash, filename, flags from attach where folder = '%s' and filename = '%s' and uid = %d and (flags & %d)>0 limit 1",
dbesc($folder),
basename($path_arr[$x]),
intval($channel_id),
@@ -829,23 +152,28 @@ function RedCollectionData($file, &$auth) {
// This should no longer be needed since we just returned errors for paths not found
if ($path !== '/' . $file) {
- logger("RedCollectionData: Path mismatch: $path !== /$file");
+ logger("Path mismatch: $path !== /$file");
return NULL;
}
-
- $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",
+ if(ACTIVE_DBTYPE == DBTYPE_POSTGRES) {
+ $prefix = 'DISTINCT ON (filename)';
+ $suffix = 'ORDER BY filename';
+ } else {
+ $prefix = '';
+ $suffix = 'GROUP BY filename';
+ }
+ $r = q("select $prefix id, uid, hash, filename, filetype, filesize, revision, folder, flags, created, edited from attach where folder = '%s' and uid = %d $perms $suffix",
dbesc($folder),
intval($channel_id)
);
foreach ($r as $rr) {
- logger('RedCollectionData: filename: ' . $rr['filename'], LOGGER_DATA);
-
+ //logger('filename: ' . $rr['filename'], LOGGER_DEBUG);
if ($rr['flags'] & ATTACH_FLAG_DIR) {
// @todo can't we drop '/cloud'? it gets stripped off anyway in RedDirectory
- $ret[] = new RedDirectory('/cloud' . $path . '/' . $rr['filename'], $auth);
+ $ret[] = new RedDAV\RedDirectory('/cloud' . $path . '/' . $rr['filename'], $auth);
} else {
- $ret[] = new RedFile('/cloud' . $path . '/' . $rr['filename'], $rr, $auth);
+ $ret[] = new RedDAV\RedFile('/cloud' . $path . '/' . $rr['filename'], $rr, $auth);
}
}
@@ -856,12 +184,17 @@ function RedCollectionData($file, &$auth) {
/**
* @brief TODO What exactly is this function for?
*
+ * @fixme function name looks like a class name, should we rename it?
+ *
* @param string $file
- * @param &$auth
+ * path to file or directory
+ * @param RedBasicAuth &$auth
* @param boolean $test (optional) enable test mode
+ * @return RedFile|RedDirectory|boolean|null
+ * @throw \Sabre\DAV\Exception\Forbidden
*/
function RedFileData($file, &$auth, $test = false) {
- logger('RedFileData:' . $file . (($test) ? ' (test mode) ' : ''), LOGGER_DEBUG);
+ logger($file . (($test) ? ' (test mode) ' : ''), LOGGER_DATA);
$x = strpos($file, '/cloud');
if ($x === 0) {
@@ -869,13 +202,13 @@ function RedFileData($file, &$auth, $test = false) {
}
if ((! $file) || ($file === '/')) {
- return new RedDirectory('/', $auth);
+ return new RedDAV\RedDirectory('/', $auth);
}
$file = trim($file, '/');
$path_arr = explode('/', $file);
-
+
if (! $path_arr)
return null;
@@ -904,7 +237,7 @@ function RedFileData($file, &$auth, $test = false) {
$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",
+ $r = q("select id, hash, filename, flags from attach where folder = '%s' and filename = '%s' and uid = %d and (flags & %d)>0 $perms",
dbesc($folder),
dbesc($path_arr[$x]),
intval($channel_id),
@@ -914,10 +247,10 @@ function RedFileData($file, &$auth, $test = false) {
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",
+ where folder = '%s' and filename = '%s' and uid = %d $perms order by filename limit 1",
dbesc($folder),
dbesc(basename($file)),
intval($channel_id)
@@ -926,7 +259,7 @@ function RedFileData($file, &$auth, $test = false) {
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",
+ where folder = '%s' and filename = '%s' and uid = %d order by filename limit 1",
dbesc($folder),
dbesc(basename($file)),
intval($channel_id)
@@ -940,15 +273,15 @@ function RedFileData($file, &$auth, $test = false) {
if ($test)
return true;
// final component was a directory.
- return new RedDirectory('/cloud/' . $file, $auth);
+ return new RedDAV\RedDirectory('/cloud/' . $file, $auth);
}
if ($errors) {
- logger('RedFileData: not found');
+ logger('not found ' . $file);
if ($test)
return false;
if ($permission_error) {
- logger('RedFileData: permission error');
+ logger('permission error ' . $file);
throw new DAV\Exception\Forbidden('Permission denied.');
}
return;
@@ -960,431 +293,10 @@ function RedFileData($file, &$auth, $test = false) {
if ($r[0]['flags'] & ATTACH_FLAG_DIR) {
// @todo can't we drop '/cloud'? it gets stripped off anyway in RedDirectory
- return new RedDirectory('/cloud' . $path . '/' . $r[0]['filename'], $auth);
+ return new RedDAV\RedDirectory('/cloud' . $path . '/' . $r[0]['filename'], $auth);
} else {
- return new RedFile('/cloud' . $path . '/' . $r[0]['filename'], $r[0], $auth);
+ return new RedDAV\RedFile('/cloud' . $path . '/' . $r[0]['filename'], $r[0], $auth);
}
}
return false;
-}
-
-
-
-/**
- * RedBasicAuth class.
- *
- */
-class RedBasicAuth extends DAV\Auth\Backend\AbstractBasic {
-
- // @fixme mod/cloud.php:61
- public $channel_name = '';
- // @fixme mod/cloud.php:62
- public $channel_id = 0;
- // @fixme mod/cloud.php:63
- public $channel_hash = '';
- // @fixme mod/cloud.php:68
- public $observer = '';
- // @fixme include/reddav.php:51
- public $browser;
- // @fixme include/reddav.php:92
- public $owner_id;
- // @fixme include/reddav.php:283
- public $owner_nick = '';
- // @fixme mod/cloud.php:66
- public $timezone;
-
- /**
- *
- * @param string $username
- * @param string $password
- */
- protected function validateUserPass($username, $password) {
-
- 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;
- }
-
- public function setCurrentUser($name) {
- $this->currentUser = $name;
- }
-
- /**
- * @brief Set browser plugin.
- *
- * @see RedBrowser::set_writeable()
- * @param DAV\Browser\Plugin $browser
- */
- public function setBrowserPlugin($browser) {
- $this->browser = $browser;
- }
-
- // internal? logging function
- 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);
- }
-
-} // class RedBasicAuth
-
-
-
-/**
- * RedBrowser class.
- *
- */
-class RedBrowser extends DAV\Browser\Plugin {
-
- 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 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;
- }
- }
-
- /**
- * @brief Creates the directory listing for the given path.
- *
- * @param string $path which should be displayed
- */
- public function generateDirectoryIndex($path) {
- // (owner_id = channel_id) is visitor owner of this directory?
- $is_owner = ((local_user() && $this->auth->owner_id == local_user()) ? true : false);
-
- if ($this->auth->timezone)
- date_default_timezone_set($this->auth->timezone);
-
- require_once('include/conversation.php');
-
- if ($this->auth->owner_nick) {
- $html = profile_tabs(get_app(), (($is_owner) ? true : false), $this->auth->owner_nick);
- }
-
- $files = $this->server->getPropertiesForPath($path, array(
- '{DAV:}displayname',
- '{DAV:}resourcetype',
- '{DAV:}getcontenttype',
- '{DAV:}getcontentlength',
- '{DAV:}getlastmodified',
- ), 1);
-
- $parent = $this->server->tree->getNodeForPath($path);
-
- $parentpath = array();
- // only show parent if not leaving /cloud/; TODO how to improve this?
- if ($path && $path != "cloud") {
- list($parentUri) = DAV\URLUtil::splitPath($path);
- $fullPath = DAV\URLUtil::encodePath($this->server->getBaseUri() . $parentUri);
-
- $parentpath['icon'] = $this->enableAssets ? '<a href="' . $fullPath . '"><img src="' . $this->getAssetUrl('icons/parent' . $this->iconExtension) . '" width="24" alt="' . t('parent') . '"></a>' : '';
- $parentpath['path'] = $fullPath;
- }
-
- $f = array();
- foreach ($files as $file) {
- $ft = array();
- $type = null;
-
- // This is the current directory, we can skip it
- if (rtrim($file['href'],'/')==$path) continue;
-
- list(, $name) = DAV\URLUtil::splitPath($file['href']);
-
- 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] = t('Collection');
- break;
- case '{DAV:}principal' :
- $type[$k] = t('Principal');
- break;
- case '{urn:ietf:params:xml:ns:carddav}addressbook' :
- $type[$k] = t('Addressbook');
- break;
- case '{urn:ietf:params:xml:ns:caldav}calendar' :
- $type[$k] = t('Calendar');
- break;
- case '{urn:ietf:params:xml:ns:caldav}schedule-inbox' :
- $type[$k] = t('Schedule Inbox');
- break;
- case '{urn:ietf:params:xml:ns:caldav}schedule-outbox' :
- $type[$k] = t('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 = t('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;
- }
- }
- }
-
- $parentHash = "";
- $owner = $this->auth->owner_id;
- $splitPath = split("/", $fullPath);
- if (count($splitPath) > 3) {
- for ($i = 3; $i < count($splitPath); $i++) {
- $attachName = urldecode($splitPath[$i]);
- $attachHash = $this->findAttachHash($owner, $parentHash, $attachName);
- $parentHash = $attachHash;
- }
- }
-
- $attachIcon = ""; // "<a href=\"attach/".$attachHash."\" title=\"".$displayName."\"><i class=\"icon-download\"></i></a>";
-
- // put the array for this file together
- $ft['attachId'] = $this->findAttachIdByHash($attachHash);
- $ft['fileStorageUrl'] = substr($fullPath, 0, strpos($fullPath, "cloud/")) . "filestorage/" . $this->auth->channel_name;
- $ft['icon'] = $icon;
- $ft['attachIcon'] = (($size) ? $attachIcon : '');
- // @todo Should this be an item value, not a global one?
- $ft['is_owner'] = $is_owner;
- $ft['fullPath'] = $fullPath;
- $ft['displayName'] = $displayName;
- $ft['type'] = $type;
- $ft['size'] = $size;
- $ft['sizeFormatted'] = $this->userReadableSize($size);
- $ft['lastmodified'] = (($lastmodified) ? datetime_convert('UTC', date_default_timezone_get(), $lastmodified) : '');
-
- $f[] = $ft;
- }
-
- // Storage and quota for the account (all channels of the owner of this directory)!
- $limit = service_class_fetch($owner, 'attach_upload_limit');
- $r = q("SELECT SUM(filesize) AS total FROM attach WHERE aid = %d",
- intval($this->auth->channel_account_id)
- );
- $used = $r[0]['total'];
- if ($used) {
- $quotaDesc = t('%1$s used');
- $quotaDesc = sprintf($quotaDesc,
- $this->userReadableSize($used));
- }
- if ($limit && $used) {
- $quotaDesc = t('%1$s used of %2$s (%3$s&#37;)');
- $quotaDesc = sprintf($quotaDesc,
- $this->userReadableSize($used),
- $this->userReadableSize($limit),
- round($used / $limit, 1));
- }
-
- // prepare quota for template
- $quota['used'] = $used;
- $quota['limit'] = $limit;
- $quota['desc'] = $quotaDesc;
-
- $html .= replace_macros(get_markup_template('cloud_directory.tpl'), array(
- '$header' => t('Files') . ": " . $this->escapeHTML($path) . "/",
- '$parentpath' => $parentpath,
- '$entries' => $f,
- '$quota' => $quota,
- '$name' => t('Name'),
- '$type' => t('Type'),
- '$size' => t('Size'),
- '$lastmod' => t('Last Modified'),
- '$parent' => t('parent'),
- '$edit' => t('Edit'),
- '$delete' => t('Delete'),
- '$total' => t('Total')
- ));
-
- $output = '';
- if ($this->enablePost) {
- $this->server->broadcastEvent('onHTMLActionsPanel', array($parent, &$output));
- }
- $html .= $output;
-
- get_app()->page['content'] = $html;
- construct_page(get_app());
- }
-
- function userReadableSize($size) {
- $ret = "";
- if (is_numeric($size)) {
- $incr = 0;
- $k = 1024;
- $unit = array('bytes', 'KB', 'MB', 'GB', 'TB', 'PB');
- while (($size / $k) >= 1){
- $incr++;
- $size = round($size / $k, 2);
- }
- $ret = $size . " " . $unit[$incr];
- }
- return $ret;
- }
-
- /**
- * Creates a form to add new folders and upload files.
- *
- * @param DAV\INode $node
- * @param string &$output
- */
- public function htmlActionsPanel(DAV\INode $node, &$output) {
-
- //Removed link to filestorage page
- //if($this->auth->owner_id && $this->auth->owner_id == $this->auth->channel_id) {
- // $channel = get_app()->get_channel();
- // if($channel) {
- // $output .= '<tr><td colspan="2"><a href="filestorage/' . $channel['channel_address'] . '" >' . t('Edit File properties') . '</a></td></tr><tr><td>&nbsp;</td></tr>';
- // }
- //}
-
- 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 .= replace_macros(get_markup_template('cloud_actionspanel.tpl'), array(
- '$folder_header' => t('Create new folder'),
- '$folder_submit' => t('Create'),
- '$upload_header' => t('Upload file'),
- '$upload_submit' => t('Upload')
- ));
- }
-
- /**
- * 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);
- }
-
- protected function findAttachHash($owner, $parentHash, $attachName) {
- $r = q("SELECT * FROM attach WHERE uid = %d AND folder = '%s' AND filename = '%s' ORDER BY edited desc LIMIT 1",
- intval($owner),
- dbesc($parentHash),
- dbesc($attachName)
- );
- $hash = "";
- if ($r) {
- foreach ($r as $rr) {
- $hash = $rr['hash'];
- }
- }
- return $hash;
- }
-
- protected function findAttachIdByHash($attachHash) {
- $r = q("SELECT * FROM attach WHERE hash = '%s' ORDER BY edited DESC LIMIT 1",
- dbesc($attachHash)
- );
- $id = "";
- if ($r) {
- foreach ($r as $rr) {
- $id = $rr['id'];
- }
- }
- return $id;
- }
-
-} // class RedBrowser
+} \ No newline at end of file
diff --git a/include/security.php b/include/security.php
index 2ccfc6973..07b6a96aa 100644
--- a/include/security.php
+++ b/include/security.php
@@ -1,18 +1,30 @@
-<?php /** @file */
-
-function authenticate_success($user_record, $login_initial = false, $interactive = false,$return = false,$update_lastlog = false) {
+<?php
+/**
+ * @file include/security.php
+ *
+ * Some security related functions.
+ */
+
+/**
+ * @param int $user_record The account_id
+ * @param bool $login_initial default false
+ * @param bool $interactive default false
+ * @param bool $return
+ * @param bool $update_lastlog
+ */
+function authenticate_success($user_record, $login_initial = false, $interactive = false, $return = false, $update_lastlog = false) {
$a = get_app();
$_SESSION['addr'] = $_SERVER['REMOTE_ADDR'];
- if(x($user_record,'account_id')) {
+ if(x($user_record, 'account_id')) {
$a->account = $user_record;
$_SESSION['account_id'] = $user_record['account_id'];
$_SESSION['authenticated'] = 1;
if($login_initial || $update_lastlog) {
- q("update account set account_lastlog = '%s' where account_id = %d limit 1",
+ q("update account set account_lastlog = '%s' where account_id = %d",
dbesc(datetime_convert()),
intval($_SESSION['account_id'])
);
@@ -39,13 +51,19 @@ function authenticate_success($user_record, $login_initial = false, $interactive
// might want to log success here
}
- if($return || x($_SESSION,'workflow')) {
+ if($return || x($_SESSION, 'workflow')) {
unset($_SESSION['workflow']);
return;
}
if(($a->module !== 'home') && x($_SESSION,'login_return_url') && strlen($_SESSION['login_return_url'])) {
$return_url = $_SESSION['login_return_url'];
+
+ // don't let members get redirected to a raw ajax page update - this can happen
+ // if DHCP changes the IP address at an unfortunate time and paranoia is turned on
+ if(strstr($return_url,'update_'))
+ $return_url = '';
+
unset($_SESSION['login_return_url']);
goaway($a->get_baseurl() . '/' . $return_url);
}
@@ -53,7 +71,7 @@ function authenticate_success($user_record, $login_initial = false, $interactive
/* 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 and not ( channel_pageflags & %d)",
+ $r = q("select count(channel_id) as total from channel where channel_account_id = %d and not ( channel_pageflags & %d)>0",
intval($a->account['account_id']),
intval(PAGE_REMOVED)
);
@@ -64,18 +82,37 @@ function authenticate_success($user_record, $login_initial = false, $interactive
/* else just return */
}
-
+/**
+ * @brief Change to another channel with current logged-in account.
+ *
+ * @param int $change_channel The channel_id of the channel you want to change to
+ *
+ * @return bool|array false or channel record of the new channel
+ */
function change_channel($change_channel) {
$ret = false;
if($change_channel) {
- $r = q("select channel.*, xchan.* from channel left join xchan on channel.channel_hash = xchan.xchan_hash where channel_id = %d and channel_account_id = %d and not ( channel_pageflags & %d) limit 1",
+ $r = q("select channel.*, xchan.* from channel left join xchan on channel.channel_hash = xchan.xchan_hash where channel_id = %d and channel_account_id = %d and not ( channel_pageflags & %d)>0 limit 1",
intval($change_channel),
intval(get_account_id()),
intval(PAGE_REMOVED)
);
+ // It's not there. Is this an administrator, and is this the sys channel?
+ if (is_developer()) {
+ if (! $r) {
+ if (is_site_admin()) {
+ $r = q("select channel.*, xchan.* from channel left join xchan on channel.channel_hash = xchan.xchan_hash where channel_id = %d and ( channel_pageflags & %d) and not (channel_pageflags & %d )>0 limit 1",
+ intval($change_channel),
+ intval(PAGE_SYSTEM),
+ intval(PAGE_REMOVED)
+ );
+ }
+ }
+ }
+
if($r) {
$hash = $r[0]['channel_hash'];
$_SESSION['uid'] = intval($r[0]['channel_id']);
@@ -90,23 +127,28 @@ function change_channel($change_channel) {
);
if($x) {
$_SESSION['my_url'] = $x[0]['xchan_url'];
- $_SESSION['my_address'] = $r[0]['channel_address'] . '@' . substr(get_app()->get_baseurl(),strpos(get_app()->get_baseurl(),'://')+3);
+ $_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));
+ get_app()->set_perms(get_all_perms(local_user(), $hash));
}
if(! is_dir('store/' . $r[0]['channel_address']))
@os_mkdir('store/' . $r[0]['channel_address'], STORAGE_DEFAULT_PERMISSIONS,true);
-
}
return $ret;
-
}
-
-
-function permissions_sql($owner_id,$remote_verified = false,$groups = null) {
+/**
+ * @brief Creates an addiontal SQL where statement to check permissions.
+ *
+ * @param int $owner_id
+ * @param bool $remote_verified default false, not used at all
+ * @param string $groups this param is not used at all
+ *
+ * @return string additional SQL where statement
+ */
+function permissions_sql($owner_id, $remote_verified = false, $groups = null) {
if(defined('STATUSNET_PRIVACY_COMPATIBILITY'))
return '';
@@ -123,8 +165,7 @@ function permissions_sql($owner_id,$remote_verified = false,$groups = null) {
$sql = " AND allow_cid = ''
AND allow_gid = ''
AND deny_cid = ''
- AND deny_gid = ''
-
+ AND deny_gid = ''
";
/**
@@ -143,7 +184,6 @@ function permissions_sql($owner_id,$remote_verified = false,$groups = null) {
* done this and passed the groups into this function.
*/
-
else {
$observer = get_observer_hash();
if($observer) {
@@ -155,9 +195,10 @@ function permissions_sql($owner_id,$remote_verified = false,$groups = null) {
foreach($groups as $g)
$gs .= '|<' . $g . '>';
}
+ $regexop = db_getfunc('REGEXP');
$sql = sprintf(
- " AND ( NOT (deny_cid like '%s' OR deny_gid REGEXP '%s')
- AND ( allow_cid like '%s' OR allow_gid REGEXP '%s' OR ( allow_cid = '' AND allow_gid = '') )
+ " AND ( NOT (deny_cid like '%s' OR deny_gid $regexop '%s')
+ AND ( allow_cid like '%s' OR allow_gid $regexop '%s' OR ( allow_cid = '' AND allow_gid = '') )
)
",
dbesc(protect_sprintf( '%<' . $observer . '>%')),
@@ -171,7 +212,16 @@ function permissions_sql($owner_id,$remote_verified = false,$groups = null) {
return $sql;
}
-function item_permissions_sql($owner_id,$remote_verified = false,$groups = null) {
+/**
+ * @brief Creates an addiontal SQL where statement to check permissions for an item.
+ *
+ * @param int $owner_id
+ * @param bool $remote_verified default false, not used at all
+ * @param string $groups this param is not used at all
+ *
+ * @return string additional SQL where statement
+ */
+function item_permissions_sql($owner_id, $remote_verified = false, $groups = null) {
if(defined('STATUSNET_PRIVACY_COMPATIBILITY'))
return '';
@@ -185,8 +235,7 @@ function item_permissions_sql($owner_id,$remote_verified = false,$groups = null)
* default permissions - anonymous user
*/
- $sql = " AND not item_private ";
-
+ $sql = " AND item_private=0 ";
/**
* Profile owner - everything is visible
@@ -204,7 +253,6 @@ function item_permissions_sql($owner_id,$remote_verified = false,$groups = null)
* done this and passed the groups into this function.
*/
-
else {
$observer = get_observer_hash();
@@ -216,10 +264,11 @@ function item_permissions_sql($owner_id,$remote_verified = false,$groups = null)
if(is_array($groups) && count($groups)) {
foreach($groups as $g)
$gs .= '|<' . $g . '>';
- }
+ }
+ $regexop = db_getfunc('REGEXP');
$sql = sprintf(
- " AND ( NOT (deny_cid like '%s' OR deny_gid REGEXP '%s')
- AND ( allow_cid like '%s' OR allow_gid REGEXP '%s' OR ( allow_cid = '' AND allow_gid = '') )
+ " AND ( NOT (deny_cid like '%s' OR deny_gid $regexop '%s')
+ AND ( allow_cid like '%s' OR allow_gid $regexop '%s' OR ( allow_cid = '' AND allow_gid = '') )
)
",
dbesc(protect_sprintf( '%<' . $observer . '>%')),
@@ -229,12 +278,18 @@ function item_permissions_sql($owner_id,$remote_verified = false,$groups = null)
);
}
}
+
return $sql;
}
+/**
+ * @param string $observer_hash
+ *
+ * @return string additional SQL where statement
+ */
function public_permissions_sql($observer_hash) {
- $observer = get_app()->get_observer();
+ //$observer = get_app()->get_observer();
$groups = init_groups_visitor($observer_hash);
$gs = '<<>>'; // should be impossible to match
@@ -242,12 +297,13 @@ function public_permissions_sql($observer_hash) {
if(is_array($groups) && count($groups)) {
foreach($groups as $g)
$gs .= '|<' . $g . '>';
- }
+ }
$sql = '';
if($observer_hash) {
+ $regexop = db_getfunc('REGEXP');
$sql = sprintf(
- " OR (( NOT (deny_cid like '%s' OR deny_gid REGEXP '%s')
- AND ( allow_cid like '%s' OR allow_gid REGEXP '%s' OR ( allow_cid = '' AND allow_gid = '') )
+ " OR (( NOT (deny_cid like '%s' OR deny_gid $regexop '%s')
+ AND ( allow_cid like '%s' OR allow_gid $regexop '%s' OR ( allow_cid = '' AND allow_gid = '') )
))
",
dbesc(protect_sprintf( '%<' . $observer_hash . '>%')),
@@ -319,11 +375,11 @@ function check_form_security_token_ForbiddenOnErr($typename = '', $formname = 'f
}
}
+
// Returns an array of group id's this contact is a member of.
// This array will only contain group id's related to the uid of this
// DFRN contact. They are *not* neccessarily unique across the entire site.
-
if(! function_exists('init_groups_visitor')) {
function init_groups_visitor($contact_id) {
$groups = array();
@@ -339,8 +395,6 @@ function init_groups_visitor($contact_id) {
-
-
// This is used to determine which uid have posts which are visible to the logged in user (from the API) for the
// public_timeline, and we can use this in a community page by making
// $perms = (PERMS_NETWORK|PERMS_PUBLIC) unless logged in.
@@ -356,23 +410,26 @@ function stream_perms_api_uids($perms = NULL ) {
$ret = array();
if(local_user())
$ret[] = local_user();
- $r = q("select channel_id from channel where channel_r_stream > 0 and (channel_r_stream & %d) and not (channel_pageflags & %d)",
+ $r = q("select channel_id from channel where channel_r_stream > 0 and (channel_r_stream & %d)>0 and not (channel_pageflags & %d)>0",
intval($perms),
- intval(PAGE_CENSORED|PAGE_SYSTEM|PAGE_REMOVED)
+ intval(PAGE_ADULT|PAGE_CENSORED|PAGE_SYSTEM|PAGE_REMOVED)
);
- if($r)
+ if($r) {
foreach($r as $rr)
- if(! in_array($rr['channel_id'],$ret))
+ if(! in_array($rr['channel_id'], $ret))
$ret[] = $rr['channel_id'];
+ }
$str = '';
- if($ret)
+ if($ret) {
foreach($ret as $rr) {
if($str)
$str .= ',';
$str .= intval($rr);
}
+ }
logger('stream_perms_api_uids: ' . $str, LOGGER_DEBUG);
+
return $str;
}
@@ -383,23 +440,25 @@ function stream_perms_xchans($perms = NULL ) {
if(local_user())
$ret[] = get_observer_hash();
- $r = q("select channel_hash from channel where channel_r_stream > 0 and (channel_r_stream & %d) and not (channel_pageflags & %d)",
+ $r = q("select channel_hash from channel where channel_r_stream > 0 and (channel_r_stream & %d)>0 and not (channel_pageflags & %d)>0",
intval($perms),
- intval(PAGE_CENSORED|PAGE_SYETEM|PAGE_REMOVED)
+ intval(PAGE_ADULT|PAGE_CENSORED|PAGE_SYSTEM|PAGE_REMOVED)
);
- if($r)
+ if($r) {
foreach($r as $rr)
- if(! in_array($rr['channel_hash'],$ret))
+ if(! in_array($rr['channel_hash'], $ret))
$ret[] = $rr['channel_hash'];
+ }
$str = '';
- if($ret)
+ if($ret) {
foreach($ret as $rr) {
if($str)
$str .= ',';
$str .= "'" . dbesc($rr) . "'";
}
+ }
logger('stream_perms_xchans: ' . $str, LOGGER_DEBUG);
+
return $str;
}
-
diff --git a/include/session.php b/include/session.php
index b531688e2..ed4dfdd16 100644
--- a/include/session.php
+++ b/include/session.php
@@ -60,11 +60,11 @@ function ref_session_write ($id,$data) {
if($session_exists)
$r = q("UPDATE `session`
SET `data` = '%s', `expire` = '%s'
- WHERE `sid` = '%s' LIMIT 1",
+ WHERE `sid` = '%s'",
dbesc($data), dbesc($expire), dbesc($id));
else
- $r = q("INSERT INTO `session`
- SET `sid` = '%s', `expire` = '%s', `data` = '%s'",
+ $r = q("INSERT INTO `session` (sid, expire, data) values ('%s', '%s', '%s')",
+ //SET `sid` = '%s', `expire` = '%s', `data` = '%s'",
dbesc($id), dbesc($default_expire), dbesc($data));
return true;
@@ -84,8 +84,9 @@ function ref_session_destroy ($id) {
function ref_session_gc($expire) {
q("DELETE FROM session WHERE expire < %d", dbesc(time()));
- q("OPTIMIZE TABLE session");
- return true;
+ if (! get_config('system','innodb'))
+ db_optimizetable('session');
+ return true;
}
$gc_probability = 50;
diff --git a/include/socgraph.php b/include/socgraph.php
index 504a6b2c0..740886b1c 100644
--- a/include/socgraph.php
+++ b/include/socgraph.php
@@ -77,7 +77,7 @@ function poco_load($xchan = '',$url = null) {
dbesc($xchan)
);
if($r) {
- q("update xchat set xchat_edited = '%s' where xchat_id = %d limit 1",
+ q("update xchat set xchat_edited = '%s' where xchat_id = %d",
dbesc(datetime_convert()),
intval($r[0]['xchat_id'])
);
@@ -93,7 +93,8 @@ function poco_load($xchan = '',$url = null) {
}
}
}
- q("delete from xchat where xchat_edited < UTC_TIMESTAMP() - INTERVAL 7 DAY and xchat_xchan = '%s' ",
+ q("delete from xchat where xchat_edited < %s - INTERVAL %s and xchat_xchan = '%s' ",
+ db_utcnow(), db_quoteinterval('7 DAY'),
dbesc($xchan)
);
}
@@ -195,7 +196,7 @@ function poco_load($xchan = '',$url = null) {
);
}
else {
- q("update xlink set xlink_updated = '%s', xlink_rating = %d where xlink_id = %d limit 1",
+ q("update xlink set xlink_updated = '%s', xlink_rating = %d where xlink_id = %d",
dbesc(datetime_convert()),
intval($rating),
intval($r[0]['xlink_id'])
@@ -204,8 +205,9 @@ function poco_load($xchan = '',$url = null) {
}
logger("poco_load: loaded $total entries",LOGGER_DEBUG);
- q("delete from xlink where xlink_xchan = '%s' and xlink_updated < UTC_TIMESTAMP() - INTERVAL 2 DAY",
- dbesc($xchan)
+ q("delete from xlink where xlink_xchan = '%s' and xlink_updated < %s - INTERVAL %s",
+ dbesc($xchan),
+ db_utcnow(), db_quoteinterval('2 DAY')
);
}
@@ -227,18 +229,19 @@ function count_common_friends($uid,$xchan) {
function common_friends($uid,$xchan,$start = 0,$limit=100000000,$shuffle = false) {
+ $rand = db_getfunc('rand');
if($shuffle)
- $sql_extra = " order by rand() ";
+ $sql_extra = " order by $rand ";
else
$sql_extra = " order by xchan_name asc ";
$r = q("SELECT * from xchan left join xlink on xlink_link = xchan_hash where xlink_xchan = '%s' and xlink_link in
- (select abook_xchan from abook where abook_xchan != '%s' and abook_channel = %d and abook_flags = 0 ) $sql_extra limit %d, %d",
+ (select abook_xchan from abook where abook_xchan != '%s' and abook_channel = %d and abook_flags = 0 ) $sql_extra limit %d offset %d",
dbesc($xchan),
dbesc($xchan),
intval($uid),
- intval($start),
- intval($limit)
+ intval($limit),
+ intval($start)
);
return $r;
@@ -273,11 +276,11 @@ function common_friends_zcid($uid,$zcid,$start = 0, $limit = 9999,$shuffle = fal
FROM `glink` left join `gcontact` on `glink`.`gcid` = `gcontact`.`id`
where `glink`.`zcid` = %d
and `gcontact`.`nurl` in (select nurl from contact where uid = %d and self = 0 and blocked = 0 and hidden = 0 )
- $sql_extra limit %d, %d",
+ $sql_extra limit %d offset %d",
intval($zcid),
intval($uid),
- intval($start),
- intval($limit)
+ intval($limit),
+ intval($start)
);
return $r;
@@ -306,11 +309,11 @@ function all_friends($uid,$cid,$start = 0, $limit = 80) {
$r = q("SELECT `gcontact`.*
FROM `glink` left join `gcontact` on `glink`.`gcid` = `gcontact`.`id`
where `glink`.`cid` = %d and `glink`.`uid` = %d
- order by `gcontact`.`name` asc LIMIT %d, %d ",
+ order by `gcontact`.`name` asc LIMIT %d OFFSET %d ",
intval($cid),
intval($uid),
- intval($start),
- intval($limit)
+ intval($limit),
+ intval($start)
);
return $r;
@@ -329,16 +332,16 @@ function suggestion_query($uid, $myxchan, $start = 0, $limit = 80) {
and not xlink_link in ( select abook_xchan from abook where abook_channel = %d )
and not xlink_link in ( select xchan from xign where uid = %d )
and xlink_xchan != ''
- and not ( xchan_flags & %d )
- and not ( xchan_flags & %d )
- group by xchan_hash order by total desc limit %d, %d ",
+ and not ( xchan_flags & %d )>0
+ and not ( xchan_flags & %d )>0
+ group by xchan_hash order by total desc limit %d offset %d ",
intval($uid),
intval($uid),
intval($uid),
intval(XCHAN_FLAGS_HIDDEN),
intval(XCHAN_FLAGS_DELETED),
- intval($start),
- intval($limit)
+ intval($limit),
+ intval($start)
);
if($r && count($r) >= ($limit -1))
@@ -349,15 +352,15 @@ function suggestion_query($uid, $myxchan, $start = 0, $limit = 80) {
where xlink_xchan = ''
and not xlink_link in ( select abook_xchan from abook where abook_channel = %d )
and not xlink_link in ( select xchan from xign where uid = %d )
- and not ( xchan_flags & %d )
- and not ( xchan_flags & %d )
- group by xchan_hash order by total desc limit %d, %d ",
+ and not ( xchan_flags & %d )>0
+ and not ( xchan_flags & %d )>0
+ group by xchan_hash order by total desc limit %d offset %d ",
intval($uid),
intval($uid),
intval(XCHAN_FLAGS_HIDDEN),
intval(XCHAN_FLAGS_DELETED),
- intval($start),
- intval($limit)
+ intval($limit),
+ intval($start)
);
if(is_array($r) && is_array($r2))
@@ -394,7 +397,9 @@ function update_suggestions() {
// the targets may have changed their preferences and don't want to be suggested - and they
// may have simply gone away.
- $r = q("delete from xlink where xlink_xchan = '' and xlink_updated < UTC_TIMESTAMP() - INTERVAL 7 DAY");
+ $r = q("delete from xlink where xlink_xchan = '' and xlink_updated < %s - INTERVAL %s",
+ db_utcnow(), db_quoteinterval('7 DAY')
+ );
$j = json_decode($ret['body'],true);
diff --git a/include/statistics_fns.php b/include/statistics_fns.php
new file mode 100644
index 000000000..288925a2c
--- /dev/null
+++ b/include/statistics_fns.php
@@ -0,0 +1,79 @@
+<?php /** @file */
+
+function update_channels_total_stat() {
+ $r = q("select count(channel_id) as channels_total from channel left join account on account_id = channel_account_id
+ where account_flags = 0 ");
+ if($r) {
+ $channels_total_stat = intval($r[0]['channels_total']);
+ set_config('system','channels_total_stat',$channels_total_stat);
+ } else {
+ set_config('system','channels_total_stat',null);
+ }
+}
+
+function update_channels_active_halfyear_stat() {
+ $r = q("select channel_id from channel left join account on account_id = channel_account_id
+ where account_flags = 0 and account_lastlog > %s - INTERVAL %s",
+ db_utcnow(), db_quoteinterval('6 MONTH')
+ );
+ if($r) {
+ $s = '';
+ foreach($r as $rr) {
+ if($s)
+ $s .= ',';
+ $s .= intval($rr['channel_id']);
+ }
+ $x = q("select uid from item where uid in ( $s ) and (item_flags & %d)>0 and created > %s - INTERVAL %s group by uid",
+ intval(ITEM_WALL),
+ db_utcnow(), db_quoteinterval('6 MONTH')
+ );
+ if($x) {
+ $channels_active_halfyear_stat = count($x);
+ set_config('system','channels_active_halfyear_stat',$channels_active_halfyear_stat);
+ } else {
+ set_config('system','channels_active_halfyear_stat',null);
+ }
+ } else {
+ set_config('system','channels_active_halfyear_stat',null);
+ }
+}
+
+function update_channels_active_monthly_stat() {
+ $r = q("select channel_id from channel left join account on account_id = channel_account_id
+ where account_flags = 0 and account_lastlog > %s - INTERVAL %s",
+ db_utcnow(), db_quoteinterval('1 MONTH')
+ );
+ if($r) {
+ $s = '';
+ foreach($r as $rr) {
+ if($s)
+ $s .= ',';
+ $s .= intval($rr['channel_id']);
+ }
+ $x = q("select uid from item where uid in ( $s ) and ( item_flags & %d )>0 and created > %s - INTERVAL %s group by uid",
+ intval(ITEM_WALL),
+ db_utcnow(), db_quoteinterval('1 MONTH')
+ );
+ if($x) {
+ $channels_active_monthly_stat = count($x);
+ set_config('system','channels_active_monthly_stat',$channels_active_monthly_stat);
+ } else {
+ set_config('system','channels_active_monthly_stat',null);
+ }
+ } else {
+ set_config('system','channels_active_monthly_stat',null);
+ }
+}
+
+function update_local_posts_stat() {
+ $posts = q("SELECT COUNT(*) AS local_posts FROM `item` WHERE (item_flags & %d)>0 ",
+ intval(ITEM_WALL) );
+ if (is_array($posts)) {
+ $local_posts_stat = intval($posts[0]["local_posts"]);
+ set_config('system','local_posts_stat',$local_posts_stat);
+ } else {
+ set_config('system','local_posts_stat',null);
+ }
+}
+
+
diff --git a/include/taxonomy.php b/include/taxonomy.php
index 92003328f..be80008df 100644
--- a/include/taxonomy.php
+++ b/include/taxonomy.php
@@ -154,7 +154,7 @@ function tagadelic($uid, $count = 0, $authors = '', $flags = 0, $restrict = 0, $
}
function tags_sort($a,$b) {
- if($a[0] == $b[0])
+ if(strtolower($a[0]) == strtolower($b[0]))
return 0;
return((strtolower($a[0]) < strtolower($b[0])) ? -1 : 1);
}
@@ -209,13 +209,55 @@ function tagblock($link,$uid,$count = 0,$authors = '',$flags = 0,$restrict = 0,$
if($r) {
$o = '<div class="tagblock widget"><h3>' . t('Tags') . '</h3><div class="tags" align="center">';
foreach($r as $rr) {
- $o .= '<a href="'.$link .'/' . '?f=&tag=' . urlencode($rr[0]).'" class="tag'.$rr[2].'">'.$rr[0].'</a> ' . "\r\n";
+ $o .= '<span class="tag'.$rr[2].'">#</span><a href="'.$link .'/' . '?f=&tag=' . urlencode($rr[0]).'" class="tag'.$rr[2].'">'.$rr[0].'</a> ' . "\r\n";
}
$o .= '</div></div>';
}
return $o;
}
+function wtagblock($uid,$count = 0,$authors = '',$flags = 0,$restrict = 0,$type = TERM_HASHTAG) {
+ $o = '';
+ $tab = 0;
+ $r = tagadelic($uid,$count,$authors,$flags,$restrict,$type);
+
+ if($r) {
+ $c = q("select channel_address from channel where channel_id = %d limit 1",
+ intval($uid)
+ );
+
+ $o = '<div class="tagblock widget"><h3>' . t('Tags') . '</h3><div class="tags" align="center">';
+ foreach($r as $rr) {
+ $o .= '<span class="tag' . $rr[2] . '">#</span><a href="channel/' . $c[0]['channel_address'] . '?f=&tag=' . urlencode($rr[0]).'" class="tag'.$rr[2].'">'.$rr[0].'</a> ' . "\r\n";
+ }
+ $o .= '</div></div>';
+ }
+ return $o;
+}
+
+
+function catblock($uid,$count = 0,$authors = '',$flags = 0,$restrict = 0,$type = TERM_CATEGORY) {
+ $o = '';
+ $tab = 0;
+
+ $r = tagadelic($uid,$count,$authors,$flags,$restrict,$type);
+
+ if($r) {
+ $c = q("select channel_address from channel where channel_id = %d limit 1",
+ intval($uid)
+ );
+
+ $o = '<div class="tagblock widget"><h3>' . t('Categories') . '</h3><div class="tags" align="center">';
+ foreach($r as $rr) {
+ $o .= '<a href="channel/' . $c[0]['channel_address']. '?f=&cat=' . urlencode($rr[0]).'" class="tag'.$rr[2].'">'.$rr[0].'</a> ' . "\r\n";
+ }
+ $o .= '</div></div>';
+ }
+ return $o;
+}
+
+
+
function dir_tagblock($link,$r) {
$o = '';
$tab = 0;
diff --git a/include/text.php b/include/text.php
index 50c68b6b2..6516d734d 100644
--- a/include/text.php
+++ b/include/text.php
@@ -181,34 +181,34 @@ function autoname($len) {
'kh', 'kl','kr','mn','pl','pr','rh','tr','qu','wh');
$start = mt_rand(0,2);
- if($start == 0)
- $table = $vowels;
- else
- $table = $cons;
+ if($start == 0)
+ $table = $vowels;
+ else
+ $table = $cons;
$word = '';
for ($x = 0; $x < $len; $x ++) {
- $r = mt_rand(0,count($table) - 1);
- $word .= $table[$r];
-
- if($table == $vowels)
- $table = array_merge($cons,$midcons);
- else
- $table = $vowels;
+ $r = mt_rand(0,count($table) - 1);
+ $word .= $table[$r];
+
+ if($table == $vowels)
+ $table = array_merge($cons,$midcons);
+ else
+ $table = $vowels;
}
$word = substr($word,0,$len);
foreach($noend as $noe) {
- if((strlen($word) > 2) && (substr($word,-2) == $noe)) {
- $word = substr($word,0,-1);
- break;
- }
+ if((strlen($word) > 2) && (substr($word,-2) == $noe)) {
+ $word = substr($word,0,-1);
+ break;
+ }
}
if(substr($word,-1) == 'q')
- $word = substr($word,0,-1);
+ $word = substr($word,0,-1);
return $word;
}
@@ -224,11 +224,11 @@ function autoname($len) {
*/
function xmlify($str) {
$buffer = '';
-
+
$len = mb_strlen($str);
for($x = 0; $x < $len; $x ++) {
$char = mb_substr($str,$x,1);
-
+
switch( $char ) {
case "\r" :
@@ -267,7 +267,7 @@ function xmlify($str) {
function unxmlify($s) {
$ret = str_replace('&amp;','&', $s);
$ret = str_replace(array('&lt;','&gt;','&quot;','&apos;'),array('<','>','"',"'"),$ret);
- return $ret;
+ return $ret;
}
// convenience wrapper, reverse the operation "bin2hex"
@@ -314,8 +314,7 @@ function paginate(&$a) {
$pagenum = $a->pager['page'];
$url = $a->get_baseurl() . '/' . $stripped;
-
- if($a->pager['total'] > $a->pager['itemspage']) {
+ if($a->pager['total'] > $a->pager['itemspage']) {
$o .= '<div class="pager">';
if($a->pager['page'] != 1)
$o .= '<span class="pager_prev">'."<a href=\"$url".'&page='.($a->pager['page'] - 1).'">' . t('prev') . '</a></span> ';
@@ -331,7 +330,7 @@ function paginate(&$a) {
$numstart = (($pagenum > 7) ? ($pagenum - 7) : 1);
$numstop = (($pagenum > ($numpages - 7)) ? $numpages : ($numstart + 14));
}
-
+
for($i = $numstart; $i <= $numstop; $i++){
if($i == $a->pager['page'])
$o .= '<span class="pager_current">'.(($i < 10) ? '&nbsp;'.$i : $i);
@@ -405,7 +404,7 @@ function expand_acl($s) {
}
}
return $ret;
-}
+}
// Used to wrap ACL elements in angle brackets for storage
@@ -420,7 +419,6 @@ function sanitise_acl(&$item) {
// Convert an ACL array to a storable string
-
function perms2str($p) {
$ret = '';
@@ -436,16 +434,17 @@ function perms2str($p) {
return $ret;
}
-// generate a guaranteed unique (for this domain) item ID for ATOM
-// safe from birthday paradox
-
-
+/**
+ * @brief Generate a guaranteed unique (for this domain) item ID for ATOM.
+ *
+ * Safe from birthday paradox.
+ *
+ * @return string a unique id
+ */
function item_message_id() {
-
do {
$dups = false;
$hash = random_string();
-
$mid = $hash . '@' . get_app()->get_hostname();
$r = q("SELECT id FROM item WHERE mid = '%s' LIMIT 1",
@@ -453,31 +452,33 @@ function item_message_id() {
if(count($r))
$dups = true;
} while($dups == true);
+
return $mid;
}
-// Generate a guaranteed unique photo ID.
-// safe from birthday paradox
-
-
+/**
+ * @brief Generate a guaranteed unique photo ID.
+ *
+ * Safe from birthday paradox.
+ *
+ * @return string a uniqe hash
+ */
function photo_new_resource() {
-
do {
$found = false;
- $resource = hash('md5',uniqid(mt_rand(),true));
+ $resource = hash('md5', uniqid(mt_rand(), true));
+
$r = q("SELECT id FROM photo WHERE resource_id = '%s' LIMIT 1",
- dbesc($resource)
- );
+ dbesc($resource));
if(count($r))
$found = true;
- } while($found == true);
+ } while($found === true);
+
return $resource;
}
-
-
// for html,xml parsing - let's say you've got
// an attribute foobar="class1 class2 class3"
// and you want to find out if it contains 'class3'.
@@ -487,52 +488,76 @@ function photo_new_resource() {
// pass the attribute string as $attr and the attribute you
// are looking for as $s - returns true if found, otherwise false
-function attribute_contains($attr,$s) {
+function attribute_contains($attr, $s) {
$a = explode(' ', $attr);
- if(count($a) && in_array($s,$a))
+ if(count($a) && in_array($s, $a))
return true;
+
return false;
}
-
-function logger($msg,$level = 0) {
+/**
+ * @brief Logging function for RedMatrix.
+ *
+ * Logging output is configured through RedMatrix's system config. The log file
+ * is set in system logfile, log level in system loglevel and to enable logging
+ * set system debugging.
+ *
+ * Available constants for log level are LOGGER_NORMAL, LOGGER_TRACE, LOGGER_DEBUG,
+ * LOGGER_DATA and LOGGER_ALL.
+ *
+ * Since PHP5.4 we get the file, function and line automatically where the logger
+ * was caleld, so no need to add it to the message anymore.
+ *
+ * @param string $msg Message to log
+ * @param int $level A log level.
+ */
+function logger($msg, $level = 0) {
// turn off logger in install mode
global $a;
global $db;
- if(($a->module == 'install') || (! ($db && $db->connected))) return;
+ if(($a->module == 'install') || (! ($db && $db->connected)))
+ return;
- $debugging = get_config('system','debugging');
- $loglevel = intval(get_config('system','loglevel'));
- $logfile = get_config('system','logfile');
+ $debugging = get_config('system', 'debugging');
+ $loglevel = intval(get_config('system', 'loglevel'));
+ $logfile = get_config('system', 'logfile');
if((! $debugging) || (! $logfile) || ($level > $loglevel))
return;
$where = '';
- if(version_compare(PHP_VERSION,'5.4.0') >= 0) {
- $stack = debug_backtrace(DEBUG_BACKTRACE_IGNORE_ARGS,2);
+ if(version_compare(PHP_VERSION, '5.4.0') >= 0) {
+ $stack = debug_backtrace(DEBUG_BACKTRACE_IGNORE_ARGS, 2);
$where = basename($stack[0]['file']) . ':' . $stack[0]['line'] . ':' . $stack[1]['function'] . ': ';
}
- @file_put_contents($logfile, datetime_convert() . ':' . session_id() . ' ' . $where . $msg . "\n", FILE_APPEND);
- return;
+ @file_put_contents($logfile, datetime_convert() . ':' . session_id() . ' ' . $where . $msg . PHP_EOL, FILE_APPEND);
}
-
-// This is a special logging facility for developers. It allows one to target specific things to trace/debug
-// and is identical to logger() with the exception of the log filename. This allows one to isolate specific
-// calls while allowing logger() to paint a bigger picture of overall activity and capture more detail.
-// If you find dlogger() calls in checked in code, you are free to remove them - so as to provide a noise-free
-// development environment which responds to events you are targetting personally.
-
-
-function dlogger($msg,$level = 0) {
+/**
+ * @brief This is a special logging facility for developers.
+ *
+ * It allows one to target specific things to trace/debug and is identical to
+ * logger() with the exception of the log filename. This allows one to isolate
+ * specific calls while allowing logger() to paint a bigger picture of overall
+ * activity and capture more detail.
+ *
+ * If you find dlogger() calls in checked in code, you are free to remove them -
+ * so as to provide a noise-free development environment which responds to events
+ * you are targetting personally.
+ *
+ * @param string $msg Message to log
+ * @param int $level A log level.
+ */
+function dlogger($msg, $level = 0) {
// turn off logger in install mode
global $a;
global $db;
- if(($a->module == 'install') || (! ($db && $db->connected))) return;
+ if(($a->module == 'install') || (! ($db && $db->connected)))
+ return;
$debugging = get_config('system','debugging');
$loglevel = intval(get_config('system','loglevel'));
@@ -540,19 +565,23 @@ function dlogger($msg,$level = 0) {
if((! $debugging) || (! $logfile) || ($level > $loglevel))
return;
-
- @file_put_contents($logfile, datetime_convert() . ':' . session_id() . ' ' . $msg . "\n", FILE_APPEND);
- return;
+
+ $where = '';
+ if(version_compare(PHP_VERSION, '5.4.0') >= 0) {
+ $stack = debug_backtrace(DEBUG_BACKTRACE_IGNORE_ARGS, 2);
+ $where = basename($stack[0]['file']) . ':' . $stack[0]['line'] . ':' . $stack[1]['function'] . ': ';
+ }
+
+ @file_put_contents($logfile, datetime_convert() . ':' . session_id() . ' ' . $where . $msg . PHP_EOL, FILE_APPEND);
}
function profiler($t1,$t2,$label) {
if(file_exists('profiler.out') && $t1 && t2)
- @file_put_contents('profiler.out', sprintf('%01.4f %s',$t2 - $t1,$label) . "\n", FILE_APPEND);
+ @file_put_contents('profiler.out', sprintf('%01.4f %s',$t2 - $t1,$label) . PHP_EOL, FILE_APPEND);
}
-
function activity_match($haystack,$needle) {
if(($haystack === $needle) || ((basename($needle) === $haystack) && strstr($needle,NAMESPACE_ACTIVITY_SCHEMA)))
return true;
@@ -569,7 +598,6 @@ function activity_match($haystack,$needle) {
// Returns array of tags found, or empty array.
-
function get_tags($s) {
$ret = array();
@@ -592,9 +620,6 @@ function get_tags($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.
-
-
-
if(preg_match_all('/(@[^ \x0D\x0A,:?]+ [^ \x0D\x0A@,:?]+)([ \x0D\x0A@,:?]|$)/',$s,$match)) {
foreach($match[1] as $mtch) {
if(strstr($mtch,"]")) {
@@ -619,8 +644,8 @@ 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)) || substr($mtch,1,1) === '^'))
+ // ignore strictly numeric tags like #1 or #^ bookmarks or ## double hash
+ if((strpos($mtch,'#') === 0) && ( ctype_digit(substr($mtch,1)) || substr($mtch,1,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)))
@@ -648,7 +673,6 @@ function get_tags($s) {
usort($ret,'tag_sort_length');
-
// logger('get_tags: ' . print_r($ret,true));
return $ret;
@@ -657,13 +681,12 @@ function get_tags($s) {
function tag_sort_length($a,$b) {
if(mb_strlen($a) == mb_strlen($b))
return 0;
+
return((mb_strlen($b) < mb_strlen($a)) ? (-1) : 1);
}
-
-
function strip_zids($s) {
return preg_replace('/[\?&]zid=(.*?)(&|$)/ism','$2',$s);
}
@@ -673,12 +696,10 @@ function strip_zids($s) {
function qp($s) {
-return str_replace ("%","=",rawurlencode($s));
+ return str_replace ("%","=",rawurlencode($s));
}
-
-
function get_mentions($item,$tags) {
$o = '';
@@ -712,7 +733,6 @@ function contact_block() {
if($shown == 0)
return;
-
$is_owner = ((local_user() && local_user() == $a->profile['uid']) ? true : false);
$abook_flags = ABOOK_FLAG_PENDING|ABOOK_FLAG_SELF;
@@ -724,7 +744,7 @@ function contact_block() {
if((! is_array($a->profile)) || ($a->profile['hide_friends']))
return $o;
- $r = q("SELECT COUNT(abook_id) AS total FROM abook left join xchan on abook_xchan = xchan_hash WHERE abook_channel = %d and not ( abook_flags & %d ) and not (xchan_flags & %d)",
+ $r = q("SELECT COUNT(abook_id) AS total FROM abook left join xchan on abook_xchan = xchan_hash WHERE abook_channel = %d and not ( abook_flags & %d )>0 and not (xchan_flags & %d)>0",
intval($a->profile['uid']),
intval($abook_flags),
intval($xchan_flags)
@@ -734,11 +754,14 @@ function contact_block() {
}
if(! $total) {
$contacts = t('No connections');
- $micropro = Null;
-
+ $micropro = null;
} else {
-
- $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) and not (xchan_flags & %d ) ORDER BY RAND() LIMIT %d",
+ if(ACTIVE_DBTYPE == DBTYPE_POSTGRES) {
+ $randfunc = 'RANDOM()';
+ } else {
+ $randfunc = 'RAND()';
+ }
+ $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)>0 and not (xchan_flags & %d )>0 ORDER BY $randfunc LIMIT %d",
intval($a->profile['uid']),
intval($abook_flags|ABOOK_FLAG_ARCHIVED),
intval($xchan_flags),
@@ -754,7 +777,7 @@ function contact_block() {
}
}
}
-
+
$tpl = get_markup_template('contact_block.tpl');
$o = replace_macros($tpl, array(
'$contacts' => $contacts,
@@ -767,7 +790,6 @@ function contact_block() {
call_hooks('contact_block_end', $arr);
return $o;
-
}
@@ -811,42 +833,38 @@ function micropro($contact, $redirect = false, $class = '', $textmode = false) {
}
-
-
function search($s,$id='search-box',$url='/search',$save = false) {
$a = get_app();
- $o = '<div id="' . $id . '">';
- $o .= '<form action="' . $a->get_baseurl((stristr($url,'network')) ? true : false) . $url . '" method="get" >';
- $o .= '<input type="text" class="icon-search" name="search" id="search-text" placeholder="&#xf002;" value="' . $s .'" onclick="this.submit();" />';
- $o .= '<input class="search-submit btn btn-default" type="submit" name="submit" id="search-submit" value="' . t('Search') . '" />';
- if(feature_enabled(local_user(),'savedsearch'))
- $o .= '<input class="search-save btn btn-default" type="submit" name="save" id="search-save" value="' . t('Save') . '" />';
- $o .= '</form></div>';
- return $o;
+ return replace_macros(get_markup_template('searchbox.tpl'),array(
+ '$s' => $s,
+ '$id' => $id,
+ '$action_url' => $a->get_baseurl((stristr($url,'network')) ? true : false) . $url,
+ '$search_label' => t('Search'),
+ '$save_label' => t('Save'),
+ '$savedsearch' => feature_enabled(local_user(),'savedsearch')
+ ));
}
function searchbox($s,$id='search-box',$url='/search',$save = false) {
- $a = get_app();
- $o = '<div id="' . $id . '">';
- $o .= '<form action="' . z_root() . '/' . $url . '" method="get" >';
- $o .= '<input type="hidden" name="f" value="" />';
- $o .= '<input type="text" class="icon-search" name="search" id="search-text" placeholder="&#xf002;" value="' . $s .'" onclick="this.submit();" />';
- $o .= '<input type="submit" name="submit" class="btn btn-default" id="search-submit" value="' . t('Search') . '" />';
- if(feature_enabled(local_user(),'savedsearch'))
- $o .= '<input type="submit" name="searchsave" class="btn btn-default" id="search-save" value="' . t('Save') . '" />';
- $o .= '</form></div>';
- return $o;
+ return replace_macros(get_markup_template('searchbox.tpl'),array(
+ '$s' => $s,
+ '$id' => $id,
+ '$action_url' => z_root() . '/' . $url,
+ '$search_label' => t('Search'),
+ '$save_label' => t('Save'),
+ '$savedsearch' => feature_enabled(local_user(),'savedsearch')
+ ));
}
function valid_email($x){
-
if(get_config('system','disable_email_validation'))
return true;
if(preg_match('/^[_a-zA-Z0-9\-\+]+(\.[_a-zA-Z0-9\-\+]+)*@[a-zA-Z0-9-]+(\.[a-zA-Z0-9-]+)+$/',$x))
return true;
+
return false;
}
@@ -877,11 +895,10 @@ function linkify($s) {
*
* @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) {
@@ -895,7 +912,6 @@ function sslify($s) {
function get_poke_verbs() {
-
// index is present tense verb
// value is array containing past tense verb, translation of present, translation of past
@@ -907,12 +923,13 @@ function get_poke_verbs() {
'finger' => array( 'fingered', t('finger'), t('fingered')),
'rebuff' => array( 'rebuffed', t('rebuff'), t('rebuffed')),
);
+
call_hooks('poke_verbs', $arr);
return $arr;
}
function get_mood_verbs() {
-
+
$arr = array(
'happy' => t('happy'),
'sad' => t('sad'),
@@ -941,40 +958,10 @@ function get_mood_verbs() {
return $arr;
}
-
-/**
- *
- * Function: smilies
- *
- * Description:
- * Replaces text emoticons with graphical images
- *
- * @Parameter: string $s
- *
- * Returns string
- *
- * 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.
- *
- * 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
- * bbcode source for HTML display
- *
- */
-
-
-function smilies($s, $sample = false) {
-
+// Function to list all smilies, both internal and from addons
+// Returns array with keys 'texts' and 'icons'
+function list_smilies() {
$a = get_app();
-
- if(intval(get_config('system','no_smilies'))
- || (local_user() && intval(get_pconfig(local_user(),'system','no_smilies'))))
- return $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',
'&lt;/3',
@@ -1046,14 +1033,48 @@ function smilies($s, $sample = false) {
'<img class="smiley" src="' . $a->get_baseurl() . '/images/smiley-facepalm.gif" alt=":facepalm" />',
'<img class="smiley" src="' . $a->get_baseurl() . '/images/like.gif" alt=":like" />',
'<img class="smiley" src="' . $a->get_baseurl() . '/images/dislike.gif" alt=":dislike" />',
- '<a href="http://getzot.com"><strong>red<img class="smiley" src="' . $a->get_baseurl() . '/images/rm-16.png" alt="red#matrix" />matrix</strong></a>',
- '<a href="http://getzot.com"><strong>red<img class="smiley" src="' . $a->get_baseurl() . '/images/rm-16.png" alt="red#" />matrix</strong></a>',
+ '<a href="http://getzot.com"><strong>red<img class="smiley" src="' . $a->get_baseurl() . '/images/rm-16.png" alt="' . urlencode('red#matrix') . '" />matrix</strong></a>',
+ '<a href="http://getzot.com"><strong>red<img class="smiley" src="' . $a->get_baseurl() . '/images/rm-16.png" alt="' . urlencode('red#') . '" />matrix</strong></a>',
'<a href="http://getzot.com"><strong>red<img class="smiley" src="' . $a->get_baseurl() . '/images/rm-16.png" alt="r#" />matrix</strong></a>'
);
- $params = array('texts' => $texts, 'icons' => $icons, 'string' => $s);
+ $params = array('texts' => $texts, 'icons' => $icons);
call_hooks('smilie', $params);
+ return $params;
+}
+/**
+ *
+ * Function: smilies
+ *
+ * Description:
+ * Replaces text emoticons with graphical images
+ *
+ * @Parameter: string $s
+ *
+ * Returns string
+ *
+ * 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.
+ *
+ * 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
+ * bbcode source for HTML display
+ *
+ */
+function smilies($s, $sample = false) {
+ $a = get_app();
+
+ if(intval(get_config('system','no_smilies'))
+ || (local_user() && intval(get_pconfig(local_user(),'system','no_smilies'))))
+ return $s;
+
+ $s = preg_replace_callback('{<(pre|code)>.*?</\1>}ism','smile_shield',$s);
+ $s = preg_replace_callback('/<[a-z]+ .*?>/ism','smile_shield',$s);
+
+ $params = list_smilies();
+ $params['string'] = $s;
if($sample) {
$s = '<div class="smiley-sample">';
@@ -1069,7 +1090,6 @@ function smilies($s, $sample = false) {
$s = preg_replace_callback('/<!--base64:(.*?)-->/ism', 'smile_unshield', $s);
return $s;
-
}
function smile_shield($m) {
@@ -1129,6 +1149,7 @@ function normalise_link($url) {
function link_compare($a,$b) {
if(strcasecmp(normalise_link($a),normalise_link($b)) === 0)
return true;
+
return false;
}
@@ -1144,7 +1165,6 @@ function unobscure(&$item) {
if($item['body'])
$item['body'] = crypto_unencapsulate(json_decode_plus($item['body']),$key);
}
-
}
function theme_attachments(&$item) {
@@ -1182,13 +1202,15 @@ function theme_attachments(&$item) {
$title = t('unknown.???');
$title .= ' ' . $r['length'] . ' ' . t('bytes');
- $url = z_root() . '/magic?f=&hash=' . $item['author_xchan'] . '&dest=' . $r['href'] . '/' . $r['revision'];
+ require_once('include/identity.php');
+ if(is_foreigner($item['author_xchan']))
+ $url = $r['href'];
+ else
+ $url = z_root() . '/magic?f=&hash=' . $item['author_xchan'] . '&dest=' . $r['href'] . '/' . $r['revision'];
+
$s .= '<a href="' . $url . '" title="' . $title . '" class="attachlink" >' . $icon . '</a>';
$attaches[] = array('title' => $title, 'url' => $url, 'icon' => $icon );
-
}
-
-
}
$s = replace_macros(get_markup_template('item_attach.tpl'), array(
@@ -1196,13 +1218,12 @@ function theme_attachments(&$item) {
));
return $s;
-
}
function format_categories(&$item,$writeable) {
-
$s = '';
+
$terms = get_terms_oftype($item['term'],TERM_CATEGORY);
if($terms) {
$categories = array();
@@ -1218,6 +1239,7 @@ function format_categories(&$item,$writeable) {
'$remove' => t('remove category'),
'$categories' => $categories
));
+
return $s;
}
@@ -1228,7 +1250,6 @@ function format_hashtags(&$item) {
$s = '';
$terms = get_terms_oftype($item['term'],TERM_HASHTAG);
if($terms) {
- $categories = array();
foreach($terms as $t) {
$term = htmlspecialchars($t['term'],ENT_COMPAT,'UTF-8',false) ;
if(! trim($term))
@@ -1248,11 +1269,10 @@ function format_hashtags(&$item) {
function format_mentions(&$item) {
-
$s = '';
+
$terms = get_terms_oftype($item['term'],TERM_MENTION);
if($terms) {
- $categories = array();
foreach($terms as $t) {
$term = htmlspecialchars($t['term'],ENT_COMPAT,'UTF-8',false) ;
if(! trim($term))
@@ -1271,8 +1291,8 @@ function format_mentions(&$item) {
function format_filer(&$item) {
-
$s = '';
+
$terms = get_terms_oftype($item['term'],TERM_FILE);
if($terms) {
$categories = array();
@@ -1288,18 +1308,28 @@ function format_filer(&$item) {
'$remove' => t('remove from file'),
'$categories' => $categories
));
+
return $s;
}
+function generate_map($coord) {
+ $coord = trim($coord);
+ $coord = str_replace(array(',','/',' '),array(' ',' ',' '),$coord);
+ $arr = array('lat' => trim(substr($coord,0,strpos($coord,' '))), 'lon' => trim(substr($coord,strpos($coord,' ')+1)), 'html' => '');
+ call_hooks('generate_map',$arr);
+ return $arr['html'];
+}
+function generate_named_map($location) {
+ $arr = array('location' => $location, 'html' => '');
+ call_hooks('generate_named_map',$arr);
+ return $arr['html'];
+}
-function prepare_body(&$item,$attach = false) {
-
- $a = get_app();
-
+function prepare_body(&$item,$attach = false) {
call_hooks('prepare_body_init', $item);
@@ -1315,28 +1345,29 @@ function prepare_body(&$item,$attach = false) {
return $s;
}
+ if(strpos($s,'<div class="map">') !== false && $item['coord']) {
+ $x = generate_map(trim($item['coord']));
+ if($x) {
+ $s = preg_replace('/\<div class\=\"map\"\>/','$0' . $x,$s);
+ }
+ }
$s .= theme_attachments($item);
-
- $writeable = ((get_observer_hash() == $item['owner_xchan']) ? true : false);
-
+ $writeable = ((get_observer_hash() == $item['owner_xchan']) ? true : false);
$s .= format_hashtags($item);
if($item['resource_type'])
$s .= format_mentions($item);
-
$s .= format_categories($item,$writeable);
if(local_user() == $item['uid'])
$s .= format_filer($item);
-
$s = sslify($s);
-
// Look for spoiler
$spoilersearch = '<blockquote class="spoiler">';
@@ -1351,7 +1382,7 @@ function prepare_body(&$item,$attach = false) {
$pos = strpos($s, $spoilersearch);
$rnd = random_string(8);
$spoilerreplace = '<br /> <span id="spoiler-wrap-'.$rnd.'" style="white-space:nowrap;" class="fakelink" onclick="openClose(\'spoiler-'.$rnd.'\');">'.sprintf(t('Click to open/close')).'</span>'.
- '<blockquote class="spoiler" id="spoiler-'.$rnd.'" style="display: none;">';
+ '<blockquote class="spoiler" id="spoiler-'.$rnd.'" style="display: none;">';
$s = substr($s, 0, $pos).$spoilerreplace.substr($s, $pos+strlen($spoilersearch));
}
@@ -1359,11 +1390,10 @@ function prepare_body(&$item,$attach = false) {
$authorsearch = '<blockquote class="author">';
while ((strpos($s, $authorsearch) !== false)) {
-
$pos = strpos($s, $authorsearch);
$rnd = random_string(8);
$authorreplace = '<br /> <span id="author-wrap-'.$rnd.'" style="white-space:nowrap;" class="fakelink" onclick="openClose(\'author-'.$rnd.'\');">'.sprintf(t('Click to open/close')).'</span>'.
- '<blockquote class="author" id="author-'.$rnd.'" style="display: block;">';
+ '<blockquote class="author" id="author-'.$rnd.'" style="display: block;">';
$s = substr($s, 0, $pos).$authorreplace.substr($s, $pos+strlen($authorsearch));
}
@@ -1379,10 +1409,7 @@ function prepare_body(&$item,$attach = false) {
function prepare_text($text,$content_type = 'text/bbcode') {
-
-
switch($content_type) {
-
case 'text/plain':
$s = escape_tags($text);
break;
@@ -1452,7 +1479,7 @@ function zidify_callback($match) {
function zidify_img_callback($match) {
$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;
}
@@ -1465,14 +1492,11 @@ function zidify_links($s) {
}
-
/**
* return atom link elements for all of our hubs
*/
-
function feed_hublinks() {
-
$hub = get_config('system','huburl');
$hubxml = '';
@@ -1487,14 +1511,13 @@ function feed_hublinks() {
}
}
}
+
return $hubxml;
}
/* return atom link elements for salmon endpoints */
-
function feed_salmonlinks($nick) {
-
$a = get_app();
$salmon = '<link rel="salmon" href="' . xmlify($a->get_baseurl() . '/salmon/' . $nick) . '" />' . "\n" ;
@@ -1503,23 +1526,23 @@ function feed_salmonlinks($nick) {
$salmon .= ' <link rel="http://salmon-protocol.org/ns/salmon-replies" href="' . xmlify($a->get_baseurl() . '/salmon/' . $nick) . '" />' . "\n" ;
$salmon .= ' <link rel="http://salmon-protocol.org/ns/salmon-mention" href="' . xmlify($a->get_baseurl() . '/salmon/' . $nick) . '" />' . "\n" ;
+
return $salmon;
}
function get_plink($item,$conversation_mode = true) {
- $a = get_app();
if($conversation_mode)
$key = 'plink';
else
$key = 'llink';
-
+
if(x($item,$key)) {
return array(
'href' => zid($item[$key]),
'title' => t('Link to Source'),
);
- }
+ }
else {
return false;
}
@@ -1531,7 +1554,7 @@ function unamp($s) {
}
function layout_select($channel_id, $current = '') {
- $r = q("select mid,sid from item left join item_id on iid = item.id where service = 'PDL' and item.uid = item_id.uid and item_id.uid = %d and (item_restrict & %d)",
+ $r = q("select mid,sid from item left join item_id on iid = item.id where service = 'PDL' and item.uid = item_id.uid and item_id.uid = %d and (item_restrict & %d)>0",
intval($channel_id),
intval(ITEM_PDL)
);
@@ -1551,9 +1574,6 @@ function layout_select($channel_id, $current = '') {
}
-
-
-
function mimetype_select($channel_id, $current = 'text/bbcode') {
$x = array(
@@ -1584,19 +1604,17 @@ function mimetype_select($channel_id, $current = 'text/bbcode') {
$o .= '</select>';
return $o;
-
}
-
function lang_selector() {
global $a;
-
+
$langs = glob('view/*/strings.php');
-
+
$lang_options = array();
$selected = "";
-
+
if(is_array($langs) && count($langs)) {
$langs[] = '';
if(! in_array('view/en/strings.php',$langs))
@@ -1614,25 +1632,24 @@ function lang_selector() {
}
}
- $tpl = get_markup_template("lang_selector.tpl");
+ $tpl = get_markup_template("lang_selector.tpl");
$o = replace_macros($tpl, array(
'$title' => t('Select an alternate language'),
'$langs' => array($lang_options, $selected),
));
+
return $o;
}
-
function return_bytes ($size_str) {
- switch (substr ($size_str, -1))
- {
- case 'M': case 'm': return (int)$size_str * 1048576;
- case 'K': case 'k': return (int)$size_str * 1024;
- case 'G': case 'g': return (int)$size_str * 1073741824;
- default: return $size_str;
- }
+ switch (substr ($size_str, -1)) {
+ case 'M': case 'm': return (int)$size_str * 1048576;
+ case 'K': case 'k': return (int)$size_str * 1024;
+ case 'G': case 'g': return (int)$size_str * 1073741824;
+ default: return $size_str;
+ }
}
@@ -1647,7 +1664,6 @@ function base64url_encode($s, $strip_padding = true) {
}
function base64url_decode($s) {
-
if(is_array($s)) {
logger('base64url_decode: illegal input: ' . print_r(debug_backtrace(), true));
return $s;
@@ -1655,7 +1671,11 @@ function base64url_decode($s) {
return base64_decode(strtr($s,'-_','+/'));
}
-
+/**
+ * @ Return a div to clear floats.
+ *
+ * @return string
+ */
function cleardiv() {
return '<div class="clear"></div>';
}
@@ -1673,7 +1693,7 @@ function bb_translate_video($s) {
$s = str_replace($mtch[0],'[vimeo]' . $mtch[1] . '[/vimeo]',$s);
}
}
- return $s;
+ return $s;
}
function html2bb_video($s) {
@@ -1693,61 +1713,57 @@ function html2bb_video($s) {
/**
* apply xmlify() to all values of array $val, recursively
*/
-function array_xmlify($val){
+function array_xmlify($val) {
if (is_bool($val)) return $val?"true":"false";
if (is_array($val)) return array_map('array_xmlify', $val);
return xmlify((string) $val);
}
-function reltoabs($text, $base)
-{
- if (empty($base))
- return $text;
+function reltoabs($text, $base) {
+ if (empty($base))
+ return $text;
- $base = rtrim($base,'/');
+ $base = rtrim($base,'/');
- $base2 = $base . "/";
-
- // Replace links
- $pattern = "/<a([^>]*) href=\"(?!http|https|\/)([^\"]*)\"/";
- $replace = "<a\${1} href=\"" . $base2 . "\${2}\"";
- $text = preg_replace($pattern, $replace, $text);
+ $base2 = $base . "/";
- $pattern = "/<a([^>]*) href=\"(?!http|https)([^\"]*)\"/";
- $replace = "<a\${1} href=\"" . $base . "\${2}\"";
- $text = preg_replace($pattern, $replace, $text);
+ // Replace links
+ $pattern = "/<a([^>]*) href=\"(?!http|https|\/)([^\"]*)\"/";
+ $replace = "<a\${1} href=\"" . $base2 . "\${2}\"";
+ $text = preg_replace($pattern, $replace, $text);
- // Replace images
- $pattern = "/<img([^>]*) src=\"(?!http|https|\/)([^\"]*)\"/";
- $replace = "<img\${1} src=\"" . $base2 . "\${2}\"";
- $text = preg_replace($pattern, $replace, $text);
+ $pattern = "/<a([^>]*) href=\"(?!http|https)([^\"]*)\"/";
+ $replace = "<a\${1} href=\"" . $base . "\${2}\"";
+ $text = preg_replace($pattern, $replace, $text);
- $pattern = "/<img([^>]*) src=\"(?!http|https)([^\"]*)\"/";
- $replace = "<img\${1} src=\"" . $base . "\${2}\"";
- $text = preg_replace($pattern, $replace, $text);
+ // Replace images
+ $pattern = "/<img([^>]*) src=\"(?!http|https|\/)([^\"]*)\"/";
+ $replace = "<img\${1} src=\"" . $base2 . "\${2}\"";
+ $text = preg_replace($pattern, $replace, $text);
+ $pattern = "/<img([^>]*) src=\"(?!http|https)([^\"]*)\"/";
+ $replace = "<img\${1} src=\"" . $base . "\${2}\"";
+ $text = preg_replace($pattern, $replace, $text);
- // Done
- return $text;
+ // Done
+ return $text;
}
function item_post_type($item) {
-
-
- switch($item['resource_type']) {
- case 'photo':
- $post_type = t('photo');
- break;
- case 'event':
- $post_type = t('event');
- break;
- default:
- $post_type = t('status');
- if($item['mid'] != $item['parent_mid'])
- $post_type = t('comment');
- break;
- }
+ switch($item['resource_type']) {
+ case 'photo':
+ $post_type = t('photo');
+ break;
+ case 'event':
+ $post_type = t('event');
+ break;
+ default:
+ $post_type = t('status');
+ if($item['mid'] != $item['parent_mid'])
+ $post_type = t('comment');
+ break;
+ }
if(strlen($item['verb']) && (! activity_match($item['verb'],ACTIVITY_POST)))
$post_type = t('activity');
@@ -1789,6 +1805,7 @@ function is_a_date_arg($s) {
return true;
}
}
+
return false;
}
@@ -1808,8 +1825,13 @@ function legal_webbie($s) {
function check_webbie($arr) {
+ $reservechan = get_config('system','reserved_channels');
+ if(strlen($reservechan))
+ $taken = explode(',', $reservechan);
+ else
+ $taken = array();
+
$str = '';
- $taken = array();
if(count($arr)) {
foreach($arr as $x) {
$y = legal_webbie($x);
@@ -1835,14 +1857,16 @@ function check_webbie($arr) {
}
}
}
+
return '';
}
-
+
function ids_to_querystr($arr,$idx = 'id') {
$t = array();
foreach($arr as $x)
$t[] = $x[$idx];
+
return(implode(',', $t));
}
@@ -1850,9 +1874,17 @@ function ids_to_querystr($arr,$idx = 'id') {
// author_xchan and owner_xchan. If $abook is true also include the abook info.
// This is needed in the API to save extra per item lookups there.
-function xchan_query(&$items,$abook = true) {
+function xchan_query(&$items,$abook = true,$effective_uid = 0) {
$arr = array();
if($items && count($items)) {
+
+ if($effective_uid) {
+ for($x = 0; $x < count($items); $x ++) {
+ $items[$x]['real_uid'] = $items[$x]['uid'];
+ $items[$x]['uid'] = $effective_uid;
+ }
+ }
+
foreach($items as $item) {
if($item['owner_xchan'] && (! in_array($item['owner_xchan'],$arr)))
$arr[] = "'" . dbesc($item['owner_xchan']) . "'";
@@ -1863,13 +1895,13 @@ function xchan_query(&$items,$abook = true) {
if(count($arr)) {
if($abook) {
$chans = q("select * from xchan left join hubloc on hubloc_hash = xchan_hash left join abook on abook_xchan = xchan_hash and abook_channel = %d
- where xchan_hash in (" . implode(',', $arr) . ") and ( hubloc_flags & " . intval(HUBLOC_FLAGS_PRIMARY) . " )",
+ where xchan_hash in (" . implode(',', $arr) . ") and ( hubloc_flags & " . intval(HUBLOC_FLAGS_PRIMARY) . " )>0",
intval($item['uid'])
);
}
else {
$chans = q("select xchan.*,hubloc.* from xchan left join hubloc on hubloc_hash = xchan_hash
- where xchan_hash in (" . implode(',', $arr) . ") and ( hubloc_flags & " . intval(HUBLOC_FLAGS_PRIMARY) . " )");
+ where xchan_hash in (" . implode(',', $arr) . ") and ( hubloc_flags & " . intval(HUBLOC_FLAGS_PRIMARY) . " )>0");
}
$xchans = q("select * from xchan where xchan_hash in (" . implode(',',$arr) . ") and xchan_network in ('rss','unknown')");
if(! $chans)
@@ -1883,7 +1915,6 @@ function xchan_query(&$items,$abook = true) {
$items[$x]['author'] = find_xchan_in_array($items[$x]['author_xchan'],$chans);
}
}
-
}
function xchan_mail_query(&$item) {
@@ -1898,7 +1929,7 @@ function xchan_mail_query(&$item) {
if(count($arr)) {
$chans = q("select xchan.*,hubloc.* from xchan left join hubloc on hubloc_hash = xchan_hash
- where xchan_hash in (" . implode(',', $arr) . ") and ( hubloc_flags & " . intval(HUBLOC_FLAGS_PRIMARY) . " )");
+ where xchan_hash in (" . implode(',', $arr) . ") and ( hubloc_flags & " . intval(HUBLOC_FLAGS_PRIMARY) . " )>0");
}
if($chans) {
$item['from'] = find_xchan_in_array($item['from_xchan'],$chans);
@@ -1923,6 +1954,7 @@ function get_rel_link($j,$rel) {
foreach($j as $l)
if($l['rel'] === $rel)
return $l['href'];
+
return '';
}
@@ -1932,7 +1964,7 @@ function get_rel_link($j,$rel) {
function magic_link($s) {
return $s;
}
-
+
// if $escape is true, dbesc() each element before adding quotes
function stringify_array_elms(&$arr,$escape = false) {
@@ -1949,23 +1981,22 @@ function stringify_array_elms(&$arr,$escape = false) {
*/
function jindent($json) {
- $result = '';
- $pos = 0;
- $strLen = strlen($json);
- $indentStr = ' ';
- $newLine = "\n";
- $prevChar = '';
+ $result = '';
+ $pos = 0;
+ $strLen = strlen($json);
+ $indentStr = ' ';
+ $newLine = "\n";
+ $prevChar = '';
$outOfQuotes = true;
for ($i=0; $i<=$strLen; $i++) {
-
// Grab the next character in the string.
$char = substr($json, $i, 1);
// Are we inside a quoted string?
if ($char == '"' && $prevChar != '\\') {
$outOfQuotes = !$outOfQuotes;
-
+
// If this character is the end of an element,
// output a new line and indent the next line.
} else if(($char == '}' || $char == ']') && $outOfQuotes) {
@@ -1975,7 +2006,7 @@ function jindent($json) {
$result .= $indentStr;
}
}
-
+
// Add the character to the result string.
$result .= $char;
@@ -1986,7 +2017,7 @@ function jindent($json) {
if ($char == '{' || $char == '[') {
$pos ++;
}
-
+
for ($j = 0; $j < $pos; $j++) {
$result .= $indentStr;
}
@@ -2000,22 +2031,31 @@ function jindent($json) {
function json_decode_plus($s) {
-
$x = json_decode($s,true);
if(! $x)
$x = json_decode(str_replace(array('\\"','\\\\'),array('"','\\'),$s),true);
- return $x;
+ return $x;
}
function design_tools() {
+
$channel = get_app()->get_channel();
+ $sys = false;
+
+ if(get_app()->is_sys && is_site_admin()) {
+ require_once('include/identity.php');
+ $channel = get_sys_channel();
+ $sys = true;
+ }
+
$who = $channel['channel_address'];
return replace_macros(get_markup_template('design_tools.tpl'), array(
'$title' => t('Design'),
'$who' => $who,
+ '$sys' => $sys,
'$blocks' => t('Blocks'),
'$menus' => t('Menus'),
'$layout' => t('Layouts'),
@@ -2033,4 +2073,279 @@ function normalise_openid($s) {
return trim(str_replace(array('http://','https://'),array('',''),$s),'/');
}
+// used in ajax endless scroll request to find out all the args that the master page was viewing.
+// This was using $_REQUEST, but $_REQUEST also contains all your cookies. So we're restricting it
+// to $_GET and $_POST.
+
+function extra_query_args() {
+ $s = '';
+ if(count($_GET)) {
+ foreach($_GET as $k => $v) {
+ // these are request vars we don't want to duplicate
+ if(! in_array($k, array('q','f','zid','page','PHPSESSID'))) {
+ $s .= '&' . $k . '=' . urlencode($v);
+ }
+ }
+ }
+ if(count($_POST)) {
+ foreach($_POST as $k => $v) {
+ // these are request vars we don't want to duplicate
+ if(! in_array($k, array('q','f','zid','page','PHPSESSID'))) {
+ $s .= '&' . $k . '=' . urlencode($v);
+ }
+ }
+ }
+ return $s;
+}
+
+/**
+ * This function removes the tag $tag from the text $body and replaces it with
+ * the appropiate link.
+ *
+ * @param unknown_type $body the text to replace the tag in
+ * @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, &$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_BOOKMARK : $termtype);
+
+ //is it a hash tag?
+ if(strpos($tag,'#') === 0) {
+ 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=')) || (strpos($tag,'[url='))) {
+ //...do nothing
+ return $replaced;
+ }
+ if($tag == '#getzot') {
+ $basetag = 'getzot';
+ $url = 'https://redmatrix.me';
+ $newtag = '#[zrl=' . $url . ']' . $basetag . '[/zrl]';
+ $body = str_replace($tag,$newtag,$body);
+ $replaced = true;
+ }
+ if(! $replaced) {
+
+ //base tag has the tags name only
+
+ if((substr($tag,0,7) === '#&quot;') && (substr($tag,-6,6) === '&quot;')) {
+ $basetag = substr($tag,7);
+ $basetag = substr($basetag,0,-6);
+ }
+ else
+ $basetag = str_replace('_',' ',substr($tag,1));
+
+ //create text for link
+ $url = $a->get_baseurl() . '/search?tag=' . rawurlencode($basetag);
+ $newtag = '#[zrl=' . $a->get_baseurl() . '/search?tag=' . rawurlencode($basetag) . ']' . $basetag . '[/zrl]';
+ //replace tag by the link
+ $body = str_replace($tag, $newtag, $body);
+ $replaced = true;
+ }
+ //is the link already in str_tags?
+ if(! stristr($str_tags,$newtag)) {
+ //append or set str_tags
+ if(strlen($str_tags))
+ $str_tags .= ',';
+
+ $str_tags .= $newtag;
+ }
+ return array('replaced' => $replaced, 'termtype' => $termtype, 'term' => $basetag, 'url' => $url, 'contact' => $r[0]);
+ }
+
+ //is it a person tag?
+
+ if(strpos($tag,'@') === 0) {
+
+ // The @! tag will alter permissions
+ $exclusive = ((strpos($tag,'!') === 1) ? true : false);
+
+ //is it already replaced?
+ if(strpos($tag,'[zrl='))
+ return $replaced;
+
+ //get the person's name
+
+ $name = substr($tag,(($exclusive) ? 2 : 1)); // The name or name fragment we are going to replace
+ $newname = $name; // a copy that we can mess with
+ $tagcid = 0;
+
+ $r = null;
+
+ // is it some generated name?
+
+ $forum = false;
+ $trailing_plus_name = false;
+
+ // @channel+ is a forum or network delivery tag
+
+ if(substr($newname,-1,1) === '+') {
+ $forum = true;
+ $newname = substr($newname,0,-1);
+ }
+
+ // Here we're looking for an address book entry as provided by the auto-completer
+ // of the form something+nnn where nnn is an abook_id or the first chars of xchan_hash
+
+ if(strrpos($newname,'+')) {
+ //get the id
+
+ if(strrpos($tagcid,' '))
+ $tagcid = substr($tagcid,0,strrpos($tagcid,' '));
+
+ $tagcid = substr($newname,strrpos($newname,'+') + 1);
+
+ if(strlen($tagcid) < 16)
+ $abook_id = intval($tagcid);
+ //remove the next word from tag's name
+ if(strpos($name,' ')) {
+ $name = substr($name,0,strpos($name,' '));
+ }
+
+ if($abook_id) { // 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($abook_id),
+ intval($profile_uid)
+ );
+ }
+ else {
+ $r = q("SELECT * FROM xchan
+ WHERE xchan_hash like '%s%%' LIMIT 1",
+ dbesc($tagcid)
+ );
+ }
+ }
+
+ if(! $r) {
+
+ // look for matching names in the address book
+
+ // Two ways to deal with spaces - double quote the name or use underscores
+ // we see this after input filtering so quotes have been html entity encoded
+
+ if((substr($name,0,6) === '&quot;') && (substr($name,-6,6) === '&quot;')) {
+ $newname = substr($name,6);
+ $newname = substr($newname,0,-6);
+ }
+ else
+ $newname = str_replace('_',' ',$name);
+
+ // do this bit over since we started over with $name
+
+ if(substr($newname,-1,1) === '+') {
+ $forum = true;
+ $newname = substr($newname,0,-1);
+ }
+
+ //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 abook left join xchan on abook_xchan = xchan_hash
+ WHERE xchan_addr like ('%s') AND abook_channel = %d LIMIT 1",
+ dbesc(((strpos($newname,'@')) ? $newname : $newname . '@%')),
+ intval($profile_uid)
+ );
+ }
+
+ if(! $r) {
+ // it's possible somebody has a name ending with '+', which we stripped off as a forum indicator
+ // This is very rare but we want to get it right.
+
+ $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)
+ $trailing_plus_name = true;
+ }
+ }
+
+ // $r is set if we found something
+
+ $channel = get_app()->get_channel();
+
+ if($r) {
+ $profile = $r[0]['xchan_url'];
+ $newname = $r[0]['xchan_name'];
+ // add the channel's xchan_hash 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)
+ );
+ 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(($exclusive) && (! $access_tag)) {
+ $access_tag .= 'cid:' . $channel['channel_hash'];
+ }
+
+ // if there is an url for this channel
+
+ if(isset($profile)) {
+ $replaced = true;
+ //create profile link
+ $profile = str_replace(',','%2c',$profile);
+ $url = $profile;
+ $newtag = '@' . (($exclusive) ? '!' : '') . '[zrl=' . $profile . ']' . $newname . (($forum && ! $trailing_plus_name) ? '+' : '') . '[/zrl]';
+ $body = str_replace('@' . (($exclusive) ? '!' : '') . $name, $newtag, $body);
+ //append tag to str_tags
+ if(! stristr($str_tags,$newtag)) {
+ if(strlen($str_tags))
+ $str_tags .= ',';
+ $str_tags .= $newtag;
+ }
+ }
+ }
+
+ return array('replaced' => $replaced, 'termtype' => $termtype, 'term' => $newname, 'url' => $url, 'contact' => $r[0]);
+}
diff --git a/include/widgets.php b/include/widgets.php
index 1aa018fb6..bb9890add 100644
--- a/include/widgets.php
+++ b/include/widgets.php
@@ -1,4 +1,9 @@
-<?php /** @file */
+<?php
+/**
+ * @file include/widgets.php
+ *
+ * @brief This file contains the widgets.
+ */
require_once('include/dir_fns.php');
require_once('include/contact_widgets.php');
@@ -6,7 +11,7 @@ require_once('include/contact_widgets.php');
function widget_profile($args) {
$a = get_app();
- $block = (((get_config('system','block_public')) && (! local_user()) && (! remote_user())) ? true : false);
+ $block = (((get_config('system', 'block_public')) && (! local_user()) && (! remote_user())) ? true : false);
return profile_sidebar($a->profile, $block, true);
}
@@ -16,14 +21,15 @@ function widget_profile($args) {
function widget_tagcloud($args) {
$o = '';
- $tab = 0;
+ //$tab = 0;
$a = get_app();
$uid = $a->profile_uid;
$count = ((x($args,'count')) ? intval($args['count']) : 24);
$flags = 0;
$type = TERM_CATEGORY;
- $r = tagadelic($uid,$count,$authors,$flags,ITEM_WEBPAGE,$type);
+ // FIXME there exists no $authors variable
+ $r = tagadelic($uid, $count, $authors, $flags, ITEM_WEBPAGE, $type);
if($r) {
$o = '<div class="tagblock widget"><h3>' . t('Categories') . '</h3><div class="tags" align="center">';
@@ -75,9 +81,8 @@ function widget_collections($args) {
return '';
break;
}
-
- return group_side($every, $each, $edit, $current, $abook_id, $wmode);
+ return group_side($every, $each, $edit, $current, $abook_id, $wmode);
}
@@ -93,7 +98,6 @@ function widget_appselect($arr) {
}
-
function widget_suggestions($arr) {
if((! local_user()) || (! feature_enabled(local_user(),'suggest')))
@@ -114,16 +118,13 @@ function widget_suggestions($arr) {
// This will throw some entropy intot he situation so you won't
// be looking at the same two mug shots every time the widget runs
-
$index = ((count($r) > 2) ? mt_rand(0,count($r) - 2) : 0);
-
for($x = $index; $x <= ($index+1); $x ++) {
-
$rr = $r[$x];
if(! $rr['xchan_url'])
break;
-
+
$connlnk = z_root() . '/follow/?url=' . $rr['xchan_addr'];
$arr[] = array(
@@ -138,7 +139,6 @@ function widget_suggestions($arr) {
);
}
-
$o = replace_macros(get_markup_template('suggest_widget.tpl'),array(
'$title' => t('Suggestions'),
'$more' => t('See more...'),
@@ -146,16 +146,16 @@ function widget_suggestions($arr) {
));
return $o;
-
}
function widget_follow($args) {
if(! local_user())
return '';
+
$a = get_app();
$uid =$a->channel['channel_id'];
- $r = q("select count(*) as total from abook where abook_channel = %d and not (abook_flags & %d) ",
+ $r = q("select count(*) as total from abook where abook_channel = %d and not (abook_flags & %d)>0 ",
intval($uid),
intval(ABOOK_FLAG_SELF)
);
@@ -163,10 +163,10 @@ function widget_follow($args) {
$total_channels = $r[0]['total'];
$limit = service_class_fetch($uid,'total_channels');
if($limit !== false) {
- $abook_usage_message = sprintf( t("You have %1$.0f of %2$.0f allowed connections."), $total_channels, $limit);
+ $abook_usage_message = sprintf( t("You have %1$.0f of %2$.0f allowed connections."), $total_channels, $limit);
}
else {
- $abook_usage_message = '';
+ $abook_usage_message = '';
}
return replace_macros(get_markup_template('follow.tpl'),array(
'$connect' => t('Add New Connection'),
@@ -175,7 +175,6 @@ function widget_follow($args) {
'$follow' => t('Connect'),
'$abook_usage_message' => $abook_usage_message
));
-
}
@@ -192,6 +191,7 @@ function widget_notes($arr) {
'$text' => $text,
'$save' => t('Save'),
));
+
return $o;
}
@@ -220,7 +220,7 @@ function widget_savedsearch($arr) {
}
if(x($_GET,'searchremove') && $search) {
- q("delete from `term` where `uid` = %d and `type` = %d and `term` = '%s' limit 1",
+ q("delete from `term` where `uid` = %d and `type` = %d and `term` = '%s'",
intval(local_user()),
intval(TERM_SAVEDSEARCH),
dbesc($search)
@@ -228,8 +228,6 @@ function widget_savedsearch($arr) {
$search = '';
}
-
-
$srchurl = $a->query_string;
$srchurl = rtrim(preg_replace('/searchsave\=[^\&].*?(\&|$)/is','',$srchurl),'&');
@@ -238,9 +236,13 @@ function widget_savedsearch($arr) {
$hasq = ((strpos($srchurl,'?') !== false) ? true : false);
$srchurl = rtrim(preg_replace('/search\=[^\&].*?(\&|$)/is','',$srchurl),'&');
+ $srchurl = rtrim(preg_replace('/submit\=[^\&].*?(\&|$)/is','',$srchurl),'&');
$srchurl = str_replace(array('?f=','&f='),array('',''),$srchurl);
+
+
$hasq = ((strpos($srchurl,'?') !== false) ? true : false);
-
+
+
$o = '';
$r = q("select `tid`,`term` from `term` WHERE `uid` = %d and `type` = %d ",
@@ -252,31 +254,28 @@ function widget_savedsearch($arr) {
if(count($r)) {
foreach($r as $rr) {
-
$saved[] = array(
'id' => $rr['tid'],
- 'term' => $rr['term'],
+ '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'], ENT_COMPAT,'UTF-8'),
- 'encodedterm' => urlencode($rr['term']),
- 'delete' => t('Remove term'),
- 'selected' => ($search==$rr['term']),
+ 'encodedterm' => urlencode($rr['term']),
+ 'delete' => t('Remove term'),
+ 'selected' => ($search==$rr['term']),
);
}
- }
+ }
-
$tpl = get_markup_template("saved_searches.tpl");
$o = replace_macros($tpl, array(
'$title' => t('Saved Searches'),
'$add' => t('add'),
- '$searchbox' => searchbox($search,'netsearch-box',$srchurl . (($hasq) ? '' : '?f='),true),
+ '$searchbox' => searchbox($search, 'netsearch-box', $srchurl . (($hasq) ? '' : '?f='), true),
'$saved' => $saved,
));
return $o;
-
}
@@ -306,7 +305,6 @@ function widget_filer($arr) {
'$all' => t('Everything'),
'$terms' => $terms,
'$base' => z_root() . '/' . $a->cmd
-
));
}
@@ -327,22 +325,32 @@ function widget_archive($arr) {
if(! perm_is_allowed($uid,get_observer_hash(),'view_stream'))
return '';
-
$wall = ((array_key_exists('wall', $arr)) ? intval($arr['wall']) : 0);
$style = ((array_key_exists('style', $arr)) ? $arr['style'] : 'select');
- $url = z_root() . '/' . $a->cmd;
+ $showend = ((get_pconfig($uid,'system','archive_show_end_date')) ? true : false);
+ $mindate = get_pconfig($uid,'system','archive_mindate');
+ $visible_years = get_pconfig($uid,'system','archive_visible_years');
+ if(! $visible_years)
+ $visible_years = 5;
+ $url = z_root() . '/' . $a->cmd;
- $ret = list_post_dates($uid,$wall);
+ $ret = list_post_dates($uid,$wall,$mindate);
if(! count($ret))
return '';
+ $cutoff_year = intval(datetime_convert('',date_default_timezone_get(),'now','Y')) - $visible_years;
+ $cutoff = ((array_key_exists($cutoff_year,$ret))? true : false);
+
$o = replace_macros(get_markup_template('posted_date_widget.tpl'),array(
'$title' => t('Archives'),
- '$size' => ((count($ret) > 6) ? 6 : count($ret)),
+ '$size' => $visible_years,
+ '$cutoff_year' => $cutoff_year,
+ '$cutoff' => $cutoff,
'$url' => $url,
'$style' => $style,
+ '$showend' => $showend,
'$dates' => $ret
));
return $o;
@@ -354,7 +362,7 @@ function widget_fullprofile($arr) {
if(! $a->profile['profile_uid'])
return;
- $block = (((get_config('system','block_public')) && (! local_user()) && (! remote_user())) ? true : false);
+ $block = (((get_config('system', 'block_public')) && (! local_user()) && (! remote_user())) ? true : false);
return profile_sidebar($a->profile, $block);
}
@@ -362,32 +370,45 @@ function widget_fullprofile($arr) {
function widget_categories($arr) {
$a = get_app();
-
if($a->profile['profile_uid'] && (! perm_is_allowed($a->profile['profile_uid'],get_observer_hash(),'view_stream')))
return '';
-
$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);
- return categories_widget($srchurl,$cat);
+ return categories_widget($srchurl, $cat);
}
function widget_tagcloud_wall($arr) {
$a = get_app();
+
if((! $a->profile['profile_uid']) || (! $a->profile['channel_hash']))
return '';
- if(! perm_is_allowed($a->profile['profile_uid'],get_observer_hash(),'view_stream'))
+ if(! perm_is_allowed($a->profile['profile_uid'], get_observer_hash(), 'view_stream'))
return '';
- $limit = ((array_key_exists('limit',$arr)) ? intval($arr['limit']) : 50);
- if(feature_enabled($a->profile['profile_uid'],'tagadelic'))
- return tagblock('search',$a->profile['profile_uid'],$limit,$a->profile['channel_hash'],ITEM_WALL);
+ $limit = ((array_key_exists('limit', $arr)) ? intval($arr['limit']) : 50);
+ if(feature_enabled($a->profile['profile_uid'], 'tagadelic'))
+ return wtagblock($a->profile['profile_uid'], $limit, $a->profile['channel_hash'], ITEM_WALL);
+
return '';
}
+function widget_catcloud_wall($arr) {
+ $a = get_app();
+
+ if((! $a->profile['profile_uid']) || (! $a->profile['channel_hash']))
+ return '';
+ if(! perm_is_allowed($a->profile['profile_uid'], get_observer_hash(), 'view_stream'))
+ return '';
+
+ $limit = ((array_key_exists('limit',$arr)) ? intval($arr['limit']) : 50);
+
+ return catblock($a->profile['profile_uid'], $limit, $a->profile['channel_hash'], ITEM_WALL);
+}
+
function widget_affinity($arr) {
@@ -414,6 +435,7 @@ function widget_affinity($arr) {
call_hooks('main_slider',$arr);
return $arr['html'];
}
+
return '';
}
@@ -430,27 +452,28 @@ function widget_settings_menu($arr) {
// 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",
+ $role = get_pconfig(local_user(),'system','permissions_role');
+
+ $abk = q("select abook_id from abook where abook_channel = %d and ( abook_flags & %d )>0 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',
@@ -468,7 +491,7 @@ function widget_settings_menu($arr) {
'url' => $a->get_baseurl(true).'/settings/display',
'selected' => ((argv(1) === 'display') ? 'active' : ''),
),
-
+
array(
'label' => t('Connected apps'),
'url' => $a->get_baseurl(true) . '/settings/oauth',
@@ -477,24 +500,19 @@ function widget_settings_menu($arr) {
array(
'label' => t('Export channel'),
- 'url' => $a->get_baseurl(true) . '/uexport/basic',
+ 'url' => $a->get_baseurl(true) . '/uexport',
'selected' => ''
),
-// array(
-// 'label' => t('Export account'),
-// 'url' => $a->get_baseurl(true) . '/uexport/complete',
-// 'selected' => ''
-// ),
+ );
- array(
- 'label' => t('Automatic Permissions (Advanced)'),
+ if($role === false || $role === 'custom') {
+ $tabs[] = array(
+ 'label' => t('Connection Default Permissions'),
'url' => $a->get_baseurl(true) . '/connedit/' . $abook_self_id,
'selected' => ''
- ),
-
-
- );
+ );
+ }
if(feature_enabled(local_user(),'premium_channel')) {
$tabs[] = array(
@@ -502,7 +520,6 @@ function widget_settings_menu($arr) {
'url' => $a->get_baseurl(true) . '/connect/' . $channel['channel_address'],
'selected' => ''
);
-
}
if(feature_enabled(local_user(),'channel_sources')) {
@@ -511,18 +528,14 @@ function widget_settings_menu($arr) {
'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,
));
-
}
@@ -532,8 +545,8 @@ function widget_mailmenu($arr) {
$a = get_app();
return replace_macros(get_markup_template('message_side.tpl'), array(
+ '$title' => t('Messages'),
'$tabs'=> array(),
-
'$check'=>array(
'label' => t('Check Mail'),
'url' => $a->get_baseurl(true) . '/message',
@@ -544,9 +557,7 @@ function widget_mailmenu($arr) {
'url' => $a->get_baseurl(true) . '/mail/new',
'sel'=> (argv(1) == 'new'),
)
-
));
-
}
function widget_design_tools($arr) {
@@ -556,8 +567,8 @@ function widget_design_tools($arr) {
// otherwise local_user() is sufficient for permissions.
if($a->profile['profile_uid'])
- if($a->profile['profile_uid'] != local_user())
- return '';
+ if(($a->profile['profile_uid'] != local_user()) && (! $a->is_sys))
+ return '';
if(! local_user())
return '';
@@ -572,23 +583,25 @@ function widget_findpeople($arr) {
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')))
+ if((! $channelx) || (! perm_is_allowed($a->profile['profile_uid'], get_observer_hash(), 'view_photos')))
return '';
- return photos_album_widget($channelx,$a->get_observer());
+ require_once('include/photos.php');
+ 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());
+ return vcard_from_xchan('', get_app()->get_observer());
}
-/**
+/*
* The following directory widgets are only useful on the directory page
*/
@@ -601,21 +614,23 @@ function widget_dirsort($arr) {
}
function widget_dirtags($arr) {
- return dir_tagblock(z_root() . '/directory',null);
+ 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(
+ return replace_macros(get_markup_template('chatroomlist.tpl'), array(
'$header' => t('Chat Rooms'),
'$baseurl' => z_root(),
'$nickname' => $a->profile['channel_address'],
@@ -628,11 +643,13 @@ function widget_bookmarkedchats($arr) {
if(! $h)
return;
$r = q("select * from xchat where xchat_xchan = '%s' group by xchat_url order by xchat_desc",
- dbesc($h)
+ dbesc($h)
);
-
- for($x = 0; $x < count($r); $x ++)
- $r[$x]['xchat_url'] = zid($r[$x]['xchat_url']);
+ if($r) {
+ for($x = 0; $x < count($r); $x ++) {
+ $r[$x]['xchat_url'] = zid($r[$x]['xchat_url']);
+ }
+ }
return replace_macros(get_markup_template('bookmarkedchats.tpl'),array(
'$header' => t('Bookmarked Chatrooms'),
'$rooms' => $r
@@ -648,9 +665,11 @@ function widget_suggestedchats($arr) {
if(! $h)
return;
$r = q("select *, count(xchat_url) as total from xchat group by xchat_url order by total desc, xchat_desc limit 24");
-
- for($x = 0; $x < count($r); $x ++)
- $r[$x]['xchat_url'] = zid($r[$x]['xchat_url']);
+ if($r) {
+ for($x = 0; $x < count($r); $x ++) {
+ $r[$x]['xchat_url'] = zid($r[$x]['xchat_url']);
+ }
+ }
return replace_macros(get_markup_template('bookmarkedchats.tpl'),array(
'$header' => t('Suggested Chatrooms'),
'$rooms' => $r
@@ -658,17 +677,17 @@ function widget_suggestedchats($arr) {
}
function widget_item($arr) {
+ // FIXME there is no $a here
$uid = $a->profile['profile_uid'];
if((! $uid) || (! $arr['mid']))
return '';
- if(! perm_is_allowed($uid,get_observer_hash(),'view_pages'))
+ if(! perm_is_allowed($uid, get_observer_hash(), 'view_pages'))
return '';
require_once('include/security.php');
$sql_extra = item_permissions_sql($uid);
-
$r = q("select * from item where mid = '%s' and uid = %d and item_restrict = " . intval(ITEM_WEBPAGE) . " $sql_extra limit 1",
dbesc($arr['mid']),
intval($uid)
@@ -678,11 +697,10 @@ function widget_item($arr) {
return '';
xchan_query($r);
- $r = fetch_post_tags($r,true);
+ $r = fetch_post_tags($r, true);
- $o .= prepare_page($r[0]);
+ $o = prepare_page($r[0]);
return $o;
-
}
function widget_clock($arr) {
@@ -752,18 +770,17 @@ return $o;
* URL must be an http or https URL
*/
-
function widget_photo($arr) {
$style = $zrl = false;
- $params = '';
- if(array_key_exists('src',$arr) && isset($arr['src']))
+
+ if(array_key_exists('src', $arr) && isset($arr['src']))
$url = $arr['src'];
if(strpos($url,'http') !== 0)
return '';
- if(array_key_exists('style',$arr) && isset($arr['style']))
+ if(array_key_exists('style', $arr) && isset($arr['style']))
$style = $arr['style'];
// ensure they can't sneak in an eval(js) function
@@ -771,7 +788,7 @@ function widget_photo($arr) {
if(strpos($style,'(') !== false)
return '';
- if(array_key_exists('zrl',$arr) && isset($arr['zrl']))
+ if(array_key_exists('zrl', $arr) && isset($arr['zrl']))
$zrl = (($arr['zrl']) ? true : false);
if($zrl)
@@ -781,9 +798,108 @@ function widget_photo($arr) {
$o .= '<img ' . (($zrl) ? ' class="zrl" ' : '')
. (($style) ? ' style="' . $style . '"' : '')
- . ' src="' . $url . '" />';
+ . ' src="' . $url . '" alt="' . t('photo/image') . '">';
$o .= '</div>';
return $o;
}
+
+
+function widget_photo_rand($arr) {
+
+ require_once('include/photos.php');
+ $style = false;
+
+ if(array_key_exists('album', $arr) && isset($arr['album']))
+ $album = $arr['album'];
+ else
+ $album = '';
+
+ $channel_id = 0;
+ if(array_key_exists('channel_id', $arr) && intval($arr['channel_id']))
+ $channel_id = intval($arr['channel_id']);
+ if(! $channel_id)
+ $channel_id = get_app()->profile_uid;
+ if(! $channel_id)
+ return '';
+
+ $scale = ((array_key_exists('scale',$arr)) ? intval($arr['scale']) : 0);
+
+ $ret = photos_list_photos(array('channel_id' => $channel_id),get_app()->get_observer(),$album);
+
+ $filtered = array();
+ if($ret['success'] && $ret['photos'])
+ foreach($ret['photos'] as $p)
+ if($p['scale'] == $scale)
+ $filtered[] = $p['src'];
+
+ if($filtered) {
+ $e = mt_rand(0, count($filtered) - 1);
+ $url = $filtered[$e];
+ }
+
+ if(strpos($url, 'http') !== 0)
+ return '';
+
+ if(array_key_exists('style', $arr) && isset($arr['style']))
+ $style = $arr['style'];
+
+ // ensure they can't sneak in an eval(js) function
+
+ if(strpos($style,'(') !== false)
+ return '';
+
+ $url = zid($url);
+
+ $o = '<div class="widget">';
+
+ $o .= '<img class="zrl" '
+ . (($style) ? ' style="' . $style . '"' : '')
+ . ' src="' . $url . '" alt="' . t('photo/image') . '">';
+
+ $o .= '</div>';
+
+ return $o;
+}
+
+
+function widget_random_block($arr) {
+
+ $channel_id = 0;
+ if(array_key_exists('channel_id',$arr) && intval($arr['channel_id']))
+ $channel_id = intval($arr['channel_id']);
+ if(! $channel_id)
+ $channel_id = get_app()->profile_uid;
+ if(! $channel_id)
+ return '';
+
+ if(array_key_exists('contains',$arr))
+ $contains = $arr['contains'];
+
+ $o = '';
+
+ require_once('include/security.php');
+ $sql_options = item_permissions_sql($channel_id);
+
+ $randfunc = db_getfunc('RAND');
+
+ $r = q("select item.* from item left join item_id on item.id = item_id.iid
+ where item.uid = %d and sid like '%s' and service = 'BUILDBLOCK' and
+ item_restrict = %d $sql_options order by $randfunc limit 1",
+ intval($channel_id),
+ dbesc('%' . $contains . '%'),
+ intval(ITEM_BUILDBLOCK)
+ );
+
+ if($r) {
+ $o = '<div class="widget bblock">';
+ if($r[0]['title'])
+ $o .= '<h3>' . $r[0]['title'] . '</h3>';
+
+ $o .= prepare_text($r[0]['body'],$r[0]['mimetype']);
+ $o .= '</div>';
+ }
+
+ return $o;
+}
diff --git a/include/zot.php b/include/zot.php
index a53b39663..c88b2a369 100644
--- a/include/zot.php
+++ b/include/zot.php
@@ -2,9 +2,10 @@
require_once('include/crypto.php');
require_once('include/items.php');
+require_once('include/hubloc.php');
/**
- * Red implementation of zot protocol.
+ * Red implementation of zot protocol.
*
* https://github.com/friendica/red/wiki/zot
* https://github.com/friendica/red/wiki/Zot---A-High-Level-Overview
@@ -19,8 +20,8 @@ require_once('include/items.php');
* Generates a unique string for use as a zot guid using our DNS-based url, the channel nickname and some entropy.
* The entropy ensures uniqueness against re-installs where the same URL and nickname are chosen.
* NOTE: zot doesn't require this to be unique. Internally we use a whirlpool hash of this guid and the signature
- * of this guid signed with the channel private key. This can be verified and should make the probability of
- * collision of the verified result negligible within the constraints of our immediate universe.
+ * of this guid signed with the channel private key. This can be verified and should make the probability of
+ * collision of the verified result negligible within the constraints of our immediate universe.
*
* @param string channel_nickname = unique nickname of controlling entity
*
@@ -50,7 +51,7 @@ function make_xchan_hash($guid,$guid_sig) {
/**
* @function zot_get_hublocs($hash)
- * Given a zot hash, return all distinct hubs.
+ * Given a zot hash, return all distinct hubs.
* This function is used in building the zot discovery packet
* and therefore should only be used by channels which are defined
* on this hub
@@ -70,7 +71,7 @@ function make_xchan_hash($guid,$guid_sig) {
* hubloc_connect char(255)
* hubloc_sitekey text
* hubloc_updated datetime
- * hubloc_connected datetime
+ * hubloc_connected datetime
*
*/
@@ -78,32 +79,32 @@ function zot_get_hublocs($hash) {
/** Only search for active hublocs - e.g. those that haven't been marked deleted */
- $ret = q("select * from hubloc where hubloc_hash = '%s' and not ( hubloc_flags & %d ) group by hubloc_url ",
+ $ret = q("select * from hubloc where hubloc_hash = '%s' and not ( hubloc_flags & %d )>0 order by hubloc_url ",
dbesc($hash),
intval(HUBLOC_FLAGS_DELETED)
);
return $ret;
}
-
+
/**
*
* @function zot_build_packet($channel,$type = 'notify',$recipients = null, $remote_key = null, $secret = null)
* builds a zot notification packet that you can either
- * store in the queue with a message array or call zot_zot to immediately
+ * store in the queue with a message array or call zot_zot to immediately
* zot it to the other side
*
* @param array $channel => sender channel structure
* @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
+ * 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'. Packet types 'ping', 'force_refresh', 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
*/
-function zot_build_packet($channel,$type = 'notify',$recipients = null, $remote_key = null, $secret = null) {
+function zot_build_packet($channel,$type = 'notify',$recipients = null, $remote_key = null, $secret = null, $extra = null) {
$data = array(
'type' => $type,
@@ -128,6 +129,12 @@ function zot_build_packet($channel,$type = 'notify',$recipients = null, $remote_
$data['secret_sig'] = base64url_encode(rsa_sign($secret,$channel['channel_prvkey']));
}
+ if($extra) {
+ foreach($extra as $k => $v)
+ $data[$k] = $v;
+ }
+
+
logger('zot_build_packet: ' . print_r($data,true), LOGGER_DATA);
// Hush-hush ultra top-secret mode
@@ -187,14 +194,15 @@ function zot_finger($webbie,$channel,$autofallback = true) {
logger('zot_finger: no address :' . $webbie);
return array('success' => false);
}
-
+ logger('using xchan_addr: ' . $xchan_addr, LOGGER_DATA);
+
// potential issue here; the xchan_addr points to the primary hub.
// The webbie we were called with may not, so it might not be found
// unless we query for hubloc_addr instead of xchan_addr
$r = q("select xchan.*, hubloc.* from xchan
left join hubloc on xchan_hash = hubloc_hash
- where xchan_addr = '%s' and (hubloc_flags & %d) limit 1",
+ where xchan_addr = '%s' and (hubloc_flags & %d) > 0 limit 1",
dbesc($xchan_addr),
intval(HUBLOC_FLAGS_PRIMARY)
);
@@ -204,6 +212,7 @@ function zot_finger($webbie,$channel,$autofallback = true) {
if($r[0]['hubloc_network'] && $r[0]['hubloc_network'] !== 'zot') {
logger('zot_finger: alternate network: ' . $webbie);
+ logger('url: '.$url.', net: '.var_export($r[0]['hubloc_network'],true), LOGGER_DATA);
return array('success' => false);
}
}
@@ -292,7 +301,7 @@ function zot_refresh($them,$channel = null, $force = false) {
if($them['hubloc_url'])
$url = $them['hubloc_url'];
else {
- $r = q("select hubloc_url from hubloc where hubloc_hash = '%s' and ( hubloc_flags & %d ) limit 1",
+ $r = q("select hubloc_url from hubloc where hubloc_hash = '%s' and ( hubloc_flags & %d ) > 0 limit 1",
dbesc($them['xchan_hash']),
intval(HUBLOC_FLAGS_PRIMARY)
);
@@ -374,7 +383,7 @@ function zot_refresh($them,$channel = null, $force = false) {
}
}
- $r = q("select * from abook where abook_xchan = '%s' and abook_channel = %d and not (abook_flags & %d) limit 1",
+ $r = q("select * from abook where abook_xchan = '%s' and abook_channel = %d and not (abook_flags & %d) > 0 limit 1",
dbesc($x['hash']),
intval($channel['channel_id']),
intval(ABOOK_FLAG_SELF)
@@ -384,7 +393,7 @@ function zot_refresh($them,$channel = null, $force = false) {
$next_birthday = datetime_convert('UTC','UTC',$j['profile']['next_birthday']);
}
else {
- $next_birthday = '0000-00-00 00:00:00';
+ $next_birthday = NULL_DATE;
}
if($r) {
@@ -400,7 +409,7 @@ function zot_refresh($them,$channel = null, $force = false) {
$y = q("update abook set abook_their_perms = %d, abook_dob = '%s'
where abook_xchan = '%s' and abook_channel = %d
- and not (abook_flags & %d) limit 1",
+ and not (abook_flags & %d) > 0 ",
intval($their_perms),
dbesc($next_birthday),
dbesc($x['hash']),
@@ -412,7 +421,8 @@ function zot_refresh($them,$channel = null, $force = false) {
// if they are in your address book but you aren't in theirs, and/or this does not
// match your current connected state setting, toggle it.
-
+ // FIXME: uncoverted to postgres
+ // FIXME: when this was enabled, all contacts became unconnected. Currently disabled intentionally
// $y1 = q("update abook set abook_flags = (abook_flags ^ %d)
// where abook_xchan = '%s' and abook_channel = %d
// and not (abook_flags & %d) limit 1",
@@ -432,15 +442,15 @@ function zot_refresh($them,$channel = null, $force = false) {
}
}
else {
- $default_perms = 0;
- // look for default permissions to apply in return - e.g. auto-friend
- $z = q("select * from abook where abook_channel = %d and (abook_flags & %d) limit 1",
- intval($channel['channel_id']),
- intval(ABOOK_FLAG_SELF)
- );
-
- if($z)
- $default_perms = intval($z[0]['abook_my_perms']);
+ $role = get_pconfig($channel['channel_id'],'system','permissions_role');
+ if($role) {
+ $xx = get_role_perms($role);
+ if($xx['perms_auto'])
+ $default_perms = $xx['perms_accept'];
+ }
+ if(! $default_perms)
+ $default_perms = intval(get_pconfig($channel['channel_id'],'system','autoperms'));
+
// Keep original perms to check if we need to notify them
$previous_perms = get_all_perms($channel['channel_id'],$x['hash']);
@@ -462,7 +472,7 @@ function zot_refresh($them,$channel = null, $force = false) {
$new_perms = get_all_perms($channel['channel_id'],$x['hash']);
if($new_perms != $previous_perms) {
// Send back a permissions update if permissions have changed
- $z = q("select * from abook where abook_xchan = '%s' and abook_channel = %d and not (abook_flags & %d) limit 1",
+ $z = q("select * from abook where abook_xchan = '%s' and abook_channel = %d and not (abook_flags & %d) > 0 limit 1",
dbesc($x['hash']),
intval($channel['channel_id']),
intval(ABOOK_FLAG_SELF)
@@ -661,6 +671,8 @@ function import_xchan($arr,$ud_flags = UPDATE_FLAGS_UPDATED, $ud_arr = null) {
}
$xchan_hash = make_xchan_hash($arr['guid'],$arr['guid_sig']);
+ $arr['hash'] = $xchan_hash;
+
$import_photos = false;
if(! rsa_verify($arr['guid'],base64url_decode($arr['guid_sig']),$arr['key'])) {
@@ -690,10 +702,10 @@ function import_xchan($arr,$ud_flags = UPDATE_FLAGS_UPDATED, $ud_arr = null) {
$dirmode = get_config('system','directory_mode');
- if((($arr['site']['directory_mode'] === 'standalone') || ($dirmode & DIRECTORY_MODE_STANDALONE))
-&& ($arr['site']['url'] != z_root()))
+ if((($arr['site']['directory_mode'] === 'standalone') || ($dirmode & DIRECTORY_MODE_STANDALONE)) && ($arr['site']['url'] != z_root()))
$arr['searchable'] = false;
+
$hidden = (1 - intval($arr['searchable']));
// Be careful - XCHAN_FLAGS_HIDDEN should evaluate to 1
@@ -712,6 +724,11 @@ function import_xchan($arr,$ud_flags = UPDATE_FLAGS_UPDATED, $ud_arr = null) {
if($deleted_changed)
$new_flags = $new_flags ^ XCHAN_FLAGS_DELETED;
+ $public_forum = (($r[0]['xchan_flags'] & XCHAN_FLAGS_PUBFORUM) ? true : false);
+ $pubforum_changed = ((intval($public_forum) != intval($arr['public_forum'])) ? true : false);
+ if($pubforum_changed)
+ $new_flags = $r[0]['xchan_flags'] ^ XCHAN_FLAGS_PUBFORUM;
+
if(($r[0]['xchan_name_date'] != $arr['name_updated'])
|| ($r[0]['xchan_connurl'] != $arr['connections_url'])
|| ($r[0]['xchan_flags'] != $new_flags)
@@ -721,8 +738,8 @@ function import_xchan($arr,$ud_flags = UPDATE_FLAGS_UPDATED, $ud_arr = null) {
|| ($r[0]['xchan_url'] != $arr['url'])) {
$r = q("update xchan set xchan_name = '%s', xchan_name_date = '%s', xchan_connurl = '%s', xchan_follow = '%s',
xchan_connpage = '%s', xchan_flags = %d,
- xchan_addr = '%s', xchan_url = '%s' where xchan_hash = '%s' limit 1",
- dbesc($arr['name']),
+ xchan_addr = '%s', xchan_url = '%s' where xchan_hash = '%s'",
+ dbesc(($arr['name']) ? $arr['name'] : '-'),
dbesc($arr['name_updated']),
dbesc($arr['connections_url']),
dbesc($arr['follow_url']),
@@ -772,10 +789,10 @@ function import_xchan($arr,$ud_flags = UPDATE_FLAGS_UPDATED, $ud_arr = null) {
dbesc($arr['connections_url']),
dbesc($arr['follow_url']),
dbesc($arr['connect_url']),
- dbesc($arr['name']),
+ dbesc(($arr['name']) ? $arr['name'] : '-'),
dbesc('zot'),
- dbesc($arr['photo_updated']),
- dbesc($arr['name_updated']),
+ dbescdate($arr['photo_updated']),
+ dbescdate($arr['name_updated']),
intval($new_flags)
);
@@ -816,7 +833,7 @@ function import_xchan($arr,$ud_flags = UPDATE_FLAGS_UPDATED, $ud_arr = null) {
// importing the photo failed somehow. Leave the photo_date alone so we can try again at a later date.
// This often happens when somebody joins the matrix with a bad cert.
$r = q("update xchan set xchan_photo_l = '%s', xchan_photo_m = '%s', xchan_photo_s = '%s', xchan_photo_mimetype = '%s'
- where xchan_hash = '%s' limit 1",
+ where xchan_hash = '%s'",
dbesc($photos[0]),
dbesc($photos[1]),
dbesc($photos[2]),
@@ -826,8 +843,8 @@ function import_xchan($arr,$ud_flags = UPDATE_FLAGS_UPDATED, $ud_arr = null) {
}
else {
$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_hash = '%s' limit 1",
- dbesc(datetime_convert('UTC','UTC',$arr['photo_updated'])),
+ where xchan_hash = '%s'",
+ dbescdate(datetime_convert('UTC','UTC',$arr['photo_updated'])),
dbesc($photos[0]),
dbesc($photos[1]),
dbesc($photos[2]),
@@ -843,174 +860,16 @@ function import_xchan($arr,$ud_flags = UPDATE_FLAGS_UPDATED, $ud_arr = null) {
// what we are missing for true hub independence is for any changes in the primary hub to
// get reflected not only in the hublocs, but also to update the URLs and addr in the appropriate xchan
- if($arr['locations']) {
-
- $xisting = q("select hubloc_id, hubloc_url, hubloc_sitekey from hubloc where hubloc_hash = '%s'",
- dbesc($xchan_hash)
- );
-
- // See if a primary is specified
-
- $has_primary = false;
- foreach($arr['locations'] as $location) {
- if($location['primary']) {
- $has_primary = true;
- break;
- }
- }
-
- foreach($arr['locations'] as $location) {
- if(! rsa_verify($location['url'],base64url_decode($location['url_sig']),$arr['key'])) {
- logger('import_xchan: Unable to verify site signature for ' . $location['url']);
- $ret['message'] .= sprintf( t('Unable to verify site signature for %s'), $location['url']) . EOL;
- continue;
- }
-
- // Ensure that they have one primary hub
-
- if(! $has_primary)
- $location['primary'] = true;
-
-
- for($x = 0; $x < count($xisting); $x ++) {
- if(($xisting[$x]['hubloc_url'] === $location['url']) && ($xisting[$x]['hubloc_sitekey'] === $location['sitekey'])) {
- $xisting[$x]['updated'] = true;
- }
- }
-
- 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' ",
- dbesc($xchan_hash),
- dbesc($arr['guid']),
- dbesc($arr['guid_sig']),
- dbesc($location['url']),
- dbesc($location['url_sig']),
- dbesc($location['host']),
- dbesc($location['address']),
- dbesc($location['callback']),
- dbesc($location['sitekey'])
- );
- if($r) {
- logger('import_xchan: hub exists: ' . $location['url']);
- // update connection timestamp if this is the site we're talking to
- if($location['url'] == $arr['site']['url']) {
- q("update hubloc set hubloc_connected = '%s', hubloc_updated = '%s' where hubloc_id = %d limit 1",
- dbesc(datetime_convert()),
- dbesc(datetime_convert()),
- intval($r[0]['hubloc_id'])
- );
- }
- if($r[0]['hubloc_status'] & HUBLOC_OFFLINE) {
- q("update hubloc set hubloc_status = (hubloc_status ^ %d) where hubloc_id = %d limit 1",
- intval(HUBLOC_OFFLINE),
- intval($r[0]['hubloc_id'])
- );
- if($r[0]['hubloc_flags'] & HUBLOC_FLAGS_ORPHANCHECK) {
- q("update hubloc set hubloc_flags = (hubloc_flags ^ %d) where hubloc_id = %d limit 1",
- intval(HUBLOC_FLAGS_ORPHANCHECK),
- intval($r[0]['hubloc_id'])
- );
- }
- q("update xchan set xchan_flags = (xchan_flags ^ %d) where (xchan_flags & %d) and xchan_hash = '%s' limit 1",
- intval(XCHAN_FLAGS_ORPHAN),
- intval(XCHAN_FLAGS_ORPHAN),
- dbesc($xchan_hash)
- );
-
- }
-
- // Remove pure duplicates
- if(count($r) > 1) {
- for($h = 1; $h < count($r); $h ++) {
- q("delete from hubloc where hubloc_id = %d limit 1",
- intval($r[$h]['hubloc_id'])
- );
- }
- }
-
- if((($r[0]['hubloc_flags'] & HUBLOC_FLAGS_PRIMARY) && (! $location['primary']))
- || ((! ($r[0]['hubloc_flags'] & HUBLOC_FLAGS_PRIMARY)) && ($location['primary']))) {
- $r = q("update hubloc set hubloc_flags = (hubloc_flags ^ %d), hubloc_updated = '%s' where hubloc_id = %d limit 1",
- intval(HUBLOC_FLAGS_PRIMARY),
- dbesc(datetime_convert()),
- intval($r[0]['hubloc_id'])
- );
- $what = 'primary_hub ';
- $changed = true;
- }
- if((($r[0]['hubloc_flags'] & HUBLOC_FLAGS_DELETED) && (! $location['deleted']))
- || ((! ($r[0]['hubloc_flags'] & HUBLOC_FLAGS_DELETED)) && ($location['deleted']))) {
- $r = q("update hubloc set hubloc_flags = (hubloc_flags ^ %d), hubloc_updated = '%s' where hubloc_id = %d limit 1",
- intval(HUBLOC_FLAGS_DELETED),
- dbesc(datetime_convert()),
- intval($r[0]['hubloc_id'])
- );
- $what = 'delete_hub ';
- $changed = true;
- }
- continue;
- }
-
- // new hub claiming to be primary. Make it so.
-
- if(intval($location['primary'])) {
- $r = q("update hubloc set hubloc_flags = (hubloc_flags ^ %d), hubloc_updated = '%s' where hubloc_hash = '%s' and (hubloc_flags & %d )",
- intval(HUBLOC_FLAGS_PRIMARY),
- dbesc(datetime_convert()),
- dbesc($xchan_hash),
- intval(HUBLOC_FLAGS_PRIMARY)
- );
- }
- logger('import_xchan: new hub: ' . $location['url']);
- $r = q("insert into hubloc ( hubloc_guid, hubloc_guid_sig, hubloc_hash, hubloc_addr, hubloc_network, hubloc_flags, hubloc_url, hubloc_url_sig, hubloc_host, hubloc_callback, hubloc_sitekey, hubloc_updated, hubloc_connected)
- values ( '%s','%s','%s','%s', '%s', %d ,'%s','%s','%s','%s','%s','%s','%s')",
- dbesc($arr['guid']),
- dbesc($arr['guid_sig']),
- dbesc($xchan_hash),
- dbesc($location['address']),
- dbesc('zot'),
- intval((intval($location['primary'])) ? HUBLOC_FLAGS_PRIMARY : 0),
- dbesc($location['url']),
- dbesc($location['url_sig']),
- dbesc($location['host']),
- dbesc($location['callback']),
- dbesc($location['sitekey']),
- dbesc(datetime_convert()),
- dbesc(datetime_convert())
- );
- $what .= 'newhub ';
- $changed = true;
-
- }
- // get rid of any hubs we have for this channel which weren't reported.
- // This was needed at one time to resolve complicated cross-site inconsistencies, but can cause sync conflict.
- // currently disabled.
-
-// if($xisting) {
-// foreach($xisting as $x) {
-// if(! array_key_exists('updated',$x)) {
-// logger('import_xchan: removing unreferenced hub location ' . $x['hubloc_url']);
-// $r = q("delete from hubloc where hubloc_id = %d limit 1",
-// intval($x['hubloc_id'])
-// );
-// $what .= 'removed_hub';
-// $changed = true;
-// }
-// }
-// }
+ $s = sync_locations($arr,$arr);
+ if($s) {
+ if($s['change_message'])
+ $what .= $s['change_message'];
+ if($s['changed'])
+ $changed = $s['changed'];
+ if($s['message'])
+ $ret['message'] .= $s['message'];
}
// Which entries in the update table are we interested in updating?
@@ -1045,10 +904,10 @@ function import_xchan($arr,$ud_flags = UPDATE_FLAGS_UPDATED, $ud_arr = null) {
else {
logger('import_xchan: profile not available - hiding');
// they may have made it private
- $r = q("delete from xprof where xprof_hash = '%s' limit 1",
+ $r = q("delete from xprof where xprof_hash = '%s'",
dbesc($xchan_hash)
);
- $r = q("delete from xtag where xtag_hash = '%s' limit 1",
+ $r = q("delete from xtag where xtag_hash = '%s'",
dbesc($xchan_hash)
);
}
@@ -1070,7 +929,7 @@ function import_xchan($arr,$ud_flags = UPDATE_FLAGS_UPDATED, $ud_arr = null) {
}
elseif(! $ud_flags) {
// nothing changed but we still need to update the updates record
- q("update updates set ud_flags = ( ud_flags | %d ) where ud_addr = '%s' and not (ud_flags & %d) ",
+ q("update updates set ud_flags = ( ud_flags | %d ) where ud_addr = '%s' and not (ud_flags & %d)>0 ",
intval(UPDATE_FLAGS_UPDATED),
dbesc($address),
intval(UPDATE_FLAGS_UPDATED)
@@ -1120,14 +979,14 @@ function zot_process_response($hub,$arr,$outq) {
// async messages remain in the queue until processed.
if(intval($outq['outq_async'])) {
- $r = q("update outq set outq_delivered = 1, outq_updated = '%s' where outq_hash = '%s' and outq_channel = %d limit 1",
+ $r = q("update outq set outq_delivered = 1, outq_updated = '%s' where outq_hash = '%s' and outq_channel = %d",
dbesc(datetime_convert()),
dbesc($outq['outq_hash']),
intval($outq['outq_channel'])
);
}
else {
- $r = q("delete from outq where outq_hash = '%s' and outq_channel = %d limit 1",
+ $r = q("delete from outq where outq_hash = '%s' and outq_channel = %d",
dbesc($outq['outq_hash']),
intval($outq['outq_channel'])
);
@@ -1189,7 +1048,8 @@ function zot_fetch($arr) {
* we will verify the sender and url in each returned message structure and also verify
* that all the messages returned match the site url that we are currently processing.
*
- * The message types handled here are 'activity' (e.g. posts), 'mail' , 'profile', and 'channel_sync'
+ * The message types handled here are 'activity' (e.g. posts), 'mail' , 'profile', 'location',
+ * and 'channel_sync'
*
* @returns array => array ( [0] => string $channel_hash, [1] => string $delivery_status, [2] => string $address )
* suitable for logging remotely, enumerating the processing results of each message/recipient combination.
@@ -1219,7 +1079,7 @@ function zot_import($arr, $sender_url) {
if(array_key_exists('iv',$i['notify'])) {
$i['notify'] = json_decode(crypto_unencapsulate($i['notify'],get_config('system','prvkey')),true);
- }
+ }
logger('zot_import: notify: ' . print_r($i['notify'],true), LOGGER_DATA);
@@ -1229,6 +1089,9 @@ function zot_import($arr, $sender_url) {
continue;
}
+ $message_request = ((array_key_exists('message_id',$i['notify'])) ? true : false);
+ if($message_request)
+ logger('processing message request');
$i['notify']['sender']['hash'] = make_xchan_hash($i['notify']['sender']['guid'],$i['notify']['sender']['guid_sig']);
$deliveries = null;
@@ -1241,7 +1104,7 @@ 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 . " ) and not ( channel_pageflags & %d ) ",
+ $r = q("select channel_hash as hash from channel where channel_hash in ( " . $recips . " ) and not ( channel_pageflags & %d )>0 ",
intval(PAGE_REMOVED)
);
if(! $r) {
@@ -1252,7 +1115,7 @@ function zot_import($arr, $sender_url) {
// It's a specifically targetted post. If we were sent a public_scope hint (likely),
// get rid of it so that it doesn't get stored and cause trouble.
- if(array_key_exists('message',$i) && array_key_exists('public_scope',$i['message']))
+ if(($i) && is_array($i) && array_key_exists('message',$i) && is_array($i['message']) && array_key_exists('public_scope',$i['message']))
unset($i['message']['public_scope']);
$deliveries = $r;
@@ -1276,6 +1139,11 @@ function zot_import($arr, $sender_url) {
$deliveries = allowed_public_recips($i);
+ if($i['message'] && array_key_exists('type',$i['message']) && $i['message']['type'] === 'location') {
+ $sys = get_sys_channel();
+ $deliveries = array(array('hash' => $sys['xchan_hash']));
+ }
+
// if the scope is anything but 'public' we're going to store it as private regardless
// of the private flag on the post.
@@ -1325,7 +1193,7 @@ function zot_import($arr, $sender_url) {
logger('Activity recipients: ' . print_r($deliveries,true), LOGGER_DATA);
$relay = ((array_key_exists('flags',$i['message']) && in_array('relay',$i['message']['flags'])) ? true : false);
- $result = process_delivery($i['notify']['sender'],$arr,$deliveries,$relay);
+ $result = process_delivery($i['notify']['sender'],$arr,$deliveries,$relay,false,$message_request);
}
elseif($i['message']['type'] === 'mail') {
@@ -1348,7 +1216,7 @@ function zot_import($arr, $sender_url) {
}
elseif($i['message']['type'] === 'channel_sync') {
-// $arr = get_channelsync_elements($i['message']);
+ // $arr = get_channelsync_elements($i['message']);
$arr = $i['message'];
@@ -1357,6 +1225,15 @@ function zot_import($arr, $sender_url) {
$result = process_channel_sync_delivery($i['notify']['sender'],$arr,$deliveries);
}
+ elseif($i['message']['type'] === 'location') {
+ $arr = $i['message'];
+
+ logger('Location message received: ' . print_r($arr,true), LOGGER_DATA);
+ logger('Location message recipients: ' . print_r($deliveries,true), LOGGER_DATA);
+
+ $result = process_location_delivery($i['notify']['sender'],$arr,$deliveries);
+ }
+
}
if($result){
$return = array_merge($return,$result);
@@ -1379,8 +1256,14 @@ function zot_import($arr, $sender_url) {
function public_recips($msg) {
+
+ require_once('include/identity.php');
+
$check_mentions = false;
+ $include_sys = false;
+
if($msg['message']['type'] === 'activity') {
+ $include_sys = true;
$col = 'channel_w_stream';
$field = PERMS_W_STREAM;
if(array_key_exists('flags',$msg['message']) && in_array('thread_parent', $msg['message']['flags'])) {
@@ -1409,9 +1292,9 @@ function public_recips($msg) {
if($msg['notify']['sender']['url'] === z_root())
- $sql = " where (( " . $col . " & " . PERMS_NETWORK . " ) or ( " . $col . " & " . PERMS_SITE . " ) or ( " . $col . " & " . PERMS_PUBLIC . ")) ";
+ $sql = " where (( " . $col . " & " . PERMS_NETWORK . " )>0 or ( " . $col . " & " . PERMS_SITE . " )>0 or ( " . $col . " & " . PERMS_PUBLIC . ")>0) ";
else
- $sql = " where (( " . $col . " & " . PERMS_NETWORK . " ) or ( " . $col . " & " . PERMS_PUBLIC . ")) ";
+ $sql = " where (( " . $col . " & " . PERMS_NETWORK . " )>0 or ( " . $col . " & " . PERMS_PUBLIC . ")>0) ";
$r = q("select channel_hash as hash from channel $sql or channel_hash = '%s' ",
@@ -1421,7 +1304,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 not ( channel_pageflags & " . PAGE_REMOVED . " ) and (( " . $col . " & " . PERMS_SPECIFIC . " ) and ( abook_my_perms & " . $field . " )) OR ( " . $col . " & " . PERMS_PENDING . " ) OR (( " . $col . " & " . PERMS_CONTACTS . " ) and not ( abook_flags & " . ABOOK_FLAG_PENDING . " )) ",
+ $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 . " )>0 and (( " . $col . " & " . PERMS_SPECIFIC . " )>0 and ( abook_my_perms & " . $field . " )>0) OR ( " . $col . " & " . PERMS_PENDING . " )>0 OR (( " . $col . " & " . PERMS_CONTACTS . " )>0 and not ( abook_flags & " . ABOOK_FLAG_PENDING . " )>0) ",
dbesc($msg['notify']['sender']['hash'])
);
@@ -1430,6 +1313,14 @@ function public_recips($msg) {
$r = array_merge($r,$x);
+ //logger('message: ' . print_r($msg['message'],true));
+
+ if($include_sys && array_key_exists('public_scope',$msg['message']) && $msg['message']['public_scope'] === 'public') {
+ $sys = get_sys_channel();
+ if($sys)
+ $r[] = array('hash' => $sys['channel_hash']);
+ }
+
// look for any public mentions on this site
// They will get filtered by tgroup_check() so we don't need to check permissions now
@@ -1460,7 +1351,7 @@ function public_recips($msg) {
function allowed_public_recips($msg) {
- logger('allowed_public_recips: ' . print_r($msg,true));
+ logger('allowed_public_recips: ' . print_r($msg,true),LOGGER_DATA);
$recips = public_recips($msg);
@@ -1497,7 +1388,7 @@ 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' and not ( channel_pageflags & %d ) ",
+ $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 )>0 ",
dbesc($hash),
intval(PAGE_REMOVED)
);
@@ -1513,7 +1404,7 @@ function allowed_public_recips($msg) {
}
-function process_delivery($sender,$arr,$deliveries,$relay,$public = false) {
+function process_delivery($sender,$arr,$deliveries,$relay,$public = false,$request = false) {
$result = array();
@@ -1526,8 +1417,9 @@ function process_delivery($sender,$arr,$deliveries,$relay,$public = false) {
return;
}
}
-
+
foreach($deliveries as $d) {
+ $local_public = $public;
$r = q("select * from channel where channel_hash = '%s' limit 1",
dbesc($d['hash'])
);
@@ -1537,12 +1429,28 @@ function process_delivery($sender,$arr,$deliveries,$relay,$public = false) {
continue;
}
+
$channel = $r[0];
+ // allow public postings to the sys channel regardless of permissions
+ if(($channel['channel_pageflags'] & PAGE_SYSTEM) && (! $arr['item_private'])) {
+ $local_public = true;
+
+ $r = q("select xchan_flags from xchan where xchan_hash = '%s' limit 1",
+ dbesc($sender['hash'])
+ );
+ // don't import sys channel posts from selfcensored authors
+ if($r && ($r[0]['xchan_flags'] & XCHAN_FLAGS_SELFCENSORED)) {
+ $local_public = false;
+ continue;
+ }
+ }
+
$tag_delivery = tgroup_check($channel['channel_id'],$arr);
$perm = (($arr['mid'] == $arr['parent_mid']) ? 'send_stream' : 'post_comments');
+
// This is our own post, possibly coming from a channel clone
if($arr['owner_xchan'] == $d['hash']) {
@@ -1555,12 +1463,68 @@ function process_delivery($sender,$arr,$deliveries,$relay,$public = false) {
}
}
- if((! perm_is_allowed($channel['channel_id'],$sender['hash'],$perm)) && (! $tag_delivery) && (! $public)) {
+ if((! perm_is_allowed($channel['channel_id'],$sender['hash'],$perm)) && (! $tag_delivery) && (! $local_public)) {
logger("permission denied for delivery to channel {$channel['channel_id']} {$channel['channel_address']}");
$result[] = array($d['hash'],'permission denied',$channel['channel_name'] . ' <' . $channel['channel_address'] . '@' . get_app()->get_hostname() . '>',$arr['mid']);
continue;
}
-
+
+ if($arr['mid'] != $arr['parent_mid']) {
+
+ // check source route.
+ // We are only going to accept comments from this sender if the comment has the same route as the top-level-post,
+ // this is so that permissions mismatches between senders apply to the entire conversation
+ // As a side effect we will also do a preliminary check that we have the top-level-post, otherwise
+ // processing it is pointless.
+
+ $r = q("select route from item where mid = '%s' and uid = %d limit 1",
+ dbesc($arr['parent_mid']),
+ intval($channel['channel_id'])
+ );
+ if(! $r) {
+ $result[] = array($d['hash'],'comment parent not found',$channel['channel_name'] . ' <' . $channel['channel_address'] . '@' . get_app()->get_hostname() . '>',$arr['mid']);
+
+ // We don't seem to have a copy of this conversation or at least the parent
+ // - so request a copy of the entire conversation to date.
+ // Don't do this if it's a relay post as we're the ones who are supposed to
+ // have the copy and we don't want the request to loop.
+ // Also don't do this if this comment came from a conversation request packet.
+ // It's possible that comments are allowed but posting isn't and that could
+ // cause a conversation fetch loop. We can detect these packets since they are
+ // delivered via a 'notify' packet type that has a message_id element in the
+ // initial zot packet (just like the corresponding 'request' packet type which
+ // makes the request).
+ // We'll also check the send_stream permission - because if it isn't allowed,
+ // the top level post is unlikely to be imported and
+ // this is just an exercise in futility.
+
+ if((! $relay) && (! $request) && (! $local_public)
+ && perm_is_allowed($channel['channel_id'],$sender['hash'],'send_stream')) {
+ proc_run('php', 'include/notifier.php', 'request', $channel['channel_id'], $sender['hash'], $arr['parent_mid']);
+ }
+ continue;
+ }
+ if($relay) {
+ // reset the route in case it travelled a great distance upstream
+ // use our parent's route so when we go back downstream we'll match
+ // with whatever route our parent has.
+ $arr['route'] = $r[0]['route'];
+ }
+ else {
+
+ // going downstream check that we have the same upstream provider that
+ // sent it to us originally. Ignore it if it came from another source
+ // (with potentially different permissions)
+
+ $current_route = (($arr['route']) ? $arr['route'] . ',' : '') . $sender['hash'];
+
+ if($r[0]['route'] != $current_route) {
+ $result[] = array($d['hash'],'comment route mismatch',$channel['channel_name'] . ' <' . $channel['channel_address'] . '@' . get_app()->get_hostname() . '>',$arr['mid']);
+ continue;
+ }
+ }
+ }
+
if($arr['item_restrict'] & ITEM_DELETED) {
// remove_community_tag is a no-op if this isn't a community tag activity
@@ -1578,18 +1542,29 @@ function process_delivery($sender,$arr,$deliveries,$relay,$public = false) {
continue;
}
- $r = q("select id, edited from item where mid = '%s' and uid = %d limit 1",
+ $r = q("select id, edited, item_flags, mid, parent_mid from item where mid = '%s' and uid = %d limit 1",
dbesc($arr['mid']),
intval($channel['channel_id'])
);
if($r) {
+ // We already have this post.
+ // Maybe it has been edited?
+ $item_id = $r[0]['id'];
if($arr['edited'] > $r[0]['edited']) {
$arr['id'] = $r[0]['id'];
$arr['uid'] = $channel['channel_id'];
update_imported_item($sender,$arr,$channel['channel_id']);
- }
- $result[] = array($d['hash'],'updated',$channel['channel_name'] . ' <' . $channel['channel_address'] . '@' . get_app()->get_hostname() . '>',$arr['mid']);
- $item_id = $r[0]['id'];
+ $result[] = array($d['hash'],'updated',$channel['channel_name'] . ' <' . $channel['channel_address'] . '@' . get_app()->get_hostname() . '>',$arr['mid']);
+ if(! $relay)
+ add_source_route($item_id,$sender['hash']);
+ }
+ else {
+ $result[] = array($d['hash'],'update ignored',$channel['channel_name'] . ' <' . $channel['channel_address'] . '@' . get_app()->get_hostname() . '>',$arr['mid']);
+ // We need this line to ensure wall-to-wall comments are relayed (by falling through to the relay bit),
+ // and at the same time not relay any other relayable posts more than once, because to do so is very wasteful.
+ if(! ($r[0]['item_flags'] & ITEM_ORIGIN))
+ continue;
+ }
}
else {
$arr['aid'] = $channel['channel_account_id'];
@@ -1600,7 +1575,9 @@ function process_delivery($sender,$arr,$deliveries,$relay,$public = false) {
$item_id = $item_result['item_id'];
$parr = array('item_id' => $item_id,'item' => $arr,'sender' => $sender,'channel' => $channel);
call_hooks('activity_received',$parr);
- add_source_route($item_id,$sender['hash']);
+ // don't add a source route if it's a relay or later recipients will get a route mismatch
+ if(! $relay)
+ add_source_route($item_id,$sender['hash']);
}
$result[] = array($d['hash'],(($item_id) ? 'posted' : 'storage failed:' . $item_result['message']),$channel['channel_name'] . ' <' . $channel['channel_address'] . '@' . get_app()->get_hostname() . '>',$arr['mid']);
}
@@ -1671,7 +1648,7 @@ function remove_community_tag($sender,$arr,$uid) {
return;
}
- $x = q("delete from term where uid = %d and oid = %d and otype = %d and type = %d and term = '%s' and url = '%s' limit 1",
+ $x = q("delete from term where uid = %d and oid = %d and otype = %d and type = %d and term = '%s' and url = '%s'",
intval($uid),
intval($r[0]['id']),
intval(TERM_OBJ_POST),
@@ -1765,7 +1742,7 @@ function process_mail_delivery($sender,$arr,$deliveries) {
);
if($r) {
if($arr['mail_flags'] & MAIL_RECALLED) {
- $x = q("delete from mail where id = %d and channel_id = %d limit 1",
+ $x = q("delete from mail where id = %d and channel_id = %d",
intval($r[0]['id']),
intval($channel['channel_id'])
);
@@ -1800,6 +1777,264 @@ function process_profile_delivery($sender,$arr,$deliveries) {
import_directory_profile($sender['hash'],$arr,$r[0]['xchan_addr'], UPDATE_FLAGS_UPDATED, 0);
}
+function process_location_delivery($sender,$arr,$deliveries) {
+
+ // deliveries is irrelevant
+ logger('process_location_delivery', LOGGER_DEBUG);
+
+ $r = q("select xchan_pubkey from xchan where xchan_hash = '%s' limit 1",
+ dbesc($sender['hash'])
+ );
+ if($r)
+ $sender['key'] = $r[0]['xchan_pubkey'];
+ if(array_key_exists('locations',$arr) && $arr['locations']) {
+ $x = sync_locations($sender,$arr,true);
+ logger('process_location_delivery: results: ' . print_r($x,true), LOGGER_DEBUG);
+ if($x['changed']) {
+ $guid = random_string() . '@' . get_app()->get_hostname();
+ update_modtime($sender['hash'],$sender['guid'],$arr['locations'][0]['address'],UPDATE_FLAGS_UPDATED);
+ }
+ }
+}
+
+
+function sync_locations($sender,$arr,$absolute = false) {
+
+ $ret = array();
+
+ if($arr['locations']) {
+
+ $xisting = q("select hubloc_id, hubloc_url, hubloc_sitekey from hubloc where hubloc_hash = '%s'",
+ dbesc($sender['hash'])
+ );
+
+ // See if a primary is specified
+
+ $has_primary = false;
+ foreach($arr['locations'] as $location) {
+ if($location['primary']) {
+ $has_primary = true;
+ break;
+ }
+ }
+
+ // Ensure that they have one primary hub
+
+ if(! $has_primary)
+ $arr['locations'][0]['primary'] = true;
+
+ foreach($arr['locations'] as $location) {
+ if(! rsa_verify($location['url'],base64url_decode($location['url_sig']),$sender['key'])) {
+ logger('sync_locations: Unable to verify site signature for ' . $location['url']);
+ $ret['message'] .= sprintf( t('Unable to verify site signature for %s'), $location['url']) . EOL;
+ continue;
+ }
+
+
+ for($x = 0; $x < count($xisting); $x ++) {
+ if(($xisting[$x]['hubloc_url'] === $location['url'])
+ && ($xisting[$x]['hubloc_sitekey'] === $location['sitekey'])) {
+ $xisting[$x]['updated'] = true;
+ }
+ }
+
+ if(! $location['sitekey']) {
+ logger('sync_locations: 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' ",
+ dbesc($sender['hash']),
+ dbesc($sender['guid']),
+ dbesc($sender['guid_sig']),
+ dbesc($location['url']),
+ dbesc($location['url_sig']),
+ dbesc($location['host']),
+ dbesc($location['address']),
+ dbesc($location['callback']),
+ dbesc($location['sitekey'])
+ );
+ if($r) {
+ logger('sync_locations: hub exists: ' . $location['url'], LOGGER_DEBUG);
+
+ // update connection timestamp if this is the site we're talking to
+ // This only happens when called from import_xchan
+
+ if(array_key_exists('site',$arr) && $location['url'] == $arr['site']['url']) {
+ q("update hubloc set hubloc_connected = '%s', hubloc_updated = '%s' where hubloc_id = %d",
+ dbesc(datetime_convert()),
+ dbesc(datetime_convert()),
+ intval($r[0]['hubloc_id'])
+ );
+ }
+
+ // if it's marked offline/dead, bring it back
+ // Should we do this? It's basically saying that the channel knows better than
+ // the directory server if the site is alive.
+
+ if($r[0]['hubloc_status'] & HUBLOC_OFFLINE) {
+ q("update hubloc set hubloc_status = (hubloc_status & ~%d) where hubloc_id = %d",
+ intval(HUBLOC_OFFLINE),
+ intval($r[0]['hubloc_id'])
+ );
+ if($r[0]['hubloc_flags'] & HUBLOC_FLAGS_ORPHANCHECK) {
+ q("update hubloc set hubloc_flags = (hubloc_flags & ~%d) where hubloc_id = %d",
+ intval(HUBLOC_FLAGS_ORPHANCHECK),
+ intval($r[0]['hubloc_id'])
+ );
+ }
+ q("update xchan set xchan_flags = (xchan_flags & ~%d) where (xchan_flags & %d)>0 and xchan_hash = '%s'",
+ intval(XCHAN_FLAGS_ORPHAN),
+ intval(XCHAN_FLAGS_ORPHAN),
+ dbesc($sender['hash'])
+ );
+ }
+
+ // Remove pure duplicates
+ if(count($r) > 1) {
+ for($h = 1; $h < count($r); $h ++) {
+ q("delete from hubloc where hubloc_id = %d",
+ intval($r[$h]['hubloc_id'])
+ );
+ $what .= 'duplicate_hubloc_removed ';
+ $changed = true;
+ }
+ }
+
+ if((($r[0]['hubloc_flags'] & HUBLOC_FLAGS_PRIMARY) && (! $location['primary']))
+ || ((! ($r[0]['hubloc_flags'] & HUBLOC_FLAGS_PRIMARY)) && ($location['primary']))) {
+ $m = q("update hubloc set hubloc_flags = (hubloc_flags & ~%d), hubloc_updated = '%s' where hubloc_id = %d",
+ intval(HUBLOC_FLAGS_PRIMARY),
+ dbesc(datetime_convert()),
+ intval($r[0]['hubloc_id'])
+ );
+ // make sure hubloc_change_primary() has current data
+ $r[0]['hubloc_flags'] = $r[0]['hubloc_flags'] ^ HUBLOC_FLAGS_PRIMARY;
+ hubloc_change_primary($r[0]);
+ $what .= 'primary_hub ';
+ $changed = true;
+ }
+ elseif($absolute) {
+ // Absolute sync - make sure the current primary is correctly reflected in the xchan
+ $pr = hubloc_change_primary($r[0]);
+ if($pr) {
+ $what .= 'xchan_primary';
+ $changed = true;
+ }
+ }
+ if((($r[0]['hubloc_flags'] & HUBLOC_FLAGS_DELETED) && (! $location['deleted']))
+ || ((! ($r[0]['hubloc_flags'] & HUBLOC_FLAGS_DELETED)) && ($location['deleted']))) {
+ $n = q("update hubloc set hubloc_flags = (hubloc_flags & ~%d), hubloc_updated = '%s' where hubloc_id = %d",
+ intval(HUBLOC_FLAGS_DELETED),
+ dbesc(datetime_convert()),
+ intval($r[0]['hubloc_id'])
+ );
+ $what .= 'delete_hub ';
+ $changed = true;
+ }
+ continue;
+ }
+
+ // Existing hubs are dealt with. Now let's process any new ones.
+ // New hub claiming to be primary. Make it so by removing any existing primaries.
+
+ if(intval($location['primary'])) {
+ $r = q("update hubloc set hubloc_flags = (hubloc_flags & ~%d), hubloc_updated = '%s' where hubloc_hash = '%s' and (hubloc_flags & %d )>0",
+ intval(HUBLOC_FLAGS_PRIMARY),
+ dbesc(datetime_convert()),
+ dbesc($sender['hash']),
+ intval(HUBLOC_FLAGS_PRIMARY)
+ );
+ }
+ logger('sync_locations: new hub: ' . $location['url']);
+ $r = q("insert into hubloc ( hubloc_guid, hubloc_guid_sig, hubloc_hash, hubloc_addr, hubloc_network, hubloc_flags, hubloc_url, hubloc_url_sig, hubloc_host, hubloc_callback, hubloc_sitekey, hubloc_updated, hubloc_connected)
+ values ( '%s','%s','%s','%s', '%s', %d ,'%s','%s','%s','%s','%s','%s','%s')",
+ dbesc($sender['guid']),
+ dbesc($sender['guid_sig']),
+ dbesc($sender['hash']),
+ dbesc($location['address']),
+ dbesc('zot'),
+ intval((intval($location['primary'])) ? HUBLOC_FLAGS_PRIMARY : 0),
+ dbesc($location['url']),
+ dbesc($location['url_sig']),
+ dbesc($location['host']),
+ dbesc($location['callback']),
+ dbesc($location['sitekey']),
+ dbesc(datetime_convert()),
+ dbesc(datetime_convert())
+ );
+ $what .= 'newhub ';
+ $changed = true;
+
+ if($location['primary']) {
+ $r = q("select * from hubloc where hubloc_addr = '%s' and hubloc_sitekey = '%s' limit 1",
+ dbesc($location['address']),
+ dbesc($location['sitekey'])
+ );
+ if($r)
+ hubloc_change_primary($r[0]);
+ }
+ }
+
+ // get rid of any hubs we have for this channel which weren't reported.
+
+ if($absolute && $xisting) {
+ foreach($xisting as $x) {
+ if(! array_key_exists('updated',$x)) {
+ logger('sync_locations: deleting unreferenced hub location ' . $x['hubloc_url']);
+ $r = q("update hubloc set hubloc_flags = (hubloc_flags & ~%d), hubloc_updated = '%s' where hubloc_id = %d",
+ intval(HUBLOC_FLAGS_DELETED),
+ dbesc(datetime_convert()),
+ intval($x['hubloc_id'])
+ );
+ $what .= 'removed_hub ';
+ $changed = true;
+ }
+ }
+ }
+ }
+
+ $ret['change_message'] = $what;
+ $ret['changed'] = $changed;
+
+ return $ret;
+
+}
+
+
+function zot_encode_locations($channel) {
+ $ret = array();
+
+ $x = zot_get_hublocs($channel['channel_hash']);
+ if($x && count($x)) {
+ foreach($x as $hub) {
+ if(! ($hub['hubloc_flags'] & HUBLOC_FLAGS_UNVERIFIED)) {
+ $ret[] = array(
+ 'host' => $hub['hubloc_host'],
+ 'address' => $hub['hubloc_addr'],
+ 'primary' => (($hub['hubloc_flags'] & HUBLOC_FLAGS_PRIMARY) ? true : false),
+ 'url' => $hub['hubloc_url'],
+ 'url_sig' => $hub['hubloc_url_sig'],
+ 'callback' => $hub['hubloc_callback'],
+ 'sitekey' => $hub['hubloc_sitekey'],
+ 'deleted' => (($hub['hubloc_flags'] & HUBLOC_FLAGS_DELETED) ? true : false)
+ );
+ }
+ }
+ }
+ return $ret;
+}
+
+
+
+
/*
* @function import_directory_profile
@@ -1848,7 +2083,7 @@ function import_directory_profile($hash,$profile,$addr,$ud_flags = UPDATE_FLAGS_
if(in_arrayi('nsfw',$clean) || in_arrayi('adult',$clean)) {
- q("update xchan set xchan_flags = (xchan_flags | %d) where xchan_hash = '%s' limit 1",
+ q("update xchan set xchan_flags = (xchan_flags | %d) where xchan_hash = '%s'",
intval(XCHAN_FLAGS_SELFCENSORED),
dbesc($hash)
);
@@ -1883,7 +2118,7 @@ function import_directory_profile($hash,$profile,$addr,$ud_flags = UPDATE_FLAGS_
xprof_homepage = '%s',
xprof_hometown = '%s',
xprof_keywords = '%s'
- where xprof_hash = '%s' limit 1",
+ where xprof_hash = '%s'",
dbesc($arr['xprof_desc']),
dbesc($arr['xprof_dob']),
intval($arr['xprof_age']),
@@ -1953,7 +2188,7 @@ function import_directory_keywords($hash,$keywords) {
foreach($existing as $x) {
if(! in_array($x,$clean))
- $r = q("delete from xtag where xtag_hash = '%s' and xtag_term = '%s' limit 1",
+ $r = q("delete from xtag where xtag_hash = '%s' and xtag_term = '%s'",
dbesc($hash),
dbesc($x)
);
@@ -1985,7 +2220,7 @@ function update_modtime($hash,$guid,$addr,$flags = 0) {
);
}
else {
- q("update updates set ud_flags = ( ud_flags | %d ) where ud_addr = '%s' and not (ud_flags & %d) ",
+ q("update updates set ud_flags = ( ud_flags | %d ) where ud_addr = '%s' and not (ud_flags & %d)>0 ",
intval(UPDATE_FLAGS_UPDATED),
dbesc($addr),
intval(UPDATE_FLAGS_UPDATED)
@@ -2076,7 +2311,7 @@ function import_site($arr,$pubkey) {
// logger('import_site: stored: ' . print_r($siterecord,true));
$r = q("update site set site_location = '%s', site_flags = %d, site_access = %d, site_directory = '%s', site_register = %d, site_update = '%s', site_sellpage = '%s', site_realm = '%s'
- where site_url = '%s' limit 1",
+ where site_url = '%s'",
dbesc($site_location),
intval($site_directory),
intval($access_policy),
@@ -2247,7 +2482,7 @@ function build_sync_packet($uid = 0, $packet = null, $groups_changed = false) {
function process_channel_sync_delivery($sender,$arr,$deliveries) {
// FIXME - this will sync red structures (channel, pconfig and abook). Eventually we need to make this application agnostic.
-// TODO: missing group membership changes
+
$result = array();
@@ -2263,6 +2498,10 @@ function process_channel_sync_delivery($sender,$arr,$deliveries) {
$channel = $r[0];
+ $max_friends = service_class_fetch($channel['channel_id'],'total_channels');
+ $max_feeds = account_service_class_fetch($channel['channel_account_id'],'total_feeds');
+
+
if($channel['channel_hash'] != $sender['hash']) {
logger('process_channel_sync_delivery: possible forgery. Sender ' . $sender['hash'] . ' is not ' . $channel['channel_hash']);
$result[] = array($d['hash'],'channel mismatch',$channel['channel_name'],'');
@@ -2288,7 +2527,7 @@ function process_channel_sync_delivery($sender,$arr,$deliveries) {
if(count($clean)) {
foreach($clean as $k => $v) {
$r = dbq("UPDATE channel set " . dbesc($k) . " = '" . dbesc($v)
- . "' where channel_id = " . intval($channel['channel_id']) . " limit 1");
+ . "' where channel_id = " . intval($channel['channel_id']) );
}
}
}
@@ -2296,24 +2535,41 @@ function process_channel_sync_delivery($sender,$arr,$deliveries) {
if(array_key_exists('abook',$arr) && is_array($arr['abook']) && count($arr['abook'])) {
+ $total_friends = 0;
+ $total_feeds = 0;
+
+ $r = q("select abook_id, abook_flags from abook where abook_channel = %d",
+ intval($channel['channel_id'])
+ );
+ if($r) {
+ // don't count yourself
+ $total_friends = ((count($r) > 0) ? count($r) - 1 : 0);
+ foreach($r as $rr)
+ if($rr['abook_flags'] & ABOOK_FLAG_FEED)
+ $total_feeds ++;
+ }
$disallowed = array('abook_id','abook_account','abook_channel');
- $clean = array();
foreach($arr['abook'] as $abook) {
+ $clean = array();
if($abook['abook_xchan'] && $abook['entry_deleted']) {
logger('process_channel_sync_delivery: removing abook entry for ' . $abook['abook_xchan']);
require_once('include/Contact.php');
- $r = q("select abook_id from abook where abook_xchan = '%s' and abook_channel = %d and not ( abook_flags & %d ) limit 1",
+ $r = q("select abook_id, abook_flags from abook where abook_xchan = '%s' and abook_channel = %d and not ( abook_flags & %d )>0 limit 1",
dbesc($abook['abook_xchan']),
intval($channel['channel_id']),
intval(ABOOK_FLAG_SELF)
);
- if($r)
+ if($r) {
contact_remove($channel['channel_id'],$r[0]['abook_id']);
-
+ if($total_friends)
+ $total_friends --;
+ if($r[0]['abook_flags'] & ABOOK_FLAG_FEED)
+ $total_feeds --;
+ }
continue;
}
@@ -2329,7 +2585,7 @@ function process_channel_sync_delivery($sender,$arr,$deliveries) {
continue;
}
$j = json_decode($f['body'],true);
- if(! ($j['success'] && $j['guid'])) {
+ if(! ($j['success'] && $j['guid'])) {
logger('process_channel_sync_delivery: probe failed.');
continue;
}
@@ -2360,17 +2616,27 @@ function process_channel_sync_delivery($sender,$arr,$deliveries) {
// make sure we have an abook entry for this xchan on this system
if(! $r) {
+ if($max_friends !== false && $total_friends > $max_friends) {
+ logger('process_channel_sync_delivery: total_channels service class limit exceeded');
+ continue;
+ }
+ if($max_feeds !== false && ($clean['abook_flags'] & ABOOK_FLAG_FEED) && $total_feeds > $max_feeds) {
+ logger('process_channel_sync_delivery: total_feeds service class limit exceeded');
+ continue;
+ }
q("insert into abook ( abook_xchan, abook_channel ) values ('%s', %d ) ",
dbesc($clean['abook_xchan']),
intval($channel['channel_id'])
);
+ $total_friends ++;
+ if($clean['abook_flags'] & ABOOK_FLAG_FEED)
+ $total_feeds ++;
}
if(count($clean)) {
foreach($clean as $k => $v) {
$r = dbq("UPDATE abook set " . dbesc($k) . " = '" . dbesc($v)
- . "' where abook_xchan = '" . dbesc($clean['abook_xchan']) . "' and abook_channel = " . intval($channel['channel_id'])
- . " limit 1");
+ . "' where abook_xchan = '" . dbesc($clean['abook_xchan']) . "' and abook_channel = " . intval($channel['channel_id']));
}
}
}
@@ -2395,7 +2661,7 @@ function process_channel_sync_delivery($sender,$arr,$deliveries) {
if(($y['name'] != $cl['name'])
|| ($y['visible'] != $cl['visible'])
|| ($y['deleted'] != $cl['deleted'])) {
- q("update groups set name = '%s', visible = %d, deleted = %d where hash = '%s' and uid = %d limit 1",
+ q("update groups set name = '%s', visible = %d, deleted = %d where hash = '%s' and uid = %d",
dbesc($cl['name']),
intval($cl['visible']),
intval($cl['deleted']),
@@ -2417,8 +2683,8 @@ function process_channel_sync_delivery($sender,$arr,$deliveries) {
intval($channel['channel_id']),
intval($cl['visible']),
intval($cl['deleted']),
- dbesc($cl['name'])
- );
+ dbesc($cl['name'])
+ );
}
// now look for any collections locally which weren't in the list we just received.
@@ -2438,7 +2704,7 @@ function process_channel_sync_delivery($sender,$arr,$deliveries) {
q("delete from group_member where gid = %d",
intval($y['id'])
);
- q("update groups set deleted = 1 where id = %d and uid = %d limit 1",
+ q("update groups set deleted = 1 where id = %d and uid = %d",
intval($y['id']),
intval($channel['channel_id'])
);
@@ -2501,7 +2767,7 @@ function process_channel_sync_delivery($sender,$arr,$deliveries) {
foreach($m as $mm) {
// if the local existing member isn't in the list we just received - remove them
if(! in_array($mm['xchan'],$members[$y['hash']])) {
- q("delete from group_member where xchan = '%s' and gid = %d and uid = %d limit 1",
+ q("delete from group_member where xchan = '%s' and gid = %d and uid = %d",
dbesc($mm['xchan']),
intval($y['id']),
intval($channel['channel_id'])
@@ -2547,8 +2813,7 @@ function process_channel_sync_delivery($sender,$arr,$deliveries) {
if(count($clean)) {
foreach($clean as $k => $v) {
$r = dbq("UPDATE profile set " . dbesc($k) . " = '" . dbesc($v)
- . "' where profile_guid = '" . dbesc($profile['profile_guid']) . "' and uid = " . intval($channel['channel_id'])
- . " limit 1");
+ . "' where profile_guid = '" . dbesc($profile['profile_guid']) . "' and uid = " . intval($channel['channel_id']));
}
}
}
@@ -2573,7 +2838,7 @@ function get_rpost_path($observer) {
function import_author_zot($x) {
$hash = make_xchan_hash($x['guid'],$x['guid_sig']);
- $r = q("select hubloc_url from hubloc where hubloc_guid = '%s' and hubloc_guid_sig = '%s' and (hubloc_flags & %d) limit 1",
+ $r = q("select hubloc_url from hubloc where hubloc_guid = '%s' and hubloc_guid_sig = '%s' and (hubloc_flags & %d)>0 limit 1",
dbesc($x['guid']),
dbesc($x['guid_sig']),
intval(HUBLOC_FLAGS_PRIMARY)
@@ -2592,3 +2857,110 @@ function import_author_zot($x) {
return false;
}
+
+/**
+ * @function zot_process_message_request($data)
+ * If a site receives a comment to a post but finds they have no parent to attach it with, they
+ * may send a 'request' packet containing the message_id of the missing parent. This is the handler
+ * for that packet. We will create a message_list array of the entire conversation starting with
+ * the missing parent and invoke delivery to the sender of the packet.
+ *
+ * include/deliver.php (for local delivery) and mod/post.php (for web delivery) detect the existence of
+ * this 'message_list' at the destination and split it into individual messages which are
+ * processed/delivered in order.
+ *
+ * Called from mod/post.php
+ */
+
+
+function zot_process_message_request($data) {
+ $ret = array('success' => false);
+
+ if(! $data['message_id']) {
+ $ret['message'] = 'no message_id';
+ logger('no message_id');
+ return $ret;
+ }
+
+ $sender = $data['sender'];
+ $sender_hash = make_xchan_hash($sender['guid'],$sender['guid_sig']);
+
+ /*
+ * Find the local channel in charge of this post (the first and only recipient of the request packet)
+ */
+
+ $arr = $data['recipients'][0];
+ $recip_hash = make_xchan_hash($arr['guid'],$arr['guid_sig']);
+ $c = q("select * from channel left join xchan on channel_hash = xchan_hash where channel_hash = '%s' limit 1",
+ dbesc($recip_hash)
+ );
+ if(! $c) {
+ logger('recipient channel not found.');
+ $ret['message'] .= 'recipient not found.' . EOL;
+ return $ret;
+ }
+
+ /*
+ * fetch the requested conversation
+ */
+
+ $messages = zot_feed($c[0]['channel_id'],$sender_hash,array('message_id' => $data['message_id']));
+
+ if($messages) {
+ $env_recips = null;
+
+ $r = q("select hubloc_guid, hubloc_url, hubloc_sitekey, hubloc_network, hubloc_flags, hubloc_callback, hubloc_host
+ from hubloc where hubloc_hash = '%s' and not (hubloc_flags & %d)>0
+ and not (hubloc_status & %d)>0 group by hubloc_sitekey",
+ dbesc($sender_hash),
+ intval(HUBLOC_FLAGS_DELETED),
+ intval(HUBLOC_OFFLINE)
+ );
+ if(! $r) {
+ logger('no hubs');
+ return $ret;
+ }
+ $hubs = $r;
+ $hublist = array();
+ $keys = array();
+
+ $private = ((array_key_exists('flags',$messages[0]) && in_array('private',$messages[0]['flags'])) ? true : false);
+ if($private)
+ $env_recips = array('guid' => $sender['guid'],'guid_sig' => $sender['guid_sig'],'hash' => $sender_hash);
+
+ $data_packet = json_encode(array('message_list' => $messages));
+
+ foreach($hubs as $hub) {
+ $hash = random_string();
+
+ /*
+ * create a notify packet and drop the actual message packet in the queue for pickup
+ */
+
+ $n = zot_build_packet($c[0],'notify',$env_recips,(($private) ? $hub['hubloc_sitekey'] : null),$hash,array('message_id' => $data['message_id']));
+ q("insert into outq ( outq_hash, outq_account, outq_channel, outq_driver, outq_posturl, outq_async,
+ outq_created, outq_updated, outq_notify, outq_msg )
+ values ( '%s', %d, %d, '%s', '%s', %d, '%s', '%s', '%s', '%s' )",
+ dbesc($hash),
+ intval($c[0]['channel_account_id']),
+ intval($c[0]['channel_id']),
+ dbesc('zot'),
+ dbesc($hub['hubloc_callback']),
+ intval(1),
+ dbesc(datetime_convert()),
+ dbesc(datetime_convert()),
+ dbesc($n),
+ dbesc($data_packet)
+ );
+
+ /*
+ * invoke delivery to send out the notify packet
+ */
+
+ proc_run('php','include/deliver.php',$hash);
+ }
+
+ }
+ $ret['success'] = true;
+ return $ret;
+}
diff --git a/index.php b/index.php
index 5a9ec1026..a13d22d8c 100755
--- a/index.php
+++ b/index.php
@@ -27,6 +27,10 @@ $a->install = ((file_exists('.htconfig.php') && filesize('.htconfig.php')) ? fal
@include(".htconfig.php");
+$a->timezone = ((x($default_timezone)) ? $default_timezone : 'UTC');
+date_default_timezone_set($a->timezone);
+
+
/**
*
* Try to open the database;
@@ -36,8 +40,8 @@ $a->install = ((file_exists('.htconfig.php') && filesize('.htconfig.php')) ? fal
require_once("include/dba/dba_driver.php");
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);
+ $db = dba_factory($db_host, $db_port, $db_user, $db_pass, $db_data, $db_type, $a->install);
+ unset($db_host, $db_port, $db_user, $db_pass, $db_data, $db_type);
/**
* Load configs from db. Overwrite configs from .htconfig.php
@@ -193,8 +197,9 @@ if(strlen($a->module)) {
*/
if(! $a->module_loaded) {
- if(file_exists("custom/{$a->module}.php")) {
- include_once("custom/{$a->module}.php");
+
+ if(file_exists("mod/site/{$a->module}.php")) {
+ include_once("mod/site/{$a->module}.php");
$a->module_loaded = true;
}
elseif(file_exists("mod/{$a->module}.php")) {
@@ -238,14 +243,6 @@ if(strlen($a->module)) {
}
}
-/**
- * load current theme info
- */
-$theme_info_file = "view/theme/".current_theme()."/php/theme.php";
-if (file_exists($theme_info_file)){
- require_once($theme_info_file);
-}
-
/* initialise content region */
@@ -277,12 +274,44 @@ if($a->module_loaded) {
$a->page['page_title'] = $a->module;
$placeholder = '';
+ /**
+ * No theme has been specified when calling the module_init functions
+ * For this reason, please restrict the use of templates to those which
+ * do not provide any presentation details - as themes will not be able
+ * to over-ride them.
+ */
+
if(function_exists($a->module . '_init')) {
call_hooks($a->module . '_mod_init', $placeholder);
$func = $a->module . '_init';
$func($a);
}
+ /**
+ * Do all theme initialiasion here before calling any additional module functions.
+ * The module_init function may have changed the theme.
+ * Additionally any page with a Comanche template may alter the theme.
+ * So we'll check for those now.
+ */
+
+
+ /**
+ * 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
+ * The member may have also created a customised PDL that's stored in the config
+ */
+
+ load_pdl($a);
+
+ /**
+ * load current theme info
+ */
+
+ $theme_info_file = "view/theme/".current_theme()."/php/theme.php";
+ if (file_exists($theme_info_file)){
+ require_once($theme_info_file);
+ }
+
if(function_exists(str_replace('-','_',current_theme()) . '_init')) {
$func = str_replace('-','_',current_theme()) . '_init';
$func($a);
diff --git a/install/INSTALL.txt b/install/INSTALL.txt
index ee9900cb8..f5edf009f 100644
--- a/install/INSTALL.txt
+++ b/install/INSTALL.txt
@@ -1,4 +1,3 @@
-
Red Matrix Installation
We've tried very hard to ensure that the Red Matrix will run on commodity
@@ -46,47 +45,48 @@ allow you to use a non browser-valid certificate.
This restriction is incorporated because public posts from you may for example
contain references to images on your own hub. If your certificate is not known
by the internet browser of users they get a warning message complaining about
-some security issues. Although these complains are not the real truth - there
-are no security issues with your encryption! - the users may be confused,
-nerved or even worse may become scared about Red Matrix having security issues.
+the invalid certificate.
+
Free "browser-valid" certificates are available from providers such as StartSSL.
-
+
If you do NOT use SSL, there may be a delay of up to a minute for the initial
install script - while we check the SSL port to see if anything responds there.
When communicating with new sites, Red Matrix always attempts connection on the
-SSL port first, before falling back to a less secure connection.
+SSL port first, before falling back to a less secure connection. If you do not
+use SSL, your webserver must not listen on port 443 at all.
1. Requirements
- - Apache with mod-rewrite enabled and "AllowOverride All" so you can use a
-local .htaccess file
+ - Apache with mod-rewrite enabled and "AllowOverride All" so you can use a
+ local .htaccess file
- - PHP 5.3+. The later the better.
+ - PHP 5.3+. The later the better.
- - PHP *command line* access with register_argc_argv set to true in the
-php.ini file - and with no hosting provider restrictions on the use of exec()
-and proc_open().
+ - PHP *command line* access with register_argc_argv set to true in the
+ php.ini file - and with no hosting provider restrictions on the use of
+ exec() and proc_open().
- - curl, gd (with at least jpeg support), mysqli, mbstring, mcrypt, and openssl extensions. The imagick extension is not required but desirable.
+ - curl, gd (with at least jpeg and png support), mysqli, mbstring, mcrypt,
+ and openssl extensions. The imagick extension is not required but desirable.
- - some form of email server or email gateway such that PHP mail() works
+ - some form of email server or email gateway such that PHP mail() works
- - Mysql 5.x or MariaDB
+ - Mysql 5.x or MariaDB
+
+ - ability to schedule jobs with cron.
- - ability to schedule jobs with cron.
+ - Installation into a top-level domain or sub-domain (without a
+ directory/path component in the URL) is REQUIRED.
- - Installation into a top-level domain or sub-domain (without a
-directory/path component in the URL) is REQUIRED.
+2. Unpack the RedMatrix files into the root of your web server document area.
+
+ If you copy the directory tree to your webserver, make sure that you
+ also copy .htaccess - as "dot" files are often hidden and aren't normally
+ copied.
-2. Unpack the Red Matrix files into the root of your web server document area.
-
- - If you copy the directory tree to your webserver, make sure
- that you also copy .htaccess - as "dot" files are often hidden
- and aren't normally copied.
-
- - 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 "mywebsite" would be
+ - 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 "mywebsite" would be
git clone https://github.com/friendica/red.git mywebsite
@@ -94,18 +94,20 @@ directory/path component in the URL) is REQUIRED.
git pull
- - make sure folders *store/[data]/smarty3* and *store* exist and are writable by webserver
+ - make sure folders *store/[data]/smarty3* and *store* exist and are
+ writable by the webserver
- mkdir -p "store/\[data\]/smarty3"
+ mkdir -p "store/[data]/smarty3"
chmod -R 777 store
- [This permission (777) is very dangerous and if you have sufficient
- privilege and knowledge you should make this directory writeable only
- by the webserver. In many shared hosting environments this may be
- difficult without opening a trouble ticket with your provider. The
- above permissions will allow the software to work, but are not
- optimal.]
+ [This permission (777) is very dangerous and if you have sufficient
+ privilege and knowledge you should make these directories writeable
+ only by the webserver and, if different, the user that will run the
+ cron job (see below). In many shared hosting environments this may be
+ difficult without opening a trouble ticket with your provider. The
+ above permissions will allow the software to work, but are not
+ optimal.]
- For installing addons
@@ -113,21 +115,20 @@ directory/path component in the URL) is REQUIRED.
cd mywebsite
- - Then you should clone the addon repository (separately)
+ - Then you should clone the addon repository (separately)
- git clone https://github.com/friendica/red-addons.git addon
+ git clone https://github.com/friendica/red-addons.git addon
- - For keeping the addon tree updated, you should be on you addon tree and issue a git pull
+ - For keeping the addon tree updated, you should be on you addon tree and
+ issue a git pull
cd mywebsite/addon
-
- git pull
+ git pull
3. Create an empty database and note the access details (hostname, username,
password, database name).
-
4. If you know in advance that it will be impossible for the web server to
write or create files in your web directory, create an empty file called
.htconfig.php and make it writable by the web server.
@@ -139,12 +140,12 @@ website.
6. *If* the automated installation fails for any reason, check the following:
- - ".htconfig.php" exists
- If not, edit htconfig.php and change system settings. Rename
-to .htconfig.php
+ - ".htconfig.php" exists
+ If not, edit htconfig.php and change system settings. Rename
+ to .htconfig.php
- Database is populated.
- If not, import the contents of "database.sql" with phpmyadmin
-or mysql command line
+ If not, import the contents of "database.sql" with phpmyadmin
+ or mysql command line
7. At this point visit your website again, and register your personal account.
Registration errors should all be recoverable automatically.
@@ -173,10 +174,10 @@ 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. The RedMatrix will not work correctly if you cannot perform this step.
+assistance. RedMatrix will not work correctly if you cannot perform this step.
-You should also be sure that $a->config['system']['php_path'] is set correctly, it should
-look like (changing it to the correct PHP location)
+You should also be sure that $a->config['system']['php_path'] is set correctly,
+it should look like (changing it to the correct PHP location)
$a->config['system']['php_path'] = '/usr/local/php53/bin/php';
@@ -193,20 +194,20 @@ $a->config['system']['php_path'] = '/usr/local/php53/bin/php';
"System is currently unavailable. Please try again later"
#####################################################################
- Check your database settings. It usually means your database could not
-be opened or accessed. If the database resides on the same machine, check that
+Check your database settings. It usually means your database could not be
+opened or accessed. If the database resides on the same machine, check that
the database server name is the word "localhost".
#####################################################################
- 500 Internal Error
#####################################################################
- This could be the result of one of our Apache directives not being
+This could be the result of one of our Apache directives not being
supported by your version of Apache. Examine your apache server logs.
Also check your file permissions. Your website and all contents must generally
be world-readable.
- It is likely that your web server reported the source of the problem in
+It is likely that your web server reported the source of the problem in
its error log files. Please review these system error logs to determine what
caused the problem. Often this will need to be resolved with your hosting
provider or (if self-hosted) your web server configuration.
@@ -215,23 +216,23 @@ provider or (if self-hosted) your web server configuration.
- 400 and 4xx "File not found" errors
#####################################################################
- First check your file permissions. Your website and all contents must
+First check your file permissions. Your website and all contents must
generally be world-readable.
- Ensure that mod-rewite is installed and working, and that your
+Ensure that mod-rewite is installed and working, and that your
.htaccess file is being used. To verify the latter, create a file test.out
containing the word "test" in the top directory of the RedMatrix, make it world
readable and point your web browser to
http://yoursitenamehere.com/test.out
- This file should be blocked. You should get a permission denied message.
+This file should be blocked. You should get a permission denied message.
- If you see the word "test" your Apache configuration is not allowing
-your .htaccess file to be used (there are rules in this file to block access
+If you see the word "test" your Apache configuration is not allowing your
+.htaccess file to be used (there are rules in this file to block access
to any file with .out at the end, as these are typically used for system logs).
- Make certain the .htaccess file exists and is readable by everybody, then
+Make certain the .htaccess file exists and is readable by everybody, then
look for the existence of "AllowOverride None" in the Apache server
configuration for your site. This will need to be changed to
"AllowOverride All".
@@ -244,7 +245,7 @@ likely that mod-rewrite is not installed in your web server or is not working.
% a2enmod rewrite
% /etc/init.d/apache2 restart
- Consult your hosting provider, experts on your particular Linux
+Consult your hosting provider, experts on your particular Linux
distribution or (if Windows) the provider of your Apache server software if
you need to change either of these and can not figure out how. There is
a lot of help available on the web. Google "mod-rewrite" along with the
@@ -256,7 +257,7 @@ name of your operating system distribution or Apache package.
due to permissions issues:
#####################################################################
- create an empty file with that name and give it world-write permission.
+create an empty file with that name and give it world-write permission.
For Linux:
% touch .htconfig.php
diff --git a/install/database-w-defaults-v1131.diff b/install/database-w-defaults-v1131.diff
new file mode 100644
index 000000000..c8870f9c4
--- /dev/null
+++ b/install/database-w-defaults-v1131.diff
@@ -0,0 +1,1914 @@
+*** database.sql Mon Sep 8 20:28:00 2014
+--- database-w-defaults.sql Sun Nov 9 19:20:32 2014
+***************
+*** 1,15 ****
+! SET SQL_MODE="NO_AUTO_VALUE_ON_ZERO";
+!
+! /*!40101 SET @OLD_CHARACTER_SET_CLIENT=@@CHARACTER_SET_CLIENT */;
+! /*!40101 SET @OLD_CHARACTER_SET_RESULTS=@@CHARACTER_SET_RESULTS */;
+! /*!40101 SET @OLD_COLLATION_CONNECTION=@@COLLATION_CONNECTION */;
+! /*!40101 SET NAMES utf8 */;
+
+
+ CREATE TABLE IF NOT EXISTS `abook` (
+ `abook_id` int(10) unsigned NOT NULL AUTO_INCREMENT,
+! `abook_account` int(10) unsigned NOT NULL,
+! `abook_channel` int(10) unsigned NOT NULL,
+ `abook_xchan` char(255) NOT NULL DEFAULT '',
+ `abook_my_perms` int(11) NOT NULL DEFAULT '0',
+ `abook_their_perms` int(11) NOT NULL DEFAULT '0',
+--- 1,13 ----
+! -- --------------------------------------------------------
+
++ --
++ -- Table structure for table `abook`
++ --
+
+ CREATE TABLE IF NOT EXISTS `abook` (
+ `abook_id` int(10) unsigned NOT NULL AUTO_INCREMENT,
+! `abook_account` int(10) unsigned NOT NULL DEFAULT '0',
+! `abook_channel` int(10) unsigned NOT NULL DEFAULT '0',
+ `abook_xchan` char(255) NOT NULL DEFAULT '',
+ `abook_my_perms` int(11) NOT NULL DEFAULT '0',
+ `abook_their_perms` int(11) NOT NULL DEFAULT '0',
+***************
+*** 37,42 ****
+--- 35,46 ----
+ KEY `abook_rating` (`abook_rating`)
+ ) ENGINE=MyISAM DEFAULT CHARSET=utf8;
+
++ -- --------------------------------------------------------
++
++ --
++ -- Table structure for table `account`
++ --
++
+ CREATE TABLE IF NOT EXISTS `account` (
+ `account_id` int(10) unsigned NOT NULL AUTO_INCREMENT,
+ `account_parent` int(10) unsigned NOT NULL DEFAULT '0',
+***************
+*** 70,79 ****
+ KEY `account_password_changed` (`account_password_changed`)
+ ) ENGINE=MyISAM DEFAULT CHARSET=utf8;
+
+ CREATE TABLE IF NOT EXISTS `addon` (
+ `id` int(11) NOT NULL AUTO_INCREMENT,
+! `name` char(255) NOT NULL,
+! `version` char(255) NOT NULL,
+ `installed` tinyint(1) NOT NULL DEFAULT '0',
+ `hidden` tinyint(1) NOT NULL DEFAULT '0',
+ `timestamp` bigint(20) NOT NULL DEFAULT '0',
+--- 74,89 ----
+ KEY `account_password_changed` (`account_password_changed`)
+ ) ENGINE=MyISAM DEFAULT CHARSET=utf8;
+
++ -- --------------------------------------------------------
++
++ --
++ -- Table structure for table `addon`
++ --
++
+ CREATE TABLE IF NOT EXISTS `addon` (
+ `id` int(11) NOT NULL AUTO_INCREMENT,
+! `name` char(255) NOT NULL DEFAULT '',
+! `version` char(255) NOT NULL DEFAULT '',
+ `installed` tinyint(1) NOT NULL DEFAULT '0',
+ `hidden` tinyint(1) NOT NULL DEFAULT '0',
+ `timestamp` bigint(20) NOT NULL DEFAULT '0',
+***************
+*** 84,89 ****
+--- 94,104 ----
+ KEY `installed` (`installed`)
+ ) ENGINE=MyISAM DEFAULT CHARSET=utf8;
+
++ -- --------------------------------------------------------
++
++ --
++ -- Table structure for table `app`
++ --
+
+ CREATE TABLE IF NOT EXISTS `app` (
+ `id` int(11) NOT NULL AUTO_INCREMENT,
+***************
+*** 108,115 ****
+ KEY `app_version` (`app_version`),
+ KEY `app_channel` (`app_channel`),
+ KEY `app_price` (`app_price`)
+! ) ENGINE=MyISAM DEFAULT CHARSET=utf8;
+
+
+ CREATE TABLE IF NOT EXISTS `attach` (
+ `id` int(10) unsigned NOT NULL AUTO_INCREMENT,
+--- 123,135 ----
+ KEY `app_version` (`app_version`),
+ KEY `app_channel` (`app_channel`),
+ KEY `app_price` (`app_price`)
+! ) ENGINE=MyISAM DEFAULT CHARSET=utf8;
+!
+! -- --------------------------------------------------------
+
++ --
++ -- Table structure for table `attach`
++ --
+
+ CREATE TABLE IF NOT EXISTS `attach` (
+ `id` int(10) unsigned NOT NULL AUTO_INCREMENT,
+***************
+*** 145,166 ****
+ KEY `creator` (`creator`)
+ ) ENGINE=MyISAM DEFAULT CHARSET=utf8;
+
+ CREATE TABLE IF NOT EXISTS `auth_codes` (
+! `id` varchar(40) NOT NULL,
+! `client_id` varchar(20) NOT NULL,
+! `redirect_uri` varchar(200) NOT NULL,
+! `expires` int(11) NOT NULL,
+! `scope` varchar(250) NOT NULL,
+ PRIMARY KEY (`id`)
+ ) ENGINE=MyISAM DEFAULT CHARSET=utf8;
+
+ CREATE TABLE IF NOT EXISTS `cache` (
+! `k` char(255) NOT NULL,
+ `v` text NOT NULL,
+! `updated` datetime NOT NULL,
+ PRIMARY KEY (`k`)
+ ) ENGINE=MyISAM DEFAULT CHARSET=utf8;
+
+ CREATE TABLE IF NOT EXISTS `channel` (
+ `channel_id` int(10) unsigned NOT NULL AUTO_INCREMENT,
+ `channel_account_id` int(10) unsigned NOT NULL DEFAULT '0',
+--- 165,204 ----
+ KEY `creator` (`creator`)
+ ) ENGINE=MyISAM DEFAULT CHARSET=utf8;
+
++ -- --------------------------------------------------------
++
++ --
++ -- Table structure for table `auth_codes`
++ --
++
+ CREATE TABLE IF NOT EXISTS `auth_codes` (
+! `id` varchar(40) NOT NULL DEFAULT '',
+! `client_id` varchar(20) NOT NULL DEFAULT '',
+! `redirect_uri` varchar(200) NOT NULL DEFAULT '',
+! `expires` int(11) NOT NULL DEFAULT '0',
+! `scope` varchar(250) NOT NULL DEFAULT '',
+ PRIMARY KEY (`id`)
+ ) ENGINE=MyISAM DEFAULT CHARSET=utf8;
+
++ -- --------------------------------------------------------
++
++ --
++ -- Table structure for table `cache`
++ --
++
+ CREATE TABLE IF NOT EXISTS `cache` (
+! `k` char(255) NOT NULL DEFAULT '',
+ `v` text NOT NULL,
+! `updated` datetime NOT NULL DEFAULT '0000-00-00 00:00:00',
+ PRIMARY KEY (`k`)
+ ) ENGINE=MyISAM DEFAULT CHARSET=utf8;
+
++ -- --------------------------------------------------------
++
++ --
++ -- Table structure for table `channel`
++ --
++
+ CREATE TABLE IF NOT EXISTS `channel` (
+ `channel_id` int(10) unsigned NOT NULL AUTO_INCREMENT,
+ `channel_account_id` int(10) unsigned NOT NULL DEFAULT '0',
+***************
+*** 189,212 ****
+ `channel_allow_gid` mediumtext NOT NULL,
+ `channel_deny_cid` mediumtext NOT NULL,
+ `channel_deny_gid` mediumtext NOT NULL,
+! `channel_r_stream` int(10) unsigned NOT NULL DEFAULT '128',
+! `channel_r_profile` int(10) unsigned NOT NULL DEFAULT '128',
+! `channel_r_photos` int(10) unsigned NOT NULL DEFAULT '128',
+! `channel_r_abook` int(10) unsigned NOT NULL DEFAULT '128',
+! `channel_w_stream` int(10) unsigned NOT NULL DEFAULT '128',
+! `channel_w_wall` int(10) unsigned NOT NULL DEFAULT '128',
+! `channel_w_tagwall` int(10) unsigned NOT NULL DEFAULT '128',
+! `channel_w_comment` int(10) unsigned NOT NULL DEFAULT '128',
+! `channel_w_mail` int(10) unsigned NOT NULL DEFAULT '128',
+! `channel_w_photos` int(10) unsigned NOT NULL DEFAULT '128',
+! `channel_w_chat` int(10) unsigned NOT NULL DEFAULT '128',
+ `channel_a_delegate` int(10) unsigned NOT NULL DEFAULT '0',
+! `channel_r_storage` int(10) unsigned NOT NULL DEFAULT '128',
+! `channel_w_storage` int(10) unsigned NOT NULL DEFAULT '128',
+! `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_w_like` 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`),
+--- 227,250 ----
+ `channel_allow_gid` mediumtext NOT NULL,
+ `channel_deny_cid` mediumtext NOT NULL,
+ `channel_deny_gid` mediumtext NOT NULL,
+! `channel_r_stream` int(10) unsigned NOT NULL DEFAULT '0',
+! `channel_r_profile` int(10) unsigned NOT NULL DEFAULT '0',
+! `channel_r_photos` int(10) unsigned NOT NULL DEFAULT '0',
+! `channel_r_abook` int(10) unsigned NOT NULL DEFAULT '0',
+! `channel_w_stream` int(10) unsigned NOT NULL DEFAULT '0',
+! `channel_w_wall` int(10) unsigned NOT NULL DEFAULT '0',
+! `channel_w_tagwall` int(10) unsigned NOT NULL DEFAULT '0',
+! `channel_w_comment` int(10) unsigned NOT NULL DEFAULT '0',
+! `channel_w_mail` int(10) unsigned NOT NULL DEFAULT '0',
+! `channel_w_photos` int(10) unsigned NOT NULL DEFAULT '0',
+! `channel_w_chat` int(10) unsigned NOT NULL DEFAULT '0',
+ `channel_a_delegate` int(10) unsigned NOT NULL DEFAULT '0',
+! `channel_r_storage` int(10) unsigned NOT NULL DEFAULT '0',
+! `channel_w_storage` int(10) unsigned NOT NULL DEFAULT '0',
+! `channel_r_pages` int(10) unsigned NOT NULL DEFAULT '0',
+! `channel_w_pages` int(10) unsigned NOT NULL DEFAULT '0',
+! `channel_a_republish` int(10) unsigned NOT NULL DEFAULT '0',
+! `channel_w_like` int(10) unsigned NOT NULL DEFAULT '0',
+ PRIMARY KEY (`channel_id`),
+ UNIQUE KEY `channel_address_unique` (`channel_address`),
+ KEY `channel_account_id` (`channel_account_id`),
+***************
+*** 241,250 ****
+ KEY `channel_w_pages` (`channel_w_pages`),
+ KEY `channel_deleted` (`channel_deleted`),
+ KEY `channel_a_republish` (`channel_a_republish`),
+! KEY `channel_w_like` (`channel_w_like`),
+! 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',
+--- 279,294 ----
+ KEY `channel_w_pages` (`channel_w_pages`),
+ KEY `channel_deleted` (`channel_deleted`),
+ KEY `channel_a_republish` (`channel_a_republish`),
+! KEY `channel_dirdate` (`channel_dirdate`),
+! KEY `channel_w_like` (`channel_w_like`)
+ ) ENGINE=MyISAM DEFAULT CHARSET=utf8;
+
++ -- --------------------------------------------------------
++
++ --
++ -- Table structure for table `chat`
++ --
++
+ CREATE TABLE IF NOT EXISTS `chat` (
+ `chat_id` int(10) unsigned NOT NULL AUTO_INCREMENT,
+ `chat_room` int(10) unsigned NOT NULL DEFAULT '0',
+***************
+*** 255,275 ****
+ 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,
+--- 299,331 ----
+ KEY `chat_room` (`chat_room`),
+ KEY `chat_xchan` (`chat_xchan`),
+ KEY `created` (`created`)
+! ) ENGINE=MyISAM DEFAULT CHARSET=utf8;
+!
+! -- --------------------------------------------------------
+!
+! --
+! -- Table structure for table `chatpresence`
+! --
+
+ 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 DEFAULT '',
+ `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;
+!
+! -- --------------------------------------------------------
+!
+! --
+! -- Table structure for table `chatroom`
+! --
+
+ CREATE TABLE IF NOT EXISTS `chatroom` (
+ `cr_id` int(10) unsigned NOT NULL AUTO_INCREMENT,
+***************
+*** 290,322 ****
+ 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,
+! `redirect_uri` varchar(200) NOT NULL,
+ `name` text,
+ `icon` text,
+ `uid` int(11) NOT NULL DEFAULT '0',
+ PRIMARY KEY (`client_id`)
+ ) ENGINE=MyISAM DEFAULT CHARSET=utf8;
+
+ CREATE TABLE IF NOT EXISTS `config` (
+ `id` int(10) unsigned NOT NULL AUTO_INCREMENT,
+! `cat` char(255) CHARACTER SET ascii NOT NULL,
+! `k` char(255) CHARACTER SET ascii NOT NULL,
+ `v` text NOT NULL,
+ PRIMARY KEY (`id`),
+ UNIQUE KEY `access` (`cat`,`k`)
+ ) ENGINE=MyISAM DEFAULT CHARSET=utf8;
+
+ CREATE TABLE IF NOT EXISTS `conv` (
+ `id` int(10) unsigned NOT NULL AUTO_INCREMENT,
+! `guid` char(255) NOT NULL,
+ `recips` mediumtext NOT NULL,
+! `uid` int(11) NOT NULL,
+! `creator` char(255) NOT NULL,
+ `created` datetime NOT NULL DEFAULT '0000-00-00 00:00:00',
+ `updated` datetime NOT NULL DEFAULT '0000-00-00 00:00:00',
+ `subject` mediumtext NOT NULL,
+--- 346,396 ----
+ KEY `cr_created` (`cr_created`),
+ KEY `cr_edited` (`cr_edited`),
+ KEY `cr_expire` (`cr_expire`)
+! ) ENGINE=MyISAM DEFAULT CHARSET=utf8;
+!
+! -- --------------------------------------------------------
+!
+! --
+! -- Table structure for table `clients`
+! --
+
+ CREATE TABLE IF NOT EXISTS `clients` (
+! `client_id` varchar(20) NOT NULL DEFAULT '',
+! `pw` varchar(20) NOT NULL DEFAULT '',
+! `redirect_uri` varchar(200) NOT NULL DEFAULT '',
+ `name` text,
+ `icon` text,
+ `uid` int(11) NOT NULL DEFAULT '0',
+ PRIMARY KEY (`client_id`)
+ ) ENGINE=MyISAM DEFAULT CHARSET=utf8;
+
++ -- --------------------------------------------------------
++
++ --
++ -- Table structure for table `config`
++ --
++
+ CREATE TABLE IF NOT EXISTS `config` (
+ `id` int(10) unsigned NOT NULL AUTO_INCREMENT,
+! `cat` char(255) CHARACTER SET ascii NOT NULL DEFAULT '',
+! `k` char(255) CHARACTER SET ascii NOT NULL DEFAULT '',
+ `v` text NOT NULL,
+ PRIMARY KEY (`id`),
+ UNIQUE KEY `access` (`cat`,`k`)
+ ) ENGINE=MyISAM DEFAULT CHARSET=utf8;
+
++ -- --------------------------------------------------------
++
++ --
++ -- Table structure for table `conv`
++ --
++
+ CREATE TABLE IF NOT EXISTS `conv` (
+ `id` int(10) unsigned NOT NULL AUTO_INCREMENT,
+! `guid` char(255) NOT NULL DEFAULT '',
+ `recips` mediumtext NOT NULL,
+! `uid` int(11) NOT NULL DEFAULT '0',
+! `creator` char(255) NOT NULL DEFAULT '',
+ `created` datetime NOT NULL DEFAULT '0000-00-00 00:00:00',
+ `updated` datetime NOT NULL DEFAULT '0000-00-00 00:00:00',
+ `subject` mediumtext NOT NULL,
+***************
+*** 325,344 ****
+ KEY `updated` (`updated`)
+ ) ENGINE=MyISAM DEFAULT CHARSET=utf8;
+
+ CREATE TABLE IF NOT EXISTS `event` (
+ `id` int(11) NOT NULL AUTO_INCREMENT,
+ `aid` int(10) unsigned NOT NULL DEFAULT '0',
+! `uid` int(11) NOT NULL,
+ `event_xchan` char(255) NOT NULL DEFAULT '',
+ `event_hash` char(255) NOT NULL DEFAULT '',
+! `created` datetime NOT NULL,
+! `edited` datetime NOT NULL,
+! `start` datetime NOT NULL,
+! `finish` datetime NOT NULL,
+ `summary` text NOT NULL,
+ `description` text NOT NULL,
+ `location` text NOT NULL,
+! `type` char(255) NOT NULL,
+ `nofinish` tinyint(1) NOT NULL DEFAULT '0',
+ `adjust` tinyint(1) NOT NULL DEFAULT '1',
+ `ignore` tinyint(1) NOT NULL DEFAULT '0',
+--- 399,424 ----
+ KEY `updated` (`updated`)
+ ) ENGINE=MyISAM DEFAULT CHARSET=utf8;
+
++ -- --------------------------------------------------------
++
++ --
++ -- Table structure for table `event`
++ --
++
+ CREATE TABLE IF NOT EXISTS `event` (
+ `id` int(11) NOT NULL AUTO_INCREMENT,
+ `aid` int(10) unsigned NOT NULL DEFAULT '0',
+! `uid` int(11) NOT NULL DEFAULT '0',
+ `event_xchan` char(255) NOT NULL DEFAULT '',
+ `event_hash` char(255) NOT NULL DEFAULT '',
+! `created` datetime NOT NULL DEFAULT '0000-00-00 00:00:00',
+! `edited` datetime NOT NULL DEFAULT '0000-00-00 00:00:00',
+! `start` datetime NOT NULL DEFAULT '0000-00-00 00:00:00',
+! `finish` datetime NOT NULL DEFAULT '0000-00-00 00:00:00',
+ `summary` text NOT NULL,
+ `description` text NOT NULL,
+ `location` text NOT NULL,
+! `type` char(255) NOT NULL DEFAULT '',
+ `nofinish` tinyint(1) NOT NULL DEFAULT '0',
+ `adjust` tinyint(1) NOT NULL DEFAULT '1',
+ `ignore` tinyint(1) NOT NULL DEFAULT '0',
+***************
+*** 357,363 ****
+ KEY `aid` (`aid`),
+ KEY `event_hash` (`event_hash`),
+ KEY `event_xchan` (`event_xchan`)
+! ) ENGINE=MyISAM DEFAULT CHARSET=utf8;
+
+ CREATE TABLE IF NOT EXISTS `fcontact` (
+ `id` int(10) unsigned NOT NULL AUTO_INCREMENT,
+--- 437,449 ----
+ KEY `aid` (`aid`),
+ KEY `event_hash` (`event_hash`),
+ KEY `event_xchan` (`event_xchan`)
+! ) ENGINE=MyISAM DEFAULT CHARSET=utf8;
+!
+! -- --------------------------------------------------------
+!
+! --
+! -- Table structure for table `fcontact`
+! --
+
+ CREATE TABLE IF NOT EXISTS `fcontact` (
+ `id` int(10) unsigned NOT NULL AUTO_INCREMENT,
+***************
+*** 381,386 ****
+--- 467,478 ----
+ KEY `network` (`network`)
+ ) ENGINE=MyISAM DEFAULT CHARSET=utf8;
+
++ -- --------------------------------------------------------
++
++ --
++ -- Table structure for table `ffinder`
++ --
++
+ CREATE TABLE IF NOT EXISTS `ffinder` (
+ `id` int(10) unsigned NOT NULL AUTO_INCREMENT,
+ `uid` int(10) unsigned NOT NULL,
+***************
+*** 392,427 ****
+ KEY `fid` (`fid`)
+ ) ENGINE=MyISAM DEFAULT CHARSET=utf8;
+
+ CREATE TABLE IF NOT EXISTS `fserver` (
+ `id` int(11) NOT NULL AUTO_INCREMENT,
+! `server` char(255) NOT NULL,
+! `posturl` char(255) NOT NULL,
+ `key` text NOT NULL,
+ PRIMARY KEY (`id`),
+ KEY `server` (`server`),
+ KEY `posturl` (`posturl`)
+ ) ENGINE=MyISAM DEFAULT CHARSET=utf8;
+
+ CREATE TABLE IF NOT EXISTS `fsuggest` (
+ `id` int(11) NOT NULL AUTO_INCREMENT,
+! `uid` int(11) NOT NULL,
+! `cid` int(11) NOT NULL,
+! `name` char(255) NOT NULL,
+! `url` char(255) NOT NULL,
+! `request` char(255) NOT NULL,
+! `photo` char(255) NOT NULL,
+ `note` text NOT NULL,
+! `created` datetime NOT NULL,
+ PRIMARY KEY (`id`)
+ ) ENGINE=MyISAM DEFAULT CHARSET=utf8;
+
+ 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,
+ `visible` tinyint(1) NOT NULL DEFAULT '0',
+ `deleted` tinyint(1) NOT NULL DEFAULT '0',
+! `name` char(255) NOT NULL,
+ PRIMARY KEY (`id`),
+ KEY `uid` (`uid`),
+ KEY `visible` (`visible`),
+--- 484,537 ----
+ KEY `fid` (`fid`)
+ ) ENGINE=MyISAM DEFAULT CHARSET=utf8;
+
++ -- --------------------------------------------------------
++
++ --
++ -- Table structure for table `fserver`
++ --
++
+ CREATE TABLE IF NOT EXISTS `fserver` (
+ `id` int(11) NOT NULL AUTO_INCREMENT,
+! `server` char(255) NOT NULL DEFAULT '',
+! `posturl` char(255) NOT NULL DEFAULT '',
+ `key` text NOT NULL,
+ PRIMARY KEY (`id`),
+ KEY `server` (`server`),
+ KEY `posturl` (`posturl`)
+ ) ENGINE=MyISAM DEFAULT CHARSET=utf8;
+
++ -- --------------------------------------------------------
++
++ --
++ -- Table structure for table `fsuggest`
++ --
++
+ CREATE TABLE IF NOT EXISTS `fsuggest` (
+ `id` int(11) NOT NULL AUTO_INCREMENT,
+! `uid` int(11) NOT NULL DEFAULT '0',
+! `cid` int(11) NOT NULL DEFAULT '0',
+! `name` char(255) NOT NULL DEFAULT '',
+! `url` char(255) NOT NULL DEFAULT '',
+! `request` char(255) NOT NULL DEFAULT '',
+! `photo` char(255) NOT NULL DEFAULT '',
+ `note` text NOT NULL,
+! `created` datetime NOT NULL DEFAULT '0000-00-00 00:00:00',
+ PRIMARY KEY (`id`)
+ ) ENGINE=MyISAM DEFAULT CHARSET=utf8;
+
++ -- --------------------------------------------------------
++
++ --
++ -- Table structure for table `groups`
++ --
++
+ 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 DEFAULT '0',
+ `visible` tinyint(1) NOT NULL DEFAULT '0',
+ `deleted` tinyint(1) NOT NULL DEFAULT '0',
+! `name` char(255) NOT NULL DEFAULT '',
+ PRIMARY KEY (`id`),
+ KEY `uid` (`uid`),
+ KEY `visible` (`visible`),
+***************
+*** 429,438 ****
+ KEY `hash` (`hash`)
+ ) ENGINE=MyISAM DEFAULT CHARSET=utf8;
+
+ CREATE TABLE IF NOT EXISTS `group_member` (
+ `id` int(10) unsigned NOT NULL AUTO_INCREMENT,
+! `uid` int(10) unsigned NOT NULL,
+! `gid` int(10) unsigned NOT NULL,
+ `xchan` char(255) NOT NULL DEFAULT '',
+ PRIMARY KEY (`id`),
+ KEY `uid` (`uid`),
+--- 539,554 ----
+ KEY `hash` (`hash`)
+ ) ENGINE=MyISAM DEFAULT CHARSET=utf8;
+
++ -- --------------------------------------------------------
++
++ --
++ -- Table structure for table `group_member`
++ --
++
+ CREATE TABLE IF NOT EXISTS `group_member` (
+ `id` int(10) unsigned NOT NULL AUTO_INCREMENT,
+! `uid` int(10) unsigned NOT NULL DEFAULT '0',
+! `gid` int(10) unsigned NOT NULL DEFAULT '0',
+ `xchan` char(255) NOT NULL DEFAULT '',
+ PRIMARY KEY (`id`),
+ KEY `uid` (`uid`),
+***************
+*** 440,460 ****
+ KEY `xchan` (`xchan`)
+ ) ENGINE=MyISAM DEFAULT CHARSET=utf8;
+
+ CREATE TABLE IF NOT EXISTS `hook` (
+ `id` int(11) NOT NULL AUTO_INCREMENT,
+! `hook` char(255) NOT NULL,
+! `file` char(255) NOT NULL,
+! `function` char(255) NOT NULL,
+ `priority` int(11) unsigned NOT NULL DEFAULT '0',
+ PRIMARY KEY (`id`),
+ KEY `hook` (`hook`)
+ ) ENGINE=MyISAM DEFAULT CHARSET=utf8;
+
+ CREATE TABLE IF NOT EXISTS `hubloc` (
+ `hubloc_id` int(10) unsigned NOT NULL AUTO_INCREMENT,
+ `hubloc_guid` char(255) NOT NULL DEFAULT '',
+ `hubloc_guid_sig` text NOT NULL,
+! `hubloc_hash` char(255) NOT NULL,
+ `hubloc_addr` char(255) NOT NULL DEFAULT '',
+ `hubloc_network` char(32) NOT NULL DEFAULT '',
+ `hubloc_flags` int(10) unsigned NOT NULL DEFAULT '0',
+--- 556,588 ----
+ KEY `xchan` (`xchan`)
+ ) ENGINE=MyISAM DEFAULT CHARSET=utf8;
+
++ -- --------------------------------------------------------
++
++ --
++ -- Table structure for table `hook`
++ --
++
+ CREATE TABLE IF NOT EXISTS `hook` (
+ `id` int(11) NOT NULL AUTO_INCREMENT,
+! `hook` char(255) NOT NULL DEFAULT '',
+! `file` char(255) NOT NULL DEFAULT '',
+! `function` char(255) NOT NULL DEFAULT '',
+ `priority` int(11) unsigned NOT NULL DEFAULT '0',
+ PRIMARY KEY (`id`),
+ KEY `hook` (`hook`)
+ ) ENGINE=MyISAM DEFAULT CHARSET=utf8;
+
++ -- --------------------------------------------------------
++
++ --
++ -- Table structure for table `hubloc`
++ --
++
+ CREATE TABLE IF NOT EXISTS `hubloc` (
+ `hubloc_id` int(10) unsigned NOT NULL AUTO_INCREMENT,
+ `hubloc_guid` char(255) NOT NULL DEFAULT '',
+ `hubloc_guid_sig` text NOT NULL,
+! `hubloc_hash` char(255) NOT NULL DEFAULT '',
+ `hubloc_addr` char(255) NOT NULL DEFAULT '',
+ `hubloc_network` char(32) NOT NULL DEFAULT '',
+ `hubloc_flags` int(10) unsigned NOT NULL DEFAULT '0',
+***************
+*** 474,493 ****
+ KEY `hubloc_connect` (`hubloc_connect`),
+ KEY `hubloc_host` (`hubloc_host`),
+ KEY `hubloc_addr` (`hubloc_addr`),
+- KEY `hubloc_network` (`hubloc_network`),
+ KEY `hubloc_updated` (`hubloc_updated`),
+ KEY `hubloc_connected` (`hubloc_connected`),
+! KEY `hubloc_status` (`hubloc_status`)
+ ) ENGINE=MyISAM DEFAULT CHARSET=utf8;
+
+ CREATE TABLE IF NOT EXISTS `issue` (
+ `issue_id` int(10) unsigned NOT NULL AUTO_INCREMENT,
+ `issue_created` datetime NOT NULL DEFAULT '0000-00-00 00:00:00',
+ `issue_updated` datetime NOT NULL DEFAULT '0000-00-00 00:00:00',
+! `issue_assigned` char(255) NOT NULL,
+! `issue_priority` int(11) NOT NULL,
+! `issue_status` int(11) NOT NULL,
+! `issue_component` char(255) NOT NULL,
+ PRIMARY KEY (`issue_id`),
+ KEY `issue_created` (`issue_created`),
+ KEY `issue_updated` (`issue_updated`),
+--- 602,627 ----
+ KEY `hubloc_connect` (`hubloc_connect`),
+ KEY `hubloc_host` (`hubloc_host`),
+ KEY `hubloc_addr` (`hubloc_addr`),
+ KEY `hubloc_updated` (`hubloc_updated`),
+ KEY `hubloc_connected` (`hubloc_connected`),
+! KEY `hubloc_status` (`hubloc_status`),
+! KEY `hubloc_network` (`hubloc_network`)
+ ) ENGINE=MyISAM DEFAULT CHARSET=utf8;
+
++ -- --------------------------------------------------------
++
++ --
++ -- Table structure for table `issue`
++ --
++
+ CREATE TABLE IF NOT EXISTS `issue` (
+ `issue_id` int(10) unsigned NOT NULL AUTO_INCREMENT,
+ `issue_created` datetime NOT NULL DEFAULT '0000-00-00 00:00:00',
+ `issue_updated` datetime NOT NULL DEFAULT '0000-00-00 00:00:00',
+! `issue_assigned` char(255) NOT NULL DEFAULT '',
+! `issue_priority` int(11) NOT NULL DEFAULT '0',
+! `issue_status` int(11) NOT NULL DEFAULT '0',
+! `issue_component` char(255) NOT NULL DEFAULT '',
+ PRIMARY KEY (`issue_id`),
+ KEY `issue_created` (`issue_created`),
+ KEY `issue_updated` (`issue_updated`),
+***************
+*** 497,502 ****
+--- 631,642 ----
+ KEY `issue_component` (`issue_component`)
+ ) ENGINE=MyISAM DEFAULT CHARSET=utf8;
+
++ -- --------------------------------------------------------
++
++ --
++ -- Table structure for table `item`
++ --
++
+ CREATE TABLE IF NOT EXISTS `item` (
+ `id` int(10) unsigned NOT NULL AUTO_INCREMENT,
+ `mid` char(255) CHARACTER SET ascii NOT NULL DEFAULT '',
+***************
+*** 516,549 ****
+ `author_xchan` char(255) NOT NULL DEFAULT '',
+ `source_xchan` char(255) NOT NULL DEFAULT '',
+ `mimetype` char(255) NOT NULL DEFAULT '',
+! `title` text NOT NULL DEFAULT '',
+! `body` mediumtext NOT NULL DEFAULT '',
+ `app` char(255) NOT NULL DEFAULT '',
+ `lang` char(64) NOT NULL DEFAULT '',
+ `revision` int(10) unsigned NOT NULL DEFAULT '0',
+ `verb` char(255) NOT NULL DEFAULT '',
+ `obj_type` char(255) NOT NULL DEFAULT '',
+! `object` text NOT NULL DEFAULT '',
+ `tgt_type` char(255) NOT NULL DEFAULT '',
+! `target` text NOT NULL DEFAULT '',
+ `layout_mid` char(255) NOT NULL DEFAULT '',
+! `postopts` text NOT NULL DEFAULT '',
+! `route` text NOT NULL DEFAULT '',
+ `llink` char(255) NOT NULL DEFAULT '',
+ `plink` char(255) NOT NULL DEFAULT '',
+ `resource_id` char(255) NOT NULL DEFAULT '',
+ `resource_type` char(16) NOT NULL DEFAULT '',
+! `attach` mediumtext NOT NULL DEFAULT '',
+! `sig` text NOT NULL DEFAULT '',
+! `diaspora_meta` mediumtext NOT NULL DEFAULT '',
+ `location` char(255) NOT NULL DEFAULT '',
+ `coord` char(255) NOT NULL DEFAULT '',
+ `public_policy` char(255) NOT NULL DEFAULT '',
+ `comment_policy` char(255) NOT NULL DEFAULT '',
+! `allow_cid` mediumtext NOT NULL DEFAULT '',
+! `allow_gid` mediumtext NOT NULL DEFAULT '',
+! `deny_cid` mediumtext NOT NULL DEFAULT '',
+! `deny_gid` mediumtext NOT NULL DEFAULT '',
+ `item_restrict` int(11) NOT NULL DEFAULT '0',
+ `item_flags` int(11) NOT NULL DEFAULT '0',
+ `item_private` tinyint(4) NOT NULL DEFAULT '0',
+--- 656,689 ----
+ `author_xchan` char(255) NOT NULL DEFAULT '',
+ `source_xchan` char(255) NOT NULL DEFAULT '',
+ `mimetype` char(255) NOT NULL DEFAULT '',
+! `title` text NOT NULL,
+! `body` mediumtext NOT NULL,
+ `app` char(255) NOT NULL DEFAULT '',
+ `lang` char(64) NOT NULL DEFAULT '',
+ `revision` int(10) unsigned NOT NULL DEFAULT '0',
+ `verb` char(255) NOT NULL DEFAULT '',
+ `obj_type` char(255) NOT NULL DEFAULT '',
+! `object` text NOT NULL,
+ `tgt_type` char(255) NOT NULL DEFAULT '',
+! `target` text NOT NULL,
+ `layout_mid` char(255) NOT NULL DEFAULT '',
+! `postopts` text NOT NULL,
+! `route` text NOT NULL,
+ `llink` char(255) NOT NULL DEFAULT '',
+ `plink` char(255) NOT NULL DEFAULT '',
+ `resource_id` char(255) NOT NULL DEFAULT '',
+ `resource_type` char(16) NOT NULL DEFAULT '',
+! `attach` mediumtext NOT NULL,
+! `sig` text NOT NULL,
+! `diaspora_meta` mediumtext NOT NULL,
+ `location` char(255) NOT NULL DEFAULT '',
+ `coord` char(255) NOT NULL DEFAULT '',
+ `public_policy` char(255) NOT NULL DEFAULT '',
+ `comment_policy` char(255) NOT NULL DEFAULT '',
+! `allow_cid` mediumtext NOT NULL,
+! `allow_gid` mediumtext NOT NULL,
+! `deny_cid` mediumtext NOT NULL,
+! `deny_gid` mediumtext NOT NULL,
+ `item_restrict` int(11) NOT NULL DEFAULT '0',
+ `item_flags` int(11) NOT NULL DEFAULT '0',
+ `item_private` tinyint(4) NOT NULL DEFAULT '0',
+***************
+*** 555,562 ****
+ KEY `received` (`received`),
+ KEY `uid_commented` (`uid`,`commented`),
+ KEY `uid_created` (`uid`,`created`),
+- KEY `changed` (`changed`),
+- KEY `comments_closed` (`comments_closed`),
+ KEY `aid` (`aid`),
+ KEY `owner_xchan` (`owner_xchan`),
+ KEY `author_xchan` (`author_xchan`),
+--- 695,700 ----
+***************
+*** 573,581 ****
+ KEY `mid` (`mid`),
+ KEY `parent_mid` (`parent_mid`),
+ KEY `uid_mid` (`mid`,`uid`),
+- KEY `public_policy` (`public_policy`),
+ KEY `comment_policy` (`comment_policy`),
+ KEY `layout_mid` (`layout_mid`),
+ FULLTEXT KEY `title` (`title`),
+ FULLTEXT KEY `body` (`body`),
+ FULLTEXT KEY `allow_cid` (`allow_cid`),
+--- 711,721 ----
+ KEY `mid` (`mid`),
+ KEY `parent_mid` (`parent_mid`),
+ KEY `uid_mid` (`mid`,`uid`),
+ KEY `comment_policy` (`comment_policy`),
+ KEY `layout_mid` (`layout_mid`),
++ KEY `public_policy` (`public_policy`),
++ KEY `comments_closed` (`comments_closed`),
++ KEY `changed` (`changed`),
+ FULLTEXT KEY `title` (`title`),
+ FULLTEXT KEY `body` (`body`),
+ FULLTEXT KEY `allow_cid` (`allow_cid`),
+***************
+*** 584,595 ****
+ FULLTEXT KEY `deny_gid` (`deny_gid`)
+ ) ENGINE=MyISAM DEFAULT CHARSET=utf8;
+
+ CREATE TABLE IF NOT EXISTS `item_id` (
+ `id` int(10) unsigned NOT NULL AUTO_INCREMENT,
+! `iid` int(11) NOT NULL,
+! `uid` int(11) NOT NULL,
+! `sid` char(255) NOT NULL,
+! `service` char(255) NOT NULL,
+ PRIMARY KEY (`id`),
+ KEY `uid` (`uid`),
+ KEY `sid` (`sid`),
+--- 724,741 ----
+ FULLTEXT KEY `deny_gid` (`deny_gid`)
+ ) ENGINE=MyISAM DEFAULT CHARSET=utf8;
+
++ -- --------------------------------------------------------
++
++ --
++ -- Table structure for table `item_id`
++ --
++
+ CREATE TABLE IF NOT EXISTS `item_id` (
+ `id` int(10) unsigned NOT NULL AUTO_INCREMENT,
+! `iid` int(11) NOT NULL DEFAULT '0',
+! `uid` int(11) NOT NULL DEFAULT '0',
+! `sid` char(255) NOT NULL DEFAULT '',
+! `service` char(255) NOT NULL DEFAULT '',
+ PRIMARY KEY (`id`),
+ KEY `uid` (`uid`),
+ KEY `sid` (`sid`),
+***************
+*** 597,621 ****
+ KEY `iid` (`iid`)
+ ) ENGINE=MyISAM DEFAULT CHARSET=utf8;
+
+ CREATE TABLE IF NOT EXISTS `likes` (
+ `id` int(10) unsigned NOT NULL AUTO_INCREMENT,
+! `channel_id` int(11) unsigned NOT NULL DEFAULT '0',
+ `liker` char(128) NOT NULL DEFAULT '',
+ `likee` char(128) NOT NULL DEFAULT '',
+! `iid` int(10) unsigned NOT NULL DEFAULT '0',
+ `verb` char(255) NOT NULL DEFAULT '',
+ `target_type` char(255) NOT NULL DEFAULT '',
+ `target_id` char(128) NOT NULL DEFAULT '',
+ `target` mediumtext NOT NULL,
+ PRIMARY KEY (`id`),
+- KEY `channel_id` (`channel_id`),
+ KEY `liker` (`liker`),
+ KEY `likee` (`likee`),
+ KEY `iid` (`iid`),
+ KEY `verb` (`verb`),
+ KEY `target_type` (`target_type`),
+ KEY `target_id` (`target_id`)
+! ) ENGINE=MyISAM DEFAULT CHARSET=utf8;
+
+ CREATE TABLE IF NOT EXISTS `mail` (
+ `id` int(10) unsigned NOT NULL AUTO_INCREMENT,
+--- 743,779 ----
+ KEY `iid` (`iid`)
+ ) ENGINE=MyISAM DEFAULT CHARSET=utf8;
+
++ -- --------------------------------------------------------
++
++ --
++ -- Table structure for table `likes`
++ --
++
+ CREATE TABLE IF NOT EXISTS `likes` (
+ `id` int(10) unsigned NOT NULL AUTO_INCREMENT,
+! `channel_id` int(10) unsigned NOT NULL DEFAULT '0',
+ `liker` char(128) NOT NULL DEFAULT '',
+ `likee` char(128) NOT NULL DEFAULT '',
+! `iid` int(11) unsigned NOT NULL DEFAULT '0',
+ `verb` char(255) NOT NULL DEFAULT '',
+ `target_type` char(255) NOT NULL DEFAULT '',
+ `target_id` char(128) NOT NULL DEFAULT '',
+ `target` mediumtext NOT NULL,
+ PRIMARY KEY (`id`),
+ KEY `liker` (`liker`),
+ KEY `likee` (`likee`),
+ KEY `iid` (`iid`),
+ KEY `verb` (`verb`),
+ KEY `target_type` (`target_type`),
++ KEY `channel_id` (`channel_id`),
+ KEY `target_id` (`target_id`)
+! ) ENGINE=MyISAM DEFAULT CHARSET=utf8;
+!
+! -- --------------------------------------------------------
+!
+! --
+! -- Table structure for table `mail`
+! --
+
+ CREATE TABLE IF NOT EXISTS `mail` (
+ `id` int(10) unsigned NOT NULL AUTO_INCREMENT,
+***************
+*** 624,639 ****
+ `from_xchan` char(255) NOT NULL DEFAULT '',
+ `to_xchan` char(255) NOT NULL DEFAULT '',
+ `account_id` int(10) unsigned NOT NULL DEFAULT '0',
+! `channel_id` int(10) unsigned NOT NULL,
+ `title` text NOT NULL,
+ `body` mediumtext NOT NULL,
+ `attach` mediumtext NOT NULL,
+! `mid` char(255) NOT NULL,
+! `parent_mid` char(255) NOT NULL,
+ `created` datetime NOT NULL DEFAULT '0000-00-00 00:00:00',
+ `expires` datetime NOT NULL DEFAULT '0000-00-00 00:00:00',
+ PRIMARY KEY (`id`),
+- KEY `convid` (`convid`),
+ KEY `created` (`created`),
+ KEY `mail_flags` (`mail_flags`),
+ KEY `account_id` (`account_id`),
+--- 782,796 ----
+ `from_xchan` char(255) NOT NULL DEFAULT '',
+ `to_xchan` char(255) NOT NULL DEFAULT '',
+ `account_id` int(10) unsigned NOT NULL DEFAULT '0',
+! `channel_id` int(10) unsigned NOT NULL DEFAULT '0',
+ `title` text NOT NULL,
+ `body` mediumtext NOT NULL,
+ `attach` mediumtext NOT NULL,
+! `mid` char(255) NOT NULL DEFAULT '',
+! `parent_mid` char(255) NOT NULL DEFAULT '',
+ `created` datetime NOT NULL DEFAULT '0000-00-00 00:00:00',
+ `expires` datetime NOT NULL DEFAULT '0000-00-00 00:00:00',
+ PRIMARY KEY (`id`),
+ KEY `created` (`created`),
+ KEY `mail_flags` (`mail_flags`),
+ KEY `account_id` (`account_id`),
+***************
+*** 642,659 ****
+ KEY `to_xchan` (`to_xchan`),
+ KEY `mid` (`mid`),
+ KEY `parent_mid` (`parent_mid`),
+! KEY `expires` (`expires`)
+ ) ENGINE=MyISAM DEFAULT CHARSET=utf8;
+
+ CREATE TABLE IF NOT EXISTS `manage` (
+ `id` int(11) NOT NULL AUTO_INCREMENT,
+! `uid` int(11) NOT NULL,
+ `xchan` char(255) NOT NULL DEFAULT '',
+ PRIMARY KEY (`id`),
+ KEY `uid` (`uid`),
+ KEY `xchan` (`xchan`)
+ ) ENGINE=MyISAM DEFAULT CHARSET=utf8;
+
+ CREATE TABLE IF NOT EXISTS `menu` (
+ `menu_id` int(10) unsigned NOT NULL AUTO_INCREMENT,
+ `menu_channel_id` int(10) unsigned NOT NULL DEFAULT '0',
+--- 799,829 ----
+ KEY `to_xchan` (`to_xchan`),
+ KEY `mid` (`mid`),
+ KEY `parent_mid` (`parent_mid`),
+! KEY `expires` (`expires`),
+! KEY `convid` (`convid`)
+ ) ENGINE=MyISAM DEFAULT CHARSET=utf8;
+
++ -- --------------------------------------------------------
++
++ --
++ -- Table structure for table `manage`
++ --
++
+ CREATE TABLE IF NOT EXISTS `manage` (
+ `id` int(11) NOT NULL AUTO_INCREMENT,
+! `uid` int(11) NOT NULL DEFAULT '0',
+ `xchan` char(255) NOT NULL DEFAULT '',
+ PRIMARY KEY (`id`),
+ KEY `uid` (`uid`),
+ KEY `xchan` (`xchan`)
+ ) ENGINE=MyISAM DEFAULT CHARSET=utf8;
+
++ -- --------------------------------------------------------
++
++ --
++ -- Table structure for table `menu`
++ --
++
+ CREATE TABLE IF NOT EXISTS `menu` (
+ `menu_id` int(10) unsigned NOT NULL AUTO_INCREMENT,
+ `menu_channel_id` int(10) unsigned NOT NULL DEFAULT '0',
+***************
+*** 666,671 ****
+--- 836,847 ----
+ KEY `menu_flags` (`menu_flags`)
+ ) ENGINE=MyISAM DEFAULT CHARSET=utf8;
+
++ -- --------------------------------------------------------
++
++ --
++ -- Table structure for table `menu_item`
++ --
++
+ CREATE TABLE IF NOT EXISTS `menu_item` (
+ `mitem_id` int(10) unsigned NOT NULL AUTO_INCREMENT,
+ `mitem_link` char(255) NOT NULL DEFAULT '',
+***************
+*** 675,681 ****
+ `allow_gid` mediumtext NOT NULL,
+ `deny_cid` mediumtext NOT NULL,
+ `deny_gid` mediumtext NOT NULL,
+! `mitem_channel_id` int(10) unsigned NOT NULL,
+ `mitem_menu_id` int(10) unsigned NOT NULL DEFAULT '0',
+ `mitem_order` int(11) NOT NULL DEFAULT '0',
+ PRIMARY KEY (`mitem_id`),
+--- 851,857 ----
+ `allow_gid` mediumtext NOT NULL,
+ `deny_cid` mediumtext NOT NULL,
+ `deny_gid` mediumtext NOT NULL,
+! `mitem_channel_id` int(10) unsigned NOT NULL DEFAULT '0',
+ `mitem_menu_id` int(10) unsigned NOT NULL DEFAULT '0',
+ `mitem_order` int(11) NOT NULL DEFAULT '0',
+ PRIMARY KEY (`mitem_id`),
+***************
+*** 684,705 ****
+ KEY `mitem_flags` (`mitem_flags`)
+ ) ENGINE=MyISAM DEFAULT CHARSET=utf8;
+
+ CREATE TABLE IF NOT EXISTS `notify` (
+ `id` int(11) NOT NULL AUTO_INCREMENT,
+! `hash` char(64) NOT NULL,
+! `name` char(255) NOT NULL,
+! `url` char(255) NOT NULL,
+! `photo` char(255) NOT NULL,
+! `date` datetime NOT NULL,
+ `msg` mediumtext NOT NULL,
+! `aid` int(11) NOT NULL,
+! `uid` int(11) NOT NULL,
+! `link` char(255) NOT NULL,
+ `parent` char(255) NOT NULL DEFAULT '',
+ `seen` tinyint(1) NOT NULL DEFAULT '0',
+! `type` int(11) NOT NULL,
+! `verb` char(255) NOT NULL,
+! `otype` char(16) NOT NULL,
+ PRIMARY KEY (`id`),
+ KEY `type` (`type`),
+ KEY `seen` (`seen`),
+--- 860,887 ----
+ KEY `mitem_flags` (`mitem_flags`)
+ ) ENGINE=MyISAM DEFAULT CHARSET=utf8;
+
++ -- --------------------------------------------------------
++
++ --
++ -- Table structure for table `notify`
++ --
++
+ CREATE TABLE IF NOT EXISTS `notify` (
+ `id` int(11) NOT NULL AUTO_INCREMENT,
+! `hash` char(64) NOT NULL DEFAULT '',
+! `name` char(255) NOT NULL DEFAULT '',
+! `url` char(255) NOT NULL DEFAULT '',
+! `photo` char(255) NOT NULL DEFAULT '',
+! `date` datetime NOT NULL DEFAULT '0000-00-00 00:00:00',
+ `msg` mediumtext NOT NULL,
+! `aid` int(11) NOT NULL DEFAULT '0',
+! `uid` int(11) NOT NULL DEFAULT '0',
+! `link` char(255) NOT NULL DEFAULT '',
+ `parent` char(255) NOT NULL DEFAULT '',
+ `seen` tinyint(1) NOT NULL DEFAULT '0',
+! `type` int(11) NOT NULL DEFAULT '0',
+! `verb` char(255) NOT NULL DEFAULT '',
+! `otype` char(16) NOT NULL DEFAULT '',
+ PRIMARY KEY (`id`),
+ KEY `type` (`type`),
+ KEY `seen` (`seen`),
+***************
+*** 712,717 ****
+--- 894,905 ----
+ KEY `aid` (`aid`)
+ ) ENGINE=MyISAM DEFAULT CHARSET=utf8;
+
++ -- --------------------------------------------------------
++
++ --
++ -- Table structure for table `obj`
++ --
++
+ CREATE TABLE IF NOT EXISTS `obj` (
+ `obj_id` int(10) unsigned NOT NULL AUTO_INCREMENT,
+ `obj_page` char(64) NOT NULL DEFAULT '',
+***************
+*** 731,736 ****
+--- 919,930 ----
+ KEY `obj_obj` (`obj_obj`)
+ ) ENGINE=MyISAM DEFAULT CHARSET=utf8;
+
++ -- --------------------------------------------------------
++
++ --
++ -- Table structure for table `outq`
++ --
++
+ CREATE TABLE IF NOT EXISTS `outq` (
+ `outq_hash` char(255) NOT NULL,
+ `outq_account` int(10) unsigned NOT NULL DEFAULT '0',
+***************
+*** 753,786 ****
+ KEY `outq_delivered` (`outq_delivered`)
+ ) ENGINE=MyISAM DEFAULT CHARSET=utf8;
+
+ CREATE TABLE IF NOT EXISTS `pconfig` (
+ `id` int(11) NOT NULL AUTO_INCREMENT,
+ `uid` int(11) NOT NULL DEFAULT '0',
+! `cat` char(255) CHARACTER SET ascii NOT NULL,
+! `k` char(255) CHARACTER SET ascii NOT NULL,
+ `v` mediumtext NOT NULL,
+ PRIMARY KEY (`id`),
+ UNIQUE KEY `access` (`uid`,`cat`,`k`)
+ ) ENGINE=MyISAM DEFAULT CHARSET=utf8;
+
+ CREATE TABLE IF NOT EXISTS `photo` (
+ `id` int(10) unsigned NOT NULL AUTO_INCREMENT,
+ `aid` int(10) unsigned NOT NULL DEFAULT '0',
+! `uid` int(10) unsigned NOT NULL,
+ `xchan` char(255) NOT NULL DEFAULT '',
+! `resource_id` char(255) NOT NULL,
+! `created` datetime NOT NULL,
+! `edited` datetime NOT NULL,
+! `title` char(255) NOT NULL,
+ `description` text NOT NULL,
+! `album` char(255) NOT NULL,
+! `filename` char(255) NOT NULL,
+ `type` char(128) NOT NULL DEFAULT 'image/jpeg',
+! `height` smallint(6) NOT NULL,
+! `width` smallint(6) NOT NULL,
+ `size` int(10) unsigned NOT NULL DEFAULT '0',
+ `data` mediumblob NOT NULL,
+! `scale` tinyint(3) NOT NULL,
+ `profile` tinyint(1) NOT NULL DEFAULT '0',
+ `photo_flags` int(10) unsigned NOT NULL DEFAULT '0',
+ `allow_cid` mediumtext NOT NULL,
+--- 947,992 ----
+ KEY `outq_delivered` (`outq_delivered`)
+ ) ENGINE=MyISAM DEFAULT CHARSET=utf8;
+
++ -- --------------------------------------------------------
++
++ --
++ -- Table structure for table `pconfig`
++ --
++
+ CREATE TABLE IF NOT EXISTS `pconfig` (
+ `id` int(11) NOT NULL AUTO_INCREMENT,
+ `uid` int(11) NOT NULL DEFAULT '0',
+! `cat` char(255) CHARACTER SET ascii NOT NULL DEFAULT '',
+! `k` char(255) CHARACTER SET ascii NOT NULL DEFAULT '',
+ `v` mediumtext NOT NULL,
+ PRIMARY KEY (`id`),
+ UNIQUE KEY `access` (`uid`,`cat`,`k`)
+ ) ENGINE=MyISAM DEFAULT CHARSET=utf8;
+
++ -- --------------------------------------------------------
++
++ --
++ -- Table structure for table `photo`
++ --
++
+ CREATE TABLE IF NOT EXISTS `photo` (
+ `id` int(10) unsigned NOT NULL AUTO_INCREMENT,
+ `aid` int(10) unsigned NOT NULL DEFAULT '0',
+! `uid` int(10) unsigned NOT NULL DEFAULT '0',
+ `xchan` char(255) NOT NULL DEFAULT '',
+! `resource_id` char(255) NOT NULL DEFAULT '',
+! `created` datetime NOT NULL DEFAULT '0000-00-00 00:00:00',
+! `edited` datetime NOT NULL DEFAULT '0000-00-00 00:00:00',
+! `title` char(255) NOT NULL DEFAULT '',
+ `description` text NOT NULL,
+! `album` char(255) NOT NULL DEFAULT '',
+! `filename` char(255) NOT NULL DEFAULT '',
+ `type` char(128) NOT NULL DEFAULT 'image/jpeg',
+! `height` smallint(6) NOT NULL DEFAULT '0',
+! `width` smallint(6) NOT NULL DEFAULT '0',
+ `size` int(10) unsigned NOT NULL DEFAULT '0',
+ `data` mediumblob NOT NULL,
+! `scale` tinyint(3) NOT NULL DEFAULT '0',
+ `profile` tinyint(1) NOT NULL DEFAULT '0',
+ `photo_flags` int(10) unsigned NOT NULL DEFAULT '0',
+ `allow_cid` mediumtext NOT NULL,
+***************
+*** 800,805 ****
+--- 1006,1017 ----
+ KEY `resource_id` (`resource_id`)
+ ) ENGINE=MyISAM DEFAULT CHARSET=utf8;
+
++ -- --------------------------------------------------------
++
++ --
++ -- Table structure for table `poll`
++ --
++
+ CREATE TABLE IF NOT EXISTS `poll` (
+ `poll_id` int(10) unsigned NOT NULL AUTO_INCREMENT,
+ `poll_channel` int(10) unsigned NOT NULL DEFAULT '0',
+***************
+*** 812,817 ****
+--- 1024,1035 ----
+ KEY `poll_votes` (`poll_votes`)
+ ) ENGINE=MyISAM DEFAULT CHARSET=utf8;
+
++ -- --------------------------------------------------------
++
++ --
++ -- Table structure for table `poll_elm`
++ --
++
+ CREATE TABLE IF NOT EXISTS `poll_elm` (
+ `pelm_id` int(10) unsigned NOT NULL AUTO_INCREMENT,
+ `pelm_poll` int(10) unsigned NOT NULL DEFAULT '0',
+***************
+*** 823,838 ****
+ KEY `pelm_result` (`pelm_result`)
+ ) ENGINE=MyISAM DEFAULT CHARSET=utf8;
+
+ CREATE TABLE IF NOT EXISTS `profdef` (
+ `id` int(10) unsigned NOT NULL AUTO_INCREMENT,
+ `field_name` char(255) NOT NULL DEFAULT '',
+ `field_type` char(16) NOT NULL DEFAULT '',
+ `field_desc` char(255) NOT NULL DEFAULT '',
+ `field_help` char(255) NOT NULL DEFAULT '',
+! `field_inputs` mediumtext NOT NULL DEFAULT '',
+ PRIMARY KEY (`id`),
+ KEY `field_name` (`field_name`)
+! ) ENGINE=MyISAM DEFAULT CHARSET=utf8;
+
+ CREATE TABLE IF NOT EXISTS `profext` (
+ `id` int(10) unsigned NOT NULL AUTO_INCREMENT,
+--- 1041,1068 ----
+ KEY `pelm_result` (`pelm_result`)
+ ) ENGINE=MyISAM DEFAULT CHARSET=utf8;
+
++ -- --------------------------------------------------------
++
++ --
++ -- Table structure for table `profdef`
++ --
++
+ CREATE TABLE IF NOT EXISTS `profdef` (
+ `id` int(10) unsigned NOT NULL AUTO_INCREMENT,
+ `field_name` char(255) NOT NULL DEFAULT '',
+ `field_type` char(16) NOT NULL DEFAULT '',
+ `field_desc` char(255) NOT NULL DEFAULT '',
+ `field_help` char(255) NOT NULL DEFAULT '',
+! `field_inputs` mediumtext NOT NULL,
+ PRIMARY KEY (`id`),
+ KEY `field_name` (`field_name`)
+! ) ENGINE=MyISAM DEFAULT CHARSET=utf8;
+!
+! -- --------------------------------------------------------
+!
+! --
+! -- Table structure for table `profext`
+! --
+
+ CREATE TABLE IF NOT EXISTS `profext` (
+ `id` int(10) unsigned NOT NULL AUTO_INCREMENT,
+***************
+*** 844,882 ****
+ KEY `channel_id` (`channel_id`),
+ KEY `hash` (`hash`),
+ KEY `k` (`k`)
+! ) ENGINE=MyISAM DEFAULT CHARSET=utf8;
+
+ CREATE TABLE IF NOT EXISTS `profile` (
+ `id` int(11) NOT NULL AUTO_INCREMENT,
+ `profile_guid` char(64) NOT NULL DEFAULT '',
+ `aid` int(10) unsigned NOT NULL DEFAULT '0',
+! `uid` int(11) NOT NULL,
+! `profile_name` char(255) NOT NULL,
+ `is_default` tinyint(1) NOT NULL DEFAULT '0',
+ `hide_friends` tinyint(1) NOT NULL DEFAULT '0',
+! `name` char(255) NOT NULL,
+! `pdesc` char(255) NOT NULL,
+ `chandesc` text NOT NULL,
+ `dob` char(32) NOT NULL DEFAULT '0000-00-00',
+ `dob_tz` char(255) NOT NULL DEFAULT 'UTC',
+! `address` char(255) NOT NULL,
+! `locality` char(255) NOT NULL,
+! `region` char(255) NOT NULL,
+! `postal_code` char(32) NOT NULL,
+! `country_name` char(255) NOT NULL,
+! `hometown` char(255) NOT NULL,
+! `gender` char(32) NOT NULL,
+! `marital` char(255) NOT NULL,
+ `with` text NOT NULL,
+ `howlong` datetime NOT NULL DEFAULT '0000-00-00 00:00:00',
+! `sexual` char(255) NOT NULL,
+! `politic` char(255) NOT NULL,
+! `religion` char(255) NOT NULL,
+ `keywords` text NOT NULL,
+ `likes` text NOT NULL,
+ `dislikes` text NOT NULL,
+ `about` text NOT NULL,
+! `summary` char(255) NOT NULL,
+ `music` text NOT NULL,
+ `book` text NOT NULL,
+ `tv` text NOT NULL,
+--- 1074,1118 ----
+ KEY `channel_id` (`channel_id`),
+ KEY `hash` (`hash`),
+ KEY `k` (`k`)
+! ) ENGINE=MyISAM DEFAULT CHARSET=utf8;
+!
+! -- --------------------------------------------------------
+!
+! --
+! -- Table structure for table `profile`
+! --
+
+ CREATE TABLE IF NOT EXISTS `profile` (
+ `id` int(11) NOT NULL AUTO_INCREMENT,
+ `profile_guid` char(64) NOT NULL DEFAULT '',
+ `aid` int(10) unsigned NOT NULL DEFAULT '0',
+! `uid` int(11) NOT NULL DEFAULT '0',
+! `profile_name` char(255) NOT NULL DEFAULT '',
+ `is_default` tinyint(1) NOT NULL DEFAULT '0',
+ `hide_friends` tinyint(1) NOT NULL DEFAULT '0',
+! `name` char(255) NOT NULL DEFAULT '',
+! `pdesc` char(255) NOT NULL DEFAULT '',
+ `chandesc` text NOT NULL,
+ `dob` char(32) NOT NULL DEFAULT '0000-00-00',
+ `dob_tz` char(255) NOT NULL DEFAULT 'UTC',
+! `address` char(255) NOT NULL DEFAULT '',
+! `locality` char(255) NOT NULL DEFAULT '',
+! `region` char(255) NOT NULL DEFAULT '',
+! `postal_code` char(32) NOT NULL DEFAULT '',
+! `country_name` char(255) NOT NULL DEFAULT '',
+! `hometown` char(255) NOT NULL DEFAULT '',
+! `gender` char(32) NOT NULL DEFAULT '',
+! `marital` char(255) NOT NULL DEFAULT '',
+ `with` text NOT NULL,
+ `howlong` datetime NOT NULL DEFAULT '0000-00-00 00:00:00',
+! `sexual` char(255) NOT NULL DEFAULT '',
+! `politic` char(255) NOT NULL DEFAULT '',
+! `religion` char(255) NOT NULL DEFAULT '',
+ `keywords` text NOT NULL,
+ `likes` text NOT NULL,
+ `dislikes` text NOT NULL,
+ `about` text NOT NULL,
+! `summary` char(255) NOT NULL DEFAULT '',
+ `music` text NOT NULL,
+ `book` text NOT NULL,
+ `tv` text NOT NULL,
+***************
+*** 887,895 ****
+ `education` text NOT NULL,
+ `contact` text NOT NULL,
+ `channels` text NOT NULL,
+! `homepage` char(255) NOT NULL,
+! `photo` char(255) NOT NULL,
+! `thumb` char(255) NOT NULL,
+ `publish` tinyint(1) NOT NULL DEFAULT '0',
+ PRIMARY KEY (`id`),
+ UNIQUE KEY `guid` (`profile_guid`,`uid`),
+--- 1123,1131 ----
+ `education` text NOT NULL,
+ `contact` text NOT NULL,
+ `channels` text NOT NULL,
+! `homepage` char(255) NOT NULL DEFAULT '',
+! `photo` char(255) NOT NULL DEFAULT '',
+! `thumb` char(255) NOT NULL DEFAULT '',
+ `publish` tinyint(1) NOT NULL DEFAULT '0',
+ PRIMARY KEY (`id`),
+ UNIQUE KEY `guid` (`profile_guid`,`uid`),
+***************
+*** 908,920 ****
+ KEY `profile_guid` (`profile_guid`)
+ ) ENGINE=MyISAM DEFAULT CHARSET=utf8;
+
+ CREATE TABLE IF NOT EXISTS `profile_check` (
+ `id` int(10) unsigned NOT NULL AUTO_INCREMENT,
+! `uid` int(10) unsigned NOT NULL,
+ `cid` int(10) unsigned NOT NULL DEFAULT '0',
+! `dfrn_id` char(255) NOT NULL,
+! `sec` char(255) NOT NULL,
+! `expire` int(11) NOT NULL,
+ PRIMARY KEY (`id`),
+ KEY `uid` (`uid`),
+ KEY `cid` (`cid`),
+--- 1144,1162 ----
+ KEY `profile_guid` (`profile_guid`)
+ ) ENGINE=MyISAM DEFAULT CHARSET=utf8;
+
++ -- --------------------------------------------------------
++
++ --
++ -- Table structure for table `profile_check`
++ --
++
+ CREATE TABLE IF NOT EXISTS `profile_check` (
+ `id` int(10) unsigned NOT NULL AUTO_INCREMENT,
+! `uid` int(10) unsigned NOT NULL DEFAULT '0',
+ `cid` int(10) unsigned NOT NULL DEFAULT '0',
+! `dfrn_id` char(255) NOT NULL DEFAULT '',
+! `sec` char(255) NOT NULL DEFAULT '',
+! `expire` int(11) NOT NULL DEFAULT '0',
+ PRIMARY KEY (`id`),
+ KEY `uid` (`uid`),
+ KEY `cid` (`cid`),
+***************
+*** 923,951 ****
+ KEY `expire` (`expire`)
+ ) ENGINE=MyISAM DEFAULT CHARSET=utf8;
+
+ CREATE TABLE IF NOT EXISTS `register` (
+ `id` int(10) unsigned NOT NULL AUTO_INCREMENT,
+! `hash` char(255) NOT NULL,
+! `created` datetime NOT NULL,
+! `uid` int(10) unsigned NOT NULL,
+! `password` char(255) NOT NULL,
+! `language` char(16) NOT NULL,
+ PRIMARY KEY (`id`),
+ KEY `hash` (`hash`),
+ KEY `created` (`created`),
+ KEY `uid` (`uid`)
+! ) ENGINE=MyISAM DEFAULT CHARSET=utf8;
+
+ CREATE TABLE IF NOT EXISTS `session` (
+ `id` bigint(20) unsigned NOT NULL AUTO_INCREMENT,
+! `sid` char(255) NOT NULL,
+ `data` text NOT NULL,
+! `expire` bigint(20) unsigned NOT NULL,
+ PRIMARY KEY (`id`),
+ KEY `sid` (`sid`),
+ KEY `expire` (`expire`)
+ ) ENGINE=MyISAM DEFAULT CHARSET=utf8;
+
+ CREATE TABLE IF NOT EXISTS `shares` (
+ `share_id` int(10) unsigned NOT NULL AUTO_INCREMENT,
+ `share_type` int(11) NOT NULL DEFAULT '0',
+--- 1165,1211 ----
+ KEY `expire` (`expire`)
+ ) ENGINE=MyISAM DEFAULT CHARSET=utf8;
+
++ -- --------------------------------------------------------
++
++ --
++ -- Table structure for table `register`
++ --
++
+ CREATE TABLE IF NOT EXISTS `register` (
+ `id` int(10) unsigned NOT NULL AUTO_INCREMENT,
+! `hash` char(255) NOT NULL DEFAULT '',
+! `created` datetime NOT NULL DEFAULT '0000-00-00 00:00:00',
+! `uid` int(10) unsigned NOT NULL DEFAULT '0',
+! `password` char(255) NOT NULL DEFAULT '',
+! `language` char(16) NOT NULL DEFAULT '',
+ PRIMARY KEY (`id`),
+ KEY `hash` (`hash`),
+ KEY `created` (`created`),
+ KEY `uid` (`uid`)
+! ) ENGINE=MyISAM DEFAULT CHARSET=utf8;
+!
+! -- --------------------------------------------------------
+!
+! --
+! -- Table structure for table `session`
+! --
+
+ CREATE TABLE IF NOT EXISTS `session` (
+ `id` bigint(20) unsigned NOT NULL AUTO_INCREMENT,
+! `sid` char(255) NOT NULL DEFAULT '',
+ `data` text NOT NULL,
+! `expire` bigint(20) unsigned NOT NULL DEFAULT '0',
+ PRIMARY KEY (`id`),
+ KEY `sid` (`sid`),
+ KEY `expire` (`expire`)
+ ) ENGINE=MyISAM DEFAULT CHARSET=utf8;
+
++ -- --------------------------------------------------------
++
++ --
++ -- Table structure for table `shares`
++ --
++
+ CREATE TABLE IF NOT EXISTS `shares` (
+ `share_id` int(10) unsigned NOT NULL AUTO_INCREMENT,
+ `share_type` int(11) NOT NULL DEFAULT '0',
+***************
+*** 957,974 ****
+ KEY `share_xchan` (`share_xchan`)
+ ) ENGINE=MyISAM DEFAULT CHARSET=utf8;
+
+ CREATE TABLE IF NOT EXISTS `sign` (
+ `id` int(10) unsigned NOT NULL AUTO_INCREMENT,
+ `iid` int(10) unsigned NOT NULL DEFAULT '0',
+ `retract_iid` int(10) unsigned NOT NULL DEFAULT '0',
+ `signed_text` mediumtext NOT NULL,
+ `signature` text NOT NULL,
+! `signer` char(255) NOT NULL,
+ PRIMARY KEY (`id`),
+ KEY `iid` (`iid`),
+ KEY `retract_iid` (`retract_iid`)
+ ) ENGINE=MyISAM DEFAULT CHARSET=utf8;
+
+ CREATE TABLE IF NOT EXISTS `site` (
+ `site_url` char(255) NOT NULL,
+ `site_access` int(11) NOT NULL DEFAULT '0',
+--- 1217,1246 ----
+ KEY `share_xchan` (`share_xchan`)
+ ) ENGINE=MyISAM DEFAULT CHARSET=utf8;
+
++ -- --------------------------------------------------------
++
++ --
++ -- Table structure for table `sign`
++ --
++
+ CREATE TABLE IF NOT EXISTS `sign` (
+ `id` int(10) unsigned NOT NULL AUTO_INCREMENT,
+ `iid` int(10) unsigned NOT NULL DEFAULT '0',
+ `retract_iid` int(10) unsigned NOT NULL DEFAULT '0',
+ `signed_text` mediumtext NOT NULL,
+ `signature` text NOT NULL,
+! `signer` char(255) NOT NULL DEFAULT '',
+ PRIMARY KEY (`id`),
+ KEY `iid` (`iid`),
+ KEY `retract_iid` (`retract_iid`)
+ ) ENGINE=MyISAM DEFAULT CHARSET=utf8;
+
++ -- --------------------------------------------------------
++
++ --
++ -- Table structure for table `site`
++ --
++
+ CREATE TABLE IF NOT EXISTS `site` (
+ `site_url` char(255) NOT NULL,
+ `site_access` int(11) NOT NULL DEFAULT '0',
+***************
+*** 988,996 ****
+--- 1260,1275 ----
+ KEY `site_register` (`site_register`),
+ KEY `site_access` (`site_access`),
+ KEY `site_sellpage` (`site_sellpage`),
++ KEY `site_pull` (`site_pull`),
+ KEY `site_realm` (`site_realm`)
+ ) ENGINE=MyISAM DEFAULT CHARSET=utf8;
+
++ -- --------------------------------------------------------
++
++ --
++ -- Table structure for table `source`
++ --
++
+ CREATE TABLE IF NOT EXISTS `source` (
+ `src_id` int(10) unsigned NOT NULL AUTO_INCREMENT,
+ `src_channel_id` int(10) unsigned NOT NULL DEFAULT '0',
+***************
+*** 1003,1014 ****
+ KEY `src_xchan` (`src_xchan`)
+ ) ENGINE=MyISAM DEFAULT CHARSET=utf8;
+
+ CREATE TABLE IF NOT EXISTS `spam` (
+ `id` int(11) NOT NULL AUTO_INCREMENT,
+! `uid` int(11) NOT NULL,
+ `spam` int(11) NOT NULL DEFAULT '0',
+ `ham` int(11) NOT NULL DEFAULT '0',
+! `term` char(255) NOT NULL,
+ `date` datetime NOT NULL DEFAULT '0000-00-00 00:00:00',
+ PRIMARY KEY (`id`),
+ KEY `uid` (`uid`),
+--- 1282,1299 ----
+ KEY `src_xchan` (`src_xchan`)
+ ) ENGINE=MyISAM DEFAULT CHARSET=utf8;
+
++ -- --------------------------------------------------------
++
++ --
++ -- Table structure for table `spam`
++ --
++
+ CREATE TABLE IF NOT EXISTS `spam` (
+ `id` int(11) NOT NULL AUTO_INCREMENT,
+! `uid` int(11) NOT NULL DEFAULT '0',
+ `spam` int(11) NOT NULL DEFAULT '0',
+ `ham` int(11) NOT NULL DEFAULT '0',
+! `term` char(255) NOT NULL DEFAULT '',
+ `date` datetime NOT NULL DEFAULT '0000-00-00 00:00:00',
+ PRIMARY KEY (`id`),
+ KEY `uid` (`uid`),
+***************
+*** 1017,1041 ****
+ 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',
+ `uid` int(10) unsigned NOT NULL DEFAULT '0',
+! `oid` int(10) unsigned NOT NULL,
+! `otype` tinyint(3) unsigned NOT NULL,
+! `type` tinyint(3) unsigned NOT NULL,
+! `term` char(255) NOT NULL,
+! `url` char(255) NOT NULL,
+! `imgurl` char(255) NOT NULL,
+ `term_hash` char(255) NOT NULL DEFAULT '',
+ `parent_hash` char(255) NOT NULL DEFAULT '',
+ PRIMARY KEY (`tid`),
+--- 1302,1338 ----
+ KEY `term` (`term`)
+ ) ENGINE=MyISAM DEFAULT CHARSET=utf8;
+
++ -- --------------------------------------------------------
++
++ --
++ -- Table structure for table `sys_perms`
++ --
++
+ CREATE TABLE IF NOT EXISTS `sys_perms` (
+ `id` int(10) unsigned NOT NULL AUTO_INCREMENT,
+! `cat` char(255) NOT NULL DEFAULT '',
+! `k` char(255) NOT NULL DEFAULT '',
+ `v` mediumtext NOT NULL,
+! `public_perm` tinyint(1) unsigned NOT NULL DEFAULT '0',
+ PRIMARY KEY (`id`)
+ ) ENGINE=MyISAM DEFAULT CHARSET=utf8;
+
++ -- --------------------------------------------------------
++
++ --
++ -- Table structure for table `term`
++ --
++
+ CREATE TABLE IF NOT EXISTS `term` (
+ `tid` int(10) unsigned NOT NULL AUTO_INCREMENT,
+ `aid` int(10) unsigned NOT NULL DEFAULT '0',
+ `uid` int(10) unsigned NOT NULL DEFAULT '0',
+! `oid` int(10) unsigned NOT NULL DEFAULT '0',
+! `otype` tinyint(3) unsigned NOT NULL DEFAULT '0',
+! `type` tinyint(3) unsigned NOT NULL DEFAULT '0',
+! `term` char(255) NOT NULL DEFAULT '',
+! `url` char(255) NOT NULL DEFAULT '',
+! `imgurl` char(255) NOT NULL DEFAULT '',
+ `term_hash` char(255) NOT NULL DEFAULT '',
+ `parent_hash` char(255) NOT NULL DEFAULT '',
+ PRIMARY KEY (`tid`),
+***************
+*** 1050,1071 ****
+ KEY `parent_hash` (`parent_hash`)
+ ) ENGINE=MyISAM DEFAULT CHARSET=utf8;
+
+ CREATE TABLE IF NOT EXISTS `tokens` (
+! `id` varchar(40) NOT NULL,
+ `secret` text NOT NULL,
+! `client_id` varchar(20) NOT NULL,
+! `expires` bigint(20) unsigned NOT NULL,
+! `scope` varchar(200) NOT NULL,
+! `uid` int(11) NOT NULL,
+ PRIMARY KEY (`id`),
+ KEY `client_id` (`client_id`),
+ KEY `expires` (`expires`),
+ KEY `uid` (`uid`)
+ ) ENGINE=MyISAM DEFAULT CHARSET=utf8;
+
+ CREATE TABLE IF NOT EXISTS `updates` (
+ `ud_id` int(10) unsigned NOT NULL AUTO_INCREMENT,
+! `ud_hash` char(128) NOT NULL,
+ `ud_guid` char(255) NOT NULL DEFAULT '',
+ `ud_date` datetime NOT NULL DEFAULT '0000-00-00 00:00:00',
+ `ud_last` datetime NOT NULL DEFAULT '0000-00-00 00:00:00',
+--- 1347,1380 ----
+ KEY `parent_hash` (`parent_hash`)
+ ) ENGINE=MyISAM DEFAULT CHARSET=utf8;
+
++ -- --------------------------------------------------------
++
++ --
++ -- Table structure for table `tokens`
++ --
++
+ CREATE TABLE IF NOT EXISTS `tokens` (
+! `id` varchar(40) NOT NULL DEFAULT '',
+ `secret` text NOT NULL,
+! `client_id` varchar(20) NOT NULL DEFAULT '',
+! `expires` bigint(20) unsigned NOT NULL DEFAULT '0',
+! `scope` varchar(200) NOT NULL DEFAULT '',
+! `uid` int(11) NOT NULL DEFAULT '0',
+ PRIMARY KEY (`id`),
+ KEY `client_id` (`client_id`),
+ KEY `expires` (`expires`),
+ KEY `uid` (`uid`)
+ ) ENGINE=MyISAM DEFAULT CHARSET=utf8;
+
++ -- --------------------------------------------------------
++
++ --
++ -- Table structure for table `updates`
++ --
++
+ CREATE TABLE IF NOT EXISTS `updates` (
+ `ud_id` int(10) unsigned NOT NULL AUTO_INCREMENT,
+! `ud_hash` char(128) NOT NULL DEFAULT '',
+ `ud_guid` char(255) NOT NULL DEFAULT '',
+ `ud_date` datetime NOT NULL DEFAULT '0000-00-00 00:00:00',
+ `ud_last` datetime NOT NULL DEFAULT '0000-00-00 00:00:00',
+***************
+*** 1080,1085 ****
+--- 1389,1400 ----
+ KEY `ud_last` (`ud_last`)
+ ) ENGINE=MyISAM DEFAULT CHARSET=utf8;
+
++ -- --------------------------------------------------------
++
++ --
++ -- Table structure for table `verify`
++ --
++
+ CREATE TABLE IF NOT EXISTS `verify` (
+ `id` int(10) unsigned NOT NULL AUTO_INCREMENT,
+ `channel` int(10) unsigned NOT NULL DEFAULT '0',
+***************
+*** 1095,1100 ****
+--- 1410,1421 ----
+ KEY `created` (`created`)
+ ) ENGINE=MyISAM DEFAULT CHARSET=utf8;
+
++ -- --------------------------------------------------------
++
++ --
++ -- Table structure for table `vote`
++ --
++
+ CREATE TABLE IF NOT EXISTS `vote` (
+ `vote_id` int(10) unsigned NOT NULL AUTO_INCREMENT,
+ `vote_poll` int(11) NOT NULL DEFAULT '0',
+***************
+*** 1107,1112 ****
+--- 1428,1439 ----
+ KEY `vote_element` (`vote_element`)
+ ) ENGINE=MyISAM DEFAULT CHARSET=utf8;
+
++ -- --------------------------------------------------------
++
++ --
++ -- Table structure for table `xchan`
++ --
++
+ CREATE TABLE IF NOT EXISTS `xchan` (
+ `xchan_hash` char(255) NOT NULL,
+ `xchan_guid` char(255) NOT NULL DEFAULT '',
+***************
+*** 1139,1144 ****
+--- 1466,1477 ----
+ KEY `xchan_follow` (`xchan_follow`)
+ ) ENGINE=MyISAM DEFAULT CHARSET=utf8;
+
++ -- --------------------------------------------------------
++
++ --
++ -- Table structure for table `xchat`
++ --
++
+ CREATE TABLE IF NOT EXISTS `xchat` (
+ `xchat_id` int(10) unsigned NOT NULL AUTO_INCREMENT,
+ `xchat_url` char(255) NOT NULL DEFAULT '',
+***************
+*** 1150,1162 ****
+ KEY `xchat_desc` (`xchat_desc`),
+ KEY `xchat_xchan` (`xchat_xchan`),
+ KEY `xchat_edited` (`xchat_edited`)
+! ) ENGINE=MyISAM DEFAULT CHARSET=utf8;
+
+ CREATE TABLE IF NOT EXISTS `xconfig` (
+ `id` int(10) unsigned NOT NULL AUTO_INCREMENT,
+! `xchan` char(255) NOT NULL,
+! `cat` char(255) NOT NULL,
+! `k` char(255) NOT NULL,
+ `v` mediumtext NOT NULL,
+ PRIMARY KEY (`id`),
+ KEY `xchan` (`xchan`),
+--- 1483,1501 ----
+ KEY `xchat_desc` (`xchat_desc`),
+ KEY `xchat_xchan` (`xchat_xchan`),
+ KEY `xchat_edited` (`xchat_edited`)
+! ) ENGINE=MyISAM DEFAULT CHARSET=utf8;
+!
+! -- --------------------------------------------------------
+!
+! --
+! -- Table structure for table `xconfig`
+! --
+
+ CREATE TABLE IF NOT EXISTS `xconfig` (
+ `id` int(10) unsigned NOT NULL AUTO_INCREMENT,
+! `xchan` char(255) NOT NULL DEFAULT '',
+! `cat` char(255) NOT NULL DEFAULT '',
+! `k` char(255) NOT NULL DEFAULT '',
+ `v` mediumtext NOT NULL,
+ PRIMARY KEY (`id`),
+ KEY `xchan` (`xchan`),
+***************
+*** 1164,1169 ****
+--- 1503,1514 ----
+ KEY `k` (`k`)
+ ) ENGINE=MyISAM DEFAULT CHARSET=utf8;
+
++ -- --------------------------------------------------------
++
++ --
++ -- Table structure for table `xign`
++ --
++
+ CREATE TABLE IF NOT EXISTS `xign` (
+ `id` int(10) unsigned NOT NULL AUTO_INCREMENT,
+ `uid` int(11) NOT NULL DEFAULT '0',
+***************
+*** 1173,1178 ****
+--- 1518,1529 ----
+ KEY `xchan` (`xchan`)
+ ) ENGINE=MyISAM DEFAULT CHARSET=utf8;
+
++ -- --------------------------------------------------------
++
++ --
++ -- Table structure for table `xlink`
++ --
++
+ CREATE TABLE IF NOT EXISTS `xlink` (
+ `xlink_id` int(10) unsigned NOT NULL AUTO_INCREMENT,
+ `xlink_xchan` char(255) NOT NULL DEFAULT '',
+***************
+*** 1186,1191 ****
+--- 1537,1548 ----
+ KEY `xlink_rating` (`xlink_rating`)
+ ) ENGINE=MyISAM DEFAULT CHARSET=utf8;
+
++ -- --------------------------------------------------------
++
++ --
++ -- Table structure for table `xprof`
++ --
++
+ CREATE TABLE IF NOT EXISTS `xprof` (
+ `xprof_hash` char(255) NOT NULL,
+ `xprof_age` tinyint(3) unsigned NOT NULL DEFAULT '0',
+***************
+*** 1216,1224 ****
+ KEY `xprof_hometown` (`xprof_hometown`)
+ ) ENGINE=MyISAM DEFAULT CHARSET=utf8;
+
+ CREATE TABLE IF NOT EXISTS `xtag` (
+ `xtag_id` int(10) unsigned NOT NULL AUTO_INCREMENT,
+! `xtag_hash` char(255) NOT NULL,
+ `xtag_term` char(255) NOT NULL DEFAULT '',
+ `xtag_flags` int(11) NOT NULL DEFAULT '0',
+ PRIMARY KEY (`xtag_id`),
+--- 1573,1587 ----
+ KEY `xprof_hometown` (`xprof_hometown`)
+ ) ENGINE=MyISAM DEFAULT CHARSET=utf8;
+
++ -- --------------------------------------------------------
++
++ --
++ -- Table structure for table `xtag`
++ --
++
+ CREATE TABLE IF NOT EXISTS `xtag` (
+ `xtag_id` int(10) unsigned NOT NULL AUTO_INCREMENT,
+! `xtag_hash` char(255) NOT NULL DEFAULT '',
+ `xtag_term` char(255) NOT NULL DEFAULT '',
+ `xtag_flags` int(11) NOT NULL DEFAULT '0',
+ PRIMARY KEY (`xtag_id`),
diff --git a/install/migrate-mypg.php b/install/migrate-mypg.php
new file mode 100644
index 000000000..10bf1e387
--- /dev/null
+++ b/install/migrate-mypg.php
@@ -0,0 +1,357 @@
+<?php
+function ask_question($menu, $options, $default) {
+ $r=null;
+ while(!$r) {
+ echo $menu;
+ $str = substr(strtolower(fgets(STDIN)),0,-1);
+ if($str == '')
+ $r = $default;
+ else if(in_array($str, $options))
+ $r = $str;
+ }
+ return $r;
+}
+
+function get_data($prompt, $regex) {
+ do {
+ echo $prompt;
+ $r = substr(fgets(STDIN), 0, -1);
+ if(!preg_match($regex, $prompt))
+ $r = '';
+ } while($r === '');
+ return $r;
+}
+
+function parse_htconfig($file) {
+ if(!file_exists($file))
+ return array();
+ $conf = file_get_contents($file);
+ preg_match_all('/\$db\_(host|port|user|pass|data|type)\s*=\s*\'([[:print:]]+)\'/', $conf, $matches);
+ return array_combine($matches[1], $matches[2]);
+}
+
+function get_configtype(array $data) {
+ if(!isset($data['host'], $data['user'], $data['pass'], $data['data']))
+ return 'none';
+ if($data['type'] == 1)
+ return 'pgsql';
+ return 'mysql';
+}
+
+function phpquote($str) {
+ for($r = '', $x=0, $l=strlen($str); $x < $l; $x++)
+ if($str{$x} == '\'' || $str{$x} == '\\')
+ $r .= '\\' . $str{$x};
+ else
+ $r .= $str{$x};
+ return $r;
+}
+
+function run_sql($file, $db, &$err, &$n) {
+ $sql = file_get_contents($file);
+ $sql = explode(';', $sql);
+ $err = 0; $n = 0;
+ $c = count($sql);
+ if(!$c) {
+ echo "Unknown error.\n";
+ exit();
+ }
+ foreach($sql as $stmt) {
+ if($stmt == '' || $stmt == "\n" || $stmt == "\n\n") {
+ $c--;
+ continue;
+ }
+ $r = $db->exec($stmt);
+ if($r===false) {
+ echo "\nError executing $stmt: ".var_export($db->errorInfo(), true)."\n";
+ $err++;
+ } else {
+ $n++;
+ }
+ if($n % 5 == 0)
+ echo "\033[255DExecuting: $file, $n/$c\033[K";
+ }
+ echo "\n";
+}
+
+$drivers=true;
+if(!class_exists('PDO'))
+ $drivers=false;
+if($drivers) {
+ $drivers = PDO::getAvailableDrivers();
+ if(!in_array('pgsql', $drivers) || !in_array('mysql', $drivers))
+ $drivers = false;
+}
+if(!$drivers) {
+ echo "Sorry. This migration tool requires both mysql and pgsql PDO drivers.\n";
+ $r = ask_question("If you are on dreamhost you can enable them. This might work on other shared hosts too. Type 'n' to do it yourself.\nWould you like to try (Y/n)? ", array('y', 'n'), 'y');
+ if($r=='y') {
+ $path = $_SERVER['HOME'] . '/.php/5.4';
+ if(!file_exists($path))
+ mkdir($path, 0770, true);
+
+ $rcfile = $path . '/phprc';
+
+ $str = '';
+ $mods = get_loaded_extensions();
+ foreach(array('pdo_mysql','pdo_pgsql','pgsql') as $ext)
+ if(!in_array($ext, $mods))
+ $str .= 'extension=' . $ext . ".so\n";
+
+ file_put_contents($rcfile, $str, FILE_APPEND );
+ echo "drivers enabled.\nNow type: \033[1m/usr/local/bin/php-5.4 install/".basename($argv[0])."\033[0m\n";
+ }
+ exit();
+}
+
+foreach(array('install','include','mod','view') as $dir) {
+ if(!file_exists($dir)) {
+ echo "You must execute from inside the webroot like the cron\n";
+ exit();
+ }
+}
+
+$cfgfile = '.htconfig.php';
+if($argv[1] == '--resume') {
+ if($argc < 4) {
+ echo "Resume usage {$argv[0]} --resume <table> <row>\n";
+ exit();
+ }
+ $starttable = $argv[2];
+ $startrow = $argv[3];
+ $cfgfile = '.htconfig.php-mysql';
+}
+
+$cfg = parse_htconfig($cfgfile);
+$type = get_configtype($cfg);
+if($type != 'mysql') {
+ echo "Error. Must start with standard mysql installation in .htconfig.php.\n";
+ exit();
+}
+
+if(!$cfg['port'])
+ $cfg['port'] = 3306;
+try {
+ $mydb = new PDO("mysql:host={$cfg['host']};dbname={$cfg['data']};port={$cfg['port']}", $cfg['user'], $cfg['pass']);
+} catch (PDOException $e) {
+ echo "Error connecting to mysql DB: " . $e->getMessage() . "\n";
+ exit();
+}
+
+// mysql insists on buffering even when you use fetch() instead of fetchAll() for some stupid reason
+// http://stackoverflow.com/questions/6895098/pdo-mysql-memory-consumption-with-large-result-set
+$mydb->setAttribute(PDO::MYSQL_ATTR_USE_BUFFERED_QUERY, false);
+
+if(!file_exists('.htconfig.php-pgsql')) {
+ echo "Enter postgres server info:\n";
+ $p['host'] = get_data("Hostname: ", '/[\w.]+/');
+ $p['port'] = get_data("Enter port (0 for default): ", '/\d+/');
+ $p['user'] = get_data("Username: ", '/\w+/');
+ $p['pass'] = get_data("Password: ", '/[[:print:]]+/');
+ $p['data'] = get_data("Database name: ", '/\w+/');
+ $old = file_get_contents('.htconfig.php');
+ $new = preg_replace(
+ array(
+ '/^(\$db_host\s*=\s*\')([\w.]+)(\';)$/m',
+ '/^(\$db_port\s*=\s*\')(\d+)(\';)$/m',
+ '/^(\$db_user\s*=\s*\')(\w+)(\';)$/m',
+ '/^(\$db_pass\s*=\s*\')([[:print:]]+)(\';)/m',
+ '/^(\$db_data\s*=\s*\')(\w+)(\';)$/m',
+ '/^(\$db_type\s*=\s*\')(\d)(\';)$/m' // in case they already have it
+ ), array(
+ "$1{$p['host']}$3",
+ "\${1}{$p['port']}$3",
+ "$1{$p['user']}$3",
+ "$1{$p['pass']}$3",
+ "$1{$p['data']}$3\n\$db_type = '1';\n", // they probably don't
+ "\${1}1$3"
+ ),
+ $old,
+ 1,
+ $repl
+ );
+ if($new === false || $repl < 5) {
+ echo "Failed. Please make a postgres config file named .htconfig.php-pgsql - Be sure to add \"\$db_type = '1';\" to your config.\n";
+ exit();
+ }
+ file_put_contents('.htconfig.php-pgsql', $new);
+}
+
+$pcfg = parse_htconfig('.htconfig.php-pgsql');
+$ptype = get_configtype($pcfg);
+if($ptype != 'pgsql') {
+ echo "Error. Must have a valid pgsql config named .htconfig.php-pgsql. Be sure to add \"\$db_type = '1';\" to your config.\n";
+ exit();
+}
+
+if(!$pcfg['port'])
+ $pcfg['port'] = 5432;
+try {
+ $pgdb = new PDO("pgsql:host={$pcfg['host']};dbname={$pcfg['data']};port={$pcfg['port']}", $pcfg['user'], $pcfg['pass']);
+} catch (PDOException $e) {
+ echo "Error connecting to pgsql DB: " . $e->getMessage() . "\n";
+ echo "cfg string: " . "pgsql:host={$pcfg['host']};dbname={$pcfg['data']};port={$pcfg['port']}\n";
+ exit();
+}
+$B = "\033[0;34m";
+$H = "\033[0;35m";
+$W = "\033[1;37m";
+$M = "\033[1;31m";
+$N = "\033[0m";
+
+if(isset($starttable)) {
+ $r = ask_question("Ready to migrate {$W}Red{$M}(#){$W}Matrix$N from mysql db @$B{$cfg['host']}$N/$B{$cfg['data']}$N to postgres db @$B{$pcfg['host']}$N/$B{$pcfg['data']}$N.
+
+Resuming failed migration ({$M}experimental$N) starting at table '$starttable' row $startrow.
+Are you ready to begin (N/y)? ",
+ array('y', 'n'),
+ 'n'
+ );
+ if($r == 'n')
+ exit();
+} else {
+ $r = ask_question("Ready to migrate {$W}Red{$M}(#){$W}Matrix$N from mysql db @$B{$cfg['host']}$N/$B{$cfg['data']}$N to postgres db @$B{$pcfg['host']}$N/$B{$pcfg['data']}$N.
+The site will be disabled during the migration by moving the $H.htconfig.php$N file to $H.htconfig.php-mysql$N.
+If for any reason the migration fails, you will need to move the config file back into place manually before trying again.
+
+Are you ready to begin (N/y)? ", array('y','n'), 'n'
+ );
+
+ if($r == 'n')
+ exit();
+
+ rename('.htconfig.php', '.htconfig.php-mysql');
+
+ run_sql('install/schema_postgres.sql', $pgdb, $err, $n);
+ if($err) {
+ echo "There were $err errors creating the pgsql schema. Unable to continue.\n";
+ exit();
+ }
+
+ echo "pgsql schema created. $n queries executed successfully.\n";
+}
+
+$res = $pgdb->query("select relname, attname, pg_type.typname from ((pg_attribute inner join pg_class on attrelid=pg_class.oid) inner join pg_type on atttypid=pg_type.oid) inner join pg_namespace on relnamespace=pg_namespace.oid where nspname='public' and atttypid not in (26,27,28,29) and relkind='r' and attname <> 'item_search_vector';");
+if($res === false) {
+ echo "Error reading back schema. Unable to continue.\n";
+ var_export($pgdb->errorInfo());
+ exit();
+}
+$schema = array();
+while(($row = $res->fetch()) !== false)
+ $schema[$row[0]][$row[1]] = $row[2];
+
+$res = $pgdb->query("select relname, attname from pg_attribute inner join pg_class on attrelid=pg_class.oid inner join pg_constraint on conrelid=pg_class.oid and pg_attribute.attnum = any (conkey) where contype='p';");
+if($res === false) {
+ echo "Error reading back primary keys. Unable to continue.\n";
+ var_export($pgdb->errorInfo());
+ exit();
+}
+$pkeys = array();
+while(($row = $res->fetch()) !== false)
+ $pkeys[$row[0]] = $row[1];
+
+$err = 0; $n = 0;
+$reserved = array('ignore','key','with');
+foreach($schema as $table=>$fields) {
+ if(isset($starttable) && !$n && $table != $starttable) {
+ echo "Skipping table $table\n";
+ continue;
+ }
+ $fnames = array_keys($fields);
+ $pfnames = array_keys($fields);
+
+ foreach($fnames as &$fname)
+ if(in_array($fname, $reserved))
+ $fname = '`' . $fname . '`';
+ $fstr = implode(',', $fnames);
+
+ foreach($pfnames as &$pfname)
+ if(in_array($pfname, $reserved))
+ $pfname = '"' . $pfname . '"';
+ $pfstr = implode(',', $pfnames);
+
+ $cres = $mydb->query("SELECT count(*) FROM $table;");
+ if($cres === false) {
+ echo "Fatal error counting table $table: ".var_export($mydb->errorInfo(), true)."\n";
+ exit();
+ }
+ $nrows = $cres->fetchColumn(0);
+ $cres->closeCursor();
+
+ if(!$nrows) {
+ echo "TABLE $table has 0 rows in mysql db.\n";
+ continue;
+ }
+
+ $pstr = '';
+ for($x=0, $c=count($fields); $x < $c; $x++)
+ $pstr .= ($x ? ',?' : '?');
+
+ if(isset($starttable) && $table == $starttable) {
+ $selectsql = "SELECT $fstr FROM $table ORDER BY {$pkeys[$table]} LIMIT $nrows OFFSET $startrow;";
+ $crow = $startrow;
+ } else {
+ $selectsql = "SELECT $fstr FROM $table ORDER BY {$pkeys[$table]};";
+ $crow = 0;
+ }
+
+ echo "\033[255DTABLE: $table [$c fields] $crow/$nrows (".number_format(($crow/$nrows)*100,2)."%)\033[K";
+
+ $res = $mydb->query($selectsql);
+ if($res === false) {
+ echo "Fatal Error importing table $table: ".var_export($mydb->errorInfo(), true)."\n";
+ exit();
+ }
+
+ $istmt = $pgdb->prepare("INSERT INTO $table ($pfstr) VALUES ($pstr);");
+ if($istmt === false) {
+ echo "Fatal error preparing query. Aborting.\n";
+ var_export($pgdb->errorInfo());
+ exit();
+ }
+
+ while(($row = $res->fetch(PDO::FETCH_NUM)) !== false) {
+ foreach($row as $idx => &$val)
+ if(array_slice(array_values($fields),$idx,1)[0] == 'timestamp' && $val == '0000-00-00 00:00:00')
+ $istmt->bindParam($idx+1, ($nulldate='0001-01-01 00:00:00'));
+ else if(array_slice(array_values($fields),$idx,1)[0] == 'bytea')
+ $istmt->bindParam($idx+1, $val, PDO::PARAM_LOB);
+ else
+ $istmt->bindParam($idx+1, $val);
+ $r = $istmt->execute();
+ if($r === false) {
+ $err++;
+ echo "Insert error: ".var_export(array($pgdb->errorInfo(), $table, $fields, $row), true)."\nResume with {$argv[0]} --resume $table $crow\n";
+ exit();
+ } else
+ $n++;
+ $crow++;
+ if(($crow % 10) == 0 || $crow == $nrows)
+ echo "\033[255DTABLE: $table [$c fields] $crow/$nrows (".number_format(($crow/$nrows)*100,2)."%)\033[K";
+ }
+ $res->closeCursor();
+ echo "\n";
+}
+
+echo "Done with $err errors and $n inserts.\n";
+if($err) {
+ echo "Migration had errors. Aborting.\n";
+ exit();
+}
+
+run_sql('install/migrate_mypg_fixseq.sql', $pgdb, $err, $n);
+echo "Sequences updated with $err errors and $n inserts.\n";
+if($err)
+ exit();
+
+$r = ask_question("Everything successful. Once you connect up the pg database there is no going back. Do you want to make it live (N,y)?", array('y', 'n'), 'n');
+if($r == 'n') {
+ echo "You can make active by renaming .htconfig.php-pgsql to .htconfig.php, or start over by renaming .htconfig.php-mysql to .htconfig.php\n";
+ exit();
+}
+
+rename('.htconfig.php-pgsql', '.htconfig.php');
+echo "Done. {$W}Red{$M}(#){$W}Matrix$N now running on postgres.\n";
+
+
diff --git a/install/migrate_mypg_fixseq.sql b/install/migrate_mypg_fixseq.sql
new file mode 100644
index 000000000..806c5cf31
--- /dev/null
+++ b/install/migrate_mypg_fixseq.sql
@@ -0,0 +1,55 @@
+ SELECT SETVAL('public.abook_abook_id_seq', COALESCE(MAX(abook_id), 1) ) FROM public.abook;
+ SELECT SETVAL('public.account_account_id_seq', COALESCE(MAX(account_id), 1) ) FROM public.account;
+ SELECT SETVAL('public.addon_id_seq', COALESCE(MAX(id), 1) ) FROM public.addon;
+ SELECT SETVAL('public.app_id_seq', COALESCE(MAX(id), 1) ) FROM public.app;
+ SELECT SETVAL('public.attach_id_seq', COALESCE(MAX(id), 1) ) FROM public.attach;
+ SELECT SETVAL('public.channel_channel_id_seq', COALESCE(MAX(channel_id), 1) ) FROM public.channel;
+ SELECT SETVAL('public.chat_chat_id_seq', COALESCE(MAX(chat_id), 1) ) FROM public.chat;
+ SELECT SETVAL('public.chatpresence_cp_id_seq', COALESCE(MAX(cp_id), 1) ) FROM public.chatpresence;
+ SELECT SETVAL('public.chatroom_cr_id_seq', COALESCE(MAX(cr_id), 1) ) FROM public.chatroom;
+ SELECT SETVAL('public.config_id_seq', COALESCE(MAX(id), 1) ) FROM public.config;
+ SELECT SETVAL('public.conv_id_seq', COALESCE(MAX(id), 1) ) FROM public.conv;
+ SELECT SETVAL('public.event_id_seq', COALESCE(MAX(id), 1) ) FROM public.event;
+ SELECT SETVAL('public.fcontact_id_seq', COALESCE(MAX(id), 1) ) FROM public.fcontact;
+ SELECT SETVAL('public.ffinder_id_seq', COALESCE(MAX(id), 1) ) FROM public.ffinder;
+ SELECT SETVAL('public.fserver_id_seq', COALESCE(MAX(id), 1) ) FROM public.fserver;
+ SELECT SETVAL('public.fsuggest_id_seq', COALESCE(MAX(id), 1) ) FROM public.fsuggest;
+ SELECT SETVAL('public.group_member_id_seq', COALESCE(MAX(id), 1) ) FROM public.group_member;
+ SELECT SETVAL('public.groups_id_seq', COALESCE(MAX(id), 1) ) FROM public.groups;
+ SELECT SETVAL('public.hook_id_seq', COALESCE(MAX(id), 1) ) FROM public.hook;
+ SELECT SETVAL('public.hubloc_hubloc_id_seq', COALESCE(MAX(hubloc_id), 1) ) FROM public.hubloc;
+ SELECT SETVAL('public.issue_issue_id_seq', COALESCE(MAX(issue_id), 1) ) FROM public.issue;
+ SELECT SETVAL('public.item_id_id_seq', COALESCE(MAX(id), 1) ) FROM public.item_id;
+ SELECT SETVAL('public.item_id_seq', COALESCE(MAX(id), 1) ) FROM public.item;
+ SELECT SETVAL('public.likes_id_seq', COALESCE(MAX(id), 1) ) FROM public.likes;
+ SELECT SETVAL('public.mail_id_seq', COALESCE(MAX(id), 1) ) FROM public.mail;
+ SELECT SETVAL('public.manage_id_seq', COALESCE(MAX(id), 1) ) FROM public.manage;
+ SELECT SETVAL('public.menu_item_mitem_id_seq', COALESCE(MAX(mitem_id), 1) ) FROM public.menu_item;
+ SELECT SETVAL('public.menu_menu_id_seq', COALESCE(MAX(menu_id), 1) ) FROM public.menu;
+ SELECT SETVAL('public.notify_id_seq', COALESCE(MAX(id), 1) ) FROM public.notify;
+ SELECT SETVAL('public.obj_obj_id_seq', COALESCE(MAX(obj_id), 1) ) FROM public.obj;
+ SELECT SETVAL('public.pconfig_id_seq', COALESCE(MAX(id), 1) ) FROM public.pconfig;
+ SELECT SETVAL('public.photo_id_seq', COALESCE(MAX(id), 1) ) FROM public.photo;
+ SELECT SETVAL('public.poll_elm_pelm_id_seq', COALESCE(MAX(pelm_id), 1) ) FROM public.poll_elm;
+ SELECT SETVAL('public.poll_poll_id_seq', COALESCE(MAX(poll_id), 1) ) FROM public.poll;
+ SELECT SETVAL('public.profdef_id_seq', COALESCE(MAX(id), 1) ) FROM public.profdef;
+ SELECT SETVAL('public.profext_id_seq', COALESCE(MAX(id), 1) ) FROM public.profext;
+ SELECT SETVAL('public.profile_check_id_seq', COALESCE(MAX(id), 1) ) FROM public.profile_check;
+ SELECT SETVAL('public.profile_id_seq', COALESCE(MAX(id), 1) ) FROM public.profile;
+ SELECT SETVAL('public.register_id_seq', COALESCE(MAX(id), 1) ) FROM public.register;
+ SELECT SETVAL('public.session_id_seq', COALESCE(MAX(id), 1) ) FROM public.session;
+ SELECT SETVAL('public.shares_share_id_seq', COALESCE(MAX(share_id), 1) ) FROM public.shares;
+ SELECT SETVAL('public.sign_id_seq', COALESCE(MAX(id), 1) ) FROM public.sign;
+ SELECT SETVAL('public.source_src_id_seq', COALESCE(MAX(src_id), 1) ) FROM public.source;
+ SELECT SETVAL('public.spam_id_seq', COALESCE(MAX(id), 1) ) FROM public.spam;
+ SELECT SETVAL('public.sys_perms_id_seq', COALESCE(MAX(id), 1) ) FROM public.sys_perms;
+ SELECT SETVAL('public.term_tid_seq', COALESCE(MAX(tid), 1) ) FROM public.term;
+ SELECT SETVAL('public.updates_ud_id_seq', COALESCE(MAX(ud_id), 1) ) FROM public.updates;
+ SELECT SETVAL('public.verify_id_seq', COALESCE(MAX(id), 1) ) FROM public.verify;
+ SELECT SETVAL('public.vote_vote_id_seq', COALESCE(MAX(vote_id), 1) ) FROM public.vote;
+ SELECT SETVAL('public.xchat_xchat_id_seq', COALESCE(MAX(xchat_id), 1) ) FROM public.xchat;
+ SELECT SETVAL('public.xconfig_id_seq', COALESCE(MAX(id), 1) ) FROM public.xconfig;
+ SELECT SETVAL('public.xign_id_seq', COALESCE(MAX(id), 1) ) FROM public.xign;
+ SELECT SETVAL('public.xlink_xlink_id_seq', COALESCE(MAX(xlink_id), 1) ) FROM public.xlink;
+ SELECT SETVAL('public.xtag_xtag_id_seq', COALESCE(MAX(xtag_id), 1) ) FROM public.xtag;
+
diff --git a/install/database.sql b/install/schema_mysql.sql
index a49bd377c..ce3f07a89 100644
--- a/install/database.sql
+++ b/install/schema_mysql.sql
@@ -1,15 +1,13 @@
-SET SQL_MODE="NO_AUTO_VALUE_ON_ZERO";
-
-/*!40101 SET @OLD_CHARACTER_SET_CLIENT=@@CHARACTER_SET_CLIENT */;
-/*!40101 SET @OLD_CHARACTER_SET_RESULTS=@@CHARACTER_SET_RESULTS */;
-/*!40101 SET @OLD_COLLATION_CONNECTION=@@COLLATION_CONNECTION */;
-/*!40101 SET NAMES utf8 */;
+-- --------------------------------------------------------
+--
+-- Table structure for table `abook`
+--
CREATE TABLE IF NOT EXISTS `abook` (
`abook_id` int(10) unsigned NOT NULL AUTO_INCREMENT,
- `abook_account` int(10) unsigned NOT NULL,
- `abook_channel` int(10) unsigned NOT NULL,
+ `abook_account` int(10) unsigned NOT NULL DEFAULT '0',
+ `abook_channel` int(10) unsigned NOT NULL DEFAULT '0',
`abook_xchan` char(255) NOT NULL DEFAULT '',
`abook_my_perms` int(11) NOT NULL DEFAULT '0',
`abook_their_perms` int(11) NOT NULL DEFAULT '0',
@@ -37,6 +35,12 @@ CREATE TABLE IF NOT EXISTS `abook` (
KEY `abook_rating` (`abook_rating`)
) ENGINE=MyISAM DEFAULT CHARSET=utf8;
+-- --------------------------------------------------------
+
+--
+-- Table structure for table `account`
+--
+
CREATE TABLE IF NOT EXISTS `account` (
`account_id` int(10) unsigned NOT NULL AUTO_INCREMENT,
`account_parent` int(10) unsigned NOT NULL DEFAULT '0',
@@ -70,10 +74,16 @@ CREATE TABLE IF NOT EXISTS `account` (
KEY `account_password_changed` (`account_password_changed`)
) ENGINE=MyISAM DEFAULT CHARSET=utf8;
+-- --------------------------------------------------------
+
+--
+-- Table structure for table `addon`
+--
+
CREATE TABLE IF NOT EXISTS `addon` (
`id` int(11) NOT NULL AUTO_INCREMENT,
- `name` char(255) NOT NULL,
- `version` char(255) NOT NULL,
+ `name` char(255) NOT NULL DEFAULT '',
+ `version` char(255) NOT NULL DEFAULT '',
`installed` tinyint(1) NOT NULL DEFAULT '0',
`hidden` tinyint(1) NOT NULL DEFAULT '0',
`timestamp` bigint(20) NOT NULL DEFAULT '0',
@@ -84,6 +94,11 @@ CREATE TABLE IF NOT EXISTS `addon` (
KEY `installed` (`installed`)
) ENGINE=MyISAM DEFAULT CHARSET=utf8;
+-- --------------------------------------------------------
+
+--
+-- Table structure for table `app`
+--
CREATE TABLE IF NOT EXISTS `app` (
`id` int(11) NOT NULL AUTO_INCREMENT,
@@ -108,8 +123,13 @@ CREATE TABLE IF NOT EXISTS `app` (
KEY `app_version` (`app_version`),
KEY `app_channel` (`app_channel`),
KEY `app_price` (`app_price`)
-) ENGINE=MyISAM DEFAULT CHARSET=utf8;
+) ENGINE=MyISAM DEFAULT CHARSET=utf8;
+
+-- --------------------------------------------------------
+--
+-- Table structure for table `attach`
+--
CREATE TABLE IF NOT EXISTS `attach` (
`id` int(10) unsigned NOT NULL AUTO_INCREMENT,
@@ -145,22 +165,40 @@ CREATE TABLE IF NOT EXISTS `attach` (
KEY `creator` (`creator`)
) ENGINE=MyISAM DEFAULT CHARSET=utf8;
+-- --------------------------------------------------------
+
+--
+-- Table structure for table `auth_codes`
+--
+
CREATE TABLE IF NOT EXISTS `auth_codes` (
- `id` varchar(40) NOT NULL,
- `client_id` varchar(20) NOT NULL,
- `redirect_uri` varchar(200) NOT NULL,
- `expires` int(11) NOT NULL,
- `scope` varchar(250) NOT NULL,
+ `id` varchar(40) NOT NULL DEFAULT '',
+ `client_id` varchar(20) NOT NULL DEFAULT '',
+ `redirect_uri` varchar(200) NOT NULL DEFAULT '',
+ `expires` int(11) NOT NULL DEFAULT '0',
+ `scope` varchar(250) NOT NULL DEFAULT '',
PRIMARY KEY (`id`)
) ENGINE=MyISAM DEFAULT CHARSET=utf8;
+-- --------------------------------------------------------
+
+--
+-- Table structure for table `cache`
+--
+
CREATE TABLE IF NOT EXISTS `cache` (
- `k` char(255) NOT NULL,
+ `k` char(255) NOT NULL DEFAULT '',
`v` text NOT NULL,
- `updated` datetime NOT NULL,
+ `updated` datetime NOT NULL DEFAULT '0000-00-00 00:00:00',
PRIMARY KEY (`k`)
) ENGINE=MyISAM DEFAULT CHARSET=utf8;
+-- --------------------------------------------------------
+
+--
+-- Table structure for table `channel`
+--
+
CREATE TABLE IF NOT EXISTS `channel` (
`channel_id` int(10) unsigned NOT NULL AUTO_INCREMENT,
`channel_account_id` int(10) unsigned NOT NULL DEFAULT '0',
@@ -189,24 +227,24 @@ CREATE TABLE IF NOT EXISTS `channel` (
`channel_allow_gid` mediumtext NOT NULL,
`channel_deny_cid` mediumtext NOT NULL,
`channel_deny_gid` mediumtext NOT NULL,
- `channel_r_stream` int(10) unsigned NOT NULL DEFAULT '128',
- `channel_r_profile` int(10) unsigned NOT NULL DEFAULT '128',
- `channel_r_photos` int(10) unsigned NOT NULL DEFAULT '128',
- `channel_r_abook` int(10) unsigned NOT NULL DEFAULT '128',
- `channel_w_stream` int(10) unsigned NOT NULL DEFAULT '128',
- `channel_w_wall` int(10) unsigned NOT NULL DEFAULT '128',
- `channel_w_tagwall` int(10) unsigned NOT NULL DEFAULT '128',
- `channel_w_comment` int(10) unsigned NOT NULL DEFAULT '128',
- `channel_w_mail` int(10) unsigned NOT NULL DEFAULT '128',
- `channel_w_photos` int(10) unsigned NOT NULL DEFAULT '128',
- `channel_w_chat` int(10) unsigned NOT NULL DEFAULT '128',
+ `channel_r_stream` int(10) unsigned NOT NULL DEFAULT '0',
+ `channel_r_profile` int(10) unsigned NOT NULL DEFAULT '0',
+ `channel_r_photos` int(10) unsigned NOT NULL DEFAULT '0',
+ `channel_r_abook` int(10) unsigned NOT NULL DEFAULT '0',
+ `channel_w_stream` int(10) unsigned NOT NULL DEFAULT '0',
+ `channel_w_wall` int(10) unsigned NOT NULL DEFAULT '0',
+ `channel_w_tagwall` int(10) unsigned NOT NULL DEFAULT '0',
+ `channel_w_comment` int(10) unsigned NOT NULL DEFAULT '0',
+ `channel_w_mail` int(10) unsigned NOT NULL DEFAULT '0',
+ `channel_w_photos` int(10) unsigned NOT NULL DEFAULT '0',
+ `channel_w_chat` int(10) unsigned NOT NULL DEFAULT '0',
`channel_a_delegate` int(10) unsigned NOT NULL DEFAULT '0',
- `channel_r_storage` int(10) unsigned NOT NULL DEFAULT '128',
- `channel_w_storage` int(10) unsigned NOT NULL DEFAULT '128',
- `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_w_like` int(10) unsigned NOT NULL DEFAULT '128',
+ `channel_r_storage` int(10) unsigned NOT NULL DEFAULT '0',
+ `channel_w_storage` int(10) unsigned NOT NULL DEFAULT '0',
+ `channel_r_pages` int(10) unsigned NOT NULL DEFAULT '0',
+ `channel_w_pages` int(10) unsigned NOT NULL DEFAULT '0',
+ `channel_a_republish` int(10) unsigned NOT NULL DEFAULT '0',
+ `channel_w_like` int(10) unsigned NOT NULL DEFAULT '0',
PRIMARY KEY (`channel_id`),
UNIQUE KEY `channel_address_unique` (`channel_address`),
KEY `channel_account_id` (`channel_account_id`),
@@ -241,10 +279,16 @@ 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_w_like` (`channel_w_like`),
- KEY `channel_dirdate` (`channel_dirdate`)
+ KEY `channel_dirdate` (`channel_dirdate`),
+ KEY `channel_w_like` (`channel_w_like`)
) ENGINE=MyISAM DEFAULT CHARSET=utf8;
+-- --------------------------------------------------------
+
+--
+-- Table structure for table `chat`
+--
+
CREATE TABLE IF NOT EXISTS `chat` (
`chat_id` int(10) unsigned NOT NULL AUTO_INCREMENT,
`chat_room` int(10) unsigned NOT NULL DEFAULT '0',
@@ -255,21 +299,33 @@ CREATE TABLE IF NOT EXISTS `chat` (
KEY `chat_room` (`chat_room`),
KEY `chat_xchan` (`chat_xchan`),
KEY `created` (`created`)
-) ENGINE=MyISAM DEFAULT CHARSET=utf8;
+) ENGINE=MyISAM DEFAULT CHARSET=utf8;
+
+-- --------------------------------------------------------
+
+--
+-- Table structure for table `chatpresence`
+--
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_status` char(255) NOT NULL DEFAULT '',
`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;
+) ENGINE=MyISAM DEFAULT CHARSET=utf8;
+
+-- --------------------------------------------------------
+
+--
+-- Table structure for table `chatroom`
+--
CREATE TABLE IF NOT EXISTS `chatroom` (
`cr_id` int(10) unsigned NOT NULL AUTO_INCREMENT,
@@ -290,33 +346,51 @@ CREATE TABLE IF NOT EXISTS `chatroom` (
KEY `cr_created` (`cr_created`),
KEY `cr_edited` (`cr_edited`),
KEY `cr_expire` (`cr_expire`)
-) ENGINE=MyISAM DEFAULT CHARSET=utf8;
+) ENGINE=MyISAM DEFAULT CHARSET=utf8;
+
+-- --------------------------------------------------------
+
+--
+-- Table structure for table `clients`
+--
CREATE TABLE IF NOT EXISTS `clients` (
- `client_id` varchar(20) NOT NULL,
- `pw` varchar(20) NOT NULL,
- `redirect_uri` varchar(200) NOT NULL,
+ `client_id` varchar(20) NOT NULL DEFAULT '',
+ `pw` varchar(20) NOT NULL DEFAULT '',
+ `redirect_uri` varchar(200) NOT NULL DEFAULT '',
`name` text,
`icon` text,
`uid` int(11) NOT NULL DEFAULT '0',
PRIMARY KEY (`client_id`)
) ENGINE=MyISAM DEFAULT CHARSET=utf8;
+-- --------------------------------------------------------
+
+--
+-- Table structure for table `config`
+--
+
CREATE TABLE IF NOT EXISTS `config` (
`id` int(10) unsigned NOT NULL AUTO_INCREMENT,
- `cat` char(255) CHARACTER SET ascii NOT NULL,
- `k` char(255) CHARACTER SET ascii NOT NULL,
+ `cat` char(255) CHARACTER SET ascii NOT NULL DEFAULT '',
+ `k` char(255) CHARACTER SET ascii NOT NULL DEFAULT '',
`v` text NOT NULL,
PRIMARY KEY (`id`),
UNIQUE KEY `access` (`cat`,`k`)
) ENGINE=MyISAM DEFAULT CHARSET=utf8;
+-- --------------------------------------------------------
+
+--
+-- Table structure for table `conv`
+--
+
CREATE TABLE IF NOT EXISTS `conv` (
`id` int(10) unsigned NOT NULL AUTO_INCREMENT,
- `guid` char(255) NOT NULL,
+ `guid` char(255) NOT NULL DEFAULT '',
`recips` mediumtext NOT NULL,
- `uid` int(11) NOT NULL,
- `creator` char(255) NOT NULL,
+ `uid` int(11) NOT NULL DEFAULT '0',
+ `creator` char(255) NOT NULL DEFAULT '',
`created` datetime NOT NULL DEFAULT '0000-00-00 00:00:00',
`updated` datetime NOT NULL DEFAULT '0000-00-00 00:00:00',
`subject` mediumtext NOT NULL,
@@ -325,20 +399,26 @@ CREATE TABLE IF NOT EXISTS `conv` (
KEY `updated` (`updated`)
) ENGINE=MyISAM DEFAULT CHARSET=utf8;
+-- --------------------------------------------------------
+
+--
+-- Table structure for table `event`
+--
+
CREATE TABLE IF NOT EXISTS `event` (
`id` int(11) NOT NULL AUTO_INCREMENT,
`aid` int(10) unsigned NOT NULL DEFAULT '0',
- `uid` int(11) NOT NULL,
+ `uid` int(11) NOT NULL DEFAULT '0',
`event_xchan` char(255) NOT NULL DEFAULT '',
`event_hash` char(255) NOT NULL DEFAULT '',
- `created` datetime NOT NULL,
- `edited` datetime NOT NULL,
- `start` datetime NOT NULL,
- `finish` datetime NOT NULL,
+ `created` datetime NOT NULL DEFAULT '0000-00-00 00:00:00',
+ `edited` datetime NOT NULL DEFAULT '0000-00-00 00:00:00',
+ `start` datetime NOT NULL DEFAULT '0000-00-00 00:00:00',
+ `finish` datetime NOT NULL DEFAULT '0000-00-00 00:00:00',
`summary` text NOT NULL,
`description` text NOT NULL,
`location` text NOT NULL,
- `type` char(255) NOT NULL,
+ `type` char(255) NOT NULL DEFAULT '',
`nofinish` tinyint(1) NOT NULL DEFAULT '0',
`adjust` tinyint(1) NOT NULL DEFAULT '1',
`ignore` tinyint(1) NOT NULL DEFAULT '0',
@@ -357,7 +437,13 @@ CREATE TABLE IF NOT EXISTS `event` (
KEY `aid` (`aid`),
KEY `event_hash` (`event_hash`),
KEY `event_xchan` (`event_xchan`)
-) ENGINE=MyISAM DEFAULT CHARSET=utf8;
+) ENGINE=MyISAM DEFAULT CHARSET=utf8;
+
+-- --------------------------------------------------------
+
+--
+-- Table structure for table `fcontact`
+--
CREATE TABLE IF NOT EXISTS `fcontact` (
`id` int(10) unsigned NOT NULL AUTO_INCREMENT,
@@ -381,6 +467,12 @@ CREATE TABLE IF NOT EXISTS `fcontact` (
KEY `network` (`network`)
) ENGINE=MyISAM DEFAULT CHARSET=utf8;
+-- --------------------------------------------------------
+
+--
+-- Table structure for table `ffinder`
+--
+
CREATE TABLE IF NOT EXISTS `ffinder` (
`id` int(10) unsigned NOT NULL AUTO_INCREMENT,
`uid` int(10) unsigned NOT NULL,
@@ -392,36 +484,54 @@ CREATE TABLE IF NOT EXISTS `ffinder` (
KEY `fid` (`fid`)
) ENGINE=MyISAM DEFAULT CHARSET=utf8;
+-- --------------------------------------------------------
+
+--
+-- Table structure for table `fserver`
+--
+
CREATE TABLE IF NOT EXISTS `fserver` (
`id` int(11) NOT NULL AUTO_INCREMENT,
- `server` char(255) NOT NULL,
- `posturl` char(255) NOT NULL,
+ `server` char(255) NOT NULL DEFAULT '',
+ `posturl` char(255) NOT NULL DEFAULT '',
`key` text NOT NULL,
PRIMARY KEY (`id`),
KEY `server` (`server`),
KEY `posturl` (`posturl`)
) ENGINE=MyISAM DEFAULT CHARSET=utf8;
+-- --------------------------------------------------------
+
+--
+-- Table structure for table `fsuggest`
+--
+
CREATE TABLE IF NOT EXISTS `fsuggest` (
`id` int(11) NOT NULL AUTO_INCREMENT,
- `uid` int(11) NOT NULL,
- `cid` int(11) NOT NULL,
- `name` char(255) NOT NULL,
- `url` char(255) NOT NULL,
- `request` char(255) NOT NULL,
- `photo` char(255) NOT NULL,
+ `uid` int(11) NOT NULL DEFAULT '0',
+ `cid` int(11) NOT NULL DEFAULT '0',
+ `name` char(255) NOT NULL DEFAULT '',
+ `url` char(255) NOT NULL DEFAULT '',
+ `request` char(255) NOT NULL DEFAULT '',
+ `photo` char(255) NOT NULL DEFAULT '',
`note` text NOT NULL,
- `created` datetime NOT NULL,
+ `created` datetime NOT NULL DEFAULT '0000-00-00 00:00:00',
PRIMARY KEY (`id`)
) ENGINE=MyISAM DEFAULT CHARSET=utf8;
+-- --------------------------------------------------------
+
+--
+-- Table structure for table `groups`
+--
+
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,
+ `uid` int(10) unsigned NOT NULL DEFAULT '0',
`visible` tinyint(1) NOT NULL DEFAULT '0',
`deleted` tinyint(1) NOT NULL DEFAULT '0',
- `name` char(255) NOT NULL,
+ `name` char(255) NOT NULL DEFAULT '',
PRIMARY KEY (`id`),
KEY `uid` (`uid`),
KEY `visible` (`visible`),
@@ -429,10 +539,16 @@ CREATE TABLE IF NOT EXISTS `groups` (
KEY `hash` (`hash`)
) ENGINE=MyISAM DEFAULT CHARSET=utf8;
+-- --------------------------------------------------------
+
+--
+-- Table structure for table `group_member`
+--
+
CREATE TABLE IF NOT EXISTS `group_member` (
`id` int(10) unsigned NOT NULL AUTO_INCREMENT,
- `uid` int(10) unsigned NOT NULL,
- `gid` int(10) unsigned NOT NULL,
+ `uid` int(10) unsigned NOT NULL DEFAULT '0',
+ `gid` int(10) unsigned NOT NULL DEFAULT '0',
`xchan` char(255) NOT NULL DEFAULT '',
PRIMARY KEY (`id`),
KEY `uid` (`uid`),
@@ -440,21 +556,33 @@ CREATE TABLE IF NOT EXISTS `group_member` (
KEY `xchan` (`xchan`)
) ENGINE=MyISAM DEFAULT CHARSET=utf8;
+-- --------------------------------------------------------
+
+--
+-- Table structure for table `hook`
+--
+
CREATE TABLE IF NOT EXISTS `hook` (
`id` int(11) NOT NULL AUTO_INCREMENT,
- `hook` char(255) NOT NULL,
- `file` char(255) NOT NULL,
- `function` char(255) NOT NULL,
+ `hook` char(255) NOT NULL DEFAULT '',
+ `file` char(255) NOT NULL DEFAULT '',
+ `function` char(255) NOT NULL DEFAULT '',
`priority` int(11) unsigned NOT NULL DEFAULT '0',
PRIMARY KEY (`id`),
KEY `hook` (`hook`)
) ENGINE=MyISAM DEFAULT CHARSET=utf8;
+-- --------------------------------------------------------
+
+--
+-- Table structure for table `hubloc`
+--
+
CREATE TABLE IF NOT EXISTS `hubloc` (
`hubloc_id` int(10) unsigned NOT NULL AUTO_INCREMENT,
`hubloc_guid` char(255) NOT NULL DEFAULT '',
`hubloc_guid_sig` text NOT NULL,
- `hubloc_hash` char(255) NOT NULL,
+ `hubloc_hash` char(255) NOT NULL DEFAULT '',
`hubloc_addr` char(255) NOT NULL DEFAULT '',
`hubloc_network` char(32) NOT NULL DEFAULT '',
`hubloc_flags` int(10) unsigned NOT NULL DEFAULT '0',
@@ -474,20 +602,26 @@ CREATE TABLE IF NOT EXISTS `hubloc` (
KEY `hubloc_connect` (`hubloc_connect`),
KEY `hubloc_host` (`hubloc_host`),
KEY `hubloc_addr` (`hubloc_addr`),
- KEY `hubloc_network` (`hubloc_network`),
KEY `hubloc_updated` (`hubloc_updated`),
KEY `hubloc_connected` (`hubloc_connected`),
- KEY `hubloc_status` (`hubloc_status`)
+ KEY `hubloc_status` (`hubloc_status`),
+ KEY `hubloc_network` (`hubloc_network`)
) ENGINE=MyISAM DEFAULT CHARSET=utf8;
+-- --------------------------------------------------------
+
+--
+-- Table structure for table `issue`
+--
+
CREATE TABLE IF NOT EXISTS `issue` (
`issue_id` int(10) unsigned NOT NULL AUTO_INCREMENT,
`issue_created` datetime NOT NULL DEFAULT '0000-00-00 00:00:00',
`issue_updated` datetime NOT NULL DEFAULT '0000-00-00 00:00:00',
- `issue_assigned` char(255) NOT NULL,
- `issue_priority` int(11) NOT NULL,
- `issue_status` int(11) NOT NULL,
- `issue_component` char(255) NOT NULL,
+ `issue_assigned` char(255) NOT NULL DEFAULT '',
+ `issue_priority` int(11) NOT NULL DEFAULT '0',
+ `issue_status` int(11) NOT NULL DEFAULT '0',
+ `issue_component` char(255) NOT NULL DEFAULT '',
PRIMARY KEY (`issue_id`),
KEY `issue_created` (`issue_created`),
KEY `issue_updated` (`issue_updated`),
@@ -497,6 +631,12 @@ CREATE TABLE IF NOT EXISTS `issue` (
KEY `issue_component` (`issue_component`)
) ENGINE=MyISAM DEFAULT CHARSET=utf8;
+-- --------------------------------------------------------
+
+--
+-- Table structure for table `item`
+--
+
CREATE TABLE IF NOT EXISTS `item` (
`id` int(10) unsigned NOT NULL AUTO_INCREMENT,
`mid` char(255) CHARACTER SET ascii NOT NULL DEFAULT '',
@@ -516,34 +656,34 @@ CREATE TABLE IF NOT EXISTS `item` (
`author_xchan` char(255) NOT NULL DEFAULT '',
`source_xchan` char(255) NOT NULL DEFAULT '',
`mimetype` char(255) NOT NULL DEFAULT '',
- `title` text NOT NULL DEFAULT '',
- `body` mediumtext NOT NULL DEFAULT '',
+ `title` text NOT NULL,
+ `body` mediumtext NOT NULL,
`app` char(255) NOT NULL DEFAULT '',
`lang` char(64) NOT NULL DEFAULT '',
`revision` int(10) unsigned NOT NULL DEFAULT '0',
`verb` char(255) NOT NULL DEFAULT '',
`obj_type` char(255) NOT NULL DEFAULT '',
- `object` text NOT NULL DEFAULT '',
+ `object` text NOT NULL,
`tgt_type` char(255) NOT NULL DEFAULT '',
- `target` text NOT NULL DEFAULT '',
+ `target` text NOT NULL,
`layout_mid` char(255) NOT NULL DEFAULT '',
- `postopts` text NOT NULL DEFAULT '',
- `route` text NOT NULL DEFAULT '',
+ `postopts` text NOT NULL,
+ `route` text NOT NULL,
`llink` char(255) NOT NULL DEFAULT '',
`plink` char(255) NOT NULL DEFAULT '',
`resource_id` char(255) NOT NULL DEFAULT '',
`resource_type` char(16) NOT NULL DEFAULT '',
- `attach` mediumtext NOT NULL DEFAULT '',
- `sig` text NOT NULL DEFAULT '',
- `diaspora_meta` mediumtext NOT NULL DEFAULT '',
+ `attach` mediumtext NOT NULL,
+ `sig` text NOT NULL,
+ `diaspora_meta` mediumtext NOT NULL,
`location` char(255) NOT NULL DEFAULT '',
`coord` char(255) NOT NULL DEFAULT '',
`public_policy` char(255) NOT NULL DEFAULT '',
`comment_policy` char(255) NOT NULL DEFAULT '',
- `allow_cid` mediumtext NOT NULL DEFAULT '',
- `allow_gid` mediumtext NOT NULL DEFAULT '',
- `deny_cid` mediumtext NOT NULL DEFAULT '',
- `deny_gid` mediumtext NOT NULL DEFAULT '',
+ `allow_cid` mediumtext NOT NULL,
+ `allow_gid` mediumtext NOT NULL,
+ `deny_cid` mediumtext NOT NULL,
+ `deny_gid` mediumtext NOT NULL,
`item_restrict` int(11) NOT NULL DEFAULT '0',
`item_flags` int(11) NOT NULL DEFAULT '0',
`item_private` tinyint(4) NOT NULL DEFAULT '0',
@@ -555,8 +695,6 @@ CREATE TABLE IF NOT EXISTS `item` (
KEY `received` (`received`),
KEY `uid_commented` (`uid`,`commented`),
KEY `uid_created` (`uid`,`created`),
- KEY `changed` (`changed`),
- KEY `comments_closed` (`comments_closed`),
KEY `aid` (`aid`),
KEY `owner_xchan` (`owner_xchan`),
KEY `author_xchan` (`author_xchan`),
@@ -573,9 +711,11 @@ CREATE TABLE IF NOT EXISTS `item` (
KEY `mid` (`mid`),
KEY `parent_mid` (`parent_mid`),
KEY `uid_mid` (`mid`,`uid`),
- KEY `public_policy` (`public_policy`),
KEY `comment_policy` (`comment_policy`),
KEY `layout_mid` (`layout_mid`),
+ KEY `public_policy` (`public_policy`),
+ KEY `comments_closed` (`comments_closed`),
+ KEY `changed` (`changed`),
FULLTEXT KEY `title` (`title`),
FULLTEXT KEY `body` (`body`),
FULLTEXT KEY `allow_cid` (`allow_cid`),
@@ -584,12 +724,18 @@ CREATE TABLE IF NOT EXISTS `item` (
FULLTEXT KEY `deny_gid` (`deny_gid`)
) ENGINE=MyISAM DEFAULT CHARSET=utf8;
+-- --------------------------------------------------------
+
+--
+-- Table structure for table `item_id`
+--
+
CREATE TABLE IF NOT EXISTS `item_id` (
`id` int(10) unsigned NOT NULL AUTO_INCREMENT,
- `iid` int(11) NOT NULL,
- `uid` int(11) NOT NULL,
- `sid` char(255) NOT NULL,
- `service` char(255) NOT NULL,
+ `iid` int(11) NOT NULL DEFAULT '0',
+ `uid` int(11) NOT NULL DEFAULT '0',
+ `sid` char(255) NOT NULL DEFAULT '',
+ `service` char(255) NOT NULL DEFAULT '',
PRIMARY KEY (`id`),
KEY `uid` (`uid`),
KEY `sid` (`sid`),
@@ -597,25 +743,37 @@ CREATE TABLE IF NOT EXISTS `item_id` (
KEY `iid` (`iid`)
) ENGINE=MyISAM DEFAULT CHARSET=utf8;
+-- --------------------------------------------------------
+
+--
+-- Table structure for table `likes`
+--
+
CREATE TABLE IF NOT EXISTS `likes` (
`id` int(10) unsigned NOT NULL AUTO_INCREMENT,
- `channel_id` int(11) unsigned NOT NULL DEFAULT '0',
+ `channel_id` int(10) unsigned NOT NULL DEFAULT '0',
`liker` char(128) NOT NULL DEFAULT '',
`likee` char(128) NOT NULL DEFAULT '',
- `iid` int(10) unsigned NOT NULL DEFAULT '0',
+ `iid` int(11) unsigned NOT NULL DEFAULT '0',
`verb` char(255) NOT NULL DEFAULT '',
`target_type` char(255) NOT NULL DEFAULT '',
`target_id` char(128) NOT NULL DEFAULT '',
`target` mediumtext NOT NULL,
PRIMARY KEY (`id`),
- KEY `channel_id` (`channel_id`),
KEY `liker` (`liker`),
KEY `likee` (`likee`),
KEY `iid` (`iid`),
KEY `verb` (`verb`),
KEY `target_type` (`target_type`),
+ KEY `channel_id` (`channel_id`),
KEY `target_id` (`target_id`)
-) ENGINE=MyISAM DEFAULT CHARSET=utf8;
+) ENGINE=MyISAM DEFAULT CHARSET=utf8;
+
+-- --------------------------------------------------------
+
+--
+-- Table structure for table `mail`
+--
CREATE TABLE IF NOT EXISTS `mail` (
`id` int(10) unsigned NOT NULL AUTO_INCREMENT,
@@ -624,16 +782,15 @@ CREATE TABLE IF NOT EXISTS `mail` (
`from_xchan` char(255) NOT NULL DEFAULT '',
`to_xchan` char(255) NOT NULL DEFAULT '',
`account_id` int(10) unsigned NOT NULL DEFAULT '0',
- `channel_id` int(10) unsigned NOT NULL,
+ `channel_id` int(10) unsigned NOT NULL DEFAULT '0',
`title` text NOT NULL,
`body` mediumtext NOT NULL,
`attach` mediumtext NOT NULL,
- `mid` char(255) NOT NULL,
- `parent_mid` char(255) NOT NULL,
+ `mid` char(255) NOT NULL DEFAULT '',
+ `parent_mid` char(255) NOT NULL DEFAULT '',
`created` datetime NOT NULL DEFAULT '0000-00-00 00:00:00',
`expires` datetime NOT NULL DEFAULT '0000-00-00 00:00:00',
PRIMARY KEY (`id`),
- KEY `convid` (`convid`),
KEY `created` (`created`),
KEY `mail_flags` (`mail_flags`),
KEY `account_id` (`account_id`),
@@ -642,18 +799,31 @@ CREATE TABLE IF NOT EXISTS `mail` (
KEY `to_xchan` (`to_xchan`),
KEY `mid` (`mid`),
KEY `parent_mid` (`parent_mid`),
- KEY `expires` (`expires`)
+ KEY `expires` (`expires`),
+ KEY `convid` (`convid`)
) ENGINE=MyISAM DEFAULT CHARSET=utf8;
+-- --------------------------------------------------------
+
+--
+-- Table structure for table `manage`
+--
+
CREATE TABLE IF NOT EXISTS `manage` (
`id` int(11) NOT NULL AUTO_INCREMENT,
- `uid` int(11) NOT NULL,
+ `uid` int(11) NOT NULL DEFAULT '0',
`xchan` char(255) NOT NULL DEFAULT '',
PRIMARY KEY (`id`),
KEY `uid` (`uid`),
KEY `xchan` (`xchan`)
) ENGINE=MyISAM DEFAULT CHARSET=utf8;
+-- --------------------------------------------------------
+
+--
+-- Table structure for table `menu`
+--
+
CREATE TABLE IF NOT EXISTS `menu` (
`menu_id` int(10) unsigned NOT NULL AUTO_INCREMENT,
`menu_channel_id` int(10) unsigned NOT NULL DEFAULT '0',
@@ -666,6 +836,12 @@ CREATE TABLE IF NOT EXISTS `menu` (
KEY `menu_flags` (`menu_flags`)
) ENGINE=MyISAM DEFAULT CHARSET=utf8;
+-- --------------------------------------------------------
+
+--
+-- Table structure for table `menu_item`
+--
+
CREATE TABLE IF NOT EXISTS `menu_item` (
`mitem_id` int(10) unsigned NOT NULL AUTO_INCREMENT,
`mitem_link` char(255) NOT NULL DEFAULT '',
@@ -675,7 +851,7 @@ CREATE TABLE IF NOT EXISTS `menu_item` (
`allow_gid` mediumtext NOT NULL,
`deny_cid` mediumtext NOT NULL,
`deny_gid` mediumtext NOT NULL,
- `mitem_channel_id` int(10) unsigned NOT NULL,
+ `mitem_channel_id` int(10) unsigned NOT NULL DEFAULT '0',
`mitem_menu_id` int(10) unsigned NOT NULL DEFAULT '0',
`mitem_order` int(11) NOT NULL DEFAULT '0',
PRIMARY KEY (`mitem_id`),
@@ -684,22 +860,28 @@ CREATE TABLE IF NOT EXISTS `menu_item` (
KEY `mitem_flags` (`mitem_flags`)
) ENGINE=MyISAM DEFAULT CHARSET=utf8;
+-- --------------------------------------------------------
+
+--
+-- Table structure for table `notify`
+--
+
CREATE TABLE IF NOT EXISTS `notify` (
`id` int(11) NOT NULL AUTO_INCREMENT,
- `hash` char(64) NOT NULL,
- `name` char(255) NOT NULL,
- `url` char(255) NOT NULL,
- `photo` char(255) NOT NULL,
- `date` datetime NOT NULL,
+ `hash` char(64) NOT NULL DEFAULT '',
+ `name` char(255) NOT NULL DEFAULT '',
+ `url` char(255) NOT NULL DEFAULT '',
+ `photo` char(255) NOT NULL DEFAULT '',
+ `date` datetime NOT NULL DEFAULT '0000-00-00 00:00:00',
`msg` mediumtext NOT NULL,
- `aid` int(11) NOT NULL,
- `uid` int(11) NOT NULL,
- `link` char(255) NOT NULL,
+ `aid` int(11) NOT NULL DEFAULT '0',
+ `uid` int(11) NOT NULL DEFAULT '0',
+ `link` char(255) NOT NULL DEFAULT '',
`parent` char(255) NOT NULL DEFAULT '',
`seen` tinyint(1) NOT NULL DEFAULT '0',
- `type` int(11) NOT NULL,
- `verb` char(255) NOT NULL,
- `otype` char(16) NOT NULL,
+ `type` int(11) NOT NULL DEFAULT '0',
+ `verb` char(255) NOT NULL DEFAULT '',
+ `otype` char(16) NOT NULL DEFAULT '',
PRIMARY KEY (`id`),
KEY `type` (`type`),
KEY `seen` (`seen`),
@@ -712,6 +894,12 @@ CREATE TABLE IF NOT EXISTS `notify` (
KEY `aid` (`aid`)
) ENGINE=MyISAM DEFAULT CHARSET=utf8;
+-- --------------------------------------------------------
+
+--
+-- Table structure for table `obj`
+--
+
CREATE TABLE IF NOT EXISTS `obj` (
`obj_id` int(10) unsigned NOT NULL AUTO_INCREMENT,
`obj_page` char(64) NOT NULL DEFAULT '',
@@ -731,6 +919,12 @@ CREATE TABLE IF NOT EXISTS `obj` (
KEY `obj_obj` (`obj_obj`)
) ENGINE=MyISAM DEFAULT CHARSET=utf8;
+-- --------------------------------------------------------
+
+--
+-- Table structure for table `outq`
+--
+
CREATE TABLE IF NOT EXISTS `outq` (
`outq_hash` char(255) NOT NULL,
`outq_account` int(10) unsigned NOT NULL DEFAULT '0',
@@ -753,34 +947,46 @@ CREATE TABLE IF NOT EXISTS `outq` (
KEY `outq_delivered` (`outq_delivered`)
) ENGINE=MyISAM DEFAULT CHARSET=utf8;
+-- --------------------------------------------------------
+
+--
+-- Table structure for table `pconfig`
+--
+
CREATE TABLE IF NOT EXISTS `pconfig` (
`id` int(11) NOT NULL AUTO_INCREMENT,
`uid` int(11) NOT NULL DEFAULT '0',
- `cat` char(255) CHARACTER SET ascii NOT NULL,
- `k` char(255) CHARACTER SET ascii NOT NULL,
+ `cat` char(255) CHARACTER SET ascii NOT NULL DEFAULT '',
+ `k` char(255) CHARACTER SET ascii NOT NULL DEFAULT '',
`v` mediumtext NOT NULL,
PRIMARY KEY (`id`),
UNIQUE KEY `access` (`uid`,`cat`,`k`)
) ENGINE=MyISAM DEFAULT CHARSET=utf8;
+-- --------------------------------------------------------
+
+--
+-- Table structure for table `photo`
+--
+
CREATE TABLE IF NOT EXISTS `photo` (
`id` int(10) unsigned NOT NULL AUTO_INCREMENT,
`aid` int(10) unsigned NOT NULL DEFAULT '0',
- `uid` int(10) unsigned NOT NULL,
+ `uid` int(10) unsigned NOT NULL DEFAULT '0',
`xchan` char(255) NOT NULL DEFAULT '',
- `resource_id` char(255) NOT NULL,
- `created` datetime NOT NULL,
- `edited` datetime NOT NULL,
- `title` char(255) NOT NULL,
+ `resource_id` char(255) NOT NULL DEFAULT '',
+ `created` datetime NOT NULL DEFAULT '0000-00-00 00:00:00',
+ `edited` datetime NOT NULL DEFAULT '0000-00-00 00:00:00',
+ `title` char(255) NOT NULL DEFAULT '',
`description` text NOT NULL,
- `album` char(255) NOT NULL,
- `filename` char(255) NOT NULL,
+ `album` char(255) NOT NULL DEFAULT '',
+ `filename` char(255) NOT NULL DEFAULT '',
`type` char(128) NOT NULL DEFAULT 'image/jpeg',
- `height` smallint(6) NOT NULL,
- `width` smallint(6) NOT NULL,
+ `height` smallint(6) NOT NULL DEFAULT '0',
+ `width` smallint(6) NOT NULL DEFAULT '0',
`size` int(10) unsigned NOT NULL DEFAULT '0',
`data` mediumblob NOT NULL,
- `scale` tinyint(3) NOT NULL,
+ `scale` tinyint(3) NOT NULL DEFAULT '0',
`profile` tinyint(1) NOT NULL DEFAULT '0',
`photo_flags` int(10) unsigned NOT NULL DEFAULT '0',
`allow_cid` mediumtext NOT NULL,
@@ -800,6 +1006,12 @@ CREATE TABLE IF NOT EXISTS `photo` (
KEY `resource_id` (`resource_id`)
) ENGINE=MyISAM DEFAULT CHARSET=utf8;
+-- --------------------------------------------------------
+
+--
+-- Table structure for table `poll`
+--
+
CREATE TABLE IF NOT EXISTS `poll` (
`poll_id` int(10) unsigned NOT NULL AUTO_INCREMENT,
`poll_channel` int(10) unsigned NOT NULL DEFAULT '0',
@@ -812,6 +1024,12 @@ CREATE TABLE IF NOT EXISTS `poll` (
KEY `poll_votes` (`poll_votes`)
) ENGINE=MyISAM DEFAULT CHARSET=utf8;
+-- --------------------------------------------------------
+
+--
+-- Table structure for table `poll_elm`
+--
+
CREATE TABLE IF NOT EXISTS `poll_elm` (
`pelm_id` int(10) unsigned NOT NULL AUTO_INCREMENT,
`pelm_poll` int(10) unsigned NOT NULL DEFAULT '0',
@@ -823,16 +1041,28 @@ CREATE TABLE IF NOT EXISTS `poll_elm` (
KEY `pelm_result` (`pelm_result`)
) ENGINE=MyISAM DEFAULT CHARSET=utf8;
+-- --------------------------------------------------------
+
+--
+-- Table structure for table `profdef`
+--
+
CREATE TABLE IF NOT EXISTS `profdef` (
`id` int(10) unsigned NOT NULL AUTO_INCREMENT,
`field_name` char(255) NOT NULL DEFAULT '',
`field_type` char(16) NOT NULL DEFAULT '',
`field_desc` char(255) NOT NULL DEFAULT '',
`field_help` char(255) NOT NULL DEFAULT '',
- `field_inputs` mediumtext NOT NULL DEFAULT '',
+ `field_inputs` mediumtext NOT NULL,
PRIMARY KEY (`id`),
KEY `field_name` (`field_name`)
-) ENGINE=MyISAM DEFAULT CHARSET=utf8;
+) ENGINE=MyISAM DEFAULT CHARSET=utf8;
+
+-- --------------------------------------------------------
+
+--
+-- Table structure for table `profext`
+--
CREATE TABLE IF NOT EXISTS `profext` (
`id` int(10) unsigned NOT NULL AUTO_INCREMENT,
@@ -844,39 +1074,45 @@ CREATE TABLE IF NOT EXISTS `profext` (
KEY `channel_id` (`channel_id`),
KEY `hash` (`hash`),
KEY `k` (`k`)
-) ENGINE=MyISAM DEFAULT CHARSET=utf8;
+) ENGINE=MyISAM DEFAULT CHARSET=utf8;
+
+-- --------------------------------------------------------
+
+--
+-- Table structure for table `profile`
+--
CREATE TABLE IF NOT EXISTS `profile` (
`id` int(11) NOT NULL AUTO_INCREMENT,
`profile_guid` char(64) NOT NULL DEFAULT '',
`aid` int(10) unsigned NOT NULL DEFAULT '0',
- `uid` int(11) NOT NULL,
- `profile_name` char(255) NOT NULL,
+ `uid` int(11) NOT NULL DEFAULT '0',
+ `profile_name` char(255) NOT NULL DEFAULT '',
`is_default` tinyint(1) NOT NULL DEFAULT '0',
`hide_friends` tinyint(1) NOT NULL DEFAULT '0',
- `name` char(255) NOT NULL,
- `pdesc` char(255) NOT NULL,
+ `name` char(255) NOT NULL DEFAULT '',
+ `pdesc` char(255) NOT NULL DEFAULT '',
`chandesc` text NOT NULL,
`dob` char(32) NOT NULL DEFAULT '0000-00-00',
`dob_tz` char(255) NOT NULL DEFAULT 'UTC',
- `address` char(255) NOT NULL,
- `locality` char(255) NOT NULL,
- `region` char(255) NOT NULL,
- `postal_code` char(32) NOT NULL,
- `country_name` char(255) NOT NULL,
- `hometown` char(255) NOT NULL,
- `gender` char(32) NOT NULL,
- `marital` char(255) NOT NULL,
+ `address` char(255) NOT NULL DEFAULT '',
+ `locality` char(255) NOT NULL DEFAULT '',
+ `region` char(255) NOT NULL DEFAULT '',
+ `postal_code` char(32) NOT NULL DEFAULT '',
+ `country_name` char(255) NOT NULL DEFAULT '',
+ `hometown` char(255) NOT NULL DEFAULT '',
+ `gender` char(32) NOT NULL DEFAULT '',
+ `marital` char(255) NOT NULL DEFAULT '',
`with` text NOT NULL,
`howlong` datetime NOT NULL DEFAULT '0000-00-00 00:00:00',
- `sexual` char(255) NOT NULL,
- `politic` char(255) NOT NULL,
- `religion` char(255) NOT NULL,
+ `sexual` char(255) NOT NULL DEFAULT '',
+ `politic` char(255) NOT NULL DEFAULT '',
+ `religion` char(255) NOT NULL DEFAULT '',
`keywords` text NOT NULL,
`likes` text NOT NULL,
`dislikes` text NOT NULL,
`about` text NOT NULL,
- `summary` char(255) NOT NULL,
+ `summary` char(255) NOT NULL DEFAULT '',
`music` text NOT NULL,
`book` text NOT NULL,
`tv` text NOT NULL,
@@ -887,9 +1123,9 @@ CREATE TABLE IF NOT EXISTS `profile` (
`education` text NOT NULL,
`contact` text NOT NULL,
`channels` text NOT NULL,
- `homepage` char(255) NOT NULL,
- `photo` char(255) NOT NULL,
- `thumb` char(255) NOT NULL,
+ `homepage` char(255) NOT NULL DEFAULT '',
+ `photo` char(255) NOT NULL DEFAULT '',
+ `thumb` char(255) NOT NULL DEFAULT '',
`publish` tinyint(1) NOT NULL DEFAULT '0',
PRIMARY KEY (`id`),
UNIQUE KEY `guid` (`profile_guid`,`uid`),
@@ -908,13 +1144,19 @@ CREATE TABLE IF NOT EXISTS `profile` (
KEY `profile_guid` (`profile_guid`)
) ENGINE=MyISAM DEFAULT CHARSET=utf8;
+-- --------------------------------------------------------
+
+--
+-- Table structure for table `profile_check`
+--
+
CREATE TABLE IF NOT EXISTS `profile_check` (
`id` int(10) unsigned NOT NULL AUTO_INCREMENT,
- `uid` int(10) unsigned NOT NULL,
+ `uid` int(10) unsigned NOT NULL DEFAULT '0',
`cid` int(10) unsigned NOT NULL DEFAULT '0',
- `dfrn_id` char(255) NOT NULL,
- `sec` char(255) NOT NULL,
- `expire` int(11) NOT NULL,
+ `dfrn_id` char(255) NOT NULL DEFAULT '',
+ `sec` char(255) NOT NULL DEFAULT '',
+ `expire` int(11) NOT NULL DEFAULT '0',
PRIMARY KEY (`id`),
KEY `uid` (`uid`),
KEY `cid` (`cid`),
@@ -923,29 +1165,47 @@ CREATE TABLE IF NOT EXISTS `profile_check` (
KEY `expire` (`expire`)
) ENGINE=MyISAM DEFAULT CHARSET=utf8;
+-- --------------------------------------------------------
+
+--
+-- Table structure for table `register`
+--
+
CREATE TABLE IF NOT EXISTS `register` (
`id` int(10) unsigned NOT NULL AUTO_INCREMENT,
- `hash` char(255) NOT NULL,
- `created` datetime NOT NULL,
- `uid` int(10) unsigned NOT NULL,
- `password` char(255) NOT NULL,
- `language` char(16) NOT NULL,
+ `hash` char(255) NOT NULL DEFAULT '',
+ `created` datetime NOT NULL DEFAULT '0000-00-00 00:00:00',
+ `uid` int(10) unsigned NOT NULL DEFAULT '0',
+ `password` char(255) NOT NULL DEFAULT '',
+ `language` char(16) NOT NULL DEFAULT '',
PRIMARY KEY (`id`),
KEY `hash` (`hash`),
KEY `created` (`created`),
KEY `uid` (`uid`)
-) ENGINE=MyISAM DEFAULT CHARSET=utf8;
+) ENGINE=MyISAM DEFAULT CHARSET=utf8;
+
+-- --------------------------------------------------------
+
+--
+-- Table structure for table `session`
+--
CREATE TABLE IF NOT EXISTS `session` (
`id` bigint(20) unsigned NOT NULL AUTO_INCREMENT,
- `sid` char(255) NOT NULL,
+ `sid` char(255) NOT NULL DEFAULT '',
`data` text NOT NULL,
- `expire` bigint(20) unsigned NOT NULL,
+ `expire` bigint(20) unsigned NOT NULL DEFAULT '0',
PRIMARY KEY (`id`),
KEY `sid` (`sid`),
KEY `expire` (`expire`)
) ENGINE=MyISAM DEFAULT CHARSET=utf8;
+-- --------------------------------------------------------
+
+--
+-- Table structure for table `shares`
+--
+
CREATE TABLE IF NOT EXISTS `shares` (
`share_id` int(10) unsigned NOT NULL AUTO_INCREMENT,
`share_type` int(11) NOT NULL DEFAULT '0',
@@ -957,18 +1217,30 @@ CREATE TABLE IF NOT EXISTS `shares` (
KEY `share_xchan` (`share_xchan`)
) ENGINE=MyISAM DEFAULT CHARSET=utf8;
+-- --------------------------------------------------------
+
+--
+-- Table structure for table `sign`
+--
+
CREATE TABLE IF NOT EXISTS `sign` (
`id` int(10) unsigned NOT NULL AUTO_INCREMENT,
`iid` int(10) unsigned NOT NULL DEFAULT '0',
`retract_iid` int(10) unsigned NOT NULL DEFAULT '0',
`signed_text` mediumtext NOT NULL,
`signature` text NOT NULL,
- `signer` char(255) NOT NULL,
+ `signer` char(255) NOT NULL DEFAULT '',
PRIMARY KEY (`id`),
KEY `iid` (`iid`),
KEY `retract_iid` (`retract_iid`)
) ENGINE=MyISAM DEFAULT CHARSET=utf8;
+-- --------------------------------------------------------
+
+--
+-- Table structure for table `site`
+--
+
CREATE TABLE IF NOT EXISTS `site` (
`site_url` char(255) NOT NULL,
`site_access` int(11) NOT NULL DEFAULT '0',
@@ -988,9 +1260,16 @@ CREATE TABLE IF NOT EXISTS `site` (
KEY `site_register` (`site_register`),
KEY `site_access` (`site_access`),
KEY `site_sellpage` (`site_sellpage`),
+ KEY `site_pull` (`site_pull`),
KEY `site_realm` (`site_realm`)
) ENGINE=MyISAM DEFAULT CHARSET=utf8;
+-- --------------------------------------------------------
+
+--
+-- Table structure for table `source`
+--
+
CREATE TABLE IF NOT EXISTS `source` (
`src_id` int(10) unsigned NOT NULL AUTO_INCREMENT,
`src_channel_id` int(10) unsigned NOT NULL DEFAULT '0',
@@ -1003,12 +1282,18 @@ CREATE TABLE IF NOT EXISTS `source` (
KEY `src_xchan` (`src_xchan`)
) ENGINE=MyISAM DEFAULT CHARSET=utf8;
+-- --------------------------------------------------------
+
+--
+-- Table structure for table `spam`
+--
+
CREATE TABLE IF NOT EXISTS `spam` (
`id` int(11) NOT NULL AUTO_INCREMENT,
- `uid` int(11) NOT NULL,
+ `uid` int(11) NOT NULL DEFAULT '0',
`spam` int(11) NOT NULL DEFAULT '0',
`ham` int(11) NOT NULL DEFAULT '0',
- `term` char(255) NOT NULL,
+ `term` char(255) NOT NULL DEFAULT '',
`date` datetime NOT NULL DEFAULT '0000-00-00 00:00:00',
PRIMARY KEY (`id`),
KEY `uid` (`uid`),
@@ -1017,25 +1302,37 @@ CREATE TABLE IF NOT EXISTS `spam` (
KEY `term` (`term`)
) ENGINE=MyISAM DEFAULT CHARSET=utf8;
+-- --------------------------------------------------------
+
+--
+-- Table structure for table `sys_perms`
+--
+
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,
+ `cat` char(255) NOT NULL DEFAULT '',
+ `k` char(255) NOT NULL DEFAULT '',
`v` mediumtext NOT NULL,
- `public_perm` tinyint(1) unsigned NOT NULL,
+ `public_perm` tinyint(1) unsigned NOT NULL DEFAULT '0',
PRIMARY KEY (`id`)
) ENGINE=MyISAM DEFAULT CHARSET=utf8;
+-- --------------------------------------------------------
+
+--
+-- Table structure for table `term`
+--
+
CREATE TABLE IF NOT EXISTS `term` (
`tid` int(10) unsigned NOT NULL AUTO_INCREMENT,
`aid` int(10) unsigned NOT NULL DEFAULT '0',
`uid` int(10) unsigned NOT NULL DEFAULT '0',
- `oid` int(10) unsigned NOT NULL,
- `otype` tinyint(3) unsigned NOT NULL,
- `type` tinyint(3) unsigned NOT NULL,
- `term` char(255) NOT NULL,
- `url` char(255) NOT NULL,
- `imgurl` char(255) NOT NULL,
+ `oid` int(10) unsigned NOT NULL DEFAULT '0',
+ `otype` tinyint(3) unsigned NOT NULL DEFAULT '0',
+ `type` tinyint(3) unsigned NOT NULL DEFAULT '0',
+ `term` char(255) NOT NULL DEFAULT '',
+ `url` char(255) NOT NULL DEFAULT '',
+ `imgurl` char(255) NOT NULL DEFAULT '',
`term_hash` char(255) NOT NULL DEFAULT '',
`parent_hash` char(255) NOT NULL DEFAULT '',
PRIMARY KEY (`tid`),
@@ -1050,22 +1347,34 @@ CREATE TABLE IF NOT EXISTS `term` (
KEY `parent_hash` (`parent_hash`)
) ENGINE=MyISAM DEFAULT CHARSET=utf8;
+-- --------------------------------------------------------
+
+--
+-- Table structure for table `tokens`
+--
+
CREATE TABLE IF NOT EXISTS `tokens` (
- `id` varchar(40) NOT NULL,
+ `id` varchar(40) NOT NULL DEFAULT '',
`secret` text NOT NULL,
- `client_id` varchar(20) NOT NULL,
- `expires` bigint(20) unsigned NOT NULL,
- `scope` varchar(200) NOT NULL,
- `uid` int(11) NOT NULL,
+ `client_id` varchar(20) NOT NULL DEFAULT '',
+ `expires` bigint(20) unsigned NOT NULL DEFAULT '0',
+ `scope` varchar(200) NOT NULL DEFAULT '',
+ `uid` int(11) NOT NULL DEFAULT '0',
PRIMARY KEY (`id`),
KEY `client_id` (`client_id`),
KEY `expires` (`expires`),
KEY `uid` (`uid`)
) ENGINE=MyISAM DEFAULT CHARSET=utf8;
+-- --------------------------------------------------------
+
+--
+-- Table structure for table `updates`
+--
+
CREATE TABLE IF NOT EXISTS `updates` (
`ud_id` int(10) unsigned NOT NULL AUTO_INCREMENT,
- `ud_hash` char(128) NOT NULL,
+ `ud_hash` char(128) NOT NULL DEFAULT '',
`ud_guid` char(255) NOT NULL DEFAULT '',
`ud_date` datetime NOT NULL DEFAULT '0000-00-00 00:00:00',
`ud_last` datetime NOT NULL DEFAULT '0000-00-00 00:00:00',
@@ -1080,6 +1389,12 @@ CREATE TABLE IF NOT EXISTS `updates` (
KEY `ud_last` (`ud_last`)
) ENGINE=MyISAM DEFAULT CHARSET=utf8;
+-- --------------------------------------------------------
+
+--
+-- Table structure for table `verify`
+--
+
CREATE TABLE IF NOT EXISTS `verify` (
`id` int(10) unsigned NOT NULL AUTO_INCREMENT,
`channel` int(10) unsigned NOT NULL DEFAULT '0',
@@ -1095,6 +1410,12 @@ CREATE TABLE IF NOT EXISTS `verify` (
KEY `created` (`created`)
) ENGINE=MyISAM DEFAULT CHARSET=utf8;
+-- --------------------------------------------------------
+
+--
+-- Table structure for table `vote`
+--
+
CREATE TABLE IF NOT EXISTS `vote` (
`vote_id` int(10) unsigned NOT NULL AUTO_INCREMENT,
`vote_poll` int(11) NOT NULL DEFAULT '0',
@@ -1107,6 +1428,12 @@ CREATE TABLE IF NOT EXISTS `vote` (
KEY `vote_element` (`vote_element`)
) ENGINE=MyISAM DEFAULT CHARSET=utf8;
+-- --------------------------------------------------------
+
+--
+-- Table structure for table `xchan`
+--
+
CREATE TABLE IF NOT EXISTS `xchan` (
`xchan_hash` char(255) NOT NULL,
`xchan_guid` char(255) NOT NULL DEFAULT '',
@@ -1139,6 +1466,12 @@ CREATE TABLE IF NOT EXISTS `xchan` (
KEY `xchan_follow` (`xchan_follow`)
) ENGINE=MyISAM DEFAULT CHARSET=utf8;
+-- --------------------------------------------------------
+
+--
+-- Table structure for table `xchat`
+--
+
CREATE TABLE IF NOT EXISTS `xchat` (
`xchat_id` int(10) unsigned NOT NULL AUTO_INCREMENT,
`xchat_url` char(255) NOT NULL DEFAULT '',
@@ -1150,13 +1483,19 @@ CREATE TABLE IF NOT EXISTS `xchat` (
KEY `xchat_desc` (`xchat_desc`),
KEY `xchat_xchan` (`xchat_xchan`),
KEY `xchat_edited` (`xchat_edited`)
-) ENGINE=MyISAM DEFAULT CHARSET=utf8;
+) ENGINE=MyISAM DEFAULT CHARSET=utf8;
+
+-- --------------------------------------------------------
+
+--
+-- Table structure for table `xconfig`
+--
CREATE TABLE IF NOT EXISTS `xconfig` (
`id` int(10) unsigned NOT NULL AUTO_INCREMENT,
- `xchan` char(255) NOT NULL,
- `cat` char(255) NOT NULL,
- `k` char(255) NOT NULL,
+ `xchan` char(255) NOT NULL DEFAULT '',
+ `cat` char(255) NOT NULL DEFAULT '',
+ `k` char(255) NOT NULL DEFAULT '',
`v` mediumtext NOT NULL,
PRIMARY KEY (`id`),
KEY `xchan` (`xchan`),
@@ -1164,6 +1503,12 @@ CREATE TABLE IF NOT EXISTS `xconfig` (
KEY `k` (`k`)
) ENGINE=MyISAM DEFAULT CHARSET=utf8;
+-- --------------------------------------------------------
+
+--
+-- Table structure for table `xign`
+--
+
CREATE TABLE IF NOT EXISTS `xign` (
`id` int(10) unsigned NOT NULL AUTO_INCREMENT,
`uid` int(11) NOT NULL DEFAULT '0',
@@ -1173,6 +1518,12 @@ CREATE TABLE IF NOT EXISTS `xign` (
KEY `xchan` (`xchan`)
) ENGINE=MyISAM DEFAULT CHARSET=utf8;
+-- --------------------------------------------------------
+
+--
+-- Table structure for table `xlink`
+--
+
CREATE TABLE IF NOT EXISTS `xlink` (
`xlink_id` int(10) unsigned NOT NULL AUTO_INCREMENT,
`xlink_xchan` char(255) NOT NULL DEFAULT '',
@@ -1186,6 +1537,12 @@ CREATE TABLE IF NOT EXISTS `xlink` (
KEY `xlink_rating` (`xlink_rating`)
) ENGINE=MyISAM DEFAULT CHARSET=utf8;
+-- --------------------------------------------------------
+
+--
+-- Table structure for table `xprof`
+--
+
CREATE TABLE IF NOT EXISTS `xprof` (
`xprof_hash` char(255) NOT NULL,
`xprof_age` tinyint(3) unsigned NOT NULL DEFAULT '0',
@@ -1216,9 +1573,15 @@ CREATE TABLE IF NOT EXISTS `xprof` (
KEY `xprof_hometown` (`xprof_hometown`)
) ENGINE=MyISAM DEFAULT CHARSET=utf8;
+-- --------------------------------------------------------
+
+--
+-- Table structure for table `xtag`
+--
+
CREATE TABLE IF NOT EXISTS `xtag` (
`xtag_id` int(10) unsigned NOT NULL AUTO_INCREMENT,
- `xtag_hash` char(255) NOT NULL,
+ `xtag_hash` char(255) NOT NULL DEFAULT '',
`xtag_term` char(255) NOT NULL DEFAULT '',
`xtag_flags` int(11) NOT NULL DEFAULT '0',
PRIMARY KEY (`xtag_id`),
diff --git a/install/schema_postgres.sql b/install/schema_postgres.sql
new file mode 100644
index 000000000..85eb802d2
--- /dev/null
+++ b/install/schema_postgres.sql
@@ -0,0 +1,1190 @@
+CREATE TABLE "abook" (
+ "abook_id" serial NOT NULL,
+ "abook_account" bigint NOT NULL,
+ "abook_channel" bigint NOT NULL,
+ "abook_xchan" text NOT NULL DEFAULT '',
+ "abook_my_perms" bigint NOT NULL DEFAULT '0',
+ "abook_their_perms" bigint NOT NULL DEFAULT '0',
+ "abook_closeness" numeric(3) NOT NULL DEFAULT '99',
+ "abook_rating" bigint NOT NULL DEFAULT '0',
+ "abook_created" timestamp NOT NULL DEFAULT '0001-01-01 00:00:00',
+ "abook_updated" timestamp NOT NULL DEFAULT '0001-01-01 00:00:00',
+ "abook_connected" timestamp NOT NULL DEFAULT '0001-01-01 00:00:00',
+ "abook_dob" timestamp NOT NULL DEFAULT '0001-01-01 00:00:00',
+ "abook_flags" bigint NOT NULL DEFAULT '0',
+ "abook_profile" char(64) NOT NULL DEFAULT '',
+ PRIMARY KEY ("abook_id")
+);
+ create index "abook_account" on abook ("abook_account");
+ create index "abook_channel" on abook ("abook_channel");
+ create index "abook_xchan" on abook ("abook_xchan");
+ create index "abook_my_perms" on abook ("abook_my_perms");
+ create index "abook_their_perms" on abook ("abook_their_perms");
+ create index "abook_closeness" on abook ("abook_closeness");
+ create index "abook_created" on abook ("abook_created");
+ create index "abook_updated" on abook ("abook_updated");
+ create index "abook_flags" on abook ("abook_flags");
+ create index "abook_profile" on abook ("abook_profile");
+ create index "abook_dob" on abook ("abook_dob");
+ create index "abook_connected" on abook ("abook_connected");
+ create index "abook_rating" on abook ("abook_rating");
+
+CREATE TABLE "account" (
+ "account_id" serial NOT NULL,
+ "account_parent" bigint NOT NULL DEFAULT '0',
+ "account_default_channel" bigint NOT NULL DEFAULT '0',
+ "account_salt" char(32) NOT NULL DEFAULT '',
+ "account_password" text NOT NULL DEFAULT '',
+ "account_email" text NOT NULL DEFAULT '',
+ "account_external" text NOT NULL DEFAULT '',
+ "account_language" varchar(16) NOT NULL DEFAULT 'en',
+ "account_created" timestamp NOT NULL DEFAULT '0001-01-01 00:00:00',
+ "account_lastlog" timestamp NOT NULL DEFAULT '0001-01-01 00:00:00',
+ "account_flags" bigint NOT NULL DEFAULT '0',
+ "account_roles" bigint NOT NULL DEFAULT '0',
+ "account_reset" text NOT NULL DEFAULT '',
+ "account_expires" timestamp NOT NULL DEFAULT '0001-01-01 00:00:00',
+ "account_expire_notified" timestamp NOT NULL DEFAULT '0001-01-01 00:00:00',
+ "account_service_class" varchar(32) NOT NULL DEFAULT '',
+ "account_level" bigint NOT NULL DEFAULT '0',
+ "account_password_changed" timestamp NOT NULL DEFAULT '0001-01-01 00:00:00',
+ PRIMARY KEY ("account_id")
+);
+create index "account_email" on account ("account_email");
+create index "account_service_class" on account ("account_service_class");
+create index "account_parent" on account ("account_parent");
+create index "account_flags" on account ("account_flags");
+create index "account_roles" on account ("account_roles");
+create index "account_lastlog" on account ("account_lastlog");
+create index "account_expires" on account ("account_expires");
+create index "account_default_channel" on account ("account_default_channel");
+create index "account_external" on account ("account_external");
+create index "account_level" on account ("account_level");
+create index "account_password_changed" on account ("account_password_changed");
+CREATE TABLE "addon" (
+ "id" serial NOT NULL,
+ "name" text NOT NULL,
+ "version" text NOT NULL DEFAULT '0',
+ "installed" numeric(1) NOT NULL DEFAULT '0',
+ "hidden" numeric(1) NOT NULL DEFAULT '0',
+ "timestamp" numeric(20) NOT NULL DEFAULT '0',
+ "plugin_admin" numeric(1) NOT NULL DEFAULT '0',
+ PRIMARY KEY ("id")
+);
+create index "addon_hidden_idx" on addon ("hidden");
+create index "addon_name_idx" on addon ("name");
+create index "addon_installed_idx" on addon ("installed");
+CREATE TABLE "app" (
+ "id" serial NOT NULL,
+ "app_id" text NOT NULL DEFAULT '',
+ "app_sig" text NOT NULL DEFAULT '',
+ "app_author" text NOT NULL DEFAULT '',
+ "app_name" text NOT NULL DEFAULT '',
+ "app_desc" text NOT NULL,
+ "app_url" text NOT NULL DEFAULT '',
+ "app_photo" text NOT NULL DEFAULT '',
+ "app_version" text NOT NULL DEFAULT '',
+ "app_channel" bigint NOT NULL DEFAULT '0',
+ "app_addr" text NOT NULL DEFAULT '',
+ "app_price" text NOT NULL DEFAULT '',
+ "app_page" text NOT NULL DEFAULT '',
+ "app_requires" text NOT NULL DEFAULT '',
+ PRIMARY KEY ("id")
+);
+create index "app_id" on app ("app_id");
+create index "app_name" on app ("app_name");
+create index "app_url" on app ("app_url");
+create index "app_photo" on app ("app_photo");
+create index "app_version" on app ("app_version");
+create index "app_channel" on app ("app_channel");
+create index "app_price" on app ("app_price");
+CREATE TABLE "attach" (
+ "id" serial NOT NULL,
+ "aid" bigint NOT NULL DEFAULT '0',
+ "uid" bigint NOT NULL DEFAULT '0',
+ "hash" varchar(64) NOT NULL DEFAULT '',
+ "creator" varchar(128) NOT NULL DEFAULT '',
+ "filename" text NOT NULL DEFAULT '',
+ "filetype" varchar(64) NOT NULL DEFAULT '',
+ "filesize" bigint NOT NULL DEFAULT '0',
+ "revision" bigint NOT NULL DEFAULT '0',
+ "folder" varchar(64) NOT NULL DEFAULT '',
+ "flags" bigint NOT NULL DEFAULT '0',
+ "data" bytea NOT NULL,
+ "created" timestamp NOT NULL DEFAULT '0001-01-01 00:00:00',
+ "edited" timestamp NOT NULL DEFAULT '0001-01-01 00:00:00',
+ "allow_cid" text NOT NULL,
+ "allow_gid" text NOT NULL,
+ "deny_cid" text NOT NULL,
+ "deny_gid" text NOT NULL,
+ PRIMARY KEY ("id")
+
+);
+create index "attach_aid_idx" on attach ("aid");
+create index "attach_uid_idx" on attach ("uid");
+create index "attach_hash_idx" on attach ("hash");
+create index "attach_filename_idx" on attach ("filename");
+create index "attach_filetype_idx" on attach ("filetype");
+create index "attach_filesize_idx" on attach ("filesize");
+create index "attach_created_idx" on attach ("created");
+create index "attach_edited_idx" on attach ("edited");
+create index "attach_revision_idx" on attach ("revision");
+create index "attach_folder_idx" on attach ("folder");
+create index "attach_flags_idx" on attach ("flags");
+create index "attach_creator_idx" on attach ("creator");
+CREATE TABLE "auth_codes" (
+ "id" varchar(40) NOT NULL,
+ "client_id" varchar(20) NOT NULL,
+ "redirect_uri" varchar(200) NOT NULL,
+ "expires" bigint NOT NULL,
+ "scope" varchar(250) NOT NULL,
+ PRIMARY KEY ("id")
+);
+CREATE TABLE "cache" (
+ "k" text NOT NULL,
+ "v" text NOT NULL,
+ "updated" timestamp NOT NULL,
+ PRIMARY KEY ("k")
+);
+CREATE TABLE "channel" (
+ "channel_id" serial NOT NULL,
+ "channel_account_id" bigint NOT NULL DEFAULT '0',
+ "channel_primary" numeric(1) NOT NULL DEFAULT '0',
+ "channel_name" text NOT NULL DEFAULT '',
+ "channel_address" text NOT NULL DEFAULT '',
+ "channel_guid" text NOT NULL DEFAULT '',
+ "channel_guid_sig" text NOT NULL,
+ "channel_hash" text NOT NULL DEFAULT '',
+ "channel_timezone" varchar(128) NOT NULL DEFAULT 'UTC',
+ "channel_location" text NOT NULL DEFAULT '',
+ "channel_theme" text NOT NULL DEFAULT '',
+ "channel_startpage" text NOT NULL DEFAULT '',
+ "channel_pubkey" text NOT NULL,
+ "channel_prvkey" text NOT NULL,
+ "channel_notifyflags" bigint NOT NULL DEFAULT '65535',
+ "channel_pageflags" bigint NOT NULL DEFAULT '0',
+ "channel_dirdate" timestamp NOT NULL DEFAULT '0001-01-01 00:00:00',
+ "channel_deleted" timestamp NOT NULL DEFAULT '0001-01-01 00:00:00',
+ "channel_max_anon_mail" bigint NOT NULL DEFAULT '10',
+ "channel_max_friend_req" bigint NOT NULL DEFAULT '10',
+ "channel_expire_days" bigint NOT NULL DEFAULT '0',
+ "channel_passwd_reset" text NOT NULL DEFAULT '',
+ "channel_default_group" text NOT NULL DEFAULT '',
+ "channel_allow_cid" text ,
+ "channel_allow_gid" text ,
+ "channel_deny_cid" text ,
+ "channel_deny_gid" text ,
+ "channel_r_stream" bigint NOT NULL DEFAULT '128',
+ "channel_r_profile" bigint NOT NULL DEFAULT '128',
+ "channel_r_photos" bigint NOT NULL DEFAULT '128',
+ "channel_r_abook" bigint NOT NULL DEFAULT '128',
+ "channel_w_stream" bigint NOT NULL DEFAULT '128',
+ "channel_w_wall" bigint NOT NULL DEFAULT '128',
+ "channel_w_tagwall" bigint NOT NULL DEFAULT '128',
+ "channel_w_comment" bigint NOT NULL DEFAULT '128',
+ "channel_w_mail" bigint NOT NULL DEFAULT '128',
+ "channel_w_photos" bigint NOT NULL DEFAULT '128',
+ "channel_w_chat" bigint NOT NULL DEFAULT '128',
+ "channel_a_delegate" bigint NOT NULL DEFAULT '0',
+ "channel_r_storage" bigint NOT NULL DEFAULT '128',
+ "channel_w_storage" bigint NOT NULL DEFAULT '128',
+ "channel_r_pages" bigint NOT NULL DEFAULT '128',
+ "channel_w_pages" bigint NOT NULL DEFAULT '128',
+ "channel_a_republish" bigint NOT NULL DEFAULT '128',
+ "channel_w_like" bigint NOT NULL DEFAULT '128',
+ PRIMARY KEY ("channel_id"),
+ UNIQUE ("channel_address")
+);
+create index "channel_account_id" on channel ("channel_account_id");
+create index "channel_primary" on channel ("channel_primary");
+create index "channel_name" on channel ("channel_name");
+create index "channel_timezone" on channel ("channel_timezone");
+create index "channel_location" on channel ("channel_location");
+create index "channel_theme" on channel ("channel_theme");
+create index "channel_notifyflags" on channel ("channel_notifyflags");
+create index "channel_pageflags" on channel ("channel_pageflags");
+create index "channel_max_anon_mail" on channel ("channel_max_anon_mail");
+create index "channel_max_friend_req" on channel ("channel_max_friend_req");
+create index "channel_default_gid" on channel ("channel_default_group");
+create index "channel_r_stream" on channel ("channel_r_stream");
+create index "channel_r_profile" on channel ("channel_r_profile");
+create index "channel_r_photos" on channel ("channel_r_photos");
+create index "channel_r_abook" on channel ("channel_r_abook");
+create index "channel_w_stream" on channel ("channel_w_stream");
+create index "channel_w_wall" on channel ("channel_w_wall");
+create index "channel_w_tagwall" on channel ("channel_w_tagwall");
+create index "channel_w_comment" on channel ("channel_w_comment");
+create index "channel_w_mail" on channel ("channel_w_mail");
+create index "channel_w_photos" on channel ("channel_w_photos");
+create index "channel_w_chat" on channel ("channel_w_chat");
+create index "channel_guid" on channel ("channel_guid");
+create index "channel_hash" on channel ("channel_hash");
+create index "channel_expire_days" on channel ("channel_expire_days");
+create index "channel_a_delegate" on channel ("channel_a_delegate");
+create index "channel_r_storage" on channel ("channel_r_storage");
+create index "channel_w_storage" on channel ("channel_w_storage");
+create index "channel_r_pages" on channel ("channel_r_pages");
+create index "channel_w_pages" on channel ("channel_w_pages");
+create index "channel_deleted" on channel ("channel_deleted");
+create index "channel_a_republish" on channel ("channel_a_republish");
+create index "channel_w_like" on channel ("channel_w_like");
+create index "channel_dirdate" on channel ("channel_dirdate");
+CREATE TABLE "chat" (
+ "chat_id" serial NOT NULL,
+ "chat_room" bigint NOT NULL DEFAULT '0',
+ "chat_xchan" text NOT NULL DEFAULT '',
+ "chat_text" text NOT NULL,
+ "created" timestamp NOT NULL DEFAULT '0001-01-01 00:00:00',
+ PRIMARY KEY ("chat_id")
+);
+create index "chat_room_idx" on chat ("chat_room");
+create index "chat_xchan_idx" on chat ("chat_xchan");
+create index "chat_created_idx" on chat ("created");
+CREATE TABLE "chatpresence" (
+ "cp_id" serial NOT NULL,
+ "cp_room" bigint NOT NULL DEFAULT '0',
+ "cp_xchan" text NOT NULL DEFAULT '',
+ "cp_last" timestamp NOT NULL DEFAULT '0001-01-01 00:00:00',
+ "cp_status" text NOT NULL,
+ "cp_client" char(128) NOT NULL DEFAULT '',
+ PRIMARY KEY ("cp_id")
+);
+create index "cp_room" on chatpresence ("cp_room");
+create index "cp_xchan" on chatpresence ("cp_xchan");
+create index "cp_last" on chatpresence ("cp_last");
+create index "cp_status" on chatpresence ("cp_status");
+
+CREATE TABLE "chatroom" (
+ "cr_id" serial NOT NULL,
+ "cr_aid" bigint NOT NULL DEFAULT '0',
+ "cr_uid" bigint NOT NULL DEFAULT '0',
+ "cr_name" text NOT NULL DEFAULT '',
+ "cr_created" timestamp NOT NULL DEFAULT '0001-01-01 00:00:00',
+ "cr_edited" timestamp NOT NULL DEFAULT '0001-01-01 00:00:00',
+ "cr_expire" bigint NOT NULL DEFAULT '0',
+ "allow_cid" text NOT NULL,
+ "allow_gid" text NOT NULL,
+ "deny_cid" text NOT NULL,
+ "deny_gid" text NOT NULL,
+ PRIMARY KEY ("cr_id")
+);
+create index "cr_aid" on chatroom ("cr_aid");
+create index "cr_uid" on chatroom ("cr_uid");
+create index "cr_name" on chatroom ("cr_name");
+create index "cr_created" on chatroom ("cr_created");
+create index "cr_edited" on chatroom ("cr_edited");
+create index "cr_expire" on chatroom ("cr_expire");
+CREATE TABLE "clients" (
+ "client_id" varchar(20) NOT NULL,
+ "pw" varchar(20) NOT NULL,
+ "redirect_uri" varchar(200) NOT NULL,
+ "name" text,
+ "icon" text,
+ "uid" bigint NOT NULL DEFAULT '0',
+ PRIMARY KEY ("client_id")
+);
+CREATE TABLE "config" (
+ "id" serial NOT NULL,
+ "cat" text NOT NULL,
+ "k" text NOT NULL,
+ "v" text NOT NULL,
+ PRIMARY KEY ("id"),
+ UNIQUE ("cat","k")
+);
+CREATE TABLE "conv" (
+ "id" serial NOT NULL,
+ "guid" text NOT NULL,
+ "recips" text NOT NULL,
+ "uid" bigint NOT NULL,
+ "creator" text NOT NULL,
+ "created" timestamp NOT NULL DEFAULT '0001-01-01 00:00:00',
+ "updated" timestamp NOT NULL DEFAULT '0001-01-01 00:00:00',
+ "subject" text NOT NULL,
+ PRIMARY KEY ("id")
+);
+create index "conv_created_idx" on conv ("created");
+create index "conv_updated_idx" on conv ("updated");
+
+CREATE TABLE "event" (
+ "id" serial NOT NULL,
+ "aid" bigint NOT NULL DEFAULT '0',
+ "uid" bigint NOT NULL,
+ "event_xchan" text NOT NULL DEFAULT '',
+ "event_hash" text NOT NULL DEFAULT '',
+ "created" timestamp NOT NULL,
+ "edited" timestamp NOT NULL,
+ "start" timestamp NOT NULL,
+ "finish" timestamp NOT NULL,
+ "summary" text NOT NULL,
+ "description" text NOT NULL,
+ "location" text NOT NULL,
+ "type" text NOT NULL,
+ "nofinish" numeric(1) NOT NULL DEFAULT '0',
+ "adjust" numeric(1) NOT NULL DEFAULT '1',
+ "ignore" numeric(1) NOT NULL DEFAULT '0',
+ "allow_cid" text NOT NULL,
+ "allow_gid" text NOT NULL,
+ "deny_cid" text NOT NULL,
+ "deny_gid" text NOT NULL,
+ PRIMARY KEY ("id")
+);
+create index "event_uid_idx" on event ("uid");
+create index "event_type_idx" on event ("type");
+create index "event_start_idx" on event ("start");
+create index "event_finish_idx" on event ("finish");
+create index "event_adjust_idx" on event ("adjust");
+create index "event_nofinish_idx" on event ("nofinish");
+create index "event_ignore_idx" on event ("ignore");
+create index "event_aid_idx" on event ("aid");
+create index "event_hash_idx" on event ("event_hash");
+create index "event_xchan_idx" on event ("event_xchan");
+
+
+CREATE TABLE "fcontact" (
+ "id" serial NOT NULL,
+ "url" text NOT NULL,
+ "name" text NOT NULL,
+ "photo" text NOT NULL,
+ "request" text NOT NULL,
+ "nick" text NOT NULL,
+ "addr" text NOT NULL,
+ "batch" text NOT NULL,
+ "notify" text NOT NULL,
+ "poll" text NOT NULL,
+ "confirm" text NOT NULL,
+ "priority" numeric(1) NOT NULL,
+ "network" varchar(32) NOT NULL DEFAULT '',
+ "alias" text NOT NULL,
+ "pubkey" text NOT NULL,
+ "updated" timestamp NOT NULL DEFAULT '0001-01-01 00:00:00',
+ PRIMARY KEY ("id")
+);
+create index "fcontact_addr_idx" on fcontact ("addr");
+create index "fcontact_network_idx" on fcontact ("network");
+
+CREATE TABLE "ffinder" (
+ "id" serial NOT NULL,
+ "uid" bigint NOT NULL,
+ "cid" bigint NOT NULL,
+ "fid" bigint NOT NULL,
+ PRIMARY KEY ("id")
+);
+create index "ffinder_uid_idx" on ffinder ("uid");
+create index "ffinder_cid_idx" on ffinder ("cid");
+create index "ffinder_fid_idx" on ffinder ("fid");
+
+CREATE TABLE "fserver" (
+ "id" serial NOT NULL,
+ "server" text NOT NULL,
+ "posturl" text NOT NULL,
+ "key" text NOT NULL,
+ PRIMARY KEY ("id")
+);
+create index "fserver_server_idx" on fserver ("server");
+create index "fserver_posturl_idx" on fserver ("posturl");
+
+CREATE TABLE "fsuggest" (
+ "id" serial NOT NULL,
+ "uid" bigint NOT NULL,
+ "cid" bigint NOT NULL,
+ "name" text NOT NULL,
+ "url" text NOT NULL,
+ "request" text NOT NULL,
+ "photo" text NOT NULL,
+ "note" text NOT NULL,
+ "created" timestamp NOT NULL,
+ PRIMARY KEY ("id")
+);
+CREATE TABLE "group_member" (
+ "id" serial NOT NULL,
+ "uid" bigint NOT NULL,
+ "gid" bigint NOT NULL,
+ "xchan" text NOT NULL DEFAULT '',
+ PRIMARY KEY ("id")
+);
+create index "groupmember_uid" on group_member ("uid");
+create index "groupmember_gid" on group_member ("gid");
+create index "groupmember_xchan" on group_member ("xchan");
+
+CREATE TABLE "groups" (
+ "id" serial NOT NULL,
+ "hash" text NOT NULL DEFAULT '',
+ "uid" bigint NOT NULL,
+ "visible" numeric(1) NOT NULL DEFAULT '0',
+ "deleted" numeric(1) NOT NULL DEFAULT '0',
+ "name" text NOT NULL,
+ PRIMARY KEY ("id")
+
+);
+create index "groups_uid_idx" on groups ("uid");
+create index "groups_visible_idx" on groups ("visible");
+create index "groups_deleted_idx" on groups ("deleted");
+create index "groups_hash_idx" on groups ("hash");
+
+CREATE TABLE "hook" (
+ "id" serial NOT NULL,
+ "hook" text NOT NULL,
+ "file" text NOT NULL,
+ "function" text NOT NULL,
+ "priority" bigint NOT NULL DEFAULT '0',
+ PRIMARY KEY ("id")
+
+);
+create index "hook_idx" on hook ("hook");
+CREATE TABLE "hubloc" (
+ "hubloc_id" serial NOT NULL,
+ "hubloc_guid" text NOT NULL DEFAULT '',
+ "hubloc_guid_sig" text NOT NULL DEFAULT '',
+ "hubloc_hash" text NOT NULL,
+ "hubloc_addr" text NOT NULL DEFAULT '',
+ "hubloc_network" text NOT NULL DEFAULT '',
+ "hubloc_flags" bigint NOT NULL DEFAULT '0',
+ "hubloc_status" bigint NOT NULL DEFAULT '0',
+ "hubloc_url" text NOT NULL DEFAULT '',
+ "hubloc_url_sig" text NOT NULL DEFAULT '',
+ "hubloc_host" text NOT NULL DEFAULT '',
+ "hubloc_callback" text NOT NULL DEFAULT '',
+ "hubloc_connect" text NOT NULL DEFAULT '',
+ "hubloc_sitekey" text NOT NULL DEFAULT '',
+ "hubloc_updated" timestamp NOT NULL DEFAULT '0001-01-01 00:00:00',
+ "hubloc_connected" timestamp NOT NULL DEFAULT '0001-01-01 00:00:00',
+ PRIMARY KEY ("hubloc_id")
+);
+create index "hubloc_url" on hubloc ("hubloc_url");
+create index "hubloc_guid" on hubloc ("hubloc_guid");
+create index "hubloc_flags" on hubloc ("hubloc_flags");
+create index "hubloc_connect" on hubloc ("hubloc_connect");
+create index "hubloc_host" on hubloc ("hubloc_host");
+create index "hubloc_addr" on hubloc ("hubloc_addr");
+create index "hubloc_network" on hubloc ("hubloc_network");
+create index "hubloc_updated" on hubloc ("hubloc_updated");
+create index "hubloc_connected" on hubloc ("hubloc_connected");
+create index "hubloc_status" on hubloc ("hubloc_status");
+CREATE TABLE "issue" (
+ "issue_id" serial NOT NULL,
+ "issue_created" timestamp NOT NULL DEFAULT '0001-01-01 00:00:00',
+ "issue_updated" timestamp NOT NULL DEFAULT '0001-01-01 00:00:00',
+ "issue_assigned" text NOT NULL,
+ "issue_priority" bigint NOT NULL,
+ "issue_status" bigint NOT NULL,
+ "issue_component" text NOT NULL,
+ PRIMARY KEY ("issue_id")
+);
+create index "issue_created" on issue ("issue_created");
+create index "issue_updated" on issue ("issue_updated");
+create index "issue_assigned" on issue ("issue_assigned");
+create index "issue_priority" on issue ("issue_priority");
+create index "issue_status" on issue ("issue_status");
+create index "issue_component" on issue ("issue_component");
+
+CREATE TABLE "item" (
+ "id" serial NOT NULL,
+ "mid" text NOT NULL DEFAULT '',
+ "aid" bigint NOT NULL DEFAULT '0',
+ "uid" bigint NOT NULL DEFAULT '0',
+ "parent" bigint NOT NULL DEFAULT '0',
+ "parent_mid" text NOT NULL DEFAULT '',
+ "thr_parent" text NOT NULL DEFAULT '',
+ "created" timestamp NOT NULL DEFAULT '0001-01-01 00:00:00',
+ "edited" timestamp NOT NULL DEFAULT '0001-01-01 00:00:00',
+ "expires" timestamp NOT NULL DEFAULT '0001-01-01 00:00:00',
+ "commented" timestamp NOT NULL DEFAULT '0001-01-01 00:00:00',
+ "received" timestamp NOT NULL DEFAULT '0001-01-01 00:00:00',
+ "changed" timestamp NOT NULL DEFAULT '0001-01-01 00:00:00',
+ "comments_closed" timestamp NOT NULL DEFAULT '0001-01-01 00:00:00',
+ "owner_xchan" text NOT NULL DEFAULT '',
+ "author_xchan" text NOT NULL DEFAULT '',
+ "source_xchan" text NOT NULL DEFAULT '',
+ "mimetype" text NOT NULL DEFAULT '',
+ "title" text NOT NULL,
+ "body" text NOT NULL,
+ "app" text NOT NULL DEFAULT '',
+ "lang" varchar(64) NOT NULL DEFAULT '',
+ "revision" bigint NOT NULL DEFAULT '0',
+ "verb" text NOT NULL DEFAULT '',
+ "obj_type" text NOT NULL DEFAULT '',
+ "object" text NOT NULL,
+ "tgt_type" text NOT NULL DEFAULT '',
+ "target" text NOT NULL,
+ "layout_mid" text NOT NULL DEFAULT '',
+ "postopts" text NOT NULL DEFAULT '',
+ "route" text NOT NULL DEFAULT '',
+ "llink" text NOT NULL DEFAULT '',
+ "plink" text NOT NULL DEFAULT '',
+ "resource_id" text NOT NULL DEFAULT '',
+ "resource_type" varchar(16) NOT NULL DEFAULT '',
+ "attach" text NOT NULL,
+ "sig" text NOT NULL DEFAULT '',
+ "diaspora_meta" text NOT NULL DEFAULT '',
+ "location" text NOT NULL DEFAULT '',
+ "coord" text NOT NULL DEFAULT '',
+ "public_policy" text NOT NULL DEFAULT '',
+ "comment_policy" text NOT NULL DEFAULT '',
+ "allow_cid" text NOT NULL,
+ "allow_gid" text NOT NULL,
+ "deny_cid" text NOT NULL,
+ "deny_gid" text NOT NULL,
+ "item_restrict" bigint NOT NULL DEFAULT '0',
+ "item_flags" bigint NOT NULL DEFAULT '0',
+ "item_private" numeric(4) NOT NULL DEFAULT '0',
+ "item_search_vector" tsvector,
+ PRIMARY KEY ("id")
+);
+create index "item_uid" on item ("uid");
+create index "item_parent" on item ("parent");
+create index "item_created" on item ("created");
+create index "item_edited" on item ("edited");
+create index "item_received" on item ("received");
+create index "item_uid_commented" on item ("uid","commented");
+create index "item_uid_created" on item ("uid","created");
+create index "item_changed" on item ("changed");
+create index "item_comments_closed" on item ("comments_closed");
+create index "item_aid" on item ("aid");
+create index "item_owner_xchan" on item ("owner_xchan");
+create index "item_author_xchan" on item ("author_xchan");
+create index "item_resource_type" on item ("resource_type");
+create index "item_restrict" on item ("item_restrict");
+create index "item_flags" on item ("item_flags");
+create index "item_commented" on item ("commented");
+create index "item_verb" on item ("verb");
+create index "item_private" on item ("item_private");
+create index "item_llink" on item ("llink");
+create index "item_expires" on item ("expires");
+create index "item_revision" on item ("revision");
+create index "item_mimetype" on item ("mimetype");
+create index "item_mid" on item ("mid");
+create index "item_parent_mid" on item ("parent_mid");
+create index "item_uid_mid" on item ("mid","uid");
+create index "item_public_policy" on item ("public_policy");
+create index "item_comment_policy" on item ("comment_policy");
+create index "item_layout_mid" on item ("layout_mid");
+
+-- fulltext indexes
+create index "item_search_idx" on item USING gist("item_search_vector");
+create index "item_allow_cid" on item ("allow_cid");
+create index "item_allow_gid" on item ("allow_gid");
+create index "item_deny_cid" on item ("deny_cid");
+create index "item_deny_gid" on item ("deny_gid");
+
+CREATE TABLE "item_id" (
+ "id" serial NOT NULL,
+ "iid" bigint NOT NULL,
+ "uid" bigint NOT NULL,
+ "sid" text NOT NULL,
+ "service" text NOT NULL,
+ PRIMARY KEY ("id")
+
+);
+create index "itemid_uid" on item_id ("uid");
+create index "itemid_sid" on item_id ("sid");
+create index "itemid_service" on item_id ("service");
+create index "itemid_iid" on item_id ("iid");
+CREATE TABLE "likes" (
+ "id" serial NOT NULL,
+ "channel_id" bigint NOT NULL DEFAULT '0',
+ "liker" char(128) NOT NULL DEFAULT '',
+ "likee" char(128) NOT NULL DEFAULT '',
+ "iid" bigint NOT NULL DEFAULT '0',
+ "verb" text NOT NULL DEFAULT '',
+ "target_type" text NOT NULL DEFAULT '',
+ "target_id" char(128) NOT NULL DEFAULT '',
+ "target" text NOT NULL,
+ PRIMARY KEY ("id")
+);
+create index "likes_channel_id" on likes ("channel_id");
+create index "likes_liker" on likes ("liker");
+create index "likes_likee" on likes ("likee");
+create index "likes_iid" on likes ("iid");
+create index "likes_verb" on likes ("verb");
+create index "likes_target_type" on likes ("target_type");
+create index "likes_target_id" on likes ("target_id");
+CREATE TABLE "mail" (
+ "id" serial NOT NULL,
+ "convid" bigint NOT NULL DEFAULT '0',
+ "mail_flags" bigint NOT NULL DEFAULT '0',
+ "from_xchan" text NOT NULL DEFAULT '',
+ "to_xchan" text NOT NULL DEFAULT '',
+ "account_id" bigint NOT NULL DEFAULT '0',
+ "channel_id" bigint NOT NULL,
+ "title" text NOT NULL,
+ "body" text NOT NULL,
+ "attach" text NOT NULL DEFAULT '',
+ "mid" text NOT NULL,
+ "parent_mid" text NOT NULL,
+ "created" timestamp NOT NULL DEFAULT '0001-01-01 00:00:00',
+ "expires" timestamp NOT NULL DEFAULT '0001-01-01 00:00:00',
+ PRIMARY KEY ("id")
+);
+create index "mail_convid" on mail ("convid");
+create index "mail_created" on mail ("created");
+create index "mail_flags" on mail ("mail_flags");
+create index "mail_account_id" on mail ("account_id");
+create index "mail_channel_id" on mail ("channel_id");
+create index "mail_from_xchan" on mail ("from_xchan");
+create index "mail_to_xchan" on mail ("to_xchan");
+create index "mail_mid" on mail ("mid");
+create index "mail_parent_mid" on mail ("parent_mid");
+create index "mail_expires" on mail ("expires");
+CREATE TABLE "manage" (
+ "id" serial NOT NULL,
+ "uid" bigint NOT NULL,
+ "xchan" text NOT NULL DEFAULT '',
+ PRIMARY KEY ("id")
+
+);
+create index "manage_uid" on manage ("uid");
+create index "manage_xchan" on manage ("xchan");
+CREATE TABLE "menu" (
+ "menu_id" serial NOT NULL,
+ "menu_channel_id" bigint NOT NULL DEFAULT '0',
+ "menu_name" text NOT NULL DEFAULT '',
+ "menu_desc" text NOT NULL DEFAULT '',
+ "menu_flags" bigint NOT NULL DEFAULT '0',
+ PRIMARY KEY ("menu_id")
+);
+create index "menu_channel_id" on menu ("menu_channel_id");
+create index "menu_name" on menu ("menu_name");
+create index "menu_flags" on menu ("menu_flags");
+CREATE TABLE "menu_item" (
+ "mitem_id" serial NOT NULL,
+ "mitem_link" text NOT NULL DEFAULT '',
+ "mitem_desc" text NOT NULL DEFAULT '',
+ "mitem_flags" bigint NOT NULL DEFAULT '0',
+ "allow_cid" text NOT NULL,
+ "allow_gid" text NOT NULL,
+ "deny_cid" text NOT NULL,
+ "deny_gid" text NOT NULL,
+ "mitem_channel_id" bigint NOT NULL,
+ "mitem_menu_id" bigint NOT NULL DEFAULT '0',
+ "mitem_order" bigint NOT NULL DEFAULT '0',
+ PRIMARY KEY ("mitem_id")
+
+);
+create index "mitem_channel_id" on menu_item ("mitem_channel_id");
+create index "mitem_menu_id" on menu_item ("mitem_menu_id");
+create index "mitem_flags" on menu_item ("mitem_flags");
+CREATE TABLE "notify" (
+ "id" serial NOT NULL,
+ "hash" char(64) NOT NULL,
+ "name" text NOT NULL,
+ "url" text NOT NULL,
+ "photo" text NOT NULL,
+ "date" timestamp NOT NULL,
+ "msg" text NOT NULL DEFAULT '',
+ "aid" bigint NOT NULL,
+ "uid" bigint NOT NULL,
+ "link" text NOT NULL,
+ "parent" text NOT NULL DEFAULT '',
+ "seen" numeric(1) NOT NULL DEFAULT '0',
+ "type" bigint NOT NULL,
+ "verb" text NOT NULL,
+ "otype" varchar(16) NOT NULL,
+ PRIMARY KEY ("id")
+);
+create index "notify_type" on notify ("type");
+create index "notify_seen" on notify ("seen");
+create index "notify_uid" on notify ("uid");
+create index "notify_date" on notify ("date");
+create index "notify_hash" on notify ("hash");
+create index "notify_parent" on notify ("parent");
+create index "notify_link" on notify ("link");
+create index "notify_otype" on notify ("otype");
+create index "notify_aid" on notify ("aid");
+CREATE TABLE "obj" (
+ "obj_id" serial NOT NULL,
+ "obj_page" char(64) NOT NULL DEFAULT '',
+ "obj_verb" text NOT NULL DEFAULT '',
+ "obj_type" bigint NOT NULL DEFAULT '0',
+ "obj_obj" text NOT NULL DEFAULT '',
+ "obj_channel" bigint NOT NULL DEFAULT '0',
+ "allow_cid" text NOT NULL,
+ "allow_gid" text NOT NULL,
+ "deny_cid" text NOT NULL,
+ "deny_gid" text NOT NULL,
+ PRIMARY KEY ("obj_id")
+
+);
+create index "obj_verb" on obj ("obj_verb");
+create index "obj_page" on obj ("obj_page");
+create index "obj_type" on obj ("obj_type");
+create index "obj_channel" on obj ("obj_channel");
+create index "obj_obj" on obj ("obj_obj");
+
+CREATE TABLE "outq" (
+ "outq_hash" text NOT NULL,
+ "outq_account" bigint NOT NULL DEFAULT '0',
+ "outq_channel" bigint NOT NULL DEFAULT '0',
+ "outq_driver" varchar(32) NOT NULL DEFAULT '',
+ "outq_posturl" text NOT NULL DEFAULT '',
+ "outq_async" numeric(1) NOT NULL DEFAULT '0',
+ "outq_delivered" numeric(1) NOT NULL DEFAULT '0',
+ "outq_created" timestamp NOT NULL DEFAULT '0001-01-01 00:00:00',
+ "outq_updated" timestamp NOT NULL DEFAULT '0001-01-01 00:00:00',
+ "outq_notify" text NOT NULL,
+ "outq_msg" text NOT NULL,
+ PRIMARY KEY ("outq_hash")
+);
+create index "outq_account" on outq ("outq_account");
+create index "outq_channel" on outq ("outq_channel");
+create index "outq_hub" on outq ("outq_posturl");
+create index "outq_created" on outq ("outq_created");
+create index "outq_updated" on outq ("outq_updated");
+create index "outq_async" on outq ("outq_async");
+create index "outq_delivered" on outq ("outq_delivered");
+
+CREATE TABLE "pconfig" (
+ "id" serial NOT NULL,
+ "uid" bigint NOT NULL DEFAULT '0',
+ "cat" text NOT NULL,
+ "k" text NOT NULL,
+ "v" text NOT NULL,
+ PRIMARY KEY ("id"),
+ UNIQUE ("uid","cat","k")
+);
+CREATE TABLE "photo" (
+ "id" serial NOT NULL,
+ "aid" bigint NOT NULL DEFAULT '0',
+ "uid" bigint NOT NULL,
+ "xchan" text NOT NULL DEFAULT '',
+ "resource_id" text NOT NULL,
+ "created" timestamp NOT NULL,
+ "edited" timestamp NOT NULL,
+ "title" text NOT NULL,
+ "description" text NOT NULL,
+ "album" text NOT NULL,
+ "filename" text NOT NULL,
+ "type" varchar(128) NOT NULL DEFAULT 'image/jpeg',
+ "height" numeric(6) NOT NULL,
+ "width" numeric(6) NOT NULL,
+ "size" bigint NOT NULL DEFAULT '0',
+ "data" bytea NOT NULL,
+ "scale" numeric(3) NOT NULL,
+ "profile" numeric(1) NOT NULL DEFAULT '0',
+ "photo_flags" bigint NOT NULL DEFAULT '0',
+ "allow_cid" text NOT NULL,
+ "allow_gid" text NOT NULL,
+ "deny_cid" text NOT NULL,
+ "deny_gid" text NOT NULL,
+ PRIMARY KEY ("id")
+);
+create index "photo_uid" on photo ("uid");
+create index "photo_album" on photo ("album");
+create index "photo_scale" on photo ("scale");
+create index "photo_profile" on photo ("profile");
+create index "photo_flags" on photo ("photo_flags");
+create index "photo_type" on photo ("type");
+create index "photo_aid" on photo ("aid");
+create index "photo_xchan" on photo ("xchan");
+create index "photo_size" on photo ("size");
+create index "photo_resource_id" on photo ("resource_id");
+
+CREATE TABLE "poll" (
+ "poll_id" serial NOT NULL,
+ "poll_channel" bigint NOT NULL DEFAULT '0',
+ "poll_desc" text NOT NULL,
+ "poll_flags" bigint NOT NULL DEFAULT '0',
+ "poll_votes" bigint NOT NULL DEFAULT '0',
+ PRIMARY KEY ("poll_id")
+
+);
+create index "poll_channel" on poll ("poll_channel");
+create index "poll_flags" on poll ("poll_flags");
+create index "poll_votes" on poll ("poll_votes");
+CREATE TABLE "poll_elm" (
+ "pelm_id" serial NOT NULL,
+ "pelm_poll" bigint NOT NULL DEFAULT '0',
+ "pelm_desc" text NOT NULL,
+ "pelm_flags" bigint NOT NULL DEFAULT '0',
+ "pelm_result" float NOT NULL DEFAULT '0',
+ PRIMARY KEY ("pelm_id")
+);
+create index "pelm_poll" on poll_elm ("pelm_poll");
+create index "pelm_result" on poll_elm ("pelm_result");
+
+CREATE TABLE "profdef" (
+ "id" serial NOT NULL,
+ "field_name" text NOT NULL DEFAULT '',
+ "field_type" varchar(16) NOT NULL DEFAULT '',
+ "field_desc" text NOT NULL DEFAULT '',
+ "field_help" text NOT NULL DEFAULT '',
+ "field_inputs" text NOT NULL,
+ PRIMARY KEY ("id")
+);
+create index "profdef_field_name" on profdef ("field_name");
+CREATE TABLE "profext" (
+ "id" serial NOT NULL,
+ "channel_id" bigint NOT NULL DEFAULT '0',
+ "hash" text NOT NULL DEFAULT '',
+ "k" text NOT NULL DEFAULT '',
+ "v" text NOT NULL,
+ PRIMARY KEY ("id")
+);
+create index "profext_channel_id" on profext ("channel_id");
+create index "profext_hash" on profext ("hash");
+create index "profext_k" on profext ("k");
+
+CREATE TABLE "profile" (
+ "id" serial NOT NULL,
+ "profile_guid" char(64) NOT NULL DEFAULT '',
+ "aid" bigint NOT NULL DEFAULT '0',
+ "uid" bigint NOT NULL,
+ "profile_name" text NOT NULL,
+ "is_default" numeric(1) NOT NULL DEFAULT '0',
+ "hide_friends" numeric(1) NOT NULL DEFAULT '0',
+ "name" text NOT NULL,
+ "pdesc" text NOT NULL DEFAULT '',
+ "chandesc" text NOT NULL DEFAULT '',
+ "dob" varchar(32) NOT NULL DEFAULT '',
+ "dob_tz" text NOT NULL DEFAULT 'UTC',
+ "address" text NOT NULL DEFAULT '',
+ "locality" text NOT NULL DEFAULT '',
+ "region" text NOT NULL DEFAULT '',
+ "postal_code" varchar(32) NOT NULL DEFAULT '',
+ "country_name" text NOT NULL DEFAULT '',
+ "hometown" text NOT NULL DEFAULT '',
+ "gender" varchar(32) NOT NULL DEFAULT '',
+ "marital" text NOT NULL DEFAULT '',
+ "with" text NOT NULL DEFAULT '',
+ "howlong" timestamp NOT NULL DEFAULT '0001-01-01 00:00:00',
+ "sexual" text NOT NULL DEFAULT '',
+ "politic" text NOT NULL DEFAULT '',
+ "religion" text NOT NULL DEFAULT '',
+ "keywords" text NOT NULL DEFAULT '',
+ "likes" text NOT NULL DEFAULT '',
+ "dislikes" text NOT NULL DEFAULT '',
+ "about" text NOT NULL DEFAULT '',
+ "summary" text NOT NULL DEFAULT '',
+ "music" text NOT NULL DEFAULT '',
+ "book" text NOT NULL DEFAULT '',
+ "tv" text NOT NULL DEFAULT '',
+ "film" text NOT NULL DEFAULT '',
+ "interest" text NOT NULL DEFAULT '',
+ "romance" text NOT NULL DEFAULT '',
+ "work" text NOT NULL DEFAULT '',
+ "education" text NOT NULL DEFAULT '',
+ "contact" text NOT NULL DEFAULT '',
+ "channels" text NOT NULL DEFAULT '',
+ "homepage" text NOT NULL DEFAULT '',
+ "photo" text NOT NULL,
+ "thumb" text NOT NULL,
+ "publish" numeric(1) NOT NULL DEFAULT '0',
+ PRIMARY KEY ("id"),
+ UNIQUE ("profile_guid","uid")
+
+);
+create index "profile_uid" on profile ("uid");
+create index "profile_locality" on profile ("locality");
+create index "profile_hometown" on profile ("hometown");
+create index "profile_gender" on profile ("gender");
+create index "profile_marital" on profile ("marital");
+create index "profile_sexual" on profile ("sexual");
+create index "profile_publish" on profile ("publish");
+create index "profile_aid" on profile ("aid");
+create index "profile_is_default" on profile ("is_default");
+create index "profile_hide_friends" on profile ("hide_friends");
+create index "profile_postal_code" on profile ("postal_code");
+create index "profile_country_name" on profile ("country_name");
+create index "profile_guid" on profile ("profile_guid");
+CREATE TABLE "profile_check" (
+ "id" serial NOT NULL,
+ "uid" bigint NOT NULL,
+ "cid" bigint NOT NULL DEFAULT '0',
+ "dfrn_id" text NOT NULL,
+ "sec" text NOT NULL,
+ "expire" bigint NOT NULL,
+ PRIMARY KEY ("id")
+);
+create index "pc_uid" on profile_check ("uid");
+create index "pc_cid" on profile_check ("cid");
+create index "pc_dfrn_id" on profile_check ("dfrn_id");
+create index "pc_sec" on profile_check ("sec");
+create index "pc_expire" on profile_check ("expire");
+
+CREATE TABLE "register" (
+ "id" serial NOT NULL,
+ "hash" text NOT NULL,
+ "created" timestamp NOT NULL,
+ "uid" bigint NOT NULL,
+ "password" text NOT NULL,
+ "language" varchar(16) NOT NULL,
+ PRIMARY KEY ("id")
+);
+create index "reg_hash" on register ("hash");
+create index "reg_created" on register ("created");
+create index "reg_uid" on register ("uid");
+CREATE TABLE "session" (
+ "id" serial,
+ "sid" text NOT NULL,
+ "data" text NOT NULL,
+ "expire" numeric(20) NOT NULL,
+ PRIMARY KEY ("id")
+);
+create index "session_sid" on session ("sid");
+create index "session_expire" on session ("expire");
+CREATE TABLE "shares" (
+ "share_id" serial NOT NULL,
+ "share_type" bigint NOT NULL DEFAULT '0',
+ "share_target" bigint NOT NULL DEFAULT '0',
+ "share_xchan" text NOT NULL DEFAULT '',
+ PRIMARY KEY ("share_id")
+);
+create index "share_type" on shares ("share_type");
+create index "share_target" on shares ("share_target");
+create index "share_xchan" on shares ("share_xchan");
+
+CREATE TABLE "sign" (
+ "id" serial NOT NULL,
+ "iid" bigint NOT NULL DEFAULT '0',
+ "retract_iid" bigint NOT NULL DEFAULT '0',
+ "signed_text" text NOT NULL,
+ "signature" text NOT NULL,
+ "signer" text NOT NULL,
+ PRIMARY KEY ("id")
+);
+create index "sign_iid" on "sign" ("iid");
+create index "sign_retract_iid" on "sign" ("retract_iid");
+
+CREATE TABLE "site" (
+ "site_url" text NOT NULL,
+ "site_access" bigint NOT NULL DEFAULT '0',
+ "site_flags" bigint NOT NULL DEFAULT '0',
+ "site_update" timestamp NOT NULL DEFAULT '0001-01-01 00:00:00',
+ "site_pull" timestamp NOT NULL DEFAULT '0001-01-01 00:00:00',
+ "site_sync" timestamp NOT NULL DEFAULT '0001-01-01 00:00:00',
+ "site_directory" text NOT NULL DEFAULT '',
+ "site_register" bigint NOT NULL DEFAULT '0',
+ "site_sellpage" text NOT NULL DEFAULT '',
+ "site_location" text NOT NULL DEFAULT '',
+ "site_realm" text NOT NULL DEFAULT '',
+ PRIMARY KEY ("site_url")
+);
+create index "site_flags" on site ("site_flags");
+create index "site_update" on site ("site_update");
+create index "site_directory" on site ("site_directory");
+create index "site_register" on site ("site_register");
+create index "site_access" on site ("site_access");
+create index "site_sellpage" on site ("site_sellpage");
+create index "site_realm" on site ("site_realm");
+
+CREATE TABLE "source" (
+ "src_id" serial NOT NULL,
+ "src_channel_id" bigint NOT NULL DEFAULT '0',
+ "src_channel_xchan" text NOT NULL DEFAULT '',
+ "src_xchan" text NOT NULL DEFAULT '',
+ "src_patt" text NOT NULL,
+ PRIMARY KEY ("src_id")
+);
+create index "src_channel_id" on "source" ("src_channel_id");
+create index "src_channel_xchan" on "source" ("src_channel_xchan");
+create index "src_xchan" on "source" ("src_xchan");
+CREATE TABLE "spam" (
+ "id" serial NOT NULL,
+ "uid" bigint NOT NULL,
+ "spam" bigint NOT NULL DEFAULT '0',
+ "ham" bigint NOT NULL DEFAULT '0',
+ "term" text NOT NULL,
+ "date" timestamp NOT NULL DEFAULT '0001-01-01 00:00:00',
+ PRIMARY KEY ("id")
+);
+create index "spam_uid" on spam ("uid");
+create index "spam_spam" on spam ("spam");
+create index "spam_ham" on spam ("ham");
+create index "spam_term" on spam ("term");
+CREATE TABLE "sys_perms" (
+ "id" serial NOT NULL,
+ "cat" text NOT NULL,
+ "k" text NOT NULL,
+ "v" text NOT NULL,
+ "public_perm" numeric(1) NOT NULL,
+ PRIMARY KEY ("id")
+);
+CREATE TABLE "term" (
+ "tid" serial NOT NULL,
+ "aid" bigint NOT NULL DEFAULT '0',
+ "uid" bigint NOT NULL DEFAULT '0',
+ "oid" bigint NOT NULL,
+ "otype" numeric(3) NOT NULL,
+ "type" numeric(3) NOT NULL,
+ "term" text NOT NULL,
+ "url" text NOT NULL,
+ "imgurl" text NOT NULL DEFAULT '',
+ "term_hash" text NOT NULL DEFAULT '',
+ "parent_hash" text NOT NULL DEFAULT '',
+ PRIMARY KEY ("tid")
+);
+create index "term_oid" on term ("oid");
+create index "term_otype" on term ("otype");
+create index "term_type" on term ("type");
+create index "term_term" on term ("term");
+create index "term_uid" on term ("uid");
+create index "term_aid" on term ("aid");
+create index "term_imgurl" on term ("imgurl");
+create index "term_hash" on term ("term_hash");
+create index "term_parent_hash" on term ("parent_hash");
+CREATE TABLE "tokens" (
+ "id" varchar(40) NOT NULL,
+ "secret" text NOT NULL,
+ "client_id" varchar(20) NOT NULL,
+ "expires" numeric(20) NOT NULL,
+ "scope" varchar(200) NOT NULL,
+ "uid" bigint NOT NULL,
+ PRIMARY KEY ("id")
+);
+create index "tokens_client_id" on tokens ("client_id");
+create index "tokens_expires" on tokens ("expires");
+create index "tokens_uid" on tokens ("uid");
+
+CREATE TABLE "updates" (
+ "ud_id" serial NOT NULL,
+ "ud_hash" char(128) NOT NULL,
+ "ud_guid" text NOT NULL DEFAULT '',
+ "ud_date" timestamp NOT NULL DEFAULT '0001-01-01 00:00:00',
+ "ud_last" timestamp NOT NULL DEFAULT '0001-01-01 00:00:00',
+ "ud_flags" bigint NOT NULL DEFAULT '0',
+ "ud_addr" text NOT NULL DEFAULT '',
+ PRIMARY KEY ("ud_id")
+);
+create index "ud_date" on updates ("ud_date");
+create index "ud_guid" on updates ("ud_guid");
+create index "ud_hash" on updates ("ud_hash");
+create index "ud_flags" on updates ("ud_flags");
+create index "ud_addr" on updates ("ud_addr");
+create index "ud_last" on updates ("ud_last");
+CREATE TABLE "verify" (
+ "id" serial NOT NULL,
+ "channel" bigint NOT NULL DEFAULT '0',
+ "type" varchar(32) NOT NULL DEFAULT '',
+ "token" text NOT NULL DEFAULT '',
+ "meta" text NOT NULL DEFAULT '',
+ "created" timestamp NOT NULL DEFAULT '0001-01-01 00:00:00',
+ PRIMARY KEY ("id")
+);
+create index "verify_channel" on verify ("channel");
+create index "verify_type" on verify ("type");
+create index "verify_token" on verify ("token");
+create index "verify_meta" on verify ("meta");
+create index "verify_created" on verify ("created");
+CREATE TABLE "vote" (
+ "vote_id" serial NOT NULL,
+ "vote_poll" bigint NOT NULL DEFAULT '0',
+ "vote_element" bigint NOT NULL DEFAULT '0',
+ "vote_result" text NOT NULL,
+ "vote_xchan" text NOT NULL DEFAULT '',
+ PRIMARY KEY ("vote_id"),
+ UNIQUE ("vote_poll","vote_element","vote_xchan")
+);
+create index "vote_poll" on vote ("vote_poll");
+create index "vote_element" on vote ("vote_element");
+CREATE TABLE "xchan" (
+ "xchan_hash" text NOT NULL,
+ "xchan_guid" text NOT NULL DEFAULT '',
+ "xchan_guid_sig" text NOT NULL DEFAULT '',
+ "xchan_pubkey" text NOT NULL DEFAULT '',
+ "xchan_photo_mimetype" text NOT NULL DEFAULT 'image/jpeg',
+ "xchan_photo_l" text NOT NULL DEFAULT '',
+ "xchan_photo_m" text NOT NULL DEFAULT '',
+ "xchan_photo_s" text NOT NULL DEFAULT '',
+ "xchan_addr" text NOT NULL DEFAULT '',
+ "xchan_url" text NOT NULL DEFAULT '',
+ "xchan_connurl" text NOT NULL DEFAULT '',
+ "xchan_follow" text NOT NULL DEFAULT '',
+ "xchan_connpage" text NOT NULL DEFAULT '',
+ "xchan_name" text NOT NULL DEFAULT '',
+ "xchan_network" text NOT NULL DEFAULT '',
+ "xchan_instance_url" text NOT NULL DEFAULT '',
+ "xchan_flags" bigint NOT NULL DEFAULT '0',
+ "xchan_photo_date" timestamp NOT NULL DEFAULT '0001-01-01 00:00:00',
+ "xchan_name_date" timestamp NOT NULL DEFAULT '0001-01-01 00:00:00',
+ PRIMARY KEY ("xchan_hash")
+);
+create index "xchan_guid" on xchan ("xchan_guid");
+create index "xchan_addr" on xchan ("xchan_addr");
+create index "xchan_name" on xchan ("xchan_name");
+create index "xchan_network" on xchan ("xchan_network");
+create index "xchan_url" on xchan ("xchan_url");
+create index "xchan_flags" on xchan ("xchan_flags");
+create index "xchan_connurl" on xchan ("xchan_connurl");
+create index "xchan_instance_url" on xchan ("xchan_instance_url");
+create index "xchan_follow" on xchan ("xchan_follow");
+CREATE TABLE "xchat" (
+ "xchat_id" serial NOT NULL,
+ "xchat_url" text NOT NULL DEFAULT '',
+ "xchat_desc" text NOT NULL DEFAULT '',
+ "xchat_xchan" text NOT NULL DEFAULT '',
+ "xchat_edited" timestamp NOT NULL DEFAULT '0001-01-01 00:00:00',
+ PRIMARY KEY ("xchat_id")
+);
+create index "xchat_url" on xchat ("xchat_url");
+create index "xchat_desc" on xchat ("xchat_desc");
+create index "xchat_xchan" on xchat ("xchat_xchan");
+create index "xchat_edited" on xchat ("xchat_edited");
+CREATE TABLE "xconfig" (
+ "id" serial NOT NULL,
+ "xchan" text NOT NULL,
+ "cat" text NOT NULL,
+ "k" text NOT NULL,
+ "v" text NOT NULL,
+ PRIMARY KEY ("id")
+);
+create index "xconfig_xchan" on xconfig ("xchan");
+create index "xconfig_cat" on xconfig ("cat");
+create index "xconfig_k" on xconfig ("k");
+CREATE TABLE "xign" (
+ "id" serial NOT NULL,
+ "uid" bigint NOT NULL DEFAULT '0',
+ "xchan" text NOT NULL DEFAULT '',
+ PRIMARY KEY ("id")
+);
+create index "xign_uid" on xign ("uid");
+create index "xign_xchan" on xign ("xchan");
+CREATE TABLE "xlink" (
+ "xlink_id" serial NOT NULL,
+ "xlink_xchan" text NOT NULL DEFAULT '',
+ "xlink_link" text NOT NULL DEFAULT '',
+ "xlink_rating" bigint NOT NULL DEFAULT '0',
+ "xlink_updated" timestamp NOT NULL DEFAULT '0001-01-01 00:00:00',
+ PRIMARY KEY ("xlink_id")
+);
+create index "xlink_xchan" on xlink ("xlink_xchan");
+create index "xlink_link" on xlink ("xlink_link");
+create index "xlink_updated" on xlink ("xlink_updated");
+create index "xlink_rating" on xlink ("xlink_rating");
+CREATE TABLE "xprof" (
+ "xprof_hash" text NOT NULL,
+ "xprof_age" numeric(3) NOT NULL DEFAULT '0',
+ "xprof_desc" text NOT NULL DEFAULT '',
+ "xprof_dob" varchar(12) NOT NULL DEFAULT '',
+ "xprof_gender" text NOT NULL DEFAULT '',
+ "xprof_marital" text NOT NULL DEFAULT '',
+ "xprof_sexual" text NOT NULL DEFAULT '',
+ "xprof_locale" text NOT NULL DEFAULT '',
+ "xprof_region" text NOT NULL DEFAULT '',
+ "xprof_postcode" varchar(32) NOT NULL DEFAULT '',
+ "xprof_country" text NOT NULL DEFAULT '',
+ "xprof_keywords" text NOT NULL,
+ "xprof_about" text NOT NULL,
+ "xprof_homepage" text NOT NULL DEFAULT '',
+ "xprof_hometown" text NOT NULL DEFAULT '',
+ PRIMARY KEY ("xprof_hash")
+);
+create index "xprof_desc" on xprof ("xprof_desc");
+create index "xprof_dob" on xprof ("xprof_dob");
+create index "xprof_gender" on xprof ("xprof_gender");
+create index "xprof_marital" on xprof ("xprof_marital");
+create index "xprof_sexual" on xprof ("xprof_sexual");
+create index "xprof_locale" on xprof ("xprof_locale");
+create index "xprof_region" on xprof ("xprof_region");
+create index "xprof_postcode" on xprof ("xprof_postcode");
+create index "xprof_country" on xprof ("xprof_country");
+create index "xprof_age" on xprof ("xprof_age");
+create index "xprof_hometown" on xprof ("xprof_hometown");
+CREATE TABLE "xtag" (
+ "xtag_id" serial NOT NULL,
+ "xtag_hash" text NOT NULL,
+ "xtag_term" text NOT NULL DEFAULT '',
+ "xtag_flags" bigint NOT NULL DEFAULT '0',
+ PRIMARY KEY ("xtag_id")
+);
+create index "xtag_term" on xtag ("xtag_term");
+create index "xtag_hash" on xtag ("xtag_hash");
+create index "xtag_flags" on xtag ("xtag_flags");
diff --git a/install/update.php b/install/update.php
index 0b1fa5d2e..d6953cdbc 100644
--- a/install/update.php
+++ b/install/update.php
@@ -1,6 +1,6 @@
<?php
-define( 'UPDATE_VERSION' , 1129 );
+define( 'UPDATE_VERSION' , 1131 );
/**
*
@@ -1457,3 +1457,30 @@ function update_r1128() {
}
+function update_r1129() {
+ $r = q("update hubloc set hubloc_network = 'zot' where hubloc_network = ''");
+ if($r)
+ return UPDATE_SUCCESS;
+ return UPDATE_FAILED;
+}
+
+function update_r1130() {
+ $myperms = PERMS_R_STREAM|PERMS_R_PROFILE|PERMS_R_PHOTOS|PERMS_R_ABOOK
+ |PERMS_W_STREAM|PERMS_W_WALL|PERMS_W_COMMENT|PERMS_W_MAIL|PERMS_W_CHAT
+ |PERMS_R_STORAGE|PERMS_R_PAGES|PERMS_W_LIKE;
+
+ $r = q("select abook_channel, abook_my_perms from abook where (abook_flags & %d) and abook_my_perms != 0",
+ intval(ABOOK_FLAG_SELF)
+ );
+ if($r) {
+ foreach($r as $rr) {
+ set_pconfig($rr['abook_channel'],'system','autoperms',$rr['abook_my_perms']);
+ }
+ }
+ $r = q("update abook set abook_my_perms = %d where (abook_flags & %d) and abook_my_perms = 0",
+ intval($myperms),
+ intval(ABOOK_FLAG_SELF)
+ );
+
+ return UPDATE_SUCCESS;
+} \ No newline at end of file
diff --git a/library/Smarty/README b/library/Smarty/README
index 167462823..6367f030e 100644
--- a/library/Smarty/README
+++ b/library/Smarty/README
@@ -1,4 +1,4 @@
-Smarty 3.1.11
+Smarty 3.1.21
Author: Monte Ohrt <monte at ohrt dot com >
Author: Uwe Tews
@@ -120,7 +120,7 @@ $smarty->unregisterObject($object_name)
$smarty->unregisterFilter($type, $function_name)
$smarty->unregisterResource($resource_type)
-$smarty->compileAllTemplates($extention = '.tpl', $force_compile = false, $time_limit = 0, $max_errors = null)
+$smarty->compileAllTemplates($extension = '.tpl', $force_compile = false, $time_limit = 0, $max_errors = null)
$smarty->clearCompiledTemplate($resource_name = null, $compile_id = null, $exp_time = null)
$smarty->testInstall()
diff --git a/library/Smarty/SMARTY_3.1_NOTES.txt b/library/Smarty/SMARTY_3.1_NOTES.txt
index e56e56f67..57709f0d7 100644
--- a/library/Smarty/SMARTY_3.1_NOTES.txt
+++ b/library/Smarty/SMARTY_3.1_NOTES.txt
@@ -199,7 +199,7 @@ Relative paths are available with {include file="..."} and
$smarty->fetch('./foo.tpl') cannot be relative to a template, an
exception is thrown.
- Adressing a specific $template_dir
+ Addressing a specific $template_dir
Smarty 3.1 introduces the $template_dir index notation.
$smarty->fetch('[foo]bar.tpl') and {include file="[foo]bar.tpl"}
diff --git a/library/Smarty/change_log.txt b/library/Smarty/change_log.txt
index 27c506db6..a0161659d 100644
--- a/library/Smarty/change_log.txt
+++ b/library/Smarty/change_log.txt
@@ -1,5 +1,342 @@
-===== trunk =====
-===== Smarty-3.1.11 =====
+ ===== 3.1.22-dev ===== (xx.xx.2014)
+ ===== 3.1.21 ===== (18.10.2014)
+ 18.10.2014
+ - composer moved to github
+ - add COMPOSER_RELEASE_NOTES
+
+ 17.10.2014
+ - bugfix on $php_handling security and optimization of smarty_internal_parsetree (Thue Kristensen)
+
+ 16.10.2014
+ - bugfix composer.json update
+
+ 15.10.2014
+ - bugfix calling a new created cache file with fetch() and Smarty::CACHING_LIFETIME_SAVED multiple times did fail (forum 22350)
+
+ 14.10.2014
+ - bugfix any tag placed within "<script language=php>" will throw a security exception to close all thinkable holes
+ - bugfix classmap in root composer.json should start at "libs/..."
+ - improvement cache is_file(file_exists) results of loadPlugin() to avoid unnecessary calls during compilation (Issue 201}
+
+ 12.10.2014
+ - bugfix a comment like "<script{*foo*} language=php>" bypassed $php_handling checking (Thue Kristensen)
+ - bugfix change of 08.10.2014 could create E_NOTICE meassage when using "<?php" tags
+ - bugfix "<script language=php>" with $php_handling PHP_PASSTHRU was executed in {nocache} sections
+
+ ===== 3.1.20 ===== (09.10.2014)
+ 08.10.2014
+ - bugfix security mode of "<script language=php>" must be controlled by $php_handling property (Thue Kristensen)
+
+ 01.10.2014
+ - bugfix template resource of inheritance blocks could get invalid if the default resource type is not 'file'(Issue 202)
+ - bugfix existing child {block} tag must override parent {block} tag append / prepend setting (topic 25259)
+
+ 02.08.2014
+ - bugfix modifier wordwrap did output break string wrong if first word was exceeding length with cut = true (topic 25193)
+
+ 24.07.2014
+ - bugfix cache clear when cache folder does not exist
+
+ 16.07.2014
+ - enhancement remove BOM automatically from template source (topic 25161)
+
+ 04.07.2014
+ - bugfix the bufix of 02.06.2014 broke correct handling of child templates with same name but different template folders in extends resource (issue 194 and topic 25099)
+
+ ===== 3.1.19 ===== (06.30.2014)
+ 20.06.2014
+ - bugfix template variables could not be passed as parameter in {include} when the include was in a {nocache} section (topic 25131)
+
+ 17.06.2014
+ - bugfix large template text of some charsets could cause parsing errors (topic 24630)
+
+ 08.06.2014
+ - bugfix registered objects did not work after spelling fixes of 06.06.2014
+ - bugfix {block} tags within {literal} .. {/literal} got not displayed correctly (topic 25024)
+ - bugfix UNC WINDOWS PATH like "\\psf\path\to\dir" did not work as template directory (Issue 192)
+ - bugfix {html_image} security check did fail on files relative to basedir (Issue 191)
+
+ 06.06.2014
+ - fixed PHPUnit outputFilterTrimWhitespaceTests.php assertion of test result
+ - fixed spelling, PHPDoc , minor errors, code cleanup
+
+ 02.06.2014
+ - using multiple cwd with relative template dirs could result in identical compiled file names. (issue 194 and topic 25099)
+
+ 19.04.2014
+ - bugfix calling createTemplate(template, data) with empty data array caused notice of array to string conversion (Issue 189)
+ - bugfix clearCompiledTemplate() did not delete files on WINDOWS when a compile_id was specified
+
+ 18.04.2014
+ - revert bugfix of 5.4.2014 because %-e date format is not supported on all operating systems
+
+ ===== 3.1.18 ===== (07.04.2014)
+ 06.04.2014
+ - bugfix template inheritance fail when using custom resource after patch of 8.3.2014 (Issue 187)
+ - bugfix update of composer file (Issue 168 and 184)
+
+ 05.04.2014
+ - bugfix default date format leads to extra spaces when displaying dates with single digit days (Issue 165)
+
+ 26.03.2014
+ - bugfix Smart_Resource_Custom should not lowercase the resource name (Issue 183)
+
+ 24.03.2014
+ - bugfix using a {foreach} property like @iteration could fail when used in inheritance parent templates (Issue 182)
+
+ 20.03.2014
+ - bugfix $smarty->auto_literal and mbsting.func_overload 2, 6 or 7 did fail (forum topic 24899)
+
+ 18.03.2014
+ - revert change of 17.03.2014
+
+17.03.2014
+ - bugfix $smarty->auto_literal and mbsting.func_overload 2, 6 or 7 did fail (forum topic 24899)
+
+ 15.03.2014
+ - bugfix Smarty_CacheResource_Keyvaluestore did use different keys on read/writes and clearCache() calls (Issue 169)
+
+ 13.03.2014
+ - bugfix clearXxx() change of 27.1.2014 did not work when specifing cache_id or compile_id (forum topic 24868 and 24867)
+
+ ===== 3.1.17 =====
+ 08.03.2014
+ - bugfix relative file path {include} within {block} of child templates did throw exception on first call (Issue 177)
+
+ 17.02.2014
+ - bugfix Smarty failed when executing PHP on HHVM (Hip Hop 2.4) because uniqid('',true) does return string with ',' (forum topic 20343)
+
+ 16.02.2014
+ - bugfix a '//' or '\\' in template_dir path could produce wrong path on relative filepath in {include} (Issue 175)
+
+ 05.02.2014
+ - bugfix shared.literal_compiler_param.php did throw an exception when literal did contain a '-' (smarty-developers group)
+
+ 27.01.2014
+ - bugfix $smarty->debugging = true; did show the variable of the $smarty object not the variables used in display() call (forum topic 24764)
+ - bugfix clearCompiledTemplate(), clearAll() and clear() should use realpath to avoid possible exception from RecursiveDirectoryIterator (Issue 171)
+
+ 26.01.2014
+ - bugfix undo block nesting checks for {nocache} for reasons like forum topic 23280 (forum topic 24762)
+
+ 18.01.2014
+ - bugfix the compiler did fail when using template inheritance and recursive {include} (smarty-developers group)
+
+ 11.01.2014
+ - bugfix "* }" (spaces before right delimiter) was interpreted by mistake as comment end tag (Issue 170)
+ - internals content cache should be clear when updating cache file
+
+ 08.01.2014
+ - bugfix Smarty_CacheResource_Custom did not handle template resource type specifications on clearCache() calls (Issue 169)
+ - bugfix SmartyBC.class.php should use require_once to load Smarty.class.php (forum topic 24683)
+
+ ===== 3.1.16 =====
+ 15.12.2013
+ - bugfix {include} with {block} tag handling (forum topic 24599, 24594, 24682) (Issue 161)
+ Read 3.1.16_RELEASE_NOTES for more details
+ - enhancement additional debug output at $smarty->_parserdebug = true;
+
+ 07.11.2013
+ - bugfix too restrictive handling of {include} within {block} tags. 3.1.15 did throw errors where 3.1.14 did not (forum topic 24599)
+ - bugfix compiler could fail if PHP mbstring.func_overload is enabled (Issue 164)
+
+ 28.10.2013
+ - bugfix variable resource name at custom resource plugin did not work within {block} tags (Issue 163)
+ - bugfix notice "Trying to get property of non-object" removed (Issue 163)
+ - bugfix correction of modifier capitalize fix from 3.10.2013 (issue 159)
+ - bugfix multiple {block}s with same name in parent did not work (forum topic 24631)
+
+ 20.10.2013
+ - bugfix a variable file name at {extends} tag did fail (forum topic 24618)
+
+ 14.10.2013
+ - bugfix yesterdays fix could result in an undefined variable
+
+ 13.10.2013
+ - bugfix variable names on {include} in template inheritance did unextepted error message (forum topic 24594) (Issue 161)
+.- bugfix relative includes with same name like {include './foo.tpl'} from different folder failed (forum topic 24590)(Issue 161)
+
+ 04.10.2013
+ - bugfix variable file names at {extends} had been disbabled by mistake with the rewrite of
+ template inheritance of 24.08.2013 (forum topic 24585)
+
+03.10.2013
+ - bugfix loops using modifier capitalize did eat up memory (issue 159)
+
+ ===== Smarty 3.1.15 =====
+01.10.2013
+ - use current delimiters in compiler error messages (issue 157)
+ - improvement on performance when using error handler and multiple template folders (issue 152)
+
+17.09.2013
+ - improvement added patch for additional SmartyCompilerException properties for better access to scource information (forum topic 24559)
+
+16.09.2013
+ - bugfix recompiled templates did not show on first request with zend opcache cache (forum topic 24320)
+
+13.09.2013
+ - bugfix html_select_time defaulting error for the Meridian dropdown (forum topic 24549)
+
+09.09.2012
+- bugfix incorrect compiled code with array(object,method) callback at registered Variable Filter (forum topic 24542)
+
+27.08.2013
+- bugfix delimiter followed by linebreak did not work as auto literal after update from 24.08.2013 (forum topic 24518)
+
+24.08.2013
+- bugfix and enhancement
+ Because several recent problems with template inheritance the {block} tag compiler has been rewriten
+ - Error messages shown now the correct child template file and line number
+ - The compiler could fail on some larger UTF-8 text block (forum topic 24455)
+ - The {strip} tag can now be placed outside {block} tags in child templates (forum topic 24289)
+- change SmartyException::$escape is now false by default
+- change PHP traceback has been remove for SmartyException and SmartyCompilerException
+
+14.08.2013
+- bugfix compiled filepath of config file did not observe different config_dir (forum topic 24493)
+
+13.08.2013
+- bugfix the internal resource cache did not observe config_dir changes (forum topic 24493)
+
+12.08.2013
+- bugfix internal $tmpx variables must be unique over all inheritance templates (Issue 149)
+
+10.08.2013
+- bugfix a newline was eaten when a <?xml ... ?> was passed by a Smarty variable and caching was enabled (forum topic 24482)
+
+29.07.2013
+- bugfix headers already send warning thrown when using 'SMARTY_DEBUG=on' from URL (Issue 148)
+
+27.07.2013
+- enhancement allow access to properties of registered opjects for Smarty2 BC (forum topic 24344)
+
+26.07.2013
+- bugfix template inheritance nesting problem (forum topic 24387)
+
+15.7.2013
+- update code generated by PSR-2 standards fixer which introduced PHP 5.4 incompatibilities of 14.7.2013
+
+14.7.2013
+- bugfix increase of internal maximum parser stacksize to allow more complex tag code {forum topic 24426}
+- update for PHP 5.4 compatibility
+- reformat source to PSR-2 standard
+
+12.7.2013
+- bugfix Do not remove '//' from file path at normalization (Issue 142)
+
+2.7.2013
+- bugfix trimwhitespace would replace captured items in wrong order (forum topic 24387)
+
+===== Smarty-3.1.14 =====
+27.06.2013
+- bugfix removed PHP 5.5 deprecated preg_replace /e option in modifier capitalize (forum topic 24389)
+
+17.06.2013
+- fixed spelling in sources and documentation (from smarty-developers forum Veres Lajos)
+- enhancement added constant SMARTY::CLEAR_EXPIRED for the change of 26.05.2013 (forum topic 24310)
+- bugfix added smarty_security.php to composer.json (Issue 135)
+
+26.05.2013
+- enhancement an expire_time of -1 in clearCache() and clearAllCache() will delete outdated cache files
+ by their individual cache_lifetime used at creation (forum topic 24310)
+
+21.05.2013
+- bugfix modifier strip_tags:true was compiled into wrong code (Forum Topic 24287)
+- bugfix /n after ?> in Smarty.class.php did start output buffering (Issue 138)
+
+25.04.2013
+- bugfix escape and wordrap modifier could be compiled into wrong code when used in {nocache}{/nocache}
+ section but caching is disabled (Forum Topic 24260)
+
+05.04.2013
+- bugfix post filter must not run when compiling inheritance child blocks (Forum Topic 24094)
+- bugfix after the fix for Issue #130 compiler exceptions got double escaped (Forum Topic 24199)
+
+28.02.2013
+- bugfix nocache blocks could be lost when using CACHING_LIFETIME_SAVED (Issue #133)
+- bugfix Compile ID gets nulled when compiling child blocks (Issue #134)
+
+
+24.01.2013
+- bugfix wrong tag type in smarty_internal_templatecompilerbase.php could cause wrong plugin search order (Forum Topic 24028)
+
+===== Smarty-3.1.13 =====
+13.01.2013
+- enhancement allow to disable exception message escaping by SmartyException::$escape = false; (Issue #130)
+
+09.01.2013
+- bugfix compilation did fail when a prefilter did modify an {extends} tag c
+- bugfix template inheritance could fail if nested {block} tags in childs did contain {$smarty.block.child} (Issue #127)
+- bugfix template inheritance could fail if {block} tags in childs did have similar name as used plugins (Issue #128)
+- added abstract method declaration doCompile() in Smarty_Internal_TemplateCompilerBase (Forum Topic 23969)
+
+06.01.2013
+- Allow '://' URL syntax in template names of stream resources (Issue #129)
+
+27.11.2012
+- bugfix wrong variable usage in smarty_internal_utility.php (Issue #125)
+
+26.11.2012
+- bugfix global variable assigned within template function are not seen after template function exit (Forum Topic 23800)
+
+24.11.2012
+- made SmartyBC loadable via composer (Issue #124)
+
+20.11.2012
+- bugfix assignGlobal() called from plugins did not work (Forum Topic 23771)
+
+13.11.2012
+- adding attribute "strict" to html_options, html_checkboxes, html_radios to only print disabled/readonly attributes if their values are true or "disabled"/"readonly" (Issue #120)
+
+01.11.2012
+- bugfix muteExcpetedErrors() would screw up for non-readable paths (Issue #118)
+
+===== Smarty-3.1.12 =====
+14.09.2012
+- bugfix template inheritance failed to compile with delimiters {/ and /} (Forum Topic 23008)
+
+11.09.2012
+- bugfix escape Smarty exception messages to avoid possible script execution
+
+10.09.2012
+- bugfix tag option flags and shorttag attributes did not work when rdel started with '=' (Forum Topic 22979)
+
+31.08.2012
+- bugfix resolving relative paths broke in some circumstances (Issue #114)
+
+22.08.2012
+- bugfix test MBString availability through mb_split, as it could've been compiled without regex support (--enable-mbregex).
+ Either we get MBstring's full package, or we pretend it's not there at all.
+
+21.08.2012
+- bugfix $auto_literal = false did not work with { block} tags in child templates
+ (problem was reintroduced after fix in 3.1.7)(Forum Topic 20581)
+
+17.08.2012
+- bugfix compiled code of nocache sections could contain wrong escaping (Forum Topic 22810)
+
+15.08.2012
+- bugfix template inheritance did produce wrong code if subtemplates with {block} was
+ included several times (from smarty-developers forum)
+
+14.08.2012
+- bugfix PHP5.2 compatibility compromised by SplFileInfo::getBasename() (Issue 110)
+
+01.08.2012
+- bugfix avoid PHP error on $smarty->configLoad(...) with invalid section specification (Forum Topic 22608)
+
+30.07.2012
+-bugfix {assign} in a nocache section should not overwrite existing variable values
+ during compilation (issue 109)
+
+28.07.2012
+- bugfix array access of config variables did not work (Forum Topic 22527)
+
+19.07.2012
+- bugfix the default plugin handler did create wrong compiled code for static class methods
+ from external script files (issue 108)
+
+===== Smarty-3.1.11 =====
30.06.2012
- bugfix {block.. hide} did not work as nested child (Forum Topic 22216)
@@ -342,7 +679,7 @@
03/09/2011
- bugfix createTemplate() must default to cache_id and compile_id of Smarty object
- bugfix Smarty_CacheResource_KeyValueStore must include $source->uid in cache filepath to keep templates with same
- name but different folders seperated
+ name but different folders separated
- added cacheresource.apc.php example in demo folder
02/09/2011
@@ -533,7 +870,7 @@
- changed ./ and ../ behaviour
14/02/2011
-- added {block ... hide} option to supress block if no child is defined
+- added {block ... hide} option to suppress block if no child is defined
13/02/2011
- update handling of recursive subtemplate calls
@@ -647,7 +984,7 @@
- bugfix on compiler object destruction. compiler_object property was by mistake unset.
09/03/2011
--bugfix a variable filter should run before modifers on an output tag (see change of 23/07/2010)
+-bugfix a variable filter should run before modifiers on an output tag (see change of 23/07/2010)
08/03/2011
- bugfix loading config file without section should load only defaults
@@ -951,10 +1288,10 @@ request_use_auto_globals
- bugfix passing scope attributes in doublequoted strings did not work at {include} {assign} and {append}
25/07/2010
-- another bugfix of change from 23/07/2010 when compiling modifer
+- another bugfix of change from 23/07/2010 when compiling modifier
24/07/2010
-- bugfix of change from 23/07/2010 when compiling modifer
+- bugfix of change from 23/07/2010 when compiling modifier
23/07/2010
- changed execution order. A variable filter does now run before modifiers on output of variables
@@ -1261,7 +1598,7 @@ request_use_auto_globals
- bugfix on {if} tags
01/12/2010
-- changed back modifer handling in parser. Some restrictions still apply:
+- changed back modifier handling in parser. Some restrictions still apply:
if modifiers are used in side {if...} expression or in mathematical expressions
parentheses must be used.
- bugfix the {function..} tag did not accept the name attribute in double quotes
@@ -1873,7 +2210,7 @@ NOTICE: existing compiled template and cache files must be deleted
- fixed exceptions in function plugins
- fixed notice error in Smarty.class.php
- allow chained objects to span multiple lines
-- fixed error in modifers
+- fixed error in modifiers
03/20/2009
- moved /plugins folder into /libs folder
@@ -1881,7 +2218,7 @@ NOTICE: existing compiled template and cache files must be deleted
- autoappend a directory separator if the xxxxx_dir definition have no trailing one
03/19/2009
-- allow array definition as modifer parameter
+- allow array definition as modifier parameter
- changed modifier to use multi byte string funktions.
03/17/2009
diff --git a/library/Smarty/demo/index.php b/library/Smarty/demo/index.php
index 74c8e8971..33f3035c5 100644
--- a/library/Smarty/demo/index.php
+++ b/library/Smarty/demo/index.php
@@ -1,33 +1,30 @@
<?php
- /**
+/**
* Example Application
-
+ *
* @package Example-application
*/
-require('../libs/Smarty.class.php');
+require '../libs/Smarty.class.php';
$smarty = new Smarty;
-
-
//$smarty->force_compile = true;
$smarty->debugging = true;
$smarty->caching = true;
$smarty->cache_lifetime = 120;
-$smarty->assign("Name","Fred Irving Johnathan Bradley Peppergill",true);
-$smarty->assign("FirstName",array("John","Mary","James","Henry"));
-$smarty->assign("LastName",array("Doe","Smith","Johnson","Case"));
-$smarty->assign("Class",array(array("A","B","C","D"), array("E", "F", "G", "H"),
- array("I", "J", "K", "L"), array("M", "N", "O", "P")));
+$smarty->assign("Name", "Fred Irving Johnathan Bradley Peppergill", true);
+$smarty->assign("FirstName", array("John", "Mary", "James", "Henry"));
+$smarty->assign("LastName", array("Doe", "Smith", "Johnson", "Case"));
+$smarty->assign("Class", array(array("A", "B", "C", "D"), array("E", "F", "G", "H"),
+ array("I", "J", "K", "L"), array("M", "N", "O", "P")));
$smarty->assign("contacts", array(array("phone" => "1", "fax" => "2", "cell" => "3"),
- array("phone" => "555-4444", "fax" => "555-3333", "cell" => "760-1234")));
+ array("phone" => "555-4444", "fax" => "555-3333", "cell" => "760-1234")));
-$smarty->assign("option_values", array("NY","NE","KS","IA","OK","TX"));
-$smarty->assign("option_output", array("New York","Nebraska","Kansas","Iowa","Oklahoma","Texas"));
+$smarty->assign("option_values", array("NY", "NE", "KS", "IA", "OK", "TX"));
+$smarty->assign("option_output", array("New York", "Nebraska", "Kansas", "Iowa", "Oklahoma", "Texas"));
$smarty->assign("option_selected", "NE");
$smarty->display('index.tpl');
-?>
diff --git a/library/Smarty/demo/plugins/cacheresource.apc.php b/library/Smarty/demo/plugins/cacheresource.apc.php
index 00ba59817..d7336f2bf 100644
--- a/library/Smarty/demo/plugins/cacheresource.apc.php
+++ b/library/Smarty/demo/plugins/cacheresource.apc.php
@@ -2,19 +2,19 @@
/**
* APC CacheResource
- *
* CacheResource Implementation based on the KeyValueStore API to use
* memcache as the storage resource for Smarty's output caching.
* *
+ *
* @package CacheResource-examples
- * @author Uwe Tews
+ * @author Uwe Tews
*/
-class Smarty_CacheResource_Apc extends Smarty_CacheResource_KeyValueStore {
-
+class Smarty_CacheResource_Apc extends Smarty_CacheResource_KeyValueStore
+{
public function __construct()
{
// test if APC is present
- if(!function_exists('apc_cache_info')) {
+ if (!function_exists('apc_cache_info')) {
throw new Exception('APC Template Caching Error: APC is not installed');
}
}
@@ -22,8 +22,9 @@ class Smarty_CacheResource_Apc extends Smarty_CacheResource_KeyValueStore {
/**
* Read values for a set of keys from cache
*
- * @param array $keys list of keys to fetch
- * @return array list of values with the given keys used as indexes
+ * @param array $keys list of keys to fetch
+ *
+ * @return array list of values with the given keys used as indexes
* @return boolean true on success, false on failure
*/
protected function read(array $keys)
@@ -33,28 +34,32 @@ class Smarty_CacheResource_Apc extends Smarty_CacheResource_KeyValueStore {
foreach ($res as $k => $v) {
$_res[$k] = $v;
}
+
return $_res;
}
/**
* Save values for a set of keys to cache
*
- * @param array $keys list of values to save
- * @param int $expire expiration time
+ * @param array $keys list of values to save
+ * @param int $expire expiration time
+ *
* @return boolean true on success, false on failure
*/
- protected function write(array $keys, $expire=null)
+ protected function write(array $keys, $expire = null)
{
foreach ($keys as $k => $v) {
apc_store($k, $v, $expire);
}
+
return true;
}
/**
* Remove values from cache
*
- * @param array $keys list of keys to delete
+ * @param array $keys list of keys to delete
+ *
* @return boolean true on success, false on failure
*/
protected function delete(array $keys)
@@ -62,6 +67,7 @@ class Smarty_CacheResource_Apc extends Smarty_CacheResource_KeyValueStore {
foreach ($keys as $k) {
apc_delete($k);
}
+
return true;
}
diff --git a/library/Smarty/demo/plugins/cacheresource.memcache.php b/library/Smarty/demo/plugins/cacheresource.memcache.php
index 230607d69..e265365fb 100644
--- a/library/Smarty/demo/plugins/cacheresource.memcache.php
+++ b/library/Smarty/demo/plugins/cacheresource.memcache.php
@@ -2,34 +2,35 @@
/**
* Memcache CacheResource
- *
* CacheResource Implementation based on the KeyValueStore API to use
* memcache as the storage resource for Smarty's output caching.
- *
* Note that memcache has a limitation of 256 characters per cache-key.
* To avoid complications all cache-keys are translated to a sha1 hash.
*
* @package CacheResource-examples
- * @author Rodney Rehm
+ * @author Rodney Rehm
*/
-class Smarty_CacheResource_Memcache extends Smarty_CacheResource_KeyValueStore {
+class Smarty_CacheResource_Memcache extends Smarty_CacheResource_KeyValueStore
+{
/**
* memcache instance
+ *
* @var Memcache
*/
protected $memcache = null;
-
+
public function __construct()
{
$this->memcache = new Memcache();
- $this->memcache->addServer( '127.0.0.1', 11211 );
+ $this->memcache->addServer('127.0.0.1', 11211);
}
-
+
/**
* Read values for a set of keys from cache
*
- * @param array $keys list of keys to fetch
- * @return array list of values with the given keys used as indexes
+ * @param array $keys list of keys to fetch
+ *
+ * @return array list of values with the given keys used as indexes
* @return boolean true on success, false on failure
*/
protected function read(array $keys)
@@ -45,29 +46,33 @@ class Smarty_CacheResource_Memcache extends Smarty_CacheResource_KeyValueStore {
foreach ($res as $k => $v) {
$_res[$lookup[$k]] = $v;
}
+
return $_res;
}
-
+
/**
* Save values for a set of keys to cache
*
- * @param array $keys list of values to save
- * @param int $expire expiration time
+ * @param array $keys list of values to save
+ * @param int $expire expiration time
+ *
* @return boolean true on success, false on failure
*/
- protected function write(array $keys, $expire=null)
+ protected function write(array $keys, $expire = null)
{
foreach ($keys as $k => $v) {
$k = sha1($k);
$this->memcache->set($k, $v, 0, $expire);
}
+
return true;
}
/**
* Remove values from cache
*
- * @param array $keys list of keys to delete
+ * @param array $keys list of keys to delete
+ *
* @return boolean true on success, false on failure
*/
protected function delete(array $keys)
@@ -76,6 +81,7 @@ class Smarty_CacheResource_Memcache extends Smarty_CacheResource_KeyValueStore {
$k = sha1($k);
$this->memcache->delete($k);
}
+
return true;
}
@@ -86,6 +92,6 @@ class Smarty_CacheResource_Memcache extends Smarty_CacheResource_KeyValueStore {
*/
protected function purge()
{
- return $this->memcache->flush();
+ $this->memcache->flush();
}
}
diff --git a/library/Smarty/demo/plugins/cacheresource.mysql.php b/library/Smarty/demo/plugins/cacheresource.mysql.php
index ab8c47516..d8d00ab26 100644
--- a/library/Smarty/demo/plugins/cacheresource.mysql.php
+++ b/library/Smarty/demo/plugins/cacheresource.mysql.php
@@ -2,10 +2,8 @@
/**
* MySQL CacheResource
- *
* CacheResource Implementation based on the Custom API to use
* MySQL as the storage resource for Smarty's output caching.
- *
* Table definition:
* <pre>CREATE TABLE IF NOT EXISTS `output_cache` (
* `id` CHAR(40) NOT NULL COMMENT 'sha1 hash',
@@ -22,19 +20,22 @@
* ) ENGINE = InnoDB;</pre>
*
* @package CacheResource-examples
- * @author Rodney Rehm
+ * @author Rodney Rehm
*/
-class Smarty_CacheResource_Mysql extends Smarty_CacheResource_Custom {
+class Smarty_CacheResource_Mysql extends Smarty_CacheResource_Custom
+{
// PDO instance
protected $db;
protected $fetch;
protected $fetchTimestamp;
protected $save;
-
- public function __construct() {
+
+ public function __construct()
+ {
try {
- $this->db = new PDO("mysql:dbname=test;host=127.0.0.1", "smarty", "smarty");
- } catch (PDOException $e) {
+ $this->db = new PDO("mysql:dbname=test;host=127.0.0.1", "smarty");
+ }
+ catch (PDOException $e) {
throw new SmartyException('Mysql Resource failed: ' . $e->getMessage());
}
$this->fetch = $this->db->prepare('SELECT modified, content FROM output_cache WHERE id = :id');
@@ -46,19 +47,20 @@ class Smarty_CacheResource_Mysql extends Smarty_CacheResource_Custom {
/**
* fetch cached content and its modification time from data source
*
- * @param string $id unique cache content identifier
- * @param string $name template name
- * @param string $cache_id cache id
- * @param string $compile_id compile id
- * @param string $content cached content
- * @param integer $mtime cache modification timestamp (epoch)
+ * @param string $id unique cache content identifier
+ * @param string $name template name
+ * @param string $cache_id cache id
+ * @param string $compile_id compile id
+ * @param string $content cached content
+ * @param integer $mtime cache modification timestamp (epoch)
+ *
* @return void
*/
protected function fetch($id, $name, $cache_id, $compile_id, &$content, &$mtime)
{
$this->fetch->execute(array('id' => $id));
$row = $this->fetch->fetch();
- $this->fetch->closeCursor();
+ $this->fetch->closeCursor();
if ($row) {
$content = $row['content'];
$mtime = strtotime($row['modified']);
@@ -67,15 +69,17 @@ class Smarty_CacheResource_Mysql extends Smarty_CacheResource_Custom {
$mtime = null;
}
}
-
+
/**
* Fetch cached content's modification timestamp from data source
*
* @note implementing this method is optional. Only implement it if modification times can be accessed faster than loading the complete cached content.
- * @param string $id unique cache content identifier
- * @param string $name template name
- * @param string $cache_id cache id
- * @param string $compile_id compile id
+ *
+ * @param string $id unique cache content identifier
+ * @param string $name template name
+ * @param string $cache_id cache id
+ * @param string $compile_id compile id
+ *
* @return integer|boolean timestamp (epoch) the template was modified, or false if not found
*/
protected function fetchTimestamp($id, $name, $cache_id, $compile_id)
@@ -83,40 +87,44 @@ class Smarty_CacheResource_Mysql extends Smarty_CacheResource_Custom {
$this->fetchTimestamp->execute(array('id' => $id));
$mtime = strtotime($this->fetchTimestamp->fetchColumn());
$this->fetchTimestamp->closeCursor();
+
return $mtime;
}
-
+
/**
* Save content to cache
*
- * @param string $id unique cache content identifier
- * @param string $name template name
- * @param string $cache_id cache id
- * @param string $compile_id compile id
- * @param integer|null $exp_time seconds till expiration time in seconds or null
- * @param string $content content to cache
- * @return boolean success
+ * @param string $id unique cache content identifier
+ * @param string $name template name
+ * @param string $cache_id cache id
+ * @param string $compile_id compile id
+ * @param integer|null $exp_time seconds till expiration time in seconds or null
+ * @param string $content content to cache
+ *
+ * @return boolean success
*/
protected function save($id, $name, $cache_id, $compile_id, $exp_time, $content)
{
$this->save->execute(array(
- 'id' => $id,
- 'name' => $name,
- 'cache_id' => $cache_id,
- 'compile_id' => $compile_id,
- 'content' => $content,
- ));
+ 'id' => $id,
+ 'name' => $name,
+ 'cache_id' => $cache_id,
+ 'compile_id' => $compile_id,
+ 'content' => $content,
+ ));
+
return !!$this->save->rowCount();
}
-
+
/**
* Delete content from cache
*
- * @param string $name template name
- * @param string $cache_id cache id
- * @param string $compile_id compile id
- * @param integer|null $exp_time seconds till expiration or null
- * @return integer number of deleted caches
+ * @param string $name template name
+ * @param string $cache_id cache id
+ * @param string $compile_id compile id
+ * @param integer|null $exp_time seconds till expiration or null
+ *
+ * @return integer number of deleted caches
*/
protected function delete($name, $cache_id, $compile_id, $exp_time)
{
@@ -124,7 +132,8 @@ class Smarty_CacheResource_Mysql extends Smarty_CacheResource_Custom {
if ($name === null && $cache_id === null && $compile_id === null && $exp_time === null) {
// returning the number of deleted caches would require a second query to count them
$query = $this->db->query('TRUNCATE TABLE output_cache');
- return -1;
+
+ return - 1;
}
// build the filter
$where = array();
@@ -142,11 +151,12 @@ class Smarty_CacheResource_Mysql extends Smarty_CacheResource_Custom {
}
// equal test cache_id and match sub-groups
if ($cache_id !== null) {
- $where[] = '(cache_id = '. $this->db->quote($cache_id)
- . ' OR cache_id LIKE '. $this->db->quote($cache_id .'|%') .')';
+ $where[] = '(cache_id = ' . $this->db->quote($cache_id)
+ . ' OR cache_id LIKE ' . $this->db->quote($cache_id . '|%') . ')';
}
// run delete query
$query = $this->db->query('DELETE FROM output_cache WHERE ' . join(' AND ', $where));
+
return $query->rowCount();
}
}
diff --git a/library/Smarty/demo/plugins/resource.extendsall.php b/library/Smarty/demo/plugins/resource.extendsall.php
index d8c40b5ba..500b3c862 100644
--- a/library/Smarty/demo/plugins/resource.extendsall.php
+++ b/library/Smarty/demo/plugins/resource.extendsall.php
@@ -2,49 +2,51 @@
/**
* Extends All Resource
- *
* Resource Implementation modifying the extends-Resource to walk
* through the template_dirs and inherit all templates of the same name
- *
+ *
* @package Resource-examples
- * @author Rodney Rehm
+ * @author Rodney Rehm
*/
-class Smarty_Resource_Extendsall extends Smarty_Internal_Resource_Extends {
-
+class Smarty_Resource_Extendsall extends Smarty_Internal_Resource_Extends
+{
/**
* populate Source Object with meta data from Resource
*
- * @param Smarty_Template_Source $source source object
- * @param Smarty_Internal_Template $_template template object
+ * @param Smarty_Template_Source $source source object
+ * @param Smarty_Internal_Template $_template template object
+ *
* @return void
*/
- public function populate(Smarty_Template_Source $source, Smarty_Internal_Template $_template=null)
+ public function populate(Smarty_Template_Source $source, Smarty_Internal_Template $_template = null)
{
$uid = '';
$sources = array();
$exists = true;
foreach ($_template->smarty->getTemplateDir() as $key => $directory) {
try {
- $s = Smarty_Resource::source(null, $source->smarty, '[' . $key . ']' . $source->name );
+ $s = Smarty_Resource::source(null, $source->smarty, '[' . $key . ']' . $source->name);
if (!$s->exists) {
continue;
}
$sources[$s->uid] = $s;
$uid .= $s->filepath;
}
- catch (SmartyException $e) {}
+ catch (SmartyException $e) {
+ }
}
-
+
if (!$sources) {
$source->exists = false;
$source->template = $_template;
+
return;
}
-
+
$sources = array_reverse($sources, true);
reset($sources);
$s = current($sources);
-
+
$source->components = $sources;
$source->filepath = $s->filepath;
$source->uid = sha1($uid);
@@ -55,6 +57,4 @@ class Smarty_Resource_Extendsall extends Smarty_Internal_Resource_Extends {
// need the template at getContent()
$source->template = $_template;
}
-}
-
-?> \ No newline at end of file
+}
diff --git a/library/Smarty/demo/plugins/resource.mysql.php b/library/Smarty/demo/plugins/resource.mysql.php
index 312f3fc73..dfc9606b4 100644
--- a/library/Smarty/demo/plugins/resource.mysql.php
+++ b/library/Smarty/demo/plugins/resource.mysql.php
@@ -2,10 +2,8 @@
/**
* MySQL Resource
- *
* Resource Implementation based on the Custom API to use
* MySQL as the storage resource for Smarty's templates and configs.
- *
* Table definition:
* <pre>CREATE TABLE IF NOT EXISTS `templates` (
* `name` varchar(100) NOT NULL,
@@ -13,14 +11,14 @@
* `source` text,
* PRIMARY KEY (`name`)
* ) ENGINE=InnoDB DEFAULT CHARSET=utf8;</pre>
- *
* Demo data:
* <pre>INSERT INTO `templates` (`name`, `modified`, `source`) VALUES ('test.tpl', "2010-12-25 22:00:00", '{$x="hello world"}{$x}');</pre>
*
* @package Resource-examples
- * @author Rodney Rehm
+ * @author Rodney Rehm
*/
-class Smarty_Resource_Mysql extends Smarty_Resource_Custom {
+class Smarty_Resource_Mysql extends Smarty_Resource_Custom
+{
// PDO instance
protected $db;
// prepared fetch() statement
@@ -28,22 +26,25 @@ class Smarty_Resource_Mysql extends Smarty_Resource_Custom {
// prepared fetchTimestamp() statement
protected $mtime;
- public function __construct() {
+ public function __construct()
+ {
try {
- $this->db = new PDO("mysql:dbname=test;host=127.0.0.1", "smarty", "smarty");
- } catch (PDOException $e) {
+ $this->db = new PDO("mysql:dbname=test;host=127.0.0.1", "smarty");
+ }
+ catch (PDOException $e) {
throw new SmartyException('Mysql Resource failed: ' . $e->getMessage());
}
$this->fetch = $this->db->prepare('SELECT modified, source FROM templates WHERE name = :name');
$this->mtime = $this->db->prepare('SELECT modified FROM templates WHERE name = :name');
}
-
+
/**
* Fetch a template and its modification time from database
*
- * @param string $name template name
- * @param string $source template source
- * @param integer $mtime template modification timestamp (epoch)
+ * @param string $name template name
+ * @param string $source template source
+ * @param integer $mtime template modification timestamp (epoch)
+ *
* @return void
*/
protected function fetch($name, &$source, &$mtime)
@@ -59,18 +60,22 @@ class Smarty_Resource_Mysql extends Smarty_Resource_Custom {
$mtime = null;
}
}
-
+
/**
* Fetch a template's modification time from database
*
* @note implementing this method is optional. Only implement it if modification times can be accessed faster than loading the comple template source.
- * @param string $name template name
+ *
+ * @param string $name template name
+ *
* @return integer timestamp (epoch) the template was modified
*/
- protected function fetchTimestamp($name) {
+ protected function fetchTimestamp($name)
+ {
$this->mtime->execute(array('name' => $name));
$mtime = $this->mtime->fetchColumn();
$this->mtime->closeCursor();
+
return strtotime($mtime);
}
}
diff --git a/library/Smarty/demo/plugins/resource.mysqls.php b/library/Smarty/demo/plugins/resource.mysqls.php
index f9fe1c2f2..f694ddf11 100644
--- a/library/Smarty/demo/plugins/resource.mysqls.php
+++ b/library/Smarty/demo/plugins/resource.mysqls.php
@@ -2,13 +2,10 @@
/**
* MySQL Resource
- *
* Resource Implementation based on the Custom API to use
* MySQL as the storage resource for Smarty's templates and configs.
- *
* Note that this MySQL implementation fetches the source and timestamps in
- * a single database query, instead of two seperate like resource.mysql.php does.
- *
+ * a single database query, instead of two separate like resource.mysql.php does.
* Table definition:
* <pre>CREATE TABLE IF NOT EXISTS `templates` (
* `name` varchar(100) NOT NULL,
@@ -16,34 +13,37 @@
* `source` text,
* PRIMARY KEY (`name`)
* ) ENGINE=InnoDB DEFAULT CHARSET=utf8;</pre>
- *
* Demo data:
* <pre>INSERT INTO `templates` (`name`, `modified`, `source`) VALUES ('test.tpl', "2010-12-25 22:00:00", '{$x="hello world"}{$x}');</pre>
*
* @package Resource-examples
- * @author Rodney Rehm
+ * @author Rodney Rehm
*/
-class Smarty_Resource_Mysqls extends Smarty_Resource_Custom {
+class Smarty_Resource_Mysqls extends Smarty_Resource_Custom
+{
// PDO instance
protected $db;
// prepared fetch() statement
protected $fetch;
- public function __construct() {
+ public function __construct()
+ {
try {
- $this->db = new PDO("mysql:dbname=test;host=127.0.0.1", "smarty", "smarty");
- } catch (PDOException $e) {
+ $this->db = new PDO("mysql:dbname=test;host=127.0.0.1", "smarty");
+ }
+ catch (PDOException $e) {
throw new SmartyException('Mysql Resource failed: ' . $e->getMessage());
}
$this->fetch = $this->db->prepare('SELECT modified, source FROM templates WHERE name = :name');
}
-
+
/**
* Fetch a template and its modification time from database
*
- * @param string $name template name
- * @param string $source template source
- * @param integer $mtime template modification timestamp (epoch)
+ * @param string $name template name
+ * @param string $source template source
+ * @param integer $mtime template modification timestamp (epoch)
+ *
* @return void
*/
protected function fetch($name, &$source, &$mtime)
diff --git a/library/Smarty/demo/templates/header.tpl b/library/Smarty/demo/templates/header.tpl
index 783210a18..13fa6cb5a 100644
--- a/library/Smarty/demo/templates/header.tpl
+++ b/library/Smarty/demo/templates/header.tpl
@@ -1,5 +1,5 @@
<HTML>
<HEAD>
-<TITLE>{$title} - {$Name}</TITLE>
+ <TITLE>{$title} - {$Name}</TITLE>
</HEAD>
<BODY bgcolor="#ffffff">
diff --git a/library/Smarty/demo/templates/index.tpl b/library/Smarty/demo/templates/index.tpl
index 38d233412..1fbb6d379 100644
--- a/library/Smarty/demo/templates/index.tpl
+++ b/library/Smarty/demo/templates/index.tpl
@@ -4,18 +4,18 @@
<PRE>
{* bold and title are read from the config file *}
-{if #bold#}<b>{/if}
-{* capitalize the first letters of each word of the title *}
-Title: {#title#|capitalize}
-{if #bold#}</b>{/if}
+ {if #bold#}<b>{/if}
+ {* capitalize the first letters of each word of the title *}
+ Title: {#title#|capitalize}
+ {if #bold#}</b>{/if}
-The current date and time is {$smarty.now|date_format:"%Y-%m-%d %H:%M:%S"}
+ The current date and time is {$smarty.now|date_format:"%Y-%m-%d %H:%M:%S"}
-The value of global assigned variable $SCRIPT_NAME is {$SCRIPT_NAME}
+ The value of global assigned variable $SCRIPT_NAME is {$SCRIPT_NAME}
-Example of accessing server environment variable SERVER_NAME: {$smarty.server.SERVER_NAME}
+ Example of accessing server environment variable SERVER_NAME: {$smarty.server.SERVER_NAME}
-The value of {ldelim}$Name{rdelim} is <b>{$Name}</b>
+ The value of {ldelim}$Name{rdelim} is <b>{$Name}</b>
variable modifier example of {ldelim}$Name|upper{rdelim}
@@ -24,59 +24,64 @@ variable modifier example of {ldelim}$Name|upper{rdelim}
An example of a section loop:
-{section name=outer
-loop=$FirstName}
-{if $smarty.section.outer.index is odd by 2}
- {$smarty.section.outer.rownum} . {$FirstName[outer]} {$LastName[outer]}
-{else}
- {$smarty.section.outer.rownum} * {$FirstName[outer]} {$LastName[outer]}
-{/if}
-{sectionelse}
- none
-{/section}
-
-An example of section looped key values:
-
-{section name=sec1 loop=$contacts}
- phone: {$contacts[sec1].phone}<br>
- fax: {$contacts[sec1].fax}<br>
- cell: {$contacts[sec1].cell}<br>
-{/section}
-<p>
-
-testing strip tags
-{strip}
+ {section name=outer
+ loop=$FirstName}
+ {if $smarty.section.outer.index is odd by 2}
+ {$smarty.section.outer.rownum} . {$FirstName[outer]} {$LastName[outer]}
+ {else}
+ {$smarty.section.outer.rownum} * {$FirstName[outer]} {$LastName[outer]}
+ {/if}
+ {sectionelse}
+ none
+ {/section}
+
+ An example of section looped key values:
+
+ {section name=sec1 loop=$contacts}
+ phone: {$contacts[sec1].phone}
+ <br>
+
+ fax: {$contacts[sec1].fax}
+ <br>
+
+ cell: {$contacts[sec1].cell}
+ <br>
+ {/section}
+ <p>
+
+ testing strip tags
+ {strip}
<table border=0>
- <tr>
- <td>
- <A HREF="{$SCRIPT_NAME}">
- <font color="red">This is a test </font>
- </A>
- </td>
- </tr>
+ <tr>
+ <td>
+ <A HREF="{$SCRIPT_NAME}">
+ <font color="red">This is a test </font>
+ </A>
+ </td>
+ </tr>
</table>
-{/strip}
+ {/strip}
</PRE>
This is an example of the html_select_date function:
<form>
-{html_select_date start_year=1998 end_year=2010}
+ {html_select_date start_year=1998 end_year=2010}
</form>
This is an example of the html_select_time function:
<form>
-{html_select_time use_24_hours=false}
+ {html_select_time use_24_hours=false}
</form>
This is an example of the html_options function:
<form>
-<select name=states>
-{html_options values=$option_values selected=$option_selected output=$option_output}
-</select>
+ <select name=states>
+ {html_options values=$option_values selected=$option_selected output=$option_output}
+ </select>
</form>
{include file="footer.tpl"}
diff --git a/library/Smarty/libs/Smarty.class.php b/library/Smarty/libs/Smarty.class.php
index f776aaf7c..832b0d309 100644
--- a/library/Smarty/libs/Smarty.class.php
+++ b/library/Smarty/libs/Smarty.class.php
@@ -2,33 +2,29 @@
/**
* Project: Smarty: the PHP compiling template engine
* File: Smarty.class.php
- * SVN: $Id: Smarty.class.php 4614 2012-05-24 15:13:19Z rodneyrehm $
- *
+ * SVN: $Id: Smarty.class.php 4897 2014-10-14 22:29:58Z Uwe.Tews@googlemail.com $
* 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 2.1 of the License, or (at your option) 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., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
- *
* For questions, help, comments, discussion, etc., please join the
* Smarty mailing list. Send a blank e-mail to
* smarty-discussion-subscribe@googlegroups.com
*
- * @link http://www.smarty.net/
+ * @link http://www.smarty.net/
* @copyright 2008 New Digital Group, Inc.
- * @author Monte Ohrt <monte at ohrt dot com>
- * @author Uwe Tews
- * @author Rodney Rehm
- * @package Smarty
- * @version 3.1-DEV
+ * @author Monte Ohrt <monte at ohrt dot com>
+ * @author Uwe Tews
+ * @author Rodney Rehm
+ * @package Smarty
+ * @version 3.1.21
*/
/**
@@ -57,7 +53,7 @@ if (!defined('SMARTY_PLUGINS_DIR')) {
define('SMARTY_PLUGINS_DIR', SMARTY_DIR . 'plugins' . DS);
}
if (!defined('SMARTY_MBSTRING')) {
- define('SMARTY_MBSTRING', function_exists('mb_strlen'));
+ define('SMARTY_MBSTRING', function_exists('mb_split'));
}
if (!defined('SMARTY_RESOURCE_CHAR_SET')) {
// UTF-8 can only be done properly when mbstring is available!
@@ -92,20 +88,21 @@ if (SMARTY_SPL_AUTOLOAD && set_include_path(get_include_path() . PATH_SEPARATOR
/**
* Load always needed external class files
*/
-include_once SMARTY_SYSPLUGINS_DIR.'smarty_internal_data.php';
-include_once SMARTY_SYSPLUGINS_DIR.'smarty_internal_templatebase.php';
-include_once SMARTY_SYSPLUGINS_DIR.'smarty_internal_template.php';
-include_once SMARTY_SYSPLUGINS_DIR.'smarty_resource.php';
-include_once SMARTY_SYSPLUGINS_DIR.'smarty_internal_resource_file.php';
-include_once SMARTY_SYSPLUGINS_DIR.'smarty_cacheresource.php';
-include_once SMARTY_SYSPLUGINS_DIR.'smarty_internal_cacheresource_file.php';
+include_once SMARTY_SYSPLUGINS_DIR . 'smarty_internal_data.php';
+include_once SMARTY_SYSPLUGINS_DIR . 'smarty_internal_templatebase.php';
+include_once SMARTY_SYSPLUGINS_DIR . 'smarty_internal_template.php';
+include_once SMARTY_SYSPLUGINS_DIR . 'smarty_resource.php';
+include_once SMARTY_SYSPLUGINS_DIR . 'smarty_internal_resource_file.php';
+include_once SMARTY_SYSPLUGINS_DIR . 'smarty_cacheresource.php';
+include_once SMARTY_SYSPLUGINS_DIR . 'smarty_internal_cacheresource_file.php';
/**
* This is the main Smarty class
+ *
* @package Smarty
*/
-class Smarty extends Smarty_Internal_TemplateBase {
-
+class Smarty extends Smarty_Internal_TemplateBase
+{
/**#@+
* constant definitions
*/
@@ -113,7 +110,7 @@ class Smarty extends Smarty_Internal_TemplateBase {
/**
* smarty version
*/
- const SMARTY_VERSION = 'Smarty-3.1.11';
+ const SMARTY_VERSION = 'Smarty-3.1.21-dev';
/**
* define variable scopes
@@ -129,6 +126,11 @@ class Smarty extends Smarty_Internal_TemplateBase {
const CACHING_LIFETIME_CURRENT = 1;
const CACHING_LIFETIME_SAVED = 2;
/**
+ * define constant for clearing cache files be saved expiration datees
+ */
+ const CLEAR_EXPIRED = - 1;
+
+ /**
* define compile check modes
*/
const COMPILECHECK_OFF = 0;
@@ -189,118 +191,145 @@ class Smarty extends Smarty_Internal_TemplateBase {
* Flag denoting if PCRE should run in UTF-8 mode
*/
public static $_UTF8_MODIFIER = 'u';
-
+
/**
* Flag denoting if operating system is windows
*/
public static $_IS_WINDOWS = false;
-
+
/**#@+
* variables
*/
/**
* auto literal on delimiters with whitspace
+ *
* @var boolean
*/
public $auto_literal = true;
/**
* display error on not assigned variables
+ *
* @var boolean
*/
public $error_unassigned = false;
/**
* look up relative filepaths in include_path
+ *
* @var boolean
*/
public $use_include_path = false;
/**
* template directory
+ *
* @var array
*/
private $template_dir = array();
/**
* joined template directory string used in cache keys
+ *
* @var string
*/
public $joined_template_dir = null;
/**
* joined config directory string used in cache keys
+ *
* @var string
*/
public $joined_config_dir = null;
/**
* default template handler
+ *
* @var callable
*/
public $default_template_handler_func = null;
/**
* default config handler
+ *
* @var callable
*/
public $default_config_handler_func = null;
/**
* default plugin handler
+ *
* @var callable
*/
public $default_plugin_handler_func = null;
/**
* compile directory
+ *
* @var string
*/
private $compile_dir = null;
/**
* plugins directory
+ *
* @var array
*/
private $plugins_dir = array();
/**
* cache directory
+ *
* @var string
*/
private $cache_dir = null;
/**
* config directory
+ *
* @var array
*/
private $config_dir = array();
/**
* force template compiling?
+ *
* @var boolean
*/
public $force_compile = false;
/**
* check template for modifications?
+ *
* @var boolean
*/
public $compile_check = true;
/**
* use sub dirs for compiled/cached files?
+ *
* @var boolean
*/
public $use_sub_dirs = false;
/**
* allow ambiguous resources (that are made unique by the resource handler)
+ *
* @var boolean
*/
public $allow_ambiguous_resources = false;
/**
* caching enabled
+ *
* @var boolean
*/
public $caching = false;
/**
* merge compiled includes
+ *
* @var boolean
*/
public $merge_compiled_includes = false;
/**
+ * template inheritance merge compiled includes
+ *
+ * @var boolean
+ */
+ public $inheritance_merge_compiled_includes = true;
+ /**
* cache lifetime in seconds
+ *
* @var integer
*/
public $cache_lifetime = 3600;
/**
* force cache file creation
+ *
* @var boolean
*/
public $force_cache = false;
@@ -320,11 +349,13 @@ class Smarty extends Smarty_Internal_TemplateBase {
public $compile_id = null;
/**
* template left-delimiter
+ *
* @var string
*/
public $left_delimiter = "{";
/**
* template right-delimiter
+ *
* @var string
*/
public $right_delimiter = "}";
@@ -333,7 +364,6 @@ class Smarty extends Smarty_Internal_TemplateBase {
*/
/**
* class name
- *
* This should be instance of Smarty_Security.
*
* @var string
@@ -360,7 +390,6 @@ class Smarty extends Smarty_Internal_TemplateBase {
public $allow_php_templates = false;
/**
* Should compiled-templates be prevented from being called directly?
- *
* {@internal
* Currently used by Smarty_Internal_Template only.
* }}
@@ -371,7 +400,6 @@ class Smarty extends Smarty_Internal_TemplateBase {
/**#@-*/
/**
* debug mode
- *
* Setting this to true enables the debug-console.
*
* @var boolean
@@ -383,12 +411,12 @@ class Smarty extends Smarty_Internal_TemplateBase {
* <li>NONE => no debugging control allowed</li>
* <li>URL => enable debugging when SMARTY_DEBUG is found in the URL.</li>
* </ul>
+ *
* @var string
*/
public $debugging_ctrl = 'NONE';
/**
* Name of debugging URL-param.
- *
* Only used when $debugging_ctrl is set to 'URL'.
* The name of the URL-parameter that activates debugging.
*
@@ -397,16 +425,19 @@ class Smarty extends Smarty_Internal_TemplateBase {
public $smarty_debug_id = 'SMARTY_DEBUG';
/**
* Path of debug template.
+ *
* @var string
*/
public $debug_tpl = null;
/**
* When set, smarty uses this value as error_reporting-level.
+ *
* @var int
*/
public $error_reporting = null;
/**
* Internal flag for getTags()
+ *
* @var boolean
*/
public $get_used_tags = false;
@@ -417,16 +448,19 @@ class Smarty extends Smarty_Internal_TemplateBase {
/**
* Controls whether variables with the same name overwrite each other.
+ *
* @var boolean
*/
public $config_overwrite = true;
/**
* Controls whether config values of on/true/yes and off/false/no get converted to boolean.
+ *
* @var boolean
*/
public $config_booleanize = true;
/**
* Controls whether hidden config sections/vars are read from the file.
+ *
* @var boolean
*/
public $config_read_hidden = false;
@@ -439,16 +473,19 @@ class Smarty extends Smarty_Internal_TemplateBase {
/**
* locking concurrent compiles
+ *
* @var boolean
*/
public $compile_locking = true;
/**
* Controls whether cache resources should emply locking mechanism
+ *
* @var boolean
*/
public $cache_locking = false;
/**
* seconds to wait for acquiring a lock before ignoring the write lock
+ *
* @var float
*/
public $locking_timeout = 10;
@@ -457,19 +494,19 @@ class Smarty extends Smarty_Internal_TemplateBase {
/**
* global template functions
+ *
* @var array
*/
public $template_functions = array();
/**
* resource type used if none given
- *
* Must be an valid key of $registered_resources.
+ *
* @var string
*/
public $default_resource_type = 'file';
/**
* caching type
- *
* Must be an element of $cache_resource_types.
*
* @var string
@@ -477,121 +514,145 @@ class Smarty extends Smarty_Internal_TemplateBase {
public $caching_type = 'file';
/**
* internal config properties
+ *
* @var array
*/
public $properties = array();
/**
* config type
+ *
* @var string
*/
public $default_config_type = 'file';
/**
* cached template objects
+ *
* @var array
*/
public $template_objects = array();
/**
* check If-Modified-Since headers
+ *
* @var boolean
*/
public $cache_modified_check = false;
/**
* registered plugins
+ *
* @var array
*/
public $registered_plugins = array();
/**
* plugin search order
+ *
* @var array
*/
public $plugin_search_order = array('function', 'block', 'compiler', 'class');
/**
* registered objects
+ *
* @var array
*/
public $registered_objects = array();
/**
* registered classes
+ *
* @var array
*/
public $registered_classes = array();
/**
* registered filters
+ *
* @var array
*/
public $registered_filters = array();
/**
* registered resources
+ *
* @var array
*/
public $registered_resources = array();
/**
* resource handler cache
+ *
* @var array
*/
public $_resource_handlers = array();
/**
* registered cache resources
+ *
* @var array
*/
public $registered_cache_resources = array();
/**
* cache resource handler cache
+ *
* @var array
*/
public $_cacheresource_handlers = array();
/**
* autoload filter
+ *
* @var array
*/
public $autoload_filters = array();
/**
* default modifier
+ *
* @var array
*/
public $default_modifiers = array();
/**
* autoescape variable output
+ *
* @var boolean
*/
public $escape_html = false;
/**
* global internal smarty vars
+ *
* @var array
*/
public static $_smarty_vars = array();
/**
* start time for execution time calculation
+ *
* @var int
*/
public $start_time = 0;
/**
* default file permissions
+ *
* @var int
*/
public $_file_perms = 0644;
/**
* default dir permissions
+ *
* @var int
*/
public $_dir_perms = 0771;
/**
* block tag hierarchy
+ *
* @var array
*/
public $_tag_stack = array();
/**
* self pointer to Smarty object
+ *
* @var Smarty
*/
public $smarty;
/**
* required by the compiler for BC
+ *
* @var string
*/
public $_current_file = null;
/**
* internal flag to enable parser debugging
+ *
* @var bool
*/
public $_parserdebug = false;
@@ -601,11 +662,19 @@ class Smarty extends Smarty_Internal_TemplateBase {
* @var array
*/
public $merged_templates_func = array();
+
+ /**
+ * Cache of is_file results of loadPlugin()
+ *
+ * @var array
+ */
+ public static $_is_file_cache= array();
+
/**#@-*/
/**
* Initialize new Smarty object
- *
+
*/
public function __construct()
{
@@ -628,7 +697,6 @@ class Smarty extends Smarty_Internal_TemplateBase {
}
}
-
/**
* Class destructor
*/
@@ -645,36 +713,34 @@ class Smarty extends Smarty_Internal_TemplateBase {
$this->smarty = $this;
}
-
/**
* <<magic>> Generic getter.
- *
* Calls the appropriate getter function.
* Issues an E_USER_NOTICE if no valid getter is found.
*
- * @param string $name property name
+ * @param string $name property name
+ *
* @return mixed
*/
public function __get($name)
{
$allowed = array(
- 'template_dir' => 'getTemplateDir',
- 'config_dir' => 'getConfigDir',
- 'plugins_dir' => 'getPluginsDir',
- 'compile_dir' => 'getCompileDir',
- 'cache_dir' => 'getCacheDir',
+ 'template_dir' => 'getTemplateDir',
+ 'config_dir' => 'getConfigDir',
+ 'plugins_dir' => 'getPluginsDir',
+ 'compile_dir' => 'getCompileDir',
+ 'cache_dir' => 'getCacheDir',
);
if (isset($allowed[$name])) {
return $this->{$allowed[$name]}();
} else {
- trigger_error('Undefined property: '. get_class($this) .'::$'. $name, E_USER_NOTICE);
+ trigger_error('Undefined property: ' . get_class($this) . '::$' . $name, E_USER_NOTICE);
}
}
/**
* <<magic>> Generic setter.
- *
* Calls the appropriate setter function.
* Issues an E_USER_NOTICE if no valid setter is found.
*
@@ -684,11 +750,11 @@ class Smarty extends Smarty_Internal_TemplateBase {
public function __set($name, $value)
{
$allowed = array(
- 'template_dir' => 'setTemplateDir',
- 'config_dir' => 'setConfigDir',
- 'plugins_dir' => 'setPluginsDir',
- 'compile_dir' => 'setCompileDir',
- 'cache_dir' => 'setCacheDir',
+ 'template_dir' => 'setTemplateDir',
+ 'config_dir' => 'setConfigDir',
+ 'plugins_dir' => 'setPluginsDir',
+ 'compile_dir' => 'setCompileDir',
+ 'cache_dir' => 'setCacheDir',
);
if (isset($allowed[$name])) {
@@ -701,7 +767,8 @@ class Smarty extends Smarty_Internal_TemplateBase {
/**
* Check if a template resource exists
*
- * @param string $resource_name template name
+ * @param string $resource_name template name
+ *
* @return boolean status
*/
public function templateExists($resource_name)
@@ -712,14 +779,15 @@ class Smarty extends Smarty_Internal_TemplateBase {
// check if it does exists
$result = $tpl->source->exists;
$this->template_objects = $save;
+
return $result;
}
/**
* Returns a single or all global variables
*
- * @param object $smarty
- * @param string $varname variable name or null
+ * @param string $varname variable name or null
+ *
* @return string variable value or or array of variables
*/
public function getGlobal($varname = null)
@@ -735,6 +803,7 @@ class Smarty extends Smarty_Internal_TemplateBase {
foreach (self::$global_tpl_vars AS $key => $var) {
$_result[$key] = $var->value;
}
+
return $_result;
}
}
@@ -742,26 +811,29 @@ class Smarty extends Smarty_Internal_TemplateBase {
/**
* Empty cache folder
*
- * @param integer $exp_time expiration time
- * @param string $type resource type
+ * @param integer $exp_time expiration time
+ * @param string $type resource type
+ *
* @return integer number of cache files deleted
*/
- function clearAllCache($exp_time = null, $type = null)
+ public function clearAllCache($exp_time = null, $type = null)
{
// load cache resource and call clearAll
$_cache_resource = Smarty_CacheResource::load($this, $type);
Smarty_CacheResource::invalidLoadedCache($this);
+
return $_cache_resource->clearAll($this, $exp_time);
}
/**
* Empty cache for a specific template
*
- * @param string $template_name template name
- * @param string $cache_id cache id
- * @param string $compile_id compile id
- * @param integer $exp_time expiration time
- * @param string $type resource type
+ * @param string $template_name template name
+ * @param string $cache_id cache id
+ * @param string $compile_id compile id
+ * @param integer $exp_time expiration time
+ * @param string $type resource type
+ *
* @return integer number of cache files deleted
*/
public function clearCache($template_name, $cache_id = null, $compile_id = null, $exp_time = null, $type = null)
@@ -769,20 +841,23 @@ class Smarty extends Smarty_Internal_TemplateBase {
// load cache resource and call clear
$_cache_resource = Smarty_CacheResource::load($this, $type);
Smarty_CacheResource::invalidLoadedCache($this);
+
return $_cache_resource->clear($this, $template_name, $cache_id, $compile_id, $exp_time);
}
/**
* Loads security class and enables security
*
- * @param string|Smarty_Security $security_class if a string is used, it must be class-name
- * @return Smarty current Smarty instance for chaining
- * @throws SmartyException when an invalid class name is provided
+ * @param string|Smarty_Security $security_class if a string is used, it must be class-name
+ *
+ * @return Smarty current Smarty instance for chaining
+ * @throws SmartyException when an invalid class name is provided
*/
public function enableSecurity($security_class = null)
{
if ($security_class instanceof Smarty_Security) {
$this->security_policy = $security_class;
+
return $this;
} elseif (is_object($security_class)) {
throw new SmartyException("Class '" . get_class($security_class) . "' must extend Smarty_Security.");
@@ -803,6 +878,7 @@ class Smarty extends Smarty_Internal_TemplateBase {
/**
* Disable security
+ *
* @return Smarty current Smarty instance for chaining
*/
public function disableSecurity()
@@ -815,145 +891,164 @@ class Smarty extends Smarty_Internal_TemplateBase {
/**
* Set template directory
*
- * @param string|array $template_dir directory(s) of template sources
- * @return Smarty current Smarty instance for chaining
+ * @param string|array $template_dir directory(s) of template sources
+ *
+ * @return Smarty current Smarty instance for chaining
*/
public function setTemplateDir($template_dir)
{
$this->template_dir = array();
foreach ((array) $template_dir as $k => $v) {
- $this->template_dir[$k] = rtrim($v, '/\\') . DS;
+ $this->template_dir[$k] = preg_replace('#(\w+)(/|\\\\){1,}#', '$1$2', rtrim($v, '/\\')) . DS;
}
$this->joined_template_dir = join(DIRECTORY_SEPARATOR, $this->template_dir);
+
return $this;
}
/**
* Add template directory(s)
*
- * @param string|array $template_dir directory(s) of template sources
- * @param string $key of the array element to assign the template dir to
- * @return Smarty current Smarty instance for chaining
+ * @param string|array $template_dir directory(s) of template sources
+ * @param string $key of the array element to assign the template dir to
+ *
+ * @return Smarty current Smarty instance for chaining
* @throws SmartyException when the given template directory is not valid
*/
- public function addTemplateDir($template_dir, $key=null)
+ public function addTemplateDir($template_dir, $key = null)
{
// make sure we're dealing with an array
$this->template_dir = (array) $this->template_dir;
if (is_array($template_dir)) {
foreach ($template_dir as $k => $v) {
+ $v = preg_replace('#(\w+)(/|\\\\){1,}#', '$1$2', rtrim($v, '/\\')) . DS;
if (is_int($k)) {
// indexes are not merged but appended
- $this->template_dir[] = rtrim($v, '/\\') . DS;
+ $this->template_dir[] = $v;
} else {
// string indexes are overridden
- $this->template_dir[$k] = rtrim($v, '/\\') . DS;
+ $this->template_dir[$k] = $v;
}
}
- } elseif ($key !== null) {
- // override directory at specified index
- $this->template_dir[$key] = rtrim($template_dir, '/\\') . DS;
} else {
- // append new directory
- $this->template_dir[] = rtrim($template_dir, '/\\') . DS;
+ $v = preg_replace('#(\w+)(/|\\\\){1,}#', '$1$2', rtrim($template_dir, '/\\')) . DS;
+ if ($key !== null) {
+ // override directory at specified index
+ $this->template_dir[$key] = $v;
+ } else {
+ // append new directory
+ $this->template_dir[] = $v;
+ }
}
$this->joined_template_dir = join(DIRECTORY_SEPARATOR, $this->template_dir);
+
return $this;
}
/**
* Get template directories
*
- * @param mixed index of directory to get, null to get all
+ * @param mixed $index index of directory to get, null to get all
+ *
* @return array|string list of template directories, or directory of $index
*/
- public function getTemplateDir($index=null)
+ public function getTemplateDir($index = null)
{
if ($index !== null) {
return isset($this->template_dir[$index]) ? $this->template_dir[$index] : null;
}
- return (array)$this->template_dir;
+ return (array) $this->template_dir;
}
/**
* Set config directory
*
- * @param string|array $template_dir directory(s) of configuration sources
- * @return Smarty current Smarty instance for chaining
+ * @param $config_dir
+ *
+ * @return Smarty current Smarty instance for chaining
*/
public function setConfigDir($config_dir)
{
$this->config_dir = array();
foreach ((array) $config_dir as $k => $v) {
- $this->config_dir[$k] = rtrim($v, '/\\') . DS;
+ $this->config_dir[$k] = preg_replace('#(\w+)(/|\\\\){1,}#', '$1$2', rtrim($v, '/\\')) . DS;
}
$this->joined_config_dir = join(DIRECTORY_SEPARATOR, $this->config_dir);
+
return $this;
}
/**
* Add config directory(s)
*
- * @param string|array $config_dir directory(s) of config sources
- * @param string key of the array element to assign the config dir to
+ * @param string|array $config_dir directory(s) of config sources
+ * @param mixed $key key of the array element to assign the config dir to
+ *
* @return Smarty current Smarty instance for chaining
*/
- public function addConfigDir($config_dir, $key=null)
+ public function addConfigDir($config_dir, $key = null)
{
// make sure we're dealing with an array
$this->config_dir = (array) $this->config_dir;
if (is_array($config_dir)) {
foreach ($config_dir as $k => $v) {
+ $v = preg_replace('#(\w+)(/|\\\\){1,}#', '$1$2', rtrim($v, '/\\')) . DS;
if (is_int($k)) {
// indexes are not merged but appended
- $this->config_dir[] = rtrim($v, '/\\') . DS;
+ $this->config_dir[] = $v;
} else {
// string indexes are overridden
- $this->config_dir[$k] = rtrim($v, '/\\') . DS;
+ $this->config_dir[$k] = $v;
}
}
- } elseif( $key !== null ) {
- // override directory at specified index
- $this->config_dir[$key] = rtrim($config_dir, '/\\') . DS;
} else {
- // append new directory
- $this->config_dir[] = rtrim($config_dir, '/\\') . DS;
+ $v = preg_replace('#(\w+)(/|\\\\){1,}#', '$1$2', rtrim($config_dir, '/\\')) . DS;
+ if ($key !== null) {
+ // override directory at specified index
+ $this->config_dir[$key] = rtrim($v, '/\\') . DS;
+ } else {
+ // append new directory
+ $this->config_dir[] = rtrim($v, '/\\') . DS;
+ }
}
$this->joined_config_dir = join(DIRECTORY_SEPARATOR, $this->config_dir);
+
return $this;
}
/**
* Get config directory
*
- * @param mixed index of directory to get, null to get all
+ * @param mixed $index index of directory to get, null to get all
+ *
* @return array|string configuration directory
*/
- public function getConfigDir($index=null)
+ public function getConfigDir($index = null)
{
if ($index !== null) {
return isset($this->config_dir[$index]) ? $this->config_dir[$index] : null;
}
- return (array)$this->config_dir;
+ return (array) $this->config_dir;
}
/**
* Set plugins directory
*
- * @param string|array $plugins_dir directory(s) of plugins
- * @return Smarty current Smarty instance for chaining
+ * @param string|array $plugins_dir directory(s) of plugins
+ *
+ * @return Smarty current Smarty instance for chaining
*/
public function setPluginsDir($plugins_dir)
{
$this->plugins_dir = array();
- foreach ((array)$plugins_dir as $k => $v) {
+ foreach ((array) $plugins_dir as $k => $v) {
$this->plugins_dir[$k] = rtrim($v, '/\\') . DS;
}
@@ -963,8 +1058,8 @@ class Smarty extends Smarty_Internal_TemplateBase {
/**
* Adds directory of plugin files
*
- * @param object $smarty
- * @param string $ |array $ plugins folder
+ * @param $plugins_dir
+ *
* @return Smarty current Smarty instance for chaining
*/
public function addPluginsDir($plugins_dir)
@@ -988,6 +1083,7 @@ class Smarty extends Smarty_Internal_TemplateBase {
}
$this->plugins_dir = array_unique($this->plugins_dir);
+
return $this;
}
@@ -998,13 +1094,14 @@ class Smarty extends Smarty_Internal_TemplateBase {
*/
public function getPluginsDir()
{
- return (array)$this->plugins_dir;
+ return (array) $this->plugins_dir;
}
/**
* Set compile directory
*
- * @param string $compile_dir directory to store compiled templates in
+ * @param string $compile_dir directory to store compiled templates in
+ *
* @return Smarty current Smarty instance for chaining
*/
public function setCompileDir($compile_dir)
@@ -1013,6 +1110,7 @@ class Smarty extends Smarty_Internal_TemplateBase {
if (!isset(Smarty::$_muted_directories[$this->compile_dir])) {
Smarty::$_muted_directories[$this->compile_dir] = null;
}
+
return $this;
}
@@ -1029,7 +1127,8 @@ class Smarty extends Smarty_Internal_TemplateBase {
/**
* Set cache directory
*
- * @param string $cache_dir directory to store cached templates in
+ * @param string $cache_dir directory to store cached templates in
+ *
* @return Smarty current Smarty instance for chaining
*/
public function setCacheDir($cache_dir)
@@ -1038,6 +1137,7 @@ class Smarty extends Smarty_Internal_TemplateBase {
if (!isset(Smarty::$_muted_directories[$this->cache_dir])) {
Smarty::$_muted_directories[$this->cache_dir] = null;
}
+
return $this;
}
@@ -1054,20 +1154,23 @@ class Smarty extends Smarty_Internal_TemplateBase {
/**
* Set default modifiers
*
- * @param array|string $modifiers modifier or list of modifiers to set
- * @return Smarty current Smarty instance for chaining
+ * @param array|string $modifiers modifier or list of modifiers to set
+ *
+ * @return Smarty current Smarty instance for chaining
*/
public function setDefaultModifiers($modifiers)
{
$this->default_modifiers = (array) $modifiers;
+
return $this;
}
/**
* Add default modifiers
*
- * @param array|string $modifiers modifier or list of modifiers to add
- * @return Smarty current Smarty instance for chaining
+ * @param array|string $modifiers modifier or list of modifiers to add
+ *
+ * @return Smarty current Smarty instance for chaining
*/
public function addDefaultModifiers($modifiers)
{
@@ -1090,15 +1193,15 @@ class Smarty extends Smarty_Internal_TemplateBase {
return $this->default_modifiers;
}
-
/**
* Set autoload filters
*
- * @param array $filters filters to load automatically
- * @param string $type "pre", "output", … specify the filter type to set. Defaults to none treating $filters' keys as the appropriate types
+ * @param array $filters filters to load automatically
+ * @param string $type "pre", "output", … specify the filter type to set. Defaults to none treating $filters' keys as the appropriate types
+ *
* @return Smarty current Smarty instance for chaining
*/
- public function setAutoloadFilters($filters, $type=null)
+ public function setAutoloadFilters($filters, $type = null)
{
if ($type !== null) {
$this->autoload_filters[$type] = (array) $filters;
@@ -1112,11 +1215,12 @@ class Smarty extends Smarty_Internal_TemplateBase {
/**
* Add autoload filters
*
- * @param array $filters filters to load automatically
- * @param string $type "pre", "output", … specify the filter type to set. Defaults to none treating $filters' keys as the appropriate types
+ * @param array $filters filters to load automatically
+ * @param string $type "pre", "output", … specify the filter type to set. Defaults to none treating $filters' keys as the appropriate types
+ *
* @return Smarty current Smarty instance for chaining
*/
- public function addAutoloadFilters($filters, $type=null)
+ public function addAutoloadFilters($filters, $type = null)
{
if ($type !== null) {
if (!empty($this->autoload_filters[$type])) {
@@ -1140,10 +1244,11 @@ class Smarty extends Smarty_Internal_TemplateBase {
/**
* Get autoload filters
*
- * @param string $type type of filter to get autoloads for. Defaults to all autoload filters
- * @return array array( 'type1' => array( 'filter1', 'filter2', … ) ) or array( 'filter1', 'filter2', …) if $type was specified
+ * @param string $type type of filter to get autoloads for. Defaults to all autoload filters
+ *
+ * @return array array( 'type1' => array( 'filter1', 'filter2', … ) ) or array( 'filter1', 'filter2', …) if $type was specified
*/
- public function getAutoloadFilters($type=null)
+ public function getAutoloadFilters($type = null)
{
if ($type !== null) {
return isset($this->autoload_filters[$type]) ? $this->autoload_filters[$type] : array();
@@ -1165,8 +1270,9 @@ class Smarty extends Smarty_Internal_TemplateBase {
/**
* set the debug template
*
- * @param string $tpl_name
- * @return Smarty current Smarty instance for chaining
+ * @param string $tpl_name
+ *
+ * @return Smarty current Smarty instance for chaining
* @throws SmartyException if file is not readable
*/
public function setDebugTemplate($tpl_name)
@@ -1182,20 +1288,21 @@ class Smarty extends Smarty_Internal_TemplateBase {
/**
* creates a template object
*
- * @param string $template the resource handle of the template file
- * @param mixed $cache_id cache id to be used with this template
- * @param mixed $compile_id compile id to be used with this template
- * @param object $parent next higher level of Smarty variables
- * @param boolean $do_clone flag is Smarty object shall be cloned
- * @return object template object
+ * @param string $template the resource handle of the template file
+ * @param mixed $cache_id cache id to be used with this template
+ * @param mixed $compile_id compile id to be used with this template
+ * @param object $parent next higher level of Smarty variables
+ * @param boolean $do_clone flag is Smarty object shall be cloned
+ *
+ * @return object template object
*/
public function createTemplate($template, $cache_id = null, $compile_id = null, $parent = null, $do_clone = true)
{
- if (!empty($cache_id) && (is_object($cache_id) || is_array($cache_id))) {
+ if ($cache_id !== null && (is_object($cache_id) || is_array($cache_id))) {
$parent = $cache_id;
$cache_id = null;
}
- if (!empty($parent) && is_array($parent)) {
+ if ($parent !== null && is_array($parent)) {
$data = $parent;
$parent = null;
} else {
@@ -1242,17 +1349,19 @@ class Smarty extends Smarty_Internal_TemplateBase {
$tpl->tpl_vars[$_key] = new Smarty_variable($_val);
}
}
+
return $tpl;
}
-
/**
* Takes unknown classes and loads plugin files for them
* class name format: Smarty_PluginType_PluginName
* plugin filename format: plugintype.pluginname.php
*
- * @param string $plugin_name class plugin name to load
- * @param bool $check check if already loaded
+ * @param string $plugin_name class plugin name to load
+ * @param bool $check check if already loaded
+ *
+ * @throws SmartyException
* @return string |boolean filepath of loaded file or false
*/
public function loadPlugin($plugin_name, $check = true)
@@ -1267,12 +1376,11 @@ class Smarty extends Smarty_Internal_TemplateBase {
// count($_name_parts) < 3 === !isset($_name_parts[2])
if (!isset($_name_parts[2]) || strtolower($_name_parts[0]) !== 'smarty') {
throw new SmartyException("plugin {$plugin_name} is not a valid name format");
- return false;
}
// if type is "internal", get plugin from sysplugins
if (strtolower($_name_parts[1]) == 'internal') {
$file = SMARTY_SYSPLUGINS_DIR . strtolower($plugin_name) . '.php';
- if (file_exists($file)) {
+ if (isset(self::$_is_file_cache[$file]) ? self::$_is_file_cache[$file] : self::$_is_file_cache[$file] = is_file($file)) {
require_once($file);
return $file;
} else {
@@ -1281,17 +1389,17 @@ class Smarty extends Smarty_Internal_TemplateBase {
}
// plugin filename is expected to be: [type].[name].php
$_plugin_filename = "{$_name_parts[1]}.{$_name_parts[2]}.php";
-
+
$_stream_resolve_include_path = function_exists('stream_resolve_include_path');
// loop through plugin dirs and find the plugin
- foreach($this->getPluginsDir() as $_plugin_dir) {
+ foreach ($this->getPluginsDir() as $_plugin_dir) {
$names = array(
$_plugin_dir . $_plugin_filename,
$_plugin_dir . strtolower($_plugin_filename),
);
foreach ($names as $file) {
- if (file_exists($file)) {
+ if (isset(self::$_is_file_cache[$file]) ? self::$_is_file_cache[$file] : self::$_is_file_cache[$file] = is_file($file)) {
require_once($file);
return $file;
}
@@ -1302,9 +1410,10 @@ class Smarty extends Smarty_Internal_TemplateBase {
} else {
$file = Smarty_Internal_Get_Include_Path::getIncludePath($file);
}
-
+
if ($file !== false) {
require_once($file);
+
return $file;
}
}
@@ -1317,37 +1426,40 @@ class Smarty extends Smarty_Internal_TemplateBase {
/**
* Compile all template files
*
- * @param string $extension file extension
- * @param bool $force_compile force all to recompile
- * @param int $time_limit
- * @param int $max_errors
+ * @param string $extension file extension
+ * @param bool $force_compile force all to recompile
+ * @param int $time_limit
+ * @param int $max_errors
+ *
* @return integer number of template files recompiled
*/
- public function compileAllTemplates($extention = '.tpl', $force_compile = false, $time_limit = 0, $max_errors = null)
+ public function compileAllTemplates($extension = '.tpl', $force_compile = false, $time_limit = 0, $max_errors = null)
{
- return Smarty_Internal_Utility::compileAllTemplates($extention, $force_compile, $time_limit, $max_errors, $this);
+ return Smarty_Internal_Utility::compileAllTemplates($extension, $force_compile, $time_limit, $max_errors, $this);
}
/**
* Compile all config files
*
- * @param string $extension file extension
- * @param bool $force_compile force all to recompile
- * @param int $time_limit
- * @param int $max_errors
+ * @param string $extension file extension
+ * @param bool $force_compile force all to recompile
+ * @param int $time_limit
+ * @param int $max_errors
+ *
* @return integer number of template files recompiled
*/
- public function compileAllConfig($extention = '.conf', $force_compile = false, $time_limit = 0, $max_errors = null)
+ public function compileAllConfig($extension = '.conf', $force_compile = false, $time_limit = 0, $max_errors = null)
{
- return Smarty_Internal_Utility::compileAllConfig($extention, $force_compile, $time_limit, $max_errors, $this);
+ return Smarty_Internal_Utility::compileAllConfig($extension, $force_compile, $time_limit, $max_errors, $this);
}
/**
* Delete compiled template file
*
- * @param string $resource_name template name
- * @param string $compile_id compile id
- * @param integer $exp_time expiration time
+ * @param string $resource_name template name
+ * @param string $compile_id compile id
+ * @param integer $exp_time expiration time
+ *
* @return integer number of template files deleted
*/
public function clearCompiledTemplate($resource_name = null, $compile_id = null, $exp_time = null)
@@ -1355,12 +1467,12 @@ class Smarty extends Smarty_Internal_TemplateBase {
return Smarty_Internal_Utility::clearCompiledTemplate($resource_name, $compile_id, $exp_time, $this);
}
-
/**
* Return array of tag/attributes of all tags used by an template
*
- * @param object $templae template object
- * @return array of tag/attributes
+ * @param Smarty_Internal_Template $template
+ *
+ * @return array of tag/attributes
*/
public function getTags(Smarty_Internal_Template $template)
{
@@ -1370,10 +1482,11 @@ class Smarty extends Smarty_Internal_TemplateBase {
/**
* Run installation test
*
- * @param array $errors Array to write errors into, rather than outputting them
+ * @param array $errors Array to write errors into, rather than outputting them
+ *
* @return boolean true if setup is fine, false if something is wrong
*/
- public function testInstall(&$errors=null)
+ public function testInstall(&$errors = null)
{
return Smarty_Internal_Utility::testInstall($this, $errors);
}
@@ -1382,7 +1495,13 @@ class Smarty extends Smarty_Internal_TemplateBase {
* Error Handler to mute expected messages
*
* @link http://php.net/set_error_handler
- * @param integer $errno Error level
+ *
+ * @param integer $errno Error level
+ * @param $errstr
+ * @param $errfile
+ * @param $errline
+ * @param $errcontext
+ *
* @return boolean
*/
public static function mutingErrorHandler($errno, $errstr, $errfile, $errline, $errcontext)
@@ -1392,10 +1511,12 @@ class Smarty extends Smarty_Internal_TemplateBase {
// add the SMARTY_DIR to the list of muted directories
if (!isset(Smarty::$_muted_directories[SMARTY_DIR])) {
$smarty_dir = realpath(SMARTY_DIR);
- Smarty::$_muted_directories[SMARTY_DIR] = array(
- 'file' => $smarty_dir,
- 'length' => strlen($smarty_dir),
- );
+ if ($smarty_dir !== false) {
+ Smarty::$_muted_directories[SMARTY_DIR] = array(
+ 'file' => $smarty_dir,
+ 'length' => strlen($smarty_dir),
+ );
+ }
}
// walk the muted directories and test against $errfile
@@ -1403,8 +1524,13 @@ class Smarty extends Smarty_Internal_TemplateBase {
if (!$dir) {
// resolve directory and length for speedy comparisons
$file = realpath($key);
+ if ($file === false) {
+ // this directory does not exist, remove and skip it
+ unset(Smarty::$_muted_directories[$key]);
+ continue;
+ }
$dir = array(
- 'file' => $file,
+ 'file' => $file,
'length' => strlen($file),
);
}
@@ -1478,16 +1604,55 @@ if (Smarty::$_CHARSET !== 'UTF-8') {
/**
* Smarty exception class
+ *
* @package Smarty
*/
-class SmartyException extends Exception {
+class SmartyException extends Exception
+{
+ public static $escape = false;
+
+ public function __toString()
+ {
+ return ' --> Smarty: ' . (self::$escape ? htmlentities($this->message) : $this->message) . ' <-- ';
+ }
}
/**
* Smarty compiler exception class
+ *
* @package Smarty
*/
-class SmartyCompilerException extends SmartyException {
+class SmartyCompilerException extends SmartyException
+{
+ public function __toString()
+ {
+ return ' --> Smarty Compiler: ' . $this->message . ' <-- ';
+ }
+
+ /**
+ * The line number of the template error
+ *
+ * @type int|null
+ */
+ public $line = null;
+ /**
+ * The template source snippet relating to the error
+ *
+ * @type string|null
+ */
+ public $source = null;
+ /**
+ * The raw text of the error message
+ *
+ * @type string|null
+ */
+ public $desc = null;
+ /**
+ * The resource identifier or template name
+ *
+ * @type string|null
+ */
+ public $template = null;
}
/**
@@ -1496,22 +1661,20 @@ class SmartyCompilerException extends SmartyException {
function smartyAutoload($class)
{
$_class = strtolower($class);
- $_classes = array(
- 'smarty_config_source' => true,
- 'smarty_config_compiled' => true,
- 'smarty_security' => true,
- 'smarty_cacheresource' => true,
- 'smarty_cacheresource_custom' => true,
+ static $_classes = array(
+ 'smarty_config_source' => true,
+ 'smarty_config_compiled' => true,
+ 'smarty_security' => true,
+ 'smarty_cacheresource' => true,
+ 'smarty_cacheresource_custom' => true,
'smarty_cacheresource_keyvaluestore' => true,
- 'smarty_resource' => true,
- 'smarty_resource_custom' => true,
- 'smarty_resource_uncompiled' => true,
- 'smarty_resource_recompiled' => true,
+ 'smarty_resource' => true,
+ 'smarty_resource_custom' => true,
+ 'smarty_resource_uncompiled' => true,
+ 'smarty_resource_recompiled' => true,
);
if (!strncmp($_class, 'smarty_internal_', 16) || isset($_classes[$_class])) {
include SMARTY_SYSPLUGINS_DIR . $_class . '.php';
}
}
-
-?>
diff --git a/library/Smarty/libs/SmartyBC.class.php b/library/Smarty/libs/SmartyBC.class.php
index f8f0a138f..cec946746 100644
--- a/library/Smarty/libs/SmartyBC.class.php
+++ b/library/Smarty/libs/SmartyBC.class.php
@@ -1,460 +1,467 @@
-<?php
-/**
- * Project: Smarty: the PHP compiling template engine
- * File: SmartyBC.class.php
- * SVN: $Id: $
- *
- * 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 2.1 of the License, or (at your option) 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., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
- *
- * For questions, help, comments, discussion, etc., please join the
- * Smarty mailing list. Send a blank e-mail to
- * smarty-discussion-subscribe@googlegroups.com
- *
- * @link http://www.smarty.net/
- * @copyright 2008 New Digital Group, Inc.
- * @author Monte Ohrt <monte at ohrt dot com>
- * @author Uwe Tews
- * @author Rodney Rehm
- * @package Smarty
- */
-/**
- * @ignore
- */
-require(dirname(__FILE__) . '/Smarty.class.php');
-
-/**
- * Smarty Backward Compatability Wrapper Class
- *
- * @package Smarty
- */
-class SmartyBC extends Smarty {
-
- /**
- * Smarty 2 BC
- * @var string
- */
- public $_version = self::SMARTY_VERSION;
-
- /**
- * Initialize new SmartyBC object
- *
- * @param array $options options to set during initialization, e.g. array( 'forceCompile' => false )
- */
- public function __construct(array $options=array())
- {
- parent::__construct($options);
- // register {php} tag
- $this->registerPlugin('block', 'php', 'smarty_php_tag');
- }
-
- /**
- * wrapper for assign_by_ref
- *
- * @param string $tpl_var the template variable name
- * @param mixed &$value the referenced value to assign
- */
- public function assign_by_ref($tpl_var, &$value)
- {
- $this->assignByRef($tpl_var, $value);
- }
-
- /**
- * wrapper for append_by_ref
- *
- * @param string $tpl_var the template variable name
- * @param mixed &$value the referenced value to append
- * @param boolean $merge flag if array elements shall be merged
- */
- public function append_by_ref($tpl_var, &$value, $merge = false)
- {
- $this->appendByRef($tpl_var, $value, $merge);
- }
-
- /**
- * clear the given assigned template variable.
- *
- * @param string $tpl_var the template variable to clear
- */
- public function clear_assign($tpl_var)
- {
- $this->clearAssign($tpl_var);
- }
-
- /**
- * Registers custom function to be used in templates
- *
- * @param string $function the name of the template function
- * @param string $function_impl the name of the PHP function to register
- * @param bool $cacheable
- * @param mixed $cache_attrs
- */
- public function register_function($function, $function_impl, $cacheable=true, $cache_attrs=null)
- {
- $this->registerPlugin('function', $function, $function_impl, $cacheable, $cache_attrs);
- }
-
- /**
- * Unregisters custom function
- *
- * @param string $function name of template function
- */
- public function unregister_function($function)
- {
- $this->unregisterPlugin('function', $function);
- }
-
- /**
- * Registers object to be used in templates
- *
- * @param string $object name of template object
- * @param object $object_impl the referenced PHP object to register
- * @param array $allowed list of allowed methods (empty = all)
- * @param boolean $smarty_args smarty argument format, else traditional
- * @param array $block_functs list of methods that are block format
- */
- public function register_object($object, $object_impl, $allowed = array(), $smarty_args = true, $block_methods = array())
- {
- settype($allowed, 'array');
- settype($smarty_args, 'boolean');
- $this->registerObject($object, $object_impl, $allowed, $smarty_args, $block_methods);
- }
-
- /**
- * Unregisters object
- *
- * @param string $object name of template object
- */
- public function unregister_object($object)
- {
- $this->unregisterObject($object);
- }
-
- /**
- * Registers block function to be used in templates
- *
- * @param string $block name of template block
- * @param string $block_impl PHP function to register
- * @param bool $cacheable
- * @param mixed $cache_attrs
- */
- public function register_block($block, $block_impl, $cacheable=true, $cache_attrs=null)
- {
- $this->registerPlugin('block', $block, $block_impl, $cacheable, $cache_attrs);
- }
-
- /**
- * Unregisters block function
- *
- * @param string $block name of template function
- */
- public function unregister_block($block)
- {
- $this->unregisterPlugin('block', $block);
- }
-
- /**
- * Registers compiler function
- *
- * @param string $function name of template function
- * @param string $function_impl name of PHP function to register
- * @param bool $cacheable
- */
- public function register_compiler_function($function, $function_impl, $cacheable=true)
- {
- $this->registerPlugin('compiler', $function, $function_impl, $cacheable);
- }
-
- /**
- * Unregisters compiler function
- *
- * @param string $function name of template function
- */
- public function unregister_compiler_function($function)
- {
- $this->unregisterPlugin('compiler', $function);
- }
-
- /**
- * Registers modifier to be used in templates
- *
- * @param string $modifier name of template modifier
- * @param string $modifier_impl name of PHP function to register
- */
- public function register_modifier($modifier, $modifier_impl)
- {
- $this->registerPlugin('modifier', $modifier, $modifier_impl);
- }
-
- /**
- * Unregisters modifier
- *
- * @param string $modifier name of template modifier
- */
- public function unregister_modifier($modifier)
- {
- $this->unregisterPlugin('modifier', $modifier);
- }
-
- /**
- * Registers a resource to fetch a template
- *
- * @param string $type name of resource
- * @param array $functions array of functions to handle resource
- */
- public function register_resource($type, $functions)
- {
- $this->registerResource($type, $functions);
- }
-
- /**
- * Unregisters a resource
- *
- * @param string $type name of resource
- */
- public function unregister_resource($type)
- {
- $this->unregisterResource($type);
- }
-
- /**
- * Registers a prefilter function to apply
- * to a template before compiling
- *
- * @param callable $function
- */
- public function register_prefilter($function)
- {
- $this->registerFilter('pre', $function);
- }
-
- /**
- * Unregisters a prefilter function
- *
- * @param callable $function
- */
- public function unregister_prefilter($function)
- {
- $this->unregisterFilter('pre', $function);
- }
-
- /**
- * Registers a postfilter function to apply
- * to a compiled template after compilation
- *
- * @param callable $function
- */
- public function register_postfilter($function)
- {
- $this->registerFilter('post', $function);
- }
-
- /**
- * Unregisters a postfilter function
- *
- * @param callable $function
- */
- public function unregister_postfilter($function)
- {
- $this->unregisterFilter('post', $function);
- }
-
- /**
- * Registers an output filter function to apply
- * to a template output
- *
- * @param callable $function
- */
- public function register_outputfilter($function)
- {
- $this->registerFilter('output', $function);
- }
-
- /**
- * Unregisters an outputfilter function
- *
- * @param callable $function
- */
- public function unregister_outputfilter($function)
- {
- $this->unregisterFilter('output', $function);
- }
-
- /**
- * load a filter of specified type and name
- *
- * @param string $type filter type
- * @param string $name filter name
- */
- public function load_filter($type, $name)
- {
- $this->loadFilter($type, $name);
- }
-
- /**
- * clear cached content for the given template and cache id
- *
- * @param string $tpl_file name of template file
- * @param string $cache_id name of cache_id
- * @param string $compile_id name of compile_id
- * @param string $exp_time expiration time
- * @return boolean
- */
- public function clear_cache($tpl_file = null, $cache_id = null, $compile_id = null, $exp_time = null)
- {
- return $this->clearCache($tpl_file, $cache_id, $compile_id, $exp_time);
- }
-
- /**
- * clear the entire contents of cache (all templates)
- *
- * @param string $exp_time expire time
- * @return boolean
- */
- public function clear_all_cache($exp_time = null)
- {
- return $this->clearCache(null, null, null, $exp_time);
- }
-
- /**
- * test to see if valid cache exists for this template
- *
- * @param string $tpl_file name of template file
- * @param string $cache_id
- * @param string $compile_id
- * @return boolean
- */
- public function is_cached($tpl_file, $cache_id = null, $compile_id = null)
- {
- return $this->isCached($tpl_file, $cache_id, $compile_id);
- }
-
- /**
- * clear all the assigned template variables.
- */
- public function clear_all_assign()
- {
- $this->clearAllAssign();
- }
-
- /**
- * clears compiled version of specified template resource,
- * or all compiled template files if one is not specified.
- * This function is for advanced use only, not normally needed.
- *
- * @param string $tpl_file
- * @param string $compile_id
- * @param string $exp_time
- * @return boolean results of {@link smarty_core_rm_auto()}
- */
- public function clear_compiled_tpl($tpl_file = null, $compile_id = null, $exp_time = null)
- {
- return $this->clearCompiledTemplate($tpl_file, $compile_id, $exp_time);
- }
-
- /**
- * Checks whether requested template exists.
- *
- * @param string $tpl_file
- * @return boolean
- */
- public function template_exists($tpl_file)
- {
- return $this->templateExists($tpl_file);
- }
-
- /**
- * Returns an array containing template variables
- *
- * @param string $name
- * @return array
- */
- public function get_template_vars($name=null)
- {
- return $this->getTemplateVars($name);
- }
-
- /**
- * Returns an array containing config variables
- *
- * @param string $name
- * @return array
- */
- public function get_config_vars($name=null)
- {
- return $this->getConfigVars($name);
- }
-
- /**
- * load configuration values
- *
- * @param string $file
- * @param string $section
- * @param string $scope
- */
- public function config_load($file, $section = null, $scope = 'global')
- {
- $this->ConfigLoad($file, $section, $scope);
- }
-
- /**
- * return a reference to a registered object
- *
- * @param string $name
- * @return object
- */
- public function get_registered_object($name)
- {
- return $this->getRegisteredObject($name);
- }
-
- /**
- * clear configuration values
- *
- * @param string $var
- */
- public function clear_config($var = null)
- {
- $this->clearConfig($var);
- }
-
- /**
- * trigger Smarty error
- *
- * @param string $error_msg
- * @param integer $error_type
- */
- public function trigger_error($error_msg, $error_type = E_USER_WARNING)
- {
- trigger_error("Smarty error: $error_msg", $error_type);
- }
-
-}
-
-/**
- * Smarty {php}{/php} block function
- *
- * @param array $params parameter list
- * @param string $content contents of the block
- * @param object $template template object
- * @param boolean &$repeat repeat flag
- * @return string content re-formatted
- */
-function smarty_php_tag($params, $content, $template, &$repeat)
-{
- eval($content);
- return '';
-}
-
-?> \ No newline at end of file
+<?php
+/**
+ * Project: Smarty: the PHP compiling template engine
+ * File: SmartyBC.class.php
+ * SVN: $Id: $
+ * 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 2.1 of the License, or (at your option) 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., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+ * For questions, help, comments, discussion, etc., please join the
+ * Smarty mailing list. Send a blank e-mail to
+ * smarty-discussion-subscribe@googlegroups.com
+ *
+ * @link http://www.smarty.net/
+ * @copyright 2008 New Digital Group, Inc.
+ * @author Monte Ohrt <monte at ohrt dot com>
+ * @author Uwe Tews
+ * @author Rodney Rehm
+ * @package Smarty
+ */
+/**
+ * @ignore
+ */
+require_once(dirname(__FILE__) . '/Smarty.class.php');
+
+/**
+ * Smarty Backward Compatability Wrapper Class
+ *
+ * @package Smarty
+ */
+class SmartyBC extends Smarty
+{
+ /**
+ * Smarty 2 BC
+ *
+ * @var string
+ */
+ public $_version = self::SMARTY_VERSION;
+
+ /**
+ * Initialize new SmartyBC object
+ *
+ * @param array $options options to set during initialization, e.g. array( 'forceCompile' => false )
+ */
+ public function __construct(array $options = array())
+ {
+ parent::__construct($options);
+ // register {php} tag
+ $this->registerPlugin('block', 'php', 'smarty_php_tag');
+ }
+
+ /**
+ * wrapper for assign_by_ref
+ *
+ * @param string $tpl_var the template variable name
+ * @param mixed &$value the referenced value to assign
+ */
+ public function assign_by_ref($tpl_var, &$value)
+ {
+ $this->assignByRef($tpl_var, $value);
+ }
+
+ /**
+ * wrapper for append_by_ref
+ *
+ * @param string $tpl_var the template variable name
+ * @param mixed &$value the referenced value to append
+ * @param boolean $merge flag if array elements shall be merged
+ */
+ public function append_by_ref($tpl_var, &$value, $merge = false)
+ {
+ $this->appendByRef($tpl_var, $value, $merge);
+ }
+
+ /**
+ * clear the given assigned template variable.
+ *
+ * @param string $tpl_var the template variable to clear
+ */
+ public function clear_assign($tpl_var)
+ {
+ $this->clearAssign($tpl_var);
+ }
+
+ /**
+ * Registers custom function to be used in templates
+ *
+ * @param string $function the name of the template function
+ * @param string $function_impl the name of the PHP function to register
+ * @param bool $cacheable
+ * @param mixed $cache_attrs
+ */
+ public function register_function($function, $function_impl, $cacheable = true, $cache_attrs = null)
+ {
+ $this->registerPlugin('function', $function, $function_impl, $cacheable, $cache_attrs);
+ }
+
+ /**
+ * Unregisters custom function
+ *
+ * @param string $function name of template function
+ */
+ public function unregister_function($function)
+ {
+ $this->unregisterPlugin('function', $function);
+ }
+
+ /**
+ * Registers object to be used in templates
+ *
+ * @param string $object name of template object
+ * @param object $object_impl the referenced PHP object to register
+ * @param array $allowed list of allowed methods (empty = all)
+ * @param boolean $smarty_args smarty argument format, else traditional
+ * @param array $block_methods list of methods that are block format
+ *
+ * @throws SmartyException
+ * @internal param array $block_functs list of methods that are block format
+ */
+ public function register_object($object, $object_impl, $allowed = array(), $smarty_args = true, $block_methods = array())
+ {
+ settype($allowed, 'array');
+ settype($smarty_args, 'boolean');
+ $this->registerObject($object, $object_impl, $allowed, $smarty_args, $block_methods);
+ }
+
+ /**
+ * Unregisters object
+ *
+ * @param string $object name of template object
+ */
+ public function unregister_object($object)
+ {
+ $this->unregisterObject($object);
+ }
+
+ /**
+ * Registers block function to be used in templates
+ *
+ * @param string $block name of template block
+ * @param string $block_impl PHP function to register
+ * @param bool $cacheable
+ * @param mixed $cache_attrs
+ */
+ public function register_block($block, $block_impl, $cacheable = true, $cache_attrs = null)
+ {
+ $this->registerPlugin('block', $block, $block_impl, $cacheable, $cache_attrs);
+ }
+
+ /**
+ * Unregisters block function
+ *
+ * @param string $block name of template function
+ */
+ public function unregister_block($block)
+ {
+ $this->unregisterPlugin('block', $block);
+ }
+
+ /**
+ * Registers compiler function
+ *
+ * @param string $function name of template function
+ * @param string $function_impl name of PHP function to register
+ * @param bool $cacheable
+ */
+ public function register_compiler_function($function, $function_impl, $cacheable = true)
+ {
+ $this->registerPlugin('compiler', $function, $function_impl, $cacheable);
+ }
+
+ /**
+ * Unregisters compiler function
+ *
+ * @param string $function name of template function
+ */
+ public function unregister_compiler_function($function)
+ {
+ $this->unregisterPlugin('compiler', $function);
+ }
+
+ /**
+ * Registers modifier to be used in templates
+ *
+ * @param string $modifier name of template modifier
+ * @param string $modifier_impl name of PHP function to register
+ */
+ public function register_modifier($modifier, $modifier_impl)
+ {
+ $this->registerPlugin('modifier', $modifier, $modifier_impl);
+ }
+
+ /**
+ * Unregisters modifier
+ *
+ * @param string $modifier name of template modifier
+ */
+ public function unregister_modifier($modifier)
+ {
+ $this->unregisterPlugin('modifier', $modifier);
+ }
+
+ /**
+ * Registers a resource to fetch a template
+ *
+ * @param string $type name of resource
+ * @param array $functions array of functions to handle resource
+ */
+ public function register_resource($type, $functions)
+ {
+ $this->registerResource($type, $functions);
+ }
+
+ /**
+ * Unregisters a resource
+ *
+ * @param string $type name of resource
+ */
+ public function unregister_resource($type)
+ {
+ $this->unregisterResource($type);
+ }
+
+ /**
+ * Registers a prefilter function to apply
+ * to a template before compiling
+ *
+ * @param callable $function
+ */
+ public function register_prefilter($function)
+ {
+ $this->registerFilter('pre', $function);
+ }
+
+ /**
+ * Unregisters a prefilter function
+ *
+ * @param callable $function
+ */
+ public function unregister_prefilter($function)
+ {
+ $this->unregisterFilter('pre', $function);
+ }
+
+ /**
+ * Registers a postfilter function to apply
+ * to a compiled template after compilation
+ *
+ * @param callable $function
+ */
+ public function register_postfilter($function)
+ {
+ $this->registerFilter('post', $function);
+ }
+
+ /**
+ * Unregisters a postfilter function
+ *
+ * @param callable $function
+ */
+ public function unregister_postfilter($function)
+ {
+ $this->unregisterFilter('post', $function);
+ }
+
+ /**
+ * Registers an output filter function to apply
+ * to a template output
+ *
+ * @param callable $function
+ */
+ public function register_outputfilter($function)
+ {
+ $this->registerFilter('output', $function);
+ }
+
+ /**
+ * Unregisters an outputfilter function
+ *
+ * @param callable $function
+ */
+ public function unregister_outputfilter($function)
+ {
+ $this->unregisterFilter('output', $function);
+ }
+
+ /**
+ * load a filter of specified type and name
+ *
+ * @param string $type filter type
+ * @param string $name filter name
+ */
+ public function load_filter($type, $name)
+ {
+ $this->loadFilter($type, $name);
+ }
+
+ /**
+ * clear cached content for the given template and cache id
+ *
+ * @param string $tpl_file name of template file
+ * @param string $cache_id name of cache_id
+ * @param string $compile_id name of compile_id
+ * @param string $exp_time expiration time
+ *
+ * @return boolean
+ */
+ public function clear_cache($tpl_file = null, $cache_id = null, $compile_id = null, $exp_time = null)
+ {
+ return $this->clearCache($tpl_file, $cache_id, $compile_id, $exp_time);
+ }
+
+ /**
+ * clear the entire contents of cache (all templates)
+ *
+ * @param string $exp_time expire time
+ *
+ * @return boolean
+ */
+ public function clear_all_cache($exp_time = null)
+ {
+ return $this->clearCache(null, null, null, $exp_time);
+ }
+
+ /**
+ * test to see if valid cache exists for this template
+ *
+ * @param string $tpl_file name of template file
+ * @param string $cache_id
+ * @param string $compile_id
+ *
+ * @return boolean
+ */
+ public function is_cached($tpl_file, $cache_id = null, $compile_id = null)
+ {
+ return $this->isCached($tpl_file, $cache_id, $compile_id);
+ }
+
+ /**
+ * clear all the assigned template variables.
+ */
+ public function clear_all_assign()
+ {
+ $this->clearAllAssign();
+ }
+
+ /**
+ * clears compiled version of specified template resource,
+ * or all compiled template files if one is not specified.
+ * This function is for advanced use only, not normally needed.
+ *
+ * @param string $tpl_file
+ * @param string $compile_id
+ * @param string $exp_time
+ *
+ * @return boolean results of {@link smarty_core_rm_auto()}
+ */
+ public function clear_compiled_tpl($tpl_file = null, $compile_id = null, $exp_time = null)
+ {
+ return $this->clearCompiledTemplate($tpl_file, $compile_id, $exp_time);
+ }
+
+ /**
+ * Checks whether requested template exists.
+ *
+ * @param string $tpl_file
+ *
+ * @return boolean
+ */
+ public function template_exists($tpl_file)
+ {
+ return $this->templateExists($tpl_file);
+ }
+
+ /**
+ * Returns an array containing template variables
+ *
+ * @param string $name
+ *
+ * @return array
+ */
+ public function get_template_vars($name = null)
+ {
+ return $this->getTemplateVars($name);
+ }
+
+ /**
+ * Returns an array containing config variables
+ *
+ * @param string $name
+ *
+ * @return array
+ */
+ public function get_config_vars($name = null)
+ {
+ return $this->getConfigVars($name);
+ }
+
+ /**
+ * load configuration values
+ *
+ * @param string $file
+ * @param string $section
+ * @param string $scope
+ */
+ public function config_load($file, $section = null, $scope = 'global')
+ {
+ $this->ConfigLoad($file, $section, $scope);
+ }
+
+ /**
+ * return a reference to a registered object
+ *
+ * @param string $name
+ *
+ * @return object
+ */
+ public function get_registered_object($name)
+ {
+ return $this->getRegisteredObject($name);
+ }
+
+ /**
+ * clear configuration values
+ *
+ * @param string $var
+ */
+ public function clear_config($var = null)
+ {
+ $this->clearConfig($var);
+ }
+
+ /**
+ * trigger Smarty error
+ *
+ * @param string $error_msg
+ * @param integer $error_type
+ */
+ public function trigger_error($error_msg, $error_type = E_USER_WARNING)
+ {
+ trigger_error("Smarty error: $error_msg", $error_type);
+ }
+}
+
+/**
+ * Smarty {php}{/php} block function
+ *
+ * @param array $params parameter list
+ * @param string $content contents of the block
+ * @param object $template template object
+ * @param boolean &$repeat repeat flag
+ *
+ * @return string content re-formatted
+ */
+function smarty_php_tag($params, $content, $template, &$repeat)
+{
+ eval($content);
+
+ return '';
+}
diff --git a/library/Smarty/libs/debug.tpl b/library/Smarty/libs/debug.tpl
index 12eef0ffd..61b8876a4 100644
--- a/library/Smarty/libs/debug.tpl
+++ b/library/Smarty/libs/debug.tpl
@@ -1,133 +1,137 @@
{capture name='_smarty_debug' assign=debug_output}
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN" "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">
-<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en">
-<head>
- <title>Smarty Debug Console</title>
-<style type="text/css">
-{literal}
-body, h1, h2, td, th, p {
- font-family: sans-serif;
- font-weight: normal;
- font-size: 0.9em;
- margin: 1px;
- padding: 0;
-}
-
-h1 {
- margin: 0;
- text-align: left;
- padding: 2px;
- background-color: #f0c040;
- color: black;
- font-weight: bold;
- font-size: 1.2em;
- }
-
-h2 {
- background-color: #9B410E;
- color: white;
- text-align: left;
- font-weight: bold;
- padding: 2px;
- border-top: 1px solid black;
-}
-
-body {
- background: black;
-}
-
-p, table, div {
- background: #f0ead8;
-}
-
-p {
- margin: 0;
- font-style: italic;
- text-align: center;
-}
-
-table {
- width: 100%;
-}
-
-th, td {
- font-family: monospace;
- vertical-align: top;
- text-align: left;
- width: 50%;
-}
-
-td {
- color: green;
-}
-
-.odd {
- background-color: #eeeeee;
-}
-
-.even {
- background-color: #fafafa;
-}
-
-.exectime {
- font-size: 0.8em;
- font-style: italic;
-}
-
-#table_assigned_vars th {
- color: blue;
-}
-
-#table_config_vars th {
- color: maroon;
-}
-{/literal}
-</style>
-</head>
-<body>
-
-<h1>Smarty Debug Console - {if isset($template_name)}{$template_name|debug_print_var nofilter}{else}Total Time {$execution_time|string_format:"%.5f"}{/if}</h1>
-
-{if !empty($template_data)}
-<h2>included templates &amp; config files (load time in seconds)</h2>
-
-<div>
-{foreach $template_data as $template}
- <font color=brown>{$template.name}</font>
- <span class="exectime">
- (compile {$template['compile_time']|string_format:"%.5f"}) (render {$template['render_time']|string_format:"%.5f"}) (cache {$template['cache_time']|string_format:"%.5f"})
+ <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN" "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">
+ <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en">
+ <head>
+ <title>Smarty Debug Console</title>
+ <style type="text/css">
+ {literal}
+ body, h1, h2, td, th, p {
+ font-family: sans-serif;
+ font-weight: normal;
+ font-size: 0.9em;
+ margin: 1px;
+ padding: 0;
+ }
+
+ h1 {
+ margin: 0;
+ text-align: left;
+ padding: 2px;
+ background-color: #f0c040;
+ color: black;
+ font-weight: bold;
+ font-size: 1.2em;
+ }
+
+ h2 {
+ background-color: #9B410E;
+ color: white;
+ text-align: left;
+ font-weight: bold;
+ padding: 2px;
+ border-top: 1px solid black;
+ }
+
+ body {
+ background: black;
+ }
+
+ p, table, div {
+ background: #f0ead8;
+ }
+
+ p {
+ margin: 0;
+ font-style: italic;
+ text-align: center;
+ }
+
+ table {
+ width: 100%;
+ }
+
+ th, td {
+ font-family: monospace;
+ vertical-align: top;
+ text-align: left;
+ width: 50%;
+ }
+
+ td {
+ color: green;
+ }
+
+ .odd {
+ background-color: #eeeeee;
+ }
+
+ .even {
+ background-color: #fafafa;
+ }
+
+ .exectime {
+ font-size: 0.8em;
+ font-style: italic;
+ }
+
+ #table_assigned_vars th {
+ color: blue;
+ }
+
+ #table_config_vars th {
+ color: maroon;
+ }
+
+ {/literal}
+ </style>
+ </head>
+ <body>
+
+ <h1>Smarty Debug Console
+ - {if isset($template_name)}{$template_name|debug_print_var nofilter}{else}Total Time {$execution_time|string_format:"%.5f"}{/if}</h1>
+
+ {if !empty($template_data)}
+ <h2>included templates &amp; config files (load time in seconds)</h2>
+ <div>
+ {foreach $template_data as $template}
+ <font color=brown>{$template.name}</font>
+ <span class="exectime">
+ (compile {$template['compile_time']|string_format:"%.5f"}) (render {$template['render_time']|string_format:"%.5f"}) (cache {$template['cache_time']|string_format:"%.5f"}
+ )
</span>
- <br>
-{/foreach}
-</div>
-{/if}
-
-<h2>assigned template variables</h2>
-
-<table id="table_assigned_vars">
- {foreach $assigned_vars as $vars}
- <tr class="{if $vars@iteration % 2 eq 0}odd{else}even{/if}">
- <th>${$vars@key|escape:'html'}</th>
- <td>{$vars|debug_print_var nofilter}</td></tr>
- {/foreach}
-</table>
-
-<h2>assigned config file variables (outer template scope)</h2>
-
-<table id="table_config_vars">
- {foreach $config_vars as $vars}
- <tr class="{if $vars@iteration % 2 eq 0}odd{else}even{/if}">
- <th>{$vars@key|escape:'html'}</th>
- <td>{$vars|debug_print_var nofilter}</td></tr>
- {/foreach}
-
-</table>
-</body>
-</html>
+ <br>
+ {/foreach}
+ </div>
+ {/if}
+
+ <h2>assigned template variables</h2>
+
+ <table id="table_assigned_vars">
+ {foreach $assigned_vars as $vars}
+ <tr class="{if $vars@iteration % 2 eq 0}odd{else}even{/if}">
+ <th>${$vars@key|escape:'html'}</th>
+ <td>{$vars|debug_print_var nofilter}</td>
+ </tr>
+ {/foreach}
+ </table>
+
+ <h2>assigned config file variables (outer template scope)</h2>
+
+ <table id="table_config_vars">
+ {foreach $config_vars as $vars}
+ <tr class="{if $vars@iteration % 2 eq 0}odd{else}even{/if}">
+ <th>{$vars@key|escape:'html'}</th>
+ <td>{$vars|debug_print_var nofilter}</td>
+ </tr>
+ {/foreach}
+
+ </table>
+ </body>
+ </html>
{/capture}
<script type="text/javascript">
-{$id = $template_name|default:''|md5}
- _smarty_console = window.open("","console{$id}","width=680,height=600,resizable,scrollbars=yes");
+ {$id = $template_name|default:''|md5}
+ _smarty_console = window.open("", "console{$id}", "width=680,height=600,resizable,scrollbars=yes");
_smarty_console.document.write("{$debug_output|escape:'javascript' nofilter}");
_smarty_console.document.close();
</script>
diff --git a/library/Smarty/libs/plugins/block.textformat.php b/library/Smarty/libs/plugins/block.textformat.php
index b22b104a5..abf544939 100644
--- a/library/Smarty/libs/plugins/block.textformat.php
+++ b/library/Smarty/libs/plugins/block.textformat.php
@@ -2,13 +2,12 @@
/**
* Smarty plugin to format text blocks
*
- * @package Smarty
+ * @package Smarty
* @subpackage PluginsBlock
*/
/**
* Smarty {textformat}{/textformat} block plugin
- *
* Type: block function<br>
* Name: textformat<br>
* Purpose: format text a certain way with preset styles
@@ -23,12 +22,14 @@
* - wrap_boundary - boolean (true)
* </pre>
*
- * @link http://www.smarty.net/manual/en/language.function.textformat.php {textformat}
- * (Smarty online manual)
+ * @link http://www.smarty.net/manual/en/language.function.textformat.php {textformat}
+ * (Smarty online manual)
+ *
* @param array $params parameters
* @param string $content contents of the block
* @param Smarty_Internal_Template $template template object
* @param boolean &$repeat repeat flag
+ *
* @return string content re-formatted
* @author Monte Ohrt <monte at ohrt dot com>
*/
@@ -53,17 +54,17 @@ function smarty_block_textformat($params, $content, $template, &$repeat)
case 'indent_char':
case 'wrap_char':
case 'assign':
- $$_key = (string)$_val;
+ $$_key = (string) $_val;
break;
case 'indent':
case 'indent_first':
case 'wrap':
- $$_key = (int)$_val;
+ $$_key = (int) $_val;
break;
case 'wrap_cut':
- $$_key = (bool)$_val;
+ $$_key = (bool) $_val;
break;
default:
@@ -76,8 +77,6 @@ function smarty_block_textformat($params, $content, $template, &$repeat)
}
// split into paragraphs
$_paragraphs = preg_split('![\r\n]{2}!', $content);
- $_output = '';
-
foreach ($_paragraphs as &$_paragraph) {
if (!$_paragraph) {
@@ -102,12 +101,10 @@ function smarty_block_textformat($params, $content, $template, &$repeat)
}
}
$_output = implode($wrap_char . $wrap_char, $_paragraphs);
-
+
if ($assign) {
$template->assign($assign, $_output);
} else {
return $_output;
}
}
-
-?> \ No newline at end of file
diff --git a/library/Smarty/libs/plugins/function.counter.php b/library/Smarty/libs/plugins/function.counter.php
index 3906badf0..4da85a14e 100644
--- a/library/Smarty/libs/plugins/function.counter.php
+++ b/library/Smarty/libs/plugins/function.counter.php
@@ -1,22 +1,24 @@
<?php
/**
* Smarty plugin
- * @package Smarty
+ *
+ * @package Smarty
* @subpackage PluginsFunction
*/
/**
* Smarty {counter} function plugin
- *
* Type: function<br>
* Name: counter<br>
* Purpose: print out a counter value
*
* @author Monte Ohrt <monte at ohrt dot com>
- * @link http://www.smarty.net/manual/en/language.function.counter.php {counter}
- * (Smarty online manual)
+ * @link http://www.smarty.net/manual/en/language.function.counter.php {counter}
+ * (Smarty online manual)
+ *
* @param array $params parameters
* @param Smarty_Internal_Template $template template object
+ *
* @return string|null
*/
function smarty_function_counter($params, $template)
@@ -26,16 +28,16 @@ function smarty_function_counter($params, $template)
$name = (isset($params['name'])) ? $params['name'] : 'default';
if (!isset($counters[$name])) {
$counters[$name] = array(
- 'start'=>1,
- 'skip'=>1,
- 'direction'=>'up',
- 'count'=>1
- );
+ 'start' => 1,
+ 'skip' => 1,
+ 'direction' => 'up',
+ 'count' => 1
+ );
}
$counter =& $counters[$name];
if (isset($params['start'])) {
- $counter['start'] = $counter['count'] = (int)$params['start'];
+ $counter['start'] = $counter['count'] = (int) $params['start'];
}
if (!empty($params['assign'])) {
@@ -45,9 +47,9 @@ function smarty_function_counter($params, $template)
if (isset($counter['assign'])) {
$template->assign($counter['assign'], $counter['count']);
}
-
+
if (isset($params['print'])) {
- $print = (bool)$params['print'];
+ $print = (bool) $params['print'];
} else {
$print = empty($counter['assign']);
}
@@ -61,18 +63,16 @@ function smarty_function_counter($params, $template)
if (isset($params['skip'])) {
$counter['skip'] = $params['skip'];
}
-
+
if (isset($params['direction'])) {
$counter['direction'] = $params['direction'];
}
- if ($counter['direction'] == "down")
+ if ($counter['direction'] == "down") {
$counter['count'] -= $counter['skip'];
- else
+ } else {
$counter['count'] += $counter['skip'];
-
+ }
+
return $retval;
-
}
-
-?> \ No newline at end of file
diff --git a/library/Smarty/libs/plugins/function.cycle.php b/library/Smarty/libs/plugins/function.cycle.php
index 1778ffb53..8dc5cd9d5 100644
--- a/library/Smarty/libs/plugins/function.cycle.php
+++ b/library/Smarty/libs/plugins/function.cycle.php
@@ -2,13 +2,12 @@
/**
* Smarty plugin
*
- * @package Smarty
+ * @package Smarty
* @subpackage PluginsFunction
*/
/**
* Smarty {cycle} function plugin
- *
* Type: function<br>
* Name: cycle<br>
* Date: May 3, 2002<br>
@@ -31,15 +30,17 @@
* {cycle name=row}
* </pre>
*
- * @link http://www.smarty.net/manual/en/language.function.cycle.php {cycle}
- * (Smarty online manual)
- * @author Monte Ohrt <monte at ohrt dot com>
- * @author credit to Mark Priatel <mpriatel@rogers.com>
- * @author credit to Gerard <gerard@interfold.com>
- * @author credit to Jason Sweat <jsweat_php@yahoo.com>
+ * @link http://www.smarty.net/manual/en/language.function.cycle.php {cycle}
+ * (Smarty online manual)
+ * @author Monte Ohrt <monte at ohrt dot com>
+ * @author credit to Mark Priatel <mpriatel@rogers.com>
+ * @author credit to Gerard <gerard@interfold.com>
+ * @author credit to Jason Sweat <jsweat_php@yahoo.com>
* @version 1.3
+ *
* @param array $params parameters
* @param Smarty_Internal_Template $template template object
+ *
* @return string|null
*/
@@ -48,18 +49,20 @@ function smarty_function_cycle($params, $template)
static $cycle_vars;
$name = (empty($params['name'])) ? 'default' : $params['name'];
- $print = (isset($params['print'])) ? (bool)$params['print'] : true;
- $advance = (isset($params['advance'])) ? (bool)$params['advance'] : true;
- $reset = (isset($params['reset'])) ? (bool)$params['reset'] : false;
+ $print = (isset($params['print'])) ? (bool) $params['print'] : true;
+ $advance = (isset($params['advance'])) ? (bool) $params['advance'] : true;
+ $reset = (isset($params['reset'])) ? (bool) $params['reset'] : false;
if (!isset($params['values'])) {
- if(!isset($cycle_vars[$name]['values'])) {
+ if (!isset($cycle_vars[$name]['values'])) {
trigger_error("cycle: missing 'values' parameter");
+
return;
}
} else {
- if(isset($cycle_vars[$name]['values'])
- && $cycle_vars[$name]['values'] != $params['values'] ) {
+ if (isset($cycle_vars[$name]['values'])
+ && $cycle_vars[$name]['values'] != $params['values']
+ ) {
$cycle_vars[$name]['index'] = 0;
}
$cycle_vars[$name]['values'] = $params['values'];
@@ -71,13 +74,13 @@ function smarty_function_cycle($params, $template)
$cycle_vars[$name]['delimiter'] = ',';
}
- if(is_array($cycle_vars[$name]['values'])) {
+ if (is_array($cycle_vars[$name]['values'])) {
$cycle_array = $cycle_vars[$name]['values'];
} else {
- $cycle_array = explode($cycle_vars[$name]['delimiter'],$cycle_vars[$name]['values']);
+ $cycle_array = explode($cycle_vars[$name]['delimiter'], $cycle_vars[$name]['values']);
}
- if(!isset($cycle_vars[$name]['index']) || $reset ) {
+ if (!isset($cycle_vars[$name]['index']) || $reset) {
$cycle_vars[$name]['index'] = 0;
}
@@ -86,21 +89,19 @@ function smarty_function_cycle($params, $template)
$template->assign($params['assign'], $cycle_array[$cycle_vars[$name]['index']]);
}
- if($print) {
+ if ($print) {
$retval = $cycle_array[$cycle_vars[$name]['index']];
} else {
$retval = null;
}
- if($advance) {
- if ( $cycle_vars[$name]['index'] >= count($cycle_array) -1 ) {
+ if ($advance) {
+ if ($cycle_vars[$name]['index'] >= count($cycle_array) - 1) {
$cycle_vars[$name]['index'] = 0;
} else {
- $cycle_vars[$name]['index']++;
+ $cycle_vars[$name]['index'] ++;
}
}
return $retval;
}
-
-?> \ No newline at end of file
diff --git a/library/Smarty/libs/plugins/function.fetch.php b/library/Smarty/libs/plugins/function.fetch.php
index eca1182d5..3506d4a8d 100644
--- a/library/Smarty/libs/plugins/function.fetch.php
+++ b/library/Smarty/libs/plugins/function.fetch.php
@@ -2,50 +2,53 @@
/**
* Smarty plugin
*
- * @package Smarty
+ * @package Smarty
* @subpackage PluginsFunction
*/
/**
* Smarty {fetch} plugin
- *
* Type: function<br>
* Name: fetch<br>
* Purpose: fetch file, web or ftp data and display results
*
- * @link http://www.smarty.net/manual/en/language.function.fetch.php {fetch}
- * (Smarty online manual)
+ * @link http://www.smarty.net/manual/en/language.function.fetch.php {fetch}
+ * (Smarty online manual)
* @author Monte Ohrt <monte at ohrt dot com>
+ *
* @param array $params parameters
* @param Smarty_Internal_Template $template template object
+ *
+ * @throws SmartyException
* @return string|null if the assign parameter is passed, Smarty assigns the result to a template variable
*/
function smarty_function_fetch($params, $template)
{
if (empty($params['file'])) {
- trigger_error("[plugin] fetch parameter 'file' cannot be empty",E_USER_NOTICE);
+ trigger_error("[plugin] fetch parameter 'file' cannot be empty", E_USER_NOTICE);
+
return;
}
-
+
// strip file protocol
if (stripos($params['file'], 'file://') === 0) {
$params['file'] = substr($params['file'], 7);
}
-
+
$protocol = strpos($params['file'], '://');
if ($protocol !== false) {
$protocol = strtolower(substr($params['file'], 0, $protocol));
}
-
+
if (isset($template->smarty->security_policy)) {
if ($protocol) {
// remote resource (or php stream, …)
- if(!$template->smarty->security_policy->isTrustedUri($params['file'])) {
+ if (!$template->smarty->security_policy->isTrustedUri($params['file'])) {
return;
}
} else {
// local file
- if(!$template->smarty->security_policy->isTrustedResourceDir($params['file'])) {
+ if (!$template->smarty->security_policy->isTrustedResourceDir($params['file'])) {
return;
}
}
@@ -54,53 +57,54 @@ function smarty_function_fetch($params, $template)
$content = '';
if ($protocol == 'http') {
// http fetch
- if($uri_parts = parse_url($params['file'])) {
+ if ($uri_parts = parse_url($params['file'])) {
// set defaults
$host = $server_name = $uri_parts['host'];
$timeout = 30;
$accept = "image/gif, image/x-xbitmap, image/jpeg, image/pjpeg, */*";
- $agent = "Smarty Template Engine ". Smarty::SMARTY_VERSION;
+ $agent = "Smarty Template Engine " . Smarty::SMARTY_VERSION;
$referer = "";
$uri = !empty($uri_parts['path']) ? $uri_parts['path'] : '/';
$uri .= !empty($uri_parts['query']) ? '?' . $uri_parts['query'] : '';
$_is_proxy = false;
- if(empty($uri_parts['port'])) {
+ if (empty($uri_parts['port'])) {
$port = 80;
} else {
$port = $uri_parts['port'];
}
- if(!empty($uri_parts['user'])) {
+ if (!empty($uri_parts['user'])) {
$user = $uri_parts['user'];
}
- if(!empty($uri_parts['pass'])) {
+ if (!empty($uri_parts['pass'])) {
$pass = $uri_parts['pass'];
}
// loop through parameters, setup headers
- foreach($params as $param_key => $param_value) {
- switch($param_key) {
+ foreach ($params as $param_key => $param_value) {
+ switch ($param_key) {
case "file":
case "assign":
case "assign_headers":
break;
case "user":
- if(!empty($param_value)) {
+ if (!empty($param_value)) {
$user = $param_value;
}
break;
case "pass":
- if(!empty($param_value)) {
+ if (!empty($param_value)) {
$pass = $param_value;
}
break;
case "accept":
- if(!empty($param_value)) {
+ if (!empty($param_value)) {
$accept = $param_value;
}
break;
case "header":
- if(!empty($param_value)) {
- if(!preg_match('![\w\d-]+: .+!',$param_value)) {
- trigger_error("[plugin] invalid header format '".$param_value."'",E_USER_NOTICE);
+ if (!empty($param_value)) {
+ if (!preg_match('![\w\d-]+: .+!', $param_value)) {
+ trigger_error("[plugin] invalid header format '" . $param_value . "'", E_USER_NOTICE);
+
return;
} else {
$extra_headers[] = $param_value;
@@ -108,99 +112,104 @@ function smarty_function_fetch($params, $template)
}
break;
case "proxy_host":
- if(!empty($param_value)) {
+ if (!empty($param_value)) {
$proxy_host = $param_value;
}
break;
case "proxy_port":
- if(!preg_match('!\D!', $param_value)) {
+ if (!preg_match('!\D!', $param_value)) {
$proxy_port = (int) $param_value;
} else {
- trigger_error("[plugin] invalid value for attribute '".$param_key."'",E_USER_NOTICE);
+ trigger_error("[plugin] invalid value for attribute '" . $param_key . "'", E_USER_NOTICE);
+
return;
}
break;
case "agent":
- if(!empty($param_value)) {
+ if (!empty($param_value)) {
$agent = $param_value;
}
break;
case "referer":
- if(!empty($param_value)) {
+ if (!empty($param_value)) {
$referer = $param_value;
}
break;
case "timeout":
- if(!preg_match('!\D!', $param_value)) {
+ if (!preg_match('!\D!', $param_value)) {
$timeout = (int) $param_value;
} else {
- trigger_error("[plugin] invalid value for attribute '".$param_key."'",E_USER_NOTICE);
+ trigger_error("[plugin] invalid value for attribute '" . $param_key . "'", E_USER_NOTICE);
+
return;
}
break;
default:
- trigger_error("[plugin] unrecognized attribute '".$param_key."'",E_USER_NOTICE);
+ trigger_error("[plugin] unrecognized attribute '" . $param_key . "'", E_USER_NOTICE);
+
return;
}
}
- if(!empty($proxy_host) && !empty($proxy_port)) {
+ if (!empty($proxy_host) && !empty($proxy_port)) {
$_is_proxy = true;
- $fp = fsockopen($proxy_host,$proxy_port,$errno,$errstr,$timeout);
+ $fp = fsockopen($proxy_host, $proxy_port, $errno, $errstr, $timeout);
} else {
- $fp = fsockopen($server_name,$port,$errno,$errstr,$timeout);
+ $fp = fsockopen($server_name, $port, $errno, $errstr, $timeout);
}
- if(!$fp) {
- trigger_error("[plugin] unable to fetch: $errstr ($errno)",E_USER_NOTICE);
+ if (!$fp) {
+ trigger_error("[plugin] unable to fetch: $errstr ($errno)", E_USER_NOTICE);
+
return;
} else {
- if($_is_proxy) {
+ if ($_is_proxy) {
fputs($fp, 'GET ' . $params['file'] . " HTTP/1.0\r\n");
} else {
fputs($fp, "GET $uri HTTP/1.0\r\n");
}
- if(!empty($host)) {
+ if (!empty($host)) {
fputs($fp, "Host: $host\r\n");
}
- if(!empty($accept)) {
+ if (!empty($accept)) {
fputs($fp, "Accept: $accept\r\n");
}
- if(!empty($agent)) {
+ if (!empty($agent)) {
fputs($fp, "User-Agent: $agent\r\n");
}
- if(!empty($referer)) {
+ if (!empty($referer)) {
fputs($fp, "Referer: $referer\r\n");
}
- if(isset($extra_headers) && is_array($extra_headers)) {
- foreach($extra_headers as $curr_header) {
- fputs($fp, $curr_header."\r\n");
+ if (isset($extra_headers) && is_array($extra_headers)) {
+ foreach ($extra_headers as $curr_header) {
+ fputs($fp, $curr_header . "\r\n");
}
}
- if(!empty($user) && !empty($pass)) {
- fputs($fp, "Authorization: BASIC ".base64_encode("$user:$pass")."\r\n");
+ if (!empty($user) && !empty($pass)) {
+ fputs($fp, "Authorization: BASIC " . base64_encode("$user:$pass") . "\r\n");
}
fputs($fp, "\r\n");
- while(!feof($fp)) {
- $content .= fgets($fp,4096);
+ while (!feof($fp)) {
+ $content .= fgets($fp, 4096);
}
fclose($fp);
- $csplit = preg_split("!\r\n\r\n!",$content,2);
+ $csplit = preg_split("!\r\n\r\n!", $content, 2);
$content = $csplit[1];
- if(!empty($params['assign_headers'])) {
- $template->assign($params['assign_headers'],preg_split("!\r\n!",$csplit[0]));
+ if (!empty($params['assign_headers'])) {
+ $template->assign($params['assign_headers'], preg_split("!\r\n!", $csplit[0]));
}
}
} else {
- trigger_error("[plugin fetch] unable to parse URL, check syntax",E_USER_NOTICE);
+ trigger_error("[plugin fetch] unable to parse URL, check syntax", E_USER_NOTICE);
+
return;
}
} else {
$content = @file_get_contents($params['file']);
if ($content === false) {
- throw new SmartyException("{fetch} cannot read resource '" . $params['file'] ."'");
+ throw new SmartyException("{fetch} cannot read resource '" . $params['file'] . "'");
}
}
@@ -210,5 +219,3 @@ function smarty_function_fetch($params, $template)
return $content;
}
}
-
-?> \ No newline at end of file
diff --git a/library/Smarty/libs/plugins/function.html_checkboxes.php b/library/Smarty/libs/plugins/function.html_checkboxes.php
index fb9584bbd..d78680368 100644
--- a/library/Smarty/libs/plugins/function.html_checkboxes.php
+++ b/library/Smarty/libs/plugins/function.html_checkboxes.php
@@ -2,13 +2,12 @@
/**
* Smarty plugin
*
- * @package Smarty
+ * @package Smarty
* @subpackage PluginsFunction
*/
/**
* Smarty {html_checkboxes} function plugin
- *
* File: function.html_checkboxes.php<br>
* Type: function<br>
* Name: html_checkboxes<br>
@@ -32,15 +31,17 @@
* - escape (optional) - escape the content (not value), defaults to true
* </pre>
*
- * @link http://www.smarty.net/manual/en/language.function.html.checkboxes.php {html_checkboxes}
- * (Smarty online manual)
+ * @link http://www.smarty.net/manual/en/language.function.html.checkboxes.php {html_checkboxes}
+ * (Smarty online manual)
* @author Christopher Kvarme <christopher.kvarme@flashjab.com>
- * @author credits to Monte Ohrt <monte at ohrt dot com>
+ * @author credits to Monte Ohrt <monte at ohrt dot com>
* @version 1.0
- * @param array $params parameters
+ *
+ * @param array $params parameters
* @param object $template template object
+ *
* @return string
- * @uses smarty_function_escape_special_chars()
+ * @uses smarty_function_escape_special_chars()
*/
function smarty_function_html_checkboxes($params, $template)
{
@@ -58,8 +59,8 @@ function smarty_function_html_checkboxes($params, $template)
$extra = '';
- foreach($params as $_key => $_val) {
- switch($_key) {
+ foreach ($params as $_key => $_val) {
+ switch ($_key) {
case 'name':
case 'separator':
$$_key = (string) $_val;
@@ -89,7 +90,7 @@ function smarty_function_html_checkboxes($params, $template)
if (method_exists($_sel, "__toString")) {
$_sel = smarty_function_escape_special_chars((string) $_sel->__toString());
} else {
- trigger_error("html_checkboxes: selected attribute contains an object of class '". get_class($_sel) ."' without __toString() method", E_USER_NOTICE);
+ trigger_error("html_checkboxes: selected attribute contains an object of class '" . get_class($_sel) . "' without __toString() method", E_USER_NOTICE);
continue;
}
} else {
@@ -101,7 +102,7 @@ function smarty_function_html_checkboxes($params, $template)
if (method_exists($_val, "__toString")) {
$selected = smarty_function_escape_special_chars((string) $_val->__toString());
} else {
- trigger_error("html_checkboxes: selected attribute is an object of class '". get_class($_val) ."' without __toString() method", E_USER_NOTICE);
+ trigger_error("html_checkboxes: selected attribute is an object of class '" . get_class($_val) . "' without __toString() method", E_USER_NOTICE);
}
} else {
$selected = smarty_function_escape_special_chars((string) $_val);
@@ -116,9 +117,27 @@ function smarty_function_html_checkboxes($params, $template)
case 'assign':
break;
+ case 'strict':
+ break;
+
+ case 'disabled':
+ case 'readonly':
+ if (!empty($params['strict'])) {
+ if (!is_scalar($_val)) {
+ trigger_error("html_options: $_key attribute must be a scalar, only boolean true or string '$_key' will actually add the attribute", E_USER_NOTICE);
+ }
+
+ if ($_val === true || $_val === $_key) {
+ $extra .= ' ' . $_key . '="' . smarty_function_escape_special_chars($_key) . '"';
+ }
+
+ break;
+ }
+ // omit break; to fall through!
+
default:
- if(!is_array($_val)) {
- $extra .= ' '.$_key.'="'.smarty_function_escape_special_chars($_val).'"';
+ if (!is_array($_val)) {
+ $extra .= ' ' . $_key . '="' . smarty_function_escape_special_chars($_val) . '"';
} else {
trigger_error("html_checkboxes: extra attribute '$_key' cannot be an array", E_USER_NOTICE);
}
@@ -126,76 +145,79 @@ function smarty_function_html_checkboxes($params, $template)
}
}
- if (!isset($options) && !isset($values))
- return ''; /* raise error here? */
+ if (!isset($options) && !isset($values)) {
+ return '';
+ } /* raise error here? */
$_html_result = array();
if (isset($options)) {
- foreach ($options as $_key=>$_val) {
+ foreach ($options as $_key => $_val) {
$_html_result[] = smarty_function_html_checkboxes_output($name, $_key, $_val, $selected, $extra, $separator, $labels, $label_ids, $escape);
}
} else {
- foreach ($values as $_i=>$_key) {
+ foreach ($values as $_i => $_key) {
$_val = isset($output[$_i]) ? $output[$_i] : '';
$_html_result[] = smarty_function_html_checkboxes_output($name, $_key, $_val, $selected, $extra, $separator, $labels, $label_ids, $escape);
}
}
- if(!empty($params['assign'])) {
+ if (!empty($params['assign'])) {
$template->assign($params['assign'], $_html_result);
} else {
return implode("\n", $_html_result);
}
-
}
-function smarty_function_html_checkboxes_output($name, $value, $output, $selected, $extra, $separator, $labels, $label_ids, $escape=true) {
+function smarty_function_html_checkboxes_output($name, $value, $output, $selected, $extra, $separator, $labels, $label_ids, $escape = true)
+{
$_output = '';
-
+
if (is_object($value)) {
if (method_exists($value, "__toString")) {
$value = (string) $value->__toString();
} else {
- trigger_error("html_options: value is an object of class '". get_class($value) ."' without __toString() method", E_USER_NOTICE);
+ trigger_error("html_options: value is an object of class '" . get_class($value) . "' without __toString() method", E_USER_NOTICE);
+
return '';
}
} else {
$value = (string) $value;
}
-
+
if (is_object($output)) {
if (method_exists($output, "__toString")) {
$output = (string) $output->__toString();
} else {
- trigger_error("html_options: output is an object of class '". get_class($output) ."' without __toString() method", E_USER_NOTICE);
+ trigger_error("html_options: output is an object of class '" . get_class($output) . "' without __toString() method", E_USER_NOTICE);
+
return '';
}
} else {
$output = (string) $output;
}
-
+
if ($labels) {
if ($label_ids) {
$_id = smarty_function_escape_special_chars(preg_replace('![^\w\-\.]!' . Smarty::$_UTF8_MODIFIER, '_', $name . '_' . $value));
$_output .= '<label for="' . $_id . '">';
} else {
$_output .= '<label>';
- }
+ }
}
-
+
$name = smarty_function_escape_special_chars($name);
$value = smarty_function_escape_special_chars($value);
if ($escape) {
$output = smarty_function_escape_special_chars($output);
}
-
+
$_output .= '<input type="checkbox" name="' . $name . '[]" value="' . $value . '"';
-
+
if ($labels && $label_ids) {
$_output .= ' id="' . $_id . '"';
}
-
+
if (is_array($selected)) {
if (isset($selected[$value])) {
$_output .= ' checked="checked"';
@@ -203,14 +225,13 @@ function smarty_function_html_checkboxes_output($name, $value, $output, $selecte
} elseif ($value === $selected) {
$_output .= ' checked="checked"';
}
-
+
$_output .= $extra . ' />' . $output;
if ($labels) {
$_output .= '</label>';
}
-
- $_output .= $separator;
+
+ $_output .= $separator;
+
return $_output;
}
-
-?> \ No newline at end of file
diff --git a/library/Smarty/libs/plugins/function.html_image.php b/library/Smarty/libs/plugins/function.html_image.php
index 6521966bb..5037e8bd1 100644
--- a/library/Smarty/libs/plugins/function.html_image.php
+++ b/library/Smarty/libs/plugins/function.html_image.php
@@ -1,14 +1,13 @@
<?php
/**
* Smarty plugin
- *
- * @package Smarty
+ *
+ * @package Smarty
* @subpackage PluginsFunction
*/
/**
* Smarty {html_image} function plugin
- *
* Type: function<br>
* Name: html_image<br>
* Date: Feb 24, 2003<br>
@@ -23,21 +22,24 @@
* - basedir - (optional) - base directory for absolute paths, default is environment variable DOCUMENT_ROOT
* - path_prefix - prefix for path output (optional, default empty)
* </pre>
- *
- * @link http://www.smarty.net/manual/en/language.function.html.image.php {html_image}
- * (Smarty online manual)
- * @author Monte Ohrt <monte at ohrt dot com>
- * @author credits to Duda <duda@big.hu>
+ *
+ * @link http://www.smarty.net/manual/en/language.function.html.image.php {html_image}
+ * (Smarty online manual)
+ * @author Monte Ohrt <monte at ohrt dot com>
+ * @author credits to Duda <duda@big.hu>
* @version 1.0
+ *
* @param array $params parameters
* @param Smarty_Internal_Template $template template object
- * @return string
- * @uses smarty_function_escape_special_chars()
+ *
+ * @throws SmartyException
+ * @return string
+ * @uses smarty_function_escape_special_chars()
*/
function smarty_function_html_image($params, $template)
{
require_once(SMARTY_PLUGINS_DIR . 'shared.escape_special_chars.php');
-
+
$alt = '';
$file = '';
$height = '';
@@ -47,7 +49,7 @@ function smarty_function_html_image($params, $template)
$suffix = '';
$path_prefix = '';
$basedir = isset($_SERVER['DOCUMENT_ROOT']) ? $_SERVER['DOCUMENT_ROOT'] : '';
- foreach($params as $_key => $_val) {
+ foreach ($params as $_key => $_val) {
switch ($_key) {
case 'file':
case 'height':
@@ -63,7 +65,7 @@ function smarty_function_html_image($params, $template)
$$_key = smarty_function_escape_special_chars($_val);
} else {
throw new SmartyException ("html_image: extra attribute '$_key' cannot be an array", E_USER_NOTICE);
- }
+ }
break;
case 'link':
@@ -77,41 +79,42 @@ function smarty_function_html_image($params, $template)
$extra .= ' ' . $_key . '="' . smarty_function_escape_special_chars($_val) . '"';
} else {
throw new SmartyException ("html_image: extra attribute '$_key' cannot be an array", E_USER_NOTICE);
- }
+ }
break;
- }
- }
+ }
+ }
if (empty($file)) {
trigger_error("html_image: missing 'file' parameter", E_USER_NOTICE);
+
return;
- }
+ }
if ($file[0] == '/') {
$_image_path = $basedir . $file;
} else {
$_image_path = $file;
}
-
+
// strip file protocol
if (stripos($params['file'], 'file://') === 0) {
$params['file'] = substr($params['file'], 7);
}
-
+
$protocol = strpos($params['file'], '://');
if ($protocol !== false) {
$protocol = strtolower(substr($params['file'], 0, $protocol));
}
-
+
if (isset($template->smarty->security_policy)) {
if ($protocol) {
// remote resource (or php stream, …)
- if(!$template->smarty->security_policy->isTrustedUri($params['file'])) {
+ if (!$template->smarty->security_policy->isTrustedUri($params['file'])) {
return;
}
} else {
// local file
- if(!$template->smarty->security_policy->isTrustedResourceDir($params['file'])) {
+ if (!$template->smarty->security_policy->isTrustedResourceDir($_image_path)) {
return;
}
}
@@ -122,23 +125,26 @@ function smarty_function_html_image($params, $template)
if (!$_image_data = @getimagesize($_image_path)) {
if (!file_exists($_image_path)) {
trigger_error("html_image: unable to find '$_image_path'", E_USER_NOTICE);
+
return;
- } else if (!is_readable($_image_path)) {
+ } elseif (!is_readable($_image_path)) {
trigger_error("html_image: unable to read '$_image_path'", E_USER_NOTICE);
+
return;
} else {
trigger_error("html_image: '$_image_path' is not a valid image file", E_USER_NOTICE);
+
return;
- }
+ }
}
if (!isset($params['width'])) {
$width = $_image_data[0];
- }
+ }
if (!isset($params['height'])) {
$height = $_image_data[1];
- }
- }
+ }
+ }
if (isset($params['dpi'])) {
if (strstr($_SERVER['HTTP_USER_AGENT'], 'Mac')) {
@@ -147,13 +153,11 @@ function smarty_function_html_image($params, $template)
$dpi_default = 72;
} else {
$dpi_default = 96;
- }
+ }
$_resize = $dpi_default / $params['dpi'];
$width = round($width * $_resize);
$height = round($height * $_resize);
- }
+ }
return $prefix . '<img src="' . $path_prefix . $file . '" alt="' . $alt . '" width="' . $width . '" height="' . $height . '"' . $extra . ' />' . $suffix;
-}
-
-?> \ No newline at end of file
+}
diff --git a/library/Smarty/libs/plugins/function.html_options.php b/library/Smarty/libs/plugins/function.html_options.php
index 46330e896..7ec3e065c 100644
--- a/library/Smarty/libs/plugins/function.html_options.php
+++ b/library/Smarty/libs/plugins/function.html_options.php
@@ -1,14 +1,13 @@
<?php
/**
* Smarty plugin
- *
- * @package Smarty
+ *
+ * @package Smarty
* @subpackage PluginsFunction
*/
/**
* Smarty {html_options} function plugin
- *
* Type: function<br>
* Name: html_options<br>
* Purpose: Prints the list of <option> tags generated from
@@ -23,17 +22,18 @@
* - id (optional) - string default not set
* - class (optional) - string default not set
* </pre>
- *
- * @link http://www.smarty.net/manual/en/language.function.html.options.php {html_image}
- * (Smarty online manual)
- * @author Monte Ohrt <monte at ohrt dot com>
- * @author Ralf Strehle (minor optimization) <ralf dot strehle at yahoo dot de>
- * @param array $params parameters
- * @param Smarty_Internal_Template $template template object
- * @return string
- * @uses smarty_function_escape_special_chars()
+ *
+ * @link http://www.smarty.net/manual/en/language.function.html.options.php {html_image}
+ * (Smarty online manual)
+ * @author Monte Ohrt <monte at ohrt dot com>
+ * @author Ralf Strehle (minor optimization) <ralf dot strehle at yahoo dot de>
+ *
+ * @param array $params parameters
+ *
+ * @return string
+ * @uses smarty_function_escape_special_chars()
*/
-function smarty_function_html_options($params, $template)
+function smarty_function_html_options($params)
{
require_once(SMARTY_PLUGINS_DIR . 'shared.escape_special_chars.php');
@@ -72,7 +72,7 @@ function smarty_function_html_options($params, $template)
if (method_exists($_sel, "__toString")) {
$_sel = smarty_function_escape_special_chars((string) $_sel->__toString());
} else {
- trigger_error("html_options: selected attribute contains an object of class '". get_class($_sel) ."' without __toString() method", E_USER_NOTICE);
+ trigger_error("html_options: selected attribute contains an object of class '" . get_class($_sel) . "' without __toString() method", E_USER_NOTICE);
continue;
}
} else {
@@ -84,25 +84,44 @@ function smarty_function_html_options($params, $template)
if (method_exists($_val, "__toString")) {
$selected = smarty_function_escape_special_chars((string) $_val->__toString());
} else {
- trigger_error("html_options: selected attribute is an object of class '". get_class($_val) ."' without __toString() method", E_USER_NOTICE);
+ trigger_error("html_options: selected attribute is an object of class '" . get_class($_val) . "' without __toString() method", E_USER_NOTICE);
}
} else {
$selected = smarty_function_escape_special_chars((string) $_val);
}
break;
+ case 'strict':
+ break;
+
+ case 'disabled':
+ case 'readonly':
+ if (!empty($params['strict'])) {
+ if (!is_scalar($_val)) {
+ trigger_error("html_options: $_key attribute must be a scalar, only boolean true or string '$_key' will actually add the attribute", E_USER_NOTICE);
+ }
+
+ if ($_val === true || $_val === $_key) {
+ $extra .= ' ' . $_key . '="' . smarty_function_escape_special_chars($_key) . '"';
+ }
+
+ break;
+ }
+ // omit break; to fall through!
+
default:
if (!is_array($_val)) {
$extra .= ' ' . $_key . '="' . smarty_function_escape_special_chars($_val) . '"';
} else {
trigger_error("html_options: extra attribute '$_key' cannot be an array", E_USER_NOTICE);
- }
+ }
break;
- }
+ }
}
if (!isset($options) && !isset($values)) {
/* raise error here? */
+
return '';
}
@@ -117,14 +136,14 @@ function smarty_function_html_options($params, $template)
foreach ($values as $_i => $_key) {
$_val = isset($output[$_i]) ? $output[$_i] : '';
$_html_result .= smarty_function_html_options_optoutput($_key, $_val, $selected, $id, $class, $_idx);
- }
+ }
}
if (!empty($name)) {
- $_html_class = !empty($class) ? ' class="'.$class.'"' : '';
- $_html_id = !empty($id) ? ' id="'.$id.'"' : '';
+ $_html_class = !empty($class) ? ' class="' . $class . '"' : '';
+ $_html_id = !empty($id) ? ' id="' . $id . '"' : '';
$_html_result = '<select name="' . $name . '"' . $_html_class . $_html_id . $extra . '>' . "\n" . $_html_result . '</select>' . "\n";
- }
+ }
return $_html_result;
}
@@ -141,36 +160,37 @@ function smarty_function_html_options_optoutput($key, $value, $selected, $id, $c
} elseif ($_key === $selected) {
$_html_result .= ' selected="selected"';
}
- $_html_class = !empty($class) ? ' class="'.$class.' option"' : '';
- $_html_id = !empty($id) ? ' id="'.$id.'-'.$idx.'"' : '';
+ $_html_class = !empty($class) ? ' class="' . $class . ' option"' : '';
+ $_html_id = !empty($id) ? ' id="' . $id . '-' . $idx . '"' : '';
if (is_object($value)) {
if (method_exists($value, "__toString")) {
$value = smarty_function_escape_special_chars((string) $value->__toString());
} else {
- trigger_error("html_options: value is an object of class '". get_class($value) ."' without __toString() method", E_USER_NOTICE);
+ trigger_error("html_options: value is an object of class '" . get_class($value) . "' without __toString() method", E_USER_NOTICE);
+
return '';
}
} else {
$value = smarty_function_escape_special_chars((string) $value);
}
$_html_result .= $_html_class . $_html_id . '>' . $value . '</option>' . "\n";
- $idx++;
+ $idx ++;
} else {
$_idx = 0;
- $_html_result = smarty_function_html_options_optgroup($key, $value, $selected, !empty($id) ? ($id.'-'.$idx) : null, $class, $_idx);
- $idx++;
+ $_html_result = smarty_function_html_options_optgroup($key, $value, $selected, !empty($id) ? ($id . '-' . $idx) : null, $class, $_idx);
+ $idx ++;
}
+
return $_html_result;
-}
+}
function smarty_function_html_options_optgroup($key, $values, $selected, $id, $class, &$idx)
{
$optgroup_html = '<optgroup label="' . smarty_function_escape_special_chars($key) . '">' . "\n";
foreach ($values as $key => $value) {
$optgroup_html .= smarty_function_html_options_optoutput($key, $value, $selected, $id, $class, $idx);
- }
+ }
$optgroup_html .= "</optgroup>\n";
- return $optgroup_html;
-}
-?> \ No newline at end of file
+ return $optgroup_html;
+}
diff --git a/library/Smarty/libs/plugins/function.html_radios.php b/library/Smarty/libs/plugins/function.html_radios.php
index 7c830724a..f121d5eae 100644
--- a/library/Smarty/libs/plugins/function.html_radios.php
+++ b/library/Smarty/libs/plugins/function.html_radios.php
@@ -1,14 +1,13 @@
<?php
/**
* Smarty plugin
- *
- * @package Smarty
+ *
+ * @package Smarty
* @subpackage PluginsFunction
*/
/**
* Smarty {html_radios} function plugin
- *
* File: function.html_radios.php<br>
* Type: function<br>
* Name: html_radios<br>
@@ -31,16 +30,18 @@
* {html_radios values=$ids name='box' separator='<br>' output=$names}
* {html_radios values=$ids checked=$checked separator='<br>' output=$names}
* </pre>
- *
- * @link http://smarty.php.net/manual/en/language.function.html.radios.php {html_radios}
- * (Smarty online manual)
- * @author Christopher Kvarme <christopher.kvarme@flashjab.com>
- * @author credits to Monte Ohrt <monte at ohrt dot com>
+ *
+ * @link http://smarty.php.net/manual/en/language.function.html.radios.php {html_radios}
+ * (Smarty online manual)
+ * @author Christopher Kvarme <christopher.kvarme@flashjab.com>
+ * @author credits to Monte Ohrt <monte at ohrt dot com>
* @version 1.0
+ *
* @param array $params parameters
* @param Smarty_Internal_Template $template template object
- * @return string
- * @uses smarty_function_escape_special_chars()
+ *
+ * @return string
+ * @uses smarty_function_escape_special_chars()
*/
function smarty_function_html_radios($params, $template)
{
@@ -57,7 +58,7 @@ function smarty_function_html_radios($params, $template)
$output = null;
$extra = '';
- foreach($params as $_key => $_val) {
+ foreach ($params as $_key => $_val) {
switch ($_key) {
case 'name':
case 'separator':
@@ -72,11 +73,11 @@ function smarty_function_html_radios($params, $template)
if (method_exists($_val, "__toString")) {
$selected = smarty_function_escape_special_chars((string) $_val->__toString());
} else {
- trigger_error("html_radios: selected attribute is an object of class '". get_class($_val) ."' without __toString() method", E_USER_NOTICE);
+ trigger_error("html_radios: selected attribute is an object of class '" . get_class($_val) . "' without __toString() method", E_USER_NOTICE);
}
} else {
$selected = (string) $_val;
- }
+ }
break;
case 'escape':
@@ -102,18 +103,37 @@ function smarty_function_html_radios($params, $template)
case 'assign':
break;
+ case 'strict':
+ break;
+
+ case 'disabled':
+ case 'readonly':
+ if (!empty($params['strict'])) {
+ if (!is_scalar($_val)) {
+ trigger_error("html_options: $_key attribute must be a scalar, only boolean true or string '$_key' will actually add the attribute", E_USER_NOTICE);
+ }
+
+ if ($_val === true || $_val === $_key) {
+ $extra .= ' ' . $_key . '="' . smarty_function_escape_special_chars($_key) . '"';
+ }
+
+ break;
+ }
+ // omit break; to fall through!
+
default:
if (!is_array($_val)) {
$extra .= ' ' . $_key . '="' . smarty_function_escape_special_chars($_val) . '"';
} else {
trigger_error("html_radios: extra attribute '$_key' cannot be an array", E_USER_NOTICE);
- }
+ }
break;
- }
- }
+ }
+ }
if (!isset($options) && !isset($values)) {
/* raise error here? */
+
return '';
}
@@ -127,57 +147,59 @@ function smarty_function_html_radios($params, $template)
foreach ($values as $_i => $_key) {
$_val = isset($output[$_i]) ? $output[$_i] : '';
$_html_result[] = smarty_function_html_radios_output($name, $_key, $_val, $selected, $extra, $separator, $labels, $label_ids, $escape);
- }
- }
+ }
+ }
if (!empty($params['assign'])) {
$template->assign($params['assign'], $_html_result);
} else {
return implode("\n", $_html_result);
- }
-}
+ }
+}
function smarty_function_html_radios_output($name, $value, $output, $selected, $extra, $separator, $labels, $label_ids, $escape)
{
$_output = '';
-
+
if (is_object($value)) {
if (method_exists($value, "__toString")) {
$value = (string) $value->__toString();
} else {
- trigger_error("html_options: value is an object of class '". get_class($value) ."' without __toString() method", E_USER_NOTICE);
+ trigger_error("html_options: value is an object of class '" . get_class($value) . "' without __toString() method", E_USER_NOTICE);
+
return '';
}
} else {
$value = (string) $value;
}
-
+
if (is_object($output)) {
if (method_exists($output, "__toString")) {
$output = (string) $output->__toString();
} else {
- trigger_error("html_options: output is an object of class '". get_class($output) ."' without __toString() method", E_USER_NOTICE);
+ trigger_error("html_options: output is an object of class '" . get_class($output) . "' without __toString() method", E_USER_NOTICE);
+
return '';
}
} else {
$output = (string) $output;
}
-
+
if ($labels) {
if ($label_ids) {
$_id = smarty_function_escape_special_chars(preg_replace('![^\w\-\.]!' . Smarty::$_UTF8_MODIFIER, '_', $name . '_' . $value));
$_output .= '<label for="' . $_id . '">';
} else {
$_output .= '<label>';
- }
+ }
}
-
+
$name = smarty_function_escape_special_chars($name);
$value = smarty_function_escape_special_chars($value);
if ($escape) {
$output = smarty_function_escape_special_chars($output);
}
-
+
$_output .= '<input type="radio" name="' . $name . '" value="' . $value . '"';
if ($labels && $label_ids) {
@@ -187,14 +209,13 @@ function smarty_function_html_radios_output($name, $value, $output, $selected, $
if ($value === $selected) {
$_output .= ' checked="checked"';
}
-
+
$_output .= $extra . ' />' . $output;
if ($labels) {
$_output .= '</label>';
}
-
+
$_output .= $separator;
- return $_output;
-}
-?> \ No newline at end of file
+ return $_output;
+}
diff --git a/library/Smarty/libs/plugins/function.html_select_date.php b/library/Smarty/libs/plugins/function.html_select_date.php
index 13c500354..d66256651 100644
--- a/library/Smarty/libs/plugins/function.html_select_date.php
+++ b/library/Smarty/libs/plugins/function.html_select_date.php
@@ -1,8 +1,8 @@
<?php
/**
* Smarty plugin
- *
- * @package Smarty
+ *
+ * @package Smarty
* @subpackage PluginsFunction
*/
@@ -17,11 +17,9 @@ require_once(SMARTY_PLUGINS_DIR . 'shared.make_timestamp.php');
/**
* Smarty {html_select_date} plugin
- *
* Type: function<br>
* Name: html_select_date<br>
* Purpose: Prints the dropdowns for date selection.
- *
* ChangeLog:
* <pre>
* - 1.0 initial release
@@ -37,21 +35,22 @@ require_once(SMARTY_PLUGINS_DIR . 'shared.make_timestamp.php');
* dropdown to include given date unless explicitly set (Monte)
* - 1.3.4 fix behaviour of 0000-00-00 00:00:00 dates to match that
* of 0000-00-00 dates (cybot, boots)
- * - 2.0 complete rewrite for performance,
+ * - 2.0 complete rewrite for performance,
* added attributes month_names, *_id
* </pre>
- *
- * @link http://www.smarty.net/manual/en/language.function.html.select.date.php {html_select_date}
- * (Smarty online manual)
- * @version 2.0
- * @author Andrei Zmievski
- * @author Monte Ohrt <monte at ohrt dot com>
- * @author Rodney Rehm
- * @param array $params parameters
- * @param Smarty_Internal_Template $template template object
- * @return string
+ *
+ * @link http://www.smarty.net/manual/en/language.function.html.select.date.php {html_select_date}
+ * (Smarty online manual)
+ * @version 2.0
+ * @author Andrei Zmievski
+ * @author Monte Ohrt <monte at ohrt dot com>
+ * @author Rodney Rehm
+ *
+ * @param array $params parameters
+ *
+ * @return string
*/
-function smarty_function_html_select_date($params, $template)
+function smarty_function_html_select_date($params)
{
// generate timestamps used for month names only
static $_month_timestamps = null;
@@ -59,7 +58,7 @@ function smarty_function_html_select_date($params, $template)
if ($_month_timestamps === null) {
$_current_year = date('Y');
$_month_timestamps = array();
- for ($i = 1; $i <= 12; $i++) {
+ for ($i = 1; $i <= 12; $i ++) {
$_month_timestamps[$i] = mktime(0, 0, 0, $i, 1, 2000);
}
}
@@ -120,7 +119,7 @@ function smarty_function_html_select_date($params, $template)
$time = smarty_make_timestamp($_value);
}
break;
-
+
case 'month_names':
if (is_array($_value) && count($_value) == 12) {
$$_key = $_value;
@@ -128,7 +127,7 @@ function smarty_function_html_select_date($params, $template)
trigger_error("html_select_date: month_names must be an array of 12 strings", E_USER_NOTICE);
}
break;
-
+
case 'prefix':
case 'field_array':
case 'start_year':
@@ -155,7 +154,7 @@ function smarty_function_html_select_date($params, $template)
case 'month_id':
case 'day_id':
case 'year_id':
- $$_key = (string)$_value;
+ $$_key = (string) $_value;
break;
case 'display_days':
@@ -163,7 +162,7 @@ function smarty_function_html_select_date($params, $template)
case 'display_years':
case 'year_as_text':
case 'reverse_years':
- $$_key = (bool)$_value;
+ $$_key = (bool) $_value;
break;
default:
@@ -171,32 +170,30 @@ function smarty_function_html_select_date($params, $template)
$extra_attrs .= ' ' . $_key . '="' . smarty_function_escape_special_chars($_value) . '"';
} else {
trigger_error("html_select_date: extra attribute '$_key' cannot be an array", E_USER_NOTICE);
- }
+ }
break;
- }
+ }
}
-
+
// Note: date() is faster than strftime()
// Note: explode(date()) is faster than date() date() date()
if (isset($params['time']) && is_array($params['time'])) {
if (isset($params['time'][$prefix . 'Year'])) {
// $_REQUEST[$field_array] given
- foreach (array('Y' => 'Year', 'm' => 'Month', 'd' => 'Day') as $_elementKey => $_elementName) {
+ foreach (array('Y' => 'Year', 'm' => 'Month', 'd' => 'Day') as $_elementKey => $_elementName) {
$_variableName = '_' . strtolower($_elementName);
$$_variableName = isset($params['time'][$prefix . $_elementName])
? $params['time'][$prefix . $_elementName]
: date($_elementKey);
}
- $time = mktime(0, 0, 0, $_month, $_day, $_year);
} elseif (isset($params['time'][$field_array][$prefix . 'Year'])) {
// $_REQUEST given
- foreach (array('Y' => 'Year', 'm' => 'Month', 'd' => 'Day') as $_elementKey => $_elementName) {
+ foreach (array('Y' => 'Year', 'm' => 'Month', 'd' => 'Day') as $_elementKey => $_elementName) {
$_variableName = '_' . strtolower($_elementName);
$$_variableName = isset($params['time'][$field_array][$prefix . $_elementName])
? $params['time'][$field_array][$prefix . $_elementName]
: date($_elementKey);
}
- $time = mktime(0, 0, 0, $_month, $_day, $_year);
} else {
// no date found, use NOW
list($_year, $_month, $_day) = $time = explode('-', date('Y-m-d'));
@@ -217,13 +214,13 @@ function smarty_function_html_select_date($params, $template)
$key .= '_year';
$t = $$key;
if ($t === null) {
- $$key = (int)$_current_year;
- } else if ($t[0] == '+') {
- $$key = (int)($_current_year + trim(substr($t, 1)));
- } else if ($t[0] == '-') {
- $$key = (int)($_current_year - trim(substr($t, 1)));
+ $$key = (int) $_current_year;
+ } elseif ($t[0] == '+') {
+ $$key = (int) ($_current_year + (int)trim(substr($t, 1)));
+ } elseif ($t[0] == '-') {
+ $$key = (int) ($_current_year - (int)trim(substr($t, 1)));
} else {
- $$key = (int)$$key;
+ $$key = (int) $$key;
}
}
@@ -236,73 +233,71 @@ function smarty_function_html_select_date($params, $template)
// generate year <select> or <input>
if ($display_years) {
- $_html_years = '';
$_extra = '';
$_name = $field_array ? ($field_array . '[' . $prefix . 'Year]') : ($prefix . 'Year');
if ($all_extra) {
$_extra .= ' ' . $all_extra;
- }
+ }
if ($year_extra) {
$_extra .= ' ' . $year_extra;
}
-
+
if ($year_as_text) {
$_html_years = '<input type="text" name="' . $_name . '" value="' . $_year . '" size="4" maxlength="4"' . $_extra . $extra_attrs . ' />';
} else {
$_html_years = '<select name="' . $_name . '"';
if ($year_id !== null || $all_id !== null) {
- $_html_years .= ' id="' . smarty_function_escape_special_chars(
- $year_id !== null ? ( $year_id ? $year_id : $_name ) : ( $all_id ? ($all_id . $_name) : $_name )
- ) . '"';
+ $_html_years .= ' id="' . smarty_function_escape_special_chars(
+ $year_id !== null ? ($year_id ? $year_id : $_name) : ($all_id ? ($all_id . $_name) : $_name)
+ ) . '"';
}
if ($year_size) {
$_html_years .= ' size="' . $year_size . '"';
- }
+ }
$_html_years .= $_extra . $extra_attrs . '>' . $option_separator;
-
+
if (isset($year_empty) || isset($all_empty)) {
- $_html_years .= '<option value="">' . ( isset($year_empty) ? $year_empty : $all_empty ) . '</option>' . $option_separator;
+ $_html_years .= '<option value="">' . (isset($year_empty) ? $year_empty : $all_empty) . '</option>' . $option_separator;
}
-
- $op = $start_year > $end_year ? -1 : 1;
- for ($i=$start_year; $op > 0 ? $i <= $end_year : $i >= $end_year; $i += $op) {
+
+ $op = $start_year > $end_year ? - 1 : 1;
+ for ($i = $start_year; $op > 0 ? $i <= $end_year : $i >= $end_year; $i += $op) {
$_html_years .= '<option value="' . $i . '"'
. ($_year == $i ? ' selected="selected"' : '')
. '>' . $i . '</option>' . $option_separator;
}
-
+
$_html_years .= '</select>';
}
}
-
+
// generate month <select> or <input>
if ($display_months) {
- $_html_month = '';
$_extra = '';
$_name = $field_array ? ($field_array . '[' . $prefix . 'Month]') : ($prefix . 'Month');
if ($all_extra) {
$_extra .= ' ' . $all_extra;
- }
+ }
if ($month_extra) {
$_extra .= ' ' . $month_extra;
}
-
+
$_html_months = '<select name="' . $_name . '"';
if ($month_id !== null || $all_id !== null) {
- $_html_months .= ' id="' . smarty_function_escape_special_chars(
- $month_id !== null ? ( $month_id ? $month_id : $_name ) : ( $all_id ? ($all_id . $_name) : $_name )
- ) . '"';
+ $_html_months .= ' id="' . smarty_function_escape_special_chars(
+ $month_id !== null ? ($month_id ? $month_id : $_name) : ($all_id ? ($all_id . $_name) : $_name)
+ ) . '"';
}
if ($month_size) {
$_html_months .= ' size="' . $month_size . '"';
- }
+ }
$_html_months .= $_extra . $extra_attrs . '>' . $option_separator;
-
+
if (isset($month_empty) || isset($all_empty)) {
- $_html_months .= '<option value="">' . ( isset($month_empty) ? $month_empty : $all_empty ) . '</option>' . $option_separator;
+ $_html_months .= '<option value="">' . (isset($month_empty) ? $month_empty : $all_empty) . '</option>' . $option_separator;
}
-
- for ($i = 1; $i <= 12; $i++) {
+
+ for ($i = 1; $i <= 12; $i ++) {
$_val = sprintf('%02d', $i);
$_text = isset($month_names) ? smarty_function_escape_special_chars($month_names[$i]) : ($month_format == "%m" ? $_val : strftime($month_format, $_month_timestamps[$i]));
$_value = $month_value_format == "%m" ? $_val : strftime($month_value_format, $_month_timestamps[$i]);
@@ -310,52 +305,51 @@ function smarty_function_html_select_date($params, $template)
. ($_val == $_month ? ' selected="selected"' : '')
. '>' . $_text . '</option>' . $option_separator;
}
-
+
$_html_months .= '</select>';
}
-
+
// generate day <select> or <input>
if ($display_days) {
- $_html_day = '';
$_extra = '';
$_name = $field_array ? ($field_array . '[' . $prefix . 'Day]') : ($prefix . 'Day');
if ($all_extra) {
$_extra .= ' ' . $all_extra;
- }
+ }
if ($day_extra) {
$_extra .= ' ' . $day_extra;
}
-
+
$_html_days = '<select name="' . $_name . '"';
if ($day_id !== null || $all_id !== null) {
- $_html_days .= ' id="' . smarty_function_escape_special_chars(
- $day_id !== null ? ( $day_id ? $day_id : $_name ) : ( $all_id ? ($all_id . $_name) : $_name )
- ) . '"';
+ $_html_days .= ' id="' . smarty_function_escape_special_chars(
+ $day_id !== null ? ($day_id ? $day_id : $_name) : ($all_id ? ($all_id . $_name) : $_name)
+ ) . '"';
}
if ($day_size) {
$_html_days .= ' size="' . $day_size . '"';
- }
+ }
$_html_days .= $_extra . $extra_attrs . '>' . $option_separator;
-
+
if (isset($day_empty) || isset($all_empty)) {
- $_html_days .= '<option value="">' . ( isset($day_empty) ? $day_empty : $all_empty ) . '</option>' . $option_separator;
+ $_html_days .= '<option value="">' . (isset($day_empty) ? $day_empty : $all_empty) . '</option>' . $option_separator;
}
-
- for ($i = 1; $i <= 31; $i++) {
+
+ for ($i = 1; $i <= 31; $i ++) {
$_val = sprintf('%02d', $i);
$_text = $day_format == '%02d' ? $_val : sprintf($day_format, $i);
- $_value = $day_value_format == '%02d' ? $_val : sprintf($day_value_format, $i);
+ $_value = $day_value_format == '%02d' ? $_val : sprintf($day_value_format, $i);
$_html_days .= '<option value="' . $_value . '"'
. ($_val == $_day ? ' selected="selected"' : '')
. '>' . $_text . '</option>' . $option_separator;
}
-
+
$_html_days .= '</select>';
}
// order the fields for output
$_html = '';
- for ($i=0; $i <= 2; $i++) {
+ for ($i = 0; $i <= 2; $i ++) {
switch ($field_order[$i]) {
case 'Y':
case 'y':
@@ -365,8 +359,8 @@ function smarty_function_html_select_date($params, $template)
}
$_html .= $_html_years;
}
- break;
-
+ break;
+
case 'm':
case 'M':
if (isset($_html_months)) {
@@ -375,8 +369,8 @@ function smarty_function_html_select_date($params, $template)
}
$_html .= $_html_months;
}
- break;
-
+ break;
+
case 'd':
case 'D':
if (isset($_html_days)) {
@@ -385,10 +379,9 @@ function smarty_function_html_select_date($params, $template)
}
$_html .= $_html_days;
}
- break;
+ break;
}
}
+
return $_html;
}
-
-?> \ No newline at end of file
diff --git a/library/Smarty/libs/plugins/function.html_select_time.php b/library/Smarty/libs/plugins/function.html_select_time.php
index 9fb8038e4..9af6aad5b 100644
--- a/library/Smarty/libs/plugins/function.html_select_time.php
+++ b/library/Smarty/libs/plugins/function.html_select_time.php
@@ -2,7 +2,7 @@
/**
* Smarty plugin
*
- * @package Smarty
+ * @package Smarty
* @subpackage PluginsFunction
*/
@@ -17,21 +17,21 @@ require_once(SMARTY_PLUGINS_DIR . 'shared.make_timestamp.php');
/**
* Smarty {html_select_time} function plugin
- *
* Type: function<br>
* Name: html_select_time<br>
* Purpose: Prints the dropdowns for time selection
*
- * @link http://www.smarty.net/manual/en/language.function.html.select.time.php {html_select_time}
- * (Smarty online manual)
- * @author Roberto Berto <roberto@berto.net>
- * @author Monte Ohrt <monte AT ohrt DOT com>
- * @param array $params parameters
- * @param Smarty_Internal_Template $template template object
+ * @link http://www.smarty.net/manual/en/language.function.html.select.time.php {html_select_time}
+ * (Smarty online manual)
+ * @author Roberto Berto <roberto@berto.net>
+ * @author Monte Ohrt <monte AT ohrt DOT com>
+ *
+ * @param array $params parameters
+ *
* @return string
- * @uses smarty_make_timestamp()
+ * @uses smarty_make_timestamp()
*/
-function smarty_function_html_select_time($params, $template)
+function smarty_function_html_select_time($params)
{
$prefix = "Time_";
$field_array = null;
@@ -117,7 +117,7 @@ function smarty_function_html_select_time($params, $template)
case 'minute_value_format':
case 'second_format':
case 'second_value_format':
- $$_key = (string)$_value;
+ $$_key = (string) $_value;
break;
case 'display_hours':
@@ -125,7 +125,7 @@ function smarty_function_html_select_time($params, $template)
case 'display_seconds':
case 'display_meridian':
case 'use_24_hours':
- $$_key = (bool)$_value;
+ $$_key = (bool) $_value;
break;
case 'minute_interval':
@@ -135,7 +135,7 @@ function smarty_function_html_select_time($params, $template)
case 'minute_size':
case 'second_size':
case 'meridian_size':
- $$_key = (int)$_value;
+ $$_key = (int) $_value;
break;
default:
@@ -151,7 +151,7 @@ function smarty_function_html_select_time($params, $template)
if (isset($params['time']) && is_array($params['time'])) {
if (isset($params['time'][$prefix . 'Hour'])) {
// $_REQUEST[$field_array] given
- foreach (array('H' => 'Hour', 'i' => 'Minute', 's' => 'Second') as $_elementKey => $_elementName) {
+ foreach (array('H' => 'Hour', 'i' => 'Minute', 's' => 'Second') as $_elementKey => $_elementName) {
$_variableName = '_' . strtolower($_elementName);
$$_variableName = isset($params['time'][$prefix . $_elementName])
? $params['time'][$prefix . $_elementName]
@@ -160,11 +160,11 @@ function smarty_function_html_select_time($params, $template)
$_meridian = isset($params['time'][$prefix . 'Meridian'])
? (' ' . $params['time'][$prefix . 'Meridian'])
: '';
- $time = strtotime( $_hour . ':' . $_minute . ':' . $_second . $_meridian );
+ $time = strtotime($_hour . ':' . $_minute . ':' . $_second . $_meridian);
list($_hour, $_minute, $_second) = $time = explode('-', date('H-i-s', $time));
} elseif (isset($params['time'][$field_array][$prefix . 'Hour'])) {
// $_REQUEST given
- foreach (array('H' => 'Hour', 'i' => 'Minute', 's' => 'Second') as $_elementKey => $_elementName) {
+ foreach (array('H' => 'Hour', 'i' => 'Minute', 's' => 'Second') as $_elementKey => $_elementName) {
$_variableName = '_' . strtolower($_elementName);
$$_variableName = isset($params['time'][$field_array][$prefix . $_elementName])
? $params['time'][$field_array][$prefix . $_elementName]
@@ -173,7 +173,7 @@ function smarty_function_html_select_time($params, $template)
$_meridian = isset($params['time'][$field_array][$prefix . 'Meridian'])
? (' ' . $params['time'][$field_array][$prefix . 'Meridian'])
: '';
- $time = strtotime( $_hour . ':' . $_minute . ':' . $_second . $_meridian );
+ $time = strtotime($_hour . ':' . $_minute . ':' . $_second . $_meridian);
list($_hour, $_minute, $_second) = $time = explode('-', date('H-i-s', $time));
} else {
// no date found, use NOW
@@ -204,8 +204,8 @@ function smarty_function_html_select_time($params, $template)
$_html_hours = '<select name="' . $_name . '"';
if ($hour_id !== null || $all_id !== null) {
$_html_hours .= ' id="' . smarty_function_escape_special_chars(
- $hour_id !== null ? ( $hour_id ? $hour_id : $_name ) : ( $all_id ? ($all_id . $_name) : $_name )
- ) . '"';
+ $hour_id !== null ? ($hour_id ? $hour_id : $_name) : ($all_id ? ($all_id . $_name) : $_name)
+ ) . '"';
}
if ($hour_size) {
$_html_hours .= ' size="' . $hour_size . '"';
@@ -213,12 +213,12 @@ function smarty_function_html_select_time($params, $template)
$_html_hours .= $_extra . $extra_attrs . '>' . $option_separator;
if (isset($hour_empty) || isset($all_empty)) {
- $_html_hours .= '<option value="">' . ( isset($hour_empty) ? $hour_empty : $all_empty ) . '</option>' . $option_separator;
+ $_html_hours .= '<option value="">' . (isset($hour_empty) ? $hour_empty : $all_empty) . '</option>' . $option_separator;
}
$start = $use_24_hours ? 0 : 1;
$end = $use_24_hours ? 23 : 12;
- for ($i=$start; $i <= $end; $i++) {
+ for ($i = $start; $i <= $end; $i ++) {
$_val = sprintf('%02d', $i);
$_text = $hour_format == '%02d' ? $_val : sprintf($hour_format, $i);
$_value = $hour_value_format == '%02d' ? $_val : sprintf($hour_value_format, $i);
@@ -226,7 +226,7 @@ function smarty_function_html_select_time($params, $template)
if (!$use_24_hours) {
$_hour12 = $_hour == 0
? 12
- : ($_hour <= 12 ? $_hour : $_hour -12);
+ : ($_hour <= 12 ? $_hour : $_hour - 12);
}
$selected = $_hour !== null ? ($use_24_hours ? $_hour == $_val : $_hour12 == $_val) : null;
@@ -253,8 +253,8 @@ function smarty_function_html_select_time($params, $template)
$_html_minutes = '<select name="' . $_name . '"';
if ($minute_id !== null || $all_id !== null) {
$_html_minutes .= ' id="' . smarty_function_escape_special_chars(
- $minute_id !== null ? ( $minute_id ? $minute_id : $_name ) : ( $all_id ? ($all_id . $_name) : $_name )
- ) . '"';
+ $minute_id !== null ? ($minute_id ? $minute_id : $_name) : ($all_id ? ($all_id . $_name) : $_name)
+ ) . '"';
}
if ($minute_size) {
$_html_minutes .= ' size="' . $minute_size . '"';
@@ -262,11 +262,11 @@ function smarty_function_html_select_time($params, $template)
$_html_minutes .= $_extra . $extra_attrs . '>' . $option_separator;
if (isset($minute_empty) || isset($all_empty)) {
- $_html_minutes .= '<option value="">' . ( isset($minute_empty) ? $minute_empty : $all_empty ) . '</option>' . $option_separator;
+ $_html_minutes .= '<option value="">' . (isset($minute_empty) ? $minute_empty : $all_empty) . '</option>' . $option_separator;
}
$selected = $_minute !== null ? ($_minute - $_minute % $minute_interval) : null;
- for ($i=0; $i <= 59; $i += $minute_interval) {
+ for ($i = 0; $i <= 59; $i += $minute_interval) {
$_val = sprintf('%02d', $i);
$_text = $minute_format == '%02d' ? $_val : sprintf($minute_format, $i);
$_value = $minute_value_format == '%02d' ? $_val : sprintf($minute_value_format, $i);
@@ -293,8 +293,8 @@ function smarty_function_html_select_time($params, $template)
$_html_seconds = '<select name="' . $_name . '"';
if ($second_id !== null || $all_id !== null) {
$_html_seconds .= ' id="' . smarty_function_escape_special_chars(
- $second_id !== null ? ( $second_id ? $second_id : $_name ) : ( $all_id ? ($all_id . $_name) : $_name )
- ) . '"';
+ $second_id !== null ? ($second_id ? $second_id : $_name) : ($all_id ? ($all_id . $_name) : $_name)
+ ) . '"';
}
if ($second_size) {
$_html_seconds .= ' size="' . $second_size . '"';
@@ -302,11 +302,11 @@ function smarty_function_html_select_time($params, $template)
$_html_seconds .= $_extra . $extra_attrs . '>' . $option_separator;
if (isset($second_empty) || isset($all_empty)) {
- $_html_seconds .= '<option value="">' . ( isset($second_empty) ? $second_empty : $all_empty ) . '</option>' . $option_separator;
+ $_html_seconds .= '<option value="">' . (isset($second_empty) ? $second_empty : $all_empty) . '</option>' . $option_separator;
}
$selected = $_second !== null ? ($_second - $_second % $second_interval) : null;
- for ($i=0; $i <= 59; $i += $second_interval) {
+ for ($i = 0; $i <= 59; $i += $second_interval) {
$_val = sprintf('%02d', $i);
$_text = $second_format == '%02d' ? $_val : sprintf($second_format, $i);
$_value = $second_value_format == '%02d' ? $_val : sprintf($second_value_format, $i);
@@ -333,8 +333,8 @@ function smarty_function_html_select_time($params, $template)
$_html_meridian = '<select name="' . $_name . '"';
if ($meridian_id !== null || $all_id !== null) {
$_html_meridian .= ' id="' . smarty_function_escape_special_chars(
- $meridian_id !== null ? ( $meridian_id ? $meridian_id : $_name ) : ( $all_id ? ($all_id . $_name) : $_name )
- ) . '"';
+ $meridian_id !== null ? ($meridian_id ? $meridian_id : $_name) : ($all_id ? ($all_id . $_name) : $_name)
+ ) . '"';
}
if ($meridian_size) {
$_html_meridian .= ' size="' . $meridian_size . '"';
@@ -342,11 +342,11 @@ function smarty_function_html_select_time($params, $template)
$_html_meridian .= $_extra . $extra_attrs . '>' . $option_separator;
if (isset($meridian_empty) || isset($all_empty)) {
- $_html_meridian .= '<option value="">' . ( isset($meridian_empty) ? $meridian_empty : $all_empty ) . '</option>' . $option_separator;
+ $_html_meridian .= '<option value="">' . (isset($meridian_empty) ? $meridian_empty : $all_empty) . '</option>' . $option_separator;
}
- $_html_meridian .= '<option value="am"'. ($_hour < 12 ? ' selected="selected"' : '') .'>AM</option>' . $option_separator
- . '<option value="pm"'. ($_hour < 12 ? '' : ' selected="selected"') .'>PM</option>' . $option_separator
+ $_html_meridian .= '<option value="am"' . ($_hour > 0 && $_hour < 12 ? ' selected="selected"' : '') . '>AM</option>' . $option_separator
+ . '<option value="pm"' . ($_hour < 12 ? '' : ' selected="selected"') . '>PM</option>' . $option_separator
. '</select>';
}
@@ -362,5 +362,3 @@ function smarty_function_html_select_time($params, $template)
return $_html;
}
-
-?> \ No newline at end of file
diff --git a/library/Smarty/libs/plugins/function.html_table.php b/library/Smarty/libs/plugins/function.html_table.php
index 6b9cb9d12..ec7ba48a4 100644
--- a/library/Smarty/libs/plugins/function.html_table.php
+++ b/library/Smarty/libs/plugins/function.html_table.php
@@ -2,13 +2,12 @@
/**
* Smarty plugin
*
- * @package Smarty
+ * @package Smarty
* @subpackage PluginsFunction
*/
/**
* Smarty {html_table} function plugin
- *
* Type: function<br>
* Name: html_table<br>
* Date: Feb 17, 2003<br>
@@ -37,17 +36,18 @@
* {table loop=$data cols="first,second,third" tr_attr=$colors}
* </pre>
*
- * @author Monte Ohrt <monte at ohrt dot com>
- * @author credit to Messju Mohr <messju at lammfellpuschen dot de>
- * @author credit to boots <boots dot smarty at yahoo dot com>
- * @version 1.1
- * @link http://www.smarty.net/manual/en/language.function.html.table.php {html_table}
- * (Smarty online manual)
- * @param array $params parameters
- * @param Smarty_Internal_Template $template template object
+ * @author Monte Ohrt <monte at ohrt dot com>
+ * @author credit to Messju Mohr <messju at lammfellpuschen dot de>
+ * @author credit to boots <boots dot smarty at yahoo dot com>
+ * @version 1.1
+ * @link http://www.smarty.net/manual/en/language.function.html.table.php {html_table}
+ * (Smarty online manual)
+ *
+ * @param array $params parameters
+ *
* @return string
*/
-function smarty_function_html_table($params, $template)
+function smarty_function_html_table($params)
{
$table_attr = 'border="1"';
$tr_attr = '';
@@ -63,14 +63,15 @@ function smarty_function_html_table($params, $template)
$loop = null;
if (!isset($params['loop'])) {
- trigger_error("html_table: missing 'loop' parameter",E_USER_WARNING);
+ trigger_error("html_table: missing 'loop' parameter", E_USER_WARNING);
+
return;
}
foreach ($params as $_key => $_value) {
switch ($_key) {
case 'loop':
- $$_key = (array)$_value;
+ $$_key = (array) $_value;
break;
case 'cols':
@@ -81,14 +82,14 @@ function smarty_function_html_table($params, $template)
$cols = explode(',', $_value);
$cols_count = count($cols);
} elseif (!empty($_value)) {
- $cols_count = (int)$_value;
+ $cols_count = (int) $_value;
} else {
$cols_count = $cols;
}
break;
case 'rows':
- $$_key = (int)$_value;
+ $$_key = (int) $_value;
break;
case 'table_attr':
@@ -97,7 +98,7 @@ function smarty_function_html_table($params, $template)
case 'vdir':
case 'inner':
case 'caption':
- $$_key = (string)$_value;
+ $$_key = (string) $_value;
break;
case 'tr_attr':
@@ -129,7 +130,7 @@ function smarty_function_html_table($params, $template)
$cols = ($hdir == 'right') ? $cols : array_reverse($cols);
$output .= "<thead><tr>\n";
- for ($r = 0; $r < $cols_count; $r++) {
+ for ($r = 0; $r < $cols_count; $r ++) {
$output .= '<th' . smarty_function_html_table_cycle('th', $th_attr, $r) . '>';
$output .= $cols[$r];
$output .= "</th>\n";
@@ -138,12 +139,12 @@ function smarty_function_html_table($params, $template)
}
$output .= "<tbody>\n";
- for ($r = 0; $r < $rows; $r++) {
+ for ($r = 0; $r < $rows; $r ++) {
$output .= "<tr" . smarty_function_html_table_cycle('tr', $tr_attr, $r) . ">\n";
- $rx = ($vdir == 'down') ? $r * $cols_count : ($rows-1 - $r) * $cols_count;
+ $rx = ($vdir == 'down') ? $r * $cols_count : ($rows - 1 - $r) * $cols_count;
- for ($c = 0; $c < $cols_count; $c++) {
- $x = ($hdir == 'right') ? $rx + $c : $rx + $cols_count-1 - $c;
+ for ($c = 0; $c < $cols_count; $c ++) {
+ $x = ($hdir == 'right') ? $rx + $c : $rx + $cols_count - 1 - $c;
if ($inner != 'cols') {
/* shuffle x to loop over rows*/
$x = floor($x / $cols_count) + ($x % $cols_count) * $rows;
@@ -173,5 +174,3 @@ function smarty_function_html_table_cycle($name, $var, $no)
return ($ret) ? ' ' . $ret : '';
}
-
-?> \ No newline at end of file
diff --git a/library/Smarty/libs/plugins/function.mailto.php b/library/Smarty/libs/plugins/function.mailto.php
index 55d5c0602..520fb7aa6 100644
--- a/library/Smarty/libs/plugins/function.mailto.php
+++ b/library/Smarty/libs/plugins/function.mailto.php
@@ -2,13 +2,12 @@
/**
* Smarty plugin
*
- * @package Smarty
+ * @package Smarty
* @subpackage PluginsFunction
*/
/**
* Smarty {mailto} function plugin
- *
* Type: function<br>
* Name: mailto<br>
* Date: May 21, 2002
@@ -39,22 +38,24 @@
* {mailto address="me@domain.com" extra='class="mailto"'}
* </pre>
*
- * @link http://www.smarty.net/manual/en/language.function.mailto.php {mailto}
- * (Smarty online manual)
- * @version 1.2
- * @author Monte Ohrt <monte at ohrt dot com>
- * @author credits to Jason Sweat (added cc, bcc and subject functionality)
- * @param array $params parameters
- * @param Smarty_Internal_Template $template template object
+ * @link http://www.smarty.net/manual/en/language.function.mailto.php {mailto}
+ * (Smarty online manual)
+ * @version 1.2
+ * @author Monte Ohrt <monte at ohrt dot com>
+ * @author credits to Jason Sweat (added cc, bcc and subject functionality)
+ *
+ * @param array $params parameters
+ *
* @return string
*/
-function smarty_function_mailto($params, $template)
+function smarty_function_mailto($params)
{
static $_allowed_encoding = array('javascript' => true, 'javascript_charcode' => true, 'hex' => true, 'none' => true);
$extra = '';
if (empty($params['address'])) {
- trigger_error("mailto: missing 'address' parameter",E_USER_WARNING);
+ trigger_error("mailto: missing 'address' parameter", E_USER_WARNING);
+
return;
} else {
$address = $params['address'];
@@ -71,8 +72,9 @@ function smarty_function_mailto($params, $template)
case 'cc':
case 'bcc':
case 'followupto':
- if (!empty($value))
- $mail_parms[] = $var . '=' . str_replace($search, $replace, rawurlencode($value));
+ if (!empty($value)) {
+ $mail_parms[] = $var . '=' . str_replace($search, $replace, rawurlencode($value));
+ }
break;
case 'subject':
@@ -91,10 +93,11 @@ function smarty_function_mailto($params, $template)
if ($mail_parms) {
$address .= '?' . join('&', $mail_parms);
}
-
+
$encode = (empty($params['encode'])) ? 'none' : $params['encode'];
if (!isset($_allowed_encoding[$encode])) {
trigger_error("mailto: 'encode' parameter must be none, javascript, javascript_charcode or hex", E_USER_WARNING);
+
return;
}
// FIXME: (rodneyrehm) document.write() excues me what? 1998 has passed!
@@ -102,7 +105,7 @@ function smarty_function_mailto($params, $template)
$string = 'document.write(\'<a href="mailto:' . $address . '" ' . $extra . '>' . $text . '</a>\');';
$js_encode = '';
- for ($x = 0, $_length = strlen($string); $x < $_length; $x++) {
+ for ($x = 0, $_length = strlen($string); $x < $_length; $x ++) {
$js_encode .= '%' . bin2hex($string[$x]);
}
@@ -110,7 +113,7 @@ function smarty_function_mailto($params, $template)
} elseif ($encode == 'javascript_charcode') {
$string = '<a href="mailto:' . $address . '" ' . $extra . '>' . $text . '</a>';
- for($x = 0, $y = strlen($string); $x < $y; $x++) {
+ for ($x = 0, $y = strlen($string); $x < $y; $x ++) {
$ord[] = ord($string[$x]);
}
@@ -125,11 +128,12 @@ function smarty_function_mailto($params, $template)
} elseif ($encode == 'hex') {
preg_match('!^(.*)(\?.*)$!', $address, $match);
if (!empty($match[2])) {
- trigger_error("mailto: hex encoding does not work with extra attributes. Try javascript.",E_USER_WARNING);
+ trigger_error("mailto: hex encoding does not work with extra attributes. Try javascript.", E_USER_WARNING);
+
return;
}
$address_encode = '';
- for ($x = 0, $_length = strlen($address); $x < $_length; $x++) {
+ for ($x = 0, $_length = strlen($address); $x < $_length; $x ++) {
if (preg_match('!\w!' . Smarty::$_UTF8_MODIFIER, $address[$x])) {
$address_encode .= '%' . bin2hex($address[$x]);
} else {
@@ -137,16 +141,15 @@ function smarty_function_mailto($params, $template)
}
}
$text_encode = '';
- for ($x = 0, $_length = strlen($text); $x < $_length; $x++) {
+ for ($x = 0, $_length = strlen($text); $x < $_length; $x ++) {
$text_encode .= '&#x' . bin2hex($text[$x]) . ';';
}
$mailto = "&#109;&#97;&#105;&#108;&#116;&#111;&#58;";
+
return '<a href="' . $mailto . $address_encode . '" ' . $extra . '>' . $text_encode . '</a>';
} else {
// no encoding
return '<a href="mailto:' . $address . '" ' . $extra . '>' . $text . '</a>';
}
}
-
-?> \ No newline at end of file
diff --git a/library/Smarty/libs/plugins/function.math.php b/library/Smarty/libs/plugins/function.math.php
index f4d3f05ee..aba76e825 100644
--- a/library/Smarty/libs/plugins/function.math.php
+++ b/library/Smarty/libs/plugins/function.math.php
@@ -1,87 +1,91 @@
<?php
/**
* Smarty plugin
- *
* This plugin is only for Smarty2 BC
- * @package Smarty
+ *
+ * @package Smarty
* @subpackage PluginsFunction
*/
/**
* Smarty {math} function plugin
- *
* Type: function<br>
* Name: math<br>
* Purpose: handle math computations in template
*
- * @link http://www.smarty.net/manual/en/language.function.math.php {math}
- * (Smarty online manual)
+ * @link http://www.smarty.net/manual/en/language.function.math.php {math}
+ * (Smarty online manual)
* @author Monte Ohrt <monte at ohrt dot com>
+ *
* @param array $params parameters
* @param Smarty_Internal_Template $template template object
+ *
* @return string|null
*/
function smarty_function_math($params, $template)
{
static $_allowed_funcs = array(
- 'int' => true, 'abs' => true, 'ceil' => true, 'cos' => true, 'exp' => true, 'floor' => true,
- 'log' => true, 'log10' => true, 'max' => true, 'min' => true, 'pi' => true, 'pow' => true,
- 'rand' => true, 'round' => true, 'sin' => true, 'sqrt' => true, 'srand' => true ,'tan' => true
+ 'int' => true, 'abs' => true, 'ceil' => true, 'cos' => true, 'exp' => true, 'floor' => true,
+ 'log' => true, 'log10' => true, 'max' => true, 'min' => true, 'pi' => true, 'pow' => true,
+ 'rand' => true, 'round' => true, 'sin' => true, 'sqrt' => true, 'srand' => true, 'tan' => true
);
// be sure equation parameter is present
if (empty($params['equation'])) {
- trigger_error("math: missing equation parameter",E_USER_WARNING);
+ trigger_error("math: missing equation parameter", E_USER_WARNING);
+
return;
}
$equation = $params['equation'];
// make sure parenthesis are balanced
- if (substr_count($equation,"(") != substr_count($equation,")")) {
- trigger_error("math: unbalanced parenthesis",E_USER_WARNING);
+ if (substr_count($equation, "(") != substr_count($equation, ")")) {
+ trigger_error("math: unbalanced parenthesis", E_USER_WARNING);
+
return;
}
// match all vars in equation, make sure all are passed
- preg_match_all("!(?:0x[a-fA-F0-9]+)|([a-zA-Z][a-zA-Z0-9_]*)!",$equation, $match);
+ preg_match_all("!(?:0x[a-fA-F0-9]+)|([a-zA-Z][a-zA-Z0-9_]*)!", $equation, $match);
- foreach($match[1] as $curr_var) {
+ foreach ($match[1] as $curr_var) {
if ($curr_var && !isset($params[$curr_var]) && !isset($_allowed_funcs[$curr_var])) {
- trigger_error("math: function call $curr_var not allowed",E_USER_WARNING);
+ trigger_error("math: function call $curr_var not allowed", E_USER_WARNING);
+
return;
}
}
- foreach($params as $key => $val) {
+ foreach ($params as $key => $val) {
if ($key != "equation" && $key != "format" && $key != "assign") {
// make sure value is not empty
- if (strlen($val)==0) {
- trigger_error("math: parameter $key is empty",E_USER_WARNING);
+ if (strlen($val) == 0) {
+ trigger_error("math: parameter $key is empty", E_USER_WARNING);
+
return;
}
if (!is_numeric($val)) {
- trigger_error("math: parameter $key: is not numeric",E_USER_WARNING);
+ trigger_error("math: parameter $key: is not numeric", E_USER_WARNING);
+
return;
}
$equation = preg_replace("/\b$key\b/", " \$params['$key'] ", $equation);
}
}
$smarty_math_result = null;
- eval("\$smarty_math_result = ".$equation.";");
+ eval("\$smarty_math_result = " . $equation . ";");
if (empty($params['format'])) {
if (empty($params['assign'])) {
return $smarty_math_result;
} else {
- $template->assign($params['assign'],$smarty_math_result);
+ $template->assign($params['assign'], $smarty_math_result);
}
} else {
- if (empty($params['assign'])){
- printf($params['format'],$smarty_math_result);
+ if (empty($params['assign'])) {
+ printf($params['format'], $smarty_math_result);
} else {
- $template->assign($params['assign'],sprintf($params['format'],$smarty_math_result));
+ $template->assign($params['assign'], sprintf($params['format'], $smarty_math_result));
}
}
}
-
-?> \ No newline at end of file
diff --git a/library/Smarty/libs/plugins/modifier.capitalize.php b/library/Smarty/libs/plugins/modifier.capitalize.php
index a78e3632a..a8ad76370 100644
--- a/library/Smarty/libs/plugins/modifier.capitalize.php
+++ b/library/Smarty/libs/plugins/modifier.capitalize.php
@@ -1,25 +1,24 @@
<?php
/**
* Smarty plugin
- *
- * @package Smarty
+ *
+ * @package Smarty
* @subpackage PluginsModifier
*/
/**
* Smarty capitalize modifier plugin
- *
* Type: modifier<br>
* Name: capitalize<br>
* Purpose: capitalize words in the string
- *
* {@internal {$string|capitalize:true:true} is the fastest option for MBString enabled systems }}
*
* @param string $string string to capitalize
* @param boolean $uc_digits also capitalize "x123" to "X123"
* @param boolean $lc_rest capitalize first letters, lowercase all following letters "aAa" to "Aaa"
+ *
* @return string capitalized string
- * @author Monte Ohrt <monte at ohrt dot com>
+ * @author Monte Ohrt <monte at ohrt dot com>
* @author Rodney Rehm
*/
function smarty_modifier_capitalize($string, $uc_digits = false, $lc_rest = false)
@@ -27,39 +26,65 @@ function smarty_modifier_capitalize($string, $uc_digits = false, $lc_rest = fals
if (Smarty::$_MBSTRING) {
if ($lc_rest) {
// uppercase (including hyphenated words)
- $upper_string = mb_convert_case( $string, MB_CASE_TITLE, Smarty::$_CHARSET );
+ $upper_string = mb_convert_case($string, MB_CASE_TITLE, Smarty::$_CHARSET);
} else {
// uppercase word breaks
- $upper_string = preg_replace("!(^|[^\p{L}'])([\p{Ll}])!eS" . Smarty::$_UTF8_MODIFIER, "stripslashes('\\1').mb_convert_case(stripslashes('\\2'),MB_CASE_UPPER, '" . addslashes(Smarty::$_CHARSET) . "')", $string);
+ $upper_string = preg_replace_callback("!(^|[^\p{L}'])([\p{Ll}])!S" . Smarty::$_UTF8_MODIFIER, 'smarty_mod_cap_mbconvert_cb', $string);
}
// check uc_digits case
if (!$uc_digits) {
if (preg_match_all("!\b([\p{L}]*[\p{N}]+[\p{L}]*)\b!" . Smarty::$_UTF8_MODIFIER, $string, $matches, PREG_OFFSET_CAPTURE)) {
- foreach($matches[1] as $match) {
+ foreach ($matches[1] as $match) {
$upper_string = substr_replace($upper_string, mb_strtolower($match[0], Smarty::$_CHARSET), $match[1], strlen($match[0]));
}
- }
+ }
}
- $upper_string = preg_replace("!((^|\s)['\"])(\w)!e" . Smarty::$_UTF8_MODIFIER, "stripslashes('\\1').mb_convert_case(stripslashes('\\3'),MB_CASE_UPPER, '" . addslashes(Smarty::$_CHARSET) . "')", $upper_string);
+ $upper_string = preg_replace_callback("!((^|\s)['\"])(\w)!" . Smarty::$_UTF8_MODIFIER, 'smarty_mod_cap_mbconvert2_cb', $upper_string);
return $upper_string;
}
-
+
// lowercase first
if ($lc_rest) {
$string = strtolower($string);
}
// uppercase (including hyphenated words)
- $upper_string = preg_replace("!(^|[^\p{L}'])([\p{Ll}])!eS" . Smarty::$_UTF8_MODIFIER, "stripslashes('\\1').ucfirst(stripslashes('\\2'))", $string);
+ $upper_string = preg_replace_callback("!(^|[^\p{L}'])([\p{Ll}])!S" . Smarty::$_UTF8_MODIFIER, 'smarty_mod_cap_ucfirst_cb', $string);
// check uc_digits case
if (!$uc_digits) {
if (preg_match_all("!\b([\p{L}]*[\p{N}]+[\p{L}]*)\b!" . Smarty::$_UTF8_MODIFIER, $string, $matches, PREG_OFFSET_CAPTURE)) {
- foreach($matches[1] as $match) {
+ foreach ($matches[1] as $match) {
$upper_string = substr_replace($upper_string, strtolower($match[0]), $match[1], strlen($match[0]));
}
- }
+ }
}
- $upper_string = preg_replace("!((^|\s)['\"])(\w)!e" . Smarty::$_UTF8_MODIFIER, "stripslashes('\\1').strtoupper(stripslashes('\\3'))", $upper_string);
+ $upper_string = preg_replace_callback("!((^|\s)['\"])(\w)!" . Smarty::$_UTF8_MODIFIER, 'smarty_mod_cap_ucfirst2_cb', $upper_string);
return $upper_string;
-}
+}
+
+/*
+ *
+ * Bug: create_function() use exhausts memory when used in long loops
+ * Fix: use declared functions for callbacks instead of using create_function()
+ * Note: This can be fixed using anonymous functions instead, but that requires PHP >= 5.3
+ *
+ * @author Kyle Renfrow
+ */
+function smarty_mod_cap_mbconvert_cb($matches)
+{
+ return stripslashes($matches[1]) . mb_convert_case(stripslashes($matches[2]), MB_CASE_UPPER, Smarty::$_CHARSET);
+}
+
+function smarty_mod_cap_mbconvert2_cb($matches)
+{
+ return stripslashes($matches[1]) . mb_convert_case(stripslashes($matches[3]), MB_CASE_UPPER, Smarty::$_CHARSET);
+}
+
+function smarty_mod_cap_ucfirst_cb($matches)
+{
+ return stripslashes($matches[1]) . ucfirst(stripslashes($matches[2]));
+}
-?> \ No newline at end of file
+function smarty_mod_cap_ucfirst2_cb($matches)
+{
+ return stripslashes($matches[1]) . ucfirst(stripslashes($matches[3]));
+}
diff --git a/library/Smarty/libs/plugins/modifier.date_format.php b/library/Smarty/libs/plugins/modifier.date_format.php
index f3eaba057..5ad7540b1 100644
--- a/library/Smarty/libs/plugins/modifier.date_format.php
+++ b/library/Smarty/libs/plugins/modifier.date_format.php
@@ -1,14 +1,13 @@
<?php
/**
* Smarty plugin
- *
- * @package Smarty
+ *
+ * @package Smarty
* @subpackage PluginsModifier
*/
/**
* Smarty date_format modifier plugin
- *
* Type: modifier<br>
* Name: date_format<br>
* Purpose: format datestamps via strftime<br>
@@ -16,24 +15,26 @@
* - string: input date string
* - format: strftime format for output
* - default_date: default date if $string is empty
- *
- * @link http://www.smarty.net/manual/en/language.modifier.date.format.php date_format (Smarty online manual)
- * @author Monte Ohrt <monte at ohrt dot com>
+ *
+ * @link http://www.smarty.net/manual/en/language.modifier.date.format.php date_format (Smarty online manual)
+ * @author Monte Ohrt <monte at ohrt dot com>
+ *
* @param string $string input date string
* @param string $format strftime format for output
* @param string $default_date default date if $string is empty
* @param string $formatter either 'strftime' or 'auto'
+ *
* @return string |void
- * @uses smarty_make_timestamp()
+ * @uses smarty_make_timestamp()
*/
-function smarty_modifier_date_format($string, $format=null, $default_date='', $formatter='auto')
+function smarty_modifier_date_format($string, $format = null, $default_date = '', $formatter = 'auto')
{
if ($format === null) {
$format = Smarty::$_DATE_FORMAT;
}
/**
- * Include the {@link shared.make_timestamp.php} plugin
- */
+ * Include the {@link shared.make_timestamp.php} plugin
+ */
require_once(SMARTY_PLUGINS_DIR . 'shared.make_timestamp.php');
if ($string != '' && $string != '0000-00-00' && $string != '0000-00-00 00:00:00') {
$timestamp = smarty_make_timestamp($string);
@@ -41,25 +42,24 @@ function smarty_modifier_date_format($string, $format=null, $default_date='', $f
$timestamp = smarty_make_timestamp($default_date);
} else {
return;
- }
- if($formatter=='strftime'||($formatter=='auto'&&strpos($format,'%')!==false)) {
+ }
+ if ($formatter == 'strftime' || ($formatter == 'auto' && strpos($format, '%') !== false)) {
if (DS == '\\') {
$_win_from = array('%D', '%h', '%n', '%r', '%R', '%t', '%T');
$_win_to = array('%m/%d/%y', '%b', "\n", '%I:%M:%S %p', '%H:%M', "\t", '%H:%M:%S');
if (strpos($format, '%e') !== false) {
$_win_from[] = '%e';
$_win_to[] = sprintf('%\' 2d', date('j', $timestamp));
- }
+ }
if (strpos($format, '%l') !== false) {
$_win_from[] = '%l';
$_win_to[] = sprintf('%\' 2d', date('h', $timestamp));
- }
+ }
$format = str_replace($_win_from, $_win_to, $format);
- }
+ }
+
return strftime($format, $timestamp);
} else {
return date($format, $timestamp);
}
-}
-
-?> \ No newline at end of file
+}
diff --git a/library/Smarty/libs/plugins/modifier.debug_print_var.php b/library/Smarty/libs/plugins/modifier.debug_print_var.php
index fa44100e8..66363d253 100644
--- a/library/Smarty/libs/plugins/modifier.debug_print_var.php
+++ b/library/Smarty/libs/plugins/modifier.debug_print_var.php
@@ -1,53 +1,54 @@
<?php
/**
* Smarty plugin
- *
- * @package Smarty
+ *
+ * @package Smarty
* @subpackage Debug
*/
/**
* Smarty debug_print_var modifier plugin
- *
* Type: modifier<br>
* Name: debug_print_var<br>
* Purpose: formats variable contents for display in the console
*
- * @author Monte Ohrt <monte at ohrt dot com>
- * @param array|object $var variable to be formatted
- * @param integer $depth maximum recursion depth if $var is an array
- * @param integer $length maximum string length if $var is a string
- * @return string
+ * @author Monte Ohrt <monte at ohrt dot com>
+ *
+ * @param array|object $var variable to be formatted
+ * @param integer $depth maximum recursion depth if $var is an array
+ * @param integer $length maximum string length if $var is a string
+ *
+ * @return string
*/
-function smarty_modifier_debug_print_var ($var, $depth = 0, $length = 40)
+function smarty_modifier_debug_print_var($var, $depth = 0, $length = 40)
{
$_replace = array("\n" => '<i>\n</i>',
- "\r" => '<i>\r</i>',
- "\t" => '<i>\t</i>'
- );
+ "\r" => '<i>\r</i>',
+ "\t" => '<i>\t</i>'
+ );
switch (gettype($var)) {
case 'array' :
$results = '<b>Array (' . count($var) . ')</b>';
foreach ($var as $curr_key => $curr_val) {
$results .= '<br>' . str_repeat('&nbsp;', $depth * 2)
- . '<b>' . strtr($curr_key, $_replace) . '</b> =&gt; '
- . smarty_modifier_debug_print_var($curr_val, ++$depth, $length);
- $depth--;
- }
+ . '<b>' . strtr($curr_key, $_replace) . '</b> =&gt; '
+ . smarty_modifier_debug_print_var($curr_val, ++$depth, $length);
+ $depth --;
+ }
break;
-
+
case 'object' :
$object_vars = get_object_vars($var);
$results = '<b>' . get_class($var) . ' Object (' . count($object_vars) . ')</b>';
foreach ($object_vars as $curr_key => $curr_val) {
$results .= '<br>' . str_repeat('&nbsp;', $depth * 2)
- . '<b> -&gt;' . strtr($curr_key, $_replace) . '</b> = '
- . smarty_modifier_debug_print_var($curr_val, ++$depth, $length);
- $depth--;
- }
+ . '<b> -&gt;' . strtr($curr_key, $_replace) . '</b> = '
+ . smarty_modifier_debug_print_var($curr_val, ++$depth, $length);
+ $depth --;
+ }
break;
-
+
case 'boolean' :
case 'NULL' :
case 'resource' :
@@ -59,15 +60,15 @@ function smarty_modifier_debug_print_var ($var, $depth = 0, $length = 40)
$results = 'null';
} else {
$results = htmlspecialchars((string) $var);
- }
+ }
$results = '<i>' . $results . '</i>';
break;
-
+
case 'integer' :
case 'float' :
$results = htmlspecialchars((string) $var);
break;
-
+
case 'string' :
$results = strtr($var, $_replace);
if (Smarty::$_MBSTRING) {
@@ -82,7 +83,7 @@ function smarty_modifier_debug_print_var ($var, $depth = 0, $length = 40)
$results = htmlspecialchars('"' . $results . '"');
break;
-
+
case 'unknown type' :
default :
$results = strtr((string) $var, $_replace);
@@ -95,11 +96,9 @@ function smarty_modifier_debug_print_var ($var, $depth = 0, $length = 40)
$results = substr($results, 0, $length - 3) . '...';
}
}
-
+
$results = htmlspecialchars($results);
- }
+ }
return $results;
-}
-
-?> \ No newline at end of file
+}
diff --git a/library/Smarty/libs/plugins/modifier.escape.php b/library/Smarty/libs/plugins/modifier.escape.php
index 32d185fce..9fdb0702f 100644
--- a/library/Smarty/libs/plugins/modifier.escape.php
+++ b/library/Smarty/libs/plugins/modifier.escape.php
@@ -2,23 +2,24 @@
/**
* Smarty plugin
*
- * @package Smarty
+ * @package Smarty
* @subpackage PluginsModifier
*/
/**
* Smarty escape modifier plugin
- *
* Type: modifier<br>
* Name: escape<br>
* Purpose: escape string for output
*
- * @link http://www.smarty.net/manual/en/language.modifier.count.characters.php count_characters (Smarty online manual)
+ * @link http://www.smarty.net/docs/en/language.modifier.escape
* @author Monte Ohrt <monte at ohrt dot com>
+ *
* @param string $string input string
* @param string $esc_type escape type
* @param string $char_set character set, used for htmlspecialchars() or htmlentities()
* @param boolean $double_encode encode already encoded entitites again, used for htmlspecialchars() or htmlentities()
+ *
* @return string escaped input string
*/
function smarty_modifier_escape($string, $esc_type = 'html', $char_set = null, $double_encode = true)
@@ -27,7 +28,7 @@ function smarty_modifier_escape($string, $esc_type = 'html', $char_set = null, $
if ($_double_encode === null) {
$_double_encode = version_compare(PHP_VERSION, '5.2.3', '>=');
}
-
+
if (!$char_set) {
$char_set = Smarty::$_CHARSET;
}
@@ -39,13 +40,14 @@ function smarty_modifier_escape($string, $esc_type = 'html', $char_set = null, $
return htmlspecialchars($string, ENT_QUOTES, $char_set, $double_encode);
} else {
if ($double_encode) {
- // php <5.3.2 - only handle double encoding
+ // php <5.2.3 - only handle double encoding
return htmlspecialchars($string, ENT_QUOTES, $char_set);
} else {
- // php <5.3.2 - prevent double encoding
+ // php <5.2.3 - prevent double encoding
$string = preg_replace('!&(#?\w+);!', '%%%SMARTY_START%%%\\1%%%SMARTY_END%%%', $string);
$string = htmlspecialchars($string, ENT_QUOTES, $char_set);
$string = str_replace(array('%%%SMARTY_START%%%', '%%%SMARTY_END%%%'), array('&', ';'), $string);
+
return $string;
}
}
@@ -58,17 +60,18 @@ function smarty_modifier_escape($string, $esc_type = 'html', $char_set = null, $
$string = htmlspecialchars($string, ENT_QUOTES, $char_set, $double_encode);
} else {
if ($double_encode) {
- // php <5.3.2 - only handle double encoding
+ // php <5.2.3 - only handle double encoding
$string = htmlspecialchars($string, ENT_QUOTES, $char_set);
} else {
- // php <5.3.2 - prevent double encoding
+ // php <5.2.3 - prevent double encoding
$string = preg_replace('!&(#?\w+);!', '%%%SMARTY_START%%%\\1%%%SMARTY_END%%%', $string);
$string = htmlspecialchars($string, ENT_QUOTES, $char_set);
$string = str_replace(array('%%%SMARTY_START%%%', '%%%SMARTY_END%%%'), array('&', ';'), $string);
+
return $string;
}
}
-
+
// htmlentities() won't convert everything, so use mb_convert_encoding
return mb_convert_encoding($string, 'HTML-ENTITIES', $char_set);
}
@@ -83,6 +86,7 @@ function smarty_modifier_escape($string, $esc_type = 'html', $char_set = null, $
$string = preg_replace('!&(#?\w+);!', '%%%SMARTY_START%%%\\1%%%SMARTY_END%%%', $string);
$string = htmlentities($string, ENT_QUOTES, $char_set);
$string = str_replace(array('%%%SMARTY_START%%%', '%%%SMARTY_END%%%'), array('&', ';'), $string);
+
return $string;
}
}
@@ -102,9 +106,10 @@ function smarty_modifier_escape($string, $esc_type = 'html', $char_set = null, $
// Note that the UTF-8 encoded character ä will be represented as %c3%a4
$return = '';
$_length = strlen($string);
- for ($x = 0; $x < $_length; $x++) {
+ for ($x = 0; $x < $_length; $x ++) {
$return .= '%' . bin2hex($string[$x]);
}
+
return $return;
case 'hexentity':
@@ -115,13 +120,15 @@ function smarty_modifier_escape($string, $esc_type = 'html', $char_set = null, $
foreach (smarty_mb_to_unicode($string, Smarty::$_CHARSET) as $unicode) {
$return .= '&#x' . strtoupper(dechex($unicode)) . ';';
}
+
return $return;
}
// no MBString fallback
$_length = strlen($string);
- for ($x = 0; $x < $_length; $x++) {
+ for ($x = 0; $x < $_length; $x ++) {
$return .= '&#x' . bin2hex($string[$x]) . ';';
}
+
return $return;
case 'decentity':
@@ -132,13 +139,15 @@ function smarty_modifier_escape($string, $esc_type = 'html', $char_set = null, $
foreach (smarty_mb_to_unicode($string, Smarty::$_CHARSET) as $unicode) {
$return .= '&#' . $unicode . ';';
}
+
return $return;
}
// no MBString fallback
$_length = strlen($string);
- for ($x = 0; $x < $_length; $x++) {
+ for ($x = 0; $x < $_length; $x ++) {
$return .= '&#' . ord($string[$x]) . ';';
}
+
return $return;
case 'javascript':
@@ -148,6 +157,7 @@ function smarty_modifier_escape($string, $esc_type = 'html', $char_set = null, $
case 'mail':
if (Smarty::$_MBSTRING) {
require_once(SMARTY_PLUGINS_DIR . 'shared.mb_str_replace.php');
+
return smarty_mb_str_replace(array('@', '.'), array(' [AT] ', ' [DOT] '), $string);
}
// no MBString fallback
@@ -165,11 +175,12 @@ function smarty_modifier_escape($string, $esc_type = 'html', $char_set = null, $
$return .= chr($unicode);
}
}
+
return $return;
}
$_length = strlen($string);
- for ($_i = 0; $_i < $_length; $_i++) {
+ for ($_i = 0; $_i < $_length; $_i ++) {
$_ord = ord(substr($string, $_i, 1));
// non-standard char, escape it
if ($_ord >= 126) {
@@ -178,11 +189,10 @@ function smarty_modifier_escape($string, $esc_type = 'html', $char_set = null, $
$return .= substr($string, $_i, 1);
}
}
+
return $return;
default:
return $string;
}
}
-
-?> \ No newline at end of file
diff --git a/library/Smarty/libs/plugins/modifier.regex_replace.php b/library/Smarty/libs/plugins/modifier.regex_replace.php
index f9fd5fa53..abb1ff548 100644
--- a/library/Smarty/libs/plugins/modifier.regex_replace.php
+++ b/library/Smarty/libs/plugins/modifier.regex_replace.php
@@ -2,39 +2,42 @@
/**
* Smarty plugin
*
- * @package Smarty
+ * @package Smarty
* @subpackage PluginsModifier
*/
/**
* Smarty regex_replace modifier plugin
- *
* Type: modifier<br>
* Name: regex_replace<br>
* Purpose: regular expression search/replace
*
- * @link http://smarty.php.net/manual/en/language.modifier.regex.replace.php
+ * @link http://smarty.php.net/manual/en/language.modifier.regex.replace.php
* regex_replace (Smarty online manual)
- * @author Monte Ohrt <monte at ohrt dot com>
- * @param string $string input string
- * @param string|array $search regular expression(s) to search for
- * @param string|array $replace string(s) that should be replaced
+ * @author Monte Ohrt <monte at ohrt dot com>
+ *
+ * @param string $string input string
+ * @param string|array $search regular expression(s) to search for
+ * @param string|array $replace string(s) that should be replaced
+ *
* @return string
*/
function smarty_modifier_regex_replace($string, $search, $replace)
{
- if(is_array($search)) {
- foreach($search as $idx => $s) {
+ if (is_array($search)) {
+ foreach ($search as $idx => $s) {
$search[$idx] = _smarty_regex_replace_check($s);
}
} else {
$search = _smarty_regex_replace_check($search);
}
+
return preg_replace($search, $replace, $string);
}
/**
* @param string $search string(s) that should be replaced
+ *
* @return string
* @ignore
*/
@@ -42,14 +45,13 @@ function _smarty_regex_replace_check($search)
{
// null-byte injection detection
// anything behind the first null-byte is ignored
- if (($pos = strpos($search,"\0")) !== false) {
- $search = substr($search,0,$pos);
+ if (($pos = strpos($search, "\0")) !== false) {
+ $search = substr($search, 0, $pos);
}
// remove eval-modifier from $search
if (preg_match('!([a-zA-Z\s]+)$!s', $search, $match) && (strpos($match[1], 'e') !== false)) {
- $search = substr($search, 0, -strlen($match[1])) . preg_replace('![e\s]+!', '', $match[1]);
+ $search = substr($search, 0, - strlen($match[1])) . preg_replace('![e\s]+!', '', $match[1]);
}
+
return $search;
}
-
-?> \ No newline at end of file
diff --git a/library/Smarty/libs/plugins/modifier.replace.php b/library/Smarty/libs/plugins/modifier.replace.php
index 4d71a6e9b..aa5e8570b 100644
--- a/library/Smarty/libs/plugins/modifier.replace.php
+++ b/library/Smarty/libs/plugins/modifier.replace.php
@@ -1,33 +1,34 @@
<?php
/**
* Smarty plugin
- * @package Smarty
+ *
+ * @package Smarty
* @subpackage PluginsModifier
*/
/**
* Smarty replace modifier plugin
- *
* Type: modifier<br>
* Name: replace<br>
* Purpose: simple search/replace
- *
- * @link http://smarty.php.net/manual/en/language.modifier.replace.php replace (Smarty online manual)
- * @author Monte Ohrt <monte at ohrt dot com>
- * @author Uwe Tews
+ *
+ * @link http://smarty.php.net/manual/en/language.modifier.replace.php replace (Smarty online manual)
+ * @author Monte Ohrt <monte at ohrt dot com>
+ * @author Uwe Tews
+ *
* @param string $string input string
* @param string $search text to search for
* @param string $replace replacement text
- * @return string
+ *
+ * @return string
*/
function smarty_modifier_replace($string, $search, $replace)
{
if (Smarty::$_MBSTRING) {
require_once(SMARTY_PLUGINS_DIR . 'shared.mb_str_replace.php');
+
return smarty_mb_str_replace($search, $replace, $string);
}
-
- return str_replace($search, $replace, $string);
-}
-?> \ No newline at end of file
+ return str_replace($search, $replace, $string);
+}
diff --git a/library/Smarty/libs/plugins/modifier.spacify.php b/library/Smarty/libs/plugins/modifier.spacify.php
index a907232ff..e5c41ad8b 100644
--- a/library/Smarty/libs/plugins/modifier.spacify.php
+++ b/library/Smarty/libs/plugins/modifier.spacify.php
@@ -1,27 +1,27 @@
<?php
/**
* Smarty plugin
- * @package Smarty
+ *
+ * @package Smarty
* @subpackage PluginsModifier
*/
/**
* Smarty spacify modifier plugin
- *
* Type: modifier<br>
* Name: spacify<br>
* Purpose: add spaces between characters in a string
- *
- * @link http://smarty.php.net/manual/en/language.modifier.spacify.php spacify (Smarty online manual)
- * @author Monte Ohrt <monte at ohrt dot com>
+ *
+ * @link http://smarty.php.net/manual/en/language.modifier.spacify.php spacify (Smarty online manual)
+ * @author Monte Ohrt <monte at ohrt dot com>
+ *
* @param string $string input string
* @param string $spacify_char string to insert between characters.
+ *
* @return string
*/
function smarty_modifier_spacify($string, $spacify_char = ' ')
{
// well… what about charsets besides latin and UTF-8?
- return implode($spacify_char, preg_split('//' . Smarty::$_UTF8_MODIFIER, $string, -1, PREG_SPLIT_NO_EMPTY));
-}
-
-?> \ No newline at end of file
+ return implode($spacify_char, preg_split('//' . Smarty::$_UTF8_MODIFIER, $string, - 1, PREG_SPLIT_NO_EMPTY));
+}
diff --git a/library/Smarty/libs/plugins/modifier.truncate.php b/library/Smarty/libs/plugins/modifier.truncate.php
index 9a803ec99..fbe62e823 100644
--- a/library/Smarty/libs/plugins/modifier.truncate.php
+++ b/library/Smarty/libs/plugins/modifier.truncate.php
@@ -2,58 +2,63 @@
/**
* Smarty plugin
*
- * @package Smarty
+ * @package Smarty
* @subpackage PluginsModifier
*/
-
+
/**
* Smarty truncate modifier plugin
- *
* Type: modifier<br>
* Name: truncate<br>
* Purpose: Truncate a string to a certain length if necessary,
* optionally splitting in the middle of a word, and
* appending the $etc string or inserting $etc into the middle.
- *
- * @link http://smarty.php.net/manual/en/language.modifier.truncate.php truncate (Smarty online manual)
- * @author Monte Ohrt <monte at ohrt dot com>
+ *
+ * @link http://smarty.php.net/manual/en/language.modifier.truncate.php truncate (Smarty online manual)
+ * @author Monte Ohrt <monte at ohrt dot com>
+ *
* @param string $string input string
* @param integer $length length of truncated text
* @param string $etc end string
* @param boolean $break_words truncate at word boundary
* @param boolean $middle truncate in the middle of text
+ *
* @return string truncated string
*/
-function smarty_modifier_truncate($string, $length = 80, $etc = '...', $break_words = false, $middle = false) {
- if ($length == 0)
+function smarty_modifier_truncate($string, $length = 80, $etc = '...', $break_words = false, $middle = false)
+{
+ if ($length == 0) {
return '';
+ }
if (Smarty::$_MBSTRING) {
if (mb_strlen($string, Smarty::$_CHARSET) > $length) {
$length -= min($length, mb_strlen($etc, Smarty::$_CHARSET));
if (!$break_words && !$middle) {
$string = preg_replace('/\s+?(\S+)?$/' . Smarty::$_UTF8_MODIFIER, '', mb_substr($string, 0, $length + 1, Smarty::$_CHARSET));
- }
+ }
if (!$middle) {
return mb_substr($string, 0, $length, Smarty::$_CHARSET) . $etc;
}
+
return mb_substr($string, 0, $length / 2, Smarty::$_CHARSET) . $etc . mb_substr($string, - $length / 2, $length, Smarty::$_CHARSET);
}
+
return $string;
}
-
+
// no MBString fallback
if (isset($string[$length])) {
$length -= min($length, strlen($etc));
if (!$break_words && !$middle) {
$string = preg_replace('/\s+?(\S+)?$/', '', substr($string, 0, $length + 1));
- }
+ }
if (!$middle) {
return substr($string, 0, $length) . $etc;
}
+
return substr($string, 0, $length / 2) . $etc . substr($string, - $length / 2);
}
- return $string;
-}
-?> \ No newline at end of file
+ return $string;
+}
diff --git a/library/Smarty/libs/plugins/modifiercompiler.cat.php b/library/Smarty/libs/plugins/modifiercompiler.cat.php
index 1cfe6308a..db9d81fbf 100644
--- a/library/Smarty/libs/plugins/modifiercompiler.cat.php
+++ b/library/Smarty/libs/plugins/modifiercompiler.cat.php
@@ -1,30 +1,29 @@
-<?php
-/**
- * Smarty plugin
- *
- * @package Smarty
- * @subpackage PluginsModifierCompiler
- */
-
-/**
- * Smarty cat modifier plugin
- *
- * Type: modifier<br>
- * Name: cat<br>
- * Date: Feb 24, 2003<br>
- * Purpose: catenate a value to a variable<br>
- * Input: string to catenate<br>
- * Example: {$var|cat:"foo"}
- *
- * @link http://smarty.php.net/manual/en/language.modifier.cat.php cat
- * (Smarty online manual)
- * @author Uwe Tews
- * @param array $params parameters
- * @return string with compiled code
- */
-function smarty_modifiercompiler_cat($params, $compiler)
-{
- return '('.implode(').(', $params).')';
-}
-
-?> \ No newline at end of file
+<?php
+/**
+ * Smarty plugin
+ *
+ * @package Smarty
+ * @subpackage PluginsModifierCompiler
+ */
+
+/**
+ * Smarty cat modifier plugin
+ * Type: modifier<br>
+ * Name: cat<br>
+ * Date: Feb 24, 2003<br>
+ * Purpose: catenate a value to a variable<br>
+ * Input: string to catenate<br>
+ * Example: {$var|cat:"foo"}
+ *
+ * @link http://smarty.php.net/manual/en/language.modifier.cat.php cat
+ * (Smarty online manual)
+ * @author Uwe Tews
+ *
+ * @param array $params parameters
+ *
+ * @return string with compiled code
+ */
+function smarty_modifiercompiler_cat($params)
+{
+ return '(' . implode(').(', $params) . ')';
+}
diff --git a/library/Smarty/libs/plugins/modifiercompiler.count_characters.php b/library/Smarty/libs/plugins/modifiercompiler.count_characters.php
index 98e8efa0d..f8463d80a 100644
--- a/library/Smarty/libs/plugins/modifiercompiler.count_characters.php
+++ b/library/Smarty/libs/plugins/modifiercompiler.count_characters.php
@@ -1,33 +1,32 @@
-<?php
-/**
- * Smarty plugin
- *
- * @package Smarty
- * @subpackage PluginsModifierCompiler
- */
-
-/**
- * Smarty count_characters modifier plugin
- *
- * Type: modifier<br>
- * Name: count_characteres<br>
- * Purpose: count the number of characters in a text
- *
- * @link http://www.smarty.net/manual/en/language.modifier.count.characters.php count_characters (Smarty online manual)
- * @author Uwe Tews
- * @param array $params parameters
- * @return string with compiled code
- */
-function smarty_modifiercompiler_count_characters($params, $compiler)
-{
- if (!isset($params[1]) || $params[1] != 'true') {
- return 'preg_match_all(\'/[^\s]/' . Smarty::$_UTF8_MODIFIER . '\',' . $params[0] . ', $tmp)';
- }
- if (Smarty::$_MBSTRING) {
- return 'mb_strlen(' . $params[0] . ', \'' . addslashes(Smarty::$_CHARSET) . '\')';
- }
- // no MBString fallback
- return 'strlen(' . $params[0] . ')';
-}
-
-?> \ No newline at end of file
+<?php
+/**
+ * Smarty plugin
+ *
+ * @package Smarty
+ * @subpackage PluginsModifierCompiler
+ */
+
+/**
+ * Smarty count_characters modifier plugin
+ * Type: modifier<br>
+ * Name: count_characteres<br>
+ * Purpose: count the number of characters in a text
+ *
+ * @link http://www.smarty.net/manual/en/language.modifier.count.characters.php count_characters (Smarty online manual)
+ * @author Uwe Tews
+ *
+ * @param array $params parameters
+ *
+ * @return string with compiled code
+ */
+function smarty_modifiercompiler_count_characters($params)
+{
+ if (!isset($params[1]) || $params[1] != 'true') {
+ return 'preg_match_all(\'/[^\s]/' . Smarty::$_UTF8_MODIFIER . '\',' . $params[0] . ', $tmp)';
+ }
+ if (Smarty::$_MBSTRING) {
+ return 'mb_strlen(' . $params[0] . ', \'' . addslashes(Smarty::$_CHARSET) . '\')';
+ }
+ // no MBString fallback
+ return 'strlen(' . $params[0] . ')';
+}
diff --git a/library/Smarty/libs/plugins/modifiercompiler.count_paragraphs.php b/library/Smarty/libs/plugins/modifiercompiler.count_paragraphs.php
index 0e1b0af83..34f0bbb8a 100644
--- a/library/Smarty/libs/plugins/modifiercompiler.count_paragraphs.php
+++ b/library/Smarty/libs/plugins/modifiercompiler.count_paragraphs.php
@@ -1,28 +1,27 @@
-<?php
-/**
- * Smarty plugin
- *
- * @package Smarty
- * @subpackage PluginsModifierCompiler
- */
-
-/**
- * Smarty count_paragraphs modifier plugin
- *
- * Type: modifier<br>
- * Name: count_paragraphs<br>
- * Purpose: count the number of paragraphs in a text
- *
- * @link http://www.smarty.net/manual/en/language.modifier.count.paragraphs.php
- * count_paragraphs (Smarty online manual)
- * @author Uwe Tews
- * @param array $params parameters
- * @return string with compiled code
- */
-function smarty_modifiercompiler_count_paragraphs($params, $compiler)
-{
- // count \r or \n characters
- return '(preg_match_all(\'#[\r\n]+#\', ' . $params[0] . ', $tmp)+1)';
-}
-
-?> \ No newline at end of file
+<?php
+/**
+ * Smarty plugin
+ *
+ * @package Smarty
+ * @subpackage PluginsModifierCompiler
+ */
+
+/**
+ * Smarty count_paragraphs modifier plugin
+ * Type: modifier<br>
+ * Name: count_paragraphs<br>
+ * Purpose: count the number of paragraphs in a text
+ *
+ * @link http://www.smarty.net/manual/en/language.modifier.count.paragraphs.php
+ * count_paragraphs (Smarty online manual)
+ * @author Uwe Tews
+ *
+ * @param array $params parameters
+ *
+ * @return string with compiled code
+ */
+function smarty_modifiercompiler_count_paragraphs($params)
+{
+ // count \r or \n characters
+ return '(preg_match_all(\'#[\r\n]+#\', ' . $params[0] . ', $tmp)+1)';
+}
diff --git a/library/Smarty/libs/plugins/modifiercompiler.count_sentences.php b/library/Smarty/libs/plugins/modifiercompiler.count_sentences.php
index 2f517be96..f1ec56007 100644
--- a/library/Smarty/libs/plugins/modifiercompiler.count_sentences.php
+++ b/library/Smarty/libs/plugins/modifiercompiler.count_sentences.php
@@ -1,28 +1,27 @@
-<?php
-/**
- * Smarty plugin
- *
- * @package Smarty
- * @subpackage PluginsModifierCompiler
- */
-
-/**
- * Smarty count_sentences modifier plugin
- *
- * Type: modifier<br>
- * Name: count_sentences
- * Purpose: count the number of sentences in a text
- *
- * @link http://www.smarty.net/manual/en/language.modifier.count.paragraphs.php
- * count_sentences (Smarty online manual)
- * @author Uwe Tews
- * @param array $params parameters
- * @return string with compiled code
- */
-function smarty_modifiercompiler_count_sentences($params, $compiler)
-{
- // find periods, question marks, exclamation marks with a word before but not after.
- return 'preg_match_all("#\w[\.\?\!](\W|$)#S' . Smarty::$_UTF8_MODIFIER . '", ' . $params[0] . ', $tmp)';
-}
-
-?> \ No newline at end of file
+<?php
+/**
+ * Smarty plugin
+ *
+ * @package Smarty
+ * @subpackage PluginsModifierCompiler
+ */
+
+/**
+ * Smarty count_sentences modifier plugin
+ * Type: modifier<br>
+ * Name: count_sentences
+ * Purpose: count the number of sentences in a text
+ *
+ * @link http://www.smarty.net/manual/en/language.modifier.count.paragraphs.php
+ * count_sentences (Smarty online manual)
+ * @author Uwe Tews
+ *
+ * @param array $params parameters
+ *
+ * @return string with compiled code
+ */
+function smarty_modifiercompiler_count_sentences($params)
+{
+ // find periods, question marks, exclamation marks with a word before but not after.
+ return 'preg_match_all("#\w[\.\?\!](\W|$)#S' . Smarty::$_UTF8_MODIFIER . '", ' . $params[0] . ', $tmp)';
+}
diff --git a/library/Smarty/libs/plugins/modifiercompiler.count_words.php b/library/Smarty/libs/plugins/modifiercompiler.count_words.php
index e05738c01..8b4330f1e 100644
--- a/library/Smarty/libs/plugins/modifiercompiler.count_words.php
+++ b/library/Smarty/libs/plugins/modifiercompiler.count_words.php
@@ -1,32 +1,31 @@
-<?php
-/**
- * Smarty plugin
- *
- * @package Smarty
- * @subpackage PluginsModifierCompiler
- */
-
-/**
- * Smarty count_words modifier plugin
- *
- * Type: modifier<br>
- * Name: count_words<br>
- * Purpose: count the number of words in a text
- *
- * @link http://www.smarty.net/manual/en/language.modifier.count.words.php count_words (Smarty online manual)
- * @author Uwe Tews
- * @param array $params parameters
- * @return string with compiled code
-*/
-function smarty_modifiercompiler_count_words($params, $compiler)
-{
- if (Smarty::$_MBSTRING) {
- // return 'preg_match_all(\'#[\w\pL]+#' . Smarty::$_UTF8_MODIFIER . '\', ' . $params[0] . ', $tmp)';
- // expression taken from http://de.php.net/manual/en/function.str-word-count.php#85592
- return 'preg_match_all(\'/\p{L}[\p{L}\p{Mn}\p{Pd}\\\'\x{2019}]*/' . Smarty::$_UTF8_MODIFIER . '\', ' . $params[0] . ', $tmp)';
- }
- // no MBString fallback
- return 'str_word_count(' . $params[0] . ')';
-}
-
-?> \ No newline at end of file
+<?php
+/**
+ * Smarty plugin
+ *
+ * @package Smarty
+ * @subpackage PluginsModifierCompiler
+ */
+
+/**
+ * Smarty count_words modifier plugin
+ * Type: modifier<br>
+ * Name: count_words<br>
+ * Purpose: count the number of words in a text
+ *
+ * @link http://www.smarty.net/manual/en/language.modifier.count.words.php count_words (Smarty online manual)
+ * @author Uwe Tews
+ *
+ * @param array $params parameters
+ *
+ * @return string with compiled code
+ */
+function smarty_modifiercompiler_count_words($params)
+{
+ if (Smarty::$_MBSTRING) {
+ // return 'preg_match_all(\'#[\w\pL]+#' . Smarty::$_UTF8_MODIFIER . '\', ' . $params[0] . ', $tmp)';
+ // expression taken from http://de.php.net/manual/en/function.str-word-count.php#85592
+ return 'preg_match_all(\'/\p{L}[\p{L}\p{Mn}\p{Pd}\\\'\x{2019}]*/' . Smarty::$_UTF8_MODIFIER . '\', ' . $params[0] . ', $tmp)';
+ }
+ // no MBString fallback
+ return 'str_word_count(' . $params[0] . ')';
+}
diff --git a/library/Smarty/libs/plugins/modifiercompiler.default.php b/library/Smarty/libs/plugins/modifiercompiler.default.php
index 4f831a589..fe777623e 100644
--- a/library/Smarty/libs/plugins/modifiercompiler.default.php
+++ b/library/Smarty/libs/plugins/modifiercompiler.default.php
@@ -1,35 +1,35 @@
-<?php
-/**
- * Smarty plugin
- *
- * @package Smarty
- * @subpackage PluginsModifierCompiler
- */
-
-/**
- * Smarty default modifier plugin
- *
- * Type: modifier<br>
- * Name: default<br>
- * Purpose: designate default value for empty variables
- *
- * @link http://www.smarty.net/manual/en/language.modifier.default.php default (Smarty online manual)
- * @author Uwe Tews
- * @param array $params parameters
- * @return string with compiled code
- */
-function smarty_modifiercompiler_default ($params, $compiler)
-{
- $output = $params[0];
- if (!isset($params[1])) {
- $params[1] = "''";
- }
-
- array_shift($params);
- foreach ($params as $param) {
- $output = '(($tmp = @' . $output . ')===null||$tmp===\'\' ? ' . $param . ' : $tmp)';
- }
- return $output;
-}
-
-?> \ No newline at end of file
+<?php
+/**
+ * Smarty plugin
+ *
+ * @package Smarty
+ * @subpackage PluginsModifierCompiler
+ */
+
+/**
+ * Smarty default modifier plugin
+ * Type: modifier<br>
+ * Name: default<br>
+ * Purpose: designate default value for empty variables
+ *
+ * @link http://www.smarty.net/manual/en/language.modifier.default.php default (Smarty online manual)
+ * @author Uwe Tews
+ *
+ * @param array $params parameters
+ *
+ * @return string with compiled code
+ */
+function smarty_modifiercompiler_default($params)
+{
+ $output = $params[0];
+ if (!isset($params[1])) {
+ $params[1] = "''";
+ }
+
+ array_shift($params);
+ foreach ($params as $param) {
+ $output = '(($tmp = @' . $output . ')===null||$tmp===\'\' ? ' . $param . ' : $tmp)';
+ }
+
+ return $output;
+}
diff --git a/library/Smarty/libs/plugins/modifiercompiler.escape.php b/library/Smarty/libs/plugins/modifiercompiler.escape.php
index 48b74d140..7e848aaec 100644
--- a/library/Smarty/libs/plugins/modifiercompiler.escape.php
+++ b/library/Smarty/libs/plugins/modifiercompiler.escape.php
@@ -1,125 +1,126 @@
-<?php
-/**
- * Smarty plugin
- *
- * @package Smarty
- * @subpackage PluginsModifierCompiler
- */
-
-/**
- * @ignore
- */
-require_once( SMARTY_PLUGINS_DIR .'shared.literal_compiler_param.php' );
-
-/**
- * Smarty escape modifier plugin
- *
- * Type: modifier<br>
- * Name: escape<br>
- * Purpose: escape string for output
- *
- * @link http://www.smarty.net/docsv2/en/language.modifier.escape count_characters (Smarty online manual)
- * @author Rodney Rehm
- * @param array $params parameters
- * @return string with compiled code
- */
-function smarty_modifiercompiler_escape($params, $compiler)
-{
- static $_double_encode = null;
- if ($_double_encode === null) {
- $_double_encode = version_compare(PHP_VERSION, '5.2.3', '>=');
- }
-
- try {
- $esc_type = smarty_literal_compiler_param($params, 1, 'html');
- $char_set = smarty_literal_compiler_param($params, 2, Smarty::$_CHARSET);
- $double_encode = smarty_literal_compiler_param($params, 3, true);
-
- if (!$char_set) {
- $char_set = Smarty::$_CHARSET;
- }
-
- switch ($esc_type) {
- case 'html':
- if ($_double_encode) {
- return 'htmlspecialchars('
- . $params[0] .', ENT_QUOTES, '
- . var_export($char_set, true) . ', '
- . var_export($double_encode, true) . ')';
- } else if ($double_encode) {
- return 'htmlspecialchars('
- . $params[0] .', ENT_QUOTES, '
- . var_export($char_set, true) . ')';
- } else {
- // fall back to modifier.escape.php
- }
-
- case 'htmlall':
- if (Smarty::$_MBSTRING) {
- if ($_double_encode) {
- // php >=5.3.2 - go native
- return 'mb_convert_encoding(htmlspecialchars('
- . $params[0] .', ENT_QUOTES, '
- . var_export($char_set, true) . ', '
- . var_export($double_encode, true)
- . '), "HTML-ENTITIES", '
- . var_export($char_set, true) . ')';
- } else if ($double_encode) {
- // php <5.3.2 - only handle double encoding
- return 'mb_convert_encoding(htmlspecialchars('
- . $params[0] .', ENT_QUOTES, '
- . var_export($char_set, true)
- . '), "HTML-ENTITIES", '
- . var_export($char_set, true) . ')';
- } else {
- // fall back to modifier.escape.php
- }
- }
-
- // no MBString fallback
- if ($_double_encode) {
- // php >=5.3.2 - go native
- return 'htmlentities('
- . $params[0] .', ENT_QUOTES, '
- . var_export($char_set, true) . ', '
- . var_export($double_encode, true) . ')';
- } else if ($double_encode) {
- // php <5.3.2 - only handle double encoding
- return 'htmlentities('
- . $params[0] .', ENT_QUOTES, '
- . var_export($char_set, true) . ')';
- } else {
- // fall back to modifier.escape.php
- }
-
- case 'url':
- return 'rawurlencode(' . $params[0] . ')';
-
- case 'urlpathinfo':
- return 'str_replace("%2F", "/", rawurlencode(' . $params[0] . '))';
-
- case 'quotes':
- // escape unescaped single quotes
- return 'preg_replace("%(?<!\\\\\\\\)\'%", "\\\'",' . $params[0] . ')';
-
- case 'javascript':
- // escape quotes and backslashes, newlines, etc.
- return 'strtr(' . $params[0] . ', array("\\\\" => "\\\\\\\\", "\'" => "\\\\\'", "\"" => "\\\\\"", "\\r" => "\\\\r", "\\n" => "\\\n", "</" => "<\/" ))';
-
- }
- } catch(SmartyException $e) {
- // pass through to regular plugin fallback
- }
-
- // could not optimize |escape call, so fallback to regular plugin
- if ($compiler->tag_nocache | $compiler->nocache) {
- $compiler->template->required_plugins['nocache']['escape']['modifier']['file'] = SMARTY_PLUGINS_DIR .'modifier.escape.php';
- $compiler->template->required_plugins['nocache']['escape']['modifier']['function'] = 'smarty_modifier_escape';
- } else {
- $compiler->template->required_plugins['compiled']['escape']['modifier']['file'] = SMARTY_PLUGINS_DIR .'modifier.escape.php';
- $compiler->template->required_plugins['compiled']['escape']['modifier']['function'] = 'smarty_modifier_escape';
- }
- return 'smarty_modifier_escape(' . join( ', ', $params ) . ')';
-}
-
-?> \ No newline at end of file
+<?php
+/**
+ * Smarty plugin
+ *
+ * @package Smarty
+ * @subpackage PluginsModifierCompiler
+ */
+
+/**
+ * @ignore
+ */
+require_once(SMARTY_PLUGINS_DIR . 'shared.literal_compiler_param.php');
+
+/**
+ * Smarty escape modifier plugin
+ * Type: modifier<br>
+ * Name: escape<br>
+ * Purpose: escape string for output
+ *
+ * @link http://www.smarty.net/docsv2/en/language.modifier.escape count_characters (Smarty online manual)
+ * @author Rodney Rehm
+ *
+ * @param array $params parameters
+ * @param $compiler
+ *
+ * @return string with compiled code
+ */
+function smarty_modifiercompiler_escape($params, $compiler)
+{
+ static $_double_encode = null;
+ if ($_double_encode === null) {
+ $_double_encode = version_compare(PHP_VERSION, '5.2.3', '>=');
+ }
+
+ try {
+ $esc_type = smarty_literal_compiler_param($params, 1, 'html');
+ $char_set = smarty_literal_compiler_param($params, 2, Smarty::$_CHARSET);
+ $double_encode = smarty_literal_compiler_param($params, 3, true);
+
+ if (!$char_set) {
+ $char_set = Smarty::$_CHARSET;
+ }
+
+ switch ($esc_type) {
+ case 'html':
+ if ($_double_encode) {
+ return 'htmlspecialchars('
+ . $params[0] . ', ENT_QUOTES, '
+ . var_export($char_set, true) . ', '
+ . var_export($double_encode, true) . ')';
+ } elseif ($double_encode) {
+ return 'htmlspecialchars('
+ . $params[0] . ', ENT_QUOTES, '
+ . var_export($char_set, true) . ')';
+ } else {
+ // fall back to modifier.escape.php
+ }
+
+ case 'htmlall':
+ if (Smarty::$_MBSTRING) {
+ if ($_double_encode) {
+ // php >=5.2.3 - go native
+ return 'mb_convert_encoding(htmlspecialchars('
+ . $params[0] . ', ENT_QUOTES, '
+ . var_export($char_set, true) . ', '
+ . var_export($double_encode, true)
+ . '), "HTML-ENTITIES", '
+ . var_export($char_set, true) . ')';
+ } elseif ($double_encode) {
+ // php <5.2.3 - only handle double encoding
+ return 'mb_convert_encoding(htmlspecialchars('
+ . $params[0] . ', ENT_QUOTES, '
+ . var_export($char_set, true)
+ . '), "HTML-ENTITIES", '
+ . var_export($char_set, true) . ')';
+ } else {
+ // fall back to modifier.escape.php
+ }
+ }
+
+ // no MBString fallback
+ if ($_double_encode) {
+ // php >=5.2.3 - go native
+ return 'htmlentities('
+ . $params[0] . ', ENT_QUOTES, '
+ . var_export($char_set, true) . ', '
+ . var_export($double_encode, true) . ')';
+ } elseif ($double_encode) {
+ // php <5.2.3 - only handle double encoding
+ return 'htmlentities('
+ . $params[0] . ', ENT_QUOTES, '
+ . var_export($char_set, true) . ')';
+ } else {
+ // fall back to modifier.escape.php
+ }
+
+ case 'url':
+ return 'rawurlencode(' . $params[0] . ')';
+
+ case 'urlpathinfo':
+ return 'str_replace("%2F", "/", rawurlencode(' . $params[0] . '))';
+
+ case 'quotes':
+ // escape unescaped single quotes
+ return 'preg_replace("%(?<!\\\\\\\\)\'%", "\\\'",' . $params[0] . ')';
+
+ case 'javascript':
+ // escape quotes and backslashes, newlines, etc.
+ return 'strtr(' . $params[0] . ', array("\\\\" => "\\\\\\\\", "\'" => "\\\\\'", "\"" => "\\\\\"", "\\r" => "\\\\r", "\\n" => "\\\n", "</" => "<\/" ))';
+ }
+ }
+ catch (SmartyException $e) {
+ // pass through to regular plugin fallback
+ }
+
+ // could not optimize |escape call, so fallback to regular plugin
+ if ($compiler->template->caching && ($compiler->tag_nocache | $compiler->nocache)) {
+ $compiler->template->required_plugins['nocache']['escape']['modifier']['file'] = SMARTY_PLUGINS_DIR . 'modifier.escape.php';
+ $compiler->template->required_plugins['nocache']['escape']['modifier']['function'] = 'smarty_modifier_escape';
+ } else {
+ $compiler->template->required_plugins['compiled']['escape']['modifier']['file'] = SMARTY_PLUGINS_DIR . 'modifier.escape.php';
+ $compiler->template->required_plugins['compiled']['escape']['modifier']['function'] = 'smarty_modifier_escape';
+ }
+
+ return 'smarty_modifier_escape(' . join(', ', $params) . ')';
+}
diff --git a/library/Smarty/libs/plugins/modifiercompiler.from_charset.php b/library/Smarty/libs/plugins/modifiercompiler.from_charset.php
index 93b568a5a..dab43e9c3 100644
--- a/library/Smarty/libs/plugins/modifiercompiler.from_charset.php
+++ b/library/Smarty/libs/plugins/modifiercompiler.from_charset.php
@@ -1,34 +1,33 @@
-<?php
-/**
- * Smarty plugin
- *
- * @package Smarty
- * @subpackage PluginsModifierCompiler
- */
-
-/**
- * Smarty from_charset modifier plugin
- *
- * Type: modifier<br>
- * Name: from_charset<br>
- * Purpose: convert character encoding from $charset to internal encoding
- *
- * @author Rodney Rehm
- * @param array $params parameters
- * @return string with compiled code
- */
-function smarty_modifiercompiler_from_charset($params, $compiler)
-{
- if (!Smarty::$_MBSTRING) {
- // FIXME: (rodneyrehm) shouldn't this throw an error?
- return $params[0];
- }
-
- if (!isset($params[1])) {
- $params[1] = '"ISO-8859-1"';
- }
-
- return 'mb_convert_encoding(' . $params[0] . ', "' . addslashes(Smarty::$_CHARSET) . '", ' . $params[1] . ')';
-}
-
-?> \ No newline at end of file
+<?php
+/**
+ * Smarty plugin
+ *
+ * @package Smarty
+ * @subpackage PluginsModifierCompiler
+ */
+
+/**
+ * Smarty from_charset modifier plugin
+ * Type: modifier<br>
+ * Name: from_charset<br>
+ * Purpose: convert character encoding from $charset to internal encoding
+ *
+ * @author Rodney Rehm
+ *
+ * @param array $params parameters
+ *
+ * @return string with compiled code
+ */
+function smarty_modifiercompiler_from_charset($params)
+{
+ if (!Smarty::$_MBSTRING) {
+ // FIXME: (rodneyrehm) shouldn't this throw an error?
+ return $params[0];
+ }
+
+ if (!isset($params[1])) {
+ $params[1] = '"ISO-8859-1"';
+ }
+
+ return 'mb_convert_encoding(' . $params[0] . ', "' . addslashes(Smarty::$_CHARSET) . '", ' . $params[1] . ')';
+}
diff --git a/library/Smarty/libs/plugins/modifiercompiler.indent.php b/library/Smarty/libs/plugins/modifiercompiler.indent.php
index 020c4fdb3..e3ca20821 100644
--- a/library/Smarty/libs/plugins/modifiercompiler.indent.php
+++ b/library/Smarty/libs/plugins/modifiercompiler.indent.php
@@ -1,32 +1,33 @@
-<?php
-/**
- * Smarty plugin
- * @package Smarty
- * @subpackage PluginsModifierCompiler
- */
-
-/**
- * Smarty indent modifier plugin
- *
- * Type: modifier<br>
- * Name: indent<br>
- * Purpose: indent lines of text
- *
- * @link http://www.smarty.net/manual/en/language.modifier.indent.php indent (Smarty online manual)
- * @author Uwe Tews
- * @param array $params parameters
- * @return string with compiled code
- */
-
-function smarty_modifiercompiler_indent($params, $compiler)
-{
- if (!isset($params[1])) {
- $params[1] = 4;
- }
- if (!isset($params[2])) {
- $params[2] = "' '";
- }
- return 'preg_replace(\'!^!m\',str_repeat(' . $params[2] . ',' . $params[1] . '),' . $params[0] . ')';
-}
-
-?> \ No newline at end of file
+<?php
+/**
+ * Smarty plugin
+ *
+ * @package Smarty
+ * @subpackage PluginsModifierCompiler
+ */
+
+/**
+ * Smarty indent modifier plugin
+ * Type: modifier<br>
+ * Name: indent<br>
+ * Purpose: indent lines of text
+ *
+ * @link http://www.smarty.net/manual/en/language.modifier.indent.php indent (Smarty online manual)
+ * @author Uwe Tews
+ *
+ * @param array $params parameters
+ *
+ * @return string with compiled code
+ */
+
+function smarty_modifiercompiler_indent($params)
+{
+ if (!isset($params[1])) {
+ $params[1] = 4;
+ }
+ if (!isset($params[2])) {
+ $params[2] = "' '";
+ }
+
+ return 'preg_replace(\'!^!m\',str_repeat(' . $params[2] . ',' . $params[1] . '),' . $params[0] . ')';
+}
diff --git a/library/Smarty/libs/plugins/modifiercompiler.lower.php b/library/Smarty/libs/plugins/modifiercompiler.lower.php
index 1845cc1d2..1d255f371 100644
--- a/library/Smarty/libs/plugins/modifiercompiler.lower.php
+++ b/library/Smarty/libs/plugins/modifiercompiler.lower.php
@@ -1,31 +1,31 @@
-<?php
-/**
- * Smarty plugin
- * @package Smarty
- * @subpackage PluginsModifierCompiler
- */
-
-/**
- * Smarty lower modifier plugin
- *
- * Type: modifier<br>
- * Name: lower<br>
- * Purpose: convert string to lowercase
- *
- * @link http://www.smarty.net/manual/en/language.modifier.lower.php lower (Smarty online manual)
- * @author Monte Ohrt <monte at ohrt dot com>
- * @author Uwe Tews
- * @param array $params parameters
- * @return string with compiled code
- */
-
-function smarty_modifiercompiler_lower($params, $compiler)
-{
- if (Smarty::$_MBSTRING) {
- return 'mb_strtolower(' . $params[0] . ', \'' . addslashes(Smarty::$_CHARSET) . '\')' ;
- }
- // no MBString fallback
- return 'strtolower(' . $params[0] . ')';
-}
-
-?> \ No newline at end of file
+<?php
+/**
+ * Smarty plugin
+ *
+ * @package Smarty
+ * @subpackage PluginsModifierCompiler
+ */
+
+/**
+ * Smarty lower modifier plugin
+ * Type: modifier<br>
+ * Name: lower<br>
+ * Purpose: convert string to lowercase
+ *
+ * @link http://www.smarty.net/manual/en/language.modifier.lower.php lower (Smarty online manual)
+ * @author Monte Ohrt <monte at ohrt dot com>
+ * @author Uwe Tews
+ *
+ * @param array $params parameters
+ *
+ * @return string with compiled code
+ */
+
+function smarty_modifiercompiler_lower($params)
+{
+ if (Smarty::$_MBSTRING) {
+ return 'mb_strtolower(' . $params[0] . ', \'' . addslashes(Smarty::$_CHARSET) . '\')';
+ }
+ // no MBString fallback
+ return 'strtolower(' . $params[0] . ')';
+}
diff --git a/library/Smarty/libs/plugins/modifiercompiler.noprint.php b/library/Smarty/libs/plugins/modifiercompiler.noprint.php
index 3ca26571a..4906908b4 100644
--- a/library/Smarty/libs/plugins/modifiercompiler.noprint.php
+++ b/library/Smarty/libs/plugins/modifiercompiler.noprint.php
@@ -1,25 +1,21 @@
-<?php
-/**
- * Smarty plugin
- *
- * @package Smarty
- * @subpackage PluginsModifierCompiler
- */
-
-/**
- * Smarty noprint modifier plugin
- *
- * Type: modifier<br>
- * Name: noprint<br>
- * Purpose: return an empty string
- *
- * @author Uwe Tews
- * @param array $params parameters
- * @return string with compiled code
- */
-function smarty_modifiercompiler_noprint($params, $compiler)
-{
- return "''";
-}
-
-?> \ No newline at end of file
+<?php
+/**
+ * Smarty plugin
+ *
+ * @package Smarty
+ * @subpackage PluginsModifierCompiler
+ */
+
+/**
+ * Smarty noprint modifier plugin
+ * Type: modifier<br>
+ * Name: noprint<br>
+ * Purpose: return an empty string
+ *
+ * @author Uwe Tews
+ * @return string with compiled code
+ */
+function smarty_modifiercompiler_noprint()
+{
+ return "''";
+}
diff --git a/library/Smarty/libs/plugins/modifiercompiler.string_format.php b/library/Smarty/libs/plugins/modifiercompiler.string_format.php
index 83345977b..71cdf2819 100644
--- a/library/Smarty/libs/plugins/modifiercompiler.string_format.php
+++ b/library/Smarty/libs/plugins/modifiercompiler.string_format.php
@@ -1,26 +1,25 @@
-<?php
-/**
- * Smarty plugin
- *
- * @package Smarty
- * @subpackage PluginsModifierCompiler
- */
-
-/**
- * Smarty string_format modifier plugin
- *
- * Type: modifier<br>
- * Name: string_format<br>
- * Purpose: format strings via sprintf
- *
- * @link http://www.smarty.net/manual/en/language.modifier.string.format.php string_format (Smarty online manual)
- * @author Uwe Tews
- * @param array $params parameters
- * @return string with compiled code
- */
-function smarty_modifiercompiler_string_format($params, $compiler)
-{
- return 'sprintf(' . $params[1] . ',' . $params[0] . ')';
-}
-
-?> \ No newline at end of file
+<?php
+/**
+ * Smarty plugin
+ *
+ * @package Smarty
+ * @subpackage PluginsModifierCompiler
+ */
+
+/**
+ * Smarty string_format modifier plugin
+ * Type: modifier<br>
+ * Name: string_format<br>
+ * Purpose: format strings via sprintf
+ *
+ * @link http://www.smarty.net/manual/en/language.modifier.string.format.php string_format (Smarty online manual)
+ * @author Uwe Tews
+ *
+ * @param array $params parameters
+ *
+ * @return string with compiled code
+ */
+function smarty_modifiercompiler_string_format($params)
+{
+ return 'sprintf(' . $params[1] . ',' . $params[0] . ')';
+}
diff --git a/library/Smarty/libs/plugins/modifiercompiler.strip.php b/library/Smarty/libs/plugins/modifiercompiler.strip.php
index f1d5db045..fcd6cbaea 100644
--- a/library/Smarty/libs/plugins/modifiercompiler.strip.php
+++ b/library/Smarty/libs/plugins/modifiercompiler.strip.php
@@ -1,33 +1,33 @@
-<?php
-/**
- * Smarty plugin
- *
- * @package Smarty
- * @subpackage PluginsModifierCompiler
- */
-
-/**
- * Smarty strip modifier plugin
- *
- * Type: modifier<br>
- * Name: strip<br>
- * Purpose: Replace all repeated spaces, newlines, tabs
- * with a single space or supplied replacement string.<br>
- * Example: {$var|strip} {$var|strip:"&nbsp;"}<br>
- * Date: September 25th, 2002
- *
- * @link http://www.smarty.net/manual/en/language.modifier.strip.php strip (Smarty online manual)
- * @author Uwe Tews
- * @param array $params parameters
- * @return string with compiled code
- */
-
-function smarty_modifiercompiler_strip($params, $compiler)
-{
- if (!isset($params[1])) {
- $params[1] = "' '";
- }
- return "preg_replace('!\s+!" . Smarty::$_UTF8_MODIFIER . "', {$params[1]},{$params[0]})";
-}
-
-?> \ No newline at end of file
+<?php
+/**
+ * Smarty plugin
+ *
+ * @package Smarty
+ * @subpackage PluginsModifierCompiler
+ */
+
+/**
+ * Smarty strip modifier plugin
+ * Type: modifier<br>
+ * Name: strip<br>
+ * Purpose: Replace all repeated spaces, newlines, tabs
+ * with a single space or supplied replacement string.<br>
+ * Example: {$var|strip} {$var|strip:"&nbsp;"}<br>
+ * Date: September 25th, 2002
+ *
+ * @link http://www.smarty.net/manual/en/language.modifier.strip.php strip (Smarty online manual)
+ * @author Uwe Tews
+ *
+ * @param array $params parameters
+ *
+ * @return string with compiled code
+ */
+
+function smarty_modifiercompiler_strip($params)
+{
+ if (!isset($params[1])) {
+ $params[1] = "' '";
+ }
+
+ return "preg_replace('!\s+!" . Smarty::$_UTF8_MODIFIER . "', {$params[1]},{$params[0]})";
+}
diff --git a/library/Smarty/libs/plugins/modifiercompiler.strip_tags.php b/library/Smarty/libs/plugins/modifiercompiler.strip_tags.php
index 296a3a2da..3e6e13048 100644
--- a/library/Smarty/libs/plugins/modifiercompiler.strip_tags.php
+++ b/library/Smarty/libs/plugins/modifiercompiler.strip_tags.php
@@ -1,33 +1,29 @@
-<?php
-/**
- * Smarty plugin
- *
- * @package Smarty
- * @subpackage PluginsModifierCompiler
- */
-
-/**
- * Smarty strip_tags modifier plugin
- *
- * Type: modifier<br>
- * Name: strip_tags<br>
- * Purpose: strip html tags from text
- *
- * @link http://www.smarty.net/manual/en/language.modifier.strip.tags.php strip_tags (Smarty online manual)
- * @author Uwe Tews
- * @param array $params parameters
- * @return string with compiled code
- */
-function smarty_modifiercompiler_strip_tags($params, $compiler)
-{
- if (!isset($params[1])) {
- $params[1] = true;
- }
- if ($params[1] === true) {
- return "preg_replace('!<[^>]*?>!', ' ', {$params[0]})";
- } else {
- return 'strip_tags(' . $params[0] . ')';
- }
-}
-
-?> \ No newline at end of file
+<?php
+/**
+ * Smarty plugin
+ *
+ * @package Smarty
+ * @subpackage PluginsModifierCompiler
+ */
+
+/**
+ * Smarty strip_tags modifier plugin
+ * Type: modifier<br>
+ * Name: strip_tags<br>
+ * Purpose: strip html tags from text
+ *
+ * @link http://www.smarty.net/manual/en/language.modifier.strip.tags.php strip_tags (Smarty online manual)
+ * @author Uwe Tews
+ *
+ * @param array $params parameters
+ *
+ * @return string with compiled code
+ */
+function smarty_modifiercompiler_strip_tags($params)
+{
+ if (!isset($params[1]) || $params[1] === true || trim($params[1], '"') == 'true') {
+ return "preg_replace('!<[^>]*?>!', ' ', {$params[0]})";
+ } else {
+ return 'strip_tags(' . $params[0] . ')';
+ }
+}
diff --git a/library/Smarty/libs/plugins/modifiercompiler.to_charset.php b/library/Smarty/libs/plugins/modifiercompiler.to_charset.php
index f5cdf455f..9122d8bbb 100644
--- a/library/Smarty/libs/plugins/modifiercompiler.to_charset.php
+++ b/library/Smarty/libs/plugins/modifiercompiler.to_charset.php
@@ -1,34 +1,33 @@
-<?php
-/**
- * Smarty plugin
- *
- * @package Smarty
- * @subpackage PluginsModifierCompiler
- */
-
-/**
- * Smarty to_charset modifier plugin
- *
- * Type: modifier<br>
- * Name: to_charset<br>
- * Purpose: convert character encoding from internal encoding to $charset
- *
- * @author Rodney Rehm
- * @param array $params parameters
- * @return string with compiled code
- */
-function smarty_modifiercompiler_to_charset($params, $compiler)
-{
- if (!Smarty::$_MBSTRING) {
- // FIXME: (rodneyrehm) shouldn't this throw an error?
- return $params[0];
- }
-
- if (!isset($params[1])) {
- $params[1] = '"ISO-8859-1"';
- }
-
- return 'mb_convert_encoding(' . $params[0] . ', ' . $params[1] . ', "' . addslashes(Smarty::$_CHARSET) . '")';
-}
-
-?> \ No newline at end of file
+<?php
+/**
+ * Smarty plugin
+ *
+ * @package Smarty
+ * @subpackage PluginsModifierCompiler
+ */
+
+/**
+ * Smarty to_charset modifier plugin
+ * Type: modifier<br>
+ * Name: to_charset<br>
+ * Purpose: convert character encoding from internal encoding to $charset
+ *
+ * @author Rodney Rehm
+ *
+ * @param array $params parameters
+ *
+ * @return string with compiled code
+ */
+function smarty_modifiercompiler_to_charset($params)
+{
+ if (!Smarty::$_MBSTRING) {
+ // FIXME: (rodneyrehm) shouldn't this throw an error?
+ return $params[0];
+ }
+
+ if (!isset($params[1])) {
+ $params[1] = '"ISO-8859-1"';
+ }
+
+ return 'mb_convert_encoding(' . $params[0] . ', ' . $params[1] . ', "' . addslashes(Smarty::$_CHARSET) . '")';
+}
diff --git a/library/Smarty/libs/plugins/modifiercompiler.unescape.php b/library/Smarty/libs/plugins/modifiercompiler.unescape.php
index 4321ff18d..3b17ea2e1 100644
--- a/library/Smarty/libs/plugins/modifiercompiler.unescape.php
+++ b/library/Smarty/libs/plugins/modifiercompiler.unescape.php
@@ -1,51 +1,50 @@
-<?php
-/**
- * Smarty plugin
- *
- * @package Smarty
- * @subpackage PluginsModifierCompiler
- */
-
-/**
- * Smarty unescape modifier plugin
- *
- * Type: modifier<br>
- * Name: unescape<br>
- * Purpose: unescape html entities
- *
- * @author Rodney Rehm
- * @param array $params parameters
- * @return string with compiled code
- */
-function smarty_modifiercompiler_unescape($params, $compiler)
-{
- if (!isset($params[1])) {
- $params[1] = 'html';
- }
- if (!isset($params[2])) {
- $params[2] = '\'' . addslashes(Smarty::$_CHARSET) . '\'';
- } else {
- $params[2] = "'" . $params[2] . "'";
- }
-
- switch (trim($params[1], '"\'')) {
- case 'entity':
- case 'htmlall':
- if (Smarty::$_MBSTRING) {
- return 'mb_convert_encoding(' . $params[0] . ', ' . $params[2] . ', \'HTML-ENTITIES\')';
- }
-
- return 'html_entity_decode(' . $params[0] . ', ENT_NOQUOTES, ' . $params[2] . ')';
-
- case 'html':
- return 'htmlspecialchars_decode(' . $params[0] . ', ENT_QUOTES)';
-
- case 'url':
- return 'rawurldecode(' . $params[0] . ')';
-
- default:
- return $params[0];
- }
-}
-
-?> \ No newline at end of file
+<?php
+/**
+ * Smarty plugin
+ *
+ * @package Smarty
+ * @subpackage PluginsModifierCompiler
+ */
+
+/**
+ * Smarty unescape modifier plugin
+ * Type: modifier<br>
+ * Name: unescape<br>
+ * Purpose: unescape html entities
+ *
+ * @author Rodney Rehm
+ *
+ * @param array $params parameters
+ *
+ * @return string with compiled code
+ */
+function smarty_modifiercompiler_unescape($params)
+{
+ if (!isset($params[1])) {
+ $params[1] = 'html';
+ }
+ if (!isset($params[2])) {
+ $params[2] = '\'' . addslashes(Smarty::$_CHARSET) . '\'';
+ } else {
+ $params[2] = "'" . $params[2] . "'";
+ }
+
+ switch (trim($params[1], '"\'')) {
+ case 'entity':
+ case 'htmlall':
+ if (Smarty::$_MBSTRING) {
+ return 'mb_convert_encoding(' . $params[0] . ', ' . $params[2] . ', \'HTML-ENTITIES\')';
+ }
+
+ return 'html_entity_decode(' . $params[0] . ', ENT_NOQUOTES, ' . $params[2] . ')';
+
+ case 'html':
+ return 'htmlspecialchars_decode(' . $params[0] . ', ENT_QUOTES)';
+
+ case 'url':
+ return 'rawurldecode(' . $params[0] . ')';
+
+ default:
+ return $params[0];
+ }
+}
diff --git a/library/Smarty/libs/plugins/modifiercompiler.upper.php b/library/Smarty/libs/plugins/modifiercompiler.upper.php
index f368e37dc..52ca4e8ff 100644
--- a/library/Smarty/libs/plugins/modifiercompiler.upper.php
+++ b/library/Smarty/libs/plugins/modifiercompiler.upper.php
@@ -1,30 +1,29 @@
-<?php
-/**
- * Smarty plugin
- *
- * @package Smarty
- * @subpackage PluginsModifierCompiler
- */
-
-/**
- * Smarty upper modifier plugin
- *
- * Type: modifier<br>
- * Name: lower<br>
- * Purpose: convert string to uppercase
- *
- * @link http://smarty.php.net/manual/en/language.modifier.upper.php lower (Smarty online manual)
- * @author Uwe Tews
- * @param array $params parameters
- * @return string with compiled code
- */
-function smarty_modifiercompiler_upper($params, $compiler)
-{
- if (Smarty::$_MBSTRING) {
- return 'mb_strtoupper(' . $params[0] . ', \'' . addslashes(Smarty::$_CHARSET) . '\')' ;
- }
- // no MBString fallback
- return 'strtoupper(' . $params[0] . ')';
-}
-
-?> \ No newline at end of file
+<?php
+/**
+ * Smarty plugin
+ *
+ * @package Smarty
+ * @subpackage PluginsModifierCompiler
+ */
+
+/**
+ * Smarty upper modifier plugin
+ * Type: modifier<br>
+ * Name: lower<br>
+ * Purpose: convert string to uppercase
+ *
+ * @link http://smarty.php.net/manual/en/language.modifier.upper.php lower (Smarty online manual)
+ * @author Uwe Tews
+ *
+ * @param array $params parameters
+ *
+ * @return string with compiled code
+ */
+function smarty_modifiercompiler_upper($params)
+{
+ if (Smarty::$_MBSTRING) {
+ return 'mb_strtoupper(' . $params[0] . ', \'' . addslashes(Smarty::$_CHARSET) . '\')';
+ }
+ // no MBString fallback
+ return 'strtoupper(' . $params[0] . ')';
+}
diff --git a/library/Smarty/libs/plugins/modifiercompiler.wordwrap.php b/library/Smarty/libs/plugins/modifiercompiler.wordwrap.php
index f6845ad37..2ad928ea1 100644
--- a/library/Smarty/libs/plugins/modifiercompiler.wordwrap.php
+++ b/library/Smarty/libs/plugins/modifiercompiler.wordwrap.php
@@ -1,46 +1,47 @@
-<?php
-/**
- * Smarty plugin
- *
- * @package Smarty
- * @subpackage PluginsModifierCompiler
- */
-
-/**
- * Smarty wordwrap modifier plugin
- *
- * Type: modifier<br>
- * Name: wordwrap<br>
- * Purpose: wrap a string of text at a given length
- *
- * @link http://smarty.php.net/manual/en/language.modifier.wordwrap.php wordwrap (Smarty online manual)
- * @author Uwe Tews
- * @param array $params parameters
- * @return string with compiled code
- */
-function smarty_modifiercompiler_wordwrap($params, $compiler)
-{
- if (!isset($params[1])) {
- $params[1] = 80;
- }
- if (!isset($params[2])) {
- $params[2] = '"\n"';
- }
- if (!isset($params[3])) {
- $params[3] = 'false';
- }
- $function = 'wordwrap';
- if (Smarty::$_MBSTRING) {
- if ($compiler->tag_nocache | $compiler->nocache) {
- $compiler->template->required_plugins['nocache']['wordwrap']['modifier']['file'] = SMARTY_PLUGINS_DIR .'shared.mb_wordwrap.php';
- $compiler->template->required_plugins['nocache']['wordwrap']['modifier']['function'] = 'smarty_mb_wordwrap';
- } else {
- $compiler->template->required_plugins['compiled']['wordwrap']['modifier']['file'] = SMARTY_PLUGINS_DIR .'shared.mb_wordwrap.php';
- $compiler->template->required_plugins['compiled']['wordwrap']['modifier']['function'] = 'smarty_mb_wordwrap';
- }
- $function = 'smarty_mb_wordwrap';
- }
- return $function . '(' . $params[0] . ',' . $params[1] . ',' . $params[2] . ',' . $params[3] . ')';
-}
-
-?> \ No newline at end of file
+<?php
+/**
+ * Smarty plugin
+ *
+ * @package Smarty
+ * @subpackage PluginsModifierCompiler
+ */
+
+/**
+ * Smarty wordwrap modifier plugin
+ * Type: modifier<br>
+ * Name: wordwrap<br>
+ * Purpose: wrap a string of text at a given length
+ *
+ * @link http://smarty.php.net/manual/en/language.modifier.wordwrap.php wordwrap (Smarty online manual)
+ * @author Uwe Tews
+ *
+ * @param array $params parameters
+ * @param $compiler
+ *
+ * @return string with compiled code
+ */
+function smarty_modifiercompiler_wordwrap($params, $compiler)
+{
+ if (!isset($params[1])) {
+ $params[1] = 80;
+ }
+ if (!isset($params[2])) {
+ $params[2] = '"\n"';
+ }
+ if (!isset($params[3])) {
+ $params[3] = 'false';
+ }
+ $function = 'wordwrap';
+ if (Smarty::$_MBSTRING) {
+ if ($compiler->template->caching && ($compiler->tag_nocache | $compiler->nocache)) {
+ $compiler->template->required_plugins['nocache']['wordwrap']['modifier']['file'] = SMARTY_PLUGINS_DIR . 'shared.mb_wordwrap.php';
+ $compiler->template->required_plugins['nocache']['wordwrap']['modifier']['function'] = 'smarty_mb_wordwrap';
+ } else {
+ $compiler->template->required_plugins['compiled']['wordwrap']['modifier']['file'] = SMARTY_PLUGINS_DIR . 'shared.mb_wordwrap.php';
+ $compiler->template->required_plugins['compiled']['wordwrap']['modifier']['function'] = 'smarty_mb_wordwrap';
+ }
+ $function = 'smarty_mb_wordwrap';
+ }
+
+ return $function . '(' . $params[0] . ',' . $params[1] . ',' . $params[2] . ',' . $params[3] . ')';
+}
diff --git a/library/Smarty/libs/plugins/outputfilter.trimwhitespace.php b/library/Smarty/libs/plugins/outputfilter.trimwhitespace.php
index 87cf8c781..62ab4e776 100644
--- a/library/Smarty/libs/plugins/outputfilter.trimwhitespace.php
+++ b/library/Smarty/libs/plugins/outputfilter.trimwhitespace.php
@@ -2,22 +2,22 @@
/**
* Smarty plugin
*
- * @package Smarty
+ * @package Smarty
* @subpackage PluginsFilter
*/
/**
* Smarty trimwhitespace outputfilter plugin
- *
* Trim unnecessary whitespace from HTML markup.
*
* @author Rodney Rehm
- * @param string $source input string
- * @param Smarty_Internal_Template $smarty Smarty object
+ *
+ * @param string $source input string
+ *
* @return string filtered output
- * @todo substr_replace() is not overloaded by mbstring.func_overload - so this function might fail!
+ * @todo substr_replace() is not overloaded by mbstring.func_overload - so this function might fail!
*/
-function smarty_outputfilter_trimwhitespace($source, Smarty_Internal_Template $smarty)
+function smarty_outputfilter_trimwhitespace($source)
{
$store = array();
$_store = 0;
@@ -35,13 +35,13 @@ function smarty_outputfilter_trimwhitespace($source, Smarty_Internal_Template $s
$source = substr_replace($source, $replace, $match[0][1] - $_offset, $_length);
$_offset += $_length - strlen($replace);
- $_store++;
+ $_store ++;
}
}
// Strip all HTML-Comments
// yes, even the ones in <script> - see http://stackoverflow.com/a/808850/515124
- $source = preg_replace( '#<!--.*?-->#ms', '', $source );
+ $source = preg_replace('#<!--.*?-->#ms', '', $source);
// capture html elements not to be messed with
$_offset = 0;
@@ -53,42 +53,38 @@ function smarty_outputfilter_trimwhitespace($source, Smarty_Internal_Template $s
$source = substr_replace($source, $replace, $match[0][1] - $_offset, $_length);
$_offset += $_length - strlen($replace);
- $_store++;
+ $_store ++;
}
}
$expressions = array(
// replace multiple spaces between tags by a single space
// can't remove them entirely, becaue that might break poorly implemented CSS display:inline-block elements
- '#(:SMARTY@!@|>)\s+(?=@!@SMARTY:|<)#s' => '\1 \2',
+ '#(:SMARTY@!@|>)\s+(?=@!@SMARTY:|<)#s' => '\1 \2',
// remove spaces between attributes (but not in attribute values!)
'#(([a-z0-9]\s*=\s*(["\'])[^\3]*?\3)|<[a-z0-9_]+)\s+([a-z/>])#is' => '\1 \4',
// note: for some very weird reason trim() seems to remove spaces inside attributes.
// maybe a \0 byte or something is interfering?
- '#^\s+<#Ss' => '<',
- '#>\s+$#Ss' => '>',
+ '#^\s+<#Ss' => '<',
+ '#>\s+$#Ss' => '>',
);
- $source = preg_replace( array_keys($expressions), array_values($expressions), $source );
+ $source = preg_replace(array_keys($expressions), array_values($expressions), $source);
// note: for some very weird reason trim() seems to remove spaces inside attributes.
// maybe a \0 byte or something is interfering?
// $source = trim( $source );
- // capture html elements not to be messed with
$_offset = 0;
if (preg_match_all('#@!@SMARTY:([0-9]+):SMARTY@!@#is', $source, $matches, PREG_OFFSET_CAPTURE | PREG_SET_ORDER)) {
foreach ($matches as $match) {
- $store[] = $match[0][0];
$_length = strlen($match[0][0]);
- $replace = array_shift($store);
+ $replace = $store[$match[1][0]];
$source = substr_replace($source, $replace, $match[0][1] + $_offset, $_length);
$_offset += strlen($replace) - $_length;
- $_store++;
+ $_store ++;
}
}
return $source;
}
-
-?> \ No newline at end of file
diff --git a/library/Smarty/libs/plugins/shared.escape_special_chars.php b/library/Smarty/libs/plugins/shared.escape_special_chars.php
index d2609b674..d3bd756b1 100644
--- a/library/Smarty/libs/plugins/shared.escape_special_chars.php
+++ b/library/Smarty/libs/plugins/shared.escape_special_chars.php
@@ -2,20 +2,21 @@
/**
* Smarty shared plugin
*
- * @package Smarty
+ * @package Smarty
* @subpackage PluginsShared
*/
if (version_compare(PHP_VERSION, '5.2.3', '>=')) {
/**
* escape_special_chars common function
- *
* Function: smarty_function_escape_special_chars<br>
* Purpose: used by other smarty functions to escape
* special chars except for already escaped ones
*
* @author Monte Ohrt <monte at ohrt dot com>
- * @param string $string text that should by escaped
+ *
+ * @param string $string text that should by escaped
+ *
* @return string
*/
function smarty_function_escape_special_chars($string)
@@ -23,18 +24,20 @@ if (version_compare(PHP_VERSION, '5.2.3', '>=')) {
if (!is_array($string)) {
$string = htmlspecialchars($string, ENT_COMPAT, Smarty::$_CHARSET, false);
}
+
return $string;
- }
-} else {
+ }
+} else {
/**
* escape_special_chars common function
- *
* Function: smarty_function_escape_special_chars<br>
* Purpose: used by other smarty functions to escape
* special chars except for already escaped ones
*
* @author Monte Ohrt <monte at ohrt dot com>
- * @param string $string text that should by escaped
+ *
+ * @param string $string text that should by escaped
+ *
* @return string
*/
function smarty_function_escape_special_chars($string)
@@ -42,10 +45,9 @@ if (version_compare(PHP_VERSION, '5.2.3', '>=')) {
if (!is_array($string)) {
$string = preg_replace('!&(#?\w+);!', '%%%SMARTY_START%%%\\1%%%SMARTY_END%%%', $string);
$string = htmlspecialchars($string);
- $string = str_replace(array('%%%SMARTY_START%%%', '%%%SMARTY_END%%%'), array('&', ';'), $string);
+ $string = str_replace(array('%%%SMARTY_START%%%', '%%%SMARTY_END%%%'), array('&', ';'), $string);
}
- return $string;
- }
-}
-?> \ No newline at end of file
+ return $string;
+ }
+}
diff --git a/library/Smarty/libs/plugins/shared.literal_compiler_param.php b/library/Smarty/libs/plugins/shared.literal_compiler_param.php
index dbcd9374c..47d728a76 100644
--- a/library/Smarty/libs/plugins/shared.literal_compiler_param.php
+++ b/library/Smarty/libs/plugins/shared.literal_compiler_param.php
@@ -2,7 +2,7 @@
/**
* Smarty plugin
*
- * @package Smarty
+ * @package Smarty
* @subpackage PluginsShared
*/
@@ -12,22 +12,24 @@
* @param array $params parameter array as given to the compiler function
* @param integer $index array index of the parameter to convert
* @param mixed $default value to be returned if the parameter is not present
+ *
* @return mixed evaluated value of parameter or $default
* @throws SmartyException if parameter is not a literal (but an expression, variable, …)
* @author Rodney Rehm
*/
-function smarty_literal_compiler_param($params, $index, $default=null)
+function smarty_literal_compiler_param($params, $index, $default = null)
{
// not set, go default
if (!isset($params[$index])) {
return $default;
}
// test if param is a literal
- if (!preg_match('/^([\'"]?)[a-zA-Z0-9]+(\\1)$/', $params[$index])) {
+ if (!preg_match('/^([\'"]?)[a-zA-Z0-9-]+(\\1)$/', $params[$index])) {
throw new SmartyException('$param[' . $index . '] is not a literal and is thus not evaluatable at compile time');
}
$t = null;
eval("\$t = " . $params[$index] . ";");
+
return $t;
}
diff --git a/library/Smarty/libs/plugins/shared.make_timestamp.php b/library/Smarty/libs/plugins/shared.make_timestamp.php
index 5d7c97e91..7c94e5f59 100644
--- a/library/Smarty/libs/plugins/shared.make_timestamp.php
+++ b/library/Smarty/libs/plugins/shared.make_timestamp.php
@@ -2,7 +2,7 @@
/**
* Smarty shared plugin
*
- * @package Smarty
+ * @package Smarty
* @subpackage PluginsShared
*/
@@ -11,7 +11,9 @@
* Purpose: used by other smarty functions to make a timestamp from a string.
*
* @author Monte Ohrt <monte at ohrt dot com>
- * @param DateTime|int|string $string date object, timestamp or string that can be converted using strtotime()
+ *
+ * @param DateTime|int|string $string date object, timestamp or string that can be converted using strtotime()
+ *
* @return int
*/
function smarty_make_timestamp($string)
@@ -23,20 +25,19 @@ function smarty_make_timestamp($string)
return $string->getTimestamp();
} elseif (strlen($string) == 14 && ctype_digit($string)) {
// it is mysql timestamp format of YYYYMMDDHHMMSS?
- return mktime(substr($string, 8, 2),substr($string, 10, 2),substr($string, 12, 2),
- substr($string, 4, 2),substr($string, 6, 2),substr($string, 0, 4));
+ return mktime(substr($string, 8, 2), substr($string, 10, 2), substr($string, 12, 2),
+ substr($string, 4, 2), substr($string, 6, 2), substr($string, 0, 4));
} elseif (is_numeric($string)) {
// it is a numeric string, we handle it as timestamp
return (int) $string;
} else {
// strtotime should handle it
$time = strtotime($string);
- if ($time == -1 || $time === false) {
+ if ($time == - 1 || $time === false) {
// strtotime() was not able to parse $string, use "now":
return time();
}
+
return $time;
}
}
-
-?>
diff --git a/library/Smarty/libs/plugins/shared.mb_str_replace.php b/library/Smarty/libs/plugins/shared.mb_str_replace.php
index ecafeb74a..a5682ed30 100644
--- a/library/Smarty/libs/plugins/shared.mb_str_replace.php
+++ b/library/Smarty/libs/plugins/shared.mb_str_replace.php
@@ -2,7 +2,7 @@
/**
* Smarty shared plugin
*
- * @package Smarty
+ * @package Smarty
* @subpackage PluginsShared
*/
if (!function_exists('smarty_mb_str_replace')) {
@@ -10,14 +10,15 @@ if (!function_exists('smarty_mb_str_replace')) {
/**
* Multibyte string replace
*
- * @param string $search the string to be searched
- * @param string $replace the replacement string
- * @param string $subject the source string
- * @param int &$count number of matches found
+ * @param string $search the string to be searched
+ * @param string $replace the replacement string
+ * @param string $subject the source string
+ * @param int &$count number of matches found
+ *
* @return string replaced string
* @author Rodney Rehm
*/
- function smarty_mb_str_replace($search, $replace, $subject, &$count=0)
+ function smarty_mb_str_replace($search, $replace, $subject, &$count = 0)
{
if (!is_array($search) && is_array($replace)) {
return false;
@@ -25,7 +26,7 @@ if (!function_exists('smarty_mb_str_replace')) {
if (is_array($subject)) {
// call mb_replace for each single string in $subject
foreach ($subject as &$string) {
- $string = &smarty_mb_str_replace($search, $replace, $string, $c);
+ $string = & smarty_mb_str_replace($search, $replace, $string, $c);
$count += $c;
}
} elseif (is_array($search)) {
@@ -36,7 +37,7 @@ if (!function_exists('smarty_mb_str_replace')) {
}
} else {
$n = max(count($search), count($replace));
- while ($n--) {
+ while ($n --) {
$subject = smarty_mb_str_replace(current($search), current($replace), $subject, $c);
$count += $c;
next($search);
@@ -48,8 +49,7 @@ if (!function_exists('smarty_mb_str_replace')) {
$count = count($parts) - 1;
$subject = implode($replace, $parts);
}
+
return $subject;
}
-
}
-?> \ No newline at end of file
diff --git a/library/Smarty/libs/plugins/shared.mb_unicode.php b/library/Smarty/libs/plugins/shared.mb_unicode.php
index e7f839ec8..0f790b56a 100644
--- a/library/Smarty/libs/plugins/shared.mb_unicode.php
+++ b/library/Smarty/libs/plugins/shared.mb_unicode.php
@@ -2,47 +2,53 @@
/**
* Smarty shared plugin
*
- * @package Smarty
+ * @package Smarty
* @subpackage PluginsShared
*/
/**
* convert characters to their decimal unicode equivalents
*
- * @link http://www.ibm.com/developerworks/library/os-php-unicode/index.html#listing3 for inspiration
+ * @link http://www.ibm.com/developerworks/library/os-php-unicode/index.html#listing3 for inspiration
+ *
* @param string $string characters to calculate unicode of
* @param string $encoding encoding of $string, if null mb_internal_encoding() is used
+ *
* @return array sequence of unicodes
* @author Rodney Rehm
*/
-function smarty_mb_to_unicode($string, $encoding=null) {
+function smarty_mb_to_unicode($string, $encoding = null)
+{
if ($encoding) {
$expanded = mb_convert_encoding($string, "UTF-32BE", $encoding);
} else {
$expanded = mb_convert_encoding($string, "UTF-32BE");
}
+
return unpack("N*", $expanded);
}
/**
* convert unicodes to the character of given encoding
*
- * @link http://www.ibm.com/developerworks/library/os-php-unicode/index.html#listing3 for inspiration
+ * @link http://www.ibm.com/developerworks/library/os-php-unicode/index.html#listing3 for inspiration
+ *
* @param integer|array $unicode single unicode or list of unicodes to convert
* @param string $encoding encoding of returned string, if null mb_internal_encoding() is used
+ *
* @return string unicode as character sequence in given $encoding
* @author Rodney Rehm
*/
-function smarty_mb_from_unicode($unicode, $encoding=null) {
+function smarty_mb_from_unicode($unicode, $encoding = null)
+{
$t = '';
if (!$encoding) {
$encoding = mb_internal_encoding();
}
- foreach((array) $unicode as $utf32be) {
+ foreach ((array) $unicode as $utf32be) {
$character = pack("N*", $utf32be);
$t .= mb_convert_encoding($character, $encoding, "UTF-32BE");
}
+
return $t;
}
-
-?> \ No newline at end of file
diff --git a/library/Smarty/libs/plugins/shared.mb_wordwrap.php b/library/Smarty/libs/plugins/shared.mb_wordwrap.php
index ba3498c70..31f4acf01 100644
--- a/library/Smarty/libs/plugins/shared.mb_wordwrap.php
+++ b/library/Smarty/libs/plugins/shared.mb_wordwrap.php
@@ -2,44 +2,40 @@
/**
* Smarty shared plugin
*
- * @package Smarty
+ * @package Smarty
* @subpackage PluginsShared
*/
-if(!function_exists('smarty_mb_wordwrap')) {
+if (!function_exists('smarty_mb_wordwrap')) {
/**
* Wrap a string to a given number of characters
*
- * @link http://php.net/manual/en/function.wordwrap.php for similarity
- * @param string $str the string to wrap
- * @param int $width the width of the output
- * @param string $break the character used to break the line
- * @param boolean $cut ignored parameter, just for the sake of
- * @return string wrapped string
+ * @link http://php.net/manual/en/function.wordwrap.php for similarity
+ *
+ * @param string $str the string to wrap
+ * @param int $width the width of the output
+ * @param string $break the character used to break the line
+ * @param boolean $cut ignored parameter, just for the sake of
+ *
+ * @return string wrapped string
* @author Rodney Rehm
*/
- function smarty_mb_wordwrap($str, $width=75, $break="\n", $cut=false)
+ function smarty_mb_wordwrap($str, $width = 75, $break = "\n", $cut = false)
{
// break words into tokens using white space as a delimiter
- $tokens = preg_split('!(\s)!S' . Smarty::$_UTF8_MODIFIER, $str, -1, PREG_SPLIT_NO_EMPTY + PREG_SPLIT_DELIM_CAPTURE);
+ $tokens = preg_split('!(\s)!S' . Smarty::$_UTF8_MODIFIER, $str, - 1, PREG_SPLIT_NO_EMPTY + PREG_SPLIT_DELIM_CAPTURE);
$length = 0;
$t = '';
$_previous = false;
+ $_space = false;
foreach ($tokens as $_token) {
$token_length = mb_strlen($_token, Smarty::$_CHARSET);
$_tokens = array($_token);
if ($token_length > $width) {
- // remove last space
- $t = mb_substr($t, 0, -1, Smarty::$_CHARSET);
- $_previous = false;
- $length = 0;
-
- if ($cut) {
- $_tokens = preg_split('!(.{' . $width . '})!S' . Smarty::$_UTF8_MODIFIER, $_token, -1, PREG_SPLIT_NO_EMPTY + PREG_SPLIT_DELIM_CAPTURE);
- // broken words go on a new line
- $t .= $break;
+ if ($cut) {
+ $_tokens = preg_split('!(.{' . $width . '})!S' . Smarty::$_UTF8_MODIFIER, $_token, - 1, PREG_SPLIT_NO_EMPTY + PREG_SPLIT_DELIM_CAPTURE);
}
}
@@ -50,27 +46,23 @@ if(!function_exists('smarty_mb_wordwrap')) {
if ($length > $width) {
// remove space before inserted break
- if ($_previous && $token_length < $width) {
- $t = mb_substr($t, 0, -1, Smarty::$_CHARSET);
+ if ($_previous) {
+ $t = mb_substr($t, 0, - 1, Smarty::$_CHARSET);
}
- // add the break before the token
- $t .= $break;
- $length = $token_length;
-
- // skip space after inserting a break
- if ($_space) {
- $length = 0;
- continue;
+ if (!$_space) {
+ // add the break before the token
+ if (!empty($t)) {
+ $t .= $break;
+ }
+ $length = $token_length;
}
- } else if ($token == "\n") {
+ } elseif ($token == "\n") {
// hard break must reset counters
$_previous = 0;
$length = 0;
- } else {
- // remember if we had a space or not
- $_previous = $_space;
}
+ $_previous = $_space;
// add the token
$t .= $token;
}
@@ -78,6 +70,4 @@ if(!function_exists('smarty_mb_wordwrap')) {
return $t;
}
-
}
-?> \ No newline at end of file
diff --git a/library/Smarty/libs/plugins/variablefilter.htmlspecialchars.php b/library/Smarty/libs/plugins/variablefilter.htmlspecialchars.php
index aff711e48..aecd1e7e7 100644
--- a/library/Smarty/libs/plugins/variablefilter.htmlspecialchars.php
+++ b/library/Smarty/libs/plugins/variablefilter.htmlspecialchars.php
@@ -2,20 +2,18 @@
/**
* Smarty plugin
*
- * @package Smarty
+ * @package Smarty
* @subpackage PluginsFilter
*/
/**
* Smarty htmlspecialchars variablefilter plugin
*
- * @param string $source input string
- * @param Smarty_Internal_Template $smarty Smarty object
+ * @param string $source input string
+ *
* @return string filtered output
*/
-function smarty_variablefilter_htmlspecialchars($source, $smarty)
+function smarty_variablefilter_htmlspecialchars($source)
{
return htmlspecialchars($source, ENT_QUOTES, Smarty::$_CHARSET);
}
-
-?> \ No newline at end of file
diff --git a/library/Smarty/libs/sysplugins/smarty_cacheresource.php b/library/Smarty/libs/sysplugins/smarty_cacheresource.php
index ca18add5e..667bee44f 100644
--- a/library/Smarty/libs/sysplugins/smarty_cacheresource.php
+++ b/library/Smarty/libs/sysplugins/smarty_cacheresource.php
@@ -1,106 +1,123 @@
<?php
/**
-* Smarty Internal Plugin
-*
-* @package Smarty
-* @subpackage Cacher
-*/
+ * Smarty Internal Plugin
+ *
+ * @package Smarty
+ * @subpackage Cacher
+ */
/**
-* Cache Handler API
-*
-* @package Smarty
-* @subpackage Cacher
-* @author Rodney Rehm
-*/
-abstract class Smarty_CacheResource {
+ * Cache Handler API
+ *
+ * @package Smarty
+ * @subpackage Cacher
+ * @author Rodney Rehm
+ */
+abstract class Smarty_CacheResource
+{
/**
- * cache for Smarty_CacheResource instances
- * @var array
- */
+ * cache for Smarty_CacheResource instances
+ *
+ * @var array
+ */
public static $resources = array();
/**
- * resource types provided by the core
- * @var array
- */
+ * resource types provided by the core
+ *
+ * @var array
+ */
protected static $sysplugins = array(
'file' => true,
);
/**
- * populate Cached Object with meta data from Resource
- *
- * @param Smarty_Template_Cached $cached cached object
- * @param Smarty_Internal_Template $_template template object
- * @return void
- */
- public abstract function populate(Smarty_Template_Cached $cached, Smarty_Internal_Template $_template);
+ * populate Cached Object with meta data from Resource
+ *
+ * @param Smarty_Template_Cached $cached cached object
+ * @param Smarty_Internal_Template $_template template object
+ *
+ * @return void
+ */
+ abstract public function populate(Smarty_Template_Cached $cached, Smarty_Internal_Template $_template);
/**
- * populate Cached Object with timestamp and exists from Resource
- *
- * @param Smarty_Template_Cached $source cached object
- * @return void
- */
- public abstract function populateTimestamp(Smarty_Template_Cached $cached);
+ * populate Cached Object with timestamp and exists from Resource
+ *
+ * @param Smarty_Template_Cached $cached
+ *
+ * @return void
+ */
+ abstract public function populateTimestamp(Smarty_Template_Cached $cached);
/**
- * Read the cached template and process header
- *
- * @param Smarty_Internal_Template $_template template object
- * @param Smarty_Template_Cached $cached cached object
- * @return booelan true or false if the cached content does not exist
- */
- public abstract function process(Smarty_Internal_Template $_template, Smarty_Template_Cached $cached=null);
+ * Read the cached template and process header
+ *
+ * @param Smarty_Internal_Template $_template template object
+ * @param Smarty_Template_Cached $cached cached object
+ *
+ * @return boolean true or false if the cached content does not exist
+ */
+ abstract public function process(Smarty_Internal_Template $_template, Smarty_Template_Cached $cached = null);
/**
- * Write the rendered template output to cache
- *
- * @param Smarty_Internal_Template $_template template object
- * @param string $content content to cache
- * @return boolean success
- */
- public abstract function writeCachedContent(Smarty_Internal_Template $_template, $content);
+ * Write the rendered template output to cache
+ *
+ * @param Smarty_Internal_Template $_template template object
+ * @param string $content content to cache
+ *
+ * @return boolean success
+ */
+ abstract public function writeCachedContent(Smarty_Internal_Template $_template, $content);
/**
- * Return cached content
- *
- * @param Smarty_Internal_Template $_template template object
- * @param string $content content of cache
- */
+ * Return cached content
+ *
+ * @param Smarty_Internal_Template $_template template object
+ *
+ * @return null|string
+ */
public function getCachedContent(Smarty_Internal_Template $_template)
{
if ($_template->cached->handler->process($_template)) {
ob_start();
$_template->properties['unifunc']($_template);
+
return ob_get_clean();
}
+
return null;
}
/**
- * Empty cache
- *
- * @param Smarty $smarty Smarty object
- * @param integer $exp_time expiration time (number of seconds, not timestamp)
- * @return integer number of cache files deleted
- */
- public abstract function clearAll(Smarty $smarty, $exp_time=null);
+ * Empty cache
+ *
+ * @param Smarty $smarty Smarty object
+ * @param integer $exp_time expiration time (number of seconds, not timestamp)
+ *
+ * @return integer number of cache files deleted
+ */
+ abstract public function clearAll(Smarty $smarty, $exp_time = null);
/**
- * Empty cache for a specific template
- *
- * @param Smarty $smarty Smarty object
- * @param string $resource_name template name
- * @param string $cache_id cache id
- * @param string $compile_id compile id
- * @param integer $exp_time expiration time (number of seconds, not timestamp)
- * @return integer number of cache files deleted
- */
- public abstract function clear(Smarty $smarty, $resource_name, $cache_id, $compile_id, $exp_time);
-
+ * Empty cache for a specific template
+ *
+ * @param Smarty $smarty Smarty object
+ * @param string $resource_name template name
+ * @param string $cache_id cache id
+ * @param string $compile_id compile id
+ * @param integer $exp_time expiration time (number of seconds, not timestamp)
+ *
+ * @return integer number of cache files deleted
+ */
+ abstract public function clear(Smarty $smarty, $resource_name, $cache_id, $compile_id, $exp_time);
+ /**
+ * @param Smarty $smarty
+ * @param Smarty_Template_Cached $cached
+ *
+ * @return bool|null
+ */
public function locked(Smarty $smarty, Smarty_Template_Cached $cached)
{
// theoretically locking_timeout should be checked against time_limit (max_execution_time)
@@ -114,35 +131,61 @@ abstract class Smarty_CacheResource {
}
sleep(1);
}
+
return $hadLock;
}
+ /**
+ * Check is cache is locked for this template
+ *
+ * @param Smarty $smarty
+ * @param Smarty_Template_Cached $cached
+ *
+ * @return bool
+ */
public function hasLock(Smarty $smarty, Smarty_Template_Cached $cached)
{
// check if lock exists
return false;
}
+ /**
+ * Lock cache for this template
+ *
+ * @param Smarty $smarty
+ * @param Smarty_Template_Cached $cached
+ *
+ * @return bool
+ */
public function acquireLock(Smarty $smarty, Smarty_Template_Cached $cached)
{
// create lock
return true;
}
+ /**
+ * Unlock cache for this template
+ *
+ * @param Smarty $smarty
+ * @param Smarty_Template_Cached $cached
+ *
+ * @return bool
+ */
public function releaseLock(Smarty $smarty, Smarty_Template_Cached $cached)
{
// release lock
return true;
}
-
/**
- * Load Cache Resource Handler
- *
- * @param Smarty $smarty Smarty object
- * @param string $type name of the cache resource
- * @return Smarty_CacheResource Cache Resource Handler
- */
+ * Load Cache Resource Handler
+ *
+ * @param Smarty $smarty Smarty object
+ * @param string $type name of the cache resource
+ *
+ * @throws SmartyException
+ * @return Smarty_CacheResource Cache Resource Handler
+ */
public static function load(Smarty $smarty, $type = null)
{
if (!isset($type)) {
@@ -153,7 +196,7 @@ abstract class Smarty_CacheResource {
if (isset($smarty->_cacheresource_handlers[$type])) {
return $smarty->_cacheresource_handlers[$type];
}
-
+
// try registered resource
if (isset($smarty->registered_cache_resources[$type])) {
// do not cache these instances as they may vary from instance to instance
@@ -165,6 +208,7 @@ abstract class Smarty_CacheResource {
$cache_resource_class = 'Smarty_Internal_CacheResource_' . ucfirst($type);
self::$resources[$type] = new $cache_resource_class();
}
+
return $smarty->_cacheresource_handlers[$type] = self::$resources[$type];
}
// try plugins dir
@@ -173,6 +217,7 @@ abstract class Smarty_CacheResource {
if (!isset(self::$resources[$type])) {
self::$resources[$type] = new $cache_resource_class();
}
+
return $smarty->_cacheresource_handlers[$type] = self::$resources[$type];
}
// give up
@@ -180,10 +225,10 @@ abstract class Smarty_CacheResource {
}
/**
- * Invalid Loaded Cache Files
- *
- * @param Smarty $smarty Smarty object
- */
+ * Invalid Loaded Cache Files
+ *
+ * @param Smarty $smarty Smarty object
+ */
public static function invalidLoadedCache(Smarty $smarty)
{
foreach ($smarty->template_objects as $tpl) {
@@ -196,92 +241,104 @@ abstract class Smarty_CacheResource {
}
/**
-* Smarty Resource Data Object
-*
-* Cache Data Container for Template Files
-*
-* @package Smarty
-* @subpackage TemplateResources
-* @author Rodney Rehm
-*/
-class Smarty_Template_Cached {
+ * Smarty Resource Data Object
+ * Cache Data Container for Template Files
+ *
+ * @package Smarty
+ * @subpackage TemplateResources
+ * @author Rodney Rehm
+ */
+class Smarty_Template_Cached
+{
/**
- * Source Filepath
- * @var string
- */
+ * Source Filepath
+ *
+ * @var string
+ */
public $filepath = false;
/**
- * Source Content
- * @var string
- */
+ * Source Content
+ *
+ * @var string
+ */
public $content = null;
/**
- * Source Timestamp
- * @var integer
- */
+ * Source Timestamp
+ *
+ * @var integer
+ */
public $timestamp = false;
/**
- * Source Existance
- * @var boolean
- */
+ * Source Existence
+ *
+ * @var boolean
+ */
public $exists = false;
/**
- * Cache Is Valid
- * @var boolean
- */
+ * Cache Is Valid
+ *
+ * @var boolean
+ */
public $valid = false;
/**
- * Cache was processed
- * @var boolean
- */
+ * Cache was processed
+ *
+ * @var boolean
+ */
public $processed = false;
/**
- * CacheResource Handler
- * @var Smarty_CacheResource
- */
+ * CacheResource Handler
+ *
+ * @var Smarty_CacheResource
+ */
public $handler = null;
/**
- * Template Compile Id (Smarty_Internal_Template::$compile_id)
- * @var string
- */
+ * Template Compile Id (Smarty_Internal_Template::$compile_id)
+ *
+ * @var string
+ */
public $compile_id = null;
/**
- * Template Cache Id (Smarty_Internal_Template::$cache_id)
- * @var string
- */
+ * Template Cache Id (Smarty_Internal_Template::$cache_id)
+ *
+ * @var string
+ */
public $cache_id = null;
/**
- * Id for cache locking
- * @var string
- */
+ * Id for cache locking
+ *
+ * @var string
+ */
public $lock_id = null;
/**
- * flag that cache is locked by this instance
- * @var bool
- */
+ * flag that cache is locked by this instance
+ *
+ * @var bool
+ */
public $is_locked = false;
/**
- * Source Object
- * @var Smarty_Template_Source
- */
+ * Source Object
+ *
+ * @var Smarty_Template_Source
+ */
public $source = null;
/**
- * create Cached Object container
- *
- * @param Smarty_Internal_Template $_template template object
- */
+ * create Cached Object container
+ *
+ * @param Smarty_Internal_Template $_template template object
+ */
public function __construct(Smarty_Internal_Template $_template)
{
$this->compile_id = $_template->compile_id;
@@ -300,6 +357,7 @@ class Smarty_Template_Cached {
//
if (!($_template->caching == Smarty::CACHING_LIFETIME_CURRENT || $_template->caching == Smarty::CACHING_LIFETIME_SAVED) || $_template->source->recompiled) {
$handler->populate($this, $_template);
+
return;
}
while (true) {
@@ -328,7 +386,7 @@ class Smarty_Template_Cached {
if ($smarty->debugging) {
Smarty_Internal_Debug::start_cache($_template);
}
- if($handler->process($_template, $this) === false) {
+ if ($handler->process($_template, $this) === false) {
$this->valid = false;
} else {
$this->processed = true;
@@ -347,6 +405,7 @@ class Smarty_Template_Cached {
}
if (!$this->valid && $_template->smarty->cache_locking) {
$this->handler->acquireLock($_template->smarty, $this);
+
return;
} else {
return;
@@ -355,27 +414,29 @@ class Smarty_Template_Cached {
}
/**
- * Write this cache object to handler
- *
- * @param Smarty_Internal_Template $_template template object
- * @param string $content content to cache
- * @return boolean success
- */
+ * Write this cache object to handler
+ *
+ * @param Smarty_Internal_Template $_template template object
+ * @param string $content content to cache
+ *
+ * @return boolean success
+ */
public function write(Smarty_Internal_Template $_template, $content)
{
if (!$_template->source->recompiled) {
if ($this->handler->writeCachedContent($_template, $content)) {
+ $this->content = null;
$this->timestamp = time();
$this->exists = true;
$this->valid = true;
if ($_template->smarty->cache_locking) {
$this->handler->releaseLock($_template->smarty, $this);
}
+
return true;
}
}
+
return false;
}
-
}
-?> \ No newline at end of file
diff --git a/library/Smarty/libs/sysplugins/smarty_cacheresource_custom.php b/library/Smarty/libs/sysplugins/smarty_cacheresource_custom.php
index ee9de157b..a258b2de7 100644
--- a/library/Smarty/libs/sysplugins/smarty_cacheresource_custom.php
+++ b/library/Smarty/libs/sysplugins/smarty_cacheresource_custom.php
@@ -2,42 +2,43 @@
/**
* Smarty Internal Plugin
*
- * @package Smarty
+ * @package Smarty
* @subpackage Cacher
*/
/**
* Cache Handler API
*
- * @package Smarty
+ * @package Smarty
* @subpackage Cacher
- * @author Rodney Rehm
+ * @author Rodney Rehm
*/
-abstract class Smarty_CacheResource_Custom extends Smarty_CacheResource {
-
+abstract class Smarty_CacheResource_Custom extends Smarty_CacheResource
+{
/**
* fetch cached content and its modification time from data source
*
- * @param string $id unique cache content identifier
- * @param string $name template name
- * @param string $cache_id cache id
- * @param string $compile_id compile id
- * @param string $content cached content
- * @param integer $mtime cache modification timestamp (epoch)
+ * @param string $id unique cache content identifier
+ * @param string $name template name
+ * @param string $cache_id cache id
+ * @param string $compile_id compile id
+ * @param string $content cached content
+ * @param integer $mtime cache modification timestamp (epoch)
+ *
* @return void
*/
- protected abstract function fetch($id, $name, $cache_id, $compile_id, &$content, &$mtime);
+ abstract protected function fetch($id, $name, $cache_id, $compile_id, &$content, &$mtime);
/**
* Fetch cached content's modification timestamp from data source
- *
* {@internal implementing this method is optional.
* Only implement it if modification times can be accessed faster than loading the complete cached content.}}
*
- * @param string $id unique cache content identifier
- * @param string $name template name
- * @param string $cache_id cache id
- * @param string $compile_id compile id
+ * @param string $id unique cache content identifier
+ * @param string $name template name
+ * @param string $cache_id cache id
+ * @param string $compile_id compile id
+ *
* @return integer|boolean timestamp (epoch) the template was modified, or false if not found
*/
protected function fetchTimestamp($id, $name, $cache_id, $compile_id)
@@ -48,32 +49,35 @@ abstract class Smarty_CacheResource_Custom extends Smarty_CacheResource {
/**
* Save content to cache
*
- * @param string $id unique cache content identifier
- * @param string $name template name
- * @param string $cache_id cache id
- * @param string $compile_id compile id
- * @param integer|null $exp_time seconds till expiration or null
- * @param string $content content to cache
- * @return boolean success
+ * @param string $id unique cache content identifier
+ * @param string $name template name
+ * @param string $cache_id cache id
+ * @param string $compile_id compile id
+ * @param integer|null $exp_time seconds till expiration or null
+ * @param string $content content to cache
+ *
+ * @return boolean success
*/
- protected abstract function save($id, $name, $cache_id, $compile_id, $exp_time, $content);
+ abstract protected function save($id, $name, $cache_id, $compile_id, $exp_time, $content);
/**
* Delete content from cache
*
- * @param string $name template name
- * @param string $cache_id cache id
- * @param string $compile_id compile id
- * @param integer|null $exp_time seconds till expiration time in seconds or null
- * @return integer number of deleted caches
+ * @param string $name template name
+ * @param string $cache_id cache id
+ * @param string $compile_id compile id
+ * @param integer|null $exp_time seconds till expiration time in seconds or null
+ *
+ * @return integer number of deleted caches
*/
- protected abstract function delete($name, $cache_id, $compile_id, $exp_time);
+ abstract protected function delete($name, $cache_id, $compile_id, $exp_time);
/**
* populate Cached Object with meta data from Resource
*
- * @param Smarty_Template_Cached $cached cached object
- * @param Smarty_Internal_Template $_template template object
+ * @param Smarty_Template_Cached $cached cached object
+ * @param Smarty_Internal_Template $_template template object
+ *
* @return void
*/
public function populate(Smarty_Template_Cached $cached, Smarty_Internal_Template $_template)
@@ -88,7 +92,8 @@ abstract class Smarty_CacheResource_Custom extends Smarty_CacheResource {
/**
* populate Cached Object with timestamp and exists from Resource
*
- * @param Smarty_Template_Cached $source cached object
+ * @param Smarty_Template_Cached $cached
+ *
* @return void
*/
public function populateTimestamp(Smarty_Template_Cached $cached)
@@ -97,6 +102,7 @@ abstract class Smarty_CacheResource_Custom extends Smarty_CacheResource {
if ($mtime !== null) {
$cached->timestamp = $mtime;
$cached->exists = !!$cached->timestamp;
+
return;
}
$timestamp = null;
@@ -108,11 +114,12 @@ abstract class Smarty_CacheResource_Custom extends Smarty_CacheResource {
/**
* Read the cached template and process the header
*
- * @param Smarty_Internal_Template $_template template object
- * @param Smarty_Template_Cached $cached cached object
- * @return booelan true or false if the cached content does not exist
+ * @param Smarty_Internal_Template $_template template object
+ * @param Smarty_Template_Cached $cached cached object
+ *
+ * @return boolean true or false if the cached content does not exist
*/
- public function process(Smarty_Internal_Template $_template, Smarty_Template_Cached $cached=null)
+ public function process(Smarty_Internal_Template $_template, Smarty_Template_Cached $cached = null)
{
if (!$cached) {
$cached = $_template->cached;
@@ -130,19 +137,25 @@ abstract class Smarty_CacheResource_Custom extends Smarty_CacheResource {
);
}
if (isset($content)) {
+ /** @var Smarty_Internal_Template $_smarty_tpl
+ * used in evaluated code
+ */
$_smarty_tpl = $_template;
eval("?>" . $content);
+
return true;
}
+
return false;
}
/**
* Write the rendered template output to cache
*
- * @param Smarty_Internal_Template $_template template object
- * @param string $content content to cache
- * @return boolean success
+ * @param Smarty_Internal_Template $_template template object
+ * @param string $content content to cache
+ *
+ * @return boolean success
*/
public function writeCachedContent(Smarty_Internal_Template $_template, $content)
{
@@ -159,38 +172,69 @@ abstract class Smarty_CacheResource_Custom extends Smarty_CacheResource {
/**
* Empty cache
*
- * @param Smarty $smarty Smarty object
- * @param integer $exp_time expiration time (number of seconds, not timestamp)
+ * @param Smarty $smarty Smarty object
+ * @param integer $exp_time expiration time (number of seconds, not timestamp)
+ *
* @return integer number of cache files deleted
*/
- public function clearAll(Smarty $smarty, $exp_time=null)
+ public function clearAll(Smarty $smarty, $exp_time = null)
{
$this->cache = array();
+
return $this->delete(null, null, null, $exp_time);
}
/**
* Empty cache for a specific template
*
- * @param Smarty $smarty Smarty object
- * @param string $resource_name template name
- * @param string $cache_id cache id
- * @param string $compile_id compile id
- * @param integer $exp_time expiration time (number of seconds, not timestamp)
+ * @param Smarty $smarty Smarty object
+ * @param string $resource_name template name
+ * @param string $cache_id cache id
+ * @param string $compile_id compile id
+ * @param integer $exp_time expiration time (number of seconds, not timestamp)
+ *
* @return integer number of cache files deleted
*/
public function clear(Smarty $smarty, $resource_name, $cache_id, $compile_id, $exp_time)
{
$this->cache = array();
- return $this->delete($resource_name, $cache_id, $compile_id, $exp_time);
+ $cache_name = null;
+
+ if (isset($resource_name)) {
+ $_save_stat = $smarty->caching;
+ $smarty->caching = true;
+ $tpl = new $smarty->template_class($resource_name, $smarty);
+ $smarty->caching = $_save_stat;
+
+ if ($tpl->source->exists) {
+ $cache_name = $tpl->source->name;
+ } else {
+ return 0;
+ }
+ // remove from template cache
+ if ($smarty->allow_ambiguous_resources) {
+ $_templateId = $tpl->source->unique_resource . $tpl->cache_id . $tpl->compile_id;
+ } else {
+ $_templateId = $smarty->joined_template_dir . '#' . $resource_name . $tpl->cache_id . $tpl->compile_id;
+ }
+ if (isset($_templateId[150])) {
+ $_templateId = sha1($_templateId);
+ }
+ unset($smarty->template_objects[$_templateId]);
+ // template object no longer needed
+ unset($tpl);
+ }
+
+ return $this->delete($cache_name, $cache_id, $compile_id, $exp_time);
}
/**
* Check is cache is locked for this template
*
- * @param Smarty $smarty Smarty object
- * @param Smarty_Template_Cached $cached cached object
- * @return booelan true or false if cache is locked
+ * @param Smarty $smarty Smarty object
+ * @param Smarty_Template_Cached $cached cached object
+ *
+ * @return boolean true or false if cache is locked
*/
public function hasLock(Smarty $smarty, Smarty_Template_Cached $cached)
{
@@ -208,8 +252,10 @@ abstract class Smarty_CacheResource_Custom extends Smarty_CacheResource {
/**
* Lock cache for this template
*
- * @param Smarty $smarty Smarty object
+ * @param Smarty $smarty Smarty object
* @param Smarty_Template_Cached $cached cached object
+ *
+ * @return bool|void
*/
public function acquireLock(Smarty $smarty, Smarty_Template_Cached $cached)
{
@@ -223,8 +269,10 @@ abstract class Smarty_CacheResource_Custom extends Smarty_CacheResource {
/**
* Unlock cache for this template
*
- * @param Smarty $smarty Smarty object
+ * @param Smarty $smarty Smarty object
* @param Smarty_Template_Cached $cached cached object
+ *
+ * @return bool|void
*/
public function releaseLock(Smarty $smarty, Smarty_Template_Cached $cached)
{
@@ -234,4 +282,3 @@ abstract class Smarty_CacheResource_Custom extends Smarty_CacheResource {
$this->delete($name, null, null, null);
}
}
-?> \ No newline at end of file
diff --git a/library/Smarty/libs/sysplugins/smarty_cacheresource_keyvaluestore.php b/library/Smarty/libs/sysplugins/smarty_cacheresource_keyvaluestore.php
index dff9b65aa..a4b365a82 100644
--- a/library/Smarty/libs/sysplugins/smarty_cacheresource_keyvaluestore.php
+++ b/library/Smarty/libs/sysplugins/smarty_cacheresource_keyvaluestore.php
@@ -2,44 +2,43 @@
/**
* Smarty Internal Plugin
*
- * @package Smarty
+ * @package Smarty
* @subpackage Cacher
*/
/**
* Smarty Cache Handler Base for Key/Value Storage Implementations
- *
* This class implements the functionality required to use simple key/value stores
* for hierarchical cache groups. key/value stores like memcache or APC do not support
* wildcards in keys, therefore a cache group cannot be cleared like "a|*" - which
* is no problem to filesystem and RDBMS implementations.
- *
* This implementation is based on the concept of invalidation. While one specific cache
* can be identified and cleared, any range of caches cannot be identified. For this reason
* each level of the cache group hierarchy can have its own value in the store. These values
* are nothing but microtimes, telling us when a particular cache group was cleared for the
* last time. These keys are evaluated for every cache read to determine if the cache has
* been invalidated since it was created and should hence be treated as inexistent.
- *
* Although deep hierarchies are possible, they are not recommended. Try to keep your
* cache groups as shallow as possible. Anything up 3-5 parents should be ok. So
* »a|b|c« is a good depth where »a|b|c|d|e|f|g|h|i|j|k« isn't. Try to join correlating
* cache groups: if your cache groups look somewhat like »a|b|$page|$items|$whatever«
* consider using »a|b|c|$page-$items-$whatever« instead.
*
- * @package Smarty
+ * @package Smarty
* @subpackage Cacher
- * @author Rodney Rehm
+ * @author Rodney Rehm
*/
-abstract class Smarty_CacheResource_KeyValueStore extends Smarty_CacheResource {
-
+abstract class Smarty_CacheResource_KeyValueStore extends Smarty_CacheResource
+{
/**
* cache for contents
+ *
* @var array
*/
protected $contents = array();
/**
* cache for timestamps
+ *
* @var array
*/
protected $timestamps = array();
@@ -47,16 +46,17 @@ abstract class Smarty_CacheResource_KeyValueStore extends Smarty_CacheResource {
/**
* populate Cached Object with meta data from Resource
*
- * @param Smarty_Template_Cached $cached cached object
- * @param Smarty_Internal_Template $_template template object
+ * @param Smarty_Template_Cached $cached cached object
+ * @param Smarty_Internal_Template $_template template object
+ *
* @return void
*/
public function populate(Smarty_Template_Cached $cached, Smarty_Internal_Template $_template)
{
$cached->filepath = $_template->source->uid
- . '#' . $this->sanitize($cached->source->name)
- . '#' . $this->sanitize($cached->cache_id)
- . '#' . $this->sanitize($cached->compile_id);
+ . '#' . $this->sanitize($cached->source->resource)
+ . '#' . $this->sanitize($cached->cache_id)
+ . '#' . $this->sanitize($cached->compile_id);
$this->populateTimestamp($cached);
}
@@ -64,7 +64,8 @@ abstract class Smarty_CacheResource_KeyValueStore extends Smarty_CacheResource {
/**
* populate Cached Object with timestamp and exists from Resource
*
- * @param Smarty_Template_Cached $cached cached object
+ * @param Smarty_Template_Cached $cached cached object
+ *
* @return void
*/
public function populateTimestamp(Smarty_Template_Cached $cached)
@@ -80,11 +81,12 @@ abstract class Smarty_CacheResource_KeyValueStore extends Smarty_CacheResource {
/**
* Read the cached template and process the header
*
- * @param Smarty_Internal_Template $_template template object
- * @param Smarty_Template_Cached $cached cached object
- * @return booelan true or false if the cached content does not exist
+ * @param Smarty_Internal_Template $_template template object
+ * @param Smarty_Template_Cached $cached cached object
+ *
+ * @return boolean true or false if the cached content does not exist
*/
- public function process(Smarty_Internal_Template $_template, Smarty_Template_Cached $cached=null)
+ public function process(Smarty_Internal_Template $_template, Smarty_Template_Cached $cached = null)
{
if (!$cached) {
$cached = $_template->cached;
@@ -97,55 +99,63 @@ abstract class Smarty_CacheResource_KeyValueStore extends Smarty_CacheResource {
}
}
if (isset($content)) {
+ /** @var Smarty_Internal_Template $_smarty_tpl
+ * used in evaluated code
+ */
$_smarty_tpl = $_template;
eval("?>" . $content);
+
return true;
}
+
return false;
}
/**
* Write the rendered template output to cache
*
- * @param Smarty_Internal_Template $_template template object
- * @param string $content content to cache
- * @return boolean success
+ * @param Smarty_Internal_Template $_template template object
+ * @param string $content content to cache
+ *
+ * @return boolean success
*/
public function writeCachedContent(Smarty_Internal_Template $_template, $content)
{
$this->addMetaTimestamp($content);
+
return $this->write(array($_template->cached->filepath => $content), $_template->properties['cache_lifetime']);
}
/**
* Empty cache
- *
* {@internal the $exp_time argument is ignored altogether }}
*
- * @param Smarty $smarty Smarty object
- * @param integer $exp_time expiration time [being ignored]
+ * @param Smarty $smarty Smarty object
+ * @param integer $exp_time expiration time [being ignored]
+ *
* @return integer number of cache files deleted [always -1]
* @uses purge() to clear the whole store
* @uses invalidate() to mark everything outdated if purge() is inapplicable
*/
- public function clearAll(Smarty $smarty, $exp_time=null)
+ public function clearAll(Smarty $smarty, $exp_time = null)
{
if (!$this->purge()) {
$this->invalidate(null);
}
- return -1;
+
+ return - 1;
}
/**
* Empty cache for a specific template
- *
* {@internal the $exp_time argument is ignored altogether}}
*
- * @param Smarty $smarty Smarty object
- * @param string $resource_name template name
- * @param string $cache_id cache id
- * @param string $compile_id compile id
- * @param integer $exp_time expiration time [being ignored]
+ * @param Smarty $smarty Smarty object
+ * @param string $resource_name template name
+ * @param string $cache_id cache id
+ * @param string $compile_id compile id
+ * @param integer $exp_time expiration time [being ignored]
+ *
* @return integer number of cache files deleted [always -1]
* @uses buildCachedFilepath() to generate the CacheID
* @uses invalidate() to mark CacheIDs parent chain as outdated
@@ -157,15 +167,18 @@ abstract class Smarty_CacheResource_KeyValueStore extends Smarty_CacheResource {
$cid = $uid . '#' . $this->sanitize($resource_name) . '#' . $this->sanitize($cache_id) . '#' . $this->sanitize($compile_id);
$this->delete(array($cid));
$this->invalidate($cid, $resource_name, $cache_id, $compile_id, $uid);
- return -1;
+
+ return - 1;
}
+
/**
* Get template's unique ID
*
- * @param Smarty $smarty Smarty object
- * @param string $resource_name template name
- * @param string $cache_id cache id
- * @param string $compile_id compile id
+ * @param Smarty $smarty Smarty object
+ * @param string $resource_name template name
+ * @param string $cache_id cache id
+ * @param string $compile_id compile id
+ *
* @return string filepath of cache file
*/
protected function getTemplateUid(Smarty $smarty, $resource_name, $cache_id, $compile_id)
@@ -176,7 +189,7 @@ abstract class Smarty_CacheResource_KeyValueStore extends Smarty_CacheResource {
if ($tpl->source->exists) {
$uid = $tpl->source->uid;
}
-
+
// remove from template cache
if ($smarty->allow_ambiguous_resources) {
$_templateId = $tpl->source->unique_resource . $tpl->cache_id . $tpl->compile_id;
@@ -188,13 +201,15 @@ abstract class Smarty_CacheResource_KeyValueStore extends Smarty_CacheResource {
}
unset($smarty->template_objects[$_templateId]);
}
+
return $uid;
}
/**
* Sanitize CacheID components
*
- * @param string $string CacheID component to sanitize
+ * @param string $string CacheID component to sanitize
+ *
* @return string sanitized CacheID component
*/
protected function sanitize($string)
@@ -204,19 +219,21 @@ abstract class Smarty_CacheResource_KeyValueStore extends Smarty_CacheResource {
if (!$string) {
return null;
}
+
return preg_replace('#[^\w\|]+#S', '_', $string);
}
/**
* Fetch and prepare a cache object.
*
- * @param string $cid CacheID to fetch
- * @param string $resource_name template name
- * @param string $cache_id cache id
- * @param string $compile_id compile id
- * @param string $content cached content
- * @param integer &$timestamp cached timestamp (epoch)
- * @param string $resource_uid resource's uid
+ * @param string $cid CacheID to fetch
+ * @param string $resource_name template name
+ * @param string $cache_id cache id
+ * @param string $compile_id compile id
+ * @param string $content cached content
+ * @param integer &$timestamp cached timestamp (epoch)
+ * @param string $resource_uid resource's uid
+ *
* @return boolean success
*/
protected function fetch($cid, $resource_name = null, $cache_id = null, $compile_id = null, &$content = null, &$timestamp = null, $resource_uid = null)
@@ -238,7 +255,6 @@ abstract class Smarty_CacheResource_KeyValueStore extends Smarty_CacheResource {
/**
* Add current microtime to the beginning of $cache_content
- *
* {@internal the header uses 8 Bytes, the first 4 Bytes are the seconds, the second 4 Bytes are the microseconds}}
*
* @param string &$content the content to be cached
@@ -253,25 +269,28 @@ abstract class Smarty_CacheResource_KeyValueStore extends Smarty_CacheResource {
/**
* Extract the timestamp the $content was cached
*
- * @param string &$content the cached content
- * @return float the microtime the content was cached
+ * @param string &$content the cached content
+ *
+ * @return float the microtime the content was cached
*/
protected function getMetaTimestamp(&$content)
{
$s = unpack("N", substr($content, 0, 4));
$m = unpack("N", substr($content, 4, 4));
$content = substr($content, 8);
+
return $s[1] + ($m[1] / 100000000);
}
/**
* Invalidate CacheID
*
- * @param string $cid CacheID
- * @param string $resource_name template name
- * @param string $cache_id cache id
- * @param string $compile_id compile id
- * @param string $resource_uid source's uid
+ * @param string $cid CacheID
+ * @param string $resource_name template name
+ * @param string $cache_id cache id
+ * @param string $compile_id compile id
+ * @param string $resource_uid source's uid
+ *
* @return void
*/
protected function invalidate($cid = null, $resource_name = null, $cache_id = null, $compile_id = null, $resource_uid = null)
@@ -281,22 +300,24 @@ abstract class Smarty_CacheResource_KeyValueStore extends Smarty_CacheResource {
// invalidate everything
if (!$resource_name && !$cache_id && !$compile_id) {
$key = 'IVK#ALL';
- }
- // invalidate all caches by template
- else if ($resource_name && !$cache_id && !$compile_id) {
- $key = 'IVK#TEMPLATE#' . $resource_uid . '#' . $this->sanitize($resource_name);
- }
- // invalidate all caches by cache group
- else if (!$resource_name && $cache_id && !$compile_id) {
- $key = 'IVK#CACHE#' . $this->sanitize($cache_id);
- }
- // invalidate all caches by compile id
- else if (!$resource_name && !$cache_id && $compile_id) {
- $key = 'IVK#COMPILE#' . $this->sanitize($compile_id);
- }
- // invalidate by combination
+ } // invalidate all caches by template
else {
- $key = 'IVK#CID#' . $cid;
+ if ($resource_name && !$cache_id && !$compile_id) {
+ $key = 'IVK#TEMPLATE#' . $resource_uid . '#' . $this->sanitize($resource_name);
+ } // invalidate all caches by cache group
+ else {
+ if (!$resource_name && $cache_id && !$compile_id) {
+ $key = 'IVK#CACHE#' . $this->sanitize($cache_id);
+ } // invalidate all caches by compile id
+ else {
+ if (!$resource_name && !$cache_id && $compile_id) {
+ $key = 'IVK#COMPILE#' . $this->sanitize($compile_id);
+ } // invalidate by combination
+ else {
+ $key = 'IVK#CID#' . $cid;
+ }
+ }
+ }
}
$this->write(array($key => $now));
}
@@ -304,12 +325,13 @@ abstract class Smarty_CacheResource_KeyValueStore extends Smarty_CacheResource {
/**
* Determine the latest timestamp known to the invalidation chain
*
- * @param string $cid CacheID to determine latest invalidation timestamp of
- * @param string $resource_name template name
- * @param string $cache_id cache id
- * @param string $compile_id compile id
- * @param string $resource_uid source's filepath
- * @return float the microtime the CacheID was invalidated
+ * @param string $cid CacheID to determine latest invalidation timestamp of
+ * @param string $resource_name template name
+ * @param string $cache_id cache id
+ * @param string $compile_id compile id
+ * @param string $resource_uid source's filepath
+ *
+ * @return float the microtime the CacheID was invalidated
*/
protected function getLatestInvalidationTimestamp($cid, $resource_name = null, $cache_id = null, $compile_id = null, $resource_uid = null)
{
@@ -321,27 +343,28 @@ abstract class Smarty_CacheResource_KeyValueStore extends Smarty_CacheResource {
if (!($_cid = $this->listInvalidationKeys($cid, $resource_name, $cache_id, $compile_id, $resource_uid))) {
return 0;
}
-
+
// there are no InValidationKeys
if (!($values = $this->read($_cid))) {
return 0;
}
// make sure we're dealing with floats
$values = array_map('floatval', $values);
+
return max($values);
}
/**
* Translate a CacheID into the list of applicable InvalidationKeys.
- *
* Splits "some|chain|into|an|array" into array( '#clearAll#', 'some', 'some|chain', 'some|chain|into', ... )
*
- * @param string $cid CacheID to translate
- * @param string $resource_name template name
- * @param string $cache_id cache id
- * @param string $compile_id compile id
- * @param string $resource_uid source's filepath
- * @return array list of InvalidationKeys
+ * @param string $cid CacheID to translate
+ * @param string $resource_name template name
+ * @param string $cache_id cache id
+ * @param string $compile_id compile id
+ * @param string $resource_uid source's filepath
+ *
+ * @return array list of InvalidationKeys
* @uses $invalidationKeyPrefix to prepend to each InvalidationKey
*/
protected function listInvalidationKeys($cid, $resource_name = null, $cache_id = null, $compile_id = null, $resource_uid = null)
@@ -378,30 +401,35 @@ abstract class Smarty_CacheResource_KeyValueStore extends Smarty_CacheResource {
$t[] = 'IVK#CACHE#' . $part;
$t[] = 'IVK#CID' . $_name . $part . $_compile;
// skip past delimiter position
- $i++;
+ $i ++;
}
+
return $t;
}
/**
* Check is cache is locked for this template
*
- * @param Smarty $smarty Smarty object
- * @param Smarty_Template_Cached $cached cached object
- * @return booelan true or false if cache is locked
+ * @param Smarty $smarty Smarty object
+ * @param Smarty_Template_Cached $cached cached object
+ *
+ * @return boolean true or false if cache is locked
*/
public function hasLock(Smarty $smarty, Smarty_Template_Cached $cached)
{
$key = 'LOCK#' . $cached->filepath;
$data = $this->read(array($key));
+
return $data && time() - $data[$key] < $smarty->locking_timeout;
}
/**
* Lock cache for this template
*
- * @param Smarty $smarty Smarty object
+ * @param Smarty $smarty Smarty object
* @param Smarty_Template_Cached $cached cached object
+ *
+ * @return bool|void
*/
public function acquireLock(Smarty $smarty, Smarty_Template_Cached $cached)
{
@@ -413,8 +441,10 @@ abstract class Smarty_CacheResource_KeyValueStore extends Smarty_CacheResource {
/**
* Unlock cache for this template
*
- * @param Smarty $smarty Smarty object
+ * @param Smarty $smarty Smarty object
* @param Smarty_Template_Cached $cached cached object
+ *
+ * @return bool|void
*/
public function releaseLock(Smarty $smarty, Smarty_Template_Cached $cached)
{
@@ -426,27 +456,30 @@ abstract class Smarty_CacheResource_KeyValueStore extends Smarty_CacheResource {
/**
* Read values for a set of keys from cache
*
- * @param array $keys list of keys to fetch
+ * @param array $keys list of keys to fetch
+ *
* @return array list of values with the given keys used as indexes
*/
- protected abstract function read(array $keys);
+ abstract protected function read(array $keys);
/**
* Save values for a set of keys to cache
*
- * @param array $keys list of values to save
- * @param int $expire expiration time
+ * @param array $keys list of values to save
+ * @param int $expire expiration time
+ *
* @return boolean true on success, false on failure
*/
- protected abstract function write(array $keys, $expire=null);
+ abstract protected function write(array $keys, $expire = null);
/**
* Remove values from cache
*
- * @param array $keys list of keys to delete
+ * @param array $keys list of keys to delete
+ *
* @return boolean true on success, false on failure
*/
- protected abstract function delete(array $keys);
+ abstract protected function delete(array $keys);
/**
* Remove *all* values from cache
@@ -457,7 +490,4 @@ abstract class Smarty_CacheResource_KeyValueStore extends Smarty_CacheResource {
{
return false;
}
-
}
-
-?> \ No newline at end of file
diff --git a/library/Smarty/libs/sysplugins/smarty_config_source.php b/library/Smarty/libs/sysplugins/smarty_config_source.php
index 043ff13e9..fd37e61f7 100644
--- a/library/Smarty/libs/sysplugins/smarty_config_source.php
+++ b/library/Smarty/libs/sysplugins/smarty_config_source.php
@@ -2,34 +2,32 @@
/**
* Smarty Internal Plugin
*
- * @package Smarty
+ * @package Smarty
* @subpackage TemplateResources
*/
/**
* Smarty Resource Data Object
- *
* Meta Data Container for Config Files
*
- * @package Smarty
+ * @package Smarty
* @subpackage TemplateResources
- * @author Rodney Rehm
- *
+ * @author Rodney Rehm
* @property string $content
* @property int $timestamp
* @property bool $exists
*/
-class Smarty_Config_Source extends Smarty_Template_Source {
-
+class Smarty_Config_Source extends Smarty_Template_Source
+{
/**
* create Config Object container
*
- * @param Smarty_Resource $handler Resource Handler this source object communicates with
- * @param Smarty $smarty Smarty instance this source object belongs to
- * @param string $resource full config_resource
- * @param string $type type of resource
- * @param string $name resource name
- * @param string $unique_resource unqiue resource name
+ * @param Smarty_Resource $handler Resource Handler this source object communicates with
+ * @param Smarty $smarty Smarty instance this source object belongs to
+ * @param string $resource full config_resource
+ * @param string $type type of resource
+ * @param string $name resource name
+ * @param string $unique_resource unqiue resource name
*/
public function __construct(Smarty_Resource $handler, Smarty $smarty, $resource, $type, $name, $unique_resource)
{
@@ -50,8 +48,9 @@ class Smarty_Config_Source extends Smarty_Template_Source {
/**
* <<magic>> Generic setter.
*
- * @param string $property_name valid: content, timestamp, exists
- * @param mixed $value newly assigned value (not check for correct type)
+ * @param string $property_name valid: content, timestamp, exists
+ * @param mixed $value newly assigned value (not check for correct type)
+ *
* @throws SmartyException when the given property name is not valid
*/
public function __set($property_name, $value)
@@ -71,7 +70,9 @@ class Smarty_Config_Source extends Smarty_Template_Source {
/**
* <<magic>> Generic getter.
*
- * @param string $property_name valid: content, timestamp, exists
+ * @param string $property_name valid: content, timestamp, exists
+ *
+ * @return mixed|void
* @throws SmartyException when the given property name is not valid
*/
public function __get($property_name)
@@ -80,6 +81,7 @@ class Smarty_Config_Source extends Smarty_Template_Source {
case 'timestamp':
case 'exists':
$this->handler->populateTimestamp($this);
+
return $this->$property_name;
case 'content':
@@ -89,7 +91,4 @@ class Smarty_Config_Source extends Smarty_Template_Source {
throw new SmartyException("config property '$property_name' does not exist.");
}
}
-
}
-
-?> \ No newline at end of file
diff --git a/library/Smarty/libs/sysplugins/smarty_internal_cacheresource_file.php b/library/Smarty/libs/sysplugins/smarty_internal_cacheresource_file.php
index e5d20bd6e..b8e99cc69 100644
--- a/library/Smarty/libs/sysplugins/smarty_internal_cacheresource_file.php
+++ b/library/Smarty/libs/sysplugins/smarty_internal_cacheresource_file.php
@@ -2,27 +2,27 @@
/**
* Smarty Internal Plugin CacheResource File
*
- * @package Smarty
+ * @package Smarty
* @subpackage Cacher
- * @author Uwe Tews
- * @author Rodney Rehm
+ * @author Uwe Tews
+ * @author Rodney Rehm
*/
/**
* This class does contain all necessary methods for the HTML cache on file system
- *
* Implements the file system as resource for the HTML cache Version ussing nocache inserts.
*
- * @package Smarty
+ * @package Smarty
* @subpackage Cacher
*/
-class Smarty_Internal_CacheResource_File extends Smarty_CacheResource {
-
+class Smarty_Internal_CacheResource_File extends Smarty_CacheResource
+{
/**
* populate Cached Object with meta data from Resource
*
* @param Smarty_Template_Cached $cached cached object
* @param Smarty_Internal_Template $_template template object
+ *
* @return void
*/
public function populate(Smarty_Template_Cached $cached, Smarty_Internal_Template $_template)
@@ -58,7 +58,7 @@ class Smarty_Internal_CacheResource_File extends Smarty_CacheResource {
} else {
$_lock_dir = $_cache_dir;
}
- $cached->lock_id = $_lock_dir.sha1($_cache_id.$_compile_id.$_template->source->uid).'.lock';
+ $cached->lock_id = $_lock_dir . sha1($_cache_id . $_compile_id . $_template->source->uid) . '.lock';
}
$cached->filepath = $_cache_dir . $_cache_id . $_compile_id . $_filepath . '.' . basename($_source_file_path) . '.php';
$cached->timestamp = @filemtime($cached->filepath);
@@ -69,6 +69,7 @@ class Smarty_Internal_CacheResource_File extends Smarty_CacheResource {
* populate Cached Object with timestamp and exists from Resource
*
* @param Smarty_Template_Cached $cached cached object
+ *
* @return void
*/
public function populateTimestamp(Smarty_Template_Cached $cached)
@@ -81,12 +82,17 @@ class Smarty_Internal_CacheResource_File extends Smarty_CacheResource {
* Read the cached template and process its header
*
* @param Smarty_Internal_Template $_template template object
- * @param Smarty_Template_Cached $cached cached object
- * @return booelan true or false if the cached content does not exist
+ * @param Smarty_Template_Cached $cached cached object
+ *
+ * @return booleantrue or false if the cached content does not exist
*/
- public function process(Smarty_Internal_Template $_template, Smarty_Template_Cached $cached=null)
+ public function process(Smarty_Internal_Template $_template, Smarty_Template_Cached $cached = null)
{
+ /** @var Smarty_Internal_Template $_smarty_tpl
+ * used in included file
+ */
$_smarty_tpl = $_template;
+
return @include $_template->cached->filepath;
}
@@ -95,6 +101,7 @@ class Smarty_Internal_CacheResource_File extends Smarty_CacheResource {
*
* @param Smarty_Internal_Template $_template template object
* @param string $content content to cache
+ *
* @return boolean success
*/
public function writeCachedContent(Smarty_Internal_Template $_template, $content)
@@ -106,14 +113,16 @@ class Smarty_Internal_CacheResource_File extends Smarty_CacheResource {
return true;
}
}
+
return false;
}
/**
* Empty cache
*
- * @param Smarty_Internal_Template $_template template object
- * @param integer $exp_time expiration time (number of seconds, not timestamp)
+ * @param Smarty $smarty
+ * @param integer $exp_time expiration time (number of seconds, not timestamp)
+ *
* @return integer number of cache files deleted
*/
public function clearAll(Smarty $smarty, $exp_time = null)
@@ -124,20 +133,24 @@ class Smarty_Internal_CacheResource_File extends Smarty_CacheResource {
/**
* Empty cache for a specific template
*
- * @param Smarty $_template template object
+ * @param Smarty $smarty
* @param string $resource_name template name
* @param string $cache_id cache id
* @param string $compile_id compile id
* @param integer $exp_time expiration time (number of seconds, not timestamp)
+ *
* @return integer number of cache files deleted
- */
+ */
public function clear(Smarty $smarty, $resource_name, $cache_id, $compile_id, $exp_time)
{
$_cache_id = isset($cache_id) ? preg_replace('![^\w\|]+!', '_', $cache_id) : null;
$_compile_id = isset($compile_id) ? preg_replace('![^\w\|]+!', '_', $compile_id) : null;
$_dir_sep = $smarty->use_sub_dirs ? '/' : '^';
$_compile_id_offset = $smarty->use_sub_dirs ? 3 : 0;
- $_dir = $smarty->getCacheDir();
+ if (($_dir = realpath($smarty->getCacheDir())) === false) {
+ return 0;
+ }
+ $_dir .= '/';
$_dir_length = strlen($_dir);
if (isset($_cache_id)) {
$_cache_id_parts = explode('|', $_cache_id);
@@ -178,7 +191,9 @@ class Smarty_Internal_CacheResource_File extends Smarty_CacheResource {
$_cacheDirs = new RecursiveDirectoryIterator($_dir);
$_cache = new RecursiveIteratorIterator($_cacheDirs, RecursiveIteratorIterator::CHILD_FIRST);
foreach ($_cache as $_file) {
- if (substr($_file->getBasename(),0,1) == '.' || strpos($_file, '.svn') !== false) continue;
+ if (substr(basename($_file->getPathname()), 0, 1) == '.' || strpos($_file, '.svn') !== false) {
+ continue;
+ }
// directory ?
if ($_file->isDir()) {
if (!$_cache->isDot()) {
@@ -186,16 +201,16 @@ class Smarty_Internal_CacheResource_File extends Smarty_CacheResource {
@rmdir($_file->getPathname());
}
} else {
- $_parts = explode($_dir_sep, str_replace('\\', '/', substr((string)$_file, $_dir_length)));
+ $_parts = explode($_dir_sep, str_replace('\\', '/', substr((string) $_file, $_dir_length)));
$_parts_count = count($_parts);
// check name
if (isset($resource_name)) {
- if ($_parts[$_parts_count-1] != $_resourcename_parts) {
+ if ($_parts[$_parts_count - 1] != $_resourcename_parts) {
continue;
}
}
// check compile id
- if (isset($_compile_id) && (!isset($_parts[$_parts_count-2 - $_compile_id_offset]) || $_parts[$_parts_count-2 - $_compile_id_offset] != $_compile_id)) {
+ if (isset($_compile_id) && (!isset($_parts[$_parts_count - 2 - $_compile_id_offset]) || $_parts[$_parts_count - 2 - $_compile_id_offset] != $_compile_id)) {
continue;
}
// check cache id
@@ -205,27 +220,40 @@ class Smarty_Internal_CacheResource_File extends Smarty_CacheResource {
if ($_parts_count < $_cache_id_parts_count) {
continue;
}
- for ($i = 0; $i < $_cache_id_parts_count; $i++) {
- if ($_parts[$i] != $_cache_id_parts[$i]) continue 2;
+ for ($i = 0; $i < $_cache_id_parts_count; $i ++) {
+ if ($_parts[$i] != $_cache_id_parts[$i]) {
+ continue 2;
+ }
}
}
// expired ?
- if (isset($exp_time) && $_time - @filemtime($_file) < $exp_time) {
- continue;
+ if (isset($exp_time)) {
+ if ($exp_time < 0) {
+ preg_match('#\'cache_lifetime\' =>\s*(\d*)#', file_get_contents($_file), $match);
+ if ($_time < (@filemtime($_file) + $match[1])) {
+ continue;
+ }
+ } else {
+ if ($_time - @filemtime($_file) < $exp_time) {
+ continue;
+ }
+ }
}
$_count += @unlink((string) $_file) ? 1 : 0;
}
}
}
+
return $_count;
}
/**
* Check is cache is locked for this template
*
- * @param Smarty $smarty Smarty object
+ * @param Smarty $smarty Smarty object
* @param Smarty_Template_Cached $cached cached object
- * @return booelan true or false if cache is locked
+ *
+ * @return boolean true or false if cache is locked
*/
public function hasLock(Smarty $smarty, Smarty_Template_Cached $cached)
{
@@ -235,14 +263,17 @@ class Smarty_Internal_CacheResource_File extends Smarty_CacheResource {
clearstatcache();
}
$t = @filemtime($cached->lock_id);
+
return $t && (time() - $t < $smarty->locking_timeout);
}
/**
* Lock cache for this template
*
- * @param Smarty $smarty Smarty object
+ * @param Smarty $smarty Smarty object
* @param Smarty_Template_Cached $cached cached object
+ *
+ * @return bool|void
*/
public function acquireLock(Smarty $smarty, Smarty_Template_Cached $cached)
{
@@ -253,8 +284,10 @@ class Smarty_Internal_CacheResource_File extends Smarty_CacheResource {
/**
* Unlock cache for this template
*
- * @param Smarty $smarty Smarty object
+ * @param Smarty $smarty Smarty object
* @param Smarty_Template_Cached $cached cached object
+ *
+ * @return bool|void
*/
public function releaseLock(Smarty $smarty, Smarty_Template_Cached $cached)
{
@@ -262,5 +295,3 @@ class Smarty_Internal_CacheResource_File extends Smarty_CacheResource {
@unlink($cached->lock_id);
}
}
-
-?> \ No newline at end of file
diff --git a/library/Smarty/libs/sysplugins/smarty_internal_compile_append.php b/library/Smarty/libs/sysplugins/smarty_internal_compile_append.php
index f6036e883..cbf65685b 100644
--- a/library/Smarty/libs/sysplugins/smarty_internal_compile_append.php
+++ b/library/Smarty/libs/sysplugins/smarty_internal_compile_append.php
@@ -1,28 +1,28 @@
<?php
/**
* Smarty Internal Plugin Compile Append
- *
* Compiles the {append} tag
*
- * @package Smarty
+ * @package Smarty
* @subpackage Compiler
- * @author Uwe Tews
+ * @author Uwe Tews
*/
/**
* Smarty Internal Plugin Compile Append Class
*
- * @package Smarty
+ * @package Smarty
* @subpackage Compiler
*/
-class Smarty_Internal_Compile_Append extends Smarty_Internal_Compile_Assign {
-
+class Smarty_Internal_Compile_Append extends Smarty_Internal_Compile_Assign
+{
/**
* Compiles code for the {append} tag
*
- * @param array $args array with attributes from parser
- * @param object $compiler compiler object
- * @param array $parameter array with compilation parameter
+ * @param array $args array with attributes from parser
+ * @param object $compiler compiler object
+ * @param array $parameter array with compilation parameter
+ *
* @return string compiled code
*/
public function compile($args, $compiler, $parameter)
@@ -47,7 +47,4 @@ class Smarty_Internal_Compile_Append extends Smarty_Internal_Compile_Assign {
// call compile assign
return parent::compile($_new_attr, $compiler, $_params);
}
-
}
-
-?> \ No newline at end of file
diff --git a/library/Smarty/libs/sysplugins/smarty_internal_compile_assign.php b/library/Smarty/libs/sysplugins/smarty_internal_compile_assign.php
index 0ac3f68ce..caa34861f 100644
--- a/library/Smarty/libs/sysplugins/smarty_internal_compile_assign.php
+++ b/library/Smarty/libs/sysplugins/smarty_internal_compile_assign.php
@@ -1,28 +1,28 @@
<?php
/**
* Smarty Internal Plugin Compile Assign
- *
* Compiles the {assign} tag
*
- * @package Smarty
+ * @package Smarty
* @subpackage Compiler
- * @author Uwe Tews
+ * @author Uwe Tews
*/
/**
* Smarty Internal Plugin Compile Assign Class
*
- * @package Smarty
+ * @package Smarty
* @subpackage Compiler
*/
-class Smarty_Internal_Compile_Assign extends Smarty_Internal_CompileBase {
-
+class Smarty_Internal_Compile_Assign extends Smarty_Internal_CompileBase
+{
/**
* Compiles code for the {assign} tag
*
- * @param array $args array with attributes from parser
- * @param object $compiler compiler object
- * @param array $parameter array with compilation parameter
+ * @param array $args array with attributes from parser
+ * @param object $compiler compiler object
+ * @param array $parameter array with compilation parameter
+ *
* @return string compiled code
*/
public function compile($args, $compiler, $parameter)
@@ -39,7 +39,11 @@ class Smarty_Internal_Compile_Assign extends Smarty_Internal_CompileBase {
if ($compiler->tag_nocache || $compiler->nocache) {
$_nocache = 'true';
// create nocache var to make it know for further compiling
- $compiler->template->tpl_vars[trim($_attr['var'], "'")] = new Smarty_variable(null, true);
+ if (isset($compiler->template->tpl_vars[trim($_attr['var'], "'")])) {
+ $compiler->template->tpl_vars[trim($_attr['var'], "'")]->nocache = true;
+ } else {
+ $compiler->template->tpl_vars[trim($_attr['var'], "'")] = new Smarty_variable(null, true);
+ }
}
// scope setup
if (isset($_attr['scope'])) {
@@ -72,13 +76,11 @@ class Smarty_Internal_Compile_Assign extends Smarty_Internal_CompileBase {
} elseif ($_scope == Smarty::SCOPE_ROOT || $_scope == Smarty::SCOPE_GLOBAL) {
$output .= "\n\$_ptr = \$_smarty_tpl->parent; while (\$_ptr != null) {\$_ptr->tpl_vars[$_attr[var]] = clone \$_smarty_tpl->tpl_vars[$_attr[var]]; \$_ptr = \$_ptr->parent; }";
}
- if ( $_scope == Smarty::SCOPE_GLOBAL) {
+ if ($_scope == Smarty::SCOPE_GLOBAL) {
$output .= "\nSmarty::\$global_tpl_vars[$_attr[var]] = clone \$_smarty_tpl->tpl_vars[$_attr[var]];";
}
$output .= '?>';
+
return $output;
}
-
}
-
-?> \ No newline at end of file
diff --git a/library/Smarty/libs/sysplugins/smarty_internal_compile_block.php b/library/Smarty/libs/sysplugins/smarty_internal_compile_block.php
index 03abf493e..8c2fb975f 100644
--- a/library/Smarty/libs/sysplugins/smarty_internal_compile_block.php
+++ b/library/Smarty/libs/sysplugins/smarty_internal_compile_block.php
@@ -2,22 +2,23 @@
/**
* Smarty Internal Plugin Compile Block
- *
* Compiles the {block}{/block} tags
*
- * @package Smarty
+ * @package Smarty
* @subpackage Compiler
- * @author Uwe Tews
+ * @author Uwe Tews
*/
/**
* Smarty Internal Plugin Compile Block Class
*
- * @package Smarty
+ * @package Smarty
* @subpackage Compiler
*/
-class Smarty_Internal_Compile_Block extends Smarty_Internal_CompileBase {
+class Smarty_Internal_Compile_Block extends Smarty_Internal_CompileBase
+{
+ const parent = '____SMARTY_BLOCK_PARENT____';
/**
* Attribute definition: Overwrites base class.
*
@@ -32,7 +33,15 @@ class Smarty_Internal_Compile_Block extends Smarty_Internal_CompileBase {
* @var array
* @see Smarty_Internal_CompileBase
*/
- public $shorttag_order = array('name', 'hide');
+ public $shorttag_order = array('name');
+
+ /**
+ * Attribute definition: Overwrites base class.
+ *
+ * @var array
+ * @see Smarty_Internal_CompileBase
+ */
+ public $option_flags = array('hide', 'append', 'prepend', 'nocache');
/**
* Attribute definition: Overwrites base class.
@@ -40,161 +49,140 @@ class Smarty_Internal_Compile_Block extends Smarty_Internal_CompileBase {
* @var array
* @see Smarty_Internal_CompileBase
*/
- public $optional_attributes = array('hide');
+ public $optional_attributes = array('internal_file', 'internal_uid', 'internal_line');
+ /**
+ * nested child block names
+ *
+ * @var array
+ */
+ public static $nested_block_names = array();
+
+ /**
+ * child block source buffer
+ *
+ * @var array
+ */
+ public static $block_data = array();
/**
* Compiles code for the {block} tag
*
* @param array $args array with attributes from parser
* @param object $compiler compiler object
+ *
* @return boolean true
*/
- public function compile($args, $compiler) {
+ public function compile($args, $compiler)
+ {
// check and get attributes
$_attr = $this->getAttributes($compiler, $args);
- $save = array($_attr, $compiler->parser->current_buffer, $compiler->nocache, $compiler->smarty->merge_compiled_includes, $compiler->merged_templates, $compiler->smarty->merged_templates_func, $compiler->template->properties, $compiler->template->has_nocache_code);
- $this->openTag($compiler, 'block', $save);
+ $_name = trim($_attr['name'], "\"'");
+
+ // existing child must override parent settings
+ if (isset($compiler->template->block_data[$_name]) && $compiler->template->block_data[$_name]['mode'] == 'replace') {
+ $_attr['append'] = false;
+ $_attr['prepend'] = false;
+ }
+
+ // check if we process an inheritance child template
+ if ($compiler->inheritance_child) {
+ array_unshift(self::$nested_block_names, $_name);
+ // build {block} for child block
+ self::$block_data[$_name]['source'] =
+ "{$compiler->smarty->left_delimiter}private_child_block name={$_attr['name']} file='{$compiler->template->source->filepath}' type='{$compiler->template->source->type}' resource='{$compiler->template->template_resource}'" .
+ " uid='{$compiler->template->source->uid}' line={$compiler->lex->line}";
+ if ($_attr['nocache']) {
+ self::$block_data[$_name]['source'] .= ' nocache';
+ }
+ self::$block_data[$_name]['source'] .= $compiler->smarty->right_delimiter;
+
+ $save = array($_attr, $compiler->inheritance);
+ $this->openTag($compiler, 'block', $save);
+ // set flag for {block} tag
+ $compiler->inheritance = true;
+ $compiler->lex->yypushstate(Smarty_Internal_Templatelexer::CHILDBLOCK);
+ $compiler->has_code = false;
+ return;
+ }
+ // must merge includes
if ($_attr['nocache'] == true) {
- $compiler->nocache = true;
+ $compiler->tag_nocache = true;
}
- // set flag for {block} tag
+ $save = array($_attr, $compiler->inheritance, $compiler->parser->current_buffer, $compiler->nocache);
+ $this->openTag($compiler, 'block', $save);
$compiler->inheritance = true;
- // must merge includes
- $compiler->smarty->merge_compiled_includes = true;
+ $compiler->nocache = $compiler->nocache | $compiler->tag_nocache;
$compiler->parser->current_buffer = new _smarty_template_buffer($compiler->parser);
$compiler->has_code = false;
+
return true;
}
/**
- * Save or replace child block source by block name during parsing
+ * Compile saved child block source
*
- * @param string $block_content block source content
- * @param string $block_tag opening block tag
- * @param object $template template object
- * @param string $filepath filepath of template source
+ * @param object $compiler compiler object
+ * @param string $_name optional name of child block
+ *
+ * @return string compiled code of child block
*/
- public static function saveBlockData($block_content, $block_tag, $template, $filepath) {
- $_rdl = preg_quote($template->smarty->right_delimiter);
- $_ldl = preg_quote($template->smarty->left_delimiter);
- if ($template->smarty->auto_literal) {
- $al = '\s*';
- } else {
- $al = '';
- }
- if (0 == preg_match("!({$_ldl}{$al}block\s+)(name=)?(\w+|'.*'|\".*\")(\s*?)?((append|prepend|nocache)?(\s*)?(hide)?)?(\s*{$_rdl})!", $block_tag, $_match)) {
- $error_text = 'Syntax Error in template "' . $template->source->filepath . '" "' . htmlspecialchars($block_tag) . '" illegal options';
- throw new SmartyCompilerException($error_text);
- } else {
- $_name = trim($_match[3], '\'"');
- if ($_match[8] != 'hide' || isset($template->block_data[$_name])) { // replace {$smarty.block.child}
- // do we have {$smart.block.child} in nested {block} tags?
- if (0 != preg_match_all("!({$_ldl}{$al}block\s+)(name=)?(\w+|'.*'|\".*\")([\s\S]*?)(hide)?(\s*{$_rdl})([\s\S]*?)({$_ldl}{$al}\\\$smarty\.block\.child{$_rdl})([\s\S]*?{$_ldl}{$al}/block{$_rdl})!", $block_content, $_match2)) {
- foreach ($_match2[3] as $key => $name) {
- // get it's replacement
- $_name2 = trim($name, '\'"');
- if ($_match2[5][$key] != 'hide' || isset($template->block_data[$_name2])) {
- if (isset($template->block_data[$_name2])) {
- $replacement = $template->block_data[$_name2]['source'];
- } else {
- $replacement = '';
- }
- // replace {$smarty.block.child} tag
- $search = array("%({$_ldl}{$al}block[\s\S]*?{$name}[\s\S]*?{$_rdl})([\s\S]*?)({$_ldl}{$al}\\\$smarty\.block\.child{$_rdl})([\s\S]*?)({$_ldl}{$al}/block{$_rdl})%", "/§§§child§§§/");
- $replace = array('\2§§§child§§§\4', $replacement);
- $block_content = preg_replace($search, $replace, $block_content);
- } else {
- // remove hidden blocks
- $block_content = preg_replace("%({$_ldl}{$al}block[\s\S]*?{$name}[\s\S]*?{$_rdl}[\s\S]*?{$_ldl}{$al}/block{$_rdl})%", '', $block_content);
- }
- }
- }
- // do we have not nested {$smart.block.child}
- if (0 != preg_match("/({$_ldl}{$al}\\\$smarty\.block\.child{$_rdl})/", $block_content, $_match2)) {
- // get child replacement for this block
- if (isset($template->block_data[$_name])) {
- $replacement = $template->block_data[$_name]['source'];
- unset($template->block_data[$_name]);
- } else {
- $replacement = '';
- }
- $block_content = preg_replace("/({$_ldl}{$al}\\\$smarty\.block\.child{$_rdl})/", $replacement, $block_content);
- }
- if (isset($template->block_data[$_name])) {
- if (strpos($template->block_data[$_name]['source'], '%%%%SMARTY_PARENT%%%%') !== false) {
- $template->block_data[$_name]['source'] =
- str_replace('%%%%SMARTY_PARENT%%%%', $block_content, $template->block_data[$_name]['source']);
- } elseif ($template->block_data[$_name]['mode'] == 'prepend') {
- $template->block_data[$_name]['source'] .= $block_content;
- } elseif ($template->block_data[$_name]['mode'] == 'append') {
- $template->block_data[$_name]['source'] = $block_content . $template->block_data[$_name]['source'];
- }
- } else {
- $template->block_data[$_name]['source'] = $block_content;
- $template->block_data[$_name]['file'] = $filepath;
- }
- if ($_match[6] == 'append') {
- $template->block_data[$_name]['mode'] = 'append';
- } elseif ($_match[6] == 'prepend') {
- $template->block_data[$_name]['mode'] = 'prepend';
- } else {
- $template->block_data[$_name]['mode'] = 'replace';
- }
+ static function compileChildBlock($compiler, $_name = null)
+ {
+ if ($compiler->inheritance_child) {
+ $name1 = Smarty_Internal_Compile_Block::$nested_block_names[0];
+ if (isset($compiler->template->block_data[$name1])) {
+ // replace inner block name with generic
+ Smarty_Internal_Compile_Block::$block_data[$name1]['source'] .= $compiler->template->block_data[$name1]['source'];
+ Smarty_Internal_Compile_Block::$block_data[$name1]['child'] = true;
}
+ $compiler->lex->yypushstate(Smarty_Internal_Templatelexer::CHILDBLOCK);
+ $compiler->has_code = false;
+ return;
}
- }
-
- /**
- * Compile saved child block source
- *
- * @param object $compiler compiler object
- * @param string $_name optional name of child block
- * @return string compiled code of schild block
- */
- public static function compileChildBlock($compiler, $_name = null) {
- $_output = '';
// if called by {$smarty.block.child} we must search the name of enclosing {block}
if ($_name == null) {
$stack_count = count($compiler->_tag_stack);
while (--$stack_count >= 0) {
if ($compiler->_tag_stack[$stack_count][0] == 'block') {
- $_name = trim($compiler->_tag_stack[$stack_count][1][0]['name'], "'\"");
+ $_name = trim($compiler->_tag_stack[$stack_count][1][0]['name'], "\"'");
break;
}
}
- // flag that child is already compile by {$smarty.block.child} inclusion
- $compiler->template->block_data[$_name]['compiled'] = true;
}
if ($_name == null) {
- $compiler->trigger_template_error('{$smarty.block.child} used out of context', $compiler->lex->taglineno);
+ $compiler->trigger_template_error(' tag {$smarty.block.child} used outside {block} tags ', $compiler->lex->taglineno);
}
// undefined child?
if (!isset($compiler->template->block_data[$_name]['source'])) {
+ $compiler->popTrace();
return '';
}
+ // flag that child is already compile by {$smarty.block.child} inclusion
+ $compiler->template->block_data[$_name]['compiled'] = true;
$_tpl = new Smarty_Internal_template('string:' . $compiler->template->block_data[$_name]['source'], $compiler->smarty, $compiler->template, $compiler->template->cache_id,
- $compiler->template->compile_id = null, $compiler->template->caching, $compiler->template->cache_lifetime);
+ $compiler->template->compile_id, $compiler->template->caching, $compiler->template->cache_lifetime);
+ if ($compiler->smarty->debugging) {
+ Smarty_Internal_Debug::ignore($_tpl);
+ }
+ $_tpl->tpl_vars = $compiler->template->tpl_vars;
$_tpl->variable_filters = $compiler->template->variable_filters;
$_tpl->properties['nocache_hash'] = $compiler->template->properties['nocache_hash'];
- $_tpl->source->filepath = $compiler->template->block_data[$_name]['file'];
$_tpl->allow_relative_path = true;
- if ($compiler->nocache) {
- $_tpl->compiler->forceNocache = 2;
- } else {
- $_tpl->compiler->forceNocache = 1;
- }
+ $_tpl->compiler->inheritance = true;
$_tpl->compiler->suppressHeader = true;
+ $_tpl->compiler->suppressFilter = true;
$_tpl->compiler->suppressTemplatePropertyHeader = true;
$_tpl->compiler->suppressMergedTemplates = true;
- if (strpos($compiler->template->block_data[$_name]['source'], '%%%%SMARTY_PARENT%%%%') !== false) {
- $_output = str_replace('%%%%SMARTY_PARENT%%%%', $compiler->parser->current_buffer->to_smarty_php(), $_tpl->compiler->compileTemplate($_tpl));
+ $nocache = $compiler->nocache || $compiler->tag_nocache;
+ if (strpos($compiler->template->block_data[$_name]['source'], self::parent) !== false) {
+ $_output = str_replace(self::parent, $compiler->parser->current_buffer->to_smarty_php(), $_tpl->compiler->compileTemplate($_tpl, $nocache));
} elseif ($compiler->template->block_data[$_name]['mode'] == 'prepend') {
- $_output = $_tpl->compiler->compileTemplate($_tpl) . $compiler->parser->current_buffer->to_smarty_php();
+ $_output = $_tpl->compiler->compileTemplate($_tpl, $nocache) . $compiler->parser->current_buffer->to_smarty_php();
} elseif ($compiler->template->block_data[$_name]['mode'] == 'append') {
- $_output = $compiler->parser->current_buffer->to_smarty_php() . $_tpl->compiler->compileTemplate($_tpl);
+ $_output = $compiler->parser->current_buffer->to_smarty_php() . $_tpl->compiler->compileTemplate($_tpl, $nocache);
} elseif (!empty($compiler->template->block_data[$_name])) {
- $_output = $_tpl->compiler->compileTemplate($_tpl);
+ $_output = $_tpl->compiler->compileTemplate($_tpl, $nocache);
}
$compiler->template->properties['file_dependency'] = array_merge($compiler->template->properties['file_dependency'], $_tpl->properties['file_dependency']);
$compiler->template->properties['function'] = array_merge($compiler->template->properties['function'], $_tpl->properties['function']);
@@ -216,62 +204,241 @@ class Smarty_Internal_Compile_Block extends Smarty_Internal_CompileBase {
}
}
unset($_tpl);
+ $compiler->has_code = true;
return $_output;
}
+ /**
+ * Compile $smarty.block.parent
+ *
+ * @param object $compiler compiler object
+ * @param string $_name optional name of child block
+ *
+ * @return string compiled code of child block
+ */
+ static function compileParentBlock($compiler, $_name = null)
+ {
+ // if called by {$smarty.block.parent} we must search the name of enclosing {block}
+ if ($_name == null) {
+ $stack_count = count($compiler->_tag_stack);
+ while (--$stack_count >= 0) {
+ if ($compiler->_tag_stack[$stack_count][0] == 'block') {
+ $_name = trim($compiler->_tag_stack[$stack_count][1][0]['name'], "\"'");
+ break;
+ }
+ }
+ }
+ if ($_name == null) {
+ $compiler->trigger_template_error(' tag {$smarty.block.parent} used outside {block} tags ', $compiler->lex->taglineno);
+ }
+ if (empty(Smarty_Internal_Compile_Block::$nested_block_names)) {
+ $compiler->trigger_template_error(' illegal {$smarty.block.parent} in parent template ', $compiler->lex->taglineno);
+ }
+ Smarty_Internal_Compile_Block::$block_data[Smarty_Internal_Compile_Block::$nested_block_names[0]]['source'] .= Smarty_Internal_Compile_Block::parent;
+ $compiler->lex->yypushstate(Smarty_Internal_Templatelexer::CHILDBLOCK);
+ $compiler->has_code = false;
+ return;
+ }
+
+ /**
+ * Process block source
+ *
+ * @param $compiler
+ * @param string $source source text
+ *
+ */
+ static function blockSource($compiler, $source)
+ {
+ Smarty_Internal_Compile_Block::$block_data[Smarty_Internal_Compile_Block::$nested_block_names[0]]['source'] .= $source;
+ }
}
/**
* Smarty Internal Plugin Compile BlockClose Class
*
- * @package Smarty
+ * @package Smarty
* @subpackage Compiler
*/
-class Smarty_Internal_Compile_Blockclose extends Smarty_Internal_CompileBase {
-
+class Smarty_Internal_Compile_Blockclose extends Smarty_Internal_CompileBase
+{
/**
* Compiles code for the {/block} tag
*
* @param array $args array with attributes from parser
* @param object $compiler compiler object
+ *
* @return string compiled code
*/
- public function compile($args, $compiler) {
+ public function compile($args, $compiler)
+ {
$compiler->has_code = true;
// check and get attributes
$_attr = $this->getAttributes($compiler, $args);
$saved_data = $this->closeTag($compiler, array('block'));
$_name = trim($saved_data[0]['name'], "\"'");
+ // reset flag for {block} tag
+ $compiler->inheritance = $saved_data[1];
+ // check if we process an inheritance child template
+ if ($compiler->inheritance_child) {
+ $name1 = Smarty_Internal_Compile_Block::$nested_block_names[0];
+ Smarty_Internal_Compile_Block::$block_data[$name1]['source'] .= "{$compiler->smarty->left_delimiter}/private_child_block{$compiler->smarty->right_delimiter}";
+ array_shift(Smarty_Internal_Compile_Block::$nested_block_names);
+ if (!empty(Smarty_Internal_Compile_Block::$nested_block_names)) {
+ $name2 = Smarty_Internal_Compile_Block::$nested_block_names[0];
+ if (isset($compiler->template->block_data[$name1]) || !$saved_data[0]['hide']) {
+ if (isset(Smarty_Internal_Compile_Block::$block_data[$name1]['child']) || !isset($compiler->template->block_data[$name1])) {
+ Smarty_Internal_Compile_Block::$block_data[$name2]['source'] .= Smarty_Internal_Compile_Block::$block_data[$name1]['source'];
+ } else {
+ if ($compiler->template->block_data[$name1]['mode'] == 'append') {
+ Smarty_Internal_Compile_Block::$block_data[$name2]['source'] .= Smarty_Internal_Compile_Block::$block_data[$name1]['source'] . $compiler->template->block_data[$name1]['source'];
+ } elseif ($compiler->template->block_data[$name1]['mode'] == 'prepend') {
+ Smarty_Internal_Compile_Block::$block_data[$name2]['source'] .= $compiler->template->block_data[$name1]['source'] . Smarty_Internal_Compile_Block::$block_data[$name1]['source'];
+ } else {
+ Smarty_Internal_Compile_Block::$block_data[$name2]['source'] .= $compiler->template->block_data[$name1]['source'];
+ }
+ }
+ }
+ unset(Smarty_Internal_Compile_Block::$block_data[$name1]);
+ $compiler->lex->yypushstate(Smarty_Internal_Templatelexer::CHILDBLOCK);
+ } else {
+ if (isset($compiler->template->block_data[$name1]) || !$saved_data[0]['hide']) {
+ if (isset($compiler->template->block_data[$name1]) && !isset(Smarty_Internal_Compile_Block::$block_data[$name1]['child'])) {
+ if (strpos($compiler->template->block_data[$name1]['source'], Smarty_Internal_Compile_Block::parent) !== false) {
+ $compiler->template->block_data[$name1]['source'] =
+ str_replace(Smarty_Internal_Compile_Block::parent, Smarty_Internal_Compile_Block::$block_data[$name1]['source'], $compiler->template->block_data[$name1]['source']);
+ } elseif ($compiler->template->block_data[$name1]['mode'] == 'prepend') {
+ $compiler->template->block_data[$name1]['source'] .= Smarty_Internal_Compile_Block::$block_data[$name1]['source'];
+ } elseif ($compiler->template->block_data[$name1]['mode'] == 'append') {
+ $compiler->template->block_data[$name1]['source'] = Smarty_Internal_Compile_Block::$block_data[$name1]['source'] . $compiler->template->block_data[$name1]['source'];
+ }
+ } else {
+ $compiler->template->block_data[$name1]['source'] = Smarty_Internal_Compile_Block::$block_data[$name1]['source'];
+ }
+ $compiler->template->block_data[$name1]['mode'] = 'replace';
+ if ($saved_data[0]['append']) {
+ $compiler->template->block_data[$name1]['mode'] = 'append';
+ }
+ if ($saved_data[0]['prepend']) {
+ $compiler->template->block_data[$name1]['mode'] = 'prepend';
+ }
+ }
+ unset(Smarty_Internal_Compile_Block::$block_data[$name1]);
+ $compiler->lex->yypushstate(Smarty_Internal_Templatelexer::CHILDBODY);
+ }
+ $compiler->has_code = false;
+ return;
+ }
if (isset($compiler->template->block_data[$_name]) && !isset($compiler->template->block_data[$_name]['compiled'])) {
- // restore to status before {block} tag as new subtemplate code of parent {block} is not needed
- // TODO: Below code was disabled in 3.1.8 because of problems with {include} in nested {block} tags in child templates
- // combined with append/prepend or $smarty.block.parent
- // For later versions it should be checked under which conditions it could run for optimisation
- //
- //$compiler->merged_templates = $saved_data[4];
- //$compiler->smarty->merged_templates_func = $saved_data[5];
- //$compiler->template->properties = $saved_data[6];
- //$compiler->template->has_nocache_code = $saved_data[7];
$_output = Smarty_Internal_Compile_Block::compileChildBlock($compiler, $_name);
} else {
- if (isset($saved_data[0]['hide']) && !isset($compiler->template->block_data[$_name]['source'])) {
+ if ($saved_data[0]['hide'] && !isset($compiler->template->block_data[$_name]['source'])) {
$_output = '';
} else {
$_output = $compiler->parser->current_buffer->to_smarty_php();
}
- unset($compiler->template->block_data[$_name]['compiled']);
}
+ unset($compiler->template->block_data[$_name]['compiled']);
// reset flags
- $compiler->parser->current_buffer = $saved_data[1];
- $compiler->nocache = $saved_data[2];
- $compiler->smarty->merge_compiled_includes = $saved_data[3];
- // reset flag for {block} tag
- $compiler->inheritance = false;
+ $compiler->parser->current_buffer = $saved_data[2];
+ if ($compiler->nocache) {
+ $compiler->tag_nocache = true;
+ }
+ $compiler->nocache = $saved_data[3];
// $_output content has already nocache code processed
$compiler->suppressNocacheProcessing = true;
+
return $_output;
}
+}
+
+/**
+ * Smarty Internal Plugin Compile Child Block Class
+ *
+ * @package Smarty
+ * @subpackage Compiler
+ */
+class Smarty_Internal_Compile_Private_Child_Block extends Smarty_Internal_CompileBase
+{
+
+ /**
+ * Attribute definition: Overwrites base class.
+ *
+ * @var array
+ * @see Smarty_Internal_CompileBase
+ */
+ public $required_attributes = array('name', 'file', 'uid', 'line', 'type', 'resource');
+ /**
+ * Compiles code for the {private_child_block} tag
+ *
+ * @param array $args array with attributes from parser
+ * @param object $compiler compiler object
+ *
+ * @return boolean true
+ */
+ public function compile($args, $compiler)
+ {
+ // check and get attributes
+ $_attr = $this->getAttributes($compiler, $args);
+
+ // update template with original template resource of {block}
+ if (trim($_attr['type'], "'") == 'file') {
+ $compiler->template->template_resource = 'file:' . realpath(trim($_attr['file'], "'"));
+ } else {
+ $compiler->template->template_resource = trim($_attr['resource'], "'");
+ }
+ // source object
+ unset ($compiler->template->source);
+ $exists = $compiler->template->source->exists;
+
+ // must merge includes
+ if ($_attr['nocache'] == true) {
+ $compiler->tag_nocache = true;
+ }
+ $save = array($_attr, $compiler->nocache);
+
+ // set trace back to child block
+ $compiler->pushTrace(trim($_attr['file'], "\"'"), trim($_attr['uid'], "\"'"), $_attr['line'] - $compiler->lex->line);
+
+ $this->openTag($compiler, 'private_child_block', $save);
+
+ $compiler->nocache = $compiler->nocache | $compiler->tag_nocache;
+ $compiler->has_code = false;
+
+ return true;
+ }
}
-?> \ No newline at end of file
+/**
+ * Smarty Internal Plugin Compile Child Block Close Class
+ *
+ * @package Smarty
+ * @subpackage Compiler
+ */
+class Smarty_Internal_Compile_Private_Child_Blockclose extends Smarty_Internal_CompileBase
+{
+
+ /**
+ * Compiles code for the {/private_child_block} tag
+ *
+ * @param array $args array with attributes from parser
+ * @param object $compiler compiler object
+ *
+ * @return boolean true
+ */
+ public function compile($args, $compiler)
+ {
+ // check and get attributes
+ $_attr = $this->getAttributes($compiler, $args);
+
+ $saved_data = $this->closeTag($compiler, array('private_child_block'));
+
+ // end of child block
+ $compiler->popTrace();
+
+ $compiler->nocache = $saved_data[1];
+ $compiler->has_code = false;
+
+ return true;
+ }
+}
diff --git a/library/Smarty/libs/sysplugins/smarty_internal_compile_break.php b/library/Smarty/libs/sysplugins/smarty_internal_compile_break.php
index 259c66e2b..b51e9e8f3 100644
--- a/library/Smarty/libs/sysplugins/smarty_internal_compile_break.php
+++ b/library/Smarty/libs/sysplugins/smarty_internal_compile_break.php
@@ -1,77 +1,75 @@
-<?php
-/**
- * Smarty Internal Plugin Compile Break
- *
- * Compiles the {break} tag
- *
- * @package Smarty
- * @subpackage Compiler
- * @author Uwe Tews
- */
-/**
- * Smarty Internal Plugin Compile Break Class
- *
- * @package Smarty
- * @subpackage Compiler
- */
-class Smarty_Internal_Compile_Break extends Smarty_Internal_CompileBase {
-
- /**
- * Attribute definition: Overwrites base class.
- *
- * @var array
- * @see Smarty_Internal_CompileBase
- */
- public $optional_attributes = array('levels');
- /**
- * Attribute definition: Overwrites base class.
- *
- * @var array
- * @see Smarty_Internal_CompileBase
- */
- public $shorttag_order = array('levels');
-
- /**
- * Compiles code for the {break} tag
- *
- * @param array $args array with attributes from parser
- * @param object $compiler compiler object
- * @param array $parameter array with compilation parameter
- * @return string compiled code
- */
- public function compile($args, $compiler, $parameter)
- {
- static $_is_loopy = array('for' => true, 'foreach' => true, 'while' => true, 'section' => true);
- // check and get attributes
- $_attr = $this->getAttributes($compiler, $args);
-
- if ($_attr['nocache'] === true) {
- $compiler->trigger_template_error('nocache option not allowed', $compiler->lex->taglineno);
- }
-
- if (isset($_attr['levels'])) {
- if (!is_numeric($_attr['levels'])) {
- $compiler->trigger_template_error('level attribute must be a numeric constant', $compiler->lex->taglineno);
- }
- $_levels = $_attr['levels'];
- } else {
- $_levels = 1;
- }
- $level_count = $_levels;
- $stack_count = count($compiler->_tag_stack) - 1;
- while ($level_count > 0 && $stack_count >= 0) {
- if (isset($_is_loopy[$compiler->_tag_stack[$stack_count][0]])) {
- $level_count--;
- }
- $stack_count--;
- }
- if ($level_count != 0) {
- $compiler->trigger_template_error("cannot break {$_levels} level(s)", $compiler->lex->taglineno);
- }
- $compiler->has_code = true;
- return "<?php break {$_levels}?>";
- }
-
-}
-
-?> \ No newline at end of file
+<?php
+/**
+ * Smarty Internal Plugin Compile Break
+ * Compiles the {break} tag
+ *
+ * @package Smarty
+ * @subpackage Compiler
+ * @author Uwe Tews
+ */
+
+/**
+ * Smarty Internal Plugin Compile Break Class
+ *
+ * @package Smarty
+ * @subpackage Compiler
+ */
+class Smarty_Internal_Compile_Break extends Smarty_Internal_CompileBase
+{
+ /**
+ * Attribute definition: Overwrites base class.
+ *
+ * @var array
+ * @see Smarty_Internal_CompileBase
+ */
+ public $optional_attributes = array('levels');
+ /**
+ * Attribute definition: Overwrites base class.
+ *
+ * @var array
+ * @see Smarty_Internal_CompileBase
+ */
+ public $shorttag_order = array('levels');
+
+ /**
+ * Compiles code for the {break} tag
+ *
+ * @param array $args array with attributes from parser
+ * @param object $compiler compiler object
+ * @param array $parameter array with compilation parameter
+ *
+ * @return string compiled code
+ */
+ public function compile($args, $compiler, $parameter)
+ {
+ static $_is_loopy = array('for' => true, 'foreach' => true, 'while' => true, 'section' => true);
+ // check and get attributes
+ $_attr = $this->getAttributes($compiler, $args);
+
+ if ($_attr['nocache'] === true) {
+ $compiler->trigger_template_error('nocache option not allowed', $compiler->lex->taglineno);
+ }
+
+ if (isset($_attr['levels'])) {
+ if (!is_numeric($_attr['levels'])) {
+ $compiler->trigger_template_error('level attribute must be a numeric constant', $compiler->lex->taglineno);
+ }
+ $_levels = $_attr['levels'];
+ } else {
+ $_levels = 1;
+ }
+ $level_count = $_levels;
+ $stack_count = count($compiler->_tag_stack) - 1;
+ while ($level_count > 0 && $stack_count >= 0) {
+ if (isset($_is_loopy[$compiler->_tag_stack[$stack_count][0]])) {
+ $level_count --;
+ }
+ $stack_count --;
+ }
+ if ($level_count != 0) {
+ $compiler->trigger_template_error("cannot break {$_levels} level(s)", $compiler->lex->taglineno);
+ }
+
+ return "<?php break {$_levels};?>";
+ }
+}
diff --git a/library/Smarty/libs/sysplugins/smarty_internal_compile_call.php b/library/Smarty/libs/sysplugins/smarty_internal_compile_call.php
index af12a048c..bfbd1f547 100644
--- a/library/Smarty/libs/sysplugins/smarty_internal_compile_call.php
+++ b/library/Smarty/libs/sysplugins/smarty_internal_compile_call.php
@@ -1,22 +1,21 @@
<?php
/**
* Smarty Internal Plugin Compile Function_Call
- *
* Compiles the calls of user defined tags defined by {function}
*
- * @package Smarty
+ * @package Smarty
* @subpackage Compiler
- * @author Uwe Tews
+ * @author Uwe Tews
*/
/**
* Smarty Internal Plugin Compile Function_Call Class
*
- * @package Smarty
+ * @package Smarty
* @subpackage Compiler
*/
-class Smarty_Internal_Compile_Call extends Smarty_Internal_CompileBase {
-
+class Smarty_Internal_Compile_Call extends Smarty_Internal_CompileBase
+{
/**
* Attribute definition: Overwrites base class.
*
@@ -42,9 +41,9 @@ class Smarty_Internal_Compile_Call extends Smarty_Internal_CompileBase {
/**
* Compiles the calls of user defined tags defined by {function}
*
- * @param array $args array with attributes from parser
- * @param object $compiler compiler object
- * @param array $parameter array with compilation parameter
+ * @param array $args array with attributes from parser
+ * @param object $compiler compiler object
+ *
* @return string compiled code
*/
public function compile($args, $compiler)
@@ -53,7 +52,7 @@ class Smarty_Internal_Compile_Call extends Smarty_Internal_CompileBase {
$_attr = $this->getAttributes($compiler, $args);
// save possible attributes
if (isset($_attr['assign'])) {
- // output will be stored in a smarty variable instead of beind displayed
+ // output will be stored in a smarty variable instead of being displayed
$_assign = $_attr['assign'];
}
$_name = $_attr['name'];
@@ -96,7 +95,7 @@ class Smarty_Internal_Compile_Call extends Smarty_Internal_CompileBase {
}
}
}
- //varibale name?
+ //variable name?
if (!(strpos($_name, '$') === false)) {
$call_cache = $_name;
$call_function = '$tmp = "smarty_template_function_".' . $_name . '; $tmp';
@@ -122,9 +121,7 @@ class Smarty_Internal_Compile_Call extends Smarty_Internal_CompileBase {
$_output = "<?php {$call_function}(\$_smarty_tpl,{$_params});?>\n";
}
}
+
return $_output;
}
-
}
-
-?> \ No newline at end of file
diff --git a/library/Smarty/libs/sysplugins/smarty_internal_compile_capture.php b/library/Smarty/libs/sysplugins/smarty_internal_compile_capture.php
index 9a5071ebe..34728e47a 100644
--- a/library/Smarty/libs/sysplugins/smarty_internal_compile_capture.php
+++ b/library/Smarty/libs/sysplugins/smarty_internal_compile_capture.php
@@ -1,22 +1,21 @@
<?php
/**
* Smarty Internal Plugin Compile Capture
- *
* Compiles the {capture} tag
*
- * @package Smarty
+ * @package Smarty
* @subpackage Compiler
- * @author Uwe Tews
+ * @author Uwe Tews
*/
/**
* Smarty Internal Plugin Compile Capture Class
*
- * @package Smarty
+ * @package Smarty
* @subpackage Compiler
*/
-class Smarty_Internal_Compile_Capture extends Smarty_Internal_CompileBase {
-
+class Smarty_Internal_Compile_Capture extends Smarty_Internal_CompileBase
+{
/**
* Attribute definition: Overwrites base class.
*
@@ -35,8 +34,9 @@ class Smarty_Internal_Compile_Capture extends Smarty_Internal_CompileBase {
/**
* Compiles code for the {capture} tag
*
- * @param array $args array with attributes from parser
- * @param object $compiler compiler object
+ * @param array $args array with attributes from parser
+ * @param object $compiler compiler object
+ *
* @return string compiled code
*/
public function compile($args, $compiler)
@@ -55,22 +55,22 @@ class Smarty_Internal_Compile_Capture extends Smarty_Internal_CompileBase {
return $_output;
}
-
}
/**
* Smarty Internal Plugin Compile Captureclose Class
*
- * @package Smarty
+ * @package Smarty
* @subpackage Compiler
*/
-class Smarty_Internal_Compile_CaptureClose extends Smarty_Internal_CompileBase {
-
+class Smarty_Internal_Compile_CaptureClose extends Smarty_Internal_CompileBase
+{
/**
* Compiles code for the {/capture} tag
*
- * @param array $args array with attributes from parser
- * @param object $compiler compiler object
+ * @param array $args array with attributes from parser
+ * @param object $compiler compiler object
+ *
* @return string compiled code
*/
public function compile($args, $compiler)
@@ -90,9 +90,7 @@ class Smarty_Internal_Compile_CaptureClose extends Smarty_Internal_CompileBase {
$_output .= " if (isset( \$_capture_append)) \$_smarty_tpl->append( \$_capture_append, ob_get_contents());\n";
$_output .= " Smarty::\$_smarty_vars['capture'][\$_capture_buffer]=ob_get_clean();\n";
$_output .= "} else \$_smarty_tpl->capture_error();?>";
+
return $_output;
}
-
}
-
-?> \ No newline at end of file
diff --git a/library/Smarty/libs/sysplugins/smarty_internal_compile_config_load.php b/library/Smarty/libs/sysplugins/smarty_internal_compile_config_load.php
index deaa052c5..8813664d4 100644
--- a/library/Smarty/libs/sysplugins/smarty_internal_compile_config_load.php
+++ b/library/Smarty/libs/sysplugins/smarty_internal_compile_config_load.php
@@ -1,22 +1,21 @@
<?php
/**
* Smarty Internal Plugin Compile Config Load
- *
* Compiles the {config load} tag
*
- * @package Smarty
+ * @package Smarty
* @subpackage Compiler
- * @author Uwe Tews
+ * @author Uwe Tews
*/
/**
* Smarty Internal Plugin Compile Config Load Class
*
- * @package Smarty
+ * @package Smarty
* @subpackage Compiler
*/
-class Smarty_Internal_Compile_Config_Load extends Smarty_Internal_CompileBase {
-
+class Smarty_Internal_Compile_Config_Load extends Smarty_Internal_CompileBase
+{
/**
* Attribute definition: Overwrites base class.
*
@@ -30,7 +29,7 @@ class Smarty_Internal_Compile_Config_Load extends Smarty_Internal_CompileBase {
* @var array
* @see Smarty_Internal_CompileBase
*/
- public $shorttag_order = array('file','section');
+ public $shorttag_order = array('file', 'section');
/**
* Attribute definition: Overwrites base class.
*
@@ -42,13 +41,14 @@ class Smarty_Internal_Compile_Config_Load extends Smarty_Internal_CompileBase {
/**
* Compiles code for the {config_load} tag
*
- * @param array $args array with attributes from parser
- * @param object $compiler compiler object
+ * @param array $args array with attributes from parser
+ * @param object $compiler compiler object
+ *
* @return string compiled code
*/
public function compile($args, $compiler)
{
- static $_is_legal_scope = array('local' => true,'parent' => true,'root' => true,'global' => true);
+ static $_is_legal_scope = array('local' => true, 'parent' => true, 'root' => true, 'global' => true);
// check and get attributes
$_attr = $this->getAttributes($compiler, $args);
@@ -56,8 +56,7 @@ class Smarty_Internal_Compile_Config_Load extends Smarty_Internal_CompileBase {
$compiler->trigger_template_error('nocache option not allowed', $compiler->lex->taglineno);
}
-
- // save posible attributes
+ // save possible attributes
$conf_file = $_attr['file'];
if (isset($_attr['section'])) {
$section = $_attr['section'];
@@ -70,16 +69,14 @@ class Smarty_Internal_Compile_Config_Load extends Smarty_Internal_CompileBase {
$_attr['scope'] = trim($_attr['scope'], "'\"");
if (isset($_is_legal_scope[$_attr['scope']])) {
$scope = $_attr['scope'];
- } else {
+ } else {
$compiler->trigger_template_error('illegal value for "scope" attribute', $compiler->lex->taglineno);
- }
+ }
}
// create config object
$_output = "<?php \$_config = new Smarty_Internal_Config($conf_file, \$_smarty_tpl->smarty, \$_smarty_tpl);";
$_output .= "\$_config->loadConfigVars($section, '$scope'); ?>";
+
return $_output;
}
-
}
-
-?> \ No newline at end of file
diff --git a/library/Smarty/libs/sysplugins/smarty_internal_compile_continue.php b/library/Smarty/libs/sysplugins/smarty_internal_compile_continue.php
index 4082a93b3..af3765128 100644
--- a/library/Smarty/libs/sysplugins/smarty_internal_compile_continue.php
+++ b/library/Smarty/libs/sysplugins/smarty_internal_compile_continue.php
@@ -1,78 +1,75 @@
-<?php
-/**
- * Smarty Internal Plugin Compile Continue
- *
- * Compiles the {continue} tag
- *
- * @package Smarty
- * @subpackage Compiler
- * @author Uwe Tews
- */
-
-/**
- * Smarty Internal Plugin Compile Continue Class
- *
- * @package Smarty
- * @subpackage Compiler
- */
-class Smarty_Internal_Compile_Continue extends Smarty_Internal_CompileBase {
-
- /**
- * Attribute definition: Overwrites base class.
- *
- * @var array
- * @see Smarty_Internal_CompileBase
- */
- public $optional_attributes = array('levels');
- /**
- * Attribute definition: Overwrites base class.
- *
- * @var array
- * @see Smarty_Internal_CompileBase
- */
- public $shorttag_order = array('levels');
-
- /**
- * Compiles code for the {continue} tag
- *
- * @param array $args array with attributes from parser
- * @param object $compiler compiler object
- * @param array $parameter array with compilation parameter
- * @return string compiled code
- */
- public function compile($args, $compiler, $parameter)
- {
- static $_is_loopy = array('for' => true, 'foreach' => true, 'while' => true, 'section' => true);
- // check and get attributes
- $_attr = $this->getAttributes($compiler, $args);
-
- if ($_attr['nocache'] === true) {
- $compiler->trigger_template_error('nocache option not allowed', $compiler->lex->taglineno);
- }
-
- if (isset($_attr['levels'])) {
- if (!is_numeric($_attr['levels'])) {
- $compiler->trigger_template_error('level attribute must be a numeric constant', $compiler->lex->taglineno);
- }
- $_levels = $_attr['levels'];
- } else {
- $_levels = 1;
- }
- $level_count = $_levels;
- $stack_count = count($compiler->_tag_stack) - 1;
- while ($level_count > 0 && $stack_count >= 0) {
- if (isset($_is_loopy[$compiler->_tag_stack[$stack_count][0]])) {
- $level_count--;
- }
- $stack_count--;
- }
- if ($level_count != 0) {
- $compiler->trigger_template_error("cannot continue {$_levels} level(s)", $compiler->lex->taglineno);
- }
- $compiler->has_code = true;
- return "<?php continue {$_levels}?>";
- }
-
-}
-
-?> \ No newline at end of file
+<?php
+/**
+ * Smarty Internal Plugin Compile Continue
+ * Compiles the {continue} tag
+ *
+ * @package Smarty
+ * @subpackage Compiler
+ * @author Uwe Tews
+ */
+
+/**
+ * Smarty Internal Plugin Compile Continue Class
+ *
+ * @package Smarty
+ * @subpackage Compiler
+ */
+class Smarty_Internal_Compile_Continue extends Smarty_Internal_CompileBase
+{
+ /**
+ * Attribute definition: Overwrites base class.
+ *
+ * @var array
+ * @see Smarty_Internal_CompileBase
+ */
+ public $optional_attributes = array('levels');
+ /**
+ * Attribute definition: Overwrites base class.
+ *
+ * @var array
+ * @see Smarty_Internal_CompileBase
+ */
+ public $shorttag_order = array('levels');
+
+ /**
+ * Compiles code for the {continue} tag
+ *
+ * @param array $args array with attributes from parser
+ * @param object $compiler compiler object
+ * @param array $parameter array with compilation parameter
+ *
+ * @return string compiled code
+ */
+ public function compile($args, $compiler, $parameter)
+ {
+ static $_is_loopy = array('for' => true, 'foreach' => true, 'while' => true, 'section' => true);
+ // check and get attributes
+ $_attr = $this->getAttributes($compiler, $args);
+
+ if ($_attr['nocache'] === true) {
+ $compiler->trigger_template_error('nocache option not allowed', $compiler->lex->taglineno);
+ }
+
+ if (isset($_attr['levels'])) {
+ if (!is_numeric($_attr['levels'])) {
+ $compiler->trigger_template_error('level attribute must be a numeric constant', $compiler->lex->taglineno);
+ }
+ $_levels = $_attr['levels'];
+ } else {
+ $_levels = 1;
+ }
+ $level_count = $_levels;
+ $stack_count = count($compiler->_tag_stack) - 1;
+ while ($level_count > 0 && $stack_count >= 0) {
+ if (isset($_is_loopy[$compiler->_tag_stack[$stack_count][0]])) {
+ $level_count --;
+ }
+ $stack_count --;
+ }
+ if ($level_count != 0) {
+ $compiler->trigger_template_error("cannot continue {$_levels} level(s)", $compiler->lex->taglineno);
+ }
+
+ return "<?php continue {$_levels};?>";
+ }
+}
diff --git a/library/Smarty/libs/sysplugins/smarty_internal_compile_debug.php b/library/Smarty/libs/sysplugins/smarty_internal_compile_debug.php
index f50c7aee2..b184a746b 100644
--- a/library/Smarty/libs/sysplugins/smarty_internal_compile_debug.php
+++ b/library/Smarty/libs/sysplugins/smarty_internal_compile_debug.php
@@ -1,28 +1,28 @@
<?php
/**
* Smarty Internal Plugin Compile Debug
- *
* Compiles the {debug} tag.
* It opens a window the the Smarty Debugging Console.
*
- * @package Smarty
+ * @package Smarty
* @subpackage Compiler
- * @author Uwe Tews
+ * @author Uwe Tews
*/
/**
* Smarty Internal Plugin Compile Debug Class
*
- * @package Smarty
+ * @package Smarty
* @subpackage Compiler
*/
-class Smarty_Internal_Compile_Debug extends Smarty_Internal_CompileBase {
-
+class Smarty_Internal_Compile_Debug extends Smarty_Internal_CompileBase
+{
/**
* Compiles code for the {debug} tag
*
- * @param array $args array with attributes from parser
- * @param object $compiler compiler object
+ * @param array $args array with attributes from parser
+ * @param object $compiler compiler object
+ *
* @return string compiled code
*/
public function compile($args, $compiler)
@@ -35,9 +35,7 @@ class Smarty_Internal_Compile_Debug extends Smarty_Internal_CompileBase {
// display debug template
$_output = "<?php \$_smarty_tpl->smarty->loadPlugin('Smarty_Internal_Debug'); Smarty_Internal_Debug::display_debug(\$_smarty_tpl); ?>";
+
return $_output;
}
-
}
-
-?> \ No newline at end of file
diff --git a/library/Smarty/libs/sysplugins/smarty_internal_compile_eval.php b/library/Smarty/libs/sysplugins/smarty_internal_compile_eval.php
index 6cf481b50..407482f07 100644
--- a/library/Smarty/libs/sysplugins/smarty_internal_compile_eval.php
+++ b/library/Smarty/libs/sysplugins/smarty_internal_compile_eval.php
@@ -1,22 +1,21 @@
<?php
/**
* Smarty Internal Plugin Compile Eval
- *
* Compiles the {eval} tag.
*
- * @package Smarty
+ * @package Smarty
* @subpackage Compiler
- * @author Uwe Tews
+ * @author Uwe Tews
*/
/**
* Smarty Internal Plugin Compile Eval Class
*
- * @package Smarty
+ * @package Smarty
* @subpackage Compiler
*/
-class Smarty_Internal_Compile_Eval extends Smarty_Internal_CompileBase {
-
+class Smarty_Internal_Compile_Eval extends Smarty_Internal_CompileBase
+{
/**
* Attribute definition: Overwrites base class.
*
@@ -37,13 +36,14 @@ class Smarty_Internal_Compile_Eval extends Smarty_Internal_CompileBase {
* @var array
* @see Smarty_Internal_CompileBase
*/
- public $shorttag_order = array('var','assign');
+ public $shorttag_order = array('var', 'assign');
/**
* Compiles code for the {eval} tag
*
- * @param array $args array with attributes from parser
- * @param object $compiler compiler object
+ * @param array $args array with attributes from parser
+ * @param object $compiler compiler object
+ *
* @return string compiled code
*/
public function compile($args, $compiler)
@@ -53,21 +53,19 @@ class Smarty_Internal_Compile_Eval extends Smarty_Internal_CompileBase {
// check and get attributes
$_attr = $this->getAttributes($compiler, $args);
if (isset($_attr['assign'])) {
- // output will be stored in a smarty variable instead of beind displayed
+ // output will be stored in a smarty variable instead of being displayed
$_assign = $_attr['assign'];
}
// create template object
- $_output = "\$_template = new {$compiler->smarty->template_class}('eval:'.".$_attr['var'].", \$_smarty_tpl->smarty, \$_smarty_tpl);";
+ $_output = "\$_template = new {$compiler->smarty->template_class}('eval:'." . $_attr['var'] . ", \$_smarty_tpl->smarty, \$_smarty_tpl);";
//was there an assign attribute?
if (isset($_assign)) {
$_output .= "\$_smarty_tpl->assign($_assign,\$_template->fetch());";
} else {
$_output .= "echo \$_template->fetch();";
}
+
return "<?php $_output ?>";
}
-
}
-
-?> \ No newline at end of file
diff --git a/library/Smarty/libs/sysplugins/smarty_internal_compile_extends.php b/library/Smarty/libs/sysplugins/smarty_internal_compile_extends.php
index 9042aa233..2b541f2e3 100644
--- a/library/Smarty/libs/sysplugins/smarty_internal_compile_extends.php
+++ b/library/Smarty/libs/sysplugins/smarty_internal_compile_extends.php
@@ -1,128 +1,85 @@
<?php
/**
-* Smarty Internal Plugin Compile extend
-*
-* Compiles the {extends} tag
-*
-* @package Smarty
-* @subpackage Compiler
-* @author Uwe Tews
-*/
+ * Smarty Internal Plugin Compile extend
+ * Compiles the {extends} tag
+ *
+ * @package Smarty
+ * @subpackage Compiler
+ * @author Uwe Tews
+ */
/**
-* Smarty Internal Plugin Compile extend Class
-*
-* @package Smarty
-* @subpackage Compiler
-*/
-class Smarty_Internal_Compile_Extends extends Smarty_Internal_CompileBase {
-
+ * Smarty Internal Plugin Compile extend Class
+ *
+ * @package Smarty
+ * @subpackage Compiler
+ */
+class Smarty_Internal_Compile_Extends extends Smarty_Internal_CompileBase
+{
/**
- * Attribute definition: Overwrites base class.
- *
- * @var array
- * @see Smarty_Internal_CompileBase
- */
+ * Attribute definition: Overwrites base class.
+ *
+ * @var array
+ * @see Smarty_Internal_CompileBase
+ */
public $required_attributes = array('file');
/**
- * Attribute definition: Overwrites base class.
- *
- * @var array
- * @see Smarty_Internal_CompileBase
- */
+ * Attribute definition: Overwrites base class.
+ *
+ * @var array
+ * @see Smarty_Internal_CompileBase
+ */
public $shorttag_order = array('file');
- /**
- * mbstring.overload flag
- *
- * @var int
- */
- public $mbstring_overload = 0;
/**
- * Compiles code for the {extends} tag
- *
- * @param array $args array with attributes from parser
- * @param object $compiler compiler object
- * @return string compiled code
- */
+ * Compiles code for the {extends} tag
+ *
+ * @param array $args array with attributes from parser
+ * @param object $compiler compiler object
+ *
+ * @return string compiled code
+ */
public function compile($args, $compiler)
{
- static $_is_stringy = array('string' => true, 'eval' => true);
- $this->_rdl = preg_quote($compiler->smarty->right_delimiter);
- $this->_ldl = preg_quote($compiler->smarty->left_delimiter);
- $filepath = $compiler->template->source->filepath;
- $this->mbstring_overload = ini_get('mbstring.func_overload') & 2;
// check and get attributes
$_attr = $this->getAttributes($compiler, $args);
if ($_attr['nocache'] === true) {
$compiler->trigger_template_error('nocache option not allowed', $compiler->lex->taglineno);
}
-
- $_smarty_tpl = $compiler->template;
- $include_file = null;
if (strpos($_attr['file'], '$_tmp') !== false) {
$compiler->trigger_template_error('illegal value for file attribute', $compiler->lex->taglineno);
}
- eval('$include_file = ' . $_attr['file'] . ';');
+
+ $name = $_attr['file'];
+ /** @var Smarty_Internal_Template $_smarty_tpl
+ * used in evaluated code
+ */
+ $_smarty_tpl = $compiler->template;
+ eval("\$tpl_name = $name;");
// create template object
- $_template = new $compiler->smarty->template_class($include_file, $compiler->smarty, $compiler->template);
- // save file dependency
- if (isset($_is_stringy[$_template->source->type])) {
- $template_sha1 = sha1($include_file);
- } else {
- $template_sha1 = sha1($_template->source->filepath);
- }
- if (isset($compiler->template->properties['file_dependency'][$template_sha1])) {
- $compiler->trigger_template_error("illegal recursive call of \"{$include_file}\"", $compiler->lex->line - 1);
- }
- $compiler->template->properties['file_dependency'][$template_sha1] = array($_template->source->filepath, $_template->source->timestamp, $_template->source->type);
- $_content = ($this->mbstring_overload ? mb_substr($compiler->template->source->content, $compiler->lex->counter - 1, 20000000, 'latin1') : substr($compiler->template->source->content, $compiler->lex->counter - 1));
- if (preg_match_all("!({$this->_ldl}block\s(.+?){$this->_rdl})!", $_content, $s) !=
- preg_match_all("!({$this->_ldl}/block{$this->_rdl})!", $_content, $c)) {
- $compiler->trigger_template_error('unmatched {block} {/block} pairs');
+ $_template = new $compiler->smarty->template_class($tpl_name, $compiler->smarty, $compiler->template);
+ // check for recursion
+ $uid = $_template->source->uid;
+ if (isset($compiler->extends_uid[$uid])) {
+ $compiler->trigger_template_error("illegal recursive call of \"$include_file\"", $compiler->lex->line - 1);
}
- preg_match_all("!{$this->_ldl}block\s(.+?){$this->_rdl}|{$this->_ldl}/block{$this->_rdl}|{$this->_ldl}\*([\S\s]*?)\*{$this->_rdl}!", $_content, $_result, PREG_OFFSET_CAPTURE);
- $_result_count = count($_result[0]);
- $_start = 0;
- while ($_start+1 < $_result_count) {
- $_end = 0;
- $_level = 1;
- if (($this->mbstring_overload ? mb_substr($_result[0][$_start][0],0,mb_strlen($compiler->smarty->left_delimiter,'latin1')+1, 'latin1') : substr($_result[0][$_start][0],0,strlen($compiler->smarty->left_delimiter)+1)) == $compiler->smarty->left_delimiter.'*') {
- $_start++;
- continue;
- }
- while ($_level != 0) {
- $_end++;
- if (($this->mbstring_overload ? mb_substr($_result[0][$_start + $_end][0],0,mb_strlen($compiler->smarty->left_delimiter,'latin1')+1, 'latin1') : substr($_result[0][$_start + $_end][0],0,strlen($compiler->smarty->left_delimiter)+1)) == $compiler->smarty->left_delimiter.'*') {
- continue;
- }
- if (!strpos($_result[0][$_start + $_end][0], '/')) {
- $_level++;
- } else {
- $_level--;
+ $compiler->extends_uid[$uid] = true;
+ if (empty($_template->source->components)) {
+ array_unshift($compiler->sources, $_template->source);
+ } else {
+ foreach ($_template->source->components as $source) {
+ array_unshift($compiler->sources, $source);
+ $uid = $source->uid;
+ if (isset($compiler->extends_uid[$uid])) {
+ $compiler->trigger_template_error("illegal recursive call of \"{$source->filepath}\"", $compiler->lex->line - 1);
}
- }
- $_block_content = str_replace($compiler->smarty->left_delimiter . '$smarty.block.parent' . $compiler->smarty->right_delimiter, '%%%%SMARTY_PARENT%%%%',
- ($this->mbstring_overload ? mb_substr($_content, $_result[0][$_start][1] + mb_strlen($_result[0][$_start][0], 'latin1'), $_result[0][$_start + $_end][1] - $_result[0][$_start][1] - + mb_strlen($_result[0][$_start][0], 'latin1'), 'latin1') : substr($_content, $_result[0][$_start][1] + strlen($_result[0][$_start][0]), $_result[0][$_start + $_end][1] - $_result[0][$_start][1] - + strlen($_result[0][$_start][0]))));
- Smarty_Internal_Compile_Block::saveBlockData($_block_content, $_result[0][$_start][0], $compiler->template, $filepath);
- $_start = $_start + $_end + 1;
- }
- if ($_template->source->type == 'extends') {
- $_template->block_data = $compiler->template->block_data;
- }
- $compiler->template->source->content = $_template->source->content;
- if ($_template->source->type == 'extends') {
- $compiler->template->block_data = $_template->block_data;
- foreach ($_template->source->components as $key => $component) {
- $compiler->template->properties['file_dependency'][$key] = array($component->filepath, $component->timestamp, $component->type);
+ $compiler->extends_uid[$uid] = true;
}
}
- $compiler->template->source->filepath = $_template->source->filepath;
- $compiler->abort_and_recompile = true;
+ unset ($_template);
+ $compiler->inheritance_child = true;
+ $compiler->lex->yypushstate(Smarty_Internal_Templatelexer::CHILDBODY);
return '';
}
-
}
-
-?> \ No newline at end of file
diff --git a/library/Smarty/libs/sysplugins/smarty_internal_compile_for.php b/library/Smarty/libs/sysplugins/smarty_internal_compile_for.php
index 057f4fb79..a624b922c 100644
--- a/library/Smarty/libs/sysplugins/smarty_internal_compile_for.php
+++ b/library/Smarty/libs/sysplugins/smarty_internal_compile_for.php
@@ -1,39 +1,35 @@
<?php
/**
* Smarty Internal Plugin Compile For
- *
* Compiles the {for} {forelse} {/for} tags
*
- * @package Smarty
+ * @package Smarty
* @subpackage Compiler
- * @author Uwe Tews
+ * @author Uwe Tews
*/
/**
* Smarty Internal Plugin Compile For Class
*
- * @package Smarty
+ * @package Smarty
* @subpackage Compiler
*/
-class Smarty_Internal_Compile_For extends Smarty_Internal_CompileBase {
-
+class Smarty_Internal_Compile_For extends Smarty_Internal_CompileBase
+{
/**
* Compiles code for the {for} tag
- *
- * Smarty 3 does implement two different sytaxes:
- *
+ * Smarty 3 does implement two different syntax's:
* - {for $var in $array}
* For looping over arrays or iterators
- *
* - {for $x=0; $x<$y; $x++}
* For general loops
+ * The parser is generating different sets of attribute by which this compiler can
+ * determine which syntax is used.
*
- * The parser is gereration different sets of attribute by which this compiler can
- * determin which syntax is used.
+ * @param array $args array with attributes from parser
+ * @param object $compiler compiler object
+ * @param array $parameter array with compilation parameter
*
- * @param array $args array with attributes from parser
- * @param object $compiler compiler object
- * @param array $parameter array with compilation parameter
* @return string compiled code
*/
public function compile($args, $compiler, $parameter)
@@ -54,7 +50,7 @@ class Smarty_Internal_Compile_For extends Smarty_Internal_CompileBase {
$output .= " \$_smarty_tpl->tpl_vars[$_statement[var]] = new Smarty_Variable;";
$output .= " \$_smarty_tpl->tpl_vars[$_statement[var]]->value = $_statement[value];\n";
}
- $output .= " if ($_attr[ifexp]){ for (\$_foo=true;$_attr[ifexp]; \$_smarty_tpl->tpl_vars[$_attr[var]]->value$_attr[step]){\n";
+ $output .= " if ($_attr[ifexp]) { for (\$_foo=true;$_attr[ifexp]; \$_smarty_tpl->tpl_vars[$_attr[var]]->value$_attr[step]) {\n";
} else {
$_statement = $_attr['start'];
$output .= "\$_smarty_tpl->tpl_vars[$_statement[var]] = new Smarty_Variable;";
@@ -64,12 +60,12 @@ class Smarty_Internal_Compile_For extends Smarty_Internal_CompileBase {
$output .= "\$_smarty_tpl->tpl_vars[$_statement[var]]->step = 1;";
}
if (isset($_attr['max'])) {
- $output .= "\$_smarty_tpl->tpl_vars[$_statement[var]]->total = (int)min(ceil((\$_smarty_tpl->tpl_vars[$_statement[var]]->step > 0 ? $_attr[to]+1 - ($_statement[value]) : $_statement[value]-($_attr[to])+1)/abs(\$_smarty_tpl->tpl_vars[$_statement[var]]->step)),$_attr[max]);\n";
+ $output .= "\$_smarty_tpl->tpl_vars[$_statement[var]]->total = (int) min(ceil((\$_smarty_tpl->tpl_vars[$_statement[var]]->step > 0 ? $_attr[to]+1 - ($_statement[value]) : $_statement[value]-($_attr[to])+1)/abs(\$_smarty_tpl->tpl_vars[$_statement[var]]->step)),$_attr[max]);\n";
} else {
- $output .= "\$_smarty_tpl->tpl_vars[$_statement[var]]->total = (int)ceil((\$_smarty_tpl->tpl_vars[$_statement[var]]->step > 0 ? $_attr[to]+1 - ($_statement[value]) : $_statement[value]-($_attr[to])+1)/abs(\$_smarty_tpl->tpl_vars[$_statement[var]]->step));\n";
+ $output .= "\$_smarty_tpl->tpl_vars[$_statement[var]]->total = (int) ceil((\$_smarty_tpl->tpl_vars[$_statement[var]]->step > 0 ? $_attr[to]+1 - ($_statement[value]) : $_statement[value]-($_attr[to])+1)/abs(\$_smarty_tpl->tpl_vars[$_statement[var]]->step));\n";
}
- $output .= "if (\$_smarty_tpl->tpl_vars[$_statement[var]]->total > 0){\n";
- $output .= "for (\$_smarty_tpl->tpl_vars[$_statement[var]]->value = $_statement[value], \$_smarty_tpl->tpl_vars[$_statement[var]]->iteration = 1;\$_smarty_tpl->tpl_vars[$_statement[var]]->iteration <= \$_smarty_tpl->tpl_vars[$_statement[var]]->total;\$_smarty_tpl->tpl_vars[$_statement[var]]->value += \$_smarty_tpl->tpl_vars[$_statement[var]]->step, \$_smarty_tpl->tpl_vars[$_statement[var]]->iteration++){\n";
+ $output .= "if (\$_smarty_tpl->tpl_vars[$_statement[var]]->total > 0) {\n";
+ $output .= "for (\$_smarty_tpl->tpl_vars[$_statement[var]]->value = $_statement[value], \$_smarty_tpl->tpl_vars[$_statement[var]]->iteration = 1;\$_smarty_tpl->tpl_vars[$_statement[var]]->iteration <= \$_smarty_tpl->tpl_vars[$_statement[var]]->total;\$_smarty_tpl->tpl_vars[$_statement[var]]->value += \$_smarty_tpl->tpl_vars[$_statement[var]]->step, \$_smarty_tpl->tpl_vars[$_statement[var]]->iteration++) {\n";
$output .= "\$_smarty_tpl->tpl_vars[$_statement[var]]->first = \$_smarty_tpl->tpl_vars[$_statement[var]]->iteration == 1;";
$output .= "\$_smarty_tpl->tpl_vars[$_statement[var]]->last = \$_smarty_tpl->tpl_vars[$_statement[var]]->iteration == \$_smarty_tpl->tpl_vars[$_statement[var]]->total;";
}
@@ -81,51 +77,52 @@ class Smarty_Internal_Compile_For extends Smarty_Internal_CompileBase {
// return compiled code
return $output;
}
-
}
/**
* Smarty Internal Plugin Compile Forelse Class
*
- * @package Smarty
+ * @package Smarty
* @subpackage Compiler
*/
-class Smarty_Internal_Compile_Forelse extends Smarty_Internal_CompileBase {
-
+class Smarty_Internal_Compile_Forelse extends Smarty_Internal_CompileBase
+{
/**
* Compiles code for the {forelse} tag
*
- * @param array $args array with attributes from parser
- * @param object $compiler compiler object
- * @param array $parameter array with compilation parameter
+ * @param array $args array with attributes from parser
+ * @param object $compiler compiler object
+ * @param array $parameter array with compilation parameter
+ *
* @return string compiled code
*/
public function compile($args, $compiler, $parameter)
{
// check and get attributes
- $_attr = $this->getAttributes($compiler, $args);
+ $_attr = $this->getAttributes($compiler, $args);
list($openTag, $nocache) = $this->closeTag($compiler, array('for'));
$this->openTag($compiler, 'forelse', array('forelse', $nocache));
+
return "<?php }} else { ?>";
}
-
}
/**
* Smarty Internal Plugin Compile Forclose Class
*
- * @package Smarty
+ * @package Smarty
* @subpackage Compiler
*/
-class Smarty_Internal_Compile_Forclose extends Smarty_Internal_CompileBase {
-
+class Smarty_Internal_Compile_Forclose extends Smarty_Internal_CompileBase
+{
/**
* Compiles code for the {/for} tag
*
- * @param array $args array with attributes from parser
- * @param object $compiler compiler object
- * @param array $parameter array with compilation parameter
+ * @param array $args array with attributes from parser
+ * @param object $compiler compiler object
+ * @param array $parameter array with compilation parameter
+ *
* @return string compiled code
*/
public function compile($args, $compiler, $parameter)
@@ -145,7 +142,4 @@ class Smarty_Internal_Compile_Forclose extends Smarty_Internal_CompileBase {
return "<?php }} ?>";
}
}
-
}
-
-?> \ No newline at end of file
diff --git a/library/Smarty/libs/sysplugins/smarty_internal_compile_foreach.php b/library/Smarty/libs/sysplugins/smarty_internal_compile_foreach.php
index 1354c89d5..fc77f5749 100644
--- a/library/Smarty/libs/sysplugins/smarty_internal_compile_foreach.php
+++ b/library/Smarty/libs/sysplugins/smarty_internal_compile_foreach.php
@@ -1,21 +1,21 @@
<?php
/**
* Smarty Internal Plugin Compile Foreach
- *
* Compiles the {foreach} {foreachelse} {/foreach} tags
*
- * @package Smarty
+ * @package Smarty
* @subpackage Compiler
- * @author Uwe Tews
+ * @author Uwe Tews
*/
/**
* Smarty Internal Plugin Compile Foreach Class
*
- * @package Smarty
+ * @package Smarty
* @subpackage Compiler
*/
-class Smarty_Internal_Compile_Foreach extends Smarty_Internal_CompileBase {
+class Smarty_Internal_Compile_Foreach extends Smarty_Internal_CompileBase
+{
/**
* Attribute definition: Overwrites base class.
*
@@ -36,19 +36,19 @@ class Smarty_Internal_Compile_Foreach extends Smarty_Internal_CompileBase {
* @var array
* @see Smarty_Internal_CompileBase
*/
- public $shorttag_order = array('from','item','key','name');
+ public $shorttag_order = array('from', 'item', 'key', 'name');
/**
* Compiles code for the {foreach} tag
*
- * @param array $args array with attributes from parser
- * @param object $compiler compiler object
- * @param array $parameter array with compilation parameter
+ * @param array $args array with attributes from parser
+ * @param object $compiler compiler object
+ * @param array $parameter array with compilation parameter
+ *
* @return string compiled code
*/
public function compile($args, $compiler, $parameter)
{
- $tpl = $compiler->template;
// check and get attributes
$_attr = $this->getAttributes($compiler, $args);
@@ -79,12 +79,12 @@ class Smarty_Internal_Compile_Foreach extends Smarty_Internal_CompileBase {
$ItemVarName = '$' . trim($item, '\'"') . '@';
// evaluates which Smarty variables and properties have to be computed
if ($has_name) {
- $usesSmartyFirst = strpos($tpl->source->content, $SmartyVarName . 'first') !== false;
- $usesSmartyLast = strpos($tpl->source->content, $SmartyVarName . 'last') !== false;
- $usesSmartyIndex = strpos($tpl->source->content, $SmartyVarName . 'index') !== false;
- $usesSmartyIteration = strpos($tpl->source->content, $SmartyVarName . 'iteration') !== false;
- $usesSmartyShow = strpos($tpl->source->content, $SmartyVarName . 'show') !== false;
- $usesSmartyTotal = strpos($tpl->source->content, $SmartyVarName . 'total') !== false;
+ $usesSmartyFirst = strpos($compiler->lex->data, $SmartyVarName . 'first') !== false;
+ $usesSmartyLast = strpos($compiler->lex->data, $SmartyVarName . 'last') !== false;
+ $usesSmartyIndex = strpos($compiler->lex->data, $SmartyVarName . 'index') !== false;
+ $usesSmartyIteration = strpos($compiler->lex->data, $SmartyVarName . 'iteration') !== false;
+ $usesSmartyShow = strpos($compiler->lex->data, $SmartyVarName . 'show') !== false;
+ $usesSmartyTotal = strpos($compiler->lex->data, $SmartyVarName . 'total') !== false;
} else {
$usesSmartyFirst = false;
$usesSmartyLast = false;
@@ -92,12 +92,12 @@ class Smarty_Internal_Compile_Foreach extends Smarty_Internal_CompileBase {
$usesSmartyShow = false;
}
- $usesPropFirst = $usesSmartyFirst || strpos($tpl->source->content, $ItemVarName . 'first') !== false;
- $usesPropLast = $usesSmartyLast || strpos($tpl->source->content, $ItemVarName . 'last') !== false;
- $usesPropIndex = $usesPropFirst || strpos($tpl->source->content, $ItemVarName . 'index') !== false;
- $usesPropIteration = $usesPropLast || strpos($tpl->source->content, $ItemVarName . 'iteration') !== false;
- $usesPropShow = strpos($tpl->source->content, $ItemVarName . 'show') !== false;
- $usesPropTotal = $usesSmartyTotal || $usesSmartyShow || $usesPropShow || $usesPropLast || strpos($tpl->source->content, $ItemVarName . 'total') !== false;
+ $usesPropFirst = $usesSmartyFirst || strpos($compiler->lex->data, $ItemVarName . 'first') !== false;
+ $usesPropLast = $usesSmartyLast || strpos($compiler->lex->data, $ItemVarName . 'last') !== false;
+ $usesPropIndex = $usesPropFirst || strpos($compiler->lex->data, $ItemVarName . 'index') !== false;
+ $usesPropIteration = $usesPropLast || strpos($compiler->lex->data, $ItemVarName . 'iteration') !== false;
+ $usesPropShow = strpos($compiler->lex->data, $ItemVarName . 'show') !== false;
+ $usesPropTotal = $usesSmartyTotal || $usesSmartyShow || $usesPropShow || $usesPropLast || strpos($compiler->lex->data, $ItemVarName . 'total') !== false;
// generate output code
$output = "<?php ";
$output .= " \$_smarty_tpl->tpl_vars[$item] = new Smarty_Variable; \$_smarty_tpl->tpl_vars[$item]->_loop = false;\n";
@@ -131,7 +131,7 @@ class Smarty_Internal_Compile_Foreach extends Smarty_Internal_CompileBase {
$output .= " \$_smarty_tpl->tpl_vars['smarty']->value['foreach'][$name]['show']=(\$_smarty_tpl->tpl_vars[$item]->total > 0);\n";
}
}
- $output .= "foreach (\$_from as \$_smarty_tpl->tpl_vars[$item]->key => \$_smarty_tpl->tpl_vars[$item]->value){\n\$_smarty_tpl->tpl_vars[$item]->_loop = true;\n";
+ $output .= "foreach (\$_from as \$_smarty_tpl->tpl_vars[$item]->key => \$_smarty_tpl->tpl_vars[$item]->value) {\n\$_smarty_tpl->tpl_vars[$item]->_loop = true;\n";
if ($key != null) {
$output .= " \$_smarty_tpl->tpl_vars[$key]->value = \$_smarty_tpl->tpl_vars[$item]->key;\n";
}
@@ -170,17 +170,18 @@ class Smarty_Internal_Compile_Foreach extends Smarty_Internal_CompileBase {
/**
* Smarty Internal Plugin Compile Foreachelse Class
*
- * @package Smarty
+ * @package Smarty
* @subpackage Compiler
*/
-class Smarty_Internal_Compile_Foreachelse extends Smarty_Internal_CompileBase {
-
+class Smarty_Internal_Compile_Foreachelse extends Smarty_Internal_CompileBase
+{
/**
* Compiles code for the {foreachelse} tag
*
- * @param array $args array with attributes from parser
- * @param object $compiler compiler object
- * @param array $parameter array with compilation parameter
+ * @param array $args array with attributes from parser
+ * @param object $compiler compiler object
+ * @param array $parameter array with compilation parameter
+ *
* @return string compiled code
*/
public function compile($args, $compiler, $parameter)
@@ -193,23 +194,23 @@ class Smarty_Internal_Compile_Foreachelse extends Smarty_Internal_CompileBase {
return "<?php }\nif (!\$_smarty_tpl->tpl_vars[$item]->_loop) {\n?>";
}
-
}
/**
* Smarty Internal Plugin Compile Foreachclose Class
*
- * @package Smarty
+ * @package Smarty
* @subpackage Compiler
*/
-class Smarty_Internal_Compile_Foreachclose extends Smarty_Internal_CompileBase {
-
+class Smarty_Internal_Compile_Foreachclose extends Smarty_Internal_CompileBase
+{
/**
* Compiles code for the {/foreach} tag
*
- * @param array $args array with attributes from parser
- * @param object $compiler compiler object
- * @param array $parameter array with compilation parameter
+ * @param array $args array with attributes from parser
+ * @param object $compiler compiler object
+ * @param array $parameter array with compilation parameter
+ *
* @return string compiled code
*/
public function compile($args, $compiler, $parameter)
@@ -225,7 +226,4 @@ class Smarty_Internal_Compile_Foreachclose extends Smarty_Internal_CompileBase {
return "<?php } ?>";
}
-
}
-
-?> \ No newline at end of file
diff --git a/library/Smarty/libs/sysplugins/smarty_internal_compile_function.php b/library/Smarty/libs/sysplugins/smarty_internal_compile_function.php
index 876b13dee..298eb16f2 100644
--- a/library/Smarty/libs/sysplugins/smarty_internal_compile_function.php
+++ b/library/Smarty/libs/sysplugins/smarty_internal_compile_function.php
@@ -1,22 +1,21 @@
<?php
/**
* Smarty Internal Plugin Compile Function
- *
* Compiles the {function} {/function} tags
*
- * @package Smarty
+ * @package Smarty
* @subpackage Compiler
- * @author Uwe Tews
+ * @author Uwe Tews
*/
/**
* Smarty Internal Plugin Compile Function Class
*
- * @package Smarty
+ * @package Smarty
* @subpackage Compiler
*/
-class Smarty_Internal_Compile_Function extends Smarty_Internal_CompileBase {
-
+class Smarty_Internal_Compile_Function extends Smarty_Internal_CompileBase
+{
/**
* Attribute definition: Overwrites base class.
*
@@ -42,9 +41,10 @@ class Smarty_Internal_Compile_Function extends Smarty_Internal_CompileBase {
/**
* Compiles code for the {function} tag
*
- * @param array $args array with attributes from parser
- * @param object $compiler compiler object
- * @param array $parameter array with compilation parameter
+ * @param array $args array with attributes from parser
+ * @param object $compiler compiler object
+ * @param array $parameter array with compilation parameter
+ *
* @return boolean true
*/
public function compile($args, $compiler, $parameter)
@@ -57,16 +57,19 @@ class Smarty_Internal_Compile_Function extends Smarty_Internal_CompileBase {
}
unset($_attr['nocache']);
$save = array($_attr, $compiler->parser->current_buffer,
- $compiler->template->has_nocache_code, $compiler->template->required_plugins);
+ $compiler->template->has_nocache_code, $compiler->template->required_plugins);
$this->openTag($compiler, 'function', $save);
$_name = trim($_attr['name'], "'\"");
unset($_attr['name']);
// set flag that we are compiling a template function
$compiler->compiles_template_function = true;
$compiler->template->properties['function'][$_name]['parameter'] = array();
+ /** @var Smarty_Internal_Template $_smarty_tpl
+ * used in evaluated code
+ */
$_smarty_tpl = $compiler->template;
foreach ($_attr as $_key => $_data) {
- eval ('$tmp='.$_data.';');
+ eval ('$tmp=' . $_data . ';');
$compiler->template->properties['function'][$_name]['parameter'][$_key] = $tmp;
}
$compiler->smarty->template_functions[$_name]['parameter'] = $compiler->template->properties['function'][$_name]['parameter'];
@@ -79,7 +82,7 @@ class Smarty_Internal_Compile_Function extends Smarty_Internal_CompileBase {
foreach (\$_smarty_tpl->smarty->template_functions['{$_name}']['parameter'] as \$key => \$value) {\$_smarty_tpl->tpl_vars[\$key] = new Smarty_variable(\$value);};
foreach (\$params as \$key => \$value) {\$_smarty_tpl->tpl_vars[\$key] = new Smarty_variable(\$value);}?>";
}
- // Init temporay context
+ // Init temporary context
$compiler->template->required_plugins = array('compiled' => array(), 'nocache' => array());
$compiler->parser->current_buffer = new _smarty_template_buffer($compiler->parser);
$compiler->parser->current_buffer->append_subtree(new _smarty_tag($compiler->parser, $output));
@@ -88,23 +91,23 @@ class Smarty_Internal_Compile_Function extends Smarty_Internal_CompileBase {
$compiler->template->properties['function'][$_name]['compiled'] = '';
return true;
}
-
}
/**
* Smarty Internal Plugin Compile Functionclose Class
*
- * @package Smarty
+ * @package Smarty
* @subpackage Compiler
*/
-class Smarty_Internal_Compile_Functionclose extends Smarty_Internal_CompileBase {
-
+class Smarty_Internal_Compile_Functionclose extends Smarty_Internal_CompileBase
+{
/**
* Compiles code for the {/function} tag
*
- * @param array $args array with attributes from parser
- * @param object $compiler compiler object
- * @param array $parameter array with compilation parameter
+ * @param array $args array with attributes from parser
+ * @param object $compiler compiler object
+ * @param array $parameter array with compilation parameter
+ *
* @return boolean true
*/
public function compile($args, $compiler, $parameter)
@@ -116,8 +119,8 @@ class Smarty_Internal_Compile_Functionclose extends Smarty_Internal_CompileBase
$plugins_string = '';
if (!empty($compiler->template->required_plugins['compiled'])) {
$plugins_string = '<?php ';
- foreach($compiler->template->required_plugins['compiled'] as $tmp) {
- foreach($tmp as $data) {
+ foreach ($compiler->template->required_plugins['compiled'] as $tmp) {
+ foreach ($tmp as $data) {
$plugins_string .= "if (!is_callable('{$data['function']}')) include '{$data['file']}';\n";
}
}
@@ -125,22 +128,17 @@ class Smarty_Internal_Compile_Functionclose extends Smarty_Internal_CompileBase
}
if (!empty($compiler->template->required_plugins['nocache'])) {
$plugins_string .= "<?php echo '/*%%SmartyNocache:{$compiler->template->properties['nocache_hash']}%%*/<?php ";
- foreach($compiler->template->required_plugins['nocache'] as $tmp) {
- foreach($tmp as $data) {
+ foreach ($compiler->template->required_plugins['nocache'] as $tmp) {
+ foreach ($tmp as $data) {
$plugins_string .= "if (!is_callable(\'{$data['function']}\')) include \'{$data['file']}\';\n";
}
}
$plugins_string .= "?>/*/%%SmartyNocache:{$compiler->template->properties['nocache_hash']}%%*/';?>\n";
}
- // remove last line break from function definition
- $last = count($compiler->parser->current_buffer->subtrees) - 1;
- if ($compiler->parser->current_buffer->subtrees[$last] instanceof _smarty_linebreak) {
- unset($compiler->parser->current_buffer->subtrees[$last]);
- }
- // if caching save template function for possible nocache call
+ // if caching save template function for possible nocache call
if ($compiler->template->caching) {
$compiler->template->properties['function'][$_name]['compiled'] .= $plugins_string
- . $compiler->parser->current_buffer->to_smarty_php();
+ . $compiler->parser->current_buffer->to_smarty_php();
$compiler->template->properties['function'][$_name]['nocache_hash'] = $compiler->template->properties['nocache_hash'];
$compiler->template->properties['function'][$_name]['has_nocache_code'] = $compiler->template->has_nocache_code;
$compiler->template->properties['function'][$_name]['called_functions'] = $compiler->called_functions;
@@ -149,7 +147,8 @@ class Smarty_Internal_Compile_Functionclose extends Smarty_Internal_CompileBase
$compiler->has_code = false;
$output = true;
} else {
- $output = $plugins_string . $compiler->parser->current_buffer->to_smarty_php() . "<?php \$_smarty_tpl->tpl_vars = \$saved_tpl_vars;}}?>\n";
+ $output = $plugins_string . $compiler->parser->current_buffer->to_smarty_php() . "<?php \$_smarty_tpl->tpl_vars = \$saved_tpl_vars;
+foreach (Smarty::\$global_tpl_vars as \$key => \$value) if(!isset(\$_smarty_tpl->tpl_vars[\$key])) \$_smarty_tpl->tpl_vars[\$key] = \$value;}}?>\n";
}
// reset flag that we are compiling a template function
$compiler->compiles_template_function = false;
@@ -157,9 +156,7 @@ class Smarty_Internal_Compile_Functionclose extends Smarty_Internal_CompileBase
$compiler->parser->current_buffer = $saved_data[1];
$compiler->template->has_nocache_code = $compiler->template->has_nocache_code | $saved_data[2];
$compiler->template->required_plugins = $saved_data[3];
+
return $output;
}
-
}
-
-?> \ No newline at end of file
diff --git a/library/Smarty/libs/sysplugins/smarty_internal_compile_if.php b/library/Smarty/libs/sysplugins/smarty_internal_compile_if.php
index 8794b014b..d709fcfd8 100644
--- a/library/Smarty/libs/sysplugins/smarty_internal_compile_if.php
+++ b/library/Smarty/libs/sysplugins/smarty_internal_compile_if.php
@@ -1,30 +1,30 @@
<?php
/**
-* Smarty Internal Plugin Compile If
-*
-* Compiles the {if} {else} {elseif} {/if} tags
-*
-* @package Smarty
-* @subpackage Compiler
-* @author Uwe Tews
-*/
+ * Smarty Internal Plugin Compile If
+ * Compiles the {if} {else} {elseif} {/if} tags
+ *
+ * @package Smarty
+ * @subpackage Compiler
+ * @author Uwe Tews
+ */
/**
-* Smarty Internal Plugin Compile If Class
-*
-* @package Smarty
-* @subpackage Compiler
-*/
-class Smarty_Internal_Compile_If extends Smarty_Internal_CompileBase {
-
+ * Smarty Internal Plugin Compile If Class
+ *
+ * @package Smarty
+ * @subpackage Compiler
+ */
+class Smarty_Internal_Compile_If extends Smarty_Internal_CompileBase
+{
/**
- * Compiles code for the {if} tag
- *
- * @param array $args array with attributes from parser
- * @param object $compiler compiler object
- * @param array $parameter array with compilation parameter
- * @return string compiled code
- */
+ * Compiles code for the {if} tag
+ *
+ * @param array $args array with attributes from parser
+ * @param object $compiler compiler object
+ * @param array $parameter array with compilation parameter
+ *
+ * @return string compiled code
+ */
public function compile($args, $compiler, $parameter)
{
// check and get attributes
@@ -33,7 +33,7 @@ class Smarty_Internal_Compile_If extends Smarty_Internal_CompileBase {
// must whole block be nocache ?
$compiler->nocache = $compiler->nocache | $compiler->tag_nocache;
- if (!array_key_exists("if condition",$parameter)) {
+ if (!array_key_exists("if condition", $parameter)) {
$compiler->trigger_template_error("missing if condition", $compiler->lex->taglineno);
}
@@ -50,62 +50,63 @@ class Smarty_Internal_Compile_If extends Smarty_Internal_CompileBase {
$_nocache = '';
}
if (is_array($parameter['if condition']['var'])) {
- $_output = "<?php if (!isset(\$_smarty_tpl->tpl_vars[".$parameter['if condition']['var']['var']."]) || !is_array(\$_smarty_tpl->tpl_vars[".$parameter['if condition']['var']['var']."]->value)) \$_smarty_tpl->createLocalArrayVariable(".$parameter['if condition']['var']['var']."$_nocache);\n";
- $_output .= "if (\$_smarty_tpl->tpl_vars[".$parameter['if condition']['var']['var']."]->value".$parameter['if condition']['var']['smarty_internal_index']." = ".$parameter['if condition']['value']."){?>";
+ $_output = "<?php if (!isset(\$_smarty_tpl->tpl_vars[" . $parameter['if condition']['var']['var'] . "]) || !is_array(\$_smarty_tpl->tpl_vars[" . $parameter['if condition']['var']['var'] . "]->value)) \$_smarty_tpl->createLocalArrayVariable(" . $parameter['if condition']['var']['var'] . "$_nocache);\n";
+ $_output .= "if (\$_smarty_tpl->tpl_vars[" . $parameter['if condition']['var']['var'] . "]->value" . $parameter['if condition']['var']['smarty_internal_index'] . " = " . $parameter['if condition']['value'] . ") {?>";
} else {
- $_output = "<?php if (!isset(\$_smarty_tpl->tpl_vars[".$parameter['if condition']['var']."])) \$_smarty_tpl->tpl_vars[".$parameter['if condition']['var']."] = new Smarty_Variable(null{$_nocache});";
- $_output .= "if (\$_smarty_tpl->tpl_vars[".$parameter['if condition']['var']."]->value = ".$parameter['if condition']['value']."){?>";
+ $_output = "<?php if (!isset(\$_smarty_tpl->tpl_vars[" . $parameter['if condition']['var'] . "])) \$_smarty_tpl->tpl_vars[" . $parameter['if condition']['var'] . "] = new Smarty_Variable(null{$_nocache});";
+ $_output .= "if (\$_smarty_tpl->tpl_vars[" . $parameter['if condition']['var'] . "]->value = " . $parameter['if condition']['value'] . ") {?>";
}
+
return $_output;
} else {
- return "<?php if ({$parameter['if condition']}){?>";
+ return "<?php if ({$parameter['if condition']}) {?>";
}
}
-
}
/**
-* Smarty Internal Plugin Compile Else Class
-*
-* @package Smarty
-* @subpackage Compiler
-*/
-class Smarty_Internal_Compile_Else extends Smarty_Internal_CompileBase {
-
+ * Smarty Internal Plugin Compile Else Class
+ *
+ * @package Smarty
+ * @subpackage Compiler
+ */
+class Smarty_Internal_Compile_Else extends Smarty_Internal_CompileBase
+{
/**
- * Compiles code for the {else} tag
- *
- * @param array $args array with attributes from parser
- * @param object $compiler compiler object
- * @param array $parameter array with compilation parameter
- * @return string compiled code
- */
+ * Compiles code for the {else} tag
+ *
+ * @param array $args array with attributes from parser
+ * @param object $compiler compiler object
+ * @param array $parameter array with compilation parameter
+ *
+ * @return string compiled code
+ */
public function compile($args, $compiler, $parameter)
{
list($nesting, $compiler->tag_nocache) = $this->closeTag($compiler, array('if', 'elseif'));
$this->openTag($compiler, 'else', array($nesting, $compiler->tag_nocache));
- return "<?php }else{ ?>";
+ return "<?php } else { ?>";
}
-
}
/**
-* Smarty Internal Plugin Compile ElseIf Class
-*
-* @package Smarty
-* @subpackage Compiler
-*/
-class Smarty_Internal_Compile_Elseif extends Smarty_Internal_CompileBase {
-
+ * Smarty Internal Plugin Compile ElseIf Class
+ *
+ * @package Smarty
+ * @subpackage Compiler
+ */
+class Smarty_Internal_Compile_Elseif extends Smarty_Internal_CompileBase
+{
/**
- * Compiles code for the {elseif} tag
- *
- * @param array $args array with attributes from parser
- * @param object $compiler compiler object
- * @param array $parameter array with compilation parameter
- * @return string compiled code
- */
+ * Compiles code for the {elseif} tag
+ *
+ * @param array $args array with attributes from parser
+ * @param object $compiler compiler object
+ * @param array $parameter array with compilation parameter
+ *
+ * @return string compiled code
+ */
public function compile($args, $compiler, $parameter)
{
// check and get attributes
@@ -113,7 +114,7 @@ class Smarty_Internal_Compile_Elseif extends Smarty_Internal_CompileBase {
list($nesting, $compiler->tag_nocache) = $this->closeTag($compiler, array('if', 'elseif'));
- if (!array_key_exists("if condition",$parameter)) {
+ if (!array_key_exists("if condition", $parameter)) {
$compiler->trigger_template_error("missing elseif condition", $compiler->lex->taglineno);
}
@@ -138,56 +139,60 @@ class Smarty_Internal_Compile_Elseif extends Smarty_Internal_CompileBase {
if ($condition_by_assign) {
$this->openTag($compiler, 'elseif', array($nesting + 1, $compiler->tag_nocache));
if (is_array($parameter['if condition']['var'])) {
- $_output = "<?php }else{ if (!isset(\$_smarty_tpl->tpl_vars[" . $parameter['if condition']['var']['var'] . "]) || !is_array(\$_smarty_tpl->tpl_vars[" . $parameter['if condition']['var']['var'] . "]->value)) \$_smarty_tpl->createLocalArrayVariable(" . $parameter['if condition']['var']['var'] . "$_nocache);\n";
- $_output .= "if (\$_smarty_tpl->tpl_vars[" . $parameter['if condition']['var']['var'] . "]->value" . $parameter['if condition']['var']['smarty_internal_index'] . " = " . $parameter['if condition']['value'] . "){?>";
+ $_output = "<?php } else { if (!isset(\$_smarty_tpl->tpl_vars[" . $parameter['if condition']['var']['var'] . "]) || !is_array(\$_smarty_tpl->tpl_vars[" . $parameter['if condition']['var']['var'] . "]->value)) \$_smarty_tpl->createLocalArrayVariable(" . $parameter['if condition']['var']['var'] . "$_nocache);\n";
+ $_output .= "if (\$_smarty_tpl->tpl_vars[" . $parameter['if condition']['var']['var'] . "]->value" . $parameter['if condition']['var']['smarty_internal_index'] . " = " . $parameter['if condition']['value'] . ") {?>";
} else {
- $_output = "<?php }else{ if (!isset(\$_smarty_tpl->tpl_vars[" . $parameter['if condition']['var'] . "])) \$_smarty_tpl->tpl_vars[" . $parameter['if condition']['var'] . "] = new Smarty_Variable(null{$_nocache});";
- $_output .= "if (\$_smarty_tpl->tpl_vars[" . $parameter['if condition']['var'] . "]->value = " . $parameter['if condition']['value'] . "){?>";
+ $_output = "<?php } else { if (!isset(\$_smarty_tpl->tpl_vars[" . $parameter['if condition']['var'] . "])) \$_smarty_tpl->tpl_vars[" . $parameter['if condition']['var'] . "] = new Smarty_Variable(null{$_nocache});";
+ $_output .= "if (\$_smarty_tpl->tpl_vars[" . $parameter['if condition']['var'] . "]->value = " . $parameter['if condition']['value'] . ") {?>";
}
+
return $_output;
} else {
$this->openTag($compiler, 'elseif', array($nesting, $compiler->tag_nocache));
- return "<?php }elseif({$parameter['if condition']}){?>";
+
+ return "<?php } elseif ({$parameter['if condition']}) {?>";
}
} else {
$tmp = '';
- foreach ($compiler->prefix_code as $code)
- $tmp .= $code;
+ foreach ($compiler->prefix_code as $code) {
+ $tmp .= $code;
+ }
$compiler->prefix_code = array();
$this->openTag($compiler, 'elseif', array($nesting + 1, $compiler->tag_nocache));
if ($condition_by_assign) {
if (is_array($parameter['if condition']['var'])) {
- $_output = "<?php }else{?>{$tmp}<?php if (!isset(\$_smarty_tpl->tpl_vars[" . $parameter['if condition']['var']['var'] . "]) || !is_array(\$_smarty_tpl->tpl_vars[" . $parameter['if condition']['var']['var'] . "]->value)) \$_smarty_tpl->createLocalArrayVariable(" . $parameter['if condition']['var']['var'] . "$_nocache);\n";
- $_output .= "if (\$_smarty_tpl->tpl_vars[" . $parameter['if condition']['var']['var'] . "]->value" . $parameter['if condition']['var']['smarty_internal_index'] . " = " . $parameter['if condition']['value'] . "){?>";
+ $_output = "<?php } else {?>{$tmp}<?php if (!isset(\$_smarty_tpl->tpl_vars[" . $parameter['if condition']['var']['var'] . "]) || !is_array(\$_smarty_tpl->tpl_vars[" . $parameter['if condition']['var']['var'] . "]->value)) \$_smarty_tpl->createLocalArrayVariable(" . $parameter['if condition']['var']['var'] . "$_nocache);\n";
+ $_output .= "if (\$_smarty_tpl->tpl_vars[" . $parameter['if condition']['var']['var'] . "]->value" . $parameter['if condition']['var']['smarty_internal_index'] . " = " . $parameter['if condition']['value'] . ") {?>";
} else {
- $_output = "<?php }else{?>{$tmp}<?php if (!isset(\$_smarty_tpl->tpl_vars[" . $parameter['if condition']['var'] . "])) \$_smarty_tpl->tpl_vars[" . $parameter['if condition']['var'] . "] = new Smarty_Variable(null{$_nocache});";
- $_output .= "if (\$_smarty_tpl->tpl_vars[" . $parameter['if condition']['var'] . "]->value = " . $parameter['if condition']['value'] . "){?>";
+ $_output = "<?php } else {?>{$tmp}<?php if (!isset(\$_smarty_tpl->tpl_vars[" . $parameter['if condition']['var'] . "])) \$_smarty_tpl->tpl_vars[" . $parameter['if condition']['var'] . "] = new Smarty_Variable(null{$_nocache});";
+ $_output .= "if (\$_smarty_tpl->tpl_vars[" . $parameter['if condition']['var'] . "]->value = " . $parameter['if condition']['value'] . ") {?>";
}
+
return $_output;
} else {
- return "<?php }else{?>{$tmp}<?php if ({$parameter['if condition']}){?>";
+ return "<?php } else {?>{$tmp}<?php if ({$parameter['if condition']}) {?>";
}
}
}
-
}
/**
-* Smarty Internal Plugin Compile Ifclose Class
-*
-* @package Smarty
-* @subpackage Compiler
-*/
-class Smarty_Internal_Compile_Ifclose extends Smarty_Internal_CompileBase {
-
+ * Smarty Internal Plugin Compile Ifclose Class
+ *
+ * @package Smarty
+ * @subpackage Compiler
+ */
+class Smarty_Internal_Compile_Ifclose extends Smarty_Internal_CompileBase
+{
/**
- * Compiles code for the {/if} tag
- *
- * @param array $args array with attributes from parser
- * @param object $compiler compiler object
- * @param array $parameter array with compilation parameter
- * @return string compiled code
- */
+ * Compiles code for the {/if} tag
+ *
+ * @param array $args array with attributes from parser
+ * @param object $compiler compiler object
+ * @param array $parameter array with compilation parameter
+ *
+ * @return string compiled code
+ */
public function compile($args, $compiler, $parameter)
{
// must endblock be nocache?
@@ -196,12 +201,10 @@ class Smarty_Internal_Compile_Ifclose extends Smarty_Internal_CompileBase {
}
list($nesting, $compiler->nocache) = $this->closeTag($compiler, array('if', 'else', 'elseif'));
$tmp = '';
- for ($i = 0; $i < $nesting; $i++) {
+ for ($i = 0; $i < $nesting; $i ++) {
$tmp .= '}';
}
+
return "<?php {$tmp}?>";
}
-
}
-
-?> \ No newline at end of file
diff --git a/library/Smarty/libs/sysplugins/smarty_internal_compile_include.php b/library/Smarty/libs/sysplugins/smarty_internal_compile_include.php
index 43a144f94..4b7b09ce7 100644
--- a/library/Smarty/libs/sysplugins/smarty_internal_compile_include.php
+++ b/library/Smarty/libs/sysplugins/smarty_internal_compile_include.php
@@ -1,72 +1,72 @@
<?php
/**
-* Smarty Internal Plugin Compile Include
-*
-* Compiles the {include} tag
-*
-* @package Smarty
-* @subpackage Compiler
-* @author Uwe Tews
-*/
+ * Smarty Internal Plugin Compile Include
+ * Compiles the {include} tag
+ *
+ * @package Smarty
+ * @subpackage Compiler
+ * @author Uwe Tews
+ */
/**
-* Smarty Internal Plugin Compile Include Class
-*
-* @package Smarty
-* @subpackage Compiler
-*/
-class Smarty_Internal_Compile_Include extends Smarty_Internal_CompileBase {
-
+ * Smarty Internal Plugin Compile Include Class
+ *
+ * @package Smarty
+ * @subpackage Compiler
+ */
+class Smarty_Internal_Compile_Include extends Smarty_Internal_CompileBase
+{
/**
- * caching mode to create nocache code but no cache file
- */
+ * caching mode to create nocache code but no cache file
+ */
const CACHING_NOCACHE_CODE = 9999;
/**
- * Attribute definition: Overwrites base class.
- *
- * @var array
- * @see Smarty_Internal_CompileBase
- */
+ * Attribute definition: Overwrites base class.
+ *
+ * @var array
+ * @see Smarty_Internal_CompileBase
+ */
public $required_attributes = array('file');
/**
- * Attribute definition: Overwrites base class.
- *
- * @var array
- * @see Smarty_Internal_CompileBase
- */
+ * Attribute definition: Overwrites base class.
+ *
+ * @var array
+ * @see Smarty_Internal_CompileBase
+ */
public $shorttag_order = array('file');
/**
- * Attribute definition: Overwrites base class.
- *
- * @var array
- * @see Smarty_Internal_CompileBase
- */
+ * Attribute definition: Overwrites base class.
+ *
+ * @var array
+ * @see Smarty_Internal_CompileBase
+ */
public $option_flags = array('nocache', 'inline', 'caching');
/**
- * Attribute definition: Overwrites base class.
- *
- * @var array
- * @see Smarty_Internal_CompileBase
- */
+ * Attribute definition: Overwrites base class.
+ *
+ * @var array
+ * @see Smarty_Internal_CompileBase
+ */
public $optional_attributes = array('_any');
/**
- * Compiles code for the {include} tag
- *
- * @param array $args array with attributes from parser
- * @param object $compiler compiler object
- * @param array $parameter array with compilation parameter
+ * Compiles code for the {include} tag
+ *
+ * @param array $args array with attributes from parser
+ * @param object $compiler compiler object
+ * @param array $parameter array with compilation parameter
+ *
* @return string compiled code
*/
public function compile($args, $compiler, $parameter)
{
// check and get attributes
$_attr = $this->getAttributes($compiler, $args);
- // save posible attributes
+ // save possible attributes
$include_file = $_attr['file'];
if (isset($_attr['assign'])) {
- // output will be stored in a smarty variable instead of beind displayed
+ // output will be stored in a smarty variable instead of being displayed
$_assign = $_attr['assign'];
}
@@ -81,12 +81,15 @@ class Smarty_Internal_Compile_Include extends Smarty_Internal_CompileBase {
$_parent_scope = Smarty::SCOPE_GLOBAL;
}
}
- $_caching = 'null';
- if ($compiler->nocache || $compiler->tag_nocache) {
- $_caching = Smarty::CACHING_OFF;
- }
- // default for included templates
- if ($compiler->template->caching && !$compiler->nocache && !$compiler->tag_nocache) {
+
+ $_caching = Smarty::CACHING_OFF;
+
+ // flag if included template code should be merged into caller
+ $merge_compiled_includes = ($compiler->smarty->merge_compiled_includes || ($compiler->inheritance && $compiler->smarty->inheritance_merge_compiled_includes) || $_attr['inline'] === true) && !$compiler->template->source->recompiled;
+
+ // set default when in nocache mode
+ // if ($compiler->template->caching && ($compiler->nocache || $compiler->tag_nocache || $compiler->forceNocache == 2)) {
+ if ($compiler->template->caching && ((!$compiler->inheritance && !$compiler->nocache && !$compiler->tag_nocache) || ($compiler->inheritance && ($compiler->nocache || $compiler->tag_nocache)))) {
$_caching = self::CACHING_NOCACHE_CODE;
}
/*
@@ -118,52 +121,93 @@ class Smarty_Internal_Compile_Include extends Smarty_Internal_CompileBase {
}
if ($_attr['nocache'] === true) {
$compiler->tag_nocache = true;
- $_caching = Smarty::CACHING_OFF;
+ if ($merge_compiled_includes) {
+ $_caching = self::CACHING_NOCACHE_CODE;
+ } else {
+ $_caching = Smarty::CACHING_OFF;
+ }
}
$has_compiled_template = false;
- if (($compiler->smarty->merge_compiled_includes || $_attr['inline'] === true) && !$compiler->template->source->recompiled
- && !($compiler->template->caching && ($compiler->tag_nocache || $compiler->nocache)) && $_caching != Smarty::CACHING_LIFETIME_CURRENT) {
- // check if compiled code can be merged (contains no variable part)
- if (!$compiler->has_variable_string && (substr_count($include_file, '"') == 2 or substr_count($include_file, "'") == 2)
- and substr_count($include_file, '(') == 0 and substr_count($include_file, '$_smarty_tpl->') == 0) {
- $tpl_name = null;
- eval("\$tpl_name = $include_file;");
- if (!isset($compiler->smarty->merged_templates_func[$tpl_name]) || $compiler->inheritance) {
- $tpl = new $compiler->smarty->template_class ($tpl_name, $compiler->smarty, $compiler->template, $compiler->template->cache_id, $compiler->template->compile_id);
- // save unique function name
- $compiler->smarty->merged_templates_func[$tpl_name]['func'] = $tpl->properties['unifunc'] = 'content_'. str_replace('.', '_', uniqid('', true));
- // use current nocache hash for inlined code
- $compiler->smarty->merged_templates_func[$tpl_name]['nocache_hash'] = $tpl->properties['nocache_hash'] = $compiler->template->properties['nocache_hash'];
- if ($compiler->template->caching) {
- // needs code for cached page but no cache file
- $tpl->caching = self::CACHING_NOCACHE_CODE;
+ if ($merge_compiled_includes && $_attr['inline'] !== true) {
+ // variable template name ?
+ if ($compiler->has_variable_string || !((substr_count($include_file, '"') == 2 || substr_count($include_file, "'") == 2))
+ || substr_count($include_file, '(') != 0 || substr_count($include_file, '$_smarty_tpl->') != 0
+ ) {
+ $merge_compiled_includes = false;
+ if ($compiler->inheritance && $compiler->smarty->inheritance_merge_compiled_includes) {
+ $compiler->trigger_template_error(' variable template file names not allow within {block} tags');
+ }
+ }
+ // variable compile_id?
+ if (isset($_attr['compile_id'])) {
+ if (!((substr_count($_attr['compile_id'], '"') == 2 || substr_count($_attr['compile_id'], "'") == 2))
+ || substr_count($_attr['compile_id'], '(') != 0 || substr_count($_attr['compile_id'], '$_smarty_tpl->') != 0
+ ) {
+ $merge_compiled_includes = false;
+ if ($compiler->inheritance && $compiler->smarty->inheritance_merge_compiled_includes) {
+ $compiler->trigger_template_error(' variable compile_id not allow within {block} tags');
}
- // make sure whole chain gest compiled
- $tpl->mustCompile = true;
- if (!($tpl->source->uncompiled) && $tpl->source->exists) {
- // get compiled code
- $compiled_code = $tpl->compiler->compileTemplate($tpl);
- // release compiler object to free memory
- unset($tpl->compiler);
- // merge compiled code for {function} tags
- $compiler->template->properties['function'] = array_merge($compiler->template->properties['function'], $tpl->properties['function']);
- // merge filedependency
- $tpl->properties['file_dependency'][$tpl->source->uid] = array($tpl->source->filepath, $tpl->source->timestamp,$tpl->source->type);
- $compiler->template->properties['file_dependency'] = array_merge($compiler->template->properties['file_dependency'], $tpl->properties['file_dependency']);
- // remove header code
- $compiled_code = preg_replace("/(<\?php \/\*%%SmartyHeaderCode:{$tpl->properties['nocache_hash']}%%\*\/(.+?)\/\*\/%%SmartyHeaderCode%%\*\/\?>\n)/s", '', $compiled_code);
- if ($tpl->has_nocache_code) {
- // replace nocache_hash
- $compiled_code = str_replace("{$tpl->properties['nocache_hash']}", $compiler->template->properties['nocache_hash'], $compiled_code);
- $compiler->template->has_nocache_code = true;
- }
- $compiler->merged_templates[$tpl->properties['unifunc']] = $compiled_code;
- $has_compiled_template = true;
+ }
+ }
+ }
+ if ($merge_compiled_includes) {
+ if ($compiler->template->caching && ($compiler->tag_nocache || $compiler->nocache) && $_caching != self::CACHING_NOCACHE_CODE) {
+ $merge_compiled_includes = false;
+ if ($compiler->inheritance && $compiler->smarty->inheritance_merge_compiled_includes) {
+ $compiler->trigger_template_error(' invalid caching mode of subtemplate within {block} tags');
+ }
+ }
+ }
+ if ($merge_compiled_includes) {
+ // we must observe different compile_id
+ $uid = sha1($_compile_id);
+ $tpl_name = null;
+ $nocache = false;
+ /** @var Smarty_Internal_Template $_smarty_tpl
+ * used in evaluated code
+ */
+ $_smarty_tpl = $compiler->template;
+ eval("\$tpl_name = $include_file;");
+ if (!isset($compiler->smarty->merged_templates_func[$tpl_name][$uid])) {
+ $tpl = new $compiler->smarty->template_class ($tpl_name, $compiler->smarty, $compiler->template, $compiler->template->cache_id, $compiler->template->compile_id);
+ // save unique function name
+ $compiler->smarty->merged_templates_func[$tpl_name][$uid]['func'] = $tpl->properties['unifunc'] = 'content_' . str_replace(array('.', ','), '_', uniqid('', true));
+ // use current nocache hash for inlined code
+ $compiler->smarty->merged_templates_func[$tpl_name][$uid]['nocache_hash'] = $tpl->properties['nocache_hash'] = $compiler->template->properties['nocache_hash'];
+ if ($compiler->template->caching && $_caching == self::CACHING_NOCACHE_CODE) {
+ // all code must be nocache
+ $nocache = true;
+ }
+ if ($compiler->inheritance) {
+ $tpl->compiler->inheritance = true;
+ }
+ // make sure whole chain gets compiled
+ $tpl->mustCompile = true;
+ if (!($tpl->source->uncompiled) && $tpl->source->exists) {
+
+ // get compiled code
+ $compiled_code = $tpl->compiler->compileTemplate($tpl, $nocache);
+ // release compiler object to free memory
+ unset($tpl->compiler);
+ // merge compiled code for {function} tags
+ $compiler->template->properties['function'] = array_merge($compiler->template->properties['function'], $tpl->properties['function']);
+ // merge filedependency
+ $tpl->properties['file_dependency'][$tpl->source->uid] = array($tpl->source->filepath, $tpl->source->timestamp, $tpl->source->type);
+ $compiler->template->properties['file_dependency'] = array_merge($compiler->template->properties['file_dependency'], $tpl->properties['file_dependency']);
+ // remove header code
+ $compiled_code = preg_replace("/(<\?php \/\*%%SmartyHeaderCode:{$tpl->properties['nocache_hash']}%%\*\/(.+?)\/\*\/%%SmartyHeaderCode%%\*\/\?>\n)/s", '', $compiled_code);
+ if ($tpl->has_nocache_code) {
+ // replace nocache_hash
+ $compiled_code = str_replace("{$tpl->properties['nocache_hash']}", $compiler->template->properties['nocache_hash'], $compiled_code);
+ $compiler->template->has_nocache_code = true;
}
- } else {
+ $compiler->merged_templates[$tpl->properties['unifunc']] = $compiled_code;
$has_compiled_template = true;
+ unset ($tpl);
}
+ } else {
+ $has_compiled_template = true;
}
}
// delete {include} standard attributes
@@ -172,32 +216,40 @@ class Smarty_Internal_Compile_Include extends Smarty_Internal_CompileBase {
if (!empty($_attr)) {
if ($_parent_scope == Smarty::SCOPE_LOCAL) {
// create variables
+ $nccode = '';
foreach ($_attr as $key => $value) {
$_pairs[] = "'$key'=>$value";
+ $nccode .= "\$_smarty_tpl->tpl_vars['$key'] = new Smarty_variable($value);\n";
}
- $_vars = 'array('.join(',',$_pairs).')';
- $_has_vars = true;
+ $_vars = 'array(' . join(',', $_pairs) . ')';
} else {
$compiler->trigger_template_error('variable passing not allowed in parent/global scope', $compiler->lex->taglineno);
}
} else {
$_vars = 'array()';
- $_has_vars = false;
}
if ($has_compiled_template) {
- $_hash = $compiler->smarty->merged_templates_func[$tpl_name]['nocache_hash'];
+ // never call inline templates in nocache mode
+ $compiler->suppressNocacheProcessing = true;
+ $_hash = $compiler->smarty->merged_templates_func[$tpl_name][$uid]['nocache_hash'];
$_output = "<?php /* Call merged included template \"" . $tpl_name . "\" */\n";
$_output .= "\$_tpl_stack[] = \$_smarty_tpl;\n";
+ if (!empty($nccode) && $_caching == 9999 && $_smarty_tpl->caching) {
+ $compiler->suppressNocacheProcessing = false;
+ $_output .= substr($compiler->processNocacheCode('<?php ' .$nccode . "?>\n", true), 6, -3);
+ $compiler->suppressNocacheProcessing = true;
+ }
$_output .= " \$_smarty_tpl = \$_smarty_tpl->setupInlineSubTemplate($include_file, $_cache_id, $_compile_id, $_caching, $_cache_lifetime, $_vars, $_parent_scope, '$_hash');\n";
if (isset($_assign)) {
$_output .= 'ob_start(); ';
}
- $_output .= $compiler->smarty->merged_templates_func[$tpl_name]['func']. "(\$_smarty_tpl);\n";
+ $_output .= $compiler->smarty->merged_templates_func[$tpl_name][$uid]['func'] . "(\$_smarty_tpl);\n";
$_output .= "\$_smarty_tpl = array_pop(\$_tpl_stack); ";
if (isset($_assign)) {
$_output .= " \$_smarty_tpl->tpl_vars[$_assign] = new Smarty_variable(ob_get_clean());";
}
- $_output .= "/* End of included template \"" . $tpl_name . "\" */?>";
+ $_output .= "\n/* End of included template \"" . $tpl_name . "\" */?>";
+
return $_output;
}
@@ -207,9 +259,7 @@ class Smarty_Internal_Compile_Include extends Smarty_Internal_CompileBase {
} else {
$_output = "<?php echo \$_smarty_tpl->getSubTemplate ($include_file, $_cache_id, $_compile_id, $_caching, $_cache_lifetime, $_vars, $_parent_scope);?>\n";
}
+
return $_output;
}
-
}
-
-?> \ No newline at end of file
diff --git a/library/Smarty/libs/sysplugins/smarty_internal_compile_include_php.php b/library/Smarty/libs/sysplugins/smarty_internal_compile_include_php.php
index d52712368..76f506c52 100644
--- a/library/Smarty/libs/sysplugins/smarty_internal_compile_include_php.php
+++ b/library/Smarty/libs/sysplugins/smarty_internal_compile_include_php.php
@@ -1,22 +1,21 @@
<?php
/**
* Smarty Internal Plugin Compile Include PHP
- *
* Compiles the {include_php} tag
*
- * @package Smarty
+ * @package Smarty
* @subpackage Compiler
- * @author Uwe Tews
+ * @author Uwe Tews
*/
/**
* Smarty Internal Plugin Compile Insert Class
*
- * @package Smarty
+ * @package Smarty
* @subpackage Compiler
*/
-class Smarty_Internal_Compile_Include_Php extends Smarty_Internal_CompileBase {
-
+class Smarty_Internal_Compile_Include_Php extends Smarty_Internal_CompileBase
+{
/**
* Attribute definition: Overwrites base class.
*
@@ -42,8 +41,10 @@ class Smarty_Internal_Compile_Include_Php extends Smarty_Internal_CompileBase {
/**
* Compiles code for the {include_php} tag
*
- * @param array $args array with attributes from parser
- * @param object $compiler compiler object
+ * @param array $args array with attributes from parser
+ * @param object $compiler compiler object
+ *
+ * @throws SmartyException
* @return string compiled code
*/
public function compile($args, $compiler)
@@ -54,8 +55,9 @@ class Smarty_Internal_Compile_Include_Php extends Smarty_Internal_CompileBase {
// check and get attributes
$_attr = $this->getAttributes($compiler, $args);
- $_output = '<?php ';
-
+ /** @var Smarty_Internal_Template $_smarty_tpl
+ * used in evaluated code
+ */
$_smarty_tpl = $compiler->template;
$_filepath = false;
eval('$_file = ' . $_attr['file'] . ';');
@@ -68,10 +70,10 @@ class Smarty_Internal_Compile_Include_Php extends Smarty_Internal_CompileBase {
$_dir = $compiler->smarty->trusted_dir;
}
if (!empty($_dir)) {
- foreach((array)$_dir as $_script_dir) {
+ foreach ((array) $_dir as $_script_dir) {
$_script_dir = rtrim($_script_dir, '/\\') . DS;
if (file_exists($_script_dir . $_file)) {
- $_filepath = $_script_dir . $_file;
+ $_filepath = $_script_dir . $_file;
break;
}
}
@@ -102,7 +104,4 @@ class Smarty_Internal_Compile_Include_Php extends Smarty_Internal_CompileBase {
return "<?php include{$_once} ('{$_filepath}');?>\n";
}
}
-
}
-
-?> \ No newline at end of file
diff --git a/library/Smarty/libs/sysplugins/smarty_internal_compile_insert.php b/library/Smarty/libs/sysplugins/smarty_internal_compile_insert.php
index e4d3f9355..4c6585543 100644
--- a/library/Smarty/libs/sysplugins/smarty_internal_compile_insert.php
+++ b/library/Smarty/libs/sysplugins/smarty_internal_compile_insert.php
@@ -2,22 +2,21 @@
/**
* Smarty Internal Plugin Compile Insert
- *
* Compiles the {insert} tag
*
- * @package Smarty
+ * @package Smarty
* @subpackage Compiler
- * @author Uwe Tews
+ * @author Uwe Tews
*/
/**
* Smarty Internal Plugin Compile Insert Class
*
- * @package Smarty
+ * @package Smarty
* @subpackage Compiler
*/
-class Smarty_Internal_Compile_Insert extends Smarty_Internal_CompileBase {
-
+class Smarty_Internal_Compile_Insert extends Smarty_Internal_CompileBase
+{
/**
* Attribute definition: Overwrites base class.
*
@@ -43,8 +42,9 @@ class Smarty_Internal_Compile_Insert extends Smarty_Internal_CompileBase {
/**
* Compiles code for the {insert} tag
*
- * @param array $args array with attributes from parser
- * @param object $compiler compiler object
+ * @param array $args array with attributes from parser
+ * @param object $compiler compiler object
+ *
* @return string compiled code
*/
public function compile($args, $compiler)
@@ -59,12 +59,12 @@ class Smarty_Internal_Compile_Insert extends Smarty_Internal_CompileBase {
$_script = null;
$_output = '<?php ';
- // save posible attributes
+ // save possible attributes
eval('$_name = ' . $_attr['name'] . ';');
if (isset($_attr['assign'])) {
// output will be stored in a smarty variable instead of being displayed
$_assign = $_attr['assign'];
- // create variable to make shure that the compiler knows about its nocache status
+ // create variable to make sure that the compiler knows about its nocache status
$compiler->template->tpl_vars[trim($_attr['assign'], "'")] = new Smarty_Variable(null, true);
}
if (isset($_attr['script'])) {
@@ -82,7 +82,7 @@ class Smarty_Internal_Compile_Insert extends Smarty_Internal_CompileBase {
$_dir = $compiler->smarty->trusted_dir;
}
if (!empty($_dir)) {
- foreach((array)$_dir as $_script_dir) {
+ foreach ((array) $_dir as $_script_dir) {
$_script_dir = rtrim($_script_dir, '/\\') . DS;
if (file_exists($_script_dir . $_script)) {
$_filepath = $_script_dir . $_script;
@@ -134,9 +134,7 @@ class Smarty_Internal_Compile_Insert extends Smarty_Internal_CompileBase {
$_output .= "echo {$_function}({$_params},\$_smarty_tpl);?>";
}
}
+
return $_output;
}
-
}
-
-?> \ No newline at end of file
diff --git a/library/Smarty/libs/sysplugins/smarty_internal_compile_ldelim.php b/library/Smarty/libs/sysplugins/smarty_internal_compile_ldelim.php
index 990632590..91b44881e 100644
--- a/library/Smarty/libs/sysplugins/smarty_internal_compile_ldelim.php
+++ b/library/Smarty/libs/sysplugins/smarty_internal_compile_ldelim.php
@@ -1,28 +1,28 @@
<?php
/**
* Smarty Internal Plugin Compile Ldelim
- *
* Compiles the {ldelim} tag
*
- * @package Smarty
+ * @package Smarty
* @subpackage Compiler
- * @author Uwe Tews
+ * @author Uwe Tews
*/
/**
* Smarty Internal Plugin Compile Ldelim Class
*
- * @package Smarty
+ * @package Smarty
* @subpackage Compiler
*/
-class Smarty_Internal_Compile_Ldelim extends Smarty_Internal_CompileBase {
-
+class Smarty_Internal_Compile_Ldelim extends Smarty_Internal_CompileBase
+{
/**
* Compiles code for the {ldelim} tag
- *
* This tag does output the left delimiter
- * @param array $args array with attributes from parser
- * @param object $compiler compiler object
+ *
+ * @param array $args array with attributes from parser
+ * @param object $compiler compiler object
+ *
* @return string compiled code
*/
public function compile($args, $compiler)
@@ -33,9 +33,7 @@ class Smarty_Internal_Compile_Ldelim extends Smarty_Internal_CompileBase {
}
// this tag does not return compiled code
$compiler->has_code = true;
+
return $compiler->smarty->left_delimiter;
}
-
}
-
-?>
diff --git a/library/Smarty/libs/sysplugins/smarty_internal_compile_nocache.php b/library/Smarty/libs/sysplugins/smarty_internal_compile_nocache.php
index 5fb71b71d..ba39717fd 100644
--- a/library/Smarty/libs/sysplugins/smarty_internal_compile_nocache.php
+++ b/library/Smarty/libs/sysplugins/smarty_internal_compile_nocache.php
@@ -1,29 +1,28 @@
<?php
/**
* Smarty Internal Plugin Compile Nocache
- *
* Compiles the {nocache} {/nocache} tags.
*
- * @package Smarty
+ * @package Smarty
* @subpackage Compiler
- * @author Uwe Tews
+ * @author Uwe Tews
*/
/**
- * Smarty Internal Plugin Compile Nocache Classv
+ * Smarty Internal Plugin Compile Nocache Class
*
- * @package Smarty
+ * @package Smarty
* @subpackage Compiler
*/
-class Smarty_Internal_Compile_Nocache extends Smarty_Internal_CompileBase {
-
+class Smarty_Internal_Compile_Nocache extends Smarty_Internal_CompileBase
+{
/**
* Compiles code for the {nocache} tag
- *
* This tag does not generate compiled output. It only sets a compiler flag.
*
- * @param array $args array with attributes from parser
- * @param object $compiler compiler object
+ * @param array $args array with attributes from parser
+ * @param object $compiler compiler object
+ *
* @return bool
*/
public function compile($args, $compiler)
@@ -36,26 +35,26 @@ class Smarty_Internal_Compile_Nocache extends Smarty_Internal_CompileBase {
$compiler->nocache = true;
// this tag does not return compiled code
$compiler->has_code = false;
+
return true;
}
-
}
/**
* Smarty Internal Plugin Compile Nocacheclose Class
*
- * @package Smarty
+ * @package Smarty
* @subpackage Compiler
*/
-class Smarty_Internal_Compile_Nocacheclose extends Smarty_Internal_CompileBase {
-
+class Smarty_Internal_Compile_Nocacheclose extends Smarty_Internal_CompileBase
+{
/**
* Compiles code for the {/nocache} tag
- *
* This tag does not generate compiled output. It only sets a compiler flag.
*
- * @param array $args array with attributes from parser
- * @param object $compiler compiler object
+ * @param array $args array with attributes from parser
+ * @param object $compiler compiler object
+ *
* @return bool
*/
public function compile($args, $compiler)
@@ -65,9 +64,7 @@ class Smarty_Internal_Compile_Nocacheclose extends Smarty_Internal_CompileBase {
$compiler->nocache = false;
// this tag does not return compiled code
$compiler->has_code = false;
+
return true;
}
-
}
-
-?> \ No newline at end of file
diff --git a/library/Smarty/libs/sysplugins/smarty_internal_compile_private_block_plugin.php b/library/Smarty/libs/sysplugins/smarty_internal_compile_private_block_plugin.php
index 5288f4560..3dff8538e 100644
--- a/library/Smarty/libs/sysplugins/smarty_internal_compile_private_block_plugin.php
+++ b/library/Smarty/libs/sysplugins/smarty_internal_compile_private_block_plugin.php
@@ -1,22 +1,21 @@
<?php
/**
* Smarty Internal Plugin Compile Block Plugin
- *
* Compiles code for the execution of block plugin
*
- * @package Smarty
+ * @package Smarty
* @subpackage Compiler
- * @author Uwe Tews
+ * @author Uwe Tews
*/
/**
* Smarty Internal Plugin Compile Block Plugin Class
*
- * @package Smarty
+ * @package Smarty
* @subpackage Compiler
*/
-class Smarty_Internal_Compile_Private_Block_Plugin extends Smarty_Internal_CompileBase {
-
+class Smarty_Internal_Compile_Private_Block_Plugin extends Smarty_Internal_CompileBase
+{
/**
* Attribute definition: Overwrites base class.
*
@@ -28,23 +27,24 @@ class Smarty_Internal_Compile_Private_Block_Plugin extends Smarty_Internal_Compi
/**
* Compiles code for the execution of block plugin
*
- * @param array $args array with attributes from parser
- * @param object $compiler compiler object
- * @param array $parameter array with compilation parameter
- * @param string $tag name of block plugin
- * @param string $function PHP function name
+ * @param array $args array with attributes from parser
+ * @param object $compiler compiler object
+ * @param array $parameter array with compilation parameter
+ * @param string $tag name of block plugin
+ * @param string $function PHP function name
+ *
* @return string compiled code
*/
public function compile($args, $compiler, $parameter, $tag, $function)
{
- if (!isset($tag[5]) || substr($tag, -5) != 'close') {
+ if (!isset($tag[5]) || substr($tag, - 5) != 'close') {
// opening tag of block plugin
// check and get attributes
$_attr = $this->getAttributes($compiler, $args);
if ($_attr['nocache'] === true) {
$compiler->tag_nocache = true;
}
- unset($_attr['nocache']);
+ unset($_attr['nocache']);
// convert attributes into parameter array string
$_paramsArray = array();
foreach ($_attr as $_key => $_value) {
@@ -67,21 +67,19 @@ class Smarty_Internal_Compile_Private_Block_Plugin extends Smarty_Internal_Compi
$compiler->tag_nocache = true;
}
// closing tag of block plugin, restore nocache
- list($_params, $compiler->nocache) = $this->closeTag($compiler, substr($tag, 0, -5));
+ list($_params, $compiler->nocache) = $this->closeTag($compiler, substr($tag, 0, - 5));
// This tag does create output
$compiler->has_output = true;
// compile code
if (!isset($parameter['modifier_list'])) {
- $mod_pre = $mod_post ='';
+ $mod_pre = $mod_post = '';
} else {
$mod_pre = ' ob_start(); ';
- $mod_post = 'echo '.$compiler->compileTag('private_modifier',array(),array('modifierlist'=>$parameter['modifier_list'],'value'=>'ob_get_clean()')).';';
+ $mod_post = 'echo ' . $compiler->compileTag('private_modifier', array(), array('modifierlist' => $parameter['modifier_list'], 'value' => 'ob_get_clean()')) . ';';
}
- $output = "<?php \$_block_content = ob_get_clean(); \$_block_repeat=false;".$mod_pre." echo {$function}({$_params}, \$_block_content, \$_smarty_tpl, \$_block_repeat); ".$mod_post." } array_pop(\$_smarty_tpl->smarty->_tag_stack);?>";
+ $output = "<?php \$_block_content = ob_get_clean(); \$_block_repeat=false;" . $mod_pre . " echo {$function}({$_params}, \$_block_content, \$_smarty_tpl, \$_block_repeat); " . $mod_post . " } array_pop(\$_smarty_tpl->smarty->_tag_stack);?>";
}
+
return $output . "\n";
}
-
}
-
-?> \ No newline at end of file
diff --git a/library/Smarty/libs/sysplugins/smarty_internal_compile_private_function_plugin.php b/library/Smarty/libs/sysplugins/smarty_internal_compile_private_function_plugin.php
index 70e764318..4fbd4dc18 100644
--- a/library/Smarty/libs/sysplugins/smarty_internal_compile_private_function_plugin.php
+++ b/library/Smarty/libs/sysplugins/smarty_internal_compile_private_function_plugin.php
@@ -1,22 +1,21 @@
<?php
/**
* Smarty Internal Plugin Compile Function Plugin
- *
* Compiles code for the execution of function plugin
*
- * @package Smarty
+ * @package Smarty
* @subpackage Compiler
- * @author Uwe Tews
+ * @author Uwe Tews
*/
/**
* Smarty Internal Plugin Compile Function Plugin Class
*
- * @package Smarty
+ * @package Smarty
* @subpackage Compiler
*/
-class Smarty_Internal_Compile_Private_Function_Plugin extends Smarty_Internal_CompileBase {
-
+class Smarty_Internal_Compile_Private_Function_Plugin extends Smarty_Internal_CompileBase
+{
/**
* Attribute definition: Overwrites base class.
*
@@ -35,11 +34,12 @@ class Smarty_Internal_Compile_Private_Function_Plugin extends Smarty_Internal_Co
/**
* Compiles code for the execution of function plugin
*
- * @param array $args array with attributes from parser
- * @param object $compiler compiler object
- * @param array $parameter array with compilation parameter
- * @param string $tag name of function plugin
- * @param string $function PHP function name
+ * @param array $args array with attributes from parser
+ * @param object $compiler compiler object
+ * @param array $parameter array with compilation parameter
+ * @param string $tag name of function plugin
+ * @param string $function PHP function name
+ *
* @return string compiled code
*/
public function compile($args, $compiler, $parameter, $tag, $function)
@@ -65,9 +65,7 @@ class Smarty_Internal_Compile_Private_Function_Plugin extends Smarty_Internal_Co
$_params = 'array(' . implode(",", $_paramsArray) . ')';
// compile code
$output = "<?php echo {$function}({$_params},\$_smarty_tpl);?>\n";
+
return $output;
}
-
}
-
-?> \ No newline at end of file
diff --git a/library/Smarty/libs/sysplugins/smarty_internal_compile_private_modifier.php b/library/Smarty/libs/sysplugins/smarty_internal_compile_private_modifier.php
index 120f3ff10..ba03bfcfa 100644
--- a/library/Smarty/libs/sysplugins/smarty_internal_compile_private_modifier.php
+++ b/library/Smarty/libs/sysplugins/smarty_internal_compile_private_modifier.php
@@ -1,140 +1,139 @@
-<?php
-
-/**
- * Smarty Internal Plugin Compile Modifier
- *
- * Compiles code for modifier execution
- *
- * @package Smarty
- * @subpackage Compiler
- * @author Uwe Tews
- */
-
-/**
- * Smarty Internal Plugin Compile Modifier Class
- *
- * @package Smarty
- * @subpackage Compiler
- */
-class Smarty_Internal_Compile_Private_Modifier extends Smarty_Internal_CompileBase {
-
- /**
- * Compiles code for modifier execution
- *
- * @param array $args array with attributes from parser
- * @param object $compiler compiler object
- * @param array $parameter array with compilation parameter
- * @return string compiled code
- */
- public function compile($args, $compiler, $parameter) {
- // check and get attributes
- $_attr = $this->getAttributes($compiler, $args);
- $output = $parameter['value'];
- // loop over list of modifiers
- foreach ($parameter['modifierlist'] as $single_modifier) {
- $modifier = $single_modifier[0];
- $single_modifier[0] = $output;
- $params = implode(',', $single_modifier);
- // check if we know already the type of modifier
- if (isset($compiler->known_modifier_type[$modifier])) {
- $modifier_types = array($compiler->known_modifier_type[$modifier]);
- } else {
- $modifier_types = array(1, 2, 3, 4, 5, 6);
- }
- foreach ($modifier_types as $type) {
- switch ($type) {
- case 1:
- // registered modifier
- if (isset($compiler->smarty->registered_plugins[Smarty::PLUGIN_MODIFIER][$modifier])) {
- $function = $compiler->smarty->registered_plugins[Smarty::PLUGIN_MODIFIER][$modifier][0];
- if (!is_array($function)) {
- $output = "{$function}({$params})";
- } else {
- if (is_object($function[0])) {
- $output = '$_smarty_tpl->smarty->registered_plugins[Smarty::PLUGIN_MODIFIER][\'' . $modifier . '\'][0][0]->' . $function[1] . '(' . $params . ')';
- } else {
- $output = $function[0] . '::' . $function[1] . '(' . $params . ')';
- }
- }
- $compiler->known_modifier_type[$modifier] = $type;
- break 2;
- }
- break;
- case 2:
- // registered modifier compiler
- if (isset($compiler->smarty->registered_plugins[Smarty::PLUGIN_MODIFIERCOMPILER][$modifier][0])) {
- $output = call_user_func($compiler->smarty->registered_plugins[Smarty::PLUGIN_MODIFIERCOMPILER][$modifier][0], $single_modifier, $compiler->smarty);
- $compiler->known_modifier_type[$modifier] = $type;
- break 2;
- }
- break;
- case 3:
- // modifiercompiler plugin
- if ($compiler->smarty->loadPlugin('smarty_modifiercompiler_' . $modifier)) {
- // check if modifier allowed
- if (!is_object($compiler->smarty->security_policy) || $compiler->smarty->security_policy->isTrustedModifier($modifier, $compiler)) {
- $plugin = 'smarty_modifiercompiler_' . $modifier;
- $output = $plugin($single_modifier, $compiler);
- }
- $compiler->known_modifier_type[$modifier] = $type;
- break 2;
- }
- break;
- case 4:
- // modifier plugin
- if ($function = $compiler->getPlugin($modifier, Smarty::PLUGIN_MODIFIER)) {
- // check if modifier allowed
- if (!is_object($compiler->smarty->security_policy) || $compiler->smarty->security_policy->isTrustedModifier($modifier, $compiler)) {
- $output = "{$function}({$params})";
- }
- $compiler->known_modifier_type[$modifier] = $type;
- break 2;
- }
- break;
- case 5:
- // PHP function
- if (is_callable($modifier)) {
- // check if modifier allowed
- if (!is_object($compiler->smarty->security_policy) || $compiler->smarty->security_policy->isTrustedPhpModifier($modifier, $compiler)) {
- $output = "{$modifier}({$params})";
- }
- $compiler->known_modifier_type[$modifier] = $type;
- break 2;
- }
- break;
- case 6:
- // default plugin handler
- if (isset($compiler->default_handler_plugins[Smarty::PLUGIN_MODIFIER][$modifier]) || (is_callable($compiler->smarty->default_plugin_handler_func) && $compiler->getPluginFromDefaultHandler($modifier, Smarty::PLUGIN_MODIFIER))) {
- $function = $compiler->default_handler_plugins[Smarty::PLUGIN_MODIFIER][$modifier][0];
- // check if modifier allowed
- if (!is_object($compiler->smarty->security_policy) || $compiler->smarty->security_policy->isTrustedModifier($modifier, $compiler)) {
- if (!is_array($function)) {
- $output = "{$function}({$params})";
- } else {
- if (is_object($function[0])) {
- $output = '$_smarty_tpl->smarty->registered_plugins[Smarty::PLUGIN_MODIFIER][\'' . $modifier . '\'][0][0]->' . $function[1] . '(' . $params . ')';
- } else {
- $output = $function[0] . '::' . $function[1] . '(' . $params . ')';
- }
- }
- }
- if (isset($compiler->template->required_plugins['nocache'][$modifier][Smarty::PLUGIN_MODIFIER]['file']) || isset($compiler->template->required_plugins['compiled'][$modifier][Smarty::PLUGIN_MODIFIER]['file'])) {
- // was a plugin
- $compiler->known_modifier_type[$modifier] = 4;
- } else {
- $compiler->known_modifier_type[$modifier] = $type;
- }
- break 2;
- }
- }
- }
- if (!isset($compiler->known_modifier_type[$modifier])) {
- $compiler->trigger_template_error("unknown modifier \"" . $modifier . "\"", $compiler->lex->taglineno);
- }
- }
- return $output;
- }
-
-}
-
-?> \ No newline at end of file
+<?php
+
+/**
+ * Smarty Internal Plugin Compile Modifier
+ * Compiles code for modifier execution
+ *
+ * @package Smarty
+ * @subpackage Compiler
+ * @author Uwe Tews
+ */
+
+/**
+ * Smarty Internal Plugin Compile Modifier Class
+ *
+ * @package Smarty
+ * @subpackage Compiler
+ */
+class Smarty_Internal_Compile_Private_Modifier extends Smarty_Internal_CompileBase
+{
+ /**
+ * Compiles code for modifier execution
+ *
+ * @param array $args array with attributes from parser
+ * @param object $compiler compiler object
+ * @param array $parameter array with compilation parameter
+ *
+ * @return string compiled code
+ */
+ public function compile($args, $compiler, $parameter)
+ {
+ // check and get attributes
+ $_attr = $this->getAttributes($compiler, $args);
+ $output = $parameter['value'];
+ // loop over list of modifiers
+ foreach ($parameter['modifierlist'] as $single_modifier) {
+ $modifier = $single_modifier[0];
+ $single_modifier[0] = $output;
+ $params = implode(',', $single_modifier);
+ // check if we know already the type of modifier
+ if (isset($compiler->known_modifier_type[$modifier])) {
+ $modifier_types = array($compiler->known_modifier_type[$modifier]);
+ } else {
+ $modifier_types = array(1, 2, 3, 4, 5, 6);
+ }
+ foreach ($modifier_types as $type) {
+ switch ($type) {
+ case 1:
+ // registered modifier
+ if (isset($compiler->smarty->registered_plugins[Smarty::PLUGIN_MODIFIER][$modifier])) {
+ $function = $compiler->smarty->registered_plugins[Smarty::PLUGIN_MODIFIER][$modifier][0];
+ if (!is_array($function)) {
+ $output = "{$function}({$params})";
+ } else {
+ if (is_object($function[0])) {
+ $output = '$_smarty_tpl->smarty->registered_plugins[Smarty::PLUGIN_MODIFIER][\'' . $modifier . '\'][0][0]->' . $function[1] . '(' . $params . ')';
+ } else {
+ $output = $function[0] . '::' . $function[1] . '(' . $params . ')';
+ }
+ }
+ $compiler->known_modifier_type[$modifier] = $type;
+ break 2;
+ }
+ break;
+ case 2:
+ // registered modifier compiler
+ if (isset($compiler->smarty->registered_plugins[Smarty::PLUGIN_MODIFIERCOMPILER][$modifier][0])) {
+ $output = call_user_func($compiler->smarty->registered_plugins[Smarty::PLUGIN_MODIFIERCOMPILER][$modifier][0], $single_modifier, $compiler->smarty);
+ $compiler->known_modifier_type[$modifier] = $type;
+ break 2;
+ }
+ break;
+ case 3:
+ // modifiercompiler plugin
+ if ($compiler->smarty->loadPlugin('smarty_modifiercompiler_' . $modifier)) {
+ // check if modifier allowed
+ if (!is_object($compiler->smarty->security_policy) || $compiler->smarty->security_policy->isTrustedModifier($modifier, $compiler)) {
+ $plugin = 'smarty_modifiercompiler_' . $modifier;
+ $output = $plugin($single_modifier, $compiler);
+ }
+ $compiler->known_modifier_type[$modifier] = $type;
+ break 2;
+ }
+ break;
+ case 4:
+ // modifier plugin
+ if ($function = $compiler->getPlugin($modifier, Smarty::PLUGIN_MODIFIER)) {
+ // check if modifier allowed
+ if (!is_object($compiler->smarty->security_policy) || $compiler->smarty->security_policy->isTrustedModifier($modifier, $compiler)) {
+ $output = "{$function}({$params})";
+ }
+ $compiler->known_modifier_type[$modifier] = $type;
+ break 2;
+ }
+ break;
+ case 5:
+ // PHP function
+ if (is_callable($modifier)) {
+ // check if modifier allowed
+ if (!is_object($compiler->smarty->security_policy) || $compiler->smarty->security_policy->isTrustedPhpModifier($modifier, $compiler)) {
+ $output = "{$modifier}({$params})";
+ }
+ $compiler->known_modifier_type[$modifier] = $type;
+ break 2;
+ }
+ break;
+ case 6:
+ // default plugin handler
+ if (isset($compiler->default_handler_plugins[Smarty::PLUGIN_MODIFIER][$modifier]) || (is_callable($compiler->smarty->default_plugin_handler_func) && $compiler->getPluginFromDefaultHandler($modifier, Smarty::PLUGIN_MODIFIER))) {
+ $function = $compiler->default_handler_plugins[Smarty::PLUGIN_MODIFIER][$modifier][0];
+ // check if modifier allowed
+ if (!is_object($compiler->smarty->security_policy) || $compiler->smarty->security_policy->isTrustedModifier($modifier, $compiler)) {
+ if (!is_array($function)) {
+ $output = "{$function}({$params})";
+ } else {
+ if (is_object($function[0])) {
+ $output = '$_smarty_tpl->smarty->registered_plugins[Smarty::PLUGIN_MODIFIER][\'' . $modifier . '\'][0][0]->' . $function[1] . '(' . $params . ')';
+ } else {
+ $output = $function[0] . '::' . $function[1] . '(' . $params . ')';
+ }
+ }
+ }
+ if (isset($compiler->template->required_plugins['nocache'][$modifier][Smarty::PLUGIN_MODIFIER]['file']) || isset($compiler->template->required_plugins['compiled'][$modifier][Smarty::PLUGIN_MODIFIER]['file'])) {
+ // was a plugin
+ $compiler->known_modifier_type[$modifier] = 4;
+ } else {
+ $compiler->known_modifier_type[$modifier] = $type;
+ }
+ break 2;
+ }
+ }
+ }
+ if (!isset($compiler->known_modifier_type[$modifier])) {
+ $compiler->trigger_template_error("unknown modifier \"" . $modifier . "\"", $compiler->lex->taglineno);
+ }
+ }
+
+ return $output;
+ }
+}
diff --git a/library/Smarty/libs/sysplugins/smarty_internal_compile_private_object_block_function.php b/library/Smarty/libs/sysplugins/smarty_internal_compile_private_object_block_function.php
index cca924d10..5418fefff 100644
--- a/library/Smarty/libs/sysplugins/smarty_internal_compile_private_object_block_function.php
+++ b/library/Smarty/libs/sysplugins/smarty_internal_compile_private_object_block_function.php
@@ -1,22 +1,21 @@
<?php
/**
* Smarty Internal Plugin Compile Object Block Function
- *
* Compiles code for registered objects as block function
*
- * @package Smarty
+ * @package Smarty
* @subpackage Compiler
- * @author Uwe Tews
+ * @author Uwe Tews
*/
/**
* Smarty Internal Plugin Compile Object Block Function Class
*
- * @package Smarty
+ * @package Smarty
* @subpackage Compiler
*/
-class Smarty_Internal_Compile_Private_Object_Block_Function extends Smarty_Internal_CompileBase {
-
+class Smarty_Internal_Compile_Private_Object_Block_Function extends Smarty_Internal_CompileBase
+{
/**
* Attribute definition: Overwrites base class.
*
@@ -28,16 +27,17 @@ class Smarty_Internal_Compile_Private_Object_Block_Function extends Smarty_Inter
/**
* Compiles code for the execution of block plugin
*
- * @param array $args array with attributes from parser
- * @param object $compiler compiler object
- * @param array $parameter array with compilation parameter
- * @param string $tag name of block object
- * @param string $method name of method to call
+ * @param array $args array with attributes from parser
+ * @param object $compiler compiler object
+ * @param array $parameter array with compilation parameter
+ * @param string $tag name of block object
+ * @param string $method name of method to call
+ *
* @return string compiled code
*/
public function compile($args, $compiler, $parameter, $tag, $method)
{
- if (!isset($tag[5]) || substr($tag, -5) != 'close') {
+ if (!isset($tag[5]) || substr($tag, - 5) != 'close') {
// opening tag of block plugin
// check and get attributes
$_attr = $this->getAttributes($compiler, $args);
@@ -62,7 +62,7 @@ class Smarty_Internal_Compile_Private_Object_Block_Function extends Smarty_Inter
// compile code
$output = "<?php \$_smarty_tpl->smarty->_tag_stack[] = array('{$tag}->{$method}', {$_params}); \$_block_repeat=true; echo \$_smarty_tpl->smarty->registered_objects['{$tag}'][0]->{$method}({$_params}, null, \$_smarty_tpl, \$_block_repeat);while (\$_block_repeat) { ob_start();?>";
} else {
- $base_tag = substr($tag, 0, -5);
+ $base_tag = substr($tag, 0, - 5);
// must endblock be nocache?
if ($compiler->nocache) {
$compiler->tag_nocache = true;
@@ -80,9 +80,7 @@ class Smarty_Internal_Compile_Private_Object_Block_Function extends Smarty_Inter
}
$output = "<?php \$_block_content = ob_get_contents(); ob_end_clean(); \$_block_repeat=false;" . $mod_pre . " echo \$_smarty_tpl->smarty->registered_objects['{$base_tag}'][0]->{$method}({$_params}, \$_block_content, \$_smarty_tpl, \$_block_repeat); " . $mod_post . " } array_pop(\$_smarty_tpl->smarty->_tag_stack);?>";
}
+
return $output . "\n";
}
-
}
-
-?> \ No newline at end of file
diff --git a/library/Smarty/libs/sysplugins/smarty_internal_compile_private_object_function.php b/library/Smarty/libs/sysplugins/smarty_internal_compile_private_object_function.php
index f649084c3..d6eb47ab3 100644
--- a/library/Smarty/libs/sysplugins/smarty_internal_compile_private_object_function.php
+++ b/library/Smarty/libs/sysplugins/smarty_internal_compile_private_object_function.php
@@ -1,22 +1,21 @@
<?php
/**
- * Smarty Internal Plugin Compile Object Funtion
- *
+ * Smarty Internal Plugin Compile Object Function
* Compiles code for registered objects as function
*
- * @package Smarty
+ * @package Smarty
* @subpackage Compiler
- * @author Uwe Tews
+ * @author Uwe Tews
*/
/**
* Smarty Internal Plugin Compile Object Function Class
*
- * @package Smarty
+ * @package Smarty
* @subpackage Compiler
*/
-class Smarty_Internal_Compile_Private_Object_Function extends Smarty_Internal_CompileBase {
-
+class Smarty_Internal_Compile_Private_Object_Function extends Smarty_Internal_CompileBase
+{
/**
* Attribute definition: Overwrites base class.
*
@@ -28,11 +27,12 @@ class Smarty_Internal_Compile_Private_Object_Function extends Smarty_Internal_Co
/**
* Compiles code for the execution of function plugin
*
- * @param array $args array with attributes from parser
- * @param object $compiler compiler object
- * @param array $parameter array with compilation parameter
- * @param string $tag name of function
- * @param string $method name of method to call
+ * @param array $args array with attributes from parser
+ * @param object $compiler compiler object
+ * @param array $parameter array with compilation parameter
+ * @param string $tag name of function
+ * @param string $method name of method to call
+ *
* @return string compiled code
*/
public function compile($args, $compiler, $parameter, $tag, $method)
@@ -48,22 +48,29 @@ class Smarty_Internal_Compile_Private_Object_Function extends Smarty_Internal_Co
$_assign = $_attr['assign'];
unset($_attr['assign']);
}
- // convert attributes into parameter array string
- if ($compiler->smarty->registered_objects[$tag][2]) {
- $_paramsArray = array();
- foreach ($_attr as $_key => $_value) {
- if (is_int($_key)) {
- $_paramsArray[] = "$_key=>$_value";
- } else {
- $_paramsArray[] = "'$_key'=>$_value";
+ // method or property ?
+ if (method_exists($compiler->smarty->registered_objects[$tag][0], $method)) {
+ // convert attributes into parameter array string
+ if ($compiler->smarty->registered_objects[$tag][2]) {
+ $_paramsArray = array();
+ foreach ($_attr as $_key => $_value) {
+ if (is_int($_key)) {
+ $_paramsArray[] = "$_key=>$_value";
+ } else {
+ $_paramsArray[] = "'$_key'=>$_value";
+ }
}
+ $_params = 'array(' . implode(",", $_paramsArray) . ')';
+ $return = "\$_smarty_tpl->smarty->registered_objects['{$tag}'][0]->{$method}({$_params},\$_smarty_tpl)";
+ } else {
+ $_params = implode(",", $_attr);
+ $return = "\$_smarty_tpl->smarty->registered_objects['{$tag}'][0]->{$method}({$_params})";
}
- $_params = 'array(' . implode(",", $_paramsArray) . ')';
- $return = "\$_smarty_tpl->smarty->registered_objects['{$tag}'][0]->{$method}({$_params},\$_smarty_tpl)";
} else {
- $_params = implode(",", $_attr);
- $return = "\$_smarty_tpl->smarty->registered_objects['{$tag}'][0]->{$method}({$_params})";
+ // object property
+ $return = "\$_smarty_tpl->smarty->registered_objects['{$tag}'][0]->{$method}";
}
+
if (empty($_assign)) {
// This tag does create output
$compiler->has_output = true;
@@ -71,9 +78,7 @@ class Smarty_Internal_Compile_Private_Object_Function extends Smarty_Internal_Co
} else {
$output = "<?php \$_smarty_tpl->assign({$_assign},{$return});?>\n";
}
+
return $output;
}
-
}
-
-?> \ No newline at end of file
diff --git a/library/Smarty/libs/sysplugins/smarty_internal_compile_private_print_expression.php b/library/Smarty/libs/sysplugins/smarty_internal_compile_private_print_expression.php
index a37119547..188bbe77a 100644
--- a/library/Smarty/libs/sysplugins/smarty_internal_compile_private_print_expression.php
+++ b/library/Smarty/libs/sysplugins/smarty_internal_compile_private_print_expression.php
@@ -1,45 +1,46 @@
<?php
/**
-* Smarty Internal Plugin Compile Print Expression
-*
-* Compiles any tag which will output an expression or variable
-*
-* @package Smarty
-* @subpackage Compiler
-* @author Uwe Tews
-*/
+ * Smarty Internal Plugin Compile Print Expression
+ * Compiles any tag which will output an expression or variable
+ *
+ * @package Smarty
+ * @subpackage Compiler
+ * @author Uwe Tews
+ */
/**
-* Smarty Internal Plugin Compile Print Expression Class
-*
-* @package Smarty
-* @subpackage Compiler
-*/
-class Smarty_Internal_Compile_Private_Print_Expression extends Smarty_Internal_CompileBase {
-
+ * Smarty Internal Plugin Compile Print Expression Class
+ *
+ * @package Smarty
+ * @subpackage Compiler
+ */
+class Smarty_Internal_Compile_Private_Print_Expression extends Smarty_Internal_CompileBase
+{
/**
- * Attribute definition: Overwrites base class.
- *
- * @var array
- * @see Smarty_Internal_CompileBase
- */
+ * Attribute definition: Overwrites base class.
+ *
+ * @var array
+ * @see Smarty_Internal_CompileBase
+ */
public $optional_attributes = array('assign');
/**
- * Attribute definition: Overwrites base class.
- *
- * @var array
- * @see Smarty_Internal_CompileBase
- */
+ * Attribute definition: Overwrites base class.
+ *
+ * @var array
+ * @see Smarty_Internal_CompileBase
+ */
public $option_flags = array('nocache', 'nofilter');
/**
- * Compiles code for gererting output from any expression
- *
- * @param array $args array with attributes from parser
- * @param object $compiler compiler object
- * @param array $parameter array with compilation parameter
- * @return string compiled code
- */
+ * Compiles code for generating output from any expression
+ *
+ * @param array $args array with attributes from parser
+ * @param object $compiler compiler object
+ * @param array $parameter array with compilation parameter
+ *
+ * @throws SmartyException
+ * @return string compiled code
+ */
public function compile($args, $compiler, $parameter)
{
// check and get attributes
@@ -48,12 +49,6 @@ class Smarty_Internal_Compile_Private_Print_Expression extends Smarty_Internal_C
if ($_attr['nocache'] === true) {
$compiler->tag_nocache = true;
}
- // filter handling
- if ($_attr['nofilter'] === true) {
- $_filter = 'false';
- } else {
- $_filter = 'true';
- }
if (isset($_attr['assign'])) {
// assign output to variable
$output = "<?php \$_smarty_tpl->assign({$_attr['assign']},{$parameter['value']});?>";
@@ -71,13 +66,13 @@ class Smarty_Internal_Compile_Private_Print_Expression extends Smarty_Internal_C
$modifierlist = array();
foreach ($compiler->smarty->default_modifiers as $key => $single_default_modifier) {
preg_match_all('/(\'[^\'\\\\]*(?:\\\\.[^\'\\\\]*)*\'|"[^"\\\\]*(?:\\\\.[^"\\\\]*)*"|:|[^:]+)/', $single_default_modifier, $mod_array);
- for ($i = 0, $count = count($mod_array[0]);$i < $count;$i++) {
+ for ($i = 0, $count = count($mod_array[0]); $i < $count; $i ++) {
if ($mod_array[0][$i] != ':') {
$modifierlist[$key][] = $mod_array[0][$i];
}
}
}
- $compiler->default_modifier_list = $modifierlist;
+ $compiler->default_modifier_list = $modifierlist;
}
$output = $compiler->compileTag('private_modifier', array(), array('modifierlist' => $compiler->default_modifier_list, 'value' => $output));
}
@@ -85,13 +80,13 @@ class Smarty_Internal_Compile_Private_Print_Expression extends Smarty_Internal_C
if ($compiler->template->smarty->escape_html) {
$output = "htmlspecialchars({$output}, ENT_QUOTES, '" . addslashes(Smarty::$_CHARSET) . "')";
}
- // loop over registerd filters
+ // loop over registered filters
if (!empty($compiler->template->smarty->registered_filters[Smarty::FILTER_VARIABLE])) {
foreach ($compiler->template->smarty->registered_filters[Smarty::FILTER_VARIABLE] as $key => $function) {
if (!is_array($function)) {
$output = "{$function}({$output},\$_smarty_tpl)";
- } else if (is_object($function[0])) {
- $output = "\$_smarty_tpl->smarty->registered_filters[Smarty::FILTER_VARIABLE][{$key}][0]->{$function[1]}({$output},\$_smarty_tpl)";
+ } elseif (is_object($function[0])) {
+ $output = "\$_smarty_tpl->smarty->registered_filters[Smarty::FILTER_VARIABLE]['{$key}'][0]->{$function[1]}({$output},\$_smarty_tpl)";
} else {
$output = "{$function[0]}::{$function[1]}({$output},\$_smarty_tpl)";
}
@@ -99,7 +94,7 @@ class Smarty_Internal_Compile_Private_Print_Expression extends Smarty_Internal_C
}
// auto loaded filters
if (isset($compiler->smarty->autoload_filters[Smarty::FILTER_VARIABLE])) {
- foreach ((array)$compiler->template->smarty->autoload_filters[Smarty::FILTER_VARIABLE] as $name) {
+ foreach ((array) $compiler->template->smarty->autoload_filters[Smarty::FILTER_VARIABLE] as $name) {
$result = $this->compile_output_filter($compiler, $name, $output);
if ($result !== false) {
$output = $result;
@@ -123,15 +118,17 @@ class Smarty_Internal_Compile_Private_Print_Expression extends Smarty_Internal_C
$compiler->has_output = true;
$output = "<?php echo {$output};?>";
}
+
return $output;
}
/**
- * @param object $compiler compiler object
- * @param string $name name of variable filter
- * @param type $output embedded output
- * @return string
- */
+ * @param object $compiler compiler object
+ * @param string $name name of variable filter
+ * @param string $output embedded output
+ *
+ * @return string
+ */
private function compile_output_filter($compiler, $name, $output)
{
$plugin_name = "smarty_variablefilter_{$name}";
@@ -148,9 +145,7 @@ class Smarty_Internal_Compile_Private_Print_Expression extends Smarty_Internal_C
// not found
return false;
}
+
return "{$plugin_name}({$output},\$_smarty_tpl)";
}
-
}
-
-?> \ No newline at end of file
diff --git a/library/Smarty/libs/sysplugins/smarty_internal_compile_private_registered_block.php b/library/Smarty/libs/sysplugins/smarty_internal_compile_private_registered_block.php
index 9fed36c3b..68ab644fc 100644
--- a/library/Smarty/libs/sysplugins/smarty_internal_compile_private_registered_block.php
+++ b/library/Smarty/libs/sysplugins/smarty_internal_compile_private_registered_block.php
@@ -1,113 +1,111 @@
-<?php
-/**
- * Smarty Internal Plugin Compile Registered Block
- *
- * Compiles code for the execution of a registered block function
- *
- * @package Smarty
- * @subpackage Compiler
- * @author Uwe Tews
- */
-
-/**
- * Smarty Internal Plugin Compile Registered Block Class
- *
- * @package Smarty
- * @subpackage Compiler
- */
-class Smarty_Internal_Compile_Private_Registered_Block extends Smarty_Internal_CompileBase {
-
- /**
- * Attribute definition: Overwrites base class.
- *
- * @var array
- * @see Smarty_Internal_CompileBase
- */
- public $optional_attributes = array('_any');
-
- /**
- * Compiles code for the execution of a block function
- *
- * @param array $args array with attributes from parser
- * @param object $compiler compiler object
- * @param array $parameter array with compilation parameter
- * @param string $tag name of block function
- * @return string compiled code
- */
- public function compile($args, $compiler, $parameter, $tag)
- {
- if (!isset($tag[5]) || substr($tag,-5) != 'close') {
- // opening tag of block plugin
- // check and get attributes
- $_attr = $this->getAttributes($compiler, $args);
- if ($_attr['nocache']) {
- $compiler->tag_nocache = true;
- }
- unset($_attr['nocache']);
- if (isset($compiler->smarty->registered_plugins[Smarty::PLUGIN_BLOCK][$tag])) {
- $tag_info = $compiler->smarty->registered_plugins[Smarty::PLUGIN_BLOCK][$tag];
- } else {
- $tag_info = $compiler->default_handler_plugins[Smarty::PLUGIN_BLOCK][$tag];
- }
- // convert attributes into parameter array string
- $_paramsArray = array();
- foreach ($_attr as $_key => $_value) {
- if (is_int($_key)) {
- $_paramsArray[] = "$_key=>$_value";
- } elseif ($compiler->template->caching && in_array($_key,$tag_info[2])) {
- $_value = str_replace("'","^#^",$_value);
- $_paramsArray[] = "'$_key'=>^#^.var_export($_value,true).^#^";
- } else {
- $_paramsArray[] = "'$_key'=>$_value";
- }
- }
- $_params = 'array(' . implode(",", $_paramsArray) . ')';
-
- $this->openTag($compiler, $tag, array($_params, $compiler->nocache));
- // maybe nocache because of nocache variables or nocache plugin
- $compiler->nocache = !$tag_info[1] | $compiler->nocache | $compiler->tag_nocache;
- $function = $tag_info[0];
- // compile code
- if (!is_array($function)) {
- $output = "<?php \$_smarty_tpl->smarty->_tag_stack[] = array('{$tag}', {$_params}); \$_block_repeat=true; echo {$function}({$_params}, null, \$_smarty_tpl, \$_block_repeat);while (\$_block_repeat) { ob_start();?>";
- } else if (is_object($function[0])) {
- $output = "<?php \$_smarty_tpl->smarty->_tag_stack[] = array('{$tag}', {$_params}); \$_block_repeat=true; echo \$_smarty_tpl->smarty->registered_plugins['block']['{$tag}'][0][0]->{$function[1]}({$_params}, null, \$_smarty_tpl, \$_block_repeat);while (\$_block_repeat) { ob_start();?>";
- } else {
- $output = "<?php \$_smarty_tpl->smarty->_tag_stack[] = array('{$tag}', {$_params}); \$_block_repeat=true; echo {$function[0]}::{$function[1]}({$_params}, null, \$_smarty_tpl, \$_block_repeat);while (\$_block_repeat) { ob_start();?>";
- }
- } else {
- // must endblock be nocache?
- if ($compiler->nocache) {
- $compiler->tag_nocache = true;
- }
- $base_tag = substr($tag, 0, -5);
- // closing tag of block plugin, restore nocache
- list($_params, $compiler->nocache) = $this->closeTag($compiler, $base_tag);
- // This tag does create output
- $compiler->has_output = true;
- if (isset($compiler->smarty->registered_plugins[Smarty::PLUGIN_BLOCK][$base_tag])) {
- $function = $compiler->smarty->registered_plugins[Smarty::PLUGIN_BLOCK][$base_tag][0];
- } else {
- $function = $compiler->default_handler_plugins[Smarty::PLUGIN_BLOCK][$base_tag][0];
- }
- // compile code
- if (!isset($parameter['modifier_list'])) {
- $mod_pre = $mod_post ='';
- } else {
- $mod_pre = ' ob_start(); ';
- $mod_post = 'echo '.$compiler->compileTag('private_modifier',array(),array('modifierlist'=>$parameter['modifier_list'],'value'=>'ob_get_clean()')).';';
- }
- if (!is_array($function)) {
- $output = "<?php \$_block_content = ob_get_clean(); \$_block_repeat=false;".$mod_pre." echo {$function}({$_params}, \$_block_content, \$_smarty_tpl, \$_block_repeat);".$mod_post." } array_pop(\$_smarty_tpl->smarty->_tag_stack);?>";
- } else if (is_object($function[0])) {
- $output = "<?php \$_block_content = ob_get_clean(); \$_block_repeat=false;".$mod_pre." echo \$_smarty_tpl->smarty->registered_plugins['block']['{$base_tag}'][0][0]->{$function[1]}({$_params}, \$_block_content, \$_smarty_tpl, \$_block_repeat); ".$mod_post."} array_pop(\$_smarty_tpl->smarty->_tag_stack);?>";
- } else {
- $output = "<?php \$_block_content = ob_get_clean(); \$_block_repeat=false;".$mod_pre." echo {$function[0]}::{$function[1]}({$_params}, \$_block_content, \$_smarty_tpl, \$_block_repeat); ".$mod_post."} array_pop(\$_smarty_tpl->smarty->_tag_stack);?>";
- }
- }
- return $output . "\n";
- }
-
-}
-
-?> \ No newline at end of file
+<?php
+/**
+ * Smarty Internal Plugin Compile Registered Block
+ * Compiles code for the execution of a registered block function
+ *
+ * @package Smarty
+ * @subpackage Compiler
+ * @author Uwe Tews
+ */
+
+/**
+ * Smarty Internal Plugin Compile Registered Block Class
+ *
+ * @package Smarty
+ * @subpackage Compiler
+ */
+class Smarty_Internal_Compile_Private_Registered_Block extends Smarty_Internal_CompileBase
+{
+ /**
+ * Attribute definition: Overwrites base class.
+ *
+ * @var array
+ * @see Smarty_Internal_CompileBase
+ */
+ public $optional_attributes = array('_any');
+
+ /**
+ * Compiles code for the execution of a block function
+ *
+ * @param array $args array with attributes from parser
+ * @param object $compiler compiler object
+ * @param array $parameter array with compilation parameter
+ * @param string $tag name of block function
+ *
+ * @return string compiled code
+ */
+ public function compile($args, $compiler, $parameter, $tag)
+ {
+ if (!isset($tag[5]) || substr($tag, - 5) != 'close') {
+ // opening tag of block plugin
+ // check and get attributes
+ $_attr = $this->getAttributes($compiler, $args);
+ if ($_attr['nocache']) {
+ $compiler->tag_nocache = true;
+ }
+ unset($_attr['nocache']);
+ if (isset($compiler->smarty->registered_plugins[Smarty::PLUGIN_BLOCK][$tag])) {
+ $tag_info = $compiler->smarty->registered_plugins[Smarty::PLUGIN_BLOCK][$tag];
+ } else {
+ $tag_info = $compiler->default_handler_plugins[Smarty::PLUGIN_BLOCK][$tag];
+ }
+ // convert attributes into parameter array string
+ $_paramsArray = array();
+ foreach ($_attr as $_key => $_value) {
+ if (is_int($_key)) {
+ $_paramsArray[] = "$_key=>$_value";
+ } elseif ($compiler->template->caching && in_array($_key, $tag_info[2])) {
+ $_value = str_replace("'", "^#^", $_value);
+ $_paramsArray[] = "'$_key'=>^#^.var_export($_value,true).^#^";
+ } else {
+ $_paramsArray[] = "'$_key'=>$_value";
+ }
+ }
+ $_params = 'array(' . implode(",", $_paramsArray) . ')';
+
+ $this->openTag($compiler, $tag, array($_params, $compiler->nocache));
+ // maybe nocache because of nocache variables or nocache plugin
+ $compiler->nocache = !$tag_info[1] | $compiler->nocache | $compiler->tag_nocache;
+ $function = $tag_info[0];
+ // compile code
+ if (!is_array($function)) {
+ $output = "<?php \$_smarty_tpl->smarty->_tag_stack[] = array('{$tag}', {$_params}); \$_block_repeat=true; echo {$function}({$_params}, null, \$_smarty_tpl, \$_block_repeat);while (\$_block_repeat) { ob_start();?>";
+ } elseif (is_object($function[0])) {
+ $output = "<?php \$_smarty_tpl->smarty->_tag_stack[] = array('{$tag}', {$_params}); \$_block_repeat=true; echo \$_smarty_tpl->smarty->registered_plugins['block']['{$tag}'][0][0]->{$function[1]}({$_params}, null, \$_smarty_tpl, \$_block_repeat);while (\$_block_repeat) { ob_start();?>";
+ } else {
+ $output = "<?php \$_smarty_tpl->smarty->_tag_stack[] = array('{$tag}', {$_params}); \$_block_repeat=true; echo {$function[0]}::{$function[1]}({$_params}, null, \$_smarty_tpl, \$_block_repeat);while (\$_block_repeat) { ob_start();?>";
+ }
+ } else {
+ // must endblock be nocache?
+ if ($compiler->nocache) {
+ $compiler->tag_nocache = true;
+ }
+ $base_tag = substr($tag, 0, - 5);
+ // closing tag of block plugin, restore nocache
+ list($_params, $compiler->nocache) = $this->closeTag($compiler, $base_tag);
+ // This tag does create output
+ $compiler->has_output = true;
+ if (isset($compiler->smarty->registered_plugins[Smarty::PLUGIN_BLOCK][$base_tag])) {
+ $function = $compiler->smarty->registered_plugins[Smarty::PLUGIN_BLOCK][$base_tag][0];
+ } else {
+ $function = $compiler->default_handler_plugins[Smarty::PLUGIN_BLOCK][$base_tag][0];
+ }
+ // compile code
+ if (!isset($parameter['modifier_list'])) {
+ $mod_pre = $mod_post = '';
+ } else {
+ $mod_pre = ' ob_start(); ';
+ $mod_post = 'echo ' . $compiler->compileTag('private_modifier', array(), array('modifierlist' => $parameter['modifier_list'], 'value' => 'ob_get_clean()')) . ';';
+ }
+ if (!is_array($function)) {
+ $output = "<?php \$_block_content = ob_get_clean(); \$_block_repeat=false;" . $mod_pre . " echo {$function}({$_params}, \$_block_content, \$_smarty_tpl, \$_block_repeat);" . $mod_post . " } array_pop(\$_smarty_tpl->smarty->_tag_stack);?>";
+ } elseif (is_object($function[0])) {
+ $output = "<?php \$_block_content = ob_get_clean(); \$_block_repeat=false;" . $mod_pre . " echo \$_smarty_tpl->smarty->registered_plugins['block']['{$base_tag}'][0][0]->{$function[1]}({$_params}, \$_block_content, \$_smarty_tpl, \$_block_repeat); " . $mod_post . "} array_pop(\$_smarty_tpl->smarty->_tag_stack);?>";
+ } else {
+ $output = "<?php \$_block_content = ob_get_clean(); \$_block_repeat=false;" . $mod_pre . " echo {$function[0]}::{$function[1]}({$_params}, \$_block_content, \$_smarty_tpl, \$_block_repeat); " . $mod_post . "} array_pop(\$_smarty_tpl->smarty->_tag_stack);?>";
+ }
+ }
+
+ return $output . "\n";
+ }
+}
diff --git a/library/Smarty/libs/sysplugins/smarty_internal_compile_private_registered_function.php b/library/Smarty/libs/sysplugins/smarty_internal_compile_private_registered_function.php
index 5058bfbbd..dfb4572f4 100644
--- a/library/Smarty/libs/sysplugins/smarty_internal_compile_private_registered_function.php
+++ b/library/Smarty/libs/sysplugins/smarty_internal_compile_private_registered_function.php
@@ -1,81 +1,79 @@
-<?php
-/**
- * Smarty Internal Plugin Compile Registered Function
- *
- * Compiles code for the execution of a registered function
- *
- * @package Smarty
- * @subpackage Compiler
- * @author Uwe Tews
- */
-
-/**
- * Smarty Internal Plugin Compile Registered Function Class
- *
- * @package Smarty
- * @subpackage Compiler
- */
-class Smarty_Internal_Compile_Private_Registered_Function extends Smarty_Internal_CompileBase {
-
- /**
- * Attribute definition: Overwrites base class.
- *
- * @var array
- * @see Smarty_Internal_CompileBase
- */
- public $optional_attributes = array('_any');
-
- /**
- * Compiles code for the execution of a registered function
- *
- * @param array $args array with attributes from parser
- * @param object $compiler compiler object
- * @param array $parameter array with compilation parameter
- * @param string $tag name of function
- * @return string compiled code
- */
- public function compile($args, $compiler, $parameter, $tag)
- {
- // This tag does create output
- $compiler->has_output = true;
- // check and get attributes
- $_attr = $this->getAttributes($compiler, $args);
- if ($_attr['nocache']) {
- $compiler->tag_nocache = true;
- }
- unset($_attr['nocache']);
- if (isset($compiler->smarty->registered_plugins[Smarty::PLUGIN_FUNCTION][$tag])) {
- $tag_info = $compiler->smarty->registered_plugins[Smarty::PLUGIN_FUNCTION][$tag];
- } else {
- $tag_info = $compiler->default_handler_plugins[Smarty::PLUGIN_FUNCTION][$tag];
- }
- // not cachable?
- $compiler->tag_nocache = $compiler->tag_nocache || !$tag_info[1];
- // convert attributes into parameter array string
- $_paramsArray = array();
- foreach ($_attr as $_key => $_value) {
- if (is_int($_key)) {
- $_paramsArray[] = "$_key=>$_value";
- } elseif ($compiler->template->caching && in_array($_key,$tag_info[2])) {
- $_value = str_replace("'","^#^",$_value);
- $_paramsArray[] = "'$_key'=>^#^.var_export($_value,true).^#^";
- } else {
- $_paramsArray[] = "'$_key'=>$_value";
- }
- }
- $_params = 'array(' . implode(",", $_paramsArray) . ')';
- $function = $tag_info[0];
- // compile code
- if (!is_array($function)) {
- $output = "<?php echo {$function}({$_params},\$_smarty_tpl);?>\n";
- } else if (is_object($function[0])) {
- $output = "<?php echo \$_smarty_tpl->smarty->registered_plugins[Smarty::PLUGIN_FUNCTION]['{$tag}'][0][0]->{$function[1]}({$_params},\$_smarty_tpl);?>\n";
- } else {
- $output = "<?php echo {$function[0]}::{$function[1]}({$_params},\$_smarty_tpl);?>\n";
- }
- return $output;
- }
-
-}
-
-?> \ No newline at end of file
+<?php
+/**
+ * Smarty Internal Plugin Compile Registered Function
+ * Compiles code for the execution of a registered function
+ *
+ * @package Smarty
+ * @subpackage Compiler
+ * @author Uwe Tews
+ */
+
+/**
+ * Smarty Internal Plugin Compile Registered Function Class
+ *
+ * @package Smarty
+ * @subpackage Compiler
+ */
+class Smarty_Internal_Compile_Private_Registered_Function extends Smarty_Internal_CompileBase
+{
+ /**
+ * Attribute definition: Overwrites base class.
+ *
+ * @var array
+ * @see Smarty_Internal_CompileBase
+ */
+ public $optional_attributes = array('_any');
+
+ /**
+ * Compiles code for the execution of a registered function
+ *
+ * @param array $args array with attributes from parser
+ * @param object $compiler compiler object
+ * @param array $parameter array with compilation parameter
+ * @param string $tag name of function
+ *
+ * @return string compiled code
+ */
+ public function compile($args, $compiler, $parameter, $tag)
+ {
+ // This tag does create output
+ $compiler->has_output = true;
+ // check and get attributes
+ $_attr = $this->getAttributes($compiler, $args);
+ if ($_attr['nocache']) {
+ $compiler->tag_nocache = true;
+ }
+ unset($_attr['nocache']);
+ if (isset($compiler->smarty->registered_plugins[Smarty::PLUGIN_FUNCTION][$tag])) {
+ $tag_info = $compiler->smarty->registered_plugins[Smarty::PLUGIN_FUNCTION][$tag];
+ } else {
+ $tag_info = $compiler->default_handler_plugins[Smarty::PLUGIN_FUNCTION][$tag];
+ }
+ // not cachable?
+ $compiler->tag_nocache = $compiler->tag_nocache || !$tag_info[1];
+ // convert attributes into parameter array string
+ $_paramsArray = array();
+ foreach ($_attr as $_key => $_value) {
+ if (is_int($_key)) {
+ $_paramsArray[] = "$_key=>$_value";
+ } elseif ($compiler->template->caching && in_array($_key, $tag_info[2])) {
+ $_value = str_replace("'", "^#^", $_value);
+ $_paramsArray[] = "'$_key'=>^#^.var_export($_value,true).^#^";
+ } else {
+ $_paramsArray[] = "'$_key'=>$_value";
+ }
+ }
+ $_params = 'array(' . implode(",", $_paramsArray) . ')';
+ $function = $tag_info[0];
+ // compile code
+ if (!is_array($function)) {
+ $output = "<?php echo {$function}({$_params},\$_smarty_tpl);?>\n";
+ } elseif (is_object($function[0])) {
+ $output = "<?php echo \$_smarty_tpl->smarty->registered_plugins[Smarty::PLUGIN_FUNCTION]['{$tag}'][0][0]->{$function[1]}({$_params},\$_smarty_tpl);?>\n";
+ } else {
+ $output = "<?php echo {$function[0]}::{$function[1]}({$_params},\$_smarty_tpl);?>\n";
+ }
+
+ return $output;
+ }
+}
diff --git a/library/Smarty/libs/sysplugins/smarty_internal_compile_private_special_variable.php b/library/Smarty/libs/sysplugins/smarty_internal_compile_private_special_variable.php
index 4760dbe3f..23b17ae14 100644
--- a/library/Smarty/libs/sysplugins/smarty_internal_compile_private_special_variable.php
+++ b/library/Smarty/libs/sysplugins/smarty_internal_compile_private_special_variable.php
@@ -1,32 +1,33 @@
<?php
/**
* Smarty Internal Plugin Compile Special Smarty Variable
- *
* Compiles the special $smarty variables
*
- * @package Smarty
+ * @package Smarty
* @subpackage Compiler
- * @author Uwe Tews
+ * @author Uwe Tews
*/
/**
* Smarty Internal Plugin Compile special Smarty Variable Class
*
- * @package Smarty
+ * @package Smarty
* @subpackage Compiler
*/
-class Smarty_Internal_Compile_Private_Special_Variable extends Smarty_Internal_CompileBase {
-
+class Smarty_Internal_Compile_Private_Special_Variable extends Smarty_Internal_CompileBase
+{
/**
- * Compiles code for the speical $smarty variables
+ * Compiles code for the special $smarty variables
+ *
+ * @param array $args array with attributes from parser
+ * @param object $compiler compiler object
+ * @param $parameter
*
- * @param array $args array with attributes from parser
- * @param object $compiler compiler object
* @return string compiled code
*/
public function compile($args, $compiler, $parameter)
{
- $_index = preg_split("/\]\[/",substr($parameter, 1, strlen($parameter)-2));
+ $_index = preg_split("/\]\[/", substr($parameter, 1, strlen($parameter) - 2));
$compiled_ref = ' ';
$variable = trim($_index[0], "'");
switch ($variable) {
@@ -56,7 +57,7 @@ class Smarty_Internal_Compile_Private_Special_Variable extends Smarty_Internal_C
$compiler->trigger_template_error("(secure mode) super globals not permitted");
break;
}
- $compiled_ref = '$_'.strtoupper($variable);
+ $compiled_ref = '$_' . strtoupper($variable);
break;
case 'template':
@@ -70,6 +71,7 @@ class Smarty_Internal_Compile_Private_Special_Variable extends Smarty_Internal_C
case 'version':
$_version = Smarty::SMARTY_VERSION;
+
return "'$_version'";
case 'const':
@@ -77,16 +79,23 @@ class Smarty_Internal_Compile_Private_Special_Variable extends Smarty_Internal_C
$compiler->trigger_template_error("(secure mode) constants not permitted");
break;
}
- return '@' . trim($_index[1], "'");
+
+ return "@constant({$_index[1]})";
case 'config':
- return "\$_smarty_tpl->getConfigVariable($_index[1])";
+ if (isset($_index[2])) {
+ return "(is_array(\$tmp = \$_smarty_tpl->getConfigVariable($_index[1])) ? \$tmp[$_index[2]] : null)";
+ } else {
+ return "\$_smarty_tpl->getConfigVariable($_index[1])";
+ }
case 'ldelim':
$_ldelim = $compiler->smarty->left_delimiter;
+
return "'$_ldelim'";
case 'rdelim':
$_rdelim = $compiler->smarty->right_delimiter;
+
return "'$_rdelim'";
default:
@@ -99,9 +108,7 @@ class Smarty_Internal_Compile_Private_Special_Variable extends Smarty_Internal_C
$compiled_ref = $compiled_ref . "[$_ind]";
}
}
+
return $compiled_ref;
}
-
}
-
-?> \ No newline at end of file
diff --git a/library/Smarty/libs/sysplugins/smarty_internal_compile_rdelim.php b/library/Smarty/libs/sysplugins/smarty_internal_compile_rdelim.php
index 807c7e2b9..dcff2ae41 100644
--- a/library/Smarty/libs/sysplugins/smarty_internal_compile_rdelim.php
+++ b/library/Smarty/libs/sysplugins/smarty_internal_compile_rdelim.php
@@ -1,28 +1,28 @@
<?php
/**
* Smarty Internal Plugin Compile Rdelim
- *
* Compiles the {rdelim} tag
- * @package Smarty
+ *
+ * @package Smarty
* @subpackage Compiler
- * @author Uwe Tews
+ * @author Uwe Tews
*/
/**
* Smarty Internal Plugin Compile Rdelim Class
*
- * @package Smarty
+ * @package Smarty
* @subpackage Compiler
*/
-class Smarty_Internal_Compile_Rdelim extends Smarty_Internal_CompileBase {
-
+class Smarty_Internal_Compile_Rdelim extends Smarty_Internal_CompileBase
+{
/**
* Compiles code for the {rdelim} tag
- *
* This tag does output the right delimiter.
*
- * @param array $args array with attributes from parser
- * @param object $compiler compiler object
+ * @param array $args array with attributes from parser
+ * @param object $compiler compiler object
+ *
* @return string compiled code
*/
public function compile($args, $compiler)
@@ -33,9 +33,7 @@ class Smarty_Internal_Compile_Rdelim extends Smarty_Internal_CompileBase {
}
// this tag does not return compiled code
$compiler->has_code = true;
+
return $compiler->smarty->right_delimiter;
}
-
}
-
-?> \ No newline at end of file
diff --git a/library/Smarty/libs/sysplugins/smarty_internal_compile_section.php b/library/Smarty/libs/sysplugins/smarty_internal_compile_section.php
index ccb7673d8..5ac3fb067 100644
--- a/library/Smarty/libs/sysplugins/smarty_internal_compile_section.php
+++ b/library/Smarty/libs/sysplugins/smarty_internal_compile_section.php
@@ -1,22 +1,21 @@
<?php
/**
* Smarty Internal Plugin Compile Section
- *
* Compiles the {section} {sectionelse} {/section} tags
*
- * @package Smarty
+ * @package Smarty
* @subpackage Compiler
- * @author Uwe Tews
+ * @author Uwe Tews
*/
/**
* Smarty Internal Plugin Compile Section Class
- *
- * @package Smarty
+ *
+ * @package Smarty
* @subpackage Compiler
*/
-class Smarty_Internal_Compile_Section extends Smarty_Internal_CompileBase {
-
+class Smarty_Internal_Compile_Section extends Smarty_Internal_CompileBase
+{
/**
* Attribute definition: Overwrites base class.
*
@@ -42,8 +41,9 @@ class Smarty_Internal_Compile_Section extends Smarty_Internal_CompileBase {
/**
* Compiles code for the {section} tag
*
- * @param array $args array with attributes from parser
- * @param object $compiler compiler object
+ * @param array $args array with attributes from parser
+ * @param object $compiler compiler object
+ *
* @return string compiled code
*/
public function compile($args, $compiler)
@@ -65,14 +65,15 @@ class Smarty_Internal_Compile_Section extends Smarty_Internal_CompileBase {
foreach ($_attr as $attr_name => $attr_value) {
switch ($attr_name) {
case 'loop':
- $output .= "{$section_props}['loop'] = is_array(\$_loop=$attr_value) ? count(\$_loop) : max(0, (int)\$_loop); unset(\$_loop);\n";
+ $output .= "{$section_props}['loop'] = is_array(\$_loop=$attr_value) ? count(\$_loop) : max(0, (int) \$_loop); unset(\$_loop);\n";
break;
case 'show':
- if (is_bool($attr_value))
+ if (is_bool($attr_value)) {
$show_attr_value = $attr_value ? 'true' : 'false';
- else
- $show_attr_value = "(bool)$attr_value";
+ } else {
+ $show_attr_value = "(bool) $attr_value";
+ }
$output .= "{$section_props}['show'] = $show_attr_value;\n";
break;
@@ -82,32 +83,36 @@ class Smarty_Internal_Compile_Section extends Smarty_Internal_CompileBase {
case 'max':
case 'start':
- $output .= "{$section_props}['$attr_name'] = (int)$attr_value;\n";
+ $output .= "{$section_props}['$attr_name'] = (int) $attr_value;\n";
break;
case 'step':
- $output .= "{$section_props}['$attr_name'] = ((int)$attr_value) == 0 ? 1 : (int)$attr_value;\n";
+ $output .= "{$section_props}['$attr_name'] = ((int) $attr_value) == 0 ? 1 : (int) $attr_value;\n";
break;
}
}
- if (!isset($_attr['show']))
+ if (!isset($_attr['show'])) {
$output .= "{$section_props}['show'] = true;\n";
+ }
- if (!isset($_attr['loop']))
+ if (!isset($_attr['loop'])) {
$output .= "{$section_props}['loop'] = 1;\n";
+ }
- if (!isset($_attr['max']))
+ if (!isset($_attr['max'])) {
$output .= "{$section_props}['max'] = {$section_props}['loop'];\n";
- else
+ } else {
$output .= "if ({$section_props}['max'] < 0)\n" . " {$section_props}['max'] = {$section_props}['loop'];\n";
+ }
- if (!isset($_attr['step']))
+ if (!isset($_attr['step'])) {
$output .= "{$section_props}['step'] = 1;\n";
+ }
- if (!isset($_attr['start']))
+ if (!isset($_attr['start'])) {
$output .= "{$section_props}['start'] = {$section_props}['step'] > 0 ? 0 : {$section_props}['loop']-1;\n";
- else {
+ } else {
$output .= "if ({$section_props}['start'] < 0)\n" . " {$section_props}['start'] = max({$section_props}['step'] > 0 ? 0 : -1, {$section_props}['loop'] + {$section_props}['start']);\n" . "else\n" . " {$section_props}['start'] = min({$section_props}['start'], {$section_props}['step'] > 0 ? {$section_props}['loop'] : {$section_props}['loop']-1);\n";
}
@@ -131,24 +136,25 @@ class Smarty_Internal_Compile_Section extends Smarty_Internal_CompileBase {
$output .= "{$section_props}['last'] = ({$section_props}['iteration'] == {$section_props}['total']);\n";
$output .= "?>";
+
return $output;
}
-
}
/**
* Smarty Internal Plugin Compile Sectionelse Class
- *
- * @package Smarty
+ *
+ * @package Smarty
* @subpackage Compiler
*/
-class Smarty_Internal_Compile_Sectionelse extends Smarty_Internal_CompileBase {
-
+class Smarty_Internal_Compile_Sectionelse extends Smarty_Internal_CompileBase
+{
/**
* Compiles code for the {sectionelse} tag
*
- * @param array $args array with attributes from parser
- * @param object $compiler compiler object
+ * @param array $args array with attributes from parser
+ * @param object $compiler compiler object
+ *
* @return string compiled code
*/
public function compile($args, $compiler)
@@ -161,22 +167,22 @@ class Smarty_Internal_Compile_Sectionelse extends Smarty_Internal_CompileBase {
return "<?php endfor; else: ?>";
}
-
}
/**
* Smarty Internal Plugin Compile Sectionclose Class
- *
- * @package Smarty
+ *
+ * @package Smarty
* @subpackage Compiler
*/
-class Smarty_Internal_Compile_Sectionclose extends Smarty_Internal_CompileBase {
-
+class Smarty_Internal_Compile_Sectionclose extends Smarty_Internal_CompileBase
+{
/**
* Compiles code for the {/section} tag
*
- * @param array $args array with attributes from parser
- * @param object $compiler compiler object
+ * @param array $args array with attributes from parser
+ * @param object $compiler compiler object
+ *
* @return string compiled code
*/
public function compile($args, $compiler)
@@ -197,7 +203,4 @@ class Smarty_Internal_Compile_Sectionclose extends Smarty_Internal_CompileBase {
return "<?php endfor; endif; ?>";
}
}
-
}
-
-?> \ No newline at end of file
diff --git a/library/Smarty/libs/sysplugins/smarty_internal_compile_setfilter.php b/library/Smarty/libs/sysplugins/smarty_internal_compile_setfilter.php
index d1dd90cf8..8e91ba6d0 100644
--- a/library/Smarty/libs/sysplugins/smarty_internal_compile_setfilter.php
+++ b/library/Smarty/libs/sysplugins/smarty_internal_compile_setfilter.php
@@ -1,72 +1,70 @@
-<?php
-/**
- * Smarty Internal Plugin Compile Setfilter
- *
- * Compiles code for setfilter tag
- *
- * @package Smarty
- * @subpackage Compiler
- * @author Uwe Tews
- */
-
-/**
- * Smarty Internal Plugin Compile Setfilter Class
- *
- * @package Smarty
- * @subpackage Compiler
- */
-class Smarty_Internal_Compile_Setfilter extends Smarty_Internal_CompileBase {
-
- /**
- * Compiles code for setfilter tag
- *
- * @param array $args array with attributes from parser
- * @param object $compiler compiler object
- * @param array $parameter array with compilation parameter
- * @return string compiled code
- */
- public function compile($args, $compiler, $parameter)
- {
- $compiler->variable_filter_stack[] = $compiler->template->variable_filters;
- $compiler->template->variable_filters = $parameter['modifier_list'];
- // this tag does not return compiled code
- $compiler->has_code = false;
- return true;
- }
-
-}
-
-/**
- * Smarty Internal Plugin Compile Setfilterclose Class
- *
- * @package Smarty
- * @subpackage Compiler
- */
-class Smarty_Internal_Compile_Setfilterclose extends Smarty_Internal_CompileBase {
-
- /**
- * Compiles code for the {/setfilter} tag
- *
- * This tag does not generate compiled output. It resets variable filter.
- *
- * @param array $args array with attributes from parser
- * @param object $compiler compiler object
- * @return string compiled code
- */
- public function compile($args, $compiler)
- {
- $_attr = $this->getAttributes($compiler, $args);
- // reset variable filter to previous state
- if (count($compiler->variable_filter_stack)) {
- $compiler->template->variable_filters = array_pop($compiler->variable_filter_stack);
- } else {
- $compiler->template->variable_filters = array();
- }
- // this tag does not return compiled code
- $compiler->has_code = false;
- return true;
- }
-
-}
-
-?> \ No newline at end of file
+<?php
+/**
+ * Smarty Internal Plugin Compile Setfilter
+ * Compiles code for setfilter tag
+ *
+ * @package Smarty
+ * @subpackage Compiler
+ * @author Uwe Tews
+ */
+
+/**
+ * Smarty Internal Plugin Compile Setfilter Class
+ *
+ * @package Smarty
+ * @subpackage Compiler
+ */
+class Smarty_Internal_Compile_Setfilter extends Smarty_Internal_CompileBase
+{
+ /**
+ * Compiles code for setfilter tag
+ *
+ * @param array $args array with attributes from parser
+ * @param object $compiler compiler object
+ * @param array $parameter array with compilation parameter
+ *
+ * @return string compiled code
+ */
+ public function compile($args, $compiler, $parameter)
+ {
+ $compiler->variable_filter_stack[] = $compiler->template->variable_filters;
+ $compiler->template->variable_filters = $parameter['modifier_list'];
+ // this tag does not return compiled code
+ $compiler->has_code = false;
+
+ return true;
+ }
+}
+
+/**
+ * Smarty Internal Plugin Compile Setfilterclose Class
+ *
+ * @package Smarty
+ * @subpackage Compiler
+ */
+class Smarty_Internal_Compile_Setfilterclose extends Smarty_Internal_CompileBase
+{
+ /**
+ * Compiles code for the {/setfilter} tag
+ * This tag does not generate compiled output. It resets variable filter.
+ *
+ * @param array $args array with attributes from parser
+ * @param object $compiler compiler object
+ *
+ * @return string compiled code
+ */
+ public function compile($args, $compiler)
+ {
+ $_attr = $this->getAttributes($compiler, $args);
+ // reset variable filter to previous state
+ if (count($compiler->variable_filter_stack)) {
+ $compiler->template->variable_filters = array_pop($compiler->variable_filter_stack);
+ } else {
+ $compiler->template->variable_filters = array();
+ }
+ // this tag does not return compiled code
+ $compiler->has_code = false;
+
+ return true;
+ }
+}
diff --git a/library/Smarty/libs/sysplugins/smarty_internal_compile_while.php b/library/Smarty/libs/sysplugins/smarty_internal_compile_while.php
index d7d986c34..36dc049db 100644
--- a/library/Smarty/libs/sysplugins/smarty_internal_compile_while.php
+++ b/library/Smarty/libs/sysplugins/smarty_internal_compile_while.php
@@ -1,28 +1,28 @@
<?php
/**
* Smarty Internal Plugin Compile While
- *
* Compiles the {while} tag
*
- * @package Smarty
+ * @package Smarty
* @subpackage Compiler
- * @author Uwe Tews
+ * @author Uwe Tews
*/
/**
* Smarty Internal Plugin Compile While Class
*
- * @package Smarty
+ * @package Smarty
* @subpackage Compiler
*/
-class Smarty_Internal_Compile_While extends Smarty_Internal_CompileBase {
-
+class Smarty_Internal_Compile_While extends Smarty_Internal_CompileBase
+{
/**
* Compiles code for the {while} tag
*
- * @param array $args array with attributes from parser
- * @param object $compiler compiler object
- * @param array $parameter array with compilation parameter
+ * @param array $args array with attributes from parser
+ * @param object $compiler compiler object
+ * @param array $parameter array with compilation parameter
+ *
* @return string compiled code
*/
public function compile($args, $compiler, $parameter)
@@ -31,7 +31,7 @@ class Smarty_Internal_Compile_While extends Smarty_Internal_CompileBase {
$_attr = $this->getAttributes($compiler, $args);
$this->openTag($compiler, 'while', $compiler->nocache);
- if (!array_key_exists("if condition",$parameter)) {
+ if (!array_key_exists("if condition", $parameter)) {
$compiler->trigger_template_error("missing while condition", $compiler->lex->taglineno);
}
@@ -51,32 +51,33 @@ class Smarty_Internal_Compile_While extends Smarty_Internal_CompileBase {
}
if (is_array($parameter['if condition']['var'])) {
$_output = "<?php if (!isset(\$_smarty_tpl->tpl_vars[" . $parameter['if condition']['var']['var'] . "]) || !is_array(\$_smarty_tpl->tpl_vars[" . $parameter['if condition']['var']['var'] . "]->value)) \$_smarty_tpl->createLocalArrayVariable(" . $parameter['if condition']['var']['var'] . "$_nocache);\n";
- $_output .= "while (\$_smarty_tpl->tpl_vars[" . $parameter['if condition']['var']['var'] . "]->value" . $parameter['if condition']['var']['smarty_internal_index'] . " = " . $parameter['if condition']['value'] . "){?>";
+ $_output .= "while (\$_smarty_tpl->tpl_vars[" . $parameter['if condition']['var']['var'] . "]->value" . $parameter['if condition']['var']['smarty_internal_index'] . " = " . $parameter['if condition']['value'] . ") {?>";
} else {
$_output = "<?php if (!isset(\$_smarty_tpl->tpl_vars[" . $parameter['if condition']['var'] . "])) \$_smarty_tpl->tpl_vars[" . $parameter['if condition']['var'] . "] = new Smarty_Variable(null{$_nocache});";
- $_output .= "while (\$_smarty_tpl->tpl_vars[" . $parameter['if condition']['var'] . "]->value = " . $parameter['if condition']['value'] . "){?>";
+ $_output .= "while (\$_smarty_tpl->tpl_vars[" . $parameter['if condition']['var'] . "]->value = " . $parameter['if condition']['value'] . ") {?>";
}
+
return $_output;
} else {
- return "<?php while ({$parameter['if condition']}){?>";
+ return "<?php while ({$parameter['if condition']}) {?>";
}
}
-
}
/**
* Smarty Internal Plugin Compile Whileclose Class
*
- * @package Smarty
+ * @package Smarty
* @subpackage Compiler
*/
-class Smarty_Internal_Compile_Whileclose extends Smarty_Internal_CompileBase {
-
+class Smarty_Internal_Compile_Whileclose extends Smarty_Internal_CompileBase
+{
/**
* Compiles code for the {/while} tag
*
- * @param array $args array with attributes from parser
- * @param object $compiler compiler object
+ * @param array $args array with attributes from parser
+ * @param object $compiler compiler object
+ *
* @return string compiled code
*/
public function compile($args, $compiler)
@@ -86,9 +87,7 @@ class Smarty_Internal_Compile_Whileclose extends Smarty_Internal_CompileBase {
$compiler->tag_nocache = true;
}
$compiler->nocache = $this->closeTag($compiler, array('while'));
+
return "<?php }?>";
}
-
}
-
-?> \ No newline at end of file
diff --git a/library/Smarty/libs/sysplugins/smarty_internal_compilebase.php b/library/Smarty/libs/sysplugins/smarty_internal_compilebase.php
index 5fb56f371..f78f15f40 100644
--- a/library/Smarty/libs/sysplugins/smarty_internal_compilebase.php
+++ b/library/Smarty/libs/sysplugins/smarty_internal_compilebase.php
@@ -2,19 +2,19 @@
/**
* Smarty Internal Plugin CompileBase
*
- * @package Smarty
+ * @package Smarty
* @subpackage Compiler
- * @author Uwe Tews
+ * @author Uwe Tews
*/
/**
* This class does extend all internal compile plugins
*
- * @package Smarty
+ * @package Smarty
* @subpackage Compiler
*/
-abstract class Smarty_Internal_CompileBase {
-
+abstract class Smarty_Internal_CompileBase
+{
/**
* Array of names of required attribute required by tag
*
@@ -43,15 +43,15 @@ abstract class Smarty_Internal_CompileBase {
/**
* This function checks if the attributes passed are valid
- *
* The attributes passed for the tag to compile are checked against the list of required and
* optional attributes. Required attributes must be present. Optional attributes are check against
* the corresponding list. The keyword '_any' specifies that any attribute will be accepted
* as valid
*
- * @param object $compiler compiler object
- * @param array $attributes attributes applied to the tag
- * @return array of mapped attributes for further processing
+ * @param object $compiler compiler object
+ * @param array $attributes attributes applied to the tag
+ *
+ * @return array of mapped attributes for further processing
*/
public function getAttributes($compiler, $attributes)
{
@@ -64,7 +64,7 @@ abstract class Smarty_Internal_CompileBase {
if (in_array(trim($mixed, '\'"'), $this->option_flags)) {
$_indexed_attr[trim($mixed, '\'"')] = true;
// shorthand attribute ?
- } else if (isset($this->shorttag_order[$key])) {
+ } elseif (isset($this->shorttag_order[$key])) {
$_indexed_attr[$this->shorttag_order[$key]] = $mixed;
} else {
// too many shorthands
@@ -77,13 +77,13 @@ abstract class Smarty_Internal_CompileBase {
if (in_array($kv['key'], $this->option_flags)) {
if (is_bool($kv['value'])) {
$_indexed_attr[$kv['key']] = $kv['value'];
- } else if (is_string($kv['value']) && in_array(trim($kv['value'], '\'"'), array('true', 'false'))) {
+ } elseif (is_string($kv['value']) && in_array(trim($kv['value'], '\'"'), array('true', 'false'))) {
if (trim($kv['value']) == 'true') {
$_indexed_attr[$kv['key']] = true;
} else {
$_indexed_attr[$kv['key']] = false;
}
- } else if (is_numeric($kv['value']) && in_array($kv['value'], array(0, 1))) {
+ } elseif (is_numeric($kv['value']) && in_array($kv['value'], array(0, 1))) {
if ($kv['value'] == 1) {
$_indexed_attr[$kv['key']] = true;
} else {
@@ -105,7 +105,7 @@ abstract class Smarty_Internal_CompileBase {
$compiler->trigger_template_error("missing \"" . $attr . "\" attribute", $compiler->lex->taglineno);
}
}
- // check for unallowed attributes
+ // check for not allowed attributes
if ($this->optional_attributes != array('_any')) {
$tmp_array = array_merge($this->required_attributes, $this->optional_attributes, $this->option_flags);
foreach ($_indexed_attr as $key => $dummy) {
@@ -126,12 +126,11 @@ abstract class Smarty_Internal_CompileBase {
/**
* Push opening tag name on stack
- *
* Optionally additional data can be saved on stack
*
- * @param object $compiler compiler object
- * @param string $openTag the opening tag's name
- * @param mixed $data optional data saved
+ * @param object $compiler compiler object
+ * @param string $openTag the opening tag's name
+ * @param mixed $data optional data saved
*/
public function openTag($compiler, $openTag, $data = null)
{
@@ -140,12 +139,12 @@ abstract class Smarty_Internal_CompileBase {
/**
* Pop closing tag
- *
* Raise an error if this stack-top doesn't match with expected opening tags
*
- * @param object $compiler compiler object
- * @param array|string $expectedTag the expected opening tag names
- * @return mixed any type the opening tag's name or saved data
+ * @param object $compiler compiler object
+ * @param array|string $expectedTag the expected opening tag names
+ *
+ * @return mixed any type the opening tag's name or saved data
*/
public function closeTag($compiler, $expectedTag)
{
@@ -163,14 +162,13 @@ abstract class Smarty_Internal_CompileBase {
}
}
// wrong nesting of tags
- $compiler->trigger_template_error("unclosed {" . $_openTag . "} tag");
+ $compiler->trigger_template_error("unclosed {$compiler->smarty->left_delimiter}" . $_openTag . "{$compiler->smarty->right_delimiter} tag");
+
return;
}
// wrong nesting of tags
$compiler->trigger_template_error("unexpected closing tag", $compiler->lex->taglineno);
+
return;
}
-
}
-
-?> \ No newline at end of file
diff --git a/library/Smarty/libs/sysplugins/smarty_internal_config.php b/library/Smarty/libs/sysplugins/smarty_internal_config.php
index a309ec9ff..25694d5a9 100644
--- a/library/Smarty/libs/sysplugins/smarty_internal_config.php
+++ b/library/Smarty/libs/sysplugins/smarty_internal_config.php
@@ -2,27 +2,23 @@
/**
* Smarty Internal Plugin Config
*
- * @package Smarty
+ * @package Smarty
* @subpackage Config
- * @author Uwe Tews
+ * @author Uwe Tews
*/
/**
* Smarty Internal Plugin Config
- *
* Main class for config variables
*
- * @package Smarty
+ * @package Smarty
* @subpackage Config
- *
- * @property Smarty_Config_Source $source
- * @property Smarty_Config_Compiled $compiled
* @ignore
*/
-class Smarty_Internal_Config {
-
+class Smarty_Internal_Config
+{
/**
- * Samrty instance
+ * Smarty instance
*
* @var Smarty object
*/
@@ -35,6 +31,7 @@ class Smarty_Internal_Config {
public $data = null;
/**
* Config resource
+ *
* @var string
*/
public $config_resource = null;
@@ -58,6 +55,7 @@ class Smarty_Internal_Config {
public $compiled_timestamp = null;
/**
* flag if compiled config file is invalid and must be (re)compiled
+ *
* @var bool
*/
public $mustCompile = null;
@@ -72,8 +70,8 @@ class Smarty_Internal_Config {
* Constructor of config file object
*
* @param string $config_resource config file resource name
- * @param Smarty $smarty Smarty instance
- * @param object $data object for config vars storage
+ * @param Smarty $smarty Smarty instance
+ * @param object $data object for config vars storage
*/
public function __construct($config_resource, $smarty, $data = null)
{
@@ -90,8 +88,8 @@ class Smarty_Internal_Config {
public function getCompiledFilepath()
{
return $this->compiled_filepath === null ?
- ($this->compiled_filepath = $this->buildCompiledFilepath()) :
- $this->compiled_filepath;
+ ($this->compiled_filepath = $this->buildCompiledFilepath()) :
+ $this->compiled_filepath;
}
/**
@@ -103,25 +101,26 @@ class Smarty_Internal_Config {
{
$_compile_id = isset($this->smarty->compile_id) ? preg_replace('![^\w\|]+!', '_', $this->smarty->compile_id) : null;
$_flag = (int) $this->smarty->config_read_hidden + (int) $this->smarty->config_booleanize * 2
- + (int) $this->smarty->config_overwrite * 4;
- $_filepath = sha1($this->source->name . $_flag);
+ + (int) $this->smarty->config_overwrite * 4;
+ $_filepath = sha1(realpath($this->source->filepath) . $_flag);
// if use_sub_dirs, break file into directories
if ($this->smarty->use_sub_dirs) {
$_filepath = substr($_filepath, 0, 2) . DS
- . substr($_filepath, 2, 2) . DS
- . substr($_filepath, 4, 2) . DS
- . $_filepath;
+ . substr($_filepath, 2, 2) . DS
+ . substr($_filepath, 4, 2) . DS
+ . $_filepath;
}
$_compile_dir_sep = $this->smarty->use_sub_dirs ? DS : '^';
if (isset($_compile_id)) {
$_filepath = $_compile_id . $_compile_dir_sep . $_filepath;
}
$_compile_dir = $this->smarty->getCompileDir();
+
return $_compile_dir . $_filepath . '.' . basename($this->source->name) . '.config' . '.php';
}
/**
- * Returns the timpestamp of the compiled file
+ * Returns the timestamp of the compiled file
*
* @return integer the file timestamp
*/
@@ -134,7 +133,6 @@ class Smarty_Internal_Config {
/**
* Returns if the current config file must be compiled
- *
* It does compare the timestamps of config source and the compiled config and checks the force compile configuration
*
* @return boolean true if the file must be compiled
@@ -142,13 +140,12 @@ class Smarty_Internal_Config {
public function mustCompile()
{
return $this->mustCompile === null ?
- $this->mustCompile = ($this->smarty->force_compile || $this->getCompiledTimestamp () === false || $this->smarty->compile_check && $this->getCompiledTimestamp () < $this->source->timestamp):
+ $this->mustCompile = ($this->smarty->force_compile || $this->getCompiledTimestamp() === false || $this->smarty->compile_check && $this->getCompiledTimestamp() < $this->source->timestamp) :
$this->mustCompile;
}
/**
* Returns the compiled config file
- *
* It checks if the config file must be compiled or just read the compiled version
*
* @return string the compiled config file
@@ -163,6 +160,7 @@ class Smarty_Internal_Config {
$this->compiled_config = file_get_contents($this->getCompiledFilepath());
}
}
+
return $this->compiled_config;
}
@@ -187,14 +185,15 @@ class Smarty_Internal_Config {
// call compiler
try {
$this->compiler_object->compileSource($this);
- } catch (Exception $e) {
+ }
+ catch (Exception $e) {
// restore old timestamp in case of error
if ($this->smarty->compile_locking && $saved_timestamp) {
touch($this->getCompiledFilepath(), $saved_timestamp);
}
throw $e;
}
- // compiling succeded
+ // compiling succeeded
// write compiled template
Smarty_Internal_Write_File::writeFile($this->getCompiledFilepath(), $this->getCompiledConfig(), $this->smarty);
}
@@ -202,8 +201,10 @@ class Smarty_Internal_Config {
/**
* load config variables
*
- * @param mixed $sections array of section names, single section or null
- * @param object $scope global,parent or local
+ * @param mixed $sections array of section names, single section or null
+ * @param string $scope global,parent or local
+ *
+ * @throws Exception
*/
public function loadConfigVars($sections = null, $scope = 'local')
{
@@ -240,9 +241,8 @@ class Smarty_Internal_Config {
}
// scan sections
if (!empty($sections)) {
- $sections = array_flip((array) $sections);
- foreach ($_config_vars['sections'] as $this_section => $dummy) {
- if (isset($sections[$this_section])) {
+ foreach ((array) $sections as $this_section) {
+ if (isset($_config_vars['sections'][$this_section])) {
foreach ($_config_vars['sections'][$this_section]['vars'] as $variable => $value) {
if ($this->smarty->config_overwrite || !isset($scope_ptr->config_vars[$variable])) {
$scope_ptr->config_vars[$variable] = $value;
@@ -258,8 +258,9 @@ class Smarty_Internal_Config {
/**
* set Smarty property in template context
*
- * @param string $property_name property name
- * @param mixed $value value
+ * @param string $property_name property name
+ * @param mixed $value value
+ *
* @throws SmartyException if $property_name is not valid
*/
public function __set($property_name, $value)
@@ -268,6 +269,7 @@ class Smarty_Internal_Config {
case 'source':
case 'compiled':
$this->$property_name = $value;
+
return;
}
@@ -277,7 +279,9 @@ class Smarty_Internal_Config {
/**
* get Smarty property in template context
*
- * @param string $property_name property name
+ * @param string $property_name property name
+ *
+ * @return \Smarty_Config_Source|\Smarty_Template_Compiled
* @throws SmartyException if $property_name is not valid
*/
public function __get($property_name)
@@ -288,16 +292,15 @@ class Smarty_Internal_Config {
throw new SmartyException("Unable to parse resource name \"{$this->config_resource}\"");
}
$this->source = Smarty_Resource::config($this);
+
return $this->source;
case 'compiled':
$this->compiled = $this->source->getCompiled($this);
+
return $this->compiled;
}
throw new SmartyException("config attribute '$property_name' does not exist.");
}
-
}
-
-?> \ No newline at end of file
diff --git a/library/Smarty/libs/sysplugins/smarty_internal_config_file_compiler.php b/library/Smarty/libs/sysplugins/smarty_internal_config_file_compiler.php
index b16a6940d..117310439 100644
--- a/library/Smarty/libs/sysplugins/smarty_internal_config_file_compiler.php
+++ b/library/Smarty/libs/sysplugins/smarty_internal_config_file_compiler.php
@@ -1,23 +1,22 @@
<?php
/**
* Smarty Internal Plugin Config File Compiler
- *
* This is the config file compiler class. It calls the lexer and parser to
* perform the compiling.
*
- * @package Smarty
+ * @package Smarty
* @subpackage Config
- * @author Uwe Tews
+ * @author Uwe Tews
*/
/**
* Main config file compiler class
*
- * @package Smarty
+ * @package Smarty
* @subpackage Config
*/
-class Smarty_Internal_Config_File_Compiler {
-
+class Smarty_Internal_Config_File_Compiler
+{
/**
* Lexer object
*
@@ -69,7 +68,8 @@ class Smarty_Internal_Config_File_Compiler {
* Method to compile a Smarty template.
*
* @param Smarty_Internal_Config $config config object
- * @return bool true if compiling succeeded, false if it failed
+ *
+ * @return bool true if compiling succeeded, false if it failed
*/
public function compileSource(Smarty_Internal_Config $config)
{
@@ -84,28 +84,46 @@ class Smarty_Internal_Config_File_Compiler {
return true;
}
// init the lexer/parser to compile the config file
- $lex = new Smarty_Internal_Configfilelexer($_content, $this->smarty);
+ $lex = new Smarty_Internal_Configfilelexer($_content, $this);
$parser = new Smarty_Internal_Configfileparser($lex, $this);
- if ($this->smarty->_parserdebug) $parser->PrintTrace();
+
+ if (function_exists('mb_internal_encoding') && ((int) ini_get('mbstring.func_overload')) & 2) {
+ $mbEncoding = mb_internal_encoding();
+ mb_internal_encoding('ASCII');
+ } else {
+ $mbEncoding = null;
+ }
+
+
+ if ($this->smarty->_parserdebug) {
+ $parser->PrintTrace();
+ }
// get tokens from lexer and parse them
while ($lex->yylex()) {
- if ($this->smarty->_parserdebug) echo "<br>Parsing {$parser->yyTokenName[$lex->token]} Token {$lex->value} Line {$lex->line} \n";
+ if ($this->smarty->_parserdebug) {
+ echo "<br>Parsing {$parser->yyTokenName[$lex->token]} Token {$lex->value} Line {$lex->line} \n";
+ }
$parser->doParse($lex->token, $lex->value);
}
// finish parsing process
$parser->doParse(0, 0);
+
+ if ($mbEncoding) {
+ mb_internal_encoding($mbEncoding);
+ }
+
$config->compiled_config = '<?php $_config_vars = ' . var_export($this->config_data, true) . '; ?>';
}
/**
* display compiler error messages without dying
- *
* If parameter $args is empty it is a parser detected syntax error.
- * In this case the parser is called to obtain information about exspected tokens.
- *
+ * In this case the parser is called to obtain information about expected tokens.
* If parameter $args contains a string this is used as error message
*
* @param string $args individual error message or null
+ *
+ * @throws SmartyCompilerException
*/
public function trigger_config_file_error($args = null)
{
@@ -117,12 +135,12 @@ class Smarty_Internal_Config_File_Compiler {
// $line--;
}
$match = preg_split("/\n/", $this->lex->data);
- $error_text = "Syntax error in config file '{$this->config->source->filepath}' on line {$line} '{$match[$line-1]}' ";
+ $error_text = "Syntax error in config file '{$this->config->source->filepath}' on line {$line} '{$match[$line - 1]}' ";
if (isset($args)) {
// individual error message
$error_text .= $args;
} else {
- // exspected token from parser
+ // expected token from parser
foreach ($this->parser->yy_get_expected_tokens($this->parser->yymajor) as $token) {
$exp_token = $this->parser->yyTokenName[$token];
if (isset($this->lex->smarty_token_names[$exp_token])) {
@@ -138,7 +156,4 @@ class Smarty_Internal_Config_File_Compiler {
}
throw new SmartyCompilerException($error_text);
}
-
}
-
-?> \ No newline at end of file
diff --git a/library/Smarty/libs/sysplugins/smarty_internal_configfilelexer.php b/library/Smarty/libs/sysplugins/smarty_internal_configfilelexer.php
index bade2fe74..f0292196b 100644
--- a/library/Smarty/libs/sysplugins/smarty_internal_configfilelexer.php
+++ b/library/Smarty/libs/sysplugins/smarty_internal_configfilelexer.php
@@ -1,15 +1,16 @@
<?php
/**
-* Smarty Internal Plugin Configfilelexer
-*
-* This is the lexer to break the config file source into tokens
-* @package Smarty
-* @subpackage Config
-* @author Uwe Tews
-*/
+ * Smarty Internal Plugin Configfilelexer
+ * This is the lexer to break the config file source into tokens
+ *
+ * @package Smarty
+ * @subpackage Config
+ * @author Uwe Tews
+ */
+
/**
-* Smarty Internal Plugin Configfilelexer
-*/
+ * Smarty Internal Plugin Configfilelexer
+ */
class Smarty_Internal_Configfilelexer
{
@@ -20,96 +21,119 @@ class Smarty_Internal_Configfilelexer
public $node;
public $line;
private $state = 1;
- public $smarty_token_names = array ( // Text for parser error messages
- );
-
+ public $yyTraceFILE;
+ public $yyTracePrompt;
+ public $state_name = array(1 => 'START', 2 => 'VALUE', 3 => 'NAKED_STRING_VALUE', 4 => 'COMMENT', 5 => 'SECTION', 6 => 'TRIPPLE');
+ public $smarty_token_names = array( // Text for parser error messages
+ );
- function __construct($data, $smarty)
+ function __construct($data, $compiler)
{
// set instance object
self::instance($this);
$this->data = $data . "\n"; //now all lines are \n-terminated
$this->counter = 0;
+ if (preg_match('/^\xEF\xBB\xBF/', $this->data, $match)) {
+ $this->counter += strlen($match[0]);
+ }
$this->line = 1;
- $this->smarty = $smarty;
- $this->mbstring_overload = ini_get('mbstring.func_overload') & 2;
+ $this->compiler = $compiler;
+ $this->smarty = $compiler->smarty;
}
+
public static function &instance($new_instance = null)
{
static $instance = null;
- if (isset($new_instance) && is_object($new_instance))
+ if (isset($new_instance) && is_object($new_instance)) {
$instance = $new_instance;
+ }
return $instance;
}
-
+ public function PrintTrace()
+ {
+ $this->yyTraceFILE = fopen('php://output', 'w');
+ $this->yyTracePrompt = '<br>';
+ }
private $_yy_state = 1;
private $_yy_stack = array();
- function yylex()
+ public function yylex()
{
return $this->{'yylex' . $this->_yy_state}();
}
- function yypushstate($state)
+ public function yypushstate($state)
{
+ if ($this->yyTraceFILE) {
+ fprintf($this->yyTraceFILE, "%sState push %s\n", $this->yyTracePrompt, isset($this->state_name[$this->_yy_state]) ? $this->state_name[$this->_yy_state] : $this->_yy_state);
+ }
array_push($this->_yy_stack, $this->_yy_state);
$this->_yy_state = $state;
+ if ($this->yyTraceFILE) {
+ fprintf($this->yyTraceFILE, "%snew State %s\n", $this->yyTracePrompt, isset($this->state_name[$this->_yy_state]) ? $this->state_name[$this->_yy_state] : $this->_yy_state);
+ }
}
- function yypopstate()
+ public function yypopstate()
{
+ if ($this->yyTraceFILE) {
+ fprintf($this->yyTraceFILE, "%sState pop %s\n", $this->yyTracePrompt, isset($this->state_name[$this->_yy_state]) ? $this->state_name[$this->_yy_state] : $this->_yy_state);
+ }
$this->_yy_state = array_pop($this->_yy_stack);
+ if ($this->yyTraceFILE) {
+ fprintf($this->yyTraceFILE, "%snew State %s\n", $this->yyTracePrompt, isset($this->state_name[$this->_yy_state]) ? $this->state_name[$this->_yy_state] : $this->_yy_state);
+ }
}
- function yybegin($state)
+ public function yybegin($state)
{
$this->_yy_state = $state;
+ if ($this->yyTraceFILE) {
+ fprintf($this->yyTraceFILE, "%sState set %s\n", $this->yyTracePrompt, isset($this->state_name[$this->_yy_state]) ? $this->state_name[$this->_yy_state] : $this->_yy_state);
+ }
}
-
-
-
- function yylex1()
+ public function yylex1()
{
- $tokenMap = array (
- 1 => 0,
- 2 => 0,
- 3 => 0,
- 4 => 0,
- 5 => 0,
- 6 => 0,
- 7 => 0,
- 8 => 0,
- );
- if ($this->counter >= ($this->mbstring_overload ? mb_strlen($this->data,'latin1'): strlen($this->data))) {
+ $tokenMap = array(
+ 1 => 0,
+ 2 => 0,
+ 3 => 0,
+ 4 => 0,
+ 5 => 0,
+ 6 => 0,
+ 7 => 0,
+ 8 => 0,
+ );
+ if ($this->counter >= strlen($this->data)) {
return false; // end of input
}
$yy_global_pattern = "/\G(#|;)|\G(\\[)|\G(\\])|\G(=)|\G([ \t\r]+)|\G(\n)|\G([0-9]*[a-zA-Z_]\\w*)|\G([\S\s])/iS";
do {
- if ($this->mbstring_overload ? preg_match($yy_global_pattern, mb_substr($this->data, $this->counter,2000000000,'latin1'), $yymatches) : preg_match($yy_global_pattern,$this->data, $yymatches, null, $this->counter)) {
+ if (preg_match($yy_global_pattern, $this->data, $yymatches, null, $this->counter)) {
$yysubmatches = $yymatches;
$yymatches = array_filter($yymatches, 'strlen'); // remove empty sub-patterns
if (!count($yymatches)) {
throw new Exception('Error: lexing failed because a rule matched' .
- ' an empty string. Input "' . substr($this->data,
- $this->counter, 5) . '... state START');
+ ' an empty string. Input "' . substr($this->data,
+ $this->counter, 5) . '... state START');
}
next($yymatches); // skip global match
$this->token = key($yymatches); // token number
if ($tokenMap[$this->token]) {
// extract sub-patterns for passing to lex function
$yysubmatches = array_slice($yysubmatches, $this->token + 1,
- $tokenMap[$this->token]);
+ $tokenMap[$this->token]);
} else {
$yysubmatches = array();
}
$this->value = current($yymatches); // token value
$r = $this->{'yy_r1_' . $this->token}($yysubmatches);
if ($r === null) {
- $this->counter += ($this->mbstring_overload ? mb_strlen($this->value,'latin1'): strlen($this->value));
+ $this->counter += strlen($this->value);
$this->line += substr_count($this->value, "\n");
// accept this token
return true;
@@ -118,110 +142,115 @@ class Smarty_Internal_Configfilelexer
// process this token in the new state
return $this->yylex();
} elseif ($r === false) {
- $this->counter += ($this->mbstring_overload ? mb_strlen($this->value,'latin1'): strlen($this->value));
+ $this->counter += strlen($this->value);
$this->line += substr_count($this->value, "\n");
- if ($this->counter >= ($this->mbstring_overload ? mb_strlen($this->data,'latin1'): strlen($this->data))) {
+ if ($this->counter >= strlen($this->data)) {
return false; // end of input
}
// skip this token
continue;
- } } else {
+ }
+ } else {
throw new Exception('Unexpected input at line' . $this->line .
- ': ' . $this->data[$this->counter]);
+ ': ' . $this->data[$this->counter]);
}
break;
} while (true);
-
} // end function
-
const START = 1;
+
function yy_r1_1($yy_subpatterns)
{
- $this->token = Smarty_Internal_Configfileparser::TPC_COMMENTSTART;
- $this->yypushstate(self::COMMENT);
+ $this->token = Smarty_Internal_Configfileparser::TPC_COMMENTSTART;
+ $this->yypushstate(self::COMMENT);
}
+
function yy_r1_2($yy_subpatterns)
{
- $this->token = Smarty_Internal_Configfileparser::TPC_OPENB;
- $this->yypushstate(self::SECTION);
+ $this->token = Smarty_Internal_Configfileparser::TPC_OPENB;
+ $this->yypushstate(self::SECTION);
}
+
function yy_r1_3($yy_subpatterns)
{
- $this->token = Smarty_Internal_Configfileparser::TPC_CLOSEB;
+ $this->token = Smarty_Internal_Configfileparser::TPC_CLOSEB;
}
+
function yy_r1_4($yy_subpatterns)
{
- $this->token = Smarty_Internal_Configfileparser::TPC_EQUAL;
- $this->yypushstate(self::VALUE);
+ $this->token = Smarty_Internal_Configfileparser::TPC_EQUAL;
+ $this->yypushstate(self::VALUE);
}
+
function yy_r1_5($yy_subpatterns)
{
- return false;
+ return false;
}
+
function yy_r1_6($yy_subpatterns)
{
- $this->token = Smarty_Internal_Configfileparser::TPC_NEWLINE;
+ $this->token = Smarty_Internal_Configfileparser::TPC_NEWLINE;
}
+
function yy_r1_7($yy_subpatterns)
{
- $this->token = Smarty_Internal_Configfileparser::TPC_ID;
+ $this->token = Smarty_Internal_Configfileparser::TPC_ID;
}
+
function yy_r1_8($yy_subpatterns)
{
- $this->token = Smarty_Internal_Configfileparser::TPC_OTHER;
+ $this->token = Smarty_Internal_Configfileparser::TPC_OTHER;
}
-
-
- function yylex2()
+ public function yylex2()
{
- $tokenMap = array (
- 1 => 0,
- 2 => 0,
- 3 => 0,
- 4 => 0,
- 5 => 0,
- 6 => 0,
- 7 => 0,
- 8 => 0,
- 9 => 0,
- );
- if ($this->counter >= ($this->mbstring_overload ? mb_strlen($this->data,'latin1'): strlen($this->data))) {
+ $tokenMap = array(
+ 1 => 0,
+ 2 => 0,
+ 3 => 0,
+ 4 => 0,
+ 5 => 0,
+ 6 => 0,
+ 7 => 0,
+ 8 => 0,
+ 9 => 0,
+ );
+ if ($this->counter >= strlen($this->data)) {
return false; // end of input
}
$yy_global_pattern = "/\G([ \t\r]+)|\G(\\d+\\.\\d+(?=[ \t\r]*[\n#;]))|\G(\\d+(?=[ \t\r]*[\n#;]))|\G(\"\"\")|\G('[^'\\\\]*(?:\\\\.[^'\\\\]*)*'(?=[ \t\r]*[\n#;]))|\G(\"[^\"\\\\]*(?:\\\\.[^\"\\\\]*)*\"(?=[ \t\r]*[\n#;]))|\G([a-zA-Z]+(?=[ \t\r]*[\n#;]))|\G([^\n]+?(?=[ \t\r]*\n))|\G(\n)/iS";
do {
- if ($this->mbstring_overload ? preg_match($yy_global_pattern, mb_substr($this->data, $this->counter,2000000000,'latin1'), $yymatches) : preg_match($yy_global_pattern,$this->data, $yymatches, null, $this->counter)) {
+ if (preg_match($yy_global_pattern, $this->data, $yymatches, null, $this->counter)) {
$yysubmatches = $yymatches;
$yymatches = array_filter($yymatches, 'strlen'); // remove empty sub-patterns
if (!count($yymatches)) {
throw new Exception('Error: lexing failed because a rule matched' .
- ' an empty string. Input "' . substr($this->data,
- $this->counter, 5) . '... state VALUE');
+ ' an empty string. Input "' . substr($this->data,
+ $this->counter, 5) . '... state VALUE');
}
next($yymatches); // skip global match
$this->token = key($yymatches); // token number
if ($tokenMap[$this->token]) {
// extract sub-patterns for passing to lex function
$yysubmatches = array_slice($yysubmatches, $this->token + 1,
- $tokenMap[$this->token]);
+ $tokenMap[$this->token]);
} else {
$yysubmatches = array();
}
$this->value = current($yymatches); // token value
$r = $this->{'yy_r2_' . $this->token}($yysubmatches);
if ($r === null) {
- $this->counter += ($this->mbstring_overload ? mb_strlen($this->value,'latin1'): strlen($this->value));
+ $this->counter += strlen($this->value);
$this->line += substr_count($this->value, "\n");
// accept this token
return true;
@@ -230,119 +259,125 @@ class Smarty_Internal_Configfilelexer
// process this token in the new state
return $this->yylex();
} elseif ($r === false) {
- $this->counter += ($this->mbstring_overload ? mb_strlen($this->value,'latin1'): strlen($this->value));
+ $this->counter += strlen($this->value);
$this->line += substr_count($this->value, "\n");
- if ($this->counter >= ($this->mbstring_overload ? mb_strlen($this->data,'latin1'): strlen($this->data))) {
+ if ($this->counter >= strlen($this->data)) {
return false; // end of input
}
// skip this token
continue;
- } } else {
+ }
+ } else {
throw new Exception('Unexpected input at line' . $this->line .
- ': ' . $this->data[$this->counter]);
+ ': ' . $this->data[$this->counter]);
}
break;
} while (true);
-
} // end function
-
const VALUE = 2;
+
function yy_r2_1($yy_subpatterns)
{
- return false;
+ return false;
}
+
function yy_r2_2($yy_subpatterns)
{
- $this->token = Smarty_Internal_Configfileparser::TPC_FLOAT;
- $this->yypopstate();
+ $this->token = Smarty_Internal_Configfileparser::TPC_FLOAT;
+ $this->yypopstate();
}
+
function yy_r2_3($yy_subpatterns)
{
- $this->token = Smarty_Internal_Configfileparser::TPC_INT;
- $this->yypopstate();
+ $this->token = Smarty_Internal_Configfileparser::TPC_INT;
+ $this->yypopstate();
}
+
function yy_r2_4($yy_subpatterns)
{
- $this->token = Smarty_Internal_Configfileparser::TPC_TRIPPLE_QUOTES;
- $this->yypushstate(self::TRIPPLE);
+ $this->token = Smarty_Internal_Configfileparser::TPC_TRIPPLE_QUOTES;
+ $this->yypushstate(self::TRIPPLE);
}
+
function yy_r2_5($yy_subpatterns)
{
- $this->token = Smarty_Internal_Configfileparser::TPC_SINGLE_QUOTED_STRING;
- $this->yypopstate();
+ $this->token = Smarty_Internal_Configfileparser::TPC_SINGLE_QUOTED_STRING;
+ $this->yypopstate();
}
+
function yy_r2_6($yy_subpatterns)
{
- $this->token = Smarty_Internal_Configfileparser::TPC_DOUBLE_QUOTED_STRING;
- $this->yypopstate();
+ $this->token = Smarty_Internal_Configfileparser::TPC_DOUBLE_QUOTED_STRING;
+ $this->yypopstate();
}
+
function yy_r2_7($yy_subpatterns)
{
- if (!$this->smarty->config_booleanize || !in_array(strtolower($this->value), Array("true", "false", "on", "off", "yes", "no")) ) {
- $this->yypopstate();
- $this->yypushstate(self::NAKED_STRING_VALUE);
- return true; //reprocess in new state
- } else {
- $this->token = Smarty_Internal_Configfileparser::TPC_BOOL;
- $this->yypopstate();
- }
+ if (!$this->smarty->config_booleanize || !in_array(strtolower($this->value), Array("true", "false", "on", "off", "yes", "no"))) {
+ $this->yypopstate();
+ $this->yypushstate(self::NAKED_STRING_VALUE);
+ return true; //reprocess in new state
+ } else {
+ $this->token = Smarty_Internal_Configfileparser::TPC_BOOL;
+ $this->yypopstate();
+ }
}
+
function yy_r2_8($yy_subpatterns)
{
- $this->token = Smarty_Internal_Configfileparser::TPC_NAKED_STRING;
- $this->yypopstate();
+ $this->token = Smarty_Internal_Configfileparser::TPC_NAKED_STRING;
+ $this->yypopstate();
}
+
function yy_r2_9($yy_subpatterns)
{
- $this->token = Smarty_Internal_Configfileparser::TPC_NAKED_STRING;
- $this->value = "";
- $this->yypopstate();
+ $this->token = Smarty_Internal_Configfileparser::TPC_NAKED_STRING;
+ $this->value = "";
+ $this->yypopstate();
}
-
-
- function yylex3()
+ public function yylex3()
{
- $tokenMap = array (
- 1 => 0,
- );
- if ($this->counter >= ($this->mbstring_overload ? mb_strlen($this->data,'latin1'): strlen($this->data))) {
+ $tokenMap = array(
+ 1 => 0,
+ );
+ if ($this->counter >= strlen($this->data)) {
return false; // end of input
}
$yy_global_pattern = "/\G([^\n]+?(?=[ \t\r]*\n))/iS";
do {
- if ($this->mbstring_overload ? preg_match($yy_global_pattern, mb_substr($this->data, $this->counter,2000000000,'latin1'), $yymatches) : preg_match($yy_global_pattern,$this->data, $yymatches, null, $this->counter)) {
+ if (preg_match($yy_global_pattern, $this->data, $yymatches, null, $this->counter)) {
$yysubmatches = $yymatches;
$yymatches = array_filter($yymatches, 'strlen'); // remove empty sub-patterns
if (!count($yymatches)) {
throw new Exception('Error: lexing failed because a rule matched' .
- ' an empty string. Input "' . substr($this->data,
- $this->counter, 5) . '... state NAKED_STRING_VALUE');
+ ' an empty string. Input "' . substr($this->data,
+ $this->counter, 5) . '... state NAKED_STRING_VALUE');
}
next($yymatches); // skip global match
$this->token = key($yymatches); // token number
if ($tokenMap[$this->token]) {
// extract sub-patterns for passing to lex function
$yysubmatches = array_slice($yysubmatches, $this->token + 1,
- $tokenMap[$this->token]);
+ $tokenMap[$this->token]);
} else {
$yysubmatches = array();
}
$this->value = current($yymatches); // token value
$r = $this->{'yy_r3_' . $this->token}($yysubmatches);
if ($r === null) {
- $this->counter += ($this->mbstring_overload ? mb_strlen($this->value,'latin1'): strlen($this->value));
+ $this->counter += strlen($this->value);
$this->line += substr_count($this->value, "\n");
// accept this token
return true;
@@ -351,67 +386,65 @@ class Smarty_Internal_Configfilelexer
// process this token in the new state
return $this->yylex();
} elseif ($r === false) {
- $this->counter += ($this->mbstring_overload ? mb_strlen($this->value,'latin1'): strlen($this->value));
+ $this->counter += strlen($this->value);
$this->line += substr_count($this->value, "\n");
- if ($this->counter >= ($this->mbstring_overload ? mb_strlen($this->data,'latin1'): strlen($this->data))) {
+ if ($this->counter >= strlen($this->data)) {
return false; // end of input
}
// skip this token
continue;
- } } else {
+ }
+ } else {
throw new Exception('Unexpected input at line' . $this->line .
- ': ' . $this->data[$this->counter]);
+ ': ' . $this->data[$this->counter]);
}
break;
} while (true);
-
} // end function
-
const NAKED_STRING_VALUE = 3;
+
function yy_r3_1($yy_subpatterns)
{
- $this->token = Smarty_Internal_Configfileparser::TPC_NAKED_STRING;
- $this->yypopstate();
+ $this->token = Smarty_Internal_Configfileparser::TPC_NAKED_STRING;
+ $this->yypopstate();
}
-
-
- function yylex4()
+ public function yylex4()
{
- $tokenMap = array (
- 1 => 0,
- 2 => 0,
- 3 => 0,
- );
- if ($this->counter >= ($this->mbstring_overload ? mb_strlen($this->data,'latin1'): strlen($this->data))) {
+ $tokenMap = array(
+ 1 => 0,
+ 2 => 0,
+ 3 => 0,
+ );
+ if ($this->counter >= strlen($this->data)) {
return false; // end of input
}
$yy_global_pattern = "/\G([ \t\r]+)|\G([^\n]+?(?=[ \t\r]*\n))|\G(\n)/iS";
do {
- if ($this->mbstring_overload ? preg_match($yy_global_pattern, mb_substr($this->data, $this->counter,2000000000,'latin1'), $yymatches) : preg_match($yy_global_pattern,$this->data, $yymatches, null, $this->counter)) {
+ if (preg_match($yy_global_pattern, $this->data, $yymatches, null, $this->counter)) {
$yysubmatches = $yymatches;
$yymatches = array_filter($yymatches, 'strlen'); // remove empty sub-patterns
if (!count($yymatches)) {
throw new Exception('Error: lexing failed because a rule matched' .
- ' an empty string. Input "' . substr($this->data,
- $this->counter, 5) . '... state COMMENT');
+ ' an empty string. Input "' . substr($this->data,
+ $this->counter, 5) . '... state COMMENT');
}
next($yymatches); // skip global match
$this->token = key($yymatches); // token number
if ($tokenMap[$this->token]) {
// extract sub-patterns for passing to lex function
$yysubmatches = array_slice($yysubmatches, $this->token + 1,
- $tokenMap[$this->token]);
+ $tokenMap[$this->token]);
} else {
$yysubmatches = array();
}
$this->value = current($yymatches); // token value
$r = $this->{'yy_r4_' . $this->token}($yysubmatches);
if ($r === null) {
- $this->counter += ($this->mbstring_overload ? mb_strlen($this->value,'latin1'): strlen($this->value));
+ $this->counter += strlen($this->value);
$this->line += substr_count($this->value, "\n");
// accept this token
return true;
@@ -420,76 +453,76 @@ class Smarty_Internal_Configfilelexer
// process this token in the new state
return $this->yylex();
} elseif ($r === false) {
- $this->counter += ($this->mbstring_overload ? mb_strlen($this->value,'latin1'): strlen($this->value));
+ $this->counter += strlen($this->value);
$this->line += substr_count($this->value, "\n");
- if ($this->counter >= ($this->mbstring_overload ? mb_strlen($this->data,'latin1'): strlen($this->data))) {
+ if ($this->counter >= strlen($this->data)) {
return false; // end of input
}
// skip this token
continue;
- } } else {
+ }
+ } else {
throw new Exception('Unexpected input at line' . $this->line .
- ': ' . $this->data[$this->counter]);
+ ': ' . $this->data[$this->counter]);
}
break;
} while (true);
-
} // end function
-
const COMMENT = 4;
+
function yy_r4_1($yy_subpatterns)
{
- return false;
+ return false;
}
+
function yy_r4_2($yy_subpatterns)
{
- $this->token = Smarty_Internal_Configfileparser::TPC_NAKED_STRING;
+ $this->token = Smarty_Internal_Configfileparser::TPC_NAKED_STRING;
}
+
function yy_r4_3($yy_subpatterns)
{
- $this->token = Smarty_Internal_Configfileparser::TPC_NEWLINE;
- $this->yypopstate();
+ $this->token = Smarty_Internal_Configfileparser::TPC_NEWLINE;
+ $this->yypopstate();
}
-
-
- function yylex5()
+ public function yylex5()
{
- $tokenMap = array (
- 1 => 0,
- 2 => 0,
- );
- if ($this->counter >= ($this->mbstring_overload ? mb_strlen($this->data,'latin1'): strlen($this->data))) {
+ $tokenMap = array(
+ 1 => 0,
+ 2 => 0,
+ );
+ if ($this->counter >= strlen($this->data)) {
return false; // end of input
}
$yy_global_pattern = "/\G(\\.)|\G(.*?(?=[\.=[\]\r\n]))/iS";
do {
- if ($this->mbstring_overload ? preg_match($yy_global_pattern, mb_substr($this->data, $this->counter,2000000000,'latin1'), $yymatches) : preg_match($yy_global_pattern,$this->data, $yymatches, null, $this->counter)) {
+ if (preg_match($yy_global_pattern, $this->data, $yymatches, null, $this->counter)) {
$yysubmatches = $yymatches;
$yymatches = array_filter($yymatches, 'strlen'); // remove empty sub-patterns
if (!count($yymatches)) {
throw new Exception('Error: lexing failed because a rule matched' .
- ' an empty string. Input "' . substr($this->data,
- $this->counter, 5) . '... state SECTION');
+ ' an empty string. Input "' . substr($this->data,
+ $this->counter, 5) . '... state SECTION');
}
next($yymatches); // skip global match
$this->token = key($yymatches); // token number
if ($tokenMap[$this->token]) {
// extract sub-patterns for passing to lex function
$yysubmatches = array_slice($yysubmatches, $this->token + 1,
- $tokenMap[$this->token]);
+ $tokenMap[$this->token]);
} else {
$yysubmatches = array();
}
$this->value = current($yymatches); // token value
$r = $this->{'yy_r5_' . $this->token}($yysubmatches);
if ($r === null) {
- $this->counter += ($this->mbstring_overload ? mb_strlen($this->value,'latin1'): strlen($this->value));
+ $this->counter += strlen($this->value);
$this->line += substr_count($this->value, "\n");
// accept this token
return true;
@@ -498,70 +531,70 @@ class Smarty_Internal_Configfilelexer
// process this token in the new state
return $this->yylex();
} elseif ($r === false) {
- $this->counter += ($this->mbstring_overload ? mb_strlen($this->value,'latin1'): strlen($this->value));
+ $this->counter += strlen($this->value);
$this->line += substr_count($this->value, "\n");
- if ($this->counter >= ($this->mbstring_overload ? mb_strlen($this->data,'latin1'): strlen($this->data))) {
+ if ($this->counter >= strlen($this->data)) {
return false; // end of input
}
// skip this token
continue;
- } } else {
+ }
+ } else {
throw new Exception('Unexpected input at line' . $this->line .
- ': ' . $this->data[$this->counter]);
+ ': ' . $this->data[$this->counter]);
}
break;
} while (true);
-
} // end function
-
const SECTION = 5;
+
function yy_r5_1($yy_subpatterns)
{
- $this->token = Smarty_Internal_Configfileparser::TPC_DOT;
+ $this->token = Smarty_Internal_Configfileparser::TPC_DOT;
}
+
function yy_r5_2($yy_subpatterns)
{
- $this->token = Smarty_Internal_Configfileparser::TPC_SECTION;
- $this->yypopstate();
+ $this->token = Smarty_Internal_Configfileparser::TPC_SECTION;
+ $this->yypopstate();
}
-
- function yylex6()
+ public function yylex6()
{
- $tokenMap = array (
- 1 => 0,
- 2 => 0,
- );
- if ($this->counter >= ($this->mbstring_overload ? mb_strlen($this->data,'latin1'): strlen($this->data))) {
+ $tokenMap = array(
+ 1 => 0,
+ 2 => 0,
+ );
+ if ($this->counter >= strlen($this->data)) {
return false; // end of input
}
$yy_global_pattern = "/\G(\"\"\"(?=[ \t\r]*[\n#;]))|\G([\S\s])/iS";
do {
- if ($this->mbstring_overload ? preg_match($yy_global_pattern, mb_substr($this->data, $this->counter,2000000000,'latin1'), $yymatches) : preg_match($yy_global_pattern,$this->data, $yymatches, null, $this->counter)) {
+ if (preg_match($yy_global_pattern, $this->data, $yymatches, null, $this->counter)) {
$yysubmatches = $yymatches;
$yymatches = array_filter($yymatches, 'strlen'); // remove empty sub-patterns
if (!count($yymatches)) {
throw new Exception('Error: lexing failed because a rule matched' .
- ' an empty string. Input "' . substr($this->data,
- $this->counter, 5) . '... state TRIPPLE');
+ ' an empty string. Input "' . substr($this->data,
+ $this->counter, 5) . '... state TRIPPLE');
}
next($yymatches); // skip global match
$this->token = key($yymatches); // token number
if ($tokenMap[$this->token]) {
// extract sub-patterns for passing to lex function
$yysubmatches = array_slice($yysubmatches, $this->token + 1,
- $tokenMap[$this->token]);
+ $tokenMap[$this->token]);
} else {
$yysubmatches = array();
}
$this->value = current($yymatches); // token value
$r = $this->{'yy_r6_' . $this->token}($yysubmatches);
if ($r === null) {
- $this->counter += ($this->mbstring_overload ? mb_strlen($this->value,'latin1'): strlen($this->value));
+ $this->counter += strlen($this->value);
$this->line += substr_count($this->value, "\n");
// accept this token
return true;
@@ -570,53 +603,44 @@ class Smarty_Internal_Configfilelexer
// process this token in the new state
return $this->yylex();
} elseif ($r === false) {
- $this->counter += ($this->mbstring_overload ? mb_strlen($this->value,'latin1'): strlen($this->value));
+ $this->counter += strlen($this->value);
$this->line += substr_count($this->value, "\n");
- if ($this->counter >= ($this->mbstring_overload ? mb_strlen($this->data,'latin1'): strlen($this->data))) {
+ if ($this->counter >= strlen($this->data)) {
return false; // end of input
}
// skip this token
continue;
- } } else {
+ }
+ } else {
throw new Exception('Unexpected input at line' . $this->line .
- ': ' . $this->data[$this->counter]);
+ ': ' . $this->data[$this->counter]);
}
break;
} while (true);
-
} // end function
-
const TRIPPLE = 6;
+
function yy_r6_1($yy_subpatterns)
{
- $this->token = Smarty_Internal_Configfileparser::TPC_TRIPPLE_QUOTES_END;
- $this->yypopstate();
- $this->yypushstate(self::START);
+ $this->token = Smarty_Internal_Configfileparser::TPC_TRIPPLE_QUOTES_END;
+ $this->yypopstate();
+ $this->yypushstate(self::START);
}
+
function yy_r6_2($yy_subpatterns)
{
- if ($this->mbstring_overload) {
- $to = mb_strlen($this->data,'latin1');
- } else {
- $to = strlen($this->data);
- }
- preg_match("/\"\"\"[ \t\r]*[\n#;]/",$this->data,$match,PREG_OFFSET_CAPTURE,$this->counter);
- if (isset($match[0][1])) {
- $to = $match[0][1];
- } else {
- $this->compiler->trigger_template_error ("missing or misspelled literal closing tag");
- }
- if ($this->mbstring_overload) {
- $this->value = mb_substr($this->data,$this->counter,$to-$this->counter,'latin1');
- } else {
- $this->value = substr($this->data,$this->counter,$to-$this->counter);
- }
- $this->token = Smarty_Internal_Configfileparser::TPC_TRIPPLE_TEXT;
+ $to = strlen($this->data);
+ preg_match("/\"\"\"[ \t\r]*[\n#;]/", $this->data, $match, PREG_OFFSET_CAPTURE, $this->counter);
+ if (isset($match[0][1])) {
+ $to = $match[0][1];
+ } else {
+ $this->compiler->trigger_template_error("missing or misspelled literal closing tag");
+ }
+ $this->value = substr($this->data, $this->counter, $to - $this->counter);
+ $this->token = Smarty_Internal_Configfileparser::TPC_TRIPPLE_TEXT;
}
-
-
}
-?> \ No newline at end of file
+
diff --git a/library/Smarty/libs/sysplugins/smarty_internal_configfileparser.php b/library/Smarty/libs/sysplugins/smarty_internal_configfileparser.php
index 784bc684d..fc476ce0a 100644
--- a/library/Smarty/libs/sysplugins/smarty_internal_configfileparser.php
+++ b/library/Smarty/libs/sysplugins/smarty_internal_configfileparser.php
@@ -1,20 +1,20 @@
<?php
-/**
-* Smarty Internal Plugin Configfileparser
-*
-* This is the config file parser.
-* It is generated from the internal.configfileparser.y file
-* @package Smarty
-* @subpackage Compiler
-* @author Uwe Tews
-*/
+/**
+ * Smarty Internal Plugin Configfileparser
+ * This is the config file parser.
+ * It is generated from the internal.configfileparser.y file
+ *
+ * @package Smarty
+ * @subpackage Compiler
+ * @author Uwe Tews
+ */
class TPC_yyToken implements ArrayAccess
{
public $string = '';
public $metadata = array();
- function __construct($s, $m = array())
+ public function __construct($s, $m = array())
{
if ($s instanceof TPC_yyToken) {
$this->string = $s->string;
@@ -29,28 +29,29 @@ class TPC_yyToken implements ArrayAccess
}
}
- function __toString()
+ public function __toString()
{
return $this->_string;
}
- function offsetExists($offset)
+ public function offsetExists($offset)
{
return isset($this->metadata[$offset]);
}
- function offsetGet($offset)
+ public function offsetGet($offset)
{
return $this->metadata[$offset];
}
- function offsetSet($offset, $value)
+ public function offsetSet($offset, $value)
{
if ($offset === null) {
if (isset($value[0])) {
$x = ($value instanceof TPC_yyToken) ?
$value->metadata : $value;
$this->metadata = array_merge($this->metadata, $x);
+
return;
}
$offset = count($this->metadata);
@@ -67,7 +68,7 @@ class TPC_yyToken implements ArrayAccess
}
}
- function offsetUnset($offset)
+ public function offsetUnset($offset)
{
unset($this->metadata[$offset]);
}
@@ -75,18 +76,19 @@ class TPC_yyToken implements ArrayAccess
class TPC_yyStackEntry
{
- public $stateno; /* The state-number */
- public $major; /* The major token value. This is the code
+ public $stateno; /* The state-number */
+ public $major; /* The major token value. This is the code
** number for the token at this stack level */
public $minor; /* The user-supplied minor token value. This
** is the value of the token */
-};
+}
+;
#line 12 "smarty_internal_configfileparser.y"
-class Smarty_Internal_Configfileparser#line 79 "smarty_internal_configfileparser.php"
+class Smarty_Internal_Configfileparser #line 80 "smarty_internal_configfileparser.php"
{
-#line 14 "smarty_internal_configfileparser.y"
+ #line 14 "smarty_internal_configfileparser.y"
// states whether the parse was successful or not
public $successful = true;
@@ -94,23 +96,27 @@ class Smarty_Internal_Configfileparser#line 79 "smarty_internal_configfileparser
private $lex;
private $internalError = false;
- function __construct($lex, $compiler) {
+ function __construct($lex, $compiler)
+ {
// set instance object
self::instance($this);
$this->lex = $lex;
$this->smarty = $compiler->smarty;
$this->compiler = $compiler;
}
+
public static function &instance($new_instance = null)
{
static $instance = null;
- if (isset($new_instance) && is_object($new_instance))
+ if (isset($new_instance) && is_object($new_instance)) {
$instance = $new_instance;
+ }
return $instance;
}
- private function parse_bool($str) {
- if (in_array(strtolower($str) ,array('on','yes','true'))) {
+ private function parse_bool($str)
+ {
+ if (in_array(strtolower($str), array('on', 'yes', 'true'))) {
$res = true;
} else {
$res = false;
@@ -119,11 +125,13 @@ class Smarty_Internal_Configfileparser#line 79 "smarty_internal_configfileparser
}
private static $escapes_single = Array('\\' => '\\',
- '\'' => '\'');
- private static function parse_single_quoted_string($qstr) {
- $escaped_string = substr($qstr, 1, strlen($qstr)-2); //remove outer quotes
+ '\'' => '\'');
+
+ private static function parse_single_quoted_string($qstr)
+ {
+ $escaped_string = substr($qstr, 1, strlen($qstr) - 2); //remove outer quotes
- $ss = preg_split('/(\\\\.)/', $escaped_string, -1, PREG_SPLIT_DELIM_CAPTURE);
+ $ss = preg_split('/(\\\\.)/', $escaped_string, - 1, PREG_SPLIT_DELIM_CAPTURE);
$str = "";
foreach ($ss as $s) {
@@ -131,24 +139,27 @@ class Smarty_Internal_Configfileparser#line 79 "smarty_internal_configfileparser
if (isset(self::$escapes_single[$s[1]])) {
$s = self::$escapes_single[$s[1]];
}
- }
+ }
- $str .= $s;
+ $str .= $s;
}
return $str;
}
- private static function parse_double_quoted_string($qstr) {
- $inner_str = substr($qstr, 1, strlen($qstr)-2);
+ private static function parse_double_quoted_string($qstr)
+ {
+ $inner_str = substr($qstr, 1, strlen($qstr) - 2);
return stripcslashes($inner_str);
}
- private static function parse_tripple_double_quoted_string($qstr) {
+ private static function parse_tripple_double_quoted_string($qstr)
+ {
return stripcslashes($qstr);
}
- private function set_var(Array $var, Array &$target_array) {
+ private function set_var(Array $var, Array &$target_array)
+ {
$key = $var["key"];
$value = $var["value"];
@@ -160,16 +171,18 @@ class Smarty_Internal_Configfileparser#line 79 "smarty_internal_configfileparser
}
}
- private function add_global_vars(Array $vars) {
+ private function add_global_vars(Array $vars)
+ {
if (!isset($this->compiler->config_data['vars'])) {
- $this->compiler->config_data['vars'] = Array();
+ $this->compiler->config_data['vars'] = Array();
}
foreach ($vars as $var) {
$this->set_var($var, $this->compiler->config_data);
}
}
- private function add_section_vars($section_name, Array $vars) {
+ private function add_section_vars($section_name, Array $vars)
+ {
if (!isset($this->compiler->config_data['sections'][$section_name]['vars'])) {
$this->compiler->config_data['sections'][$section_name]['vars'] = Array();
}
@@ -177,99 +190,152 @@ class Smarty_Internal_Configfileparser#line 79 "smarty_internal_configfileparser
$this->set_var($var, $this->compiler->config_data['sections'][$section_name]);
}
}
-#line 173 "smarty_internal_configfileparser.php"
-
- const TPC_OPENB = 1;
- const TPC_SECTION = 2;
- const TPC_CLOSEB = 3;
- const TPC_DOT = 4;
- const TPC_ID = 5;
- const TPC_EQUAL = 6;
- const TPC_FLOAT = 7;
- const TPC_INT = 8;
- const TPC_BOOL = 9;
- const TPC_SINGLE_QUOTED_STRING = 10;
- const TPC_DOUBLE_QUOTED_STRING = 11;
- const TPC_TRIPPLE_QUOTES = 12;
- const TPC_TRIPPLE_TEXT = 13;
- const TPC_TRIPPLE_QUOTES_END = 14;
- const TPC_NAKED_STRING = 15;
- const TPC_OTHER = 16;
- const TPC_NEWLINE = 17;
- const TPC_COMMENTSTART = 18;
+
+ #line 174 "smarty_internal_configfileparser.php"
+
+ const TPC_OPENB = 1;
+ const TPC_SECTION = 2;
+ const TPC_CLOSEB = 3;
+ const TPC_DOT = 4;
+ const TPC_ID = 5;
+ const TPC_EQUAL = 6;
+ const TPC_FLOAT = 7;
+ const TPC_INT = 8;
+ const TPC_BOOL = 9;
+ const TPC_SINGLE_QUOTED_STRING = 10;
+ const TPC_DOUBLE_QUOTED_STRING = 11;
+ const TPC_TRIPPLE_QUOTES = 12;
+ const TPC_TRIPPLE_TEXT = 13;
+ const TPC_TRIPPLE_QUOTES_END = 14;
+ const TPC_NAKED_STRING = 15;
+ const TPC_OTHER = 16;
+ const TPC_NEWLINE = 17;
+ const TPC_COMMENTSTART = 18;
const YY_NO_ACTION = 60;
const YY_ACCEPT_ACTION = 59;
const YY_ERROR_ACTION = 58;
const YY_SZ_ACTTAB = 38;
-static public $yy_action = array(
- /* 0 */ 29, 30, 34, 33, 24, 13, 19, 25, 35, 21,
- /* 10 */ 59, 8, 3, 1, 20, 12, 14, 31, 20, 12,
- /* 20 */ 15, 17, 23, 18, 27, 26, 4, 5, 6, 32,
- /* 30 */ 2, 11, 28, 22, 16, 9, 7, 10,
+ static public $yy_action = array(
+ /* 0 */
+ 29, 30, 34, 33, 24, 13, 19, 25, 35, 21,
+ /* 10 */
+ 59, 8, 3, 1, 20, 12, 14, 31, 20, 12,
+ /* 20 */
+ 15, 17, 23, 18, 27, 26, 4, 5, 6, 32,
+ /* 30 */
+ 2, 11, 28, 22, 16, 9, 7, 10,
);
static public $yy_lookahead = array(
- /* 0 */ 7, 8, 9, 10, 11, 12, 5, 27, 15, 16,
- /* 10 */ 20, 21, 23, 23, 17, 18, 13, 14, 17, 18,
- /* 20 */ 15, 2, 17, 4, 25, 26, 6, 3, 3, 14,
- /* 30 */ 23, 1, 24, 17, 2, 25, 22, 25,
-);
- const YY_SHIFT_USE_DFLT = -8;
+ /* 0 */
+ 7, 8, 9, 10, 11, 12, 5, 27, 15, 16,
+ /* 10 */
+ 20, 21, 23, 23, 17, 18, 13, 14, 17, 18,
+ /* 20 */
+ 15, 2, 17, 4, 25, 26, 6, 3, 3, 14,
+ /* 30 */
+ 23, 1, 24, 17, 2, 25, 22, 25,
+ );
+ const YY_SHIFT_USE_DFLT = - 8;
const YY_SHIFT_MAX = 19;
static public $yy_shift_ofst = array(
- /* 0 */ -8, 1, 1, 1, -7, -3, -3, 30, -8, -8,
- /* 10 */ -8, 19, 5, 3, 15, 16, 24, 25, 32, 20,
-);
- const YY_REDUCE_USE_DFLT = -21;
+ /* 0 */
+ - 8, 1, 1, 1, - 7, - 3, - 3, 30, - 8, - 8,
+ /* 10 */
+ - 8, 19, 5, 3, 15, 16, 24, 25, 32, 20,
+ );
+ const YY_REDUCE_USE_DFLT = - 21;
const YY_REDUCE_MAX = 10;
static public $yy_reduce_ofst = array(
- /* 0 */ -10, -1, -1, -1, -20, 10, 12, 8, 14, 7,
- /* 10 */ -11,
-);
+ /* 0 */
+ - 10, - 1, - 1, - 1, - 20, 10, 12, 8, 14, 7,
+ /* 10 */
+ - 11,
+ );
static public $yyExpectedTokens = array(
- /* 0 */ array(),
- /* 1 */ array(5, 17, 18, ),
- /* 2 */ array(5, 17, 18, ),
- /* 3 */ array(5, 17, 18, ),
- /* 4 */ array(7, 8, 9, 10, 11, 12, 15, 16, ),
- /* 5 */ array(17, 18, ),
- /* 6 */ array(17, 18, ),
- /* 7 */ array(1, ),
- /* 8 */ array(),
- /* 9 */ array(),
- /* 10 */ array(),
- /* 11 */ array(2, 4, ),
- /* 12 */ array(15, 17, ),
- /* 13 */ array(13, 14, ),
- /* 14 */ array(14, ),
- /* 15 */ array(17, ),
- /* 16 */ array(3, ),
- /* 17 */ array(3, ),
- /* 18 */ array(2, ),
- /* 19 */ array(6, ),
- /* 20 */ array(),
- /* 21 */ array(),
- /* 22 */ array(),
- /* 23 */ array(),
- /* 24 */ array(),
- /* 25 */ array(),
- /* 26 */ array(),
- /* 27 */ array(),
- /* 28 */ array(),
- /* 29 */ array(),
- /* 30 */ array(),
- /* 31 */ array(),
- /* 32 */ array(),
- /* 33 */ array(),
- /* 34 */ array(),
- /* 35 */ array(),
-);
+ /* 0 */
+ array(),
+ /* 1 */
+ array(5, 17, 18,),
+ /* 2 */
+ array(5, 17, 18,),
+ /* 3 */
+ array(5, 17, 18,),
+ /* 4 */
+ array(7, 8, 9, 10, 11, 12, 15, 16,),
+ /* 5 */
+ array(17, 18,),
+ /* 6 */
+ array(17, 18,),
+ /* 7 */
+ array(1,),
+ /* 8 */
+ array(),
+ /* 9 */
+ array(),
+ /* 10 */
+ array(),
+ /* 11 */
+ array(2, 4,),
+ /* 12 */
+ array(15, 17,),
+ /* 13 */
+ array(13, 14,),
+ /* 14 */
+ array(14,),
+ /* 15 */
+ array(17,),
+ /* 16 */
+ array(3,),
+ /* 17 */
+ array(3,),
+ /* 18 */
+ array(2,),
+ /* 19 */
+ array(6,),
+ /* 20 */
+ array(),
+ /* 21 */
+ array(),
+ /* 22 */
+ array(),
+ /* 23 */
+ array(),
+ /* 24 */
+ array(),
+ /* 25 */
+ array(),
+ /* 26 */
+ array(),
+ /* 27 */
+ array(),
+ /* 28 */
+ array(),
+ /* 29 */
+ array(),
+ /* 30 */
+ array(),
+ /* 31 */
+ array(),
+ /* 32 */
+ array(),
+ /* 33 */
+ array(),
+ /* 34 */
+ array(),
+ /* 35 */
+ array(),
+ );
static public $yy_default = array(
- /* 0 */ 44, 37, 41, 40, 58, 58, 58, 36, 39, 44,
- /* 10 */ 44, 58, 58, 58, 58, 58, 58, 58, 58, 58,
- /* 20 */ 55, 54, 57, 56, 50, 45, 43, 42, 38, 46,
- /* 30 */ 47, 52, 51, 49, 48, 53,
-);
+ /* 0 */
+ 44, 37, 41, 40, 58, 58, 58, 36, 39, 44,
+ /* 10 */
+ 44, 58, 58, 58, 58, 58, 58, 58, 58, 58,
+ /* 20 */
+ 55, 54, 57, 56, 50, 45, 43, 42, 38, 46,
+ /* 30 */
+ 47, 52, 51, 49, 48, 53,
+ );
const YYNOCODE = 29;
const YYSTACKDEPTH = 100;
const YYNSTATE = 36;
@@ -277,67 +343,89 @@ static public $yy_action = array(
const YYERRORSYMBOL = 19;
const YYERRSYMDT = 'yy0';
const YYFALLBACK = 0;
- static public $yyFallback = array(
- );
- static function Trace($TraceFILE, $zTracePrompt)
+ public static $yyFallback = array();
+
+ public function Trace($TraceFILE, $zTracePrompt)
{
if (!$TraceFILE) {
$zTracePrompt = 0;
} elseif (!$zTracePrompt) {
$TraceFILE = 0;
}
- self::$yyTraceFILE = $TraceFILE;
- self::$yyTracePrompt = $zTracePrompt;
+ $this->yyTraceFILE = $TraceFILE;
+ $this->yyTracePrompt = $zTracePrompt;
}
- static function PrintTrace()
+ public function PrintTrace()
{
- self::$yyTraceFILE = fopen('php://output', 'w');
- self::$yyTracePrompt = '<br>';
+ $this->yyTraceFILE = fopen('php://output', 'w');
+ $this->yyTracePrompt = '<br>';
}
- static public $yyTraceFILE;
- static public $yyTracePrompt;
- public $yyidx; /* Index of top element in stack */
- public $yyerrcnt; /* Shifts left before out of the error */
- public $yystack = array(); /* The parser's stack */
+ public $yyTraceFILE;
+ public $yyTracePrompt;
+ public $yyidx; /* Index of top element in stack */
+ public $yyerrcnt; /* Shifts left before out of the error */
+ public $yystack = array(); /* The parser's stack */
public $yyTokenName = array(
- '$', 'OPENB', 'SECTION', 'CLOSEB',
- 'DOT', 'ID', 'EQUAL', 'FLOAT',
- 'INT', 'BOOL', 'SINGLE_QUOTED_STRING', 'DOUBLE_QUOTED_STRING',
- 'TRIPPLE_QUOTES', 'TRIPPLE_TEXT', 'TRIPPLE_QUOTES_END', 'NAKED_STRING',
- 'OTHER', 'NEWLINE', 'COMMENTSTART', 'error',
- 'start', 'global_vars', 'sections', 'var_list',
- 'section', 'newline', 'var', 'value',
+ '$', 'OPENB', 'SECTION', 'CLOSEB',
+ 'DOT', 'ID', 'EQUAL', 'FLOAT',
+ 'INT', 'BOOL', 'SINGLE_QUOTED_STRING', 'DOUBLE_QUOTED_STRING',
+ 'TRIPPLE_QUOTES', 'TRIPPLE_TEXT', 'TRIPPLE_QUOTES_END', 'NAKED_STRING',
+ 'OTHER', 'NEWLINE', 'COMMENTSTART', 'error',
+ 'start', 'global_vars', 'sections', 'var_list',
+ 'section', 'newline', 'var', 'value',
);
- static public $yyRuleName = array(
- /* 0 */ "start ::= global_vars sections",
- /* 1 */ "global_vars ::= var_list",
- /* 2 */ "sections ::= sections section",
- /* 3 */ "sections ::=",
- /* 4 */ "section ::= OPENB SECTION CLOSEB newline var_list",
- /* 5 */ "section ::= OPENB DOT SECTION CLOSEB newline var_list",
- /* 6 */ "var_list ::= var_list newline",
- /* 7 */ "var_list ::= var_list var",
- /* 8 */ "var_list ::=",
- /* 9 */ "var ::= ID EQUAL value",
- /* 10 */ "value ::= FLOAT",
- /* 11 */ "value ::= INT",
- /* 12 */ "value ::= BOOL",
- /* 13 */ "value ::= SINGLE_QUOTED_STRING",
- /* 14 */ "value ::= DOUBLE_QUOTED_STRING",
- /* 15 */ "value ::= TRIPPLE_QUOTES TRIPPLE_TEXT TRIPPLE_QUOTES_END",
- /* 16 */ "value ::= TRIPPLE_QUOTES TRIPPLE_QUOTES_END",
- /* 17 */ "value ::= NAKED_STRING",
- /* 18 */ "value ::= OTHER",
- /* 19 */ "newline ::= NEWLINE",
- /* 20 */ "newline ::= COMMENTSTART NEWLINE",
- /* 21 */ "newline ::= COMMENTSTART NAKED_STRING NEWLINE",
+ public static $yyRuleName = array(
+ /* 0 */
+ "start ::= global_vars sections",
+ /* 1 */
+ "global_vars ::= var_list",
+ /* 2 */
+ "sections ::= sections section",
+ /* 3 */
+ "sections ::=",
+ /* 4 */
+ "section ::= OPENB SECTION CLOSEB newline var_list",
+ /* 5 */
+ "section ::= OPENB DOT SECTION CLOSEB newline var_list",
+ /* 6 */
+ "var_list ::= var_list newline",
+ /* 7 */
+ "var_list ::= var_list var",
+ /* 8 */
+ "var_list ::=",
+ /* 9 */
+ "var ::= ID EQUAL value",
+ /* 10 */
+ "value ::= FLOAT",
+ /* 11 */
+ "value ::= INT",
+ /* 12 */
+ "value ::= BOOL",
+ /* 13 */
+ "value ::= SINGLE_QUOTED_STRING",
+ /* 14 */
+ "value ::= DOUBLE_QUOTED_STRING",
+ /* 15 */
+ "value ::= TRIPPLE_QUOTES TRIPPLE_TEXT TRIPPLE_QUOTES_END",
+ /* 16 */
+ "value ::= TRIPPLE_QUOTES TRIPPLE_QUOTES_END",
+ /* 17 */
+ "value ::= NAKED_STRING",
+ /* 18 */
+ "value ::= OTHER",
+ /* 19 */
+ "newline ::= NEWLINE",
+ /* 20 */
+ "newline ::= COMMENTSTART NEWLINE",
+ /* 21 */
+ "newline ::= COMMENTSTART NAKED_STRING NEWLINE",
);
- function tokenName($tokenType)
+ public function tokenName($tokenType)
{
if ($tokenType === 0) {
return 'End of Input';
@@ -349,41 +437,43 @@ static public $yy_action = array(
}
}
- static function yy_destructor($yymajor, $yypminor)
+ public static function yy_destructor($yymajor, $yypminor)
{
switch ($yymajor) {
- default: break; /* If no destructor action specified: do nothing */
+ default:
+ break; /* If no destructor action specified: do nothing */
}
}
- function yy_pop_parser_stack()
+ public function yy_pop_parser_stack()
{
if (!count($this->yystack)) {
return;
}
$yytos = array_pop($this->yystack);
- if (self::$yyTraceFILE && $this->yyidx >= 0) {
- fwrite(self::$yyTraceFILE,
- self::$yyTracePrompt . 'Popping ' . $this->yyTokenName[$yytos->major] .
- "\n");
+ if ($this->yyTraceFILE && $this->yyidx >= 0) {
+ fwrite($this->yyTraceFILE,
+ $this->yyTracePrompt . 'Popping ' . $this->yyTokenName[$yytos->major] .
+ "\n");
}
$yymajor = $yytos->major;
self::yy_destructor($yymajor, $yytos->minor);
- $this->yyidx--;
+ $this->yyidx --;
+
return $yymajor;
}
- function __destruct()
+ public function __destruct()
{
while ($this->yystack !== Array()) {
$this->yy_pop_parser_stack();
}
- if (is_resource(self::$yyTraceFILE)) {
- fclose(self::$yyTraceFILE);
+ if (is_resource($this->yyTraceFILE)) {
+ fclose($this->yyTraceFILE);
}
}
- function yy_get_expected_tokens($token)
+ public function yy_get_expected_tokens($token)
{
$state = $this->yystack[$this->yyidx]->stateno;
$expected = self::$yyExpectedTokens[$state];
@@ -398,7 +488,7 @@ static public $yy_action = array(
// reduce action
$done = 0;
do {
- if ($done++ == 100) {
+ if ($done ++ == 100) {
$this->yyidx = $yyidx;
$this->yystack = $stack;
// too much recursion prevents proper detection
@@ -411,17 +501,18 @@ static public $yy_action = array(
$this->yystack[$this->yyidx]->stateno,
self::$yyRuleInfo[$yyruleno]['lhs']);
if (isset(self::$yyExpectedTokens[$nextstate])) {
- $expected = array_merge($expected, self::$yyExpectedTokens[$nextstate]);
- if (in_array($token,
- self::$yyExpectedTokens[$nextstate], true)) {
+ $expected = array_merge($expected, self::$yyExpectedTokens[$nextstate]);
+ if (in_array($token,
+ self::$yyExpectedTokens[$nextstate], true)) {
$this->yyidx = $yyidx;
$this->yystack = $stack;
+
return array_unique($expected);
}
}
if ($nextstate < self::YYNSTATE) {
// we need to shift a non-terminal
- $this->yyidx++;
+ $this->yyidx ++;
$x = new TPC_yyStackEntry;
$x->stateno = $nextstate;
$x->major = self::$yyRuleInfo[$yyruleno]['lhs'];
@@ -446,12 +537,13 @@ static public $yy_action = array(
}
break;
} while (true);
- $this->yyidx = $yyidx;
- $this->yystack = $stack;
+ $this->yyidx = $yyidx;
+ $this->yystack = $stack;
+
return array_unique($expected);
}
- function yy_is_expected_token($token)
+ public function yy_is_expected_token($token)
{
if ($token === 0) {
return true; // 0 is not part of this
@@ -468,7 +560,7 @@ static public $yy_action = array(
// reduce action
$done = 0;
do {
- if ($done++ == 100) {
+ if ($done ++ == 100) {
$this->yyidx = $yyidx;
$this->yystack = $stack;
// too much recursion prevents proper detection
@@ -481,14 +573,16 @@ static public $yy_action = array(
$this->yystack[$this->yyidx]->stateno,
self::$yyRuleInfo[$yyruleno]['lhs']);
if (isset(self::$yyExpectedTokens[$nextstate]) &&
- in_array($token, self::$yyExpectedTokens[$nextstate], true)) {
+ in_array($token, self::$yyExpectedTokens[$nextstate], true)
+ ) {
$this->yyidx = $yyidx;
$this->yystack = $stack;
+
return true;
}
if ($nextstate < self::YYNSTATE) {
// we need to shift a non-terminal
- $this->yyidx++;
+ $this->yyidx ++;
$x = new TPC_yyStackEntry;
$x->stateno = $nextstate;
$x->major = self::$yyRuleInfo[$yyruleno]['lhs'];
@@ -519,10 +613,11 @@ static public $yy_action = array(
} while (true);
$this->yyidx = $yyidx;
$this->yystack = $stack;
+
return true;
}
- function yy_find_shift_action($iLookAhead)
+ public function yy_find_shift_action($iLookAhead)
{
$stateno = $this->yystack[$this->yyidx]->stateno;
@@ -540,23 +635,27 @@ static public $yy_action = array(
}
$i += $iLookAhead;
if ($i < 0 || $i >= self::YY_SZ_ACTTAB ||
- self::$yy_lookahead[$i] != $iLookAhead) {
+ self::$yy_lookahead[$i] != $iLookAhead
+ ) {
if (count(self::$yyFallback) && $iLookAhead < count(self::$yyFallback)
- && ($iFallback = self::$yyFallback[$iLookAhead]) != 0) {
- if (self::$yyTraceFILE) {
- fwrite(self::$yyTraceFILE, self::$yyTracePrompt . "FALLBACK " .
+ && ($iFallback = self::$yyFallback[$iLookAhead]) != 0
+ ) {
+ if ($this->yyTraceFILE) {
+ fwrite($this->yyTraceFILE, $this->yyTracePrompt . "FALLBACK " .
$this->yyTokenName[$iLookAhead] . " => " .
$this->yyTokenName[$iFallback] . "\n");
}
+
return $this->yy_find_shift_action($iFallback);
}
+
return self::$yy_default[$stateno];
} else {
return self::$yy_action[$i];
}
}
- function yy_find_reduce_action($stateno, $iLookAhead)
+ public function yy_find_reduce_action($stateno, $iLookAhead)
{
/* $stateno = $this->yystack[$this->yyidx]->stateno; */
@@ -572,29 +671,31 @@ static public $yy_action = array(
}
$i += $iLookAhead;
if ($i < 0 || $i >= self::YY_SZ_ACTTAB ||
- self::$yy_lookahead[$i] != $iLookAhead) {
+ self::$yy_lookahead[$i] != $iLookAhead
+ ) {
return self::$yy_default[$stateno];
} else {
return self::$yy_action[$i];
}
}
- function yy_shift($yyNewState, $yyMajor, $yypMinor)
+ public function yy_shift($yyNewState, $yyMajor, $yypMinor)
{
- $this->yyidx++;
+ $this->yyidx ++;
if ($this->yyidx >= self::YYSTACKDEPTH) {
- $this->yyidx--;
- if (self::$yyTraceFILE) {
- fprintf(self::$yyTraceFILE, "%sStack Overflow!\n", self::$yyTracePrompt);
+ $this->yyidx --;
+ if ($this->yyTraceFILE) {
+ fprintf($this->yyTraceFILE, "%sStack Overflow!\n", $this->yyTracePrompt);
}
while ($this->yyidx >= 0) {
$this->yy_pop_parser_stack();
}
-#line 125 "smarty_internal_configfileparser.y"
+ #line 125 "smarty_internal_configfileparser.y"
+
+ $this->internalError = true;
+ $this->compiler->trigger_config_file_error("Stack overflow in configfile parser");
+ #line 601 "smarty_internal_configfileparser.php"
- $this->internalError = true;
- $this->compiler->trigger_config_file_error("Stack overflow in configfile parser");
-#line 593 "smarty_internal_configfileparser.php"
return;
}
$yytos = new TPC_yyStackEntry;
@@ -602,57 +703,57 @@ static public $yy_action = array(
$yytos->major = $yyMajor;
$yytos->minor = $yypMinor;
array_push($this->yystack, $yytos);
- if (self::$yyTraceFILE && $this->yyidx > 0) {
- fprintf(self::$yyTraceFILE, "%sShift %d\n", self::$yyTracePrompt,
- $yyNewState);
- fprintf(self::$yyTraceFILE, "%sStack:", self::$yyTracePrompt);
- for($i = 1; $i <= $this->yyidx; $i++) {
- fprintf(self::$yyTraceFILE, " %s",
- $this->yyTokenName[$this->yystack[$i]->major]);
+ if ($this->yyTraceFILE && $this->yyidx > 0) {
+ fprintf($this->yyTraceFILE, "%sShift %d\n", $this->yyTracePrompt,
+ $yyNewState);
+ fprintf($this->yyTraceFILE, "%sStack:", $this->yyTracePrompt);
+ for ($i = 1; $i <= $this->yyidx; $i ++) {
+ fprintf($this->yyTraceFILE, " %s",
+ $this->yyTokenName[$this->yystack[$i]->major]);
}
- fwrite(self::$yyTraceFILE,"\n");
- }
- }
-
- static public $yyRuleInfo = array(
- array( 'lhs' => 20, 'rhs' => 2 ),
- array( 'lhs' => 21, 'rhs' => 1 ),
- array( 'lhs' => 22, 'rhs' => 2 ),
- array( 'lhs' => 22, 'rhs' => 0 ),
- array( 'lhs' => 24, 'rhs' => 5 ),
- array( 'lhs' => 24, 'rhs' => 6 ),
- array( 'lhs' => 23, 'rhs' => 2 ),
- array( 'lhs' => 23, 'rhs' => 2 ),
- array( 'lhs' => 23, 'rhs' => 0 ),
- array( 'lhs' => 26, 'rhs' => 3 ),
- array( 'lhs' => 27, 'rhs' => 1 ),
- array( 'lhs' => 27, 'rhs' => 1 ),
- array( 'lhs' => 27, 'rhs' => 1 ),
- array( 'lhs' => 27, 'rhs' => 1 ),
- array( 'lhs' => 27, 'rhs' => 1 ),
- array( 'lhs' => 27, 'rhs' => 3 ),
- array( 'lhs' => 27, 'rhs' => 2 ),
- array( 'lhs' => 27, 'rhs' => 1 ),
- array( 'lhs' => 27, 'rhs' => 1 ),
- array( 'lhs' => 25, 'rhs' => 1 ),
- array( 'lhs' => 25, 'rhs' => 2 ),
- array( 'lhs' => 25, 'rhs' => 3 ),
+ fwrite($this->yyTraceFILE, "\n");
+ }
+ }
+
+ public static $yyRuleInfo = array(
+ array('lhs' => 20, 'rhs' => 2),
+ array('lhs' => 21, 'rhs' => 1),
+ array('lhs' => 22, 'rhs' => 2),
+ array('lhs' => 22, 'rhs' => 0),
+ array('lhs' => 24, 'rhs' => 5),
+ array('lhs' => 24, 'rhs' => 6),
+ array('lhs' => 23, 'rhs' => 2),
+ array('lhs' => 23, 'rhs' => 2),
+ array('lhs' => 23, 'rhs' => 0),
+ array('lhs' => 26, 'rhs' => 3),
+ array('lhs' => 27, 'rhs' => 1),
+ array('lhs' => 27, 'rhs' => 1),
+ array('lhs' => 27, 'rhs' => 1),
+ array('lhs' => 27, 'rhs' => 1),
+ array('lhs' => 27, 'rhs' => 1),
+ array('lhs' => 27, 'rhs' => 3),
+ array('lhs' => 27, 'rhs' => 2),
+ array('lhs' => 27, 'rhs' => 1),
+ array('lhs' => 27, 'rhs' => 1),
+ array('lhs' => 25, 'rhs' => 1),
+ array('lhs' => 25, 'rhs' => 2),
+ array('lhs' => 25, 'rhs' => 3),
);
- static public $yyReduceMap = array(
- 0 => 0,
- 2 => 0,
- 3 => 0,
+ public static $yyReduceMap = array(
+ 0 => 0,
+ 2 => 0,
+ 3 => 0,
19 => 0,
20 => 0,
21 => 0,
- 1 => 1,
- 4 => 4,
- 5 => 5,
- 6 => 6,
- 7 => 7,
- 8 => 8,
- 9 => 9,
+ 1 => 1,
+ 4 => 4,
+ 5 => 5,
+ 6 => 6,
+ 7 => 7,
+ 8 => 8,
+ 9 => 9,
10 => 10,
11 => 11,
12 => 12,
@@ -663,101 +764,121 @@ static public $yy_action = array(
17 => 17,
18 => 17,
);
-#line 131 "smarty_internal_configfileparser.y"
- function yy_r0(){
- $this->_retvalue = null;
- }
-#line 666 "smarty_internal_configfileparser.php"
-#line 136 "smarty_internal_configfileparser.y"
- function yy_r1(){
- $this->add_global_vars($this->yystack[$this->yyidx + 0]->minor); $this->_retvalue = null;
- }
-#line 671 "smarty_internal_configfileparser.php"
-#line 149 "smarty_internal_configfileparser.y"
- function yy_r4(){
- $this->add_section_vars($this->yystack[$this->yyidx + -3]->minor, $this->yystack[$this->yyidx + 0]->minor);
- $this->_retvalue = null;
- }
-#line 677 "smarty_internal_configfileparser.php"
-#line 154 "smarty_internal_configfileparser.y"
- function yy_r5(){
- if ($this->smarty->config_read_hidden) {
- $this->add_section_vars($this->yystack[$this->yyidx + -3]->minor, $this->yystack[$this->yyidx + 0]->minor);
- }
- $this->_retvalue = null;
- }
-#line 685 "smarty_internal_configfileparser.php"
-#line 162 "smarty_internal_configfileparser.y"
- function yy_r6(){
- $this->_retvalue = $this->yystack[$this->yyidx + -1]->minor;
- }
-#line 690 "smarty_internal_configfileparser.php"
-#line 166 "smarty_internal_configfileparser.y"
- function yy_r7(){
- $this->_retvalue = array_merge($this->yystack[$this->yyidx + -1]->minor, Array($this->yystack[$this->yyidx + 0]->minor));
- }
-#line 695 "smarty_internal_configfileparser.php"
-#line 170 "smarty_internal_configfileparser.y"
- function yy_r8(){
- $this->_retvalue = Array();
- }
-#line 700 "smarty_internal_configfileparser.php"
-#line 176 "smarty_internal_configfileparser.y"
- function yy_r9(){
- $this->_retvalue = Array("key" => $this->yystack[$this->yyidx + -2]->minor, "value" => $this->yystack[$this->yyidx + 0]->minor);
- }
-#line 705 "smarty_internal_configfileparser.php"
-#line 181 "smarty_internal_configfileparser.y"
- function yy_r10(){
- $this->_retvalue = (float) $this->yystack[$this->yyidx + 0]->minor;
- }
-#line 710 "smarty_internal_configfileparser.php"
-#line 185 "smarty_internal_configfileparser.y"
- function yy_r11(){
- $this->_retvalue = (int) $this->yystack[$this->yyidx + 0]->minor;
- }
-#line 715 "smarty_internal_configfileparser.php"
-#line 189 "smarty_internal_configfileparser.y"
- function yy_r12(){
- $this->_retvalue = $this->parse_bool($this->yystack[$this->yyidx + 0]->minor);
- }
-#line 720 "smarty_internal_configfileparser.php"
-#line 193 "smarty_internal_configfileparser.y"
- function yy_r13(){
- $this->_retvalue = self::parse_single_quoted_string($this->yystack[$this->yyidx + 0]->minor);
- }
-#line 725 "smarty_internal_configfileparser.php"
-#line 197 "smarty_internal_configfileparser.y"
- function yy_r14(){
- $this->_retvalue = self::parse_double_quoted_string($this->yystack[$this->yyidx + 0]->minor);
- }
-#line 730 "smarty_internal_configfileparser.php"
-#line 201 "smarty_internal_configfileparser.y"
- function yy_r15(){
- $this->_retvalue = self::parse_tripple_double_quoted_string($this->yystack[$this->yyidx + -1]->minor);
- }
-#line 735 "smarty_internal_configfileparser.php"
-#line 205 "smarty_internal_configfileparser.y"
- function yy_r16(){
- $this->_retvalue = '';
- }
-#line 740 "smarty_internal_configfileparser.php"
-#line 209 "smarty_internal_configfileparser.y"
- function yy_r17(){
- $this->_retvalue = $this->yystack[$this->yyidx + 0]->minor;
- }
-#line 745 "smarty_internal_configfileparser.php"
+
+ #line 131 "smarty_internal_configfileparser.y"
+ function yy_r0()
+ {
+ $this->_retvalue = null;
+ }
+ #line 675 "smarty_internal_configfileparser.php"
+ #line 136 "smarty_internal_configfileparser.y"
+ function yy_r1()
+ {
+ $this->add_global_vars($this->yystack[$this->yyidx + 0]->minor);
+ $this->_retvalue = null;
+ }
+ #line 680 "smarty_internal_configfileparser.php"
+ #line 149 "smarty_internal_configfileparser.y"
+ function yy_r4()
+ {
+ $this->add_section_vars($this->yystack[$this->yyidx + - 3]->minor, $this->yystack[$this->yyidx + 0]->minor);
+ $this->_retvalue = null;
+ }
+ #line 686 "smarty_internal_configfileparser.php"
+ #line 154 "smarty_internal_configfileparser.y"
+ function yy_r5()
+ {
+ if ($this->smarty->config_read_hidden) {
+ $this->add_section_vars($this->yystack[$this->yyidx + - 3]->minor, $this->yystack[$this->yyidx + 0]->minor);
+ }
+ $this->_retvalue = null;
+ }
+ #line 694 "smarty_internal_configfileparser.php"
+ #line 162 "smarty_internal_configfileparser.y"
+ function yy_r6()
+ {
+ $this->_retvalue = $this->yystack[$this->yyidx + - 1]->minor;
+ }
+ #line 699 "smarty_internal_configfileparser.php"
+ #line 166 "smarty_internal_configfileparser.y"
+ function yy_r7()
+ {
+ $this->_retvalue = array_merge($this->yystack[$this->yyidx + - 1]->minor, Array($this->yystack[$this->yyidx + 0]->minor));
+ }
+ #line 704 "smarty_internal_configfileparser.php"
+ #line 170 "smarty_internal_configfileparser.y"
+ function yy_r8()
+ {
+ $this->_retvalue = Array();
+ }
+ #line 709 "smarty_internal_configfileparser.php"
+ #line 176 "smarty_internal_configfileparser.y"
+ function yy_r9()
+ {
+ $this->_retvalue = Array("key" => $this->yystack[$this->yyidx + - 2]->minor, "value" => $this->yystack[$this->yyidx + 0]->minor);
+ }
+ #line 714 "smarty_internal_configfileparser.php"
+ #line 181 "smarty_internal_configfileparser.y"
+ function yy_r10()
+ {
+ $this->_retvalue = (float) $this->yystack[$this->yyidx + 0]->minor;
+ }
+ #line 719 "smarty_internal_configfileparser.php"
+ #line 185 "smarty_internal_configfileparser.y"
+ function yy_r11()
+ {
+ $this->_retvalue = (int) $this->yystack[$this->yyidx + 0]->minor;
+ }
+ #line 724 "smarty_internal_configfileparser.php"
+ #line 189 "smarty_internal_configfileparser.y"
+ function yy_r12()
+ {
+ $this->_retvalue = $this->parse_bool($this->yystack[$this->yyidx + 0]->minor);
+ }
+ #line 729 "smarty_internal_configfileparser.php"
+ #line 193 "smarty_internal_configfileparser.y"
+ function yy_r13()
+ {
+ $this->_retvalue = self::parse_single_quoted_string($this->yystack[$this->yyidx + 0]->minor);
+ }
+ #line 734 "smarty_internal_configfileparser.php"
+ #line 197 "smarty_internal_configfileparser.y"
+ function yy_r14()
+ {
+ $this->_retvalue = self::parse_double_quoted_string($this->yystack[$this->yyidx + 0]->minor);
+ }
+ #line 739 "smarty_internal_configfileparser.php"
+ #line 201 "smarty_internal_configfileparser.y"
+ function yy_r15()
+ {
+ $this->_retvalue = self::parse_tripple_double_quoted_string($this->yystack[$this->yyidx + - 1]->minor);
+ }
+ #line 744 "smarty_internal_configfileparser.php"
+ #line 205 "smarty_internal_configfileparser.y"
+ function yy_r16()
+ {
+ $this->_retvalue = '';
+ }
+ #line 749 "smarty_internal_configfileparser.php"
+ #line 209 "smarty_internal_configfileparser.y"
+ function yy_r17()
+ {
+ $this->_retvalue = $this->yystack[$this->yyidx + 0]->minor;
+ }
+
+ #line 754 "smarty_internal_configfileparser.php"
private $_retvalue;
- function yy_reduce($yyruleno)
+ public function yy_reduce($yyruleno)
{
$yymsp = $this->yystack[$this->yyidx];
- if (self::$yyTraceFILE && $yyruleno >= 0
- && $yyruleno < count(self::$yyRuleName)) {
- fprintf(self::$yyTraceFILE, "%sReduce (%d) [%s].\n",
- self::$yyTracePrompt, $yyruleno,
- self::$yyRuleName[$yyruleno]);
+ if ($this->yyTraceFILE && $yyruleno >= 0
+ && $yyruleno < count(self::$yyRuleName)
+ ) {
+ fprintf($this->yyTraceFILE, "%sReduce (%d) [%s].\n",
+ $this->yyTracePrompt, $yyruleno,
+ self::$yyRuleName[$yyruleno]);
}
$this->_retvalue = $yy_lefthand_side = null;
@@ -770,14 +891,14 @@ static public $yy_action = array(
$yygoto = self::$yyRuleInfo[$yyruleno]['lhs'];
$yysize = self::$yyRuleInfo[$yyruleno]['rhs'];
$this->yyidx -= $yysize;
- for($i = $yysize; $i; $i--) {
+ for ($i = $yysize; $i; $i --) {
// pop all of the right-hand side parameters
array_pop($this->yystack);
}
$yyact = $this->yy_find_reduce_action($this->yystack[$this->yyidx]->stateno, $yygoto);
if ($yyact < self::YYNSTATE) {
- if (!self::$yyTraceFILE && $yysize) {
- $this->yyidx++;
+ if (!$this->yyTraceFILE && $yysize) {
+ $this->yyidx ++;
$x = new TPC_yyStackEntry;
$x->stateno = $yyact;
$x->major = $yygoto;
@@ -791,73 +912,74 @@ static public $yy_action = array(
}
}
- function yy_parse_failed()
+ public function yy_parse_failed()
{
- if (self::$yyTraceFILE) {
- fprintf(self::$yyTraceFILE, "%sFail!\n", self::$yyTracePrompt);
+ if ($this->yyTraceFILE) {
+ fprintf($this->yyTraceFILE, "%sFail!\n", $this->yyTracePrompt);
}
while ($this->yyidx >= 0) {
$this->yy_pop_parser_stack();
}
}
- function yy_syntax_error($yymajor, $TOKEN)
+ public function yy_syntax_error($yymajor, $TOKEN)
{
-#line 118 "smarty_internal_configfileparser.y"
+ #line 118 "smarty_internal_configfileparser.y"
- $this->internalError = true;
- $this->yymajor = $yymajor;
- $this->compiler->trigger_config_file_error();
-#line 808 "smarty_internal_configfileparser.php"
+ $this->internalError = true;
+ $this->yymajor = $yymajor;
+ $this->compiler->trigger_config_file_error();
+ #line 816 "smarty_internal_configfileparser.php"
}
- function yy_accept()
+ public function yy_accept()
{
- if (self::$yyTraceFILE) {
- fprintf(self::$yyTraceFILE, "%sAccept!\n", self::$yyTracePrompt);
+ if ($this->yyTraceFILE) {
+ fprintf($this->yyTraceFILE, "%sAccept!\n", $this->yyTracePrompt);
}
while ($this->yyidx >= 0) {
$stack = $this->yy_pop_parser_stack();
}
-#line 110 "smarty_internal_configfileparser.y"
+ #line 110 "smarty_internal_configfileparser.y"
- $this->successful = !$this->internalError;
- $this->internalError = false;
- $this->retvalue = $this->_retvalue;
- //echo $this->retvalue."\n\n";
-#line 826 "smarty_internal_configfileparser.php"
+ $this->successful = !$this->internalError;
+ $this->internalError = false;
+ $this->retvalue = $this->_retvalue;
+ //echo $this->retvalue."\n\n";
+ #line 833 "smarty_internal_configfileparser.php"
}
- function doParse($yymajor, $yytokenvalue)
+ public function doParse($yymajor, $yytokenvalue)
{
- $yyerrorhit = 0; /* True if yymajor has invoked an error */
+ $yyerrorhit = 0; /* True if yymajor has invoked an error */
if ($this->yyidx === null || $this->yyidx < 0) {
$this->yyidx = 0;
- $this->yyerrcnt = -1;
+ $this->yyerrcnt = - 1;
$x = new TPC_yyStackEntry;
$x->stateno = 0;
$x->major = 0;
$this->yystack = array();
array_push($this->yystack, $x);
}
- $yyendofinput = ($yymajor==0);
+ $yyendofinput = ($yymajor == 0);
- if (self::$yyTraceFILE) {
- fprintf(self::$yyTraceFILE, "%sInput %s\n",
- self::$yyTracePrompt, $this->yyTokenName[$yymajor]);
+ if ($this->yyTraceFILE) {
+ fprintf($this->yyTraceFILE, "%sInput %s\n",
+ $this->yyTracePrompt, $this->yyTokenName[$yymajor]);
}
do {
$yyact = $this->yy_find_shift_action($yymajor);
if ($yymajor < self::YYERRORSYMBOL &&
- !$this->yy_is_expected_token($yymajor)) {
+ !$this->yy_is_expected_token($yymajor)
+ ) {
// force a syntax error
$yyact = self::YY_ERROR_ACTION;
}
if ($yyact < self::YYNSTATE) {
$this->yy_shift($yyact, $yymajor, $yytokenvalue);
- $this->yyerrcnt--;
+ $this->yyerrcnt --;
if ($yyendofinput && $this->yyidx >= 0) {
$yymajor = 0;
} else {
@@ -866,30 +988,30 @@ static public $yy_action = array(
} elseif ($yyact < self::YYNSTATE + self::YYNRULE) {
$this->yy_reduce($yyact - self::YYNSTATE);
} elseif ($yyact == self::YY_ERROR_ACTION) {
- if (self::$yyTraceFILE) {
- fprintf(self::$yyTraceFILE, "%sSyntax Error!\n",
- self::$yyTracePrompt);
+ if ($this->yyTraceFILE) {
+ fprintf($this->yyTraceFILE, "%sSyntax Error!\n",
+ $this->yyTracePrompt);
}
if (self::YYERRORSYMBOL) {
if ($this->yyerrcnt < 0) {
$this->yy_syntax_error($yymajor, $yytokenvalue);
}
$yymx = $this->yystack[$this->yyidx]->major;
- if ($yymx == self::YYERRORSYMBOL || $yyerrorhit ){
- if (self::$yyTraceFILE) {
- fprintf(self::$yyTraceFILE, "%sDiscard input token %s\n",
- self::$yyTracePrompt, $this->yyTokenName[$yymajor]);
+ if ($yymx == self::YYERRORSYMBOL || $yyerrorhit) {
+ if ($this->yyTraceFILE) {
+ fprintf($this->yyTraceFILE, "%sDiscard input token %s\n",
+ $this->yyTracePrompt, $this->yyTokenName[$yymajor]);
}
$this->yy_destructor($yymajor, $yytokenvalue);
$yymajor = self::YYNOCODE;
} else {
while ($this->yyidx >= 0 &&
- $yymx != self::YYERRORSYMBOL &&
- ($yyact = $this->yy_find_shift_action(self::YYERRORSYMBOL)) >= self::YYNSTATE
- ){
+ $yymx != self::YYERRORSYMBOL &&
+ ($yyact = $this->yy_find_shift_action(self::YYERRORSYMBOL)) >= self::YYNSTATE
+ ) {
$this->yy_pop_parser_stack();
}
- if ($this->yyidx < 0 || $yymajor==0) {
+ if ($this->yyidx < 0 || $yymajor == 0) {
$this->yy_destructor($yymajor, $yytokenvalue);
$this->yy_parse_failed();
$yymajor = self::YYNOCODE;
@@ -918,4 +1040,3 @@ static public $yy_action = array(
} while ($yymajor != self::YYNOCODE && $this->yyidx >= 0);
}
}
-?> \ No newline at end of file
diff --git a/library/Smarty/libs/sysplugins/smarty_internal_data.php b/library/Smarty/libs/sysplugins/smarty_internal_data.php
index 5baf3b76d..9e16f10c0 100644
--- a/library/Smarty/libs/sysplugins/smarty_internal_data.php
+++ b/library/Smarty/libs/sysplugins/smarty_internal_data.php
@@ -1,22 +1,21 @@
<?php
/**
* Smarty Internal Plugin Data
+ * This file contains the basic classes and methods for template and variable creation
*
- * This file contains the basic classes and methodes for template and variable creation
- *
- * @package Smarty
+ * @package Smarty
* @subpackage Template
- * @author Uwe Tews
+ * @author Uwe Tews
*/
/**
- * Base class with template and variable methodes
+ * Base class with template and variable methods
*
- * @package Smarty
+ * @package Smarty
* @subpackage Template
*/
-class Smarty_Internal_Data {
-
+class Smarty_Internal_Data
+{
/**
* name of class used for templates
*
@@ -45,10 +44,10 @@ class Smarty_Internal_Data {
/**
* assigns a Smarty variable
*
- * @param array|string $tpl_var the template variable name(s)
- * @param mixed $value the value to assign
- * @param boolean $nocache if true any output of this variable will be not cached
- * @param boolean $scope the scope the variable will have (local,parent or root)
+ * @param array|string $tpl_var the template variable name(s)
+ * @param mixed $value the value to assign
+ * @param boolean $nocache if true any output of this variable will be not cached
+ *
* @return Smarty_Internal_Data current Smarty_Internal_Data (or Smarty or Smarty_Internal_Template) instance for chaining
*/
public function assign($tpl_var, $value = null, $nocache = false)
@@ -71,32 +70,40 @@ class Smarty_Internal_Data {
/**
* assigns a global Smarty variable
*
- * @param string $varname the global variable name
- * @param mixed $value the value to assign
- * @param boolean $nocache if true any output of this variable will be not cached
+ * @param string $varname the global variable name
+ * @param mixed $value the value to assign
+ * @param boolean $nocache if true any output of this variable will be not cached
+ *
* @return Smarty_Internal_Data current Smarty_Internal_Data (or Smarty or Smarty_Internal_Template) instance for chaining
*/
public function assignGlobal($varname, $value = null, $nocache = false)
{
if ($varname != '') {
Smarty::$global_tpl_vars[$varname] = new Smarty_variable($value, $nocache);
+ $ptr = $this;
+ while ($ptr instanceof Smarty_Internal_Template) {
+ $ptr->tpl_vars[$varname] = clone Smarty::$global_tpl_vars[$varname];
+ $ptr = $ptr->parent;
+ }
}
return $this;
}
+
/**
* assigns values to template variables by reference
*
- * @param string $tpl_var the template variable name
- * @param mixed $ &$value the referenced value to assign
- * @param boolean $nocache if true any output of this variable will be not cached
+ * @param string $tpl_var the template variable name
+ * @param $value
+ * @param boolean $nocache if true any output of this variable will be not cached
+ *
* @return Smarty_Internal_Data current Smarty_Internal_Data (or Smarty or Smarty_Internal_Template) instance for chaining
*/
public function assignByRef($tpl_var, &$value, $nocache = false)
{
if ($tpl_var != '') {
$this->tpl_vars[$tpl_var] = new Smarty_variable(null, $nocache);
- $this->tpl_vars[$tpl_var]->value = &$value;
+ $this->tpl_vars[$tpl_var]->value = & $value;
}
return $this;
@@ -105,10 +112,11 @@ class Smarty_Internal_Data {
/**
* appends values to template variables
*
- * @param array|string $tpl_var the template variable name(s)
- * @param mixed $value the value to append
- * @param boolean $merge flag if array elements shall be merged
- * @param boolean $nocache if true any output of this variable will be not cached
+ * @param array|string $tpl_var the template variable name(s)
+ * @param mixed $value the value to append
+ * @param boolean $merge flag if array elements shall be merged
+ * @param boolean $nocache if true any output of this variable will be not cached
+ *
* @return Smarty_Internal_Data current Smarty_Internal_Data (or Smarty or Smarty_Internal_Template) instance for chaining
*/
public function append($tpl_var, $value = null, $merge = false, $nocache = false)
@@ -129,7 +137,7 @@ class Smarty_Internal_Data {
settype($this->tpl_vars[$_key]->value, 'array');
}
if ($merge && is_array($_val)) {
- foreach($_val as $_mkey => $_mval) {
+ foreach ($_val as $_mkey => $_mval) {
$this->tpl_vars[$_key]->value[$_mkey] = $_mval;
}
} else {
@@ -151,7 +159,7 @@ class Smarty_Internal_Data {
settype($this->tpl_vars[$tpl_var]->value, 'array');
}
if ($merge && is_array($value)) {
- foreach($value as $_mkey => $_mval) {
+ foreach ($value as $_mkey => $_mval) {
$this->tpl_vars[$tpl_var]->value[$_mkey] = $_mval;
}
} else {
@@ -166,9 +174,10 @@ class Smarty_Internal_Data {
/**
* appends values to template variables by reference
*
- * @param string $tpl_var the template variable name
- * @param mixed &$value the referenced value to append
- * @param boolean $merge flag if array elements shall be merged
+ * @param string $tpl_var the template variable name
+ * @param mixed &$value the referenced value to append
+ * @param boolean $merge flag if array elements shall be merged
+ *
* @return Smarty_Internal_Data current Smarty_Internal_Data (or Smarty or Smarty_Internal_Template) instance for chaining
*/
public function appendByRef($tpl_var, &$value, $merge = false)
@@ -181,11 +190,11 @@ class Smarty_Internal_Data {
settype($this->tpl_vars[$tpl_var]->value, 'array');
}
if ($merge && is_array($value)) {
- foreach($value as $_key => $_val) {
- $this->tpl_vars[$tpl_var]->value[$_key] = &$value[$_key];
+ foreach ($value as $_key => $_val) {
+ $this->tpl_vars[$tpl_var]->value[$_key] = & $value[$_key];
}
} else {
- $this->tpl_vars[$tpl_var]->value[] = &$value;
+ $this->tpl_vars[$tpl_var]->value[] = & $value;
}
}
@@ -195,10 +204,11 @@ class Smarty_Internal_Data {
/**
* Returns a single or all template variables
*
- * @param string $varname variable name or null
- * @param string $_ptr optional pointer to data object
- * @param boolean $search_parents include parent templates?
- * @return string variable value or or array of variables
+ * @param string $varname variable name or null
+ * @param object $_ptr optional pointer to data object
+ * @param boolean $search_parents include parent templates?
+ *
+ * @return string variable value or or array of variables
*/
public function getTemplateVars($varname = null, $_ptr = null, $search_parents = true)
{
@@ -213,7 +223,8 @@ class Smarty_Internal_Data {
$_result = array();
if ($_ptr === null) {
$_ptr = $this;
- } while ($_ptr !== null) {
+ }
+ while ($_ptr !== null) {
foreach ($_ptr->tpl_vars AS $key => $var) {
if (!array_key_exists($key, $_result)) {
$_result[$key] = $var->value;
@@ -233,6 +244,7 @@ class Smarty_Internal_Data {
}
}
}
+
return $_result;
}
}
@@ -240,7 +252,8 @@ class Smarty_Internal_Data {
/**
* clear the given assigned template variable.
*
- * @param string|array $tpl_var the template variable(s) to clear
+ * @param string|array $tpl_var the template variable(s) to clear
+ *
* @return Smarty_Internal_Data current Smarty_Internal_Data (or Smarty or Smarty_Internal_Template) instance for chaining
*/
public function clearAssign($tpl_var)
@@ -258,19 +271,22 @@ class Smarty_Internal_Data {
/**
* clear all the assigned template variables.
+ *
* @return Smarty_Internal_Data current Smarty_Internal_Data (or Smarty or Smarty_Internal_Template) instance for chaining
*/
public function clearAllAssign()
{
$this->tpl_vars = array();
+
return $this;
}
/**
* load a config file, optionally load just selected sections
*
- * @param string $config_file filename
- * @param mixed $sections array of section names, single section or null
+ * @param string $config_file filename
+ * @param mixed $sections array of section names, single section or null
+ *
* @return Smarty_Internal_Data current Smarty_Internal_Data (or Smarty or Smarty_Internal_Template) instance for chaining
*/
public function configLoad($config_file, $sections = null)
@@ -278,22 +294,26 @@ class Smarty_Internal_Data {
// load Config class
$config = new Smarty_Internal_Config($config_file, $this->smarty, $this);
$config->loadConfigVars($sections);
+
return $this;
}
/**
* gets the object of a Smarty variable
*
- * @param string $variable the name of the Smarty variable
- * @param object $_ptr optional pointer to data object
- * @param boolean $search_parents search also in parent data
- * @return object the object of the variable
+ * @param string $variable the name of the Smarty variable
+ * @param object $_ptr optional pointer to data object
+ * @param boolean $search_parents search also in parent data
+ * @param bool $error_enable
+ *
+ * @return object the object of the variable
*/
public function getVariable($variable, $_ptr = null, $search_parents = true, $error_enable = true)
{
if ($_ptr === null) {
$_ptr = $this;
- } while ($_ptr !== null) {
+ }
+ while ($_ptr !== null) {
if (isset($_ptr->tpl_vars[$variable])) {
// found it, return it
return $_ptr->tpl_vars[$variable];
@@ -313,14 +333,17 @@ class Smarty_Internal_Data {
// force a notice
$x = $$variable;
}
+
return new Undefined_Smarty_Variable;
}
/**
* gets a config variable
*
- * @param string $variable the name of the config variable
- * @return mixed the value of the config variable
+ * @param string $variable the name of the config variable
+ * @param bool $error_enable
+ *
+ * @return mixed the value of the config variable
*/
public function getConfigVariable($variable, $error_enable = true)
{
@@ -337,24 +360,28 @@ class Smarty_Internal_Data {
// force a notice
$x = $$variable;
}
+
return null;
}
/**
* gets a stream variable
*
- * @param string $variable the stream of the variable
- * @return mixed the value of the stream variable
+ * @param string $variable the stream of the variable
+ *
+ * @throws SmartyException
+ * @return mixed the value of the stream variable
*/
public function getStreamVariable($variable)
{
$_result = '';
$fp = fopen($variable, 'r+');
if ($fp) {
- while (!feof($fp) && ($current_line = fgets($fp)) !== false ) {
+ while (!feof($fp) && ($current_line = fgets($fp)) !== false) {
$_result .= $current_line;
}
fclose($fp);
+
return $_result;
}
@@ -368,7 +395,9 @@ class Smarty_Internal_Data {
/**
* Returns a single or all config variables
*
- * @param string $varname variable name or null
+ * @param string $varname variable name or null
+ * @param bool $search_parents
+ *
* @return string variable value or or array of variables
*/
public function getConfigVars($varname = null, $search_parents = true)
@@ -383,7 +412,7 @@ class Smarty_Internal_Data {
} else {
$var_array = array_merge($_ptr->config_vars, $var_array);
}
- // not found, try at parent
+ // not found, try at parent
if ($search_parents) {
$_ptr = $_ptr->parent;
} else {
@@ -400,7 +429,8 @@ class Smarty_Internal_Data {
/**
* Deassigns a single or all config variables
*
- * @param string $varname variable name or null
+ * @param string $varname variable name or null
+ *
* @return Smarty_Internal_Data current Smarty_Internal_Data (or Smarty or Smarty_Internal_Template) instance for chaining
*/
public function clearConfig($varname = null)
@@ -410,21 +440,20 @@ class Smarty_Internal_Data {
} else {
$this->config_vars = array();
}
+
return $this;
}
-
}
/**
* class for the Smarty data object
- *
* The Smarty data object will hold Smarty variables in the current scope
*
- * @package Smarty
+ * @package Smarty
* @subpackage Template
*/
-class Smarty_Data extends Smarty_Internal_Data {
-
+class Smarty_Data extends Smarty_Internal_Data
+{
/**
* Smarty object
*
@@ -435,10 +464,12 @@ class Smarty_Data extends Smarty_Internal_Data {
/**
* create Smarty data object
*
- * @param Smarty|array $_parent parent template
- * @param Smarty $smarty global smarty instance
+ * @param Smarty|array $_parent parent template
+ * @param Smarty|Smarty_Internal_Template $smarty global smarty instance
+ *
+ * @throws SmartyException
*/
- public function __construct ($_parent = null, $smarty = null)
+ public function __construct($_parent = null, $smarty = null)
{
$this->smarty = $smarty;
if (is_object($_parent)) {
@@ -453,19 +484,17 @@ class Smarty_Data extends Smarty_Internal_Data {
throw new SmartyException("Wrong type for template variables");
}
}
-
}
/**
* class for the Smarty variable object
- *
* This class defines the Smarty variable object
*
- * @package Smarty
+ * @package Smarty
* @subpackage Template
*/
-class Smarty_Variable {
-
+class Smarty_Variable
+{
/**
* template variable
*
@@ -508,23 +537,22 @@ class Smarty_Variable {
{
return (string) $this->value;
}
-
}
/**
* class for undefined variable object
- *
* This class defines an object for undefined variable handling
*
- * @package Smarty
+ * @package Smarty
* @subpackage Template
*/
-class Undefined_Smarty_Variable {
-
+class Undefined_Smarty_Variable
+{
/**
* Returns FALSE for 'nocache' and NULL otherwise.
*
- * @param string $name
+ * @param string $name
+ *
* @return bool
*/
public function __get($name)
@@ -545,7 +573,4 @@ class Undefined_Smarty_Variable {
{
return "";
}
-
}
-
-?> \ No newline at end of file
diff --git a/library/Smarty/libs/sysplugins/smarty_internal_debug.php b/library/Smarty/libs/sysplugins/smarty_internal_debug.php
index 2aea13f30..e5175d51d 100644
--- a/library/Smarty/libs/sysplugins/smarty_internal_debug.php
+++ b/library/Smarty/libs/sysplugins/smarty_internal_debug.php
@@ -1,22 +1,21 @@
<?php
/**
* Smarty Internal Plugin Debug
- *
* Class to collect data for the Smarty Debugging Consol
*
- * @package Smarty
+ * @package Smarty
* @subpackage Debug
- * @author Uwe Tews
+ * @author Uwe Tews
*/
/**
* Smarty Internal Plugin Debug Class
*
- * @package Smarty
+ * @package Smarty
* @subpackage Debug
*/
-class Smarty_Internal_Debug extends Smarty_Internal_Data {
-
+class Smarty_Internal_Debug extends Smarty_Internal_Data
+{
/**
* template data
*
@@ -25,13 +24,52 @@ class Smarty_Internal_Debug extends Smarty_Internal_Data {
public static $template_data = array();
/**
+ * List of uid's which shall be ignored
+ *
+ * @var array
+ */
+ public static $ignore_uid = array();
+
+ /**
+ * Ignore template
+ *
+ * @param object $template
+ */
+ public static function ignore($template)
+ {
+ // calculate Uid if not already done
+ if ($template->source->uid == '') {
+ $template->source->filepath;
+ }
+ self::$ignore_uid[$template->source->uid] = true;
+ }
+
+ /**
* Start logging of compile time
*
* @param object $template
*/
public static function start_compile($template)
{
- $key = self::get_key($template);
+ static $_is_stringy = array('string' => true, 'eval' => true);
+ if (!empty($template->compiler->trace_uid)) {
+ $key = $template->compiler->trace_uid;
+ if (!isset(self::$template_data[$key])) {
+ if (isset($_is_stringy[$template->source->type])) {
+ self::$template_data[$key]['name'] = '\'' . substr($template->source->name, 0, 25) . '...\'';
+ } else {
+ self::$template_data[$key]['name'] = $template->source->filepath;
+ }
+ self::$template_data[$key]['compile_time'] = 0;
+ self::$template_data[$key]['render_time'] = 0;
+ self::$template_data[$key]['cache_time'] = 0;
+ }
+ } else {
+ if (isset(self::$ignore_uid[$template->source->uid])) {
+ return;
+ }
+ $key = self::get_key($template);
+ }
self::$template_data[$key]['start_time'] = microtime(true);
}
@@ -42,7 +80,15 @@ class Smarty_Internal_Debug extends Smarty_Internal_Data {
*/
public static function end_compile($template)
{
- $key = self::get_key($template);
+ if (!empty($template->compiler->trace_uid)) {
+ $key = $template->compiler->trace_uid;
+ } else {
+ if (isset(self::$ignore_uid[$template->source->uid])) {
+ return;
+ }
+
+ $key = self::get_key($template);
+ }
self::$template_data[$key]['compile_time'] += microtime(true) - self::$template_data[$key]['start_time'];
}
@@ -115,6 +161,7 @@ class Smarty_Internal_Debug extends Smarty_Internal_Data {
$smarty->left_delimiter = '{';
$smarty->right_delimiter = '}';
$smarty->debugging = false;
+ $smarty->debugging_ctrl = 'NONE';
$smarty->force_compile = false;
$_template = new Smarty_Internal_Template($smarty->debug_tpl, $smarty);
$_template->caching = false;
@@ -138,7 +185,8 @@ class Smarty_Internal_Debug extends Smarty_Internal_Data {
/**
* Recursively gets variables from all template/data scopes
*
- * @param Smarty_Internal_Template|Smarty_Data $obj object to debug
+ * @param Smarty_Internal_Template|Smarty_Data $obj object to debug
+ *
* @return StdClass
*/
public static function get_debug_vars($obj)
@@ -169,14 +217,16 @@ class Smarty_Internal_Debug extends Smarty_Internal_Data {
}
}
}
+
return (object) array('tpl_vars' => $tpl_vars, 'config_vars' => $config_vars);
}
/**
* Return key into $template_data for template
*
- * @param object $template template object
- * @return string key into $template_data
+ * @param object $template template object
+ *
+ * @return string key into $template_data
*/
private static function get_key($template)
{
@@ -190,17 +240,15 @@ class Smarty_Internal_Debug extends Smarty_Internal_Data {
return $key;
} else {
if (isset($_is_stringy[$template->source->type])) {
- self::$template_data[$key]['name'] = '\''.substr($template->source->name,0,25).'...\'';
+ self::$template_data[$key]['name'] = '\'' . substr($template->source->name, 0, 25) . '...\'';
} else {
self::$template_data[$key]['name'] = $template->source->filepath;
}
self::$template_data[$key]['compile_time'] = 0;
self::$template_data[$key]['render_time'] = 0;
self::$template_data[$key]['cache_time'] = 0;
+
return $key;
}
}
-
}
-
-?> \ No newline at end of file
diff --git a/library/Smarty/libs/sysplugins/smarty_internal_filter_handler.php b/library/Smarty/libs/sysplugins/smarty_internal_filter_handler.php
index c9370e1ac..4f0f3981c 100644
--- a/library/Smarty/libs/sysplugins/smarty_internal_filter_handler.php
+++ b/library/Smarty/libs/sysplugins/smarty_internal_filter_handler.php
@@ -1,41 +1,41 @@
<?php
/**
* Smarty Internal Plugin Filter Handler
- *
* Smarty filter handler class
*
- * @package Smarty
+ * @package Smarty
* @subpackage PluginsInternal
- * @author Uwe Tews
+ * @author Uwe Tews
*/
/**
* Class for filter processing
*
- * @package Smarty
+ * @package Smarty
* @subpackage PluginsInternal
*/
-class Smarty_Internal_Filter_Handler {
-
+class Smarty_Internal_Filter_Handler
+{
/**
* Run filters over content
- *
* The filters will be lazy loaded if required
* class name format: Smarty_FilterType_FilterName
* plugin filename format: filtertype.filtername.php
* Smarty2 filter plugins could be used
*
- * @param string $type the type of filter ('pre','post','output') which shall run
- * @param string $content the content which shall be processed by the filters
- * @param Smarty_Internal_Template $template template object
- * @return string the filtered content
+ * @param string $type the type of filter ('pre','post','output') which shall run
+ * @param string $content the content which shall be processed by the filters
+ * @param Smarty_Internal_Template $template template object
+ *
+ * @throws SmartyException
+ * @return string the filtered content
*/
public static function runFilter($type, $content, Smarty_Internal_Template $template)
{
$output = $content;
// loop over autoload filters of specified type
if (!empty($template->smarty->autoload_filters[$type])) {
- foreach ((array)$template->smarty->autoload_filters[$type] as $name) {
+ foreach ((array) $template->smarty->autoload_filters[$type] as $name) {
$plugin_name = "Smarty_{$type}filter_{$name}";
if ($template->smarty->loadPlugin($plugin_name)) {
if (function_exists($plugin_name)) {
@@ -64,7 +64,4 @@ class Smarty_Internal_Filter_Handler {
// return filtered output
return $output;
}
-
}
-
-?> \ No newline at end of file
diff --git a/library/Smarty/libs/sysplugins/smarty_internal_function_call_handler.php b/library/Smarty/libs/sysplugins/smarty_internal_function_call_handler.php
index 010d63592..a81ff728b 100644
--- a/library/Smarty/libs/sysplugins/smarty_internal_function_call_handler.php
+++ b/library/Smarty/libs/sysplugins/smarty_internal_function_call_handler.php
@@ -1,55 +1,52 @@
-<?php
-/**
- * Smarty Internal Plugin Function Call Handler
- *
- * @package Smarty
- * @subpackage PluginsInternal
- * @author Uwe Tews
- */
-
-/**
- * This class does call function defined with the {function} tag
- *
- * @package Smarty
- * @subpackage PluginsInternal
- */
-class Smarty_Internal_Function_Call_Handler {
-
- /**
- * This function handles calls to template functions defined by {function}
- * It does create a PHP function at the first call
- *
- * @param string $_name template function name
- * @param Smarty_Internal_Template $_template template object
- * @param array $_params Smarty variables passed as call parameter
- * @param string $_hash nocache hash value
- * @param bool $_nocache nocache flag
- */
- public static function call($_name, Smarty_Internal_Template $_template, $_params, $_hash, $_nocache)
- {
- if ($_nocache) {
- $_function = "smarty_template_function_{$_name}_nocache";
- } else {
- $_function = "smarty_template_function_{$_hash}_{$_name}";
- }
- if (!is_callable($_function)) {
- $_code = "function {$_function}(\$_smarty_tpl,\$params) {
- \$saved_tpl_vars = \$_smarty_tpl->tpl_vars;
- foreach (\$_smarty_tpl->smarty->template_functions['{$_name}']['parameter'] as \$key => \$value) {\$_smarty_tpl->tpl_vars[\$key] = new Smarty_variable(\$value);};
- foreach (\$params as \$key => \$value) {\$_smarty_tpl->tpl_vars[\$key] = new Smarty_variable(\$value);}?>";
- if ($_nocache) {
- $_code .= preg_replace(array("!<\?php echo \\'/\*%%SmartyNocache:{$_template->smarty->template_functions[$_name]['nocache_hash']}%%\*/|/\*/%%SmartyNocache:{$_template->smarty->template_functions[$_name]['nocache_hash']}%%\*/\\';\?>!",
- "!\\\'!"), array('', "'"), $_template->smarty->template_functions[$_name]['compiled']);
- $_template->smarty->template_functions[$_name]['called_nocache'] = true;
- } else {
- $_code .= preg_replace("/{$_template->smarty->template_functions[$_name]['nocache_hash']}/", $_template->properties['nocache_hash'], $_template->smarty->template_functions[$_name]['compiled']);
- }
- $_code .= "<?php \$_smarty_tpl->tpl_vars = \$saved_tpl_vars;}";
- eval($_code);
- }
- $_function($_template, $_params);
- }
-
-}
-
-?>
+<?php
+/**
+ * Smarty Internal Plugin Function Call Handler
+ *
+ * @package Smarty
+ * @subpackage PluginsInternal
+ * @author Uwe Tews
+ */
+
+/**
+ * This class does call function defined with the {function} tag
+ *
+ * @package Smarty
+ * @subpackage PluginsInternal
+ */
+class Smarty_Internal_Function_Call_Handler
+{
+ /**
+ * This function handles calls to template functions defined by {function}
+ * It does create a PHP function at the first call
+ *
+ * @param string $_name template function name
+ * @param Smarty_Internal_Template $_template template object
+ * @param array $_params Smarty variables passed as call parameter
+ * @param string $_hash nocache hash value
+ * @param bool $_nocache nocache flag
+ */
+ public static function call($_name, Smarty_Internal_Template $_template, $_params, $_hash, $_nocache)
+ {
+ if ($_nocache) {
+ $_function = "smarty_template_function_{$_name}_nocache";
+ } else {
+ $_function = "smarty_template_function_{$_hash}_{$_name}";
+ }
+ if (!is_callable($_function)) {
+ $_code = "function {$_function}(\$_smarty_tpl,\$params) {
+ \$saved_tpl_vars = \$_smarty_tpl->tpl_vars;
+ foreach (\$_smarty_tpl->smarty->template_functions['{$_name}']['parameter'] as \$key => \$value) {\$_smarty_tpl->tpl_vars[\$key] = new Smarty_variable(\$value);};
+ foreach (\$params as \$key => \$value) {\$_smarty_tpl->tpl_vars[\$key] = new Smarty_variable(\$value);}?>";
+ if ($_nocache) {
+ $_code .= preg_replace(array("!<\?php echo \\'/\*%%SmartyNocache:{$_template->smarty->template_functions[$_name]['nocache_hash']}%%\*/|/\*/%%SmartyNocache:{$_template->smarty->template_functions[$_name]['nocache_hash']}%%\*/\\';\?>!",
+ "!\\\'!"), array('', "'"), $_template->smarty->template_functions[$_name]['compiled']);
+ $_template->smarty->template_functions[$_name]['called_nocache'] = true;
+ } else {
+ $_code .= preg_replace("/{$_template->smarty->template_functions[$_name]['nocache_hash']}/", $_template->properties['nocache_hash'], $_template->smarty->template_functions[$_name]['compiled']);
+ }
+ $_code .= "<?php \$_smarty_tpl->tpl_vars = \$saved_tpl_vars;}";
+ eval($_code);
+ }
+ $_function($_template, $_params);
+ }
+}
diff --git a/library/Smarty/libs/sysplugins/smarty_internal_get_include_path.php b/library/Smarty/libs/sysplugins/smarty_internal_get_include_path.php
index 518c406aa..d46ca7029 100644
--- a/library/Smarty/libs/sysplugins/smarty_internal_get_include_path.php
+++ b/library/Smarty/libs/sysplugins/smarty_internal_get_include_path.php
@@ -1,48 +1,46 @@
-<?php
-/**
- * Smarty read include path plugin
- *
- * @package Smarty
- * @subpackage PluginsInternal
- * @author Monte Ohrt
- */
-
-/**
- * Smarty Internal Read Include Path Class
- *
- * @package Smarty
- * @subpackage PluginsInternal
- */
-class Smarty_Internal_Get_Include_Path {
-
- /**
- * Return full file path from PHP include_path
- *
- * @param string $filepath filepath
- * @return string|boolean full filepath or false
- */
- public static function getIncludePath($filepath)
- {
- static $_include_path = null;
-
- if (function_exists('stream_resolve_include_path')) {
- // available since PHP 5.3.2
- return stream_resolve_include_path($filepath);
- }
-
- if ($_include_path === null) {
- $_include_path = explode(PATH_SEPARATOR, get_include_path());
- }
-
- foreach ($_include_path as $_path) {
- if (file_exists($_path . DS . $filepath)) {
- return $_path . DS . $filepath;
- }
- }
-
- return false;
- }
-
-}
-
-?> \ No newline at end of file
+<?php
+/**
+ * Smarty read include path plugin
+ *
+ * @package Smarty
+ * @subpackage PluginsInternal
+ * @author Monte Ohrt
+ */
+
+/**
+ * Smarty Internal Read Include Path Class
+ *
+ * @package Smarty
+ * @subpackage PluginsInternal
+ */
+class Smarty_Internal_Get_Include_Path
+{
+ /**
+ * Return full file path from PHP include_path
+ *
+ * @param string $filepath filepath
+ *
+ * @return string|boolean full filepath or false
+ */
+ public static function getIncludePath($filepath)
+ {
+ static $_include_path = null;
+
+ if (function_exists('stream_resolve_include_path')) {
+ // available since PHP 5.3.2
+ return stream_resolve_include_path($filepath);
+ }
+
+ if ($_include_path === null) {
+ $_include_path = explode(PATH_SEPARATOR, get_include_path());
+ }
+
+ foreach ($_include_path as $_path) {
+ if (file_exists($_path . DS . $filepath)) {
+ return $_path . DS . $filepath;
+ }
+ }
+
+ return false;
+ }
+}
diff --git a/library/Smarty/libs/sysplugins/smarty_internal_nocache_insert.php b/library/Smarty/libs/sysplugins/smarty_internal_nocache_insert.php
index faae49af6..0d2facfe9 100644
--- a/library/Smarty/libs/sysplugins/smarty_internal_nocache_insert.php
+++ b/library/Smarty/libs/sysplugins/smarty_internal_nocache_insert.php
@@ -1,53 +1,51 @@
-<?php
-/**
- * Smarty Internal Plugin Nocache Insert
- *
- * Compiles the {insert} tag into the cache file
- *
- * @package Smarty
- * @subpackage Compiler
- * @author Uwe Tews
- */
-
-/**
- * Smarty Internal Plugin Compile Insert Class
- *
- * @package Smarty
- * @subpackage Compiler
- */
-class Smarty_Internal_Nocache_Insert {
-
- /**
- * Compiles code for the {insert} tag into cache file
- *
- * @param string $_function insert function name
- * @param array $_attr array with parameter
- * @param Smarty_Internal_Template $_template template object
- * @param string $_script script name to load or 'null'
- * @param string $_assign optional variable name
- * @return string compiled code
- */
- public static function compile($_function, $_attr, $_template, $_script, $_assign = null)
- {
- $_output = '<?php ';
- if ($_script != 'null') {
- // script which must be included
- // code for script file loading
- $_output .= "require_once '{$_script}';";
- }
- // call insert
- if (isset($_assign)) {
- $_output .= "\$_smarty_tpl->assign('{$_assign}' , {$_function} (" . var_export($_attr, true) . ",\$_smarty_tpl), true);?>";
- } else {
- $_output .= "echo {$_function}(" . var_export($_attr, true) . ",\$_smarty_tpl);?>";
- }
- $_tpl = $_template;
- while ($_tpl->parent instanceof Smarty_Internal_Template) {
- $_tpl = $_tpl->parent;
- }
- return "/*%%SmartyNocache:{$_tpl->properties['nocache_hash']}%%*/" . $_output . "/*/%%SmartyNocache:{$_tpl->properties['nocache_hash']}%%*/";
- }
-
-}
-
-?>
+<?php
+/**
+ * Smarty Internal Plugin Nocache Insert
+ * Compiles the {insert} tag into the cache file
+ *
+ * @package Smarty
+ * @subpackage Compiler
+ * @author Uwe Tews
+ */
+
+/**
+ * Smarty Internal Plugin Compile Insert Class
+ *
+ * @package Smarty
+ * @subpackage Compiler
+ */
+class Smarty_Internal_Nocache_Insert
+{
+ /**
+ * Compiles code for the {insert} tag into cache file
+ *
+ * @param string $_function insert function name
+ * @param array $_attr array with parameter
+ * @param Smarty_Internal_Template $_template template object
+ * @param string $_script script name to load or 'null'
+ * @param string $_assign optional variable name
+ *
+ * @return string compiled code
+ */
+ public static function compile($_function, $_attr, $_template, $_script, $_assign = null)
+ {
+ $_output = '<?php ';
+ if ($_script != 'null') {
+ // script which must be included
+ // code for script file loading
+ $_output .= "require_once '{$_script}';";
+ }
+ // call insert
+ if (isset($_assign)) {
+ $_output .= "\$_smarty_tpl->assign('{$_assign}' , {$_function} (" . var_export($_attr, true) . ",\$_smarty_tpl), true);?>";
+ } else {
+ $_output .= "echo {$_function}(" . var_export($_attr, true) . ",\$_smarty_tpl);?>";
+ }
+ $_tpl = $_template;
+ while ($_tpl->parent instanceof Smarty_Internal_Template) {
+ $_tpl = $_tpl->parent;
+ }
+
+ return "/*%%SmartyNocache:{$_tpl->properties['nocache_hash']}%%*/" . $_output . "/*/%%SmartyNocache:{$_tpl->properties['nocache_hash']}%%*/";
+ }
+}
diff --git a/library/Smarty/libs/sysplugins/smarty_internal_parsetree.php b/library/Smarty/libs/sysplugins/smarty_internal_parsetree.php
index c9fb1f762..186671021 100644
--- a/library/Smarty/libs/sysplugins/smarty_internal_parsetree.php
+++ b/library/Smarty/libs/sysplugins/smarty_internal_parsetree.php
@@ -1,395 +1,361 @@
-<?php
-/**
- * Smarty Internal Plugin Templateparser Parsetrees
- *
- * These are classes to build parsetrees in the template parser
- *
- * @package Smarty
- * @subpackage Compiler
- * @author Thue Kristensen
- * @author Uwe Tews
- */
-
-/**
- * @package Smarty
- * @subpackage Compiler
- * @ignore
- */
-abstract class _smarty_parsetree {
-
- /**
- * Parser object
- * @var object
- */
- public $parser;
- /**
- * Buffer content
- * @var mixed
- */
- public $data;
-
- /**
- * Return buffer
- *
- * @return string buffer content
- */
- abstract public function to_smarty_php();
-
-}
-
-/**
- * A complete smarty tag.
- *
- * @package Smarty
- * @subpackage Compiler
- * @ignore
- */
-class _smarty_tag extends _smarty_parsetree {
-
- /**
- * Saved block nesting level
- * @var int
- */
- public $saved_block_nesting;
-
- /**
- * Create parse tree buffer for Smarty tag
- *
- * @param object $parser parser object
- * @param string $data content
- */
- public function __construct($parser, $data)
- {
- $this->parser = $parser;
- $this->data = $data;
- $this->saved_block_nesting = $parser->block_nesting_level;
- }
-
- /**
- * Return buffer content
- *
- * @return string content
- */
- public function to_smarty_php()
- {
- return $this->data;
- }
-
- /**
- * Return complied code that loads the evaluated outout of buffer content into a temporary variable
- *
- * @return string template code
- */
- public function assign_to_var()
- {
- $var = sprintf('$_tmp%d', ++$this->parser->prefix_number);
- $this->parser->compiler->prefix_code[] = sprintf('<?php ob_start();?>%s<?php %s=ob_get_clean();?>', $this->data, $var);
- return $var;
- }
-
-}
-
-/**
- * Code fragment inside a tag.
- *
- * @package Smarty
- * @subpackage Compiler
- * @ignore
- */
-class _smarty_code extends _smarty_parsetree {
-
-
- /**
- * Create parse tree buffer for code fragment
- *
- * @param object $parser parser object
- * @param string $data content
- */
- public function __construct($parser, $data)
- {
- $this->parser = $parser;
- $this->data = $data;
- }
-
- /**
- * Return buffer content in parentheses
- *
- * @return string content
- */
- public function to_smarty_php()
- {
- return sprintf("(%s)", $this->data);
- }
-
-}
-
-/**
- * Double quoted string inside a tag.
- *
- * @package Smarty
- * @subpackage Compiler
- * @ignore
- */
-class _smarty_doublequoted extends _smarty_parsetree {
-
- /**
- * Create parse tree buffer for double quoted string subtrees
- *
- * @param object $parser parser object
- * @param _smarty_parsetree $subtree parsetree buffer
- */
- public function __construct($parser, _smarty_parsetree $subtree)
- {
- $this->parser = $parser;
- $this->subtrees[] = $subtree;
- if ($subtree instanceof _smarty_tag) {
- $this->parser->block_nesting_level = count($this->parser->compiler->_tag_stack);
- }
- }
-
- /**
- * Append buffer to subtree
- *
- * @param _smarty_parsetree $subtree parsetree buffer
- */
- public function append_subtree(_smarty_parsetree $subtree)
- {
- $last_subtree = count($this->subtrees) - 1;
- if ($last_subtree >= 0 && $this->subtrees[$last_subtree] instanceof _smarty_tag && $this->subtrees[$last_subtree]->saved_block_nesting < $this->parser->block_nesting_level) {
- if ($subtree instanceof _smarty_code) {
- $this->subtrees[$last_subtree]->data .= '<?php echo ' . $subtree->data . ';?>';
- } elseif ($subtree instanceof _smarty_dq_content) {
- $this->subtrees[$last_subtree]->data .= '<?php echo "' . $subtree->data . '";?>';
- } else {
- $this->subtrees[$last_subtree]->data .= $subtree->data;
- }
- } else {
- $this->subtrees[] = $subtree;
- }
- if ($subtree instanceof _smarty_tag) {
- $this->parser->block_nesting_level = count($this->parser->compiler->_tag_stack);
- }
- }
-
- /**
- * Merge subtree buffer content together
- *
- * @return string compiled template code
- */
- public function to_smarty_php()
- {
- $code = '';
- foreach ($this->subtrees as $subtree) {
- if ($code !== "") {
- $code .= ".";
- }
- if ($subtree instanceof _smarty_tag) {
- $more_php = $subtree->assign_to_var();
- } else {
- $more_php = $subtree->to_smarty_php();
- }
-
- $code .= $more_php;
-
- if (!$subtree instanceof _smarty_dq_content) {
- $this->parser->compiler->has_variable_string = true;
- }
- }
- return $code;
- }
-
-}
-
-/**
- * Raw chars as part of a double quoted string.
- *
- * @package Smarty
- * @subpackage Compiler
- * @ignore
- */
-class _smarty_dq_content extends _smarty_parsetree {
-
-
- /**
- * Create parse tree buffer with string content
- *
- * @param object $parser parser object
- * @param string $data string section
- */
- public function __construct($parser, $data)
- {
- $this->parser = $parser;
- $this->data = $data;
- }
-
- /**
- * Return content as double quoted string
- *
- * @return string doubled quoted string
- */
- public function to_smarty_php()
- {
- return '"' . $this->data . '"';
- }
-
-}
-
-/**
- * Template element
- *
- * @package Smarty
- * @subpackage Compiler
- * @ignore
- */
-class _smarty_template_buffer extends _smarty_parsetree {
-
- /**
- * Array of template elements
- *
- * @var array
- */
- public $subtrees = Array();
-
- /**
- * Create root of parse tree for template elements
- *
- * @param object $parser parse object
- */
- public function __construct($parser)
- {
- $this->parser = $parser;
- }
-
- /**
- * Append buffer to subtree
- *
- * @param _smarty_parsetree $subtree
- */
- public function append_subtree(_smarty_parsetree $subtree)
- {
- $this->subtrees[] = $subtree;
- }
-
- /**
- * Sanitize and merge subtree buffers together
- *
- * @return string template code content
- */
- public function to_smarty_php()
- {
- $code = '';
- for ($key = 0, $cnt = count($this->subtrees); $key < $cnt; $key++) {
- if ($key + 2 < $cnt) {
- if ($this->subtrees[$key] instanceof _smarty_linebreak && $this->subtrees[$key + 1] instanceof _smarty_tag && $this->subtrees[$key + 1]->data == '' && $this->subtrees[$key + 2] instanceof _smarty_linebreak) {
- $key = $key + 1;
- continue;
- }
- if (substr($this->subtrees[$key]->data, -1) == '<' && $this->subtrees[$key + 1]->data == '' && substr($this->subtrees[$key + 2]->data, -1) == '?') {
- $key = $key + 2;
- continue;
- }
- }
- if (substr($code, -1) == '<') {
- $subtree = $this->subtrees[$key]->to_smarty_php();
- if (substr($subtree, 0, 1) == '?') {
- $code = substr($code, 0, strlen($code) - 1) . '<<?php ?>?' . substr($subtree, 1);
- } elseif ($this->parser->asp_tags && substr($subtree, 0, 1) == '%') {
- $code = substr($code, 0, strlen($code) - 1) . '<<?php ?>%' . substr($subtree, 1);
- } else {
- $code .= $subtree;
- }
- continue;
- }
- if ($this->parser->asp_tags && substr($code, -1) == '%') {
- $subtree = $this->subtrees[$key]->to_smarty_php();
- if (substr($subtree, 0, 1) == '>') {
- $code = substr($code, 0, strlen($code) - 1) . '%<?php ?>>' . substr($subtree, 1);
- } else {
- $code .= $subtree;
- }
- continue;
- }
- if (substr($code, -1) == '?') {
- $subtree = $this->subtrees[$key]->to_smarty_php();
- if (substr($subtree, 0, 1) == '>') {
- $code = substr($code, 0, strlen($code) - 1) . '?<?php ?>>' . substr($subtree, 1);
- } else {
- $code .= $subtree;
- }
- continue;
- }
- $code .= $this->subtrees[$key]->to_smarty_php();
- }
- return $code;
- }
-
-}
-
-/**
- * template text
- *
- * @package Smarty
- * @subpackage Compiler
- * @ignore
- */
-class _smarty_text extends _smarty_parsetree {
-
-
- /**
- * Create template text buffer
- *
- * @param object $parser parser object
- * @param string $data text
- */
- public function __construct($parser, $data)
- {
- $this->parser = $parser;
- $this->data = $data;
- }
-
- /**
- * Return buffer content
- *
- * @return strint text
- */
- public function to_smarty_php()
- {
- return $this->data;
- }
-
-}
-
-/**
- * template linebreaks
- *
- * @package Smarty
- * @subpackage Compiler
- * @ignore
- */
-class _smarty_linebreak extends _smarty_parsetree {
-
- /**
- * Create buffer with linebreak content
- *
- * @param object $parser parser object
- * @param string $data linebreak string
- */
- public function __construct($parser, $data)
- {
- $this->parser = $parser;
- $this->data = $data;
- }
-
- /**
- * Return linebrak
- *
- * @return string linebreak
- */
- public function to_smarty_php()
- {
- return $this->data;
- }
-
-}
-
-?> \ No newline at end of file
+<?php
+/**
+ * Smarty Internal Plugin Templateparser Parsetrees
+ * These are classes to build parsetrees in the template parser
+ *
+ * @package Smarty
+ * @subpackage Compiler
+ * @author Thue Kristensen
+ * @author Uwe Tews
+ */
+
+/**
+ * @package Smarty
+ * @subpackage Compiler
+ * @ignore
+ */
+abstract class _smarty_parsetree
+{
+ /**
+ * Parser object
+ *
+ * @var object
+ */
+ public $parser;
+ /**
+ * Buffer content
+ *
+ * @var mixed
+ */
+ public $data;
+
+ /**
+ * Subtree array
+ *
+ * @var array
+ */
+ public $subtrees = array();
+
+ /**
+ * Return buffer
+ *
+ * @return string buffer content
+ */
+ abstract public function to_smarty_php();
+}
+
+/**
+ * A complete smarty tag.
+ *
+ * @package Smarty
+ * @subpackage Compiler
+ * @ignore
+ */
+class _smarty_tag extends _smarty_parsetree
+{
+ /**
+ * Saved block nesting level
+ *
+ * @var int
+ */
+ public $saved_block_nesting;
+
+ /**
+ * Create parse tree buffer for Smarty tag
+ *
+ * @param object $parser parser object
+ * @param string $data content
+ */
+ public function __construct($parser, $data)
+ {
+ $this->parser = $parser;
+ $this->data = $data;
+ $this->saved_block_nesting = $parser->block_nesting_level;
+ }
+
+ /**
+ * Return buffer content
+ *
+ * @return string content
+ */
+ public function to_smarty_php()
+ {
+ return $this->data;
+ }
+
+ /**
+ * Return complied code that loads the evaluated output of buffer content into a temporary variable
+ *
+ * @return string template code
+ */
+ public function assign_to_var()
+ {
+ $var = sprintf('$_tmp%d', ++Smarty_Internal_Templateparser::$prefix_number);
+ $this->parser->compiler->prefix_code[] = sprintf("<?php ob_start();\n%s\n%s=ob_get_clean();?>", preg_replace(array('/^\s*<\?php\s+/','/\s*\?>\s*$/'), '', $this->data), $var);
+
+ return $var;
+ }
+}
+
+/**
+ * Code fragment inside a tag.
+ *
+ * @package Smarty
+ * @subpackage Compiler
+ * @ignore
+ */
+class _smarty_code extends _smarty_parsetree
+{
+ /**
+ * Create parse tree buffer for code fragment
+ *
+ * @param object $parser parser object
+ * @param string $data content
+ */
+ public function __construct($parser, $data)
+ {
+ $this->parser = $parser;
+ $this->data = $data;
+ }
+
+ /**
+ * Return buffer content in parentheses
+ *
+ * @return string content
+ */
+ public function to_smarty_php()
+ {
+ return sprintf("(%s)", $this->data);
+ }
+}
+
+/**
+ * Double quoted string inside a tag.
+ *
+ * @package Smarty
+ * @subpackage Compiler
+ * @ignore
+ */
+class _smarty_doublequoted extends _smarty_parsetree
+{
+ /**
+ * Create parse tree buffer for double quoted string subtrees
+ *
+ * @param object $parser parser object
+ * @param _smarty_parsetree $subtree parsetree buffer
+ */
+ public function __construct($parser, _smarty_parsetree $subtree)
+ {
+ $this->parser = $parser;
+ $this->subtrees[] = $subtree;
+ if ($subtree instanceof _smarty_tag) {
+ $this->parser->block_nesting_level = count($this->parser->compiler->_tag_stack);
+ }
+ }
+
+ /**
+ * Append buffer to subtree
+ *
+ * @param _smarty_parsetree $subtree parsetree buffer
+ */
+ public function append_subtree(_smarty_parsetree $subtree)
+ {
+ $last_subtree = count($this->subtrees) - 1;
+ if ($last_subtree >= 0 && $this->subtrees[$last_subtree] instanceof _smarty_tag && $this->subtrees[$last_subtree]->saved_block_nesting < $this->parser->block_nesting_level) {
+ if ($subtree instanceof _smarty_code) {
+ $this->subtrees[$last_subtree]->data .= '<?php echo ' . $subtree->data . ';?>';
+ } elseif ($subtree instanceof _smarty_dq_content) {
+ $this->subtrees[$last_subtree]->data .= '<?php echo "' . $subtree->data . '";?>';
+ } else {
+ $this->subtrees[$last_subtree]->data .= $subtree->data;
+ }
+ } else {
+ $this->subtrees[] = $subtree;
+ }
+ if ($subtree instanceof _smarty_tag) {
+ $this->parser->block_nesting_level = count($this->parser->compiler->_tag_stack);
+ }
+ }
+
+ /**
+ * Merge subtree buffer content together
+ *
+ * @return string compiled template code
+ */
+ public function to_smarty_php()
+ {
+ $code = '';
+ foreach ($this->subtrees as $subtree) {
+ if ($code !== "") {
+ $code .= ".";
+ }
+ if ($subtree instanceof _smarty_tag) {
+ $more_php = $subtree->assign_to_var();
+ } else {
+ $more_php = $subtree->to_smarty_php();
+ }
+
+ $code .= $more_php;
+
+ if (!$subtree instanceof _smarty_dq_content) {
+ $this->parser->compiler->has_variable_string = true;
+ }
+ }
+
+ return $code;
+ }
+}
+
+/**
+ * Raw chars as part of a double quoted string.
+ *
+ * @package Smarty
+ * @subpackage Compiler
+ * @ignore
+ */
+class _smarty_dq_content extends _smarty_parsetree
+{
+ /**
+ * Create parse tree buffer with string content
+ *
+ * @param object $parser parser object
+ * @param string $data string section
+ */
+ public function __construct($parser, $data)
+ {
+ $this->parser = $parser;
+ $this->data = $data;
+ }
+
+ /**
+ * Return content as double quoted string
+ *
+ * @return string doubled quoted string
+ */
+ public function to_smarty_php()
+ {
+ return '"' . $this->data . '"';
+ }
+}
+
+/**
+ * Template element
+ *
+ * @package Smarty
+ * @subpackage Compiler
+ * @ignore
+ */
+class _smarty_template_buffer extends _smarty_parsetree
+{
+ /**
+ * Array of template elements
+ *
+ * @var array
+ */
+ public $subtrees = Array();
+
+ /**
+ * Create root of parse tree for template elements
+ *
+ * @param object $parser parse object
+ */
+ public function __construct($parser)
+ {
+ $this->parser = $parser;
+ }
+
+ /**
+ * Append buffer to subtree
+ *
+ * @param _smarty_parsetree $subtree
+ */
+ public function append_subtree(_smarty_parsetree $subtree)
+ {
+ if ($subtree->data !== '') {
+ $this->subtrees[] = $subtree;
+ }
+ }
+
+ /**
+ * Sanitize and merge subtree buffers together
+ *
+ * @return string template code content
+ */
+ public function to_smarty_php()
+ {
+ $code = '';
+ for ($key = 0, $cnt = count($this->subtrees); $key < $cnt; $key ++) {
+ if ($this->subtrees[$key] instanceof _smarty_text) {
+ $subtree = $this->subtrees[$key]->to_smarty_php();
+ while ($key + 1 < $cnt && ($this->subtrees[$key+1] instanceof _smarty_text || $this->subtrees[$key +1]->data == '')) {
+ $key++;
+ if ($this->subtrees[$key]->data == '') {
+ continue;
+ }
+ $subtree .= $this->subtrees[$key]->to_smarty_php();
+ }
+ if ($subtree == '') {
+ continue;
+ }
+ $code .= preg_replace('/(<%|%>|<\?php|<\?|\?>|<\/?script)/', "<?php echo '\$1'; ?>\n", $subtree);
+ continue;
+ }
+ if ($this->subtrees[$key] instanceof _smarty_tag) {
+ $subtree = $this->subtrees[$key]->to_smarty_php();
+ while ($key + 1 < $cnt && ($this->subtrees[$key+1] instanceof _smarty_tag || $this->subtrees[$key +1]->data == '')) {
+ $key++;
+ if ($this->subtrees[$key]->data == '') {
+ continue;
+ }
+ $newCode = $this->subtrees[$key]->to_smarty_php();
+ if ((preg_match('/^\s*<\?php\s+/', $newCode) && preg_match('/\s*\?>\s*$/', $subtree))) {
+ $subtree = preg_replace('/\s*\?>\s*$/', "\n", $subtree);
+ $subtree .= preg_replace('/^\s*<\?php\s+/', '', $newCode);
+ } else {
+ $subtree .= $newCode;
+ }
+ }
+ if ($subtree == '') {
+ continue;
+ }
+ $code .= $subtree;
+ continue;
+ }
+ $code .= $this->subtrees[$key]->to_smarty_php();
+ }
+ return $code;
+ }
+
+}
+
+/**
+ * template text
+ *
+ * @package Smarty
+ * @subpackage Compiler
+ * @ignore
+ */
+class _smarty_text extends _smarty_parsetree
+{
+ /**
+ * Create template text buffer
+ *
+ * @param object $parser parser object
+ * @param string $data text
+ */
+ public function __construct($parser, $data)
+ {
+ $this->parser = $parser;
+ $this->data = $data;
+ }
+
+ /**
+ * Return buffer content
+ *
+ * @return strint text
+ */
+ public function to_smarty_php()
+ {
+ return $this->data;
+ }
+}
diff --git a/library/Smarty/libs/sysplugins/smarty_internal_resource_eval.php b/library/Smarty/libs/sysplugins/smarty_internal_resource_eval.php
index cf2ec3e1c..1c64b7cf5 100644
--- a/library/Smarty/libs/sysplugins/smarty_internal_resource_eval.php
+++ b/library/Smarty/libs/sysplugins/smarty_internal_resource_eval.php
@@ -1,94 +1,96 @@
-<?php
-/**
- * Smarty Internal Plugin Resource Eval
- *
- * @package Smarty
- * @subpackage TemplateResources
- * @author Uwe Tews
- * @author Rodney Rehm
- */
-
-/**
- * Smarty Internal Plugin Resource Eval
- *
- * Implements the strings as resource for Smarty template
- *
- * {@internal unlike string-resources the compiled state of eval-resources is NOT saved for subsequent access}}
- *
- * @package Smarty
- * @subpackage TemplateResources
- */
-class Smarty_Internal_Resource_Eval extends Smarty_Resource_Recompiled {
-
- /**
- * populate Source Object with meta data from Resource
- *
- * @param Smarty_Template_Source $source source object
- * @param Smarty_Internal_Template $_template template object
- * @return void
- */
- public function populate(Smarty_Template_Source $source, Smarty_Internal_Template $_template=null)
- {
- $source->uid = $source->filepath = sha1($source->name);
- $source->timestamp = false;
- $source->exists = true;
- }
-
- /**
- * Load template's source from $resource_name into current template object
- *
- * @uses decode() to decode base64 and urlencoded template_resources
- * @param Smarty_Template_Source $source source object
- * @return string template source
- */
- public function getContent(Smarty_Template_Source $source)
- {
- return $this->decode($source->name);
- }
-
- /**
- * decode base64 and urlencode
- *
- * @param string $string template_resource to decode
- * @return string decoded template_resource
- */
- protected function decode($string)
- {
- // decode if specified
- if (($pos = strpos($string, ':')) !== false) {
- if (!strncmp($string, 'base64', 6)) {
- return base64_decode(substr($string, 7));
- } elseif (!strncmp($string, 'urlencode', 9)) {
- return urldecode(substr($string, 10));
- }
- }
-
- return $string;
- }
-
- /**
- * modify resource_name according to resource handlers specifications
- *
- * @param Smarty $smarty Smarty instance
- * @param string $resource_name resource_name to make unique
- * @return string unique resource name
- */
- protected function buildUniqueResourceName(Smarty $smarty, $resource_name)
- {
- return get_class($this) . '#' .$this->decode($resource_name);
- }
-
- /**
- * Determine basename for compiled filename
- *
- * @param Smarty_Template_Source $source source object
- * @return string resource's basename
- */
- protected function getBasename(Smarty_Template_Source $source)
- {
- return '';
- }
-
-}
-
-?> \ No newline at end of file
+<?php
+/**
+ * Smarty Internal Plugin Resource Eval
+ *
+ * @package Smarty
+ * @subpackage TemplateResources
+ * @author Uwe Tews
+ * @author Rodney Rehm
+ */
+
+/**
+ * Smarty Internal Plugin Resource Eval
+ * Implements the strings as resource for Smarty template
+ * {@internal unlike string-resources the compiled state of eval-resources is NOT saved for subsequent access}}
+ *
+ * @package Smarty
+ * @subpackage TemplateResources
+ */
+class Smarty_Internal_Resource_Eval extends Smarty_Resource_Recompiled
+{
+ /**
+ * populate Source Object with meta data from Resource
+ *
+ * @param Smarty_Template_Source $source source object
+ * @param Smarty_Internal_Template $_template template object
+ *
+ * @return void
+ */
+ public function populate(Smarty_Template_Source $source, Smarty_Internal_Template $_template = null)
+ {
+ $source->uid = $source->filepath = sha1($source->name);
+ $source->timestamp = false;
+ $source->exists = true;
+ }
+
+ /**
+ * Load template's source from $resource_name into current template object
+ *
+ * @uses decode() to decode base64 and urlencoded template_resources
+ *
+ * @param Smarty_Template_Source $source source object
+ *
+ * @return string template source
+ */
+ public function getContent(Smarty_Template_Source $source)
+ {
+ return $this->decode($source->name);
+ }
+
+ /**
+ * decode base64 and urlencode
+ *
+ * @param string $string template_resource to decode
+ *
+ * @return string decoded template_resource
+ */
+ protected function decode($string)
+ {
+ // decode if specified
+ if (($pos = strpos($string, ':')) !== false) {
+ if (!strncmp($string, 'base64', 6)) {
+ return base64_decode(substr($string, 7));
+ } elseif (!strncmp($string, 'urlencode', 9)) {
+ return urldecode(substr($string, 10));
+ }
+ }
+
+ return $string;
+ }
+
+ /**
+ * modify resource_name according to resource handlers specifications
+ *
+ * @param Smarty $smarty Smarty instance
+ * @param string $resource_name resource_name to make unique
+ * @param boolean $is_config flag for config resource
+ *
+ * @return string unique resource name
+ */
+ protected function buildUniqueResourceName(Smarty $smarty, $resource_name, $is_config = false)
+ {
+ return get_class($this) . '#' . $this->decode($resource_name);
+ }
+
+ /**
+ * Determine basename for compiled filename
+ *
+ * @param Smarty_Template_Source $source source object
+ *
+ * @return string resource's basename
+ */
+ protected function getBasename(Smarty_Template_Source $source)
+ {
+ return '';
+ }
+}
diff --git a/library/Smarty/libs/sysplugins/smarty_internal_resource_extends.php b/library/Smarty/libs/sysplugins/smarty_internal_resource_extends.php
index 9481d9922..c78dba512 100644
--- a/library/Smarty/libs/sysplugins/smarty_internal_resource_extends.php
+++ b/library/Smarty/libs/sysplugins/smarty_internal_resource_extends.php
@@ -1,37 +1,38 @@
<?php
/**
-* Smarty Internal Plugin Resource Extends
-*
-* @package Smarty
-* @subpackage TemplateResources
-* @author Uwe Tews
-* @author Rodney Rehm
-*/
+ * Smarty Internal Plugin Resource Extends
+ *
+ * @package Smarty
+ * @subpackage TemplateResources
+ * @author Uwe Tews
+ * @author Rodney Rehm
+ */
/**
-* Smarty Internal Plugin Resource Extends
-*
-* Implements the file system as resource for Smarty which {extend}s a chain of template files templates
-*
-* @package Smarty
-* @subpackage TemplateResources
-*/
-class Smarty_Internal_Resource_Extends extends Smarty_Resource {
-
+ * Smarty Internal Plugin Resource Extends
+ * Implements the file system as resource for Smarty which {extend}s a chain of template files templates
+ *
+ * @package Smarty
+ * @subpackage TemplateResources
+ */
+class Smarty_Internal_Resource_Extends extends Smarty_Resource
+{
/**
- * mbstring.overload flag
- *
- * @var int
- */
+ * mbstring.overload flag
+ *
+ * @var int
+ */
public $mbstring_overload = 0;
/**
- * populate Source Object with meta data from Resource
- *
- * @param Smarty_Template_Source $source source object
- * @param Smarty_Internal_Template $_template template object
- */
- public function populate(Smarty_Template_Source $source, Smarty_Internal_Template $_template=null)
+ * populate Source Object with meta data from Resource
+ *
+ * @param Smarty_Template_Source $source source object
+ * @param Smarty_Internal_Template $_template template object
+ *
+ * @throws SmartyException
+ */
+ public function populate(Smarty_Template_Source $source, Smarty_Internal_Template $_template = null)
{
$uid = '';
$sources = array();
@@ -43,7 +44,7 @@ class Smarty_Internal_Resource_Extends extends Smarty_Resource {
throw new SmartyException("Resource type {$s->type} cannot be used with the extends resource type");
}
$sources[$s->uid] = $s;
- $uid .= $s->filepath;
+ $uid .= realpath($s->filepath);
if ($_template && $_template->smarty->compile_check) {
$exists = $exists && $s->exists;
}
@@ -60,10 +61,10 @@ class Smarty_Internal_Resource_Extends extends Smarty_Resource {
}
/**
- * populate Source Object with timestamp and exists from Resource
- *
- * @param Smarty_Template_Source $source source object
- */
+ * populate Source Object with timestamp and exists from Resource
+ *
+ * @param Smarty_Template_Source $source source object
+ */
public function populateTimestamp(Smarty_Template_Source $source)
{
$source->exists = true;
@@ -74,84 +75,38 @@ class Smarty_Internal_Resource_Extends extends Smarty_Resource {
}
/**
- * Load template's source from files into current template object
- *
- * @param Smarty_Template_Source $source source object
- * @return string template source
- * @throws SmartyException if source cannot be loaded
- */
+ * Load template's source from files into current template object
+ *
+ * @param Smarty_Template_Source $source source object
+ *
+ * @return string template source
+ * @throws SmartyException if source cannot be loaded
+ */
public function getContent(Smarty_Template_Source $source)
{
if (!$source->exists) {
throw new SmartyException("Unable to read template {$source->type} '{$source->name}'");
}
- $this->mbstring_overload = ini_get('mbstring.func_overload') & 2;
- $_rdl = preg_quote($source->smarty->right_delimiter);
- $_ldl = preg_quote($source->smarty->left_delimiter);
$_components = array_reverse($source->components);
- $_first = reset($_components);
- $_last = end($_components);
+ $_content = '';
foreach ($_components as $_component) {
- // register dependency
- if ($_component != $_first) {
- $source->template->properties['file_dependency'][$_component->uid] = array($_component->filepath, $_component->timestamp, $_component->type);
- }
-
// read content
- $source->filepath = $_component->filepath;
- $_content = $_component->content;
-
- // extend sources
- if ($_component != $_last) {
- if (preg_match_all("!({$_ldl}block\s(.+?){$_rdl})!", $_content, $_open) !=
- preg_match_all("!({$_ldl}/block{$_rdl})!", $_content, $_close)) {
- throw new SmartyException("unmatched {block} {/block} pairs in template {$_component->type} '{$_component->name}'");
- }
- preg_match_all("!{$_ldl}block\s(.+?){$_rdl}|{$_ldl}/block{$_rdl}|{$_ldl}\*([\S\s]*?)\*{$_rdl}!", $_content, $_result, PREG_OFFSET_CAPTURE);
- $_result_count = count($_result[0]);
- $_start = 0;
- while ($_start+1 < $_result_count) {
- $_end = 0;
- $_level = 1;
- if (($this->mbstring_overload ? mb_substr($_result[0][$_start][0],0,mb_strlen($source->smarty->left_delimiter,'latin1')+1, 'latin1') : substr($_result[0][$_start][0],0,strlen($source->smarty->left_delimiter)+1)) == $source->smarty->left_delimiter.'*') {
- $_start++;
- continue;
- }
- while ($_level != 0) {
- $_end++;
- if (($this->mbstring_overload ? mb_substr($_result[0][$_start + $_end][0],0,mb_strlen($source->smarty->left_delimiter,'latin1')+1, 'latin1') : substr($_result[0][$_start + $_end][0],0,strlen($source->smarty->left_delimiter)+1)) == $source->smarty->left_delimiter.'*') {
- continue;
- }
- if (!strpos($_result[0][$_start + $_end][0], '/')) {
- $_level++;
- } else {
- $_level--;
- }
- }
- $_block_content = str_replace($source->smarty->left_delimiter . '$smarty.block.parent' . $source->smarty->right_delimiter, '%%%%SMARTY_PARENT%%%%',
- ($this->mbstring_overload ? mb_substr($_content, $_result[0][$_start][1] + mb_strlen($_result[0][$_start][0], 'latin1'), $_result[0][$_start + $_end][1] - $_result[0][$_start][1] - + mb_strlen($_result[0][$_start][0], 'latin1'), 'latin1') : substr($_content, $_result[0][$_start][1] + strlen($_result[0][$_start][0]), $_result[0][$_start + $_end][1] - $_result[0][$_start][1] - + strlen($_result[0][$_start][0]))));
- Smarty_Internal_Compile_Block::saveBlockData($_block_content, $_result[0][$_start][0], $source->template, $_component->filepath);
- $_start = $_start + $_end + 1;
- }
- } else {
- return $_content;
- }
+ $_content .= $_component->content;
}
+ return $_content;
}
/**
- * Determine basename for compiled filename
- *
- * @param Smarty_Template_Source $source source object
- * @return string resource's basename
- */
+ * Determine basename for compiled filename
+ *
+ * @param Smarty_Template_Source $source source object
+ *
+ * @return string resource's basename
+ */
public function getBasename(Smarty_Template_Source $source)
{
return str_replace(':', '.', basename($source->filepath));
}
-
}
-
-?> \ No newline at end of file
diff --git a/library/Smarty/libs/sysplugins/smarty_internal_resource_file.php b/library/Smarty/libs/sysplugins/smarty_internal_resource_file.php
index 48b391d20..0abdc4495 100644
--- a/library/Smarty/libs/sysplugins/smarty_internal_resource_file.php
+++ b/library/Smarty/libs/sysplugins/smarty_internal_resource_file.php
@@ -2,29 +2,28 @@
/**
* Smarty Internal Plugin Resource File
*
- * @package Smarty
+ * @package Smarty
* @subpackage TemplateResources
- * @author Uwe Tews
- * @author Rodney Rehm
+ * @author Uwe Tews
+ * @author Rodney Rehm
*/
/**
* Smarty Internal Plugin Resource File
- *
* Implements the file system as resource for Smarty templates
*
- * @package Smarty
+ * @package Smarty
* @subpackage TemplateResources
*/
-class Smarty_Internal_Resource_File extends Smarty_Resource {
-
+class Smarty_Internal_Resource_File extends Smarty_Resource
+{
/**
* populate Source Object with meta data from Resource
*
* @param Smarty_Template_Source $source source object
* @param Smarty_Internal_Template $_template template object
*/
- public function populate(Smarty_Template_Source $source, Smarty_Internal_Template $_template=null)
+ public function populate(Smarty_Template_Source $source, Smarty_Internal_Template $_template = null)
{
$source->filepath = $this->buildFilepath($source, $_template);
@@ -33,7 +32,7 @@ class Smarty_Internal_Resource_File extends Smarty_Resource {
$source->smarty->security_policy->isTrustedResourceDir($source->filepath);
}
- $source->uid = sha1($source->filepath);
+ $source->uid = sha1(realpath($source->filepath));
if ($source->smarty->compile_check && !isset($source->timestamp)) {
$source->timestamp = @filemtime($source->filepath);
$source->exists = !!$source->timestamp;
@@ -55,9 +54,10 @@ class Smarty_Internal_Resource_File extends Smarty_Resource {
/**
* Load template's source from file into current template object
*
- * @param Smarty_Template_Source $source source object
- * @return string template source
- * @throws SmartyException if source cannot be loaded
+ * @param Smarty_Template_Source $source source object
+ *
+ * @return string template source
+ * @throws SmartyException if source cannot be loaded
*/
public function getContent(Smarty_Template_Source $source)
{
@@ -73,8 +73,9 @@ class Smarty_Internal_Resource_File extends Smarty_Resource {
/**
* Determine basename for compiled filename
*
- * @param Smarty_Template_Source $source source object
- * @return string resource's basename
+ * @param Smarty_Template_Source $source source object
+ *
+ * @return string resource's basename
*/
public function getBasename(Smarty_Template_Source $source)
{
@@ -82,9 +83,7 @@ class Smarty_Internal_Resource_File extends Smarty_Resource {
if (($_pos = strpos($_file, ']')) !== false) {
$_file = substr($_file, $_pos + 1);
}
+
return basename($_file);
}
-
}
-
-?> \ No newline at end of file
diff --git a/library/Smarty/libs/sysplugins/smarty_internal_resource_php.php b/library/Smarty/libs/sysplugins/smarty_internal_resource_php.php
index 7cd8baeec..7463c2960 100644
--- a/library/Smarty/libs/sysplugins/smarty_internal_resource_php.php
+++ b/library/Smarty/libs/sysplugins/smarty_internal_resource_php.php
@@ -2,38 +2,40 @@
/**
* Smarty Internal Plugin Resource PHP
- *
* Implements the file system as resource for PHP templates
*
- * @package Smarty
+ * @package Smarty
* @subpackage TemplateResources
- * @author Uwe Tews
- * @author Rodney Rehm
+ * @author Uwe Tews
+ * @author Rodney Rehm
*/
-class Smarty_Internal_Resource_PHP extends Smarty_Resource_Uncompiled {
+class Smarty_Internal_Resource_PHP extends Smarty_Resource_Uncompiled
+{
/**
* container for short_open_tag directive's value before executing PHP templates
+ *
* @var string
*/
protected $short_open_tag;
/**
* Create a new PHP Resource
- *
+
*/
public function __construct()
{
- $this->short_open_tag = ini_get( 'short_open_tag' );
+ $this->short_open_tag = ini_get('short_open_tag');
}
/**
* populate Source Object with meta data from Resource
*
- * @param Smarty_Template_Source $source source object
- * @param Smarty_Internal_Template $_template template object
+ * @param Smarty_Template_Source $source source object
+ * @param Smarty_Internal_Template $_template template object
+ *
* @return void
*/
- public function populate(Smarty_Template_Source $source, Smarty_Internal_Template $_template=null)
+ public function populate(Smarty_Template_Source $source, Smarty_Internal_Template $_template = null)
{
$source->filepath = $this->buildFilepath($source, $_template);
@@ -53,7 +55,8 @@ class Smarty_Internal_Resource_PHP extends Smarty_Resource_Uncompiled {
/**
* populate Source Object with timestamp and exists from Resource
*
- * @param Smarty_Template_Source $source source object
+ * @param Smarty_Template_Source $source source object
+ *
* @return void
*/
public function populateTimestamp(Smarty_Template_Source $source)
@@ -65,9 +68,10 @@ class Smarty_Internal_Resource_PHP extends Smarty_Resource_Uncompiled {
/**
* Load template's source from file into current template object
*
- * @param Smarty_Template_Source $source source object
- * @return string template source
- * @throws SmartyException if source cannot be loaded
+ * @param Smarty_Template_Source $source source object
+ *
+ * @return string template source
+ * @throws SmartyException if source cannot be loaded
*/
public function getContent(Smarty_Template_Source $source)
{
@@ -80,15 +84,14 @@ class Smarty_Internal_Resource_PHP extends Smarty_Resource_Uncompiled {
/**
* Render and output the template (without using the compiler)
*
- * @param Smarty_Template_Source $source source object
- * @param Smarty_Internal_Template $_template template object
+ * @param Smarty_Template_Source $source source object
+ * @param Smarty_Internal_Template $_template template object
+ *
* @return void
- * @throws SmartyException if template cannot be loaded or allow_php_templates is disabled
+ * @throws SmartyException if template cannot be loaded or allow_php_templates is disabled
*/
public function renderUncompiled(Smarty_Template_Source $source, Smarty_Internal_Template $_template)
{
- $_smarty_template = $_template;
-
if (!$source->smarty->allow_php_templates) {
throw new SmartyException("PHP templates are disabled");
}
@@ -105,10 +108,12 @@ class Smarty_Internal_Resource_PHP extends Smarty_Resource_Uncompiled {
extract($_template->getTemplateVars());
// include PHP template with short open tags enabled
- ini_set( 'short_open_tag', '1' );
+ ini_set('short_open_tag', '1');
+ /** @var Smarty_Internal_Template $_smarty_template
+ * used in included file
+ */
+ $_smarty_template = $_template;
include($source->filepath);
- ini_set( 'short_open_tag', $this->short_open_tag );
+ ini_set('short_open_tag', $this->short_open_tag);
}
}
-
-?> \ No newline at end of file
diff --git a/library/Smarty/libs/sysplugins/smarty_internal_resource_registered.php b/library/Smarty/libs/sysplugins/smarty_internal_resource_registered.php
index 44497b922..f12d843e1 100644
--- a/library/Smarty/libs/sysplugins/smarty_internal_resource_registered.php
+++ b/library/Smarty/libs/sysplugins/smarty_internal_resource_registered.php
@@ -2,31 +2,31 @@
/**
* Smarty Internal Plugin Resource Registered
*
- * @package Smarty
+ * @package Smarty
* @subpackage TemplateResources
- * @author Uwe Tews
- * @author Rodney Rehm
+ * @author Uwe Tews
+ * @author Rodney Rehm
*/
/**
* Smarty Internal Plugin Resource Registered
- *
* Implements the registered resource for Smarty template
*
- * @package Smarty
+ * @package Smarty
* @subpackage TemplateResources
* @deprecated
*/
-class Smarty_Internal_Resource_Registered extends Smarty_Resource {
-
+class Smarty_Internal_Resource_Registered extends Smarty_Resource
+{
/**
* populate Source Object with meta data from Resource
*
- * @param Smarty_Template_Source $source source object
- * @param Smarty_Internal_Template $_template template object
+ * @param Smarty_Template_Source $source source object
+ * @param Smarty_Internal_Template $_template template object
+ *
* @return void
*/
- public function populate(Smarty_Template_Source $source, Smarty_Internal_Template $_template=null)
+ public function populate(Smarty_Template_Source $source, Smarty_Internal_Template $_template = null)
{
$source->filepath = $source->type . ':' . $source->name;
$source->uid = sha1($source->filepath);
@@ -39,7 +39,8 @@ class Smarty_Internal_Resource_Registered extends Smarty_Resource {
/**
* populate Source Object with timestamp and exists from Resource
*
- * @param Smarty_Template_Source $source source object
+ * @param Smarty_Template_Source $source source object
+ *
* @return void
*/
public function populateTimestamp(Smarty_Template_Source $source)
@@ -51,23 +52,26 @@ class Smarty_Internal_Resource_Registered extends Smarty_Resource {
/**
* Get timestamp (epoch) the template source was modified
*
- * @param Smarty_Template_Source $source source object
- * @return integer|boolean timestamp (epoch) the template was modified, false if resources has no timestamp
+ * @param Smarty_Template_Source $source source object
+ *
+ * @return integer|boolean timestamp (epoch) the template was modified, false if resources has no timestamp
*/
public function getTemplateTimestamp(Smarty_Template_Source $source)
{
// return timestamp
$time_stamp = false;
call_user_func_array($source->smarty->registered_resources[$source->type][0][1], array($source->name, &$time_stamp, $source->smarty));
+
return is_numeric($time_stamp) ? (int) $time_stamp : $time_stamp;
}
/**
* Load template's source by invoking the registered callback into current template object
*
- * @param Smarty_Template_Source $source source object
- * @return string template source
- * @throws SmartyException if source cannot be loaded
+ * @param Smarty_Template_Source $source source object
+ *
+ * @return string template source
+ * @throws SmartyException if source cannot be loaded
*/
public function getContent(Smarty_Template_Source $source)
{
@@ -76,20 +80,19 @@ class Smarty_Internal_Resource_Registered extends Smarty_Resource {
if (is_bool($t) && !$t) {
throw new SmartyException("Unable to read template {$source->type} '{$source->name}'");
}
+
return $source->content;
}
/**
* Determine basename for compiled filename
*
- * @param Smarty_Template_Source $source source object
- * @return string resource's basename
+ * @param Smarty_Template_Source $source source object
+ *
+ * @return string resource's basename
*/
protected function getBasename(Smarty_Template_Source $source)
{
return basename($source->name);
}
-
}
-
-?> \ No newline at end of file
diff --git a/library/Smarty/libs/sysplugins/smarty_internal_resource_stream.php b/library/Smarty/libs/sysplugins/smarty_internal_resource_stream.php
index 85698c232..f7d1aac31 100644
--- a/library/Smarty/libs/sysplugins/smarty_internal_resource_stream.php
+++ b/library/Smarty/libs/sysplugins/smarty_internal_resource_stream.php
@@ -1,36 +1,39 @@
<?php
/**
* Smarty Internal Plugin Resource Stream
- *
* Implements the streams as resource for Smarty template
*
- * @package Smarty
+ * @package Smarty
* @subpackage TemplateResources
- * @author Uwe Tews
- * @author Rodney Rehm
+ * @author Uwe Tews
+ * @author Rodney Rehm
*/
/**
* Smarty Internal Plugin Resource Stream
- *
* Implements the streams as resource for Smarty template
*
- * @link http://php.net/streams
- * @package Smarty
+ * @link http://php.net/streams
+ * @package Smarty
* @subpackage TemplateResources
*/
-class Smarty_Internal_Resource_Stream extends Smarty_Resource_Recompiled {
-
+class Smarty_Internal_Resource_Stream extends Smarty_Resource_Recompiled
+{
/**
* populate Source Object with meta data from Resource
*
* @param Smarty_Template_Source $source source object
* @param Smarty_Internal_Template $_template template object
+ *
* @return void
*/
- public function populate(Smarty_Template_Source $source, Smarty_Internal_Template $_template=null)
+ public function populate(Smarty_Template_Source $source, Smarty_Internal_Template $_template = null)
{
- $source->filepath = str_replace(':', '://', $source->resource);
+ if (strpos($source->resource, '://') !== false) {
+ $source->filepath = $source->resource;
+ } else {
+ $source->filepath = str_replace(':', '://', $source->resource);
+ }
$source->uid = false;
$source->content = $this->getContent($source);
$source->timestamp = false;
@@ -41,6 +44,7 @@ class Smarty_Internal_Resource_Stream extends Smarty_Resource_Recompiled {
* Load template's source from stream into current template object
*
* @param Smarty_Template_Source $source source object
+ *
* @return string template source
* @throws SmartyException if source cannot be loaded
*/
@@ -54,23 +58,24 @@ class Smarty_Internal_Resource_Stream extends Smarty_Resource_Recompiled {
$t .= $current_line;
}
fclose($fp);
+
return $t;
} else {
return false;
}
}
-
+
/**
* modify resource_name according to resource handlers specifications
*
- * @param Smarty $smarty Smarty instance
- * @param string $resource_name resource_name to make unique
+ * @param Smarty $smarty Smarty instance
+ * @param string $resource_name resource_name to make unique
+ * @param boolean $is_config flag for config resource
+ *
* @return string unique resource name
*/
- protected function buildUniqueResourceName(Smarty $smarty, $resource_name)
+ protected function buildUniqueResourceName(Smarty $smarty, $resource_name, $is_config = false)
{
return get_class($this) . '#' . $resource_name;
}
}
-
-?> \ No newline at end of file
diff --git a/library/Smarty/libs/sysplugins/smarty_internal_resource_string.php b/library/Smarty/libs/sysplugins/smarty_internal_resource_string.php
index 9571337b0..bfa069974 100644
--- a/library/Smarty/libs/sysplugins/smarty_internal_resource_string.php
+++ b/library/Smarty/libs/sysplugins/smarty_internal_resource_string.php
@@ -2,32 +2,31 @@
/**
* Smarty Internal Plugin Resource String
*
- * @package Smarty
+ * @package Smarty
* @subpackage TemplateResources
- * @author Uwe Tews
- * @author Rodney Rehm
+ * @author Uwe Tews
+ * @author Rodney Rehm
*/
/**
* Smarty Internal Plugin Resource String
- *
* Implements the strings as resource for Smarty template
- *
* {@internal unlike eval-resources the compiled state of string-resources is saved for subsequent access}}
*
- * @package Smarty
+ * @package Smarty
* @subpackage TemplateResources
*/
-class Smarty_Internal_Resource_String extends Smarty_Resource {
-
+class Smarty_Internal_Resource_String extends Smarty_Resource
+{
/**
* populate Source Object with meta data from Resource
*
- * @param Smarty_Template_Source $source source object
- * @param Smarty_Internal_Template $_template template object
+ * @param Smarty_Template_Source $source source object
+ * @param Smarty_Internal_Template $_template template object
+ *
* @return void
*/
- public function populate(Smarty_Template_Source $source, Smarty_Internal_Template $_template=null)
+ public function populate(Smarty_Template_Source $source, Smarty_Internal_Template $_template = null)
{
$source->uid = $source->filepath = sha1($source->name);
$source->timestamp = 0;
@@ -38,18 +37,21 @@ class Smarty_Internal_Resource_String extends Smarty_Resource {
* Load template's source from $resource_name into current template object
*
* @uses decode() to decode base64 and urlencoded template_resources
- * @param Smarty_Template_Source $source source object
- * @return string template source
+ *
+ * @param Smarty_Template_Source $source source object
+ *
+ * @return string template source
*/
public function getContent(Smarty_Template_Source $source)
{
return $this->decode($source->name);
}
-
+
/**
* decode base64 and urlencode
*
- * @param string $string template_resource to decode
+ * @param string $string template_resource to decode
+ *
* @return string decoded template_resource
*/
protected function decode($string)
@@ -62,35 +64,34 @@ class Smarty_Internal_Resource_String extends Smarty_Resource {
return urldecode(substr($string, 10));
}
}
-
+
return $string;
}
-
+
/**
* modify resource_name according to resource handlers specifications
*
- * @param Smarty $smarty Smarty instance
- * @param string $resource_name resource_name to make unique
+ * @param Smarty $smarty Smarty instance
+ * @param string $resource_name resource_name to make unique
+ * @param boolean $is_config flag for config resource
+ *
* @return string unique resource name
*/
- protected function buildUniqueResourceName(Smarty $smarty, $resource_name)
+ protected function buildUniqueResourceName(Smarty $smarty, $resource_name, $is_config = false)
{
- return get_class($this) . '#' .$this->decode($resource_name);
+ return get_class($this) . '#' . $this->decode($resource_name);
}
/**
* Determine basename for compiled filename
- *
* Always returns an empty string.
*
- * @param Smarty_Template_Source $source source object
- * @return string resource's basename
+ * @param Smarty_Template_Source $source source object
+ *
+ * @return string resource's basename
*/
protected function getBasename(Smarty_Template_Source $source)
{
return '';
}
-
}
-
-?> \ No newline at end of file
diff --git a/library/Smarty/libs/sysplugins/smarty_internal_smartytemplatecompiler.php b/library/Smarty/libs/sysplugins/smarty_internal_smartytemplatecompiler.php
index 1ec1aa430..50bd16ef2 100644
--- a/library/Smarty/libs/sysplugins/smarty_internal_smartytemplatecompiler.php
+++ b/library/Smarty/libs/sysplugins/smarty_internal_smartytemplatecompiler.php
@@ -1,27 +1,26 @@
<?php
/**
* Smarty Internal Plugin Smarty Template Compiler Base
+ * This file contains the basic classes and methods for compiling Smarty templates with lexer/parser
*
- * This file contains the basic classes and methodes for compiling Smarty templates with lexer/parser
- *
- * @package Smarty
+ * @package Smarty
* @subpackage Compiler
- * @author Uwe Tews
+ * @author Uwe Tews
*/
/**
* @ignore
*/
-include ("smarty_internal_parsetree.php");
+include 'smarty_internal_parsetree.php';
/**
* Class SmartyTemplateCompiler
*
- * @package Smarty
+ * @package Smarty
* @subpackage Compiler
*/
-class Smarty_Internal_SmartyTemplateCompiler extends Smarty_Internal_TemplateCompilerBase {
-
+class Smarty_Internal_SmartyTemplateCompiler extends Smarty_Internal_TemplateCompilerBase
+{
/**
* Lexer class name
*
@@ -81,10 +80,11 @@ class Smarty_Internal_SmartyTemplateCompiler extends Smarty_Internal_TemplateCom
}
/**
- * Methode to compile a Smarty template
+ * method to compile a Smarty template
*
* @param mixed $_content template source
- * @return bool true if compiling succeeded, false if it failed
+ *
+ * @return bool true if compiling succeeded, false if it failed
*/
protected function doCompile($_content)
{
@@ -94,8 +94,21 @@ class Smarty_Internal_SmartyTemplateCompiler extends Smarty_Internal_TemplateCom
// init the lexer/parser to compile the template
$this->lex = new $this->lexer_class($_content, $this);
$this->parser = new $this->parser_class($this->lex, $this);
- if ($this->smarty->_parserdebug)
+ if ($this->inheritance_child) {
+ // start state on child templates
+ $this->lex->yypushstate(Smarty_Internal_Templatelexer::CHILDBODY);
+ }
+ if (function_exists('mb_internal_encoding') && ((int) ini_get('mbstring.func_overload')) & 2) {
+ $mbEncoding = mb_internal_encoding();
+ mb_internal_encoding('ASCII');
+ } else {
+ $mbEncoding = null;
+ }
+
+ if ($this->smarty->_parserdebug) {
$this->parser->PrintTrace();
+ $this->lex->PrintTrace();
+ }
// get tokens from lexer and parse them
while ($this->lex->yylex() && !$this->abort_and_recompile) {
if ($this->smarty->_parserdebug) {
@@ -111,17 +124,17 @@ class Smarty_Internal_SmartyTemplateCompiler extends Smarty_Internal_TemplateCom
}
// finish parsing process
$this->parser->doParse(0, 0);
+ if ($mbEncoding) {
+ mb_internal_encoding($mbEncoding);
+ }
// check for unclosed tags
if (count($this->_tag_stack) > 0) {
// get stacked info
list($openTag, $_data) = array_pop($this->_tag_stack);
- $this->trigger_template_error("unclosed {" . $openTag . "} tag");
+ $this->trigger_template_error("unclosed {$this->smarty->left_delimiter}" . $openTag . "{$this->smarty->right_delimiter} tag");
}
// return compiled code
// return str_replace(array("? >\n<?php","? ><?php"), array('',''), $this->parser->retvalue);
return $this->parser->retvalue;
}
-
}
-
-?> \ No newline at end of file
diff --git a/library/Smarty/libs/sysplugins/smarty_internal_template.php b/library/Smarty/libs/sysplugins/smarty_internal_template.php
index de9d54cf6..f1a73a4ae 100644
--- a/library/Smarty/libs/sysplugins/smarty_internal_template.php
+++ b/library/Smarty/libs/sysplugins/smarty_internal_template.php
@@ -1,28 +1,27 @@
<?php
/**
* Smarty Internal Plugin Template
- *
* This file contains the Smarty template engine
*
- * @package Smarty
+ * @package Smarty
* @subpackage Template
- * @author Uwe Tews
+ * @author Uwe Tews
*/
/**
* Main class with template data structures and methods
*
- * @package Smarty
+ * @package Smarty
* @subpackage Template
- *
* @property Smarty_Template_Source $source
* @property Smarty_Template_Compiled $compiled
* @property Smarty_Template_Cached $cached
*/
-class Smarty_Internal_Template extends Smarty_Internal_TemplateBase {
-
+class Smarty_Internal_Template extends Smarty_Internal_TemplateBase
+{
/**
* cache_id
+ *
* @var string
*/
public $cache_id = null;
@@ -33,95 +32,108 @@ class Smarty_Internal_Template extends Smarty_Internal_TemplateBase {
public $compile_id = null;
/**
* caching enabled
+ *
* @var boolean
*/
public $caching = null;
/**
* cache lifetime in seconds
+ *
* @var integer
*/
public $cache_lifetime = null;
/**
* Template resource
+ *
* @var string
*/
public $template_resource = null;
/**
* flag if compiled template is invalid and must be (re)compiled
+ *
* @var bool
*/
public $mustCompile = null;
/**
* flag if template does contain nocache code sections
+ *
* @var bool
*/
public $has_nocache_code = false;
/**
* special compiled and cached template properties
+ *
* @var array
*/
public $properties = array('file_dependency' => array(),
- 'nocache_hash' => '',
- 'function' => array());
+ 'nocache_hash' => '',
+ 'function' => array());
/**
* required plugins
+ *
* @var array
*/
public $required_plugins = array('compiled' => array(), 'nocache' => array());
/**
* Global smarty instance
+ *
* @var Smarty
*/
public $smarty = null;
/**
* blocks for template inheritance
+ *
* @var array
*/
public $block_data = array();
/**
* variable filters
+ *
* @var array
*/
public $variable_filters = array();
/**
* optional log of tag/attributes
+ *
* @var array
*/
public $used_tags = array();
/**
* internal flag to allow relative path in child template blocks
+ *
* @var bool
*/
public $allow_relative_path = false;
/**
* internal capture runtime stack
+ *
* @var array
*/
public $_capture_stack = array(0 => array());
/**
* Create template data object
- *
* Some of the global Smarty settings copied to template scope
* It load the required template resources and cacher plugins
*
* @param string $template_resource template resource string
* @param Smarty $smarty Smarty instance
* @param Smarty_Internal_Template $_parent back pointer to parent object with variables or null
- * @param mixed $_cache_id cache id or null
+ * @param mixed $_cache_id cache id or null
* @param mixed $_compile_id compile id or null
* @param bool $_caching use caching?
* @param int $_cache_lifetime cache life-time in seconds
*/
public function __construct($template_resource, $smarty, $_parent = null, $_cache_id = null, $_compile_id = null, $_caching = null, $_cache_lifetime = null)
{
- $this->smarty = &$smarty;
+ $this->smarty = & $smarty;
// Smarty parameter
$this->cache_id = $_cache_id === null ? $this->smarty->cache_id : $_cache_id;
$this->compile_id = $_compile_id === null ? $this->smarty->compile_id : $_compile_id;
$this->caching = $_caching === null ? $this->smarty->caching : $_caching;
- if ($this->caching === true)
+ if ($this->caching === true) {
$this->caching = Smarty::CACHING_LIFETIME_CURRENT;
+ }
$this->cache_lifetime = $_cache_lifetime === null ? $this->smarty->cache_lifetime : $_cache_lifetime;
$this->parent = $_parent;
// Template resource
@@ -134,9 +146,9 @@ class Smarty_Internal_Template extends Smarty_Internal_TemplateBase {
/**
* Returns if the current template must be compiled by the Smarty compiler
- *
* It does compare the timestamps of template source and the compiled templates and checks the force compile configuration
*
+ * @throws SmartyException
* @return boolean true if the template must be compiled
*/
public function mustCompile()
@@ -153,12 +165,12 @@ class Smarty_Internal_Template extends Smarty_Internal_TemplateBase {
$this->mustCompile = (!$this->source->uncompiled && ($this->smarty->force_compile || $this->source->recompiled || $this->compiled->timestamp === false ||
($this->smarty->compile_check && $this->compiled->timestamp < $this->source->timestamp)));
}
+
return $this->mustCompile;
}
/**
* Compiles the template
- *
* If the template is not evaluated the compiled template is saved on disk
*/
public function compileTemplateSource()
@@ -166,16 +178,14 @@ class Smarty_Internal_Template extends Smarty_Internal_TemplateBase {
if (!$this->source->recompiled) {
$this->properties['file_dependency'] = array();
if ($this->source->components) {
+ // for the extends resource the compiler will fill it
// uses real resource for file dependency
- $source = end($this->source->components);
- $this->properties['file_dependency'][$this->source->uid] = array($this->source->filepath, $this->source->timestamp, $source->type);
+ // $source = end($this->source->components);
+ // $this->properties['file_dependency'][$this->source->uid] = array($this->source->filepath, $this->source->timestamp, $source->type);
} else {
$this->properties['file_dependency'][$this->source->uid] = array($this->source->filepath, $this->source->timestamp, $this->source->type);
}
}
- if ($this->smarty->debugging) {
- Smarty_Internal_Debug::start_compile($this);
- }
// compile locking
if ($this->smarty->compile_locking && !$this->source->recompiled) {
if ($saved_timestamp = $this->compiled->timestamp) {
@@ -185,7 +195,8 @@ class Smarty_Internal_Template extends Smarty_Internal_TemplateBase {
// call compiler
try {
$code = $this->compiler->compileTemplate($this);
- } catch (Exception $e) {
+ }
+ catch (Exception $e) {
// restore old timestamp in case of error
if ($this->smarty->compile_locking && !$this->source->recompiled && $saved_timestamp) {
touch($this->compiled->filepath, $saved_timestamp);
@@ -196,15 +207,13 @@ class Smarty_Internal_Template extends Smarty_Internal_TemplateBase {
if (!$this->source->recompiled && $this->compiler->write_compiled_code) {
// write compiled template
$_filepath = $this->compiled->filepath;
- if ($_filepath === false)
+ if ($_filepath === false) {
throw new SmartyException('getCompiledFilepath() did not return a destination to save the compiled template to');
+ }
Smarty_Internal_Write_File::writeFile($_filepath, $code, $this->smarty);
$this->compiled->exists = true;
$this->compiled->isCompiled = true;
}
- if ($this->smarty->debugging) {
- Smarty_Internal_Debug::end_compile($this);
- }
// release compiler object to free memory
unset($this->compiler);
}
@@ -212,6 +221,8 @@ class Smarty_Internal_Template extends Smarty_Internal_TemplateBase {
/**
* Writes the cached template output
*
+ * @param string $content
+ *
* @return bool
*/
public function writeCachedContent($content)
@@ -220,13 +231,18 @@ class Smarty_Internal_Template extends Smarty_Internal_TemplateBase {
// don't write cache file
return false;
}
+ $this->cached->timestamp = time();
$this->properties['cache_lifetime'] = $this->cache_lifetime;
- $this->properties['unifunc'] = 'content_' . str_replace('.', '_', uniqid('', true));
+ $this->properties['unifunc'] = 'content_' . str_replace(array('.', ','), '_', uniqid('', true));
$content = $this->createTemplateCodeFrame($content, true);
+ /** @var Smarty_Internal_Template $_smarty_tpl
+ * used in evaluated code
+ */
$_smarty_tpl = $this;
eval("?>" . $content);
$this->cached->valid = true;
$this->cached->processed = true;
+
return $this->cached->write($this, $content);
}
@@ -238,15 +254,16 @@ class Smarty_Internal_Template extends Smarty_Internal_TemplateBase {
* @param mixed $compile_id compile id to be used with this template
* @param integer $caching cache mode
* @param integer $cache_lifetime life time of cache data
- * @param array $vars optional variables to assign
+ * @param $data
* @param int $parent_scope scope in which {include} should execute
+ *
* @returns string template content
*/
public function getSubTemplate($template, $cache_id, $compile_id, $caching, $cache_lifetime, $data, $parent_scope)
{
// already in template cache?
if ($this->smarty->allow_ambiguous_resources) {
- $_templateId = Smarty_Resource::getUniqueTemplateName($this->smarty, $template) . $cache_id . $compile_id;
+ $_templateId = Smarty_Resource::getUniqueTemplateName($this, $template) . $cache_id . $compile_id;
} else {
$_templateId = $this->smarty->joined_template_dir . '#' . $template . $cache_id . $compile_id;
}
@@ -268,13 +285,13 @@ class Smarty_Internal_Template extends Smarty_Internal_TemplateBase {
$tpl->tpl_vars = $this->tpl_vars;
$tpl->tpl_vars['smarty'] = clone $this->tpl_vars['smarty'];
} elseif ($parent_scope == Smarty::SCOPE_PARENT) {
- $tpl->tpl_vars = &$this->tpl_vars;
+ $tpl->tpl_vars = & $this->tpl_vars;
} elseif ($parent_scope == Smarty::SCOPE_GLOBAL) {
- $tpl->tpl_vars = &Smarty::$global_tpl_vars;
+ $tpl->tpl_vars = & Smarty::$global_tpl_vars;
} elseif (($scope_ptr = $this->getScopePointer($parent_scope)) == null) {
- $tpl->tpl_vars = &$this->tpl_vars;
+ $tpl->tpl_vars = & $this->tpl_vars;
} else {
- $tpl->tpl_vars = &$scope_ptr->tpl_vars;
+ $tpl->tpl_vars = & $scope_ptr->tpl_vars;
}
$tpl->config_vars = $this->config_vars;
if (!empty($data)) {
@@ -283,6 +300,7 @@ class Smarty_Internal_Template extends Smarty_Internal_TemplateBase {
$tpl->tpl_vars[$_key] = new Smarty_variable($_val);
}
}
+
return $tpl->fetch(null, null, null, null, false, false, true);
}
@@ -294,27 +312,28 @@ class Smarty_Internal_Template extends Smarty_Internal_TemplateBase {
* @param mixed $compile_id compile id to be used with this template
* @param integer $caching cache mode
* @param integer $cache_lifetime life time of cache data
- * @param array $vars optional variables to assign
+ * @param $data
* @param int $parent_scope scope in which {include} should execute
* @param string $hash nocache hash code
+ *
* @returns string template content
*/
public function setupInlineSubTemplate($template, $cache_id, $compile_id, $caching, $cache_lifetime, $data, $parent_scope, $hash)
{
$tpl = new $this->smarty->template_class($template, $this->smarty, $this, $cache_id, $compile_id, $caching, $cache_lifetime);
- $tpl->properties['nocache_hash'] = $hash;
+ $tpl->properties['nocache_hash'] = $hash;
// get variables from calling scope
- if ($parent_scope == Smarty::SCOPE_LOCAL ) {
+ if ($parent_scope == Smarty::SCOPE_LOCAL) {
$tpl->tpl_vars = $this->tpl_vars;
$tpl->tpl_vars['smarty'] = clone $this->tpl_vars['smarty'];
} elseif ($parent_scope == Smarty::SCOPE_PARENT) {
- $tpl->tpl_vars = &$this->tpl_vars;
+ $tpl->tpl_vars = & $this->tpl_vars;
} elseif ($parent_scope == Smarty::SCOPE_GLOBAL) {
- $tpl->tpl_vars = &Smarty::$global_tpl_vars;
+ $tpl->tpl_vars = & Smarty::$global_tpl_vars;
} elseif (($scope_ptr = $this->getScopePointer($parent_scope)) == null) {
- $tpl->tpl_vars = &$this->tpl_vars;
+ $tpl->tpl_vars = & $this->tpl_vars;
} else {
- $tpl->tpl_vars = &$scope_ptr->tpl_vars;
+ $tpl->tpl_vars = & $scope_ptr->tpl_vars;
}
$tpl->config_vars = $this->config_vars;
if (!empty($data)) {
@@ -323,15 +342,16 @@ class Smarty_Internal_Template extends Smarty_Internal_TemplateBase {
$tpl->tpl_vars[$_key] = new Smarty_variable($_val);
}
}
+
return $tpl;
}
-
/**
* Create code frame for compiled and cached templates
*
- * @param string $content optional template content
- * @param bool $cache flag for cache file
+ * @param string $content optional template content
+ * @param bool $cache flag for cache file
+ *
* @return string
*/
public function createTemplateCodeFrame($content = '', $cache = false)
@@ -344,7 +364,11 @@ class Smarty_Internal_Template extends Smarty_Internal_TemplateBase {
foreach ($this->required_plugins['compiled'] as $tmp) {
foreach ($tmp as $data) {
$file = addslashes($data['file']);
- $plugins_string .= "if (!is_callable('{$data['function']}')) include '{$file}';\n";
+ if (is_Array($data['function'])) {
+ $plugins_string .= "if (!is_callable(array('{$data['function'][0]}','{$data['function'][1]}'))) include '{$file}';\n";
+ } else {
+ $plugins_string .= "if (!is_callable('{$data['function']}')) include '{$file}';\n";
+ }
}
}
$plugins_string .= '?>';
@@ -355,7 +379,11 @@ class Smarty_Internal_Template extends Smarty_Internal_TemplateBase {
foreach ($this->required_plugins['nocache'] as $tmp) {
foreach ($tmp as $data) {
$file = addslashes($data['file']);
- $plugins_string .= addslashes("if (!is_callable('{$data['function']}')) include '{$file}';\n");
+ if (is_Array($data['function'])) {
+ $plugins_string .= addslashes("if (!is_callable(array('{$data['function'][0]}','{$data['function'][1]}'))) include '{$file}';\n");
+ } else {
+ $plugins_string .= addslashes("if (!is_callable('{$data['function']}')) include '{$file}';\n");
+ }
}
}
$plugins_string .= "?>/*/%%SmartyNocache:{$this->properties['nocache_hash']}%%*/';?>\n";
@@ -382,7 +410,7 @@ class Smarty_Internal_Template extends Smarty_Internal_TemplateBase {
}
}
}
- foreach ($this->smarty->template_functions as $name => $function_data) {
+ foreach ($this->smarty->template_functions as $name => $function_data) {
if (isset($function_data['called_nocache'])) {
unset($function_data['called_nocache'], $function_data['called_functions'], $this->smarty->template_functions[$name]['called_nocache']);
$this->properties['function'][$name] = $function_data;
@@ -392,7 +420,7 @@ class Smarty_Internal_Template extends Smarty_Internal_TemplateBase {
}
$this->properties['version'] = Smarty::SMARTY_VERSION;
if (!isset($this->properties['unifunc'])) {
- $this->properties['unifunc'] = 'content_' . str_replace('.', '_', uniqid('', true));
+ $this->properties['unifunc'] = 'content_' . str_replace(array('.', ','), '_', uniqid('', true));
}
if (!$this->source->recompiled) {
$output .= "\$_valid = \$_smarty_tpl->decodeProperties(" . var_export($this->properties, true) . ',' . ($cache ? 'true' : 'false') . "); /*/%%SmartyHeaderCode%%*/?>\n";
@@ -401,20 +429,21 @@ class Smarty_Internal_Template extends Smarty_Internal_TemplateBase {
$output .= $plugins_string;
$output .= $content;
if (!$this->source->recompiled) {
- $output .= '<?php }} ?>';
+ $output .= "<?php }} ?>\n";
}
+
return $output;
}
/**
* This function is executed automatically when a compiled or cached template file is included
- *
* - Decode saved properties from compiled template and cache files
* - Check if compiled or cache file is valid
*
- * @param array $properties special template properties
- * @param bool $cache flag if called from cache file
- * @return bool flag if compiled or cache file is valid
+ * @param array $properties special template properties
+ * @param bool $cache flag if called from cache file
+ *
+ * @return bool flag if compiled or cache file is valid
*/
public function decodeProperties($properties, $cache = false)
{
@@ -436,7 +465,7 @@ class Smarty_Internal_Template extends Smarty_Internal_TemplateBase {
$is_valid = true;
if ($this->properties['version'] != Smarty::SMARTY_VERSION) {
$is_valid = false;
- } else if (((!$cache && $this->smarty->compile_check && empty($this->compiled->_properties) && !$this->compiled->isCompiled) || $cache && ($this->smarty->compile_check === true || $this->smarty->compile_check === Smarty::COMPILECHECK_ON)) && !empty($this->properties['file_dependency'])) {
+ } elseif (((!$cache && $this->smarty->compile_check && empty($this->compiled->_properties) && !$this->compiled->isCompiled) || $cache && ($this->smarty->compile_check === true || $this->smarty->compile_check === Smarty::COMPILECHECK_ON)) && !empty($this->properties['file_dependency'])) {
foreach ($this->properties['file_dependency'] as $_file_to_check) {
if ($_file_to_check[2] == 'file' || $_file_to_check[2] == 'php') {
if ($this->source->filepath == $_file_to_check[0] && isset($this->source->timestamp)) {
@@ -459,6 +488,13 @@ class Smarty_Internal_Template extends Smarty_Internal_TemplateBase {
}
}
if ($cache) {
+ // CACHING_LIFETIME_SAVED cache expiry has to be validated here since otherwise we'd define the unifunc
+ if ($this->caching === Smarty::CACHING_LIFETIME_SAVED &&
+ $this->properties['cache_lifetime'] >= 0 &&
+ (time() > ($this->cached->timestamp + $this->properties['cache_lifetime']))
+ ) {
+ $is_valid = false;
+ }
$this->cached->valid = $is_valid;
} else {
$this->mustCompile = !$is_valid;
@@ -467,15 +503,16 @@ class Smarty_Internal_Template extends Smarty_Internal_TemplateBase {
if (!$cache) {
$this->compiled->_properties = $properties;
}
+
return $is_valid;
}
/**
* Template code runtime function to create a local Smarty variable for array assignments
*
- * @param string $tpl_var tempate variable name
- * @param bool $nocache cache mode of variable
- * @param int $scope scope of variable
+ * @param string $tpl_var tempate variable name
+ * @param bool $nocache cache mode of variable
+ * @param int $scope scope of variable
*/
public function createLocalArrayVariable($tpl_var, $nocache = false, $scope = Smarty::SCOPE_LOCAL)
{
@@ -495,8 +532,9 @@ class Smarty_Internal_Template extends Smarty_Internal_TemplateBase {
/**
* Template code runtime function to get pointer to template variable array of requested scope
*
- * @param int $scope requested variable scope
- * @return array array of template variables
+ * @param int $scope requested variable scope
+ *
+ * @return array array of template variables
*/
public function &getScope($scope)
{
@@ -507,18 +545,21 @@ class Smarty_Internal_Template extends Smarty_Internal_TemplateBase {
while (!empty($ptr->parent)) {
$ptr = $ptr->parent;
}
+
return $ptr->tpl_vars;
} elseif ($scope == Smarty::SCOPE_GLOBAL) {
return Smarty::$global_tpl_vars;
}
$null = null;
+
return $null;
}
/**
* Get parent or root of template parent chain
*
- * @param int $scope pqrent or root scope
+ * @param int $scope pqrent or root scope
+ *
* @return mixed object
*/
public function getScopePointer($scope)
@@ -530,16 +571,19 @@ class Smarty_Internal_Template extends Smarty_Internal_TemplateBase {
while (!empty($ptr->parent)) {
$ptr = $ptr->parent;
}
+
return $ptr;
}
+
return null;
}
/**
* [util function] counts an array, arrayaccess/traversable or PDOStatement object
*
- * @param mixed $value
- * @return int the count for arrays and objects that implement countable, 1 for other objects that don't, and 0 for empty elements
+ * @param mixed $value
+ *
+ * @return int the count for arrays and objects that implement countable, 1 for other objects that don't, and 0 for empty elements
*/
public function _count($value)
{
@@ -562,12 +606,13 @@ class Smarty_Internal_Template extends Smarty_Internal_TemplateBase {
} elseif (is_object($value)) {
return count($value);
}
+
return 0;
}
/**
* runtime error not matching capture tags
- *
+
*/
public function capture_error()
{
@@ -575,22 +620,26 @@ class Smarty_Internal_Template extends Smarty_Internal_TemplateBase {
}
/**
- * Empty cache for this template
- *
- * @param integer $exp_time expiration time
- * @return integer number of cache files deleted
- */
- public function clearCache($exp_time=null)
+ * Empty cache for this template
+ *
+ * @param integer $exp_time expiration time
+ *
+ * @return integer number of cache files deleted
+ */
+ public function clearCache($exp_time = null)
{
Smarty_CacheResource::invalidLoadedCache($this->smarty);
+
return $this->cached->handler->clear($this->smarty, $this->template_name, $this->cache_id, $this->compile_id, $exp_time);
}
- /**
+ /**
* set Smarty property in template context
*
* @param string $property_name property name
* @param mixed $value value
+ *
+ * @throws SmartyException
*/
public function __set($property_name, $value)
{
@@ -600,12 +649,14 @@ class Smarty_Internal_Template extends Smarty_Internal_TemplateBase {
case 'cached':
case 'compiler':
$this->$property_name = $value;
+
return;
// FIXME: routing of template -> smarty attributes
default:
if (property_exists($this->smarty, $property_name)) {
$this->smarty->$property_name = $value;
+
return;
}
}
@@ -617,6 +668,8 @@ class Smarty_Internal_Template extends Smarty_Internal_TemplateBase {
* get Smarty property in template context
*
* @param string $property_name property name
+ *
+ * @throws SmartyException
*/
public function __get($property_name)
{
@@ -640,10 +693,12 @@ class Smarty_Internal_Template extends Smarty_Internal_TemplateBase {
}
$this->smarty->template_objects[$_templateId] = $this;
}
+
return $this->source;
case 'compiled':
$this->compiled = $this->source->getCompiled($this);
+
return $this->compiled;
case 'cached':
@@ -651,11 +706,13 @@ class Smarty_Internal_Template extends Smarty_Internal_TemplateBase {
include SMARTY_SYSPLUGINS_DIR . 'smarty_cacheresource.php';
}
$this->cached = new Smarty_Template_Cached($this);
+
return $this->cached;
case 'compiler':
$this->smarty->loadPlugin($this->source->compiler_class);
$this->compiler = new $this->source->compiler_class($this->source->template_lexer_class, $this->source->template_parser_class, $this->smarty);
+
return $this->compiler;
// FIXME: routing of template -> smarty attributes
@@ -669,8 +726,8 @@ class Smarty_Internal_Template extends Smarty_Internal_TemplateBase {
}
/**
- * Template data object destrutor
- *
+ * Template data object destructor
+
*/
public function __destruct()
{
@@ -678,7 +735,4 @@ class Smarty_Internal_Template extends Smarty_Internal_TemplateBase {
$this->cached->handler->releaseLock($this->smarty, $this->cached);
}
}
-
}
-
-?> \ No newline at end of file
diff --git a/library/Smarty/libs/sysplugins/smarty_internal_templatebase.php b/library/Smarty/libs/sysplugins/smarty_internal_templatebase.php
index abd48b799..f8f1c9e1e 100644
--- a/library/Smarty/libs/sysplugins/smarty_internal_templatebase.php
+++ b/library/Smarty/libs/sysplugins/smarty_internal_templatebase.php
@@ -1,32 +1,34 @@
<?php
/**
* Smarty Internal Plugin Smarty Template Base
+ * This file contains the basic shared methods for template handling
*
- * This file contains the basic shared methodes for template handling
- *
- * @package Smarty
+ * @package Smarty
* @subpackage Template
- * @author Uwe Tews
+ * @author Uwe Tews
*/
/**
- * Class with shared template methodes
+ * Class with shared template methods
*
- * @package Smarty
+ * @package Smarty
* @subpackage Template
*/
-abstract class Smarty_Internal_TemplateBase extends Smarty_Internal_Data {
-
+abstract class Smarty_Internal_TemplateBase extends Smarty_Internal_Data
+{
/**
* fetches a rendered Smarty template
*
- * @param string $template the resource handle of the template file or template object
- * @param mixed $cache_id cache id to be used with this template
- * @param mixed $compile_id compile id to be used with this template
- * @param object $parent next higher level of Smarty variables
- * @param bool $display true: display, false: fetch
- * @param bool $merge_tpl_vars if true parent template variables merged in to local scope
- * @param bool $no_output_filter if true do not run output filter
+ * @param string $template the resource handle of the template file or template object
+ * @param mixed $cache_id cache id to be used with this template
+ * @param mixed $compile_id compile id to be used with this template
+ * @param object $parent next higher level of Smarty variables
+ * @param bool $display true: display, false: fetch
+ * @param bool $merge_tpl_vars if true parent template variables merged in to local scope
+ * @param bool $no_output_filter if true do not run output filter
+ *
+ * @throws Exception
+ * @throws SmartyException
* @return string rendered template output
*/
public function fetch($template = null, $cache_id = null, $compile_id = null, $parent = null, $display = false, $merge_tpl_vars = true, $no_output_filter = false)
@@ -34,7 +36,7 @@ abstract class Smarty_Internal_TemplateBase extends Smarty_Internal_Data {
if ($template === null && $this instanceof $this->template_class) {
$template = $this;
}
- if (!empty($cache_id) && is_object($cache_id)) {
+ if ($cache_id !== null && is_object($cache_id)) {
$parent = $cache_id;
$cache_id = null;
}
@@ -43,8 +45,8 @@ abstract class Smarty_Internal_TemplateBase extends Smarty_Internal_Data {
}
// create template object if necessary
$_template = ($template instanceof $this->template_class)
- ? $template
- : $this->smarty->createTemplate($template, $cache_id, $compile_id, $parent, false);
+ ? $template
+ : $this->smarty->createTemplate($template, $cache_id, $compile_id, $parent, false);
// if called by Smarty object make sure we use current caching status
if ($this instanceof Smarty) {
$_template->caching = $this->caching;
@@ -130,29 +132,32 @@ abstract class Smarty_Internal_TemplateBase extends Smarty_Internal_Data {
if (!($_template->caching == Smarty::CACHING_LIFETIME_CURRENT || $_template->caching == Smarty::CACHING_LIFETIME_SAVED) || !$_template->cached->valid) {
// render template (not loaded and not in cache)
if (!$_template->source->uncompiled) {
+ /** @var Smarty_Internal_Template $_smarty_tpl
+ * used in evaluated code
+ */
$_smarty_tpl = $_template;
if ($_template->source->recompiled) {
- if ($this->smarty->debugging) {
- Smarty_Internal_Debug::start_compile($_template);
- }
$code = $_template->compiler->compileTemplate($_template);
if ($this->smarty->debugging) {
- Smarty_Internal_Debug::end_compile($_template);
- }
- if ($this->smarty->debugging) {
Smarty_Internal_Debug::start_render($_template);
}
try {
ob_start();
eval("?>" . $code);
unset($code);
- } catch (Exception $e) {
+ }
+ catch (Exception $e) {
ob_get_clean();
throw $e;
}
} else {
if (!$_template->compiled->exists || ($_template->smarty->force_compile && !$_template->compiled->isCompiled)) {
$_template->compileTemplateSource();
+ $code = file_get_contents($_template->compiled->filepath);
+ eval("?>" . $code);
+ unset($code);
+ $_template->compiled->loaded = true;
+ $_template->compiled->isCompiled = true;
}
if ($this->smarty->debugging) {
Smarty_Internal_Debug::start_render($_template);
@@ -162,7 +167,10 @@ abstract class Smarty_Internal_TemplateBase extends Smarty_Internal_Data {
if ($_template->mustCompile) {
// recompile and load again
$_template->compileTemplateSource();
- include($_template->compiled->filepath);
+ $code = file_get_contents($_template->compiled->filepath);
+ eval("?>" . $code);
+ unset($code);
+ $_template->compiled->isCompiled = true;
}
$_template->compiled->loaded = true;
} else {
@@ -173,7 +181,7 @@ abstract class Smarty_Internal_TemplateBase extends Smarty_Internal_Data {
if (empty($_template->properties['unifunc']) || !is_callable($_template->properties['unifunc'])) {
throw new SmartyException("Invalid compiled template for '{$_template->template_resource}'");
}
- array_unshift($_template->_capture_stack,array());
+ array_unshift($_template->_capture_stack, array());
//
// render compiled template
//
@@ -183,7 +191,8 @@ abstract class Smarty_Internal_TemplateBase extends Smarty_Internal_Data {
$_template->capture_error();
}
array_shift($_template->_capture_stack);
- } catch (Exception $e) {
+ }
+ catch (Exception $e) {
ob_get_clean();
throw $e;
}
@@ -196,7 +205,8 @@ abstract class Smarty_Internal_TemplateBase extends Smarty_Internal_Data {
try {
ob_start();
$_template->source->renderUncompiled($_template);
- } catch (Exception $e) {
+ }
+ catch (Exception $e) {
ob_get_clean();
throw $e;
}
@@ -235,7 +245,7 @@ abstract class Smarty_Internal_TemplateBase extends Smarty_Internal_Data {
// loop over items, stitch back together
foreach ($cache_split as $curr_idx => $curr_split) {
// escape PHP tags in template content
- $output .= preg_replace('/(<%|%>|<\?php|<\?|\?>)/', '<?php echo \'$1\'; ?>', $curr_split);
+ $output .= preg_replace('/(<%|%>|<\?php|<\?|\?>|<script\s+language\s*=\s*[\"\']?\s*php\s*[\"\']?\s*>)/', "<?php echo '\$1'; ?>\n", $curr_split);
if (isset($cache_parts[0][$curr_idx])) {
$_template->properties['has_nocache_code'] = true;
// remove nocache tags from cache output
@@ -246,12 +256,16 @@ abstract class Smarty_Internal_TemplateBase extends Smarty_Internal_Data {
$output = Smarty_Internal_Filter_Handler::runFilter('output', $output, $_template);
}
// rendering (must be done before writing cache file because of {function} nocache handling)
+ /** @var Smarty_Internal_Template $_smarty_tpl
+ * used in evaluated code
+ */
$_smarty_tpl = $_template;
try {
ob_start();
eval("?>" . $output);
$_output = ob_get_clean();
- } catch (Exception $e) {
+ }
+ catch (Exception $e) {
ob_get_clean();
throw $e;
}
@@ -274,7 +288,7 @@ abstract class Smarty_Internal_TemplateBase extends Smarty_Internal_Data {
}
try {
ob_start();
- array_unshift($_template->_capture_stack,array());
+ array_unshift($_template->_capture_stack, array());
//
// render cached template
//
@@ -285,7 +299,8 @@ abstract class Smarty_Internal_TemplateBase extends Smarty_Internal_Data {
}
array_shift($_template->_capture_stack);
$_output = ob_get_clean();
- } catch (Exception $e) {
+ }
+ catch (Exception $e) {
ob_get_clean();
throw $e;
}
@@ -306,33 +321,37 @@ abstract class Smarty_Internal_TemplateBase extends Smarty_Internal_Data {
$_last_modified_date = @substr($_SERVER['HTTP_IF_MODIFIED_SINCE'], 0, strpos($_SERVER['HTTP_IF_MODIFIED_SINCE'], 'GMT') + 3);
if ($_isCached && $_template->cached->timestamp <= strtotime($_last_modified_date)) {
switch (PHP_SAPI) {
- case 'cgi': // php-cgi < 5.3
- case 'cgi-fcgi': // php-cgi >= 5.3
- case 'fpm-fcgi': // php-fpm >= 5.3.3
- header('Status: 304 Not Modified');
- break;
+ case 'cgi': // php-cgi < 5.3
+ case 'cgi-fcgi': // php-cgi >= 5.3
+ case 'fpm-fcgi': // php-fpm >= 5.3.3
+ header('Status: 304 Not Modified');
+ break;
case 'cli':
- if (/* ^phpunit */!empty($_SERVER['SMARTY_PHPUNIT_DISABLE_HEADERS'])/* phpunit$ */) {
- $_SERVER['SMARTY_PHPUNIT_HEADERS'][] = '304 Not Modified';
- }
- break;
+ if ( /* ^phpunit */
+ !empty($_SERVER['SMARTY_PHPUNIT_DISABLE_HEADERS']) /* phpunit$ */
+ ) {
+ $_SERVER['SMARTY_PHPUNIT_HEADERS'][] = '304 Not Modified';
+ }
+ break;
default:
- header($_SERVER['SERVER_PROTOCOL'].' 304 Not Modified');
- break;
+ header($_SERVER['SERVER_PROTOCOL'] . ' 304 Not Modified');
+ break;
}
} else {
switch (PHP_SAPI) {
case 'cli':
- if (/* ^phpunit */!empty($_SERVER['SMARTY_PHPUNIT_DISABLE_HEADERS'])/* phpunit$ */) {
- $_SERVER['SMARTY_PHPUNIT_HEADERS'][] = 'Last-Modified: ' . gmdate('D, d M Y H:i:s', $_template->cached->timestamp) . ' GMT';
- }
- break;
+ if ( /* ^phpunit */
+ !empty($_SERVER['SMARTY_PHPUNIT_DISABLE_HEADERS']) /* phpunit$ */
+ ) {
+ $_SERVER['SMARTY_PHPUNIT_HEADERS'][] = 'Last-Modified: ' . gmdate('D, d M Y H:i:s', $_template->cached->timestamp) . ' GMT';
+ }
+ break;
default:
- header('Last-Modified: ' . gmdate('D, d M Y H:i:s', $_template->cached->timestamp) . ' GMT');
- break;
+ header('Last-Modified: ' . gmdate('D, d M Y H:i:s', $_template->cached->timestamp) . ' GMT');
+ break;
}
echo $_output;
}
@@ -341,19 +360,20 @@ abstract class Smarty_Internal_TemplateBase extends Smarty_Internal_Data {
}
// debug output
if ($this->smarty->debugging) {
- Smarty_Internal_Debug::display_debug($this);
+ Smarty_Internal_Debug::display_debug($_template);
}
if ($merge_tpl_vars) {
// restore local variables
$_template->tpl_vars = $save_tpl_vars;
- $_template->config_vars = $save_config_vars;
+ $_template->config_vars = $save_config_vars;
}
+
return;
} else {
if ($merge_tpl_vars) {
// restore local variables
$_template->tpl_vars = $save_tpl_vars;
- $_template->config_vars = $save_config_vars;
+ $_template->config_vars = $save_config_vars;
}
// return fetched content
return $_output;
@@ -377,11 +397,12 @@ abstract class Smarty_Internal_TemplateBase extends Smarty_Internal_Data {
/**
* test if cache is valid
*
- * @param string|object $template the resource handle of the template file or template object
- * @param mixed $cache_id cache id to be used with this template
- * @param mixed $compile_id compile id to be used with this template
- * @param object $parent next higher level of Smarty variables
- * @return boolean cache status
+ * @param string|object $template the resource handle of the template file or template object
+ * @param mixed $cache_id cache id to be used with this template
+ * @param mixed $compile_id compile id to be used with this template
+ * @param object $parent next higher level of Smarty variables
+ *
+ * @return boolean cache status
*/
public function isCached($template = null, $cache_id = null, $compile_id = null, $parent = null)
{
@@ -402,6 +423,7 @@ abstract class Smarty_Internal_TemplateBase extends Smarty_Internal_Data {
* creates a data object
*
* @param object $parent next higher level of Smarty variables
+ *
* @returns Smarty_Data data object
*/
public function createData($parent = null)
@@ -412,13 +434,14 @@ abstract class Smarty_Internal_TemplateBase extends Smarty_Internal_Data {
/**
* Registers plugin to be used in templates
*
- * @param string $type plugin type
- * @param string $tag name of template tag
- * @param callback $callback PHP callback to register
- * @param boolean $cacheable if true (default) this fuction is cachable
- * @param array $cache_attr caching attributes if any
+ * @param string $type plugin type
+ * @param string $tag name of template tag
+ * @param callback $callback PHP callback to register
+ * @param boolean $cacheable if true (default) this fuction is cachable
+ * @param array $cache_attr caching attributes if any
+ *
* @return Smarty_Internal_Templatebase current Smarty_Internal_Templatebase (or Smarty or Smarty_Internal_Template) instance for chaining
- * @throws SmartyException when the plugin tag is invalid
+ * @throws SmartyException when the plugin tag is invalid
*/
public function registerPlugin($type, $tag, $callback, $cacheable = true, $cache_attr = null)
{
@@ -436,8 +459,9 @@ abstract class Smarty_Internal_TemplateBase extends Smarty_Internal_Data {
/**
* Unregister Plugin
*
- * @param string $type of plugin
- * @param string $tag name of plugin
+ * @param string $type of plugin
+ * @param string $tag name of plugin
+ *
* @return Smarty_Internal_Templatebase current Smarty_Internal_Templatebase (or Smarty or Smarty_Internal_Template) instance for chaining
*/
public function unregisterPlugin($type, $tag)
@@ -452,20 +476,23 @@ abstract class Smarty_Internal_TemplateBase extends Smarty_Internal_Data {
/**
* Registers a resource to fetch a template
*
- * @param string $type name of resource type
- * @param Smarty_Resource|array $callback or instance of Smarty_Resource, or array of callbacks to handle resource (deprecated)
+ * @param string $type name of resource type
+ * @param Smarty_Resource|array $callback or instance of Smarty_Resource, or array of callbacks to handle resource (deprecated)
+ *
* @return Smarty_Internal_Templatebase current Smarty_Internal_Templatebase (or Smarty or Smarty_Internal_Template) instance for chaining
*/
public function registerResource($type, $callback)
{
$this->smarty->registered_resources[$type] = $callback instanceof Smarty_Resource ? $callback : array($callback, false);
+
return $this;
}
/**
* Unregisters a resource
*
- * @param string $type name of resource type
+ * @param string $type name of resource type
+ *
* @return Smarty_Internal_Templatebase current Smarty_Internal_Templatebase (or Smarty or Smarty_Internal_Template) instance for chaining
*/
public function unregisterResource($type)
@@ -480,20 +507,23 @@ abstract class Smarty_Internal_TemplateBase extends Smarty_Internal_Data {
/**
* Registers a cache resource to cache a template's output
*
- * @param string $type name of cache resource type
- * @param Smarty_CacheResource $callback instance of Smarty_CacheResource to handle output caching
+ * @param string $type name of cache resource type
+ * @param Smarty_CacheResource $callback instance of Smarty_CacheResource to handle output caching
+ *
* @return Smarty_Internal_Templatebase current Smarty_Internal_Templatebase (or Smarty or Smarty_Internal_Template) instance for chaining
*/
public function registerCacheResource($type, Smarty_CacheResource $callback)
{
$this->smarty->registered_cache_resources[$type] = $callback;
+
return $this;
}
/**
* Unregisters a cache resource
*
- * @param string $type name of cache resource type
+ * @param string $type name of cache resource type
+ *
* @return Smarty_Internal_Templatebase current Smarty_Internal_Templatebase (or Smarty or Smarty_Internal_Template) instance for chaining
*/
public function unregisterCacheResource($type)
@@ -508,26 +538,26 @@ abstract class Smarty_Internal_TemplateBase extends Smarty_Internal_Data {
/**
* Registers object to be used in templates
*
- * @param string $object name of template object
- * @param object $object_impl the referenced PHP object to register
- * @param array $allowed list of allowed methods (empty = all)
- * @param boolean $smarty_args smarty argument format, else traditional
- * @param array $block_methods list of block-methods
- * @param array $block_functs list of methods that are block format
+ * @param $object_name
+ * @param object $object_impl the referenced PHP object to register
+ * @param array $allowed list of allowed methods (empty = all)
+ * @param boolean $smarty_args smarty argument format, else traditional
+ * @param array $block_methods list of block-methods
+ *
+ * @throws SmartyException
* @return Smarty_Internal_Templatebase current Smarty_Internal_Templatebase (or Smarty or Smarty_Internal_Template) instance for chaining
- * @throws SmartyException if any of the methods in $allowed or $block_methods are invalid
*/
public function registerObject($object_name, $object_impl, $allowed = array(), $smarty_args = true, $block_methods = array())
{
- // test if allowed methodes callable
+ // test if allowed methods callable
if (!empty($allowed)) {
foreach ((array) $allowed as $method) {
- if (!is_callable(array($object_impl, $method))) {
- throw new SmartyException("Undefined method '$method' in registered object");
+ if (!is_callable(array($object_impl, $method)) && !property_exists($object_impl, $method)) {
+ throw new SmartyException("Undefined method or property '$method' in registered object");
}
}
}
- // test if block methodes callable
+ // test if block methods callable
if (!empty($block_methods)) {
foreach ((array) $block_methods as $method) {
if (!is_callable(array($object_impl, $method))) {
@@ -537,14 +567,16 @@ abstract class Smarty_Internal_TemplateBase extends Smarty_Internal_Data {
}
// register the object
$this->smarty->registered_objects[$object_name] =
- array($object_impl, (array) $allowed, (boolean) $smarty_args, (array) $block_methods);
+ array($object_impl, (array) $allowed, (boolean) $smarty_args, (array) $block_methods);
+
return $this;
}
/**
* return a reference to a registered object
*
- * @param string $name object name
+ * @param string $name object name
+ *
* @return object
* @throws SmartyException if no such object is found
*/
@@ -556,13 +588,15 @@ abstract class Smarty_Internal_TemplateBase extends Smarty_Internal_Data {
if (!is_object($this->smarty->registered_objects[$name][0])) {
throw new SmartyException("registered '$name' is not an object");
}
+
return $this->smarty->registered_objects[$name][0];
}
/**
* unregister an object
*
- * @param string $name object name
+ * @param string $name object name
+ *
* @return Smarty_Internal_Templatebase current Smarty_Internal_Templatebase (or Smarty or Smarty_Internal_Template) instance for chaining
*/
public function unregisterObject($name)
@@ -577,10 +611,11 @@ abstract class Smarty_Internal_TemplateBase extends Smarty_Internal_Data {
/**
* Registers static classes to be used in templates
*
- * @param string $class name of template class
- * @param string $class_impl the referenced PHP class to register
+ * @param $class_name
+ * @param string $class_impl the referenced PHP class to register
+ *
+ * @throws SmartyException
* @return Smarty_Internal_Templatebase current Smarty_Internal_Templatebase (or Smarty or Smarty_Internal_Template) instance for chaining
- * @throws SmartyException if $class_impl does not refer to an existing class
*/
public function registerClass($class_name, $class_impl)
{
@@ -590,15 +625,17 @@ abstract class Smarty_Internal_TemplateBase extends Smarty_Internal_Data {
}
// register the class
$this->smarty->registered_classes[$class_name] = $class_impl;
+
return $this;
}
/**
* Registers a default plugin handler
*
- * @param callable $callback class/method name
+ * @param callable $callback class/method name
+ *
* @return Smarty_Internal_Templatebase current Smarty_Internal_Templatebase (or Smarty or Smarty_Internal_Template) instance for chaining
- * @throws SmartyException if $callback is not callable
+ * @throws SmartyException if $callback is not callable
*/
public function registerDefaultPluginHandler($callback)
{
@@ -614,9 +651,10 @@ abstract class Smarty_Internal_TemplateBase extends Smarty_Internal_Data {
/**
* Registers a default template handler
*
- * @param callable $callback class/method name
+ * @param callable $callback class/method name
+ *
* @return Smarty_Internal_Templatebase current Smarty_Internal_Templatebase (or Smarty or Smarty_Internal_Template) instance for chaining
- * @throws SmartyException if $callback is not callable
+ * @throws SmartyException if $callback is not callable
*/
public function registerDefaultTemplateHandler($callback)
{
@@ -632,9 +670,10 @@ abstract class Smarty_Internal_TemplateBase extends Smarty_Internal_Data {
/**
* Registers a default template handler
*
- * @param callable $callback class/method name
+ * @param callable $callback class/method name
+ *
* @return Smarty_Internal_Templatebase current Smarty_Internal_Templatebase (or Smarty or Smarty_Internal_Template) instance for chaining
- * @throws SmartyException if $callback is not callable
+ * @throws SmartyException if $callback is not callable
*/
public function registerDefaultConfigHandler($callback)
{
@@ -650,21 +689,24 @@ abstract class Smarty_Internal_TemplateBase extends Smarty_Internal_Data {
/**
* Registers a filter function
*
- * @param string $type filter type
- * @param callback $callback
+ * @param string $type filter type
+ * @param callback $callback
+ *
* @return Smarty_Internal_Templatebase current Smarty_Internal_Templatebase (or Smarty or Smarty_Internal_Template) instance for chaining
*/
public function registerFilter($type, $callback)
{
$this->smarty->registered_filters[$type][$this->_get_filter_name($callback)] = $callback;
+
return $this;
}
/**
* Unregisters a filter function
*
- * @param string $type filter type
- * @param callback $callback
+ * @param string $type filter type
+ * @param callback $callback
+ *
* @return Smarty_Internal_Templatebase current Smarty_Internal_Templatebase (or Smarty or Smarty_Internal_Template) instance for chaining
*/
public function unregisterFilter($type, $callback)
@@ -680,14 +722,16 @@ abstract class Smarty_Internal_TemplateBase extends Smarty_Internal_Data {
/**
* Return internal filter name
*
- * @param callback $function_name
- * @return string internal filter name
+ * @param callback $function_name
+ *
+ * @return string internal filter name
*/
public function _get_filter_name($function_name)
{
if (is_array($function_name)) {
$_class_name = (is_object($function_name[0]) ?
- get_class($function_name[0]) : $function_name[0]);
+ get_class($function_name[0]) : $function_name[0]);
+
return $_class_name . '_' . $function_name[1];
} else {
return $function_name;
@@ -697,8 +741,9 @@ abstract class Smarty_Internal_TemplateBase extends Smarty_Internal_Data {
/**
* load a filter of specified type and name
*
- * @param string $type filter type
- * @param string $name filter name
+ * @param string $type filter type
+ * @param string $name filter name
+ *
* @throws SmartyException if filter could not be loaded
*/
public function loadFilter($type, $name)
@@ -711,6 +756,7 @@ abstract class Smarty_Internal_TemplateBase extends Smarty_Internal_Data {
}
if (is_callable($_plugin)) {
$this->smarty->registered_filters[$type][$_filter_name] = $_plugin;
+
return true;
}
}
@@ -720,8 +766,9 @@ abstract class Smarty_Internal_TemplateBase extends Smarty_Internal_Data {
/**
* unload a filter of specified type and name
*
- * @param string $type filter type
- * @param string $name filter name
+ * @param string $type filter type
+ * @param string $name filter name
+ *
* @return Smarty_Internal_Templatebase current Smarty_Internal_Templatebase (or Smarty or Smarty_Internal_Template) instance for chaining
*/
public function unloadFilter($type, $name)
@@ -737,10 +784,12 @@ abstract class Smarty_Internal_TemplateBase extends Smarty_Internal_Data {
/**
* preg_replace callback to convert camelcase getter/setter to underscore property names
*
- * @param string $match match string
+ * @param string $match match string
+ *
* @return string replacemant
*/
- private function replaceCamelcase($match) {
+ private function replaceCamelcase($match)
+ {
return "_" . strtolower($match[1]);
}
@@ -749,6 +798,8 @@ abstract class Smarty_Internal_TemplateBase extends Smarty_Internal_Data {
*
* @param string $name unknown method-name
* @param array $args argument array
+ *
+ * @throws SmartyException
*/
public function __call($name, $args)
{
@@ -770,7 +821,7 @@ abstract class Smarty_Internal_TemplateBase extends Smarty_Internal_Data {
// lcfirst() not available < PHP 5.3.0, so improvise
$property_name = strtolower(substr($name, 3, 1)) . substr($name, 4);
// convert camel case to underscored name
- $property_name = preg_replace_callback('/([A-Z])/', array($this,'replaceCamelcase'), $property_name);
+ $property_name = preg_replace_callback('/([A-Z])/', array($this, 'replaceCamelcase'), $property_name);
$_resolved_property_name[$name] = $property_name;
}
if (isset($_resolved_property_source[$property_name])) {
@@ -779,25 +830,26 @@ abstract class Smarty_Internal_TemplateBase extends Smarty_Internal_Data {
$_is_this = null;
if (property_exists($this, $property_name)) {
$_is_this = true;
- } else if (property_exists($this->smarty, $property_name)) {
+ } elseif (property_exists($this->smarty, $property_name)) {
$_is_this = false;
}
$_resolved_property_source[$property_name] = $_is_this;
}
if ($_is_this) {
- if ($first3 == 'get')
- return $this->$property_name;
- else
- return $this->$property_name = $args[0];
- } else if ($_is_this === false) {
- if ($first3 == 'get')
- return $this->smarty->$property_name;
- else
- return $this->smarty->$property_name = $args[0];
+ if ($first3 == 'get') {
+ return $this->$property_name;
+ } else {
+ return $this->$property_name = $args[0];
+ }
+ } elseif ($_is_this === false) {
+ if ($first3 == 'get') {
+ return $this->smarty->$property_name;
+ } else {
+ return $this->smarty->$property_name = $args[0];
+ }
} else {
throw new SmartyException("property '$property_name' does not exist.");
- return false;
- }
+ }
}
if ($name == 'Smarty') {
throw new SmartyException("PHP5 requires you to call __construct() instead of Smarty()");
@@ -805,7 +857,4 @@ abstract class Smarty_Internal_TemplateBase extends Smarty_Internal_Data {
// must be unknown
throw new SmartyException("Call of unknown method '$name'.");
}
-
}
-
-?> \ No newline at end of file
diff --git a/library/Smarty/libs/sysplugins/smarty_internal_templatecompilerbase.php b/library/Smarty/libs/sysplugins/smarty_internal_templatecompilerbase.php
index 85906239d..d00bfb8f4 100644
--- a/library/Smarty/libs/sysplugins/smarty_internal_templatecompilerbase.php
+++ b/library/Smarty/libs/sysplugins/smarty_internal_templatecompilerbase.php
@@ -1,661 +1,823 @@
-<?php
-
-/**
- * Smarty Internal Plugin Smarty Template Compiler Base
- *
- * This file contains the basic classes and methodes for compiling Smarty templates with lexer/parser
- *
- * @package Smarty
- * @subpackage Compiler
- * @author Uwe Tews
- */
-
-/**
- * Main abstract compiler class
- *
- * @package Smarty
- * @subpackage Compiler
- */
-abstract class Smarty_Internal_TemplateCompilerBase {
-
- /**
- * hash for nocache sections
- *
- * @var mixed
- */
- private $nocache_hash = null;
-
- /**
- * suppress generation of nocache code
- *
- * @var bool
- */
- public $suppressNocacheProcessing = false;
-
- /**
- * suppress generation of merged template code
- *
- * @var bool
- */
- public $suppressMergedTemplates = false;
-
- /**
- * compile tag objects
- *
- * @var array
- */
- public static $_tag_objects = array();
-
- /**
- * tag stack
- *
- * @var array
- */
- public $_tag_stack = array();
-
- /**
- * current template
- *
- * @var Smarty_Internal_Template
- */
- public $template = null;
-
- /**
- * merged templates
- *
- * @var array
- */
- public $merged_templates = array();
-
- /**
- * flag when compiling {block}
- *
- * @var bool
- */
- public $inheritance = false;
-
- /**
- * plugins loaded by default plugin handler
- *
- * @var array
- */
- public $default_handler_plugins = array();
-
- /**
- * saved preprocessed modifier list
- *
- * @var mixed
- */
- public $default_modifier_list = null;
-
- /**
- * force compilation of complete template as nocache
- * @var boolean
- */
- public $forceNocache = false;
-
- /**
- * suppress Smarty header code in compiled template
- * @var bool
- */
- public $suppressHeader = false;
-
- /**
- * suppress template property header code in compiled template
- * @var bool
- */
- public $suppressTemplatePropertyHeader = false;
-
- /**
- * flag if compiled template file shall we written
- * @var bool
- */
- public $write_compiled_code = true;
-
- /**
- * flag if currently a template function is compiled
- * @var bool
- */
- public $compiles_template_function = false;
-
- /**
- * called subfuntions from template function
- * @var array
- */
- public $called_functions = array();
-
- /**
- * flags for used modifier plugins
- * @var array
- */
- public $modifier_plugins = array();
-
- /**
- * type of already compiled modifier
- * @var array
- */
- public $known_modifier_type = array();
-
- /**
- * Initialize compiler
- */
- public function __construct() {
- $this->nocache_hash = str_replace('.', '-', uniqid(rand(), true));
- }
-
- /**
- * Method to compile a Smarty template
- *
- * @param Smarty_Internal_Template $template template object to compile
- * @return bool true if compiling succeeded, false if it failed
- */
- public function compileTemplate(Smarty_Internal_Template $template) {
- if (empty($template->properties['nocache_hash'])) {
- $template->properties['nocache_hash'] = $this->nocache_hash;
- } else {
- $this->nocache_hash = $template->properties['nocache_hash'];
- }
- // flag for nochache sections
- $this->nocache = false;
- $this->tag_nocache = false;
- // save template object in compiler class
- $this->template = $template;
- // reset has noche code flag
- $this->template->has_nocache_code = false;
- $this->smarty->_current_file = $saved_filepath = $this->template->source->filepath;
- // template header code
- $template_header = '';
- if (!$this->suppressHeader) {
- $template_header .= "<?php /* Smarty version " . Smarty::SMARTY_VERSION . ", created on " . strftime("%Y-%m-%d %H:%M:%S") . "\n";
- $template_header .= " compiled from \"" . $this->template->source->filepath . "\" */ ?>\n";
- }
-
- do {
- // flag for aborting current and start recompile
- $this->abort_and_recompile = false;
- // get template source
- $_content = $template->source->content;
- // run prefilter if required
- if (isset($this->smarty->autoload_filters['pre']) || isset($this->smarty->registered_filters['pre'])) {
- $_content = Smarty_Internal_Filter_Handler::runFilter('pre', $_content, $template);
- }
- // on empty template just return header
- if ($_content == '') {
- if ($this->suppressTemplatePropertyHeader) {
- $code = '';
- } else {
- $code = $template_header . $template->createTemplateCodeFrame();
- }
- return $code;
- }
- // call compiler
- $_compiled_code = $this->doCompile($_content);
- } while ($this->abort_and_recompile);
- $this->template->source->filepath = $saved_filepath;
- // free memory
- unset($this->parser->root_buffer, $this->parser->current_buffer, $this->parser, $this->lex, $this->template);
- self::$_tag_objects = array();
- // return compiled code to template object
- $merged_code = '';
- if (!$this->suppressMergedTemplates && !empty($this->merged_templates)) {
- foreach ($this->merged_templates as $code) {
- $merged_code .= $code;
- }
- // run postfilter if required on merged code
- if (isset($this->smarty->autoload_filters['post']) || isset($this->smarty->registered_filters['post'])) {
- $merged_code = Smarty_Internal_Filter_Handler::runFilter('post', $merged_code, $template);
- }
- }
- // run postfilter if required on compiled template code
- if (isset($this->smarty->autoload_filters['post']) || isset($this->smarty->registered_filters['post'])) {
- $_compiled_code = Smarty_Internal_Filter_Handler::runFilter('post', $_compiled_code, $template);
- }
- if ($this->suppressTemplatePropertyHeader) {
- $code = $_compiled_code . $merged_code;
- } else {
- $code = $template_header . $template->createTemplateCodeFrame($_compiled_code) . $merged_code;
- }
- return $code;
- }
-
- /**
- * Compile Tag
- *
- * This is a call back from the lexer/parser
- * It executes the required compile plugin for the Smarty tag
- *
- * @param string $tag tag name
- * @param array $args array with tag attributes
- * @param array $parameter array with compilation parameter
- * @return string compiled code
- */
- public function compileTag($tag, $args, $parameter = array()) {
- // $args contains the attributes parsed and compiled by the lexer/parser
- // assume that tag does compile into code, but creates no HTML output
- $this->has_code = true;
- $this->has_output = false;
- // log tag/attributes
- if (isset($this->smarty->get_used_tags) && $this->smarty->get_used_tags) {
- $this->template->used_tags[] = array($tag, $args);
- }
- // check nocache option flag
- if (in_array("'nocache'", $args) || in_array(array('nocache' => 'true'), $args)
- || in_array(array('nocache' => '"true"'), $args) || in_array(array('nocache' => "'true'"), $args)) {
- $this->tag_nocache = true;
- }
- // compile the smarty tag (required compile classes to compile the tag are autoloaded)
- if (($_output = $this->callTagCompiler($tag, $args, $parameter)) === false) {
- if (isset($this->smarty->template_functions[$tag])) {
- // template defined by {template} tag
- $args['_attr']['name'] = "'" . $tag . "'";
- $_output = $this->callTagCompiler('call', $args, $parameter);
- }
- }
- if ($_output !== false) {
- if ($_output !== true) {
- // did we get compiled code
- if ($this->has_code) {
- // Does it create output?
- if ($this->has_output) {
- $_output .= "\n";
- }
- // return compiled code
- return $_output;
- }
- }
- // tag did not produce compiled code
- return '';
- } else {
- // map_named attributes
- if (isset($args['_attr'])) {
- foreach ($args['_attr'] as $key => $attribute) {
- if (is_array($attribute)) {
- $args = array_merge($args, $attribute);
- }
- }
- }
- // not an internal compiler tag
- if (strlen($tag) < 6 || substr($tag, -5) != 'close') {
- // check if tag is a registered object
- if (isset($this->smarty->registered_objects[$tag]) && isset($parameter['object_methode'])) {
- $methode = $parameter['object_methode'];
- if (!in_array($methode, $this->smarty->registered_objects[$tag][3]) &&
- (empty($this->smarty->registered_objects[$tag][1]) || in_array($methode, $this->smarty->registered_objects[$tag][1]))) {
- return $this->callTagCompiler('private_object_function', $args, $parameter, $tag, $methode);
- } elseif (in_array($methode, $this->smarty->registered_objects[$tag][3])) {
- return $this->callTagCompiler('private_object_block_function', $args, $parameter, $tag, $methode);
- } else {
- return $this->trigger_template_error('unallowed methode "' . $methode . '" in registered object "' . $tag . '"', $this->lex->taglineno);
- }
- }
- // check if tag is registered
- foreach (array(Smarty::PLUGIN_COMPILER, Smarty::PLUGIN_FUNCTION, Smarty::PLUGIN_BLOCK) as $plugin_type) {
- if (isset($this->smarty->registered_plugins[$plugin_type][$tag])) {
- // if compiler function plugin call it now
- if ($plugin_type == Smarty::PLUGIN_COMPILER) {
- $new_args = array();
- foreach ($args as $key => $mixed) {
- if (is_array($mixed)) {
- $new_args = array_merge($new_args, $mixed);
- } else {
- $new_args[$key] = $mixed;
- }
- }
- if (!$this->smarty->registered_plugins[$plugin_type][$tag][1]) {
- $this->tag_nocache = true;
- }
- $function = $this->smarty->registered_plugins[$plugin_type][$tag][0];
- if (!is_array($function)) {
- return $function($new_args, $this);
- } else if (is_object($function[0])) {
- return $this->smarty->registered_plugins[$plugin_type][$tag][0][0]->$function[1]($new_args, $this);
- } else {
- return call_user_func_array($function, array($new_args, $this));
- }
- }
- // compile registered function or block function
- if ($plugin_type == Smarty::PLUGIN_FUNCTION || $plugin_type == Smarty::PLUGIN_BLOCK) {
- return $this->callTagCompiler('private_registered_' . $plugin_type, $args, $parameter, $tag);
- }
- }
- }
- // check plugins from plugins folder
- foreach ($this->smarty->plugin_search_order as $plugin_type) {
- if ($plugin_type == Smarty::PLUGIN_BLOCK && $this->smarty->loadPlugin('smarty_compiler_' . $tag) && (!isset($this->smarty->security_policy) || $this->smarty->security_policy->isTrustedTag($tag, $this))) {
- $plugin = 'smarty_compiler_' . $tag;
- if (is_callable($plugin)) {
- // convert arguments format for old compiler plugins
- $new_args = array();
- foreach ($args as $key => $mixed) {
- if (is_array($mixed)) {
- $new_args = array_merge($new_args, $mixed);
- } else {
- $new_args[$key] = $mixed;
- }
- }
- return $plugin($new_args, $this->smarty);
- }
- if (class_exists($plugin, false)) {
- $plugin_object = new $plugin;
- if (method_exists($plugin_object, 'compile')) {
- return $plugin_object->compile($args, $this);
- }
- }
- throw new SmartyException("Plugin \"{$tag}\" not callable");
- } else {
- if ($function = $this->getPlugin($tag, $plugin_type)) {
- if (!isset($this->smarty->security_policy) || $this->smarty->security_policy->isTrustedTag($tag, $this)) {
- return $this->callTagCompiler('private_' . $plugin_type . '_plugin', $args, $parameter, $tag, $function);
- }
- }
- }
- }
- if (is_callable($this->smarty->default_plugin_handler_func)) {
- $found = false;
- // look for already resolved tags
- foreach ($this->smarty->plugin_search_order as $plugin_type) {
- if (isset($this->default_handler_plugins[$plugin_type][$tag])) {
- $found = true;
- break;
- }
- }
- if (!$found) {
- // call default handler
- foreach ($this->smarty->plugin_search_order as $plugin_type) {
- if ($this->getPluginFromDefaultHandler($tag, $plugin_type)) {
- $found = true;
- break;
- }
- }
- }
- if ($found) {
- // if compiler function plugin call it now
- if ($plugin_type == Smarty::PLUGIN_COMPILER) {
- $new_args = array();
- foreach ($args as $mixed) {
- $new_args = array_merge($new_args, $mixed);
- }
- $function = $this->default_handler_plugins[$plugin_type][$tag][0];
- if (!is_array($function)) {
- return $function($new_args, $this);
- } else if (is_object($function[0])) {
- return $this->default_handler_plugins[$plugin_type][$tag][0][0]->$function[1]($new_args, $this);
- } else {
- return call_user_func_array($function, array($new_args, $this));
- }
- } else {
- return $this->callTagCompiler('private_registered_' . $plugin_type, $args, $parameter, $tag);
- }
- }
- }
- } else {
- // compile closing tag of block function
- $base_tag = substr($tag, 0, -5);
- // check if closing tag is a registered object
- if (isset($this->smarty->registered_objects[$base_tag]) && isset($parameter['object_methode'])) {
- $methode = $parameter['object_methode'];
- if (in_array($methode, $this->smarty->registered_objects[$base_tag][3])) {
- return $this->callTagCompiler('private_object_block_function', $args, $parameter, $tag, $methode);
- } else {
- return $this->trigger_template_error('unallowed closing tag methode "' . $methode . '" in registered object "' . $base_tag . '"', $this->lex->taglineno);
- }
- }
- // registered block tag ?
- if (isset($this->smarty->registered_plugins[Smarty::PLUGIN_BLOCK][$base_tag]) || isset($this->default_handler_plugins[Smarty::PLUGIN_BLOCK][$base_tag])) {
- return $this->callTagCompiler('private_registered_block', $args, $parameter, $tag);
- }
- // block plugin?
- if ($function = $this->getPlugin($base_tag, Smarty::PLUGIN_BLOCK)) {
- return $this->callTagCompiler('private_block_plugin', $args, $parameter, $tag, $function);
- }
- // registered compiler plugin ?
- if (isset($this->smarty->registered_plugins[Smarty::PLUGIN_COMPILER][$tag])) {
- // if compiler function plugin call it now
- $args = array();
- if (!$this->smarty->registered_plugins[Smarty::PLUGIN_COMPILER][$tag][1]) {
- $this->tag_nocache = true;
- }
- $function = $this->smarty->registered_plugins[Smarty::PLUGIN_COMPILER][$tag][0];
- if (!is_array($function)) {
- return $function($args, $this);
- } else if (is_object($function[0])) {
- return $this->smarty->registered_plugins[Smarty::PLUGIN_COMPILER][$tag][0][0]->$function[1]($args, $this);
- } else {
- return call_user_func_array($function, array($args, $this));
- }
- }
- if ($this->smarty->loadPlugin('smarty_compiler_' . $tag)) {
- $plugin = 'smarty_compiler_' . $tag;
- if (is_callable($plugin)) {
- return $plugin($args, $this->smarty);
- }
- if (class_exists($plugin, false)) {
- $plugin_object = new $plugin;
- if (method_exists($plugin_object, 'compile')) {
- return $plugin_object->compile($args, $this);
- }
- }
- throw new SmartyException("Plugin \"{$tag}\" not callable");
- }
- }
- $this->trigger_template_error("unknown tag \"" . $tag . "\"", $this->lex->taglineno);
- }
- }
-
- /**
- * lazy loads internal compile plugin for tag and calls the compile methode
- *
- * compile objects cached for reuse.
- * class name format: Smarty_Internal_Compile_TagName
- * plugin filename format: Smarty_Internal_Tagname.php
- *
- * @param string $tag tag name
- * @param array $args list of tag attributes
- * @param mixed $param1 optional parameter
- * @param mixed $param2 optional parameter
- * @param mixed $param3 optional parameter
- * @return string compiled code
- */
- public function callTagCompiler($tag, $args, $param1 = null, $param2 = null, $param3 = null) {
- // re-use object if already exists
- if (isset(self::$_tag_objects[$tag])) {
- // compile this tag
- return self::$_tag_objects[$tag]->compile($args, $this, $param1, $param2, $param3);
- }
- // lazy load internal compiler plugin
- $class_name = 'Smarty_Internal_Compile_' . $tag;
- if ($this->smarty->loadPlugin($class_name)) {
- // check if tag allowed by security
- if (!isset($this->smarty->security_policy) || $this->smarty->security_policy->isTrustedTag($tag, $this)) {
- // use plugin if found
- self::$_tag_objects[$tag] = new $class_name;
- // compile this tag
- return self::$_tag_objects[$tag]->compile($args, $this, $param1, $param2, $param3);
- }
- }
- // no internal compile plugin for this tag
- return false;
- }
-
- /**
- * Check for plugins and return function name
- *
- * @param string $pugin_name name of plugin or function
- * @param string $plugin_type type of plugin
- * @return string call name of function
- */
- public function getPlugin($plugin_name, $plugin_type) {
- $function = null;
- if ($this->template->caching && ($this->nocache || $this->tag_nocache)) {
- if (isset($this->template->required_plugins['nocache'][$plugin_name][$plugin_type])) {
- $function = $this->template->required_plugins['nocache'][$plugin_name][$plugin_type]['function'];
- } else if (isset($this->template->required_plugins['compiled'][$plugin_name][$plugin_type])) {
- $this->template->required_plugins['nocache'][$plugin_name][$plugin_type] = $this->template->required_plugins['compiled'][$plugin_name][$plugin_type];
- $function = $this->template->required_plugins['nocache'][$plugin_name][$plugin_type]['function'];
- }
- } else {
- if (isset($this->template->required_plugins['compiled'][$plugin_name][$plugin_type])) {
- $function = $this->template->required_plugins['compiled'][$plugin_name][$plugin_type]['function'];
- } else if (isset($this->template->required_plugins['nocache'][$plugin_name][$plugin_type])) {
- $this->template->required_plugins['compiled'][$plugin_name][$plugin_type] = $this->template->required_plugins['nocache'][$plugin_name][$plugin_type];
- $function = $this->template->required_plugins['compiled'][$plugin_name][$plugin_type]['function'];
- }
- }
- if (isset($function)) {
- if ($plugin_type == 'modifier') {
- $this->modifier_plugins[$plugin_name] = true;
- }
- return $function;
- }
- // loop through plugin dirs and find the plugin
- $function = 'smarty_' . $plugin_type . '_' . $plugin_name;
- $file = $this->smarty->loadPlugin($function, false);
-
- if (is_string($file)) {
- if ($this->template->caching && ($this->nocache || $this->tag_nocache)) {
- $this->template->required_plugins['nocache'][$plugin_name][$plugin_type]['file'] = $file;
- $this->template->required_plugins['nocache'][$plugin_name][$plugin_type]['function'] = $function;
- } else {
- $this->template->required_plugins['compiled'][$plugin_name][$plugin_type]['file'] = $file;
- $this->template->required_plugins['compiled'][$plugin_name][$plugin_type]['function'] = $function;
- }
- if ($plugin_type == 'modifier') {
- $this->modifier_plugins[$plugin_name] = true;
- }
- return $function;
- }
- if (is_callable($function)) {
- // plugin function is defined in the script
- return $function;
- }
- return false;
- }
-
- /**
- * Check for plugins by default plugin handler
- *
- * @param string $tag name of tag
- * @param string $plugin_type type of plugin
- * @return boolean true if found
- */
- public function getPluginFromDefaultHandler($tag, $plugin_type) {
- $callback = null;
- $script = null;
- $cacheable = true;
- $result = call_user_func_array(
- $this->smarty->default_plugin_handler_func, array($tag, $plugin_type, $this->template, &$callback, &$script, &$cacheable)
- );
- if ($result) {
- $this->tag_nocache = $this->tag_nocache || !$cacheable;
- if ($script !== null) {
- if (is_file($script)) {
- if ($this->template->caching && ($this->nocache || $this->tag_nocache)) {
- $this->template->required_plugins['nocache'][$tag][$plugin_type]['file'] = $script;
- $this->template->required_plugins['nocache'][$tag][$plugin_type]['function'] = $callback;
- } else {
- $this->template->required_plugins['compiled'][$tag][$plugin_type]['file'] = $script;
- $this->template->required_plugins['compiled'][$tag][$plugin_type]['function'] = $callback;
- }
- include_once $script;
- } else {
- $this->trigger_template_error("Default plugin handler: Returned script file \"{$script}\" for \"{$tag}\" not found");
- }
- }
- if (!is_string($callback) && !(is_array($callback) && is_string($callback[0]) && is_string($callback[1]))) {
- $this->trigger_template_error("Default plugin handler: Returned callback for \"{$tag}\" must be a static function name or array of class and function name");
- }
- if (is_callable($callback)) {
- $this->default_handler_plugins[$plugin_type][$tag] = array($callback, true, array());
- return true;
- } else {
- $this->trigger_template_error("Default plugin handler: Returned callback for \"{$tag}\" not callable");
- }
- }
- return false;
- }
-
- /**
- * Inject inline code for nocache template sections
- *
- * This method gets the content of each template element from the parser.
- * If the content is compiled code and it should be not cached the code is injected
- * into the rendered output.
- *
- * @param string $content content of template element
- * @param boolean $is_code true if content is compiled code
- * @return string content
- */
- public function processNocacheCode($content, $is_code) {
- // If the template is not evaluated and we have a nocache section and or a nocache tag
- if ($is_code && !empty($content)) {
- // generate replacement code
- if ((!($this->template->source->recompiled) || $this->forceNocache) && $this->template->caching && !$this->suppressNocacheProcessing &&
- ($this->nocache || $this->tag_nocache || $this->forceNocache == 2)) {
- $this->template->has_nocache_code = true;
- $_output = str_replace("'", "\'", $content);
- $_output = str_replace('\\\\', '\\\\\\\\', $_output);
- $_output = str_replace("^#^", "'", $_output);
- $_output = "<?php echo '/*%%SmartyNocache:{$this->nocache_hash}%%*/" . $_output . "/*/%%SmartyNocache:{$this->nocache_hash}%%*/';?>\n";
- // make sure we include modifer plugins for nocache code
- foreach ($this->modifier_plugins as $plugin_name => $dummy) {
- if (isset($this->template->required_plugins['compiled'][$plugin_name]['modifier'])) {
- $this->template->required_plugins['nocache'][$plugin_name]['modifier'] = $this->template->required_plugins['compiled'][$plugin_name]['modifier'];
- }
- }
- } else {
- $_output = $content;
- }
- } else {
- $_output = $content;
- }
- $this->modifier_plugins = array();
- $this->suppressNocacheProcessing = false;
- $this->tag_nocache = false;
- return $_output;
- }
-
- /**
- * display compiler error messages without dying
- *
- * If parameter $args is empty it is a parser detected syntax error.
- * In this case the parser is called to obtain information about expected tokens.
- *
- * If parameter $args contains a string this is used as error message
- *
- * @param string $args individual error message or null
- * @param string $line line-number
- * @throws SmartyCompilerException when an unexpected token is found
- */
- public function trigger_template_error($args = null, $line = null) {
- // get template source line which has error
- if (!isset($line)) {
- $line = $this->lex->line;
- }
- $match = preg_split("/\n/", $this->lex->data);
- $error_text = 'Syntax Error in template "' . $this->template->source->filepath . '" on line ' . $line . ' "' . htmlspecialchars(trim(preg_replace('![\t\r\n]+!', ' ', $match[$line - 1]))) . '" ';
- if (isset($args)) {
- // individual error message
- $error_text .= $args;
- } else {
- // expected token from parser
- $error_text .= ' - Unexpected "' . $this->lex->value . '"';
- if (count($this->parser->yy_get_expected_tokens($this->parser->yymajor)) <= 4) {
- foreach ($this->parser->yy_get_expected_tokens($this->parser->yymajor) as $token) {
- $exp_token = $this->parser->yyTokenName[$token];
- if (isset($this->lex->smarty_token_names[$exp_token])) {
- // token type from lexer
- $expect[] = '"' . $this->lex->smarty_token_names[$exp_token] . '"';
- } else {
- // otherwise internal token name
- $expect[] = $this->parser->yyTokenName[$token];
- }
- }
- $error_text .= ', expected one of: ' . implode(' , ', $expect);
- }
- }
- throw new SmartyCompilerException($error_text);
- }
-
-}
-
-?> \ No newline at end of file
+<?php
+
+/**
+ * Smarty Internal Plugin Smarty Template Compiler Base
+ * This file contains the basic classes and methods for compiling Smarty templates with lexer/parser
+ *
+ * @package Smarty
+ * @subpackage Compiler
+ * @author Uwe Tews
+ */
+
+/**
+ * Main abstract compiler class
+ *
+ * @package Smarty
+ * @subpackage Compiler
+ */
+abstract class Smarty_Internal_TemplateCompilerBase
+{
+ /**
+ * hash for nocache sections
+ *
+ * @var mixed
+ */
+ private $nocache_hash = null;
+
+ /**
+ * suppress generation of nocache code
+ *
+ * @var bool
+ */
+ public $suppressNocacheProcessing = false;
+
+ /**
+ * suppress generation of merged template code
+ *
+ * @var bool
+ */
+ public $suppressMergedTemplates = false;
+
+ /**
+ * compile tag objects
+ *
+ * @var array
+ */
+ public static $_tag_objects = array();
+
+ /**
+ * tag stack
+ *
+ * @var array
+ */
+ public $_tag_stack = array();
+
+ /**
+ * current template
+ *
+ * @var Smarty_Internal_Template
+ */
+ public $template = null;
+
+ /**
+ * merged templates
+ *
+ * @var array
+ */
+ public $merged_templates = array();
+
+ /**
+ * sources which must be compiled
+ *
+ * @var array
+ */
+ public $sources = array();
+
+ /**
+ * flag that we are inside {block}
+ *
+ * @var bool
+ */
+ public $inheritance = false;
+
+ /**
+ * flag when compiling inheritance child template
+ *
+ * @var bool
+ */
+ public $inheritance_child = false;
+
+ /**
+ * uid of templates called by {extends} for recursion check
+ *
+ * @var array
+ */
+ public $extends_uid = array();
+
+ /**
+ * source line offset for error messages
+ *
+ * @var int
+ */
+ public $trace_line_offset = 0;
+
+ /**
+ * trace uid
+ *
+ * @var string
+ */
+ public $trace_uid = '';
+
+ /**
+ * trace file path
+ *
+ * @var string
+ */
+ public $trace_filepath = '';
+ /**
+ * stack for tracing file and line of nested {block} tags
+ *
+ * @var array
+ */
+ public $trace_stack = array();
+
+ /**
+ * plugins loaded by default plugin handler
+ *
+ * @var array
+ */
+ public $default_handler_plugins = array();
+
+ /**
+ * saved preprocessed modifier list
+ *
+ * @var mixed
+ */
+ public $default_modifier_list = null;
+
+ /**
+ * force compilation of complete template as nocache
+ *
+ * @var boolean
+ */
+ public $forceNocache = false;
+
+ /**
+ * suppress Smarty header code in compiled template
+ *
+ * @var bool
+ */
+ public $suppressHeader = false;
+
+ /**
+ * suppress template property header code in compiled template
+ *
+ * @var bool
+ */
+ public $suppressTemplatePropertyHeader = false;
+
+ /**
+ * suppress pre and post filter
+ *
+ * @var bool
+ */
+ public $suppressFilter = false;
+
+ /**
+ * flag if compiled template file shall we written
+ *
+ * @var bool
+ */
+ public $write_compiled_code = true;
+
+ /**
+ * flag if currently a template function is compiled
+ *
+ * @var bool
+ */
+ public $compiles_template_function = false;
+
+ /**
+ * called subfuntions from template function
+ *
+ * @var array
+ */
+ public $called_functions = array();
+
+ /**
+ * flags for used modifier plugins
+ *
+ * @var array
+ */
+ public $modifier_plugins = array();
+
+ /**
+ * type of already compiled modifier
+ *
+ * @var array
+ */
+ public $known_modifier_type = array();
+
+ /**
+ * method to compile a Smarty template
+ *
+ * @param mixed $_content template source
+ *
+ * @return bool true if compiling succeeded, false if it failed
+ */
+ abstract protected function doCompile($_content);
+
+ /**
+ * Initialize compiler
+ */
+ public function __construct()
+ {
+ $this->nocache_hash = str_replace(array('.', ','), '-', uniqid(rand(), true));
+ }
+
+ /**
+ * Method to compile a Smarty template
+ *
+ * @param Smarty_Internal_Template $template template object to compile
+ * @param bool $nocache true is shall be compiled in nocache mode
+ *
+ * @return bool true if compiling succeeded, false if it failed
+ */
+ public function compileTemplate(Smarty_Internal_Template $template, $nocache = false)
+ {
+ if (empty($template->properties['nocache_hash'])) {
+ $template->properties['nocache_hash'] = $this->nocache_hash;
+ } else {
+ $this->nocache_hash = $template->properties['nocache_hash'];
+ }
+ // flag for nochache sections
+ $this->nocache = $nocache;
+ $this->tag_nocache = false;
+ // save template object in compiler class
+ $this->template = $template;
+ // reset has nocache code flag
+ $this->template->has_nocache_code = false;
+ $save_source = $this->template->source;
+ // template header code
+ $template_header = '';
+ if (!$this->suppressHeader) {
+ $template_header .= "<?php /* Smarty version " . Smarty::SMARTY_VERSION . ", created on " . strftime("%Y-%m-%d %H:%M:%S") . "\n";
+ $template_header .= " compiled from \"" . $this->template->source->filepath . "\" */ ?>\n";
+ }
+
+ if (empty($this->template->source->components)) {
+ $this->sources = array($template->source);
+ } else {
+ // we have array of inheritance templates by extends: resource
+ $this->sources = array_reverse($template->source->components);
+ }
+ $loop = 0;
+ // the $this->sources array can get additional elements while compiling by the {extends} tag
+ while ($this->template->source = array_shift($this->sources)) {
+ $this->smarty->_current_file = $this->template->source->filepath;
+ if ($this->smarty->debugging) {
+ Smarty_Internal_Debug::start_compile($this->template);
+ }
+ $no_sources = count($this->sources);
+ if ($loop || $no_sources) {
+ $this->template->properties['file_dependency'][$this->template->source->uid] = array($this->template->source->filepath, $this->template->source->timestamp, $this->template->source->type);
+ }
+ $loop ++;
+ if ($no_sources) {
+ $this->inheritance_child = true;
+ } else {
+ $this->inheritance_child = false;
+ }
+ do {
+ $_compiled_code = '';
+ // flag for aborting current and start recompile
+ $this->abort_and_recompile = false;
+ // get template source
+ $_content = $this->template->source->content;
+ if ($_content != '') {
+ // run prefilter if required
+ if ((isset($this->smarty->autoload_filters['pre']) || isset($this->smarty->registered_filters['pre'])) && !$this->suppressFilter) {
+ $_content = Smarty_Internal_Filter_Handler::runFilter('pre', $_content, $template);
+ }
+ // call compiler
+ $_compiled_code = $this->doCompile($_content);
+ }
+ } while ($this->abort_and_recompile);
+ if ($this->smarty->debugging) {
+ Smarty_Internal_Debug::end_compile($this->template);
+ }
+ }
+ // restore source
+ $this->template->source = $save_source;
+ unset($save_source);
+ $this->smarty->_current_file = $this->template->source->filepath;
+ // free memory
+ unset($this->parser->root_buffer, $this->parser->current_buffer, $this->parser, $this->lex, $this->template);
+ self::$_tag_objects = array();
+ // return compiled code to template object
+ $merged_code = '';
+ if (!$this->suppressMergedTemplates && !empty($this->merged_templates)) {
+ foreach ($this->merged_templates as $code) {
+ $merged_code .= $code;
+ }
+ }
+ // run postfilter if required on compiled template code
+ if ((isset($this->smarty->autoload_filters['post']) || isset($this->smarty->registered_filters['post'])) && !$this->suppressFilter && $_compiled_code != '') {
+ $_compiled_code = Smarty_Internal_Filter_Handler::runFilter('post', $_compiled_code, $template);
+ }
+ if ($this->suppressTemplatePropertyHeader) {
+ $code = $_compiled_code . $merged_code;
+ } else {
+ $code = $template_header . $template->createTemplateCodeFrame($_compiled_code) . $merged_code;
+ }
+ // unset content because template inheritance could have replace source with parent code
+ unset ($template->source->content);
+
+ return $code;
+ }
+
+ /**
+ * Compile Tag
+ * This is a call back from the lexer/parser
+ * It executes the required compile plugin for the Smarty tag
+ *
+ * @param string $tag tag name
+ * @param array $args array with tag attributes
+ * @param array $parameter array with compilation parameter
+ *
+ * @throws SmartyCompilerException
+ * @throws SmartyException
+ * @return string compiled code
+ */
+ public function compileTag($tag, $args, $parameter = array())
+ {
+ // $args contains the attributes parsed and compiled by the lexer/parser
+ // assume that tag does compile into code, but creates no HTML output
+ $this->has_code = true;
+ $this->has_output = false;
+ // log tag/attributes
+ if (isset($this->smarty->get_used_tags) && $this->smarty->get_used_tags) {
+ $this->template->used_tags[] = array($tag, $args);
+ }
+ // check nocache option flag
+ if (in_array("'nocache'", $args) || in_array(array('nocache' => 'true'), $args)
+ || in_array(array('nocache' => '"true"'), $args) || in_array(array('nocache' => "'true'"), $args)
+ ) {
+ $this->tag_nocache = true;
+ }
+ // compile the smarty tag (required compile classes to compile the tag are autoloaded)
+ if (($_output = $this->callTagCompiler($tag, $args, $parameter)) === false) {
+ if (isset($this->smarty->template_functions[$tag])) {
+ // template defined by {template} tag
+ $args['_attr']['name'] = "'" . $tag . "'";
+ $_output = $this->callTagCompiler('call', $args, $parameter);
+ }
+ }
+ if ($_output !== false) {
+ if ($_output !== true) {
+ // did we get compiled code
+ if ($this->has_code) {
+ // Does it create output?
+ if ($this->has_output) {
+ $_output .= "\n";
+ }
+ // return compiled code
+ return $_output;
+ }
+ }
+ // tag did not produce compiled code
+ return null;
+ } else {
+ // map_named attributes
+ if (isset($args['_attr'])) {
+ foreach ($args['_attr'] as $key => $attribute) {
+ if (is_array($attribute)) {
+ $args = array_merge($args, $attribute);
+ }
+ }
+ }
+ // not an internal compiler tag
+ if (strlen($tag) < 6 || substr($tag, - 5) != 'close') {
+ // check if tag is a registered object
+ if (isset($this->smarty->registered_objects[$tag]) && isset($parameter['object_method'])) {
+ $method = $parameter['object_method'];
+ if (!in_array($method, $this->smarty->registered_objects[$tag][3]) &&
+ (empty($this->smarty->registered_objects[$tag][1]) || in_array($method, $this->smarty->registered_objects[$tag][1]))
+ ) {
+ return $this->callTagCompiler('private_object_function', $args, $parameter, $tag, $method);
+ } elseif (in_array($method, $this->smarty->registered_objects[$tag][3])) {
+ return $this->callTagCompiler('private_object_block_function', $args, $parameter, $tag, $method);
+ } else {
+ // throw exception
+ $this->trigger_template_error('not allowed method "' . $method . '" in registered object "' . $tag . '"', $this->lex->taglineno);
+ }
+ }
+ // check if tag is registered
+ foreach (array(Smarty::PLUGIN_COMPILER, Smarty::PLUGIN_FUNCTION, Smarty::PLUGIN_BLOCK) as $plugin_type) {
+ if (isset($this->smarty->registered_plugins[$plugin_type][$tag])) {
+ // if compiler function plugin call it now
+ if ($plugin_type == Smarty::PLUGIN_COMPILER) {
+ $new_args = array();
+ foreach ($args as $key => $mixed) {
+ if (is_array($mixed)) {
+ $new_args = array_merge($new_args, $mixed);
+ } else {
+ $new_args[$key] = $mixed;
+ }
+ }
+ if (!$this->smarty->registered_plugins[$plugin_type][$tag][1]) {
+ $this->tag_nocache = true;
+ }
+ $function = $this->smarty->registered_plugins[$plugin_type][$tag][0];
+ if (!is_array($function)) {
+ return $function($new_args, $this);
+ } elseif (is_object($function[0])) {
+ return $this->smarty->registered_plugins[$plugin_type][$tag][0][0]->$function[1]($new_args, $this);
+ } else {
+ return call_user_func_array($function, array($new_args, $this));
+ }
+ }
+ // compile registered function or block function
+ if ($plugin_type == Smarty::PLUGIN_FUNCTION || $plugin_type == Smarty::PLUGIN_BLOCK) {
+ return $this->callTagCompiler('private_registered_' . $plugin_type, $args, $parameter, $tag);
+ }
+ }
+ }
+ // check plugins from plugins folder
+ foreach ($this->smarty->plugin_search_order as $plugin_type) {
+ if ($plugin_type == Smarty::PLUGIN_COMPILER && $this->smarty->loadPlugin('smarty_compiler_' . $tag) && (!isset($this->smarty->security_policy) || $this->smarty->security_policy->isTrustedTag($tag, $this))) {
+ $plugin = 'smarty_compiler_' . $tag;
+ if (is_callable($plugin)) {
+ // convert arguments format for old compiler plugins
+ $new_args = array();
+ foreach ($args as $key => $mixed) {
+ if (is_array($mixed)) {
+ $new_args = array_merge($new_args, $mixed);
+ } else {
+ $new_args[$key] = $mixed;
+ }
+ }
+
+ return $plugin($new_args, $this->smarty);
+ }
+ if (class_exists($plugin, false)) {
+ $plugin_object = new $plugin;
+ if (method_exists($plugin_object, 'compile')) {
+ return $plugin_object->compile($args, $this);
+ }
+ }
+ throw new SmartyException("Plugin \"{$tag}\" not callable");
+ } else {
+ if ($function = $this->getPlugin($tag, $plugin_type)) {
+ if (!isset($this->smarty->security_policy) || $this->smarty->security_policy->isTrustedTag($tag, $this)) {
+ return $this->callTagCompiler('private_' . $plugin_type . '_plugin', $args, $parameter, $tag, $function);
+ }
+ }
+ }
+ }
+ if (is_callable($this->smarty->default_plugin_handler_func)) {
+ $found = false;
+ // look for already resolved tags
+ foreach ($this->smarty->plugin_search_order as $plugin_type) {
+ if (isset($this->default_handler_plugins[$plugin_type][$tag])) {
+ $found = true;
+ break;
+ }
+ }
+ if (!$found) {
+ // call default handler
+ foreach ($this->smarty->plugin_search_order as $plugin_type) {
+ if ($this->getPluginFromDefaultHandler($tag, $plugin_type)) {
+ $found = true;
+ break;
+ }
+ }
+ }
+ if ($found) {
+ // if compiler function plugin call it now
+ if ($plugin_type == Smarty::PLUGIN_COMPILER) {
+ $new_args = array();
+ foreach ($args as $mixed) {
+ $new_args = array_merge($new_args, $mixed);
+ }
+ $function = $this->default_handler_plugins[$plugin_type][$tag][0];
+ if (!is_array($function)) {
+ return $function($new_args, $this);
+ } elseif (is_object($function[0])) {
+ return $this->default_handler_plugins[$plugin_type][$tag][0][0]->$function[1]($new_args, $this);
+ } else {
+ return call_user_func_array($function, array($new_args, $this));
+ }
+ } else {
+ return $this->callTagCompiler('private_registered_' . $plugin_type, $args, $parameter, $tag);
+ }
+ }
+ }
+ } else {
+ // compile closing tag of block function
+ $base_tag = substr($tag, 0, - 5);
+ // check if closing tag is a registered object
+ if (isset($this->smarty->registered_objects[$base_tag]) && isset($parameter['object_method'])) {
+ $method = $parameter['object_method'];
+ if (in_array($method, $this->smarty->registered_objects[$base_tag][3])) {
+ return $this->callTagCompiler('private_object_block_function', $args, $parameter, $tag, $method);
+ } else {
+ // throw exception
+ $this->trigger_template_error('not allowed closing tag method "' . $method . '" in registered object "' . $base_tag . '"', $this->lex->taglineno);
+ }
+ }
+ // registered block tag ?
+ if (isset($this->smarty->registered_plugins[Smarty::PLUGIN_BLOCK][$base_tag]) || isset($this->default_handler_plugins[Smarty::PLUGIN_BLOCK][$base_tag])) {
+ return $this->callTagCompiler('private_registered_block', $args, $parameter, $tag);
+ }
+ // block plugin?
+ if ($function = $this->getPlugin($base_tag, Smarty::PLUGIN_BLOCK)) {
+ return $this->callTagCompiler('private_block_plugin', $args, $parameter, $tag, $function);
+ }
+ // registered compiler plugin ?
+ if (isset($this->smarty->registered_plugins[Smarty::PLUGIN_COMPILER][$tag])) {
+ // if compiler function plugin call it now
+ $args = array();
+ if (!$this->smarty->registered_plugins[Smarty::PLUGIN_COMPILER][$tag][1]) {
+ $this->tag_nocache = true;
+ }
+ $function = $this->smarty->registered_plugins[Smarty::PLUGIN_COMPILER][$tag][0];
+ if (!is_array($function)) {
+ return $function($args, $this);
+ } elseif (is_object($function[0])) {
+ return $this->smarty->registered_plugins[Smarty::PLUGIN_COMPILER][$tag][0][0]->$function[1]($args, $this);
+ } else {
+ return call_user_func_array($function, array($args, $this));
+ }
+ }
+ if ($this->smarty->loadPlugin('smarty_compiler_' . $tag)) {
+ $plugin = 'smarty_compiler_' . $tag;
+ if (is_callable($plugin)) {
+ return $plugin($args, $this->smarty);
+ }
+ if (class_exists($plugin, false)) {
+ $plugin_object = new $plugin;
+ if (method_exists($plugin_object, 'compile')) {
+ return $plugin_object->compile($args, $this);
+ }
+ }
+ throw new SmartyException("Plugin \"{$tag}\" not callable");
+ }
+ }
+ $this->trigger_template_error("unknown tag \"" . $tag . "\"", $this->lex->taglineno);
+ }
+ }
+
+ /**
+ * lazy loads internal compile plugin for tag and calls the compile method
+ * compile objects cached for reuse.
+ * class name format: Smarty_Internal_Compile_TagName
+ * plugin filename format: Smarty_Internal_Tagname.php
+ *
+ * @param string $tag tag name
+ * @param array $args list of tag attributes
+ * @param mixed $param1 optional parameter
+ * @param mixed $param2 optional parameter
+ * @param mixed $param3 optional parameter
+ *
+ * @return string compiled code
+ */
+ public function callTagCompiler($tag, $args, $param1 = null, $param2 = null, $param3 = null)
+ {
+ // re-use object if already exists
+ if (isset(self::$_tag_objects[$tag])) {
+ // compile this tag
+ return self::$_tag_objects[$tag]->compile($args, $this, $param1, $param2, $param3);
+ }
+ // lazy load internal compiler plugin
+ $class_name = 'Smarty_Internal_Compile_' . $tag;
+ if ($this->smarty->loadPlugin($class_name)) {
+ // check if tag allowed by security
+ if (!isset($this->smarty->security_policy) || $this->smarty->security_policy->isTrustedTag($tag, $this)) {
+ // use plugin if found
+ self::$_tag_objects[$tag] = new $class_name;
+ // compile this tag
+ return self::$_tag_objects[$tag]->compile($args, $this, $param1, $param2, $param3);
+ }
+ }
+ // no internal compile plugin for this tag
+ return false;
+ }
+
+ /**
+ * Check for plugins and return function name
+ *
+ * @param $plugin_name
+ * @param string $plugin_type type of plugin
+ *
+ * @return string call name of function
+ */
+ public function getPlugin($plugin_name, $plugin_type)
+ {
+ $function = null;
+ if ($this->template->caching && ($this->nocache || $this->tag_nocache)) {
+ if (isset($this->template->required_plugins['nocache'][$plugin_name][$plugin_type])) {
+ $function = $this->template->required_plugins['nocache'][$plugin_name][$plugin_type]['function'];
+ } elseif (isset($this->template->required_plugins['compiled'][$plugin_name][$plugin_type])) {
+ $this->template->required_plugins['nocache'][$plugin_name][$plugin_type] = $this->template->required_plugins['compiled'][$plugin_name][$plugin_type];
+ $function = $this->template->required_plugins['nocache'][$plugin_name][$plugin_type]['function'];
+ }
+ } else {
+ if (isset($this->template->required_plugins['compiled'][$plugin_name][$plugin_type])) {
+ $function = $this->template->required_plugins['compiled'][$plugin_name][$plugin_type]['function'];
+ } elseif (isset($this->template->required_plugins['nocache'][$plugin_name][$plugin_type])) {
+ $this->template->required_plugins['compiled'][$plugin_name][$plugin_type] = $this->template->required_plugins['nocache'][$plugin_name][$plugin_type];
+ $function = $this->template->required_plugins['compiled'][$plugin_name][$plugin_type]['function'];
+ }
+ }
+ if (isset($function)) {
+ if ($plugin_type == 'modifier') {
+ $this->modifier_plugins[$plugin_name] = true;
+ }
+
+ return $function;
+ }
+ // loop through plugin dirs and find the plugin
+ $function = 'smarty_' . $plugin_type . '_' . $plugin_name;
+ $file = $this->smarty->loadPlugin($function, false);
+
+ if (is_string($file)) {
+ if ($this->template->caching && ($this->nocache || $this->tag_nocache)) {
+ $this->template->required_plugins['nocache'][$plugin_name][$plugin_type]['file'] = $file;
+ $this->template->required_plugins['nocache'][$plugin_name][$plugin_type]['function'] = $function;
+ } else {
+ $this->template->required_plugins['compiled'][$plugin_name][$plugin_type]['file'] = $file;
+ $this->template->required_plugins['compiled'][$plugin_name][$plugin_type]['function'] = $function;
+ }
+ if ($plugin_type == 'modifier') {
+ $this->modifier_plugins[$plugin_name] = true;
+ }
+
+ return $function;
+ }
+ if (is_callable($function)) {
+ // plugin function is defined in the script
+ return $function;
+ }
+
+ return false;
+ }
+
+ /**
+ * Check for plugins by default plugin handler
+ *
+ * @param string $tag name of tag
+ * @param string $plugin_type type of plugin
+ *
+ * @return boolean true if found
+ */
+ public function getPluginFromDefaultHandler($tag, $plugin_type)
+ {
+ $callback = null;
+ $script = null;
+ $cacheable = true;
+ $result = call_user_func_array(
+ $this->smarty->default_plugin_handler_func, array($tag, $plugin_type, $this->template, &$callback, &$script, &$cacheable)
+ );
+ if ($result) {
+ $this->tag_nocache = $this->tag_nocache || !$cacheable;
+ if ($script !== null) {
+ if (is_file($script)) {
+ if ($this->template->caching && ($this->nocache || $this->tag_nocache)) {
+ $this->template->required_plugins['nocache'][$tag][$plugin_type]['file'] = $script;
+ $this->template->required_plugins['nocache'][$tag][$plugin_type]['function'] = $callback;
+ } else {
+ $this->template->required_plugins['compiled'][$tag][$plugin_type]['file'] = $script;
+ $this->template->required_plugins['compiled'][$tag][$plugin_type]['function'] = $callback;
+ }
+ include_once $script;
+ } else {
+ $this->trigger_template_error("Default plugin handler: Returned script file \"{$script}\" for \"{$tag}\" not found");
+ }
+ }
+ if (!is_string($callback) && !(is_array($callback) && is_string($callback[0]) && is_string($callback[1]))) {
+ $this->trigger_template_error("Default plugin handler: Returned callback for \"{$tag}\" must be a static function name or array of class and function name");
+ }
+ if (is_callable($callback)) {
+ $this->default_handler_plugins[$plugin_type][$tag] = array($callback, true, array());
+
+ return true;
+ } else {
+ $this->trigger_template_error("Default plugin handler: Returned callback for \"{$tag}\" not callable");
+ }
+ }
+
+ return false;
+ }
+
+ /**
+ * Inject inline code for nocache template sections
+ * This method gets the content of each template element from the parser.
+ * If the content is compiled code and it should be not cached the code is injected
+ * into the rendered output.
+ *
+ * @param string $content content of template element
+ * @param boolean $is_code true if content is compiled code
+ *
+ * @return string content
+ */
+ public function processNocacheCode($content, $is_code)
+ {
+ // If the template is not evaluated and we have a nocache section and or a nocache tag
+ if ($is_code && !empty($content)) {
+ // generate replacement code
+ if ((!($this->template->source->recompiled) || $this->forceNocache) && $this->template->caching && !$this->suppressNocacheProcessing &&
+ ($this->nocache || $this->tag_nocache)
+ ) {
+ $this->template->has_nocache_code = true;
+ $_output = addcslashes($content, '\'\\');
+ $_output = str_replace("^#^", "'", $_output);
+ $_output = "<?php echo '/*%%SmartyNocache:{$this->nocache_hash}%%*/" . $_output . "/*/%%SmartyNocache:{$this->nocache_hash}%%*/';?>\n";
+ // make sure we include modifier plugins for nocache code
+ foreach ($this->modifier_plugins as $plugin_name => $dummy) {
+ if (isset($this->template->required_plugins['compiled'][$plugin_name]['modifier'])) {
+ $this->template->required_plugins['nocache'][$plugin_name]['modifier'] = $this->template->required_plugins['compiled'][$plugin_name]['modifier'];
+ }
+ }
+ } else {
+ $_output = $content;
+ }
+ } else {
+ $_output = $content;
+ }
+ $this->modifier_plugins = array();
+ $this->suppressNocacheProcessing = false;
+ $this->tag_nocache = false;
+
+ return $_output;
+ }
+
+ /**
+ * push current file and line offset on stack for tracing {block} source lines
+ *
+ * @param string $file new filename
+ * @param string $uid uid of file
+ * @param int $line line offset to source
+ * @param bool $debug false debug end_compile shall not be called
+ */
+ public function pushTrace($file, $uid, $line, $debug = true)
+ {
+ if ($this->smarty->debugging && $debug) {
+ Smarty_Internal_Debug::end_compile($this->template);
+ }
+ array_push($this->trace_stack, array($this->smarty->_current_file, $this->trace_filepath, $this->trace_uid, $this->trace_line_offset));
+ $this->trace_filepath = $this->smarty->_current_file = $file;
+ $this->trace_uid = $uid;
+ $this->trace_line_offset = $line;
+ if ($this->smarty->debugging) {
+ Smarty_Internal_Debug::start_compile($this->template);
+ }
+ }
+
+ /**
+ * restore file and line offset
+
+ */
+ public function popTrace()
+ {
+ if ($this->smarty->debugging) {
+ Smarty_Internal_Debug::end_compile($this->template);
+ }
+ $r = array_pop($this->trace_stack);
+ $this->smarty->_current_file = $r[0];
+ $this->trace_filepath = $r[1];
+ $this->trace_uid = $r[2];
+ $this->trace_line_offset = $r[3];
+ if ($this->smarty->debugging) {
+ Smarty_Internal_Debug::start_compile($this->template);
+ }
+ }
+
+ /**
+ * display compiler error messages without dying
+ * If parameter $args is empty it is a parser detected syntax error.
+ * In this case the parser is called to obtain information about expected tokens.
+ * If parameter $args contains a string this is used as error message
+ *
+ * @param string $args individual error message or null
+ * @param string $line line-number
+ *
+ * @throws SmartyCompilerException when an unexpected token is found
+ */
+ public function trigger_template_error($args = null, $line = null)
+ {
+ // get template source line which has error
+ if (!isset($line)) {
+ $line = $this->lex->line;
+ }
+ // $line += $this->trace_line_offset;
+ $match = preg_split("/\n/", $this->lex->data);
+ $error_text = 'Syntax error in template "' . (empty($this->trace_filepath) ? $this->template->source->filepath : $this->trace_filepath) . '" on line ' . ($line + $this->trace_line_offset) . ' "' . trim(preg_replace('![\t\r\n]+!', ' ', $match[$line - 1])) . '" ';
+ if (isset($args)) {
+ // individual error message
+ $error_text .= $args;
+ } else {
+ // expected token from parser
+ $error_text .= ' - Unexpected "' . $this->lex->value . '"';
+ if (count($this->parser->yy_get_expected_tokens($this->parser->yymajor)) <= 4) {
+ foreach ($this->parser->yy_get_expected_tokens($this->parser->yymajor) as $token) {
+ $exp_token = $this->parser->yyTokenName[$token];
+ if (isset($this->lex->smarty_token_names[$exp_token])) {
+ // token type from lexer
+ $expect[] = '"' . $this->lex->smarty_token_names[$exp_token] . '"';
+ } else {
+ // otherwise internal token name
+ $expect[] = $this->parser->yyTokenName[$token];
+ }
+ }
+ $error_text .= ', expected one of: ' . implode(' , ', $expect);
+ }
+ }
+ $e = new SmartyCompilerException($error_text);
+ $e->line = $line;
+ $e->source = trim(preg_replace('![\t\r\n]+!', ' ', $match[$line - 1]));
+ $e->desc = $args;
+ $e->template = $this->template->source->filepath;
+ throw $e;
+ }
+}
diff --git a/library/Smarty/libs/sysplugins/smarty_internal_templatelexer.php b/library/Smarty/libs/sysplugins/smarty_internal_templatelexer.php
index bfc413aef..4de8a9c06 100644
--- a/library/Smarty/libs/sysplugins/smarty_internal_templatelexer.php
+++ b/library/Smarty/libs/sysplugins/smarty_internal_templatelexer.php
@@ -1,15 +1,16 @@
<?php
/**
-* Smarty Internal Plugin Templatelexer
-*
-* This is the lexer to break the template source into tokens
-* @package Smarty
-* @subpackage Compiler
-* @author Uwe Tews
-*/
+ * Smarty Internal Plugin Templatelexer
+ * This is the lexer to break the template source into tokens
+ *
+ * @package Smarty
+ * @subpackage Compiler
+ * @author Uwe Tews
+ */
+
/**
-* Smarty Internal Plugin Templatelexer
-*/
+ * Smarty Internal Plugin Templatelexer
+ */
class Smarty_Internal_Templatelexer
{
public $data;
@@ -19,156 +20,179 @@ class Smarty_Internal_Templatelexer
public $node;
public $line;
public $taglineno;
+ public $is_phpScript = false;
public $state = 1;
+ public $smarty;
+ public $literal_cnt = 0;
private $heredoc_id_stack = Array();
- public $smarty_token_names = array ( // Text for parser error messages
- 'IDENTITY' => '===',
- 'NONEIDENTITY' => '!==',
- 'EQUALS' => '==',
- 'NOTEQUALS' => '!=',
- 'GREATEREQUAL' => '(>=,ge)',
- 'LESSEQUAL' => '(<=,le)',
- 'GREATERTHAN' => '(>,gt)',
- 'LESSTHAN' => '(<,lt)',
- 'MOD' => '(%,mod)',
- 'NOT' => '(!,not)',
- 'LAND' => '(&&,and)',
- 'LOR' => '(||,or)',
- 'LXOR' => 'xor',
- 'OPENP' => '(',
- 'CLOSEP' => ')',
- 'OPENB' => '[',
- 'CLOSEB' => ']',
- 'PTR' => '->',
- 'APTR' => '=>',
- 'EQUAL' => '=',
- 'NUMBER' => 'number',
- 'UNIMATH' => '+" , "-',
- 'MATH' => '*" , "/" , "%',
- 'INCDEC' => '++" , "--',
- 'SPACE' => ' ',
- 'DOLLAR' => '$',
- 'SEMICOLON' => ';',
- 'COLON' => ':',
- 'DOUBLECOLON' => '::',
- 'AT' => '@',
- 'HATCH' => '#',
- 'QUOTE' => '"',
- 'BACKTICK' => '`',
- 'VERT' => '|',
- 'DOT' => '.',
- 'COMMA' => '","',
- 'ANDSYM' => '"&"',
- 'QMARK' => '"?"',
- 'ID' => 'identifier',
- 'TEXT' => 'text',
- 'FAKEPHPSTARTTAG' => 'Fake PHP start tag',
- 'PHPSTARTTAG' => 'PHP start tag',
- 'PHPENDTAG' => 'PHP end tag',
- 'LITERALSTART' => 'Literal start',
- 'LITERALEND' => 'Literal end',
- 'LDELSLASH' => 'closing tag',
- 'COMMENT' => 'comment',
- 'AS' => 'as',
- 'TO' => 'to',
- );
-
-
- function __construct($data,$compiler)
- {
-// $this->data = preg_replace("/(\r\n|\r|\n)/", "\n", $data);
+ public $yyTraceFILE;
+ public $yyTracePrompt;
+ public $state_name = array(1 => 'TEXT', 2 => 'SMARTY', 3 => 'LITERAL', 4 => 'DOUBLEQUOTEDSTRING', 5 => 'CHILDBODY');
+ public $smarty_token_names = array( // Text for parser error messages
+ 'IDENTITY' => '===',
+ 'NONEIDENTITY' => '!==',
+ 'EQUALS' => '==',
+ 'NOTEQUALS' => '!=',
+ 'GREATEREQUAL' => '(>=,ge)',
+ 'LESSEQUAL' => '(<=,le)',
+ 'GREATERTHAN' => '(>,gt)',
+ 'LESSTHAN' => '(<,lt)',
+ 'MOD' => '(%,mod)',
+ 'NOT' => '(!,not)',
+ 'LAND' => '(&&,and)',
+ 'LOR' => '(||,or)',
+ 'LXOR' => 'xor',
+ 'OPENP' => '(',
+ 'CLOSEP' => ')',
+ 'OPENB' => '[',
+ 'CLOSEB' => ']',
+ 'PTR' => '->',
+ 'APTR' => '=>',
+ 'EQUAL' => '=',
+ 'NUMBER' => 'number',
+ 'UNIMATH' => '+" , "-',
+ 'MATH' => '*" , "/" , "%',
+ 'INCDEC' => '++" , "--',
+ 'SPACE' => ' ',
+ 'DOLLAR' => '$',
+ 'SEMICOLON' => ';',
+ 'COLON' => ':',
+ 'DOUBLECOLON' => '::',
+ 'AT' => '@',
+ 'HATCH' => '#',
+ 'QUOTE' => '"',
+ 'BACKTICK' => '`',
+ 'VERT' => '|',
+ 'DOT' => '.',
+ 'COMMA' => '","',
+ 'ANDSYM' => '"&"',
+ 'QMARK' => '"?"',
+ 'ID' => 'identifier',
+ 'TEXT' => 'text',
+ 'FAKEPHPSTARTTAG' => 'Fake PHP start tag',
+ 'PHPSTARTTAG' => 'PHP start tag',
+ 'PHPENDTAG' => 'PHP end tag',
+ 'LITERALSTART' => 'Literal start',
+ 'LITERALEND' => 'Literal end',
+ 'LDELSLASH' => 'closing tag',
+ 'COMMENT' => 'comment',
+ 'AS' => 'as',
+ 'TO' => 'to',
+ );
+
+ function __construct($data, $compiler)
+ {
+ // $this->data = preg_replace("/(\r\n|\r|\n)/", "\n", $data);
$this->data = $data;
$this->counter = 0;
+ if (preg_match('/^\xEF\xBB\xBF/', $this->data, $match)) {
+ $this->counter += strlen($match[0]);
+ }
$this->line = 1;
$this->smarty = $compiler->smarty;
$this->compiler = $compiler;
- $this->ldel = preg_quote($this->smarty->left_delimiter,'/');
+ $this->ldel = preg_quote($this->smarty->left_delimiter, '/');
$this->ldel_length = strlen($this->smarty->left_delimiter);
- $this->rdel = preg_quote($this->smarty->right_delimiter,'/');
- $this->smarty_token_names['LDEL'] = $this->smarty->left_delimiter;
- $this->smarty_token_names['RDEL'] = $this->smarty->right_delimiter;
- $this->mbstring_overload = ini_get('mbstring.func_overload') & 2;
- }
+ $this->rdel = preg_quote($this->smarty->right_delimiter, '/');
+ $this->rdel_length = strlen($this->smarty->right_delimiter);
+ $this->smarty_token_names['LDEL'] = $this->smarty->left_delimiter;
+ $this->smarty_token_names['RDEL'] = $this->smarty->right_delimiter;
+ }
+ public function PrintTrace()
+ {
+ $this->yyTraceFILE = fopen('php://output', 'w');
+ $this->yyTracePrompt = '<br>';
+ }
private $_yy_state = 1;
private $_yy_stack = array();
- function yylex()
+ public function yylex()
{
return $this->{'yylex' . $this->_yy_state}();
}
- function yypushstate($state)
+ public function yypushstate($state)
{
+ if ($this->yyTraceFILE) {
+ fprintf($this->yyTraceFILE, "%sState push %s\n", $this->yyTracePrompt, isset($this->state_name[$this->_yy_state]) ? $this->state_name[$this->_yy_state] : $this->_yy_state);
+ }
array_push($this->_yy_stack, $this->_yy_state);
$this->_yy_state = $state;
+ if ($this->yyTraceFILE) {
+ fprintf($this->yyTraceFILE, "%snew State %s\n", $this->yyTracePrompt, isset($this->state_name[$this->_yy_state]) ? $this->state_name[$this->_yy_state] : $this->_yy_state);
+ }
}
- function yypopstate()
+ public function yypopstate()
{
+ if ($this->yyTraceFILE) {
+ fprintf($this->yyTraceFILE, "%sState pop %s\n", $this->yyTracePrompt, isset($this->state_name[$this->_yy_state]) ? $this->state_name[$this->_yy_state] : $this->_yy_state);
+ }
$this->_yy_state = array_pop($this->_yy_stack);
+ if ($this->yyTraceFILE) {
+ fprintf($this->yyTraceFILE, "%snew State %s\n", $this->yyTracePrompt, isset($this->state_name[$this->_yy_state]) ? $this->state_name[$this->_yy_state] : $this->_yy_state);
+ }
}
- function yybegin($state)
+ public function yybegin($state)
{
$this->_yy_state = $state;
+ if ($this->yyTraceFILE) {
+ fprintf($this->yyTraceFILE, "%sState set %s\n", $this->yyTracePrompt, isset($this->state_name[$this->_yy_state]) ? $this->state_name[$this->_yy_state] : $this->_yy_state);
+ }
}
-
-
- function yylex1()
- {
- $tokenMap = array (
- 1 => 0,
- 2 => 0,
- 3 => 1,
- 5 => 0,
- 6 => 0,
- 7 => 0,
- 8 => 0,
- 9 => 0,
- 10 => 0,
- 11 => 1,
- 13 => 0,
- 14 => 0,
- 15 => 0,
- 16 => 0,
- 17 => 0,
- 18 => 0,
- 19 => 0,
- 20 => 0,
- 21 => 0,
- 22 => 0,
- 23 => 0,
- );
- if ($this->counter >= ($this->mbstring_overload ? mb_strlen($this->data,'latin1'): strlen($this->data))) {
+ public function yylex1()
+ {
+ $tokenMap = array(
+ 1 => 0,
+ 2 => 1,
+ 4 => 0,
+ 5 => 0,
+ 6 => 0,
+ 7 => 1,
+ 9 => 0,
+ 10 => 0,
+ 11 => 0,
+ 12 => 0,
+ 13 => 0,
+ 14 => 2,
+ 17 => 0,
+ 18 => 0,
+ 19 => 0,
+ 20 => 0,
+ 21 => 0,
+ 22 => 0,
+ );
+ if ($this->counter >= strlen($this->data)) {
return false; // end of input
}
- $yy_global_pattern = "/\G(".$this->ldel."[$]smarty\\.block\\.child".$this->rdel.")|\G(\\{\\})|\G(".$this->ldel."\\*([\S\s]*?)\\*".$this->rdel.")|\G(".$this->ldel."strip".$this->rdel.")|\G(".$this->ldel."\\s{1,}strip\\s{1,}".$this->rdel.")|\G(".$this->ldel."\/strip".$this->rdel.")|\G(".$this->ldel."\\s{1,}\/strip\\s{1,}".$this->rdel.")|\G(".$this->ldel."\\s*literal\\s*".$this->rdel.")|\G(".$this->ldel."\\s{1,}\/)|\G(".$this->ldel."\\s*(if|elseif|else if|while)\\s+)|\G(".$this->ldel."\\s*for\\s+)|\G(".$this->ldel."\\s*foreach(?![^\s]))|\G(".$this->ldel."\\s*setfilter\\s+)|\G(".$this->ldel."\\s{1,})|\G(".$this->ldel."\/)|\G(".$this->ldel.")|\G(<\\?(?:php\\w+|=|[a-zA-Z]+)?)|\G(\\?>)|\G(<%)|\G(%>)|\G([\S\s])/iS";
+ $yy_global_pattern = "/\G(\\{\\})|\G(" . $this->ldel . "\\*([\S\s]*?)\\*" . $this->rdel . ")|\G(" . $this->ldel . "\\s*strip\\s*" . $this->rdel . ")|\G(" . $this->ldel . "\\s*\/strip\\s*" . $this->rdel . ")|\G(" . $this->ldel . "\\s*literal\\s*" . $this->rdel . ")|\G(" . $this->ldel . "\\s*(if|elseif|else if|while)\\s+)|\G(" . $this->ldel . "\\s*for\\s+)|\G(" . $this->ldel . "\\s*foreach(?![^\s]))|\G(" . $this->ldel . "\\s*setfilter\\s+)|\G(" . $this->ldel . "\\s*\/)|\G(" . $this->ldel . "\\s*)|\G((<script\\s+language\\s*=\\s*[\"']?\\s*php\\s*[\"']?\\s*>)|(<\\?(?:php\\w+|=|[a-zA-Z]+)?))|\G(\\?>)|\G(<\/script>)|\G(\\s*" . $this->rdel . ")|\G(<%)|\G(%>)|\G([\S\s])/iS";
do {
- if ($this->mbstring_overload ? preg_match($yy_global_pattern, mb_substr($this->data, $this->counter,2000000000,'latin1'), $yymatches) : preg_match($yy_global_pattern,$this->data, $yymatches, null, $this->counter)) {
+ if (preg_match($yy_global_pattern, $this->data, $yymatches, null, $this->counter)) {
$yysubmatches = $yymatches;
$yymatches = array_filter($yymatches, 'strlen'); // remove empty sub-patterns
if (!count($yymatches)) {
throw new Exception('Error: lexing failed because a rule matched' .
- ' an empty string. Input "' . substr($this->data,
- $this->counter, 5) . '... state TEXT');
+ ' an empty string. Input "' . substr($this->data,
+ $this->counter, 5) . '... state TEXT');
}
next($yymatches); // skip global match
$this->token = key($yymatches); // token number
if ($tokenMap[$this->token]) {
// extract sub-patterns for passing to lex function
$yysubmatches = array_slice($yysubmatches, $this->token + 1,
- $tokenMap[$this->token]);
+ $tokenMap[$this->token]);
} else {
$yysubmatches = array();
}
$this->value = current($yymatches); // token value
$r = $this->{'yy_r1_' . $this->token}($yysubmatches);
if ($r === null) {
- $this->counter += ($this->mbstring_overload ? mb_strlen($this->value,'latin1'): strlen($this->value));
+ $this->counter += strlen($this->value);
$this->line += substr_count($this->value, "\n");
// accept this token
return true;
@@ -177,300 +201,295 @@ class Smarty_Internal_Templatelexer
// process this token in the new state
return $this->yylex();
} elseif ($r === false) {
- $this->counter += ($this->mbstring_overload ? mb_strlen($this->value,'latin1'): strlen($this->value));
+ $this->counter += strlen($this->value);
$this->line += substr_count($this->value, "\n");
- if ($this->counter >= ($this->mbstring_overload ? mb_strlen($this->data,'latin1'): strlen($this->data))) {
+ if ($this->counter >= strlen($this->data)) {
return false; // end of input
}
// skip this token
continue;
- } } else {
+ }
+ } else {
throw new Exception('Unexpected input at line' . $this->line .
- ': ' . $this->data[$this->counter]);
+ ': ' . $this->data[$this->counter]);
}
break;
} while (true);
-
} // end function
-
const TEXT = 1;
+
function yy_r1_1($yy_subpatterns)
{
- $this->token = Smarty_Internal_Templateparser::TP_SMARTYBLOCKCHILD;
+ $this->token = Smarty_Internal_Templateparser::TP_TEXT;
}
+
function yy_r1_2($yy_subpatterns)
{
- $this->token = Smarty_Internal_Templateparser::TP_TEXT;
+ $this->token = Smarty_Internal_Templateparser::TP_COMMENT;
}
- function yy_r1_3($yy_subpatterns)
+
+ function yy_r1_4($yy_subpatterns)
{
- $this->token = Smarty_Internal_Templateparser::TP_COMMENT;
+ if ($this->smarty->auto_literal && isset($this->value[$this->ldel_length]) ? strpos(" \n\t\r", $this->value[$this->ldel_length]) !== false : false) {
+ $this->token = Smarty_Internal_Templateparser::TP_TEXT;
+ } else {
+ $this->token = Smarty_Internal_Templateparser::TP_STRIPON;
+ }
}
+
function yy_r1_5($yy_subpatterns)
{
- $this->token = Smarty_Internal_Templateparser::TP_STRIPON;
+ if ($this->smarty->auto_literal && isset($this->value[$this->ldel_length]) ? strpos(" \n\t\r", $this->value[$this->ldel_length]) !== false : false) {
+ $this->token = Smarty_Internal_Templateparser::TP_TEXT;
+ } else {
+ $this->token = Smarty_Internal_Templateparser::TP_STRIPOFF;
+ }
}
+
function yy_r1_6($yy_subpatterns)
{
- if ($this->smarty->auto_literal) {
- $this->token = Smarty_Internal_Templateparser::TP_TEXT;
- } else {
- $this->token = Smarty_Internal_Templateparser::TP_STRIPON;
- }
+ if ($this->smarty->auto_literal && isset($this->value[$this->ldel_length]) ? strpos(" \n\t\r", $this->value[$this->ldel_length]) !== false : false) {
+ $this->token = Smarty_Internal_Templateparser::TP_TEXT;
+ } else {
+ $this->token = Smarty_Internal_Templateparser::TP_LITERALSTART;
+ $this->yypushstate(self::LITERAL);
+ }
}
+
function yy_r1_7($yy_subpatterns)
{
- $this->token = Smarty_Internal_Templateparser::TP_STRIPOFF;
+ if ($this->smarty->auto_literal && isset($this->value[$this->ldel_length]) ? strpos(" \n\t\r", $this->value[$this->ldel_length]) !== false : false) {
+ $this->token = Smarty_Internal_Templateparser::TP_TEXT;
+ } else {
+ $this->token = Smarty_Internal_Templateparser::TP_LDELIF;
+ $this->yypushstate(self::SMARTY);
+ $this->taglineno = $this->line;
+ }
}
- function yy_r1_8($yy_subpatterns)
- {
- if ($this->smarty->auto_literal) {
- $this->token = Smarty_Internal_Templateparser::TP_TEXT;
- } else {
- $this->token = Smarty_Internal_Templateparser::TP_STRIPOFF;
- }
- }
function yy_r1_9($yy_subpatterns)
{
- $this->token = Smarty_Internal_Templateparser::TP_LITERALSTART;
- $this->yypushstate(self::LITERAL);
+ if ($this->smarty->auto_literal && isset($this->value[$this->ldel_length]) ? strpos(" \n\t\r", $this->value[$this->ldel_length]) !== false : false) {
+ $this->token = Smarty_Internal_Templateparser::TP_TEXT;
+ } else {
+ $this->token = Smarty_Internal_Templateparser::TP_LDELFOR;
+ $this->yypushstate(self::SMARTY);
+ $this->taglineno = $this->line;
+ }
}
+
function yy_r1_10($yy_subpatterns)
{
- if ($this->smarty->auto_literal) {
- $this->token = Smarty_Internal_Templateparser::TP_TEXT;
- } else {
- $this->token = Smarty_Internal_Templateparser::TP_LDELSLASH;
- $this->yypushstate(self::SMARTY);
- $this->taglineno = $this->line;
- }
+ if ($this->smarty->auto_literal && isset($this->value[$this->ldel_length]) ? strpos(" \n\t\r", $this->value[$this->ldel_length]) !== false : false) {
+ $this->token = Smarty_Internal_Templateparser::TP_TEXT;
+ } else {
+ $this->token = Smarty_Internal_Templateparser::TP_LDELFOREACH;
+ $this->yypushstate(self::SMARTY);
+ $this->taglineno = $this->line;
+ }
}
+
function yy_r1_11($yy_subpatterns)
{
- if ($this->smarty->auto_literal && trim(substr($this->value,$this->ldel_length,1)) == '') {
- $this->token = Smarty_Internal_Templateparser::TP_TEXT;
- } else {
- $this->token = Smarty_Internal_Templateparser::TP_LDELIF;
- $this->yypushstate(self::SMARTY);
- $this->taglineno = $this->line;
- }
+ if ($this->smarty->auto_literal && isset($this->value[$this->ldel_length]) ? strpos(" \n\t\r", $this->value[$this->ldel_length]) !== false : false) {
+ $this->token = Smarty_Internal_Templateparser::TP_TEXT;
+ } else {
+ $this->token = Smarty_Internal_Templateparser::TP_LDELSETFILTER;
+ $this->yypushstate(self::SMARTY);
+ $this->taglineno = $this->line;
+ }
}
- function yy_r1_13($yy_subpatterns)
- {
- if ($this->smarty->auto_literal && trim(substr($this->value,$this->ldel_length,1)) == '') {
- $this->token = Smarty_Internal_Templateparser::TP_TEXT;
- } else {
- $this->token = Smarty_Internal_Templateparser::TP_LDELFOR;
- $this->yypushstate(self::SMARTY);
- $this->taglineno = $this->line;
- }
- }
- function yy_r1_14($yy_subpatterns)
+ function yy_r1_12($yy_subpatterns)
{
- if ($this->smarty->auto_literal && trim(substr($this->value,$this->ldel_length,1)) == '') {
- $this->token = Smarty_Internal_Templateparser::TP_TEXT;
- } else {
- $this->token = Smarty_Internal_Templateparser::TP_LDELFOREACH;
- $this->yypushstate(self::SMARTY);
- $this->taglineno = $this->line;
- }
+ if ($this->smarty->auto_literal && isset($this->value[$this->ldel_length]) ? strpos(" \n\t\r", $this->value[$this->ldel_length]) !== false : false) {
+ $this->token = Smarty_Internal_Templateparser::TP_TEXT;
+ } else {
+ $this->token = Smarty_Internal_Templateparser::TP_LDELSLASH;
+ $this->yypushstate(self::SMARTY);
+ $this->taglineno = $this->line;
+ }
}
- function yy_r1_15($yy_subpatterns)
+
+ function yy_r1_13($yy_subpatterns)
{
- if ($this->smarty->auto_literal && trim(substr($this->value,$this->ldel_length,1)) == '') {
- $this->token = Smarty_Internal_Templateparser::TP_TEXT;
- } else {
- $this->token = Smarty_Internal_Templateparser::TP_LDELSETFILTER;
- $this->yypushstate(self::SMARTY);
- $this->taglineno = $this->line;
- }
+ if ($this->smarty->auto_literal && isset($this->value[$this->ldel_length]) ? strpos(" \n\t\r", $this->value[$this->ldel_length]) !== false : false) {
+ $this->token = Smarty_Internal_Templateparser::TP_TEXT;
+ } else {
+ $this->token = Smarty_Internal_Templateparser::TP_LDEL;
+ $this->yypushstate(self::SMARTY);
+ $this->taglineno = $this->line;
+ }
}
- function yy_r1_16($yy_subpatterns)
+
+ function yy_r1_14($yy_subpatterns)
{
- if ($this->smarty->auto_literal) {
- $this->token = Smarty_Internal_Templateparser::TP_TEXT;
- } else {
- $this->token = Smarty_Internal_Templateparser::TP_LDEL;
- $this->yypushstate(self::SMARTY);
- $this->taglineno = $this->line;
- }
+ if (($script = strpos($this->value, '<s') === 0) || in_array($this->value, Array('<?', '<?=', '<?php'))) {
+ if ($script) {
+ $this->is_phpScript = true;
+ }
+ $this->token = Smarty_Internal_Templateparser::TP_PHPSTARTTAG;
+ } elseif ($this->value == '<?xml') {
+ $this->token = Smarty_Internal_Templateparser::TP_XMLTAG;
+ } else {
+ $this->token = Smarty_Internal_Templateparser::TP_TEXT;
+ //$this->value = substr($this->value, 0, 2);
+ }
}
+
function yy_r1_17($yy_subpatterns)
{
- $this->token = Smarty_Internal_Templateparser::TP_LDELSLASH;
- $this->yypushstate(self::SMARTY);
- $this->taglineno = $this->line;
+ $this->token = Smarty_Internal_Templateparser::TP_PHPENDTAG;
}
+
function yy_r1_18($yy_subpatterns)
{
- $this->token = Smarty_Internal_Templateparser::TP_LDEL;
- $this->yypushstate(self::SMARTY);
- $this->taglineno = $this->line;
+ $this->token = Smarty_Internal_Templateparser::TP_PHPENDSCRIPT;
}
+
function yy_r1_19($yy_subpatterns)
{
- if (in_array($this->value, Array('<?', '<?=', '<?php'))) {
- $this->token = Smarty_Internal_Templateparser::TP_PHPSTARTTAG;
- } elseif ($this->value == '<?xml') {
- $this->token = Smarty_Internal_Templateparser::TP_XMLTAG;
- } else {
- $this->token = Smarty_Internal_Templateparser::TP_FAKEPHPSTARTTAG;
- $this->value = substr($this->value, 0, 2);
- }
- }
+ $this->token = Smarty_Internal_Templateparser::TP_TEXT;
+ }
+
function yy_r1_20($yy_subpatterns)
{
- $this->token = Smarty_Internal_Templateparser::TP_PHPENDTAG;
+ $this->token = Smarty_Internal_Templateparser::TP_ASPSTARTTAG;
}
+
function yy_r1_21($yy_subpatterns)
{
- $this->token = Smarty_Internal_Templateparser::TP_ASPSTARTTAG;
+ $this->token = Smarty_Internal_Templateparser::TP_ASPENDTAG;
}
+
function yy_r1_22($yy_subpatterns)
{
- $this->token = Smarty_Internal_Templateparser::TP_ASPENDTAG;
- }
- function yy_r1_23($yy_subpatterns)
- {
-
- if ($this->mbstring_overload) {
- $to = mb_strlen($this->data,'latin1');
- } else {
- $to = strlen($this->data);
- }
- preg_match("/{$this->ldel}|<\?|\?>|<%|%>/",$this->data,$match,PREG_OFFSET_CAPTURE,$this->counter);
- if (isset($match[0][1])) {
- $to = $match[0][1];
- }
- if ($this->mbstring_overload) {
- $this->value = mb_substr($this->data,$this->counter,$to-$this->counter,'latin1');
- } else {
- $this->value = substr($this->data,$this->counter,$to-$this->counter);
- }
- $this->token = Smarty_Internal_Templateparser::TP_TEXT;
- }
-
-
- function yylex2()
- {
- $tokenMap = array (
- 1 => 0,
- 2 => 0,
- 3 => 1,
- 5 => 0,
- 6 => 0,
- 7 => 0,
- 8 => 0,
- 9 => 0,
- 10 => 0,
- 11 => 0,
- 12 => 0,
- 13 => 0,
- 14 => 0,
- 15 => 0,
- 16 => 0,
- 17 => 0,
- 18 => 0,
- 19 => 0,
- 20 => 1,
- 22 => 1,
- 24 => 1,
- 26 => 0,
- 27 => 0,
- 28 => 0,
- 29 => 0,
- 30 => 0,
- 31 => 0,
- 32 => 0,
- 33 => 0,
- 34 => 0,
- 35 => 0,
- 36 => 0,
- 37 => 0,
- 38 => 0,
- 39 => 0,
- 40 => 0,
- 41 => 0,
- 42 => 0,
- 43 => 3,
- 47 => 0,
- 48 => 0,
- 49 => 0,
- 50 => 0,
- 51 => 0,
- 52 => 0,
- 53 => 0,
- 54 => 0,
- 55 => 1,
- 57 => 1,
- 59 => 0,
- 60 => 0,
- 61 => 0,
- 62 => 0,
- 63 => 0,
- 64 => 0,
- 65 => 0,
- 66 => 0,
- 67 => 0,
- 68 => 0,
- 69 => 0,
- 70 => 0,
- 71 => 0,
- 72 => 0,
- 73 => 0,
- 74 => 0,
- 75 => 0,
- 76 => 0,
- 77 => 0,
- );
- if ($this->counter >= ($this->mbstring_overload ? mb_strlen($this->data,'latin1'): strlen($this->data))) {
+ $phpEndScript = $this->is_phpScript ? '|<\\/script>' : '';
+ $to = strlen($this->data);
+ preg_match("/{$this->ldel}|<\?|<%|\?>|%>|<script\s+language\s*=\s*[\"\']?\s*php\s*[\"\']?\s*>{$phpEndScript}/", $this->data, $match, PREG_OFFSET_CAPTURE, $this->counter);
+ if (isset($match[0][1])) {
+ $to = $match[0][1];
+ }
+ $this->value = substr($this->data, $this->counter, $to - $this->counter);
+ $this->token = Smarty_Internal_Templateparser::TP_TEXT;
+ }
+
+ public function yylex2()
+ {
+ $tokenMap = array(
+ 1 => 0,
+ 2 => 0,
+ 3 => 1,
+ 5 => 0,
+ 6 => 0,
+ 7 => 0,
+ 8 => 0,
+ 9 => 0,
+ 10 => 0,
+ 11 => 0,
+ 12 => 0,
+ 13 => 0,
+ 14 => 0,
+ 15 => 1,
+ 17 => 1,
+ 19 => 1,
+ 21 => 0,
+ 22 => 0,
+ 23 => 0,
+ 24 => 0,
+ 25 => 0,
+ 26 => 0,
+ 27 => 0,
+ 28 => 0,
+ 29 => 0,
+ 30 => 0,
+ 31 => 0,
+ 32 => 0,
+ 33 => 0,
+ 34 => 0,
+ 35 => 0,
+ 36 => 0,
+ 37 => 0,
+ 38 => 3,
+ 42 => 0,
+ 43 => 0,
+ 44 => 0,
+ 45 => 0,
+ 46 => 0,
+ 47 => 0,
+ 48 => 0,
+ 49 => 0,
+ 50 => 1,
+ 52 => 1,
+ 54 => 0,
+ 55 => 0,
+ 56 => 0,
+ 57 => 0,
+ 58 => 0,
+ 59 => 0,
+ 60 => 0,
+ 61 => 0,
+ 62 => 0,
+ 63 => 0,
+ 64 => 0,
+ 65 => 0,
+ 66 => 0,
+ 67 => 0,
+ 68 => 0,
+ 69 => 0,
+ 70 => 1,
+ 72 => 0,
+ 73 => 0,
+ 74 => 0,
+ 75 => 0,
+ 76 => 0,
+ );
+ if ($this->counter >= strlen($this->data)) {
return false; // end of input
}
- $yy_global_pattern = "/\G('[^'\\\\]*(?:\\\\.[^'\\\\]*)*')|\G(".$this->ldel."\\s{1,}\/)|\G(".$this->ldel."\\s*(if|elseif|else if|while)\\s+)|\G(".$this->ldel."\\s*for\\s+)|\G(".$this->ldel."\\s*foreach(?![^\s]))|\G(".$this->ldel."\\s{1,})|\G(\\s{1,}".$this->rdel.")|\G(".$this->ldel."\/)|\G(".$this->ldel.")|\G(".$this->rdel.")|\G(\\s+is\\s+in\\s+)|\G(\\s+as\\s+)|\G(\\s+to\\s+)|\G(\\s+step\\s+)|\G(\\s+instanceof\\s+)|\G(\\s*===\\s*)|\G(\\s*!==\\s*)|\G(\\s*==\\s*|\\s+eq\\s+)|\G(\\s*!=\\s*|\\s*<>\\s*|\\s+(ne|neq)\\s+)|\G(\\s*>=\\s*|\\s+(ge|gte)\\s+)|\G(\\s*<=\\s*|\\s+(le|lte)\\s+)|\G(\\s*>\\s*|\\s+gt\\s+)|\G(\\s*<\\s*|\\s+lt\\s+)|\G(\\s+mod\\s+)|\G(!\\s*|not\\s+)|\G(\\s*&&\\s*|\\s*and\\s+)|\G(\\s*\\|\\|\\s*|\\s*or\\s+)|\G(\\s*xor\\s+)|\G(\\s+is\\s+odd\\s+by\\s+)|\G(\\s+is\\s+not\\s+odd\\s+by\\s+)|\G(\\s+is\\s+odd)|\G(\\s+is\\s+not\\s+odd)|\G(\\s+is\\s+even\\s+by\\s+)|\G(\\s+is\\s+not\\s+even\\s+by\\s+)|\G(\\s+is\\s+even)|\G(\\s+is\\s+not\\s+even)|\G(\\s+is\\s+div\\s+by\\s+)|\G(\\s+is\\s+not\\s+div\\s+by\\s+)|\G(\\((int(eger)?|bool(ean)?|float|double|real|string|binary|array|object)\\)\\s*)|\G(\\s*\\(\\s*)|\G(\\s*\\))|\G(\\[\\s*)|\G(\\s*\\])|\G(\\s*->\\s*)|\G(\\s*=>\\s*)|\G(\\s*=\\s*)|\G(\\+\\+|--)|\G(\\s*(\\+|-)\\s*)|\G(\\s*(\\*|\/|%)\\s*)|\G(\\$)|\G(\\s*;)|\G(::)|\G(\\s*:\\s*)|\G(@)|\G(#)|\G(\")|\G(`)|\G(\\|)|\G(\\.)|\G(\\s*,\\s*)|\G(\\s*&\\s*)|\G(\\s*\\?\\s*)|\G(0[xX][0-9a-fA-F]+)|\G(\\s+[0-9]*[a-zA-Z_][a-zA-Z0-9_\-:]*\\s?=\\s?)|\G([0-9]*[a-zA-Z_]\\w*)|\G(\\d+)|\G(\\s+)|\G([\S\s])/iS";
+ $yy_global_pattern = "/\G(\")|\G('[^'\\\\]*(?:\\\\.[^'\\\\]*)*')|\G([$]smarty\\.block\\.(child|parent))|\G(\\$)|\G(\\s*" . $this->rdel . ")|\G(\\s+is\\s+in\\s+)|\G(\\s+as\\s+)|\G(\\s+to\\s+)|\G(\\s+step\\s+)|\G(\\s+instanceof\\s+)|\G(\\s*===\\s*)|\G(\\s*!==\\s*)|\G(\\s*==\\s*|\\s+eq\\s+)|\G(\\s*!=\\s*|\\s*<>\\s*|\\s+(ne|neq)\\s+)|\G(\\s*>=\\s*|\\s+(ge|gte)\\s+)|\G(\\s*<=\\s*|\\s+(le|lte)\\s+)|\G(\\s*>\\s*|\\s+gt\\s+)|\G(\\s*<\\s*|\\s+lt\\s+)|\G(\\s+mod\\s+)|\G(!\\s*|not\\s+)|\G(\\s*&&\\s*|\\s*and\\s+)|\G(\\s*\\|\\|\\s*|\\s*or\\s+)|\G(\\s*xor\\s+)|\G(\\s+is\\s+odd\\s+by\\s+)|\G(\\s+is\\s+not\\s+odd\\s+by\\s+)|\G(\\s+is\\s+odd)|\G(\\s+is\\s+not\\s+odd)|\G(\\s+is\\s+even\\s+by\\s+)|\G(\\s+is\\s+not\\s+even\\s+by\\s+)|\G(\\s+is\\s+even)|\G(\\s+is\\s+not\\s+even)|\G(\\s+is\\s+div\\s+by\\s+)|\G(\\s+is\\s+not\\s+div\\s+by\\s+)|\G(\\((int(eger)?|bool(ean)?|float|double|real|string|binary|array|object)\\)\\s*)|\G(\\s*\\(\\s*)|\G(\\s*\\))|\G(\\[\\s*)|\G(\\s*\\])|\G(\\s*->\\s*)|\G(\\s*=>\\s*)|\G(\\s*=\\s*)|\G(\\+\\+|--)|\G(\\s*(\\+|-)\\s*)|\G(\\s*(\\*|\/|%)\\s*)|\G(@)|\G(#)|\G(\\s+[0-9]*[a-zA-Z_][a-zA-Z0-9_\-:]*\\s*=\\s*)|\G([0-9]*[a-zA-Z_]\\w*)|\G(\\d+)|\G(`)|\G(\\|)|\G(\\.)|\G(\\s*,\\s*)|\G(\\s*;)|\G(::)|\G(\\s*:\\s*)|\G(\\s*&\\s*)|\G(\\s*\\?\\s*)|\G(0[xX][0-9a-fA-F]+)|\G(\\s+)|\G(" . $this->ldel . "\\s*(if|elseif|else if|while)\\s+)|\G(" . $this->ldel . "\\s*for\\s+)|\G(" . $this->ldel . "\\s*foreach(?![^\s]))|\G(" . $this->ldel . "\\s*\/)|\G(" . $this->ldel . "\\s*)|\G([\S\s])/iS";
do {
- if ($this->mbstring_overload ? preg_match($yy_global_pattern, mb_substr($this->data, $this->counter,2000000000,'latin1'), $yymatches) : preg_match($yy_global_pattern,$this->data, $yymatches, null, $this->counter)) {
+ if (preg_match($yy_global_pattern, $this->data, $yymatches, null, $this->counter)) {
$yysubmatches = $yymatches;
$yymatches = array_filter($yymatches, 'strlen'); // remove empty sub-patterns
if (!count($yymatches)) {
throw new Exception('Error: lexing failed because a rule matched' .
- ' an empty string. Input "' . substr($this->data,
- $this->counter, 5) . '... state SMARTY');
+ ' an empty string. Input "' . substr($this->data,
+ $this->counter, 5) . '... state SMARTY');
}
next($yymatches); // skip global match
$this->token = key($yymatches); // token number
if ($tokenMap[$this->token]) {
// extract sub-patterns for passing to lex function
$yysubmatches = array_slice($yysubmatches, $this->token + 1,
- $tokenMap[$this->token]);
+ $tokenMap[$this->token]);
} else {
$yysubmatches = array();
}
$this->value = current($yymatches); // token value
$r = $this->{'yy_r2_' . $this->token}($yysubmatches);
if ($r === null) {
- $this->counter += ($this->mbstring_overload ? mb_strlen($this->value,'latin1'): strlen($this->value));
+ $this->counter += strlen($this->value);
$this->line += substr_count($this->value, "\n");
// accept this token
return true;
@@ -479,443 +498,598 @@ class Smarty_Internal_Templatelexer
// process this token in the new state
return $this->yylex();
} elseif ($r === false) {
- $this->counter += ($this->mbstring_overload ? mb_strlen($this->value,'latin1'): strlen($this->value));
+ $this->counter += strlen($this->value);
$this->line += substr_count($this->value, "\n");
- if ($this->counter >= ($this->mbstring_overload ? mb_strlen($this->data,'latin1'): strlen($this->data))) {
+ if ($this->counter >= strlen($this->data)) {
return false; // end of input
}
// skip this token
continue;
- } } else {
+ }
+ } else {
throw new Exception('Unexpected input at line' . $this->line .
- ': ' . $this->data[$this->counter]);
+ ': ' . $this->data[$this->counter]);
}
break;
} while (true);
-
} // end function
-
const SMARTY = 2;
+
function yy_r2_1($yy_subpatterns)
{
- $this->token = Smarty_Internal_Templateparser::TP_SINGLEQUOTESTRING;
+ $this->token = Smarty_Internal_Templateparser::TP_QUOTE;
+ $this->yypushstate(self::DOUBLEQUOTEDSTRING);
}
+
function yy_r2_2($yy_subpatterns)
{
- if ($this->smarty->auto_literal) {
- $this->token = Smarty_Internal_Templateparser::TP_TEXT;
- } else {
- $this->token = Smarty_Internal_Templateparser::TP_LDELSLASH;
- $this->yypushstate(self::SMARTY);
- $this->taglineno = $this->line;
- }
+ $this->token = Smarty_Internal_Templateparser::TP_SINGLEQUOTESTRING;
}
+
function yy_r2_3($yy_subpatterns)
{
- if ($this->smarty->auto_literal && trim(substr($this->value,$this->ldel_length,1)) == '') {
- $this->token = Smarty_Internal_Templateparser::TP_TEXT;
- } else {
- $this->token = Smarty_Internal_Templateparser::TP_LDELIF;
- $this->yypushstate(self::SMARTY);
- $this->taglineno = $this->line;
- }
+ $this->token = Smarty_Internal_Templateparser::TP_SMARTYBLOCKCHILDPARENT;
+ $this->taglineno = $this->line;
}
+
function yy_r2_5($yy_subpatterns)
{
- if ($this->smarty->auto_literal && trim(substr($this->value,$this->ldel_length,1)) == '') {
- $this->token = Smarty_Internal_Templateparser::TP_TEXT;
- } else {
- $this->token = Smarty_Internal_Templateparser::TP_LDELFOR;
- $this->yypushstate(self::SMARTY);
- $this->taglineno = $this->line;
- }
+ $this->token = Smarty_Internal_Templateparser::TP_DOLLAR;
}
+
function yy_r2_6($yy_subpatterns)
{
- if ($this->smarty->auto_literal && trim(substr($this->value,$this->ldel_length,1)) == '') {
- $this->token = Smarty_Internal_Templateparser::TP_TEXT;
- } else {
- $this->token = Smarty_Internal_Templateparser::TP_LDELFOREACH;
- $this->yypushstate(self::SMARTY);
- $this->taglineno = $this->line;
- }
+ $this->token = Smarty_Internal_Templateparser::TP_RDEL;
+ $this->yypopstate();
}
+
function yy_r2_7($yy_subpatterns)
{
- if ($this->smarty->auto_literal) {
- $this->token = Smarty_Internal_Templateparser::TP_TEXT;
- } else {
- $this->token = Smarty_Internal_Templateparser::TP_LDEL;
- $this->yypushstate(self::SMARTY);
- $this->taglineno = $this->line;
- }
+ $this->token = Smarty_Internal_Templateparser::TP_ISIN;
}
+
function yy_r2_8($yy_subpatterns)
{
- $this->token = Smarty_Internal_Templateparser::TP_RDEL;
- $this->yypopstate();
+ $this->token = Smarty_Internal_Templateparser::TP_AS;
}
+
function yy_r2_9($yy_subpatterns)
{
- $this->token = Smarty_Internal_Templateparser::TP_LDELSLASH;
- $this->yypushstate(self::SMARTY);
- $this->taglineno = $this->line;
+ $this->token = Smarty_Internal_Templateparser::TP_TO;
}
+
function yy_r2_10($yy_subpatterns)
{
- $this->token = Smarty_Internal_Templateparser::TP_LDEL;
- $this->yypushstate(self::SMARTY);
- $this->taglineno = $this->line;
+ $this->token = Smarty_Internal_Templateparser::TP_STEP;
}
+
function yy_r2_11($yy_subpatterns)
{
- $this->token = Smarty_Internal_Templateparser::TP_RDEL;
- $this->yypopstate();
+ $this->token = Smarty_Internal_Templateparser::TP_INSTANCEOF;
}
+
function yy_r2_12($yy_subpatterns)
{
- $this->token = Smarty_Internal_Templateparser::TP_ISIN;
+ $this->token = Smarty_Internal_Templateparser::TP_IDENTITY;
}
+
function yy_r2_13($yy_subpatterns)
{
- $this->token = Smarty_Internal_Templateparser::TP_AS;
+ $this->token = Smarty_Internal_Templateparser::TP_NONEIDENTITY;
}
+
function yy_r2_14($yy_subpatterns)
{
- $this->token = Smarty_Internal_Templateparser::TP_TO;
+ $this->token = Smarty_Internal_Templateparser::TP_EQUALS;
}
+
function yy_r2_15($yy_subpatterns)
{
- $this->token = Smarty_Internal_Templateparser::TP_STEP;
+ $this->token = Smarty_Internal_Templateparser::TP_NOTEQUALS;
}
- function yy_r2_16($yy_subpatterns)
- {
- $this->token = Smarty_Internal_Templateparser::TP_INSTANCEOF;
- }
function yy_r2_17($yy_subpatterns)
{
- $this->token = Smarty_Internal_Templateparser::TP_IDENTITY;
+ $this->token = Smarty_Internal_Templateparser::TP_GREATEREQUAL;
}
- function yy_r2_18($yy_subpatterns)
- {
- $this->token = Smarty_Internal_Templateparser::TP_NONEIDENTITY;
- }
function yy_r2_19($yy_subpatterns)
{
- $this->token = Smarty_Internal_Templateparser::TP_EQUALS;
+ $this->token = Smarty_Internal_Templateparser::TP_LESSEQUAL;
}
- function yy_r2_20($yy_subpatterns)
+
+ function yy_r2_21($yy_subpatterns)
{
- $this->token = Smarty_Internal_Templateparser::TP_NOTEQUALS;
+ $this->token = Smarty_Internal_Templateparser::TP_GREATERTHAN;
}
+
function yy_r2_22($yy_subpatterns)
{
- $this->token = Smarty_Internal_Templateparser::TP_GREATEREQUAL;
+ $this->token = Smarty_Internal_Templateparser::TP_LESSTHAN;
+ }
+
+ function yy_r2_23($yy_subpatterns)
+ {
+
+ $this->token = Smarty_Internal_Templateparser::TP_MOD;
}
+
function yy_r2_24($yy_subpatterns)
{
- $this->token = Smarty_Internal_Templateparser::TP_LESSEQUAL;
+ $this->token = Smarty_Internal_Templateparser::TP_NOT;
+ }
+
+ function yy_r2_25($yy_subpatterns)
+ {
+
+ $this->token = Smarty_Internal_Templateparser::TP_LAND;
}
+
function yy_r2_26($yy_subpatterns)
{
- $this->token = Smarty_Internal_Templateparser::TP_GREATERTHAN;
+ $this->token = Smarty_Internal_Templateparser::TP_LOR;
}
+
function yy_r2_27($yy_subpatterns)
{
- $this->token = Smarty_Internal_Templateparser::TP_LESSTHAN;
+ $this->token = Smarty_Internal_Templateparser::TP_LXOR;
}
+
function yy_r2_28($yy_subpatterns)
{
- $this->token = Smarty_Internal_Templateparser::TP_MOD;
+ $this->token = Smarty_Internal_Templateparser::TP_ISODDBY;
}
+
function yy_r2_29($yy_subpatterns)
{
- $this->token = Smarty_Internal_Templateparser::TP_NOT;
+ $this->token = Smarty_Internal_Templateparser::TP_ISNOTODDBY;
}
+
function yy_r2_30($yy_subpatterns)
{
- $this->token = Smarty_Internal_Templateparser::TP_LAND;
+ $this->token = Smarty_Internal_Templateparser::TP_ISODD;
}
+
function yy_r2_31($yy_subpatterns)
{
- $this->token = Smarty_Internal_Templateparser::TP_LOR;
+ $this->token = Smarty_Internal_Templateparser::TP_ISNOTODD;
}
+
function yy_r2_32($yy_subpatterns)
{
- $this->token = Smarty_Internal_Templateparser::TP_LXOR;
+ $this->token = Smarty_Internal_Templateparser::TP_ISEVENBY;
}
+
function yy_r2_33($yy_subpatterns)
{
- $this->token = Smarty_Internal_Templateparser::TP_ISODDBY;
+ $this->token = Smarty_Internal_Templateparser::TP_ISNOTEVENBY;
}
+
function yy_r2_34($yy_subpatterns)
{
- $this->token = Smarty_Internal_Templateparser::TP_ISNOTODDBY;
+ $this->token = Smarty_Internal_Templateparser::TP_ISEVEN;
}
+
function yy_r2_35($yy_subpatterns)
{
- $this->token = Smarty_Internal_Templateparser::TP_ISODD;
+ $this->token = Smarty_Internal_Templateparser::TP_ISNOTEVEN;
}
+
function yy_r2_36($yy_subpatterns)
{
- $this->token = Smarty_Internal_Templateparser::TP_ISNOTODD;
+ $this->token = Smarty_Internal_Templateparser::TP_ISDIVBY;
}
+
function yy_r2_37($yy_subpatterns)
{
- $this->token = Smarty_Internal_Templateparser::TP_ISEVENBY;
+ $this->token = Smarty_Internal_Templateparser::TP_ISNOTDIVBY;
}
+
function yy_r2_38($yy_subpatterns)
{
- $this->token = Smarty_Internal_Templateparser::TP_ISNOTEVENBY;
+ $this->token = Smarty_Internal_Templateparser::TP_TYPECAST;
}
- function yy_r2_39($yy_subpatterns)
+
+ function yy_r2_42($yy_subpatterns)
{
- $this->token = Smarty_Internal_Templateparser::TP_ISEVEN;
+ $this->token = Smarty_Internal_Templateparser::TP_OPENP;
}
- function yy_r2_40($yy_subpatterns)
+
+ function yy_r2_43($yy_subpatterns)
{
- $this->token = Smarty_Internal_Templateparser::TP_ISNOTEVEN;
+ $this->token = Smarty_Internal_Templateparser::TP_CLOSEP;
}
- function yy_r2_41($yy_subpatterns)
+
+ function yy_r2_44($yy_subpatterns)
{
- $this->token = Smarty_Internal_Templateparser::TP_ISDIVBY;
+ $this->token = Smarty_Internal_Templateparser::TP_OPENB;
}
- function yy_r2_42($yy_subpatterns)
+
+ function yy_r2_45($yy_subpatterns)
{
- $this->token = Smarty_Internal_Templateparser::TP_ISNOTDIVBY;
+ $this->token = Smarty_Internal_Templateparser::TP_CLOSEB;
}
- function yy_r2_43($yy_subpatterns)
+
+ function yy_r2_46($yy_subpatterns)
{
- $this->token = Smarty_Internal_Templateparser::TP_TYPECAST;
+ $this->token = Smarty_Internal_Templateparser::TP_PTR;
}
+
function yy_r2_47($yy_subpatterns)
{
- $this->token = Smarty_Internal_Templateparser::TP_OPENP;
+ $this->token = Smarty_Internal_Templateparser::TP_APTR;
}
+
function yy_r2_48($yy_subpatterns)
{
- $this->token = Smarty_Internal_Templateparser::TP_CLOSEP;
+ $this->token = Smarty_Internal_Templateparser::TP_EQUAL;
}
+
function yy_r2_49($yy_subpatterns)
{
- $this->token = Smarty_Internal_Templateparser::TP_OPENB;
+ $this->token = Smarty_Internal_Templateparser::TP_INCDEC;
}
+
function yy_r2_50($yy_subpatterns)
{
- $this->token = Smarty_Internal_Templateparser::TP_CLOSEB;
+ $this->token = Smarty_Internal_Templateparser::TP_UNIMATH;
}
- function yy_r2_51($yy_subpatterns)
- {
- $this->token = Smarty_Internal_Templateparser::TP_PTR;
- }
function yy_r2_52($yy_subpatterns)
{
- $this->token = Smarty_Internal_Templateparser::TP_APTR;
+ $this->token = Smarty_Internal_Templateparser::TP_MATH;
}
- function yy_r2_53($yy_subpatterns)
- {
- $this->token = Smarty_Internal_Templateparser::TP_EQUAL;
- }
function yy_r2_54($yy_subpatterns)
{
- $this->token = Smarty_Internal_Templateparser::TP_INCDEC;
+ $this->token = Smarty_Internal_Templateparser::TP_AT;
}
+
function yy_r2_55($yy_subpatterns)
{
- $this->token = Smarty_Internal_Templateparser::TP_UNIMATH;
+ $this->token = Smarty_Internal_Templateparser::TP_HATCH;
}
+
+ function yy_r2_56($yy_subpatterns)
+ {
+
+ // resolve conflicts with shorttag and right_delimiter starting with '='
+ if (substr($this->data, $this->counter + strlen($this->value) - 1, $this->rdel_length) == $this->smarty->right_delimiter) {
+ preg_match("/\s+/", $this->value, $match);
+ $this->value = $match[0];
+ $this->token = Smarty_Internal_Templateparser::TP_SPACE;
+ } else {
+ $this->token = Smarty_Internal_Templateparser::TP_ATTR;
+ }
+ }
+
function yy_r2_57($yy_subpatterns)
{
- $this->token = Smarty_Internal_Templateparser::TP_MATH;
+ $this->token = Smarty_Internal_Templateparser::TP_ID;
+ }
+
+ function yy_r2_58($yy_subpatterns)
+ {
+
+ $this->token = Smarty_Internal_Templateparser::TP_INTEGER;
}
+
function yy_r2_59($yy_subpatterns)
{
- $this->token = Smarty_Internal_Templateparser::TP_DOLLAR;
+ $this->token = Smarty_Internal_Templateparser::TP_BACKTICK;
+ $this->yypopstate();
}
+
function yy_r2_60($yy_subpatterns)
{
- $this->token = Smarty_Internal_Templateparser::TP_SEMICOLON;
+ $this->token = Smarty_Internal_Templateparser::TP_VERT;
}
+
function yy_r2_61($yy_subpatterns)
{
- $this->token = Smarty_Internal_Templateparser::TP_DOUBLECOLON;
+ $this->token = Smarty_Internal_Templateparser::TP_DOT;
}
+
function yy_r2_62($yy_subpatterns)
{
- $this->token = Smarty_Internal_Templateparser::TP_COLON;
+ $this->token = Smarty_Internal_Templateparser::TP_COMMA;
}
+
function yy_r2_63($yy_subpatterns)
{
- $this->token = Smarty_Internal_Templateparser::TP_AT;
+ $this->token = Smarty_Internal_Templateparser::TP_SEMICOLON;
}
+
function yy_r2_64($yy_subpatterns)
{
- $this->token = Smarty_Internal_Templateparser::TP_HATCH;
+ $this->token = Smarty_Internal_Templateparser::TP_DOUBLECOLON;
}
+
function yy_r2_65($yy_subpatterns)
{
- $this->token = Smarty_Internal_Templateparser::TP_QUOTE;
- $this->yypushstate(self::DOUBLEQUOTEDSTRING);
+ $this->token = Smarty_Internal_Templateparser::TP_COLON;
}
+
function yy_r2_66($yy_subpatterns)
{
- $this->token = Smarty_Internal_Templateparser::TP_BACKTICK;
- $this->yypopstate();
+ $this->token = Smarty_Internal_Templateparser::TP_ANDSYM;
}
+
function yy_r2_67($yy_subpatterns)
{
- $this->token = Smarty_Internal_Templateparser::TP_VERT;
+ $this->token = Smarty_Internal_Templateparser::TP_QMARK;
}
+
function yy_r2_68($yy_subpatterns)
{
- $this->token = Smarty_Internal_Templateparser::TP_DOT;
+ $this->token = Smarty_Internal_Templateparser::TP_HEX;
}
+
function yy_r2_69($yy_subpatterns)
{
- $this->token = Smarty_Internal_Templateparser::TP_COMMA;
+ $this->token = Smarty_Internal_Templateparser::TP_SPACE;
}
+
function yy_r2_70($yy_subpatterns)
{
- $this->token = Smarty_Internal_Templateparser::TP_ANDSYM;
+ if ($this->smarty->auto_literal && isset($this->value[$this->ldel_length]) ? strpos(" \n\t\r", $this->value[$this->ldel_length]) !== false : false) {
+ $this->token = Smarty_Internal_Templateparser::TP_TEXT;
+ } else {
+ $this->token = Smarty_Internal_Templateparser::TP_LDELIF;
+ $this->yypushstate(self::SMARTY);
+ $this->taglineno = $this->line;
+ }
}
- function yy_r2_71($yy_subpatterns)
- {
- $this->token = Smarty_Internal_Templateparser::TP_QMARK;
- }
function yy_r2_72($yy_subpatterns)
{
- $this->token = Smarty_Internal_Templateparser::TP_HEX;
+ if ($this->smarty->auto_literal && isset($this->value[$this->ldel_length]) ? strpos(" \n\t\r", $this->value[$this->ldel_length]) !== false : false) {
+ $this->token = Smarty_Internal_Templateparser::TP_TEXT;
+ } else {
+ $this->token = Smarty_Internal_Templateparser::TP_LDELFOR;
+ $this->yypushstate(self::SMARTY);
+ $this->taglineno = $this->line;
+ }
}
+
function yy_r2_73($yy_subpatterns)
{
- $this->token = Smarty_Internal_Templateparser::TP_ATTR;
+ if ($this->smarty->auto_literal && isset($this->value[$this->ldel_length]) ? strpos(" \n\t\r", $this->value[$this->ldel_length]) !== false : false) {
+ $this->token = Smarty_Internal_Templateparser::TP_TEXT;
+ } else {
+ $this->token = Smarty_Internal_Templateparser::TP_LDELFOREACH;
+ $this->yypushstate(self::SMARTY);
+ $this->taglineno = $this->line;
+ }
}
+
function yy_r2_74($yy_subpatterns)
{
- $this->token = Smarty_Internal_Templateparser::TP_ID;
+ if ($this->smarty->auto_literal && isset($this->value[$this->ldel_length]) ? strpos(" \n\t\r", $this->value[$this->ldel_length]) !== false : false) {
+ $this->token = Smarty_Internal_Templateparser::TP_TEXT;
+ } else {
+ $this->token = Smarty_Internal_Templateparser::TP_LDELSLASH;
+ $this->yypushstate(self::SMARTY);
+ $this->taglineno = $this->line;
+ }
}
+
function yy_r2_75($yy_subpatterns)
{
- $this->token = Smarty_Internal_Templateparser::TP_INTEGER;
+ if ($this->smarty->auto_literal && isset($this->value[$this->ldel_length]) ? strpos(" \n\t\r", $this->value[$this->ldel_length]) !== false : false) {
+ $this->token = Smarty_Internal_Templateparser::TP_TEXT;
+ } else {
+ $this->token = Smarty_Internal_Templateparser::TP_LDEL;
+ $this->yypushstate(self::SMARTY);
+ $this->taglineno = $this->line;
+ }
}
+
function yy_r2_76($yy_subpatterns)
{
- $this->token = Smarty_Internal_Templateparser::TP_SPACE;
+ $this->token = Smarty_Internal_Templateparser::TP_TEXT;
}
- function yy_r2_77($yy_subpatterns)
+
+ public function yylex3()
{
+ $tokenMap = array(
+ 1 => 0,
+ 2 => 0,
+ 3 => 0,
+ );
+ if ($this->counter >= strlen($this->data)) {
+ return false; // end of input
+ }
+ $yy_global_pattern = "/\G(" . $this->ldel . "\\s*literal\\s*" . $this->rdel . ")|\G(" . $this->ldel . "\\s*\/literal\\s*" . $this->rdel . ")|\G([\S\s])/iS";
- $this->token = Smarty_Internal_Templateparser::TP_TEXT;
+ do {
+ if (preg_match($yy_global_pattern, $this->data, $yymatches, null, $this->counter)) {
+ $yysubmatches = $yymatches;
+ $yymatches = array_filter($yymatches, 'strlen'); // remove empty sub-patterns
+ if (!count($yymatches)) {
+ throw new Exception('Error: lexing failed because a rule matched' .
+ ' an empty string. Input "' . substr($this->data,
+ $this->counter, 5) . '... state LITERAL');
+ }
+ next($yymatches); // skip global match
+ $this->token = key($yymatches); // token number
+ if ($tokenMap[$this->token]) {
+ // extract sub-patterns for passing to lex function
+ $yysubmatches = array_slice($yysubmatches, $this->token + 1,
+ $tokenMap[$this->token]);
+ } else {
+ $yysubmatches = array();
+ }
+ $this->value = current($yymatches); // token value
+ $r = $this->{'yy_r3_' . $this->token}($yysubmatches);
+ if ($r === null) {
+ $this->counter += strlen($this->value);
+ $this->line += substr_count($this->value, "\n");
+ // accept this token
+ return true;
+ } elseif ($r === true) {
+ // we have changed state
+ // process this token in the new state
+ return $this->yylex();
+ } elseif ($r === false) {
+ $this->counter += strlen($this->value);
+ $this->line += substr_count($this->value, "\n");
+ if ($this->counter >= strlen($this->data)) {
+ return false; // end of input
+ }
+ // skip this token
+ continue;
+ }
+ } else {
+ throw new Exception('Unexpected input at line' . $this->line .
+ ': ' . $this->data[$this->counter]);
+ }
+ break;
+ } while (true);
+ } // end function
+
+ const LITERAL = 3;
+
+ function yy_r3_1($yy_subpatterns)
+ {
+
+ $this->literal_cnt ++;
+ $this->token = Smarty_Internal_Templateparser::TP_LITERAL;
}
+ function yy_r3_2($yy_subpatterns)
+ {
+ if ($this->literal_cnt) {
+ $this->literal_cnt --;
+ $this->token = Smarty_Internal_Templateparser::TP_LITERAL;
+ } else {
+ $this->token = Smarty_Internal_Templateparser::TP_LITERALEND;
+ $this->yypopstate();
+ }
+ }
- function yylex3()
+ function yy_r3_3($yy_subpatterns)
{
- $tokenMap = array (
- 1 => 0,
- 2 => 0,
- 3 => 0,
- 4 => 0,
- 5 => 0,
- 6 => 0,
- 7 => 0,
- );
- if ($this->counter >= ($this->mbstring_overload ? mb_strlen($this->data,'latin1'): strlen($this->data))) {
+
+ $to = strlen($this->data);
+ preg_match("/{$this->ldel}\/?literal{$this->rdel}/", $this->data, $match, PREG_OFFSET_CAPTURE, $this->counter);
+ if (isset($match[0][1])) {
+ $to = $match[0][1];
+ } else {
+ $this->compiler->trigger_template_error("missing or misspelled literal closing tag");
+ }
+ $this->value = substr($this->data, $this->counter, $to - $this->counter);
+ $this->token = Smarty_Internal_Templateparser::TP_LITERAL;
+ }
+
+ public function yylex4()
+ {
+ $tokenMap = array(
+ 1 => 1,
+ 3 => 0,
+ 4 => 0,
+ 5 => 0,
+ 6 => 0,
+ 7 => 0,
+ 8 => 0,
+ 9 => 0,
+ 10 => 0,
+ 11 => 0,
+ 12 => 0,
+ 13 => 3,
+ 17 => 0,
+ );
+ if ($this->counter >= strlen($this->data)) {
return false; // end of input
}
- $yy_global_pattern = "/\G(".$this->ldel."\\s*literal\\s*".$this->rdel.")|\G(".$this->ldel."\\s*\/literal\\s*".$this->rdel.")|\G(<\\?(?:php\\w+|=|[a-zA-Z]+)?)|\G(\\?>)|\G(<%)|\G(%>)|\G([\S\s])/iS";
+ $yy_global_pattern = "/\G(" . $this->ldel . "\\s*(if|elseif|else if|while)\\s+)|\G(" . $this->ldel . "\\s*for\\s+)|\G(" . $this->ldel . "\\s*foreach(?![^\s]))|\G(" . $this->ldel . "\\s*literal\\s*" . $this->rdel . ")|\G(" . $this->ldel . "\\s*\/literal\\s*" . $this->rdel . ")|\G(" . $this->ldel . "\\s*\/)|\G(" . $this->ldel . "\\s*)|\G(\")|\G(`\\$)|\G(\\$[0-9]*[a-zA-Z_]\\w*)|\G(\\$)|\G(([^\"\\\\]*?)((?:\\\\.[^\"\\\\]*?)*?)(?=(" . $this->ldel . "|\\$|`\\$|\")))|\G([\S\s])/iS";
do {
- if ($this->mbstring_overload ? preg_match($yy_global_pattern, mb_substr($this->data, $this->counter,2000000000,'latin1'), $yymatches) : preg_match($yy_global_pattern,$this->data, $yymatches, null, $this->counter)) {
+ if (preg_match($yy_global_pattern, $this->data, $yymatches, null, $this->counter)) {
$yysubmatches = $yymatches;
$yymatches = array_filter($yymatches, 'strlen'); // remove empty sub-patterns
if (!count($yymatches)) {
throw new Exception('Error: lexing failed because a rule matched' .
- ' an empty string. Input "' . substr($this->data,
- $this->counter, 5) . '... state LITERAL');
+ ' an empty string. Input "' . substr($this->data,
+ $this->counter, 5) . '... state DOUBLEQUOTEDSTRING');
}
next($yymatches); // skip global match
$this->token = key($yymatches); // token number
if ($tokenMap[$this->token]) {
// extract sub-patterns for passing to lex function
$yysubmatches = array_slice($yysubmatches, $this->token + 1,
- $tokenMap[$this->token]);
+ $tokenMap[$this->token]);
} else {
$yysubmatches = array();
}
$this->value = current($yymatches); // token value
- $r = $this->{'yy_r3_' . $this->token}($yysubmatches);
+ $r = $this->{'yy_r4_' . $this->token}($yysubmatches);
if ($r === null) {
- $this->counter += ($this->mbstring_overload ? mb_strlen($this->value,'latin1'): strlen($this->value));
+ $this->counter += strlen($this->value);
$this->line += substr_count($this->value, "\n");
// accept this token
return true;
@@ -924,128 +1098,173 @@ class Smarty_Internal_Templatelexer
// process this token in the new state
return $this->yylex();
} elseif ($r === false) {
- $this->counter += ($this->mbstring_overload ? mb_strlen($this->value,'latin1'): strlen($this->value));
+ $this->counter += strlen($this->value);
$this->line += substr_count($this->value, "\n");
- if ($this->counter >= ($this->mbstring_overload ? mb_strlen($this->data,'latin1'): strlen($this->data))) {
+ if ($this->counter >= strlen($this->data)) {
return false; // end of input
}
// skip this token
continue;
- } } else {
+ }
+ } else {
throw new Exception('Unexpected input at line' . $this->line .
- ': ' . $this->data[$this->counter]);
+ ': ' . $this->data[$this->counter]);
}
break;
} while (true);
-
} // end function
+ const DOUBLEQUOTEDSTRING = 4;
- const LITERAL = 3;
- function yy_r3_1($yy_subpatterns)
+ function yy_r4_1($yy_subpatterns)
{
- $this->token = Smarty_Internal_Templateparser::TP_LITERALSTART;
- $this->yypushstate(self::LITERAL);
+ if ($this->smarty->auto_literal && isset($this->value[$this->ldel_length]) ? strpos(" \n\t\r", $this->value[$this->ldel_length]) !== false : false) {
+ $this->token = Smarty_Internal_Templateparser::TP_TEXT;
+ } else {
+ $this->token = Smarty_Internal_Templateparser::TP_LDELIF;
+ $this->yypushstate(self::SMARTY);
+ $this->taglineno = $this->line;
+ }
}
- function yy_r3_2($yy_subpatterns)
+
+ function yy_r4_3($yy_subpatterns)
{
- $this->token = Smarty_Internal_Templateparser::TP_LITERALEND;
- $this->yypopstate();
+ if ($this->smarty->auto_literal && isset($this->value[$this->ldel_length]) ? strpos(" \n\t\r", $this->value[$this->ldel_length]) !== false : false) {
+ $this->token = Smarty_Internal_Templateparser::TP_TEXT;
+ } else {
+ $this->token = Smarty_Internal_Templateparser::TP_LDELFOR;
+ $this->yypushstate(self::SMARTY);
+ $this->taglineno = $this->line;
+ }
}
- function yy_r3_3($yy_subpatterns)
+
+ function yy_r4_4($yy_subpatterns)
+ {
+
+ if ($this->smarty->auto_literal && isset($this->value[$this->ldel_length]) ? strpos(" \n\t\r", $this->value[$this->ldel_length]) !== false : false) {
+ $this->token = Smarty_Internal_Templateparser::TP_TEXT;
+ } else {
+ $this->token = Smarty_Internal_Templateparser::TP_LDELFOREACH;
+ $this->yypushstate(self::SMARTY);
+ $this->taglineno = $this->line;
+ }
+ }
+
+ function yy_r4_5($yy_subpatterns)
+ {
+
+ $this->token = Smarty_Internal_Templateparser::TP_TEXT;
+ }
+
+ function yy_r4_6($yy_subpatterns)
+ {
+
+ $this->token = Smarty_Internal_Templateparser::TP_TEXT;
+ }
+
+ function yy_r4_7($yy_subpatterns)
+ {
+
+ if ($this->smarty->auto_literal && isset($this->value[$this->ldel_length]) ? strpos(" \n\t\r", $this->value[$this->ldel_length]) !== false : false) {
+ $this->token = Smarty_Internal_Templateparser::TP_TEXT;
+ } else {
+ $this->token = Smarty_Internal_Templateparser::TP_LDELSLASH;
+ $this->yypushstate(self::SMARTY);
+ $this->taglineno = $this->line;
+ }
+ }
+
+ function yy_r4_8($yy_subpatterns)
+ {
+
+ if ($this->smarty->auto_literal && isset($this->value[$this->ldel_length]) ? strpos(" \n\t\r", $this->value[$this->ldel_length]) !== false : false) {
+ $this->token = Smarty_Internal_Templateparser::TP_TEXT;
+ } else {
+ $this->token = Smarty_Internal_Templateparser::TP_LDEL;
+ $this->yypushstate(self::SMARTY);
+ $this->taglineno = $this->line;
+ }
+ }
+
+ function yy_r4_9($yy_subpatterns)
{
- if (in_array($this->value, Array('<?', '<?=', '<?php'))) {
- $this->token = Smarty_Internal_Templateparser::TP_PHPSTARTTAG;
- } else {
- $this->token = Smarty_Internal_Templateparser::TP_FAKEPHPSTARTTAG;
- $this->value = substr($this->value, 0, 2);
- }
+ $this->token = Smarty_Internal_Templateparser::TP_QUOTE;
+ $this->yypopstate();
}
- function yy_r3_4($yy_subpatterns)
+
+ function yy_r4_10($yy_subpatterns)
{
- $this->token = Smarty_Internal_Templateparser::TP_PHPENDTAG;
+ $this->token = Smarty_Internal_Templateparser::TP_BACKTICK;
+ $this->value = substr($this->value, 0, - 1);
+ $this->yypushstate(self::SMARTY);
+ $this->taglineno = $this->line;
}
- function yy_r3_5($yy_subpatterns)
+
+ function yy_r4_11($yy_subpatterns)
{
- $this->token = Smarty_Internal_Templateparser::TP_ASPSTARTTAG;
+ $this->token = Smarty_Internal_Templateparser::TP_DOLLARID;
}
- function yy_r3_6($yy_subpatterns)
+
+ function yy_r4_12($yy_subpatterns)
{
- $this->token = Smarty_Internal_Templateparser::TP_ASPENDTAG;
+ $this->token = Smarty_Internal_Templateparser::TP_TEXT;
}
- function yy_r3_7($yy_subpatterns)
+
+ function yy_r4_13($yy_subpatterns)
{
- if ($this->mbstring_overload) {
- $to = mb_strlen($this->data,'latin1');
- } else {
- $to = strlen($this->data);
- }
- preg_match("/{$this->ldel}\/?literal{$this->rdel}|<\?|<%|\?>|%>/",$this->data,$match,PREG_OFFSET_CAPTURE,$this->counter);
- if (isset($match[0][1])) {
- $to = $match[0][1];
- } else {
- $this->compiler->trigger_template_error ("missing or misspelled literal closing tag");
- }
- if ($this->mbstring_overload) {
- $this->value = mb_substr($this->data,$this->counter,$to-$this->counter,'latin1');
- } else {
- $this->value = substr($this->data,$this->counter,$to-$this->counter);
- }
- $this->token = Smarty_Internal_Templateparser::TP_LITERAL;
+ $this->token = Smarty_Internal_Templateparser::TP_TEXT;
}
+ function yy_r4_17($yy_subpatterns)
+ {
+
+ $to = strlen($this->data);
+ $this->value = substr($this->data, $this->counter, $to - $this->counter);
+ $this->token = Smarty_Internal_Templateparser::TP_TEXT;
+ }
- function yylex4()
+ public function yylex5()
{
- $tokenMap = array (
- 1 => 0,
- 2 => 1,
- 4 => 0,
- 5 => 0,
- 6 => 0,
- 7 => 0,
- 8 => 0,
- 9 => 0,
- 10 => 0,
- 11 => 0,
- 12 => 0,
- 13 => 3,
- 17 => 0,
- );
- if ($this->counter >= ($this->mbstring_overload ? mb_strlen($this->data,'latin1'): strlen($this->data))) {
+ $tokenMap = array(
+ 1 => 0,
+ 2 => 0,
+ 3 => 0,
+ 4 => 0,
+ );
+ if ($this->counter >= strlen($this->data)) {
return false; // end of input
}
- $yy_global_pattern = "/\G(".$this->ldel."\\s{1,}\/)|\G(".$this->ldel."\\s*(if|elseif|else if|while)\\s+)|\G(".$this->ldel."\\s*for\\s+)|\G(".$this->ldel."\\s*foreach(?![^\s]))|\G(".$this->ldel."\\s{1,})|\G(".$this->ldel."\/)|\G(".$this->ldel.")|\G(\")|\G(`\\$)|\G(\\$[0-9]*[a-zA-Z_]\\w*)|\G(\\$)|\G(([^\"\\\\]*?)((?:\\\\.[^\"\\\\]*?)*?)(?=(".$this->ldel."|\\$|`\\$|\")))|\G([\S\s])/iS";
+ $yy_global_pattern = "/\G(" . $this->ldel . "\\s*strip\\s*" . $this->rdel . ")|\G(" . $this->ldel . "\\s*\/strip\\s*" . $this->rdel . ")|\G(" . $this->ldel . "\\s*block)|\G([\S\s])/iS";
do {
- if ($this->mbstring_overload ? preg_match($yy_global_pattern, mb_substr($this->data, $this->counter,2000000000,'latin1'), $yymatches) : preg_match($yy_global_pattern,$this->data, $yymatches, null, $this->counter)) {
+ if (preg_match($yy_global_pattern, $this->data, $yymatches, null, $this->counter)) {
$yysubmatches = $yymatches;
$yymatches = array_filter($yymatches, 'strlen'); // remove empty sub-patterns
if (!count($yymatches)) {
throw new Exception('Error: lexing failed because a rule matched' .
- ' an empty string. Input "' . substr($this->data,
- $this->counter, 5) . '... state DOUBLEQUOTEDSTRING');
+ ' an empty string. Input "' . substr($this->data,
+ $this->counter, 5) . '... state CHILDBODY');
}
next($yymatches); // skip global match
$this->token = key($yymatches); // token number
if ($tokenMap[$this->token]) {
// extract sub-patterns for passing to lex function
$yysubmatches = array_slice($yysubmatches, $this->token + 1,
- $tokenMap[$this->token]);
+ $tokenMap[$this->token]);
} else {
$yysubmatches = array();
}
$this->value = current($yymatches); // token value
- $r = $this->{'yy_r4_' . $this->token}($yysubmatches);
+ $r = $this->{'yy_r5_' . $this->token}($yysubmatches);
if ($r === null) {
- $this->counter += ($this->mbstring_overload ? mb_strlen($this->value,'latin1'): strlen($this->value));
+ $this->counter += strlen($this->value);
$this->line += substr_count($this->value, "\n");
// accept this token
return true;
@@ -1054,137 +1273,280 @@ class Smarty_Internal_Templatelexer
// process this token in the new state
return $this->yylex();
} elseif ($r === false) {
- $this->counter += ($this->mbstring_overload ? mb_strlen($this->value,'latin1'): strlen($this->value));
+ $this->counter += strlen($this->value);
$this->line += substr_count($this->value, "\n");
- if ($this->counter >= ($this->mbstring_overload ? mb_strlen($this->data,'latin1'): strlen($this->data))) {
+ if ($this->counter >= strlen($this->data)) {
return false; // end of input
}
// skip this token
continue;
- } } else {
+ }
+ } else {
throw new Exception('Unexpected input at line' . $this->line .
- ': ' . $this->data[$this->counter]);
+ ': ' . $this->data[$this->counter]);
}
break;
} while (true);
-
} // end function
+ const CHILDBODY = 5;
- const DOUBLEQUOTEDSTRING = 4;
- function yy_r4_1($yy_subpatterns)
+ function yy_r5_1($yy_subpatterns)
{
- if ($this->smarty->auto_literal) {
- $this->token = Smarty_Internal_Templateparser::TP_TEXT;
- } else {
- $this->token = Smarty_Internal_Templateparser::TP_LDELSLASH;
- $this->yypushstate(self::SMARTY);
- $this->taglineno = $this->line;
- }
+ if ($this->smarty->auto_literal && isset($this->value[$this->ldel_length]) ? strpos(" \n\t\r", $this->value[$this->ldel_length]) !== false : false) {
+ return false;
+ } else {
+ $this->token = Smarty_Internal_Templateparser::TP_STRIPON;
+ }
}
- function yy_r4_2($yy_subpatterns)
+
+ function yy_r5_2($yy_subpatterns)
{
- if ($this->smarty->auto_literal && trim(substr($this->value,$this->ldel_length,1)) == '') {
- $this->token = Smarty_Internal_Templateparser::TP_TEXT;
- } else {
- $this->token = Smarty_Internal_Templateparser::TP_LDELIF;
- $this->yypushstate(self::SMARTY);
- $this->taglineno = $this->line;
- }
+ if ($this->smarty->auto_literal && isset($this->value[$this->ldel_length]) ? strpos(" \n\t\r", $this->value[$this->ldel_length]) !== false : false) {
+ return false;
+ } else {
+ $this->token = Smarty_Internal_Templateparser::TP_STRIPOFF;
+ }
}
- function yy_r4_4($yy_subpatterns)
+
+ function yy_r5_3($yy_subpatterns)
{
- if ($this->smarty->auto_literal && trim(substr($this->value,$this->ldel_length,1)) == '') {
- $this->token = Smarty_Internal_Templateparser::TP_TEXT;
- } else {
- $this->token = Smarty_Internal_Templateparser::TP_LDELFOR;
- $this->yypushstate(self::SMARTY);
- $this->taglineno = $this->line;
- }
+ if ($this->smarty->auto_literal && isset($this->value[$this->ldel_length]) ? strpos(" \n\t\r", $this->value[$this->ldel_length]) !== false : false) {
+ return false;
+ } else {
+ $this->yypopstate();
+ return true;
+ }
}
- function yy_r4_5($yy_subpatterns)
+
+ function yy_r5_4($yy_subpatterns)
{
- if ($this->smarty->auto_literal && trim(substr($this->value,$this->ldel_length,1)) == '') {
- $this->token = Smarty_Internal_Templateparser::TP_TEXT;
- } else {
- $this->token = Smarty_Internal_Templateparser::TP_LDELFOREACH;
- $this->yypushstate(self::SMARTY);
- $this->taglineno = $this->line;
- }
+ $to = strlen($this->data);
+ preg_match("/" . $this->ldel . "\s*((\/)?strip\s*" . $this->rdel . "|block\s+)/", $this->data, $match, PREG_OFFSET_CAPTURE, $this->counter);
+ if (isset($match[0][1])) {
+ $to = $match[0][1];
+ }
+ $this->value = substr($this->data, $this->counter, $to - $this->counter);
+ return false;
}
- function yy_r4_6($yy_subpatterns)
+
+ public function yylex6()
{
+ $tokenMap = array(
+ 1 => 0,
+ 2 => 0,
+ 3 => 0,
+ 4 => 1,
+ 6 => 0,
+ );
+ if ($this->counter >= strlen($this->data)) {
+ return false; // end of input
+ }
+ $yy_global_pattern = "/\G(" . $this->ldel . "\\s*literal\\s*" . $this->rdel . ")|\G(" . $this->ldel . "\\s*block)|\G(" . $this->ldel . "\\s*\/block)|\G(" . $this->ldel . "\\s*[$]smarty\\.block\\.(child|parent))|\G([\S\s])/iS";
- if ($this->smarty->auto_literal) {
- $this->token = Smarty_Internal_Templateparser::TP_TEXT;
- } else {
- $this->token = Smarty_Internal_Templateparser::TP_LDEL;
- $this->yypushstate(self::SMARTY);
- $this->taglineno = $this->line;
- }
- }
- function yy_r4_7($yy_subpatterns)
+ do {
+ if (preg_match($yy_global_pattern, $this->data, $yymatches, null, $this->counter)) {
+ $yysubmatches = $yymatches;
+ $yymatches = array_filter($yymatches, 'strlen'); // remove empty sub-patterns
+ if (!count($yymatches)) {
+ throw new Exception('Error: lexing failed because a rule matched' .
+ ' an empty string. Input "' . substr($this->data,
+ $this->counter, 5) . '... state CHILDBLOCK');
+ }
+ next($yymatches); // skip global match
+ $this->token = key($yymatches); // token number
+ if ($tokenMap[$this->token]) {
+ // extract sub-patterns for passing to lex function
+ $yysubmatches = array_slice($yysubmatches, $this->token + 1,
+ $tokenMap[$this->token]);
+ } else {
+ $yysubmatches = array();
+ }
+ $this->value = current($yymatches); // token value
+ $r = $this->{'yy_r6_' . $this->token}($yysubmatches);
+ if ($r === null) {
+ $this->counter += strlen($this->value);
+ $this->line += substr_count($this->value, "\n");
+ // accept this token
+ return true;
+ } elseif ($r === true) {
+ // we have changed state
+ // process this token in the new state
+ return $this->yylex();
+ } elseif ($r === false) {
+ $this->counter += strlen($this->value);
+ $this->line += substr_count($this->value, "\n");
+ if ($this->counter >= strlen($this->data)) {
+ return false; // end of input
+ }
+ // skip this token
+ continue;
+ }
+ } else {
+ throw new Exception('Unexpected input at line' . $this->line .
+ ': ' . $this->data[$this->counter]);
+ }
+ break;
+ } while (true);
+ } // end function
+
+ const CHILDBLOCK = 6;
+
+ function yy_r6_1($yy_subpatterns)
{
- $this->token = Smarty_Internal_Templateparser::TP_LDELSLASH;
- $this->yypushstate(self::SMARTY);
- $this->taglineno = $this->line;
+ if ($this->smarty->auto_literal && isset($this->value[$this->ldel_length]) ? strpos(" \n\t\r", $this->value[$this->ldel_length]) !== false : false) {
+ $this->token = Smarty_Internal_Templateparser::TP_BLOCKSOURCE;
+ } else {
+ $this->token = Smarty_Internal_Templateparser::TP_BLOCKSOURCE;
+ $this->yypushstate(self::CHILDLITERAL);
+ }
}
- function yy_r4_8($yy_subpatterns)
+
+ function yy_r6_2($yy_subpatterns)
{
- $this->token = Smarty_Internal_Templateparser::TP_LDEL;
- $this->yypushstate(self::SMARTY);
- $this->taglineno = $this->line;
+ if ($this->smarty->auto_literal && isset($this->value[$this->ldel_length]) ? strpos(" \n\t\r", $this->value[$this->ldel_length]) !== false : false) {
+ $this->token = Smarty_Internal_Templateparser::TP_BLOCKSOURCE;
+ } else {
+ $this->yypopstate();
+ return true;
+ }
}
- function yy_r4_9($yy_subpatterns)
+
+ function yy_r6_3($yy_subpatterns)
{
- $this->token = Smarty_Internal_Templateparser::TP_QUOTE;
- $this->yypopstate();
+ if ($this->smarty->auto_literal && isset($this->value[$this->ldel_length]) ? strpos(" \n\t\r", $this->value[$this->ldel_length]) !== false : false) {
+ $this->token = Smarty_Internal_Templateparser::TP_BLOCKSOURCE;
+ } else {
+ $this->yypopstate();
+ return true;
+ }
}
- function yy_r4_10($yy_subpatterns)
+
+ function yy_r6_4($yy_subpatterns)
{
- $this->token = Smarty_Internal_Templateparser::TP_BACKTICK;
- $this->value = substr($this->value,0,-1);
- $this->yypushstate(self::SMARTY);
- $this->taglineno = $this->line;
+ if ($this->smarty->auto_literal && isset($this->value[$this->ldel_length]) ? strpos(" \n\t\r", $this->value[$this->ldel_length]) !== false : false) {
+ $this->token = Smarty_Internal_Templateparser::TP_BLOCKSOURCE;
+ } else {
+ $this->yypopstate();
+ return true;
+ }
}
- function yy_r4_11($yy_subpatterns)
+
+ function yy_r6_6($yy_subpatterns)
{
- $this->token = Smarty_Internal_Templateparser::TP_DOLLARID;
+ $to = strlen($this->data);
+ preg_match("/" . $this->ldel . "\s*(literal\s*" . $this->rdel . "|(\/)?block(\s|" . $this->rdel . ")|[\$]smarty\.block\.(child|parent))/", $this->data, $match, PREG_OFFSET_CAPTURE, $this->counter);
+ if (isset($match[0][1])) {
+ $to = $match[0][1];
+ }
+ $this->value = substr($this->data, $this->counter, $to - $this->counter);
+ $this->token = Smarty_Internal_Templateparser::TP_BLOCKSOURCE;
}
- function yy_r4_12($yy_subpatterns)
+
+ public function yylex7()
{
+ $tokenMap = array(
+ 1 => 0,
+ 2 => 0,
+ 3 => 0,
+ );
+ if ($this->counter >= strlen($this->data)) {
+ return false; // end of input
+ }
+ $yy_global_pattern = "/\G(" . $this->ldel . "\\s*literal\\s*" . $this->rdel . ")|\G(" . $this->ldel . "\\s*\/literal\\s*" . $this->rdel . ")|\G([\S\s])/iS";
- $this->token = Smarty_Internal_Templateparser::TP_TEXT;
- }
- function yy_r4_13($yy_subpatterns)
+ do {
+ if (preg_match($yy_global_pattern, $this->data, $yymatches, null, $this->counter)) {
+ $yysubmatches = $yymatches;
+ $yymatches = array_filter($yymatches, 'strlen'); // remove empty sub-patterns
+ if (!count($yymatches)) {
+ throw new Exception('Error: lexing failed because a rule matched' .
+ ' an empty string. Input "' . substr($this->data,
+ $this->counter, 5) . '... state CHILDLITERAL');
+ }
+ next($yymatches); // skip global match
+ $this->token = key($yymatches); // token number
+ if ($tokenMap[$this->token]) {
+ // extract sub-patterns for passing to lex function
+ $yysubmatches = array_slice($yysubmatches, $this->token + 1,
+ $tokenMap[$this->token]);
+ } else {
+ $yysubmatches = array();
+ }
+ $this->value = current($yymatches); // token value
+ $r = $this->{'yy_r7_' . $this->token}($yysubmatches);
+ if ($r === null) {
+ $this->counter += strlen($this->value);
+ $this->line += substr_count($this->value, "\n");
+ // accept this token
+ return true;
+ } elseif ($r === true) {
+ // we have changed state
+ // process this token in the new state
+ return $this->yylex();
+ } elseif ($r === false) {
+ $this->counter += strlen($this->value);
+ $this->line += substr_count($this->value, "\n");
+ if ($this->counter >= strlen($this->data)) {
+ return false; // end of input
+ }
+ // skip this token
+ continue;
+ }
+ } else {
+ throw new Exception('Unexpected input at line' . $this->line .
+ ': ' . $this->data[$this->counter]);
+ }
+ break;
+ } while (true);
+ } // end function
+
+ const CHILDLITERAL = 7;
+
+ function yy_r7_1($yy_subpatterns)
{
- $this->token = Smarty_Internal_Templateparser::TP_TEXT;
+ if ($this->smarty->auto_literal && isset($this->value[$this->ldel_length]) ? strpos(" \n\t\r", $this->value[$this->ldel_length]) !== false : false) {
+ $this->token = Smarty_Internal_Templateparser::TP_BLOCKSOURCE;
+ } else {
+ $this->token = Smarty_Internal_Templateparser::TP_BLOCKSOURCE;
+ $this->yypushstate(self::CHILDLITERAL);
+ }
}
- function yy_r4_17($yy_subpatterns)
+
+ function yy_r7_2($yy_subpatterns)
{
- if ($this->mbstring_overload) {
- $to = mb_strlen($this->data,'latin1');
- } else {
- $to = strlen($this->data);
- }
- if ($this->mbstring_overload) {
- $this->value = mb_substr($this->data,$this->counter,$to-$this->counter,'latin1');
- } else {
- $this->value = substr($this->data,$this->counter,$to-$this->counter);
- }
- $this->token = Smarty_Internal_Templateparser::TP_TEXT;
+ if ($this->smarty->auto_literal && isset($this->value[$this->ldel_length]) ? strpos(" \n\t\r", $this->value[$this->ldel_length]) !== false : false) {
+ $this->token = Smarty_Internal_Templateparser::TP_BLOCKSOURCE;
+ } else {
+ $this->token = Smarty_Internal_Templateparser::TP_BLOCKSOURCE;
+ $this->yypopstate();
+ }
}
+ function yy_r7_3($yy_subpatterns)
+ {
+
+ $to = strlen($this->data);
+ preg_match("/{$this->ldel}\/?literal\s*{$this->rdel}/", $this->data, $match, PREG_OFFSET_CAPTURE, $this->counter);
+ if (isset($match[0][1])) {
+ $to = $match[0][1];
+ } else {
+ $this->compiler->trigger_template_error("missing or misspelled literal closing tag");
+ }
+ $this->value = substr($this->data, $this->counter, $to - $this->counter);
+ $this->token = Smarty_Internal_Templateparser::TP_BLOCKSOURCE;
+ }
}
-?> \ No newline at end of file
+
+ \ No newline at end of file
diff --git a/library/Smarty/libs/sysplugins/smarty_internal_templateparser.php b/library/Smarty/libs/sysplugins/smarty_internal_templateparser.php
index ed20e8237..98b9fc7fb 100644
--- a/library/Smarty/libs/sysplugins/smarty_internal_templateparser.php
+++ b/library/Smarty/libs/sysplugins/smarty_internal_templateparser.php
@@ -1,20 +1,20 @@
<?php
-/**
-* Smarty Internal Plugin Templateparser
-*
-* This is the template parser.
-* It is generated from the internal.templateparser.y file
-* @package Smarty
-* @subpackage Compiler
-* @author Uwe Tews
-*/
+/**
+ * Smarty Internal Plugin Templateparser
+ * This is the template parser.
+ * It is generated from the internal.templateparser.y file
+ *
+ * @package Smarty
+ * @subpackage Compiler
+ * @author Uwe Tews
+ */
class TP_yyToken implements ArrayAccess
{
public $string = '';
public $metadata = array();
- function __construct($s, $m = array())
+ public function __construct($s, $m = array())
{
if ($s instanceof TP_yyToken) {
$this->string = $s->string;
@@ -29,28 +29,29 @@ class TP_yyToken implements ArrayAccess
}
}
- function __toString()
+ public function __toString()
{
return $this->_string;
}
- function offsetExists($offset)
+ public function offsetExists($offset)
{
return isset($this->metadata[$offset]);
}
- function offsetGet($offset)
+ public function offsetGet($offset)
{
return $this->metadata[$offset];
}
- function offsetSet($offset, $value)
+ public function offsetSet($offset, $value)
{
if ($offset === null) {
if (isset($value[0])) {
$x = ($value instanceof TP_yyToken) ?
$value->metadata : $value;
$this->metadata = array_merge($this->metadata, $x);
+
return;
}
$offset = count($this->metadata);
@@ -67,7 +68,7 @@ class TP_yyToken implements ArrayAccess
}
}
- function offsetUnset($offset)
+ public function offsetUnset($offset)
{
unset($this->metadata[$offset]);
}
@@ -80,13 +81,14 @@ class TP_yyStackEntry
** number for the token at this stack level */
public $minor; /* The user-supplied minor token value. This
** is the value of the token */
-};
+}
+;
-#line 12 "smarty_internal_templateparser.y"
-class Smarty_Internal_Templateparser#line 79 "smarty_internal_templateparser.php"
+#line 13 "smarty_internal_templateparser.y"
+class Smarty_Internal_Templateparser#line 80 "smarty_internal_templateparser.php"
{
-#line 14 "smarty_internal_templateparser.y"
+ #line 15 "smarty_internal_templateparser.y"
const Err1 = "Security error: Call to private object member not allowed";
const Err2 = "Security error: Call to dynamic object member not allowed";
@@ -94,18 +96,25 @@ class Smarty_Internal_Templateparser#line 79 "smarty_internal_templateparser.php
// states whether the parse was successful or not
public $successful = true;
public $retvalue = 0;
+ public static $prefix_number = 0;
+ private $_string;
+ public $yymajor;
+ public $last_index;
+ public $last_variable;
+ public $root_buffer;
+ public $current_buffer;
private $lex;
private $internalError = false;
private $strip = false;
- function __construct($lex, $compiler) {
+ function __construct($lex, $compiler)
+ {
$this->lex = $lex;
$this->compiler = $compiler;
$this->smarty = $this->compiler->smarty;
$this->template = $this->compiler->template;
$this->compiler->has_variable_string = false;
$this->compiler->prefix_code = array();
- $this->prefix_number = 0;
$this->block_nesting_level = 0;
if ($this->security = isset($this->smarty->security_policy)) {
$this->php_handling = $this->smarty->security_policy->php_handling;
@@ -117,1367 +126,2494 @@ class Smarty_Internal_Templateparser#line 79 "smarty_internal_templateparser.php
$this->current_buffer = $this->root_buffer = new _smarty_template_buffer($this);
}
- public static function escape_start_tag($tag_text) {
- $tag = preg_replace('/\A<\?(.*)\z/', '<<?php ?>?\1', $tag_text, -1 , $count); //Escape tag
- return $tag;
- }
-
- public static function escape_end_tag($tag_text) {
- return '?<?php ?>>';
- }
-
- public function compileVariable($variable) {
- if (strpos($variable,'(') == 0) {
+ public function compileVariable($variable)
+ {
+ if (strpos($variable, '(') == 0) {
// not a variable variable
- $var = trim($variable,'\'');
- $this->compiler->tag_nocache=$this->compiler->tag_nocache|$this->template->getVariable($var, null, true, false)->nocache;
- $this->template->properties['variables'][$var] = $this->compiler->tag_nocache|$this->compiler->nocache;
+ $var = trim($variable, '\'');
+ $this->compiler->tag_nocache = $this->compiler->tag_nocache | $this->template->getVariable($var, null, true, false)->nocache;
+ $this->template->properties['variables'][$var] = $this->compiler->tag_nocache | $this->compiler->nocache;
}
-// return '(isset($_smarty_tpl->tpl_vars['. $variable .'])?$_smarty_tpl->tpl_vars['. $variable .']->value:$_smarty_tpl->getVariable('. $variable .')->value)';
- return '$_smarty_tpl->tpl_vars['. $variable .']->value';
+ // return '(isset($_smarty_tpl->tpl_vars['. $variable .'])?$_smarty_tpl->tpl_vars['. $variable .']->value:$_smarty_tpl->getVariable('. $variable .')->value)';
+ return '$_smarty_tpl->tpl_vars[' . $variable . ']->value';
}
-#line 132 "smarty_internal_templateparser.php"
- const TP_VERT = 1;
- const TP_COLON = 2;
- const TP_COMMENT = 3;
- const TP_PHPSTARTTAG = 4;
- const TP_PHPENDTAG = 5;
- const TP_ASPSTARTTAG = 6;
- const TP_ASPENDTAG = 7;
- const TP_FAKEPHPSTARTTAG = 8;
- const TP_XMLTAG = 9;
- const TP_TEXT = 10;
- const TP_STRIPON = 11;
- const TP_STRIPOFF = 12;
- const TP_LITERALSTART = 13;
- const TP_LITERALEND = 14;
- const TP_LITERAL = 15;
- const TP_LDEL = 16;
- const TP_RDEL = 17;
- const TP_DOLLAR = 18;
- const TP_ID = 19;
- const TP_EQUAL = 20;
- const TP_PTR = 21;
- const TP_LDELIF = 22;
- const TP_LDELFOR = 23;
- const TP_SEMICOLON = 24;
- const TP_INCDEC = 25;
- const TP_TO = 26;
- const TP_STEP = 27;
- const TP_LDELFOREACH = 28;
- const TP_SPACE = 29;
- const TP_AS = 30;
- const TP_APTR = 31;
- const TP_LDELSETFILTER = 32;
- const TP_SMARTYBLOCKCHILD = 33;
- const TP_LDELSLASH = 34;
- const TP_ATTR = 35;
- const TP_INTEGER = 36;
- const TP_COMMA = 37;
- const TP_OPENP = 38;
- const TP_CLOSEP = 39;
- const TP_MATH = 40;
- const TP_UNIMATH = 41;
- const TP_ANDSYM = 42;
- const TP_ISIN = 43;
- const TP_ISDIVBY = 44;
- const TP_ISNOTDIVBY = 45;
- const TP_ISEVEN = 46;
- const TP_ISNOTEVEN = 47;
- const TP_ISEVENBY = 48;
- const TP_ISNOTEVENBY = 49;
- const TP_ISODD = 50;
- const TP_ISNOTODD = 51;
- const TP_ISODDBY = 52;
- const TP_ISNOTODDBY = 53;
- const TP_INSTANCEOF = 54;
- const TP_QMARK = 55;
- const TP_NOT = 56;
- const TP_TYPECAST = 57;
- const TP_HEX = 58;
- const TP_DOT = 59;
- const TP_SINGLEQUOTESTRING = 60;
- const TP_DOUBLECOLON = 61;
- const TP_AT = 62;
- const TP_HATCH = 63;
- const TP_OPENB = 64;
- const TP_CLOSEB = 65;
- const TP_EQUALS = 66;
- const TP_NOTEQUALS = 67;
- const TP_GREATERTHAN = 68;
- const TP_LESSTHAN = 69;
- const TP_GREATEREQUAL = 70;
- const TP_LESSEQUAL = 71;
- const TP_IDENTITY = 72;
- const TP_NONEIDENTITY = 73;
- const TP_MOD = 74;
- const TP_LAND = 75;
- const TP_LOR = 76;
- const TP_LXOR = 77;
- const TP_QUOTE = 78;
- const TP_BACKTICK = 79;
- const TP_DOLLARID = 80;
- const YY_NO_ACTION = 593;
- const YY_ACCEPT_ACTION = 592;
- const YY_ERROR_ACTION = 591;
+ #line 130 "smarty_internal_templateparser.php"
+
+ const TP_VERT = 1;
+ const TP_COLON = 2;
+ const TP_RDEL = 3;
+ const TP_COMMENT = 4;
+ const TP_PHPSTARTTAG = 5;
+ const TP_PHPENDTAG = 6;
+ const TP_PHPENDSCRIPT = 7;
+ const TP_ASPSTARTTAG = 8;
+ const TP_ASPENDTAG = 9;
+ const TP_XMLTAG = 10;
+ const TP_TEXT = 11;
+ const TP_STRIPON = 12;
+ const TP_STRIPOFF = 13;
+ const TP_BLOCKSOURCE = 14;
+ const TP_LITERALSTART = 15;
+ const TP_LITERALEND = 16;
+ const TP_LITERAL = 17;
+ const TP_LDEL = 18;
+ const TP_DOLLAR = 19;
+ const TP_ID = 20;
+ const TP_EQUAL = 21;
+ const TP_PTR = 22;
+ const TP_LDELIF = 23;
+ const TP_LDELFOR = 24;
+ const TP_SEMICOLON = 25;
+ const TP_INCDEC = 26;
+ const TP_TO = 27;
+ const TP_STEP = 28;
+ const TP_LDELFOREACH = 29;
+ const TP_SPACE = 30;
+ const TP_AS = 31;
+ const TP_APTR = 32;
+ const TP_LDELSETFILTER = 33;
+ const TP_SMARTYBLOCKCHILDPARENT = 34;
+ const TP_LDELSLASH = 35;
+ const TP_ATTR = 36;
+ const TP_INTEGER = 37;
+ const TP_COMMA = 38;
+ const TP_OPENP = 39;
+ const TP_CLOSEP = 40;
+ const TP_MATH = 41;
+ const TP_UNIMATH = 42;
+ const TP_ANDSYM = 43;
+ const TP_ISIN = 44;
+ const TP_ISDIVBY = 45;
+ const TP_ISNOTDIVBY = 46;
+ const TP_ISEVEN = 47;
+ const TP_ISNOTEVEN = 48;
+ const TP_ISEVENBY = 49;
+ const TP_ISNOTEVENBY = 50;
+ const TP_ISODD = 51;
+ const TP_ISNOTODD = 52;
+ const TP_ISODDBY = 53;
+ const TP_ISNOTODDBY = 54;
+ const TP_INSTANCEOF = 55;
+ const TP_QMARK = 56;
+ const TP_NOT = 57;
+ const TP_TYPECAST = 58;
+ const TP_HEX = 59;
+ const TP_DOT = 60;
+ const TP_SINGLEQUOTESTRING = 61;
+ const TP_DOUBLECOLON = 62;
+ const TP_AT = 63;
+ const TP_HATCH = 64;
+ const TP_OPENB = 65;
+ const TP_CLOSEB = 66;
+ const TP_EQUALS = 67;
+ const TP_NOTEQUALS = 68;
+ const TP_GREATERTHAN = 69;
+ const TP_LESSTHAN = 70;
+ const TP_GREATEREQUAL = 71;
+ const TP_LESSEQUAL = 72;
+ const TP_IDENTITY = 73;
+ const TP_NONEIDENTITY = 74;
+ const TP_MOD = 75;
+ const TP_LAND = 76;
+ const TP_LOR = 77;
+ const TP_LXOR = 78;
+ const TP_QUOTE = 79;
+ const TP_BACKTICK = 80;
+ const TP_DOLLARID = 81;
+ const YY_NO_ACTION = 560;
+ const YY_ACCEPT_ACTION = 559;
+ const YY_ERROR_ACTION = 558;
- const YY_SZ_ACTTAB = 2453;
-static public $yy_action = array(
- /* 0 */ 210, 320, 317, 316, 312, 311, 313, 314, 315, 322,
- /* 10 */ 323, 189, 191, 340, 43, 168, 292, 290, 161, 25,
- /* 20 */ 3, 108, 284, 29, 294, 199, 146, 294, 15, 15,
- /* 30 */ 244, 296, 243, 277, 18, 18, 285, 12, 127, 48,
- /* 40 */ 52, 50, 44, 9, 14, 384, 385, 17, 16, 386,
- /* 50 */ 283, 41, 39, 210, 592, 95, 260, 319, 321, 6,
- /* 60 */ 21, 194, 135, 374, 193, 387, 383, 382, 378, 377,
- /* 70 */ 379, 380, 381, 363, 362, 345, 344, 28, 31, 34,
- /* 80 */ 370, 15, 19, 237, 137, 187, 25, 18, 203, 284,
- /* 90 */ 29, 203, 48, 52, 50, 44, 9, 14, 384, 385,
- /* 100 */ 17, 16, 386, 283, 41, 39, 329, 324, 326, 327,
- /* 110 */ 325, 24, 288, 4, 4, 189, 332, 330, 387, 383,
- /* 120 */ 382, 378, 377, 379, 380, 381, 363, 362, 345, 344,
- /* 130 */ 210, 368, 231, 210, 251, 117, 139, 139, 84, 132,
- /* 140 */ 278, 25, 10, 162, 284, 359, 338, 302, 346, 459,
- /* 150 */ 226, 228, 369, 364, 15, 375, 230, 15, 15, 177,
- /* 160 */ 18, 459, 240, 18, 18, 212, 257, 459, 294, 48,
- /* 170 */ 52, 50, 44, 9, 14, 384, 385, 17, 16, 386,
- /* 180 */ 283, 41, 39, 131, 101, 159, 47, 196, 340, 371,
- /* 190 */ 25, 190, 340, 284, 294, 387, 383, 382, 378, 377,
- /* 200 */ 379, 380, 381, 363, 362, 345, 344, 210, 368, 208,
- /* 210 */ 210, 203, 140, 210, 8, 56, 123, 118, 210, 457,
- /* 220 */ 366, 261, 234, 343, 302, 346, 453, 147, 228, 369,
- /* 230 */ 364, 457, 375, 15, 342, 15, 231, 457, 15, 18,
- /* 240 */ 4, 18, 307, 37, 18, 195, 48, 52, 50, 44,
- /* 250 */ 9, 14, 384, 385, 17, 16, 386, 283, 41, 39,
- /* 260 */ 210, 25, 2, 139, 284, 11, 47, 185, 210, 45,
- /* 270 */ 266, 47, 387, 383, 382, 378, 377, 379, 380, 381,
- /* 280 */ 363, 362, 345, 344, 286, 242, 104, 166, 15, 210,
- /* 290 */ 276, 184, 188, 23, 18, 272, 294, 22, 162, 48,
- /* 300 */ 52, 50, 44, 9, 14, 384, 385, 17, 16, 386,
- /* 310 */ 283, 41, 39, 203, 106, 170, 13, 15, 203, 288,
- /* 320 */ 318, 319, 321, 18, 294, 387, 383, 382, 378, 377,
- /* 330 */ 379, 380, 381, 363, 362, 345, 344, 210, 131, 105,
- /* 340 */ 210, 203, 23, 368, 268, 130, 249, 152, 355, 25,
- /* 350 */ 197, 132, 284, 271, 32, 162, 287, 155, 354, 210,
- /* 360 */ 3, 108, 15, 228, 369, 364, 146, 375, 18, 252,
- /* 370 */ 244, 296, 243, 375, 303, 305, 48, 52, 50, 44,
- /* 380 */ 9, 14, 384, 385, 17, 16, 386, 283, 41, 39,
- /* 390 */ 103, 210, 36, 208, 109, 388, 303, 232, 8, 4,
- /* 400 */ 248, 246, 387, 383, 382, 378, 377, 379, 380, 381,
- /* 410 */ 363, 362, 345, 344, 198, 40, 361, 27, 353, 179,
- /* 420 */ 175, 20, 139, 236, 239, 211, 116, 18, 294, 294,
- /* 430 */ 48, 52, 50, 44, 9, 14, 384, 385, 17, 16,
- /* 440 */ 386, 283, 41, 39, 178, 200, 200, 23, 25, 267,
- /* 450 */ 351, 284, 186, 294, 285, 201, 387, 383, 382, 378,
- /* 460 */ 377, 379, 380, 381, 363, 362, 345, 344, 210, 368,
- /* 470 */ 200, 210, 210, 140, 301, 181, 69, 123, 238, 25,
- /* 480 */ 210, 147, 284, 347, 202, 302, 346, 459, 304, 228,
- /* 490 */ 369, 364, 15, 375, 241, 15, 297, 172, 18, 459,
- /* 500 */ 235, 18, 203, 306, 129, 459, 294, 48, 52, 50,
- /* 510 */ 44, 9, 14, 384, 385, 17, 16, 386, 283, 41,
- /* 520 */ 39, 210, 25, 200, 47, 229, 25, 134, 210, 233,
- /* 530 */ 120, 119, 210, 387, 383, 382, 378, 377, 379, 380,
- /* 540 */ 381, 363, 362, 345, 344, 373, 373, 143, 308, 180,
- /* 550 */ 236, 282, 25, 25, 42, 284, 216, 236, 238, 250,
- /* 560 */ 48, 52, 50, 44, 9, 14, 384, 385, 17, 16,
- /* 570 */ 386, 283, 41, 39, 210, 30, 203, 360, 182, 25,
- /* 580 */ 285, 47, 222, 126, 167, 303, 387, 383, 382, 378,
- /* 590 */ 377, 379, 380, 381, 363, 362, 345, 344, 245, 373,
- /* 600 */ 15, 372, 160, 334, 6, 333, 18, 247, 254, 35,
- /* 610 */ 255, 294, 114, 48, 52, 50, 44, 9, 14, 384,
- /* 620 */ 385, 17, 16, 386, 283, 41, 39, 373, 192, 281,
- /* 630 */ 253, 145, 38, 298, 300, 226, 94, 124, 102, 387,
- /* 640 */ 383, 382, 378, 377, 379, 380, 381, 363, 362, 345,
- /* 650 */ 344, 210, 368, 373, 210, 141, 140, 368, 336, 71,
- /* 660 */ 132, 149, 136, 7, 10, 132, 165, 204, 302, 346,
- /* 670 */ 456, 98, 228, 369, 364, 294, 375, 228, 369, 364,
- /* 680 */ 279, 375, 456, 220, 232, 335, 373, 285, 456, 162,
- /* 690 */ 48, 52, 50, 44, 9, 14, 384, 385, 17, 16,
- /* 700 */ 386, 283, 41, 39, 210, 210, 309, 47, 285, 200,
- /* 710 */ 371, 45, 162, 183, 144, 97, 387, 383, 382, 378,
- /* 720 */ 377, 379, 380, 381, 363, 362, 345, 344, 285, 131,
- /* 730 */ 373, 354, 331, 107, 110, 256, 376, 327, 327, 327,
- /* 740 */ 327, 327, 115, 48, 52, 50, 44, 9, 14, 384,
- /* 750 */ 385, 17, 16, 386, 283, 41, 39, 373, 327, 327,
- /* 760 */ 327, 327, 327, 327, 327, 327, 327, 327, 356, 387,
- /* 770 */ 383, 382, 378, 377, 379, 380, 381, 363, 362, 345,
- /* 780 */ 344, 210, 352, 368, 327, 210, 327, 140, 327, 327,
- /* 790 */ 71, 132, 327, 100, 339, 327, 138, 269, 337, 302,
- /* 800 */ 346, 328, 327, 228, 369, 364, 15, 375, 373, 327,
- /* 810 */ 15, 373, 18, 15, 219, 327, 18, 327, 327, 18,
- /* 820 */ 48, 52, 50, 44, 9, 14, 384, 385, 17, 16,
- /* 830 */ 386, 283, 41, 39, 210, 327, 327, 327, 47, 327,
- /* 840 */ 327, 327, 327, 327, 327, 327, 387, 383, 382, 378,
- /* 850 */ 377, 379, 380, 381, 363, 362, 345, 344, 327, 327,
- /* 860 */ 327, 327, 327, 327, 327, 327, 327, 327, 327, 327,
- /* 870 */ 327, 327, 274, 48, 52, 50, 44, 9, 14, 384,
- /* 880 */ 385, 17, 16, 386, 283, 41, 39, 210, 327, 327,
- /* 890 */ 327, 327, 327, 327, 327, 327, 327, 327, 327, 387,
- /* 900 */ 383, 382, 378, 377, 379, 380, 381, 363, 362, 345,
- /* 910 */ 344, 327, 327, 327, 327, 327, 327, 327, 327, 327,
- /* 920 */ 327, 327, 327, 327, 327, 327, 48, 52, 50, 44,
- /* 930 */ 9, 14, 384, 385, 17, 16, 386, 283, 41, 39,
- /* 940 */ 210, 327, 327, 327, 327, 327, 327, 327, 327, 327,
- /* 950 */ 327, 265, 387, 383, 382, 378, 377, 379, 380, 381,
- /* 960 */ 363, 362, 345, 344, 327, 327, 327, 327, 327, 224,
- /* 970 */ 327, 327, 327, 327, 327, 327, 327, 327, 327, 48,
- /* 980 */ 52, 50, 44, 9, 14, 384, 385, 17, 16, 386,
- /* 990 */ 283, 41, 39, 210, 327, 327, 327, 327, 327, 327,
- /* 1000 */ 327, 327, 327, 327, 327, 387, 383, 382, 378, 377,
- /* 1010 */ 379, 380, 381, 363, 362, 345, 344, 327, 327, 327,
- /* 1020 */ 327, 327, 327, 327, 327, 327, 327, 327, 327, 327,
- /* 1030 */ 327, 327, 48, 52, 50, 44, 9, 14, 384, 385,
- /* 1040 */ 17, 16, 386, 283, 41, 39, 327, 327, 327, 327,
- /* 1050 */ 327, 327, 327, 327, 327, 327, 327, 327, 387, 383,
- /* 1060 */ 382, 378, 377, 379, 380, 381, 363, 362, 345, 344,
- /* 1070 */ 327, 327, 327, 48, 52, 50, 44, 9, 14, 384,
- /* 1080 */ 385, 17, 16, 386, 283, 41, 39, 327, 327, 327,
- /* 1090 */ 327, 327, 327, 327, 327, 327, 327, 327, 327, 387,
- /* 1100 */ 383, 382, 378, 377, 379, 380, 381, 363, 362, 345,
- /* 1110 */ 344, 327, 327, 327, 327, 327, 43, 327, 142, 207,
- /* 1120 */ 327, 327, 3, 108, 327, 264, 327, 368, 146, 327,
- /* 1130 */ 327, 151, 244, 296, 243, 132, 227, 15, 33, 327,
- /* 1140 */ 327, 51, 327, 18, 367, 327, 368, 228, 369, 364,
- /* 1150 */ 150, 375, 327, 174, 132, 327, 49, 46, 299, 225,
- /* 1160 */ 365, 327, 294, 103, 1, 280, 228, 369, 364, 262,
- /* 1170 */ 375, 327, 327, 43, 285, 142, 218, 327, 96, 3,
- /* 1180 */ 108, 15, 289, 327, 327, 146, 327, 18, 327, 244,
- /* 1190 */ 296, 243, 327, 227, 15, 33, 327, 327, 51, 327,
- /* 1200 */ 18, 327, 368, 327, 327, 327, 121, 327, 327, 54,
- /* 1210 */ 132, 327, 327, 49, 46, 299, 225, 365, 302, 346,
- /* 1220 */ 103, 1, 228, 369, 364, 327, 375, 350, 327, 327,
- /* 1230 */ 43, 327, 142, 205, 327, 96, 3, 108, 327, 15,
- /* 1240 */ 169, 327, 146, 327, 358, 18, 244, 296, 243, 294,
- /* 1250 */ 227, 327, 33, 327, 327, 51, 15, 327, 327, 368,
- /* 1260 */ 327, 285, 18, 140, 327, 327, 66, 132, 327, 327,
- /* 1270 */ 49, 46, 299, 225, 365, 302, 346, 103, 1, 228,
- /* 1280 */ 369, 364, 327, 375, 295, 327, 327, 43, 327, 130,
- /* 1290 */ 218, 327, 96, 3, 108, 327, 15, 327, 327, 146,
- /* 1300 */ 327, 293, 18, 244, 296, 243, 327, 227, 327, 26,
- /* 1310 */ 327, 327, 51, 15, 327, 327, 368, 327, 327, 18,
- /* 1320 */ 140, 327, 327, 60, 132, 327, 327, 49, 46, 299,
- /* 1330 */ 225, 365, 302, 346, 103, 1, 228, 369, 364, 327,
- /* 1340 */ 375, 258, 327, 327, 43, 327, 128, 218, 327, 96,
- /* 1350 */ 3, 108, 327, 15, 327, 327, 146, 327, 291, 18,
- /* 1360 */ 244, 296, 243, 327, 227, 327, 5, 327, 327, 51,
- /* 1370 */ 15, 327, 327, 368, 327, 327, 18, 140, 327, 327,
- /* 1380 */ 75, 132, 327, 327, 49, 46, 299, 225, 365, 302,
- /* 1390 */ 346, 103, 1, 228, 369, 364, 327, 375, 259, 327,
- /* 1400 */ 327, 43, 327, 142, 209, 327, 96, 3, 108, 327,
- /* 1410 */ 15, 327, 327, 146, 327, 273, 18, 244, 296, 243,
- /* 1420 */ 327, 227, 327, 33, 327, 327, 51, 15, 327, 327,
- /* 1430 */ 368, 327, 327, 18, 140, 327, 327, 87, 132, 327,
- /* 1440 */ 327, 49, 46, 299, 225, 365, 302, 346, 103, 1,
- /* 1450 */ 228, 369, 364, 327, 375, 275, 327, 327, 43, 327,
- /* 1460 */ 125, 92, 327, 96, 3, 108, 327, 15, 327, 327,
- /* 1470 */ 146, 327, 310, 18, 244, 296, 243, 327, 227, 327,
- /* 1480 */ 33, 327, 327, 51, 15, 327, 327, 368, 327, 327,
- /* 1490 */ 18, 140, 327, 327, 58, 132, 327, 327, 49, 46,
- /* 1500 */ 299, 225, 365, 302, 346, 103, 1, 228, 369, 364,
- /* 1510 */ 327, 375, 341, 327, 327, 43, 327, 133, 218, 327,
- /* 1520 */ 96, 3, 108, 327, 15, 327, 327, 146, 327, 348,
- /* 1530 */ 18, 244, 296, 243, 327, 227, 327, 33, 327, 327,
- /* 1540 */ 51, 15, 327, 327, 368, 327, 327, 18, 140, 327,
- /* 1550 */ 327, 68, 132, 327, 327, 49, 46, 299, 225, 365,
- /* 1560 */ 302, 346, 103, 1, 215, 369, 364, 327, 375, 327,
- /* 1570 */ 327, 327, 43, 327, 142, 206, 327, 96, 3, 108,
- /* 1580 */ 327, 327, 327, 327, 146, 327, 327, 327, 244, 296,
- /* 1590 */ 243, 327, 213, 327, 33, 327, 327, 51, 327, 327,
- /* 1600 */ 327, 368, 327, 327, 327, 140, 327, 327, 89, 132,
- /* 1610 */ 327, 327, 49, 46, 299, 225, 365, 302, 346, 103,
- /* 1620 */ 1, 228, 369, 364, 327, 375, 327, 327, 327, 43,
- /* 1630 */ 327, 130, 214, 327, 96, 3, 108, 327, 327, 327,
- /* 1640 */ 327, 146, 327, 327, 327, 244, 296, 243, 327, 227,
- /* 1650 */ 327, 26, 327, 327, 51, 327, 327, 327, 368, 327,
- /* 1660 */ 327, 327, 93, 327, 327, 53, 122, 327, 327, 49,
- /* 1670 */ 46, 299, 225, 365, 302, 346, 103, 327, 221, 369,
- /* 1680 */ 364, 327, 375, 327, 327, 327, 43, 327, 130, 218,
- /* 1690 */ 327, 96, 3, 108, 327, 327, 327, 327, 146, 327,
- /* 1700 */ 327, 327, 244, 296, 243, 327, 227, 327, 26, 327,
- /* 1710 */ 327, 51, 327, 327, 327, 368, 327, 327, 327, 140,
- /* 1720 */ 327, 327, 71, 132, 327, 327, 49, 46, 299, 225,
- /* 1730 */ 365, 302, 346, 103, 327, 228, 369, 364, 327, 375,
- /* 1740 */ 327, 327, 327, 327, 502, 327, 217, 327, 96, 327,
- /* 1750 */ 327, 502, 327, 502, 502, 355, 502, 502, 327, 327,
- /* 1760 */ 327, 32, 502, 327, 502, 4, 502, 3, 108, 327,
- /* 1770 */ 99, 171, 327, 146, 327, 327, 327, 244, 296, 243,
- /* 1780 */ 294, 502, 327, 28, 31, 327, 327, 327, 139, 327,
- /* 1790 */ 327, 327, 502, 327, 368, 193, 163, 203, 117, 327,
- /* 1800 */ 327, 84, 132, 327, 327, 294, 502, 327, 28, 31,
- /* 1810 */ 302, 346, 327, 368, 228, 369, 364, 157, 375, 327,
- /* 1820 */ 327, 132, 203, 357, 27, 353, 327, 327, 327, 263,
- /* 1830 */ 270, 327, 368, 228, 369, 364, 140, 375, 327, 69,
- /* 1840 */ 132, 327, 210, 368, 327, 327, 327, 140, 302, 346,
- /* 1850 */ 79, 132, 228, 369, 364, 327, 375, 327, 349, 302,
- /* 1860 */ 346, 327, 223, 228, 369, 364, 327, 375, 327, 327,
- /* 1870 */ 15, 327, 327, 327, 368, 327, 18, 327, 140, 4,
- /* 1880 */ 327, 91, 132, 327, 327, 327, 327, 327, 327, 327,
- /* 1890 */ 302, 346, 327, 327, 228, 369, 364, 368, 375, 327,
- /* 1900 */ 327, 140, 139, 368, 76, 132, 327, 153, 327, 327,
- /* 1910 */ 327, 132, 327, 302, 346, 327, 327, 228, 369, 364,
- /* 1920 */ 327, 375, 368, 228, 369, 364, 140, 375, 327, 63,
- /* 1930 */ 132, 327, 327, 368, 327, 327, 327, 111, 302, 346,
- /* 1940 */ 62, 132, 228, 369, 364, 327, 375, 327, 327, 302,
- /* 1950 */ 346, 327, 327, 228, 369, 364, 327, 375, 327, 327,
- /* 1960 */ 368, 193, 176, 327, 140, 327, 327, 78, 132, 327,
- /* 1970 */ 327, 294, 327, 327, 28, 31, 302, 346, 327, 327,
- /* 1980 */ 228, 369, 364, 368, 375, 327, 327, 140, 203, 368,
- /* 1990 */ 64, 132, 327, 154, 327, 327, 327, 132, 327, 302,
- /* 2000 */ 346, 327, 327, 228, 369, 364, 327, 375, 368, 228,
- /* 2010 */ 369, 364, 140, 375, 327, 77, 132, 327, 327, 368,
- /* 2020 */ 327, 327, 327, 140, 302, 346, 80, 132, 228, 369,
- /* 2030 */ 364, 327, 375, 327, 327, 302, 346, 327, 327, 228,
- /* 2040 */ 369, 364, 327, 375, 327, 327, 368, 327, 327, 327,
- /* 2050 */ 140, 327, 327, 61, 132, 327, 327, 327, 327, 327,
- /* 2060 */ 327, 327, 302, 346, 327, 327, 228, 369, 364, 368,
- /* 2070 */ 375, 327, 327, 140, 327, 368, 65, 132, 327, 156,
- /* 2080 */ 327, 327, 327, 132, 327, 302, 346, 327, 327, 228,
- /* 2090 */ 369, 364, 327, 375, 368, 228, 369, 364, 140, 375,
- /* 2100 */ 327, 81, 132, 327, 327, 368, 327, 327, 327, 113,
- /* 2110 */ 302, 346, 88, 132, 228, 369, 364, 327, 375, 327,
- /* 2120 */ 327, 302, 346, 327, 327, 228, 369, 364, 327, 375,
- /* 2130 */ 327, 327, 368, 327, 327, 327, 140, 327, 327, 67,
- /* 2140 */ 132, 327, 327, 327, 327, 327, 327, 327, 302, 346,
- /* 2150 */ 327, 327, 228, 369, 364, 368, 375, 327, 327, 140,
- /* 2160 */ 327, 368, 86, 132, 327, 148, 327, 327, 327, 132,
- /* 2170 */ 327, 302, 346, 327, 327, 228, 369, 364, 327, 375,
- /* 2180 */ 368, 228, 369, 364, 140, 375, 327, 85, 132, 327,
- /* 2190 */ 327, 368, 327, 327, 327, 112, 302, 346, 73, 132,
- /* 2200 */ 228, 369, 364, 327, 375, 327, 327, 302, 346, 327,
- /* 2210 */ 327, 228, 369, 364, 327, 375, 327, 327, 368, 327,
- /* 2220 */ 327, 327, 140, 327, 327, 70, 132, 327, 327, 327,
- /* 2230 */ 327, 327, 327, 327, 302, 346, 327, 327, 228, 369,
- /* 2240 */ 364, 368, 375, 327, 327, 140, 327, 327, 57, 132,
- /* 2250 */ 327, 327, 327, 327, 327, 327, 327, 302, 346, 327,
- /* 2260 */ 327, 228, 369, 364, 327, 375, 368, 327, 327, 327,
- /* 2270 */ 140, 327, 327, 90, 132, 327, 327, 368, 327, 327,
- /* 2280 */ 327, 140, 302, 346, 83, 132, 228, 369, 364, 327,
- /* 2290 */ 375, 327, 327, 302, 346, 327, 327, 228, 369, 364,
- /* 2300 */ 327, 375, 327, 327, 368, 327, 327, 327, 140, 327,
- /* 2310 */ 327, 82, 132, 327, 327, 327, 327, 327, 327, 327,
- /* 2320 */ 302, 346, 327, 327, 228, 369, 364, 368, 375, 327,
- /* 2330 */ 327, 140, 327, 327, 55, 132, 327, 327, 327, 327,
- /* 2340 */ 327, 327, 327, 302, 346, 327, 327, 228, 369, 364,
- /* 2350 */ 327, 375, 368, 327, 327, 327, 140, 327, 327, 72,
- /* 2360 */ 132, 327, 327, 368, 327, 327, 327, 93, 302, 346,
- /* 2370 */ 59, 122, 228, 369, 364, 327, 375, 327, 327, 302,
- /* 2380 */ 346, 327, 327, 228, 369, 364, 327, 375, 327, 327,
- /* 2390 */ 368, 327, 327, 327, 140, 327, 327, 74, 132, 327,
- /* 2400 */ 327, 327, 327, 193, 158, 327, 302, 346, 327, 327,
- /* 2410 */ 228, 369, 364, 294, 375, 327, 28, 31, 193, 173,
- /* 2420 */ 327, 327, 327, 327, 327, 193, 164, 327, 294, 327,
- /* 2430 */ 203, 28, 31, 327, 327, 294, 327, 327, 28, 31,
- /* 2440 */ 327, 327, 327, 327, 327, 203, 327, 327, 327, 327,
- /* 2450 */ 327, 327, 203,
+ const YY_SZ_ACTTAB = 2541;
+ static public $yy_action = array(
+ /* 0 */
+ 225, 35, 312, 333, 198, 272, 273, 275, 283, 292,
+ /* 10 */
+ 293, 294, 295, 287, 288, 267, 190, 43, 19, 8,
+ /* 20 */
+ 204, 14, 212, 299, 2, 108, 225, 9, 424, 41,
+ /* 30 */
+ 139, 208, 225, 41, 250, 32, 228, 13, 159, 32,
+ /* 40 */
+ 51, 52, 50, 44, 11, 12, 298, 300, 21, 23,
+ /* 50 */
+ 303, 302, 25, 17, 225, 424, 234, 225, 225, 381,
+ /* 60 */
+ 421, 424, 45, 38, 145, 357, 313, 323, 322, 324,
+ /* 70 */
+ 325, 326, 320, 315, 314, 316, 317, 319, 127, 41,
+ /* 80 */
+ 46, 42, 338, 41, 168, 32, 41, 421, 14, 32,
+ /* 90 */
+ 299, 34, 32, 421, 51, 52, 50, 44, 11, 12,
+ /* 100 */
+ 298, 300, 21, 23, 303, 302, 25, 17, 225, 104,
+ /* 110 */
+ 185, 46, 46, 559, 95, 279, 242, 271, 3, 321,
+ /* 120 */
+ 313, 323, 322, 324, 325, 326, 320, 315, 314, 316,
+ /* 130 */
+ 317, 319, 14, 241, 299, 34, 208, 41, 225, 14,
+ /* 140 */
+ 418, 299, 28, 32, 179, 7, 356, 285, 51, 52,
+ /* 150 */
+ 50, 44, 11, 12, 298, 300, 21, 23, 303, 302,
+ /* 160 */
+ 25, 17, 225, 225, 274, 424, 240, 41, 134, 190,
+ /* 170 */
+ 332, 343, 340, 32, 313, 323, 322, 324, 325, 326,
+ /* 180 */
+ 320, 315, 314, 316, 317, 319, 37, 122, 182, 31,
+ /* 190 */
+ 202, 225, 424, 352, 225, 14, 7, 299, 424, 225,
+ /* 200 */
+ 150, 386, 51, 52, 50, 44, 11, 12, 298, 300,
+ /* 210 */
+ 21, 23, 303, 302, 25, 17, 225, 46, 349, 134,
+ /* 220 */
+ 41, 278, 242, 271, 7, 29, 32, 341, 313, 323,
+ /* 230 */
+ 322, 324, 325, 326, 320, 315, 314, 316, 317, 319,
+ /* 240 */
+ 226, 227, 197, 304, 103, 184, 232, 134, 46, 14,
+ /* 250 */
+ 35, 299, 265, 46, 321, 18, 51, 52, 50, 44,
+ /* 260 */
+ 11, 12, 298, 300, 21, 23, 303, 302, 25, 17,
+ /* 270 */
+ 225, 208, 264, 259, 258, 218, 6, 109, 345, 35,
+ /* 280 */
+ 193, 263, 313, 323, 322, 324, 325, 326, 320, 315,
+ /* 290 */
+ 314, 316, 317, 319, 241, 192, 304, 107, 102, 175,
+ /* 300 */
+ 269, 201, 191, 304, 203, 142, 253, 208, 321, 335,
+ /* 310 */
+ 51, 52, 50, 44, 11, 12, 298, 300, 21, 23,
+ /* 320 */
+ 303, 302, 25, 17, 225, 208, 268, 196, 208, 305,
+ /* 330 */
+ 485, 208, 230, 200, 308, 485, 313, 323, 322, 324,
+ /* 340 */
+ 325, 326, 320, 315, 314, 316, 317, 319, 30, 159,
+ /* 350 */
+ 105, 20, 233, 161, 186, 305, 301, 274, 256, 247,
+ /* 360 */
+ 208, 225, 321, 36, 51, 52, 50, 44, 11, 12,
+ /* 370 */
+ 298, 300, 21, 23, 303, 302, 25, 17, 225, 204,
+ /* 380 */
+ 207, 14, 254, 299, 131, 259, 249, 225, 158, 127,
+ /* 390 */
+ 313, 323, 322, 324, 325, 326, 320, 315, 314, 316,
+ /* 400 */
+ 317, 319, 237, 262, 130, 225, 45, 183, 187, 14,
+ /* 410 */
+ 169, 223, 301, 342, 274, 334, 321, 321, 51, 52,
+ /* 420 */
+ 50, 44, 11, 12, 298, 300, 21, 23, 303, 302,
+ /* 430 */
+ 25, 17, 225, 204, 204, 14, 6, 244, 141, 259,
+ /* 440 */
+ 291, 46, 98, 194, 313, 323, 322, 324, 325, 326,
+ /* 450 */
+ 320, 315, 314, 316, 317, 319, 132, 262, 227, 166,
+ /* 460 */
+ 163, 189, 14, 284, 231, 26, 237, 27, 321, 321,
+ /* 470 */
+ 321, 32, 51, 52, 50, 44, 11, 12, 298, 300,
+ /* 480 */
+ 21, 23, 303, 302, 25, 17, 225, 204, 14, 276,
+ /* 490 */
+ 245, 206, 22, 4, 144, 328, 150, 120, 313, 323,
+ /* 500 */
+ 322, 324, 325, 326, 320, 315, 314, 316, 317, 319,
+ /* 510 */
+ 195, 348, 262, 176, 171, 39, 30, 199, 143, 180,
+ /* 520 */
+ 148, 281, 321, 260, 159, 230, 51, 52, 50, 44,
+ /* 530 */
+ 11, 12, 298, 300, 21, 23, 303, 302, 25, 17,
+ /* 540 */
+ 225, 296, 205, 129, 346, 289, 124, 329, 125, 339,
+ /* 550 */
+ 97, 119, 313, 323, 322, 324, 325, 326, 320, 315,
+ /* 560 */
+ 314, 316, 317, 319, 127, 262, 262, 239, 277, 282,
+ /* 570 */
+ 307, 94, 266, 351, 269, 170, 159, 181, 172, 106,
+ /* 580 */
+ 51, 52, 50, 44, 11, 12, 298, 300, 21, 23,
+ /* 590 */
+ 303, 302, 25, 17, 225, 330, 270, 301, 15, 115,
+ /* 600 */
+ 331, 310, 326, 255, 140, 126, 313, 323, 322, 324,
+ /* 610 */
+ 325, 326, 320, 315, 314, 316, 317, 319, 301, 326,
+ /* 620 */
+ 262, 326, 326, 326, 326, 326, 326, 326, 326, 326,
+ /* 630 */
+ 326, 326, 326, 243, 51, 52, 50, 44, 11, 12,
+ /* 640 */
+ 298, 300, 21, 23, 303, 302, 25, 17, 225, 40,
+ /* 650 */
+ 326, 326, 326, 326, 326, 326, 326, 113, 99, 100,
+ /* 660 */
+ 313, 323, 322, 324, 325, 326, 320, 315, 314, 316,
+ /* 670 */
+ 317, 319, 262, 262, 262, 326, 326, 326, 326, 326,
+ /* 680 */
+ 326, 326, 326, 326, 326, 326, 326, 326, 51, 52,
+ /* 690 */
+ 50, 44, 11, 12, 298, 300, 21, 23, 303, 302,
+ /* 700 */
+ 25, 17, 225, 326, 326, 326, 326, 326, 326, 326,
+ /* 710 */
+ 326, 114, 326, 326, 313, 323, 322, 324, 325, 326,
+ /* 720 */
+ 320, 315, 314, 316, 317, 319, 262, 326, 326, 326,
+ /* 730 */
+ 326, 326, 326, 326, 326, 326, 326, 326, 326, 326,
+ /* 740 */
+ 326, 286, 51, 52, 50, 44, 11, 12, 298, 300,
+ /* 750 */
+ 21, 23, 303, 302, 25, 17, 225, 326, 326, 326,
+ /* 760 */
+ 326, 326, 326, 326, 326, 326, 326, 326, 313, 323,
+ /* 770 */
+ 322, 324, 325, 326, 320, 315, 314, 316, 317, 319,
+ /* 780 */
+ 326, 326, 326, 326, 326, 326, 326, 326, 326, 326,
+ /* 790 */
+ 326, 326, 326, 326, 326, 326, 51, 52, 50, 44,
+ /* 800 */
+ 11, 12, 298, 300, 21, 23, 303, 302, 25, 17,
+ /* 810 */
+ 326, 326, 326, 326, 326, 326, 326, 326, 326, 326,
+ /* 820 */
+ 159, 326, 313, 323, 322, 324, 325, 326, 320, 315,
+ /* 830 */
+ 314, 316, 317, 319, 326, 326, 326, 326, 51, 52,
+ /* 840 */
+ 50, 44, 11, 12, 298, 300, 21, 23, 303, 302,
+ /* 850 */
+ 25, 17, 326, 326, 326, 326, 326, 326, 212, 326,
+ /* 860 */
+ 326, 326, 326, 9, 313, 323, 322, 324, 325, 326,
+ /* 870 */
+ 320, 315, 314, 316, 317, 319, 326, 326, 326, 326,
+ /* 880 */
+ 326, 326, 326, 8, 138, 211, 326, 326, 2, 108,
+ /* 890 */
+ 326, 235, 326, 326, 139, 157, 165, 326, 250, 128,
+ /* 900 */
+ 228, 326, 246, 326, 24, 321, 326, 48, 261, 326,
+ /* 910 */
+ 326, 251, 336, 353, 326, 311, 326, 301, 174, 173,
+ /* 920 */
+ 326, 326, 49, 47, 280, 238, 297, 321, 321, 105,
+ /* 930 */
+ 1, 337, 326, 147, 326, 326, 326, 326, 326, 301,
+ /* 940 */
+ 301, 8, 123, 92, 96, 257, 2, 108, 326, 311,
+ /* 950 */
+ 326, 326, 139, 326, 326, 235, 250, 309, 228, 146,
+ /* 960 */
+ 246, 326, 24, 128, 162, 48, 326, 326, 326, 326,
+ /* 970 */
+ 235, 326, 350, 321, 155, 251, 336, 353, 128, 311,
+ /* 980 */
+ 49, 47, 280, 238, 297, 301, 326, 105, 1, 326,
+ /* 990 */
+ 251, 336, 353, 326, 311, 14, 326, 299, 326, 8,
+ /* 1000 */
+ 138, 224, 96, 326, 2, 108, 326, 41, 326, 252,
+ /* 1010 */
+ 139, 235, 326, 32, 250, 153, 228, 326, 246, 128,
+ /* 1020 */
+ 24, 326, 326, 48, 326, 326, 326, 326, 326, 326,
+ /* 1030 */
+ 326, 251, 336, 353, 326, 311, 326, 326, 49, 47,
+ /* 1040 */
+ 280, 238, 297, 326, 326, 105, 1, 326, 326, 326,
+ /* 1050 */
+ 326, 326, 14, 326, 299, 326, 326, 8, 142, 224,
+ /* 1060 */
+ 96, 326, 2, 108, 41, 235, 248, 326, 139, 154,
+ /* 1070 */
+ 32, 235, 250, 128, 228, 156, 246, 326, 33, 128,
+ /* 1080 */
+ 326, 48, 326, 326, 326, 251, 336, 353, 326, 311,
+ /* 1090 */
+ 326, 251, 336, 353, 326, 311, 49, 47, 280, 238,
+ /* 1100 */
+ 297, 326, 326, 105, 1, 326, 326, 326, 326, 326,
+ /* 1110 */
+ 326, 326, 326, 326, 326, 8, 138, 213, 96, 326,
+ /* 1120 */
+ 2, 108, 326, 326, 326, 326, 139, 235, 326, 326,
+ /* 1130 */
+ 250, 149, 228, 326, 246, 128, 24, 326, 326, 48,
+ /* 1140 */
+ 326, 326, 326, 326, 326, 326, 326, 251, 336, 353,
+ /* 1150 */
+ 326, 311, 326, 326, 49, 47, 280, 238, 297, 326,
+ /* 1160 */
+ 326, 105, 1, 326, 326, 326, 326, 326, 326, 326,
+ /* 1170 */
+ 326, 326, 326, 8, 138, 210, 96, 326, 2, 108,
+ /* 1180 */
+ 326, 326, 326, 326, 139, 235, 326, 326, 250, 151,
+ /* 1190 */
+ 228, 326, 219, 128, 24, 326, 326, 48, 326, 326,
+ /* 1200 */
+ 326, 326, 326, 326, 326, 251, 336, 353, 326, 311,
+ /* 1210 */
+ 326, 326, 49, 47, 280, 238, 297, 326, 326, 105,
+ /* 1220 */
+ 1, 326, 326, 326, 326, 326, 326, 326, 326, 326,
+ /* 1230 */
+ 326, 8, 136, 224, 96, 326, 2, 108, 326, 326,
+ /* 1240 */
+ 326, 326, 139, 235, 326, 326, 250, 152, 228, 326,
+ /* 1250 */
+ 246, 128, 24, 326, 326, 48, 326, 326, 326, 326,
+ /* 1260 */
+ 326, 326, 326, 251, 336, 353, 326, 311, 326, 326,
+ /* 1270 */
+ 49, 47, 280, 238, 297, 326, 326, 105, 1, 326,
+ /* 1280 */
+ 225, 326, 391, 326, 422, 326, 326, 326, 326, 8,
+ /* 1290 */
+ 135, 224, 96, 326, 2, 108, 326, 326, 326, 326,
+ /* 1300 */
+ 139, 236, 229, 326, 250, 326, 228, 326, 246, 41,
+ /* 1310 */
+ 5, 422, 326, 48, 326, 32, 326, 422, 7, 326,
+ /* 1320 */
+ 7, 326, 326, 326, 198, 178, 326, 326, 49, 47,
+ /* 1330 */
+ 280, 238, 297, 326, 321, 105, 1, 43, 19, 326,
+ /* 1340 */
+ 326, 134, 326, 134, 326, 326, 326, 8, 138, 209,
+ /* 1350 */
+ 96, 208, 2, 108, 326, 326, 326, 326, 139, 326,
+ /* 1360 */
+ 326, 326, 250, 326, 228, 326, 246, 326, 24, 198,
+ /* 1370 */
+ 164, 48, 326, 326, 326, 326, 326, 326, 326, 321,
+ /* 1380 */
+ 326, 326, 43, 19, 326, 326, 49, 47, 280, 238,
+ /* 1390 */
+ 297, 326, 326, 105, 1, 326, 208, 326, 326, 326,
+ /* 1400 */
+ 326, 326, 326, 326, 326, 8, 142, 224, 96, 326,
+ /* 1410 */
+ 2, 108, 326, 326, 326, 326, 139, 326, 326, 326,
+ /* 1420 */
+ 250, 326, 228, 326, 246, 326, 33, 198, 177, 48,
+ /* 1430 */
+ 326, 326, 326, 326, 326, 326, 326, 321, 326, 326,
+ /* 1440 */
+ 43, 19, 326, 326, 49, 47, 280, 238, 297, 326,
+ /* 1450 */
+ 326, 105, 326, 326, 208, 326, 326, 326, 326, 326,
+ /* 1460 */
+ 326, 326, 326, 8, 142, 222, 96, 326, 2, 108,
+ /* 1470 */
+ 326, 326, 326, 326, 139, 326, 326, 326, 250, 326,
+ /* 1480 */
+ 228, 326, 246, 326, 33, 326, 467, 48, 326, 326,
+ /* 1490 */
+ 326, 326, 326, 326, 326, 326, 326, 326, 326, 326,
+ /* 1500 */
+ 326, 326, 49, 47, 280, 238, 297, 326, 467, 105,
+ /* 1510 */
+ 467, 467, 326, 467, 467, 326, 326, 326, 326, 467,
+ /* 1520 */
+ 326, 467, 7, 467, 96, 326, 326, 326, 326, 326,
+ /* 1530 */
+ 326, 326, 326, 326, 326, 235, 326, 326, 467, 121,
+ /* 1540 */
+ 326, 326, 86, 128, 326, 134, 326, 326, 326, 467,
+ /* 1550 */
+ 326, 290, 318, 326, 326, 251, 336, 353, 326, 311,
+ /* 1560 */
+ 326, 326, 326, 467, 326, 326, 326, 235, 326, 216,
+ /* 1570 */
+ 354, 133, 326, 326, 68, 117, 249, 326, 326, 326,
+ /* 1580 */
+ 326, 326, 326, 290, 318, 326, 326, 251, 336, 353,
+ /* 1590 */
+ 235, 311, 326, 326, 133, 326, 326, 76, 128, 326,
+ /* 1600 */
+ 326, 326, 326, 326, 326, 326, 290, 318, 326, 235,
+ /* 1610 */
+ 251, 336, 353, 133, 311, 326, 76, 128, 326, 326,
+ /* 1620 */
+ 326, 221, 326, 326, 326, 290, 318, 326, 326, 251,
+ /* 1630 */
+ 336, 353, 326, 311, 326, 326, 326, 326, 235, 326,
+ /* 1640 */
+ 215, 326, 121, 326, 326, 86, 128, 326, 326, 326,
+ /* 1650 */
+ 326, 326, 326, 326, 290, 318, 326, 326, 251, 336,
+ /* 1660 */
+ 353, 235, 311, 326, 326, 133, 326, 326, 59, 117,
+ /* 1670 */
+ 137, 326, 326, 355, 326, 326, 326, 290, 318, 326,
+ /* 1680 */
+ 326, 251, 336, 353, 235, 311, 326, 326, 133, 326,
+ /* 1690 */
+ 326, 76, 128, 326, 326, 326, 326, 326, 326, 326,
+ /* 1700 */
+ 290, 318, 326, 235, 251, 336, 353, 110, 311, 326,
+ /* 1710 */
+ 69, 128, 326, 326, 326, 217, 326, 326, 326, 290,
+ /* 1720 */
+ 318, 326, 326, 251, 336, 353, 326, 311, 326, 235,
+ /* 1730 */
+ 101, 160, 326, 133, 326, 326, 57, 128, 326, 326,
+ /* 1740 */
+ 321, 326, 326, 43, 19, 290, 318, 326, 235, 251,
+ /* 1750 */
+ 336, 353, 133, 311, 326, 73, 128, 208, 326, 326,
+ /* 1760 */
+ 326, 326, 326, 326, 290, 318, 326, 326, 251, 336,
+ /* 1770 */
+ 353, 235, 311, 326, 326, 133, 326, 326, 78, 128,
+ /* 1780 */
+ 326, 326, 326, 326, 326, 326, 326, 290, 318, 326,
+ /* 1790 */
+ 235, 251, 336, 353, 133, 311, 326, 70, 128, 326,
+ /* 1800 */
+ 326, 326, 326, 326, 326, 326, 290, 318, 326, 326,
+ /* 1810 */
+ 251, 336, 353, 326, 311, 326, 235, 198, 167, 326,
+ /* 1820 */
+ 133, 326, 326, 64, 128, 326, 326, 321, 326, 326,
+ /* 1830 */
+ 43, 19, 290, 318, 326, 235, 251, 336, 353, 133,
+ /* 1840 */
+ 311, 326, 67, 128, 208, 326, 326, 326, 326, 326,
+ /* 1850 */
+ 326, 290, 318, 326, 326, 251, 336, 353, 235, 311,
+ /* 1860 */
+ 326, 326, 133, 326, 326, 88, 128, 326, 326, 326,
+ /* 1870 */
+ 326, 326, 326, 326, 290, 318, 326, 235, 251, 336,
+ /* 1880 */
+ 353, 133, 311, 326, 82, 128, 326, 326, 326, 326,
+ /* 1890 */
+ 326, 326, 326, 290, 318, 326, 326, 251, 336, 353,
+ /* 1900 */
+ 326, 311, 326, 235, 198, 188, 326, 133, 326, 326,
+ /* 1910 */
+ 72, 128, 326, 326, 321, 326, 326, 43, 19, 290,
+ /* 1920 */
+ 318, 326, 235, 251, 336, 353, 93, 311, 326, 55,
+ /* 1930 */
+ 116, 208, 326, 326, 326, 326, 326, 326, 290, 318,
+ /* 1940 */
+ 326, 326, 251, 336, 353, 235, 311, 326, 326, 112,
+ /* 1950 */
+ 326, 326, 87, 128, 326, 326, 326, 326, 326, 326,
+ /* 1960 */
+ 326, 290, 318, 326, 235, 251, 336, 353, 133, 311,
+ /* 1970 */
+ 326, 77, 128, 326, 326, 326, 326, 326, 326, 326,
+ /* 1980 */
+ 290, 318, 326, 326, 251, 336, 353, 326, 311, 326,
+ /* 1990 */
+ 235, 326, 326, 326, 133, 326, 326, 89, 128, 326,
+ /* 2000 */
+ 326, 326, 326, 326, 326, 326, 290, 318, 326, 235,
+ /* 2010 */
+ 251, 336, 353, 133, 311, 326, 75, 128, 326, 326,
+ /* 2020 */
+ 326, 326, 326, 326, 326, 290, 318, 326, 326, 251,
+ /* 2030 */
+ 336, 353, 235, 311, 326, 326, 133, 326, 326, 91,
+ /* 2040 */
+ 128, 326, 326, 326, 326, 326, 326, 326, 290, 318,
+ /* 2050 */
+ 326, 235, 251, 336, 353, 133, 311, 326, 62, 128,
+ /* 2060 */
+ 326, 326, 326, 326, 326, 326, 326, 290, 318, 326,
+ /* 2070 */
+ 326, 251, 336, 353, 326, 311, 326, 235, 326, 326,
+ /* 2080 */
+ 326, 93, 326, 326, 53, 116, 326, 326, 326, 326,
+ /* 2090 */
+ 326, 326, 326, 290, 318, 326, 235, 220, 336, 353,
+ /* 2100 */
+ 133, 311, 326, 63, 128, 326, 326, 326, 326, 326,
+ /* 2110 */
+ 326, 326, 290, 318, 326, 326, 251, 336, 353, 235,
+ /* 2120 */
+ 311, 326, 326, 133, 326, 326, 61, 128, 326, 326,
+ /* 2130 */
+ 326, 326, 326, 326, 326, 290, 318, 326, 235, 214,
+ /* 2140 */
+ 336, 353, 133, 311, 326, 71, 128, 326, 326, 326,
+ /* 2150 */
+ 326, 326, 326, 326, 290, 318, 326, 326, 251, 336,
+ /* 2160 */
+ 353, 326, 311, 326, 235, 326, 326, 326, 133, 326,
+ /* 2170 */
+ 326, 85, 128, 326, 326, 326, 326, 326, 326, 326,
+ /* 2180 */
+ 290, 318, 326, 235, 251, 336, 353, 133, 311, 326,
+ /* 2190 */
+ 65, 128, 326, 326, 326, 326, 326, 326, 326, 290,
+ /* 2200 */
+ 318, 326, 326, 251, 336, 353, 235, 311, 326, 326,
+ /* 2210 */
+ 111, 326, 326, 74, 128, 326, 326, 326, 326, 326,
+ /* 2220 */
+ 326, 326, 290, 318, 326, 235, 251, 336, 353, 118,
+ /* 2230 */
+ 311, 326, 58, 128, 326, 326, 326, 326, 326, 326,
+ /* 2240 */
+ 326, 290, 318, 326, 326, 251, 336, 353, 326, 311,
+ /* 2250 */
+ 326, 235, 326, 326, 326, 133, 326, 326, 56, 128,
+ /* 2260 */
+ 326, 326, 326, 326, 326, 326, 326, 290, 318, 326,
+ /* 2270 */
+ 235, 251, 336, 353, 133, 311, 326, 79, 128, 326,
+ /* 2280 */
+ 326, 326, 326, 326, 326, 326, 290, 318, 326, 326,
+ /* 2290 */
+ 251, 336, 353, 235, 311, 326, 326, 133, 326, 326,
+ /* 2300 */
+ 80, 128, 326, 326, 326, 326, 326, 326, 326, 290,
+ /* 2310 */
+ 318, 326, 235, 251, 336, 353, 133, 311, 326, 84,
+ /* 2320 */
+ 128, 326, 326, 326, 326, 326, 326, 326, 290, 318,
+ /* 2330 */
+ 326, 326, 251, 336, 353, 326, 311, 326, 235, 326,
+ /* 2340 */
+ 326, 326, 133, 326, 326, 66, 128, 326, 326, 326,
+ /* 2350 */
+ 326, 326, 326, 326, 290, 318, 326, 344, 251, 336,
+ /* 2360 */
+ 353, 326, 311, 326, 10, 326, 326, 326, 326, 2,
+ /* 2370 */
+ 108, 344, 326, 326, 326, 139, 326, 326, 10, 250,
+ /* 2380 */
+ 326, 228, 326, 2, 108, 326, 326, 326, 326, 139,
+ /* 2390 */
+ 326, 326, 326, 250, 326, 228, 235, 326, 326, 326,
+ /* 2400 */
+ 133, 326, 326, 60, 128, 326, 326, 326, 326, 326,
+ /* 2410 */
+ 326, 326, 290, 318, 326, 326, 251, 336, 353, 326,
+ /* 2420 */
+ 311, 326, 326, 326, 326, 306, 16, 347, 326, 235,
+ /* 2430 */
+ 326, 326, 326, 133, 326, 326, 81, 128, 326, 327,
+ /* 2440 */
+ 16, 347, 326, 326, 326, 290, 318, 326, 326, 251,
+ /* 2450 */
+ 336, 353, 326, 311, 326, 326, 235, 326, 326, 326,
+ /* 2460 */
+ 133, 326, 326, 68, 128, 326, 326, 326, 326, 326,
+ /* 2470 */
+ 326, 326, 290, 318, 326, 326, 251, 336, 353, 326,
+ /* 2480 */
+ 311, 326, 235, 326, 326, 326, 133, 326, 326, 54,
+ /* 2490 */
+ 128, 326, 326, 326, 326, 326, 326, 326, 290, 318,
+ /* 2500 */
+ 326, 326, 251, 336, 353, 235, 311, 326, 326, 133,
+ /* 2510 */
+ 326, 326, 83, 128, 326, 326, 235, 326, 326, 326,
+ /* 2520 */
+ 133, 290, 318, 90, 128, 251, 336, 353, 326, 311,
+ /* 2530 */
+ 326, 326, 290, 318, 326, 326, 251, 336, 353, 326,
+ /* 2540 */
+ 311,
);
static public $yy_lookahead = array(
- /* 0 */ 1, 3, 4, 5, 6, 7, 8, 9, 10, 11,
- /* 10 */ 12, 13, 113, 114, 16, 91, 17, 17, 91, 16,
- /* 20 */ 22, 23, 19, 20, 100, 24, 28, 100, 29, 29,
- /* 30 */ 32, 33, 34, 29, 35, 35, 112, 16, 37, 40,
- /* 40 */ 41, 42, 43, 44, 45, 46, 47, 48, 49, 50,
- /* 50 */ 51, 52, 53, 1, 82, 83, 84, 85, 86, 38,
- /* 60 */ 16, 90, 18, 19, 90, 66, 67, 68, 69, 70,
- /* 70 */ 71, 72, 73, 74, 75, 76, 77, 103, 104, 27,
- /* 80 */ 36, 29, 16, 96, 18, 19, 16, 35, 117, 19,
- /* 90 */ 20, 117, 40, 41, 42, 43, 44, 45, 46, 47,
- /* 100 */ 48, 49, 50, 51, 52, 53, 4, 5, 6, 7,
- /* 110 */ 8, 20, 118, 38, 38, 13, 14, 15, 66, 67,
- /* 120 */ 68, 69, 70, 71, 72, 73, 74, 75, 76, 77,
- /* 130 */ 1, 85, 62, 1, 59, 89, 61, 61, 92, 93,
- /* 140 */ 65, 16, 20, 21, 19, 17, 17, 101, 102, 17,
- /* 150 */ 59, 105, 106, 107, 29, 109, 31, 29, 29, 91,
- /* 160 */ 35, 29, 30, 35, 35, 119, 120, 35, 100, 40,
- /* 170 */ 41, 42, 43, 44, 45, 46, 47, 48, 49, 50,
- /* 180 */ 51, 52, 53, 61, 90, 91, 54, 113, 114, 111,
- /* 190 */ 16, 113, 114, 19, 100, 66, 67, 68, 69, 70,
- /* 200 */ 71, 72, 73, 74, 75, 76, 77, 1, 85, 59,
- /* 210 */ 1, 117, 89, 1, 64, 92, 93, 94, 1, 17,
- /* 220 */ 108, 17, 20, 17, 101, 102, 17, 115, 105, 106,
- /* 230 */ 107, 29, 109, 29, 17, 29, 62, 35, 29, 35,
- /* 240 */ 38, 35, 19, 31, 35, 99, 40, 41, 42, 43,
- /* 250 */ 44, 45, 46, 47, 48, 49, 50, 51, 52, 53,
- /* 260 */ 1, 16, 37, 61, 19, 20, 54, 110, 1, 2,
- /* 270 */ 25, 54, 66, 67, 68, 69, 70, 71, 72, 73,
- /* 280 */ 74, 75, 76, 77, 17, 62, 90, 91, 29, 1,
- /* 290 */ 65, 90, 110, 37, 35, 39, 100, 20, 21, 40,
- /* 300 */ 41, 42, 43, 44, 45, 46, 47, 48, 49, 50,
- /* 310 */ 51, 52, 53, 117, 90, 91, 96, 29, 117, 118,
- /* 320 */ 84, 85, 86, 35, 100, 66, 67, 68, 69, 70,
- /* 330 */ 71, 72, 73, 74, 75, 76, 77, 1, 61, 99,
- /* 340 */ 1, 117, 37, 85, 39, 18, 19, 89, 10, 16,
- /* 350 */ 99, 93, 19, 17, 16, 21, 17, 93, 85, 1,
- /* 360 */ 22, 23, 29, 105, 106, 107, 28, 109, 35, 105,
- /* 370 */ 32, 33, 34, 109, 25, 17, 40, 41, 42, 43,
- /* 380 */ 44, 45, 46, 47, 48, 49, 50, 51, 52, 53,
- /* 390 */ 63, 1, 31, 59, 121, 122, 25, 2, 64, 38,
- /* 400 */ 18, 19, 66, 67, 68, 69, 70, 71, 72, 73,
- /* 410 */ 74, 75, 76, 77, 24, 20, 78, 79, 80, 91,
- /* 420 */ 91, 29, 61, 93, 94, 95, 19, 35, 100, 100,
- /* 430 */ 40, 41, 42, 43, 44, 45, 46, 47, 48, 49,
- /* 440 */ 50, 51, 52, 53, 91, 117, 117, 37, 16, 39,
- /* 450 */ 79, 19, 110, 100, 112, 19, 66, 67, 68, 69,
- /* 460 */ 70, 71, 72, 73, 74, 75, 76, 77, 1, 85,
- /* 470 */ 117, 1, 1, 89, 108, 90, 92, 93, 94, 16,
- /* 480 */ 1, 115, 19, 17, 17, 101, 102, 17, 17, 105,
- /* 490 */ 106, 107, 29, 109, 31, 29, 17, 91, 35, 29,
- /* 500 */ 21, 35, 117, 19, 18, 35, 100, 40, 41, 42,
- /* 510 */ 43, 44, 45, 46, 47, 48, 49, 50, 51, 52,
- /* 520 */ 53, 1, 16, 117, 54, 19, 16, 18, 1, 19,
- /* 530 */ 97, 97, 1, 66, 67, 68, 69, 70, 71, 72,
- /* 540 */ 73, 74, 75, 76, 77, 112, 112, 38, 17, 90,
- /* 550 */ 93, 94, 16, 16, 26, 19, 19, 93, 94, 39,
- /* 560 */ 40, 41, 42, 43, 44, 45, 46, 47, 48, 49,
- /* 570 */ 50, 51, 52, 53, 1, 2, 117, 17, 110, 16,
- /* 580 */ 112, 54, 19, 18, 97, 25, 66, 67, 68, 69,
- /* 590 */ 70, 71, 72, 73, 74, 75, 76, 77, 62, 112,
- /* 600 */ 29, 19, 91, 86, 38, 88, 35, 19, 63, 55,
- /* 610 */ 63, 100, 97, 40, 41, 42, 43, 44, 45, 46,
- /* 620 */ 47, 48, 49, 50, 51, 52, 53, 112, 19, 65,
- /* 630 */ 39, 18, 2, 36, 36, 59, 19, 18, 97, 66,
- /* 640 */ 67, 68, 69, 70, 71, 72, 73, 74, 75, 76,
- /* 650 */ 77, 1, 85, 112, 1, 18, 89, 85, 19, 92,
- /* 660 */ 93, 89, 19, 38, 20, 93, 91, 17, 101, 102,
- /* 670 */ 17, 97, 105, 106, 107, 100, 109, 105, 106, 107,
- /* 680 */ 19, 109, 29, 116, 2, 19, 112, 112, 35, 21,
- /* 690 */ 40, 41, 42, 43, 44, 45, 46, 47, 48, 49,
- /* 700 */ 50, 51, 52, 53, 1, 1, 100, 54, 112, 117,
- /* 710 */ 111, 2, 21, 110, 98, 97, 66, 67, 68, 69,
- /* 720 */ 70, 71, 72, 73, 74, 75, 76, 77, 112, 61,
- /* 730 */ 112, 85, 14, 110, 87, 115, 114, 123, 123, 123,
- /* 740 */ 123, 123, 97, 40, 41, 42, 43, 44, 45, 46,
- /* 750 */ 47, 48, 49, 50, 51, 52, 53, 112, 123, 123,
- /* 760 */ 123, 123, 123, 123, 123, 123, 123, 123, 122, 66,
- /* 770 */ 67, 68, 69, 70, 71, 72, 73, 74, 75, 76,
- /* 780 */ 77, 1, 79, 85, 123, 1, 123, 89, 123, 123,
- /* 790 */ 92, 93, 123, 97, 17, 123, 97, 17, 17, 101,
- /* 800 */ 102, 17, 123, 105, 106, 107, 29, 109, 112, 123,
- /* 810 */ 29, 112, 35, 29, 116, 123, 35, 123, 123, 35,
- /* 820 */ 40, 41, 42, 43, 44, 45, 46, 47, 48, 49,
- /* 830 */ 50, 51, 52, 53, 1, 123, 123, 123, 54, 123,
- /* 840 */ 123, 123, 123, 123, 123, 123, 66, 67, 68, 69,
- /* 850 */ 70, 71, 72, 73, 74, 75, 76, 77, 123, 123,
- /* 860 */ 123, 123, 123, 123, 123, 123, 123, 123, 123, 123,
- /* 870 */ 123, 123, 39, 40, 41, 42, 43, 44, 45, 46,
- /* 880 */ 47, 48, 49, 50, 51, 52, 53, 1, 123, 123,
- /* 890 */ 123, 123, 123, 123, 123, 123, 123, 123, 123, 66,
- /* 900 */ 67, 68, 69, 70, 71, 72, 73, 74, 75, 76,
- /* 910 */ 77, 123, 123, 123, 123, 123, 123, 123, 123, 123,
- /* 920 */ 123, 123, 123, 123, 123, 123, 40, 41, 42, 43,
- /* 930 */ 44, 45, 46, 47, 48, 49, 50, 51, 52, 53,
- /* 940 */ 1, 123, 123, 123, 123, 123, 123, 123, 123, 123,
- /* 950 */ 123, 65, 66, 67, 68, 69, 70, 71, 72, 73,
- /* 960 */ 74, 75, 76, 77, 123, 123, 123, 123, 123, 30,
- /* 970 */ 123, 123, 123, 123, 123, 123, 123, 123, 123, 40,
- /* 980 */ 41, 42, 43, 44, 45, 46, 47, 48, 49, 50,
- /* 990 */ 51, 52, 53, 1, 123, 123, 123, 123, 123, 123,
- /* 1000 */ 123, 123, 123, 123, 123, 66, 67, 68, 69, 70,
- /* 1010 */ 71, 72, 73, 74, 75, 76, 77, 123, 123, 123,
- /* 1020 */ 123, 123, 123, 123, 123, 123, 123, 123, 123, 123,
- /* 1030 */ 123, 123, 40, 41, 42, 43, 44, 45, 46, 47,
- /* 1040 */ 48, 49, 50, 51, 52, 53, 123, 123, 123, 123,
- /* 1050 */ 123, 123, 123, 123, 123, 123, 123, 123, 66, 67,
- /* 1060 */ 68, 69, 70, 71, 72, 73, 74, 75, 76, 77,
- /* 1070 */ 123, 123, 123, 40, 41, 42, 43, 44, 45, 46,
- /* 1080 */ 47, 48, 49, 50, 51, 52, 53, 123, 123, 123,
- /* 1090 */ 123, 123, 123, 123, 123, 123, 123, 123, 123, 66,
- /* 1100 */ 67, 68, 69, 70, 71, 72, 73, 74, 75, 76,
- /* 1110 */ 77, 123, 123, 123, 123, 123, 16, 123, 18, 19,
- /* 1120 */ 123, 123, 22, 23, 123, 17, 123, 85, 28, 123,
- /* 1130 */ 123, 89, 32, 33, 34, 93, 36, 29, 38, 123,
- /* 1140 */ 123, 41, 123, 35, 102, 123, 85, 105, 106, 107,
- /* 1150 */ 89, 109, 123, 91, 93, 123, 56, 57, 58, 59,
- /* 1160 */ 60, 123, 100, 63, 64, 65, 105, 106, 107, 17,
- /* 1170 */ 109, 123, 123, 16, 112, 18, 19, 123, 78, 22,
- /* 1180 */ 23, 29, 17, 123, 123, 28, 123, 35, 123, 32,
- /* 1190 */ 33, 34, 123, 36, 29, 38, 123, 123, 41, 123,
- /* 1200 */ 35, 123, 85, 123, 123, 123, 89, 123, 123, 92,
- /* 1210 */ 93, 123, 123, 56, 57, 58, 59, 60, 101, 102,
- /* 1220 */ 63, 64, 105, 106, 107, 123, 109, 17, 123, 123,
- /* 1230 */ 16, 123, 18, 19, 123, 78, 22, 23, 123, 29,
- /* 1240 */ 91, 123, 28, 123, 17, 35, 32, 33, 34, 100,
- /* 1250 */ 36, 123, 38, 123, 123, 41, 29, 123, 123, 85,
- /* 1260 */ 123, 112, 35, 89, 123, 123, 92, 93, 123, 123,
- /* 1270 */ 56, 57, 58, 59, 60, 101, 102, 63, 64, 105,
- /* 1280 */ 106, 107, 123, 109, 17, 123, 123, 16, 123, 18,
- /* 1290 */ 19, 123, 78, 22, 23, 123, 29, 123, 123, 28,
- /* 1300 */ 123, 17, 35, 32, 33, 34, 123, 36, 123, 38,
- /* 1310 */ 123, 123, 41, 29, 123, 123, 85, 123, 123, 35,
- /* 1320 */ 89, 123, 123, 92, 93, 123, 123, 56, 57, 58,
- /* 1330 */ 59, 60, 101, 102, 63, 64, 105, 106, 107, 123,
- /* 1340 */ 109, 17, 123, 123, 16, 123, 18, 19, 123, 78,
- /* 1350 */ 22, 23, 123, 29, 123, 123, 28, 123, 17, 35,
- /* 1360 */ 32, 33, 34, 123, 36, 123, 38, 123, 123, 41,
- /* 1370 */ 29, 123, 123, 85, 123, 123, 35, 89, 123, 123,
- /* 1380 */ 92, 93, 123, 123, 56, 57, 58, 59, 60, 101,
- /* 1390 */ 102, 63, 64, 105, 106, 107, 123, 109, 17, 123,
- /* 1400 */ 123, 16, 123, 18, 19, 123, 78, 22, 23, 123,
- /* 1410 */ 29, 123, 123, 28, 123, 17, 35, 32, 33, 34,
- /* 1420 */ 123, 36, 123, 38, 123, 123, 41, 29, 123, 123,
- /* 1430 */ 85, 123, 123, 35, 89, 123, 123, 92, 93, 123,
- /* 1440 */ 123, 56, 57, 58, 59, 60, 101, 102, 63, 64,
- /* 1450 */ 105, 106, 107, 123, 109, 17, 123, 123, 16, 123,
- /* 1460 */ 18, 19, 123, 78, 22, 23, 123, 29, 123, 123,
- /* 1470 */ 28, 123, 17, 35, 32, 33, 34, 123, 36, 123,
- /* 1480 */ 38, 123, 123, 41, 29, 123, 123, 85, 123, 123,
- /* 1490 */ 35, 89, 123, 123, 92, 93, 123, 123, 56, 57,
- /* 1500 */ 58, 59, 60, 101, 102, 63, 64, 105, 106, 107,
- /* 1510 */ 123, 109, 17, 123, 123, 16, 123, 18, 19, 123,
- /* 1520 */ 78, 22, 23, 123, 29, 123, 123, 28, 123, 17,
- /* 1530 */ 35, 32, 33, 34, 123, 36, 123, 38, 123, 123,
- /* 1540 */ 41, 29, 123, 123, 85, 123, 123, 35, 89, 123,
- /* 1550 */ 123, 92, 93, 123, 123, 56, 57, 58, 59, 60,
- /* 1560 */ 101, 102, 63, 64, 105, 106, 107, 123, 109, 123,
- /* 1570 */ 123, 123, 16, 123, 18, 19, 123, 78, 22, 23,
- /* 1580 */ 123, 123, 123, 123, 28, 123, 123, 123, 32, 33,
- /* 1590 */ 34, 123, 36, 123, 38, 123, 123, 41, 123, 123,
- /* 1600 */ 123, 85, 123, 123, 123, 89, 123, 123, 92, 93,
- /* 1610 */ 123, 123, 56, 57, 58, 59, 60, 101, 102, 63,
- /* 1620 */ 64, 105, 106, 107, 123, 109, 123, 123, 123, 16,
- /* 1630 */ 123, 18, 19, 123, 78, 22, 23, 123, 123, 123,
- /* 1640 */ 123, 28, 123, 123, 123, 32, 33, 34, 123, 36,
- /* 1650 */ 123, 38, 123, 123, 41, 123, 123, 123, 85, 123,
- /* 1660 */ 123, 123, 89, 123, 123, 92, 93, 123, 123, 56,
- /* 1670 */ 57, 58, 59, 60, 101, 102, 63, 123, 105, 106,
- /* 1680 */ 107, 123, 109, 123, 123, 123, 16, 123, 18, 19,
- /* 1690 */ 123, 78, 22, 23, 123, 123, 123, 123, 28, 123,
- /* 1700 */ 123, 123, 32, 33, 34, 123, 36, 123, 38, 123,
- /* 1710 */ 123, 41, 123, 123, 123, 85, 123, 123, 123, 89,
- /* 1720 */ 123, 123, 92, 93, 123, 123, 56, 57, 58, 59,
- /* 1730 */ 60, 101, 102, 63, 123, 105, 106, 107, 123, 109,
- /* 1740 */ 123, 123, 123, 123, 17, 123, 116, 123, 78, 123,
- /* 1750 */ 123, 24, 123, 26, 27, 10, 29, 30, 123, 123,
- /* 1760 */ 123, 16, 35, 123, 37, 38, 39, 22, 23, 123,
- /* 1770 */ 90, 91, 123, 28, 123, 123, 123, 32, 33, 34,
- /* 1780 */ 100, 54, 123, 103, 104, 123, 123, 123, 61, 123,
- /* 1790 */ 123, 123, 65, 123, 85, 90, 91, 117, 89, 123,
- /* 1800 */ 123, 92, 93, 123, 123, 100, 79, 123, 103, 104,
- /* 1810 */ 101, 102, 123, 85, 105, 106, 107, 89, 109, 123,
- /* 1820 */ 123, 93, 117, 78, 79, 80, 123, 123, 123, 120,
- /* 1830 */ 102, 123, 85, 105, 106, 107, 89, 109, 123, 92,
- /* 1840 */ 93, 123, 1, 85, 123, 123, 123, 89, 101, 102,
- /* 1850 */ 92, 93, 105, 106, 107, 123, 109, 123, 17, 101,
- /* 1860 */ 102, 123, 21, 105, 106, 107, 123, 109, 123, 123,
- /* 1870 */ 29, 123, 123, 123, 85, 123, 35, 123, 89, 38,
- /* 1880 */ 123, 92, 93, 123, 123, 123, 123, 123, 123, 123,
- /* 1890 */ 101, 102, 123, 123, 105, 106, 107, 85, 109, 123,
- /* 1900 */ 123, 89, 61, 85, 92, 93, 123, 89, 123, 123,
- /* 1910 */ 123, 93, 123, 101, 102, 123, 123, 105, 106, 107,
- /* 1920 */ 123, 109, 85, 105, 106, 107, 89, 109, 123, 92,
- /* 1930 */ 93, 123, 123, 85, 123, 123, 123, 89, 101, 102,
- /* 1940 */ 92, 93, 105, 106, 107, 123, 109, 123, 123, 101,
- /* 1950 */ 102, 123, 123, 105, 106, 107, 123, 109, 123, 123,
- /* 1960 */ 85, 90, 91, 123, 89, 123, 123, 92, 93, 123,
- /* 1970 */ 123, 100, 123, 123, 103, 104, 101, 102, 123, 123,
- /* 1980 */ 105, 106, 107, 85, 109, 123, 123, 89, 117, 85,
- /* 1990 */ 92, 93, 123, 89, 123, 123, 123, 93, 123, 101,
- /* 2000 */ 102, 123, 123, 105, 106, 107, 123, 109, 85, 105,
- /* 2010 */ 106, 107, 89, 109, 123, 92, 93, 123, 123, 85,
- /* 2020 */ 123, 123, 123, 89, 101, 102, 92, 93, 105, 106,
- /* 2030 */ 107, 123, 109, 123, 123, 101, 102, 123, 123, 105,
- /* 2040 */ 106, 107, 123, 109, 123, 123, 85, 123, 123, 123,
- /* 2050 */ 89, 123, 123, 92, 93, 123, 123, 123, 123, 123,
- /* 2060 */ 123, 123, 101, 102, 123, 123, 105, 106, 107, 85,
- /* 2070 */ 109, 123, 123, 89, 123, 85, 92, 93, 123, 89,
- /* 2080 */ 123, 123, 123, 93, 123, 101, 102, 123, 123, 105,
- /* 2090 */ 106, 107, 123, 109, 85, 105, 106, 107, 89, 109,
- /* 2100 */ 123, 92, 93, 123, 123, 85, 123, 123, 123, 89,
- /* 2110 */ 101, 102, 92, 93, 105, 106, 107, 123, 109, 123,
- /* 2120 */ 123, 101, 102, 123, 123, 105, 106, 107, 123, 109,
- /* 2130 */ 123, 123, 85, 123, 123, 123, 89, 123, 123, 92,
- /* 2140 */ 93, 123, 123, 123, 123, 123, 123, 123, 101, 102,
- /* 2150 */ 123, 123, 105, 106, 107, 85, 109, 123, 123, 89,
- /* 2160 */ 123, 85, 92, 93, 123, 89, 123, 123, 123, 93,
- /* 2170 */ 123, 101, 102, 123, 123, 105, 106, 107, 123, 109,
- /* 2180 */ 85, 105, 106, 107, 89, 109, 123, 92, 93, 123,
- /* 2190 */ 123, 85, 123, 123, 123, 89, 101, 102, 92, 93,
- /* 2200 */ 105, 106, 107, 123, 109, 123, 123, 101, 102, 123,
- /* 2210 */ 123, 105, 106, 107, 123, 109, 123, 123, 85, 123,
- /* 2220 */ 123, 123, 89, 123, 123, 92, 93, 123, 123, 123,
- /* 2230 */ 123, 123, 123, 123, 101, 102, 123, 123, 105, 106,
- /* 2240 */ 107, 85, 109, 123, 123, 89, 123, 123, 92, 93,
- /* 2250 */ 123, 123, 123, 123, 123, 123, 123, 101, 102, 123,
- /* 2260 */ 123, 105, 106, 107, 123, 109, 85, 123, 123, 123,
- /* 2270 */ 89, 123, 123, 92, 93, 123, 123, 85, 123, 123,
- /* 2280 */ 123, 89, 101, 102, 92, 93, 105, 106, 107, 123,
- /* 2290 */ 109, 123, 123, 101, 102, 123, 123, 105, 106, 107,
- /* 2300 */ 123, 109, 123, 123, 85, 123, 123, 123, 89, 123,
- /* 2310 */ 123, 92, 93, 123, 123, 123, 123, 123, 123, 123,
- /* 2320 */ 101, 102, 123, 123, 105, 106, 107, 85, 109, 123,
- /* 2330 */ 123, 89, 123, 123, 92, 93, 123, 123, 123, 123,
- /* 2340 */ 123, 123, 123, 101, 102, 123, 123, 105, 106, 107,
- /* 2350 */ 123, 109, 85, 123, 123, 123, 89, 123, 123, 92,
- /* 2360 */ 93, 123, 123, 85, 123, 123, 123, 89, 101, 102,
- /* 2370 */ 92, 93, 105, 106, 107, 123, 109, 123, 123, 101,
- /* 2380 */ 102, 123, 123, 105, 106, 107, 123, 109, 123, 123,
- /* 2390 */ 85, 123, 123, 123, 89, 123, 123, 92, 93, 123,
- /* 2400 */ 123, 123, 123, 90, 91, 123, 101, 102, 123, 123,
- /* 2410 */ 105, 106, 107, 100, 109, 123, 103, 104, 90, 91,
- /* 2420 */ 123, 123, 123, 123, 123, 90, 91, 123, 100, 123,
- /* 2430 */ 117, 103, 104, 123, 123, 100, 123, 123, 103, 104,
- /* 2440 */ 123, 123, 123, 123, 123, 117, 123, 123, 123, 123,
- /* 2450 */ 123, 123, 117,
-);
- const YY_SHIFT_USE_DFLT = -3;
- const YY_SHIFT_MAX = 252;
+ /* 0 */
+ 1, 38, 3, 40, 91, 4, 5, 6, 7, 8,
+ /* 10 */
+ 9, 10, 11, 12, 13, 14, 15, 104, 105, 18,
+ /* 20 */
+ 118, 18, 60, 20, 23, 24, 1, 65, 3, 30,
+ /* 30 */
+ 29, 118, 1, 30, 33, 36, 35, 21, 22, 36,
+ /* 40 */
+ 41, 42, 43, 44, 45, 46, 47, 48, 49, 50,
+ /* 50 */
+ 51, 52, 53, 54, 1, 30, 31, 1, 1, 3,
+ /* 60 */
+ 3, 36, 2, 18, 19, 20, 67, 68, 69, 70,
+ /* 70 */
+ 71, 72, 73, 74, 75, 76, 77, 78, 62, 30,
+ /* 80 */
+ 55, 28, 37, 30, 111, 36, 30, 30, 18, 36,
+ /* 90 */
+ 20, 21, 36, 36, 41, 42, 43, 44, 45, 46,
+ /* 100 */
+ 47, 48, 49, 50, 51, 52, 53, 54, 1, 91,
+ /* 110 */
+ 92, 55, 55, 83, 84, 85, 86, 87, 38, 101,
+ /* 120 */
+ 67, 68, 69, 70, 71, 72, 73, 74, 75, 76,
+ /* 130 */
+ 77, 78, 18, 63, 20, 21, 118, 30, 1, 18,
+ /* 140 */
+ 3, 20, 21, 36, 111, 39, 66, 26, 41, 42,
+ /* 150 */
+ 43, 44, 45, 46, 47, 48, 49, 50, 51, 52,
+ /* 160 */
+ 53, 54, 1, 1, 26, 3, 60, 30, 62, 15,
+ /* 170 */
+ 16, 17, 66, 36, 67, 68, 69, 70, 71, 72,
+ /* 180 */
+ 73, 74, 75, 76, 77, 78, 18, 19, 20, 32,
+ /* 190 */
+ 100, 1, 30, 109, 1, 18, 39, 20, 36, 1,
+ /* 200 */
+ 116, 3, 41, 42, 43, 44, 45, 46, 47, 48,
+ /* 210 */
+ 49, 50, 51, 52, 53, 54, 1, 55, 80, 62,
+ /* 220 */
+ 30, 85, 86, 87, 39, 32, 36, 66, 67, 68,
+ /* 230 */
+ 69, 70, 71, 72, 73, 74, 75, 76, 77, 78,
+ /* 240 */
+ 63, 86, 114, 115, 91, 92, 31, 62, 55, 18,
+ /* 250 */
+ 38, 20, 40, 55, 101, 18, 41, 42, 43, 44,
+ /* 260 */
+ 45, 46, 47, 48, 49, 50, 51, 52, 53, 54,
+ /* 270 */
+ 1, 118, 3, 94, 95, 96, 39, 122, 123, 38,
+ /* 280 */
+ 91, 40, 67, 68, 69, 70, 71, 72, 73, 74,
+ /* 290 */
+ 75, 76, 77, 78, 63, 114, 115, 100, 91, 92,
+ /* 300 */
+ 112, 91, 114, 115, 91, 19, 20, 118, 101, 20,
+ /* 310 */
+ 41, 42, 43, 44, 45, 46, 47, 48, 49, 50,
+ /* 320 */
+ 51, 52, 53, 54, 1, 118, 3, 100, 118, 119,
+ /* 330 */
+ 60, 118, 2, 91, 3, 65, 67, 68, 69, 70,
+ /* 340 */
+ 71, 72, 73, 74, 75, 76, 77, 78, 21, 22,
+ /* 350 */
+ 64, 21, 63, 92, 111, 119, 113, 26, 19, 20,
+ /* 360 */
+ 118, 1, 101, 21, 41, 42, 43, 44, 45, 46,
+ /* 370 */
+ 47, 48, 49, 50, 51, 52, 53, 54, 1, 118,
+ /* 380 */
+ 3, 18, 22, 20, 19, 94, 95, 1, 98, 62,
+ /* 390 */
+ 67, 68, 69, 70, 71, 72, 73, 74, 75, 76,
+ /* 400 */
+ 77, 78, 60, 113, 39, 1, 2, 92, 92, 18,
+ /* 410 */
+ 111, 20, 113, 87, 26, 89, 101, 101, 41, 42,
+ /* 420 */
+ 43, 44, 45, 46, 47, 48, 49, 50, 51, 52,
+ /* 430 */
+ 53, 54, 1, 118, 118, 18, 39, 20, 19, 94,
+ /* 440 */
+ 95, 55, 98, 25, 67, 68, 69, 70, 71, 72,
+ /* 450 */
+ 73, 74, 75, 76, 77, 78, 38, 113, 86, 92,
+ /* 460 */
+ 92, 92, 18, 40, 20, 30, 60, 2, 101, 101,
+ /* 470 */
+ 101, 36, 41, 42, 43, 44, 45, 46, 47, 48,
+ /* 480 */
+ 49, 50, 51, 52, 53, 54, 1, 118, 18, 109,
+ /* 490 */
+ 20, 20, 56, 39, 19, 123, 116, 98, 67, 68,
+ /* 500 */
+ 69, 70, 71, 72, 73, 74, 75, 76, 77, 78,
+ /* 510 */
+ 25, 80, 113, 92, 64, 27, 21, 20, 19, 64,
+ /* 520 */
+ 20, 3, 101, 20, 22, 2, 41, 42, 43, 44,
+ /* 530 */
+ 45, 46, 47, 48, 49, 50, 51, 52, 53, 54,
+ /* 540 */
+ 1, 20, 3, 19, 3, 20, 20, 20, 19, 66,
+ /* 550 */
+ 98, 98, 67, 68, 69, 70, 71, 72, 73, 74,
+ /* 560 */
+ 75, 76, 77, 78, 62, 113, 113, 20, 37, 37,
+ /* 570 */
+ 3, 20, 20, 101, 112, 111, 22, 111, 111, 111,
+ /* 580 */
+ 41, 42, 43, 44, 45, 46, 47, 48, 49, 50,
+ /* 590 */
+ 51, 52, 53, 54, 1, 116, 30, 113, 97, 88,
+ /* 600 */
+ 16, 115, 124, 97, 99, 98, 67, 68, 69, 70,
+ /* 610 */
+ 71, 72, 73, 74, 75, 76, 77, 78, 113, 124,
+ /* 620 */
+ 113, 124, 124, 124, 124, 124, 124, 124, 124, 124,
+ /* 630 */
+ 124, 124, 124, 40, 41, 42, 43, 44, 45, 46,
+ /* 640 */
+ 47, 48, 49, 50, 51, 52, 53, 54, 1, 2,
+ /* 650 */
+ 124, 124, 124, 124, 124, 124, 124, 98, 98, 98,
+ /* 660 */
+ 67, 68, 69, 70, 71, 72, 73, 74, 75, 76,
+ /* 670 */
+ 77, 78, 113, 113, 113, 124, 124, 124, 124, 124,
+ /* 680 */
+ 124, 124, 124, 124, 124, 124, 124, 124, 41, 42,
+ /* 690 */
+ 43, 44, 45, 46, 47, 48, 49, 50, 51, 52,
+ /* 700 */
+ 53, 54, 1, 124, 124, 124, 124, 124, 124, 124,
+ /* 710 */
+ 124, 98, 124, 124, 67, 68, 69, 70, 71, 72,
+ /* 720 */
+ 73, 74, 75, 76, 77, 78, 113, 124, 124, 124,
+ /* 730 */
+ 124, 124, 124, 124, 124, 124, 124, 124, 124, 124,
+ /* 740 */
+ 124, 40, 41, 42, 43, 44, 45, 46, 47, 48,
+ /* 750 */
+ 49, 50, 51, 52, 53, 54, 1, 124, 124, 124,
+ /* 760 */
+ 124, 124, 124, 124, 124, 124, 124, 124, 67, 68,
+ /* 770 */
+ 69, 70, 71, 72, 73, 74, 75, 76, 77, 78,
+ /* 780 */
+ 124, 124, 124, 124, 124, 124, 124, 124, 124, 124,
+ /* 790 */
+ 124, 124, 124, 124, 124, 124, 41, 42, 43, 44,
+ /* 800 */
+ 45, 46, 47, 48, 49, 50, 51, 52, 53, 54,
+ /* 810 */
+ 124, 124, 124, 124, 124, 124, 124, 124, 124, 124,
+ /* 820 */
+ 22, 124, 67, 68, 69, 70, 71, 72, 73, 74,
+ /* 830 */
+ 75, 76, 77, 78, 124, 124, 124, 124, 41, 42,
+ /* 840 */
+ 43, 44, 45, 46, 47, 48, 49, 50, 51, 52,
+ /* 850 */
+ 53, 54, 124, 124, 124, 124, 124, 124, 60, 124,
+ /* 860 */
+ 124, 124, 124, 65, 67, 68, 69, 70, 71, 72,
+ /* 870 */
+ 73, 74, 75, 76, 77, 78, 124, 124, 124, 124,
+ /* 880 */
+ 124, 124, 124, 18, 19, 20, 124, 124, 23, 24,
+ /* 890 */
+ 124, 86, 124, 124, 29, 90, 92, 124, 33, 94,
+ /* 900 */
+ 35, 124, 37, 124, 39, 101, 124, 42, 103, 124,
+ /* 910 */
+ 124, 106, 107, 108, 124, 110, 124, 113, 92, 92,
+ /* 920 */
+ 124, 124, 57, 58, 59, 60, 61, 101, 101, 64,
+ /* 930 */
+ 65, 66, 124, 94, 124, 124, 124, 124, 124, 113,
+ /* 940 */
+ 113, 18, 19, 20, 79, 106, 23, 24, 124, 110,
+ /* 950 */
+ 124, 124, 29, 124, 124, 86, 33, 34, 35, 90,
+ /* 960 */
+ 37, 124, 39, 94, 92, 42, 124, 124, 124, 124,
+ /* 970 */
+ 86, 124, 103, 101, 90, 106, 107, 108, 94, 110,
+ /* 980 */
+ 57, 58, 59, 60, 61, 113, 124, 64, 65, 124,
+ /* 990 */
+ 106, 107, 108, 124, 110, 18, 124, 20, 124, 18,
+ /* 1000 */
+ 19, 20, 79, 124, 23, 24, 124, 30, 124, 32,
+ /* 1010 */
+ 29, 86, 124, 36, 33, 90, 35, 124, 37, 94,
+ /* 1020 */
+ 39, 124, 124, 42, 124, 124, 124, 124, 124, 124,
+ /* 1030 */
+ 124, 106, 107, 108, 124, 110, 124, 124, 57, 58,
+ /* 1040 */
+ 59, 60, 61, 124, 124, 64, 65, 124, 124, 124,
+ /* 1050 */
+ 124, 124, 18, 124, 20, 124, 124, 18, 19, 20,
+ /* 1060 */
+ 79, 124, 23, 24, 30, 86, 32, 124, 29, 90,
+ /* 1070 */
+ 36, 86, 33, 94, 35, 90, 37, 124, 39, 94,
+ /* 1080 */
+ 124, 42, 124, 124, 124, 106, 107, 108, 124, 110,
+ /* 1090 */
+ 124, 106, 107, 108, 124, 110, 57, 58, 59, 60,
+ /* 1100 */
+ 61, 124, 124, 64, 65, 124, 124, 124, 124, 124,
+ /* 1110 */
+ 124, 124, 124, 124, 124, 18, 19, 20, 79, 124,
+ /* 1120 */
+ 23, 24, 124, 124, 124, 124, 29, 86, 124, 124,
+ /* 1130 */
+ 33, 90, 35, 124, 37, 94, 39, 124, 124, 42,
+ /* 1140 */
+ 124, 124, 124, 124, 124, 124, 124, 106, 107, 108,
+ /* 1150 */
+ 124, 110, 124, 124, 57, 58, 59, 60, 61, 124,
+ /* 1160 */
+ 124, 64, 65, 124, 124, 124, 124, 124, 124, 124,
+ /* 1170 */
+ 124, 124, 124, 18, 19, 20, 79, 124, 23, 24,
+ /* 1180 */
+ 124, 124, 124, 124, 29, 86, 124, 124, 33, 90,
+ /* 1190 */
+ 35, 124, 37, 94, 39, 124, 124, 42, 124, 124,
+ /* 1200 */
+ 124, 124, 124, 124, 124, 106, 107, 108, 124, 110,
+ /* 1210 */
+ 124, 124, 57, 58, 59, 60, 61, 124, 124, 64,
+ /* 1220 */
+ 65, 124, 124, 124, 124, 124, 124, 124, 124, 124,
+ /* 1230 */
+ 124, 18, 19, 20, 79, 124, 23, 24, 124, 124,
+ /* 1240 */
+ 124, 124, 29, 86, 124, 124, 33, 90, 35, 124,
+ /* 1250 */
+ 37, 94, 39, 124, 124, 42, 124, 124, 124, 124,
+ /* 1260 */
+ 124, 124, 124, 106, 107, 108, 124, 110, 124, 124,
+ /* 1270 */
+ 57, 58, 59, 60, 61, 124, 124, 64, 65, 124,
+ /* 1280 */
+ 1, 124, 3, 124, 3, 124, 124, 124, 124, 18,
+ /* 1290 */
+ 19, 20, 79, 124, 23, 24, 124, 124, 124, 124,
+ /* 1300 */
+ 29, 22, 21, 124, 33, 124, 35, 124, 37, 30,
+ /* 1310 */
+ 39, 30, 124, 42, 124, 36, 124, 36, 39, 124,
+ /* 1320 */
+ 39, 124, 124, 124, 91, 92, 124, 124, 57, 58,
+ /* 1330 */
+ 59, 60, 61, 124, 101, 64, 65, 104, 105, 124,
+ /* 1340 */
+ 124, 62, 124, 62, 124, 124, 124, 18, 19, 20,
+ /* 1350 */
+ 79, 118, 23, 24, 124, 124, 124, 124, 29, 124,
+ /* 1360 */
+ 124, 124, 33, 124, 35, 124, 37, 124, 39, 91,
+ /* 1370 */
+ 92, 42, 124, 124, 124, 124, 124, 124, 124, 101,
+ /* 1380 */
+ 124, 124, 104, 105, 124, 124, 57, 58, 59, 60,
+ /* 1390 */
+ 61, 124, 124, 64, 65, 124, 118, 124, 124, 124,
+ /* 1400 */
+ 124, 124, 124, 124, 124, 18, 19, 20, 79, 124,
+ /* 1410 */
+ 23, 24, 124, 124, 124, 124, 29, 124, 124, 124,
+ /* 1420 */
+ 33, 124, 35, 124, 37, 124, 39, 91, 92, 42,
+ /* 1430 */
+ 124, 124, 124, 124, 124, 124, 124, 101, 124, 124,
+ /* 1440 */
+ 104, 105, 124, 124, 57, 58, 59, 60, 61, 124,
+ /* 1450 */
+ 124, 64, 124, 124, 118, 124, 124, 124, 124, 124,
+ /* 1460 */
+ 124, 124, 124, 18, 19, 20, 79, 124, 23, 24,
+ /* 1470 */
+ 124, 124, 124, 124, 29, 124, 124, 124, 33, 124,
+ /* 1480 */
+ 35, 124, 37, 124, 39, 124, 3, 42, 124, 124,
+ /* 1490 */
+ 124, 124, 124, 124, 124, 124, 124, 124, 124, 124,
+ /* 1500 */
+ 124, 124, 57, 58, 59, 60, 61, 124, 25, 64,
+ /* 1510 */
+ 27, 28, 124, 30, 31, 124, 124, 124, 124, 36,
+ /* 1520 */
+ 124, 38, 39, 40, 79, 124, 124, 124, 124, 124,
+ /* 1530 */
+ 124, 124, 124, 124, 124, 86, 124, 124, 55, 90,
+ /* 1540 */
+ 124, 124, 93, 94, 124, 62, 124, 124, 124, 66,
+ /* 1550 */
+ 124, 102, 103, 124, 124, 106, 107, 108, 124, 110,
+ /* 1560 */
+ 124, 124, 124, 80, 124, 124, 124, 86, 124, 120,
+ /* 1570 */
+ 121, 90, 124, 124, 93, 94, 95, 124, 124, 124,
+ /* 1580 */
+ 124, 124, 124, 102, 103, 124, 124, 106, 107, 108,
+ /* 1590 */
+ 86, 110, 124, 124, 90, 124, 124, 93, 94, 124,
+ /* 1600 */
+ 124, 124, 124, 124, 124, 124, 102, 103, 124, 86,
+ /* 1610 */
+ 106, 107, 108, 90, 110, 124, 93, 94, 124, 124,
+ /* 1620 */
+ 124, 117, 124, 124, 124, 102, 103, 124, 124, 106,
+ /* 1630 */
+ 107, 108, 124, 110, 124, 124, 124, 124, 86, 124,
+ /* 1640 */
+ 117, 124, 90, 124, 124, 93, 94, 124, 124, 124,
+ /* 1650 */
+ 124, 124, 124, 124, 102, 103, 124, 124, 106, 107,
+ /* 1660 */
+ 108, 86, 110, 124, 124, 90, 124, 124, 93, 94,
+ /* 1670 */
+ 95, 124, 124, 121, 124, 124, 124, 102, 103, 124,
+ /* 1680 */
+ 124, 106, 107, 108, 86, 110, 124, 124, 90, 124,
+ /* 1690 */
+ 124, 93, 94, 124, 124, 124, 124, 124, 124, 124,
+ /* 1700 */
+ 102, 103, 124, 86, 106, 107, 108, 90, 110, 124,
+ /* 1710 */
+ 93, 94, 124, 124, 124, 117, 124, 124, 124, 102,
+ /* 1720 */
+ 103, 124, 124, 106, 107, 108, 124, 110, 124, 86,
+ /* 1730 */
+ 91, 92, 124, 90, 124, 124, 93, 94, 124, 124,
+ /* 1740 */
+ 101, 124, 124, 104, 105, 102, 103, 124, 86, 106,
+ /* 1750 */
+ 107, 108, 90, 110, 124, 93, 94, 118, 124, 124,
+ /* 1760 */
+ 124, 124, 124, 124, 102, 103, 124, 124, 106, 107,
+ /* 1770 */
+ 108, 86, 110, 124, 124, 90, 124, 124, 93, 94,
+ /* 1780 */
+ 124, 124, 124, 124, 124, 124, 124, 102, 103, 124,
+ /* 1790 */
+ 86, 106, 107, 108, 90, 110, 124, 93, 94, 124,
+ /* 1800 */
+ 124, 124, 124, 124, 124, 124, 102, 103, 124, 124,
+ /* 1810 */
+ 106, 107, 108, 124, 110, 124, 86, 91, 92, 124,
+ /* 1820 */
+ 90, 124, 124, 93, 94, 124, 124, 101, 124, 124,
+ /* 1830 */
+ 104, 105, 102, 103, 124, 86, 106, 107, 108, 90,
+ /* 1840 */
+ 110, 124, 93, 94, 118, 124, 124, 124, 124, 124,
+ /* 1850 */
+ 124, 102, 103, 124, 124, 106, 107, 108, 86, 110,
+ /* 1860 */
+ 124, 124, 90, 124, 124, 93, 94, 124, 124, 124,
+ /* 1870 */
+ 124, 124, 124, 124, 102, 103, 124, 86, 106, 107,
+ /* 1880 */
+ 108, 90, 110, 124, 93, 94, 124, 124, 124, 124,
+ /* 1890 */
+ 124, 124, 124, 102, 103, 124, 124, 106, 107, 108,
+ /* 1900 */
+ 124, 110, 124, 86, 91, 92, 124, 90, 124, 124,
+ /* 1910 */
+ 93, 94, 124, 124, 101, 124, 124, 104, 105, 102,
+ /* 1920 */
+ 103, 124, 86, 106, 107, 108, 90, 110, 124, 93,
+ /* 1930 */
+ 94, 118, 124, 124, 124, 124, 124, 124, 102, 103,
+ /* 1940 */
+ 124, 124, 106, 107, 108, 86, 110, 124, 124, 90,
+ /* 1950 */
+ 124, 124, 93, 94, 124, 124, 124, 124, 124, 124,
+ /* 1960 */
+ 124, 102, 103, 124, 86, 106, 107, 108, 90, 110,
+ /* 1970 */
+ 124, 93, 94, 124, 124, 124, 124, 124, 124, 124,
+ /* 1980 */
+ 102, 103, 124, 124, 106, 107, 108, 124, 110, 124,
+ /* 1990 */
+ 86, 124, 124, 124, 90, 124, 124, 93, 94, 124,
+ /* 2000 */
+ 124, 124, 124, 124, 124, 124, 102, 103, 124, 86,
+ /* 2010 */
+ 106, 107, 108, 90, 110, 124, 93, 94, 124, 124,
+ /* 2020 */
+ 124, 124, 124, 124, 124, 102, 103, 124, 124, 106,
+ /* 2030 */
+ 107, 108, 86, 110, 124, 124, 90, 124, 124, 93,
+ /* 2040 */
+ 94, 124, 124, 124, 124, 124, 124, 124, 102, 103,
+ /* 2050 */
+ 124, 86, 106, 107, 108, 90, 110, 124, 93, 94,
+ /* 2060 */
+ 124, 124, 124, 124, 124, 124, 124, 102, 103, 124,
+ /* 2070 */
+ 124, 106, 107, 108, 124, 110, 124, 86, 124, 124,
+ /* 2080 */
+ 124, 90, 124, 124, 93, 94, 124, 124, 124, 124,
+ /* 2090 */
+ 124, 124, 124, 102, 103, 124, 86, 106, 107, 108,
+ /* 2100 */
+ 90, 110, 124, 93, 94, 124, 124, 124, 124, 124,
+ /* 2110 */
+ 124, 124, 102, 103, 124, 124, 106, 107, 108, 86,
+ /* 2120 */
+ 110, 124, 124, 90, 124, 124, 93, 94, 124, 124,
+ /* 2130 */
+ 124, 124, 124, 124, 124, 102, 103, 124, 86, 106,
+ /* 2140 */
+ 107, 108, 90, 110, 124, 93, 94, 124, 124, 124,
+ /* 2150 */
+ 124, 124, 124, 124, 102, 103, 124, 124, 106, 107,
+ /* 2160 */
+ 108, 124, 110, 124, 86, 124, 124, 124, 90, 124,
+ /* 2170 */
+ 124, 93, 94, 124, 124, 124, 124, 124, 124, 124,
+ /* 2180 */
+ 102, 103, 124, 86, 106, 107, 108, 90, 110, 124,
+ /* 2190 */
+ 93, 94, 124, 124, 124, 124, 124, 124, 124, 102,
+ /* 2200 */
+ 103, 124, 124, 106, 107, 108, 86, 110, 124, 124,
+ /* 2210 */
+ 90, 124, 124, 93, 94, 124, 124, 124, 124, 124,
+ /* 2220 */
+ 124, 124, 102, 103, 124, 86, 106, 107, 108, 90,
+ /* 2230 */
+ 110, 124, 93, 94, 124, 124, 124, 124, 124, 124,
+ /* 2240 */
+ 124, 102, 103, 124, 124, 106, 107, 108, 124, 110,
+ /* 2250 */
+ 124, 86, 124, 124, 124, 90, 124, 124, 93, 94,
+ /* 2260 */
+ 124, 124, 124, 124, 124, 124, 124, 102, 103, 124,
+ /* 2270 */
+ 86, 106, 107, 108, 90, 110, 124, 93, 94, 124,
+ /* 2280 */
+ 124, 124, 124, 124, 124, 124, 102, 103, 124, 124,
+ /* 2290 */
+ 106, 107, 108, 86, 110, 124, 124, 90, 124, 124,
+ /* 2300 */
+ 93, 94, 124, 124, 124, 124, 124, 124, 124, 102,
+ /* 2310 */
+ 103, 124, 86, 106, 107, 108, 90, 110, 124, 93,
+ /* 2320 */
+ 94, 124, 124, 124, 124, 124, 124, 124, 102, 103,
+ /* 2330 */
+ 124, 124, 106, 107, 108, 124, 110, 124, 86, 124,
+ /* 2340 */
+ 124, 124, 90, 124, 124, 93, 94, 124, 124, 124,
+ /* 2350 */
+ 124, 124, 124, 124, 102, 103, 124, 11, 106, 107,
+ /* 2360 */
+ 108, 124, 110, 124, 18, 124, 124, 124, 124, 23,
+ /* 2370 */
+ 24, 11, 124, 124, 124, 29, 124, 124, 18, 33,
+ /* 2380 */
+ 124, 35, 124, 23, 24, 124, 124, 124, 124, 29,
+ /* 2390 */
+ 124, 124, 124, 33, 124, 35, 86, 124, 124, 124,
+ /* 2400 */
+ 90, 124, 124, 93, 94, 124, 124, 124, 124, 124,
+ /* 2410 */
+ 124, 124, 102, 103, 124, 124, 106, 107, 108, 124,
+ /* 2420 */
+ 110, 124, 124, 124, 124, 79, 80, 81, 124, 86,
+ /* 2430 */
+ 124, 124, 124, 90, 124, 124, 93, 94, 124, 79,
+ /* 2440 */
+ 80, 81, 124, 124, 124, 102, 103, 124, 124, 106,
+ /* 2450 */
+ 107, 108, 124, 110, 124, 124, 86, 124, 124, 124,
+ /* 2460 */
+ 90, 124, 124, 93, 94, 124, 124, 124, 124, 124,
+ /* 2470 */
+ 124, 124, 102, 103, 124, 124, 106, 107, 108, 124,
+ /* 2480 */
+ 110, 124, 86, 124, 124, 124, 90, 124, 124, 93,
+ /* 2490 */
+ 94, 124, 124, 124, 124, 124, 124, 124, 102, 103,
+ /* 2500 */
+ 124, 124, 106, 107, 108, 86, 110, 124, 124, 90,
+ /* 2510 */
+ 124, 124, 93, 94, 124, 124, 86, 124, 124, 124,
+ /* 2520 */
+ 90, 102, 103, 93, 94, 106, 107, 108, 124, 110,
+ /* 2530 */
+ 124, 124, 102, 103, 124, 124, 106, 107, 108, 124,
+ /* 2540 */
+ 110,
+ );
+ const YY_SHIFT_USE_DFLT = - 39;
+ const YY_SHIFT_MAX = 259;
static public $yy_shift_ofst = array(
- /* 0 */ -2, 1385, 1385, 1328, 1157, 1328, 1157, 1157, 1100, 1157,
- /* 10 */ 1157, 1157, 1157, 1157, 1157, 1556, 1157, 1157, 1157, 1157,
- /* 20 */ 1556, 1157, 1157, 1157, 1157, 1157, 1157, 1157, 1157, 1157,
- /* 30 */ 1157, 1157, 1442, 1157, 1157, 1499, 1157, 1157, 1214, 1157,
- /* 40 */ 1157, 1157, 1157, 1442, 1271, 1271, 1670, 1613, 1670, 1670,
- /* 50 */ 1670, 1670, 1670, 206, 129, 52, -1, 259, 259, 259,
- /* 60 */ 833, 886, 939, 780, 650, 390, 336, 467, 703, 520,
- /* 70 */ 573, 992, 992, 992, 992, 992, 992, 992, 992, 992,
- /* 80 */ 992, 992, 992, 992, 992, 992, 992, 992, 992, 992,
- /* 90 */ 1033, 1033, 1841, 784, 288, -2, 338, 125, 463, 209,
- /* 100 */ 333, 209, 333, 327, 288, 267, 288, 334, 509, 1745,
- /* 110 */ 102, 132, 470, 653, 70, 245, 479, 212, 204, 3,
- /* 120 */ 174, 217, 277, 122, 432, 537, 432, 509, 510, 432,
- /* 130 */ 432, 382, 668, 506, 432, 432, 531, 563, 432, 382,
- /* 140 */ 527, 432, 510, 509, 571, 432, 392, 691, 704, 704,
- /* 150 */ 704, 704, 704, 704, 704, 691, 704, -3, 1341, 1381,
- /* 160 */ 1284, 1267, 66, 1108, 1152, 1165, 1210, 536, 1438, 1398,
- /* 170 */ 1495, 1512, 466, 777, 0, 128, 781, 1324, 1455, 1227,
- /* 180 */ 471, 358, 150, 150, 339, 150, 150, 21, 150, 718,
- /* 190 */ 691, 691, 625, 704, 704, 709, 691, 709, 4, 4,
- /* 200 */ -3, -3, -3, -3, -3, 1727, 202, 75, 44, 361,
- /* 210 */ 223, 1, 225, 91, 76, 371, 395, 410, 76, 256,
- /* 220 */ 305, 560, 625, 617, 619, 598, 597, 576, 349, 630,
- /* 230 */ 637, 639, 666, 682, 661, 643, 644, 613, 591, 528,
- /* 240 */ 565, 486, 484, 407, 436, 582, 566, 564, 609, 547,
- /* 250 */ 554, 588, 545,
-);
- const YY_REDUCE_USE_DFLT = -102;
- const YY_REDUCE_MAX = 204;
+ /* 0 */
+ 1, 1097, 1271, 1097, 981, 1271, 981, 981, 923, 865,
+ /* 10 */
+ 923, 981, 981, 981, 981, 981, 981, 981, 981, 981,
+ /* 20 */
+ 981, 981, 1213, 981, 981, 981, 1155, 1329, 981, 981,
+ /* 30 */
+ 981, 981, 981, 981, 981, 981, 981, 981, 981, 981,
+ /* 40 */
+ 981, 1155, 981, 981, 1039, 1039, 1445, 1387, 1387, 1387,
+ /* 50 */
+ 1387, 1387, 1387, - 1, 53, 107, 107, 107, 107, 107,
+ /* 60 */
+ 539, 431, 701, 161, 377, 269, 647, 485, 593, 215,
+ /* 70 */
+ 323, 755, 755, 755, 755, 755, 755, 755, 755, 755,
+ /* 80 */
+ 755, 755, 755, 755, 755, 755, 755, 755, 755, 755,
+ /* 90 */
+ 797, 797, 1279, 56, 190, 1, 2346, 977, 1034, 3,
+ /* 100 */
+ 3, 137, 137, 190, 190, 286, 798, 404, 365, 2360,
+ /* 110 */
+ 25, 162, 57, 121, 70, 154, 16, 327, 198, 231,
+ /* 120 */
+ 114, 193, 417, 391, 360, 363, 363, 339, 502, 363,
+ /* 130 */
+ 365, 363, 365, 386, 339, 444, 470, 49, 444, 435,
+ /* 140 */
+ 49, 363, 363, 363, 363, 363, 31, 554, 31, 31,
+ /* 150 */
+ 554, 31, 31, 31, 31, 31, 31, - 39, 177, 168,
+ /* 160 */
+ 49, 49, 49, 49, 49, 49, 49, 49, - 38, - 38,
+ /* 170 */
+ - 38, 270, - 38, 49, 49, 49, 49, 49, 49, - 38,
+ /* 180 */
+ 270, - 38, 237, 49, 49, 49, - 38, 49, 49, 49,
+ /* 190 */
+ 584, 554, 554, 31, 566, 566, 60, 554, 31, 454,
+ /* 200 */
+ 31, 31, 60, 31, - 39, - 39, - 39, - 39, - 39, 1483,
+ /* 210 */
+ 1281, 106, 45, 157, 138, - 37, 80, 241, 418, 342,
+ /* 220 */
+ 331, 212, 185, 330, 185, 289, 552, 541, 526, 525,
+ /* 230 */
+ 521, 523, 524, 527, 529, 567, 551, 532, 531, 483,
+ /* 240 */
+ 547, 503, 518, 436, 454, 465, 406, 397, 419, 423,
+ /* 250 */
+ 471, 388, 475, 455, 500, 499, 497, 450, 488, 495,
+ );
+ const YY_REDUCE_USE_DFLT = - 99;
+ const YY_REDUCE_MAX = 208;
static public $yy_reduce_ofst = array(
- /* 0 */ -28, 46, 1709, 123, 567, 384, 1630, 698, 1961, 1934,
- /* 10 */ 1923, 1875, 1898, 1984, 2009, 2106, 2095, 2070, 2020, 2047,
- /* 20 */ 1848, 1837, 1402, 1345, 1288, 1174, 1231, 1459, 1516, 1812,
- /* 30 */ 1789, 1758, 1573, 1747, 2156, 2133, 2305, 2267, 2181, 2192,
- /* 40 */ 1117, 2219, 2242, 2278, 1042, 1728, 258, 1061, 572, 2076,
- /* 50 */ 1990, 1904, 1818, 1680, 1871, 1705, 2313, 2335, 2328, 1680,
- /* 60 */ -26, -26, -26, -26, -26, -26, -26, -26, -26, -26,
- /* 70 */ -26, -26, -26, -26, -26, -26, -26, -26, -26, -26,
- /* 80 */ -26, -26, -26, -26, -26, -26, -26, -26, -26, -26,
- /* 90 */ -26, -26, 224, 94, 196, 236, 273, 1149, 1062, 406,
- /* 100 */ -76, 353, 575, 264, 328, 201, 329, 78, 330, 646,
- /* 110 */ 517, -29, -29, -29, 342, 616, 385, -29, 68, 342,
- /* 120 */ 342, -29, 74, 74, 618, 433, 574, 457, 515, 541,
- /* 130 */ 433, 112, 74, 433, 434, 487, 459, 699, 468, 366,
- /* 140 */ -29, 696, 433, 464, 511, 645, -73, -101, -29, -29,
- /* 150 */ -29, -29, -29, -29, -29, 74, -29, -29, 606, 606,
- /* 160 */ 606, 606, 620, 606, 606, 606, 606, 596, 606, 606,
- /* 170 */ 606, 606, 606, 606, 606, 606, 606, 606, 606, 606,
- /* 180 */ 592, 592, 599, 599, 592, 599, 599, 603, 599, 647,
- /* 190 */ 622, 622, 623, 592, 592, -6, 622, -6, -13, 220,
- /* 200 */ 251, 240, 182, 146, 157,
-);
+ /* 0 */
+ 30, 1449, 1575, 1552, 1523, 1481, 1504, 1598, 1836, 2010,
+ /* 10 */
+ 1991, 1791, 1685, 1643, 1704, 1749, 2033, 2078, 2310, 2419,
+ /* 20 */
+ 2139, 2207, 2252, 2343, 2370, 1772, 1617, 1946, 1904, 2184,
+ /* 30 */
+ 1923, 1878, 1859, 1965, 2052, 1662, 1817, 1730, 2097, 2396,
+ /* 40 */
+ 2430, 2120, 2165, 2226, 869, 805, 985, 925, 884, 979,
+ /* 50 */
+ 1099, 1041, 1157, 1639, 1233, 1639, 1336, 1278, 1726, 1813,
+ /* 60 */
+ - 87, - 87, - 87, - 87, - 87, - 87, - 87, - 87, - 87, - 87,
+ /* 70 */
+ - 87, - 87, - 87, - 87, - 87, - 87, - 87, - 87, - 87, - 87,
+ /* 80 */
+ - 87, - 87, - 87, - 87, - 87, - 87, - 87, - 87, - 87, - 87,
+ /* 90 */
+ - 87, - 87, 18, 207, 153, 136, 155, 827, 872, 804,
+ /* 100 */
+ 826, 261, 316, 369, 315, 839, 188, 210, 179, 372,
+ /* 110 */
+ 189, 189, 189, 505, 299, 326, 128, 128, 189, 299,
+ /* 120 */
+ 299, 189, 507, 453, 242, 344, 243, 84, 128, 452,
+ /* 130 */
+ 291, 399, 345, 189, 380, 613, 453, 421, 453, 368,
+ /* 140 */
+ 367, 560, 453, 559, 561, 290, 189, 128, 213, 189,
+ /* 150 */
+ 181, 189, 189, 189, 189, 189, 189, 189, 484, 479,
+ /* 160 */
+ 472, 472, 472, 472, 472, 472, 472, 472, 462, 462,
+ /* 170 */
+ 462, 464, 462, 472, 472, 472, 472, 472, 472, 462,
+ /* 180 */
+ 467, 462, 466, 472, 472, 472, 462, 472, 472, 472,
+ /* 190 */
+ 511, 486, 486, - 98, 501, 506, 236, 486, - 98, 468,
+ /* 200 */
+ - 98, - 98, 236, - 98, 227, - 27, 197, 33, 90,
+ );
static public $yyExpectedTokens = array(
- /* 0 */ array(3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 16, 22, 23, 28, 32, 33, 34, ),
- /* 1 */ array(16, 18, 19, 22, 23, 28, 32, 33, 34, 36, 38, 41, 56, 57, 58, 59, 60, 63, 64, 78, ),
- /* 2 */ array(16, 18, 19, 22, 23, 28, 32, 33, 34, 36, 38, 41, 56, 57, 58, 59, 60, 63, 64, 78, ),
- /* 3 */ array(16, 18, 19, 22, 23, 28, 32, 33, 34, 36, 38, 41, 56, 57, 58, 59, 60, 63, 64, 78, ),
- /* 4 */ array(16, 18, 19, 22, 23, 28, 32, 33, 34, 36, 38, 41, 56, 57, 58, 59, 60, 63, 64, 78, ),
- /* 5 */ array(16, 18, 19, 22, 23, 28, 32, 33, 34, 36, 38, 41, 56, 57, 58, 59, 60, 63, 64, 78, ),
- /* 6 */ array(16, 18, 19, 22, 23, 28, 32, 33, 34, 36, 38, 41, 56, 57, 58, 59, 60, 63, 64, 78, ),
- /* 7 */ array(16, 18, 19, 22, 23, 28, 32, 33, 34, 36, 38, 41, 56, 57, 58, 59, 60, 63, 64, 78, ),
- /* 8 */ array(16, 18, 19, 22, 23, 28, 32, 33, 34, 36, 38, 41, 56, 57, 58, 59, 60, 63, 64, 65, 78, ),
- /* 9 */ array(16, 18, 19, 22, 23, 28, 32, 33, 34, 36, 38, 41, 56, 57, 58, 59, 60, 63, 64, 78, ),
- /* 10 */ array(16, 18, 19, 22, 23, 28, 32, 33, 34, 36, 38, 41, 56, 57, 58, 59, 60, 63, 64, 78, ),
- /* 11 */ array(16, 18, 19, 22, 23, 28, 32, 33, 34, 36, 38, 41, 56, 57, 58, 59, 60, 63, 64, 78, ),
- /* 12 */ array(16, 18, 19, 22, 23, 28, 32, 33, 34, 36, 38, 41, 56, 57, 58, 59, 60, 63, 64, 78, ),
- /* 13 */ array(16, 18, 19, 22, 23, 28, 32, 33, 34, 36, 38, 41, 56, 57, 58, 59, 60, 63, 64, 78, ),
- /* 14 */ array(16, 18, 19, 22, 23, 28, 32, 33, 34, 36, 38, 41, 56, 57, 58, 59, 60, 63, 64, 78, ),
- /* 15 */ array(16, 18, 19, 22, 23, 28, 32, 33, 34, 36, 38, 41, 56, 57, 58, 59, 60, 63, 64, 78, ),
- /* 16 */ array(16, 18, 19, 22, 23, 28, 32, 33, 34, 36, 38, 41, 56, 57, 58, 59, 60, 63, 64, 78, ),
- /* 17 */ array(16, 18, 19, 22, 23, 28, 32, 33, 34, 36, 38, 41, 56, 57, 58, 59, 60, 63, 64, 78, ),
- /* 18 */ array(16, 18, 19, 22, 23, 28, 32, 33, 34, 36, 38, 41, 56, 57, 58, 59, 60, 63, 64, 78, ),
- /* 19 */ array(16, 18, 19, 22, 23, 28, 32, 33, 34, 36, 38, 41, 56, 57, 58, 59, 60, 63, 64, 78, ),
- /* 20 */ array(16, 18, 19, 22, 23, 28, 32, 33, 34, 36, 38, 41, 56, 57, 58, 59, 60, 63, 64, 78, ),
- /* 21 */ array(16, 18, 19, 22, 23, 28, 32, 33, 34, 36, 38, 41, 56, 57, 58, 59, 60, 63, 64, 78, ),
- /* 22 */ array(16, 18, 19, 22, 23, 28, 32, 33, 34, 36, 38, 41, 56, 57, 58, 59, 60, 63, 64, 78, ),
- /* 23 */ array(16, 18, 19, 22, 23, 28, 32, 33, 34, 36, 38, 41, 56, 57, 58, 59, 60, 63, 64, 78, ),
- /* 24 */ array(16, 18, 19, 22, 23, 28, 32, 33, 34, 36, 38, 41, 56, 57, 58, 59, 60, 63, 64, 78, ),
- /* 25 */ array(16, 18, 19, 22, 23, 28, 32, 33, 34, 36, 38, 41, 56, 57, 58, 59, 60, 63, 64, 78, ),
- /* 26 */ array(16, 18, 19, 22, 23, 28, 32, 33, 34, 36, 38, 41, 56, 57, 58, 59, 60, 63, 64, 78, ),
- /* 27 */ array(16, 18, 19, 22, 23, 28, 32, 33, 34, 36, 38, 41, 56, 57, 58, 59, 60, 63, 64, 78, ),
- /* 28 */ array(16, 18, 19, 22, 23, 28, 32, 33, 34, 36, 38, 41, 56, 57, 58, 59, 60, 63, 64, 78, ),
- /* 29 */ array(16, 18, 19, 22, 23, 28, 32, 33, 34, 36, 38, 41, 56, 57, 58, 59, 60, 63, 64, 78, ),
- /* 30 */ array(16, 18, 19, 22, 23, 28, 32, 33, 34, 36, 38, 41, 56, 57, 58, 59, 60, 63, 64, 78, ),
- /* 31 */ array(16, 18, 19, 22, 23, 28, 32, 33, 34, 36, 38, 41, 56, 57, 58, 59, 60, 63, 64, 78, ),
- /* 32 */ array(16, 18, 19, 22, 23, 28, 32, 33, 34, 36, 38, 41, 56, 57, 58, 59, 60, 63, 64, 78, ),
- /* 33 */ array(16, 18, 19, 22, 23, 28, 32, 33, 34, 36, 38, 41, 56, 57, 58, 59, 60, 63, 64, 78, ),
- /* 34 */ array(16, 18, 19, 22, 23, 28, 32, 33, 34, 36, 38, 41, 56, 57, 58, 59, 60, 63, 64, 78, ),
- /* 35 */ array(16, 18, 19, 22, 23, 28, 32, 33, 34, 36, 38, 41, 56, 57, 58, 59, 60, 63, 64, 78, ),
- /* 36 */ array(16, 18, 19, 22, 23, 28, 32, 33, 34, 36, 38, 41, 56, 57, 58, 59, 60, 63, 64, 78, ),
- /* 37 */ array(16, 18, 19, 22, 23, 28, 32, 33, 34, 36, 38, 41, 56, 57, 58, 59, 60, 63, 64, 78, ),
- /* 38 */ array(16, 18, 19, 22, 23, 28, 32, 33, 34, 36, 38, 41, 56, 57, 58, 59, 60, 63, 64, 78, ),
- /* 39 */ array(16, 18, 19, 22, 23, 28, 32, 33, 34, 36, 38, 41, 56, 57, 58, 59, 60, 63, 64, 78, ),
- /* 40 */ array(16, 18, 19, 22, 23, 28, 32, 33, 34, 36, 38, 41, 56, 57, 58, 59, 60, 63, 64, 78, ),
- /* 41 */ array(16, 18, 19, 22, 23, 28, 32, 33, 34, 36, 38, 41, 56, 57, 58, 59, 60, 63, 64, 78, ),
- /* 42 */ array(16, 18, 19, 22, 23, 28, 32, 33, 34, 36, 38, 41, 56, 57, 58, 59, 60, 63, 64, 78, ),
- /* 43 */ array(16, 18, 19, 22, 23, 28, 32, 33, 34, 36, 38, 41, 56, 57, 58, 59, 60, 63, 64, 78, ),
- /* 44 */ array(16, 18, 19, 22, 23, 28, 32, 33, 34, 36, 38, 41, 56, 57, 58, 59, 60, 63, 64, 78, ),
- /* 45 */ array(16, 18, 19, 22, 23, 28, 32, 33, 34, 36, 38, 41, 56, 57, 58, 59, 60, 63, 64, 78, ),
- /* 46 */ array(16, 18, 19, 22, 23, 28, 32, 33, 34, 36, 38, 41, 56, 57, 58, 59, 60, 63, 78, ),
- /* 47 */ array(16, 18, 19, 22, 23, 28, 32, 33, 34, 36, 38, 41, 56, 57, 58, 59, 60, 63, 78, ),
- /* 48 */ array(16, 18, 19, 22, 23, 28, 32, 33, 34, 36, 38, 41, 56, 57, 58, 59, 60, 63, 78, ),
- /* 49 */ array(16, 18, 19, 22, 23, 28, 32, 33, 34, 36, 38, 41, 56, 57, 58, 59, 60, 63, 78, ),
- /* 50 */ array(16, 18, 19, 22, 23, 28, 32, 33, 34, 36, 38, 41, 56, 57, 58, 59, 60, 63, 78, ),
- /* 51 */ array(16, 18, 19, 22, 23, 28, 32, 33, 34, 36, 38, 41, 56, 57, 58, 59, 60, 63, 78, ),
- /* 52 */ array(16, 18, 19, 22, 23, 28, 32, 33, 34, 36, 38, 41, 56, 57, 58, 59, 60, 63, 78, ),
- /* 53 */ array(1, 17, 29, 35, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, ),
- /* 54 */ array(1, 17, 29, 35, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, ),
- /* 55 */ array(1, 27, 29, 35, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, ),
- /* 56 */ array(1, 17, 29, 35, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, ),
- /* 57 */ array(1, 29, 35, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, ),
- /* 58 */ array(1, 29, 35, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, ),
- /* 59 */ array(1, 29, 35, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, ),
- /* 60 */ array(1, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, ),
- /* 61 */ array(1, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, ),
- /* 62 */ array(1, 30, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, ),
- /* 63 */ array(1, 17, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, ),
- /* 64 */ array(1, 17, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, ),
- /* 65 */ array(1, 24, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, ),
- /* 66 */ array(1, 17, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, ),
- /* 67 */ array(1, 17, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, ),
- /* 68 */ array(1, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 79, ),
- /* 69 */ array(1, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, ),
- /* 70 */ array(1, 2, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, ),
- /* 71 */ array(1, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, ),
- /* 72 */ array(1, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, ),
- /* 73 */ array(1, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, ),
- /* 74 */ array(1, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, ),
- /* 75 */ array(1, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, ),
- /* 76 */ array(1, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, ),
- /* 77 */ array(1, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, ),
- /* 78 */ array(1, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, ),
- /* 79 */ array(1, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, ),
- /* 80 */ array(1, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, ),
- /* 81 */ array(1, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, ),
- /* 82 */ array(1, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, ),
- /* 83 */ array(1, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, ),
- /* 84 */ array(1, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, ),
- /* 85 */ array(1, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, ),
- /* 86 */ array(1, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, ),
- /* 87 */ array(1, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, ),
- /* 88 */ array(1, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, ),
- /* 89 */ array(1, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, ),
- /* 90 */ array(40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, ),
- /* 91 */ array(40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, ),
- /* 92 */ array(1, 17, 21, 29, 35, 38, 61, ),
- /* 93 */ array(1, 17, 29, 35, 54, ),
- /* 94 */ array(1, 29, 35, ),
- /* 95 */ array(3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 16, 22, 23, 28, 32, 33, 34, ),
- /* 96 */ array(10, 16, 22, 23, 28, 32, 33, 34, 78, 79, 80, ),
- /* 97 */ array(16, 19, 29, 31, 35, ),
- /* 98 */ array(16, 19, 29, 31, 35, ),
- /* 99 */ array(1, 17, 29, 35, ),
- /* 100 */ array(16, 19, 29, 35, ),
- /* 101 */ array(1, 17, 29, 35, ),
- /* 102 */ array(16, 19, 29, 35, ),
- /* 103 */ array(18, 19, 63, ),
- /* 104 */ array(1, 29, 35, ),
- /* 105 */ array(1, 2, 17, ),
- /* 106 */ array(1, 29, 35, ),
- /* 107 */ array(21, 59, 64, ),
- /* 108 */ array(18, 38, ),
- /* 109 */ array(10, 16, 22, 23, 28, 32, 33, 34, 78, 79, 80, ),
- /* 110 */ array(4, 5, 6, 7, 8, 13, 14, 15, ),
- /* 111 */ array(1, 17, 29, 30, 35, 54, ),
- /* 112 */ array(1, 17, 29, 35, 54, ),
- /* 113 */ array(1, 17, 29, 35, 54, ),
- /* 114 */ array(16, 19, 20, 62, ),
- /* 115 */ array(16, 19, 20, 25, ),
- /* 116 */ array(1, 17, 21, ),
- /* 117 */ array(1, 31, 54, ),
- /* 118 */ array(17, 29, 35, ),
- /* 119 */ array(16, 19, 20, ),
- /* 120 */ array(16, 19, 62, ),
- /* 121 */ array(1, 17, 54, ),
- /* 122 */ array(20, 21, 61, ),
- /* 123 */ array(20, 21, 61, ),
- /* 124 */ array(16, 19, ),
- /* 125 */ array(16, 19, ),
- /* 126 */ array(16, 19, ),
- /* 127 */ array(18, 38, ),
- /* 128 */ array(16, 19, ),
- /* 129 */ array(16, 19, ),
- /* 130 */ array(16, 19, ),
- /* 131 */ array(18, 19, ),
- /* 132 */ array(21, 61, ),
- /* 133 */ array(16, 19, ),
- /* 134 */ array(16, 19, ),
- /* 135 */ array(16, 19, ),
- /* 136 */ array(1, 17, ),
- /* 137 */ array(16, 19, ),
- /* 138 */ array(16, 19, ),
- /* 139 */ array(18, 19, ),
- /* 140 */ array(1, 54, ),
- /* 141 */ array(16, 19, ),
- /* 142 */ array(16, 19, ),
- /* 143 */ array(18, 38, ),
- /* 144 */ array(29, 35, ),
- /* 145 */ array(16, 19, ),
- /* 146 */ array(29, 35, ),
- /* 147 */ array(21, ),
- /* 148 */ array(1, ),
- /* 149 */ array(1, ),
- /* 150 */ array(1, ),
- /* 151 */ array(1, ),
- /* 152 */ array(1, ),
- /* 153 */ array(1, ),
- /* 154 */ array(1, ),
- /* 155 */ array(21, ),
- /* 156 */ array(1, ),
- /* 157 */ array(),
- /* 158 */ array(17, 29, 35, ),
- /* 159 */ array(17, 29, 35, ),
- /* 160 */ array(17, 29, 35, ),
- /* 161 */ array(17, 29, 35, ),
- /* 162 */ array(16, 18, 19, ),
- /* 163 */ array(17, 29, 35, ),
- /* 164 */ array(17, 29, 35, ),
- /* 165 */ array(17, 29, 35, ),
- /* 166 */ array(17, 29, 35, ),
- /* 167 */ array(16, 19, 62, ),
- /* 168 */ array(17, 29, 35, ),
- /* 169 */ array(17, 29, 35, ),
- /* 170 */ array(17, 29, 35, ),
- /* 171 */ array(17, 29, 35, ),
- /* 172 */ array(17, 29, 35, ),
- /* 173 */ array(17, 29, 35, ),
- /* 174 */ array(17, 29, 35, ),
- /* 175 */ array(17, 29, 35, ),
- /* 176 */ array(17, 29, 35, ),
- /* 177 */ array(17, 29, 35, ),
- /* 178 */ array(17, 29, 35, ),
- /* 179 */ array(17, 29, 35, ),
- /* 180 */ array(1, 17, ),
- /* 181 */ array(1, 17, ),
- /* 182 */ array(59, 64, ),
- /* 183 */ array(59, 64, ),
- /* 184 */ array(1, 17, ),
- /* 185 */ array(59, 64, ),
- /* 186 */ array(59, 64, ),
- /* 187 */ array(16, 38, ),
- /* 188 */ array(59, 64, ),
- /* 189 */ array(14, ),
- /* 190 */ array(21, ),
- /* 191 */ array(21, ),
- /* 192 */ array(38, ),
- /* 193 */ array(1, ),
- /* 194 */ array(1, ),
- /* 195 */ array(2, ),
- /* 196 */ array(21, ),
- /* 197 */ array(2, ),
- /* 198 */ array(29, ),
- /* 199 */ array(29, ),
- /* 200 */ array(),
- /* 201 */ array(),
- /* 202 */ array(),
- /* 203 */ array(),
- /* 204 */ array(),
- /* 205 */ array(17, 24, 26, 27, 29, 30, 35, 37, 38, 39, 54, 61, 65, 79, ),
- /* 206 */ array(17, 20, 29, 35, 38, 61, ),
- /* 207 */ array(38, 59, 61, 65, ),
- /* 208 */ array(16, 18, 19, 36, ),
- /* 209 */ array(31, 38, 61, ),
- /* 210 */ array(19, 62, ),
- /* 211 */ array(24, 37, ),
- /* 212 */ array(37, 65, ),
- /* 213 */ array(20, 59, ),
- /* 214 */ array(38, 61, ),
- /* 215 */ array(25, 79, ),
- /* 216 */ array(2, 20, ),
- /* 217 */ array(37, 39, ),
- /* 218 */ array(38, 61, ),
- /* 219 */ array(37, 39, ),
- /* 220 */ array(37, 39, ),
- /* 221 */ array(17, 25, ),
- /* 222 */ array(38, ),
- /* 223 */ array(19, ),
- /* 224 */ array(18, ),
- /* 225 */ array(36, ),
- /* 226 */ array(36, ),
- /* 227 */ array(59, ),
- /* 228 */ array(25, ),
- /* 229 */ array(2, ),
- /* 230 */ array(18, ),
- /* 231 */ array(19, ),
- /* 232 */ array(19, ),
- /* 233 */ array(2, ),
- /* 234 */ array(19, ),
- /* 235 */ array(19, ),
- /* 236 */ array(20, ),
- /* 237 */ array(18, ),
- /* 238 */ array(39, ),
- /* 239 */ array(26, ),
- /* 240 */ array(18, ),
- /* 241 */ array(18, ),
- /* 242 */ array(19, ),
- /* 243 */ array(19, ),
- /* 244 */ array(19, ),
- /* 245 */ array(19, ),
- /* 246 */ array(38, ),
- /* 247 */ array(65, ),
- /* 248 */ array(19, ),
- /* 249 */ array(63, ),
- /* 250 */ array(55, ),
- /* 251 */ array(19, ),
- /* 252 */ array(63, ),
- /* 253 */ array(),
- /* 254 */ array(),
- /* 255 */ array(),
- /* 256 */ array(),
- /* 257 */ array(),
- /* 258 */ array(),
- /* 259 */ array(),
- /* 260 */ array(),
- /* 261 */ array(),
- /* 262 */ array(),
- /* 263 */ array(),
- /* 264 */ array(),
- /* 265 */ array(),
- /* 266 */ array(),
- /* 267 */ array(),
- /* 268 */ array(),
- /* 269 */ array(),
- /* 270 */ array(),
- /* 271 */ array(),
- /* 272 */ array(),
- /* 273 */ array(),
- /* 274 */ array(),
- /* 275 */ array(),
- /* 276 */ array(),
- /* 277 */ array(),
- /* 278 */ array(),
- /* 279 */ array(),
- /* 280 */ array(),
- /* 281 */ array(),
- /* 282 */ array(),
- /* 283 */ array(),
- /* 284 */ array(),
- /* 285 */ array(),
- /* 286 */ array(),
- /* 287 */ array(),
- /* 288 */ array(),
- /* 289 */ array(),
- /* 290 */ array(),
- /* 291 */ array(),
- /* 292 */ array(),
- /* 293 */ array(),
- /* 294 */ array(),
- /* 295 */ array(),
- /* 296 */ array(),
- /* 297 */ array(),
- /* 298 */ array(),
- /* 299 */ array(),
- /* 300 */ array(),
- /* 301 */ array(),
- /* 302 */ array(),
- /* 303 */ array(),
- /* 304 */ array(),
- /* 305 */ array(),
- /* 306 */ array(),
- /* 307 */ array(),
- /* 308 */ array(),
- /* 309 */ array(),
- /* 310 */ array(),
- /* 311 */ array(),
- /* 312 */ array(),
- /* 313 */ array(),
- /* 314 */ array(),
- /* 315 */ array(),
- /* 316 */ array(),
- /* 317 */ array(),
- /* 318 */ array(),
- /* 319 */ array(),
- /* 320 */ array(),
- /* 321 */ array(),
- /* 322 */ array(),
- /* 323 */ array(),
- /* 324 */ array(),
- /* 325 */ array(),
- /* 326 */ array(),
- /* 327 */ array(),
- /* 328 */ array(),
- /* 329 */ array(),
- /* 330 */ array(),
- /* 331 */ array(),
- /* 332 */ array(),
- /* 333 */ array(),
- /* 334 */ array(),
- /* 335 */ array(),
- /* 336 */ array(),
- /* 337 */ array(),
- /* 338 */ array(),
- /* 339 */ array(),
- /* 340 */ array(),
- /* 341 */ array(),
- /* 342 */ array(),
- /* 343 */ array(),
- /* 344 */ array(),
- /* 345 */ array(),
- /* 346 */ array(),
- /* 347 */ array(),
- /* 348 */ array(),
- /* 349 */ array(),
- /* 350 */ array(),
- /* 351 */ array(),
- /* 352 */ array(),
- /* 353 */ array(),
- /* 354 */ array(),
- /* 355 */ array(),
- /* 356 */ array(),
- /* 357 */ array(),
- /* 358 */ array(),
- /* 359 */ array(),
- /* 360 */ array(),
- /* 361 */ array(),
- /* 362 */ array(),
- /* 363 */ array(),
- /* 364 */ array(),
- /* 365 */ array(),
- /* 366 */ array(),
- /* 367 */ array(),
- /* 368 */ array(),
- /* 369 */ array(),
- /* 370 */ array(),
- /* 371 */ array(),
- /* 372 */ array(),
- /* 373 */ array(),
- /* 374 */ array(),
- /* 375 */ array(),
- /* 376 */ array(),
- /* 377 */ array(),
- /* 378 */ array(),
- /* 379 */ array(),
- /* 380 */ array(),
- /* 381 */ array(),
- /* 382 */ array(),
- /* 383 */ array(),
- /* 384 */ array(),
- /* 385 */ array(),
- /* 386 */ array(),
- /* 387 */ array(),
- /* 388 */ array(),
-);
+ /* 0 */
+ array(4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 18, 23, 24, 29, 33, 35,),
+ /* 1 */
+ array(18, 19, 20, 23, 24, 29, 33, 35, 37, 39, 42, 57, 58, 59, 60, 61, 64, 65, 79,),
+ /* 2 */
+ array(18, 19, 20, 23, 24, 29, 33, 35, 37, 39, 42, 57, 58, 59, 60, 61, 64, 65, 79,),
+ /* 3 */
+ array(18, 19, 20, 23, 24, 29, 33, 35, 37, 39, 42, 57, 58, 59, 60, 61, 64, 65, 79,),
+ /* 4 */
+ array(18, 19, 20, 23, 24, 29, 33, 35, 37, 39, 42, 57, 58, 59, 60, 61, 64, 65, 79,),
+ /* 5 */
+ array(18, 19, 20, 23, 24, 29, 33, 35, 37, 39, 42, 57, 58, 59, 60, 61, 64, 65, 79,),
+ /* 6 */
+ array(18, 19, 20, 23, 24, 29, 33, 35, 37, 39, 42, 57, 58, 59, 60, 61, 64, 65, 79,),
+ /* 7 */
+ array(18, 19, 20, 23, 24, 29, 33, 35, 37, 39, 42, 57, 58, 59, 60, 61, 64, 65, 79,),
+ /* 8 */
+ array(18, 19, 20, 23, 24, 29, 33, 34, 35, 37, 39, 42, 57, 58, 59, 60, 61, 64, 65, 79,),
+ /* 9 */
+ array(18, 19, 20, 23, 24, 29, 33, 35, 37, 39, 42, 57, 58, 59, 60, 61, 64, 65, 66, 79,),
+ /* 10 */
+ array(18, 19, 20, 23, 24, 29, 33, 34, 35, 37, 39, 42, 57, 58, 59, 60, 61, 64, 65, 79,),
+ /* 11 */
+ array(18, 19, 20, 23, 24, 29, 33, 35, 37, 39, 42, 57, 58, 59, 60, 61, 64, 65, 79,),
+ /* 12 */
+ array(18, 19, 20, 23, 24, 29, 33, 35, 37, 39, 42, 57, 58, 59, 60, 61, 64, 65, 79,),
+ /* 13 */
+ array(18, 19, 20, 23, 24, 29, 33, 35, 37, 39, 42, 57, 58, 59, 60, 61, 64, 65, 79,),
+ /* 14 */
+ array(18, 19, 20, 23, 24, 29, 33, 35, 37, 39, 42, 57, 58, 59, 60, 61, 64, 65, 79,),
+ /* 15 */
+ array(18, 19, 20, 23, 24, 29, 33, 35, 37, 39, 42, 57, 58, 59, 60, 61, 64, 65, 79,),
+ /* 16 */
+ array(18, 19, 20, 23, 24, 29, 33, 35, 37, 39, 42, 57, 58, 59, 60, 61, 64, 65, 79,),
+ /* 17 */
+ array(18, 19, 20, 23, 24, 29, 33, 35, 37, 39, 42, 57, 58, 59, 60, 61, 64, 65, 79,),
+ /* 18 */
+ array(18, 19, 20, 23, 24, 29, 33, 35, 37, 39, 42, 57, 58, 59, 60, 61, 64, 65, 79,),
+ /* 19 */
+ array(18, 19, 20, 23, 24, 29, 33, 35, 37, 39, 42, 57, 58, 59, 60, 61, 64, 65, 79,),
+ /* 20 */
+ array(18, 19, 20, 23, 24, 29, 33, 35, 37, 39, 42, 57, 58, 59, 60, 61, 64, 65, 79,),
+ /* 21 */
+ array(18, 19, 20, 23, 24, 29, 33, 35, 37, 39, 42, 57, 58, 59, 60, 61, 64, 65, 79,),
+ /* 22 */
+ array(18, 19, 20, 23, 24, 29, 33, 35, 37, 39, 42, 57, 58, 59, 60, 61, 64, 65, 79,),
+ /* 23 */
+ array(18, 19, 20, 23, 24, 29, 33, 35, 37, 39, 42, 57, 58, 59, 60, 61, 64, 65, 79,),
+ /* 24 */
+ array(18, 19, 20, 23, 24, 29, 33, 35, 37, 39, 42, 57, 58, 59, 60, 61, 64, 65, 79,),
+ /* 25 */
+ array(18, 19, 20, 23, 24, 29, 33, 35, 37, 39, 42, 57, 58, 59, 60, 61, 64, 65, 79,),
+ /* 26 */
+ array(18, 19, 20, 23, 24, 29, 33, 35, 37, 39, 42, 57, 58, 59, 60, 61, 64, 65, 79,),
+ /* 27 */
+ array(18, 19, 20, 23, 24, 29, 33, 35, 37, 39, 42, 57, 58, 59, 60, 61, 64, 65, 79,),
+ /* 28 */
+ array(18, 19, 20, 23, 24, 29, 33, 35, 37, 39, 42, 57, 58, 59, 60, 61, 64, 65, 79,),
+ /* 29 */
+ array(18, 19, 20, 23, 24, 29, 33, 35, 37, 39, 42, 57, 58, 59, 60, 61, 64, 65, 79,),
+ /* 30 */
+ array(18, 19, 20, 23, 24, 29, 33, 35, 37, 39, 42, 57, 58, 59, 60, 61, 64, 65, 79,),
+ /* 31 */
+ array(18, 19, 20, 23, 24, 29, 33, 35, 37, 39, 42, 57, 58, 59, 60, 61, 64, 65, 79,),
+ /* 32 */
+ array(18, 19, 20, 23, 24, 29, 33, 35, 37, 39, 42, 57, 58, 59, 60, 61, 64, 65, 79,),
+ /* 33 */
+ array(18, 19, 20, 23, 24, 29, 33, 35, 37, 39, 42, 57, 58, 59, 60, 61, 64, 65, 79,),
+ /* 34 */
+ array(18, 19, 20, 23, 24, 29, 33, 35, 37, 39, 42, 57, 58, 59, 60, 61, 64, 65, 79,),
+ /* 35 */
+ array(18, 19, 20, 23, 24, 29, 33, 35, 37, 39, 42, 57, 58, 59, 60, 61, 64, 65, 79,),
+ /* 36 */
+ array(18, 19, 20, 23, 24, 29, 33, 35, 37, 39, 42, 57, 58, 59, 60, 61, 64, 65, 79,),
+ /* 37 */
+ array(18, 19, 20, 23, 24, 29, 33, 35, 37, 39, 42, 57, 58, 59, 60, 61, 64, 65, 79,),
+ /* 38 */
+ array(18, 19, 20, 23, 24, 29, 33, 35, 37, 39, 42, 57, 58, 59, 60, 61, 64, 65, 79,),
+ /* 39 */
+ array(18, 19, 20, 23, 24, 29, 33, 35, 37, 39, 42, 57, 58, 59, 60, 61, 64, 65, 79,),
+ /* 40 */
+ array(18, 19, 20, 23, 24, 29, 33, 35, 37, 39, 42, 57, 58, 59, 60, 61, 64, 65, 79,),
+ /* 41 */
+ array(18, 19, 20, 23, 24, 29, 33, 35, 37, 39, 42, 57, 58, 59, 60, 61, 64, 65, 79,),
+ /* 42 */
+ array(18, 19, 20, 23, 24, 29, 33, 35, 37, 39, 42, 57, 58, 59, 60, 61, 64, 65, 79,),
+ /* 43 */
+ array(18, 19, 20, 23, 24, 29, 33, 35, 37, 39, 42, 57, 58, 59, 60, 61, 64, 65, 79,),
+ /* 44 */
+ array(18, 19, 20, 23, 24, 29, 33, 35, 37, 39, 42, 57, 58, 59, 60, 61, 64, 65, 79,),
+ /* 45 */
+ array(18, 19, 20, 23, 24, 29, 33, 35, 37, 39, 42, 57, 58, 59, 60, 61, 64, 65, 79,),
+ /* 46 */
+ array(18, 19, 20, 23, 24, 29, 33, 35, 37, 39, 42, 57, 58, 59, 60, 61, 64, 79,),
+ /* 47 */
+ array(18, 19, 20, 23, 24, 29, 33, 35, 37, 39, 42, 57, 58, 59, 60, 61, 64, 79,),
+ /* 48 */
+ array(18, 19, 20, 23, 24, 29, 33, 35, 37, 39, 42, 57, 58, 59, 60, 61, 64, 79,),
+ /* 49 */
+ array(18, 19, 20, 23, 24, 29, 33, 35, 37, 39, 42, 57, 58, 59, 60, 61, 64, 79,),
+ /* 50 */
+ array(18, 19, 20, 23, 24, 29, 33, 35, 37, 39, 42, 57, 58, 59, 60, 61, 64, 79,),
+ /* 51 */
+ array(18, 19, 20, 23, 24, 29, 33, 35, 37, 39, 42, 57, 58, 59, 60, 61, 64, 79,),
+ /* 52 */
+ array(18, 19, 20, 23, 24, 29, 33, 35, 37, 39, 42, 57, 58, 59, 60, 61, 64, 79,),
+ /* 53 */
+ array(1, 3, 30, 36, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78,),
+ /* 54 */
+ array(1, 28, 30, 36, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78,),
+ /* 55 */
+ array(1, 30, 36, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78,),
+ /* 56 */
+ array(1, 30, 36, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78,),
+ /* 57 */
+ array(1, 30, 36, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78,),
+ /* 58 */
+ array(1, 30, 36, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78,),
+ /* 59 */
+ array(1, 30, 36, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78,),
+ /* 60 */
+ array(1, 3, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78,),
+ /* 61 */
+ array(1, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 80,),
+ /* 62 */
+ array(1, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78,),
+ /* 63 */
+ array(1, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78,),
+ /* 64 */
+ array(1, 3, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78,),
+ /* 65 */
+ array(1, 3, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78,),
+ /* 66 */
+ array(1, 2, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78,),
+ /* 67 */
+ array(1, 25, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78,),
+ /* 68 */
+ array(1, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78,),
+ /* 69 */
+ array(1, 31, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78,),
+ /* 70 */
+ array(1, 3, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78,),
+ /* 71 */
+ array(1, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78,),
+ /* 72 */
+ array(1, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78,),
+ /* 73 */
+ array(1, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78,),
+ /* 74 */
+ array(1, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78,),
+ /* 75 */
+ array(1, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78,),
+ /* 76 */
+ array(1, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78,),
+ /* 77 */
+ array(1, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78,),
+ /* 78 */
+ array(1, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78,),
+ /* 79 */
+ array(1, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78,),
+ /* 80 */
+ array(1, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78,),
+ /* 81 */
+ array(1, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78,),
+ /* 82 */
+ array(1, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78,),
+ /* 83 */
+ array(1, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78,),
+ /* 84 */
+ array(1, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78,),
+ /* 85 */
+ array(1, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78,),
+ /* 86 */
+ array(1, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78,),
+ /* 87 */
+ array(1, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78,),
+ /* 88 */
+ array(1, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78,),
+ /* 89 */
+ array(1, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78,),
+ /* 90 */
+ array(41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78,),
+ /* 91 */
+ array(41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78,),
+ /* 92 */
+ array(1, 3, 22, 30, 36, 39, 62,),
+ /* 93 */
+ array(1, 3, 30, 36, 55,),
+ /* 94 */
+ array(1, 30, 36,),
+ /* 95 */
+ array(4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 18, 23, 24, 29, 33, 35,),
+ /* 96 */
+ array(11, 18, 23, 24, 29, 33, 35, 79, 80, 81,),
+ /* 97 */
+ array(18, 20, 30, 32, 36,),
+ /* 98 */
+ array(18, 20, 30, 32, 36,),
+ /* 99 */
+ array(18, 20, 30, 36,),
+ /* 100 */
+ array(18, 20, 30, 36,),
+ /* 101 */
+ array(1, 3, 30, 36,),
+ /* 102 */
+ array(1, 3, 30, 36,),
+ /* 103 */
+ array(1, 30, 36,),
+ /* 104 */
+ array(1, 30, 36,),
+ /* 105 */
+ array(19, 20, 64,),
+ /* 106 */
+ array(22, 60, 65,),
+ /* 107 */
+ array(1, 2,),
+ /* 108 */
+ array(19, 39,),
+ /* 109 */
+ array(11, 18, 23, 24, 29, 33, 35, 79, 80, 81,),
+ /* 110 */
+ array(1, 3, 30, 31, 36, 55,),
+ /* 111 */
+ array(1, 3, 30, 36, 55,),
+ /* 112 */
+ array(1, 3, 30, 36, 55,),
+ /* 113 */
+ array(18, 20, 21, 26,),
+ /* 114 */
+ array(18, 20, 21, 63,),
+ /* 115 */
+ array(15, 16, 17,),
+ /* 116 */
+ array(21, 22, 62,),
+ /* 117 */
+ array(21, 22, 62,),
+ /* 118 */
+ array(1, 3, 55,),
+ /* 119 */
+ array(18, 20, 63,),
+ /* 120 */
+ array(18, 20, 21,),
+ /* 121 */
+ array(1, 32, 55,),
+ /* 122 */
+ array(18, 20,),
+ /* 123 */
+ array(18, 20,),
+ /* 124 */
+ array(1, 22,),
+ /* 125 */
+ array(18, 20,),
+ /* 126 */
+ array(18, 20,),
+ /* 127 */
+ array(19, 20,),
+ /* 128 */
+ array(22, 62,),
+ /* 129 */
+ array(18, 20,),
+ /* 130 */
+ array(19, 39,),
+ /* 131 */
+ array(18, 20,),
+ /* 132 */
+ array(19, 39,),
+ /* 133 */
+ array(1, 55,),
+ /* 134 */
+ array(19, 20,),
+ /* 135 */
+ array(18, 20,),
+ /* 136 */
+ array(18, 20,),
+ /* 137 */
+ array(30, 36,),
+ /* 138 */
+ array(18, 20,),
+ /* 139 */
+ array(30, 36,),
+ /* 140 */
+ array(30, 36,),
+ /* 141 */
+ array(18, 20,),
+ /* 142 */
+ array(18, 20,),
+ /* 143 */
+ array(18, 20,),
+ /* 144 */
+ array(18, 20,),
+ /* 145 */
+ array(18, 20,),
+ /* 146 */
+ array(1,),
+ /* 147 */
+ array(22,),
+ /* 148 */
+ array(1,),
+ /* 149 */
+ array(1,),
+ /* 150 */
+ array(22,),
+ /* 151 */
+ array(1,),
+ /* 152 */
+ array(1,),
+ /* 153 */
+ array(1,),
+ /* 154 */
+ array(1,),
+ /* 155 */
+ array(1,),
+ /* 156 */
+ array(1,),
+ /* 157 */
+ array(),
+ /* 158 */
+ array(18, 20, 63,),
+ /* 159 */
+ array(18, 19, 20,),
+ /* 160 */
+ array(30, 36,),
+ /* 161 */
+ array(30, 36,),
+ /* 162 */
+ array(30, 36,),
+ /* 163 */
+ array(30, 36,),
+ /* 164 */
+ array(30, 36,),
+ /* 165 */
+ array(30, 36,),
+ /* 166 */
+ array(30, 36,),
+ /* 167 */
+ array(30, 36,),
+ /* 168 */
+ array(60, 65,),
+ /* 169 */
+ array(60, 65,),
+ /* 170 */
+ array(60, 65,),
+ /* 171 */
+ array(60, 65,),
+ /* 172 */
+ array(60, 65,),
+ /* 173 */
+ array(30, 36,),
+ /* 174 */
+ array(30, 36,),
+ /* 175 */
+ array(30, 36,),
+ /* 176 */
+ array(30, 36,),
+ /* 177 */
+ array(30, 36,),
+ /* 178 */
+ array(30, 36,),
+ /* 179 */
+ array(60, 65,),
+ /* 180 */
+ array(60, 65,),
+ /* 181 */
+ array(60, 65,),
+ /* 182 */
+ array(18, 39,),
+ /* 183 */
+ array(30, 36,),
+ /* 184 */
+ array(30, 36,),
+ /* 185 */
+ array(30, 36,),
+ /* 186 */
+ array(60, 65,),
+ /* 187 */
+ array(30, 36,),
+ /* 188 */
+ array(30, 36,),
+ /* 189 */
+ array(30, 36,),
+ /* 190 */
+ array(16,),
+ /* 191 */
+ array(22,),
+ /* 192 */
+ array(22,),
+ /* 193 */
+ array(1,),
+ /* 194 */
+ array(30,),
+ /* 195 */
+ array(30,),
+ /* 196 */
+ array(2,),
+ /* 197 */
+ array(22,),
+ /* 198 */
+ array(1,),
+ /* 199 */
+ array(39,),
+ /* 200 */
+ array(1,),
+ /* 201 */
+ array(1,),
+ /* 202 */
+ array(2,),
+ /* 203 */
+ array(1,),
+ /* 204 */
+ array(),
+ /* 205 */
+ array(),
+ /* 206 */
+ array(),
+ /* 207 */
+ array(),
+ /* 208 */
+ array(),
+ /* 209 */
+ array(3, 25, 27, 28, 30, 31, 36, 38, 39, 40, 55, 62, 66, 80,),
+ /* 210 */
+ array(3, 21, 30, 36, 39, 62,),
+ /* 211 */
+ array(39, 60, 62, 66,),
+ /* 212 */
+ array(18, 19, 20, 37,),
+ /* 213 */
+ array(32, 39, 62,),
+ /* 214 */
+ array(26, 80,),
+ /* 215 */
+ array(38, 40,),
+ /* 216 */
+ array(38, 66,),
+ /* 217 */
+ array(38, 40,),
+ /* 218 */
+ array(25, 38,),
+ /* 219 */
+ array(21, 60,),
+ /* 220 */
+ array(3, 26,),
+ /* 221 */
+ array(38, 40,),
+ /* 222 */
+ array(39, 62,),
+ /* 223 */
+ array(2, 21,),
+ /* 224 */
+ array(39, 62,),
+ /* 225 */
+ array(20, 63,),
+ /* 226 */
+ array(20,),
+ /* 227 */
+ array(3,),
+ /* 228 */
+ array(20,),
+ /* 229 */
+ array(20,),
+ /* 230 */
+ array(20,),
+ /* 231 */
+ array(2,),
+ /* 232 */
+ array(19,),
+ /* 233 */
+ array(20,),
+ /* 234 */
+ array(19,),
+ /* 235 */
+ array(3,),
+ /* 236 */
+ array(20,),
+ /* 237 */
+ array(37,),
+ /* 238 */
+ array(37,),
+ /* 239 */
+ array(66,),
+ /* 240 */
+ array(20,),
+ /* 241 */
+ array(20,),
+ /* 242 */
+ array(3,),
+ /* 243 */
+ array(56,),
+ /* 244 */
+ array(39,),
+ /* 245 */
+ array(2,),
+ /* 246 */
+ array(60,),
+ /* 247 */
+ array(39,),
+ /* 248 */
+ array(19,),
+ /* 249 */
+ array(40,),
+ /* 250 */
+ array(20,),
+ /* 251 */
+ array(26,),
+ /* 252 */
+ array(19,),
+ /* 253 */
+ array(64,),
+ /* 254 */
+ array(20,),
+ /* 255 */
+ array(19,),
+ /* 256 */
+ array(20,),
+ /* 257 */
+ array(64,),
+ /* 258 */
+ array(27,),
+ /* 259 */
+ array(21,),
+ /* 260 */
+ array(),
+ /* 261 */
+ array(),
+ /* 262 */
+ array(),
+ /* 263 */
+ array(),
+ /* 264 */
+ array(),
+ /* 265 */
+ array(),
+ /* 266 */
+ array(),
+ /* 267 */
+ array(),
+ /* 268 */
+ array(),
+ /* 269 */
+ array(),
+ /* 270 */
+ array(),
+ /* 271 */
+ array(),
+ /* 272 */
+ array(),
+ /* 273 */
+ array(),
+ /* 274 */
+ array(),
+ /* 275 */
+ array(),
+ /* 276 */
+ array(),
+ /* 277 */
+ array(),
+ /* 278 */
+ array(),
+ /* 279 */
+ array(),
+ /* 280 */
+ array(),
+ /* 281 */
+ array(),
+ /* 282 */
+ array(),
+ /* 283 */
+ array(),
+ /* 284 */
+ array(),
+ /* 285 */
+ array(),
+ /* 286 */
+ array(),
+ /* 287 */
+ array(),
+ /* 288 */
+ array(),
+ /* 289 */
+ array(),
+ /* 290 */
+ array(),
+ /* 291 */
+ array(),
+ /* 292 */
+ array(),
+ /* 293 */
+ array(),
+ /* 294 */
+ array(),
+ /* 295 */
+ array(),
+ /* 296 */
+ array(),
+ /* 297 */
+ array(),
+ /* 298 */
+ array(),
+ /* 299 */
+ array(),
+ /* 300 */
+ array(),
+ /* 301 */
+ array(),
+ /* 302 */
+ array(),
+ /* 303 */
+ array(),
+ /* 304 */
+ array(),
+ /* 305 */
+ array(),
+ /* 306 */
+ array(),
+ /* 307 */
+ array(),
+ /* 308 */
+ array(),
+ /* 309 */
+ array(),
+ /* 310 */
+ array(),
+ /* 311 */
+ array(),
+ /* 312 */
+ array(),
+ /* 313 */
+ array(),
+ /* 314 */
+ array(),
+ /* 315 */
+ array(),
+ /* 316 */
+ array(),
+ /* 317 */
+ array(),
+ /* 318 */
+ array(),
+ /* 319 */
+ array(),
+ /* 320 */
+ array(),
+ /* 321 */
+ array(),
+ /* 322 */
+ array(),
+ /* 323 */
+ array(),
+ /* 324 */
+ array(),
+ /* 325 */
+ array(),
+ /* 326 */
+ array(),
+ /* 327 */
+ array(),
+ /* 328 */
+ array(),
+ /* 329 */
+ array(),
+ /* 330 */
+ array(),
+ /* 331 */
+ array(),
+ /* 332 */
+ array(),
+ /* 333 */
+ array(),
+ /* 334 */
+ array(),
+ /* 335 */
+ array(),
+ /* 336 */
+ array(),
+ /* 337 */
+ array(),
+ /* 338 */
+ array(),
+ /* 339 */
+ array(),
+ /* 340 */
+ array(),
+ /* 341 */
+ array(),
+ /* 342 */
+ array(),
+ /* 343 */
+ array(),
+ /* 344 */
+ array(),
+ /* 345 */
+ array(),
+ /* 346 */
+ array(),
+ /* 347 */
+ array(),
+ /* 348 */
+ array(),
+ /* 349 */
+ array(),
+ /* 350 */
+ array(),
+ /* 351 */
+ array(),
+ /* 352 */
+ array(),
+ /* 353 */
+ array(),
+ /* 354 */
+ array(),
+ /* 355 */
+ array(),
+ /* 356 */
+ array(),
+ /* 357 */
+ array(),
+ );
static public $yy_default = array(
- /* 0 */ 392, 574, 591, 591, 545, 591, 545, 545, 591, 591,
- /* 10 */ 591, 591, 591, 591, 591, 591, 591, 591, 591, 591,
- /* 20 */ 591, 591, 591, 591, 591, 591, 591, 591, 591, 591,
- /* 30 */ 591, 591, 591, 591, 591, 591, 591, 591, 591, 591,
- /* 40 */ 591, 591, 591, 591, 591, 591, 591, 591, 591, 591,
- /* 50 */ 591, 591, 591, 591, 591, 453, 591, 453, 453, 453,
- /* 60 */ 591, 591, 458, 591, 591, 591, 591, 591, 591, 591,
- /* 70 */ 591, 544, 575, 458, 576, 460, 463, 464, 435, 477,
- /* 80 */ 478, 479, 486, 487, 577, 483, 482, 543, 455, 474,
- /* 90 */ 490, 491, 502, 466, 453, 389, 591, 453, 453, 473,
- /* 100 */ 453, 510, 453, 591, 453, 591, 453, 557, 591, 591,
- /* 110 */ 591, 466, 466, 466, 518, 591, 591, 466, 591, 518,
- /* 120 */ 518, 466, 511, 511, 591, 591, 591, 591, 591, 591,
- /* 130 */ 591, 591, 511, 591, 591, 591, 591, 591, 518, 591,
- /* 140 */ 466, 591, 591, 591, 453, 591, 453, 554, 494, 469,
- /* 150 */ 489, 476, 495, 470, 493, 511, 471, 552, 591, 591,
- /* 160 */ 591, 591, 591, 591, 591, 591, 591, 519, 591, 591,
- /* 170 */ 591, 591, 591, 591, 591, 591, 591, 591, 591, 591,
- /* 180 */ 591, 591, 536, 535, 591, 538, 516, 518, 537, 408,
- /* 190 */ 558, 555, 518, 473, 510, 547, 532, 546, 590, 590,
- /* 200 */ 551, 551, 518, 551, 518, 468, 502, 502, 591, 502,
- /* 210 */ 591, 591, 591, 498, 488, 492, 530, 591, 502, 591,
- /* 220 */ 591, 492, 530, 591, 591, 591, 500, 498, 492, 530,
- /* 230 */ 591, 591, 591, 530, 591, 591, 591, 591, 591, 461,
- /* 240 */ 591, 591, 591, 591, 591, 591, 556, 591, 591, 591,
- /* 250 */ 504, 591, 591, 465, 515, 514, 539, 572, 433, 418,
- /* 260 */ 390, 432, 438, 573, 437, 526, 436, 541, 540, 523,
- /* 270 */ 553, 531, 542, 442, 504, 443, 571, 589, 524, 454,
- /* 280 */ 527, 525, 462, 485, 530, 529, 444, 445, 550, 441,
- /* 290 */ 440, 431, 430, 434, 452, 439, 446, 447, 499, 497,
- /* 300 */ 501, 507, 467, 496, 450, 448, 548, 549, 449, 451,
- /* 310 */ 417, 399, 398, 400, 401, 402, 397, 396, 391, 393,
- /* 320 */ 394, 395, 403, 404, 413, 412, 414, 415, 416, 411,
- /* 330 */ 410, 405, 406, 407, 409, 468, 512, 423, 422, 424,
- /* 340 */ 533, 425, 421, 586, 570, 569, 472, 419, 420, 426,
- /* 350 */ 427, 582, 583, 584, 587, 588, 580, 579, 429, 428,
- /* 360 */ 585, 578, 568, 567, 506, 505, 508, 475, 509, 503,
- /* 370 */ 522, 517, 520, 528, 521, 513, 534, 563, 562, 564,
- /* 380 */ 565, 566, 561, 560, 480, 481, 484, 559, 581,
-);
- const YYNOCODE = 124;
- const YYSTACKDEPTH = 100;
- const YYNSTATE = 389;
- const YYNRULE = 202;
- const YYERRORSYMBOL = 81;
+ /* 0 */
+ 361, 541, 558, 558, 512, 558, 512, 512, 558, 558,
+ /* 10 */
+ 558, 558, 558, 558, 558, 558, 558, 558, 558, 558,
+ /* 20 */
+ 558, 558, 558, 558, 558, 558, 558, 558, 558, 558,
+ /* 30 */
+ 558, 558, 558, 558, 558, 558, 558, 558, 558, 558,
+ /* 40 */
+ 558, 558, 558, 558, 558, 558, 558, 558, 558, 558,
+ /* 50 */
+ 558, 558, 558, 558, 418, 418, 418, 418, 387, 395,
+ /* 60 */
+ 558, 558, 558, 558, 558, 558, 558, 558, 558, 423,
+ /* 70 */
+ 558, 428, 425, 510, 423, 429, 511, 543, 444, 542,
+ /* 80 */
+ 447, 448, 443, 442, 439, 452, 544, 420, 451, 400,
+ /* 90 */
+ 456, 455, 467, 431, 418, 358, 558, 418, 418, 418,
+ /* 100 */
+ 418, 438, 475, 418, 418, 558, 524, 409, 558, 558,
+ /* 110 */
+ 431, 431, 431, 558, 485, 558, 476, 476, 431, 485,
+ /* 120 */
+ 485, 431, 558, 558, 412, 558, 485, 558, 476, 558,
+ /* 130 */
+ 558, 558, 558, 431, 558, 558, 558, 397, 558, 418,
+ /* 140 */
+ 418, 558, 558, 558, 558, 558, 441, 476, 414, 434,
+ /* 150 */
+ 521, 436, 435, 460, 459, 458, 454, 519, 486, 558,
+ /* 160 */
+ 385, 384, 405, 404, 389, 406, 399, 388, 505, 483,
+ /* 170 */
+ 482, 481, 480, 407, 408, 383, 398, 403, 402, 504,
+ /* 180 */
+ 479, 502, 485, 393, 392, 390, 503, 382, 396, 394,
+ /* 190 */
+ 378, 525, 522, 475, 557, 557, 513, 499, 438, 485,
+ /* 200 */
+ 413, 410, 514, 415, 518, 485, 518, 485, 518, 433,
+ /* 210 */
+ 467, 467, 558, 467, 457, 558, 558, 558, 558, 463,
+ /* 220 */
+ 457, 558, 453, 497, 467, 558, 558, 558, 558, 558,
+ /* 230 */
+ 558, 497, 558, 558, 558, 558, 558, 465, 558, 558,
+ /* 240 */
+ 558, 558, 558, 469, 497, 497, 463, 523, 558, 558,
+ /* 250 */
+ 558, 457, 558, 558, 558, 558, 558, 558, 426, 558,
+ /* 260 */
+ 477, 520, 495, 507, 490, 508, 487, 374, 498, 484,
+ /* 270 */
+ 556, 364, 363, 365, 461, 366, 472, 466, 360, 359,
+ /* 280 */
+ 462, 362, 464, 367, 430, 401, 469, 372, 373, 419,
+ /* 290 */
+ 432, 427, 368, 369, 370, 371, 433, 470, 445, 497,
+ /* 300 */
+ 446, 496, 450, 449, 500, 517, 545, 474, 552, 411,
+ /* 310 */
+ 501, 478, 553, 526, 534, 533, 535, 536, 437, 537,
+ /* 320 */
+ 532, 417, 528, 527, 529, 530, 531, 546, 547, 515,
+ /* 330 */
+ 506, 375, 376, 509, 377, 516, 468, 494, 489, 492,
+ /* 340 */
+ 491, 493, 379, 380, 555, 548, 554, 551, 550, 549,
+ /* 350 */
+ 440, 416, 473, 471, 539, 540, 538, 488,
+ );
+ const YYNOCODE = 125;
+ const YYSTACKDEPTH = 500;
+ const YYNSTATE = 358;
+ const YYNRULE = 200;
+ const YYERRORSYMBOL = 82;
const YYERRSYMDT = 'yy0';
const YYFALLBACK = 0;
- static public $yyFallback = array(
- );
- static function Trace($TraceFILE, $zTracePrompt)
+ public static $yyFallback = array();
+
+ public function Trace($TraceFILE, $zTracePrompt)
{
if (!$TraceFILE) {
$zTracePrompt = 0;
} elseif (!$zTracePrompt) {
$TraceFILE = 0;
}
- self::$yyTraceFILE = $TraceFILE;
- self::$yyTracePrompt = $zTracePrompt;
+ $this->yyTraceFILE = $TraceFILE;
+ $this->yyTracePrompt = $zTracePrompt;
}
- static function PrintTrace()
+ public function PrintTrace()
{
- self::$yyTraceFILE = fopen('php://output', 'w');
- self::$yyTracePrompt = '<br>';
+ $this->yyTraceFILE = fopen('php://output', 'w');
+ $this->yyTracePrompt = '<br>';
}
- static public $yyTraceFILE;
- static public $yyTracePrompt;
+ public $yyTraceFILE;
+ public $yyTracePrompt;
public $yyidx; /* Index of top element in stack */
public $yyerrcnt; /* Shifts left before out of the error */
public $yystack = array(); /* The parser's stack */
public $yyTokenName = array(
- '$', 'VERT', 'COLON', 'COMMENT',
- 'PHPSTARTTAG', 'PHPENDTAG', 'ASPSTARTTAG', 'ASPENDTAG',
- 'FAKEPHPSTARTTAG', 'XMLTAG', 'TEXT', 'STRIPON',
- 'STRIPOFF', 'LITERALSTART', 'LITERALEND', 'LITERAL',
- 'LDEL', 'RDEL', 'DOLLAR', 'ID',
- 'EQUAL', 'PTR', 'LDELIF', 'LDELFOR',
- 'SEMICOLON', 'INCDEC', 'TO', 'STEP',
- 'LDELFOREACH', 'SPACE', 'AS', 'APTR',
- 'LDELSETFILTER', 'SMARTYBLOCKCHILD', 'LDELSLASH', 'ATTR',
- 'INTEGER', 'COMMA', 'OPENP', 'CLOSEP',
- 'MATH', 'UNIMATH', 'ANDSYM', 'ISIN',
- 'ISDIVBY', 'ISNOTDIVBY', 'ISEVEN', 'ISNOTEVEN',
- 'ISEVENBY', 'ISNOTEVENBY', 'ISODD', 'ISNOTODD',
- 'ISODDBY', 'ISNOTODDBY', 'INSTANCEOF', 'QMARK',
- 'NOT', 'TYPECAST', 'HEX', 'DOT',
- 'SINGLEQUOTESTRING', 'DOUBLECOLON', 'AT', 'HATCH',
- 'OPENB', 'CLOSEB', 'EQUALS', 'NOTEQUALS',
- 'GREATERTHAN', 'LESSTHAN', 'GREATEREQUAL', 'LESSEQUAL',
- 'IDENTITY', 'NONEIDENTITY', 'MOD', 'LAND',
- 'LOR', 'LXOR', 'QUOTE', 'BACKTICK',
- 'DOLLARID', 'error', 'start', 'template',
- 'template_element', 'smartytag', 'literal', 'literal_elements',
- 'literal_element', 'value', 'modifierlist', 'attributes',
- 'expr', 'varindexed', 'statement', 'statements',
- 'optspace', 'varvar', 'foraction', 'modparameters',
- 'attribute', 'ternary', 'array', 'ifcond',
- 'lop', 'variable', 'function', 'doublequoted_with_quotes',
- 'static_class_access', 'object', 'arrayindex', 'indexdef',
- 'varvarele', 'objectchain', 'objectelement', 'method',
- 'params', 'modifier', 'modparameter', 'arrayelements',
- 'arrayelement', 'doublequoted', 'doublequotedcontent',
+ '$', 'VERT', 'COLON', 'RDEL',
+ 'COMMENT', 'PHPSTARTTAG', 'PHPENDTAG', 'PHPENDSCRIPT',
+ 'ASPSTARTTAG', 'ASPENDTAG', 'XMLTAG', 'TEXT',
+ 'STRIPON', 'STRIPOFF', 'BLOCKSOURCE', 'LITERALSTART',
+ 'LITERALEND', 'LITERAL', 'LDEL', 'DOLLAR',
+ 'ID', 'EQUAL', 'PTR', 'LDELIF',
+ 'LDELFOR', 'SEMICOLON', 'INCDEC', 'TO',
+ 'STEP', 'LDELFOREACH', 'SPACE', 'AS',
+ 'APTR', 'LDELSETFILTER', 'SMARTYBLOCKCHILDPARENT', 'LDELSLASH',
+ 'ATTR', 'INTEGER', 'COMMA', 'OPENP',
+ 'CLOSEP', 'MATH', 'UNIMATH', 'ANDSYM',
+ 'ISIN', 'ISDIVBY', 'ISNOTDIVBY', 'ISEVEN',
+ 'ISNOTEVEN', 'ISEVENBY', 'ISNOTEVENBY', 'ISODD',
+ 'ISNOTODD', 'ISODDBY', 'ISNOTODDBY', 'INSTANCEOF',
+ 'QMARK', 'NOT', 'TYPECAST', 'HEX',
+ 'DOT', 'SINGLEQUOTESTRING', 'DOUBLECOLON', 'AT',
+ 'HATCH', 'OPENB', 'CLOSEB', 'EQUALS',
+ 'NOTEQUALS', 'GREATERTHAN', 'LESSTHAN', 'GREATEREQUAL',
+ 'LESSEQUAL', 'IDENTITY', 'NONEIDENTITY', 'MOD',
+ 'LAND', 'LOR', 'LXOR', 'QUOTE',
+ 'BACKTICK', 'DOLLARID', 'error', 'start',
+ 'template', 'template_element', 'smartytag', 'literal',
+ 'literal_elements', 'literal_element', 'value', 'modifierlist',
+ 'attributes', 'expr', 'varindexed', 'statement',
+ 'statements', 'optspace', 'varvar', 'foraction',
+ 'modparameters', 'attribute', 'ternary', 'array',
+ 'ifcond', 'lop', 'variable', 'function',
+ 'doublequoted_with_quotes', 'static_class_access', 'object', 'arrayindex',
+ 'indexdef', 'varvarele', 'objectchain', 'objectelement',
+ 'method', 'params', 'modifier', 'modparameter',
+ 'arrayelements', 'arrayelement', 'doublequoted', 'doublequotedcontent',
);
- static public $yyRuleName = array(
- /* 0 */ "start ::= template",
- /* 1 */ "template ::= template_element",
- /* 2 */ "template ::= template template_element",
- /* 3 */ "template ::=",
- /* 4 */ "template_element ::= smartytag",
- /* 5 */ "template_element ::= COMMENT",
- /* 6 */ "template_element ::= literal",
- /* 7 */ "template_element ::= PHPSTARTTAG",
- /* 8 */ "template_element ::= PHPENDTAG",
- /* 9 */ "template_element ::= ASPSTARTTAG",
- /* 10 */ "template_element ::= ASPENDTAG",
- /* 11 */ "template_element ::= FAKEPHPSTARTTAG",
- /* 12 */ "template_element ::= XMLTAG",
- /* 13 */ "template_element ::= TEXT",
- /* 14 */ "template_element ::= STRIPON",
- /* 15 */ "template_element ::= STRIPOFF",
- /* 16 */ "literal ::= LITERALSTART LITERALEND",
- /* 17 */ "literal ::= LITERALSTART literal_elements LITERALEND",
- /* 18 */ "literal_elements ::= literal_elements literal_element",
- /* 19 */ "literal_elements ::=",
- /* 20 */ "literal_element ::= literal",
- /* 21 */ "literal_element ::= LITERAL",
- /* 22 */ "literal_element ::= PHPSTARTTAG",
- /* 23 */ "literal_element ::= FAKEPHPSTARTTAG",
- /* 24 */ "literal_element ::= PHPENDTAG",
- /* 25 */ "literal_element ::= ASPSTARTTAG",
- /* 26 */ "literal_element ::= ASPENDTAG",
- /* 27 */ "smartytag ::= LDEL value RDEL",
- /* 28 */ "smartytag ::= LDEL value modifierlist attributes RDEL",
- /* 29 */ "smartytag ::= LDEL value attributes RDEL",
- /* 30 */ "smartytag ::= LDEL expr modifierlist attributes RDEL",
- /* 31 */ "smartytag ::= LDEL expr attributes RDEL",
- /* 32 */ "smartytag ::= LDEL DOLLAR ID EQUAL value RDEL",
- /* 33 */ "smartytag ::= LDEL DOLLAR ID EQUAL expr RDEL",
- /* 34 */ "smartytag ::= LDEL DOLLAR ID EQUAL expr attributes RDEL",
- /* 35 */ "smartytag ::= LDEL varindexed EQUAL expr attributes RDEL",
- /* 36 */ "smartytag ::= LDEL ID attributes RDEL",
- /* 37 */ "smartytag ::= LDEL ID RDEL",
- /* 38 */ "smartytag ::= LDEL ID PTR ID attributes RDEL",
- /* 39 */ "smartytag ::= LDEL ID modifierlist attributes RDEL",
- /* 40 */ "smartytag ::= LDEL ID PTR ID modifierlist attributes RDEL",
- /* 41 */ "smartytag ::= LDELIF expr RDEL",
- /* 42 */ "smartytag ::= LDELIF expr attributes RDEL",
- /* 43 */ "smartytag ::= LDELIF statement RDEL",
- /* 44 */ "smartytag ::= LDELIF statement attributes RDEL",
- /* 45 */ "smartytag ::= LDELFOR statements SEMICOLON optspace expr SEMICOLON optspace DOLLAR varvar foraction attributes RDEL",
- /* 46 */ "foraction ::= EQUAL expr",
- /* 47 */ "foraction ::= INCDEC",
- /* 48 */ "smartytag ::= LDELFOR statement TO expr attributes RDEL",
- /* 49 */ "smartytag ::= LDELFOR statement TO expr STEP expr attributes RDEL",
- /* 50 */ "smartytag ::= LDELFOREACH attributes RDEL",
- /* 51 */ "smartytag ::= LDELFOREACH SPACE value AS DOLLAR varvar attributes RDEL",
- /* 52 */ "smartytag ::= LDELFOREACH SPACE value AS DOLLAR varvar APTR DOLLAR varvar attributes RDEL",
- /* 53 */ "smartytag ::= LDELFOREACH SPACE expr AS DOLLAR varvar attributes RDEL",
- /* 54 */ "smartytag ::= LDELFOREACH SPACE expr AS DOLLAR varvar APTR DOLLAR varvar attributes RDEL",
- /* 55 */ "smartytag ::= LDELSETFILTER ID modparameters RDEL",
- /* 56 */ "smartytag ::= LDELSETFILTER ID modparameters modifierlist RDEL",
- /* 57 */ "smartytag ::= SMARTYBLOCKCHILD",
- /* 58 */ "smartytag ::= LDELSLASH ID RDEL",
- /* 59 */ "smartytag ::= LDELSLASH ID modifierlist RDEL",
- /* 60 */ "smartytag ::= LDELSLASH ID PTR ID RDEL",
- /* 61 */ "smartytag ::= LDELSLASH ID PTR ID modifierlist RDEL",
- /* 62 */ "attributes ::= attributes attribute",
- /* 63 */ "attributes ::= attribute",
- /* 64 */ "attributes ::=",
- /* 65 */ "attribute ::= SPACE ID EQUAL ID",
- /* 66 */ "attribute ::= ATTR expr",
- /* 67 */ "attribute ::= ATTR value",
- /* 68 */ "attribute ::= SPACE ID",
- /* 69 */ "attribute ::= SPACE expr",
- /* 70 */ "attribute ::= SPACE value",
- /* 71 */ "attribute ::= SPACE INTEGER EQUAL expr",
- /* 72 */ "statements ::= statement",
- /* 73 */ "statements ::= statements COMMA statement",
- /* 74 */ "statement ::= DOLLAR varvar EQUAL expr",
- /* 75 */ "statement ::= varindexed EQUAL expr",
- /* 76 */ "statement ::= OPENP statement CLOSEP",
- /* 77 */ "expr ::= value",
- /* 78 */ "expr ::= ternary",
- /* 79 */ "expr ::= DOLLAR ID COLON ID",
- /* 80 */ "expr ::= expr MATH value",
- /* 81 */ "expr ::= expr UNIMATH value",
- /* 82 */ "expr ::= expr ANDSYM value",
- /* 83 */ "expr ::= array",
- /* 84 */ "expr ::= expr modifierlist",
- /* 85 */ "expr ::= expr ifcond expr",
- /* 86 */ "expr ::= expr ISIN array",
- /* 87 */ "expr ::= expr ISIN value",
- /* 88 */ "expr ::= expr lop expr",
- /* 89 */ "expr ::= expr ISDIVBY expr",
- /* 90 */ "expr ::= expr ISNOTDIVBY expr",
- /* 91 */ "expr ::= expr ISEVEN",
- /* 92 */ "expr ::= expr ISNOTEVEN",
- /* 93 */ "expr ::= expr ISEVENBY expr",
- /* 94 */ "expr ::= expr ISNOTEVENBY expr",
- /* 95 */ "expr ::= expr ISODD",
- /* 96 */ "expr ::= expr ISNOTODD",
- /* 97 */ "expr ::= expr ISODDBY expr",
- /* 98 */ "expr ::= expr ISNOTODDBY expr",
- /* 99 */ "expr ::= value INSTANCEOF ID",
- /* 100 */ "expr ::= value INSTANCEOF value",
- /* 101 */ "ternary ::= OPENP expr CLOSEP QMARK DOLLAR ID COLON expr",
- /* 102 */ "ternary ::= OPENP expr CLOSEP QMARK expr COLON expr",
- /* 103 */ "value ::= variable",
- /* 104 */ "value ::= UNIMATH value",
- /* 105 */ "value ::= NOT value",
- /* 106 */ "value ::= TYPECAST value",
- /* 107 */ "value ::= variable INCDEC",
- /* 108 */ "value ::= HEX",
- /* 109 */ "value ::= INTEGER",
- /* 110 */ "value ::= INTEGER DOT INTEGER",
- /* 111 */ "value ::= INTEGER DOT",
- /* 112 */ "value ::= DOT INTEGER",
- /* 113 */ "value ::= ID",
- /* 114 */ "value ::= function",
- /* 115 */ "value ::= OPENP expr CLOSEP",
- /* 116 */ "value ::= SINGLEQUOTESTRING",
- /* 117 */ "value ::= doublequoted_with_quotes",
- /* 118 */ "value ::= ID DOUBLECOLON static_class_access",
- /* 119 */ "value ::= varindexed DOUBLECOLON static_class_access",
- /* 120 */ "value ::= smartytag",
- /* 121 */ "value ::= value modifierlist",
- /* 122 */ "variable ::= varindexed",
- /* 123 */ "variable ::= DOLLAR varvar AT ID",
- /* 124 */ "variable ::= object",
- /* 125 */ "variable ::= HATCH ID HATCH",
- /* 126 */ "variable ::= HATCH variable HATCH",
- /* 127 */ "varindexed ::= DOLLAR varvar arrayindex",
- /* 128 */ "arrayindex ::= arrayindex indexdef",
- /* 129 */ "arrayindex ::=",
- /* 130 */ "indexdef ::= DOT DOLLAR varvar",
- /* 131 */ "indexdef ::= DOT DOLLAR varvar AT ID",
- /* 132 */ "indexdef ::= DOT ID",
- /* 133 */ "indexdef ::= DOT INTEGER",
- /* 134 */ "indexdef ::= DOT LDEL expr RDEL",
- /* 135 */ "indexdef ::= OPENB ID CLOSEB",
- /* 136 */ "indexdef ::= OPENB ID DOT ID CLOSEB",
- /* 137 */ "indexdef ::= OPENB expr CLOSEB",
- /* 138 */ "indexdef ::= OPENB CLOSEB",
- /* 139 */ "varvar ::= varvarele",
- /* 140 */ "varvar ::= varvar varvarele",
- /* 141 */ "varvarele ::= ID",
- /* 142 */ "varvarele ::= LDEL expr RDEL",
- /* 143 */ "object ::= varindexed objectchain",
- /* 144 */ "objectchain ::= objectelement",
- /* 145 */ "objectchain ::= objectchain objectelement",
- /* 146 */ "objectelement ::= PTR ID arrayindex",
- /* 147 */ "objectelement ::= PTR DOLLAR varvar arrayindex",
- /* 148 */ "objectelement ::= PTR LDEL expr RDEL arrayindex",
- /* 149 */ "objectelement ::= PTR ID LDEL expr RDEL arrayindex",
- /* 150 */ "objectelement ::= PTR method",
- /* 151 */ "function ::= ID OPENP params CLOSEP",
- /* 152 */ "method ::= ID OPENP params CLOSEP",
- /* 153 */ "method ::= DOLLAR ID OPENP params CLOSEP",
- /* 154 */ "params ::= params COMMA expr",
- /* 155 */ "params ::= expr",
- /* 156 */ "params ::=",
- /* 157 */ "modifierlist ::= modifierlist modifier modparameters",
- /* 158 */ "modifierlist ::= modifier modparameters",
- /* 159 */ "modifier ::= VERT AT ID",
- /* 160 */ "modifier ::= VERT ID",
- /* 161 */ "modparameters ::= modparameters modparameter",
- /* 162 */ "modparameters ::=",
- /* 163 */ "modparameter ::= COLON value",
- /* 164 */ "modparameter ::= COLON array",
- /* 165 */ "static_class_access ::= method",
- /* 166 */ "static_class_access ::= method objectchain",
- /* 167 */ "static_class_access ::= ID",
- /* 168 */ "static_class_access ::= DOLLAR ID arrayindex",
- /* 169 */ "static_class_access ::= DOLLAR ID arrayindex objectchain",
- /* 170 */ "ifcond ::= EQUALS",
- /* 171 */ "ifcond ::= NOTEQUALS",
- /* 172 */ "ifcond ::= GREATERTHAN",
- /* 173 */ "ifcond ::= LESSTHAN",
- /* 174 */ "ifcond ::= GREATEREQUAL",
- /* 175 */ "ifcond ::= LESSEQUAL",
- /* 176 */ "ifcond ::= IDENTITY",
- /* 177 */ "ifcond ::= NONEIDENTITY",
- /* 178 */ "ifcond ::= MOD",
- /* 179 */ "lop ::= LAND",
- /* 180 */ "lop ::= LOR",
- /* 181 */ "lop ::= LXOR",
- /* 182 */ "array ::= OPENB arrayelements CLOSEB",
- /* 183 */ "arrayelements ::= arrayelement",
- /* 184 */ "arrayelements ::= arrayelements COMMA arrayelement",
- /* 185 */ "arrayelements ::=",
- /* 186 */ "arrayelement ::= value APTR expr",
- /* 187 */ "arrayelement ::= ID APTR expr",
- /* 188 */ "arrayelement ::= expr",
- /* 189 */ "doublequoted_with_quotes ::= QUOTE QUOTE",
- /* 190 */ "doublequoted_with_quotes ::= QUOTE doublequoted QUOTE",
- /* 191 */ "doublequoted ::= doublequoted doublequotedcontent",
- /* 192 */ "doublequoted ::= doublequotedcontent",
- /* 193 */ "doublequotedcontent ::= BACKTICK variable BACKTICK",
- /* 194 */ "doublequotedcontent ::= BACKTICK expr BACKTICK",
- /* 195 */ "doublequotedcontent ::= DOLLARID",
- /* 196 */ "doublequotedcontent ::= LDEL variable RDEL",
- /* 197 */ "doublequotedcontent ::= LDEL expr RDEL",
- /* 198 */ "doublequotedcontent ::= smartytag",
- /* 199 */ "doublequotedcontent ::= TEXT",
- /* 200 */ "optspace ::= SPACE",
- /* 201 */ "optspace ::=",
+ public static $yyRuleName = array(
+ /* 0 */
+ "start ::= template",
+ /* 1 */
+ "template ::= template_element",
+ /* 2 */
+ "template ::= template template_element",
+ /* 3 */
+ "template ::=",
+ /* 4 */
+ "template_element ::= smartytag RDEL",
+ /* 5 */
+ "template_element ::= COMMENT",
+ /* 6 */
+ "template_element ::= literal",
+ /* 7 */
+ "template_element ::= PHPSTARTTAG",
+ /* 8 */
+ "template_element ::= PHPENDTAG",
+ /* 9 */
+ "template_element ::= PHPENDSCRIPT",
+ /* 10 */
+ "template_element ::= ASPSTARTTAG",
+ /* 11 */
+ "template_element ::= ASPENDTAG",
+ /* 12 */
+ "template_element ::= XMLTAG",
+ /* 13 */
+ "template_element ::= TEXT",
+ /* 14 */
+ "template_element ::= STRIPON",
+ /* 15 */
+ "template_element ::= STRIPOFF",
+ /* 16 */
+ "template_element ::= BLOCKSOURCE",
+ /* 17 */
+ "literal ::= LITERALSTART LITERALEND",
+ /* 18 */
+ "literal ::= LITERALSTART literal_elements LITERALEND",
+ /* 19 */
+ "literal_elements ::= literal_elements literal_element",
+ /* 20 */
+ "literal_elements ::=",
+ /* 21 */
+ "literal_element ::= literal",
+ /* 22 */
+ "literal_element ::= LITERAL",
+ /* 23 */
+ "smartytag ::= LDEL value",
+ /* 24 */
+ "smartytag ::= LDEL value modifierlist attributes",
+ /* 25 */
+ "smartytag ::= LDEL value attributes",
+ /* 26 */
+ "smartytag ::= LDEL expr modifierlist attributes",
+ /* 27 */
+ "smartytag ::= LDEL expr attributes",
+ /* 28 */
+ "smartytag ::= LDEL DOLLAR ID EQUAL value",
+ /* 29 */
+ "smartytag ::= LDEL DOLLAR ID EQUAL expr",
+ /* 30 */
+ "smartytag ::= LDEL DOLLAR ID EQUAL expr attributes",
+ /* 31 */
+ "smartytag ::= LDEL varindexed EQUAL expr attributes",
+ /* 32 */
+ "smartytag ::= LDEL ID attributes",
+ /* 33 */
+ "smartytag ::= LDEL ID",
+ /* 34 */
+ "smartytag ::= LDEL ID PTR ID attributes",
+ /* 35 */
+ "smartytag ::= LDEL ID modifierlist attributes",
+ /* 36 */
+ "smartytag ::= LDEL ID PTR ID modifierlist attributes",
+ /* 37 */
+ "smartytag ::= LDELIF expr",
+ /* 38 */
+ "smartytag ::= LDELIF expr attributes",
+ /* 39 */
+ "smartytag ::= LDELIF statement",
+ /* 40 */
+ "smartytag ::= LDELIF statement attributes",
+ /* 41 */
+ "smartytag ::= LDELFOR statements SEMICOLON optspace expr SEMICOLON optspace DOLLAR varvar foraction attributes",
+ /* 42 */
+ "foraction ::= EQUAL expr",
+ /* 43 */
+ "foraction ::= INCDEC",
+ /* 44 */
+ "smartytag ::= LDELFOR statement TO expr attributes",
+ /* 45 */
+ "smartytag ::= LDELFOR statement TO expr STEP expr attributes",
+ /* 46 */
+ "smartytag ::= LDELFOREACH attributes",
+ /* 47 */
+ "smartytag ::= LDELFOREACH SPACE value AS DOLLAR varvar attributes",
+ /* 48 */
+ "smartytag ::= LDELFOREACH SPACE value AS DOLLAR varvar APTR DOLLAR varvar attributes",
+ /* 49 */
+ "smartytag ::= LDELFOREACH SPACE expr AS DOLLAR varvar attributes",
+ /* 50 */
+ "smartytag ::= LDELFOREACH SPACE expr AS DOLLAR varvar APTR DOLLAR varvar attributes",
+ /* 51 */
+ "smartytag ::= LDELSETFILTER ID modparameters",
+ /* 52 */
+ "smartytag ::= LDELSETFILTER ID modparameters modifierlist",
+ /* 53 */
+ "smartytag ::= LDEL SMARTYBLOCKCHILDPARENT",
+ /* 54 */
+ "smartytag ::= LDELSLASH ID",
+ /* 55 */
+ "smartytag ::= LDELSLASH ID modifierlist",
+ /* 56 */
+ "smartytag ::= LDELSLASH ID PTR ID",
+ /* 57 */
+ "smartytag ::= LDELSLASH ID PTR ID modifierlist",
+ /* 58 */
+ "attributes ::= attributes attribute",
+ /* 59 */
+ "attributes ::= attribute",
+ /* 60 */
+ "attributes ::=",
+ /* 61 */
+ "attribute ::= SPACE ID EQUAL ID",
+ /* 62 */
+ "attribute ::= ATTR expr",
+ /* 63 */
+ "attribute ::= ATTR value",
+ /* 64 */
+ "attribute ::= SPACE ID",
+ /* 65 */
+ "attribute ::= SPACE expr",
+ /* 66 */
+ "attribute ::= SPACE value",
+ /* 67 */
+ "attribute ::= SPACE INTEGER EQUAL expr",
+ /* 68 */
+ "statements ::= statement",
+ /* 69 */
+ "statements ::= statements COMMA statement",
+ /* 70 */
+ "statement ::= DOLLAR varvar EQUAL expr",
+ /* 71 */
+ "statement ::= varindexed EQUAL expr",
+ /* 72 */
+ "statement ::= OPENP statement CLOSEP",
+ /* 73 */
+ "expr ::= value",
+ /* 74 */
+ "expr ::= ternary",
+ /* 75 */
+ "expr ::= DOLLAR ID COLON ID",
+ /* 76 */
+ "expr ::= expr MATH value",
+ /* 77 */
+ "expr ::= expr UNIMATH value",
+ /* 78 */
+ "expr ::= expr ANDSYM value",
+ /* 79 */
+ "expr ::= array",
+ /* 80 */
+ "expr ::= expr modifierlist",
+ /* 81 */
+ "expr ::= expr ifcond expr",
+ /* 82 */
+ "expr ::= expr ISIN array",
+ /* 83 */
+ "expr ::= expr ISIN value",
+ /* 84 */
+ "expr ::= expr lop expr",
+ /* 85 */
+ "expr ::= expr ISDIVBY expr",
+ /* 86 */
+ "expr ::= expr ISNOTDIVBY expr",
+ /* 87 */
+ "expr ::= expr ISEVEN",
+ /* 88 */
+ "expr ::= expr ISNOTEVEN",
+ /* 89 */
+ "expr ::= expr ISEVENBY expr",
+ /* 90 */
+ "expr ::= expr ISNOTEVENBY expr",
+ /* 91 */
+ "expr ::= expr ISODD",
+ /* 92 */
+ "expr ::= expr ISNOTODD",
+ /* 93 */
+ "expr ::= expr ISODDBY expr",
+ /* 94 */
+ "expr ::= expr ISNOTODDBY expr",
+ /* 95 */
+ "expr ::= value INSTANCEOF ID",
+ /* 96 */
+ "expr ::= value INSTANCEOF value",
+ /* 97 */
+ "ternary ::= OPENP expr CLOSEP QMARK DOLLAR ID COLON expr",
+ /* 98 */
+ "ternary ::= OPENP expr CLOSEP QMARK expr COLON expr",
+ /* 99 */
+ "value ::= variable",
+ /* 100 */
+ "value ::= UNIMATH value",
+ /* 101 */
+ "value ::= NOT value",
+ /* 102 */
+ "value ::= TYPECAST value",
+ /* 103 */
+ "value ::= variable INCDEC",
+ /* 104 */
+ "value ::= HEX",
+ /* 105 */
+ "value ::= INTEGER",
+ /* 106 */
+ "value ::= INTEGER DOT INTEGER",
+ /* 107 */
+ "value ::= INTEGER DOT",
+ /* 108 */
+ "value ::= DOT INTEGER",
+ /* 109 */
+ "value ::= ID",
+ /* 110 */
+ "value ::= function",
+ /* 111 */
+ "value ::= OPENP expr CLOSEP",
+ /* 112 */
+ "value ::= SINGLEQUOTESTRING",
+ /* 113 */
+ "value ::= doublequoted_with_quotes",
+ /* 114 */
+ "value ::= ID DOUBLECOLON static_class_access",
+ /* 115 */
+ "value ::= varindexed DOUBLECOLON static_class_access",
+ /* 116 */
+ "value ::= smartytag RDEL",
+ /* 117 */
+ "value ::= value modifierlist",
+ /* 118 */
+ "variable ::= varindexed",
+ /* 119 */
+ "variable ::= DOLLAR varvar AT ID",
+ /* 120 */
+ "variable ::= object",
+ /* 121 */
+ "variable ::= HATCH ID HATCH",
+ /* 122 */
+ "variable ::= HATCH ID HATCH arrayindex",
+ /* 123 */
+ "variable ::= HATCH variable HATCH",
+ /* 124 */
+ "variable ::= HATCH variable HATCH arrayindex",
+ /* 125 */
+ "varindexed ::= DOLLAR varvar arrayindex",
+ /* 126 */
+ "arrayindex ::= arrayindex indexdef",
+ /* 127 */
+ "arrayindex ::=",
+ /* 128 */
+ "indexdef ::= DOT DOLLAR varvar",
+ /* 129 */
+ "indexdef ::= DOT DOLLAR varvar AT ID",
+ /* 130 */
+ "indexdef ::= DOT ID",
+ /* 131 */
+ "indexdef ::= DOT INTEGER",
+ /* 132 */
+ "indexdef ::= DOT LDEL expr RDEL",
+ /* 133 */
+ "indexdef ::= OPENB ID CLOSEB",
+ /* 134 */
+ "indexdef ::= OPENB ID DOT ID CLOSEB",
+ /* 135 */
+ "indexdef ::= OPENB expr CLOSEB",
+ /* 136 */
+ "indexdef ::= OPENB CLOSEB",
+ /* 137 */
+ "varvar ::= varvarele",
+ /* 138 */
+ "varvar ::= varvar varvarele",
+ /* 139 */
+ "varvarele ::= ID",
+ /* 140 */
+ "varvarele ::= LDEL expr RDEL",
+ /* 141 */
+ "object ::= varindexed objectchain",
+ /* 142 */
+ "objectchain ::= objectelement",
+ /* 143 */
+ "objectchain ::= objectchain objectelement",
+ /* 144 */
+ "objectelement ::= PTR ID arrayindex",
+ /* 145 */
+ "objectelement ::= PTR DOLLAR varvar arrayindex",
+ /* 146 */
+ "objectelement ::= PTR LDEL expr RDEL arrayindex",
+ /* 147 */
+ "objectelement ::= PTR ID LDEL expr RDEL arrayindex",
+ /* 148 */
+ "objectelement ::= PTR method",
+ /* 149 */
+ "function ::= ID OPENP params CLOSEP",
+ /* 150 */
+ "method ::= ID OPENP params CLOSEP",
+ /* 151 */
+ "method ::= DOLLAR ID OPENP params CLOSEP",
+ /* 152 */
+ "params ::= params COMMA expr",
+ /* 153 */
+ "params ::= expr",
+ /* 154 */
+ "params ::=",
+ /* 155 */
+ "modifierlist ::= modifierlist modifier modparameters",
+ /* 156 */
+ "modifierlist ::= modifier modparameters",
+ /* 157 */
+ "modifier ::= VERT AT ID",
+ /* 158 */
+ "modifier ::= VERT ID",
+ /* 159 */
+ "modparameters ::= modparameters modparameter",
+ /* 160 */
+ "modparameters ::=",
+ /* 161 */
+ "modparameter ::= COLON value",
+ /* 162 */
+ "modparameter ::= COLON array",
+ /* 163 */
+ "static_class_access ::= method",
+ /* 164 */
+ "static_class_access ::= method objectchain",
+ /* 165 */
+ "static_class_access ::= ID",
+ /* 166 */
+ "static_class_access ::= DOLLAR ID arrayindex",
+ /* 167 */
+ "static_class_access ::= DOLLAR ID arrayindex objectchain",
+ /* 168 */
+ "ifcond ::= EQUALS",
+ /* 169 */
+ "ifcond ::= NOTEQUALS",
+ /* 170 */
+ "ifcond ::= GREATERTHAN",
+ /* 171 */
+ "ifcond ::= LESSTHAN",
+ /* 172 */
+ "ifcond ::= GREATEREQUAL",
+ /* 173 */
+ "ifcond ::= LESSEQUAL",
+ /* 174 */
+ "ifcond ::= IDENTITY",
+ /* 175 */
+ "ifcond ::= NONEIDENTITY",
+ /* 176 */
+ "ifcond ::= MOD",
+ /* 177 */
+ "lop ::= LAND",
+ /* 178 */
+ "lop ::= LOR",
+ /* 179 */
+ "lop ::= LXOR",
+ /* 180 */
+ "array ::= OPENB arrayelements CLOSEB",
+ /* 181 */
+ "arrayelements ::= arrayelement",
+ /* 182 */
+ "arrayelements ::= arrayelements COMMA arrayelement",
+ /* 183 */
+ "arrayelements ::=",
+ /* 184 */
+ "arrayelement ::= value APTR expr",
+ /* 185 */
+ "arrayelement ::= ID APTR expr",
+ /* 186 */
+ "arrayelement ::= expr",
+ /* 187 */
+ "doublequoted_with_quotes ::= QUOTE QUOTE",
+ /* 188 */
+ "doublequoted_with_quotes ::= QUOTE doublequoted QUOTE",
+ /* 189 */
+ "doublequoted ::= doublequoted doublequotedcontent",
+ /* 190 */
+ "doublequoted ::= doublequotedcontent",
+ /* 191 */
+ "doublequotedcontent ::= BACKTICK variable BACKTICK",
+ /* 192 */
+ "doublequotedcontent ::= BACKTICK expr BACKTICK",
+ /* 193 */
+ "doublequotedcontent ::= DOLLARID",
+ /* 194 */
+ "doublequotedcontent ::= LDEL variable RDEL",
+ /* 195 */
+ "doublequotedcontent ::= LDEL expr RDEL",
+ /* 196 */
+ "doublequotedcontent ::= smartytag RDEL",
+ /* 197 */
+ "doublequotedcontent ::= TEXT",
+ /* 198 */
+ "optspace ::= SPACE",
+ /* 199 */
+ "optspace ::=",
);
- function tokenName($tokenType)
+ public function tokenName($tokenType)
{
if ($tokenType === 0) {
return 'End of Input';
@@ -1489,41 +2625,43 @@ static public $yy_action = array(
}
}
- static function yy_destructor($yymajor, $yypminor)
+ public static function yy_destructor($yymajor, $yypminor)
{
switch ($yymajor) {
- default: break; /* If no destructor action specified: do nothing */
+ default:
+ break; /* If no destructor action specified: do nothing */
}
}
- function yy_pop_parser_stack()
+ public function yy_pop_parser_stack()
{
if (!count($this->yystack)) {
return;
}
$yytos = array_pop($this->yystack);
- if (self::$yyTraceFILE && $this->yyidx >= 0) {
- fwrite(self::$yyTraceFILE,
- self::$yyTracePrompt . 'Popping ' . $this->yyTokenName[$yytos->major] .
- "\n");
+ if ($this->yyTraceFILE && $this->yyidx >= 0) {
+ fwrite($this->yyTraceFILE,
+ $this->yyTracePrompt . 'Popping ' . $this->yyTokenName[$yytos->major] .
+ "\n");
}
$yymajor = $yytos->major;
self::yy_destructor($yymajor, $yytos->minor);
- $this->yyidx--;
+ $this->yyidx --;
+
return $yymajor;
}
- function __destruct()
+ public function __destruct()
{
while ($this->yystack !== Array()) {
$this->yy_pop_parser_stack();
}
- if (is_resource(self::$yyTraceFILE)) {
- fclose(self::$yyTraceFILE);
+ if (is_resource($this->yyTraceFILE)) {
+ fclose($this->yyTraceFILE);
}
}
- function yy_get_expected_tokens($token)
+ public function yy_get_expected_tokens($token)
{
$state = $this->yystack[$this->yyidx]->stateno;
$expected = self::$yyExpectedTokens[$state];
@@ -1538,7 +2676,7 @@ static public $yy_action = array(
// reduce action
$done = 0;
do {
- if ($done++ == 100) {
+ if ($done ++ == 100) {
$this->yyidx = $yyidx;
$this->yystack = $stack;
// too much recursion prevents proper detection
@@ -1551,17 +2689,18 @@ static public $yy_action = array(
$this->yystack[$this->yyidx]->stateno,
self::$yyRuleInfo[$yyruleno]['lhs']);
if (isset(self::$yyExpectedTokens[$nextstate])) {
- $expected = array_merge($expected, self::$yyExpectedTokens[$nextstate]);
- if (in_array($token,
- self::$yyExpectedTokens[$nextstate], true)) {
+ $expected = array_merge($expected, self::$yyExpectedTokens[$nextstate]);
+ if (in_array($token,
+ self::$yyExpectedTokens[$nextstate], true)) {
$this->yyidx = $yyidx;
$this->yystack = $stack;
+
return array_unique($expected);
}
}
if ($nextstate < self::YYNSTATE) {
// we need to shift a non-terminal
- $this->yyidx++;
+ $this->yyidx ++;
$x = new TP_yyStackEntry;
$x->stateno = $nextstate;
$x->major = self::$yyRuleInfo[$yyruleno]['lhs'];
@@ -1586,12 +2725,13 @@ static public $yy_action = array(
}
break;
} while (true);
- $this->yyidx = $yyidx;
- $this->yystack = $stack;
+ $this->yyidx = $yyidx;
+ $this->yystack = $stack;
+
return array_unique($expected);
}
- function yy_is_expected_token($token)
+ public function yy_is_expected_token($token)
{
if ($token === 0) {
return true; // 0 is not part of this
@@ -1608,7 +2748,7 @@ static public $yy_action = array(
// reduce action
$done = 0;
do {
- if ($done++ == 100) {
+ if ($done ++ == 100) {
$this->yyidx = $yyidx;
$this->yystack = $stack;
// too much recursion prevents proper detection
@@ -1621,14 +2761,16 @@ static public $yy_action = array(
$this->yystack[$this->yyidx]->stateno,
self::$yyRuleInfo[$yyruleno]['lhs']);
if (isset(self::$yyExpectedTokens[$nextstate]) &&
- in_array($token, self::$yyExpectedTokens[$nextstate], true)) {
+ in_array($token, self::$yyExpectedTokens[$nextstate], true)
+ ) {
$this->yyidx = $yyidx;
$this->yystack = $stack;
+
return true;
}
if ($nextstate < self::YYNSTATE) {
// we need to shift a non-terminal
- $this->yyidx++;
+ $this->yyidx ++;
$x = new TP_yyStackEntry;
$x->stateno = $nextstate;
$x->major = self::$yyRuleInfo[$yyruleno]['lhs'];
@@ -1659,10 +2801,11 @@ static public $yy_action = array(
} while (true);
$this->yyidx = $yyidx;
$this->yystack = $stack;
+
return true;
}
- function yy_find_shift_action($iLookAhead)
+ public function yy_find_shift_action($iLookAhead)
{
$stateno = $this->yystack[$this->yyidx]->stateno;
@@ -1680,23 +2823,27 @@ static public $yy_action = array(
}
$i += $iLookAhead;
if ($i < 0 || $i >= self::YY_SZ_ACTTAB ||
- self::$yy_lookahead[$i] != $iLookAhead) {
+ self::$yy_lookahead[$i] != $iLookAhead
+ ) {
if (count(self::$yyFallback) && $iLookAhead < count(self::$yyFallback)
- && ($iFallback = self::$yyFallback[$iLookAhead]) != 0) {
- if (self::$yyTraceFILE) {
- fwrite(self::$yyTraceFILE, self::$yyTracePrompt . "FALLBACK " .
+ && ($iFallback = self::$yyFallback[$iLookAhead]) != 0
+ ) {
+ if ($this->yyTraceFILE) {
+ fwrite($this->yyTraceFILE, $this->yyTracePrompt . "FALLBACK " .
$this->yyTokenName[$iLookAhead] . " => " .
$this->yyTokenName[$iFallback] . "\n");
}
+
return $this->yy_find_shift_action($iFallback);
}
+
return self::$yy_default[$stateno];
} else {
return self::$yy_action[$i];
}
}
- function yy_find_reduce_action($stateno, $iLookAhead)
+ public function yy_find_reduce_action($stateno, $iLookAhead)
{
/* $stateno = $this->yystack[$this->yyidx]->stateno; */
@@ -1712,29 +2859,31 @@ static public $yy_action = array(
}
$i += $iLookAhead;
if ($i < 0 || $i >= self::YY_SZ_ACTTAB ||
- self::$yy_lookahead[$i] != $iLookAhead) {
+ self::$yy_lookahead[$i] != $iLookAhead
+ ) {
return self::$yy_default[$stateno];
} else {
return self::$yy_action[$i];
}
}
- function yy_shift($yyNewState, $yyMajor, $yypMinor)
+ public function yy_shift($yyNewState, $yyMajor, $yypMinor)
{
- $this->yyidx++;
+ $this->yyidx ++;
if ($this->yyidx >= self::YYSTACKDEPTH) {
- $this->yyidx--;
- if (self::$yyTraceFILE) {
- fprintf(self::$yyTraceFILE, "%sStack Overflow!\n", self::$yyTracePrompt);
+ $this->yyidx --;
+ if ($this->yyTraceFILE) {
+ fprintf($this->yyTraceFILE, "%sStack Overflow!\n", $this->yyTracePrompt);
}
while ($this->yyidx >= 0) {
$this->yy_pop_parser_stack();
}
-#line 84 "smarty_internal_templateparser.y"
+ #line 82 "smarty_internal_templateparser.y"
+
+ $this->internalError = true;
+ $this->compiler->trigger_template_error("Stack overflow in template parser");
+ #line 1721 "smarty_internal_templateparser.php"
- $this->internalError = true;
- $this->compiler->trigger_template_error("Stack overflow in template parser");
-#line 1733 "smarty_internal_templateparser.php"
return;
}
$yytos = new TP_yyStackEntry;
@@ -1742,377 +2891,375 @@ static public $yy_action = array(
$yytos->major = $yyMajor;
$yytos->minor = $yypMinor;
array_push($this->yystack, $yytos);
- if (self::$yyTraceFILE && $this->yyidx > 0) {
- fprintf(self::$yyTraceFILE, "%sShift %d\n", self::$yyTracePrompt,
- $yyNewState);
- fprintf(self::$yyTraceFILE, "%sStack:", self::$yyTracePrompt);
- for($i = 1; $i <= $this->yyidx; $i++) {
- fprintf(self::$yyTraceFILE, " %s",
- $this->yyTokenName[$this->yystack[$i]->major]);
+ if ($this->yyTraceFILE && $this->yyidx > 0) {
+ fprintf($this->yyTraceFILE, "%sShift %d\n", $this->yyTracePrompt,
+ $yyNewState);
+ fprintf($this->yyTraceFILE, "%sStack:", $this->yyTracePrompt);
+ for ($i = 1; $i <= $this->yyidx; $i ++) {
+ fprintf($this->yyTraceFILE, " %s",
+ $this->yyTokenName[$this->yystack[$i]->major]);
}
- fwrite(self::$yyTraceFILE,"\n");
+ fwrite($this->yyTraceFILE, "\n");
}
}
- static public $yyRuleInfo = array(
- array( 'lhs' => 82, 'rhs' => 1 ),
- array( 'lhs' => 83, 'rhs' => 1 ),
- array( 'lhs' => 83, 'rhs' => 2 ),
- array( 'lhs' => 83, 'rhs' => 0 ),
- array( 'lhs' => 84, 'rhs' => 1 ),
- array( 'lhs' => 84, 'rhs' => 1 ),
- array( 'lhs' => 84, 'rhs' => 1 ),
- array( 'lhs' => 84, 'rhs' => 1 ),
- array( 'lhs' => 84, 'rhs' => 1 ),
- array( 'lhs' => 84, 'rhs' => 1 ),
- array( 'lhs' => 84, 'rhs' => 1 ),
- array( 'lhs' => 84, 'rhs' => 1 ),
- array( 'lhs' => 84, 'rhs' => 1 ),
- array( 'lhs' => 84, 'rhs' => 1 ),
- array( 'lhs' => 84, 'rhs' => 1 ),
- array( 'lhs' => 84, 'rhs' => 1 ),
- array( 'lhs' => 86, 'rhs' => 2 ),
- array( 'lhs' => 86, 'rhs' => 3 ),
- array( 'lhs' => 87, 'rhs' => 2 ),
- array( 'lhs' => 87, 'rhs' => 0 ),
- array( 'lhs' => 88, 'rhs' => 1 ),
- array( 'lhs' => 88, 'rhs' => 1 ),
- array( 'lhs' => 88, 'rhs' => 1 ),
- array( 'lhs' => 88, 'rhs' => 1 ),
- array( 'lhs' => 88, 'rhs' => 1 ),
- array( 'lhs' => 88, 'rhs' => 1 ),
- array( 'lhs' => 88, 'rhs' => 1 ),
- array( 'lhs' => 85, 'rhs' => 3 ),
- array( 'lhs' => 85, 'rhs' => 5 ),
- array( 'lhs' => 85, 'rhs' => 4 ),
- array( 'lhs' => 85, 'rhs' => 5 ),
- array( 'lhs' => 85, 'rhs' => 4 ),
- array( 'lhs' => 85, 'rhs' => 6 ),
- array( 'lhs' => 85, 'rhs' => 6 ),
- array( 'lhs' => 85, 'rhs' => 7 ),
- array( 'lhs' => 85, 'rhs' => 6 ),
- array( 'lhs' => 85, 'rhs' => 4 ),
- array( 'lhs' => 85, 'rhs' => 3 ),
- array( 'lhs' => 85, 'rhs' => 6 ),
- array( 'lhs' => 85, 'rhs' => 5 ),
- array( 'lhs' => 85, 'rhs' => 7 ),
- array( 'lhs' => 85, 'rhs' => 3 ),
- array( 'lhs' => 85, 'rhs' => 4 ),
- array( 'lhs' => 85, 'rhs' => 3 ),
- array( 'lhs' => 85, 'rhs' => 4 ),
- array( 'lhs' => 85, 'rhs' => 12 ),
- array( 'lhs' => 98, 'rhs' => 2 ),
- array( 'lhs' => 98, 'rhs' => 1 ),
- array( 'lhs' => 85, 'rhs' => 6 ),
- array( 'lhs' => 85, 'rhs' => 8 ),
- array( 'lhs' => 85, 'rhs' => 3 ),
- array( 'lhs' => 85, 'rhs' => 8 ),
- array( 'lhs' => 85, 'rhs' => 11 ),
- array( 'lhs' => 85, 'rhs' => 8 ),
- array( 'lhs' => 85, 'rhs' => 11 ),
- array( 'lhs' => 85, 'rhs' => 4 ),
- array( 'lhs' => 85, 'rhs' => 5 ),
- array( 'lhs' => 85, 'rhs' => 1 ),
- array( 'lhs' => 85, 'rhs' => 3 ),
- array( 'lhs' => 85, 'rhs' => 4 ),
- array( 'lhs' => 85, 'rhs' => 5 ),
- array( 'lhs' => 85, 'rhs' => 6 ),
- array( 'lhs' => 91, 'rhs' => 2 ),
- array( 'lhs' => 91, 'rhs' => 1 ),
- array( 'lhs' => 91, 'rhs' => 0 ),
- array( 'lhs' => 100, 'rhs' => 4 ),
- array( 'lhs' => 100, 'rhs' => 2 ),
- array( 'lhs' => 100, 'rhs' => 2 ),
- array( 'lhs' => 100, 'rhs' => 2 ),
- array( 'lhs' => 100, 'rhs' => 2 ),
- array( 'lhs' => 100, 'rhs' => 2 ),
- array( 'lhs' => 100, 'rhs' => 4 ),
- array( 'lhs' => 95, 'rhs' => 1 ),
- array( 'lhs' => 95, 'rhs' => 3 ),
- array( 'lhs' => 94, 'rhs' => 4 ),
- array( 'lhs' => 94, 'rhs' => 3 ),
- array( 'lhs' => 94, 'rhs' => 3 ),
- array( 'lhs' => 92, 'rhs' => 1 ),
- array( 'lhs' => 92, 'rhs' => 1 ),
- array( 'lhs' => 92, 'rhs' => 4 ),
- array( 'lhs' => 92, 'rhs' => 3 ),
- array( 'lhs' => 92, 'rhs' => 3 ),
- array( 'lhs' => 92, 'rhs' => 3 ),
- array( 'lhs' => 92, 'rhs' => 1 ),
- array( 'lhs' => 92, 'rhs' => 2 ),
- array( 'lhs' => 92, 'rhs' => 3 ),
- array( 'lhs' => 92, 'rhs' => 3 ),
- array( 'lhs' => 92, 'rhs' => 3 ),
- array( 'lhs' => 92, 'rhs' => 3 ),
- array( 'lhs' => 92, 'rhs' => 3 ),
- array( 'lhs' => 92, 'rhs' => 3 ),
- array( 'lhs' => 92, 'rhs' => 2 ),
- array( 'lhs' => 92, 'rhs' => 2 ),
- array( 'lhs' => 92, 'rhs' => 3 ),
- array( 'lhs' => 92, 'rhs' => 3 ),
- array( 'lhs' => 92, 'rhs' => 2 ),
- array( 'lhs' => 92, 'rhs' => 2 ),
- array( 'lhs' => 92, 'rhs' => 3 ),
- array( 'lhs' => 92, 'rhs' => 3 ),
- array( 'lhs' => 92, 'rhs' => 3 ),
- array( 'lhs' => 92, 'rhs' => 3 ),
- array( 'lhs' => 101, 'rhs' => 8 ),
- array( 'lhs' => 101, 'rhs' => 7 ),
- array( 'lhs' => 89, 'rhs' => 1 ),
- array( 'lhs' => 89, 'rhs' => 2 ),
- array( 'lhs' => 89, 'rhs' => 2 ),
- array( 'lhs' => 89, 'rhs' => 2 ),
- array( 'lhs' => 89, 'rhs' => 2 ),
- array( 'lhs' => 89, 'rhs' => 1 ),
- array( 'lhs' => 89, 'rhs' => 1 ),
- array( 'lhs' => 89, 'rhs' => 3 ),
- array( 'lhs' => 89, 'rhs' => 2 ),
- array( 'lhs' => 89, 'rhs' => 2 ),
- array( 'lhs' => 89, 'rhs' => 1 ),
- array( 'lhs' => 89, 'rhs' => 1 ),
- array( 'lhs' => 89, 'rhs' => 3 ),
- array( 'lhs' => 89, 'rhs' => 1 ),
- array( 'lhs' => 89, 'rhs' => 1 ),
- array( 'lhs' => 89, 'rhs' => 3 ),
- array( 'lhs' => 89, 'rhs' => 3 ),
- array( 'lhs' => 89, 'rhs' => 1 ),
- array( 'lhs' => 89, 'rhs' => 2 ),
- array( 'lhs' => 105, 'rhs' => 1 ),
- array( 'lhs' => 105, 'rhs' => 4 ),
- array( 'lhs' => 105, 'rhs' => 1 ),
- array( 'lhs' => 105, 'rhs' => 3 ),
- array( 'lhs' => 105, 'rhs' => 3 ),
- array( 'lhs' => 93, 'rhs' => 3 ),
- array( 'lhs' => 110, 'rhs' => 2 ),
- array( 'lhs' => 110, 'rhs' => 0 ),
- array( 'lhs' => 111, 'rhs' => 3 ),
- array( 'lhs' => 111, 'rhs' => 5 ),
- array( 'lhs' => 111, 'rhs' => 2 ),
- array( 'lhs' => 111, 'rhs' => 2 ),
- array( 'lhs' => 111, 'rhs' => 4 ),
- array( 'lhs' => 111, 'rhs' => 3 ),
- array( 'lhs' => 111, 'rhs' => 5 ),
- array( 'lhs' => 111, 'rhs' => 3 ),
- array( 'lhs' => 111, 'rhs' => 2 ),
- array( 'lhs' => 97, 'rhs' => 1 ),
- array( 'lhs' => 97, 'rhs' => 2 ),
- array( 'lhs' => 112, 'rhs' => 1 ),
- array( 'lhs' => 112, 'rhs' => 3 ),
- array( 'lhs' => 109, 'rhs' => 2 ),
- array( 'lhs' => 113, 'rhs' => 1 ),
- array( 'lhs' => 113, 'rhs' => 2 ),
- array( 'lhs' => 114, 'rhs' => 3 ),
- array( 'lhs' => 114, 'rhs' => 4 ),
- array( 'lhs' => 114, 'rhs' => 5 ),
- array( 'lhs' => 114, 'rhs' => 6 ),
- array( 'lhs' => 114, 'rhs' => 2 ),
- array( 'lhs' => 106, 'rhs' => 4 ),
- array( 'lhs' => 115, 'rhs' => 4 ),
- array( 'lhs' => 115, 'rhs' => 5 ),
- array( 'lhs' => 116, 'rhs' => 3 ),
- array( 'lhs' => 116, 'rhs' => 1 ),
- array( 'lhs' => 116, 'rhs' => 0 ),
- array( 'lhs' => 90, 'rhs' => 3 ),
- array( 'lhs' => 90, 'rhs' => 2 ),
- array( 'lhs' => 117, 'rhs' => 3 ),
- array( 'lhs' => 117, 'rhs' => 2 ),
- array( 'lhs' => 99, 'rhs' => 2 ),
- array( 'lhs' => 99, 'rhs' => 0 ),
- array( 'lhs' => 118, 'rhs' => 2 ),
- array( 'lhs' => 118, 'rhs' => 2 ),
- array( 'lhs' => 108, 'rhs' => 1 ),
- array( 'lhs' => 108, 'rhs' => 2 ),
- array( 'lhs' => 108, 'rhs' => 1 ),
- array( 'lhs' => 108, 'rhs' => 3 ),
- array( 'lhs' => 108, 'rhs' => 4 ),
- array( 'lhs' => 103, 'rhs' => 1 ),
- array( 'lhs' => 103, 'rhs' => 1 ),
- array( 'lhs' => 103, 'rhs' => 1 ),
- array( 'lhs' => 103, 'rhs' => 1 ),
- array( 'lhs' => 103, 'rhs' => 1 ),
- array( 'lhs' => 103, 'rhs' => 1 ),
- array( 'lhs' => 103, 'rhs' => 1 ),
- array( 'lhs' => 103, 'rhs' => 1 ),
- array( 'lhs' => 103, 'rhs' => 1 ),
- array( 'lhs' => 104, 'rhs' => 1 ),
- array( 'lhs' => 104, 'rhs' => 1 ),
- array( 'lhs' => 104, 'rhs' => 1 ),
- array( 'lhs' => 102, 'rhs' => 3 ),
- array( 'lhs' => 119, 'rhs' => 1 ),
- array( 'lhs' => 119, 'rhs' => 3 ),
- array( 'lhs' => 119, 'rhs' => 0 ),
- array( 'lhs' => 120, 'rhs' => 3 ),
- array( 'lhs' => 120, 'rhs' => 3 ),
- array( 'lhs' => 120, 'rhs' => 1 ),
- array( 'lhs' => 107, 'rhs' => 2 ),
- array( 'lhs' => 107, 'rhs' => 3 ),
- array( 'lhs' => 121, 'rhs' => 2 ),
- array( 'lhs' => 121, 'rhs' => 1 ),
- array( 'lhs' => 122, 'rhs' => 3 ),
- array( 'lhs' => 122, 'rhs' => 3 ),
- array( 'lhs' => 122, 'rhs' => 1 ),
- array( 'lhs' => 122, 'rhs' => 3 ),
- array( 'lhs' => 122, 'rhs' => 3 ),
- array( 'lhs' => 122, 'rhs' => 1 ),
- array( 'lhs' => 122, 'rhs' => 1 ),
- array( 'lhs' => 96, 'rhs' => 1 ),
- array( 'lhs' => 96, 'rhs' => 0 ),
+ public static $yyRuleInfo = array(
+ array('lhs' => 83, 'rhs' => 1),
+ array('lhs' => 84, 'rhs' => 1),
+ array('lhs' => 84, 'rhs' => 2),
+ array('lhs' => 84, 'rhs' => 0),
+ array('lhs' => 85, 'rhs' => 2),
+ array('lhs' => 85, 'rhs' => 1),
+ array('lhs' => 85, 'rhs' => 1),
+ array('lhs' => 85, 'rhs' => 1),
+ array('lhs' => 85, 'rhs' => 1),
+ array('lhs' => 85, 'rhs' => 1),
+ array('lhs' => 85, 'rhs' => 1),
+ array('lhs' => 85, 'rhs' => 1),
+ array('lhs' => 85, 'rhs' => 1),
+ array('lhs' => 85, 'rhs' => 1),
+ array('lhs' => 85, 'rhs' => 1),
+ array('lhs' => 85, 'rhs' => 1),
+ array('lhs' => 85, 'rhs' => 1),
+ array('lhs' => 87, 'rhs' => 2),
+ array('lhs' => 87, 'rhs' => 3),
+ array('lhs' => 88, 'rhs' => 2),
+ array('lhs' => 88, 'rhs' => 0),
+ array('lhs' => 89, 'rhs' => 1),
+ array('lhs' => 89, 'rhs' => 1),
+ array('lhs' => 86, 'rhs' => 2),
+ array('lhs' => 86, 'rhs' => 4),
+ array('lhs' => 86, 'rhs' => 3),
+ array('lhs' => 86, 'rhs' => 4),
+ array('lhs' => 86, 'rhs' => 3),
+ array('lhs' => 86, 'rhs' => 5),
+ array('lhs' => 86, 'rhs' => 5),
+ array('lhs' => 86, 'rhs' => 6),
+ array('lhs' => 86, 'rhs' => 5),
+ array('lhs' => 86, 'rhs' => 3),
+ array('lhs' => 86, 'rhs' => 2),
+ array('lhs' => 86, 'rhs' => 5),
+ array('lhs' => 86, 'rhs' => 4),
+ array('lhs' => 86, 'rhs' => 6),
+ array('lhs' => 86, 'rhs' => 2),
+ array('lhs' => 86, 'rhs' => 3),
+ array('lhs' => 86, 'rhs' => 2),
+ array('lhs' => 86, 'rhs' => 3),
+ array('lhs' => 86, 'rhs' => 11),
+ array('lhs' => 99, 'rhs' => 2),
+ array('lhs' => 99, 'rhs' => 1),
+ array('lhs' => 86, 'rhs' => 5),
+ array('lhs' => 86, 'rhs' => 7),
+ array('lhs' => 86, 'rhs' => 2),
+ array('lhs' => 86, 'rhs' => 7),
+ array('lhs' => 86, 'rhs' => 10),
+ array('lhs' => 86, 'rhs' => 7),
+ array('lhs' => 86, 'rhs' => 10),
+ array('lhs' => 86, 'rhs' => 3),
+ array('lhs' => 86, 'rhs' => 4),
+ array('lhs' => 86, 'rhs' => 2),
+ array('lhs' => 86, 'rhs' => 2),
+ array('lhs' => 86, 'rhs' => 3),
+ array('lhs' => 86, 'rhs' => 4),
+ array('lhs' => 86, 'rhs' => 5),
+ array('lhs' => 92, 'rhs' => 2),
+ array('lhs' => 92, 'rhs' => 1),
+ array('lhs' => 92, 'rhs' => 0),
+ array('lhs' => 101, 'rhs' => 4),
+ array('lhs' => 101, 'rhs' => 2),
+ array('lhs' => 101, 'rhs' => 2),
+ array('lhs' => 101, 'rhs' => 2),
+ array('lhs' => 101, 'rhs' => 2),
+ array('lhs' => 101, 'rhs' => 2),
+ array('lhs' => 101, 'rhs' => 4),
+ array('lhs' => 96, 'rhs' => 1),
+ array('lhs' => 96, 'rhs' => 3),
+ array('lhs' => 95, 'rhs' => 4),
+ array('lhs' => 95, 'rhs' => 3),
+ array('lhs' => 95, 'rhs' => 3),
+ array('lhs' => 93, 'rhs' => 1),
+ array('lhs' => 93, 'rhs' => 1),
+ array('lhs' => 93, 'rhs' => 4),
+ array('lhs' => 93, 'rhs' => 3),
+ array('lhs' => 93, 'rhs' => 3),
+ array('lhs' => 93, 'rhs' => 3),
+ array('lhs' => 93, 'rhs' => 1),
+ array('lhs' => 93, 'rhs' => 2),
+ array('lhs' => 93, 'rhs' => 3),
+ array('lhs' => 93, 'rhs' => 3),
+ array('lhs' => 93, 'rhs' => 3),
+ array('lhs' => 93, 'rhs' => 3),
+ array('lhs' => 93, 'rhs' => 3),
+ array('lhs' => 93, 'rhs' => 3),
+ array('lhs' => 93, 'rhs' => 2),
+ array('lhs' => 93, 'rhs' => 2),
+ array('lhs' => 93, 'rhs' => 3),
+ array('lhs' => 93, 'rhs' => 3),
+ array('lhs' => 93, 'rhs' => 2),
+ array('lhs' => 93, 'rhs' => 2),
+ array('lhs' => 93, 'rhs' => 3),
+ array('lhs' => 93, 'rhs' => 3),
+ array('lhs' => 93, 'rhs' => 3),
+ array('lhs' => 93, 'rhs' => 3),
+ array('lhs' => 102, 'rhs' => 8),
+ array('lhs' => 102, 'rhs' => 7),
+ array('lhs' => 90, 'rhs' => 1),
+ array('lhs' => 90, 'rhs' => 2),
+ array('lhs' => 90, 'rhs' => 2),
+ array('lhs' => 90, 'rhs' => 2),
+ array('lhs' => 90, 'rhs' => 2),
+ array('lhs' => 90, 'rhs' => 1),
+ array('lhs' => 90, 'rhs' => 1),
+ array('lhs' => 90, 'rhs' => 3),
+ array('lhs' => 90, 'rhs' => 2),
+ array('lhs' => 90, 'rhs' => 2),
+ array('lhs' => 90, 'rhs' => 1),
+ array('lhs' => 90, 'rhs' => 1),
+ array('lhs' => 90, 'rhs' => 3),
+ array('lhs' => 90, 'rhs' => 1),
+ array('lhs' => 90, 'rhs' => 1),
+ array('lhs' => 90, 'rhs' => 3),
+ array('lhs' => 90, 'rhs' => 3),
+ array('lhs' => 90, 'rhs' => 2),
+ array('lhs' => 90, 'rhs' => 2),
+ array('lhs' => 106, 'rhs' => 1),
+ array('lhs' => 106, 'rhs' => 4),
+ array('lhs' => 106, 'rhs' => 1),
+ array('lhs' => 106, 'rhs' => 3),
+ array('lhs' => 106, 'rhs' => 4),
+ array('lhs' => 106, 'rhs' => 3),
+ array('lhs' => 106, 'rhs' => 4),
+ array('lhs' => 94, 'rhs' => 3),
+ array('lhs' => 111, 'rhs' => 2),
+ array('lhs' => 111, 'rhs' => 0),
+ array('lhs' => 112, 'rhs' => 3),
+ array('lhs' => 112, 'rhs' => 5),
+ array('lhs' => 112, 'rhs' => 2),
+ array('lhs' => 112, 'rhs' => 2),
+ array('lhs' => 112, 'rhs' => 4),
+ array('lhs' => 112, 'rhs' => 3),
+ array('lhs' => 112, 'rhs' => 5),
+ array('lhs' => 112, 'rhs' => 3),
+ array('lhs' => 112, 'rhs' => 2),
+ array('lhs' => 98, 'rhs' => 1),
+ array('lhs' => 98, 'rhs' => 2),
+ array('lhs' => 113, 'rhs' => 1),
+ array('lhs' => 113, 'rhs' => 3),
+ array('lhs' => 110, 'rhs' => 2),
+ array('lhs' => 114, 'rhs' => 1),
+ array('lhs' => 114, 'rhs' => 2),
+ array('lhs' => 115, 'rhs' => 3),
+ array('lhs' => 115, 'rhs' => 4),
+ array('lhs' => 115, 'rhs' => 5),
+ array('lhs' => 115, 'rhs' => 6),
+ array('lhs' => 115, 'rhs' => 2),
+ array('lhs' => 107, 'rhs' => 4),
+ array('lhs' => 116, 'rhs' => 4),
+ array('lhs' => 116, 'rhs' => 5),
+ array('lhs' => 117, 'rhs' => 3),
+ array('lhs' => 117, 'rhs' => 1),
+ array('lhs' => 117, 'rhs' => 0),
+ array('lhs' => 91, 'rhs' => 3),
+ array('lhs' => 91, 'rhs' => 2),
+ array('lhs' => 118, 'rhs' => 3),
+ array('lhs' => 118, 'rhs' => 2),
+ array('lhs' => 100, 'rhs' => 2),
+ array('lhs' => 100, 'rhs' => 0),
+ array('lhs' => 119, 'rhs' => 2),
+ array('lhs' => 119, 'rhs' => 2),
+ array('lhs' => 109, 'rhs' => 1),
+ array('lhs' => 109, 'rhs' => 2),
+ array('lhs' => 109, 'rhs' => 1),
+ array('lhs' => 109, 'rhs' => 3),
+ array('lhs' => 109, 'rhs' => 4),
+ array('lhs' => 104, 'rhs' => 1),
+ array('lhs' => 104, 'rhs' => 1),
+ array('lhs' => 104, 'rhs' => 1),
+ array('lhs' => 104, 'rhs' => 1),
+ array('lhs' => 104, 'rhs' => 1),
+ array('lhs' => 104, 'rhs' => 1),
+ array('lhs' => 104, 'rhs' => 1),
+ array('lhs' => 104, 'rhs' => 1),
+ array('lhs' => 104, 'rhs' => 1),
+ array('lhs' => 105, 'rhs' => 1),
+ array('lhs' => 105, 'rhs' => 1),
+ array('lhs' => 105, 'rhs' => 1),
+ array('lhs' => 103, 'rhs' => 3),
+ array('lhs' => 120, 'rhs' => 1),
+ array('lhs' => 120, 'rhs' => 3),
+ array('lhs' => 120, 'rhs' => 0),
+ array('lhs' => 121, 'rhs' => 3),
+ array('lhs' => 121, 'rhs' => 3),
+ array('lhs' => 121, 'rhs' => 1),
+ array('lhs' => 108, 'rhs' => 2),
+ array('lhs' => 108, 'rhs' => 3),
+ array('lhs' => 122, 'rhs' => 2),
+ array('lhs' => 122, 'rhs' => 1),
+ array('lhs' => 123, 'rhs' => 3),
+ array('lhs' => 123, 'rhs' => 3),
+ array('lhs' => 123, 'rhs' => 1),
+ array('lhs' => 123, 'rhs' => 3),
+ array('lhs' => 123, 'rhs' => 3),
+ array('lhs' => 123, 'rhs' => 2),
+ array('lhs' => 123, 'rhs' => 1),
+ array('lhs' => 97, 'rhs' => 1),
+ array('lhs' => 97, 'rhs' => 0),
);
- static public $yyReduceMap = array(
- 0 => 0,
- 1 => 1,
- 2 => 1,
- 4 => 4,
- 5 => 5,
- 6 => 6,
- 7 => 7,
- 8 => 8,
- 9 => 9,
- 10 => 10,
- 11 => 11,
- 12 => 12,
- 13 => 13,
- 14 => 14,
- 15 => 15,
- 16 => 16,
- 19 => 16,
- 201 => 16,
- 17 => 17,
- 76 => 17,
- 18 => 18,
- 104 => 18,
- 106 => 18,
- 107 => 18,
- 128 => 18,
- 166 => 18,
- 20 => 20,
- 21 => 20,
- 47 => 20,
- 69 => 20,
- 70 => 20,
- 77 => 20,
- 78 => 20,
- 83 => 20,
- 103 => 20,
- 108 => 20,
- 109 => 20,
- 114 => 20,
- 116 => 20,
- 117 => 20,
- 124 => 20,
- 139 => 20,
- 165 => 20,
- 167 => 20,
- 183 => 20,
- 188 => 20,
- 200 => 20,
- 22 => 22,
- 23 => 22,
- 24 => 24,
- 25 => 25,
- 26 => 26,
- 27 => 27,
- 28 => 28,
- 29 => 29,
- 31 => 29,
- 30 => 30,
- 32 => 32,
- 33 => 32,
- 34 => 34,
- 35 => 35,
- 36 => 36,
- 37 => 37,
- 38 => 38,
- 39 => 39,
- 40 => 40,
- 41 => 41,
- 42 => 42,
- 44 => 42,
- 43 => 43,
- 45 => 45,
- 46 => 46,
- 48 => 48,
- 49 => 49,
- 50 => 50,
- 51 => 51,
- 52 => 52,
- 53 => 53,
- 54 => 54,
- 55 => 55,
- 56 => 56,
- 57 => 57,
- 58 => 58,
- 59 => 59,
- 60 => 60,
- 61 => 61,
- 62 => 62,
- 63 => 63,
- 72 => 63,
- 155 => 63,
- 159 => 63,
- 163 => 63,
- 164 => 63,
- 64 => 64,
- 156 => 64,
- 162 => 64,
- 65 => 65,
- 66 => 66,
- 67 => 66,
- 68 => 68,
- 71 => 71,
- 73 => 73,
- 74 => 74,
- 75 => 74,
- 79 => 79,
- 80 => 80,
- 81 => 80,
- 82 => 80,
- 84 => 84,
- 121 => 84,
- 85 => 85,
- 88 => 85,
- 99 => 85,
- 86 => 86,
- 87 => 87,
- 89 => 89,
- 90 => 90,
- 91 => 91,
- 96 => 91,
- 92 => 92,
- 95 => 92,
- 93 => 93,
- 98 => 93,
- 94 => 94,
- 97 => 94,
- 100 => 100,
+ public static $yyReduceMap = array(
+ 0 => 0,
+ 1 => 1,
+ 2 => 2,
+ 4 => 4,
+ 5 => 5,
+ 6 => 6,
+ 7 => 7,
+ 8 => 8,
+ 9 => 9,
+ 10 => 10,
+ 11 => 11,
+ 12 => 12,
+ 13 => 13,
+ 14 => 14,
+ 15 => 15,
+ 16 => 16,
+ 17 => 17,
+ 20 => 17,
+ 199 => 17,
+ 18 => 18,
+ 72 => 18,
+ 19 => 19,
+ 100 => 19,
+ 102 => 19,
+ 103 => 19,
+ 126 => 19,
+ 164 => 19,
+ 21 => 21,
+ 22 => 21,
+ 43 => 21,
+ 65 => 21,
+ 66 => 21,
+ 73 => 21,
+ 74 => 21,
+ 79 => 21,
+ 99 => 21,
+ 104 => 21,
+ 105 => 21,
+ 110 => 21,
+ 112 => 21,
+ 113 => 21,
+ 120 => 21,
+ 137 => 21,
+ 163 => 21,
+ 165 => 21,
+ 181 => 21,
+ 186 => 21,
+ 198 => 21,
+ 23 => 23,
+ 24 => 24,
+ 25 => 25,
+ 27 => 25,
+ 26 => 26,
+ 28 => 28,
+ 29 => 28,
+ 30 => 30,
+ 31 => 31,
+ 32 => 32,
+ 33 => 33,
+ 34 => 34,
+ 35 => 35,
+ 36 => 36,
+ 37 => 37,
+ 38 => 38,
+ 40 => 38,
+ 39 => 39,
+ 41 => 41,
+ 42 => 42,
+ 44 => 44,
+ 45 => 45,
+ 46 => 46,
+ 47 => 47,
+ 49 => 47,
+ 48 => 48,
+ 50 => 48,
+ 51 => 51,
+ 52 => 52,
+ 53 => 53,
+ 54 => 54,
+ 55 => 55,
+ 56 => 56,
+ 57 => 57,
+ 58 => 58,
+ 59 => 59,
+ 68 => 59,
+ 153 => 59,
+ 157 => 59,
+ 161 => 59,
+ 162 => 59,
+ 60 => 60,
+ 154 => 60,
+ 160 => 60,
+ 61 => 61,
+ 62 => 62,
+ 63 => 62,
+ 64 => 64,
+ 67 => 67,
+ 69 => 69,
+ 70 => 70,
+ 71 => 70,
+ 75 => 75,
+ 76 => 76,
+ 77 => 76,
+ 78 => 76,
+ 80 => 80,
+ 117 => 80,
+ 81 => 81,
+ 84 => 81,
+ 95 => 81,
+ 82 => 82,
+ 83 => 83,
+ 85 => 85,
+ 86 => 86,
+ 87 => 87,
+ 92 => 87,
+ 88 => 88,
+ 91 => 88,
+ 89 => 89,
+ 94 => 89,
+ 90 => 90,
+ 93 => 90,
+ 96 => 96,
+ 97 => 97,
+ 98 => 98,
101 => 101,
- 102 => 102,
- 105 => 105,
- 110 => 110,
+ 106 => 106,
+ 107 => 107,
+ 108 => 108,
+ 109 => 109,
111 => 111,
- 112 => 112,
- 113 => 113,
+ 114 => 114,
115 => 115,
+ 116 => 116,
118 => 118,
119 => 119,
- 120 => 120,
+ 121 => 121,
122 => 122,
123 => 123,
+ 124 => 124,
125 => 125,
- 126 => 126,
127 => 127,
+ 183 => 127,
+ 128 => 128,
129 => 129,
- 185 => 129,
130 => 130,
131 => 131,
132 => 132,
+ 135 => 132,
133 => 133,
134 => 134,
- 137 => 134,
- 135 => 135,
136 => 136,
138 => 138,
+ 139 => 139,
140 => 140,
141 => 141,
142 => 142,
@@ -2126,12 +3273,12 @@ static public $yy_action = array(
150 => 150,
151 => 151,
152 => 152,
- 153 => 153,
- 154 => 154,
- 157 => 157,
+ 155 => 155,
+ 156 => 156,
158 => 158,
- 160 => 160,
- 161 => 161,
+ 159 => 159,
+ 166 => 166,
+ 167 => 167,
168 => 168,
169 => 169,
170 => 170,
@@ -2145,948 +3292,1118 @@ static public $yy_action = array(
178 => 178,
179 => 179,
180 => 180,
- 181 => 181,
182 => 182,
184 => 184,
- 186 => 186,
+ 185 => 185,
187 => 187,
+ 188 => 188,
189 => 189,
190 => 190,
191 => 191,
- 192 => 192,
+ 192 => 191,
+ 194 => 191,
193 => 193,
- 194 => 193,
- 196 => 193,
195 => 195,
+ 196 => 196,
197 => 197,
- 198 => 198,
- 199 => 199,
);
-#line 95 "smarty_internal_templateparser.y"
- function yy_r0(){
- $this->_retvalue = $this->root_buffer->to_smarty_php();
- }
-#line 2165 "smarty_internal_templateparser.php"
-#line 103 "smarty_internal_templateparser.y"
- function yy_r1(){
- $this->current_buffer->append_subtree($this->yystack[$this->yyidx + 0]->minor);
- }
-#line 2170 "smarty_internal_templateparser.php"
-#line 119 "smarty_internal_templateparser.y"
- function yy_r4(){
- if ($this->compiler->has_code) {
- $tmp =''; foreach ($this->compiler->prefix_code as $code) {$tmp.=$code;} $this->compiler->prefix_code=array();
- $this->_retvalue = new _smarty_tag($this, $this->compiler->processNocacheCode($tmp.$this->yystack[$this->yyidx + 0]->minor,true));
- } else {
- $this->_retvalue = new _smarty_tag($this, $this->yystack[$this->yyidx + 0]->minor);
- }
- $this->compiler->has_variable_string = false;
- $this->block_nesting_level = count($this->compiler->_tag_stack);
- }
-#line 2182 "smarty_internal_templateparser.php"
-#line 131 "smarty_internal_templateparser.y"
- function yy_r5(){
- $this->_retvalue = new _smarty_tag($this, '');
- }
-#line 2187 "smarty_internal_templateparser.php"
-#line 136 "smarty_internal_templateparser.y"
- function yy_r6(){
- $this->_retvalue = new _smarty_text($this, $this->yystack[$this->yyidx + 0]->minor);
- }
-#line 2192 "smarty_internal_templateparser.php"
-#line 141 "smarty_internal_templateparser.y"
- function yy_r7(){
- if ($this->php_handling == Smarty::PHP_PASSTHRU) {
- $this->_retvalue = new _smarty_text($this, self::escape_start_tag($this->yystack[$this->yyidx + 0]->minor));
- } elseif ($this->php_handling == Smarty::PHP_QUOTE) {
- $this->_retvalue = new _smarty_text($this, htmlspecialchars($this->yystack[$this->yyidx + 0]->minor, ENT_QUOTES));
- } elseif ($this->php_handling == Smarty::PHP_ALLOW) {
- if (!($this->smarty instanceof SmartyBC)) {
- $this->compiler->trigger_template_error (self::Err3);
+
+ #line 93 "smarty_internal_templateparser.y"
+ function yy_r0()
+ {
+ $this->_retvalue = $this->root_buffer->to_smarty_php();
+ }
+ #line 2150 "smarty_internal_templateparser.php"
+ #line 101 "smarty_internal_templateparser.y"
+ function yy_r1()
+ {
+ if ($this->yystack[$this->yyidx + 0]->minor != null) {
+ $this->current_buffer->append_subtree($this->yystack[$this->yyidx + 0]->minor);
}
- $this->_retvalue = new _smarty_text($this, $this->compiler->processNocacheCode('<?php', true));
- } elseif ($this->php_handling == Smarty::PHP_REMOVE) {
- $this->_retvalue = new _smarty_text($this, '');
}
+ #line 2157 "smarty_internal_templateparser.php"
+ #line 108 "smarty_internal_templateparser.y"
+ function yy_r2()
+ {
+ if ($this->yystack[$this->yyidx + 0]->minor != null) {
+ // because of possible code injection
+ $this->current_buffer->append_subtree($this->yystack[$this->yyidx + 0]->minor);
+ }
}
-#line 2208 "smarty_internal_templateparser.php"
-#line 157 "smarty_internal_templateparser.y"
- function yy_r8(){
- if ($this->is_xml) {
+ #line 2165 "smarty_internal_templateparser.php"
+ #line 122 "smarty_internal_templateparser.y"
+ function yy_r4()
+ {
+ if ($this->compiler->has_code) {
+ $tmp = '';
+ foreach ($this->compiler->prefix_code as $code) {
+ $tmp .= $code;
+ }
+ $this->compiler->prefix_code = array();
+ $this->_retvalue = new _smarty_tag($this, $this->compiler->processNocacheCode($tmp . $this->yystack[$this->yyidx + - 1]->minor, true));
+ } else {
+ $this->_retvalue = null;
+ }
+ $this->compiler->has_variable_string = false;
+ $this->block_nesting_level = count($this->compiler->_tag_stack);
+ }
+ #line 2177 "smarty_internal_templateparser.php"
+ #line 134 "smarty_internal_templateparser.y"
+ function yy_r5()
+ {
+ $this->_retvalue = null;
+ }
+ #line 2182 "smarty_internal_templateparser.php"
+ #line 139 "smarty_internal_templateparser.y"
+ function yy_r6()
+ {
+ $this->_retvalue = new _smarty_text($this, $this->yystack[$this->yyidx + 0]->minor);
+ }
+ #line 2187 "smarty_internal_templateparser.php"
+ #line 144 "smarty_internal_templateparser.y"
+ function yy_r7()
+ {
+ if (strpos($this->yystack[$this->yyidx + 0]->minor, '<s') === 0) {
+ $this->lex->is_phpScript = true;
+ }
+ if ($this->php_handling == Smarty::PHP_PASSTHRU) {
+ if ($this->lex->is_phpScript) {
+ $s = addcslashes($this->yystack[$this->yyidx + 0]->minor, "'");
+ $this->_retvalue = new _smarty_text($this, $s);
+ } else {
+ $this->_retvalue = new _smarty_text($this, $this->yystack[$this->yyidx + 0]->minor);
+ }
+ } elseif ($this->php_handling == Smarty::PHP_QUOTE) {
+ $this->_retvalue = new _smarty_text($this, htmlspecialchars($this->yystack[$this->yyidx + 0]->minor, ENT_QUOTES));
+ } elseif ($this->php_handling == Smarty::PHP_ALLOW) {
+ if (!($this->smarty instanceof SmartyBC)) {
+ $this->compiler->trigger_template_error(self::Err3);
+ }
+ $this->_retvalue = new _smarty_tag($this, $this->compiler->processNocacheCode('<?php ', true));
+ } elseif ($this->php_handling == Smarty::PHP_REMOVE) {
+ $this->_retvalue = null;
+ }
+ }
+ #line 2211 "smarty_internal_templateparser.php"
+ #line 168 "smarty_internal_templateparser.y"
+ function yy_r8()
+ {
+ if ($this->is_xml) {
+ $this->compiler->tag_nocache = true;
+ $this->is_xml = false;
+ $save = $this->template->has_nocache_code;
+ $this->_retvalue = new _smarty_tag($this, $this->compiler->processNocacheCode("<?php echo '?>';?>\n", $this->compiler, true));
+ $this->template->has_nocache_code = $save;
+ } elseif ($this->php_handling == Smarty::PHP_PASSTHRU) {
+ $this->_retvalue = new _smarty_text($this, $this->yystack[$this->yyidx + 0]->minor);
+ } elseif ($this->php_handling == Smarty::PHP_QUOTE) {
+ $this->_retvalue = new _smarty_text($this, htmlspecialchars('?>', ENT_QUOTES));
+ } elseif ($this->php_handling == Smarty::PHP_ALLOW) {
+ $this->_retvalue = new _smarty_tag($this, $this->compiler->processNocacheCode('?>', true));
+ } elseif ($this->php_handling == Smarty::PHP_REMOVE) {
+ $this->_retvalue = null;
+ }
+ }
+ #line 2230 "smarty_internal_templateparser.php"
+ #line 186 "smarty_internal_templateparser.y"
+ function yy_r9()
+ {
+ if (!$this->lex->is_phpScript) {
+ $this->_retvalue = new _smarty_text($this, $this->yystack[$this->yyidx + 0]->minor);
+ } else {
+ $this->lex->is_phpScript = false;
+ if ($this->php_handling == Smarty::PHP_PASSTHRU) {
+ $this->_retvalue = new _smarty_text($this, $this->yystack[$this->yyidx + 0]->minor);
+ } elseif ($this->php_handling == Smarty::PHP_QUOTE) {
+ $this->_retvalue = new _smarty_text($this, htmlspecialchars($this->yystack[$this->yyidx + 0]->minor, ENT_QUOTES));
+ } elseif ($this->php_handling == Smarty::PHP_ALLOW) {
+ $this->_retvalue = new _smarty_tag($this, $this->compiler->processNocacheCode('?>', true));
+ } elseif ($this->php_handling == Smarty::PHP_REMOVE) {
+ $this->_retvalue = null;
+ }
+ }
+ }
+ #line 2248 "smarty_internal_templateparser.php"
+ #line 204 "smarty_internal_templateparser.y"
+ function yy_r10()
+ {
+ if ($this->php_handling == Smarty::PHP_PASSTHRU) {
+ $this->_retvalue = new _smarty_text($this, $this->yystack[$this->yyidx + 0]->minor);
+ } elseif ($this->php_handling == Smarty::PHP_QUOTE) {
+ $this->_retvalue = new _smarty_text($this, htmlspecialchars($this->yystack[$this->yyidx + 0]->minor, ENT_QUOTES));
+ } elseif ($this->php_handling == Smarty::PHP_ALLOW) {
+ if ($this->asp_tags) {
+ if (!($this->smarty instanceof SmartyBC)) {
+ $this->compiler->trigger_template_error(self::Err3);
+ }
+ $this->_retvalue = new _smarty_tag($this, $this->compiler->processNocacheCode('<%', true));
+ } else {
+ $this->_retvalue = new _smarty_text($this, $this->yystack[$this->yyidx + 0]->minor);
+ }
+ } elseif ($this->php_handling == Smarty::PHP_REMOVE) {
+ if ($this->asp_tags) {
+ $this->_retvalue = null;
+ } else {
+ $this->_retvalue = new _smarty_text($this, $this->yystack[$this->yyidx + 0]->minor);
+ }
+ }
+ }
+ #line 2272 "smarty_internal_templateparser.php"
+ #line 228 "smarty_internal_templateparser.y"
+ function yy_r11()
+ {
+ if ($this->php_handling == Smarty::PHP_PASSTHRU) {
+ $this->_retvalue = new _smarty_text($this, st);
+ } elseif ($this->php_handling == Smarty::PHP_QUOTE) {
+ $this->_retvalue = new _smarty_text($this, htmlspecialchars('%>', ENT_QUOTES));
+ } elseif ($this->php_handling == Smarty::PHP_ALLOW) {
+ if ($this->asp_tags) {
+ $this->_retvalue = new _smarty_tag($this, $this->compiler->processNocacheCode('%>', true));
+ } else {
+ $this->_retvalue = new _smarty_text($this, st);
+ }
+ } elseif ($this->php_handling == Smarty::PHP_REMOVE) {
+ if ($this->asp_tags) {
+ $this->_retvalue = null;
+ } else {
+ $this->_retvalue = new _smarty_text($this, st);
+ }
+ }
+ }
+ #line 2293 "smarty_internal_templateparser.php"
+ #line 250 "smarty_internal_templateparser.y"
+ function yy_r12()
+ {
$this->compiler->tag_nocache = true;
- $this->is_xml = false;
+ $this->is_xml = true;
$save = $this->template->has_nocache_code;
- $this->_retvalue = new _smarty_text($this, $this->compiler->processNocacheCode("<?php echo '?>';?>\n", $this->compiler, true));
+ $this->_retvalue = new _smarty_tag($this, $this->compiler->processNocacheCode("<?php echo '<?xml';?>", $this->compiler, true));
$this->template->has_nocache_code = $save;
- } elseif ($this->php_handling == Smarty::PHP_PASSTHRU) {
- $this->_retvalue = new _smarty_text($this, '?<?php ?>>');
- } elseif ($this->php_handling == Smarty::PHP_QUOTE) {
- $this->_retvalue = new _smarty_text($this, htmlspecialchars('?>', ENT_QUOTES));
- } elseif ($this->php_handling == Smarty::PHP_ALLOW) {
- $this->_retvalue = new _smarty_text($this, $this->compiler->processNocacheCode('?>', true));
- } elseif ($this->php_handling == Smarty::PHP_REMOVE) {
- $this->_retvalue = new _smarty_text($this, '');
- }
- }
-#line 2227 "smarty_internal_templateparser.php"
-#line 176 "smarty_internal_templateparser.y"
- function yy_r9(){
- if ($this->php_handling == Smarty::PHP_PASSTHRU) {
- $this->_retvalue = new _smarty_text($this, '<<?php ?>%');
- } elseif ($this->php_handling == Smarty::PHP_QUOTE) {
- $this->_retvalue = new _smarty_text($this, htmlspecialchars($this->yystack[$this->yyidx + 0]->minor, ENT_QUOTES));
- } elseif ($this->php_handling == Smarty::PHP_ALLOW) {
- if ($this->asp_tags) {
- if (!($this->smarty instanceof SmartyBC)) {
- $this->compiler->trigger_template_error (self::Err3);
- }
- $this->_retvalue = new _smarty_text($this, $this->compiler->processNocacheCode('<%', true));
+ }
+ #line 2302 "smarty_internal_templateparser.php"
+ #line 259 "smarty_internal_templateparser.y"
+ function yy_r13()
+ {
+ if ($this->strip) {
+ $this->_retvalue = new _smarty_text($this, preg_replace('![\t ]*[\r\n]+[\t ]*!', '', $this->yystack[$this->yyidx + 0]->minor));
} else {
- $this->_retvalue = new _smarty_text($this, '<<?php ?>%');
+ $this->_retvalue = new _smarty_text($this, $this->yystack[$this->yyidx + 0]->minor);
}
- } elseif ($this->php_handling == Smarty::PHP_REMOVE) {
- if ($this->asp_tags) {
- $this->_retvalue = new _smarty_text($this, '');
+ }
+ #line 2311 "smarty_internal_templateparser.php"
+ #line 268 "smarty_internal_templateparser.y"
+ function yy_r14()
+ {
+ $this->strip = true;
+ }
+ #line 2316 "smarty_internal_templateparser.php"
+ #line 272 "smarty_internal_templateparser.y"
+ function yy_r15()
+ {
+ $this->strip = false;
+ }
+ #line 2321 "smarty_internal_templateparser.php"
+ #line 276 "smarty_internal_templateparser.y"
+ function yy_r16()
+ {
+ if ($this->strip) {
+ SMARTY_INTERNAL_COMPILE_BLOCK::blockSource($this->compiler, preg_replace('![\t ]*[\r\n]+[\t ]*!', '', $this->yystack[$this->yyidx + 0]->minor));
} else {
- $this->_retvalue = new _smarty_text($this, '<<?php ?>%');
+ SMARTY_INTERNAL_COMPILE_BLOCK::blockSource($this->compiler, $this->yystack[$this->yyidx + 0]->minor);
}
}
+ #line 2330 "smarty_internal_templateparser.php"
+ #line 285 "smarty_internal_templateparser.y"
+ function yy_r17()
+ {
+ $this->_retvalue = '';
}
-#line 2251 "smarty_internal_templateparser.php"
-#line 200 "smarty_internal_templateparser.y"
- function yy_r10(){
- if ($this->php_handling == Smarty::PHP_PASSTHRU) {
- $this->_retvalue = new _smarty_text($this, '%<?php ?>>');
- } elseif ($this->php_handling == Smarty::PHP_QUOTE) {
- $this->_retvalue = new _smarty_text($this, htmlspecialchars('%>', ENT_QUOTES));
- } elseif ($this->php_handling == Smarty::PHP_ALLOW) {
- if ($this->asp_tags) {
- $this->_retvalue = new _smarty_text($this, $this->compiler->processNocacheCode('%>', true));
+ #line 2335 "smarty_internal_templateparser.php"
+ #line 289 "smarty_internal_templateparser.y"
+ function yy_r18()
+ {
+ $this->_retvalue = $this->yystack[$this->yyidx + - 1]->minor;
+ }
+ #line 2340 "smarty_internal_templateparser.php"
+ #line 293 "smarty_internal_templateparser.y"
+ function yy_r19()
+ {
+ $this->_retvalue = $this->yystack[$this->yyidx + - 1]->minor . $this->yystack[$this->yyidx + 0]->minor;
+ }
+ #line 2345 "smarty_internal_templateparser.php"
+ #line 301 "smarty_internal_templateparser.y"
+ function yy_r21()
+ {
+ $this->_retvalue = $this->yystack[$this->yyidx + 0]->minor;
+ }
+ #line 2350 "smarty_internal_templateparser.php"
+ #line 314 "smarty_internal_templateparser.y"
+ function yy_r23()
+ {
+ $this->_retvalue = $this->compiler->compileTag('private_print_expression', array(), array('value' => $this->yystack[$this->yyidx + 0]->minor));
+ }
+ #line 2355 "smarty_internal_templateparser.php"
+ #line 318 "smarty_internal_templateparser.y"
+ function yy_r24()
+ {
+ $this->_retvalue = $this->compiler->compileTag('private_print_expression', $this->yystack[$this->yyidx + 0]->minor, array('value' => $this->yystack[$this->yyidx + - 2]->minor, 'modifierlist' => $this->yystack[$this->yyidx + - 1]->minor));
+ }
+ #line 2360 "smarty_internal_templateparser.php"
+ #line 322 "smarty_internal_templateparser.y"
+ function yy_r25()
+ {
+ $this->_retvalue = $this->compiler->compileTag('private_print_expression', $this->yystack[$this->yyidx + 0]->minor, array('value' => $this->yystack[$this->yyidx + - 1]->minor));
+ }
+ #line 2365 "smarty_internal_templateparser.php"
+ #line 326 "smarty_internal_templateparser.y"
+ function yy_r26()
+ {
+ $this->_retvalue = $this->compiler->compileTag('private_print_expression', $this->yystack[$this->yyidx + 0]->minor, array('value' => $this->yystack[$this->yyidx + - 2]->minor, 'modifierlist' => $this->yystack[$this->yyidx + - 1]->minor));
+ }
+ #line 2370 "smarty_internal_templateparser.php"
+ #line 339 "smarty_internal_templateparser.y"
+ function yy_r28()
+ {
+ $this->_retvalue = $this->compiler->compileTag('assign', array(array('value' => $this->yystack[$this->yyidx + 0]->minor), array('var' => "'" . $this->yystack[$this->yyidx + - 2]->minor . "'")));
+ }
+ #line 2375 "smarty_internal_templateparser.php"
+ #line 347 "smarty_internal_templateparser.y"
+ function yy_r30()
+ {
+ $this->_retvalue = $this->compiler->compileTag('assign', array_merge(array(array('value' => $this->yystack[$this->yyidx + - 1]->minor), array('var' => "'" . $this->yystack[$this->yyidx + - 3]->minor . "'")), $this->yystack[$this->yyidx + 0]->minor));
+ }
+ #line 2380 "smarty_internal_templateparser.php"
+ #line 351 "smarty_internal_templateparser.y"
+ function yy_r31()
+ {
+ $this->_retvalue = $this->compiler->compileTag('assign', array_merge(array(array('value' => $this->yystack[$this->yyidx + - 1]->minor), array('var' => $this->yystack[$this->yyidx + - 3]->minor['var'])), $this->yystack[$this->yyidx + 0]->minor), array('smarty_internal_index' => $this->yystack[$this->yyidx + - 3]->minor['smarty_internal_index']));
+ }
+ #line 2385 "smarty_internal_templateparser.php"
+ #line 356 "smarty_internal_templateparser.y"
+ function yy_r32()
+ {
+ $this->_retvalue = $this->compiler->compileTag($this->yystack[$this->yyidx + - 1]->minor, $this->yystack[$this->yyidx + 0]->minor);
+ }
+ #line 2390 "smarty_internal_templateparser.php"
+ #line 360 "smarty_internal_templateparser.y"
+ function yy_r33()
+ {
+ $this->_retvalue = $this->compiler->compileTag($this->yystack[$this->yyidx + 0]->minor, array());
+ }
+ #line 2395 "smarty_internal_templateparser.php"
+ #line 365 "smarty_internal_templateparser.y"
+ function yy_r34()
+ {
+ $this->_retvalue = $this->compiler->compileTag($this->yystack[$this->yyidx + - 3]->minor, $this->yystack[$this->yyidx + 0]->minor, array('object_method' => $this->yystack[$this->yyidx + - 1]->minor));
+ }
+ #line 2400 "smarty_internal_templateparser.php"
+ #line 370 "smarty_internal_templateparser.y"
+ function yy_r35()
+ {
+ $this->_retvalue = '<?php ob_start();?>' . $this->compiler->compileTag($this->yystack[$this->yyidx + - 2]->minor, $this->yystack[$this->yyidx + 0]->minor) . '<?php echo ';
+ $this->_retvalue .= $this->compiler->compileTag('private_modifier', array(), array('modifierlist' => $this->yystack[$this->yyidx + - 1]->minor, 'value' => 'ob_get_clean()')) . '?>';
+ }
+ #line 2406 "smarty_internal_templateparser.php"
+ #line 376 "smarty_internal_templateparser.y"
+ function yy_r36()
+ {
+ $this->_retvalue = '<?php ob_start();?>' . $this->compiler->compileTag($this->yystack[$this->yyidx + - 4]->minor, $this->yystack[$this->yyidx + 0]->minor, array('object_method' => $this->yystack[$this->yyidx + - 2]->minor)) . '<?php echo ';
+ $this->_retvalue .= $this->compiler->compileTag('private_modifier', array(), array('modifierlist' => $this->yystack[$this->yyidx + - 1]->minor, 'value' => 'ob_get_clean()')) . '?>';
+ }
+ #line 2412 "smarty_internal_templateparser.php"
+ #line 382 "smarty_internal_templateparser.y"
+ function yy_r37()
+ {
+ $tag = trim(substr($this->yystack[$this->yyidx + - 1]->minor, $this->lex->ldel_length));
+ $this->_retvalue = $this->compiler->compileTag(($tag == 'else if') ? 'elseif' : $tag, array(), array('if condition' => $this->yystack[$this->yyidx + 0]->minor));
+ }
+ #line 2418 "smarty_internal_templateparser.php"
+ #line 387 "smarty_internal_templateparser.y"
+ function yy_r38()
+ {
+ $tag = trim(substr($this->yystack[$this->yyidx + - 2]->minor, $this->lex->ldel_length));
+ $this->_retvalue = $this->compiler->compileTag(($tag == 'else if') ? 'elseif' : $tag, $this->yystack[$this->yyidx + 0]->minor, array('if condition' => $this->yystack[$this->yyidx + - 1]->minor));
+ }
+ #line 2424 "smarty_internal_templateparser.php"
+ #line 392 "smarty_internal_templateparser.y"
+ function yy_r39()
+ {
+ $tag = trim(substr($this->yystack[$this->yyidx + - 1]->minor, $this->lex->ldel_length));
+ $this->_retvalue = $this->compiler->compileTag(($tag == 'else if') ? 'elseif' : $tag, array(), array('if condition' => $this->yystack[$this->yyidx + 0]->minor));
+ }
+ #line 2430 "smarty_internal_templateparser.php"
+ #line 403 "smarty_internal_templateparser.y"
+ function yy_r41()
+ {
+ $this->_retvalue = $this->compiler->compileTag('for', array_merge($this->yystack[$this->yyidx + 0]->minor, array(array('start' => $this->yystack[$this->yyidx + - 9]->minor), array('ifexp' => $this->yystack[$this->yyidx + - 6]->minor), array('var' => $this->yystack[$this->yyidx + - 2]->minor), array('step' => $this->yystack[$this->yyidx + - 1]->minor))), 1);
+ }
+ #line 2435 "smarty_internal_templateparser.php"
+ #line 407 "smarty_internal_templateparser.y"
+ function yy_r42()
+ {
+ $this->_retvalue = '=' . $this->yystack[$this->yyidx + 0]->minor;
+ }
+ #line 2440 "smarty_internal_templateparser.php"
+ #line 415 "smarty_internal_templateparser.y"
+ function yy_r44()
+ {
+ $this->_retvalue = $this->compiler->compileTag('for', array_merge($this->yystack[$this->yyidx + 0]->minor, array(array('start' => $this->yystack[$this->yyidx + - 3]->minor), array('to' => $this->yystack[$this->yyidx + - 1]->minor))), 0);
+ }
+ #line 2445 "smarty_internal_templateparser.php"
+ #line 419 "smarty_internal_templateparser.y"
+ function yy_r45()
+ {
+ $this->_retvalue = $this->compiler->compileTag('for', array_merge($this->yystack[$this->yyidx + 0]->minor, array(array('start' => $this->yystack[$this->yyidx + - 5]->minor), array('to' => $this->yystack[$this->yyidx + - 3]->minor), array('step' => $this->yystack[$this->yyidx + - 1]->minor))), 0);
+ }
+ #line 2450 "smarty_internal_templateparser.php"
+ #line 424 "smarty_internal_templateparser.y"
+ function yy_r46()
+ {
+ $this->_retvalue = $this->compiler->compileTag('foreach', $this->yystack[$this->yyidx + 0]->minor);
+ }
+ #line 2455 "smarty_internal_templateparser.php"
+ #line 429 "smarty_internal_templateparser.y"
+ function yy_r47()
+ {
+ $this->_retvalue = $this->compiler->compileTag('foreach', array_merge($this->yystack[$this->yyidx + 0]->minor, array(array('from' => $this->yystack[$this->yyidx + - 4]->minor), array('item' => $this->yystack[$this->yyidx + - 1]->minor))));
+ }
+ #line 2460 "smarty_internal_templateparser.php"
+ #line 433 "smarty_internal_templateparser.y"
+ function yy_r48()
+ {
+ $this->_retvalue = $this->compiler->compileTag('foreach', array_merge($this->yystack[$this->yyidx + 0]->minor, array(array('from' => $this->yystack[$this->yyidx + - 7]->minor), array('item' => $this->yystack[$this->yyidx + - 1]->minor), array('key' => $this->yystack[$this->yyidx + - 4]->minor))));
+ }
+ #line 2465 "smarty_internal_templateparser.php"
+ #line 446 "smarty_internal_templateparser.y"
+ function yy_r51()
+ {
+ $this->_retvalue = $this->compiler->compileTag('setfilter', array(), array('modifier_list' => array(array_merge(array($this->yystack[$this->yyidx + - 1]->minor), $this->yystack[$this->yyidx + 0]->minor))));
+ }
+ #line 2470 "smarty_internal_templateparser.php"
+ #line 450 "smarty_internal_templateparser.y"
+ function yy_r52()
+ {
+ $this->_retvalue = $this->compiler->compileTag('setfilter', array(), array('modifier_list' => array_merge(array(array_merge(array($this->yystack[$this->yyidx + - 2]->minor), $this->yystack[$this->yyidx + - 1]->minor)), $this->yystack[$this->yyidx + 0]->minor)));
+ }
+ #line 2475 "smarty_internal_templateparser.php"
+ #line 455 "smarty_internal_templateparser.y"
+ function yy_r53()
+ {
+ $j = strrpos($this->yystack[$this->yyidx + 0]->minor, '.');
+ if ($this->yystack[$this->yyidx + 0]->minor[$j + 1] == 'c') {
+ // {$smarty.block.child}
+ $this->_retvalue = SMARTY_INTERNAL_COMPILE_BLOCK::compileChildBlock($this->compiler);
} else {
- $this->_retvalue = new _smarty_text($this, '%<?php ?>>');
+ // {$smarty.block.parent}
+ $this->_retvalue = SMARTY_INTERNAL_COMPILE_BLOCK::compileParentBlock($this->compiler);
}
- } elseif ($this->php_handling == Smarty::PHP_REMOVE) {
- if ($this->asp_tags) {
- $this->_retvalue = new _smarty_text($this, '');
+ }
+ #line 2487 "smarty_internal_templateparser.php"
+ #line 468 "smarty_internal_templateparser.y"
+ function yy_r54()
+ {
+ $this->_retvalue = $this->compiler->compileTag($this->yystack[$this->yyidx + 0]->minor . 'close', array());
+ }
+ #line 2492 "smarty_internal_templateparser.php"
+ #line 472 "smarty_internal_templateparser.y"
+ function yy_r55()
+ {
+ $this->_retvalue = $this->compiler->compileTag($this->yystack[$this->yyidx + - 1]->minor . 'close', array(), array('modifier_list' => $this->yystack[$this->yyidx + 0]->minor));
+ }
+ #line 2497 "smarty_internal_templateparser.php"
+ #line 477 "smarty_internal_templateparser.y"
+ function yy_r56()
+ {
+ $this->_retvalue = $this->compiler->compileTag($this->yystack[$this->yyidx + - 2]->minor . 'close', array(), array('object_method' => $this->yystack[$this->yyidx + 0]->minor));
+ }
+ #line 2502 "smarty_internal_templateparser.php"
+ #line 481 "smarty_internal_templateparser.y"
+ function yy_r57()
+ {
+ $this->_retvalue = $this->compiler->compileTag($this->yystack[$this->yyidx + - 3]->minor . 'close', array(), array('object_method' => $this->yystack[$this->yyidx + - 1]->minor, 'modifier_list' => $this->yystack[$this->yyidx + 0]->minor));
+ }
+ #line 2507 "smarty_internal_templateparser.php"
+ #line 489 "smarty_internal_templateparser.y"
+ function yy_r58()
+ {
+ $this->_retvalue = $this->yystack[$this->yyidx + - 1]->minor;
+ $this->_retvalue[] = $this->yystack[$this->yyidx + 0]->minor;
+ }
+ #line 2513 "smarty_internal_templateparser.php"
+ #line 495 "smarty_internal_templateparser.y"
+ function yy_r59()
+ {
+ $this->_retvalue = array($this->yystack[$this->yyidx + 0]->minor);
+ }
+ #line 2518 "smarty_internal_templateparser.php"
+ #line 500 "smarty_internal_templateparser.y"
+ function yy_r60()
+ {
+ $this->_retvalue = array();
+ }
+ #line 2523 "smarty_internal_templateparser.php"
+ #line 505 "smarty_internal_templateparser.y"
+ function yy_r61()
+ {
+ if (preg_match('~^true$~i', $this->yystack[$this->yyidx + 0]->minor)) {
+ $this->_retvalue = array($this->yystack[$this->yyidx + - 2]->minor => 'true');
+ } elseif (preg_match('~^false$~i', $this->yystack[$this->yyidx + 0]->minor)) {
+ $this->_retvalue = array($this->yystack[$this->yyidx + - 2]->minor => 'false');
+ } elseif (preg_match('~^null$~i', $this->yystack[$this->yyidx + 0]->minor)) {
+ $this->_retvalue = array($this->yystack[$this->yyidx + - 2]->minor => 'null');
} else {
- $this->_retvalue = new _smarty_text($this, '%<?php ?>>');
+ $this->_retvalue = array($this->yystack[$this->yyidx + - 2]->minor => "'" . $this->yystack[$this->yyidx + 0]->minor . "'");
}
}
+ #line 2536 "smarty_internal_templateparser.php"
+ #line 517 "smarty_internal_templateparser.y"
+ function yy_r62()
+ {
+ $this->_retvalue = array(trim($this->yystack[$this->yyidx + - 1]->minor, " =\n\r\t") => $this->yystack[$this->yyidx + 0]->minor);
}
-#line 2272 "smarty_internal_templateparser.php"
-#line 220 "smarty_internal_templateparser.y"
- function yy_r11(){
- if ($this->strip) {
- $this->_retvalue = new _smarty_text($this, preg_replace('![\t ]*[\r\n]+[\t ]*!', '', self::escape_start_tag($this->yystack[$this->yyidx + 0]->minor)));
- } else {
- $this->_retvalue = new _smarty_text($this, self::escape_start_tag($this->yystack[$this->yyidx + 0]->minor));
- }
- }
-#line 2281 "smarty_internal_templateparser.php"
-#line 229 "smarty_internal_templateparser.y"
- function yy_r12(){
- $this->compiler->tag_nocache = true;
- $this->is_xml = true;
- $save = $this->template->has_nocache_code;
- $this->_retvalue = new _smarty_text($this, $this->compiler->processNocacheCode("<?php echo '<?xml';?>", $this->compiler, true));
- $this->template->has_nocache_code = $save;
- }
-#line 2290 "smarty_internal_templateparser.php"
-#line 238 "smarty_internal_templateparser.y"
- function yy_r13(){
- if ($this->strip) {
- $this->_retvalue = new _smarty_text($this, preg_replace('![\t ]*[\r\n]+[\t ]*!', '', $this->yystack[$this->yyidx + 0]->minor));
- } else {
- $this->_retvalue = new _smarty_text($this, $this->yystack[$this->yyidx + 0]->minor);
+ #line 2541 "smarty_internal_templateparser.php"
+ #line 525 "smarty_internal_templateparser.y"
+ function yy_r64()
+ {
+ $this->_retvalue = "'" . $this->yystack[$this->yyidx + 0]->minor . "'";
+ }
+ #line 2546 "smarty_internal_templateparser.php"
+ #line 537 "smarty_internal_templateparser.y"
+ function yy_r67()
+ {
+ $this->_retvalue = array($this->yystack[$this->yyidx + - 2]->minor => $this->yystack[$this->yyidx + 0]->minor);
+ }
+ #line 2551 "smarty_internal_templateparser.php"
+ #line 550 "smarty_internal_templateparser.y"
+ function yy_r69()
+ {
+ $this->yystack[$this->yyidx + - 2]->minor[] = $this->yystack[$this->yyidx + 0]->minor;
+ $this->_retvalue = $this->yystack[$this->yyidx + - 2]->minor;
+ }
+ #line 2557 "smarty_internal_templateparser.php"
+ #line 555 "smarty_internal_templateparser.y"
+ function yy_r70()
+ {
+ $this->_retvalue = array('var' => $this->yystack[$this->yyidx + - 2]->minor, 'value' => $this->yystack[$this->yyidx + 0]->minor);
+ }
+ #line 2562 "smarty_internal_templateparser.php"
+ #line 583 "smarty_internal_templateparser.y"
+ function yy_r75()
+ {
+ $this->_retvalue = '$_smarty_tpl->getStreamVariable(\'' . $this->yystack[$this->yyidx + - 2]->minor . '://' . $this->yystack[$this->yyidx + 0]->minor . '\')';
+ }
+ #line 2567 "smarty_internal_templateparser.php"
+ #line 588 "smarty_internal_templateparser.y"
+ function yy_r76()
+ {
+ $this->_retvalue = $this->yystack[$this->yyidx + - 2]->minor . trim($this->yystack[$this->yyidx + - 1]->minor) . $this->yystack[$this->yyidx + 0]->minor;
+ }
+ #line 2572 "smarty_internal_templateparser.php"
+ #line 607 "smarty_internal_templateparser.y"
+ function yy_r80()
+ {
+ $this->_retvalue = $this->compiler->compileTag('private_modifier', array(), array('value' => $this->yystack[$this->yyidx + - 1]->minor, 'modifierlist' => $this->yystack[$this->yyidx + 0]->minor));
+ }
+ #line 2577 "smarty_internal_templateparser.php"
+ #line 613 "smarty_internal_templateparser.y"
+ function yy_r81()
+ {
+ $this->_retvalue = $this->yystack[$this->yyidx + - 2]->minor . $this->yystack[$this->yyidx + - 1]->minor . $this->yystack[$this->yyidx + 0]->minor;
+ }
+ #line 2582 "smarty_internal_templateparser.php"
+ #line 617 "smarty_internal_templateparser.y"
+ function yy_r82()
+ {
+ $this->_retvalue = 'in_array(' . $this->yystack[$this->yyidx + - 2]->minor . ',' . $this->yystack[$this->yyidx + 0]->minor . ')';
+ }
+ #line 2587 "smarty_internal_templateparser.php"
+ #line 621 "smarty_internal_templateparser.y"
+ function yy_r83()
+ {
+ $this->_retvalue = 'in_array(' . $this->yystack[$this->yyidx + - 2]->minor . ',(array)' . $this->yystack[$this->yyidx + 0]->minor . ')';
+ }
+ #line 2592 "smarty_internal_templateparser.php"
+ #line 629 "smarty_internal_templateparser.y"
+ function yy_r85()
+ {
+ $this->_retvalue = '!(' . $this->yystack[$this->yyidx + - 2]->minor . ' % ' . $this->yystack[$this->yyidx + 0]->minor . ')';
+ }
+ #line 2597 "smarty_internal_templateparser.php"
+ #line 633 "smarty_internal_templateparser.y"
+ function yy_r86()
+ {
+ $this->_retvalue = '(' . $this->yystack[$this->yyidx + - 2]->minor . ' % ' . $this->yystack[$this->yyidx + 0]->minor . ')';
+ }
+ #line 2602 "smarty_internal_templateparser.php"
+ #line 637 "smarty_internal_templateparser.y"
+ function yy_r87()
+ {
+ $this->_retvalue = '!(1 & ' . $this->yystack[$this->yyidx + - 1]->minor . ')';
+ }
+ #line 2607 "smarty_internal_templateparser.php"
+ #line 641 "smarty_internal_templateparser.y"
+ function yy_r88()
+ {
+ $this->_retvalue = '(1 & ' . $this->yystack[$this->yyidx + - 1]->minor . ')';
+ }
+ #line 2612 "smarty_internal_templateparser.php"
+ #line 645 "smarty_internal_templateparser.y"
+ function yy_r89()
+ {
+ $this->_retvalue = '!(1 & ' . $this->yystack[$this->yyidx + - 2]->minor . ' / ' . $this->yystack[$this->yyidx + 0]->minor . ')';
+ }
+ #line 2617 "smarty_internal_templateparser.php"
+ #line 649 "smarty_internal_templateparser.y"
+ function yy_r90()
+ {
+ $this->_retvalue = '(1 & ' . $this->yystack[$this->yyidx + - 2]->minor . ' / ' . $this->yystack[$this->yyidx + 0]->minor . ')';
+ }
+ #line 2622 "smarty_internal_templateparser.php"
+ #line 673 "smarty_internal_templateparser.y"
+ function yy_r96()
+ {
+ self::$prefix_number ++;
+ $this->compiler->prefix_code[] = '<?php $_tmp' . self::$prefix_number . '=' . $this->yystack[$this->yyidx + 0]->minor . ';?>';
+ $this->_retvalue = $this->yystack[$this->yyidx + - 2]->minor . $this->yystack[$this->yyidx + - 1]->minor . '$_tmp' . self::$prefix_number;
+ }
+ #line 2629 "smarty_internal_templateparser.php"
+ #line 682 "smarty_internal_templateparser.y"
+ function yy_r97()
+ {
+ $this->_retvalue = $this->yystack[$this->yyidx + - 6]->minor . ' ? ' . $this->compileVariable("'" . $this->yystack[$this->yyidx + - 2]->minor . "'") . ' : ' . $this->yystack[$this->yyidx + 0]->minor;
+ }
+ #line 2634 "smarty_internal_templateparser.php"
+ #line 686 "smarty_internal_templateparser.y"
+ function yy_r98()
+ {
+ $this->_retvalue = $this->yystack[$this->yyidx + - 5]->minor . ' ? ' . $this->yystack[$this->yyidx + - 2]->minor . ' : ' . $this->yystack[$this->yyidx + 0]->minor;
+ }
+ #line 2639 "smarty_internal_templateparser.php"
+ #line 701 "smarty_internal_templateparser.y"
+ function yy_r101()
+ {
+ $this->_retvalue = '!' . $this->yystack[$this->yyidx + 0]->minor;
+ }
+ #line 2644 "smarty_internal_templateparser.php"
+ #line 722 "smarty_internal_templateparser.y"
+ function yy_r106()
+ {
+ $this->_retvalue = $this->yystack[$this->yyidx + - 2]->minor . '.' . $this->yystack[$this->yyidx + 0]->minor;
}
+ #line 2649 "smarty_internal_templateparser.php"
+ #line 726 "smarty_internal_templateparser.y"
+ function yy_r107()
+ {
+ $this->_retvalue = $this->yystack[$this->yyidx + - 1]->minor . '.';
+ }
+ #line 2654 "smarty_internal_templateparser.php"
+ #line 730 "smarty_internal_templateparser.y"
+ function yy_r108()
+ {
+ $this->_retvalue = '.' . $this->yystack[$this->yyidx + 0]->minor;
}
-#line 2299 "smarty_internal_templateparser.php"
-#line 247 "smarty_internal_templateparser.y"
- function yy_r14(){
- $this->strip = true;
- $this->_retvalue = new _smarty_text($this, '');
- }
-#line 2305 "smarty_internal_templateparser.php"
-#line 252 "smarty_internal_templateparser.y"
- function yy_r15(){
- $this->strip = false;
- $this->_retvalue = new _smarty_text($this, '');
- }
-#line 2311 "smarty_internal_templateparser.php"
-#line 258 "smarty_internal_templateparser.y"
- function yy_r16(){
- $this->_retvalue = '';
- }
-#line 2316 "smarty_internal_templateparser.php"
-#line 262 "smarty_internal_templateparser.y"
- function yy_r17(){
- $this->_retvalue = $this->yystack[$this->yyidx + -1]->minor;
- }
-#line 2321 "smarty_internal_templateparser.php"
-#line 266 "smarty_internal_templateparser.y"
- function yy_r18(){
- $this->_retvalue = $this->yystack[$this->yyidx + -1]->minor.$this->yystack[$this->yyidx + 0]->minor;
- }
-#line 2326 "smarty_internal_templateparser.php"
-#line 274 "smarty_internal_templateparser.y"
- function yy_r20(){
- $this->_retvalue = $this->yystack[$this->yyidx + 0]->minor;
- }
-#line 2331 "smarty_internal_templateparser.php"
-#line 282 "smarty_internal_templateparser.y"
- function yy_r22(){
- $this->_retvalue = self::escape_start_tag($this->yystack[$this->yyidx + 0]->minor);
- }
-#line 2336 "smarty_internal_templateparser.php"
-#line 290 "smarty_internal_templateparser.y"
- function yy_r24(){
- $this->_retvalue = self::escape_end_tag($this->yystack[$this->yyidx + 0]->minor);
- }
-#line 2341 "smarty_internal_templateparser.php"
-#line 294 "smarty_internal_templateparser.y"
- function yy_r25(){
- $this->_retvalue = '<<?php ?>%';
- }
-#line 2346 "smarty_internal_templateparser.php"
-#line 298 "smarty_internal_templateparser.y"
- function yy_r26(){
- $this->_retvalue = '%<?php ?>>';
- }
-#line 2351 "smarty_internal_templateparser.php"
-#line 307 "smarty_internal_templateparser.y"
- function yy_r27(){
- $this->_retvalue = $this->compiler->compileTag('private_print_expression',array(),array('value'=>$this->yystack[$this->yyidx + -1]->minor));
- }
-#line 2356 "smarty_internal_templateparser.php"
-#line 311 "smarty_internal_templateparser.y"
- function yy_r28(){
- $this->_retvalue = $this->compiler->compileTag('private_print_expression',$this->yystack[$this->yyidx + -1]->minor,array('value'=>$this->yystack[$this->yyidx + -3]->minor, 'modifierlist'=>$this->yystack[$this->yyidx + -2]->minor));
- }
-#line 2361 "smarty_internal_templateparser.php"
-#line 315 "smarty_internal_templateparser.y"
- function yy_r29(){
- $this->_retvalue = $this->compiler->compileTag('private_print_expression',$this->yystack[$this->yyidx + -1]->minor,array('value'=>$this->yystack[$this->yyidx + -2]->minor));
- }
-#line 2366 "smarty_internal_templateparser.php"
-#line 319 "smarty_internal_templateparser.y"
- function yy_r30(){
- $this->_retvalue = $this->compiler->compileTag('private_print_expression',$this->yystack[$this->yyidx + -1]->minor,array('value'=>$this->yystack[$this->yyidx + -3]->minor,'modifierlist'=>$this->yystack[$this->yyidx + -2]->minor));
- }
-#line 2371 "smarty_internal_templateparser.php"
-#line 332 "smarty_internal_templateparser.y"
- function yy_r32(){
- $this->_retvalue = $this->compiler->compileTag('assign',array(array('value'=>$this->yystack[$this->yyidx + -1]->minor),array('var'=>"'".$this->yystack[$this->yyidx + -3]->minor."'")));
- }
-#line 2376 "smarty_internal_templateparser.php"
-#line 340 "smarty_internal_templateparser.y"
- function yy_r34(){
- $this->_retvalue = $this->compiler->compileTag('assign',array_merge(array(array('value'=>$this->yystack[$this->yyidx + -2]->minor),array('var'=>"'".$this->yystack[$this->yyidx + -4]->minor."'")),$this->yystack[$this->yyidx + -1]->minor));
- }
-#line 2381 "smarty_internal_templateparser.php"
-#line 344 "smarty_internal_templateparser.y"
- function yy_r35(){
- $this->_retvalue = $this->compiler->compileTag('assign',array_merge(array(array('value'=>$this->yystack[$this->yyidx + -2]->minor),array('var'=>$this->yystack[$this->yyidx + -4]->minor['var'])),$this->yystack[$this->yyidx + -1]->minor),array('smarty_internal_index'=>$this->yystack[$this->yyidx + -4]->minor['smarty_internal_index']));
- }
-#line 2386 "smarty_internal_templateparser.php"
-#line 349 "smarty_internal_templateparser.y"
- function yy_r36(){
- $this->_retvalue = $this->compiler->compileTag($this->yystack[$this->yyidx + -2]->minor,$this->yystack[$this->yyidx + -1]->minor);
- }
-#line 2391 "smarty_internal_templateparser.php"
-#line 353 "smarty_internal_templateparser.y"
- function yy_r37(){
- $this->_retvalue = $this->compiler->compileTag($this->yystack[$this->yyidx + -1]->minor,array());
- }
-#line 2396 "smarty_internal_templateparser.php"
-#line 358 "smarty_internal_templateparser.y"
- function yy_r38(){
- $this->_retvalue = $this->compiler->compileTag($this->yystack[$this->yyidx + -4]->minor,$this->yystack[$this->yyidx + -1]->minor,array('object_methode'=>$this->yystack[$this->yyidx + -2]->minor));
- }
-#line 2401 "smarty_internal_templateparser.php"
-#line 363 "smarty_internal_templateparser.y"
- function yy_r39(){
- $this->_retvalue = '<?php ob_start();?>'.$this->compiler->compileTag($this->yystack[$this->yyidx + -3]->minor,$this->yystack[$this->yyidx + -1]->minor).'<?php echo ';
- $this->_retvalue .= $this->compiler->compileTag('private_modifier',array(),array('modifierlist'=>$this->yystack[$this->yyidx + -2]->minor,'value'=>'ob_get_clean()')).'?>';
- }
-#line 2407 "smarty_internal_templateparser.php"
-#line 369 "smarty_internal_templateparser.y"
- function yy_r40(){
- $this->_retvalue = '<?php ob_start();?>'.$this->compiler->compileTag($this->yystack[$this->yyidx + -5]->minor,$this->yystack[$this->yyidx + -1]->minor,array('object_methode'=>$this->yystack[$this->yyidx + -3]->minor)).'<?php echo ';
- $this->_retvalue .= $this->compiler->compileTag('private_modifier',array(),array('modifierlist'=>$this->yystack[$this->yyidx + -2]->minor,'value'=>'ob_get_clean()')).'?>';
- }
-#line 2413 "smarty_internal_templateparser.php"
-#line 375 "smarty_internal_templateparser.y"
- function yy_r41(){
- $tag = trim(substr($this->yystack[$this->yyidx + -2]->minor,$this->lex->ldel_length));
- $this->_retvalue = $this->compiler->compileTag(($tag == 'else if')? 'elseif' : $tag,array(),array('if condition'=>$this->yystack[$this->yyidx + -1]->minor));
- }
-#line 2419 "smarty_internal_templateparser.php"
-#line 380 "smarty_internal_templateparser.y"
- function yy_r42(){
- $tag = trim(substr($this->yystack[$this->yyidx + -3]->minor,$this->lex->ldel_length));
- $this->_retvalue = $this->compiler->compileTag(($tag == 'else if')? 'elseif' : $tag,$this->yystack[$this->yyidx + -1]->minor,array('if condition'=>$this->yystack[$this->yyidx + -2]->minor));
- }
-#line 2425 "smarty_internal_templateparser.php"
-#line 385 "smarty_internal_templateparser.y"
- function yy_r43(){
- $tag = trim(substr($this->yystack[$this->yyidx + -2]->minor,$this->lex->ldel_length));
- $this->_retvalue = $this->compiler->compileTag(($tag == 'else if')? 'elseif' : $tag,array(),array('if condition'=>$this->yystack[$this->yyidx + -1]->minor));
- }
-#line 2431 "smarty_internal_templateparser.php"
-#line 396 "smarty_internal_templateparser.y"
- function yy_r45(){
- $this->_retvalue = $this->compiler->compileTag('for',array_merge($this->yystack[$this->yyidx + -1]->minor,array(array('start'=>$this->yystack[$this->yyidx + -10]->minor),array('ifexp'=>$this->yystack[$this->yyidx + -7]->minor),array('var'=>$this->yystack[$this->yyidx + -3]->minor),array('step'=>$this->yystack[$this->yyidx + -2]->minor))),1);
- }
-#line 2436 "smarty_internal_templateparser.php"
-#line 400 "smarty_internal_templateparser.y"
- function yy_r46(){
- $this->_retvalue = '='.$this->yystack[$this->yyidx + 0]->minor;
- }
-#line 2441 "smarty_internal_templateparser.php"
-#line 408 "smarty_internal_templateparser.y"
- function yy_r48(){
- $this->_retvalue = $this->compiler->compileTag('for',array_merge($this->yystack[$this->yyidx + -1]->minor,array(array('start'=>$this->yystack[$this->yyidx + -4]->minor),array('to'=>$this->yystack[$this->yyidx + -2]->minor))),0);
- }
-#line 2446 "smarty_internal_templateparser.php"
-#line 412 "smarty_internal_templateparser.y"
- function yy_r49(){
- $this->_retvalue = $this->compiler->compileTag('for',array_merge($this->yystack[$this->yyidx + -1]->minor,array(array('start'=>$this->yystack[$this->yyidx + -6]->minor),array('to'=>$this->yystack[$this->yyidx + -4]->minor),array('step'=>$this->yystack[$this->yyidx + -2]->minor))),0);
- }
-#line 2451 "smarty_internal_templateparser.php"
-#line 417 "smarty_internal_templateparser.y"
- function yy_r50(){
- $this->_retvalue = $this->compiler->compileTag('foreach',$this->yystack[$this->yyidx + -1]->minor);
- }
-#line 2456 "smarty_internal_templateparser.php"
-#line 422 "smarty_internal_templateparser.y"
- function yy_r51(){
- $this->_retvalue = $this->compiler->compileTag('foreach',array_merge($this->yystack[$this->yyidx + -1]->minor,array(array('from'=>$this->yystack[$this->yyidx + -5]->minor),array('item'=>$this->yystack[$this->yyidx + -2]->minor))));
- }
-#line 2461 "smarty_internal_templateparser.php"
-#line 426 "smarty_internal_templateparser.y"
- function yy_r52(){
- $this->_retvalue = $this->compiler->compileTag('foreach',array_merge($this->yystack[$this->yyidx + -1]->minor,array(array('from'=>$this->yystack[$this->yyidx + -8]->minor),array('item'=>$this->yystack[$this->yyidx + -2]->minor),array('key'=>$this->yystack[$this->yyidx + -5]->minor))));
- }
-#line 2466 "smarty_internal_templateparser.php"
-#line 430 "smarty_internal_templateparser.y"
- function yy_r53(){
- $this->_retvalue = $this->compiler->compileTag('foreach',array_merge($this->yystack[$this->yyidx + -1]->minor,array(array('from'=>$this->yystack[$this->yyidx + -5]->minor),array('item'=>$this->yystack[$this->yyidx + -2]->minor))));
- }
-#line 2471 "smarty_internal_templateparser.php"
-#line 434 "smarty_internal_templateparser.y"
- function yy_r54(){
- $this->_retvalue = $this->compiler->compileTag('foreach',array_merge($this->yystack[$this->yyidx + -1]->minor,array(array('from'=>$this->yystack[$this->yyidx + -8]->minor),array('item'=>$this->yystack[$this->yyidx + -2]->minor),array('key'=>$this->yystack[$this->yyidx + -5]->minor))));
- }
-#line 2476 "smarty_internal_templateparser.php"
-#line 439 "smarty_internal_templateparser.y"
- function yy_r55(){
- $this->_retvalue = $this->compiler->compileTag('setfilter',array(),array('modifier_list'=>array(array_merge(array($this->yystack[$this->yyidx + -2]->minor),$this->yystack[$this->yyidx + -1]->minor))));
- }
-#line 2481 "smarty_internal_templateparser.php"
-#line 443 "smarty_internal_templateparser.y"
- function yy_r56(){
- $this->_retvalue = $this->compiler->compileTag('setfilter',array(),array('modifier_list'=>array_merge(array(array_merge(array($this->yystack[$this->yyidx + -3]->minor),$this->yystack[$this->yyidx + -2]->minor)),$this->yystack[$this->yyidx + -1]->minor)));
- }
-#line 2486 "smarty_internal_templateparser.php"
-#line 448 "smarty_internal_templateparser.y"
- function yy_r57(){
- $this->_retvalue = SMARTY_INTERNAL_COMPILE_BLOCK::compileChildBlock($this->compiler);
- }
-#line 2491 "smarty_internal_templateparser.php"
-#line 454 "smarty_internal_templateparser.y"
- function yy_r58(){
- $this->_retvalue = $this->compiler->compileTag($this->yystack[$this->yyidx + -1]->minor.'close',array());
- }
-#line 2496 "smarty_internal_templateparser.php"
-#line 458 "smarty_internal_templateparser.y"
- function yy_r59(){
- $this->_retvalue = $this->compiler->compileTag($this->yystack[$this->yyidx + -2]->minor.'close',array(),array('modifier_list'=>$this->yystack[$this->yyidx + -1]->minor));
- }
-#line 2501 "smarty_internal_templateparser.php"
-#line 463 "smarty_internal_templateparser.y"
- function yy_r60(){
- $this->_retvalue = $this->compiler->compileTag($this->yystack[$this->yyidx + -3]->minor.'close',array(),array('object_methode'=>$this->yystack[$this->yyidx + -1]->minor));
- }
-#line 2506 "smarty_internal_templateparser.php"
-#line 467 "smarty_internal_templateparser.y"
- function yy_r61(){
- $this->_retvalue = $this->compiler->compileTag($this->yystack[$this->yyidx + -4]->minor.'close',array(),array('object_methode'=>$this->yystack[$this->yyidx + -2]->minor, 'modifier_list'=>$this->yystack[$this->yyidx + -1]->minor));
- }
-#line 2511 "smarty_internal_templateparser.php"
-#line 475 "smarty_internal_templateparser.y"
- function yy_r62(){
- $this->_retvalue = $this->yystack[$this->yyidx + -1]->minor;
- $this->_retvalue[] = $this->yystack[$this->yyidx + 0]->minor;
- }
-#line 2517 "smarty_internal_templateparser.php"
-#line 481 "smarty_internal_templateparser.y"
- function yy_r63(){
- $this->_retvalue = array($this->yystack[$this->yyidx + 0]->minor);
- }
-#line 2522 "smarty_internal_templateparser.php"
-#line 486 "smarty_internal_templateparser.y"
- function yy_r64(){
- $this->_retvalue = array();
- }
-#line 2527 "smarty_internal_templateparser.php"
-#line 491 "smarty_internal_templateparser.y"
- function yy_r65(){
- if (preg_match('~^true$~i', $this->yystack[$this->yyidx + 0]->minor)) {
- $this->_retvalue = array($this->yystack[$this->yyidx + -2]->minor=>'true');
- } elseif (preg_match('~^false$~i', $this->yystack[$this->yyidx + 0]->minor)) {
- $this->_retvalue = array($this->yystack[$this->yyidx + -2]->minor=>'false');
- } elseif (preg_match('~^null$~i', $this->yystack[$this->yyidx + 0]->minor)) {
- $this->_retvalue = array($this->yystack[$this->yyidx + -2]->minor=>'null');
- } else {
- $this->_retvalue = array($this->yystack[$this->yyidx + -2]->minor=>"'".$this->yystack[$this->yyidx + 0]->minor."'");
- }
- }
-#line 2540 "smarty_internal_templateparser.php"
-#line 503 "smarty_internal_templateparser.y"
- function yy_r66(){
- $this->_retvalue = array(trim($this->yystack[$this->yyidx + -1]->minor," =\n\r\t")=>$this->yystack[$this->yyidx + 0]->minor);
- }
-#line 2545 "smarty_internal_templateparser.php"
-#line 511 "smarty_internal_templateparser.y"
- function yy_r68(){
- $this->_retvalue = "'".$this->yystack[$this->yyidx + 0]->minor."'";
- }
-#line 2550 "smarty_internal_templateparser.php"
-#line 523 "smarty_internal_templateparser.y"
- function yy_r71(){
- $this->_retvalue = array($this->yystack[$this->yyidx + -2]->minor=>$this->yystack[$this->yyidx + 0]->minor);
- }
-#line 2555 "smarty_internal_templateparser.php"
-#line 536 "smarty_internal_templateparser.y"
- function yy_r73(){
- $this->yystack[$this->yyidx + -2]->minor[]=$this->yystack[$this->yyidx + 0]->minor;
- $this->_retvalue = $this->yystack[$this->yyidx + -2]->minor;
- }
-#line 2561 "smarty_internal_templateparser.php"
-#line 541 "smarty_internal_templateparser.y"
- function yy_r74(){
- $this->_retvalue = array('var' => $this->yystack[$this->yyidx + -2]->minor, 'value'=>$this->yystack[$this->yyidx + 0]->minor);
- }
-#line 2566 "smarty_internal_templateparser.php"
-#line 569 "smarty_internal_templateparser.y"
- function yy_r79(){
- $this->_retvalue = '$_smarty_tpl->getStreamVariable(\''. $this->yystack[$this->yyidx + -2]->minor .'://'. $this->yystack[$this->yyidx + 0]->minor . '\')';
- }
-#line 2571 "smarty_internal_templateparser.php"
-#line 574 "smarty_internal_templateparser.y"
- function yy_r80(){
- $this->_retvalue = $this->yystack[$this->yyidx + -2]->minor . trim($this->yystack[$this->yyidx + -1]->minor) . $this->yystack[$this->yyidx + 0]->minor;
- }
-#line 2576 "smarty_internal_templateparser.php"
-#line 593 "smarty_internal_templateparser.y"
- function yy_r84(){
- $this->_retvalue = $this->compiler->compileTag('private_modifier',array(),array('value'=>$this->yystack[$this->yyidx + -1]->minor,'modifierlist'=>$this->yystack[$this->yyidx + 0]->minor));
- }
-#line 2581 "smarty_internal_templateparser.php"
-#line 599 "smarty_internal_templateparser.y"
- function yy_r85(){
- $this->_retvalue = $this->yystack[$this->yyidx + -2]->minor.$this->yystack[$this->yyidx + -1]->minor.$this->yystack[$this->yyidx + 0]->minor;
- }
-#line 2586 "smarty_internal_templateparser.php"
-#line 603 "smarty_internal_templateparser.y"
- function yy_r86(){
- $this->_retvalue = 'in_array('.$this->yystack[$this->yyidx + -2]->minor.','.$this->yystack[$this->yyidx + 0]->minor.')';
- }
-#line 2591 "smarty_internal_templateparser.php"
-#line 607 "smarty_internal_templateparser.y"
- function yy_r87(){
- $this->_retvalue = 'in_array('.$this->yystack[$this->yyidx + -2]->minor.',(array)'.$this->yystack[$this->yyidx + 0]->minor.')';
- }
-#line 2596 "smarty_internal_templateparser.php"
-#line 615 "smarty_internal_templateparser.y"
- function yy_r89(){
- $this->_retvalue = '!('.$this->yystack[$this->yyidx + -2]->minor.' % '.$this->yystack[$this->yyidx + 0]->minor.')';
- }
-#line 2601 "smarty_internal_templateparser.php"
-#line 619 "smarty_internal_templateparser.y"
- function yy_r90(){
- $this->_retvalue = '('.$this->yystack[$this->yyidx + -2]->minor.' % '.$this->yystack[$this->yyidx + 0]->minor.')';
- }
-#line 2606 "smarty_internal_templateparser.php"
-#line 623 "smarty_internal_templateparser.y"
- function yy_r91(){
- $this->_retvalue = '!(1 & '.$this->yystack[$this->yyidx + -1]->minor.')';
- }
-#line 2611 "smarty_internal_templateparser.php"
-#line 627 "smarty_internal_templateparser.y"
- function yy_r92(){
- $this->_retvalue = '(1 & '.$this->yystack[$this->yyidx + -1]->minor.')';
- }
-#line 2616 "smarty_internal_templateparser.php"
-#line 631 "smarty_internal_templateparser.y"
- function yy_r93(){
- $this->_retvalue = '!(1 & '.$this->yystack[$this->yyidx + -2]->minor.' / '.$this->yystack[$this->yyidx + 0]->minor.')';
- }
-#line 2621 "smarty_internal_templateparser.php"
-#line 635 "smarty_internal_templateparser.y"
- function yy_r94(){
- $this->_retvalue = '(1 & '.$this->yystack[$this->yyidx + -2]->minor.' / '.$this->yystack[$this->yyidx + 0]->minor.')';
- }
-#line 2626 "smarty_internal_templateparser.php"
-#line 659 "smarty_internal_templateparser.y"
- function yy_r100(){
- $this->prefix_number++;
- $this->compiler->prefix_code[] = '<?php $_tmp'.$this->prefix_number.'='.$this->yystack[$this->yyidx + 0]->minor.';?>';
- $this->_retvalue = $this->yystack[$this->yyidx + -2]->minor.$this->yystack[$this->yyidx + -1]->minor.'$_tmp'.$this->prefix_number;
- }
-#line 2633 "smarty_internal_templateparser.php"
-#line 668 "smarty_internal_templateparser.y"
- function yy_r101(){
- $this->_retvalue = $this->yystack[$this->yyidx + -6]->minor.' ? '. $this->compileVariable("'".$this->yystack[$this->yyidx + -2]->minor."'") . ' : '.$this->yystack[$this->yyidx + 0]->minor;
- }
-#line 2638 "smarty_internal_templateparser.php"
-#line 672 "smarty_internal_templateparser.y"
- function yy_r102(){
- $this->_retvalue = $this->yystack[$this->yyidx + -5]->minor.' ? '.$this->yystack[$this->yyidx + -2]->minor.' : '.$this->yystack[$this->yyidx + 0]->minor;
- }
-#line 2643 "smarty_internal_templateparser.php"
-#line 687 "smarty_internal_templateparser.y"
- function yy_r105(){
- $this->_retvalue = '!'.$this->yystack[$this->yyidx + 0]->minor;
- }
-#line 2648 "smarty_internal_templateparser.php"
-#line 708 "smarty_internal_templateparser.y"
- function yy_r110(){
- $this->_retvalue = $this->yystack[$this->yyidx + -2]->minor.'.'.$this->yystack[$this->yyidx + 0]->minor;
- }
-#line 2653 "smarty_internal_templateparser.php"
-#line 712 "smarty_internal_templateparser.y"
- function yy_r111(){
- $this->_retvalue = $this->yystack[$this->yyidx + -1]->minor.'.';
- }
-#line 2658 "smarty_internal_templateparser.php"
-#line 716 "smarty_internal_templateparser.y"
- function yy_r112(){
- $this->_retvalue = '.'.$this->yystack[$this->yyidx + 0]->minor;
- }
-#line 2663 "smarty_internal_templateparser.php"
-#line 721 "smarty_internal_templateparser.y"
- function yy_r113(){
- if (preg_match('~^true$~i', $this->yystack[$this->yyidx + 0]->minor)) {
- $this->_retvalue = 'true';
- } elseif (preg_match('~^false$~i', $this->yystack[$this->yyidx + 0]->minor)) {
- $this->_retvalue = 'false';
- } elseif (preg_match('~^null$~i', $this->yystack[$this->yyidx + 0]->minor)) {
- $this->_retvalue = 'null';
- } else {
- $this->_retvalue = "'".$this->yystack[$this->yyidx + 0]->minor."'";
- }
- }
-#line 2676 "smarty_internal_templateparser.php"
-#line 739 "smarty_internal_templateparser.y"
- function yy_r115(){
- $this->_retvalue = "(". $this->yystack[$this->yyidx + -1]->minor .")";
- }
-#line 2681 "smarty_internal_templateparser.php"
-#line 754 "smarty_internal_templateparser.y"
- function yy_r118(){
- if (!$this->security || isset($this->smarty->registered_classes[$this->yystack[$this->yyidx + -2]->minor]) || $this->smarty->security_policy->isTrustedStaticClass($this->yystack[$this->yyidx + -2]->minor, $this->compiler)) {
- if (isset($this->smarty->registered_classes[$this->yystack[$this->yyidx + -2]->minor])) {
- $this->_retvalue = $this->smarty->registered_classes[$this->yystack[$this->yyidx + -2]->minor].'::'.$this->yystack[$this->yyidx + 0]->minor;
+ #line 2659 "smarty_internal_templateparser.php"
+ #line 735 "smarty_internal_templateparser.y"
+ function yy_r109()
+ {
+ if (preg_match('~^true$~i', $this->yystack[$this->yyidx + 0]->minor)) {
+ $this->_retvalue = 'true';
+ } elseif (preg_match('~^false$~i', $this->yystack[$this->yyidx + 0]->minor)) {
+ $this->_retvalue = 'false';
+ } elseif (preg_match('~^null$~i', $this->yystack[$this->yyidx + 0]->minor)) {
+ $this->_retvalue = 'null';
} else {
- $this->_retvalue = $this->yystack[$this->yyidx + -2]->minor.'::'.$this->yystack[$this->yyidx + 0]->minor;
+ $this->_retvalue = "'" . $this->yystack[$this->yyidx + 0]->minor . "'";
}
- } else {
- $this->compiler->trigger_template_error ("static class '".$this->yystack[$this->yyidx + -2]->minor."' is undefined or not allowed by security setting");
- }
- }
-#line 2694 "smarty_internal_templateparser.php"
-#line 766 "smarty_internal_templateparser.y"
- function yy_r119(){
- if ($this->yystack[$this->yyidx + -2]->minor['var'] == '\'smarty\'') {
- $this->_retvalue = $this->compiler->compileTag('private_special_variable',array(),$this->yystack[$this->yyidx + -2]->minor['smarty_internal_index']).'::'.$this->yystack[$this->yyidx + 0]->minor;
- } else {
- $this->_retvalue = $this->compileVariable($this->yystack[$this->yyidx + -2]->minor['var']).$this->yystack[$this->yyidx + -2]->minor['smarty_internal_index'].'::'.$this->yystack[$this->yyidx + 0]->minor;
- }
- }
-#line 2703 "smarty_internal_templateparser.php"
-#line 775 "smarty_internal_templateparser.y"
- function yy_r120(){
- $this->prefix_number++;
- $this->compiler->prefix_code[] = '<?php ob_start();?>'.$this->yystack[$this->yyidx + 0]->minor.'<?php $_tmp'.$this->prefix_number.'=ob_get_clean();?>';
- $this->_retvalue = '$_tmp'.$this->prefix_number;
- }
-#line 2710 "smarty_internal_templateparser.php"
-#line 790 "smarty_internal_templateparser.y"
- function yy_r122(){
- if ($this->yystack[$this->yyidx + 0]->minor['var'] == '\'smarty\'') {
- $smarty_var = $this->compiler->compileTag('private_special_variable',array(),$this->yystack[$this->yyidx + 0]->minor['smarty_internal_index']);
- $this->_retvalue = $smarty_var;
- } else {
- // used for array reset,next,prev,end,current
- $this->last_variable = $this->yystack[$this->yyidx + 0]->minor['var'];
- $this->last_index = $this->yystack[$this->yyidx + 0]->minor['smarty_internal_index'];
- $this->_retvalue = $this->compileVariable($this->yystack[$this->yyidx + 0]->minor['var']).$this->yystack[$this->yyidx + 0]->minor['smarty_internal_index'];
- }
- }
-#line 2723 "smarty_internal_templateparser.php"
-#line 803 "smarty_internal_templateparser.y"
- function yy_r123(){
- $this->_retvalue = '$_smarty_tpl->tpl_vars['. $this->yystack[$this->yyidx + -2]->minor .']->'.$this->yystack[$this->yyidx + 0]->minor;
- }
-#line 2728 "smarty_internal_templateparser.php"
-#line 813 "smarty_internal_templateparser.y"
- function yy_r125(){
- $this->_retvalue = '$_smarty_tpl->getConfigVariable(\''. $this->yystack[$this->yyidx + -1]->minor .'\')';
- }
-#line 2733 "smarty_internal_templateparser.php"
-#line 817 "smarty_internal_templateparser.y"
- function yy_r126(){
- $this->_retvalue = '$_smarty_tpl->getConfigVariable('. $this->yystack[$this->yyidx + -1]->minor .')';
- }
-#line 2738 "smarty_internal_templateparser.php"
-#line 821 "smarty_internal_templateparser.y"
- function yy_r127(){
- $this->_retvalue = array('var'=>$this->yystack[$this->yyidx + -1]->minor, 'smarty_internal_index'=>$this->yystack[$this->yyidx + 0]->minor);
- }
-#line 2743 "smarty_internal_templateparser.php"
-#line 834 "smarty_internal_templateparser.y"
- function yy_r129(){
- return;
- }
-#line 2748 "smarty_internal_templateparser.php"
-#line 840 "smarty_internal_templateparser.y"
- function yy_r130(){
- $this->_retvalue = '['.$this->compileVariable($this->yystack[$this->yyidx + 0]->minor).']';
- }
-#line 2753 "smarty_internal_templateparser.php"
-#line 844 "smarty_internal_templateparser.y"
- function yy_r131(){
- $this->_retvalue = '['.$this->compileVariable($this->yystack[$this->yyidx + -2]->minor).'->'.$this->yystack[$this->yyidx + 0]->minor.']';
- }
-#line 2758 "smarty_internal_templateparser.php"
-#line 848 "smarty_internal_templateparser.y"
- function yy_r132(){
- $this->_retvalue = "['". $this->yystack[$this->yyidx + 0]->minor ."']";
- }
-#line 2763 "smarty_internal_templateparser.php"
-#line 852 "smarty_internal_templateparser.y"
- function yy_r133(){
- $this->_retvalue = "[". $this->yystack[$this->yyidx + 0]->minor ."]";
- }
-#line 2768 "smarty_internal_templateparser.php"
-#line 856 "smarty_internal_templateparser.y"
- function yy_r134(){
- $this->_retvalue = "[". $this->yystack[$this->yyidx + -1]->minor ."]";
- }
-#line 2773 "smarty_internal_templateparser.php"
-#line 861 "smarty_internal_templateparser.y"
- function yy_r135(){
- $this->_retvalue = '['.$this->compiler->compileTag('private_special_variable',array(),'[\'section\'][\''.$this->yystack[$this->yyidx + -1]->minor.'\'][\'index\']').']';
- }
-#line 2778 "smarty_internal_templateparser.php"
-#line 865 "smarty_internal_templateparser.y"
- function yy_r136(){
- $this->_retvalue = '['.$this->compiler->compileTag('private_special_variable',array(),'[\'section\'][\''.$this->yystack[$this->yyidx + -3]->minor.'\'][\''.$this->yystack[$this->yyidx + -1]->minor.'\']').']';
- }
-#line 2783 "smarty_internal_templateparser.php"
-#line 875 "smarty_internal_templateparser.y"
- function yy_r138(){
- $this->_retvalue = '[]';
- }
-#line 2788 "smarty_internal_templateparser.php"
-#line 888 "smarty_internal_templateparser.y"
- function yy_r140(){
- $this->_retvalue = $this->yystack[$this->yyidx + -1]->minor.'.'.$this->yystack[$this->yyidx + 0]->minor;
- }
-#line 2793 "smarty_internal_templateparser.php"
-#line 893 "smarty_internal_templateparser.y"
- function yy_r141(){
- $this->_retvalue = '\''.$this->yystack[$this->yyidx + 0]->minor.'\'';
- }
-#line 2798 "smarty_internal_templateparser.php"
-#line 898 "smarty_internal_templateparser.y"
- function yy_r142(){
- $this->_retvalue = '('.$this->yystack[$this->yyidx + -1]->minor.')';
- }
-#line 2803 "smarty_internal_templateparser.php"
-#line 905 "smarty_internal_templateparser.y"
- function yy_r143(){
- if ($this->yystack[$this->yyidx + -1]->minor['var'] == '\'smarty\'') {
- $this->_retvalue = $this->compiler->compileTag('private_special_variable',array(),$this->yystack[$this->yyidx + -1]->minor['smarty_internal_index']).$this->yystack[$this->yyidx + 0]->minor;
- } else {
- $this->_retvalue = $this->compileVariable($this->yystack[$this->yyidx + -1]->minor['var']).$this->yystack[$this->yyidx + -1]->minor['smarty_internal_index'].$this->yystack[$this->yyidx + 0]->minor;
- }
- }
-#line 2812 "smarty_internal_templateparser.php"
-#line 914 "smarty_internal_templateparser.y"
- function yy_r144(){
- $this->_retvalue = $this->yystack[$this->yyidx + 0]->minor;
- }
-#line 2817 "smarty_internal_templateparser.php"
-#line 919 "smarty_internal_templateparser.y"
- function yy_r145(){
- $this->_retvalue = $this->yystack[$this->yyidx + -1]->minor.$this->yystack[$this->yyidx + 0]->minor;
- }
-#line 2822 "smarty_internal_templateparser.php"
-#line 924 "smarty_internal_templateparser.y"
- function yy_r146(){
- if ($this->security && substr($this->yystack[$this->yyidx + -1]->minor,0,1) == '_') {
- $this->compiler->trigger_template_error (self::Err1);
- }
- $this->_retvalue = '->'.$this->yystack[$this->yyidx + -1]->minor.$this->yystack[$this->yyidx + 0]->minor;
- }
-#line 2830 "smarty_internal_templateparser.php"
-#line 931 "smarty_internal_templateparser.y"
- function yy_r147(){
- if ($this->security) {
- $this->compiler->trigger_template_error (self::Err2);
- }
- $this->_retvalue = '->{'.$this->compileVariable($this->yystack[$this->yyidx + -1]->minor).$this->yystack[$this->yyidx + 0]->minor.'}';
- }
-#line 2838 "smarty_internal_templateparser.php"
-#line 938 "smarty_internal_templateparser.y"
- function yy_r148(){
- if ($this->security) {
- $this->compiler->trigger_template_error (self::Err2);
- }
- $this->_retvalue = '->{'.$this->yystack[$this->yyidx + -2]->minor.$this->yystack[$this->yyidx + 0]->minor.'}';
- }
-#line 2846 "smarty_internal_templateparser.php"
-#line 945 "smarty_internal_templateparser.y"
- function yy_r149(){
- if ($this->security) {
- $this->compiler->trigger_template_error (self::Err2);
- }
- $this->_retvalue = '->{\''.$this->yystack[$this->yyidx + -4]->minor.'\'.'.$this->yystack[$this->yyidx + -2]->minor.$this->yystack[$this->yyidx + 0]->minor.'}';
- }
-#line 2854 "smarty_internal_templateparser.php"
-#line 953 "smarty_internal_templateparser.y"
- function yy_r150(){
- $this->_retvalue = '->'.$this->yystack[$this->yyidx + 0]->minor;
- }
-#line 2859 "smarty_internal_templateparser.php"
-#line 961 "smarty_internal_templateparser.y"
- function yy_r151(){
- if (!$this->security || $this->smarty->security_policy->isTrustedPhpFunction($this->yystack[$this->yyidx + -3]->minor, $this->compiler)) {
- if (strcasecmp($this->yystack[$this->yyidx + -3]->minor,'isset') === 0 || strcasecmp($this->yystack[$this->yyidx + -3]->minor,'empty') === 0 || strcasecmp($this->yystack[$this->yyidx + -3]->minor,'array') === 0 || is_callable($this->yystack[$this->yyidx + -3]->minor)) {
- $func_name = strtolower($this->yystack[$this->yyidx + -3]->minor);
- if ($func_name == 'isset') {
- if (count($this->yystack[$this->yyidx + -1]->minor) == 0) {
- $this->compiler->trigger_template_error ('Illegal number of paramer in "isset()"');
- }
- $par = implode(',',$this->yystack[$this->yyidx + -1]->minor);
- if (strncasecmp($par,'$_smarty_tpl->getConfigVariable',strlen('$_smarty_tpl->getConfigVariable')) === 0) {
- $this->prefix_number++;
- $this->compiler->prefix_code[] = '<?php $_tmp'.$this->prefix_number.'='.str_replace(')',', false)',$par).';?>';
- $isset_par = '$_tmp'.$this->prefix_number;
- } else {
- $isset_par=str_replace("')->value","',null,true,false)->value",$par);
- }
- $this->_retvalue = $this->yystack[$this->yyidx + -3]->minor . "(". $isset_par .")";
- } elseif (in_array($func_name,array('empty','reset','current','end','prev','next'))){
- if (count($this->yystack[$this->yyidx + -1]->minor) != 1) {
- $this->compiler->trigger_template_error ('Illegal number of paramer in "empty()"');
- }
- if ($func_name == 'empty') {
- $this->_retvalue = $func_name.'('.str_replace("')->value","',null,true,false)->value",$this->yystack[$this->yyidx + -1]->minor[0]).')';
+ }
+ #line 2672 "smarty_internal_templateparser.php"
+ #line 753 "smarty_internal_templateparser.y"
+ function yy_r111()
+ {
+ $this->_retvalue = "(" . $this->yystack[$this->yyidx + - 1]->minor . ")";
+ }
+ #line 2677 "smarty_internal_templateparser.php"
+ #line 768 "smarty_internal_templateparser.y"
+ function yy_r114()
+ {
+ if (!$this->security || isset($this->smarty->registered_classes[$this->yystack[$this->yyidx + - 2]->minor]) || $this->smarty->security_policy->isTrustedStaticClass($this->yystack[$this->yyidx + - 2]->minor, $this->compiler)) {
+ if (isset($this->smarty->registered_classes[$this->yystack[$this->yyidx + - 2]->minor])) {
+ $this->_retvalue = $this->smarty->registered_classes[$this->yystack[$this->yyidx + - 2]->minor] . '::' . $this->yystack[$this->yyidx + 0]->minor;
+ } else {
+ $this->_retvalue = $this->yystack[$this->yyidx + - 2]->minor . '::' . $this->yystack[$this->yyidx + 0]->minor;
+ }
+ } else {
+ $this->compiler->trigger_template_error("static class '" . $this->yystack[$this->yyidx + - 2]->minor . "' is undefined or not allowed by security setting");
+ }
+ }
+ #line 2690 "smarty_internal_templateparser.php"
+ #line 780 "smarty_internal_templateparser.y"
+ function yy_r115()
+ {
+ if ($this->yystack[$this->yyidx + - 2]->minor['var'] == '\'smarty\'') {
+ $this->_retvalue = $this->compiler->compileTag('private_special_variable', array(), $this->yystack[$this->yyidx + - 2]->minor['smarty_internal_index']) . '::' . $this->yystack[$this->yyidx + 0]->minor;
+ } else {
+ $this->_retvalue = $this->compileVariable($this->yystack[$this->yyidx + - 2]->minor['var']) . $this->yystack[$this->yyidx + - 2]->minor['smarty_internal_index'] . '::' . $this->yystack[$this->yyidx + 0]->minor;
+ }
+ }
+ #line 2699 "smarty_internal_templateparser.php"
+ #line 789 "smarty_internal_templateparser.y"
+ function yy_r116()
+ {
+ self::$prefix_number ++;
+ $this->compiler->prefix_code[] = '<?php ob_start();?>' . $this->yystack[$this->yyidx + - 1]->minor . '<?php $_tmp' . self::$prefix_number . '=ob_get_clean();?>';
+ $this->_retvalue = '$_tmp' . self::$prefix_number;
+ }
+ #line 2706 "smarty_internal_templateparser.php"
+ #line 804 "smarty_internal_templateparser.y"
+ function yy_r118()
+ {
+ if ($this->yystack[$this->yyidx + 0]->minor['var'] == '\'smarty\'') {
+ $smarty_var = $this->compiler->compileTag('private_special_variable', array(), $this->yystack[$this->yyidx + 0]->minor['smarty_internal_index']);
+ $this->_retvalue = $smarty_var;
+ } else {
+ // used for array reset,next,prev,end,current
+ $this->last_variable = $this->yystack[$this->yyidx + 0]->minor['var'];
+ $this->last_index = $this->yystack[$this->yyidx + 0]->minor['smarty_internal_index'];
+ $this->_retvalue = $this->compileVariable($this->yystack[$this->yyidx + 0]->minor['var']) . $this->yystack[$this->yyidx + 0]->minor['smarty_internal_index'];
+ }
+ }
+ #line 2719 "smarty_internal_templateparser.php"
+ #line 817 "smarty_internal_templateparser.y"
+ function yy_r119()
+ {
+ $this->_retvalue = '$_smarty_tpl->tpl_vars[' . $this->yystack[$this->yyidx + - 2]->minor . ']->' . $this->yystack[$this->yyidx + 0]->minor;
+ }
+ #line 2724 "smarty_internal_templateparser.php"
+ #line 827 "smarty_internal_templateparser.y"
+ function yy_r121()
+ {
+ $this->_retvalue = '$_smarty_tpl->getConfigVariable(\'' . $this->yystack[$this->yyidx + - 1]->minor . '\')';
+ }
+ #line 2729 "smarty_internal_templateparser.php"
+ #line 831 "smarty_internal_templateparser.y"
+ function yy_r122()
+ {
+ $this->_retvalue = '(is_array($tmp = $_smarty_tpl->getConfigVariable(\'' . $this->yystack[$this->yyidx + - 2]->minor . '\')) ? $tmp' . $this->yystack[$this->yyidx + 0]->minor . ' :null)';
+ }
+ #line 2734 "smarty_internal_templateparser.php"
+ #line 835 "smarty_internal_templateparser.y"
+ function yy_r123()
+ {
+ $this->_retvalue = '$_smarty_tpl->getConfigVariable(' . $this->yystack[$this->yyidx + - 1]->minor . ')';
+ }
+ #line 2739 "smarty_internal_templateparser.php"
+ #line 839 "smarty_internal_templateparser.y"
+ function yy_r124()
+ {
+ $this->_retvalue = '(is_array($tmp = $_smarty_tpl->getConfigVariable(' . $this->yystack[$this->yyidx + - 2]->minor . ')) ? $tmp' . $this->yystack[$this->yyidx + 0]->minor . ' : null)';
+ }
+ #line 2744 "smarty_internal_templateparser.php"
+ #line 843 "smarty_internal_templateparser.y"
+ function yy_r125()
+ {
+ $this->_retvalue = array('var' => $this->yystack[$this->yyidx + - 1]->minor, 'smarty_internal_index' => $this->yystack[$this->yyidx + 0]->minor);
+ }
+ #line 2749 "smarty_internal_templateparser.php"
+ #line 856 "smarty_internal_templateparser.y"
+ function yy_r127()
+ {
+ return;
+ }
+ #line 2754 "smarty_internal_templateparser.php"
+ #line 862 "smarty_internal_templateparser.y"
+ function yy_r128()
+ {
+ $this->_retvalue = '[' . $this->compileVariable($this->yystack[$this->yyidx + 0]->minor) . ']';
+ }
+ #line 2759 "smarty_internal_templateparser.php"
+ #line 866 "smarty_internal_templateparser.y"
+ function yy_r129()
+ {
+ $this->_retvalue = '[' . $this->compileVariable($this->yystack[$this->yyidx + - 2]->minor) . '->' . $this->yystack[$this->yyidx + 0]->minor . ']';
+ }
+ #line 2764 "smarty_internal_templateparser.php"
+ #line 870 "smarty_internal_templateparser.y"
+ function yy_r130()
+ {
+ $this->_retvalue = "['" . $this->yystack[$this->yyidx + 0]->minor . "']";
+ }
+ #line 2769 "smarty_internal_templateparser.php"
+ #line 874 "smarty_internal_templateparser.y"
+ function yy_r131()
+ {
+ $this->_retvalue = "[" . $this->yystack[$this->yyidx + 0]->minor . "]";
+ }
+ #line 2774 "smarty_internal_templateparser.php"
+ #line 878 "smarty_internal_templateparser.y"
+ function yy_r132()
+ {
+ $this->_retvalue = "[" . $this->yystack[$this->yyidx + - 1]->minor . "]";
+ }
+ #line 2779 "smarty_internal_templateparser.php"
+ #line 883 "smarty_internal_templateparser.y"
+ function yy_r133()
+ {
+ $this->_retvalue = '[' . $this->compiler->compileTag('private_special_variable', array(), '[\'section\'][\'' . $this->yystack[$this->yyidx + - 1]->minor . '\'][\'index\']') . ']';
+ }
+ #line 2784 "smarty_internal_templateparser.php"
+ #line 887 "smarty_internal_templateparser.y"
+ function yy_r134()
+ {
+ $this->_retvalue = '[' . $this->compiler->compileTag('private_special_variable', array(), '[\'section\'][\'' . $this->yystack[$this->yyidx + - 3]->minor . '\'][\'' . $this->yystack[$this->yyidx + - 1]->minor . '\']') . ']';
+ }
+ #line 2789 "smarty_internal_templateparser.php"
+ #line 897 "smarty_internal_templateparser.y"
+ function yy_r136()
+ {
+ $this->_retvalue = '[]';
+ }
+ #line 2794 "smarty_internal_templateparser.php"
+ #line 910 "smarty_internal_templateparser.y"
+ function yy_r138()
+ {
+ $this->_retvalue = $this->yystack[$this->yyidx + - 1]->minor . '.' . $this->yystack[$this->yyidx + 0]->minor;
+ }
+ #line 2799 "smarty_internal_templateparser.php"
+ #line 915 "smarty_internal_templateparser.y"
+ function yy_r139()
+ {
+ $this->_retvalue = '\'' . $this->yystack[$this->yyidx + 0]->minor . '\'';
+ }
+ #line 2804 "smarty_internal_templateparser.php"
+ #line 920 "smarty_internal_templateparser.y"
+ function yy_r140()
+ {
+ $this->_retvalue = '(' . $this->yystack[$this->yyidx + - 1]->minor . ')';
+ }
+ #line 2809 "smarty_internal_templateparser.php"
+ #line 927 "smarty_internal_templateparser.y"
+ function yy_r141()
+ {
+ if ($this->yystack[$this->yyidx + - 1]->minor['var'] == '\'smarty\'') {
+ $this->_retvalue = $this->compiler->compileTag('private_special_variable', array(), $this->yystack[$this->yyidx + - 1]->minor['smarty_internal_index']) . $this->yystack[$this->yyidx + 0]->minor;
+ } else {
+ $this->_retvalue = $this->compileVariable($this->yystack[$this->yyidx + - 1]->minor['var']) . $this->yystack[$this->yyidx + - 1]->minor['smarty_internal_index'] . $this->yystack[$this->yyidx + 0]->minor;
+ }
+ }
+ #line 2818 "smarty_internal_templateparser.php"
+ #line 936 "smarty_internal_templateparser.y"
+ function yy_r142()
+ {
+ $this->_retvalue = $this->yystack[$this->yyidx + 0]->minor;
+ }
+ #line 2823 "smarty_internal_templateparser.php"
+ #line 941 "smarty_internal_templateparser.y"
+ function yy_r143()
+ {
+ $this->_retvalue = $this->yystack[$this->yyidx + - 1]->minor . $this->yystack[$this->yyidx + 0]->minor;
+ }
+ #line 2828 "smarty_internal_templateparser.php"
+ #line 946 "smarty_internal_templateparser.y"
+ function yy_r144()
+ {
+ if ($this->security && substr($this->yystack[$this->yyidx + - 1]->minor, 0, 1) == '_') {
+ $this->compiler->trigger_template_error(self::Err1);
+ }
+ $this->_retvalue = '->' . $this->yystack[$this->yyidx + - 1]->minor . $this->yystack[$this->yyidx + 0]->minor;
+ }
+ #line 2836 "smarty_internal_templateparser.php"
+ #line 953 "smarty_internal_templateparser.y"
+ function yy_r145()
+ {
+ if ($this->security) {
+ $this->compiler->trigger_template_error(self::Err2);
+ }
+ $this->_retvalue = '->{' . $this->compileVariable($this->yystack[$this->yyidx + - 1]->minor) . $this->yystack[$this->yyidx + 0]->minor . '}';
+ }
+ #line 2844 "smarty_internal_templateparser.php"
+ #line 960 "smarty_internal_templateparser.y"
+ function yy_r146()
+ {
+ if ($this->security) {
+ $this->compiler->trigger_template_error(self::Err2);
+ }
+ $this->_retvalue = '->{' . $this->yystack[$this->yyidx + - 2]->minor . $this->yystack[$this->yyidx + 0]->minor . '}';
+ }
+ #line 2852 "smarty_internal_templateparser.php"
+ #line 967 "smarty_internal_templateparser.y"
+ function yy_r147()
+ {
+ if ($this->security) {
+ $this->compiler->trigger_template_error(self::Err2);
+ }
+ $this->_retvalue = '->{\'' . $this->yystack[$this->yyidx + - 4]->minor . '\'.' . $this->yystack[$this->yyidx + - 2]->minor . $this->yystack[$this->yyidx + 0]->minor . '}';
+ }
+ #line 2860 "smarty_internal_templateparser.php"
+ #line 975 "smarty_internal_templateparser.y"
+ function yy_r148()
+ {
+ $this->_retvalue = '->' . $this->yystack[$this->yyidx + 0]->minor;
+ }
+ #line 2865 "smarty_internal_templateparser.php"
+ #line 983 "smarty_internal_templateparser.y"
+ function yy_r149()
+ {
+ if (!$this->security || $this->smarty->security_policy->isTrustedPhpFunction($this->yystack[$this->yyidx + - 3]->minor, $this->compiler)) {
+ if (strcasecmp($this->yystack[$this->yyidx + - 3]->minor, 'isset') === 0 || strcasecmp($this->yystack[$this->yyidx + - 3]->minor, 'empty') === 0 || strcasecmp($this->yystack[$this->yyidx + - 3]->minor, 'array') === 0 || is_callable($this->yystack[$this->yyidx + - 3]->minor)) {
+ $func_name = strtolower($this->yystack[$this->yyidx + - 3]->minor);
+ if ($func_name == 'isset') {
+ if (count($this->yystack[$this->yyidx + - 1]->minor) == 0) {
+ $this->compiler->trigger_template_error('Illegal number of paramer in "isset()"');
+ }
+ $par = implode(',', $this->yystack[$this->yyidx + - 1]->minor);
+ if (strncasecmp($par, '$_smarty_tpl->getConfigVariable', strlen('$_smarty_tpl->getConfigVariable')) === 0) {
+ self::$prefix_number ++;
+ $this->compiler->prefix_code[] = '<?php $_tmp' . self::$prefix_number . '=' . str_replace(')', ', false)', $par) . ';?>';
+ $isset_par = '$_tmp' . self::$prefix_number;
+ } else {
+ $isset_par = str_replace("')->value", "',null,true,false)->value", $par);
+ }
+ $this->_retvalue = $this->yystack[$this->yyidx + - 3]->minor . "(" . $isset_par . ")";
+ } elseif (in_array($func_name, array('empty', 'reset', 'current', 'end', 'prev', 'next'))) {
+ if (count($this->yystack[$this->yyidx + - 1]->minor) != 1) {
+ $this->compiler->trigger_template_error('Illegal number of paramer in "empty()"');
+ }
+ if ($func_name == 'empty') {
+ $this->_retvalue = $func_name . '(' . str_replace("')->value", "',null,true,false)->value", $this->yystack[$this->yyidx + - 1]->minor[0]) . ')';
+ } else {
+ $this->_retvalue = $func_name . '(' . $this->yystack[$this->yyidx + - 1]->minor[0] . ')';
+ }
} else {
- $this->_retvalue = $func_name.'('.$this->yystack[$this->yyidx + -1]->minor[0].')';
+ $this->_retvalue = $this->yystack[$this->yyidx + - 3]->minor . "(" . implode(',', $this->yystack[$this->yyidx + - 1]->minor) . ")";
}
} else {
- $this->_retvalue = $this->yystack[$this->yyidx + -3]->minor . "(". implode(',',$this->yystack[$this->yyidx + -1]->minor) .")";
+ $this->compiler->trigger_template_error("unknown function \"" . $this->yystack[$this->yyidx + - 3]->minor . "\"");
}
- } else {
- $this->compiler->trigger_template_error ("unknown function \"" . $this->yystack[$this->yyidx + -3]->minor . "\"");
}
}
+ #line 2901 "smarty_internal_templateparser.php"
+ #line 1021 "smarty_internal_templateparser.y"
+ function yy_r150()
+ {
+ if ($this->security && substr($this->yystack[$this->yyidx + - 3]->minor, 0, 1) == '_') {
+ $this->compiler->trigger_template_error(self::Err1);
+ }
+ $this->_retvalue = $this->yystack[$this->yyidx + - 3]->minor . "(" . implode(',', $this->yystack[$this->yyidx + - 1]->minor) . ")";
+ }
+ #line 2909 "smarty_internal_templateparser.php"
+ #line 1028 "smarty_internal_templateparser.y"
+ function yy_r151()
+ {
+ if ($this->security) {
+ $this->compiler->trigger_template_error(self::Err2);
+ }
+ self::$prefix_number ++;
+ $this->compiler->prefix_code[] = '<?php $_tmp' . self::$prefix_number . '=' . $this->compileVariable("'" . $this->yystack[$this->yyidx + - 3]->minor . "'") . ';?>';
+ $this->_retvalue = '$_tmp' . self::$prefix_number . '(' . implode(',', $this->yystack[$this->yyidx + - 1]->minor) . ')';
+ }
+ #line 2919 "smarty_internal_templateparser.php"
+ #line 1039 "smarty_internal_templateparser.y"
+ function yy_r152()
+ {
+ $this->_retvalue = array_merge($this->yystack[$this->yyidx + - 2]->minor, array($this->yystack[$this->yyidx + 0]->minor));
+ }
+ #line 2924 "smarty_internal_templateparser.php"
+ #line 1056 "smarty_internal_templateparser.y"
+ function yy_r155()
+ {
+ $this->_retvalue = array_merge($this->yystack[$this->yyidx + - 2]->minor, array(array_merge($this->yystack[$this->yyidx + - 1]->minor, $this->yystack[$this->yyidx + 0]->minor)));
+ }
+ #line 2929 "smarty_internal_templateparser.php"
+ #line 1060 "smarty_internal_templateparser.y"
+ function yy_r156()
+ {
+ $this->_retvalue = array(array_merge($this->yystack[$this->yyidx + - 1]->minor, $this->yystack[$this->yyidx + 0]->minor));
+ }
+ #line 2934 "smarty_internal_templateparser.php"
+ #line 1068 "smarty_internal_templateparser.y"
+ function yy_r158()
+ {
+ $this->_retvalue = array($this->yystack[$this->yyidx + 0]->minor);
+ }
+ #line 2939 "smarty_internal_templateparser.php"
+ #line 1076 "smarty_internal_templateparser.y"
+ function yy_r159()
+ {
+ $this->_retvalue = array_merge($this->yystack[$this->yyidx + - 1]->minor, $this->yystack[$this->yyidx + 0]->minor);
+ }
+ #line 2944 "smarty_internal_templateparser.php"
+ #line 1110 "smarty_internal_templateparser.y"
+ function yy_r166()
+ {
+ $this->_retvalue = '$' . $this->yystack[$this->yyidx + - 1]->minor . $this->yystack[$this->yyidx + 0]->minor;
+ }
+ #line 2949 "smarty_internal_templateparser.php"
+ #line 1115 "smarty_internal_templateparser.y"
+ function yy_r167()
+ {
+ $this->_retvalue = '$' . $this->yystack[$this->yyidx + - 2]->minor . $this->yystack[$this->yyidx + - 1]->minor . $this->yystack[$this->yyidx + 0]->minor;
+ }
+ #line 2954 "smarty_internal_templateparser.php"
+ #line 1121 "smarty_internal_templateparser.y"
+ function yy_r168()
+ {
+ $this->_retvalue = '==';
+ }
+ #line 2959 "smarty_internal_templateparser.php"
+ #line 1125 "smarty_internal_templateparser.y"
+ function yy_r169()
+ {
+ $this->_retvalue = '!=';
+ }
+ #line 2964 "smarty_internal_templateparser.php"
+ #line 1129 "smarty_internal_templateparser.y"
+ function yy_r170()
+ {
+ $this->_retvalue = '>';
+ }
+ #line 2969 "smarty_internal_templateparser.php"
+ #line 1133 "smarty_internal_templateparser.y"
+ function yy_r171()
+ {
+ $this->_retvalue = '<';
+ }
+ #line 2974 "smarty_internal_templateparser.php"
+ #line 1137 "smarty_internal_templateparser.y"
+ function yy_r172()
+ {
+ $this->_retvalue = '>=';
+ }
+ #line 2979 "smarty_internal_templateparser.php"
+ #line 1141 "smarty_internal_templateparser.y"
+ function yy_r173()
+ {
+ $this->_retvalue = '<=';
+ }
+ #line 2984 "smarty_internal_templateparser.php"
+ #line 1145 "smarty_internal_templateparser.y"
+ function yy_r174()
+ {
+ $this->_retvalue = '===';
+ }
+ #line 2989 "smarty_internal_templateparser.php"
+ #line 1149 "smarty_internal_templateparser.y"
+ function yy_r175()
+ {
+ $this->_retvalue = '!==';
+ }
+ #line 2994 "smarty_internal_templateparser.php"
+ #line 1153 "smarty_internal_templateparser.y"
+ function yy_r176()
+ {
+ $this->_retvalue = '%';
+ }
+ #line 2999 "smarty_internal_templateparser.php"
+ #line 1157 "smarty_internal_templateparser.y"
+ function yy_r177()
+ {
+ $this->_retvalue = '&&';
+ }
+ #line 3004 "smarty_internal_templateparser.php"
+ #line 1161 "smarty_internal_templateparser.y"
+ function yy_r178()
+ {
+ $this->_retvalue = '||';
+ }
+ #line 3009 "smarty_internal_templateparser.php"
+ #line 1165 "smarty_internal_templateparser.y"
+ function yy_r179()
+ {
+ $this->_retvalue = ' XOR ';
+ }
+ #line 3014 "smarty_internal_templateparser.php"
+ #line 1172 "smarty_internal_templateparser.y"
+ function yy_r180()
+ {
+ $this->_retvalue = 'array(' . $this->yystack[$this->yyidx + - 1]->minor . ')';
+ }
+ #line 3019 "smarty_internal_templateparser.php"
+ #line 1180 "smarty_internal_templateparser.y"
+ function yy_r182()
+ {
+ $this->_retvalue = $this->yystack[$this->yyidx + - 2]->minor . ',' . $this->yystack[$this->yyidx + 0]->minor;
+ }
+ #line 3024 "smarty_internal_templateparser.php"
+ #line 1188 "smarty_internal_templateparser.y"
+ function yy_r184()
+ {
+ $this->_retvalue = $this->yystack[$this->yyidx + - 2]->minor . '=>' . $this->yystack[$this->yyidx + 0]->minor;
+ }
+ #line 3029 "smarty_internal_templateparser.php"
+ #line 1192 "smarty_internal_templateparser.y"
+ function yy_r185()
+ {
+ $this->_retvalue = '\'' . $this->yystack[$this->yyidx + - 2]->minor . '\'=>' . $this->yystack[$this->yyidx + 0]->minor;
+ }
+ #line 3034 "smarty_internal_templateparser.php"
+ #line 1204 "smarty_internal_templateparser.y"
+ function yy_r187()
+ {
+ $this->_retvalue = "''";
+ }
+ #line 3039 "smarty_internal_templateparser.php"
+ #line 1208 "smarty_internal_templateparser.y"
+ function yy_r188()
+ {
+ $this->_retvalue = $this->yystack[$this->yyidx + - 1]->minor->to_smarty_php();
+ }
+ #line 3044 "smarty_internal_templateparser.php"
+ #line 1213 "smarty_internal_templateparser.y"
+ function yy_r189()
+ {
+ $this->yystack[$this->yyidx + - 1]->minor->append_subtree($this->yystack[$this->yyidx + 0]->minor);
+ $this->_retvalue = $this->yystack[$this->yyidx + - 1]->minor;
+ }
+ #line 3050 "smarty_internal_templateparser.php"
+ #line 1218 "smarty_internal_templateparser.y"
+ function yy_r190()
+ {
+ $this->_retvalue = new _smarty_doublequoted($this, $this->yystack[$this->yyidx + 0]->minor);
+ }
+ #line 3055 "smarty_internal_templateparser.php"
+ #line 1222 "smarty_internal_templateparser.y"
+ function yy_r191()
+ {
+ $this->_retvalue = new _smarty_code($this, '(string)' . $this->yystack[$this->yyidx + - 1]->minor);
+ }
+ #line 3060 "smarty_internal_templateparser.php"
+ #line 1230 "smarty_internal_templateparser.y"
+ function yy_r193()
+ {
+ $this->_retvalue = new _smarty_code($this, '(string)$_smarty_tpl->tpl_vars[\'' . substr($this->yystack[$this->yyidx + 0]->minor, 1) . '\']->value');
+ }
+ #line 3065 "smarty_internal_templateparser.php"
+ #line 1238 "smarty_internal_templateparser.y"
+ function yy_r195()
+ {
+ $this->_retvalue = new _smarty_code($this, '(string)(' . $this->yystack[$this->yyidx + - 1]->minor . ')');
+ }
+ #line 3070 "smarty_internal_templateparser.php"
+ #line 1242 "smarty_internal_templateparser.y"
+ function yy_r196()
+ {
+ $this->_retvalue = new _smarty_tag($this, $this->yystack[$this->yyidx + - 1]->minor);
+ }
+ #line 3075 "smarty_internal_templateparser.php"
+ #line 1246 "smarty_internal_templateparser.y"
+ function yy_r197()
+ {
+ $this->_retvalue = new _smarty_dq_content($this, $this->yystack[$this->yyidx + 0]->minor);
}
-#line 2895 "smarty_internal_templateparser.php"
-#line 999 "smarty_internal_templateparser.y"
- function yy_r152(){
- if ($this->security && substr($this->yystack[$this->yyidx + -3]->minor,0,1) == '_') {
- $this->compiler->trigger_template_error (self::Err1);
- }
- $this->_retvalue = $this->yystack[$this->yyidx + -3]->minor . "(". implode(',',$this->yystack[$this->yyidx + -1]->minor) .")";
- }
-#line 2903 "smarty_internal_templateparser.php"
-#line 1006 "smarty_internal_templateparser.y"
- function yy_r153(){
- if ($this->security) {
- $this->compiler->trigger_template_error (self::Err2);
- }
- $this->prefix_number++;
- $this->compiler->prefix_code[] = '<?php $_tmp'.$this->prefix_number.'='.$this->compileVariable("'".$this->yystack[$this->yyidx + -3]->minor."'").';?>';
- $this->_retvalue = '$_tmp'.$this->prefix_number.'('. implode(',',$this->yystack[$this->yyidx + -1]->minor) .')';
- }
-#line 2913 "smarty_internal_templateparser.php"
-#line 1017 "smarty_internal_templateparser.y"
- function yy_r154(){
- $this->_retvalue = array_merge($this->yystack[$this->yyidx + -2]->minor,array($this->yystack[$this->yyidx + 0]->minor));
- }
-#line 2918 "smarty_internal_templateparser.php"
-#line 1034 "smarty_internal_templateparser.y"
- function yy_r157(){
- $this->_retvalue = array_merge($this->yystack[$this->yyidx + -2]->minor,array(array_merge($this->yystack[$this->yyidx + -1]->minor,$this->yystack[$this->yyidx + 0]->minor)));
- }
-#line 2923 "smarty_internal_templateparser.php"
-#line 1038 "smarty_internal_templateparser.y"
- function yy_r158(){
- $this->_retvalue = array(array_merge($this->yystack[$this->yyidx + -1]->minor,$this->yystack[$this->yyidx + 0]->minor));
- }
-#line 2928 "smarty_internal_templateparser.php"
-#line 1046 "smarty_internal_templateparser.y"
- function yy_r160(){
- $this->_retvalue = array($this->yystack[$this->yyidx + 0]->minor);
- }
-#line 2933 "smarty_internal_templateparser.php"
-#line 1054 "smarty_internal_templateparser.y"
- function yy_r161(){
- $this->_retvalue = array_merge($this->yystack[$this->yyidx + -1]->minor,$this->yystack[$this->yyidx + 0]->minor);
- }
-#line 2938 "smarty_internal_templateparser.php"
-#line 1088 "smarty_internal_templateparser.y"
- function yy_r168(){
- $this->_retvalue = '$'.$this->yystack[$this->yyidx + -1]->minor.$this->yystack[$this->yyidx + 0]->minor;
- }
-#line 2943 "smarty_internal_templateparser.php"
-#line 1093 "smarty_internal_templateparser.y"
- function yy_r169(){
- $this->_retvalue = '$'.$this->yystack[$this->yyidx + -2]->minor.$this->yystack[$this->yyidx + -1]->minor.$this->yystack[$this->yyidx + 0]->minor;
- }
-#line 2948 "smarty_internal_templateparser.php"
-#line 1099 "smarty_internal_templateparser.y"
- function yy_r170(){
- $this->_retvalue = '==';
- }
-#line 2953 "smarty_internal_templateparser.php"
-#line 1103 "smarty_internal_templateparser.y"
- function yy_r171(){
- $this->_retvalue = '!=';
- }
-#line 2958 "smarty_internal_templateparser.php"
-#line 1107 "smarty_internal_templateparser.y"
- function yy_r172(){
- $this->_retvalue = '>';
- }
-#line 2963 "smarty_internal_templateparser.php"
-#line 1111 "smarty_internal_templateparser.y"
- function yy_r173(){
- $this->_retvalue = '<';
- }
-#line 2968 "smarty_internal_templateparser.php"
-#line 1115 "smarty_internal_templateparser.y"
- function yy_r174(){
- $this->_retvalue = '>=';
- }
-#line 2973 "smarty_internal_templateparser.php"
-#line 1119 "smarty_internal_templateparser.y"
- function yy_r175(){
- $this->_retvalue = '<=';
- }
-#line 2978 "smarty_internal_templateparser.php"
-#line 1123 "smarty_internal_templateparser.y"
- function yy_r176(){
- $this->_retvalue = '===';
- }
-#line 2983 "smarty_internal_templateparser.php"
-#line 1127 "smarty_internal_templateparser.y"
- function yy_r177(){
- $this->_retvalue = '!==';
- }
-#line 2988 "smarty_internal_templateparser.php"
-#line 1131 "smarty_internal_templateparser.y"
- function yy_r178(){
- $this->_retvalue = '%';
- }
-#line 2993 "smarty_internal_templateparser.php"
-#line 1135 "smarty_internal_templateparser.y"
- function yy_r179(){
- $this->_retvalue = '&&';
- }
-#line 2998 "smarty_internal_templateparser.php"
-#line 1139 "smarty_internal_templateparser.y"
- function yy_r180(){
- $this->_retvalue = '||';
- }
-#line 3003 "smarty_internal_templateparser.php"
-#line 1143 "smarty_internal_templateparser.y"
- function yy_r181(){
- $this->_retvalue = ' XOR ';
- }
-#line 3008 "smarty_internal_templateparser.php"
-#line 1150 "smarty_internal_templateparser.y"
- function yy_r182(){
- $this->_retvalue = 'array('.$this->yystack[$this->yyidx + -1]->minor.')';
- }
-#line 3013 "smarty_internal_templateparser.php"
-#line 1158 "smarty_internal_templateparser.y"
- function yy_r184(){
- $this->_retvalue = $this->yystack[$this->yyidx + -2]->minor.','.$this->yystack[$this->yyidx + 0]->minor;
- }
-#line 3018 "smarty_internal_templateparser.php"
-#line 1166 "smarty_internal_templateparser.y"
- function yy_r186(){
- $this->_retvalue = $this->yystack[$this->yyidx + -2]->minor.'=>'.$this->yystack[$this->yyidx + 0]->minor;
- }
-#line 3023 "smarty_internal_templateparser.php"
-#line 1170 "smarty_internal_templateparser.y"
- function yy_r187(){
- $this->_retvalue = '\''.$this->yystack[$this->yyidx + -2]->minor.'\'=>'.$this->yystack[$this->yyidx + 0]->minor;
- }
-#line 3028 "smarty_internal_templateparser.php"
-#line 1182 "smarty_internal_templateparser.y"
- function yy_r189(){
- $this->_retvalue = "''";
- }
-#line 3033 "smarty_internal_templateparser.php"
-#line 1186 "smarty_internal_templateparser.y"
- function yy_r190(){
- $this->_retvalue = $this->yystack[$this->yyidx + -1]->minor->to_smarty_php();
- }
-#line 3038 "smarty_internal_templateparser.php"
-#line 1191 "smarty_internal_templateparser.y"
- function yy_r191(){
- $this->yystack[$this->yyidx + -1]->minor->append_subtree($this->yystack[$this->yyidx + 0]->minor);
- $this->_retvalue = $this->yystack[$this->yyidx + -1]->minor;
- }
-#line 3044 "smarty_internal_templateparser.php"
-#line 1196 "smarty_internal_templateparser.y"
- function yy_r192(){
- $this->_retvalue = new _smarty_doublequoted($this, $this->yystack[$this->yyidx + 0]->minor);
- }
-#line 3049 "smarty_internal_templateparser.php"
-#line 1200 "smarty_internal_templateparser.y"
- function yy_r193(){
- $this->_retvalue = new _smarty_code($this, '(string)'.$this->yystack[$this->yyidx + -1]->minor);
- }
-#line 3054 "smarty_internal_templateparser.php"
-#line 1208 "smarty_internal_templateparser.y"
- function yy_r195(){
- $this->_retvalue = new _smarty_code($this, '(string)$_smarty_tpl->tpl_vars[\''. substr($this->yystack[$this->yyidx + 0]->minor,1) .'\']->value');
- }
-#line 3059 "smarty_internal_templateparser.php"
-#line 1216 "smarty_internal_templateparser.y"
- function yy_r197(){
- $this->_retvalue = new _smarty_code($this, '(string)('.$this->yystack[$this->yyidx + -1]->minor.')');
- }
-#line 3064 "smarty_internal_templateparser.php"
-#line 1220 "smarty_internal_templateparser.y"
- function yy_r198(){
- $this->_retvalue = new _smarty_tag($this, $this->yystack[$this->yyidx + 0]->minor);
- }
-#line 3069 "smarty_internal_templateparser.php"
-#line 1224 "smarty_internal_templateparser.y"
- function yy_r199(){
- $this->_retvalue = new _smarty_dq_content($this, $this->yystack[$this->yyidx + 0]->minor);
- }
-#line 3074 "smarty_internal_templateparser.php"
+
+ #line 3080 "smarty_internal_templateparser.php"
private $_retvalue;
- function yy_reduce($yyruleno)
+ public function yy_reduce($yyruleno)
{
$yymsp = $this->yystack[$this->yyidx];
- if (self::$yyTraceFILE && $yyruleno >= 0
- && $yyruleno < count(self::$yyRuleName)) {
- fprintf(self::$yyTraceFILE, "%sReduce (%d) [%s].\n",
- self::$yyTracePrompt, $yyruleno,
- self::$yyRuleName[$yyruleno]);
+ if ($this->yyTraceFILE && $yyruleno >= 0
+ && $yyruleno < count(self::$yyRuleName)
+ ) {
+ fprintf($this->yyTraceFILE, "%sReduce (%d) [%s].\n",
+ $this->yyTracePrompt, $yyruleno,
+ self::$yyRuleName[$yyruleno]);
}
$this->_retvalue = $yy_lefthand_side = null;
@@ -3099,14 +4416,14 @@ static public $yy_action = array(
$yygoto = self::$yyRuleInfo[$yyruleno]['lhs'];
$yysize = self::$yyRuleInfo[$yyruleno]['rhs'];
$this->yyidx -= $yysize;
- for($i = $yysize; $i; $i--) {
+ for ($i = $yysize; $i; $i --) {
// pop all of the right-hand side parameters
array_pop($this->yystack);
}
$yyact = $this->yy_find_reduce_action($this->yystack[$this->yyidx]->stateno, $yygoto);
if ($yyact < self::YYNSTATE) {
- if (!self::$yyTraceFILE && $yysize) {
- $this->yyidx++;
+ if (!$this->yyTraceFILE && $yysize) {
+ $this->yyidx ++;
$x = new TP_yyStackEntry;
$x->stateno = $yyact;
$x->major = $yygoto;
@@ -3120,73 +4437,75 @@ static public $yy_action = array(
}
}
- function yy_parse_failed()
+ public function yy_parse_failed()
{
- if (self::$yyTraceFILE) {
- fprintf(self::$yyTraceFILE, "%sFail!\n", self::$yyTracePrompt);
+ if ($this->yyTraceFILE) {
+ fprintf($this->yyTraceFILE, "%sFail!\n", $this->yyTracePrompt);
}
while ($this->yyidx >= 0) {
$this->yy_pop_parser_stack();
}
}
- function yy_syntax_error($yymajor, $TOKEN)
+ public function yy_syntax_error($yymajor, $TOKEN)
{
-#line 77 "smarty_internal_templateparser.y"
+ #line 75 "smarty_internal_templateparser.y"
- $this->internalError = true;
- $this->yymajor = $yymajor;
- $this->compiler->trigger_template_error();
-#line 3137 "smarty_internal_templateparser.php"
+ $this->internalError = true;
+ $this->yymajor = $yymajor;
+ $this->compiler->trigger_template_error();
+ #line 3142 "smarty_internal_templateparser.php"
}
- function yy_accept()
+ public function yy_accept()
{
- if (self::$yyTraceFILE) {
- fprintf(self::$yyTraceFILE, "%sAccept!\n", self::$yyTracePrompt);
+ if ($this->yyTraceFILE) {
+ fprintf($this->yyTraceFILE, "%sAccept!\n", $this->yyTracePrompt);
}
while ($this->yyidx >= 0) {
$stack = $this->yy_pop_parser_stack();
}
-#line 69 "smarty_internal_templateparser.y"
+ #line 66 "smarty_internal_templateparser.y"
+
+ $this->successful = !$this->internalError;
+ $this->internalError = false;
+ $this->retvalue = $this->_retvalue;
+ //echo $this->retvalue."\n\n";
- $this->successful = !$this->internalError;
- $this->internalError = false;
- $this->retvalue = $this->_retvalue;
- //echo $this->retvalue."\n\n";
-#line 3155 "smarty_internal_templateparser.php"
+ #line 3160 "smarty_internal_templateparser.php"
}
- function doParse($yymajor, $yytokenvalue)
+ public function doParse($yymajor, $yytokenvalue)
{
$yyerrorhit = 0; /* True if yymajor has invoked an error */
if ($this->yyidx === null || $this->yyidx < 0) {
$this->yyidx = 0;
- $this->yyerrcnt = -1;
+ $this->yyerrcnt = - 1;
$x = new TP_yyStackEntry;
$x->stateno = 0;
$x->major = 0;
$this->yystack = array();
array_push($this->yystack, $x);
}
- $yyendofinput = ($yymajor==0);
+ $yyendofinput = ($yymajor == 0);
- if (self::$yyTraceFILE) {
- fprintf(self::$yyTraceFILE, "%sInput %s\n",
- self::$yyTracePrompt, $this->yyTokenName[$yymajor]);
+ if ($this->yyTraceFILE) {
+ fprintf($this->yyTraceFILE, "%sInput %s\n",
+ $this->yyTracePrompt, $this->yyTokenName[$yymajor]);
}
do {
$yyact = $this->yy_find_shift_action($yymajor);
if ($yymajor < self::YYERRORSYMBOL &&
- !$this->yy_is_expected_token($yymajor)) {
+ !$this->yy_is_expected_token($yymajor)
+ ) {
// force a syntax error
$yyact = self::YY_ERROR_ACTION;
}
if ($yyact < self::YYNSTATE) {
$this->yy_shift($yyact, $yymajor, $yytokenvalue);
- $this->yyerrcnt--;
+ $this->yyerrcnt --;
if ($yyendofinput && $this->yyidx >= 0) {
$yymajor = 0;
} else {
@@ -3195,30 +4514,30 @@ static public $yy_action = array(
} elseif ($yyact < self::YYNSTATE + self::YYNRULE) {
$this->yy_reduce($yyact - self::YYNSTATE);
} elseif ($yyact == self::YY_ERROR_ACTION) {
- if (self::$yyTraceFILE) {
- fprintf(self::$yyTraceFILE, "%sSyntax Error!\n",
- self::$yyTracePrompt);
+ if ($this->yyTraceFILE) {
+ fprintf($this->yyTraceFILE, "%sSyntax Error!\n",
+ $this->yyTracePrompt);
}
if (self::YYERRORSYMBOL) {
if ($this->yyerrcnt < 0) {
$this->yy_syntax_error($yymajor, $yytokenvalue);
}
$yymx = $this->yystack[$this->yyidx]->major;
- if ($yymx == self::YYERRORSYMBOL || $yyerrorhit ){
- if (self::$yyTraceFILE) {
- fprintf(self::$yyTraceFILE, "%sDiscard input token %s\n",
- self::$yyTracePrompt, $this->yyTokenName[$yymajor]);
+ if ($yymx == self::YYERRORSYMBOL || $yyerrorhit) {
+ if ($this->yyTraceFILE) {
+ fprintf($this->yyTraceFILE, "%sDiscard input token %s\n",
+ $this->yyTracePrompt, $this->yyTokenName[$yymajor]);
}
$this->yy_destructor($yymajor, $yytokenvalue);
$yymajor = self::YYNOCODE;
} else {
while ($this->yyidx >= 0 &&
- $yymx != self::YYERRORSYMBOL &&
- ($yyact = $this->yy_find_shift_action(self::YYERRORSYMBOL)) >= self::YYNSTATE
- ){
+ $yymx != self::YYERRORSYMBOL &&
+ ($yyact = $this->yy_find_shift_action(self::YYERRORSYMBOL)) >= self::YYNSTATE
+ ) {
$this->yy_pop_parser_stack();
}
- if ($this->yyidx < 0 || $yymajor==0) {
+ if ($this->yyidx < 0 || $yymajor == 0) {
$this->yy_destructor($yymajor, $yytokenvalue);
$this->yy_parse_failed();
$yymajor = self::YYNOCODE;
@@ -3247,4 +4566,3 @@ static public $yy_action = array(
} while ($yymajor != self::YYNOCODE && $this->yyidx >= 0);
}
}
-?> \ No newline at end of file
diff --git a/library/Smarty/libs/sysplugins/smarty_internal_utility.php b/library/Smarty/libs/sysplugins/smarty_internal_utility.php
index 3e362855c..0a5975bba 100644
--- a/library/Smarty/libs/sysplugins/smarty_internal_utility.php
+++ b/library/Smarty/libs/sysplugins/smarty_internal_utility.php
@@ -3,47 +3,42 @@
* Project: Smarty: the PHP compiling template engine
* File: smarty_internal_utility.php
* SVN: $Id: $
- *
* 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 2.1 of the License, or (at your option) 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., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
- *
* For questions, help, comments, discussion, etc., please join the
* Smarty mailing list. Send a blank e-mail to
* smarty-discussion-subscribe@googlegroups.com
*
- * @link http://www.smarty.net/
- * @copyright 2008 New Digital Group, Inc.
- * @author Monte Ohrt <monte at ohrt dot com>
- * @author Uwe Tews
- * @package Smarty
+ * @link http://www.smarty.net/
+ * @copyright 2008 New Digital Group, Inc.
+ * @author Monte Ohrt <monte at ohrt dot com>
+ * @author Uwe Tews
+ * @package Smarty
* @subpackage PluginsInternal
- * @version 3-SVN$Rev: 3286 $
+ * @version 3-SVN$Rev: 3286 $
*/
-
/**
* Utility class
*
- * @package Smarty
+ * @package Smarty
* @subpackage Security
*/
-class Smarty_Internal_Utility {
-
+class Smarty_Internal_Utility
+{
/**
* private constructor to prevent calls creation of new instances
*/
- private final function __construct()
+ final private function __construct()
{
// intentionally left blank
}
@@ -51,14 +46,15 @@ class Smarty_Internal_Utility {
/**
* Compile all template files
*
- * @param string $extension template file name extension
- * @param bool $force_compile force all to recompile
- * @param int $time_limit set maximum execution time
- * @param int $max_errors set maximum allowed errors
- * @param Smarty $smarty Smarty instance
+ * @param string $extension template file name extension
+ * @param bool $force_compile force all to recompile
+ * @param int $time_limit set maximum execution time
+ * @param int $max_errors set maximum allowed errors
+ * @param Smarty $smarty Smarty instance
+ *
* @return integer number of template files compiled
*/
- public static function compileAllTemplates($extention, $force_compile, $time_limit, $max_errors, Smarty $smarty)
+ public static function compileAllTemplates($extension, $force_compile, $time_limit, $max_errors, Smarty $smarty)
{
// switch off time limit
if (function_exists('set_time_limit')) {
@@ -68,26 +64,30 @@ class Smarty_Internal_Utility {
$_count = 0;
$_error_count = 0;
// loop over array of template directories
- foreach($smarty->getTemplateDir() as $_dir) {
+ foreach ($smarty->getTemplateDir() as $_dir) {
$_compileDirs = new RecursiveDirectoryIterator($_dir);
$_compile = new RecursiveIteratorIterator($_compileDirs);
foreach ($_compile as $_fileinfo) {
- if (substr($_fileinfo->getBasename(),0,1) == '.' || strpos($_fileinfo, '.svn') !== false) continue;
$_file = $_fileinfo->getFilename();
- if (!substr_compare($_file, $extention, - strlen($extention)) == 0) continue;
- if ($_fileinfo->getPath() == substr($_dir, 0, -1)) {
- $_template_file = $_file;
+ if (substr(basename($_fileinfo->getPathname()), 0, 1) == '.' || strpos($_file, '.svn') !== false) {
+ continue;
+ }
+ if (!substr_compare($_file, $extension, - strlen($extension)) == 0) {
+ continue;
+ }
+ if ($_fileinfo->getPath() == substr($_dir, 0, - 1)) {
+ $_template_file = $_file;
} else {
- $_template_file = substr($_fileinfo->getPath(), strlen($_dir)) . DS . $_file;
+ $_template_file = substr($_fileinfo->getPath(), strlen($_dir)) . DS . $_file;
}
echo '<br>', $_dir, '---', $_template_file;
flush();
$_start_time = microtime(true);
try {
- $_tpl = $smarty->createTemplate($_template_file,null,null,null,false);
+ $_tpl = $smarty->createTemplate($_template_file, null, null, null, false);
if ($_tpl->mustCompile()) {
$_tpl->compileTemplateSource();
- $_count++;
+ $_count ++;
echo ' compiled in ', microtime(true) - $_start_time, ' seconds';
flush();
} else {
@@ -97,7 +97,7 @@ class Smarty_Internal_Utility {
}
catch (Exception $e) {
echo 'Error: ', $e->getMessage(), "<br><br>";
- $_error_count++;
+ $_error_count ++;
}
// free memory
$smarty->template_objects = array();
@@ -109,20 +109,22 @@ class Smarty_Internal_Utility {
}
}
}
+
return $_count;
}
/**
* Compile all config files
*
- * @param string $extension config file name extension
- * @param bool $force_compile force all to recompile
- * @param int $time_limit set maximum execution time
- * @param int $max_errors set maximum allowed errors
- * @param Smarty $smarty Smarty instance
+ * @param string $extension config file name extension
+ * @param bool $force_compile force all to recompile
+ * @param int $time_limit set maximum execution time
+ * @param int $max_errors set maximum allowed errors
+ * @param Smarty $smarty Smarty instance
+ *
* @return integer number of config files compiled
*/
- public static function compileAllConfig($extention, $force_compile, $time_limit, $max_errors, Smarty $smarty)
+ public static function compileAllConfig($extension, $force_compile, $time_limit, $max_errors, Smarty $smarty)
{
// switch off time limit
if (function_exists('set_time_limit')) {
@@ -132,14 +134,18 @@ class Smarty_Internal_Utility {
$_count = 0;
$_error_count = 0;
// loop over array of template directories
- foreach($smarty->getConfigDir() as $_dir) {
+ foreach ($smarty->getConfigDir() as $_dir) {
$_compileDirs = new RecursiveDirectoryIterator($_dir);
$_compile = new RecursiveIteratorIterator($_compileDirs);
foreach ($_compile as $_fileinfo) {
- if (substr($_fileinfo->getBasename(),0,1) == '.' || strpos($_fileinfo, '.svn') !== false) continue;
$_file = $_fileinfo->getFilename();
- if (!substr_compare($_file, $extention, - strlen($extention)) == 0) continue;
- if ($_fileinfo->getPath() == substr($_dir, 0, -1)) {
+ if (substr(basename($_fileinfo->getPathname()), 0, 1) == '.' || strpos($_file, '.svn') !== false) {
+ continue;
+ }
+ if (!substr_compare($_file, $extension, - strlen($extension)) == 0) {
+ continue;
+ }
+ if ($_fileinfo->getPath() == substr($_dir, 0, - 1)) {
$_config_file = $_file;
} else {
$_config_file = substr($_fileinfo->getPath(), strlen($_dir)) . DS . $_file;
@@ -151,7 +157,7 @@ class Smarty_Internal_Utility {
$_config = new Smarty_Internal_Config($_config_file, $smarty);
if ($_config->mustCompile()) {
$_config->compileConfigSource();
- $_count++;
+ $_count ++;
echo ' compiled in ', microtime(true) - $_start_time, ' seconds';
flush();
} else {
@@ -161,7 +167,7 @@ class Smarty_Internal_Utility {
}
catch (Exception $e) {
echo 'Error: ', $e->getMessage(), "<br><br>";
- $_error_count++;
+ $_error_count ++;
}
if ($max_errors !== null && $_error_count == $max_errors) {
echo '<br><br>too many errors';
@@ -169,23 +175,25 @@ class Smarty_Internal_Utility {
}
}
}
+
return $_count;
}
/**
* Delete compiled template file
*
- * @param string $resource_name template name
- * @param string $compile_id compile id
- * @param integer $exp_time expiration time
- * @param Smarty $smarty Smarty instance
+ * @param string $resource_name template name
+ * @param string $compile_id compile id
+ * @param integer $exp_time expiration time
+ * @param Smarty $smarty Smarty instance
+ *
* @return integer number of template files deleted
*/
public static function clearCompiledTemplate($resource_name, $compile_id, $exp_time, Smarty $smarty)
{
- $_compile_dir = $smarty->getCompileDir();
+ $_compile_dir = realpath($smarty->getCompileDir()) . '/';
$_compile_id = isset($compile_id) ? preg_replace('![^\w\|]+!', '_', $compile_id) : null;
- $_dir_sep = $smarty->use_sub_dirs ? DS : '^';
+ $_dir_sep = $smarty->use_sub_dirs ? '/' : '^';
if (isset($resource_name)) {
$_save_stat = $smarty->caching;
$smarty->caching = false;
@@ -205,13 +213,13 @@ class Smarty_Internal_Utility {
unset($smarty->template_objects[$_templateId]);
if ($tpl->source->exists) {
- $_resource_part_1 = basename(str_replace('^', '/', $tpl->compiled->filepath));
- $_resource_part_1_length = strlen($_resource_part_1);
+ $_resource_part_1 = basename(str_replace('^', '/', $tpl->compiled->filepath));
+ $_resource_part_1_length = strlen($_resource_part_1);
} else {
return 0;
}
- $_resource_part_2 = str_replace('.php','.cache.php',$_resource_part_1);
+ $_resource_part_2 = str_replace('.php', '.cache.php', $_resource_part_1);
$_resource_part_2_length = strlen($_resource_part_2);
}
$_dir = $_compile_dir;
@@ -219,22 +227,24 @@ class Smarty_Internal_Utility {
$_dir .= $_compile_id . $_dir_sep;
}
if (isset($_compile_id)) {
- $_compile_id_part = $_compile_dir . $_compile_id . $_dir_sep;
+ $_compile_id_part = str_replace('\\', '/', $_compile_dir . $_compile_id . $_dir_sep);
$_compile_id_part_length = strlen($_compile_id_part);
}
$_count = 0;
try {
$_compileDirs = new RecursiveDirectoryIterator($_dir);
- // NOTE: UnexpectedValueException thrown for PHP >= 5.3
- } catch (Exception $e) {
+ // NOTE: UnexpectedValueException thrown for PHP >= 5.3
+ }
+ catch (Exception $e) {
return 0;
}
$_compile = new RecursiveIteratorIterator($_compileDirs, RecursiveIteratorIterator::CHILD_FIRST);
foreach ($_compile as $_file) {
- if (substr($_file->getBasename(), 0, 1) == '.' || strpos($_file, '.svn') !== false)
+ if (substr(basename($_file->getPathname()), 0, 1) == '.' || strpos($_file, '.svn') !== false) {
continue;
+ }
- $_filepath = (string) $_file;
+ $_filepath = str_replace('\\', '/', (string) $_file);
if ($_file->isDir()) {
if (!$_compile->isDot()) {
@@ -243,12 +253,13 @@ class Smarty_Internal_Utility {
}
} else {
$unlink = false;
- if ((!isset($_compile_id) || (isset($_filepath[$_compile_id_part_length]) && !strncmp($_filepath, $_compile_id_part, $_compile_id_part_length)))
+ if ((!isset($_compile_id) || (isset($_filepath[$_compile_id_part_length]) && $a = !strncmp($_filepath, $_compile_id_part, $_compile_id_part_length)))
&& (!isset($resource_name)
|| (isset($_filepath[$_resource_part_1_length])
- && substr_compare($_filepath, $_resource_part_1, -$_resource_part_1_length, $_resource_part_1_length) == 0)
+ && substr_compare($_filepath, $_resource_part_1, - $_resource_part_1_length, $_resource_part_1_length) == 0)
|| (isset($_filepath[$_resource_part_2_length])
- && substr_compare($_filepath, $_resource_part_2, -$_resource_part_2_length, $_resource_part_2_length) == 0))) {
+ && substr_compare($_filepath, $_resource_part_2, - $_resource_part_2_length, $_resource_part_2_length) == 0))
+ ) {
if (isset($exp_time)) {
if (time() - @filemtime($_filepath) >= $exp_time) {
$unlink = true;
@@ -259,40 +270,44 @@ class Smarty_Internal_Utility {
}
if ($unlink && @unlink($_filepath)) {
- $_count++;
+ $_count ++;
}
}
}
// clear compiled cache
Smarty_Resource::$sources = array();
Smarty_Resource::$compileds = array();
+
return $_count;
}
/**
* Return array of tag/attributes of all tags used by an template
*
- * @param Smarty_Internal_Template $templae template object
- * @return array of tag/attributes
+ * @param Smarty_Internal_Template $template
+ *
+ * @throws Exception
+ * @throws SmartyException
+ * @return array of tag/attributes
*/
public static function getTags(Smarty_Internal_Template $template)
{
$template->smarty->get_used_tags = true;
$template->compileTemplateSource();
+
return $template->used_tags;
}
-
/**
* diagnose Smarty setup
- *
* If $errors is secified, the diagnostic report will be appended to the array, rather than being output.
*
- * @param Smarty $smarty Smarty instance to test
- * @param array $errors array to push results into rather than outputting them
- * @return bool status, true if everything is fine, false else
+ * @param Smarty $smarty Smarty instance to test
+ * @param array $errors array to push results into rather than outputting them
+ *
+ * @return bool status, true if everything is fine, false else
*/
- public static function testInstall(Smarty $smarty, &$errors=null)
+ public static function testInstall(Smarty $smarty, &$errors = null)
{
$status = true;
@@ -305,10 +320,10 @@ class Smarty_Internal_Utility {
$_stream_resolve_include_path = function_exists('stream_resolve_include_path');
// test if all registered template_dir are accessible
- foreach($smarty->getTemplateDir() as $template_dir) {
+ foreach ($smarty->getTemplateDir() as $template_dir) {
$_template_dir = $template_dir;
$template_dir = realpath($template_dir);
- // resolve include_path or fail existance
+ // resolve include_path or fail existence
if (!$template_dir) {
if ($smarty->use_include_path && !preg_match('/^([\/\\\\]|[a-zA-Z]:[\/\\\\])/', $_template_dir)) {
// try PHP include_path
@@ -371,7 +386,6 @@ class Smarty_Internal_Utility {
}
}
-
if ($errors === null) {
echo "Testing compile directory...\n";
}
@@ -417,19 +431,18 @@ class Smarty_Internal_Utility {
}
}
-
if ($errors === null) {
echo "Testing plugins directory...\n";
}
// test if all registered plugins_dir are accessible
// and if core plugins directory is still registered
- $_core_plugins_dir = realpath(dirname(__FILE__) .'/../plugins');
+ $_core_plugins_dir = realpath(dirname(__FILE__) . '/../plugins');
$_core_plugins_available = false;
- foreach($smarty->getPluginsDir() as $plugin_dir) {
+ foreach ($smarty->getPluginsDir() as $plugin_dir) {
$_plugin_dir = $plugin_dir;
$plugin_dir = realpath($plugin_dir);
- // resolve include_path or fail existance
+ // resolve include_path or fail existence
if (!$plugin_dir) {
if ($smarty->use_include_path && !preg_match('/^([\/\\\\]|[a-zA-Z]:[\/\\\\])/', $_plugin_dir)) {
// try PHP include_path
@@ -510,7 +523,6 @@ class Smarty_Internal_Utility {
echo "Testing cache directory...\n";
}
-
// test if all registered cache_dir is accessible
$__cache_dir = $smarty->getCacheDir();
$_cache_dir = realpath($__cache_dir);
@@ -552,16 +564,15 @@ class Smarty_Internal_Utility {
}
}
-
if ($errors === null) {
echo "Testing configs directory...\n";
}
// test if all registered config_dir are accessible
- foreach($smarty->getConfigDir() as $config_dir) {
+ foreach ($smarty->getConfigDir() as $config_dir) {
$_config_dir = $config_dir;
$config_dir = realpath($config_dir);
- // resolve include_path or fail existance
+ // resolve include_path or fail existence
if (!$config_dir) {
if ($smarty->use_include_path && !preg_match('/^([\/\\\\]|[a-zA-Z]:[\/\\\\])/', $_config_dir)) {
// try PHP include_path
@@ -624,7 +635,6 @@ class Smarty_Internal_Utility {
}
}
-
if ($errors === null) {
echo "Testing sysplugin files...\n";
}
@@ -632,75 +642,75 @@ class Smarty_Internal_Utility {
$source = SMARTY_SYSPLUGINS_DIR;
if (is_dir($source)) {
$expected = array(
- "smarty_cacheresource.php" => true,
- "smarty_cacheresource_custom.php" => true,
- "smarty_cacheresource_keyvaluestore.php" => true,
- "smarty_config_source.php" => true,
- "smarty_internal_cacheresource_file.php" => true,
- "smarty_internal_compile_append.php" => true,
- "smarty_internal_compile_assign.php" => true,
- "smarty_internal_compile_block.php" => true,
- "smarty_internal_compile_break.php" => true,
- "smarty_internal_compile_call.php" => true,
- "smarty_internal_compile_capture.php" => true,
- "smarty_internal_compile_config_load.php" => true,
- "smarty_internal_compile_continue.php" => true,
- "smarty_internal_compile_debug.php" => true,
- "smarty_internal_compile_eval.php" => true,
- "smarty_internal_compile_extends.php" => true,
- "smarty_internal_compile_for.php" => true,
- "smarty_internal_compile_foreach.php" => true,
- "smarty_internal_compile_function.php" => true,
- "smarty_internal_compile_if.php" => true,
- "smarty_internal_compile_include.php" => true,
- "smarty_internal_compile_include_php.php" => true,
- "smarty_internal_compile_insert.php" => true,
- "smarty_internal_compile_ldelim.php" => true,
- "smarty_internal_compile_nocache.php" => true,
- "smarty_internal_compile_private_block_plugin.php" => true,
- "smarty_internal_compile_private_function_plugin.php" => true,
- "smarty_internal_compile_private_modifier.php" => true,
+ "smarty_cacheresource.php" => true,
+ "smarty_cacheresource_custom.php" => true,
+ "smarty_cacheresource_keyvaluestore.php" => true,
+ "smarty_config_source.php" => true,
+ "smarty_internal_cacheresource_file.php" => true,
+ "smarty_internal_compile_append.php" => true,
+ "smarty_internal_compile_assign.php" => true,
+ "smarty_internal_compile_block.php" => true,
+ "smarty_internal_compile_break.php" => true,
+ "smarty_internal_compile_call.php" => true,
+ "smarty_internal_compile_capture.php" => true,
+ "smarty_internal_compile_config_load.php" => true,
+ "smarty_internal_compile_continue.php" => true,
+ "smarty_internal_compile_debug.php" => true,
+ "smarty_internal_compile_eval.php" => true,
+ "smarty_internal_compile_extends.php" => true,
+ "smarty_internal_compile_for.php" => true,
+ "smarty_internal_compile_foreach.php" => true,
+ "smarty_internal_compile_function.php" => true,
+ "smarty_internal_compile_if.php" => true,
+ "smarty_internal_compile_include.php" => true,
+ "smarty_internal_compile_include_php.php" => true,
+ "smarty_internal_compile_insert.php" => true,
+ "smarty_internal_compile_ldelim.php" => true,
+ "smarty_internal_compile_nocache.php" => true,
+ "smarty_internal_compile_private_block_plugin.php" => true,
+ "smarty_internal_compile_private_function_plugin.php" => true,
+ "smarty_internal_compile_private_modifier.php" => true,
"smarty_internal_compile_private_object_block_function.php" => true,
- "smarty_internal_compile_private_object_function.php" => true,
- "smarty_internal_compile_private_print_expression.php" => true,
- "smarty_internal_compile_private_registered_block.php" => true,
- "smarty_internal_compile_private_registered_function.php" => true,
- "smarty_internal_compile_private_special_variable.php" => true,
- "smarty_internal_compile_rdelim.php" => true,
- "smarty_internal_compile_section.php" => true,
- "smarty_internal_compile_setfilter.php" => true,
- "smarty_internal_compile_while.php" => true,
- "smarty_internal_compilebase.php" => true,
- "smarty_internal_config.php" => true,
- "smarty_internal_config_file_compiler.php" => true,
- "smarty_internal_configfilelexer.php" => true,
- "smarty_internal_configfileparser.php" => true,
- "smarty_internal_data.php" => true,
- "smarty_internal_debug.php" => true,
- "smarty_internal_filter_handler.php" => true,
- "smarty_internal_function_call_handler.php" => true,
- "smarty_internal_get_include_path.php" => true,
- "smarty_internal_nocache_insert.php" => true,
- "smarty_internal_parsetree.php" => true,
- "smarty_internal_resource_eval.php" => true,
- "smarty_internal_resource_extends.php" => true,
- "smarty_internal_resource_file.php" => true,
- "smarty_internal_resource_registered.php" => true,
- "smarty_internal_resource_stream.php" => true,
- "smarty_internal_resource_string.php" => true,
- "smarty_internal_smartytemplatecompiler.php" => true,
- "smarty_internal_template.php" => true,
- "smarty_internal_templatebase.php" => true,
- "smarty_internal_templatecompilerbase.php" => true,
- "smarty_internal_templatelexer.php" => true,
- "smarty_internal_templateparser.php" => true,
- "smarty_internal_utility.php" => true,
- "smarty_internal_write_file.php" => true,
- "smarty_resource.php" => true,
- "smarty_resource_custom.php" => true,
- "smarty_resource_recompiled.php" => true,
- "smarty_resource_uncompiled.php" => true,
- "smarty_security.php" => true,
+ "smarty_internal_compile_private_object_function.php" => true,
+ "smarty_internal_compile_private_print_expression.php" => true,
+ "smarty_internal_compile_private_registered_block.php" => true,
+ "smarty_internal_compile_private_registered_function.php" => true,
+ "smarty_internal_compile_private_special_variable.php" => true,
+ "smarty_internal_compile_rdelim.php" => true,
+ "smarty_internal_compile_section.php" => true,
+ "smarty_internal_compile_setfilter.php" => true,
+ "smarty_internal_compile_while.php" => true,
+ "smarty_internal_compilebase.php" => true,
+ "smarty_internal_config.php" => true,
+ "smarty_internal_config_file_compiler.php" => true,
+ "smarty_internal_configfilelexer.php" => true,
+ "smarty_internal_configfileparser.php" => true,
+ "smarty_internal_data.php" => true,
+ "smarty_internal_debug.php" => true,
+ "smarty_internal_filter_handler.php" => true,
+ "smarty_internal_function_call_handler.php" => true,
+ "smarty_internal_get_include_path.php" => true,
+ "smarty_internal_nocache_insert.php" => true,
+ "smarty_internal_parsetree.php" => true,
+ "smarty_internal_resource_eval.php" => true,
+ "smarty_internal_resource_extends.php" => true,
+ "smarty_internal_resource_file.php" => true,
+ "smarty_internal_resource_registered.php" => true,
+ "smarty_internal_resource_stream.php" => true,
+ "smarty_internal_resource_string.php" => true,
+ "smarty_internal_smartytemplatecompiler.php" => true,
+ "smarty_internal_template.php" => true,
+ "smarty_internal_templatebase.php" => true,
+ "smarty_internal_templatecompilerbase.php" => true,
+ "smarty_internal_templatelexer.php" => true,
+ "smarty_internal_templateparser.php" => true,
+ "smarty_internal_utility.php" => true,
+ "smarty_internal_write_file.php" => true,
+ "smarty_resource.php" => true,
+ "smarty_resource_custom.php" => true,
+ "smarty_resource_recompiled.php" => true,
+ "smarty_resource_uncompiled.php" => true,
+ "smarty_security.php" => true,
);
$iterator = new DirectoryIterator($source);
foreach ($iterator as $file) {
@@ -713,7 +723,7 @@ class Smarty_Internal_Utility {
}
if ($expected) {
$status = false;
- $message = "FAILED: files missing from libs/sysplugins: ". join(', ', array_keys($expected));
+ $message = "FAILED: files missing from libs/sysplugins: " . join(', ', array_keys($expected));
if ($errors === null) {
echo $message . ".\n";
} else {
@@ -724,7 +734,7 @@ class Smarty_Internal_Utility {
}
} else {
$status = false;
- $message = "FAILED: ". SMARTY_SYSPLUGINS_DIR .' is not a directory';
+ $message = "FAILED: " . SMARTY_SYSPLUGINS_DIR . ' is not a directory';
if ($errors === null) {
echo $message . ".\n";
} else {
@@ -739,53 +749,53 @@ class Smarty_Internal_Utility {
$source = SMARTY_PLUGINS_DIR;
if (is_dir($source)) {
$expected = array(
- "block.textformat.php" => true,
- "function.counter.php" => true,
- "function.cycle.php" => true,
- "function.fetch.php" => true,
- "function.html_checkboxes.php" => true,
- "function.html_image.php" => true,
- "function.html_options.php" => true,
- "function.html_radios.php" => true,
- "function.html_select_date.php" => true,
- "function.html_select_time.php" => true,
- "function.html_table.php" => true,
- "function.mailto.php" => true,
- "function.math.php" => true,
- "modifier.capitalize.php" => true,
- "modifier.date_format.php" => true,
- "modifier.debug_print_var.php" => true,
- "modifier.escape.php" => true,
- "modifier.regex_replace.php" => true,
- "modifier.replace.php" => true,
- "modifier.spacify.php" => true,
- "modifier.truncate.php" => true,
- "modifiercompiler.cat.php" => true,
+ "block.textformat.php" => true,
+ "function.counter.php" => true,
+ "function.cycle.php" => true,
+ "function.fetch.php" => true,
+ "function.html_checkboxes.php" => true,
+ "function.html_image.php" => true,
+ "function.html_options.php" => true,
+ "function.html_radios.php" => true,
+ "function.html_select_date.php" => true,
+ "function.html_select_time.php" => true,
+ "function.html_table.php" => true,
+ "function.mailto.php" => true,
+ "function.math.php" => true,
+ "modifier.capitalize.php" => true,
+ "modifier.date_format.php" => true,
+ "modifier.debug_print_var.php" => true,
+ "modifier.escape.php" => true,
+ "modifier.regex_replace.php" => true,
+ "modifier.replace.php" => true,
+ "modifier.spacify.php" => true,
+ "modifier.truncate.php" => true,
+ "modifiercompiler.cat.php" => true,
"modifiercompiler.count_characters.php" => true,
"modifiercompiler.count_paragraphs.php" => true,
- "modifiercompiler.count_sentences.php" => true,
- "modifiercompiler.count_words.php" => true,
- "modifiercompiler.default.php" => true,
- "modifiercompiler.escape.php" => true,
- "modifiercompiler.from_charset.php" => true,
- "modifiercompiler.indent.php" => true,
- "modifiercompiler.lower.php" => true,
- "modifiercompiler.noprint.php" => true,
- "modifiercompiler.string_format.php" => true,
- "modifiercompiler.strip.php" => true,
- "modifiercompiler.strip_tags.php" => true,
- "modifiercompiler.to_charset.php" => true,
- "modifiercompiler.unescape.php" => true,
- "modifiercompiler.upper.php" => true,
- "modifiercompiler.wordwrap.php" => true,
- "outputfilter.trimwhitespace.php" => true,
- "shared.escape_special_chars.php" => true,
- "shared.literal_compiler_param.php" => true,
- "shared.make_timestamp.php" => true,
- "shared.mb_str_replace.php" => true,
- "shared.mb_unicode.php" => true,
- "shared.mb_wordwrap.php" => true,
- "variablefilter.htmlspecialchars.php" => true,
+ "modifiercompiler.count_sentences.php" => true,
+ "modifiercompiler.count_words.php" => true,
+ "modifiercompiler.default.php" => true,
+ "modifiercompiler.escape.php" => true,
+ "modifiercompiler.from_charset.php" => true,
+ "modifiercompiler.indent.php" => true,
+ "modifiercompiler.lower.php" => true,
+ "modifiercompiler.noprint.php" => true,
+ "modifiercompiler.string_format.php" => true,
+ "modifiercompiler.strip.php" => true,
+ "modifiercompiler.strip_tags.php" => true,
+ "modifiercompiler.to_charset.php" => true,
+ "modifiercompiler.unescape.php" => true,
+ "modifiercompiler.upper.php" => true,
+ "modifiercompiler.wordwrap.php" => true,
+ "outputfilter.trimwhitespace.php" => true,
+ "shared.escape_special_chars.php" => true,
+ "shared.literal_compiler_param.php" => true,
+ "shared.make_timestamp.php" => true,
+ "shared.mb_str_replace.php" => true,
+ "shared.mb_unicode.php" => true,
+ "shared.mb_wordwrap.php" => true,
+ "variablefilter.htmlspecialchars.php" => true,
);
$iterator = new DirectoryIterator($source);
foreach ($iterator as $file) {
@@ -798,7 +808,7 @@ class Smarty_Internal_Utility {
}
if ($expected) {
$status = false;
- $message = "FAILED: files missing from libs/plugins: ". join(', ', array_keys($expected));
+ $message = "FAILED: files missing from libs/plugins: " . join(', ', array_keys($expected));
if ($errors === null) {
echo $message . ".\n";
} else {
@@ -809,7 +819,7 @@ class Smarty_Internal_Utility {
}
} else {
$status = false;
- $message = "FAILED: ". SMARTY_PLUGINS_DIR .' is not a directory';
+ $message = "FAILED: " . SMARTY_PLUGINS_DIR . ' is not a directory';
if ($errors === null) {
echo $message . ".\n";
} else {
@@ -824,7 +834,4 @@ class Smarty_Internal_Utility {
return $status;
}
-
}
-
-?> \ No newline at end of file
diff --git a/library/Smarty/libs/sysplugins/smarty_internal_write_file.php b/library/Smarty/libs/sysplugins/smarty_internal_write_file.php
index e5d19ce8d..f46fe2b6c 100644
--- a/library/Smarty/libs/sysplugins/smarty_internal_write_file.php
+++ b/library/Smarty/libs/sysplugins/smarty_internal_write_file.php
@@ -2,25 +2,27 @@
/**
* Smarty write file plugin
*
- * @package Smarty
+ * @package Smarty
* @subpackage PluginsInternal
- * @author Monte Ohrt
+ * @author Monte Ohrt
*/
/**
* Smarty Internal Write File Class
*
- * @package Smarty
+ * @package Smarty
* @subpackage PluginsInternal
*/
-class Smarty_Internal_Write_File {
-
+class Smarty_Internal_Write_File
+{
/**
* Writes file in a safe way to disk
*
- * @param string $_filepath complete filepath
- * @param string $_contents file content
- * @param Smarty $smarty smarty instance
+ * @param string $_filepath complete filepath
+ * @param string $_contents file content
+ * @param Smarty $smarty smarty instance
+ *
+ * @throws SmartyException
* @return boolean true
*/
public static function writeFile($_filepath, $_contents, Smarty $smarty)
@@ -38,17 +40,16 @@ class Smarty_Internal_Write_File {
}
// write to tmp file, then move to overt file lock race condition
- $_tmp_file = $_dirpath . DS . uniqid('wrt', true);
+ $_tmp_file = $_dirpath . DS . str_replace(array('.', ','), '_', uniqid('wrt', true));
if (!file_put_contents($_tmp_file, $_contents)) {
error_reporting($_error_reporting);
throw new SmartyException("unable to write file {$_tmp_file}");
- return false;
- }
-
+ }
+
/*
* Windows' rename() fails if the destination exists,
* Linux' rename() properly handles the overwrite.
- * Simply unlink()ing a file might cause other processes
+ * Simply unlink()ing a file might cause other processes
* currently reading that file to fail, but linux' rename()
* seems to be smart enough to handle that for us.
*/
@@ -71,7 +72,6 @@ class Smarty_Internal_Write_File {
if (!$success) {
error_reporting($_error_reporting);
throw new SmartyException("unable to write file {$_filepath}");
- return false;
}
if ($smarty->_file_perms !== null) {
@@ -80,9 +80,7 @@ class Smarty_Internal_Write_File {
umask($old_umask);
}
error_reporting($_error_reporting);
+
return true;
}
-
}
-
-?> \ No newline at end of file
diff --git a/library/Smarty/libs/sysplugins/smarty_resource.php b/library/Smarty/libs/sysplugins/smarty_resource.php
index f79373af3..f478a533d 100644
--- a/library/Smarty/libs/sysplugins/smarty_resource.php
+++ b/library/Smarty/libs/sysplugins/smarty_resource.php
@@ -2,84 +2,91 @@
/**
* Smarty Resource Plugin
*
- * @package Smarty
+ * @package Smarty
* @subpackage TemplateResources
- * @author Rodney Rehm
+ * @author Rodney Rehm
*/
/**
* Smarty Resource Plugin
- *
* Base implementation for resource plugins
*
- * @package Smarty
+ * @package Smarty
* @subpackage TemplateResources
*/
-abstract class Smarty_Resource {
+abstract class Smarty_Resource
+{
/**
* cache for Smarty_Template_Source instances
+ *
* @var array
*/
public static $sources = array();
/**
* cache for Smarty_Template_Compiled instances
+ *
* @var array
*/
public static $compileds = array();
/**
* cache for Smarty_Resource instances
+ *
* @var array
*/
public static $resources = array();
/**
* resource types provided by the core
+ *
* @var array
*/
protected static $sysplugins = array(
- 'file' => true,
- 'string' => true,
+ 'file' => true,
+ 'string' => true,
'extends' => true,
- 'stream' => true,
- 'eval' => true,
- 'php' => true
+ 'stream' => true,
+ 'eval' => true,
+ 'php' => true
);
/**
* Name of the Class to compile this resource's contents with
+ *
* @var string
*/
public $compiler_class = 'Smarty_Internal_SmartyTemplateCompiler';
/**
* Name of the Class to tokenize this resource's contents with
+ *
* @var string
*/
public $template_lexer_class = 'Smarty_Internal_Templatelexer';
/**
* Name of the Class to parse this resource's contents with
+ *
* @var string
*/
public $template_parser_class = 'Smarty_Internal_Templateparser';
/**
* Load template's source into current template object
- *
* {@internal The loaded source is assigned to $_template->source->content directly.}}
*
- * @param Smarty_Template_Source $source source object
- * @return string template source
- * @throws SmartyException if source cannot be loaded
+ * @param Smarty_Template_Source $source source object
+ *
+ * @return string template source
+ * @throws SmartyException if source cannot be loaded
*/
- public abstract function getContent(Smarty_Template_Source $source);
+ abstract public function getContent(Smarty_Template_Source $source);
/**
* populate Source Object with meta data from Resource
*
- * @param Smarty_Template_Source $source source object
- * @param Smarty_Internal_Template $_template template object
+ * @param Smarty_Template_Source $source source object
+ * @param Smarty_Internal_Template $_template template object
*/
- public abstract function populate(Smarty_Template_Source $source, Smarty_Internal_Template $_template=null);
+ abstract public function populate(Smarty_Template_Source $source, Smarty_Internal_Template $_template = null);
/**
* populate Source Object with timestamp and exists from Resource
@@ -91,17 +98,22 @@ abstract class Smarty_Resource {
// intentionally left blank
}
-
/**
* modify resource_name according to resource handlers specifications
*
- * @param Smarty $smarty Smarty instance
- * @param string $resource_name resource_name to make unique
+ * @param Smarty $smarty Smarty instance
+ * @param string $resource_name resource_name to make unique
+ * @param boolean $is_config flag for config resource
+ *
* @return string unique resource name
*/
- protected function buildUniqueResourceName(Smarty $smarty, $resource_name)
+ protected function buildUniqueResourceName(Smarty $smarty, $resource_name, $is_config = false)
{
- return get_class($this) . '#' . $smarty->joined_template_dir . '#' . $resource_name;
+ if ($is_config) {
+ return get_class($this) . '#' . $smarty->joined_config_dir . '#' . $resource_name;
+ } else {
+ return get_class($this) . '#' . $smarty->joined_template_dir . '#' . $resource_name;
+ }
}
/**
@@ -117,9 +129,9 @@ abstract class Smarty_Resource {
// if use_sub_dirs, break file into directories
if ($_template->smarty->use_sub_dirs) {
$_filepath = substr($_filepath, 0, 2) . DS
- . substr($_filepath, 2, 2) . DS
- . substr($_filepath, 4, 2) . DS
- . $_filepath;
+ . substr($_filepath, 2, 2) . DS
+ . substr($_filepath, 4, 2) . DS
+ . $_filepath;
}
$_compile_dir_sep = $_template->smarty->use_sub_dirs ? DS : '^';
if (isset($_compile_id)) {
@@ -135,7 +147,7 @@ abstract class Smarty_Resource {
// set basename if not specified
$_basename = $this->getBasename($compiled->source);
if ($_basename === null) {
- $_basename = basename( preg_replace('![^\w\/]+!', '_', $compiled->source->name) );
+ $_basename = basename(preg_replace('![^\w\/]+!', '_', $compiled->source->name));
}
// separate (optional) basename by dot
if ($_basename) {
@@ -144,59 +156,63 @@ abstract class Smarty_Resource {
$compiled->filepath = $_compile_dir . $_filepath . '.' . $compiled->source->type . $_basename . $_cache . '.php';
}
-
+
/**
- * Normalize Paths "foo/../bar" to "bar"
+ * Normalize Paths "foo/../bar" to "bar"
+ *
+ * @param string $_path path to normalize
+ * @param boolean $ds respect windows directory separator
*
- * @param string $_path path to normalize
- * @param boolean $ds respect windows directory separator
- * @return string normalized path
+ * @return string normalized path
*/
- protected function normalizePath($_path, $ds=true)
+ protected function normalizePath($_path, $ds = true)
{
if ($ds) {
// don't we all just love windows?
$_path = str_replace('\\', '/', $_path);
}
-
+
+ $offset = 0;
+
// resolve simples
- $_path = preg_replace('#(/\./(\./)*)|/{2,}#', '/', $_path);
+ $_path = preg_replace('#/\./(\./)*#', '/', $_path);
// resolve parents
while (true) {
- $_parent = strpos($_path, '/../');
- if ($_parent === false) {
- break;
- } else if ($_parent === 0) {
- $_path = substr($_path, 3);
+ $_parent = strpos($_path, '/../', $offset);
+ if (!$_parent) {
break;
+ } elseif ($_path[$_parent - 1] === '.') {
+ $offset = $_parent + 3;
+ continue;
}
-
+
$_pos = strrpos($_path, '/', $_parent - strlen($_path) - 1);
if ($_pos === false) {
// don't we all just love windows?
$_pos = $_parent;
}
-
+
$_path = substr_replace($_path, '', $_pos, $_parent + 3 - $_pos);
}
-
+
if ($ds && DS != '/') {
// don't we all just love windows?
$_path = str_replace('/', '\\', $_path);
}
-
+
return $_path;
}
-
+
/**
* build template filepath by traversing the template_dir array
*
- * @param Smarty_Template_Source $source source object
- * @param Smarty_Internal_Template $_template template object
- * @return string fully qualified filepath
- * @throws SmartyException if default template handler is registered but not callable
+ * @param Smarty_Template_Source $source source object
+ * @param Smarty_Internal_Template $_template template object
+ *
+ * @return string fully qualified filepath
+ * @throws SmartyException if default template handler is registered but not callable
*/
- protected function buildFilepath(Smarty_Template_Source $source, Smarty_Internal_Template $_template=null)
+ protected function buildFilepath(Smarty_Template_Source $source, Smarty_Internal_Template $_template = null)
{
$file = $source->name;
if ($source instanceof Smarty_Config_Source) {
@@ -225,8 +241,6 @@ abstract class Smarty_Resource {
// resolve relative path
if (!preg_match('/^([\/\\\\]|[a-zA-Z]:[\/\\\\])/', $file)) {
// don't we all just love windows?
- $_path = str_replace('\\', '/', $file);
- $_was_relative_prefix = $file[0] == '.' ? substr($file, 0, strpos($_path, '/')) : null;
$_path = DS . trim($file, '/');
$_was_relative = true;
} else {
@@ -240,11 +254,7 @@ abstract class Smarty_Resource {
}
// revert to relative
if (isset($_was_relative)) {
- if (isset($_was_relative_prefix)){
- $_path = $_was_relative_prefix . $_path;
- } else {
- $_path = substr($_path, 1);
- }
+ $_path = substr($_path, 1);
}
// this is only required for directories
@@ -261,7 +271,7 @@ abstract class Smarty_Resource {
// try string indexes
if (isset($_directories[$match['key']])) {
$_directory = $_directories[$match['key']];
- } else if (is_numeric($match['key'])) {
+ } elseif (is_numeric($match['key'])) {
// try numeric index
$match['key'] = (int) $match['key'];
if (isset($_directories[$match['key']])) {
@@ -323,15 +333,17 @@ abstract class Smarty_Resource {
}
}
$_return = call_user_func_array($_default_handler,
- array($source->type, $source->name, &$_content, &$_timestamp, $source->smarty));
+ array($source->type, $source->name, &$_content, &$_timestamp, $source->smarty));
if (is_string($_return)) {
$source->timestamp = @filemtime($_return);
$source->exists = !!$source->timestamp;
+
return $_return;
} elseif ($_return === true) {
$source->content = $_content;
$source->timestamp = $_timestamp;
$source->exists = true;
+
return $_filepath;
}
}
@@ -343,22 +355,24 @@ abstract class Smarty_Resource {
/**
* test is file exists and save timestamp
*
- * @param Smarty_Template_Source $source source object
- * @param string $file file name
- * @return bool true if file exists
+ * @param Smarty_Template_Source $source source object
+ * @param string $file file name
+ *
+ * @return bool true if file exists
*/
protected function fileExists(Smarty_Template_Source $source, $file)
{
- $source->timestamp = @filemtime($file);
- return $source->exists = !!$source->timestamp;
+ $source->timestamp = is_file($file) ? @filemtime($file) : false;
+ return $source->exists = !!$source->timestamp;
}
/**
* Determine basename for compiled filename
*
- * @param Smarty_Template_Source $source source object
- * @return string resource's basename
+ * @param Smarty_Template_Source $source source object
+ *
+ * @return string resource's basename
*/
protected function getBasename(Smarty_Template_Source $source)
{
@@ -368,8 +382,10 @@ abstract class Smarty_Resource {
/**
* Load Resource Handler
*
- * @param Smarty $smarty smarty object
- * @param string $type name of the resource
+ * @param Smarty $smarty smarty object
+ * @param string $type name of the resource
+ *
+ * @throws SmartyException
* @return Smarty_Resource Resource Handler
*/
public static function load(Smarty $smarty, $type)
@@ -403,6 +419,7 @@ abstract class Smarty_Resource {
$_resource_class = 'Smarty_Internal_Resource_' . ucfirst($type);
self::$resources[$type] = new $_resource_class();
}
+
return $smarty->_resource_handlers[$type] = self::$resources[$type];
}
@@ -415,6 +432,7 @@ abstract class Smarty_Resource {
if (class_exists($_resource_class, false)) {
self::$resources[$type] = new $_resource_class();
+
return $smarty->_resource_handlers[$type] = self::$resources[$type];
} else {
$smarty->registerResource($type, array(
@@ -439,23 +457,25 @@ abstract class Smarty_Resource {
if (!isset(self::$resources['stream'])) {
self::$resources['stream'] = new Smarty_Internal_Resource_Stream();
}
+
return $smarty->_resource_handlers[$type] = self::$resources['stream'];
}
// TODO: try default_(template|config)_handler
// give up
- throw new SmartyException("Unkown resource type '{$type}'");
+ throw new SmartyException("Unknown resource type '{$type}'");
}
/**
* extract resource_type and resource_name from template_resource and config_resource
- *
* @note "C:/foo.tpl" was forced to file resource up till Smarty 3.1.3 (including).
- * @param string $resource_name template_resource or config_resource to parse
- * @param string $default_resource the default resource_type defined in $smarty
- * @param string &$name the parsed resource name
- * @param string &$type the parsed resource type
+ *
+ * @param string $resource_name template_resource or config_resource to parse
+ * @param string $default_resource the default resource_type defined in $smarty
+ * @param string &$name the parsed resource name
+ * @param string &$type the parsed resource type
+ *
* @return void
*/
protected static function parseResourceName($resource_name, $default_resource, &$name, &$type)
@@ -472,41 +492,47 @@ abstract class Smarty_Resource {
}
}
-
/**
* modify resource_name according to resource handlers specifications
*
- * @param Smarty $smarty Smarty instance
- * @param string $resource_name resource_name to make unique
+ * @param Smarty $smarty Smarty instance
+ * @param string $resource_name resource_name to make unique
+ *
* @return string unique resource name
*/
/**
* modify template_resource according to resource handlers specifications
*
- * @param string $smarty Smarty instance
- * @param string $template_resource template_resource to extracate resource handler and name of
+ * @param Smarty_Internal_template $template Smarty instance
+ * @param string $template_resource template_resource to extract resource handler and name of
+ *
* @return string unique resource name
*/
- public static function getUniqueTemplateName($smarty, $template_resource)
+ public static function getUniqueTemplateName($template, $template_resource)
{
- self::parseResourceName($template_resource, $smarty->default_resource_type, $name, $type);
+ self::parseResourceName($template_resource, $template->smarty->default_resource_type, $name, $type);
// TODO: optimize for Smarty's internal resource types
- $resource = Smarty_Resource::load($smarty, $type);
- return $resource->buildUniqueResourceName($smarty, $name);
+ $resource = Smarty_Resource::load($template->smarty, $type);
+ // go relative to a given template?
+ $_file_is_dotted = $name[0] == '.' && ($name[1] == '.' || $name[1] == '/' || $name[1] == "\\");
+ if ($template instanceof Smarty_Internal_Template && $_file_is_dotted && ($template->source->type == 'file' || $template->parent->source->type == 'extends')) {
+ $name = dirname($template->source->filepath) . DS . $name;
+ }
+ return $resource->buildUniqueResourceName($template->smarty, $name);
}
/**
* initialize Source Object for given resource
- *
* Either [$_template] or [$smarty, $template_resource] must be specified
*
- * @param Smarty_Internal_Template $_template template object
- * @param Smarty $smarty smarty object
- * @param string $template_resource resource identifier
- * @return Smarty_Template_Source Source Object
+ * @param Smarty_Internal_Template $_template template object
+ * @param Smarty $smarty smarty object
+ * @param string $template_resource resource identifier
+ *
+ * @return Smarty_Template_Source Source Object
*/
- public static function source(Smarty_Internal_Template $_template=null, Smarty $smarty=null, $template_resource=null)
+ public static function source(Smarty_Internal_Template $_template = null, Smarty $smarty = null, $template_resource = null)
{
if ($_template) {
$smarty = $_template->smarty;
@@ -516,12 +542,19 @@ abstract class Smarty_Resource {
// parse resource_name, load resource handler, identify unique resource name
self::parseResourceName($template_resource, $smarty->default_resource_type, $name, $type);
$resource = Smarty_Resource::load($smarty, $type);
- $unique_resource_name = $resource->buildUniqueResourceName($smarty, $name);
+ // go relative to a given template?
+ $_file_is_dotted = isset($name[0]) && $name[0] == '.' && ($name[1] == '.' || $name[1] == '/' || $name[1] == "\\");
+ if ($_file_is_dotted && isset($_template) && $_template->parent instanceof Smarty_Internal_Template && ($_template->parent->source->type == 'file' || $_template->parent->source->type == 'extends')) {
+ $name2 = dirname($_template->parent->source->filepath) . DS . $name;
+ } else {
+ $name2 = $name;
+ }
+ $unique_resource_name = $resource->buildUniqueResourceName($smarty, $name2);
// check runtime cache
$_cache_key = 'template|' . $unique_resource_name;
if ($smarty->compile_id) {
- $_cache_key .= '|'.$smarty->compile_id;
+ $_cache_key .= '|' . $smarty->compile_id;
}
if (isset(self::$sources[$_cache_key])) {
return self::$sources[$_cache_key];
@@ -533,14 +566,17 @@ abstract class Smarty_Resource {
// runtime cache
self::$sources[$_cache_key] = $source;
+
return $source;
}
/**
* initialize Config Source Object for given resource
*
- * @param Smarty_Internal_Config $_config config object
- * @return Smarty_Config_Source Source Object
+ * @param Smarty_Internal_Config $_config config object
+ *
+ * @throws SmartyException
+ * @return Smarty_Config_Source Source Object
*/
public static function config(Smarty_Internal_Config $_config)
{
@@ -558,7 +594,7 @@ abstract class Smarty_Resource {
// load resource handler, identify unique resource name
$resource = Smarty_Resource::load($smarty, $type);
- $unique_resource_name = $resource->buildUniqueResourceName($smarty, $name);
+ $unique_resource_name = $resource->buildUniqueResourceName($smarty, $name, true);
// check runtime cache
$_cache_key = 'config|' . $unique_resource_name;
@@ -572,107 +608,119 @@ abstract class Smarty_Resource {
// runtime cache
self::$sources[$_cache_key] = $source;
+
return $source;
}
-
}
/**
* Smarty Resource Data Object
- *
* Meta Data Container for Template Files
*
- * @package Smarty
+ * @package Smarty
* @subpackage TemplateResources
- * @author Rodney Rehm
- *
+ * @author Rodney Rehm
* @property integer $timestamp Source Timestamp
- * @property boolean $exists Source Existance
+ * @property boolean $exists Source Existence
* @property boolean $template Extended Template reference
* @property string $content Source Content
*/
-class Smarty_Template_Source {
-
+class Smarty_Template_Source
+{
/**
* Name of the Class to compile this resource's contents with
+ *
* @var string
*/
public $compiler_class = null;
/**
* Name of the Class to tokenize this resource's contents with
+ *
* @var string
*/
public $template_lexer_class = null;
/**
* Name of the Class to parse this resource's contents with
+ *
* @var string
*/
public $template_parser_class = null;
/**
* Unique Template ID
+ *
* @var string
*/
public $uid = null;
/**
* Template Resource (Smarty_Internal_Template::$template_resource)
+ *
* @var string
*/
public $resource = null;
/**
* Resource Type
+ *
* @var string
*/
public $type = null;
/**
* Resource Name
+ *
* @var string
*/
public $name = null;
/**
* Unique Resource Name
+ *
* @var string
*/
public $unique_resource = null;
/**
* Source Filepath
+ *
* @var string
*/
public $filepath = null;
/**
* Source is bypassing compiler
+ *
* @var boolean
*/
public $uncompiled = null;
/**
* Source must be recompiled on every occasion
+ *
* @var boolean
*/
public $recompiled = null;
/**
* The Components an extended template is made of
+ *
* @var array
*/
public $components = null;
/**
* Resource Handler
+ *
* @var Smarty_Resource
*/
public $handler = null;
/**
* Smarty instance
+ *
* @var Smarty
*/
public $smarty = null;
@@ -680,12 +728,12 @@ class Smarty_Template_Source {
/**
* create Source Object container
*
- * @param Smarty_Resource $handler Resource Handler this source object communicates with
- * @param Smarty $smarty Smarty instance this source object belongs to
- * @param string $resource full template_resource
- * @param string $type type of resource
- * @param string $name resource name
- * @param string $unique_resource unqiue resource name
+ * @param Smarty_Resource $handler Resource Handler this source object communicates with
+ * @param Smarty $smarty Smarty instance this source object belongs to
+ * @param string $resource full template_resource
+ * @param string $type type of resource
+ * @param string $name resource name
+ * @param string $unique_resource unique resource name
*/
public function __construct(Smarty_Resource $handler, Smarty $smarty, $resource, $type, $name, $unique_resource)
{
@@ -707,10 +755,11 @@ class Smarty_Template_Source {
/**
* get a Compiled Object of this source
*
- * @param Smarty_Internal_Template $_template template objet
+ * @param Smarty_Internal_Template|Smarty_Internal_Config $_template template object
+ *
* @return Smarty_Template_Compiled compiled object
*/
- public function getCompiled(Smarty_Internal_Template $_template)
+ public function getCompiled($_template)
{
// check runtime cache
$_cache_key = $this->unique_resource . '#' . $_template->compile_id;
@@ -742,8 +791,9 @@ class Smarty_Template_Source {
/**
* <<magic>> Generic Setter.
*
- * @param string $property_name valid: timestamp, exists, content, template
- * @param mixed $value new value (is not checked)
+ * @param string $property_name valid: timestamp, exists, content, template
+ * @param mixed $value new value (is not checked)
+ *
* @throws SmartyException if $property_name is not valid
*/
public function __set($property_name, $value)
@@ -753,7 +803,7 @@ class Smarty_Template_Source {
case 'timestamp':
case 'exists':
case 'content':
- // required for extends: only
+ // required for extends: only
case 'template':
$this->$property_name = $value;
break;
@@ -766,7 +816,8 @@ class Smarty_Template_Source {
/**
* <<magic>> Generic getter.
*
- * @param string $property_name valid: timestamp, exists, content
+ * @param string $property_name valid: timestamp, exists, content
+ *
* @return mixed
* @throws SmartyException if $property_name is not valid
*/
@@ -776,6 +827,7 @@ class Smarty_Template_Source {
case 'timestamp':
case 'exists':
$this->handler->populateTimestamp($this);
+
return $this->$property_name;
case 'content':
@@ -785,62 +837,65 @@ class Smarty_Template_Source {
throw new SmartyException("source property '$property_name' does not exist.");
}
}
-
}
/**
* Smarty Resource Data Object
- *
* Meta Data Container for Template Files
*
- * @package Smarty
+ * @package Smarty
* @subpackage TemplateResources
- * @author Rodney Rehm
- *
+ * @author Rodney Rehm
* @property string $content compiled content
*/
-class Smarty_Template_Compiled {
-
+class Smarty_Template_Compiled
+{
/**
* Compiled Filepath
+ *
* @var string
*/
public $filepath = null;
/**
* Compiled Timestamp
+ *
* @var integer
*/
public $timestamp = null;
/**
- * Compiled Existance
+ * Compiled Existence
+ *
* @var boolean
*/
public $exists = false;
/**
* Compiled Content Loaded
+ *
* @var boolean
*/
public $loaded = false;
/**
* Template was compiled
+ *
* @var boolean
*/
public $isCompiled = false;
/**
* Source Object
+ *
* @var Smarty_Template_Source
*/
public $source = null;
/**
* Metadata properties
- *
* populated by Smarty_Internal_Template::decodeProperties()
+ *
* @var array
*/
public $_properties = null;
@@ -854,7 +909,4 @@ class Smarty_Template_Compiled {
{
$this->source = $source;
}
-
}
-
-?> \ No newline at end of file
diff --git a/library/Smarty/libs/sysplugins/smarty_resource_custom.php b/library/Smarty/libs/sysplugins/smarty_resource_custom.php
index 9ec1f356b..7c11bd8c7 100644
--- a/library/Smarty/libs/sysplugins/smarty_resource_custom.php
+++ b/library/Smarty/libs/sysplugins/smarty_resource_custom.php
@@ -2,21 +2,20 @@
/**
* Smarty Resource Plugin
*
- * @package Smarty
+ * @package Smarty
* @subpackage TemplateResources
- * @author Rodney Rehm
+ * @author Rodney Rehm
*/
/**
* Smarty Resource Plugin
- *
* Wrapper Implementation for custom resource plugins
*
- * @package Smarty
+ * @package Smarty
* @subpackage TemplateResources
*/
-abstract class Smarty_Resource_Custom extends Smarty_Resource {
-
+abstract class Smarty_Resource_Custom extends Smarty_Resource
+{
/**
* fetch template and its modification time from data source
*
@@ -24,15 +23,15 @@ abstract class Smarty_Resource_Custom extends Smarty_Resource {
* @param string &$source template source
* @param integer &$mtime template modification timestamp (epoch)
*/
- protected abstract function fetch($name, &$source, &$mtime);
+ abstract protected function fetch($name, &$source, &$mtime);
/**
* Fetch template's modification timestamp from data source
- *
* {@internal implementing this method is optional.
* Only implement it if modification times can be accessed faster than loading the complete template source.}}
*
- * @param string $name template name
+ * @param string $name template name
+ *
* @return integer|boolean timestamp (epoch) the template was modified, or false if not found
*/
protected function fetchTimestamp($name)
@@ -46,9 +45,9 @@ abstract class Smarty_Resource_Custom extends Smarty_Resource {
* @param Smarty_Template_Source $source source object
* @param Smarty_Internal_Template $_template template object
*/
- public function populate(Smarty_Template_Source $source, Smarty_Internal_Template $_template=null)
+ public function populate(Smarty_Template_Source $source, Smarty_Internal_Template $_template = null)
{
- $source->filepath = strtolower($source->type . ':' . $source->name);
+ $source->filepath = $source->type . ':' . $source->name;
$source->uid = sha1($source->type . ':' . $source->name);
$mtime = $this->fetchTimestamp($source->name);
@@ -57,8 +56,9 @@ abstract class Smarty_Resource_Custom extends Smarty_Resource {
} else {
$this->fetch($source->name, $content, $timestamp);
$source->timestamp = isset($timestamp) ? $timestamp : false;
- if( isset($content) )
+ if (isset($content)) {
$source->content = $content;
+ }
}
$source->exists = !!$source->timestamp;
}
@@ -66,9 +66,10 @@ abstract class Smarty_Resource_Custom extends Smarty_Resource {
/**
* Load template's source into current template object
*
- * @param Smarty_Template_Source $source source object
- * @return string template source
- * @throws SmartyException if source cannot be loaded
+ * @param Smarty_Template_Source $source source object
+ *
+ * @return string template source
+ * @throws SmartyException if source cannot be loaded
*/
public function getContent(Smarty_Template_Source $source)
{
@@ -83,14 +84,12 @@ abstract class Smarty_Resource_Custom extends Smarty_Resource {
/**
* Determine basename for compiled filename
*
- * @param Smarty_Template_Source $source source object
- * @return string resource's basename
+ * @param Smarty_Template_Source $source source object
+ *
+ * @return string resource's basename
*/
protected function getBasename(Smarty_Template_Source $source)
{
return basename($source->name);
}
-
}
-
-?> \ No newline at end of file
diff --git a/library/Smarty/libs/sysplugins/smarty_resource_recompiled.php b/library/Smarty/libs/sysplugins/smarty_resource_recompiled.php
index ab55b93a6..66b36e17a 100644
--- a/library/Smarty/libs/sysplugins/smarty_resource_recompiled.php
+++ b/library/Smarty/libs/sysplugins/smarty_resource_recompiled.php
@@ -2,26 +2,26 @@
/**
* Smarty Resource Plugin
*
- * @package Smarty
+ * @package Smarty
* @subpackage TemplateResources
- * @author Rodney Rehm
+ * @author Rodney Rehm
*/
/**
* Smarty Resource Plugin
- *
* Base implementation for resource plugins that don't compile cache
*
- * @package Smarty
+ * @package Smarty
* @subpackage TemplateResources
*/
-abstract class Smarty_Resource_Recompiled extends Smarty_Resource {
-
+abstract class Smarty_Resource_Recompiled extends Smarty_Resource
+{
/**
* populate Compiled Object with compiled filepath
*
- * @param Smarty_Template_Compiled $compiled compiled object
- * @param Smarty_Internal_Template $_template template object
+ * @param Smarty_Template_Compiled $compiled compiled object
+ * @param Smarty_Internal_Template $_template template object
+ *
* @return void
*/
public function populateCompiledFilepath(Smarty_Template_Compiled $compiled, Smarty_Internal_Template $_template)
@@ -30,7 +30,4 @@ abstract class Smarty_Resource_Recompiled extends Smarty_Resource {
$compiled->timestamp = false;
$compiled->exists = false;
}
-
}
-
-?> \ No newline at end of file
diff --git a/library/Smarty/libs/sysplugins/smarty_resource_uncompiled.php b/library/Smarty/libs/sysplugins/smarty_resource_uncompiled.php
index ea8023507..4ee5d7908 100644
--- a/library/Smarty/libs/sysplugins/smarty_resource_uncompiled.php
+++ b/library/Smarty/libs/sysplugins/smarty_resource_uncompiled.php
@@ -2,29 +2,29 @@
/**
* Smarty Resource Plugin
*
- * @package Smarty
+ * @package Smarty
* @subpackage TemplateResources
- * @author Rodney Rehm
+ * @author Rodney Rehm
*/
/**
* Smarty Resource Plugin
- *
* Base implementation for resource plugins that don't use the compiler
*
- * @package Smarty
+ * @package Smarty
* @subpackage TemplateResources
*/
-abstract class Smarty_Resource_Uncompiled extends Smarty_Resource {
-
+abstract class Smarty_Resource_Uncompiled extends Smarty_Resource
+{
/**
* Render and output the template (without using the compiler)
*
- * @param Smarty_Template_Source $source source object
- * @param Smarty_Internal_Template $_template template object
- * @throws SmartyException on failure
+ * @param Smarty_Template_Source $source source object
+ * @param Smarty_Internal_Template $_template template object
+ *
+ * @throws SmartyException on failure
*/
- public abstract function renderUncompiled(Smarty_Template_Source $source, Smarty_Internal_Template $_template);
+ abstract public function renderUncompiled(Smarty_Template_Source $source, Smarty_Internal_Template $_template);
/**
* populate compiled object with compiled filepath
@@ -38,7 +38,4 @@ abstract class Smarty_Resource_Uncompiled extends Smarty_Resource {
$compiled->timestamp = false;
$compiled->exists = false;
}
-
}
-
-?> \ No newline at end of file
diff --git a/library/Smarty/libs/sysplugins/smarty_security.php b/library/Smarty/libs/sysplugins/smarty_security.php
index f8b31d963..9f7183bd0 100644
--- a/library/Smarty/libs/sysplugins/smarty_security.php
+++ b/library/Smarty/libs/sysplugins/smarty_security.php
@@ -2,25 +2,25 @@
/**
* Smarty plugin
*
- * @package Smarty
+ * @package Smarty
* @subpackage Security
- * @author Uwe Tews
+ * @author Uwe Tews
*/
-
+
/*
* FIXME: Smarty_Security API
* - getter and setter instead of public properties would allow cultivating an internal cache properly
* - current implementation of isTrustedResourceDir() assumes that Smarty::$template_dir and Smarty::$config_dir are immutable
* the cache is killed every time either of the variables change. That means that two distinct Smarty objects with differing
- * $template_dir or $config_dir should NOT share the same Smarty_Security instance,
- * as this would lead to (severe) performance penalty! how should this be handled?
+ * $template_dir or $config_dir should NOT share the same Smarty_Security instance,
+ * as this would lead to (severe) performance penalty! how should this be handled?
*/
/**
* This class does contain the security settings
*/
-class Smarty_Security {
-
+class Smarty_Security
+{
/**
* This determines how Smarty handles "<?php ... ?>" tags in templates.
* possible values:
@@ -56,17 +56,17 @@ class Smarty_Security {
public $trusted_uri = array();
/**
* This is an array of trusted static classes.
- *
* If empty access to all static classes is allowed.
* If set to 'none' none is allowed.
+ *
* @var array
*/
public $static_classes = array();
/**
* This is an array of trusted PHP functions.
- *
* If empty all functions are allowed.
* To disable all PHP functions set $php_functions = null.
+ *
* @var array
*/
public $php_functions = array(
@@ -77,10 +77,10 @@ class Smarty_Security {
'nl2br',
);
/**
- * This is an array of trusted PHP modifers.
- *
+ * This is an array of trusted PHP modifiers.
* If empty all modifiers are allowed.
- * To disable all modifier set $modifiers = null.
+ * To disable all modifier set $php_modifiers = null.
+ *
* @var array
*/
public $php_modifiers = array(
@@ -89,83 +89,90 @@ class Smarty_Security {
);
/**
* This is an array of allowed tags.
- *
* If empty no restriction by allowed_tags.
+ *
* @var array
*/
public $allowed_tags = array();
/**
* This is an array of disabled tags.
- *
* If empty no restriction by disabled_tags.
+ *
* @var array
*/
public $disabled_tags = array();
/**
* This is an array of allowed modifier plugins.
- *
* If empty no restriction by allowed_modifiers.
+ *
* @var array
*/
public $allowed_modifiers = array();
/**
* This is an array of disabled modifier plugins.
- *
* If empty no restriction by disabled_modifiers.
+ *
* @var array
*/
public $disabled_modifiers = array();
/**
* This is an array of trusted streams.
- *
* If empty all streams are allowed.
* To disable all streams set $streams = null.
+ *
* @var array
*/
public $streams = array('file');
/**
* + flag if constants can be accessed from template
+ *
* @var boolean
*/
public $allow_constants = true;
/**
* + flag if super globals can be accessed from template
+ *
* @var boolean
*/
public $allow_super_globals = true;
/**
- * Cache for $resource_dir lookups
+ * Cache for $resource_dir lookup
+ *
* @var array
*/
protected $_resource_dir = null;
/**
- * Cache for $template_dir lookups
+ * Cache for $template_dir lookup
+ *
* @var array
*/
protected $_template_dir = null;
/**
- * Cache for $config_dir lookups
+ * Cache for $config_dir lookup
+ *
* @var array
*/
protected $_config_dir = null;
/**
- * Cache for $secure_dir lookups
+ * Cache for $secure_dir lookup
+ *
* @var array
*/
protected $_secure_dir = null;
/**
- * Cache for $php_resource_dir lookups
+ * Cache for $php_resource_dir lookup
+ *
* @var array
*/
protected $_php_resource_dir = null;
/**
- * Cache for $trusted_dir lookups
+ * Cache for $trusted_dir lookup
+ *
* @var array
*/
protected $_trusted_dir = null;
-
-
+
/**
* @param Smarty $smarty
*/
@@ -173,13 +180,14 @@ class Smarty_Security {
{
$this->smarty = $smarty;
}
-
+
/**
* Check if PHP function is trusted.
*
- * @param string $function_name
- * @param object $compiler compiler object
- * @return boolean true if function is trusted
+ * @param string $function_name
+ * @param object $compiler compiler object
+ *
+ * @return boolean true if function is trusted
* @throws SmartyCompilerException if php function is not trusted
*/
public function isTrustedPhpFunction($function_name, $compiler)
@@ -189,15 +197,17 @@ class Smarty_Security {
}
$compiler->trigger_template_error("PHP function '{$function_name}' not allowed by security setting");
+
return false; // should not, but who knows what happens to the compiler in the future?
}
/**
* Check if static class is trusted.
*
- * @param string $class_name
- * @param object $compiler compiler object
- * @return boolean true if class is trusted
+ * @param string $class_name
+ * @param object $compiler compiler object
+ *
+ * @return boolean true if class is trusted
* @throws SmartyCompilerException if static class is not trusted
*/
public function isTrustedStaticClass($class_name, $compiler)
@@ -207,15 +217,17 @@ class Smarty_Security {
}
$compiler->trigger_template_error("access to static class '{$class_name}' not allowed by security setting");
+
return false; // should not, but who knows what happens to the compiler in the future?
}
/**
* Check if PHP modifier is trusted.
*
- * @param string $modifier_name
- * @param object $compiler compiler object
- * @return boolean true if modifier is trusted
+ * @param string $modifier_name
+ * @param object $compiler compiler object
+ *
+ * @return boolean true if modifier is trusted
* @throws SmartyCompilerException if modifier is not trusted
*/
public function isTrustedPhpModifier($modifier_name, $compiler)
@@ -225,22 +237,25 @@ class Smarty_Security {
}
$compiler->trigger_template_error("modifier '{$modifier_name}' not allowed by security setting");
+
return false; // should not, but who knows what happens to the compiler in the future?
}
/**
* Check if tag is trusted.
*
- * @param string $tag_name
- * @param object $compiler compiler object
- * @return boolean true if tag is trusted
+ * @param string $tag_name
+ * @param object $compiler compiler object
+ *
+ * @return boolean true if tag is trusted
* @throws SmartyCompilerException if modifier is not trusted
*/
public function isTrustedTag($tag_name, $compiler)
{
// check for internal always required tags
if (in_array($tag_name, array('assign', 'call', 'private_filter', 'private_block_plugin', 'private_function_plugin', 'private_object_block_function',
- 'private_object_function', 'private_registered_function', 'private_registered_block', 'private_special_variable', 'private_print_expression', 'private_modifier'))) {
+ 'private_object_function', 'private_registered_function', 'private_registered_block', 'private_special_variable', 'private_print_expression', 'private_modifier'))
+ ) {
return true;
}
// check security settings
@@ -250,20 +265,22 @@ class Smarty_Security {
} else {
$compiler->trigger_template_error("tag '{$tag_name}' disabled by security setting", $compiler->lex->taglineno);
}
- } else if (in_array($tag_name, $this->allowed_tags) && !in_array($tag_name, $this->disabled_tags)) {
+ } elseif (in_array($tag_name, $this->allowed_tags) && !in_array($tag_name, $this->disabled_tags)) {
return true;
} else {
$compiler->trigger_template_error("tag '{$tag_name}' not allowed by security setting", $compiler->lex->taglineno);
}
+
return false; // should not, but who knows what happens to the compiler in the future?
}
/**
* Check if modifier plugin is trusted.
*
- * @param string $modifier_name
- * @param object $compiler compiler object
- * @return boolean true if tag is trusted
+ * @param string $modifier_name
+ * @param object $compiler compiler object
+ *
+ * @return boolean true if tag is trusted
* @throws SmartyCompilerException if modifier is not trusted
*/
public function isTrustedModifier($modifier_name, $compiler)
@@ -279,19 +296,21 @@ class Smarty_Security {
} else {
$compiler->trigger_template_error("modifier '{$modifier_name}' disabled by security setting", $compiler->lex->taglineno);
}
- } else if (in_array($modifier_name, $this->allowed_modifiers) && !in_array($modifier_name, $this->disabled_modifiers)) {
+ } elseif (in_array($modifier_name, $this->allowed_modifiers) && !in_array($modifier_name, $this->disabled_modifiers)) {
return true;
} else {
$compiler->trigger_template_error("modifier '{$modifier_name}' not allowed by security setting", $compiler->lex->taglineno);
}
+
return false; // should not, but who knows what happens to the compiler in the future?
}
/**
* Check if stream is trusted.
*
- * @param string $stream_name
- * @return boolean true if stream is trusted
+ * @param string $stream_name
+ *
+ * @return boolean true if stream is trusted
* @throws SmartyException if stream is not trusted
*/
public function isTrustedStream($stream_name)
@@ -306,8 +325,9 @@ class Smarty_Security {
/**
* Check if directory of file resource is trusted.
*
- * @param string $filepath
- * @return boolean true if directory is trusted
+ * @param string $filepath
+ *
+ * @return boolean true if directory is trusted
* @throws SmartyException if directory is not trusted
*/
public function isTrustedResourceDir($filepath)
@@ -321,8 +341,8 @@ class Smarty_Security {
// check if index is outdated
if ((!$this->_template_dir || $this->_template_dir !== $_template_dir)
- || (!$this->_config_dir || $this->_config_dir !== $_config_dir)
- || (!empty($this->secure_dir) && (!$this->_secure_dir || $this->_secure_dir !== $this->secure_dir))
+ || (!$this->_config_dir || $this->_config_dir !== $_config_dir)
+ || (!empty($this->secure_dir) && (!$this->_secure_dir || $this->_secure_dir !== $this->secure_dir))
) {
$this->_resource_dir = array();
$_template = true;
@@ -365,8 +385,9 @@ class Smarty_Security {
$_directory[$directory] = true;
// test if the directory is trusted
if (isset($this->_resource_dir[$directory])) {
- // merge sub directories of current $directory into _resource_dir to speed up subsequent lookups
+ // merge sub directories of current $directory into _resource_dir to speed up subsequent lookup
$this->_resource_dir = array_merge($this->_resource_dir, $_directory);
+
return true;
}
// abort if we've reached root
@@ -380,15 +401,16 @@ class Smarty_Security {
// give up
throw new SmartyException("directory '{$_filepath}' not allowed by security setting");
}
-
+
/**
* Check if URI (e.g. {fetch} or {html_image}) is trusted
- *
* To simplify things, isTrustedUri() resolves all input to "{$PROTOCOL}://{$HOSTNAME}".
* So "http://username:password@hello.world.example.org:8080/some-path?some=query-string"
* is reduced to "http://hello.world.example.org" prior to applying the patters from {@link $trusted_uri}.
- * @param string $uri
- * @return boolean true if URI is trusted
+ *
+ * @param string $uri
+ *
+ * @return boolean true if URI is trusted
* @throws SmartyException if URI is not trusted
* @uses $trusted_uri for list of patterns to match against $uri
*/
@@ -403,15 +425,16 @@ class Smarty_Security {
}
}
}
-
+
throw new SmartyException("URI '{$uri}' not allowed by security setting");
}
-
+
/**
* Check if directory of file resource is trusted.
*
- * @param string $filepath
- * @return boolean true if directory is trusted
+ * @param string $filepath
+ *
+ * @return boolean true if directory is trusted
* @throws SmartyException if PHP directory is not trusted
*/
public function isTrustedPHPDir($filepath)
@@ -439,8 +462,9 @@ class Smarty_Security {
$_directory[] = $directory;
// test if the directory is trusted
if (isset($this->_php_resource_dir[$directory])) {
- // merge sub directories of current $directory into _resource_dir to speed up subsequent lookups
+ // merge sub directories of current $directory into _resource_dir to speed up subsequent lookup
$this->_php_resource_dir = array_merge($this->_php_resource_dir, $_directory);
+
return true;
}
// abort if we've reached root
@@ -453,7 +477,4 @@ class Smarty_Security {
throw new SmartyException("directory '{$_filepath}' not allowed by security setting");
}
-
}
-
-?> \ No newline at end of file
diff --git a/library/blueimp_upload/.gitignore b/library/blueimp_upload/.gitignore
new file mode 100644
index 000000000..29a41a8c4
--- /dev/null
+++ b/library/blueimp_upload/.gitignore
@@ -0,0 +1,3 @@
+.DS_Store
+*.pyc
+node_modules
diff --git a/library/blueimp_upload/.jshintrc b/library/blueimp_upload/.jshintrc
new file mode 100644
index 000000000..4ad82e664
--- /dev/null
+++ b/library/blueimp_upload/.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/blueimp_upload/CONTRIBUTING.md b/library/blueimp_upload/CONTRIBUTING.md
new file mode 100644
index 000000000..b8708f8b6
--- /dev/null
+++ b/library/blueimp_upload/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](https://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 [JSHint](http://www.jshint.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/blueimp_upload/Gruntfile.js b/library/blueimp_upload/Gruntfile.js
new file mode 100644
index 000000000..dcdb5d57a
--- /dev/null
+++ b/library/blueimp_upload/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/blueimp_upload/README.md b/library/blueimp_upload/README.md
new file mode 100644
index 000000000..3aa33de42
--- /dev/null
+++ b/library/blueimp_upload/README.md
@@ -0,0 +1,123 @@
+# jQuery File Upload Plugin
+
+## Demo
+[Demo File Upload](https://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](https://jquery.com/) v. 1.6+
+* [jQuery UI widget factory](https://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.4+
+* [JavaScript Load Image library](https://github.com/blueimp/JavaScript-Load-Image) v. 1.13.0+
+* [JavaScript Canvas to Blob polyfill](https://github.com/blueimp/JavaScript-Canvas-to-Blob) v. 2.1.1+
+* [blueimp Gallery](https://github.com/blueimp/Gallery) v. 2.15.1+
+* [Bootstrap CSS framework](http://getbootstrap.com/) v. 3.2.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](https://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/blueimp_upload/angularjs.html b/library/blueimp_upload/angularjs.html
new file mode 100644
index 000000000..2a3ca2007
--- /dev/null
+++ b/library/blueimp_upload/angularjs.html
@@ -0,0 +1,211 @@
+<!DOCTYPE HTML>
+<!--
+/*
+ * jQuery File Upload Plugin AngularJS Demo 2.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
+ */
+-->
+<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.2.0/css/bootstrap.min.css">
+<!-- Generic page styles -->
+<link rel="stylesheet" href="css/style.css">
+<!-- blueimp Gallery styles -->
+<link rel="stylesheet" href="//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="https://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 the <a href="http://getbootstrap.com/">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.11.1/jquery.min.js"></script>
+<script src="//ajax.googleapis.com/ajax/libs/angularjs/1.2.23/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="//blueimp.github.io/JavaScript-Load-Image/js/load-image.all.min.js"></script>
+<!-- The Canvas to Blob plugin is included for image resizing functionality -->
+<script src="//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.2.0/js/bootstrap.min.js"></script>
+<!-- blueimp Gallery script -->
+<script src="//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/blueimp_upload/basic-plus.html b/library/blueimp_upload/basic-plus.html
new file mode 100644
index 000000000..59b73b60c
--- /dev/null
+++ b/library/blueimp_upload/basic-plus.html
@@ -0,0 +1,226 @@
+<!DOCTYPE HTML>
+<!--
+/*
+ * jQuery File Upload Plugin Basic Plus Demo 1.4.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 - 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.2.0/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 the <a href="http://getbootstrap.com/">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.11.1/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="//blueimp.github.io/JavaScript-Load-Image/js/load-image.all.min.js"></script>
+<!-- The Canvas to Blob plugin is included for image resizing functionality -->
+<script src="//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.2.0/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) {
+ 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/blueimp_upload/basic.html b/library/blueimp_upload/basic.html
new file mode 100644
index 000000000..f248f4d80
--- /dev/null
+++ b/library/blueimp_upload/basic.html
@@ -0,0 +1,136 @@
+<!DOCTYPE HTML>
+<!--
+/*
+ * jQuery File Upload Plugin Basic Demo 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
+ */
+-->
+<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.2.0/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.11.1/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.2.0/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/blueimp_upload/blueimp-file-upload.jquery.json b/library/blueimp_upload/blueimp-file-upload.jquery.json
new file mode 100644
index 000000000..d6d8c911c
--- /dev/null
+++ b/library/blueimp_upload/blueimp-file-upload.jquery.json
@@ -0,0 +1,50 @@
+{
+ "name": "blueimp-file-upload",
+ "version": "9.8.0",
+ "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": "https://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/blueimp_upload/bower.json b/library/blueimp_upload/bower.json
new file mode 100644
index 000000000..c0d3d3259
--- /dev/null
+++ b/library/blueimp_upload/bower.json
@@ -0,0 +1,85 @@
+{
+ "name": "blueimp-file-upload",
+ "version": "9.8.0",
+ "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.4",
+ "blueimp-load-image": ">=1.13.0",
+ "blueimp-canvas-to-blob": ">=2.1.1"
+ },
+ "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/blueimp_upload/cors/postmessage.html b/library/blueimp_upload/cors/postmessage.html
new file mode 100644
index 000000000..3d1448f08
--- /dev/null
+++ b/library/blueimp_upload/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/blueimp_upload/cors/result.html b/library/blueimp_upload/cors/result.html
new file mode 100644
index 000000000..225131495
--- /dev/null
+++ b/library/blueimp_upload/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/blueimp_upload/css/demo-ie8.css b/library/blueimp_upload/css/demo-ie8.css
new file mode 100644
index 000000000..262493d08
--- /dev/null
+++ b/library/blueimp_upload/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/blueimp_upload/css/demo.css b/library/blueimp_upload/css/demo.css
new file mode 100644
index 000000000..2b4d43934
--- /dev/null
+++ b/library/blueimp_upload/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/blueimp_upload/css/jquery.fileupload-noscript.css b/library/blueimp_upload/css/jquery.fileupload-noscript.css
new file mode 100644
index 000000000..64d728fc3
--- /dev/null
+++ b/library/blueimp_upload/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/blueimp_upload/css/jquery.fileupload-ui-noscript.css b/library/blueimp_upload/css/jquery.fileupload-ui-noscript.css
new file mode 100644
index 000000000..87f110cdb
--- /dev/null
+++ b/library/blueimp_upload/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/blueimp_upload/css/jquery.fileupload-ui.css b/library/blueimp_upload/css/jquery.fileupload-ui.css
new file mode 100644
index 000000000..76fb376de
--- /dev/null
+++ b/library/blueimp_upload/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/blueimp_upload/css/jquery.fileupload.css b/library/blueimp_upload/css/jquery.fileupload.css
new file mode 100644
index 000000000..fb6044d34
--- /dev/null
+++ b/library/blueimp_upload/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/blueimp_upload/css/style.css b/library/blueimp_upload/css/style.css
new file mode 100644
index 000000000..b2c60a6f1
--- /dev/null
+++ b/library/blueimp_upload/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/blueimp_upload/img/loading.gif b/library/blueimp_upload/img/loading.gif
new file mode 100644
index 000000000..90f28cbdb
--- /dev/null
+++ b/library/blueimp_upload/img/loading.gif
Binary files differ
diff --git a/library/blueimp_upload/img/progressbar.gif b/library/blueimp_upload/img/progressbar.gif
new file mode 100644
index 000000000..fbcce6bc9
--- /dev/null
+++ b/library/blueimp_upload/img/progressbar.gif
Binary files differ
diff --git a/library/blueimp_upload/index.html b/library/blueimp_upload/index.html
new file mode 100644
index 000000000..f92f04aab
--- /dev/null
+++ b/library/blueimp_upload/index.html
@@ -0,0 +1,255 @@
+<!DOCTYPE HTML>
+<!--
+/*
+ * jQuery File Upload Plugin Demo 9.1.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 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.2.0/css/bootstrap.min.css">
+<!-- Generic page styles -->
+<link rel="stylesheet" href="css/style.css">
+<!-- blueimp Gallery styles -->
+<link rel="stylesheet" href="//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="https://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 the <a href="http://getbootstrap.com/">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.11.1/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="//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="//blueimp.github.io/JavaScript-Load-Image/js/load-image.all.min.js"></script>
+<!-- The Canvas to Blob plugin is included for image resizing functionality -->
+<script src="//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.2.0/js/bootstrap.min.js"></script>
+<!-- blueimp Gallery script -->
+<script src="//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/blueimp_upload/jquery-ui.html b/library/blueimp_upload/jquery-ui.html
new file mode 100644
index 000000000..d61ee5233
--- /dev/null
+++ b/library/blueimp_upload/jquery-ui.html
@@ -0,0 +1,250 @@
+<!DOCTYPE HTML>
+<!--
+/*
+ * jQuery File Upload Plugin jQuery UI Demo 9.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
+ */
+-->
+<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="//ajax.googleapis.com/ajax/libs/jqueryui/1.11.1/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="//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="https://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="https://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" disabled>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.11.1/jquery.min.js"></script>
+<script src="//ajax.googleapis.com/ajax/libs/jqueryui/1.11.1/jquery-ui.min.js"></script>
+<!-- The Templates plugin is included to render the upload/download listings -->
+<script src="//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="//blueimp.github.io/JavaScript-Load-Image/js/load-image.all.min.js"></script>
+<!-- The Canvas to Blob plugin is included for image resizing functionality -->
+<script src="//blueimp.github.io/JavaScript-Canvas-to-Blob/js/canvas-to-blob.min.js"></script>
+<!-- blueimp Gallery script -->
+<script src="//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/blueimp_upload/js/app.js b/library/blueimp_upload/js/app.js
new file mode 100644
index 000000000..47b4f923b
--- /dev/null
+++ b/library/blueimp_upload/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/blueimp_upload/js/cors/jquery.postmessage-transport.js b/library/blueimp_upload/js/cors/jquery.postmessage-transport.js
new file mode 100644
index 000000000..2b4851e67
--- /dev/null
+++ b/library/blueimp_upload/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/blueimp_upload/js/cors/jquery.xdr-transport.js b/library/blueimp_upload/js/cors/jquery.xdr-transport.js
new file mode 100644
index 000000000..0044cc2d5
--- /dev/null
+++ b/library/blueimp_upload/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/blueimp_upload/js/jquery.fileupload-angular.js b/library/blueimp_upload/js/jquery.fileupload-angular.js
new file mode 100644
index 000000000..e4ef3926b
--- /dev/null
+++ b/library/blueimp_upload/js/jquery.fileupload-angular.js
@@ -0,0 +1,429 @@
+/*
+ * jQuery File Upload AngularJS Plugin 2.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
+ */
+
+/* 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) {
+ if (arguments.length === 1) {
+ return $element.fileupload('option', option);
+ }
+ $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: $scope},
+ fileUpload.defaults
+ )).on('fileuploadadd', function (e, data) {
+ data.scope = $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/blueimp_upload/js/jquery.fileupload-audio.js b/library/blueimp_upload/js/jquery.fileupload-audio.js
new file mode 100644
index 000000000..575800e82
--- /dev/null
+++ b/library/blueimp_upload/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/blueimp_upload/js/jquery.fileupload-image.js b/library/blueimp_upload/js/jquery.fileupload-image.js
new file mode 100644
index 000000000..5bb7026ae
--- /dev/null
+++ b/library/blueimp_upload/js/jquery.fileupload-image.js
@@ -0,0 +1,315 @@
+/*
+ * jQuery File Upload Image Preview & Resize Plugin 1.7.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
+ */
+
+/* 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|svg\+xml)$/,
+ // 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();
+ }
+ }
+ // Prevent orienting the same image twice:
+ if (data.orientation) {
+ delete options.orientation;
+ } else {
+ data.orientation = options.orientation;
+ }
+ }
+ 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/blueimp_upload/js/jquery.fileupload-jquery-ui.js b/library/blueimp_upload/js/jquery.fileupload-jquery-ui.js
new file mode 100755
index 000000000..af0a00b1e
--- /dev/null
+++ b/library/blueimp_upload/js/jquery.fileupload-jquery-ui.js
@@ -0,0 +1,152 @@
+/*
+ * jQuery File Upload jQuery UI Plugin 8.7.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 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: {
+ processdone: function (e, data) {
+ data.context.find('.start').button('enable');
+ },
+ 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;
+ },
+
+ _startHandler: function (e) {
+ $(e.currentTarget).button('disable');
+ this._super(e);
+ },
+
+ _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/blueimp_upload/js/jquery.fileupload-process.js b/library/blueimp_upload/js/jquery.fileupload-process.js
new file mode 100644
index 000000000..8a6b929a6
--- /dev/null
+++ b/library/blueimp_upload/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/blueimp_upload/js/jquery.fileupload-ui.js b/library/blueimp_upload/js/jquery.fileupload-ui.js
new file mode 100644
index 000000000..62cf9aa38
--- /dev/null
+++ b/library/blueimp_upload/js/jquery.fileupload-ui.js
@@ -0,0 +1,704 @@
+/*
+ * jQuery File Upload User Interface Plugin 9.6.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 */
+
+(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',
+
+ // Error and info messages:
+ messages: {
+ unknownError: 'Unknown error'
+ },
+
+ // 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);
+ 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 ||
+ data.i18n('unknownError');
+ 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/blueimp_upload/js/jquery.fileupload-validate.js b/library/blueimp_upload/js/jquery.fileupload-validate.js
new file mode 100644
index 000000000..f93a18fa2
--- /dev/null
+++ b/library/blueimp_upload/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/blueimp_upload/js/jquery.fileupload-video.js b/library/blueimp_upload/js/jquery.fileupload-video.js
new file mode 100644
index 000000000..3764b27a2
--- /dev/null
+++ b/library/blueimp_upload/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/blueimp_upload/js/jquery.fileupload.js b/library/blueimp_upload/js/jquery.fileupload.js
new file mode 100644
index 000000000..a4cfdc0ac
--- /dev/null
+++ b/library/blueimp_upload/js/jquery.fileupload.js
@@ -0,0 +1,1457 @@
+/*
+ * jQuery File Upload Plugin 5.42.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);
+
+ // Helper function to create drag handlers for dragover/dragenter/dragleave:
+ function getDragHandler(type) {
+ var isDragOver = type === 'dragover';
+ return function (e) {
+ e.dataTransfer = e.originalEvent && e.originalEvent.dataTransfer;
+ var dataTransfer = e.dataTransfer;
+ if (dataTransfer && $.inArray('Files', dataTransfer.types) !== -1 &&
+ this._trigger(
+ type,
+ $.Event(type, {delegatedEvent: e})
+ ) !== false) {
+ e.preventDefault();
+ if (isDragOver) {
+ dataTransfer.dropEffect = 'copy';
+ }
+ }
+ };
+ }
+
+ // 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 undefined.
+ // Set to a DOM node or jQuery object to enable file pasting:
+ pasteZone: undefined,
+ // 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 (data) {
+ var input = data.fileInput,
+ inputClone = input.clone(true);
+ // Add a reference for the new cloned file input to the data argument:
+ data.fileInputClone = inputClone;
+ $('<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]);
+ },
+ successHandler = function (entries) {
+ that._handleFileTreeEntries(
+ entries,
+ path + entry.name + '/'
+ ).done(function (files) {
+ dfd.resolve(files);
+ }).fail(errorHandler);
+ },
+ readEntries = function () {
+ dirReader.readEntries(function (results) {
+ if (!results.length) {
+ successHandler(entries);
+ } else {
+ entries = entries.concat(results);
+ readEntries();
+ }
+ }, errorHandler);
+ },
+ dirReader, entries = [];
+ 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();
+ readEntries();
+ } 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);
+ }
+ 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: getDragHandler('dragover'),
+
+ _onDragEnter: getDragHandler('dragenter'),
+
+ _onDragLeave: getDragHandler('dragleave'),
+
+ _initEventHandlers: function () {
+ if (this._isXHRUpload(this.options)) {
+ this._on(this.options.dropZone, {
+ dragover: this._onDragOver,
+ drop: this._onDrop,
+ // event.preventDefault() on dragenter is required for IE10+:
+ dragenter: this._onDragEnter,
+ // dragleave is not required, but added for completeness:
+ dragleave: this._onDragLeave
+ });
+ 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, 'dragenter dragleave 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,
+ clone = $(this.element[0].cloneNode(false));
+ // Initialize options set via HTML5 data-attributes:
+ $.each(
+ clone.data(),
+ function (key, value) {
+ var dataAttributeName = 'data-' +
+ // Convert camelCase to hyphen-ated key:
+ key.replace(/([a-z])([A-Z])/g, '$1-$2').toLowerCase();
+ if (clone.attr(dataAttributeName)) {
+ 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);
+ jqXHR.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/blueimp_upload/js/jquery.iframe-transport.js b/library/blueimp_upload/js/jquery.iframe-transport.js
new file mode 100644
index 000000000..8d64b591b
--- /dev/null
+++ b/library/blueimp_upload/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/blueimp_upload/js/main.js b/library/blueimp_upload/js/main.js
new file mode 100644
index 000000000..8f57967a3
--- /dev/null
+++ b/library/blueimp_upload/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/blueimp_upload/js/vendor/jquery.ui.widget.js b/library/blueimp_upload/js/vendor/jquery.ui.widget.js
new file mode 100644
index 000000000..7899e6bb3
--- /dev/null
+++ b/library/blueimp_upload/js/vendor/jquery.ui.widget.js
@@ -0,0 +1,558 @@
+/*! jQuery UI - v1.11.1 - 2014-09-17
+* http://jqueryui.com
+* Includes: widget.js
+* Copyright 2014 jQuery Foundation and other contributors; Licensed MIT */
+
+(function( factory ) {
+ if ( typeof define === "function" && define.amd ) {
+
+ // AMD. Register as an anonymous module.
+ define([ "jquery" ], factory );
+ } else {
+
+ // Browser globals
+ factory( jQuery );
+ }
+}(function( $ ) {
+/*!
+ * jQuery UI Widget 1.11.1
+ * http://jqueryui.com
+ *
+ * Copyright 2014 jQuery Foundation and other contributors
+ * Released under the MIT license.
+ * http://jquery.org/license
+ *
+ * http://api.jqueryui.com/jQuery.widget/
+ */
+
+
+var widget_uuid = 0,
+ widget_slice = Array.prototype.slice;
+
+$.cleanData = (function( orig ) {
+ return function( elems ) {
+ var events, elem, i;
+ for ( i = 0; (elem = elems[i]) != null; i++ ) {
+ try {
+
+ // Only trigger remove when necessary to save time
+ events = $._data( elem, "events" );
+ if ( events && events.remove ) {
+ $( elem ).triggerHandler( "remove" );
+ }
+
+ // http://bugs.jquery.com/ticket/8235
+ } catch( e ) {}
+ }
+ orig( elems );
+ };
+})( $.cleanData );
+
+$.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) : 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 );
+
+ return constructor;
+};
+
+$.widget.extend = function( target ) {
+ var input = widget_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 = widget_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 ( options === "instance" ) {
+ returnValue = instance;
+ return false;
+ }
+ 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 || {} );
+ if ( instance._init ) {
+ instance._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 = widget_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 )
+ .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 ( arguments.length === 1 ) {
+ return curOption[ key ] === undefined ? null : curOption[ key ];
+ }
+ curOption[ key ] = value;
+ } else {
+ if ( arguments.length === 1 ) {
+ 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", !!value );
+
+ // If the widget is becoming disabled, then nothing is interactive
+ if ( value ) {
+ this.hoverable.removeClass( "ui-state-hover" );
+ this.focusable.removeClass( "ui-state-focus" );
+ }
+ }
+
+ return this;
+ },
+
+ enable: function() {
+ return this._setOptions({ disabled: false });
+ },
+ disable: function() {
+ return this._setOptions({ 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 {
+ 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();
+ });
+ }
+ };
+});
+
+var widget = $.widget;
+
+
+
+}));
diff --git a/library/blueimp_upload/package.json b/library/blueimp_upload/package.json
new file mode 100644
index 000000000..880574aa7
--- /dev/null
+++ b/library/blueimp_upload/package.json
@@ -0,0 +1,54 @@
+{
+ "name": "blueimp-file-upload",
+ "version": "9.8.0",
+ "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.5",
+ "grunt-bump-build-git": "~1.1.1",
+ "grunt-contrib-jshint": "~0.10.0"
+ }
+}
diff --git a/library/blueimp_upload/server/gae-go/app.yaml b/library/blueimp_upload/server/gae-go/app.yaml
new file mode 100644
index 000000000..2d09daa56
--- /dev/null
+++ b/library/blueimp_upload/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/blueimp_upload/server/gae-go/app/main.go b/library/blueimp_upload/server/gae-go/app/main.go
new file mode 100644
index 000000000..03af0b1d2
--- /dev/null
+++ b/library/blueimp_upload/server/gae-go/app/main.go
@@ -0,0 +1,296 @@
+/*
+ * jQuery File Upload Plugin GAE Go Example 3.2.0
+ * 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 = "https://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/blueimp_upload/server/gae-go/static/robots.txt b/library/blueimp_upload/server/gae-go/static/robots.txt
new file mode 100644
index 000000000..eb0536286
--- /dev/null
+++ b/library/blueimp_upload/server/gae-go/static/robots.txt
@@ -0,0 +1,2 @@
+User-agent: *
+Disallow:
diff --git a/library/blueimp_upload/server/gae-python/app.yaml b/library/blueimp_upload/server/gae-python/app.yaml
new file mode 100644
index 000000000..5fe123f59
--- /dev/null
+++ b/library/blueimp_upload/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/blueimp_upload/server/gae-python/main.py b/library/blueimp_upload/server/gae-python/main.py
new file mode 100644
index 000000000..6276be6a0
--- /dev/null
+++ b/library/blueimp_upload/server/gae-python/main.py
@@ -0,0 +1,170 @@
+# -*- coding: utf-8 -*-
+#
+# jQuery File Upload Plugin GAE Python Example 2.2.0
+# 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 = 'https://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/blueimp_upload/server/gae-python/static/robots.txt b/library/blueimp_upload/server/gae-python/static/robots.txt
new file mode 100644
index 000000000..eb0536286
--- /dev/null
+++ b/library/blueimp_upload/server/gae-python/static/robots.txt
@@ -0,0 +1,2 @@
+User-agent: *
+Disallow:
diff --git a/library/blueimp_upload/server/node/.gitignore b/library/blueimp_upload/server/node/.gitignore
new file mode 100644
index 000000000..9daa8247d
--- /dev/null
+++ b/library/blueimp_upload/server/node/.gitignore
@@ -0,0 +1,2 @@
+.DS_Store
+node_modules
diff --git a/library/blueimp_upload/server/node/package.json b/library/blueimp_upload/server/node/package.json
new file mode 100644
index 000000000..dd38c50ca
--- /dev/null
+++ b/library/blueimp_upload/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/blueimp_upload/server/node/public/files/.gitignore b/library/blueimp_upload/server/node/public/files/.gitignore
new file mode 100644
index 000000000..d6b7ef32c
--- /dev/null
+++ b/library/blueimp_upload/server/node/public/files/.gitignore
@@ -0,0 +1,2 @@
+*
+!.gitignore
diff --git a/library/blueimp_upload/server/node/server.js b/library/blueimp_upload/server/node/server.js
new file mode 100755
index 000000000..7bab20f59
--- /dev/null
+++ b/library/blueimp_upload/server/node/server.js
@@ -0,0 +1,292 @@
+#!/usr/bin/env node
+/*
+ * jQuery File Upload Plugin Node.js Example 2.1.2
+ * 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);
+ 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/.gitmodules b/library/blueimp_upload/server/node/tmp/.gitignore
index e69de29bb..e69de29bb 100644
--- a/.gitmodules
+++ b/library/blueimp_upload/server/node/tmp/.gitignore
diff --git a/library/blueimp_upload/server/php/UploadHandler.php b/library/blueimp_upload/server/php/UploadHandler.php
new file mode 100755
index 000000000..fb77be1d0
--- /dev/null
+++ b/library/blueimp_upload/server/php/UploadHandler.php
@@ -0,0 +1,1343 @@
+<?php
+/*
+ * jQuery File Upload Plugin PHP Class 8.1.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
+ */
+
+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',
+ // Use exif_imagetype on all files to correct file extensions:
+ 'correct_image_extensions' => false,
+ // 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 ||
+ !empty($_SERVER['HTTP_X_FORWARDED_PROTO']) &&
+ strcasecmp($_SERVER['HTTP_X_FORWARDED_PROTO'], 'https') === 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']) &&
+ // Ignore additional chunks of existing files:
+ !is_file($this->get_upload_path($file->name))) {
+ $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)
+ && preg_match($this->options['image_file_types'], $file->name)) {
+ 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 fix_file_extension($file_path, $name, $size, $type, $error,
+ $index, $content_range) {
+ // 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 ($this->options['correct_image_extensions'] &&
+ 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 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));
+ }
+ return $name;
+ }
+
+ protected function get_file_name($file_path, $name, $size, $type, $error,
+ $index, $content_range) {
+ $name = $this->trim_file_name($file_path, $name, $size, $type, $error,
+ $index, $content_range);
+ return $this->get_unique_filename(
+ $file_path,
+ $this->fix_file_extension($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 = (isset($this->image_objects[$file_path])) ? $this->image_objects[$file_path] : null ;
+ 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 = (isset($this->image_objects[$file_path])) ? $this->image_objects[$file_path] : null ;
+ 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($_REQUEST[$name]) ? basename(stripslashes($_REQUEST[$name])) : null;
+ }
+
+ protected function get_file_names_params() {
+ $params = isset($_REQUEST[$this->options['param_name']]) ?
+ $_REQUEST[$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/blueimp_upload/server/php/files/.gitignore b/library/blueimp_upload/server/php/files/.gitignore
new file mode 100644
index 000000000..e24a60fae
--- /dev/null
+++ b/library/blueimp_upload/server/php/files/.gitignore
@@ -0,0 +1,3 @@
+*
+!.gitignore
+!.htaccess
diff --git a/library/blueimp_upload/server/php/files/.htaccess b/library/blueimp_upload/server/php/files/.htaccess
new file mode 100644
index 000000000..56689f0bb
--- /dev/null
+++ b/library/blueimp_upload/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/blueimp_upload/server/php/index.php b/library/blueimp_upload/server/php/index.php
new file mode 100644
index 000000000..3ae1295ef
--- /dev/null
+++ b/library/blueimp_upload/server/php/index.php
@@ -0,0 +1,15 @@
+<?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
+ */
+
+error_reporting(E_ALL | E_STRICT);
+require('UploadHandler.php');
+$upload_handler = new UploadHandler();
diff --git a/library/blueimp_upload/test/index.html b/library/blueimp_upload/test/index.html
new file mode 100644
index 000000000..8779a9a8c
--- /dev/null
+++ b/library/blueimp_upload/test/index.html
@@ -0,0 +1,172 @@
+<!DOCTYPE HTML>
+<!--
+/*
+ * jQuery File Upload Plugin Test 9.1.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.14.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.11.0/jquery.min.js"></script>
+<script src="../js/vendor/jquery.ui.widget.js"></script>
+<script src="//blueimp.github.io/JavaScript-Templates/js/tmpl.min.js"></script>
+<script src="//blueimp.github.io/JavaScript-Load-Image/js/load-image.all.min.js"></script>
+<script src="//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>
+/* global window, $ */
+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>
+/* global window, $ */
+window.testUIWidget = $.blueimp.fileupload;
+</script>
+<script src="//code.jquery.com/qunit/qunit-1.15.0.js"></script>
+<script src="test.js"></script>
+</body>
+</html>
diff --git a/library/blueimp_upload/test/test.js b/library/blueimp_upload/test/test.js
new file mode 100644
index 000000000..72d08d99e
--- /dev/null
+++ b/library/blueimp_upload/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/bootstrap-datetimepicker/css/bootstrap-datetimepicker.css b/library/bootstrap-datetimepicker/css/bootstrap-datetimepicker.css
deleted file mode 100755
index e5eb7a65c..000000000
--- a/library/bootstrap-datetimepicker/css/bootstrap-datetimepicker.css
+++ /dev/null
@@ -1,174 +0,0 @@
-/**
- * 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
deleted file mode 100755
index 00b768767..000000000
--- a/library/bootstrap-datetimepicker/css/bootstrap-datetimepicker.min.css
+++ /dev/null
@@ -1,8 +0,0 @@
-/*!
- * 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
deleted file mode 100755
index 3bc74fcbb..000000000
--- a/library/bootstrap-datetimepicker/js/bootstrap-datetimepicker.min.js
+++ /dev/null
@@ -1,28 +0,0 @@
-/**
- * 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
deleted file mode 100644
index 0168748fa..000000000
--- a/library/bootstrap-datetimepicker/js/moment.js
+++ /dev/null
@@ -1,7063 +0,0 @@
-//! 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-tagsinput/LICENSE b/library/bootstrap-tagsinput/LICENSE
new file mode 100644
index 000000000..58bc985ba
--- /dev/null
+++ b/library/bootstrap-tagsinput/LICENSE
@@ -0,0 +1,20 @@
+The MIT License (MIT)
+
+Copyright (c) 2013 Tim Schlechter
+
+Permission is hereby granted, free of charge, to any person obtaining a copy of
+this software and associated documentation files (the "Software"), to deal in
+the Software without restriction, including without limitation the rights to
+use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of
+the Software, and to permit persons to whom the Software is furnished to do so,
+subject to the following conditions:
+
+The above copyright notice and this permission notice shall be included in all
+copies or substantial portions of the Software.
+
+THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS
+FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR
+COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER
+IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
+CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
diff --git a/library/bootstrap-tagsinput/README b/library/bootstrap-tagsinput/README
new file mode 100644
index 000000000..a7c96d53a
--- /dev/null
+++ b/library/bootstrap-tagsinput/README
@@ -0,0 +1 @@
+Taken from https://github.com/gdibble/bootstrap-tagsinput/tree/traditionalPlaceholderEffect which has proper support for placeholders
diff --git a/library/bootstrap-tagsinput/README.md b/library/bootstrap-tagsinput/README.md
new file mode 100644
index 000000000..363c0d50b
--- /dev/null
+++ b/library/bootstrap-tagsinput/README.md
@@ -0,0 +1,879 @@
+
+
+
+
+<!DOCTYPE html>
+<html lang="en" class="">
+ <head prefix="og: http://ogp.me/ns# fb: http://ogp.me/ns/fb# object: http://ogp.me/ns/object# article: http://ogp.me/ns/article# profile: http://ogp.me/ns/profile#">
+ <meta charset='utf-8'>
+ <meta http-equiv="X-UA-Compatible" content="IE=edge">
+ <meta http-equiv="Content-Language" content="en">
+
+
+ <title>bootstrap-tagsinput/README.md at master · TimSchlechter/bootstrap-tagsinput · GitHub</title>
+ <link rel="search" type="application/opensearchdescription+xml" href="/opensearch.xml" title="GitHub">
+ <link rel="fluid-icon" href="https://github.com/fluidicon.png" title="GitHub">
+ <link rel="apple-touch-icon" sizes="57x57" href="/apple-touch-icon-114.png">
+ <link rel="apple-touch-icon" sizes="114x114" href="/apple-touch-icon-114.png">
+ <link rel="apple-touch-icon" sizes="72x72" href="/apple-touch-icon-144.png">
+ <link rel="apple-touch-icon" sizes="144x144" href="/apple-touch-icon-144.png">
+ <meta property="fb:app_id" content="1401488693436528">
+
+ <meta content="@github" name="twitter:site" /><meta content="summary" name="twitter:card" /><meta content="TimSchlechter/bootstrap-tagsinput" name="twitter:title" /><meta content="bootstrap-tagsinput - jQuery tags input plugin based on Twitter Bootstrap." name="twitter:description" /><meta content="https://avatars1.githubusercontent.com/u/2721613?v=3&amp;s=400" name="twitter:image:src" />
+<meta content="GitHub" property="og:site_name" /><meta content="object" property="og:type" /><meta content="https://avatars1.githubusercontent.com/u/2721613?v=3&amp;s=400" property="og:image" /><meta content="TimSchlechter/bootstrap-tagsinput" property="og:title" /><meta content="https://github.com/TimSchlechter/bootstrap-tagsinput" property="og:url" /><meta content="bootstrap-tagsinput - jQuery tags input plugin based on Twitter Bootstrap." property="og:description" />
+
+ <meta name="browser-stats-url" content="/_stats">
+ <link rel="assets" href="https://assets-cdn.github.com/">
+ <link rel="conduit-xhr" href="https://ghconduit.com:25035">
+
+ <meta name="pjax-timeout" content="1000">
+
+
+ <meta name="msapplication-TileImage" content="/windows-tile.png">
+ <meta name="msapplication-TileColor" content="#ffffff">
+ <meta name="selected-link" value="repo_source" data-pjax-transient>
+ <meta name="google-analytics" content="UA-3769691-2">
+
+ <meta content="collector.githubapp.com" name="octolytics-host" /><meta content="collector-cdn.github.com" name="octolytics-script-host" /><meta content="github" name="octolytics-app-id" /><meta content="05C412F3:5EFA:620CC:54968B9C" name="octolytics-dimension-request_id" />
+
+ <meta content="Rails, view, blob#show" name="analytics-event" />
+
+
+
+ <link rel="icon" type="image/x-icon" href="https://assets-cdn.github.com/favicon.ico">
+
+
+ <meta content="authenticity_token" name="csrf-param" />
+<meta content="pq46YRAN8EIxwiqw1PBmOS18o8ukCrBKyIwYs6EhhTJPiGbEXhKdJxdkbRWl+VYne3E3iSUijxSIsYnZnQddlg==" name="csrf-token" />
+
+ <link href="https://assets-cdn.github.com/assets/github-9bcf5def7eb44e2a101b20aaecf3707f4b0a10ab8f4d6eebec29371f821c4b29.css" media="all" rel="stylesheet" type="text/css" />
+ <link href="https://assets-cdn.github.com/assets/github2-47bc67324d463c7cecb5ee4c009628c91db85b0e9288a9e663f2d06ff9e03088.css" media="all" rel="stylesheet" type="text/css" />
+
+
+
+
+ <meta http-equiv="x-pjax-version" content="cffc32e08a29062b908cc3ddb47285af">
+
+
+ <meta name="description" content="bootstrap-tagsinput - jQuery tags input plugin based on Twitter Bootstrap.">
+ <meta name="go-import" content="github.com/TimSchlechter/bootstrap-tagsinput git https://github.com/TimSchlechter/bootstrap-tagsinput.git">
+
+ <meta content="2721613" name="octolytics-dimension-user_id" /><meta content="TimSchlechter" name="octolytics-dimension-user_login" /><meta content="11534941" name="octolytics-dimension-repository_id" /><meta content="TimSchlechter/bootstrap-tagsinput" name="octolytics-dimension-repository_nwo" /><meta content="true" name="octolytics-dimension-repository_public" /><meta content="false" name="octolytics-dimension-repository_is_fork" /><meta content="11534941" name="octolytics-dimension-repository_network_root_id" /><meta content="TimSchlechter/bootstrap-tagsinput" name="octolytics-dimension-repository_network_root_nwo" />
+ <link href="https://github.com/TimSchlechter/bootstrap-tagsinput/commits/master.atom" rel="alternate" title="Recent Commits to bootstrap-tagsinput:master" type="application/atom+xml">
+
+ </head>
+
+
+ <body class="logged_out env-production vis-public page-blob">
+ <a href="#start-of-content" tabindex="1" class="accessibility-aid js-skip-to-content">Skip to content</a>
+ <div class="wrapper">
+
+
+
+
+
+
+
+ <div class="header header-logged-out" role="banner">
+ <div class="container clearfix">
+
+ <a class="header-logo-wordmark" href="https://github.com/" ga-data-click="(Logged out) Header, go to homepage, icon:logo-wordmark">
+ <span class="mega-octicon octicon-logo-github"></span>
+ </a>
+
+ <div class="header-actions" role="navigation">
+ <a class="button primary" href="/join" data-ga-click="(Logged out) Header, clicked Sign up, text:sign-up">Sign up</a>
+ <a class="button" href="/login?return_to=%2FTimSchlechter%2Fbootstrap-tagsinput%2Fblob%2Fmaster%2FREADME.md" data-ga-click="(Logged out) Header, clicked Sign in, text:sign-in">Sign in</a>
+ </div>
+
+ <div class="site-search repo-scope js-site-search" role="search">
+ <form accept-charset="UTF-8" action="/TimSchlechter/bootstrap-tagsinput/search" class="js-site-search-form" data-global-search-url="/search" data-repo-search-url="/TimSchlechter/bootstrap-tagsinput/search" method="get"><div style="margin:0;padding:0;display:inline"><input name="utf8" type="hidden" value="&#x2713;" /></div>
+ <input type="text"
+ class="js-site-search-field is-clearable"
+ data-hotkey="s"
+ name="q"
+ placeholder="Search"
+ data-global-scope-placeholder="Search GitHub"
+ data-repo-scope-placeholder="Search"
+ tabindex="1"
+ autocapitalize="off">
+ <div class="scope-badge">This repository</div>
+</form>
+ </div>
+
+ <ul class="header-nav left" role="navigation">
+ <li class="header-nav-item">
+ <a class="header-nav-link" href="/explore" data-ga-click="(Logged out) Header, go to explore, text:explore">Explore</a>
+ </li>
+ <li class="header-nav-item">
+ <a class="header-nav-link" href="/features" data-ga-click="(Logged out) Header, go to features, text:features">Features</a>
+ </li>
+ <li class="header-nav-item">
+ <a class="header-nav-link" href="https://enterprise.github.com/" data-ga-click="(Logged out) Header, go to enterprise, text:enterprise">Enterprise</a>
+ </li>
+ <li class="header-nav-item">
+ <a class="header-nav-link" href="/blog" data-ga-click="(Logged out) Header, go to blog, text:blog">Blog</a>
+ </li>
+ </ul>
+
+ </div>
+</div>
+
+
+
+ <div id="start-of-content" class="accessibility-aid"></div>
+ <div class="site" itemscope itemtype="http://schema.org/WebPage">
+ <div id="js-flash-container">
+
+ </div>
+ <div class="pagehead repohead instapaper_ignore readability-menu">
+ <div class="container">
+
+<ul class="pagehead-actions">
+
+
+ <li>
+ <a href="/login?return_to=%2FTimSchlechter%2Fbootstrap-tagsinput"
+ class="minibutton with-count star-button tooltipped tooltipped-n"
+ aria-label="You must be signed in to star a repository" rel="nofollow">
+ <span class="octicon octicon-star"></span>
+ Star
+ </a>
+
+ <a class="social-count js-social-count" href="/TimSchlechter/bootstrap-tagsinput/stargazers">
+ 755
+ </a>
+
+ </li>
+
+ <li>
+ <a href="/login?return_to=%2FTimSchlechter%2Fbootstrap-tagsinput"
+ class="minibutton with-count js-toggler-target fork-button tooltipped tooltipped-n"
+ aria-label="You must be signed in to fork a repository" rel="nofollow">
+ <span class="octicon octicon-repo-forked"></span>
+ Fork
+ </a>
+ <a href="/TimSchlechter/bootstrap-tagsinput/network" class="social-count">
+ 307
+ </a>
+ </li>
+</ul>
+
+ <h1 itemscope itemtype="http://data-vocabulary.org/Breadcrumb" class="entry-title public">
+ <span class="mega-octicon octicon-repo"></span>
+ <span class="author"><a href="/TimSchlechter" class="url fn" itemprop="url" rel="author"><span itemprop="title">TimSchlechter</span></a></span><!--
+ --><span class="path-divider">/</span><!--
+ --><strong><a href="/TimSchlechter/bootstrap-tagsinput" class="js-current-repository" data-pjax="#js-repo-pjax-container">bootstrap-tagsinput</a></strong>
+
+ <span class="page-context-loader">
+ <img alt="" height="16" src="https://assets-cdn.github.com/images/spinners/octocat-spinner-32.gif" width="16" />
+ </span>
+
+ </h1>
+ </div><!-- /.container -->
+ </div><!-- /.repohead -->
+
+ <div class="container">
+ <div class="repository-with-sidebar repo-container new-discussion-timeline ">
+ <div class="repository-sidebar clearfix">
+
+<nav class="sunken-menu repo-nav js-repo-nav js-sidenav-container-pjax js-octicon-loaders"
+ role="navigation"
+ data-pjax="#js-repo-pjax-container"
+ data-issue-count-url="/TimSchlechter/bootstrap-tagsinput/issues/counts">
+ <ul class="sunken-menu-group">
+ <li class="tooltipped tooltipped-w" aria-label="Code">
+ <a href="/TimSchlechter/bootstrap-tagsinput" aria-label="Code" class="selected js-selected-navigation-item sunken-menu-item" data-hotkey="g c" data-selected-links="repo_source repo_downloads repo_commits repo_releases repo_tags repo_branches /TimSchlechter/bootstrap-tagsinput">
+ <span class="octicon octicon-code"></span> <span class="full-word">Code</span>
+ <img alt="" class="mini-loader" height="16" src="https://assets-cdn.github.com/images/spinners/octocat-spinner-32.gif" width="16" />
+</a> </li>
+
+ <li class="tooltipped tooltipped-w" aria-label="Issues">
+ <a href="/TimSchlechter/bootstrap-tagsinput/issues" aria-label="Issues" class="js-selected-navigation-item sunken-menu-item" data-hotkey="g i" data-selected-links="repo_issues repo_labels repo_milestones /TimSchlechter/bootstrap-tagsinput/issues">
+ <span class="octicon octicon-issue-opened"></span> <span class="full-word">Issues</span>
+ <span class="js-issue-replace-counter"></span>
+ <img alt="" class="mini-loader" height="16" src="https://assets-cdn.github.com/images/spinners/octocat-spinner-32.gif" width="16" />
+</a> </li>
+
+ <li class="tooltipped tooltipped-w" aria-label="Pull Requests">
+ <a href="/TimSchlechter/bootstrap-tagsinput/pulls" aria-label="Pull Requests" class="js-selected-navigation-item sunken-menu-item" data-hotkey="g p" data-selected-links="repo_pulls /TimSchlechter/bootstrap-tagsinput/pulls">
+ <span class="octicon octicon-git-pull-request"></span> <span class="full-word">Pull Requests</span>
+ <span class="js-pull-replace-counter"></span>
+ <img alt="" class="mini-loader" height="16" src="https://assets-cdn.github.com/images/spinners/octocat-spinner-32.gif" width="16" />
+</a> </li>
+
+
+ </ul>
+ <div class="sunken-menu-separator"></div>
+ <ul class="sunken-menu-group">
+
+ <li class="tooltipped tooltipped-w" aria-label="Pulse">
+ <a href="/TimSchlechter/bootstrap-tagsinput/pulse" aria-label="Pulse" class="js-selected-navigation-item sunken-menu-item" data-selected-links="pulse /TimSchlechter/bootstrap-tagsinput/pulse">
+ <span class="octicon octicon-pulse"></span> <span class="full-word">Pulse</span>
+ <img alt="" class="mini-loader" height="16" src="https://assets-cdn.github.com/images/spinners/octocat-spinner-32.gif" width="16" />
+</a> </li>
+
+ <li class="tooltipped tooltipped-w" aria-label="Graphs">
+ <a href="/TimSchlechter/bootstrap-tagsinput/graphs" aria-label="Graphs" class="js-selected-navigation-item sunken-menu-item" data-selected-links="repo_graphs repo_contributors /TimSchlechter/bootstrap-tagsinput/graphs">
+ <span class="octicon octicon-graph"></span> <span class="full-word">Graphs</span>
+ <img alt="" class="mini-loader" height="16" src="https://assets-cdn.github.com/images/spinners/octocat-spinner-32.gif" width="16" />
+</a> </li>
+ </ul>
+
+
+</nav>
+
+ <div class="only-with-full-nav">
+
+
+<div class="clone-url open"
+ data-protocol-type="http"
+ data-url="/users/set_protocol?protocol_selector=http&amp;protocol_type=clone">
+ <h3><span class="text-emphasized">HTTPS</span> clone URL</h3>
+ <div class="input-group js-zeroclipboard-container">
+ <input type="text" class="input-mini input-monospace js-url-field js-zeroclipboard-target"
+ value="https://github.com/TimSchlechter/bootstrap-tagsinput.git" readonly="readonly">
+ <span class="input-group-button">
+ <button aria-label="Copy to clipboard" class="js-zeroclipboard minibutton zeroclipboard-button" data-copied-hint="Copied!" type="button"><span class="octicon octicon-clippy"></span></button>
+ </span>
+ </div>
+</div>
+
+
+<div class="clone-url "
+ data-protocol-type="subversion"
+ data-url="/users/set_protocol?protocol_selector=subversion&amp;protocol_type=clone">
+ <h3><span class="text-emphasized">Subversion</span> checkout URL</h3>
+ <div class="input-group js-zeroclipboard-container">
+ <input type="text" class="input-mini input-monospace js-url-field js-zeroclipboard-target"
+ value="https://github.com/TimSchlechter/bootstrap-tagsinput" readonly="readonly">
+ <span class="input-group-button">
+ <button aria-label="Copy to clipboard" class="js-zeroclipboard minibutton zeroclipboard-button" data-copied-hint="Copied!" type="button"><span class="octicon octicon-clippy"></span></button>
+ </span>
+ </div>
+</div>
+
+
+
+<p class="clone-options">You can clone with
+ <a href="#" class="js-clone-selector" data-protocol="http">HTTPS</a> or <a href="#" class="js-clone-selector" data-protocol="subversion">Subversion</a>.
+ <a href="https://help.github.com/articles/which-remote-url-should-i-use" class="help tooltipped tooltipped-n" aria-label="Get help on which URL is right for you.">
+ <span class="octicon octicon-question"></span>
+ </a>
+</p>
+
+
+
+ <a href="/TimSchlechter/bootstrap-tagsinput/archive/master.zip"
+ class="minibutton sidebar-button"
+ aria-label="Download the contents of TimSchlechter/bootstrap-tagsinput as a zip file"
+ title="Download the contents of TimSchlechter/bootstrap-tagsinput as a zip file"
+ rel="nofollow">
+ <span class="octicon octicon-cloud-download"></span>
+ Download ZIP
+ </a>
+ </div>
+ </div><!-- /.repository-sidebar -->
+
+ <div id="js-repo-pjax-container" class="repository-content context-loader-container" data-pjax-container>
+
+
+<a href="/TimSchlechter/bootstrap-tagsinput/blob/a4657365808a224fe8aa950c14b96ecfce58b290/README.md" class="hidden js-permalink-shortcut" data-hotkey="y">Permalink</a>
+
+<!-- blob contrib key: blob_contributors:v21:002463f2fb860593a8410f2c5c54cd3a -->
+
+<div class="file-navigation js-zeroclipboard-container">
+
+<div class="select-menu js-menu-container js-select-menu left">
+ <span class="minibutton select-menu-button js-menu-target css-truncate" data-hotkey="w"
+ data-master-branch="master"
+ data-ref="master"
+ title="master"
+ role="button" aria-label="Switch branches or tags" tabindex="0" aria-haspopup="true">
+ <span class="octicon octicon-git-branch"></span>
+ <i>branch:</i>
+ <span class="js-select-button css-truncate-target">master</span>
+ </span>
+
+ <div class="select-menu-modal-holder js-menu-content js-navigation-container" data-pjax aria-hidden="true">
+
+ <div class="select-menu-modal">
+ <div class="select-menu-header">
+ <span class="select-menu-title">Switch branches/tags</span>
+ <span class="octicon octicon-x js-menu-close" role="button" aria-label="Close"></span>
+ </div> <!-- /.select-menu-header -->
+
+ <div class="select-menu-filters">
+ <div class="select-menu-text-filter">
+ <input type="text" aria-label="Filter branches/tags" id="context-commitish-filter-field" class="js-filterable-field js-navigation-enable" placeholder="Filter branches/tags">
+ </div>
+ <div class="select-menu-tabs">
+ <ul>
+ <li class="select-menu-tab">
+ <a href="#" data-tab-filter="branches" class="js-select-menu-tab">Branches</a>
+ </li>
+ <li class="select-menu-tab">
+ <a href="#" data-tab-filter="tags" class="js-select-menu-tab">Tags</a>
+ </li>
+ </ul>
+ </div><!-- /.select-menu-tabs -->
+ </div><!-- /.select-menu-filters -->
+
+ <div class="select-menu-list select-menu-tab-bucket js-select-menu-tab-bucket" data-tab-filter="branches">
+
+ <div data-filterable-for="context-commitish-filter-field" data-filterable-type="substring">
+
+
+ <div class="select-menu-item js-navigation-item ">
+ <span class="select-menu-item-icon octicon octicon-check"></span>
+ <a href="/TimSchlechter/bootstrap-tagsinput/blob/gh-pages/README.md"
+ data-name="gh-pages"
+ data-skip-pjax="true"
+ rel="nofollow"
+ class="js-navigation-open select-menu-item-text css-truncate-target"
+ title="gh-pages">gh-pages</a>
+ </div> <!-- /.select-menu-item -->
+ <div class="select-menu-item js-navigation-item selected">
+ <span class="select-menu-item-icon octicon octicon-check"></span>
+ <a href="/TimSchlechter/bootstrap-tagsinput/blob/master/README.md"
+ data-name="master"
+ data-skip-pjax="true"
+ rel="nofollow"
+ class="js-navigation-open select-menu-item-text css-truncate-target"
+ title="master">master</a>
+ </div> <!-- /.select-menu-item -->
+ </div>
+
+ <div class="select-menu-no-results">Nothing to show</div>
+ </div> <!-- /.select-menu-list -->
+
+ <div class="select-menu-list select-menu-tab-bucket js-select-menu-tab-bucket" data-tab-filter="tags">
+ <div data-filterable-for="context-commitish-filter-field" data-filterable-type="substring">
+
+
+ <div class="select-menu-item js-navigation-item ">
+ <span class="select-menu-item-icon octicon octicon-check"></span>
+ <a href="/TimSchlechter/bootstrap-tagsinput/tree/0.4.2/README.md"
+ data-name="0.4.2"
+ data-skip-pjax="true"
+ rel="nofollow"
+ class="js-navigation-open select-menu-item-text css-truncate-target"
+ title="0.4.2">0.4.2</a>
+ </div> <!-- /.select-menu-item -->
+ <div class="select-menu-item js-navigation-item ">
+ <span class="select-menu-item-icon octicon octicon-check"></span>
+ <a href="/TimSchlechter/bootstrap-tagsinput/tree/0.4.1/README.md"
+ data-name="0.4.1"
+ data-skip-pjax="true"
+ rel="nofollow"
+ class="js-navigation-open select-menu-item-text css-truncate-target"
+ title="0.4.1">0.4.1</a>
+ </div> <!-- /.select-menu-item -->
+ <div class="select-menu-item js-navigation-item ">
+ <span class="select-menu-item-icon octicon octicon-check"></span>
+ <a href="/TimSchlechter/bootstrap-tagsinput/tree/0.4/README.md"
+ data-name="0.4"
+ data-skip-pjax="true"
+ rel="nofollow"
+ class="js-navigation-open select-menu-item-text css-truncate-target"
+ title="0.4">0.4</a>
+ </div> <!-- /.select-menu-item -->
+ <div class="select-menu-item js-navigation-item ">
+ <span class="select-menu-item-icon octicon octicon-check"></span>
+ <a href="/TimSchlechter/bootstrap-tagsinput/tree/0.3.14/README.md"
+ data-name="0.3.14"
+ data-skip-pjax="true"
+ rel="nofollow"
+ class="js-navigation-open select-menu-item-text css-truncate-target"
+ title="0.3.14">0.3.14</a>
+ </div> <!-- /.select-menu-item -->
+ <div class="select-menu-item js-navigation-item ">
+ <span class="select-menu-item-icon octicon octicon-check"></span>
+ <a href="/TimSchlechter/bootstrap-tagsinput/tree/0.3.13/README.md"
+ data-name="0.3.13"
+ data-skip-pjax="true"
+ rel="nofollow"
+ class="js-navigation-open select-menu-item-text css-truncate-target"
+ title="0.3.13">0.3.13</a>
+ </div> <!-- /.select-menu-item -->
+ <div class="select-menu-item js-navigation-item ">
+ <span class="select-menu-item-icon octicon octicon-check"></span>
+ <a href="/TimSchlechter/bootstrap-tagsinput/tree/0.3.12/README.md"
+ data-name="0.3.12"
+ data-skip-pjax="true"
+ rel="nofollow"
+ class="js-navigation-open select-menu-item-text css-truncate-target"
+ title="0.3.12">0.3.12</a>
+ </div> <!-- /.select-menu-item -->
+ <div class="select-menu-item js-navigation-item ">
+ <span class="select-menu-item-icon octicon octicon-check"></span>
+ <a href="/TimSchlechter/bootstrap-tagsinput/tree/0.3.11/README.md"
+ data-name="0.3.11"
+ data-skip-pjax="true"
+ rel="nofollow"
+ class="js-navigation-open select-menu-item-text css-truncate-target"
+ title="0.3.11">0.3.11</a>
+ </div> <!-- /.select-menu-item -->
+ <div class="select-menu-item js-navigation-item ">
+ <span class="select-menu-item-icon octicon octicon-check"></span>
+ <a href="/TimSchlechter/bootstrap-tagsinput/tree/0.3.10/README.md"
+ data-name="0.3.10"
+ data-skip-pjax="true"
+ rel="nofollow"
+ class="js-navigation-open select-menu-item-text css-truncate-target"
+ title="0.3.10">0.3.10</a>
+ </div> <!-- /.select-menu-item -->
+ <div class="select-menu-item js-navigation-item ">
+ <span class="select-menu-item-icon octicon octicon-check"></span>
+ <a href="/TimSchlechter/bootstrap-tagsinput/tree/0.3.9/README.md"
+ data-name="0.3.9"
+ data-skip-pjax="true"
+ rel="nofollow"
+ class="js-navigation-open select-menu-item-text css-truncate-target"
+ title="0.3.9">0.3.9</a>
+ </div> <!-- /.select-menu-item -->
+ <div class="select-menu-item js-navigation-item ">
+ <span class="select-menu-item-icon octicon octicon-check"></span>
+ <a href="/TimSchlechter/bootstrap-tagsinput/tree/0.3.8/README.md"
+ data-name="0.3.8"
+ data-skip-pjax="true"
+ rel="nofollow"
+ class="js-navigation-open select-menu-item-text css-truncate-target"
+ title="0.3.8">0.3.8</a>
+ </div> <!-- /.select-menu-item -->
+ <div class="select-menu-item js-navigation-item ">
+ <span class="select-menu-item-icon octicon octicon-check"></span>
+ <a href="/TimSchlechter/bootstrap-tagsinput/tree/0.3.7/README.md"
+ data-name="0.3.7"
+ data-skip-pjax="true"
+ rel="nofollow"
+ class="js-navigation-open select-menu-item-text css-truncate-target"
+ title="0.3.7">0.3.7</a>
+ </div> <!-- /.select-menu-item -->
+ <div class="select-menu-item js-navigation-item ">
+ <span class="select-menu-item-icon octicon octicon-check"></span>
+ <a href="/TimSchlechter/bootstrap-tagsinput/tree/0.3.6/README.md"
+ data-name="0.3.6"
+ data-skip-pjax="true"
+ rel="nofollow"
+ class="js-navigation-open select-menu-item-text css-truncate-target"
+ title="0.3.6">0.3.6</a>
+ </div> <!-- /.select-menu-item -->
+ <div class="select-menu-item js-navigation-item ">
+ <span class="select-menu-item-icon octicon octicon-check"></span>
+ <a href="/TimSchlechter/bootstrap-tagsinput/tree/0.3.5/README.md"
+ data-name="0.3.5"
+ data-skip-pjax="true"
+ rel="nofollow"
+ class="js-navigation-open select-menu-item-text css-truncate-target"
+ title="0.3.5">0.3.5</a>
+ </div> <!-- /.select-menu-item -->
+ <div class="select-menu-item js-navigation-item ">
+ <span class="select-menu-item-icon octicon octicon-check"></span>
+ <a href="/TimSchlechter/bootstrap-tagsinput/tree/0.3.4/README.md"
+ data-name="0.3.4"
+ data-skip-pjax="true"
+ rel="nofollow"
+ class="js-navigation-open select-menu-item-text css-truncate-target"
+ title="0.3.4">0.3.4</a>
+ </div> <!-- /.select-menu-item -->
+ <div class="select-menu-item js-navigation-item ">
+ <span class="select-menu-item-icon octicon octicon-check"></span>
+ <a href="/TimSchlechter/bootstrap-tagsinput/tree/0.3.3/README.md"
+ data-name="0.3.3"
+ data-skip-pjax="true"
+ rel="nofollow"
+ class="js-navigation-open select-menu-item-text css-truncate-target"
+ title="0.3.3">0.3.3</a>
+ </div> <!-- /.select-menu-item -->
+ <div class="select-menu-item js-navigation-item ">
+ <span class="select-menu-item-icon octicon octicon-check"></span>
+ <a href="/TimSchlechter/bootstrap-tagsinput/tree/0.3.2/README.md"
+ data-name="0.3.2"
+ data-skip-pjax="true"
+ rel="nofollow"
+ class="js-navigation-open select-menu-item-text css-truncate-target"
+ title="0.3.2">0.3.2</a>
+ </div> <!-- /.select-menu-item -->
+ <div class="select-menu-item js-navigation-item ">
+ <span class="select-menu-item-icon octicon octicon-check"></span>
+ <a href="/TimSchlechter/bootstrap-tagsinput/tree/0.3.1/README.md"
+ data-name="0.3.1"
+ data-skip-pjax="true"
+ rel="nofollow"
+ class="js-navigation-open select-menu-item-text css-truncate-target"
+ title="0.3.1">0.3.1</a>
+ </div> <!-- /.select-menu-item -->
+ <div class="select-menu-item js-navigation-item ">
+ <span class="select-menu-item-icon octicon octicon-check"></span>
+ <a href="/TimSchlechter/bootstrap-tagsinput/tree/0.3.0/README.md"
+ data-name="0.3.0"
+ data-skip-pjax="true"
+ rel="nofollow"
+ class="js-navigation-open select-menu-item-text css-truncate-target"
+ title="0.3.0">0.3.0</a>
+ </div> <!-- /.select-menu-item -->
+ <div class="select-menu-item js-navigation-item ">
+ <span class="select-menu-item-icon octicon octicon-check"></span>
+ <a href="/TimSchlechter/bootstrap-tagsinput/tree/0.2.3/README.md"
+ data-name="0.2.3"
+ data-skip-pjax="true"
+ rel="nofollow"
+ class="js-navigation-open select-menu-item-text css-truncate-target"
+ title="0.2.3">0.2.3</a>
+ </div> <!-- /.select-menu-item -->
+ <div class="select-menu-item js-navigation-item ">
+ <span class="select-menu-item-icon octicon octicon-check"></span>
+ <a href="/TimSchlechter/bootstrap-tagsinput/tree/0.2.2/README.md"
+ data-name="0.2.2"
+ data-skip-pjax="true"
+ rel="nofollow"
+ class="js-navigation-open select-menu-item-text css-truncate-target"
+ title="0.2.2">0.2.2</a>
+ </div> <!-- /.select-menu-item -->
+ <div class="select-menu-item js-navigation-item ">
+ <span class="select-menu-item-icon octicon octicon-check"></span>
+ <a href="/TimSchlechter/bootstrap-tagsinput/tree/0.2.1/README.md"
+ data-name="0.2.1"
+ data-skip-pjax="true"
+ rel="nofollow"
+ class="js-navigation-open select-menu-item-text css-truncate-target"
+ title="0.2.1">0.2.1</a>
+ </div> <!-- /.select-menu-item -->
+ <div class="select-menu-item js-navigation-item ">
+ <span class="select-menu-item-icon octicon octicon-check"></span>
+ <a href="/TimSchlechter/bootstrap-tagsinput/tree/0.2.0/README.md"
+ data-name="0.2.0"
+ data-skip-pjax="true"
+ rel="nofollow"
+ class="js-navigation-open select-menu-item-text css-truncate-target"
+ title="0.2.0">0.2.0</a>
+ </div> <!-- /.select-menu-item -->
+ <div class="select-menu-item js-navigation-item ">
+ <span class="select-menu-item-icon octicon octicon-check"></span>
+ <a href="/TimSchlechter/bootstrap-tagsinput/tree/0.1.1/README.md"
+ data-name="0.1.1"
+ data-skip-pjax="true"
+ rel="nofollow"
+ class="js-navigation-open select-menu-item-text css-truncate-target"
+ title="0.1.1">0.1.1</a>
+ </div> <!-- /.select-menu-item -->
+ <div class="select-menu-item js-navigation-item ">
+ <span class="select-menu-item-icon octicon octicon-check"></span>
+ <a href="/TimSchlechter/bootstrap-tagsinput/tree/0.1.0/README.md"
+ data-name="0.1.0"
+ data-skip-pjax="true"
+ rel="nofollow"
+ class="js-navigation-open select-menu-item-text css-truncate-target"
+ title="0.1.0">0.1.0</a>
+ </div> <!-- /.select-menu-item -->
+ </div>
+
+ <div class="select-menu-no-results">Nothing to show</div>
+ </div> <!-- /.select-menu-list -->
+
+ </div> <!-- /.select-menu-modal -->
+ </div> <!-- /.select-menu-modal-holder -->
+</div> <!-- /.select-menu -->
+
+ <div class="button-group right">
+ <a href="/TimSchlechter/bootstrap-tagsinput/find/master"
+ class="js-show-file-finder minibutton empty-icon tooltipped tooltipped-s"
+ data-pjax
+ data-hotkey="t"
+ aria-label="Quickly jump between files">
+ <span class="octicon octicon-list-unordered"></span>
+ </a>
+ <button aria-label="Copy file path to clipboard" class="js-zeroclipboard minibutton zeroclipboard-button" data-copied-hint="Copied!" type="button"><span class="octicon octicon-clippy"></span></button>
+ </div>
+
+ <div class="breadcrumb js-zeroclipboard-target">
+ <span class='repo-root js-repo-root'><span itemscope="" itemtype="http://data-vocabulary.org/Breadcrumb"><a href="/TimSchlechter/bootstrap-tagsinput" class="" data-branch="master" data-direction="back" data-pjax="true" itemscope="url"><span itemprop="title">bootstrap-tagsinput</span></a></span></span><span class="separator">/</span><strong class="final-path">README.md</strong>
+ </div>
+</div>
+
+
+ <div class="commit file-history-tease">
+ <div class="file-history-tease-header">
+ <img alt="Tim Schlechter" class="avatar" data-user="2721613" height="24" src="https://avatars3.githubusercontent.com/u/2721613?v=3&amp;s=48" width="24" />
+ <span class="author"><a href="/TimSchlechter" rel="author">TimSchlechter</a></span>
+ <time datetime="2014-07-30T18:40:53Z" is="relative-time">Jul 30, 2014</time>
+ <div class="commit-title">
+ <a href="/TimSchlechter/bootstrap-tagsinput/commit/a64536d346d252a6fb5d013a53ff0b6a6a991ba8" class="message" data-pjax="true" title="Release build 0.4">Release build 0.4</a>
+ </div>
+ </div>
+
+ <div class="participation">
+ <p class="quickstat">
+ <a href="#blob_contributors_box" rel="facebox">
+ <strong>1</strong>
+ contributor
+ </a>
+ </p>
+
+ </div>
+ <div id="blob_contributors_box" style="display:none">
+ <h2 class="facebox-header">Users who have contributed to this file</h2>
+ <ul class="facebox-user-list">
+ <li class="facebox-user-list-item">
+ <img alt="Tim Schlechter" data-user="2721613" height="24" src="https://avatars3.githubusercontent.com/u/2721613?v=3&amp;s=48" width="24" />
+ <a href="/TimSchlechter">TimSchlechter</a>
+ </li>
+ </ul>
+ </div>
+ </div>
+
+<div class="file-box">
+ <div class="file">
+ <div class="meta clearfix">
+ <div class="info file-name">
+ <span>70 lines (61 sloc)</span>
+ <span class="meta-divider"></span>
+ <span>3.157 kb</span>
+ </div>
+ <div class="actions">
+ <div class="button-group">
+ <a href="/TimSchlechter/bootstrap-tagsinput/raw/master/README.md" class="minibutton " id="raw-url">Raw</a>
+ <a href="/TimSchlechter/bootstrap-tagsinput/blame/master/README.md" class="minibutton js-update-url-with-hash">Blame</a>
+ <a href="/TimSchlechter/bootstrap-tagsinput/commits/master/README.md" class="minibutton " rel="nofollow">History</a>
+ </div><!-- /.button-group -->
+
+
+ <a class="octicon-button disabled tooltipped tooltipped-w" href="#"
+ aria-label="You must be signed in to make or propose changes"><span class="octicon octicon-pencil"></span></a>
+
+ <a class="octicon-button danger disabled tooltipped tooltipped-w" href="#"
+ aria-label="You must be signed in to make or propose changes">
+ <span class="octicon octicon-trashcan"></span>
+ </a>
+ </div><!-- /.actions -->
+ </div>
+
+ <div id="readme" class="blob instapaper_body">
+ <article class="markdown-body entry-content" itemprop="mainContentOfPage"><h1>
+<a id="user-content-bootstrap-tags-input-" class="anchor" href="#bootstrap-tags-input-" aria-hidden="true"><span class="octicon octicon-link"></span></a>Bootstrap Tags Input <a href="https://travis-ci.org/TimSchlechter/bootstrap-tagsinput"><img src="https://camo.githubusercontent.com/2d02546931244241329b98071825212a0d77dd4e/68747470733a2f2f7472617669732d63692e6f72672f54696d5363686c6563687465722f626f6f7473747261702d74616773696e7075742e7376673f6272616e63683d6d6173746572" alt="Build Status" data-canonical-src="https://travis-ci.org/TimSchlechter/bootstrap-tagsinput.svg?branch=master" style="max-width:100%;"></a>
+</h1>
+
+<p>Bootstrap Tags Input is a jQuery plugin providing a Twitter Bootstrap user interface for managing tags.</p>
+
+<h2>
+<a id="user-content-usage" class="anchor" href="#usage" aria-hidden="true"><span class="octicon octicon-link"></span></a>Usage</h2>
+
+<p>Examples can be found <a href="http://timschlechter.github.com/bootstrap-tagsinput/examples/">here</a>.</p>
+
+<h2>
+<a id="user-content-features" class="anchor" href="#features" aria-hidden="true"><span class="octicon octicon-link"></span></a>Features</h2>
+
+<ul class="task-list">
+<li>Objects as tags</li>
+<li>True multi value</li>
+<li>Typeahead</li>
+<li>Designed for Bootstrap 2.3.2 and 3</li>
+</ul>
+
+<h3>
+<a id="user-content-objects-as-tags" class="anchor" href="#objects-as-tags" aria-hidden="true"><span class="octicon octicon-link"></span></a>Objects as tags</h3>
+
+<p>Not just support for using strings! This means you can use different values
+for a tag's label and value. Each tag also holds a reference to the object
+by which it was created, so by calling <code>tagsinput('items')</code> an
+array of the original items is returned.</p>
+
+<h3>
+<a id="user-content-true-multi-value-support" class="anchor" href="#true-multi-value-support" aria-hidden="true"><span class="octicon octicon-link"></span></a>True multi value support</h3>
+
+<p>Other implementations just concatenate the values to a comma separated string.
+This results in <code>val()</code> returning just this string, and when
+submitting the form, only one big, concatenated value is sent in the request.</p>
+
+<p>Bootstrap Tags Input provides true multivalue support. Just use a
+<code>&lt;select multiple /&gt;</code> as your input element, and
+<code>val()</code> will return an array of the tag values. When submitting the
+form, an array of values will be sent with the request.</p>
+
+<h3>
+<a id="user-content-typeahead-support" class="anchor" href="#typeahead-support" aria-hidden="true"><span class="octicon octicon-link"></span></a>Typeahead support</h3>
+
+<p>Integrates with Twitter Bootstraps' 2.3.2 typeahead, or use custom typeahead when using Bootstrap 3.</p>
+
+<h2>
+<a id="user-content-development" class="anchor" href="#development" aria-hidden="true"><span class="octicon octicon-link"></span></a>Development</h2>
+
+<p>Install dependencies:</p>
+
+<pre>
+npm install
+bower install
+</pre>
+
+<p>Test:</p>
+
+<pre>
+grunt test
+</pre>
+
+<p>Build:</p>
+
+<pre>
+grunt build
+</pre>
+
+<h2>
+<a id="user-content-history" class="anchor" href="#history" aria-hidden="true"><span class="octicon octicon-link"></span></a>History</h2>
+
+<ul class="task-list">
+<li>0.4
+
+<ul class="task-list">
+<li><a href="https://github.com/TimSchlechter/bootstrap-tagsinput/pull/73">Fix typeahead when using Bootstrap 3</a></li>
+</ul>
+</li>
+<li>0.3.13
+
+<ul class="task-list">
+<li> <a href="https://github.com/TimSchlechter/bootstrap-tagsinput/issues/5">#5: Trigger events on original input/select</a>
+</li>
+<li> Loads of fixes merged with help of @janvt, @rlidwka and @kuraga: thanks for helping me out!</li>
+</ul>
+</li>
+<li>0.3.9
+
+<ul class="task-list">
+<li> <a href="https://github.com/TimSchlechter/bootstrap-tagsinput/issues/48">#48: Type ahead stops when entering second character</a>
+</li>
+</ul>
+</li>
+<li>0.3.8
+
+<ul class="task-list">
+<li> <a href="https://github.com/TimSchlechter/bootstrap-tagsinput/pull/43">#43: Add support for placeholder</a>
+</li>
+<li> <a href="https://github.com/TimSchlechter/bootstrap-tagsinput/pull/46">#46: ie 8 compatibility, replace indexOf method</a>
+</li>
+</ul>
+</li>
+<li>0.3.7
+
+<ul class="task-list">
+<li> <a href="https://github.com/TimSchlechter/bootstrap-tagsinput/issues/39">#39: flash when duplicate is entered</a>
+</li>
+</ul>
+</li>
+<li>0.3.6
+
+<ul class="task-list">
+<li> <a href="https://github.com/TimSchlechter/bootstrap-tagsinput/issues/34">#34: Error in ReloadPage</a>
+</li>
+</ul>
+</li>
+<li>0.3.5
+
+<ul class="task-list">
+<li> <a href="https://github.com/TimSchlechter/bootstrap-tagsinput/issues/10">#10: confirmKeys option</a>
+</li>
+</ul>
+</li>
+<li>0.3.4
+
+<ul class="task-list">
+<li> <a href="https://github.com/TimSchlechter/bootstrap-tagsinput/pull/24">#24: Add bsTagsInput angular directive &amp; example for bootstrap3 with typeahea...</a>
+</li>
+<li> <a href="https://github.com/TimSchlechter/bootstrap-tagsinput/pull/28">#28: Limit number of tags, enable/disable input</a>
+</li>
+<li> <a href="https://github.com/TimSchlechter/bootstrap-tagsinput/pull/33">#33: Avoid conflict with other selects when checking for value presence</a>
+</li>
+</ul>
+</li>
+</ul>
+
+<h2>
+<a id="user-content-license" class="anchor" href="#license" aria-hidden="true"><span class="octicon octicon-link"></span></a>License</h2>
+
+<p>This project is licensed under <a href="https://raw.github.com/TimSchlechter/bootstrap-tagsinput/master/LICENSE" title="Read more about the MIT license">MIT</a>.</p>
+</article>
+ </div>
+
+ </div>
+</div>
+
+<a href="#jump-to-line" rel="facebox[.linejump]" data-hotkey="l" style="display:none">Jump to Line</a>
+<div id="jump-to-line" style="display:none">
+ <form accept-charset="UTF-8" class="js-jump-to-line-form">
+ <input class="linejump-input js-jump-to-line-field" type="text" placeholder="Jump to line&hellip;" autofocus>
+ <button type="submit" class="button">Go</button>
+ </form>
+</div>
+
+ </div>
+
+ </div><!-- /.repo-container -->
+ <div class="modal-backdrop"></div>
+ </div><!-- /.container -->
+ </div><!-- /.site -->
+
+
+ </div><!-- /.wrapper -->
+
+ <div class="container">
+ <div class="site-footer" role="contentinfo">
+ <ul class="site-footer-links right">
+ <li><a href="https://status.github.com/">Status</a></li>
+ <li><a href="https://developer.github.com">API</a></li>
+ <li><a href="http://training.github.com">Training</a></li>
+ <li><a href="http://shop.github.com">Shop</a></li>
+ <li><a href="/blog">Blog</a></li>
+ <li><a href="/about">About</a></li>
+
+ </ul>
+
+ <a href="/" aria-label="Homepage">
+ <span class="mega-octicon octicon-mark-github" title="GitHub"></span>
+ </a>
+
+ <ul class="site-footer-links">
+ <li>&copy; 2014 <span title="0.02664s from github-fe122-cp1-prd.iad.github.net">GitHub</span>, Inc.</li>
+ <li><a href="/site/terms">Terms</a></li>
+ <li><a href="/site/privacy">Privacy</a></li>
+ <li><a href="/security">Security</a></li>
+ <li><a href="/contact">Contact</a></li>
+ </ul>
+ </div><!-- /.site-footer -->
+</div><!-- /.container -->
+
+
+ <div class="fullscreen-overlay js-fullscreen-overlay" id="fullscreen_overlay">
+ <div class="fullscreen-container js-suggester-container">
+ <div class="textarea-wrap">
+ <textarea name="fullscreen-contents" id="fullscreen-contents" class="fullscreen-contents js-fullscreen-contents" placeholder=""></textarea>
+ <div class="suggester-container">
+ <div class="suggester fullscreen-suggester js-suggester js-navigation-container"></div>
+ </div>
+ </div>
+ </div>
+ <div class="fullscreen-sidebar">
+ <a href="#" class="exit-fullscreen js-exit-fullscreen tooltipped tooltipped-w" aria-label="Exit Zen Mode">
+ <span class="mega-octicon octicon-screen-normal"></span>
+ </a>
+ <a href="#" class="theme-switcher js-theme-switcher tooltipped tooltipped-w"
+ aria-label="Switch themes">
+ <span class="octicon octicon-color-mode"></span>
+ </a>
+ </div>
+</div>
+
+
+
+ <div id="ajax-error-message" class="flash flash-error">
+ <span class="octicon octicon-alert"></span>
+ <a href="#" class="octicon octicon-x flash-close js-ajax-error-dismiss" aria-label="Dismiss error"></a>
+ Something went wrong with that request. Please try again.
+ </div>
+
+
+ <script crossorigin="anonymous" src="https://assets-cdn.github.com/assets/frameworks-fc447938e306b7b2c26a33cfee9dfda9052aeb1aa6ad84b72f1b35fd008efe9e.js" type="text/javascript"></script>
+ <script async="async" crossorigin="anonymous" src="https://assets-cdn.github.com/assets/github-56c56f7fe2ed90ca50b9eefebccd56f3b9729a85d7ba17f0f9c9ebd02f20a7e3.js" type="text/javascript"></script>
+
+
+ </body>
+</html>
+
diff --git a/library/bootstrap-tagsinput/bootstrap-tagsinput.css b/library/bootstrap-tagsinput/bootstrap-tagsinput.css
new file mode 100644
index 000000000..55f7c09df
--- /dev/null
+++ b/library/bootstrap-tagsinput/bootstrap-tagsinput.css
@@ -0,0 +1,46 @@
+.bootstrap-tagsinput {
+ background-color: #fff;
+ border: 1px solid #ccc;
+ box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075);
+ display: inline-block;
+ padding: 4px 6px;
+ margin-bottom: 10px;
+ color: #555;
+ vertical-align: middle;
+ border-radius: 4px;
+ max-width: 100%;
+ line-height: 22px;
+ cursor: text;
+}
+.bootstrap-tagsinput input {
+ border: none;
+ box-shadow: none;
+ outline: none;
+ background-color: transparent;
+ padding: 0;
+ margin: 0;
+ width: auto !important;
+ max-width: inherit;
+}
+.bootstrap-tagsinput input:focus {
+ border: none;
+ box-shadow: none;
+}
+.bootstrap-tagsinput .tag {
+ margin-right: 2px;
+ color: white;
+}
+.bootstrap-tagsinput .tag [data-role="remove"] {
+ margin-left: 8px;
+ cursor: pointer;
+}
+.bootstrap-tagsinput .tag [data-role="remove"]:after {
+ content: "x";
+ padding: 0px 2px;
+}
+.bootstrap-tagsinput .tag [data-role="remove"]:hover {
+ box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.2), 0 1px 2px rgba(0, 0, 0, 0.05);
+}
+.bootstrap-tagsinput .tag [data-role="remove"]:hover:active {
+ box-shadow: inset 0 3px 5px rgba(0, 0, 0, 0.125);
+}
diff --git a/library/bootstrap-tagsinput/bootstrap-tagsinput.js b/library/bootstrap-tagsinput/bootstrap-tagsinput.js
new file mode 100644
index 000000000..89cc3b5a4
--- /dev/null
+++ b/library/bootstrap-tagsinput/bootstrap-tagsinput.js
@@ -0,0 +1,643 @@
+(function ($) {
+ "use strict";
+
+ var defaultOptions = {
+ tagClass: function(item) {
+ return 'label label-info';
+ },
+ itemValue: function(item) {
+ return item ? item.toString() : item;
+ },
+ itemText: function(item) {
+ return this.itemValue(item);
+ },
+ freeInput: true,
+ addOnBlur: true,
+ maxTags: undefined,
+ maxChars: undefined,
+ confirmKeys: [13, 44],
+ onTagExists: function(item, $tag) {
+ $tag.hide().fadeIn();
+ },
+ trimValue: false,
+ allowDuplicates: false
+ };
+
+ /**
+ * Constructor function
+ */
+ function TagsInput(element, options) {
+ this.itemsArray = [];
+
+ this.$element = $(element);
+ this.$element.hide();
+
+ this.isSelect = (element.tagName === 'SELECT');
+ this.multiple = (this.isSelect && element.hasAttribute('multiple'));
+ this.objectItems = options && options.itemValue;
+ this.placeholderText = element.hasAttribute('placeholder') ? this.$element.attr('placeholder') : '';
+ this.inputSize = Math.max(1, this.placeholderText.length);
+
+ this.$container = $('<div class="bootstrap-tagsinput"></div>');
+ this.$input = $('<input type="text" placeholder="' + this.placeholderText + '"/>').appendTo(this.$container);
+
+ this.$element.after(this.$container);
+
+ var inputWidth = (this.inputSize < 3 ? 3 : this.inputSize) + "em";
+ this.$input.get(0).style.cssText = "width: " + inputWidth + " !important;";
+ this.build(options);
+ }
+
+ TagsInput.prototype = {
+ constructor: TagsInput,
+
+ /**
+ * Adds the given item as a new tag. Pass true to dontPushVal to prevent
+ * updating the elements val()
+ */
+ add: function(item, dontPushVal) {
+ var self = this;
+
+ if (self.options.maxTags && self.itemsArray.length >= self.options.maxTags)
+ return;
+
+ // Ignore falsey values, except false
+ if (item !== false && !item)
+ return;
+
+ // Trim value
+ if (typeof item === "string" && self.options.trimValue) {
+ item = $.trim(item);
+ }
+
+ // Throw an error when trying to add an object while the itemValue option was not set
+ if (typeof item === "object" && !self.objectItems)
+ throw("Can't add objects when itemValue option is not set");
+
+ // Ignore strings only containg whitespace
+ if (item.toString().match(/^\s*$/))
+ return;
+
+ // If SELECT but not multiple, remove current tag
+ if (self.isSelect && !self.multiple && self.itemsArray.length > 0)
+ self.remove(self.itemsArray[0]);
+
+ if (typeof item === "string" && this.$element[0].tagName === 'INPUT') {
+ var items = item.split(',');
+ if (items.length > 1) {
+ for (var i = 0; i < items.length; i++) {
+ this.add(items[i], true);
+ }
+
+ if (!dontPushVal)
+ self.pushVal();
+ return;
+ }
+ }
+
+ // raise beforeItemAdd arg
+ var beforeItemAddEvent = $.Event('beforeItemAdd', { item: item, cancel: false });
+ self.$element.trigger(beforeItemAddEvent);
+ if (beforeItemAddEvent.cancel)
+ return;
+
+ item = beforeItemAddEvent.item
+
+ var itemValue = self.options.itemValue(item),
+ itemText = self.options.itemText(item),
+ tagClass = self.options.tagClass(item);
+
+ // Ignore items allready added
+ var existing = $.grep(self.itemsArray, function(item) { return self.options.itemValue(item) === itemValue; } )[0];
+ if (existing && !self.options.allowDuplicates) {
+ // Invoke onTagExists
+ if (self.options.onTagExists) {
+ var $existingTag = $(".tag", self.$container).filter(function() { return $(this).data("item") === existing; });
+ self.options.onTagExists(item, $existingTag);
+ }
+ return;
+ }
+
+ // if length greater than limit
+ if (self.items().toString().length + item.length + 1 > self.options.maxInputLength)
+ return;
+
+ // register item in internal array and map
+ self.itemsArray.push(item);
+
+ //remove placeholder if there is an item, restore if no item(s)
+ if (self.itemsArray.length)
+ self.$input.attr('placeholder', '');
+ else
+ self.$input.attr('placeholder', self.placeholderText);
+
+ // add a tag element
+ var $tag = $('<span class="tag ' + htmlEncode(tagClass) + '">' + htmlEncode(itemText) + '<span data-role="remove"></span></span>');
+ $tag.data('item', item);
+ self.findInputWrapper().before($tag);
+ $tag.after(' ');
+
+ // add <option /> if item represents a value not present in one of the <select />'s options
+ if (self.isSelect && !$('option[value="' + encodeURIComponent(itemValue) + '"]',self.$element)[0]) {
+ var $option = $('<option selected>' + htmlEncode(itemText) + '</option>');
+ $option.data('item', item);
+ $option.attr('value', itemValue);
+ self.$element.append($option);
+ }
+
+ //remove placeholder if there is an item, restore if no item(s)
+ if (self.itemsArray.length)
+ self.$input.attr('placeholder', '');
+ else
+ self.$input.attr('placeholder', self.placeholderText);
+
+ if (!dontPushVal)
+ self.pushVal();
+
+ // Add class when reached maxTags
+ if (self.options.maxTags === self.itemsArray.length || self.items().toString().length === self.options.maxInputLength)
+ self.$container.addClass('bootstrap-tagsinput-max');
+
+ self.$element.trigger($.Event('itemAdded', { item: item }));
+ },
+
+ /**
+ * Removes the given item. Pass true to dontPushVal to prevent updating the
+ * elements val()
+ */
+ remove: function(item, dontPushVal) {
+ var self = this;
+
+ if (self.objectItems) {
+ if (typeof item === "object")
+ item = $.grep(self.itemsArray, function(other) { return self.options.itemValue(other) == self.options.itemValue(item); } );
+ else
+ item = $.grep(self.itemsArray, function(other) { return self.options.itemValue(other) == item; } );
+
+ item = item[item.length-1];
+ }
+
+ if (item) {
+ var beforeItemRemoveEvent = $.Event('beforeItemRemove', { item: item, cancel: false });
+ self.$element.trigger(beforeItemRemoveEvent);
+ if (beforeItemRemoveEvent.cancel)
+ return;
+
+ $('.tag', self.$container).filter(function() { return $(this).data('item') === item; }).remove();
+ $('option', self.$element).filter(function() { return $(this).data('item') === item; }).remove();
+ if($.inArray(item, self.itemsArray) !== -1)
+ self.itemsArray.splice($.inArray(item, self.itemsArray), 1);
+ }
+
+ //remove placeholder if there is an item, restore if no item(s)
+ if (self.itemsArray.length)
+ self.$input.attr('placeholder', '');
+ else
+ self.$input.attr('placeholder', self.placeholderText);
+
+ if (!dontPushVal)
+ self.pushVal();
+
+ // Remove class when reached maxTags
+ if (self.options.maxTags > self.itemsArray.length)
+ self.$container.removeClass('bootstrap-tagsinput-max');
+
+ self.$element.trigger($.Event('itemRemoved', { item: item }));
+ },
+
+ /**
+ * Removes all items
+ */
+ removeAll: function() {
+ var self = this;
+
+ $('.tag', self.$container).remove();
+ $('option', self.$element).remove();
+
+ while(self.itemsArray.length > 0)
+ self.itemsArray.pop();
+
+ //remove placeholder if there is an item, restore if no item(s)
+ if (self.itemsArray.length)
+ self.$input.attr('placeholder', '');
+ else
+ self.$input.attr('placeholder', self.placeholderText);
+
+ self.pushVal();
+ },
+
+ /**
+ * Refreshes the tags so they match the text/value of their corresponding
+ * item.
+ */
+ refresh: function() {
+ var self = this;
+ $('.tag', self.$container).each(function() {
+ var $tag = $(this),
+ item = $tag.data('item'),
+ itemValue = self.options.itemValue(item),
+ itemText = self.options.itemText(item),
+ tagClass = self.options.tagClass(item);
+
+ // Update tag's class and inner text
+ $tag.attr('class', null);
+ $tag.addClass('tag ' + htmlEncode(tagClass));
+ $tag.contents().filter(function() {
+ return this.nodeType == 3;
+ })[0].nodeValue = htmlEncode(itemText);
+
+ if (self.isSelect) {
+ var option = $('option', self.$element).filter(function() { return $(this).data('item') === item; });
+ option.attr('value', itemValue);
+ }
+ });
+ },
+
+ /**
+ * Returns the items added as tags
+ */
+ items: function() {
+ return this.itemsArray;
+ },
+
+ /**
+ * Assembly value by retrieving the value of each item, and set it on the
+ * element.
+ */
+ pushVal: function() {
+ var self = this,
+ val = $.map(self.items(), function(item) {
+ return self.options.itemValue(item).toString();
+ });
+
+ self.$element.val(val, true).trigger('change');
+ },
+
+ /**
+ * Initializes the tags input behaviour on the element
+ */
+ build: function(options) {
+ var self = this;
+
+ self.options = $.extend({}, defaultOptions, options);
+ // When itemValue is set, freeInput should always be false
+ if (self.objectItems)
+ self.options.freeInput = false;
+
+ makeOptionItemFunction(self.options, 'itemValue');
+ makeOptionItemFunction(self.options, 'itemText');
+ makeOptionFunction(self.options, 'tagClass');
+
+ // Typeahead Bootstrap version 2.3.2
+ if (self.options.typeahead) {
+ var typeahead = self.options.typeahead || {};
+
+ makeOptionFunction(typeahead, 'source');
+
+ self.$input.typeahead($.extend({}, typeahead, {
+ source: function (query, process) {
+ function processItems(items) {
+ var texts = [];
+
+ for (var i = 0; i < items.length; i++) {
+ var text = self.options.itemText(items[i]);
+ map[text] = items[i];
+ texts.push(text);
+ }
+ process(texts);
+ }
+
+ this.map = {};
+ var map = this.map,
+ data = typeahead.source(query);
+
+ if ($.isFunction(data.success)) {
+ // support for Angular callbacks
+ data.success(processItems);
+ } else if ($.isFunction(data.then)) {
+ // support for Angular promises
+ data.then(processItems);
+ } else {
+ // support for functions and jquery promises
+ $.when(data)
+ .then(processItems);
+ }
+ },
+ updater: function (text) {
+ self.add(this.map[text]);
+ },
+ matcher: function (text) {
+ return (text.toLowerCase().indexOf(this.query.trim().toLowerCase()) !== -1);
+ },
+ sorter: function (texts) {
+ return texts.sort();
+ },
+ highlighter: function (text) {
+ var regex = new RegExp( '(' + this.query + ')', 'gi' );
+ return text.replace( regex, "<strong>$1</strong>" );
+ }
+ }));
+ }
+
+ // typeahead.js
+ if (self.options.typeaheadjs) {
+ var typeaheadjs = self.options.typeaheadjs || {};
+
+ self.$input.typeahead(null, typeaheadjs).on('typeahead:selected', $.proxy(function (obj, datum) {
+ if (typeaheadjs.valueKey)
+ self.add(datum[typeaheadjs.valueKey]);
+ else
+ self.add(datum);
+ self.$input.typeahead('val', '');
+ }, self));
+ }
+
+ self.$container.on('click', $.proxy(function(event) {
+ if (! self.$element.attr('disabled')) {
+ self.$input.removeAttr('disabled');
+ }
+ self.$input.focus();
+ }, self));
+
+ if (self.options.addOnBlur && self.options.freeInput) {
+ self.$input.on('focusout', $.proxy(function(event) {
+ // HACK: only process on focusout when no typeahead opened, to
+ // avoid adding the typeahead text as tag
+ if ($('.typeahead, .twitter-typeahead', self.$container).length === 0) {
+ self.add(self.$input.val());
+ self.$input.val('');
+ }
+ }, self));
+ }
+
+
+ self.$container.on('keydown', 'input', $.proxy(function(event) {
+ var $input = $(event.target),
+ $inputWrapper = self.findInputWrapper();
+
+ if (self.$element.attr('disabled')) {
+ self.$input.attr('disabled', 'disabled');
+ return;
+ }
+
+ switch (event.which) {
+ // BACKSPACE
+ case 8:
+ if (doGetCaretPosition($input[0]) === 0) {
+ var prev = $inputWrapper.prev();
+ if (prev) {
+ self.remove(prev.data('item'));
+ }
+ }
+ break;
+
+ // DELETE
+ case 46:
+ if (doGetCaretPosition($input[0]) === 0) {
+ var next = $inputWrapper.next();
+ if (next) {
+ self.remove(next.data('item'));
+ }
+ }
+ break;
+
+ // LEFT ARROW
+ case 37:
+ // Try to move the input before the previous tag
+ var $prevTag = $inputWrapper.prev();
+ if ($input.val().length === 0 && $prevTag[0]) {
+ $prevTag.before($inputWrapper);
+ $input.focus();
+ }
+ break;
+ // RIGHT ARROW
+ case 39:
+ // Try to move the input after the next tag
+ var $nextTag = $inputWrapper.next();
+ if ($input.val().length === 0 && $nextTag[0]) {
+ $nextTag.after($inputWrapper);
+ $input.focus();
+ }
+ break;
+ default:
+ // ignore
+ }
+
+ // Reset internal input's size
+ var textLength = $input.val().length,
+ wordSpace = Math.ceil(textLength / 5),
+ size = textLength + wordSpace + 1;
+ $input.attr('size', Math.max(this.inputSize, $input.val().length));
+ }, self));
+
+ self.$container.on('keypress', 'input', $.proxy(function(event) {
+ var $input = $(event.target);
+
+ if (self.$element.attr('disabled')) {
+ self.$input.attr('disabled', 'disabled');
+ return;
+ }
+
+ var text = $input.val(),
+ maxLengthReached = self.options.maxChars && text.length >= self.options.maxChars;
+ if (self.options.freeInput && (keyCombinationInList(event, self.options.confirmKeys) || maxLengthReached)) {
+ self.add(maxLengthReached ? text.substr(0, self.options.maxChars) : text);
+ $input.val('');
+ event.preventDefault();
+ }
+
+ // Reset internal input's size
+ var textLength = $input.val().length,
+ wordSpace = Math.ceil(textLength / 5),
+ size = textLength + wordSpace + 1;
+ $input.attr('size', Math.max(this.inputSize, $input.val().length));
+ }, self));
+
+ // Remove icon clicked
+ self.$container.on('click', '[data-role=remove]', $.proxy(function(event) {
+ if (self.$element.attr('disabled')) {
+ return;
+ }
+ self.remove($(event.target).closest('.tag').data('item'));
+ }, self));
+
+ // Only add existing value as tags when using strings as tags
+ if (self.options.itemValue === defaultOptions.itemValue) {
+ if (self.$element[0].tagName === 'INPUT') {
+ self.add(self.$element.val());
+ } else {
+ $('option', self.$element).each(function() {
+ self.add($(this).attr('value'), true);
+ });
+ }
+ }
+ },
+
+ /**
+ * Removes all tagsinput behaviour and unregsiter all event handlers
+ */
+ destroy: function() {
+ var self = this;
+
+ // Unbind events
+ self.$container.off('keypress', 'input');
+ self.$container.off('click', '[role=remove]');
+
+ self.$container.remove();
+ self.$element.removeData('tagsinput');
+ self.$element.show();
+ },
+
+ /**
+ * Sets focus on the tagsinput
+ */
+ focus: function() {
+ this.$input.focus();
+ },
+
+ /**
+ * Returns the internal input element
+ */
+ input: function() {
+ return this.$input;
+ },
+
+ /**
+ * Returns the element which is wrapped around the internal input. This
+ * is normally the $container, but typeahead.js moves the $input element.
+ */
+ findInputWrapper: function() {
+ var elt = this.$input[0],
+ container = this.$container[0];
+ while(elt && elt.parentNode !== container)
+ elt = elt.parentNode;
+
+ return $(elt);
+ }
+ };
+
+ /**
+ * Register JQuery plugin
+ */
+ $.fn.tagsinput = function(arg1, arg2) {
+ var results = [];
+
+ this.each(function() {
+ var tagsinput = $(this).data('tagsinput');
+ // Initialize a new tags input
+ if (!tagsinput) {
+ tagsinput = new TagsInput(this, arg1);
+ $(this).data('tagsinput', tagsinput);
+ results.push(tagsinput);
+
+ if (this.tagName === 'SELECT') {
+ $('option', $(this)).attr('selected', 'selected');
+ }
+
+ // Init tags from $(this).val()
+ $(this).val($(this).val());
+ } else if (!arg1 && !arg2) {
+ // tagsinput already exists
+ // no function, trying to init
+ results.push(tagsinput);
+ } else if(tagsinput[arg1] !== undefined) {
+ // Invoke function on existing tags input
+ var retVal = tagsinput[arg1](arg2);
+ if (retVal !== undefined)
+ results.push(retVal);
+ }
+ });
+
+ if ( typeof arg1 == 'string') {
+ // Return the results from the invoked function calls
+ return results.length > 1 ? results : results[0];
+ } else {
+ return results;
+ }
+ };
+
+ $.fn.tagsinput.Constructor = TagsInput;
+
+ /**
+ * Most options support both a string or number as well as a function as
+ * option value. This function makes sure that the option with the given
+ * key in the given options is wrapped in a function
+ */
+ function makeOptionItemFunction(options, key) {
+ if (typeof options[key] !== 'function') {
+ var propertyName = options[key];
+ options[key] = function(item) { return item[propertyName]; };
+ }
+ }
+ function makeOptionFunction(options, key) {
+ if (typeof options[key] !== 'function') {
+ var value = options[key];
+ options[key] = function() { return value; };
+ }
+ }
+ /**
+ * HtmlEncodes the given value
+ */
+ var htmlEncodeContainer = $('<div />');
+ function htmlEncode(value) {
+ if (value) {
+ return htmlEncodeContainer.text(value).html();
+ } else {
+ return '';
+ }
+ }
+
+ /**
+ * Returns the position of the caret in the given input field
+ * http://flightschool.acylt.com/devnotes/caret-position-woes/
+ */
+ function doGetCaretPosition(oField) {
+ var iCaretPos = 0;
+ if (document.selection) {
+ oField.focus ();
+ var oSel = document.selection.createRange();
+ oSel.moveStart ('character', -oField.value.length);
+ iCaretPos = oSel.text.length;
+ } else if (oField.selectionStart || oField.selectionStart == '0') {
+ iCaretPos = oField.selectionStart;
+ }
+ return (iCaretPos);
+ }
+
+ /**
+ * Returns boolean indicates whether user has pressed an expected key combination.
+ * @param object keyPressEvent: JavaScript event object, refer
+ * http://www.w3.org/TR/2003/WD-DOM-Level-3-Events-20030331/ecma-script-binding.html
+ * @param object lookupList: expected key combinations, as in:
+ * [13, {which: 188, shiftKey: true}]
+ */
+ function keyCombinationInList(keyPressEvent, lookupList) {
+ var found = false;
+ $.each(lookupList, function (index, keyCombination) {
+ if (typeof (keyCombination) === 'number' && keyPressEvent.which === keyCombination) {
+ found = true;
+ return false;
+ }
+
+ if (keyPressEvent.which === keyCombination.which) {
+ var alt = !keyCombination.hasOwnProperty('altKey') || keyPressEvent.altKey === keyCombination.altKey,
+ shift = !keyCombination.hasOwnProperty('shiftKey') || keyPressEvent.shiftKey === keyCombination.shiftKey,
+ ctrl = !keyCombination.hasOwnProperty('ctrlKey') || keyPressEvent.ctrlKey === keyCombination.ctrlKey;
+ if (alt && shift && ctrl) {
+ found = true;
+ return false;
+ }
+ }
+ });
+
+ return found;
+ }
+
+ /**
+ * Initialize tagsinput behaviour on inputs and selects which have
+ * data-role=tagsinput
+ */
+ $(function() {
+ $("input[data-role=tagsinput], select[multiple][data-role=tagsinput]").tagsinput();
+ });
+})(window.jQuery);
diff --git a/library/bootstrap/css/bootstrap-theme.css b/library/bootstrap/css/bootstrap-theme.css
index f860bbc06..c4cadf15e 100644
--- a/library/bootstrap/css/bootstrap-theme.css
+++ b/library/bootstrap/css/bootstrap-theme.css
@@ -1,5 +1,5 @@
/*!
- * Bootstrap v3.2.0 (http://getbootstrap.com)
+ * Bootstrap v3.3.1 (http://getbootstrap.com)
* Copyright 2011-2014 Twitter, Inc.
* Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)
*/
@@ -29,6 +29,14 @@
-webkit-box-shadow: inset 0 3px 5px rgba(0, 0, 0, .125);
box-shadow: inset 0 3px 5px rgba(0, 0, 0, .125);
}
+.btn-default .badge,
+.btn-primary .badge,
+.btn-success .badge,
+.btn-info .badge,
+.btn-warning .badge,
+.btn-danger .badge {
+ text-shadow: none;
+}
.btn:active,
.btn.active {
background-image: none;
@@ -61,28 +69,28 @@
background-image: none;
}
.btn-primary {
- background-image: -webkit-linear-gradient(top, #428bca 0%, #2d6ca2 100%);
- background-image: -o-linear-gradient(top, #428bca 0%, #2d6ca2 100%);
- background-image: -webkit-gradient(linear, left top, left bottom, from(#428bca), to(#2d6ca2));
- background-image: linear-gradient(to bottom, #428bca 0%, #2d6ca2 100%);
- filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff428bca', endColorstr='#ff2d6ca2', GradientType=0);
+ background-image: -webkit-linear-gradient(top, #337ab7 0%, #265a88 100%);
+ background-image: -o-linear-gradient(top, #337ab7 0%, #265a88 100%);
+ background-image: -webkit-gradient(linear, left top, left bottom, from(#337ab7), to(#265a88));
+ background-image: linear-gradient(to bottom, #337ab7 0%, #265a88 100%);
+ filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff337ab7', endColorstr='#ff265a88', GradientType=0);
filter: progid:DXImageTransform.Microsoft.gradient(enabled = false);
background-repeat: repeat-x;
- border-color: #2b669a;
+ border-color: #245580;
}
.btn-primary:hover,
.btn-primary:focus {
- background-color: #2d6ca2;
+ background-color: #265a88;
background-position: 0 -15px;
}
.btn-primary:active,
.btn-primary.active {
- background-color: #2d6ca2;
- border-color: #2b669a;
+ background-color: #265a88;
+ border-color: #245580;
}
.btn-primary:disabled,
.btn-primary[disabled] {
- background-color: #2d6ca2;
+ background-color: #265a88;
background-image: none;
}
.btn-success {
@@ -203,12 +211,12 @@
.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: -o-linear-gradient(top, #428bca 0%, #357ebd 100%);
- background-image: -webkit-gradient(linear, left top, left bottom, from(#428bca), to(#357ebd));
- background-image: linear-gradient(to bottom, #428bca 0%, #357ebd 100%);
- filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff428bca', endColorstr='#ff357ebd', GradientType=0);
+ background-color: #2e6da4;
+ background-image: -webkit-linear-gradient(top, #337ab7 0%, #2e6da4 100%);
+ background-image: -o-linear-gradient(top, #337ab7 0%, #2e6da4 100%);
+ background-image: -webkit-gradient(linear, left top, left bottom, from(#337ab7), to(#2e6da4));
+ background-image: linear-gradient(to bottom, #337ab7 0%, #2e6da4 100%);
+ filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff337ab7', endColorstr='#ff2e6da4', GradientType=0);
background-repeat: repeat-x;
}
.navbar-default {
@@ -223,12 +231,13 @@
-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 > .open > a,
.navbar-default .navbar-nav > .active > a {
- background-image: -webkit-linear-gradient(top, #ebebeb 0%, #f3f3f3 100%);
- background-image: -o-linear-gradient(top, #ebebeb 0%, #f3f3f3 100%);
- background-image: -webkit-gradient(linear, left top, left bottom, from(#ebebeb), to(#f3f3f3));
- background-image: linear-gradient(to bottom, #ebebeb 0%, #f3f3f3 100%);
- filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffebebeb', endColorstr='#fff3f3f3', GradientType=0);
+ background-image: -webkit-linear-gradient(top, #dbdbdb 0%, #e2e2e2 100%);
+ background-image: -o-linear-gradient(top, #dbdbdb 0%, #e2e2e2 100%);
+ background-image: -webkit-gradient(linear, left top, left bottom, from(#dbdbdb), to(#e2e2e2));
+ background-image: linear-gradient(to bottom, #dbdbdb 0%, #e2e2e2 100%);
+ filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffdbdbdb', endColorstr='#ffe2e2e2', GradientType=0);
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);
@@ -246,12 +255,13 @@
filter: progid:DXImageTransform.Microsoft.gradient(enabled = false);
background-repeat: repeat-x;
}
+.navbar-inverse .navbar-nav > .open > a,
.navbar-inverse .navbar-nav > .active > a {
- background-image: -webkit-linear-gradient(top, #222 0%, #282828 100%);
- background-image: -o-linear-gradient(top, #222 0%, #282828 100%);
- background-image: -webkit-gradient(linear, left top, left bottom, from(#222), to(#282828));
- background-image: linear-gradient(to bottom, #222 0%, #282828 100%);
- filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff222222', endColorstr='#ff282828', GradientType=0);
+ background-image: -webkit-linear-gradient(top, #080808 0%, #0f0f0f 100%);
+ background-image: -o-linear-gradient(top, #080808 0%, #0f0f0f 100%);
+ background-image: -webkit-gradient(linear, left top, left bottom, from(#080808), to(#0f0f0f));
+ background-image: linear-gradient(to bottom, #080808 0%, #0f0f0f 100%);
+ filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff080808', endColorstr='#ff0f0f0f', GradientType=0);
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);
@@ -265,6 +275,19 @@
.navbar-fixed-bottom {
border-radius: 0;
}
+@media (max-width: 767px) {
+ .navbar .navbar-nav .open .dropdown-menu > .active > a,
+ .navbar .navbar-nav .open .dropdown-menu > .active > a:hover,
+ .navbar .navbar-nav .open .dropdown-menu > .active > a:focus {
+ color: #fff;
+ background-image: -webkit-linear-gradient(top, #337ab7 0%, #2e6da4 100%);
+ background-image: -o-linear-gradient(top, #337ab7 0%, #2e6da4 100%);
+ background-image: -webkit-gradient(linear, left top, left bottom, from(#337ab7), to(#2e6da4));
+ background-image: linear-gradient(to bottom, #337ab7 0%, #2e6da4 100%);
+ filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff337ab7', endColorstr='#ff2e6da4', GradientType=0);
+ background-repeat: repeat-x;
+ }
+}
.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);
@@ -315,11 +338,11 @@
background-repeat: repeat-x;
}
.progress-bar {
- background-image: -webkit-linear-gradient(top, #428bca 0%, #3071a9 100%);
- background-image: -o-linear-gradient(top, #428bca 0%, #3071a9 100%);
- background-image: -webkit-gradient(linear, left top, left bottom, from(#428bca), to(#3071a9));
- background-image: linear-gradient(to bottom, #428bca 0%, #3071a9 100%);
- filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff428bca', endColorstr='#ff3071a9', GradientType=0);
+ background-image: -webkit-linear-gradient(top, #337ab7 0%, #286090 100%);
+ background-image: -o-linear-gradient(top, #337ab7 0%, #286090 100%);
+ background-image: -webkit-gradient(linear, left top, left bottom, from(#337ab7), to(#286090));
+ background-image: linear-gradient(to bottom, #337ab7 0%, #286090 100%);
+ filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff337ab7', endColorstr='#ff286090', GradientType=0);
background-repeat: repeat-x;
}
.progress-bar-success {
@@ -367,14 +390,19 @@
.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: -o-linear-gradient(top, #428bca 0%, #3278b3 100%);
- background-image: -webkit-gradient(linear, left top, left bottom, from(#428bca), to(#3278b3));
- background-image: linear-gradient(to bottom, #428bca 0%, #3278b3 100%);
- filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff428bca', endColorstr='#ff3278b3', GradientType=0);
+ text-shadow: 0 -1px 0 #286090;
+ background-image: -webkit-linear-gradient(top, #337ab7 0%, #2b669a 100%);
+ background-image: -o-linear-gradient(top, #337ab7 0%, #2b669a 100%);
+ background-image: -webkit-gradient(linear, left top, left bottom, from(#337ab7), to(#2b669a));
+ background-image: linear-gradient(to bottom, #337ab7 0%, #2b669a 100%);
+ filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff337ab7', endColorstr='#ff2b669a', GradientType=0);
background-repeat: repeat-x;
- border-color: #3278b3;
+ border-color: #2b669a;
+}
+.list-group-item.active .badge,
+.list-group-item.active:hover .badge,
+.list-group-item.active:focus .badge {
+ text-shadow: none;
}
.panel {
-webkit-box-shadow: 0 1px 2px rgba(0, 0, 0, .05);
@@ -389,11 +417,11 @@
background-repeat: repeat-x;
}
.panel-primary > .panel-heading {
- background-image: -webkit-linear-gradient(top, #428bca 0%, #357ebd 100%);
- background-image: -o-linear-gradient(top, #428bca 0%, #357ebd 100%);
- background-image: -webkit-gradient(linear, left top, left bottom, from(#428bca), to(#357ebd));
- background-image: linear-gradient(to bottom, #428bca 0%, #357ebd 100%);
- filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff428bca', endColorstr='#ff357ebd', GradientType=0);
+ background-image: -webkit-linear-gradient(top, #337ab7 0%, #2e6da4 100%);
+ background-image: -o-linear-gradient(top, #337ab7 0%, #2e6da4 100%);
+ background-image: -webkit-gradient(linear, left top, left bottom, from(#337ab7), to(#2e6da4));
+ background-image: linear-gradient(to bottom, #337ab7 0%, #2e6da4 100%);
+ filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff337ab7', endColorstr='#ff2e6da4', GradientType=0);
background-repeat: repeat-x;
}
.panel-success > .panel-heading {
diff --git a/library/bootstrap/css/bootstrap-theme.min.css b/library/bootstrap/css/bootstrap-theme.min.css
index 2e97597c8..4c3e7bad7 100644
--- a/library/bootstrap/css/bootstrap-theme.min.css
+++ b/library/bootstrap/css/bootstrap-theme.min.css
@@ -1,5 +1,5 @@
/*!
- * Bootstrap v3.2.0 (http://getbootstrap.com)
+ * Bootstrap v3.3.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,.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{text-shadow:0 1px 0 #fff;background-image:-webkit-linear-gradient(top,#fff 0,#e0e0e0 100%);background-image:-o-linear-gradient(top,#fff 0,#e0e0e0 100%);background-image:-webkit-gradient(linear,left top,left bottom,from(#fff),to(#e0e0e0));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}.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-default:disabled,.btn-default[disabled]{background-color:#e0e0e0;background-image:none}.btn-primary{background-image:-webkit-linear-gradient(top,#428bca 0,#2d6ca2 100%);background-image:-o-linear-gradient(top,#428bca 0,#2d6ca2 100%);background-image:-webkit-gradient(linear,left top,left bottom,from(#428bca),to(#2d6ca2));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-primary:disabled,.btn-primary[disabled]{background-color:#2d6ca2;background-image:none}.btn-success{background-image:-webkit-linear-gradient(top,#5cb85c 0,#419641 100%);background-image:-o-linear-gradient(top,#5cb85c 0,#419641 100%);background-image:-webkit-gradient(linear,left top,left bottom,from(#5cb85c),to(#419641));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-success:disabled,.btn-success[disabled]{background-color:#419641;background-image:none}.btn-info{background-image:-webkit-linear-gradient(top,#5bc0de 0,#2aabd2 100%);background-image:-o-linear-gradient(top,#5bc0de 0,#2aabd2 100%);background-image:-webkit-gradient(linear,left top,left bottom,from(#5bc0de),to(#2aabd2));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-info:disabled,.btn-info[disabled]{background-color:#2aabd2;background-image:none}.btn-warning{background-image:-webkit-linear-gradient(top,#f0ad4e 0,#eb9316 100%);background-image:-o-linear-gradient(top,#f0ad4e 0,#eb9316 100%);background-image:-webkit-gradient(linear,left top,left bottom,from(#f0ad4e),to(#eb9316));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-warning:disabled,.btn-warning[disabled]{background-color:#eb9316;background-image:none}.btn-danger{background-image:-webkit-linear-gradient(top,#d9534f 0,#c12e2a 100%);background-image:-o-linear-gradient(top,#d9534f 0,#c12e2a 100%);background-image:-webkit-gradient(linear,left top,left bottom,from(#d9534f),to(#c12e2a));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}.btn-danger:disabled,.btn-danger[disabled]{background-color:#c12e2a;background-image:none}.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-color:#e8e8e8;background-image:-webkit-linear-gradient(top,#f5f5f5 0,#e8e8e8 100%);background-image:-o-linear-gradient(top,#f5f5f5 0,#e8e8e8 100%);background-image:-webkit-gradient(linear,left top,left bottom,from(#f5f5f5),to(#e8e8e8));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:-o-linear-gradient(top,#428bca 0,#357ebd 100%);background-image:-webkit-gradient(linear,left top,left bottom,from(#428bca),to(#357ebd));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,#fff 0,#f8f8f8 100%);background-image:-o-linear-gradient(top,#fff 0,#f8f8f8 100%);background-image:-webkit-gradient(linear,left top,left bottom,from(#fff),to(#f8f8f8));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;-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:-o-linear-gradient(top,#ebebeb 0,#f3f3f3 100%);background-image:-webkit-gradient(linear,left top,left bottom,from(#ebebeb),to(#f3f3f3));background-image:linear-gradient(to bottom,#ebebeb 0,#f3f3f3 100%);filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffebebeb', endColorstr='#fff3f3f3', GradientType=0);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,.25)}.navbar-inverse{background-image:-webkit-linear-gradient(top,#3c3c3c 0,#222 100%);background-image:-o-linear-gradient(top,#3c3c3c 0,#222 100%);background-image:-webkit-gradient(linear,left top,left bottom,from(#3c3c3c),to(#222));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);background-repeat:repeat-x}.navbar-inverse .navbar-nav>.active>a{background-image:-webkit-linear-gradient(top,#222 0,#282828 100%);background-image:-o-linear-gradient(top,#222 0,#282828 100%);background-image:-webkit-gradient(linear,left top,left bottom,from(#222),to(#282828));background-image:linear-gradient(to bottom,#222 0,#282828 100%);filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff222222', endColorstr='#ff282828', GradientType=0);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,.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:-o-linear-gradient(top,#dff0d8 0,#c8e5bc 100%);background-image:-webkit-gradient(linear,left top,left bottom,from(#dff0d8),to(#c8e5bc));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}.alert-info{background-image:-webkit-linear-gradient(top,#d9edf7 0,#b9def0 100%);background-image:-o-linear-gradient(top,#d9edf7 0,#b9def0 100%);background-image:-webkit-gradient(linear,left top,left bottom,from(#d9edf7),to(#b9def0));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}.alert-warning{background-image:-webkit-linear-gradient(top,#fcf8e3 0,#f8efc0 100%);background-image:-o-linear-gradient(top,#fcf8e3 0,#f8efc0 100%);background-image:-webkit-gradient(linear,left top,left bottom,from(#fcf8e3),to(#f8efc0));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}.alert-danger{background-image:-webkit-linear-gradient(top,#f2dede 0,#e7c3c3 100%);background-image:-o-linear-gradient(top,#f2dede 0,#e7c3c3 100%);background-image:-webkit-gradient(linear,left top,left bottom,from(#f2dede),to(#e7c3c3));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}.progress{background-image:-webkit-linear-gradient(top,#ebebeb 0,#f5f5f5 100%);background-image:-o-linear-gradient(top,#ebebeb 0,#f5f5f5 100%);background-image:-webkit-gradient(linear,left top,left bottom,from(#ebebeb),to(#f5f5f5));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:-o-linear-gradient(top,#428bca 0,#3071a9 100%);background-image:-webkit-gradient(linear,left top,left bottom,from(#428bca),to(#3071a9));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:-o-linear-gradient(top,#5cb85c 0,#449d44 100%);background-image:-webkit-gradient(linear,left top,left bottom,from(#5cb85c),to(#449d44));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:-o-linear-gradient(top,#5bc0de 0,#31b0d5 100%);background-image:-webkit-gradient(linear,left top,left bottom,from(#5bc0de),to(#31b0d5));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:-o-linear-gradient(top,#f0ad4e 0,#ec971f 100%);background-image:-webkit-gradient(linear,left top,left bottom,from(#f0ad4e),to(#ec971f));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:-o-linear-gradient(top,#d9534f 0,#c9302c 100%);background-image:-webkit-gradient(linear,left top,left bottom,from(#d9534f),to(#c9302c));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}.progress-bar-striped{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:-o-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)}.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:-o-linear-gradient(top,#428bca 0,#3278b3 100%);background-image:-webkit-gradient(linear,left top,left bottom,from(#428bca),to(#3278b3));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}.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:-o-linear-gradient(top,#f5f5f5 0,#e8e8e8 100%);background-image:-webkit-gradient(linear,left top,left bottom,from(#f5f5f5),to(#e8e8e8));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:-o-linear-gradient(top,#428bca 0,#357ebd 100%);background-image:-webkit-gradient(linear,left top,left bottom,from(#428bca),to(#357ebd));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:-o-linear-gradient(top,#dff0d8 0,#d0e9c6 100%);background-image:-webkit-gradient(linear,left top,left bottom,from(#dff0d8),to(#d0e9c6));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:-o-linear-gradient(top,#d9edf7 0,#c4e3f3 100%);background-image:-webkit-gradient(linear,left top,left bottom,from(#d9edf7),to(#c4e3f3));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:-o-linear-gradient(top,#fcf8e3 0,#faf2cc 100%);background-image:-webkit-gradient(linear,left top,left bottom,from(#fcf8e3),to(#faf2cc));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:-o-linear-gradient(top,#f2dede 0,#ebcccc 100%);background-image:-webkit-gradient(linear,left top,left bottom,from(#f2dede),to(#ebcccc));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:-o-linear-gradient(top,#e8e8e8 0,#f5f5f5 100%);background-image:-webkit-gradient(linear,left top,left bottom,from(#e8e8e8),to(#f5f5f5));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;-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
+ */.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-default .badge,.btn-primary .badge,.btn-success .badge,.btn-info .badge,.btn-warning .badge,.btn-danger .badge{text-shadow:none}.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:-o-linear-gradient(top,#fff 0,#e0e0e0 100%);background-image:-webkit-gradient(linear,left top,left bottom,from(#fff),to(#e0e0e0));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}.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-default:disabled,.btn-default[disabled]{background-color:#e0e0e0;background-image:none}.btn-primary{background-image:-webkit-linear-gradient(top,#337ab7 0,#265a88 100%);background-image:-o-linear-gradient(top,#337ab7 0,#265a88 100%);background-image:-webkit-gradient(linear,left top,left bottom,from(#337ab7),to(#265a88));background-image:linear-gradient(to bottom,#337ab7 0,#265a88 100%);filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff337ab7', endColorstr='#ff265a88', GradientType=0);filter:progid:DXImageTransform.Microsoft.gradient(enabled=false);background-repeat:repeat-x;border-color:#245580}.btn-primary:hover,.btn-primary:focus{background-color:#265a88;background-position:0 -15px}.btn-primary:active,.btn-primary.active{background-color:#265a88;border-color:#245580}.btn-primary:disabled,.btn-primary[disabled]{background-color:#265a88;background-image:none}.btn-success{background-image:-webkit-linear-gradient(top,#5cb85c 0,#419641 100%);background-image:-o-linear-gradient(top,#5cb85c 0,#419641 100%);background-image:-webkit-gradient(linear,left top,left bottom,from(#5cb85c),to(#419641));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-success:disabled,.btn-success[disabled]{background-color:#419641;background-image:none}.btn-info{background-image:-webkit-linear-gradient(top,#5bc0de 0,#2aabd2 100%);background-image:-o-linear-gradient(top,#5bc0de 0,#2aabd2 100%);background-image:-webkit-gradient(linear,left top,left bottom,from(#5bc0de),to(#2aabd2));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-info:disabled,.btn-info[disabled]{background-color:#2aabd2;background-image:none}.btn-warning{background-image:-webkit-linear-gradient(top,#f0ad4e 0,#eb9316 100%);background-image:-o-linear-gradient(top,#f0ad4e 0,#eb9316 100%);background-image:-webkit-gradient(linear,left top,left bottom,from(#f0ad4e),to(#eb9316));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-warning:disabled,.btn-warning[disabled]{background-color:#eb9316;background-image:none}.btn-danger{background-image:-webkit-linear-gradient(top,#d9534f 0,#c12e2a 100%);background-image:-o-linear-gradient(top,#d9534f 0,#c12e2a 100%);background-image:-webkit-gradient(linear,left top,left bottom,from(#d9534f),to(#c12e2a));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}.btn-danger:disabled,.btn-danger[disabled]{background-color:#c12e2a;background-image:none}.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-color:#e8e8e8;background-image:-webkit-linear-gradient(top,#f5f5f5 0,#e8e8e8 100%);background-image:-o-linear-gradient(top,#f5f5f5 0,#e8e8e8 100%);background-image:-webkit-gradient(linear,left top,left bottom,from(#f5f5f5),to(#e8e8e8));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:#2e6da4;background-image:-webkit-linear-gradient(top,#337ab7 0,#2e6da4 100%);background-image:-o-linear-gradient(top,#337ab7 0,#2e6da4 100%);background-image:-webkit-gradient(linear,left top,left bottom,from(#337ab7),to(#2e6da4));background-image:linear-gradient(to bottom,#337ab7 0,#2e6da4 100%);filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff337ab7', endColorstr='#ff2e6da4', GradientType=0);background-repeat:repeat-x}.navbar-default{background-image:-webkit-linear-gradient(top,#fff 0,#f8f8f8 100%);background-image:-o-linear-gradient(top,#fff 0,#f8f8f8 100%);background-image:-webkit-gradient(linear,left top,left bottom,from(#fff),to(#f8f8f8));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;-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>.open>a,.navbar-default .navbar-nav>.active>a{background-image:-webkit-linear-gradient(top,#dbdbdb 0,#e2e2e2 100%);background-image:-o-linear-gradient(top,#dbdbdb 0,#e2e2e2 100%);background-image:-webkit-gradient(linear,left top,left bottom,from(#dbdbdb),to(#e2e2e2));background-image:linear-gradient(to bottom,#dbdbdb 0,#e2e2e2 100%);filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffdbdbdb', endColorstr='#ffe2e2e2', GradientType=0);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,.25)}.navbar-inverse{background-image:-webkit-linear-gradient(top,#3c3c3c 0,#222 100%);background-image:-o-linear-gradient(top,#3c3c3c 0,#222 100%);background-image:-webkit-gradient(linear,left top,left bottom,from(#3c3c3c),to(#222));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);background-repeat:repeat-x}.navbar-inverse .navbar-nav>.open>a,.navbar-inverse .navbar-nav>.active>a{background-image:-webkit-linear-gradient(top,#080808 0,#0f0f0f 100%);background-image:-o-linear-gradient(top,#080808 0,#0f0f0f 100%);background-image:-webkit-gradient(linear,left top,left bottom,from(#080808),to(#0f0f0f));background-image:linear-gradient(to bottom,#080808 0,#0f0f0f 100%);filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff080808', endColorstr='#ff0f0f0f', GradientType=0);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,.25)}.navbar-static-top,.navbar-fixed-top,.navbar-fixed-bottom{border-radius:0}@media (max-width:767px){.navbar .navbar-nav .open .dropdown-menu>.active>a,.navbar .navbar-nav .open .dropdown-menu>.active>a:hover,.navbar .navbar-nav .open .dropdown-menu>.active>a:focus{color:#fff;background-image:-webkit-linear-gradient(top,#337ab7 0,#2e6da4 100%);background-image:-o-linear-gradient(top,#337ab7 0,#2e6da4 100%);background-image:-webkit-gradient(linear,left top,left bottom,from(#337ab7),to(#2e6da4));background-image:linear-gradient(to bottom,#337ab7 0,#2e6da4 100%);filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff337ab7', endColorstr='#ff2e6da4', GradientType=0);background-repeat:repeat-x}}.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:-o-linear-gradient(top,#dff0d8 0,#c8e5bc 100%);background-image:-webkit-gradient(linear,left top,left bottom,from(#dff0d8),to(#c8e5bc));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}.alert-info{background-image:-webkit-linear-gradient(top,#d9edf7 0,#b9def0 100%);background-image:-o-linear-gradient(top,#d9edf7 0,#b9def0 100%);background-image:-webkit-gradient(linear,left top,left bottom,from(#d9edf7),to(#b9def0));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}.alert-warning{background-image:-webkit-linear-gradient(top,#fcf8e3 0,#f8efc0 100%);background-image:-o-linear-gradient(top,#fcf8e3 0,#f8efc0 100%);background-image:-webkit-gradient(linear,left top,left bottom,from(#fcf8e3),to(#f8efc0));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}.alert-danger{background-image:-webkit-linear-gradient(top,#f2dede 0,#e7c3c3 100%);background-image:-o-linear-gradient(top,#f2dede 0,#e7c3c3 100%);background-image:-webkit-gradient(linear,left top,left bottom,from(#f2dede),to(#e7c3c3));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}.progress{background-image:-webkit-linear-gradient(top,#ebebeb 0,#f5f5f5 100%);background-image:-o-linear-gradient(top,#ebebeb 0,#f5f5f5 100%);background-image:-webkit-gradient(linear,left top,left bottom,from(#ebebeb),to(#f5f5f5));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,#337ab7 0,#286090 100%);background-image:-o-linear-gradient(top,#337ab7 0,#286090 100%);background-image:-webkit-gradient(linear,left top,left bottom,from(#337ab7),to(#286090));background-image:linear-gradient(to bottom,#337ab7 0,#286090 100%);filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff337ab7', endColorstr='#ff286090', GradientType=0);background-repeat:repeat-x}.progress-bar-success{background-image:-webkit-linear-gradient(top,#5cb85c 0,#449d44 100%);background-image:-o-linear-gradient(top,#5cb85c 0,#449d44 100%);background-image:-webkit-gradient(linear,left top,left bottom,from(#5cb85c),to(#449d44));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:-o-linear-gradient(top,#5bc0de 0,#31b0d5 100%);background-image:-webkit-gradient(linear,left top,left bottom,from(#5bc0de),to(#31b0d5));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:-o-linear-gradient(top,#f0ad4e 0,#ec971f 100%);background-image:-webkit-gradient(linear,left top,left bottom,from(#f0ad4e),to(#ec971f));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:-o-linear-gradient(top,#d9534f 0,#c9302c 100%);background-image:-webkit-gradient(linear,left top,left bottom,from(#d9534f),to(#c9302c));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}.progress-bar-striped{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:-o-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)}.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 #286090;background-image:-webkit-linear-gradient(top,#337ab7 0,#2b669a 100%);background-image:-o-linear-gradient(top,#337ab7 0,#2b669a 100%);background-image:-webkit-gradient(linear,left top,left bottom,from(#337ab7),to(#2b669a));background-image:linear-gradient(to bottom,#337ab7 0,#2b669a 100%);filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff337ab7', endColorstr='#ff2b669a', GradientType=0);background-repeat:repeat-x;border-color:#2b669a}.list-group-item.active .badge,.list-group-item.active:hover .badge,.list-group-item.active:focus .badge{text-shadow:none}.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:-o-linear-gradient(top,#f5f5f5 0,#e8e8e8 100%);background-image:-webkit-gradient(linear,left top,left bottom,from(#f5f5f5),to(#e8e8e8));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,#337ab7 0,#2e6da4 100%);background-image:-o-linear-gradient(top,#337ab7 0,#2e6da4 100%);background-image:-webkit-gradient(linear,left top,left bottom,from(#337ab7),to(#2e6da4));background-image:linear-gradient(to bottom,#337ab7 0,#2e6da4 100%);filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff337ab7', endColorstr='#ff2e6da4', GradientType=0);background-repeat:repeat-x}.panel-success>.panel-heading{background-image:-webkit-linear-gradient(top,#dff0d8 0,#d0e9c6 100%);background-image:-o-linear-gradient(top,#dff0d8 0,#d0e9c6 100%);background-image:-webkit-gradient(linear,left top,left bottom,from(#dff0d8),to(#d0e9c6));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:-o-linear-gradient(top,#d9edf7 0,#c4e3f3 100%);background-image:-webkit-gradient(linear,left top,left bottom,from(#d9edf7),to(#c4e3f3));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:-o-linear-gradient(top,#fcf8e3 0,#faf2cc 100%);background-image:-webkit-gradient(linear,left top,left bottom,from(#fcf8e3),to(#faf2cc));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:-o-linear-gradient(top,#f2dede 0,#ebcccc 100%);background-image:-webkit-gradient(linear,left top,left bottom,from(#f2dede),to(#ebcccc));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:-o-linear-gradient(top,#e8e8e8 0,#f5f5f5 100%);background-image:-webkit-gradient(linear,left top,left bottom,from(#e8e8e8),to(#f5f5f5));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;-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 037dd0561..c6f3d2106 100644
--- a/library/bootstrap/css/bootstrap.css
+++ b/library/bootstrap/css/bootstrap.css
@@ -1,10 +1,10 @@
/*!
- * Bootstrap v3.2.0 (http://getbootstrap.com)
+ * Bootstrap v3.3.1 (http://getbootstrap.com)
* Copyright 2011-2014 Twitter, Inc.
* Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)
*/
-/*! normalize.css v3.0.1 | MIT License | git.io/normalize */
+/*! normalize.css v3.0.2 | MIT License | git.io/normalize */
html {
font-family: sans-serif;
-webkit-text-size-adjust: 100%;
@@ -22,6 +22,7 @@ footer,
header,
hgroup,
main,
+menu,
nav,
section,
summary {
@@ -43,7 +44,7 @@ template {
display: none;
}
a {
- background: transparent;
+ background-color: transparent;
}
a:active,
a:hover {
@@ -187,8 +188,11 @@ td,
th {
padding: 0;
}
+/*! Source: https://github.com/h5bp/html5-boilerplate/blob/master/src/css/main.css */
@media print {
- * {
+ *,
+ *:before,
+ *:after {
color: #000 !important;
text-shadow: none !important;
background: transparent !important;
@@ -205,8 +209,8 @@ th {
abbr[title]:after {
content: " (" attr(title) ")";
}
- a[href^="javascript:"]:after,
- a[href^="#"]:after {
+ a[href^="#"]:after,
+ a[href^="javascript:"]:after {
content: "";
}
pre,
@@ -241,10 +245,6 @@ th {
.navbar {
display: none;
}
- .table td,
- .table th {
- background-color: #fff !important;
- }
.btn > .caret,
.dropup > .btn > .caret {
border-top-color: #000 !important;
@@ -255,6 +255,10 @@ th {
.table {
border-collapse: collapse !important;
}
+ .table td,
+ .table th {
+ background-color: #fff !important;
+ }
.table-bordered th,
.table-bordered td {
border: 1px solid #ddd !important;
@@ -284,7 +288,8 @@ th {
.glyphicon-plus:before {
content: "\2b";
}
-.glyphicon-euro:before {
+.glyphicon-euro:before,
+.glyphicon-eur:before {
content: "\20ac";
}
.glyphicon-minus:before {
@@ -910,12 +915,12 @@ textarea {
line-height: inherit;
}
a {
- color: #428bca;
+ color: #337ab7;
text-decoration: none;
}
a:hover,
a:focus {
- color: #2a6496;
+ color: #23527c;
text-decoration: underline;
}
a:focus {
@@ -935,7 +940,6 @@ img {
.carousel-inner > .item > img,
.carousel-inner > .item > a > img {
display: block;
- width: 100% \9;
max-width: 100%;
height: auto;
}
@@ -944,7 +948,6 @@ img {
}
.img-thumbnail {
display: inline-block;
- width: 100% \9;
max-width: 100%;
height: auto;
padding: 4px;
@@ -1117,9 +1120,6 @@ small,
.small {
font-size: 85%;
}
-cite {
- font-style: normal;
-}
mark,
.mark {
padding: .2em;
@@ -1153,10 +1153,10 @@ mark,
color: #777;
}
.text-primary {
- color: #428bca;
+ color: #337ab7;
}
a.text-primary:hover {
- color: #3071a9;
+ color: #286090;
}
.text-success {
color: #3c763d;
@@ -1184,10 +1184,10 @@ a.text-danger:hover {
}
.bg-primary {
color: #fff;
- background-color: #428bca;
+ background-color: #337ab7;
}
a.bg-primary:hover {
- background-color: #3071a9;
+ background-color: #286090;
}
.bg-success {
background-color: #dff0d8;
@@ -1328,10 +1328,6 @@ 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;
@@ -1362,6 +1358,7 @@ kbd {
kbd kbd {
padding: 0;
font-size: 100%;
+ font-weight: bold;
-webkit-box-shadow: none;
box-shadow: none;
}
@@ -2060,6 +2057,12 @@ pre code {
table {
background-color: transparent;
}
+caption {
+ padding-top: 8px;
+ padding-bottom: 8px;
+ color: #777;
+ text-align: left;
+}
th {
text-align: left;
}
@@ -2120,12 +2123,10 @@ 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 {
+.table-striped > tbody > tr:nth-child(odd) {
background-color: #f9f9f9;
}
-.table-hover > tbody > tr:hover > td,
-.table-hover > tbody > tr:hover > th {
+.table-hover > tbody > tr:hover {
background-color: #f5f5f5;
}
table col[class*="col-"] {
@@ -2244,13 +2245,15 @@ table th[class*="col-"] {
.table-hover > tbody > tr.danger:hover > th {
background-color: #ebcccc;
}
+.table-responsive {
+ min-height: .01%;
+ overflow-x: auto;
+}
@media screen and (max-width: 767px) {
.table-responsive {
width: 100%;
margin-bottom: 15px;
- overflow-x: auto;
overflow-y: hidden;
- -webkit-overflow-scrolling: touch;
-ms-overflow-style: -ms-autohiding-scrollbar;
border: 1px solid #ddd;
}
@@ -2375,14 +2378,14 @@ output {
box-shadow: inset 0 1px 1px rgba(0,0,0,.075), 0 0 8px rgba(102, 175, 233, .6);
}
.form-control::-moz-placeholder {
- color: #777;
+ color: #999;
opacity: 1;
}
.form-control:-ms-input-placeholder {
- color: #777;
+ color: #999;
}
.form-control::-webkit-input-placeholder {
- color: #777;
+ color: #999;
}
.form-control[disabled],
.form-control[readonly],
@@ -2397,24 +2400,25 @@ textarea.form-control {
input[type="search"] {
-webkit-appearance: none;
}
-input[type="date"],
-input[type="time"],
-input[type="datetime-local"],
-input[type="month"] {
- line-height: 34px;
- line-height: 1.42857143 \0;
-}
-input[type="date"].input-sm,
-input[type="time"].input-sm,
-input[type="datetime-local"].input-sm,
-input[type="month"].input-sm {
- line-height: 30px;
-}
-input[type="date"].input-lg,
-input[type="time"].input-lg,
-input[type="datetime-local"].input-lg,
-input[type="month"].input-lg {
- line-height: 46px;
+@media screen and (-webkit-min-device-pixel-ratio: 0) {
+ input[type="date"],
+ input[type="time"],
+ input[type="datetime-local"],
+ input[type="month"] {
+ line-height: 34px;
+ }
+ input[type="date"].input-sm,
+ input[type="time"].input-sm,
+ input[type="datetime-local"].input-sm,
+ input[type="month"].input-sm {
+ line-height: 30px;
+ }
+ input[type="date"].input-lg,
+ input[type="time"].input-lg,
+ input[type="datetime-local"].input-lg,
+ input[type="month"].input-lg {
+ line-height: 46px;
+ }
}
.form-group {
margin-bottom: 15px;
@@ -2423,12 +2427,12 @@ input[type="month"].input-lg {
.checkbox {
position: relative;
display: block;
- min-height: 20px;
margin-top: 10px;
margin-bottom: 10px;
}
.radio label,
.checkbox label {
+ min-height: 20px;
padding-left: 20px;
margin-bottom: 0;
font-weight: normal;
@@ -2491,35 +2495,41 @@ fieldset[disabled] .checkbox label {
padding-left: 0;
}
.input-sm,
-.form-horizontal .form-group-sm .form-control {
+.form-group-sm .form-control {
height: 30px;
padding: 5px 10px;
font-size: 12px;
line-height: 1.5;
border-radius: 3px;
}
-select.input-sm {
+select.input-sm,
+select.form-group-sm .form-control {
height: 30px;
line-height: 30px;
}
textarea.input-sm,
-select[multiple].input-sm {
+textarea.form-group-sm .form-control,
+select[multiple].input-sm,
+select[multiple].form-group-sm .form-control {
height: auto;
}
.input-lg,
-.form-horizontal .form-group-lg .form-control {
+.form-group-lg .form-control {
height: 46px;
padding: 10px 16px;
font-size: 18px;
line-height: 1.33;
border-radius: 6px;
}
-select.input-lg {
+select.input-lg,
+select.form-group-lg .form-control {
height: 46px;
line-height: 46px;
}
textarea.input-lg,
-select[multiple].input-lg {
+textarea.form-group-lg .form-control,
+select[multiple].input-lg,
+select[multiple].form-group-lg .form-control {
height: auto;
}
.has-feedback {
@@ -2530,7 +2540,7 @@ select[multiple].input-lg {
}
.form-control-feedback {
position: absolute;
- top: 25px;
+ top: 0;
right: 0;
z-index: 2;
display: block;
@@ -2538,6 +2548,7 @@ select[multiple].input-lg {
height: 34px;
line-height: 34px;
text-align: center;
+ pointer-events: none;
}
.input-lg + .form-control-feedback {
width: 46px;
@@ -2554,7 +2565,11 @@ select[multiple].input-lg {
.has-success .radio,
.has-success .checkbox,
.has-success .radio-inline,
-.has-success .checkbox-inline {
+.has-success .checkbox-inline,
+.has-success.radio label,
+.has-success.checkbox label,
+.has-success.radio-inline label,
+.has-success.checkbox-inline label {
color: #3c763d;
}
.has-success .form-control {
@@ -2580,7 +2595,11 @@ select[multiple].input-lg {
.has-warning .radio,
.has-warning .checkbox,
.has-warning .radio-inline,
-.has-warning .checkbox-inline {
+.has-warning .checkbox-inline,
+.has-warning.radio label,
+.has-warning.checkbox label,
+.has-warning.radio-inline label,
+.has-warning.checkbox-inline label {
color: #8a6d3b;
}
.has-warning .form-control {
@@ -2606,7 +2625,11 @@ select[multiple].input-lg {
.has-error .radio,
.has-error .checkbox,
.has-error .radio-inline,
-.has-error .checkbox-inline {
+.has-error .checkbox-inline,
+.has-error.radio label,
+.has-error.checkbox label,
+.has-error.radio-inline label,
+.has-error.checkbox-inline label {
color: #a94442;
}
.has-error .form-control {
@@ -2627,6 +2650,9 @@ select[multiple].input-lg {
.has-error .form-control-feedback {
color: #a94442;
}
+.has-feedback label ~ .form-control-feedback {
+ top: 25px;
+}
.has-feedback label.sr-only ~ .form-control-feedback {
top: 0;
}
@@ -2647,6 +2673,9 @@ select[multiple].input-lg {
width: auto;
vertical-align: middle;
}
+ .form-inline .form-control-static {
+ display: inline-block;
+ }
.form-inline .input-group {
display: inline-table;
vertical-align: middle;
@@ -2707,7 +2736,6 @@ select[multiple].input-lg {
}
}
.form-horizontal .has-feedback .form-control-feedback {
- top: 0;
right: 15px;
}
@media (min-width: 768px) {
@@ -2730,6 +2758,8 @@ select[multiple].input-lg {
text-align: center;
white-space: nowrap;
vertical-align: middle;
+ -ms-touch-action: manipulation;
+ touch-action: manipulation;
cursor: pointer;
-webkit-user-select: none;
-moz-user-select: none;
@@ -2741,13 +2771,17 @@ select[multiple].input-lg {
}
.btn:focus,
.btn:active:focus,
-.btn.active:focus {
+.btn.active: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 {
+.btn:focus,
+.btn.focus {
color: #333;
text-decoration: none;
}
@@ -2775,6 +2809,7 @@ fieldset[disabled] .btn {
}
.btn-default:hover,
.btn-default:focus,
+.btn-default.focus,
.btn-default:active,
.btn-default.active,
.open > .dropdown-toggle.btn-default {
@@ -2796,6 +2831,9 @@ fieldset[disabled] .btn-default:hover,
.btn-default.disabled:focus,
.btn-default[disabled]:focus,
fieldset[disabled] .btn-default:focus,
+.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,
@@ -2811,17 +2849,18 @@ fieldset[disabled] .btn-default.active {
}
.btn-primary {
color: #fff;
- background-color: #428bca;
- border-color: #357ebd;
+ background-color: #337ab7;
+ border-color: #2e6da4;
}
.btn-primary:hover,
.btn-primary:focus,
+.btn-primary.focus,
.btn-primary:active,
.btn-primary.active,
.open > .dropdown-toggle.btn-primary {
color: #fff;
- background-color: #3071a9;
- border-color: #285e8e;
+ background-color: #286090;
+ border-color: #204d74;
}
.btn-primary:active,
.btn-primary.active,
@@ -2837,17 +2876,20 @@ fieldset[disabled] .btn-primary:hover,
.btn-primary.disabled:focus,
.btn-primary[disabled]:focus,
fieldset[disabled] .btn-primary:focus,
+.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;
+ background-color: #337ab7;
+ border-color: #2e6da4;
}
.btn-primary .badge {
- color: #428bca;
+ color: #337ab7;
background-color: #fff;
}
.btn-success {
@@ -2857,6 +2899,7 @@ fieldset[disabled] .btn-primary.active {
}
.btn-success:hover,
.btn-success:focus,
+.btn-success.focus,
.btn-success:active,
.btn-success.active,
.open > .dropdown-toggle.btn-success {
@@ -2878,6 +2921,9 @@ fieldset[disabled] .btn-success:hover,
.btn-success.disabled:focus,
.btn-success[disabled]:focus,
fieldset[disabled] .btn-success:focus,
+.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,
@@ -2898,6 +2944,7 @@ fieldset[disabled] .btn-success.active {
}
.btn-info:hover,
.btn-info:focus,
+.btn-info.focus,
.btn-info:active,
.btn-info.active,
.open > .dropdown-toggle.btn-info {
@@ -2919,6 +2966,9 @@ fieldset[disabled] .btn-info:hover,
.btn-info.disabled:focus,
.btn-info[disabled]:focus,
fieldset[disabled] .btn-info:focus,
+.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,
@@ -2939,6 +2989,7 @@ fieldset[disabled] .btn-info.active {
}
.btn-warning:hover,
.btn-warning:focus,
+.btn-warning.focus,
.btn-warning:active,
.btn-warning.active,
.open > .dropdown-toggle.btn-warning {
@@ -2960,6 +3011,9 @@ fieldset[disabled] .btn-warning:hover,
.btn-warning.disabled:focus,
.btn-warning[disabled]:focus,
fieldset[disabled] .btn-warning:focus,
+.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,
@@ -2980,6 +3034,7 @@ fieldset[disabled] .btn-warning.active {
}
.btn-danger:hover,
.btn-danger:focus,
+.btn-danger.focus,
.btn-danger:active,
.btn-danger.active,
.open > .dropdown-toggle.btn-danger {
@@ -3001,6 +3056,9 @@ fieldset[disabled] .btn-danger:hover,
.btn-danger.disabled:focus,
.btn-danger[disabled]:focus,
fieldset[disabled] .btn-danger:focus,
+.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,
@@ -3016,12 +3074,12 @@ fieldset[disabled] .btn-danger.active {
}
.btn-link {
font-weight: normal;
- color: #428bca;
- cursor: pointer;
+ color: #337ab7;
border-radius: 0;
}
.btn-link,
.btn-link:active,
+.btn-link.active,
.btn-link[disabled],
fieldset[disabled] .btn-link {
background-color: transparent;
@@ -3036,7 +3094,7 @@ fieldset[disabled] .btn-link {
}
.btn-link:hover,
.btn-link:focus {
- color: #2a6496;
+ color: #23527c;
text-decoration: underline;
background-color: transparent;
}
@@ -3091,9 +3149,11 @@ input[type="button"].btn-block {
}
.collapse {
display: none;
+ visibility: hidden;
}
.collapse.in {
display: block;
+ visibility: visible;
}
tr.collapse.in {
display: table-row;
@@ -3105,9 +3165,15 @@ tbody.collapse.in {
position: relative;
height: 0;
overflow: hidden;
- -webkit-transition: height .35s ease;
- -o-transition: height .35s ease;
- transition: height .35s ease;
+ -webkit-transition-timing-function: ease;
+ -o-transition-timing-function: ease;
+ transition-timing-function: ease;
+ -webkit-transition-duration: .35s;
+ -o-transition-duration: .35s;
+ transition-duration: .35s;
+ -webkit-transition-property: height, visibility;
+ -o-transition-property: height, visibility;
+ transition-property: height, visibility;
}
.caret {
display: inline-block;
@@ -3177,7 +3243,7 @@ tbody.collapse.in {
.dropdown-menu > .active > a:focus {
color: #fff;
text-decoration: none;
- background-color: #428bca;
+ background-color: #337ab7;
outline: 0;
}
.dropdown-menu > .disabled > a,
@@ -3270,10 +3336,6 @@ tbody.collapse.in {
.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,
@@ -3413,12 +3475,13 @@ tbody.collapse.in {
.btn-group-justified > .btn-group .dropdown-menu {
left: auto;
}
-[data-toggle="buttons"] > .btn > input[type="radio"],
-[data-toggle="buttons"] > .btn > input[type="checkbox"] {
+[data-toggle="buttons"] > .btn input[type="radio"],
+[data-toggle="buttons"] > .btn-group > .btn input[type="radio"],
+[data-toggle="buttons"] > .btn input[type="checkbox"],
+[data-toggle="buttons"] > .btn-group > .btn input[type="checkbox"] {
position: absolute;
- z-index: -1;
- filter: alpha(opacity=0);
- opacity: 0;
+ clip: rect(0, 0, 0, 0);
+ pointer-events: none;
}
.input-group {
position: relative;
@@ -3607,7 +3670,7 @@ select[multiple].input-group-sm > .input-group-btn > .btn {
.nav .open > a:hover,
.nav .open > a:focus {
background-color: #eee;
- border-color: #428bca;
+ border-color: #337ab7;
}
.nav .nav-divider {
height: 1px;
@@ -3700,7 +3763,7 @@ select[multiple].input-group-sm > .input-group-btn > .btn {
.nav-pills > li.active > a:hover,
.nav-pills > li.active > a:focus {
color: #fff;
- background-color: #428bca;
+ background-color: #337ab7;
}
.nav-stacked > li {
float: none;
@@ -3757,9 +3820,11 @@ select[multiple].input-group-sm > .input-group-btn > .btn {
}
.tab-content > .tab-pane {
display: none;
+ visibility: hidden;
}
.tab-content > .active {
display: block;
+ visibility: visible;
}
.nav-tabs .dropdown-menu {
margin-top: -1px;
@@ -3806,6 +3871,7 @@ select[multiple].input-group-sm > .input-group-btn > .btn {
height: auto !important;
padding-bottom: 0;
overflow: visible !important;
+ visibility: visible !important;
}
.navbar-collapse.in {
overflow-y: visible;
@@ -3821,7 +3887,7 @@ select[multiple].input-group-sm > .input-group-btn > .btn {
.navbar-fixed-bottom .navbar-collapse {
max-height: 340px;
}
-@media (max-width: 480px) and (orientation: landscape) {
+@media (max-device-width: 480px) and (orientation: landscape) {
.navbar-fixed-top .navbar-collapse,
.navbar-fixed-bottom .navbar-collapse {
max-height: 200px;
@@ -3858,9 +3924,6 @@ select[multiple].input-group-sm > .input-group-btn > .btn {
right: 0;
left: 0;
z-index: 1030;
- -webkit-transform: translate3d(0, 0, 0);
- -o-transform: translate3d(0, 0, 0);
- transform: translate3d(0, 0, 0);
}
@media (min-width: 768px) {
.navbar-fixed-top,
@@ -3888,6 +3951,9 @@ select[multiple].input-group-sm > .input-group-btn > .btn {
.navbar-brand:focus {
text-decoration: none;
}
+.navbar-brand > img {
+ display: block;
+}
@media (min-width: 768px) {
.navbar > .container .navbar-brand,
.navbar > .container-fluid .navbar-brand {
@@ -3966,17 +4032,6 @@ select[multiple].input-group-sm > .input-group-btn > .btn {
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;
@@ -4000,6 +4055,9 @@ select[multiple].input-group-sm > .input-group-btn > .btn {
width: auto;
vertical-align: middle;
}
+ .navbar-form .form-control-static {
+ display: inline-block;
+ }
.navbar-form .input-group {
display: inline-table;
vertical-align: middle;
@@ -4040,6 +4098,9 @@ select[multiple].input-group-sm > .input-group-btn > .btn {
.navbar-form .form-group {
margin-bottom: 5px;
}
+ .navbar-form .form-group:last-child {
+ margin-bottom: 0;
+ }
}
@media (min-width: 768px) {
.navbar-form {
@@ -4052,9 +4113,6 @@ select[multiple].input-group-sm > .input-group-btn > .btn {
-webkit-box-shadow: none;
box-shadow: none;
}
- .navbar-form.navbar-right:last-child {
- margin-right: -15px;
- }
}
.navbar-nav > li > .dropdown-menu {
margin-top: 0;
@@ -4062,6 +4120,8 @@ select[multiple].input-group-sm > .input-group-btn > .btn {
border-top-right-radius: 0;
}
.navbar-fixed-bottom .navbar-nav > li > .dropdown-menu {
+ border-top-left-radius: 4px;
+ border-top-right-radius: 4px;
border-bottom-right-radius: 0;
border-bottom-left-radius: 0;
}
@@ -4087,7 +4147,16 @@ select[multiple].input-group-sm > .input-group-btn > .btn {
margin-right: 15px;
margin-left: 15px;
}
- .navbar-text.navbar-right:last-child {
+}
+@media (min-width: 768px) {
+ .navbar-left {
+ float: left !important;
+ }
+ .navbar-right {
+ float: right !important;
+ margin-right: -15px;
+ }
+ .navbar-right ~ .navbar-right {
margin-right: 0;
}
}
@@ -4192,7 +4261,7 @@ fieldset[disabled] .navbar-default .btn-link:focus {
border-color: #080808;
}
.navbar-inverse .navbar-brand {
- color: #777;
+ color: #9d9d9d;
}
.navbar-inverse .navbar-brand:hover,
.navbar-inverse .navbar-brand:focus {
@@ -4200,10 +4269,10 @@ fieldset[disabled] .navbar-default .btn-link:focus {
background-color: transparent;
}
.navbar-inverse .navbar-text {
- color: #777;
+ color: #9d9d9d;
}
.navbar-inverse .navbar-nav > li > a {
- color: #777;
+ color: #9d9d9d;
}
.navbar-inverse .navbar-nav > li > a:hover,
.navbar-inverse .navbar-nav > li > a:focus {
@@ -4250,7 +4319,7 @@ fieldset[disabled] .navbar-default .btn-link:focus {
background-color: #080808;
}
.navbar-inverse .navbar-nav .open .dropdown-menu > li > a {
- color: #777;
+ color: #9d9d9d;
}
.navbar-inverse .navbar-nav .open .dropdown-menu > li > a:hover,
.navbar-inverse .navbar-nav .open .dropdown-menu > li > a:focus {
@@ -4271,13 +4340,13 @@ fieldset[disabled] .navbar-default .btn-link:focus {
}
}
.navbar-inverse .navbar-link {
- color: #777;
+ color: #9d9d9d;
}
.navbar-inverse .navbar-link:hover {
color: #fff;
}
.navbar-inverse .btn-link {
- color: #777;
+ color: #9d9d9d;
}
.navbar-inverse .btn-link:hover,
.navbar-inverse .btn-link:focus {
@@ -4323,7 +4392,7 @@ fieldset[disabled] .navbar-inverse .btn-link:focus {
padding: 6px 12px;
margin-left: -1px;
line-height: 1.42857143;
- color: #428bca;
+ color: #337ab7;
text-decoration: none;
background-color: #fff;
border: 1px solid #ddd;
@@ -4343,7 +4412,7 @@ fieldset[disabled] .navbar-inverse .btn-link:focus {
.pagination > li > span:hover,
.pagination > li > a:focus,
.pagination > li > span:focus {
- color: #2a6496;
+ color: #23527c;
background-color: #eee;
border-color: #ddd;
}
@@ -4356,8 +4425,8 @@ fieldset[disabled] .navbar-inverse .btn-link:focus {
z-index: 2;
color: #fff;
cursor: default;
- background-color: #428bca;
- border-color: #428bca;
+ background-color: #337ab7;
+ border-color: #337ab7;
}
.pagination > .disabled > span,
.pagination > .disabled > span:hover,
@@ -4471,11 +4540,11 @@ a.label:focus {
background-color: #5e5e5e;
}
.label-primary {
- background-color: #428bca;
+ background-color: #337ab7;
}
.label-primary[href]:hover,
.label-primary[href]:focus {
- background-color: #3071a9;
+ background-color: #286090;
}
.label-success {
background-color: #5cb85c;
@@ -4536,16 +4605,22 @@ a.badge:focus {
text-decoration: none;
cursor: pointer;
}
-a.list-group-item.active > .badge,
+.list-group-item.active > .badge,
.nav-pills > .active > a > .badge {
- color: #428bca;
+ color: #337ab7;
background-color: #fff;
}
+.list-group-item > .badge {
+ float: right;
+}
+.list-group-item > .badge + .badge {
+ margin-right: 5px;
+}
.nav-pills > li > a > .badge {
margin-left: 3px;
}
.jumbotron {
- padding: 30px;
+ padding: 30px 15px;
margin-bottom: 30px;
color: inherit;
background-color: #eee;
@@ -4562,7 +4637,8 @@ a.list-group-item.active > .badge,
.jumbotron > hr {
border-top-color: #d5d5d5;
}
-.container .jumbotron {
+.container .jumbotron,
+.container-fluid .jumbotron {
border-radius: 6px;
}
.jumbotron .container {
@@ -4570,10 +4646,10 @@ a.list-group-item.active > .badge,
}
@media screen and (min-width: 768px) {
.jumbotron {
- padding-top: 48px;
- padding-bottom: 48px;
+ padding: 48px 0;
}
- .container .jumbotron {
+ .container .jumbotron,
+ .container-fluid .jumbotron {
padding-right: 60px;
padding-left: 60px;
}
@@ -4590,9 +4666,9 @@ a.list-group-item.active > .badge,
background-color: #fff;
border: 1px solid #ddd;
border-radius: 4px;
- -webkit-transition: all .2s ease-in-out;
- -o-transition: all .2s ease-in-out;
- transition: all .2s ease-in-out;
+ -webkit-transition: border .2s ease-in-out;
+ -o-transition: border .2s ease-in-out;
+ transition: border .2s ease-in-out;
}
.thumbnail > img,
.thumbnail a > img {
@@ -4602,7 +4678,7 @@ a.list-group-item.active > .badge,
a.thumbnail:hover,
a.thumbnail:focus,
a.thumbnail.active {
- border-color: #428bca;
+ border-color: #337ab7;
}
.thumbnail .caption {
padding: 9px;
@@ -4724,7 +4800,7 @@ a.thumbnail.active {
line-height: 20px;
color: #fff;
text-align: center;
- background-color: #428bca;
+ background-color: #337ab7;
-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;
@@ -4745,18 +4821,6 @@ a.thumbnail.active {
-o-animation: progress-bar-stripes 2s linear infinite;
animation: progress-bar-stripes 2s linear infinite;
}
-.progress-bar[aria-valuenow="1"],
-.progress-bar[aria-valuenow="2"] {
- min-width: 30px;
-}
-.progress-bar[aria-valuenow="0"] {
- min-width: 30px;
- color: #777;
- background-color: transparent;
- background-image: none;
- -webkit-box-shadow: none;
- box-shadow: none;
-}
.progress-bar-success {
background-color: #5cb85c;
}
@@ -4789,29 +4853,35 @@ a.thumbnail.active {
background-image: -o-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 {
+.media {
margin-top: 15px;
}
.media:first-child {
margin-top: 0;
}
-.media-object {
- display: block;
-}
-.media-heading {
- margin: 0 0 5px;
+.media-right,
+.media > .pull-right {
+ padding-left: 10px;
}
+.media-left,
.media > .pull-left {
- margin-right: 10px;
+ padding-right: 10px;
}
-.media > .pull-right {
- margin-left: 10px;
+.media-left,
+.media-right,
+.media-body {
+ display: table-cell;
+ vertical-align: top;
+}
+.media-middle {
+ vertical-align: middle;
+}
+.media-bottom {
+ vertical-align: bottom;
+}
+.media-heading {
+ margin-top: 0;
+ margin-bottom: 5px;
}
.media-list {
padding-left: 0;
@@ -4838,12 +4908,6 @@ a.thumbnail.active {
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;
}
@@ -4860,6 +4924,7 @@ a.list-group-item:focus {
.list-group-item.disabled:hover,
.list-group-item.disabled:focus {
color: #777;
+ cursor: not-allowed;
background-color: #eee;
}
.list-group-item.disabled .list-group-item-heading,
@@ -4877,8 +4942,8 @@ a.list-group-item:focus {
.list-group-item.active:focus {
z-index: 2;
color: #fff;
- background-color: #428bca;
- border-color: #428bca;
+ background-color: #337ab7;
+ border-color: #337ab7;
}
.list-group-item.active .list-group-item-heading,
.list-group-item.active:hover .list-group-item-heading,
@@ -4894,7 +4959,7 @@ a.list-group-item:focus {
.list-group-item.active .list-group-item-text,
.list-group-item.active:hover .list-group-item-text,
.list-group-item.active:focus .list-group-item-text {
- color: #e1edf7;
+ color: #c7ddef;
}
.list-group-item-success {
color: #3c763d;
@@ -5028,19 +5093,23 @@ a.list-group-item-danger.active:focus {
border-bottom-right-radius: 3px;
border-bottom-left-radius: 3px;
}
-.panel > .list-group {
+.panel > .list-group,
+.panel > .panel-collapse > .list-group {
margin-bottom: 0;
}
-.panel > .list-group .list-group-item {
+.panel > .list-group .list-group-item,
+.panel > .panel-collapse > .list-group .list-group-item {
border-width: 1px 0;
border-radius: 0;
}
-.panel > .list-group:first-child .list-group-item:first-child {
+.panel > .list-group:first-child .list-group-item:first-child,
+.panel > .panel-collapse > .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:last-child .list-group-item:last-child {
+.panel > .list-group:last-child .list-group-item:last-child,
+.panel > .panel-collapse > .list-group:last-child .list-group-item:last-child {
border-bottom: 0;
border-bottom-right-radius: 3px;
border-bottom-left-radius: 3px;
@@ -5056,11 +5125,24 @@ a.list-group-item-danger.active:focus {
.panel > .panel-collapse > .table {
margin-bottom: 0;
}
+.panel > .table caption,
+.panel > .table-responsive > .table caption,
+.panel > .panel-collapse > .table caption {
+ padding-right: 15px;
+ padding-left: 15px;
+}
.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,
+.panel > .table-responsive:first-child > .table:first-child > thead:first-child > tr:first-child,
+.panel > .table:first-child > tbody:first-child > tr:first-child,
+.panel > .table-responsive:first-child > .table:first-child > tbody:first-child > tr: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,
@@ -5086,6 +5168,13 @@ a.list-group-item-danger.active:focus {
border-bottom-right-radius: 3px;
border-bottom-left-radius: 3px;
}
+.panel > .table:last-child > tbody:last-child > tr:last-child,
+.panel > .table-responsive:last-child > .table:last-child > tbody:last-child > tr:last-child,
+.panel > .table:last-child > tfoot:last-child > tr:last-child,
+.panel > .table-responsive:last-child > .table:last-child > tfoot:last-child > tr: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,
@@ -5107,7 +5196,9 @@ a.list-group-item-danger.active:focus {
border-bottom-right-radius: 3px;
}
.panel > .panel-body + .table,
-.panel > .panel-body + .table-responsive {
+.panel > .panel-body + .table-responsive,
+.panel > .table + .panel-body,
+.panel > .table-responsive + .panel-body {
border-top: 1px solid #ddd;
}
.panel > .table > tbody:first-child > tr:first-child th,
@@ -5183,7 +5274,8 @@ a.list-group-item-danger.active:focus {
.panel-group .panel-heading {
border-bottom: 0;
}
-.panel-group .panel-heading + .panel-collapse > .panel-body {
+.panel-group .panel-heading + .panel-collapse > .panel-body,
+.panel-group .panel-heading + .panel-collapse > .list-group {
border-top: 1px solid #ddd;
}
.panel-group .panel-footer {
@@ -5211,22 +5303,22 @@ a.list-group-item-danger.active:focus {
border-bottom-color: #ddd;
}
.panel-primary {
- border-color: #428bca;
+ border-color: #337ab7;
}
.panel-primary > .panel-heading {
color: #fff;
- background-color: #428bca;
- border-color: #428bca;
+ background-color: #337ab7;
+ border-color: #337ab7;
}
.panel-primary > .panel-heading + .panel-collapse > .panel-body {
- border-top-color: #428bca;
+ border-top-color: #337ab7;
}
.panel-primary > .panel-heading .badge {
- color: #428bca;
+ color: #337ab7;
background-color: #fff;
}
.panel-primary > .panel-footer + .panel-collapse > .panel-body {
- border-bottom-color: #428bca;
+ border-bottom-color: #337ab7;
}
.panel-success {
border-color: #d6e9c6;
@@ -5310,7 +5402,8 @@ a.list-group-item-danger.active:focus {
.embed-responsive .embed-responsive-item,
.embed-responsive iframe,
.embed-responsive embed,
-.embed-responsive object {
+.embed-responsive object,
+.embed-responsive video {
position: absolute;
top: 0;
bottom: 0;
@@ -5381,7 +5474,7 @@ button.close {
right: 0;
bottom: 0;
left: 0;
- z-index: 1050;
+ z-index: 1040;
display: none;
overflow: hidden;
-webkit-overflow-scrolling: touch;
@@ -5391,14 +5484,16 @@ button.close {
-webkit-transition: -webkit-transform .3s ease-out;
-o-transition: -o-transform .3s ease-out;
transition: transform .3s ease-out;
- -webkit-transform: translate3d(0, -25%, 0);
- -o-transform: translate3d(0, -25%, 0);
- transform: translate3d(0, -25%, 0);
+ -webkit-transform: translate(0, -25%);
+ -ms-transform: translate(0, -25%);
+ -o-transform: translate(0, -25%);
+ transform: translate(0, -25%);
}
.modal.in .modal-dialog {
- -webkit-transform: translate3d(0, 0, 0);
- -o-transform: translate3d(0, 0, 0);
- transform: translate3d(0, 0, 0);
+ -webkit-transform: translate(0, 0);
+ -ms-transform: translate(0, 0);
+ -o-transform: translate(0, 0);
+ transform: translate(0, 0);
}
.modal-open .modal {
overflow-x: hidden;
@@ -5422,12 +5517,10 @@ button.close {
box-shadow: 0 3px 9px rgba(0, 0, 0, .5);
}
.modal-backdrop {
- position: fixed;
+ position: absolute;
top: 0;
right: 0;
- bottom: 0;
left: 0;
- z-index: 1040;
background-color: #000;
}
.modal-backdrop.fade {
@@ -5498,7 +5591,9 @@ button.close {
position: absolute;
z-index: 1070;
display: block;
+ font-family: "Helvetica Neue", Helvetica, Arial, sans-serif;
font-size: 12px;
+ font-weight: normal;
line-height: 1.4;
visibility: visible;
filter: alpha(opacity=0);
@@ -5548,14 +5643,16 @@ button.close {
border-top-color: #000;
}
.tooltip.top-left .tooltip-arrow {
+ right: 5px;
bottom: 0;
- left: 5px;
+ margin-bottom: -5px;
border-width: 5px 5px 0;
border-top-color: #000;
}
.tooltip.top-right .tooltip-arrow {
- right: 5px;
bottom: 0;
+ left: 5px;
+ margin-bottom: -5px;
border-width: 5px 5px 0;
border-top-color: #000;
}
@@ -5582,13 +5679,15 @@ button.close {
}
.tooltip.bottom-left .tooltip-arrow {
top: 0;
- left: 5px;
+ right: 5px;
+ margin-top: -5px;
border-width: 0 5px 5px;
border-bottom-color: #000;
}
.tooltip.bottom-right .tooltip-arrow {
top: 0;
- right: 5px;
+ left: 5px;
+ margin-top: -5px;
border-width: 0 5px 5px;
border-bottom-color: #000;
}
@@ -5600,6 +5699,10 @@ button.close {
display: none;
max-width: 276px;
padding: 1px;
+ font-family: "Helvetica Neue", Helvetica, Arial, sans-serif;
+ font-size: 14px;
+ font-weight: normal;
+ line-height: 1.42857143;
text-align: left;
white-space: normal;
background-color: #fff;
@@ -5627,8 +5730,6 @@ button.close {
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;
@@ -5731,6 +5832,37 @@ button.close {
.carousel-inner > .item > a > img {
line-height: 1;
}
+@media all and (transform-3d), (-webkit-transform-3d) {
+ .carousel-inner > .item {
+ -webkit-transition: -webkit-transform .6s ease-in-out;
+ -o-transition: -o-transform .6s ease-in-out;
+ transition: transform .6s ease-in-out;
+
+ -webkit-backface-visibility: hidden;
+ backface-visibility: hidden;
+ -webkit-perspective: 1000;
+ perspective: 1000;
+ }
+ .carousel-inner > .item.next,
+ .carousel-inner > .item.active.right {
+ left: 0;
+ -webkit-transform: translate3d(100%, 0, 0);
+ transform: translate3d(100%, 0, 0);
+ }
+ .carousel-inner > .item.prev,
+ .carousel-inner > .item.active.left {
+ left: 0;
+ -webkit-transform: translate3d(-100%, 0, 0);
+ transform: translate3d(-100%, 0, 0);
+ }
+ .carousel-inner > .item.next.left,
+ .carousel-inner > .item.prev.right,
+ .carousel-inner > .item.active {
+ left: 0;
+ -webkit-transform: translate3d(0, 0, 0);
+ transform: translate3d(0, 0, 0);
+ }
+}
.carousel-inner > .active,
.carousel-inner > .next,
.carousel-inner > .prev {
@@ -5986,9 +6118,6 @@ button.close {
}
.affix {
position: fixed;
- -webkit-transform: translate3d(0, 0, 0);
- -o-transform: translate3d(0, 0, 0);
- transform: translate3d(0, 0, 0);
}
@-ms-viewport {
width: device-width;
diff --git a/library/bootstrap/css/bootstrap.min.css b/library/bootstrap/css/bootstrap.min.css
index a9f35ceed..b6fe4e0fb 100644
--- a/library/bootstrap/css/bootstrap.min.css
+++ b/library/bootstrap/css/bootstrap.min.css
@@ -1,5 +1,5 @@
/*!
- * Bootstrap v3.2.0 (http://getbootstrap.com)
+ * Bootstrap v3.3.1 (http://getbootstrap.com)
* Copyright 2011-2014 Twitter, Inc.
* Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)
- *//*! normalize.css v3.0.1 | 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,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{margin:.67em 0;font-size:2em}mark{color:#000;background:#ff0}small{font-size:80%}sub,sup{position:relative;font-size:75%;line-height:0;vertical-align:baseline}sup{top:-.5em}sub{bottom:-.25em}img{border:0}svg:not(:root){overflow:hidden}figure{margin:1em 40px}hr{height:0;-webkit-box-sizing:content-box;-moz-box-sizing:content-box;box-sizing:content-box}pre{overflow:auto}code,kbd,pre,samp{font-family:monospace,monospace;font-size:1em}button,input,optgroup,select,textarea{margin:0;font:inherit;color:inherit}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{padding:0;border:0}input{line-height:normal}input[type=checkbox],input[type=radio]{-webkit-box-sizing:border-box;-moz-box-sizing:border-box;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}fieldset{padding:.35em .625em .75em;margin:0 2px;border:1px solid silver}legend{padding:0;border:0}textarea{overflow:auto}optgroup{font-weight:700}table{border-spacing:0;border-collapse:collapse}td,th{padding:0}@media print{*{color:#000!important;text-shadow:none!important;background:transparent!important;-webkit-box-shadow:none!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}}@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"}*{-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:10px;-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;width:100% \9;max-width:100%;height:auto}.img-rounded{border-radius:6px}.img-thumbnail{display:inline-block;width:100% \9;max-width:100%;height:auto;padding:4px;line-height:1.42857143;background-color:#fff;border:1px solid #ddd;border-radius:4px;-webkit-transition:all .2s ease-in-out;-o-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}.sr-only-focusable:active,.sr-only-focusable:focus{position:static;width:auto;height:auto;margin:0;overflow:visible;clip:auto}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:#777}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:300;line-height:1.4}@media (min-width:768px){.lead{font-size:21px}}small,.small{font-size:85%}cite{font-style:normal}mark,.mark{padding:.2em;background-color:#fcf8e3}.text-left{text-align:left}.text-right{text-align:right}.text-center{text-align:center}.text-justify{text-align:justify}.text-nowrap{white-space:nowrap}.text-lowercase{text-transform:lowercase}.text-uppercase{text-transform:uppercase}.text-capitalize{text-transform:capitalize}.text-muted{color:#777}.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;margin-left:-5px;list-style:none}.list-inline>li{display:inline-block;padding-right:5px;padding-left: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;overflow:hidden;clear:left;text-align:right;text-overflow:ellipsis;white-space:nowrap}.dl-horizontal dd{margin-left:180px}}abbr[title],abbr[data-original-title]{cursor:help;border-bottom:1px dotted #777}.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:#777}blockquote footer:before,blockquote small:before,blockquote .small:before{content:'\2014 \00A0'}.blockquote-reverse,blockquote.pull-right{padding-right:15px;padding-left:0;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.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;border-radius:4px}kbd{padding:2px 4px;font-size:90%;color:#fff;background-color:#333;border-radius:3px;-webkit-box-shadow:inset 0 -1px 0 rgba(0,0,0,.25);box-shadow:inset 0 -1px 0 rgba(0,0,0,.25)}kbd kbd{padding:0;font-size:100%;-webkit-box-shadow:none;box-shadow:none}pre{display:block;padding:9.5px;margin:0 0 10px;font-size:13px;line-height:1.42857143;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}@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}.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.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:auto}.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:auto}.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:auto}.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:auto}.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:auto}.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:auto}.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:auto}.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:auto}.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{background-color:transparent}th{text-align:left}.table{width:100%;max-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;display:table-column;float:none}table td[class*=col-],table th[class*=col-]{position:static;display:table-cell;float:none}.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:hover>.active,.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:hover>.success,.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:hover>.info,.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:hover>.warning,.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:hover>.danger,.table-hover>tbody>tr.danger:hover>th{background-color:#ebcccc}@media screen and (max-width:767px){.table-responsive{width:100%;margin-bottom:15px;overflow-x:auto;overflow-y:hidden;-webkit-overflow-scrolling:touch;-ms-overflow-style:-ms-autohiding-scrollbar;border:1px solid #ddd}.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{min-width:0;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;max-width:100%;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,-webkit-box-shadow ease-in-out .15s;-o-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:#777;opacity:1}.form-control:-ms-input-placeholder{color:#777}.form-control::-webkit-input-placeholder{color:#777}.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],input[type=time],input[type=datetime-local],input[type=month]{line-height:34px;line-height:1.42857143 \0}input[type=date].input-sm,input[type=time].input-sm,input[type=datetime-local].input-sm,input[type=month].input-sm{line-height:30px}input[type=date].input-lg,input[type=time].input-lg,input[type=datetime-local].input-lg,input[type=month].input-lg{line-height:46px}.form-group{margin-bottom:15px}.radio,.checkbox{position:relative;display:block;min-height:20px;margin-top:10px;margin-bottom:10px}.radio label,.checkbox label{padding-left:20px;margin-bottom:0;font-weight:400;cursor:pointer}.radio input[type=radio],.radio-inline input[type=radio],.checkbox input[type=checkbox],.checkbox-inline input[type=checkbox]{position:absolute;margin-top:4px \9;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:400;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],input[type=radio].disabled,input[type=checkbox].disabled,fieldset[disabled] input[type=radio],fieldset[disabled] input[type=checkbox]{cursor:not-allowed}.radio-inline.disabled,.checkbox-inline.disabled,fieldset[disabled] .radio-inline,fieldset[disabled] .checkbox-inline{cursor:not-allowed}.radio.disabled label,.checkbox.disabled label,fieldset[disabled] .radio label,fieldset[disabled] .checkbox label{cursor:not-allowed}.form-control-static{padding-top:7px;padding-bottom:7px;margin-bottom:0}.form-control-static.input-lg,.form-control-static.input-sm{padding-right:0;padding-left:0}.input-sm,.form-horizontal .form-group-sm .form-control{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,.form-horizontal .form-group-lg .form-control{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}.form-control-feedback{position:absolute;top:25px;right:0;z-index:2;display:block;width:34px;height:34px;line-height:34px;text-align:center}.input-lg+.form-control-feedback{width:46px;height:46px;line-height:46px}.input-sm+.form-control-feedback{width:30px;height:30px;line-height:30px}.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,.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;background-color:#fcf8e3;border-color:#8a6d3b}.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;background-color:#f2dede;border-color:#a94442}.has-error .form-control-feedback{color:#a94442}.has-feedback label.sr-only~.form-control-feedback{top: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{display:inline-table;vertical-align:middle}.form-inline .input-group .input-group-addon,.form-inline .input-group .input-group-btn,.form-inline .input-group .form-control{width:auto}.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;vertical-align:middle}.form-inline .radio label,.form-inline .checkbox label{padding-left:0}.form-inline .radio input[type=radio],.form-inline .checkbox input[type=checkbox]{position:relative;margin-left:0}.form-inline .has-feedback .form-control-feedback{top:0}}.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}@media (min-width:768px){.form-horizontal .control-label{padding-top:7px;margin-bottom:0;text-align:right}}.form-horizontal .has-feedback .form-control-feedback{top:0;right:15px}@media (min-width:768px){.form-horizontal .form-group-lg .control-label{padding-top:14.3px}}@media (min-width:768px){.form-horizontal .form-group-sm .control-label{padding-top:6px}}.btn{display:inline-block;padding:6px 12px;margin-bottom:0;font-size:14px;font-weight:400;line-height:1.42857143;text-align:center;white-space:nowrap;vertical-align:middle;cursor:pointer;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;background-image:none;border:1px solid transparent;border-radius:4px}.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{background-image:none;outline:0;-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;filter:alpha(opacity=65);-webkit-box-shadow:none;box-shadow:none;opacity:.65}.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:#e6e6e6;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:#3071a9;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:#449d44;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:#31b0d5;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:#ec971f;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:#c9302c;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:400;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:#777;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%}.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;-o-transition:opacity .15s linear;transition:opacity .15s linear}.fade.in{opacity:1}.collapse{display:none}.collapse.in{display:block}tr.collapse.in{display:table-row}tbody.collapse.in{display:table-row-group}.collapsing{position:relative;height:0;overflow:hidden;-webkit-transition:height .35s ease;-o-transition:height .35s ease;transition:height .35s ease}.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;text-align:left;list-style:none;background-color:#fff;-webkit-background-clip:padding-box;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:400;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:#fff;text-decoration:none;background-color:#428bca;outline:0}.dropdown-menu>.disabled>a,.dropdown-menu>.disabled>a:hover,.dropdown-menu>.disabled>a:focus{color:#777}.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-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.42857143;color:#777;white-space:nowrap}.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{content:"";border-top:0;border-bottom:4px solid}.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,.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-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-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-top-left-radius:0;border-bottom-left-radius:0}.btn-group .dropdown-toggle:active,.btn-group.open .dropdown-toggle{outline:0}.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,.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-top-left-radius:0;border-top-right-radius:0;border-bottom-left-radius:4px}.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-left-radius:0;border-top-right-radius:0}.btn-group-justified{display:table;width:100%;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%}.btn-group-justified>.btn-group .dropdown-menu{left:auto}[data-toggle=buttons]>.btn>input[type=radio],[data-toggle=buttons]>.btn>input[type=checkbox]{position:absolute;z-index:-1;filter:alpha(opacity=0);opacity:0}.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{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-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),.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>.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{padding-left:0;margin-bottom: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:#777}.nav>li.disabled>a:hover,.nav>li.disabled>a:focus{color:#777;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.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;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-left-radius:0;border-top-right-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{padding-right:15px;padding-left:15px;overflow-x:visible;-webkit-overflow-scrolling:touch;border-top:1px solid transparent;-webkit-box-shadow:inset 0 1px 0 rgba(255,255,255,.1);box-shadow:inset 0 1px 0 rgba(255,255,255,.1)}.navbar-collapse.in{overflow-y:auto}@media (min-width:768px){.navbar-collapse{width:auto;border-top:0;-webkit-box-shadow:none;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}}.navbar-fixed-top .navbar-collapse,.navbar-fixed-bottom .navbar-collapse{max-height:340px}@media (max-width:480px) and (orientation:landscape){.navbar-fixed-top .navbar-collapse,.navbar-fixed-bottom .navbar-collapse{max-height:200px}}.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;-webkit-transform:translate3d(0,0,0);-o-transform:translate3d(0,0,0);transform:translate3d(0,0,0)}@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-fluid .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: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;-webkit-box-shadow:none;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,.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;margin-bottom:0;vertical-align:middle}.navbar-form .form-control{display:inline-block;width:auto;vertical-align:middle}.navbar-form .input-group{display:inline-table;vertical-align:middle}.navbar-form .input-group .input-group-addon,.navbar-form .input-group .input-group-btn,.navbar-form .input-group .form-control{width:auto}.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;vertical-align:middle}.navbar-form .radio label,.navbar-form .checkbox label{padding-left:0}.navbar-form .radio input[type=radio],.navbar-form .checkbox input[type=checkbox]{position:relative;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;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-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-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:#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:#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-default .btn-link{color:#777}.navbar-default .btn-link:hover,.navbar-default .btn-link:focus{color:#333}.navbar-default .btn-link[disabled]:hover,fieldset[disabled] .navbar-default .btn-link:hover,.navbar-default .btn-link[disabled]:focus,fieldset[disabled] .navbar-default .btn-link:focus{color:#ccc}.navbar-inverse{background-color:#222;border-color:#080808}.navbar-inverse .navbar-brand{color:#777}.navbar-inverse .navbar-brand:hover,.navbar-inverse .navbar-brand:focus{color:#fff;background-color:transparent}.navbar-inverse .navbar-text{color:#777}.navbar-inverse .navbar-nav>li>a{color:#777}.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:#777}.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:#777}.navbar-inverse .navbar-link:hover{color:#fff}.navbar-inverse .btn-link{color:#777}.navbar-inverse .btn-link:hover,.navbar-inverse .btn-link:focus{color:#fff}.navbar-inverse .btn-link[disabled]:hover,fieldset[disabled] .navbar-inverse .btn-link:hover,.navbar-inverse .btn-link[disabled]:focus,fieldset[disabled] .navbar-inverse .btn-link:focus{color:#444}.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:#777}.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.42857143;color:#428bca;text-decoration:none;background-color:#fff;border:1px solid #ddd}.pagination>li:first-child>a,.pagination>li:first-child>span{margin-left:0;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{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;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:#777;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-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-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 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:#777;cursor:not-allowed;background-color:#fff}.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}a.label:hover,a.label:focus{color:#fff;text-decoration:none;cursor:pointer}.label:empty{display:none}.btn .label{position:relative;top:-1px}.label-default{background-color:#777}.label-default[href]:hover,.label-default[href]:focus{background-color:#5e5e5e}.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;line-height:1;color:#fff;text-align:center;white-space:nowrap;vertical-align:baseline;background-color:#777;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}.jumbotron>hr{border-top-color:#d5d5d5}.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.42857143;background-color:#fff;border:1px solid #ddd;border-radius:4px;-webkit-transition:all .2s ease-in-out;-o-transition:all .2s ease-in-out;transition:all .2s ease-in-out}.thumbnail>img,.thumbnail a>img{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:700}.alert>p,.alert>ul{margin-bottom:0}.alert>p+p{margin-top:5px}.alert-dismissable,.alert-dismissible{padding-right:35px}.alert-dismissable .close,.alert-dismissible .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}}@-o-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,.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;-o-transition:width .6s ease;transition:width .6s ease}.progress-striped .progress-bar,.progress-bar-striped{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:-o-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);-webkit-background-size:40px 40px;background-size:40px 40px}.progress.active .progress-bar,.progress-bar.active{-webkit-animation:progress-bar-stripes 2s linear infinite;-o-animation:progress-bar-stripes 2s linear infinite;animation:progress-bar-stripes 2s linear infinite}.progress-bar[aria-valuenow="1"],.progress-bar[aria-valuenow="2"]{min-width:30px}.progress-bar[aria-valuenow="0"]{min-width:30px;color:#777;background-color:transparent;background-image:none;-webkit-box-shadow:none;box-shadow:none}.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:-o-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:-o-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:-o-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:-o-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:#fff;border:1px solid #ddd}.list-group-item:first-child{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:#555}a.list-group-item .list-group-item-heading{color:#333}a.list-group-item:hover,a.list-group-item:focus{color:#555;text-decoration:none;background-color:#f5f5f5}.list-group-item.disabled,.list-group-item.disabled:hover,.list-group-item.disabled:focus{color:#777;background-color:#eee}.list-group-item.disabled .list-group-item-heading,.list-group-item.disabled:hover .list-group-item-heading,.list-group-item.disabled:focus .list-group-item-heading{color:inherit}.list-group-item.disabled .list-group-item-text,.list-group-item.disabled:hover .list-group-item-text,.list-group-item.disabled:focus .list-group-item-text{color:#777}.list-group-item.active,.list-group-item.active:hover,.list-group-item.active:focus{z-index:2;color:#fff;background-color:#428bca;border-color:#428bca}.list-group-item.active .list-group-item-heading,.list-group-item.active:hover .list-group-item-heading,.list-group-item.active:focus .list-group-item-heading,.list-group-item.active .list-group-item-heading>small,.list-group-item.active:hover .list-group-item-heading>small,.list-group-item.active:focus .list-group-item-heading>small,.list-group-item.active .list-group-item-heading>.small,.list-group-item.active:hover .list-group-item-heading>.small,.list-group-item.active:focus .list-group-item-heading>.small{color:inherit}.list-group-item.active .list-group-item-text,.list-group-item.active:hover .list-group-item-text,.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-left-radius:3px;border-top-right-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-left-radius:3px;border-top-right-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}.list-group+.panel-footer{border-top-width:0}.panel>.table,.panel>.table-responsive>.table,.panel>.panel-collapse>.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 #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{margin-bottom:0;border:0}.panel-group{margin-bottom:20px}.panel-group .panel{margin-bottom:0;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-heading .badge{color:#f5f5f5;background-color:#333}.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-heading .badge{color:#428bca;background-color:#fff}.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-heading .badge{color:#dff0d8;background-color:#3c763d}.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-heading .badge{color:#d9edf7;background-color:#31708f}.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-heading .badge{color:#fcf8e3;background-color:#8a6d3b}.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-heading .badge{color:#f2dede;background-color:#a94442}.panel-danger>.panel-footer+.panel-collapse>.panel-body{border-bottom-color:#ebccd1}.embed-responsive{position:relative;display:block;height:0;padding:0;overflow:hidden}.embed-responsive .embed-responsive-item,.embed-responsive iframe,.embed-responsive embed,.embed-responsive object{position:absolute;top:0;bottom:0;left:0;width:100%;height:100%;border:0}.embed-responsive.embed-responsive-16by9{padding-bottom:56.25%}.embed-responsive.embed-responsive-4by3{padding-bottom:75%}.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;filter:alpha(opacity=20);opacity:.2}.close:hover,.close:focus{color:#000;text-decoration:none;cursor:pointer;filter:alpha(opacity=50);opacity:.5}button.close{-webkit-appearance:none;padding:0;cursor:pointer;background:0 0;border:0}.modal-open{overflow:hidden}.modal{position:fixed;top:0;right:0;bottom:0;left:0;z-index:1050;display:none;overflow:hidden;-webkit-overflow-scrolling:touch;outline:0}.modal.fade .modal-dialog{-webkit-transition:-webkit-transform .3s ease-out;-o-transition:-o-transform .3s ease-out;transition:transform .3s ease-out;-webkit-transform:translate3d(0,-25%,0);-o-transform:translate3d(0,-25%,0);transform:translate3d(0,-25%,0)}.modal.in .modal-dialog{-webkit-transform:translate3d(0,0,0);-o-transform:translate3d(0,0,0);transform:translate3d(0,0,0)}.modal-open .modal{overflow-x:hidden;overflow-y:auto}.modal-dialog{position:relative;width:auto;margin:10px}.modal-content{position:relative;background-color:#fff;-webkit-background-clip:padding-box;background-clip:padding-box;border:1px solid #999;border:1px solid rgba(0,0,0,.2);border-radius:6px;outline:0;-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:1040;background-color:#000}.modal-backdrop.fade{filter:alpha(opacity=0);opacity:0}.modal-backdrop.in{filter:alpha(opacity=50);opacity:.5}.modal-header{min-height:16.43px;padding:15px;border-bottom:1px solid #e5e5e5}.modal-header .close{margin-top:-2px}.modal-title{margin:0;line-height:1.42857143}.modal-body{position:relative;padding:15px}.modal-footer{padding:15px;text-align:right;border-top:1px solid #e5e5e5}.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}.modal-scrollbar-measure{position:absolute;top:-9999px;width:50px;height:50px;overflow:scroll}@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:1070;display:block;font-size:12px;line-height:1.4;visibility:visible;filter:alpha(opacity=0);opacity:0}.tooltip.in{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:#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{right:5px;bottom:0;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:1060;display:none;max-width:276px;padding:1px;text-align:left;white-space:normal;background-color:#fff;-webkit-background-clip:padding-box;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;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{content:"";border-width:10px}.popover.top>.arrow{bottom:-11px;left:50%;margin-left:-11px;border-top-color:#999;border-top-color:rgba(0,0,0,.25);border-bottom-width:0}.popover.top>.arrow:after{bottom:1px;margin-left:-10px;content:" ";border-top-color:#fff;border-bottom-width:0}.popover.right>.arrow{top:50%;left:-11px;margin-top:-11px;border-right-color:#999;border-right-color:rgba(0,0,0,.25);border-left-width:0}.popover.right>.arrow:after{bottom:-10px;left:1px;content:" ";border-right-color:#fff;border-left-width:0}.popover.bottom>.arrow{top:-11px;left:50%;margin-left:-11px;border-top-width:0;border-bottom-color:#999;border-bottom-color:rgba(0,0,0,.25)}.popover.bottom>.arrow:after{top:1px;margin-left:-10px;content:" ";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{right:1px;bottom:-10px;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:.6s ease-in-out left;-o-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;bottom:0;left:0;width:15%;font-size:20px;color:#fff;text-align:center;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,rgba(0,0,0,.5) 0,rgba(0,0,0,.0001) 100%);background-image:-o-linear-gradient(left,rgba(0,0,0,.5) 0,rgba(0,0,0,.0001) 100%);background-image:-webkit-gradient(linear,left top,right top,from(rgba(0,0,0,.5)),to(rgba(0,0,0,.0001)));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,rgba(0,0,0,.0001) 0,rgba(0,0,0,.5) 100%);background-image:-o-linear-gradient(left,rgba(0,0,0,.0001) 0,rgba(0,0,0,.5) 100%);background-image:-webkit-gradient(linear,left top,right top,from(rgba(0,0,0,.0001)),to(rgba(0,0,0,.5)));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:#fff;text-decoration:none;filter:alpha(opacity=90);outline:0;opacity:.9}.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%;margin-left:-10px}.carousel-control .icon-next,.carousel-control .glyphicon-chevron-right{right:50%;margin-right:-10px}.carousel-control .icon-prev,.carousel-control .icon-next{width:20px;height:20px;margin-top:-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,.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;font-size:30px}.carousel-control .glyphicon-chevron-left,.carousel-control .icon-prev{margin-left:-15px}.carousel-control .glyphicon-chevron-right,.carousel-control .icon-next{margin-right:-15px}.carousel-caption{right:20%;left:20%;padding-bottom:30px}.carousel-indicators{bottom:20px}}.clearfix:before,.clearfix:after,.dl-horizontal dd:before,.dl-horizontal dd: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,.dl-horizontal dd: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;text-shadow:none;background-color:transparent;border:0}.hidden{display:none!important;visibility:hidden!important}.affix{position:fixed;-webkit-transform:translate3d(0,0,0);-o-transform:translate3d(0,0,0);transform:translate3d(0,0,0)}@-ms-viewport{width:device-width}.visible-xs,.visible-sm,.visible-md,.visible-lg{display:none!important}.visible-xs-block,.visible-xs-inline,.visible-xs-inline-block,.visible-sm-block,.visible-sm-inline,.visible-sm-inline-block,.visible-md-block,.visible-md-inline,.visible-md-inline-block,.visible-lg-block,.visible-lg-inline,.visible-lg-inline-block{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 (max-width:767px){.visible-xs-block{display:block!important}}@media (max-width:767px){.visible-xs-inline{display:inline!important}}@media (max-width:767px){.visible-xs-inline-block{display:inline-block!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:768px) and (max-width:991px){.visible-sm-block{display:block!important}}@media (min-width:768px) and (max-width:991px){.visible-sm-inline{display:inline!important}}@media (min-width:768px) and (max-width:991px){.visible-sm-inline-block{display:inline-block!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:992px) and (max-width:1199px){.visible-md-block{display:block!important}}@media (min-width:992px) and (max-width:1199px){.visible-md-inline{display:inline!important}}@media (min-width:992px) and (max-width:1199px){.visible-md-inline-block{display:inline-block!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 (min-width:1200px){.visible-lg-block{display:block!important}}@media (min-width:1200px){.visible-lg-inline{display:inline!important}}@media (min-width:1200px){.visible-lg-inline-block{display:inline-block!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}}.visible-print-block{display:none!important}@media print{.visible-print-block{display:block!important}}.visible-print-inline{display:none!important}@media print{.visible-print-inline{display:inline!important}}.visible-print-inline-block{display:none!important}@media print{.visible-print-inline-block{display:inline-block!important}}@media print{.hidden-print{display:none!important}} \ No newline at end of file
+ *//*! normalize.css v3.0.2 | 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,figcaption,figure,footer,header,hgroup,main,menu,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-color:transparent}a:active,a:hover{outline:0}abbr[title]{border-bottom:1px dotted}b,strong{font-weight:700}dfn{font-style:italic}h1{margin:.67em 0;font-size:2em}mark{color:#000;background:#ff0}small{font-size:80%}sub,sup{position:relative;font-size:75%;line-height:0;vertical-align:baseline}sup{top:-.5em}sub{bottom:-.25em}img{border:0}svg:not(:root){overflow:hidden}figure{margin:1em 40px}hr{height:0;-webkit-box-sizing:content-box;-moz-box-sizing:content-box;box-sizing:content-box}pre{overflow:auto}code,kbd,pre,samp{font-family:monospace,monospace;font-size:1em}button,input,optgroup,select,textarea{margin:0;font:inherit;color:inherit}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{padding:0;border:0}input{line-height:normal}input[type=checkbox],input[type=radio]{-webkit-box-sizing:border-box;-moz-box-sizing:border-box;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}fieldset{padding:.35em .625em .75em;margin:0 2px;border:1px solid silver}legend{padding:0;border:0}textarea{overflow:auto}optgroup{font-weight:700}table{border-spacing:0;border-collapse:collapse}td,th{padding:0}/*! Source: https://github.com/h5bp/html5-boilerplate/blob/master/src/css/main.css */@media print{*,:before,:after{color:#000!important;text-shadow:none!important;background:transparent!important;-webkit-box-shadow:none!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^="#"]:after,a[href^="javascript:"]: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}.btn>.caret,.dropup>.btn>.caret{border-top-color:#000!important}.label{border:1px solid #000}.table{border-collapse:collapse!important}.table td,.table th{background-color:#fff!important}.table-bordered th,.table-bordered td{border:1px solid #ddd!important}}@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,.glyphicon-eur: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"}*{-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:10px;-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:#337ab7;text-decoration:none}a:hover,a:focus{color:#23527c;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{display:inline-block;max-width:100%;height:auto;padding:4px;line-height:1.42857143;background-color:#fff;border:1px solid #ddd;border-radius:4px;-webkit-transition:all .2s ease-in-out;-o-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}.sr-only-focusable:active,.sr-only-focusable:focus{position:static;width:auto;height:auto;margin:0;overflow:visible;clip:auto}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:#777}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:300;line-height:1.4}@media (min-width:768px){.lead{font-size:21px}}small,.small{font-size:85%}mark,.mark{padding:.2em;background-color:#fcf8e3}.text-left{text-align:left}.text-right{text-align:right}.text-center{text-align:center}.text-justify{text-align:justify}.text-nowrap{white-space:nowrap}.text-lowercase{text-transform:lowercase}.text-uppercase{text-transform:uppercase}.text-capitalize{text-transform:capitalize}.text-muted{color:#777}.text-primary{color:#337ab7}a.text-primary:hover{color:#286090}.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:#337ab7}a.bg-primary:hover{background-color:#286090}.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;margin-left:-5px;list-style:none}.list-inline>li{display:inline-block;padding-right:5px;padding-left: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;overflow:hidden;clear:left;text-align:right;text-overflow:ellipsis;white-space:nowrap}.dl-horizontal dd{margin-left:180px}}abbr[title],abbr[data-original-title]{cursor:help;border-bottom:1px dotted #777}.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:#777}blockquote footer:before,blockquote small:before,blockquote .small:before{content:'\2014 \00A0'}.blockquote-reverse,blockquote.pull-right{padding-right:15px;padding-left:0;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'}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;border-radius:4px}kbd{padding:2px 4px;font-size:90%;color:#fff;background-color:#333;border-radius:3px;-webkit-box-shadow:inset 0 -1px 0 rgba(0,0,0,.25);box-shadow:inset 0 -1px 0 rgba(0,0,0,.25)}kbd kbd{padding:0;font-size:100%;font-weight:700;-webkit-box-shadow:none;box-shadow:none}pre{display:block;padding:9.5px;margin:0 0 10px;font-size:13px;line-height:1.42857143;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}@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}.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.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:auto}.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:auto}.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:auto}.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:auto}.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:auto}.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:auto}.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:auto}.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:auto}.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{background-color:transparent}caption{padding-top:8px;padding-bottom:8px;color:#777;text-align:left}th{text-align:left}.table{width:100%;max-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){background-color:#f9f9f9}.table-hover>tbody>tr:hover{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>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:hover>.active,.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:hover>.success,.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:hover>.info,.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:hover>.warning,.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:hover>.danger,.table-hover>tbody>tr.danger:hover>th{background-color:#ebcccc}.table-responsive{min-height:.01%;overflow-x:auto}@media screen and (max-width:767px){.table-responsive{width:100%;margin-bottom:15px;overflow-y:hidden;-ms-overflow-style:-ms-autohiding-scrollbar;border:1px solid #ddd}.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{min-width:0;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;max-width:100%;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,-webkit-box-shadow ease-in-out .15s;-o-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}@media screen and (-webkit-min-device-pixel-ratio:0){input[type=date],input[type=time],input[type=datetime-local],input[type=month]{line-height:34px}input[type=date].input-sm,input[type=time].input-sm,input[type=datetime-local].input-sm,input[type=month].input-sm{line-height:30px}input[type=date].input-lg,input[type=time].input-lg,input[type=datetime-local].input-lg,input[type=month].input-lg{line-height:46px}}.form-group{margin-bottom:15px}.radio,.checkbox{position:relative;display:block;margin-top:10px;margin-bottom:10px}.radio label,.checkbox label{min-height:20px;padding-left:20px;margin-bottom:0;font-weight:400;cursor:pointer}.radio input[type=radio],.radio-inline input[type=radio],.checkbox input[type=checkbox],.checkbox-inline input[type=checkbox]{position:absolute;margin-top:4px \9;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:400;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],input[type=radio].disabled,input[type=checkbox].disabled,fieldset[disabled] input[type=radio],fieldset[disabled] input[type=checkbox]{cursor:not-allowed}.radio-inline.disabled,.checkbox-inline.disabled,fieldset[disabled] .radio-inline,fieldset[disabled] .checkbox-inline{cursor:not-allowed}.radio.disabled label,.checkbox.disabled label,fieldset[disabled] .radio label,fieldset[disabled] .checkbox label{cursor:not-allowed}.form-control-static{padding-top:7px;padding-bottom:7px;margin-bottom:0}.form-control-static.input-lg,.form-control-static.input-sm{padding-right:0;padding-left:0}.input-sm,.form-group-sm .form-control{height:30px;padding:5px 10px;font-size:12px;line-height:1.5;border-radius:3px}select.input-sm,select.form-group-sm .form-control{height:30px;line-height:30px}textarea.input-sm,textarea.form-group-sm .form-control,select[multiple].input-sm,select[multiple].form-group-sm .form-control{height:auto}.input-lg,.form-group-lg .form-control{height:46px;padding:10px 16px;font-size:18px;line-height:1.33;border-radius:6px}select.input-lg,select.form-group-lg .form-control{height:46px;line-height:46px}textarea.input-lg,textarea.form-group-lg .form-control,select[multiple].input-lg,select[multiple].form-group-lg .form-control{height:auto}.has-feedback{position:relative}.has-feedback .form-control{padding-right:42.5px}.form-control-feedback{position:absolute;top:0;right:0;z-index:2;display:block;width:34px;height:34px;line-height:34px;text-align:center;pointer-events:none}.input-lg+.form-control-feedback{width:46px;height:46px;line-height:46px}.input-sm+.form-control-feedback{width:30px;height:30px;line-height:30px}.has-success .help-block,.has-success .control-label,.has-success .radio,.has-success .checkbox,.has-success .radio-inline,.has-success .checkbox-inline,.has-success.radio label,.has-success.checkbox label,.has-success.radio-inline label,.has-success.checkbox-inline label{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,.has-warning .checkbox,.has-warning .radio-inline,.has-warning .checkbox-inline,.has-warning.radio label,.has-warning.checkbox label,.has-warning.radio-inline label,.has-warning.checkbox-inline label{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;background-color:#fcf8e3;border-color:#8a6d3b}.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,.has-error.radio label,.has-error.checkbox label,.has-error.radio-inline label,.has-error.checkbox-inline label{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;background-color:#f2dede;border-color:#a94442}.has-error .form-control-feedback{color:#a94442}.has-feedback label~.form-control-feedback{top:25px}.has-feedback label.sr-only~.form-control-feedback{top: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 .form-control-static{display:inline-block}.form-inline .input-group{display:inline-table;vertical-align:middle}.form-inline .input-group .input-group-addon,.form-inline .input-group .input-group-btn,.form-inline .input-group .form-control{width:auto}.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;vertical-align:middle}.form-inline .radio label,.form-inline .checkbox label{padding-left:0}.form-inline .radio input[type=radio],.form-inline .checkbox input[type=checkbox]{position:relative;margin-left:0}.form-inline .has-feedback .form-control-feedback{top:0}}.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}@media (min-width:768px){.form-horizontal .control-label{padding-top:7px;margin-bottom:0;text-align:right}}.form-horizontal .has-feedback .form-control-feedback{right:15px}@media (min-width:768px){.form-horizontal .form-group-lg .control-label{padding-top:14.3px}}@media (min-width:768px){.form-horizontal .form-group-sm .control-label{padding-top:6px}}.btn{display:inline-block;padding:6px 12px;margin-bottom:0;font-size:14px;font-weight:400;line-height:1.42857143;text-align:center;white-space:nowrap;vertical-align:middle;-ms-touch-action:manipulation;touch-action:manipulation;cursor:pointer;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;background-image:none;border:1px solid transparent;border-radius:4px}.btn:focus,.btn:active:focus,.btn.active: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,.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,.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;filter:alpha(opacity=65);-webkit-box-shadow:none;box-shadow:none;opacity:.65}.btn-default{color:#333;background-color:#fff;border-color:#ccc}.btn-default:hover,.btn-default:focus,.btn-default.focus,.btn-default:active,.btn-default.active,.open>.dropdown-toggle.btn-default{color:#333;background-color:#e6e6e6;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.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:#337ab7;border-color:#2e6da4}.btn-primary:hover,.btn-primary:focus,.btn-primary.focus,.btn-primary:active,.btn-primary.active,.open>.dropdown-toggle.btn-primary{color:#fff;background-color:#286090;border-color:#204d74}.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.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:#337ab7;border-color:#2e6da4}.btn-primary .badge{color:#337ab7;background-color:#fff}.btn-success{color:#fff;background-color:#5cb85c;border-color:#4cae4c}.btn-success:hover,.btn-success:focus,.btn-success.focus,.btn-success:active,.btn-success.active,.open>.dropdown-toggle.btn-success{color:#fff;background-color:#449d44;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.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.focus,.btn-info:active,.btn-info.active,.open>.dropdown-toggle.btn-info{color:#fff;background-color:#31b0d5;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.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.focus,.btn-warning:active,.btn-warning.active,.open>.dropdown-toggle.btn-warning{color:#fff;background-color:#ec971f;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.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.focus,.btn-danger:active,.btn-danger.active,.open>.dropdown-toggle.btn-danger{color:#fff;background-color:#c9302c;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.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:400;color:#337ab7;border-radius:0}.btn-link,.btn-link:active,.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:#23527c;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:#777;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%}.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;-o-transition:opacity .15s linear;transition:opacity .15s linear}.fade.in{opacity:1}.collapse{display:none;visibility:hidden}.collapse.in{display:block;visibility:visible}tr.collapse.in{display:table-row}tbody.collapse.in{display:table-row-group}.collapsing{position:relative;height:0;overflow:hidden;-webkit-transition-timing-function:ease;-o-transition-timing-function:ease;transition-timing-function:ease;-webkit-transition-duration:.35s;-o-transition-duration:.35s;transition-duration:.35s;-webkit-transition-property:height,visibility;-o-transition-property:height,visibility;transition-property:height,visibility}.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;text-align:left;list-style:none;background-color:#fff;-webkit-background-clip:padding-box;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:400;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:#fff;text-decoration:none;background-color:#337ab7;outline:0}.dropdown-menu>.disabled>a,.dropdown-menu>.disabled>a:hover,.dropdown-menu>.disabled>a:focus{color:#777}.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-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.42857143;color:#777;white-space:nowrap}.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{content:"";border-top:0;border-bottom:4px solid}.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,.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+.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-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-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-top-left-radius:0;border-bottom-left-radius:0}.btn-group .dropdown-toggle:active,.btn-group.open .dropdown-toggle{outline:0}.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,.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-top-left-radius:0;border-top-right-radius:0;border-bottom-left-radius:4px}.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-left-radius:0;border-top-right-radius:0}.btn-group-justified{display:table;width:100%;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%}.btn-group-justified>.btn-group .dropdown-menu{left:auto}[data-toggle=buttons]>.btn input[type=radio],[data-toggle=buttons]>.btn-group>.btn input[type=radio],[data-toggle=buttons]>.btn input[type=checkbox],[data-toggle=buttons]>.btn-group>.btn input[type=checkbox]{position:absolute;clip:rect(0,0,0,0);pointer-events: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{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-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),.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>.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{padding-left:0;margin-bottom: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:#777}.nav>li.disabled>a:hover,.nav>li.disabled>a:focus{color:#777;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:#337ab7}.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;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:#337ab7}.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;visibility:hidden}.tab-content>.active{display:block;visibility:visible}.nav-tabs .dropdown-menu{margin-top:-1px;border-top-left-radius:0;border-top-right-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{padding-right:15px;padding-left:15px;overflow-x:visible;-webkit-overflow-scrolling:touch;border-top:1px solid transparent;-webkit-box-shadow:inset 0 1px 0 rgba(255,255,255,.1);box-shadow:inset 0 1px 0 rgba(255,255,255,.1)}.navbar-collapse.in{overflow-y:auto}@media (min-width:768px){.navbar-collapse{width:auto;border-top:0;-webkit-box-shadow:none;box-shadow:none}.navbar-collapse.collapse{display:block!important;height:auto!important;padding-bottom:0;overflow:visible!important;visibility: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}}.navbar-fixed-top .navbar-collapse,.navbar-fixed-bottom .navbar-collapse{max-height:340px}@media (max-device-width:480px) and (orientation:landscape){.navbar-fixed-top .navbar-collapse,.navbar-fixed-bottom .navbar-collapse{max-height:200px}}.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;height:50px;padding:15px 15px;font-size:18px;line-height:20px}.navbar-brand:hover,.navbar-brand:focus{text-decoration:none}.navbar-brand>img{display:block}@media (min-width:768px){.navbar>.container .navbar-brand,.navbar>.container-fluid .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: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;-webkit-box-shadow:none;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-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,.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;margin-bottom:0;vertical-align:middle}.navbar-form .form-control{display:inline-block;width:auto;vertical-align:middle}.navbar-form .form-control-static{display:inline-block}.navbar-form .input-group{display:inline-table;vertical-align:middle}.navbar-form .input-group .input-group-addon,.navbar-form .input-group .input-group-btn,.navbar-form .input-group .form-control{width:auto}.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;vertical-align:middle}.navbar-form .radio label,.navbar-form .checkbox label{padding-left:0}.navbar-form .radio input[type=radio],.navbar-form .checkbox input[type=checkbox]{position:relative;margin-left:0}.navbar-form .has-feedback .form-control-feedback{top:0}}@media (max-width:767px){.navbar-form .form-group{margin-bottom:5px}.navbar-form .form-group:last-child{margin-bottom:0}}@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-nav>li>.dropdown-menu{margin-top:0;border-top-left-radius:0;border-top-right-radius:0}.navbar-fixed-bottom .navbar-nav>li>.dropdown-menu{border-top-left-radius:4px;border-top-right-radius:4px;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-right:15px;margin-left:15px}}@media (min-width:768px){.navbar-left{float:left!important}.navbar-right{float:right!important;margin-right:-15px}.navbar-right~.navbar-right{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{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-default .btn-link{color:#777}.navbar-default .btn-link:hover,.navbar-default .btn-link:focus{color:#333}.navbar-default .btn-link[disabled]:hover,fieldset[disabled] .navbar-default .btn-link:hover,.navbar-default .btn-link[disabled]:focus,fieldset[disabled] .navbar-default .btn-link:focus{color:#ccc}.navbar-inverse{background-color:#222;border-color:#080808}.navbar-inverse .navbar-brand{color:#9d9d9d}.navbar-inverse .navbar-brand:hover,.navbar-inverse .navbar-brand:focus{color:#fff;background-color:transparent}.navbar-inverse .navbar-text{color:#9d9d9d}.navbar-inverse .navbar-nav>li>a{color:#9d9d9d}.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:#9d9d9d}.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:#9d9d9d}.navbar-inverse .navbar-link:hover{color:#fff}.navbar-inverse .btn-link{color:#9d9d9d}.navbar-inverse .btn-link:hover,.navbar-inverse .btn-link:focus{color:#fff}.navbar-inverse .btn-link[disabled]:hover,fieldset[disabled] .navbar-inverse .btn-link:hover,.navbar-inverse .btn-link[disabled]:focus,fieldset[disabled] .navbar-inverse .btn-link:focus{color:#444}.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:#777}.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.42857143;color:#337ab7;text-decoration:none;background-color:#fff;border:1px solid #ddd}.pagination>li:first-child>a,.pagination>li:first-child>span{margin-left:0;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{color:#23527c;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;cursor:default;background-color:#337ab7;border-color:#337ab7}.pagination>.disabled>span,.pagination>.disabled>span:hover,.pagination>.disabled>span:focus,.pagination>.disabled>a,.pagination>.disabled>a:hover,.pagination>.disabled>a:focus{color:#777;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-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-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 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:#777;cursor:not-allowed;background-color:#fff}.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}a.label:hover,a.label:focus{color:#fff;text-decoration:none;cursor:pointer}.label:empty{display:none}.btn .label{position:relative;top:-1px}.label-default{background-color:#777}.label-default[href]:hover,.label-default[href]:focus{background-color:#5e5e5e}.label-primary{background-color:#337ab7}.label-primary[href]:hover,.label-primary[href]:focus{background-color:#286090}.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;line-height:1;color:#fff;text-align:center;white-space:nowrap;vertical-align:baseline;background-color:#777;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}.list-group-item.active>.badge,.nav-pills>.active>a>.badge{color:#337ab7;background-color:#fff}.list-group-item>.badge{float:right}.list-group-item>.badge+.badge{margin-right:5px}.nav-pills>li>a>.badge{margin-left:3px}.jumbotron{padding:30px 15px;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}.jumbotron>hr{border-top-color:#d5d5d5}.container .jumbotron,.container-fluid .jumbotron{border-radius:6px}.jumbotron .container{max-width:100%}@media screen and (min-width:768px){.jumbotron{padding:48px 0}.container .jumbotron,.container-fluid .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.42857143;background-color:#fff;border:1px solid #ddd;border-radius:4px;-webkit-transition:border .2s ease-in-out;-o-transition:border .2s ease-in-out;transition:border .2s ease-in-out}.thumbnail>img,.thumbnail a>img{margin-right:auto;margin-left:auto}a.thumbnail:hover,a.thumbnail:focus,a.thumbnail.active{border-color:#337ab7}.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,.alert-dismissible{padding-right:35px}.alert-dismissable .close,.alert-dismissible .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}}@-o-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,.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:#337ab7;-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;-o-transition:width .6s ease;transition:width .6s ease}.progress-striped .progress-bar,.progress-bar-striped{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:-o-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);-webkit-background-size:40px 40px;background-size:40px 40px}.progress.active .progress-bar,.progress-bar.active{-webkit-animation:progress-bar-stripes 2s linear infinite;-o-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:-o-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:-o-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:-o-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:-o-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{margin-top:15px}.media:first-child{margin-top:0}.media-right,.media>.pull-right{padding-left:10px}.media-left,.media>.pull-left{padding-right:10px}.media-left,.media-right,.media-body{display:table-cell;vertical-align:top}.media-middle{vertical-align:middle}.media-bottom{vertical-align:bottom}.media-heading{margin-top:0;margin-bottom:5px}.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-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}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{color:#555;text-decoration:none;background-color:#f5f5f5}.list-group-item.disabled,.list-group-item.disabled:hover,.list-group-item.disabled:focus{color:#777;cursor:not-allowed;background-color:#eee}.list-group-item.disabled .list-group-item-heading,.list-group-item.disabled:hover .list-group-item-heading,.list-group-item.disabled:focus .list-group-item-heading{color:inherit}.list-group-item.disabled .list-group-item-text,.list-group-item.disabled:hover .list-group-item-text,.list-group-item.disabled:focus .list-group-item-text{color:#777}.list-group-item.active,.list-group-item.active:hover,.list-group-item.active:focus{z-index:2;color:#fff;background-color:#337ab7;border-color:#337ab7}.list-group-item.active .list-group-item-heading,.list-group-item.active:hover .list-group-item-heading,.list-group-item.active:focus .list-group-item-heading,.list-group-item.active .list-group-item-heading>small,.list-group-item.active:hover .list-group-item-heading>small,.list-group-item.active:focus .list-group-item-heading>small,.list-group-item.active .list-group-item-heading>.small,.list-group-item.active:hover .list-group-item-heading>.small,.list-group-item.active:focus .list-group-item-heading>.small{color:inherit}.list-group-item.active .list-group-item-text,.list-group-item.active:hover .list-group-item-text,.list-group-item.active:focus .list-group-item-text{color:#c7ddef}.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-left-radius:3px;border-top-right-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,.panel>.panel-collapse>.list-group{margin-bottom:0}.panel>.list-group .list-group-item,.panel>.panel-collapse>.list-group .list-group-item{border-width:1px 0;border-radius:0}.panel>.list-group:first-child .list-group-item:first-child,.panel>.panel-collapse>.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:last-child .list-group-item:last-child,.panel>.panel-collapse>.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}.list-group+.panel-footer{border-top-width:0}.panel>.table,.panel>.table-responsive>.table,.panel>.panel-collapse>.table{margin-bottom:0}.panel>.table caption,.panel>.table-responsive>.table caption,.panel>.panel-collapse>.table caption{padding-right:15px;padding-left:15px}.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,.panel>.table-responsive:first-child>.table:first-child>thead:first-child>tr:first-child,.panel>.table:first-child>tbody:first-child>tr:first-child,.panel>.table-responsive:first-child>.table:first-child>tbody:first-child>tr: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,.panel>.table-responsive:last-child>.table:last-child>tbody:last-child>tr:last-child,.panel>.table:last-child>tfoot:last-child>tr:last-child,.panel>.table-responsive:last-child>.table:last-child>tfoot:last-child>tr: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,.panel>.table+.panel-body,.panel>.table-responsive+.panel-body{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{margin-bottom:0;border:0}.panel-group{margin-bottom:20px}.panel-group .panel{margin-bottom:0;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,.panel-group .panel-heading+.panel-collapse>.list-group{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-heading .badge{color:#f5f5f5;background-color:#333}.panel-default>.panel-footer+.panel-collapse>.panel-body{border-bottom-color:#ddd}.panel-primary{border-color:#337ab7}.panel-primary>.panel-heading{color:#fff;background-color:#337ab7;border-color:#337ab7}.panel-primary>.panel-heading+.panel-collapse>.panel-body{border-top-color:#337ab7}.panel-primary>.panel-heading .badge{color:#337ab7;background-color:#fff}.panel-primary>.panel-footer+.panel-collapse>.panel-body{border-bottom-color:#337ab7}.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-heading .badge{color:#dff0d8;background-color:#3c763d}.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-heading .badge{color:#d9edf7;background-color:#31708f}.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-heading .badge{color:#fcf8e3;background-color:#8a6d3b}.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-heading .badge{color:#f2dede;background-color:#a94442}.panel-danger>.panel-footer+.panel-collapse>.panel-body{border-bottom-color:#ebccd1}.embed-responsive{position:relative;display:block;height:0;padding:0;overflow:hidden}.embed-responsive .embed-responsive-item,.embed-responsive iframe,.embed-responsive embed,.embed-responsive object,.embed-responsive video{position:absolute;top:0;bottom:0;left:0;width:100%;height:100%;border:0}.embed-responsive.embed-responsive-16by9{padding-bottom:56.25%}.embed-responsive.embed-responsive-4by3{padding-bottom:75%}.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;filter:alpha(opacity=20);opacity:.2}.close:hover,.close:focus{color:#000;text-decoration:none;cursor:pointer;filter:alpha(opacity=50);opacity:.5}button.close{-webkit-appearance:none;padding:0;cursor:pointer;background:0 0;border:0}.modal-open{overflow:hidden}.modal{position:fixed;top:0;right:0;bottom:0;left:0;z-index:1040;display:none;overflow:hidden;-webkit-overflow-scrolling:touch;outline:0}.modal.fade .modal-dialog{-webkit-transition:-webkit-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%);-o-transform:translate(0,-25%);transform:translate(0,-25%)}.modal.in .modal-dialog{-webkit-transform:translate(0,0);-ms-transform:translate(0,0);-o-transform:translate(0,0);transform:translate(0,0)}.modal-open .modal{overflow-x:hidden;overflow-y:auto}.modal-dialog{position:relative;width:auto;margin:10px}.modal-content{position:relative;background-color:#fff;-webkit-background-clip:padding-box;background-clip:padding-box;border:1px solid #999;border:1px solid rgba(0,0,0,.2);border-radius:6px;outline:0;-webkit-box-shadow:0 3px 9px rgba(0,0,0,.5);box-shadow:0 3px 9px rgba(0,0,0,.5)}.modal-backdrop{position:absolute;top:0;right:0;left:0;background-color:#000}.modal-backdrop.fade{filter:alpha(opacity=0);opacity:0}.modal-backdrop.in{filter:alpha(opacity=50);opacity:.5}.modal-header{min-height:16.43px;padding:15px;border-bottom:1px solid #e5e5e5}.modal-header .close{margin-top:-2px}.modal-title{margin:0;line-height:1.42857143}.modal-body{position:relative;padding:15px}.modal-footer{padding:15px;text-align:right;border-top:1px solid #e5e5e5}.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}.modal-scrollbar-measure{position:absolute;top:-9999px;width:50px;height:50px;overflow:scroll}@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:1070;display:block;font-family:"Helvetica Neue",Helvetica,Arial,sans-serif;font-size:12px;font-weight:400;line-height:1.4;visibility:visible;filter:alpha(opacity=0);opacity:0}.tooltip.in{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:#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{right:5px;bottom:0;margin-bottom:-5px;border-width:5px 5px 0;border-top-color:#000}.tooltip.top-right .tooltip-arrow{bottom:0;left:5px;margin-bottom:-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;right:5px;margin-top:-5px;border-width:0 5px 5px;border-bottom-color:#000}.tooltip.bottom-right .tooltip-arrow{top:0;left:5px;margin-top:-5px;border-width:0 5px 5px;border-bottom-color:#000}.popover{position:absolute;top:0;left:0;z-index:1060;display:none;max-width:276px;padding:1px;font-family:"Helvetica Neue",Helvetica,Arial,sans-serif;font-size:14px;font-weight:400;line-height:1.42857143;text-align:left;white-space:normal;background-color:#fff;-webkit-background-clip:padding-box;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;font-size:14px;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{content:"";border-width:10px}.popover.top>.arrow{bottom:-11px;left:50%;margin-left:-11px;border-top-color:#999;border-top-color:rgba(0,0,0,.25);border-bottom-width:0}.popover.top>.arrow:after{bottom:1px;margin-left:-10px;content:" ";border-top-color:#fff;border-bottom-width:0}.popover.right>.arrow{top:50%;left:-11px;margin-top:-11px;border-right-color:#999;border-right-color:rgba(0,0,0,.25);border-left-width:0}.popover.right>.arrow:after{bottom:-10px;left:1px;content:" ";border-right-color:#fff;border-left-width:0}.popover.bottom>.arrow{top:-11px;left:50%;margin-left:-11px;border-top-width:0;border-bottom-color:#999;border-bottom-color:rgba(0,0,0,.25)}.popover.bottom>.arrow:after{top:1px;margin-left:-10px;content:" ";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{right:1px;bottom:-10px;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:.6s ease-in-out left;-o-transition:.6s ease-in-out left;transition:.6s ease-in-out left}.carousel-inner>.item>img,.carousel-inner>.item>a>img{line-height:1}@media all and (transform-3d),(-webkit-transform-3d){.carousel-inner>.item{-webkit-transition:-webkit-transform .6s ease-in-out;-o-transition:-o-transform .6s ease-in-out;transition:transform .6s ease-in-out;-webkit-backface-visibility:hidden;backface-visibility:hidden;-webkit-perspective:1000;perspective:1000}.carousel-inner>.item.next,.carousel-inner>.item.active.right{left:0;-webkit-transform:translate3d(100%,0,0);transform:translate3d(100%,0,0)}.carousel-inner>.item.prev,.carousel-inner>.item.active.left{left:0;-webkit-transform:translate3d(-100%,0,0);transform:translate3d(-100%,0,0)}.carousel-inner>.item.next.left,.carousel-inner>.item.prev.right,.carousel-inner>.item.active{left:0;-webkit-transform:translate3d(0,0,0);transform:translate3d(0,0,0)}}.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,.6);filter:alpha(opacity=50);opacity:.5}.carousel-control.left{background-image:-webkit-linear-gradient(left,rgba(0,0,0,.5) 0,rgba(0,0,0,.0001) 100%);background-image:-o-linear-gradient(left,rgba(0,0,0,.5) 0,rgba(0,0,0,.0001) 100%);background-image:-webkit-gradient(linear,left top,right top,from(rgba(0,0,0,.5)),to(rgba(0,0,0,.0001)));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,rgba(0,0,0,.0001) 0,rgba(0,0,0,.5) 100%);background-image:-o-linear-gradient(left,rgba(0,0,0,.0001) 0,rgba(0,0,0,.5) 100%);background-image:-webkit-gradient(linear,left top,right top,from(rgba(0,0,0,.0001)),to(rgba(0,0,0,.5)));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:#fff;text-decoration:none;filter:alpha(opacity=90);outline:0;opacity:.9}.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%;margin-left:-10px}.carousel-control .icon-next,.carousel-control .glyphicon-chevron-right{right:50%;margin-right:-10px}.carousel-control .icon-prev,.carousel-control .icon-next{width:20px;height:20px;margin-top:-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,.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;font-size:30px}.carousel-control .glyphicon-chevron-left,.carousel-control .icon-prev{margin-left:-15px}.carousel-control .glyphicon-chevron-right,.carousel-control .icon-next{margin-right:-15px}.carousel-caption{right:20%;left:20%;padding-bottom:30px}.carousel-indicators{bottom:20px}}.clearfix:before,.clearfix:after,.dl-horizontal dd:before,.dl-horizontal dd: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,.dl-horizontal dd: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;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}.visible-xs-block,.visible-xs-inline,.visible-xs-inline-block,.visible-sm-block,.visible-sm-inline,.visible-sm-inline-block,.visible-md-block,.visible-md-inline,.visible-md-inline-block,.visible-lg-block,.visible-lg-inline,.visible-lg-inline-block{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 (max-width:767px){.visible-xs-block{display:block!important}}@media (max-width:767px){.visible-xs-inline{display:inline!important}}@media (max-width:767px){.visible-xs-inline-block{display:inline-block!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:768px) and (max-width:991px){.visible-sm-block{display:block!important}}@media (min-width:768px) and (max-width:991px){.visible-sm-inline{display:inline!important}}@media (min-width:768px) and (max-width:991px){.visible-sm-inline-block{display:inline-block!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:992px) and (max-width:1199px){.visible-md-block{display:block!important}}@media (min-width:992px) and (max-width:1199px){.visible-md-inline{display:inline!important}}@media (min-width:992px) and (max-width:1199px){.visible-md-inline-block{display:inline-block!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 (min-width:1200px){.visible-lg-block{display:block!important}}@media (min-width:1200px){.visible-lg-inline{display:inline!important}}@media (min-width:1200px){.visible-lg-inline-block{display:inline-block!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}}.visible-print-block{display:none!important}@media print{.visible-print-block{display:block!important}}.visible-print-inline{display:none!important}@media print{.visible-print-inline{display:inline!important}}.visible-print-inline-block{display:none!important}@media print{.visible-print-inline-block{display:inline-block!important}}@media print{.hidden-print{display:none!important}} \ No newline at end of file
diff --git a/library/bootstrap/fonts/glyphicons-halflings-regular.svg b/library/bootstrap/fonts/glyphicons-halflings-regular.svg
index e3e2dc739..25691af8f 100644
--- a/library/bootstrap/fonts/glyphicons-halflings-regular.svg
+++ b/library/bootstrap/fonts/glyphicons-halflings-regular.svg
@@ -226,4 +226,4 @@
<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 -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
+</defs></svg> \ No newline at end of file
diff --git a/library/bootstrap/js/bootbox.js b/library/bootstrap/js/bootbox.js
new file mode 100644
index 000000000..a002e4a35
--- /dev/null
+++ b/library/bootstrap/js/bootbox.js
@@ -0,0 +1,894 @@
+/**
+ * bootbox.js [v4.3.0]
+ *
+ * http://bootboxjs.com/license.txt
+ */
+
+// @see https://github.com/makeusabrew/bootbox/issues/180
+// @see https://github.com/makeusabrew/bootbox/issues/186
+(function (root, factory) {
+
+ "use strict";
+ if (typeof define === "function" && define.amd) {
+ // AMD. Register as an anonymous module.
+ define(["jquery"], factory);
+ } else if (typeof exports === "object") {
+ // Node. Does not work with strict CommonJS, but
+ // only CommonJS-like environments that support module.exports,
+ // like Node.
+ module.exports = factory(require("jquery"));
+ } else {
+ // Browser globals (root is window)
+ root.bootbox = factory(root.jQuery);
+ }
+
+}(this, function init($, undefined) {
+
+ "use strict";
+
+ // the base DOM structure needed to create a modal
+ var templates = {
+ dialog:
+ "<div class='bootbox modal' tabindex='-1' role='dialog'>" +
+ "<div class='modal-dialog'>" +
+ "<div class='modal-content'>" +
+ "<div class='modal-body'><div class='bootbox-body'></div></div>" +
+ "</div>" +
+ "</div>" +
+ "</div>",
+ header:
+ "<div class='modal-header'>" +
+ "<h4 class='modal-title'></h4>" +
+ "</div>",
+ footer:
+ "<div class='modal-footer'></div>",
+ closeButton:
+ "<button type='button' class='bootbox-close-button close' data-dismiss='modal' aria-hidden='true'>&times;</button>",
+ form:
+ "<form class='bootbox-form'></form>",
+ inputs: {
+ text:
+ "<input class='bootbox-input bootbox-input-text form-control' autocomplete=off type=text />",
+ textarea:
+ "<textarea class='bootbox-input bootbox-input-textarea form-control'></textarea>",
+ email:
+ "<input class='bootbox-input bootbox-input-email form-control' autocomplete='off' type='email' />",
+ select:
+ "<select class='bootbox-input bootbox-input-select form-control'></select>",
+ checkbox:
+ "<div class='checkbox'><label><input class='bootbox-input bootbox-input-checkbox' type='checkbox' /></label></div>",
+ date:
+ "<input class='bootbox-input bootbox-input-date form-control' autocomplete=off type='date' />",
+ time:
+ "<input class='bootbox-input bootbox-input-time form-control' autocomplete=off type='time' />",
+ number:
+ "<input class='bootbox-input bootbox-input-number form-control' autocomplete=off type='number' />",
+ password:
+ "<input class='bootbox-input bootbox-input-password form-control' autocomplete='off' type='password' />"
+ }
+ };
+
+ var defaults = {
+ // default language
+ locale: "en",
+ // show backdrop or not
+ backdrop: true,
+ // animate the modal in/out
+ animate: true,
+ // additional class string applied to the top level dialog
+ className: null,
+ // whether or not to include a close button
+ closeButton: true,
+ // show the dialog immediately by default
+ show: true,
+ // dialog container
+ container: "body"
+ };
+
+ // our public object; augmented after our private API
+ var exports = {};
+
+ /**
+ * @private
+ */
+ function _t(key) {
+ var locale = locales[defaults.locale];
+ return locale ? locale[key] : locales.en[key];
+ }
+
+ function processCallback(e, dialog, callback) {
+ e.stopPropagation();
+ e.preventDefault();
+
+ // by default we assume a callback will get rid of the dialog,
+ // although it is given the opportunity to override this
+
+ // so, if the callback can be invoked and it *explicitly returns false*
+ // then we'll set a flag to keep the dialog active...
+ var preserveDialog = $.isFunction(callback) && callback(e) === false;
+
+ // ... otherwise we'll bin it
+ if (!preserveDialog) {
+ dialog.modal("hide");
+ }
+ }
+
+ function getKeyLength(obj) {
+ // @TODO defer to Object.keys(x).length if available?
+ var k, t = 0;
+ for (k in obj) {
+ t ++;
+ }
+ return t;
+ }
+
+ function each(collection, iterator) {
+ var index = 0;
+ $.each(collection, function(key, value) {
+ iterator(key, value, index++);
+ });
+ }
+
+ function sanitize(options) {
+ var buttons;
+ var total;
+
+ if (typeof options !== "object") {
+ throw new Error("Please supply an object of options");
+ }
+
+ if (!options.message) {
+ throw new Error("Please specify a message");
+ }
+
+ // make sure any supplied options take precedence over defaults
+ options = $.extend({}, defaults, options);
+
+ if (!options.buttons) {
+ options.buttons = {};
+ }
+
+ // we only support Bootstrap's "static" and false backdrop args
+ // supporting true would mean you could dismiss the dialog without
+ // explicitly interacting with it
+ options.backdrop = options.backdrop ? "static" : false;
+
+ buttons = options.buttons;
+
+ total = getKeyLength(buttons);
+
+ each(buttons, function(key, button, index) {
+
+ if ($.isFunction(button)) {
+ // short form, assume value is our callback. Since button
+ // isn't an object it isn't a reference either so re-assign it
+ button = buttons[key] = {
+ callback: button
+ };
+ }
+
+ // before any further checks make sure by now button is the correct type
+ if ($.type(button) !== "object") {
+ throw new Error("button with key " + key + " must be an object");
+ }
+
+ if (!button.label) {
+ // the lack of an explicit label means we'll assume the key is good enough
+ button.label = key;
+ }
+
+ if (!button.className) {
+ if (total <= 2 && index === total-1) {
+ // always add a primary to the main option in a two-button dialog
+ button.className = "btn-primary";
+ } else {
+ button.className = "btn-default";
+ }
+ }
+ });
+
+ return options;
+ }
+
+ /**
+ * map a flexible set of arguments into a single returned object
+ * if args.length is already one just return it, otherwise
+ * use the properties argument to map the unnamed args to
+ * object properties
+ * so in the latter case:
+ * mapArguments(["foo", $.noop], ["message", "callback"])
+ * -> { message: "foo", callback: $.noop }
+ */
+ function mapArguments(args, properties) {
+ var argn = args.length;
+ var options = {};
+
+ if (argn < 1 || argn > 2) {
+ throw new Error("Invalid argument length");
+ }
+
+ if (argn === 2 || typeof args[0] === "string") {
+ options[properties[0]] = args[0];
+ options[properties[1]] = args[1];
+ } else {
+ options = args[0];
+ }
+
+ return options;
+ }
+
+ /**
+ * merge a set of default dialog options with user supplied arguments
+ */
+ function mergeArguments(defaults, args, properties) {
+ return $.extend(
+ // deep merge
+ true,
+ // ensure the target is an empty, unreferenced object
+ {},
+ // the base options object for this type of dialog (often just buttons)
+ defaults,
+ // args could be an object or array; if it's an array properties will
+ // map it to a proper options object
+ mapArguments(
+ args,
+ properties
+ )
+ );
+ }
+
+ /**
+ * this entry-level method makes heavy use of composition to take a simple
+ * range of inputs and return valid options suitable for passing to bootbox.dialog
+ */
+ function mergeDialogOptions(className, labels, properties, args) {
+ // build up a base set of dialog properties
+ var baseOptions = {
+ className: "bootbox-" + className,
+ buttons: createLabels.apply(null, labels)
+ };
+
+ // ensure the buttons properties generated, *after* merging
+ // with user args are still valid against the supplied labels
+ return validateButtons(
+ // merge the generated base properties with user supplied arguments
+ mergeArguments(
+ baseOptions,
+ args,
+ // if args.length > 1, properties specify how each arg maps to an object key
+ properties
+ ),
+ labels
+ );
+ }
+
+ /**
+ * from a given list of arguments return a suitable object of button labels
+ * all this does is normalise the given labels and translate them where possible
+ * e.g. "ok", "confirm" -> { ok: "OK, cancel: "Annuleren" }
+ */
+ function createLabels() {
+ var buttons = {};
+
+ for (var i = 0, j = arguments.length; i < j; i++) {
+ var argument = arguments[i];
+ var key = argument.toLowerCase();
+ var value = argument.toUpperCase();
+
+ buttons[key] = {
+ label: _t(value)
+ };
+ }
+
+ return buttons;
+ }
+
+ function validateButtons(options, buttons) {
+ var allowedButtons = {};
+ each(buttons, function(key, value) {
+ allowedButtons[value] = true;
+ });
+
+ each(options.buttons, function(key) {
+ if (allowedButtons[key] === undefined) {
+ throw new Error("button key " + key + " is not allowed (options are " + buttons.join("\n") + ")");
+ }
+ });
+
+ return options;
+ }
+
+ exports.alert = function() {
+ var options;
+
+ options = mergeDialogOptions("alert", ["ok"], ["message", "callback"], arguments);
+
+ if (options.callback && !$.isFunction(options.callback)) {
+ throw new Error("alert requires callback property to be a function when provided");
+ }
+
+ /**
+ * overrides
+ */
+ options.buttons.ok.callback = options.onEscape = function() {
+ if ($.isFunction(options.callback)) {
+ return options.callback();
+ }
+ return true;
+ };
+
+ return exports.dialog(options);
+ };
+
+ exports.confirm = function() {
+ var options;
+
+ options = mergeDialogOptions("confirm", ["cancel", "confirm"], ["message", "callback"], arguments);
+
+ /**
+ * overrides; undo anything the user tried to set they shouldn't have
+ */
+ options.buttons.cancel.callback = options.onEscape = function() {
+ return options.callback(false);
+ };
+
+ options.buttons.confirm.callback = function() {
+ return options.callback(true);
+ };
+
+ // confirm specific validation
+ if (!$.isFunction(options.callback)) {
+ throw new Error("confirm requires a callback");
+ }
+
+ return exports.dialog(options);
+ };
+
+ exports.prompt = function() {
+ var options;
+ var defaults;
+ var dialog;
+ var form;
+ var input;
+ var shouldShow;
+ var inputOptions;
+
+ // we have to create our form first otherwise
+ // its value is undefined when gearing up our options
+ // @TODO this could be solved by allowing message to
+ // be a function instead...
+ form = $(templates.form);
+
+ // prompt defaults are more complex than others in that
+ // users can override more defaults
+ // @TODO I don't like that prompt has to do a lot of heavy
+ // lifting which mergeDialogOptions can *almost* support already
+ // just because of 'value' and 'inputType' - can we refactor?
+ defaults = {
+ className: "bootbox-prompt",
+ buttons: createLabels("cancel", "confirm"),
+ value: "",
+ inputType: "text"
+ };
+
+ options = validateButtons(
+ mergeArguments(defaults, arguments, ["title", "callback"]),
+ ["cancel", "confirm"]
+ );
+
+ // capture the user's show value; we always set this to false before
+ // spawning the dialog to give us a chance to attach some handlers to
+ // it, but we need to make sure we respect a preference not to show it
+ shouldShow = (options.show === undefined) ? true : options.show;
+
+ /**
+ * overrides; undo anything the user tried to set they shouldn't have
+ */
+ options.message = form;
+
+ options.buttons.cancel.callback = options.onEscape = function() {
+ return options.callback(null);
+ };
+
+ options.buttons.confirm.callback = function() {
+ var value;
+
+ switch (options.inputType) {
+ case "text":
+ case "textarea":
+ case "email":
+ case "select":
+ case "date":
+ case "time":
+ case "number":
+ case "password":
+ value = input.val();
+ break;
+
+ case "checkbox":
+ var checkedItems = input.find("input:checked");
+
+ // we assume that checkboxes are always multiple,
+ // hence we default to an empty array
+ value = [];
+
+ each(checkedItems, function(_, item) {
+ value.push($(item).val());
+ });
+ break;
+ }
+
+ return options.callback(value);
+ };
+
+ options.show = false;
+
+ // prompt specific validation
+ if (!options.title) {
+ throw new Error("prompt requires a title");
+ }
+
+ if (!$.isFunction(options.callback)) {
+ throw new Error("prompt requires a callback");
+ }
+
+ if (!templates.inputs[options.inputType]) {
+ throw new Error("invalid prompt type");
+ }
+
+ // create the input based on the supplied type
+ input = $(templates.inputs[options.inputType]);
+
+ switch (options.inputType) {
+ case "text":
+ case "textarea":
+ case "email":
+ case "date":
+ case "time":
+ case "number":
+ case "password":
+ input.val(options.value);
+ break;
+
+ case "select":
+ var groups = {};
+ inputOptions = options.inputOptions || [];
+
+ if (!inputOptions.length) {
+ throw new Error("prompt with select requires options");
+ }
+
+ each(inputOptions, function(_, option) {
+
+ // assume the element to attach to is the input...
+ var elem = input;
+
+ if (option.value === undefined || option.text === undefined) {
+ throw new Error("given options in wrong format");
+ }
+
+
+ // ... but override that element if this option sits in a group
+
+ if (option.group) {
+ // initialise group if necessary
+ if (!groups[option.group]) {
+ groups[option.group] = $("<optgroup/>").attr("label", option.group);
+ }
+
+ elem = groups[option.group];
+ }
+
+ elem.append("<option value='" + option.value + "'>" + option.text + "</option>");
+ });
+
+ each(groups, function(_, group) {
+ input.append(group);
+ });
+
+ // safe to set a select's value as per a normal input
+ input.val(options.value);
+ break;
+
+ case "checkbox":
+ var values = $.isArray(options.value) ? options.value : [options.value];
+ inputOptions = options.inputOptions || [];
+
+ if (!inputOptions.length) {
+ throw new Error("prompt with checkbox requires options");
+ }
+
+ if (!inputOptions[0].value || !inputOptions[0].text) {
+ throw new Error("given options in wrong format");
+ }
+
+ // checkboxes have to nest within a containing element, so
+ // they break the rules a bit and we end up re-assigning
+ // our 'input' element to this container instead
+ input = $("<div/>");
+
+ each(inputOptions, function(_, option) {
+ var checkbox = $(templates.inputs[options.inputType]);
+
+ checkbox.find("input").attr("value", option.value);
+ checkbox.find("label").append(option.text);
+
+ // we've ensured values is an array so we can always iterate over it
+ each(values, function(_, value) {
+ if (value === option.value) {
+ checkbox.find("input").prop("checked", true);
+ }
+ });
+
+ input.append(checkbox);
+ });
+ break;
+ }
+
+ if (options.placeholder) {
+ input.attr("placeholder", options.placeholder);
+ }
+
+ if(options.pattern){
+ input.attr("pattern", options.pattern);
+ }
+
+ // now place it in our form
+ form.append(input);
+
+ form.on("submit", function(e) {
+ e.preventDefault();
+ // Fix for SammyJS (or similar JS routing library) hijacking the form post.
+ e.stopPropagation();
+ // @TODO can we actually click *the* button object instead?
+ // e.g. buttons.confirm.click() or similar
+ dialog.find(".btn-primary").click();
+ });
+
+ dialog = exports.dialog(options);
+
+ // clear the existing handler focusing the submit button...
+ dialog.off("shown.bs.modal");
+
+ // ...and replace it with one focusing our input, if possible
+ dialog.on("shown.bs.modal", function() {
+ input.focus();
+ });
+
+ if (shouldShow === true) {
+ dialog.modal("show");
+ }
+
+ return dialog;
+ };
+
+ exports.dialog = function(options) {
+ options = sanitize(options);
+
+ var dialog = $(templates.dialog);
+ var innerDialog = dialog.find(".modal-dialog");
+ var body = dialog.find(".modal-body");
+ var buttons = options.buttons;
+ var buttonStr = "";
+ var callbacks = {
+ onEscape: options.onEscape
+ };
+
+ each(buttons, function(key, button) {
+
+ // @TODO I don't like this string appending to itself; bit dirty. Needs reworking
+ // can we just build up button elements instead? slower but neater. Then button
+ // can just become a template too
+ buttonStr += "<button data-bb-handler='" + key + "' type='button' class='btn " + button.className + "'>" + button.label + "</button>";
+ callbacks[key] = button.callback;
+ });
+
+ body.find(".bootbox-body").html(options.message);
+
+ if (options.animate === true) {
+ dialog.addClass("fade");
+ }
+
+ if (options.className) {
+ dialog.addClass(options.className);
+ }
+
+ if (options.size === "large") {
+ innerDialog.addClass("modal-lg");
+ }
+
+ if (options.size === "small") {
+ innerDialog.addClass("modal-sm");
+ }
+
+ if (options.title) {
+ body.before(templates.header);
+ }
+
+ if (options.closeButton) {
+ var closeButton = $(templates.closeButton);
+
+ if (options.title) {
+ dialog.find(".modal-header").prepend(closeButton);
+ } else {
+ closeButton.css("margin-top", "-10px").prependTo(body);
+ }
+ }
+
+ if (options.title) {
+ dialog.find(".modal-title").html(options.title);
+ }
+
+ if (buttonStr.length) {
+ body.after(templates.footer);
+ dialog.find(".modal-footer").html(buttonStr);
+ }
+
+
+ /**
+ * Bootstrap event listeners; used handle extra
+ * setup & teardown required after the underlying
+ * modal has performed certain actions
+ */
+
+ dialog.on("hidden.bs.modal", function(e) {
+ // ensure we don't accidentally intercept hidden events triggered
+ // by children of the current dialog. We shouldn't anymore now BS
+ // namespaces its events; but still worth doing
+ if (e.target === this) {
+ dialog.remove();
+ }
+ });
+
+ /*
+ dialog.on("show.bs.modal", function() {
+ // sadly this doesn't work; show is called *just* before
+ // the backdrop is added so we'd need a setTimeout hack or
+ // otherwise... leaving in as would be nice
+ if (options.backdrop) {
+ dialog.next(".modal-backdrop").addClass("bootbox-backdrop");
+ }
+ });
+ */
+
+ dialog.on("shown.bs.modal", function() {
+ dialog.find(".btn-primary:first").focus();
+ });
+
+ /**
+ * Bootbox event listeners; experimental and may not last
+ * just an attempt to decouple some behaviours from their
+ * respective triggers
+ */
+
+ dialog.on("escape.close.bb", function(e) {
+ if (callbacks.onEscape) {
+ processCallback(e, dialog, callbacks.onEscape);
+ }
+ });
+
+ /**
+ * Standard jQuery event listeners; used to handle user
+ * interaction with our dialog
+ */
+
+ dialog.on("click", ".modal-footer button", function(e) {
+ var callbackKey = $(this).data("bb-handler");
+
+ processCallback(e, dialog, callbacks[callbackKey]);
+
+ });
+
+ dialog.on("click", ".bootbox-close-button", function(e) {
+ // onEscape might be falsy but that's fine; the fact is
+ // if the user has managed to click the close button we
+ // have to close the dialog, callback or not
+ processCallback(e, dialog, callbacks.onEscape);
+ });
+
+ dialog.on("keyup", function(e) {
+ if (e.which === 27) {
+ dialog.trigger("escape.close.bb");
+ }
+ });
+
+ // the remainder of this method simply deals with adding our
+ // dialogent to the DOM, augmenting it with Bootstrap's modal
+ // functionality and then giving the resulting object back
+ // to our caller
+
+ $(options.container).append(dialog);
+
+ dialog.modal({
+ backdrop: options.backdrop,
+ keyboard: false,
+ show: false
+ });
+
+ if (options.show) {
+ dialog.modal("show");
+ }
+
+ // @TODO should we return the raw element here or should
+ // we wrap it in an object on which we can expose some neater
+ // methods, e.g. var d = bootbox.alert(); d.hide(); instead
+ // of d.modal("hide");
+
+ /*
+ function BBDialog(elem) {
+ this.elem = elem;
+ }
+
+ BBDialog.prototype = {
+ hide: function() {
+ return this.elem.modal("hide");
+ },
+ show: function() {
+ return this.elem.modal("show");
+ }
+ };
+ */
+
+ return dialog;
+
+ };
+
+ exports.setDefaults = function() {
+ var values = {};
+
+ if (arguments.length === 2) {
+ // allow passing of single key/value...
+ values[arguments[0]] = arguments[1];
+ } else {
+ // ... and as an object too
+ values = arguments[0];
+ }
+
+ $.extend(defaults, values);
+ };
+
+ exports.hideAll = function() {
+ $(".bootbox").modal("hide");
+
+ return exports;
+ };
+
+
+ /**
+ * standard locales. Please add more according to ISO 639-1 standard. Multiple language variants are
+ * unlikely to be required. If this gets too large it can be split out into separate JS files.
+ */
+ var locales = {
+ br : {
+ OK : "OK",
+ CANCEL : "Cancelar",
+ CONFIRM : "Sim"
+ },
+ cs : {
+ OK : "OK",
+ CANCEL : "Zrušit",
+ CONFIRM : "Potvrdit"
+ },
+ da : {
+ OK : "OK",
+ CANCEL : "Annuller",
+ CONFIRM : "Accepter"
+ },
+ de : {
+ OK : "OK",
+ CANCEL : "Abbrechen",
+ CONFIRM : "Akzeptieren"
+ },
+ el : {
+ OK : "Εντάξει",
+ CANCEL : "ΑκÏÏωση",
+ CONFIRM : "Επιβεβαίωση"
+ },
+ en : {
+ OK : "OK",
+ CANCEL : "Cancel",
+ CONFIRM : "OK"
+ },
+ es : {
+ OK : "OK",
+ CANCEL : "Cancelar",
+ CONFIRM : "Aceptar"
+ },
+ et : {
+ OK : "OK",
+ CANCEL : "Katkesta",
+ CONFIRM : "OK"
+ },
+ fi : {
+ OK : "OK",
+ CANCEL : "Peruuta",
+ CONFIRM : "OK"
+ },
+ fr : {
+ OK : "OK",
+ CANCEL : "Annuler",
+ CONFIRM : "D'accord"
+ },
+ he : {
+ OK : "×ישור",
+ CANCEL : "ביטול",
+ CONFIRM : "×ישור"
+ },
+ id : {
+ OK : "OK",
+ CANCEL : "Batal",
+ CONFIRM : "OK"
+ },
+ it : {
+ OK : "OK",
+ CANCEL : "Annulla",
+ CONFIRM : "Conferma"
+ },
+ ja : {
+ OK : "OK",
+ CANCEL : "キャンセル",
+ CONFIRM : "確èª"
+ },
+ lt : {
+ OK : "Gerai",
+ CANCEL : "Atšaukti",
+ CONFIRM : "Patvirtinti"
+ },
+ lv : {
+ OK : "Labi",
+ CANCEL : "Atcelt",
+ CONFIRM : "ApstiprinÄt"
+ },
+ nl : {
+ OK : "OK",
+ CANCEL : "Annuleren",
+ CONFIRM : "Accepteren"
+ },
+ no : {
+ OK : "OK",
+ CANCEL : "Avbryt",
+ CONFIRM : "OK"
+ },
+ pl : {
+ OK : "OK",
+ CANCEL : "Anuluj",
+ CONFIRM : "Potwierdź"
+ },
+ pt : {
+ OK : "OK",
+ CANCEL : "Cancelar",
+ CONFIRM : "Confirmar"
+ },
+ ru : {
+ OK : "OK",
+ CANCEL : "Отмена",
+ CONFIRM : "Применить"
+ },
+ sv : {
+ OK : "OK",
+ CANCEL : "Avbryt",
+ CONFIRM : "OK"
+ },
+ tr : {
+ OK : "Tamam",
+ CANCEL : "Ä°ptal",
+ CONFIRM : "Onayla"
+ },
+ zh_CN : {
+ OK : "OK",
+ CANCEL : "å–消",
+ CONFIRM : "确认"
+ },
+ zh_TW : {
+ OK : "OK",
+ CANCEL : "å–消",
+ CONFIRM : "確èª"
+ }
+ };
+
+ exports.init = function(_$) {
+ return init(_$ || $);
+ };
+
+ return exports;
+}));
diff --git a/library/bootstrap/js/bootbox.min.js b/library/bootstrap/js/bootbox.min.js
index 4ea792f3a..a7ea24fe7 100644
--- a/library/bootstrap/js/bootbox.min.js
+++ b/library/bootstrap/js/bootbox.min.js
@@ -1,6 +1,6 @@
/**
- * bootbox.js v4.1.0
+ * bootbox.js v4.3.0
*
* http://bootboxjs.com/license.txt
*/
-window.bootbox=window.bootbox||function a(b,c){"use strict";function d(a){var b=r[p.locale];return b?b[a]:r.en[a]}function e(a,c,d){a.preventDefault();var e=b.isFunction(d)&&d(a)===!1;e||c.modal("hide")}function f(a){var b,c=0;for(b in a)c++;return c}function g(a,c){var d=0;b.each(a,function(a,b){c(a,b,d++)})}function h(a){var c,d;if("object"!=typeof a)throw new Error("Please supply an object of options");if(!a.message)throw new Error("Please specify a message");return a=b.extend({},p,a),a.buttons||(a.buttons={}),a.backdrop=a.backdrop?"static":!1,c=a.buttons,d=f(c),g(c,function(a,e,f){if(b.isFunction(e)&&(e=c[a]={callback:e}),"object"!==b.type(e))throw new Error("button with key "+a+" must be an object");e.label||(e.label=a),e.className||(e.className=2>=d&&f===d-1?"btn-primary":"btn-default")}),a}function i(a,b){var c=a.length,d={};if(1>c||c>2)throw new Error("Invalid argument length");return 2===c||"string"==typeof a[0]?(d[b[0]]=a[0],d[b[1]]=a[1]):d=a[0],d}function j(a,c,d){return b.extend(!0,{},a,i(c,d))}function k(a,b,c,d){var e={className:"bootbox-"+a,buttons:l.apply(null,b)};return m(j(e,d,c),b)}function l(){for(var a={},b=0,c=arguments.length;c>b;b++){var e=arguments[b],f=e.toLowerCase(),g=e.toUpperCase();a[f]={label:d(g)}}return a}function m(a,b){var d={};return g(b,function(a,b){d[b]=!0}),g(a.buttons,function(a){if(d[a]===c)throw new Error("button key "+a+" is not allowed (options are "+b.join("\n")+")")}),a}var n={dialog:"<div class='bootbox modal' tabindex='-1' role='dialog'><div class='modal-dialog'><div class='modal-content'><div class='modal-body'><div class='bootbox-body'></div></div></div></div></div>",header:"<div class='modal-header'><h4 class='modal-title'></h4></div>",footer:"<div class='modal-footer'></div>",closeButton:"<button type='button' class='bootbox-close-button close'>&times;</button>",form:"<form class='bootbox-form'></form>",inputs:{text:"<input class='bootbox-input bootbox-input-text form-control' autocomplete=off type=text />",email:"<input class='bootbox-input bootbox-input-email form-control' autocomplete='off' type='email' />",select:"<select class='bootbox-input bootbox-input-select form-control'></select>",checkbox:"<div class='checkbox'><label><input class='bootbox-input bootbox-input-checkbox' type='checkbox' /></label></div>"}},o=b("body"),p={locale:"en",backdrop:!0,animate:!0,className:null,closeButton:!0,show:!0},q={};q.alert=function(){var a;if(a=k("alert",["ok"],["message","callback"],arguments),a.callback&&!b.isFunction(a.callback))throw new Error("alert requires callback property to be a function when provided");return a.buttons.ok.callback=a.onEscape=function(){return b.isFunction(a.callback)?a.callback():!0},q.dialog(a)},q.confirm=function(){var a;if(a=k("confirm",["cancel","confirm"],["message","callback"],arguments),a.buttons.cancel.callback=a.onEscape=function(){return a.callback(!1)},a.buttons.confirm.callback=function(){return a.callback(!0)},!b.isFunction(a.callback))throw new Error("confirm requires a callback");return q.dialog(a)},q.prompt=function(){var a,d,e,f,h,i,k;if(f=b(n.form),d={className:"bootbox-prompt",buttons:l("cancel","confirm"),value:"",inputType:"text"},a=m(j(d,arguments,["title","callback"]),["cancel","confirm"]),i=a.show===c?!0:a.show,a.message=f,a.buttons.cancel.callback=a.onEscape=function(){return a.callback(null)},a.buttons.confirm.callback=function(){var c;switch(a.inputType){case"text":case"email":case"select":c=h.val();break;case"checkbox":var d=h.find("input:checked");c=[],g(d,function(a,d){c.push(b(d).val())})}return a.callback(c)},a.show=!1,!a.title)throw new Error("prompt requires a title");if(!b.isFunction(a.callback))throw new Error("prompt requires a callback");if(!n.inputs[a.inputType])throw new Error("invalid prompt type");switch(h=b(n.inputs[a.inputType]),a.inputType){case"text":case"email":h.val(a.value);break;case"select":var o={};if(k=a.inputOptions||[],!k.length)throw new Error("prompt with select requires options");g(k,function(a,d){var e=h;if(d.value===c||d.text===c)throw new Error("given options in wrong format");d.group&&(o[d.group]||(o[d.group]=b("<optgroup/>").attr("label",d.group)),e=o[d.group]),e.append("<option value='"+d.value+"'>"+d.text+"</option>")}),g(o,function(a,b){h.append(b)}),h.val(a.value);break;case"checkbox":var p=b.isArray(a.value)?a.value:[a.value];if(k=a.inputOptions||[],!k.length)throw new Error("prompt with checkbox requires options");if(!k[0].value||!k[0].text)throw new Error("given options in wrong format");h=b("<div/>"),g(k,function(c,d){var e=b(n.inputs[a.inputType]);e.find("input").attr("value",d.value),e.find("label").append(d.text),g(p,function(a,b){b===d.value&&e.find("input").prop("checked",!0)}),h.append(e)})}return a.placeholder&&h.attr("placeholder",a.placeholder),f.append(h),f.on("submit",function(a){a.preventDefault(),e.find(".btn-primary").click()}),e=q.dialog(a),e.off("shown.bs.modal"),e.on("shown.bs.modal",function(){h.focus()}),i===!0&&e.modal("show"),e},q.dialog=function(a){a=h(a);var c=b(n.dialog),d=c.find(".modal-body"),f=a.buttons,i="",j={onEscape:a.onEscape};if(g(f,function(a,b){i+="<button data-bb-handler='"+a+"' type='button' class='btn "+b.className+"'>"+b.label+"</button>",j[a]=b.callback}),d.find(".bootbox-body").html(a.message),a.animate===!0&&c.addClass("fade"),a.className&&c.addClass(a.className),a.title&&d.before(n.header),a.closeButton){var k=b(n.closeButton);a.title?c.find(".modal-header").prepend(k):k.css("margin-top","-10px").prependTo(d)}return a.title&&c.find(".modal-title").html(a.title),i.length&&(d.after(n.footer),c.find(".modal-footer").html(i)),c.on("hidden.bs.modal",function(a){a.target===this&&c.remove()}),c.on("shown.bs.modal",function(){c.find(".btn-primary:first").focus()}),c.on("escape.close.bb",function(a){j.onEscape&&e(a,c,j.onEscape)}),c.on("click",".modal-footer button",function(a){var d=b(this).data("bb-handler");e(a,c,j[d])}),c.on("click",".bootbox-close-button",function(a){e(a,c,j.onEscape)}),c.on("keyup",function(a){27===a.which&&c.trigger("escape.close.bb")}),o.append(c),c.modal({backdrop:a.backdrop,keyboard:!1,show:!1}),a.show&&c.modal("show"),c},q.setDefaults=function(){var a={};2===arguments.length?a[arguments[0]]=arguments[1]:a=arguments[0],b.extend(p,a)},q.hideAll=function(){b(".bootbox").modal("hide")};var r={br:{OK:"OK",CANCEL:"Cancelar",CONFIRM:"Sim"},da:{OK:"OK",CANCEL:"Annuller",CONFIRM:"Accepter"},de:{OK:"OK",CANCEL:"Abbrechen",CONFIRM:"Akzeptieren"},en:{OK:"OK",CANCEL:"Cancel",CONFIRM:"OK"},es:{OK:"OK",CANCEL:"Cancelar",CONFIRM:"Aceptar"},fi:{OK:"OK",CANCEL:"Peruuta",CONFIRM:"OK"},fr:{OK:"OK",CANCEL:"Annuler",CONFIRM:"D'accord"},it:{OK:"OK",CANCEL:"Annulla",CONFIRM:"Conferma"},nl:{OK:"OK",CANCEL:"Annuleren",CONFIRM:"Accepteren"},no:{OK:"OK",CANCEL:"Avbryt",CONFIRM:"OK"},pl:{OK:"OK",CANCEL:"Anuluj",CONFIRM:"Potwierdź"},ru:{OK:"OK",CANCEL:"Отмена",CONFIRM:"Применить"},zh_CN:{OK:"OK",CANCEL:"å–消",CONFIRM:"确认"},zh_TW:{OK:"OK",CANCEL:"å–消",CONFIRM:"確èª"}};return q.init=function(c){window.bootbox=a(c||b)},q}(window.jQuery); \ No newline at end of file
+!function(a,b){"use strict";"function"==typeof define&&define.amd?define(["jquery"],b):"object"==typeof exports?module.exports=b(require("jquery")):a.bootbox=b(a.jQuery)}(this,function a(b,c){"use strict";function d(a){var b=q[o.locale];return b?b[a]:q.en[a]}function e(a,c,d){a.stopPropagation(),a.preventDefault();var e=b.isFunction(d)&&d(a)===!1;e||c.modal("hide")}function f(a){var b,c=0;for(b in a)c++;return c}function g(a,c){var d=0;b.each(a,function(a,b){c(a,b,d++)})}function h(a){var c,d;if("object"!=typeof a)throw new Error("Please supply an object of options");if(!a.message)throw new Error("Please specify a message");return a=b.extend({},o,a),a.buttons||(a.buttons={}),a.backdrop=a.backdrop?"static":!1,c=a.buttons,d=f(c),g(c,function(a,e,f){if(b.isFunction(e)&&(e=c[a]={callback:e}),"object"!==b.type(e))throw new Error("button with key "+a+" must be an object");e.label||(e.label=a),e.className||(e.className=2>=d&&f===d-1?"btn-primary":"btn-default")}),a}function i(a,b){var c=a.length,d={};if(1>c||c>2)throw new Error("Invalid argument length");return 2===c||"string"==typeof a[0]?(d[b[0]]=a[0],d[b[1]]=a[1]):d=a[0],d}function j(a,c,d){return b.extend(!0,{},a,i(c,d))}function k(a,b,c,d){var e={className:"bootbox-"+a,buttons:l.apply(null,b)};return m(j(e,d,c),b)}function l(){for(var a={},b=0,c=arguments.length;c>b;b++){var e=arguments[b],f=e.toLowerCase(),g=e.toUpperCase();a[f]={label:d(g)}}return a}function m(a,b){var d={};return g(b,function(a,b){d[b]=!0}),g(a.buttons,function(a){if(d[a]===c)throw new Error("button key "+a+" is not allowed (options are "+b.join("\n")+")")}),a}var n={dialog:"<div class='bootbox modal' tabindex='-1' role='dialog'><div class='modal-dialog'><div class='modal-content'><div class='modal-body'><div class='bootbox-body'></div></div></div></div></div>",header:"<div class='modal-header'><h4 class='modal-title'></h4></div>",footer:"<div class='modal-footer'></div>",closeButton:"<button type='button' class='bootbox-close-button close' data-dismiss='modal' aria-hidden='true'>&times;</button>",form:"<form class='bootbox-form'></form>",inputs:{text:"<input class='bootbox-input bootbox-input-text form-control' autocomplete=off type=text />",textarea:"<textarea class='bootbox-input bootbox-input-textarea form-control'></textarea>",email:"<input class='bootbox-input bootbox-input-email form-control' autocomplete='off' type='email' />",select:"<select class='bootbox-input bootbox-input-select form-control'></select>",checkbox:"<div class='checkbox'><label><input class='bootbox-input bootbox-input-checkbox' type='checkbox' /></label></div>",date:"<input class='bootbox-input bootbox-input-date form-control' autocomplete=off type='date' />",time:"<input class='bootbox-input bootbox-input-time form-control' autocomplete=off type='time' />",number:"<input class='bootbox-input bootbox-input-number form-control' autocomplete=off type='number' />",password:"<input class='bootbox-input bootbox-input-password form-control' autocomplete='off' type='password' />"}},o={locale:"en",backdrop:!0,animate:!0,className:null,closeButton:!0,show:!0,container:"body"},p={};p.alert=function(){var a;if(a=k("alert",["ok"],["message","callback"],arguments),a.callback&&!b.isFunction(a.callback))throw new Error("alert requires callback property to be a function when provided");return a.buttons.ok.callback=a.onEscape=function(){return b.isFunction(a.callback)?a.callback():!0},p.dialog(a)},p.confirm=function(){var a;if(a=k("confirm",["cancel","confirm"],["message","callback"],arguments),a.buttons.cancel.callback=a.onEscape=function(){return a.callback(!1)},a.buttons.confirm.callback=function(){return a.callback(!0)},!b.isFunction(a.callback))throw new Error("confirm requires a callback");return p.dialog(a)},p.prompt=function(){var a,d,e,f,h,i,k;if(f=b(n.form),d={className:"bootbox-prompt",buttons:l("cancel","confirm"),value:"",inputType:"text"},a=m(j(d,arguments,["title","callback"]),["cancel","confirm"]),i=a.show===c?!0:a.show,a.message=f,a.buttons.cancel.callback=a.onEscape=function(){return a.callback(null)},a.buttons.confirm.callback=function(){var c;switch(a.inputType){case"text":case"textarea":case"email":case"select":case"date":case"time":case"number":case"password":c=h.val();break;case"checkbox":var d=h.find("input:checked");c=[],g(d,function(a,d){c.push(b(d).val())})}return a.callback(c)},a.show=!1,!a.title)throw new Error("prompt requires a title");if(!b.isFunction(a.callback))throw new Error("prompt requires a callback");if(!n.inputs[a.inputType])throw new Error("invalid prompt type");switch(h=b(n.inputs[a.inputType]),a.inputType){case"text":case"textarea":case"email":case"date":case"time":case"number":case"password":h.val(a.value);break;case"select":var o={};if(k=a.inputOptions||[],!k.length)throw new Error("prompt with select requires options");g(k,function(a,d){var e=h;if(d.value===c||d.text===c)throw new Error("given options in wrong format");d.group&&(o[d.group]||(o[d.group]=b("<optgroup/>").attr("label",d.group)),e=o[d.group]),e.append("<option value='"+d.value+"'>"+d.text+"</option>")}),g(o,function(a,b){h.append(b)}),h.val(a.value);break;case"checkbox":var q=b.isArray(a.value)?a.value:[a.value];if(k=a.inputOptions||[],!k.length)throw new Error("prompt with checkbox requires options");if(!k[0].value||!k[0].text)throw new Error("given options in wrong format");h=b("<div/>"),g(k,function(c,d){var e=b(n.inputs[a.inputType]);e.find("input").attr("value",d.value),e.find("label").append(d.text),g(q,function(a,b){b===d.value&&e.find("input").prop("checked",!0)}),h.append(e)})}return a.placeholder&&h.attr("placeholder",a.placeholder),a.pattern&&h.attr("pattern",a.pattern),f.append(h),f.on("submit",function(a){a.preventDefault(),a.stopPropagation(),e.find(".btn-primary").click()}),e=p.dialog(a),e.off("shown.bs.modal"),e.on("shown.bs.modal",function(){h.focus()}),i===!0&&e.modal("show"),e},p.dialog=function(a){a=h(a);var c=b(n.dialog),d=c.find(".modal-dialog"),f=c.find(".modal-body"),i=a.buttons,j="",k={onEscape:a.onEscape};if(g(i,function(a,b){j+="<button data-bb-handler='"+a+"' type='button' class='btn "+b.className+"'>"+b.label+"</button>",k[a]=b.callback}),f.find(".bootbox-body").html(a.message),a.animate===!0&&c.addClass("fade"),a.className&&c.addClass(a.className),"large"===a.size&&d.addClass("modal-lg"),"small"===a.size&&d.addClass("modal-sm"),a.title&&f.before(n.header),a.closeButton){var l=b(n.closeButton);a.title?c.find(".modal-header").prepend(l):l.css("margin-top","-10px").prependTo(f)}return a.title&&c.find(".modal-title").html(a.title),j.length&&(f.after(n.footer),c.find(".modal-footer").html(j)),c.on("hidden.bs.modal",function(a){a.target===this&&c.remove()}),c.on("shown.bs.modal",function(){c.find(".btn-primary:first").focus()}),c.on("escape.close.bb",function(a){k.onEscape&&e(a,c,k.onEscape)}),c.on("click",".modal-footer button",function(a){var d=b(this).data("bb-handler");e(a,c,k[d])}),c.on("click",".bootbox-close-button",function(a){e(a,c,k.onEscape)}),c.on("keyup",function(a){27===a.which&&c.trigger("escape.close.bb")}),b(a.container).append(c),c.modal({backdrop:a.backdrop,keyboard:!1,show:!1}),a.show&&c.modal("show"),c},p.setDefaults=function(){var a={};2===arguments.length?a[arguments[0]]=arguments[1]:a=arguments[0],b.extend(o,a)},p.hideAll=function(){return b(".bootbox").modal("hide"),p};var q={br:{OK:"OK",CANCEL:"Cancelar",CONFIRM:"Sim"},cs:{OK:"OK",CANCEL:"ZruÅ¡it",CONFIRM:"Potvrdit"},da:{OK:"OK",CANCEL:"Annuller",CONFIRM:"Accepter"},de:{OK:"OK",CANCEL:"Abbrechen",CONFIRM:"Akzeptieren"},el:{OK:"Εντάξει",CANCEL:"ΑκÏÏωση",CONFIRM:"Επιβεβαίωση"},en:{OK:"OK",CANCEL:"Cancel",CONFIRM:"OK"},es:{OK:"OK",CANCEL:"Cancelar",CONFIRM:"Aceptar"},et:{OK:"OK",CANCEL:"Katkesta",CONFIRM:"OK"},fi:{OK:"OK",CANCEL:"Peruuta",CONFIRM:"OK"},fr:{OK:"OK",CANCEL:"Annuler",CONFIRM:"D'accord"},he:{OK:"×ישור",CANCEL:"ביטול",CONFIRM:"×ישור"},id:{OK:"OK",CANCEL:"Batal",CONFIRM:"OK"},it:{OK:"OK",CANCEL:"Annulla",CONFIRM:"Conferma"},ja:{OK:"OK",CANCEL:"キャンセル",CONFIRM:"確èª"},lt:{OK:"Gerai",CANCEL:"AtÅ¡aukti",CONFIRM:"Patvirtinti"},lv:{OK:"Labi",CANCEL:"Atcelt",CONFIRM:"ApstiprinÄt"},nl:{OK:"OK",CANCEL:"Annuleren",CONFIRM:"Accepteren"},no:{OK:"OK",CANCEL:"Avbryt",CONFIRM:"OK"},pl:{OK:"OK",CANCEL:"Anuluj",CONFIRM:"Potwierdź"},pt:{OK:"OK",CANCEL:"Cancelar",CONFIRM:"Confirmar"},ru:{OK:"OK",CANCEL:"Отмена",CONFIRM:"Применить"},sv:{OK:"OK",CANCEL:"Avbryt",CONFIRM:"OK"},tr:{OK:"Tamam",CANCEL:"Ä°ptal",CONFIRM:"Onayla"},zh_CN:{OK:"OK",CANCEL:"å–消",CONFIRM:"确认"},zh_TW:{OK:"OK",CANCEL:"å–消",CONFIRM:"確èª"}};return p.init=function(c){return a(c||b)},p}); \ No newline at end of file
diff --git a/library/bootstrap/js/bootstrap.js b/library/bootstrap/js/bootstrap.js
index 53da1c77c..b6ac8d990 100644
--- a/library/bootstrap/js/bootstrap.js
+++ b/library/bootstrap/js/bootstrap.js
@@ -1,13 +1,22 @@
/*!
- * Bootstrap v3.2.0 (http://getbootstrap.com)
+ * Bootstrap v3.3.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\'s JavaScript requires jQuery') }
+if (typeof jQuery === 'undefined') {
+ throw new Error('Bootstrap\'s JavaScript requires jQuery')
+}
+
++function ($) {
+ var version = $.fn.jquery.split(' ')[0].split('.')
+ if ((version[0] < 2 && version[1] < 9) || (version[0] == 1 && version[1] == 9 && version[2] < 1)) {
+ throw new Error('Bootstrap\'s JavaScript requires jQuery version 1.9.1 or higher')
+ }
+}(jQuery);
/* ========================================================================
- * Bootstrap: transition.js v3.2.0
+ * Bootstrap: transition.js v3.3.1
* http://getbootstrap.com/javascript/#transitions
* ========================================================================
* Copyright 2011-2014 Twitter, Inc.
@@ -67,7 +76,7 @@ if (typeof jQuery === 'undefined') { throw new Error('Bootstrap\'s JavaScript re
}(jQuery);
/* ========================================================================
- * Bootstrap: alert.js v3.2.0
+ * Bootstrap: alert.js v3.3.1
* http://getbootstrap.com/javascript/#alerts
* ========================================================================
* Copyright 2011-2014 Twitter, Inc.
@@ -86,7 +95,9 @@ if (typeof jQuery === 'undefined') { throw new Error('Bootstrap\'s JavaScript re
$(el).on('click', dismiss, this.close)
}
- Alert.VERSION = '3.2.0'
+ Alert.VERSION = '3.3.1'
+
+ Alert.TRANSITION_DURATION = 150
Alert.prototype.close = function (e) {
var $this = $(this)
@@ -102,7 +113,7 @@ if (typeof jQuery === 'undefined') { throw new Error('Bootstrap\'s JavaScript re
if (e) e.preventDefault()
if (!$parent.length) {
- $parent = $this.hasClass('alert') ? $this : $this.parent()
+ $parent = $this.closest('.alert')
}
$parent.trigger(e = $.Event('close.bs.alert'))
@@ -119,7 +130,7 @@ if (typeof jQuery === 'undefined') { throw new Error('Bootstrap\'s JavaScript re
$.support.transition && $parent.hasClass('fade') ?
$parent
.one('bsTransitionEnd', removeElement)
- .emulateTransitionEnd(150) :
+ .emulateTransitionEnd(Alert.TRANSITION_DURATION) :
removeElement()
}
@@ -160,7 +171,7 @@ if (typeof jQuery === 'undefined') { throw new Error('Bootstrap\'s JavaScript re
}(jQuery);
/* ========================================================================
- * Bootstrap: button.js v3.2.0
+ * Bootstrap: button.js v3.3.1
* http://getbootstrap.com/javascript/#buttons
* ========================================================================
* Copyright 2011-2014 Twitter, Inc.
@@ -180,7 +191,7 @@ if (typeof jQuery === 'undefined') { throw new Error('Bootstrap\'s JavaScript re
this.isLoading = false
}
- Button.VERSION = '3.2.0'
+ Button.VERSION = '3.3.1'
Button.DEFAULTS = {
loadingText: 'loading...'
@@ -196,10 +207,10 @@ if (typeof jQuery === 'undefined') { throw new Error('Bootstrap\'s JavaScript re
if (data.resetText == null) $el.data('resetText', $el[val]())
- $el[val](data[state] == null ? this.options[state] : data[state])
-
// push to event loop to allow forms to submit
setTimeout($.proxy(function () {
+ $el[val](data[state] == null ? this.options[state] : data[state])
+
if (state == 'loadingText') {
this.isLoading = true
$el.addClass(d).attr(d, d)
@@ -221,6 +232,8 @@ if (typeof jQuery === 'undefined') { throw new Error('Bootstrap\'s JavaScript re
else $parent.find('.active').removeClass('active')
}
if (changed) $input.prop('checked', !this.$element.hasClass('active')).trigger('change')
+ } else {
+ this.$element.attr('aria-pressed', !this.$element.hasClass('active'))
}
if (changed) this.$element.toggleClass('active')
@@ -261,17 +274,21 @@ if (typeof jQuery === 'undefined') { throw new Error('Bootstrap\'s JavaScript re
// BUTTON DATA-API
// ===============
- $(document).on('click.bs.button.data-api', '[data-toggle^="button"]', function (e) {
- var $btn = $(e.target)
- if (!$btn.hasClass('btn')) $btn = $btn.closest('.btn')
- Plugin.call($btn, 'toggle')
- e.preventDefault()
- })
+ $(document)
+ .on('click.bs.button.data-api', '[data-toggle^="button"]', function (e) {
+ var $btn = $(e.target)
+ if (!$btn.hasClass('btn')) $btn = $btn.closest('.btn')
+ Plugin.call($btn, 'toggle')
+ e.preventDefault()
+ })
+ .on('focus.bs.button.data-api blur.bs.button.data-api', '[data-toggle^="button"]', function (e) {
+ $(e.target).closest('.btn').toggleClass('focus', /^focus(in)?$/.test(e.type))
+ })
}(jQuery);
/* ========================================================================
- * Bootstrap: carousel.js v3.2.0
+ * Bootstrap: carousel.js v3.3.1
* http://getbootstrap.com/javascript/#carousel
* ========================================================================
* Copyright 2011-2014 Twitter, Inc.
@@ -286,7 +303,7 @@ if (typeof jQuery === 'undefined') { throw new Error('Bootstrap\'s JavaScript re
// =========================
var Carousel = function (element, options) {
- this.$element = $(element).on('keydown.bs.carousel', $.proxy(this.keydown, this))
+ this.$element = $(element)
this.$indicators = this.$element.find('.carousel-indicators')
this.options = options
this.paused =
@@ -295,20 +312,26 @@ if (typeof jQuery === 'undefined') { throw new Error('Bootstrap\'s JavaScript re
this.$active =
this.$items = null
- this.options.pause == 'hover' && this.$element
+ this.options.keyboard && this.$element.on('keydown.bs.carousel', $.proxy(this.keydown, this))
+
+ this.options.pause == 'hover' && !('ontouchstart' in document.documentElement) && this.$element
.on('mouseenter.bs.carousel', $.proxy(this.pause, this))
.on('mouseleave.bs.carousel', $.proxy(this.cycle, this))
}
- Carousel.VERSION = '3.2.0'
+ Carousel.VERSION = '3.3.1'
+
+ Carousel.TRANSITION_DURATION = 600
Carousel.DEFAULTS = {
interval: 5000,
pause: 'hover',
- wrap: true
+ wrap: true,
+ keyboard: true
}
Carousel.prototype.keydown = function (e) {
+ if (/input|textarea/i.test(e.target.tagName)) return
switch (e.which) {
case 37: this.prev(); break
case 39: this.next(); break
@@ -335,6 +358,13 @@ if (typeof jQuery === 'undefined') { throw new Error('Bootstrap\'s JavaScript re
return this.$items.index(item || this.$active)
}
+ Carousel.prototype.getItemForDirection = function (direction, active) {
+ var delta = direction == 'prev' ? -1 : 1
+ var activeIndex = this.getItemIndex(active)
+ var itemIndex = (activeIndex + delta) % this.$items.length
+ return this.$items.eq(itemIndex)
+ }
+
Carousel.prototype.to = function (pos) {
var that = this
var activeIndex = this.getItemIndex(this.$active = this.$element.find('.item.active'))
@@ -344,7 +374,7 @@ if (typeof jQuery === 'undefined') { throw new Error('Bootstrap\'s JavaScript re
if (this.sliding) return this.$element.one('slid.bs.carousel', function () { that.to(pos) }) // yes, "slid"
if (activeIndex == pos) return this.pause().cycle()
- return this.slide(pos > activeIndex ? 'next' : 'prev', $(this.$items[pos]))
+ return this.slide(pos > activeIndex ? 'next' : 'prev', this.$items.eq(pos))
}
Carousel.prototype.pause = function (e) {
@@ -372,7 +402,7 @@ if (typeof jQuery === 'undefined') { throw new Error('Bootstrap\'s JavaScript re
Carousel.prototype.slide = function (type, next) {
var $active = this.$element.find('.item.active')
- var $next = next || $active[type]()
+ var $next = next || this.getItemForDirection(type, $active)
var isCycling = this.interval
var direction = type == 'next' ? 'left' : 'right'
var fallback = type == 'next' ? 'first' : 'last'
@@ -418,7 +448,7 @@ if (typeof jQuery === 'undefined') { throw new Error('Bootstrap\'s JavaScript re
that.$element.trigger(slidEvent)
}, 0)
})
- .emulateTransitionEnd($active.css('transition-duration').slice(0, -1) * 1000)
+ .emulateTransitionEnd(Carousel.TRANSITION_DURATION)
} else {
$active.removeClass('active')
$next.addClass('active')
@@ -467,7 +497,7 @@ if (typeof jQuery === 'undefined') { throw new Error('Bootstrap\'s JavaScript re
// CAROUSEL DATA-API
// =================
- $(document).on('click.bs.carousel.data-api', '[data-slide], [data-slide-to]', function (e) {
+ var clickHandler = function (e) {
var href
var $this = $(this)
var $target = $($this.attr('data-target') || (href = $this.attr('href')) && href.replace(/.*(?=#[^\s]+$)/, '')) // strip for ie7
@@ -483,7 +513,11 @@ if (typeof jQuery === 'undefined') { throw new Error('Bootstrap\'s JavaScript re
}
e.preventDefault()
- })
+ }
+
+ $(document)
+ .on('click.bs.carousel.data-api', '[data-slide]', clickHandler)
+ .on('click.bs.carousel.data-api', '[data-slide-to]', clickHandler)
$(window).on('load', function () {
$('[data-ride="carousel"]').each(function () {
@@ -495,7 +529,7 @@ if (typeof jQuery === 'undefined') { throw new Error('Bootstrap\'s JavaScript re
}(jQuery);
/* ========================================================================
- * Bootstrap: collapse.js v3.2.0
+ * Bootstrap: collapse.js v3.3.1
* http://getbootstrap.com/javascript/#collapse
* ========================================================================
* Copyright 2011-2014 Twitter, Inc.
@@ -512,16 +546,25 @@ if (typeof jQuery === 'undefined') { throw new Error('Bootstrap\'s JavaScript re
var Collapse = function (element, options) {
this.$element = $(element)
this.options = $.extend({}, Collapse.DEFAULTS, options)
+ this.$trigger = $(this.options.trigger).filter('[href="#' + element.id + '"], [data-target="#' + element.id + '"]')
this.transitioning = null
- if (this.options.parent) this.$parent = $(this.options.parent)
+ if (this.options.parent) {
+ this.$parent = this.getParent()
+ } else {
+ this.addAriaAndCollapsedClass(this.$element, this.$trigger)
+ }
+
if (this.options.toggle) this.toggle()
}
- Collapse.VERSION = '3.2.0'
+ Collapse.VERSION = '3.3.1'
+
+ Collapse.TRANSITION_DURATION = 350
Collapse.DEFAULTS = {
- toggle: true
+ toggle: true,
+ trigger: '[data-toggle="collapse"]'
}
Collapse.prototype.dimension = function () {
@@ -532,17 +575,21 @@ if (typeof jQuery === 'undefined') { throw new Error('Bootstrap\'s JavaScript re
Collapse.prototype.show = function () {
if (this.transitioning || this.$element.hasClass('in')) return
+ var activesData
+ var actives = this.$parent && this.$parent.find('> .panel').children('.in, .collapsing')
+
+ if (actives && actives.length) {
+ activesData = actives.data('bs.collapse')
+ if (activesData && activesData.transitioning) return
+ }
+
var startEvent = $.Event('show.bs.collapse')
this.$element.trigger(startEvent)
if (startEvent.isDefaultPrevented()) return
- var actives = this.$parent && this.$parent.find('> .panel > .in')
-
if (actives && actives.length) {
- var hasData = actives.data('bs.collapse')
- if (hasData && hasData.transitioning) return
Plugin.call(actives, 'hide')
- hasData || actives.data('bs.collapse', null)
+ activesData || actives.data('bs.collapse', null)
}
var dimension = this.dimension()
@@ -550,6 +597,11 @@ if (typeof jQuery === 'undefined') { throw new Error('Bootstrap\'s JavaScript re
this.$element
.removeClass('collapse')
.addClass('collapsing')[dimension](0)
+ .attr('aria-expanded', true)
+
+ this.$trigger
+ .removeClass('collapsed')
+ .attr('aria-expanded', true)
this.transitioning = 1
@@ -568,7 +620,7 @@ if (typeof jQuery === 'undefined') { throw new Error('Bootstrap\'s JavaScript re
this.$element
.one('bsTransitionEnd', $.proxy(complete, this))
- .emulateTransitionEnd(350)[dimension](this.$element[0][scrollSize])
+ .emulateTransitionEnd(Collapse.TRANSITION_DURATION)[dimension](this.$element[0][scrollSize])
}
Collapse.prototype.hide = function () {
@@ -584,17 +636,21 @@ if (typeof jQuery === 'undefined') { throw new Error('Bootstrap\'s JavaScript re
this.$element
.addClass('collapsing')
- .removeClass('collapse')
- .removeClass('in')
+ .removeClass('collapse in')
+ .attr('aria-expanded', false)
+
+ this.$trigger
+ .addClass('collapsed')
+ .attr('aria-expanded', false)
this.transitioning = 1
var complete = function () {
this.transitioning = 0
this.$element
- .trigger('hidden.bs.collapse')
.removeClass('collapsing')
.addClass('collapse')
+ .trigger('hidden.bs.collapse')
}
if (!$.support.transition) return complete.call(this)
@@ -602,13 +658,40 @@ if (typeof jQuery === 'undefined') { throw new Error('Bootstrap\'s JavaScript re
this.$element
[dimension](0)
.one('bsTransitionEnd', $.proxy(complete, this))
- .emulateTransitionEnd(350)
+ .emulateTransitionEnd(Collapse.TRANSITION_DURATION)
}
Collapse.prototype.toggle = function () {
this[this.$element.hasClass('in') ? 'hide' : 'show']()
}
+ Collapse.prototype.getParent = function () {
+ return $(this.options.parent)
+ .find('[data-toggle="collapse"][data-parent="' + this.options.parent + '"]')
+ .each($.proxy(function (i, element) {
+ var $element = $(element)
+ this.addAriaAndCollapsedClass(getTargetFromTrigger($element), $element)
+ }, this))
+ .end()
+ }
+
+ Collapse.prototype.addAriaAndCollapsedClass = function ($element, $trigger) {
+ var isOpen = $element.hasClass('in')
+
+ $element.attr('aria-expanded', isOpen)
+ $trigger
+ .toggleClass('collapsed', !isOpen)
+ .attr('aria-expanded', isOpen)
+ }
+
+ function getTargetFromTrigger($trigger) {
+ var href
+ var target = $trigger.attr('data-target')
+ || (href = $trigger.attr('href')) && href.replace(/.*(?=#[^\s]+$)/, '') // strip for ie7
+
+ return $(target)
+ }
+
// COLLAPSE PLUGIN DEFINITION
// ==========================
@@ -619,7 +702,7 @@ if (typeof jQuery === 'undefined') { throw new Error('Bootstrap\'s JavaScript re
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 && options.toggle && option == 'show') options.toggle = false
if (!data) $this.data('bs.collapse', (data = new Collapse(this, options)))
if (typeof option == 'string') data[option]()
})
@@ -644,21 +727,13 @@ if (typeof jQuery === 'undefined') { throw new Error('Bootstrap\'s JavaScript re
// =================
$(document).on('click.bs.collapse.data-api', '[data-toggle="collapse"]', function (e) {
- var href
var $this = $(this)
- var target = $this.attr('data-target')
- || e.preventDefault()
- || (href = $this.attr('href')) && href.replace(/.*(?=#[^\s]+$)/, '') // strip for ie7
- var $target = $(target)
- var data = $target.data('bs.collapse')
- var option = data ? 'toggle' : $this.data()
- var parent = $this.attr('data-parent')
- var $parent = parent && $(parent)
- if (!data || !data.transitioning) {
- if ($parent) $parent.find('[data-toggle="collapse"][data-parent="' + parent + '"]').not($this).addClass('collapsed')
- $this[$target.hasClass('in') ? 'addClass' : 'removeClass']('collapsed')
- }
+ if (!$this.attr('data-target')) e.preventDefault()
+
+ var $target = getTargetFromTrigger($this)
+ var data = $target.data('bs.collapse')
+ var option = data ? 'toggle' : $.extend({}, $this.data(), { trigger: this })
Plugin.call($target, option)
})
@@ -666,7 +741,7 @@ if (typeof jQuery === 'undefined') { throw new Error('Bootstrap\'s JavaScript re
}(jQuery);
/* ========================================================================
- * Bootstrap: dropdown.js v3.2.0
+ * Bootstrap: dropdown.js v3.3.1
* http://getbootstrap.com/javascript/#dropdowns
* ========================================================================
* Copyright 2011-2014 Twitter, Inc.
@@ -686,7 +761,7 @@ if (typeof jQuery === 'undefined') { throw new Error('Bootstrap\'s JavaScript re
$(element).on('click.bs.dropdown', this.toggle)
}
- Dropdown.VERSION = '3.2.0'
+ Dropdown.VERSION = '3.3.1'
Dropdown.prototype.toggle = function (e) {
var $this = $(this)
@@ -709,7 +784,9 @@ if (typeof jQuery === 'undefined') { throw new Error('Bootstrap\'s JavaScript re
if (e.isDefaultPrevented()) return
- $this.trigger('focus')
+ $this
+ .trigger('focus')
+ .attr('aria-expanded', 'true')
$parent
.toggleClass('open')
@@ -720,7 +797,7 @@ if (typeof jQuery === 'undefined') { throw new Error('Bootstrap\'s JavaScript re
}
Dropdown.prototype.keydown = function (e) {
- if (!/(38|40|27)/.test(e.keyCode)) return
+ if (!/(38|40|27|32)/.test(e.which) || /input|textarea/i.test(e.target.tagName)) return
var $this = $(this)
@@ -732,7 +809,7 @@ if (typeof jQuery === 'undefined') { throw new Error('Bootstrap\'s JavaScript re
var $parent = getParent($this)
var isActive = $parent.hasClass('open')
- if (!isActive || (isActive && e.keyCode == 27)) {
+ if ((!isActive && e.which != 27) || (isActive && e.which == 27)) {
if (e.which == 27) $parent.find(toggle).trigger('focus')
return $this.trigger('click')
}
@@ -742,10 +819,10 @@ if (typeof jQuery === 'undefined') { throw new Error('Bootstrap\'s JavaScript re
if (!$items.length) return
- var index = $items.index($items.filter(':focus'))
+ var index = $items.index(e.target)
- if (e.keyCode == 38 && index > 0) index-- // up
- if (e.keyCode == 40 && index < $items.length - 1) index++ // down
+ if (e.which == 38 && index > 0) index-- // up
+ if (e.which == 40 && index < $items.length - 1) index++ // down
if (!~index) index = 0
$items.eq(index).trigger('focus')
@@ -755,11 +832,17 @@ if (typeof jQuery === 'undefined') { throw new Error('Bootstrap\'s JavaScript re
if (e && e.which === 3) return
$(backdrop).remove()
$(toggle).each(function () {
- var $parent = getParent($(this))
+ var $this = $(this)
+ var $parent = getParent($this)
var relatedTarget = { relatedTarget: this }
+
if (!$parent.hasClass('open')) return
+
$parent.trigger(e = $.Event('hide.bs.dropdown', relatedTarget))
+
if (e.isDefaultPrevented()) return
+
+ $this.attr('aria-expanded', 'false')
$parent.removeClass('open').trigger('hidden.bs.dropdown', relatedTarget)
})
}
@@ -813,12 +896,14 @@ if (typeof jQuery === 'undefined') { throw new Error('Bootstrap\'s JavaScript re
.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"], [role="listbox"]', Dropdown.prototype.keydown)
+ .on('keydown.bs.dropdown.data-api', toggle, Dropdown.prototype.keydown)
+ .on('keydown.bs.dropdown.data-api', '[role="menu"]', Dropdown.prototype.keydown)
+ .on('keydown.bs.dropdown.data-api', '[role="listbox"]', Dropdown.prototype.keydown)
}(jQuery);
/* ========================================================================
- * Bootstrap: modal.js v3.2.0
+ * Bootstrap: modal.js v3.3.1
* http://getbootstrap.com/javascript/#modals
* ========================================================================
* Copyright 2011-2014 Twitter, Inc.
@@ -849,7 +934,10 @@ if (typeof jQuery === 'undefined') { throw new Error('Bootstrap\'s JavaScript re
}
}
- Modal.VERSION = '3.2.0'
+ Modal.VERSION = '3.3.1'
+
+ Modal.TRANSITION_DURATION = 300
+ Modal.BACKDROP_TRANSITION_DURATION = 150
Modal.DEFAULTS = {
backdrop: true,
@@ -872,10 +960,11 @@ if (typeof jQuery === 'undefined') { throw new Error('Bootstrap\'s JavaScript re
this.isShown = true
this.checkScrollbar()
+ this.setScrollbar()
this.$body.addClass('modal-open')
- this.setScrollbar()
this.escape()
+ this.resize()
this.$element.on('click.dismiss.bs.modal', '[data-dismiss="modal"]', $.proxy(this.hide, this))
@@ -890,6 +979,9 @@ if (typeof jQuery === 'undefined') { throw new Error('Bootstrap\'s JavaScript re
.show()
.scrollTop(0)
+ if (that.options.backdrop) that.adjustBackdrop()
+ that.adjustDialog()
+
if (transition) {
that.$element[0].offsetWidth // force reflow
}
@@ -907,7 +999,7 @@ if (typeof jQuery === 'undefined') { throw new Error('Bootstrap\'s JavaScript re
.one('bsTransitionEnd', function () {
that.$element.trigger('focus').trigger(e)
})
- .emulateTransitionEnd(300) :
+ .emulateTransitionEnd(Modal.TRANSITION_DURATION) :
that.$element.trigger('focus').trigger(e)
})
}
@@ -923,10 +1015,8 @@ if (typeof jQuery === 'undefined') { throw new Error('Bootstrap\'s JavaScript re
this.isShown = false
- this.$body.removeClass('modal-open')
-
- this.resetScrollbar()
this.escape()
+ this.resize()
$(document).off('focusin.bs.modal')
@@ -938,7 +1028,7 @@ if (typeof jQuery === 'undefined') { throw new Error('Bootstrap\'s JavaScript re
$.support.transition && this.$element.hasClass('fade') ?
this.$element
.one('bsTransitionEnd', $.proxy(this.hideModal, this))
- .emulateTransitionEnd(300) :
+ .emulateTransitionEnd(Modal.TRANSITION_DURATION) :
this.hideModal()
}
@@ -954,11 +1044,19 @@ if (typeof jQuery === 'undefined') { throw new Error('Bootstrap\'s JavaScript re
Modal.prototype.escape = function () {
if (this.isShown && this.options.keyboard) {
- this.$element.on('keyup.dismiss.bs.modal', $.proxy(function (e) {
+ this.$element.on('keydown.dismiss.bs.modal', $.proxy(function (e) {
e.which == 27 && this.hide()
}, this))
} else if (!this.isShown) {
- this.$element.off('keyup.dismiss.bs.modal')
+ this.$element.off('keydown.dismiss.bs.modal')
+ }
+ }
+
+ Modal.prototype.resize = function () {
+ if (this.isShown) {
+ $(window).on('resize.bs.modal', $.proxy(this.handleUpdate, this))
+ } else {
+ $(window).off('resize.bs.modal')
}
}
@@ -966,6 +1064,9 @@ if (typeof jQuery === 'undefined') { throw new Error('Bootstrap\'s JavaScript re
var that = this
this.$element.hide()
this.backdrop(function () {
+ that.$body.removeClass('modal-open')
+ that.resetAdjustments()
+ that.resetScrollbar()
that.$element.trigger('hidden.bs.modal')
})
}
@@ -983,14 +1084,13 @@ if (typeof jQuery === 'undefined') { throw new Error('Bootstrap\'s JavaScript re
var doAnimate = $.support.transition && animate
this.$backdrop = $('<div class="modal-backdrop ' + animate + '" />')
- .appendTo(this.$body)
-
- 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])
- : this.hide.call(this)
- }, this))
+ .prependTo(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])
+ : this.hide.call(this)
+ }, this))
if (doAnimate) this.$backdrop[0].offsetWidth // force reflow
@@ -1001,7 +1101,7 @@ if (typeof jQuery === 'undefined') { throw new Error('Bootstrap\'s JavaScript re
doAnimate ?
this.$backdrop
.one('bsTransitionEnd', callback)
- .emulateTransitionEnd(150) :
+ .emulateTransitionEnd(Modal.BACKDROP_TRANSITION_DURATION) :
callback()
} else if (!this.isShown && this.$backdrop) {
@@ -1014,7 +1114,7 @@ if (typeof jQuery === 'undefined') { throw new Error('Bootstrap\'s JavaScript re
$.support.transition && this.$element.hasClass('fade') ?
this.$backdrop
.one('bsTransitionEnd', callbackRemove)
- .emulateTransitionEnd(150) :
+ .emulateTransitionEnd(Modal.BACKDROP_TRANSITION_DURATION) :
callbackRemove()
} else if (callback) {
@@ -1022,14 +1122,43 @@ if (typeof jQuery === 'undefined') { throw new Error('Bootstrap\'s JavaScript re
}
}
+ // these following methods are used to handle overflowing modals
+
+ Modal.prototype.handleUpdate = function () {
+ if (this.options.backdrop) this.adjustBackdrop()
+ this.adjustDialog()
+ }
+
+ Modal.prototype.adjustBackdrop = function () {
+ this.$backdrop
+ .css('height', 0)
+ .css('height', this.$element[0].scrollHeight)
+ }
+
+ Modal.prototype.adjustDialog = function () {
+ var modalIsOverflowing = this.$element[0].scrollHeight > document.documentElement.clientHeight
+
+ this.$element.css({
+ paddingLeft: !this.bodyIsOverflowing && modalIsOverflowing ? this.scrollbarWidth : '',
+ paddingRight: this.bodyIsOverflowing && !modalIsOverflowing ? this.scrollbarWidth : ''
+ })
+ }
+
+ Modal.prototype.resetAdjustments = function () {
+ this.$element.css({
+ paddingLeft: '',
+ paddingRight: ''
+ })
+ }
+
Modal.prototype.checkScrollbar = function () {
- if (document.body.clientWidth >= window.innerWidth) return
- this.scrollbarWidth = this.scrollbarWidth || this.measureScrollbar()
+ this.bodyIsOverflowing = document.body.scrollHeight > document.documentElement.clientHeight
+ this.scrollbarWidth = this.measureScrollbar()
}
Modal.prototype.setScrollbar = function () {
var bodyPad = parseInt((this.$body.css('padding-right') || 0), 10)
- if (this.scrollbarWidth) this.$body.css('padding-right', bodyPad + this.scrollbarWidth)
+ if (this.bodyIsOverflowing) this.$body.css('padding-right', bodyPad + this.scrollbarWidth)
}
Modal.prototype.resetScrollbar = function () {
@@ -1099,7 +1228,7 @@ if (typeof jQuery === 'undefined') { throw new Error('Bootstrap\'s JavaScript re
}(jQuery);
/* ========================================================================
- * Bootstrap: tooltip.js v3.2.0
+ * Bootstrap: tooltip.js v3.3.1
* http://getbootstrap.com/javascript/#tooltip
* Inspired by the original jQuery.tipsy by Jason Frame
* ========================================================================
@@ -1125,7 +1254,9 @@ if (typeof jQuery === 'undefined') { throw new Error('Bootstrap\'s JavaScript re
this.init('tooltip', element, options)
}
- Tooltip.VERSION = '3.2.0'
+ Tooltip.VERSION = '3.3.1'
+
+ Tooltip.TRANSITION_DURATION = 150
Tooltip.DEFAULTS = {
animation: true,
@@ -1203,6 +1334,11 @@ if (typeof jQuery === 'undefined') { throw new Error('Bootstrap\'s JavaScript re
var self = obj instanceof this.constructor ?
obj : $(obj.currentTarget).data('bs.' + this.type)
+ if (self && self.$tip && self.$tip.is(':visible')) {
+ self.hoverState = 'in'
+ return
+ }
+
if (!self) {
self = new this.constructor(obj.currentTarget, this.getDelegateOptions())
$(obj.currentTarget).data('bs.' + this.type, self)
@@ -1245,7 +1381,7 @@ if (typeof jQuery === 'undefined') { throw new Error('Bootstrap\'s JavaScript re
if (this.hasContent() && this.enabled) {
this.$element.trigger(e)
- var inDom = $.contains(document.documentElement, this.$element[0])
+ var inDom = $.contains(this.$element[0].ownerDocument.documentElement, this.$element[0])
if (e.isDefaultPrevented() || !inDom) return
var that = this
@@ -1281,13 +1417,13 @@ if (typeof jQuery === 'undefined') { throw new Error('Bootstrap\'s JavaScript re
if (autoPlace) {
var orgPlacement = placement
- var $parent = this.$element.parent()
- var parentDim = this.getPosition($parent)
+ var $container = this.options.container ? $(this.options.container) : this.$element.parent()
+ var containerDim = this.getPosition($container)
- placement = placement == 'bottom' && pos.top + pos.height + actualHeight - parentDim.scroll > parentDim.height ? 'top' :
- placement == 'top' && pos.top - parentDim.scroll - actualHeight < 0 ? 'bottom' :
- placement == 'right' && pos.right + actualWidth > parentDim.width ? 'left' :
- placement == 'left' && pos.left - actualWidth < parentDim.left ? 'right' :
+ placement = placement == 'bottom' && pos.bottom + actualHeight > containerDim.bottom ? 'top' :
+ placement == 'top' && pos.top - actualHeight < containerDim.top ? 'bottom' :
+ placement == 'right' && pos.right + actualWidth > containerDim.width ? 'left' :
+ placement == 'left' && pos.left - actualWidth < containerDim.left ? 'right' :
placement
$tip
@@ -1300,14 +1436,17 @@ if (typeof jQuery === 'undefined') { throw new Error('Bootstrap\'s JavaScript re
this.applyPlacement(calculatedOffset, placement)
var complete = function () {
+ var prevHoverState = that.hoverState
that.$element.trigger('shown.bs.' + that.type)
that.hoverState = null
+
+ if (prevHoverState == 'out') that.leave(that)
}
$.support.transition && this.$tip.hasClass('fade') ?
$tip
.one('bsTransitionEnd', complete)
- .emulateTransitionEnd(150) :
+ .emulateTransitionEnd(Tooltip.TRANSITION_DURATION) :
complete()
}
}
@@ -1354,16 +1493,18 @@ if (typeof jQuery === 'undefined') { throw new Error('Bootstrap\'s JavaScript re
if (delta.left) offset.left += delta.left
else offset.top += delta.top
- var arrowDelta = delta.left ? delta.left * 2 - width + actualWidth : delta.top * 2 - height + actualHeight
- var arrowPosition = delta.left ? 'left' : 'top'
- var arrowOffsetPosition = delta.left ? 'offsetWidth' : 'offsetHeight'
+ var isVertical = /top|bottom/.test(placement)
+ var arrowDelta = isVertical ? delta.left * 2 - width + actualWidth : delta.top * 2 - height + actualHeight
+ var arrowOffsetPosition = isVertical ? 'offsetWidth' : 'offsetHeight'
$tip.offset(offset)
- this.replaceArrow(arrowDelta, $tip[0][arrowOffsetPosition], arrowPosition)
+ this.replaceArrow(arrowDelta, $tip[0][arrowOffsetPosition], isVertical)
}
- Tooltip.prototype.replaceArrow = function (delta, dimension, position) {
- this.arrow().css(position, delta ? (50 * (1 - delta / dimension) + '%') : '')
+ Tooltip.prototype.replaceArrow = function (delta, dimension, isHorizontal) {
+ this.arrow()
+ .css(isHorizontal ? 'left' : 'top', 50 * (1 - delta / dimension) + '%')
+ .css(isHorizontal ? 'top' : 'left', '')
}
Tooltip.prototype.setContent = function () {
@@ -1374,16 +1515,17 @@ if (typeof jQuery === 'undefined') { throw new Error('Bootstrap\'s JavaScript re
$tip.removeClass('fade in top bottom left right')
}
- Tooltip.prototype.hide = function () {
+ Tooltip.prototype.hide = function (callback) {
var that = this
var $tip = this.tip()
var e = $.Event('hide.bs.' + this.type)
- this.$element.removeAttr('aria-describedby')
-
function complete() {
if (that.hoverState != 'in') $tip.detach()
- that.$element.trigger('hidden.bs.' + that.type)
+ that.$element
+ .removeAttr('aria-describedby')
+ .trigger('hidden.bs.' + that.type)
+ callback && callback()
}
this.$element.trigger(e)
@@ -1395,7 +1537,7 @@ if (typeof jQuery === 'undefined') { throw new Error('Bootstrap\'s JavaScript re
$.support.transition && this.$tip.hasClass('fade') ?
$tip
.one('bsTransitionEnd', complete)
- .emulateTransitionEnd(150) :
+ .emulateTransitionEnd(Tooltip.TRANSITION_DURATION) :
complete()
this.hoverState = null
@@ -1416,13 +1558,20 @@ if (typeof jQuery === 'undefined') { throw new Error('Bootstrap\'s JavaScript re
Tooltip.prototype.getPosition = function ($element) {
$element = $element || this.$element
+
var el = $element[0]
var isBody = el.tagName == 'BODY'
- return $.extend({}, (typeof el.getBoundingClientRect == 'function') ? el.getBoundingClientRect() : null, {
- scroll: isBody ? document.documentElement.scrollTop || document.body.scrollTop : $element.scrollTop(),
- width: isBody ? $(window).width() : $element.outerWidth(),
- height: isBody ? $(window).height() : $element.outerHeight()
- }, isBody ? { top: 0, left: 0 } : $element.offset())
+
+ var elRect = el.getBoundingClientRect()
+ if (elRect.width == null) {
+ // width and height are missing in IE8, so compute them manually; see https://github.com/twbs/bootstrap/issues/14093
+ elRect = $.extend({}, elRect, { width: elRect.right - elRect.left, height: elRect.bottom - elRect.top })
+ }
+ var elOffset = isBody ? { top: 0, left: 0 } : $element.offset()
+ var scroll = { scroll: isBody ? document.documentElement.scrollTop || document.body.scrollTop : $element.scrollTop() }
+ var outerDims = isBody ? { width: $(window).width(), height: $(window).height() } : null
+
+ return $.extend({}, elRect, scroll, outerDims, elOffset)
}
Tooltip.prototype.getCalculatedOffset = function (placement, pos, actualWidth, actualHeight) {
@@ -1486,14 +1635,6 @@ if (typeof jQuery === 'undefined') { throw new Error('Bootstrap\'s JavaScript re
return (this.$arrow = this.$arrow || this.tip().find('.tooltip-arrow'))
}
- Tooltip.prototype.validate = function () {
- if (!this.$element[0].parentNode) {
- this.hide()
- this.$element = null
- this.options = null
- }
- }
-
Tooltip.prototype.enable = function () {
this.enabled = true
}
@@ -1520,8 +1661,11 @@ if (typeof jQuery === 'undefined') { throw new Error('Bootstrap\'s JavaScript re
}
Tooltip.prototype.destroy = function () {
+ var that = this
clearTimeout(this.timeout)
- this.hide().$element.off('.' + this.type).removeData('bs.' + this.type)
+ this.hide(function () {
+ that.$element.off('.' + that.type).removeData('bs.' + that.type)
+ })
}
@@ -1530,12 +1674,18 @@ if (typeof jQuery === 'undefined') { throw new Error('Bootstrap\'s JavaScript re
function Plugin(option) {
return this.each(function () {
- var $this = $(this)
- var data = $this.data('bs.tooltip')
- var options = typeof option == 'object' && option
+ var $this = $(this)
+ var data = $this.data('bs.tooltip')
+ var options = typeof option == 'object' && option
+ var selector = options && options.selector
if (!data && option == 'destroy') return
- if (!data) $this.data('bs.tooltip', (data = new Tooltip(this, options)))
+ if (selector) {
+ if (!data) $this.data('bs.tooltip', (data = {}))
+ if (!data[selector]) data[selector] = new Tooltip(this, options)
+ } else {
+ if (!data) $this.data('bs.tooltip', (data = new Tooltip(this, options)))
+ }
if (typeof option == 'string') data[option]()
})
}
@@ -1557,7 +1707,7 @@ if (typeof jQuery === 'undefined') { throw new Error('Bootstrap\'s JavaScript re
}(jQuery);
/* ========================================================================
- * Bootstrap: popover.js v3.2.0
+ * Bootstrap: popover.js v3.3.1
* http://getbootstrap.com/javascript/#popovers
* ========================================================================
* Copyright 2011-2014 Twitter, Inc.
@@ -1577,7 +1727,7 @@ if (typeof jQuery === 'undefined') { throw new Error('Bootstrap\'s JavaScript re
if (!$.fn.tooltip) throw new Error('Popover requires tooltip.js')
- Popover.VERSION = '3.2.0'
+ Popover.VERSION = '3.3.1'
Popover.DEFAULTS = $.extend({}, $.fn.tooltip.Constructor.DEFAULTS, {
placement: 'right',
@@ -1604,7 +1754,7 @@ if (typeof jQuery === 'undefined') { throw new Error('Bootstrap\'s JavaScript re
var content = this.getContent()
$tip.find('.popover-title')[this.options.html ? 'html' : 'text'](title)
- $tip.find('.popover-content').empty()[ // we use append for html objects to maintain js events
+ $tip.find('.popover-content').children().detach().end()[ // we use append for html objects to maintain js events
this.options.html ? (typeof content == 'string' ? 'html' : 'append') : 'text'
](content)
@@ -1644,12 +1794,18 @@ if (typeof jQuery === 'undefined') { throw new Error('Bootstrap\'s JavaScript re
function Plugin(option) {
return this.each(function () {
- var $this = $(this)
- var data = $this.data('bs.popover')
- var options = typeof option == 'object' && option
+ var $this = $(this)
+ var data = $this.data('bs.popover')
+ var options = typeof option == 'object' && option
+ var selector = options && options.selector
if (!data && option == 'destroy') return
- if (!data) $this.data('bs.popover', (data = new Popover(this, options)))
+ if (selector) {
+ if (!data) $this.data('bs.popover', (data = {}))
+ if (!data[selector]) data[selector] = new Popover(this, options)
+ } else {
+ if (!data) $this.data('bs.popover', (data = new Popover(this, options)))
+ }
if (typeof option == 'string') data[option]()
})
}
@@ -1671,7 +1827,7 @@ if (typeof jQuery === 'undefined') { throw new Error('Bootstrap\'s JavaScript re
}(jQuery);
/* ========================================================================
- * Bootstrap: scrollspy.js v3.2.0
+ * Bootstrap: scrollspy.js v3.3.1
* http://getbootstrap.com/javascript/#scrollspy
* ========================================================================
* Copyright 2011-2014 Twitter, Inc.
@@ -1702,7 +1858,7 @@ if (typeof jQuery === 'undefined') { throw new Error('Bootstrap\'s JavaScript re
this.process()
}
- ScrollSpy.VERSION = '3.2.0'
+ ScrollSpy.VERSION = '3.3.1'
ScrollSpy.DEFAULTS = {
offset: 10
@@ -1763,8 +1919,9 @@ if (typeof jQuery === 'undefined') { throw new Error('Bootstrap\'s JavaScript re
return activeTarget != (i = targets[targets.length - 1]) && this.activate(i)
}
- if (activeTarget && scrollTop <= offsets[0]) {
- return activeTarget != (i = targets[0]) && this.activate(i)
+ if (activeTarget && scrollTop < offsets[0]) {
+ this.activeTarget = null
+ return this.clear()
}
for (i = offsets.length; i--;) {
@@ -1778,9 +1935,7 @@ if (typeof jQuery === 'undefined') { throw new Error('Bootstrap\'s JavaScript re
ScrollSpy.prototype.activate = function (target) {
this.activeTarget = target
- $(this.selector)
- .parentsUntil(this.options.target, '.active')
- .removeClass('active')
+ this.clear()
var selector = this.selector +
'[data-target="' + target + '"],' +
@@ -1799,6 +1954,12 @@ if (typeof jQuery === 'undefined') { throw new Error('Bootstrap\'s JavaScript re
active.trigger('activate.bs.scrollspy')
}
+ ScrollSpy.prototype.clear = function () {
+ $(this.selector)
+ .parentsUntil(this.options.target, '.active')
+ .removeClass('active')
+ }
+
// SCROLLSPY PLUGIN DEFINITION
// ===========================
@@ -1842,7 +2003,7 @@ if (typeof jQuery === 'undefined') { throw new Error('Bootstrap\'s JavaScript re
}(jQuery);
/* ========================================================================
- * Bootstrap: tab.js v3.2.0
+ * Bootstrap: tab.js v3.3.1
* http://getbootstrap.com/javascript/#tabs
* ========================================================================
* Copyright 2011-2014 Twitter, Inc.
@@ -1860,7 +2021,9 @@ if (typeof jQuery === 'undefined') { throw new Error('Bootstrap\'s JavaScript re
this.element = $(element)
}
- Tab.VERSION = '3.2.0'
+ Tab.VERSION = '3.3.1'
+
+ Tab.TRANSITION_DURATION = 150
Tab.prototype.show = function () {
var $this = this.element
@@ -1874,22 +2037,30 @@ if (typeof jQuery === 'undefined') { throw new Error('Bootstrap\'s JavaScript re
if ($this.parent('li').hasClass('active')) return
- var previous = $ul.find('.active:last a')[0]
- var e = $.Event('show.bs.tab', {
- relatedTarget: previous
+ var $previous = $ul.find('.active:last a')
+ var hideEvent = $.Event('hide.bs.tab', {
+ relatedTarget: $this[0]
+ })
+ var showEvent = $.Event('show.bs.tab', {
+ relatedTarget: $previous[0]
})
- $this.trigger(e)
+ $previous.trigger(hideEvent)
+ $this.trigger(showEvent)
- if (e.isDefaultPrevented()) return
+ if (showEvent.isDefaultPrevented() || hideEvent.isDefaultPrevented()) return
var $target = $(selector)
this.activate($this.closest('li'), $ul)
this.activate($target, $target.parent(), function () {
+ $previous.trigger({
+ type: 'hidden.bs.tab',
+ relatedTarget: $this[0]
+ })
$this.trigger({
type: 'shown.bs.tab',
- relatedTarget: previous
+ relatedTarget: $previous[0]
})
})
}
@@ -1898,15 +2069,21 @@ if (typeof jQuery === 'undefined') { throw new Error('Bootstrap\'s JavaScript re
var $active = container.find('> .active')
var transition = callback
&& $.support.transition
- && $active.hasClass('fade')
+ && (($active.length && $active.hasClass('fade')) || !!container.find('> .fade').length)
function next() {
$active
.removeClass('active')
.find('> .dropdown-menu > .active')
- .removeClass('active')
+ .removeClass('active')
+ .end()
+ .find('[data-toggle="tab"]')
+ .attr('aria-expanded', false)
- element.addClass('active')
+ element
+ .addClass('active')
+ .find('[data-toggle="tab"]')
+ .attr('aria-expanded', true)
if (transition) {
element[0].offsetWidth // reflow for transition
@@ -1916,16 +2093,21 @@ if (typeof jQuery === 'undefined') { throw new Error('Bootstrap\'s JavaScript re
}
if (element.parent('.dropdown-menu')) {
- element.closest('li.dropdown').addClass('active')
+ element
+ .closest('li.dropdown')
+ .addClass('active')
+ .end()
+ .find('[data-toggle="tab"]')
+ .attr('aria-expanded', true)
}
callback && callback()
}
- transition ?
+ $active.length && transition ?
$active
.one('bsTransitionEnd', next)
- .emulateTransitionEnd(150) :
+ .emulateTransitionEnd(Tab.TRANSITION_DURATION) :
next()
$active.removeClass('in')
@@ -1963,15 +2145,19 @@ if (typeof jQuery === 'undefined') { throw new Error('Bootstrap\'s JavaScript re
// TAB DATA-API
// ============
- $(document).on('click.bs.tab.data-api', '[data-toggle="tab"], [data-toggle="pill"]', function (e) {
+ var clickHandler = function (e) {
e.preventDefault()
Plugin.call($(this), 'show')
- })
+ }
+
+ $(document)
+ .on('click.bs.tab.data-api', '[data-toggle="tab"]', clickHandler)
+ .on('click.bs.tab.data-api', '[data-toggle="pill"]', clickHandler)
}(jQuery);
/* ========================================================================
- * Bootstrap: affix.js v3.2.0
+ * Bootstrap: affix.js v3.3.1
* http://getbootstrap.com/javascript/#affix
* ========================================================================
* Copyright 2011-2014 Twitter, Inc.
@@ -2000,7 +2186,7 @@ if (typeof jQuery === 'undefined') { throw new Error('Bootstrap\'s JavaScript re
this.checkPosition()
}
- Affix.VERSION = '3.2.0'
+ Affix.VERSION = '3.3.1'
Affix.RESET = 'affix affix-top affix-bottom'
@@ -2009,6 +2195,28 @@ if (typeof jQuery === 'undefined') { throw new Error('Bootstrap\'s JavaScript re
target: window
}
+ Affix.prototype.getState = function (scrollHeight, height, offsetTop, offsetBottom) {
+ var scrollTop = this.$target.scrollTop()
+ var position = this.$element.offset()
+ var targetHeight = this.$target.height()
+
+ if (offsetTop != null && this.affixed == 'top') return scrollTop < offsetTop ? 'top' : false
+
+ if (this.affixed == 'bottom') {
+ if (offsetTop != null) return (scrollTop + this.unpin <= position.top) ? false : 'bottom'
+ return (scrollTop + targetHeight <= scrollHeight - offsetBottom) ? false : 'bottom'
+ }
+
+ var initializing = this.affixed == null
+ var colliderTop = initializing ? scrollTop : position.top
+ var colliderHeight = initializing ? targetHeight : height
+
+ if (offsetTop != null && colliderTop <= offsetTop) return 'top'
+ if (offsetBottom != null && (colliderTop + colliderHeight >= scrollHeight - offsetBottom)) return 'bottom'
+
+ return false
+ }
+
Affix.prototype.getPinnedOffset = function () {
if (this.pinnedOffset) return this.pinnedOffset
this.$element.removeClass(Affix.RESET).addClass('affix')
@@ -2024,42 +2232,40 @@ if (typeof jQuery === 'undefined') { throw new Error('Bootstrap\'s JavaScript re
Affix.prototype.checkPosition = function () {
if (!this.$element.is(':visible')) return
- var scrollHeight = $(document).height()
- var scrollTop = this.$target.scrollTop()
- var position = this.$element.offset()
+ var height = this.$element.height()
var offset = this.options.offset
var offsetTop = offset.top
var offsetBottom = offset.bottom
+ var scrollHeight = $('body').height()
if (typeof offset != 'object') offsetBottom = offsetTop = offset
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' :
- offsetTop != null && (scrollTop <= offsetTop) ? 'top' : false
+ var affix = this.getState(scrollHeight, height, offsetTop, offsetBottom)
- if (this.affixed === affix) return
- if (this.unpin != null) this.$element.css('top', '')
+ if (this.affixed != affix) {
+ if (this.unpin != null) this.$element.css('top', '')
- var affixType = 'affix' + (affix ? '-' + affix : '')
- var e = $.Event(affixType + '.bs.affix')
+ var affixType = 'affix' + (affix ? '-' + affix : '')
+ var e = $.Event(affixType + '.bs.affix')
- this.$element.trigger(e)
+ this.$element.trigger(e)
- if (e.isDefaultPrevented()) return
+ if (e.isDefaultPrevented()) return
- this.affixed = affix
- this.unpin = affix == 'bottom' ? this.getPinnedOffset() : null
+ this.affixed = affix
+ this.unpin = affix == 'bottom' ? this.getPinnedOffset() : null
- this.$element
- .removeClass(Affix.RESET)
- .addClass(affixType)
- .trigger($.Event(affixType.replace('affix', 'affixed')))
+ this.$element
+ .removeClass(Affix.RESET)
+ .addClass(affixType)
+ .trigger(affixType.replace('affix', 'affixed') + '.bs.affix')
+ }
if (affix == 'bottom') {
this.$element.offset({
- top: scrollHeight - this.$element.height() - offsetBottom
+ top: scrollHeight - height - offsetBottom
})
}
}
@@ -2104,8 +2310,8 @@ if (typeof jQuery === 'undefined') { throw new Error('Bootstrap\'s JavaScript re
data.offset = data.offset || {}
- if (data.offsetBottom) data.offset.bottom = data.offsetBottom
- if (data.offsetTop) data.offset.top = data.offsetTop
+ if (data.offsetBottom != null) data.offset.bottom = data.offsetBottom
+ if (data.offsetTop != null) data.offset.top = data.offsetTop
Plugin.call($spy, data)
})
diff --git a/library/bootstrap/js/bootstrap.min.js b/library/bootstrap/js/bootstrap.min.js
index 7c1561a8b..d83986590 100644
--- a/library/bootstrap/js/bootstrap.min.js
+++ b/library/bootstrap/js/bootstrap.min.js
@@ -1,6 +1,7 @@
/*!
- * Bootstrap v3.2.0 (http://getbootstrap.com)
+ * Bootstrap v3.3.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'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("bsTransitionEnd",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(),a.support.transition&&(a.event.special.bsTransitionEnd={bindType:a.support.transition.end,delegateType:a.support.transition.end,handle:function(b){return a(b.target).is(this)?b.handleObj.handler.apply(this,arguments):void 0}})})}(jQuery),+function(a){"use strict";function b(b){return this.each(function(){var c=a(this),e=c.data("bs.alert");e||c.data("bs.alert",e=new d(this)),"string"==typeof b&&e[b].call(c)})}var c='[data-dismiss="alert"]',d=function(b){a(b).on("click",c,this.close)};d.VERSION="3.2.0",d.prototype.close=function(b){function c(){f.detach().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("bsTransitionEnd",c).emulateTransitionEnd(150):c())};var e=a.fn.alert;a.fn.alert=b,a.fn.alert.Constructor=d,a.fn.alert.noConflict=function(){return a.fn.alert=e,this},a(document).on("click.bs.alert.data-api",c,d.prototype.close)}(jQuery),+function(a){"use strict";function b(b){return this.each(function(){var d=a(this),e=d.data("bs.button"),f="object"==typeof b&&b;e||d.data("bs.button",e=new c(this,f)),"toggle"==b?e.toggle():b&&e.setState(b)})}var c=function(b,d){this.$element=a(b),this.options=a.extend({},c.DEFAULTS,d),this.isLoading=!1};c.VERSION="3.2.0",c.DEFAULTS={loadingText:"loading..."},c.prototype.setState=function(b){var c="disabled",d=this.$element,e=d.is("input")?"val":"html",f=d.data();b+="Text",null==f.resetText&&d.data("resetText",d[e]()),d[e](null==f[b]?this.options[b]:f[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)},c.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 d=a.fn.button;a.fn.button=b,a.fn.button.Constructor=c,a.fn.button.noConflict=function(){return a.fn.button=d,this},a(document).on("click.bs.button.data-api",'[data-toggle^="button"]',function(c){var d=a(c.target);d.hasClass("btn")||(d=d.closest(".btn")),b.call(d,"toggle"),c.preventDefault()})}(jQuery),+function(a){"use strict";function b(b){return this.each(function(){var d=a(this),e=d.data("bs.carousel"),f=a.extend({},c.DEFAULTS,d.data(),"object"==typeof b&&b),g="string"==typeof b?b:f.slide;e||d.data("bs.carousel",e=new c(this,f)),"number"==typeof b?e.to(b):g?e[g]():f.interval&&e.pause().cycle()})}var c=function(b,c){this.$element=a(b).on("keydown.bs.carousel",a.proxy(this.keydown,this)),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.bs.carousel",a.proxy(this.pause,this)).on("mouseleave.bs.carousel",a.proxy(this.cycle,this))};c.VERSION="3.2.0",c.DEFAULTS={interval:5e3,pause:"hover",wrap:!0},c.prototype.keydown=function(a){switch(a.which){case 37:this.prev();break;case 39:this.next();break;default:return}a.preventDefault()},c.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},c.prototype.getItemIndex=function(a){return this.$items=a.parent().children(".item"),this.$items.index(a||this.$active)},c.prototype.to=function(b){var c=this,d=this.getItemIndex(this.$active=this.$element.find(".item.active"));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]))},c.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},c.prototype.next=function(){return this.sliding?void 0:this.slide("next")},c.prototype.prev=function(){return this.sliding?void 0:this.slide("prev")},c.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=e[0],k=a.Event("slide.bs.carousel",{relatedTarget:j,direction:g});if(this.$element.trigger(k),!k.isDefaultPrevented()){if(this.sliding=!0,f&&this.pause(),this.$indicators.length){this.$indicators.find(".active").removeClass("active");var l=a(this.$indicators.children()[this.getItemIndex(e)]);l&&l.addClass("active")}var m=a.Event("slid.bs.carousel",{relatedTarget:j,direction:g});return a.support.transition&&this.$element.hasClass("slide")?(e.addClass(b),e[0].offsetWidth,d.addClass(g),e.addClass(g),d.one("bsTransitionEnd",function(){e.removeClass([b,g].join(" ")).addClass("active"),d.removeClass(["active",g].join(" ")),i.sliding=!1,setTimeout(function(){i.$element.trigger(m)},0)}).emulateTransitionEnd(1e3*d.css("transition-duration").slice(0,-1))):(d.removeClass("active"),e.addClass("active"),this.sliding=!1,this.$element.trigger(m)),f&&this.cycle(),this}};var d=a.fn.carousel;a.fn.carousel=b,a.fn.carousel.Constructor=c,a.fn.carousel.noConflict=function(){return a.fn.carousel=d,this},a(document).on("click.bs.carousel.data-api","[data-slide], [data-slide-to]",function(c){var d,e=a(this),f=a(e.attr("data-target")||(d=e.attr("href"))&&d.replace(/.*(?=#[^\s]+$)/,""));if(f.hasClass("carousel")){var g=a.extend({},f.data(),e.data()),h=e.attr("data-slide-to");h&&(g.interval=!1),b.call(f,g),h&&f.data("bs.carousel").to(h),c.preventDefault()}}),a(window).on("load",function(){a('[data-ride="carousel"]').each(function(){var c=a(this);b.call(c,c.data())})})}(jQuery),+function(a){"use strict";function b(b){return this.each(function(){var d=a(this),e=d.data("bs.collapse"),f=a.extend({},c.DEFAULTS,d.data(),"object"==typeof b&&b);!e&&f.toggle&&"show"==b&&(b=!b),e||d.data("bs.collapse",e=new c(this,f)),"string"==typeof b&&e[b]()})}var c=function(b,d){this.$element=a(b),this.options=a.extend({},c.DEFAULTS,d),this.transitioning=null,this.options.parent&&(this.$parent=a(this.options.parent)),this.options.toggle&&this.toggle()};c.VERSION="3.2.0",c.DEFAULTS={toggle:!0},c.prototype.dimension=function(){var a=this.$element.hasClass("width");return a?"width":"height"},c.prototype.show=function(){if(!this.transitioning&&!this.$element.hasClass("in")){var c=a.Event("show.bs.collapse");if(this.$element.trigger(c),!c.isDefaultPrevented()){var d=this.$parent&&this.$parent.find("> .panel > .in");if(d&&d.length){var e=d.data("bs.collapse");if(e&&e.transitioning)return;b.call(d,"hide"),e||d.data("bs.collapse",null)}var f=this.dimension();this.$element.removeClass("collapse").addClass("collapsing")[f](0),this.transitioning=1;var g=function(){this.$element.removeClass("collapsing").addClass("collapse in")[f](""),this.transitioning=0,this.$element.trigger("shown.bs.collapse")};if(!a.support.transition)return g.call(this);var h=a.camelCase(["scroll",f].join("-"));this.$element.one("bsTransitionEnd",a.proxy(g,this)).emulateTransitionEnd(350)[f](this.$element[0][h])}}},c.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("bsTransitionEnd",a.proxy(d,this)).emulateTransitionEnd(350):d.call(this)}}},c.prototype.toggle=function(){this[this.$element.hasClass("in")?"hide":"show"]()};var d=a.fn.collapse;a.fn.collapse=b,a.fn.collapse.Constructor=c,a.fn.collapse.noConflict=function(){return a.fn.collapse=d,this},a(document).on("click.bs.collapse.data-api",'[data-toggle="collapse"]',function(c){var d,e=a(this),f=e.attr("data-target")||c.preventDefault()||(d=e.attr("href"))&&d.replace(/.*(?=#[^\s]+$)/,""),g=a(f),h=g.data("bs.collapse"),i=h?"toggle":e.data(),j=e.attr("data-parent"),k=j&&a(j);h&&h.transitioning||(k&&k.find('[data-toggle="collapse"][data-parent="'+j+'"]').not(e).addClass("collapsed"),e[g.hasClass("in")?"addClass":"removeClass"]("collapsed")),b.call(g,i)})}(jQuery),+function(a){"use strict";function b(b){b&&3===b.which||(a(e).remove(),a(f).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()}function d(b){return this.each(function(){var c=a(this),d=c.data("bs.dropdown");d||c.data("bs.dropdown",d=new g(this)),"string"==typeof b&&d[b].call(c)})}var e=".dropdown-backdrop",f='[data-toggle="dropdown"]',g=function(b){a(b).on("click.bs.dropdown",this.toggle)};g.VERSION="3.2.0",g.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;e.trigger("focus"),f.toggleClass("open").trigger("shown.bs.dropdown",h)}return!1}},g.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 e=c(d),g=e.hasClass("open");if(!g||g&&27==b.keyCode)return 27==b.which&&e.find(f).trigger("focus"),d.trigger("click");var h=" li:not(.divider):visible a",i=e.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).trigger("focus")}}}};var h=a.fn.dropdown;a.fn.dropdown=d,a.fn.dropdown.Constructor=g,a.fn.dropdown.noConflict=function(){return a.fn.dropdown=h,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",f,g.prototype.toggle).on("keydown.bs.dropdown.data-api",f+', [role="menu"], [role="listbox"]',g.prototype.keydown)}(jQuery),+function(a){"use strict";function b(b,d){return this.each(function(){var e=a(this),f=e.data("bs.modal"),g=a.extend({},c.DEFAULTS,e.data(),"object"==typeof b&&b);f||e.data("bs.modal",f=new c(this,g)),"string"==typeof b?f[b](d):g.show&&f.show(d)})}var c=function(b,c){this.options=c,this.$body=a(document.body),this.$element=a(b),this.$backdrop=this.isShown=null,this.scrollbarWidth=0,this.options.remote&&this.$element.find(".modal-content").load(this.options.remote,a.proxy(function(){this.$element.trigger("loaded.bs.modal")},this))};c.VERSION="3.2.0",c.DEFAULTS={backdrop:!0,keyboard:!0,show:!0},c.prototype.toggle=function(a){return this.isShown?this.hide():this.show(a)},c.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.checkScrollbar(),this.$body.addClass("modal-open"),this.setScrollbar(),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(c.$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("bsTransitionEnd",function(){c.$element.trigger("focus").trigger(e)}).emulateTransitionEnd(300):c.$element.trigger("focus").trigger(e)}))},c.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.$body.removeClass("modal-open"),this.resetScrollbar(),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("bsTransitionEnd",a.proxy(this.hideModal,this)).emulateTransitionEnd(300):this.hideModal())},c.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.trigger("focus")},this))},c.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")},c.prototype.hideModal=function(){var a=this;this.$element.hide(),this.backdrop(function(){a.$element.trigger("hidden.bs.modal")})},c.prototype.removeBackdrop=function(){this.$backdrop&&this.$backdrop.remove(),this.$backdrop=null},c.prototype.backdrop=function(b){var c=this,d=this.$element.hasClass("fade")?"fade":"";if(this.isShown&&this.options.backdrop){var e=a.support.transition&&d;if(this.$backdrop=a('<div class="modal-backdrop '+d+'" />').appendTo(this.$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)),e&&this.$backdrop[0].offsetWidth,this.$backdrop.addClass("in"),!b)return;e?this.$backdrop.one("bsTransitionEnd",b).emulateTransitionEnd(150):b()}else if(!this.isShown&&this.$backdrop){this.$backdrop.removeClass("in");var f=function(){c.removeBackdrop(),b&&b()};a.support.transition&&this.$element.hasClass("fade")?this.$backdrop.one("bsTransitionEnd",f).emulateTransitionEnd(150):f()}else b&&b()},c.prototype.checkScrollbar=function(){document.body.clientWidth>=window.innerWidth||(this.scrollbarWidth=this.scrollbarWidth||this.measureScrollbar())},c.prototype.setScrollbar=function(){var a=parseInt(this.$body.css("padding-right")||0,10);this.scrollbarWidth&&this.$body.css("padding-right",a+this.scrollbarWidth)},c.prototype.resetScrollbar=function(){this.$body.css("padding-right","")},c.prototype.measureScrollbar=function(){var a=document.createElement("div");a.className="modal-scrollbar-measure",this.$body.append(a);var b=a.offsetWidth-a.clientWidth;return this.$body[0].removeChild(a),b};var d=a.fn.modal;a.fn.modal=b,a.fn.modal.Constructor=c,a.fn.modal.noConflict=function(){return a.fn.modal=d,this},a(document).on("click.bs.modal.data-api",'[data-toggle="modal"]',function(c){var d=a(this),e=d.attr("href"),f=a(d.attr("data-target")||e&&e.replace(/.*(?=#[^\s]+$)/,"")),g=f.data("bs.modal")?"toggle":a.extend({remote:!/#/.test(e)&&e},f.data(),d.data());d.is("a")&&c.preventDefault(),f.one("show.bs.modal",function(a){a.isDefaultPrevented()||f.one("hidden.bs.modal",function(){d.is(":visible")&&d.trigger("focus")})}),b.call(f,g,this)})}(jQuery),+function(a){"use strict";function b(b){return this.each(function(){var d=a(this),e=d.data("bs.tooltip"),f="object"==typeof b&&b;(e||"destroy"!=b)&&(e||d.data("bs.tooltip",e=new c(this,f)),"string"==typeof b&&e[b]())})}var c=function(a,b){this.type=this.options=this.enabled=this.timeout=this.hoverState=this.$element=null,this.init("tooltip",a,b)};c.VERSION="3.2.0",c.DEFAULTS={animation:!0,placement:"top",selector:!1,template:'<div class="tooltip" role="tooltip"><div class="tooltip-arrow"></div><div class="tooltip-inner"></div></div>',trigger:"hover focus",title:"",delay:0,html:!1,container:!1,viewport:{selector:"body",padding:0}},c.prototype.init=function(b,c,d){this.enabled=!0,this.type=b,this.$element=a(c),this.options=this.getOptions(d),this.$viewport=this.options.viewport&&a(this.options.viewport.selector||this.options.viewport);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()},c.prototype.getDefaults=function(){return c.DEFAULTS},c.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},c.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},c.prototype.enter=function(b){var c=b instanceof this.constructor?b:a(b.currentTarget).data("bs."+this.type);return c||(c=new this.constructor(b.currentTarget,this.getDelegateOptions()),a(b.currentTarget).data("bs."+this.type,c)),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()},c.prototype.leave=function(b){var c=b instanceof this.constructor?b:a(b.currentTarget).data("bs."+this.type);return c||(c=new this.constructor(b.currentTarget,this.getDelegateOptions()),a(b.currentTarget).data("bs."+this.type,c)),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()},c.prototype.show=function(){var b=a.Event("show.bs."+this.type);if(this.hasContent()&&this.enabled){this.$element.trigger(b);var c=a.contains(document.documentElement,this.$element[0]);if(b.isDefaultPrevented()||!c)return;var d=this,e=this.tip(),f=this.getUID(this.type);this.setContent(),e.attr("id",f),this.$element.attr("aria-describedby",f),this.options.animation&&e.addClass("fade");var g="function"==typeof this.options.placement?this.options.placement.call(this,e[0],this.$element[0]):this.options.placement,h=/\s?auto?\s?/i,i=h.test(g);i&&(g=g.replace(h,"")||"top"),e.detach().css({top:0,left:0,display:"block"}).addClass(g).data("bs."+this.type,this),this.options.container?e.appendTo(this.options.container):e.insertAfter(this.$element);var j=this.getPosition(),k=e[0].offsetWidth,l=e[0].offsetHeight;if(i){var m=g,n=this.$element.parent(),o=this.getPosition(n);g="bottom"==g&&j.top+j.height+l-o.scroll>o.height?"top":"top"==g&&j.top-o.scroll-l<0?"bottom":"right"==g&&j.right+k>o.width?"left":"left"==g&&j.left-k<o.left?"right":g,e.removeClass(m).addClass(g)}var p=this.getCalculatedOffset(g,j,k,l);this.applyPlacement(p,g);var q=function(){d.$element.trigger("shown.bs."+d.type),d.hoverState=null};a.support.transition&&this.$tip.hasClass("fade")?e.one("bsTransitionEnd",q).emulateTransitionEnd(150):q()}},c.prototype.applyPlacement=function(b,c){var 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),b.top=b.top+g,b.left=b.left+h,a.offset.setOffset(d[0],a.extend({using:function(a){d.css({top:Math.round(a.top),left:Math.round(a.left)})}},b),0),d.addClass("in");var i=d[0].offsetWidth,j=d[0].offsetHeight;"top"==c&&j!=f&&(b.top=b.top+f-j);var k=this.getViewportAdjustedDelta(c,b,i,j);k.left?b.left+=k.left:b.top+=k.top;var l=k.left?2*k.left-e+i:2*k.top-f+j,m=k.left?"left":"top",n=k.left?"offsetWidth":"offsetHeight";d.offset(b),this.replaceArrow(l,d[0][n],m)},c.prototype.replaceArrow=function(a,b,c){this.arrow().css(c,a?50*(1-a/b)+"%":"")},c.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")},c.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.removeAttr("aria-describedby"),this.$element.trigger(e),e.isDefaultPrevented()?void 0:(d.removeClass("in"),a.support.transition&&this.$tip.hasClass("fade")?d.one("bsTransitionEnd",b).emulateTransitionEnd(150):b(),this.hoverState=null,this)},c.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","")},c.prototype.hasContent=function(){return this.getTitle()},c.prototype.getPosition=function(b){b=b||this.$element;var c=b[0],d="BODY"==c.tagName;return a.extend({},"function"==typeof c.getBoundingClientRect?c.getBoundingClientRect():null,{scroll:d?document.documentElement.scrollTop||document.body.scrollTop:b.scrollTop(),width:d?a(window).width():b.outerWidth(),height:d?a(window).height():b.outerHeight()},d?{top:0,left:0}:b.offset())},c.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}},c.prototype.getViewportAdjustedDelta=function(a,b,c,d){var e={top:0,left:0};if(!this.$viewport)return e;var f=this.options.viewport&&this.options.viewport.padding||0,g=this.getPosition(this.$viewport);if(/right|left/.test(a)){var h=b.top-f-g.scroll,i=b.top+f-g.scroll+d;h<g.top?e.top=g.top-h:i>g.top+g.height&&(e.top=g.top+g.height-i)}else{var j=b.left-f,k=b.left+f+c;j<g.left?e.left=g.left-j:k>g.width&&(e.left=g.left+g.width-k)}return e},c.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)},c.prototype.getUID=function(a){do a+=~~(1e6*Math.random());while(document.getElementById(a));return a},c.prototype.tip=function(){return this.$tip=this.$tip||a(this.options.template)},c.prototype.arrow=function(){return this.$arrow=this.$arrow||this.tip().find(".tooltip-arrow")},c.prototype.validate=function(){this.$element[0].parentNode||(this.hide(),this.$element=null,this.options=null)},c.prototype.enable=function(){this.enabled=!0},c.prototype.disable=function(){this.enabled=!1},c.prototype.toggleEnabled=function(){this.enabled=!this.enabled},c.prototype.toggle=function(b){var c=this;b&&(c=a(b.currentTarget).data("bs."+this.type),c||(c=new this.constructor(b.currentTarget,this.getDelegateOptions()),a(b.currentTarget).data("bs."+this.type,c))),c.tip().hasClass("in")?c.leave(c):c.enter(c)},c.prototype.destroy=function(){clearTimeout(this.timeout),this.hide().$element.off("."+this.type).removeData("bs."+this.type)};var d=a.fn.tooltip;a.fn.tooltip=b,a.fn.tooltip.Constructor=c,a.fn.tooltip.noConflict=function(){return a.fn.tooltip=d,this}}(jQuery),+function(a){"use strict";function b(b){return this.each(function(){var d=a(this),e=d.data("bs.popover"),f="object"==typeof b&&b;(e||"destroy"!=b)&&(e||d.data("bs.popover",e=new c(this,f)),"string"==typeof b&&e[b]())})}var c=function(a,b){this.init("popover",a,b)};if(!a.fn.tooltip)throw new Error("Popover requires tooltip.js");c.VERSION="3.2.0",c.DEFAULTS=a.extend({},a.fn.tooltip.Constructor.DEFAULTS,{placement:"right",trigger:"click",content:"",template:'<div class="popover" role="tooltip"><div class="arrow"></div><h3 class="popover-title"></h3><div class="popover-content"></div></div>'}),c.prototype=a.extend({},a.fn.tooltip.Constructor.prototype),c.prototype.constructor=c,c.prototype.getDefaults=function(){return c.DEFAULTS},c.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").empty()[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()},c.prototype.hasContent=function(){return this.getTitle()||this.getContent()},c.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)},c.prototype.arrow=function(){return this.$arrow=this.$arrow||this.tip().find(".arrow")},c.prototype.tip=function(){return this.$tip||(this.$tip=a(this.options.template)),this.$tip};var d=a.fn.popover;a.fn.popover=b,a.fn.popover.Constructor=c,a.fn.popover.noConflict=function(){return a.fn.popover=d,this}}(jQuery),+function(a){"use strict";function b(c,d){var e=a.proxy(this.process,this);this.$body=a("body"),this.$scrollElement=a(a(c).is("body")?window:c),this.options=a.extend({},b.DEFAULTS,d),this.selector=(this.options.target||"")+" .nav li > a",this.offsets=[],this.targets=[],this.activeTarget=null,this.scrollHeight=0,this.$scrollElement.on("scroll.bs.scrollspy",e),this.refresh(),this.process()}function c(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]()})}b.VERSION="3.2.0",b.DEFAULTS={offset:10},b.prototype.getScrollHeight=function(){return this.$scrollElement[0].scrollHeight||Math.max(this.$body[0].scrollHeight,document.documentElement.scrollHeight)},b.prototype.refresh=function(){var b="offset",c=0;a.isWindow(this.$scrollElement[0])||(b="position",c=this.$scrollElement.scrollTop()),this.offsets=[],this.targets=[],this.scrollHeight=this.getScrollHeight();var d=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+c,e]]||null}).sort(function(a,b){return a[0]-b[0]}).each(function(){d.offsets.push(this[0]),d.targets.push(this[1])})},b.prototype.process=function(){var a,b=this.$scrollElement.scrollTop()+this.options.offset,c=this.getScrollHeight(),d=this.options.offset+c-this.$scrollElement.height(),e=this.offsets,f=this.targets,g=this.activeTarget;if(this.scrollHeight!=c&&this.refresh(),b>=d)return g!=(a=f[f.length-1])&&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 d=a.fn.scrollspy;a.fn.scrollspy=c,a.fn.scrollspy.Constructor=b,a.fn.scrollspy.noConflict=function(){return a.fn.scrollspy=d,this},a(window).on("load.bs.scrollspy.data-api",function(){a('[data-spy="scroll"]').each(function(){var b=a(this);c.call(b,b.data())})})}(jQuery),+function(a){"use strict";function b(b){return this.each(function(){var d=a(this),e=d.data("bs.tab");e||d.data("bs.tab",e=new c(this)),"string"==typeof b&&e[b]()})}var c=function(b){this.element=a(b)};c.VERSION="3.2.0",c.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.closest("li"),c),this.activate(g,g.parent(),function(){b.trigger({type:"shown.bs.tab",relatedTarget:e})})}}},c.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("bsTransitionEnd",e).emulateTransitionEnd(150):e(),f.removeClass("in")};var d=a.fn.tab;a.fn.tab=b,a.fn.tab.Constructor=c,a.fn.tab.noConflict=function(){return a.fn.tab=d,this},a(document).on("click.bs.tab.data-api",'[data-toggle="tab"], [data-toggle="pill"]',function(c){c.preventDefault(),b.call(a(this),"show")})}(jQuery),+function(a){"use strict";function b(b){return this.each(function(){var d=a(this),e=d.data("bs.affix"),f="object"==typeof b&&b;e||d.data("bs.affix",e=new c(this,f)),"string"==typeof b&&e[b]()})}var c=function(b,d){this.options=a.extend({},c.DEFAULTS,d),this.$target=a(this.options.target).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(b),this.affixed=this.unpin=this.pinnedOffset=null,this.checkPosition()};c.VERSION="3.2.0",c.RESET="affix affix-top affix-bottom",c.DEFAULTS={offset:0,target:window},c.prototype.getPinnedOffset=function(){if(this.pinnedOffset)return this.pinnedOffset;this.$element.removeClass(c.RESET).addClass("affix");var a=this.$target.scrollTop(),b=this.$element.offset();return this.pinnedOffset=b.top-a},c.prototype.checkPositionWithEventLoop=function(){setTimeout(a.proxy(this.checkPosition,this),1)},c.prototype.checkPosition=function(){if(this.$element.is(":visible")){var b=a(document).height(),d=this.$target.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(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()>=b-h?"bottom":null!=g&&g>=d?"top":!1;if(this.affixed!==i){null!=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(c.RESET).addClass(j).trigger(a.Event(j.replace("affix","affixed"))),"bottom"==i&&this.$element.offset({top:b-this.$element.height()-h}))}}};var d=a.fn.affix;a.fn.affix=b,a.fn.affix.Constructor=c,a.fn.affix.noConflict=function(){return a.fn.affix=d,this},a(window).on("load",function(){a('[data-spy="affix"]').each(function(){var c=a(this),d=c.data();d.offset=d.offset||{},d.offsetBottom&&(d.offset.bottom=d.offsetBottom),d.offsetTop&&(d.offset.top=d.offsetTop),b.call(c,d)})})}(jQuery); \ No newline at end of file
+if("undefined"==typeof jQuery)throw new Error("Bootstrap's JavaScript requires jQuery");+function(a){var b=a.fn.jquery.split(" ")[0].split(".");if(b[0]<2&&b[1]<9||1==b[0]&&9==b[1]&&b[2]<1)throw new Error("Bootstrap's JavaScript requires jQuery version 1.9.1 or higher")}(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("bsTransitionEnd",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(),a.support.transition&&(a.event.special.bsTransitionEnd={bindType:a.support.transition.end,delegateType:a.support.transition.end,handle:function(b){return a(b.target).is(this)?b.handleObj.handler.apply(this,arguments):void 0}})})}(jQuery),+function(a){"use strict";function b(b){return this.each(function(){var c=a(this),e=c.data("bs.alert");e||c.data("bs.alert",e=new d(this)),"string"==typeof b&&e[b].call(c)})}var c='[data-dismiss="alert"]',d=function(b){a(b).on("click",c,this.close)};d.VERSION="3.3.1",d.TRANSITION_DURATION=150,d.prototype.close=function(b){function c(){g.detach().trigger("closed.bs.alert").remove()}var e=a(this),f=e.attr("data-target");f||(f=e.attr("href"),f=f&&f.replace(/.*(?=#[^\s]*$)/,""));var g=a(f);b&&b.preventDefault(),g.length||(g=e.closest(".alert")),g.trigger(b=a.Event("close.bs.alert")),b.isDefaultPrevented()||(g.removeClass("in"),a.support.transition&&g.hasClass("fade")?g.one("bsTransitionEnd",c).emulateTransitionEnd(d.TRANSITION_DURATION):c())};var e=a.fn.alert;a.fn.alert=b,a.fn.alert.Constructor=d,a.fn.alert.noConflict=function(){return a.fn.alert=e,this},a(document).on("click.bs.alert.data-api",c,d.prototype.close)}(jQuery),+function(a){"use strict";function b(b){return this.each(function(){var d=a(this),e=d.data("bs.button"),f="object"==typeof b&&b;e||d.data("bs.button",e=new c(this,f)),"toggle"==b?e.toggle():b&&e.setState(b)})}var c=function(b,d){this.$element=a(b),this.options=a.extend({},c.DEFAULTS,d),this.isLoading=!1};c.VERSION="3.3.1",c.DEFAULTS={loadingText:"loading..."},c.prototype.setState=function(b){var c="disabled",d=this.$element,e=d.is("input")?"val":"html",f=d.data();b+="Text",null==f.resetText&&d.data("resetText",d[e]()),setTimeout(a.proxy(function(){d[e](null==f[b]?this.options[b]:f[b]),"loadingText"==b?(this.isLoading=!0,d.addClass(c).attr(c,c)):this.isLoading&&(this.isLoading=!1,d.removeClass(c).removeAttr(c))},this),0)},c.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")}else this.$element.attr("aria-pressed",!this.$element.hasClass("active"));a&&this.$element.toggleClass("active")};var d=a.fn.button;a.fn.button=b,a.fn.button.Constructor=c,a.fn.button.noConflict=function(){return a.fn.button=d,this},a(document).on("click.bs.button.data-api",'[data-toggle^="button"]',function(c){var d=a(c.target);d.hasClass("btn")||(d=d.closest(".btn")),b.call(d,"toggle"),c.preventDefault()}).on("focus.bs.button.data-api blur.bs.button.data-api",'[data-toggle^="button"]',function(b){a(b.target).closest(".btn").toggleClass("focus",/^focus(in)?$/.test(b.type))})}(jQuery),+function(a){"use strict";function b(b){return this.each(function(){var d=a(this),e=d.data("bs.carousel"),f=a.extend({},c.DEFAULTS,d.data(),"object"==typeof b&&b),g="string"==typeof b?b:f.slide;e||d.data("bs.carousel",e=new c(this,f)),"number"==typeof b?e.to(b):g?e[g]():f.interval&&e.pause().cycle()})}var c=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,this.options.keyboard&&this.$element.on("keydown.bs.carousel",a.proxy(this.keydown,this)),"hover"==this.options.pause&&!("ontouchstart"in document.documentElement)&&this.$element.on("mouseenter.bs.carousel",a.proxy(this.pause,this)).on("mouseleave.bs.carousel",a.proxy(this.cycle,this))};c.VERSION="3.3.1",c.TRANSITION_DURATION=600,c.DEFAULTS={interval:5e3,pause:"hover",wrap:!0,keyboard:!0},c.prototype.keydown=function(a){if(!/input|textarea/i.test(a.target.tagName)){switch(a.which){case 37:this.prev();break;case 39:this.next();break;default:return}a.preventDefault()}},c.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},c.prototype.getItemIndex=function(a){return this.$items=a.parent().children(".item"),this.$items.index(a||this.$active)},c.prototype.getItemForDirection=function(a,b){var c="prev"==a?-1:1,d=this.getItemIndex(b),e=(d+c)%this.$items.length;return this.$items.eq(e)},c.prototype.to=function(a){var b=this,c=this.getItemIndex(this.$active=this.$element.find(".item.active"));return a>this.$items.length-1||0>a?void 0:this.sliding?this.$element.one("slid.bs.carousel",function(){b.to(a)}):c==a?this.pause().cycle():this.slide(a>c?"next":"prev",this.$items.eq(a))},c.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},c.prototype.next=function(){return this.sliding?void 0:this.slide("next")},c.prototype.prev=function(){return this.sliding?void 0:this.slide("prev")},c.prototype.slide=function(b,d){var e=this.$element.find(".item.active"),f=d||this.getItemForDirection(b,e),g=this.interval,h="next"==b?"left":"right",i="next"==b?"first":"last",j=this;if(!f.length){if(!this.options.wrap)return;f=this.$element.find(".item")[i]()}if(f.hasClass("active"))return this.sliding=!1;var k=f[0],l=a.Event("slide.bs.carousel",{relatedTarget:k,direction:h});if(this.$element.trigger(l),!l.isDefaultPrevented()){if(this.sliding=!0,g&&this.pause(),this.$indicators.length){this.$indicators.find(".active").removeClass("active");var m=a(this.$indicators.children()[this.getItemIndex(f)]);m&&m.addClass("active")}var n=a.Event("slid.bs.carousel",{relatedTarget:k,direction:h});return a.support.transition&&this.$element.hasClass("slide")?(f.addClass(b),f[0].offsetWidth,e.addClass(h),f.addClass(h),e.one("bsTransitionEnd",function(){f.removeClass([b,h].join(" ")).addClass("active"),e.removeClass(["active",h].join(" ")),j.sliding=!1,setTimeout(function(){j.$element.trigger(n)},0)}).emulateTransitionEnd(c.TRANSITION_DURATION)):(e.removeClass("active"),f.addClass("active"),this.sliding=!1,this.$element.trigger(n)),g&&this.cycle(),this}};var d=a.fn.carousel;a.fn.carousel=b,a.fn.carousel.Constructor=c,a.fn.carousel.noConflict=function(){return a.fn.carousel=d,this};var e=function(c){var d,e=a(this),f=a(e.attr("data-target")||(d=e.attr("href"))&&d.replace(/.*(?=#[^\s]+$)/,""));if(f.hasClass("carousel")){var g=a.extend({},f.data(),e.data()),h=e.attr("data-slide-to");h&&(g.interval=!1),b.call(f,g),h&&f.data("bs.carousel").to(h),c.preventDefault()}};a(document).on("click.bs.carousel.data-api","[data-slide]",e).on("click.bs.carousel.data-api","[data-slide-to]",e),a(window).on("load",function(){a('[data-ride="carousel"]').each(function(){var c=a(this);b.call(c,c.data())})})}(jQuery),+function(a){"use strict";function b(b){var c,d=b.attr("data-target")||(c=b.attr("href"))&&c.replace(/.*(?=#[^\s]+$)/,"");return a(d)}function c(b){return this.each(function(){var c=a(this),e=c.data("bs.collapse"),f=a.extend({},d.DEFAULTS,c.data(),"object"==typeof b&&b);!e&&f.toggle&&"show"==b&&(f.toggle=!1),e||c.data("bs.collapse",e=new d(this,f)),"string"==typeof b&&e[b]()})}var d=function(b,c){this.$element=a(b),this.options=a.extend({},d.DEFAULTS,c),this.$trigger=a(this.options.trigger).filter('[href="#'+b.id+'"], [data-target="#'+b.id+'"]'),this.transitioning=null,this.options.parent?this.$parent=this.getParent():this.addAriaAndCollapsedClass(this.$element,this.$trigger),this.options.toggle&&this.toggle()};d.VERSION="3.3.1",d.TRANSITION_DURATION=350,d.DEFAULTS={toggle:!0,trigger:'[data-toggle="collapse"]'},d.prototype.dimension=function(){var a=this.$element.hasClass("width");return a?"width":"height"},d.prototype.show=function(){if(!this.transitioning&&!this.$element.hasClass("in")){var b,e=this.$parent&&this.$parent.find("> .panel").children(".in, .collapsing");if(!(e&&e.length&&(b=e.data("bs.collapse"),b&&b.transitioning))){var f=a.Event("show.bs.collapse");if(this.$element.trigger(f),!f.isDefaultPrevented()){e&&e.length&&(c.call(e,"hide"),b||e.data("bs.collapse",null));var g=this.dimension();this.$element.removeClass("collapse").addClass("collapsing")[g](0).attr("aria-expanded",!0),this.$trigger.removeClass("collapsed").attr("aria-expanded",!0),this.transitioning=1;var h=function(){this.$element.removeClass("collapsing").addClass("collapse in")[g](""),this.transitioning=0,this.$element.trigger("shown.bs.collapse")};if(!a.support.transition)return h.call(this);var i=a.camelCase(["scroll",g].join("-"));this.$element.one("bsTransitionEnd",a.proxy(h,this)).emulateTransitionEnd(d.TRANSITION_DURATION)[g](this.$element[0][i])}}}},d.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 in").attr("aria-expanded",!1),this.$trigger.addClass("collapsed").attr("aria-expanded",!1),this.transitioning=1;var e=function(){this.transitioning=0,this.$element.removeClass("collapsing").addClass("collapse").trigger("hidden.bs.collapse")};return a.support.transition?void this.$element[c](0).one("bsTransitionEnd",a.proxy(e,this)).emulateTransitionEnd(d.TRANSITION_DURATION):e.call(this)}}},d.prototype.toggle=function(){this[this.$element.hasClass("in")?"hide":"show"]()},d.prototype.getParent=function(){return a(this.options.parent).find('[data-toggle="collapse"][data-parent="'+this.options.parent+'"]').each(a.proxy(function(c,d){var e=a(d);this.addAriaAndCollapsedClass(b(e),e)},this)).end()},d.prototype.addAriaAndCollapsedClass=function(a,b){var c=a.hasClass("in");a.attr("aria-expanded",c),b.toggleClass("collapsed",!c).attr("aria-expanded",c)};var e=a.fn.collapse;a.fn.collapse=c,a.fn.collapse.Constructor=d,a.fn.collapse.noConflict=function(){return a.fn.collapse=e,this},a(document).on("click.bs.collapse.data-api",'[data-toggle="collapse"]',function(d){var e=a(this);e.attr("data-target")||d.preventDefault();var f=b(e),g=f.data("bs.collapse"),h=g?"toggle":a.extend({},e.data(),{trigger:this});c.call(f,h)})}(jQuery),+function(a){"use strict";function b(b){b&&3===b.which||(a(e).remove(),a(f).each(function(){var d=a(this),e=c(d),f={relatedTarget:this};e.hasClass("open")&&(e.trigger(b=a.Event("hide.bs.dropdown",f)),b.isDefaultPrevented()||(d.attr("aria-expanded","false"),e.removeClass("open").trigger("hidden.bs.dropdown",f)))}))}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()}function d(b){return this.each(function(){var c=a(this),d=c.data("bs.dropdown");d||c.data("bs.dropdown",d=new g(this)),"string"==typeof b&&d[b].call(c)})}var e=".dropdown-backdrop",f='[data-toggle="dropdown"]',g=function(b){a(b).on("click.bs.dropdown",this.toggle)};g.VERSION="3.3.1",g.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;e.trigger("focus").attr("aria-expanded","true"),f.toggleClass("open").trigger("shown.bs.dropdown",h)}return!1}},g.prototype.keydown=function(b){if(/(38|40|27|32)/.test(b.which)&&!/input|textarea/i.test(b.target.tagName)){var d=a(this);if(b.preventDefault(),b.stopPropagation(),!d.is(".disabled, :disabled")){var e=c(d),g=e.hasClass("open");if(!g&&27!=b.which||g&&27==b.which)return 27==b.which&&e.find(f).trigger("focus"),d.trigger("click");var h=" li:not(.divider):visible a",i=e.find('[role="menu"]'+h+', [role="listbox"]'+h);if(i.length){var j=i.index(b.target);38==b.which&&j>0&&j--,40==b.which&&j<i.length-1&&j++,~j||(j=0),i.eq(j).trigger("focus")}}}};var h=a.fn.dropdown;a.fn.dropdown=d,a.fn.dropdown.Constructor=g,a.fn.dropdown.noConflict=function(){return a.fn.dropdown=h,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",f,g.prototype.toggle).on("keydown.bs.dropdown.data-api",f,g.prototype.keydown).on("keydown.bs.dropdown.data-api",'[role="menu"]',g.prototype.keydown).on("keydown.bs.dropdown.data-api",'[role="listbox"]',g.prototype.keydown)}(jQuery),+function(a){"use strict";function b(b,d){return this.each(function(){var e=a(this),f=e.data("bs.modal"),g=a.extend({},c.DEFAULTS,e.data(),"object"==typeof b&&b);f||e.data("bs.modal",f=new c(this,g)),"string"==typeof b?f[b](d):g.show&&f.show(d)})}var c=function(b,c){this.options=c,this.$body=a(document.body),this.$element=a(b),this.$backdrop=this.isShown=null,this.scrollbarWidth=0,this.options.remote&&this.$element.find(".modal-content").load(this.options.remote,a.proxy(function(){this.$element.trigger("loaded.bs.modal")},this))};c.VERSION="3.3.1",c.TRANSITION_DURATION=300,c.BACKDROP_TRANSITION_DURATION=150,c.DEFAULTS={backdrop:!0,keyboard:!0,show:!0},c.prototype.toggle=function(a){return this.isShown?this.hide():this.show(a)},c.prototype.show=function(b){var d=this,e=a.Event("show.bs.modal",{relatedTarget:b});this.$element.trigger(e),this.isShown||e.isDefaultPrevented()||(this.isShown=!0,this.checkScrollbar(),this.setScrollbar(),this.$body.addClass("modal-open"),this.escape(),this.resize(),this.$element.on("click.dismiss.bs.modal",'[data-dismiss="modal"]',a.proxy(this.hide,this)),this.backdrop(function(){var e=a.support.transition&&d.$element.hasClass("fade");d.$element.parent().length||d.$element.appendTo(d.$body),d.$element.show().scrollTop(0),d.options.backdrop&&d.adjustBackdrop(),d.adjustDialog(),e&&d.$element[0].offsetWidth,d.$element.addClass("in").attr("aria-hidden",!1),d.enforceFocus();var f=a.Event("shown.bs.modal",{relatedTarget:b});e?d.$element.find(".modal-dialog").one("bsTransitionEnd",function(){d.$element.trigger("focus").trigger(f)}).emulateTransitionEnd(c.TRANSITION_DURATION):d.$element.trigger("focus").trigger(f)}))},c.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(),this.resize(),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("bsTransitionEnd",a.proxy(this.hideModal,this)).emulateTransitionEnd(c.TRANSITION_DURATION):this.hideModal())},c.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.trigger("focus")},this))},c.prototype.escape=function(){this.isShown&&this.options.keyboard?this.$element.on("keydown.dismiss.bs.modal",a.proxy(function(a){27==a.which&&this.hide()},this)):this.isShown||this.$element.off("keydown.dismiss.bs.modal")},c.prototype.resize=function(){this.isShown?a(window).on("resize.bs.modal",a.proxy(this.handleUpdate,this)):a(window).off("resize.bs.modal")},c.prototype.hideModal=function(){var a=this;this.$element.hide(),this.backdrop(function(){a.$body.removeClass("modal-open"),a.resetAdjustments(),a.resetScrollbar(),a.$element.trigger("hidden.bs.modal")})},c.prototype.removeBackdrop=function(){this.$backdrop&&this.$backdrop.remove(),this.$backdrop=null},c.prototype.backdrop=function(b){var d=this,e=this.$element.hasClass("fade")?"fade":"";if(this.isShown&&this.options.backdrop){var f=a.support.transition&&e;if(this.$backdrop=a('<div class="modal-backdrop '+e+'" />').prependTo(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)),f&&this.$backdrop[0].offsetWidth,this.$backdrop.addClass("in"),!b)return;f?this.$backdrop.one("bsTransitionEnd",b).emulateTransitionEnd(c.BACKDROP_TRANSITION_DURATION):b()}else if(!this.isShown&&this.$backdrop){this.$backdrop.removeClass("in");var g=function(){d.removeBackdrop(),b&&b()};a.support.transition&&this.$element.hasClass("fade")?this.$backdrop.one("bsTransitionEnd",g).emulateTransitionEnd(c.BACKDROP_TRANSITION_DURATION):g()}else b&&b()},c.prototype.handleUpdate=function(){this.options.backdrop&&this.adjustBackdrop(),this.adjustDialog()},c.prototype.adjustBackdrop=function(){this.$backdrop.css("height",0).css("height",this.$element[0].scrollHeight)},c.prototype.adjustDialog=function(){var a=this.$element[0].scrollHeight>document.documentElement.clientHeight;this.$element.css({paddingLeft:!this.bodyIsOverflowing&&a?this.scrollbarWidth:"",paddingRight:this.bodyIsOverflowing&&!a?this.scrollbarWidth:""})},c.prototype.resetAdjustments=function(){this.$element.css({paddingLeft:"",paddingRight:""})},c.prototype.checkScrollbar=function(){this.bodyIsOverflowing=document.body.scrollHeight>document.documentElement.clientHeight,this.scrollbarWidth=this.measureScrollbar()},c.prototype.setScrollbar=function(){var a=parseInt(this.$body.css("padding-right")||0,10);this.bodyIsOverflowing&&this.$body.css("padding-right",a+this.scrollbarWidth)},c.prototype.resetScrollbar=function(){this.$body.css("padding-right","")},c.prototype.measureScrollbar=function(){var a=document.createElement("div");a.className="modal-scrollbar-measure",this.$body.append(a);var b=a.offsetWidth-a.clientWidth;return this.$body[0].removeChild(a),b};var d=a.fn.modal;a.fn.modal=b,a.fn.modal.Constructor=c,a.fn.modal.noConflict=function(){return a.fn.modal=d,this},a(document).on("click.bs.modal.data-api",'[data-toggle="modal"]',function(c){var d=a(this),e=d.attr("href"),f=a(d.attr("data-target")||e&&e.replace(/.*(?=#[^\s]+$)/,"")),g=f.data("bs.modal")?"toggle":a.extend({remote:!/#/.test(e)&&e},f.data(),d.data());d.is("a")&&c.preventDefault(),f.one("show.bs.modal",function(a){a.isDefaultPrevented()||f.one("hidden.bs.modal",function(){d.is(":visible")&&d.trigger("focus")})}),b.call(f,g,this)})}(jQuery),+function(a){"use strict";function b(b){return this.each(function(){var d=a(this),e=d.data("bs.tooltip"),f="object"==typeof b&&b,g=f&&f.selector;(e||"destroy"!=b)&&(g?(e||d.data("bs.tooltip",e={}),e[g]||(e[g]=new c(this,f))):e||d.data("bs.tooltip",e=new c(this,f)),"string"==typeof b&&e[b]())})}var c=function(a,b){this.type=this.options=this.enabled=this.timeout=this.hoverState=this.$element=null,this.init("tooltip",a,b)};c.VERSION="3.3.1",c.TRANSITION_DURATION=150,c.DEFAULTS={animation:!0,placement:"top",selector:!1,template:'<div class="tooltip" role="tooltip"><div class="tooltip-arrow"></div><div class="tooltip-inner"></div></div>',trigger:"hover focus",title:"",delay:0,html:!1,container:!1,viewport:{selector:"body",padding:0}},c.prototype.init=function(b,c,d){this.enabled=!0,this.type=b,this.$element=a(c),this.options=this.getOptions(d),this.$viewport=this.options.viewport&&a(this.options.viewport.selector||this.options.viewport);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()},c.prototype.getDefaults=function(){return c.DEFAULTS},c.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},c.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},c.prototype.enter=function(b){var c=b instanceof this.constructor?b:a(b.currentTarget).data("bs."+this.type);return c&&c.$tip&&c.$tip.is(":visible")?void(c.hoverState="in"):(c||(c=new this.constructor(b.currentTarget,this.getDelegateOptions()),a(b.currentTarget).data("bs."+this.type,c)),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())},c.prototype.leave=function(b){var c=b instanceof this.constructor?b:a(b.currentTarget).data("bs."+this.type);return c||(c=new this.constructor(b.currentTarget,this.getDelegateOptions()),a(b.currentTarget).data("bs."+this.type,c)),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()},c.prototype.show=function(){var b=a.Event("show.bs."+this.type);if(this.hasContent()&&this.enabled){this.$element.trigger(b);var d=a.contains(this.$element[0].ownerDocument.documentElement,this.$element[0]);if(b.isDefaultPrevented()||!d)return;var e=this,f=this.tip(),g=this.getUID(this.type);this.setContent(),f.attr("id",g),this.$element.attr("aria-describedby",g),this.options.animation&&f.addClass("fade");var h="function"==typeof this.options.placement?this.options.placement.call(this,f[0],this.$element[0]):this.options.placement,i=/\s?auto?\s?/i,j=i.test(h);j&&(h=h.replace(i,"")||"top"),f.detach().css({top:0,left:0,display:"block"}).addClass(h).data("bs."+this.type,this),this.options.container?f.appendTo(this.options.container):f.insertAfter(this.$element);var k=this.getPosition(),l=f[0].offsetWidth,m=f[0].offsetHeight;if(j){var n=h,o=this.options.container?a(this.options.container):this.$element.parent(),p=this.getPosition(o);h="bottom"==h&&k.bottom+m>p.bottom?"top":"top"==h&&k.top-m<p.top?"bottom":"right"==h&&k.right+l>p.width?"left":"left"==h&&k.left-l<p.left?"right":h,f.removeClass(n).addClass(h)}var q=this.getCalculatedOffset(h,k,l,m);this.applyPlacement(q,h);var r=function(){var a=e.hoverState;e.$element.trigger("shown.bs."+e.type),e.hoverState=null,"out"==a&&e.leave(e)};a.support.transition&&this.$tip.hasClass("fade")?f.one("bsTransitionEnd",r).emulateTransitionEnd(c.TRANSITION_DURATION):r()}},c.prototype.applyPlacement=function(b,c){var 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),b.top=b.top+g,b.left=b.left+h,a.offset.setOffset(d[0],a.extend({using:function(a){d.css({top:Math.round(a.top),left:Math.round(a.left)})}},b),0),d.addClass("in");var i=d[0].offsetWidth,j=d[0].offsetHeight;"top"==c&&j!=f&&(b.top=b.top+f-j);var k=this.getViewportAdjustedDelta(c,b,i,j);k.left?b.left+=k.left:b.top+=k.top;var l=/top|bottom/.test(c),m=l?2*k.left-e+i:2*k.top-f+j,n=l?"offsetWidth":"offsetHeight";d.offset(b),this.replaceArrow(m,d[0][n],l)},c.prototype.replaceArrow=function(a,b,c){this.arrow().css(c?"left":"top",50*(1-a/b)+"%").css(c?"top":"left","")},c.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")},c.prototype.hide=function(b){function d(){"in"!=e.hoverState&&f.detach(),e.$element.removeAttr("aria-describedby").trigger("hidden.bs."+e.type),b&&b()}var e=this,f=this.tip(),g=a.Event("hide.bs."+this.type);return this.$element.trigger(g),g.isDefaultPrevented()?void 0:(f.removeClass("in"),a.support.transition&&this.$tip.hasClass("fade")?f.one("bsTransitionEnd",d).emulateTransitionEnd(c.TRANSITION_DURATION):d(),this.hoverState=null,this)},c.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","")},c.prototype.hasContent=function(){return this.getTitle()},c.prototype.getPosition=function(b){b=b||this.$element;var c=b[0],d="BODY"==c.tagName,e=c.getBoundingClientRect();null==e.width&&(e=a.extend({},e,{width:e.right-e.left,height:e.bottom-e.top}));var f=d?{top:0,left:0}:b.offset(),g={scroll:d?document.documentElement.scrollTop||document.body.scrollTop:b.scrollTop()},h=d?{width:a(window).width(),height:a(window).height()}:null;return a.extend({},e,g,h,f)},c.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}},c.prototype.getViewportAdjustedDelta=function(a,b,c,d){var e={top:0,left:0};if(!this.$viewport)return e;var f=this.options.viewport&&this.options.viewport.padding||0,g=this.getPosition(this.$viewport);if(/right|left/.test(a)){var h=b.top-f-g.scroll,i=b.top+f-g.scroll+d;h<g.top?e.top=g.top-h:i>g.top+g.height&&(e.top=g.top+g.height-i)}else{var j=b.left-f,k=b.left+f+c;j<g.left?e.left=g.left-j:k>g.width&&(e.left=g.left+g.width-k)}return e},c.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)},c.prototype.getUID=function(a){do a+=~~(1e6*Math.random());while(document.getElementById(a));return a},c.prototype.tip=function(){return this.$tip=this.$tip||a(this.options.template)},c.prototype.arrow=function(){return this.$arrow=this.$arrow||this.tip().find(".tooltip-arrow")},c.prototype.enable=function(){this.enabled=!0},c.prototype.disable=function(){this.enabled=!1},c.prototype.toggleEnabled=function(){this.enabled=!this.enabled},c.prototype.toggle=function(b){var c=this;b&&(c=a(b.currentTarget).data("bs."+this.type),c||(c=new this.constructor(b.currentTarget,this.getDelegateOptions()),a(b.currentTarget).data("bs."+this.type,c))),c.tip().hasClass("in")?c.leave(c):c.enter(c)},c.prototype.destroy=function(){var a=this;clearTimeout(this.timeout),this.hide(function(){a.$element.off("."+a.type).removeData("bs."+a.type)})};var d=a.fn.tooltip;a.fn.tooltip=b,a.fn.tooltip.Constructor=c,a.fn.tooltip.noConflict=function(){return a.fn.tooltip=d,this}}(jQuery),+function(a){"use strict";function b(b){return this.each(function(){var d=a(this),e=d.data("bs.popover"),f="object"==typeof b&&b,g=f&&f.selector;(e||"destroy"!=b)&&(g?(e||d.data("bs.popover",e={}),e[g]||(e[g]=new c(this,f))):e||d.data("bs.popover",e=new c(this,f)),"string"==typeof b&&e[b]())})}var c=function(a,b){this.init("popover",a,b)};if(!a.fn.tooltip)throw new Error("Popover requires tooltip.js");c.VERSION="3.3.1",c.DEFAULTS=a.extend({},a.fn.tooltip.Constructor.DEFAULTS,{placement:"right",trigger:"click",content:"",template:'<div class="popover" role="tooltip"><div class="arrow"></div><h3 class="popover-title"></h3><div class="popover-content"></div></div>'}),c.prototype=a.extend({},a.fn.tooltip.Constructor.prototype),c.prototype.constructor=c,c.prototype.getDefaults=function(){return c.DEFAULTS},c.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").children().detach().end()[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()},c.prototype.hasContent=function(){return this.getTitle()||this.getContent()},c.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)},c.prototype.arrow=function(){return this.$arrow=this.$arrow||this.tip().find(".arrow")},c.prototype.tip=function(){return this.$tip||(this.$tip=a(this.options.template)),this.$tip};var d=a.fn.popover;a.fn.popover=b,a.fn.popover.Constructor=c,a.fn.popover.noConflict=function(){return a.fn.popover=d,this}}(jQuery),+function(a){"use strict";function b(c,d){var e=a.proxy(this.process,this);this.$body=a("body"),this.$scrollElement=a(a(c).is("body")?window:c),this.options=a.extend({},b.DEFAULTS,d),this.selector=(this.options.target||"")+" .nav li > a",this.offsets=[],this.targets=[],this.activeTarget=null,this.scrollHeight=0,this.$scrollElement.on("scroll.bs.scrollspy",e),this.refresh(),this.process()}function c(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]()})}b.VERSION="3.3.1",b.DEFAULTS={offset:10},b.prototype.getScrollHeight=function(){return this.$scrollElement[0].scrollHeight||Math.max(this.$body[0].scrollHeight,document.documentElement.scrollHeight)},b.prototype.refresh=function(){var b="offset",c=0;a.isWindow(this.$scrollElement[0])||(b="position",c=this.$scrollElement.scrollTop()),this.offsets=[],this.targets=[],this.scrollHeight=this.getScrollHeight();var d=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+c,e]]||null}).sort(function(a,b){return a[0]-b[0]}).each(function(){d.offsets.push(this[0]),d.targets.push(this[1])})},b.prototype.process=function(){var a,b=this.$scrollElement.scrollTop()+this.options.offset,c=this.getScrollHeight(),d=this.options.offset+c-this.$scrollElement.height(),e=this.offsets,f=this.targets,g=this.activeTarget;if(this.scrollHeight!=c&&this.refresh(),b>=d)return g!=(a=f[f.length-1])&&this.activate(a);if(g&&b<e[0])return this.activeTarget=null,this.clear();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,this.clear();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")},b.prototype.clear=function(){a(this.selector).parentsUntil(this.options.target,".active").removeClass("active")};var d=a.fn.scrollspy;a.fn.scrollspy=c,a.fn.scrollspy.Constructor=b,a.fn.scrollspy.noConflict=function(){return a.fn.scrollspy=d,this},a(window).on("load.bs.scrollspy.data-api",function(){a('[data-spy="scroll"]').each(function(){var b=a(this);c.call(b,b.data())})})}(jQuery),+function(a){"use strict";function b(b){return this.each(function(){var d=a(this),e=d.data("bs.tab");e||d.data("bs.tab",e=new c(this)),"string"==typeof b&&e[b]()})}var c=function(b){this.element=a(b)};c.VERSION="3.3.1",c.TRANSITION_DURATION=150,c.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"),f=a.Event("hide.bs.tab",{relatedTarget:b[0]}),g=a.Event("show.bs.tab",{relatedTarget:e[0]});if(e.trigger(f),b.trigger(g),!g.isDefaultPrevented()&&!f.isDefaultPrevented()){var h=a(d);this.activate(b.closest("li"),c),this.activate(h,h.parent(),function(){e.trigger({type:"hidden.bs.tab",relatedTarget:b[0]}),b.trigger({type:"shown.bs.tab",relatedTarget:e[0]})
+})}}},c.prototype.activate=function(b,d,e){function f(){g.removeClass("active").find("> .dropdown-menu > .active").removeClass("active").end().find('[data-toggle="tab"]').attr("aria-expanded",!1),b.addClass("active").find('[data-toggle="tab"]').attr("aria-expanded",!0),h?(b[0].offsetWidth,b.addClass("in")):b.removeClass("fade"),b.parent(".dropdown-menu")&&b.closest("li.dropdown").addClass("active").end().find('[data-toggle="tab"]').attr("aria-expanded",!0),e&&e()}var g=d.find("> .active"),h=e&&a.support.transition&&(g.length&&g.hasClass("fade")||!!d.find("> .fade").length);g.length&&h?g.one("bsTransitionEnd",f).emulateTransitionEnd(c.TRANSITION_DURATION):f(),g.removeClass("in")};var d=a.fn.tab;a.fn.tab=b,a.fn.tab.Constructor=c,a.fn.tab.noConflict=function(){return a.fn.tab=d,this};var e=function(c){c.preventDefault(),b.call(a(this),"show")};a(document).on("click.bs.tab.data-api",'[data-toggle="tab"]',e).on("click.bs.tab.data-api",'[data-toggle="pill"]',e)}(jQuery),+function(a){"use strict";function b(b){return this.each(function(){var d=a(this),e=d.data("bs.affix"),f="object"==typeof b&&b;e||d.data("bs.affix",e=new c(this,f)),"string"==typeof b&&e[b]()})}var c=function(b,d){this.options=a.extend({},c.DEFAULTS,d),this.$target=a(this.options.target).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(b),this.affixed=this.unpin=this.pinnedOffset=null,this.checkPosition()};c.VERSION="3.3.1",c.RESET="affix affix-top affix-bottom",c.DEFAULTS={offset:0,target:window},c.prototype.getState=function(a,b,c,d){var e=this.$target.scrollTop(),f=this.$element.offset(),g=this.$target.height();if(null!=c&&"top"==this.affixed)return c>e?"top":!1;if("bottom"==this.affixed)return null!=c?e+this.unpin<=f.top?!1:"bottom":a-d>=e+g?!1:"bottom";var h=null==this.affixed,i=h?e:f.top,j=h?g:b;return null!=c&&c>=i?"top":null!=d&&i+j>=a-d?"bottom":!1},c.prototype.getPinnedOffset=function(){if(this.pinnedOffset)return this.pinnedOffset;this.$element.removeClass(c.RESET).addClass("affix");var a=this.$target.scrollTop(),b=this.$element.offset();return this.pinnedOffset=b.top-a},c.prototype.checkPositionWithEventLoop=function(){setTimeout(a.proxy(this.checkPosition,this),1)},c.prototype.checkPosition=function(){if(this.$element.is(":visible")){var b=this.$element.height(),d=this.options.offset,e=d.top,f=d.bottom,g=a("body").height();"object"!=typeof d&&(f=e=d),"function"==typeof e&&(e=d.top(this.$element)),"function"==typeof f&&(f=d.bottom(this.$element));var h=this.getState(g,b,e,f);if(this.affixed!=h){null!=this.unpin&&this.$element.css("top","");var i="affix"+(h?"-"+h:""),j=a.Event(i+".bs.affix");if(this.$element.trigger(j),j.isDefaultPrevented())return;this.affixed=h,this.unpin="bottom"==h?this.getPinnedOffset():null,this.$element.removeClass(c.RESET).addClass(i).trigger(i.replace("affix","affixed")+".bs.affix")}"bottom"==h&&this.$element.offset({top:g-b-f})}};var d=a.fn.affix;a.fn.affix=b,a.fn.affix.Constructor=c,a.fn.affix.noConflict=function(){return a.fn.affix=d,this},a(window).on("load",function(){a('[data-spy="affix"]').each(function(){var c=a(this),d=c.data();d.offset=d.offset||{},null!=d.offsetBottom&&(d.offset.bottom=d.offsetBottom),null!=d.offsetTop&&(d.offset.top=d.offsetTop),b.call(c,d)})})}(jQuery); \ No newline at end of file
diff --git a/library/cacert.pem b/library/cacert.pem
index 67f696abc..633005921 100644
--- a/library/cacert.pem
+++ b/library/cacert.pem
@@ -1,18 +1,21 @@
##
-## ca-bundle.crt -- Bundle of CA Root Certificates
+## Bundle of CA Root Certificates
##
-## Certificate data from Mozilla as of: Tue Jan 28 09:38:07 2014
+## Certificate data from Mozilla downloaded on: Wed Sep 3 03:12:03 2014
##
## This is a bundle of X.509 certificates of public Certificate Authorities
## (CA). These were automatically extracted from Mozilla's root certificates
## file (certdata.txt). This file can be found in the mozilla source tree:
-## http://mxr.mozilla.org/mozilla-release/source/security/nss/lib/ckfw/builtins/certdata.txt?raw=1
+## http://hg.mozilla.org/releases/mozilla-release/raw-file/default/security/nss/lib/ckfw/builtins/certdata.txt
##
## It contains the certificates in PEM format and therefore
## can be directly used with curl / libcurl / php_curl, or with
## an Apache+mod_ssl webserver for SSL client authentication.
## Just configure this file as the SSLCACertificateFile.
##
+## Conversion done with mk-ca-bundle.pl verison 1.22.
+## SHA1: c4540021427a6fa29e5f50db9f12d48c97d33889
+##
GTE CyberTrust Global Root
@@ -90,22 +93,6 @@ BIZCe/zuf6IWUrVnZ9NA2zsmWLIodz2uFHdh1voqZiegDfqnc1zqcPGUIWVEX/r87yloqaKHee95
70+sB3c4
-----END CERTIFICATE-----
-Verisign Class 3 Public Primary Certification Authority
-=======================================================
------BEGIN CERTIFICATE-----
-MIICPDCCAaUCEHC65B0Q2Sk0tjjKewPMur8wDQYJKoZIhvcNAQECBQAwXzELMAkGA1UEBhMCVVMx
-FzAVBgNVBAoTDlZlcmlTaWduLCBJbmMuMTcwNQYDVQQLEy5DbGFzcyAzIFB1YmxpYyBQcmltYXJ5
-IENlcnRpZmljYXRpb24gQXV0aG9yaXR5MB4XDTk2MDEyOTAwMDAwMFoXDTI4MDgwMTIzNTk1OVow
-XzELMAkGA1UEBhMCVVMxFzAVBgNVBAoTDlZlcmlTaWduLCBJbmMuMTcwNQYDVQQLEy5DbGFzcyAz
-IFB1YmxpYyBQcmltYXJ5IENlcnRpZmljYXRpb24gQXV0aG9yaXR5MIGfMA0GCSqGSIb3DQEBAQUA
-A4GNADCBiQKBgQDJXFme8huKARS0EN8EQNvjV69qRUCPhAwL0TPZ2RHP7gJYHyX3KqhEBarsAx94
-f56TuZoAqiN91qyFomNFx3InzPRMxnVx0jnvT0Lwdd8KkMaOIG+YD/isI19wKTakyYbnsZogy1Ol
-hec9vn2a/iRFM9x2Fe0PonFkTGUugWhFpwIDAQABMA0GCSqGSIb3DQEBAgUAA4GBALtMEivPLCYA
-TxQT3ab7/AoRhIzzKBxnki98tsX63/Dolbwdj2wsqFHMc9ikwFPwTtYmwHYBV4GSXiHx0bH/59Ah
-WM1pF+NEHJwZRDmJXNycAA9WjQKZ7aKQRUzkuxCkPfAyAw7xzvjoyVGM5mKf5p/AfbdynMk2Omuf
-Tqj/ZA1k
------END CERTIFICATE-----
-
Verisign Class 3 Public Primary Certification Authority - G2
============================================================
-----BEGIN CERTIFICATE-----
@@ -168,63 +155,6 @@ BgkqhkiG9w0BAQUFAAOCAQEAmYFThxxol4aR7OBKuEQLq4GsJ0/WwbgcQ3izDJr86iw8bmEbTUsp
TBj0/VLZjmmx6BEP3ojY+x1J96relc8geMJgEtslQIxq/H5COEBkEveegeGTLg==
-----END CERTIFICATE-----
-ValiCert Class 1 VA
-===================
------BEGIN CERTIFICATE-----
-MIIC5zCCAlACAQEwDQYJKoZIhvcNAQEFBQAwgbsxJDAiBgNVBAcTG1ZhbGlDZXJ0IFZhbGlkYXRp
-b24gTmV0d29yazEXMBUGA1UEChMOVmFsaUNlcnQsIEluYy4xNTAzBgNVBAsTLFZhbGlDZXJ0IENs
-YXNzIDEgUG9saWN5IFZhbGlkYXRpb24gQXV0aG9yaXR5MSEwHwYDVQQDExhodHRwOi8vd3d3LnZh
-bGljZXJ0LmNvbS8xIDAeBgkqhkiG9w0BCQEWEWluZm9AdmFsaWNlcnQuY29tMB4XDTk5MDYyNTIy
-MjM0OFoXDTE5MDYyNTIyMjM0OFowgbsxJDAiBgNVBAcTG1ZhbGlDZXJ0IFZhbGlkYXRpb24gTmV0
-d29yazEXMBUGA1UEChMOVmFsaUNlcnQsIEluYy4xNTAzBgNVBAsTLFZhbGlDZXJ0IENsYXNzIDEg
-UG9saWN5IFZhbGlkYXRpb24gQXV0aG9yaXR5MSEwHwYDVQQDExhodHRwOi8vd3d3LnZhbGljZXJ0
-LmNvbS8xIDAeBgkqhkiG9w0BCQEWEWluZm9AdmFsaWNlcnQuY29tMIGfMA0GCSqGSIb3DQEBAQUA
-A4GNADCBiQKBgQDYWYJ6ibiWuqYvaG9YLqdUHAZu9OqNSLwxlBfw8068srg1knaw0KWlAdcAAxIi
-GQj4/xEjm84H9b9pGib+TunRf50sQB1ZaG6m+FiwnRqP0z/x3BkGgagO4DrdyFNFCQbmD3DD+kCm
-DuJWBQ8YTfwggtFzVXSNdnKgHZ0dwN0/cQIDAQABMA0GCSqGSIb3DQEBBQUAA4GBAFBoPUn0LBwG
-lN+VYH+Wexf+T3GtZMjdd9LvWVXoP+iOBSoh8gfStadS/pyxtuJbdxdA6nLWI8sogTLDAHkY7FkX
-icnGah5xyf23dKUlRWnFSKsZ4UWKJWsZ7uW7EvV/96aNUcPwnXS3qT6gpf+2SQMT2iLM7XGCK5nP
-Orf1LXLI
------END CERTIFICATE-----
-
-ValiCert Class 2 VA
-===================
------BEGIN CERTIFICATE-----
-MIIC5zCCAlACAQEwDQYJKoZIhvcNAQEFBQAwgbsxJDAiBgNVBAcTG1ZhbGlDZXJ0IFZhbGlkYXRp
-b24gTmV0d29yazEXMBUGA1UEChMOVmFsaUNlcnQsIEluYy4xNTAzBgNVBAsTLFZhbGlDZXJ0IENs
-YXNzIDIgUG9saWN5IFZhbGlkYXRpb24gQXV0aG9yaXR5MSEwHwYDVQQDExhodHRwOi8vd3d3LnZh
-bGljZXJ0LmNvbS8xIDAeBgkqhkiG9w0BCQEWEWluZm9AdmFsaWNlcnQuY29tMB4XDTk5MDYyNjAw
-MTk1NFoXDTE5MDYyNjAwMTk1NFowgbsxJDAiBgNVBAcTG1ZhbGlDZXJ0IFZhbGlkYXRpb24gTmV0
-d29yazEXMBUGA1UEChMOVmFsaUNlcnQsIEluYy4xNTAzBgNVBAsTLFZhbGlDZXJ0IENsYXNzIDIg
-UG9saWN5IFZhbGlkYXRpb24gQXV0aG9yaXR5MSEwHwYDVQQDExhodHRwOi8vd3d3LnZhbGljZXJ0
-LmNvbS8xIDAeBgkqhkiG9w0BCQEWEWluZm9AdmFsaWNlcnQuY29tMIGfMA0GCSqGSIb3DQEBAQUA
-A4GNADCBiQKBgQDOOnHK5avIWZJV16vYdA757tn2VUdZZUcOBVXc65g2PFxTXdMwzzjsvUGJ7SVC
-CSRrCl6zfN1SLUzm1NZ9WlmpZdRJEy0kTRxQb7XBhVQ7/nHk01xC+YDgkRoKWzk2Z/M/VXwbP7Rf
-ZHM047QSv4dk+NoS/zcnwbNDu+97bi5p9wIDAQABMA0GCSqGSIb3DQEBBQUAA4GBADt/UG9vUJSZ
-SWI4OB9L+KXIPqeCgfYrx+jFzug6EILLGACOTb2oWH+heQC1u+mNr0HZDzTuIYEZoDJJKPTEjlbV
-UjP9UNV+mWwD5MlM/Mtsq2azSiGM5bUMMj4QssxsodyamEwCW/POuZ6lcg5Ktz885hZo+L7tdEy8
-W9ViH0Pd
------END CERTIFICATE-----
-
-RSA Root Certificate 1
-======================
------BEGIN CERTIFICATE-----
-MIIC5zCCAlACAQEwDQYJKoZIhvcNAQEFBQAwgbsxJDAiBgNVBAcTG1ZhbGlDZXJ0IFZhbGlkYXRp
-b24gTmV0d29yazEXMBUGA1UEChMOVmFsaUNlcnQsIEluYy4xNTAzBgNVBAsTLFZhbGlDZXJ0IENs
-YXNzIDMgUG9saWN5IFZhbGlkYXRpb24gQXV0aG9yaXR5MSEwHwYDVQQDExhodHRwOi8vd3d3LnZh
-bGljZXJ0LmNvbS8xIDAeBgkqhkiG9w0BCQEWEWluZm9AdmFsaWNlcnQuY29tMB4XDTk5MDYyNjAw
-MjIzM1oXDTE5MDYyNjAwMjIzM1owgbsxJDAiBgNVBAcTG1ZhbGlDZXJ0IFZhbGlkYXRpb24gTmV0
-d29yazEXMBUGA1UEChMOVmFsaUNlcnQsIEluYy4xNTAzBgNVBAsTLFZhbGlDZXJ0IENsYXNzIDMg
-UG9saWN5IFZhbGlkYXRpb24gQXV0aG9yaXR5MSEwHwYDVQQDExhodHRwOi8vd3d3LnZhbGljZXJ0
-LmNvbS8xIDAeBgkqhkiG9w0BCQEWEWluZm9AdmFsaWNlcnQuY29tMIGfMA0GCSqGSIb3DQEBAQUA
-A4GNADCBiQKBgQDjmFGWHOjVsQaBalfDcnWTq8+epvzzFlLWLU2fNUSoLgRNB0mKOCn1dzfnt6td
-3zZxFJmP3MKS8edgkpfs2Ejcv8ECIMYkpChMMFp2bbFc893enhBxoYjHW5tBbcqwuI4V7q0zK89H
-BFx1cQqYJJgpp0lZpd34t0NiYfPT4tBVPwIDAQABMA0GCSqGSIb3DQEBBQUAA4GBAFa7AliEZwgs
-3x/be0kz9dNnnfS0ChCzycUs4pJqcXgn8nCDQtM+z6lU9PHYkhaM0QTLS6vJn0WuPIqpsHEzXcjF
-V9+vqDWzf4mH6eglkrh/hXqu1rweN1gqZ8mRzyqBPu3GOd/APhmcGcwTTYJBtYze4D1gCCAPRX5r
-on+jjBXu
------END CERTIFICATE-----
-
Verisign Class 3 Public Primary Certification Authority - G3
============================================================
-----BEGIN CERTIFICATE-----
@@ -273,33 +203,6 @@ RTjDOPP8hS6DRkiy1yBfkjaP53kPmF6Z6PDQpLv1U70qzlmwr25/bLvSHgCwIe34QWKCudiyxLtG
UPMxxY8BqHTr9Xgn2uf3ZkPznoM+IKrDNWCRzg==
-----END CERTIFICATE-----
-Entrust.net Secure Server CA
-============================
------BEGIN CERTIFICATE-----
-MIIE2DCCBEGgAwIBAgIEN0rSQzANBgkqhkiG9w0BAQUFADCBwzELMAkGA1UEBhMCVVMxFDASBgNV
-BAoTC0VudHJ1c3QubmV0MTswOQYDVQQLEzJ3d3cuZW50cnVzdC5uZXQvQ1BTIGluY29ycC4gYnkg
-cmVmLiAobGltaXRzIGxpYWIuKTElMCMGA1UECxMcKGMpIDE5OTkgRW50cnVzdC5uZXQgTGltaXRl
-ZDE6MDgGA1UEAxMxRW50cnVzdC5uZXQgU2VjdXJlIFNlcnZlciBDZXJ0aWZpY2F0aW9uIEF1dGhv
-cml0eTAeFw05OTA1MjUxNjA5NDBaFw0xOTA1MjUxNjM5NDBaMIHDMQswCQYDVQQGEwJVUzEUMBIG
-A1UEChMLRW50cnVzdC5uZXQxOzA5BgNVBAsTMnd3dy5lbnRydXN0Lm5ldC9DUFMgaW5jb3JwLiBi
-eSByZWYuIChsaW1pdHMgbGlhYi4pMSUwIwYDVQQLExwoYykgMTk5OSBFbnRydXN0Lm5ldCBMaW1p
-dGVkMTowOAYDVQQDEzFFbnRydXN0Lm5ldCBTZWN1cmUgU2VydmVyIENlcnRpZmljYXRpb24gQXV0
-aG9yaXR5MIGdMA0GCSqGSIb3DQEBAQUAA4GLADCBhwKBgQDNKIM0VBuJ8w+vN5Ex/68xYMmo6LIQ
-aO2f55M28Qpku0f1BBc/I0dNxScZgSYMVHINiC3ZH5oSn7yzcdOAGT9HZnuMNSjSuQrfJNqc1lB5
-gXpa0zf3wkrYKZImZNHkmGw6AIr1NJtl+O3jEP/9uElY3KDegjlrgbEWGWG5VLbmQwIBA6OCAdcw
-ggHTMBEGCWCGSAGG+EIBAQQEAwIABzCCARkGA1UdHwSCARAwggEMMIHeoIHboIHYpIHVMIHSMQsw
-CQYDVQQGEwJVUzEUMBIGA1UEChMLRW50cnVzdC5uZXQxOzA5BgNVBAsTMnd3dy5lbnRydXN0Lm5l
-dC9DUFMgaW5jb3JwLiBieSByZWYuIChsaW1pdHMgbGlhYi4pMSUwIwYDVQQLExwoYykgMTk5OSBF
-bnRydXN0Lm5ldCBMaW1pdGVkMTowOAYDVQQDEzFFbnRydXN0Lm5ldCBTZWN1cmUgU2VydmVyIENl
-cnRpZmljYXRpb24gQXV0aG9yaXR5MQ0wCwYDVQQDEwRDUkwxMCmgJ6AlhiNodHRwOi8vd3d3LmVu
-dHJ1c3QubmV0L0NSTC9uZXQxLmNybDArBgNVHRAEJDAigA8xOTk5MDUyNTE2MDk0MFqBDzIwMTkw
-NTI1MTYwOTQwWjALBgNVHQ8EBAMCAQYwHwYDVR0jBBgwFoAU8BdiE1U9s/8KAGv7UISX8+1i0Bow
-HQYDVR0OBBYEFPAXYhNVPbP/CgBr+1CEl/PtYtAaMAwGA1UdEwQFMAMBAf8wGQYJKoZIhvZ9B0EA
-BAwwChsEVjQuMAMCBJAwDQYJKoZIhvcNAQEFBQADgYEAkNwwAvpkdMKnCqV8IY00F6j7Rw7/JXyN
-Ewr75Ji174z4xRAN95K+8cPV1ZVqBLssziY2ZcgxxufuP+NXdYR6Ee9GTxj005i7qIcyunL2POI9
-n9cd2cNgQ4xYDiKWL2KjLB+6rQXvqzJ4h6BUcxm1XAX5Uj5tLUUL9wqT6u0G+bI=
------END CERTIFICATE-----
-
Entrust.net Premium 2048 Secure Server CA
=========================================
-----BEGIN CERTIFICATE-----
@@ -953,30 +856,6 @@ nGQI0DvDKcWy7ZAEwbEpkcUwb8GpcjPM/l0WFywRaed+/sWDCN+83CI6LiBpIzlWYGeQiy52OfsR
iJf2fL1LuCAWZwWN4jvBcj+UlTfHXbme2JOhF4//DGYVwSR8MnwDHTuhWEUykw==
-----END CERTIFICATE-----
-TDC Internet Root CA
-====================
------BEGIN CERTIFICATE-----
-MIIEKzCCAxOgAwIBAgIEOsylTDANBgkqhkiG9w0BAQUFADBDMQswCQYDVQQGEwJESzEVMBMGA1UE
-ChMMVERDIEludGVybmV0MR0wGwYDVQQLExRUREMgSW50ZXJuZXQgUm9vdCBDQTAeFw0wMTA0MDUx
-NjMzMTdaFw0yMTA0MDUxNzAzMTdaMEMxCzAJBgNVBAYTAkRLMRUwEwYDVQQKEwxUREMgSW50ZXJu
-ZXQxHTAbBgNVBAsTFFREQyBJbnRlcm5ldCBSb290IENBMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8A
-MIIBCgKCAQEAxLhAvJHVYx/XmaCLDEAedLdInUaMArLgJF/wGROnN4NrXceO+YQwzho7+vvOi20j
-xsNuZp+Jpd/gQlBn+h9sHvTQBda/ytZO5GhgbEaqHF1j4QeGDmUApy6mcca8uYGoOn0a0vnRrEvL
-znWv3Hv6gXPU/Lq9QYjUdLP5Xjg6PEOo0pVOd20TDJ2PeAG3WiAfAzc14izbSysseLlJ28TQx5yc
-5IogCSEWVmb/Bexb4/DPqyQkXsN/cHoSxNK1EKC2IeGNeGlVRGn1ypYcNIUXJXfi9i8nmHj9eQY6
-otZaQ8H/7AQ77hPv01ha/5Lr7K7a8jcDR0G2l8ktCkEiu7vmpwIDAQABo4IBJTCCASEwEQYJYIZI
-AYb4QgEBBAQDAgAHMGUGA1UdHwReMFwwWqBYoFakVDBSMQswCQYDVQQGEwJESzEVMBMGA1UEChMM
-VERDIEludGVybmV0MR0wGwYDVQQLExRUREMgSW50ZXJuZXQgUm9vdCBDQTENMAsGA1UEAxMEQ1JM
-MTArBgNVHRAEJDAigA8yMDAxMDQwNTE2MzMxN1qBDzIwMjEwNDA1MTcwMzE3WjALBgNVHQ8EBAMC
-AQYwHwYDVR0jBBgwFoAUbGQBx/2FbazI2p5QCIUItTxWqFAwHQYDVR0OBBYEFGxkAcf9hW2syNqe
-UAiFCLU8VqhQMAwGA1UdEwQFMAMBAf8wHQYJKoZIhvZ9B0EABBAwDhsIVjUuMDo0LjADAgSQMA0G
-CSqGSIb3DQEBBQUAA4IBAQBOQ8zR3R0QGwZ/t6T609lN+yOfI1Rb5osvBCiLtSdtiaHsmGnc540m
-gwV5dOy0uaOXwTUA/RXaOYE6lTGQ3pfphqiZdwzlWqCE/xIWrG64jcN7ksKsLtB9KOy282A4aW8+
-2ARVPp7MVdK6/rtHBNcK2RYKNCn1WBPVT8+PVkuzHu7TmHnaCB4Mb7j4Fifvwm899qNLPg7kbWzb
-O0ESm70NRyN/PErQr8Cv9u8btRXE64PECV90i9kR+8JWsTz4cMo0jUNAE4z9mQNUecYu6oah9jrU
-Cbz0vGbMPVjQV0kK7iXiQe4T+Zs4NNEA9X7nlB38aQNiuJkFBT1reBK9sG9l
------END CERTIFICATE-----
-
UTN DATACorp SGC Root CA
========================
-----BEGIN CERTIFICATE-----
@@ -1117,64 +996,6 @@ KuZoPL9coAob4Q566eKAw+np9v1sEZ7Q5SgnK1QyQhSCdeZK8CtmdWOMovsEPoMOmzbwGOQmIMOM
8CgHrTwXZoi1/baI
-----END CERTIFICATE-----
-NetLock Business (Class B) Root
-===============================
------BEGIN CERTIFICATE-----
-MIIFSzCCBLSgAwIBAgIBaTANBgkqhkiG9w0BAQQFADCBmTELMAkGA1UEBhMCSFUxETAPBgNVBAcT
-CEJ1ZGFwZXN0MScwJQYDVQQKEx5OZXRMb2NrIEhhbG96YXRiaXp0b25zYWdpIEtmdC4xGjAYBgNV
-BAsTEVRhbnVzaXR2YW55a2lhZG9rMTIwMAYDVQQDEylOZXRMb2NrIFV6bGV0aSAoQ2xhc3MgQikg
-VGFudXNpdHZhbnlraWFkbzAeFw05OTAyMjUxNDEwMjJaFw0xOTAyMjAxNDEwMjJaMIGZMQswCQYD
-VQQGEwJIVTERMA8GA1UEBxMIQnVkYXBlc3QxJzAlBgNVBAoTHk5ldExvY2sgSGFsb3phdGJpenRv
-bnNhZ2kgS2Z0LjEaMBgGA1UECxMRVGFudXNpdHZhbnlraWFkb2sxMjAwBgNVBAMTKU5ldExvY2sg
-VXpsZXRpIChDbGFzcyBCKSBUYW51c2l0dmFueWtpYWRvMIGfMA0GCSqGSIb3DQEBAQUAA4GNADCB
-iQKBgQCx6gTsIKAjwo84YM/HRrPVG/77uZmeBNwcf4xKgZjupNTKihe5In+DCnVMm8Bp2GQ5o+2S
-o/1bXHQawEfKOml2mrriRBf8TKPV/riXiK+IA4kfpPIEPsgHC+b5sy96YhQJRhTKZPWLgLViqNhr
-1nGTLbO/CVRY7QbrqHvcQ7GhaQIDAQABo4ICnzCCApswEgYDVR0TAQH/BAgwBgEB/wIBBDAOBgNV
-HQ8BAf8EBAMCAAYwEQYJYIZIAYb4QgEBBAQDAgAHMIICYAYJYIZIAYb4QgENBIICURaCAk1GSUdZ
-RUxFTSEgRXplbiB0YW51c2l0dmFueSBhIE5ldExvY2sgS2Z0LiBBbHRhbGFub3MgU3pvbGdhbHRh
-dGFzaSBGZWx0ZXRlbGVpYmVuIGxlaXJ0IGVsamFyYXNvayBhbGFwamFuIGtlc3p1bHQuIEEgaGl0
-ZWxlc2l0ZXMgZm9seWFtYXRhdCBhIE5ldExvY2sgS2Z0LiB0ZXJtZWtmZWxlbG9zc2VnLWJpenRv
-c2l0YXNhIHZlZGkuIEEgZGlnaXRhbGlzIGFsYWlyYXMgZWxmb2dhZGFzYW5hayBmZWx0ZXRlbGUg
-YXogZWxvaXJ0IGVsbGVub3J6ZXNpIGVsamFyYXMgbWVndGV0ZWxlLiBBeiBlbGphcmFzIGxlaXJh
-c2EgbWVndGFsYWxoYXRvIGEgTmV0TG9jayBLZnQuIEludGVybmV0IGhvbmxhcGphbiBhIGh0dHBz
-Oi8vd3d3Lm5ldGxvY2submV0L2RvY3MgY2ltZW4gdmFneSBrZXJoZXRvIGF6IGVsbGVub3J6ZXNA
-bmV0bG9jay5uZXQgZS1tYWlsIGNpbWVuLiBJTVBPUlRBTlQhIFRoZSBpc3N1YW5jZSBhbmQgdGhl
-IHVzZSBvZiB0aGlzIGNlcnRpZmljYXRlIGlzIHN1YmplY3QgdG8gdGhlIE5ldExvY2sgQ1BTIGF2
-YWlsYWJsZSBhdCBodHRwczovL3d3dy5uZXRsb2NrLm5ldC9kb2NzIG9yIGJ5IGUtbWFpbCBhdCBj
-cHNAbmV0bG9jay5uZXQuMA0GCSqGSIb3DQEBBAUAA4GBAATbrowXr/gOkDFOzT4JwG06sPgzTEdM
-43WIEJessDgVkcYplswhwG08pXTP2IKlOcNl40JwuyKQ433bNXbhoLXan3BukxowOR0w2y7jfLKR
-stE3Kfq51hdcR0/jHTjrn9V7lagonhVK0dHQKwCXoOKSNitjrFgBazMpUIaD8QFI
------END CERTIFICATE-----
-
-NetLock Express (Class C) Root
-==============================
------BEGIN CERTIFICATE-----
-MIIFTzCCBLigAwIBAgIBaDANBgkqhkiG9w0BAQQFADCBmzELMAkGA1UEBhMCSFUxETAPBgNVBAcT
-CEJ1ZGFwZXN0MScwJQYDVQQKEx5OZXRMb2NrIEhhbG96YXRiaXp0b25zYWdpIEtmdC4xGjAYBgNV
-BAsTEVRhbnVzaXR2YW55a2lhZG9rMTQwMgYDVQQDEytOZXRMb2NrIEV4cHJlc3N6IChDbGFzcyBD
-KSBUYW51c2l0dmFueWtpYWRvMB4XDTk5MDIyNTE0MDgxMVoXDTE5MDIyMDE0MDgxMVowgZsxCzAJ
-BgNVBAYTAkhVMREwDwYDVQQHEwhCdWRhcGVzdDEnMCUGA1UEChMeTmV0TG9jayBIYWxvemF0Yml6
-dG9uc2FnaSBLZnQuMRowGAYDVQQLExFUYW51c2l0dmFueWtpYWRvazE0MDIGA1UEAxMrTmV0TG9j
-ayBFeHByZXNzeiAoQ2xhc3MgQykgVGFudXNpdHZhbnlraWFkbzCBnzANBgkqhkiG9w0BAQEFAAOB
-jQAwgYkCgYEA6+ywbGGKIyWvYCDj2Z/8kwvbXY2wobNAOoLO/XXgeDIDhlqGlZHtU/qdQPzm6N3Z
-W3oDvV3zOwzDUXmbrVWg6dADEK8KuhRC2VImESLH0iDMgqSaqf64gXadarfSNnU+sYYJ9m5tfk63
-euyucYT2BDMIJTLrdKwWRMbkQJMdf60CAwEAAaOCAp8wggKbMBIGA1UdEwEB/wQIMAYBAf8CAQQw
-DgYDVR0PAQH/BAQDAgAGMBEGCWCGSAGG+EIBAQQEAwIABzCCAmAGCWCGSAGG+EIBDQSCAlEWggJN
-RklHWUVMRU0hIEV6ZW4gdGFudXNpdHZhbnkgYSBOZXRMb2NrIEtmdC4gQWx0YWxhbm9zIFN6b2xn
-YWx0YXRhc2kgRmVsdGV0ZWxlaWJlbiBsZWlydCBlbGphcmFzb2sgYWxhcGphbiBrZXN6dWx0LiBB
-IGhpdGVsZXNpdGVzIGZvbHlhbWF0YXQgYSBOZXRMb2NrIEtmdC4gdGVybWVrZmVsZWxvc3NlZy1i
-aXp0b3NpdGFzYSB2ZWRpLiBBIGRpZ2l0YWxpcyBhbGFpcmFzIGVsZm9nYWRhc2FuYWsgZmVsdGV0
-ZWxlIGF6IGVsb2lydCBlbGxlbm9yemVzaSBlbGphcmFzIG1lZ3RldGVsZS4gQXogZWxqYXJhcyBs
-ZWlyYXNhIG1lZ3RhbGFsaGF0byBhIE5ldExvY2sgS2Z0LiBJbnRlcm5ldCBob25sYXBqYW4gYSBo
-dHRwczovL3d3dy5uZXRsb2NrLm5ldC9kb2NzIGNpbWVuIHZhZ3kga2VyaGV0byBheiBlbGxlbm9y
-emVzQG5ldGxvY2submV0IGUtbWFpbCBjaW1lbi4gSU1QT1JUQU5UISBUaGUgaXNzdWFuY2UgYW5k
-IHRoZSB1c2Ugb2YgdGhpcyBjZXJ0aWZpY2F0ZSBpcyBzdWJqZWN0IHRvIHRoZSBOZXRMb2NrIENQ
-UyBhdmFpbGFibGUgYXQgaHR0cHM6Ly93d3cubmV0bG9jay5uZXQvZG9jcyBvciBieSBlLW1haWwg
-YXQgY3BzQG5ldGxvY2submV0LjANBgkqhkiG9w0BAQQFAAOBgQAQrX/XDDKACtiG8XmYta3UzbM2
-xJZIwVzNmtkFLp++UOv0JhQQLdRmF/iewSf98e3ke0ugbLWrmldwpu2gpO0u9f38vf5NNwgMvOOW
-gyL1SRt/Syu0VMGAfJlOHdCM7tCs5ZL6dVb+ZKATj7i4Fp1hBWeAyNDYpQcCNJgEjTME1A==
------END CERTIFICATE-----
-
XRamp Global CA Root
====================
-----BEGIN CERTIFICATE-----
@@ -1318,31 +1139,6 @@ CZBUkQM8R+XVyWXgt0t97EfTsws+rZ7QdAAO671RrcDeLMDDav7v3Aun+kbfYNucpllQdSNpc5Oy
+fwC00fmcc4QAu4njIT/rEUNE1yDMuAlpYYsfPQS
-----END CERTIFICATE-----
-Firmaprofesional Root CA
-========================
------BEGIN CERTIFICATE-----
-MIIEVzCCAz+gAwIBAgIBATANBgkqhkiG9w0BAQUFADCBnTELMAkGA1UEBhMCRVMxIjAgBgNVBAcT
-GUMvIE11bnRhbmVyIDI0NCBCYXJjZWxvbmExQjBABgNVBAMTOUF1dG9yaWRhZCBkZSBDZXJ0aWZp
-Y2FjaW9uIEZpcm1hcHJvZmVzaW9uYWwgQ0lGIEE2MjYzNDA2ODEmMCQGCSqGSIb3DQEJARYXY2FA
-ZmlybWFwcm9mZXNpb25hbC5jb20wHhcNMDExMDI0MjIwMDAwWhcNMTMxMDI0MjIwMDAwWjCBnTEL
-MAkGA1UEBhMCRVMxIjAgBgNVBAcTGUMvIE11bnRhbmVyIDI0NCBCYXJjZWxvbmExQjBABgNVBAMT
-OUF1dG9yaWRhZCBkZSBDZXJ0aWZpY2FjaW9uIEZpcm1hcHJvZmVzaW9uYWwgQ0lGIEE2MjYzNDA2
-ODEmMCQGCSqGSIb3DQEJARYXY2FAZmlybWFwcm9mZXNpb25hbC5jb20wggEiMA0GCSqGSIb3DQEB
-AQUAA4IBDwAwggEKAoIBAQDnIwNvbyOlXnjOlSztlB5uCp4Bx+ow0Syd3Tfom5h5VtP8c9/Qit5V
-j1H5WuretXDE7aTt/6MNbg9kUDGvASdYrv5sp0ovFy3Tc9UTHI9ZpTQsHVQERc1ouKDAA6XPhUJH
-lShbz++AbOCQl4oBPB3zhxAwJkh91/zpnZFx/0GaqUC1N5wpIE8fUuOgfRNtVLcK3ulqTgesrBlf
-3H5idPayBQC6haD9HThuy1q7hryUZzM1gywfI834yJFxzJeL764P3CkDG8A563DtwW4O2GcLiam8
-NeTvtjS0pbbELaW+0MOUJEjb35bTALVmGotmBQ/dPz/LP6pemkr4tErvlTcbAgMBAAGjgZ8wgZww
-KgYDVR0RBCMwIYYfaHR0cDovL3d3dy5maXJtYXByb2Zlc2lvbmFsLmNvbTASBgNVHRMBAf8ECDAG
-AQH/AgEBMCsGA1UdEAQkMCKADzIwMDExMDI0MjIwMDAwWoEPMjAxMzEwMjQyMjAwMDBaMA4GA1Ud
-DwEB/wQEAwIBBjAdBgNVHQ4EFgQUMwugZtHq2s7eYpMEKFK1FH84aLcwDQYJKoZIhvcNAQEFBQAD
-ggEBAEdz/o0nVPD11HecJ3lXV7cVVuzH2Fi3AQL0M+2TUIiefEaxvT8Ub/GzR0iLjJcG1+p+o1wq
-u00vR+L4OQbJnC4xGgN49Lw4xiKLMzHwFgQEffl25EvXwOaD7FnMP97/T2u3Z36mhoEyIwOdyPdf
-wUpgpZKpsaSgYMN4h7Mi8yrrW6ntBas3D7Hi05V2Y1Z0jFhyGzflZKG+TQyTmAyX9odtsz/ny4Cm
-7YjHX1BiAuiZdBbQ5rQ58SfLyEDW44YQqSMSkuBpQWOnryULwMWSyx6Yo1q6xTMPoJcB3X/ge9YG
-VM+h4k0460tQtcsm9MracEpqoeJ5quGnM/b9Sh/22WA=
------END CERTIFICATE-----
-
Swisscom Root CA 1
==================
-----BEGIN CERTIFICATE-----
@@ -1954,40 +1750,6 @@ PBS1xp81HlDQwY9qcEQCYsuuHWhBp6pX6FOqB9IG9tUUBguRA3UsbHK1YZWaDYu5Def131TN3ubY
WyH8EZE0vkHve52Xdf+XlcCWWC/qu0bXu+TZLg==
-----END CERTIFICATE-----
-AC Ra\xC3\xADz Certic\xC3\xA1mara S.A.
-======================================
------BEGIN CERTIFICATE-----
-MIIGZjCCBE6gAwIBAgIPB35Sk3vgFeNX8GmMy+wMMA0GCSqGSIb3DQEBBQUAMHsxCzAJBgNVBAYT
-AkNPMUcwRQYDVQQKDD5Tb2NpZWRhZCBDYW1lcmFsIGRlIENlcnRpZmljYWNpw7NuIERpZ2l0YWwg
-LSBDZXJ0aWPDoW1hcmEgUy5BLjEjMCEGA1UEAwwaQUMgUmHDrXogQ2VydGljw6FtYXJhIFMuQS4w
-HhcNMDYxMTI3MjA0NjI5WhcNMzAwNDAyMjE0MjAyWjB7MQswCQYDVQQGEwJDTzFHMEUGA1UECgw+
-U29jaWVkYWQgQ2FtZXJhbCBkZSBDZXJ0aWZpY2FjacOzbiBEaWdpdGFsIC0gQ2VydGljw6FtYXJh
-IFMuQS4xIzAhBgNVBAMMGkFDIFJhw616IENlcnRpY8OhbWFyYSBTLkEuMIICIjANBgkqhkiG9w0B
-AQEFAAOCAg8AMIICCgKCAgEAq2uJo1PMSCMI+8PPUZYILrgIem08kBeGqentLhM0R7LQcNzJPNCN
-yu5LF6vQhbCnIwTLqKL85XXbQMpiiY9QngE9JlsYhBzLfDe3fezTf3MZsGqy2IiKLUV0qPezuMDU
-2s0iiXRNWhU5cxh0T7XrmafBHoi0wpOQY5fzp6cSsgkiBzPZkc0OnB8OIMfuuzONj8LSWKdf/WU3
-4ojC2I+GdV75LaeHM/J4Ny+LvB2GNzmxlPLYvEqcgxhaBvzz1NS6jBUJJfD5to0EfhcSM2tXSExP
-2yYe68yQ54v5aHxwD6Mq0Do43zeX4lvegGHTgNiRg0JaTASJaBE8rF9ogEHMYELODVoqDA+bMMCm
-8Ibbq0nXl21Ii/kDwFJnmxL3wvIumGVC2daa49AZMQyth9VXAnow6IYm+48jilSH5L887uvDdUhf
-HjlvgWJsxS3EF1QZtzeNnDeRyPYL1epjb4OsOMLzP96a++EjYfDIJss2yKHzMI+ko6Kh3VOz3vCa
-Mh+DkXkwwakfU5tTohVTP92dsxA7SH2JD/ztA/X7JWR1DhcZDY8AFmd5ekD8LVkH2ZD6mq093ICK
-5lw1omdMEWux+IBkAC1vImHFrEsm5VoQgpukg3s0956JkSCXjrdCx2bD0Omk1vUgjcTDlaxECp1b
-czwmPS9KvqfJpxAe+59QafMCAwEAAaOB5jCB4zAPBgNVHRMBAf8EBTADAQH/MA4GA1UdDwEB/wQE
-AwIBBjAdBgNVHQ4EFgQU0QnQ6dfOeXRU+Tows/RtLAMDG2gwgaAGA1UdIASBmDCBlTCBkgYEVR0g
-ADCBiTArBggrBgEFBQcCARYfaHR0cDovL3d3dy5jZXJ0aWNhbWFyYS5jb20vZHBjLzBaBggrBgEF
-BQcCAjBOGkxMaW1pdGFjaW9uZXMgZGUgZ2FyYW507WFzIGRlIGVzdGUgY2VydGlmaWNhZG8gc2Ug
-cHVlZGVuIGVuY29udHJhciBlbiBsYSBEUEMuMA0GCSqGSIb3DQEBBQUAA4ICAQBclLW4RZFNjmEf
-AygPU3zmpFmps4p6xbD/CHwso3EcIRNnoZUSQDWDg4902zNc8El2CoFS3UnUmjIz75uny3XlesuX
-EpBcunvFm9+7OSPI/5jOCk0iAUgHforA1SBClETvv3eiiWdIG0ADBaGJ7M9i4z0ldma/Jre7Ir5v
-/zlXdLp6yQGVwZVR6Kss+LGGIOk/yzVb0hfpKv6DExdA7ohiZVvVO2Dpezy4ydV/NgIlqmjCMRW3
-MGXrfx1IebHPOeJCgBbT9ZMj/EyXyVo3bHwi2ErN0o42gzmRkBDI8ck1fj+404HGIGQatlDCIaR4
-3NAvO2STdPCWkPHv+wlaNECW8DYSwaN0jJN+Qd53i+yG2dIPPy3RzECiiWZIHiCznCNZc6lEc7wk
-eZBWN7PGKX6jD/EpOe9+XCgycDWs2rjIdWb8m0w5R44bb5tNAlQiM+9hup4phO9OSzNHdpdqy35f
-/RWmnkJDW2ZaiogN9xa5P1FlK2Zqi9E4UqLWRhH6/JocdJ6PlwsCT2TG9WjTSy3/pDceiz+/RL5h
-RqGEPQgnTIEgd4kI6mdAXmwIUV80WoyWaM3X94nCHNMyAK9Sy9NgWyo6R35rMDOhYil/SrnhLecU
-Iw4OGEfhefwVVdCx/CVxY3UzHCMrr1zZ7Ud3YA47Dx7SwNxkBYn8eNZcLCZDqQ==
------END CERTIFICATE-----
-
TC TrustCenter Class 2 CA II
============================
-----BEGIN CERTIFICATE-----
@@ -2635,22 +2397,6 @@ MCwXEGCSn1WHElkQwg9naRHMTh5+Spqtr0CodaxWkHS4oJyleW/c6RrIaQXpuvoDs3zk4E7Czp3o
tkYNbn5XOmeUwssfnHdKZ05phkOTOPu220+DkdRgfks+KzgHVZhepA==
-----END CERTIFICATE-----
-Verisign Class 3 Public Primary Certification Authority
-=======================================================
------BEGIN CERTIFICATE-----
-MIICPDCCAaUCEDyRMcsf9tAbDpq40ES/Er4wDQYJKoZIhvcNAQEFBQAwXzELMAkGA1UEBhMCVVMx
-FzAVBgNVBAoTDlZlcmlTaWduLCBJbmMuMTcwNQYDVQQLEy5DbGFzcyAzIFB1YmxpYyBQcmltYXJ5
-IENlcnRpZmljYXRpb24gQXV0aG9yaXR5MB4XDTk2MDEyOTAwMDAwMFoXDTI4MDgwMjIzNTk1OVow
-XzELMAkGA1UEBhMCVVMxFzAVBgNVBAoTDlZlcmlTaWduLCBJbmMuMTcwNQYDVQQLEy5DbGFzcyAz
-IFB1YmxpYyBQcmltYXJ5IENlcnRpZmljYXRpb24gQXV0aG9yaXR5MIGfMA0GCSqGSIb3DQEBAQUA
-A4GNADCBiQKBgQDJXFme8huKARS0EN8EQNvjV69qRUCPhAwL0TPZ2RHP7gJYHyX3KqhEBarsAx94
-f56TuZoAqiN91qyFomNFx3InzPRMxnVx0jnvT0Lwdd8KkMaOIG+YD/isI19wKTakyYbnsZogy1Ol
-hec9vn2a/iRFM9x2Fe0PonFkTGUugWhFpwIDAQABMA0GCSqGSIb3DQEBBQUAA4GBABByUqkFFBky
-CEHwxWsKzH4PIRnN5GfcX6kb5sroc50i2JhucwNhkcV8sEVAbkSdjbCxlnRhLQ2pRdKkkirWmnWX
-bj9T/UWZYB2oK0z5XqcJ2HUw19JlYD1n1khVdWk/kfVIC0dpImmClr7JyDiGSnoscxlIaU5rfGW/
-D/xwzoiQ
------END CERTIFICATE-----
-
Microsec e-Szigno Root CA 2009
==============================
-----BEGIN CERTIFICATE-----
@@ -3783,3 +3529,458 @@ i4TWnsLrgxifarsbJGAzcMzs9zLzXNl5fe+epP7JI8Mk7hWSsT2RTyaGvWZzJBPqpK5jwa19hAM8
EHiGG3njxPPyBJUgriOCxLM6AGK/5jYk4Ve6xx6QddVfP5VhK8E7zeWzaGHQRiapIVJpLesux+t3
zqY6tQMzT3bR51xUAV3LePTJDL/PEo4XLSNolOer/qmyKwbQBM0=
-----END CERTIFICATE-----
+
+TeliaSonera Root CA v1
+======================
+-----BEGIN CERTIFICATE-----
+MIIFODCCAyCgAwIBAgIRAJW+FqD3LkbxezmCcvqLzZYwDQYJKoZIhvcNAQEFBQAwNzEUMBIGA1UE
+CgwLVGVsaWFTb25lcmExHzAdBgNVBAMMFlRlbGlhU29uZXJhIFJvb3QgQ0EgdjEwHhcNMDcxMDE4
+MTIwMDUwWhcNMzIxMDE4MTIwMDUwWjA3MRQwEgYDVQQKDAtUZWxpYVNvbmVyYTEfMB0GA1UEAwwW
+VGVsaWFTb25lcmEgUm9vdCBDQSB2MTCCAiIwDQYJKoZIhvcNAQEBBQADggIPADCCAgoCggIBAMK+
+6yfwIaPzaSZVfp3FVRaRXP3vIb9TgHot0pGMYzHw7CTww6XScnwQbfQ3t+XmfHnqjLWCi65ItqwA
+3GV17CpNX8GH9SBlK4GoRz6JI5UwFpB/6FcHSOcZrr9FZ7E3GwYq/t75rH2D+1665I+XZ75Ljo1k
+B1c4VWk0Nj0TSO9P4tNmHqTPGrdeNjPUtAa9GAH9d4RQAEX1jF3oI7x+/jXh7VB7qTCNGdMJjmhn
+Xb88lxhTuylixcpecsHHltTbLaC0H2kD7OriUPEMPPCs81Mt8Bz17Ww5OXOAFshSsCPN4D7c3TxH
+oLs1iuKYaIu+5b9y7tL6pe0S7fyYGKkmdtwoSxAgHNN/Fnct7W+A90m7UwW7XWjH1Mh1Fj+JWov3
+F0fUTPHSiXk+TT2YqGHeOh7S+F4D4MHJHIzTjU3TlTazN19jY5szFPAtJmtTfImMMsJu7D0hADnJ
+oWjiUIMusDor8zagrC/kb2HCUQk5PotTubtn2txTuXZZNp1D5SDgPTJghSJRt8czu90VL6R4pgd7
+gUY2BIbdeTXHlSw7sKMXNeVzH7RcWe/a6hBle3rQf5+ztCo3O3CLm1u5K7fsslESl1MpWtTwEhDc
+TwK7EpIvYtQ/aUN8Ddb8WHUBiJ1YFkveupD/RwGJBmr2X7KQarMCpgKIv7NHfirZ1fpoeDVNAgMB
+AAGjPzA9MA8GA1UdEwEB/wQFMAMBAf8wCwYDVR0PBAQDAgEGMB0GA1UdDgQWBBTwj1k4ALP1j5qW
+DNXr+nuqF+gTEjANBgkqhkiG9w0BAQUFAAOCAgEAvuRcYk4k9AwI//DTDGjkk0kiP0Qnb7tt3oNm
+zqjMDfz1mgbldxSR651Be5kqhOX//CHBXfDkH1e3damhXwIm/9fH907eT/j3HEbAek9ALCI18Bmx
+0GtnLLCo4MBANzX2hFxc469CeP6nyQ1Q6g2EdvZR74NTxnr/DlZJLo961gzmJ1TjTQpgcmLNkQfW
+pb/ImWvtxBnmq0wROMVvMeJuScg/doAmAyYp4Db29iBT4xdwNBedY2gea+zDTYa4EzAvXUYNR0PV
+G6pZDrlcjQZIrXSHX8f8MVRBE+LHIQ6e4B4N4cB7Q4WQxYpYxmUKeFfyxiMPAdkgS94P+5KFdSpc
+c41teyWRyu5FrgZLAMzTsVlQ2jqIOylDRl6XK1TOU2+NSueW+r9xDkKLfP0ooNBIytrEgUy7onOT
+JsjrDNYmiLbAJM+7vVvrdX3pCI6GMyx5dwlppYn8s3CQh3aP0yK7Qs69cwsgJirQmz1wHiRszYd2
+qReWt88NkvuOGKmYSdGe/mBEciG5Ge3C9THxOUiIkCR1VBatzvT4aRRkOfujuLpwQMcnHL/EVlP6
+Y2XQ8xwOFvVrhlhNGNTkDY6lnVuR3HYkUD/GKvvZt5y11ubQ2egZixVxSK236thZiNSQvxaz2ems
+WWFUyBy6ysHK4bkgTI86k4mloMy/0/Z1pHWWbVY=
+-----END CERTIFICATE-----
+
+E-Tugra Certification Authority
+===============================
+-----BEGIN CERTIFICATE-----
+MIIGSzCCBDOgAwIBAgIIamg+nFGby1MwDQYJKoZIhvcNAQELBQAwgbIxCzAJBgNVBAYTAlRSMQ8w
+DQYDVQQHDAZBbmthcmExQDA+BgNVBAoMN0UtVHXEn3JhIEVCRyBCaWxpxZ9pbSBUZWtub2xvamls
+ZXJpIHZlIEhpem1ldGxlcmkgQS7Fni4xJjAkBgNVBAsMHUUtVHVncmEgU2VydGlmaWthc3lvbiBN
+ZXJrZXppMSgwJgYDVQQDDB9FLVR1Z3JhIENlcnRpZmljYXRpb24gQXV0aG9yaXR5MB4XDTEzMDMw
+NTEyMDk0OFoXDTIzMDMwMzEyMDk0OFowgbIxCzAJBgNVBAYTAlRSMQ8wDQYDVQQHDAZBbmthcmEx
+QDA+BgNVBAoMN0UtVHXEn3JhIEVCRyBCaWxpxZ9pbSBUZWtub2xvamlsZXJpIHZlIEhpem1ldGxl
+cmkgQS7Fni4xJjAkBgNVBAsMHUUtVHVncmEgU2VydGlmaWthc3lvbiBNZXJrZXppMSgwJgYDVQQD
+DB9FLVR1Z3JhIENlcnRpZmljYXRpb24gQXV0aG9yaXR5MIICIjANBgkqhkiG9w0BAQEFAAOCAg8A
+MIICCgKCAgEA4vU/kwVRHoViVF56C/UYB4Oufq9899SKa6VjQzm5S/fDxmSJPZQuVIBSOTkHS0vd
+hQd2h8y/L5VMzH2nPbxHD5hw+IyFHnSOkm0bQNGZDbt1bsipa5rAhDGvykPL6ys06I+XawGb1Q5K
+CKpbknSFQ9OArqGIW66z6l7LFpp3RMih9lRozt6Plyu6W0ACDGQXwLWTzeHxE2bODHnv0ZEoq1+g
+ElIwcxmOj+GMB6LDu0rw6h8VqO4lzKRG+Bsi77MOQ7osJLjFLFzUHPhdZL3Dk14opz8n8Y4e0ypQ
+BaNV2cvnOVPAmJ6MVGKLJrD3fY185MaeZkJVgkfnsliNZvcHfC425lAcP9tDJMW/hkd5s3kc91r0
+E+xs+D/iWR+V7kI+ua2oMoVJl0b+SzGPWsutdEcf6ZG33ygEIqDUD13ieU/qbIWGvaimzuT6w+Gz
+rt48Ue7LE3wBf4QOXVGUnhMMti6lTPk5cDZvlsouDERVxcr6XQKj39ZkjFqzAQqptQpHF//vkUAq
+jqFGOjGY5RH8zLtJVor8udBhmm9lbObDyz51Sf6Pp+KJxWfXnUYTTjF2OySznhFlhqt/7x3U+Lzn
+rFpct1pHXFXOVbQicVtbC/DP3KBhZOqp12gKY6fgDT+gr9Oq0n7vUaDmUStVkhUXU8u3Zg5mTPj5
+dUyQ5xJwx0UCAwEAAaNjMGEwHQYDVR0OBBYEFC7j27JJ0JxUeVz6Jyr+zE7S6E5UMA8GA1UdEwEB
+/wQFMAMBAf8wHwYDVR0jBBgwFoAULuPbsknQnFR5XPonKv7MTtLoTlQwDgYDVR0PAQH/BAQDAgEG
+MA0GCSqGSIb3DQEBCwUAA4ICAQAFNzr0TbdF4kV1JI+2d1LoHNgQk2Xz8lkGpD4eKexd0dCrfOAK
+kEh47U6YA5n+KGCRHTAduGN8qOY1tfrTYXbm1gdLymmasoR6d5NFFxWfJNCYExL/u6Au/U5Mh/jO
+XKqYGwXgAEZKgoClM4so3O0409/lPun++1ndYYRP0lSWE2ETPo+Aab6TR7U1Q9Jauz1c77NCR807
+VRMGsAnb/WP2OogKmW9+4c4bU2pEZiNRCHu8W1Ki/QY3OEBhj0qWuJA3+GbHeJAAFS6LrVE1Uweo
+a2iu+U48BybNCAVwzDk/dr2l02cmAYamU9JgO3xDf1WKvJUawSg5TB9D0pH0clmKuVb8P7Sd2nCc
+dlqMQ1DujjByTd//SffGqWfZbawCEeI6FiWnWAjLb1NBnEg4R2gz0dfHj9R0IdTDBZB6/86WiLEV
+KV0jq9BgoRJP3vQXzTLlyb/IQ639Lo7xr+L0mPoSHyDYwKcMhcWQ9DstliaxLL5Mq+ux0orJ23gT
+Dx4JnW2PAJ8C2sH6H3p6CcRK5ogql5+Ji/03X186zjhZhkuvcQu02PJwT58yE+Owp1fl2tpDy4Q0
+8ijE6m30Ku/Ba3ba+367hTzSU8JNvnHhRdH9I2cNE3X7z2VnIp2usAnRCf8dNL/+I5c30jn6PQ0G
+C7TbO6Orb1wdtn7os4I07QZcJA==
+-----END CERTIFICATE-----
+
+T-TeleSec GlobalRoot Class 2
+============================
+-----BEGIN CERTIFICATE-----
+MIIDwzCCAqugAwIBAgIBATANBgkqhkiG9w0BAQsFADCBgjELMAkGA1UEBhMCREUxKzApBgNVBAoM
+IlQtU3lzdGVtcyBFbnRlcnByaXNlIFNlcnZpY2VzIEdtYkgxHzAdBgNVBAsMFlQtU3lzdGVtcyBU
+cnVzdCBDZW50ZXIxJTAjBgNVBAMMHFQtVGVsZVNlYyBHbG9iYWxSb290IENsYXNzIDIwHhcNMDgx
+MDAxMTA0MDE0WhcNMzMxMDAxMjM1OTU5WjCBgjELMAkGA1UEBhMCREUxKzApBgNVBAoMIlQtU3lz
+dGVtcyBFbnRlcnByaXNlIFNlcnZpY2VzIEdtYkgxHzAdBgNVBAsMFlQtU3lzdGVtcyBUcnVzdCBD
+ZW50ZXIxJTAjBgNVBAMMHFQtVGVsZVNlYyBHbG9iYWxSb290IENsYXNzIDIwggEiMA0GCSqGSIb3
+DQEBAQUAA4IBDwAwggEKAoIBAQCqX9obX+hzkeXaXPSi5kfl82hVYAUdAqSzm1nzHoqvNK38DcLZ
+SBnuaY/JIPwhqgcZ7bBcrGXHX+0CfHt8LRvWurmAwhiCFoT6ZrAIxlQjgeTNuUk/9k9uN0goOA/F
+vudocP05l03Sx5iRUKrERLMjfTlH6VJi1hKTXrcxlkIF+3anHqP1wvzpesVsqXFP6st4vGCvx970
+2cu+fjOlbpSD8DT6IavqjnKgP6TeMFvvhk1qlVtDRKgQFRzlAVfFmPHmBiiRqiDFt1MmUUOyCxGV
+WOHAD3bZwI18gfNycJ5v/hqO2V81xrJvNHy+SE/iWjnX2J14np+GPgNeGYtEotXHAgMBAAGjQjBA
+MA8GA1UdEwEB/wQFMAMBAf8wDgYDVR0PAQH/BAQDAgEGMB0GA1UdDgQWBBS/WSA2AHmgoCJrjNXy
+YdK4LMuCSjANBgkqhkiG9w0BAQsFAAOCAQEAMQOiYQsfdOhyNsZt+U2e+iKo4YFWz827n+qrkRk4
+r6p8FU3ztqONpfSO9kSpp+ghla0+AGIWiPACuvxhI+YzmzB6azZie60EI4RYZeLbK4rnJVM3YlNf
+vNoBYimipidx5joifsFvHZVwIEoHNN/q/xWA5brXethbdXwFeilHfkCoMRN3zUA7tFFHei4R40cR
+3p1m0IvVVGb6g1XqfMIpiRvpb7PO4gWEyS8+eIVibslfwXhjdFjASBgMmTnrpMwatXlajRWc2BQN
+9noHV8cigwUtPJslJj0Ys6lDfMjIq2SPDqO/nBudMNva0Bkuqjzx+zOAduTNrRlPBSeOE6Fuwg==
+-----END CERTIFICATE-----
+
+Atos TrustedRoot 2011
+=====================
+-----BEGIN CERTIFICATE-----
+MIIDdzCCAl+gAwIBAgIIXDPLYixfszIwDQYJKoZIhvcNAQELBQAwPDEeMBwGA1UEAwwVQXRvcyBU
+cnVzdGVkUm9vdCAyMDExMQ0wCwYDVQQKDARBdG9zMQswCQYDVQQGEwJERTAeFw0xMTA3MDcxNDU4
+MzBaFw0zMDEyMzEyMzU5NTlaMDwxHjAcBgNVBAMMFUF0b3MgVHJ1c3RlZFJvb3QgMjAxMTENMAsG
+A1UECgwEQXRvczELMAkGA1UEBhMCREUwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQCV
+hTuXbyo7LjvPpvMpNb7PGKw+qtn4TaA+Gke5vJrf8v7MPkfoepbCJI419KkM/IL9bcFyYie96mvr
+54rMVD6QUM+A1JX76LWC1BTFtqlVJVfbsVD2sGBkWXppzwO3bw2+yj5vdHLqqjAqc2K+SZFhyBH+
+DgMq92og3AIVDV4VavzjgsG1xZ1kCWyjWZgHJ8cblithdHFsQ/H3NYkQ4J7sVaE3IqKHBAUsR320
+HLliKWYoyrfhk/WklAOZuXCFteZI6o1Q/NnezG8HDt0Lcp2AMBYHlT8oDv3FdU9T1nSatCQujgKR
+z3bFmx5VdJx4IbHwLfELn8LVlhgf8FQieowHAgMBAAGjfTB7MB0GA1UdDgQWBBSnpQaxLKYJYO7R
+l+lwrrw7GWzbITAPBgNVHRMBAf8EBTADAQH/MB8GA1UdIwQYMBaAFKelBrEspglg7tGX6XCuvDsZ
+bNshMBgGA1UdIAQRMA8wDQYLKwYBBAGwLQMEAQEwDgYDVR0PAQH/BAQDAgGGMA0GCSqGSIb3DQEB
+CwUAA4IBAQAmdzTblEiGKkGdLD4GkGDEjKwLVLgfuXvTBznk+j57sj1O7Z8jvZfza1zv7v1Apt+h
+k6EKhqzvINB5Ab149xnYJDE0BAGmuhWawyfc2E8PzBhj/5kPDpFrdRbhIfzYJsdHt6bPWHJxfrrh
+TZVHO8mvbaG0weyJ9rQPOLXiZNwlz6bb65pcmaHFCN795trV1lpFDMS3wrUU77QR/w4VtfX128a9
+61qn8FYiqTxlVMYVqL2Gns2Dlmh6cYGJ4Qvh6hEbaAjMaZ7snkGeRDImeuKHCnE96+RapNLbxc3G
+3mB/ufNPRJLvKrcYPqcZ2Qt9sTdBQrC6YB3y/gkRsPCHe6ed
+-----END CERTIFICATE-----
+
+QuoVadis Root CA 1 G3
+=====================
+-----BEGIN CERTIFICATE-----
+MIIFYDCCA0igAwIBAgIUeFhfLq0sGUvjNwc1NBMotZbUZZMwDQYJKoZIhvcNAQELBQAwSDELMAkG
+A1UEBhMCQk0xGTAXBgNVBAoTEFF1b1ZhZGlzIExpbWl0ZWQxHjAcBgNVBAMTFVF1b1ZhZGlzIFJv
+b3QgQ0EgMSBHMzAeFw0xMjAxMTIxNzI3NDRaFw00MjAxMTIxNzI3NDRaMEgxCzAJBgNVBAYTAkJN
+MRkwFwYDVQQKExBRdW9WYWRpcyBMaW1pdGVkMR4wHAYDVQQDExVRdW9WYWRpcyBSb290IENBIDEg
+RzMwggIiMA0GCSqGSIb3DQEBAQUAA4ICDwAwggIKAoICAQCgvlAQjunybEC0BJyFuTHK3C3kEakE
+PBtVwedYMB0ktMPvhd6MLOHBPd+C5k+tR4ds7FtJwUrVu4/sh6x/gpqG7D0DmVIB0jWerNrwU8lm
+PNSsAgHaJNM7qAJGr6Qc4/hzWHa39g6QDbXwz8z6+cZM5cOGMAqNF34168Xfuw6cwI2H44g4hWf6
+Pser4BOcBRiYz5P1sZK0/CPTz9XEJ0ngnjybCKOLXSoh4Pw5qlPafX7PGglTvF0FBM+hSo+LdoIN
+ofjSxxR3W5A2B4GbPgb6Ul5jxaYA/qXpUhtStZI5cgMJYr2wYBZupt0lwgNm3fME0UDiTouG9G/l
+g6AnhF4EwfWQvTA9xO+oabw4m6SkltFi2mnAAZauy8RRNOoMqv8hjlmPSlzkYZqn0ukqeI1RPToV
+7qJZjqlc3sX5kCLliEVx3ZGZbHqfPT2YfF72vhZooF6uCyP8Wg+qInYtyaEQHeTTRCOQiJ/GKubX
+9ZqzWB4vMIkIG1SitZgj7Ah3HJVdYdHLiZxfokqRmu8hqkkWCKi9YSgxyXSthfbZxbGL0eUQMk1f
+iyA6PEkfM4VZDdvLCXVDaXP7a3F98N/ETH3Goy7IlXnLc6KOTk0k+17kBL5yG6YnLUlamXrXXAkg
+t3+UuU/xDRxeiEIbEbfnkduebPRq34wGmAOtzCjvpUfzUwIDAQABo0IwQDAPBgNVHRMBAf8EBTAD
+AQH/MA4GA1UdDwEB/wQEAwIBBjAdBgNVHQ4EFgQUo5fW816iEOGrRZ88F2Q87gFwnMwwDQYJKoZI
+hvcNAQELBQADggIBABj6W3X8PnrHX3fHyt/PX8MSxEBd1DKquGrX1RUVRpgjpeaQWxiZTOOtQqOC
+MTaIzen7xASWSIsBx40Bz1szBpZGZnQdT+3Btrm0DWHMY37XLneMlhwqI2hrhVd2cDMT/uFPpiN3
+GPoajOi9ZcnPP/TJF9zrx7zABC4tRi9pZsMbj/7sPtPKlL92CiUNqXsCHKnQO18LwIE6PWThv6ct
+Tr1NxNgpxiIY0MWscgKCP6o6ojoilzHdCGPDdRS5YCgtW2jgFqlmgiNR9etT2DGbe+m3nUvriBbP
++V04ikkwj+3x6xn0dxoxGE1nVGwvb2X52z3sIexe9PSLymBlVNFxZPT5pqOBMzYzcfCkeF9OrYMh
+3jRJjehZrJ3ydlo28hP0r+AJx2EqbPfgna67hkooby7utHnNkDPDs3b69fBsnQGQ+p6Q9pxyz0fa
+wx/kNSBT8lTR32GDpgLiJTjehTItXnOQUl1CxM49S+H5GYQd1aJQzEH7QRTDvdbJWqNjZgKAvQU6
+O0ec7AAmTPWIUb+oI38YB7AL7YsmoWTTYUrrXJ/es69nA7Mf3W1daWhpq1467HxpvMc7hU6eFbm0
+FU/DlXpY18ls6Wy58yljXrQs8C097Vpl4KlbQMJImYFtnh8GKjwStIsPm6Ik8KaN1nrgS7ZklmOV
+hMJKzRwuJIczYOXD
+-----END CERTIFICATE-----
+
+QuoVadis Root CA 2 G3
+=====================
+-----BEGIN CERTIFICATE-----
+MIIFYDCCA0igAwIBAgIURFc0JFuBiZs18s64KztbpybwdSgwDQYJKoZIhvcNAQELBQAwSDELMAkG
+A1UEBhMCQk0xGTAXBgNVBAoTEFF1b1ZhZGlzIExpbWl0ZWQxHjAcBgNVBAMTFVF1b1ZhZGlzIFJv
+b3QgQ0EgMiBHMzAeFw0xMjAxMTIxODU5MzJaFw00MjAxMTIxODU5MzJaMEgxCzAJBgNVBAYTAkJN
+MRkwFwYDVQQKExBRdW9WYWRpcyBMaW1pdGVkMR4wHAYDVQQDExVRdW9WYWRpcyBSb290IENBIDIg
+RzMwggIiMA0GCSqGSIb3DQEBAQUAA4ICDwAwggIKAoICAQChriWyARjcV4g/Ruv5r+LrI3HimtFh
+ZiFfqq8nUeVuGxbULX1QsFN3vXg6YOJkApt8hpvWGo6t/x8Vf9WVHhLL5hSEBMHfNrMWn4rjyduY
+NM7YMxcoRvynyfDStNVNCXJJ+fKH46nafaF9a7I6JaltUkSs+L5u+9ymc5GQYaYDFCDy54ejiK2t
+oIz/pgslUiXnFgHVy7g1gQyjO/Dh4fxaXc6AcW34Sas+O7q414AB+6XrW7PFXmAqMaCvN+ggOp+o
+MiwMzAkd056OXbxMmO7FGmh77FOm6RQ1o9/NgJ8MSPsc9PG/Srj61YxxSscfrf5BmrODXfKEVu+l
+V0POKa2Mq1W/xPtbAd0jIaFYAI7D0GoT7RPjEiuA3GfmlbLNHiJuKvhB1PLKFAeNilUSxmn1uIZo
+L1NesNKqIcGY5jDjZ1XHm26sGahVpkUG0CM62+tlXSoREfA7T8pt9DTEceT/AFr2XK4jYIVz8eQQ
+sSWu1ZK7E8EM4DnatDlXtas1qnIhO4M15zHfeiFuuDIIfR0ykRVKYnLP43ehvNURG3YBZwjgQQvD
+6xVu+KQZ2aKrr+InUlYrAoosFCT5v0ICvybIxo/gbjh9Uy3l7ZizlWNof/k19N+IxWA1ksB8aRxh
+lRbQ694Lrz4EEEVlWFA4r0jyWbYW8jwNkALGcC4BrTwV1wIDAQABo0IwQDAPBgNVHRMBAf8EBTAD
+AQH/MA4GA1UdDwEB/wQEAwIBBjAdBgNVHQ4EFgQU7edvdlq/YOxJW8ald7tyFnGbxD0wDQYJKoZI
+hvcNAQELBQADggIBAJHfgD9DCX5xwvfrs4iP4VGyvD11+ShdyLyZm3tdquXK4Qr36LLTn91nMX66
+AarHakE7kNQIXLJgapDwyM4DYvmL7ftuKtwGTTwpD4kWilhMSA/ohGHqPHKmd+RCroijQ1h5fq7K
+pVMNqT1wvSAZYaRsOPxDMuHBR//47PERIjKWnML2W2mWeyAMQ0GaW/ZZGYjeVYg3UQt4XAoeo0L9
+x52ID8DyeAIkVJOviYeIyUqAHerQbj5hLja7NQ4nlv1mNDthcnPxFlxHBlRJAHpYErAK74X9sbgz
+dWqTHBLmYF5vHX/JHyPLhGGfHoJE+V+tYlUkmlKY7VHnoX6XOuYvHxHaU4AshZ6rNRDbIl9qxV6X
+U/IyAgkwo1jwDQHVcsaxfGl7w/U2Rcxhbl5MlMVerugOXou/983g7aEOGzPuVBj+D77vfoRrQ+Nw
+mNtddbINWQeFFSM51vHfqSYP1kjHs6Yi9TM3WpVHn3u6GBVv/9YUZINJ0gpnIdsPNWNgKCLjsZWD
+zYWm3S8P52dSbrsvhXz1SnPnxT7AvSESBT/8twNJAlvIJebiVDj1eYeMHVOyToV7BjjHLPj4sHKN
+JeV3UvQDHEimUF+IIDBu8oJDqz2XhOdT+yHBTw8imoa4WSr2Rz0ZiC3oheGe7IUIarFsNMkd7Egr
+O3jtZsSOeWmD3n+M
+-----END CERTIFICATE-----
+
+QuoVadis Root CA 3 G3
+=====================
+-----BEGIN CERTIFICATE-----
+MIIFYDCCA0igAwIBAgIULvWbAiin23r/1aOp7r0DoM8Sah0wDQYJKoZIhvcNAQELBQAwSDELMAkG
+A1UEBhMCQk0xGTAXBgNVBAoTEFF1b1ZhZGlzIExpbWl0ZWQxHjAcBgNVBAMTFVF1b1ZhZGlzIFJv
+b3QgQ0EgMyBHMzAeFw0xMjAxMTIyMDI2MzJaFw00MjAxMTIyMDI2MzJaMEgxCzAJBgNVBAYTAkJN
+MRkwFwYDVQQKExBRdW9WYWRpcyBMaW1pdGVkMR4wHAYDVQQDExVRdW9WYWRpcyBSb290IENBIDMg
+RzMwggIiMA0GCSqGSIb3DQEBAQUAA4ICDwAwggIKAoICAQCzyw4QZ47qFJenMioKVjZ/aEzHs286
+IxSR/xl/pcqs7rN2nXrpixurazHb+gtTTK/FpRp5PIpM/6zfJd5O2YIyC0TeytuMrKNuFoM7pmRL
+Mon7FhY4futD4tN0SsJiCnMK3UmzV9KwCoWdcTzeo8vAMvMBOSBDGzXRU7Ox7sWTaYI+FrUoRqHe
+6okJ7UO4BUaKhvVZR74bbwEhELn9qdIoyhA5CcoTNs+cra1AdHkrAj80//ogaX3T7mH1urPnMNA3
+I4ZyYUUpSFlob3emLoG+B01vr87ERRORFHAGjx+f+IdpsQ7vw4kZ6+ocYfx6bIrc1gMLnia6Et3U
+VDmrJqMz6nWB2i3ND0/kA9HvFZcba5DFApCTZgIhsUfei5pKgLlVj7WiL8DWM2fafsSntARE60f7
+5li59wzweyuxwHApw0BiLTtIadwjPEjrewl5qW3aqDCYz4ByA4imW0aucnl8CAMhZa634RylsSqi
+Md5mBPfAdOhx3v89WcyWJhKLhZVXGqtrdQtEPREoPHtht+KPZ0/l7DxMYIBpVzgeAVuNVejH38DM
+dyM0SXV89pgR6y3e7UEuFAUCf+D+IOs15xGsIs5XPd7JMG0QA4XN8f+MFrXBsj6IbGB/kE+V9/Yt
+rQE5BwT6dYB9v0lQ7e/JxHwc64B+27bQ3RP+ydOc17KXqQIDAQABo0IwQDAPBgNVHRMBAf8EBTAD
+AQH/MA4GA1UdDwEB/wQEAwIBBjAdBgNVHQ4EFgQUxhfQvKjqAkPyGwaZXSuQILnXnOQwDQYJKoZI
+hvcNAQELBQADggIBADRh2Va1EodVTd2jNTFGu6QHcrxfYWLopfsLN7E8trP6KZ1/AvWkyaiTt3px
+KGmPc+FSkNrVvjrlt3ZqVoAh313m6Tqe5T72omnHKgqwGEfcIHB9UqM+WXzBusnIFUBhynLWcKzS
+t/Ac5IYp8M7vaGPQtSCKFWGafoaYtMnCdvvMujAWzKNhxnQT5WvvoxXqA/4Ti2Tk08HS6IT7SdEQ
+TXlm66r99I0xHnAUrdzeZxNMgRVhvLfZkXdxGYFgu/BYpbWcC/ePIlUnwEsBbTuZDdQdm2NnL9Du
+DcpmvJRPpq3t/O5jrFc/ZSXPsoaP0Aj/uHYUbt7lJ+yreLVTubY/6CD50qi+YUbKh4yE8/nxoGib
+Ih6BJpsQBJFxwAYf3KDTuVan45gtf4Od34wrnDKOMpTwATwiKp9Dwi7DmDkHOHv8XgBCH/MyJnmD
+hPbl8MFREsALHgQjDFSlTC9JxUrRtm5gDWv8a4uFJGS3iQ6rJUdbPM9+Sb3H6QrG2vd+DhcI00iX
+0HGS8A85PjRqHH3Y8iKuu2n0M7SmSFXRDw4m6Oy2Cy2nhTXN/VnIn9HNPlopNLk9hM6xZdRZkZFW
+dSHBd575euFgndOtBBj0fOtek49TSiIp+EgrPk2GrFt/ywaZWWDYWGWVjUTR939+J399roD1B0y2
+PpxxVJkES/1Y+Zj0
+-----END CERTIFICATE-----
+
+DigiCert Assured ID Root G2
+===========================
+-----BEGIN CERTIFICATE-----
+MIIDljCCAn6gAwIBAgIQC5McOtY5Z+pnI7/Dr5r0SzANBgkqhkiG9w0BAQsFADBlMQswCQYDVQQG
+EwJVUzEVMBMGA1UEChMMRGlnaUNlcnQgSW5jMRkwFwYDVQQLExB3d3cuZGlnaWNlcnQuY29tMSQw
+IgYDVQQDExtEaWdpQ2VydCBBc3N1cmVkIElEIFJvb3QgRzIwHhcNMTMwODAxMTIwMDAwWhcNMzgw
+MTE1MTIwMDAwWjBlMQswCQYDVQQGEwJVUzEVMBMGA1UEChMMRGlnaUNlcnQgSW5jMRkwFwYDVQQL
+ExB3d3cuZGlnaWNlcnQuY29tMSQwIgYDVQQDExtEaWdpQ2VydCBBc3N1cmVkIElEIFJvb3QgRzIw
+ggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQDZ5ygvUj82ckmIkzTz+GoeMVSAn61UQbVH
+35ao1K+ALbkKz3X9iaV9JPrjIgwrvJUXCzO/GU1BBpAAvQxNEP4HteccbiJVMWWXvdMX0h5i89vq
+bFCMP4QMls+3ywPgym2hFEwbid3tALBSfK+RbLE4E9HpEgjAALAcKxHad3A2m67OeYfcgnDmCXRw
+VWmvo2ifv922ebPynXApVfSr/5Vh88lAbx3RvpO704gqu52/clpWcTs/1PPRCv4o76Pu2ZmvA9OP
+YLfykqGxvYmJHzDNw6YuYjOuFgJ3RFrngQo8p0Quebg/BLxcoIfhG69Rjs3sLPr4/m3wOnyqi+Rn
+lTGNAgMBAAGjQjBAMA8GA1UdEwEB/wQFMAMBAf8wDgYDVR0PAQH/BAQDAgGGMB0GA1UdDgQWBBTO
+w0q5mVXyuNtgv6l+vVa1lzan1jANBgkqhkiG9w0BAQsFAAOCAQEAyqVVjOPIQW5pJ6d1Ee88hjZv
+0p3GeDgdaZaikmkuOGybfQTUiaWxMTeKySHMq2zNixya1r9I0jJmwYrA8y8678Dj1JGG0VDjA9tz
+d29KOVPt3ibHtX2vK0LRdWLjSisCx1BL4GnilmwORGYQRI+tBev4eaymG+g3NJ1TyWGqolKvSnAW
+hsI6yLETcDbYz+70CjTVW0z9B5yiutkBclzzTcHdDrEcDcRjvq30FPuJ7KJBDkzMyFdA0G4Dqs0M
+jomZmWzwPDCvON9vvKO+KSAnq3T/EyJ43pdSVR6DtVQgA+6uwE9W3jfMw3+qBCe703e4YtsXfJwo
+IhNzbM8m9Yop5w==
+-----END CERTIFICATE-----
+
+DigiCert Assured ID Root G3
+===========================
+-----BEGIN CERTIFICATE-----
+MIICRjCCAc2gAwIBAgIQC6Fa+h3foLVJRK/NJKBs7DAKBggqhkjOPQQDAzBlMQswCQYDVQQGEwJV
+UzEVMBMGA1UEChMMRGlnaUNlcnQgSW5jMRkwFwYDVQQLExB3d3cuZGlnaWNlcnQuY29tMSQwIgYD
+VQQDExtEaWdpQ2VydCBBc3N1cmVkIElEIFJvb3QgRzMwHhcNMTMwODAxMTIwMDAwWhcNMzgwMTE1
+MTIwMDAwWjBlMQswCQYDVQQGEwJVUzEVMBMGA1UEChMMRGlnaUNlcnQgSW5jMRkwFwYDVQQLExB3
+d3cuZGlnaWNlcnQuY29tMSQwIgYDVQQDExtEaWdpQ2VydCBBc3N1cmVkIElEIFJvb3QgRzMwdjAQ
+BgcqhkjOPQIBBgUrgQQAIgNiAAQZ57ysRGXtzbg/WPuNsVepRC0FFfLvC/8QdJ+1YlJfZn4f5dwb
+RXkLzMZTCp2NXQLZqVneAlr2lSoOjThKiknGvMYDOAdfVdp+CW7if17QRSAPWXYQ1qAk8C3eNvJs
+KTmjQjBAMA8GA1UdEwEB/wQFMAMBAf8wDgYDVR0PAQH/BAQDAgGGMB0GA1UdDgQWBBTL0L2p4ZgF
+UaFNN6KDec6NHSrkhDAKBggqhkjOPQQDAwNnADBkAjAlpIFFAmsSS3V0T8gj43DydXLefInwz5Fy
+YZ5eEJJZVrmDxxDnOOlYJjZ91eQ0hjkCMHw2U/Aw5WJjOpnitqM7mzT6HtoQknFekROn3aRukswy
+1vUhZscv6pZjamVFkpUBtA==
+-----END CERTIFICATE-----
+
+DigiCert Global Root G2
+=======================
+-----BEGIN CERTIFICATE-----
+MIIDjjCCAnagAwIBAgIQAzrx5qcRqaC7KGSxHQn65TANBgkqhkiG9w0BAQsFADBhMQswCQYDVQQG
+EwJVUzEVMBMGA1UEChMMRGlnaUNlcnQgSW5jMRkwFwYDVQQLExB3d3cuZGlnaWNlcnQuY29tMSAw
+HgYDVQQDExdEaWdpQ2VydCBHbG9iYWwgUm9vdCBHMjAeFw0xMzA4MDExMjAwMDBaFw0zODAxMTUx
+MjAwMDBaMGExCzAJBgNVBAYTAlVTMRUwEwYDVQQKEwxEaWdpQ2VydCBJbmMxGTAXBgNVBAsTEHd3
+dy5kaWdpY2VydC5jb20xIDAeBgNVBAMTF0RpZ2lDZXJ0IEdsb2JhbCBSb290IEcyMIIBIjANBgkq
+hkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAuzfNNNx7a8myaJCtSnX/RrohCgiN9RlUyfuI2/Ou8jqJ
+kTx65qsGGmvPrC3oXgkkRLpimn7Wo6h+4FR1IAWsULecYxpsMNzaHxmx1x7e/dfgy5SDN67sH0NO
+3Xss0r0upS/kqbitOtSZpLYl6ZtrAGCSYP9PIUkY92eQq2EGnI/yuum06ZIya7XzV+hdG82MHauV
+BJVJ8zUtluNJbd134/tJS7SsVQepj5WztCO7TG1F8PapspUwtP1MVYwnSlcUfIKdzXOS0xZKBgyM
+UNGPHgm+F6HmIcr9g+UQvIOlCsRnKPZzFBQ9RnbDhxSJITRNrw9FDKZJobq7nMWxM4MphQIDAQAB
+o0IwQDAPBgNVHRMBAf8EBTADAQH/MA4GA1UdDwEB/wQEAwIBhjAdBgNVHQ4EFgQUTiJUIBiV5uNu
+5g/6+rkS7QYXjzkwDQYJKoZIhvcNAQELBQADggEBAGBnKJRvDkhj6zHd6mcY1Yl9PMWLSn/pvtsr
+F9+wX3N3KjITOYFnQoQj8kVnNeyIv/iPsGEMNKSuIEyExtv4NeF22d+mQrvHRAiGfzZ0JFrabA0U
+WTW98kndth/Jsw1HKj2ZL7tcu7XUIOGZX1NGFdtom/DzMNU+MeKNhJ7jitralj41E6Vf8PlwUHBH
+QRFXGU7Aj64GxJUTFy8bJZ918rGOmaFvE7FBcf6IKshPECBV1/MUReXgRPTqh5Uykw7+U0b6LJ3/
+iyK5S9kJRaTepLiaWN0bfVKfjllDiIGknibVb63dDcY3fe0Dkhvld1927jyNxF1WW6LZZm6zNTfl
+MrY=
+-----END CERTIFICATE-----
+
+DigiCert Global Root G3
+=======================
+-----BEGIN CERTIFICATE-----
+MIICPzCCAcWgAwIBAgIQBVVWvPJepDU1w6QP1atFcjAKBggqhkjOPQQDAzBhMQswCQYDVQQGEwJV
+UzEVMBMGA1UEChMMRGlnaUNlcnQgSW5jMRkwFwYDVQQLExB3d3cuZGlnaWNlcnQuY29tMSAwHgYD
+VQQDExdEaWdpQ2VydCBHbG9iYWwgUm9vdCBHMzAeFw0xMzA4MDExMjAwMDBaFw0zODAxMTUxMjAw
+MDBaMGExCzAJBgNVBAYTAlVTMRUwEwYDVQQKEwxEaWdpQ2VydCBJbmMxGTAXBgNVBAsTEHd3dy5k
+aWdpY2VydC5jb20xIDAeBgNVBAMTF0RpZ2lDZXJ0IEdsb2JhbCBSb290IEczMHYwEAYHKoZIzj0C
+AQYFK4EEACIDYgAE3afZu4q4C/sLfyHS8L6+c/MzXRq8NOrexpu80JX28MzQC7phW1FGfp4tn+6O
+YwwX7Adw9c+ELkCDnOg/QW07rdOkFFk2eJ0DQ+4QE2xy3q6Ip6FrtUPOZ9wj/wMco+I+o0IwQDAP
+BgNVHRMBAf8EBTADAQH/MA4GA1UdDwEB/wQEAwIBhjAdBgNVHQ4EFgQUs9tIpPmhxdiuNkHMEWNp
+Yim8S8YwCgYIKoZIzj0EAwMDaAAwZQIxAK288mw/EkrRLTnDCgmXc/SINoyIJ7vmiI1Qhadj+Z4y
+3maTD/HMsQmP3Wyr+mt/oAIwOWZbwmSNuJ5Q3KjVSaLtx9zRSX8XAbjIho9OjIgrqJqpisXRAL34
+VOKa5Vt8sycX
+-----END CERTIFICATE-----
+
+DigiCert Trusted Root G4
+========================
+-----BEGIN CERTIFICATE-----
+MIIFkDCCA3igAwIBAgIQBZsbV56OITLiOQe9p3d1XDANBgkqhkiG9w0BAQwFADBiMQswCQYDVQQG
+EwJVUzEVMBMGA1UEChMMRGlnaUNlcnQgSW5jMRkwFwYDVQQLExB3d3cuZGlnaWNlcnQuY29tMSEw
+HwYDVQQDExhEaWdpQ2VydCBUcnVzdGVkIFJvb3QgRzQwHhcNMTMwODAxMTIwMDAwWhcNMzgwMTE1
+MTIwMDAwWjBiMQswCQYDVQQGEwJVUzEVMBMGA1UEChMMRGlnaUNlcnQgSW5jMRkwFwYDVQQLExB3
+d3cuZGlnaWNlcnQuY29tMSEwHwYDVQQDExhEaWdpQ2VydCBUcnVzdGVkIFJvb3QgRzQwggIiMA0G
+CSqGSIb3DQEBAQUAA4ICDwAwggIKAoICAQC/5pBzaN675F1KPDAiMGkz7MKnJS7JIT3yithZwuEp
+pz1Yq3aaza57G4QNxDAf8xukOBbrVsaXbR2rsnnyyhHS5F/WBTxSD1Ifxp4VpX6+n6lXFllVcq9o
+k3DCsrp1mWpzMpTREEQQLt+C8weE5nQ7bXHiLQwb7iDVySAdYyktzuxeTsiT+CFhmzTrBcZe7Fsa
+vOvJz82sNEBfsXpm7nfISKhmV1efVFiODCu3T6cw2Vbuyntd463JT17lNecxy9qTXtyOj4DatpGY
+QJB5w3jHtrHEtWoYOAMQjdjUN6QuBX2I9YI+EJFwq1WCQTLX2wRzKm6RAXwhTNS8rhsDdV14Ztk6
+MUSaM0C/CNdaSaTC5qmgZ92kJ7yhTzm1EVgX9yRcRo9k98FpiHaYdj1ZXUJ2h4mXaXpI8OCiEhtm
+mnTK3kse5w5jrubU75KSOp493ADkRSWJtppEGSt+wJS00mFt6zPZxd9LBADMfRyVw4/3IbKyEbe7
+f/LVjHAsQWCqsWMYRJUadmJ+9oCw++hkpjPRiQfhvbfmQ6QYuKZ3AeEPlAwhHbJUKSWJbOUOUlFH
+dL4mrLZBdd56rF+NP8m800ERElvlEFDrMcXKchYiCd98THU/Y+whX8QgUWtvsauGi0/C1kVfnSD8
+oR7FwI+isX4KJpn15GkvmB0t9dmpsh3lGwIDAQABo0IwQDAPBgNVHRMBAf8EBTADAQH/MA4GA1Ud
+DwEB/wQEAwIBhjAdBgNVHQ4EFgQU7NfjgtJxXWRM3y5nP+e6mK4cD08wDQYJKoZIhvcNAQEMBQAD
+ggIBALth2X2pbL4XxJEbw6GiAI3jZGgPVs93rnD5/ZpKmbnJeFwMDF/k5hQpVgs2SV1EY+CtnJYY
+ZhsjDT156W1r1lT40jzBQ0CuHVD1UvyQO7uYmWlrx8GnqGikJ9yd+SeuMIW59mdNOj6PWTkiU0Tr
+yF0Dyu1Qen1iIQqAyHNm0aAFYF/opbSnr6j3bTWcfFqK1qI4mfN4i/RN0iAL3gTujJtHgXINwBQy
+7zBZLq7gcfJW5GqXb5JQbZaNaHqasjYUegbyJLkJEVDXCLG4iXqEI2FCKeWjzaIgQdfRnGTZ6iah
+ixTXTBmyUEFxPT9NcCOGDErcgdLMMpSEDQgJlxxPwO5rIHQw0uA5NBCFIRUBCOhVMt5xSdkoF1BN
+5r5N0XWs0Mr7QbhDparTwwVETyw2m+L64kW4I1NsBm9nVX9GtUw/bihaeSbSpKhil9Ie4u1Ki7wb
+/UdKDd9nZn6yW0HQO+T0O/QEY+nvwlQAUaCKKsnOeMzV6ocEGLPOr0mIr/OSmbaz5mEP0oUA51Aa
+5BuVnRmhuZyxm7EAHu/QD09CbMkKvO5D+jpxpchNJqU1/YldvIViHTLSoCtU7ZpXwdv6EM8Zt4tK
+G48BtieVU+i2iW1bvGjUI+iLUaJW+fCmgKDWHrO8Dw9TdSmq6hN35N6MgSGtBxBHEa2HPQfRdbzP
+82Z+
+-----END CERTIFICATE-----
+
+WoSign
+======
+-----BEGIN CERTIFICATE-----
+MIIFdjCCA16gAwIBAgIQXmjWEXGUY1BWAGjzPsnFkTANBgkqhkiG9w0BAQUFADBVMQswCQYDVQQG
+EwJDTjEaMBgGA1UEChMRV29TaWduIENBIExpbWl0ZWQxKjAoBgNVBAMTIUNlcnRpZmljYXRpb24g
+QXV0aG9yaXR5IG9mIFdvU2lnbjAeFw0wOTA4MDgwMTAwMDFaFw0zOTA4MDgwMTAwMDFaMFUxCzAJ
+BgNVBAYTAkNOMRowGAYDVQQKExFXb1NpZ24gQ0EgTGltaXRlZDEqMCgGA1UEAxMhQ2VydGlmaWNh
+dGlvbiBBdXRob3JpdHkgb2YgV29TaWduMIICIjANBgkqhkiG9w0BAQEFAAOCAg8AMIICCgKCAgEA
+vcqNrLiRFVaXe2tcesLea9mhsMMQI/qnobLMMfo+2aYpbxY94Gv4uEBf2zmoAHqLoE1UfcIiePyO
+CbiohdfMlZdLdNiefvAA5A6JrkkoRBoQmTIPJYhTpA2zDxIIFgsDcSccf+Hb0v1naMQFXQoOXXDX
+2JegvFNBmpGN9J42Znp+VsGQX+axaCA2pIwkLCxHC1l2ZjC1vt7tj/id07sBMOby8w7gLJKA84X5
+KIq0VC6a7fd2/BVoFutKbOsuEo/Uz/4Mx1wdC34FMr5esAkqQtXJTpCzWQ27en7N1QhatH/YHGkR
++ScPewavVIMYe+HdVHpRaG53/Ma/UkpmRqGyZxq7o093oL5d//xWC0Nyd5DKnvnyOfUNqfTq1+ez
+EC8wQjchzDBwyYaYD8xYTYO7feUapTeNtqwylwA6Y3EkHp43xP901DfA4v6IRmAR3Qg/UDaruHqk
+lWJqbrDKaiFaafPz+x1wOZXzp26mgYmhiMU7ccqjUu6Du/2gd/Tkb+dC221KmYo0SLwX3OSACCK2
+8jHAPwQ+658geda4BmRkAjHXqc1S+4RFaQkAKtxVi8QGRkvASh0JWzko/amrzgD5LkhLJuYwTKVY
+yrREgk/nkR4zw7CT/xH8gdLKH3Ep3XZPkiWvHYG3Dy+MwwbMLyejSuQOmbp8HkUff6oZRZb9/D0C
+AwEAAaNCMEAwDgYDVR0PAQH/BAQDAgEGMA8GA1UdEwEB/wQFMAMBAf8wHQYDVR0OBBYEFOFmzw7R
+8bNLtwYgFP6HEtX2/vs+MA0GCSqGSIb3DQEBBQUAA4ICAQCoy3JAsnbBfnv8rWTjMnvMPLZdRtP1
+LOJwXcgu2AZ9mNELIaCJWSQBnfmvCX0KI4I01fx8cpm5o9dU9OpScA7F9dY74ToJMuYhOZO9sxXq
+T2r09Ys/L3yNWC7F4TmgPsc9SnOeQHrAK2GpZ8nzJLmzbVUsWh2eJXLOC62qx1ViC777Y7NhRCOj
+y+EaDveaBk3e1CNOIZZbOVtXHS9dCF4Jef98l7VNg64N1uajeeAz0JmWAjCnPv/So0M/BVoG6kQC
+2nz4SNAzqfkHx5Xh9T71XXG68pWpdIhhWeO/yloTunK0jF02h+mmxTwTv97QRCbut+wucPrXnbes
+5cVAWubXbHssw1abR80LzvobtCHXt2a49CUwi1wNuepnsvRtrtWhnk/Yn+knArAdBtaP4/tIEp9/
+EaEQPkxROpaw0RPxx9gmrjrKkcRpnd8BKWRRb2jaFOwIQZeQjdCygPLPwj2/kWjFgGcexGATVdVh
+mVd8upUPYUk6ynW8yQqTP2cOEvIo4jEbwFcW3wh8GcF+Dx+FHgo2fFt+J7x6v+Db9NpSvd4MVHAx
+kUOVyLzwPt0JfjBkUO1/AaQzZ01oT74V77D2AhGiGxMlOtzCWfHjXEa7ZywCRuoeSKbmW9m1vFGi
+kpbbqsY3Iqb+zCB0oy2pLmvLwIIRIbWTee5Ehr7XHuQe+w==
+-----END CERTIFICATE-----
+
+WoSign China
+============
+-----BEGIN CERTIFICATE-----
+MIIFWDCCA0CgAwIBAgIQUHBrzdgT/BtOOzNy0hFIjTANBgkqhkiG9w0BAQsFADBGMQswCQYDVQQG
+EwJDTjEaMBgGA1UEChMRV29TaWduIENBIExpbWl0ZWQxGzAZBgNVBAMMEkNBIOayg+mAmuagueiv
+geS5pjAeFw0wOTA4MDgwMTAwMDFaFw0zOTA4MDgwMTAwMDFaMEYxCzAJBgNVBAYTAkNOMRowGAYD
+VQQKExFXb1NpZ24gQ0EgTGltaXRlZDEbMBkGA1UEAwwSQ0Eg5rKD6YCa5qC56K+B5LmmMIICIjAN
+BgkqhkiG9w0BAQEFAAOCAg8AMIICCgKCAgEA0EkhHiX8h8EqwqzbdoYGTufQdDTc7WU1/FDWiD+k
+8H/rD195L4mx/bxjWDeTmzj4t1up+thxx7S8gJeNbEvxUNUqKaqoGXqW5pWOdO2XCld19AXbbQs5
+uQF/qvbW2mzmBeCkTVL829B0txGMe41P/4eDrv8FAxNXUDf+jJZSEExfv5RxadmWPgxDT74wwJ85
+dE8GRV2j1lY5aAfMh09Qd5Nx2UQIsYo06Yms25tO4dnkUkWMLhQfkWsZHWgpLFbE4h4TV2TwYeO5
+Ed+w4VegG63XX9Gv2ystP9Bojg/qnw+LNVgbExz03jWhCl3W6t8Sb8D7aQdGctyB9gQjF+BNdeFy
+b7Ao65vh4YOhn0pdr8yb+gIgthhid5E7o9Vlrdx8kHccREGkSovrlXLp9glk3Kgtn3R46MGiCWOc
+76DbT52VqyBPt7D3h1ymoOQ3OMdc4zUPLK2jgKLsLl3Az+2LBcLmc272idX10kaO6m1jGx6KyX2m
++Jzr5dVjhU1zZmkR/sgO9MHHZklTfuQZa/HpelmjbX7FF+Ynxu8b22/8DU0GAbQOXDBGVWCvOGU6
+yke6rCzMRh+yRpY/8+0mBe53oWprfi1tWFxK1I5nuPHa1UaKJ/kR8slC/k7e3x9cxKSGhxYzoacX
+GKUN5AXlK8IrC6KVkLn9YDxOiT7nnO4fuwECAwEAAaNCMEAwDgYDVR0PAQH/BAQDAgEGMA8GA1Ud
+EwEB/wQFMAMBAf8wHQYDVR0OBBYEFOBNv9ybQV0T6GTwp+kVpOGBwboxMA0GCSqGSIb3DQEBCwUA
+A4ICAQBqinA4WbbaixjIvirTthnVZil6Xc1bL3McJk6jfW+rtylNpumlEYOnOXOvEESS5iVdT2H6
+yAa+Tkvv/vMx/sZ8cApBWNromUuWyXi8mHwCKe0JgOYKOoICKuLJL8hWGSbueBwj/feTZU7n85iY
+r83d2Z5AiDEoOqsuC7CsDCT6eiaY8xJhEPRdF/d+4niXVOKM6Cm6jBAyvd0zaziGfjk9DgNyp115
+j0WKWa5bIW4xRtVZjc8VX90xJc/bYNaBRHIpAlf2ltTW/+op2znFuCyKGo3Oy+dCMYYFaA6eFN0A
+kLppRQjbbpCBhqcqBT/mhDn4t/lXX0ykeVoQDF7Va/81XwVRHmyjdanPUIPTfPRm94KNPQx96N97
+qA4bLJyuQHCH2u2nFoJavjVsIE4iYdm8UXrNemHcSxH5/mc0zy4EZmFcV5cjjPOGG0jfKq+nwf/Y
+jj4Du9gqsPoUJbJRa4ZDhS4HIxaAjUz7tGM7zMN07RujHv41D198HRaG9Q7DlfEvr10lO1Hm13ZB
+ONFLAzkopR6RctR9q5czxNM+4Gm2KHmgCY0c0f9BckgG/Jou5yD5m6Leie2uPAmvylezkolwQOQv
+T8Jwg0DXJCxr5wkf09XHwQj02w47HAcLQxGEIYbpgNR12KvxAmLBsX5VYc8T1yaw15zLKYs4SgsO
+kI26oQ==
+-----END CERTIFICATE-----
+-----BEGIN CERTIFICATE-----
+MIIGCDCCA/CgAwIBAgIQKy5u6tl1NmwUim7bo3yMBzANBgkqhkiG9w0BAQwFADCB
+hTELMAkGA1UEBhMCR0IxGzAZBgNVBAgTEkdyZWF0ZXIgTWFuY2hlc3RlcjEQMA4G
+A1UEBxMHU2FsZm9yZDEaMBgGA1UEChMRQ09NT0RPIENBIExpbWl0ZWQxKzApBgNV
+BAMTIkNPTU9ETyBSU0EgQ2VydGlmaWNhdGlvbiBBdXRob3JpdHkwHhcNMTQwMjEy
+MDAwMDAwWhcNMjkwMjExMjM1OTU5WjCBkDELMAkGA1UEBhMCR0IxGzAZBgNVBAgT
+EkdyZWF0ZXIgTWFuY2hlc3RlcjEQMA4GA1UEBxMHU2FsZm9yZDEaMBgGA1UEChMR
+Q09NT0RPIENBIExpbWl0ZWQxNjA0BgNVBAMTLUNPTU9ETyBSU0EgRG9tYWluIFZh
+bGlkYXRpb24gU2VjdXJlIFNlcnZlciBDQTCCASIwDQYJKoZIhvcNAQEBBQADggEP
+ADCCAQoCggEBAI7CAhnhoFmk6zg1jSz9AdDTScBkxwtiBUUWOqigwAwCfx3M28Sh
+bXcDow+G+eMGnD4LgYqbSRutA776S9uMIO3Vzl5ljj4Nr0zCsLdFXlIvNN5IJGS0
+Qa4Al/e+Z96e0HqnU4A7fK31llVvl0cKfIWLIpeNs4TgllfQcBhglo/uLQeTnaG6
+ytHNe+nEKpooIZFNb5JPJaXyejXdJtxGpdCsWTWM/06RQ1A/WZMebFEh7lgUq/51
+UHg+TLAchhP6a5i84DuUHoVS3AOTJBhuyydRReZw3iVDpA3hSqXttn7IzW3uLh0n
+c13cRTCAquOyQQuvvUSH2rnlG51/ruWFgqUCAwEAAaOCAWUwggFhMB8GA1UdIwQY
+MBaAFLuvfgI9+qbxPISOre44mOzZMjLUMB0GA1UdDgQWBBSQr2o6lFoL2JDqElZz
+30O0Oija5zAOBgNVHQ8BAf8EBAMCAYYwEgYDVR0TAQH/BAgwBgEB/wIBADAdBgNV
+HSUEFjAUBggrBgEFBQcDAQYIKwYBBQUHAwIwGwYDVR0gBBQwEjAGBgRVHSAAMAgG
+BmeBDAECATBMBgNVHR8ERTBDMEGgP6A9hjtodHRwOi8vY3JsLmNvbW9kb2NhLmNv
+bS9DT01PRE9SU0FDZXJ0aWZpY2F0aW9uQXV0aG9yaXR5LmNybDBxBggrBgEFBQcB
+AQRlMGMwOwYIKwYBBQUHMAKGL2h0dHA6Ly9jcnQuY29tb2RvY2EuY29tL0NPTU9E
+T1JTQUFkZFRydXN0Q0EuY3J0MCQGCCsGAQUFBzABhhhodHRwOi8vb2NzcC5jb21v
+ZG9jYS5jb20wDQYJKoZIhvcNAQEMBQADggIBAE4rdk+SHGI2ibp3wScF9BzWRJ2p
+mj6q1WZmAT7qSeaiNbz69t2Vjpk1mA42GHWx3d1Qcnyu3HeIzg/3kCDKo2cuH1Z/
+e+FE6kKVxF0NAVBGFfKBiVlsit2M8RKhjTpCipj4SzR7JzsItG8kO3KdY3RYPBps
+P0/HEZrIqPW1N+8QRcZs2eBelSaz662jue5/DJpmNXMyYE7l3YphLG5SEXdoltMY
+dVEVABt0iN3hxzgEQyjpFv3ZBdRdRydg1vs4O2xyopT4Qhrf7W8GjEXCBgCq5Ojc
+2bXhc3js9iPc0d1sjhqPpepUfJa3w/5Vjo1JXvxku88+vZbrac2/4EjxYoIQ5QxG
+V/Iz2tDIY+3GH5QFlkoakdH368+PUq4NCNk+qKBR6cGHdNXJ93SrLlP7u3r7l+L4
+HyaPs9Kg4DdbKDsx5Q5XLVq4rXmsXiBmGqW5prU5wfWYQ//u+aen/e7KJD2AFsQX
+j4rBYKEMrltDR5FL1ZoXX/nUh8HCjLfn4g8wGTeGrODcQgPmlKidrv0PJFGUzpII
+0fxQ8ANAe4hZ7Q7drNJ3gjTcBpUC2JD5Leo31Rpg0Gcg19hCC0Wvgmje3WYkN5Ap
+lBlGGSW4gNfL1IYoakRwJiNiqZ+Gb7+6kHDSVneFeO/qJakXzlByjAA6quPbYzSf
++AZxAeKCINT+b72x
+-----END CERTIFICATE-----
+-----BEGIN CERTIFICATE-----
+MIIFdDCCBFygAwIBAgIQJ2buVutJ846r13Ci/ITeIjANBgkqhkiG9w0BAQwFADBv
+MQswCQYDVQQGEwJTRTEUMBIGA1UEChMLQWRkVHJ1c3QgQUIxJjAkBgNVBAsTHUFk
+ZFRydXN0IEV4dGVybmFsIFRUUCBOZXR3b3JrMSIwIAYDVQQDExlBZGRUcnVzdCBF
+eHRlcm5hbCBDQSBSb290MB4XDTAwMDUzMDEwNDgzOFoXDTIwMDUzMDEwNDgzOFow
+gYUxCzAJBgNVBAYTAkdCMRswGQYDVQQIExJHcmVhdGVyIE1hbmNoZXN0ZXIxEDAO
+BgNVBAcTB1NhbGZvcmQxGjAYBgNVBAoTEUNPTU9ETyBDQSBMaW1pdGVkMSswKQYD
+VQQDEyJDT01PRE8gUlNBIENlcnRpZmljYXRpb24gQXV0aG9yaXR5MIICIjANBgkq
+hkiG9w0BAQEFAAOCAg8AMIICCgKCAgEAkehUktIKVrGsDSTdxc9EZ3SZKzejfSNw
+AHG8U9/E+ioSj0t/EFa9n3Byt2F/yUsPF6c947AEYe7/EZfH9IY+Cvo+XPmT5jR6
+2RRr55yzhaCCenavcZDX7P0N+pxs+t+wgvQUfvm+xKYvT3+Zf7X8Z0NyvQwA1onr
+ayzT7Y+YHBSrfuXjbvzYqOSSJNpDa2K4Vf3qwbxstovzDo2a5JtsaZn4eEgwRdWt
+4Q08RWD8MpZRJ7xnw8outmvqRsfHIKCxH2XeSAi6pE6p8oNGN4Tr6MyBSENnTnIq
+m1y9TBsoilwie7SrmNnu4FGDwwlGTm0+mfqVF9p8M1dBPI1R7Qu2XK8sYxrfV8g/
+vOldxJuvRZnio1oktLqpVj3Pb6r/SVi+8Kj/9Lit6Tf7urj0Czr56ENCHonYhMsT
+8dm74YlguIwoVqwUHZwK53Hrzw7dPamWoUi9PPevtQ0iTMARgexWO/bTouJbt7IE
+IlKVgJNp6I5MZfGRAy1wdALqi2cVKWlSArvX31BqVUa/oKMoYX9w0MOiqiwhqkfO
+KJwGRXa/ghgntNWutMtQ5mv0TIZxMOmm3xaG4Nj/QN370EKIf6MzOi5cHkERgWPO
+GHFrK+ymircxXDpqR+DDeVnWIBqv8mqYqnK8V0rSS527EPywTEHl7R09XiidnMy/
+s1Hap0flhFMCAwEAAaOB9DCB8TAfBgNVHSMEGDAWgBStvZh6NLQm9/rEJlTvA73g
+JMtUGjAdBgNVHQ4EFgQUu69+Aj36pvE8hI6t7jiY7NkyMtQwDgYDVR0PAQH/BAQD
+AgGGMA8GA1UdEwEB/wQFMAMBAf8wEQYDVR0gBAowCDAGBgRVHSAAMEQGA1UdHwQ9
+MDswOaA3oDWGM2h0dHA6Ly9jcmwudXNlcnRydXN0LmNvbS9BZGRUcnVzdEV4dGVy
+bmFsQ0FSb290LmNybDA1BggrBgEFBQcBAQQpMCcwJQYIKwYBBQUHMAGGGWh0dHA6
+Ly9vY3NwLnVzZXJ0cnVzdC5jb20wDQYJKoZIhvcNAQEMBQADggEBAGS/g/FfmoXQ
+zbihKVcN6Fr30ek+8nYEbvFScLsePP9NDXRqzIGCJdPDoCpdTPW6i6FtxFQJdcfj
+Jw5dhHk3QBN39bSsHNA7qxcS1u80GH4r6XnTq1dFDK8o+tDb5VCViLvfhVdpfZLY
+Uspzgb8c8+a4bmYRBbMelC1/kZWSWfFMzqORcUx8Rww7Cxn2obFshj5cqsQugsv5
+B5a6SE2Q8pTIqXOi6wZ7I53eovNNVZ96YUWYGGjHXkBrI/V5eu+MtWuLt29G9Hvx
+PUsE2JOAWVrgQSQdso8VYFhH2+9uRv0V9dlfmrPb2LjkQLPNlzmuhbsdjrzch5vR
+pu/xO28QOG8=
+-----END CERTIFICATE-----
+-----BEGIN CERTIFICATE-----
+MIIENjCCAx6gAwIBAgIBATANBgkqhkiG9w0BAQUFADBvMQswCQYDVQQGEwJTRTEU
+MBIGA1UEChMLQWRkVHJ1c3QgQUIxJjAkBgNVBAsTHUFkZFRydXN0IEV4dGVybmFs
+IFRUUCBOZXR3b3JrMSIwIAYDVQQDExlBZGRUcnVzdCBFeHRlcm5hbCBDQSBSb290
+MB4XDTAwMDUzMDEwNDgzOFoXDTIwMDUzMDEwNDgzOFowbzELMAkGA1UEBhMCU0Ux
+FDASBgNVBAoTC0FkZFRydXN0IEFCMSYwJAYDVQQLEx1BZGRUcnVzdCBFeHRlcm5h
+bCBUVFAgTmV0d29yazEiMCAGA1UEAxMZQWRkVHJ1c3QgRXh0ZXJuYWwgQ0EgUm9v
+dDCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBALf3GjPm8gAELTngTlvt
+H7xsD821+iO2zt6bETOXpClMfZOfvUq8k+0DGuOPz+VtUFrWlymUWoCwSXrbLpX9
+uMq/NzgtHj6RQa1wVsfwTz/oMp50ysiQVOnGXw94nZpAPA6sYapeFI+eh6FqUNzX
+mk6vBbOmcZSccbNQYArHE504B4YCqOmoaSYYkKtMsE8jqzpPhNjfzp/haW+710LX
+a0Tkx63ubUFfclpxCDezeWWkWaCUN/cALw3CknLa0Dhy2xSoRcRdKn23tNbE7qzN
+E0S3ySvdQwAl+mG5aWpYIxG3pzOPVnVZ9c0p10a3CitlttNCbxWyuHv77+ldU9U0
+WicCAwEAAaOB3DCB2TAdBgNVHQ4EFgQUrb2YejS0Jvf6xCZU7wO94CTLVBowCwYD
+VR0PBAQDAgEGMA8GA1UdEwEB/wQFMAMBAf8wgZkGA1UdIwSBkTCBjoAUrb2YejS0
+Jvf6xCZU7wO94CTLVBqhc6RxMG8xCzAJBgNVBAYTAlNFMRQwEgYDVQQKEwtBZGRU
+cnVzdCBBQjEmMCQGA1UECxMdQWRkVHJ1c3QgRXh0ZXJuYWwgVFRQIE5ldHdvcmsx
+IjAgBgNVBAMTGUFkZFRydXN0IEV4dGVybmFsIENBIFJvb3SCAQEwDQYJKoZIhvcN
+AQEFBQADggEBALCb4IUlwtYj4g+WBpKdQZic2YR5gdkeWxQHIzZlj7DYd7usQWxH
+YINRsPkyPef89iYTx4AWpb9a/IfPeHmJIZriTAcKhjW88t5RxNKWt9x+Tu5w/Rw5
+6wwCURQtjr0W4MHfRnXnJK3s9EK0hZNwEGe6nQY1ShjTK3rMUUKhemPR5ruhxSvC
+Nr4TDea9Y355e6cJDUCrat2PisP29owaQgVR1EX1n6diIWgVIEM8med8vSTYqZEX
+c4g/VhsxOBi0cQ+azcgOno4uG+GMmIPLHzHxREzGBHNJdmAPx/i9F4BrLunMTA5a
+mnkPIAou1Z5jJh5VkpTYghdae9C8x49OhgQ=
+-----END CERTIFICATE-----
diff --git a/library/certs/README.md b/library/certs/README.md
new file mode 100644
index 000000000..9a2ca7eca
--- /dev/null
+++ b/library/certs/README.md
@@ -0,0 +1 @@
+This directory contains *browser valid* certs for use with redmatrix when using curl (server to server communication). The cacert.pem file in this directory is downloaded (when necessary) from the curl repository and tracks the Mozilla built-in certs. Additionally we've discovered we occasionally require intermediate certs from some cert providers which Mozilla and other browsers obtain automatically but curl does not. You may add these here if required. All these files are concatenated to create the library/cacert.pem file which we will use. \ No newline at end of file
diff --git a/library/certs/cacert.pem b/library/certs/cacert.pem
new file mode 100644
index 000000000..fa9df81f7
--- /dev/null
+++ b/library/certs/cacert.pem
@@ -0,0 +1,3894 @@
+##
+## Bundle of CA Root Certificates
+##
+## Certificate data from Mozilla downloaded on: Wed Sep 3 03:12:03 2014
+##
+## This is a bundle of X.509 certificates of public Certificate Authorities
+## (CA). These were automatically extracted from Mozilla's root certificates
+## file (certdata.txt). This file can be found in the mozilla source tree:
+## http://hg.mozilla.org/releases/mozilla-release/raw-file/default/security/nss/lib/ckfw/builtins/certdata.txt
+##
+## It contains the certificates in PEM format and therefore
+## can be directly used with curl / libcurl / php_curl, or with
+## an Apache+mod_ssl webserver for SSL client authentication.
+## Just configure this file as the SSLCACertificateFile.
+##
+## Conversion done with mk-ca-bundle.pl verison 1.22.
+## SHA1: c4540021427a6fa29e5f50db9f12d48c97d33889
+##
+
+
+GTE CyberTrust Global Root
+==========================
+-----BEGIN CERTIFICATE-----
+MIICWjCCAcMCAgGlMA0GCSqGSIb3DQEBBAUAMHUxCzAJBgNVBAYTAlVTMRgwFgYDVQQKEw9HVEUg
+Q29ycG9yYXRpb24xJzAlBgNVBAsTHkdURSBDeWJlclRydXN0IFNvbHV0aW9ucywgSW5jLjEjMCEG
+A1UEAxMaR1RFIEN5YmVyVHJ1c3QgR2xvYmFsIFJvb3QwHhcNOTgwODEzMDAyOTAwWhcNMTgwODEz
+MjM1OTAwWjB1MQswCQYDVQQGEwJVUzEYMBYGA1UEChMPR1RFIENvcnBvcmF0aW9uMScwJQYDVQQL
+Ex5HVEUgQ3liZXJUcnVzdCBTb2x1dGlvbnMsIEluYy4xIzAhBgNVBAMTGkdURSBDeWJlclRydXN0
+IEdsb2JhbCBSb290MIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQCVD6C28FCc6HrHiM3dFw4u
+sJTQGz0O9pTAipTHBsiQl8i4ZBp6fmw8U+E3KHNgf7KXUwefU/ltWJTSr41tiGeA5u2ylc9yMcql
+HHK6XALnZELn+aks1joNrI1CqiQBOeacPwGFVw1Yh0X404Wqk2kmhXBIgD8SFcd5tB8FLztimQID
+AQABMA0GCSqGSIb3DQEBBAUAA4GBAG3rGwnpXtlR22ciYaQqPEh346B8pt5zohQDhT37qw4wxYMW
+M4ETCJ57NE7fQMh017l93PR2VX2bY1QY6fDq81yx2YtCHrnAlU66+tXifPVoYb+O7AWXX1uw16OF
+NMQkpw0PlZPvy5TYnh+dXIVtx6quTx8itc2VrbqnzPmrC3p/
+-----END CERTIFICATE-----
+
+Thawte Server CA
+================
+-----BEGIN CERTIFICATE-----
+MIIDEzCCAnygAwIBAgIBATANBgkqhkiG9w0BAQQFADCBxDELMAkGA1UEBhMCWkExFTATBgNVBAgT
+DFdlc3Rlcm4gQ2FwZTESMBAGA1UEBxMJQ2FwZSBUb3duMR0wGwYDVQQKExRUaGF3dGUgQ29uc3Vs
+dGluZyBjYzEoMCYGA1UECxMfQ2VydGlmaWNhdGlvbiBTZXJ2aWNlcyBEaXZpc2lvbjEZMBcGA1UE
+AxMQVGhhd3RlIFNlcnZlciBDQTEmMCQGCSqGSIb3DQEJARYXc2VydmVyLWNlcnRzQHRoYXd0ZS5j
+b20wHhcNOTYwODAxMDAwMDAwWhcNMjAxMjMxMjM1OTU5WjCBxDELMAkGA1UEBhMCWkExFTATBgNV
+BAgTDFdlc3Rlcm4gQ2FwZTESMBAGA1UEBxMJQ2FwZSBUb3duMR0wGwYDVQQKExRUaGF3dGUgQ29u
+c3VsdGluZyBjYzEoMCYGA1UECxMfQ2VydGlmaWNhdGlvbiBTZXJ2aWNlcyBEaXZpc2lvbjEZMBcG
+A1UEAxMQVGhhd3RlIFNlcnZlciBDQTEmMCQGCSqGSIb3DQEJARYXc2VydmVyLWNlcnRzQHRoYXd0
+ZS5jb20wgZ8wDQYJKoZIhvcNAQEBBQADgY0AMIGJAoGBANOkUG7I/1Zr5s9dtuoMaHVHoqrC2oQl
+/Kj0R1HahbUgdJSGHg91yekIYfUGbTBuFRkC6VLAYttNmZ7iagxEOM3+vuNkCXDF/rFrKbYvScg7
+1CcEJRCXL+eQbcAoQpnXTEPew/UhbVSfXcNY4cDk2VuwuNy0e982OsK1ZiIS1ocNAgMBAAGjEzAR
+MA8GA1UdEwEB/wQFMAMBAf8wDQYJKoZIhvcNAQEEBQADgYEAB/pMaVz7lcxG7oWDTSEwjsrZqG9J
+GubaUeNgcGyEYRGhGshIPllDfU+VPaGLtwtimHp1it2ITk6eQNuozDJ0uW8NxuOzRAvZim+aKZuZ
+GCg70eNAKJpaPNW15yAbi8qkq43pUdniTCxZqdq5snUb9kLy78fyGPmJvKP/iiMucEc=
+-----END CERTIFICATE-----
+
+Thawte Premium Server CA
+========================
+-----BEGIN CERTIFICATE-----
+MIIDJzCCApCgAwIBAgIBATANBgkqhkiG9w0BAQQFADCBzjELMAkGA1UEBhMCWkExFTATBgNVBAgT
+DFdlc3Rlcm4gQ2FwZTESMBAGA1UEBxMJQ2FwZSBUb3duMR0wGwYDVQQKExRUaGF3dGUgQ29uc3Vs
+dGluZyBjYzEoMCYGA1UECxMfQ2VydGlmaWNhdGlvbiBTZXJ2aWNlcyBEaXZpc2lvbjEhMB8GA1UE
+AxMYVGhhd3RlIFByZW1pdW0gU2VydmVyIENBMSgwJgYJKoZIhvcNAQkBFhlwcmVtaXVtLXNlcnZl
+ckB0aGF3dGUuY29tMB4XDTk2MDgwMTAwMDAwMFoXDTIwMTIzMTIzNTk1OVowgc4xCzAJBgNVBAYT
+AlpBMRUwEwYDVQQIEwxXZXN0ZXJuIENhcGUxEjAQBgNVBAcTCUNhcGUgVG93bjEdMBsGA1UEChMU
+VGhhd3RlIENvbnN1bHRpbmcgY2MxKDAmBgNVBAsTH0NlcnRpZmljYXRpb24gU2VydmljZXMgRGl2
+aXNpb24xITAfBgNVBAMTGFRoYXd0ZSBQcmVtaXVtIFNlcnZlciBDQTEoMCYGCSqGSIb3DQEJARYZ
+cHJlbWl1bS1zZXJ2ZXJAdGhhd3RlLmNvbTCBnzANBgkqhkiG9w0BAQEFAAOBjQAwgYkCgYEA0jY2
+aovXwlue2oFBYo847kkEVdbQ7xwblRZH7xhINTpS9CtqBo87L+pW46+GjZ4X9560ZXUCTe/LCaIh
+Udib0GfQug2SBhRz1JPLlyoAnFxODLz6FVL88kRu2hFKbgifLy3j+ao6hnO2RlNYyIkFvYMRuHM/
+qgeN9EJN50CdHDcCAwEAAaMTMBEwDwYDVR0TAQH/BAUwAwEB/zANBgkqhkiG9w0BAQQFAAOBgQAm
+SCwWwlj66BZ0DKqqX1Q/8tfJeGBeXm43YyJ3Nn6yF8Q0ufUIhfzJATj/Tb7yFkJD57taRvvBxhEf
+8UqwKEbJw8RCfbz6q1lu1bdRiBHjpIUZa4JMpAwSremkrj/xw0llmozFyD4lt5SZu5IycQfwhl7t
+UCemDaYj+bvLpgcUQg==
+-----END CERTIFICATE-----
+
+Equifax Secure CA
+=================
+-----BEGIN CERTIFICATE-----
+MIIDIDCCAomgAwIBAgIENd70zzANBgkqhkiG9w0BAQUFADBOMQswCQYDVQQGEwJVUzEQMA4GA1UE
+ChMHRXF1aWZheDEtMCsGA1UECxMkRXF1aWZheCBTZWN1cmUgQ2VydGlmaWNhdGUgQXV0aG9yaXR5
+MB4XDTk4MDgyMjE2NDE1MVoXDTE4MDgyMjE2NDE1MVowTjELMAkGA1UEBhMCVVMxEDAOBgNVBAoT
+B0VxdWlmYXgxLTArBgNVBAsTJEVxdWlmYXggU2VjdXJlIENlcnRpZmljYXRlIEF1dGhvcml0eTCB
+nzANBgkqhkiG9w0BAQEFAAOBjQAwgYkCgYEAwV2xWGcIYu6gmi0fCG2RFGiYCh7+2gRvE4RiIcPR
+fM6fBeC4AfBONOziipUEZKzxa1NfBbPLZ4C/QgKO/t0BCezhABRP/PvwDN1Dulsr4R+AcJkVV5MW
+8Q+XarfCaCMczE1ZMKxRHjuvK9buY0V7xdlfUNLjUA86iOe/FP3gx7kCAwEAAaOCAQkwggEFMHAG
+A1UdHwRpMGcwZaBjoGGkXzBdMQswCQYDVQQGEwJVUzEQMA4GA1UEChMHRXF1aWZheDEtMCsGA1UE
+CxMkRXF1aWZheCBTZWN1cmUgQ2VydGlmaWNhdGUgQXV0aG9yaXR5MQ0wCwYDVQQDEwRDUkwxMBoG
+A1UdEAQTMBGBDzIwMTgwODIyMTY0MTUxWjALBgNVHQ8EBAMCAQYwHwYDVR0jBBgwFoAUSOZo+SvS
+spXXR9gjIBBPM5iQn9QwHQYDVR0OBBYEFEjmaPkr0rKV10fYIyAQTzOYkJ/UMAwGA1UdEwQFMAMB
+Af8wGgYJKoZIhvZ9B0EABA0wCxsFVjMuMGMDAgbAMA0GCSqGSIb3DQEBBQUAA4GBAFjOKer89961
+zgK5F7WF0bnj4JXMJTENAKaSbn+2kmOeUJXRmm/kEd5jhW6Y7qj/WsjTVbJmcVfewCHrPSqnI0kB
+BIZCe/zuf6IWUrVnZ9NA2zsmWLIodz2uFHdh1voqZiegDfqnc1zqcPGUIWVEX/r87yloqaKHee95
+70+sB3c4
+-----END CERTIFICATE-----
+
+Verisign Class 3 Public Primary Certification Authority - G2
+============================================================
+-----BEGIN CERTIFICATE-----
+MIIDAjCCAmsCEH3Z/gfPqB63EHln+6eJNMYwDQYJKoZIhvcNAQEFBQAwgcExCzAJBgNVBAYTAlVT
+MRcwFQYDVQQKEw5WZXJpU2lnbiwgSW5jLjE8MDoGA1UECxMzQ2xhc3MgMyBQdWJsaWMgUHJpbWFy
+eSBDZXJ0aWZpY2F0aW9uIEF1dGhvcml0eSAtIEcyMTowOAYDVQQLEzEoYykgMTk5OCBWZXJpU2ln
+biwgSW5jLiAtIEZvciBhdXRob3JpemVkIHVzZSBvbmx5MR8wHQYDVQQLExZWZXJpU2lnbiBUcnVz
+dCBOZXR3b3JrMB4XDTk4MDUxODAwMDAwMFoXDTI4MDgwMTIzNTk1OVowgcExCzAJBgNVBAYTAlVT
+MRcwFQYDVQQKEw5WZXJpU2lnbiwgSW5jLjE8MDoGA1UECxMzQ2xhc3MgMyBQdWJsaWMgUHJpbWFy
+eSBDZXJ0aWZpY2F0aW9uIEF1dGhvcml0eSAtIEcyMTowOAYDVQQLEzEoYykgMTk5OCBWZXJpU2ln
+biwgSW5jLiAtIEZvciBhdXRob3JpemVkIHVzZSBvbmx5MR8wHQYDVQQLExZWZXJpU2lnbiBUcnVz
+dCBOZXR3b3JrMIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQDMXtERXVxp0KvTuWpMmR9ZmDCO
+FoUgRm1HP9SFIIThbbP4pO0M8RcPO/mn+SXXwc+EY/J8Y8+iR/LGWzOOZEAEaMGAuWQcRXfH2G71
+lSk8UOg013gfqLptQ5GVj0VXXn7F+8qkBOvqlzdUMG+7AUcyM83cV5tkaWH4mx0ciU9cZwIDAQAB
+MA0GCSqGSIb3DQEBBQUAA4GBAFFNzb5cy5gZnBWyATl4Lk0PZ3BwmcYQWpSkU01UbSuvDV1Ai2TT
+1+7eVmGSX6bEHRBhNtMsJzzoKQm5EWR0zLVznxxIqbxhAe7iF6YM40AIOw7n60RzKprxaZLvcRTD
+Oaxxp5EJb+RxBrO6WVcmeQD2+A2iMzAo1KpYoJ2daZH9
+-----END CERTIFICATE-----
+
+GlobalSign Root CA
+==================
+-----BEGIN CERTIFICATE-----
+MIIDdTCCAl2gAwIBAgILBAAAAAABFUtaw5QwDQYJKoZIhvcNAQEFBQAwVzELMAkGA1UEBhMCQkUx
+GTAXBgNVBAoTEEdsb2JhbFNpZ24gbnYtc2ExEDAOBgNVBAsTB1Jvb3QgQ0ExGzAZBgNVBAMTEkds
+b2JhbFNpZ24gUm9vdCBDQTAeFw05ODA5MDExMjAwMDBaFw0yODAxMjgxMjAwMDBaMFcxCzAJBgNV
+BAYTAkJFMRkwFwYDVQQKExBHbG9iYWxTaWduIG52LXNhMRAwDgYDVQQLEwdSb290IENBMRswGQYD
+VQQDExJHbG9iYWxTaWduIFJvb3QgQ0EwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQDa
+DuaZjc6j40+Kfvvxi4Mla+pIH/EqsLmVEQS98GPR4mdmzxzdzxtIK+6NiY6arymAZavpxy0Sy6sc
+THAHoT0KMM0VjU/43dSMUBUc71DuxC73/OlS8pF94G3VNTCOXkNz8kHp1Wrjsok6Vjk4bwY8iGlb
+Kk3Fp1S4bInMm/k8yuX9ifUSPJJ4ltbcdG6TRGHRjcdGsnUOhugZitVtbNV4FpWi6cgKOOvyJBNP
+c1STE4U6G7weNLWLBYy5d4ux2x8gkasJU26Qzns3dLlwR5EiUWMWea6xrkEmCMgZK9FGqkjWZCrX
+gzT/LCrBbBlDSgeF59N89iFo7+ryUp9/k5DPAgMBAAGjQjBAMA4GA1UdDwEB/wQEAwIBBjAPBgNV
+HRMBAf8EBTADAQH/MB0GA1UdDgQWBBRge2YaRQ2XyolQL30EzTSo//z9SzANBgkqhkiG9w0BAQUF
+AAOCAQEA1nPnfE920I2/7LqivjTFKDK1fPxsnCwrvQmeU79rXqoRSLblCKOzyj1hTdNGCbM+w6Dj
+Y1Ub8rrvrTnhQ7k4o+YviiY776BQVvnGCv04zcQLcFGUl5gE38NflNUVyRRBnMRddWQVDf9VMOyG
+j/8N7yy5Y0b2qvzfvGn9LhJIZJrglfCm7ymPAbEVtQwdpf5pLGkkeB6zpxxxYu7KyJesF12KwvhH
+hm4qxFYxldBniYUr+WymXUadDKqC5JlR3XC321Y9YeRq4VzW9v493kHMB65jUr9TU/Qr6cf9tveC
+X4XSQRjbgbMEHMUfpIBvFSDJ3gyICh3WZlXi/EjJKSZp4A==
+-----END CERTIFICATE-----
+
+GlobalSign Root CA - R2
+=======================
+-----BEGIN CERTIFICATE-----
+MIIDujCCAqKgAwIBAgILBAAAAAABD4Ym5g0wDQYJKoZIhvcNAQEFBQAwTDEgMB4GA1UECxMXR2xv
+YmFsU2lnbiBSb290IENBIC0gUjIxEzARBgNVBAoTCkdsb2JhbFNpZ24xEzARBgNVBAMTCkdsb2Jh
+bFNpZ24wHhcNMDYxMjE1MDgwMDAwWhcNMjExMjE1MDgwMDAwWjBMMSAwHgYDVQQLExdHbG9iYWxT
+aWduIFJvb3QgQ0EgLSBSMjETMBEGA1UEChMKR2xvYmFsU2lnbjETMBEGA1UEAxMKR2xvYmFsU2ln
+bjCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAKbPJA6+Lm8omUVCxKs+IVSbC9N/hHD6
+ErPLv4dfxn+G07IwXNb9rfF73OX4YJYJkhD10FPe+3t+c4isUoh7SqbKSaZeqKeMWhG8eoLrvozp
+s6yWJQeXSpkqBy+0Hne/ig+1AnwblrjFuTosvNYSuetZfeLQBoZfXklqtTleiDTsvHgMCJiEbKjN
+S7SgfQx5TfC4LcshytVsW33hoCmEofnTlEnLJGKRILzdC9XZzPnqJworc5HGnRusyMvo4KD0L5CL
+TfuwNhv2GXqF4G3yYROIXJ/gkwpRl4pazq+r1feqCapgvdzZX99yqWATXgAByUr6P6TqBwMhAo6C
+ygPCm48CAwEAAaOBnDCBmTAOBgNVHQ8BAf8EBAMCAQYwDwYDVR0TAQH/BAUwAwEB/zAdBgNVHQ4E
+FgQUm+IHV2ccHsBqBt5ZtJot39wZhi4wNgYDVR0fBC8wLTAroCmgJ4YlaHR0cDovL2NybC5nbG9i
+YWxzaWduLm5ldC9yb290LXIyLmNybDAfBgNVHSMEGDAWgBSb4gdXZxwewGoG3lm0mi3f3BmGLjAN
+BgkqhkiG9w0BAQUFAAOCAQEAmYFThxxol4aR7OBKuEQLq4GsJ0/WwbgcQ3izDJr86iw8bmEbTUsp
+9Z8FHSbBuOmDAGJFtqkIk7mpM0sYmsL4h4hO291xNBrBVNpGP+DTKqttVCL1OmLNIG+6KYnX3ZHu
+01yiPqFbQfXf5WRDLenVOavSot+3i9DAgBkcRcAtjOj4LaR0VknFBbVPFd5uRHg5h6h+u/N5GJG7
+9G+dwfCMNYxdAfvDbbnvRG15RjF+Cv6pgsH/76tuIMRQyV+dTZsXjAzlAcmgQWpzU/qlULRuJQ/7
+TBj0/VLZjmmx6BEP3ojY+x1J96relc8geMJgEtslQIxq/H5COEBkEveegeGTLg==
+-----END CERTIFICATE-----
+
+Verisign Class 3 Public Primary Certification Authority - G3
+============================================================
+-----BEGIN CERTIFICATE-----
+MIIEGjCCAwICEQCbfgZJoz5iudXukEhxKe9XMA0GCSqGSIb3DQEBBQUAMIHKMQswCQYDVQQGEwJV
+UzEXMBUGA1UEChMOVmVyaVNpZ24sIEluYy4xHzAdBgNVBAsTFlZlcmlTaWduIFRydXN0IE5ldHdv
+cmsxOjA4BgNVBAsTMShjKSAxOTk5IFZlcmlTaWduLCBJbmMuIC0gRm9yIGF1dGhvcml6ZWQgdXNl
+IG9ubHkxRTBDBgNVBAMTPFZlcmlTaWduIENsYXNzIDMgUHVibGljIFByaW1hcnkgQ2VydGlmaWNh
+dGlvbiBBdXRob3JpdHkgLSBHMzAeFw05OTEwMDEwMDAwMDBaFw0zNjA3MTYyMzU5NTlaMIHKMQsw
+CQYDVQQGEwJVUzEXMBUGA1UEChMOVmVyaVNpZ24sIEluYy4xHzAdBgNVBAsTFlZlcmlTaWduIFRy
+dXN0IE5ldHdvcmsxOjA4BgNVBAsTMShjKSAxOTk5IFZlcmlTaWduLCBJbmMuIC0gRm9yIGF1dGhv
+cml6ZWQgdXNlIG9ubHkxRTBDBgNVBAMTPFZlcmlTaWduIENsYXNzIDMgUHVibGljIFByaW1hcnkg
+Q2VydGlmaWNhdGlvbiBBdXRob3JpdHkgLSBHMzCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoC
+ggEBAMu6nFL8eB8aHm8bN3O9+MlrlBIwT/A2R/XQkQr1F8ilYcEWQE37imGQ5XYgwREGfassbqb1
+EUGO+i2tKmFZpGcmTNDovFJbcCAEWNF6yaRpvIMXZK0Fi7zQWM6NjPXr8EJJC52XJ2cybuGukxUc
+cLwgTS8Y3pKI6GyFVxEa6X7jJhFUokWWVYPKMIno3Nij7SqAP395ZVc+FSBmCC+Vk7+qRy+oRpfw
+EuL+wgorUeZ25rdGt+INpsyow0xZVYnm6FNcHOqd8GIWC6fJXwzw3sJ2zq/3avL6QaaiMxTJ5Xpj
+055iN9WFZZ4O5lMkdBteHRJTW8cs54NJOxWuimi5V5cCAwEAATANBgkqhkiG9w0BAQUFAAOCAQEA
+ERSWwauSCPc/L8my/uRan2Te2yFPhpk0djZX3dAVL8WtfxUfN2JzPtTnX84XA9s1+ivbrmAJXx5f
+j267Cz3qWhMeDGBvtcC1IyIuBwvLqXTLR7sdwdela8wv0kL9Sd2nic9TutoAWii/gt/4uhMdUIaC
+/Y4wjylGsB49Ndo4YhYYSq3mtlFs3q9i6wHQHiT+eo8SGhJouPtmmRQURVyu565pF4ErWjfJXir0
+xuKhXFSbplQAz/DxwceYMBo7Nhbbo27q/a2ywtrvAkcTisDxszGtTxzhT5yvDwyd93gN2PQ1VoDa
+t20Xj50egWTh/sVFuq1ruQp6Tk9LhO5L8X3dEQ==
+-----END CERTIFICATE-----
+
+Verisign Class 4 Public Primary Certification Authority - G3
+============================================================
+-----BEGIN CERTIFICATE-----
+MIIEGjCCAwICEQDsoKeLbnVqAc/EfMwvlF7XMA0GCSqGSIb3DQEBBQUAMIHKMQswCQYDVQQGEwJV
+UzEXMBUGA1UEChMOVmVyaVNpZ24sIEluYy4xHzAdBgNVBAsTFlZlcmlTaWduIFRydXN0IE5ldHdv
+cmsxOjA4BgNVBAsTMShjKSAxOTk5IFZlcmlTaWduLCBJbmMuIC0gRm9yIGF1dGhvcml6ZWQgdXNl
+IG9ubHkxRTBDBgNVBAMTPFZlcmlTaWduIENsYXNzIDQgUHVibGljIFByaW1hcnkgQ2VydGlmaWNh
+dGlvbiBBdXRob3JpdHkgLSBHMzAeFw05OTEwMDEwMDAwMDBaFw0zNjA3MTYyMzU5NTlaMIHKMQsw
+CQYDVQQGEwJVUzEXMBUGA1UEChMOVmVyaVNpZ24sIEluYy4xHzAdBgNVBAsTFlZlcmlTaWduIFRy
+dXN0IE5ldHdvcmsxOjA4BgNVBAsTMShjKSAxOTk5IFZlcmlTaWduLCBJbmMuIC0gRm9yIGF1dGhv
+cml6ZWQgdXNlIG9ubHkxRTBDBgNVBAMTPFZlcmlTaWduIENsYXNzIDQgUHVibGljIFByaW1hcnkg
+Q2VydGlmaWNhdGlvbiBBdXRob3JpdHkgLSBHMzCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoC
+ggEBAK3LpRFpxlmr8Y+1GQ9Wzsy1HyDkniYlS+BzZYlZ3tCD5PUPtbut8XzoIfzk6AzufEUiGXaS
+tBO3IFsJ+mGuqPKljYXCKtbeZjbSmwL0qJJgfJxptI8kHtCGUvYynEFYHiK9zUVilQhu0GbdU6LM
+8BDcVHOLBKFGMzNcF0C5nk3T875Vg+ixiY5afJqWIpA7iCXy0lOIAgwLePLmNxdLMEYH5IBtptiW
+Lugs+BGzOA1mppvqySNb247i8xOOGlktqgLw7KSHZtzBP/XYufTsgsbSPZUd5cBPhMnZo0QoBmrX
+Razwa2rvTl/4EYIeOGM0ZlDUPpNz+jDDZq3/ky2X7wMCAwEAATANBgkqhkiG9w0BAQUFAAOCAQEA
+j/ola09b5KROJ1WrIhVZPMq1CtRK26vdoV9TxaBXOcLORyu+OshWv8LZJxA6sQU8wHcxuzrTBXtt
+mhwwjIDLk5Mqg6sFUYICABFna/OIYUdfA5PVWw3g8dShMjWFsjrbsIKr0csKvE+MW8VLADsfKoKm
+fjaF3H48ZwC15DtS4KjrXRX5xm3wrR0OhbepmnMUWluPQSjA1egtTaRezarZ7c7c2NU8Qh0XwRJd
+RTjDOPP8hS6DRkiy1yBfkjaP53kPmF6Z6PDQpLv1U70qzlmwr25/bLvSHgCwIe34QWKCudiyxLtG
+UPMxxY8BqHTr9Xgn2uf3ZkPznoM+IKrDNWCRzg==
+-----END CERTIFICATE-----
+
+Entrust.net Premium 2048 Secure Server CA
+=========================================
+-----BEGIN CERTIFICATE-----
+MIIEKjCCAxKgAwIBAgIEOGPe+DANBgkqhkiG9w0BAQUFADCBtDEUMBIGA1UEChMLRW50cnVzdC5u
+ZXQxQDA+BgNVBAsUN3d3dy5lbnRydXN0Lm5ldC9DUFNfMjA0OCBpbmNvcnAuIGJ5IHJlZi4gKGxp
+bWl0cyBsaWFiLikxJTAjBgNVBAsTHChjKSAxOTk5IEVudHJ1c3QubmV0IExpbWl0ZWQxMzAxBgNV
+BAMTKkVudHJ1c3QubmV0IENlcnRpZmljYXRpb24gQXV0aG9yaXR5ICgyMDQ4KTAeFw05OTEyMjQx
+NzUwNTFaFw0yOTA3MjQxNDE1MTJaMIG0MRQwEgYDVQQKEwtFbnRydXN0Lm5ldDFAMD4GA1UECxQ3
+d3d3LmVudHJ1c3QubmV0L0NQU18yMDQ4IGluY29ycC4gYnkgcmVmLiAobGltaXRzIGxpYWIuKTEl
+MCMGA1UECxMcKGMpIDE5OTkgRW50cnVzdC5uZXQgTGltaXRlZDEzMDEGA1UEAxMqRW50cnVzdC5u
+ZXQgQ2VydGlmaWNhdGlvbiBBdXRob3JpdHkgKDIwNDgpMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8A
+MIIBCgKCAQEArU1LqRKGsuqjIAcVFmQqK0vRvwtKTY7tgHalZ7d4QMBzQshowNtTK91euHaYNZOL
+Gp18EzoOH1u3Hs/lJBQesYGpjX24zGtLA/ECDNyrpUAkAH90lKGdCCmziAv1h3edVc3kw37XamSr
+hRSGlVuXMlBvPci6Zgzj/L24ScF2iUkZ/cCovYmjZy/Gn7xxGWC4LeksyZB2ZnuU4q941mVTXTzW
+nLLPKQP5L6RQstRIzgUyVYr9smRMDuSYB3Xbf9+5CFVghTAp+XtIpGmG4zU/HoZdenoVve8AjhUi
+VBcAkCaTvA5JaJG/+EfTnZVCwQ5N328mz8MYIWJmQ3DW1cAH4QIDAQABo0IwQDAOBgNVHQ8BAf8E
+BAMCAQYwDwYDVR0TAQH/BAUwAwEB/zAdBgNVHQ4EFgQUVeSB0RGAvtiJuQijMfmhJAkWuXAwDQYJ
+KoZIhvcNAQEFBQADggEBADubj1abMOdTmXx6eadNl9cZlZD7Bh/KM3xGY4+WZiT6QBshJ8rmcnPy
+T/4xmf3IDExoU8aAghOY+rat2l098c5u9hURlIIM7j+VrxGrD9cv3h8Dj1csHsm7mhpElesYT6Yf
+zX1XEC+bBAlahLVu2B064dae0Wx5XnkcFMXj0EyTO2U87d89vqbllRrDtRnDvV5bu/8j72gZyxKT
+J1wDLW8w0B62GqzeWvfRqqgnpv55gcR5mTNXuhKwqeBCbJPKVt7+bYQLCIt+jerXmCHG8+c8eS9e
+nNFMFY3h7CI3zJpDC5fcgJCNs2ebb0gIFVbPv/ErfF6adulZkMV8gzURZVE=
+-----END CERTIFICATE-----
+
+Baltimore CyberTrust Root
+=========================
+-----BEGIN CERTIFICATE-----
+MIIDdzCCAl+gAwIBAgIEAgAAuTANBgkqhkiG9w0BAQUFADBaMQswCQYDVQQGEwJJRTESMBAGA1UE
+ChMJQmFsdGltb3JlMRMwEQYDVQQLEwpDeWJlclRydXN0MSIwIAYDVQQDExlCYWx0aW1vcmUgQ3li
+ZXJUcnVzdCBSb290MB4XDTAwMDUxMjE4NDYwMFoXDTI1MDUxMjIzNTkwMFowWjELMAkGA1UEBhMC
+SUUxEjAQBgNVBAoTCUJhbHRpbW9yZTETMBEGA1UECxMKQ3liZXJUcnVzdDEiMCAGA1UEAxMZQmFs
+dGltb3JlIEN5YmVyVHJ1c3QgUm9vdDCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAKME
+uyKrmD1X6CZymrV51Cni4eiVgLGw41uOKymaZN+hXe2wCQVt2yguzmKiYv60iNoS6zjrIZ3AQSsB
+UnuId9Mcj8e6uYi1agnnc+gRQKfRzMpijS3ljwumUNKoUMMo6vWrJYeKmpYcqWe4PwzV9/lSEy/C
+G9VwcPCPwBLKBsua4dnKM3p31vjsufFoREJIE9LAwqSuXmD+tqYF/LTdB1kC1FkYmGP1pWPgkAx9
+XbIGevOF6uvUA65ehD5f/xXtabz5OTZydc93Uk3zyZAsuT3lySNTPx8kmCFcB5kpvcY67Oduhjpr
+l3RjM71oGDHweI12v/yejl0qhqdNkNwnGjkCAwEAAaNFMEMwHQYDVR0OBBYEFOWdWTCCR1jMrPoI
+VDaGezq1BE3wMBIGA1UdEwEB/wQIMAYBAf8CAQMwDgYDVR0PAQH/BAQDAgEGMA0GCSqGSIb3DQEB
+BQUAA4IBAQCFDF2O5G9RaEIFoN27TyclhAO992T9Ldcw46QQF+vaKSm2eT929hkTI7gQCvlYpNRh
+cL0EYWoSihfVCr3FvDB81ukMJY2GQE/szKN+OMY3EU/t3WgxjkzSswF07r51XgdIGn9w/xZchMB5
+hbgF/X++ZRGjD8ACtPhSNzkE1akxehi/oCr0Epn3o0WC4zxe9Z2etciefC7IpJ5OCBRLbf1wbWsa
+Y71k5h+3zvDyny67G7fyUIhzksLi4xaNmjICq44Y3ekQEe5+NauQrz4wlHrQMz2nZQ/1/I6eYs9H
+RCwBXbsdtTLSR9I4LtD+gdwyah617jzV/OeBHRnDJELqYzmp
+-----END CERTIFICATE-----
+
+Equifax Secure Global eBusiness CA
+==================================
+-----BEGIN CERTIFICATE-----
+MIICkDCCAfmgAwIBAgIBATANBgkqhkiG9w0BAQQFADBaMQswCQYDVQQGEwJVUzEcMBoGA1UEChMT
+RXF1aWZheCBTZWN1cmUgSW5jLjEtMCsGA1UEAxMkRXF1aWZheCBTZWN1cmUgR2xvYmFsIGVCdXNp
+bmVzcyBDQS0xMB4XDTk5MDYyMTA0MDAwMFoXDTIwMDYyMTA0MDAwMFowWjELMAkGA1UEBhMCVVMx
+HDAaBgNVBAoTE0VxdWlmYXggU2VjdXJlIEluYy4xLTArBgNVBAMTJEVxdWlmYXggU2VjdXJlIEds
+b2JhbCBlQnVzaW5lc3MgQ0EtMTCBnzANBgkqhkiG9w0BAQEFAAOBjQAwgYkCgYEAuucXkAJlsTRV
+PEnCUdXfp9E3j9HngXNBUmCbnaEXJnitx7HoJpQytd4zjTov2/KaelpzmKNc6fuKcxtc58O/gGzN
+qfTWK8D3+ZmqY6KxRwIP1ORROhI8bIpaVIRw28HFkM9yRcuoWcDNM50/o5brhTMhHD4ePmBudpxn
+hcXIw2ECAwEAAaNmMGQwEQYJYIZIAYb4QgEBBAQDAgAHMA8GA1UdEwEB/wQFMAMBAf8wHwYDVR0j
+BBgwFoAUvqigdHJQa0S3ySPY+6j/s1draGwwHQYDVR0OBBYEFL6ooHRyUGtEt8kj2Puo/7NXa2hs
+MA0GCSqGSIb3DQEBBAUAA4GBADDiAVGqx+pf2rnQZQ8w1j7aDRRJbpGTJxQx78T3LUX47Me/okEN
+I7SS+RkAZ70Br83gcfxaz2TE4JaY0KNA4gGK7ycH8WUBikQtBmV1UsCGECAhX2xrD2yuCRyv8qIY
+NMR1pHMc8Y3c7635s3a0kr/clRAevsvIO1qEYBlWlKlV
+-----END CERTIFICATE-----
+
+Equifax Secure eBusiness CA 1
+=============================
+-----BEGIN CERTIFICATE-----
+MIICgjCCAeugAwIBAgIBBDANBgkqhkiG9w0BAQQFADBTMQswCQYDVQQGEwJVUzEcMBoGA1UEChMT
+RXF1aWZheCBTZWN1cmUgSW5jLjEmMCQGA1UEAxMdRXF1aWZheCBTZWN1cmUgZUJ1c2luZXNzIENB
+LTEwHhcNOTkwNjIxMDQwMDAwWhcNMjAwNjIxMDQwMDAwWjBTMQswCQYDVQQGEwJVUzEcMBoGA1UE
+ChMTRXF1aWZheCBTZWN1cmUgSW5jLjEmMCQGA1UEAxMdRXF1aWZheCBTZWN1cmUgZUJ1c2luZXNz
+IENBLTEwgZ8wDQYJKoZIhvcNAQEBBQADgY0AMIGJAoGBAM4vGbwXt3fek6lfWg0XTzQaDJj0ItlZ
+1MRoRvC0NcWFAyDGr0WlIVFFQesWWDYyb+JQYmT5/VGcqiTZ9J2DKocKIdMSODRsjQBuWqDZQu4a
+IZX5UkxVWsUPOE9G+m34LjXWHXzr4vCwdYDIqROsvojvOm6rXyo4YgKwEnv+j6YDAgMBAAGjZjBk
+MBEGCWCGSAGG+EIBAQQEAwIABzAPBgNVHRMBAf8EBTADAQH/MB8GA1UdIwQYMBaAFEp4MlIR21kW
+Nl7fwRQ2QGpHfEyhMB0GA1UdDgQWBBRKeDJSEdtZFjZe38EUNkBqR3xMoTANBgkqhkiG9w0BAQQF
+AAOBgQB1W6ibAxHm6VZMzfmpTMANmvPMZWnmJXbMWbfWVMMdzZmsGd20hdXgPfxiIKeES1hl8eL5
+lSE/9dR+WB5Hh1Q+WKG1tfgq73HnvMP2sUlG4tega+VWeponmHxGYhTnyfxuAxJ5gDgdSIKN/Bf+
+KpYrtWKmpj29f5JZzVoqgrI3eQ==
+-----END CERTIFICATE-----
+
+AddTrust Low-Value Services Root
+================================
+-----BEGIN CERTIFICATE-----
+MIIEGDCCAwCgAwIBAgIBATANBgkqhkiG9w0BAQUFADBlMQswCQYDVQQGEwJTRTEUMBIGA1UEChML
+QWRkVHJ1c3QgQUIxHTAbBgNVBAsTFEFkZFRydXN0IFRUUCBOZXR3b3JrMSEwHwYDVQQDExhBZGRU
+cnVzdCBDbGFzcyAxIENBIFJvb3QwHhcNMDAwNTMwMTAzODMxWhcNMjAwNTMwMTAzODMxWjBlMQsw
+CQYDVQQGEwJTRTEUMBIGA1UEChMLQWRkVHJ1c3QgQUIxHTAbBgNVBAsTFEFkZFRydXN0IFRUUCBO
+ZXR3b3JrMSEwHwYDVQQDExhBZGRUcnVzdCBDbGFzcyAxIENBIFJvb3QwggEiMA0GCSqGSIb3DQEB
+AQUAA4IBDwAwggEKAoIBAQCWltQhSWDia+hBBwzexODcEyPNwTXH+9ZOEQpnXvUGW2ulCDtbKRY6
+54eyNAbFvAWlA3yCyykQruGIgb3WntP+LVbBFc7jJp0VLhD7Bo8wBN6ntGO0/7Gcrjyvd7ZWxbWr
+oulpOj0OM3kyP3CCkplhbY0wCI9xP6ZIVxn4JdxLZlyldI+Yrsj5wAYi56xz36Uu+1LcsRVlIPo1
+Zmne3yzxbrww2ywkEtvrNTVokMsAsJchPXQhI2U0K7t4WaPW4XY5mqRJjox0r26kmqPZm9I4XJui
+GMx1I4S+6+JNM3GOGvDC+Mcdoq0Dlyz4zyXG9rgkMbFjXZJ/Y/AlyVMuH79NAgMBAAGjgdIwgc8w
+HQYDVR0OBBYEFJWxtPCUtr3H2tERCSG+wa9J/RB7MAsGA1UdDwQEAwIBBjAPBgNVHRMBAf8EBTAD
+AQH/MIGPBgNVHSMEgYcwgYSAFJWxtPCUtr3H2tERCSG+wa9J/RB7oWmkZzBlMQswCQYDVQQGEwJT
+RTEUMBIGA1UEChMLQWRkVHJ1c3QgQUIxHTAbBgNVBAsTFEFkZFRydXN0IFRUUCBOZXR3b3JrMSEw
+HwYDVQQDExhBZGRUcnVzdCBDbGFzcyAxIENBIFJvb3SCAQEwDQYJKoZIhvcNAQEFBQADggEBACxt
+ZBsfzQ3duQH6lmM0MkhHma6X7f1yFqZzR1r0693p9db7RcwpiURdv0Y5PejuvE1Uhh4dbOMXJ0Ph
+iVYrqW9yTkkz43J8KiOavD7/KCrto/8cI7pDVwlnTUtiBi34/2ydYB7YHEt9tTEv2dB8Xfjea4MY
+eDdXL+gzB2ffHsdrKpV2ro9Xo/D0UrSpUwjP4E/TelOL/bscVjby/rK25Xa71SJlpz/+0WatC7xr
+mYbvP33zGDLKe8bjq2RGlfgmadlVg3sslgf/WSxEo8bl6ancoWOAWiFeIc9TVPC6b4nbqKqVz4vj
+ccweGyBECMB6tkD9xOQ14R0WHNC8K47Wcdk=
+-----END CERTIFICATE-----
+
+AddTrust External Root
+======================
+-----BEGIN CERTIFICATE-----
+MIIENjCCAx6gAwIBAgIBATANBgkqhkiG9w0BAQUFADBvMQswCQYDVQQGEwJTRTEUMBIGA1UEChML
+QWRkVHJ1c3QgQUIxJjAkBgNVBAsTHUFkZFRydXN0IEV4dGVybmFsIFRUUCBOZXR3b3JrMSIwIAYD
+VQQDExlBZGRUcnVzdCBFeHRlcm5hbCBDQSBSb290MB4XDTAwMDUzMDEwNDgzOFoXDTIwMDUzMDEw
+NDgzOFowbzELMAkGA1UEBhMCU0UxFDASBgNVBAoTC0FkZFRydXN0IEFCMSYwJAYDVQQLEx1BZGRU
+cnVzdCBFeHRlcm5hbCBUVFAgTmV0d29yazEiMCAGA1UEAxMZQWRkVHJ1c3QgRXh0ZXJuYWwgQ0Eg
+Um9vdDCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBALf3GjPm8gAELTngTlvtH7xsD821
++iO2zt6bETOXpClMfZOfvUq8k+0DGuOPz+VtUFrWlymUWoCwSXrbLpX9uMq/NzgtHj6RQa1wVsfw
+Tz/oMp50ysiQVOnGXw94nZpAPA6sYapeFI+eh6FqUNzXmk6vBbOmcZSccbNQYArHE504B4YCqOmo
+aSYYkKtMsE8jqzpPhNjfzp/haW+710LXa0Tkx63ubUFfclpxCDezeWWkWaCUN/cALw3CknLa0Dhy
+2xSoRcRdKn23tNbE7qzNE0S3ySvdQwAl+mG5aWpYIxG3pzOPVnVZ9c0p10a3CitlttNCbxWyuHv7
+7+ldU9U0WicCAwEAAaOB3DCB2TAdBgNVHQ4EFgQUrb2YejS0Jvf6xCZU7wO94CTLVBowCwYDVR0P
+BAQDAgEGMA8GA1UdEwEB/wQFMAMBAf8wgZkGA1UdIwSBkTCBjoAUrb2YejS0Jvf6xCZU7wO94CTL
+VBqhc6RxMG8xCzAJBgNVBAYTAlNFMRQwEgYDVQQKEwtBZGRUcnVzdCBBQjEmMCQGA1UECxMdQWRk
+VHJ1c3QgRXh0ZXJuYWwgVFRQIE5ldHdvcmsxIjAgBgNVBAMTGUFkZFRydXN0IEV4dGVybmFsIENB
+IFJvb3SCAQEwDQYJKoZIhvcNAQEFBQADggEBALCb4IUlwtYj4g+WBpKdQZic2YR5gdkeWxQHIzZl
+j7DYd7usQWxHYINRsPkyPef89iYTx4AWpb9a/IfPeHmJIZriTAcKhjW88t5RxNKWt9x+Tu5w/Rw5
+6wwCURQtjr0W4MHfRnXnJK3s9EK0hZNwEGe6nQY1ShjTK3rMUUKhemPR5ruhxSvCNr4TDea9Y355
+e6cJDUCrat2PisP29owaQgVR1EX1n6diIWgVIEM8med8vSTYqZEXc4g/VhsxOBi0cQ+azcgOno4u
+G+GMmIPLHzHxREzGBHNJdmAPx/i9F4BrLunMTA5amnkPIAou1Z5jJh5VkpTYghdae9C8x49OhgQ=
+-----END CERTIFICATE-----
+
+AddTrust Public Services Root
+=============================
+-----BEGIN CERTIFICATE-----
+MIIEFTCCAv2gAwIBAgIBATANBgkqhkiG9w0BAQUFADBkMQswCQYDVQQGEwJTRTEUMBIGA1UEChML
+QWRkVHJ1c3QgQUIxHTAbBgNVBAsTFEFkZFRydXN0IFRUUCBOZXR3b3JrMSAwHgYDVQQDExdBZGRU
+cnVzdCBQdWJsaWMgQ0EgUm9vdDAeFw0wMDA1MzAxMDQxNTBaFw0yMDA1MzAxMDQxNTBaMGQxCzAJ
+BgNVBAYTAlNFMRQwEgYDVQQKEwtBZGRUcnVzdCBBQjEdMBsGA1UECxMUQWRkVHJ1c3QgVFRQIE5l
+dHdvcmsxIDAeBgNVBAMTF0FkZFRydXN0IFB1YmxpYyBDQSBSb290MIIBIjANBgkqhkiG9w0BAQEF
+AAOCAQ8AMIIBCgKCAQEA6Rowj4OIFMEg2Dybjxt+A3S72mnTRqX4jsIMEZBRpS9mVEBV6tsfSlbu
+nyNu9DnLoblv8n75XYcmYZ4c+OLspoH4IcUkzBEMP9smcnrHAZcHF/nXGCwwfQ56HmIexkvA/X1i
+d9NEHif2P0tEs7c42TkfYNVRknMDtABp4/MUTu7R3AnPdzRGULD4EfL+OHn3Bzn+UZKXC1sIXzSG
+Aa2Il+tmzV7R/9x98oTaunet3IAIx6eH1lWfl2royBFkuucZKT8Rs3iQhCBSWxHveNCD9tVIkNAw
+HM+A+WD+eeSI8t0A65RF62WUaUC6wNW0uLp9BBGo6zEFlpROWCGOn9Bg/QIDAQABo4HRMIHOMB0G
+A1UdDgQWBBSBPjfYkrAfd59ctKtzquf2NGAv+jALBgNVHQ8EBAMCAQYwDwYDVR0TAQH/BAUwAwEB
+/zCBjgYDVR0jBIGGMIGDgBSBPjfYkrAfd59ctKtzquf2NGAv+qFopGYwZDELMAkGA1UEBhMCU0Ux
+FDASBgNVBAoTC0FkZFRydXN0IEFCMR0wGwYDVQQLExRBZGRUcnVzdCBUVFAgTmV0d29yazEgMB4G
+A1UEAxMXQWRkVHJ1c3QgUHVibGljIENBIFJvb3SCAQEwDQYJKoZIhvcNAQEFBQADggEBAAP3FUr4
+JNojVhaTdt02KLmuG7jD8WS6IBh4lSknVwW8fCr0uVFV2ocC3g8WFzH4qnkuCRO7r7IgGRLlk/lL
++YPoRNWyQSW/iHVv/xD8SlTQX/D67zZzfRs2RcYhbbQVuE7PnFylPVoAjgbjPGsye/Kf8Lb93/Ao
+GEjwxrzQvzSAlsJKsW2Ox5BF3i9nrEUEo3rcVZLJR2bYGozH7ZxOmuASu7VqTITh4SINhwBk/ox9
+Yjllpu9CtoAlEmEBqCQTcAARJl/6NVDFSMwGR+gn2HCNX2TmoUQmXiLsks3/QppEIW1cxeMiHV9H
+EufOX1362KqxMy3ZdvJOOjMMK7MtkAY=
+-----END CERTIFICATE-----
+
+AddTrust Qualified Certificates Root
+====================================
+-----BEGIN CERTIFICATE-----
+MIIEHjCCAwagAwIBAgIBATANBgkqhkiG9w0BAQUFADBnMQswCQYDVQQGEwJTRTEUMBIGA1UEChML
+QWRkVHJ1c3QgQUIxHTAbBgNVBAsTFEFkZFRydXN0IFRUUCBOZXR3b3JrMSMwIQYDVQQDExpBZGRU
+cnVzdCBRdWFsaWZpZWQgQ0EgUm9vdDAeFw0wMDA1MzAxMDQ0NTBaFw0yMDA1MzAxMDQ0NTBaMGcx
+CzAJBgNVBAYTAlNFMRQwEgYDVQQKEwtBZGRUcnVzdCBBQjEdMBsGA1UECxMUQWRkVHJ1c3QgVFRQ
+IE5ldHdvcmsxIzAhBgNVBAMTGkFkZFRydXN0IFF1YWxpZmllZCBDQSBSb290MIIBIjANBgkqhkiG
+9w0BAQEFAAOCAQ8AMIIBCgKCAQEA5B6a/twJWoekn0e+EV+vhDTbYjx5eLfpMLXsDBwqxBb/4Oxx
+64r1EW7tTw2R0hIYLUkVAcKkIhPHEWT/IhKauY5cLwjPcWqzZwFZ8V1G87B4pfYOQnrjfxvM0PC3
+KP0q6p6zsLkEqv32x7SxuCqg+1jxGaBvcCV+PmlKfw8i2O+tCBGaKZnhqkRFmhJePp1tUvznoD1o
+L/BLcHwTOK28FSXx1s6rosAx1i+f4P8UWfyEk9mHfExUE+uf0S0R+Bg6Ot4l2ffTQO2kBhLEO+GR
+wVY18BTcZTYJbqukB8c10cIDMzZbdSZtQvESa0NvS3GU+jQd7RNuyoB/mC9suWXY6QIDAQABo4HU
+MIHRMB0GA1UdDgQWBBQ5lYtii1zJ1IC6WA+XPxUIQ8yYpzALBgNVHQ8EBAMCAQYwDwYDVR0TAQH/
+BAUwAwEB/zCBkQYDVR0jBIGJMIGGgBQ5lYtii1zJ1IC6WA+XPxUIQ8yYp6FrpGkwZzELMAkGA1UE
+BhMCU0UxFDASBgNVBAoTC0FkZFRydXN0IEFCMR0wGwYDVQQLExRBZGRUcnVzdCBUVFAgTmV0d29y
+azEjMCEGA1UEAxMaQWRkVHJ1c3QgUXVhbGlmaWVkIENBIFJvb3SCAQEwDQYJKoZIhvcNAQEFBQAD
+ggEBABmrder4i2VhlRO6aQTvhsoToMeqT2QbPxj2qC0sVY8FtzDqQmodwCVRLae/DLPt7wh/bDxG
+GuoYQ992zPlmhpwsaPXpF/gxsxjE1kh9I0xowX67ARRvxdlu3rsEQmr49lx95dr6h+sNNVJn0J6X
+dgWTP5XHAeZpVTh/EGGZyeNfpso+gmNIquIISD6q8rKFYqa0p9m9N5xotS1WfbC3P6CxB9bpT9ze
+RXEwMn8bLgn5v1Kh7sKAPgZcLlVAwRv1cEWw3F369nJad9Jjzc9YiQBCYz95OdBEsIJuQRno3eDB
+iFrRHnGTHyQwdOUeqN48Jzd/g66ed8/wMLH/S5noxqE=
+-----END CERTIFICATE-----
+
+Entrust Root Certification Authority
+====================================
+-----BEGIN CERTIFICATE-----
+MIIEkTCCA3mgAwIBAgIERWtQVDANBgkqhkiG9w0BAQUFADCBsDELMAkGA1UEBhMCVVMxFjAUBgNV
+BAoTDUVudHJ1c3QsIEluYy4xOTA3BgNVBAsTMHd3dy5lbnRydXN0Lm5ldC9DUFMgaXMgaW5jb3Jw
+b3JhdGVkIGJ5IHJlZmVyZW5jZTEfMB0GA1UECxMWKGMpIDIwMDYgRW50cnVzdCwgSW5jLjEtMCsG
+A1UEAxMkRW50cnVzdCBSb290IENlcnRpZmljYXRpb24gQXV0aG9yaXR5MB4XDTA2MTEyNzIwMjM0
+MloXDTI2MTEyNzIwNTM0MlowgbAxCzAJBgNVBAYTAlVTMRYwFAYDVQQKEw1FbnRydXN0LCBJbmMu
+MTkwNwYDVQQLEzB3d3cuZW50cnVzdC5uZXQvQ1BTIGlzIGluY29ycG9yYXRlZCBieSByZWZlcmVu
+Y2UxHzAdBgNVBAsTFihjKSAyMDA2IEVudHJ1c3QsIEluYy4xLTArBgNVBAMTJEVudHJ1c3QgUm9v
+dCBDZXJ0aWZpY2F0aW9uIEF1dGhvcml0eTCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEB
+ALaVtkNC+sZtKm9I35RMOVcF7sN5EUFoNu3s/poBj6E4KPz3EEZmLk0eGrEaTsbRwJWIsMn/MYsz
+A9u3g3s+IIRe7bJWKKf44LlAcTfFy0cOlypowCKVYhXbR9n10Cv/gkvJrT7eTNuQgFA/CYqEAOww
+Cj0Yzfv9KlmaI5UXLEWeH25DeW0MXJj+SKfFI0dcXv1u5x609mhF0YaDW6KKjbHjKYD+JXGIrb68
+j6xSlkuqUY3kEzEZ6E5Nn9uss2rVvDlUccp6en+Q3X0dgNmBu1kmwhH+5pPi94DkZfs0Nw4pgHBN
+rziGLp5/V6+eF67rHMsoIV+2HNjnogQi+dPa2MsCAwEAAaOBsDCBrTAOBgNVHQ8BAf8EBAMCAQYw
+DwYDVR0TAQH/BAUwAwEB/zArBgNVHRAEJDAigA8yMDA2MTEyNzIwMjM0MlqBDzIwMjYxMTI3MjA1
+MzQyWjAfBgNVHSMEGDAWgBRokORnpKZTgMeGZqTx90tD+4S9bTAdBgNVHQ4EFgQUaJDkZ6SmU4DH
+hmak8fdLQ/uEvW0wHQYJKoZIhvZ9B0EABBAwDhsIVjcuMTo0LjADAgSQMA0GCSqGSIb3DQEBBQUA
+A4IBAQCT1DCw1wMgKtD5Y+iRDAUgqV8ZyntyTtSx29CW+1RaGSwMCPeyvIWonX9tO1KzKtvn1ISM
+Y/YPyyYBkVBs9F8U4pN0wBOeMDpQ47RgxRzwIkSNcUesyBrJ6ZuaAGAT/3B+XxFNSRuzFVJ7yVTa
+v52Vr2ua2J7p8eRDjeIRRDq/r72DQnNSi6q7pynP9WQcCk3RvKqsnyrQ/39/2n3qse0wJcGE2jTS
+W3iDVuycNsMm4hH2Z0kdkquM++v/eu6FSqdQgPCnXEqULl8FmTxSQeDNtGPPAUO6nIPcj2A781q0
+tHuu2guQOHXvgR1m0vdXcDazv/wor3ElhVsT/h5/WrQ8
+-----END CERTIFICATE-----
+
+RSA Security 2048 v3
+====================
+-----BEGIN CERTIFICATE-----
+MIIDYTCCAkmgAwIBAgIQCgEBAQAAAnwAAAAKAAAAAjANBgkqhkiG9w0BAQUFADA6MRkwFwYDVQQK
+ExBSU0EgU2VjdXJpdHkgSW5jMR0wGwYDVQQLExRSU0EgU2VjdXJpdHkgMjA0OCBWMzAeFw0wMTAy
+MjIyMDM5MjNaFw0yNjAyMjIyMDM5MjNaMDoxGTAXBgNVBAoTEFJTQSBTZWN1cml0eSBJbmMxHTAb
+BgNVBAsTFFJTQSBTZWN1cml0eSAyMDQ4IFYzMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKC
+AQEAt49VcdKA3XtpeafwGFAyPGJn9gqVB93mG/Oe2dJBVGutn3y+Gc37RqtBaB4Y6lXIL5F4iSj7
+Jylg/9+PjDvJSZu1pJTOAeo+tWN7fyb9Gd3AIb2E0S1PRsNO3Ng3OTsor8udGuorryGlwSMiuLgb
+WhOHV4PR8CDn6E8jQrAApX2J6elhc5SYcSa8LWrg903w8bYqODGBDSnhAMFRD0xS+ARaqn1y07iH
+KrtjEAMqs6FPDVpeRrc9DvV07Jmf+T0kgYim3WBU6JU2PcYJk5qjEoAAVZkZR73QpXzDuvsf9/UP
++Ky5tfQ3mBMY3oVbtwyCO4dvlTlYMNpuAWgXIszACwIDAQABo2MwYTAPBgNVHRMBAf8EBTADAQH/
+MA4GA1UdDwEB/wQEAwIBBjAfBgNVHSMEGDAWgBQHw1EwpKrpRa41JPr/JCwz0LGdjDAdBgNVHQ4E
+FgQUB8NRMKSq6UWuNST6/yQsM9CxnYwwDQYJKoZIhvcNAQEFBQADggEBAF8+hnZuuDU8TjYcHnmY
+v/3VEhF5Ug7uMYm83X/50cYVIeiKAVQNOvtUudZj1LGqlk2iQk3UUx+LEN5/Zb5gEydxiKRz44Rj
+0aRV4VCT5hsOedBnvEbIvz8XDZXmxpBp3ue0L96VfdASPz0+f00/FGj1EVDVwfSQpQgdMWD/YIwj
+VAqv/qFuxdF6Kmh4zx6CCiC0H63lhbJqaHVOrSU3lIW+vaHU6rcMSzyd6BIA8F+sDeGscGNz9395
+nzIlQnQFgCi/vcEkllgVsRch6YlL2weIZ/QVrXA+L02FO8K32/6YaCOJ4XQP3vTFhGMpG8zLB8kA
+pKnXwiJPZ9d37CAFYd4=
+-----END CERTIFICATE-----
+
+GeoTrust Global CA
+==================
+-----BEGIN CERTIFICATE-----
+MIIDVDCCAjygAwIBAgIDAjRWMA0GCSqGSIb3DQEBBQUAMEIxCzAJBgNVBAYTAlVTMRYwFAYDVQQK
+Ew1HZW9UcnVzdCBJbmMuMRswGQYDVQQDExJHZW9UcnVzdCBHbG9iYWwgQ0EwHhcNMDIwNTIxMDQw
+MDAwWhcNMjIwNTIxMDQwMDAwWjBCMQswCQYDVQQGEwJVUzEWMBQGA1UEChMNR2VvVHJ1c3QgSW5j
+LjEbMBkGA1UEAxMSR2VvVHJ1c3QgR2xvYmFsIENBMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIB
+CgKCAQEA2swYYzD99BcjGlZ+W988bDjkcbd4kdS8odhM+KhDtgPpTSEHCIjaWC9mOSm9BXiLnTjo
+BbdqfnGk5sRgprDvgOSJKA+eJdbtg/OtppHHmMlCGDUUna2YRpIuT8rxh0PBFpVXLVDviS2Aelet
+8u5fa9IAjbkU+BQVNdnARqN7csiRv8lVK83Qlz6cJmTM386DGXHKTubU1XupGc1V3sjs0l44U+Vc
+T4wt/lAjNvxm5suOpDkZALeVAjmRCw7+OC7RHQWa9k0+bw8HHa8sHo9gOeL6NlMTOdReJivbPagU
+vTLrGAMoUgRx5aszPeE4uwc2hGKceeoWMPRfwCvocWvk+QIDAQABo1MwUTAPBgNVHRMBAf8EBTAD
+AQH/MB0GA1UdDgQWBBTAephojYn7qwVkDBF9qn1luMrMTjAfBgNVHSMEGDAWgBTAephojYn7qwVk
+DBF9qn1luMrMTjANBgkqhkiG9w0BAQUFAAOCAQEANeMpauUvXVSOKVCUn5kaFOSPeCpilKInZ57Q
+zxpeR+nBsqTP3UEaBU6bS+5Kb1VSsyShNwrrZHYqLizz/Tt1kL/6cdjHPTfStQWVYrmm3ok9Nns4
+d0iXrKYgjy6myQzCsplFAMfOEVEiIuCl6rYVSAlk6l5PdPcFPseKUgzbFbS9bZvlxrFUaKnjaZC2
+mqUPuLk/IH2uSrW4nOQdtqvmlKXBx4Ot2/Unhw4EbNX/3aBd7YdStysVAq45pmp06drE57xNNB6p
+XE0zX5IJL4hmXXeXxx12E6nV5fEWCRE11azbJHFwLJhWC9kXtNHjUStedejV0NxPNO3CBWaAocvm
+Mw==
+-----END CERTIFICATE-----
+
+GeoTrust Global CA 2
+====================
+-----BEGIN CERTIFICATE-----
+MIIDZjCCAk6gAwIBAgIBATANBgkqhkiG9w0BAQUFADBEMQswCQYDVQQGEwJVUzEWMBQGA1UEChMN
+R2VvVHJ1c3QgSW5jLjEdMBsGA1UEAxMUR2VvVHJ1c3QgR2xvYmFsIENBIDIwHhcNMDQwMzA0MDUw
+MDAwWhcNMTkwMzA0MDUwMDAwWjBEMQswCQYDVQQGEwJVUzEWMBQGA1UEChMNR2VvVHJ1c3QgSW5j
+LjEdMBsGA1UEAxMUR2VvVHJ1c3QgR2xvYmFsIENBIDIwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAw
+ggEKAoIBAQDvPE1APRDfO1MA4Wf+lGAVPoWI8YkNkMgoI5kF6CsgncbzYEbYwbLVjDHZ3CB5JIG/
+NTL8Y2nbsSpr7iFY8gjpeMtvy/wWUsiRxP89c96xPqfCfWbB9X5SJBri1WeR0IIQ13hLTytCOb1k
+LUCgsBDTOEhGiKEMuzozKmKY+wCdE1l/bztyqu6mD4b5BWHqZ38MN5aL5mkWRxHCJ1kDs6ZgwiFA
+Vvqgx306E+PsV8ez1q6diYD3Aecs9pYrEw15LNnA5IZ7S4wMcoKK+xfNAGw6EzywhIdLFnopsk/b
+HdQL82Y3vdj2V7teJHq4PIu5+pIaGoSe2HSPqht/XvT+RSIhAgMBAAGjYzBhMA8GA1UdEwEB/wQF
+MAMBAf8wHQYDVR0OBBYEFHE4NvICMVNHK266ZUapEBVYIAUJMB8GA1UdIwQYMBaAFHE4NvICMVNH
+K266ZUapEBVYIAUJMA4GA1UdDwEB/wQEAwIBhjANBgkqhkiG9w0BAQUFAAOCAQEAA/e1K6tdEPx7
+srJerJsOflN4WT5CBP51o62sgU7XAotexC3IUnbHLB/8gTKY0UvGkpMzNTEv/NgdRN3ggX+d6Yvh
+ZJFiCzkIjKx0nVnZellSlxG5FntvRdOW2TF9AjYPnDtuzywNA0ZF66D0f0hExghAzN4bcLUprbqL
+OzRldRtxIR0sFAqwlpW41uryZfspuk/qkZN0abby/+Ea0AzRdoXLiiW9l14sbxWZJue2Kf8i7MkC
+x1YAzUm5s2x7UwQa4qjJqhIFI8LO57sEAszAR6LkxCkvW0VXiVHuPOtSCP8HNR6fNWpHSlaY0VqF
+H4z1Ir+rzoPz4iIprn2DQKi6bA==
+-----END CERTIFICATE-----
+
+GeoTrust Universal CA
+=====================
+-----BEGIN CERTIFICATE-----
+MIIFaDCCA1CgAwIBAgIBATANBgkqhkiG9w0BAQUFADBFMQswCQYDVQQGEwJVUzEWMBQGA1UEChMN
+R2VvVHJ1c3QgSW5jLjEeMBwGA1UEAxMVR2VvVHJ1c3QgVW5pdmVyc2FsIENBMB4XDTA0MDMwNDA1
+MDAwMFoXDTI5MDMwNDA1MDAwMFowRTELMAkGA1UEBhMCVVMxFjAUBgNVBAoTDUdlb1RydXN0IElu
+Yy4xHjAcBgNVBAMTFUdlb1RydXN0IFVuaXZlcnNhbCBDQTCCAiIwDQYJKoZIhvcNAQEBBQADggIP
+ADCCAgoCggIBAKYVVaCjxuAfjJ0hUNfBvitbtaSeodlyWL0AG0y/YckUHUWCq8YdgNY96xCcOq9t
+JPi8cQGeBvV8Xx7BDlXKg5pZMK4ZyzBIle0iN430SppyZj6tlcDgFgDgEB8rMQ7XlFTTQjOgNB0e
+RXbdT8oYN+yFFXoZCPzVx5zw8qkuEKmS5j1YPakWaDwvdSEYfyh3peFhF7em6fgemdtzbvQKoiFs
+7tqqhZJmr/Z6a4LauiIINQ/PQvE1+mrufislzDoR5G2vc7J2Ha3QsnhnGqQ5HFELZ1aD/ThdDc7d
+8Lsrlh/eezJS/R27tQahsiFepdaVaH/wmZ7cRQg+59IJDTWU3YBOU5fXtQlEIGQWFwMCTFMNaN7V
+qnJNk22CDtucvc+081xdVHppCZbW2xHBjXWotM85yM48vCR85mLK4b19p71XZQvk/iXttmkQ3Cga
+Rr0BHdCXteGYO8A3ZNY9lO4L4fUorgtWv3GLIylBjobFS1J72HGrH4oVpjuDWtdYAVHGTEHZf9hB
+Z3KiKN9gg6meyHv8U3NyWfWTehd2Ds735VzZC1U0oqpbtWpU5xPKV+yXbfReBi9Fi1jUIxaS5BZu
+KGNZMN9QAZxjiRqf2xeUgnA3wySemkfWWspOqGmJch+RbNt+nhutxx9z3SxPGWX9f5NAEC7S8O08
+ni4oPmkmM8V7AgMBAAGjYzBhMA8GA1UdEwEB/wQFMAMBAf8wHQYDVR0OBBYEFNq7LqqwDLiIJlF0
+XG0D08DYj3rWMB8GA1UdIwQYMBaAFNq7LqqwDLiIJlF0XG0D08DYj3rWMA4GA1UdDwEB/wQEAwIB
+hjANBgkqhkiG9w0BAQUFAAOCAgEAMXjmx7XfuJRAyXHEqDXsRh3ChfMoWIawC/yOsjmPRFWrZIRc
+aanQmjg8+uUfNeVE44B5lGiku8SfPeE0zTBGi1QrlaXv9z+ZhP015s8xxtxqv6fXIwjhmF7DWgh2
+qaavdy+3YL1ERmrvl/9zlcGO6JP7/TG37FcREUWbMPEaiDnBTzynANXH/KttgCJwpQzgXQQpAvvL
+oJHRfNbDflDVnVi+QTjruXU8FdmbyUqDWcDaU/0zuzYYm4UPFd3uLax2k7nZAY1IEKj79TiG8dsK
+xr2EoyNB3tZ3b4XUhRxQ4K5RirqNPnbiucon8l+f725ZDQbYKxek0nxru18UGkiPGkzns0ccjkxF
+KyDuSN/n3QmOGKjaQI2SJhFTYXNd673nxE0pN2HrrDktZy4W1vUAg4WhzH92xH3kt0tm7wNFYGm2
+DFKWkoRepqO1pD4r2czYG0eq8kTaT/kD6PAUyz/zg97QwVTjt+gKN02LIFkDMBmhLMi9ER/frslK
+xfMnZmaGrGiR/9nmUxwPi1xpZQomyB40w11Re9epnAahNt3ViZS82eQtDF4JbAiXfKM9fJP/P6EU
+p8+1Xevb2xzEdt+Iub1FBZUbrvxGakyvSOPOrg/SfuvmbJxPgWp6ZKy7PtXny3YuxadIwVyQD8vI
+P/rmMuGNG2+k5o7Y+SlIis5z/iw=
+-----END CERTIFICATE-----
+
+GeoTrust Universal CA 2
+=======================
+-----BEGIN CERTIFICATE-----
+MIIFbDCCA1SgAwIBAgIBATANBgkqhkiG9w0BAQUFADBHMQswCQYDVQQGEwJVUzEWMBQGA1UEChMN
+R2VvVHJ1c3QgSW5jLjEgMB4GA1UEAxMXR2VvVHJ1c3QgVW5pdmVyc2FsIENBIDIwHhcNMDQwMzA0
+MDUwMDAwWhcNMjkwMzA0MDUwMDAwWjBHMQswCQYDVQQGEwJVUzEWMBQGA1UEChMNR2VvVHJ1c3Qg
+SW5jLjEgMB4GA1UEAxMXR2VvVHJ1c3QgVW5pdmVyc2FsIENBIDIwggIiMA0GCSqGSIb3DQEBAQUA
+A4ICDwAwggIKAoICAQCzVFLByT7y2dyxUxpZKeexw0Uo5dfR7cXFS6GqdHtXr0om/Nj1XqduGdt0
+DE81WzILAePb63p3NeqqWuDW6KFXlPCQo3RWlEQwAx5cTiuFJnSCegx2oG9NzkEtoBUGFF+3Qs17
+j1hhNNwqCPkuwwGmIkQcTAeC5lvO0Ep8BNMZcyfwqph/Lq9O64ceJHdqXbboW0W63MOhBW9Wjo8Q
+JqVJwy7XQYci4E+GymC16qFjwAGXEHm9ADwSbSsVsaxLse4YuU6W3Nx2/zu+z18DwPw76L5GG//a
+QMJS9/7jOvdqdzXQ2o3rXhhqMcceujwbKNZrVMaqW9eiLBsZzKIC9ptZvTdrhrVtgrrY6slWvKk2
+WP0+GfPtDCapkzj4T8FdIgbQl+rhrcZV4IErKIM6+vR7IVEAvlI4zs1meaj0gVbi0IMJR1FbUGrP
+20gaXT73y/Zl92zxlfgCOzJWgjl6W70viRu/obTo/3+NjN8D8WBOWBFM66M/ECuDmgFz2ZRthAAn
+ZqzwcEAJQpKtT5MNYQlRJNiS1QuUYbKHsu3/mjX/hVTK7URDrBs8FmtISgocQIgfksILAAX/8sgC
+SqSqqcyZlpwvWOB94b67B9xfBHJcMTTD7F8t4D1kkCLm0ey4Lt1ZrtmhN79UNdxzMk+MBB4zsslG
+8dhcyFVQyWi9qLo2CQIDAQABo2MwYTAPBgNVHRMBAf8EBTADAQH/MB0GA1UdDgQWBBR281Xh+qQ2
++/CfXGJx7Tz0RzgQKzAfBgNVHSMEGDAWgBR281Xh+qQ2+/CfXGJx7Tz0RzgQKzAOBgNVHQ8BAf8E
+BAMCAYYwDQYJKoZIhvcNAQEFBQADggIBAGbBxiPz2eAubl/oz66wsCVNK/g7WJtAJDday6sWSf+z
+dXkzoS9tcBc0kf5nfo/sm+VegqlVHy/c1FEHEv6sFj4sNcZj/NwQ6w2jqtB8zNHQL1EuxBRa3ugZ
+4T7GzKQp5y6EqgYweHZUcyiYWTjgAA1i00J9IZ+uPTqM1fp3DRgrFg5fNuH8KrUwJM/gYwx7WBr+
+mbpCErGR9Hxo4sjoryzqyX6uuyo9DRXcNJW2GHSoag/HtPQTxORb7QrSpJdMKu0vbBKJPfEncKpq
+A1Ihn0CoZ1Dy81of398j9tx4TuaYT1U6U+Pv8vSfx3zYWK8pIpe44L2RLrB27FcRz+8pRPPphXpg
+Y+RdM4kX2TGq2tbzGDVyz4crL2MjhF2EjD9XoIj8mZEoJmmZ1I+XRL6O1UixpCgp8RW04eWe3fiP
+pm8m1wk8OhwRDqZsN/etRIcsKMfYdIKz0G9KV7s1KSegi+ghp4dkNl3M2Basx7InQJJVOCiNUW7d
+FGdTbHFcJoRNdVq2fmBWqU2t+5sel/MN2dKXVHfaPRK34B7vCAas+YWH6aLcr34YEoP9VhdBLtUp
+gn2Z9DH2canPLAEnpQW5qrJITirvn5NSUZU8UnOOVkwXQMAJKOSLakhT2+zNVVXxxvjpoixMptEm
+X36vWkzaH6byHCx+rgIW0lbQL1dTR+iS
+-----END CERTIFICATE-----
+
+America Online Root Certification Authority 1
+=============================================
+-----BEGIN CERTIFICATE-----
+MIIDpDCCAoygAwIBAgIBATANBgkqhkiG9w0BAQUFADBjMQswCQYDVQQGEwJVUzEcMBoGA1UEChMT
+QW1lcmljYSBPbmxpbmUgSW5jLjE2MDQGA1UEAxMtQW1lcmljYSBPbmxpbmUgUm9vdCBDZXJ0aWZp
+Y2F0aW9uIEF1dGhvcml0eSAxMB4XDTAyMDUyODA2MDAwMFoXDTM3MTExOTIwNDMwMFowYzELMAkG
+A1UEBhMCVVMxHDAaBgNVBAoTE0FtZXJpY2EgT25saW5lIEluYy4xNjA0BgNVBAMTLUFtZXJpY2Eg
+T25saW5lIFJvb3QgQ2VydGlmaWNhdGlvbiBBdXRob3JpdHkgMTCCASIwDQYJKoZIhvcNAQEBBQAD
+ggEPADCCAQoCggEBAKgv6KRpBgNHw+kqmP8ZonCaxlCyfqXfaE0bfA+2l2h9LaaLl+lkhsmj76CG
+v2BlnEtUiMJIxUo5vxTjWVXlGbR0yLQFOVwWpeKVBeASrlmLojNoWBym1BW32J/X3HGrfpq/m44z
+DyL9Hy7nBzbvYjnF3cu6JRQj3gzGPTzOggjmZj7aUTsWOqMFf6Dch9Wc/HKpoH145LcxVR5lu9Rh
+sCFg7RAycsWSJR74kEoYeEfffjA3PlAb2xzTa5qGUwew76wGePiEmf4hjUyAtgyC9mZweRrTT6PP
+8c9GsEsPPt2IYriMqQkoO3rHl+Ee5fSfwMCuJKDIodkP1nsmgmkyPacCAwEAAaNjMGEwDwYDVR0T
+AQH/BAUwAwEB/zAdBgNVHQ4EFgQUAK3Zo/Z59m50qX8zPYEX10zPM94wHwYDVR0jBBgwFoAUAK3Z
+o/Z59m50qX8zPYEX10zPM94wDgYDVR0PAQH/BAQDAgGGMA0GCSqGSIb3DQEBBQUAA4IBAQB8itEf
+GDeC4Liwo+1WlchiYZwFos3CYiZhzRAW18y0ZTTQEYqtqKkFZu90821fnZmv9ov761KyBZiibyrF
+VL0lvV+uyIbqRizBs73B6UlwGBaXCBOMIOAbLjpHyx7kADCVW/RFo8AasAFOq73AI25jP4BKxQft
+3OJvx8Fi8eNy1gTIdGcL+oiroQHIb/AUr9KZzVGTfu0uOMe9zkZQPXLjeSWdm4grECDdpbgyn43g
+Kd8hdIaC2y+CMMbHNYaz+ZZfRtsMRf3zUMNvxsNIrUam4SdHCh0Om7bCd39j8uB9Gr784N/Xx6ds
+sPmuujz9dLQR6FgNgLzTqIA6me11zEZ7
+-----END CERTIFICATE-----
+
+America Online Root Certification Authority 2
+=============================================
+-----BEGIN CERTIFICATE-----
+MIIFpDCCA4ygAwIBAgIBATANBgkqhkiG9w0BAQUFADBjMQswCQYDVQQGEwJVUzEcMBoGA1UEChMT
+QW1lcmljYSBPbmxpbmUgSW5jLjE2MDQGA1UEAxMtQW1lcmljYSBPbmxpbmUgUm9vdCBDZXJ0aWZp
+Y2F0aW9uIEF1dGhvcml0eSAyMB4XDTAyMDUyODA2MDAwMFoXDTM3MDkyOTE0MDgwMFowYzELMAkG
+A1UEBhMCVVMxHDAaBgNVBAoTE0FtZXJpY2EgT25saW5lIEluYy4xNjA0BgNVBAMTLUFtZXJpY2Eg
+T25saW5lIFJvb3QgQ2VydGlmaWNhdGlvbiBBdXRob3JpdHkgMjCCAiIwDQYJKoZIhvcNAQEBBQAD
+ggIPADCCAgoCggIBAMxBRR3pPU0Q9oyxQcngXssNt79Hc9PwVU3dxgz6sWYFas14tNwC206B89en
+fHG8dWOgXeMHDEjsJcQDIPT/DjsS/5uN4cbVG7RtIuOx238hZK+GvFciKtZHgVdEglZTvYYUAQv8
+f3SkWq7xuhG1m1hagLQ3eAkzfDJHA1zEpYNI9FdWboE2JxhP7JsowtS013wMPgwr38oE18aO6lhO
+qKSlGBxsRZijQdEt0sdtjRnxrXm3gT+9BoInLRBYBbV4Bbkv2wxrkJB+FFk4u5QkE+XRnRTf04JN
+RvCAOVIyD+OEsnpD8l7eXz8d3eOyG6ChKiMDbi4BFYdcpnV1x5dhvt6G3NRI270qv0pV2uh9UPu0
+gBe4lL8BPeraunzgWGcXuVjgiIZGZ2ydEEdYMtA1fHkqkKJaEBEjNa0vzORKW6fIJ/KD3l67Xnfn
+6KVuY8INXWHQjNJsWiEOyiijzirplcdIz5ZvHZIlyMbGwcEMBawmxNJ10uEqZ8A9W6Wa6897Gqid
+FEXlD6CaZd4vKL3Ob5Rmg0gp2OpljK+T2WSfVVcmv2/LNzGZo2C7HK2JNDJiuEMhBnIMoVxtRsX6
+Kc8w3onccVvdtjc+31D1uAclJuW8tf48ArO3+L5DwYcRlJ4jbBeKuIonDFRH8KmzwICMoCfrHRnj
+B453cMor9H124HhnAgMBAAGjYzBhMA8GA1UdEwEB/wQFMAMBAf8wHQYDVR0OBBYEFE1FwWg4u3Op
+aaEg5+31IqEjFNeeMB8GA1UdIwQYMBaAFE1FwWg4u3OpaaEg5+31IqEjFNeeMA4GA1UdDwEB/wQE
+AwIBhjANBgkqhkiG9w0BAQUFAAOCAgEAZ2sGuV9FOypLM7PmG2tZTiLMubekJcmnxPBUlgtk87FY
+T15R/LKXeydlwuXK5w0MJXti4/qftIe3RUavg6WXSIylvfEWK5t2LHo1YGwRgJfMqZJS5ivmae2p
++DYtLHe/YUjRYwu5W1LtGLBDQiKmsXeu3mnFzcccobGlHBD7GL4acN3Bkku+KVqdPzW+5X1R+FXg
+JXUjhx5c3LqdsKyzadsXg8n33gy8CNyRnqjQ1xU3c6U1uPx+xURABsPr+CKAXEfOAuMRn0T//Zoy
+zH1kUQ7rVyZ2OuMeIjzCpjbdGe+n/BLzJsBZMYVMnNjP36TMzCmT/5RtdlwTCJfy7aULTd3oyWgO
+ZtMADjMSW7yV5TKQqLPGbIOtd+6Lfn6xqavT4fG2wLHqiMDn05DpKJKUe2h7lyoKZy2FAjgQ5ANh
+1NolNscIWC2hp1GvMApJ9aZphwctREZ2jirlmjvXGKL8nDgQzMY70rUXOm/9riW99XJZZLF0Kjhf
+GEzfz3EEWjbUvy+ZnOjZurGV5gJLIaFb1cFPj65pbVPbAZO1XB4Y3WRayhgoPmMEEf0cjQAPuDff
+Z4qdZqkCapH/E8ovXYO8h5Ns3CRRFgQlZvqz2cK6Kb6aSDiCmfS/O0oxGfm/jiEzFMpPVF/7zvuP
+cX/9XhmgD0uRuMRUvAawRY8mkaKO/qk=
+-----END CERTIFICATE-----
+
+Visa eCommerce Root
+===================
+-----BEGIN CERTIFICATE-----
+MIIDojCCAoqgAwIBAgIQE4Y1TR0/BvLB+WUF1ZAcYjANBgkqhkiG9w0BAQUFADBrMQswCQYDVQQG
+EwJVUzENMAsGA1UEChMEVklTQTEvMC0GA1UECxMmVmlzYSBJbnRlcm5hdGlvbmFsIFNlcnZpY2Ug
+QXNzb2NpYXRpb24xHDAaBgNVBAMTE1Zpc2EgZUNvbW1lcmNlIFJvb3QwHhcNMDIwNjI2MDIxODM2
+WhcNMjIwNjI0MDAxNjEyWjBrMQswCQYDVQQGEwJVUzENMAsGA1UEChMEVklTQTEvMC0GA1UECxMm
+VmlzYSBJbnRlcm5hdGlvbmFsIFNlcnZpY2UgQXNzb2NpYXRpb24xHDAaBgNVBAMTE1Zpc2EgZUNv
+bW1lcmNlIFJvb3QwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQCvV95WHm6h2mCxlCfL
+F9sHP4CFT8icttD0b0/Pmdjh28JIXDqsOTPHH2qLJj0rNfVIsZHBAk4ElpF7sDPwsRROEW+1QK8b
+RaVK7362rPKgH1g/EkZgPI2h4H3PVz4zHvtH8aoVlwdVZqW1LS7YgFmypw23RuwhY/81q6UCzyr0
+TP579ZRdhE2o8mCP2w4lPJ9zcc+U30rq299yOIzzlr3xF7zSujtFWsan9sYXiwGd/BmoKoMWuDpI
+/k4+oKsGGelT84ATB+0tvz8KPFUgOSwsAGl0lUq8ILKpeeUYiZGo3BxN77t+Nwtd/jmliFKMAGzs
+GHxBvfaLdXe6YJ2E5/4tAgMBAAGjQjBAMA8GA1UdEwEB/wQFMAMBAf8wDgYDVR0PAQH/BAQDAgEG
+MB0GA1UdDgQWBBQVOIMPPyw/cDMezUb+B4wg4NfDtzANBgkqhkiG9w0BAQUFAAOCAQEAX/FBfXxc
+CLkr4NWSR/pnXKUTwwMhmytMiUbPWU3J/qVAtmPN3XEolWcRzCSs00Rsca4BIGsDoo8Ytyk6feUW
+YFN4PMCvFYP3j1IzJL1kk5fui/fbGKhtcbP3LBfQdCVp9/5rPJS+TUtBjE7ic9DjkCJzQ83z7+pz
+zkWKsKZJ/0x9nXGIxHYdkFsd7v3M9+79YKWxehZx0RbQfBI8bGmX265fOZpwLwU8GUYEmSA20GBu
+YQa7FkKMcPcw++DbZqMAAb3mLNqRX6BGi01qnD093QVG/na/oAo85ADmJ7f/hC3euiInlhBx6yLt
+398znM/jra6O1I7mT1GvFpLgXPYHDw==
+-----END CERTIFICATE-----
+
+Certum Root CA
+==============
+-----BEGIN CERTIFICATE-----
+MIIDDDCCAfSgAwIBAgIDAQAgMA0GCSqGSIb3DQEBBQUAMD4xCzAJBgNVBAYTAlBMMRswGQYDVQQK
+ExJVbml6ZXRvIFNwLiB6IG8uby4xEjAQBgNVBAMTCUNlcnR1bSBDQTAeFw0wMjA2MTExMDQ2Mzla
+Fw0yNzA2MTExMDQ2MzlaMD4xCzAJBgNVBAYTAlBMMRswGQYDVQQKExJVbml6ZXRvIFNwLiB6IG8u
+by4xEjAQBgNVBAMTCUNlcnR1bSBDQTCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAM6x
+wS7TT3zNJc4YPk/EjG+AanPIW1H4m9LcuwBcsaD8dQPugfCI7iNS6eYVM42sLQnFdvkrOYCJ5JdL
+kKWoePhzQ3ukYbDYWMzhbGZ+nPMJXlVjhNWo7/OxLjBos8Q82KxujZlakE403Daaj4GIULdtlkIJ
+89eVgw1BS7Bqa/j8D35in2fE7SZfECYPCE/wpFcozo+47UX2bu4lXapuOb7kky/ZR6By6/qmW6/K
+Uz/iDsaWVhFu9+lmqSbYf5VT7QqFiLpPKaVCjF62/IUgAKpoC6EahQGcxEZjgoi2IrHu/qpGWX7P
+NSzVttpd90gzFFS269lvzs2I1qsb2pY7HVkCAwEAAaMTMBEwDwYDVR0TAQH/BAUwAwEB/zANBgkq
+hkiG9w0BAQUFAAOCAQEAuI3O7+cUus/usESSbLQ5PqKEbq24IXfS1HeCh+YgQYHu4vgRt2PRFze+
+GXYkHAQaTOs9qmdvLdTN/mUxcMUbpgIKumB7bVjCmkn+YzILa+M6wKyrO7Do0wlRjBCDxjTgxSvg
+GrZgFCdsMneMvLJymM/NzD+5yCRCFNZX/OYmQ6kd5YCQzgNUKD73P9P4Te1qCjqTE5s7FCMTY5w/
+0YcneeVMUeMBrYVdGjux1XMQpNPyvG5k9VpWkKjHDkx0Dy5xO/fIR/RpbxXyEV6DHpx8Uq79AtoS
+qFlnGNu8cN2bsWntgM6JQEhqDjXKKWYVIZQs6GAqm4VKQPNriiTsBhYscw==
+-----END CERTIFICATE-----
+
+Comodo AAA Services root
+========================
+-----BEGIN CERTIFICATE-----
+MIIEMjCCAxqgAwIBAgIBATANBgkqhkiG9w0BAQUFADB7MQswCQYDVQQGEwJHQjEbMBkGA1UECAwS
+R3JlYXRlciBNYW5jaGVzdGVyMRAwDgYDVQQHDAdTYWxmb3JkMRowGAYDVQQKDBFDb21vZG8gQ0Eg
+TGltaXRlZDEhMB8GA1UEAwwYQUFBIENlcnRpZmljYXRlIFNlcnZpY2VzMB4XDTA0MDEwMTAwMDAw
+MFoXDTI4MTIzMTIzNTk1OVowezELMAkGA1UEBhMCR0IxGzAZBgNVBAgMEkdyZWF0ZXIgTWFuY2hl
+c3RlcjEQMA4GA1UEBwwHU2FsZm9yZDEaMBgGA1UECgwRQ29tb2RvIENBIExpbWl0ZWQxITAfBgNV
+BAMMGEFBQSBDZXJ0aWZpY2F0ZSBTZXJ2aWNlczCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoC
+ggEBAL5AnfRu4ep2hxxNRUSOvkbIgwadwSr+GB+O5AL686tdUIoWMQuaBtDFcCLNSS1UY8y2bmhG
+C1Pqy0wkwLxyTurxFa70VJoSCsN6sjNg4tqJVfMiWPPe3M/vg4aijJRPn2jymJBGhCfHdr/jzDUs
+i14HZGWCwEiwqJH5YZ92IFCokcdmtet4YgNW8IoaE+oxox6gmf049vYnMlhvB/VruPsUK6+3qszW
+Y19zjNoFmag4qMsXeDZRrOme9Hg6jc8P2ULimAyrL58OAd7vn5lJ8S3frHRNG5i1R8XlKdH5kBjH
+Ypy+g8cmez6KJcfA3Z3mNWgQIJ2P2N7Sw4ScDV7oL8kCAwEAAaOBwDCBvTAdBgNVHQ4EFgQUoBEK
+Iz6W8Qfs4q8p74Klf9AwpLQwDgYDVR0PAQH/BAQDAgEGMA8GA1UdEwEB/wQFMAMBAf8wewYDVR0f
+BHQwcjA4oDagNIYyaHR0cDovL2NybC5jb21vZG9jYS5jb20vQUFBQ2VydGlmaWNhdGVTZXJ2aWNl
+cy5jcmwwNqA0oDKGMGh0dHA6Ly9jcmwuY29tb2RvLm5ldC9BQUFDZXJ0aWZpY2F0ZVNlcnZpY2Vz
+LmNybDANBgkqhkiG9w0BAQUFAAOCAQEACFb8AvCb6P+k+tZ7xkSAzk/ExfYAWMymtrwUSWgEdujm
+7l3sAg9g1o1QGE8mTgHj5rCl7r+8dFRBv/38ErjHT1r0iWAFf2C3BUrz9vHCv8S5dIa2LX1rzNLz
+Rt0vxuBqw8M0Ayx9lt1awg6nCpnBBYurDC/zXDrPbDdVCYfeU0BsWO/8tqtlbgT2G9w84FoVxp7Z
+8VlIMCFlA2zs6SFz7JsDoeA3raAVGI/6ugLOpyypEBMs1OUIJqsil2D4kF501KKaU73yqWjgom7C
+12yxow+ev+to51byrvLjKzg6CYG1a4XXvi3tPxq3smPi9WIsgtRqAEFQ8TmDn5XpNpaYbg==
+-----END CERTIFICATE-----
+
+Comodo Secure Services root
+===========================
+-----BEGIN CERTIFICATE-----
+MIIEPzCCAyegAwIBAgIBATANBgkqhkiG9w0BAQUFADB+MQswCQYDVQQGEwJHQjEbMBkGA1UECAwS
+R3JlYXRlciBNYW5jaGVzdGVyMRAwDgYDVQQHDAdTYWxmb3JkMRowGAYDVQQKDBFDb21vZG8gQ0Eg
+TGltaXRlZDEkMCIGA1UEAwwbU2VjdXJlIENlcnRpZmljYXRlIFNlcnZpY2VzMB4XDTA0MDEwMTAw
+MDAwMFoXDTI4MTIzMTIzNTk1OVowfjELMAkGA1UEBhMCR0IxGzAZBgNVBAgMEkdyZWF0ZXIgTWFu
+Y2hlc3RlcjEQMA4GA1UEBwwHU2FsZm9yZDEaMBgGA1UECgwRQ29tb2RvIENBIExpbWl0ZWQxJDAi
+BgNVBAMMG1NlY3VyZSBDZXJ0aWZpY2F0ZSBTZXJ2aWNlczCCASIwDQYJKoZIhvcNAQEBBQADggEP
+ADCCAQoCggEBAMBxM4KK0HDrc4eCQNUd5MvJDkKQ+d40uaG6EfQlhfPMcm3ye5drswfxdySRXyWP
+9nQ95IDC+DwN879A6vfIUtFyb+/Iq0G4bi4XKpVpDM3SHpR7LZQdqnXXs5jLrLxkU0C8j6ysNstc
+rbvd4JQX7NFc0L/vpZXJkMWwrPsbQ996CF23uPJAGysnnlDOXmWCiIxe004MeuoIkbY2qitC++rC
+oznl2yY4rYsK7hljxxwk3wN42ubqwUcaCwtGCd0C/N7Lh1/XMGNooa7cMqG6vv5Eq2i2pRcV/b3V
+p6ea5EQz6YiO/O1R65NxTq0B50SOqy3LqP4BSUjwwN3HaNiS/j0CAwEAAaOBxzCBxDAdBgNVHQ4E
+FgQUPNiTiMLAggnMAZkGkyDpnnAJY08wDgYDVR0PAQH/BAQDAgEGMA8GA1UdEwEB/wQFMAMBAf8w
+gYEGA1UdHwR6MHgwO6A5oDeGNWh0dHA6Ly9jcmwuY29tb2RvY2EuY29tL1NlY3VyZUNlcnRpZmlj
+YXRlU2VydmljZXMuY3JsMDmgN6A1hjNodHRwOi8vY3JsLmNvbW9kby5uZXQvU2VjdXJlQ2VydGlm
+aWNhdGVTZXJ2aWNlcy5jcmwwDQYJKoZIhvcNAQEFBQADggEBAIcBbSMdflsXfcFhMs+P5/OKlFlm
+4J4oqF7Tt/Q05qo5spcWxYJvMqTpjOev/e/C6LlLqqP05tqNZSH7uoDrJiiFGv45jN5bBAS0VPmj
+Z55B+glSzAVIqMk/IQQezkhr/IXownuvf7fM+F86/TXGDe+X3EyrEeFryzHRbPtIgKvcnDe4IRRL
+DXE97IMzbtFuMhbsmMcWi1mmNKsFVy2T96oTy9IT4rcuO81rUBcJaD61JlfutuC23bkpgHl9j6Pw
+pCikFcSF9CfUa7/lXORlAnZUtOM3ZiTTGWHIUhDlizeauan5Hb/qmZJhlv8BzaFfDbxxvA6sCx1H
+RR3B7Hzs/Sk=
+-----END CERTIFICATE-----
+
+Comodo Trusted Services root
+============================
+-----BEGIN CERTIFICATE-----
+MIIEQzCCAyugAwIBAgIBATANBgkqhkiG9w0BAQUFADB/MQswCQYDVQQGEwJHQjEbMBkGA1UECAwS
+R3JlYXRlciBNYW5jaGVzdGVyMRAwDgYDVQQHDAdTYWxmb3JkMRowGAYDVQQKDBFDb21vZG8gQ0Eg
+TGltaXRlZDElMCMGA1UEAwwcVHJ1c3RlZCBDZXJ0aWZpY2F0ZSBTZXJ2aWNlczAeFw0wNDAxMDEw
+MDAwMDBaFw0yODEyMzEyMzU5NTlaMH8xCzAJBgNVBAYTAkdCMRswGQYDVQQIDBJHcmVhdGVyIE1h
+bmNoZXN0ZXIxEDAOBgNVBAcMB1NhbGZvcmQxGjAYBgNVBAoMEUNvbW9kbyBDQSBMaW1pdGVkMSUw
+IwYDVQQDDBxUcnVzdGVkIENlcnRpZmljYXRlIFNlcnZpY2VzMIIBIjANBgkqhkiG9w0BAQEFAAOC
+AQ8AMIIBCgKCAQEA33FvNlhTWvI2VFeAxHQIIO0Yfyod5jWaHiWsnOWWfnJSoBVC21ndZHoa0Lh7
+3TkVvFVIxO06AOoxEbrycXQaZ7jPM8yoMa+j49d/vzMtTGo87IvDktJTdyR0nAducPy9C1t2ul/y
+/9c3S0pgePfw+spwtOpZqqPOSC+pw7ILfhdyFgymBwwbOM/JYrc/oJOlh0Hyt3BAd9i+FHzjqMB6
+juljatEPmsbS9Is6FARW1O24zG71++IsWL1/T2sr92AkWCTOJu80kTrV44HQsvAEAtdbtz6SrGsS
+ivnkBbA7kUlcsutT6vifR4buv5XAwAaf0lteERv0xwQ1KdJVXOTt6wIDAQABo4HJMIHGMB0GA1Ud
+DgQWBBTFe1i97doladL3WRaoszLAeydb9DAOBgNVHQ8BAf8EBAMCAQYwDwYDVR0TAQH/BAUwAwEB
+/zCBgwYDVR0fBHwwejA8oDqgOIY2aHR0cDovL2NybC5jb21vZG9jYS5jb20vVHJ1c3RlZENlcnRp
+ZmljYXRlU2VydmljZXMuY3JsMDqgOKA2hjRodHRwOi8vY3JsLmNvbW9kby5uZXQvVHJ1c3RlZENl
+cnRpZmljYXRlU2VydmljZXMuY3JsMA0GCSqGSIb3DQEBBQUAA4IBAQDIk4E7ibSvuIQSTI3S8Ntw
+uleGFTQQuS9/HrCoiWChisJ3DFBKmwCL2Iv0QeLQg4pKHBQGsKNoBXAxMKdTmw7pSqBYaWcOrp32
+pSxBvzwGa+RZzG0Q8ZZvH9/0BAKkn0U+yNj6NkZEUD+Cl5EfKNsYEYwq5GWDVxISjBc/lDb+XbDA
+BHcTuPQV1T84zJQ6VdCsmPW6AF/ghhmBeC8owH7TzEIK9a5QoNE+xqFx7D+gIIxmOom0jtTYsU0l
+R+4viMi14QVFwL4Ucd56/Y57fU0IlqUSc/AtyjcndBInTMu2l+nZrghtWjlA3QVHdWpaIbOjGM9O
+9y5Xt5hwXsjEeLBi
+-----END CERTIFICATE-----
+
+QuoVadis Root CA
+================
+-----BEGIN CERTIFICATE-----
+MIIF0DCCBLigAwIBAgIEOrZQizANBgkqhkiG9w0BAQUFADB/MQswCQYDVQQGEwJCTTEZMBcGA1UE
+ChMQUXVvVmFkaXMgTGltaXRlZDElMCMGA1UECxMcUm9vdCBDZXJ0aWZpY2F0aW9uIEF1dGhvcml0
+eTEuMCwGA1UEAxMlUXVvVmFkaXMgUm9vdCBDZXJ0aWZpY2F0aW9uIEF1dGhvcml0eTAeFw0wMTAz
+MTkxODMzMzNaFw0yMTAzMTcxODMzMzNaMH8xCzAJBgNVBAYTAkJNMRkwFwYDVQQKExBRdW9WYWRp
+cyBMaW1pdGVkMSUwIwYDVQQLExxSb290IENlcnRpZmljYXRpb24gQXV0aG9yaXR5MS4wLAYDVQQD
+EyVRdW9WYWRpcyBSb290IENlcnRpZmljYXRpb24gQXV0aG9yaXR5MIIBIjANBgkqhkiG9w0BAQEF
+AAOCAQ8AMIIBCgKCAQEAv2G1lVO6V/z68mcLOhrfEYBklbTRvM16z/Ypli4kVEAkOPcahdxYTMuk
+J0KX0J+DisPkBgNbAKVRHnAEdOLB1Dqr1607BxgFjv2DrOpm2RgbaIr1VxqYuvXtdj182d6UajtL
+F8HVj71lODqV0D1VNk7feVcxKh7YWWVJWCCYfqtffp/p1k3sg3Spx2zY7ilKhSoGFPlU5tPaZQeL
+YzcS19Dsw3sgQUSj7cugF+FxZc4dZjH3dgEZyH0DWLaVSR2mEiboxgx24ONmy+pdpibu5cxfvWen
+AScOospUxbF6lR1xHkopigPcakXBpBlebzbNw6Kwt/5cOOJSvPhEQ+aQuwIDAQABo4ICUjCCAk4w
+PQYIKwYBBQUHAQEEMTAvMC0GCCsGAQUFBzABhiFodHRwczovL29jc3AucXVvdmFkaXNvZmZzaG9y
+ZS5jb20wDwYDVR0TAQH/BAUwAwEB/zCCARoGA1UdIASCAREwggENMIIBCQYJKwYBBAG+WAABMIH7
+MIHUBggrBgEFBQcCAjCBxxqBxFJlbGlhbmNlIG9uIHRoZSBRdW9WYWRpcyBSb290IENlcnRpZmlj
+YXRlIGJ5IGFueSBwYXJ0eSBhc3N1bWVzIGFjY2VwdGFuY2Ugb2YgdGhlIHRoZW4gYXBwbGljYWJs
+ZSBzdGFuZGFyZCB0ZXJtcyBhbmQgY29uZGl0aW9ucyBvZiB1c2UsIGNlcnRpZmljYXRpb24gcHJh
+Y3RpY2VzLCBhbmQgdGhlIFF1b1ZhZGlzIENlcnRpZmljYXRlIFBvbGljeS4wIgYIKwYBBQUHAgEW
+Fmh0dHA6Ly93d3cucXVvdmFkaXMuYm0wHQYDVR0OBBYEFItLbe3TKbkGGew5Oanwl4Rqy+/fMIGu
+BgNVHSMEgaYwgaOAFItLbe3TKbkGGew5Oanwl4Rqy+/foYGEpIGBMH8xCzAJBgNVBAYTAkJNMRkw
+FwYDVQQKExBRdW9WYWRpcyBMaW1pdGVkMSUwIwYDVQQLExxSb290IENlcnRpZmljYXRpb24gQXV0
+aG9yaXR5MS4wLAYDVQQDEyVRdW9WYWRpcyBSb290IENlcnRpZmljYXRpb24gQXV0aG9yaXR5ggQ6
+tlCLMA4GA1UdDwEB/wQEAwIBBjANBgkqhkiG9w0BAQUFAAOCAQEAitQUtf70mpKnGdSkfnIYj9lo
+fFIk3WdvOXrEql494liwTXCYhGHoG+NpGA7O+0dQoE7/8CQfvbLO9Sf87C9TqnN7Az10buYWnuul
+LsS/VidQK2K6vkscPFVcQR0kvoIgR13VRH56FmjffU1RcHhXHTMe/QKZnAzNCgVPx7uOpHX6Sm2x
+gI4JVrmcGmD+XcHXetwReNDWXcG31a0ymQM6isxUJTkxgXsTIlG6Rmyhu576BGxJJnSP0nPrzDCi
+5upZIof4l/UO/erMkqQWxFIY6iHOsfHmhIHluqmGKPJDWl0Snawe2ajlCmqnf6CHKc/yiU3U7MXi
+5nrQNiOKSnQ2+Q==
+-----END CERTIFICATE-----
+
+QuoVadis Root CA 2
+==================
+-----BEGIN CERTIFICATE-----
+MIIFtzCCA5+gAwIBAgICBQkwDQYJKoZIhvcNAQEFBQAwRTELMAkGA1UEBhMCQk0xGTAXBgNVBAoT
+EFF1b1ZhZGlzIExpbWl0ZWQxGzAZBgNVBAMTElF1b1ZhZGlzIFJvb3QgQ0EgMjAeFw0wNjExMjQx
+ODI3MDBaFw0zMTExMjQxODIzMzNaMEUxCzAJBgNVBAYTAkJNMRkwFwYDVQQKExBRdW9WYWRpcyBM
+aW1pdGVkMRswGQYDVQQDExJRdW9WYWRpcyBSb290IENBIDIwggIiMA0GCSqGSIb3DQEBAQUAA4IC
+DwAwggIKAoICAQCaGMpLlA0ALa8DKYrwD4HIrkwZhR0In6spRIXzL4GtMh6QRr+jhiYaHv5+HBg6
+XJxgFyo6dIMzMH1hVBHL7avg5tKifvVrbxi3Cgst/ek+7wrGsxDp3MJGF/hd/aTa/55JWpzmM+Yk
+lvc/ulsrHHo1wtZn/qtmUIttKGAr79dgw8eTvI02kfN/+NsRE8Scd3bBrrcCaoF6qUWD4gXmuVbB
+lDePSHFjIuwXZQeVikvfj8ZaCuWw419eaxGrDPmF60Tp+ARz8un+XJiM9XOva7R+zdRcAitMOeGy
+lZUtQofX1bOQQ7dsE/He3fbE+Ik/0XX1ksOR1YqI0JDs3G3eicJlcZaLDQP9nL9bFqyS2+r+eXyt
+66/3FsvbzSUr5R/7mp/iUcw6UwxI5g69ybR2BlLmEROFcmMDBOAENisgGQLodKcftslWZvB1Jdxn
+wQ5hYIizPtGo/KPaHbDRsSNU30R2be1B2MGyIrZTHN81Hdyhdyox5C315eXbyOD/5YDXC2Og/zOh
+D7osFRXql7PSorW+8oyWHhqPHWykYTe5hnMz15eWniN9gqRMgeKh0bpnX5UHoycR7hYQe7xFSkyy
+BNKr79X9DFHOUGoIMfmR2gyPZFwDwzqLID9ujWc9Otb+fVuIyV77zGHcizN300QyNQliBJIWENie
+J0f7OyHj+OsdWwIDAQABo4GwMIGtMA8GA1UdEwEB/wQFMAMBAf8wCwYDVR0PBAQDAgEGMB0GA1Ud
+DgQWBBQahGK8SEwzJQTU7tD2A8QZRtGUazBuBgNVHSMEZzBlgBQahGK8SEwzJQTU7tD2A8QZRtGU
+a6FJpEcwRTELMAkGA1UEBhMCQk0xGTAXBgNVBAoTEFF1b1ZhZGlzIExpbWl0ZWQxGzAZBgNVBAMT
+ElF1b1ZhZGlzIFJvb3QgQ0EgMoICBQkwDQYJKoZIhvcNAQEFBQADggIBAD4KFk2fBluornFdLwUv
+Z+YTRYPENvbzwCYMDbVHZF34tHLJRqUDGCdViXh9duqWNIAXINzng/iN/Ae42l9NLmeyhP3ZRPx3
+UIHmfLTJDQtyU/h2BwdBR5YM++CCJpNVjP4iH2BlfF/nJrP3MpCYUNQ3cVX2kiF495V5+vgtJodm
+VjB3pjd4M1IQWK4/YY7yarHvGH5KWWPKjaJW1acvvFYfzznB4vsKqBUsfU16Y8Zsl0Q80m/DShcK
++JDSV6IZUaUtl0HaB0+pUNqQjZRG4T7wlP0QADj1O+hA4bRuVhogzG9Yje0uRY/W6ZM/57Es3zrW
+IozchLsib9D45MY56QSIPMO661V6bYCZJPVsAfv4l7CUW+v90m/xd2gNNWQjrLhVoQPRTUIZ3Ph1
+WVaj+ahJefivDrkRoHy3au000LYmYjgahwz46P0u05B/B5EqHdZ+XIWDmbA4CD/pXvk1B+TJYm5X
+f6dQlfe6yJvmjqIBxdZmv3lh8zwc4bmCXF2gw+nYSL0ZohEUGW6yhhtoPkg3Goi3XZZenMfvJ2II
+4pEZXNLxId26F0KCl3GBUzGpn/Z9Yr9y4aOTHcyKJloJONDO1w2AFrR4pTqHTI2KpdVGl/IsELm8
+VCLAAVBpQ570su9t+Oza8eOx79+Rj1QqCyXBJhnEUhAFZdWCEOrCMc0u
+-----END CERTIFICATE-----
+
+QuoVadis Root CA 3
+==================
+-----BEGIN CERTIFICATE-----
+MIIGnTCCBIWgAwIBAgICBcYwDQYJKoZIhvcNAQEFBQAwRTELMAkGA1UEBhMCQk0xGTAXBgNVBAoT
+EFF1b1ZhZGlzIExpbWl0ZWQxGzAZBgNVBAMTElF1b1ZhZGlzIFJvb3QgQ0EgMzAeFw0wNjExMjQx
+OTExMjNaFw0zMTExMjQxOTA2NDRaMEUxCzAJBgNVBAYTAkJNMRkwFwYDVQQKExBRdW9WYWRpcyBM
+aW1pdGVkMRswGQYDVQQDExJRdW9WYWRpcyBSb290IENBIDMwggIiMA0GCSqGSIb3DQEBAQUAA4IC
+DwAwggIKAoICAQDMV0IWVJzmmNPTTe7+7cefQzlKZbPoFog02w1ZkXTPkrgEQK0CSzGrvI2RaNgg
+DhoB4hp7Thdd4oq3P5kazethq8Jlph+3t723j/z9cI8LoGe+AaJZz3HmDyl2/7FWeUUrH556VOij
+KTVopAFPD6QuN+8bv+OPEKhyq1hX51SGyMnzW9os2l2ObjyjPtr7guXd8lyyBTNvijbO0BNO/79K
+DDRMpsMhvVAEVeuxu537RR5kFd5VAYwCdrXLoT9CabwvvWhDFlaJKjdhkf2mrk7AyxRllDdLkgbv
+BNDInIjbC3uBr7E9KsRlOni27tyAsdLTmZw67mtaa7ONt9XOnMK+pUsvFrGeaDsGb659n/je7Mwp
+p5ijJUMv7/FfJuGITfhebtfZFG4ZM2mnO4SJk8RTVROhUXhA+LjJou57ulJCg54U7QVSWllWp5f8
+nT8KKdjcT5EOE7zelaTfi5m+rJsziO+1ga8bxiJTyPbH7pcUsMV8eFLI8M5ud2CEpukqdiDtWAEX
+MJPpGovgc2PZapKUSU60rUqFxKMiMPwJ7Wgic6aIDFUhWMXhOp8q3crhkODZc6tsgLjoC2SToJyM
+Gf+z0gzskSaHirOi4XCPLArlzW1oUevaPwV/izLmE1xr/l9A4iLItLRkT9a6fUg+qGkM17uGcclz
+uD87nSVL2v9A6wIDAQABo4IBlTCCAZEwDwYDVR0TAQH/BAUwAwEB/zCB4QYDVR0gBIHZMIHWMIHT
+BgkrBgEEAb5YAAMwgcUwgZMGCCsGAQUFBwICMIGGGoGDQW55IHVzZSBvZiB0aGlzIENlcnRpZmlj
+YXRlIGNvbnN0aXR1dGVzIGFjY2VwdGFuY2Ugb2YgdGhlIFF1b1ZhZGlzIFJvb3QgQ0EgMyBDZXJ0
+aWZpY2F0ZSBQb2xpY3kgLyBDZXJ0aWZpY2F0aW9uIFByYWN0aWNlIFN0YXRlbWVudC4wLQYIKwYB
+BQUHAgEWIWh0dHA6Ly93d3cucXVvdmFkaXNnbG9iYWwuY29tL2NwczALBgNVHQ8EBAMCAQYwHQYD
+VR0OBBYEFPLAE+CCQz777i9nMpY1XNu4ywLQMG4GA1UdIwRnMGWAFPLAE+CCQz777i9nMpY1XNu4
+ywLQoUmkRzBFMQswCQYDVQQGEwJCTTEZMBcGA1UEChMQUXVvVmFkaXMgTGltaXRlZDEbMBkGA1UE
+AxMSUXVvVmFkaXMgUm9vdCBDQSAzggIFxjANBgkqhkiG9w0BAQUFAAOCAgEAT62gLEz6wPJv92ZV
+qyM07ucp2sNbtrCD2dDQ4iH782CnO11gUyeim/YIIirnv6By5ZwkajGxkHon24QRiSemd1o417+s
+hvzuXYO8BsbRd2sPbSQvS3pspweWyuOEn62Iix2rFo1bZhfZFvSLgNLd+LJ2w/w4E6oM3kJpK27z
+POuAJ9v1pkQNn1pVWQvVDVJIxa6f8i+AxeoyUDUSly7B4f/xI4hROJ/yZlZ25w9Rl6VSDE1JUZU2
+Pb+iSwwQHYaZTKrzchGT5Or2m9qoXadNt54CrnMAyNojA+j56hl0YgCUyyIgvpSnWbWCar6ZeXqp
+8kokUvd0/bpO5qgdAm6xDYBEwa7TIzdfu4V8K5Iu6H6li92Z4b8nby1dqnuH/grdS/yO9SbkbnBC
+bjPsMZ57k8HkyWkaPcBrTiJt7qtYTcbQQcEr6k8Sh17rRdhs9ZgC06DYVYoGmRmioHfRMJ6szHXu
+g/WwYjnPbFfiTNKRCw51KBuav/0aQ/HKd/s7j2G4aSgWQgRecCocIdiP4b0jWy10QJLZYxkNc91p
+vGJHvOB0K7Lrfb5BG7XARsWhIstfTsEokt4YutUqKLsRixeTmJlglFwjz1onl14LBQaTNx47aTbr
+qZ5hHY8y2o4M1nQ+ewkk2gF3R8Q7zTSMmfXK4SVhM7JZG+Ju1zdXtg2pEto=
+-----END CERTIFICATE-----
+
+Security Communication Root CA
+==============================
+-----BEGIN CERTIFICATE-----
+MIIDWjCCAkKgAwIBAgIBADANBgkqhkiG9w0BAQUFADBQMQswCQYDVQQGEwJKUDEYMBYGA1UEChMP
+U0VDT00gVHJ1c3QubmV0MScwJQYDVQQLEx5TZWN1cml0eSBDb21tdW5pY2F0aW9uIFJvb3RDQTEw
+HhcNMDMwOTMwMDQyMDQ5WhcNMjMwOTMwMDQyMDQ5WjBQMQswCQYDVQQGEwJKUDEYMBYGA1UEChMP
+U0VDT00gVHJ1c3QubmV0MScwJQYDVQQLEx5TZWN1cml0eSBDb21tdW5pY2F0aW9uIFJvb3RDQTEw
+ggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQCzs/5/022x7xZ8V6UMbXaKL0u/ZPtM7orw
+8yl89f/uKuDp6bpbZCKamm8sOiZpUQWZJtzVHGpxxpp9Hp3dfGzGjGdnSj74cbAZJ6kJDKaVv0uM
+DPpVmDvY6CKhS3E4eayXkmmziX7qIWgGmBSWh9JhNrxtJ1aeV+7AwFb9Ms+k2Y7CI9eNqPPYJayX
+5HA49LY6tJ07lyZDo6G8SVlyTCMwhwFY9k6+HGhWZq/NQV3Is00qVUarH9oe4kA92819uZKAnDfd
+DJZkndwi92SL32HeFZRSFaB9UslLqCHJxrHty8OVYNEP8Ktw+N/LTX7s1vqr2b1/VPKl6Xn62dZ2
+JChzAgMBAAGjPzA9MB0GA1UdDgQWBBSgc0mZaNyFW2XjmygvV5+9M7wHSDALBgNVHQ8EBAMCAQYw
+DwYDVR0TAQH/BAUwAwEB/zANBgkqhkiG9w0BAQUFAAOCAQEAaECpqLvkT115swW1F7NgE+vGkl3g
+0dNq/vu+m22/xwVtWSDEHPC32oRYAmP6SBbvT6UL90qY8j+eG61Ha2POCEfrUj94nK9NrvjVT8+a
+mCoQQTlSxN3Zmw7vkwGusi7KaEIkQmywszo+zenaSMQVy+n5Bw+SUEmK3TGXX8npN6o7WWWXlDLJ
+s58+OmJYxUmtYg5xpTKqL8aJdkNAExNnPaJUJRDL8Try2frbSVa7pv6nQTXD4IhhyYjH3zYQIphZ
+6rBK+1YWc26sTfcioU+tHXotRSflMMFe8toTyyVCUZVHA4xsIcx0Qu1T/zOLjw9XARYvz6buyXAi
+FL39vmwLAw==
+-----END CERTIFICATE-----
+
+Sonera Class 2 Root CA
+======================
+-----BEGIN CERTIFICATE-----
+MIIDIDCCAgigAwIBAgIBHTANBgkqhkiG9w0BAQUFADA5MQswCQYDVQQGEwJGSTEPMA0GA1UEChMG
+U29uZXJhMRkwFwYDVQQDExBTb25lcmEgQ2xhc3MyIENBMB4XDTAxMDQwNjA3Mjk0MFoXDTIxMDQw
+NjA3Mjk0MFowOTELMAkGA1UEBhMCRkkxDzANBgNVBAoTBlNvbmVyYTEZMBcGA1UEAxMQU29uZXJh
+IENsYXNzMiBDQTCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAJAXSjWdyvANlsdE+hY3
+/Ei9vX+ALTU74W+oZ6m/AxxNjG8yR9VBaKQTBME1DJqEQ/xcHf+Js+gXGM2RX/uJ4+q/Tl18GybT
+dXnt5oTjV+WtKcT0OijnpXuENmmz/V52vaMtmdOQTiMofRhj8VQ7Jp12W5dCsv+u8E7s3TmVToMG
+f+dJQMjFAbJUWmYdPfz56TwKnoG4cPABi+QjVHzIrviQHgCWctRUz2EjvOr7nQKV0ba5cTppCD8P
+tOFCx4j1P5iop7oc4HFx71hXgVB6XGt0Rg6DA5jDjqhu8nYybieDwnPz3BjotJPqdURrBGAgcVeH
+nfO+oJAjPYok4doh28MCAwEAAaMzMDEwDwYDVR0TAQH/BAUwAwEB/zARBgNVHQ4ECgQISqCqWITT
+XjwwCwYDVR0PBAQDAgEGMA0GCSqGSIb3DQEBBQUAA4IBAQBazof5FnIVV0sd2ZvnoiYw7JNn39Yt
+0jSv9zilzqsWuasvfDXLrNAPtEwr/IDva4yRXzZ299uzGxnq9LIR/WFxRL8oszodv7ND6J+/3DEI
+cbCdjdY0RzKQxmUk96BKfARzjzlvF4xytb1LyHr4e4PDKE6cCepnP7JnBBvDFNr450kkkdAdavph
+Oe9r5yF1BgfYErQhIHBCcYHaPJo2vqZbDWpsmh+Re/n570K6Tk6ezAyNlNzZRZxe7EJQY670XcSx
+EtzKO6gunRRaBXW37Ndj4ro1tgQIkejanZz2ZrUYrAqmVCY0M9IbwdR/GjqOC6oybtv8TyWf2TLH
+llpwrN9M
+-----END CERTIFICATE-----
+
+Staat der Nederlanden Root CA
+=============================
+-----BEGIN CERTIFICATE-----
+MIIDujCCAqKgAwIBAgIEAJiWijANBgkqhkiG9w0BAQUFADBVMQswCQYDVQQGEwJOTDEeMBwGA1UE
+ChMVU3RhYXQgZGVyIE5lZGVybGFuZGVuMSYwJAYDVQQDEx1TdGFhdCBkZXIgTmVkZXJsYW5kZW4g
+Um9vdCBDQTAeFw0wMjEyMTcwOTIzNDlaFw0xNTEyMTYwOTE1MzhaMFUxCzAJBgNVBAYTAk5MMR4w
+HAYDVQQKExVTdGFhdCBkZXIgTmVkZXJsYW5kZW4xJjAkBgNVBAMTHVN0YWF0IGRlciBOZWRlcmxh
+bmRlbiBSb290IENBMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAmNK1URF6gaYUmHFt
+vsznExvWJw56s2oYHLZhWtVhCb/ekBPHZ+7d89rFDBKeNVU+LCeIQGv33N0iYfXCxw719tV2U02P
+jLwYdjeFnejKScfST5gTCaI+Ioicf9byEGW07l8Y1Rfj+MX94p2i71MOhXeiD+EwR+4A5zN9RGca
+C1Hoi6CeUJhoNFIfLm0B8mBF8jHrqTFoKbt6QZ7GGX+UtFE5A3+y3qcym7RHjm+0Sq7lr7HcsBth
+vJly3uSJt3omXdozSVtSnA71iq3DuD3oBmrC1SoLbHuEvVYFy4ZlkuxEK7COudxwC0barbxjiDn6
+22r+I/q85Ej0ZytqERAhSQIDAQABo4GRMIGOMAwGA1UdEwQFMAMBAf8wTwYDVR0gBEgwRjBEBgRV
+HSAAMDwwOgYIKwYBBQUHAgEWLmh0dHA6Ly93d3cucGtpb3ZlcmhlaWQubmwvcG9saWNpZXMvcm9v
+dC1wb2xpY3kwDgYDVR0PAQH/BAQDAgEGMB0GA1UdDgQWBBSofeu8Y6R0E3QA7Jbg0zTBLL9s+DAN
+BgkqhkiG9w0BAQUFAAOCAQEABYSHVXQ2YcG70dTGFagTtJ+k/rvuFbQvBgwp8qiSpGEN/KtcCFtR
+EytNwiphyPgJWPwtArI5fZlmgb9uXJVFIGzmeafR2Bwp/MIgJ1HI8XxdNGdphREwxgDS1/PTfLbw
+MVcoEoJz6TMvplW0C5GUR5z6u3pCMuiufi3IvKwUv9kP2Vv8wfl6leF9fpb8cbDCTMjfRTTJzg3y
+nGQI0DvDKcWy7ZAEwbEpkcUwb8GpcjPM/l0WFywRaed+/sWDCN+83CI6LiBpIzlWYGeQiy52OfsR
+iJf2fL1LuCAWZwWN4jvBcj+UlTfHXbme2JOhF4//DGYVwSR8MnwDHTuhWEUykw==
+-----END CERTIFICATE-----
+
+UTN DATACorp SGC Root CA
+========================
+-----BEGIN CERTIFICATE-----
+MIIEXjCCA0agAwIBAgIQRL4Mi1AAIbQR0ypoBqmtaTANBgkqhkiG9w0BAQUFADCBkzELMAkGA1UE
+BhMCVVMxCzAJBgNVBAgTAlVUMRcwFQYDVQQHEw5TYWx0IExha2UgQ2l0eTEeMBwGA1UEChMVVGhl
+IFVTRVJUUlVTVCBOZXR3b3JrMSEwHwYDVQQLExhodHRwOi8vd3d3LnVzZXJ0cnVzdC5jb20xGzAZ
+BgNVBAMTElVUTiAtIERBVEFDb3JwIFNHQzAeFw05OTA2MjQxODU3MjFaFw0xOTA2MjQxOTA2MzBa
+MIGTMQswCQYDVQQGEwJVUzELMAkGA1UECBMCVVQxFzAVBgNVBAcTDlNhbHQgTGFrZSBDaXR5MR4w
+HAYDVQQKExVUaGUgVVNFUlRSVVNUIE5ldHdvcmsxITAfBgNVBAsTGGh0dHA6Ly93d3cudXNlcnRy
+dXN0LmNvbTEbMBkGA1UEAxMSVVROIC0gREFUQUNvcnAgU0dDMIIBIjANBgkqhkiG9w0BAQEFAAOC
+AQ8AMIIBCgKCAQEA3+5YEKIrblXEjr8uRgnn4AgPLit6E5Qbvfa2gI5lBZMAHryv4g+OGQ0SR+ys
+raP6LnD43m77VkIVni5c7yPeIbkFdicZD0/Ww5y0vpQZY/KmEQrrU0icvvIpOxboGqBMpsn0GFlo
+wHDyUwDAXlCCpVZvNvlK4ESGoE1O1kduSUrLZ9emxAW5jh70/P/N5zbgnAVssjMiFdC04MwXwLLA
+9P4yPykqlXvY8qdOD1R8oQ2AswkDwf9c3V6aPryuvEeKaq5xyh+xKrhfQgUL7EYw0XILyulWbfXv
+33i+Ybqypa4ETLyorGkVl73v67SMvzX41MPRKA5cOp9wGDMgd8SirwIDAQABo4GrMIGoMAsGA1Ud
+DwQEAwIBxjAPBgNVHRMBAf8EBTADAQH/MB0GA1UdDgQWBBRTMtGzz3/64PGgXYVOktKeRR20TzA9
+BgNVHR8ENjA0MDKgMKAuhixodHRwOi8vY3JsLnVzZXJ0cnVzdC5jb20vVVROLURBVEFDb3JwU0dD
+LmNybDAqBgNVHSUEIzAhBggrBgEFBQcDAQYKKwYBBAGCNwoDAwYJYIZIAYb4QgQBMA0GCSqGSIb3
+DQEBBQUAA4IBAQAnNZcAiosovcYzMB4p/OL31ZjUQLtgyr+rFywJNn9Q+kHcrpY6CiM+iVnJowft
+Gzet/Hy+UUla3joKVAgWRcKZsYfNjGjgaQPpxE6YsjuMFrMOoAyYUJuTqXAJyCyjj98C5OBxOvG0
+I3KgqgHf35g+FFCgMSa9KOlaMCZ1+XtgHI3zzVAmbQQnmt/VDUVHKWss5nbZqSl9Mt3JNjy9rjXx
+EZ4du5A/EkdOjtd+D2JzHVImOBwYSf0wdJrE5SIv2MCN7ZF6TACPcn9d2t0bi0Vr591pl6jFVkwP
+DPafepE39peC4N1xaf92P2BNPM/3mfnGV/TJVTl4uix5yaaIK/QI
+-----END CERTIFICATE-----
+
+UTN USERFirst Hardware Root CA
+==============================
+-----BEGIN CERTIFICATE-----
+MIIEdDCCA1ygAwIBAgIQRL4Mi1AAJLQR0zYq/mUK/TANBgkqhkiG9w0BAQUFADCBlzELMAkGA1UE
+BhMCVVMxCzAJBgNVBAgTAlVUMRcwFQYDVQQHEw5TYWx0IExha2UgQ2l0eTEeMBwGA1UEChMVVGhl
+IFVTRVJUUlVTVCBOZXR3b3JrMSEwHwYDVQQLExhodHRwOi8vd3d3LnVzZXJ0cnVzdC5jb20xHzAd
+BgNVBAMTFlVUTi1VU0VSRmlyc3QtSGFyZHdhcmUwHhcNOTkwNzA5MTgxMDQyWhcNMTkwNzA5MTgx
+OTIyWjCBlzELMAkGA1UEBhMCVVMxCzAJBgNVBAgTAlVUMRcwFQYDVQQHEw5TYWx0IExha2UgQ2l0
+eTEeMBwGA1UEChMVVGhlIFVTRVJUUlVTVCBOZXR3b3JrMSEwHwYDVQQLExhodHRwOi8vd3d3LnVz
+ZXJ0cnVzdC5jb20xHzAdBgNVBAMTFlVUTi1VU0VSRmlyc3QtSGFyZHdhcmUwggEiMA0GCSqGSIb3
+DQEBAQUAA4IBDwAwggEKAoIBAQCx98M4P7Sof885glFn0G2f0v9Y8+efK+wNiVSZuTiZFvfgIXlI
+wrthdBKWHTxqctU8EGc6Oe0rE81m65UJM6Rsl7HoxuzBdXmcRl6Nq9Bq/bkqVRcQVLMZ8Jr28bFd
+tqdt++BxF2uiiPsA3/4aMXcMmgF6sTLjKwEHOG7DpV4jvEWbe1DByTCP2+UretNb+zNAHqDVmBe8
+i4fDidNdoI6yqqr2jmmIBsX6iSHzCJ1pLgkzmykNRg+MzEk0sGlRvfkGzWitZky8PqxhvQqIDsjf
+Pe58BEydCl5rkdbux+0ojatNh4lz0G6k0B4WixThdkQDf2Os5M1JnMWS9KsyoUhbAgMBAAGjgbkw
+gbYwCwYDVR0PBAQDAgHGMA8GA1UdEwEB/wQFMAMBAf8wHQYDVR0OBBYEFKFyXyYbKJhDlV0HN9WF
+lp1L0sNFMEQGA1UdHwQ9MDswOaA3oDWGM2h0dHA6Ly9jcmwudXNlcnRydXN0LmNvbS9VVE4tVVNF
+UkZpcnN0LUhhcmR3YXJlLmNybDAxBgNVHSUEKjAoBggrBgEFBQcDAQYIKwYBBQUHAwUGCCsGAQUF
+BwMGBggrBgEFBQcDBzANBgkqhkiG9w0BAQUFAAOCAQEARxkP3nTGmZev/K0oXnWO6y1n7k57K9cM
+//bey1WiCuFMVGWTYGufEpytXoMs61quwOQt9ABjHbjAbPLPSbtNk28GpgoiskliCE7/yMgUsogW
+XecB5BKV5UU0s4tpvc+0hY91UZ59Ojg6FEgSxvunOxqNDYJAB+gECJChicsZUN/KHAG8HQQZexB2
+lzvukJDKxA4fFm517zP4029bHpbj4HR3dHuKom4t3XbWOTCC8KucUvIqx69JXn7HaOWCgchqJ/kn
+iCrVWFCVH/A7HFe7fRQ5YiuayZSSKqMiDP+JJn1fIytH1xUdqWqeUQ0qUZ6B+dQ7XnASfxAynB67
+nfhmqA==
+-----END CERTIFICATE-----
+
+Camerfirma Chambers of Commerce Root
+====================================
+-----BEGIN CERTIFICATE-----
+MIIEvTCCA6WgAwIBAgIBADANBgkqhkiG9w0BAQUFADB/MQswCQYDVQQGEwJFVTEnMCUGA1UEChMe
+QUMgQ2FtZXJmaXJtYSBTQSBDSUYgQTgyNzQzMjg3MSMwIQYDVQQLExpodHRwOi8vd3d3LmNoYW1i
+ZXJzaWduLm9yZzEiMCAGA1UEAxMZQ2hhbWJlcnMgb2YgQ29tbWVyY2UgUm9vdDAeFw0wMzA5MzAx
+NjEzNDNaFw0zNzA5MzAxNjEzNDRaMH8xCzAJBgNVBAYTAkVVMScwJQYDVQQKEx5BQyBDYW1lcmZp
+cm1hIFNBIENJRiBBODI3NDMyODcxIzAhBgNVBAsTGmh0dHA6Ly93d3cuY2hhbWJlcnNpZ24ub3Jn
+MSIwIAYDVQQDExlDaGFtYmVycyBvZiBDb21tZXJjZSBSb290MIIBIDANBgkqhkiG9w0BAQEFAAOC
+AQ0AMIIBCAKCAQEAtzZV5aVdGDDg2olUkfzIx1L4L1DZ77F1c2VHfRtbunXF/KGIJPov7coISjlU
+xFF6tdpg6jg8gbLL8bvZkSM/SAFwdakFKq0fcfPJVD0dBmpAPrMMhe5cG3nCYsS4No41XQEMIwRH
+NaqbYE6gZj3LJgqcQKH0XZi/caulAGgq7YN6D6IUtdQis4CwPAxaUWktWBiP7Zme8a7ileb2R6jW
+DA+wWFjbw2Y3npuRVDM30pQcakjJyfKl2qUMI/cjDpwyVV5xnIQFUZot/eZOKjRa3spAN2cMVCFV
+d9oKDMyXroDclDZK9D7ONhMeU+SsTjoF7Nuucpw4i9A5O4kKPnf+dQIBA6OCAUQwggFAMBIGA1Ud
+EwEB/wQIMAYBAf8CAQwwPAYDVR0fBDUwMzAxoC+gLYYraHR0cDovL2NybC5jaGFtYmVyc2lnbi5v
+cmcvY2hhbWJlcnNyb290LmNybDAdBgNVHQ4EFgQU45T1sU3p26EpW1eLTXYGduHRooowDgYDVR0P
+AQH/BAQDAgEGMBEGCWCGSAGG+EIBAQQEAwIABzAnBgNVHREEIDAegRxjaGFtYmVyc3Jvb3RAY2hh
+bWJlcnNpZ24ub3JnMCcGA1UdEgQgMB6BHGNoYW1iZXJzcm9vdEBjaGFtYmVyc2lnbi5vcmcwWAYD
+VR0gBFEwTzBNBgsrBgEEAYGHLgoDATA+MDwGCCsGAQUFBwIBFjBodHRwOi8vY3BzLmNoYW1iZXJz
+aWduLm9yZy9jcHMvY2hhbWJlcnNyb290Lmh0bWwwDQYJKoZIhvcNAQEFBQADggEBAAxBl8IahsAi
+fJ/7kPMa0QOx7xP5IV8EnNrJpY0nbJaHkb5BkAFyk+cefV/2icZdp0AJPaxJRUXcLo0waLIJuvvD
+L8y6C98/d3tGfToSJI6WjzwFCm/SlCgdbQzALogi1djPHRPH8EjX1wWnz8dHnjs8NMiAT9QUu/wN
+UPf6s+xCX6ndbcj0dc97wXImsQEcXCz9ek60AcUFV7nnPKoF2YjpB0ZBzu9Bga5Y34OirsrXdx/n
+ADydb47kMgkdTXg0eDQ8lJsm7U9xxhl6vSAiSFr+S30Dt+dYvsYyTnQeaN2oaFuzPu5ifdmA6Ap1
+erfutGWaIZDgqtCYvDi1czyL+Nw=
+-----END CERTIFICATE-----
+
+Camerfirma Global Chambersign Root
+==================================
+-----BEGIN CERTIFICATE-----
+MIIExTCCA62gAwIBAgIBADANBgkqhkiG9w0BAQUFADB9MQswCQYDVQQGEwJFVTEnMCUGA1UEChMe
+QUMgQ2FtZXJmaXJtYSBTQSBDSUYgQTgyNzQzMjg3MSMwIQYDVQQLExpodHRwOi8vd3d3LmNoYW1i
+ZXJzaWduLm9yZzEgMB4GA1UEAxMXR2xvYmFsIENoYW1iZXJzaWduIFJvb3QwHhcNMDMwOTMwMTYx
+NDE4WhcNMzcwOTMwMTYxNDE4WjB9MQswCQYDVQQGEwJFVTEnMCUGA1UEChMeQUMgQ2FtZXJmaXJt
+YSBTQSBDSUYgQTgyNzQzMjg3MSMwIQYDVQQLExpodHRwOi8vd3d3LmNoYW1iZXJzaWduLm9yZzEg
+MB4GA1UEAxMXR2xvYmFsIENoYW1iZXJzaWduIFJvb3QwggEgMA0GCSqGSIb3DQEBAQUAA4IBDQAw
+ggEIAoIBAQCicKLQn0KuWxfH2H3PFIP8T8mhtxOviteePgQKkotgVvq0Mi+ITaFgCPS3CU6gSS9J
+1tPfnZdan5QEcOw/Wdm3zGaLmFIoCQLfxS+EjXqXd7/sQJ0lcqu1PzKY+7e3/HKE5TWH+VX6ox8O
+by4o3Wmg2UIQxvi1RMLQQ3/bvOSiPGpVeAp3qdjqGTK3L/5cPxvusZjsyq16aUXjlg9V9ubtdepl
+6DJWk0aJqCWKZQbua795B9Dxt6/tLE2Su8CoX6dnfQTyFQhwrJLWfQTSM/tMtgsL+xrJxI0DqX5c
+8lCrEqWhz0hQpe/SyBoT+rB/sYIcd2oPX9wLlY/vQ37mRQklAgEDo4IBUDCCAUwwEgYDVR0TAQH/
+BAgwBgEB/wIBDDA/BgNVHR8EODA2MDSgMqAwhi5odHRwOi8vY3JsLmNoYW1iZXJzaWduLm9yZy9j
+aGFtYmVyc2lnbnJvb3QuY3JsMB0GA1UdDgQWBBRDnDafsJ4wTcbOX60Qq+UDpfqpFDAOBgNVHQ8B
+Af8EBAMCAQYwEQYJYIZIAYb4QgEBBAQDAgAHMCoGA1UdEQQjMCGBH2NoYW1iZXJzaWducm9vdEBj
+aGFtYmVyc2lnbi5vcmcwKgYDVR0SBCMwIYEfY2hhbWJlcnNpZ25yb290QGNoYW1iZXJzaWduLm9y
+ZzBbBgNVHSAEVDBSMFAGCysGAQQBgYcuCgEBMEEwPwYIKwYBBQUHAgEWM2h0dHA6Ly9jcHMuY2hh
+bWJlcnNpZ24ub3JnL2Nwcy9jaGFtYmVyc2lnbnJvb3QuaHRtbDANBgkqhkiG9w0BAQUFAAOCAQEA
+PDtwkfkEVCeR4e3t/mh/YV3lQWVPMvEYBZRqHN4fcNs+ezICNLUMbKGKfKX0j//U2K0X1S0E0T9Y
+gOKBWYi+wONGkyT+kL0mojAt6JcmVzWJdJYY9hXiryQZVgICsroPFOrGimbBhkVVi76SvpykBMdJ
+PJ7oKXqJ1/6v/2j1pReQvayZzKWGVwlnRtvWFsJG8eSpUPWP0ZIV018+xgBJOm5YstHRJw0lyDL4
+IBHNfTIzSJRUTN3cecQwn+uOuFW114hcxWokPbLTBQNRxgfvzBRydD1ucs4YKIxKoHflCStFREes
+t2d/AYoFWpO+ocH/+OcOZ6RHSXZddZAa9SaP8A==
+-----END CERTIFICATE-----
+
+NetLock Notary (Class A) Root
+=============================
+-----BEGIN CERTIFICATE-----
+MIIGfTCCBWWgAwIBAgICAQMwDQYJKoZIhvcNAQEEBQAwga8xCzAJBgNVBAYTAkhVMRAwDgYDVQQI
+EwdIdW5nYXJ5MREwDwYDVQQHEwhCdWRhcGVzdDEnMCUGA1UEChMeTmV0TG9jayBIYWxvemF0Yml6
+dG9uc2FnaSBLZnQuMRowGAYDVQQLExFUYW51c2l0dmFueWtpYWRvazE2MDQGA1UEAxMtTmV0TG9j
+ayBLb3pqZWd5em9pIChDbGFzcyBBKSBUYW51c2l0dmFueWtpYWRvMB4XDTk5MDIyNDIzMTQ0N1oX
+DTE5MDIxOTIzMTQ0N1owga8xCzAJBgNVBAYTAkhVMRAwDgYDVQQIEwdIdW5nYXJ5MREwDwYDVQQH
+EwhCdWRhcGVzdDEnMCUGA1UEChMeTmV0TG9jayBIYWxvemF0Yml6dG9uc2FnaSBLZnQuMRowGAYD
+VQQLExFUYW51c2l0dmFueWtpYWRvazE2MDQGA1UEAxMtTmV0TG9jayBLb3pqZWd5em9pIChDbGFz
+cyBBKSBUYW51c2l0dmFueWtpYWRvMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAvHSM
+D7tM9DceqQWC2ObhbHDqeLVu0ThEDaiDzl3S1tWBxdRL51uUcCbbO51qTGL3cfNk1mE7PetzozfZ
+z+qMkjvN9wfcZnSX9EUi3fRc4L9t875lM+QVOr/bmJBVOMTtplVjC7B4BPTjbsE/jvxReB+SnoPC
+/tmwqcm8WgD/qaiYdPv2LD4VOQ22BFWoDpggQrOxJa1+mm9dU7GrDPzr4PN6s6iz/0b2Y6LYOph7
+tqyF/7AlT3Rj5xMHpQqPBffAZG9+pyeAlt7ULoZgx2srXnN7F+eRP2QM2EsiNCubMvJIH5+hCoR6
+4sKtlz2O1cH5VqNQ6ca0+pii7pXmKgOM3wIDAQABo4ICnzCCApswDgYDVR0PAQH/BAQDAgAGMBIG
+A1UdEwEB/wQIMAYBAf8CAQQwEQYJYIZIAYb4QgEBBAQDAgAHMIICYAYJYIZIAYb4QgENBIICURaC
+Ak1GSUdZRUxFTSEgRXplbiB0YW51c2l0dmFueSBhIE5ldExvY2sgS2Z0LiBBbHRhbGFub3MgU3pv
+bGdhbHRhdGFzaSBGZWx0ZXRlbGVpYmVuIGxlaXJ0IGVsamFyYXNvayBhbGFwamFuIGtlc3p1bHQu
+IEEgaGl0ZWxlc2l0ZXMgZm9seWFtYXRhdCBhIE5ldExvY2sgS2Z0LiB0ZXJtZWtmZWxlbG9zc2Vn
+LWJpenRvc2l0YXNhIHZlZGkuIEEgZGlnaXRhbGlzIGFsYWlyYXMgZWxmb2dhZGFzYW5hayBmZWx0
+ZXRlbGUgYXogZWxvaXJ0IGVsbGVub3J6ZXNpIGVsamFyYXMgbWVndGV0ZWxlLiBBeiBlbGphcmFz
+IGxlaXJhc2EgbWVndGFsYWxoYXRvIGEgTmV0TG9jayBLZnQuIEludGVybmV0IGhvbmxhcGphbiBh
+IGh0dHBzOi8vd3d3Lm5ldGxvY2submV0L2RvY3MgY2ltZW4gdmFneSBrZXJoZXRvIGF6IGVsbGVu
+b3J6ZXNAbmV0bG9jay5uZXQgZS1tYWlsIGNpbWVuLiBJTVBPUlRBTlQhIFRoZSBpc3N1YW5jZSBh
+bmQgdGhlIHVzZSBvZiB0aGlzIGNlcnRpZmljYXRlIGlzIHN1YmplY3QgdG8gdGhlIE5ldExvY2sg
+Q1BTIGF2YWlsYWJsZSBhdCBodHRwczovL3d3dy5uZXRsb2NrLm5ldC9kb2NzIG9yIGJ5IGUtbWFp
+bCBhdCBjcHNAbmV0bG9jay5uZXQuMA0GCSqGSIb3DQEBBAUAA4IBAQBIJEb3ulZv+sgoA0BO5TE5
+ayZrU3/b39/zcT0mwBQOxmd7I6gMc90Bu8bKbjc5VdXHjFYgDigKDtIqpLBJUsY4B/6+CgmM0ZjP
+ytoUMaFP0jn8DxEsQ8Pdq5PHVT5HfBgaANzze9jyf1JsIPQLX2lS9O74silg6+NJMSEN1rUQQeJB
+CWziGppWS3cC9qCbmieH6FUpccKQn0V4GuEVZD3QDtigdp+uxdAu6tYPVuxkf1qbFFgBJ34TUMdr
+KuZoPL9coAob4Q566eKAw+np9v1sEZ7Q5SgnK1QyQhSCdeZK8CtmdWOMovsEPoMOmzbwGOQmIMOM
+8CgHrTwXZoi1/baI
+-----END CERTIFICATE-----
+
+XRamp Global CA Root
+====================
+-----BEGIN CERTIFICATE-----
+MIIEMDCCAxigAwIBAgIQUJRs7Bjq1ZxN1ZfvdY+grTANBgkqhkiG9w0BAQUFADCBgjELMAkGA1UE
+BhMCVVMxHjAcBgNVBAsTFXd3dy54cmFtcHNlY3VyaXR5LmNvbTEkMCIGA1UEChMbWFJhbXAgU2Vj
+dXJpdHkgU2VydmljZXMgSW5jMS0wKwYDVQQDEyRYUmFtcCBHbG9iYWwgQ2VydGlmaWNhdGlvbiBB
+dXRob3JpdHkwHhcNMDQxMTAxMTcxNDA0WhcNMzUwMTAxMDUzNzE5WjCBgjELMAkGA1UEBhMCVVMx
+HjAcBgNVBAsTFXd3dy54cmFtcHNlY3VyaXR5LmNvbTEkMCIGA1UEChMbWFJhbXAgU2VjdXJpdHkg
+U2VydmljZXMgSW5jMS0wKwYDVQQDEyRYUmFtcCBHbG9iYWwgQ2VydGlmaWNhdGlvbiBBdXRob3Jp
+dHkwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQCYJB69FbS638eMpSe2OAtp87ZOqCwu
+IR1cRN8hXX4jdP5efrRKt6atH67gBhbim1vZZ3RrXYCPKZ2GG9mcDZhtdhAoWORlsH9KmHmf4MMx
+foArtYzAQDsRhtDLooY2YKTVMIJt2W7QDxIEM5dfT2Fa8OT5kavnHTu86M/0ay00fOJIYRyO82FE
+zG+gSqmUsE3a56k0enI4qEHMPJQRfevIpoy3hsvKMzvZPTeL+3o+hiznc9cKV6xkmxnr9A8ECIqs
+AxcZZPRaJSKNNCyy9mgdEm3Tih4U2sSPpuIjhdV6Db1q4Ons7Be7QhtnqiXtRYMh/MHJfNViPvry
+xS3T/dRlAgMBAAGjgZ8wgZwwEwYJKwYBBAGCNxQCBAYeBABDAEEwCwYDVR0PBAQDAgGGMA8GA1Ud
+EwEB/wQFMAMBAf8wHQYDVR0OBBYEFMZPoj0GY4QJnM5i5ASsjVy16bYbMDYGA1UdHwQvMC0wK6Ap
+oCeGJWh0dHA6Ly9jcmwueHJhbXBzZWN1cml0eS5jb20vWEdDQS5jcmwwEAYJKwYBBAGCNxUBBAMC
+AQEwDQYJKoZIhvcNAQEFBQADggEBAJEVOQMBG2f7Shz5CmBbodpNl2L5JFMn14JkTpAuw0kbK5rc
+/Kh4ZzXxHfARvbdI4xD2Dd8/0sm2qlWkSLoC295ZLhVbO50WfUfXN+pfTXYSNrsf16GBBEYgoyxt
+qZ4Bfj8pzgCT3/3JknOJiWSe5yvkHJEs0rnOfc5vMZnT5r7SHpDwCRR5XCOrTdLaIR9NmXmd4c8n
+nxCbHIgNsIpkQTG4DmyQJKSbXHGPurt+HBvbaoAPIbzp26a3QPSyi6mx5O+aGtA9aZnuqCij4Tyz
+8LIRnM98QObd50N9otg6tamN8jSZxNQQ4Qb9CYQQO+7ETPTsJ3xCwnR8gooJybQDJbw=
+-----END CERTIFICATE-----
+
+Go Daddy Class 2 CA
+===================
+-----BEGIN CERTIFICATE-----
+MIIEADCCAuigAwIBAgIBADANBgkqhkiG9w0BAQUFADBjMQswCQYDVQQGEwJVUzEhMB8GA1UEChMY
+VGhlIEdvIERhZGR5IEdyb3VwLCBJbmMuMTEwLwYDVQQLEyhHbyBEYWRkeSBDbGFzcyAyIENlcnRp
+ZmljYXRpb24gQXV0aG9yaXR5MB4XDTA0MDYyOTE3MDYyMFoXDTM0MDYyOTE3MDYyMFowYzELMAkG
+A1UEBhMCVVMxITAfBgNVBAoTGFRoZSBHbyBEYWRkeSBHcm91cCwgSW5jLjExMC8GA1UECxMoR28g
+RGFkZHkgQ2xhc3MgMiBDZXJ0aWZpY2F0aW9uIEF1dGhvcml0eTCCASAwDQYJKoZIhvcNAQEBBQAD
+ggENADCCAQgCggEBAN6d1+pXGEmhW+vXX0iG6r7d/+TvZxz0ZWizV3GgXne77ZtJ6XCAPVYYYwhv
+2vLM0D9/AlQiVBDYsoHUwHU9S3/Hd8M+eKsaA7Ugay9qK7HFiH7Eux6wwdhFJ2+qN1j3hybX2C32
+qRe3H3I2TqYXP2WYktsqbl2i/ojgC95/5Y0V4evLOtXiEqITLdiOr18SPaAIBQi2XKVlOARFmR6j
+YGB0xUGlcmIbYsUfb18aQr4CUWWoriMYavx4A6lNf4DD+qta/KFApMoZFv6yyO9ecw3ud72a9nmY
+vLEHZ6IVDd2gWMZEewo+YihfukEHU1jPEX44dMX4/7VpkI+EdOqXG68CAQOjgcAwgb0wHQYDVR0O
+BBYEFNLEsNKR1EwRcbNhyz2h/t2oatTjMIGNBgNVHSMEgYUwgYKAFNLEsNKR1EwRcbNhyz2h/t2o
+atTjoWekZTBjMQswCQYDVQQGEwJVUzEhMB8GA1UEChMYVGhlIEdvIERhZGR5IEdyb3VwLCBJbmMu
+MTEwLwYDVQQLEyhHbyBEYWRkeSBDbGFzcyAyIENlcnRpZmljYXRpb24gQXV0aG9yaXR5ggEAMAwG
+A1UdEwQFMAMBAf8wDQYJKoZIhvcNAQEFBQADggEBADJL87LKPpH8EsahB4yOd6AzBhRckB4Y9wim
+PQoZ+YeAEW5p5JYXMP80kWNyOO7MHAGjHZQopDH2esRU1/blMVgDoszOYtuURXO1v0XJJLXVggKt
+I3lpjbi2Tc7PTMozI+gciKqdi0FuFskg5YmezTvacPd+mSYgFFQlq25zheabIZ0KbIIOqPjCDPoQ
+HmyW74cNxA9hi63ugyuV+I6ShHI56yDqg+2DzZduCLzrTia2cyvk0/ZM/iZx4mERdEr/VxqHD3VI
+Ls9RaRegAhJhldXRQLIQTO7ErBBDpqWeCtWVYpoNz4iCxTIM5CufReYNnyicsbkqWletNw+vHX/b
+vZ8=
+-----END CERTIFICATE-----
+
+Starfield Class 2 CA
+====================
+-----BEGIN CERTIFICATE-----
+MIIEDzCCAvegAwIBAgIBADANBgkqhkiG9w0BAQUFADBoMQswCQYDVQQGEwJVUzElMCMGA1UEChMc
+U3RhcmZpZWxkIFRlY2hub2xvZ2llcywgSW5jLjEyMDAGA1UECxMpU3RhcmZpZWxkIENsYXNzIDIg
+Q2VydGlmaWNhdGlvbiBBdXRob3JpdHkwHhcNMDQwNjI5MTczOTE2WhcNMzQwNjI5MTczOTE2WjBo
+MQswCQYDVQQGEwJVUzElMCMGA1UEChMcU3RhcmZpZWxkIFRlY2hub2xvZ2llcywgSW5jLjEyMDAG
+A1UECxMpU3RhcmZpZWxkIENsYXNzIDIgQ2VydGlmaWNhdGlvbiBBdXRob3JpdHkwggEgMA0GCSqG
+SIb3DQEBAQUAA4IBDQAwggEIAoIBAQC3Msj+6XGmBIWtDBFk385N78gDGIc/oav7PKaf8MOh2tTY
+bitTkPskpD6E8J7oX+zlJ0T1KKY/e97gKvDIr1MvnsoFAZMej2YcOadN+lq2cwQlZut3f+dZxkqZ
+JRRU6ybH838Z1TBwj6+wRir/resp7defqgSHo9T5iaU0X9tDkYI22WY8sbi5gv2cOj4QyDvvBmVm
+epsZGD3/cVE8MC5fvj13c7JdBmzDI1aaK4UmkhynArPkPw2vCHmCuDY96pzTNbO8acr1zJ3o/WSN
+F4Azbl5KXZnJHoe0nRrA1W4TNSNe35tfPe/W93bC6j67eA0cQmdrBNj41tpvi/JEoAGrAgEDo4HF
+MIHCMB0GA1UdDgQWBBS/X7fRzt0fhvRbVazc1xDCDqmI5zCBkgYDVR0jBIGKMIGHgBS/X7fRzt0f
+hvRbVazc1xDCDqmI56FspGowaDELMAkGA1UEBhMCVVMxJTAjBgNVBAoTHFN0YXJmaWVsZCBUZWNo
+bm9sb2dpZXMsIEluYy4xMjAwBgNVBAsTKVN0YXJmaWVsZCBDbGFzcyAyIENlcnRpZmljYXRpb24g
+QXV0aG9yaXR5ggEAMAwGA1UdEwQFMAMBAf8wDQYJKoZIhvcNAQEFBQADggEBAAWdP4id0ckaVaGs
+afPzWdqbAYcaT1epoXkJKtv3L7IezMdeatiDh6GX70k1PncGQVhiv45YuApnP+yz3SFmH8lU+nLM
+PUxA2IGvd56Deruix/U0F47ZEUD0/CwqTRV/p2JdLiXTAAsgGh1o+Re49L2L7ShZ3U0WixeDyLJl
+xy16paq8U4Zt3VekyvggQQto8PT7dL5WXXp59fkdheMtlb71cZBDzI0fmgAKhynpVSJYACPq4xJD
+KVtHCN2MQWplBqjlIapBtJUhlbl90TSrE9atvNziPTnNvT51cKEYWQPJIrSPnNVeKtelttQKbfi3
+QBFGmh95DmK/D5fs4C8fF5Q=
+-----END CERTIFICATE-----
+
+StartCom Certification Authority
+================================
+-----BEGIN CERTIFICATE-----
+MIIHyTCCBbGgAwIBAgIBATANBgkqhkiG9w0BAQUFADB9MQswCQYDVQQGEwJJTDEWMBQGA1UEChMN
+U3RhcnRDb20gTHRkLjErMCkGA1UECxMiU2VjdXJlIERpZ2l0YWwgQ2VydGlmaWNhdGUgU2lnbmlu
+ZzEpMCcGA1UEAxMgU3RhcnRDb20gQ2VydGlmaWNhdGlvbiBBdXRob3JpdHkwHhcNMDYwOTE3MTk0
+NjM2WhcNMzYwOTE3MTk0NjM2WjB9MQswCQYDVQQGEwJJTDEWMBQGA1UEChMNU3RhcnRDb20gTHRk
+LjErMCkGA1UECxMiU2VjdXJlIERpZ2l0YWwgQ2VydGlmaWNhdGUgU2lnbmluZzEpMCcGA1UEAxMg
+U3RhcnRDb20gQ2VydGlmaWNhdGlvbiBBdXRob3JpdHkwggIiMA0GCSqGSIb3DQEBAQUAA4ICDwAw
+ggIKAoICAQDBiNsJvGxGfHiflXu1M5DycmLWwTYgIiRezul38kMKogZkpMyONvg45iPwbm2xPN1y
+o4UcodM9tDMr0y+v/uqwQVlntsQGfQqedIXWeUyAN3rfOQVSWff0G0ZDpNKFhdLDcfN1YjS6LIp/
+Ho/u7TTQEceWzVI9ujPW3U3eCztKS5/CJi/6tRYccjV3yjxd5srhJosaNnZcAdt0FCX+7bWgiA/d
+eMotHweXMAEtcnn6RtYTKqi5pquDSR3l8u/d5AGOGAqPY1MWhWKpDhk6zLVmpsJrdAfkK+F2PrRt
+2PZE4XNiHzvEvqBTViVsUQn3qqvKv3b9bZvzndu/PWa8DFaqr5hIlTpL36dYUNk4dalb6kMMAv+Z
+6+hsTXBbKWWc3apdzK8BMewM69KN6Oqce+Zu9ydmDBpI125C4z/eIT574Q1w+2OqqGwaVLRcJXrJ
+osmLFqa7LH4XXgVNWG4SHQHuEhANxjJ/GP/89PrNbpHoNkm+Gkhpi8KWTRoSsmkXwQqQ1vp5Iki/
+untp+HDH+no32NgN0nZPV/+Qt+OR0t3vwmC3Zzrd/qqc8NSLf3Iizsafl7b4r4qgEKjZ+xjGtrVc
+UjyJthkqcwEKDwOzEmDyei+B26Nu/yYwl/WL3YlXtq09s68rxbd2AvCl1iuahhQqcvbjM4xdCUsT
+37uMdBNSSwIDAQABo4ICUjCCAk4wDAYDVR0TBAUwAwEB/zALBgNVHQ8EBAMCAa4wHQYDVR0OBBYE
+FE4L7xqkQFulF2mHMMo0aEPQQa7yMGQGA1UdHwRdMFswLKAqoCiGJmh0dHA6Ly9jZXJ0LnN0YXJ0
+Y29tLm9yZy9zZnNjYS1jcmwuY3JsMCugKaAnhiVodHRwOi8vY3JsLnN0YXJ0Y29tLm9yZy9zZnNj
+YS1jcmwuY3JsMIIBXQYDVR0gBIIBVDCCAVAwggFMBgsrBgEEAYG1NwEBATCCATswLwYIKwYBBQUH
+AgEWI2h0dHA6Ly9jZXJ0LnN0YXJ0Y29tLm9yZy9wb2xpY3kucGRmMDUGCCsGAQUFBwIBFilodHRw
+Oi8vY2VydC5zdGFydGNvbS5vcmcvaW50ZXJtZWRpYXRlLnBkZjCB0AYIKwYBBQUHAgIwgcMwJxYg
+U3RhcnQgQ29tbWVyY2lhbCAoU3RhcnRDb20pIEx0ZC4wAwIBARqBl0xpbWl0ZWQgTGlhYmlsaXR5
+LCByZWFkIHRoZSBzZWN0aW9uICpMZWdhbCBMaW1pdGF0aW9ucyogb2YgdGhlIFN0YXJ0Q29tIENl
+cnRpZmljYXRpb24gQXV0aG9yaXR5IFBvbGljeSBhdmFpbGFibGUgYXQgaHR0cDovL2NlcnQuc3Rh
+cnRjb20ub3JnL3BvbGljeS5wZGYwEQYJYIZIAYb4QgEBBAQDAgAHMDgGCWCGSAGG+EIBDQQrFilT
+dGFydENvbSBGcmVlIFNTTCBDZXJ0aWZpY2F0aW9uIEF1dGhvcml0eTANBgkqhkiG9w0BAQUFAAOC
+AgEAFmyZ9GYMNPXQhV59CuzaEE44HF7fpiUFS5Eyweg78T3dRAlbB0mKKctmArexmvclmAk8jhvh
+3TaHK0u7aNM5Zj2gJsfyOZEdUauCe37Vzlrk4gNXcGmXCPleWKYK34wGmkUWFjgKXlf2Ysd6AgXm
+vB618p70qSmD+LIU424oh0TDkBreOKk8rENNZEXO3SipXPJzewT4F+irsfMuXGRuczE6Eri8sxHk
+fY+BUZo7jYn0TZNmezwD7dOaHZrzZVD1oNB1ny+v8OqCQ5j4aZyJecRDjkZy42Q2Eq/3JR44iZB3
+fsNrarnDy0RLrHiQi+fHLB5LEUTINFInzQpdn4XBidUaePKVEFMy3YCEZnXZtWgo+2EuvoSoOMCZ
+EoalHmdkrQYuL6lwhceWD3yJZfWOQ1QOq92lgDmUYMA0yZZwLKMS9R9Ie70cfmu3nZD0Ijuu+Pwq
+yvqCUqDvr0tVk+vBtfAii6w0TiYiBKGHLHVKt+V9E9e4DGTANtLJL4YSjCMJwRuCO3NJo2pXh5Tl
+1njFmUNj403gdy3hZZlyaQQaRwnmDwFWJPsfvw55qVguucQJAX6Vum0ABj6y6koQOdjQK/W/7HW/
+lwLFCRsI3FU34oH7N4RDYiDK51ZLZer+bMEkkyShNOsF/5oirpt9P/FlUQqmMGqz9IgcgA38coro
+g14=
+-----END CERTIFICATE-----
+
+Taiwan GRCA
+===========
+-----BEGIN CERTIFICATE-----
+MIIFcjCCA1qgAwIBAgIQH51ZWtcvwgZEpYAIaeNe9jANBgkqhkiG9w0BAQUFADA/MQswCQYDVQQG
+EwJUVzEwMC4GA1UECgwnR292ZXJubWVudCBSb290IENlcnRpZmljYXRpb24gQXV0aG9yaXR5MB4X
+DTAyMTIwNTEzMjMzM1oXDTMyMTIwNTEzMjMzM1owPzELMAkGA1UEBhMCVFcxMDAuBgNVBAoMJ0dv
+dmVybm1lbnQgUm9vdCBDZXJ0aWZpY2F0aW9uIEF1dGhvcml0eTCCAiIwDQYJKoZIhvcNAQEBBQAD
+ggIPADCCAgoCggIBAJoluOzMonWoe/fOW1mKydGGEghU7Jzy50b2iPN86aXfTEc2pBsBHH8eV4qN
+w8XRIePaJD9IK/ufLqGU5ywck9G/GwGHU5nOp/UKIXZ3/6m3xnOUT0b3EEk3+qhZSV1qgQdW8or5
+BtD3cCJNtLdBuTK4sfCxw5w/cP1T3YGq2GN49thTbqGsaoQkclSGxtKyyhwOeYHWtXBiCAEuTk8O
+1RGvqa/lmr/czIdtJuTJV6L7lvnM4T9TjGxMfptTCAtsF/tnyMKtsc2AtJfcdgEWFelq16TheEfO
+htX7MfP6Mb40qij7cEwdScevLJ1tZqa2jWR+tSBqnTuBto9AAGdLiYa4zGX+FVPpBMHWXx1E1wov
+J5pGfaENda1UhhXcSTvxls4Pm6Dso3pdvtUqdULle96ltqqvKKyskKw4t9VoNSZ63Pc78/1Fm9G7
+Q3hub/FCVGqY8A2tl+lSXunVanLeavcbYBT0peS2cWeqH+riTcFCQP5nRhc4L0c/cZyu5SHKYS1t
+B6iEfC3uUSXxY5Ce/eFXiGvviiNtsea9P63RPZYLhY3Naye7twWb7LuRqQoHEgKXTiCQ8P8NHuJB
+O9NAOueNXdpm5AKwB1KYXA6OM5zCppX7VRluTI6uSw+9wThNXo+EHWbNxWCWtFJaBYmOlXqYwZE8
+lSOyDvR5tMl8wUohAgMBAAGjajBoMB0GA1UdDgQWBBTMzO/MKWCkO7GStjz6MmKPrCUVOzAMBgNV
+HRMEBTADAQH/MDkGBGcqBwAEMTAvMC0CAQAwCQYFKw4DAhoFADAHBgVnKgMAAAQUA5vwIhP/lSg2
+09yewDL7MTqKUWUwDQYJKoZIhvcNAQEFBQADggIBAECASvomyc5eMN1PhnR2WPWus4MzeKR6dBcZ
+TulStbngCnRiqmjKeKBMmo4sIy7VahIkv9Ro04rQ2JyftB8M3jh+Vzj8jeJPXgyfqzvS/3WXy6Tj
+Zwj/5cAWtUgBfen5Cv8b5Wppv3ghqMKnI6mGq3ZW6A4M9hPdKmaKZEk9GhiHkASfQlK3T8v+R0F2
+Ne//AHY2RTKbxkaFXeIksB7jSJaYV0eUVXoPQbFEJPPB/hprv4j9wabak2BegUqZIJxIZhm1AHlU
+D7gsL0u8qV1bYH+Mh6XgUmMqvtg7hUAV/h62ZT/FS9p+tXo1KaMuephgIqP0fSdOLeq0dDzpD6Qz
+DxARvBMB1uUO07+1EqLhRSPAzAhuYbeJq4PjJB7mXQfnHyA+z2fI56wwbSdLaG5LKlwCCDTb+Hbk
+Z6MmnD+iMsJKxYEYMRBWqoTvLQr/uB930r+lWKBi5NdLkXWNiYCYfm3LU05er/ayl4WXudpVBrkk
+7tfGOB5jGxI7leFYrPLfhNVfmS8NVVvmONsuP3LpSIXLuykTjx44VbnzssQwmSNOXfJIoRIM3BKQ
+CZBUkQM8R+XVyWXgt0t97EfTsws+rZ7QdAAO671RrcDeLMDDav7v3Aun+kbfYNucpllQdSNpc5Oy
++fwC00fmcc4QAu4njIT/rEUNE1yDMuAlpYYsfPQS
+-----END CERTIFICATE-----
+
+Swisscom Root CA 1
+==================
+-----BEGIN CERTIFICATE-----
+MIIF2TCCA8GgAwIBAgIQXAuFXAvnWUHfV8w/f52oNjANBgkqhkiG9w0BAQUFADBkMQswCQYDVQQG
+EwJjaDERMA8GA1UEChMIU3dpc3Njb20xJTAjBgNVBAsTHERpZ2l0YWwgQ2VydGlmaWNhdGUgU2Vy
+dmljZXMxGzAZBgNVBAMTElN3aXNzY29tIFJvb3QgQ0EgMTAeFw0wNTA4MTgxMjA2MjBaFw0yNTA4
+MTgyMjA2MjBaMGQxCzAJBgNVBAYTAmNoMREwDwYDVQQKEwhTd2lzc2NvbTElMCMGA1UECxMcRGln
+aXRhbCBDZXJ0aWZpY2F0ZSBTZXJ2aWNlczEbMBkGA1UEAxMSU3dpc3Njb20gUm9vdCBDQSAxMIIC
+IjANBgkqhkiG9w0BAQEFAAOCAg8AMIICCgKCAgEA0LmwqAzZuz8h+BvVM5OAFmUgdbI9m2BtRsiM
+MW8Xw/qabFbtPMWRV8PNq5ZJkCoZSx6jbVfd8StiKHVFXqrWW/oLJdihFvkcxC7mlSpnzNApbjyF
+NDhhSbEAn9Y6cV9Nbc5fuankiX9qUvrKm/LcqfmdmUc/TilftKaNXXsLmREDA/7n29uj/x2lzZAe
+AR81sH8A25Bvxn570e56eqeqDFdvpG3FEzuwpdntMhy0XmeLVNxzh+XTF3xmUHJd1BpYwdnP2IkC
+b6dJtDZd0KTeByy2dbcokdaXvij1mB7qWybJvbCXc9qukSbraMH5ORXWZ0sKbU/Lz7DkQnGMU3nn
+7uHbHaBuHYwadzVcFh4rUx80i9Fs/PJnB3r1re3WmquhsUvhzDdf/X/NTa64H5xD+SpYVUNFvJbN
+cA78yeNmuk6NO4HLFWR7uZToXTNShXEuT46iBhFRyePLoW4xCGQMwtI89Tbo19AOeCMgkckkKmUp
+WyL3Ic6DXqTz3kvTaI9GdVyDCW4pa8RwjPWd1yAv/0bSKzjCL3UcPX7ape8eYIVpQtPM+GP+HkM5
+haa2Y0EQs3MevNP6yn0WR+Kn1dCjigoIlmJWbjTb2QK5MHXjBNLnj8KwEUAKrNVxAmKLMb7dxiNY
+MUJDLXT5xp6mig/p/r+D5kNXJLrvRjSq1xIBOO0CAwEAAaOBhjCBgzAOBgNVHQ8BAf8EBAMCAYYw
+HQYDVR0hBBYwFDASBgdghXQBUwABBgdghXQBUwABMBIGA1UdEwEB/wQIMAYBAf8CAQcwHwYDVR0j
+BBgwFoAUAyUv3m+CATpcLNwroWm1Z9SM0/0wHQYDVR0OBBYEFAMlL95vggE6XCzcK6FptWfUjNP9
+MA0GCSqGSIb3DQEBBQUAA4ICAQA1EMvspgQNDQ/NwNurqPKIlwzfky9NfEBWMXrrpA9gzXrzvsMn
+jgM+pN0S734edAY8PzHyHHuRMSG08NBsl9Tpl7IkVh5WwzW9iAUPWxAaZOHHgjD5Mq2eUCzneAXQ
+MbFamIp1TpBcahQq4FJHgmDmHtqBsfsUC1rxn9KVuj7QG9YVHaO+htXbD8BJZLsuUBlL0iT43R4H
+VtA4oJVwIHaM190e3p9xxCPvgxNcoyQVTSlAPGrEqdi3pkSlDfTgnXceQHAm/NrZNuR55LU/vJtl
+vrsRls/bxig5OgjOR1tTWsWZ/l2p3e9M1MalrQLmjAcSHm8D0W+go/MpvRLHUKKwf4ipmXeascCl
+OS5cfGniLLDqN2qk4Vrh9VDlg++luyqI54zb/W1elxmofmZ1a3Hqv7HHb6D0jqTsNFFbjCYDcKF3
+1QESVwA12yPeDooomf2xEG9L/zgtYE4snOtnta1J7ksfrK/7DZBaZmBwXarNeNQk7shBoJMBkpxq
+nvy5JMWzFYJ+vq6VK+uxwNrjAWALXmmshFZhvnEX/h0TD/7Gh0Xp/jKgGg0TpJRVcaUWi7rKibCy
+x/yP2FS1k2Kdzs9Z+z0YzirLNRWCXf9UIltxUvu3yf5gmwBBZPCqKuy2QkPOiWaByIufOVQDJdMW
+NY6E0F/6MBr1mmz0DlP5OlvRHA==
+-----END CERTIFICATE-----
+
+DigiCert Assured ID Root CA
+===========================
+-----BEGIN CERTIFICATE-----
+MIIDtzCCAp+gAwIBAgIQDOfg5RfYRv6P5WD8G/AwOTANBgkqhkiG9w0BAQUFADBlMQswCQYDVQQG
+EwJVUzEVMBMGA1UEChMMRGlnaUNlcnQgSW5jMRkwFwYDVQQLExB3d3cuZGlnaWNlcnQuY29tMSQw
+IgYDVQQDExtEaWdpQ2VydCBBc3N1cmVkIElEIFJvb3QgQ0EwHhcNMDYxMTEwMDAwMDAwWhcNMzEx
+MTEwMDAwMDAwWjBlMQswCQYDVQQGEwJVUzEVMBMGA1UEChMMRGlnaUNlcnQgSW5jMRkwFwYDVQQL
+ExB3d3cuZGlnaWNlcnQuY29tMSQwIgYDVQQDExtEaWdpQ2VydCBBc3N1cmVkIElEIFJvb3QgQ0Ew
+ggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQCtDhXO5EOAXLGH87dg+XESpa7cJpSIqvTO
+9SA5KFhgDPiA2qkVlTJhPLWxKISKityfCgyDF3qPkKyK53lTXDGEKvYPmDI2dsze3Tyoou9q+yHy
+UmHfnyDXH+Kx2f4YZNISW1/5WBg1vEfNoTb5a3/UsDg+wRvDjDPZ2C8Y/igPs6eD1sNuRMBhNZYW
+/lmci3Zt1/GiSw0r/wty2p5g0I6QNcZ4VYcgoc/lbQrISXwxmDNsIumH0DJaoroTghHtORedmTpy
+oeb6pNnVFzF1roV9Iq4/AUaG9ih5yLHa5FcXxH4cDrC0kqZWs72yl+2qp/C3xag/lRbQ/6GW6whf
+GHdPAgMBAAGjYzBhMA4GA1UdDwEB/wQEAwIBhjAPBgNVHRMBAf8EBTADAQH/MB0GA1UdDgQWBBRF
+66Kv9JLLgjEtUYunpyGd823IDzAfBgNVHSMEGDAWgBRF66Kv9JLLgjEtUYunpyGd823IDzANBgkq
+hkiG9w0BAQUFAAOCAQEAog683+Lt8ONyc3pklL/3cmbYMuRCdWKuh+vy1dneVrOfzM4UKLkNl2Bc
+EkxY5NM9g0lFWJc1aRqoR+pWxnmrEthngYTffwk8lOa4JiwgvT2zKIn3X/8i4peEH+ll74fg38Fn
+SbNd67IJKusm7Xi+fT8r87cmNW1fiQG2SVufAQWbqz0lwcy2f8Lxb4bG+mRo64EtlOtCt/qMHt1i
+8b5QZ7dsvfPxH2sMNgcWfzd8qVttevESRmCD1ycEvkvOl77DZypoEd+A5wwzZr8TDRRu838fYxAe
++o0bJW1sj6W3YQGx0qMmoRBxna3iw/nDmVG3KwcIzi7mULKn+gpFL6Lw8g==
+-----END CERTIFICATE-----
+
+DigiCert Global Root CA
+=======================
+-----BEGIN CERTIFICATE-----
+MIIDrzCCApegAwIBAgIQCDvgVpBCRrGhdWrJWZHHSjANBgkqhkiG9w0BAQUFADBhMQswCQYDVQQG
+EwJVUzEVMBMGA1UEChMMRGlnaUNlcnQgSW5jMRkwFwYDVQQLExB3d3cuZGlnaWNlcnQuY29tMSAw
+HgYDVQQDExdEaWdpQ2VydCBHbG9iYWwgUm9vdCBDQTAeFw0wNjExMTAwMDAwMDBaFw0zMTExMTAw
+MDAwMDBaMGExCzAJBgNVBAYTAlVTMRUwEwYDVQQKEwxEaWdpQ2VydCBJbmMxGTAXBgNVBAsTEHd3
+dy5kaWdpY2VydC5jb20xIDAeBgNVBAMTF0RpZ2lDZXJ0IEdsb2JhbCBSb290IENBMIIBIjANBgkq
+hkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEA4jvhEXLeqKTTo1eqUKKPC3eQyaKl7hLOllsBCSDMAZOn
+TjC3U/dDxGkAV53ijSLdhwZAAIEJzs4bg7/fzTtxRuLWZscFs3YnFo97nh6Vfe63SKMI2tavegw5
+BmV/Sl0fvBf4q77uKNd0f3p4mVmFaG5cIzJLv07A6Fpt43C/dxC//AH2hdmoRBBYMql1GNXRor5H
+4idq9Joz+EkIYIvUX7Q6hL+hqkpMfT7PT19sdl6gSzeRntwi5m3OFBqOasv+zbMUZBfHWymeMr/y
+7vrTC0LUq7dBMtoM1O/4gdW7jVg/tRvoSSiicNoxBN33shbyTApOB6jtSj1etX+jkMOvJwIDAQAB
+o2MwYTAOBgNVHQ8BAf8EBAMCAYYwDwYDVR0TAQH/BAUwAwEB/zAdBgNVHQ4EFgQUA95QNVbRTLtm
+8KPiGxvDl7I90VUwHwYDVR0jBBgwFoAUA95QNVbRTLtm8KPiGxvDl7I90VUwDQYJKoZIhvcNAQEF
+BQADggEBAMucN6pIExIK+t1EnE9SsPTfrgT1eXkIoyQY/EsrhMAtudXH/vTBH1jLuG2cenTnmCmr
+EbXjcKChzUyImZOMkXDiqw8cvpOp/2PV5Adg06O/nVsJ8dWO41P0jmP6P6fbtGbfYmbW0W5BjfIt
+tep3Sp+dWOIrWcBAI+0tKIJFPnlUkiaY4IBIqDfv8NZ5YBberOgOzW6sRBc4L0na4UU+Krk2U886
+UAb3LujEV0lsYSEY1QSteDwsOoBrp+uvFRTp2InBuThs4pFsiv9kuXclVzDAGySj4dzp30d8tbQk
+CAUw7C29C79Fv1C5qfPrmAESrciIxpg0X40KPMbp1ZWVbd4=
+-----END CERTIFICATE-----
+
+DigiCert High Assurance EV Root CA
+==================================
+-----BEGIN CERTIFICATE-----
+MIIDxTCCAq2gAwIBAgIQAqxcJmoLQJuPC3nyrkYldzANBgkqhkiG9w0BAQUFADBsMQswCQYDVQQG
+EwJVUzEVMBMGA1UEChMMRGlnaUNlcnQgSW5jMRkwFwYDVQQLExB3d3cuZGlnaWNlcnQuY29tMSsw
+KQYDVQQDEyJEaWdpQ2VydCBIaWdoIEFzc3VyYW5jZSBFViBSb290IENBMB4XDTA2MTExMDAwMDAw
+MFoXDTMxMTExMDAwMDAwMFowbDELMAkGA1UEBhMCVVMxFTATBgNVBAoTDERpZ2lDZXJ0IEluYzEZ
+MBcGA1UECxMQd3d3LmRpZ2ljZXJ0LmNvbTErMCkGA1UEAxMiRGlnaUNlcnQgSGlnaCBBc3N1cmFu
+Y2UgRVYgUm9vdCBDQTCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAMbM5XPm+9S75S0t
+Mqbf5YE/yc0lSbZxKsPVlDRnogocsF9ppkCxxLeyj9CYpKlBWTrT3JTWPNt0OKRKzE0lgvdKpVMS
+OO7zSW1xkX5jtqumX8OkhPhPYlG++MXs2ziS4wblCJEMxChBVfvLWokVfnHoNb9Ncgk9vjo4UFt3
+MRuNs8ckRZqnrG0AFFoEt7oT61EKmEFBIk5lYYeBQVCmeVyJ3hlKV9Uu5l0cUyx+mM0aBhakaHPQ
+NAQTXKFx01p8VdteZOE3hzBWBOURtCmAEvF5OYiiAhF8J2a3iLd48soKqDirCmTCv2ZdlYTBoSUe
+h10aUAsgEsxBu24LUTi4S8sCAwEAAaNjMGEwDgYDVR0PAQH/BAQDAgGGMA8GA1UdEwEB/wQFMAMB
+Af8wHQYDVR0OBBYEFLE+w2kD+L9HAdSYJhoIAu9jZCvDMB8GA1UdIwQYMBaAFLE+w2kD+L9HAdSY
+JhoIAu9jZCvDMA0GCSqGSIb3DQEBBQUAA4IBAQAcGgaX3NecnzyIZgYIVyHbIUf4KmeqvxgydkAQ
+V8GK83rZEWWONfqe/EW1ntlMMUu4kehDLI6zeM7b41N5cdblIZQB2lWHmiRk9opmzN6cN82oNLFp
+myPInngiK3BD41VHMWEZ71jFhS9OMPagMRYjyOfiZRYzy78aG6A9+MpeizGLYAiJLQwGXFK3xPkK
+mNEVX58Svnw2Yzi9RKR/5CYrCsSXaQ3pjOLAEFe4yHYSkVXySGnYvCoCWw9E1CAx2/S6cCZdkGCe
+vEsXCS+0yx5DaMkHJ8HSXPfqIbloEpw8nL+e/IBcm2PN7EeqJSdnoDfzAIJ9VNep+OkuE6N36B9K
+-----END CERTIFICATE-----
+
+Certplus Class 2 Primary CA
+===========================
+-----BEGIN CERTIFICATE-----
+MIIDkjCCAnqgAwIBAgIRAIW9S/PY2uNp9pTXX8OlRCMwDQYJKoZIhvcNAQEFBQAwPTELMAkGA1UE
+BhMCRlIxETAPBgNVBAoTCENlcnRwbHVzMRswGQYDVQQDExJDbGFzcyAyIFByaW1hcnkgQ0EwHhcN
+OTkwNzA3MTcwNTAwWhcNMTkwNzA2MjM1OTU5WjA9MQswCQYDVQQGEwJGUjERMA8GA1UEChMIQ2Vy
+dHBsdXMxGzAZBgNVBAMTEkNsYXNzIDIgUHJpbWFyeSBDQTCCASIwDQYJKoZIhvcNAQEBBQADggEP
+ADCCAQoCggEBANxQltAS+DXSCHh6tlJw/W/uz7kRy1134ezpfgSN1sxvc0NXYKwzCkTsA18cgCSR
+5aiRVhKC9+Ar9NuuYS6JEI1rbLqzAr3VNsVINyPi8Fo3UjMXEuLRYE2+L0ER4/YXJQyLkcAbmXuZ
+Vg2v7tK8R1fjeUl7NIknJITesezpWE7+Tt9avkGtrAjFGA7v0lPubNCdEgETjdyAYveVqUSISnFO
+YFWe2yMZeVYHDD9jC1yw4r5+FfyUM1hBOHTE4Y+L3yasH7WLO7dDWWuwJKZtkIvEcupdM5i3y95e
+e++U8Rs+yskhwcWYAqqi9lt3m/V+llU0HGdpwPFC40es/CgcZlUCAwEAAaOBjDCBiTAPBgNVHRME
+CDAGAQH/AgEKMAsGA1UdDwQEAwIBBjAdBgNVHQ4EFgQU43Mt38sOKAze3bOkynm4jrvoMIkwEQYJ
+YIZIAYb4QgEBBAQDAgEGMDcGA1UdHwQwMC4wLKAqoCiGJmh0dHA6Ly93d3cuY2VydHBsdXMuY29t
+L0NSTC9jbGFzczIuY3JsMA0GCSqGSIb3DQEBBQUAA4IBAQCnVM+IRBnL39R/AN9WM2K191EBkOvD
+P9GIROkkXe/nFL0gt5o8AP5tn9uQ3Nf0YtaLcF3n5QRIqWh8yfFC82x/xXp8HVGIutIKPidd3i1R
+TtMTZGnkLuPT55sJmabglZvOGtd/vjzOUrMRFcEPF80Du5wlFbqidon8BvEY0JNLDnyCt6X09l/+
+7UCmnYR0ObncHoUW2ikbhiMAybuJfm6AiB4vFLQDJKgybwOaRywwvlbGp0ICcBvqQNi6BQNwB6SW
+//1IMwrh3KWBkJtN3X3n57LNXMhqlfil9o3EXXgIvnsG1knPGTZQIy4I5p4FTUcY1Rbpsda2ENW7
+l7+ijrRU
+-----END CERTIFICATE-----
+
+DST Root CA X3
+==============
+-----BEGIN CERTIFICATE-----
+MIIDSjCCAjKgAwIBAgIQRK+wgNajJ7qJMDmGLvhAazANBgkqhkiG9w0BAQUFADA/MSQwIgYDVQQK
+ExtEaWdpdGFsIFNpZ25hdHVyZSBUcnVzdCBDby4xFzAVBgNVBAMTDkRTVCBSb290IENBIFgzMB4X
+DTAwMDkzMDIxMTIxOVoXDTIxMDkzMDE0MDExNVowPzEkMCIGA1UEChMbRGlnaXRhbCBTaWduYXR1
+cmUgVHJ1c3QgQ28uMRcwFQYDVQQDEw5EU1QgUm9vdCBDQSBYMzCCASIwDQYJKoZIhvcNAQEBBQAD
+ggEPADCCAQoCggEBAN+v6ZdQCINXtMxiZfaQguzH0yxrMMpb7NnDfcdAwRgUi+DoM3ZJKuM/IUmT
+rE4Orz5Iy2Xu/NMhD2XSKtkyj4zl93ewEnu1lcCJo6m67XMuegwGMoOifooUMM0RoOEqOLl5CjH9
+UL2AZd+3UWODyOKIYepLYYHsUmu5ouJLGiifSKOeDNoJjj4XLh7dIN9bxiqKqy69cK3FCxolkHRy
+xXtqqzTWMIn/5WgTe1QLyNau7Fqckh49ZLOMxt+/yUFw7BZy1SbsOFU5Q9D8/RhcQPGX69Wam40d
+utolucbY38EVAjqr2m7xPi71XAicPNaDaeQQmxkqtilX4+U9m5/wAl0CAwEAAaNCMEAwDwYDVR0T
+AQH/BAUwAwEB/zAOBgNVHQ8BAf8EBAMCAQYwHQYDVR0OBBYEFMSnsaR7LHH62+FLkHX/xBVghYkQ
+MA0GCSqGSIb3DQEBBQUAA4IBAQCjGiybFwBcqR7uKGY3Or+Dxz9LwwmglSBd49lZRNI+DT69ikug
+dB/OEIKcdBodfpga3csTS7MgROSR6cz8faXbauX+5v3gTt23ADq1cEmv8uXrAvHRAosZy5Q6XkjE
+GB5YGV8eAlrwDPGxrancWYaLbumR9YbK+rlmM6pZW87ipxZzR8srzJmwN0jP41ZL9c8PDHIyh8bw
+RLtTcm1D9SZImlJnt1ir/md2cXjbDaJWFBM5JDGFoqgCWjBH4d1QB7wCCZAA62RjYJsWvIjJEubS
+fZGL+T0yjWW06XyxV3bqxbYoOb8VZRzI9neWagqNdwvYkQsEjgfbKbYK7p2CNTUQ
+-----END CERTIFICATE-----
+
+DST ACES CA X6
+==============
+-----BEGIN CERTIFICATE-----
+MIIECTCCAvGgAwIBAgIQDV6ZCtadt3js2AdWO4YV2TANBgkqhkiG9w0BAQUFADBbMQswCQYDVQQG
+EwJVUzEgMB4GA1UEChMXRGlnaXRhbCBTaWduYXR1cmUgVHJ1c3QxETAPBgNVBAsTCERTVCBBQ0VT
+MRcwFQYDVQQDEw5EU1QgQUNFUyBDQSBYNjAeFw0wMzExMjAyMTE5NThaFw0xNzExMjAyMTE5NTha
+MFsxCzAJBgNVBAYTAlVTMSAwHgYDVQQKExdEaWdpdGFsIFNpZ25hdHVyZSBUcnVzdDERMA8GA1UE
+CxMIRFNUIEFDRVMxFzAVBgNVBAMTDkRTVCBBQ0VTIENBIFg2MIIBIjANBgkqhkiG9w0BAQEFAAOC
+AQ8AMIIBCgKCAQEAuT31LMmU3HWKlV1j6IR3dma5WZFcRt2SPp/5DgO0PWGSvSMmtWPuktKe1jzI
+DZBfZIGxqAgNTNj50wUoUrQBJcWVHAx+PhCEdc/BGZFjz+iokYi5Q1K7gLFViYsx+tC3dr5BPTCa
+pCIlF3PoHuLTrCq9Wzgh1SpL11V94zpVvddtawJXa+ZHfAjIgrrep4c9oW24MFbCswKBXy314pow
+GCi4ZtPLAZZv6opFVdbgnf9nKxcCpk4aahELfrd755jWjHZvwTvbUJN+5dCOHze4vbrGn2zpfDPy
+MjwmR/onJALJfh1biEITajV8fTXpLmaRcpPVMibEdPVTo7NdmvYJywIDAQABo4HIMIHFMA8GA1Ud
+EwEB/wQFMAMBAf8wDgYDVR0PAQH/BAQDAgHGMB8GA1UdEQQYMBaBFHBraS1vcHNAdHJ1c3Rkc3Qu
+Y29tMGIGA1UdIARbMFkwVwYKYIZIAWUDAgEBATBJMEcGCCsGAQUFBwIBFjtodHRwOi8vd3d3LnRy
+dXN0ZHN0LmNvbS9jZXJ0aWZpY2F0ZXMvcG9saWN5L0FDRVMtaW5kZXguaHRtbDAdBgNVHQ4EFgQU
+CXIGThhDD+XWzMNqizF7eI+og7gwDQYJKoZIhvcNAQEFBQADggEBAKPYjtay284F5zLNAdMEA+V2
+5FYrnJmQ6AgwbN99Pe7lv7UkQIRJ4dEorsTCOlMwiPH1d25Ryvr/ma8kXxug/fKshMrfqfBfBC6t
+Fr8hlxCBPeP/h40y3JTlR4peahPJlJU90u7INJXQgNStMgiAVDzgvVJT11J8smk/f3rPanTK+gQq
+nExaBqXpIK1FZg9p8d2/6eMyi/rgwYZNcjwu2JN4Cir42NInPRmJX1p7ijvMDNpRrscL9yuwNwXs
+vFcj4jjSm2jzVhKIT0J8uDHEtdvkyCE06UgRNe76x5JXxZ805Mf29w4LTJxoeHtxMcfrHuBnQfO3
+oKfN5XozNmr6mis=
+-----END CERTIFICATE-----
+
+TURKTRUST Certificate Services Provider Root 1
+==============================================
+-----BEGIN CERTIFICATE-----
+MIID+zCCAuOgAwIBAgIBATANBgkqhkiG9w0BAQUFADCBtzE/MD0GA1UEAww2VMOcUktUUlVTVCBF
+bGVrdHJvbmlrIFNlcnRpZmlrYSBIaXptZXQgU2HEn2xhecSxY8Sxc8SxMQswCQYDVQQGDAJUUjEP
+MA0GA1UEBwwGQU5LQVJBMVYwVAYDVQQKDE0oYykgMjAwNSBUw5xSS1RSVVNUIEJpbGdpIMSwbGV0
+acWfaW0gdmUgQmlsacWfaW0gR8O8dmVubGnEn2kgSGl6bWV0bGVyaSBBLsWeLjAeFw0wNTA1MTMx
+MDI3MTdaFw0xNTAzMjIxMDI3MTdaMIG3MT8wPQYDVQQDDDZUw5xSS1RSVVNUIEVsZWt0cm9uaWsg
+U2VydGlmaWthIEhpem1ldCBTYcSfbGF5xLFjxLFzxLExCzAJBgNVBAYMAlRSMQ8wDQYDVQQHDAZB
+TktBUkExVjBUBgNVBAoMTShjKSAyMDA1IFTDnFJLVFJVU1QgQmlsZ2kgxLBsZXRpxZ9pbSB2ZSBC
+aWxpxZ9pbSBHw7x2ZW5sacSfaSBIaXptZXRsZXJpIEEuxZ4uMIIBIjANBgkqhkiG9w0BAQEFAAOC
+AQ8AMIIBCgKCAQEAylIF1mMD2Bxf3dJ7XfIMYGFbazt0K3gNfUW9InTojAPBxhEqPZW8qZSwu5GX
+yGl8hMW0kWxsE2qkVa2kheiVfrMArwDCBRj1cJ02i67L5BuBf5OI+2pVu32Fks66WJ/bMsW9Xe8i
+Si9BB35JYbOG7E6mQW6EvAPs9TscyB/C7qju6hJKjRTP8wrgUDn5CDX4EVmt5yLqS8oUBt5CurKZ
+8y1UiBAG6uEaPj1nH/vO+3yC6BFdSsG5FOpU2WabfIl9BJpiyelSPJ6c79L1JuTm5Rh8i27fbMx4
+W09ysstcP4wFjdFMjK2Sx+F4f2VsSQZQLJ4ywtdKxnWKWU51b0dewQIDAQABoxAwDjAMBgNVHRME
+BTADAQH/MA0GCSqGSIb3DQEBBQUAA4IBAQAV9VX/N5aAWSGk/KEVTCD21F/aAyT8z5Aa9CEKmu46
+sWrv7/hg0Uw2ZkUd82YCdAR7kjCo3gp2D++Vbr3JN+YaDayJSFvMgzbC9UZcWYJWtNX+I7TYVBxE
+q8Sn5RTOPEFhfEPmzcSBCYsk+1Ql1haolgxnB2+zUEfjHCQo3SqYpGH+2+oSN7wBGjSFvW5P55Fy
+B0SFHljKVETd96y5y4khctuPwGkplyqjrhgjlxxBKot8KsF8kOipKMDTkcatKIdAaLX/7KfS0zgY
+nNN9aV3wxqUeJBujR/xpB2jn5Jq07Q+hh4cCzofSSE7hvP/L8XKSRGQDJereW26fyfJOrN3H
+-----END CERTIFICATE-----
+
+TURKTRUST Certificate Services Provider Root 2
+==============================================
+-----BEGIN CERTIFICATE-----
+MIIEPDCCAySgAwIBAgIBATANBgkqhkiG9w0BAQUFADCBvjE/MD0GA1UEAww2VMOcUktUUlVTVCBF
+bGVrdHJvbmlrIFNlcnRpZmlrYSBIaXptZXQgU2HEn2xhecSxY8Sxc8SxMQswCQYDVQQGEwJUUjEP
+MA0GA1UEBwwGQW5rYXJhMV0wWwYDVQQKDFRUw5xSS1RSVVNUIEJpbGdpIMSwbGV0acWfaW0gdmUg
+QmlsacWfaW0gR8O8dmVubGnEn2kgSGl6bWV0bGVyaSBBLsWeLiAoYykgS2FzxLFtIDIwMDUwHhcN
+MDUxMTA3MTAwNzU3WhcNMTUwOTE2MTAwNzU3WjCBvjE/MD0GA1UEAww2VMOcUktUUlVTVCBFbGVr
+dHJvbmlrIFNlcnRpZmlrYSBIaXptZXQgU2HEn2xhecSxY8Sxc8SxMQswCQYDVQQGEwJUUjEPMA0G
+A1UEBwwGQW5rYXJhMV0wWwYDVQQKDFRUw5xSS1RSVVNUIEJpbGdpIMSwbGV0acWfaW0gdmUgQmls
+acWfaW0gR8O8dmVubGnEn2kgSGl6bWV0bGVyaSBBLsWeLiAoYykgS2FzxLFtIDIwMDUwggEiMA0G
+CSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQCpNn7DkUNMwxmYCMjHWHtPFoylzkkBH3MOrHUTpvqe
+LCDe2JAOCtFp0if7qnefJ1Il4std2NiDUBd9irWCPwSOtNXwSadktx4uXyCcUHVPr+G1QRT0mJKI
+x+XlZEdhR3n9wFHxwZnn3M5q+6+1ATDcRhzviuyV79z/rxAc653YsKpqhRgNF8k+v/Gb0AmJQv2g
+QrSdiVFVKc8bcLyEVK3BEx+Y9C52YItdP5qtygy/p1Zbj3e41Z55SZI/4PGXJHpsmxcPbe9TmJEr
+5A++WXkHeLuXlfSfadRYhwqp48y2WBmfJiGxxFmNskF1wK1pzpwACPI2/z7woQ8arBT9pmAPAgMB
+AAGjQzBBMB0GA1UdDgQWBBTZN7NOBf3Zz58SFq62iS/rJTqIHDAPBgNVHQ8BAf8EBQMDBwYAMA8G
+A1UdEwEB/wQFMAMBAf8wDQYJKoZIhvcNAQEFBQADggEBAHJglrfJ3NgpXiOFX7KzLXb7iNcX/ntt
+Rbj2hWyfIvwqECLsqrkw9qtY1jkQMZkpAL2JZkH7dN6RwRgLn7Vhy506vvWolKMiVW4XSf/SKfE4
+Jl3vpao6+XF75tpYHdN0wgH6PmlYX63LaL4ULptswLbcoCb6dxriJNoaN+BnrdFzgw2lGh1uEpJ+
+hGIAF728JRhX8tepb1mIvDS3LoV4nZbcFMMsilKbloxSZj2GFotHuFEJjOp9zYhys2AzsfAKRO8P
+9Qk3iCQOLGsgOqL6EfJANZxEaGM7rDNvY7wsu/LSy3Z9fYjYHcgFHW68lKlmjHdxx/qR+i9Rnuk5
+UrbnBEI=
+-----END CERTIFICATE-----
+
+SwissSign Gold CA - G2
+======================
+-----BEGIN CERTIFICATE-----
+MIIFujCCA6KgAwIBAgIJALtAHEP1Xk+wMA0GCSqGSIb3DQEBBQUAMEUxCzAJBgNVBAYTAkNIMRUw
+EwYDVQQKEwxTd2lzc1NpZ24gQUcxHzAdBgNVBAMTFlN3aXNzU2lnbiBHb2xkIENBIC0gRzIwHhcN
+MDYxMDI1MDgzMDM1WhcNMzYxMDI1MDgzMDM1WjBFMQswCQYDVQQGEwJDSDEVMBMGA1UEChMMU3dp
+c3NTaWduIEFHMR8wHQYDVQQDExZTd2lzc1NpZ24gR29sZCBDQSAtIEcyMIICIjANBgkqhkiG9w0B
+AQEFAAOCAg8AMIICCgKCAgEAr+TufoskDhJuqVAtFkQ7kpJcyrhdhJJCEyq8ZVeCQD5XJM1QiyUq
+t2/876LQwB8CJEoTlo8jE+YoWACjR8cGp4QjK7u9lit/VcyLwVcfDmJlD909Vopz2q5+bbqBHH5C
+jCA12UNNhPqE21Is8w4ndwtrvxEvcnifLtg+5hg3Wipy+dpikJKVyh+c6bM8K8vzARO/Ws/BtQpg
+vd21mWRTuKCWs2/iJneRjOBiEAKfNA+k1ZIzUd6+jbqEemA8atufK+ze3gE/bk3lUIbLtK/tREDF
+ylqM2tIrfKjuvqblCqoOpd8FUrdVxyJdMmqXl2MT28nbeTZ7hTpKxVKJ+STnnXepgv9VHKVxaSvR
+AiTysybUa9oEVeXBCsdtMDeQKuSeFDNeFhdVxVu1yzSJkvGdJo+hB9TGsnhQ2wwMC3wLjEHXuend
+jIj3o02yMszYF9rNt85mndT9Xv+9lz4pded+p2JYryU0pUHHPbwNUMoDAw8IWh+Vc3hiv69yFGkO
+peUDDniOJihC8AcLYiAQZzlG+qkDzAQ4embvIIO1jEpWjpEA/I5cgt6IoMPiaG59je883WX0XaxR
+7ySArqpWl2/5rX3aYT+YdzylkbYcjCbaZaIJbcHiVOO5ykxMgI93e2CaHt+28kgeDrpOVG2Y4OGi
+GqJ3UM/EY5LsRxmd6+ZrzsECAwEAAaOBrDCBqTAOBgNVHQ8BAf8EBAMCAQYwDwYDVR0TAQH/BAUw
+AwEB/zAdBgNVHQ4EFgQUWyV7lqRlUX64OfPAeGZe6Drn8O4wHwYDVR0jBBgwFoAUWyV7lqRlUX64
+OfPAeGZe6Drn8O4wRgYDVR0gBD8wPTA7BglghXQBWQECAQEwLjAsBggrBgEFBQcCARYgaHR0cDov
+L3JlcG9zaXRvcnkuc3dpc3NzaWduLmNvbS8wDQYJKoZIhvcNAQEFBQADggIBACe645R88a7A3hfm
+5djV9VSwg/S7zV4Fe0+fdWavPOhWfvxyeDgD2StiGwC5+OlgzczOUYrHUDFu4Up+GC9pWbY9ZIEr
+44OE5iKHjn3g7gKZYbge9LgriBIWhMIxkziWMaa5O1M/wySTVltpkuzFwbs4AOPsF6m43Md8AYOf
+Mke6UiI0HTJ6CVanfCU2qT1L2sCCbwq7EsiHSycR+R4tx5M/nttfJmtS2S6K8RTGRI0Vqbe/vd6m
+Gu6uLftIdxf+u+yvGPUqUfA5hJeVbG4bwyvEdGB5JbAKJ9/fXtI5z0V9QkvfsywexcZdylU6oJxp
+mo/a77KwPJ+HbBIrZXAVUjEaJM9vMSNQH4xPjyPDdEFjHFWoFN0+4FFQz/EbMFYOkrCChdiDyyJk
+vC24JdVUorgG6q2SpCSgwYa1ShNqR88uC1aVVMvOmttqtKay20EIhid392qgQmwLOM7XdVAyksLf
+KzAiSNDVQTglXaTpXZ/GlHXQRf0wl0OPkKsKx4ZzYEppLd6leNcG2mqeSz53OiATIgHQv2ieY2Br
+NU0LbbqhPcCT4H8js1WtciVORvnSFu+wZMEBnunKoGqYDs/YYPIvSbjkQuE4NRb0yG5P94FW6Lqj
+viOvrv1vA+ACOzB2+httQc8Bsem4yWb02ybzOqR08kkkW8mw0FfB+j564ZfJ
+-----END CERTIFICATE-----
+
+SwissSign Silver CA - G2
+========================
+-----BEGIN CERTIFICATE-----
+MIIFvTCCA6WgAwIBAgIITxvUL1S7L0swDQYJKoZIhvcNAQEFBQAwRzELMAkGA1UEBhMCQ0gxFTAT
+BgNVBAoTDFN3aXNzU2lnbiBBRzEhMB8GA1UEAxMYU3dpc3NTaWduIFNpbHZlciBDQSAtIEcyMB4X
+DTA2MTAyNTA4MzI0NloXDTM2MTAyNTA4MzI0NlowRzELMAkGA1UEBhMCQ0gxFTATBgNVBAoTDFN3
+aXNzU2lnbiBBRzEhMB8GA1UEAxMYU3dpc3NTaWduIFNpbHZlciBDQSAtIEcyMIICIjANBgkqhkiG
+9w0BAQEFAAOCAg8AMIICCgKCAgEAxPGHf9N4Mfc4yfjDmUO8x/e8N+dOcbpLj6VzHVxumK4DV644
+N0MvFz0fyM5oEMF4rhkDKxD6LHmD9ui5aLlV8gREpzn5/ASLHvGiTSf5YXu6t+WiE7brYT7QbNHm
++/pe7R20nqA1W6GSy/BJkv6FCgU+5tkL4k+73JU3/JHpMjUi0R86TieFnbAVlDLaYQ1HTWBCrpJH
+6INaUFjpiou5XaHc3ZlKHzZnu0jkg7Y360g6rw9njxcH6ATK72oxh9TAtvmUcXtnZLi2kUpCe2Uu
+MGoM9ZDulebyzYLs2aFK7PayS+VFheZteJMELpyCbTapxDFkH4aDCyr0NQp4yVXPQbBH6TCfmb5h
+qAaEuSh6XzjZG6k4sIN/c8HDO0gqgg8hm7jMqDXDhBuDsz6+pJVpATqJAHgE2cn0mRmrVn5bi4Y5
+FZGkECwJMoBgs5PAKrYYC51+jUnyEEp/+dVGLxmSo5mnJqy7jDzmDrxHB9xzUfFwZC8I+bRHHTBs
+ROopN4WSaGa8gzj+ezku01DwH/teYLappvonQfGbGHLy9YR0SslnxFSuSGTfjNFusB3hB48IHpmc
+celM2KX3RxIfdNFRnobzwqIjQAtz20um53MGjMGg6cFZrEb65i/4z3GcRm25xBWNOHkDRUjvxF3X
+CO6HOSKGsg0PWEP3calILv3q1h8CAwEAAaOBrDCBqTAOBgNVHQ8BAf8EBAMCAQYwDwYDVR0TAQH/
+BAUwAwEB/zAdBgNVHQ4EFgQUF6DNweRBtjpbO8tFnb0cwpj6hlgwHwYDVR0jBBgwFoAUF6DNweRB
+tjpbO8tFnb0cwpj6hlgwRgYDVR0gBD8wPTA7BglghXQBWQEDAQEwLjAsBggrBgEFBQcCARYgaHR0
+cDovL3JlcG9zaXRvcnkuc3dpc3NzaWduLmNvbS8wDQYJKoZIhvcNAQEFBQADggIBAHPGgeAn0i0P
+4JUw4ppBf1AsX19iYamGamkYDHRJ1l2E6kFSGG9YrVBWIGrGvShpWJHckRE1qTodvBqlYJ7YH39F
+kWnZfrt4csEGDyrOj4VwYaygzQu4OSlWhDJOhrs9xCrZ1x9y7v5RoSJBsXECYxqCsGKrXlcSH9/L
+3XWgwF15kIwb4FDm3jH+mHtwX6WQ2K34ArZv02DdQEsixT2tOnqfGhpHkXkzuoLcMmkDlm4fS/Bx
+/uNncqCxv1yL5PqZIseEuRuNI5c/7SXgz2W79WEE790eslpBIlqhn10s6FvJbakMDHiqYMZWjwFa
+DGi8aRl5xB9+lwW/xekkUV7U1UtT7dkjWjYDZaPBA61BMPNGG4WQr2W11bHkFlt4dR2Xem1ZqSqP
+e97Dh4kQmUlzeMg9vVE1dCrV8X5pGyq7O70luJpaPXJhkGaH7gzWTdQRdAtq/gsD/KNVV4n+Ssuu
+WxcFyPKNIzFTONItaj+CuY0IavdeQXRuwxF+B6wpYJE/OMpXEA29MC/HpeZBoNquBYeaoKRlbEwJ
+DIm6uNO5wJOKMPqN5ZprFQFOZ6raYlY+hAhm0sQ2fac+EPyI4NSA5QC9qvNOBqN6avlicuMJT+ub
+DgEj8Z+7fNzcbBGXJbLytGMU0gYqZ4yD9c7qB9iaah7s5Aq7KkzrCWA5zspi2C5u
+-----END CERTIFICATE-----
+
+GeoTrust Primary Certification Authority
+========================================
+-----BEGIN CERTIFICATE-----
+MIIDfDCCAmSgAwIBAgIQGKy1av1pthU6Y2yv2vrEoTANBgkqhkiG9w0BAQUFADBYMQswCQYDVQQG
+EwJVUzEWMBQGA1UEChMNR2VvVHJ1c3QgSW5jLjExMC8GA1UEAxMoR2VvVHJ1c3QgUHJpbWFyeSBD
+ZXJ0aWZpY2F0aW9uIEF1dGhvcml0eTAeFw0wNjExMjcwMDAwMDBaFw0zNjA3MTYyMzU5NTlaMFgx
+CzAJBgNVBAYTAlVTMRYwFAYDVQQKEw1HZW9UcnVzdCBJbmMuMTEwLwYDVQQDEyhHZW9UcnVzdCBQ
+cmltYXJ5IENlcnRpZmljYXRpb24gQXV0aG9yaXR5MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIB
+CgKCAQEAvrgVe//UfH1nrYNke8hCUy3f9oQIIGHWAVlqnEQRr+92/ZV+zmEwu3qDXwK9AWbK7hWN
+b6EwnL2hhZ6UOvNWiAAxz9juapYC2e0DjPt1befquFUWBRaa9OBesYjAZIVcFU2Ix7e64HXprQU9
+nceJSOC7KMgD4TCTZF5SwFlwIjVXiIrxlQqD17wxcwE07e9GceBrAqg1cmuXm2bgyxx5X9gaBGge
+RwLmnWDiNpcB3841kt++Z8dtd1k7j53WkBWUvEI0EME5+bEnPn7WinXFsq+W06Lem+SYvn3h6YGt
+tm/81w7a4DSwDRp35+MImO9Y+pyEtzavwt+s0vQQBnBxNQIDAQABo0IwQDAPBgNVHRMBAf8EBTAD
+AQH/MA4GA1UdDwEB/wQEAwIBBjAdBgNVHQ4EFgQULNVQQZcVi/CPNmFbSvtr2ZnJM5IwDQYJKoZI
+hvcNAQEFBQADggEBAFpwfyzdtzRP9YZRqSa+S7iq8XEN3GHHoOo0Hnp3DwQ16CePbJC/kRYkRj5K
+Ts4rFtULUh38H2eiAkUxT87z+gOneZ1TatnaYzr4gNfTmeGl4b7UVXGYNTq+k+qurUKykG/g/CFN
+NWMziUnWm07Kx+dOCQD32sfvmWKZd7aVIl6KoKv0uHiYyjgZmclynnjNS6yvGaBzEi38wkG6gZHa
+Floxt/m0cYASSJlyc1pZU8FjUjPtp8nSOQJw+uCxQmYpqptR7TBUIhRf2asdweSU8Pj1K/fqynhG
+1riR/aYNKxoUAT6A8EKglQdebc3MS6RFjasS6LPeWuWgfOgPIh1a6Vk=
+-----END CERTIFICATE-----
+
+thawte Primary Root CA
+======================
+-----BEGIN CERTIFICATE-----
+MIIEIDCCAwigAwIBAgIQNE7VVyDV7exJ9C/ON9srbTANBgkqhkiG9w0BAQUFADCBqTELMAkGA1UE
+BhMCVVMxFTATBgNVBAoTDHRoYXd0ZSwgSW5jLjEoMCYGA1UECxMfQ2VydGlmaWNhdGlvbiBTZXJ2
+aWNlcyBEaXZpc2lvbjE4MDYGA1UECxMvKGMpIDIwMDYgdGhhd3RlLCBJbmMuIC0gRm9yIGF1dGhv
+cml6ZWQgdXNlIG9ubHkxHzAdBgNVBAMTFnRoYXd0ZSBQcmltYXJ5IFJvb3QgQ0EwHhcNMDYxMTE3
+MDAwMDAwWhcNMzYwNzE2MjM1OTU5WjCBqTELMAkGA1UEBhMCVVMxFTATBgNVBAoTDHRoYXd0ZSwg
+SW5jLjEoMCYGA1UECxMfQ2VydGlmaWNhdGlvbiBTZXJ2aWNlcyBEaXZpc2lvbjE4MDYGA1UECxMv
+KGMpIDIwMDYgdGhhd3RlLCBJbmMuIC0gRm9yIGF1dGhvcml6ZWQgdXNlIG9ubHkxHzAdBgNVBAMT
+FnRoYXd0ZSBQcmltYXJ5IFJvb3QgQ0EwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQCs
+oPD7gFnUnMekz52hWXMJEEUMDSxuaPFsW0hoSVk3/AszGcJ3f8wQLZU0HObrTQmnHNK4yZc2AreJ
+1CRfBsDMRJSUjQJib+ta3RGNKJpchJAQeg29dGYvajig4tVUROsdB58Hum/u6f1OCyn1PoSgAfGc
+q/gcfomk6KHYcWUNo1F77rzSImANuVud37r8UVsLr5iy6S7pBOhih94ryNdOwUxkHt3Ph1i6Sk/K
+aAcdHJ1KxtUvkcx8cXIcxcBn6zL9yZJclNqFwJu/U30rCfSMnZEfl2pSy94JNqR32HuHUETVPm4p
+afs5SSYeCaWAe0At6+gnhcn+Yf1+5nyXHdWdAgMBAAGjQjBAMA8GA1UdEwEB/wQFMAMBAf8wDgYD
+VR0PAQH/BAQDAgEGMB0GA1UdDgQWBBR7W0XPr87Lev0xkhpqtvNG61dIUDANBgkqhkiG9w0BAQUF
+AAOCAQEAeRHAS7ORtvzw6WfUDW5FvlXok9LOAz/t2iWwHVfLHjp2oEzsUHboZHIMpKnxuIvW1oeE
+uzLlQRHAd9mzYJ3rG9XRbkREqaYB7FViHXe4XI5ISXycO1cRrK1zN44veFyQaEfZYGDm/Ac9IiAX
+xPcW6cTYcvnIc3zfFi8VqT79aie2oetaupgf1eNNZAqdE8hhuvU5HIe6uL17In/2/qxAeeWsEG89
+jxt5dovEN7MhGITlNgDrYyCZuen+MwS7QcjBAvlEYyCegc5C09Y/LHbTY5xZ3Y+m4Q6gLkH3LpVH
+z7z9M/P2C2F+fpErgUfCJzDupxBdN49cOSvkBPB7jVaMaA==
+-----END CERTIFICATE-----
+
+VeriSign Class 3 Public Primary Certification Authority - G5
+============================================================
+-----BEGIN CERTIFICATE-----
+MIIE0zCCA7ugAwIBAgIQGNrRniZ96LtKIVjNzGs7SjANBgkqhkiG9w0BAQUFADCByjELMAkGA1UE
+BhMCVVMxFzAVBgNVBAoTDlZlcmlTaWduLCBJbmMuMR8wHQYDVQQLExZWZXJpU2lnbiBUcnVzdCBO
+ZXR3b3JrMTowOAYDVQQLEzEoYykgMjAwNiBWZXJpU2lnbiwgSW5jLiAtIEZvciBhdXRob3JpemVk
+IHVzZSBvbmx5MUUwQwYDVQQDEzxWZXJpU2lnbiBDbGFzcyAzIFB1YmxpYyBQcmltYXJ5IENlcnRp
+ZmljYXRpb24gQXV0aG9yaXR5IC0gRzUwHhcNMDYxMTA4MDAwMDAwWhcNMzYwNzE2MjM1OTU5WjCB
+yjELMAkGA1UEBhMCVVMxFzAVBgNVBAoTDlZlcmlTaWduLCBJbmMuMR8wHQYDVQQLExZWZXJpU2ln
+biBUcnVzdCBOZXR3b3JrMTowOAYDVQQLEzEoYykgMjAwNiBWZXJpU2lnbiwgSW5jLiAtIEZvciBh
+dXRob3JpemVkIHVzZSBvbmx5MUUwQwYDVQQDEzxWZXJpU2lnbiBDbGFzcyAzIFB1YmxpYyBQcmlt
+YXJ5IENlcnRpZmljYXRpb24gQXV0aG9yaXR5IC0gRzUwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAw
+ggEKAoIBAQCvJAgIKXo1nmAMqudLO07cfLw8RRy7K+D+KQL5VwijZIUVJ/XxrcgxiV0i6CqqpkKz
+j/i5Vbext0uz/o9+B1fs70PbZmIVYc9gDaTY3vjgw2IIPVQT60nKWVSFJuUrjxuf6/WhkcIzSdhD
+Y2pSS9KP6HBRTdGJaXvHcPaz3BJ023tdS1bTlr8Vd6Gw9KIl8q8ckmcY5fQGBO+QueQA5N06tRn/
+Arr0PO7gi+s3i+z016zy9vA9r911kTMZHRxAy3QkGSGT2RT+rCpSx4/VBEnkjWNHiDxpg8v+R70r
+fk/Fla4OndTRQ8Bnc+MUCH7lP59zuDMKz10/NIeWiu5T6CUVAgMBAAGjgbIwga8wDwYDVR0TAQH/
+BAUwAwEB/zAOBgNVHQ8BAf8EBAMCAQYwbQYIKwYBBQUHAQwEYTBfoV2gWzBZMFcwVRYJaW1hZ2Uv
+Z2lmMCEwHzAHBgUrDgMCGgQUj+XTGoasjY5rw8+AatRIGCx7GS4wJRYjaHR0cDovL2xvZ28udmVy
+aXNpZ24uY29tL3ZzbG9nby5naWYwHQYDVR0OBBYEFH/TZafC3ey78DAJ80M5+gKvMzEzMA0GCSqG
+SIb3DQEBBQUAA4IBAQCTJEowX2LP2BqYLz3q3JktvXf2pXkiOOzEp6B4Eq1iDkVwZMXnl2YtmAl+
+X6/WzChl8gGqCBpH3vn5fJJaCGkgDdk+bW48DW7Y5gaRQBi5+MHt39tBquCWIMnNZBU4gcmU7qKE
+KQsTb47bDN0lAtukixlE0kF6BWlKWE9gyn6CagsCqiUXObXbf+eEZSqVir2G3l6BFoMtEMze/aiC
+Km0oHw0LxOXnGiYZ4fQRbxC1lfznQgUy286dUV4otp6F01vvpX1FQHKOtw5rDgb7MzVIcbidJ4vE
+ZV8NhnacRHr2lVz2XTIIM6RUthg/aFzyQkqFOFSDX9HoLPKsEdao7WNq
+-----END CERTIFICATE-----
+
+SecureTrust CA
+==============
+-----BEGIN CERTIFICATE-----
+MIIDuDCCAqCgAwIBAgIQDPCOXAgWpa1Cf/DrJxhZ0DANBgkqhkiG9w0BAQUFADBIMQswCQYDVQQG
+EwJVUzEgMB4GA1UEChMXU2VjdXJlVHJ1c3QgQ29ycG9yYXRpb24xFzAVBgNVBAMTDlNlY3VyZVRy
+dXN0IENBMB4XDTA2MTEwNzE5MzExOFoXDTI5MTIzMTE5NDA1NVowSDELMAkGA1UEBhMCVVMxIDAe
+BgNVBAoTF1NlY3VyZVRydXN0IENvcnBvcmF0aW9uMRcwFQYDVQQDEw5TZWN1cmVUcnVzdCBDQTCC
+ASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAKukgeWVzfX2FI7CT8rU4niVWJxB4Q2ZQCQX
+OZEzZum+4YOvYlyJ0fwkW2Gz4BERQRwdbvC4u/jep4G6pkjGnx29vo6pQT64lO0pGtSO0gMdA+9t
+DWccV9cGrcrI9f4Or2YlSASWC12juhbDCE/RRvgUXPLIXgGZbf2IzIaowW8xQmxSPmjL8xk037uH
+GFaAJsTQ3MBv396gwpEWoGQRS0S8Hvbn+mPeZqx2pHGj7DaUaHp3pLHnDi+BeuK1cobvomuL8A/b
+01k/unK8RCSc43Oz969XL0Imnal0ugBS8kvNU3xHCzaFDmapCJcWNFfBZveA4+1wVMeT4C4oFVmH
+ursCAwEAAaOBnTCBmjATBgkrBgEEAYI3FAIEBh4EAEMAQTALBgNVHQ8EBAMCAYYwDwYDVR0TAQH/
+BAUwAwEB/zAdBgNVHQ4EFgQUQjK2FvoE/f5dS3rD/fdMQB1aQ68wNAYDVR0fBC0wKzApoCegJYYj
+aHR0cDovL2NybC5zZWN1cmV0cnVzdC5jb20vU1RDQS5jcmwwEAYJKwYBBAGCNxUBBAMCAQAwDQYJ
+KoZIhvcNAQEFBQADggEBADDtT0rhWDpSclu1pqNlGKa7UTt36Z3q059c4EVlew3KW+JwULKUBRSu
+SceNQQcSc5R+DCMh/bwQf2AQWnL1mA6s7Ll/3XpvXdMc9P+IBWlCqQVxyLesJugutIxq/3HcuLHf
+mbx8IVQr5Fiiu1cprp6poxkmD5kuCLDv/WnPmRoJjeOnnyvJNjR7JLN4TJUXpAYmHrZkUjZfYGfZ
+nMUFdAvnZyPSCPyI6a6Lf+Ew9Dd+/cYy2i2eRDAwbO4H3tI0/NL/QPZL9GZGBlSm8jIKYyYwa5vR
+3ItHuuG51WLQoqD0ZwV4KWMabwTW+MZMo5qxN7SN5ShLHZ4swrhovO0C7jE=
+-----END CERTIFICATE-----
+
+Secure Global CA
+================
+-----BEGIN CERTIFICATE-----
+MIIDvDCCAqSgAwIBAgIQB1YipOjUiolN9BPI8PjqpTANBgkqhkiG9w0BAQUFADBKMQswCQYDVQQG
+EwJVUzEgMB4GA1UEChMXU2VjdXJlVHJ1c3QgQ29ycG9yYXRpb24xGTAXBgNVBAMTEFNlY3VyZSBH
+bG9iYWwgQ0EwHhcNMDYxMTA3MTk0MjI4WhcNMjkxMjMxMTk1MjA2WjBKMQswCQYDVQQGEwJVUzEg
+MB4GA1UEChMXU2VjdXJlVHJ1c3QgQ29ycG9yYXRpb24xGTAXBgNVBAMTEFNlY3VyZSBHbG9iYWwg
+Q0EwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQCvNS7YrGxVaQZx5RNoJLNP2MwhR/jx
+YDiJiQPpvepeRlMJ3Fz1Wuj3RSoC6zFh1ykzTM7HfAo3fg+6MpjhHZevj8fcyTiW89sa/FHtaMbQ
+bqR8JNGuQsiWUGMu4P51/pinX0kuleM5M2SOHqRfkNJnPLLZ/kG5VacJjnIFHovdRIWCQtBJwB1g
+8NEXLJXr9qXBkqPFwqcIYA1gBBCWeZ4WNOaptvolRTnIHmX5k/Wq8VLcmZg9pYYaDDUz+kulBAYV
+HDGA76oYa8J719rO+TMg1fW9ajMtgQT7sFzUnKPiXB3jqUJ1XnvUd+85VLrJChgbEplJL4hL/VBi
+0XPnj3pDAgMBAAGjgZ0wgZowEwYJKwYBBAGCNxQCBAYeBABDAEEwCwYDVR0PBAQDAgGGMA8GA1Ud
+EwEB/wQFMAMBAf8wHQYDVR0OBBYEFK9EBMJBfkiD2045AuzshHrmzsmkMDQGA1UdHwQtMCswKaAn
+oCWGI2h0dHA6Ly9jcmwuc2VjdXJldHJ1c3QuY29tL1NHQ0EuY3JsMBAGCSsGAQQBgjcVAQQDAgEA
+MA0GCSqGSIb3DQEBBQUAA4IBAQBjGghAfaReUw132HquHw0LURYD7xh8yOOvaliTFGCRsoTciE6+
+OYo68+aCiV0BN7OrJKQVDpI1WkpEXk5X+nXOH0jOZvQ8QCaSmGwb7iRGDBezUqXbpZGRzzfTb+cn
+CDpOGR86p1hcF895P4vkp9MmI50mD1hp/Ed+stCNi5O/KU9DaXR2Z0vPB4zmAve14bRDtUstFJ/5
+3CYNv6ZHdAbYiNE6KTCEztI5gGIbqMdXSbxqVVFnFUq+NQfk1XWYN3kwFNspnWzFacxHVaIw98xc
+f8LDmBxrThaA63p4ZUWiABqvDA1VZDRIuJK58bRQKfJPIx/abKwfROHdI3hRW8cW
+-----END CERTIFICATE-----
+
+COMODO Certification Authority
+==============================
+-----BEGIN CERTIFICATE-----
+MIIEHTCCAwWgAwIBAgIQToEtioJl4AsC7j41AkblPTANBgkqhkiG9w0BAQUFADCBgTELMAkGA1UE
+BhMCR0IxGzAZBgNVBAgTEkdyZWF0ZXIgTWFuY2hlc3RlcjEQMA4GA1UEBxMHU2FsZm9yZDEaMBgG
+A1UEChMRQ09NT0RPIENBIExpbWl0ZWQxJzAlBgNVBAMTHkNPTU9ETyBDZXJ0aWZpY2F0aW9uIEF1
+dGhvcml0eTAeFw0wNjEyMDEwMDAwMDBaFw0yOTEyMzEyMzU5NTlaMIGBMQswCQYDVQQGEwJHQjEb
+MBkGA1UECBMSR3JlYXRlciBNYW5jaGVzdGVyMRAwDgYDVQQHEwdTYWxmb3JkMRowGAYDVQQKExFD
+T01PRE8gQ0EgTGltaXRlZDEnMCUGA1UEAxMeQ09NT0RPIENlcnRpZmljYXRpb24gQXV0aG9yaXR5
+MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEA0ECLi3LjkRv3UcEbVASY06m/weaKXTuH
++7uIzg3jLz8GlvCiKVCZrts7oVewdFFxze1CkU1B/qnI2GqGd0S7WWaXUF601CxwRM/aN5VCaTww
+xHGzUvAhTaHYujl8HJ6jJJ3ygxaYqhZ8Q5sVW7euNJH+1GImGEaaP+vB+fGQV+useg2L23IwambV
+4EajcNxo2f8ESIl33rXp+2dtQem8Ob0y2WIC8bGoPW43nOIv4tOiJovGuFVDiOEjPqXSJDlqR6sA
+1KGzqSX+DT+nHbrTUcELpNqsOO9VUCQFZUaTNE8tja3G1CEZ0o7KBWFxB3NH5YoZEr0ETc5OnKVI
+rLsm9wIDAQABo4GOMIGLMB0GA1UdDgQWBBQLWOWLxkwVN6RAqTCpIb5HNlpW/zAOBgNVHQ8BAf8E
+BAMCAQYwDwYDVR0TAQH/BAUwAwEB/zBJBgNVHR8EQjBAMD6gPKA6hjhodHRwOi8vY3JsLmNvbW9k
+b2NhLmNvbS9DT01PRE9DZXJ0aWZpY2F0aW9uQXV0aG9yaXR5LmNybDANBgkqhkiG9w0BAQUFAAOC
+AQEAPpiem/Yb6dc5t3iuHXIYSdOH5EOC6z/JqvWote9VfCFSZfnVDeFs9D6Mk3ORLgLETgdxb8CP
+OGEIqB6BCsAvIC9Bi5HcSEW88cbeunZrM8gALTFGTO3nnc+IlP8zwFboJIYmuNg4ON8qa90SzMc/
+RxdMosIGlgnW2/4/PEZB31jiVg88O8EckzXZOFKs7sjsLjBOlDW0JB9LeGna8gI4zJVSk/BwJVmc
+IGfE7vmLV2H0knZ9P4SNVbfo5azV8fUZVqZa+5Acr5Pr5RzUZ5ddBA6+C4OmF4O5MBKgxTMVBbkN
++8cFduPYSo38NBejxiEovjBFMR7HeL5YYTisO+IBZQ==
+-----END CERTIFICATE-----
+
+Network Solutions Certificate Authority
+=======================================
+-----BEGIN CERTIFICATE-----
+MIID5jCCAs6gAwIBAgIQV8szb8JcFuZHFhfjkDFo4DANBgkqhkiG9w0BAQUFADBiMQswCQYDVQQG
+EwJVUzEhMB8GA1UEChMYTmV0d29yayBTb2x1dGlvbnMgTC5MLkMuMTAwLgYDVQQDEydOZXR3b3Jr
+IFNvbHV0aW9ucyBDZXJ0aWZpY2F0ZSBBdXRob3JpdHkwHhcNMDYxMjAxMDAwMDAwWhcNMjkxMjMx
+MjM1OTU5WjBiMQswCQYDVQQGEwJVUzEhMB8GA1UEChMYTmV0d29yayBTb2x1dGlvbnMgTC5MLkMu
+MTAwLgYDVQQDEydOZXR3b3JrIFNvbHV0aW9ucyBDZXJ0aWZpY2F0ZSBBdXRob3JpdHkwggEiMA0G
+CSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQDkvH6SMG3G2I4rC7xGzuAnlt7e+foS0zwzc7MEL7xx
+jOWftiJgPl9dzgn/ggwbmlFQGiaJ3dVhXRncEg8tCqJDXRfQNJIg6nPPOCwGJgl6cvf6UDL4wpPT
+aaIjzkGxzOTVHzbRijr4jGPiFFlp7Q3Tf2vouAPlT2rlmGNpSAW+Lv8ztumXWWn4Zxmuk2GWRBXT
+crA/vGp97Eh/jcOrqnErU2lBUzS1sLnFBgrEsEX1QV1uiUV7PTsmjHTC5dLRfbIR1PtYMiKagMnc
+/Qzpf14Dl847ABSHJ3A4qY5usyd2mFHgBeMhqxrVhSI8KbWaFsWAqPS7azCPL0YCorEMIuDTAgMB
+AAGjgZcwgZQwHQYDVR0OBBYEFCEwyfsA106Y2oeqKtCnLrFAMadMMA4GA1UdDwEB/wQEAwIBBjAP
+BgNVHRMBAf8EBTADAQH/MFIGA1UdHwRLMEkwR6BFoEOGQWh0dHA6Ly9jcmwubmV0c29sc3NsLmNv
+bS9OZXR3b3JrU29sdXRpb25zQ2VydGlmaWNhdGVBdXRob3JpdHkuY3JsMA0GCSqGSIb3DQEBBQUA
+A4IBAQC7rkvnt1frf6ott3NHhWrB5KUd5Oc86fRZZXe1eltajSU24HqXLjjAV2CDmAaDn7l2em5Q
+4LqILPxFzBiwmZVRDuwduIj/h1AcgsLj4DKAv6ALR8jDMe+ZZzKATxcheQxpXN5eNK4CtSbqUN9/
+GGUsyfJj4akH/nxxH2szJGoeBfcFaMBqEssuXmHLrijTfsK0ZpEmXzwuJF/LWA/rKOyvEZbz3Htv
+wKeI8lN3s2Berq4o2jUsbzRF0ybh3uxbTydrFny9RAQYgrOJeRcQcT16ohZO9QHNpGxlaKFJdlxD
+ydi8NmdspZS11My5vWo1ViHe2MPr+8ukYEywVaCge1ey
+-----END CERTIFICATE-----
+
+WellsSecure Public Root Certificate Authority
+=============================================
+-----BEGIN CERTIFICATE-----
+MIIEvTCCA6WgAwIBAgIBATANBgkqhkiG9w0BAQUFADCBhTELMAkGA1UEBhMCVVMxIDAeBgNVBAoM
+F1dlbGxzIEZhcmdvIFdlbGxzU2VjdXJlMRwwGgYDVQQLDBNXZWxscyBGYXJnbyBCYW5rIE5BMTYw
+NAYDVQQDDC1XZWxsc1NlY3VyZSBQdWJsaWMgUm9vdCBDZXJ0aWZpY2F0ZSBBdXRob3JpdHkwHhcN
+MDcxMjEzMTcwNzU0WhcNMjIxMjE0MDAwNzU0WjCBhTELMAkGA1UEBhMCVVMxIDAeBgNVBAoMF1dl
+bGxzIEZhcmdvIFdlbGxzU2VjdXJlMRwwGgYDVQQLDBNXZWxscyBGYXJnbyBCYW5rIE5BMTYwNAYD
+VQQDDC1XZWxsc1NlY3VyZSBQdWJsaWMgUm9vdCBDZXJ0aWZpY2F0ZSBBdXRob3JpdHkwggEiMA0G
+CSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQDub7S9eeKPCCGeOARBJe+rWxxTkqxtnt3CxC5FlAM1
+iGd0V+PfjLindo8796jE2yljDpFoNoqXjopxaAkH5OjUDk/41itMpBb570OYj7OeUt9tkTmPOL13
+i0Nj67eT/DBMHAGTthP796EfvyXhdDcsHqRePGj4S78NuR4uNuip5Kf4D8uCdXw1LSLWwr8L87T8
+bJVhHlfXBIEyg1J55oNjz7fLY4sR4r1e6/aN7ZVyKLSsEmLpSjPmgzKuBXWVvYSV2ypcm44uDLiB
+K0HmOFafSZtsdvqKXfcBeYF8wYNABf5x/Qw/zE5gCQ5lRxAvAcAFP4/4s0HvWkJ+We/SlwxlAgMB
+AAGjggE0MIIBMDAPBgNVHRMBAf8EBTADAQH/MDkGA1UdHwQyMDAwLqAsoCqGKGh0dHA6Ly9jcmwu
+cGtpLndlbGxzZmFyZ28uY29tL3dzcHJjYS5jcmwwDgYDVR0PAQH/BAQDAgHGMB0GA1UdDgQWBBQm
+lRkQ2eihl5H/3BnZtQQ+0nMKajCBsgYDVR0jBIGqMIGngBQmlRkQ2eihl5H/3BnZtQQ+0nMKaqGB
+i6SBiDCBhTELMAkGA1UEBhMCVVMxIDAeBgNVBAoMF1dlbGxzIEZhcmdvIFdlbGxzU2VjdXJlMRww
+GgYDVQQLDBNXZWxscyBGYXJnbyBCYW5rIE5BMTYwNAYDVQQDDC1XZWxsc1NlY3VyZSBQdWJsaWMg
+Um9vdCBDZXJ0aWZpY2F0ZSBBdXRob3JpdHmCAQEwDQYJKoZIhvcNAQEFBQADggEBALkVsUSRzCPI
+K0134/iaeycNzXK7mQDKfGYZUMbVmO2rvwNa5U3lHshPcZeG1eMd/ZDJPHV3V3p9+N701NX3leZ0
+bh08rnyd2wIDBSxxSyU+B+NemvVmFymIGjifz6pBA4SXa5M4esowRBskRDPQ5NHcKDj0E0M1NSlj
+qHyita04pO2t/caaH/+Xc/77szWnk4bGdpEA5qxRFsQnMlzbc9qlk1eOPm01JghZ1edE13YgY+es
+E2fDbbFwRnzVlhE9iW9dqKHrjQrawx0zbKPqZxmamX9LPYNRKh3KL4YMon4QLSvUFpULB6ouFJJJ
+tylv2G0xffX8oRAHh84vWdw+WNs=
+-----END CERTIFICATE-----
+
+COMODO ECC Certification Authority
+==================================
+-----BEGIN CERTIFICATE-----
+MIICiTCCAg+gAwIBAgIQH0evqmIAcFBUTAGem2OZKjAKBggqhkjOPQQDAzCBhTELMAkGA1UEBhMC
+R0IxGzAZBgNVBAgTEkdyZWF0ZXIgTWFuY2hlc3RlcjEQMA4GA1UEBxMHU2FsZm9yZDEaMBgGA1UE
+ChMRQ09NT0RPIENBIExpbWl0ZWQxKzApBgNVBAMTIkNPTU9ETyBFQ0MgQ2VydGlmaWNhdGlvbiBB
+dXRob3JpdHkwHhcNMDgwMzA2MDAwMDAwWhcNMzgwMTE4MjM1OTU5WjCBhTELMAkGA1UEBhMCR0Ix
+GzAZBgNVBAgTEkdyZWF0ZXIgTWFuY2hlc3RlcjEQMA4GA1UEBxMHU2FsZm9yZDEaMBgGA1UEChMR
+Q09NT0RPIENBIExpbWl0ZWQxKzApBgNVBAMTIkNPTU9ETyBFQ0MgQ2VydGlmaWNhdGlvbiBBdXRo
+b3JpdHkwdjAQBgcqhkjOPQIBBgUrgQQAIgNiAAQDR3svdcmCFYX7deSRFtSrYpn1PlILBs5BAH+X
+4QokPB0BBO490o0JlwzgdeT6+3eKKvUDYEs2ixYjFq0JcfRK9ChQtP6IHG4/bC8vCVlbpVsLM5ni
+wz2J+Wos77LTBumjQjBAMB0GA1UdDgQWBBR1cacZSBm8nZ3qQUfflMRId5nTeTAOBgNVHQ8BAf8E
+BAMCAQYwDwYDVR0TAQH/BAUwAwEB/zAKBggqhkjOPQQDAwNoADBlAjEA7wNbeqy3eApyt4jf/7VG
+FAkK+qDmfQjGGoe9GKhzvSbKYAydzpmfz1wPMOG+FDHqAjAU9JM8SaczepBGR7NjfRObTrdvGDeA
+U/7dIOA1mjbRxwG55tzd8/8dLDoWV9mSOdY=
+-----END CERTIFICATE-----
+
+IGC/A
+=====
+-----BEGIN CERTIFICATE-----
+MIIEAjCCAuqgAwIBAgIFORFFEJQwDQYJKoZIhvcNAQEFBQAwgYUxCzAJBgNVBAYTAkZSMQ8wDQYD
+VQQIEwZGcmFuY2UxDjAMBgNVBAcTBVBhcmlzMRAwDgYDVQQKEwdQTS9TR0ROMQ4wDAYDVQQLEwVE
+Q1NTSTEOMAwGA1UEAxMFSUdDL0ExIzAhBgkqhkiG9w0BCQEWFGlnY2FAc2dkbi5wbS5nb3V2LmZy
+MB4XDTAyMTIxMzE0MjkyM1oXDTIwMTAxNzE0MjkyMlowgYUxCzAJBgNVBAYTAkZSMQ8wDQYDVQQI
+EwZGcmFuY2UxDjAMBgNVBAcTBVBhcmlzMRAwDgYDVQQKEwdQTS9TR0ROMQ4wDAYDVQQLEwVEQ1NT
+STEOMAwGA1UEAxMFSUdDL0ExIzAhBgkqhkiG9w0BCQEWFGlnY2FAc2dkbi5wbS5nb3V2LmZyMIIB
+IjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAsh/R0GLFMzvABIaIs9z4iPf930Pfeo2aSVz2
+TqrMHLmh6yeJ8kbpO0px1R2OLc/mratjUMdUC24SyZA2xtgv2pGqaMVy/hcKshd+ebUyiHDKcMCW
+So7kVc0dJ5S/znIq7Fz5cyD+vfcuiWe4u0dzEvfRNWk68gq5rv9GQkaiv6GFGvm/5P9JhfejcIYy
+HF2fYPepraX/z9E0+X1bF8bc1g4oa8Ld8fUzaJ1O/Id8NhLWo4DoQw1VYZTqZDdH6nfK0LJYBcNd
+frGoRpAxVs5wKpayMLh35nnAvSk7/ZR3TL0gzUEl4C7HG7vupARB0l2tEmqKm0f7yd1GQOGdPDPQ
+tQIDAQABo3cwdTAPBgNVHRMBAf8EBTADAQH/MAsGA1UdDwQEAwIBRjAVBgNVHSAEDjAMMAoGCCqB
+egF5AQEBMB0GA1UdDgQWBBSjBS8YYFDCiQrdKyFP/45OqDAxNjAfBgNVHSMEGDAWgBSjBS8YYFDC
+iQrdKyFP/45OqDAxNjANBgkqhkiG9w0BAQUFAAOCAQEABdwm2Pp3FURo/C9mOnTgXeQp/wYHE4RK
+q89toB9RlPhJy3Q2FLwV3duJL92PoF189RLrn544pEfMs5bZvpwlqwN+Mw+VgQ39FuCIvjfwbF3Q
+MZsyK10XZZOYYLxuj7GoPB7ZHPOpJkL5ZB3C55L29B5aqhlSXa/oovdgoPaN8In1buAKBQGVyYsg
+Crpa/JosPL3Dt8ldeCUFP1YUmwza+zpI/pdpXsoQhvdOlgQITeywvl3cO45Pwf2aNjSaTFR+FwNI
+lQgRHAdvhQh+XU3Endv7rs6y0bO4g2wdsrN58dhwmX7wEwLOXt1R0982gaEbeC9xs/FZTEYYKKuF
+0mBWWg==
+-----END CERTIFICATE-----
+
+Security Communication EV RootCA1
+=================================
+-----BEGIN CERTIFICATE-----
+MIIDfTCCAmWgAwIBAgIBADANBgkqhkiG9w0BAQUFADBgMQswCQYDVQQGEwJKUDElMCMGA1UEChMc
+U0VDT00gVHJ1c3QgU3lzdGVtcyBDTy4sTFRELjEqMCgGA1UECxMhU2VjdXJpdHkgQ29tbXVuaWNh
+dGlvbiBFViBSb290Q0ExMB4XDTA3MDYwNjAyMTIzMloXDTM3MDYwNjAyMTIzMlowYDELMAkGA1UE
+BhMCSlAxJTAjBgNVBAoTHFNFQ09NIFRydXN0IFN5c3RlbXMgQ08uLExURC4xKjAoBgNVBAsTIVNl
+Y3VyaXR5IENvbW11bmljYXRpb24gRVYgUm9vdENBMTCCASIwDQYJKoZIhvcNAQEBBQADggEPADCC
+AQoCggEBALx/7FebJOD+nLpCeamIivqA4PUHKUPqjgo0No0c+qe1OXj/l3X3L+SqawSERMqm4miO
+/VVQYg+kcQ7OBzgtQoVQrTyWb4vVog7P3kmJPdZkLjjlHmy1V4qe70gOzXppFodEtZDkBp2uoQSX
+WHnvIEqCa4wiv+wfD+mEce3xDuS4GBPMVjZd0ZoeUWs5bmB2iDQL87PRsJ3KYeJkHcFGB7hj3R4z
+ZbOOCVVSPbW9/wfrrWFVGCypaZhKqkDFMxRldAD5kd6vA0jFQFTcD4SQaCDFkpbcLuUCRarAX1T4
+bepJz11sS6/vmsJWXMY1VkJqMF/Cq/biPT+zyRGPMUzXn0kCAwEAAaNCMEAwHQYDVR0OBBYEFDVK
+9U2vP9eCOKyrcWUXdYydVZPmMA4GA1UdDwEB/wQEAwIBBjAPBgNVHRMBAf8EBTADAQH/MA0GCSqG
+SIb3DQEBBQUAA4IBAQCoh+ns+EBnXcPBZsdAS5f8hxOQWsTvoMpfi7ent/HWtWS3irO4G8za+6xm
+iEHO6Pzk2x6Ipu0nUBsCMCRGef4Eh3CXQHPRwMFXGZpppSeZq51ihPZRwSzJIxXYKLerJRO1RuGG
+Av8mjMSIkh1W/hln8lXkgKNrnKt34VFxDSDbEJrbvXZ5B3eZKK2aXtqxT0QsNY6llsf9g/BYxnnW
+mHyojf6GPgcWkuF75x3sM3Z+Qi5KhfmRiWiEA4Glm5q+4zfFVKtWOxgtQaQM+ELbmaDgcm+7XeEW
+T1MKZPlO9L9OVL14bIjqv5wTJMJwaaJ/D8g8rQjJsJhAoyrniIPtd490
+-----END CERTIFICATE-----
+
+OISTE WISeKey Global Root GA CA
+===============================
+-----BEGIN CERTIFICATE-----
+MIID8TCCAtmgAwIBAgIQQT1yx/RrH4FDffHSKFTfmjANBgkqhkiG9w0BAQUFADCBijELMAkGA1UE
+BhMCQ0gxEDAOBgNVBAoTB1dJU2VLZXkxGzAZBgNVBAsTEkNvcHlyaWdodCAoYykgMjAwNTEiMCAG
+A1UECxMZT0lTVEUgRm91bmRhdGlvbiBFbmRvcnNlZDEoMCYGA1UEAxMfT0lTVEUgV0lTZUtleSBH
+bG9iYWwgUm9vdCBHQSBDQTAeFw0wNTEyMTExNjAzNDRaFw0zNzEyMTExNjA5NTFaMIGKMQswCQYD
+VQQGEwJDSDEQMA4GA1UEChMHV0lTZUtleTEbMBkGA1UECxMSQ29weXJpZ2h0IChjKSAyMDA1MSIw
+IAYDVQQLExlPSVNURSBGb3VuZGF0aW9uIEVuZG9yc2VkMSgwJgYDVQQDEx9PSVNURSBXSVNlS2V5
+IEdsb2JhbCBSb290IEdBIENBMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAy0+zAJs9
+Nt350UlqaxBJH+zYK7LG+DKBKUOVTJoZIyEVRd7jyBxRVVuuk+g3/ytr6dTqvirdqFEr12bDYVxg
+Asj1znJ7O7jyTmUIms2kahnBAbtzptf2w93NvKSLtZlhuAGio9RN1AU9ka34tAhxZK9w8RxrfvbD
+d50kc3vkDIzh2TbhmYsFmQvtRTEJysIA2/dyoJaqlYfQjse2YXMNdmaM3Bu0Y6Kff5MTMPGhJ9vZ
+/yxViJGg4E8HsChWjBgbl0SOid3gF27nKu+POQoxhILYQBRJLnpB5Kf+42TMwVlxSywhp1t94B3R
+LoGbw9ho972WG6xwsRYUC9tguSYBBQIDAQABo1EwTzALBgNVHQ8EBAMCAYYwDwYDVR0TAQH/BAUw
+AwEB/zAdBgNVHQ4EFgQUswN+rja8sHnR3JQmthG+IbJphpQwEAYJKwYBBAGCNxUBBAMCAQAwDQYJ
+KoZIhvcNAQEFBQADggEBAEuh/wuHbrP5wUOxSPMowB0uyQlB+pQAHKSkq0lPjz0e701vvbyk9vIm
+MMkQyh2I+3QZH4VFvbBsUfk2ftv1TDI6QU9bR8/oCy22xBmddMVHxjtqD6wU2zz0c5ypBd8A3HR4
++vg1YFkCExh8vPtNsCBtQ7tgMHpnM1zFmdH4LTlSc/uMqpclXHLZCB6rTjzjgTGfA6b7wP4piFXa
+hNVQA7bihKOmNqoROgHhGEvWRGizPflTdISzRpFGlgC3gCy24eMQ4tui5yiPAZZiFj4A4xylNoEY
+okxSdsARo27mHbrjWr42U8U+dY+GaSlYU7Wcu2+fXMUY7N0v4ZjJ/L7fCg0=
+-----END CERTIFICATE-----
+
+Microsec e-Szigno Root CA
+=========================
+-----BEGIN CERTIFICATE-----
+MIIHqDCCBpCgAwIBAgIRAMy4579OKRr9otxmpRwsDxEwDQYJKoZIhvcNAQEFBQAwcjELMAkGA1UE
+BhMCSFUxETAPBgNVBAcTCEJ1ZGFwZXN0MRYwFAYDVQQKEw1NaWNyb3NlYyBMdGQuMRQwEgYDVQQL
+EwtlLVN6aWdubyBDQTEiMCAGA1UEAxMZTWljcm9zZWMgZS1Temlnbm8gUm9vdCBDQTAeFw0wNTA0
+MDYxMjI4NDRaFw0xNzA0MDYxMjI4NDRaMHIxCzAJBgNVBAYTAkhVMREwDwYDVQQHEwhCdWRhcGVz
+dDEWMBQGA1UEChMNTWljcm9zZWMgTHRkLjEUMBIGA1UECxMLZS1Temlnbm8gQ0ExIjAgBgNVBAMT
+GU1pY3Jvc2VjIGUtU3ppZ25vIFJvb3QgQ0EwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIB
+AQDtyADVgXvNOABHzNuEwSFpLHSQDCHZU4ftPkNEU6+r+ICbPHiN1I2uuO/TEdyB5s87lozWbxXG
+d36hL+BfkrYn13aaHUM86tnsL+4582pnS4uCzyL4ZVX+LMsvfUh6PXX5qqAnu3jCBspRwn5mS6/N
+oqdNAoI/gqyFxuEPkEeZlApxcpMqyabAvjxWTHOSJ/FrtfX9/DAFYJLG65Z+AZHCabEeHXtTRbjc
+QR/Ji3HWVBTji1R4P770Yjtb9aPs1ZJ04nQw7wHb4dSrmZsqa/i9phyGI0Jf7Enemotb9HI6QMVJ
+PqW+jqpx62z69Rrkav17fVVA71hu5tnVvCSrwe+3AgMBAAGjggQ3MIIEMzBnBggrBgEFBQcBAQRb
+MFkwKAYIKwYBBQUHMAGGHGh0dHBzOi8vcmNhLmUtc3ppZ25vLmh1L29jc3AwLQYIKwYBBQUHMAKG
+IWh0dHA6Ly93d3cuZS1zemlnbm8uaHUvUm9vdENBLmNydDAPBgNVHRMBAf8EBTADAQH/MIIBcwYD
+VR0gBIIBajCCAWYwggFiBgwrBgEEAYGoGAIBAQEwggFQMCgGCCsGAQUFBwIBFhxodHRwOi8vd3d3
+LmUtc3ppZ25vLmh1L1NaU1ovMIIBIgYIKwYBBQUHAgIwggEUHoIBEABBACAAdABhAG4A+gBzAO0A
+dAB2AOEAbgB5ACAA6QByAHQAZQBsAG0AZQB6AOkAcwDpAGgAZQB6ACAA6QBzACAAZQBsAGYAbwBn
+AGEAZADhAHMA4QBoAG8AegAgAGEAIABTAHoAbwBsAGcA4QBsAHQAYQB0APMAIABTAHoAbwBsAGcA
+4QBsAHQAYQB0AOEAcwBpACAAUwB6AGEAYgDhAGwAeQB6AGEAdABhACAAcwB6AGUAcgBpAG4AdAAg
+AGsAZQBsAGwAIABlAGwAagDhAHIAbgBpADoAIABoAHQAdABwADoALwAvAHcAdwB3AC4AZQAtAHMA
+egBpAGcAbgBvAC4AaAB1AC8AUwBaAFMAWgAvMIHIBgNVHR8EgcAwgb0wgbqggbeggbSGIWh0dHA6
+Ly93d3cuZS1zemlnbm8uaHUvUm9vdENBLmNybIaBjmxkYXA6Ly9sZGFwLmUtc3ppZ25vLmh1L0NO
+PU1pY3Jvc2VjJTIwZS1Temlnbm8lMjBSb290JTIwQ0EsT1U9ZS1Temlnbm8lMjBDQSxPPU1pY3Jv
+c2VjJTIwTHRkLixMPUJ1ZGFwZXN0LEM9SFU/Y2VydGlmaWNhdGVSZXZvY2F0aW9uTGlzdDtiaW5h
+cnkwDgYDVR0PAQH/BAQDAgEGMIGWBgNVHREEgY4wgYuBEGluZm9AZS1zemlnbm8uaHWkdzB1MSMw
+IQYDVQQDDBpNaWNyb3NlYyBlLVN6aWduw7MgUm9vdCBDQTEWMBQGA1UECwwNZS1TemlnbsOzIEhT
+WjEWMBQGA1UEChMNTWljcm9zZWMgS2Z0LjERMA8GA1UEBxMIQnVkYXBlc3QxCzAJBgNVBAYTAkhV
+MIGsBgNVHSMEgaQwgaGAFMegSXUWYYTbMUuE0vE3QJDvTtz3oXakdDByMQswCQYDVQQGEwJIVTER
+MA8GA1UEBxMIQnVkYXBlc3QxFjAUBgNVBAoTDU1pY3Jvc2VjIEx0ZC4xFDASBgNVBAsTC2UtU3pp
+Z25vIENBMSIwIAYDVQQDExlNaWNyb3NlYyBlLVN6aWdubyBSb290IENBghEAzLjnv04pGv2i3Gal
+HCwPETAdBgNVHQ4EFgQUx6BJdRZhhNsxS4TS8TdAkO9O3PcwDQYJKoZIhvcNAQEFBQADggEBANMT
+nGZjWS7KXHAM/IO8VbH0jgdsZifOwTsgqRy7RlRw7lrMoHfqaEQn6/Ip3Xep1fvj1KcExJW4C+FE
+aGAHQzAxQmHl7tnlJNUb3+FKG6qfx1/4ehHqE5MAyopYse7tDk2016g2JnzgOsHVV4Lxdbb9iV/a
+86g4nzUGCM4ilb7N1fy+W955a9x6qWVmvrElWl/tftOsRm1M9DKHtCAE4Gx4sHfRhUZLphK3dehK
+yVZs15KrnfVJONJPU+NVkBHbmJbGSfI+9J8b4PeI3CVimUTYc78/MPMMNz7UwiiAc7EBt51alhQB
+S6kRnSlqLtBdgcDPsiBDxwPgN05dCtxZICU=
+-----END CERTIFICATE-----
+
+Certigna
+========
+-----BEGIN CERTIFICATE-----
+MIIDqDCCApCgAwIBAgIJAP7c4wEPyUj/MA0GCSqGSIb3DQEBBQUAMDQxCzAJBgNVBAYTAkZSMRIw
+EAYDVQQKDAlEaGlteW90aXMxETAPBgNVBAMMCENlcnRpZ25hMB4XDTA3MDYyOTE1MTMwNVoXDTI3
+MDYyOTE1MTMwNVowNDELMAkGA1UEBhMCRlIxEjAQBgNVBAoMCURoaW15b3RpczERMA8GA1UEAwwI
+Q2VydGlnbmEwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQDIaPHJ1tazNHUmgh7stL7q
+XOEm7RFHYeGifBZ4QCHkYJ5ayGPhxLGWkv8YbWkj4Sti993iNi+RB7lIzw7sebYs5zRLcAglozyH
+GxnygQcPOJAZ0xH+hrTy0V4eHpbNgGzOOzGTtvKg0KmVEn2lmsxryIRWijOp5yIVUxbwzBfsV1/p
+ogqYCd7jX5xv3EjjhQsVWqa6n6xI4wmy9/Qy3l40vhx4XUJbzg4ij02Q130yGLMLLGq/jj8UEYkg
+DncUtT2UCIf3JR7VsmAA7G8qKCVuKj4YYxclPz5EIBb2JsglrgVKtOdjLPOMFlN+XPsRGgjBRmKf
+Irjxwo1p3Po6WAbfAgMBAAGjgbwwgbkwDwYDVR0TAQH/BAUwAwEB/zAdBgNVHQ4EFgQUGu3+QTmQ
+tCRZvgHyUtVF9lo53BEwZAYDVR0jBF0wW4AUGu3+QTmQtCRZvgHyUtVF9lo53BGhOKQ2MDQxCzAJ
+BgNVBAYTAkZSMRIwEAYDVQQKDAlEaGlteW90aXMxETAPBgNVBAMMCENlcnRpZ25hggkA/tzjAQ/J
+SP8wDgYDVR0PAQH/BAQDAgEGMBEGCWCGSAGG+EIBAQQEAwIABzANBgkqhkiG9w0BAQUFAAOCAQEA
+hQMeknH2Qq/ho2Ge6/PAD/Kl1NqV5ta+aDY9fm4fTIrv0Q8hbV6lUmPOEvjvKtpv6zf+EwLHyzs+
+ImvaYS5/1HI93TDhHkxAGYwP15zRgzB7mFncfca5DClMoTOi62c6ZYTTluLtdkVwj7Ur3vkj1klu
+PBS1xp81HlDQwY9qcEQCYsuuHWhBp6pX6FOqB9IG9tUUBguRA3UsbHK1YZWaDYu5Def131TN3ubY
+1gkIl2PlwS6wt0QmwCbAr1UwnjvVNioZBPRcHv/PLLf/0P2HQBHVESO7SMAhqaQoLf0V+LBOK/Qw
+WyH8EZE0vkHve52Xdf+XlcCWWC/qu0bXu+TZLg==
+-----END CERTIFICATE-----
+
+TC TrustCenter Class 2 CA II
+============================
+-----BEGIN CERTIFICATE-----
+MIIEqjCCA5KgAwIBAgIOLmoAAQACH9dSISwRXDswDQYJKoZIhvcNAQEFBQAwdjELMAkGA1UEBhMC
+REUxHDAaBgNVBAoTE1RDIFRydXN0Q2VudGVyIEdtYkgxIjAgBgNVBAsTGVRDIFRydXN0Q2VudGVy
+IENsYXNzIDIgQ0ExJTAjBgNVBAMTHFRDIFRydXN0Q2VudGVyIENsYXNzIDIgQ0EgSUkwHhcNMDYw
+MTEyMTQzODQzWhcNMjUxMjMxMjI1OTU5WjB2MQswCQYDVQQGEwJERTEcMBoGA1UEChMTVEMgVHJ1
+c3RDZW50ZXIgR21iSDEiMCAGA1UECxMZVEMgVHJ1c3RDZW50ZXIgQ2xhc3MgMiBDQTElMCMGA1UE
+AxMcVEMgVHJ1c3RDZW50ZXIgQ2xhc3MgMiBDQSBJSTCCASIwDQYJKoZIhvcNAQEBBQADggEPADCC
+AQoCggEBAKuAh5uO8MN8h9foJIIRszzdQ2Lu+MNF2ujhoF/RKrLqk2jftMjWQ+nEdVl//OEd+DFw
+IxuInie5e/060smp6RQvkL4DUsFJzfb95AhmC1eKokKguNV/aVyQMrKXDcpK3EY+AlWJU+MaWss2
+xgdW94zPEfRMuzBwBJWl9jmM/XOBCH2JXjIeIqkiRUuwZi4wzJ9l/fzLganx4Duvo4bRierERXlQ
+Xa7pIXSSTYtZgo+U4+lK8edJsBTj9WLL1XK9H7nSn6DNqPoByNkN39r8R52zyFTfSUrxIan+GE7u
+SNQZu+995OKdy1u2bv/jzVrndIIFuoAlOMvkaZ6vQaoahPUCAwEAAaOCATQwggEwMA8GA1UdEwEB
+/wQFMAMBAf8wDgYDVR0PAQH/BAQDAgEGMB0GA1UdDgQWBBTjq1RMgKHbVkO3kUrL84J6E1wIqzCB
+7QYDVR0fBIHlMIHiMIHfoIHcoIHZhjVodHRwOi8vd3d3LnRydXN0Y2VudGVyLmRlL2NybC92Mi90
+Y19jbGFzc18yX2NhX0lJLmNybIaBn2xkYXA6Ly93d3cudHJ1c3RjZW50ZXIuZGUvQ049VEMlMjBU
+cnVzdENlbnRlciUyMENsYXNzJTIwMiUyMENBJTIwSUksTz1UQyUyMFRydXN0Q2VudGVyJTIwR21i
+SCxPVT1yb290Y2VydHMsREM9dHJ1c3RjZW50ZXIsREM9ZGU/Y2VydGlmaWNhdGVSZXZvY2F0aW9u
+TGlzdD9iYXNlPzANBgkqhkiG9w0BAQUFAAOCAQEAjNfffu4bgBCzg/XbEeprS6iSGNn3Bzn1LL4G
+dXpoUxUc6krtXvwjshOg0wn/9vYua0Fxec3ibf2uWWuFHbhOIprtZjluS5TmVfwLG4t3wVMTZonZ
+KNaL80VKY7f9ewthXbhtvsPcW3nS7Yblok2+XnR8au0WOB9/WIFaGusyiC2y8zl3gK9etmF1Kdsj
+TYjKUCjLhdLTEKJZbtOTVAB6okaVhgWcqRmY5TFyDADiZ9lA4CQze28suVyrZZ0srHbqNZn1l7kP
+JOzHdiEoZa5X6AeIdUpWoNIFOqTmjZKILPPy4cHGYdtBxceb9w4aUUXCYWvcZCcXjFq32nQozZfk
+vQ==
+-----END CERTIFICATE-----
+
+TC TrustCenter Class 3 CA II
+============================
+-----BEGIN CERTIFICATE-----
+MIIEqjCCA5KgAwIBAgIOSkcAAQAC5aBd1j8AUb8wDQYJKoZIhvcNAQEFBQAwdjELMAkGA1UEBhMC
+REUxHDAaBgNVBAoTE1RDIFRydXN0Q2VudGVyIEdtYkgxIjAgBgNVBAsTGVRDIFRydXN0Q2VudGVy
+IENsYXNzIDMgQ0ExJTAjBgNVBAMTHFRDIFRydXN0Q2VudGVyIENsYXNzIDMgQ0EgSUkwHhcNMDYw
+MTEyMTQ0MTU3WhcNMjUxMjMxMjI1OTU5WjB2MQswCQYDVQQGEwJERTEcMBoGA1UEChMTVEMgVHJ1
+c3RDZW50ZXIgR21iSDEiMCAGA1UECxMZVEMgVHJ1c3RDZW50ZXIgQ2xhc3MgMyBDQTElMCMGA1UE
+AxMcVEMgVHJ1c3RDZW50ZXIgQ2xhc3MgMyBDQSBJSTCCASIwDQYJKoZIhvcNAQEBBQADggEPADCC
+AQoCggEBALTgu1G7OVyLBMVMeRwjhjEQY0NVJz/GRcekPewJDRoeIMJWHt4bNwcwIi9v8Qbxq63W
+yKthoy9DxLCyLfzDlml7forkzMA5EpBCYMnMNWju2l+QVl/NHE1bWEnrDgFPZPosPIlY2C8u4rBo
+6SI7dYnWRBpl8huXJh0obazovVkdKyT21oQDZogkAHhg8fir/gKya/si+zXmFtGt9i4S5Po1auUZ
+uV3bOx4a+9P/FRQI2AlqukWdFHlgfa9Aigdzs5OW03Q0jTo3Kd5c7PXuLjHCINy+8U9/I1LZW+Jk
+2ZyqBwi1Rb3R0DHBq1SfqdLDYmAD8bs5SpJKPQq5ncWg/jcCAwEAAaOCATQwggEwMA8GA1UdEwEB
+/wQFMAMBAf8wDgYDVR0PAQH/BAQDAgEGMB0GA1UdDgQWBBTUovyfs8PYA9NXXAek0CSnwPIA1DCB
+7QYDVR0fBIHlMIHiMIHfoIHcoIHZhjVodHRwOi8vd3d3LnRydXN0Y2VudGVyLmRlL2NybC92Mi90
+Y19jbGFzc18zX2NhX0lJLmNybIaBn2xkYXA6Ly93d3cudHJ1c3RjZW50ZXIuZGUvQ049VEMlMjBU
+cnVzdENlbnRlciUyMENsYXNzJTIwMyUyMENBJTIwSUksTz1UQyUyMFRydXN0Q2VudGVyJTIwR21i
+SCxPVT1yb290Y2VydHMsREM9dHJ1c3RjZW50ZXIsREM9ZGU/Y2VydGlmaWNhdGVSZXZvY2F0aW9u
+TGlzdD9iYXNlPzANBgkqhkiG9w0BAQUFAAOCAQEANmDkcPcGIEPZIxpC8vijsrlNirTzwppVMXzE
+O2eatN9NDoqTSheLG43KieHPOh6sHfGcMrSOWXaiQYUlN6AT0PV8TtXqluJucsG7Kv5sbviRmEb8
+yRtXW+rIGjs/sFGYPAfaLFkB2otE6OF0/ado3VS6g0bsyEa1+K+XwDsJHI/OcpY9M1ZwvJbL2NV9
+IJqDnxrcOfHFcqMRA/07QlIp2+gB95tejNaNhk4Z+rwcvsUhpYeeeC422wlxo3I0+GzjBgnyXlal
+092Y+tTmBvTwtiBjS+opvaqCZh77gaqnN60TGOaSw4HBM7uIHqHn4rS9MWwOUT1v+5ZWgOI2F9Hc
+5A==
+-----END CERTIFICATE-----
+
+TC TrustCenter Universal CA I
+=============================
+-----BEGIN CERTIFICATE-----
+MIID3TCCAsWgAwIBAgIOHaIAAQAC7LdggHiNtgYwDQYJKoZIhvcNAQEFBQAweTELMAkGA1UEBhMC
+REUxHDAaBgNVBAoTE1RDIFRydXN0Q2VudGVyIEdtYkgxJDAiBgNVBAsTG1RDIFRydXN0Q2VudGVy
+IFVuaXZlcnNhbCBDQTEmMCQGA1UEAxMdVEMgVHJ1c3RDZW50ZXIgVW5pdmVyc2FsIENBIEkwHhcN
+MDYwMzIyMTU1NDI4WhcNMjUxMjMxMjI1OTU5WjB5MQswCQYDVQQGEwJERTEcMBoGA1UEChMTVEMg
+VHJ1c3RDZW50ZXIgR21iSDEkMCIGA1UECxMbVEMgVHJ1c3RDZW50ZXIgVW5pdmVyc2FsIENBMSYw
+JAYDVQQDEx1UQyBUcnVzdENlbnRlciBVbml2ZXJzYWwgQ0EgSTCCASIwDQYJKoZIhvcNAQEBBQAD
+ggEPADCCAQoCggEBAKR3I5ZEr5D0MacQ9CaHnPM42Q9e3s9B6DGtxnSRJJZ4Hgmgm5qVSkr1YnwC
+qMqs+1oEdjneX/H5s7/zA1hV0qq34wQi0fiU2iIIAI3TfCZdzHd55yx4Oagmcw6iXSVphU9VDprv
+xrlE4Vc93x9UIuVvZaozhDrzznq+VZeujRIPFDPiUHDDSYcTvFHe15gSWu86gzOSBnWLknwSaHtw
+ag+1m7Z3W0hZneTvWq3zwZ7U10VOylY0Ibw+F1tvdwxIAUMpsN0/lm7mlaoMwCC2/T42J5zjXM9O
+gdwZu5GQfezmlwQek8wiSdeXhrYTCjxDI3d+8NzmzSQfO4ObNDqDNOMCAwEAAaNjMGEwHwYDVR0j
+BBgwFoAUkqR1LKSevoFE63n8isWVpesQdXMwDwYDVR0TAQH/BAUwAwEB/zAOBgNVHQ8BAf8EBAMC
+AYYwHQYDVR0OBBYEFJKkdSyknr6BROt5/IrFlaXrEHVzMA0GCSqGSIb3DQEBBQUAA4IBAQAo0uCG
+1eb4e/CX3CJrO5UUVg8RMKWaTzqwOuAGy2X17caXJ/4l8lfmXpWMPmRgFVp/Lw0BxbFg/UU1z/Cy
+vwbZ71q+s2IhtNerNXxTPqYn8aEt2hojnczd7Dwtnic0XQ/CNnm8yUpiLe1r2X1BQ3y2qsrtYbE3
+ghUJGooWMNjsydZHcnhLEEYUjl8Or+zHL6sQ17bxbuyGssLoDZJz3KL0Dzq/YSMQiZxIQG5wALPT
+ujdEWBF6AmqI8Dc08BnprNRlc/ZpjGSUOnmFKbAWKwyCPwacx/0QK54PLLae4xW/2TYcuiUaUj0a
+7CIMHOCkoj3w6DnPgcB77V0fb8XQC9eY
+-----END CERTIFICATE-----
+
+Deutsche Telekom Root CA 2
+==========================
+-----BEGIN CERTIFICATE-----
+MIIDnzCCAoegAwIBAgIBJjANBgkqhkiG9w0BAQUFADBxMQswCQYDVQQGEwJERTEcMBoGA1UEChMT
+RGV1dHNjaGUgVGVsZWtvbSBBRzEfMB0GA1UECxMWVC1UZWxlU2VjIFRydXN0IENlbnRlcjEjMCEG
+A1UEAxMaRGV1dHNjaGUgVGVsZWtvbSBSb290IENBIDIwHhcNOTkwNzA5MTIxMTAwWhcNMTkwNzA5
+MjM1OTAwWjBxMQswCQYDVQQGEwJERTEcMBoGA1UEChMTRGV1dHNjaGUgVGVsZWtvbSBBRzEfMB0G
+A1UECxMWVC1UZWxlU2VjIFRydXN0IENlbnRlcjEjMCEGA1UEAxMaRGV1dHNjaGUgVGVsZWtvbSBS
+b290IENBIDIwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQCrC6M14IspFLEUha88EOQ5
+bzVdSq7d6mGNlUn0b2SjGmBmpKlAIoTZ1KXleJMOaAGtuU1cOs7TuKhCQN/Po7qCWWqSG6wcmtoI
+KyUn+WkjR/Hg6yx6m/UTAtB+NHzCnjwAWav12gz1MjwrrFDa1sPeg5TKqAyZMg4ISFZbavva4VhY
+AUlfckE8FQYBjl2tqriTtM2e66foai1SNNs671x1Udrb8zH57nGYMsRUFUQM+ZtV7a3fGAigo4aK
+Se5TBY8ZTNXeWHmb0mocQqvF1afPaA+W5OFhmHZhyJF81j4A4pFQh+GdCuatl9Idxjp9y7zaAzTV
+jlsB9WoHtxa2bkp/AgMBAAGjQjBAMB0GA1UdDgQWBBQxw3kbuvVT1xfgiXotF2wKsyudMzAPBgNV
+HRMECDAGAQH/AgEFMA4GA1UdDwEB/wQEAwIBBjANBgkqhkiG9w0BAQUFAAOCAQEAlGRZrTlk5ynr
+E/5aw4sTV8gEJPB0d8Bg42f76Ymmg7+Wgnxu1MM9756AbrsptJh6sTtU6zkXR34ajgv8HzFZMQSy
+zhfzLMdiNlXiItiJVbSYSKpk+tYcNthEeFpaIzpXl/V6ME+un2pMSyuOoAPjPuCp1NJ70rOo4nI8
+rZ7/gFnkm0W09juwzTkZmDLl6iFhkOQxIY40sfcvNUqFENrnijchvllj4PKFiDFT1FQUhXB59C4G
+dyd1Lx+4ivn+xbrYNuSD7Odlt79jWvNGr4GUN9RBjNYj1h7P9WgbRGOiWrqnNVmh5XAFmw4jV5mU
+Cm26OWMohpLzGITY+9HPBVZkVw==
+-----END CERTIFICATE-----
+
+ComSign Secured CA
+==================
+-----BEGIN CERTIFICATE-----
+MIIDqzCCApOgAwIBAgIRAMcoRwmzuGxFjB36JPU2TukwDQYJKoZIhvcNAQEFBQAwPDEbMBkGA1UE
+AxMSQ29tU2lnbiBTZWN1cmVkIENBMRAwDgYDVQQKEwdDb21TaWduMQswCQYDVQQGEwJJTDAeFw0w
+NDAzMjQxMTM3MjBaFw0yOTAzMTYxNTA0NTZaMDwxGzAZBgNVBAMTEkNvbVNpZ24gU2VjdXJlZCBD
+QTEQMA4GA1UEChMHQ29tU2lnbjELMAkGA1UEBhMCSUwwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAw
+ggEKAoIBAQDGtWhfHZQVw6QIVS3joFd67+l0Kru5fFdJGhFeTymHDEjWaueP1H5XJLkGieQcPOqs
+49ohgHMhCu95mGwfCP+hUH3ymBvJVG8+pSjsIQQPRbsHPaHA+iqYHU4Gk/v1iDurX8sWv+bznkqH
+7Rnqwp9D5PGBpX8QTz7RSmKtUxvLg/8HZaWSLWapW7ha9B20IZFKF3ueMv5WJDmyVIRD9YTC2LxB
+kMyd1mja6YJQqTtoz7VdApRgFrFD2UNd3V2Hbuq7s8lr9gOUCXDeFhF6K+h2j0kQmHe5Y1yLM5d1
+9guMsqtb3nQgJT/j8xH5h2iGNXHDHYwt6+UarA9z1YJZQIDTAgMBAAGjgacwgaQwDAYDVR0TBAUw
+AwEB/zBEBgNVHR8EPTA7MDmgN6A1hjNodHRwOi8vZmVkaXIuY29tc2lnbi5jby5pbC9jcmwvQ29t
+U2lnblNlY3VyZWRDQS5jcmwwDgYDVR0PAQH/BAQDAgGGMB8GA1UdIwQYMBaAFMFL7XC29z58ADsA
+j8c+DkWfHl3sMB0GA1UdDgQWBBTBS+1wtvc+fAA7AI/HPg5Fnx5d7DANBgkqhkiG9w0BAQUFAAOC
+AQEAFs/ukhNQq3sUnjO2QiBq1BW9Cav8cujvR3qQrFHBZE7piL1DRYHjZiM/EoZNGeQFsOY3wo3a
+BijJD4mkU6l1P7CW+6tMM1X5eCZGbxs2mPtCdsGCuY7e+0X5YxtiOzkGynd6qDwJz2w2PQ8KRUtp
+FhpFfTMDZflScZAmlaxMDPWLkz/MdXSFmLr/YnpNH4n+rr2UAJm/EaXc4HnFFgt9AmEd6oX5AhVP
+51qJThRv4zdLhfXBPGHg/QVBspJ/wx2g0K5SZGBrGMYmnNj1ZOQ2GmKfig8+/21OGVZOIJFsnzQz
+OjRXUDpvgV4GxvU+fE6OK85lBi5d0ipTdF7Tbieejw==
+-----END CERTIFICATE-----
+
+Cybertrust Global Root
+======================
+-----BEGIN CERTIFICATE-----
+MIIDoTCCAomgAwIBAgILBAAAAAABD4WqLUgwDQYJKoZIhvcNAQEFBQAwOzEYMBYGA1UEChMPQ3li
+ZXJ0cnVzdCwgSW5jMR8wHQYDVQQDExZDeWJlcnRydXN0IEdsb2JhbCBSb290MB4XDTA2MTIxNTA4
+MDAwMFoXDTIxMTIxNTA4MDAwMFowOzEYMBYGA1UEChMPQ3liZXJ0cnVzdCwgSW5jMR8wHQYDVQQD
+ExZDeWJlcnRydXN0IEdsb2JhbCBSb290MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEA
++Mi8vRRQZhP/8NN57CPytxrHjoXxEnOmGaoQ25yiZXRadz5RfVb23CO21O1fWLE3TdVJDm71aofW
+0ozSJ8bi/zafmGWgE07GKmSb1ZASzxQG9Dvj1Ci+6A74q05IlG2OlTEQXO2iLb3VOm2yHLtgwEZL
+AfVJrn5GitB0jaEMAs7u/OePuGtm839EAL9mJRQr3RAwHQeWP032a7iPt3sMpTjr3kfb1V05/Iin
+89cqdPHoWqI7n1C6poxFNcJQZZXcY4Lv3b93TZxiyWNzFtApD0mpSPCzqrdsxacwOUBdrsTiXSZT
+8M4cIwhhqJQZugRiQOwfOHB3EgZxpzAYXSUnpQIDAQABo4GlMIGiMA4GA1UdDwEB/wQEAwIBBjAP
+BgNVHRMBAf8EBTADAQH/MB0GA1UdDgQWBBS2CHsNesysIEyGVjJez6tuhS1wVzA/BgNVHR8EODA2
+MDSgMqAwhi5odHRwOi8vd3d3Mi5wdWJsaWMtdHJ1c3QuY29tL2NybC9jdC9jdHJvb3QuY3JsMB8G
+A1UdIwQYMBaAFLYIew16zKwgTIZWMl7Pq26FLXBXMA0GCSqGSIb3DQEBBQUAA4IBAQBW7wojoFRO
+lZfJ+InaRcHUowAl9B8Tq7ejhVhpwjCt2BWKLePJzYFa+HMjWqd8BfP9IjsO0QbE2zZMcwSO5bAi
+5MXzLqXZI+O4Tkogp24CJJ8iYGd7ix1yCcUxXOl5n4BHPa2hCwcUPUf/A2kaDAtE52Mlp3+yybh2
+hO0j9n0Hq0V+09+zv+mKts2oomcrUtW3ZfA5TGOgkXmTUg9U3YO7n9GPp1Nzw8v/MOx8BLjYRB+T
+X3EJIrduPuocA06dGiBh+4E37F78CkWr1+cXVdCg6mCbpvbjjFspwgZgFJ0tl0ypkxWdYcQBX0jW
+WL1WMRJOEcgh4LMRkWXbtKaIOM5V
+-----END CERTIFICATE-----
+
+ePKI Root Certification Authority
+=================================
+-----BEGIN CERTIFICATE-----
+MIIFsDCCA5igAwIBAgIQFci9ZUdcr7iXAF7kBtK8nTANBgkqhkiG9w0BAQUFADBeMQswCQYDVQQG
+EwJUVzEjMCEGA1UECgwaQ2h1bmdod2EgVGVsZWNvbSBDby4sIEx0ZC4xKjAoBgNVBAsMIWVQS0kg
+Um9vdCBDZXJ0aWZpY2F0aW9uIEF1dGhvcml0eTAeFw0wNDEyMjAwMjMxMjdaFw0zNDEyMjAwMjMx
+MjdaMF4xCzAJBgNVBAYTAlRXMSMwIQYDVQQKDBpDaHVuZ2h3YSBUZWxlY29tIENvLiwgTHRkLjEq
+MCgGA1UECwwhZVBLSSBSb290IENlcnRpZmljYXRpb24gQXV0aG9yaXR5MIICIjANBgkqhkiG9w0B
+AQEFAAOCAg8AMIICCgKCAgEA4SUP7o3biDN1Z82tH306Tm2d0y8U82N0ywEhajfqhFAHSyZbCUNs
+IZ5qyNUD9WBpj8zwIuQf5/dqIjG3LBXy4P4AakP/h2XGtRrBp0xtInAhijHyl3SJCRImHJ7K2RKi
+lTza6We/CKBk49ZCt0Xvl/T29de1ShUCWH2YWEtgvM3XDZoTM1PRYfl61dd4s5oz9wCGzh1NlDiv
+qOx4UXCKXBCDUSH3ET00hl7lSM2XgYI1TBnsZfZrxQWh7kcT1rMhJ5QQCtkkO7q+RBNGMD+XPNjX
+12ruOzjjK9SXDrkb5wdJfzcq+Xd4z1TtW0ado4AOkUPB1ltfFLqfpo0kR0BZv3I4sjZsN/+Z0V0O
+WQqraffAsgRFelQArr5T9rXn4fg8ozHSqf4hUmTFpmfwdQcGlBSBVcYn5AGPF8Fqcde+S/uUWH1+
+ETOxQvdibBjWzwloPn9s9h6PYq2lY9sJpx8iQkEeb5mKPtf5P0B6ebClAZLSnT0IFaUQAS2zMnao
+lQ2zepr7BxB4EW/hj8e6DyUadCrlHJhBmd8hh+iVBmoKs2pHdmX2Os+PYhcZewoozRrSgx4hxyy/
+vv9haLdnG7t4TY3OZ+XkwY63I2binZB1NJipNiuKmpS5nezMirH4JYlcWrYvjB9teSSnUmjDhDXi
+Zo1jDiVN1Rmy5nk3pyKdVDECAwEAAaNqMGgwHQYDVR0OBBYEFB4M97Zn8uGSJglFwFU5Lnc/Qkqi
+MAwGA1UdEwQFMAMBAf8wOQYEZyoHAAQxMC8wLQIBADAJBgUrDgMCGgUAMAcGBWcqAwAABBRFsMLH
+ClZ87lt4DJX5GFPBphzYEDANBgkqhkiG9w0BAQUFAAOCAgEACbODU1kBPpVJufGBuvl2ICO1J2B0
+1GqZNF5sAFPZn/KmsSQHRGoqxqWOeBLoR9lYGxMqXnmbnwoqZ6YlPwZpVnPDimZI+ymBV3QGypzq
+KOg4ZyYr8dW1P2WT+DZdjo2NQCCHGervJ8A9tDkPJXtoUHRVnAxZfVo9QZQlUgjgRywVMRnVvwdV
+xrsStZf0X4OFunHB2WyBEXYKCrC/gpf36j36+uwtqSiUO1bd0lEursC9CBWMd1I0ltabrNMdjmEP
+NXubrjlpC2JgQCA2j6/7Nu4tCEoduL+bXPjqpRugc6bY+G7gMwRfaKonh+3ZwZCc7b3jajWvY9+r
+GNm65ulK6lCKD2GTHuItGeIwlDWSXQ62B68ZgI9HkFFLLk3dheLSClIKF5r8GrBQAuUBo2M3IUxE
+xJtRmREOc5wGj1QupyheRDmHVi03vYVElOEMSyycw5KFNGHLD7ibSkNS/jQ6fbjpKdx2qcgw+BRx
+gMYeNkh0IkFch4LoGHGLQYlE535YW6i4jRPpp2zDR+2zGp1iro2C6pSe3VkQw63d4k3jMdXH7Ojy
+sP6SHhYKGvzZ8/gntsm+HbRsZJB/9OTEW9c3rkIO3aQab3yIVMUWbuF6aC74Or8NpDyJO3inTmOD
+BCEIZ43ygknQW/2xzQ+DhNQ+IIX3Sj0rnP0qCglN6oH4EZw=
+-----END CERTIFICATE-----
+
+T\xc3\x9c\x42\xC4\xB0TAK UEKAE K\xC3\xB6k Sertifika Hizmet Sa\xC4\x9Flay\xc4\xb1\x63\xc4\xb1s\xc4\xb1 - S\xC3\xBCr\xC3\xBCm 3
+=============================================================================================================================
+-----BEGIN CERTIFICATE-----
+MIIFFzCCA/+gAwIBAgIBETANBgkqhkiG9w0BAQUFADCCASsxCzAJBgNVBAYTAlRSMRgwFgYDVQQH
+DA9HZWJ6ZSAtIEtvY2FlbGkxRzBFBgNVBAoMPlTDvHJraXllIEJpbGltc2VsIHZlIFRla25vbG9q
+aWsgQXJhxZ90xLFybWEgS3VydW11IC0gVMOcQsSwVEFLMUgwRgYDVQQLDD9VbHVzYWwgRWxla3Ry
+b25payB2ZSBLcmlwdG9sb2ppIEFyYcWfdMSxcm1hIEVuc3RpdMO8c8O8IC0gVUVLQUUxIzAhBgNV
+BAsMGkthbXUgU2VydGlmaWthc3lvbiBNZXJrZXppMUowSAYDVQQDDEFUw5xCxLBUQUsgVUVLQUUg
+S8O2ayBTZXJ0aWZpa2EgSGl6bWV0IFNhxJ9sYXnEsWPEsXPEsSAtIFPDvHLDvG0gMzAeFw0wNzA4
+MjQxMTM3MDdaFw0xNzA4MjExMTM3MDdaMIIBKzELMAkGA1UEBhMCVFIxGDAWBgNVBAcMD0dlYnpl
+IC0gS29jYWVsaTFHMEUGA1UECgw+VMO8cmtpeWUgQmlsaW1zZWwgdmUgVGVrbm9sb2ppayBBcmHF
+n3TEsXJtYSBLdXJ1bXUgLSBUw5xCxLBUQUsxSDBGBgNVBAsMP1VsdXNhbCBFbGVrdHJvbmlrIHZl
+IEtyaXB0b2xvamkgQXJhxZ90xLFybWEgRW5zdGl0w7xzw7wgLSBVRUtBRTEjMCEGA1UECwwaS2Ft
+dSBTZXJ0aWZpa2FzeW9uIE1lcmtlemkxSjBIBgNVBAMMQVTDnELEsFRBSyBVRUtBRSBLw7ZrIFNl
+cnRpZmlrYSBIaXptZXQgU2HEn2xhecSxY8Sxc8SxIC0gU8O8csO8bSAzMIIBIjANBgkqhkiG9w0B
+AQEFAAOCAQ8AMIIBCgKCAQEAim1L/xCIOsP2fpTo6iBkcK4hgb46ezzb8R1Sf1n68yJMlaCQvEhO
+Eav7t7WNeoMojCZG2E6VQIdhn8WebYGHV2yKO7Rm6sxA/OOqbLLLAdsyv9Lrhc+hDVXDWzhXcLh1
+xnnRFDDtG1hba+818qEhTsXOfJlfbLm4IpNQp81McGq+agV/E5wrHur+R84EpW+sky58K5+eeROR
+6Oqeyjh1jmKwlZMq5d/pXpduIF9fhHpEORlAHLpVK/swsoHvhOPc7Jg4OQOFCKlUAwUp8MmPi+oL
+hmUZEdPpCSPeaJMDyTYcIW7OjGbxmTDY17PDHfiBLqi9ggtm/oLL4eAagsNAgQIDAQABo0IwQDAd
+BgNVHQ4EFgQUvYiHyY/2pAoLquvF/pEjnatKijIwDgYDVR0PAQH/BAQDAgEGMA8GA1UdEwEB/wQF
+MAMBAf8wDQYJKoZIhvcNAQEFBQADggEBAB18+kmPNOm3JpIWmgV050vQbTlswyb2zrgxvMTfvCr4
+N5EY3ATIZJkrGG2AA1nJrvhY0D7twyOfaTyGOBye79oneNGEN3GKPEs5z35FBtYt2IpNeBLWrcLT
+y9LQQfMmNkqblWwM7uXRQydmwYj3erMgbOqwaSvHIOgMA8RBBZniP+Rr+KCGgceExh/VS4ESshYh
+LBOhgLJeDEoTniDYYkCrkOpkSi+sDQESeUWoL4cZaMjihccwsnX5OD+ywJO0a+IDRM5noN+J1q2M
+dqMTw5RhK2vZbMEHCiIHhWyFJEapvj+LeISCfiQMnf2BN+MlqO02TpUsyZyQ2uypQjyttgI=
+-----END CERTIFICATE-----
+
+Buypass Class 2 CA 1
+====================
+-----BEGIN CERTIFICATE-----
+MIIDUzCCAjugAwIBAgIBATANBgkqhkiG9w0BAQUFADBLMQswCQYDVQQGEwJOTzEdMBsGA1UECgwU
+QnV5cGFzcyBBUy05ODMxNjMzMjcxHTAbBgNVBAMMFEJ1eXBhc3MgQ2xhc3MgMiBDQSAxMB4XDTA2
+MTAxMzEwMjUwOVoXDTE2MTAxMzEwMjUwOVowSzELMAkGA1UEBhMCTk8xHTAbBgNVBAoMFEJ1eXBh
+c3MgQVMtOTgzMTYzMzI3MR0wGwYDVQQDDBRCdXlwYXNzIENsYXNzIDIgQ0EgMTCCASIwDQYJKoZI
+hvcNAQEBBQADggEPADCCAQoCggEBAIs8B0XY9t/mx8q6jUPFR42wWsE425KEHK8T1A9vNkYgxC7M
+cXA0ojTTNy7Y3Tp3L8DrKehc0rWpkTSHIln+zNvnma+WwajHQN2lFYxuyHyXA8vmIPLXl18xoS83
+0r7uvqmtqEyeIWZDO6i88wmjONVZJMHCR3axiFyCO7srpgTXjAePzdVBHfCuuCkslFJgNJQ72uA4
+0Z0zPhX0kzLFANq1KWYOOngPIVJfAuWSeyXTkh4vFZ2B5J2O6O+JzhRMVB0cgRJNcKi+EAUXfh/R
+uFdV7c27UsKwHnjCTTZoy1YmwVLBvXb3WNVyfh9EdrsAiR0WnVE1703CVu9r4Iw7DekCAwEAAaNC
+MEAwDwYDVR0TAQH/BAUwAwEB/zAdBgNVHQ4EFgQUP42aWYv8e3uco684sDntkHGA1sgwDgYDVR0P
+AQH/BAQDAgEGMA0GCSqGSIb3DQEBBQUAA4IBAQAVGn4TirnoB6NLJzKyQJHyIdFkhb5jatLPgcIV
+1Xp+DCmsNx4cfHZSldq1fyOhKXdlyTKdqC5Wq2B2zha0jX94wNWZUYN/Xtm+DKhQ7SLHrQVMdvvt
+7h5HZPb3J31cKA9FxVxiXqaakZG3Uxcu3K1gnZZkOb1naLKuBctN518fV4bVIJwo+28TOPX2EZL2
+fZleHwzoq0QkKXJAPTZSr4xYkHPB7GEseaHsh7U/2k3ZIQAw3pDaDtMaSKk+hQsUi4y8QZ5q9w5w
+wDX3OaJdZtB7WZ+oRxKaJyOkLY4ng5IgodcVf/EuGO70SH8vf/GhGLWhC5SgYiAynB321O+/TIho
+-----END CERTIFICATE-----
+
+Buypass Class 3 CA 1
+====================
+-----BEGIN CERTIFICATE-----
+MIIDUzCCAjugAwIBAgIBAjANBgkqhkiG9w0BAQUFADBLMQswCQYDVQQGEwJOTzEdMBsGA1UECgwU
+QnV5cGFzcyBBUy05ODMxNjMzMjcxHTAbBgNVBAMMFEJ1eXBhc3MgQ2xhc3MgMyBDQSAxMB4XDTA1
+MDUwOTE0MTMwM1oXDTE1MDUwOTE0MTMwM1owSzELMAkGA1UEBhMCTk8xHTAbBgNVBAoMFEJ1eXBh
+c3MgQVMtOTgzMTYzMzI3MR0wGwYDVQQDDBRCdXlwYXNzIENsYXNzIDMgQ0EgMTCCASIwDQYJKoZI
+hvcNAQEBBQADggEPADCCAQoCggEBAKSO13TZKWTeXx+HgJHqTjnmGcZEC4DVC69TB4sSveZn8AKx
+ifZgisRbsELRwCGoy+Gb72RRtqfPFfV0gGgEkKBYouZ0plNTVUhjP5JW3SROjvi6K//zNIqeKNc0
+n6wv1g/xpC+9UrJJhW05NfBEMJNGJPO251P7vGGvqaMU+8IXF4Rs4HyI+MkcVyzwPX6UvCWThOia
+AJpFBUJXgPROztmuOfbIUxAMZTpHe2DC1vqRycZxbL2RhzyRhkmr8w+gbCZ2Xhysm3HljbybIR6c
+1jh+JIAVMYKWsUnTYjdbiAwKYjT+p0h+mbEwi5A3lRyoH6UsjfRVyNvdWQrCrXig9IsCAwEAAaNC
+MEAwDwYDVR0TAQH/BAUwAwEB/zAdBgNVHQ4EFgQUOBTmyPCppAP0Tj4io1vy1uCtQHQwDgYDVR0P
+AQH/BAQDAgEGMA0GCSqGSIb3DQEBBQUAA4IBAQABZ6OMySU9E2NdFm/soT4JXJEVKirZgCFPBdy7
+pYmrEzMqnji3jG8CcmPHc3ceCQa6Oyh7pEfJYWsICCD8igWKH7y6xsL+z27sEzNxZy5p+qksP2bA
+EllNC1QCkoS72xLvg3BweMhT+t/Gxv/ciC8HwEmdMldg0/L2mSlf56oBzKwzqBwKu5HEA6BvtjT5
+htOzdlSY9EqBs1OdTUDs5XcTRa9bqh/YL0yCe/4qxFi7T/ye/QNlGioOw6UgFpRreaaiErS7GqQj
+el/wroQk5PMr+4okoyeYZdowdXb8GZHo2+ubPzK/QJcHJrrM85SFSnonk8+QQtS4Wxam58tAA915
+-----END CERTIFICATE-----
+
+EBG Elektronik Sertifika Hizmet Sa\xC4\x9Flay\xc4\xb1\x63\xc4\xb1s\xc4\xb1
+==========================================================================
+-----BEGIN CERTIFICATE-----
+MIIF5zCCA8+gAwIBAgIITK9zQhyOdAIwDQYJKoZIhvcNAQEFBQAwgYAxODA2BgNVBAMML0VCRyBF
+bGVrdHJvbmlrIFNlcnRpZmlrYSBIaXptZXQgU2HEn2xhecSxY8Sxc8SxMTcwNQYDVQQKDC5FQkcg
+QmlsacWfaW0gVGVrbm9sb2ppbGVyaSB2ZSBIaXptZXRsZXJpIEEuxZ4uMQswCQYDVQQGEwJUUjAe
+Fw0wNjA4MTcwMDIxMDlaFw0xNjA4MTQwMDMxMDlaMIGAMTgwNgYDVQQDDC9FQkcgRWxla3Ryb25p
+ayBTZXJ0aWZpa2EgSGl6bWV0IFNhxJ9sYXnEsWPEsXPEsTE3MDUGA1UECgwuRUJHIEJpbGnFn2lt
+IFRla25vbG9qaWxlcmkgdmUgSGl6bWV0bGVyaSBBLsWeLjELMAkGA1UEBhMCVFIwggIiMA0GCSqG
+SIb3DQEBAQUAA4ICDwAwggIKAoICAQDuoIRh0DpqZhAy2DE4f6en5f2h4fuXd7hxlugTlkaDT7by
+X3JWbhNgpQGR4lvFzVcfd2NR/y8927k/qqk153nQ9dAktiHq6yOU/im/+4mRDGSaBUorzAzu8T2b
+gmmkTPiab+ci2hC6X5L8GCcKqKpE+i4stPtGmggDg3KriORqcsnlZR9uKg+ds+g75AxuetpX/dfr
+eYteIAbTdgtsApWjluTLdlHRKJ2hGvxEok3MenaoDT2/F08iiFD9rrbskFBKW5+VQarKD7JK/oCZ
+TqNGFav4c0JqwmZ2sQomFd2TkuzbqV9UIlKRcF0T6kjsbgNs2d1s/OsNA/+mgxKb8amTD8UmTDGy
+Y5lhcucqZJnSuOl14nypqZoaqsNW2xCaPINStnuWt6yHd6i58mcLlEOzrz5z+kI2sSXFCjEmN1Zn
+uqMLfdb3ic1nobc6HmZP9qBVFCVMLDMNpkGMvQQxahByCp0OLna9XvNRiYuoP1Vzv9s6xiQFlpJI
+qkuNKgPlV5EQ9GooFW5Hd4RcUXSfGenmHmMWOeMRFeNYGkS9y8RsZteEBt8w9DeiQyJ50hBs37vm
+ExH8nYQKE3vwO9D8owrXieqWfo1IhR5kX9tUoqzVegJ5a9KK8GfaZXINFHDk6Y54jzJ0fFfy1tb0
+Nokb+Clsi7n2l9GkLqq+CxnCRelwXQIDAJ3Zo2MwYTAPBgNVHRMBAf8EBTADAQH/MA4GA1UdDwEB
+/wQEAwIBBjAdBgNVHQ4EFgQU587GT/wWZ5b6SqMHwQSny2re2kcwHwYDVR0jBBgwFoAU587GT/wW
+Z5b6SqMHwQSny2re2kcwDQYJKoZIhvcNAQEFBQADggIBAJuYml2+8ygjdsZs93/mQJ7ANtyVDR2t
+FcU22NU57/IeIl6zgrRdu0waypIN30ckHrMk2pGI6YNw3ZPX6bqz3xZaPt7gyPvT/Wwp+BVGoGgm
+zJNSroIBk5DKd8pNSe/iWtkqvTDOTLKBtjDOWU/aWR1qeqRFsIImgYZ29fUQALjuswnoT4cCB64k
+XPBfrAowzIpAoHMEwfuJJPaaHFy3PApnNgUIMbOv2AFoKuB4j3TeuFGkjGwgPaL7s9QJ/XvCgKqT
+bCmYIai7FvOpEl90tYeY8pUm3zTvilORiF0alKM/fCL414i6poyWqD1SNGKfAB5UVUJnxk1Gj7sU
+RT0KlhaOEKGXmdXTMIXM3rRyt7yKPBgpaP3ccQfuJDlq+u2lrDgv+R4QDgZxGhBM/nV+/x5XOULK
+1+EVoVZVWRvRo68R2E7DpSvvkL/A7IITW43WciyTTo9qKd+FPNMN4KIYEsxVL0e3p5sC/kH2iExt
+2qkBR4NkJ2IQgtYSe14DHzSpyZH+r11thie3I6p1GMog57AP14kOpmciY/SDQSsGS7tY1dHXt7kQ
+Y9iJSrSq3RZj9W6+YKH47ejWkE8axsWgKdOnIaj1Wjz3x0miIZpKlVIglnKaZsv30oZDfCK+lvm9
+AahH3eU7QPl1K5srRmSGjR70j/sHd9DqSaIcjVIUpgqT
+-----END CERTIFICATE-----
+
+certSIGN ROOT CA
+================
+-----BEGIN CERTIFICATE-----
+MIIDODCCAiCgAwIBAgIGIAYFFnACMA0GCSqGSIb3DQEBBQUAMDsxCzAJBgNVBAYTAlJPMREwDwYD
+VQQKEwhjZXJ0U0lHTjEZMBcGA1UECxMQY2VydFNJR04gUk9PVCBDQTAeFw0wNjA3MDQxNzIwMDRa
+Fw0zMTA3MDQxNzIwMDRaMDsxCzAJBgNVBAYTAlJPMREwDwYDVQQKEwhjZXJ0U0lHTjEZMBcGA1UE
+CxMQY2VydFNJR04gUk9PVCBDQTCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBALczuX7I
+JUqOtdu0KBuqV5Do0SLTZLrTk+jUrIZhQGpgV2hUhE28alQCBf/fm5oqrl0Hj0rDKH/v+yv6efHH
+rfAQUySQi2bJqIirr1qjAOm+ukbuW3N7LBeCgV5iLKECZbO9xSsAfsT8AzNXDe3i+s5dRdY4zTW2
+ssHQnIFKquSyAVwdj1+ZxLGt24gh65AIgoDzMKND5pCCrlUoSe1b16kQOA7+j0xbm0bqQfWwCHTD
+0IgztnzXdN/chNFDDnU5oSVAKOp4yw4sLjmdjItuFhwvJoIQ4uNllAoEwF73XVv4EOLQunpL+943
+AAAaWyjj0pxzPjKHmKHJUS/X3qwzs08CAwEAAaNCMEAwDwYDVR0TAQH/BAUwAwEB/zAOBgNVHQ8B
+Af8EBAMCAcYwHQYDVR0OBBYEFOCMm9slSbPxfIbWskKHC9BroNnkMA0GCSqGSIb3DQEBBQUAA4IB
+AQA+0hyJLjX8+HXd5n9liPRyTMks1zJO890ZeUe9jjtbkw9QSSQTaxQGcu8J06Gh40CEyecYMnQ8
+SG4Pn0vU9x7Tk4ZkVJdjclDVVc/6IJMCopvDI5NOFlV2oHB5bc0hH88vLbwZ44gx+FkagQnIl6Z0
+x2DEW8xXjrJ1/RsCCdtZb3KTafcxQdaIOL+Hsr0Wefmq5L6IJd1hJyMctTEHBDa0GpC9oHRxUIlt
+vBTjD4au8as+x6AJzKNI0eDbZOeStc+vckNwi/nDhDwTqn6Sm1dTk/pwwpEOMfmbZ13pljheX7Nz
+TogVZ96edhBiIL5VaZVDADlN9u6wWk5JRFRYX0KD
+-----END CERTIFICATE-----
+
+CNNIC ROOT
+==========
+-----BEGIN CERTIFICATE-----
+MIIDVTCCAj2gAwIBAgIESTMAATANBgkqhkiG9w0BAQUFADAyMQswCQYDVQQGEwJDTjEOMAwGA1UE
+ChMFQ05OSUMxEzARBgNVBAMTCkNOTklDIFJPT1QwHhcNMDcwNDE2MDcwOTE0WhcNMjcwNDE2MDcw
+OTE0WjAyMQswCQYDVQQGEwJDTjEOMAwGA1UEChMFQ05OSUMxEzARBgNVBAMTCkNOTklDIFJPT1Qw
+ggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQDTNfc/c3et6FtzF8LRb+1VvG7q6KR5smzD
+o+/hn7E7SIX1mlwhIhAsxYLO2uOabjfhhyzcuQxauohV3/2q2x8x6gHx3zkBwRP9SFIhxFXf2tiz
+VHa6dLG3fdfA6PZZxU3Iva0fFNrfWEQlMhkqx35+jq44sDB7R3IJMfAw28Mbdim7aXZOV/kbZKKT
+VrdvmW7bCgScEeOAH8tjlBAKqeFkgjH5jCftppkA9nCTGPihNIaj3XrCGHn2emU1z5DrvTOTn1Or
+czvmmzQgLx3vqR1jGqCA2wMv+SYahtKNu6m+UjqHZ0gNv7Sg2Ca+I19zN38m5pIEo3/PIKe38zrK
+y5nLAgMBAAGjczBxMBEGCWCGSAGG+EIBAQQEAwIABzAfBgNVHSMEGDAWgBRl8jGtKvf33VKWCscC
+wQ7vptU7ETAPBgNVHRMBAf8EBTADAQH/MAsGA1UdDwQEAwIB/jAdBgNVHQ4EFgQUZfIxrSr3991S
+lgrHAsEO76bVOxEwDQYJKoZIhvcNAQEFBQADggEBAEs17szkrr/Dbq2flTtLP1se31cpolnKOOK5
+Gv+e5m4y3R6u6jW39ZORTtpC4cMXYFDy0VwmuYK36m3knITnA3kXr5g9lNvHugDnuL8BV8F3RTIM
+O/G0HAiw/VGgod2aHRM2mm23xzy54cXZF/qD1T0VoDy7HgviyJA/qIYM/PmLXoXLT1tLYhFHxUV8
+BS9BsZ4QaRuZluBVeftOhpm4lNqGOGqTo+fLbuXf6iFViZx9fX+Y9QCJ7uOEwFyWtcVG6kbghVW2
+G8kS1sHNzYDzAgE8yGnLRUhj2JTQ7IUOO04RZfSCjKY9ri4ilAnIXOo8gV0WKgOXFlUJ24pBgp5m
+mxE=
+-----END CERTIFICATE-----
+
+ApplicationCA - Japanese Government
+===================================
+-----BEGIN CERTIFICATE-----
+MIIDoDCCAoigAwIBAgIBMTANBgkqhkiG9w0BAQUFADBDMQswCQYDVQQGEwJKUDEcMBoGA1UEChMT
+SmFwYW5lc2UgR292ZXJubWVudDEWMBQGA1UECxMNQXBwbGljYXRpb25DQTAeFw0wNzEyMTIxNTAw
+MDBaFw0xNzEyMTIxNTAwMDBaMEMxCzAJBgNVBAYTAkpQMRwwGgYDVQQKExNKYXBhbmVzZSBHb3Zl
+cm5tZW50MRYwFAYDVQQLEw1BcHBsaWNhdGlvbkNBMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIB
+CgKCAQEAp23gdE6Hj6UG3mii24aZS2QNcfAKBZuOquHMLtJqO8F6tJdhjYq+xpqcBrSGUeQ3DnR4
+fl+Kf5Sk10cI/VBaVuRorChzoHvpfxiSQE8tnfWuREhzNgaeZCw7NCPbXCbkcXmP1G55IrmTwcrN
+wVbtiGrXoDkhBFcsovW8R0FPXjQilbUfKW1eSvNNcr5BViCH/OlQR9cwFO5cjFW6WY2H/CPek9AE
+jP3vbb3QesmlOmpyM8ZKDQUXKi17safY1vC+9D/qDihtQWEjdnjDuGWk81quzMKq2edY3rZ+nYVu
+nyoKb58DKTCXKB28t89UKU5RMfkntigm/qJj5kEW8DOYRwIDAQABo4GeMIGbMB0GA1UdDgQWBBRU
+WssmP3HMlEYNllPqa0jQk/5CdTAOBgNVHQ8BAf8EBAMCAQYwWQYDVR0RBFIwUKROMEwxCzAJBgNV
+BAYTAkpQMRgwFgYDVQQKDA/ml6XmnKzlm73mlL/lupwxIzAhBgNVBAsMGuOCouODl+ODquOCseOD
+vOOCt+ODp+ODs0NBMA8GA1UdEwEB/wQFMAMBAf8wDQYJKoZIhvcNAQEFBQADggEBADlqRHZ3ODrs
+o2dGD/mLBqj7apAxzn7s2tGJfHrrLgy9mTLnsCTWw//1sogJhyzjVOGjprIIC8CFqMjSnHH2HZ9g
+/DgzE+Ge3Atf2hZQKXsvcJEPmbo0NI2VdMV+eKlmXb3KIXdCEKxmJj3ekav9FfBv7WxfEPjzFvYD
+io+nEhEMy/0/ecGc/WLuo89UDNErXxc+4z6/wCs+CZv+iKZ+tJIX/COUgb1up8WMwusRRdv4QcmW
+dupwX3kSa+SjB1oF7ydJzyGfikwJcGapJsErEU4z0g781mzSDjJkaP+tBXhfAx2o45CsJOAPQKdL
+rosot4LKGAfmt1t06SAZf7IbiVQ=
+-----END CERTIFICATE-----
+
+GeoTrust Primary Certification Authority - G3
+=============================================
+-----BEGIN CERTIFICATE-----
+MIID/jCCAuagAwIBAgIQFaxulBmyeUtB9iepwxgPHzANBgkqhkiG9w0BAQsFADCBmDELMAkGA1UE
+BhMCVVMxFjAUBgNVBAoTDUdlb1RydXN0IEluYy4xOTA3BgNVBAsTMChjKSAyMDA4IEdlb1RydXN0
+IEluYy4gLSBGb3IgYXV0aG9yaXplZCB1c2Ugb25seTE2MDQGA1UEAxMtR2VvVHJ1c3QgUHJpbWFy
+eSBDZXJ0aWZpY2F0aW9uIEF1dGhvcml0eSAtIEczMB4XDTA4MDQwMjAwMDAwMFoXDTM3MTIwMTIz
+NTk1OVowgZgxCzAJBgNVBAYTAlVTMRYwFAYDVQQKEw1HZW9UcnVzdCBJbmMuMTkwNwYDVQQLEzAo
+YykgMjAwOCBHZW9UcnVzdCBJbmMuIC0gRm9yIGF1dGhvcml6ZWQgdXNlIG9ubHkxNjA0BgNVBAMT
+LUdlb1RydXN0IFByaW1hcnkgQ2VydGlmaWNhdGlvbiBBdXRob3JpdHkgLSBHMzCCASIwDQYJKoZI
+hvcNAQEBBQADggEPADCCAQoCggEBANziXmJYHTNXOTIz+uvLh4yn1ErdBojqZI4xmKU4kB6Yzy5j
+K/BGvESyiaHAKAxJcCGVn2TAppMSAmUmhsalifD614SgcK9PGpc/BkTVyetyEH3kMSj7HGHmKAdE
+c5IiaacDiGydY8hS2pgn5whMcD60yRLBxWeDXTPzAxHsatBT4tG6NmCUgLthY2xbF37fQJQeqw3C
+IShwiP/WJmxsYAQlTlV+fe+/lEjetx3dcI0FX4ilm/LC7urRQEFtYjgdVgbFA0dRIBn8exALDmKu
+dlW/X3e+PkkBUz2YJQN2JFodtNuJ6nnltrM7P7pMKEF/BqxqjsHQ9gUdfeZChuOl1UcCAwEAAaNC
+MEAwDwYDVR0TAQH/BAUwAwEB/zAOBgNVHQ8BAf8EBAMCAQYwHQYDVR0OBBYEFMR5yo6hTgMdHNxr
+2zFblD4/MH8tMA0GCSqGSIb3DQEBCwUAA4IBAQAtxRPPVoB7eni9n64smefv2t+UXglpp+duaIy9
+cr5HqQ6XErhK8WTTOd8lNNTBzU6B8A8ExCSzNJbGpqow32hhc9f5joWJ7w5elShKKiePEI4ufIbE
+Ap7aDHdlDkQNkv39sxY2+hENHYwOB4lqKVb3cvTdFZx3NWZXqxNT2I7BQMXXExZacse3aQHEerGD
+AWh9jUGhlBjBJVz88P6DAod8DQ3PLghcSkANPuyBYeYk28rgDi0Hsj5W3I31QYUHSJsMC8tJP33s
+t/3LjWeJGqvtux6jAAgIFyqCXDFdRootD4abdNlF+9RAsXqqaC2Gspki4cErx5z481+oghLrGREt
+-----END CERTIFICATE-----
+
+thawte Primary Root CA - G2
+===========================
+-----BEGIN CERTIFICATE-----
+MIICiDCCAg2gAwIBAgIQNfwmXNmET8k9Jj1Xm67XVjAKBggqhkjOPQQDAzCBhDELMAkGA1UEBhMC
+VVMxFTATBgNVBAoTDHRoYXd0ZSwgSW5jLjE4MDYGA1UECxMvKGMpIDIwMDcgdGhhd3RlLCBJbmMu
+IC0gRm9yIGF1dGhvcml6ZWQgdXNlIG9ubHkxJDAiBgNVBAMTG3RoYXd0ZSBQcmltYXJ5IFJvb3Qg
+Q0EgLSBHMjAeFw0wNzExMDUwMDAwMDBaFw0zODAxMTgyMzU5NTlaMIGEMQswCQYDVQQGEwJVUzEV
+MBMGA1UEChMMdGhhd3RlLCBJbmMuMTgwNgYDVQQLEy8oYykgMjAwNyB0aGF3dGUsIEluYy4gLSBG
+b3IgYXV0aG9yaXplZCB1c2Ugb25seTEkMCIGA1UEAxMbdGhhd3RlIFByaW1hcnkgUm9vdCBDQSAt
+IEcyMHYwEAYHKoZIzj0CAQYFK4EEACIDYgAEotWcgnuVnfFSeIf+iha/BebfowJPDQfGAFG6DAJS
+LSKkQjnE/o/qycG+1E3/n3qe4rF8mq2nhglzh9HnmuN6papu+7qzcMBniKI11KOasf2twu8x+qi5
+8/sIxpHR+ymVo0IwQDAPBgNVHRMBAf8EBTADAQH/MA4GA1UdDwEB/wQEAwIBBjAdBgNVHQ4EFgQU
+mtgAMADna3+FGO6Lts6KDPgR4bswCgYIKoZIzj0EAwMDaQAwZgIxAN344FdHW6fmCsO99YCKlzUN
+G4k8VIZ3KMqh9HneteY4sPBlcIx/AlTCv//YoT7ZzwIxAMSNlPzcU9LcnXgWHxUzI1NS41oxXZ3K
+rr0TKUQNJ1uo52icEvdYPy5yAlejj6EULg==
+-----END CERTIFICATE-----
+
+thawte Primary Root CA - G3
+===========================
+-----BEGIN CERTIFICATE-----
+MIIEKjCCAxKgAwIBAgIQYAGXt0an6rS0mtZLL/eQ+zANBgkqhkiG9w0BAQsFADCBrjELMAkGA1UE
+BhMCVVMxFTATBgNVBAoTDHRoYXd0ZSwgSW5jLjEoMCYGA1UECxMfQ2VydGlmaWNhdGlvbiBTZXJ2
+aWNlcyBEaXZpc2lvbjE4MDYGA1UECxMvKGMpIDIwMDggdGhhd3RlLCBJbmMuIC0gRm9yIGF1dGhv
+cml6ZWQgdXNlIG9ubHkxJDAiBgNVBAMTG3RoYXd0ZSBQcmltYXJ5IFJvb3QgQ0EgLSBHMzAeFw0w
+ODA0MDIwMDAwMDBaFw0zNzEyMDEyMzU5NTlaMIGuMQswCQYDVQQGEwJVUzEVMBMGA1UEChMMdGhh
+d3RlLCBJbmMuMSgwJgYDVQQLEx9DZXJ0aWZpY2F0aW9uIFNlcnZpY2VzIERpdmlzaW9uMTgwNgYD
+VQQLEy8oYykgMjAwOCB0aGF3dGUsIEluYy4gLSBGb3IgYXV0aG9yaXplZCB1c2Ugb25seTEkMCIG
+A1UEAxMbdGhhd3RlIFByaW1hcnkgUm9vdCBDQSAtIEczMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8A
+MIIBCgKCAQEAsr8nLPvb2FvdeHsbnndmgcs+vHyu86YnmjSjaDFxODNi5PNxZnmxqWWjpYvVj2At
+P0LMqmsywCPLLEHd5N/8YZzic7IilRFDGF/Eth9XbAoFWCLINkw6fKXRz4aviKdEAhN0cXMKQlkC
++BsUa0Lfb1+6a4KinVvnSr0eAXLbS3ToO39/fR8EtCab4LRarEc9VbjXsCZSKAExQGbY2SS99irY
+7CFJXJv2eul/VTV+lmuNk5Mny5K76qxAwJ/C+IDPXfRa3M50hqY+bAtTyr2SzhkGcuYMXDhpxwTW
+vGzOW/b3aJzcJRVIiKHpqfiYnODz1TEoYRFsZ5aNOZnLwkUkOQIDAQABo0IwQDAPBgNVHRMBAf8E
+BTADAQH/MA4GA1UdDwEB/wQEAwIBBjAdBgNVHQ4EFgQUrWyqlGCc7eT/+j4KdCtjA/e2Wb8wDQYJ
+KoZIhvcNAQELBQADggEBABpA2JVlrAmSicY59BDlqQ5mU1143vokkbvnRFHfxhY0Cu9qRFHqKweK
+A3rD6z8KLFIWoCtDuSWQP3CpMyVtRRooOyfPqsMpQhvfO0zAMzRbQYi/aytlryjvsvXDqmbOe1bu
+t8jLZ8HJnBoYuMTDSQPxYA5QzUbF83d597YV4Djbxy8ooAw/dyZ02SUS2jHaGh7cKUGRIjxpp7sC
+8rZcJwOJ9Abqm+RyguOhCcHpABnTPtRwa7pxpqpYrvS76Wy274fMm7v/OeZWYdMKp8RcTGB7BXcm
+er/YB1IsYvdwY9k5vG8cwnncdimvzsUsZAReiDZuMdRAGmI0Nj81Aa6sY6A=
+-----END CERTIFICATE-----
+
+GeoTrust Primary Certification Authority - G2
+=============================================
+-----BEGIN CERTIFICATE-----
+MIICrjCCAjWgAwIBAgIQPLL0SAoA4v7rJDteYD7DazAKBggqhkjOPQQDAzCBmDELMAkGA1UEBhMC
+VVMxFjAUBgNVBAoTDUdlb1RydXN0IEluYy4xOTA3BgNVBAsTMChjKSAyMDA3IEdlb1RydXN0IElu
+Yy4gLSBGb3IgYXV0aG9yaXplZCB1c2Ugb25seTE2MDQGA1UEAxMtR2VvVHJ1c3QgUHJpbWFyeSBD
+ZXJ0aWZpY2F0aW9uIEF1dGhvcml0eSAtIEcyMB4XDTA3MTEwNTAwMDAwMFoXDTM4MDExODIzNTk1
+OVowgZgxCzAJBgNVBAYTAlVTMRYwFAYDVQQKEw1HZW9UcnVzdCBJbmMuMTkwNwYDVQQLEzAoYykg
+MjAwNyBHZW9UcnVzdCBJbmMuIC0gRm9yIGF1dGhvcml6ZWQgdXNlIG9ubHkxNjA0BgNVBAMTLUdl
+b1RydXN0IFByaW1hcnkgQ2VydGlmaWNhdGlvbiBBdXRob3JpdHkgLSBHMjB2MBAGByqGSM49AgEG
+BSuBBAAiA2IABBWx6P0DFUPlrOuHNxFi79KDNlJ9RVcLSo17VDs6bl8VAsBQps8lL33KSLjHUGMc
+KiEIfJo22Av+0SbFWDEwKCXzXV2juLaltJLtbCyf691DiaI8S0iRHVDsJt/WYC69IaNCMEAwDwYD
+VR0TAQH/BAUwAwEB/zAOBgNVHQ8BAf8EBAMCAQYwHQYDVR0OBBYEFBVfNVdRVfslsq0DafwBo/q+
+EVXVMAoGCCqGSM49BAMDA2cAMGQCMGSWWaboCd6LuvpaiIjwH5HTRqjySkwCY/tsXzjbLkGTqQ7m
+ndwxHLKgpxgceeHHNgIwOlavmnRs9vuD4DPTCF+hnMJbn0bWtsuRBmOiBuczrD6ogRLQy7rQkgu2
+npaqBA+K
+-----END CERTIFICATE-----
+
+VeriSign Universal Root Certification Authority
+===============================================
+-----BEGIN CERTIFICATE-----
+MIIEuTCCA6GgAwIBAgIQQBrEZCGzEyEDDrvkEhrFHTANBgkqhkiG9w0BAQsFADCBvTELMAkGA1UE
+BhMCVVMxFzAVBgNVBAoTDlZlcmlTaWduLCBJbmMuMR8wHQYDVQQLExZWZXJpU2lnbiBUcnVzdCBO
+ZXR3b3JrMTowOAYDVQQLEzEoYykgMjAwOCBWZXJpU2lnbiwgSW5jLiAtIEZvciBhdXRob3JpemVk
+IHVzZSBvbmx5MTgwNgYDVQQDEy9WZXJpU2lnbiBVbml2ZXJzYWwgUm9vdCBDZXJ0aWZpY2F0aW9u
+IEF1dGhvcml0eTAeFw0wODA0MDIwMDAwMDBaFw0zNzEyMDEyMzU5NTlaMIG9MQswCQYDVQQGEwJV
+UzEXMBUGA1UEChMOVmVyaVNpZ24sIEluYy4xHzAdBgNVBAsTFlZlcmlTaWduIFRydXN0IE5ldHdv
+cmsxOjA4BgNVBAsTMShjKSAyMDA4IFZlcmlTaWduLCBJbmMuIC0gRm9yIGF1dGhvcml6ZWQgdXNl
+IG9ubHkxODA2BgNVBAMTL1ZlcmlTaWduIFVuaXZlcnNhbCBSb290IENlcnRpZmljYXRpb24gQXV0
+aG9yaXR5MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAx2E3XrEBNNti1xWb/1hajCMj
+1mCOkdeQmIN65lgZOIzF9uVkhbSicfvtvbnazU0AtMgtc6XHaXGVHzk8skQHnOgO+k1KxCHfKWGP
+MiJhgsWHH26MfF8WIFFE0XBPV+rjHOPMee5Y2A7Cs0WTwCznmhcrewA3ekEzeOEz4vMQGn+HLL72
+9fdC4uW/h2KJXwBL38Xd5HVEMkE6HnFuacsLdUYI0crSK5XQz/u5QGtkjFdN/BMReYTtXlT2NJ8I
+AfMQJQYXStrxHXpma5hgZqTZ79IugvHw7wnqRMkVauIDbjPTrJ9VAMf2CGqUuV/c4DPxhGD5WycR
+tPwW8rtWaoAljQIDAQABo4GyMIGvMA8GA1UdEwEB/wQFMAMBAf8wDgYDVR0PAQH/BAQDAgEGMG0G
+CCsGAQUFBwEMBGEwX6FdoFswWTBXMFUWCWltYWdlL2dpZjAhMB8wBwYFKw4DAhoEFI/l0xqGrI2O
+a8PPgGrUSBgsexkuMCUWI2h0dHA6Ly9sb2dvLnZlcmlzaWduLmNvbS92c2xvZ28uZ2lmMB0GA1Ud
+DgQWBBS2d/ppSEefUxLVwuoHMnYH0ZcHGTANBgkqhkiG9w0BAQsFAAOCAQEASvj4sAPmLGd75JR3
+Y8xuTPl9Dg3cyLk1uXBPY/ok+myDjEedO2Pzmvl2MpWRsXe8rJq+seQxIcaBlVZaDrHC1LGmWazx
+Y8u4TB1ZkErvkBYoH1quEPuBUDgMbMzxPcP1Y+Oz4yHJJDnp/RVmRvQbEdBNc6N9Rvk97ahfYtTx
+P/jgdFcrGJ2BtMQo2pSXpXDrrB2+BxHw1dvd5Yzw1TKwg+ZX4o+/vqGqvz0dtdQ46tewXDpPaj+P
+wGZsY6rp2aQW9IHRlRQOfc2VNNnSj3BzgXucfr2YYdhFh5iQxeuGMMY1v/D/w1WIg0vvBZIGcfK4
+mJO37M2CYfE45k+XmCpajQ==
+-----END CERTIFICATE-----
+
+VeriSign Class 3 Public Primary Certification Authority - G4
+============================================================
+-----BEGIN CERTIFICATE-----
+MIIDhDCCAwqgAwIBAgIQL4D+I4wOIg9IZxIokYesszAKBggqhkjOPQQDAzCByjELMAkGA1UEBhMC
+VVMxFzAVBgNVBAoTDlZlcmlTaWduLCBJbmMuMR8wHQYDVQQLExZWZXJpU2lnbiBUcnVzdCBOZXR3
+b3JrMTowOAYDVQQLEzEoYykgMjAwNyBWZXJpU2lnbiwgSW5jLiAtIEZvciBhdXRob3JpemVkIHVz
+ZSBvbmx5MUUwQwYDVQQDEzxWZXJpU2lnbiBDbGFzcyAzIFB1YmxpYyBQcmltYXJ5IENlcnRpZmlj
+YXRpb24gQXV0aG9yaXR5IC0gRzQwHhcNMDcxMTA1MDAwMDAwWhcNMzgwMTE4MjM1OTU5WjCByjEL
+MAkGA1UEBhMCVVMxFzAVBgNVBAoTDlZlcmlTaWduLCBJbmMuMR8wHQYDVQQLExZWZXJpU2lnbiBU
+cnVzdCBOZXR3b3JrMTowOAYDVQQLEzEoYykgMjAwNyBWZXJpU2lnbiwgSW5jLiAtIEZvciBhdXRo
+b3JpemVkIHVzZSBvbmx5MUUwQwYDVQQDEzxWZXJpU2lnbiBDbGFzcyAzIFB1YmxpYyBQcmltYXJ5
+IENlcnRpZmljYXRpb24gQXV0aG9yaXR5IC0gRzQwdjAQBgcqhkjOPQIBBgUrgQQAIgNiAASnVnp8
+Utpkmw4tXNherJI9/gHmGUo9FANL+mAnINmDiWn6VMaaGF5VKmTeBvaNSjutEDxlPZCIBIngMGGz
+rl0Bp3vefLK+ymVhAIau2o970ImtTR1ZmkGxvEeA3J5iw/mjgbIwga8wDwYDVR0TAQH/BAUwAwEB
+/zAOBgNVHQ8BAf8EBAMCAQYwbQYIKwYBBQUHAQwEYTBfoV2gWzBZMFcwVRYJaW1hZ2UvZ2lmMCEw
+HzAHBgUrDgMCGgQUj+XTGoasjY5rw8+AatRIGCx7GS4wJRYjaHR0cDovL2xvZ28udmVyaXNpZ24u
+Y29tL3ZzbG9nby5naWYwHQYDVR0OBBYEFLMWkf3upm7ktS5Jj4d4gYDs5bG1MAoGCCqGSM49BAMD
+A2gAMGUCMGYhDBgmYFo4e1ZC4Kf8NoRRkSAsdk1DPcQdhCPQrNZ8NQbOzWm9kA3bbEhCHQ6qQgIx
+AJw9SDkjOVgaFRJZap7v1VmyHVIsmXHNxynfGyphe3HR3vPA5Q06Sqotp9iGKt0uEA==
+-----END CERTIFICATE-----
+
+NetLock Arany (Class Gold) Főtanúsítvány
+============================================
+-----BEGIN CERTIFICATE-----
+MIIEFTCCAv2gAwIBAgIGSUEs5AAQMA0GCSqGSIb3DQEBCwUAMIGnMQswCQYDVQQGEwJIVTERMA8G
+A1UEBwwIQnVkYXBlc3QxFTATBgNVBAoMDE5ldExvY2sgS2Z0LjE3MDUGA1UECwwuVGFuw7pzw610
+dsOhbnlraWFkw7NrIChDZXJ0aWZpY2F0aW9uIFNlcnZpY2VzKTE1MDMGA1UEAwwsTmV0TG9jayBB
+cmFueSAoQ2xhc3MgR29sZCkgRsWRdGFuw7pzw610dsOhbnkwHhcNMDgxMjExMTUwODIxWhcNMjgx
+MjA2MTUwODIxWjCBpzELMAkGA1UEBhMCSFUxETAPBgNVBAcMCEJ1ZGFwZXN0MRUwEwYDVQQKDAxO
+ZXRMb2NrIEtmdC4xNzA1BgNVBAsMLlRhbsO6c8OtdHbDoW55a2lhZMOzayAoQ2VydGlmaWNhdGlv
+biBTZXJ2aWNlcykxNTAzBgNVBAMMLE5ldExvY2sgQXJhbnkgKENsYXNzIEdvbGQpIEbFkXRhbsO6
+c8OtdHbDoW55MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAxCRec75LbRTDofTjl5Bu
+0jBFHjzuZ9lk4BqKf8owyoPjIMHj9DrTlF8afFttvzBPhCf2nx9JvMaZCpDyD/V/Q4Q3Y1GLeqVw
+/HpYzY6b7cNGbIRwXdrzAZAj/E4wqX7hJ2Pn7WQ8oLjJM2P+FpD/sLj916jAwJRDC7bVWaaeVtAk
+H3B5r9s5VA1lddkVQZQBr17s9o3x/61k/iCa11zr/qYfCGSji3ZVrR47KGAuhyXoqq8fxmRGILdw
+fzzeSNuWU7c5d+Qa4scWhHaXWy+7GRWF+GmF9ZmnqfI0p6m2pgP8b4Y9VHx2BJtr+UBdADTHLpl1
+neWIA6pN+APSQnbAGwIDAKiLo0UwQzASBgNVHRMBAf8ECDAGAQH/AgEEMA4GA1UdDwEB/wQEAwIB
+BjAdBgNVHQ4EFgQUzPpnk/C2uNClwB7zU/2MU9+D15YwDQYJKoZIhvcNAQELBQADggEBAKt/7hwW
+qZw8UQCgwBEIBaeZ5m8BiFRhbvG5GK1Krf6BQCOUL/t1fC8oS2IkgYIL9WHxHG64YTjrgfpioTta
+YtOUZcTh5m2C+C8lcLIhJsFyUR+MLMOEkMNaj7rP9KdlpeuY0fsFskZ1FSNqb4VjMIDw1Z4fKRzC
+bLBQWV2QWzuoDTDPv31/zvGdg73JRm4gpvlhUbohL3u+pRVjodSVh/GeufOJ8z2FuLjbvrW5Kfna
+NwUASZQDhETnv0Mxz3WLJdH0pmT1kvarBes96aULNmLazAZfNou2XjG4Kvte9nHfRCaexOYNkbQu
+dZWAUWpLMKawYqGT8ZvYzsRjdT9ZR7E=
+-----END CERTIFICATE-----
+
+Staat der Nederlanden Root CA - G2
+==================================
+-----BEGIN CERTIFICATE-----
+MIIFyjCCA7KgAwIBAgIEAJiWjDANBgkqhkiG9w0BAQsFADBaMQswCQYDVQQGEwJOTDEeMBwGA1UE
+CgwVU3RhYXQgZGVyIE5lZGVybGFuZGVuMSswKQYDVQQDDCJTdGFhdCBkZXIgTmVkZXJsYW5kZW4g
+Um9vdCBDQSAtIEcyMB4XDTA4MDMyNjExMTgxN1oXDTIwMDMyNTExMDMxMFowWjELMAkGA1UEBhMC
+TkwxHjAcBgNVBAoMFVN0YWF0IGRlciBOZWRlcmxhbmRlbjErMCkGA1UEAwwiU3RhYXQgZGVyIE5l
+ZGVybGFuZGVuIFJvb3QgQ0EgLSBHMjCCAiIwDQYJKoZIhvcNAQEBBQADggIPADCCAgoCggIBAMVZ
+5291qj5LnLW4rJ4L5PnZyqtdj7U5EILXr1HgO+EASGrP2uEGQxGZqhQlEq0i6ABtQ8SpuOUfiUtn
+vWFI7/3S4GCI5bkYYCjDdyutsDeqN95kWSpGV+RLufg3fNU254DBtvPUZ5uW6M7XxgpT0GtJlvOj
+CwV3SPcl5XCsMBQgJeN/dVrlSPhOewMHBPqCYYdu8DvEpMfQ9XQ+pV0aCPKbJdL2rAQmPlU6Yiil
+e7Iwr/g3wtG61jj99O9JMDeZJiFIhQGp5Rbn3JBV3w/oOM2ZNyFPXfUib2rFEhZgF1XyZWampzCR
+OME4HYYEhLoaJXhena/MUGDWE4dS7WMfbWV9whUYdMrhfmQpjHLYFhN9C0lK8SgbIHRrxT3dsKpI
+CT0ugpTNGmXZK4iambwYfp/ufWZ8Pr2UuIHOzZgweMFvZ9C+X+Bo7d7iscksWXiSqt8rYGPy5V65
+48r6f1CGPqI0GAwJaCgRHOThuVw+R7oyPxjMW4T182t0xHJ04eOLoEq9jWYv6q012iDTiIJh8BIi
+trzQ1aTsr1SIJSQ8p22xcik/Plemf1WvbibG/ufMQFxRRIEKeN5KzlW/HdXZt1bv8Hb/C3m1r737
+qWmRRpdogBQ2HbN/uymYNqUg+oJgYjOk7Na6B6duxc8UpufWkjTYgfX8HV2qXB72o007uPc5AgMB
+AAGjgZcwgZQwDwYDVR0TAQH/BAUwAwEB/zBSBgNVHSAESzBJMEcGBFUdIAAwPzA9BggrBgEFBQcC
+ARYxaHR0cDovL3d3dy5wa2lvdmVyaGVpZC5ubC9wb2xpY2llcy9yb290LXBvbGljeS1HMjAOBgNV
+HQ8BAf8EBAMCAQYwHQYDVR0OBBYEFJFoMocVHYnitfGsNig0jQt8YojrMA0GCSqGSIb3DQEBCwUA
+A4ICAQCoQUpnKpKBglBu4dfYszk78wIVCVBR7y29JHuIhjv5tLySCZa59sCrI2AGeYwRTlHSeYAz
++51IvuxBQ4EffkdAHOV6CMqqi3WtFMTC6GY8ggen5ieCWxjmD27ZUD6KQhgpxrRW/FYQoAUXvQwj
+f/ST7ZwaUb7dRUG/kSS0H4zpX897IZmflZ85OkYcbPnNe5yQzSipx6lVu6xiNGI1E0sUOlWDuYaN
+kqbG9AclVMwWVxJKgnjIFNkXgiYtXSAfea7+1HAWFpWD2DU5/1JddRwWxRNVz0fMdWVSSt7wsKfk
+CpYL+63C4iWEst3kvX5ZbJvw8NjnyvLplzh+ib7M+zkXYT9y2zqR2GUBGR2tUKRXCnxLvJxxcypF
+URmFzI79R6d0lR2o0a9OF7FpJsKqeFdbxU2n5Z4FF5TKsl+gSRiNNOkmbEgeqmiSBeGCc1qb3Adb
+CG19ndeNIdn8FCCqwkXfP+cAslHkwvgFuXkajDTznlvkN1trSt8sV4pAWja63XVECDdCcAz+3F4h
+oKOKwJCcaNpQ5kUQR3i2TtJlycM33+FCY7BXN0Ute4qcvwXqZVUz9zkQxSgqIXobisQk+T8VyJoV
+IPVVYpbtbZNQvOSqeK3Zywplh6ZmwcSBo3c6WB4L7oOLnR7SUqTMHW+wmG2UMbX4cQrcufx9MmDm
+66+KAQ==
+-----END CERTIFICATE-----
+
+CA Disig
+========
+-----BEGIN CERTIFICATE-----
+MIIEDzCCAvegAwIBAgIBATANBgkqhkiG9w0BAQUFADBKMQswCQYDVQQGEwJTSzETMBEGA1UEBxMK
+QnJhdGlzbGF2YTETMBEGA1UEChMKRGlzaWcgYS5zLjERMA8GA1UEAxMIQ0EgRGlzaWcwHhcNMDYw
+MzIyMDEzOTM0WhcNMTYwMzIyMDEzOTM0WjBKMQswCQYDVQQGEwJTSzETMBEGA1UEBxMKQnJhdGlz
+bGF2YTETMBEGA1UEChMKRGlzaWcgYS5zLjERMA8GA1UEAxMIQ0EgRGlzaWcwggEiMA0GCSqGSIb3
+DQEBAQUAA4IBDwAwggEKAoIBAQCS9jHBfYj9mQGp2HvycXXxMcbzdWb6UShGhJd4NLxs/LxFWYgm
+GErENx+hSkS943EE9UQX4j/8SFhvXJ56CbpRNyIjZkMhsDxkovhqFQ4/61HhVKndBpnXmjxUizkD
+Pw/Fzsbrg3ICqB9x8y34dQjbYkzo+s7552oftms1grrijxaSfQUMbEYDXcDtab86wYqg6I7ZuUUo
+hwjstMoVvoLdtUSLLa2GDGhibYVW8qwUYzrG0ZmsNHhWS8+2rT+MitcE5eN4TPWGqvWP+j1scaMt
+ymfraHtuM6kMgiioTGohQBUgDCZbg8KpFhXAJIJdKxatymP2dACw30PEEGBWZ2NFAgMBAAGjgf8w
+gfwwDwYDVR0TAQH/BAUwAwEB/zAdBgNVHQ4EFgQUjbJJaJ1yCCW5wCf1UJNWSEZx+Y8wDgYDVR0P
+AQH/BAQDAgEGMDYGA1UdEQQvMC2BE2Nhb3BlcmF0b3JAZGlzaWcuc2uGFmh0dHA6Ly93d3cuZGlz
+aWcuc2svY2EwZgYDVR0fBF8wXTAtoCugKYYnaHR0cDovL3d3dy5kaXNpZy5zay9jYS9jcmwvY2Ff
+ZGlzaWcuY3JsMCygKqAohiZodHRwOi8vY2EuZGlzaWcuc2svY2EvY3JsL2NhX2Rpc2lnLmNybDAa
+BgNVHSAEEzARMA8GDSuBHpGT5goAAAABAQEwDQYJKoZIhvcNAQEFBQADggEBAF00dGFMrzvY/59t
+WDYcPQuBDRIrRhCA/ec8J9B6yKm2fnQwM6M6int0wHl5QpNt/7EpFIKrIYwvF/k/Ji/1WcbvgAa3
+mkkp7M5+cTxqEEHA9tOasnxakZzArFvITV734VP/Q3f8nktnbNfzg9Gg4H8l37iYC5oyOGwwoPP/
+CBUz91BKez6jPiCp3C9WgArtQVCwyfTssuMmRAAOb54GvCKWU3BlxFAKRmukLyeBEicTXxChds6K
+ezfqwzlhA5WYOudsiCUI/HloDYd9Yvi0X/vF2Ey9WLw/Q1vUHgFNPGO+I++MzVpQuGhU+QqZMxEA
+4Z7CRneC9VkGjCFMhwnN5ag=
+-----END CERTIFICATE-----
+
+Juur-SK
+=======
+-----BEGIN CERTIFICATE-----
+MIIE5jCCA86gAwIBAgIEO45L/DANBgkqhkiG9w0BAQUFADBdMRgwFgYJKoZIhvcNAQkBFglwa2lA
+c2suZWUxCzAJBgNVBAYTAkVFMSIwIAYDVQQKExlBUyBTZXJ0aWZpdHNlZXJpbWlza2Vza3VzMRAw
+DgYDVQQDEwdKdXVyLVNLMB4XDTAxMDgzMDE0MjMwMVoXDTE2MDgyNjE0MjMwMVowXTEYMBYGCSqG
+SIb3DQEJARYJcGtpQHNrLmVlMQswCQYDVQQGEwJFRTEiMCAGA1UEChMZQVMgU2VydGlmaXRzZWVy
+aW1pc2tlc2t1czEQMA4GA1UEAxMHSnV1ci1TSzCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoC
+ggEBAIFxNj4zB9bjMI0TfncyRsvPGbJgMUaXhvSYRqTCZUXP00B841oiqBB4M8yIsdOBSvZiF3tf
+TQou0M+LI+5PAk676w7KvRhj6IAcjeEcjT3g/1tf6mTll+g/mX8MCgkzABpTpyHhOEvWgxutr2TC
++Rx6jGZITWYfGAriPrsfB2WThbkasLnE+w0R9vXW+RvHLCu3GFH+4Hv2qEivbDtPL+/40UceJlfw
+UR0zlv/vWT3aTdEVNMfqPxZIe5EcgEMPPbgFPtGzlc3Yyg/CQ2fbt5PgIoIuvvVoKIO5wTtpeyDa
+Tpxt4brNj3pssAki14sL2xzVWiZbDcDq5WDQn/413z8CAwEAAaOCAawwggGoMA8GA1UdEwEB/wQF
+MAMBAf8wggEWBgNVHSAEggENMIIBCTCCAQUGCisGAQQBzh8BAQEwgfYwgdAGCCsGAQUFBwICMIHD
+HoHAAFMAZQBlACAAcwBlAHIAdABpAGYAaQBrAGEAYQB0ACAAbwBuACAAdgDkAGwAagBhAHMAdABh
+AHQAdQBkACAAQQBTAC0AaQBzACAAUwBlAHIAdABpAGYAaQB0AHMAZQBlAHIAaQBtAGkAcwBrAGUA
+cwBrAHUAcwAgAGEAbABhAG0ALQBTAEsAIABzAGUAcgB0AGkAZgBpAGsAYQBhAHQAaQBkAGUAIABr
+AGkAbgBuAGkAdABhAG0AaQBzAGUAawBzMCEGCCsGAQUFBwIBFhVodHRwOi8vd3d3LnNrLmVlL2Nw
+cy8wKwYDVR0fBCQwIjAgoB6gHIYaaHR0cDovL3d3dy5zay5lZS9qdXVyL2NybC8wHQYDVR0OBBYE
+FASqekej5ImvGs8KQKcYP2/v6X2+MB8GA1UdIwQYMBaAFASqekej5ImvGs8KQKcYP2/v6X2+MA4G
+A1UdDwEB/wQEAwIB5jANBgkqhkiG9w0BAQUFAAOCAQEAe8EYlFOiCfP+JmeaUOTDBS8rNXiRTHyo
+ERF5TElZrMj3hWVcRrs7EKACr81Ptcw2Kuxd/u+gkcm2k298gFTsxwhwDY77guwqYHhpNjbRxZyL
+abVAyJRld/JXIWY7zoVAtjNjGr95HvxcHdMdkxuLDF2FvZkwMhgJkVLpfKG6/2SSmuz+Ne6ML678
+IIbsSt4beDI3poHSna9aEhbKmVv8b20OxaAehsmR0FyYgl9jDIpaq9iVpszLita/ZEuOyoqysOkh
+Mp6qqIWYNIE5ITuoOlIyPfZrN4YGWhWY3PARZv40ILcD9EEQfTmEeZZyY7aWAuVrua0ZTbvGRNs2
+yyqcjg==
+-----END CERTIFICATE-----
+
+Hongkong Post Root CA 1
+=======================
+-----BEGIN CERTIFICATE-----
+MIIDMDCCAhigAwIBAgICA+gwDQYJKoZIhvcNAQEFBQAwRzELMAkGA1UEBhMCSEsxFjAUBgNVBAoT
+DUhvbmdrb25nIFBvc3QxIDAeBgNVBAMTF0hvbmdrb25nIFBvc3QgUm9vdCBDQSAxMB4XDTAzMDUx
+NTA1MTMxNFoXDTIzMDUxNTA0NTIyOVowRzELMAkGA1UEBhMCSEsxFjAUBgNVBAoTDUhvbmdrb25n
+IFBvc3QxIDAeBgNVBAMTF0hvbmdrb25nIFBvc3QgUm9vdCBDQSAxMIIBIjANBgkqhkiG9w0BAQEF
+AAOCAQ8AMIIBCgKCAQEArP84tulmAknjorThkPlAj3n54r15/gK97iSSHSL22oVyaf7XPwnU3ZG1
+ApzQjVrhVcNQhrkpJsLj2aDxaQMoIIBFIi1WpztUlVYiWR8o3x8gPW2iNr4joLFutbEnPzlTCeqr
+auh0ssJlXI6/fMN4hM2eFvz1Lk8gKgifd/PFHsSaUmYeSF7jEAaPIpjhZY4bXSNmO7ilMlHIhqqh
+qZ5/dpTCpmy3QfDVyAY45tQM4vM7TG1QjMSDJ8EThFk9nnV0ttgCXjqQesBCNnLsak3c78QA3xMY
+V18meMjWCnl3v/evt3a5pQuEF10Q6m/hq5URX208o1xNg1vysxmKgIsLhwIDAQABoyYwJDASBgNV
+HRMBAf8ECDAGAQH/AgEDMA4GA1UdDwEB/wQEAwIBxjANBgkqhkiG9w0BAQUFAAOCAQEADkbVPK7i
+h9legYsCmEEIjEy82tvuJxuC52pF7BaLT4Wg87JwvVqWuspube5Gi27nKi6Wsxkz67SfqLI37pio
+l7Yutmcn1KZJ/RyTZXaeQi/cImyaT/JaFTmxcdcrUehtHJjA2Sr0oYJ71clBoiMBdDhViw+5Lmei
+IAQ32pwL0xch4I+XeTRvhEgCIDMb5jREn5Fw9IBehEPCKdJsEhTkYY2sEJCehFC78JZvRZ+K88ps
+T/oROhUVRsPNH4NbLUES7VBnQRM9IauUiqpOfMGx+6fWtScvl6tu4B3i0RwsH0Ti/L6RoZz71ilT
+c4afU9hDDl3WY4JxHYB0yvbiAmvZWg==
+-----END CERTIFICATE-----
+
+SecureSign RootCA11
+===================
+-----BEGIN CERTIFICATE-----
+MIIDbTCCAlWgAwIBAgIBATANBgkqhkiG9w0BAQUFADBYMQswCQYDVQQGEwJKUDErMCkGA1UEChMi
+SmFwYW4gQ2VydGlmaWNhdGlvbiBTZXJ2aWNlcywgSW5jLjEcMBoGA1UEAxMTU2VjdXJlU2lnbiBS
+b290Q0ExMTAeFw0wOTA0MDgwNDU2NDdaFw0yOTA0MDgwNDU2NDdaMFgxCzAJBgNVBAYTAkpQMSsw
+KQYDVQQKEyJKYXBhbiBDZXJ0aWZpY2F0aW9uIFNlcnZpY2VzLCBJbmMuMRwwGgYDVQQDExNTZWN1
+cmVTaWduIFJvb3RDQTExMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEA/XeqpRyQBTvL
+TJszi1oURaTnkBbR31fSIRCkF/3frNYfp+TbfPfs37gD2pRY/V1yfIw/XwFndBWW4wI8h9uuywGO
+wvNmxoVF9ALGOrVisq/6nL+k5tSAMJjzDbaTj6nU2DbysPyKyiyhFTOVMdrAG/LuYpmGYz+/3ZMq
+g6h2uRMft85OQoWPIucuGvKVCbIFtUROd6EgvanyTgp9UK31BQ1FT0Zx/Sg+U/sE2C3XZR1KG/rP
+O7AxmjVuyIsG0wCR8pQIZUyxNAYAeoni8McDWc/V1uinMrPmmECGxc0nEovMe863ETxiYAcjPitA
+bpSACW22s293bzUIUPsCh8U+iQIDAQABo0IwQDAdBgNVHQ4EFgQUW/hNT7KlhtQ60vFjmqC+CfZX
+t94wDgYDVR0PAQH/BAQDAgEGMA8GA1UdEwEB/wQFMAMBAf8wDQYJKoZIhvcNAQEFBQADggEBAKCh
+OBZmLqdWHyGcBvod7bkixTgm2E5P7KN/ed5GIaGHd48HCJqypMWvDzKYC3xmKbabfSVSSUOrTC4r
+bnpwrxYO4wJs+0LmGJ1F2FXI6Dvd5+H0LgscNFxsWEr7jIhQX5Ucv+2rIrVls4W6ng+4reV6G4pQ
+Oh29Dbx7VFALuUKvVaAYga1lme++5Jy/xIWrQbJUb9wlze144o4MjQlJ3WN7WmmWAiGovVJZ6X01
+y8hSyn+B/tlr0/cR7SXf+Of5pPpyl4RTDaXQMhhRdlkUbA/r7F+AjHVDg8OFmP9Mni0N5HeDk061
+lgeLKBObjBmNQSdJQO7e5iNEOdyhIta6A/I=
+-----END CERTIFICATE-----
+
+ACEDICOM Root
+=============
+-----BEGIN CERTIFICATE-----
+MIIFtTCCA52gAwIBAgIIYY3HhjsBggUwDQYJKoZIhvcNAQEFBQAwRDEWMBQGA1UEAwwNQUNFRElD
+T00gUm9vdDEMMAoGA1UECwwDUEtJMQ8wDQYDVQQKDAZFRElDT00xCzAJBgNVBAYTAkVTMB4XDTA4
+MDQxODE2MjQyMloXDTI4MDQxMzE2MjQyMlowRDEWMBQGA1UEAwwNQUNFRElDT00gUm9vdDEMMAoG
+A1UECwwDUEtJMQ8wDQYDVQQKDAZFRElDT00xCzAJBgNVBAYTAkVTMIICIjANBgkqhkiG9w0BAQEF
+AAOCAg8AMIICCgKCAgEA/5KV4WgGdrQsyFhIyv2AVClVYyT/kGWbEHV7w2rbYgIB8hiGtXxaOLHk
+WLn709gtn70yN78sFW2+tfQh0hOR2QetAQXW8713zl9CgQr5auODAKgrLlUTY4HKRxx7XBZXehuD
+YAQ6PmXDzQHe3qTWDLqO3tkE7hdWIpuPY/1NFgu3e3eM+SW10W2ZEi5PGrjm6gSSrj0RuVFCPYew
+MYWveVqc/udOXpJPQ/yrOq2lEiZmueIM15jO1FillUAKt0SdE3QrwqXrIhWYENiLxQSfHY9g5QYb
+m8+5eaA9oiM/Qj9r+hwDezCNzmzAv+YbX79nuIQZ1RXve8uQNjFiybwCq0Zfm/4aaJQ0PZCOrfbk
+HQl/Sog4P75n/TSW9R28MHTLOO7VbKvU/PQAtwBbhTIWdjPp2KOZnQUAqhbm84F9b32qhm2tFXTT
+xKJxqvQUfecyuB+81fFOvW8XAjnXDpVCOscAPukmYxHqC9FK/xidstd7LzrZlvvoHpKuE1XI2Sf2
+3EgbsCTBheN3nZqk8wwRHQ3ItBTutYJXCb8gWH8vIiPYcMt5bMlL8qkqyPyHK9caUPgn6C9D4zq9
+2Fdx/c6mUlv53U3t5fZvie27k5x2IXXwkkwp9y+cAS7+UEaeZAwUswdbxcJzbPEHXEUkFDWug/Fq
+TYl6+rPYLWbwNof1K1MCAwEAAaOBqjCBpzAPBgNVHRMBAf8EBTADAQH/MB8GA1UdIwQYMBaAFKaz
+4SsrSbbXc6GqlPUB53NlTKxQMA4GA1UdDwEB/wQEAwIBhjAdBgNVHQ4EFgQUprPhKytJttdzoaqU
+9QHnc2VMrFAwRAYDVR0gBD0wOzA5BgRVHSAAMDEwLwYIKwYBBQUHAgEWI2h0dHA6Ly9hY2VkaWNv
+bS5lZGljb21ncm91cC5jb20vZG9jMA0GCSqGSIb3DQEBBQUAA4ICAQDOLAtSUWImfQwng4/F9tqg
+aHtPkl7qpHMyEVNEskTLnewPeUKzEKbHDZ3Ltvo/Onzqv4hTGzz3gvoFNTPhNahXwOf9jU8/kzJP
+eGYDdwdY6ZXIfj7QeQCM8htRM5u8lOk6e25SLTKeI6RF+7YuE7CLGLHdztUdp0J/Vb77W7tH1Pwk
+zQSulgUV1qzOMPPKC8W64iLgpq0i5ALudBF/TP94HTXa5gI06xgSYXcGCRZj6hitoocf8seACQl1
+ThCojz2GuHURwCRiipZ7SkXp7FnFvmuD5uHorLUwHv4FB4D54SMNUI8FmP8sX+g7tq3PgbUhh8oI
+KiMnMCArz+2UW6yyetLHKKGKC5tNSixthT8Jcjxn4tncB7rrZXtaAWPWkFtPF2Y9fwsZo5NjEFIq
+nxQWWOLcpfShFosOkYuByptZ+thrkQdlVV9SH686+5DdaaVbnG0OLLb6zqylfDJKZ0DcMDQj3dcE
+I2bw/FWAp/tmGYI1Z2JwOV5vx+qQQEQIHriy1tvuWacNGHk0vFQYXlPKNFHtRQrmjseCNj6nOGOp
+MCwXEGCSn1WHElkQwg9naRHMTh5+Spqtr0CodaxWkHS4oJyleW/c6RrIaQXpuvoDs3zk4E7Czp3o
+tkYNbn5XOmeUwssfnHdKZ05phkOTOPu220+DkdRgfks+KzgHVZhepA==
+-----END CERTIFICATE-----
+
+Microsec e-Szigno Root CA 2009
+==============================
+-----BEGIN CERTIFICATE-----
+MIIECjCCAvKgAwIBAgIJAMJ+QwRORz8ZMA0GCSqGSIb3DQEBCwUAMIGCMQswCQYDVQQGEwJIVTER
+MA8GA1UEBwwIQnVkYXBlc3QxFjAUBgNVBAoMDU1pY3Jvc2VjIEx0ZC4xJzAlBgNVBAMMHk1pY3Jv
+c2VjIGUtU3ppZ25vIFJvb3QgQ0EgMjAwOTEfMB0GCSqGSIb3DQEJARYQaW5mb0BlLXN6aWduby5o
+dTAeFw0wOTA2MTYxMTMwMThaFw0yOTEyMzAxMTMwMThaMIGCMQswCQYDVQQGEwJIVTERMA8GA1UE
+BwwIQnVkYXBlc3QxFjAUBgNVBAoMDU1pY3Jvc2VjIEx0ZC4xJzAlBgNVBAMMHk1pY3Jvc2VjIGUt
+U3ppZ25vIFJvb3QgQ0EgMjAwOTEfMB0GCSqGSIb3DQEJARYQaW5mb0BlLXN6aWduby5odTCCASIw
+DQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAOn4j/NjrdqG2KfgQvvPkd6mJviZpWNwrZuuyjNA
+fW2WbqEORO7hE52UQlKavXWFdCyoDh2Tthi3jCyoz/tccbna7P7ofo/kLx2yqHWH2Leh5TvPmUpG
+0IMZfcChEhyVbUr02MelTTMuhTlAdX4UfIASmFDHQWe4oIBhVKZsTh/gnQ4H6cm6M+f+wFUoLAKA
+pxn1ntxVUwOXewdI/5n7N4okxFnMUBBjjqqpGrCEGob5X7uxUG6k0QrM1XF+H6cbfPVTbiJfyyvm
+1HxdrtbCxkzlBQHZ7Vf8wSN5/PrIJIOV87VqUQHQd9bpEqH5GoP7ghu5sJf0dgYzQ0mg/wu1+rUC
+AwEAAaOBgDB+MA8GA1UdEwEB/wQFMAMBAf8wDgYDVR0PAQH/BAQDAgEGMB0GA1UdDgQWBBTLD8bf
+QkPMPcu1SCOhGnqmKrs0aDAfBgNVHSMEGDAWgBTLD8bfQkPMPcu1SCOhGnqmKrs0aDAbBgNVHREE
+FDASgRBpbmZvQGUtc3ppZ25vLmh1MA0GCSqGSIb3DQEBCwUAA4IBAQDJ0Q5eLtXMs3w+y/w9/w0o
+lZMEyL/azXm4Q5DwpL7v8u8hmLzU1F0G9u5C7DBsoKqpyvGvivo/C3NqPuouQH4frlRheesuCDfX
+I/OMn74dseGkddug4lQUsbocKaQY9hK6ohQU4zE1yED/t+AFdlfBHFny+L/k7SViXITwfn4fs775
+tyERzAMBVnCnEJIeGzSBHq2cGsMEPO0CYdYeBvNfOofyK/FFh+U9rNHHV4S9a67c2Pm2G2JwCz02
+yULyMtd6YebS2z3PyKnJm9zbWETXbzivf3jTo60adbocwTZ8jx5tHMN1Rq41Bab2XD0h7lbwyYIi
+LXpUq3DDfSJlgnCW
+-----END CERTIFICATE-----
+
+E-Guven Kok Elektronik Sertifika Hizmet Saglayicisi
+===================================================
+-----BEGIN CERTIFICATE-----
+MIIDtjCCAp6gAwIBAgIQRJmNPMADJ72cdpW56tustTANBgkqhkiG9w0BAQUFADB1MQswCQYDVQQG
+EwJUUjEoMCYGA1UEChMfRWxla3Ryb25payBCaWxnaSBHdXZlbmxpZ2kgQS5TLjE8MDoGA1UEAxMz
+ZS1HdXZlbiBLb2sgRWxla3Ryb25payBTZXJ0aWZpa2EgSGl6bWV0IFNhZ2xheWljaXNpMB4XDTA3
+MDEwNDExMzI0OFoXDTE3MDEwNDExMzI0OFowdTELMAkGA1UEBhMCVFIxKDAmBgNVBAoTH0VsZWt0
+cm9uaWsgQmlsZ2kgR3V2ZW5saWdpIEEuUy4xPDA6BgNVBAMTM2UtR3V2ZW4gS29rIEVsZWt0cm9u
+aWsgU2VydGlmaWthIEhpem1ldCBTYWdsYXlpY2lzaTCCASIwDQYJKoZIhvcNAQEBBQADggEPADCC
+AQoCggEBAMMSIJ6wXgBljU5Gu4Bc6SwGl9XzcslwuedLZYDBS75+PNdUMZTe1RK6UxYC6lhj71vY
+8+0qGqpxSKPcEC1fX+tcS5yWCEIlKBHMilpiAVDV6wlTL/jDj/6z/P2douNffb7tC+Bg62nsM+3Y
+jfsSSYMAyYuXjDtzKjKzEve5TfL0TW3H5tYmNwjy2f1rXKPlSFxYvEK+A1qBuhw1DADT9SN+cTAI
+JjjcJRFHLfO6IxClv7wC90Nex/6wN1CZew+TzuZDLMN+DfIcQ2Zgy2ExR4ejT669VmxMvLz4Bcpk
+9Ok0oSy1c+HCPujIyTQlCFzz7abHlJ+tiEMl1+E5YP6sOVkCAwEAAaNCMEAwDgYDVR0PAQH/BAQD
+AgEGMA8GA1UdEwEB/wQFMAMBAf8wHQYDVR0OBBYEFJ/uRLOU1fqRTy7ZVZoEVtstxNulMA0GCSqG
+SIb3DQEBBQUAA4IBAQB/X7lTW2M9dTLn+sR0GstG30ZpHFLPqk/CaOv/gKlR6D1id4k9CnU58W5d
+F4dvaAXBlGzZXd/aslnLpRCKysw5zZ/rTt5S/wzw9JKp8mxTq5vSR6AfdPebmvEvFZ96ZDAYBzwq
+D2fK/A+JYZ1lpTzlvBNbCNvj/+27BrtqBrF6T2XGgv0enIu1De5Iu7i9qgi0+6N8y5/NkHZchpZ4
+Vwpm+Vganf2XKWDeEaaQHBkc7gGWIjQ0LpH5t8Qn0Xvmv/uARFoW5evg1Ao4vOSR49XrXMGs3xtq
+fJ7lddK2l4fbzIcrQzqECK+rPNv3PGYxhrCdU3nt+CPeQuMtgvEP5fqX
+-----END CERTIFICATE-----
+
+GlobalSign Root CA - R3
+=======================
+-----BEGIN CERTIFICATE-----
+MIIDXzCCAkegAwIBAgILBAAAAAABIVhTCKIwDQYJKoZIhvcNAQELBQAwTDEgMB4GA1UECxMXR2xv
+YmFsU2lnbiBSb290IENBIC0gUjMxEzARBgNVBAoTCkdsb2JhbFNpZ24xEzARBgNVBAMTCkdsb2Jh
+bFNpZ24wHhcNMDkwMzE4MTAwMDAwWhcNMjkwMzE4MTAwMDAwWjBMMSAwHgYDVQQLExdHbG9iYWxT
+aWduIFJvb3QgQ0EgLSBSMzETMBEGA1UEChMKR2xvYmFsU2lnbjETMBEGA1UEAxMKR2xvYmFsU2ln
+bjCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAMwldpB5BngiFvXAg7aEyiie/QV2EcWt
+iHL8RgJDx7KKnQRfJMsuS+FggkbhUqsMgUdwbN1k0ev1LKMPgj0MK66X17YUhhB5uzsTgHeMCOFJ
+0mpiLx9e+pZo34knlTifBtc+ycsmWQ1z3rDI6SYOgxXG71uL0gRgykmmKPZpO/bLyCiR5Z2KYVc3
+rHQU3HTgOu5yLy6c+9C7v/U9AOEGM+iCK65TpjoWc4zdQQ4gOsC0p6Hpsk+QLjJg6VfLuQSSaGjl
+OCZgdbKfd/+RFO+uIEn8rUAVSNECMWEZXriX7613t2Saer9fwRPvm2L7DWzgVGkWqQPabumDk3F2
+xmmFghcCAwEAAaNCMEAwDgYDVR0PAQH/BAQDAgEGMA8GA1UdEwEB/wQFMAMBAf8wHQYDVR0OBBYE
+FI/wS3+oLkUkrk1Q+mOai97i3Ru8MA0GCSqGSIb3DQEBCwUAA4IBAQBLQNvAUKr+yAzv95ZURUm7
+lgAJQayzE4aGKAczymvmdLm6AC2upArT9fHxD4q/c2dKg8dEe3jgr25sbwMpjjM5RcOO5LlXbKr8
+EpbsU8Yt5CRsuZRj+9xTaGdWPoO4zzUhw8lo/s7awlOqzJCK6fBdRoyV3XpYKBovHd7NADdBj+1E
+bddTKJd+82cEHhXXipa0095MJ6RMG3NzdvQXmcIfeg7jLQitChws/zyrVQ4PkX4268NXSb7hLi18
+YIvDQVETI53O9zJrlAGomecsMx86OyXShkDOOyyGeMlhLxS67ttVb9+E7gUJTb0o2HLO02JQZR7r
+kpeDMdmztcpHWD9f
+-----END CERTIFICATE-----
+
+Autoridad de Certificacion Firmaprofesional CIF A62634068
+=========================================================
+-----BEGIN CERTIFICATE-----
+MIIGFDCCA/ygAwIBAgIIU+w77vuySF8wDQYJKoZIhvcNAQEFBQAwUTELMAkGA1UEBhMCRVMxQjBA
+BgNVBAMMOUF1dG9yaWRhZCBkZSBDZXJ0aWZpY2FjaW9uIEZpcm1hcHJvZmVzaW9uYWwgQ0lGIEE2
+MjYzNDA2ODAeFw0wOTA1MjAwODM4MTVaFw0zMDEyMzEwODM4MTVaMFExCzAJBgNVBAYTAkVTMUIw
+QAYDVQQDDDlBdXRvcmlkYWQgZGUgQ2VydGlmaWNhY2lvbiBGaXJtYXByb2Zlc2lvbmFsIENJRiBB
+NjI2MzQwNjgwggIiMA0GCSqGSIb3DQEBAQUAA4ICDwAwggIKAoICAQDKlmuO6vj78aI14H9M2uDD
+Utd9thDIAl6zQyrET2qyyhxdKJp4ERppWVevtSBC5IsP5t9bpgOSL/UR5GLXMnE42QQMcas9UX4P
+B99jBVzpv5RvwSmCwLTaUbDBPLutN0pcyvFLNg4kq7/DhHf9qFD0sefGL9ItWY16Ck6WaVICqjaY
+7Pz6FIMMNx/Jkjd/14Et5cS54D40/mf0PmbR0/RAz15iNA9wBj4gGFrO93IbJWyTdBSTo3OxDqqH
+ECNZXyAFGUftaI6SEspd/NYrspI8IM/hX68gvqB2f3bl7BqGYTM+53u0P6APjqK5am+5hyZvQWyI
+plD9amML9ZMWGxmPsu2bm8mQ9QEM3xk9Dz44I8kvjwzRAv4bVdZO0I08r0+k8/6vKtMFnXkIoctX
+MbScyJCyZ/QYFpM6/EfY0XiWMR+6KwxfXZmtY4laJCB22N/9q06mIqqdXuYnin1oKaPnirjaEbsX
+LZmdEyRG98Xi2J+Of8ePdG1asuhy9azuJBCtLxTa/y2aRnFHvkLfuwHb9H/TKI8xWVvTyQKmtFLK
+bpf7Q8UIJm+K9Lv9nyiqDdVF8xM6HdjAeI9BZzwelGSuewvF6NkBiDkal4ZkQdU7hwxu+g/GvUgU
+vzlN1J5Bto+WHWOWk9mVBngxaJ43BjuAiUVhOSPHG0SjFeUc+JIwuwIDAQABo4HvMIHsMBIGA1Ud
+EwEB/wQIMAYBAf8CAQEwDgYDVR0PAQH/BAQDAgEGMB0GA1UdDgQWBBRlzeurNR4APn7VdMActHNH
+DhpkLzCBpgYDVR0gBIGeMIGbMIGYBgRVHSAAMIGPMC8GCCsGAQUFBwIBFiNodHRwOi8vd3d3LmZp
+cm1hcHJvZmVzaW9uYWwuY29tL2NwczBcBggrBgEFBQcCAjBQHk4AUABhAHMAZQBvACAAZABlACAA
+bABhACAAQgBvAG4AYQBuAG8AdgBhACAANAA3ACAAQgBhAHIAYwBlAGwAbwBuAGEAIAAwADgAMAAx
+ADcwDQYJKoZIhvcNAQEFBQADggIBABd9oPm03cXF661LJLWhAqvdpYhKsg9VSytXjDvlMd3+xDLx
+51tkljYyGOylMnfX40S2wBEqgLk9am58m9Ot/MPWo+ZkKXzR4Tgegiv/J2Wv+xYVxC5xhOW1//qk
+R71kMrv2JYSiJ0L1ILDCExARzRAVukKQKtJE4ZYm6zFIEv0q2skGz3QeqUvVhyj5eTSSPi5E6PaP
+T481PyWzOdxjKpBrIF/EUhJOlywqrJ2X3kjyo2bbwtKDlaZmp54lD+kLM5FlClrD2VQS3a/DTg4f
+Jl4N3LON7NWBcN7STyQF82xO9UxJZo3R/9ILJUFI/lGExkKvgATP0H5kSeTy36LssUzAKh3ntLFl
+osS88Zj0qnAHY7S42jtM+kAiMFsRpvAFDsYCA0irhpuF3dvd6qJ2gHN99ZwExEWN57kci57q13XR
+crHedUTnQn3iV2t93Jm8PYMo6oCTjcVMZcFwgbg4/EMxsvYDNEeyrPsiBsse3RdHHF9mudMaotoR
+saS8I8nkvof/uZS2+F0gStRf571oe2XyFR7SOqkt6dhrJKyXWERHrVkY8SFlcN7ONGCoQPHzPKTD
+KCOM/iczQ0CgFzzr6juwcqajuUpLXhZI9LK8yIySxZ2frHI2vDSANGupi5LAuBft7HZT9SQBjLMi
+6Et8Vcad+qMUu2WFbm5PEn4KPJ2V
+-----END CERTIFICATE-----
+
+Izenpe.com
+==========
+-----BEGIN CERTIFICATE-----
+MIIF8TCCA9mgAwIBAgIQALC3WhZIX7/hy/WL1xnmfTANBgkqhkiG9w0BAQsFADA4MQswCQYDVQQG
+EwJFUzEUMBIGA1UECgwLSVpFTlBFIFMuQS4xEzARBgNVBAMMCkl6ZW5wZS5jb20wHhcNMDcxMjEz
+MTMwODI4WhcNMzcxMjEzMDgyNzI1WjA4MQswCQYDVQQGEwJFUzEUMBIGA1UECgwLSVpFTlBFIFMu
+QS4xEzARBgNVBAMMCkl6ZW5wZS5jb20wggIiMA0GCSqGSIb3DQEBAQUAA4ICDwAwggIKAoICAQDJ
+03rKDx6sp4boFmVqscIbRTJxldn+EFvMr+eleQGPicPK8lVx93e+d5TzcqQsRNiekpsUOqHnJJAK
+ClaOxdgmlOHZSOEtPtoKct2jmRXagaKH9HtuJneJWK3W6wyyQXpzbm3benhB6QiIEn6HLmYRY2xU
++zydcsC8Lv/Ct90NduM61/e0aL6i9eOBbsFGb12N4E3GVFWJGjMxCrFXuaOKmMPsOzTFlUFpfnXC
+PCDFYbpRR6AgkJOhkEvzTnyFRVSa0QUmQbC1TR0zvsQDyCV8wXDbO/QJLVQnSKwv4cSsPsjLkkxT
+OTcj7NMB+eAJRE1NZMDhDVqHIrytG6P+JrUV86f8hBnp7KGItERphIPzidF0BqnMC9bC3ieFUCbK
+F7jJeodWLBoBHmy+E60QrLUk9TiRodZL2vG70t5HtfG8gfZZa88ZU+mNFctKy6lvROUbQc/hhqfK
+0GqfvEyNBjNaooXlkDWgYlwWTvDjovoDGrQscbNYLN57C9saD+veIR8GdwYDsMnvmfzAuU8Lhij+
+0rnq49qlw0dpEuDb8PYZi+17cNcC1u2HGCgsBCRMd+RIihrGO5rUD8r6ddIBQFqNeb+Lz0vPqhbB
+leStTIo+F5HUsWLlguWABKQDfo2/2n+iD5dPDNMN+9fR5XJ+HMh3/1uaD7euBUbl8agW7EekFwID
+AQABo4H2MIHzMIGwBgNVHREEgagwgaWBD2luZm9AaXplbnBlLmNvbaSBkTCBjjFHMEUGA1UECgw+
+SVpFTlBFIFMuQS4gLSBDSUYgQTAxMzM3MjYwLVJNZXJjLlZpdG9yaWEtR2FzdGVpeiBUMTA1NSBG
+NjIgUzgxQzBBBgNVBAkMOkF2ZGEgZGVsIE1lZGl0ZXJyYW5lbyBFdG9yYmlkZWEgMTQgLSAwMTAx
+MCBWaXRvcmlhLUdhc3RlaXowDwYDVR0TAQH/BAUwAwEB/zAOBgNVHQ8BAf8EBAMCAQYwHQYDVR0O
+BBYEFB0cZQ6o8iV7tJHP5LGx5r1VdGwFMA0GCSqGSIb3DQEBCwUAA4ICAQB4pgwWSp9MiDrAyw6l
+Fn2fuUhfGI8NYjb2zRlrrKvV9pF9rnHzP7MOeIWblaQnIUdCSnxIOvVFfLMMjlF4rJUT3sb9fbga
+kEyrkgPH7UIBzg/YsfqikuFgba56awmqxinuaElnMIAkejEWOVt+8Rwu3WwJrfIxwYJOubv5vr8q
+hT/AQKM6WfxZSzwoJNu0FXWuDYi6LnPAvViH5ULy617uHjAimcs30cQhbIHsvm0m5hzkQiCeR7Cs
+g1lwLDXWrzY0tM07+DKo7+N4ifuNRSzanLh+QBxh5z6ikixL8s36mLYp//Pye6kfLqCTVyvehQP5
+aTfLnnhqBbTFMXiJ7HqnheG5ezzevh55hM6fcA5ZwjUukCox2eRFekGkLhObNA5me0mrZJfQRsN5
+nXJQY6aYWwa9SG3YOYNw6DXwBdGqvOPbyALqfP2C2sJbUjWumDqtujWTI6cfSN01RpiyEGjkpTHC
+ClguGYEQyVB1/OpaFs4R1+7vUIgtYf8/QnMFlEPVjjxOAToZpR9GTnfQXeWBIiGH/pR9hNiTrdZo
+Q0iy2+tzJOeRf1SktoA+naM8THLCV8Sg1Mw4J87VBp6iSNnpn86CcDaTmjvfliHjWbcM2pE38P1Z
+WrOZyGlsQyYBNWNgVYkDOnXYukrZVP/u3oDYLdE41V4tC5h9Pmzb/CaIxw==
+-----END CERTIFICATE-----
+
+Chambers of Commerce Root - 2008
+================================
+-----BEGIN CERTIFICATE-----
+MIIHTzCCBTegAwIBAgIJAKPaQn6ksa7aMA0GCSqGSIb3DQEBBQUAMIGuMQswCQYDVQQGEwJFVTFD
+MEEGA1UEBxM6TWFkcmlkIChzZWUgY3VycmVudCBhZGRyZXNzIGF0IHd3dy5jYW1lcmZpcm1hLmNv
+bS9hZGRyZXNzKTESMBAGA1UEBRMJQTgyNzQzMjg3MRswGQYDVQQKExJBQyBDYW1lcmZpcm1hIFMu
+QS4xKTAnBgNVBAMTIENoYW1iZXJzIG9mIENvbW1lcmNlIFJvb3QgLSAyMDA4MB4XDTA4MDgwMTEy
+Mjk1MFoXDTM4MDczMTEyMjk1MFowga4xCzAJBgNVBAYTAkVVMUMwQQYDVQQHEzpNYWRyaWQgKHNl
+ZSBjdXJyZW50IGFkZHJlc3MgYXQgd3d3LmNhbWVyZmlybWEuY29tL2FkZHJlc3MpMRIwEAYDVQQF
+EwlBODI3NDMyODcxGzAZBgNVBAoTEkFDIENhbWVyZmlybWEgUy5BLjEpMCcGA1UEAxMgQ2hhbWJl
+cnMgb2YgQ29tbWVyY2UgUm9vdCAtIDIwMDgwggIiMA0GCSqGSIb3DQEBAQUAA4ICDwAwggIKAoIC
+AQCvAMtwNyuAWko6bHiUfaN/Gh/2NdW928sNRHI+JrKQUrpjOyhYb6WzbZSm891kDFX29ufyIiKA
+XuFixrYp4YFs8r/lfTJqVKAyGVn+H4vXPWCGhSRv4xGzdz4gljUha7MI2XAuZPeEklPWDrCQiorj
+h40G072QDuKZoRuGDtqaCrsLYVAGUvGef3bsyw/QHg3PmTA9HMRFEFis1tPo1+XqxQEHd9ZR5gN/
+ikilTWh1uem8nk4ZcfUyS5xtYBkL+8ydddy/Js2Pk3g5eXNeJQ7KXOt3EgfLZEFHcpOrUMPrCXZk
+NNI5t3YRCQ12RcSprj1qr7V9ZS+UWBDsXHyvfuK2GNnQm05aSd+pZgvMPMZ4fKecHePOjlO+Bd5g
+D2vlGts/4+EhySnB8esHnFIbAURRPHsl18TlUlRdJQfKFiC4reRB7noI/plvg6aRArBsNlVq5331
+lubKgdaX8ZSD6e2wsWsSaR6s+12pxZjptFtYer49okQ6Y1nUCyXeG0+95QGezdIp1Z8XGQpvvwyQ
+0wlf2eOKNcx5Wk0ZN5K3xMGtr/R5JJqyAQuxr1yW84Ay+1w9mPGgP0revq+ULtlVmhduYJ1jbLhj
+ya6BXBg14JC7vjxPNyK5fuvPnnchpj04gftI2jE9K+OJ9dC1vX7gUMQSibMjmhAxhduub+84Mxh2
+EQIDAQABo4IBbDCCAWgwEgYDVR0TAQH/BAgwBgEB/wIBDDAdBgNVHQ4EFgQU+SSsD7K1+HnA+mCI
+G8TZTQKeFxkwgeMGA1UdIwSB2zCB2IAU+SSsD7K1+HnA+mCIG8TZTQKeFxmhgbSkgbEwga4xCzAJ
+BgNVBAYTAkVVMUMwQQYDVQQHEzpNYWRyaWQgKHNlZSBjdXJyZW50IGFkZHJlc3MgYXQgd3d3LmNh
+bWVyZmlybWEuY29tL2FkZHJlc3MpMRIwEAYDVQQFEwlBODI3NDMyODcxGzAZBgNVBAoTEkFDIENh
+bWVyZmlybWEgUy5BLjEpMCcGA1UEAxMgQ2hhbWJlcnMgb2YgQ29tbWVyY2UgUm9vdCAtIDIwMDiC
+CQCj2kJ+pLGu2jAOBgNVHQ8BAf8EBAMCAQYwPQYDVR0gBDYwNDAyBgRVHSAAMCowKAYIKwYBBQUH
+AgEWHGh0dHA6Ly9wb2xpY3kuY2FtZXJmaXJtYS5jb20wDQYJKoZIhvcNAQEFBQADggIBAJASryI1
+wqM58C7e6bXpeHxIvj99RZJe6dqxGfwWPJ+0W2aeaufDuV2I6A+tzyMP3iU6XsxPpcG1Lawk0lgH
+3qLPaYRgM+gQDROpI9CF5Y57pp49chNyM/WqfcZjHwj0/gF/JM8rLFQJ3uIrbZLGOU8W6jx+ekbU
+RWpGqOt1glanq6B8aBMz9p0w8G8nOSQjKpD9kCk18pPfNKXG9/jvjA9iSnyu0/VU+I22mlaHFoI6
+M6taIgj3grrqLuBHmrS1RaMFO9ncLkVAO+rcf+g769HsJtg1pDDFOqxXnrN2pSB7+R5KBWIBpih1
+YJeSDW4+TTdDDZIVnBgizVGZoCkaPF+KMjNbMMeJL0eYD6MDxvbxrN8y8NmBGuScvfaAFPDRLLmF
+9dijscilIeUcE5fuDr3fKanvNFNb0+RqE4QGtjICxFKuItLcsiFCGtpA8CnJ7AoMXOLQusxI0zcK
+zBIKinmwPQN/aUv0NCB9szTqjktk9T79syNnFQ0EuPAtwQlRPLJsFfClI9eDdOTlLsn+mCdCxqvG
+nrDQWzilm1DefhiYtUU79nm06PcaewaD+9CL2rvHvRirCG88gGtAPxkZumWK5r7VXNM21+9AUiRg
+OGcEMeyP84LG3rlV8zsxkVrctQgVrXYlCg17LofiDKYGvCYQbTed7N14jHyAxfDZd0jQ
+-----END CERTIFICATE-----
+
+Global Chambersign Root - 2008
+==============================
+-----BEGIN CERTIFICATE-----
+MIIHSTCCBTGgAwIBAgIJAMnN0+nVfSPOMA0GCSqGSIb3DQEBBQUAMIGsMQswCQYDVQQGEwJFVTFD
+MEEGA1UEBxM6TWFkcmlkIChzZWUgY3VycmVudCBhZGRyZXNzIGF0IHd3dy5jYW1lcmZpcm1hLmNv
+bS9hZGRyZXNzKTESMBAGA1UEBRMJQTgyNzQzMjg3MRswGQYDVQQKExJBQyBDYW1lcmZpcm1hIFMu
+QS4xJzAlBgNVBAMTHkdsb2JhbCBDaGFtYmVyc2lnbiBSb290IC0gMjAwODAeFw0wODA4MDExMjMx
+NDBaFw0zODA3MzExMjMxNDBaMIGsMQswCQYDVQQGEwJFVTFDMEEGA1UEBxM6TWFkcmlkIChzZWUg
+Y3VycmVudCBhZGRyZXNzIGF0IHd3dy5jYW1lcmZpcm1hLmNvbS9hZGRyZXNzKTESMBAGA1UEBRMJ
+QTgyNzQzMjg3MRswGQYDVQQKExJBQyBDYW1lcmZpcm1hIFMuQS4xJzAlBgNVBAMTHkdsb2JhbCBD
+aGFtYmVyc2lnbiBSb290IC0gMjAwODCCAiIwDQYJKoZIhvcNAQEBBQADggIPADCCAgoCggIBAMDf
+VtPkOpt2RbQT2//BthmLN0EYlVJH6xedKYiONWwGMi5HYvNJBL99RDaxccy9Wglz1dmFRP+RVyXf
+XjaOcNFccUMd2drvXNL7G706tcuto8xEpw2uIRU/uXpbknXYpBI4iRmKt4DS4jJvVpyR1ogQC7N0
+ZJJ0YPP2zxhPYLIj0Mc7zmFLmY/CDNBAspjcDahOo7kKrmCgrUVSY7pmvWjg+b4aqIG7HkF4ddPB
+/gBVsIdU6CeQNR1MM62X/JcumIS/LMmjv9GYERTtY/jKmIhYF5ntRQOXfjyGHoiMvvKRhI9lNNgA
+TH23MRdaKXoKGCQwoze1eqkBfSbW+Q6OWfH9GzO1KTsXO0G2Id3UwD2ln58fQ1DJu7xsepeY7s2M
+H/ucUa6LcL0nn3HAa6x9kGbo1106DbDVwo3VyJ2dwW3Q0L9R5OP4wzg2rtandeavhENdk5IMagfe
+Ox2YItaswTXbo6Al/3K1dh3ebeksZixShNBFks4c5eUzHdwHU1SjqoI7mjcv3N2gZOnm3b2u/GSF
+HTynyQbehP9r6GsaPMWis0L7iwk+XwhSx2LE1AVxv8Rk5Pihg+g+EpuoHtQ2TS9x9o0o9oOpE9Jh
+wZG7SMA0j0GMS0zbaRL/UJScIINZc+18ofLx/d33SdNDWKBWY8o9PeU1VlnpDsogzCtLkykPAgMB
+AAGjggFqMIIBZjASBgNVHRMBAf8ECDAGAQH/AgEMMB0GA1UdDgQWBBS5CcqcHtvTbDprru1U8VuT
+BjUuXjCB4QYDVR0jBIHZMIHWgBS5CcqcHtvTbDprru1U8VuTBjUuXqGBsqSBrzCBrDELMAkGA1UE
+BhMCRVUxQzBBBgNVBAcTOk1hZHJpZCAoc2VlIGN1cnJlbnQgYWRkcmVzcyBhdCB3d3cuY2FtZXJm
+aXJtYS5jb20vYWRkcmVzcykxEjAQBgNVBAUTCUE4Mjc0MzI4NzEbMBkGA1UEChMSQUMgQ2FtZXJm
+aXJtYSBTLkEuMScwJQYDVQQDEx5HbG9iYWwgQ2hhbWJlcnNpZ24gUm9vdCAtIDIwMDiCCQDJzdPp
+1X0jzjAOBgNVHQ8BAf8EBAMCAQYwPQYDVR0gBDYwNDAyBgRVHSAAMCowKAYIKwYBBQUHAgEWHGh0
+dHA6Ly9wb2xpY3kuY2FtZXJmaXJtYS5jb20wDQYJKoZIhvcNAQEFBQADggIBAICIf3DekijZBZRG
+/5BXqfEv3xoNa/p8DhxJJHkn2EaqbylZUohwEurdPfWbU1Rv4WCiqAm57OtZfMY18dwY6fFn5a+6
+ReAJ3spED8IXDneRRXozX1+WLGiLwUePmJs9wOzL9dWCkoQ10b42OFZyMVtHLaoXpGNR6woBrX/s
+dZ7LoR/xfxKxueRkf2fWIyr0uDldmOghp+G9PUIadJpwr2hsUF1Jz//7Dl3mLEfXgTpZALVza2Mg
+9jFFCDkO9HB+QHBaP9BrQql0PSgvAm11cpUJjUhjxsYjV5KTXjXBjfkK9yydYhz2rXzdpjEetrHH
+foUm+qRqtdpjMNHvkzeyZi99Bffnt0uYlDXA2TopwZ2yUDMdSqlapskD7+3056huirRXhOukP9Du
+qqqHW2Pok+JrqNS4cnhrG+055F3Lm6qH1U9OAP7Zap88MQ8oAgF9mOinsKJknnn4SPIVqczmyETr
+P3iZ8ntxPjzxmKfFGBI/5rsoM0LpRQp8bfKGeS/Fghl9CYl8slR2iK7ewfPM4W7bMdaTrpmg7yVq
+c5iJWzouE4gev8CSlDQb4ye3ix5vQv/n6TebUB0tovkC7stYWDpxvGjjqsGvHCgfotwjZT+B6q6Z
+09gwzxMNTxXJhLynSC34MCN32EZLeW32jO06f2ARePTpm67VVMB0gNELQp/B
+-----END CERTIFICATE-----
+
+Go Daddy Root Certificate Authority - G2
+========================================
+-----BEGIN CERTIFICATE-----
+MIIDxTCCAq2gAwIBAgIBADANBgkqhkiG9w0BAQsFADCBgzELMAkGA1UEBhMCVVMxEDAOBgNVBAgT
+B0FyaXpvbmExEzARBgNVBAcTClNjb3R0c2RhbGUxGjAYBgNVBAoTEUdvRGFkZHkuY29tLCBJbmMu
+MTEwLwYDVQQDEyhHbyBEYWRkeSBSb290IENlcnRpZmljYXRlIEF1dGhvcml0eSAtIEcyMB4XDTA5
+MDkwMTAwMDAwMFoXDTM3MTIzMTIzNTk1OVowgYMxCzAJBgNVBAYTAlVTMRAwDgYDVQQIEwdBcml6
+b25hMRMwEQYDVQQHEwpTY290dHNkYWxlMRowGAYDVQQKExFHb0RhZGR5LmNvbSwgSW5jLjExMC8G
+A1UEAxMoR28gRGFkZHkgUm9vdCBDZXJ0aWZpY2F0ZSBBdXRob3JpdHkgLSBHMjCCASIwDQYJKoZI
+hvcNAQEBBQADggEPADCCAQoCggEBAL9xYgjx+lk09xvJGKP3gElY6SKDE6bFIEMBO4Tx5oVJnyfq
+9oQbTqC023CYxzIBsQU+B07u9PpPL1kwIuerGVZr4oAH/PMWdYA5UXvl+TW2dE6pjYIT5LY/qQOD
++qK+ihVqf94Lw7YZFAXK6sOoBJQ7RnwyDfMAZiLIjWltNowRGLfTshxgtDj6AozO091GB94KPutd
+fMh8+7ArU6SSYmlRJQVhGkSBjCypQ5Yj36w6gZoOKcUcqeldHraenjAKOc7xiID7S13MMuyFYkMl
+NAJWJwGRtDtwKj9useiciAF9n9T521NtYJ2/LOdYq7hfRvzOxBsDPAnrSTFcaUaz4EcCAwEAAaNC
+MEAwDwYDVR0TAQH/BAUwAwEB/zAOBgNVHQ8BAf8EBAMCAQYwHQYDVR0OBBYEFDqahQcQZyi27/a9
+BUFuIMGU2g/eMA0GCSqGSIb3DQEBCwUAA4IBAQCZ21151fmXWWcDYfF+OwYxdS2hII5PZYe096ac
+vNjpL9DbWu7PdIxztDhC2gV7+AJ1uP2lsdeu9tfeE8tTEH6KRtGX+rcuKxGrkLAngPnon1rpN5+r
+5N9ss4UXnT3ZJE95kTXWXwTrgIOrmgIttRD02JDHBHNA7XIloKmf7J6raBKZV8aPEjoJpL1E/QYV
+N8Gb5DKj7Tjo2GTzLH4U/ALqn83/B2gX2yKQOC16jdFU8WnjXzPKej17CuPKf1855eJ1usV2GDPO
+LPAvTK33sefOT6jEm0pUBsV/fdUID+Ic/n4XuKxe9tQWskMJDE32p2u0mYRlynqI4uJEvlz36hz1
+-----END CERTIFICATE-----
+
+Starfield Root Certificate Authority - G2
+=========================================
+-----BEGIN CERTIFICATE-----
+MIID3TCCAsWgAwIBAgIBADANBgkqhkiG9w0BAQsFADCBjzELMAkGA1UEBhMCVVMxEDAOBgNVBAgT
+B0FyaXpvbmExEzARBgNVBAcTClNjb3R0c2RhbGUxJTAjBgNVBAoTHFN0YXJmaWVsZCBUZWNobm9s
+b2dpZXMsIEluYy4xMjAwBgNVBAMTKVN0YXJmaWVsZCBSb290IENlcnRpZmljYXRlIEF1dGhvcml0
+eSAtIEcyMB4XDTA5MDkwMTAwMDAwMFoXDTM3MTIzMTIzNTk1OVowgY8xCzAJBgNVBAYTAlVTMRAw
+DgYDVQQIEwdBcml6b25hMRMwEQYDVQQHEwpTY290dHNkYWxlMSUwIwYDVQQKExxTdGFyZmllbGQg
+VGVjaG5vbG9naWVzLCBJbmMuMTIwMAYDVQQDEylTdGFyZmllbGQgUm9vdCBDZXJ0aWZpY2F0ZSBB
+dXRob3JpdHkgLSBHMjCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAL3twQP89o/8ArFv
+W59I2Z154qK3A2FWGMNHttfKPTUuiUP3oWmb3ooa/RMgnLRJdzIpVv257IzdIvpy3Cdhl+72WoTs
+bhm5iSzchFvVdPtrX8WJpRBSiUZV9Lh1HOZ/5FSuS/hVclcCGfgXcVnrHigHdMWdSL5stPSksPNk
+N3mSwOxGXn/hbVNMYq/NHwtjuzqd+/x5AJhhdM8mgkBj87JyahkNmcrUDnXMN/uLicFZ8WJ/X7Nf
+ZTD4p7dNdloedl40wOiWVpmKs/B/pM293DIxfJHP4F8R+GuqSVzRmZTRouNjWwl2tVZi4Ut0HZbU
+JtQIBFnQmA4O5t78w+wfkPECAwEAAaNCMEAwDwYDVR0TAQH/BAUwAwEB/zAOBgNVHQ8BAf8EBAMC
+AQYwHQYDVR0OBBYEFHwMMh+n2TB/xH1oo2Kooc6rB1snMA0GCSqGSIb3DQEBCwUAA4IBAQARWfol
+TwNvlJk7mh+ChTnUdgWUXuEok21iXQnCoKjUsHU48TRqneSfioYmUeYs0cYtbpUgSpIB7LiKZ3sx
+4mcujJUDJi5DnUox9g61DLu34jd/IroAow57UvtruzvE03lRTs2Q9GcHGcg8RnoNAX3FWOdt5oUw
+F5okxBDgBPfg8n/Uqgr/Qh037ZTlZFkSIHc40zI+OIF1lnP6aI+xy84fxez6nH7PfrHxBy22/L/K
+pL/QlwVKvOoYKAKQvVR4CSFx09F9HdkWsKlhPdAKACL8x3vLCWRFCztAgfd9fDL1mMpYjn0q7pBZ
+c2T5NnReJaH1ZgUufzkVqSr7UIuOhWn0
+-----END CERTIFICATE-----
+
+Starfield Services Root Certificate Authority - G2
+==================================================
+-----BEGIN CERTIFICATE-----
+MIID7zCCAtegAwIBAgIBADANBgkqhkiG9w0BAQsFADCBmDELMAkGA1UEBhMCVVMxEDAOBgNVBAgT
+B0FyaXpvbmExEzARBgNVBAcTClNjb3R0c2RhbGUxJTAjBgNVBAoTHFN0YXJmaWVsZCBUZWNobm9s
+b2dpZXMsIEluYy4xOzA5BgNVBAMTMlN0YXJmaWVsZCBTZXJ2aWNlcyBSb290IENlcnRpZmljYXRl
+IEF1dGhvcml0eSAtIEcyMB4XDTA5MDkwMTAwMDAwMFoXDTM3MTIzMTIzNTk1OVowgZgxCzAJBgNV
+BAYTAlVTMRAwDgYDVQQIEwdBcml6b25hMRMwEQYDVQQHEwpTY290dHNkYWxlMSUwIwYDVQQKExxT
+dGFyZmllbGQgVGVjaG5vbG9naWVzLCBJbmMuMTswOQYDVQQDEzJTdGFyZmllbGQgU2VydmljZXMg
+Um9vdCBDZXJ0aWZpY2F0ZSBBdXRob3JpdHkgLSBHMjCCASIwDQYJKoZIhvcNAQEBBQADggEPADCC
+AQoCggEBANUMOsQq+U7i9b4Zl1+OiFOxHz/Lz58gE20pOsgPfTz3a3Y4Y9k2YKibXlwAgLIvWX/2
+h/klQ4bnaRtSmpDhcePYLQ1Ob/bISdm28xpWriu2dBTrz/sm4xq6HZYuajtYlIlHVv8loJNwU4Pa
+hHQUw2eeBGg6345AWh1KTs9DkTvnVtYAcMtS7nt9rjrnvDH5RfbCYM8TWQIrgMw0R9+53pBlbQLP
+LJGmpufehRhJfGZOozptqbXuNC66DQO4M99H67FrjSXZm86B0UVGMpZwh94CDklDhbZsc7tk6mFB
+rMnUVN+HL8cisibMn1lUaJ/8viovxFUcdUBgF4UCVTmLfwUCAwEAAaNCMEAwDwYDVR0TAQH/BAUw
+AwEB/zAOBgNVHQ8BAf8EBAMCAQYwHQYDVR0OBBYEFJxfAN+qAdcwKziIorhtSpzyEZGDMA0GCSqG
+SIb3DQEBCwUAA4IBAQBLNqaEd2ndOxmfZyMIbw5hyf2E3F/YNoHN2BtBLZ9g3ccaaNnRbobhiCPP
+E95Dz+I0swSdHynVv/heyNXBve6SbzJ08pGCL72CQnqtKrcgfU28elUSwhXqvfdqlS5sdJ/PHLTy
+xQGjhdByPq1zqwubdQxtRbeOlKyWN7Wg0I8VRw7j6IPdj/3vQQF3zCepYoUz8jcI73HPdwbeyBkd
+iEDPfUYd/x7H4c7/I9vG+o1VTqkC50cRRj70/b17KSa7qWFiNyi2LSr2EIZkyXCn0q23KXB56jza
+YyWf/Wi3MOxw+3WKt21gZ7IeyLnp2KhvAotnDU0mV3HaIPzBSlCNsSi6
+-----END CERTIFICATE-----
+
+AffirmTrust Commercial
+======================
+-----BEGIN CERTIFICATE-----
+MIIDTDCCAjSgAwIBAgIId3cGJyapsXwwDQYJKoZIhvcNAQELBQAwRDELMAkGA1UEBhMCVVMxFDAS
+BgNVBAoMC0FmZmlybVRydXN0MR8wHQYDVQQDDBZBZmZpcm1UcnVzdCBDb21tZXJjaWFsMB4XDTEw
+MDEyOTE0MDYwNloXDTMwMTIzMTE0MDYwNlowRDELMAkGA1UEBhMCVVMxFDASBgNVBAoMC0FmZmly
+bVRydXN0MR8wHQYDVQQDDBZBZmZpcm1UcnVzdCBDb21tZXJjaWFsMIIBIjANBgkqhkiG9w0BAQEF
+AAOCAQ8AMIIBCgKCAQEA9htPZwcroRX1BiLLHwGy43NFBkRJLLtJJRTWzsO3qyxPxkEylFf6Eqdb
+DuKPHx6GGaeqtS25Xw2Kwq+FNXkyLbscYjfysVtKPcrNcV/pQr6U6Mje+SJIZMblq8Yrba0F8PrV
+C8+a5fBQpIs7R6UjW3p6+DM/uO+Zl+MgwdYoic+U+7lF7eNAFxHUdPALMeIrJmqbTFeurCA+ukV6
+BfO9m2kVrn1OIGPENXY6BwLJN/3HR+7o8XYdcxXyl6S1yHp52UKqK39c/s4mT6NmgTWvRLpUHhww
+MmWd5jyTXlBOeuM61G7MGvv50jeuJCqrVwMiKA1JdX+3KNp1v47j3A55MQIDAQABo0IwQDAdBgNV
+HQ4EFgQUnZPGU4teyq8/nx4P5ZmVvCT2lI8wDwYDVR0TAQH/BAUwAwEB/zAOBgNVHQ8BAf8EBAMC
+AQYwDQYJKoZIhvcNAQELBQADggEBAFis9AQOzcAN/wr91LoWXym9e2iZWEnStB03TX8nfUYGXUPG
+hi4+c7ImfU+TqbbEKpqrIZcUsd6M06uJFdhrJNTxFq7YpFzUf1GO7RgBsZNjvbz4YYCanrHOQnDi
+qX0GJX0nof5v7LMeJNrjS1UaADs1tDvZ110w/YETifLCBivtZ8SOyUOyXGsViQK8YvxO8rUzqrJv
+0wqiUOP2O+guRMLbZjipM1ZI8W0bM40NjD9gN53Tym1+NH4Nn3J2ixufcv1SNUFFApYvHLKac0kh
+sUlHRUe072o0EclNmsxZt9YCnlpOZbWUrhvfKbAW8b8Angc6F2S1BLUjIZkKlTuXfO8=
+-----END CERTIFICATE-----
+
+AffirmTrust Networking
+======================
+-----BEGIN CERTIFICATE-----
+MIIDTDCCAjSgAwIBAgIIfE8EORzUmS0wDQYJKoZIhvcNAQEFBQAwRDELMAkGA1UEBhMCVVMxFDAS
+BgNVBAoMC0FmZmlybVRydXN0MR8wHQYDVQQDDBZBZmZpcm1UcnVzdCBOZXR3b3JraW5nMB4XDTEw
+MDEyOTE0MDgyNFoXDTMwMTIzMTE0MDgyNFowRDELMAkGA1UEBhMCVVMxFDASBgNVBAoMC0FmZmly
+bVRydXN0MR8wHQYDVQQDDBZBZmZpcm1UcnVzdCBOZXR3b3JraW5nMIIBIjANBgkqhkiG9w0BAQEF
+AAOCAQ8AMIIBCgKCAQEAtITMMxcua5Rsa2FSoOujz3mUTOWUgJnLVWREZY9nZOIG41w3SfYvm4SE
+Hi3yYJ0wTsyEheIszx6e/jarM3c1RNg1lho9Nuh6DtjVR6FqaYvZ/Ls6rnla1fTWcbuakCNrmreI
+dIcMHl+5ni36q1Mr3Lt2PpNMCAiMHqIjHNRqrSK6mQEubWXLviRmVSRLQESxG9fhwoXA3hA/Pe24
+/PHxI1Pcv2WXb9n5QHGNfb2V1M6+oF4nI979ptAmDgAp6zxG8D1gvz9Q0twmQVGeFDdCBKNwV6gb
+h+0t+nvujArjqWaJGctB+d1ENmHP4ndGyH329JKBNv3bNPFyfvMMFr20FQIDAQABo0IwQDAdBgNV
+HQ4EFgQUBx/S55zawm6iQLSwelAQUHTEyL0wDwYDVR0TAQH/BAUwAwEB/zAOBgNVHQ8BAf8EBAMC
+AQYwDQYJKoZIhvcNAQEFBQADggEBAIlXshZ6qML91tmbmzTCnLQyFE2npN/svqe++EPbkTfOtDIu
+UFUaNU52Q3Eg75N3ThVwLofDwR1t3Mu1J9QsVtFSUzpE0nPIxBsFZVpikpzuQY0x2+c06lkh1QF6
+12S4ZDnNye2v7UsDSKegmQGA3GWjNq5lWUhPgkvIZfFXHeVZLgo/bNjR9eUJtGxUAArgFU2HdW23
+WJZa3W3SAKD0m0i+wzekujbgfIeFlxoVot4uolu9rxj5kFDNcFn4J2dHy8egBzp90SxdbBk6ZrV9
+/ZFvgrG+CJPbFEfxojfHRZ48x3evZKiT3/Zpg4Jg8klCNO1aAFSFHBY2kgxc+qatv9s=
+-----END CERTIFICATE-----
+
+AffirmTrust Premium
+===================
+-----BEGIN CERTIFICATE-----
+MIIFRjCCAy6gAwIBAgIIbYwURrGmCu4wDQYJKoZIhvcNAQEMBQAwQTELMAkGA1UEBhMCVVMxFDAS
+BgNVBAoMC0FmZmlybVRydXN0MRwwGgYDVQQDDBNBZmZpcm1UcnVzdCBQcmVtaXVtMB4XDTEwMDEy
+OTE0MTAzNloXDTQwMTIzMTE0MTAzNlowQTELMAkGA1UEBhMCVVMxFDASBgNVBAoMC0FmZmlybVRy
+dXN0MRwwGgYDVQQDDBNBZmZpcm1UcnVzdCBQcmVtaXVtMIICIjANBgkqhkiG9w0BAQEFAAOCAg8A
+MIICCgKCAgEAxBLfqV/+Qd3d9Z+K4/as4Tx4mrzY8H96oDMq3I0gW64tb+eT2TZwamjPjlGjhVtn
+BKAQJG9dKILBl1fYSCkTtuG+kU3fhQxTGJoeJKJPj/CihQvL9Cl/0qRY7iZNyaqoe5rZ+jjeRFcV
+5fiMyNlI4g0WJx0eyIOFJbe6qlVBzAMiSy2RjYvmia9mx+n/K+k8rNrSs8PhaJyJ+HoAVt70VZVs
++7pk3WKL3wt3MutizCaam7uqYoNMtAZ6MMgpv+0GTZe5HMQxK9VfvFMSF5yZVylmd2EhMQcuJUmd
+GPLu8ytxjLW6OQdJd/zvLpKQBY0tL3d770O/Nbua2Plzpyzy0FfuKE4mX4+QaAkvuPjcBukumj5R
+p9EixAqnOEhss/n/fauGV+O61oV4d7pD6kh/9ti+I20ev9E2bFhc8e6kGVQa9QPSdubhjL08s9NI
+S+LI+H+SqHZGnEJlPqQewQcDWkYtuJfzt9WyVSHvutxMAJf7FJUnM7/oQ0dG0giZFmA7mn7S5u04
+6uwBHjxIVkkJx0w3AJ6IDsBz4W9m6XJHMD4Q5QsDyZpCAGzFlH5hxIrff4IaC1nEWTJ3s7xgaVY5
+/bQGeyzWZDbZvUjthB9+pSKPKrhC9IK31FOQeE4tGv2Bb0TXOwF0lkLgAOIua+rF7nKsu7/+6qqo
++Nz2snmKtmcCAwEAAaNCMEAwHQYDVR0OBBYEFJ3AZ6YMItkm9UWrpmVSESfYRaxjMA8GA1UdEwEB
+/wQFMAMBAf8wDgYDVR0PAQH/BAQDAgEGMA0GCSqGSIb3DQEBDAUAA4ICAQCzV00QYk465KzquByv
+MiPIs0laUZx2KI15qldGF9X1Uva3ROgIRL8YhNILgM3FEv0AVQVhh0HctSSePMTYyPtwni94loMg
+Nt58D2kTiKV1NpgIpsbfrM7jWNa3Pt668+s0QNiigfV4Py/VpfzZotReBA4Xrf5B8OWycvpEgjNC
+6C1Y91aMYj+6QrCcDFx+LmUmXFNPALJ4fqENmS2NuB2OosSw/WDQMKSOyARiqcTtNd56l+0OOF6S
+L5Nwpamcb6d9Ex1+xghIsV5n61EIJenmJWtSKZGc0jlzCFfemQa0W50QBuHCAKi4HEoCChTQwUHK
++4w1IX2COPKpVJEZNZOUbWo6xbLQu4mGk+ibyQ86p3q4ofB4Rvr8Ny/lioTz3/4E2aFooC8k4gmV
+BtWVyuEklut89pMFu+1z6S3RdTnX5yTb2E5fQ4+e0BQ5v1VwSJlXMbSc7kqYA5YwH2AG7hsj/oFg
+IxpHYoWlzBk0gG+zrBrjn/B7SK3VAdlntqlyk+otZrWyuOQ9PLLvTIzq6we/qzWaVYa8GKa1qF60
+g2xraUDTn9zxw2lrueFtCfTxqlB2Cnp9ehehVZZCmTEJ3WARjQUwfuaORtGdFNrHF+QFlozEJLUb
+zxQHskD4o55BhrwE0GuWyCqANP2/7waj3VjFhT0+j/6eKeC2uAloGRwYQw==
+-----END CERTIFICATE-----
+
+AffirmTrust Premium ECC
+=======================
+-----BEGIN CERTIFICATE-----
+MIIB/jCCAYWgAwIBAgIIdJclisc/elQwCgYIKoZIzj0EAwMwRTELMAkGA1UEBhMCVVMxFDASBgNV
+BAoMC0FmZmlybVRydXN0MSAwHgYDVQQDDBdBZmZpcm1UcnVzdCBQcmVtaXVtIEVDQzAeFw0xMDAx
+MjkxNDIwMjRaFw00MDEyMzExNDIwMjRaMEUxCzAJBgNVBAYTAlVTMRQwEgYDVQQKDAtBZmZpcm1U
+cnVzdDEgMB4GA1UEAwwXQWZmaXJtVHJ1c3QgUHJlbWl1bSBFQ0MwdjAQBgcqhkjOPQIBBgUrgQQA
+IgNiAAQNMF4bFZ0D0KF5Nbc6PJJ6yhUczWLznCZcBz3lVPqj1swS6vQUX+iOGasvLkjmrBhDeKzQ
+N8O9ss0s5kfiGuZjuD0uL3jET9v0D6RoTFVya5UdThhClXjMNzyR4ptlKymjQjBAMB0GA1UdDgQW
+BBSaryl6wBE1NSZRMADDav5A1a7WPDAPBgNVHRMBAf8EBTADAQH/MA4GA1UdDwEB/wQEAwIBBjAK
+BggqhkjOPQQDAwNnADBkAjAXCfOHiFBar8jAQr9HX/VsaobgxCd05DhT1wV/GzTjxi+zygk8N53X
+57hG8f2h4nECMEJZh0PUUd+60wkyWs6Iflc9nF9Ca/UHLbXwgpP5WW+uZPpY5Yse42O+tYHNbwKM
+eQ==
+-----END CERTIFICATE-----
+
+Certum Trusted Network CA
+=========================
+-----BEGIN CERTIFICATE-----
+MIIDuzCCAqOgAwIBAgIDBETAMA0GCSqGSIb3DQEBBQUAMH4xCzAJBgNVBAYTAlBMMSIwIAYDVQQK
+ExlVbml6ZXRvIFRlY2hub2xvZ2llcyBTLkEuMScwJQYDVQQLEx5DZXJ0dW0gQ2VydGlmaWNhdGlv
+biBBdXRob3JpdHkxIjAgBgNVBAMTGUNlcnR1bSBUcnVzdGVkIE5ldHdvcmsgQ0EwHhcNMDgxMDIy
+MTIwNzM3WhcNMjkxMjMxMTIwNzM3WjB+MQswCQYDVQQGEwJQTDEiMCAGA1UEChMZVW5pemV0byBU
+ZWNobm9sb2dpZXMgUy5BLjEnMCUGA1UECxMeQ2VydHVtIENlcnRpZmljYXRpb24gQXV0aG9yaXR5
+MSIwIAYDVQQDExlDZXJ0dW0gVHJ1c3RlZCBOZXR3b3JrIENBMIIBIjANBgkqhkiG9w0BAQEFAAOC
+AQ8AMIIBCgKCAQEA4/t9o3K6wvDJFIf1awFO4W5AB7ptJ11/91sts1rHUV+rpDKmYYe2bg+G0jAC
+l/jXaVehGDldamR5xgFZrDwxSjh80gTSSyjoIF87B6LMTXPb865Px1bVWqeWifrzq2jUI4ZZJ88J
+J7ysbnKDHDBy3+Ci6dLhdHUZvSqeexVUBBvXQzmtVSjF4hq79MDkrjhJM8x2hZ85RdKknvISjFH4
+fOQtf/WsX+sWn7Et0brMkUJ3TCXJkDhv2/DM+44el1k+1WBO5gUo7Ul5E0u6SNsv+XLTOcr+H9g0
+cvW0QM8xAcPs3hEtF10fuFDRXhmnad4HMyjKUJX5p1TLVIZQRan5SQIDAQABo0IwQDAPBgNVHRMB
+Af8EBTADAQH/MB0GA1UdDgQWBBQIds3LB/8k9sXN7buQvOKEN0Z19zAOBgNVHQ8BAf8EBAMCAQYw
+DQYJKoZIhvcNAQEFBQADggEBAKaorSLOAT2mo/9i0Eidi15ysHhE49wcrwn9I0j6vSrEuVUEtRCj
+jSfeC4Jj0O7eDDd5QVsisrCaQVymcODU0HfLI9MA4GxWL+FpDQ3Zqr8hgVDZBqWo/5U30Kr+4rP1
+mS1FhIrlQgnXdAIv94nYmem8J9RHjboNRhx3zxSkHLmkMcScKHQDNP8zGSal6Q10tz6XxnboJ5aj
+Zt3hrvJBW8qYVoNzcOSGGtIxQbovvi0TWnZvTuhOgQ4/WwMioBK+ZlgRSssDxLQqKi2WF+A5VLxI
+03YnnZotBqbJ7DnSq9ufmgsnAjUpsUCV5/nonFWIGUbWtzT1fs45mtk48VH3Tyw=
+-----END CERTIFICATE-----
+
+Certinomis - Autorité Racine
+=============================
+-----BEGIN CERTIFICATE-----
+MIIFnDCCA4SgAwIBAgIBATANBgkqhkiG9w0BAQUFADBjMQswCQYDVQQGEwJGUjETMBEGA1UEChMK
+Q2VydGlub21pczEXMBUGA1UECxMOMDAwMiA0MzM5OTg5MDMxJjAkBgNVBAMMHUNlcnRpbm9taXMg
+LSBBdXRvcml0w6kgUmFjaW5lMB4XDTA4MDkxNzA4Mjg1OVoXDTI4MDkxNzA4Mjg1OVowYzELMAkG
+A1UEBhMCRlIxEzARBgNVBAoTCkNlcnRpbm9taXMxFzAVBgNVBAsTDjAwMDIgNDMzOTk4OTAzMSYw
+JAYDVQQDDB1DZXJ0aW5vbWlzIC0gQXV0b3JpdMOpIFJhY2luZTCCAiIwDQYJKoZIhvcNAQEBBQAD
+ggIPADCCAgoCggIBAJ2Fn4bT46/HsmtuM+Cet0I0VZ35gb5j2CN2DpdUzZlMGvE5x4jYF1AMnmHa
+wE5V3udauHpOd4cN5bjr+p5eex7Ezyh0x5P1FMYiKAT5kcOrJ3NqDi5N8y4oH3DfVS9O7cdxbwly
+Lu3VMpfQ8Vh30WC8Tl7bmoT2R2FFK/ZQpn9qcSdIhDWerP5pqZ56XjUl+rSnSTV3lqc2W+HN3yNw
+2F1MpQiD8aYkOBOo7C+ooWfHpi2GR+6K/OybDnT0K0kCe5B1jPyZOQE51kqJ5Z52qz6WKDgmi92N
+jMD2AR5vpTESOH2VwnHu7XSu5DaiQ3XV8QCb4uTXzEIDS3h65X27uK4uIJPT5GHfceF2Z5c/tt9q
+c1pkIuVC28+BA5PY9OMQ4HL2AHCs8MF6DwV/zzRpRbWT5BnbUhYjBYkOjUjkJW+zeL9i9Qf6lSTC
+lrLooyPCXQP8w9PlfMl1I9f09bze5N/NgL+RiH2nE7Q5uiy6vdFrzPOlKO1Enn1So2+WLhl+HPNb
+xxaOu2B9d2ZHVIIAEWBsMsGoOBvrbpgT1u449fCfDu/+MYHB0iSVL1N6aaLwD4ZFjliCK0wi1F6g
+530mJ0jfJUaNSih8hp75mxpZuWW/Bd22Ql095gBIgl4g9xGC3srYn+Y3RyYe63j3YcNBZFgCQfna
+4NH4+ej9Uji29YnfAgMBAAGjWzBZMA8GA1UdEwEB/wQFMAMBAf8wDgYDVR0PAQH/BAQDAgEGMB0G
+A1UdDgQWBBQNjLZh2kS40RR9w759XkjwzspqsDAXBgNVHSAEEDAOMAwGCiqBegFWAgIAAQEwDQYJ
+KoZIhvcNAQEFBQADggIBACQ+YAZ+He86PtvqrxyaLAEL9MW12Ukx9F1BjYkMTv9sov3/4gbIOZ/x
+WqndIlgVqIrTseYyCYIDbNc/CMf4uboAbbnW/FIyXaR/pDGUu7ZMOH8oMDX/nyNTt7buFHAAQCva
+R6s0fl6nVjBhK4tDrP22iCj1a7Y+YEq6QpA0Z43q619FVDsXrIvkxmUP7tCMXWY5zjKn2BCXwH40
+nJ+U8/aGH88bc62UeYdocMMzpXDn2NU4lG9jeeu/Cg4I58UvD0KgKxRA/yHgBcUn4YQRE7rWhh1B
+CxMjidPJC+iKunqjo3M3NYB9Ergzd0A4wPpeMNLytqOx1qKVl4GbUu1pTP+A5FPbVFsDbVRfsbjv
+JL1vnxHDx2TCDyhihWZeGnuyt++uNckZM6i4J9szVb9o4XVIRFb7zdNIu0eJOqxp9YDG5ERQL1TE
+qkPFMTFYvZbF6nVsmnWxTfj3l/+WFvKXTej28xH5On2KOG4Ey+HTRRWqpdEdnV1j6CTmNhTih60b
+WfVEm/vXd3wfAXBioSAaosUaKPQhA+4u2cGA6rnZgtZbdsLLO7XSAPCjDuGtbkD326C00EauFddE
+wk01+dIL8hf2rGbVJLJP0RyZwG71fet0BLj5TXcJ17TPBzAJ8bgAVtkXFhYKK4bfjwEZGuW7gmP/
+vgt2Fl43N+bYdJeimUV5
+-----END CERTIFICATE-----
+
+Root CA Generalitat Valenciana
+==============================
+-----BEGIN CERTIFICATE-----
+MIIGizCCBXOgAwIBAgIEO0XlaDANBgkqhkiG9w0BAQUFADBoMQswCQYDVQQGEwJFUzEfMB0GA1UE
+ChMWR2VuZXJhbGl0YXQgVmFsZW5jaWFuYTEPMA0GA1UECxMGUEtJR1ZBMScwJQYDVQQDEx5Sb290
+IENBIEdlbmVyYWxpdGF0IFZhbGVuY2lhbmEwHhcNMDEwNzA2MTYyMjQ3WhcNMjEwNzAxMTUyMjQ3
+WjBoMQswCQYDVQQGEwJFUzEfMB0GA1UEChMWR2VuZXJhbGl0YXQgVmFsZW5jaWFuYTEPMA0GA1UE
+CxMGUEtJR1ZBMScwJQYDVQQDEx5Sb290IENBIEdlbmVyYWxpdGF0IFZhbGVuY2lhbmEwggEiMA0G
+CSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQDGKqtXETcvIorKA3Qdyu0togu8M1JAJke+WmmmO3I2
+F0zo37i7L3bhQEZ0ZQKQUgi0/6iMweDHiVYQOTPvaLRfX9ptI6GJXiKjSgbwJ/BXufjpTjJ3Cj9B
+ZPPrZe52/lSqfR0grvPXdMIKX/UIKFIIzFVd0g/bmoGlu6GzwZTNVOAydTGRGmKy3nXiz0+J2ZGQ
+D0EbtFpKd71ng+CT516nDOeB0/RSrFOyA8dEJvt55cs0YFAQexvba9dHq198aMpunUEDEO5rmXte
+JajCq+TA81yc477OMUxkHl6AovWDfgzWyoxVjr7gvkkHD6MkQXpYHYTqWBLI4bft75PelAgxAgMB
+AAGjggM7MIIDNzAyBggrBgEFBQcBAQQmMCQwIgYIKwYBBQUHMAGGFmh0dHA6Ly9vY3NwLnBraS5n
+dmEuZXMwEgYDVR0TAQH/BAgwBgEB/wIBAjCCAjQGA1UdIASCAiswggInMIICIwYKKwYBBAG/VQIB
+ADCCAhMwggHoBggrBgEFBQcCAjCCAdoeggHWAEEAdQB0AG8AcgBpAGQAYQBkACAAZABlACAAQwBl
+AHIAdABpAGYAaQBjAGEAYwBpAPMAbgAgAFIAYQDtAHoAIABkAGUAIABsAGEAIABHAGUAbgBlAHIA
+YQBsAGkAdABhAHQAIABWAGEAbABlAG4AYwBpAGEAbgBhAC4ADQAKAEwAYQAgAEQAZQBjAGwAYQBy
+AGEAYwBpAPMAbgAgAGQAZQAgAFAAcgDhAGMAdABpAGMAYQBzACAAZABlACAAQwBlAHIAdABpAGYA
+aQBjAGEAYwBpAPMAbgAgAHEAdQBlACAAcgBpAGcAZQAgAGUAbAAgAGYAdQBuAGMAaQBvAG4AYQBt
+AGkAZQBuAHQAbwAgAGQAZQAgAGwAYQAgAHAAcgBlAHMAZQBuAHQAZQAgAEEAdQB0AG8AcgBpAGQA
+YQBkACAAZABlACAAQwBlAHIAdABpAGYAaQBjAGEAYwBpAPMAbgAgAHMAZQAgAGUAbgBjAHUAZQBu
+AHQAcgBhACAAZQBuACAAbABhACAAZABpAHIAZQBjAGMAaQDzAG4AIAB3AGUAYgAgAGgAdAB0AHAA
+OgAvAC8AdwB3AHcALgBwAGsAaQAuAGcAdgBhAC4AZQBzAC8AYwBwAHMwJQYIKwYBBQUHAgEWGWh0
+dHA6Ly93d3cucGtpLmd2YS5lcy9jcHMwHQYDVR0OBBYEFHs100DSHHgZZu90ECjcPk+yeAT8MIGV
+BgNVHSMEgY0wgYqAFHs100DSHHgZZu90ECjcPk+yeAT8oWykajBoMQswCQYDVQQGEwJFUzEfMB0G
+A1UEChMWR2VuZXJhbGl0YXQgVmFsZW5jaWFuYTEPMA0GA1UECxMGUEtJR1ZBMScwJQYDVQQDEx5S
+b290IENBIEdlbmVyYWxpdGF0IFZhbGVuY2lhbmGCBDtF5WgwDQYJKoZIhvcNAQEFBQADggEBACRh
+TvW1yEICKrNcda3FbcrnlD+laJWIwVTAEGmiEi8YPyVQqHxK6sYJ2fR1xkDar1CdPaUWu20xxsdz
+Ckj+IHLtb8zog2EWRpABlUt9jppSCS/2bxzkoXHPjCpaF3ODR00PNvsETUlR4hTJZGH71BTg9J63
+NI8KJr2XXPR5OkowGcytT6CYirQxlyric21+eLj4iIlPsSKRZEv1UN4D2+XFducTZnV+ZfsBn5OH
+iJ35Rld8TWCvmHMTI6QgkYH60GFmuH3Rr9ZvHmw96RH9qfmCIoaZM3Fa6hlXPZHNqcCjbgcTpsnt
++GijnsNacgmHKNHEc8RzGF9QdRYxn7fofMM=
+-----END CERTIFICATE-----
+
+A-Trust-nQual-03
+================
+-----BEGIN CERTIFICATE-----
+MIIDzzCCAregAwIBAgIDAWweMA0GCSqGSIb3DQEBBQUAMIGNMQswCQYDVQQGEwJBVDFIMEYGA1UE
+Cgw/QS1UcnVzdCBHZXMuIGYuIFNpY2hlcmhlaXRzc3lzdGVtZSBpbSBlbGVrdHIuIERhdGVudmVy
+a2VociBHbWJIMRkwFwYDVQQLDBBBLVRydXN0LW5RdWFsLTAzMRkwFwYDVQQDDBBBLVRydXN0LW5R
+dWFsLTAzMB4XDTA1MDgxNzIyMDAwMFoXDTE1MDgxNzIyMDAwMFowgY0xCzAJBgNVBAYTAkFUMUgw
+RgYDVQQKDD9BLVRydXN0IEdlcy4gZi4gU2ljaGVyaGVpdHNzeXN0ZW1lIGltIGVsZWt0ci4gRGF0
+ZW52ZXJrZWhyIEdtYkgxGTAXBgNVBAsMEEEtVHJ1c3QtblF1YWwtMDMxGTAXBgNVBAMMEEEtVHJ1
+c3QtblF1YWwtMDMwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQCtPWFuA/OQO8BBC4SA
+zewqo51ru27CQoT3URThoKgtUaNR8t4j8DRE/5TrzAUjlUC5B3ilJfYKvUWG6Nm9wASOhURh73+n
+yfrBJcyFLGM/BWBzSQXgYHiVEEvc+RFZznF/QJuKqiTfC0Li21a8StKlDJu3Qz7dg9MmEALP6iPE
+SU7l0+m0iKsMrmKS1GWH2WrX9IWf5DMiJaXlyDO6w8dB3F/GaswADm0yqLaHNgBid5seHzTLkDx4
+iHQF63n1k3Flyp3HaxgtPVxO59X4PzF9j4fsCiIvI+n+u33J4PTs63zEsMMtYrWacdaxaujs2e3V
+cuy+VwHOBVWf3tFgiBCzAgMBAAGjNjA0MA8GA1UdEwEB/wQFMAMBAf8wEQYDVR0OBAoECERqlWdV
+eRFPMA4GA1UdDwEB/wQEAwIBBjANBgkqhkiG9w0BAQUFAAOCAQEAVdRU0VlIXLOThaq/Yy/kgM40
+ozRiPvbY7meIMQQDbwvUB/tOdQ/TLtPAF8fGKOwGDREkDg6lXb+MshOWcdzUzg4NCmgybLlBMRmr
+sQd7TZjTXLDR8KdCoLXEjq/+8T/0709GAHbrAvv5ndJAlseIOrifEXnzgGWovR/TeIGgUUw3tKZd
+JXDRZslo+S4RFGjxVJgIrCaSD96JntT6s3kr0qN51OyLrIdTaEJMUVF0HhsnLuP1Hyl0Te2v9+GS
+mYHovjrHF1D2t8b8m7CKa9aIA5GPBnc6hQLdmNVDeD/GMBWsm2vLV7eJUYs66MmEDNuxUCAKGkq6
+ahq97BvIxYSazQ==
+-----END CERTIFICATE-----
+
+TWCA Root Certification Authority
+=================================
+-----BEGIN CERTIFICATE-----
+MIIDezCCAmOgAwIBAgIBATANBgkqhkiG9w0BAQUFADBfMQswCQYDVQQGEwJUVzESMBAGA1UECgwJ
+VEFJV0FOLUNBMRAwDgYDVQQLDAdSb290IENBMSowKAYDVQQDDCFUV0NBIFJvb3QgQ2VydGlmaWNh
+dGlvbiBBdXRob3JpdHkwHhcNMDgwODI4MDcyNDMzWhcNMzAxMjMxMTU1OTU5WjBfMQswCQYDVQQG
+EwJUVzESMBAGA1UECgwJVEFJV0FOLUNBMRAwDgYDVQQLDAdSb290IENBMSowKAYDVQQDDCFUV0NB
+IFJvb3QgQ2VydGlmaWNhdGlvbiBBdXRob3JpdHkwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEK
+AoIBAQCwfnK4pAOU5qfeCTiRShFAh6d8WWQUe7UREN3+v9XAu1bihSX0NXIP+FPQQeFEAcK0HMMx
+QhZHhTMidrIKbw/lJVBPhYa+v5guEGcevhEFhgWQxFnQfHgQsIBct+HHK3XLfJ+utdGdIzdjp9xC
+oi2SBBtQwXu4PhvJVgSLL1KbralW6cH/ralYhzC2gfeXRfwZVzsrb+RH9JlF/h3x+JejiB03HFyP
+4HYlmlD4oFT/RJB2I9IyxsOrBr/8+7/zrX2SYgJbKdM1o5OaQ2RgXbL6Mv87BK9NQGr5x+PvI/1r
+y+UPizgN7gr8/g+YnzAx3WxSZfmLgb4i4RxYA7qRG4kHAgMBAAGjQjBAMA4GA1UdDwEB/wQEAwIB
+BjAPBgNVHRMBAf8EBTADAQH/MB0GA1UdDgQWBBRqOFsmjd6LWvJPelSDGRjjCDWmujANBgkqhkiG
+9w0BAQUFAAOCAQEAPNV3PdrfibqHDAhUaiBQkr6wQT25JmSDCi/oQMCXKCeCMErJk/9q56YAf4lC
+mtYR5VPOL8zy2gXE/uJQxDqGfczafhAJO5I1KlOy/usrBdlsXebQ79NqZp4VKIV66IIArB6nCWlW
+QtNoURi+VJq/REG6Sb4gumlc7rh3zc5sH62Dlhh9DrUUOYTxKOkto557HnpyWoOzeW/vtPzQCqVY
+T0bf+215WfKEIlKuD8z7fDvnaspHYcN6+NOSBB+4IIThNlQWx0DeO4pz3N/GCUzf7Nr/1FNCocny
+Yh0igzyXxfkZYiesZSLX0zzG5Y6yU8xJzrww/nsOM5D77dIUkR8Hrw==
+-----END CERTIFICATE-----
+
+Security Communication RootCA2
+==============================
+-----BEGIN CERTIFICATE-----
+MIIDdzCCAl+gAwIBAgIBADANBgkqhkiG9w0BAQsFADBdMQswCQYDVQQGEwJKUDElMCMGA1UEChMc
+U0VDT00gVHJ1c3QgU3lzdGVtcyBDTy4sTFRELjEnMCUGA1UECxMeU2VjdXJpdHkgQ29tbXVuaWNh
+dGlvbiBSb290Q0EyMB4XDTA5MDUyOTA1MDAzOVoXDTI5MDUyOTA1MDAzOVowXTELMAkGA1UEBhMC
+SlAxJTAjBgNVBAoTHFNFQ09NIFRydXN0IFN5c3RlbXMgQ08uLExURC4xJzAlBgNVBAsTHlNlY3Vy
+aXR5IENvbW11bmljYXRpb24gUm9vdENBMjCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEB
+ANAVOVKxUrO6xVmCxF1SrjpDZYBLx/KWvNs2l9amZIyoXvDjChz335c9S672XewhtUGrzbl+dp++
++T42NKA7wfYxEUV0kz1XgMX5iZnK5atq1LXaQZAQwdbWQonCv/Q4EpVMVAX3NuRFg3sUZdbcDE3R
+3n4MqzvEFb46VqZab3ZpUql6ucjrappdUtAtCms1FgkQhNBqyjoGADdH5H5XTz+L62e4iKrFvlNV
+spHEfbmwhRkGeC7bYRr6hfVKkaHnFtWOojnflLhwHyg/i/xAXmODPIMqGplrz95Zajv8bxbXH/1K
+EOtOghY6rCcMU/Gt1SSwawNQwS08Ft1ENCcadfsCAwEAAaNCMEAwHQYDVR0OBBYEFAqFqXdlBZh8
+QIH4D5csOPEK7DzPMA4GA1UdDwEB/wQEAwIBBjAPBgNVHRMBAf8EBTADAQH/MA0GCSqGSIb3DQEB
+CwUAA4IBAQBMOqNErLlFsceTfsgLCkLfZOoc7llsCLqJX2rKSpWeeo8HxdpFcoJxDjrSzG+ntKEj
+u/Ykn8sX/oymzsLS28yN/HH8AynBbF0zX2S2ZTuJbxh2ePXcokgfGT+Ok+vx+hfuzU7jBBJV1uXk
+3fs+BXziHV7Gp7yXT2g69ekuCkO2r1dcYmh8t/2jioSgrGK+KwmHNPBqAbubKVY8/gA3zyNs8U6q
+tnRGEmyR7jTV7JqR50S+kDFy1UkC9gLl9B/rfNmWVan/7Ir5mUf/NVoCqgTLiluHcSmRvaS0eg29
+mvVXIwAHIRc/SjnRBUkLp7Y3gaVdjKozXoEofKd9J+sAro03
+-----END CERTIFICATE-----
+
+EC-ACC
+======
+-----BEGIN CERTIFICATE-----
+MIIFVjCCBD6gAwIBAgIQ7is969Qh3hSoYqwE893EATANBgkqhkiG9w0BAQUFADCB8zELMAkGA1UE
+BhMCRVMxOzA5BgNVBAoTMkFnZW5jaWEgQ2F0YWxhbmEgZGUgQ2VydGlmaWNhY2lvIChOSUYgUS0w
+ODAxMTc2LUkpMSgwJgYDVQQLEx9TZXJ2ZWlzIFB1YmxpY3MgZGUgQ2VydGlmaWNhY2lvMTUwMwYD
+VQQLEyxWZWdldSBodHRwczovL3d3dy5jYXRjZXJ0Lm5ldC92ZXJhcnJlbCAoYykwMzE1MDMGA1UE
+CxMsSmVyYXJxdWlhIEVudGl0YXRzIGRlIENlcnRpZmljYWNpbyBDYXRhbGFuZXMxDzANBgNVBAMT
+BkVDLUFDQzAeFw0wMzAxMDcyMzAwMDBaFw0zMTAxMDcyMjU5NTlaMIHzMQswCQYDVQQGEwJFUzE7
+MDkGA1UEChMyQWdlbmNpYSBDYXRhbGFuYSBkZSBDZXJ0aWZpY2FjaW8gKE5JRiBRLTA4MDExNzYt
+SSkxKDAmBgNVBAsTH1NlcnZlaXMgUHVibGljcyBkZSBDZXJ0aWZpY2FjaW8xNTAzBgNVBAsTLFZl
+Z2V1IGh0dHBzOi8vd3d3LmNhdGNlcnQubmV0L3ZlcmFycmVsIChjKTAzMTUwMwYDVQQLEyxKZXJh
+cnF1aWEgRW50aXRhdHMgZGUgQ2VydGlmaWNhY2lvIENhdGFsYW5lczEPMA0GA1UEAxMGRUMtQUND
+MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAsyLHT+KXQpWIR4NA9h0X84NzJB5R85iK
+w5K4/0CQBXCHYMkAqbWUZRkiFRfCQ2xmRJoNBD45b6VLeqpjt4pEndljkYRm4CgPukLjbo73FCeT
+ae6RDqNfDrHrZqJyTxIThmV6PttPB/SnCWDaOkKZx7J/sxaVHMf5NLWUhdWZXqBIoH7nF2W4onW4
+HvPlQn2v7fOKSGRdghST2MDk/7NQcvJ29rNdQlB50JQ+awwAvthrDk4q7D7SzIKiGGUzE3eeml0a
+E9jD2z3Il3rucO2n5nzbcc8tlGLfbdb1OL4/pYUKGbio2Al1QnDE6u/LDsg0qBIimAy4E5S2S+zw
+0JDnJwIDAQABo4HjMIHgMB0GA1UdEQQWMBSBEmVjX2FjY0BjYXRjZXJ0Lm5ldDAPBgNVHRMBAf8E
+BTADAQH/MA4GA1UdDwEB/wQEAwIBBjAdBgNVHQ4EFgQUoMOLRKo3pUW/l4Ba0fF4opvpXY0wfwYD
+VR0gBHgwdjB0BgsrBgEEAfV4AQMBCjBlMCwGCCsGAQUFBwIBFiBodHRwczovL3d3dy5jYXRjZXJ0
+Lm5ldC92ZXJhcnJlbDA1BggrBgEFBQcCAjApGidWZWdldSBodHRwczovL3d3dy5jYXRjZXJ0Lm5l
+dC92ZXJhcnJlbCAwDQYJKoZIhvcNAQEFBQADggEBAKBIW4IB9k1IuDlVNZyAelOZ1Vr/sXE7zDkJ
+lF7W2u++AVtd0x7Y/X1PzaBB4DSTv8vihpw3kpBWHNzrKQXlxJ7HNd+KDM3FIUPpqojlNcAZQmNa
+Al6kSBg6hW/cnbw/nZzBh7h6YQjpdwt/cKt63dmXLGQehb+8dJahw3oS7AwaboMMPOhyRp/7SNVe
+l+axofjk70YllJyJ22k4vuxcDlbHZVHlUIiIv0LVKz3l+bqeLrPK9HOSAgu+TGbrIP65y7WZf+a2
+E/rKS03Z7lNGBjvGTq2TWoF+bCpLagVFjPIhpDGQh2xlnJ2lYJU6Un/10asIbvPuW/mIPX64b24D
+5EI=
+-----END CERTIFICATE-----
+
+Hellenic Academic and Research Institutions RootCA 2011
+=======================================================
+-----BEGIN CERTIFICATE-----
+MIIEMTCCAxmgAwIBAgIBADANBgkqhkiG9w0BAQUFADCBlTELMAkGA1UEBhMCR1IxRDBCBgNVBAoT
+O0hlbGxlbmljIEFjYWRlbWljIGFuZCBSZXNlYXJjaCBJbnN0aXR1dGlvbnMgQ2VydC4gQXV0aG9y
+aXR5MUAwPgYDVQQDEzdIZWxsZW5pYyBBY2FkZW1pYyBhbmQgUmVzZWFyY2ggSW5zdGl0dXRpb25z
+IFJvb3RDQSAyMDExMB4XDTExMTIwNjEzNDk1MloXDTMxMTIwMTEzNDk1MlowgZUxCzAJBgNVBAYT
+AkdSMUQwQgYDVQQKEztIZWxsZW5pYyBBY2FkZW1pYyBhbmQgUmVzZWFyY2ggSW5zdGl0dXRpb25z
+IENlcnQuIEF1dGhvcml0eTFAMD4GA1UEAxM3SGVsbGVuaWMgQWNhZGVtaWMgYW5kIFJlc2VhcmNo
+IEluc3RpdHV0aW9ucyBSb290Q0EgMjAxMTCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEB
+AKlTAOMupvaO+mDYLZU++CwqVE7NuYRhlFhPjz2L5EPzdYmNUeTDN9KKiE15HrcS3UN4SoqS5tdI
+1Q+kOilENbgH9mgdVc04UfCMJDGFr4PJfel3r+0ae50X+bOdOFAPplp5kYCvN66m0zH7tSYJnTxa
+71HFK9+WXesyHgLacEnsbgzImjeN9/E2YEsmLIKe0HjzDQ9jpFEw4fkrJxIH2Oq9GGKYsFk3fb7u
+8yBRQlqD75O6aRXxYp2fmTmCobd0LovUxQt7L/DICto9eQqakxylKHJzkUOap9FNhYS5qXSPFEDH
+3N6sQWRstBmbAmNtJGSPRLIl6s5ddAxjMlyNh+UCAwEAAaOBiTCBhjAPBgNVHRMBAf8EBTADAQH/
+MAsGA1UdDwQEAwIBBjAdBgNVHQ4EFgQUppFC/RNhSiOeCKQp5dgTBCPuQSUwRwYDVR0eBEAwPqA8
+MAWCAy5ncjAFggMuZXUwBoIELmVkdTAGggQub3JnMAWBAy5ncjAFgQMuZXUwBoEELmVkdTAGgQQu
+b3JnMA0GCSqGSIb3DQEBBQUAA4IBAQAf73lB4XtuP7KMhjdCSk4cNx6NZrokgclPEg8hwAOXhiVt
+XdMiKahsog2p6z0GW5k6x8zDmjR/qw7IThzh+uTczQ2+vyT+bOdrwg3IBp5OjWEopmr95fZi6hg8
+TqBTnbI6nOulnJEWtk2C4AwFSKls9cz4y51JtPACpf1wA+2KIaWuE4ZJwzNzvoc7dIsXRSZMFpGD
+/md9zU1jZ/rzAxKWeAaNsWftjj++n08C9bMJL/NMh98qy5V8AcysNnq/onN694/BtZqhFLKPM58N
+7yLcZnuEvUUXBj08yrl3NI/K6s8/MT7jiOOASSXIl7WdmplNsDz4SgCbZN2fOUvRJ9e4
+-----END CERTIFICATE-----
+
+Actalis Authentication Root CA
+==============================
+-----BEGIN CERTIFICATE-----
+MIIFuzCCA6OgAwIBAgIIVwoRl0LE48wwDQYJKoZIhvcNAQELBQAwazELMAkGA1UEBhMCSVQxDjAM
+BgNVBAcMBU1pbGFuMSMwIQYDVQQKDBpBY3RhbGlzIFMucC5BLi8wMzM1ODUyMDk2NzEnMCUGA1UE
+AwweQWN0YWxpcyBBdXRoZW50aWNhdGlvbiBSb290IENBMB4XDTExMDkyMjExMjIwMloXDTMwMDky
+MjExMjIwMlowazELMAkGA1UEBhMCSVQxDjAMBgNVBAcMBU1pbGFuMSMwIQYDVQQKDBpBY3RhbGlz
+IFMucC5BLi8wMzM1ODUyMDk2NzEnMCUGA1UEAwweQWN0YWxpcyBBdXRoZW50aWNhdGlvbiBSb290
+IENBMIICIjANBgkqhkiG9w0BAQEFAAOCAg8AMIICCgKCAgEAp8bEpSmkLO/lGMWwUKNvUTufClrJ
+wkg4CsIcoBh/kbWHuUA/3R1oHwiD1S0eiKD4j1aPbZkCkpAW1V8IbInX4ay8IMKx4INRimlNAJZa
+by/ARH6jDuSRzVju3PvHHkVH3Se5CAGfpiEd9UEtL0z9KK3giq0itFZljoZUj5NDKd45RnijMCO6
+zfB9E1fAXdKDa0hMxKufgFpbOr3JpyI/gCczWw63igxdBzcIy2zSekciRDXFzMwujt0q7bd9Zg1f
+YVEiVRvjRuPjPdA1YprbrxTIW6HMiRvhMCb8oJsfgadHHwTrozmSBp+Z07/T6k9QnBn+locePGX2
+oxgkg4YQ51Q+qDp2JE+BIcXjDwL4k5RHILv+1A7TaLndxHqEguNTVHnd25zS8gebLra8Pu2Fbe8l
+EfKXGkJh90qX6IuxEAf6ZYGyojnP9zz/GPvG8VqLWeICrHuS0E4UT1lF9gxeKF+w6D9Fz8+vm2/7
+hNN3WpVvrJSEnu68wEqPSpP4RCHiMUVhUE4Q2OM1fEwZtN4Fv6MGn8i1zeQf1xcGDXqVdFUNaBr8
+EBtiZJ1t4JWgw5QHVw0U5r0F+7if5t+L4sbnfpb2U8WANFAoWPASUHEXMLrmeGO89LKtmyuy/uE5
+jF66CyCU3nuDuP/jVo23Eek7jPKxwV2dpAtMK9myGPW1n0sCAwEAAaNjMGEwHQYDVR0OBBYEFFLY
+iDrIn3hm7YnzezhwlMkCAjbQMA8GA1UdEwEB/wQFMAMBAf8wHwYDVR0jBBgwFoAUUtiIOsifeGbt
+ifN7OHCUyQICNtAwDgYDVR0PAQH/BAQDAgEGMA0GCSqGSIb3DQEBCwUAA4ICAQALe3KHwGCmSUyI
+WOYdiPcUZEim2FgKDk8TNd81HdTtBjHIgT5q1d07GjLukD0R0i70jsNjLiNmsGe+b7bAEzlgqqI0
+JZN1Ut6nna0Oh4lScWoWPBkdg/iaKWW+9D+a2fDzWochcYBNy+A4mz+7+uAwTc+G02UQGRjRlwKx
+K3JCaKygvU5a2hi/a5iB0P2avl4VSM0RFbnAKVy06Ij3Pjaut2L9HmLecHgQHEhb2rykOLpn7VU+
+Xlff1ANATIGk0k9jpwlCCRT8AKnCgHNPLsBA2RF7SOp6AsDT6ygBJlh0wcBzIm2Tlf05fbsq4/aC
+4yyXX04fkZT6/iyj2HYauE2yOE+b+h1IYHkm4vP9qdCa6HCPSXrW5b0KDtst842/6+OkfcvHlXHo
+2qN8xcL4dJIEG4aspCJTQLas/kx2z/uUMsA1n3Y/buWQbqCmJqK4LL7RK4X9p2jIugErsWx0Hbhz
+lefut8cl8ABMALJ+tguLHPPAUJ4lueAI3jZm/zel0btUZCzJJ7VLkn5l/9Mt4blOvH+kQSGQQXem
+OR/qnuOf0GZvBeyqdn6/axag67XH/JJULysRJyU3eExRarDzzFhdFPFqSBX/wge2sY0PjlxQRrM9
+vwGYT7JZVEc+NHt4bVaTLnPqZih4zR0Uv6CPLy64Lo7yFIrM6bV8+2ydDKXhlg==
+-----END CERTIFICATE-----
+
+Trustis FPS Root CA
+===================
+-----BEGIN CERTIFICATE-----
+MIIDZzCCAk+gAwIBAgIQGx+ttiD5JNM2a/fH8YygWTANBgkqhkiG9w0BAQUFADBFMQswCQYDVQQG
+EwJHQjEYMBYGA1UEChMPVHJ1c3RpcyBMaW1pdGVkMRwwGgYDVQQLExNUcnVzdGlzIEZQUyBSb290
+IENBMB4XDTAzMTIyMzEyMTQwNloXDTI0MDEyMTExMzY1NFowRTELMAkGA1UEBhMCR0IxGDAWBgNV
+BAoTD1RydXN0aXMgTGltaXRlZDEcMBoGA1UECxMTVHJ1c3RpcyBGUFMgUm9vdCBDQTCCASIwDQYJ
+KoZIhvcNAQEBBQADggEPADCCAQoCggEBAMVQe547NdDfxIzNjpvto8A2mfRC6qc+gIMPpqdZh8mQ
+RUN+AOqGeSoDvT03mYlmt+WKVoaTnGhLaASMk5MCPjDSNzoiYYkchU59j9WvezX2fihHiTHcDnlk
+H5nSW7r+f2C/revnPDgpai/lkQtV/+xvWNUtyd5MZnGPDNcE2gfmHhjjvSkCqPoc4Vu5g6hBSLwa
+cY3nYuUtsuvffM/bq1rKMfFMIvMFE/eC+XN5DL7XSxzA0RU8k0Fk0ea+IxciAIleH2ulrG6nS4zt
+o3Lmr2NNL4XSFDWaLk6M6jKYKIahkQlBOrTh4/L68MkKokHdqeMDx4gVOxzUGpTXn2RZEm0CAwEA
+AaNTMFEwDwYDVR0TAQH/BAUwAwEB/zAfBgNVHSMEGDAWgBS6+nEleYtXQSUhhgtx67JkDoshZzAd
+BgNVHQ4EFgQUuvpxJXmLV0ElIYYLceuyZA6LIWcwDQYJKoZIhvcNAQEFBQADggEBAH5Y//01GX2c
+GE+esCu8jowU/yyg2kdbw++BLa8F6nRIW/M+TgfHbcWzk88iNVy2P3UnXwmWzaD+vkAMXBJV+JOC
+yinpXj9WV4s4NvdFGkwozZ5BuO1WTISkQMi4sKUraXAEasP41BIy+Q7DsdwyhEQsb8tGD+pmQQ9P
+8Vilpg0ND2HepZ5dfWWhPBfnqFVO76DH7cZEf1T1o+CP8HxVIo8ptoGj4W1OLBuAZ+ytIJ8MYmHV
+l/9D7S3B2l0pKoU/rGXuhg8FjZBf3+6f9L/uHfuY5H+QK4R4EA5sSVPvFVtlRkpdr7r7OnIdzfYl
+iB6XzCGcKQENZetX2fNXlrtIzYE=
+-----END CERTIFICATE-----
+
+StartCom Certification Authority
+================================
+-----BEGIN CERTIFICATE-----
+MIIHhzCCBW+gAwIBAgIBLTANBgkqhkiG9w0BAQsFADB9MQswCQYDVQQGEwJJTDEWMBQGA1UEChMN
+U3RhcnRDb20gTHRkLjErMCkGA1UECxMiU2VjdXJlIERpZ2l0YWwgQ2VydGlmaWNhdGUgU2lnbmlu
+ZzEpMCcGA1UEAxMgU3RhcnRDb20gQ2VydGlmaWNhdGlvbiBBdXRob3JpdHkwHhcNMDYwOTE3MTk0
+NjM3WhcNMzYwOTE3MTk0NjM2WjB9MQswCQYDVQQGEwJJTDEWMBQGA1UEChMNU3RhcnRDb20gTHRk
+LjErMCkGA1UECxMiU2VjdXJlIERpZ2l0YWwgQ2VydGlmaWNhdGUgU2lnbmluZzEpMCcGA1UEAxMg
+U3RhcnRDb20gQ2VydGlmaWNhdGlvbiBBdXRob3JpdHkwggIiMA0GCSqGSIb3DQEBAQUAA4ICDwAw
+ggIKAoICAQDBiNsJvGxGfHiflXu1M5DycmLWwTYgIiRezul38kMKogZkpMyONvg45iPwbm2xPN1y
+o4UcodM9tDMr0y+v/uqwQVlntsQGfQqedIXWeUyAN3rfOQVSWff0G0ZDpNKFhdLDcfN1YjS6LIp/
+Ho/u7TTQEceWzVI9ujPW3U3eCztKS5/CJi/6tRYccjV3yjxd5srhJosaNnZcAdt0FCX+7bWgiA/d
+eMotHweXMAEtcnn6RtYTKqi5pquDSR3l8u/d5AGOGAqPY1MWhWKpDhk6zLVmpsJrdAfkK+F2PrRt
+2PZE4XNiHzvEvqBTViVsUQn3qqvKv3b9bZvzndu/PWa8DFaqr5hIlTpL36dYUNk4dalb6kMMAv+Z
+6+hsTXBbKWWc3apdzK8BMewM69KN6Oqce+Zu9ydmDBpI125C4z/eIT574Q1w+2OqqGwaVLRcJXrJ
+osmLFqa7LH4XXgVNWG4SHQHuEhANxjJ/GP/89PrNbpHoNkm+Gkhpi8KWTRoSsmkXwQqQ1vp5Iki/
+untp+HDH+no32NgN0nZPV/+Qt+OR0t3vwmC3Zzrd/qqc8NSLf3Iizsafl7b4r4qgEKjZ+xjGtrVc
+UjyJthkqcwEKDwOzEmDyei+B26Nu/yYwl/WL3YlXtq09s68rxbd2AvCl1iuahhQqcvbjM4xdCUsT
+37uMdBNSSwIDAQABo4ICEDCCAgwwDwYDVR0TAQH/BAUwAwEB/zAOBgNVHQ8BAf8EBAMCAQYwHQYD
+VR0OBBYEFE4L7xqkQFulF2mHMMo0aEPQQa7yMB8GA1UdIwQYMBaAFE4L7xqkQFulF2mHMMo0aEPQ
+Qa7yMIIBWgYDVR0gBIIBUTCCAU0wggFJBgsrBgEEAYG1NwEBATCCATgwLgYIKwYBBQUHAgEWImh0
+dHA6Ly93d3cuc3RhcnRzc2wuY29tL3BvbGljeS5wZGYwNAYIKwYBBQUHAgEWKGh0dHA6Ly93d3cu
+c3RhcnRzc2wuY29tL2ludGVybWVkaWF0ZS5wZGYwgc8GCCsGAQUFBwICMIHCMCcWIFN0YXJ0IENv
+bW1lcmNpYWwgKFN0YXJ0Q29tKSBMdGQuMAMCAQEagZZMaW1pdGVkIExpYWJpbGl0eSwgcmVhZCB0
+aGUgc2VjdGlvbiAqTGVnYWwgTGltaXRhdGlvbnMqIG9mIHRoZSBTdGFydENvbSBDZXJ0aWZpY2F0
+aW9uIEF1dGhvcml0eSBQb2xpY3kgYXZhaWxhYmxlIGF0IGh0dHA6Ly93d3cuc3RhcnRzc2wuY29t
+L3BvbGljeS5wZGYwEQYJYIZIAYb4QgEBBAQDAgAHMDgGCWCGSAGG+EIBDQQrFilTdGFydENvbSBG
+cmVlIFNTTCBDZXJ0aWZpY2F0aW9uIEF1dGhvcml0eTANBgkqhkiG9w0BAQsFAAOCAgEAjo/n3JR5
+fPGFf59Jb2vKXfuM/gTFwWLRfUKKvFO3lANmMD+x5wqnUCBVJX92ehQN6wQOQOY+2IirByeDqXWm
+N3PH/UvSTa0XQMhGvjt/UfzDtgUx3M2FIk5xt/JxXrAaxrqTi3iSSoX4eA+D/i+tLPfkpLst0OcN
+Org+zvZ49q5HJMqjNTbOx8aHmNrs++myziebiMMEofYLWWivydsQD032ZGNcpRJvkrKTlMeIFw6T
+tn5ii5B/q06f/ON1FE8qMt9bDeD1e5MNq6HPh+GlBEXoPBKlCcWw0bdT82AUuoVpaiF8H3VhFyAX
+e2w7QSlc4axa0c2Mm+tgHRns9+Ww2vl5GKVFP0lDV9LdJNUso/2RjSe15esUBppMeyG7Oq0wBhjA
+2MFrLH9ZXF2RsXAiV+uKa0hK1Q8p7MZAwC+ITGgBF3f0JBlPvfrhsiAhS90a2Cl9qrjeVOwhVYBs
+HvUwyKMQ5bLmKhQxw4UtjJixhlpPiVktucf3HMiKf8CdBUrmQk9io20ppB+Fq9vlgcitKj1MXVuE
+JnHEhV5xJMqlG2zYYdMa4FTbzrqpMrUi9nNBCV24F10OD5mQ1kfabwo6YigUZ4LZ8dCAWZvLMdib
+D4x3TrVoivJs9iQOLWxwxXPR3hTQcY+203sC9uO41Alua551hDnmfyWl8kgAwKQB2j8=
+-----END CERTIFICATE-----
+
+StartCom Certification Authority G2
+===================================
+-----BEGIN CERTIFICATE-----
+MIIFYzCCA0ugAwIBAgIBOzANBgkqhkiG9w0BAQsFADBTMQswCQYDVQQGEwJJTDEWMBQGA1UEChMN
+U3RhcnRDb20gTHRkLjEsMCoGA1UEAxMjU3RhcnRDb20gQ2VydGlmaWNhdGlvbiBBdXRob3JpdHkg
+RzIwHhcNMTAwMTAxMDEwMDAxWhcNMzkxMjMxMjM1OTAxWjBTMQswCQYDVQQGEwJJTDEWMBQGA1UE
+ChMNU3RhcnRDb20gTHRkLjEsMCoGA1UEAxMjU3RhcnRDb20gQ2VydGlmaWNhdGlvbiBBdXRob3Jp
+dHkgRzIwggIiMA0GCSqGSIb3DQEBAQUAA4ICDwAwggIKAoICAQC2iTZbB7cgNr2Cu+EWIAOVeq8O
+o1XJJZlKxdBWQYeQTSFgpBSHO839sj60ZwNq7eEPS8CRhXBF4EKe3ikj1AENoBB5uNsDvfOpL9HG
+4A/LnooUCri99lZi8cVytjIl2bLzvWXFDSxu1ZJvGIsAQRSCb0AgJnooD/Uefyf3lLE3PbfHkffi
+Aez9lInhzG7TNtYKGXmu1zSCZf98Qru23QumNK9LYP5/Q0kGi4xDuFby2X8hQxfqp0iVAXV16iul
+Q5XqFYSdCI0mblWbq9zSOdIxHWDirMxWRST1HFSr7obdljKF+ExP6JV2tgXdNiNnvP8V4so75qbs
+O+wmETRIjfaAKxojAuuKHDp2KntWFhxyKrOq42ClAJ8Em+JvHhRYW6Vsi1g8w7pOOlz34ZYrPu8H
+vKTlXcxNnw3h3Kq74W4a7I/htkxNeXJdFzULHdfBR9qWJODQcqhaX2YtENwvKhOuJv4KHBnM0D4L
+nMgJLvlblnpHnOl68wVQdJVznjAJ85eCXuaPOQgeWeU1FEIT/wCc976qUM/iUUjXuG+v+E5+M5iS
+FGI6dWPPe/regjupuznixL0sAA7IF6wT700ljtizkC+p2il9Ha90OrInwMEePnWjFqmveiJdnxMa
+z6eg6+OGCtP95paV1yPIN93EfKo2rJgaErHgTuixO/XWb/Ew1wIDAQABo0IwQDAPBgNVHRMBAf8E
+BTADAQH/MA4GA1UdDwEB/wQEAwIBBjAdBgNVHQ4EFgQUS8W0QGutHLOlHGVuRjaJhwUMDrYwDQYJ
+KoZIhvcNAQELBQADggIBAHNXPyzVlTJ+N9uWkusZXn5T50HsEbZH77Xe7XRcxfGOSeD8bpkTzZ+K
+2s06Ctg6Wgk/XzTQLwPSZh0avZyQN8gMjgdalEVGKua+etqhqaRpEpKwfTbURIfXUfEpY9Z1zRbk
+J4kd+MIySP3bmdCPX1R0zKxnNBFi2QwKN4fRoxdIjtIXHfbX/dtl6/2o1PXWT6RbdejF0mCy2wl+
+JYt7ulKSnj7oxXehPOBKc2thz4bcQ///If4jXSRK9dNtD2IEBVeC2m6kMyV5Sy5UGYvMLD0w6dEG
+/+gyRr61M3Z3qAFdlsHB1b6uJcDJHgoJIIihDsnzb02CVAAgp9KP5DlUFy6NHrgbuxu9mk47EDTc
+nIhT76IxW1hPkWLIwpqazRVdOKnWvvgTtZ8SafJQYqz7Fzf07rh1Z2AQ+4NQ+US1dZxAF7L+/Xld
+blhYXzD8AK6vM8EOTmy6p6ahfzLbOOCxchcKK5HsamMm7YnUeMx0HgX4a/6ManY5Ka5lIxKVCCIc
+l85bBu4M4ru8H0ST9tg4RQUh7eStqxK2A6RCLi3ECToDZ2mEmuFZkIoohdVddLHRDiBYmxOlsGOm
+7XtH/UVVMKTumtTm4ofvmMkyghEpIrwACjFeLQ/Ajulrso8uBtjRkcfGEvRM/TAXw8HaOFvjqerm
+obp573PYtlNXLfbQ4ddI
+-----END CERTIFICATE-----
+
+Buypass Class 2 Root CA
+=======================
+-----BEGIN CERTIFICATE-----
+MIIFWTCCA0GgAwIBAgIBAjANBgkqhkiG9w0BAQsFADBOMQswCQYDVQQGEwJOTzEdMBsGA1UECgwU
+QnV5cGFzcyBBUy05ODMxNjMzMjcxIDAeBgNVBAMMF0J1eXBhc3MgQ2xhc3MgMiBSb290IENBMB4X
+DTEwMTAyNjA4MzgwM1oXDTQwMTAyNjA4MzgwM1owTjELMAkGA1UEBhMCTk8xHTAbBgNVBAoMFEJ1
+eXBhc3MgQVMtOTgzMTYzMzI3MSAwHgYDVQQDDBdCdXlwYXNzIENsYXNzIDIgUm9vdCBDQTCCAiIw
+DQYJKoZIhvcNAQEBBQADggIPADCCAgoCggIBANfHXvfBB9R3+0Mh9PT1aeTuMgHbo4Yf5FkNuud1
+g1Lr6hxhFUi7HQfKjK6w3Jad6sNgkoaCKHOcVgb/S2TwDCo3SbXlzwx87vFKu3MwZfPVL4O2fuPn
+9Z6rYPnT8Z2SdIrkHJasW4DptfQxh6NR/Md+oW+OU3fUl8FVM5I+GC911K2GScuVr1QGbNgGE41b
+/+EmGVnAJLqBcXmQRFBoJJRfuLMR8SlBYaNByyM21cHxMlAQTn/0hpPshNOOvEu/XAFOBz3cFIqU
+CqTqc/sLUegTBxj6DvEr0VQVfTzh97QZQmdiXnfgolXsttlpF9U6r0TtSsWe5HonfOV116rLJeff
+awrbD02TTqigzXsu8lkBarcNuAeBfos4GzjmCleZPe4h6KP1DBbdi+w0jpwqHAAVF41og9JwnxgI
+zRFo1clrUs3ERo/ctfPYV3Me6ZQ5BL/T3jjetFPsaRyifsSP5BtwrfKi+fv3FmRmaZ9JUaLiFRhn
+Bkp/1Wy1TbMz4GHrXb7pmA8y1x1LPC5aAVKRCfLf6o3YBkBjqhHk/sM3nhRSP/TizPJhk9H9Z2vX
+Uq6/aKtAQ6BXNVN48FP4YUIHZMbXb5tMOA1jrGKvNouicwoN9SG9dKpN6nIDSdvHXx1iY8f93ZHs
+M+71bbRuMGjeyNYmsHVee7QHIJihdjK4TWxPAgMBAAGjQjBAMA8GA1UdEwEB/wQFMAMBAf8wHQYD
+VR0OBBYEFMmAd+BikoL1RpzzuvdMw964o605MA4GA1UdDwEB/wQEAwIBBjANBgkqhkiG9w0BAQsF
+AAOCAgEAU18h9bqwOlI5LJKwbADJ784g7wbylp7ppHR/ehb8t/W2+xUbP6umwHJdELFx7rxP462s
+A20ucS6vxOOto70MEae0/0qyexAQH6dXQbLArvQsWdZHEIjzIVEpMMpghq9Gqx3tOluwlN5E40EI
+osHsHdb9T7bWR9AUC8rmyrV7d35BH16Dx7aMOZawP5aBQW9gkOLo+fsicdl9sz1Gv7SEr5AcD48S
+aq/v7h56rgJKihcrdv6sVIkkLE8/trKnToyokZf7KcZ7XC25y2a2t6hbElGFtQl+Ynhw/qlqYLYd
+DnkM/crqJIByw5c/8nerQyIKx+u2DISCLIBrQYoIwOula9+ZEsuK1V6ADJHgJgg2SMX6OBE1/yWD
+LfJ6v9r9jv6ly0UsH8SIU653DtmadsWOLB2jutXsMq7Aqqz30XpN69QH4kj3Io6wpJ9qzo6ysmD0
+oyLQI+uUWnpp3Q+/QFesa1lQ2aOZ4W7+jQF5JyMV3pKdewlNWudLSDBaGOYKbeaP4NK75t98biGC
+wWg5TbSYWGZizEqQXsP6JwSxeRV0mcy+rSDeJmAc61ZRpqPq5KM/p/9h3PFaTWwyI0PurKju7koS
+CTxdccK+efrCh2gdC/1cacwG0Jp9VJkqyTkaGa9LKkPzY11aWOIv4x3kqdbQCtCev9eBCfHJxyYN
+rJgWVqA=
+-----END CERTIFICATE-----
+
+Buypass Class 3 Root CA
+=======================
+-----BEGIN CERTIFICATE-----
+MIIFWTCCA0GgAwIBAgIBAjANBgkqhkiG9w0BAQsFADBOMQswCQYDVQQGEwJOTzEdMBsGA1UECgwU
+QnV5cGFzcyBBUy05ODMxNjMzMjcxIDAeBgNVBAMMF0J1eXBhc3MgQ2xhc3MgMyBSb290IENBMB4X
+DTEwMTAyNjA4Mjg1OFoXDTQwMTAyNjA4Mjg1OFowTjELMAkGA1UEBhMCTk8xHTAbBgNVBAoMFEJ1
+eXBhc3MgQVMtOTgzMTYzMzI3MSAwHgYDVQQDDBdCdXlwYXNzIENsYXNzIDMgUm9vdCBDQTCCAiIw
+DQYJKoZIhvcNAQEBBQADggIPADCCAgoCggIBAKXaCpUWUOOV8l6ddjEGMnqb8RB2uACatVI2zSRH
+sJ8YZLya9vrVediQYkwiL944PdbgqOkcLNt4EemOaFEVcsfzM4fkoF0LXOBXByow9c3EN3coTRiR
+5r/VUv1xLXA+58bEiuPwKAv0dpihi4dVsjoT/Lc+JzeOIuOoTyrvYLs9tznDDgFHmV0ST9tD+leh
+7fmdvhFHJlsTmKtdFoqwNxxXnUX/iJY2v7vKB3tvh2PX0DJq1l1sDPGzbjniazEuOQAnFN44wOwZ
+ZoYS6J1yFhNkUsepNxz9gjDthBgd9K5c/3ATAOux9TN6S9ZV+AWNS2mw9bMoNlwUxFFzTWsL8TQH
+2xc519woe2v1n/MuwU8XKhDzzMro6/1rqy6any2CbgTUUgGTLT2G/H783+9CHaZr77kgxve9oKeV
+/afmiSTYzIw0bOIjL9kSGiG5VZFvC5F5GQytQIgLcOJ60g7YaEi7ghM5EFjp2CoHxhLbWNvSO1UQ
+RwUVZ2J+GGOmRj8JDlQyXr8NYnon74Do29lLBlo3WiXQCBJ31G8JUJc9yB3D34xFMFbG02SrZvPA
+Xpacw8Tvw3xrizp5f7NJzz3iiZ+gMEuFuZyUJHmPfWupRWgPK9Dx2hzLabjKSWJtyNBjYt1gD1iq
+j6G8BaVmos8bdrKEZLFMOVLAMLrwjEsCsLa3AgMBAAGjQjBAMA8GA1UdEwEB/wQFMAMBAf8wHQYD
+VR0OBBYEFEe4zf/lb+74suwvTg75JbCOPGvDMA4GA1UdDwEB/wQEAwIBBjANBgkqhkiG9w0BAQsF
+AAOCAgEAACAjQTUEkMJAYmDv4jVM1z+s4jSQuKFvdvoWFqRINyzpkMLyPPgKn9iB5btb2iUspKdV
+cSQy9sgL8rxq+JOssgfCX5/bzMiKqr5qb+FJEMwx14C7u8jYog5kV+qi9cKpMRXSIGrs/CIBKM+G
+uIAeqcwRpTzyFrNHnfzSgCHEy9BHcEGhyoMZCCxt8l13nIoUE9Q2HJLw5QY33KbmkJs4j1xrG0aG
+Q0JfPgEHU1RdZX33inOhmlRaHylDFCfChQ+1iHsaO5S3HWCntZznKWlXWpuTekMwGwPXYshApqr8
+ZORK15FTAaggiG6cX0S5y2CBNOxv033aSF/rtJC8LakcC6wc1aJoIIAE1vyxjy+7SjENSoYc6+I2
+KSb12tjE8nVhz36udmNKekBlk4f4HoCMhuWG1o8O/FMsYOgWYRqiPkN7zTlgVGr18okmAWiDSKIz
+6MkEkbIRNBE+6tBDGR8Dk5AM/1E9V/RBbuHLoL7ryWPNbczk+DaqaJ3tvV2XcEQNtg413OEMXbug
+UZTLfhbrES+jkkXITHHZvMmZUldGL1DPvTVp9D0VzgalLA8+9oG6lLvDu79leNKGef9JOxqDDPDe
+eOzI8k1MGt6CKfjBWtrt7uYnXuhF0J0cUahoq0Tj0Itq4/g7u9xN12TyUb7mqqta6THuBrxzvxNi
+Cp/HuZc=
+-----END CERTIFICATE-----
+
+T-TeleSec GlobalRoot Class 3
+============================
+-----BEGIN CERTIFICATE-----
+MIIDwzCCAqugAwIBAgIBATANBgkqhkiG9w0BAQsFADCBgjELMAkGA1UEBhMCREUxKzApBgNVBAoM
+IlQtU3lzdGVtcyBFbnRlcnByaXNlIFNlcnZpY2VzIEdtYkgxHzAdBgNVBAsMFlQtU3lzdGVtcyBU
+cnVzdCBDZW50ZXIxJTAjBgNVBAMMHFQtVGVsZVNlYyBHbG9iYWxSb290IENsYXNzIDMwHhcNMDgx
+MDAxMTAyOTU2WhcNMzMxMDAxMjM1OTU5WjCBgjELMAkGA1UEBhMCREUxKzApBgNVBAoMIlQtU3lz
+dGVtcyBFbnRlcnByaXNlIFNlcnZpY2VzIEdtYkgxHzAdBgNVBAsMFlQtU3lzdGVtcyBUcnVzdCBD
+ZW50ZXIxJTAjBgNVBAMMHFQtVGVsZVNlYyBHbG9iYWxSb290IENsYXNzIDMwggEiMA0GCSqGSIb3
+DQEBAQUAA4IBDwAwggEKAoIBAQC9dZPwYiJvJK7genasfb3ZJNW4t/zN8ELg63iIVl6bmlQdTQyK
+9tPPcPRStdiTBONGhnFBSivwKixVA9ZIw+A5OO3yXDw/RLyTPWGrTs0NvvAgJ1gORH8EGoel15YU
+NpDQSXuhdfsaa3Ox+M6pCSzyU9XDFES4hqX2iys52qMzVNn6chr3IhUciJFrf2blw2qAsCTz34ZF
+iP0Zf3WHHx+xGwpzJFu5ZeAsVMhg02YXP+HMVDNzkQI6pn97djmiH5a2OK61yJN0HZ65tOVgnS9W
+0eDrXltMEnAMbEQgqxHY9Bn20pxSN+f6tsIxO0rUFJmtxxr1XV/6B7h8DR/Wgx6zAgMBAAGjQjBA
+MA8GA1UdEwEB/wQFMAMBAf8wDgYDVR0PAQH/BAQDAgEGMB0GA1UdDgQWBBS1A/d2O2GCahKqGFPr
+AyGUv/7OyjANBgkqhkiG9w0BAQsFAAOCAQEAVj3vlNW92nOyWL6ukK2YJ5f+AbGwUgC4TeQbIXQb
+fsDuXmkqJa9c1h3a0nnJ85cp4IaH3gRZD/FZ1GSFS5mvJQQeyUapl96Cshtwn5z2r3Ex3XsFpSzT
+ucpH9sry9uetuUg/vBa3wW306gmv7PO15wWeph6KU1HWk4HMdJP2udqmJQV0eVp+QD6CSyYRMG7h
+P0HHRwA11fXT91Q+gT3aSWqas+8QPebrb9HIIkfLzM8BMZLZGOMivgkeGj5asuRrDFR6fUNOuIml
+e9eiPZaGzPImNC1qkp2aGtAw4l1OBLBfiyB+d8E9lYLRRpo7PHi4b6HQDWSieB4pTpPDpFQUWw==
+-----END CERTIFICATE-----
+
+EE Certification Centre Root CA
+===============================
+-----BEGIN CERTIFICATE-----
+MIIEAzCCAuugAwIBAgIQVID5oHPtPwBMyonY43HmSjANBgkqhkiG9w0BAQUFADB1MQswCQYDVQQG
+EwJFRTEiMCAGA1UECgwZQVMgU2VydGlmaXRzZWVyaW1pc2tlc2t1czEoMCYGA1UEAwwfRUUgQ2Vy
+dGlmaWNhdGlvbiBDZW50cmUgUm9vdCBDQTEYMBYGCSqGSIb3DQEJARYJcGtpQHNrLmVlMCIYDzIw
+MTAxMDMwMTAxMDMwWhgPMjAzMDEyMTcyMzU5NTlaMHUxCzAJBgNVBAYTAkVFMSIwIAYDVQQKDBlB
+UyBTZXJ0aWZpdHNlZXJpbWlza2Vza3VzMSgwJgYDVQQDDB9FRSBDZXJ0aWZpY2F0aW9uIENlbnRy
+ZSBSb290IENBMRgwFgYJKoZIhvcNAQkBFglwa2lAc2suZWUwggEiMA0GCSqGSIb3DQEBAQUAA4IB
+DwAwggEKAoIBAQDIIMDs4MVLqwd4lfNE7vsLDP90jmG7sWLqI9iroWUyeuuOF0+W2Ap7kaJjbMeM
+TC55v6kF/GlclY1i+blw7cNRfdCT5mzrMEvhvH2/UpvObntl8jixwKIy72KyaOBhU8E2lf/slLo2
+rpwcpzIP5Xy0xm90/XsY6KxX7QYgSzIwWFv9zajmofxwvI6Sc9uXp3whrj3B9UiHbCe9nyV0gVWw
+93X2PaRka9ZP585ArQ/dMtO8ihJTmMmJ+xAdTX7Nfh9WDSFwhfYggx/2uh8Ej+p3iDXE/+pOoYtN
+P2MbRMNE1CV2yreN1x5KZmTNXMWcg+HCCIia7E6j8T4cLNlsHaFLAgMBAAGjgYowgYcwDwYDVR0T
+AQH/BAUwAwEB/zAOBgNVHQ8BAf8EBAMCAQYwHQYDVR0OBBYEFBLyWj7qVhy/zQas8fElyalL1BSZ
+MEUGA1UdJQQ+MDwGCCsGAQUFBwMCBggrBgEFBQcDAQYIKwYBBQUHAwMGCCsGAQUFBwMEBggrBgEF
+BQcDCAYIKwYBBQUHAwkwDQYJKoZIhvcNAQEFBQADggEBAHv25MANqhlHt01Xo/6tu7Fq1Q+e2+Rj
+xY6hUFaTlrg4wCQiZrxTFGGVv9DHKpY5P30osxBAIWrEr7BSdxjhlthWXePdNl4dp1BUoMUq5KqM
+lIpPnTX/dqQGE5Gion0ARD9V04I8GtVbvFZMIi5GQ4okQC3zErg7cBqklrkar4dBGmoYDQZPxz5u
+uSlNDUmJEYcyW+ZLBMjkXOZ0c5RdFpgTlf7727FE5TpwrDdr5rMzcijJs1eg9gIWiAYLtqZLICjU
+3j2LrTcFU3T+bsy8QxdxXvnFzBqpYe73dgzzcvRyrc9yAjYHR8/vGVCJYMzpJJUPwssd8m92kMfM
+dcGWxZ0=
+-----END CERTIFICATE-----
+
+TURKTRUST Certificate Services Provider Root 2007
+=================================================
+-----BEGIN CERTIFICATE-----
+MIIEPTCCAyWgAwIBAgIBATANBgkqhkiG9w0BAQUFADCBvzE/MD0GA1UEAww2VMOcUktUUlVTVCBF
+bGVrdHJvbmlrIFNlcnRpZmlrYSBIaXptZXQgU2HEn2xhecSxY8Sxc8SxMQswCQYDVQQGEwJUUjEP
+MA0GA1UEBwwGQW5rYXJhMV4wXAYDVQQKDFVUw5xSS1RSVVNUIEJpbGdpIMSwbGV0acWfaW0gdmUg
+QmlsacWfaW0gR8O8dmVubGnEn2kgSGl6bWV0bGVyaSBBLsWeLiAoYykgQXJhbMSxayAyMDA3MB4X
+DTA3MTIyNTE4MzcxOVoXDTE3MTIyMjE4MzcxOVowgb8xPzA9BgNVBAMMNlTDnFJLVFJVU1QgRWxl
+a3Ryb25payBTZXJ0aWZpa2EgSGl6bWV0IFNhxJ9sYXnEsWPEsXPEsTELMAkGA1UEBhMCVFIxDzAN
+BgNVBAcMBkFua2FyYTFeMFwGA1UECgxVVMOcUktUUlVTVCBCaWxnaSDEsGxldGnFn2ltIHZlIEJp
+bGnFn2ltIEfDvHZlbmxpxJ9pIEhpem1ldGxlcmkgQS7Fni4gKGMpIEFyYWzEsWsgMjAwNzCCASIw
+DQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAKu3PgqMyKVYFeaK7yc9SrToJdPNM8Ig3BnuiD9N
+YvDdE3ePYakqtdTyuTFYKTsvP2qcb3N2Je40IIDu6rfwxArNK4aUyeNgsURSsloptJGXg9i3phQv
+KUmi8wUG+7RP2qFsmmaf8EMJyupyj+sA1zU511YXRxcw9L6/P8JorzZAwan0qafoEGsIiveGHtya
+KhUG9qPw9ODHFNRRf8+0222vR5YXm3dx2KdxnSQM9pQ/hTEST7ruToK4uT6PIzdezKKqdfcYbwnT
+rqdUKDT74eA7YH2gvnmJhsifLfkKS8RQouf9eRbHegsYz85M733WB2+Y8a+xwXrXgTW4qhe04MsC
+AwEAAaNCMEAwHQYDVR0OBBYEFCnFkKslrxHkYb+j/4hhkeYO/pyBMA4GA1UdDwEB/wQEAwIBBjAP
+BgNVHRMBAf8EBTADAQH/MA0GCSqGSIb3DQEBBQUAA4IBAQAQDdr4Ouwo0RSVgrESLFF6QSU2TJ/s
+Px+EnWVUXKgWAkD6bho3hO9ynYYKVZ1WKKxmLNA6VpM0ByWtCLCPyA8JWcqdmBzlVPi5RX9ql2+I
+aE1KBiY3iAIOtsbWcpnOa3faYjGkVh+uX4132l32iPwa2Z61gfAyuOOI0JzzaqC5mxRZNTZPz/OO
+Xl0XrRWV2N2y1RVuAE6zS89mlOTgzbUF2mNXi+WzqtvALhyQRNsaXRik7r4EW5nVcV9VZWRi1aKb
+BFmGyGJ353yCRWo9F7/snXUMrqNvWtMvmDb08PUZqxFdyKbjKlhqQgnDvZImZjINXQhVdP+MmNAK
+poRq0Tl9
+-----END CERTIFICATE-----
+
+D-TRUST Root Class 3 CA 2 2009
+==============================
+-----BEGIN CERTIFICATE-----
+MIIEMzCCAxugAwIBAgIDCYPzMA0GCSqGSIb3DQEBCwUAME0xCzAJBgNVBAYTAkRFMRUwEwYDVQQK
+DAxELVRydXN0IEdtYkgxJzAlBgNVBAMMHkQtVFJVU1QgUm9vdCBDbGFzcyAzIENBIDIgMjAwOTAe
+Fw0wOTExMDUwODM1NThaFw0yOTExMDUwODM1NThaME0xCzAJBgNVBAYTAkRFMRUwEwYDVQQKDAxE
+LVRydXN0IEdtYkgxJzAlBgNVBAMMHkQtVFJVU1QgUm9vdCBDbGFzcyAzIENBIDIgMjAwOTCCASIw
+DQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBANOySs96R+91myP6Oi/WUEWJNTrGa9v+2wBoqOAD
+ER03UAifTUpolDWzU9GUY6cgVq/eUXjsKj3zSEhQPgrfRlWLJ23DEE0NkVJD2IfgXU42tSHKXzlA
+BF9bfsyjxiupQB7ZNoTWSPOSHjRGICTBpFGOShrvUD9pXRl/RcPHAY9RySPocq60vFYJfxLLHLGv
+KZAKyVXMD9O0Gu1HNVpK7ZxzBCHQqr0ME7UAyiZsxGsMlFqVlNpQmvH/pStmMaTJOKDfHR+4CS7z
+p+hnUquVH+BGPtikw8paxTGA6Eian5Rp/hnd2HN8gcqW3o7tszIFZYQ05ub9VxC1X3a/L7AQDcUC
+AwEAAaOCARowggEWMA8GA1UdEwEB/wQFMAMBAf8wHQYDVR0OBBYEFP3aFMSfMN4hvR5COfyrYyNJ
+4PGEMA4GA1UdDwEB/wQEAwIBBjCB0wYDVR0fBIHLMIHIMIGAoH6gfIZ6bGRhcDovL2RpcmVjdG9y
+eS5kLXRydXN0Lm5ldC9DTj1ELVRSVVNUJTIwUm9vdCUyMENsYXNzJTIwMyUyMENBJTIwMiUyMDIw
+MDksTz1ELVRydXN0JTIwR21iSCxDPURFP2NlcnRpZmljYXRlcmV2b2NhdGlvbmxpc3QwQ6BBoD+G
+PWh0dHA6Ly93d3cuZC10cnVzdC5uZXQvY3JsL2QtdHJ1c3Rfcm9vdF9jbGFzc18zX2NhXzJfMjAw
+OS5jcmwwDQYJKoZIhvcNAQELBQADggEBAH+X2zDI36ScfSF6gHDOFBJpiBSVYEQBrLLpME+bUMJm
+2H6NMLVwMeniacfzcNsgFYbQDfC+rAF1hM5+n02/t2A7nPPKHeJeaNijnZflQGDSNiH+0LS4F9p0
+o3/U37CYAqxva2ssJSRyoWXuJVrl5jLn8t+rSfrzkGkj2wTZ51xY/GXUl77M/C4KzCUqNQT4YJEV
+dT1B/yMfGchs64JTBKbkTCJNjYy6zltz7GRUUG3RnFX7acM2w4y8PIWmawomDeCTmGCufsYkl4ph
+X5GOZpIJhzbNi5stPvZR1FDUWSi9g/LMKHtThm3YJohw1+qRzT65ysCQblrGXnRl11z+o+I=
+-----END CERTIFICATE-----
+
+D-TRUST Root Class 3 CA 2 EV 2009
+=================================
+-----BEGIN CERTIFICATE-----
+MIIEQzCCAyugAwIBAgIDCYP0MA0GCSqGSIb3DQEBCwUAMFAxCzAJBgNVBAYTAkRFMRUwEwYDVQQK
+DAxELVRydXN0IEdtYkgxKjAoBgNVBAMMIUQtVFJVU1QgUm9vdCBDbGFzcyAzIENBIDIgRVYgMjAw
+OTAeFw0wOTExMDUwODUwNDZaFw0yOTExMDUwODUwNDZaMFAxCzAJBgNVBAYTAkRFMRUwEwYDVQQK
+DAxELVRydXN0IEdtYkgxKjAoBgNVBAMMIUQtVFJVU1QgUm9vdCBDbGFzcyAzIENBIDIgRVYgMjAw
+OTCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAJnxhDRwui+3MKCOvXwEz75ivJn9gpfS
+egpnljgJ9hBOlSJzmY3aFS3nBfwZcyK3jpgAvDw9rKFs+9Z5JUut8Mxk2og+KbgPCdM03TP1YtHh
+zRnp7hhPTFiu4h7WDFsVWtg6uMQYZB7jM7K1iXdODL/ZlGsTl28So/6ZqQTMFexgaDbtCHu39b+T
+7WYxg4zGcTSHThfqr4uRjRxWQa4iN1438h3Z0S0NL2lRp75mpoo6Kr3HGrHhFPC+Oh25z1uxav60
+sUYgovseO3Dvk5h9jHOW8sXvhXCtKSb8HgQ+HKDYD8tSg2J87otTlZCpV6LqYQXY+U3EJ/pure35
+11H3a6UCAwEAAaOCASQwggEgMA8GA1UdEwEB/wQFMAMBAf8wHQYDVR0OBBYEFNOUikxiEyoZLsyv
+cop9NteaHNxnMA4GA1UdDwEB/wQEAwIBBjCB3QYDVR0fBIHVMIHSMIGHoIGEoIGBhn9sZGFwOi8v
+ZGlyZWN0b3J5LmQtdHJ1c3QubmV0L0NOPUQtVFJVU1QlMjBSb290JTIwQ2xhc3MlMjAzJTIwQ0El
+MjAyJTIwRVYlMjAyMDA5LE89RC1UcnVzdCUyMEdtYkgsQz1ERT9jZXJ0aWZpY2F0ZXJldm9jYXRp
+b25saXN0MEagRKBChkBodHRwOi8vd3d3LmQtdHJ1c3QubmV0L2NybC9kLXRydXN0X3Jvb3RfY2xh
+c3NfM19jYV8yX2V2XzIwMDkuY3JsMA0GCSqGSIb3DQEBCwUAA4IBAQA07XtaPKSUiO8aEXUHL7P+
+PPoeUSbrh/Yp3uDx1MYkCenBz1UbtDDZzhr+BlGmFaQt77JLvyAoJUnRpjZ3NOhk31KxEcdzes05
+nsKtjHEh8lprr988TlWvsoRlFIm5d8sqMb7Po23Pb0iUMkZv53GMoKaEGTcH8gNFCSuGdXzfX2lX
+ANtu2KZyIktQ1HWYVt+3GP9DQ1CuekR78HlR10M9p9OB0/DJT7naxpeG0ILD5EJt/rDiZE4OJudA
+NCa1CInXCGNjOCd1HjPqbqjdn5lPdE2BiYBL3ZqXKVwvvoFBuYz/6n1gBp7N1z3TLqMVvKjmJuVv
+w9y4AyHqnxbxLFS1
+-----END CERTIFICATE-----
+
+PSCProcert
+==========
+-----BEGIN CERTIFICATE-----
+MIIJhjCCB26gAwIBAgIBCzANBgkqhkiG9w0BAQsFADCCAR4xPjA8BgNVBAMTNUF1dG9yaWRhZCBk
+ZSBDZXJ0aWZpY2FjaW9uIFJhaXogZGVsIEVzdGFkbyBWZW5lem9sYW5vMQswCQYDVQQGEwJWRTEQ
+MA4GA1UEBxMHQ2FyYWNhczEZMBcGA1UECBMQRGlzdHJpdG8gQ2FwaXRhbDE2MDQGA1UEChMtU2lz
+dGVtYSBOYWNpb25hbCBkZSBDZXJ0aWZpY2FjaW9uIEVsZWN0cm9uaWNhMUMwQQYDVQQLEzpTdXBl
+cmludGVuZGVuY2lhIGRlIFNlcnZpY2lvcyBkZSBDZXJ0aWZpY2FjaW9uIEVsZWN0cm9uaWNhMSUw
+IwYJKoZIhvcNAQkBFhZhY3JhaXpAc3VzY2VydGUuZ29iLnZlMB4XDTEwMTIyODE2NTEwMFoXDTIw
+MTIyNTIzNTk1OVowgdExJjAkBgkqhkiG9w0BCQEWF2NvbnRhY3RvQHByb2NlcnQubmV0LnZlMQ8w
+DQYDVQQHEwZDaGFjYW8xEDAOBgNVBAgTB01pcmFuZGExKjAoBgNVBAsTIVByb3ZlZWRvciBkZSBD
+ZXJ0aWZpY2Fkb3MgUFJPQ0VSVDE2MDQGA1UEChMtU2lzdGVtYSBOYWNpb25hbCBkZSBDZXJ0aWZp
+Y2FjaW9uIEVsZWN0cm9uaWNhMQswCQYDVQQGEwJWRTETMBEGA1UEAxMKUFNDUHJvY2VydDCCAiIw
+DQYJKoZIhvcNAQEBBQADggIPADCCAgoCggIBANW39KOUM6FGqVVhSQ2oh3NekS1wwQYalNo97BVC
+wfWMrmoX8Yqt/ICV6oNEolt6Vc5Pp6XVurgfoCfAUFM+jbnADrgV3NZs+J74BCXfgI8Qhd19L3uA
+3VcAZCP4bsm+lU/hdezgfl6VzbHvvnpC2Mks0+saGiKLt38GieU89RLAu9MLmV+QfI4tL3czkkoh
+RqipCKzx9hEC2ZUWno0vluYC3XXCFCpa1sl9JcLB/KpnheLsvtF8PPqv1W7/U0HU9TI4seJfxPmO
+EO8GqQKJ/+MMbpfg353bIdD0PghpbNjU5Db4g7ayNo+c7zo3Fn2/omnXO1ty0K+qP1xmk6wKImG2
+0qCZyFSTXai20b1dCl53lKItwIKOvMoDKjSuc/HUtQy9vmebVOvh+qBa7Dh+PsHMosdEMXXqP+UH
+0quhJZb25uSgXTcYOWEAM11G1ADEtMo88aKjPvM6/2kwLkDd9p+cJsmWN63nOaK/6mnbVSKVUyqU
+td+tFjiBdWbjxywbk5yqjKPK2Ww8F22c3HxT4CAnQzb5EuE8XL1mv6JpIzi4mWCZDlZTOpx+FIyw
+Bm/xhnaQr/2v/pDGj59/i5IjnOcVdo/Vi5QTcmn7K2FjiO/mpF7moxdqWEfLcU8UC17IAggmosvp
+r2uKGcfLFFb14dq12fy/czja+eevbqQ34gcnAgMBAAGjggMXMIIDEzASBgNVHRMBAf8ECDAGAQH/
+AgEBMDcGA1UdEgQwMC6CD3N1c2NlcnRlLmdvYi52ZaAbBgVghl4CAqASDBBSSUYtRy0yMDAwNDAz
+Ni0wMB0GA1UdDgQWBBRBDxk4qpl/Qguk1yeYVKIXTC1RVDCCAVAGA1UdIwSCAUcwggFDgBStuyId
+xuDSAaj9dlBSk+2YwU2u06GCASakggEiMIIBHjE+MDwGA1UEAxM1QXV0b3JpZGFkIGRlIENlcnRp
+ZmljYWNpb24gUmFpeiBkZWwgRXN0YWRvIFZlbmV6b2xhbm8xCzAJBgNVBAYTAlZFMRAwDgYDVQQH
+EwdDYXJhY2FzMRkwFwYDVQQIExBEaXN0cml0byBDYXBpdGFsMTYwNAYDVQQKEy1TaXN0ZW1hIE5h
+Y2lvbmFsIGRlIENlcnRpZmljYWNpb24gRWxlY3Ryb25pY2ExQzBBBgNVBAsTOlN1cGVyaW50ZW5k
+ZW5jaWEgZGUgU2VydmljaW9zIGRlIENlcnRpZmljYWNpb24gRWxlY3Ryb25pY2ExJTAjBgkqhkiG
+9w0BCQEWFmFjcmFpekBzdXNjZXJ0ZS5nb2IudmWCAQowDgYDVR0PAQH/BAQDAgEGME0GA1UdEQRG
+MESCDnByb2NlcnQubmV0LnZloBUGBWCGXgIBoAwMClBTQy0wMDAwMDKgGwYFYIZeAgKgEgwQUklG
+LUotMzE2MzUzNzMtNzB2BgNVHR8EbzBtMEagRKBChkBodHRwOi8vd3d3LnN1c2NlcnRlLmdvYi52
+ZS9sY3IvQ0VSVElGSUNBRE8tUkFJWi1TSEEzODRDUkxERVIuY3JsMCOgIaAfhh1sZGFwOi8vYWNy
+YWl6LnN1c2NlcnRlLmdvYi52ZTA3BggrBgEFBQcBAQQrMCkwJwYIKwYBBQUHMAGGG2h0dHA6Ly9v
+Y3NwLnN1c2NlcnRlLmdvYi52ZTBBBgNVHSAEOjA4MDYGBmCGXgMBAjAsMCoGCCsGAQUFBwIBFh5o
+dHRwOi8vd3d3LnN1c2NlcnRlLmdvYi52ZS9kcGMwDQYJKoZIhvcNAQELBQADggIBACtZ6yKZu4Sq
+T96QxtGGcSOeSwORR3C7wJJg7ODU523G0+1ng3dS1fLld6c2suNUvtm7CpsR72H0xpkzmfWvADmN
+g7+mvTV+LFwxNG9s2/NkAZiqlCxB3RWGymspThbASfzXg0gTB1GEMVKIu4YXx2sviiCtxQuPcD4q
+uxtxj7mkoP3YldmvWb8lK5jpY5MvYB7Eqvh39YtsL+1+LrVPQA3uvFd359m21D+VJzog1eWuq2w1
+n8GhHVnchIHuTQfiSLaeS5UtQbHh6N5+LwUeaO6/u5BlOsju6rEYNxxik6SgMexxbJHmpHmJWhSn
+FFAFTKQAVzAswbVhltw+HoSvOULP5dAssSS830DD7X9jSr3hTxJkhpXzsOfIt+FTvZLm8wyWuevo
+5pLtp4EJFAv8lXrPj9Y0TzYS3F7RNHXGRoAvlQSMx4bEqCaJqD8Zm4G7UaRKhqsLEQ+xrmNTbSjq
+3TNWOByyrYDT13K9mmyZY+gAu0F2BbdbmRiKw7gSXFbPVgx96OLP7bx0R/vu0xdOIk9W/1DzLuY5
+poLWccret9W6aAjtmcz9opLLabid+Qqkpj5PkygqYWwHJgD/ll9ohri4zspV4KuxPX+Y1zMOWj3Y
+eMLEYC/HYvBhkdI4sPaeVdtAgAUSM84dkpvRabP/v/GSCmE1P93+hvS84Bpxs2Km
+-----END CERTIFICATE-----
+
+China Internet Network Information Center EV Certificates Root
+==============================================================
+-----BEGIN CERTIFICATE-----
+MIID9zCCAt+gAwIBAgIESJ8AATANBgkqhkiG9w0BAQUFADCBijELMAkGA1UEBhMCQ04xMjAwBgNV
+BAoMKUNoaW5hIEludGVybmV0IE5ldHdvcmsgSW5mb3JtYXRpb24gQ2VudGVyMUcwRQYDVQQDDD5D
+aGluYSBJbnRlcm5ldCBOZXR3b3JrIEluZm9ybWF0aW9uIENlbnRlciBFViBDZXJ0aWZpY2F0ZXMg
+Um9vdDAeFw0xMDA4MzEwNzExMjVaFw0zMDA4MzEwNzExMjVaMIGKMQswCQYDVQQGEwJDTjEyMDAG
+A1UECgwpQ2hpbmEgSW50ZXJuZXQgTmV0d29yayBJbmZvcm1hdGlvbiBDZW50ZXIxRzBFBgNVBAMM
+PkNoaW5hIEludGVybmV0IE5ldHdvcmsgSW5mb3JtYXRpb24gQ2VudGVyIEVWIENlcnRpZmljYXRl
+cyBSb290MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAm35z7r07eKpkQ0H1UN+U8i6y
+jUqORlTSIRLIOTJCBumD1Z9S7eVnAztUwYyZmczpwA//DdmEEbK40ctb3B75aDFk4Zv6dOtouSCV
+98YPjUesWgbdYavi7NifFy2cyjw1l1VxzUOFsUcW9SxTgHbP0wBkvUCZ3czY28Sf1hNfQYOL+Q2H
+klY0bBoQCxfVWhyXWIQ8hBouXJE0bhlffxdpxWXvayHG1VA6v2G5BY3vbzQ6sm8UY78WO5upKv23
+KzhmBsUs4qpnHkWnjQRmQvaPK++IIGmPMowUc9orhpFjIpryp9vOiYurXccUwVswah+xt54ugQEC
+7c+WXmPbqOY4twIDAQABo2MwYTAfBgNVHSMEGDAWgBR8cks5x8DbYqVPm6oYNJKiyoOCWTAPBgNV
+HRMBAf8EBTADAQH/MA4GA1UdDwEB/wQEAwIBBjAdBgNVHQ4EFgQUfHJLOcfA22KlT5uqGDSSosqD
+glkwDQYJKoZIhvcNAQEFBQADggEBACrDx0M3j92tpLIM7twUbY8opJhJywyA6vPtI2Z1fcXTIWd5
+0XPFtQO3WKwMVC/GVhMPMdoG52U7HW8228gd+f2ABsqjPWYWqJ1MFn3AlUa1UeTiH9fqBk1jjZaM
+7+czV0I664zBechNdn3e9rG3geCg+aF4RhcaVpjwTj2rHO3sOdwHSPdj/gauwqRcalsyiMXHM4Ws
+ZkJHwlgkmeHlPuV1LI5D1l08eB6olYIpUNHRFrrvwb562bTYzB5MRuF3sTGrvSrIzo9uoV1/A3U0
+5K2JRVRevq4opbs/eHnrc7MKDf2+yfdWrPa37S+bISnHOLaVxATywy39FCqQmbkHzJ8=
+-----END CERTIFICATE-----
+
+Swisscom Root CA 2
+==================
+-----BEGIN CERTIFICATE-----
+MIIF2TCCA8GgAwIBAgIQHp4o6Ejy5e/DfEoeWhhntjANBgkqhkiG9w0BAQsFADBkMQswCQYDVQQG
+EwJjaDERMA8GA1UEChMIU3dpc3Njb20xJTAjBgNVBAsTHERpZ2l0YWwgQ2VydGlmaWNhdGUgU2Vy
+dmljZXMxGzAZBgNVBAMTElN3aXNzY29tIFJvb3QgQ0EgMjAeFw0xMTA2MjQwODM4MTRaFw0zMTA2
+MjUwNzM4MTRaMGQxCzAJBgNVBAYTAmNoMREwDwYDVQQKEwhTd2lzc2NvbTElMCMGA1UECxMcRGln
+aXRhbCBDZXJ0aWZpY2F0ZSBTZXJ2aWNlczEbMBkGA1UEAxMSU3dpc3Njb20gUm9vdCBDQSAyMIIC
+IjANBgkqhkiG9w0BAQEFAAOCAg8AMIICCgKCAgEAlUJOhJ1R5tMJ6HJaI2nbeHCOFvErjw0DzpPM
+LgAIe6szjPTpQOYXTKueuEcUMncy3SgM3hhLX3af+Dk7/E6J2HzFZ++r0rk0X2s682Q2zsKwzxNo
+ysjL67XiPS4h3+os1OD5cJZM/2pYmLcX5BtS5X4HAB1f2uY+lQS3aYg5oUFgJWFLlTloYhyxCwWJ
+wDaCFCE/rtuh/bxvHGCGtlOUSbkrRsVPACu/obvLP+DHVxxX6NZp+MEkUp2IVd3Chy50I9AU/SpH
+Wrumnf2U5NGKpV+GY3aFy6//SSj8gO1MedK75MDvAe5QQQg1I3ArqRa0jG6F6bYRzzHdUyYb3y1a
+SgJA/MTAtukxGggo5WDDH8SQjhBiYEQN7Aq+VRhxLKX0srwVYv8c474d2h5Xszx+zYIdkeNL6yxS
+NLCK/RJOlrDrcH+eOfdmQrGrrFLadkBXeyq96G4DsguAhYidDMfCd7Camlf0uPoTXGiTOmekl9Ab
+mbeGMktg2M7v0Ax/lZ9vh0+Hio5fCHyqW/xavqGRn1V9TrALacywlKinh/LTSlDcX3KwFnUey7QY
+Ypqwpzmqm59m2I2mbJYV4+by+PGDYmy7Velhk6M99bFXi08jsJvllGov34zflVEpYKELKeRcVVi3
+qPyZ7iVNTA6z00yPhOgpD/0QVAKFyPnlw4vP5w8CAwEAAaOBhjCBgzAOBgNVHQ8BAf8EBAMCAYYw
+HQYDVR0hBBYwFDASBgdghXQBUwIBBgdghXQBUwIBMBIGA1UdEwEB/wQIMAYBAf8CAQcwHQYDVR0O
+BBYEFE0mICKJS9PVpAqhb97iEoHF8TwuMB8GA1UdIwQYMBaAFE0mICKJS9PVpAqhb97iEoHF8Twu
+MA0GCSqGSIb3DQEBCwUAA4ICAQAyCrKkG8t9voJXiblqf/P0wS4RfbgZPnm3qKhyN2abGu2sEzsO
+v2LwnN+ee6FTSA5BesogpxcbtnjsQJHzQq0Qw1zv/2BZf82Fo4s9SBwlAjxnffUy6S8w5X2lejjQ
+82YqZh6NM4OKb3xuqFp1mrjX2lhIREeoTPpMSQpKwhI3qEAMw8jh0FcNlzKVxzqfl9NX+Ave5XLz
+o9v/tdhZsnPdTSpxsrpJ9csc1fV5yJmz/MFMdOO0vSk3FQQoHt5FRnDsr7p4DooqzgB53MBfGWcs
+a0vvaGgLQ+OswWIJ76bdZWGgr4RVSJFSHMYlkSrQwSIjYVmvRRGFHQEkNI/Ps/8XciATwoCqISxx
+OQ7Qj1zB09GOInJGTB2Wrk9xseEFKZZZ9LuedT3PDTcNYtsmjGOpI99nBjx8Oto0QuFmtEYE3saW
+mA9LSHokMnWRn6z3aOkquVVlzl1h0ydw2Df+n7mvoC5Wt6NlUe07qxS/TFED6F+KBZvuim6c779o
++sjaC+NCydAXFJy3SuCvkychVSa1ZC+N8f+mQAWFBVzKBxlcCxMoTFh/wqXvRdpg065lYZ1Tg3TC
+rvJcwhbtkj6EPnNgiLx29CzP0H1907he0ZESEOnN3col49XtmS++dYFLJPlFRpTJKSFTnCZFqhMX
+5OfNeOI5wSsSnqaeG8XmDtkx2Q==
+-----END CERTIFICATE-----
+
+Swisscom Root EV CA 2
+=====================
+-----BEGIN CERTIFICATE-----
+MIIF4DCCA8igAwIBAgIRAPL6ZOJ0Y9ON/RAdBB92ylgwDQYJKoZIhvcNAQELBQAwZzELMAkGA1UE
+BhMCY2gxETAPBgNVBAoTCFN3aXNzY29tMSUwIwYDVQQLExxEaWdpdGFsIENlcnRpZmljYXRlIFNl
+cnZpY2VzMR4wHAYDVQQDExVTd2lzc2NvbSBSb290IEVWIENBIDIwHhcNMTEwNjI0MDk0NTA4WhcN
+MzEwNjI1MDg0NTA4WjBnMQswCQYDVQQGEwJjaDERMA8GA1UEChMIU3dpc3Njb20xJTAjBgNVBAsT
+HERpZ2l0YWwgQ2VydGlmaWNhdGUgU2VydmljZXMxHjAcBgNVBAMTFVN3aXNzY29tIFJvb3QgRVYg
+Q0EgMjCCAiIwDQYJKoZIhvcNAQEBBQADggIPADCCAgoCggIBAMT3HS9X6lds93BdY7BxUglgRCgz
+o3pOCvrY6myLURYaVa5UJsTMRQdBTxB5f3HSek4/OE6zAMaVylvNwSqD1ycfMQ4jFrclyxy0uYAy
+Xhqdk/HoPGAsp15XGVhRXrwsVgu42O+LgrQ8uMIkqBPHoCE2G3pXKSinLr9xJZDzRINpUKTk4Rti
+GZQJo/PDvO/0vezbE53PnUgJUmfANykRHvvSEaeFGHR55E+FFOtSN+KxRdjMDUN/rhPSays/p8Li
+qG12W0OfvrSdsyaGOx9/5fLoZigWJdBLlzin5M8J0TbDC77aO0RYjb7xnglrPvMyxyuHxuxenPaH
+Za0zKcQvidm5y8kDnftslFGXEBuGCxobP/YCfnvUxVFkKJ3106yDgYjTdLRZncHrYTNaRdHLOdAG
+alNgHa/2+2m8atwBz735j9m9W8E6X47aD0upm50qKGsaCnw8qyIL5XctcfaCNYGu+HuB5ur+rPQa
+m3Rc6I8k9l2dRsQs0h4rIWqDJ2dVSqTjyDKXZpBy2uPUZC5f46Fq9mDU5zXNysRojddxyNMkM3Ox
+bPlq4SjbX8Y96L5V5jcb7STZDxmPX2MYWFCBUWVv8p9+agTnNCRxunZLWB4ZvRVgRaoMEkABnRDi
+xzgHcgplwLa7JSnaFp6LNYth7eVxV4O1PHGf40+/fh6Bn0GXAgMBAAGjgYYwgYMwDgYDVR0PAQH/
+BAQDAgGGMB0GA1UdIQQWMBQwEgYHYIV0AVMCAgYHYIV0AVMCAjASBgNVHRMBAf8ECDAGAQH/AgED
+MB0GA1UdDgQWBBRF2aWBbj2ITY1x0kbBbkUe88SAnTAfBgNVHSMEGDAWgBRF2aWBbj2ITY1x0kbB
+bkUe88SAnTANBgkqhkiG9w0BAQsFAAOCAgEAlDpzBp9SSzBc1P6xXCX5145v9Ydkn+0UjrgEjihL
+j6p7jjm02Vj2e6E1CqGdivdj5eu9OYLU43otb98TPLr+flaYC/NUn81ETm484T4VvwYmneTwkLbU
+wp4wLh/vx3rEUMfqe9pQy3omywC0Wqu1kx+AiYQElY2NfwmTv9SoqORjbdlk5LgpWgi/UOGED1V7
+XwgiG/W9mR4U9s70WBCCswo9GcG/W6uqmdjyMb3lOGbcWAXH7WMaLgqXfIeTK7KK4/HsGOV1timH
+59yLGn602MnTihdsfSlEvoqq9X46Lmgxk7lq2prg2+kupYTNHAq4Sgj5nPFhJpiTt3tm7JFe3VE/
+23MPrQRYCd0EApUKPtN236YQHoA96M2kZNEzx5LH4k5E4wnJTsJdhw4Snr8PyQUQ3nqjsTzyP6Wq
+J3mtMX0f/fwZacXduT98zca0wjAefm6S139hdlqP65VNvBFuIXxZN5nQBrz5Bm0yFqXZaajh3DyA
+HmBR3NdUIR7KYndP+tiPsys6DXhyyWhBWkdKwqPrGtcKqzwyVcgKEZzfdNbwQBUdyLmPtTbFr/gi
+uMod89a2GQ+fYWVq6nTIfI/DT11lgh/ZDYnadXL77/FHZxOzyNEZiCcmmpl5fx7kLD977vHeTYuW
+l8PVP3wbI+2ksx0WckNLIOFZfsLorSa/ovc=
+-----END CERTIFICATE-----
+
+CA Disig Root R1
+================
+-----BEGIN CERTIFICATE-----
+MIIFaTCCA1GgAwIBAgIJAMMDmu5QkG4oMA0GCSqGSIb3DQEBBQUAMFIxCzAJBgNVBAYTAlNLMRMw
+EQYDVQQHEwpCcmF0aXNsYXZhMRMwEQYDVQQKEwpEaXNpZyBhLnMuMRkwFwYDVQQDExBDQSBEaXNp
+ZyBSb290IFIxMB4XDTEyMDcxOTA5MDY1NloXDTQyMDcxOTA5MDY1NlowUjELMAkGA1UEBhMCU0sx
+EzARBgNVBAcTCkJyYXRpc2xhdmExEzARBgNVBAoTCkRpc2lnIGEucy4xGTAXBgNVBAMTEENBIERp
+c2lnIFJvb3QgUjEwggIiMA0GCSqGSIb3DQEBAQUAA4ICDwAwggIKAoICAQCqw3j33Jijp1pedxiy
+3QRkD2P9m5YJgNXoqqXinCaUOuiZc4yd39ffg/N4T0Dhf9Kn0uXKE5Pn7cZ3Xza1lK/oOI7bm+V8
+u8yN63Vz4STN5qctGS7Y1oprFOsIYgrY3LMATcMjfF9DCCMyEtztDK3AfQ+lekLZWnDZv6fXARz2
+m6uOt0qGeKAeVjGu74IKgEH3G8muqzIm1Cxr7X1r5OJeIgpFy4QxTaz+29FHuvlglzmxZcfe+5nk
+CiKxLU3lSCZpq+Kq8/v8kiky6bM+TR8noc2OuRf7JT7JbvN32g0S9l3HuzYQ1VTW8+DiR0jm3hTa
+YVKvJrT1cU/J19IG32PK/yHoWQbgCNWEFVP3Q+V8xaCJmGtzxmjOZd69fwX3se72V6FglcXM6pM6
+vpmumwKjrckWtc7dXpl4fho5frLABaTAgqWjR56M6ly2vGfb5ipN0gTco65F97yLnByn1tUD3AjL
+LhbKXEAz6GfDLuemROoRRRw1ZS0eRWEkG4IupZ0zXWX4Qfkuy5Q/H6MMMSRE7cderVC6xkGbrPAX
+ZcD4XW9boAo0PO7X6oifmPmvTiT6l7Jkdtqr9O3jw2Dv1fkCyC2fg69naQanMVXVz0tv/wQFx1is
+XxYb5dKj6zHbHzMVTdDypVP1y+E9Tmgt2BLdqvLmTZtJ5cUoobqwWsagtQIDAQABo0IwQDAPBgNV
+HRMBAf8EBTADAQH/MA4GA1UdDwEB/wQEAwIBBjAdBgNVHQ4EFgQUiQq0OJMa5qvum5EY+fU8PjXQ
+04IwDQYJKoZIhvcNAQEFBQADggIBADKL9p1Kyb4U5YysOMo6CdQbzoaz3evUuii+Eq5FLAR0rBNR
+xVgYZk2C2tXck8An4b58n1KeElb21Zyp9HWc+jcSjxyT7Ff+Bw+r1RL3D65hXlaASfX8MPWbTx9B
+LxyE04nH4toCdu0Jz2zBuByDHBb6lM19oMgY0sidbvW9adRtPTXoHqJPYNcHKfyyo6SdbhWSVhlM
+CrDpfNIZTUJG7L399ldb3Zh+pE3McgODWF3vkzpBemOqfDqo9ayk0d2iLbYq/J8BjuIQscTK5Gfb
+VSUZP/3oNn6z4eGBrxEWi1CXYBmCAMBrTXO40RMHPuq2MU/wQppt4hF05ZSsjYSVPCGvxdpHyN85
+YmLLW1AL14FABZyb7bq2ix4Eb5YgOe2kfSnbSM6C3NQCjR0EMVrHS/BsYVLXtFHCgWzN4funodKS
+ds+xDzdYpPJScWc/DIh4gInByLUfkmO+p3qKViwaqKactV2zY9ATIKHrkWzQjX2v3wvkF7mGnjix
+lAxYjOBVqjtjbZqJYLhkKpLGN/R+Q0O3c+gB53+XD9fyexn9GtePyfqFa3qdnom2piiZk4hA9z7N
+UaPK6u95RyG1/jLix8NRb76AdPCkwzryT+lf3xkK8jsTQ6wxpLPn6/wY1gGp8yqPNg7rtLG8t0zJ
+a7+h89n07eLw4+1knj0vllJPgFOL
+-----END CERTIFICATE-----
+
+CA Disig Root R2
+================
+-----BEGIN CERTIFICATE-----
+MIIFaTCCA1GgAwIBAgIJAJK4iNuwisFjMA0GCSqGSIb3DQEBCwUAMFIxCzAJBgNVBAYTAlNLMRMw
+EQYDVQQHEwpCcmF0aXNsYXZhMRMwEQYDVQQKEwpEaXNpZyBhLnMuMRkwFwYDVQQDExBDQSBEaXNp
+ZyBSb290IFIyMB4XDTEyMDcxOTA5MTUzMFoXDTQyMDcxOTA5MTUzMFowUjELMAkGA1UEBhMCU0sx
+EzARBgNVBAcTCkJyYXRpc2xhdmExEzARBgNVBAoTCkRpc2lnIGEucy4xGTAXBgNVBAMTEENBIERp
+c2lnIFJvb3QgUjIwggIiMA0GCSqGSIb3DQEBAQUAA4ICDwAwggIKAoICAQCio8QACdaFXS1tFPbC
+w3OeNcJxVX6B+6tGUODBfEl45qt5WDza/3wcn9iXAng+a0EE6UG9vgMsRfYvZNSrXaNHPWSb6Wia
+xswbP7q+sos0Ai6YVRn8jG+qX9pMzk0DIaPY0jSTVpbLTAwAFjxfGs3Ix2ymrdMxp7zo5eFm1tL7
+A7RBZckQrg4FY8aAamkw/dLukO8NJ9+flXP04SXabBbeQTg06ov80egEFGEtQX6sx3dOy1FU+16S
+GBsEWmjGycT6txOgmLcRK7fWV8x8nhfRyyX+hk4kLlYMeE2eARKmK6cBZW58Yh2EhN/qwGu1pSqV
+g8NTEQxzHQuyRpDRQjrOQG6Vrf/GlK1ul4SOfW+eioANSW1z4nuSHsPzwfPrLgVv2RvPN3YEyLRa
+5Beny912H9AZdugsBbPWnDTYltxhh5EF5EQIM8HauQhl1K6yNg3ruji6DOWbnuuNZt2Zz9aJQfYE
+koopKW1rOhzndX0CcQ7zwOe9yxndnWCywmZgtrEE7snmhrmaZkCo5xHtgUUDi/ZnWejBBhG93c+A
+Ak9lQHhcR1DIm+YfgXvkRKhbhZri3lrVx/k6RGZL5DJUfORsnLMOPReisjQS1n6yqEm70XooQL6i
+Fh/f5DcfEXP7kAplQ6INfPgGAVUzfbANuPT1rqVCV3w2EYx7XsQDnYx5nQIDAQABo0IwQDAPBgNV
+HRMBAf8EBTADAQH/MA4GA1UdDwEB/wQEAwIBBjAdBgNVHQ4EFgQUtZn4r7CU9eMg1gqtzk5WpC5u
+Qu0wDQYJKoZIhvcNAQELBQADggIBACYGXnDnZTPIgm7ZnBc6G3pmsgH2eDtpXi/q/075KMOYKmFM
+tCQSin1tERT3nLXK5ryeJ45MGcipvXrA1zYObYVybqjGom32+nNjf7xueQgcnYqfGopTpti72TVV
+sRHFqQOzVju5hJMiXn7B9hJSi+osZ7z+Nkz1uM/Rs0mSO9MpDpkblvdhuDvEK7Z4bLQjb/D907Je
+dR+Zlais9trhxTF7+9FGs9K8Z7RiVLoJ92Owk6Ka+elSLotgEqv89WBW7xBci8QaQtyDW2QOy7W8
+1k/BfDxujRNt+3vrMNDcTa/F1balTFtxyegxvug4BkihGuLq0t4SOVga/4AOgnXmt8kHbA7v/zjx
+mHHEt38OFdAlab0inSvtBfZGR6ztwPDUO+Ls7pZbkBNOHlY667DvlruWIxG68kOGdGSVyCh13x01
+utI3gzhTODY7z2zp+WsO0PsE6E9312UBeIYMej4hYvF/Y3EMyZ9E26gnonW+boE+18DrG5gPcFw0
+sorMwIUY6256s/daoQe/qUKS82Ail+QUoQebTnbAjn39pCXHR+3/H3OszMOl6W8KjptlwlCFtaOg
+UxLMVYdh84GuEEZhvUQhuMI9dM9+JDX6HAcOmz0iyu8xL4ysEr3vQCj8KWefshNPZiTEUxnpHikV
+7+ZtsH8tZ/3zbBt1RqPlShfppNcL
+-----END CERTIFICATE-----
+
+ACCVRAIZ1
+=========
+-----BEGIN CERTIFICATE-----
+MIIH0zCCBbugAwIBAgIIXsO3pkN/pOAwDQYJKoZIhvcNAQEFBQAwQjESMBAGA1UEAwwJQUNDVlJB
+SVoxMRAwDgYDVQQLDAdQS0lBQ0NWMQ0wCwYDVQQKDARBQ0NWMQswCQYDVQQGEwJFUzAeFw0xMTA1
+MDUwOTM3MzdaFw0zMDEyMzEwOTM3MzdaMEIxEjAQBgNVBAMMCUFDQ1ZSQUlaMTEQMA4GA1UECwwH
+UEtJQUNDVjENMAsGA1UECgwEQUNDVjELMAkGA1UEBhMCRVMwggIiMA0GCSqGSIb3DQEBAQUAA4IC
+DwAwggIKAoICAQCbqau/YUqXry+XZpp0X9DZlv3P4uRm7x8fRzPCRKPfmt4ftVTdFXxpNRFvu8gM
+jmoYHtiP2Ra8EEg2XPBjs5BaXCQ316PWywlxufEBcoSwfdtNgM3802/J+Nq2DoLSRYWoG2ioPej0
+RGy9ocLLA76MPhMAhN9KSMDjIgro6TenGEyxCQ0jVn8ETdkXhBilyNpAlHPrzg5XPAOBOp0KoVdD
+aaxXbXmQeOW1tDvYvEyNKKGno6e6Ak4l0Squ7a4DIrhrIA8wKFSVf+DuzgpmndFALW4ir50awQUZ
+0m/A8p/4e7MCQvtQqR0tkw8jq8bBD5L/0KIV9VMJcRz/RROE5iZe+OCIHAr8Fraocwa48GOEAqDG
+WuzndN9wrqODJerWx5eHk6fGioozl2A3ED6XPm4pFdahD9GILBKfb6qkxkLrQaLjlUPTAYVtjrs7
+8yM2x/474KElB0iryYl0/wiPgL/AlmXz7uxLaL2diMMxs0Dx6M/2OLuc5NF/1OVYm3z61PMOm3WR
+5LpSLhl+0fXNWhn8ugb2+1KoS5kE3fj5tItQo05iifCHJPqDQsGH+tUtKSpacXpkatcnYGMN285J
+9Y0fkIkyF/hzQ7jSWpOGYdbhdQrqeWZ2iE9x6wQl1gpaepPluUsXQA+xtrn13k/c4LOsOxFwYIRK
+Q26ZIMApcQrAZQIDAQABo4ICyzCCAscwfQYIKwYBBQUHAQEEcTBvMEwGCCsGAQUFBzAChkBodHRw
+Oi8vd3d3LmFjY3YuZXMvZmlsZWFkbWluL0FyY2hpdm9zL2NlcnRpZmljYWRvcy9yYWl6YWNjdjEu
+Y3J0MB8GCCsGAQUFBzABhhNodHRwOi8vb2NzcC5hY2N2LmVzMB0GA1UdDgQWBBTSh7Tj3zcnk1X2
+VuqB5TbMjB4/vTAPBgNVHRMBAf8EBTADAQH/MB8GA1UdIwQYMBaAFNKHtOPfNyeTVfZW6oHlNsyM
+Hj+9MIIBcwYDVR0gBIIBajCCAWYwggFiBgRVHSAAMIIBWDCCASIGCCsGAQUFBwICMIIBFB6CARAA
+QQB1AHQAbwByAGkAZABhAGQAIABkAGUAIABDAGUAcgB0AGkAZgBpAGMAYQBjAGkA8wBuACAAUgBh
+AO0AegAgAGQAZQAgAGwAYQAgAEEAQwBDAFYAIAAoAEEAZwBlAG4AYwBpAGEAIABkAGUAIABUAGUA
+YwBuAG8AbABvAGcA7QBhACAAeQAgAEMAZQByAHQAaQBmAGkAYwBhAGMAaQDzAG4AIABFAGwAZQBj
+AHQAcgDzAG4AaQBjAGEALAAgAEMASQBGACAAUQA0ADYAMAAxADEANQA2AEUAKQAuACAAQwBQAFMA
+IABlAG4AIABoAHQAdABwADoALwAvAHcAdwB3AC4AYQBjAGMAdgAuAGUAczAwBggrBgEFBQcCARYk
+aHR0cDovL3d3dy5hY2N2LmVzL2xlZ2lzbGFjaW9uX2MuaHRtMFUGA1UdHwROMEwwSqBIoEaGRGh0
+dHA6Ly93d3cuYWNjdi5lcy9maWxlYWRtaW4vQXJjaGl2b3MvY2VydGlmaWNhZG9zL3JhaXphY2N2
+MV9kZXIuY3JsMA4GA1UdDwEB/wQEAwIBBjAXBgNVHREEEDAOgQxhY2N2QGFjY3YuZXMwDQYJKoZI
+hvcNAQEFBQADggIBAJcxAp/n/UNnSEQU5CmH7UwoZtCPNdpNYbdKl02125DgBS4OxnnQ8pdpD70E
+R9m+27Up2pvZrqmZ1dM8MJP1jaGo/AaNRPTKFpV8M9xii6g3+CfYCS0b78gUJyCpZET/LtZ1qmxN
+YEAZSUNUY9rizLpm5U9EelvZaoErQNV/+QEnWCzI7UiRfD+mAM/EKXMRNt6GGT6d7hmKG9Ww7Y49
+nCrADdg9ZuM8Db3VlFzi4qc1GwQA9j9ajepDvV+JHanBsMyZ4k0ACtrJJ1vnE5Bc5PUzolVt3OAJ
+TS+xJlsndQAJxGJ3KQhfnlmstn6tn1QwIgPBHnFk/vk4CpYY3QIUrCPLBhwepH2NDd4nQeit2hW3
+sCPdK6jT2iWH7ehVRE2I9DZ+hJp4rPcOVkkO1jMl1oRQQmwgEh0q1b688nCBpHBgvgW1m54ERL5h
+I6zppSSMEYCUWqKiuUnSwdzRp+0xESyeGabu4VXhwOrPDYTkF7eifKXeVSUG7szAh1xA2syVP1Xg
+Nce4hL60Xc16gwFy7ofmXx2utYXGJt/mwZrpHgJHnyqobalbz+xFd3+YJ5oyXSrjhO7FmGYvliAd
+3djDJ9ew+f7Zfc3Qn48LFFhRny+Lwzgt3uiP1o2HpPVWQxaZLPSkVrQ0uGE3ycJYgBugl6H8WY3p
+EfbRD0tVNEYqi4Y7
+-----END CERTIFICATE-----
+
+TWCA Global Root CA
+===================
+-----BEGIN CERTIFICATE-----
+MIIFQTCCAymgAwIBAgICDL4wDQYJKoZIhvcNAQELBQAwUTELMAkGA1UEBhMCVFcxEjAQBgNVBAoT
+CVRBSVdBTi1DQTEQMA4GA1UECxMHUm9vdCBDQTEcMBoGA1UEAxMTVFdDQSBHbG9iYWwgUm9vdCBD
+QTAeFw0xMjA2MjcwNjI4MzNaFw0zMDEyMzExNTU5NTlaMFExCzAJBgNVBAYTAlRXMRIwEAYDVQQK
+EwlUQUlXQU4tQ0ExEDAOBgNVBAsTB1Jvb3QgQ0ExHDAaBgNVBAMTE1RXQ0EgR2xvYmFsIFJvb3Qg
+Q0EwggIiMA0GCSqGSIb3DQEBAQUAA4ICDwAwggIKAoICAQCwBdvI64zEbooh745NnHEKH1Jw7W2C
+nJfF10xORUnLQEK1EjRsGcJ0pDFfhQKX7EMzClPSnIyOt7h52yvVavKOZsTuKwEHktSz0ALfUPZV
+r2YOy+BHYC8rMjk1Ujoog/h7FsYYuGLWRyWRzvAZEk2tY/XTP3VfKfChMBwqoJimFb3u/Rk28OKR
+Q4/6ytYQJ0lM793B8YVwm8rqqFpD/G2Gb3PpN0Wp8DbHzIh1HrtsBv+baz4X7GGqcXzGHaL3SekV
+tTzWoWH1EfcFbx39Eb7QMAfCKbAJTibc46KokWofwpFFiFzlmLhxpRUZyXx1EcxwdE8tmx2RRP1W
+KKD+u4ZqyPpcC1jcxkt2yKsi2XMPpfRaAok/T54igu6idFMqPVMnaR1sjjIsZAAmY2E2TqNGtz99
+sy2sbZCilaLOz9qC5wc0GZbpuCGqKX6mOL6OKUohZnkfs8O1CWfe1tQHRvMq2uYiN2DLgbYPoA/p
+yJV/v1WRBXrPPRXAb94JlAGD1zQbzECl8LibZ9WYkTunhHiVJqRaCPgrdLQABDzfuBSO6N+pjWxn
+kjMdwLfS7JLIvgm/LCkFbwJrnu+8vyq8W8BQj0FwcYeyTbcEqYSjMq+u7msXi7Kx/mzhkIyIqJdI
+zshNy/MGz19qCkKxHh53L46g5pIOBvwFItIm4TFRfTLcDwIDAQABoyMwITAOBgNVHQ8BAf8EBAMC
+AQYwDwYDVR0TAQH/BAUwAwEB/zANBgkqhkiG9w0BAQsFAAOCAgEAXzSBdu+WHdXltdkCY4QWwa6g
+cFGn90xHNcgL1yg9iXHZqjNB6hQbbCEAwGxCGX6faVsgQt+i0trEfJdLjbDorMjupWkEmQqSpqsn
+LhpNgb+E1HAerUf+/UqdM+DyucRFCCEK2mlpc3INvjT+lIutwx4116KD7+U4x6WFH6vPNOw/KP4M
+8VeGTslV9xzU2KV9Bnpv1d8Q34FOIWWxtuEXeZVFBs5fzNxGiWNoRI2T9GRwoD2dKAXDOXC4Ynsg
+/eTb6QihuJ49CcdP+yz4k3ZB3lLg4VfSnQO8d57+nile98FRYB/e2guyLXW3Q0iT5/Z5xoRdgFlg
+lPx4mI88k1HtQJAH32RjJMtOcQWh15QaiDLxInQirqWm2BJpTGCjAu4r7NRjkgtevi92a6O2JryP
+A9gK8kxkRr05YuWW6zRjESjMlfGt7+/cgFhI6Uu46mWs6fyAtbXIRfmswZ/ZuepiiI7E8UuDEq3m
+i4TWnsLrgxifarsbJGAzcMzs9zLzXNl5fe+epP7JI8Mk7hWSsT2RTyaGvWZzJBPqpK5jwa19hAM8
+EHiGG3njxPPyBJUgriOCxLM6AGK/5jYk4Ve6xx6QddVfP5VhK8E7zeWzaGHQRiapIVJpLesux+t3
+zqY6tQMzT3bR51xUAV3LePTJDL/PEo4XLSNolOer/qmyKwbQBM0=
+-----END CERTIFICATE-----
+
+TeliaSonera Root CA v1
+======================
+-----BEGIN CERTIFICATE-----
+MIIFODCCAyCgAwIBAgIRAJW+FqD3LkbxezmCcvqLzZYwDQYJKoZIhvcNAQEFBQAwNzEUMBIGA1UE
+CgwLVGVsaWFTb25lcmExHzAdBgNVBAMMFlRlbGlhU29uZXJhIFJvb3QgQ0EgdjEwHhcNMDcxMDE4
+MTIwMDUwWhcNMzIxMDE4MTIwMDUwWjA3MRQwEgYDVQQKDAtUZWxpYVNvbmVyYTEfMB0GA1UEAwwW
+VGVsaWFTb25lcmEgUm9vdCBDQSB2MTCCAiIwDQYJKoZIhvcNAQEBBQADggIPADCCAgoCggIBAMK+
+6yfwIaPzaSZVfp3FVRaRXP3vIb9TgHot0pGMYzHw7CTww6XScnwQbfQ3t+XmfHnqjLWCi65ItqwA
+3GV17CpNX8GH9SBlK4GoRz6JI5UwFpB/6FcHSOcZrr9FZ7E3GwYq/t75rH2D+1665I+XZ75Ljo1k
+B1c4VWk0Nj0TSO9P4tNmHqTPGrdeNjPUtAa9GAH9d4RQAEX1jF3oI7x+/jXh7VB7qTCNGdMJjmhn
+Xb88lxhTuylixcpecsHHltTbLaC0H2kD7OriUPEMPPCs81Mt8Bz17Ww5OXOAFshSsCPN4D7c3TxH
+oLs1iuKYaIu+5b9y7tL6pe0S7fyYGKkmdtwoSxAgHNN/Fnct7W+A90m7UwW7XWjH1Mh1Fj+JWov3
+F0fUTPHSiXk+TT2YqGHeOh7S+F4D4MHJHIzTjU3TlTazN19jY5szFPAtJmtTfImMMsJu7D0hADnJ
+oWjiUIMusDor8zagrC/kb2HCUQk5PotTubtn2txTuXZZNp1D5SDgPTJghSJRt8czu90VL6R4pgd7
+gUY2BIbdeTXHlSw7sKMXNeVzH7RcWe/a6hBle3rQf5+ztCo3O3CLm1u5K7fsslESl1MpWtTwEhDc
+TwK7EpIvYtQ/aUN8Ddb8WHUBiJ1YFkveupD/RwGJBmr2X7KQarMCpgKIv7NHfirZ1fpoeDVNAgMB
+AAGjPzA9MA8GA1UdEwEB/wQFMAMBAf8wCwYDVR0PBAQDAgEGMB0GA1UdDgQWBBTwj1k4ALP1j5qW
+DNXr+nuqF+gTEjANBgkqhkiG9w0BAQUFAAOCAgEAvuRcYk4k9AwI//DTDGjkk0kiP0Qnb7tt3oNm
+zqjMDfz1mgbldxSR651Be5kqhOX//CHBXfDkH1e3damhXwIm/9fH907eT/j3HEbAek9ALCI18Bmx
+0GtnLLCo4MBANzX2hFxc469CeP6nyQ1Q6g2EdvZR74NTxnr/DlZJLo961gzmJ1TjTQpgcmLNkQfW
+pb/ImWvtxBnmq0wROMVvMeJuScg/doAmAyYp4Db29iBT4xdwNBedY2gea+zDTYa4EzAvXUYNR0PV
+G6pZDrlcjQZIrXSHX8f8MVRBE+LHIQ6e4B4N4cB7Q4WQxYpYxmUKeFfyxiMPAdkgS94P+5KFdSpc
+c41teyWRyu5FrgZLAMzTsVlQ2jqIOylDRl6XK1TOU2+NSueW+r9xDkKLfP0ooNBIytrEgUy7onOT
+JsjrDNYmiLbAJM+7vVvrdX3pCI6GMyx5dwlppYn8s3CQh3aP0yK7Qs69cwsgJirQmz1wHiRszYd2
+qReWt88NkvuOGKmYSdGe/mBEciG5Ge3C9THxOUiIkCR1VBatzvT4aRRkOfujuLpwQMcnHL/EVlP6
+Y2XQ8xwOFvVrhlhNGNTkDY6lnVuR3HYkUD/GKvvZt5y11ubQ2egZixVxSK236thZiNSQvxaz2ems
+WWFUyBy6ysHK4bkgTI86k4mloMy/0/Z1pHWWbVY=
+-----END CERTIFICATE-----
+
+E-Tugra Certification Authority
+===============================
+-----BEGIN CERTIFICATE-----
+MIIGSzCCBDOgAwIBAgIIamg+nFGby1MwDQYJKoZIhvcNAQELBQAwgbIxCzAJBgNVBAYTAlRSMQ8w
+DQYDVQQHDAZBbmthcmExQDA+BgNVBAoMN0UtVHXEn3JhIEVCRyBCaWxpxZ9pbSBUZWtub2xvamls
+ZXJpIHZlIEhpem1ldGxlcmkgQS7Fni4xJjAkBgNVBAsMHUUtVHVncmEgU2VydGlmaWthc3lvbiBN
+ZXJrZXppMSgwJgYDVQQDDB9FLVR1Z3JhIENlcnRpZmljYXRpb24gQXV0aG9yaXR5MB4XDTEzMDMw
+NTEyMDk0OFoXDTIzMDMwMzEyMDk0OFowgbIxCzAJBgNVBAYTAlRSMQ8wDQYDVQQHDAZBbmthcmEx
+QDA+BgNVBAoMN0UtVHXEn3JhIEVCRyBCaWxpxZ9pbSBUZWtub2xvamlsZXJpIHZlIEhpem1ldGxl
+cmkgQS7Fni4xJjAkBgNVBAsMHUUtVHVncmEgU2VydGlmaWthc3lvbiBNZXJrZXppMSgwJgYDVQQD
+DB9FLVR1Z3JhIENlcnRpZmljYXRpb24gQXV0aG9yaXR5MIICIjANBgkqhkiG9w0BAQEFAAOCAg8A
+MIICCgKCAgEA4vU/kwVRHoViVF56C/UYB4Oufq9899SKa6VjQzm5S/fDxmSJPZQuVIBSOTkHS0vd
+hQd2h8y/L5VMzH2nPbxHD5hw+IyFHnSOkm0bQNGZDbt1bsipa5rAhDGvykPL6ys06I+XawGb1Q5K
+CKpbknSFQ9OArqGIW66z6l7LFpp3RMih9lRozt6Plyu6W0ACDGQXwLWTzeHxE2bODHnv0ZEoq1+g
+ElIwcxmOj+GMB6LDu0rw6h8VqO4lzKRG+Bsi77MOQ7osJLjFLFzUHPhdZL3Dk14opz8n8Y4e0ypQ
+BaNV2cvnOVPAmJ6MVGKLJrD3fY185MaeZkJVgkfnsliNZvcHfC425lAcP9tDJMW/hkd5s3kc91r0
+E+xs+D/iWR+V7kI+ua2oMoVJl0b+SzGPWsutdEcf6ZG33ygEIqDUD13ieU/qbIWGvaimzuT6w+Gz
+rt48Ue7LE3wBf4QOXVGUnhMMti6lTPk5cDZvlsouDERVxcr6XQKj39ZkjFqzAQqptQpHF//vkUAq
+jqFGOjGY5RH8zLtJVor8udBhmm9lbObDyz51Sf6Pp+KJxWfXnUYTTjF2OySznhFlhqt/7x3U+Lzn
+rFpct1pHXFXOVbQicVtbC/DP3KBhZOqp12gKY6fgDT+gr9Oq0n7vUaDmUStVkhUXU8u3Zg5mTPj5
+dUyQ5xJwx0UCAwEAAaNjMGEwHQYDVR0OBBYEFC7j27JJ0JxUeVz6Jyr+zE7S6E5UMA8GA1UdEwEB
+/wQFMAMBAf8wHwYDVR0jBBgwFoAULuPbsknQnFR5XPonKv7MTtLoTlQwDgYDVR0PAQH/BAQDAgEG
+MA0GCSqGSIb3DQEBCwUAA4ICAQAFNzr0TbdF4kV1JI+2d1LoHNgQk2Xz8lkGpD4eKexd0dCrfOAK
+kEh47U6YA5n+KGCRHTAduGN8qOY1tfrTYXbm1gdLymmasoR6d5NFFxWfJNCYExL/u6Au/U5Mh/jO
+XKqYGwXgAEZKgoClM4so3O0409/lPun++1ndYYRP0lSWE2ETPo+Aab6TR7U1Q9Jauz1c77NCR807
+VRMGsAnb/WP2OogKmW9+4c4bU2pEZiNRCHu8W1Ki/QY3OEBhj0qWuJA3+GbHeJAAFS6LrVE1Uweo
+a2iu+U48BybNCAVwzDk/dr2l02cmAYamU9JgO3xDf1WKvJUawSg5TB9D0pH0clmKuVb8P7Sd2nCc
+dlqMQ1DujjByTd//SffGqWfZbawCEeI6FiWnWAjLb1NBnEg4R2gz0dfHj9R0IdTDBZB6/86WiLEV
+KV0jq9BgoRJP3vQXzTLlyb/IQ639Lo7xr+L0mPoSHyDYwKcMhcWQ9DstliaxLL5Mq+ux0orJ23gT
+Dx4JnW2PAJ8C2sH6H3p6CcRK5ogql5+Ji/03X186zjhZhkuvcQu02PJwT58yE+Owp1fl2tpDy4Q0
+8ijE6m30Ku/Ba3ba+367hTzSU8JNvnHhRdH9I2cNE3X7z2VnIp2usAnRCf8dNL/+I5c30jn6PQ0G
+C7TbO6Orb1wdtn7os4I07QZcJA==
+-----END CERTIFICATE-----
+
+T-TeleSec GlobalRoot Class 2
+============================
+-----BEGIN CERTIFICATE-----
+MIIDwzCCAqugAwIBAgIBATANBgkqhkiG9w0BAQsFADCBgjELMAkGA1UEBhMCREUxKzApBgNVBAoM
+IlQtU3lzdGVtcyBFbnRlcnByaXNlIFNlcnZpY2VzIEdtYkgxHzAdBgNVBAsMFlQtU3lzdGVtcyBU
+cnVzdCBDZW50ZXIxJTAjBgNVBAMMHFQtVGVsZVNlYyBHbG9iYWxSb290IENsYXNzIDIwHhcNMDgx
+MDAxMTA0MDE0WhcNMzMxMDAxMjM1OTU5WjCBgjELMAkGA1UEBhMCREUxKzApBgNVBAoMIlQtU3lz
+dGVtcyBFbnRlcnByaXNlIFNlcnZpY2VzIEdtYkgxHzAdBgNVBAsMFlQtU3lzdGVtcyBUcnVzdCBD
+ZW50ZXIxJTAjBgNVBAMMHFQtVGVsZVNlYyBHbG9iYWxSb290IENsYXNzIDIwggEiMA0GCSqGSIb3
+DQEBAQUAA4IBDwAwggEKAoIBAQCqX9obX+hzkeXaXPSi5kfl82hVYAUdAqSzm1nzHoqvNK38DcLZ
+SBnuaY/JIPwhqgcZ7bBcrGXHX+0CfHt8LRvWurmAwhiCFoT6ZrAIxlQjgeTNuUk/9k9uN0goOA/F
+vudocP05l03Sx5iRUKrERLMjfTlH6VJi1hKTXrcxlkIF+3anHqP1wvzpesVsqXFP6st4vGCvx970
+2cu+fjOlbpSD8DT6IavqjnKgP6TeMFvvhk1qlVtDRKgQFRzlAVfFmPHmBiiRqiDFt1MmUUOyCxGV
+WOHAD3bZwI18gfNycJ5v/hqO2V81xrJvNHy+SE/iWjnX2J14np+GPgNeGYtEotXHAgMBAAGjQjBA
+MA8GA1UdEwEB/wQFMAMBAf8wDgYDVR0PAQH/BAQDAgEGMB0GA1UdDgQWBBS/WSA2AHmgoCJrjNXy
+YdK4LMuCSjANBgkqhkiG9w0BAQsFAAOCAQEAMQOiYQsfdOhyNsZt+U2e+iKo4YFWz827n+qrkRk4
+r6p8FU3ztqONpfSO9kSpp+ghla0+AGIWiPACuvxhI+YzmzB6azZie60EI4RYZeLbK4rnJVM3YlNf
+vNoBYimipidx5joifsFvHZVwIEoHNN/q/xWA5brXethbdXwFeilHfkCoMRN3zUA7tFFHei4R40cR
+3p1m0IvVVGb6g1XqfMIpiRvpb7PO4gWEyS8+eIVibslfwXhjdFjASBgMmTnrpMwatXlajRWc2BQN
+9noHV8cigwUtPJslJj0Ys6lDfMjIq2SPDqO/nBudMNva0Bkuqjzx+zOAduTNrRlPBSeOE6Fuwg==
+-----END CERTIFICATE-----
+
+Atos TrustedRoot 2011
+=====================
+-----BEGIN CERTIFICATE-----
+MIIDdzCCAl+gAwIBAgIIXDPLYixfszIwDQYJKoZIhvcNAQELBQAwPDEeMBwGA1UEAwwVQXRvcyBU
+cnVzdGVkUm9vdCAyMDExMQ0wCwYDVQQKDARBdG9zMQswCQYDVQQGEwJERTAeFw0xMTA3MDcxNDU4
+MzBaFw0zMDEyMzEyMzU5NTlaMDwxHjAcBgNVBAMMFUF0b3MgVHJ1c3RlZFJvb3QgMjAxMTENMAsG
+A1UECgwEQXRvczELMAkGA1UEBhMCREUwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQCV
+hTuXbyo7LjvPpvMpNb7PGKw+qtn4TaA+Gke5vJrf8v7MPkfoepbCJI419KkM/IL9bcFyYie96mvr
+54rMVD6QUM+A1JX76LWC1BTFtqlVJVfbsVD2sGBkWXppzwO3bw2+yj5vdHLqqjAqc2K+SZFhyBH+
+DgMq92og3AIVDV4VavzjgsG1xZ1kCWyjWZgHJ8cblithdHFsQ/H3NYkQ4J7sVaE3IqKHBAUsR320
+HLliKWYoyrfhk/WklAOZuXCFteZI6o1Q/NnezG8HDt0Lcp2AMBYHlT8oDv3FdU9T1nSatCQujgKR
+z3bFmx5VdJx4IbHwLfELn8LVlhgf8FQieowHAgMBAAGjfTB7MB0GA1UdDgQWBBSnpQaxLKYJYO7R
+l+lwrrw7GWzbITAPBgNVHRMBAf8EBTADAQH/MB8GA1UdIwQYMBaAFKelBrEspglg7tGX6XCuvDsZ
+bNshMBgGA1UdIAQRMA8wDQYLKwYBBAGwLQMEAQEwDgYDVR0PAQH/BAQDAgGGMA0GCSqGSIb3DQEB
+CwUAA4IBAQAmdzTblEiGKkGdLD4GkGDEjKwLVLgfuXvTBznk+j57sj1O7Z8jvZfza1zv7v1Apt+h
+k6EKhqzvINB5Ab149xnYJDE0BAGmuhWawyfc2E8PzBhj/5kPDpFrdRbhIfzYJsdHt6bPWHJxfrrh
+TZVHO8mvbaG0weyJ9rQPOLXiZNwlz6bb65pcmaHFCN795trV1lpFDMS3wrUU77QR/w4VtfX128a9
+61qn8FYiqTxlVMYVqL2Gns2Dlmh6cYGJ4Qvh6hEbaAjMaZ7snkGeRDImeuKHCnE96+RapNLbxc3G
+3mB/ufNPRJLvKrcYPqcZ2Qt9sTdBQrC6YB3y/gkRsPCHe6ed
+-----END CERTIFICATE-----
+
+QuoVadis Root CA 1 G3
+=====================
+-----BEGIN CERTIFICATE-----
+MIIFYDCCA0igAwIBAgIUeFhfLq0sGUvjNwc1NBMotZbUZZMwDQYJKoZIhvcNAQELBQAwSDELMAkG
+A1UEBhMCQk0xGTAXBgNVBAoTEFF1b1ZhZGlzIExpbWl0ZWQxHjAcBgNVBAMTFVF1b1ZhZGlzIFJv
+b3QgQ0EgMSBHMzAeFw0xMjAxMTIxNzI3NDRaFw00MjAxMTIxNzI3NDRaMEgxCzAJBgNVBAYTAkJN
+MRkwFwYDVQQKExBRdW9WYWRpcyBMaW1pdGVkMR4wHAYDVQQDExVRdW9WYWRpcyBSb290IENBIDEg
+RzMwggIiMA0GCSqGSIb3DQEBAQUAA4ICDwAwggIKAoICAQCgvlAQjunybEC0BJyFuTHK3C3kEakE
+PBtVwedYMB0ktMPvhd6MLOHBPd+C5k+tR4ds7FtJwUrVu4/sh6x/gpqG7D0DmVIB0jWerNrwU8lm
+PNSsAgHaJNM7qAJGr6Qc4/hzWHa39g6QDbXwz8z6+cZM5cOGMAqNF34168Xfuw6cwI2H44g4hWf6
+Pser4BOcBRiYz5P1sZK0/CPTz9XEJ0ngnjybCKOLXSoh4Pw5qlPafX7PGglTvF0FBM+hSo+LdoIN
+ofjSxxR3W5A2B4GbPgb6Ul5jxaYA/qXpUhtStZI5cgMJYr2wYBZupt0lwgNm3fME0UDiTouG9G/l
+g6AnhF4EwfWQvTA9xO+oabw4m6SkltFi2mnAAZauy8RRNOoMqv8hjlmPSlzkYZqn0ukqeI1RPToV
+7qJZjqlc3sX5kCLliEVx3ZGZbHqfPT2YfF72vhZooF6uCyP8Wg+qInYtyaEQHeTTRCOQiJ/GKubX
+9ZqzWB4vMIkIG1SitZgj7Ah3HJVdYdHLiZxfokqRmu8hqkkWCKi9YSgxyXSthfbZxbGL0eUQMk1f
+iyA6PEkfM4VZDdvLCXVDaXP7a3F98N/ETH3Goy7IlXnLc6KOTk0k+17kBL5yG6YnLUlamXrXXAkg
+t3+UuU/xDRxeiEIbEbfnkduebPRq34wGmAOtzCjvpUfzUwIDAQABo0IwQDAPBgNVHRMBAf8EBTAD
+AQH/MA4GA1UdDwEB/wQEAwIBBjAdBgNVHQ4EFgQUo5fW816iEOGrRZ88F2Q87gFwnMwwDQYJKoZI
+hvcNAQELBQADggIBABj6W3X8PnrHX3fHyt/PX8MSxEBd1DKquGrX1RUVRpgjpeaQWxiZTOOtQqOC
+MTaIzen7xASWSIsBx40Bz1szBpZGZnQdT+3Btrm0DWHMY37XLneMlhwqI2hrhVd2cDMT/uFPpiN3
+GPoajOi9ZcnPP/TJF9zrx7zABC4tRi9pZsMbj/7sPtPKlL92CiUNqXsCHKnQO18LwIE6PWThv6ct
+Tr1NxNgpxiIY0MWscgKCP6o6ojoilzHdCGPDdRS5YCgtW2jgFqlmgiNR9etT2DGbe+m3nUvriBbP
++V04ikkwj+3x6xn0dxoxGE1nVGwvb2X52z3sIexe9PSLymBlVNFxZPT5pqOBMzYzcfCkeF9OrYMh
+3jRJjehZrJ3ydlo28hP0r+AJx2EqbPfgna67hkooby7utHnNkDPDs3b69fBsnQGQ+p6Q9pxyz0fa
+wx/kNSBT8lTR32GDpgLiJTjehTItXnOQUl1CxM49S+H5GYQd1aJQzEH7QRTDvdbJWqNjZgKAvQU6
+O0ec7AAmTPWIUb+oI38YB7AL7YsmoWTTYUrrXJ/es69nA7Mf3W1daWhpq1467HxpvMc7hU6eFbm0
+FU/DlXpY18ls6Wy58yljXrQs8C097Vpl4KlbQMJImYFtnh8GKjwStIsPm6Ik8KaN1nrgS7ZklmOV
+hMJKzRwuJIczYOXD
+-----END CERTIFICATE-----
+
+QuoVadis Root CA 2 G3
+=====================
+-----BEGIN CERTIFICATE-----
+MIIFYDCCA0igAwIBAgIURFc0JFuBiZs18s64KztbpybwdSgwDQYJKoZIhvcNAQELBQAwSDELMAkG
+A1UEBhMCQk0xGTAXBgNVBAoTEFF1b1ZhZGlzIExpbWl0ZWQxHjAcBgNVBAMTFVF1b1ZhZGlzIFJv
+b3QgQ0EgMiBHMzAeFw0xMjAxMTIxODU5MzJaFw00MjAxMTIxODU5MzJaMEgxCzAJBgNVBAYTAkJN
+MRkwFwYDVQQKExBRdW9WYWRpcyBMaW1pdGVkMR4wHAYDVQQDExVRdW9WYWRpcyBSb290IENBIDIg
+RzMwggIiMA0GCSqGSIb3DQEBAQUAA4ICDwAwggIKAoICAQChriWyARjcV4g/Ruv5r+LrI3HimtFh
+ZiFfqq8nUeVuGxbULX1QsFN3vXg6YOJkApt8hpvWGo6t/x8Vf9WVHhLL5hSEBMHfNrMWn4rjyduY
+NM7YMxcoRvynyfDStNVNCXJJ+fKH46nafaF9a7I6JaltUkSs+L5u+9ymc5GQYaYDFCDy54ejiK2t
+oIz/pgslUiXnFgHVy7g1gQyjO/Dh4fxaXc6AcW34Sas+O7q414AB+6XrW7PFXmAqMaCvN+ggOp+o
+MiwMzAkd056OXbxMmO7FGmh77FOm6RQ1o9/NgJ8MSPsc9PG/Srj61YxxSscfrf5BmrODXfKEVu+l
+V0POKa2Mq1W/xPtbAd0jIaFYAI7D0GoT7RPjEiuA3GfmlbLNHiJuKvhB1PLKFAeNilUSxmn1uIZo
+L1NesNKqIcGY5jDjZ1XHm26sGahVpkUG0CM62+tlXSoREfA7T8pt9DTEceT/AFr2XK4jYIVz8eQQ
+sSWu1ZK7E8EM4DnatDlXtas1qnIhO4M15zHfeiFuuDIIfR0ykRVKYnLP43ehvNURG3YBZwjgQQvD
+6xVu+KQZ2aKrr+InUlYrAoosFCT5v0ICvybIxo/gbjh9Uy3l7ZizlWNof/k19N+IxWA1ksB8aRxh
+lRbQ694Lrz4EEEVlWFA4r0jyWbYW8jwNkALGcC4BrTwV1wIDAQABo0IwQDAPBgNVHRMBAf8EBTAD
+AQH/MA4GA1UdDwEB/wQEAwIBBjAdBgNVHQ4EFgQU7edvdlq/YOxJW8ald7tyFnGbxD0wDQYJKoZI
+hvcNAQELBQADggIBAJHfgD9DCX5xwvfrs4iP4VGyvD11+ShdyLyZm3tdquXK4Qr36LLTn91nMX66
+AarHakE7kNQIXLJgapDwyM4DYvmL7ftuKtwGTTwpD4kWilhMSA/ohGHqPHKmd+RCroijQ1h5fq7K
+pVMNqT1wvSAZYaRsOPxDMuHBR//47PERIjKWnML2W2mWeyAMQ0GaW/ZZGYjeVYg3UQt4XAoeo0L9
+x52ID8DyeAIkVJOviYeIyUqAHerQbj5hLja7NQ4nlv1mNDthcnPxFlxHBlRJAHpYErAK74X9sbgz
+dWqTHBLmYF5vHX/JHyPLhGGfHoJE+V+tYlUkmlKY7VHnoX6XOuYvHxHaU4AshZ6rNRDbIl9qxV6X
+U/IyAgkwo1jwDQHVcsaxfGl7w/U2Rcxhbl5MlMVerugOXou/983g7aEOGzPuVBj+D77vfoRrQ+Nw
+mNtddbINWQeFFSM51vHfqSYP1kjHs6Yi9TM3WpVHn3u6GBVv/9YUZINJ0gpnIdsPNWNgKCLjsZWD
+zYWm3S8P52dSbrsvhXz1SnPnxT7AvSESBT/8twNJAlvIJebiVDj1eYeMHVOyToV7BjjHLPj4sHKN
+JeV3UvQDHEimUF+IIDBu8oJDqz2XhOdT+yHBTw8imoa4WSr2Rz0ZiC3oheGe7IUIarFsNMkd7Egr
+O3jtZsSOeWmD3n+M
+-----END CERTIFICATE-----
+
+QuoVadis Root CA 3 G3
+=====================
+-----BEGIN CERTIFICATE-----
+MIIFYDCCA0igAwIBAgIULvWbAiin23r/1aOp7r0DoM8Sah0wDQYJKoZIhvcNAQELBQAwSDELMAkG
+A1UEBhMCQk0xGTAXBgNVBAoTEFF1b1ZhZGlzIExpbWl0ZWQxHjAcBgNVBAMTFVF1b1ZhZGlzIFJv
+b3QgQ0EgMyBHMzAeFw0xMjAxMTIyMDI2MzJaFw00MjAxMTIyMDI2MzJaMEgxCzAJBgNVBAYTAkJN
+MRkwFwYDVQQKExBRdW9WYWRpcyBMaW1pdGVkMR4wHAYDVQQDExVRdW9WYWRpcyBSb290IENBIDMg
+RzMwggIiMA0GCSqGSIb3DQEBAQUAA4ICDwAwggIKAoICAQCzyw4QZ47qFJenMioKVjZ/aEzHs286
+IxSR/xl/pcqs7rN2nXrpixurazHb+gtTTK/FpRp5PIpM/6zfJd5O2YIyC0TeytuMrKNuFoM7pmRL
+Mon7FhY4futD4tN0SsJiCnMK3UmzV9KwCoWdcTzeo8vAMvMBOSBDGzXRU7Ox7sWTaYI+FrUoRqHe
+6okJ7UO4BUaKhvVZR74bbwEhELn9qdIoyhA5CcoTNs+cra1AdHkrAj80//ogaX3T7mH1urPnMNA3
+I4ZyYUUpSFlob3emLoG+B01vr87ERRORFHAGjx+f+IdpsQ7vw4kZ6+ocYfx6bIrc1gMLnia6Et3U
+VDmrJqMz6nWB2i3ND0/kA9HvFZcba5DFApCTZgIhsUfei5pKgLlVj7WiL8DWM2fafsSntARE60f7
+5li59wzweyuxwHApw0BiLTtIadwjPEjrewl5qW3aqDCYz4ByA4imW0aucnl8CAMhZa634RylsSqi
+Md5mBPfAdOhx3v89WcyWJhKLhZVXGqtrdQtEPREoPHtht+KPZ0/l7DxMYIBpVzgeAVuNVejH38DM
+dyM0SXV89pgR6y3e7UEuFAUCf+D+IOs15xGsIs5XPd7JMG0QA4XN8f+MFrXBsj6IbGB/kE+V9/Yt
+rQE5BwT6dYB9v0lQ7e/JxHwc64B+27bQ3RP+ydOc17KXqQIDAQABo0IwQDAPBgNVHRMBAf8EBTAD
+AQH/MA4GA1UdDwEB/wQEAwIBBjAdBgNVHQ4EFgQUxhfQvKjqAkPyGwaZXSuQILnXnOQwDQYJKoZI
+hvcNAQELBQADggIBADRh2Va1EodVTd2jNTFGu6QHcrxfYWLopfsLN7E8trP6KZ1/AvWkyaiTt3px
+KGmPc+FSkNrVvjrlt3ZqVoAh313m6Tqe5T72omnHKgqwGEfcIHB9UqM+WXzBusnIFUBhynLWcKzS
+t/Ac5IYp8M7vaGPQtSCKFWGafoaYtMnCdvvMujAWzKNhxnQT5WvvoxXqA/4Ti2Tk08HS6IT7SdEQ
+TXlm66r99I0xHnAUrdzeZxNMgRVhvLfZkXdxGYFgu/BYpbWcC/ePIlUnwEsBbTuZDdQdm2NnL9Du
+DcpmvJRPpq3t/O5jrFc/ZSXPsoaP0Aj/uHYUbt7lJ+yreLVTubY/6CD50qi+YUbKh4yE8/nxoGib
+Ih6BJpsQBJFxwAYf3KDTuVan45gtf4Od34wrnDKOMpTwATwiKp9Dwi7DmDkHOHv8XgBCH/MyJnmD
+hPbl8MFREsALHgQjDFSlTC9JxUrRtm5gDWv8a4uFJGS3iQ6rJUdbPM9+Sb3H6QrG2vd+DhcI00iX
+0HGS8A85PjRqHH3Y8iKuu2n0M7SmSFXRDw4m6Oy2Cy2nhTXN/VnIn9HNPlopNLk9hM6xZdRZkZFW
+dSHBd575euFgndOtBBj0fOtek49TSiIp+EgrPk2GrFt/ywaZWWDYWGWVjUTR939+J399roD1B0y2
+PpxxVJkES/1Y+Zj0
+-----END CERTIFICATE-----
+
+DigiCert Assured ID Root G2
+===========================
+-----BEGIN CERTIFICATE-----
+MIIDljCCAn6gAwIBAgIQC5McOtY5Z+pnI7/Dr5r0SzANBgkqhkiG9w0BAQsFADBlMQswCQYDVQQG
+EwJVUzEVMBMGA1UEChMMRGlnaUNlcnQgSW5jMRkwFwYDVQQLExB3d3cuZGlnaWNlcnQuY29tMSQw
+IgYDVQQDExtEaWdpQ2VydCBBc3N1cmVkIElEIFJvb3QgRzIwHhcNMTMwODAxMTIwMDAwWhcNMzgw
+MTE1MTIwMDAwWjBlMQswCQYDVQQGEwJVUzEVMBMGA1UEChMMRGlnaUNlcnQgSW5jMRkwFwYDVQQL
+ExB3d3cuZGlnaWNlcnQuY29tMSQwIgYDVQQDExtEaWdpQ2VydCBBc3N1cmVkIElEIFJvb3QgRzIw
+ggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQDZ5ygvUj82ckmIkzTz+GoeMVSAn61UQbVH
+35ao1K+ALbkKz3X9iaV9JPrjIgwrvJUXCzO/GU1BBpAAvQxNEP4HteccbiJVMWWXvdMX0h5i89vq
+bFCMP4QMls+3ywPgym2hFEwbid3tALBSfK+RbLE4E9HpEgjAALAcKxHad3A2m67OeYfcgnDmCXRw
+VWmvo2ifv922ebPynXApVfSr/5Vh88lAbx3RvpO704gqu52/clpWcTs/1PPRCv4o76Pu2ZmvA9OP
+YLfykqGxvYmJHzDNw6YuYjOuFgJ3RFrngQo8p0Quebg/BLxcoIfhG69Rjs3sLPr4/m3wOnyqi+Rn
+lTGNAgMBAAGjQjBAMA8GA1UdEwEB/wQFMAMBAf8wDgYDVR0PAQH/BAQDAgGGMB0GA1UdDgQWBBTO
+w0q5mVXyuNtgv6l+vVa1lzan1jANBgkqhkiG9w0BAQsFAAOCAQEAyqVVjOPIQW5pJ6d1Ee88hjZv
+0p3GeDgdaZaikmkuOGybfQTUiaWxMTeKySHMq2zNixya1r9I0jJmwYrA8y8678Dj1JGG0VDjA9tz
+d29KOVPt3ibHtX2vK0LRdWLjSisCx1BL4GnilmwORGYQRI+tBev4eaymG+g3NJ1TyWGqolKvSnAW
+hsI6yLETcDbYz+70CjTVW0z9B5yiutkBclzzTcHdDrEcDcRjvq30FPuJ7KJBDkzMyFdA0G4Dqs0M
+jomZmWzwPDCvON9vvKO+KSAnq3T/EyJ43pdSVR6DtVQgA+6uwE9W3jfMw3+qBCe703e4YtsXfJwo
+IhNzbM8m9Yop5w==
+-----END CERTIFICATE-----
+
+DigiCert Assured ID Root G3
+===========================
+-----BEGIN CERTIFICATE-----
+MIICRjCCAc2gAwIBAgIQC6Fa+h3foLVJRK/NJKBs7DAKBggqhkjOPQQDAzBlMQswCQYDVQQGEwJV
+UzEVMBMGA1UEChMMRGlnaUNlcnQgSW5jMRkwFwYDVQQLExB3d3cuZGlnaWNlcnQuY29tMSQwIgYD
+VQQDExtEaWdpQ2VydCBBc3N1cmVkIElEIFJvb3QgRzMwHhcNMTMwODAxMTIwMDAwWhcNMzgwMTE1
+MTIwMDAwWjBlMQswCQYDVQQGEwJVUzEVMBMGA1UEChMMRGlnaUNlcnQgSW5jMRkwFwYDVQQLExB3
+d3cuZGlnaWNlcnQuY29tMSQwIgYDVQQDExtEaWdpQ2VydCBBc3N1cmVkIElEIFJvb3QgRzMwdjAQ
+BgcqhkjOPQIBBgUrgQQAIgNiAAQZ57ysRGXtzbg/WPuNsVepRC0FFfLvC/8QdJ+1YlJfZn4f5dwb
+RXkLzMZTCp2NXQLZqVneAlr2lSoOjThKiknGvMYDOAdfVdp+CW7if17QRSAPWXYQ1qAk8C3eNvJs
+KTmjQjBAMA8GA1UdEwEB/wQFMAMBAf8wDgYDVR0PAQH/BAQDAgGGMB0GA1UdDgQWBBTL0L2p4ZgF
+UaFNN6KDec6NHSrkhDAKBggqhkjOPQQDAwNnADBkAjAlpIFFAmsSS3V0T8gj43DydXLefInwz5Fy
+YZ5eEJJZVrmDxxDnOOlYJjZ91eQ0hjkCMHw2U/Aw5WJjOpnitqM7mzT6HtoQknFekROn3aRukswy
+1vUhZscv6pZjamVFkpUBtA==
+-----END CERTIFICATE-----
+
+DigiCert Global Root G2
+=======================
+-----BEGIN CERTIFICATE-----
+MIIDjjCCAnagAwIBAgIQAzrx5qcRqaC7KGSxHQn65TANBgkqhkiG9w0BAQsFADBhMQswCQYDVQQG
+EwJVUzEVMBMGA1UEChMMRGlnaUNlcnQgSW5jMRkwFwYDVQQLExB3d3cuZGlnaWNlcnQuY29tMSAw
+HgYDVQQDExdEaWdpQ2VydCBHbG9iYWwgUm9vdCBHMjAeFw0xMzA4MDExMjAwMDBaFw0zODAxMTUx
+MjAwMDBaMGExCzAJBgNVBAYTAlVTMRUwEwYDVQQKEwxEaWdpQ2VydCBJbmMxGTAXBgNVBAsTEHd3
+dy5kaWdpY2VydC5jb20xIDAeBgNVBAMTF0RpZ2lDZXJ0IEdsb2JhbCBSb290IEcyMIIBIjANBgkq
+hkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAuzfNNNx7a8myaJCtSnX/RrohCgiN9RlUyfuI2/Ou8jqJ
+kTx65qsGGmvPrC3oXgkkRLpimn7Wo6h+4FR1IAWsULecYxpsMNzaHxmx1x7e/dfgy5SDN67sH0NO
+3Xss0r0upS/kqbitOtSZpLYl6ZtrAGCSYP9PIUkY92eQq2EGnI/yuum06ZIya7XzV+hdG82MHauV
+BJVJ8zUtluNJbd134/tJS7SsVQepj5WztCO7TG1F8PapspUwtP1MVYwnSlcUfIKdzXOS0xZKBgyM
+UNGPHgm+F6HmIcr9g+UQvIOlCsRnKPZzFBQ9RnbDhxSJITRNrw9FDKZJobq7nMWxM4MphQIDAQAB
+o0IwQDAPBgNVHRMBAf8EBTADAQH/MA4GA1UdDwEB/wQEAwIBhjAdBgNVHQ4EFgQUTiJUIBiV5uNu
+5g/6+rkS7QYXjzkwDQYJKoZIhvcNAQELBQADggEBAGBnKJRvDkhj6zHd6mcY1Yl9PMWLSn/pvtsr
+F9+wX3N3KjITOYFnQoQj8kVnNeyIv/iPsGEMNKSuIEyExtv4NeF22d+mQrvHRAiGfzZ0JFrabA0U
+WTW98kndth/Jsw1HKj2ZL7tcu7XUIOGZX1NGFdtom/DzMNU+MeKNhJ7jitralj41E6Vf8PlwUHBH
+QRFXGU7Aj64GxJUTFy8bJZ918rGOmaFvE7FBcf6IKshPECBV1/MUReXgRPTqh5Uykw7+U0b6LJ3/
+iyK5S9kJRaTepLiaWN0bfVKfjllDiIGknibVb63dDcY3fe0Dkhvld1927jyNxF1WW6LZZm6zNTfl
+MrY=
+-----END CERTIFICATE-----
+
+DigiCert Global Root G3
+=======================
+-----BEGIN CERTIFICATE-----
+MIICPzCCAcWgAwIBAgIQBVVWvPJepDU1w6QP1atFcjAKBggqhkjOPQQDAzBhMQswCQYDVQQGEwJV
+UzEVMBMGA1UEChMMRGlnaUNlcnQgSW5jMRkwFwYDVQQLExB3d3cuZGlnaWNlcnQuY29tMSAwHgYD
+VQQDExdEaWdpQ2VydCBHbG9iYWwgUm9vdCBHMzAeFw0xMzA4MDExMjAwMDBaFw0zODAxMTUxMjAw
+MDBaMGExCzAJBgNVBAYTAlVTMRUwEwYDVQQKEwxEaWdpQ2VydCBJbmMxGTAXBgNVBAsTEHd3dy5k
+aWdpY2VydC5jb20xIDAeBgNVBAMTF0RpZ2lDZXJ0IEdsb2JhbCBSb290IEczMHYwEAYHKoZIzj0C
+AQYFK4EEACIDYgAE3afZu4q4C/sLfyHS8L6+c/MzXRq8NOrexpu80JX28MzQC7phW1FGfp4tn+6O
+YwwX7Adw9c+ELkCDnOg/QW07rdOkFFk2eJ0DQ+4QE2xy3q6Ip6FrtUPOZ9wj/wMco+I+o0IwQDAP
+BgNVHRMBAf8EBTADAQH/MA4GA1UdDwEB/wQEAwIBhjAdBgNVHQ4EFgQUs9tIpPmhxdiuNkHMEWNp
+Yim8S8YwCgYIKoZIzj0EAwMDaAAwZQIxAK288mw/EkrRLTnDCgmXc/SINoyIJ7vmiI1Qhadj+Z4y
+3maTD/HMsQmP3Wyr+mt/oAIwOWZbwmSNuJ5Q3KjVSaLtx9zRSX8XAbjIho9OjIgrqJqpisXRAL34
+VOKa5Vt8sycX
+-----END CERTIFICATE-----
+
+DigiCert Trusted Root G4
+========================
+-----BEGIN CERTIFICATE-----
+MIIFkDCCA3igAwIBAgIQBZsbV56OITLiOQe9p3d1XDANBgkqhkiG9w0BAQwFADBiMQswCQYDVQQG
+EwJVUzEVMBMGA1UEChMMRGlnaUNlcnQgSW5jMRkwFwYDVQQLExB3d3cuZGlnaWNlcnQuY29tMSEw
+HwYDVQQDExhEaWdpQ2VydCBUcnVzdGVkIFJvb3QgRzQwHhcNMTMwODAxMTIwMDAwWhcNMzgwMTE1
+MTIwMDAwWjBiMQswCQYDVQQGEwJVUzEVMBMGA1UEChMMRGlnaUNlcnQgSW5jMRkwFwYDVQQLExB3
+d3cuZGlnaWNlcnQuY29tMSEwHwYDVQQDExhEaWdpQ2VydCBUcnVzdGVkIFJvb3QgRzQwggIiMA0G
+CSqGSIb3DQEBAQUAA4ICDwAwggIKAoICAQC/5pBzaN675F1KPDAiMGkz7MKnJS7JIT3yithZwuEp
+pz1Yq3aaza57G4QNxDAf8xukOBbrVsaXbR2rsnnyyhHS5F/WBTxSD1Ifxp4VpX6+n6lXFllVcq9o
+k3DCsrp1mWpzMpTREEQQLt+C8weE5nQ7bXHiLQwb7iDVySAdYyktzuxeTsiT+CFhmzTrBcZe7Fsa
+vOvJz82sNEBfsXpm7nfISKhmV1efVFiODCu3T6cw2Vbuyntd463JT17lNecxy9qTXtyOj4DatpGY
+QJB5w3jHtrHEtWoYOAMQjdjUN6QuBX2I9YI+EJFwq1WCQTLX2wRzKm6RAXwhTNS8rhsDdV14Ztk6
+MUSaM0C/CNdaSaTC5qmgZ92kJ7yhTzm1EVgX9yRcRo9k98FpiHaYdj1ZXUJ2h4mXaXpI8OCiEhtm
+mnTK3kse5w5jrubU75KSOp493ADkRSWJtppEGSt+wJS00mFt6zPZxd9LBADMfRyVw4/3IbKyEbe7
+f/LVjHAsQWCqsWMYRJUadmJ+9oCw++hkpjPRiQfhvbfmQ6QYuKZ3AeEPlAwhHbJUKSWJbOUOUlFH
+dL4mrLZBdd56rF+NP8m800ERElvlEFDrMcXKchYiCd98THU/Y+whX8QgUWtvsauGi0/C1kVfnSD8
+oR7FwI+isX4KJpn15GkvmB0t9dmpsh3lGwIDAQABo0IwQDAPBgNVHRMBAf8EBTADAQH/MA4GA1Ud
+DwEB/wQEAwIBhjAdBgNVHQ4EFgQU7NfjgtJxXWRM3y5nP+e6mK4cD08wDQYJKoZIhvcNAQEMBQAD
+ggIBALth2X2pbL4XxJEbw6GiAI3jZGgPVs93rnD5/ZpKmbnJeFwMDF/k5hQpVgs2SV1EY+CtnJYY
+ZhsjDT156W1r1lT40jzBQ0CuHVD1UvyQO7uYmWlrx8GnqGikJ9yd+SeuMIW59mdNOj6PWTkiU0Tr
+yF0Dyu1Qen1iIQqAyHNm0aAFYF/opbSnr6j3bTWcfFqK1qI4mfN4i/RN0iAL3gTujJtHgXINwBQy
+7zBZLq7gcfJW5GqXb5JQbZaNaHqasjYUegbyJLkJEVDXCLG4iXqEI2FCKeWjzaIgQdfRnGTZ6iah
+ixTXTBmyUEFxPT9NcCOGDErcgdLMMpSEDQgJlxxPwO5rIHQw0uA5NBCFIRUBCOhVMt5xSdkoF1BN
+5r5N0XWs0Mr7QbhDparTwwVETyw2m+L64kW4I1NsBm9nVX9GtUw/bihaeSbSpKhil9Ie4u1Ki7wb
+/UdKDd9nZn6yW0HQO+T0O/QEY+nvwlQAUaCKKsnOeMzV6ocEGLPOr0mIr/OSmbaz5mEP0oUA51Aa
+5BuVnRmhuZyxm7EAHu/QD09CbMkKvO5D+jpxpchNJqU1/YldvIViHTLSoCtU7ZpXwdv6EM8Zt4tK
+G48BtieVU+i2iW1bvGjUI+iLUaJW+fCmgKDWHrO8Dw9TdSmq6hN35N6MgSGtBxBHEa2HPQfRdbzP
+82Z+
+-----END CERTIFICATE-----
+
+WoSign
+======
+-----BEGIN CERTIFICATE-----
+MIIFdjCCA16gAwIBAgIQXmjWEXGUY1BWAGjzPsnFkTANBgkqhkiG9w0BAQUFADBVMQswCQYDVQQG
+EwJDTjEaMBgGA1UEChMRV29TaWduIENBIExpbWl0ZWQxKjAoBgNVBAMTIUNlcnRpZmljYXRpb24g
+QXV0aG9yaXR5IG9mIFdvU2lnbjAeFw0wOTA4MDgwMTAwMDFaFw0zOTA4MDgwMTAwMDFaMFUxCzAJ
+BgNVBAYTAkNOMRowGAYDVQQKExFXb1NpZ24gQ0EgTGltaXRlZDEqMCgGA1UEAxMhQ2VydGlmaWNh
+dGlvbiBBdXRob3JpdHkgb2YgV29TaWduMIICIjANBgkqhkiG9w0BAQEFAAOCAg8AMIICCgKCAgEA
+vcqNrLiRFVaXe2tcesLea9mhsMMQI/qnobLMMfo+2aYpbxY94Gv4uEBf2zmoAHqLoE1UfcIiePyO
+CbiohdfMlZdLdNiefvAA5A6JrkkoRBoQmTIPJYhTpA2zDxIIFgsDcSccf+Hb0v1naMQFXQoOXXDX
+2JegvFNBmpGN9J42Znp+VsGQX+axaCA2pIwkLCxHC1l2ZjC1vt7tj/id07sBMOby8w7gLJKA84X5
+KIq0VC6a7fd2/BVoFutKbOsuEo/Uz/4Mx1wdC34FMr5esAkqQtXJTpCzWQ27en7N1QhatH/YHGkR
++ScPewavVIMYe+HdVHpRaG53/Ma/UkpmRqGyZxq7o093oL5d//xWC0Nyd5DKnvnyOfUNqfTq1+ez
+EC8wQjchzDBwyYaYD8xYTYO7feUapTeNtqwylwA6Y3EkHp43xP901DfA4v6IRmAR3Qg/UDaruHqk
+lWJqbrDKaiFaafPz+x1wOZXzp26mgYmhiMU7ccqjUu6Du/2gd/Tkb+dC221KmYo0SLwX3OSACCK2
+8jHAPwQ+658geda4BmRkAjHXqc1S+4RFaQkAKtxVi8QGRkvASh0JWzko/amrzgD5LkhLJuYwTKVY
+yrREgk/nkR4zw7CT/xH8gdLKH3Ep3XZPkiWvHYG3Dy+MwwbMLyejSuQOmbp8HkUff6oZRZb9/D0C
+AwEAAaNCMEAwDgYDVR0PAQH/BAQDAgEGMA8GA1UdEwEB/wQFMAMBAf8wHQYDVR0OBBYEFOFmzw7R
+8bNLtwYgFP6HEtX2/vs+MA0GCSqGSIb3DQEBBQUAA4ICAQCoy3JAsnbBfnv8rWTjMnvMPLZdRtP1
+LOJwXcgu2AZ9mNELIaCJWSQBnfmvCX0KI4I01fx8cpm5o9dU9OpScA7F9dY74ToJMuYhOZO9sxXq
+T2r09Ys/L3yNWC7F4TmgPsc9SnOeQHrAK2GpZ8nzJLmzbVUsWh2eJXLOC62qx1ViC777Y7NhRCOj
+y+EaDveaBk3e1CNOIZZbOVtXHS9dCF4Jef98l7VNg64N1uajeeAz0JmWAjCnPv/So0M/BVoG6kQC
+2nz4SNAzqfkHx5Xh9T71XXG68pWpdIhhWeO/yloTunK0jF02h+mmxTwTv97QRCbut+wucPrXnbes
+5cVAWubXbHssw1abR80LzvobtCHXt2a49CUwi1wNuepnsvRtrtWhnk/Yn+knArAdBtaP4/tIEp9/
+EaEQPkxROpaw0RPxx9gmrjrKkcRpnd8BKWRRb2jaFOwIQZeQjdCygPLPwj2/kWjFgGcexGATVdVh
+mVd8upUPYUk6ynW8yQqTP2cOEvIo4jEbwFcW3wh8GcF+Dx+FHgo2fFt+J7x6v+Db9NpSvd4MVHAx
+kUOVyLzwPt0JfjBkUO1/AaQzZ01oT74V77D2AhGiGxMlOtzCWfHjXEa7ZywCRuoeSKbmW9m1vFGi
+kpbbqsY3Iqb+zCB0oy2pLmvLwIIRIbWTee5Ehr7XHuQe+w==
+-----END CERTIFICATE-----
+
+WoSign China
+============
+-----BEGIN CERTIFICATE-----
+MIIFWDCCA0CgAwIBAgIQUHBrzdgT/BtOOzNy0hFIjTANBgkqhkiG9w0BAQsFADBGMQswCQYDVQQG
+EwJDTjEaMBgGA1UEChMRV29TaWduIENBIExpbWl0ZWQxGzAZBgNVBAMMEkNBIOayg+mAmuagueiv
+geS5pjAeFw0wOTA4MDgwMTAwMDFaFw0zOTA4MDgwMTAwMDFaMEYxCzAJBgNVBAYTAkNOMRowGAYD
+VQQKExFXb1NpZ24gQ0EgTGltaXRlZDEbMBkGA1UEAwwSQ0Eg5rKD6YCa5qC56K+B5LmmMIICIjAN
+BgkqhkiG9w0BAQEFAAOCAg8AMIICCgKCAgEA0EkhHiX8h8EqwqzbdoYGTufQdDTc7WU1/FDWiD+k
+8H/rD195L4mx/bxjWDeTmzj4t1up+thxx7S8gJeNbEvxUNUqKaqoGXqW5pWOdO2XCld19AXbbQs5
+uQF/qvbW2mzmBeCkTVL829B0txGMe41P/4eDrv8FAxNXUDf+jJZSEExfv5RxadmWPgxDT74wwJ85
+dE8GRV2j1lY5aAfMh09Qd5Nx2UQIsYo06Yms25tO4dnkUkWMLhQfkWsZHWgpLFbE4h4TV2TwYeO5
+Ed+w4VegG63XX9Gv2ystP9Bojg/qnw+LNVgbExz03jWhCl3W6t8Sb8D7aQdGctyB9gQjF+BNdeFy
+b7Ao65vh4YOhn0pdr8yb+gIgthhid5E7o9Vlrdx8kHccREGkSovrlXLp9glk3Kgtn3R46MGiCWOc
+76DbT52VqyBPt7D3h1ymoOQ3OMdc4zUPLK2jgKLsLl3Az+2LBcLmc272idX10kaO6m1jGx6KyX2m
++Jzr5dVjhU1zZmkR/sgO9MHHZklTfuQZa/HpelmjbX7FF+Ynxu8b22/8DU0GAbQOXDBGVWCvOGU6
+yke6rCzMRh+yRpY/8+0mBe53oWprfi1tWFxK1I5nuPHa1UaKJ/kR8slC/k7e3x9cxKSGhxYzoacX
+GKUN5AXlK8IrC6KVkLn9YDxOiT7nnO4fuwECAwEAAaNCMEAwDgYDVR0PAQH/BAQDAgEGMA8GA1Ud
+EwEB/wQFMAMBAf8wHQYDVR0OBBYEFOBNv9ybQV0T6GTwp+kVpOGBwboxMA0GCSqGSIb3DQEBCwUA
+A4ICAQBqinA4WbbaixjIvirTthnVZil6Xc1bL3McJk6jfW+rtylNpumlEYOnOXOvEESS5iVdT2H6
+yAa+Tkvv/vMx/sZ8cApBWNromUuWyXi8mHwCKe0JgOYKOoICKuLJL8hWGSbueBwj/feTZU7n85iY
+r83d2Z5AiDEoOqsuC7CsDCT6eiaY8xJhEPRdF/d+4niXVOKM6Cm6jBAyvd0zaziGfjk9DgNyp115
+j0WKWa5bIW4xRtVZjc8VX90xJc/bYNaBRHIpAlf2ltTW/+op2znFuCyKGo3Oy+dCMYYFaA6eFN0A
+kLppRQjbbpCBhqcqBT/mhDn4t/lXX0ykeVoQDF7Va/81XwVRHmyjdanPUIPTfPRm94KNPQx96N97
+qA4bLJyuQHCH2u2nFoJavjVsIE4iYdm8UXrNemHcSxH5/mc0zy4EZmFcV5cjjPOGG0jfKq+nwf/Y
+jj4Du9gqsPoUJbJRa4ZDhS4HIxaAjUz7tGM7zMN07RujHv41D198HRaG9Q7DlfEvr10lO1Hm13ZB
+ONFLAzkopR6RctR9q5czxNM+4Gm2KHmgCY0c0f9BckgG/Jou5yD5m6Leie2uPAmvylezkolwQOQv
+T8Jwg0DXJCxr5wkf09XHwQj02w47HAcLQxGEIYbpgNR12KvxAmLBsX5VYc8T1yaw15zLKYs4SgsO
+kI26oQ==
+-----END CERTIFICATE-----
diff --git a/library/certs/comodo.pem b/library/certs/comodo.pem
new file mode 100644
index 000000000..67de1292c
--- /dev/null
+++ b/library/certs/comodo.pem
@@ -0,0 +1,92 @@
+-----BEGIN CERTIFICATE-----
+MIIGCDCCA/CgAwIBAgIQKy5u6tl1NmwUim7bo3yMBzANBgkqhkiG9w0BAQwFADCB
+hTELMAkGA1UEBhMCR0IxGzAZBgNVBAgTEkdyZWF0ZXIgTWFuY2hlc3RlcjEQMA4G
+A1UEBxMHU2FsZm9yZDEaMBgGA1UEChMRQ09NT0RPIENBIExpbWl0ZWQxKzApBgNV
+BAMTIkNPTU9ETyBSU0EgQ2VydGlmaWNhdGlvbiBBdXRob3JpdHkwHhcNMTQwMjEy
+MDAwMDAwWhcNMjkwMjExMjM1OTU5WjCBkDELMAkGA1UEBhMCR0IxGzAZBgNVBAgT
+EkdyZWF0ZXIgTWFuY2hlc3RlcjEQMA4GA1UEBxMHU2FsZm9yZDEaMBgGA1UEChMR
+Q09NT0RPIENBIExpbWl0ZWQxNjA0BgNVBAMTLUNPTU9ETyBSU0EgRG9tYWluIFZh
+bGlkYXRpb24gU2VjdXJlIFNlcnZlciBDQTCCASIwDQYJKoZIhvcNAQEBBQADggEP
+ADCCAQoCggEBAI7CAhnhoFmk6zg1jSz9AdDTScBkxwtiBUUWOqigwAwCfx3M28Sh
+bXcDow+G+eMGnD4LgYqbSRutA776S9uMIO3Vzl5ljj4Nr0zCsLdFXlIvNN5IJGS0
+Qa4Al/e+Z96e0HqnU4A7fK31llVvl0cKfIWLIpeNs4TgllfQcBhglo/uLQeTnaG6
+ytHNe+nEKpooIZFNb5JPJaXyejXdJtxGpdCsWTWM/06RQ1A/WZMebFEh7lgUq/51
+UHg+TLAchhP6a5i84DuUHoVS3AOTJBhuyydRReZw3iVDpA3hSqXttn7IzW3uLh0n
+c13cRTCAquOyQQuvvUSH2rnlG51/ruWFgqUCAwEAAaOCAWUwggFhMB8GA1UdIwQY
+MBaAFLuvfgI9+qbxPISOre44mOzZMjLUMB0GA1UdDgQWBBSQr2o6lFoL2JDqElZz
+30O0Oija5zAOBgNVHQ8BAf8EBAMCAYYwEgYDVR0TAQH/BAgwBgEB/wIBADAdBgNV
+HSUEFjAUBggrBgEFBQcDAQYIKwYBBQUHAwIwGwYDVR0gBBQwEjAGBgRVHSAAMAgG
+BmeBDAECATBMBgNVHR8ERTBDMEGgP6A9hjtodHRwOi8vY3JsLmNvbW9kb2NhLmNv
+bS9DT01PRE9SU0FDZXJ0aWZpY2F0aW9uQXV0aG9yaXR5LmNybDBxBggrBgEFBQcB
+AQRlMGMwOwYIKwYBBQUHMAKGL2h0dHA6Ly9jcnQuY29tb2RvY2EuY29tL0NPTU9E
+T1JTQUFkZFRydXN0Q0EuY3J0MCQGCCsGAQUFBzABhhhodHRwOi8vb2NzcC5jb21v
+ZG9jYS5jb20wDQYJKoZIhvcNAQEMBQADggIBAE4rdk+SHGI2ibp3wScF9BzWRJ2p
+mj6q1WZmAT7qSeaiNbz69t2Vjpk1mA42GHWx3d1Qcnyu3HeIzg/3kCDKo2cuH1Z/
+e+FE6kKVxF0NAVBGFfKBiVlsit2M8RKhjTpCipj4SzR7JzsItG8kO3KdY3RYPBps
+P0/HEZrIqPW1N+8QRcZs2eBelSaz662jue5/DJpmNXMyYE7l3YphLG5SEXdoltMY
+dVEVABt0iN3hxzgEQyjpFv3ZBdRdRydg1vs4O2xyopT4Qhrf7W8GjEXCBgCq5Ojc
+2bXhc3js9iPc0d1sjhqPpepUfJa3w/5Vjo1JXvxku88+vZbrac2/4EjxYoIQ5QxG
+V/Iz2tDIY+3GH5QFlkoakdH368+PUq4NCNk+qKBR6cGHdNXJ93SrLlP7u3r7l+L4
+HyaPs9Kg4DdbKDsx5Q5XLVq4rXmsXiBmGqW5prU5wfWYQ//u+aen/e7KJD2AFsQX
+j4rBYKEMrltDR5FL1ZoXX/nUh8HCjLfn4g8wGTeGrODcQgPmlKidrv0PJFGUzpII
+0fxQ8ANAe4hZ7Q7drNJ3gjTcBpUC2JD5Leo31Rpg0Gcg19hCC0Wvgmje3WYkN5Ap
+lBlGGSW4gNfL1IYoakRwJiNiqZ+Gb7+6kHDSVneFeO/qJakXzlByjAA6quPbYzSf
++AZxAeKCINT+b72x
+-----END CERTIFICATE-----
+-----BEGIN CERTIFICATE-----
+MIIFdDCCBFygAwIBAgIQJ2buVutJ846r13Ci/ITeIjANBgkqhkiG9w0BAQwFADBv
+MQswCQYDVQQGEwJTRTEUMBIGA1UEChMLQWRkVHJ1c3QgQUIxJjAkBgNVBAsTHUFk
+ZFRydXN0IEV4dGVybmFsIFRUUCBOZXR3b3JrMSIwIAYDVQQDExlBZGRUcnVzdCBF
+eHRlcm5hbCBDQSBSb290MB4XDTAwMDUzMDEwNDgzOFoXDTIwMDUzMDEwNDgzOFow
+gYUxCzAJBgNVBAYTAkdCMRswGQYDVQQIExJHcmVhdGVyIE1hbmNoZXN0ZXIxEDAO
+BgNVBAcTB1NhbGZvcmQxGjAYBgNVBAoTEUNPTU9ETyBDQSBMaW1pdGVkMSswKQYD
+VQQDEyJDT01PRE8gUlNBIENlcnRpZmljYXRpb24gQXV0aG9yaXR5MIICIjANBgkq
+hkiG9w0BAQEFAAOCAg8AMIICCgKCAgEAkehUktIKVrGsDSTdxc9EZ3SZKzejfSNw
+AHG8U9/E+ioSj0t/EFa9n3Byt2F/yUsPF6c947AEYe7/EZfH9IY+Cvo+XPmT5jR6
+2RRr55yzhaCCenavcZDX7P0N+pxs+t+wgvQUfvm+xKYvT3+Zf7X8Z0NyvQwA1onr
+ayzT7Y+YHBSrfuXjbvzYqOSSJNpDa2K4Vf3qwbxstovzDo2a5JtsaZn4eEgwRdWt
+4Q08RWD8MpZRJ7xnw8outmvqRsfHIKCxH2XeSAi6pE6p8oNGN4Tr6MyBSENnTnIq
+m1y9TBsoilwie7SrmNnu4FGDwwlGTm0+mfqVF9p8M1dBPI1R7Qu2XK8sYxrfV8g/
+vOldxJuvRZnio1oktLqpVj3Pb6r/SVi+8Kj/9Lit6Tf7urj0Czr56ENCHonYhMsT
+8dm74YlguIwoVqwUHZwK53Hrzw7dPamWoUi9PPevtQ0iTMARgexWO/bTouJbt7IE
+IlKVgJNp6I5MZfGRAy1wdALqi2cVKWlSArvX31BqVUa/oKMoYX9w0MOiqiwhqkfO
+KJwGRXa/ghgntNWutMtQ5mv0TIZxMOmm3xaG4Nj/QN370EKIf6MzOi5cHkERgWPO
+GHFrK+ymircxXDpqR+DDeVnWIBqv8mqYqnK8V0rSS527EPywTEHl7R09XiidnMy/
+s1Hap0flhFMCAwEAAaOB9DCB8TAfBgNVHSMEGDAWgBStvZh6NLQm9/rEJlTvA73g
+JMtUGjAdBgNVHQ4EFgQUu69+Aj36pvE8hI6t7jiY7NkyMtQwDgYDVR0PAQH/BAQD
+AgGGMA8GA1UdEwEB/wQFMAMBAf8wEQYDVR0gBAowCDAGBgRVHSAAMEQGA1UdHwQ9
+MDswOaA3oDWGM2h0dHA6Ly9jcmwudXNlcnRydXN0LmNvbS9BZGRUcnVzdEV4dGVy
+bmFsQ0FSb290LmNybDA1BggrBgEFBQcBAQQpMCcwJQYIKwYBBQUHMAGGGWh0dHA6
+Ly9vY3NwLnVzZXJ0cnVzdC5jb20wDQYJKoZIhvcNAQEMBQADggEBAGS/g/FfmoXQ
+zbihKVcN6Fr30ek+8nYEbvFScLsePP9NDXRqzIGCJdPDoCpdTPW6i6FtxFQJdcfj
+Jw5dhHk3QBN39bSsHNA7qxcS1u80GH4r6XnTq1dFDK8o+tDb5VCViLvfhVdpfZLY
+Uspzgb8c8+a4bmYRBbMelC1/kZWSWfFMzqORcUx8Rww7Cxn2obFshj5cqsQugsv5
+B5a6SE2Q8pTIqXOi6wZ7I53eovNNVZ96YUWYGGjHXkBrI/V5eu+MtWuLt29G9Hvx
+PUsE2JOAWVrgQSQdso8VYFhH2+9uRv0V9dlfmrPb2LjkQLPNlzmuhbsdjrzch5vR
+pu/xO28QOG8=
+-----END CERTIFICATE-----
+-----BEGIN CERTIFICATE-----
+MIIENjCCAx6gAwIBAgIBATANBgkqhkiG9w0BAQUFADBvMQswCQYDVQQGEwJTRTEU
+MBIGA1UEChMLQWRkVHJ1c3QgQUIxJjAkBgNVBAsTHUFkZFRydXN0IEV4dGVybmFs
+IFRUUCBOZXR3b3JrMSIwIAYDVQQDExlBZGRUcnVzdCBFeHRlcm5hbCBDQSBSb290
+MB4XDTAwMDUzMDEwNDgzOFoXDTIwMDUzMDEwNDgzOFowbzELMAkGA1UEBhMCU0Ux
+FDASBgNVBAoTC0FkZFRydXN0IEFCMSYwJAYDVQQLEx1BZGRUcnVzdCBFeHRlcm5h
+bCBUVFAgTmV0d29yazEiMCAGA1UEAxMZQWRkVHJ1c3QgRXh0ZXJuYWwgQ0EgUm9v
+dDCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBALf3GjPm8gAELTngTlvt
+H7xsD821+iO2zt6bETOXpClMfZOfvUq8k+0DGuOPz+VtUFrWlymUWoCwSXrbLpX9
+uMq/NzgtHj6RQa1wVsfwTz/oMp50ysiQVOnGXw94nZpAPA6sYapeFI+eh6FqUNzX
+mk6vBbOmcZSccbNQYArHE504B4YCqOmoaSYYkKtMsE8jqzpPhNjfzp/haW+710LX
+a0Tkx63ubUFfclpxCDezeWWkWaCUN/cALw3CknLa0Dhy2xSoRcRdKn23tNbE7qzN
+E0S3ySvdQwAl+mG5aWpYIxG3pzOPVnVZ9c0p10a3CitlttNCbxWyuHv77+ldU9U0
+WicCAwEAAaOB3DCB2TAdBgNVHQ4EFgQUrb2YejS0Jvf6xCZU7wO94CTLVBowCwYD
+VR0PBAQDAgEGMA8GA1UdEwEB/wQFMAMBAf8wgZkGA1UdIwSBkTCBjoAUrb2YejS0
+Jvf6xCZU7wO94CTLVBqhc6RxMG8xCzAJBgNVBAYTAlNFMRQwEgYDVQQKEwtBZGRU
+cnVzdCBBQjEmMCQGA1UECxMdQWRkVHJ1c3QgRXh0ZXJuYWwgVFRQIE5ldHdvcmsx
+IjAgBgNVBAMTGUFkZFRydXN0IEV4dGVybmFsIENBIFJvb3SCAQEwDQYJKoZIhvcN
+AQEFBQADggEBALCb4IUlwtYj4g+WBpKdQZic2YR5gdkeWxQHIzZlj7DYd7usQWxH
+YINRsPkyPef89iYTx4AWpb9a/IfPeHmJIZriTAcKhjW88t5RxNKWt9x+Tu5w/Rw5
+6wwCURQtjr0W4MHfRnXnJK3s9EK0hZNwEGe6nQY1ShjTK3rMUUKhemPR5ruhxSvC
+Nr4TDea9Y355e6cJDUCrat2PisP29owaQgVR1EX1n6diIWgVIEM8med8vSTYqZEX
+c4g/VhsxOBi0cQ+azcgOno4uG+GMmIPLHzHxREzGBHNJdmAPx/i9F4BrLunMTA5a
+mnkPIAou1Z5jJh5VkpTYghdae9C8x49OhgQ=
+-----END CERTIFICATE-----
diff --git a/library/datetimepicker/.gitignore b/library/datetimepicker/.gitignore
new file mode 100644
index 000000000..0012f7d23
--- /dev/null
+++ b/library/datetimepicker/.gitignore
@@ -0,0 +1 @@
+index.php \ No newline at end of file
diff --git a/library/datetimepicker/MIT-LICENSE.txt b/library/datetimepicker/MIT-LICENSE.txt
new file mode 100644
index 000000000..2e68e7d6a
--- /dev/null
+++ b/library/datetimepicker/MIT-LICENSE.txt
@@ -0,0 +1,19 @@
+Copyright (c) 2013 http://xdsoft.net
+
+Permission is hereby granted, free of charge, to any person obtaining a copy
+of this software and associated documentation files (the "Software"), to deal
+in the Software without restriction, including without limitation the rights
+to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
+copies of the Software, and to permit persons to whom the Software is
+furnished to do so, subject to the following conditions:
+
+The above copyright notice and this permission notice shall be included in
+all copies or substantial portions of the Software.
+
+THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
+THE SOFTWARE. \ No newline at end of file
diff --git a/library/datetimepicker/README.md b/library/datetimepicker/README.md
new file mode 100644
index 000000000..f0d3f40e3
--- /dev/null
+++ b/library/datetimepicker/README.md
@@ -0,0 +1,20 @@
+datetimepicker
+==============
+[Documentation][doc]
+
+
+jQuery Plugin Date and Time Picker
+
+DateTimePicker
+
+![ScreenShot](https://raw2.github.com/xdan/datetimepicker/master/screen/1.png)
+
+DatePicker
+
+![ScreenShot](https://raw2.github.com/xdan/datetimepicker/master/screen/2.png)
+
+TimePicker
+
+![ScreenShot](https://raw2.github.com/xdan/datetimepicker/master/screen/3.png)
+
+[doc]: http://xdsoft.net/jqplugins/datetimepicker/
diff --git a/library/datetimepicker/jquery.datetimepicker.css b/library/datetimepicker/jquery.datetimepicker.css
new file mode 100644
index 000000000..acf674af7
--- /dev/null
+++ b/library/datetimepicker/jquery.datetimepicker.css
@@ -0,0 +1,418 @@
+.xdsoft_datetimepicker{
+ box-shadow: 0px 5px 15px -5px rgba(0, 0, 0, 0.506);
+ background: #FFFFFF;
+ border-bottom: 1px solid #BBBBBB;
+ border-left: 1px solid #CCCCCC;
+ border-right: 1px solid #CCCCCC;
+ border-top: 1px solid #CCCCCC;
+ color: #333333;
+ font-family: "Helvetica Neue", "Helvetica", "Arial", sans-serif;
+ padding: 8px;
+ padding-left: 0px;
+ padding-top: 2px;
+ position: absolute;
+ z-index: 9999;
+ -moz-box-sizing: border-box;
+ box-sizing: border-box;
+ display:none;
+}
+
+.xdsoft_datetimepicker iframe {
+ position: absolute;
+ left: 0;
+ top: 0;
+ width: 75px;
+ height: 210px;
+ background: transparent;
+ border:none;
+}
+/*For IE8 or lower*/
+.xdsoft_datetimepicker button {
+ border:none !important;
+}
+
+.xdsoft_noselect{
+ -webkit-touch-callout: none;
+ -webkit-user-select: none;
+ -khtml-user-select: none;
+ -moz-user-select: none;
+ -ms-user-select: none;
+ -o-user-select: none;
+ user-select: none;
+}
+.xdsoft_noselect::selection { background: transparent; }
+.xdsoft_noselect::-moz-selection { background: transparent; }
+.xdsoft_datetimepicker.xdsoft_inline{
+ display: inline-block;
+ position: static;
+ box-shadow: none;
+}
+.xdsoft_datetimepicker *{
+ -moz-box-sizing: border-box;
+ box-sizing: border-box;
+ padding:0px;
+ margin:0px;
+}
+.xdsoft_datetimepicker .xdsoft_datepicker, .xdsoft_datetimepicker .xdsoft_timepicker{
+ display:none;
+}
+.xdsoft_datetimepicker .xdsoft_datepicker.active, .xdsoft_datetimepicker .xdsoft_timepicker.active{
+ display:block;
+}
+.xdsoft_datetimepicker .xdsoft_datepicker{
+ width: 224px;
+ float:left;
+ margin-left:8px;
+}
+.xdsoft_datetimepicker.xdsoft_showweeks .xdsoft_datepicker{
+ width: 256px;
+}
+.xdsoft_datetimepicker .xdsoft_timepicker{
+ width: 58px;
+ float:left;
+ text-align:center;
+ margin-left:8px;
+ margin-top:0px;
+}
+.xdsoft_datetimepicker .xdsoft_datepicker.active+.xdsoft_timepicker{
+ margin-top:8px;
+ margin-bottom:3px
+}
+.xdsoft_datetimepicker .xdsoft_mounthpicker{
+ position: relative;
+ text-align: center;
+}
+
+.xdsoft_datetimepicker .xdsoft_label i,
+.xdsoft_datetimepicker .xdsoft_prev,
+.xdsoft_datetimepicker .xdsoft_next,
+.xdsoft_datetimepicker .xdsoft_today_button{
+ background-image: url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAGQAAAAeCAYAAADaW7vzAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAyJpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDUuMy1jMDExIDY2LjE0NTY2MSwgMjAxMi8wMi8wNi0xNDo1NjoyNyAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvIiB4bWxuczp4bXBNTT0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL21tLyIgeG1sbnM6c3RSZWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlwZS9SZXNvdXJjZVJlZiMiIHhtcDpDcmVhdG9yVG9vbD0iQWRvYmUgUGhvdG9zaG9wIENTNiAoV2luZG93cykiIHhtcE1NOkluc3RhbmNlSUQ9InhtcC5paWQ6Q0NBRjI1NjM0M0UwMTFFNDk4NkFGMzJFQkQzQjEwRUIiIHhtcE1NOkRvY3VtZW50SUQ9InhtcC5kaWQ6Q0NBRjI1NjQ0M0UwMTFFNDk4NkFGMzJFQkQzQjEwRUIiPiA8eG1wTU06RGVyaXZlZEZyb20gc3RSZWY6aW5zdGFuY2VJRD0ieG1wLmlpZDpDQ0FGMjU2MTQzRTAxMUU0OTg2QUYzMkVCRDNCMTBFQiIgc3RSZWY6ZG9jdW1lbnRJRD0ieG1wLmRpZDpDQ0FGMjU2MjQzRTAxMUU0OTg2QUYzMkVCRDNCMTBFQiIvPiA8L3JkZjpEZXNjcmlwdGlvbj4gPC9yZGY6UkRGPiA8L3g6eG1wbWV0YT4gPD94cGFja2V0IGVuZD0iciI/PoNEP54AAAIOSURBVHja7Jq9TsMwEMcxrZD4WpBYeKUCe+kTMCACHZh4BFfHO/AAIHZGFhYkBBsSEqxsLCAgXKhbXYOTxh9pfJVP+qutnZ5s/5Lz2Y5I03QhWji2GIcgAokWgfCxNvcOCCGKqiSqhUp0laHOne05vdEyGMfkdxJDVjgwDlEQgYQBgx+ULJaWSXXS6r/ER5FBVR8VfGftTKcITNs+a1XpcFoExREIDF14AVIFxgQUS+h520cdud6wNkC0UBw6BCO/HoCYwBhD8QCkQ/x1mwDyD4plh4D6DDV0TAGyo4HcawLIBBSLDkHeH0Mg2yVP3l4TQMZQDDsEOl/MgHQqhMNuE0D+oBh0CIr8MAKyazBH9WyBuKxDWgbXfjNf32TZ1KWm/Ap1oSk/R53UtQ5xTh3LUlMmT8gt6g51Q9p+SobxgJQ/qmsfZhWywGFSl0yBjCLJCMgXail3b7+rumdVJ2YRss4cN+r6qAHDkPWjPjdJCF4n9RmAD/V9A/Wp4NQassDjwlB6XBiCxcJQWmZZb8THFilfy/lfrTvLghq2TqTHrRMTKNJ0sIhdo15RT+RpyWwFdY96UZ/LdQKBGjcXpcc1AlSFEfLmouD+1knuxBDUVrvOBmoOC/rEcN7OQxKVeJTCiAdUzUJhA2Oez9QTkp72OTVcxDcXY8iKNkxGAJXmJCOQwOa6dhyXsOa6XwEGAKdeb5ET3rQdAAAAAElFTkSuQmCC);
+}
+
+.xdsoft_datetimepicker .xdsoft_label i{
+ opacity:0.5;
+ background-position:-92px -19px;
+ display: inline-block;
+ width: 9px;
+ height: 20px;
+ vertical-align: middle;
+}
+
+.xdsoft_datetimepicker .xdsoft_prev{
+ float: left;
+ background-position:-20px 0px;
+}
+.xdsoft_datetimepicker .xdsoft_today_button{
+ float: left;
+ background-position:-70px 0px;
+ margin-left:5px;
+}
+
+.xdsoft_datetimepicker .xdsoft_next{
+ float: right;
+ background-position:0px 0px;
+}
+
+.xdsoft_datetimepicker .xdsoft_next,
+.xdsoft_datetimepicker .xdsoft_prev ,
+.xdsoft_datetimepicker .xdsoft_today_button{
+ background-color: transparent;
+ background-repeat: no-repeat;
+ border: 0px none currentColor;
+ cursor: pointer;
+ display: block;
+ height: 30px;
+ opacity: 0.5;
+ -ms-filter: "progid:DXImageTransform.Microsoft.Alpha(Opacity=50)";
+ outline: medium none currentColor;
+ overflow: hidden;
+ padding: 0px;
+ position: relative;
+ text-indent: 100%;
+ white-space: nowrap;
+ width: 20px;
+}
+.xdsoft_datetimepicker .xdsoft_timepicker .xdsoft_prev,
+.xdsoft_datetimepicker .xdsoft_timepicker .xdsoft_next{
+ float:none;
+ background-position:-40px -15px;
+ height: 15px;
+ width: 30px;
+ display: block;
+ margin-left:14px;
+ margin-top:7px;
+}
+.xdsoft_datetimepicker .xdsoft_timepicker .xdsoft_prev{
+ background-position:-40px 0px;
+ margin-bottom:7px;
+ margin-top:0px;
+}
+.xdsoft_datetimepicker .xdsoft_timepicker .xdsoft_time_box{
+ height:151px;
+ overflow:hidden;
+ border-bottom:1px solid #DDDDDD;
+}
+.xdsoft_datetimepicker .xdsoft_timepicker .xdsoft_time_box >div >div{
+ background: #F5F5F5;
+ border-top:1px solid #DDDDDD;
+ color: #666666;
+ font-size: 12px;
+ text-align: center;
+ border-collapse:collapse;
+ cursor:pointer;
+ border-bottom-width:0px;
+ height:25px;
+ line-height:25px;
+}
+
+.xdsoft_datetimepicker .xdsoft_timepicker .xdsoft_time_box >div > div:first-child{
+ border-top-width:0px;
+}
+.xdsoft_datetimepicker .xdsoft_today_button:hover,
+.xdsoft_datetimepicker .xdsoft_next:hover,
+.xdsoft_datetimepicker .xdsoft_prev:hover {
+ opacity: 1;
+ -ms-filter: "progid:DXImageTransform.Microsoft.Alpha(Opacity=100)";
+}
+.xdsoft_datetimepicker .xdsoft_label{
+ display: inline;
+ position: relative;
+ z-index: 9999;
+ margin: 0;
+ padding: 5px 3px;
+ font-size: 14px;
+ line-height: 20px;
+ font-weight: bold;
+ background-color: #fff;
+ float:left;
+ width:182px;
+ text-align:center;
+ cursor:pointer;
+}
+.xdsoft_datetimepicker .xdsoft_label:hover>span{
+ text-decoration:underline;
+}
+.xdsoft_datetimepicker .xdsoft_label:hover i{
+ opacity:1.0;
+}
+.xdsoft_datetimepicker .xdsoft_label > .xdsoft_select{
+ border:1px solid #ccc;
+ position:absolute;
+ right:0px;
+ top:30px;
+ z-index:101;
+ display:none;
+ background:#fff;
+ max-height:160px;
+ overflow-y:hidden;
+}
+.xdsoft_datetimepicker .xdsoft_label > .xdsoft_select.xdsoft_monthselect{right:-7px;}
+.xdsoft_datetimepicker .xdsoft_label > .xdsoft_select.xdsoft_yearselect{right:2px;}
+.xdsoft_datetimepicker .xdsoft_label > .xdsoft_select > div > .xdsoft_option:hover{
+ color: #fff;
+ background: #ff8000;
+}
+.xdsoft_datetimepicker .xdsoft_label > .xdsoft_select > div > .xdsoft_option{
+ padding:2px 10px 2px 5px;
+ text-decoration:none !important;
+}
+.xdsoft_datetimepicker .xdsoft_label > .xdsoft_select > div > .xdsoft_option.xdsoft_current{
+ background: #33AAFF;
+ box-shadow: #178FE5 0px 1px 3px 0px inset;
+ color:#fff;
+ font-weight: 700;
+}
+.xdsoft_datetimepicker .xdsoft_month{
+ width:100px;
+ text-align:right;
+}
+.xdsoft_datetimepicker .xdsoft_calendar{
+ clear:both;
+}
+.xdsoft_datetimepicker .xdsoft_year{
+ width: 48px;
+ margin-left: 5px;
+}
+.xdsoft_datetimepicker .xdsoft_calendar table{
+ border-collapse:collapse;
+ width:100%;
+
+}
+.xdsoft_datetimepicker .xdsoft_calendar td > div{
+ padding-right:5px;
+}
+.xdsoft_datetimepicker .xdsoft_calendar th{
+ height: 25px;
+}
+.xdsoft_datetimepicker .xdsoft_calendar td,.xdsoft_datetimepicker .xdsoft_calendar th{
+ width:14.2857142%;
+ background: #F5F5F5;
+ border:1px solid #DDDDDD;
+ color: #666666;
+ font-size: 12px;
+ text-align: right;
+ vertical-align: middle;
+ padding:0px;
+ border-collapse:collapse;
+ cursor:pointer;
+ height: 25px;
+}
+.xdsoft_datetimepicker.xdsoft_showweeks .xdsoft_calendar td,.xdsoft_datetimepicker.xdsoft_showweeks .xdsoft_calendar th{
+ width:12.5%;
+}
+.xdsoft_datetimepicker .xdsoft_calendar th{
+ background: #F1F1F1;
+}
+.xdsoft_datetimepicker .xdsoft_calendar td.xdsoft_today{
+ color:#33AAFF;
+}
+.xdsoft_datetimepicker .xdsoft_calendar td.xdsoft_default,
+.xdsoft_datetimepicker .xdsoft_calendar td.xdsoft_current,
+.xdsoft_datetimepicker .xdsoft_timepicker .xdsoft_time_box >div >div.xdsoft_current{
+ background: #33AAFF;
+ box-shadow: #178FE5 0px 1px 3px 0px inset;
+ color:#fff;
+ font-weight: 700;
+}
+.xdsoft_datetimepicker .xdsoft_calendar td.xdsoft_other_month,
+.xdsoft_datetimepicker .xdsoft_calendar td.xdsoft_disabled,
+.xdsoft_datetimepicker .xdsoft_time_box >div >div.xdsoft_disabled{
+ opacity:0.5;
+ -ms-filter: "progid:DXImageTransform.Microsoft.Alpha(Opacity=50)";
+}
+.xdsoft_datetimepicker .xdsoft_calendar td.xdsoft_other_month.xdsoft_disabled{
+ opacity:0.2;
+ -ms-filter: "progid:DXImageTransform.Microsoft.Alpha(Opacity=20)";
+}
+.xdsoft_datetimepicker .xdsoft_calendar td:hover,
+.xdsoft_datetimepicker .xdsoft_timepicker .xdsoft_time_box >div >div:hover{
+ color: #fff !important;
+ background: #ff8000 !important;
+ box-shadow: none !important;
+}
+.xdsoft_datetimepicker .xdsoft_calendar td.xdsoft_disabled:hover,
+.xdsoft_datetimepicker .xdsoft_timepicker .xdsoft_time_box >div >div.xdsoft_disabled:hover{
+ color: inherit !important;
+ background: inherit !important;
+ box-shadow: inherit !important;
+}
+.xdsoft_datetimepicker .xdsoft_calendar th{
+ font-weight: 700;
+ text-align: center;
+ color: #999;
+ cursor:default;
+}
+.xdsoft_datetimepicker .xdsoft_copyright{ color:#ccc !important; font-size:10px;clear:both;float:none;margin-left:8px;}
+.xdsoft_datetimepicker .xdsoft_copyright a{ color:#eee !important;}
+.xdsoft_datetimepicker .xdsoft_copyright a:hover{ color:#aaa !important;}
+
+
+.xdsoft_time_box{
+ position:relative;
+ border:1px solid #ccc;
+}
+.xdsoft_scrollbar >.xdsoft_scroller{
+ background:#ccc !important;
+ height:20px;
+ border-radius:3px;
+}
+.xdsoft_scrollbar{
+ position:absolute;
+ width:7px;
+ right:0px;
+ top:0px;
+ bottom:0px;
+ cursor:pointer;
+}
+.xdsoft_scroller_box{
+position:relative;
+}
+
+
+.xdsoft_datetimepicker.xdsoft_dark{
+ box-shadow: 0px 5px 15px -5px rgba(255, 255, 255, 0.506);
+ background: #000000;
+ border-bottom: 1px solid #444444;
+ border-left: 1px solid #333333;
+ border-right: 1px solid #333333;
+ border-top: 1px solid #333333;
+ color: #cccccc;
+}
+
+.xdsoft_datetimepicker.xdsoft_dark .xdsoft_timepicker .xdsoft_time_box{
+ border-bottom:1px solid #222222;
+}
+.xdsoft_datetimepicker.xdsoft_dark .xdsoft_timepicker .xdsoft_time_box >div >div{
+ background: #0a0a0a;
+ border-top:1px solid #222222;
+ color: #999999;
+}
+
+.xdsoft_datetimepicker.xdsoft_dark .xdsoft_label{
+ background-color: #000;
+}
+.xdsoft_datetimepicker.xdsoft_dark .xdsoft_label > .xdsoft_select{
+ border:1px solid #333;
+ background:#000;
+}
+
+.xdsoft_datetimepicker.xdsoft_dark .xdsoft_label > .xdsoft_select > div > .xdsoft_option:hover{
+ color: #000;
+ background: #007fff;
+}
+
+.xdsoft_datetimepicker.xdsoft_dark .xdsoft_label > .xdsoft_select > div > .xdsoft_option.xdsoft_current{
+ background: #cc5500;
+ box-shadow: #b03e00 0px 1px 3px 0px inset;
+ color:#000;
+}
+
+.xdsoft_datetimepicker.xdsoft_dark .xdsoft_label i,
+.xdsoft_datetimepicker.xdsoft_dark .xdsoft_prev,
+.xdsoft_datetimepicker.xdsoft_dark .xdsoft_next,
+.xdsoft_datetimepicker.xdsoft_dark .xdsoft_today_button{
+ background-image: url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAGQAAAAeCAYAAADaW7vzAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAyJpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDUuMy1jMDExIDY2LjE0NTY2MSwgMjAxMi8wMi8wNi0xNDo1NjoyNyAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvIiB4bWxuczp4bXBNTT0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL21tLyIgeG1sbnM6c3RSZWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlwZS9SZXNvdXJjZVJlZiMiIHhtcDpDcmVhdG9yVG9vbD0iQWRvYmUgUGhvdG9zaG9wIENTNiAoV2luZG93cykiIHhtcE1NOkluc3RhbmNlSUQ9InhtcC5paWQ6QUExQUUzOTA0M0UyMTFFNDlBM0FFQTJENTExRDVBODYiIHhtcE1NOkRvY3VtZW50SUQ9InhtcC5kaWQ6QUExQUUzOTE0M0UyMTFFNDlBM0FFQTJENTExRDVBODYiPiA8eG1wTU06RGVyaXZlZEZyb20gc3RSZWY6aW5zdGFuY2VJRD0ieG1wLmlpZDpBQTFBRTM4RTQzRTIxMUU0OUEzQUVBMkQ1MTFENUE4NiIgc3RSZWY6ZG9jdW1lbnRJRD0ieG1wLmRpZDpBQTFBRTM4RjQzRTIxMUU0OUEzQUVBMkQ1MTFENUE4NiIvPiA8L3JkZjpEZXNjcmlwdGlvbj4gPC9yZGY6UkRGPiA8L3g6eG1wbWV0YT4gPD94cGFja2V0IGVuZD0iciI/Pp0VxGEAAAIASURBVHja7JrNSgMxEMebtgh+3MSLr1T1Xn2CHoSKB08+QmR8Bx9A8e7RixdB9CKCoNdexIugxFlJa7rNZneTbLIpM/CnNLsdMvNjM8l0mRCiQ9Ye61IKCAgZAUnH+mU3MMZaHYChBnJUDzWOFZdVfc5+ZFLbrWDeXPwbxIqrLLfaeS0hEBVGIRQCEiZoHQwtlGSByCCdYBl8g8egTTAWoKQMRBRBcZxYlhzhKegqMOageErsCHVkk3hXIFooDgHB1KkHIHVgzKB4ADJQ/A1jAFmAYhkQqA5TOBtocrKrgXwQA8gcFIuAIO8sQSA7hidvPwaQGZSaAYHOUWJABhWWw2EMIH9QagQERU4SArJXo0ZZL18uvaxejXt/Em8xjVBXmvFr1KVm/AJ10tRe2XnraNqaJvKE3KHuUbfK1E+VHB0q40/y3sdQSxY4FHWeKJCunP8UyDdqJZenT3ntVV5jIYCAh20vT7ioP8tpf6E2lfEMwERe+whV1MHjwZB7PBiCxcGQWwKZKD62lfGNnP/1poFAA60T7rF1UgcKd2id3KDeUS+oLWV8DfWAepOfq00CgQabi9zjcgJVYVD7PVzQUAUGAQkbNJTBICDhgwYTjDYD6XeW08ZKh+A4pYkzenOxXUbvZcWz7E8ykRMnIHGX1XPl+1m2vPYpL+2qdb8CDAARlKFEz/ZVkAAAAABJRU5ErkJggg==);
+}
+
+.xdsoft_datetimepicker.xdsoft_dark .xdsoft_calendar td,
+.xdsoft_datetimepicker.xdsoft_dark .xdsoft_calendar th{
+ background: #0a0a0a;
+ border:1px solid #222222;
+ color: #999999;
+}
+
+.xdsoft_datetimepicker.xdsoft_dark .xdsoft_calendar th{
+ background: #0e0e0e;
+}
+.xdsoft_datetimepicker.xdsoft_dark .xdsoft_calendar td.xdsoft_today{
+ color:#cc5500;
+}
+.xdsoft_datetimepicker.xdsoft_dark .xdsoft_calendar td.xdsoft_default,
+.xdsoft_datetimepicker.xdsoft_dark .xdsoft_calendar td.xdsoft_current,
+.xdsoft_datetimepicker.xdsoft_dark .xdsoft_timepicker .xdsoft_time_box >div >div.xdsoft_current{
+ background: #cc5500;
+ box-shadow: #b03e00 0px 1px 3px 0px inset;
+ color:#000;
+}
+
+.xdsoft_datetimepicker.xdsoft_dark .xdsoft_calendar td:hover,
+.xdsoft_datetimepicker.xdsoft_dark .xdsoft_timepicker .xdsoft_time_box >div >div:hover{
+ color: #000 !important;
+ background: #007fff !important;
+}
+
+.xdsoft_datetimepicker.xdsoft_dark .xdsoft_calendar th{
+ color: #666;
+}
+.xdsoft_datetimepicker.xdsoft_dark .xdsoft_copyright{ color:#333 !important;}
+.xdsoft_datetimepicker.xdsoft_dark .xdsoft_copyright a{ color:#111 !important;}
+.xdsoft_datetimepicker.xdsoft_dark .xdsoft_copyright a:hover{ color:#555 !important;}
+
+
+.xdsoft_dark .xdsoft_time_box{
+ border:1px solid #333;
+}
+.xdsoft_dark .xdsoft_scrollbar >.xdsoft_scroller{
+ background:#333 !important;
+}
diff --git a/library/datetimepicker/jquery.datetimepicker.js b/library/datetimepicker/jquery.datetimepicker.js
new file mode 100644
index 000000000..d4e93dd13
--- /dev/null
+++ b/library/datetimepicker/jquery.datetimepicker.js
@@ -0,0 +1,1661 @@
+/**
+ * @preserve jQuery DateTimePicker plugin v2.4.0
+ * @homepage http://xdsoft.net/jqplugins/datetimepicker/
+ * (c) 2014, Chupurnov Valeriy.
+ */
+/*global document,window,jQuery,setTimeout,clearTimeout*/
+(function ($) {
+ 'use strict';
+ var default_options = {
+ i18n: {
+ ar: { // Arabic
+ months: [
+ "كانون الثاني", "شباط", "آذار", "نيسان", "مايو", "حزيران", "تموز", "آب", "أيلول", "تشرين الأول", "تشرين الثاني", "كانون الأول"
+ ],
+ dayOfWeek: [
+ "ن", "ث", "ع", "خ", "ج", "س", "ح"
+ ]
+ },
+ ro: { // Romanian
+ months: [
+ "ianuarie", "februarie", "martie", "aprilie", "mai", "iunie", "iulie", "august", "septembrie", "octombrie", "noiembrie", "decembrie"
+ ],
+ dayOfWeek: [
+ "l", "ma", "mi", "j", "v", "s", "d"
+ ]
+ },
+ id: { // Indonesian
+ months: [
+ "Januari", "Februari", "Maret", "April", "Mei", "Juni", "Juli", "Agustus", "September", "Oktober", "November", "Desember"
+ ],
+ dayOfWeek: [
+ "Sen", "Sel", "Rab", "Kam", "Jum", "Sab", "Min"
+ ]
+ },
+ bg: { // Bulgarian
+ months: [
+ "Януари", "Февруари", "Март", "Ðприл", "Май", "Юни", "Юли", "ÐвгуÑÑ‚", "Септември", "Октомври", "Ðоември", "Декември"
+ ],
+ dayOfWeek: [
+ "Ðд", "Пн", "Ð’Ñ‚", "Ср", "Чт", "Пт", "Сб"
+ ]
+ },
+ fa: { // Persian/Farsi
+ months: [
+ 'Ùروردین', 'اردیبهشت', 'خرداد', 'تیر', 'مرداد', 'شهریور', 'مهر', 'آبان', 'آذر', 'دی', 'بهمن', 'اسÙند'
+ ],
+ dayOfWeek: [
+ 'یکشنبه', 'دوشنبه', 'سه شنبه', 'چهارشنبه', 'پنجشنبه', 'جمعه', 'شنبه'
+ ]
+ },
+ ru: { // Russian
+ months: [
+ 'Январь', 'Февраль', 'Март', 'Ðпрель', 'Май', 'Июнь', 'Июль', 'ÐвгуÑÑ‚', 'СентÑбрь', 'ОктÑбрь', 'ÐоÑбрь', 'Декабрь'
+ ],
+ dayOfWeek: [
+ "Ð’Ñк", "Пн", "Ð’Ñ‚", "Ср", "Чт", "Пт", "Сб"
+ ]
+ },
+ uk: { // Ukrainian
+ months: [
+ 'Січень', 'Лютий', 'Березень', 'Квітень', 'Травень', 'Червень', 'Липень', 'Серпень', 'ВереÑень', 'Жовтень', 'ЛиÑтопад', 'Грудень'
+ ],
+ dayOfWeek: [
+ "Ðдл", "Пнд", "Ð’Ñ‚Ñ€", "Срд", "Чтв", "Птн", "Сбт"
+ ]
+ },
+ en: { // English
+ months: [
+ "January", "February", "March", "April", "May", "June", "July", "August", "September", "October", "November", "December"
+ ],
+ dayOfWeek: [
+ "Sun", "Mon", "Tue", "Wed", "Thu", "Fri", "Sat"
+ ]
+ },
+ el: { // Ελληνικά
+ months: [
+ "ΙανουάÏιος", "ΦεβÏουάÏιος", "ΜάÏτιος", "ΑπÏίλιος", "Μάιος", "ΙοÏνιος", "ΙοÏλιος", "ΑÏγουστος", "ΣεπτέμβÏιος", "ΟκτώβÏιος", "ÎοέμβÏιος", "ΔεκέμβÏιος"
+ ],
+ dayOfWeek: [
+ "ΚυÏ", "Δευ", "ΤÏι", "Τετ", "Πεμ", "ΠαÏ", "Σαβ"
+ ]
+ },
+ de: { // German
+ months: [
+ 'Januar', 'Februar', 'März', 'April', 'Mai', 'Juni', 'Juli', 'August', 'September', 'Oktober', 'November', 'Dezember'
+ ],
+ dayOfWeek: [
+ "So", "Mo", "Di", "Mi", "Do", "Fr", "Sa"
+ ]
+ },
+ nl: { // Dutch
+ months: [
+ "januari", "februari", "maart", "april", "mei", "juni", "juli", "augustus", "september", "oktober", "november", "december"
+ ],
+ dayOfWeek: [
+ "zo", "ma", "di", "wo", "do", "vr", "za"
+ ]
+ },
+ tr: { // Turkish
+ months: [
+ "Ocak", "Şubat", "Mart", "Nisan", "Mayıs", "Haziran", "Temmuz", "Ağustos", "Eylül", "Ekim", "Kasım", "Aralık"
+ ],
+ dayOfWeek: [
+ "Paz", "Pts", "Sal", "Çar", "Per", "Cum", "Cts"
+ ]
+ },
+ fr: { //French
+ months: [
+ "Janvier", "Février", "Mars", "Avril", "Mai", "Juin", "Juillet", "Août", "Septembre", "Octobre", "Novembre", "Décembre"
+ ],
+ dayOfWeek: [
+ "Dim", "Lun", "Mar", "Mer", "Jeu", "Ven", "Sam"
+ ]
+ },
+ es: { // Spanish
+ months: [
+ "Enero", "Febrero", "Marzo", "Abril", "Mayo", "Junio", "Julio", "Agosto", "Septiembre", "Octubre", "Noviembre", "Diciembre"
+ ],
+ dayOfWeek: [
+ "Dom", "Lun", "Mar", "Mié", "Jue", "Vie", "Sáb"
+ ]
+ },
+ th: { // Thai
+ months: [
+ 'มà¸à¸£à¸²à¸„ม', 'à¸à¸¸à¸¡à¸ à¸²à¸žà¸±à¸™à¸˜à¹Œ', 'มีนาคม', 'เมษายน', 'พฤษภาคม', 'มิถุนายน', 'à¸à¸£à¸à¸Žà¸²à¸„ม', 'สิงหาคม', 'à¸à¸±à¸™à¸¢à¸²à¸¢à¸™', 'ตุลาคม', 'พฤศจิà¸à¸²à¸¢à¸™', 'ธันวาคม'
+ ],
+ dayOfWeek: [
+ 'อา.', 'จ.', 'อ.', 'พ.', 'พฤ.', 'ศ.', 'ส.'
+ ]
+ },
+ pl: { // Polish
+ months: [
+ "styczeń", "luty", "marzec", "kwiecień", "maj", "czerwiec", "lipiec", "sierpień", "wrzesień", "październik", "listopad", "grudzień"
+ ],
+ dayOfWeek: [
+ "nd", "pn", "wt", "śr", "cz", "pt", "sb"
+ ]
+ },
+ pt: { // Portuguese
+ months: [
+ "Janeiro", "Fevereiro", "Março", "Abril", "Maio", "Junho", "Julho", "Agosto", "Setembro", "Outubro", "Novembro", "Dezembro"
+ ],
+ dayOfWeek: [
+ "Dom", "Seg", "Ter", "Qua", "Qui", "Sex", "Sab"
+ ]
+ },
+ ch: { // Simplified Chinese
+ months: [
+ "一月", "二月", "三月", "四月", "五月", "六月", "七月", "八月", "ä¹æœˆ", "å月", "å一月", "å二月"
+ ],
+ dayOfWeek: [
+ "日", "一", "二", "三", "四", "五", "六"
+ ]
+ },
+ se: { // Swedish
+ months: [
+ "Januari", "Februari", "Mars", "April", "Maj", "Juni", "Juli", "Augusti", "September", "Oktober", "November", "December"
+ ],
+ dayOfWeek: [
+ "Sön", "Mån", "Tis", "Ons", "Tor", "Fre", "Lör"
+ ]
+ },
+ kr: { // Korean
+ months: [
+ "1ì›”", "2ì›”", "3ì›”", "4ì›”", "5ì›”", "6ì›”", "7ì›”", "8ì›”", "9ì›”", "10ì›”", "11ì›”", "12ì›”"
+ ],
+ dayOfWeek: [
+ "ì¼", "ì›”", "í™”", "수", "목", "금", "토"
+ ]
+ },
+ it: { // Italian
+ months: [
+ "Gennaio", "Febbraio", "Marzo", "Aprile", "Maggio", "Giugno", "Luglio", "Agosto", "Settembre", "Ottobre", "Novembre", "Dicembre"
+ ],
+ dayOfWeek: [
+ "Dom", "Lun", "Mar", "Mer", "Gio", "Ven", "Sab"
+ ]
+ },
+ da: { // Dansk
+ months: [
+ "January", "Februar", "Marts", "April", "Maj", "Juni", "July", "August", "September", "Oktober", "November", "December"
+ ],
+ dayOfWeek: [
+ "Søn", "Man", "Tir", "Ons", "Tor", "Fre", "Lør"
+ ]
+ },
+ no: { // Norwegian
+ months: [
+ "Januar", "Februar", "Mars", "April", "Mai", "Juni", "Juli", "August", "September", "Oktober", "November", "Desember"
+ ],
+ dayOfWeek: [
+ "Søn", "Man", "Tir", "Ons", "Tor", "Fre", "Lør"
+ ]
+ },
+ ja: { // Japanese
+ months: [
+ "1月", "2月", "3月", "4月", "5月", "6月", "7月", "8月", "9月", "10月", "11月", "12月"
+ ],
+ dayOfWeek: [
+ "æ—¥", "月", "ç«", "æ°´", "木", "金", "土"
+ ]
+ },
+ vi: { // Vietnamese
+ 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"
+ ],
+ dayOfWeek: [
+ "CN", "T2", "T3", "T4", "T5", "T6", "T7"
+ ]
+ },
+ sl: { // SlovenÅ¡Äina
+ months: [
+ "Januar", "Februar", "Marec", "April", "Maj", "Junij", "Julij", "Avgust", "September", "Oktober", "November", "December"
+ ],
+ dayOfWeek: [
+ "Ned", "Pon", "Tor", "Sre", "ÄŒet", "Pet", "Sob"
+ ]
+ },
+ cs: { // Čeština
+ months: [
+ "Leden", "Únor", "Březen", "Duben", "Květen", "Červen", "Červenec", "Srpen", "Září", "Říjen", "Listopad", "Prosinec"
+ ],
+ dayOfWeek: [
+ "Ne", "Po", "Út", "St", "Čt", "Pá", "So"
+ ]
+ },
+ hu: { // Hungarian
+ months: [
+ "Január", "Február", "Március", "Ãprilis", "Május", "Június", "Július", "Augusztus", "Szeptember", "Október", "November", "December"
+ ],
+ dayOfWeek: [
+ "Va", "Hé", "Ke", "Sze", "Cs", "Pé", "Szo"
+ ]
+ }
+ },
+ value: '',
+ lang: 'en',
+
+ format: 'Y/m/d H:i',
+ formatTime: 'H:i',
+ formatDate: 'Y/m/d',
+
+ startDate: false, // new Date(), '1986/12/08', '-1970/01/05','-1970/01/05',
+ step: 60,
+ monthChangeSpinner: true,
+
+ closeOnDateSelect: false,
+ closeOnWithoutClick: true,
+ closeOnInputClick: true,
+
+ timepicker: true,
+ datepicker: true,
+ weeks: false,
+
+ defaultTime: false, // use formatTime format (ex. '10:00' for formatTime: 'H:i')
+ defaultDate: false, // use formatDate format (ex new Date() or '1986/12/08' or '-1970/01/05' or '-1970/01/05')
+
+ minDate: false,
+ maxDate: false,
+ minTime: false,
+ maxTime: false,
+
+ allowTimes: [],
+ opened: false,
+ initTime: true,
+ inline: false,
+ theme: '',
+
+ onSelectDate: function () {},
+ onSelectTime: function () {},
+ onChangeMonth: function () {},
+ onChangeYear: function () {},
+ onChangeDateTime: function () {},
+ onShow: function () {},
+ onClose: function () {},
+ onGenerate: function () {},
+
+ withoutCopyright: true,
+ inverseButton: false,
+ hours12: false,
+ next: 'xdsoft_next',
+ prev : 'xdsoft_prev',
+ dayOfWeekStart: 0,
+ parentID: 'body',
+ timeHeightInTimePicker: 25,
+ timepickerScrollbar: true,
+ todayButton: true,
+ defaultSelect: true,
+
+ scrollMonth: true,
+ scrollTime: true,
+ scrollInput: true,
+
+ lazyInit: false,
+ mask: false,
+ validateOnBlur: true,
+ allowBlank: true,
+ yearStart: 1950,
+ yearEnd: 2050,
+ style: '',
+ id: '',
+ fixed: false,
+ roundTime: 'round', // ceil, floor
+ className: '',
+ weekends: [],
+ disabledDates : [],
+ yearOffset: 0,
+ beforeShowDay: null,
+
+ enterLikeTab: true
+ };
+ // fix for ie8
+ if (!Array.prototype.indexOf) {
+ Array.prototype.indexOf = function (obj, start) {
+ var i, j;
+ for (i = (start || 0), j = this.length; i < j; i += 1) {
+ if (this[i] === obj) { return i; }
+ }
+ return -1;
+ };
+ }
+ Date.prototype.countDaysInMonth = function () {
+ return new Date(this.getFullYear(), this.getMonth() + 1, 0).getDate();
+ };
+ $.fn.xdsoftScroller = function (percent) {
+ return this.each(function () {
+ var timeboxparent = $(this),
+ pointerEventToXY = function (e) {
+ var out = {x: 0, y: 0},
+ touch;
+ if (e.type === 'touchstart' || e.type === 'touchmove' || e.type === 'touchend' || e.type === 'touchcancel') {
+ touch = e.originalEvent.touches[0] || e.originalEvent.changedTouches[0];
+ out.x = touch.clientX;
+ out.y = touch.clientY;
+ } else if (e.type === 'mousedown' || e.type === 'mouseup' || e.type === 'mousemove' || e.type === 'mouseover' || e.type === 'mouseout' || e.type === 'mouseenter' || e.type === 'mouseleave') {
+ out.x = e.clientX;
+ out.y = e.clientY;
+ }
+ return out;
+ },
+ move = 0,
+ timebox,
+ parentHeight,
+ height,
+ scrollbar,
+ scroller,
+ maximumOffset = 100,
+ start = false,
+ startY = 0,
+ startTop = 0,
+ h1 = 0,
+ touchStart = false,
+ startTopScroll = 0,
+ calcOffset = function () {};
+ if (percent === 'hide') {
+ timeboxparent.find('.xdsoft_scrollbar').hide();
+ return;
+ }
+ if (!$(this).hasClass('xdsoft_scroller_box')) {
+ timebox = timeboxparent.children().eq(0);
+ parentHeight = timeboxparent[0].clientHeight;
+ height = timebox[0].offsetHeight;
+ scrollbar = $('<div class="xdsoft_scrollbar"></div>');
+ scroller = $('<div class="xdsoft_scroller"></div>');
+ scrollbar.append(scroller);
+
+ timeboxparent.addClass('xdsoft_scroller_box').append(scrollbar);
+ calcOffset = function calcOffset(event) {
+ var offset = pointerEventToXY(event).y - startY + startTopScroll;
+ if (offset < 0) {
+ offset = 0;
+ }
+ if (offset + scroller[0].offsetHeight > h1) {
+ offset = h1 - scroller[0].offsetHeight;
+ }
+ timeboxparent.trigger('scroll_element.xdsoft_scroller', [maximumOffset ? offset / maximumOffset : 0]);
+ };
+
+ scroller
+ .on('touchstart.xdsoft_scroller mousedown.xdsoft_scroller', function (event) {
+ if (!parentHeight) {
+ timeboxparent.trigger('resize_scroll.xdsoft_scroller', [percent]);
+ }
+
+ startY = pointerEventToXY(event).y;
+ startTopScroll = parseInt(scroller.css('margin-top'), 10);
+ h1 = scrollbar[0].offsetHeight;
+
+ if (event.type === 'mousedown') {
+ if (document) {
+ $(document.body).addClass('xdsoft_noselect');
+ }
+ $([document.body, window]).on('mouseup.xdsoft_scroller', function arguments_callee() {
+ $([document.body, window]).off('mouseup.xdsoft_scroller', arguments_callee)
+ .off('mousemove.xdsoft_scroller', calcOffset)
+ .removeClass('xdsoft_noselect');
+ });
+ $(document.body).on('mousemove.xdsoft_scroller', calcOffset);
+ } else {
+ touchStart = true;
+ event.stopPropagation();
+ event.preventDefault();
+ }
+ })
+ .on('touchmove', function (event) {
+ if (touchStart) {
+ event.preventDefault();
+ calcOffset(event);
+ }
+ })
+ .on('touchend touchcancel', function (event) {
+ touchStart = false;
+ startTopScroll = 0;
+ });
+
+ timeboxparent
+ .on('scroll_element.xdsoft_scroller', function (event, percentage) {
+ if (!parentHeight) {
+ timeboxparent.trigger('resize_scroll.xdsoft_scroller', [percentage, true]);
+ }
+ percentage = percentage > 1 ? 1 : (percentage < 0 || isNaN(percentage)) ? 0 : percentage;
+
+ scroller.css('margin-top', maximumOffset * percentage);
+
+ setTimeout(function () {
+ timebox.css('marginTop', -parseInt((timebox[0].offsetHeight - parentHeight) * percentage, 10));
+ }, 10);
+ })
+ .on('resize_scroll.xdsoft_scroller', function (event, percentage, noTriggerScroll) {
+ var percent, sh;
+ parentHeight = timeboxparent[0].clientHeight;
+ height = timebox[0].offsetHeight;
+ percent = parentHeight / height;
+ sh = percent * scrollbar[0].offsetHeight;
+ if (percent > 1) {
+ scroller.hide();
+ } else {
+ scroller.show();
+ scroller.css('height', parseInt(sh > 10 ? sh : 10, 10));
+ maximumOffset = scrollbar[0].offsetHeight - scroller[0].offsetHeight;
+ if (noTriggerScroll !== true) {
+ timeboxparent.trigger('scroll_element.xdsoft_scroller', [percentage || Math.abs(parseInt(timebox.css('marginTop'), 10)) / (height - parentHeight)]);
+ }
+ }
+ });
+
+ timeboxparent.on('mousewheel', function (event) {
+ var top = Math.abs(parseInt(timebox.css('marginTop'), 10));
+
+ top = top - (event.deltaY * 20);
+ if (top < 0) {
+ top = 0;
+ }
+
+ timeboxparent.trigger('scroll_element.xdsoft_scroller', [top / (height - parentHeight)]);
+ event.stopPropagation();
+ return false;
+ });
+
+ timeboxparent.on('touchstart', function (event) {
+ start = pointerEventToXY(event);
+ startTop = Math.abs(parseInt(timebox.css('marginTop'), 10));
+ });
+
+ timeboxparent.on('touchmove', function (event) {
+ if (start) {
+ event.preventDefault();
+ var coord = pointerEventToXY(event);
+ timeboxparent.trigger('scroll_element.xdsoft_scroller', [(startTop - (coord.y - start.y)) / (height - parentHeight)]);
+ }
+ });
+
+ timeboxparent.on('touchend touchcancel', function (event) {
+ start = false;
+ startTop = 0;
+ });
+ }
+ timeboxparent.trigger('resize_scroll.xdsoft_scroller', [percent]);
+ });
+ };
+
+ $.fn.datetimepicker = function (opt) {
+ var KEY0 = 48,
+ KEY9 = 57,
+ _KEY0 = 96,
+ _KEY9 = 105,
+ CTRLKEY = 17,
+ DEL = 46,
+ ENTER = 13,
+ ESC = 27,
+ BACKSPACE = 8,
+ ARROWLEFT = 37,
+ ARROWUP = 38,
+ ARROWRIGHT = 39,
+ ARROWDOWN = 40,
+ TAB = 9,
+ F5 = 116,
+ AKEY = 65,
+ CKEY = 67,
+ VKEY = 86,
+ ZKEY = 90,
+ YKEY = 89,
+ ctrlDown = false,
+ options = ($.isPlainObject(opt) || !opt) ? $.extend(true, {}, default_options, opt) : $.extend(true, {}, default_options),
+
+ lazyInitTimer = 0,
+ createDateTimePicker,
+ destroyDateTimePicker,
+ _xdsoft_datetime,
+
+ lazyInit = function (input) {
+ input
+ .on('open.xdsoft focusin.xdsoft mousedown.xdsoft', function initOnActionCallback(event) {
+ if (input.is(':disabled') || input.is(':hidden') || !input.is(':visible') || input.data('xdsoft_datetimepicker')) {
+ return;
+ }
+ clearTimeout(lazyInitTimer);
+ lazyInitTimer = setTimeout(function () {
+
+ if (!input.data('xdsoft_datetimepicker')) {
+ createDateTimePicker(input);
+ }
+ input
+ .off('open.xdsoft focusin.xdsoft mousedown.xdsoft', initOnActionCallback)
+ .trigger('open.xdsoft');
+ }, 100);
+ });
+ };
+
+ createDateTimePicker = function (input) {
+ var datetimepicker = $('<div ' + (options.id ? 'id="' + options.id + '"' : '') + ' ' + (options.style ? 'style="' + options.style + '"' : '') + ' class="xdsoft_datetimepicker xdsoft_' + options.theme + ' xdsoft_noselect ' + (options.weeks ? ' xdsoft_showweeks' : '') + options.className + '"></div>'),
+ xdsoft_copyright = $('<div class="xdsoft_copyright"><a target="_blank" href="http://xdsoft.net/jqplugins/datetimepicker/">xdsoft.net</a></div>'),
+ datepicker = $('<div class="xdsoft_datepicker active"></div>'),
+ mounth_picker = $('<div class="xdsoft_mounthpicker"><button type="button" class="xdsoft_prev"></button><button type="button" class="xdsoft_today_button"></button>' +
+ '<div class="xdsoft_label xdsoft_month"><span></span><i></i></div>' +
+ '<div class="xdsoft_label xdsoft_year"><span></span><i></i></div>' +
+ '<button type="button" class="xdsoft_next"></button></div>'),
+ calendar = $('<div class="xdsoft_calendar"></div>'),
+ timepicker = $('<div class="xdsoft_timepicker active"><button type="button" class="xdsoft_prev"></button><div class="xdsoft_time_box"></div><button type="button" class="xdsoft_next"></button></div>'),
+ timeboxparent = timepicker.find('.xdsoft_time_box').eq(0),
+ timebox = $('<div class="xdsoft_time_variant"></div>'),
+ /*scrollbar = $('<div class="xdsoft_scrollbar"></div>'),
+ scroller = $('<div class="xdsoft_scroller"></div>'),*/
+ monthselect = $('<div class="xdsoft_select xdsoft_monthselect"><div></div></div>'),
+ yearselect = $('<div class="xdsoft_select xdsoft_yearselect"><div></div></div>'),
+ triggerAfterOpen = false,
+ XDSoft_datetime,
+ //scroll_element,
+ xchangeTimer,
+ timerclick,
+ current_time_index,
+ setPos,
+ timer = 0,
+ timer1 = 0;
+
+ mounth_picker
+ .find('.xdsoft_month span')
+ .after(monthselect);
+ mounth_picker
+ .find('.xdsoft_year span')
+ .after(yearselect);
+
+ mounth_picker
+ .find('.xdsoft_month,.xdsoft_year')
+ .on('mousedown.xdsoft', function (event) {
+ var select = $(this).find('.xdsoft_select').eq(0),
+ val = 0,
+ top = 0,
+ visible = select.is(':visible'),
+ items,
+ i;
+
+ mounth_picker
+ .find('.xdsoft_select')
+ .hide();
+ if (_xdsoft_datetime.currentTime) {
+ val = _xdsoft_datetime.currentTime[$(this).hasClass('xdsoft_month') ? 'getMonth' : 'getFullYear']();
+ }
+
+ select[visible ? 'hide' : 'show']();
+ for (items = select.find('div.xdsoft_option'), i = 0; i < items.length; i += 1) {
+ if (items.eq(i).data('value') === val) {
+ break;
+ } else {
+ top += items[0].offsetHeight;
+ }
+ }
+
+ select.xdsoftScroller(top / (select.children()[0].offsetHeight - (select[0].clientHeight)));
+ event.stopPropagation();
+ return false;
+ });
+
+ mounth_picker
+ .find('.xdsoft_select')
+ .xdsoftScroller()
+ .on('mousedown.xdsoft', function (event) {
+ event.stopPropagation();
+ event.preventDefault();
+ })
+ .on('mousedown.xdsoft', '.xdsoft_option', function (event) {
+ var year = _xdsoft_datetime.currentTime.getFullYear();
+ if (_xdsoft_datetime && _xdsoft_datetime.currentTime) {
+ _xdsoft_datetime.currentTime[$(this).parent().parent().hasClass('xdsoft_monthselect') ? 'setMonth' : 'setFullYear']($(this).data('value'));
+ }
+
+ $(this).parent().parent().hide();
+
+ datetimepicker.trigger('xchange.xdsoft');
+ if (options.onChangeMonth && $.isFunction(options.onChangeMonth)) {
+ options.onChangeMonth.call(datetimepicker, _xdsoft_datetime.currentTime, datetimepicker.data('input'));
+ }
+
+ if (year !== _xdsoft_datetime.currentTime.getFullYear() && $.isFunction(options.onChangeYear)) {
+ options.onChangeYear.call(datetimepicker, _xdsoft_datetime.currentTime, datetimepicker.data('input'));
+ }
+ });
+
+ datetimepicker.setOptions = function (_options) {
+ options = $.extend(true, {}, options, _options);
+
+ if (_options.allowTimes && $.isArray(_options.allowTimes) && _options.allowTimes.length) {
+ options.allowTimes = $.extend(true, [], _options.allowTimes);
+ }
+
+ if (_options.weekends && $.isArray(_options.weekends) && _options.weekends.length) {
+ options.weekends = $.extend(true, [], _options.weekends);
+ }
+
+ if (_options.disabledDates && $.isArray(_options.disabledDates) && _options.disabledDates.length) {
+ options.disabledDates = $.extend(true, [], _options.disabledDates);
+ }
+
+ if ((options.open || options.opened) && (!options.inline)) {
+ input.trigger('open.xdsoft');
+ }
+
+ if (options.inline) {
+ triggerAfterOpen = true;
+ datetimepicker.addClass('xdsoft_inline');
+ input.after(datetimepicker).hide();
+ }
+
+ if (options.inverseButton) {
+ options.next = 'xdsoft_prev';
+ options.prev = 'xdsoft_next';
+ }
+
+ if (options.datepicker) {
+ datepicker.addClass('active');
+ } else {
+ datepicker.removeClass('active');
+ }
+
+ if (options.timepicker) {
+ timepicker.addClass('active');
+ } else {
+ timepicker.removeClass('active');
+ }
+
+ if (options.value) {
+ if (input && input.val) {
+ input.val(options.value);
+ }
+ _xdsoft_datetime.setCurrentTime(options.value);
+ }
+
+ if (isNaN(options.dayOfWeekStart)) {
+ options.dayOfWeekStart = 0;
+ } else {
+ options.dayOfWeekStart = parseInt(options.dayOfWeekStart, 10) % 7;
+ }
+
+ if (!options.timepickerScrollbar) {
+ timeboxparent.xdsoftScroller('hide');
+ }
+
+ if (options.minDate && /^-(.*)$/.test(options.minDate)) {
+ options.minDate = _xdsoft_datetime.strToDateTime(options.minDate).dateFormat(options.formatDate);
+ }
+
+ if (options.maxDate && /^\+(.*)$/.test(options.maxDate)) {
+ options.maxDate = _xdsoft_datetime.strToDateTime(options.maxDate).dateFormat(options.formatDate);
+ }
+
+ mounth_picker
+ .find('.xdsoft_today_button')
+ .css('visibility', !options.todayButton ? 'hidden' : 'visible');
+
+ if (options.mask) {
+ var e,
+ getCaretPos = function (input) {
+ try {
+ if (document.selection && document.selection.createRange) {
+ var range = document.selection.createRange();
+ return range.getBookmark().charCodeAt(2) - 2;
+ }
+ if (input.setSelectionRange) {
+ return input.selectionStart;
+ }
+ } catch (e) {
+ return 0;
+ }
+ },
+ setCaretPos = function (node, pos) {
+ node = (typeof node === "string" || node instanceof String) ? document.getElementById(node) : node;
+ if (!node) {
+ return false;
+ }
+ if (node.createTextRange) {
+ var textRange = node.createTextRange();
+ textRange.collapse(true);
+ textRange.moveEnd('character', pos);
+ textRange.moveStart('character', pos);
+ textRange.select();
+ return true;
+ }
+ if (node.setSelectionRange) {
+ node.setSelectionRange(pos, pos);
+ return true;
+ }
+ return false;
+ },
+ isValidValue = function (mask, value) {
+ var reg = mask
+ .replace(/([\[\]\/\{\}\(\)\-\.\+]{1})/g, '\\$1')
+ .replace(/_/g, '{digit+}')
+ .replace(/([0-9]{1})/g, '{digit$1}')
+ .replace(/\{digit([0-9]{1})\}/g, '[0-$1_]{1}')
+ .replace(/\{digit[\+]\}/g, '[0-9_]{1}');
+ return (new RegExp(reg)).test(value);
+ };
+ input.off('keydown.xdsoft');
+
+ if (options.mask === true) {
+ options.mask = options.format
+ .replace(/Y/g, '9999')
+ .replace(/F/g, '9999')
+ .replace(/m/g, '19')
+ .replace(/d/g, '39')
+ .replace(/H/g, '29')
+ .replace(/i/g, '59')
+ .replace(/s/g, '59');
+ }
+
+ if ($.type(options.mask) === 'string') {
+ if (!isValidValue(options.mask, input.val())) {
+ input.val(options.mask.replace(/[0-9]/g, '_'));
+ }
+
+ input.on('keydown.xdsoft', function (event) {
+ var val = this.value,
+ key = event.which,
+ pos,
+ digit;
+
+ if (((key >= KEY0 && key <= KEY9) || (key >= _KEY0 && key <= _KEY9)) || (key === BACKSPACE || key === DEL)) {
+ pos = getCaretPos(this);
+ digit = (key !== BACKSPACE && key !== DEL) ? String.fromCharCode((_KEY0 <= key && key <= _KEY9) ? key - KEY0 : key) : '_';
+
+ if ((key === BACKSPACE || key === DEL) && pos) {
+ pos -= 1;
+ digit = '_';
+ }
+
+ while (/[^0-9_]/.test(options.mask.substr(pos, 1)) && pos < options.mask.length && pos > 0) {
+ pos += (key === BACKSPACE || key === DEL) ? -1 : 1;
+ }
+
+ val = val.substr(0, pos) + digit + val.substr(pos + 1);
+ if ($.trim(val) === '') {
+ val = options.mask.replace(/[0-9]/g, '_');
+ } else {
+ if (pos === options.mask.length) {
+ event.preventDefault();
+ return false;
+ }
+ }
+
+ pos += (key === BACKSPACE || key === DEL) ? 0 : 1;
+ while (/[^0-9_]/.test(options.mask.substr(pos, 1)) && pos < options.mask.length && pos > 0) {
+ pos += (key === BACKSPACE || key === DEL) ? -1 : 1;
+ }
+
+ if (isValidValue(options.mask, val)) {
+ this.value = val;
+ setCaretPos(this, pos);
+ } else if ($.trim(val) === '') {
+ this.value = options.mask.replace(/[0-9]/g, '_');
+ } else {
+ input.trigger('error_input.xdsoft');
+ }
+ } else {
+ if (([AKEY, CKEY, VKEY, ZKEY, YKEY].indexOf(key) !== -1 && ctrlDown) || [ESC, ARROWUP, ARROWDOWN, ARROWLEFT, ARROWRIGHT, F5, CTRLKEY, TAB, ENTER].indexOf(key) !== -1) {
+ return true;
+ }
+ }
+
+ event.preventDefault();
+ return false;
+ });
+ }
+ }
+ if (options.validateOnBlur) {
+ input
+ .off('blur.xdsoft')
+ .on('blur.xdsoft', function () {
+ if (options.allowBlank && !$.trim($(this).val()).length) {
+ $(this).val(null);
+ datetimepicker.data('xdsoft_datetime').empty();
+ } else if (!Date.parseDate($(this).val(), options.format)) {
+ $(this).val((_xdsoft_datetime.now()).dateFormat(options.format));
+ datetimepicker.data('xdsoft_datetime').setCurrentTime($(this).val());
+ } else {
+ datetimepicker.data('xdsoft_datetime').setCurrentTime($(this).val());
+ }
+ datetimepicker.trigger('changedatetime.xdsoft');
+ });
+ }
+ options.dayOfWeekStartPrev = (options.dayOfWeekStart === 0) ? 6 : options.dayOfWeekStart - 1;
+
+ datetimepicker
+ .trigger('xchange.xdsoft')
+ .trigger('afterOpen.xdsoft');
+ };
+
+ datetimepicker
+ .data('options', options)
+ .on('mousedown.xdsoft', function (event) {
+ event.stopPropagation();
+ event.preventDefault();
+ yearselect.hide();
+ monthselect.hide();
+ return false;
+ });
+
+ //scroll_element = timepicker.find('.xdsoft_time_box');
+ timeboxparent.append(timebox);
+ timeboxparent.xdsoftScroller();
+
+ datetimepicker.on('afterOpen.xdsoft', function () {
+ timeboxparent.xdsoftScroller();
+ });
+
+ datetimepicker
+ .append(datepicker)
+ .append(timepicker);
+
+ if (options.withoutCopyright !== true) {
+ datetimepicker
+ .append(xdsoft_copyright);
+ }
+
+ datepicker
+ .append(mounth_picker)
+ .append(calendar);
+
+ $(options.parentID)
+ .append(datetimepicker);
+
+ XDSoft_datetime = function () {
+ var _this = this;
+ _this.now = function (norecursion) {
+ var d = new Date(),
+ date,
+ time;
+
+ if (!norecursion && options.defaultDate) {
+ date = _this.strToDate(options.defaultDate);
+ d.setFullYear(date.getFullYear());
+ d.setMonth(date.getMonth());
+ d.setDate(date.getDate());
+ }
+
+ if (options.yearOffset) {
+ d.setFullYear(d.getFullYear() + options.yearOffset);
+ }
+
+ if (!norecursion && options.defaultTime) {
+ time = _this.strtotime(options.defaultTime);
+ d.setHours(time.getHours());
+ d.setMinutes(time.getMinutes());
+ }
+
+ return d;
+ };
+
+ _this.isValidDate = function (d) {
+ if (Object.prototype.toString.call(d) !== "[object Date]") {
+ return false;
+ }
+ return !isNaN(d.getTime());
+ };
+
+ _this.setCurrentTime = function (dTime) {
+ _this.currentTime = (typeof dTime === 'string') ? _this.strToDateTime(dTime) : _this.isValidDate(dTime) ? dTime : _this.now();
+ datetimepicker.trigger('xchange.xdsoft');
+ };
+
+ _this.empty = function () {
+ _this.currentTime = null;
+ };
+
+ _this.getCurrentTime = function (dTime) {
+ return _this.currentTime;
+ };
+
+ _this.nextMonth = function () {
+ var month = _this.currentTime.getMonth() + 1,
+ year;
+ if (month === 12) {
+ _this.currentTime.setFullYear(_this.currentTime.getFullYear() + 1);
+ month = 0;
+ }
+
+ year = _this.currentTime.getFullYear();
+
+ _this.currentTime.setDate(
+ Math.min(
+ new Date(_this.currentTime.getFullYear(), month + 1, 0).getDate(),
+ _this.currentTime.getDate()
+ )
+ );
+ _this.currentTime.setMonth(month);
+
+ if (options.onChangeMonth && $.isFunction(options.onChangeMonth)) {
+ options.onChangeMonth.call(datetimepicker, _xdsoft_datetime.currentTime, datetimepicker.data('input'));
+ }
+
+ if (year !== _this.currentTime.getFullYear() && $.isFunction(options.onChangeYear)) {
+ options.onChangeYear.call(datetimepicker, _xdsoft_datetime.currentTime, datetimepicker.data('input'));
+ }
+
+ datetimepicker.trigger('xchange.xdsoft');
+ return month;
+ };
+
+ _this.prevMonth = function () {
+ var month = _this.currentTime.getMonth() - 1;
+ if (month === -1) {
+ _this.currentTime.setFullYear(_this.currentTime.getFullYear() - 1);
+ month = 11;
+ }
+ _this.currentTime.setDate(
+ Math.min(
+ new Date(_this.currentTime.getFullYear(), month + 1, 0).getDate(),
+ _this.currentTime.getDate()
+ )
+ );
+ _this.currentTime.setMonth(month);
+ if (options.onChangeMonth && $.isFunction(options.onChangeMonth)) {
+ options.onChangeMonth.call(datetimepicker, _xdsoft_datetime.currentTime, datetimepicker.data('input'));
+ }
+ datetimepicker.trigger('xchange.xdsoft');
+ return month;
+ };
+
+ _this.getWeekOfYear = function (datetime) {
+ var onejan = new Date(datetime.getFullYear(), 0, 1);
+ return Math.ceil((((datetime - onejan) / 86400000) + onejan.getDay() + 1) / 7);
+ };
+
+ _this.strToDateTime = function (sDateTime) {
+ var tmpDate = [], timeOffset, currentTime;
+
+ if (sDateTime && sDateTime instanceof Date && _this.isValidDate(sDateTime)) {
+ return sDateTime;
+ }
+
+ tmpDate = /^(\+|\-)(.*)$/.exec(sDateTime);
+ if (tmpDate) {
+ tmpDate[2] = Date.parseDate(tmpDate[2], options.formatDate);
+ }
+ if (tmpDate && tmpDate[2]) {
+ timeOffset = tmpDate[2].getTime() - (tmpDate[2].getTimezoneOffset()) * 60000;
+ currentTime = new Date((_xdsoft_datetime.now()).getTime() + parseInt(tmpDate[1] + '1', 10) * timeOffset);
+ } else {
+ currentTime = sDateTime ? Date.parseDate(sDateTime, options.format) : _this.now();
+ }
+
+ if (!_this.isValidDate(currentTime)) {
+ currentTime = _this.now();
+ }
+
+ return currentTime;
+ };
+
+ _this.strToDate = function (sDate) {
+ if (sDate && sDate instanceof Date && _this.isValidDate(sDate)) {
+ return sDate;
+ }
+
+ var currentTime = sDate ? Date.parseDate(sDate, options.formatDate) : _this.now(true);
+ if (!_this.isValidDate(currentTime)) {
+ currentTime = _this.now(true);
+ }
+ return currentTime;
+ };
+
+ _this.strtotime = function (sTime) {
+ if (sTime && sTime instanceof Date && _this.isValidDate(sTime)) {
+ return sTime;
+ }
+ var currentTime = sTime ? Date.parseDate(sTime, options.formatTime) : _this.now(true);
+ if (!_this.isValidDate(currentTime)) {
+ currentTime = _this.now(true);
+ }
+ return currentTime;
+ };
+
+ _this.str = function () {
+ return _this.currentTime.dateFormat(options.format);
+ };
+ _this.currentTime = this.now();
+ };
+
+ _xdsoft_datetime = new XDSoft_datetime();
+
+ mounth_picker
+ .find('.xdsoft_today_button')
+ .on('mousedown.xdsoft', function () {
+ datetimepicker.data('changed', true);
+ _xdsoft_datetime.setCurrentTime(0);
+ datetimepicker.trigger('afterOpen.xdsoft');
+ }).on('dblclick.xdsoft', function () {
+ input.val(_xdsoft_datetime.str());
+ datetimepicker.trigger('close.xdsoft');
+ });
+ mounth_picker
+ .find('.xdsoft_prev,.xdsoft_next')
+ .on('mousedown.xdsoft', function () {
+ var $this = $(this),
+ timer = 0,
+ stop = false;
+
+ (function arguments_callee1(v) {
+ var month = _xdsoft_datetime.currentTime.getMonth();
+ if ($this.hasClass(options.next)) {
+ _xdsoft_datetime.nextMonth();
+ } else if ($this.hasClass(options.prev)) {
+ _xdsoft_datetime.prevMonth();
+ }
+ if (options.monthChangeSpinner) {
+ if (!stop) {
+ timer = setTimeout(arguments_callee1, v || 100);
+ }
+ }
+ }(500));
+
+ $([document.body, window]).on('mouseup.xdsoft', function arguments_callee2() {
+ clearTimeout(timer);
+ stop = true;
+ $([document.body, window]).off('mouseup.xdsoft', arguments_callee2);
+ });
+ });
+
+ timepicker
+ .find('.xdsoft_prev,.xdsoft_next')
+ .on('mousedown.xdsoft', function () {
+ var $this = $(this),
+ timer = 0,
+ stop = false,
+ period = 110;
+ (function arguments_callee4(v) {
+ var pheight = timeboxparent[0].clientHeight,
+ height = timebox[0].offsetHeight,
+ top = Math.abs(parseInt(timebox.css('marginTop'), 10));
+ if ($this.hasClass(options.next) && (height - pheight) - options.timeHeightInTimePicker >= top) {
+ timebox.css('marginTop', '-' + (top + options.timeHeightInTimePicker) + 'px');
+ } else if ($this.hasClass(options.prev) && top - options.timeHeightInTimePicker >= 0) {
+ timebox.css('marginTop', '-' + (top - options.timeHeightInTimePicker) + 'px');
+ }
+ timeboxparent.trigger('scroll_element.xdsoft_scroller', [Math.abs(parseInt(timebox.css('marginTop'), 10) / (height - pheight))]);
+ period = (period > 10) ? 10 : period - 10;
+ if (!stop) {
+ timer = setTimeout(arguments_callee4, v || period);
+ }
+ }(500));
+ $([document.body, window]).on('mouseup.xdsoft', function arguments_callee5() {
+ clearTimeout(timer);
+ stop = true;
+ $([document.body, window])
+ .off('mouseup.xdsoft', arguments_callee5);
+ });
+ });
+
+ xchangeTimer = 0;
+ // base handler - generating a calendar and timepicker
+ datetimepicker
+ .on('xchange.xdsoft', function (event) {
+ clearTimeout(xchangeTimer);
+ xchangeTimer = setTimeout(function () {
+ var table = '',
+ start = new Date(_xdsoft_datetime.currentTime.getFullYear(), _xdsoft_datetime.currentTime.getMonth(), 1, 12, 0, 0),
+ i = 0,
+ j,
+ today = _xdsoft_datetime.now(),
+ maxDate = false,
+ minDate = false,
+ d,
+ y,
+ m,
+ w,
+ classes = [],
+ customDateSettings,
+ newRow = true,
+ time = '',
+ h = '',
+ line_time;
+
+ while (start.getDay() !== options.dayOfWeekStart) {
+ start.setDate(start.getDate() - 1);
+ }
+
+ table += '<table><thead><tr>';
+
+ if (options.weeks) {
+ table += '<th></th>';
+ }
+
+ for (j = 0; j < 7; j += 1) {
+ table += '<th>' + options.i18n[options.lang].dayOfWeek[(j + options.dayOfWeekStart) % 7] + '</th>';
+ }
+
+ table += '</tr></thead>';
+ table += '<tbody>';
+
+ if (options.maxDate !== false) {
+ maxDate = _xdsoft_datetime.strToDate(options.maxDate);
+ maxDate = new Date(maxDate.getFullYear(), maxDate.getMonth(), maxDate.getDate(), 23, 59, 59, 999);
+ }
+
+ if (options.minDate !== false) {
+ minDate = _xdsoft_datetime.strToDate(options.minDate);
+ minDate = new Date(minDate.getFullYear(), minDate.getMonth(), minDate.getDate());
+ }
+
+ while (i < _xdsoft_datetime.currentTime.countDaysInMonth() || start.getDay() !== options.dayOfWeekStart || _xdsoft_datetime.currentTime.getMonth() === start.getMonth()) {
+ classes = [];
+ i += 1;
+
+ d = start.getDate();
+ y = start.getFullYear();
+ m = start.getMonth();
+ w = _xdsoft_datetime.getWeekOfYear(start);
+
+ classes.push('xdsoft_date');
+
+ if (options.beforeShowDay && $.isFunction(options.beforeShowDay.call)) {
+ customDateSettings = options.beforeShowDay.call(datetimepicker, start);
+ } else {
+ customDateSettings = null;
+ }
+
+ if ((maxDate !== false && start > maxDate) || (minDate !== false && start < minDate) || (customDateSettings && customDateSettings[0] === false)) {
+ classes.push('xdsoft_disabled');
+ } else if (options.disabledDates.indexOf(start.dateFormat(options.formatDate)) !== -1) {
+ classes.push('xdsoft_disabled');
+ }
+
+ if (customDateSettings && customDateSettings[1] !== "") {
+ classes.push(customDateSettings[1]);
+ }
+
+ if (_xdsoft_datetime.currentTime.getMonth() !== m) {
+ classes.push('xdsoft_other_month');
+ }
+
+ if ((options.defaultSelect || datetimepicker.data('changed')) && _xdsoft_datetime.currentTime.dateFormat(options.formatDate) === start.dateFormat(options.formatDate)) {
+ classes.push('xdsoft_current');
+ }
+
+ if (today.dateFormat(options.formatDate) === start.dateFormat(options.formatDate)) {
+ classes.push('xdsoft_today');
+ }
+
+ if (start.getDay() === 0 || start.getDay() === 6 || options.weekends.indexOf(start.dateFormat(options.formatDate)) === -1) {
+ classes.push('xdsoft_weekend');
+ }
+
+ if (options.beforeShowDay && $.isFunction(options.beforeShowDay)) {
+ classes.push(options.beforeShowDay(start));
+ }
+
+ if (newRow) {
+ table += '<tr>';
+ newRow = false;
+ if (options.weeks) {
+ table += '<th>' + w + '</th>';
+ }
+ }
+
+ table += '<td data-date="' + d + '" data-month="' + m + '" data-year="' + y + '"' + ' class="xdsoft_date xdsoft_day_of_week' + start.getDay() + ' ' + classes.join(' ') + '">' +
+ '<div>' + d + '</div>' +
+ '</td>';
+
+ if (start.getDay() === options.dayOfWeekStartPrev) {
+ table += '</tr>';
+ newRow = true;
+ }
+
+ start.setDate(d + 1);
+ }
+ table += '</tbody></table>';
+
+ calendar.html(table);
+
+ mounth_picker.find('.xdsoft_label span').eq(0).text(options.i18n[options.lang].months[_xdsoft_datetime.currentTime.getMonth()]);
+ mounth_picker.find('.xdsoft_label span').eq(1).text(_xdsoft_datetime.currentTime.getFullYear());
+
+ // generate timebox
+ time = '';
+ h = '';
+ m = '';
+ line_time = function line_time(h, m) {
+ var now = _xdsoft_datetime.now();
+ now.setHours(h);
+ h = parseInt(now.getHours(), 10);
+ now.setMinutes(m);
+ m = parseInt(now.getMinutes(), 10);
+
+ classes = [];
+ if ((options.maxTime !== false && _xdsoft_datetime.strtotime(options.maxTime).getTime() < now.getTime()) || (options.minTime !== false && _xdsoft_datetime.strtotime(options.minTime).getTime() > now.getTime())) {
+ classes.push('xdsoft_disabled');
+ }
+ if ((options.initTime || options.defaultSelect || datetimepicker.data('changed')) && parseInt(_xdsoft_datetime.currentTime.getHours(), 10) === parseInt(h, 10) && (options.step > 59 || Math[options.roundTime](_xdsoft_datetime.currentTime.getMinutes() / options.step) * options.step === parseInt(m, 10))) {
+ if (options.defaultSelect || datetimepicker.data('changed')) {
+ classes.push('xdsoft_current');
+ } else if (options.initTime) {
+ classes.push('xdsoft_init_time');
+ }
+ }
+ if (parseInt(today.getHours(), 10) === parseInt(h, 10) && parseInt(today.getMinutes(), 10) === parseInt(m, 10)) {
+ classes.push('xdsoft_today');
+ }
+ time += '<div class="xdsoft_time ' + classes.join(' ') + '" data-hour="' + h + '" data-minute="' + m + '">' + now.dateFormat(options.formatTime) + '</div>';
+ };
+
+ if (!options.allowTimes || !$.isArray(options.allowTimes) || !options.allowTimes.length) {
+ for (i = 0, j = 0; i < (options.hours12 ? 12 : 24); i += 1) {
+ for (j = 0; j < 60; j += options.step) {
+ h = (i < 10 ? '0' : '') + i;
+ m = (j < 10 ? '0' : '') + j;
+ line_time(h, m);
+ }
+ }
+ } else {
+ for (i = 0; i < options.allowTimes.length; i += 1) {
+ h = _xdsoft_datetime.strtotime(options.allowTimes[i]).getHours();
+ m = _xdsoft_datetime.strtotime(options.allowTimes[i]).getMinutes();
+ line_time(h, m);
+ }
+ }
+
+ timebox.html(time);
+
+ opt = '';
+ i = 0;
+
+ for (i = parseInt(options.yearStart, 10) + options.yearOffset; i <= parseInt(options.yearEnd, 10) + options.yearOffset; i += 1) {
+ opt += '<div class="xdsoft_option ' + (_xdsoft_datetime.currentTime.getFullYear() === i ? 'xdsoft_current' : '') + '" data-value="' + i + '">' + i + '</div>';
+ }
+ yearselect.children().eq(0)
+ .html(opt);
+
+ for (i = 0, opt = ''; i <= 11; i += 1) {
+ opt += '<div class="xdsoft_option ' + (_xdsoft_datetime.currentTime.getMonth() === i ? 'xdsoft_current' : '') + '" data-value="' + i + '">' + options.i18n[options.lang].months[i] + '</div>';
+ }
+ monthselect.children().eq(0).html(opt);
+ $(datetimepicker)
+ .trigger('generate.xdsoft');
+ }, 10);
+ event.stopPropagation();
+ })
+ .on('afterOpen.xdsoft', function () {
+ if (options.timepicker) {
+ var classType, pheight, height, top;
+ if (timebox.find('.xdsoft_current').length) {
+ classType = '.xdsoft_current';
+ } else if (timebox.find('.xdsoft_init_time').length) {
+ classType = '.xdsoft_init_time';
+ }
+ if (classType) {
+ pheight = timeboxparent[0].clientHeight;
+ height = timebox[0].offsetHeight;
+ top = timebox.find(classType).index() * options.timeHeightInTimePicker + 1;
+ if ((height - pheight) < top) {
+ top = height - pheight;
+ }
+ timeboxparent.trigger('scroll_element.xdsoft_scroller', [parseInt(top, 10) / (height - pheight)]);
+ } else {
+ timeboxparent.trigger('scroll_element.xdsoft_scroller', [0]);
+ }
+ }
+ });
+
+ timerclick = 0;
+ calendar
+ .on('click.xdsoft', 'td', function (xdevent) {
+ xdevent.stopPropagation(); // Prevents closing of Pop-ups, Modals and Flyouts in Bootstrap
+ timerclick += 1;
+ var $this = $(this),
+ currentTime = _xdsoft_datetime.currentTime;
+
+ if (currentTime === undefined || currentTime === null) {
+ _xdsoft_datetime.currentTime = _xdsoft_datetime.now();
+ currentTime = _xdsoft_datetime.currentTime;
+ }
+
+ if ($this.hasClass('xdsoft_disabled')) {
+ return false;
+ }
+
+ currentTime.setDate(1);
+ currentTime.setFullYear($this.data('year'));
+ currentTime.setMonth($this.data('month'));
+ currentTime.setDate($this.data('date'));
+
+ datetimepicker.trigger('select.xdsoft', [currentTime]);
+
+ input.val(_xdsoft_datetime.str());
+ if ((timerclick > 1 || (options.closeOnDateSelect === true || (options.closeOnDateSelect === 0 && !options.timepicker))) && !options.inline) {
+ datetimepicker.trigger('close.xdsoft');
+ }
+
+ if (options.onSelectDate && $.isFunction(options.onSelectDate)) {
+ options.onSelectDate.call(datetimepicker, _xdsoft_datetime.currentTime, datetimepicker.data('input'), xdevent);
+ }
+
+ datetimepicker.data('changed', true);
+ datetimepicker.trigger('xchange.xdsoft');
+ datetimepicker.trigger('changedatetime.xdsoft');
+ setTimeout(function () {
+ timerclick = 0;
+ }, 200);
+ });
+
+ timebox
+ .on('click.xdsoft', 'div', function (xdevent) {
+ xdevent.stopPropagation();
+ var $this = $(this),
+ currentTime = _xdsoft_datetime.currentTime;
+
+ if (currentTime === undefined || currentTime === null) {
+ _xdsoft_datetime.currentTime = _xdsoft_datetime.now();
+ currentTime = _xdsoft_datetime.currentTime;
+ }
+
+ if ($this.hasClass('xdsoft_disabled')) {
+ return false;
+ }
+ currentTime.setHours($this.data('hour'));
+ currentTime.setMinutes($this.data('minute'));
+ datetimepicker.trigger('select.xdsoft', [currentTime]);
+
+ datetimepicker.data('input').val(_xdsoft_datetime.str());
+ if (!options.inline) {
+ datetimepicker.trigger('close.xdsoft');
+ }
+
+ if (options.onSelectTime && $.isFunction(options.onSelectTime)) {
+ options.onSelectTime.call(datetimepicker, _xdsoft_datetime.currentTime, datetimepicker.data('input'), xdevent);
+ }
+ datetimepicker.data('changed', true);
+ datetimepicker.trigger('xchange.xdsoft');
+ datetimepicker.trigger('changedatetime.xdsoft');
+ });
+
+
+ datepicker
+ .on('mousewheel.xdsoft', function (event) {
+ if (!options.scrollMonth) {
+ return true;
+ }
+ if (event.deltaY < 0) {
+ _xdsoft_datetime.nextMonth();
+ } else {
+ _xdsoft_datetime.prevMonth();
+ }
+ return false;
+ });
+
+ input
+ .on('mousewheel.xdsoft', function (event) {
+ if (!options.scrollInput) {
+ return true;
+ }
+ if (!options.datepicker && options.timepicker) {
+ current_time_index = timebox.find('.xdsoft_current').length ? timebox.find('.xdsoft_current').eq(0).index() : 0;
+ if (current_time_index + event.deltaY >= 0 && current_time_index + event.deltaY < timebox.children().length) {
+ current_time_index += event.deltaY;
+ }
+ if (timebox.children().eq(current_time_index).length) {
+ timebox.children().eq(current_time_index).trigger('mousedown');
+ }
+ return false;
+ }
+ if (options.datepicker && !options.timepicker) {
+ datepicker.trigger(event, [event.deltaY, event.deltaX, event.deltaY]);
+ if (input.val) {
+ input.val(_xdsoft_datetime.str());
+ }
+ datetimepicker.trigger('changedatetime.xdsoft');
+ return false;
+ }
+ });
+
+ datetimepicker
+ .on('changedatetime.xdsoft', function (event) {
+ if (options.onChangeDateTime && $.isFunction(options.onChangeDateTime)) {
+ var $input = datetimepicker.data('input');
+ options.onChangeDateTime.call(datetimepicker, _xdsoft_datetime.currentTime, $input, event);
+ delete options.value;
+ $input.trigger('change');
+ }
+ })
+ .on('generate.xdsoft', function () {
+ if (options.onGenerate && $.isFunction(options.onGenerate)) {
+ options.onGenerate.call(datetimepicker, _xdsoft_datetime.currentTime, datetimepicker.data('input'));
+ }
+ if (triggerAfterOpen) {
+ datetimepicker.trigger('afterOpen.xdsoft');
+ triggerAfterOpen = false;
+ }
+ })
+ .on('click.xdsoft', function (xdevent) {
+ xdevent.stopPropagation();
+ });
+
+ current_time_index = 0;
+
+ setPos = function () {
+ var offset = datetimepicker.data('input').offset(), top = offset.top + datetimepicker.data('input')[0].offsetHeight - 1, left = offset.left, position = "absolute";
+ if (options.fixed) {
+ top -= $(window).scrollTop();
+ left -= $(window).scrollLeft();
+ position = "fixed";
+ } else {
+ if (top + datetimepicker[0].offsetHeight > $(window).height() + $(window).scrollTop()) {
+ top = offset.top - datetimepicker[0].offsetHeight + 1;
+ }
+ if (top < 0) {
+ top = 0;
+ }
+ if (left + datetimepicker[0].offsetWidth > $(window).width()) {
+ left = $(window).width() - datetimepicker[0].offsetWidth;
+ }
+ }
+ datetimepicker.css({
+ left: left,
+ top: top,
+ position: position
+ });
+ };
+ datetimepicker
+ .on('open.xdsoft', function (event) {
+ var onShow = true;
+ if (options.onShow && $.isFunction(options.onShow)) {
+ onShow = options.onShow.call(datetimepicker, _xdsoft_datetime.currentTime, datetimepicker.data('input'), event);
+ }
+ if (onShow !== false) {
+ datetimepicker.show();
+ setPos();
+ $(window)
+ .off('resize.xdsoft', setPos)
+ .on('resize.xdsoft', setPos);
+
+ if (options.closeOnWithoutClick) {
+ $([document.body, window]).on('mousedown.xdsoft', function arguments_callee6() {
+ datetimepicker.trigger('close.xdsoft');
+ $([document.body, window]).off('mousedown.xdsoft', arguments_callee6);
+ });
+ }
+ }
+ })
+ .on('close.xdsoft', function (event) {
+ var onClose = true;
+ mounth_picker
+ .find('.xdsoft_month,.xdsoft_year')
+ .find('.xdsoft_select')
+ .hide();
+ if (options.onClose && $.isFunction(options.onClose)) {
+ onClose = options.onClose.call(datetimepicker, _xdsoft_datetime.currentTime, datetimepicker.data('input'), event);
+ }
+ if (onClose !== false && !options.opened && !options.inline) {
+ datetimepicker.hide();
+ }
+ event.stopPropagation();
+ })
+ .on('toggle.xdsoft', function (event) {
+ datetimepicker.is(':visible') ? datetimepicker.trigger('close.xdsoft') : datetimepicker.trigger('open.xdsoft');
+ })
+ .data('input', input);
+
+ timer = 0;
+ timer1 = 0;
+
+ datetimepicker.data('xdsoft_datetime', _xdsoft_datetime);
+ datetimepicker.setOptions(options);
+
+ function getCurrentValue() {
+
+ var ct = false, time;
+
+ if (options.startDate) {
+ ct = _xdsoft_datetime.strToDate(options.startDate);
+ } else {
+ ct = options.value || ((input && input.val && input.val()) ? input.val() : '');
+ if (ct) {
+ ct = _xdsoft_datetime.strToDateTime(ct);
+ } else if (options.defaultDate) {
+ ct = _xdsoft_datetime.strToDate(options.defaultDate);
+ if (options.defaultTime) {
+ time = _xdsoft_datetime.strtotime(options.defaultTime);
+ ct.setHours(time.getHours());
+ ct.setMinutes(time.getMinutes());
+ }
+ }
+ }
+
+ if (ct && _xdsoft_datetime.isValidDate(ct)) {
+ datetimepicker.data('changed', true);
+ } else {
+ ct = '';
+ }
+
+ return ct || 0;
+ }
+
+ _xdsoft_datetime.setCurrentTime(getCurrentValue());
+
+ input
+ .data('xdsoft_datetimepicker', datetimepicker)
+ .on('open.xdsoft focusin.xdsoft mousedown.xdsoft', function (event) {
+ if (input.is(':disabled') || input.is(':hidden') || !input.is(':visible') || (input.data('xdsoft_datetimepicker').is(':visible') && options.closeOnInputClick)) {
+ return;
+ }
+ clearTimeout(timer);
+ timer = setTimeout(function () {
+ if (input.is(':disabled') || input.is(':hidden') || !input.is(':visible')) {
+ return;
+ }
+
+ triggerAfterOpen = true;
+ _xdsoft_datetime.setCurrentTime(getCurrentValue());
+
+ datetimepicker.trigger('open.xdsoft');
+ }, 100);
+ })
+ .on('keydown.xdsoft', function (event) {
+ var val = this.value, elementSelector,
+ key = event.which;
+ if ([ENTER].indexOf(key) !== -1 && options.enterLikeTab) {
+ elementSelector = $("input:visible,textarea:visible");
+ datetimepicker.trigger('close.xdsoft');
+ elementSelector.eq(elementSelector.index(this) + 1).focus();
+ return false;
+ }
+ if ([TAB].indexOf(key) !== -1) {
+ datetimepicker.trigger('close.xdsoft');
+ return true;
+ }
+ });
+ };
+ destroyDateTimePicker = function (input) {
+ var datetimepicker = input.data('xdsoft_datetimepicker');
+ if (datetimepicker) {
+ datetimepicker.data('xdsoft_datetime', null);
+ datetimepicker.remove();
+ input
+ .data('xdsoft_datetimepicker', null)
+ .off('.xdsoft');
+ $(window).off('resize.xdsoft');
+ $([window, document.body]).off('mousedown.xdsoft');
+ if (input.unmousewheel) {
+ input.unmousewheel();
+ }
+ }
+ };
+ $(document)
+ .off('keydown.xdsoftctrl keyup.xdsoftctrl')
+ .on('keydown.xdsoftctrl', function (e) {
+ if (e.keyCode === CTRLKEY) {
+ ctrlDown = true;
+ }
+ })
+ .on('keyup.xdsoftctrl', function (e) {
+ if (e.keyCode === CTRLKEY) {
+ ctrlDown = false;
+ }
+ });
+ return this.each(function () {
+ var datetimepicker = $(this).data('xdsoft_datetimepicker');
+ if (datetimepicker) {
+ if ($.type(opt) === 'string') {
+ switch (opt) {
+ case 'show':
+ $(this).select().focus();
+ datetimepicker.trigger('open.xdsoft');
+ break;
+ case 'hide':
+ datetimepicker.trigger('close.xdsoft');
+ break;
+ case 'toggle':
+ datetimepicker.trigger('toggle.xdsoft');
+ break;
+ case 'destroy':
+ destroyDateTimePicker($(this));
+ break;
+ case 'reset':
+ this.value = this.defaultValue;
+ if (!this.value || !datetimepicker.data('xdsoft_datetime').isValidDate(Date.parseDate(this.value, options.format))) {
+ datetimepicker.data('changed', false);
+ }
+ datetimepicker.data('xdsoft_datetime').setCurrentTime(this.value);
+ break;
+ }
+ } else {
+ datetimepicker
+ .setOptions(opt);
+ }
+ return 0;
+ }
+ if ($.type(opt) !== 'string') {
+ if (!options.lazyInit || options.open || options.inline) {
+ createDateTimePicker($(this));
+ } else {
+ lazyInit($(this));
+ }
+ }
+ });
+ };
+ $.fn.datetimepicker.defaults = default_options;
+}(jQuery));
+(function () {
+
+/*! Copyright (c) 2013 Brandon Aaron (http://brandon.aaron.sh)
+ * Licensed under the MIT License (LICENSE.txt).
+ *
+ * Version: 3.1.12
+ *
+ * Requires: jQuery 1.2.2+
+ */
+!function(a){"function"==typeof define&&define.amd?define(["jquery"],a):"object"==typeof exports?module.exports=a:a(jQuery)}(function(a){function b(b){var g=b||window.event,h=i.call(arguments,1),j=0,l=0,m=0,n=0,o=0,p=0;if(b=a.event.fix(g),b.type="mousewheel","detail"in g&&(m=-1*g.detail),"wheelDelta"in g&&(m=g.wheelDelta),"wheelDeltaY"in g&&(m=g.wheelDeltaY),"wheelDeltaX"in g&&(l=-1*g.wheelDeltaX),"axis"in g&&g.axis===g.HORIZONTAL_AXIS&&(l=-1*m,m=0),j=0===m?l:m,"deltaY"in g&&(m=-1*g.deltaY,j=m),"deltaX"in g&&(l=g.deltaX,0===m&&(j=-1*l)),0!==m||0!==l){if(1===g.deltaMode){var q=a.data(this,"mousewheel-line-height");j*=q,m*=q,l*=q}else if(2===g.deltaMode){var r=a.data(this,"mousewheel-page-height");j*=r,m*=r,l*=r}if(n=Math.max(Math.abs(m),Math.abs(l)),(!f||f>n)&&(f=n,d(g,n)&&(f/=40)),d(g,n)&&(j/=40,l/=40,m/=40),j=Math[j>=1?"floor":"ceil"](j/f),l=Math[l>=1?"floor":"ceil"](l/f),m=Math[m>=1?"floor":"ceil"](m/f),k.settings.normalizeOffset&&this.getBoundingClientRect){var s=this.getBoundingClientRect();o=b.clientX-s.left,p=b.clientY-s.top}return b.deltaX=l,b.deltaY=m,b.deltaFactor=f,b.offsetX=o,b.offsetY=p,b.deltaMode=0,h.unshift(b,j,l,m),e&&clearTimeout(e),e=setTimeout(c,200),(a.event.dispatch||a.event.handle).apply(this,h)}}function c(){f=null}function d(a,b){return k.settings.adjustOldDeltas&&"mousewheel"===a.type&&b%120===0}var e,f,g=["wheel","mousewheel","DOMMouseScroll","MozMousePixelScroll"],h="onwheel"in document||document.documentMode>=9?["wheel"]:["mousewheel","DomMouseScroll","MozMousePixelScroll"],i=Array.prototype.slice;if(a.event.fixHooks)for(var j=g.length;j;)a.event.fixHooks[g[--j]]=a.event.mouseHooks;var k=a.event.special.mousewheel={version:"3.1.12",setup:function(){if(this.addEventListener)for(var c=h.length;c;)this.addEventListener(h[--c],b,!1);else this.onmousewheel=b;a.data(this,"mousewheel-line-height",k.getLineHeight(this)),a.data(this,"mousewheel-page-height",k.getPageHeight(this))},teardown:function(){if(this.removeEventListener)for(var c=h.length;c;)this.removeEventListener(h[--c],b,!1);else this.onmousewheel=null;a.removeData(this,"mousewheel-line-height"),a.removeData(this,"mousewheel-page-height")},getLineHeight:function(b){var c=a(b),d=c["offsetParent"in a.fn?"offsetParent":"parent"]();return d.length||(d=a("body")),parseInt(d.css("fontSize"),10)||parseInt(c.css("fontSize"),10)||16},getPageHeight:function(b){return a(b).height()},settings:{adjustOldDeltas:!0,normalizeOffset:!0}};a.fn.extend({mousewheel:function(a){return a?this.bind("mousewheel",a):this.trigger("mousewheel")},unmousewheel:function(a){return this.unbind("mousewheel",a)}})});
+
+// Parse and Format Library
+//http://www.xaprb.com/blog/2005/12/12/javascript-closures-for-runtime-efficiency/
+/*
+ * Copyright (C) 2004 Baron Schwartz <baron at sequent dot org>
+ *
+ * This program 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, version 2.1.
+ *
+ * This program 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.
+ */
+Date.parseFunctions={count:0};Date.parseRegexes=[];Date.formatFunctions={count:0};Date.prototype.dateFormat=function(b){if(b=="unixtime"){return parseInt(this.getTime()/1000);}if(Date.formatFunctions[b]==null){Date.createNewFormat(b);}var a=Date.formatFunctions[b];return this[a]();};Date.createNewFormat=function(format){var funcName="format"+Date.formatFunctions.count++;Date.formatFunctions[format]=funcName;var code="Date.prototype."+funcName+" = function() {return ";var special=false;var ch="";for(var i=0;i<format.length;++i){ch=format.charAt(i);if(!special&&ch=="\\"){special=true;}else{if(special){special=false;code+="'"+String.escape(ch)+"' + ";}else{code+=Date.getFormatCode(ch);}}}eval(code.substring(0,code.length-3)+";}");};Date.getFormatCode=function(a){switch(a){case"d":return"String.leftPad(this.getDate(), 2, '0') + ";case"D":return"Date.dayNames[this.getDay()].substring(0, 3) + ";case"j":return"this.getDate() + ";case"l":return"Date.dayNames[this.getDay()] + ";case"S":return"this.getSuffix() + ";case"w":return"this.getDay() + ";case"z":return"this.getDayOfYear() + ";case"W":return"this.getWeekOfYear() + ";case"F":return"Date.monthNames[this.getMonth()] + ";case"m":return"String.leftPad(this.getMonth() + 1, 2, '0') + ";case"M":return"Date.monthNames[this.getMonth()].substring(0, 3) + ";case"n":return"(this.getMonth() + 1) + ";case"t":return"this.getDaysInMonth() + ";case"L":return"(this.isLeapYear() ? 1 : 0) + ";case"Y":return"this.getFullYear() + ";case"y":return"('' + this.getFullYear()).substring(2, 4) + ";case"a":return"(this.getHours() < 12 ? 'am' : 'pm') + ";case"A":return"(this.getHours() < 12 ? 'AM' : 'PM') + ";case"g":return"((this.getHours() %12) ? this.getHours() % 12 : 12) + ";case"G":return"this.getHours() + ";case"h":return"String.leftPad((this.getHours() %12) ? this.getHours() % 12 : 12, 2, '0') + ";case"H":return"String.leftPad(this.getHours(), 2, '0') + ";case"i":return"String.leftPad(this.getMinutes(), 2, '0') + ";case"s":return"String.leftPad(this.getSeconds(), 2, '0') + ";case"O":return"this.getGMTOffset() + ";case"T":return"this.getTimezone() + ";case"Z":return"(this.getTimezoneOffset() * -60) + ";default:return"'"+String.escape(a)+"' + ";}};Date.parseDate=function(a,c){if(c=="unixtime"){return new Date(!isNaN(parseInt(a))?parseInt(a)*1000:0);}if(Date.parseFunctions[c]==null){Date.createParser(c);}var b=Date.parseFunctions[c];return Date[b](a);};Date.createParser=function(format){var funcName="parse"+Date.parseFunctions.count++;var regexNum=Date.parseRegexes.length;var currentGroup=1;Date.parseFunctions[format]=funcName;var code="Date."+funcName+" = function(input) {\nvar y = -1, m = -1, d = -1, h = -1, i = -1, s = -1, z = -1;\nvar d = new Date();\ny = d.getFullYear();\nm = d.getMonth();\nd = d.getDate();\nvar results = input.match(Date.parseRegexes["+regexNum+"]);\nif (results && results.length > 0) {";var regex="";var special=false;var ch="";for(var i=0;i<format.length;++i){ch=format.charAt(i);if(!special&&ch=="\\"){special=true;}else{if(special){special=false;regex+=String.escape(ch);}else{obj=Date.formatCodeToRegex(ch,currentGroup);currentGroup+=obj.g;regex+=obj.s;if(obj.g&&obj.c){code+=obj.c;}}}}code+="if (y > 0 && z > 0){\nvar doyDate = new Date(y,0);\ndoyDate.setDate(z);\nm = doyDate.getMonth();\nd = doyDate.getDate();\n}";code+="if (y > 0 && m >= 0 && d > 0 && h >= 0 && i >= 0 && s >= 0)\n{return new Date(y, m, d, h, i, s);}\nelse if (y > 0 && m >= 0 && d > 0 && h >= 0 && i >= 0)\n{return new Date(y, m, d, h, i);}\nelse if (y > 0 && m >= 0 && d > 0 && h >= 0)\n{return new Date(y, m, d, h);}\nelse if (y > 0 && m >= 0 && d > 0)\n{return new Date(y, m, d);}\nelse if (y > 0 && m >= 0)\n{return new Date(y, m);}\nelse if (y > 0)\n{return new Date(y);}\n}return null;}";Date.parseRegexes[regexNum]=new RegExp("^"+regex+"$");eval(code);};Date.formatCodeToRegex=function(b,a){switch(b){case"D":return{g:0,c:null,s:"(?:Sun|Mon|Tue|Wed|Thu|Fri|Sat)"};case"j":case"d":return{g:1,c:"d = parseInt(results["+a+"], 10);\n",s:"(\\d{1,2})"};case"l":return{g:0,c:null,s:"(?:"+Date.dayNames.join("|")+")"};case"S":return{g:0,c:null,s:"(?:st|nd|rd|th)"};case"w":return{g:0,c:null,s:"\\d"};case"z":return{g:1,c:"z = parseInt(results["+a+"], 10);\n",s:"(\\d{1,3})"};case"W":return{g:0,c:null,s:"(?:\\d{2})"};case"F":return{g:1,c:"m = parseInt(Date.monthNumbers[results["+a+"].substring(0, 3)], 10);\n",s:"("+Date.monthNames.join("|")+")"};case"M":return{g:1,c:"m = parseInt(Date.monthNumbers[results["+a+"]], 10);\n",s:"(Jan|Feb|Mar|Apr|May|Jun|Jul|Aug|Sep|Oct|Nov|Dec)"};case"n":case"m":return{g:1,c:"m = parseInt(results["+a+"], 10) - 1;\n",s:"(\\d{1,2})"};case"t":return{g:0,c:null,s:"\\d{1,2}"};case"L":return{g:0,c:null,s:"(?:1|0)"};case"Y":return{g:1,c:"y = parseInt(results["+a+"], 10);\n",s:"(\\d{4})"};case"y":return{g:1,c:"var ty = parseInt(results["+a+"], 10);\ny = ty > Date.y2kYear ? 1900 + ty : 2000 + ty;\n",s:"(\\d{1,2})"};case"a":return{g:1,c:"if (results["+a+"] == 'am') {\nif (h == 12) { h = 0; }\n} else { if (h < 12) { h += 12; }}",s:"(am|pm)"};case"A":return{g:1,c:"if (results["+a+"] == 'AM') {\nif (h == 12) { h = 0; }\n} else { if (h < 12) { h += 12; }}",s:"(AM|PM)"};case"g":case"G":case"h":case"H":return{g:1,c:"h = parseInt(results["+a+"], 10);\n",s:"(\\d{1,2})"};case"i":return{g:1,c:"i = parseInt(results["+a+"], 10);\n",s:"(\\d{2})"};case"s":return{g:1,c:"s = parseInt(results["+a+"], 10);\n",s:"(\\d{2})"};case"O":return{g:0,c:null,s:"[+-]\\d{4}"};case"T":return{g:0,c:null,s:"[A-Z]{3}"};case"Z":return{g:0,c:null,s:"[+-]\\d{1,5}"};default:return{g:0,c:null,s:String.escape(b)};}};Date.prototype.getTimezone=function(){return this.toString().replace(/^.*? ([A-Z]{3}) [0-9]{4}.*$/,"$1").replace(/^.*?\(([A-Z])[a-z]+ ([A-Z])[a-z]+ ([A-Z])[a-z]+\)$/,"$1$2$3");};Date.prototype.getGMTOffset=function(){return(this.getTimezoneOffset()>0?"-":"+")+String.leftPad(Math.floor(Math.abs(this.getTimezoneOffset())/60),2,"0")+String.leftPad(Math.abs(this.getTimezoneOffset())%60,2,"0");};Date.prototype.getDayOfYear=function(){var a=0;Date.daysInMonth[1]=this.isLeapYear()?29:28;for(var b=0;b<this.getMonth();++b){a+=Date.daysInMonth[b];}return a+this.getDate();};Date.prototype.getWeekOfYear=function(){var b=this.getDayOfYear()+(4-this.getDay());var a=new Date(this.getFullYear(),0,1);var c=(7-a.getDay()+4);return String.leftPad(Math.ceil((b-c)/7)+1,2,"0");};Date.prototype.isLeapYear=function(){var a=this.getFullYear();return((a&3)==0&&(a%100||(a%400==0&&a)));};Date.prototype.getFirstDayOfMonth=function(){var a=(this.getDay()-(this.getDate()-1))%7;return(a<0)?(a+7):a;};Date.prototype.getLastDayOfMonth=function(){var a=(this.getDay()+(Date.daysInMonth[this.getMonth()]-this.getDate()))%7;return(a<0)?(a+7):a;};Date.prototype.getDaysInMonth=function(){Date.daysInMonth[1]=this.isLeapYear()?29:28;return Date.daysInMonth[this.getMonth()];};Date.prototype.getSuffix=function(){switch(this.getDate()){case 1:case 21:case 31:return"st";case 2:case 22:return"nd";case 3:case 23:return"rd";default:return"th";}};String.escape=function(a){return a.replace(/('|\\)/g,"\\$1");};String.leftPad=function(d,b,c){var a=new String(d);if(c==null){c=" ";}while(a.length<b){a=c+a;}return a;};Date.daysInMonth=[31,28,31,30,31,30,31,31,30,31,30,31];Date.monthNames=["January","February","March","April","May","June","July","August","September","October","November","December"];Date.dayNames=["Sunday","Monday","Tuesday","Wednesday","Thursday","Friday","Saturday"];Date.y2kYear=50;Date.monthNumbers={Jan:0,Feb:1,Mar:2,Apr:3,May:4,Jun:5,Jul:6,Aug:7,Sep:8,Oct:9,Nov:10,Dec:11};Date.patterns={ISO8601LongPattern:"Y-m-d H:i:s",ISO8601ShortPattern:"Y-m-d",ShortDatePattern:"n/j/Y",LongDatePattern:"l, F d, Y",FullDateTimePattern:"l, F d, Y g:i:s A",MonthDayPattern:"F d",ShortTimePattern:"g:i A",LongTimePattern:"g:i:s A",SortableDateTimePattern:"Y-m-d\\TH:i:s",UniversalSortableDateTimePattern:"Y-m-d H:i:sO",YearMonthPattern:"F, Y"};
+}());
diff --git a/library/jquery-textcomplete/LICENSE b/library/jquery-textcomplete/LICENSE
new file mode 100644
index 000000000..4848bd637
--- /dev/null
+++ b/library/jquery-textcomplete/LICENSE
@@ -0,0 +1,21 @@
+The MIT License (MIT)
+
+Copyright (c) 2013-2014 Yuku Takahashi
+
+Permission is hereby granted, free of charge, to any person obtaining a copy
+of this software and associated documentation files (the "Software"), to deal
+in the Software without restriction, including without limitation the rights
+to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
+copies of the Software, and to permit persons to whom the Software is
+furnished to do so, subject to the following conditions:
+
+The above copyright notice and this permission notice shall be included in
+all copies or substantial portions of the Software.
+
+THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
+THE SOFTWARE.
diff --git a/library/jquery-textcomplete/jquery.textcomplete.js b/library/jquery-textcomplete/jquery.textcomplete.js
new file mode 100644
index 000000000..1e61683ea
--- /dev/null
+++ b/library/jquery-textcomplete/jquery.textcomplete.js
@@ -0,0 +1,1088 @@
+/*!
+ * jQuery.textcomplete
+ *
+ * Repository: https://github.com/yuku-t/jquery-textcomplete
+ * License: MIT (https://github.com/yuku-t/jquery-textcomplete/blob/master/LICENSE)
+ * Author: Yuku Takahashi
+ */
+
+if (typeof jQuery === 'undefined') {
+ throw new Error('jQuery.textcomplete requires jQuery');
+}
+
++function ($) {
+ 'use strict';
+
+ var warn = function (message) {
+ if (console.warn) { console.warn(message); }
+ };
+
+ $.fn.textcomplete = function (strategies, option) {
+ var args = Array.prototype.slice.call(arguments);
+ return this.each(function () {
+ var $this = $(this);
+ var completer = $this.data('textComplete');
+ if (!completer) {
+ completer = new $.fn.textcomplete.Completer(this, option || {});
+ $this.data('textComplete', completer);
+ }
+ if (typeof strategies === 'string') {
+ if (!completer) return;
+ args.shift()
+ completer[strategies].apply(completer, args);
+ if (strategies === 'destroy') {
+ $this.removeData('textComplete');
+ }
+ } else {
+ // For backward compatibility.
+ // TODO: Remove at v0.4
+ $.each(strategies, function (obj) {
+ $.each(['header', 'footer', 'placement', 'maxCount'], function (name) {
+ if (obj[name]) {
+ completer.option[name] = obj[name];
+ warn(name + 'as a strategy param is deprecated. Use option.');
+ delete obj[name];
+ }
+ });
+ });
+ completer.register($.fn.textcomplete.Strategy.parse(strategies));
+ }
+ });
+ };
+
+}(jQuery);
+
++function ($) {
+ 'use strict';
+
+ // Exclusive execution control utility.
+ //
+ // func - The function to be locked. It is executed with a function named
+ // `free` as the first argument. Once it is called, additional
+ // execution are ignored until the free is invoked. Then the last
+ // ignored execution will be replayed immediately.
+ //
+ // Examples
+ //
+ // var lockedFunc = lock(function (free) {
+ // setTimeout(function { free(); }, 1000); // It will be free in 1 sec.
+ // console.log('Hello, world');
+ // });
+ // lockedFunc(); // => 'Hello, world'
+ // lockedFunc(); // none
+ // lockedFunc(); // none
+ // // 1 sec past then
+ // // => 'Hello, world'
+ // lockedFunc(); // => 'Hello, world'
+ // lockedFunc(); // none
+ //
+ // Returns a wrapped function.
+ var lock = function (func) {
+ var locked, queuedArgsToReplay;
+
+ return function () {
+ // Convert arguments into a real array.
+ var args = Array.prototype.slice.call(arguments);
+ if (locked) {
+ // Keep a copy of this argument list to replay later.
+ // OK to overwrite a previous value because we only replay
+ // the last one.
+ queuedArgsToReplay = args;
+ return;
+ }
+ locked = true;
+ var self = this;
+ args.unshift(function replayOrFree() {
+ if (queuedArgsToReplay) {
+ // Other request(s) arrived while we were locked.
+ // Now that the lock is becoming available, replay
+ // the latest such request, then call back here to
+ // unlock (or replay another request that arrived
+ // while this one was in flight).
+ var replayArgs = queuedArgsToReplay;
+ queuedArgsToReplay = undefined;
+ replayArgs.unshift(replayOrFree);
+ func.apply(self, replayArgs);
+ } else {
+ locked = false;
+ }
+ });
+ func.apply(this, args);
+ };
+ };
+
+ var isString = function (obj) {
+ return Object.prototype.toString.call(obj) === '[object String]';
+ };
+
+ var uniqueId = 0;
+
+ function Completer(element, option) {
+ this.$el = $(element);
+ this.id = 'textcomplete' + uniqueId++;
+ this.strategies = [];
+ this.views = [];
+ this.option = $.extend({}, Completer._getDefaults(), option);
+
+ if (!this.$el.is('textarea') && !element.isContentEditable && element.contentEditable != 'true') {
+ throw new Error('textcomplete must be called on a Textarea or a ContentEditable.');
+ }
+
+ if (element === document.activeElement) {
+ // element has already been focused. Initialize view objects immediately.
+ this.initialize()
+ } else {
+ // Initialize view objects lazily.
+ var self = this;
+ this.$el.one('focus.' + this.id, function () { self.initialize(); });
+ }
+ }
+
+ Completer._getDefaults = function () {
+ if (!Completer.DEFAULTS) {
+ Completer.DEFAULTS = {
+ appendTo: $('body'),
+ zIndex: '100'
+ };
+ }
+
+ return Completer.DEFAULTS;
+ }
+
+ $.extend(Completer.prototype, {
+ // Public properties
+ // -----------------
+
+ id: null,
+ option: null,
+ strategies: null,
+ adapter: null,
+ dropdown: null,
+ $el: null,
+
+ // Public methods
+ // --------------
+
+ initialize: function () {
+ var element = this.$el.get(0);
+ // Initialize view objects.
+ this.dropdown = new $.fn.textcomplete.Dropdown(element, this, this.option);
+ var Adapter, viewName;
+ if (this.option.adapter) {
+ Adapter = this.option.adapter;
+ } else {
+ if (this.$el.is('textarea')) {
+ viewName = typeof element.selectionEnd === 'number' ? 'Textarea' : 'IETextarea';
+ } else {
+ viewName = 'ContentEditable';
+ }
+ Adapter = $.fn.textcomplete[viewName];
+ }
+ this.adapter = new Adapter(element, this, this.option);
+ },
+
+ destroy: function () {
+ this.$el.off('.' + this.id);
+ if (this.adapter) {
+ this.adapter.destroy();
+ }
+ if (this.dropdown) {
+ this.dropdown.destroy();
+ }
+ this.$el = this.adapter = this.dropdown = null;
+ },
+
+ // Invoke textcomplete.
+ trigger: function (text, skipUnchangedTerm) {
+ if (!this.dropdown) { this.initialize(); }
+ text != null || (text = this.adapter.getTextFromHeadToCaret());
+ var searchQuery = this._extractSearchQuery(text);
+ if (searchQuery.length) {
+ var term = searchQuery[1];
+ // Ignore shift-key, ctrl-key and so on.
+ if (skipUnchangedTerm && this._term === term) { return; }
+ this._term = term;
+ this._search.apply(this, searchQuery);
+ } else {
+ this._term = null;
+ this.dropdown.deactivate();
+ }
+ },
+
+ fire: function (eventName) {
+ var args = Array.prototype.slice.call(arguments, 1);
+ this.$el.trigger(eventName, args);
+ return this;
+ },
+
+ register: function (strategies) {
+ Array.prototype.push.apply(this.strategies, strategies);
+ },
+
+ // Insert the value into adapter view. It is called when the dropdown is clicked
+ // or selected.
+ //
+ // value - The selected element of the array callbacked from search func.
+ // strategy - The Strategy object.
+ select: function (value, strategy) {
+ this.adapter.select(value, strategy);
+ this.fire('change').fire('textComplete:select', value, strategy);
+ this.adapter.focus();
+ },
+
+ // Private properties
+ // ------------------
+
+ _clearAtNext: true,
+ _term: null,
+
+ // Private methods
+ // ---------------
+
+ // Parse the given text and extract the first matching strategy.
+ //
+ // Returns an array including the strategy, the query term and the match
+ // object if the text matches an strategy; otherwise returns an empty array.
+ _extractSearchQuery: function (text) {
+ for (var i = 0; i < this.strategies.length; i++) {
+ var strategy = this.strategies[i];
+ var context = strategy.context(text);
+ if (context || context === '') {
+ if (isString(context)) { text = context; }
+ var match = text.match(strategy.match);
+ if (match) { return [strategy, match[strategy.index], match]; }
+ }
+ }
+ return []
+ },
+
+ // Call the search method of selected strategy..
+ _search: lock(function (free, strategy, term, match) {
+ var self = this;
+ strategy.search(term, function (data, stillSearching) {
+ if (!self.dropdown.shown) {
+ self.dropdown.activate();
+ self.dropdown.setPosition(self.adapter.getCaretPosition());
+ }
+ if (self._clearAtNext) {
+ // The first callback in the current lock.
+ self.dropdown.clear();
+ self._clearAtNext = false;
+ }
+ self.dropdown.render(self._zip(data, strategy));
+ if (!stillSearching) {
+ // The last callback in the current lock.
+ free();
+ self._clearAtNext = true; // Call dropdown.clear at the next time.
+ }
+ }, match);
+ }),
+
+ // Build a parameter for Dropdown#render.
+ //
+ // Examples
+ //
+ // this._zip(['a', 'b'], 's');
+ // //=> [{ value: 'a', strategy: 's' }, { value: 'b', strategy: 's' }]
+ _zip: function (data, strategy) {
+ return $.map(data, function (value) {
+ return { value: value, strategy: strategy };
+ });
+ }
+ });
+
+ $.fn.textcomplete.Completer = Completer;
+}(jQuery);
+
++function ($) {
+ 'use strict';
+
+ var include = function (zippedData, datum) {
+ var i, elem;
+ var idProperty = datum.strategy.idProperty
+ for (i = 0; i < zippedData.length; i++) {
+ elem = zippedData[i];
+ if (elem.strategy !== datum.strategy) continue;
+ if (idProperty) {
+ if (elem.value[idProperty] === datum.value[idProperty]) return true;
+ } else {
+ if (elem.value === datum.value) return true;
+ }
+ }
+ return false;
+ };
+
+ var dropdownViews = {};
+ $(document).on('click', function (e) {
+ var id = e.originalEvent && e.originalEvent.keepTextCompleteDropdown;
+ $.each(dropdownViews, function (key, view) {
+ if (key !== id) { view.deactivate(); }
+ });
+ });
+
+ // Dropdown view
+ // =============
+
+ // Construct Dropdown object.
+ //
+ // element - Textarea or contenteditable element.
+ function Dropdown(element, completer, option) {
+ this.$el = Dropdown.findOrCreateElement(option);
+ this.completer = completer;
+ this.id = completer.id + 'dropdown';
+ this._data = []; // zipped data.
+ this.$inputEl = $(element);
+ this.option = option;
+
+ // Override setPosition method.
+ if (option.listPosition) { this.setPosition = option.listPosition; }
+ if (option.height) { this.$el.height(option.height); }
+ var self = this;
+ $.each(['maxCount', 'placement', 'footer', 'header', 'className'], function (_i, name) {
+ if (option[name] != null) { self[name] = option[name]; }
+ });
+ this._bindEvents(element);
+ dropdownViews[this.id] = this;
+ }
+
+ $.extend(Dropdown, {
+ // Class methods
+ // -------------
+
+ findOrCreateElement: function (option) {
+ var $parent = option.appendTo;
+ if (!($parent instanceof $)) { $parent = $($parent); }
+ var $el = $parent.children('.dropdown-menu')
+ if (!$el.length) {
+ $el = $('<ul class="dropdown-menu"></ul>').css({
+ display: 'none',
+ left: 0,
+ position: 'absolute',
+ zIndex: option.zIndex
+ }).appendTo($parent);
+ }
+ return $el;
+ }
+ });
+
+ $.extend(Dropdown.prototype, {
+ // Public properties
+ // -----------------
+
+ $el: null, // jQuery object of ul.dropdown-menu element.
+ $inputEl: null, // jQuery object of target textarea.
+ completer: null,
+ footer: null,
+ header: null,
+ id: null,
+ maxCount: 10,
+ placement: '',
+ shown: false,
+ data: [], // Shown zipped data.
+ className: '',
+
+ // Public methods
+ // --------------
+
+ destroy: function () {
+ // Don't remove $el because it may be shared by several textcompletes.
+ this.deactivate();
+
+ this.$el.off('.' + this.id);
+ this.$inputEl.off('.' + this.id);
+ this.clear();
+ this.$el = this.$inputEl = this.completer = null;
+ delete dropdownViews[this.id]
+ },
+
+ render: function (zippedData) {
+ var contentsHtml = this._buildContents(zippedData);
+ var unzippedData = $.map(this.data, function (d) { return d.value; });
+ if (this.data.length) {
+ this._renderHeader(unzippedData);
+ this._renderFooter(unzippedData);
+ if (contentsHtml) {
+ this._renderContents(contentsHtml);
+ this._activateIndexedItem();
+ }
+ this._setScroll();
+ } else if (this.shown) {
+ this.deactivate();
+ }
+ },
+
+ setPosition: function (position) {
+ this.$el.css(this._applyPlacement(position));
+ return this;
+ },
+
+ clear: function () {
+ this.$el.html('');
+ this.data = [];
+ this._index = 0;
+ this._$header = this._$footer = null;
+ },
+
+ activate: function () {
+ if (!this.shown) {
+ this.clear();
+ this.$el.show();
+ if (this.className) { this.$el.addClass(this.className); }
+ this.completer.fire('textComplete:show');
+ this.shown = true;
+ }
+ return this;
+ },
+
+ deactivate: function () {
+ if (this.shown) {
+ this.$el.hide();
+ if (this.className) { this.$el.removeClass(this.className); }
+ this.completer.fire('textComplete:hide');
+ this.shown = false;
+ }
+ return this;
+ },
+
+ isUp: function (e) {
+ return e.keyCode === 38 || (e.ctrlKey && e.keyCode === 80); // UP, Ctrl-P
+ },
+
+ isDown: function (e) {
+ return e.keyCode === 40 || (e.ctrlKey && e.keyCode === 78); // DOWN, Ctrl-N
+ },
+
+ isEnter: function (e) {
+ var modifiers = e.ctrlKey || e.altKey || e.metaKey || e.shiftKey;
+ return !modifiers && (e.keyCode === 13 || e.keyCode === 9 || (this.option.completeOnSpace === true && e.keyCode === 32)) // ENTER, TAB
+ },
+
+ isPageup: function (e) {
+ return e.keyCode === 33; // PAGEUP
+ },
+
+ isPagedown: function (e) {
+ return e.keyCode === 34; // PAGEDOWN
+ },
+
+ // Private properties
+ // ------------------
+
+ _data: null, // Currently shown zipped data.
+ _index: null,
+ _$header: null,
+ _$footer: null,
+
+ // Private methods
+ // ---------------
+
+ _bindEvents: function () {
+ this.$el.on('mousedown.' + this.id, '.textcomplete-item', $.proxy(this._onClick, this))
+ this.$el.on('mouseover.' + this.id, '.textcomplete-item', $.proxy(this._onMouseover, this));
+ this.$inputEl.on('keydown.' + this.id, $.proxy(this._onKeydown, this));
+ },
+
+ _onClick: function (e) {
+ var $el = $(e.target);
+ e.preventDefault();
+ e.originalEvent.keepTextCompleteDropdown = this.id;
+ if (!$el.hasClass('textcomplete-item')) {
+ $el = $el.closest('.textcomplete-item');
+ }
+ var datum = this.data[parseInt($el.data('index'), 10)];
+ this.completer.select(datum.value, datum.strategy);
+ var self = this;
+ // Deactive at next tick to allow other event handlers to know whether
+ // the dropdown has been shown or not.
+ setTimeout(function () { self.deactivate(); }, 0);
+ },
+
+ // Activate hovered item.
+ _onMouseover: function (e) {
+ var $el = $(e.target);
+ e.preventDefault();
+ if (!$el.hasClass('textcomplete-item')) {
+ $el = $el.closest('.textcomplete-item');
+ }
+ this._index = parseInt($el.data('index'), 10);
+ this._activateIndexedItem();
+ },
+
+ _onKeydown: function (e) {
+ if (!this.shown) { return; }
+ if (this.isUp(e)) {
+ e.preventDefault();
+ this._up();
+ } else if (this.isDown(e)) {
+ e.preventDefault();
+ this._down();
+ } else if (this.isEnter(e)) {
+ e.preventDefault();
+ this._enter();
+ } else if (this.isPageup(e)) {
+ e.preventDefault();
+ this._pageup();
+ } else if (this.isPagedown(e)) {
+ e.preventDefault();
+ this._pagedown();
+ }
+ },
+
+ _up: function () {
+ if (this._index === 0) {
+ this._index = this.data.length - 1;
+ } else {
+ this._index -= 1;
+ }
+ this._activateIndexedItem();
+ this._setScroll();
+ },
+
+ _down: function () {
+ if (this._index === this.data.length - 1) {
+ this._index = 0;
+ } else {
+ this._index += 1;
+ }
+ this._activateIndexedItem();
+ this._setScroll();
+ },
+
+ _enter: function () {
+ var datum = this.data[parseInt(this._getActiveElement().data('index'), 10)];
+ this.completer.select(datum.value, datum.strategy);
+ this._setScroll();
+ },
+
+ _pageup: function () {
+ var target = 0;
+ var threshold = this._getActiveElement().position().top - this.$el.innerHeight();
+ this.$el.children().each(function (i) {
+ if ($(this).position().top + $(this).outerHeight() > threshold) {
+ target = i;
+ return false;
+ }
+ });
+ this._index = target;
+ this._activateIndexedItem();
+ this._setScroll();
+ },
+
+ _pagedown: function () {
+ var target = this.data.length - 1;
+ var threshold = this._getActiveElement().position().top + this.$el.innerHeight();
+ this.$el.children().each(function (i) {
+ if ($(this).position().top > threshold) {
+ target = i;
+ return false
+ }
+ });
+ this._index = target;
+ this._activateIndexedItem();
+ this._setScroll();
+ },
+
+ _activateIndexedItem: function () {
+ this.$el.find('.textcomplete-item.active').removeClass('active');
+ this._getActiveElement().addClass('active');
+ },
+
+ _getActiveElement: function () {
+ return this.$el.children('.textcomplete-item:nth(' + this._index + ')');
+ },
+
+ _setScroll: function () {
+ var $activeEl = this._getActiveElement();
+ var itemTop = $activeEl.position().top;
+ var itemHeight = $activeEl.outerHeight();
+ var visibleHeight = this.$el.innerHeight();
+ var visibleTop = this.$el.scrollTop();
+ if (this._index === 0 || this._index == this.data.length - 1 || itemTop < 0) {
+ this.$el.scrollTop(itemTop + visibleTop);
+ } else if (itemTop + itemHeight > visibleHeight) {
+ this.$el.scrollTop(itemTop + itemHeight + visibleTop - visibleHeight);
+ }
+ },
+
+ _buildContents: function (zippedData) {
+ var datum, i, index;
+ var html = '';
+ for (i = 0; i < zippedData.length; i++) {
+ if (this.data.length === this.maxCount) break;
+ datum = zippedData[i];
+ if (include(this.data, datum)) { continue; }
+ index = this.data.length;
+ this.data.push(datum);
+ html += '<li class="textcomplete-item" data-index="' + index + '"><a>';
+ html += datum.strategy.template(datum.value);
+ html += '</a></li>';
+ }
+ return html;
+ },
+
+ _renderHeader: function (unzippedData) {
+ if (this.header) {
+ if (!this._$header) {
+ this._$header = $('<li class="textcomplete-header"></li>').prependTo(this.$el);
+ }
+ var html = $.isFunction(this.header) ? this.header(unzippedData) : this.header;
+ this._$header.html(html);
+ }
+ },
+
+ _renderFooter: function (unzippedData) {
+ if (this.footer) {
+ if (!this._$footer) {
+ this._$footer = $('<li class="textcomplete-footer"></li>').appendTo(this.$el);
+ }
+ var html = $.isFunction(this.footer) ? this.footer(unzippedData) : this.footer;
+ this._$footer.html(html);
+ }
+ },
+
+ _renderContents: function (html) {
+ if (this._$footer) {
+ this._$footer.before(html);
+ } else {
+ this.$el.append(html);
+ }
+ },
+
+ _applyPlacement: function (position) {
+ // If the 'placement' option set to 'top', move the position above the element.
+ if (this.placement.indexOf('top') !== -1) {
+ // Overwrite the position object to set the 'bottom' property instead of the top.
+ position = {
+ top: 'auto',
+ bottom: this.$el.parent().height() - position.top + position.lineHeight,
+ left: position.left
+ };
+ } else {
+ position.bottom = 'auto';
+ delete position.lineHeight;
+ }
+ if (this.placement.indexOf('absleft') !== -1) {
+ position.left = 0;
+ } else if (this.placement.indexOf('absright') !== -1) {
+ position.right = 0;
+ position.left = 'auto';
+ }
+ return position;
+ }
+ });
+
+ $.fn.textcomplete.Dropdown = Dropdown;
+}(jQuery);
+
++function ($) {
+ 'use strict';
+
+ // Memoize a search function.
+ var memoize = function (func) {
+ var memo = {};
+ return function (term, callback) {
+ if (memo[term]) {
+ callback(memo[term]);
+ } else {
+ func.call(this, term, function (data) {
+ memo[term] = (memo[term] || []).concat(data);
+ callback.apply(null, arguments);
+ });
+ }
+ };
+ };
+
+ function Strategy(options) {
+ $.extend(this, options);
+ if (this.cache) { this.search = memoize(this.search); }
+ }
+
+ Strategy.parse = function (optionsArray) {
+ return $.map(optionsArray, function (options) {
+ return new Strategy(options);
+ });
+ };
+
+ $.extend(Strategy.prototype, {
+ // Public properties
+ // -----------------
+
+ // Required
+ match: null,
+ replace: null,
+ search: null,
+
+ // Optional
+ cache: false,
+ context: function () { return true; },
+ index: 2,
+ template: function (obj) { return obj; },
+ idProperty: null
+ });
+
+ $.fn.textcomplete.Strategy = Strategy;
+
+}(jQuery);
+
++function ($) {
+ 'use strict';
+
+ var now = Date.now || function () { return new Date().getTime(); };
+
+ // Returns a function, that, as long as it continues to be invoked, will not
+ // be triggered. The function will be called after it stops being called for
+ // `wait` msec.
+ //
+ // This utility function was originally implemented at Underscore.js.
+ var debounce = function (func, wait) {
+ var timeout, args, context, timestamp, result;
+ var later = function () {
+ var last = now() - timestamp;
+ if (last < wait) {
+ timeout = setTimeout(later, wait - last);
+ } else {
+ timeout = null;
+ result = func.apply(context, args);
+ context = args = null;
+ }
+ };
+
+ return function () {
+ context = this;
+ args = arguments;
+ timestamp = now();
+ if (!timeout) {
+ timeout = setTimeout(later, wait);
+ }
+ return result;
+ };
+ };
+
+ function Adapter () {}
+
+ $.extend(Adapter.prototype, {
+ // Public properties
+ // -----------------
+
+ id: null, // Identity.
+ completer: null, // Completer object which creates it.
+ el: null, // Textarea element.
+ $el: null, // jQuery object of the textarea.
+ option: null,
+
+ // Public methods
+ // --------------
+
+ initialize: function (element, completer, option) {
+ this.el = element;
+ this.$el = $(element);
+ this.id = completer.id + this.constructor.name;
+ this.completer = completer;
+ this.option = option;
+
+ if (this.option.debounce) {
+ this._onKeyup = debounce(this._onKeyup, this.option.debounce);
+ }
+
+ this._bindEvents();
+ },
+
+ destroy: function () {
+ this.$el.off('.' + this.id); // Remove all event handlers.
+ this.$el = this.el = this.completer = null;
+ },
+
+ // Update the element with the given value and strategy.
+ //
+ // value - The selected object. It is one of the item of the array
+ // which was callbacked from the search function.
+ // strategy - The Strategy associated with the selected value.
+ select: function (/* value, strategy */) {
+ throw new Error('Not implemented');
+ },
+
+ // Returns the caret's relative coordinates from body's left top corner.
+ //
+ // FIXME: Calculate the left top corner of `this.option.appendTo` element.
+ getCaretPosition: function () {
+ var position = this._getCaretRelativePosition();
+ var offset = this.$el.offset();
+ position.top += offset.top;
+ position.left += offset.left;
+ return position;
+ },
+
+ // Focus on the element.
+ focus: function () {
+ this.$el.focus();
+ },
+
+ // Private methods
+ // ---------------
+
+ _bindEvents: function () {
+ this.$el.on('keyup.' + this.id, $.proxy(this._onKeyup, this));
+ },
+
+ _onKeyup: function (e) {
+ if (this._skipSearch(e)) { return; }
+ this.completer.trigger(this.getTextFromHeadToCaret(), true);
+ },
+
+ // Suppress searching if it returns true.
+ _skipSearch: function (clickEvent) {
+ switch (clickEvent.keyCode) {
+ case 40: // DOWN
+ case 38: // UP
+ return true;
+ }
+ if (clickEvent.ctrlKey) switch (clickEvent.keyCode) {
+ case 78: // Ctrl-N
+ case 80: // Ctrl-P
+ return true;
+ }
+ }
+ });
+
+ $.fn.textcomplete.Adapter = Adapter;
+}(jQuery);
+
++function ($) {
+ 'use strict';
+
+ // Textarea adapter
+ // ================
+ //
+ // Managing a textarea. It doesn't know a Dropdown.
+ function Textarea(element, completer, option) {
+ this.initialize(element, completer, option);
+ }
+
+ Textarea.DIV_PROPERTIES = {
+ left: -9999,
+ position: 'absolute',
+ top: 0,
+ whiteSpace: 'pre-wrap'
+ }
+
+ Textarea.COPY_PROPERTIES = [
+ 'border-width', 'font-family', 'font-size', 'font-style', 'font-variant',
+ 'font-weight', 'height', 'letter-spacing', 'word-spacing', 'line-height',
+ 'text-decoration', 'text-align', 'width', 'padding-top', 'padding-right',
+ 'padding-bottom', 'padding-left', 'margin-top', 'margin-right',
+ 'margin-bottom', 'margin-left', 'border-style', 'box-sizing', 'tab-size'
+ ];
+
+ $.extend(Textarea.prototype, $.fn.textcomplete.Adapter.prototype, {
+ // Public methods
+ // --------------
+
+ // Update the textarea with the given value and strategy.
+ select: function (value, strategy) {
+ var pre = this.getTextFromHeadToCaret();
+ var post = this.el.value.substring(this.el.selectionEnd);
+ var newSubstr = strategy.replace(value);
+ if ($.isArray(newSubstr)) {
+ post = newSubstr[1] + post;
+ newSubstr = newSubstr[0];
+ }
+ pre = pre.replace(strategy.match, newSubstr);
+ this.$el.val(pre + post);
+ this.el.selectionStart = this.el.selectionEnd = pre.length;
+ },
+
+ // Private methods
+ // ---------------
+
+ // Returns the caret's relative coordinates from textarea's left top corner.
+ //
+ // Browser native API does not provide the way to know the position of
+ // caret in pixels, so that here we use a kind of hack to accomplish
+ // the aim. First of all it puts a dummy div element and completely copies
+ // the textarea's style to the element, then it inserts the text and a
+ // span element into the textarea.
+ // Consequently, the span element's position is the thing what we want.
+ _getCaretRelativePosition: function () {
+ var dummyDiv = $('<div></div>').css(this._copyCss())
+ .text(this.getTextFromHeadToCaret());
+ var span = $('<span></span>').text('.').appendTo(dummyDiv);
+ this.$el.before(dummyDiv);
+ var position = span.position();
+ position.top += span.height() - this.$el.scrollTop();
+ position.lineHeight = span.height();
+ dummyDiv.remove();
+ return position;
+ },
+
+ _copyCss: function () {
+ return $.extend({
+ // Set 'scroll' if a scrollbar is being shown; otherwise 'auto'.
+ overflow: this.el.scrollHeight > this.el.offsetHeight ? 'scroll' : 'auto'
+ }, Textarea.DIV_PROPERTIES, this._getStyles());
+ },
+
+ _getStyles: (function ($) {
+ var color = $('<div></div>').css(['color']).color;
+ if (typeof color !== 'undefined') {
+ return function () {
+ return this.$el.css(Textarea.COPY_PROPERTIES);
+ };
+ } else { // jQuery < 1.8
+ return function () {
+ var $el = this.$el;
+ var styles = {};
+ $.each(Textarea.COPY_PROPERTIES, function (i, property) {
+ styles[property] = $el.css(property);
+ });
+ return styles;
+ };
+ }
+ })($),
+
+ getTextFromHeadToCaret: function () {
+ return this.el.value.substring(0, this.el.selectionEnd);
+ }
+ });
+
+ $.fn.textcomplete.Textarea = Textarea;
+}(jQuery);
+
++function ($) {
+ 'use strict';
+
+ var sentinelChar = 'å¶';
+
+ function IETextarea(element, completer, option) {
+ this.initialize(element, completer, option);
+ $('<span>' + sentinelChar + '</span>').css({
+ position: 'absolute',
+ top: -9999,
+ left: -9999
+ }).insertBefore(element);
+ }
+
+ $.extend(IETextarea.prototype, $.fn.textcomplete.Textarea.prototype, {
+ // Public methods
+ // --------------
+
+ select: function (value, strategy) {
+ var pre = this.getTextFromHeadToCaret();
+ var post = this.el.value.substring(pre.length);
+ var newSubstr = strategy.replace(value);
+ if ($.isArray(newSubstr)) {
+ post = newSubstr[1] + post;
+ newSubstr = newSubstr[0];
+ }
+ pre = pre.replace(strategy.match, newSubstr);
+ this.$el.val(pre + post);
+ this.el.focus();
+ var range = this.el.createTextRange();
+ range.collapse(true);
+ range.moveEnd('character', pre.length);
+ range.moveStart('character', pre.length);
+ range.select();
+ },
+
+ getTextFromHeadToCaret: function () {
+ this.el.focus();
+ var range = document.selection.createRange();
+ range.moveStart('character', -this.el.value.length);
+ var arr = range.text.split(sentinelChar)
+ return arr.length === 1 ? arr[0] : arr[1];
+ }
+ });
+
+ $.fn.textcomplete.IETextarea = IETextarea;
+}(jQuery);
+
+// NOTE: TextComplete plugin has contenteditable support but it does not work
+// fine especially on old IEs.
+// Any pull requests are REALLY welcome.
+
++function ($) {
+ 'use strict';
+
+ // ContentEditable adapter
+ // =======================
+ //
+ // Adapter for contenteditable elements.
+ function ContentEditable (element, completer, option) {
+ this.initialize(element, completer, option);
+ }
+
+ $.extend(ContentEditable.prototype, $.fn.textcomplete.Adapter.prototype, {
+ // Public methods
+ // --------------
+
+ // Update the content with the given value and strategy.
+ // When an dropdown item is selected, it is executed.
+ select: function (value, strategy) {
+ var pre = this.getTextFromHeadToCaret();
+ var sel = window.getSelection()
+ var range = sel.getRangeAt(0);
+ var selection = range.cloneRange();
+ selection.selectNodeContents(range.startContainer);
+ var content = selection.toString();
+ var post = content.substring(range.startOffset);
+ var newSubstr = strategy.replace(value);
+ if ($.isArray(newSubstr)) {
+ post = newSubstr[1] + post;
+ newSubstr = newSubstr[0];
+ }
+ pre = pre.replace(strategy.match, newSubstr);
+ range.selectNodeContents(range.startContainer);
+ range.deleteContents();
+ var node = document.createTextNode(pre + post);
+ range.insertNode(node);
+ range.setStart(node, pre.length);
+ range.collapse(true);
+ sel.removeAllRanges();
+ sel.addRange(range);
+ },
+
+ // Private methods
+ // ---------------
+
+ // Returns the caret's relative position from the contenteditable's
+ // left top corner.
+ //
+ // Examples
+ //
+ // this._getCaretRelativePosition()
+ // //=> { top: 18, left: 200, lineHeight: 16 }
+ //
+ // Dropdown's position will be decided using the result.
+ _getCaretRelativePosition: function () {
+ var range = window.getSelection().getRangeAt(0).cloneRange();
+ var node = document.createElement('span');
+ range.insertNode(node);
+ range.selectNodeContents(node);
+ range.deleteContents();
+ var $node = $(node);
+ var position = $node.offset();
+ position.left -= this.$el.offset().left;
+ position.top += $node.height() - this.$el.offset().top;
+ position.lineHeight = $node.height();
+ var dir = this.$el.attr('dir') || this.$el.css('direction');
+ if (dir === 'rtl') { position.left -= this.listView.$el.width(); }
+ return position;
+ },
+
+ // Returns the string between the first character and the caret.
+ // Completer will be triggered with the result for start autocompleting.
+ //
+ // Example
+ //
+ // // Suppose the html is '<b>hello</b> wor|ld' and | is the caret.
+ // this.getTextFromHeadToCaret()
+ // // => ' wor' // not '<b>hello</b> wor'
+ getTextFromHeadToCaret: function () {
+ var range = window.getSelection().getRangeAt(0);
+ var selection = range.cloneRange();
+ selection.selectNodeContents(range.startContainer);
+ return selection.toString().substring(0, range.startOffset);
+ }
+ });
+
+ $.fn.textcomplete.ContentEditable = ContentEditable;
+}(jQuery);
diff --git a/library/justifiedGallery/dist/css/justifiedGallery.css b/library/justifiedGallery/dist/css/justifiedGallery.css
new file mode 100644
index 000000000..97585f3ed
--- /dev/null
+++ b/library/justifiedGallery/dist/css/justifiedGallery.css
@@ -0,0 +1,149 @@
+/*!
+ * Justified Gallery - v3.2.0
+ * http://miromannino.com/projects/justified-gallery/
+ * Copyright (c) 2014 Miro Mannino
+ * Licensed under the MIT license.
+ */
+@-webkit-keyframes justified-gallery-show-caption-animation {
+ from {
+ opacity: 0;
+ }
+ to {
+ opacity: 0.7;
+ }
+}
+@-moz-keyframes justified-gallery-show-caption-animation {
+ from {
+ opacity: 0;
+ }
+ to {
+ opacity: 0.7;
+ }
+}
+@-o-keyframes justified-gallery-show-caption-animation {
+ from {
+ opacity: 0;
+ }
+ to {
+ opacity: 0.7;
+ }
+}
+@keyframes justified-gallery-show-caption-animation {
+ from {
+ opacity: 0;
+ }
+ to {
+ opacity: 0.7;
+ }
+}
+@-webkit-keyframes justified-gallery-show-entry-animation {
+ from {
+ opacity: 0;
+ }
+ to {
+ opacity: 1.0;
+ }
+}
+@-moz-keyframes justified-gallery-show-entry-animation {
+ from {
+ opacity: 0;
+ }
+ to {
+ opacity: 1.0;
+ }
+}
+@-o-keyframes justified-gallery-show-entry-animation {
+ from {
+ opacity: 0;
+ }
+ to {
+ opacity: 1.0;
+ }
+}
+@keyframes justified-gallery-show-entry-animation {
+ from {
+ opacity: 0;
+ }
+ to {
+ opacity: 1.0;
+ }
+}
+.justified-gallery {
+ width: 100%;
+ position: relative;
+ overflow: hidden;
+}
+.justified-gallery > a,
+.justified-gallery > div {
+ position: absolute;
+ display: inline-block;
+ overflow: hidden;
+ opacity: 0;
+ filter: alpha(opacity=0);
+ /* IE8 or Earlier */
+}
+.justified-gallery > a > img,
+.justified-gallery > div > img {
+ position: absolute;
+ top: 50%;
+ left: 50%;
+ margin: 0;
+ padding: 0;
+ border: none;
+}
+.justified-gallery > a > .caption,
+.justified-gallery > div > .caption {
+ display: none;
+ position: absolute;
+ bottom: 0;
+ padding: 5px;
+ background-color: #000000;
+ left: 0;
+ right: 0;
+ margin: 0;
+ color: white;
+ font-size: 12px;
+ font-family: sans-serif;
+}
+.justified-gallery > a > .caption.caption-visible,
+.justified-gallery > div > .caption.caption-visible {
+ display: initial;
+ opacity: 0.7;
+ filter: "alpha(opacity=70)";
+ /* IE8 or Earlier */
+ -webkit-animation: justified-gallery-show-caption-animation 500ms 0 ease;
+ -moz-animation: justified-gallery-show-caption-animation 500ms 0 ease;
+ -ms-animation: justified-gallery-show-caption-animation 500ms 0 ease;
+}
+.justified-gallery > .entry-visible {
+ opacity: 1.0;
+ filter: alpha(opacity=100);
+ /* IE8 or Earlier */
+ -webkit-animation: justified-gallery-show-entry-animation 300ms 0 ease;
+ -moz-animation: justified-gallery-show-entry-animation 300ms 0 ease;
+ -ms-animation: justified-gallery-show-entry-animation 300ms 0 ease;
+}
+.justified-gallery > .spinner {
+ position: absolute;
+ bottom: 0;
+ margin-left: -24px;
+ padding: 10px 0 10px 0;
+ left: 50%;
+ opacity: initial;
+ filter: initial;
+ overflow: initial;
+}
+.justified-gallery > .spinner > span {
+ display: inline-block;
+ opacity: 0;
+ filter: alpha(opacity=0);
+ /* IE8 or Earlier */
+ width: 8px;
+ height: 8px;
+ margin: 0 4px 0 4px;
+ background-color: #000;
+ border-top-left-radius: 6px;
+ border-top-right-radius: 6px;
+ border-bottom-right-radius: 6px;
+ border-bottom-left-radius: 6px;
+}
diff --git a/library/justifiedGallery/dist/css/justifiedGallery.min.css b/library/justifiedGallery/dist/css/justifiedGallery.min.css
new file mode 100644
index 000000000..f59d7c7c1
--- /dev/null
+++ b/library/justifiedGallery/dist/css/justifiedGallery.min.css
@@ -0,0 +1,7 @@
+/*!
+ * Justified Gallery - v3.2.0
+ * http://miromannino.com/projects/justified-gallery/
+ * Copyright (c) 2014 Miro Mannino
+ * Licensed under the MIT license.
+ */
+@-webkit-keyframes justified-gallery-show-caption-animation{from{opacity:0}to{opacity:.7}}@-moz-keyframes justified-gallery-show-caption-animation{from{opacity:0}to{opacity:.7}}@-o-keyframes justified-gallery-show-caption-animation{from{opacity:0}to{opacity:.7}}@keyframes justified-gallery-show-caption-animation{from{opacity:0}to{opacity:.7}}@-webkit-keyframes justified-gallery-show-entry-animation{from{opacity:0}to{opacity:1}}@-moz-keyframes justified-gallery-show-entry-animation{from{opacity:0}to{opacity:1}}@-o-keyframes justified-gallery-show-entry-animation{from{opacity:0}to{opacity:1}}@keyframes justified-gallery-show-entry-animation{from{opacity:0}to{opacity:1}}.justified-gallery{width:100%;position:relative;overflow:hidden}.justified-gallery>a,.justified-gallery>div{position:absolute;display:inline-block;overflow:hidden;opacity:0;filter:alpha(opacity=0)}.justified-gallery>a>img,.justified-gallery>div>img{position:absolute;top:50%;left:50%;margin:0;padding:0;border:0}.justified-gallery>a>.caption,.justified-gallery>div>.caption{display:none;position:absolute;bottom:0;padding:5px;background-color:#000;left:0;right:0;margin:0;color:#fff;font-size:12px;font-weight:300;font-family:sans-serif}.justified-gallery>a>.caption.caption-visible,.justified-gallery>div>.caption.caption-visible{display:initial;opacity:.7;filter:"alpha(opacity=70)";-webkit-animation:justified-gallery-show-caption-animation 500ms 0 ease;-moz-animation:justified-gallery-show-caption-animation 500ms 0 ease;-ms-animation:justified-gallery-show-caption-animation 500ms 0 ease}.justified-gallery>.entry-visible{opacity:1;filter:alpha(opacity=100);-webkit-animation:justified-gallery-show-entry-animation 300ms 0 ease;-moz-animation:justified-gallery-show-entry-animation 300ms 0 ease;-ms-animation:justified-gallery-show-entry-animation 300ms 0 ease}.justified-gallery>.spinner{position:absolute;bottom:0;margin-left:-24px;padding:10px 0;left:50%;opacity:initial;filter:initial;overflow:initial}.justified-gallery>.spinner>span{display:inline-block;opacity:0;filter:alpha(opacity=0);width:8px;height:8px;margin:0 4px;background-color:#000;border-top-left-radius:6px;border-top-right-radius:6px;border-bottom-right-radius:6px;border-bottom-left-radius:6px} \ No newline at end of file
diff --git a/library/justifiedGallery/dist/js/jquery.justifiedGallery.js b/library/justifiedGallery/dist/js/jquery.justifiedGallery.js
new file mode 100644
index 000000000..7754ae437
--- /dev/null
+++ b/library/justifiedGallery/dist/js/jquery.justifiedGallery.js
@@ -0,0 +1,661 @@
+/*
+ * Justified Gallery - v3.4.0
+ * http://miromannino.com/projects/justified-gallery/
+ * Copyright (c) 2014 Miro Mannino
+ * Licensed under the MIT license.
+ */
+(function($) {
+
+ /* Events
+ jg.complete : called when all the gallery has been created
+ jg.resize : called when the gallery has been resized
+ */
+
+ $.fn.justifiedGallery = function (arg) {
+
+ // Default options
+ var defaults = {
+ sizeRangeSuffixes : {
+ 'lt100': '_t',
+ 'lt240': '_m',
+ 'lt320': '_n',
+ 'lt500': '',
+ 'lt640': '_z',
+ 'lt1024': '_b'
+ },
+ rowHeight : 120,
+ maxRowHeight : 0, //negative value = no limits, 0 = 1.5 * rowHeight
+ margins : 1,
+ lastRow : 'nojustify', // or can be 'justify' or 'hide'
+ justifyThreshold: 0.75, /* if row width / available space > 0.75 it will be always justified
+ (i.e. lastRow setting is not considered) */
+ fixedHeight : false,
+ waitThumbnailsLoad : true,
+ captions : true,
+ cssAnimation: false,
+ imagesAnimationDuration : 500, //ignored with css animations
+ captionSettings : { //ignored with css animations
+ animationDuration : 500,
+ visibleOpacity : 0.7,
+ nonVisibleOpacity : 0.0
+ },
+ rel : null, //rewrite the rel of each analyzed links
+ target : null, //rewrite the target of all links
+ extension : /\.[^.\\/]+$/,
+ refreshTime : 100,
+ randomize : false
+ };
+
+ function getSuffix(width, height, context) {
+ var longestSide;
+ longestSide = (width > height) ? width : height;
+ if (longestSide <= 100) {
+ return context.settings.sizeRangeSuffixes.lt100;
+ } else if (longestSide <= 240) {
+ return context.settings.sizeRangeSuffixes.lt240;
+ } else if (longestSide <= 320) {
+ return context.settings.sizeRangeSuffixes.lt320;
+ } else if (longestSide <= 500) {
+ return context.settings.sizeRangeSuffixes.lt500;
+ } else if (longestSide <= 640) {
+ return context.settings.sizeRangeSuffixes.lt640;
+ } else {
+ return context.settings.sizeRangeSuffixes.lt1024;
+ }
+ }
+
+ function endsWith(str, suffix) {
+ return str.indexOf(suffix, str.length - suffix.length) !== -1;
+ }
+
+ function removeSuffix(str, suffix) {
+ return str.substring(0, str.length - suffix.length);
+ }
+
+ function getUsedSuffix(str, context) {
+ var voidSuffix = false;
+ for (var si in context.settings.sizeRangeSuffixes) {
+ if (context.settings.sizeRangeSuffixes[si].length === 0) {
+ voidSuffix = true;
+ continue;
+ }
+ if (endsWith(str, context.settings.sizeRangeSuffixes[si])) {
+ return context.settings.sizeRangeSuffixes[si];
+ }
+ }
+
+ if (voidSuffix) return "";
+ else throw 'unknown suffix for ' + str;
+ }
+
+ /* Given an image src, with the width and the height, returns the new image src with the
+ best suffix to show the best quality thumbnail. */
+ function newSrc(imageSrc, imgWidth, imgHeight, context) {
+ var matchRes = imageSrc.match(context.settings.extension);
+ var ext = (matchRes != null) ? matchRes[0] : '';
+ var newImageSrc = imageSrc.replace(context.settings.extension, '');
+ newImageSrc = removeSuffix(newImageSrc, getUsedSuffix(newImageSrc, context));
+ newImageSrc += getSuffix(imgWidth, imgHeight, context) + ext;
+ return newImageSrc;
+ }
+
+ function onEntryMouseEnterForCaption (ev) {
+ var $caption = $(ev.currentTarget).find('.caption');
+ if (ev.data.settings.cssAnimation) {
+ $caption.addClass('caption-visible').removeClass('caption-hidden');
+ } else {
+ $caption.stop().fadeTo(ev.data.settings.captionSettings.animationDuration,
+ ev.data.settings.captionSettings.visibleOpacity);
+ }
+ }
+
+ function onEntryMouseLeaveForCaption (ev) {
+ var $caption = $(ev.currentTarget).find('.caption');
+ if (ev.data.settings.cssAnimation) {
+ $caption.removeClass('caption-visible').removeClass('caption-hidden');
+ } else {
+ $caption.stop().fadeTo(ev.data.settings.captionSettings.animationDuration,
+ ev.data.settings.captionSettings.nonVisibleOpacity);
+ }
+ }
+
+ function showImg($entry, callback, context) {
+ if (context.settings.cssAnimation) {
+ $entry.addClass('entry-visible');
+ callback();
+ } else {
+ $entry.stop().fadeTo(context.settings.imagesAnimationDuration, 1.0, callback);
+ }
+ }
+
+ function hideImgImmediately($entry, context) {
+ if (context.settings.cssAnimation) {
+ $entry.removeClass('entry-visible');
+ } else {
+ $entry.stop().fadeTo(0, 0);
+ }
+ }
+
+ function displayEntry($entry, x, y, imgWidth, imgHeight, rowHeight, context) {
+ var $image = $entry.find('img');
+ $image.css('width', imgWidth);
+ $image.css('height', imgHeight);
+ $image.css('margin-left', - imgWidth / 2);
+ $image.css('margin-top', - imgHeight / 2);
+ $entry.width(imgWidth);
+ $entry.height(rowHeight);
+ $entry.css('top', y);
+ $entry.css('left', x);
+
+ //DEBUG// console.log('displayEntry (w: ' + $image.width() + ' h: ' + $image.height());
+
+ // Image reloading for an high quality of thumbnails
+ var imageSrc = $image.attr('src');
+ var newImageSrc = newSrc(imageSrc, imgWidth, imgHeight, context);
+
+ $image.one('error', function () {
+ //DEBUG// console.log('revert the original image');
+ $image.attr('src', $image.data('jg.originalSrc')); //revert to the original thumbnail, we got it.
+ });
+
+ function loadNewImage() {
+ if (imageSrc !== newImageSrc) { //load the new image after the fadeIn
+ $image.attr('src', newImageSrc);
+ }
+ }
+
+ if ($image.data('jg.loaded') === 'skipped') {
+ $image.one('load', function() {
+ showImg($entry, loadNewImage, context);
+ $image.data('jg.loaded', 'loaded');
+ });
+ } else {
+ showImg($entry, loadNewImage, context);
+ }
+
+ // Captions ------------------------------
+ var captionMouseEvents = $entry.data('jg.captionMouseEvents');
+ if (context.settings.captions === true) {
+ var $imgCaption = $entry.find('.caption');
+ if ($imgCaption.length === 0) { // Create it if it doesn't exists
+ var caption = $image.attr('alt');
+ if (typeof caption === 'undefined') caption = $entry.attr('title');
+ if (typeof caption !== 'undefined') { // Create only we found something
+ $imgCaption = $('<div class="caption">' + caption + '</div>');
+ $entry.append($imgCaption);
+ }
+ }
+
+ // Create events (we check again the $imgCaption because it can be still inexistent)
+ if ($imgCaption.length !== 0) {
+ if (!context.settings.cssAnimation) {
+ $imgCaption.stop().fadeTo(context.settings.imagesAnimationDuration,
+ context.settings.captionSettings.nonVisibleOpacity);
+ }
+ if (typeof captionMouseEvents === 'undefined') {
+ captionMouseEvents = {
+ mouseenter: onEntryMouseEnterForCaption,
+ mouseleave: onEntryMouseLeaveForCaption
+ };
+ $entry.on('mouseenter', undefined, context, captionMouseEvents.mouseenter);
+ $entry.on('mouseleave', undefined, context, captionMouseEvents.mouseleave);
+ $entry.data('jg.captionMouseEvents', captionMouseEvents);
+ }
+ }
+ } else {
+ if (typeof captionMouseEvents !== 'undefined') {
+ $entry.off('mouseenter', undefined, context, captionMouseEvents.mouseenter);
+ $entry.off('mouseleave', undefined, context, captionMouseEvents.mouseleave);
+ $entry.removeData('jg.captionMouseEvents');
+ }
+ }
+
+ }
+
+ function prepareBuildingRow(context, isLastRow) {
+ var settings = context.settings;
+ var i, $entry, $image, imgAspectRatio, newImgW, newImgH, justify = true;
+ var minHeight = 0;
+ var availableWidth = context.galleryWidth - (
+ (context.buildingRow.entriesBuff.length - 1) * settings.margins);
+ var rowHeight = availableWidth / context.buildingRow.aspectRatio;
+ var justificable = context.buildingRow.width / availableWidth > settings.justifyThreshold;
+
+ //Skip the last row if we can't justify it and the lastRow == 'hide'
+ if (isLastRow && settings.lastRow === 'hide' && !justificable) {
+ for (i = 0; i < context.buildingRow.entriesBuff.length; i++) {
+ $entry = context.buildingRow.entriesBuff[i];
+ if (settings.cssAnimation)
+ $entry.removeClass('entry-visible');
+ else
+ $entry.stop().fadeTo(0, 0);
+ }
+ return -1;
+ }
+
+ // With lastRow = nojustify, justify if is justificable (the images will not become too big)
+ if (isLastRow && !justificable && settings.lastRow === 'nojustify') justify = false;
+
+ for (i = 0; i < context.buildingRow.entriesBuff.length; i++) {
+ $image = context.buildingRow.entriesBuff[i].find('img');
+ imgAspectRatio = $image.data('jg.imgw') / $image.data('jg.imgh');
+
+ if (justify) {
+ newImgW = rowHeight * imgAspectRatio;
+ newImgH = rowHeight;
+
+ /* With fixedHeight the newImgH must be greater than rowHeight.
+ In some cases here this is not satisfied (due to the justification).
+ But we comment it, because is better to have a shorter but justified row instead
+ to have a cropped image at the end. */
+ /*if (settings.fixedHeight && newImgH < settings.rowHeight) {
+ newImgW = settings.rowHeight * imgAspectRatio;
+ newImgH = settings.rowHeight;
+ }*/
+ } else {
+ newImgW = settings.rowHeight * imgAspectRatio;
+ newImgH = settings.rowHeight;
+ }
+
+ $image.data('jg.imgw', Math.ceil(newImgW));
+ $image.data('jg.imgh', Math.ceil(newImgH));
+ if (i === 0 || minHeight > newImgH) minHeight = newImgH;
+ }
+
+ if (settings.fixedHeight && minHeight > settings.rowHeight)
+ minHeight = settings.rowHeight;
+
+ return {minHeight: minHeight, justify: justify};
+ }
+
+ function rewind(context) {
+ context.lastAnalyzedIndex = -1;
+ context.buildingRow.entriesBuff = [];
+ context.buildingRow.aspectRatio = 0;
+ context.buildingRow.width = 0;
+ context.offY = 0;
+ }
+
+ function flushRow(context, isLastRow) {
+ var settings = context.settings;
+ var $entry, $image, minHeight, buildingRowRes, offX = 0;
+
+ //DEBUG// console.log('flush (isLastRow: ' + isLastRow + ')');
+
+ buildingRowRes = prepareBuildingRow(context, isLastRow);
+ minHeight = buildingRowRes.minHeight;
+ if (isLastRow && settings.lastRow === 'hide' && minHeight === -1) {
+ context.buildingRow.entriesBuff = [];
+ context.buildingRow.aspectRatio = 0;
+ context.buildingRow.width = 0;
+ return;
+ }
+
+ if (settings.maxRowHeight > 0 && settings.maxRowHeight < minHeight)
+ minHeight = settings.maxRowHeight;
+ else if (settings.maxRowHeight === 0 && (1.5 * settings.rowHeight) < minHeight)
+ minHeight = 1.5 * settings.rowHeight;
+
+ for (var i = 0; i < context.buildingRow.entriesBuff.length; i++) {
+ $entry = context.buildingRow.entriesBuff[i];
+ $image = $entry.find('img');
+ displayEntry($entry, offX, context.offY, $image.data('jg.imgw'),
+ $image.data('jg.imgh'), minHeight, context);
+ offX += $image.data('jg.imgw') + settings.margins;
+ }
+
+ //Gallery Height
+ context.$gallery.height(context.offY + minHeight +
+ (context.spinner.active ? context.spinner.$el.innerHeight() : 0)
+ );
+
+ if (!isLastRow || (minHeight <= context.settings.rowHeight && buildingRowRes.justify)) {
+ //Ready for a new row
+ context.offY += minHeight + context.settings.margins;
+
+ //DEBUG// console.log('minHeight: ' + minHeight + ' offY: ' + context.offY);
+
+ context.buildingRow.entriesBuff = []; //clear the array creating a new one
+ context.buildingRow.aspectRatio = 0;
+ context.buildingRow.width = 0;
+ context.$gallery.trigger('jg.rowflush');
+ }
+ }
+
+ function checkWidth(context) {
+ context.checkWidthIntervalId = setInterval(function () {
+ var galleryWidth = parseInt(context.$gallery.width(), 10);
+ if (context.galleryWidth !== galleryWidth) {
+ //DEBUG// console.log("resize. old: " + context.galleryWidth + " new: " + galleryWidth);
+
+ context.galleryWidth = galleryWidth;
+ rewind(context);
+
+ // Restart to analyze
+ startImgAnalyzer(context, true);
+ }
+ }, context.settings.refreshTime);
+ }
+
+ function startLoadingSpinnerAnimation(spinnerContext) {
+ clearInterval(spinnerContext.intervalId);
+ spinnerContext.intervalId = setInterval(function () {
+ if (spinnerContext.phase < spinnerContext.$points.length)
+ spinnerContext.$points.eq(spinnerContext.phase).fadeTo(spinnerContext.timeslot, 1);
+ else
+ spinnerContext.$points.eq(spinnerContext.phase - spinnerContext.$points.length)
+ .fadeTo(spinnerContext.timeslot, 0);
+ spinnerContext.phase = (spinnerContext.phase + 1) % (spinnerContext.$points.length * 2);
+ }, spinnerContext.timeslot);
+ }
+
+ function stopLoadingSpinnerAnimation(spinnerContext) {
+ clearInterval(spinnerContext.intervalId);
+ spinnerContext.intervalId = null;
+ }
+
+ function stopImgAnalyzerStarter(context) {
+ context.yield.flushed = 0;
+ if (context.imgAnalyzerTimeout !== null) clearTimeout(context.imgAnalyzerTimeout);
+ }
+
+ function startImgAnalyzer(context, isForResize) {
+ stopImgAnalyzerStarter(context);
+ context.imgAnalyzerTimeout = setTimeout(function () {
+ analyzeImages(context, isForResize);
+ }, 0.001);
+ analyzeImages(context, isForResize);
+ }
+
+ function analyzeImages(context, isForResize) {
+
+ /* //DEBUG//
+ var rnd = parseInt(Math.random() * 10000, 10);
+ console.log('analyzeImages ' + rnd + ' start');
+ console.log('images status: ');
+ for (var i = 0; i < context.entries.length; i++) {
+ var $entry = $(context.entries[i]);
+ var $image = $entry.find('img');
+ console.log(i + ' (alt: ' + $image.attr('alt') + 'loaded: ' + $image.data('jg.loaded') + ')');
+ }*/
+
+ /* The first row */
+ var settings = context.settings;
+ var isLastRow;
+
+ for (var i = context.lastAnalyzedIndex + 1; i < context.entries.length; i++) {
+ var $entry = $(context.entries[i]);
+ var $image = $entry.find('img');
+
+ if ($image.data('jg.loaded') === true || $image.data('jg.loaded') === 'skipped') {
+ isLastRow = i >= context.entries.length - 1;
+
+ var availableWidth = context.galleryWidth - (
+ (context.buildingRow.entriesBuff.length - 1) * settings.margins);
+ var imgAspectRatio = $image.data('jg.imgw') / $image.data('jg.imgh');
+ if (availableWidth / (context.buildingRow.aspectRatio + imgAspectRatio) < settings.rowHeight) {
+ flushRow(context, isLastRow);
+ if(++context.yield.flushed >= context.yield.every) {
+ //DEBUG// console.log("yield");
+ startImgAnalyzer(context, isForResize);
+ return;
+ }
+ }
+
+ context.buildingRow.entriesBuff.push($entry);
+ context.buildingRow.aspectRatio += imgAspectRatio;
+ context.buildingRow.width += imgAspectRatio * settings.rowHeight;
+ context.lastAnalyzedIndex = i;
+
+ } else if ($image.data('jg.loaded') !== 'error') {
+ return;
+ }
+ }
+
+ // Last row flush (the row is not full)
+ if (context.buildingRow.entriesBuff.length > 0) flushRow(context, true);
+
+ if (context.spinner.active) {
+ context.spinner.active = false;
+ context.$gallery.height(context.$gallery.height() - context.spinner.$el.innerHeight());
+ context.spinner.$el.detach();
+ stopLoadingSpinnerAnimation(context.spinner);
+ }
+
+ /* Stop, if there is, the timeout to start the analyzeImages.
+ This is because an image can be set loaded, and the timeout can be set,
+ but this image can be analyzed yet.
+ */
+ stopImgAnalyzerStarter(context);
+
+ //On complete callback
+ if (!isForResize)
+ context.$gallery.trigger('jg.complete');
+ else
+ context.$gallery.trigger('jg.resize');
+
+ //DEBUG// console.log('analyzeImages ' + rnd + ' end');
+ }
+
+ function checkSettings (context) {
+ var settings = context.settings;
+
+ function checkSuffixesRange(range) {
+ if (typeof settings.sizeRangeSuffixes[range] !== 'string')
+ throw 'sizeRangeSuffixes.' + range + ' must be a string';
+ }
+
+ function checkOrConvertNumber(parent, settingName) {
+ if (typeof parent[settingName] === 'string') {
+ parent[settingName] = parseFloat(parent[settingName], 10);
+ if (isNaN(parent[settingName])) throw 'invalid number for ' + settingName;
+ } else if (typeof parent[settingName] === 'number') {
+ if (isNaN(parent[settingName])) throw 'invalid number for ' + settingName;
+ } else {
+ throw settingName + ' must be a number';
+ }
+ }
+
+ if (typeof settings.sizeRangeSuffixes !== 'object')
+ throw 'sizeRangeSuffixes must be defined and must be an object';
+
+ checkSuffixesRange('lt100');
+ checkSuffixesRange('lt240');
+ checkSuffixesRange('lt320');
+ checkSuffixesRange('lt500');
+ checkSuffixesRange('lt640');
+ checkSuffixesRange('lt1024');
+
+ checkOrConvertNumber(settings, 'rowHeight');
+ checkOrConvertNumber(settings, 'maxRowHeight');
+
+ if (settings.maxRowHeight > 0 &&
+ settings.maxRowHeight < settings.rowHeight) {
+ settings.maxRowHeight = settings.rowHeight;
+ }
+
+ checkOrConvertNumber(settings, 'margins');
+
+ if (settings.lastRow !== 'nojustify' &&
+ settings.lastRow !== 'justify' &&
+ settings.lastRow !== 'hide') {
+ throw 'lastRow must be "nojustify", "justify" or "hide"';
+ }
+
+ checkOrConvertNumber(settings, 'justifyThreshold');
+ if (settings.justifyThreshold < 0 || settings.justifyThreshold > 1)
+ throw 'justifyThreshold must be in the interval [0,1]';
+ if (typeof settings.cssAnimation !== 'boolean') {
+ throw 'cssAnimation must be a boolean';
+ }
+
+ checkOrConvertNumber(settings.captionSettings, 'animationDuration');
+ checkOrConvertNumber(settings, 'imagesAnimationDuration');
+
+ checkOrConvertNumber(settings.captionSettings, 'visibleOpacity');
+ if (settings.captionSettings.visibleOpacity < 0 || settings.captionSettings.visibleOpacity > 1)
+ throw 'captionSettings.visibleOpacity must be in the interval [0, 1]';
+
+ checkOrConvertNumber(settings.captionSettings, 'nonVisibleOpacity');
+ if (settings.captionSettings.visibleOpacity < 0 || settings.captionSettings.visibleOpacity > 1)
+ throw 'captionSettings.nonVisibleOpacity must be in the interval [0, 1]';
+
+ if (typeof settings.fixedHeight !== 'boolean') {
+ throw 'fixedHeight must be a boolean';
+ }
+
+ if (typeof settings.captions !== 'boolean') {
+ throw 'captions must be a boolean';
+ }
+
+ checkOrConvertNumber(settings, 'refreshTime');
+
+ if (typeof settings.randomize !== 'boolean') {
+ throw 'randomize must be a boolean';
+ }
+
+ }
+
+ return this.each(function (index, gallery) {
+
+ var $gallery = $(gallery);
+ $gallery.addClass('justified-gallery');
+
+ var context = $gallery.data('jg.context');
+ if (typeof context === 'undefined') {
+
+ if (typeof arg !== 'undefined' && arg !== null && typeof arg !== 'object')
+ throw 'The argument must be an object';
+
+ // Spinner init
+ var $spinner = $('<div class="spinner"><span></span><span></span><span></span></div>');
+
+ //Context init
+ context = {
+ settings : $.extend({}, defaults, arg),
+ imgAnalyzerTimeout : null,
+ entries : null,
+ buildingRow : {
+ entriesBuff : [],
+ width : 0,
+ aspectRatio : 0
+ },
+ lastAnalyzedIndex : -1,
+ yield : {
+ every : 2, /* do a flush every context.yield.every flushes (
+ * must be greater than 1, else the analyzeImages will loop */
+ flushed : 0 //flushed rows without a yield
+ },
+ offY : 0,
+ spinner : {
+ active : false,
+ phase : 0,
+ timeslot : 150,
+ $el : $spinner,
+ $points : $spinner.find('span'),
+ intervalId : null
+ },
+ checkWidthIntervalId : null,
+ galleryWidth : $gallery.width(),
+ $gallery : $gallery
+ };
+
+ $gallery.data('jg.context', context);
+
+ } else if (arg === 'norewind') {
+ /* Hide the image of the buildingRow to prevent strange effects when the row will be
+ re-justified again */
+ for (var i = 0; i < context.buildingRow.entriesBuff.length; i++) {
+ hideImgImmediately(context.buildingRow.entriesBuff[i], context);
+ }
+ // In this case we don't rewind, and analyze all the images
+ } else {
+ context.settings = $.extend({}, context.settings, arg);
+ rewind(context);
+ }
+
+ checkSettings(context);
+
+ context.entries = $gallery.find('> a, > div:not(.spinner, #page-end)').toArray();
+ if (context.entries.length === 0) return;
+
+ // Randomize
+ if (context.settings.randomize) {
+ context.entries.sort(function () { return Math.random() * 2 - 1; });
+ $.each(context.entries, function () {
+ $(this).appendTo($gallery);
+ });
+ }
+
+ var imagesToLoad = false;
+ $.each(context.entries, function (index, entry) {
+ var $entry = $(entry);
+ var $image = $entry.find('img');
+
+ if ($image.data('jg.loaded') !== true && $image.data('jg.loaded') !== 'skipped') {
+
+ // Link Rel global overwrite
+ if (context.settings.rel !== null) $entry.attr('rel', context.settings.rel);
+
+ // Link Target global overwrite
+ if (context.settings.target !== null) $entry.attr('target', context.settings.target);
+
+ // Image src
+ var imageSrc = (typeof $image.data('safe-src') !== 'undefined') ?
+ $image.data('safe-src') : $image.attr('src');
+ $image.data('jg.originalSrc', imageSrc);
+ $image.attr('src', imageSrc);
+
+ var width = parseInt($image.attr('width'), 10);
+ var height = parseInt($image.attr('height'), 10);
+ if(context.settings.waitThumbnailsLoad !== true && !isNaN(width) && !isNaN(height)) {
+ $image.data('jg.imgw', width);
+ $image.data('jg.imgh', height);
+ $image.data('jg.loaded', 'skipped');
+ startImgAnalyzer(context, false);
+ return true;
+ }
+
+ $image.data('jg.loaded', false);
+ imagesToLoad = true;
+
+ // Spinner start
+ if (context.spinner.active === false) {
+ context.spinner.active = true;
+ $gallery.append(context.spinner.$el);
+ $gallery.height(context.offY + context.spinner.$el.innerHeight());
+ startLoadingSpinnerAnimation(context.spinner);
+ }
+
+ /* Check if the image is loaded or not using another image object.
+ We cannot use the 'complete' image property, because some browsers,
+ with a 404 set complete = true */
+ var loadImg = new Image();
+ var $loadImg = $(loadImg);
+ $loadImg.one('load', function imgLoaded () {
+ //DEBUG// console.log('img load (alt: ' + $image.attr('alt') + ')');
+ $image.off('load error');
+ $image.data('jg.imgw', loadImg.width);
+ $image.data('jg.imgh', loadImg.height);
+ $image.data('jg.loaded', true);
+ startImgAnalyzer(context, false);
+ });
+ $loadImg.one('error', function imgLoadError () {
+ //DEBUG// console.log('img error (alt: ' + $image.attr('alt') + ')');
+ $image.off('load error');
+ $image.data('jg.loaded', 'error');
+ startImgAnalyzer(context, false);
+ });
+ loadImg.src = imageSrc;
+
+ }
+
+ });
+
+ if (!imagesToLoad) startImgAnalyzer(context, false);
+ checkWidth(context);
+ });
+
+ };
+
+}(jQuery));
diff --git a/library/justifiedGallery/dist/js/jquery.justifiedGallery.min.js b/library/justifiedGallery/dist/js/jquery.justifiedGallery.min.js
new file mode 100644
index 000000000..2b4584466
--- /dev/null
+++ b/library/justifiedGallery/dist/js/jquery.justifiedGallery.min.js
@@ -0,0 +1,7 @@
+/*!
+ * Justified Gallery - v3.2.0
+ * http://miromannino.com/projects/justified-gallery/
+ * Copyright (c) 2014 Miro Mannino
+ * Licensed under the MIT license.
+ */
+!function(a){a.fn.justifiedGallery=function(b){function c(a,b,c){var d;return d=a>b?a:b,100>=d?c.settings.sizeRangeSuffixes.lt100:240>=d?c.settings.sizeRangeSuffixes.lt240:320>=d?c.settings.sizeRangeSuffixes.lt320:500>=d?c.settings.sizeRangeSuffixes.lt500:640>=d?c.settings.sizeRangeSuffixes.lt640:c.settings.sizeRangeSuffixes.lt1024}function d(b){var c=a(b.currentTarget).find(".caption");b.data.settings.cssAnimation?c.addClass("caption-visible").removeClass("caption-hidden"):c.stop().fadeTo(b.data.settings.captionSettings.animationDuration,b.data.settings.captionSettings.visibleOpacity)}function e(b){var c=a(b.currentTarget).find(".caption");b.data.settings.cssAnimation?c.removeClass("caption-visible").removeClass("caption-hidden"):c.stop().fadeTo(b.data.settings.captionSettings.animationDuration,b.data.settings.captionSettings.nonVisibleOpacity)}function f(b,f,g,h,i,j,k){var l=b.find("img");l.css("width",h),l.css("height",i),l.css("margin-left",-h/2),l.css("margin-top",-i/2),b.width(h),b.height(j),b.css("top",g),b.css("left",f);var m=l.attr("src"),n=m.replace(k.settings.extension,"").replace(k.usedSizeRangeRegExp,"")+c(h,i,k)+m.match(k.settings.extension)[0];l.one("error",function(){l.attr("src",l.data("jg.originalSrc"))});var o=function(){m!==n&&l.attr("src",n)};k.settings.cssAnimation?(b.addClass("entry-visible"),o()):b.stop().fadeTo(k.settings.imagesAnimationDuration,1,o);var p=b.data("jg.captionMouseEvents");if(k.settings.captions===!0){var q=b.find(".caption");if(0===q.length){var r=l.attr("alt");"undefined"==typeof r&&(r=b.attr("title")),"undefined"!=typeof r&&(q=a('<div class="caption">'+r+"</div>"),b.append(q))}0!==q.length&&(k.settings.cssAnimation||q.stop().fadeTo(k.settings.imagesAnimationDuration,k.settings.captionSettings.nonVisibleOpacity),"undefined"==typeof p&&(p={mouseenter:d,mouseleave:e},b.on("mouseenter",void 0,k,p.mouseenter),b.on("mouseleave",void 0,k,p.mouseleave),b.data("jg.captionMouseEvents",p)))}else"undefined"!=typeof p&&(b.off("mouseenter",void 0,k,p.mouseenter),b.off("mouseleave",void 0,k,p.mouseleave),b.removeData("jg.captionMouseEvents"))}function g(a,b){var c,d,e,f,g,h,i=!0,j=0,k=a.galleryWidth-(a.buildingRow.entriesBuff.length-1)*a.settings.margins,l=k/a.buildingRow.aspectRatio,m=a.buildingRow.width/k>a.settings.justifyThreshold;if(b&&"hide"===a.settings.lastRow&&!m){for(c=0;c<a.buildingRow.entriesBuff.length;c++)d=a.buildingRow.entriesBuff[c],a.settings.cssAnimation?d.removeClass("entry-visible"):d.stop().fadeTo(0,0);return-1}for(b&&"nojustify"===a.settings.lastRow&&!m&&(i=!1),c=0;c<a.buildingRow.entriesBuff.length;c++)e=a.buildingRow.entriesBuff[c].find("img"),f=e.data("jg.imgw")/e.data("jg.imgh"),i?(g=l*f,h=l):(g=a.settings.rowHeight*f,h=a.settings.rowHeight),e.data("jg.imgw",Math.ceil(g)),e.data("jg.imgh",Math.ceil(h)),(0===c||j>h)&&(j=h);return a.settings.fixedHeight&&j>a.settings.rowHeight&&(j=a.settings.rowHeight),j}function h(a){a.lastAnalyzedIndex=-1,a.buildingRow.entriesBuff=[],a.buildingRow.aspectRatio=0,a.buildingRow.width=0,a.offY=0,a.firstRowFlushed=!1}function i(a,b){var c,d,e,h=0;if(e=g(a,b),b&&"hide"===a.settings.lastRow&&-1===e)return a.buildingRow.entriesBuff=[],a.buildingRow.aspectRatio=0,void(a.buildingRow.width=0);a.settings.maxRowHeight>0&&a.settings.maxRowHeight<e?e=a.settings.maxRowHeight:0===a.settings.maxRowHeight&&1.5*a.settings.rowHeight<e&&(e=1.5*a.settings.rowHeight);for(var i=0;i<a.buildingRow.entriesBuff.length;i++)c=a.buildingRow.entriesBuff[i],d=c.find("img"),f(c,h,a.offY,d.data("jg.imgw"),d.data("jg.imgh"),e,a),h+=d.data("jg.imgw")+a.settings.margins;a.$gallery.height(a.offY+e+(a.spinner.active?a.spinner.$el.innerHeight():0)),b||(a.offY+=e+a.settings.margins,a.buildingRow.entriesBuff=[],a.buildingRow.aspectRatio=0,a.buildingRow.width=0,a.firstRowFlushed=!0,a.$gallery.trigger("jg.rowflush"))}function j(a){a.checkWidthIntervalId=setInterval(function(){var b=parseInt(a.$gallery.width(),10);a.galleryWidth!==b&&(a.galleryWidth=b,h(a),n(a,!0))},a.settings.refreshTime)}function k(a){clearInterval(a.intervalId),a.intervalId=setInterval(function(){a.phase<a.$points.length?a.$points.eq(a.phase).fadeTo(a.timeslot,1):a.$points.eq(a.phase-a.$points.length).fadeTo(a.timeslot,0),a.phase=(a.phase+1)%(2*a.$points.length)},a.timeslot)}function l(a){clearInterval(a.intervalId),a.intervalId=null}function m(a){a.yield.flushed=0,null!==a.imgAnalyzerTimeout&&clearTimeout(a.imgAnalyzerTimeout)}function n(a,b){m(a),a.imgAnalyzerTimeout=setTimeout(function(){o(a,b)},.001),o(a,b)}function o(b,c){for(var d,e=b.lastAnalyzedIndex+1;e<b.entries.length;e++){var f=a(b.entries[e]),g=f.find("img");if(g.data("jg.loaded")===!0){d=b.firstRowFlushed&&e>=b.entries.length-1;var h=b.galleryWidth-(b.buildingRow.entriesBuff.length-1)*b.settings.margins,j=g.data("jg.imgw")/g.data("jg.imgh");if(h/(b.buildingRow.aspectRatio+j)<b.settings.rowHeight&&(i(b,d),++b.yield.flushed>=b.yield.every))return void n(b,c);b.buildingRow.entriesBuff.push(f),b.buildingRow.aspectRatio+=j,b.buildingRow.width+=j*b.settings.rowHeight,b.lastAnalyzedIndex=e}else if("error"!==g.data("jg.loaded"))return}b.buildingRow.entriesBuff.length>0&&i(b,b.firstRowFlushed),b.spinner.active&&(b.spinner.active=!1,b.$gallery.height(b.$gallery.height()-b.spinner.$el.innerHeight()),b.spinner.$el.detach(),l(b.spinner)),m(b),b.$gallery.trigger(c?"jg.resize":"jg.complete")}function p(a){function b(b){if("string"!=typeof a.settings.sizeRangeSuffixes[b])throw"sizeRangeSuffixes."+b+" must be a string"}function c(a,b){if("string"==typeof a[b]){if(a[b]=parseFloat(a[b],10),isNaN(a[b]))throw"invalid number for "+b}else{if("number"!=typeof a[b])throw b+" must be a number";if(isNaN(a[b]))throw"invalid number for "+b}}if("object"!=typeof a.settings.sizeRangeSuffixes)throw"sizeRangeSuffixes must be defined and must be an object";if(b("lt100"),b("lt240"),b("lt320"),b("lt500"),b("lt640"),b("lt1024"),c(a.settings,"rowHeight"),c(a.settings,"maxRowHeight"),c(a.settings,"margins"),"nojustify"!==a.settings.lastRow&&"justify"!==a.settings.lastRow&&"hide"!==a.settings.lastRow)throw'lastRow must be "nojustify", "justify" or "hide"';if(c(a.settings,"justifyThreshold"),a.settings.justifyThreshold<0||a.settings.justifyThreshold>1)throw"justifyThreshold must be in the interval [0,1]";if("boolean"!=typeof a.settings.cssAnimation)throw"cssAnimation must be a boolean";if(c(a.settings.captionSettings,"animationDuration"),c(a.settings,"imagesAnimationDuration"),c(a.settings.captionSettings,"visibleOpacity"),a.settings.captionSettings.visibleOpacity<0||a.settings.captionSettings.visibleOpacity>1)throw"captionSettings.visibleOpacity must be in the interval [0, 1]";if(c(a.settings.captionSettings,"nonVisibleOpacity"),a.settings.captionSettings.visibleOpacity<0||a.settings.captionSettings.visibleOpacity>1)throw"captionSettings.nonVisibleOpacity must be in the interval [0, 1]";if("boolean"!=typeof a.settings.fixedHeight)throw"fixedHeight must be a boolean";if("boolean"!=typeof a.settings.captions)throw"captions must be a boolean";if(c(a.settings,"refreshTime"),"boolean"!=typeof a.settings.randomize)throw"randomize must be a boolean"}var q={sizeRangeSuffixes:{lt100:"_t",lt240:"_m",lt320:"_n",lt500:"",lt640:"_z",lt1024:"_b"},rowHeight:120,maxRowHeight:0,margins:1,lastRow:"nojustify",justifyThreshold:.75,fixedHeight:!1,captions:!0,cssAnimation:!1,imagesAnimationDuration:300,captionSettings:{animationDuration:500,visibleOpacity:.7,nonVisibleOpacity:0},rel:null,target:null,extension:/\.[^.]+$/,refreshTime:250,randomize:!1};return this.each(function(c,d){var e=a(d);e.addClass("justified-gallery");var f=e.data("jg.context");if("undefined"==typeof f){if("undefined"!=typeof b&&null!==b&&"object"!=typeof b)throw"The argument must be an object";var g=a('<div class="spinner"><span></span><span></span><span></span></div>');f={settings:a.extend({},q,b),imgAnalyzerTimeout:null,entries:null,buildingRow:{entriesBuff:[],width:0,aspectRatio:0},lastAnalyzedIndex:-1,firstRowFlushed:!1,"yield":{every:2,flushed:0},offY:0,spinner:{active:!1,phase:0,timeslot:150,$el:g,$points:g.find("span"),intervalId:null},checkWidthIntervalId:null,galleryWidth:e.width(),$gallery:e},e.data("jg.context",f)}else"norewind"===b||(f.settings=a.extend({},f.settings,b),h(f));if(p(f),f.entries=e.find("> a, > div").toArray(),0!==f.entries.length){f.settings.randomize&&(f.entries.sort(function(){return 2*Math.random()-1}),a.each(f.entries,function(){a(this).appendTo(e)})),f.usedSizeRangeRegExp=new RegExp("("+f.settings.sizeRangeSuffixes.lt100+"|"+f.settings.sizeRangeSuffixes.lt240+"|"+f.settings.sizeRangeSuffixes.lt320+"|"+f.settings.sizeRangeSuffixes.lt500+"|"+f.settings.sizeRangeSuffixes.lt640+"|"+f.settings.sizeRangeSuffixes.lt1024+")$"),f.settings.maxRowHeight>0&&f.settings.maxRowHeight<f.settings.rowHeight&&(f.settings.maxRowHeight=f.settings.rowHeight);var i=!1;a.each(f.entries,function(b,c){var d=a(c),g=d.find("img");if(g.data("jg.loaded")!==!0){g.data("jg.loaded",!1),i=!0,f.spinner.active===!1&&(f.spinner.active=!0,e.append(f.spinner.$el),e.height(f.offY+f.spinner.$el.innerHeight()),k(f.spinner)),null!==f.settings.rel&&d.attr("rel",f.settings.rel),null!==f.settings.target&&d.attr("target",f.settings.target);var h="undefined"!=typeof g.data("safe-src")?g.data("safe-src"):g.attr("src");g.data("jg.originalSrc",h),g.attr("src",h);var j=new Image,l=a(j);l.one("load",function(){g.off("load error"),g.data("jg.imgw",j.width),g.data("jg.imgh",j.height),g.data("jg.loaded",!0),n(f,!1)}),l.one("error",function(){g.off("load error"),g.data("jg.loaded","error"),n(f,!1)}),j.src=h}}),i||n(f,!1),j(f)}})}}(jQuery); \ No newline at end of file
diff --git a/library/oauth/LICENSE b/library/oauth/LICENSE
new file mode 100644
index 000000000..7078ba251
--- /dev/null
+++ b/library/oauth/LICENSE
@@ -0,0 +1,37 @@
+PHP OAuth API - Access API authorized by the users
+using the OAuth protocol
+
+This LICENSE is in the BSD license style.
+
+License Version Control:
+@(#) $Id: LICENSE,v 1.2 2013/02/11 05:17:53 mlemos Exp $
+
+Copyright (c) 2012-2013, Manuel Lemos
+All rights reserved.
+
+Redistribution and use in source and binary forms, with or without
+modification, are permitted provided that the following conditions
+are met:
+
+ Redistributions of source code must retain the above copyright
+ notice, this list of conditions and the following disclaimer.
+
+ Redistributions in binary form must reproduce the above copyright
+ notice, this list of conditions and the following disclaimer in the
+ documentation and/or other materials provided with the distribution.
+
+ Neither the name of Manuel Lemos nor the names of his contributors
+ may be used to endorse or promote products derived from this software
+ without specific prior written permission.
+
+THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR
+CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
+EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
+PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
+PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF
+LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
+NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
+SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
diff --git a/library/oauth/LICENSE.txt b/library/oauth/LICENSE.txt
new file mode 100644
index 000000000..29e83e173
--- /dev/null
+++ b/library/oauth/LICENSE.txt
@@ -0,0 +1,36 @@
+HTTP client PHP class
+
+This LICENSE is in the BSD license style.
+
+License Version Control:
+@(#) $Id: LICENSE.txt,v 1.1 2006/04/17 19:44:04 mlemos Exp $
+
+Copyright (c) 1999 - 2006, Manuel Lemos
+All rights reserved.
+
+Redistribution and use in source and binary forms, with or without
+modification, are permitted provided that the following conditions
+are met:
+
+ Redistributions of source code must retain the above copyright
+ notice, this list of conditions and the following disclaimer.
+
+ Redistributions in binary form must reproduce the above copyright
+ notice, this list of conditions and the following disclaimer in the
+ documentation and/or other materials provided with the distribution.
+
+ Neither the name of Manuel Lemos nor the names of his contributors
+ may be used to endorse or promote products derived from this software
+ without specific prior written permission.
+
+THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR
+CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
+EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
+PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
+PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF
+LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
+NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
+SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
diff --git a/library/oauth/http.php b/library/oauth/http.php
new file mode 100644
index 000000000..cb336fcfa
--- /dev/null
+++ b/library/oauth/http.php
@@ -0,0 +1,2092 @@
+<?php
+/*
+ * http.php
+ *
+ * @(#) $Header: /opt2/ena/metal/http/http.php,v 1.90 2013/02/20 11:45:28 mlemos Exp $
+ *
+ */
+
+define('HTTP_CLIENT_ERROR_UNSPECIFIED_ERROR', -1);
+define('HTTP_CLIENT_ERROR_NO_ERROR', 0);
+define('HTTP_CLIENT_ERROR_INVALID_SERVER_ADDRESS', 1);
+define('HTTP_CLIENT_ERROR_CANNOT_CONNECT', 2);
+define('HTTP_CLIENT_ERROR_COMMUNICATION_FAILURE', 3);
+define('HTTP_CLIENT_ERROR_CANNOT_ACCESS_LOCAL_FILE', 4);
+define('HTTP_CLIENT_ERROR_PROTOCOL_FAILURE', 5);
+define('HTTP_CLIENT_ERROR_INVALID_PARAMETERS', 6);
+
+class http_class
+{
+ var $host_name="";
+ var $host_port=0;
+ var $proxy_host_name="";
+ var $proxy_host_port=80;
+ var $socks_host_name = '';
+ var $socks_host_port = 1080;
+ var $socks_version = '5';
+
+ var $protocol="http";
+ var $request_method="GET";
+ var $user_agent='httpclient (http://www.phpclasses.org/httpclient $Revision: 1.90 $)';
+ var $accept='';
+ var $authentication_mechanism="";
+ var $user;
+ var $password;
+ var $realm;
+ var $workstation;
+ var $proxy_authentication_mechanism="";
+ var $proxy_user;
+ var $proxy_password;
+ var $proxy_realm;
+ var $proxy_workstation;
+ var $request_uri="";
+ var $request="";
+ var $request_headers=array();
+ var $request_user;
+ var $request_password;
+ var $request_realm;
+ var $request_workstation;
+ var $proxy_request_user;
+ var $proxy_request_password;
+ var $proxy_request_realm;
+ var $proxy_request_workstation;
+ var $request_body="";
+ var $request_arguments=array();
+ var $protocol_version="1.1";
+ var $timeout=0;
+ var $data_timeout=0;
+ var $debug=0;
+ var $log_debug=0;
+ var $debug_response_body=1;
+ var $html_debug=0;
+ var $support_cookies=1;
+ var $cookies=array();
+ var $error="";
+ var $error_code = HTTP_CLIENT_ERROR_NO_ERROR;
+ var $exclude_address="";
+ var $follow_redirect=0;
+ var $redirection_limit=5;
+ var $response_status="";
+ var $response_message="";
+ var $file_buffer_length=8000;
+ var $force_multipart_form_post=0;
+ var $prefer_curl = 0;
+ var $keep_alive = 1;
+ var $sasl_authenticate = 1;
+
+ /* private variables - DO NOT ACCESS */
+
+ var $state="Disconnected";
+ var $use_curl=0;
+ var $connection=0;
+ var $content_length=0;
+ var $response="";
+ var $read_response=0;
+ var $read_length=0;
+ var $request_host="";
+ var $next_token="";
+ var $redirection_level=0;
+ var $chunked=0;
+ var $remaining_chunk=0;
+ var $last_chunk_read=0;
+ var $months=array(
+ "Jan"=>"01",
+ "Feb"=>"02",
+ "Mar"=>"03",
+ "Apr"=>"04",
+ "May"=>"05",
+ "Jun"=>"06",
+ "Jul"=>"07",
+ "Aug"=>"08",
+ "Sep"=>"09",
+ "Oct"=>"10",
+ "Nov"=>"11",
+ "Dec"=>"12");
+ var $session='';
+ var $connection_close=0;
+ var $force_close = 0;
+ var $connected_host = '';
+ var $connected_port = -1;
+ var $connected_ssl = 0;
+
+ /* Private methods - DO NOT CALL */
+
+ Function Tokenize($string,$separator="")
+ {
+ if(!strcmp($separator,""))
+ {
+ $separator=$string;
+ $string=$this->next_token;
+ }
+ for($character=0;$character<strlen($separator);$character++)
+ {
+ if(GetType($position=strpos($string,$separator[$character]))=="integer")
+ $found=(IsSet($found) ? min($found,$position) : $position);
+ }
+ if(IsSet($found))
+ {
+ $this->next_token=substr($string,$found+1);
+ return(substr($string,0,$found));
+ }
+ else
+ {
+ $this->next_token="";
+ return($string);
+ }
+ }
+
+ Function CookieEncode($value, $name)
+ {
+ return($name ? str_replace("=", "%25", $value) : str_replace(";", "%3B", $value));
+ }
+
+ Function SetError($error, $error_code = HTTP_CLIENT_ERROR_UNSPECIFIED_ERROR)
+ {
+ $this->error_code = $error_code;
+ return($this->error=$error);
+ }
+
+ Function SetPHPError($error, &$php_error_message, $error_code = HTTP_CLIENT_ERROR_UNSPECIFIED_ERROR)
+ {
+ if(IsSet($php_error_message)
+ && strlen($php_error_message))
+ $error.=": ".$php_error_message;
+ return($this->SetError($error, $error_code));
+ }
+
+ Function SetDataAccessError($error,$check_connection=0)
+ {
+ $this->error=$error;
+ $this->error_code = HTTP_CLIENT_ERROR_COMMUNICATION_FAILURE;
+ if(!$this->use_curl
+ && function_exists("socket_get_status"))
+ {
+ $status=socket_get_status($this->connection);
+ if($status["timed_out"])
+ $this->error.=": data access time out";
+ elseif($status["eof"])
+ {
+ if($check_connection)
+ $this->error="";
+ else
+ $this->error.=": the server disconnected";
+ }
+ }
+ }
+
+ Function OutputDebug($message)
+ {
+ if($this->log_debug)
+ error_log($message);
+ else
+ {
+ $message.="\n";
+ if($this->html_debug)
+ $message=str_replace("\n","<br />\n",HtmlEntities($message));
+ echo $message;
+ flush();
+ }
+ }
+
+ Function GetLine()
+ {
+ for($line="";;)
+ {
+ if($this->use_curl)
+ {
+ $eol=strpos($this->response,"\n",$this->read_response);
+ $data=($eol ? substr($this->response,$this->read_response,$eol+1-$this->read_response) : "");
+ $this->read_response+=strlen($data);
+ }
+ else
+ {
+ if(feof($this->connection))
+ {
+ $this->SetDataAccessError("reached the end of data while reading from the HTTP server connection");
+ return(0);
+ }
+ $data=fgets($this->connection,100);
+ }
+ if(GetType($data)!="string"
+ || strlen($data)==0)
+ {
+ $this->SetDataAccessError("it was not possible to read line from the HTTP server");
+ return(0);
+ }
+ $line.=$data;
+ $length=strlen($line);
+ if($length
+ && !strcmp(substr($line,$length-1,1),"\n"))
+ {
+ $length-=(($length>=2 && !strcmp(substr($line,$length-2,1),"\r")) ? 2 : 1);
+ $line=substr($line,0,$length);
+ if($this->debug)
+ $this->OutputDebug("S $line");
+ return($line);
+ }
+ }
+ }
+
+ Function PutLine($line)
+ {
+ if($this->debug)
+ $this->OutputDebug("C $line");
+ if(!fputs($this->connection,$line."\r\n"))
+ {
+ $this->SetDataAccessError("it was not possible to send a line to the HTTP server");
+ return(0);
+ }
+ return(1);
+ }
+
+ Function PutData($data)
+ {
+ if(strlen($data))
+ {
+ if($this->debug)
+ $this->OutputDebug('C '.$data);
+ if(!fputs($this->connection,$data))
+ {
+ $this->SetDataAccessError("it was not possible to send data to the HTTP server");
+ return(0);
+ }
+ }
+ return(1);
+ }
+
+ Function FlushData()
+ {
+ if(!fflush($this->connection))
+ {
+ $this->SetDataAccessError("it was not possible to send data to the HTTP server");
+ return(0);
+ }
+ return(1);
+ }
+
+ Function ReadChunkSize()
+ {
+ if($this->remaining_chunk==0)
+ {
+ $debug=$this->debug;
+ if(!$this->debug_response_body)
+ $this->debug=0;
+ $line=$this->GetLine();
+ $this->debug=$debug;
+ if(GetType($line)!="string")
+ return($this->SetError("could not read chunk start: ".$this->error, $this->error_code));
+ $this->remaining_chunk=hexdec($line);
+ if($this->remaining_chunk == 0)
+ {
+ if(!$this->debug_response_body)
+ $this->debug=0;
+ $line=$this->GetLine();
+ $this->debug=$debug;
+ if(GetType($line)!="string")
+ return($this->SetError("could not read chunk end: ".$this->error, $this->error_code));
+ }
+ }
+ return("");
+ }
+
+ Function ReadBytes($length)
+ {
+ if($this->use_curl)
+ {
+ $bytes=substr($this->response,$this->read_response,min($length,strlen($this->response)-$this->read_response));
+ $this->read_response+=strlen($bytes);
+ if($this->debug
+ && $this->debug_response_body
+ && strlen($bytes))
+ $this->OutputDebug("S ".$bytes);
+ }
+ else
+ {
+ if($this->chunked)
+ {
+ for($bytes="",$remaining=$length;$remaining;)
+ {
+ if(strlen($this->ReadChunkSize()))
+ return("");
+ if($this->remaining_chunk==0)
+ {
+ $this->last_chunk_read=1;
+ break;
+ }
+ $ask=min($this->remaining_chunk,$remaining);
+ $chunk=@fread($this->connection,$ask);
+ $read=strlen($chunk);
+ if($read==0)
+ {
+ $this->SetDataAccessError("it was not possible to read data chunk from the HTTP server");
+ return("");
+ }
+ if($this->debug
+ && $this->debug_response_body)
+ $this->OutputDebug("S ".$chunk);
+ $bytes.=$chunk;
+ $this->remaining_chunk-=$read;
+ $remaining-=$read;
+ if($this->remaining_chunk==0)
+ {
+ if(feof($this->connection))
+ return($this->SetError("reached the end of data while reading the end of data chunk mark from the HTTP server", HTTP_CLIENT_ERROR_PROTOCOL_FAILURE));
+ $data=@fread($this->connection,2);
+ if(strcmp($data,"\r\n"))
+ {
+ $this->SetDataAccessError("it was not possible to read end of data chunk from the HTTP server");
+ return("");
+ }
+ }
+ }
+ }
+ else
+ {
+ $bytes=@fread($this->connection,$length);
+ if(strlen($bytes))
+ {
+ if($this->debug
+ && $this->debug_response_body)
+ $this->OutputDebug("S ".$bytes);
+ }
+ else
+ $this->SetDataAccessError("it was not possible to read data from the HTTP server", $this->connection_close);
+ }
+ }
+ return($bytes);
+ }
+
+ Function EndOfInput()
+ {
+ if($this->use_curl)
+ return($this->read_response>=strlen($this->response));
+ if($this->chunked)
+ return($this->last_chunk_read);
+ if($this->content_length_set)
+ return($this->content_length <= $this->read_length);
+ return(feof($this->connection));
+ }
+
+ Function Resolve($domain, &$ip, $server_type)
+ {
+ if(preg_match('/^[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}$/',$domain))
+ $ip=$domain;
+ else
+ {
+ if($this->debug)
+ $this->OutputDebug('Resolving '.$server_type.' server domain "'.$domain.'"...');
+ if(!strcmp($ip=@gethostbyname($domain),$domain))
+ $ip="";
+ }
+ if(strlen($ip)==0
+ || (strlen($this->exclude_address)
+ && !strcmp(@gethostbyname($this->exclude_address),$ip)))
+ return($this->SetError("could not resolve the host domain \"".$domain."\"", HTTP_CLIENT_ERROR_INVALID_SERVER_ADDRESS));
+ return('');
+ }
+
+ Function Connect($host_name, $host_port, $ssl, $server_type = 'HTTP')
+ {
+ $domain=$host_name;
+ $port = $host_port;
+ if(strlen($error = $this->Resolve($domain, $ip, $server_type)))
+ return($error);
+ if(strlen($this->socks_host_name))
+ {
+ switch($this->socks_version)
+ {
+ case '4':
+ $version = 4;
+ break;
+ case '5':
+ $version = 5;
+ break;
+ default:
+ return('it was not specified a supported SOCKS protocol version');
+ break;
+ }
+ $host_ip = $ip;
+ $port = $this->socks_host_port;
+ $host_server_type = $server_type;
+ $server_type = 'SOCKS';
+ if(strlen($error = $this->Resolve($this->socks_host_name, $ip, $server_type)))
+ return($error);
+ }
+ if($this->debug)
+ $this->OutputDebug('Connecting to '.$server_type.' server IP '.$ip.' port '.$port.'...');
+ if($ssl)
+ $ip="ssl://".$host_name;
+ if(($this->connection=($this->timeout ? @fsockopen($ip, $port, $errno, $error, $this->timeout) : @fsockopen($ip, $port, $errno)))==0)
+ {
+ $error_code = HTTP_CLIENT_ERROR_CANNOT_CONNECT;
+ switch($errno)
+ {
+ case -3:
+ return($this->SetError("socket could not be created", $error_code));
+ case -4:
+ return($this->SetError("dns lookup on hostname \"".$host_name."\" failed", $error_code));
+ case -5:
+ return($this->SetError("connection refused or timed out", $error_code));
+ case -6:
+ return($this->SetError("fdopen() call failed", $error_code));
+ case -7:
+ return($this->SetError("setvbuf() call failed", $error_code));
+ default:
+ return($this->SetPHPError($errno." could not connect to the host \"".$host_name."\"",$php_errormsg, $error_code));
+ }
+ }
+ else
+ {
+ if($this->data_timeout
+ && function_exists("socket_set_timeout"))
+ socket_set_timeout($this->connection,$this->data_timeout,0);
+ if(strlen($this->socks_host_name))
+ {
+ if($this->debug)
+ $this->OutputDebug('Connected to the SOCKS server '.$this->socks_host_name);
+ $send_error = 'it was not possible to send data to the SOCKS server';
+ $receive_error = 'it was not possible to receive data from the SOCKS server';
+ switch($version)
+ {
+ case 4:
+ $command = 1;
+ $user = '';
+ if(!fputs($this->connection, chr($version).chr($command).pack('nN', $host_port, ip2long($host_ip)).$user.Chr(0)))
+ $error = $this->SetDataAccessError($send_error);
+ else
+ {
+ $response = fgets($this->connection, 9);
+ if(strlen($response) != 8)
+ $error = $this->SetDataAccessError($receive_error);
+ else
+ {
+ $socks_errors = array(
+ "\x5a"=>'',
+ "\x5b"=>'request rejected',
+ "\x5c"=>'request failed because client is not running identd (or not reachable from the server)',
+ "\x5d"=>'request failed because client\'s identd could not confirm the user ID string in the request',
+ );
+ $error_code = $response[1];
+ $error = (IsSet($socks_errors[$error_code]) ? $socks_errors[$error_code] : 'unknown');
+ if(strlen($error))
+ $error = 'SOCKS error: '.$error;
+ }
+ }
+ break;
+ case 5:
+ if($this->debug)
+ $this->OutputDebug('Negotiating the authentication method ...');
+ $methods = 1;
+ $method = 0;
+ if(!fputs($this->connection, chr($version).chr($methods).chr($method)))
+ $error = $this->SetDataAccessError($send_error);
+ else
+ {
+ $response = fgets($this->connection, 3);
+ if(strlen($response) != 2)
+ $error = $this->SetDataAccessError($receive_error);
+ elseif(Ord($response[1]) != $method)
+ $error = 'the SOCKS server requires an authentication method that is not yet supported';
+ else
+ {
+ if($this->debug)
+ $this->OutputDebug('Connecting to '.$host_server_type.' server IP '.$host_ip.' port '.$host_port.'...');
+ $command = 1;
+ $address_type = 1;
+ if(!fputs($this->connection, chr($version).chr($command)."\x00".chr($address_type).pack('Nn', ip2long($host_ip), $host_port)))
+ $error = $this->SetDataAccessError($send_error);
+ else
+ {
+ $response = fgets($this->connection, 11);
+ if(strlen($response) != 10)
+ $error = $this->SetDataAccessError($receive_error);
+ else
+ {
+ $socks_errors = array(
+ "\x00"=>'',
+ "\x01"=>'general SOCKS server failure',
+ "\x02"=>'connection not allowed by ruleset',
+ "\x03"=>'Network unreachable',
+ "\x04"=>'Host unreachable',
+ "\x05"=>'Connection refused',
+ "\x06"=>'TTL expired',
+ "\x07"=>'Command not supported',
+ "\x08"=>'Address type not supported'
+ );
+ $error_code = $response[1];
+ $error = (IsSet($socks_errors[$error_code]) ? $socks_errors[$error_code] : 'unknown');
+ if(strlen($error))
+ $error = 'SOCKS error: '.$error;
+ }
+ }
+ }
+ }
+ break;
+ default:
+ $error = 'support for SOCKS protocol version '.$this->socks_version.' is not yet implemented';
+ break;
+ }
+ if(strlen($error))
+ {
+ fclose($this->connection);
+ return($error);
+ }
+ }
+ if($this->debug)
+ $this->OutputDebug("Connected to $host_name");
+ if(strlen($this->proxy_host_name)
+ && !strcmp(strtolower($this->protocol), 'https'))
+ {
+ if(function_exists('stream_socket_enable_crypto')
+ && in_array('ssl', stream_get_transports()))
+ $this->state = "ConnectedToProxy";
+ else
+ {
+ $this->OutputDebug("It is not possible to start SSL after connecting to the proxy server. If the proxy refuses to forward the SSL request, you may need to upgrade to PHP 5.1 or later with OpenSSL support enabled.");
+ $this->state="Connected";
+ }
+ }
+ else
+ $this->state="Connected";
+ return("");
+ }
+ }
+
+ Function Disconnect()
+ {
+ if($this->debug)
+ $this->OutputDebug("Disconnected from ".$this->connected_host);
+ if($this->use_curl)
+ {
+ curl_close($this->connection);
+ $this->response="";
+ }
+ else
+ fclose($this->connection);
+ $this->state="Disconnected";
+ return("");
+ }
+
+ /* Public methods */
+
+ Function GetRequestArguments($url, &$arguments)
+ {
+ $this->error = '';
+ $this->error_code = HTTP_CLIENT_ERROR_NO_ERROR;
+ $arguments=array();
+ $url = str_replace(' ', '%20', $url);
+ $parameters=@parse_url($url);
+ if(!$parameters)
+ return($this->SetError("it was not specified a valid URL", HTTP_CLIENT_ERROR_INVALID_PARAMETERS));
+ if(!IsSet($parameters["scheme"]))
+ return($this->SetError("it was not specified the protocol type argument", HTTP_CLIENT_ERROR_INVALID_PARAMETERS));
+ switch(strtolower($parameters["scheme"]))
+ {
+ case "http":
+ case "https":
+ $arguments["Protocol"]=$parameters["scheme"];
+ break;
+ default:
+ return($parameters["scheme"]." connection scheme is not yet supported");
+ }
+ if(!IsSet($parameters["host"]))
+ return($this->SetError("it was not specified the connection host argument", HTTP_CLIENT_ERROR_INVALID_PARAMETERS));
+ $arguments["HostName"]=$parameters["host"];
+ $arguments["Headers"]=array("Host"=>$parameters["host"].(IsSet($parameters["port"]) ? ":".$parameters["port"] : ""));
+ if(IsSet($parameters["user"]))
+ {
+ $arguments["AuthUser"]=UrlDecode($parameters["user"]);
+ if(!IsSet($parameters["pass"]))
+ $arguments["AuthPassword"]="";
+ }
+ if(IsSet($parameters["pass"]))
+ {
+ if(!IsSet($parameters["user"]))
+ $arguments["AuthUser"]="";
+ $arguments["AuthPassword"]=UrlDecode($parameters["pass"]);
+ }
+ if(IsSet($parameters["port"]))
+ {
+ if(strcmp($parameters["port"],strval(intval($parameters["port"]))))
+ return($this->SetError("it was not specified a valid connection host argument", HTTP_CLIENT_ERROR_INVALID_PARAMETERS));
+ $arguments["HostPort"]=intval($parameters["port"]);
+ }
+ else
+ $arguments["HostPort"]=0;
+ $arguments["RequestURI"]=(IsSet($parameters["path"]) ? $parameters["path"] : "/").(IsSet($parameters["query"]) ? "?".$parameters["query"] : "");
+ if(strlen($this->user_agent))
+ $arguments["Headers"]["User-Agent"]=$this->user_agent;
+ if(strlen($this->accept))
+ $arguments["Headers"]["Accept"]=$this->accept;
+ return("");
+ }
+
+ Function Open($arguments)
+ {
+ if(strlen($this->error))
+ return($this->error);
+ $error_code = HTTP_CLIENT_ERROR_UNSPECIFIED_ERROR;
+ if(IsSet($arguments["HostName"]))
+ $this->host_name=$arguments["HostName"];
+ if(IsSet($arguments["HostPort"]))
+ $this->host_port=$arguments["HostPort"];
+ if(IsSet($arguments["ProxyHostName"]))
+ $this->proxy_host_name=$arguments["ProxyHostName"];
+ if(IsSet($arguments["ProxyHostPort"]))
+ $this->proxy_host_port=$arguments["ProxyHostPort"];
+ if(IsSet($arguments["SOCKSHostName"]))
+ $this->socks_host_name=$arguments["SOCKSHostName"];
+ if(IsSet($arguments["SOCKSHostPort"]))
+ $this->socks_host_port=$arguments["SOCKSHostPort"];
+ if(IsSet($arguments["SOCKSVersion"]))
+ $this->socks_version=$arguments["SOCKSVersion"];
+ if(IsSet($arguments["Protocol"]))
+ $this->protocol=$arguments["Protocol"];
+ switch(strtolower($this->protocol))
+ {
+ case "http":
+ $default_port=80;
+ break;
+ case "https":
+ $default_port=443;
+ break;
+ default:
+ return($this->SetError("it was not specified a valid connection protocol", HTTP_CLIENT_ERROR_INVALID_PARAMETERS));
+ }
+ if(strlen($this->proxy_host_name)==0)
+ {
+ if(strlen($this->host_name)==0)
+ return($this->SetError("it was not specified a valid hostname", HTTP_CLIENT_ERROR_INVALID_PARAMETERS));
+ $host_name=$this->host_name;
+ $host_port=($this->host_port ? $this->host_port : $default_port);
+ $server_type = 'HTTP';
+ }
+ else
+ {
+ $host_name=$this->proxy_host_name;
+ $host_port=$this->proxy_host_port;
+ $server_type = 'HTTP proxy';
+ }
+ $ssl=(strtolower($this->protocol)=="https" && strlen($this->proxy_host_name)==0);
+ if($ssl
+ && strlen($this->socks_host_name))
+ return($this->SetError('establishing SSL connections via a SOCKS server is not yet supported', HTTP_CLIENT_ERROR_INVALID_PARAMETERS));
+ $this->use_curl=($ssl && $this->prefer_curl && function_exists("curl_init"));
+ switch($this->state)
+ {
+ case 'Connected':
+ if(!strcmp($host_name, $this->connected_host)
+ && intval($host_port) == $this->connected_port
+ && intval($ssl) == $this->connected_ssl)
+ {
+ if($this->debug)
+ $this->OutputDebug("Reusing connection to ".$this->connected_host);
+ return('');
+ }
+ if(strlen($error = $this->Disconnect()))
+ return($error);
+ case "Disconnected":
+ break;
+ default:
+ return("1 already connected");
+ }
+ if($this->debug)
+ $this->OutputDebug("Connecting to ".$this->host_name);
+ if($this->use_curl)
+ {
+ $error=(($this->connection=curl_init($this->protocol."://".$this->host_name.($host_port==$default_port ? "" : ":".strval($host_port))."/")) ? "" : "Could not initialize a CURL session");
+ if(strlen($error)==0)
+ {
+ if(IsSet($arguments["SSLCertificateFile"]))
+ curl_setopt($this->connection,CURLOPT_SSLCERT,$arguments["SSLCertificateFile"]);
+ if(IsSet($arguments["SSLCertificatePassword"]))
+ curl_setopt($this->connection,CURLOPT_SSLCERTPASSWD,$arguments["SSLCertificatePassword"]);
+ if(IsSet($arguments["SSLKeyFile"]))
+ curl_setopt($this->connection,CURLOPT_SSLKEY,$arguments["SSLKeyFile"]);
+ if(IsSet($arguments["SSLKeyPassword"]))
+ curl_setopt($this->connection,CURLOPT_SSLKEYPASSWD,$arguments["SSLKeyPassword"]);
+ }
+ $this->state="Connected";
+ }
+ else
+ {
+ $error="";
+ if(strlen($this->proxy_host_name)
+ && (IsSet($arguments["SSLCertificateFile"])
+ || IsSet($arguments["SSLCertificateFile"])))
+ $error="establishing SSL connections using certificates or private keys via non-SSL proxies is not supported";
+ else
+ {
+ if($ssl)
+ {
+ if(IsSet($arguments["SSLCertificateFile"]))
+ $error="establishing SSL connections using certificates is only supported when the cURL extension is enabled";
+ elseif(IsSet($arguments["SSLKeyFile"]))
+ $error="establishing SSL connections using a private key is only supported when the cURL extension is enabled";
+ else
+ {
+ $version=explode(".",function_exists("phpversion") ? phpversion() : "3.0.7");
+ $php_version=intval($version[0])*1000000+intval($version[1])*1000+intval($version[2]);
+ if($php_version<4003000)
+ $error="establishing SSL connections requires at least PHP version 4.3.0 or having the cURL extension enabled";
+ elseif(!function_exists("extension_loaded")
+ || !extension_loaded("openssl"))
+ $error="establishing SSL connections requires the OpenSSL extension enabled";
+ }
+ }
+ if(strlen($error)==0)
+ {
+ $error=$this->Connect($host_name, $host_port, $ssl, $server_type);
+ $error_code = $this->error_code;
+ }
+ }
+ }
+ if(strlen($error))
+ return($this->SetError($error, $error_code));
+ $this->session=md5(uniqid(""));
+ $this->connected_host = $host_name;
+ $this->connected_port = intval($host_port);
+ $this->connected_ssl = intval($ssl);
+ return("");
+ }
+
+ Function Close($force = 0)
+ {
+ if($this->state=="Disconnected")
+ return("1 already disconnected");
+ if(!$this->force_close
+ && $this->keep_alive
+ && !$force
+ && $this->state == 'ResponseReceived')
+ {
+ if($this->debug)
+ $this->OutputDebug('Keeping the connection alive to '.$this->connected_host);
+ $this->state = 'Connected';
+ return('');
+ }
+ return($this->Disconnect());
+ }
+
+ Function PickCookies(&$cookies,$secure)
+ {
+ if(IsSet($this->cookies[$secure]))
+ {
+ $now=gmdate("Y-m-d H-i-s");
+ for($domain=0,Reset($this->cookies[$secure]);$domain<count($this->cookies[$secure]);Next($this->cookies[$secure]),$domain++)
+ {
+ $domain_pattern=Key($this->cookies[$secure]);
+ $match=strlen($this->request_host)-strlen($domain_pattern);
+ if($match>=0
+ && !strcmp($domain_pattern,substr($this->request_host,$match))
+ && ($match==0
+ || $domain_pattern[0]=="."
+ || $this->request_host[$match-1]=="."))
+ {
+ for(Reset($this->cookies[$secure][$domain_pattern]),$path_part=0;$path_part<count($this->cookies[$secure][$domain_pattern]);Next($this->cookies[$secure][$domain_pattern]),$path_part++)
+ {
+ $path=Key($this->cookies[$secure][$domain_pattern]);
+ if(strlen($this->request_uri)>=strlen($path)
+ && substr($this->request_uri,0,strlen($path))==$path)
+ {
+ for(Reset($this->cookies[$secure][$domain_pattern][$path]),$cookie=0;$cookie<count($this->cookies[$secure][$domain_pattern][$path]);Next($this->cookies[$secure][$domain_pattern][$path]),$cookie++)
+ {
+ $cookie_name=Key($this->cookies[$secure][$domain_pattern][$path]);
+ $expires=$this->cookies[$secure][$domain_pattern][$path][$cookie_name]["expires"];
+ if($expires==""
+ || strcmp($now,$expires)<0)
+ $cookies[$cookie_name]=$this->cookies[$secure][$domain_pattern][$path][$cookie_name];
+ }
+ }
+ }
+ }
+ }
+ }
+ }
+
+ Function GetFileDefinition($file, &$definition)
+ {
+ $name="";
+ if(IsSet($file["FileName"]))
+ $name=basename($file["FileName"]);
+ if(IsSet($file["Name"]))
+ $name=$file["Name"];
+ if(strlen($name)==0)
+ return("it was not specified the file part name");
+ if(IsSet($file["Content-Type"]))
+ {
+ $content_type=$file["Content-Type"];
+ $type=$this->Tokenize(strtolower($content_type),"/");
+ $sub_type=$this->Tokenize("");
+ switch($type)
+ {
+ case "text":
+ case "image":
+ case "audio":
+ case "video":
+ case "application":
+ case "message":
+ break;
+ case "automatic":
+ switch($sub_type)
+ {
+ case "name":
+ switch(GetType($dot=strrpos($name,"."))=="integer" ? strtolower(substr($name,$dot)) : "")
+ {
+ case ".xls":
+ $content_type="application/excel";
+ break;
+ case ".hqx":
+ $content_type="application/macbinhex40";
+ break;
+ case ".doc":
+ case ".dot":
+ case ".wrd":
+ $content_type="application/msword";
+ break;
+ case ".pdf":
+ $content_type="application/pdf";
+ break;
+ case ".pgp":
+ $content_type="application/pgp";
+ break;
+ case ".ps":
+ case ".eps":
+ case ".ai":
+ $content_type="application/postscript";
+ break;
+ case ".ppt":
+ $content_type="application/powerpoint";
+ break;
+ case ".rtf":
+ $content_type="application/rtf";
+ break;
+ case ".tgz":
+ case ".gtar":
+ $content_type="application/x-gtar";
+ break;
+ case ".gz":
+ $content_type="application/x-gzip";
+ break;
+ case ".php":
+ case ".php3":
+ $content_type="application/x-httpd-php";
+ break;
+ case ".js":
+ $content_type="application/x-javascript";
+ break;
+ case ".ppd":
+ case ".psd":
+ $content_type="application/x-photoshop";
+ break;
+ case ".swf":
+ case ".swc":
+ case ".rf":
+ $content_type="application/x-shockwave-flash";
+ break;
+ case ".tar":
+ $content_type="application/x-tar";
+ break;
+ case ".zip":
+ $content_type="application/zip";
+ break;
+ case ".mid":
+ case ".midi":
+ case ".kar":
+ $content_type="audio/midi";
+ break;
+ case ".mp2":
+ case ".mp3":
+ case ".mpga":
+ $content_type="audio/mpeg";
+ break;
+ case ".ra":
+ $content_type="audio/x-realaudio";
+ break;
+ case ".wav":
+ $content_type="audio/wav";
+ break;
+ case ".bmp":
+ $content_type="image/bitmap";
+ break;
+ case ".gif":
+ $content_type="image/gif";
+ break;
+ case ".iff":
+ $content_type="image/iff";
+ break;
+ case ".jb2":
+ $content_type="image/jb2";
+ break;
+ case ".jpg":
+ case ".jpe":
+ case ".jpeg":
+ $content_type="image/jpeg";
+ break;
+ case ".jpx":
+ $content_type="image/jpx";
+ break;
+ case ".png":
+ $content_type="image/png";
+ break;
+ case ".tif":
+ case ".tiff":
+ $content_type="image/tiff";
+ break;
+ case ".wbmp":
+ $content_type="image/vnd.wap.wbmp";
+ break;
+ case ".xbm":
+ $content_type="image/xbm";
+ break;
+ case ".css":
+ $content_type="text/css";
+ break;
+ case ".txt":
+ $content_type="text/plain";
+ break;
+ case ".htm":
+ case ".html":
+ $content_type="text/html";
+ break;
+ case ".xml":
+ $content_type="text/xml";
+ break;
+ case ".mpg":
+ case ".mpe":
+ case ".mpeg":
+ $content_type="video/mpeg";
+ break;
+ case ".qt":
+ case ".mov":
+ $content_type="video/quicktime";
+ break;
+ case ".avi":
+ $content_type="video/x-ms-video";
+ break;
+ case ".eml":
+ $content_type="message/rfc822";
+ break;
+ default:
+ $content_type="application/octet-stream";
+ break;
+ }
+ break;
+ default:
+ return($content_type." is not a supported automatic content type detection method");
+ }
+ break;
+ default:
+ return($content_type." is not a supported file content type");
+ }
+ }
+ else
+ $content_type="application/octet-stream";
+ $definition=array(
+ "Content-Type"=>$content_type,
+ "NAME"=>$name
+ );
+ if(IsSet($file["FileName"]))
+ {
+ if(GetType($length=@filesize($file["FileName"]))!="integer")
+ {
+ $error="it was not possible to determine the length of the file ".$file["FileName"];
+ if(IsSet($php_errormsg)
+ && strlen($php_errormsg))
+ $error.=": ".$php_errormsg;
+ if(!file_exists($file["FileName"]))
+ $error="it was not possible to access the file ".$file["FileName"];
+ return($error);
+ }
+ $definition["FILENAME"]=$file["FileName"];
+ $definition["Content-Length"]=$length;
+ }
+ elseif(IsSet($file["Data"]))
+ $definition["Content-Length"]=strlen($definition["DATA"]=$file["Data"]);
+ else
+ return("it was not specified a valid file name");
+ return("");
+ }
+
+ Function ConnectFromProxy($arguments, &$headers)
+ {
+ if(!$this->PutLine('CONNECT '.$this->host_name.':'.($this->host_port ? $this->host_port : 443).' HTTP/1.0')
+ || (strlen($this->user_agent)
+ && !$this->PutLine('User-Agent: '.$this->user_agent))
+ || (strlen($this->accept)
+ && !$this->PutLine('Accept: '.$this->accept))
+ || (IsSet($arguments['Headers']['Proxy-Authorization'])
+ && !$this->PutLine('Proxy-Authorization: '.$arguments['Headers']['Proxy-Authorization']))
+ || !$this->PutLine(''))
+ {
+ $this->Disconnect();
+ return($this->error);
+ }
+ $this->state = "ConnectSent";
+ if(strlen($error=$this->ReadReplyHeadersResponse($headers)))
+ return($error);
+ $proxy_authorization="";
+ while(!strcmp($this->response_status, "100"))
+ {
+ $this->state="ConnectSent";
+ if(strlen($error=$this->ReadReplyHeadersResponse($headers)))
+ return($error);
+ }
+ switch($this->response_status)
+ {
+ case "200":
+ if(!@stream_socket_enable_crypto($this->connection, 1, STREAM_CRYPTO_METHOD_SSLv23_CLIENT))
+ {
+ $this->SetPHPError('it was not possible to start a SSL encrypted connection via this proxy', $php_errormsg, HTTP_CLIENT_ERROR_COMMUNICATION_FAILURE);
+ $this->Disconnect();
+ return($this->error);
+ }
+ $this->state = "Connected";
+ break;
+ case "407":
+ if(strlen($error=$this->Authenticate($headers, -1, $proxy_authorization, $this->proxy_request_user, $this->proxy_request_password, $this->proxy_request_realm, $this->proxy_request_workstation)))
+ return($error);
+ break;
+ default:
+ return($this->SetError("unable to send request via proxy", HTTP_CLIENT_ERROR_PROTOCOL_FAILURE));
+ }
+ return("");
+ }
+
+ Function SendRequest($arguments)
+ {
+ if(strlen($this->error))
+ return($this->error);
+ if(IsSet($arguments["ProxyUser"]))
+ $this->proxy_request_user=$arguments["ProxyUser"];
+ elseif(IsSet($this->proxy_user))
+ $this->proxy_request_user=$this->proxy_user;
+ if(IsSet($arguments["ProxyPassword"]))
+ $this->proxy_request_password=$arguments["ProxyPassword"];
+ elseif(IsSet($this->proxy_password))
+ $this->proxy_request_password=$this->proxy_password;
+ if(IsSet($arguments["ProxyRealm"]))
+ $this->proxy_request_realm=$arguments["ProxyRealm"];
+ elseif(IsSet($this->proxy_realm))
+ $this->proxy_request_realm=$this->proxy_realm;
+ if(IsSet($arguments["ProxyWorkstation"]))
+ $this->proxy_request_workstation=$arguments["ProxyWorkstation"];
+ elseif(IsSet($this->proxy_workstation))
+ $this->proxy_request_workstation=$this->proxy_workstation;
+ switch($this->state)
+ {
+ case "Disconnected":
+ return($this->SetError("connection was not yet established", HTTP_CLIENT_ERROR_INVALID_PARAMETERS));
+ case "Connected":
+ $connect = 0;
+ break;
+ case "ConnectedToProxy":
+ if(strlen($error = $this->ConnectFromProxy($arguments, $headers)))
+ return($error);
+ $connect = 1;
+ break;
+ default:
+ return($this->SetError("can not send request in the current connection state", HTTP_CLIENT_ERROR_INVALID_PARAMETERS));
+ }
+ if(IsSet($arguments["RequestMethod"]))
+ $this->request_method=$arguments["RequestMethod"];
+ if(IsSet($arguments["User-Agent"]))
+ $this->user_agent=$arguments["User-Agent"];
+ if(!IsSet($arguments["Headers"]["User-Agent"])
+ && strlen($this->user_agent))
+ $arguments["Headers"]["User-Agent"]=$this->user_agent;
+ if(IsSet($arguments["KeepAlive"]))
+ $this->keep_alive=intval($arguments["KeepAlive"]);
+ if(!IsSet($arguments["Headers"]["Connection"])
+ && $this->keep_alive)
+ $arguments["Headers"]["Connection"]='Keep-Alive';
+ if(IsSet($arguments["Accept"]))
+ $this->user_agent=$arguments["Accept"];
+ if(!IsSet($arguments["Headers"]["Accept"])
+ && strlen($this->accept))
+ $arguments["Headers"]["Accept"]=$this->accept;
+ if(strlen($this->request_method)==0)
+ return($this->SetError("it was not specified a valid request method", HTTP_CLIENT_ERROR_INVALID_PARAMETERS));
+ if(IsSet($arguments["RequestURI"]))
+ $this->request_uri=$arguments["RequestURI"];
+ if(strlen($this->request_uri)==0
+ || substr($this->request_uri,0,1)!="/")
+ return($this->SetError("it was not specified a valid request URI", HTTP_CLIENT_ERROR_INVALID_PARAMETERS));
+ $this->request_arguments=$arguments;
+ $this->request_headers=(IsSet($arguments["Headers"]) ? $arguments["Headers"] : array());
+ $body_length=0;
+ $this->request_body="";
+ $get_body=1;
+ if($this->request_method=="POST"
+ || $this->request_method=="PUT")
+ {
+ if(IsSet($arguments['StreamRequest']))
+ {
+ $get_body = 0;
+ $this->request_headers["Transfer-Encoding"]="chunked";
+ }
+ elseif(IsSet($arguments["PostFiles"])
+ || ($this->force_multipart_form_post
+ && IsSet($arguments["PostValues"])))
+ {
+ $boundary="--".md5(uniqid(time()));
+ $this->request_headers["Content-Type"]="multipart/form-data; boundary=".$boundary.(IsSet($arguments["CharSet"]) ? "; charset=".$arguments["CharSet"] : "");
+ $post_parts=array();
+ if(IsSet($arguments["PostValues"]))
+ {
+ $values=$arguments["PostValues"];
+ if(GetType($values)!="array")
+ return($this->SetError("it was not specified a valid POST method values array", HTTP_CLIENT_ERROR_INVALID_PARAMETERS));
+ for(Reset($values),$value=0;$value<count($values);Next($values),$value++)
+ {
+ $input=Key($values);
+ $headers="--".$boundary."\r\nContent-Disposition: form-data; name=\"".$input."\"\r\n\r\n";
+ $data=$values[$input];
+ $post_parts[]=array("HEADERS"=>$headers,"DATA"=>$data);
+ $body_length+=strlen($headers)+strlen($data)+strlen("\r\n");
+ }
+ }
+ $body_length+=strlen("--".$boundary."--\r\n");
+ $files=(IsSet($arguments["PostFiles"]) ? $arguments["PostFiles"] : array());
+ Reset($files);
+ $end=(GetType($input=Key($files))!="string");
+ for(;!$end;)
+ {
+ if(strlen($error=$this->GetFileDefinition($files[$input],$definition)))
+ return("3 ".$error);
+ $headers="--".$boundary."\r\nContent-Disposition: form-data; name=\"".$input."\"; filename=\"".$definition["NAME"]."\"\r\nContent-Type: ".$definition["Content-Type"]."\r\n\r\n";
+ $part=count($post_parts);
+ $post_parts[$part]=array("HEADERS"=>$headers);
+ if(IsSet($definition["FILENAME"]))
+ {
+ $post_parts[$part]["FILENAME"]=$definition["FILENAME"];
+ $data="";
+ }
+ else
+ $data=$definition["DATA"];
+ $post_parts[$part]["DATA"]=$data;
+ $body_length+=strlen($headers)+$definition["Content-Length"]+strlen("\r\n");
+ Next($files);
+ $end=(GetType($input=Key($files))!="string");
+ }
+ $get_body=0;
+ }
+ elseif(IsSet($arguments["PostValues"]))
+ {
+ $values=$arguments["PostValues"];
+ if(GetType($values)!="array")
+ return($this->SetError("it was not specified a valid POST method values array", HTTP_CLIENT_ERROR_INVALID_PARAMETERS));
+ for(Reset($values),$value=0;$value<count($values);Next($values),$value++)
+ {
+ $k=Key($values);
+ if(GetType($values[$k])=="array")
+ {
+ for($v = 0; $v < count($values[$k]); $v++)
+ {
+ if($value+$v>0)
+ $this->request_body.="&";
+ $this->request_body.=UrlEncode($k)."=".UrlEncode($values[$k][$v]);
+ }
+ }
+ else
+ {
+ if($value>0)
+ $this->request_body.="&";
+ $this->request_body.=UrlEncode($k)."=".UrlEncode($values[$k]);
+ }
+ }
+ $this->request_headers["Content-Type"]="application/x-www-form-urlencoded".(IsSet($arguments["CharSet"]) ? "; charset=".$arguments["CharSet"] : "");
+ $get_body=0;
+ }
+ }
+ if($get_body
+ && (IsSet($arguments["Body"])
+ || IsSet($arguments["BodyStream"])))
+ {
+ if(IsSet($arguments["Body"]))
+ $this->request_body=$arguments["Body"];
+ else
+ {
+ $stream=$arguments["BodyStream"];
+ $this->request_body="";
+ for($part=0; $part<count($stream); $part++)
+ {
+ if(IsSet($stream[$part]["Data"]))
+ $this->request_body.=$stream[$part]["Data"];
+ elseif(IsSet($stream[$part]["File"]))
+ {
+ if(!($file=@fopen($stream[$part]["File"],"rb")))
+ return($this->SetPHPError("could not open upload file ".$stream[$part]["File"], $php_errormsg, HTTP_CLIENT_ERROR_CANNOT_ACCESS_LOCAL_FILE));
+ while(!feof($file))
+ {
+ if(GetType($block=@fread($file,$this->file_buffer_length))!="string")
+ {
+ $error=$this->SetPHPError("could not read body stream file ".$stream[$part]["File"], $php_errormsg, HTTP_CLIENT_ERROR_CANNOT_ACCESS_LOCAL_FILE);
+ fclose($file);
+ return($error);
+ }
+ $this->request_body.=$block;
+ }
+ fclose($file);
+ }
+ else
+ return("5 it was not specified a valid file or data body stream element at position ".$part);
+ }
+ }
+ if(!IsSet($this->request_headers["Content-Type"]))
+ $this->request_headers["Content-Type"]="application/octet-stream".(IsSet($arguments["CharSet"]) ? "; charset=".$arguments["CharSet"] : "");
+ }
+ if(IsSet($arguments["AuthUser"]))
+ $this->request_user=$arguments["AuthUser"];
+ elseif(IsSet($this->user))
+ $this->request_user=$this->user;
+ if(IsSet($arguments["AuthPassword"]))
+ $this->request_password=$arguments["AuthPassword"];
+ elseif(IsSet($this->password))
+ $this->request_password=$this->password;
+ if(IsSet($arguments["AuthRealm"]))
+ $this->request_realm=$arguments["AuthRealm"];
+ elseif(IsSet($this->realm))
+ $this->request_realm=$this->realm;
+ if(IsSet($arguments["AuthWorkstation"]))
+ $this->request_workstation=$arguments["AuthWorkstation"];
+ elseif(IsSet($this->workstation))
+ $this->request_workstation=$this->workstation;
+ if(strlen($this->proxy_host_name)==0
+ || $connect)
+ $request_uri=$this->request_uri;
+ else
+ {
+ switch(strtolower($this->protocol))
+ {
+ case "http":
+ $default_port=80;
+ break;
+ case "https":
+ $default_port=443;
+ break;
+ }
+ $request_uri=strtolower($this->protocol)."://".$this->host_name.(($this->host_port==0 || $this->host_port==$default_port) ? "" : ":".$this->host_port).$this->request_uri;
+ }
+ if($this->use_curl)
+ {
+ $version=(GetType($v=curl_version())=="array" ? (IsSet($v["version"]) ? $v["version"] : "0.0.0") : (preg_match("/^libcurl\\/([0-9]+\\.[0-9]+\\.[0-9]+)/",$v,$m) ? $m[1] : "0.0.0"));
+ $curl_version=100000*intval($this->Tokenize($version,"."))+1000*intval($this->Tokenize("."))+intval($this->Tokenize(""));
+ $protocol_version=($curl_version<713002 ? "1.0" : $this->protocol_version);
+ }
+ else
+ $protocol_version=$this->protocol_version;
+ $this->request=$this->request_method." ".$request_uri." HTTP/".$protocol_version;
+ if($body_length
+ || ($body_length=strlen($this->request_body))
+ || !strcmp($this->request_method, 'POST'))
+ $this->request_headers["Content-Length"]=$body_length;
+ for($headers=array(),$host_set=0,Reset($this->request_headers),$header=0;$header<count($this->request_headers);Next($this->request_headers),$header++)
+ {
+ $header_name=Key($this->request_headers);
+ $header_value=$this->request_headers[$header_name];
+ if(GetType($header_value)=="array")
+ {
+ for(Reset($header_value),$value=0;$value<count($header_value);Next($header_value),$value++)
+ $headers[]=$header_name.": ".$header_value[Key($header_value)];
+ }
+ else
+ $headers[]=$header_name.": ".$header_value;
+ if(strtolower(Key($this->request_headers))=="host")
+ {
+ $this->request_host=strtolower($header_value);
+ $host_set=1;
+ }
+ }
+ if(!$host_set)
+ {
+ $headers[]="Host: ".$this->host_name;
+ $this->request_host=strtolower($this->host_name);
+ }
+ if(count($this->cookies))
+ {
+ $cookies=array();
+ $this->PickCookies($cookies,0);
+ if(strtolower($this->protocol)=="https")
+ $this->PickCookies($cookies,1);
+ if(count($cookies))
+ {
+ $h=count($headers);
+ $headers[$h]="Cookie:";
+ for(Reset($cookies),$cookie=0;$cookie<count($cookies);Next($cookies),$cookie++)
+ {
+ $cookie_name=Key($cookies);
+ $headers[$h].=" ".$cookie_name."=".$cookies[$cookie_name]["value"].";";
+ }
+ }
+ }
+ $next_state = "RequestSent";
+ if($this->use_curl)
+ {
+ if(IsSet($arguments['StreamRequest']))
+ return($this->SetError("Streaming request data is not supported when using Curl", HTTP_CLIENT_ERROR_INVALID_PARAMETERS));
+ if($body_length
+ && strlen($this->request_body)==0)
+ {
+ for($request_body="",$success=1,$part=0;$part<count($post_parts);$part++)
+ {
+ $request_body.=$post_parts[$part]["HEADERS"].$post_parts[$part]["DATA"];
+ if(IsSet($post_parts[$part]["FILENAME"]))
+ {
+ if(!($file=@fopen($post_parts[$part]["FILENAME"],"rb")))
+ {
+ $this->SetPHPError("could not open upload file ".$post_parts[$part]["FILENAME"], $php_errormsg, HTTP_CLIENT_ERROR_CANNOT_ACCESS_LOCAL_FILE);
+ $success=0;
+ break;
+ }
+ while(!feof($file))
+ {
+ if(GetType($block=@fread($file,$this->file_buffer_length))!="string")
+ {
+ $this->SetPHPError("could not read upload file", $php_errormsg, HTTP_CLIENT_ERROR_CANNOT_ACCESS_LOCAL_FILE);
+ $success=0;
+ break;
+ }
+ $request_body.=$block;
+ }
+ fclose($file);
+ if(!$success)
+ break;
+ }
+ $request_body.="\r\n";
+ }
+ $request_body.="--".$boundary."--\r\n";
+ }
+ else
+ $request_body=$this->request_body;
+ curl_setopt($this->connection,CURLOPT_HEADER,1);
+ curl_setopt($this->connection,CURLOPT_RETURNTRANSFER,1);
+ if($this->timeout)
+ curl_setopt($this->connection,CURLOPT_TIMEOUT,$this->timeout);
+ curl_setopt($this->connection,CURLOPT_SSL_VERIFYPEER,0);
+ curl_setopt($this->connection,CURLOPT_SSL_VERIFYHOST,0);
+ $request=$this->request."\r\n".implode("\r\n",$headers)."\r\n\r\n".$request_body;
+ curl_setopt($this->connection,CURLOPT_CUSTOMREQUEST,$request);
+ if($this->debug)
+ $this->OutputDebug("C ".$request);
+ if(!($success=(strlen($this->response=curl_exec($this->connection))!=0)))
+ {
+ $error=curl_error($this->connection);
+ $this->SetError("Could not execute the request".(strlen($error) ? ": ".$error : ""), HTTP_CLIENT_ERROR_PROTOCOL_FAILURE);
+ }
+ }
+ else
+ {
+ if(($success=$this->PutLine($this->request)))
+ {
+ for($header=0;$header<count($headers);$header++)
+ {
+ if(!$success=$this->PutLine($headers[$header]))
+ break;
+ }
+ if($success
+ && ($success=$this->PutLine("")))
+ {
+ if(IsSet($arguments['StreamRequest']))
+ $next_state = "SendingRequestBody";
+ elseif($body_length)
+ {
+ if(strlen($this->request_body))
+ $success=$this->PutData($this->request_body);
+ else
+ {
+ for($part=0;$part<count($post_parts);$part++)
+ {
+ if(!($success=$this->PutData($post_parts[$part]["HEADERS"]))
+ || !($success=$this->PutData($post_parts[$part]["DATA"])))
+ break;
+ if(IsSet($post_parts[$part]["FILENAME"]))
+ {
+ if(!($file=@fopen($post_parts[$part]["FILENAME"],"rb")))
+ {
+ $this->SetPHPError("could not open upload file ".$post_parts[$part]["FILENAME"], $php_errormsg, HTTP_CLIENT_ERROR_CANNOT_ACCESS_LOCAL_FILE);
+ $success=0;
+ break;
+ }
+ while(!feof($file))
+ {
+ if(GetType($block=@fread($file,$this->file_buffer_length))!="string")
+ {
+ $this->SetPHPError("could not read upload file", $php_errormsg, HTTP_CLIENT_ERROR_CANNOT_ACCESS_LOCAL_FILE);
+ $success=0;
+ break;
+ }
+ if(!($success=$this->PutData($block)))
+ break;
+ }
+ fclose($file);
+ if(!$success)
+ break;
+ }
+ if(!($success=$this->PutLine("")))
+ break;
+ }
+ if($success)
+ $success=$this->PutLine("--".$boundary."--");
+ }
+ if($success)
+ $sucess=$this->FlushData();
+ }
+ }
+ }
+ }
+ if(!$success)
+ return($this->SetError("could not send the HTTP request: ".$this->error, $this->error_code));
+ $this->state=$next_state;
+ return("");
+ }
+
+ Function SetCookie($name, $value, $expires="" , $path="/" , $domain="" , $secure=0, $verbatim=0)
+ {
+ if(strlen($this->error))
+ return($this->error);
+ if(strlen($name)==0)
+ return($this->SetError("it was not specified a valid cookie name", HTTP_CLIENT_ERROR_INVALID_PARAMETERS));
+ if(strlen($path)==0
+ || strcmp($path[0],"/"))
+ return($this->SetError($path." is not a valid path for setting cookie ".$name, HTTP_CLIENT_ERROR_INVALID_PARAMETERS));
+ if($domain==""
+ || !strpos($domain,".",$domain[0]=="." ? 1 : 0))
+ return($this->SetError($domain." is not a valid domain for setting cookie ".$name, HTTP_CLIENT_ERROR_INVALID_PARAMETERS));
+ $domain=strtolower($domain);
+ if(!strcmp($domain[0],"."))
+ $domain=substr($domain,1);
+ if(!$verbatim)
+ {
+ $name=$this->CookieEncode($name,1);
+ $value=$this->CookieEncode($value,0);
+ }
+ $secure=intval($secure);
+ $this->cookies[$secure][$domain][$path][$name]=array(
+ "name"=>$name,
+ "value"=>$value,
+ "domain"=>$domain,
+ "path"=>$path,
+ "expires"=>$expires,
+ "secure"=>$secure
+ );
+ return("");
+ }
+
+ Function SendRequestBody($data, $end_of_data)
+ {
+ if(strlen($this->error))
+ return($this->error);
+ switch($this->state)
+ {
+ case "Disconnected":
+ return($this->SetError("connection was not yet established", HTTP_CLIENT_ERROR_INVALID_PARAMETERS));
+ case "Connected":
+ case "ConnectedToProxy":
+ return($this->SetError("request was not sent", HTTP_CLIENT_ERROR_INVALID_PARAMETERS));
+ case "SendingRequestBody":
+ break;
+ case "RequestSent":
+ return($this->SetError("request body was already sent", HTTP_CLIENT_ERROR_INVALID_PARAMETERS));
+ default:
+ return($this->SetError("can not send the request body in the current connection state", HTTP_CLIENT_ERROR_INVALID_PARAMETERS));
+ }
+ $length = strlen($data);
+ if($length)
+ {
+ $size = dechex($length)."\r\n";
+ if(!$this->PutData($size)
+ || !$this->PutData($data))
+ return($this->error);
+ }
+ if($end_of_data)
+ {
+ $size = "0\r\n";
+ if(!$this->PutData($size))
+ return($this->error);
+ $this->state = "RequestSent";
+ }
+ return("");
+ }
+
+ Function ReadReplyHeadersResponse(&$headers)
+ {
+ $headers=array();
+ if(strlen($this->error))
+ return($this->error);
+ switch($this->state)
+ {
+ case "Disconnected":
+ return($this->SetError("connection was not yet established", HTTP_CLIENT_ERROR_INVALID_PARAMETERS));
+ case "Connected":
+ return($this->SetError("request was not sent", HTTP_CLIENT_ERROR_INVALID_PARAMETERS));
+ case "ConnectedToProxy":
+ return($this->SetError("connection from the remote server from the proxy was not yet established", HTTP_CLIENT_ERROR_INVALID_PARAMETERS));
+ case "SendingRequestBody":
+ return($this->SetError("request body data was not completely sent", HTTP_CLIENT_ERROR_INVALID_PARAMETERS));
+ case "ConnectSent":
+ $connect = 1;
+ break;
+ case "RequestSent":
+ $connect = 0;
+ break;
+ default:
+ return($this->SetError("can not get request headers in the current connection state", HTTP_CLIENT_ERROR_INVALID_PARAMETERS));
+ }
+ $this->content_length=$this->read_length=$this->read_response=$this->remaining_chunk=0;
+ $this->content_length_set=$this->chunked=$this->last_chunk_read=$chunked=0;
+ $this->force_close = $this->connection_close=0;
+ for($this->response_status="";;)
+ {
+ $line=$this->GetLine();
+ if(GetType($line)!="string")
+ return($this->SetError("could not read request reply: ".$this->error, $this->error_code));
+ if(strlen($this->response_status)==0)
+ {
+ if(!preg_match($match="/^http\\/[0-9]+\\.[0-9]+[ \t]+([0-9]+)[ \t]*(.*)\$/i",$line,$matches))
+ return($this->SetError("it was received an unexpected HTTP response status", HTTP_CLIENT_ERROR_PROTOCOL_FAILURE));
+ $this->response_status=$matches[1];
+ $this->response_message=$matches[2];
+ }
+ if($line=="")
+ {
+ if(strlen($this->response_status)==0)
+ return($this->SetError("it was not received HTTP response status", HTTP_CLIENT_ERROR_PROTOCOL_FAILURE));
+ $this->state=($connect ? "GotConnectHeaders" : "GotReplyHeaders");
+ break;
+ }
+ $header_name=strtolower($this->Tokenize($line,":"));
+ $header_value=Trim(Chop($this->Tokenize("\r\n")));
+ if(IsSet($headers[$header_name]))
+ {
+ if(GetType($headers[$header_name])=="string")
+ $headers[$header_name]=array($headers[$header_name]);
+ $headers[$header_name][]=$header_value;
+ }
+ else
+ $headers[$header_name]=$header_value;
+ if(!$connect)
+ {
+ switch($header_name)
+ {
+ case "content-length":
+ $this->content_length=intval($headers[$header_name]);
+ $this->content_length_set=1;
+ break;
+ case "transfer-encoding":
+ $encoding=$this->Tokenize($header_value,"; \t");
+ if(!$this->use_curl
+ && !strcmp($encoding,"chunked"))
+ $chunked=1;
+ break;
+ case "set-cookie":
+ if($this->support_cookies)
+ {
+ if(GetType($headers[$header_name])=="array")
+ $cookie_headers=$headers[$header_name];
+ else
+ $cookie_headers=array($headers[$header_name]);
+ for($cookie=0;$cookie<count($cookie_headers);$cookie++)
+ {
+ $cookie_name=trim($this->Tokenize($cookie_headers[$cookie],"="));
+ $cookie_value=$this->Tokenize(";");
+ $domain=$this->request_host;
+ $path="/";
+ $expires="";
+ $secure=0;
+ while(($name = strtolower(trim(UrlDecode($this->Tokenize("=")))))!="")
+ {
+ $value=UrlDecode($this->Tokenize(";"));
+ switch($name)
+ {
+ case "domain":
+ $domain=$value;
+ break;
+ case "path":
+ $path=$value;
+ break;
+ case "expires":
+ if(preg_match("/^((Mon|Monday|Tue|Tuesday|Wed|Wednesday|Thu|Thursday|Fri|Friday|Sat|Saturday|Sun|Sunday), )?([0-9]{2})\\-(Jan|Feb|Mar|Apr|May|Jun|Jul|Aug|Sep|Oct|Nov|Dec)\\-([0-9]{2,4}) ([0-9]{2})\\:([0-9]{2})\\:([0-9]{2}) GMT\$/",$value,$matches))
+ {
+ $year=intval($matches[5]);
+ if($year<1900)
+ $year+=($year<70 ? 2000 : 1900);
+ $expires="$year-".$this->months[$matches[4]]."-".$matches[3]." ".$matches[6].":".$matches[7].":".$matches[8];
+ }
+ break;
+ case "secure":
+ $secure=1;
+ break;
+ }
+ }
+ if(strlen($this->SetCookie($cookie_name, $cookie_value, $expires, $path , $domain, $secure, 1)))
+ $this->error="";
+ }
+ }
+ break;
+ case "connection":
+ $this->force_close = $this->connection_close=!strcmp(strtolower($header_value),"close");
+ break;
+ }
+ }
+ }
+ $this->chunked=$chunked;
+ if($this->content_length_set)
+ $this->connection_close=0;
+ return("");
+ }
+
+ Function Redirect(&$headers)
+ {
+ if($this->follow_redirect)
+ {
+ if(!IsSet($headers["location"])
+ || (GetType($headers["location"])!="array"
+ && strlen($location=$headers["location"])==0)
+ || (GetType($headers["location"])=="array"
+ && strlen($location=$headers["location"][0])==0))
+ return($this->SetError("it was received a redirect without location URL", HTTP_CLIENT_ERROR_PROTOCOL_FAILURE));
+ if(strcmp($location[0],"/"))
+ {
+ if(!($location_arguments=@parse_url($location)))
+ return($this->SetError("the server did not return a valid redirection location URL", HTTP_CLIENT_ERROR_PROTOCOL_FAILURE));
+ if(!IsSet($location_arguments["scheme"]))
+ $location=((GetType($end=strrpos($this->request_uri,"/"))=="integer" && $end>1) ? substr($this->request_uri,0,$end) : "")."/".$location;
+ }
+ if(!strcmp($location[0],"/"))
+ $location=$this->protocol."://".$this->host_name.($this->host_port ? ":".$this->host_port : "").$location;
+ $error=$this->GetRequestArguments($location,$arguments);
+ if(strlen($error))
+ return($this->SetError("could not process redirect url: ".$error, HTTP_CLIENT_ERROR_PROTOCOL_FAILURE));
+ $arguments["RequestMethod"]="GET";
+ if(strlen($error=$this->Close())==0
+ && strlen($error=$this->Open($arguments))==0
+ && strlen($error=$this->SendRequest($arguments))==0)
+ {
+ $this->redirection_level++;
+ if($this->redirection_level>$this->redirection_limit)
+ {
+ $error="it was exceeded the limit of request redirections";
+ $this->error_code = HTTP_CLIENT_ERROR_PROTOCOL_FAILURE;
+ }
+ else
+ $error=$this->ReadReplyHeaders($headers);
+ $this->redirection_level--;
+ }
+ if(strlen($error))
+ return($this->SetError($error, $this->error_code));
+ }
+ return("");
+ }
+
+ Function Authenticate(&$headers, $proxy, &$proxy_authorization, &$user, &$password, &$realm, &$workstation)
+ {
+ if($proxy)
+ {
+ $authenticate_header="proxy-authenticate";
+ $authorization_header="Proxy-Authorization";
+ $authenticate_status="407";
+ $authentication_mechanism=$this->proxy_authentication_mechanism;
+ }
+ else
+ {
+ $authenticate_header="www-authenticate";
+ $authorization_header="Authorization";
+ $authenticate_status="401";
+ $authentication_mechanism=$this->authentication_mechanism;
+ }
+ if(IsSet($headers[$authenticate_header])
+ && $this->sasl_authenticate)
+ {
+ if(function_exists("class_exists")
+ && !class_exists("sasl_client_class"))
+ return($this->SetError("the SASL client class needs to be loaded to be able to authenticate".($proxy ? " with the proxy server" : "")." and access this site", HTTP_CLIENT_ERROR_INVALID_PARAMETERS));
+ if(GetType($headers[$authenticate_header])=="array")
+ $authenticate=$headers[$authenticate_header];
+ else
+ $authenticate=array($headers[$authenticate_header]);
+ for($response="", $mechanisms=array(),$m=0;$m<count($authenticate);$m++)
+ {
+ $mechanism=$this->Tokenize($authenticate[$m]," ");
+ $response=$this->Tokenize("");
+ if(strlen($authentication_mechanism))
+ {
+ if(!strcmp($authentication_mechanism,$mechanism))
+ {
+ $mechanisms[]=$mechanism;
+ break;
+ }
+ }
+ else
+ $mechanisms[]=$mechanism;
+ }
+ $sasl=new sasl_client_class;
+ if(IsSet($user))
+ $sasl->SetCredential("user",$user);
+ if(IsSet($password))
+ $sasl->SetCredential("password",$password);
+ if(IsSet($realm))
+ $sasl->SetCredential("realm",$realm);
+ if(IsSet($workstation))
+ $sasl->SetCredential("workstation",$workstation);
+ $sasl->SetCredential("uri",$this->request_uri);
+ $sasl->SetCredential("method",$this->request_method);
+ $sasl->SetCredential("session",$this->session);
+ do
+ {
+ $status=$sasl->Start($mechanisms,$message,$interactions);
+ }
+ while($status==SASL_INTERACT);
+ switch($status)
+ {
+ case SASL_CONTINUE:
+ break;
+ case SASL_NOMECH:
+ return($this->SetError(($proxy ? "proxy " : "")."authentication error: ".(strlen($authentication_mechanism) ? "authentication mechanism ".$authentication_mechanism." may not be used: " : "").$sasl->error, HTTP_CLIENT_ERROR_INVALID_PARAMETERS));
+ default:
+ return($this->SetError("Could not start the SASL ".($proxy ? "proxy " : "")."authentication client: ".$sasl->error, HTTP_CLIENT_ERROR_INVALID_PARAMETERS));
+ }
+ if($proxy >= 0)
+ {
+ for(;;)
+ {
+ if(strlen($error=$this->ReadReplyBody($body,$this->file_buffer_length)))
+ return($error);
+ if(strlen($body)==0)
+ break;
+ }
+ }
+ $authorization_value=$sasl->mechanism.(IsSet($message) ? " ".($sasl->encode_response ? base64_encode($message) : $message) : "");
+ $request_arguments=$this->request_arguments;
+ $arguments=$request_arguments;
+ $arguments["Headers"][$authorization_header]=$authorization_value;
+ if(!$proxy
+ && strlen($proxy_authorization))
+ $arguments["Headers"]["Proxy-Authorization"]=$proxy_authorization;
+ if(strlen($error=$this->Close())
+ || strlen($error=$this->Open($arguments)))
+ return($this->SetError($error, $this->error_code));
+ $authenticated=0;
+ if(IsSet($message))
+ {
+ if($proxy < 0)
+ {
+ if(strlen($error=$this->ConnectFromProxy($arguments, $headers)))
+ return($this->SetError($error, $this->error_code));
+ }
+ else
+ {
+ if(strlen($error=$this->SendRequest($arguments))
+ || strlen($error=$this->ReadReplyHeadersResponse($headers)))
+ return($this->SetError($error, $this->error_code));
+ }
+ if(!IsSet($headers[$authenticate_header]))
+ $authenticate=array();
+ elseif(GetType($headers[$authenticate_header])=="array")
+ $authenticate=$headers[$authenticate_header];
+ else
+ $authenticate=array($headers[$authenticate_header]);
+ for($mechanism=0;$mechanism<count($authenticate);$mechanism++)
+ {
+ if(!strcmp($this->Tokenize($authenticate[$mechanism]," "),$sasl->mechanism))
+ {
+ $response=$this->Tokenize("");
+ break;
+ }
+ }
+ switch($this->response_status)
+ {
+ case $authenticate_status:
+ break;
+ case "301":
+ case "302":
+ case "303":
+ case "307":
+ if($proxy >= 0)
+ return($this->Redirect($headers));
+ default:
+ if(intval($this->response_status/100)==2)
+ {
+ if($proxy)
+ $proxy_authorization=$authorization_value;
+ $authenticated=1;
+ break;
+ }
+ if($proxy
+ && !strcmp($this->response_status,"401"))
+ {
+ $proxy_authorization=$authorization_value;
+ $authenticated=1;
+ break;
+ }
+ return($this->SetError(($proxy ? "proxy " : "")."authentication error: ".$this->response_status." ".$this->response_message, HTTP_CLIENT_ERROR_PROTOCOL_FAILURE));
+ }
+ }
+ for(;!$authenticated;)
+ {
+ do
+ {
+ $status=$sasl->Step($response,$message,$interactions);
+ }
+ while($status==SASL_INTERACT);
+ switch($status)
+ {
+ case SASL_CONTINUE:
+ $authorization_value=$sasl->mechanism.(IsSet($message) ? " ".($sasl->encode_response ? base64_encode($message) : $message) : "");
+ $arguments=$request_arguments;
+ $arguments["Headers"][$authorization_header]=$authorization_value;
+ if(!$proxy
+ && strlen($proxy_authorization))
+ $arguments["Headers"]["Proxy-Authorization"]=$proxy_authorization;
+ if($proxy < 0)
+ {
+ if(strlen($error=$this->ConnectFromProxy($arguments, $headers)))
+ return($this->SetError($error, $this->error_code));
+ }
+ else
+ {
+ if(strlen($error=$this->SendRequest($arguments))
+ || strlen($error=$this->ReadReplyHeadersResponse($headers)))
+ return($this->SetError($error, $this->error_code));
+ }
+ switch($this->response_status)
+ {
+ case $authenticate_status:
+ if(GetType($headers[$authenticate_header])=="array")
+ $authenticate=$headers[$authenticate_header];
+ else
+ $authenticate=array($headers[$authenticate_header]);
+ for($response="",$mechanism=0;$mechanism<count($authenticate);$mechanism++)
+ {
+ if(!strcmp($this->Tokenize($authenticate[$mechanism]," "),$sasl->mechanism))
+ {
+ $response=$this->Tokenize("");
+ break;
+ }
+ }
+ if($proxy >= 0)
+ {
+ for(;;)
+ {
+ if(strlen($error=$this->ReadReplyBody($body,$this->file_buffer_length)))
+ return($error);
+ if(strlen($body)==0)
+ break;
+ }
+ }
+ $this->state="Connected";
+ break;
+ case "301":
+ case "302":
+ case "303":
+ case "307":
+ if($proxy >= 0)
+ return($this->Redirect($headers));
+ default:
+ if(intval($this->response_status/100)==2)
+ {
+ if($proxy)
+ $proxy_authorization=$authorization_value;
+ $authenticated=1;
+ break;
+ }
+ if($proxy
+ && !strcmp($this->response_status,"401"))
+ {
+ $proxy_authorization=$authorization_value;
+ $authenticated=1;
+ break;
+ }
+ return($this->SetError(($proxy ? "proxy " : "")."authentication error: ".$this->response_status." ".$this->response_message));
+ }
+ break;
+ default:
+ return($this->SetError("Could not process the SASL ".($proxy ? "proxy " : "")."authentication step: ".$sasl->error, HTTP_CLIENT_ERROR_PROTOCOL_FAILURE));
+ }
+ }
+ }
+ return("");
+ }
+
+ Function ReadReplyHeaders(&$headers)
+ {
+ if(strlen($error=$this->ReadReplyHeadersResponse($headers)))
+ return($error);
+ $proxy_authorization="";
+ while(!strcmp($this->response_status, "100"))
+ {
+ $this->state="RequestSent";
+ if(strlen($error=$this->ReadReplyHeadersResponse($headers)))
+ return($error);
+ }
+ switch($this->response_status)
+ {
+ case "301":
+ case "302":
+ case "303":
+ case "307":
+ if(strlen($error=$this->Redirect($headers)))
+ return($error);
+ break;
+ case "407":
+ if(strlen($error=$this->Authenticate($headers, 1, $proxy_authorization, $this->proxy_request_user, $this->proxy_request_password, $this->proxy_request_realm, $this->proxy_request_workstation)))
+ return($error);
+ if(strcmp($this->response_status,"401"))
+ return("");
+ case "401":
+ return($this->Authenticate($headers, 0, $proxy_authorization, $this->request_user, $this->request_password, $this->request_realm, $this->request_workstation));
+ }
+ return("");
+ }
+
+ Function ReadReplyBody(&$body,$length)
+ {
+ $body="";
+ if(strlen($this->error))
+ return($this->error);
+ switch($this->state)
+ {
+ case "Disconnected":
+ return($this->SetError("connection was not yet established", HTTP_CLIENT_ERROR_INVALID_PARAMETERS));
+ case "Connected":
+ case "ConnectedToProxy":
+ return($this->SetError("request was not sent", HTTP_CLIENT_ERROR_INVALID_PARAMETERS));
+ case "RequestSent":
+ if(($error=$this->ReadReplyHeaders($headers))!="")
+ return($error);
+ break;
+ case "GotReplyHeaders":
+ break;
+ case 'ResponseReceived':
+ $body = '';
+ return('');
+ default:
+ return($this->SetError("can not get request headers in the current connection state", HTTP_CLIENT_ERROR_INVALID_PARAMETERS));
+ }
+ if($this->content_length_set)
+ $length=min($this->content_length-$this->read_length,$length);
+ $body = '';
+ if($length>0)
+ {
+ if(!$this->EndOfInput()
+ && ($body=$this->ReadBytes($length))=="")
+ {
+ if(strlen($this->error))
+ return($this->SetError("could not get the request reply body: ".$this->error, $this->error_code));
+ }
+ $this->read_length+=strlen($body);
+ if($this->EndOfInput())
+ $this->state = 'ResponseReceived';
+ }
+ return("");
+ }
+
+ Function ReadWholeReplyBody(&$body)
+ {
+ $body = '';
+ for(;;)
+ {
+ if(strlen($error = $this->ReadReplyBody($block, $this->file_buffer_length)))
+ return($error);
+ if(strlen($block) == 0)
+ return('');
+ $body .= $block;
+ }
+ }
+
+ Function SaveCookies(&$cookies, $domain='', $secure_only=0, $persistent_only=0)
+ {
+ $now=gmdate("Y-m-d H-i-s");
+ $cookies=array();
+ for($secure_cookies=0,Reset($this->cookies);$secure_cookies<count($this->cookies);Next($this->cookies),$secure_cookies++)
+ {
+ $secure=Key($this->cookies);
+ if(!$secure_only
+ || $secure)
+ {
+ for($cookie_domain=0,Reset($this->cookies[$secure]);$cookie_domain<count($this->cookies[$secure]);Next($this->cookies[$secure]),$cookie_domain++)
+ {
+ $domain_pattern=Key($this->cookies[$secure]);
+ $match=strlen($domain)-strlen($domain_pattern);
+ if(strlen($domain)==0
+ || ($match>=0
+ && !strcmp($domain_pattern,substr($domain,$match))
+ && ($match==0
+ || $domain_pattern[0]=="."
+ || $domain[$match-1]==".")))
+ {
+ for(Reset($this->cookies[$secure][$domain_pattern]),$path_part=0;$path_part<count($this->cookies[$secure][$domain_pattern]);Next($this->cookies[$secure][$domain_pattern]),$path_part++)
+ {
+ $path=Key($this->cookies[$secure][$domain_pattern]);
+ for(Reset($this->cookies[$secure][$domain_pattern][$path]),$cookie=0;$cookie<count($this->cookies[$secure][$domain_pattern][$path]);Next($this->cookies[$secure][$domain_pattern][$path]),$cookie++)
+ {
+ $cookie_name=Key($this->cookies[$secure][$domain_pattern][$path]);
+ $expires=$this->cookies[$secure][$domain_pattern][$path][$cookie_name]["expires"];
+ if((!$persistent_only
+ && strlen($expires)==0)
+ || (strlen($expires)
+ && strcmp($now,$expires)<0))
+ $cookies[$secure][$domain_pattern][$path][$cookie_name]=$this->cookies[$secure][$domain_pattern][$path][$cookie_name];
+ }
+ }
+ }
+ }
+ }
+ }
+ }
+
+ Function SavePersistentCookies(&$cookies, $domain='', $secure_only=0)
+ {
+ $this->SaveCookies($cookies, $domain, $secure_only, 1);
+ }
+
+ Function GetPersistentCookies(&$cookies, $domain='', $secure_only=0)
+ {
+ $this->SavePersistentCookies($cookies, $domain, $secure_only);
+ }
+
+ Function RestoreCookies($cookies, $clear=1)
+ {
+ $new_cookies=($clear ? array() : $this->cookies);
+ for($secure_cookies=0, Reset($cookies); $secure_cookies<count($cookies); Next($cookies), $secure_cookies++)
+ {
+ $secure=Key($cookies);
+ if(GetType($secure)!="integer")
+ return($this->SetError("invalid cookie secure value type (".serialize($secure).")", HTTP_CLIENT_ERROR_INVALID_PARAMETERS));
+ for($cookie_domain=0,Reset($cookies[$secure]);$cookie_domain<count($cookies[$secure]);Next($cookies[$secure]),$cookie_domain++)
+ {
+ $domain_pattern=Key($cookies[$secure]);
+ if(GetType($domain_pattern)!="string")
+ return($this->SetError("invalid cookie domain value type (".serialize($domain_pattern).")", HTTP_CLIENT_ERROR_INVALID_PARAMETERS));
+ for(Reset($cookies[$secure][$domain_pattern]),$path_part=0;$path_part<count($cookies[$secure][$domain_pattern]);Next($cookies[$secure][$domain_pattern]),$path_part++)
+ {
+ $path=Key($cookies[$secure][$domain_pattern]);
+ if(GetType($path)!="string"
+ || strcmp(substr($path, 0, 1), "/"))
+ return($this->SetError("invalid cookie path value type (".serialize($path).")", HTTP_CLIENT_ERROR_INVALID_PARAMETERS));
+ for(Reset($cookies[$secure][$domain_pattern][$path]),$cookie=0;$cookie<count($cookies[$secure][$domain_pattern][$path]);Next($cookies[$secure][$domain_pattern][$path]),$cookie++)
+ {
+ $cookie_name=Key($cookies[$secure][$domain_pattern][$path]);
+ $expires=$cookies[$secure][$domain_pattern][$path][$cookie_name]["expires"];
+ $value=$cookies[$secure][$domain_pattern][$path][$cookie_name]["value"];
+ if(GetType($expires)!="string"
+ || (strlen($expires)
+ && !preg_match("/^[0-9]{4}-[0-9]{2}-[0-9]{2} [0-9]{2}:[0-9]{2}:[0-9]{2}\$/", $expires)))
+ return($this->SetError("invalid cookie expiry value type (".serialize($expires).")", HTTP_CLIENT_ERROR_INVALID_PARAMETERS));
+ $new_cookies[$secure][$domain_pattern][$path][$cookie_name]=array(
+ "name"=>$cookie_name,
+ "value"=>$value,
+ "domain"=>$domain_pattern,
+ "path"=>$path,
+ "expires"=>$expires,
+ "secure"=>$secure
+ );
+ }
+ }
+ }
+ }
+ $this->cookies=$new_cookies;
+ return("");
+ }
+};
+
+?> \ No newline at end of file
diff --git a/library/oauth/oauth_client.php b/library/oauth/oauth_client.php
new file mode 100644
index 000000000..5047e0e9b
--- /dev/null
+++ b/library/oauth/oauth_client.php
@@ -0,0 +1,2176 @@
+<?php
+/*
+ * oauth_client.php
+ *
+ * @(#) $Id: oauth_client.php,v 1.58 2013/04/11 09:33:16 mlemos Exp $
+ *
+ */
+
+/*
+{metadocument}<?xml version="1.0" encoding="ISO-8859-1" ?>
+<class>
+
+ <package>net.manuellemos.oauth</package>
+
+ <version>@(#) $Id: oauth_client.php,v 1.58 2013/04/11 09:33:16 mlemos Exp $</version>
+ <copyright>Copyright © (C) Manuel Lemos 2012</copyright>
+ <title>OAuth client</title>
+ <author>Manuel Lemos</author>
+ <authoraddress>mlemos-at-acm.org</authoraddress>
+
+ <documentation>
+ <idiom>en</idiom>
+ <purpose>This class serves two main purposes:<paragraphbreak />
+ 1) Implement the OAuth protocol to retrieve a token from a server to
+ authorize the access to an API on behalf of the current
+ user.<paragraphbreak />
+ 2) Perform calls to a Web services API using a token previously
+ obtained using this class or a token provided some other way by the
+ Web services provider.</purpose>
+ <usage>Regardless of your purposes, you always need to start calling
+ the class <functionlink>Initialize</functionlink> function after
+ initializing setup variables. After you are done with the class,
+ always call the <functionlink>Finalize</functionlink> function at
+ the end.<paragraphbreak />
+ This class supports either OAuth protocol versions 1.0, 1.0a and
+ 2.0. It abstracts the differences between these protocol versions,
+ so the class usage is the same independently of the OAuth
+ version of the server.<paragraphbreak />
+ The class also provides built-in support to several popular OAuth
+ servers, so you do not have to manually configure all the details to
+ access those servers. Just set the
+ <variablelink>server</variablelink> variable to configure the class
+ to access one of the built-in supported servers.<paragraphbreak />
+ If you need to access one type of server that is not yet directly
+ supported by the class, you need to configure it explicitly setting
+ the variables: <variablelink>oauth_version</variablelink>,
+ <variablelink>url_parameters</variablelink>,
+ <variablelink>authorization_header</variablelink>,
+ <variablelink>request_token_url</variablelink>,
+ <variablelink>dialog_url</variablelink>,
+ <variablelink>offline_dialog_url</variablelink>,
+ <variablelink>append_state_to_redirect_uri</variablelink> and
+ <variablelink>access_token_url</variablelink>.<paragraphbreak />
+ Before proceeding to the actual OAuth authorization process, you
+ need to have registered your application with the OAuth server. The
+ registration provides you values to set the variables
+ <variablelink>client_id</variablelink> and
+ <variablelink>client_secret</variablelink>.<paragraphbreak />
+ You also need to set the variables
+ <variablelink>redirect_uri</variablelink> and
+ <variablelink>scope</variablelink> before calling the
+ <functionlink>Process</functionlink> function to make the class
+ perform the necessary interactions with the OAuth
+ server.<paragraphbreak />
+ The OAuth protocol involves multiple steps that include redirection
+ to the OAuth server. There it asks permission to the current user to
+ grant your application access to APIs on his/her behalf. When there
+ is a redirection, the class will set the
+ <variablelink>exit</variablelink> variable to
+ <booleanvalue>1</booleanvalue>. Then your script should exit
+ immediately without outputting anything.<paragraphbreak />
+ When the OAuth access token is successfully obtained, the following
+ variables are set by the class with the obtained values:
+ <variablelink>access_token</variablelink>,
+ <variablelink>access_token_secret</variablelink>,
+ <variablelink>access_token_expiry</variablelink>,
+ <variablelink>access_token_type</variablelink>. You may want to
+ store these values to use them later when calling the server
+ APIs.<paragraphbreak />
+ If there was a problem during OAuth authorization process, check the
+ variable <variablelink>authorization_error</variablelink> to
+ determine the reason.<paragraphbreak />
+ Once you get the access token, you can call the server APIs using
+ the <functionlink>CallAPI</functionlink> function. Check the
+ <variablelink>access_token_error</variablelink> variable to
+ determine if there was an error when trying to to call the
+ API.<paragraphbreak />
+ If for some reason the user has revoked the access to your
+ application, you need to ask the user to authorize your application
+ again. First you may need to call the function
+ <functionlink>ResetAccessToken</functionlink> to reset the value of
+ the access token that may be cached in session variables.</usage>
+ </documentation>
+
+{/metadocument}
+*/
+
+class oauth_client_class
+{
+/*
+{metadocument}
+ <variable>
+ <name>error</name>
+ <type>STRING</type>
+ <value></value>
+ <documentation>
+ <purpose>Store the message that is returned when an error
+ occurs.</purpose>
+ <usage>Check this variable to understand what happened when a call to
+ any of the class functions has failed.<paragraphbreak />
+ This class uses cumulative error handling. This means that if one
+ class functions that may fail is called and this variable was
+ already set to an error message due to a failure in a previous call
+ to the same or other function, the function will also fail and does
+ not do anything.<paragraphbreak />
+ This allows programs using this class to safely call several
+ functions that may fail and only check the failure condition after
+ the last function call.<paragraphbreak />
+ Just set this variable to an empty string to clear the error
+ condition.</usage>
+ </documentation>
+ </variable>
+{/metadocument}
+*/
+ var $error = '';
+
+/*
+{metadocument}
+ <variable>
+ <name>debug</name>
+ <type>BOOLEAN</type>
+ <value>0</value>
+ <documentation>
+ <purpose>Control whether debug output is enabled</purpose>
+ <usage>Set this variable to <booleanvalue>1</booleanvalue> if you
+ need to check what is going on during calls to the class. When
+ enabled, the debug output goes either to the variable
+ <variablelink>debug_output</variablelink> and the PHP error log.</usage>
+ </documentation>
+ </variable>
+{/metadocument}
+*/
+ var $debug = false;
+
+/*
+{metadocument}
+ <variable>
+ <name>debug_http</name>
+ <type>BOOLEAN</type>
+ <value>0</value>
+ <documentation>
+ <purpose>Control whether the dialog with the remote Web server
+ should also be logged.</purpose>
+ <usage>Set this variable to <booleanvalue>1</booleanvalue> if you
+ want to inspect the data exchange with the OAuth server.</usage>
+ </documentation>
+ </variable>
+{/metadocument}
+*/
+ var $debug_http = false;
+
+/*
+{metadocument}
+ <variable>
+ <name>exit</name>
+ <type>BOOLEAN</type>
+ <value>0</value>
+ <documentation>
+ <purpose>Determine if the current script should be exited.</purpose>
+ <usage>Check this variable after calling the
+ <functionlink>Process</functionlink> function and exit your script
+ immediately if the variable is set to
+ <booleanvalue>1</booleanvalue>.</usage>
+ </documentation>
+ </variable>
+{/metadocument}
+*/
+ var $exit = false;
+
+/*
+{metadocument}
+ <variable>
+ <name>debug_output</name>
+ <type>STRING</type>
+ <value></value>
+ <documentation>
+ <purpose>Capture the debug output generated by the class</purpose>
+ <usage>Inspect this variable if you need to see what happened during
+ the class function calls.</usage>
+ </documentation>
+ </variable>
+{/metadocument}
+*/
+ var $debug_output = '';
+
+/*
+{metadocument}
+ <variable>
+ <name>debug_prefix</name>
+ <type>STRING</type>
+ <value>OAuth client: </value>
+ <documentation>
+ <purpose>Mark the lines of the debug output to identify actions
+ performed by this class.</purpose>
+ <usage>Change this variable if you prefer the debug output lines to
+ be prefixed with a different text.</usage>
+ </documentation>
+ </variable>
+{/metadocument}
+*/
+ var $debug_prefix = 'OAuth client: ';
+
+/*
+{metadocument}
+ <variable>
+ <name>server</name>
+ <type>STRING</type>
+ <value></value>
+ <documentation>
+ <purpose>Identify the type of OAuth server to access.</purpose>
+ <usage>The class provides built-in support to several types of OAuth
+ servers. This means that the class can automatically initialize
+ several configuration variables just by setting this server
+ variable.<paragraphbreak />
+ Currently it supports the following servers:
+ <stringvalue>Bitbucket</stringvalue>,
+ <stringvalue>Box</stringvalue>,
+ <stringvalue>Dropbox</stringvalue>,
+ <stringvalue>Eventful</stringvalue>,
+ <stringvalue>Facebook</stringvalue>,
+ <stringvalue>Fitbit</stringvalue>,
+ <stringvalue>Flickr</stringvalue>,
+ <stringvalue>Foursquare</stringvalue>,
+ <stringvalue>github</stringvalue>,
+ <stringvalue>Google</stringvalue>,
+ <stringvalue>Instagram</stringvalue>,
+ <stringvalue>LinkedIn</stringvalue>,
+ <stringvalue>Microsoft</stringvalue>,
+ <stringvalue>Scoop.it</stringvalue>,
+ <stringvalue>StockTwits</stringvalue>,
+ <stringvalue>Tumblr</stringvalue>,
+ <stringvalue>Twitter</stringvalue>,
+ <stringvalue>XING</stringvalue> and
+ <stringvalue>Yahoo</stringvalue>. Please contact the author if you
+ would like to ask to add built-in support for other types of OAuth
+ servers.<paragraphbreak />
+ If you want to access other types of OAuth servers that are not
+ yet supported, set this variable to an empty string and configure
+ other variables with values specific to those servers.</usage>
+ </documentation>
+ </variable>
+{/metadocument}
+*/
+ var $server = '';
+
+/*
+{metadocument}
+ <variable>
+ <name>request_token_url</name>
+ <type>STRING</type>
+ <value></value>
+ <documentation>
+ <purpose>URL of the OAuth server to request the initial token for
+ OAuth 1.0 and 1.0a servers.</purpose>
+ <usage>Set this variable to the OAuth request token URL when you are
+ not accessing one of the built-in supported OAuth
+ servers.<paragraphbreak />
+ For OAuth 1.0 and 1.0a servers, the request token URL can have
+ certain marks that will act as template placeholders which will be
+ replaced with given values before requesting the authorization
+ token. Currently it supports the following placeholder
+ marks:<paragraphbreak />
+ {SCOPE} - scope of the requested permissions to the granted by the
+ OAuth server with the user permissions</usage>
+ </documentation>
+ </variable>
+{/metadocument}
+*/
+ var $request_token_url = '';
+
+/*
+{metadocument}
+ <variable>
+ <name>dialog_url</name>
+ <type>STRING</type>
+ <value></value>
+ <documentation>
+ <purpose>URL of the OAuth server to redirect the browser so the user
+ can grant access to your application.</purpose>
+ <usage>Set this variable to the OAuth request token URL when you are
+ not accessing one of the built-in supported OAuth servers.<paragraphbreak />
+ For certain servers, the dialog URL can have certain marks that
+ will act as template placeholders which will be replaced with
+ values defined before redirecting the users browser. Currently it
+ supports the following placeholder marks:<paragraphbreak />
+ {REDIRECT_URI} - URL to redirect when returning from the OAuth
+ server authorization page<paragraphbreak />
+ {CLIENT_ID} - client application identifier registered at the
+ server<paragraphbreak />
+ {SCOPE} - scope of the requested permissions to the granted by the
+ OAuth server with the user permissions<paragraphbreak />
+ {STATE} - identifier of the OAuth session state</usage>
+ </documentation>
+ </variable>
+{/metadocument}
+*/
+ var $dialog_url = '';
+
+/*
+{metadocument}
+ <variable>
+ <name>offline_dialog_url</name>
+ <type>STRING</type>
+ <value></value>
+ <documentation>
+ <purpose>URL of the OAuth server to redirect the browser so the user
+ can grant access to your application when offline access is
+ requested.</purpose>
+ <usage>Set this variable to the OAuth request token URL when you are
+ not accessing one of the built-in supported OAuth servers and the
+ OAuth server supports offline access.<paragraphbreak />
+ It should have the same format as the
+ <variablelink>dialog_url</variablelink> variable.</usage>
+ </documentation>
+ </variable>
+{/metadocument}
+*/
+ var $offline_dialog_url = '';
+
+/*
+{metadocument}
+ <variable>
+ <name>append_state_to_redirect_uri</name>
+ <type>STRING</type>
+ <value></value>
+ <documentation>
+ <purpose>Pass the OAuth session state in a variable with a different
+ name to work around implementation bugs of certain OAuth
+ servers</purpose>
+ <usage>Set this variable when you are not accessing one of the
+ built-in supported OAuth servers if the OAuth server has a bug
+ that makes it not pass back the OAuth state identifier in a
+ request variable named state.</usage>
+ </documentation>
+ </variable>
+{/metadocument}
+*/
+ var $append_state_to_redirect_uri = '';
+
+/*
+{metadocument}
+ <variable>
+ <name>access_token_url</name>
+ <type>STRING</type>
+ <value></value>
+ <documentation>
+ <purpose>OAuth server URL that will return the access token
+ URL.</purpose>
+ <usage>Set this variable to the OAuth access token URL when you are
+ not accessing one of the built-in supported OAuth servers.</usage>
+ </documentation>
+ </variable>
+{/metadocument}
+*/
+ var $access_token_url = '';
+
+
+/*
+{metadocument}
+ <variable>
+ <name>oauth_version</name>
+ <type>STRING</type>
+ <value>2.0</value>
+ <documentation>
+ <purpose>Version of the protocol version supported by the OAuth
+ server.</purpose>
+ <usage>Set this variable to the OAuth server protocol version when
+ you are not accessing one of the built-in supported OAuth
+ servers.</usage>
+ </documentation>
+ </variable>
+{/metadocument}
+*/
+ var $oauth_version = '2.0';
+
+/*
+{metadocument}
+ <variable>
+ <name>url_parameters</name>
+ <type>BOOLEAN</type>
+ <value>0</value>
+ <documentation>
+ <purpose>Determine if the API call parameters should be moved to the
+ call URL.</purpose>
+ <usage>Set this variable to <booleanvalue>1</booleanvalue> if the
+ API you need to call requires that the call parameters always be
+ passed via the API URL.</usage>
+ </documentation>
+ </variable>
+{/metadocument}
+*/
+ var $url_parameters = false;
+
+/*
+{metadocument}
+ <variable>
+ <name>authorization_header</name>
+ <type>BOOLEAN</type>
+ <value>1</value>
+ <documentation>
+ <purpose>Determine if the OAuth parameters should be passed via HTTP
+ Authorization request header.</purpose>
+ <usage>Set this variable to <booleanvalue>1</booleanvalue> if the
+ OAuth server requires that the OAuth parameters be passed using
+ the HTTP Authorization instead of the request URI parameters.</usage>
+ </documentation>
+ </variable>
+{/metadocument}
+*/
+ var $authorization_header = true;
+
+/*
+{metadocument}
+ <variable>
+ <name>token_request_method</name>
+ <type>STRING</type>
+ <value>GET</value>
+ <documentation>
+ <purpose>Define the HTTP method that should be used to request
+ tokens from the server.</purpose>
+ <usage>Set this variable to <stringvalue>POST</stringvalue> if the
+ OAuth server does not support requesting tokens using the HTTP GET
+ method.</usage>
+ </documentation>
+ </variable>
+{/metadocument}
+*/
+ var $token_request_method = 'GET';
+
+/*
+{metadocument}
+ <variable>
+ <name>signature_method</name>
+ <type>STRING</type>
+ <value>HMAC-SHA1</value>
+ <documentation>
+ <purpose>Define the method to generate the signature for API request
+ parameters values.</purpose>
+ <usage>Currently it supports <stringvalue>PLAINTEXT</stringvalue>
+ and <stringvalue>HMAC-SHA1</stringvalue>.</usage>
+ </documentation>
+ </variable>
+{/metadocument}
+*/
+ var $signature_method = 'HMAC-SHA1';
+
+/*
+{metadocument}
+ <variable>
+ <name>redirect_uri</name>
+ <type>STRING</type>
+ <value></value>
+ <documentation>
+ <purpose>URL of the current script page that is calling this
+ class</purpose>
+ <usage>Set this variable to the current script page URL before
+ proceeding the the OAuth authorization process.</usage>
+ </documentation>
+ </variable>
+{/metadocument}
+*/
+ var $redirect_uri = '';
+
+/*
+{metadocument}
+ <variable>
+ <name>client_id</name>
+ <type>STRING</type>
+ <value></value>
+ <documentation>
+ <purpose>Identifier of your application registered with the OAuth
+ server</purpose>
+ <usage>Set this variable to the application identifier that is
+ provided by the OAuth server when you register the
+ application.</usage>
+ </documentation>
+ </variable>
+{/metadocument}
+*/
+ var $client_id = '';
+
+/*
+{metadocument}
+ <variable>
+ <name>client_secret</name>
+ <type>STRING</type>
+ <value></value>
+ <documentation>
+ <purpose>Secret value assigned to your application when it is
+ registered with the OAuth server.</purpose>
+ <usage>Set this variable to the application secret that is provided
+ by the OAuth server when you register the application.</usage>
+ </documentation>
+ </variable>
+{/metadocument}
+*/
+ var $client_secret = '';
+
+/*
+{metadocument}
+ <variable>
+ <name>scope</name>
+ <type>STRING</type>
+ <value></value>
+ <documentation>
+ <purpose>Permissions that your application needs to call the OAuth
+ server APIs</purpose>
+ <usage>Check the documentation of the APIs that your application
+ needs to call to set this variable with the identifiers of the
+ permissions that the user needs to grant to your application.</usage>
+ </documentation>
+ </variable>
+{/metadocument}
+*/
+ var $scope = '';
+
+/*
+{metadocument}
+ <variable>
+ <name>offline</name>
+ <type>BOOLEAN</type>
+ <value>0</value>
+ <documentation>
+ <purpose>Specify whether it will be necessary to call the API when
+ the user is not present and the server supports renewing expired
+ access tokens using refresh tokens.</purpose>
+ <usage>Set this variable to <booleanvalue>1</booleanvalue> if the
+ server supports renewing expired tokens automatically when the
+ user is not present.</usage>
+ </documentation>
+ </variable>
+{/metadocument}
+*/
+ var $offline = false;
+
+/*
+{metadocument}
+ <variable>
+ <name>access_token</name>
+ <type>STRING</type>
+ <value></value>
+ <documentation>
+ <purpose>Access token obtained from the OAuth server</purpose>
+ <usage>Check this variable to get the obtained access token upon
+ successful OAuth authorization.</usage>
+ </documentation>
+ </variable>
+{/metadocument}
+*/
+ var $access_token = '';
+
+/*
+{metadocument}
+ <variable>
+ <name>access_token_secret</name>
+ <type>STRING</type>
+ <value></value>
+ <documentation>
+ <purpose>Access token secret obtained from the OAuth server</purpose>
+ <usage>If the OAuth protocol version is 1.0 or 1.0a, check this
+ variable to get the obtained access token secret upon successful
+ OAuth authorization.</usage>
+ </documentation>
+ </variable>
+{/metadocument}
+*/
+ var $access_token_secret = '';
+
+/*
+{metadocument}
+ <variable>
+ <name>access_token_expiry</name>
+ <type>STRING</type>
+ <value></value>
+ <documentation>
+ <purpose>Timestamp of the expiry of the access token obtained from
+ the OAuth server.</purpose>
+ <usage>Check this variable to get the obtained access token expiry
+ time upon successful OAuth authorization. If this variable is
+ empty, that means no expiry time was set.</usage>
+ </documentation>
+ </variable>
+{/metadocument}
+*/
+ var $access_token_expiry = '';
+
+/*
+{metadocument}
+ <variable>
+ <name>access_token_type</name>
+ <type>STRING</type>
+ <value></value>
+ <documentation>
+ <purpose>Type of access token obtained from the OAuth server.</purpose>
+ <usage>Check this variable to get the obtained access token type
+ upon successful OAuth authorization.</usage>
+ </documentation>
+ </variable>
+{/metadocument}
+*/
+ var $access_token_type = '';
+
+/*
+{metadocument}
+ <variable>
+ <name>refresh_token</name>
+ <type>STRING</type>
+ <value></value>
+ <documentation>
+ <purpose>Refresh token obtained from the OAuth server</purpose>
+ <usage>Check this variable to get the obtained refresh token upon
+ successful OAuth authorization.</usage>
+ </documentation>
+ </variable>
+{/metadocument}
+*/
+ var $refresh_token = '';
+
+/*
+{metadocument}
+ <variable>
+ <name>access_token_error</name>
+ <type>STRING</type>
+ <value></value>
+ <documentation>
+ <purpose>Error message returned when a call to the API fails.</purpose>
+ <usage>Check this variable to determine if there was an error while
+ calling the Web services API when using the
+ <functionlink>CallAPI</functionlink> function.</usage>
+ </documentation>
+ </variable>
+{/metadocument}
+*/
+ var $access_token_error = '';
+
+/*
+{metadocument}
+ <variable>
+ <name>authorization_error</name>
+ <type>STRING</type>
+ <value></value>
+ <documentation>
+ <purpose>Error message returned when it was not possible to obtain
+ an OAuth access token</purpose>
+ <usage>Check this variable to determine if there was an error while
+ trying to obtain the OAuth access token.</usage>
+ </documentation>
+ </variable>
+{/metadocument}
+*/
+ var $authorization_error = '';
+
+/*
+{metadocument}
+ <variable>
+ <name>response_status</name>
+ <type>INTEGER</type>
+ <value>0</value>
+ <documentation>
+ <purpose>HTTP response status returned by the server when calling an
+ API</purpose>
+ <usage>Check this variable after calling the
+ <functionlink>CallAPI</functionlink> function if the API calls and you
+ need to process the error depending the response status.
+ <integervalue>200</integervalue> means no error.
+ <integervalue>0</integervalue> means the server response was not
+ retrieved.</usage>
+ </documentation>
+ </variable>
+{/metadocument}
+*/
+ var $response_status = 0;
+
+ var $oauth_user_agent = 'PHP-OAuth-API (http://www.phpclasses.org/oauth-api $Revision: 1.58 $)';
+ var $session_started = false;
+
+ Function SetError($error)
+ {
+ $this->error = $error;
+ if($this->debug)
+ $this->OutputDebug('Error: '.$error);
+ return(false);
+ }
+
+ Function SetPHPError($error, &$php_error_message)
+ {
+ if(IsSet($php_error_message)
+ && strlen($php_error_message))
+ $error.=": ".$php_error_message;
+ return($this->SetError($error));
+ }
+
+ Function OutputDebug($message)
+ {
+ if($this->debug)
+ {
+ $message = $this->debug_prefix.$message;
+ $this->debug_output .= $message."\n";;
+ error_log($message);
+ }
+ return(true);
+ }
+
+ Function GetRequestTokenURL(&$request_token_url)
+ {
+ $request_token_url = $this->request_token_url;
+ return(true);
+ }
+
+ Function GetDialogURL(&$url, $redirect_uri = '', $state = '')
+ {
+ $url = (($this->offline && strlen($this->offline_dialog_url)) ? $this->offline_dialog_url : $this->dialog_url);
+ if(strlen($url) === 0)
+ return $this->SetError('the dialog URL '.($this->offline ? 'for offline access ' : '').'is not defined for this server');
+ $url = str_replace(
+ '{REDIRECT_URI}', UrlEncode($redirect_uri), str_replace(
+ '{STATE}', UrlEncode($state), str_replace(
+ '{CLIENT_ID}', UrlEncode($this->client_id), str_replace(
+ '{SCOPE}', UrlEncode($this->scope),
+ $url))));
+ return(true);
+ }
+
+ Function GetAccessTokenURL(&$access_token_url)
+ {
+ $access_token_url = $this->access_token_url;
+ return(true);
+ }
+
+ Function GetStoredState(&$state)
+ {
+ if(!$this->session_started)
+ {
+ if(!function_exists('session_start'))
+ return $this->SetError('Session variables are not accessible in this PHP environment');
+ }
+ if(IsSet($_SESSION['OAUTH_STATE']))
+ $state = $_SESSION['OAUTH_STATE'];
+ else
+ $state = $_SESSION['OAUTH_STATE'] = time().'-'.substr(md5(rand().time()), 0, 6);
+ return(true);
+ }
+
+ Function GetRequestState(&$state)
+ {
+ $check = (strlen($this->append_state_to_redirect_uri) ? $this->append_state_to_redirect_uri : 'state');
+ $state = (IsSet($_GET[$check]) ? $_GET[$check] : null);
+ return(true);
+ }
+
+ Function GetRequestCode(&$code)
+ {
+ $code = (IsSet($_GET['code']) ? $_GET['code'] : null);
+ return(true);
+ }
+
+ Function GetRequestError(&$error)
+ {
+ $error = (IsSet($_GET['error']) ? $_GET['error'] : null);
+ return(true);
+ }
+
+ Function GetRequestDenied(&$denied)
+ {
+ $denied = (IsSet($_GET['denied']) ? $_GET['denied'] : null);
+ return(true);
+ }
+
+ Function GetRequestToken(&$token, &$verifier)
+ {
+ $token = (IsSet($_GET['oauth_token']) ? $_GET['oauth_token'] : null);
+ $verifier = (IsSet($_GET['oauth_verifier']) ? $_GET['oauth_verifier'] : null);
+ return(true);
+ }
+
+ Function GetRedirectURI(&$redirect_uri)
+ {
+ if(strlen($this->redirect_uri))
+ $redirect_uri = $this->redirect_uri;
+ else
+ $redirect_uri = 'http://'.$_SERVER['HTTP_HOST'].$_SERVER['REQUEST_URI'];
+ return true;
+ }
+
+/*
+{metadocument}
+ <function>
+ <name>StoreAccessToken</name>
+ <type>BOOLEAN</type>
+ <documentation>
+ <purpose>Store the values of the access token when it is succefully
+ retrieved from the OAuth server.</purpose>
+ <usage>This function is meant to be only be called from inside the
+ class. By default it stores access tokens in a session variable
+ named <stringvalue>OAUTH_ACCESS_TOKEN</stringvalue>.<paragraphbreak />
+ Actual implementations should create a sub-class and override this
+ function to make the access token values be stored in other types
+ of containers, like for instance databases.</usage>
+ <returnvalue>This function should return
+ <booleanvalue>1</booleanvalue> if the access token was stored
+ successfully.</returnvalue>
+ </documentation>
+ <argument>
+ <name>access_token</name>
+ <type>HASH</type>
+ <documentation>
+ <purpose>Associative array with properties of the access token.
+ The array may have set the following
+ properties:<paragraphbreak />
+ <stringvalue>value</stringvalue>: string value of the access
+ token<paragraphbreak />
+ <stringvalue>authorized</stringvalue>: boolean value that
+ determines if the access token was obtained
+ successfully<paragraphbreak />
+ <stringvalue>expiry</stringvalue>: (optional) timestamp in ISO
+ format relative to UTC time zone of the access token expiry
+ time<paragraphbreak />
+ <stringvalue>type</stringvalue>: (optional) type of OAuth token
+ that may determine how it should be used when sending API call
+ requests.<paragraphbreak />
+ <stringvalue>refresh</stringvalue>: (optional) token that some
+ servers may set to allowing refreshing access tokens when they
+ expire.</purpose>
+ </documentation>
+ </argument>
+ <do>
+{/metadocument}
+*/
+ Function StoreAccessToken($access_token)
+ {
+ if(!$this->session_started)
+ {
+ if(!function_exists('session_start'))
+ return $this->SetError('Session variables are not accessible in this PHP environment');
+ }
+ $_SESSION['OAUTH_ACCESS_TOKEN'][$this->access_token_url] = $access_token;
+ return true;
+ }
+/*
+{metadocument}
+ </do>
+ </function>
+{/metadocument}
+*/
+
+/*
+{metadocument}
+ <function>
+ <name>GetAccessToken</name>
+ <type>BOOLEAN</type>
+ <documentation>
+ <purpose>Retrieve the OAuth access token if it was already
+ previously stored by the
+ <functionlink>StoreAccessToken</functionlink> function.</purpose>
+ <usage>This function is meant to be only be called from inside the
+ class. By default it retrieves access tokens stored in a session
+ variable named
+ <stringvalue>OAUTH_ACCESS_TOKEN</stringvalue>.<paragraphbreak />
+ Actual implementations should create a sub-class and override this
+ function to retrieve the access token values from other types of
+ containers, like for instance databases.</usage>
+ <returnvalue>This function should return
+ <booleanvalue>1</booleanvalue> if the access token was retrieved
+ successfully.</returnvalue>
+ </documentation>
+ <argument>
+ <name>access_token</name>
+ <type>STRING</type>
+ <out />
+ <documentation>
+ <purpose>Return the properties of the access token in an
+ associative array. If the access token was not yet stored, it
+ returns an empty array. Otherwise, the properties it may return
+ are the same that may be passed to the
+ <functionlink>StoreAccessToken</functionlink>.</purpose>
+ </documentation>
+ </argument>
+ <do>
+{/metadocument}
+*/
+ Function GetAccessToken(&$access_token)
+ {
+ if(!$this->session_started)
+ {
+ if(!function_exists('session_start'))
+ return $this->SetError('Session variables are not accessible in this PHP environment');
+ if(!session_start())
+ return($this->SetPHPError('it was not possible to start the PHP session', $php_error_message));
+ $this->session_started = true;
+ }
+ if(IsSet($_SESSION['OAUTH_ACCESS_TOKEN'][$this->access_token_url]))
+ $access_token = $_SESSION['OAUTH_ACCESS_TOKEN'][$this->access_token_url];
+ else
+ $access_token = array();
+ return true;
+ }
+/*
+{metadocument}
+ </do>
+ </function>
+{/metadocument}
+*/
+
+/*
+{metadocument}
+ <function>
+ <name>ResetAccessToken</name>
+ <type>BOOLEAN</type>
+ <documentation>
+ <purpose>Reset the access token to a state back when the user has
+ not yet authorized the access to the OAuth server API.</purpose>
+ <usage>Call this function if for some reason the token to access
+ the API was revoked and you need to ask the user to authorize
+ the access again.<paragraphbreak />
+ By default the class stores and retrieves access tokens in a
+ session variable named
+ <stringvalue>OAUTH_ACCESS_TOKEN</stringvalue>.<paragraphbreak />
+ This function must be called when the user is accessing your site
+ pages, so it can reset the information stored in session variables
+ that cache the state of a previously retrieved access
+ token.<paragraphbreak />
+ Actual implementations should create a sub-class and override this
+ function to reset the access token state when it is stored in
+ other types of containers, like for instance databases.</usage>
+ <returnvalue>This function should return
+ <booleanvalue>1</booleanvalue> if the access token was resetted
+ successfully.</returnvalue>
+ </documentation>
+ <do>
+{/metadocument}
+*/
+ Function ResetAccessToken()
+ {
+ if($this->debug)
+ $this->OutputDebug('Resetting the access token status for OAuth server located at '.$this->access_token_url);
+ if(!$this->session_started)
+ {
+ if(!function_exists('session_start'))
+ return $this->SetError('Session variables are not accessible in this PHP environment');
+ if(!session_start())
+ return($this->SetPHPError('it was not possible to start the PHP session', $php_error_message));
+ }
+ $this->session_started = true;
+ if(IsSet($_SESSION['OAUTH_ACCESS_TOKEN'][$this->access_token_url]))
+ Unset($_SESSION['OAUTH_ACCESS_TOKEN'][$this->access_token_url]);
+ return true;
+ }
+/*
+{metadocument}
+ </do>
+ </function>
+{/metadocument}
+*/
+
+ Function Encode($value)
+ {
+ return(is_array($value) ? $this->EncodeArray($value) : str_replace('%7E', '~', str_replace('+',' ', RawURLEncode($value))));
+ }
+
+ Function EncodeArray($array)
+ {
+ foreach($array as $key => $value)
+ $array[$key] = $this->Encode($value);
+ return $array;
+ }
+
+ Function HMAC($function, $data, $key)
+ {
+ switch($function)
+ {
+ case 'sha1':
+ $pack = 'H40';
+ break;
+ default:
+ if($this->debug)
+ $this->OutputDebug($function.' is not a supported an HMAC hash type');
+ return('');
+ }
+ if(strlen($key) > 64)
+ $key = pack($pack, $function($key));
+ if(strlen($key) < 64)
+ $key = str_pad($key, 64, "\0");
+ return(pack($pack, $function((str_repeat("\x5c", 64) ^ $key).pack($pack, $function((str_repeat("\x36", 64) ^ $key).$data)))));
+ }
+
+ Function SendAPIRequest($url, $method, $parameters, $oauth, $options, &$response)
+ {
+ $this->response_status = 0;
+ $http = new http_class;
+ $http->debug = ($this->debug && $this->debug_http);
+ $http->log_debug = true;
+ $http->sasl_authenticate = 0;
+ $http->user_agent = $this->oauth_user_agent;
+ $http->redirection_limit = (IsSet($options['FollowRedirection']) ? intval($options['FollowRedirection']) : 0);
+ $http->follow_redirect = ($http->redirection_limit != 0);
+ if($this->debug)
+ $this->OutputDebug('Accessing the '.$options['Resource'].' at '.$url);
+ $post_files = array();
+ $method = strtoupper($method);
+ $authorization = '';
+ $type = (IsSet($options['RequestContentType']) ? strtolower(trim(strtok($options['RequestContentType'], ';'))) : 'application/x-www-form-urlencoded');
+ if(IsSet($oauth))
+ {
+ $values = array(
+ 'oauth_consumer_key'=>$this->client_id,
+ 'oauth_nonce'=>md5(uniqid(rand(), true)),
+ 'oauth_signature_method'=>$this->signature_method,
+ 'oauth_timestamp'=>time(),
+ 'oauth_version'=>'1.0',
+ );
+ $files = (IsSet($options['Files']) ? $options['Files'] : array());
+ if(count($files))
+ {
+ foreach($files as $name => $value)
+ {
+ if(!IsSet($parameters[$name]))
+ return($this->SetError('it was specified an file parameters named '.$name));
+ $file = array();
+ switch(IsSet($value['Type']) ? $value['Type'] : 'FileName')
+ {
+ case 'FileName':
+ $file['FileName'] = $parameters[$name];
+ break;
+ case 'Data':
+ $file['Data'] = $parameters[$name];
+ break;
+ default:
+ return($this->SetError($value['Type'].' is not a valid type for file '.$name));
+ }
+ $file['ContentType'] = (IsSet($value['Content-Type']) ? $value['Content-Type'] : 'automatic/name');
+ $post_files[$name] = $file;
+ }
+ UnSet($parameters[$name]);
+ if($method !== 'POST')
+ {
+ $this->OutputDebug('For uploading files the method should be POST not '.$method);
+ $method = 'POST';
+ }
+ if($type !== 'multipart/form-data')
+ {
+ if(IsSet($options['RequestContentType']))
+ return($this->SetError('the request content type for uploading files should be multipart/form-data'));
+ $type = 'multipart/form-data';
+ }
+ $value_parameters = array();
+ }
+ else
+ {
+ if($this->url_parameters
+ && $type === 'application/x-www-form-urlencoded'
+ && count($parameters))
+ {
+ $first = (strpos($url, '?') === false);
+ foreach($parameters as $parameter => $value)
+ {
+ $url .= ($first ? '?' : '&').UrlEncode($parameter).'='.UrlEncode($value);
+ $first = false;
+ }
+ $parameters = array();
+ }
+ $value_parameters = ($type !== 'application/x-www-form-urlencoded' ? array() : $parameters);
+ }
+ $values = array_merge($values, $oauth, $value_parameters);
+ $key = $this->Encode($this->client_secret).'&'.$this->Encode($this->access_token_secret);
+ switch($this->signature_method)
+ {
+ case 'PLAINTEXT':
+ $values['oauth_signature'] = $key;
+ break;
+ case 'HMAC-SHA1':
+ $uri = strtok($url, '?');
+ $sign = $method.'&'.$this->Encode($uri).'&';
+ $first = true;
+ $sign_values = $values;
+ $u = parse_url($url);
+ if(IsSet($u['query']))
+ {
+ parse_str($u['query'], $q);
+ foreach($q as $parameter => $value)
+ $sign_values[$parameter] = $value;
+ }
+ KSort($sign_values);
+ foreach($sign_values as $parameter => $value)
+ {
+ $sign .= $this->Encode(($first ? '' : '&').$parameter.'='.$this->Encode($value));
+ $first = false;
+ }
+ $values['oauth_signature'] = base64_encode($this->HMAC('sha1', $sign, $key));
+ break;
+ default:
+ return $this->SetError($this->signature_method.' signature method is not yet supported');
+ }
+ if($this->authorization_header)
+ {
+ $authorization = 'OAuth';
+ $first = true;
+ foreach($values as $parameter => $value)
+ {
+ $authorization .= ($first ? ' ' : ',').$parameter.'="'.$this->Encode($value).'"';
+ $first = false;
+ }
+ }
+ else
+ {
+ if($method === 'GET'
+ || (IsSet($options['PostValuesInURI'])
+ && $options['PostValuesInURI']))
+ {
+ $first = (strcspn($url, '?') == strlen($url));
+ foreach($values as $parameter => $value)
+ {
+ $url .= ($first ? '?' : '&').$parameter.'='.$this->Encode($value);
+ $first = false;
+ }
+ $post_values = array();
+ }
+ else
+ $post_values = $values;
+ }
+ }
+ if(strlen($error = $http->GetRequestArguments($url, $arguments)))
+ return($this->SetError('it was not possible to open the '.$options['Resource'].' URL: '.$error));
+ if(strlen($error = $http->Open($arguments)))
+ return($this->SetError('it was not possible to open the '.$options['Resource'].' URL: '.$error));
+ if(count($post_files))
+ $arguments['PostFiles'] = $post_files;
+ $arguments['RequestMethod'] = $method;
+ switch($type)
+ {
+ case 'application/x-www-form-urlencoded':
+ case 'multipart/form-data':
+ if(IsSet($options['RequestBody']))
+ return($this->SetError('the request body is defined automatically from the parameters'));
+ $arguments['PostValues'] = $parameters;
+ break;
+ case 'application/json':
+ $arguments['Headers']['Content-Type'] = $options['RequestContentType'];
+ if(!IsSet($options['RequestBody']))
+ {
+ $arguments['Body'] = json_encode($parameters);
+ break;
+ }
+ default:
+ if(!IsSet($options['RequestBody']))
+ return($this->SetError('it was not specified the body value of the of the API call request'));
+ $arguments['Headers']['Content-Type'] = $options['RequestContentType'];
+ $arguments['Body'] = $options['RequestBody'];
+ break;
+ }
+ $arguments['Headers']['Accept'] = (IsSet($options['Accept']) ? $options['Accept'] : '*/*');
+ if(strlen($authorization))
+ $arguments['Headers']['Authorization'] = $authorization;
+ if(strlen($error = $http->SendRequest($arguments))
+ || strlen($error = $http->ReadReplyHeaders($headers)))
+ {
+ $http->Close();
+ return($this->SetError('it was not possible to retrieve the '.$options['Resource'].': '.$error));
+ }
+ $error = $http->ReadWholeReplyBody($data);
+ $http->Close();
+ if(strlen($error))
+ {
+ return($this->SetError('it was not possible to access the '.$options['Resource'].': '.$error));
+ }
+ $this->response_status = intval($http->response_status);
+ $content_type = (IsSet($options['ResponseContentType']) ? $options['ResponseContentType'] : (IsSet($headers['content-type']) ? strtolower(trim(strtok($headers['content-type'], ';'))) : 'unspecified'));
+ switch($content_type)
+ {
+ case 'text/javascript':
+ case 'application/json':
+ if(!function_exists('json_decode'))
+ return($this->SetError('the JSON extension is not available in this PHP setup'));
+ $object = json_decode($data);
+ switch(GetType($object))
+ {
+ case 'object':
+ if(!IsSet($options['ConvertObjects'])
+ || !$options['ConvertObjects'])
+ $response = $object;
+ else
+ {
+ $response = array();
+ foreach($object as $property => $value)
+ $response[$property] = $value;
+ }
+ break;
+ case 'array':
+ $response = $object;
+ break;
+ default:
+ if(!IsSet($object))
+ return($this->SetError('it was not returned a valid JSON definition of the '.$options['Resource'].' values'));
+ $response = $object;
+ break;
+ }
+ break;
+ case 'application/x-www-form-urlencoded':
+ case 'text/plain':
+ case 'text/html':
+ parse_str($data, $response);
+ break;
+ default:
+ $response = $data;
+ break;
+ }
+ if($this->response_status >= 200
+ && $this->response_status < 300)
+ $this->access_token_error = '';
+ else
+ {
+ $this->access_token_error = 'it was not possible to access the '.$options['Resource'].': it was returned an unexpected response status '.$http->response_status.' Response: '.$data;
+ if($this->debug)
+ $this->OutputDebug('Could not retrieve the OAuth access. Error: '.$this->access_token_error);
+ if(IsSet($options['FailOnAccessError'])
+ && $options['FailOnAccessError'])
+ {
+ $this->error = $this->access_token_error;
+ return false;
+ }
+ }
+ return true;
+ }
+
+ Function ProcessToken($code, $refresh)
+ {
+ if($refresh)
+ {
+ $values = array(
+ 'client_id'=>$this->client_id,
+ 'client_secret'=>$this->client_secret,
+ 'refresh_token'=>$this->refresh_token,
+ 'grant_type'=>'refresh_token'
+ );
+ }
+ else
+ {
+ if(!$this->GetRedirectURI($redirect_uri))
+ return false;
+ $values = array(
+ 'code'=>$code,
+ 'client_id'=>$this->client_id,
+ 'client_secret'=>$this->client_secret,
+ 'redirect_uri'=>$redirect_uri,
+ 'grant_type'=>'authorization_code'
+ );
+ }
+ if(!$this->GetAccessTokenURL($url))
+ return false;
+ if(!$this->SendAPIRequest($url, 'POST', $values, null, array('Resource'=>'OAuth '.($refresh ? 'refresh' : 'access').' token', 'ConvertObjects'=>true), $response))
+ return false;
+ if(strlen($this->access_token_error))
+ {
+ $this->authorization_error = $this->access_token_error;
+ return true;
+ }
+ if(!IsSet($response['access_token']))
+ {
+ if(IsSet($response['error']))
+ {
+ $this->authorization_error = 'it was not possible to retrieve the access token: it was returned the error: '.$response['error'];
+ return true;
+ }
+ return($this->SetError('OAuth server did not return the access token'));
+ }
+ $access_token = array(
+ 'value'=>$this->access_token = $response['access_token'],
+ 'authorized'=>true
+ );
+ if($this->debug)
+ $this->OutputDebug('Access token: '.$this->access_token);
+ if(IsSet($response['expires'])
+ || IsSet($response['expires_in']))
+ {
+ $expires = (IsSet($response['expires']) ? $response['expires'] : $response['expires_in']);
+ if(strval($expires) !== strval(intval($expires))
+ || $expires <= 0)
+ return($this->SetError('OAuth server did not return a supported type of access token expiry time'));
+ $this->access_token_expiry = gmstrftime('%Y-%m-%d %H:%M:%S', time() + $expires);
+ if($this->debug)
+ $this->OutputDebug('Access token expiry: '.$this->access_token_expiry.' UTC');
+ $access_token['expiry'] = $this->access_token_expiry;
+ }
+ else
+ $this->access_token_expiry = '';
+ if(IsSet($response['token_type']))
+ {
+ $this->access_token_type = $response['token_type'];
+ if($this->debug)
+ $this->OutputDebug('Access token type: '.$this->access_token_type);
+ $access_token['type'] = $this->access_token_type;
+ }
+ else
+ $this->access_token_type = '';
+ if($refresh)
+ $response['refresh_token'] = $this->refresh_token;
+ elseif(IsSet($response['refresh_token']))
+ {
+ $this->refresh_token = $response['refresh_token'];
+ if($this->debug)
+ $this->OutputDebug('Refresh token: '.$this->refresh_token);
+ $access_token['refresh'] = $this->refresh_token;
+ }
+ else
+ $this->refresh_token = '';
+ if(!$this->StoreAccessToken($access_token))
+ return false;
+ return true;
+ }
+
+ Function RetrieveToken(&$valid)
+ {
+ $valid = false;
+ if(!$this->GetAccessToken($access_token))
+ return false;
+ if(IsSet($access_token['value']))
+ {
+ $this->access_token_expiry = '';
+ if(IsSet($access_token['expiry'])
+ && strcmp($this->access_token_expiry = $access_token['expiry'], gmstrftime('%Y-%m-%d %H:%M:%S')) < 0)
+ {
+ $this->access_token = '';
+ if($this->debug)
+ $this->OutputDebug('The OAuth access token expired in '.$this->access_token_expiry);
+ }
+ else
+ {
+ $this->access_token = $access_token['value'];
+ if(IsSet($access_token['type']))
+ $this->access_token_type = $access_token['type'];
+ else
+ $this->access_token_type = '';
+ if($this->debug)
+ $this->OutputDebug('The OAuth access token '.$this->access_token.' is valid');
+ if(strlen($this->access_token_type)
+ && $this->debug)
+ $this->OutputDebug('The OAuth access token is of type '.$this->access_token_type);
+ if(IsSet($access_token['refresh']))
+ $this->refresh_token = $access_token['refresh'];
+ else
+ $this->refresh_token = '';
+ $valid = true;
+ }
+ }
+ return true;
+ }
+/*
+{metadocument}
+ <function>
+ <name>CallAPI</name>
+ <type>BOOLEAN</type>
+ <documentation>
+ <purpose>Send a HTTP request to the Web services API using a
+ previously obtained authorization token via OAuth.</purpose>
+ <usage>This function can be used to call an API after having
+ previously obtained an access token through the OAuth protocol
+ using the <functionlink>Process</functionlink> function, or by
+ directly setting the variables
+ <variablelink>access_token</variablelink>, as well as
+ <variablelink>access_token_secret</variablelink> in case of using
+ OAuth 1.0 or 1.0a services.</usage>
+ <returnvalue>This function returns <booleanvalue>1</booleanvalue> if
+ the call was done successfully.</returnvalue>
+ </documentation>
+ <argument>
+ <name>url</name>
+ <type>STRING</type>
+ <documentation>
+ <purpose>URL of the API where the HTTP request will be sent.</purpose>
+ </documentation>
+ </argument>
+ <argument>
+ <name>method</name>
+ <type>STRING</type>
+ <documentation>
+ <purpose>HTTP method that will be used to send the request. It can
+ be <stringvalue>GET</stringvalue>,
+ <stringvalue>POST</stringvalue>,
+ <stringvalue>DELETE</stringvalue>, <stringvalue>PUT</stringvalue>,
+ etc..</purpose>
+ </documentation>
+ </argument>
+ <argument>
+ <name>parameters</name>
+ <type>HASH</type>
+ <documentation>
+ <purpose>Associative array with the names and values of the API
+ call request parameters.</purpose>
+ </documentation>
+ </argument>
+ <argument>
+ <name>options</name>
+ <type>HASH</type>
+ <documentation>
+ <purpose>Associative array with additional options to configure
+ the request. Currently it supports the following
+ options:<paragraphbreak />
+ <stringvalue>2Legged</stringvalue>: boolean option that
+ determines if the API request should be 2 legged. The default
+ value is <tt><booleanvalue>0</booleanvalue></tt>.<paragraphbreak />
+ <stringvalue>Accept</stringvalue>: content type value of the
+ Accept HTTP header to be sent in the API call HTTP request.
+ Some APIs require that a certain value be sent to specify
+ which version of the API is being called. The default value is
+ <stringvalue>*&#47;*</stringvalue>.<paragraphbreak />
+ <stringvalue>ConvertObjects</stringvalue>: boolean option that
+ determines if objects should be converted into arrays when the
+ response is returned in JSON format. The default value is
+ <booleanvalue>0</booleanvalue>.<paragraphbreak />
+ <stringvalue>FailOnAccessError</stringvalue>: boolean option
+ that determines if this functions should fail when the server
+ response status is not between 200 and 299. The default value
+ is <booleanvalue>0</booleanvalue>.<paragraphbreak />
+ <stringvalue>Files</stringvalue>: associative array with
+ details of the parameters that must be passed as file uploads.
+ The array indexes must have the same name of the parameters
+ to be sent as files. The respective array entry values must
+ also be associative arrays with the parameters for each file.
+ Currently it supports the following parameters:<paragraphbreak />
+ - <tt>Type</tt> - defines how the parameter value should be
+ treated. It can be <tt>'FileName'</tt> if the parameter value is
+ is the name of a local file to be uploaded. It may also be
+ <tt>'Data'</tt> if the parameter value is the actual data of
+ the file to be uploaded.<paragraphbreak />
+ - Default: <tt>'FileName'</tt><paragraphbreak />
+ - <tt>ContentType</tt> - MIME value of the content type of the
+ file. It can be <tt>'automatic/name'</tt> if the content type
+ should be determine from the file name extension.<paragraphbreak />
+ - Default: <tt>'automatic/name'</tt><paragraphbreak />
+ <stringvalue>PostValuesInURI</stringvalue>: boolean option to
+ determine that a POST request should pass the request values
+ in the URI. The default value is
+ <booleanvalue>0</booleanvalue>.<paragraphbreak />
+ <stringvalue>FollowRedirection</stringvalue>: limit number of
+ times that HTTP response redirects will be followed. If it is
+ set to <integervalue>0</integervalue>, redirection responses
+ fail in error. The default value is
+ <integervalue>0</integervalue>.<paragraphbreak />
+ <stringvalue>RequestBody</stringvalue>: request body data of a
+ custom type. The <stringvalue>RequestContentType</stringvalue>
+ option must be specified, so the
+ <stringvalue>RequestBody</stringvalue> option is considered.<paragraphbreak />
+ <stringvalue>RequestContentType</stringvalue>: content type that
+ should be used to send the request values. It can be either
+ <stringvalue>application/x-www-form-urlencoded</stringvalue>
+ for sending values like from Web forms, or
+ <stringvalue>application/json</stringvalue> for sending the
+ values encoded in JSON format. Other types are accepted if the
+ <stringvalue>RequestBody</stringvalue> option is specified.
+ The default value is
+ <stringvalue>application/x-www-form-urlencoded</stringvalue>.<paragraphbreak />
+ <stringvalue>RequestBody</stringvalue>: request body data of a
+ custom type. The <stringvalue>RequestContentType</stringvalue>
+ option must be specified, so the
+ <stringvalue>RequestBody</stringvalue> option is considered.<paragraphbreak />
+ <stringvalue>Resource</stringvalue>: string with a label that
+ will be used in the error messages and debug log entries to
+ identify what operation the request is performing. The default
+ value is <stringvalue>API call</stringvalue>.<paragraphbreak />
+ <stringvalue>ResponseContentType</stringvalue>: content type
+ that should be considered when decoding the API request
+ response. This overrides the <tt>Content-Type</tt> header
+ returned by the server. If the content type is
+ <stringvalue>application/x-www-form-urlencoded</stringvalue>
+ the function will parse the data returning an array of
+ key-value pairs. If the content type is
+ <stringvalue>application/json</stringvalue> the response will
+ be decode as a JSON-encoded data type. Other content type
+ values will make the function return the original response
+ value as it was returned from the server. The default value
+ for this option is to use what the server returned in the
+ <tt>Content-Type</tt> header.</purpose>
+ </documentation>
+ </argument>
+ <argument>
+ <name>response</name>
+ <type>STRING</type>
+ <out />
+ <documentation>
+ <purpose>Return the value of the API response. If the value is
+ JSON encoded, this function will decode it and return the value
+ converted to respective types. If the value is form encoded,
+ this function will decode the response and return it as an
+ array. Otherwise, the class will return the value as a
+ string.</purpose>
+ </documentation>
+ </argument>
+ <do>
+{/metadocument}
+*/
+ Function CallAPI($url, $method, $parameters, $options, &$response)
+ {
+ if(!IsSet($options['Resource']))
+ $options['Resource'] = 'API call';
+ if(!IsSet($options['ConvertObjects']))
+ $options['ConvertObjects'] = false;
+ if(strlen($this->access_token) === 0)
+ {
+ if(!$this->RetrieveToken($valid))
+ return false;
+ if(!$valid)
+ return $this->SetError('the access token is not set to a valid value');
+ }
+ switch(intval($this->oauth_version))
+ {
+ case 1:
+ $oauth = array(
+ 'oauth_token'=>((IsSet($options['2Legged']) && $options['2Legged']) ? '' : $this->access_token)
+ );
+ break;
+
+ case 2:
+ if(strlen($this->access_token_expiry)
+ && strcmp($this->access_token_expiry, gmstrftime('%Y-%m-%d %H:%M:%S')) <= 0)
+ {
+ if(strlen($this->refresh_token) === 0)
+ return($this->SetError('the access token expired and no refresh token is available'));
+ if($this->debug)
+ {
+ $this->OutputDebug('The access token expired on '.$this->access_token_expiry);
+ $this->OutputDebug('Refreshing the access token');
+ }
+ if(!$this->ProcessToken(null, true))
+ return false;
+ }
+ $oauth = null;
+ $url .= (strcspn($url, '?') < strlen($url) ? '&' : '?').'access_token='.UrlEncode($this->access_token);
+ break;
+
+ default:
+ return($this->SetError($this->oauth_version.' is not a supported version of the OAuth protocol'));
+ }
+ return($this->SendAPIRequest($url, $method, $parameters, $oauth, $options, $response));
+ }
+/*
+{metadocument}
+ </do>
+ </function>
+{/metadocument}
+*/
+
+/*
+{metadocument}
+ <function>
+ <name>Initialize</name>
+ <type>BOOLEAN</type>
+ <documentation>
+ <purpose>Initialize the class variables and internal state. It must
+ be called before calling other class functions.</purpose>
+ <usage>Set the <variablelink>server</variablelink> variable before
+ calling this function to let it initialize the class variables to
+ work with the specified server type. Alternatively, you can set
+ other class variables manually to make it work with servers that
+ are not yet built-in supported.</usage>
+ <returnvalue>This function returns <booleanvalue>1</booleanvalue> if
+ it was able to successfully initialize the class for the specified
+ server type.</returnvalue>
+ </documentation>
+ <do>
+{/metadocument}
+*/
+ Function Initialize()
+ {
+ if(strlen($this->server) === 0)
+ return true;
+ $this->request_token_url = '';
+ $this->append_state_to_redirect_uri = '';
+ $this->authorization_header = true;
+ $this->url_parameters = false;
+ $this->token_request_method = 'GET';
+ $this->signature_method = 'HMAC-SHA1';
+ switch($this->server)
+ {
+ case 'Bitbucket':
+ $this->oauth_version = '1.0a';
+ $this->request_token_url = 'https://bitbucket.org/!api/1.0/oauth/request_token';
+ $this->dialog_url = 'https://bitbucket.org/!api/1.0/oauth/authenticate';
+ $this->access_token_url = 'https://bitbucket.org/!api/1.0/oauth/access_token';
+ $this->url_parameters = true;
+ break;
+
+ case 'Box':
+ $this->oauth_version = '2.0';
+ $this->dialog_url = 'https://www.box.com/api/oauth2/authorize?response_type=code&client_id={CLIENT_ID}&redirect_uri={REDIRECT_URI}&state={STATE}';
+ $this->offline_dialog_url = 'https://www.box.com/api/oauth2/authorize?response_type=code&client_id={CLIENT_ID}&redirect_uri={REDIRECT_URI}&state={STATE}&access_type=offline&approval_prompt=force';
+ $this->access_token_url = 'https://www.box.com/api/oauth2/token';
+ break;
+
+ case 'Dropbox':
+ $this->oauth_version = '1.0';
+ $this->request_token_url = 'https://api.dropbox.com/1/oauth/request_token';
+ $this->dialog_url = 'https://www.dropbox.com/1/oauth/authorize';
+ $this->access_token_url = 'https://api.dropbox.com/1/oauth/access_token';
+ $this->authorization_header = false;
+ break;
+
+ case 'Eventful':
+ $this->oauth_version = '1.0a';
+ $this->request_token_url = 'http://eventful.com/oauth/request_token';
+ $this->dialog_url = 'http://eventful.com/oauth/authorize';
+ $this->access_token_url = 'http://eventful.com/oauth/access_token';
+ $this->authorization_header = false;
+ $this->url_parameters = true;
+ $this->token_request_method = 'POST';
+ break;
+
+ case 'Evernote':
+ $this->oauth_version = '1.0a';
+ $this->request_token_url = 'https://sandbox.evernote.com/oauth';
+ $this->dialog_url = 'https://sandbox.evernote.com/OAuth.action';
+ $this->access_token_url = 'https://sandbox.evernote.com/oauth';
+ $this->url_parameters = true;
+ $this->authorization_header = false;
+ break;
+
+ case 'Facebook':
+ $this->oauth_version = '2.0';
+ $this->dialog_url = 'https://www.facebook.com/dialog/oauth?client_id={CLIENT_ID}&redirect_uri={REDIRECT_URI}&scope={SCOPE}&state={STATE}';
+ $this->access_token_url = 'https://graph.facebook.com/oauth/access_token';
+ break;
+
+ case 'Fitbit':
+ $this->oauth_version = '1.0a';
+ $this->request_token_url = 'http://api.fitbit.com/oauth/request_token';
+ $this->dialog_url = 'http://api.fitbit.com/oauth/authorize';
+ $this->access_token_url = 'http://api.fitbit.com/oauth/access_token';
+ break;
+
+ case 'Flickr':
+ $this->oauth_version = '1.0a';
+ $this->request_token_url = 'http://www.flickr.com/services/oauth/request_token';
+ $this->dialog_url = 'http://www.flickr.com/services/oauth/authorize?perms={SCOPE}';
+ $this->access_token_url = 'http://www.flickr.com/services/oauth/access_token';
+ $this->authorization_header = false;
+ break;
+
+ case 'Foursquare':
+ $this->oauth_version = '2.0';
+ $this->dialog_url = 'https://foursquare.com/oauth2/authorize?client_id={CLIENT_ID}&scope={SCOPE}&response_type=code&redirect_uri={REDIRECT_URI}&state={STATE}';
+ $this->access_token_url = 'https://foursquare.com/oauth2/access_token';
+ break;
+
+ case 'github':
+ $this->oauth_version = '2.0';
+ $this->dialog_url = 'https://github.com/login/oauth/authorize?client_id={CLIENT_ID}&redirect_uri={REDIRECT_URI}&scope={SCOPE}&state={STATE}';
+ $this->access_token_url = 'https://github.com/login/oauth/access_token';
+ break;
+
+ case 'Google':
+ $this->oauth_version = '2.0';
+ $this->dialog_url = 'https://accounts.google.com/o/oauth2/auth?response_type=code&client_id={CLIENT_ID}&redirect_uri={REDIRECT_URI}&scope={SCOPE}&state={STATE}';
+ $this->offline_dialog_url = 'https://accounts.google.com/o/oauth2/auth?response_type=code&client_id={CLIENT_ID}&redirect_uri={REDIRECT_URI}&scope={SCOPE}&state={STATE}&access_type=offline&approval_prompt=force';
+ $this->access_token_url = 'https://accounts.google.com/o/oauth2/token';
+ break;
+
+ case 'Instagram':
+ $this->oauth_version = '2.0';
+ $this->dialog_url ='https://api.instagram.com/oauth/authorize/?client_id={CLIENT_ID}&redirect_uri={REDIRECT_URI}&scope={SCOPE}&response_type=code&state={STATE}';
+ $this->access_token_url = 'https://api.instagram.com/oauth/access_token';
+ break;
+
+ case 'LinkedIn':
+ $this->oauth_version = '1.0a';
+ $this->request_token_url = 'https://api.linkedin.com/uas/oauth/requestToken?scope={SCOPE}';
+ $this->dialog_url = 'https://api.linkedin.com/uas/oauth/authenticate';
+ $this->access_token_url = 'https://api.linkedin.com/uas/oauth/accessToken';
+ $this->url_parameters = true;
+ break;
+
+ case 'Microsoft':
+ $this->oauth_version = '2.0';
+ $this->dialog_url = 'https://login.live.com/oauth20_authorize.srf?client_id={CLIENT_ID}&scope={SCOPE}&response_type=code&redirect_uri={REDIRECT_URI}&state={STATE}';
+ $this->access_token_url = 'https://login.live.com/oauth20_token.srf';
+ break;
+
+ case 'RightSignature':
+ $this->oauth_version = '1.0a';
+ $this->request_token_url = 'https://rightsignature.com/oauth/request_token';
+ $this->dialog_url = 'https://rightsignature.com/oauth/authorize';
+ $this->access_token_url = 'https://rightsignature.com/oauth/access_token';
+ $this->authorization_header = false;
+ break;
+
+ case 'Scoop.it':
+ $this->oauth_version = '1.0a';
+ $this->request_token_url = 'https://www.scoop.it/oauth/request';
+ $this->dialog_url = 'https://www.scoop.it/oauth/authorize';
+ $this->access_token_url = 'https://www.scoop.it/oauth/access';
+ $this->authorization_header = false;
+ break;
+
+ case 'StockTwits':
+ $this->oauth_version = '2.0';
+ $this->dialog_url = 'https://api.stocktwits.com/api/2/oauth/authorize?client_id={CLIENT_ID}&response_type=code&redirect_uri={REDIRECT_URI}&scope={SCOPE}&state={STATE}';
+ $this->access_token_url = 'https://api.stocktwits.com/api/2/oauth/token';
+ break;
+
+ case 'Tumblr':
+ $this->oauth_version = '1.0a';
+ $this->request_token_url = 'http://www.tumblr.com/oauth/request_token';
+ $this->dialog_url = 'http://www.tumblr.com/oauth/authorize';
+ $this->access_token_url = 'http://www.tumblr.com/oauth/access_token';
+ break;
+
+ case 'Twitter':
+ $this->oauth_version = '1.0a';
+ $this->request_token_url = 'https://api.twitter.com/oauth/request_token';
+ $this->dialog_url = 'https://api.twitter.com/oauth/authenticate';
+ $this->access_token_url = 'https://api.twitter.com/oauth/access_token';
+ $this->url_parameters = true;
+ break;
+
+ case 'XING':
+ $this->oauth_version = '1.0a';
+ $this->request_token_url = 'https://api.xing.com/v1/request_token';
+ $this->dialog_url = 'https://api.xing.com/v1/authorize';
+ $this->access_token_url = 'https://api.xing.com/v1/access_token';
+ $this->authorization_header = false;
+ break;
+
+ case 'Yahoo':
+ $this->oauth_version = '1.0a';
+ $this->request_token_url = 'https://api.login.yahoo.com/oauth/v2/get_request_token';
+ $this->dialog_url = 'https://api.login.yahoo.com/oauth/v2/request_auth';
+ $this->access_token_url = 'https://api.login.yahoo.com/oauth/v2/get_token';
+ $this->authorization_header = false;
+ break;
+
+ default:
+ return($this->SetError($this->server.' is not yet a supported type of OAuth server. Please contact the author Manuel Lemos <mlemos@acm.org> to request adding built-in support to this type of OAuth server.'));
+ }
+ return(true);
+ }
+/*
+{metadocument}
+ </do>
+ </function>
+{/metadocument}
+*/
+
+/*
+{metadocument}
+ <function>
+ <name>Process</name>
+ <type>BOOLEAN</type>
+ <documentation>
+ <purpose>Process the OAuth protocol interaction with the OAuth
+ server.</purpose>
+ <usage>Call this function when you need to retrieve the OAuth access
+ token. Check the <variablelink>access_token</variablelink> to
+ determine if the access token was obtained successfully.</usage>
+ <returnvalue>This function returns <booleanvalue>1</booleanvalue> if
+ the OAuth protocol was processed without errors.</returnvalue>
+ </documentation>
+ <do>
+{/metadocument}
+*/
+ Function Process()
+ {
+ switch(intval($this->oauth_version))
+ {
+ case 1:
+ $one_a = ($this->oauth_version === '1.0a');
+ if($this->debug)
+ $this->OutputDebug('Checking the OAuth token authorization state');
+ if(!$this->GetAccessToken($access_token))
+ return false;
+ if(IsSet($access_token['authorized'])
+ && IsSet($access_token['value']))
+ {
+ $expired = (IsSet($access_token['expiry']) && strcmp($access_token['expiry'], gmstrftime('%Y-%m-%d %H:%M:%S')) <= 0);
+ if(!$access_token['authorized']
+ || $expired)
+ {
+ if($this->debug)
+ {
+ if($expired)
+ $this->OutputDebug('The OAuth token expired on '.$access_token['expiry'].'UTC');
+ else
+ $this->OutputDebug('The OAuth token is not yet authorized');
+ $this->OutputDebug('Checking the OAuth token and verifier');
+ }
+ if(!$this->GetRequestToken($token, $verifier))
+ return false;
+ if(!IsSet($token)
+ || ($one_a
+ && !IsSet($verifier)))
+ {
+ if(!$this->GetRequestDenied($denied))
+ return false;
+ if(IsSet($denied)
+ && $denied === $access_token['value'])
+ {
+ if($this->debug)
+ $this->OutputDebug('The authorization request was denied');
+ $this->authorization_error = 'the request was denied';
+ return true;
+ }
+ else
+ {
+ if($this->debug)
+ $this->OutputDebug('Reset the OAuth token state because token and verifier are not both set');
+ $access_token = array();
+ }
+ }
+ elseif($token !== $access_token['value'])
+ {
+ if($this->debug)
+ $this->OutputDebug('Reset the OAuth token state because token does not match what as previously retrieved');
+ $access_token = array();
+ }
+ else
+ {
+ if(!$this->GetAccessTokenURL($url))
+ return false;
+ $oauth = array(
+ 'oauth_token'=>$token,
+ );
+ if($one_a)
+ $oauth['oauth_verifier'] = $verifier;
+ $this->access_token_secret = $access_token['secret'];
+ $options = array('Resource'=>'OAuth access token');
+ $method = strtoupper($this->token_request_method);
+ switch($method)
+ {
+ case 'GET':
+ break;
+ case 'POST':
+ $options['PostValuesInURI'] = true;
+ break;
+ default:
+ $this->error = $method.' is not a supported method to request tokens';
+ break;
+ }
+ if(!$this->SendAPIRequest($url, $method, array(), $oauth, $options, $response))
+ return false;
+ if(strlen($this->access_token_error))
+ {
+ $this->authorization_error = $this->access_token_error;
+ return true;
+ }
+ if(!IsSet($response['oauth_token'])
+ || !IsSet($response['oauth_token_secret']))
+ {
+ $this->authorization_error= 'it was not returned the access token and secret';
+ return true;
+ }
+ $access_token = array(
+ 'value'=>$response['oauth_token'],
+ 'secret'=>$response['oauth_token_secret'],
+ 'authorized'=>true
+ );
+ if(IsSet($response['oauth_expires_in']))
+ {
+ $expires = $response['oauth_expires_in'];
+ if(strval($expires) !== strval(intval($expires))
+ || $expires <= 0)
+ return($this->SetError('OAuth server did not return a supported type of access token expiry time'));
+ $this->access_token_expiry = gmstrftime('%Y-%m-%d %H:%M:%S', time() + $expires);
+ if($this->debug)
+ $this->OutputDebug('Access token expiry: '.$this->access_token_expiry.' UTC');
+ $access_token['expiry'] = $this->access_token_expiry;
+ }
+ else
+ $this->access_token_expiry = '';
+
+ if(!$this->StoreAccessToken($access_token))
+ return false;
+ if($this->debug)
+ $this->OutputDebug('The OAuth token was authorized');
+ }
+ }
+ elseif($this->debug)
+ $this->OutputDebug('The OAuth token was already authorized');
+ if(IsSet($access_token['authorized'])
+ && $access_token['authorized'])
+ {
+ $this->access_token = $access_token['value'];
+ $this->access_token_secret = $access_token['secret'];
+ return true;
+ }
+ }
+ else
+ {
+ if($this->debug)
+ $this->OutputDebug('The OAuth access token is not set');
+ $access_token = array();
+ }
+ if(!IsSet($access_token['authorized']))
+ {
+ if($this->debug)
+ $this->OutputDebug('Requesting the unauthorized OAuth token');
+ if(!$this->GetRequestTokenURL($url))
+ return false;
+ $url = str_replace('{SCOPE}', UrlEncode($this->scope), $url);
+ if(!$this->GetRedirectURI($redirect_uri))
+ return false;
+ $oauth = array(
+ 'oauth_callback'=>$redirect_uri,
+ );
+ $options = array('Resource'=>'OAuth request token');
+ $method = strtoupper($this->token_request_method);
+ switch($method)
+ {
+ case 'GET':
+ break;
+ case 'POST':
+ $options['PostValuesInURI'] = true;
+ break;
+ default:
+ $this->error = $method.' is not a supported method to request tokens';
+ break;
+ }
+ if(!$this->SendAPIRequest($url, $method, array(), $oauth, $options, $response))
+ return false;
+ if(strlen($this->access_token_error))
+ {
+ $this->authorization_error = $this->access_token_error;
+ return true;
+ }
+ if(!IsSet($response['oauth_token'])
+ || !IsSet($response['oauth_token_secret']))
+ {
+ $this->authorization_error = 'it was not returned the requested token';
+ return true;
+ }
+ $access_token = array(
+ 'value'=>$response['oauth_token'],
+ 'secret'=>$response['oauth_token_secret'],
+ 'authorized'=>false
+ );
+ if(!$this->StoreAccessToken($access_token))
+ return false;
+ }
+ if(!$this->GetDialogURL($url))
+ return false;
+ $url .= (strpos($url, '?') === false ? '?' : '&').'oauth_token='.$access_token['value'];
+ if(!$one_a)
+ {
+ if(!$this->GetRedirectURI($redirect_uri))
+ return false;
+ $url .= '&oauth_callback='.UrlEncode($redirect_uri);
+ }
+ if($this->debug)
+ $this->OutputDebug('Redirecting to OAuth authorize page '.$url);
+ Header('HTTP/1.0 302 OAuth Redirection');
+ Header('Location: '.$url);
+ $this->exit = true;
+ return true;
+
+ case 2:
+ if($this->debug)
+ $this->OutputDebug('Checking if OAuth access token was already retrieved from '.$this->access_token_url);
+ if(!$this->RetrieveToken($valid))
+ return false;
+ if($valid)
+ return true;
+ if($this->debug)
+ $this->OutputDebug('Checking the authentication state in URI '.$_SERVER['REQUEST_URI']);
+ if(!$this->GetStoredState($stored_state))
+ return false;
+ if(strlen($stored_state) == 0)
+ return($this->SetError('it was not set the OAuth state'));
+ if(!$this->GetRequestState($state))
+ return false;
+ if($state === $stored_state)
+ {
+ if($this->debug)
+ $this->OutputDebug('Checking the authentication code');
+ if(!$this->GetRequestCode($code))
+ return false;
+ if(strlen($code) == 0)
+ {
+ if(!$this->GetRequestError($this->authorization_error))
+ return false;
+ if(IsSet($this->authorization_error))
+ {
+ if($this->debug)
+ $this->OutputDebug('Authorization failed with error code '.$this->authorization_error);
+ switch($this->authorization_error)
+ {
+ case 'invalid_request':
+ case 'unauthorized_client':
+ case 'access_denied':
+ case 'unsupported_response_type':
+ case 'invalid_scope':
+ case 'server_error':
+ case 'temporarily_unavailable':
+ case 'user_denied':
+ return true;
+ default:
+ return($this->SetError('it was returned an unknown OAuth error code'));
+ }
+ }
+ return($this->SetError('it was not returned the OAuth dialog code'));
+ }
+ if(!$this->ProcessToken($code, false))
+ return false;
+ }
+ else
+ {
+ if(!$this->GetRedirectURI($redirect_uri))
+ return false;
+ if(strlen($this->append_state_to_redirect_uri))
+ $redirect_uri .= (strpos($redirect_uri, '?') === false ? '?' : '&').$this->append_state_to_redirect_uri.'='.$stored_state;
+ if(!$this->GetDialogURL($url, $redirect_uri, $stored_state))
+ return false;
+ if(strlen($url) == 0)
+ return($this->SetError('it was not set the OAuth dialog URL'));
+ if($this->debug)
+ $this->OutputDebug('Redirecting to OAuth Dialog '.$url);
+ Header('HTTP/1.0 302 OAuth Redirection');
+ Header('Location: '.$url);
+ $this->exit = true;
+ }
+ break;
+
+ default:
+ return($this->SetError($this->oauth_version.' is not a supported version of the OAuth protocol'));
+ }
+ return(true);
+ }
+/*
+{metadocument}
+ </do>
+ </function>
+{/metadocument}
+*/
+
+/*
+{metadocument}
+ <function>
+ <name>Finalize</name>
+ <type>BOOLEAN</type>
+ <documentation>
+ <purpose>Cleanup any resources that may have been used during the
+ OAuth protocol processing or execution of API calls.</purpose>
+ <usage>Always call this function as the last step after calling the
+ functions <functionlink>Process</functionlink> or
+ <functionlink>CallAPI</functionlink>.</usage>
+ <returnvalue>This function returns <booleanvalue>1</booleanvalue> if
+ the function cleaned up any resources successfully.</returnvalue>
+ </documentation>
+ <argument>
+ <name>success</name>
+ <type>BOOLEAN</type>
+ <documentation>
+ <purpose>Pass the last success state returned by the class or any
+ external code processing the class function results.</purpose>
+ </documentation>
+ </argument>
+ <do>
+{/metadocument}
+*/
+ Function Finalize($success)
+ {
+ return($success);
+ }
+/*
+{metadocument}
+ </do>
+ </function>
+{/metadocument}
+*/
+
+/*
+{metadocument}
+ <function>
+ <name>Output</name>
+ <type>VOID</type>
+ <documentation>
+ <purpose>Display the results of the OAuth protocol processing.</purpose>
+ <usage>Only call this function if you are debugging the OAuth
+ authorization process and you need to view what was its
+ results.</usage>
+ </documentation>
+ <do>
+{/metadocument}
+*/
+ Function Output()
+ {
+ if(strlen($this->authorization_error)
+ || strlen($this->access_token_error)
+ || strlen($this->access_token))
+ {
+?>
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
+<html>
+<head>
+<title>OAuth client result</title>
+</head>
+<body>
+<h1>OAuth client result</h1>
+<?php
+ if(strlen($this->authorization_error))
+ {
+?>
+<p>It was not possible to authorize the application.<?php
+ if($this->debug)
+ {
+?>
+<br>Authorization error: <?php echo HtmlSpecialChars($this->authorization_error);
+ }
+?></p>
+<?php
+ }
+ elseif(strlen($this->access_token_error))
+ {
+?>
+<p>It was not possible to use the application access token.
+<?php
+ if($this->debug)
+ {
+?>
+<br>Error: <?php echo HtmlSpecialChars($this->access_token_error);
+ }
+?></p>
+<?php
+ }
+ elseif(strlen($this->access_token))
+ {
+?>
+<p>The application authorization was obtained successfully.
+<?php
+ if($this->debug)
+ {
+?>
+<br>Access token: <?php echo HtmlSpecialChars($this->access_token);
+ if(IsSet($this->access_token_secret))
+ {
+?>
+<br>Access token secret: <?php echo HtmlSpecialChars($this->access_token_secret);
+ }
+ }
+?></p>
+<?php
+ if(strlen($this->access_token_expiry))
+ {
+?>
+<p>Access token expiry: <?php echo $this->access_token_expiry; ?> UTC</p>
+<?php
+ }
+ }
+?>
+</body>
+</html>
+<?php
+ }
+ }
+/*
+{metadocument}
+ </do>
+ </function>
+{/metadocument}
+*/
+
+};
+
+/*
+
+{metadocument}
+</class>
+{/metadocument}
+
+*/
+
+?> \ No newline at end of file
diff --git a/library/oauth/oauth_client_class.html b/library/oauth/oauth_client_class.html
new file mode 100644
index 000000000..690730a7e
--- /dev/null
+++ b/library/oauth/oauth_client_class.html
@@ -0,0 +1,607 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
+<html>
+<head>
+<title>Class: OAuth client</title>
+</head>
+<body>
+<center><h1>Class: OAuth client</h1></center>
+<hr />
+<ul>
+<p><b>Version:</b> <tt>@(#) $Id: oauth_client.php,v 1.58 2013/04/11 09:33:16 mlemos Exp $</tt></p>
+<h2><a name="table_of_contents">Contents</a></h2>
+<ul>
+<li><a href="#2.1.1">Summary</a></li>
+<ul>
+<li><a href="#3.2.0">Name</a></li>
+<li><a href="#3.2.0.0">Author</a></li>
+<li><a href="#3.2.0.1">Copyright</a></li>
+<li><a href="#3.2.0.2">Version</a></li>
+<li><a href="#3.2.0.3">Purpose</a></li>
+<li><a href="#3.2.0.4">Usage</a></li>
+</ul>
+<li><a href="#4.1.1">Variables</a></li>
+<ul>
+<li><a href="#5.2.31">error</a></li>
+<li><a href="#5.2.32">debug</a></li>
+<li><a href="#5.2.33">debug_http</a></li>
+<li><a href="#5.2.34">exit</a></li>
+<li><a href="#5.2.35">debug_output</a></li>
+<li><a href="#5.2.36">debug_prefix</a></li>
+<li><a href="#5.2.37">server</a></li>
+<li><a href="#5.2.38">request_token_url</a></li>
+<li><a href="#5.2.39">dialog_url</a></li>
+<li><a href="#5.2.40">offline_dialog_url</a></li>
+<li><a href="#5.2.41">append_state_to_redirect_uri</a></li>
+<li><a href="#5.2.42">access_token_url</a></li>
+<li><a href="#5.2.43">oauth_version</a></li>
+<li><a href="#5.2.44">url_parameters</a></li>
+<li><a href="#5.2.45">authorization_header</a></li>
+<li><a href="#5.2.46">token_request_method</a></li>
+<li><a href="#5.2.47">signature_method</a></li>
+<li><a href="#5.2.48">redirect_uri</a></li>
+<li><a href="#5.2.49">client_id</a></li>
+<li><a href="#5.2.50">client_secret</a></li>
+<li><a href="#5.2.51">scope</a></li>
+<li><a href="#5.2.52">offline</a></li>
+<li><a href="#5.2.53">access_token</a></li>
+<li><a href="#5.2.54">access_token_secret</a></li>
+<li><a href="#5.2.55">access_token_expiry</a></li>
+<li><a href="#5.2.56">access_token_type</a></li>
+<li><a href="#5.2.57">refresh_token</a></li>
+<li><a href="#5.2.58">access_token_error</a></li>
+<li><a href="#5.2.59">authorization_error</a></li>
+<li><a href="#5.2.60">response_status</a></li>
+</ul>
+<li><a href="#6.1.1">Functions</a></li>
+<ul>
+<li><a href="#7.2.9">StoreAccessToken</a></li>
+<li><a href="#9.2.10">GetAccessToken</a></li>
+<li><a href="#11.2.11">ResetAccessToken</a></li>
+<li><a href="#11.2.12">CallAPI</a></li>
+<li><a href="#13.2.13">Initialize</a></li>
+<li><a href="#13.2.14">Process</a></li>
+<li><a href="#13.2.15">Finalize</a></li>
+<li><a href="#15.2.16">Output</a></li>
+</ul>
+</ul>
+<p><a href="#table_of_contents">Top of the table of contents</a></p>
+</ul>
+<hr />
+<ul>
+<h2><li><a name="2.1.1">Summary</a></li></h2>
+<ul>
+<h3><a name="3.2.0">Name</a></h3>
+<p>OAuth client</p>
+<h3><a name="3.2.0.0">Author</a></h3>
+<p>Manuel Lemos (<a href="mailto:mlemos-at-acm.org">mlemos-at-acm.org</a>)</p>
+<h3><a name="3.2.0.1">Copyright</a></h3>
+<p>Copyright &copy; (C) Manuel Lemos 2012</p>
+<h3><a name="3.2.0.2">Version</a></h3>
+<p>@(#) $Id: oauth_client.php,v 1.58 2013/04/11 09:33:16 mlemos Exp $</p>
+<h3><a name="3.2.0.3">Purpose</a></h3>
+<p>This class serves two main purposes:</p>
+<p> 1) Implement the OAuth protocol to retrieve a token from a server to authorize the access to an API on behalf of the current user.</p>
+<p> 2) Perform calls to a Web services API using a token previously obtained using this class or a token provided some other way by the Web services provider.</p>
+<h3><a name="3.2.0.4">Usage</a></h3>
+<p>Regardless of your purposes, you always need to start calling the class <tt><a href="#function_Initialize">Initialize</a></tt> function after initializing setup variables. After you are done with the class, always call the <tt><a href="#function_Finalize">Finalize</a></tt> function at the end.</p>
+<p> This class supports either OAuth protocol versions 1.0, 1.0a and 2.0. It abstracts the differences between these protocol versions, so the class usage is the same independently of the OAuth version of the server.</p>
+<p> The class also provides built-in support to several popular OAuth servers, so you do not have to manually configure all the details to access those servers. Just set the <tt><a href="#variable_server">server</a></tt> variable to configure the class to access one of the built-in supported servers.</p>
+<p> If you need to access one type of server that is not yet directly supported by the class, you need to configure it explicitly setting the variables: <tt><a href="#variable_oauth_version">oauth_version</a></tt>, <tt><a href="#variable_url_parameters">url_parameters</a></tt>, <tt><a href="#variable_authorization_header">authorization_header</a></tt>, <tt><a href="#variable_request_token_url">request_token_url</a></tt>, <tt><a href="#variable_dialog_url">dialog_url</a></tt>, <tt><a href="#variable_offline_dialog_url">offline_dialog_url</a></tt>, <tt><a href="#variable_append_state_to_redirect_uri">append_state_to_redirect_uri</a></tt> and <tt><a href="#variable_access_token_url">access_token_url</a></tt>.</p>
+<p> Before proceeding to the actual OAuth authorization process, you need to have registered your application with the OAuth server. The registration provides you values to set the variables <tt><a href="#variable_client_id">client_id</a></tt> and <tt><a href="#variable_client_secret">client_secret</a></tt>.</p>
+<p> You also need to set the variables <tt><a href="#variable_redirect_uri">redirect_uri</a></tt> and <tt><a href="#variable_scope">scope</a></tt> before calling the <tt><a href="#function_Process">Process</a></tt> function to make the class perform the necessary interactions with the OAuth server.</p>
+<p> The OAuth protocol involves multiple steps that include redirection to the OAuth server. There it asks permission to the current user to grant your application access to APIs on his/her behalf. When there is a redirection, the class will set the <tt><a href="#variable_exit">exit</a></tt> variable to 1. Then your script should exit immediately without outputting anything.</p>
+<p> When the OAuth access token is successfully obtained, the following variables are set by the class with the obtained values: <tt><a href="#variable_access_token">access_token</a></tt>, <tt><a href="#variable_access_token_secret">access_token_secret</a></tt>, <tt><a href="#variable_access_token_expiry">access_token_expiry</a></tt>, <tt><a href="#variable_access_token_type">access_token_type</a></tt>. You may want to store these values to use them later when calling the server APIs.</p>
+<p> If there was a problem during OAuth authorization process, check the variable <tt><a href="#variable_authorization_error">authorization_error</a></tt> to determine the reason.</p>
+<p> Once you get the access token, you can call the server APIs using the <tt><a href="#function_CallAPI">CallAPI</a></tt> function. Check the <tt><a href="#variable_access_token_error">access_token_error</a></tt> variable to determine if there was an error when trying to to call the API.</p>
+<p> If for some reason the user has revoked the access to your application, you need to ask the user to authorize your application again. First you may need to call the function <tt><a href="#function_ResetAccessToken">ResetAccessToken</a></tt> to reset the value of the access token that may be cached in session variables.</p>
+<p><a href="#table_of_contents">Table of contents</a></p>
+</ul>
+</ul>
+<hr />
+<ul>
+<h2><li><a name="variables"></a><a name="4.1.1">Variables</a></li></h2>
+<ul>
+<li><tt><a href="#variable_error">error</a></tt></li><br />
+<li><tt><a href="#variable_debug">debug</a></tt></li><br />
+<li><tt><a href="#variable_debug_http">debug_http</a></tt></li><br />
+<li><tt><a href="#variable_exit">exit</a></tt></li><br />
+<li><tt><a href="#variable_debug_output">debug_output</a></tt></li><br />
+<li><tt><a href="#variable_debug_prefix">debug_prefix</a></tt></li><br />
+<li><tt><a href="#variable_server">server</a></tt></li><br />
+<li><tt><a href="#variable_request_token_url">request_token_url</a></tt></li><br />
+<li><tt><a href="#variable_dialog_url">dialog_url</a></tt></li><br />
+<li><tt><a href="#variable_offline_dialog_url">offline_dialog_url</a></tt></li><br />
+<li><tt><a href="#variable_append_state_to_redirect_uri">append_state_to_redirect_uri</a></tt></li><br />
+<li><tt><a href="#variable_access_token_url">access_token_url</a></tt></li><br />
+<li><tt><a href="#variable_oauth_version">oauth_version</a></tt></li><br />
+<li><tt><a href="#variable_url_parameters">url_parameters</a></tt></li><br />
+<li><tt><a href="#variable_authorization_header">authorization_header</a></tt></li><br />
+<li><tt><a href="#variable_token_request_method">token_request_method</a></tt></li><br />
+<li><tt><a href="#variable_signature_method">signature_method</a></tt></li><br />
+<li><tt><a href="#variable_redirect_uri">redirect_uri</a></tt></li><br />
+<li><tt><a href="#variable_client_id">client_id</a></tt></li><br />
+<li><tt><a href="#variable_client_secret">client_secret</a></tt></li><br />
+<li><tt><a href="#variable_scope">scope</a></tt></li><br />
+<li><tt><a href="#variable_offline">offline</a></tt></li><br />
+<li><tt><a href="#variable_access_token">access_token</a></tt></li><br />
+<li><tt><a href="#variable_access_token_secret">access_token_secret</a></tt></li><br />
+<li><tt><a href="#variable_access_token_expiry">access_token_expiry</a></tt></li><br />
+<li><tt><a href="#variable_access_token_type">access_token_type</a></tt></li><br />
+<li><tt><a href="#variable_refresh_token">refresh_token</a></tt></li><br />
+<li><tt><a href="#variable_access_token_error">access_token_error</a></tt></li><br />
+<li><tt><a href="#variable_authorization_error">authorization_error</a></tt></li><br />
+<li><tt><a href="#variable_response_status">response_status</a></tt></li><br />
+<p><a href="#table_of_contents">Table of contents</a></p>
+<h3><a name="variable_error"></a><li><a name="5.2.31">error</a></li></h3>
+<h3>Type</h3>
+<p><tt><i>string</i></tt></p>
+<h3>Default value</h3>
+<p><tt>''</tt></p>
+<h3>Purpose</h3>
+<p>Store the message that is returned when an error occurs.</p>
+<h3>Usage</h3>
+<p>Check this variable to understand what happened when a call to any of the class functions has failed.</p>
+<p> This class uses cumulative error handling. This means that if one class functions that may fail is called and this variable was already set to an error message due to a failure in a previous call to the same or other function, the function will also fail and does not do anything.</p>
+<p> This allows programs using this class to safely call several functions that may fail and only check the failure condition after the last function call.</p>
+<p> Just set this variable to an empty string to clear the error condition.</p>
+<p><a href="#variables">Variables</a></p>
+<h3><a name="variable_debug"></a><li><a name="5.2.32">debug</a></li></h3>
+<h3>Type</h3>
+<p><tt><i>bool</i></tt></p>
+<h3>Default value</h3>
+<p><tt>0</tt></p>
+<h3>Purpose</h3>
+<p>Control whether debug output is enabled</p>
+<h3>Usage</h3>
+<p>Set this variable to 1 if you need to check what is going on during calls to the class. When enabled, the debug output goes either to the variable <tt><a href="#variable_debug_output">debug_output</a></tt> and the PHP error log.</p>
+<p><a href="#variables">Variables</a></p>
+<h3><a name="variable_debug_http"></a><li><a name="5.2.33">debug_http</a></li></h3>
+<h3>Type</h3>
+<p><tt><i>bool</i></tt></p>
+<h3>Default value</h3>
+<p><tt>0</tt></p>
+<h3>Purpose</h3>
+<p>Control whether the dialog with the remote Web server should also be logged.</p>
+<h3>Usage</h3>
+<p>Set this variable to 1 if you want to inspect the data exchange with the OAuth server.</p>
+<p><a href="#variables">Variables</a></p>
+<h3><a name="variable_exit"></a><li><a name="5.2.34">exit</a></li></h3>
+<h3>Type</h3>
+<p><tt><i>bool</i></tt></p>
+<h3>Default value</h3>
+<p><tt>0</tt></p>
+<h3>Purpose</h3>
+<p>Determine if the current script should be exited.</p>
+<h3>Usage</h3>
+<p>Check this variable after calling the <tt><a href="#function_Process">Process</a></tt> function and exit your script immediately if the variable is set to 1.</p>
+<p><a href="#variables">Variables</a></p>
+<h3><a name="variable_debug_output"></a><li><a name="5.2.35">debug_output</a></li></h3>
+<h3>Type</h3>
+<p><tt><i>string</i></tt></p>
+<h3>Default value</h3>
+<p><tt>''</tt></p>
+<h3>Purpose</h3>
+<p>Capture the debug output generated by the class</p>
+<h3>Usage</h3>
+<p>Inspect this variable if you need to see what happened during the class function calls.</p>
+<p><a href="#variables">Variables</a></p>
+<h3><a name="variable_debug_prefix"></a><li><a name="5.2.36">debug_prefix</a></li></h3>
+<h3>Type</h3>
+<p><tt><i>string</i></tt></p>
+<h3>Default value</h3>
+<p><tt>'OAuth client: '</tt></p>
+<h3>Purpose</h3>
+<p>Mark the lines of the debug output to identify actions performed by this class.</p>
+<h3>Usage</h3>
+<p>Change this variable if you prefer the debug output lines to be prefixed with a different text.</p>
+<p><a href="#variables">Variables</a></p>
+<h3><a name="variable_server"></a><li><a name="5.2.37">server</a></li></h3>
+<h3>Type</h3>
+<p><tt><i>string</i></tt></p>
+<h3>Default value</h3>
+<p><tt>''</tt></p>
+<h3>Purpose</h3>
+<p>Identify the type of OAuth server to access.</p>
+<h3>Usage</h3>
+<p>The class provides built-in support to several types of OAuth servers. This means that the class can automatically initialize several configuration variables just by setting this server variable.</p>
+<p> Currently it supports the following servers: 'Bitbucket', 'Box', 'Dropbox', 'Eventful', 'Facebook', 'Fitbit', 'Flickr', 'Foursquare', 'github', 'Google', 'Instagram', 'LinkedIn', 'Microsoft', 'Scoop.it', 'StockTwits', 'Tumblr', 'Twitter', 'XING' and 'Yahoo'. Please contact the author if you would like to ask to add built-in support for other types of OAuth servers.</p>
+<p> If you want to access other types of OAuth servers that are not yet supported, set this variable to an empty string and configure other variables with values specific to those servers.</p>
+<p><a href="#variables">Variables</a></p>
+<h3><a name="variable_request_token_url"></a><li><a name="5.2.38">request_token_url</a></li></h3>
+<h3>Type</h3>
+<p><tt><i>string</i></tt></p>
+<h3>Default value</h3>
+<p><tt>''</tt></p>
+<h3>Purpose</h3>
+<p>URL of the OAuth server to request the initial token for OAuth 1.0 and 1.0a servers.</p>
+<h3>Usage</h3>
+<p>Set this variable to the OAuth request token URL when you are not accessing one of the built-in supported OAuth servers.</p>
+<p> For OAuth 1.0 and 1.0a servers, the request token URL can have certain marks that will act as template placeholders which will be replaced with given values before requesting the authorization token. Currently it supports the following placeholder marks:</p>
+<p> {SCOPE} - scope of the requested permissions to the granted by the OAuth server with the user permissions</p>
+<p><a href="#variables">Variables</a></p>
+<h3><a name="variable_dialog_url"></a><li><a name="5.2.39">dialog_url</a></li></h3>
+<h3>Type</h3>
+<p><tt><i>string</i></tt></p>
+<h3>Default value</h3>
+<p><tt>''</tt></p>
+<h3>Purpose</h3>
+<p>URL of the OAuth server to redirect the browser so the user can grant access to your application.</p>
+<h3>Usage</h3>
+<p>Set this variable to the OAuth request token URL when you are not accessing one of the built-in supported OAuth servers.</p>
+<p> For certain servers, the dialog URL can have certain marks that will act as template placeholders which will be replaced with values defined before redirecting the users browser. Currently it supports the following placeholder marks:</p>
+<p> {REDIRECT_URI} - URL to redirect when returning from the OAuth server authorization page</p>
+<p> {CLIENT_ID} - client application identifier registered at the server</p>
+<p> {SCOPE} - scope of the requested permissions to the granted by the OAuth server with the user permissions</p>
+<p> {STATE} - identifier of the OAuth session state</p>
+<p><a href="#variables">Variables</a></p>
+<h3><a name="variable_offline_dialog_url"></a><li><a name="5.2.40">offline_dialog_url</a></li></h3>
+<h3>Type</h3>
+<p><tt><i>string</i></tt></p>
+<h3>Default value</h3>
+<p><tt>''</tt></p>
+<h3>Purpose</h3>
+<p>URL of the OAuth server to redirect the browser so the user can grant access to your application when offline access is requested.</p>
+<h3>Usage</h3>
+<p>Set this variable to the OAuth request token URL when you are not accessing one of the built-in supported OAuth servers and the OAuth server supports offline access.</p>
+<p> It should have the same format as the <tt><a href="#variable_dialog_url">dialog_url</a></tt> variable.</p>
+<p><a href="#variables">Variables</a></p>
+<h3><a name="variable_append_state_to_redirect_uri"></a><li><a name="5.2.41">append_state_to_redirect_uri</a></li></h3>
+<h3>Type</h3>
+<p><tt><i>string</i></tt></p>
+<h3>Default value</h3>
+<p><tt>''</tt></p>
+<h3>Purpose</h3>
+<p>Pass the OAuth session state in a variable with a different name to work around implementation bugs of certain OAuth servers</p>
+<h3>Usage</h3>
+<p>Set this variable when you are not accessing one of the built-in supported OAuth servers if the OAuth server has a bug that makes it not pass back the OAuth state identifier in a request variable named state.</p>
+<p><a href="#variables">Variables</a></p>
+<h3><a name="variable_access_token_url"></a><li><a name="5.2.42">access_token_url</a></li></h3>
+<h3>Type</h3>
+<p><tt><i>string</i></tt></p>
+<h3>Default value</h3>
+<p><tt>''</tt></p>
+<h3>Purpose</h3>
+<p>OAuth server URL that will return the access token URL.</p>
+<h3>Usage</h3>
+<p>Set this variable to the OAuth access token URL when you are not accessing one of the built-in supported OAuth servers.</p>
+<p><a href="#variables">Variables</a></p>
+<h3><a name="variable_oauth_version"></a><li><a name="5.2.43">oauth_version</a></li></h3>
+<h3>Type</h3>
+<p><tt><i>string</i></tt></p>
+<h3>Default value</h3>
+<p><tt>'2.0'</tt></p>
+<h3>Purpose</h3>
+<p>Version of the protocol version supported by the OAuth server.</p>
+<h3>Usage</h3>
+<p>Set this variable to the OAuth server protocol version when you are not accessing one of the built-in supported OAuth servers.</p>
+<p><a href="#variables">Variables</a></p>
+<h3><a name="variable_url_parameters"></a><li><a name="5.2.44">url_parameters</a></li></h3>
+<h3>Type</h3>
+<p><tt><i>bool</i></tt></p>
+<h3>Default value</h3>
+<p><tt>0</tt></p>
+<h3>Purpose</h3>
+<p>Determine if the API call parameters should be moved to the call URL.</p>
+<h3>Usage</h3>
+<p>Set this variable to 1 if the API you need to call requires that the call parameters always be passed via the API URL.</p>
+<p><a href="#variables">Variables</a></p>
+<h3><a name="variable_authorization_header"></a><li><a name="5.2.45">authorization_header</a></li></h3>
+<h3>Type</h3>
+<p><tt><i>bool</i></tt></p>
+<h3>Default value</h3>
+<p><tt>1</tt></p>
+<h3>Purpose</h3>
+<p>Determine if the OAuth parameters should be passed via HTTP Authorization request header.</p>
+<h3>Usage</h3>
+<p>Set this variable to 1 if the OAuth server requires that the OAuth parameters be passed using the HTTP Authorization instead of the request URI parameters.</p>
+<p><a href="#variables">Variables</a></p>
+<h3><a name="variable_token_request_method"></a><li><a name="5.2.46">token_request_method</a></li></h3>
+<h3>Type</h3>
+<p><tt><i>string</i></tt></p>
+<h3>Default value</h3>
+<p><tt>'GET'</tt></p>
+<h3>Purpose</h3>
+<p>Define the HTTP method that should be used to request tokens from the server.</p>
+<h3>Usage</h3>
+<p>Set this variable to 'POST' if the OAuth server does not support requesting tokens using the HTTP GET method.</p>
+<p><a href="#variables">Variables</a></p>
+<h3><a name="variable_signature_method"></a><li><a name="5.2.47">signature_method</a></li></h3>
+<h3>Type</h3>
+<p><tt><i>string</i></tt></p>
+<h3>Default value</h3>
+<p><tt>'HMAC-SHA1'</tt></p>
+<h3>Purpose</h3>
+<p>Define the method to generate the signature for API request parameters values.</p>
+<h3>Usage</h3>
+<p>Currently it supports 'PLAINTEXT' and 'HMAC-SHA1'.</p>
+<p><a href="#variables">Variables</a></p>
+<h3><a name="variable_redirect_uri"></a><li><a name="5.2.48">redirect_uri</a></li></h3>
+<h3>Type</h3>
+<p><tt><i>string</i></tt></p>
+<h3>Default value</h3>
+<p><tt>''</tt></p>
+<h3>Purpose</h3>
+<p>URL of the current script page that is calling this class</p>
+<h3>Usage</h3>
+<p>Set this variable to the current script page URL before proceeding the the OAuth authorization process.</p>
+<p><a href="#variables">Variables</a></p>
+<h3><a name="variable_client_id"></a><li><a name="5.2.49">client_id</a></li></h3>
+<h3>Type</h3>
+<p><tt><i>string</i></tt></p>
+<h3>Default value</h3>
+<p><tt>''</tt></p>
+<h3>Purpose</h3>
+<p>Identifier of your application registered with the OAuth server</p>
+<h3>Usage</h3>
+<p>Set this variable to the application identifier that is provided by the OAuth server when you register the application.</p>
+<p><a href="#variables">Variables</a></p>
+<h3><a name="variable_client_secret"></a><li><a name="5.2.50">client_secret</a></li></h3>
+<h3>Type</h3>
+<p><tt><i>string</i></tt></p>
+<h3>Default value</h3>
+<p><tt>''</tt></p>
+<h3>Purpose</h3>
+<p>Secret value assigned to your application when it is registered with the OAuth server.</p>
+<h3>Usage</h3>
+<p>Set this variable to the application secret that is provided by the OAuth server when you register the application.</p>
+<p><a href="#variables">Variables</a></p>
+<h3><a name="variable_scope"></a><li><a name="5.2.51">scope</a></li></h3>
+<h3>Type</h3>
+<p><tt><i>string</i></tt></p>
+<h3>Default value</h3>
+<p><tt>''</tt></p>
+<h3>Purpose</h3>
+<p>Permissions that your application needs to call the OAuth server APIs</p>
+<h3>Usage</h3>
+<p>Check the documentation of the APIs that your application needs to call to set this variable with the identifiers of the permissions that the user needs to grant to your application.</p>
+<p><a href="#variables">Variables</a></p>
+<h3><a name="variable_offline"></a><li><a name="5.2.52">offline</a></li></h3>
+<h3>Type</h3>
+<p><tt><i>bool</i></tt></p>
+<h3>Default value</h3>
+<p><tt>0</tt></p>
+<h3>Purpose</h3>
+<p>Specify whether it will be necessary to call the API when the user is not present and the server supports renewing expired access tokens using refresh tokens.</p>
+<h3>Usage</h3>
+<p>Set this variable to 1 if the server supports renewing expired tokens automatically when the user is not present.</p>
+<p><a href="#variables">Variables</a></p>
+<h3><a name="variable_access_token"></a><li><a name="5.2.53">access_token</a></li></h3>
+<h3>Type</h3>
+<p><tt><i>string</i></tt></p>
+<h3>Default value</h3>
+<p><tt>''</tt></p>
+<h3>Purpose</h3>
+<p>Access token obtained from the OAuth server</p>
+<h3>Usage</h3>
+<p>Check this variable to get the obtained access token upon successful OAuth authorization.</p>
+<p><a href="#variables">Variables</a></p>
+<h3><a name="variable_access_token_secret"></a><li><a name="5.2.54">access_token_secret</a></li></h3>
+<h3>Type</h3>
+<p><tt><i>string</i></tt></p>
+<h3>Default value</h3>
+<p><tt>''</tt></p>
+<h3>Purpose</h3>
+<p>Access token secret obtained from the OAuth server</p>
+<h3>Usage</h3>
+<p>If the OAuth protocol version is 1.0 or 1.0a, check this variable to get the obtained access token secret upon successful OAuth authorization.</p>
+<p><a href="#variables">Variables</a></p>
+<h3><a name="variable_access_token_expiry"></a><li><a name="5.2.55">access_token_expiry</a></li></h3>
+<h3>Type</h3>
+<p><tt><i>string</i></tt></p>
+<h3>Default value</h3>
+<p><tt>''</tt></p>
+<h3>Purpose</h3>
+<p>Timestamp of the expiry of the access token obtained from the OAuth server.</p>
+<h3>Usage</h3>
+<p>Check this variable to get the obtained access token expiry time upon successful OAuth authorization. If this variable is empty, that means no expiry time was set.</p>
+<p><a href="#variables">Variables</a></p>
+<h3><a name="variable_access_token_type"></a><li><a name="5.2.56">access_token_type</a></li></h3>
+<h3>Type</h3>
+<p><tt><i>string</i></tt></p>
+<h3>Default value</h3>
+<p><tt>''</tt></p>
+<h3>Purpose</h3>
+<p>Type of access token obtained from the OAuth server.</p>
+<h3>Usage</h3>
+<p>Check this variable to get the obtained access token type upon successful OAuth authorization.</p>
+<p><a href="#variables">Variables</a></p>
+<h3><a name="variable_refresh_token"></a><li><a name="5.2.57">refresh_token</a></li></h3>
+<h3>Type</h3>
+<p><tt><i>string</i></tt></p>
+<h3>Default value</h3>
+<p><tt>''</tt></p>
+<h3>Purpose</h3>
+<p>Refresh token obtained from the OAuth server</p>
+<h3>Usage</h3>
+<p>Check this variable to get the obtained refresh token upon successful OAuth authorization.</p>
+<p><a href="#variables">Variables</a></p>
+<h3><a name="variable_access_token_error"></a><li><a name="5.2.58">access_token_error</a></li></h3>
+<h3>Type</h3>
+<p><tt><i>string</i></tt></p>
+<h3>Default value</h3>
+<p><tt>''</tt></p>
+<h3>Purpose</h3>
+<p>Error message returned when a call to the API fails.</p>
+<h3>Usage</h3>
+<p>Check this variable to determine if there was an error while calling the Web services API when using the <tt><a href="#function_CallAPI">CallAPI</a></tt> function.</p>
+<p><a href="#variables">Variables</a></p>
+<h3><a name="variable_authorization_error"></a><li><a name="5.2.59">authorization_error</a></li></h3>
+<h3>Type</h3>
+<p><tt><i>string</i></tt></p>
+<h3>Default value</h3>
+<p><tt>''</tt></p>
+<h3>Purpose</h3>
+<p>Error message returned when it was not possible to obtain an OAuth access token</p>
+<h3>Usage</h3>
+<p>Check this variable to determine if there was an error while trying to obtain the OAuth access token.</p>
+<p><a href="#variables">Variables</a></p>
+<h3><a name="variable_response_status"></a><li><a name="5.2.60">response_status</a></li></h3>
+<h3>Type</h3>
+<p><tt><i>int</i></tt></p>
+<h3>Default value</h3>
+<p><tt>0</tt></p>
+<h3>Purpose</h3>
+<p>HTTP response status returned by the server when calling an API</p>
+<h3>Usage</h3>
+<p>Check this variable after calling the <tt><a href="#function_CallAPI">CallAPI</a></tt> function if the API calls and you need to process the error depending the response status. 200 means no error. 0 means the server response was not retrieved.</p>
+<p><a href="#variables">Variables</a></p>
+<p><a href="#table_of_contents">Table of contents</a></p>
+</ul>
+</ul>
+<hr />
+<ul>
+<h2><li><a name="functions"></a><a name="6.1.1">Functions</a></li></h2>
+<ul>
+<li><tt><a href="#function_StoreAccessToken">StoreAccessToken</a></tt></li><br />
+<li><tt><a href="#function_GetAccessToken">GetAccessToken</a></tt></li><br />
+<li><tt><a href="#function_ResetAccessToken">ResetAccessToken</a></tt></li><br />
+<li><tt><a href="#function_CallAPI">CallAPI</a></tt></li><br />
+<li><tt><a href="#function_Initialize">Initialize</a></tt></li><br />
+<li><tt><a href="#function_Process">Process</a></tt></li><br />
+<li><tt><a href="#function_Finalize">Finalize</a></tt></li><br />
+<li><tt><a href="#function_Output">Output</a></tt></li><br />
+<p><a href="#table_of_contents">Table of contents</a></p>
+<h3><a name="function_StoreAccessToken"></a><li><a name="7.2.9">StoreAccessToken</a></li></h3>
+<h3>Synopsis</h3>
+<p><tt><i>bool</i> StoreAccessToken(</tt><ul>
+<tt>(input and output) <i>array</i> </tt><tt><a href="#argument_StoreAccessToken_access_token">access_token</a></tt></ul>
+<tt>)</tt></p>
+<h3>Purpose</h3>
+<p>Store the values of the access token when it is succefully retrieved from the OAuth server.</p>
+<h3>Usage</h3>
+<p>This function is meant to be only be called from inside the class. By default it stores access tokens in a session variable named 'OAUTH_ACCESS_TOKEN'.</p>
+<p> Actual implementations should create a sub-class and override this function to make the access token values be stored in other types of containers, like for instance databases.</p>
+<h3>Arguments</h3>
+<ul>
+<p><tt><b><a name="argument_StoreAccessToken_access_token">access_token</a></b></tt> - Associative array with properties of the access token. The array may have set the following properties:</p>
+<p> 'value': string value of the access token</p>
+<p> 'authorized': boolean value that determines if the access token was obtained successfully</p>
+<p> 'expiry': (optional) timestamp in ISO format relative to UTC time zone of the access token expiry time</p>
+<p> 'type': (optional) type of OAuth token that may determine how it should be used when sending API call requests.</p>
+<p> 'refresh': (optional) token that some servers may set to allowing refreshing access tokens when they expire.</p>
+</ul>
+<h3>Return value</h3>
+<p>This function should return 1 if the access token was stored successfully.</p>
+<p><a href="#functions">Functions</a></p>
+<h3><a name="function_GetAccessToken"></a><li><a name="9.2.10">GetAccessToken</a></li></h3>
+<h3>Synopsis</h3>
+<p><tt><i>bool</i> GetAccessToken(</tt><ul>
+<tt>(output) <i>string &amp;</i> </tt><tt><a href="#argument_GetAccessToken_access_token">access_token</a></tt></ul>
+<tt>)</tt></p>
+<h3>Purpose</h3>
+<p>Retrieve the OAuth access token if it was already previously stored by the <tt><a href="#function_StoreAccessToken">StoreAccessToken</a></tt> function.</p>
+<h3>Usage</h3>
+<p>This function is meant to be only be called from inside the class. By default it retrieves access tokens stored in a session variable named 'OAUTH_ACCESS_TOKEN'.</p>
+<p> Actual implementations should create a sub-class and override this function to retrieve the access token values from other types of containers, like for instance databases.</p>
+<h3>Arguments</h3>
+<ul>
+<p><tt><b><a name="argument_GetAccessToken_access_token">access_token</a></b></tt> - Return the properties of the access token in an associative array. If the access token was not yet stored, it returns an empty array. Otherwise, the properties it may return are the same that may be passed to the <tt><a href="#function_StoreAccessToken">StoreAccessToken</a></tt>.</p>
+</ul>
+<h3>Return value</h3>
+<p>This function should return 1 if the access token was retrieved successfully.</p>
+<p><a href="#functions">Functions</a></p>
+<h3><a name="function_ResetAccessToken"></a><li><a name="11.2.11">ResetAccessToken</a></li></h3>
+<h3>Synopsis</h3>
+<p><tt><i>bool</i> ResetAccessToken(</tt><tt>)</tt></p>
+<h3>Purpose</h3>
+<p>Reset the access token to a state back when the user has not yet authorized the access to the OAuth server API.</p>
+<h3>Usage</h3>
+<p>Call this function if for some reason the token to access the API was revoked and you need to ask the user to authorize the access again.</p>
+<p> By default the class stores and retrieves access tokens in a session variable named 'OAUTH_ACCESS_TOKEN'.</p>
+<p> This function must be called when the user is accessing your site pages, so it can reset the information stored in session variables that cache the state of a previously retrieved access token.</p>
+<p> Actual implementations should create a sub-class and override this function to reset the access token state when it is stored in other types of containers, like for instance databases.</p>
+<h3>Return value</h3>
+<p>This function should return 1 if the access token was resetted successfully.</p>
+<p><a href="#functions">Functions</a></p>
+<h3><a name="function_CallAPI"></a><li><a name="11.2.12">CallAPI</a></li></h3>
+<h3>Synopsis</h3>
+<p><tt><i>bool</i> CallAPI(</tt><ul>
+<tt><i>string</i> </tt><tt><a href="#argument_CallAPI_url">url</a></tt><tt>,</tt><br />
+<tt><i>string</i> </tt><tt><a href="#argument_CallAPI_method">method</a></tt><tt>,</tt><br />
+<tt>(input and output) <i>array</i> </tt><tt><a href="#argument_CallAPI_parameters">parameters</a></tt><tt>,</tt><br />
+<tt>(input and output) <i>array</i> </tt><tt><a href="#argument_CallAPI_options">options</a></tt><tt>,</tt><br />
+<tt>(output) <i>string &amp;</i> </tt><tt><a href="#argument_CallAPI_response">response</a></tt></ul>
+<tt>)</tt></p>
+<h3>Purpose</h3>
+<p>Send a HTTP request to the Web services API using a previously obtained authorization token via OAuth.</p>
+<h3>Usage</h3>
+<p>This function can be used to call an API after having previously obtained an access token through the OAuth protocol using the <tt><a href="#function_Process">Process</a></tt> function, or by directly setting the variables <tt><a href="#variable_access_token">access_token</a></tt>, as well as <tt><a href="#variable_access_token_secret">access_token_secret</a></tt> in case of using OAuth 1.0 or 1.0a services.</p>
+<h3>Arguments</h3>
+<ul>
+<p><tt><b><a name="argument_CallAPI_url">url</a></b></tt> - URL of the API where the HTTP request will be sent.</p>
+<p><tt><b><a name="argument_CallAPI_method">method</a></b></tt> - HTTP method that will be used to send the request. It can be 'GET', 'POST', 'DELETE', 'PUT', etc..</p>
+<p><tt><b><a name="argument_CallAPI_parameters">parameters</a></b></tt> - Associative array with the names and values of the API call request parameters.</p>
+<p><tt><b><a name="argument_CallAPI_options">options</a></b></tt> - Associative array with additional options to configure the request. Currently it supports the following options:</p>
+<p> '2Legged': boolean option that determines if the API request should be 2 legged. The default value is <tt>0</tt>.</p>
+<p> 'Accept': content type value of the Accept HTTP header to be sent in the API call HTTP request. Some APIs require that a certain value be sent to specify which version of the API is being called. The default value is '*/*'.</p>
+<p> 'ConvertObjects': boolean option that determines if objects should be converted into arrays when the response is returned in JSON format. The default value is 0.</p>
+<p> 'FailOnAccessError': boolean option that determines if this functions should fail when the server response status is not between 200 and 299. The default value is 0.</p>
+<p> 'Files': associative array with details of the parameters that must be passed as file uploads. The array indexes must have the same name of the parameters to be sent as files. The respective array entry values must also be associative arrays with the parameters for each file. Currently it supports the following parameters:</p>
+<p> - <tt>Type</tt> - defines how the parameter value should be treated. It can be <tt>'FileName'</tt> if the parameter value is is the name of a local file to be uploaded. It may also be <tt>'Data'</tt> if the parameter value is the actual data of the file to be uploaded.</p>
+<p> - Default: <tt>'FileName'</tt></p>
+<p> - <tt>ContentType</tt> - MIME value of the content type of the file. It can be <tt>'automatic/name'</tt> if the content type should be determine from the file name extension.</p>
+<p> - Default: <tt>'automatic/name'</tt></p>
+<p> 'PostValuesInURI': boolean option to determine that a POST request should pass the request values in the URI. The default value is 0.</p>
+<p> 'FollowRedirection': limit number of times that HTTP response redirects will be followed. If it is set to 0, redirection responses fail in error. The default value is 0.</p>
+<p> 'RequestBody': request body data of a custom type. The 'RequestContentType' option must be specified, so the 'RequestBody' option is considered.</p>
+<p> 'RequestContentType': content type that should be used to send the request values. It can be either 'application/x-www-form-urlencoded' for sending values like from Web forms, or 'application/json' for sending the values encoded in JSON format. Other types are accepted if the 'RequestBody' option is specified. The default value is 'application/x-www-form-urlencoded'.</p>
+<p> 'RequestBody': request body data of a custom type. The 'RequestContentType' option must be specified, so the 'RequestBody' option is considered.</p>
+<p> 'Resource': string with a label that will be used in the error messages and debug log entries to identify what operation the request is performing. The default value is 'API call'.</p>
+<p> 'ResponseContentType': content type that should be considered when decoding the API request response. This overrides the <tt>Content-Type</tt> header returned by the server. If the content type is 'application/x-www-form-urlencoded' the function will parse the data returning an array of key-value pairs. If the content type is 'application/json' the response will be decode as a JSON-encoded data type. Other content type values will make the function return the original response value as it was returned from the server. The default value for this option is to use what the server returned in the <tt>Content-Type</tt> header.</p>
+<p><tt><b><a name="argument_CallAPI_response">response</a></b></tt> - Return the value of the API response. If the value is JSON encoded, this function will decode it and return the value converted to respective types. If the value is form encoded, this function will decode the response and return it as an array. Otherwise, the class will return the value as a string.</p>
+</ul>
+<h3>Return value</h3>
+<p>This function returns 1 if the call was done successfully.</p>
+<p><a href="#functions">Functions</a></p>
+<h3><a name="function_Initialize"></a><li><a name="13.2.13">Initialize</a></li></h3>
+<h3>Synopsis</h3>
+<p><tt><i>bool</i> Initialize(</tt><tt>)</tt></p>
+<h3>Purpose</h3>
+<p>Initialize the class variables and internal state. It must be called before calling other class functions.</p>
+<h3>Usage</h3>
+<p>Set the <tt><a href="#variable_server">server</a></tt> variable before calling this function to let it initialize the class variables to work with the specified server type. Alternatively, you can set other class variables manually to make it work with servers that are not yet built-in supported.</p>
+<h3>Return value</h3>
+<p>This function returns 1 if it was able to successfully initialize the class for the specified server type.</p>
+<p><a href="#functions">Functions</a></p>
+<h3><a name="function_Process"></a><li><a name="13.2.14">Process</a></li></h3>
+<h3>Synopsis</h3>
+<p><tt><i>bool</i> Process(</tt><tt>)</tt></p>
+<h3>Purpose</h3>
+<p>Process the OAuth protocol interaction with the OAuth server.</p>
+<h3>Usage</h3>
+<p>Call this function when you need to retrieve the OAuth access token. Check the <tt><a href="#variable_access_token">access_token</a></tt> to determine if the access token was obtained successfully.</p>
+<h3>Return value</h3>
+<p>This function returns 1 if the OAuth protocol was processed without errors.</p>
+<p><a href="#functions">Functions</a></p>
+<h3><a name="function_Finalize"></a><li><a name="13.2.15">Finalize</a></li></h3>
+<h3>Synopsis</h3>
+<p><tt><i>bool</i> Finalize(</tt><ul>
+<tt><i>bool</i> </tt><tt><a href="#argument_Finalize_success">success</a></tt></ul>
+<tt>)</tt></p>
+<h3>Purpose</h3>
+<p>Cleanup any resources that may have been used during the OAuth protocol processing or execution of API calls.</p>
+<h3>Usage</h3>
+<p>Always call this function as the last step after calling the functions <tt><a href="#function_Process">Process</a></tt> or <tt><a href="#function_CallAPI">CallAPI</a></tt>.</p>
+<h3>Arguments</h3>
+<ul>
+<p><tt><b><a name="argument_Finalize_success">success</a></b></tt> - Pass the last success state returned by the class or any external code processing the class function results.</p>
+</ul>
+<h3>Return value</h3>
+<p>This function returns 1 if the function cleaned up any resources successfully.</p>
+<p><a href="#functions">Functions</a></p>
+<h3><a name="function_Output"></a><li><a name="15.2.16">Output</a></li></h3>
+<h3>Synopsis</h3>
+<p><tt><i></i> Output(</tt><tt>)</tt></p>
+<h3>Purpose</h3>
+<p>Display the results of the OAuth protocol processing.</p>
+<h3>Usage</h3>
+<p>Only call this function if you are debugging the OAuth authorization process and you need to view what was its results.</p>
+<p><a href="#functions">Functions</a></p>
+<p><a href="#table_of_contents">Table of contents</a></p>
+</ul>
+</ul>
+
+<hr />
+<address>Manuel Lemos (<a href="mailto:mlemos-at-acm.org">mlemos-at-acm.org</a>)</address>
+</body>
+</html>
diff --git a/library/stylish_select/index.html b/library/stylish_select/index.html
new file mode 100644
index 000000000..b711c09f6
--- /dev/null
+++ b/library/stylish_select/index.html
@@ -0,0 +1,314 @@
+<!DOCTYPE html>
+<html>
+ <head>
+ <title>jQuery Stylish Select 0.4.9 plugin examples</title>
+ <meta http-equiv="content-type" content="text/html;charset=utf-8" />
+ <link rel="stylesheet" type="text/css" href="stylish-select.css" />
+
+ <script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.7/jquery.min.js"></script>
+ <script src="jquery.stylish-select.js" type="text/javascript"></script>
+
+ <script type="text/javascript">
+ $(function(){
+
+ $('#my-dropdown, #my-dropdown2, #my-dropdown3, #my-dropdown4, #my-dropdown5, #my-dropdown6, #my-dropdown7, #my-dropdown8, #my-dropdown9').sSelect();
+
+ //set max height
+ $('#my-dropdownCountries').sSelect({ddMaxHeight: '300px'});
+
+ //set value on click
+ $('#setVal').click(function(){
+ $('#my-dropdown5').getSetSSValue('4');
+ });
+
+ //get value on click
+ $('#getVal').click(function(){
+ alert('The value is: '+$('#my-dropdown5').getSetSSValue());
+ });
+
+ //alert change event
+ $('#my-dropdownChange').sSelect().change(function(){alert('changed')});
+
+ //add options to select and update
+ $('#addOptions').click(function(){
+ $('#my-dropdown6').append('<option value="newOpt">New Option</option>').resetSS();
+ return false;
+ });
+
+ });
+ </script>
+
+ <style type="text/css">
+ body {font-family:Arial, Helvetica, sans-serif; font-size:12px;}
+ .selCont {clear:both; margin-bottom:20px; padding-bottom:40px; float:left; border-bottom:dotted 1px #000; width:600px;}
+ </style>
+
+ </head>
+ <body>
+ <form action="" method="post">
+ <h1>Stylish Select 0.4.9</h1>
+ <h2>A cross-browser, accessible alternative to the standard form element which can be fully customised with CSS</h2>
+ <p>Stylish Select attempts to replicate the functionality of the browser default select box as closely as possible with support for keyboard navigation, and intelligent positioning.</p>
+ <p>Stylish Select aims to have a minimal code footprint and weighs in at just over 3KB when minified.</p>
+ <a href="http://github.com/scottdarby/Stylish-Select">Get latest source code from GitHub</a>
+ <h2>Usage</h2>
+ <p>First, include the stylesheet, jQuery and the stylish select .js file in your html head tag.</p>
+ <p>The plugin can be used to replace any select with the following:</p>
+ <pre class="brush: javascript">
+$(document).ready(function(){
+$('#my-dropdown').sSelect();
+});
+ </pre>
+ <div class="selCont">
+ <h2>Simplest example, option selected by default</h2>
+ <p>You can use the alphabetical and arrow keys to navigate the list as you would a browser default select.</p>
+ <select id="my-dropdown" name="my-dropdown">
+ <option value="1">A cappella</option>
+ <option value="test">Acid Jazz</option>
+ <option value="3">Big Band</option>
+ <option value="4">Big Beat</option>
+ <option value="5">Cakewalk</option>
+ <option value="6">Calenda</option>
+ <option value="7">Dark ambient</option>
+ <option value="8">Dark cabaret</option>
+ <option value="9">Chalk &amp; Cheese</option>
+ </select>
+ </div>
+ <div class="selCont">
+ <h2>Change event</h2>
+ <p>Stylish Select alters the original select on the page, so you can access it's change event:</p>
+ <pre class="brush: javascript">
+//change event
+$('#my-dropdownChange').sSelect().change(function(){alert('changed')});
+ </pre>
+ <select id="my-dropdownChange" name="my-dropdown">
+ <option value="1">A cappella</option>
+ <option value="test">Acid Jazz</option>
+ <option value="3" selected="selected">Big Band</option>
+ <option value="4">Big Beat</option>
+ <option value="5">Cakewalk</option>
+ <option value="6">Calenda</option>
+ <option value="7">Dark ambient</option>
+ <option value="8">Dark cabaret</option>
+ </select>
+ </div>
+ <div class="selCont">
+ <h2>Grouped options</h2>
+ <p>Stylish Select supports optgroups and also optgroups and options together.</p>
+ <select id="my-dropdown2" name="my-dropdown">
+ <option>Please select</option>
+ <optgroup label="Tool">
+ <option value="1">Opiate</option>
+ <option value="2">Undertow</option>
+ <option value="3">Aenima</option>
+ <option value="4">Lateralus</option>
+ </optgroup>
+ <optgroup label="A Tribe Called Quest">
+ <option value="5">People's Instinctive Travels and the Paths of Rhythm</option>
+ <option value="6">The Low End Theory</option>
+ <option selected="selected" value="7">Midnight Marauders</option>
+ <option value="8">Beats, Rhymes and Life</option>
+ <option value="9">The Love Movement</option>
+ </optgroup>
+ </select>
+ </div>
+ <div id="get-set" class="selCont">
+ <h2>Getting/setting the value</h2>
+ <pre class="brush: javascript">
+//set value
+$('#setVal').click(function(){
+$('#my-dropdown5').getSetSSValue(4);
+});
+
+//get value
+$('#getVal').click(function(){
+alert('The value is: '+$('#my-dropdown5').getSetSSValue());
+});
+ </pre>
+ <p><a id="setVal" href="javascript:void(0)">Set value to 4</a></p>
+ <p><a id="getVal" href="javascript:void(0)">Get value</a></p>
+ <select id="my-dropdown5" name="my-dropdown">
+ <option value="1">Lorem</option>
+ <option value="2">Ipsum</option>
+ <option value="3">Dolor</option>
+ <option value="4">Sit</option>
+ <option value="5">Amet</option>
+ <option value="6">Consectetuer</option>
+ <option value="7">Adipiscing</option>
+ </select>
+ </div>
+ <div id="update" class="selCont">
+ <h2>Add new options to Stylish Select</h2>
+ <pre class="brush: javascript">
+//add options to select and update
+$('#addOptions').click(function(){
+$('#my-dropdown6').append('&lt;option value="newOpt">New Option&lt;/option&gt;').resetSS();
+});
+ </pre>
+ <p>If you add or remove options from the initial select element on the page, be sure to call the .resetSS() method on the select to update the Stylish Select replacement.</p>
+
+ <p><a id="addOptions" href="javascript:void(0)">Add new options to select and update</a></p>
+ <select id="my-dropdown6" name="my-dropdown">
+ <option value="1">Lorem</option>
+ <option value="2">Ipsum</option>
+ <option value="3">Dolor</option>
+ <option value="4">Sit</option>
+ <option value="5">Amet</option>
+ <option value="6">Consectetuer</option>
+ <option value="7">Adipiscing</option>
+ <option value="7">Adipiscing</option>
+ <option value="7">Adipiscing</option>
+ <option value="7">Adipiscing</option>
+ </select>
+ </div>
+ <div class="selCont">
+ <h2>Max-height for large lists</h2>
+ <pre class="brush: javascript">
+$('#my-dropdown').sSelect({ddMaxHeight: '300px'});
+ </pre>
+ <select id="my-dropdownCountries" name="my-dropdown">
+ <option value="1">Afghanistan</option>
+ <option value="1">Akrotiri</option>
+ <option value="1">Albania</option>
+ <option value="1">Algeria</option>
+ <option value="1">American Samoa</option>
+ <option value="1">Andorra</option>
+ <option value="1">Angola</option>
+ <option value="1">Anguilla</option>
+ <option value="1">Antarctica</option>
+ <option value="1">Antigua and Barbuda</option>
+ <option value="1">Argentina</option>
+ <option value="1">Armenia</option>
+ <option value="1">Aruba</option>
+ <option value="1">Ashmore and Cartier Islands</option>
+ <option value="1">Australia</option>
+ <option value="1">Austria</option>
+ <option value="1">Azerbaijan</option>
+ <option value="1">Bahamas, The</option>
+ <option value="1">Bahrain</option>
+ <option value="1">Bangladesh</option>
+ <option value="1">Barbados</option>
+ <option value="1">Bassas da India</option>
+ <option value="1">Belarus</option>
+ <option value="1">Belgium</option>
+ <option value="1">Belize</option>
+ <option value="1">Benin</option>
+ <option value="1">Bermuda</option>
+ <option value="1">Bhutan</option>
+ <option value="1">Bolivia</option>
+ <option value="1">Bosnia and Herzegovina</option>
+ <option value="1">Botswana</option>
+ <option value="1">Bouvet Island</option>
+ <option value="1">Brazil</option>
+ <option value="1">British Indian Ocean Territory</option>
+ <option value="1">British Virgin Islands</option>
+ <option value="1">Brunei</option>
+ <option value="1">Bulgaria</option>
+ <option value="1">Burkina Faso</option>
+ <option value="1">Burma</option>
+ <option value="1">Burundi</option>
+ <option value="1">Cambodia</option>
+ <option value="1">Cameroon</option>
+ <option value="1">Canada</option>
+ <option value="1">Cape Verde</option>
+ <option value="1">Cayman Islands</option>
+ <option value="1">Central African Republic</option>
+ <option value="1">Chad</option>
+ <option value="1">Chile</option>
+ <option value="1">China</option>
+ <option value="1">Christmas Island</option>
+ <option value="1">Clipperton Island</option>
+ <option value="1">Cocos (Keeling) Islands</option>
+ <option value="1">Colombia</option>
+ <option value="1">Comoros</option>
+ <option value="1">Congo, Democratic Republic of the</option>
+ <option value="1">Congo, Republic of the</option>
+ <option value="1">Cook Islands</option>
+ <option value="1">Coral Sea Islands</option>
+ <option value="1">Costa Rica</option>
+ <option value="1">Cote d'Ivoire</option>
+ <option value="1">Croatia</option>
+ <option value="1">Cuba</option>
+ <option value="1">Cyprus</option>
+ <option value="1">Czech Republic</option>
+ <option value="1">Denmark</option>
+ <option value="1">Dhekelia</option>
+ <option value="1">Djibouti</option>
+ <option value="1">Dominica</option>
+ <option value="1">Dominican Republic</option>
+ <option value="1">Ecuador</option>
+ <option value="1">Egypt</option>
+ <option value="1">El Salvador</option>
+ <option value="1">Equatorial Guinea</option>
+ <option value="1">Eritrea</option>
+ <option value="1">Estonia</option>
+ <option value="1">Ethiopia</option>
+ <option value="1">Europa Island</option>
+ <option value="1">Falkland Islands (Islas Malvinas)</option>
+ <option value="1">Faroe Islands</option>
+ <option value="1">Fiji</option>
+ <option value="1">Finland</option>
+ <option value="1">France</option>
+ <option value="1">French Guiana</option>
+ </select>
+ </div>
+ <div class="selCont">
+ <h2>Intelligent positioning</h2>
+ <p>Stylish Select will always remain visible on the page.</p>
+ <select id="my-dropdown4" name="my-dropdown">
+ <optgroup label="Tool">
+ <option value="1">Opiate</option>
+ <option value="2">Undertow</option>
+ <option value="3">Aenima</option>
+ <option value="4">Lateralus</option>
+ </optgroup>
+ <optgroup label="A Tribe Called Quest">
+ <option value="5">People's Instinctive Travels and the Paths of Rhythm</option>
+ <option value="6">The Low End Theory</option>
+ <option value="7" selected="selected">Midnight Marauders</option>
+ <option value="8">Beats, Rhymes and Life</option>
+ <option value="9">The Love Movement</option>
+ </optgroup>
+ </select>
+ </div>
+ <div class="selCont">
+ <h2>Disabled Select</h2>
+ <select disabled="disabled" id="my-dropdown7" name="my-dropdown">
+ <option value="1">Opiate</option>
+ <option value="2">Undertow</option>
+ <option value="3">Aenima</option>
+ <option value="4">Lateralus</option>
+ <option value="9">The Love Movement</option>
+ </select>
+ </div>
+ <div class="selCont">
+ <h2>Disabled Options</h2>
+ <select id="my-dropdown8" name="my-dropdown">
+ <option value="1">Opiate</option>
+ <option disabled="disabled" value="2">Undertow</option>
+ <option value="3">Aenima</option>
+ <option selected="selected" value="4">Lateralus</option>
+ <option value="9">The Love Movement</option>
+ </select>
+ </div>
+ <div class="selCont">
+ <h2>Disabled Grouped options</h2>
+ <select id="my-dropdown9" name="my-dropdown">
+ <optgroup label="Tool" disabled="disabled">
+ <option value="1">Opiate</option>
+ <option value="2">Undertow</option>
+ <option value="3">Aenima</option>
+ <option value="4">Lateralus</option>
+ </optgroup>
+ <optgroup label="A Tribe Called Quest">
+ <option value="5">People's Instinctive Travels and the Paths of Rhythm</option>
+ <option value="6">The Low End Theory</option>
+ <option value="7" selected="selected">Midnight Marauders</option>
+ <option value="8">Beats, Rhymes and Life</option>
+ <option value="9">The Love Movement</option>
+ </optgroup>
+ </select>
+ </div>
+ </form>
+ </body>
+</html> \ No newline at end of file
diff --git a/library/stylish_select/jquery.stylish-select.js b/library/stylish_select/jquery.stylish-select.js
new file mode 100644
index 000000000..61a38ca8d
--- /dev/null
+++ b/library/stylish_select/jquery.stylish-select.js
@@ -0,0 +1,492 @@
+/**
+* Stylish Select 0.4.9 - jQuery plugin to replace a select drop down box with a stylable unordered list
+* http://github.com/scottdarby/Stylish-Select
+*
+* Requires: jQuery 1.3 or newer
+*
+* Contributions from Justin Beasley: http://www.harvest.org/
+* Anatoly Ressin: http://www.artazor.lv/ Wilfred Hughes: https://github.com/Wilfred
+* Grigory Zarubin: https://github.com/Craigy-
+*
+* Dual licensed under the MIT and GPL licenses.
+*/
+(function($){
+ //add class to html tag
+ $('html').addClass('stylish-select');
+
+ //Cross-browser implementation of indexOf from MDN: https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Array/indexOf
+ if (!Array.prototype.indexOf){
+ Array.prototype.indexOf = function(searchElement /*, fromIndex */){
+ if (this === void 0 || this === null)
+ throw new TypeError();
+
+ var t = Object(this);
+ var len = t.length >>> 0;
+ if (len === 0)
+ return -1;
+
+ var n = 0;
+ if (arguments.length > 0){
+ n = Number(arguments[1]);
+ if (n !== n) // shortcut for verifying if it's NaN
+ n = 0;
+ else if (n !== 0 && n !== (1 / 0) && n !== -(1 / 0))
+ n = (n > 0 || -1) * Math.floor(Math.abs(n));
+ }
+
+ if (n >= len)
+ return -1;
+
+ var k = n >= 0
+ ? n
+ : Math.max(len - Math.abs(n), 0);
+
+ for (; k < len; k++){
+ if (k in t && t[k] === searchElement)
+ return k;
+ }
+ return -1;
+ };
+ }
+
+ //utility methods
+ $.fn.extend({
+ getSetSSValue: function(value){
+ if (value){
+ //set value and trigger change event
+ $(this).val(value).change();
+ return this;
+ } else {
+ return $(this).find(':selected').val();
+ }
+ },
+ //added by Justin Beasley
+ resetSS: function(){
+ var oldOpts = $(this).data('ssOpts');
+ $this = $(this);
+ $this.next().remove();
+ //unbind all events and redraw
+ $this.unbind('.sSelect').sSelect(oldOpts);
+ }
+ });
+
+ $.fn.sSelect = function(options){
+ return this.each(function(){
+ var defaults = {
+ defaultText: 'Please select',
+ animationSpeed: 0, //set speed of dropdown
+ ddMaxHeight: '', //set css max-height value of dropdown
+ containerClass: '' //additional classes for container div
+ };
+
+ //initial variables
+ var opts = $.extend(defaults, options),
+ $input = $(this),
+ $containerDivText = $('<div class="selectedTxt"></div>'),
+ $containerDiv = $('<div class="newListSelected ' + opts.containerClass + ($input.is(':disabled') ? ' newListDisabled' : '') + '"></div>'),
+ $containerDivWrapper = $('<div class="SSContainerDivWrapper" style="visibility:hidden;"></div>'),
+ $newUl = $('<ul class="newList"></ul>'),
+ currentIndex = -1,
+ prevIndex = -1,
+ keys = [],
+ prevKey = false,
+ prevented = false,
+ $newLi;
+
+ //added by Justin Beasley
+ $(this).data('ssOpts',options);
+
+ if( $(this).next('.newListSelected').length ) {
+ return;
+ }
+
+ //build new list
+ $containerDiv.insertAfter($input);
+ $containerDiv.attr("tabindex", $input.attr("tabindex") || "0");
+ $containerDivText.prependTo($containerDiv);
+ $newUl.appendTo($containerDiv);
+ $newUl.wrap($containerDivWrapper);
+ $containerDivWrapper = $newUl.parent();
+ $input.hide();
+
+ if($input.is(':disabled')){
+ return;
+ }
+
+ //added by Justin Beasley (used for lists initialized while hidden)
+ $containerDivText.data('ssReRender',!$containerDivText.is(':visible'));
+
+ //add one item to list
+ function addItem(item, container) {
+ var option = $(item).text(),
+ key = $(item).val(),
+ isDisabled = $(item).is(':disabled');
+
+ if (!isDisabled && !$(item).parents().is(':disabled')) {
+ //add first letter of each word to array
+ keys.push(option.charAt(0).toLowerCase());
+ }
+ container.append($('<li><a'+(isDisabled ? ' class="newListItemDisabled"' : '')+' href="JavaScript:void(0);">'+option+'</a></li>').data({
+ 'key' : key,
+ 'selected' : $(item).is(':selected')
+ }));
+ }
+
+ $input.children().each(function(){
+ if ($(this).is('option')){
+ addItem(this, $newUl);
+ } else {
+ var optionTitle = $(this).attr('label'),
+ $optGroup = $('<li class="newListOptionTitle ' + ($(this).is(':disabled') ? 'newListOptionDisabled' : '') + '">'+optionTitle+'</li>'),
+ $optGroupList = $('<ul></ul>');
+
+ $optGroup.appendTo($newUl);
+ $optGroupList.appendTo($optGroup);
+
+ $(this).children().each(function(){
+ addItem(this, $optGroupList);
+ });
+ }
+ });
+
+ //cache list items object
+ $newLi = $newUl.find('li a:not(.newListItemDisabled)').not(function(){
+ return $(this).parents().hasClass('newListOptionDisabled');
+ });
+
+ //get selected item from new list (because it doesn't contain disabled options)
+ $newLi.each(function(i){
+ if ($(this).parent().data('selected')){
+ opts.defaultText = $(this).html();
+ currentIndex = prevIndex = i;
+ }
+ });
+
+ //get heights of new elements for use later
+ var newUlHeight = $newUl.height(),
+ containerHeight = $containerDiv.height(),
+ newLiLength = $newLi.length;
+
+ //check if a value is selected
+ if (currentIndex != -1){
+ navigateList(currentIndex);
+ } else {
+ //set placeholder text
+ $containerDivText.text(opts.defaultText);
+ }
+
+ //decide if to place the new list above or below the drop-down
+ function newUlPos(){
+ var containerPosY = $containerDiv.offset().top,
+ docHeight = $(window).height(),
+ scrollTop = $(window).scrollTop();
+
+ //if height of list is greater then max height, set list height to max height value
+ if (newUlHeight > parseInt(opts.ddMaxHeight)){
+ newUlHeight = parseInt(opts.ddMaxHeight);
+ }
+
+ containerPosY = containerPosY-scrollTop;
+ if (containerPosY+newUlHeight >= docHeight){
+ $newUl.css({
+ height: newUlHeight
+ });
+ $containerDivWrapper.css({
+ top: '-'+newUlHeight+'px',
+ height: newUlHeight
+ });
+ $input.onTop = true;
+ } else {
+ $newUl.css({
+ height: newUlHeight
+ });
+ $containerDivWrapper.css({
+ top: containerHeight+'px',
+ height: newUlHeight
+ });
+ $input.onTop = false;
+ }
+ }
+
+ //run function on page load
+ newUlPos();
+
+ //run function on browser window resize
+ $(window).bind('resize.sSelect scroll.sSelect', newUlPos);
+
+ //positioning
+ function positionFix(){
+ $containerDiv.css('position','relative');
+ }
+
+ function positionHideFix(){
+ $containerDiv.css(
+ {
+ position: 'static'
+ });
+ }
+
+ $containerDivText.bind('click.sSelect',function(event){
+ event.stopPropagation();
+
+ //added by Justin Beasley
+ if($(this).data('ssReRender')){
+ newUlHeight = $newUl.height('').height();
+ $containerDivWrapper.height('');
+ containerHeight = $containerDiv.height();
+ $(this).data('ssReRender',false);
+ newUlPos();
+ }
+
+ //hide all menus apart from this one
+ $('.SSContainerDivWrapper')
+ .not($(this).next())
+ .hide()
+ .parent()
+ .css('position', 'static')
+ .removeClass('newListSelFocus');
+
+ //show/hide this menu
+ $containerDivWrapper.toggle();
+ positionFix();
+
+ //scroll list to selected item
+ if(currentIndex == -1) currentIndex = 0;
+ try {
+ $newLi.eq(currentIndex).focus();
+ } catch(ex) {}
+ });
+
+ function closeDropDown(fireChange, resetText){
+ if(fireChange == true){
+ prevIndex = currentIndex;
+ $input.change();
+ }
+
+ if(resetText == true){
+ currentIndex = prevIndex;
+ navigateList(currentIndex);
+ }
+
+ $containerDivWrapper.hide();
+ positionHideFix();
+ }
+
+ $newLi.bind('click.sSelect',function(e){
+ var $clickedLi = $(e.target);
+
+ //update counter
+ currentIndex = $newLi.index($clickedLi);
+
+ //remove all hilites, then add hilite to selected item
+ prevented = true;
+ navigateList(currentIndex, true);
+ closeDropDown();
+ });
+
+ $newLi.bind('mouseenter.sSelect',
+ function(e){
+ var $hoveredLi = $(e.target);
+ $hoveredLi.addClass('newListHover');
+ }).bind('mouseleave.sSelect',
+ function(e){
+ var $hoveredLi = $(e.target);
+ $hoveredLi.removeClass('newListHover');
+ });
+
+ function navigateList(currentIndex, fireChange){
+ if(currentIndex == -1){
+ $containerDivText.text(opts.defaultText);
+ $newLi.removeClass('hiLite');
+ } else {
+ $newLi.removeClass('hiLite')
+ .eq(currentIndex)
+ .addClass('hiLite');
+
+ var text = $newLi.eq(currentIndex).text(),
+ val = $newLi.eq(currentIndex).parent().data('key');
+
+ try {
+ $input.val(val);
+ } catch(ex) {
+ // handle ie6 exception
+ $input[0].selectedIndex = currentIndex;
+ }
+
+ $containerDivText.text(text);
+
+ //only fire change event if specified
+ if(fireChange == true){
+ prevIndex = currentIndex;
+ $input.change();
+ }
+
+ if ($containerDivWrapper.is(':visible')){
+ try {
+ $newLi.eq(currentIndex).focus();
+ } catch(ex) {}
+ }
+ }
+ }
+
+ $input.bind('change.sSelect',function(event){
+ var $targetInput = $(event.target);
+ //stop change function from firing
+ if (prevented == true){
+ prevented = false;
+ return false;
+ }
+ var $currentOpt = $targetInput.find(':selected');
+ currentIndex = $targetInput.find('option').index($currentOpt);
+ navigateList(currentIndex);
+ });
+
+ //handle up and down keys
+ function keyPress(element){
+ //when keys are pressed
+ $(element).unbind('keydown.sSelect').bind('keydown.sSelect',function(e){
+ var keycode = e.which;
+
+ //prevent change function from firing
+ prevented = true;
+
+ switch(keycode){
+ case 40: //down
+ case 39: //right
+ incrementList();
+ return false;
+ break;
+ case 38: //up
+ case 37: //left
+ decrementList();
+ return false;
+ break;
+ case 33: //page up
+ case 36: //home
+ gotoFirst();
+ return false;
+ break;
+ case 34: //page down
+ case 35: //end
+ gotoLast();
+ return false;
+ break;
+ case 13: //enter
+ case 27: //esc
+ closeDropDown(true);
+ return false;
+ break;
+ case 9: //tab
+ closeDropDown(true);
+ nextFormElement();
+ return false;
+ break;
+ }
+
+ //check for keyboard shortcuts
+ keyPressed = String.fromCharCode(keycode).toLowerCase();
+
+ var currentKeyIndex = keys.indexOf(keyPressed);
+
+ if (typeof currentKeyIndex != 'undefined'){ //if key code found in array
+ ++currentIndex;
+ currentIndex = keys.indexOf(keyPressed, currentIndex); //search array from current index
+
+ if (currentIndex == -1 || currentIndex == null || prevKey != keyPressed){
+ // if no entry was found or new key pressed search from start of array
+ currentIndex = keys.indexOf(keyPressed);
+ }
+
+ navigateList(currentIndex);
+ //store last key pressed
+ prevKey = keyPressed;
+ return false;
+ }
+ });
+ }
+
+ function incrementList(){
+ if (currentIndex < (newLiLength-1)){
+ ++currentIndex;
+ navigateList(currentIndex);
+ }
+ }
+
+ function decrementList(){
+ if (currentIndex > 0){
+ --currentIndex;
+ navigateList(currentIndex);
+ }
+ }
+
+ function gotoFirst(){
+ currentIndex = 0;
+ navigateList(currentIndex);
+ }
+
+ function gotoLast(){
+ currentIndex = newLiLength-1;
+ navigateList(currentIndex);
+ }
+
+ $containerDiv.bind('click.sSelect',function(e){
+ e.stopPropagation();
+ keyPress(this);
+ });
+
+ $containerDiv.bind('focus.sSelect',function(){
+ $(this).addClass('newListSelFocus');
+ keyPress(this);
+ });
+
+ $containerDiv.bind('blur.sSelect',function(){
+ $(this).removeClass('newListSelFocus');
+ });
+
+ //hide list on blur
+ $(document).bind('click.sSelect',function(){
+ $containerDiv.removeClass('newListSelFocus');
+ if ($containerDivWrapper.is(':visible')){
+ closeDropDown(false, true);
+ } else {
+ closeDropDown(false);
+ }
+ });
+
+ //select next form element in document
+ function nextFormElement() {
+ var fields = $('body').find('button,input,textarea,select'),
+ index = fields.index($input);
+ if (index > -1 && (index + 1) < fields.length) {
+ fields.eq(index + 1).focus();
+ }
+ return false;
+ }
+ // handle focus on original select element
+ $input.focus(function(){
+ $input.next().focus();
+ });
+
+ //add classes on hover
+ $containerDivText.bind('mouseenter.sSelect',
+ function(e){
+ var $hoveredTxt = $(e.target);
+ $hoveredTxt.parent().addClass('newListSelHover');
+ }).bind('mouseleave.sSelect',
+ function(e){
+ var $hoveredTxt = $(e.target);
+ $hoveredTxt.parent().removeClass('newListSelHover');
+ });
+
+ //reset left property and hide
+ $containerDivWrapper.css({
+ left: '0',
+ display: 'none',
+ visibility: 'visible'
+ });
+
+ });
+
+ };
+
+})(jQuery); \ No newline at end of file
diff --git a/library/stylish_select/select-bg.png b/library/stylish_select/select-bg.png
new file mode 100755
index 000000000..151eda726
--- /dev/null
+++ b/library/stylish_select/select-bg.png
Binary files differ
diff --git a/library/stylish_select/stylish-select.css b/library/stylish_select/stylish-select.css
new file mode 100755
index 000000000..1f3dcd28d
--- /dev/null
+++ b/library/stylish_select/stylish-select.css
@@ -0,0 +1,121 @@
+/**
+* Stylish Select 0.4.9 - $ plugin to replace a select drop down box with a stylable unordered list
+* http://github.com/scottdarby/Stylish-Select/
+*
+* Copyright (c) 2009 Scott Darby
+*
+* Requires: jQuery 1.3 or newer
+*
+* Dual licensed under the MIT and GPL licenses.
+*/
+
+/**
+* Hide lists on page load
+---------------------------------------------------------*/
+
+.stylish-select .SSContainerDivWrapper {
+ left:-9999px;
+}
+
+/*
+* Red example
+---------------------------------------------------------*/
+.stylish-select .SSContainerDivWrapper {
+ margin:0;
+ padding:0;
+ width:290px;
+ position:absolute;
+ top:22px;
+ left:0;
+ z-index:2;
+}
+
+.stylish-select ul.newList {
+ margin:0;
+ padding:0;
+ list-style:none;
+ color:#000;
+ background:#fff;
+ border:1px solid #ccc;
+ overflow:auto;
+}
+
+.stylish-select ul.newList * {
+ margin:0;
+ padding:0;
+}
+
+
+.stylish-select ul.newList a {
+ color: #000;
+ text-decoration:none;
+ display:block;
+ padding:3px 8px;
+}
+
+.stylish-select .newListSelected {
+ width:285px;
+ color:#000;
+ height:19px;
+ padding:3px 0 0 6px;
+ float:left;
+ background:url(select-bg.png) no-repeat;
+}
+
+.stylish-select ul.newList li a:focus {
+ -moz-outline-style: none;
+}
+
+.stylish-select .selectedTxt {
+ width:258px;
+ overflow:hidden;
+ height:16px;
+ padding:0 23px 0 0;
+}
+
+.stylish-select .hiLite {
+ background:#650101!important;
+ color:#fff!important;
+}
+
+.stylish-select .newListHover {
+ background:#ccc!important;
+ color:#000!important;
+ cursor:default;
+}
+
+.stylish-select .newListDisabled {
+ opacity: 0.6;
+ -ms-filter: "progid:DXImageTransform.Microsoft.Alpha(Opacity=60)";
+ filter: alpha(opacity=60);
+}
+
+.stylish-select .newListItemDisabled {
+ opacity: 0.6;
+ -ms-filter: "progid:DXImageTransform.Microsoft.Alpha(Opacity=60)";
+ filter: alpha(opacity=60);
+}
+
+.stylish-select .newListOptionDisabled {
+ opacity: 0.6;
+ -ms-filter: "progid:DXImageTransform.Microsoft.Alpha(Opacity=60)";
+ filter: alpha(opacity=60);
+}
+
+.stylish-select .newListSelHover,
+.stylish-select .newListSelFocus {
+ background-position:0 -22px;
+ cursor:default;
+}
+
+.stylish-select .newListOptionTitle {
+ font-weight:bold;
+}
+
+.stylish-select .newListOptionTitle ul {
+ margin:3px 0 0;
+}
+
+.stylish-select .newListOptionTitle li {
+ font-weight:normal;
+} \ No newline at end of file
diff --git a/mod/acl.php b/mod/acl.php
index 5658a05c5..797a3633b 100644
--- a/mod/acl.php
+++ b/mod/acl.php
@@ -11,7 +11,7 @@ function acl_init(&$a){
$count = (x($_REQUEST,'count')?$_REQUEST['count']:100);
$search = (x($_REQUEST,'search')?$_REQUEST['search']:"");
$type = (x($_REQUEST,'type')?$_REQUEST['type']:"");
-
+ $noforums = (x($_REQUEST,'n') ? $_REQUEST['n'] : false);
// For use with jquery.autocomplete for private mail completion
@@ -49,7 +49,7 @@ 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 ) and not (xchan_flags & %d ) $sql_extra2" ,
+ WHERE abook_channel = %d AND not ( abook_flags & %d )>0 and not (xchan_flags & %d )>0 $sql_extra2" ,
intval(local_user()),
intval(ABOOK_FLAG_BLOCKED|ABOOK_FLAG_PENDING|ABOOK_FLAG_ARCHIVED),
intval(XCHAN_FLAGS_DELETED)
@@ -59,7 +59,7 @@ function acl_init(&$a){
if(intval(get_config('system','taganyone')) || intval(get_pconfig(local_user(),'system','taganyone'))) {
if(((! $r) || (! $r[0]['total'])) && $type == 'c') {
$r = q("SELECT COUNT(xchan_hash) AS c FROM xchan
- WHERE not (xchan_flags & %d ) $sql_extra2" ,
+ WHERE not (xchan_flags & %d )>0 $sql_extra2" ,
intval(XCHAN_FLAGS_DELETED)
);
$contact_count = (int)$r[0]['c'];
@@ -75,8 +75,8 @@ 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 )
+ WHERE abook_channel = %d and ( (abook_their_perms = null) or (abook_their_perms & %d )>0)
+ and not ( xchan_flags & %d )>0
$sql_extra2 ",
intval(local_user()),
intval(PERMS_W_MAIL),
@@ -87,12 +87,12 @@ function acl_init(&$a){
$contact_count = (int)$r[0]['c'];
}
- elseif ($type == 'a') {
+ elseif (($type == 'a')||($type == 'p')) {
// 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 and not ( xchan_flags & %d ) $sql_extra2" ,
+ WHERE abook_channel = %d and not ( xchan_flags & %d )>0 $sql_extra2" ,
intval(local_user()),
intval(XCHAN_FLAGS_DELETED)
);
@@ -110,17 +110,18 @@ function acl_init(&$a){
if ($type=='' || $type=='g'){
$r = q("SELECT `groups`.`id`, `groups`.`hash`, `groups`.`name`,
- GROUP_CONCAT(DISTINCT `group_member`.`xchan` SEPARATOR ',') as uids
+ %s as uids
FROM `groups`,`group_member`
WHERE `groups`.`deleted` = 0 AND `groups`.`uid` = %d
AND `group_member`.`gid`=`groups`.`id`
$sql_extra
GROUP BY `groups`.`id`
ORDER BY `groups`.`name`
- LIMIT %d,%d",
+ LIMIT %d OFFSET %d",
+ db_concat('group_member.xchan', ','),
intval(local_user()),
- intval($start),
- intval($count)
+ intval($count),
+ intval($start)
);
foreach($r as $g){
@@ -140,7 +141,7 @@ 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, abook_flags
FROM abook left join xchan on abook_xchan = xchan_hash
- WHERE abook_channel = %d AND not ( abook_flags & %d ) and not (xchan_flags & %d ) $sql_extra2 order by xchan_name asc" ,
+ WHERE abook_channel = %d AND not ( abook_flags & %d )>0 and not (xchan_flags & %d )>0 $sql_extra2 order by xchan_name asc" ,
intval(local_user()),
intval(ABOOK_FLAG_BLOCKED|ABOOK_FLAG_PENDING|ABOOK_FLAG_ARCHIVED),
intval(XCHAN_FLAGS_DELETED)
@@ -149,7 +150,7 @@ function acl_init(&$a){
if((! $r) && $type == 'c') {
$r = q("SELECT substr(xchan_hash,1,18) as id, xchan_hash as hash, xchan_name as name, xchan_photo_s as micro, xchan_url as url, xchan_addr as nick, 0 as abook_their_perms, 0 as abook_flags
FROM xchan
- WHERE not (xchan_flags & %d ) $sql_extra2 order by xchan_name asc" ,
+ WHERE not (xchan_flags & %d )>0 $sql_extra2 order by xchan_name asc" ,
intval(XCHAN_FLAGS_DELETED)
);
}
@@ -159,8 +160,8 @@ function acl_init(&$a){
$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)
+ WHERE abook_channel = %d and ( (abook_their_perms = null) or (abook_their_perms & %d )>0)
+ and not (xchan_flags & %d)>0
$sql_extra3
ORDER BY `xchan_name` ASC ",
intval(local_user()),
@@ -168,10 +169,10 @@ function acl_init(&$a){
intval(XCHAN_FLAGS_DELETED)
);
}
- elseif($type == 'a') {
+ elseif(($type == 'a') || ($type == 'p')) {
$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)
+ and not (xchan_flags & %d)>0
$sql_extra3
ORDER BY xchan_name ASC ",
intval(local_user()),
@@ -204,7 +205,7 @@ function acl_init(&$a){
$r = array();
- if($type == 'm' || $type == 'a') {
+ if($type == 'm' || $type == 'a' || $type == 'p') {
$x = array();
$x['query'] = $search;
$x['photos'] = array();
@@ -216,7 +217,7 @@ function acl_init(&$a){
$x['photos'][] = $g['micro'];
$x['links'][] = $g['url'];
$x['suggestions'][] = $g['name'];
- $x['data'][] = $g['id'];
+ $x['data'][] = (($type === 'p') ? '@' . str_replace(' ','_',$g['name']) : $g['id']);
}
}
echo json_encode($x);
@@ -230,7 +231,7 @@ function acl_init(&$a){
if(strpos($g['hash'],'/'))
continue;
- if(($g['abook_their_perms'] & PERMS_W_TAGWALL) && $type == 'c') {
+ if(($g['abook_their_perms'] & PERMS_W_TAGWALL) && $type == 'c' && (! $noforums)) {
$contacts[] = array(
"type" => "c",
"photo" => "images/twopeople.png",
diff --git a/mod/admin.php b/mod/admin.php
index 48b342d4e..0e580960a 100644
--- a/mod/admin.php
+++ b/mod/admin.php
@@ -238,8 +238,7 @@ function admin_page_site_post(&$a){
$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'])) : '');
+// $site_channel = ((x($_POST,'site_channel')) ? notags(trim($_POST['site_channel'])) : '');
$maximagesize = ((x($_POST,'maximagesize')) ? intval(trim($_POST['maximagesize'])) : 0);
@@ -267,7 +266,7 @@ function admin_page_site_post(&$a){
$maxloadavg = ((x($_POST,'maxloadavg'))? intval(trim($_POST['maxloadavg'])) : 50);
$feed_contacts = ((x($_POST,'feed_contacts')) ? intval($_POST['feed_contacts']) : 0);
$diaspora_enabled = ((x($_POST,'diaspora_enabled')) ? intval($_POST['diaspora_enabled']) : 0);
-
+ $verify_email = ((x($_POST,'verify_email')) ? 1 : 0);
set_config('system','feed_contacts',$feed_contacts);
set_config('system','diaspora_enabled',$diaspora_enabled);
@@ -276,6 +275,7 @@ function admin_page_site_post(&$a){
set_config('system','maxloadavg',$maxloadavg);
set_config('system','sitename',$sitename);
set_config('system','no_login_on_homepage',$no_login_on_homepage);
+ set_config('system','verify_email',$verify_email);
if ($banner=="") {
del_config('system','banner');
@@ -297,13 +297,7 @@ function admin_page_site_post(&$a){
} else {
set_config('system','mobile_theme', $theme_mobile);
}
- if ( $theme_accessibility === '---' ) {
- del_config('system','accessibility_theme');
- } else {
- set_config('system','accessibility_theme', $theme_accessibility);
- }
-
- set_config('system','site_channel', $site_channel);
+// set_config('system','site_channel', $site_channel);
set_config('system','maximagesize', $maximagesize);
set_config('system','register_policy', $register_policy);
@@ -356,27 +350,32 @@ function admin_page_site(&$a) {
}
/* Installed themes */
- $theme_choices = array();
- $theme_choices_mobile = array();
- $theme_choices_mobile["---"] = t("No special theme for mobile devices");
- $theme_choices_accessibility = array();
- $theme_choices_accessibility["---"] =t("No special theme for accessibility");
- $files = glob('view/theme/*');
- if($files) {
- foreach($files as $file) {
- $f = basename($file);
- $theme_name = ((file_exists($file . '/experimental')) ? sprintf("%s - Experimental", $f) : $f);
- if (file_exists($file . '/mobile')) {
- $theme_choices_mobile[$f] = $theme_name;
- }
- if (file_exists($file . '/accessibility')) {
- $theme_choices_accessibility[$f] = $theme_name;
+ $theme_choices_mobile["---"] = t("Default");
+ $theme_choices = array();
+ $files = glob('view/theme/*');
+ if($files) {
+ foreach($files as $file) {
+ $vars = '';
+ $f = basename($file);
+ if (file_exists($file . '/library'))
+ continue;
+ if (file_exists($file . '/mobile'))
+ $vars = t('mobile');
+ if (file_exists($file . '/experimental'))
+ $vars .= t('experimental');
+ if (file_exists($file . '/unsupported'))
+ $vars .= t('unsupported');
+ if ($vars) {
+ $theme_choices[$f] = $f . ' (' . $vars . ')';
+ $theme_choices_mobile[$f] = $f . ' (' . $vars . ')';
}
- $theme_choices[$f] = $theme_name;
- }
- }
-
-
+ else {
+ $theme_choices[$f] = $f;
+ $theme_choices_mobile[$f] = $f;
+ }
+ }
+ }
+
/* Banner */
$banner = get_config('system','banner');
if($banner == false)
@@ -424,8 +423,7 @@ function admin_page_site(&$a) {
'$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),
- '$theme_accessibility' => array('theme_accessibility', t("Accessibility system theme"), get_config('system','accessibility_theme'), t("Accessibility theme"), $theme_choices_accessibility),
- '$site_channel' => array('site_channel', t("Channel to use for this website's static pages"), get_config('system','site_channel'), t("Site Channel")),
+// '$site_channel' => array('site_channel', t("Channel to use for this website's static pages"), get_config('system','site_channel'), t("Site Channel")),
'$diaspora_enabled' => array('diaspora_enabled',t('Enable Diaspora Protocol'), get_config('system','diaspora_enabled'), t('Communicate with Diaspora and Friendica - experimental')),
'$feed_contacts' => array('feed_contacts', t('Allow Feeds as Connections'),get_config('system','feed_contacts'),t('(Heavy system resource usage)')),
'$maximagesize' => array('maximagesize', t("Maximum image size"), intval(get_config('system','maximagesize')), t("Maximum size in bytes of uploaded images. Default is 0, which means no limits.")),
@@ -436,6 +434,7 @@ function admin_page_site(&$a) {
'$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")),
'$block_public' => array('block_public', t("Block public"), get_config('system','block_public'), t("Check to block public access to all otherwise public personal pages on this site unless you are currently logged in.")),
+ '$verify_email' => array('verify_email', t("Verify Email Addresses"), get_config('system','verify_email'), t("Check to verify email addresses used in account registration (recommended).")),
'$force_publish' => array('publish_all', t("Force publish"), get_config('system','publish_all'), t("Check to force all profiles on this site to be listed in the site directory.")),
'$disable_discover_tab' => array('disable_discover_tab', t("Disable discovery tab"), get_config('system','disable_discover_tab'), t("Remove the tab in the network view with public content pulled from sources chosen for this site.")),
'$no_login_on_homepage' => array('no_login_on_homepage', t("No login on Homepage"), get_config('system','no_login_on_homepage'), t("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).")),
@@ -592,7 +591,7 @@ function admin_page_users_post(&$a){
if (x($_POST,'page_users_block')){
foreach($users as $uid){
- q("UPDATE account SET account_flags = (account_flags & %d) where account_id = %d limit 1",
+ q("UPDATE account SET account_flags = (account_flags & %d) where account_id = %d",
intval(ACCOUNT_BLOCKED),
intval( $uid )
);
@@ -648,7 +647,7 @@ function admin_page_users(&$a){
}; break;
case "block":{
check_form_security_token_redirectOnErr('/admin/users', 'admin_users', 't');
- q("UPDATE account SET account_flags = ( account_flags ^ %d ) where account_id = %d",
+ q("UPDATE account SET account_flags = ( account_flags & ~%d ) where account_id = %d",
intval(ACCOUNT_BLOCKED),
intval( $uid )
);
@@ -662,13 +661,13 @@ function admin_page_users(&$a){
}
/* get pending */
- $pending = q("SELECT account.*, register.hash from account left join register on account_id = register.uid where (account_flags & %d ) ",
+ $pending = q("SELECT account.*, register.hash from account left join register on account_id = register.uid where (account_flags & %d )>0 ",
intval(ACCOUNT_PENDING)
);
/* get users */
- $total = q("SELECT count(*) as total FROM account where 1");
+ $total = q("SELECT count(*) as total FROM account");
if(count($total)) {
$a->set_pager_total($total[0]['total']);
$a->set_pager_itemspage(100);
@@ -685,15 +684,18 @@ function admin_page_users(&$a){
$order = " order by account_email asc ";
if($_REQUEST['order'] === 'expires')
$order = " order by account_expires desc ";
-
- $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 and not (ch.channel_pageflags & %d )) as `channels` " .
- "FROM account as ac where true $serviceclass $order limit %d , %d ",
+ if($_REQUEST['order'] === 'created')
+ $order = " order by account_created desc ";
+
+ $users =q("SELECT `account_id` , `account_email`, `account_lastlog`, `account_created`, `account_expires`, " . "`account_service_class`, ( account_flags & %d )>0 as `blocked`, " .
+ "(SELECT %s FROM channel as ch " .
+ "WHERE ch.channel_account_id = ac.account_id and not (ch.channel_pageflags & %d )>0) as `channels` " .
+ "FROM account as ac where true $serviceclass $order limit %d offset %d ",
intval(ACCOUNT_BLOCKED),
+ db_concat('ch.channel_address', ' '),
intval(PAGE_REMOVED),
- intval($a->pager['start']),
- intval($a->pager['itemspage'])
+ intval($a->pager['itemspage']),
+ intval($a->pager['start'])
);
// function _setup_users($e){
@@ -760,13 +762,13 @@ function admin_page_channels_post(&$a){
if (x($_POST,'page_channels_block')){
foreach($channels as $uid){
- q("UPDATE channel SET channel_pageflags = ( channel_pageflags ^ %d ) where channel_id = %d",
+ q("UPDATE channel SET channel_pageflags = ( channel_pageflags & ~%d ) where channel_id = %d",
intval(PAGE_CENSORED),
intval( $uid )
);
proc_run('php','include/directory.php',$uid,'nopush');
}
- notice( sprintf( tt("%s channel censored/uncensored", "%s channelss censored/uncensored", count($channels)), count($channels)) );
+ notice( sprintf( tt("%s channel censored/uncensored", "%s channels censored/uncensored", count($channels)), count($channels)) );
}
if (x($_POST,'page_channels_delete')){
require_once("include/Contact.php");
@@ -808,10 +810,11 @@ function admin_page_channels(&$a){
case "block":{
check_form_security_token_redirectOnErr('/admin/channels', 'admin_channels', 't');
- q("UPDATE channel SET channel_pageflags = ( channel_pageflags ^ %d ) where channel_id = %d",
+ q("UPDATE channel SET channel_pageflags = ( channel_pageflags & ~%d ) where channel_id = %d",
intval(PAGE_CENSORED),
intval( $uid )
);
+ proc_run('php','include/directory.php',$uid,'nopush');
notice( sprintf( (($channel[0]['channel_pageflags'] & PAGE_CENSORED) ? t("Channel '%s' uncensored"): t("Channel '%s' censored")) , $channel[0]['channel_name'] . ' (' . $channel[0]['channel_address'] . ')' ) . EOL);
}; break;
@@ -823,7 +826,7 @@ function admin_page_channels(&$a){
/* get channels */
- $total = q("SELECT count(*) as total FROM channel where not (channel_pageflags & %d)",
+ $total = q("SELECT count(*) as total FROM channel where not (channel_pageflags & %d)>0",
intval(PAGE_REMOVED)
);
if($total) {
@@ -833,10 +836,10 @@ function admin_page_channels(&$a){
$order = " order by channel_name asc ";
- $channels = q("SELECT * from channel where not ( channel_pageflags & %d ) $order limit %d , %d ",
+ $channels = q("SELECT * from channel where not ( channel_pageflags & %d )>0 $order limit %d offset %d ",
intval(PAGE_REMOVED),
- intval($a->pager['start']),
- intval($a->pager['itemspage'])
+ intval($a->pager['itemspage']),
+ intval($a->pager['start'])
);
if($channels) {
@@ -1290,7 +1293,7 @@ readable.");
function admin_page_profs_post(&$a) {
if($_REQUEST['id']) {
- $r = q("update profdef set field_name = '%s', field_type = '%s', field_desc = '%s' field_help = '%s', field_inputs = '%s' where id = %d limit 1",
+ $r = q("update profdef set field_name = '%s', field_type = '%s', field_desc = '%s' field_help = '%s', field_inputs = '%s' where id = %d",
dbesc($_REQUEST['field_name']),
dbesc($_REQUEST['field_type']),
dbesc($_REQUEST['field_desc']),
@@ -1318,7 +1321,7 @@ function admin_page_profs_post(&$a) {
function admin_page_profs(&$a) {
if((argc() > 3) && argv(2) == 'drop' && intval(argv(3))) {
- $r = q("delete from profdef where id = %d limit 1",
+ $r = q("delete from profdef where id = %d",
intval(argv(3))
);
// remove from allowed fields
diff --git a/mod/blocks.php b/mod/blocks.php
index 3f2bef116..6237a645b 100644
--- a/mod/blocks.php
+++ b/mod/blocks.php
@@ -1,108 +1,140 @@
<?php
-function blocks_content(&$a) {
+require_once('include/identity.php');
+require_once('include/conversation.php');
+require_once('include/acl_selectors.php');
+function blocks_init(&$a) {
+ if(argc() > 1 && argv(1) === 'sys' && is_site_admin()) {
+ $sys = get_sys_channel();
+ if($sys && intval($sys['channel_id'])) {
+ $a->is_sys = true;
+ }
+ }
if(argc() > 1)
$which = argv(1);
- else {
+ else
+ return;
+
+ profile_load($a,$which);
+
+}
+
+
+function blocks_content(&$a) {
+
+ if(! $a->profile) {
notice( t('Requested profile is not available.') . EOL );
$a->error = 404;
return;
}
- profile_load($a,$which,0);
+ $which = argv(1);
+ $uid = local_user();
+ $owner = 0;
+ $channel = null;
+ $observer = $a->get_observer();
- // Figure out who the page owner is.
- $r = q("select channel_id from channel where channel_address = '%s'",
- dbesc($which)
- );
- if($r) {
- $owner = intval($r[0]['channel_id']);
- }
+ $channel = $a->get_channel();
- // Block design features from visitors
+ if($a->is_sys && is_site_admin()) {
+ $sys = get_sys_channel();
+ if($sys && intval($sys['channel_id'])) {
+ $uid = $owner = intval($sys['channel_id']);
+ $channel = $sys;
+ $observer = $sys;
+ }
+ }
- if((! local_user()) || (local_user() != $owner)) {
- notice( t('Permission denied.') . EOL);
- return;
+ if(! $owner) {
+ // Figure out who the page owner is.
+ $r = q("select channel_id from channel where channel_address = '%s'",
+ dbesc($which)
+ );
+ if($r) {
+ $owner = intval($r[0]['channel_id']);
+ }
}
+ $ob_hash = (($observer) ? $observer['xchan_hash'] : '');
+ $perms = get_all_perms($owner,$ob_hash);
+ if(! $perms['write_pages']) {
+ notice( t('Permission denied.') . EOL);
+ return;
+ }
-// Get the observer, check their permissions
- $observer = $a->get_observer();
- $ob_hash = (($observer) ? $observer['xchan_hash'] : '');
+ // Block design features from visitors
- $perms = get_all_perms($owner,$ob_hash);
+ if((! $uid) || ($uid != $owner)) {
+ notice( t('Permission denied.') . EOL);
+ return;
+ }
- if(! $perms['write_pages']) {
- notice( t('Permission denied.') . EOL);
- return;
- }
+ if(feature_enabled($owner,'expert')) {
+ $mimetype = (($_REQUEST['mimetype']) ? $_REQUEST['mimetype'] : get_pconfig($owner,'system','page_mimetype'));
+ if(! $mimetype)
+ $mimetype = 'choose';
+ }
+ else {
+ $mimetype = 'text/bbcode';
+ }
-// Create a status editor (for now - we'll need a WYSIWYG eventually) to create pages
-// Nickname is set to the observers xchan, and profile_uid to the owners.
-// This lets you post pages at other people's channels.
-require_once ('include/conversation.php');
- $x = array(
- 'webpage' => ITEM_BUILDBLOCK,
- 'is_owner' => true,
- 'nickname' => $a->profile['channel_address'],
- 'lockstate' => (($group || $cid || $channel['channel_allow_cid'] || $channel['channel_allow_gid'] || $channel['channel_deny_cid'] || $channel['channel_deny_gid']) ? 'lock' : 'unlock'),
- 'bang' => (($group || $cid) ? '!' : ''),
- 'showacl' => false,
- 'visitor' => true,
- 'mimetype' => 'choose',
- 'ptlabel' => t('Block Name'),
- 'profile_uid' => intval($owner),
- );
- if($_REQUEST['title'])
- $x['title'] = $_REQUEST['title'];
- if($_REQUEST['body'])
- $x['body'] = $_REQUEST['body'];
- if($_REQUEST['pagetitle'])
- $x['pagetitle'] = $_REQUEST['pagetitle'];
+ $x = array(
+ 'webpage' => ITEM_BUILDBLOCK,
+ 'is_owner' => true,
+ 'nickname' => $a->profile['channel_address'],
+ 'lockstate' => (($channel['channel_allow_cid'] || $channel['channel_allow_gid'] || $channel['channel_deny_cid'] || $channel['channel_deny_gid']) ? 'lock' : 'unlock'),
+ 'bang' => '',
+ 'showacl' => false,
+ 'visitor' => true,
+ 'mimetype' => $mimetype,
+ 'ptlabel' => t('Block Name'),
+ 'profile_uid' => intval($owner),
+ );
+ if($_REQUEST['title'])
+ $x['title'] = $_REQUEST['title'];
+ if($_REQUEST['body'])
+ $x['body'] = $_REQUEST['body'];
+ if($_REQUEST['pagetitle'])
+ $x['pagetitle'] = $_REQUEST['pagetitle'];
- $o .= status_editor($a,$x);
- //Get a list of blocks. We can't display all them because endless scroll makes that unusable, so just list titles and an edit link.
-//TODO - this should be replaced with pagelist_widget
+ $o .= status_editor($a,$x);
-$r = q("select * from item_id where uid = %d and service = 'BUILDBLOCK' order by sid asc",
- intval($owner)
-);
+ $r = q("select * from item_id where uid = %d and service = 'BUILDBLOCK' order by sid asc",
+ intval($owner)
+ );
- $pages = null;
+ $pages = null;
- if($r) {
- $pages = array();
- foreach($r as $rr) {
- $pages[$rr['iid']][] = array('url' => $rr['iid'],'title' => $rr['sid']);
- }
- }
+ if($r) {
+ $pages = array();
+ foreach($r as $rr) {
+ $pages[$rr['iid']][] = array('url' => $rr['iid'],'title' => $rr['sid']);
+ }
+ }
+ //Build the base URL for edit links
+ $url = z_root() . '/editblock/' . $which;
-//Build the base URL for edit links
- $url = z_root() . "/editblock/" . $which;
-// This isn't pretty, but it works. Until I figure out what to do with the UI, it's Good Enough(TM).
- return $o . replace_macros(get_markup_template("blocklist.tpl"), array(
+ $o .= replace_macros(get_markup_template('blocklist.tpl'), array(
'$baseurl' => $url,
'$edit' => t('Edit'),
'$pages' => $pages,
'$channel' => $which,
'$view' => t('View'),
'$preview' => '1',
-
- ));
+ ));
-
+ return $o;
}
diff --git a/mod/bookmarks.php b/mod/bookmarks.php
index 9ccc171fe..6b2476a8e 100644
--- a/mod/bookmarks.php
+++ b/mod/bookmarks.php
@@ -55,6 +55,8 @@ function bookmarks_content(&$a) {
$o = profile_tabs($a,true,$channel['channel_address']);
+ $o .= '<div class="generic-content-wrapper-styled">';
+
$o .= '<h3>' . t('My Bookmarks') . '</h3>';
$x = menu_list(local_user(),'',MENU_BOOKMARK);
@@ -78,7 +80,7 @@ function bookmarks_content(&$a) {
}
}
-
+ $o .= '</div>';
return $o;
diff --git a/mod/chanman.php b/mod/chanman.php
deleted file mode 100644
index 7a89708d7..000000000
--- a/mod/chanman.php
+++ /dev/null
@@ -1,31 +0,0 @@
-<?php /** @file */
-
-
-/**
- Placeholder file at present. This is going to involve a bit of work.
-
- This file will deal with the deletion of channels and management of hublocs.
-
- We need to provide the following functionality:
-
- - Delete my account and all channels from the entire network
-
- - Delete my account and all channels from this server
-
- - Delete a channel from the entire network
-
- - Delete a channel from this server
-
- - List all hub locations for this channel
-
- - Remove this/some hub location from this channel
-
- - promote this/some hub location to primary
-
- - Remove hub location 'xyz' from this channel, (this should possibly only be allowed if that hub has been down for a period of time)
-
- - Some of these actions should probably require email verification
-
-*/
-
-
diff --git a/mod/channel.php b/mod/channel.php
index 395160d2c..e819de0e0 100644
--- a/mod/channel.php
+++ b/mod/channel.php
@@ -47,7 +47,7 @@ function channel_content(&$a, $update = 0, $load = false) {
$category = $datequery = $datequery2 = '';
- $mid = $_GET['mid'];
+ $mid = ((x($_REQUEST,'mid')) ? $_REQUEST['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']) : '');
@@ -57,6 +57,7 @@ function channel_content(&$a, $update = 0, $load = false) {
}
$category = ((x($_REQUEST,'cat')) ? $_REQUEST['cat'] : '');
+ $hashtags = ((x($_REQUEST,'tag')) ? $_REQUEST['tag'] : '');
$groups = array();
@@ -64,7 +65,7 @@ function channel_content(&$a, $update = 0, $load = false) {
if($update) {
// Ensure we've got a profile owner if updating.
- $a->profile['profile_uid'] = $update;
+ $a->profile['profile_uid'] = $a->profile_uid = $update;
}
else {
if($a->profile['profile_uid'] == local_user()) {
@@ -137,21 +138,26 @@ function channel_content(&$a, $update = 0, $load = false) {
$sql_extra = item_permissions_sql($a->profile['profile_uid'],$remote_contact,$groups);
+ if(get_pconfig($a->profile['profile_uid'],'system','channel_list_mode') && (! $mid))
+ $page_mode = 'list';
+ else
+ $page_mode = 'client';
+
if(($update) && (! $load)) {
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",
+ AND (item_flags & %d) > 0 AND (item_flags & %d) > 0 $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
+ $r = q("SELECT distinct parent AS `item_id`, created 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 (item_flags & %d) > 0 AND ( item_flags & %d ) > 0
AND ((abook.abook_flags & %d) = 0 or abook.abook_flags is null)
$sql_extra
ORDER BY created DESC",
@@ -165,10 +171,12 @@ function channel_content(&$a, $update = 0, $load = false) {
}
else {
-
if(x($category)) {
$sql_extra .= protect_sprintf(term_query('item', $category, TERM_CATEGORY));
}
+ if(x($hashtags)) {
+ $sql_extra .= protect_sprintf(term_query('item', $hashtags, TERM_HASHTAG));
+ }
if($datequery) {
$sql_extra2 .= protect_sprintf(sprintf(" AND item.created <= '%s' ", dbesc(datetime_convert(date_default_timezone_get(),'',$datequery))));
@@ -179,12 +187,12 @@ function channel_content(&$a, $update = 0, $load = false) {
$itemspage = get_pconfig(local_user(),'system','itemspage');
$a->set_pager_itemspage(((intval($itemspage)) ? $itemspage : 20));
- $pager_sql = sprintf(" LIMIT %d, %d ",intval($a->pager['start']), intval($a->pager['itemspage']));
+ $pager_sql = sprintf(" LIMIT %d OFFSET %d ", intval($a->pager['itemspage']), intval($a->pager['start']));
if($load || ($_COOKIE['jsAvailable'] != 1)) {
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",
+ AND (item_flags & %d)>0 $sql_extra limit 1",
dbesc($mid),
intval($a->profile['profile_uid']),
intval(ITEM_WALL)
@@ -194,10 +202,10 @@ function channel_content(&$a, $update = 0, $load = false) {
}
} else {
- $r = q("SELECT distinct id AS item_id FROM item
+ $r = q("SELECT distinct id AS item_id, created 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 (item_flags & %d)>0 and (item_flags & %d)>0
AND ((abook.abook_flags & %d) = 0 or abook.abook_flags is null)
$sql_extra $sql_extra2
ORDER BY created DESC $pager_sql ",
@@ -246,9 +254,14 @@ function channel_content(&$a, $update = 0, $load = false) {
// This is ugly, but we can't pass the profile_uid through the session to the ajax updater,
// because browser prefetching might change it on us. We have to deliver it with the page.
+ $maxheight = get_pconfig($a->profile['profile_uid'],'system','channel_divmore_height');
+ if(! $maxheight)
+ $maxheight = 400;
+
$o .= '<div id="live-channel"></div>' . "\r\n";
$o .= "<script> var profile_uid = " . $a->profile['profile_uid']
- . "; var netargs = '?f='; var profile_page = " . $a->pager['page'] . "; </script>\r\n";
+ . "; var netargs = '?f='; var profile_page = " . $a->pager['page']
+ . "; divmore_height = " . intval($maxheight) . "; </script>\r\n";
$a->page['htmlhead'] .= replace_macros(get_markup_template("build_query.tpl"),array(
'$baseurl' => z_root(),
@@ -271,6 +284,7 @@ function channel_content(&$a, $update = 0, $load = false) {
'$list' => ((x($_REQUEST,'list')) ? intval($_REQUEST['list']) : 0),
'$file' => '',
'$cats' => (($category) ? $category : ''),
+ '$tags' => (($hashtags) ? $hashtags : ''),
'$mid' => $mid,
'$dend' => $datequery,
'$dbegin' => $datequery2
@@ -279,12 +293,31 @@ function channel_content(&$a, $update = 0, $load = false) {
}
+ $update_unseen = '';
+
+ if($page_mode === 'list') {
+ /**
+ * in "list mode", only mark the parent item and any like activities as "seen".
+ * We won't distinguish between comment likes and post likes. The important thing
+ * is that the number of unseen comments will be accurate. The SQL to separate the
+ * comment likes could also get somewhat hairy.
+ */
- if($is_owner) {
+ if($parents_str) {
+ $update_unseen = " AND ( id IN ( " . dbesc($parents_str) . " )";
+ $update_unseen .= " OR ( parent IN ( " . dbesc($parents_str) . " ) AND verb in ( '" . dbesc(ACTIVITY_LIKE) . "','" . dbesc(ACTIVITY_DISLIKE) . "' ))) ";
+ }
+ }
+ else {
+ if($parents_str) {
+ $update_unseen = " AND parent IN ( " . dbesc($parents_str) . " )";
+ }
+ }
- $r = q("UPDATE item SET item_flags = (item_flags ^ %d)
- WHERE (item_flags & %d) AND (item_flags & %d) AND uid = %d ",
+ if($is_owner && $update_unseen) {
+ $r = q("UPDATE item SET item_flags = (item_flags & ~%d)
+ WHERE (item_flags & %d) > 0 AND (item_flags & %d) > 0 AND uid = %d $update_unseen",
intval(ITEM_UNSEEN),
intval(ITEM_UNSEEN),
intval(ITEM_WALL),
@@ -294,7 +327,7 @@ function channel_content(&$a, $update = 0, $load = false) {
if($_COOKIE['jsAvailable'] == 1) {
- $o .= conversation($a,$items,'channel',$update,'client');
+ $o .= conversation($a,$items,'channel',$update,$page_mode);
} else {
$o .= conversation($a,$items,'channel',$update,'traditional');
}
diff --git a/mod/chatsvc.php b/mod/chatsvc.php
index 43aa3d3c0..44225e6dd 100644
--- a/mod/chatsvc.php
+++ b/mod/chatsvc.php
@@ -73,7 +73,7 @@ function chatsvc_content(&$a) {
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",
+ $r = q("update chatpresence set cp_status = '%s', cp_last = '%s' where cp_room = %d and cp_xchan = '%s' and cp_client = '%s'",
dbesc($status),
dbesc(datetime_convert()),
intval($room_id),
@@ -141,7 +141,7 @@ function chatsvc_content(&$a) {
}
}
- $r = q("update chatpresence set cp_last = '%s' where cp_room = %d and cp_xchan = '%s' and cp_client = '%s' limit 1",
+ $r = q("update chatpresence set cp_last = '%s' where cp_room = %d and cp_xchan = '%s' and cp_client = '%s'",
dbesc(datetime_convert()),
intval($a->data['chat']['room_id']),
dbesc(get_observer_hash()),
diff --git a/mod/cloud.php b/mod/cloud.php
index 1765c0b69..27724f6b0 100644
--- a/mod/cloud.php
+++ b/mod/cloud.php
@@ -1,31 +1,35 @@
<?php
/**
* @file mod/cloud.php
- * @brief Initialize Red Matrix's cloud (SabreDAV)
+ * @brief Initialize RedMatrix's cloud (SabreDAV).
*
+ * Module for accessing the DAV storage area.
*/
- use Sabre\DAV;
- require_once('vendor/autoload.php');
+use Sabre\DAV;
+use RedMatrix\RedDAV;
- // workaround for HTTP-auth in CGI mode
- if(x($_SERVER,'REDIRECT_REMOTE_USER')) {
- $userpass = base64_decode(substr($_SERVER["REDIRECT_REMOTE_USER"], 6)) ;
- if(strlen($userpass)) {
- list($name, $password) = explode(':', $userpass);
- $_SERVER['PHP_AUTH_USER'] = $name;
- $_SERVER['PHP_AUTH_PW'] = $password;
- }
- }
+// composer autoloader for SabreDAV
+require_once('vendor/autoload.php');
- if(x($_SERVER,'HTTP_AUTHORIZATION')) {
- $userpass = base64_decode(substr($_SERVER["HTTP_AUTHORIZATION"], 6)) ;
- if(strlen($userpass)) {
- list($name, $password) = explode(':', $userpass);
- $_SERVER['PHP_AUTH_USER'] = $name;
- $_SERVER['PHP_AUTH_PW'] = $password;
- }
+// workaround for HTTP-auth in CGI mode
+if (x($_SERVER, 'REDIRECT_REMOTE_USER')) {
+ $userpass = base64_decode(substr($_SERVER["REDIRECT_REMOTE_USER"], 6)) ;
+ if(strlen($userpass)) {
+ list($name, $password) = explode(':', $userpass);
+ $_SERVER['PHP_AUTH_USER'] = $name;
+ $_SERVER['PHP_AUTH_PW'] = $password;
}
+}
+
+if (x($_SERVER, 'HTTP_AUTHORIZATION')) {
+ $userpass = base64_decode(substr($_SERVER["HTTP_AUTHORIZATION"], 6)) ;
+ if(strlen($userpass)) {
+ list($name, $password) = explode(':', $userpass);
+ $_SERVER['PHP_AUTH_USER'] = $name;
+ $_SERVER['PHP_AUTH_PW'] = $password;
+ }
+}
/**
* @brief Fires up the SabreDAV server.
@@ -33,65 +37,61 @@
* @param App &$a
*/
function cloud_init(&$a) {
-
// call ($currenttheme)_init since we're operating outside of index.php
-
- $theme_info_file = "view/theme/".current_theme()."/php/theme.php";
+ $theme_info_file = "view/theme/" . current_theme() . "/php/theme.php";
if (file_exists($theme_info_file)){
require_once($theme_info_file);
- if(function_exists(str_replace('-','_',current_theme()) . '_init')) {
- $func = str_replace('-','_',current_theme()) . '_init';
+ if (function_exists(str_replace('-', '_', current_theme()) . '_init')) {
+ $func = str_replace('-', '_', current_theme()) . '_init';
$func($a);
}
}
require_once('include/reddav.php');
- if(! is_dir('store'))
- os_mkdir('store',STORAGE_DEFAULT_PERMISSIONS,false);
+ if (! is_dir('store'))
+ os_mkdir('store', STORAGE_DEFAULT_PERMISSIONS, false);
$which = null;
- if(argc() > 1)
+ 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" ;
+ $a->page['htmlhead'] .= '<link rel="alternate" type="application/atom+xml" href="' . $a->get_baseurl() . '/feed/' . $which . '" />' . "\r\n";
- if($which)
+ if ($which)
profile_load($a, $which, $profile);
- $auth = new RedBasicAuth();
+ $auth = new RedDAV\RedBasicAuth();
$ob_hash = get_observer_hash();
- if($ob_hash) {
- if(local_user()) {
+ 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'];
$auth->channel_account_id = $channel['channel_account_id'];
if($channel['channel_timezone'])
- $auth->timezone = $channel['channel_timezone'];
+ $auth->setTimezone($channel['channel_timezone']);
}
$auth->observer = $ob_hash;
}
- if($_GET['davguest'])
+ if ($_GET['davguest'])
$_SESSION['davguest'] = true;
- $_SERVER['QUERY_STRING'] = str_replace(array('?f=','&f='),array('',''),$_SERVER['QUERY_STRING']);
+ $_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['QUERY_STRING'] = preg_replace('/[\?&]davguest=(.*?)([\?&]|$)/ism', '', $_SERVER['QUERY_STRING']);
- $_SERVER['REQUEST_URI'] = str_replace(array('?f=','&f='),array('',''),$_SERVER['REQUEST_URI']);
+ $_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']);
+ $_SERVER['REQUEST_URI'] = preg_replace('/[\?&]davguest=(.*?)([\?&]|$)/ism', '', $_SERVER['REQUEST_URI']);
- $rootDirectory = new RedDirectory('/', $auth);
+ $rootDirectory = new RedDAV\RedDirectory('/', $auth);
// A SabreDAV server-object
$server = new DAV\Server($rootDirectory);
@@ -101,46 +101,53 @@ function cloud_init(&$a) {
$server->addPlugin($lockPlugin);
- // 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'
+ // 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'.
$isapublic_file = false;
$davguest = ((x($_SESSION, 'davguest')) ? true : false);
- if((! $auth->observer) && ($_SERVER['REQUEST_METHOD'] === 'GET')) {
+ if ((! $auth->observer) && ($_SERVER['REQUEST_METHOD'] === 'GET')) {
try {
$x = RedFileData('/' . $a->cmd, $auth);
- if($x instanceof RedFile)
+ if($x instanceof RedDAV\RedFile)
$isapublic_file = true;
}
- catch ( Exception $e ) {
+ catch (Exception $e) {
$isapublic_file = false;
}
}
- if((! $auth->observer) && (! $isapublic_file) && (! $davguest)) {
+ if ((! $auth->observer) && (! $isapublic_file) && (! $davguest)) {
try {
- $auth->Authenticate($server, t('Red Matrix - Guests: Username: {your email address}, Password: +++'));
+ $auth->Authenticate($server, t('RedMatrix - Guests: Username: {your email address}, Password: +++'));
}
- catch ( Exception $e) {
+ catch (Exception $e) {
logger('mod_cloud: auth exception' . $e->getMessage());
http_status_exit($e->getHTTPCode(), $e->getMessage());
}
}
-
+ require_once('include/RedDAV/RedBrowser.php');
// provide a directory view for the cloud in Red Matrix
- $browser = new RedBrowser($auth);
-
+ $browser = new RedDAV\RedBrowser($auth);
$auth->setBrowserPlugin($browser);
$server->addPlugin($browser);
+ // Experimental QuotaPlugin
+// require_once('include/RedDAV/QuotaPlugin.php');
+// $server->addPlugin(new RedDAV\QuotaPlugin($auth));
+
// All we need to do now, is to fire up the server
$server->exec();
killme();
-} \ No newline at end of file
+}
diff --git a/mod/connect.php b/mod/connect.php
index f7748bcaf..396fca645 100644
--- a/mod/connect.php
+++ b/mod/connect.php
@@ -38,7 +38,8 @@ function connect_post(&$a) {
$text = escape_tags($_POST['text']);
if($has_premium != $premium) {
- $r = q("update channel set channel_pageflags = ( channel_pageflags ^ %d ) where channel_id = %d limit 1",
+ $r = q("update channel set channel_pageflags = ( channel_pageflags %s %d ) where channel_id = %d",
+ db_getfunc('^'),
intval(PAGE_PREMIUM),
intval(local_user())
);
diff --git a/mod/connections.php b/mod/connections.php
index 028889647..70e28913a 100644
--- a/mod/connections.php
+++ b/mod/connections.php
@@ -81,7 +81,7 @@ function connections_post(&$a) {
}
$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",
+ where abook_id = %d AND abook_channel = %d",
dbesc($profile_id),
intval($abook_my_perms),
intval($closeness),
@@ -213,7 +213,7 @@ function connections_content(&$a) {
nav_set_selected('intros');
break;
case 'ifpending':
- $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 (abook_flags & %d) and not ((abook_flags & %d) or (xchan_flags & %d))",
+ $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 (abook_flags & %d)>0 and not ((abook_flags & %d)>0 or (xchan_flags & %d)>0)",
intval(local_user()),
intval(ABOOK_FLAG_PENDING),
intval(ABOOK_FLAG_SELF|ABOOK_FLAG_IGNORED),
@@ -250,13 +250,13 @@ function connections_content(&$a) {
}
- $sql_extra = (($search_flags) ? " and ( abook_flags & " . $search_flags . " ) " : "");
+ $sql_extra = (($search_flags) ? " and ( abook_flags & " . $search_flags . " )>0 " : "");
if(argv(1) === 'pending')
- $sql_extra .= " and not ( abook_flags & " . ABOOK_FLAG_IGNORED . " ) ";
+ $sql_extra .= " and not ( abook_flags & " . ABOOK_FLAG_IGNORED . " )>0 ";
}
else {
- $sql_extra = " and not ( abook_flags & " . ABOOK_FLAG_BLOCKED . " ) ";
+ $sql_extra = " and not ( abook_flags & " . ABOOK_FLAG_BLOCKED . " )>0 ";
$unblocked = true;
}
@@ -342,7 +342,7 @@ 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) and not (xchan_flags & %d ) $sql_extra $sql_extra2 ",
+ where abook_channel = %d and not (abook_flags & %d)>0 and not (xchan_flags & %d )>0 $sql_extra $sql_extra2 ",
intval(local_user()),
intval(ABOOK_FLAG_SELF),
intval(XCHAN_FLAGS_DELETED|XCHAN_FLAGS_ORPHAN)
@@ -353,12 +353,12 @@ 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) and not ( xchan_flags & %d) $sql_extra $sql_extra2 ORDER BY xchan_name LIMIT %d , %d ",
+ WHERE abook_channel = %d and not (abook_flags & %d)>0 and not ( xchan_flags & %d)>0 $sql_extra $sql_extra2 ORDER BY xchan_name LIMIT %d OFFSET %d ",
intval(local_user()),
intval(ABOOK_FLAG_SELF),
intval(XCHAN_FLAGS_DELETED|XCHAN_FLAGS_ORPHAN),
- intval($a->pager['start']),
- intval($a->pager['itemspage'])
+ intval($a->pager['itemspage']),
+ intval($a->pager['start'])
);
$contacts = array();
@@ -369,7 +369,7 @@ function connections_content(&$a) {
if($rr['xchan_url']) {
$contacts[] = array(
'img_hover' => sprintf( t('%1$s [%2$s]'),$rr['xchan_name'],$rr['xchan_url']),
- 'edit_hover' => t('Edit contact'),
+ 'edit_hover' => t('Edit connection'),
'id' => $rr['abook_id'],
'alt_text' => $alt_text,
'dir_icon' => $dir_icon,
@@ -378,6 +378,7 @@ function connections_content(&$a) {
'username' => $rr['xchan_name'],
'classes' => (($rr['abook_flags'] & ABOOK_FLAG_ARCHIVED) ? 'archived' : ''),
'link' => z_root() . '/connedit/' . $rr['abook_id'],
+ 'edit' => t('Edit'),
'url' => chanlink_url($rr['xchan_url']),
'network' => network_to_name($rr['network']),
);
@@ -385,20 +386,40 @@ function connections_content(&$a) {
}
}
- $o .= replace_macros(get_markup_template('connections.tpl'),array(
- '$header' => t('Connections') . (($head) ? ' - ' . $head : ''),
- '$tabs' => $t,
- '$total' => $total,
- '$search' => $search_hdr,
- '$desc' => t('Search your connections'),
- '$finding' => (($searching) ? t('Finding: ') . "'" . $search . "'" : ""),
- '$submit' => t('Find'),
- '$edit' => t('Edit'),
- '$cmd' => $a->cmd,
- '$contacts' => $contacts,
- '$paginate' => paginate($a),
-
- ));
-
+
+ if($_REQUEST['aj']) {
+ if($contacts) {
+ $o = replace_macros(get_markup_template('contactsajax.tpl'),array(
+ '$contacts' => $contacts,
+ '$edit' => t('Edit'),
+ ));
+ }
+ else {
+ $o = '<div id="content-complete"></div>';
+ }
+ echo $o;
+ killme();
+ }
+ else {
+ $o .= "<script> var page_query = '" . $_GET['q'] . "'; var extra_args = '" . extra_query_args() . "' ; </script>";
+ $o .= replace_macros(get_markup_template('connections.tpl'),array(
+ '$header' => t('Connections') . (($head) ? ' - ' . $head : ''),
+ '$tabs' => $t,
+ '$total' => $total,
+ '$search' => $search_hdr,
+ '$desc' => t('Search your connections'),
+ '$finding' => (($searching) ? t('Finding: ') . "'" . $search . "'" : ""),
+ '$submit' => t('Find'),
+ '$edit' => t('Edit'),
+ '$cmd' => $a->cmd,
+ '$contacts' => $contacts,
+ '$paginate' => paginate($a),
+
+ ));
+ }
+
+ if(! $contacts)
+ $o .= '<div id="content-complete"></div>';
+
return $o;
}
diff --git a/mod/connedit.php b/mod/connedit.php
index b2de42343..5bf9c130b 100644
--- a/mod/connedit.php
+++ b/mod/connedit.php
@@ -68,6 +68,14 @@ function connedit_post(&$a) {
call_hooks('contact_edit_post', $_POST);
+ if($orig_record[0]['abook_flags'] & ABOOK_FLAG_SELF) {
+ $autoperms = intval($_POST['autoperms']);
+ }
+ else {
+ $autoperms = null;
+ }
+
+
$profile_id = $_POST['profile_assign'];
if($profile_id) {
$r = q("SELECT profile_guid FROM profile WHERE profile_guid = '%s' AND `uid` = %d LIMIT 1",
@@ -109,7 +117,7 @@ function connedit_post(&$a) {
}
$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",
+ where abook_id = %d AND abook_channel = %d",
dbesc($profile_id),
intval($abook_my_perms),
intval($closeness),
@@ -121,7 +129,7 @@ function connedit_post(&$a) {
if($orig_record[0]['abook_profile'] != $profile_id) {
//Update profile photo permissions
- logger('As a new profile was assigned updating profile photos');
+ logger('A new profile was assigned - updating profile photos');
require_once('mod/profile_photo.php');
profile_photo_set_profile_perms($profile_id);
@@ -208,6 +216,10 @@ function connedit_post(&$a) {
$arr = array('channel_id' => local_user(), 'abook' => $a->poi);
call_hooks('accept_follow', $arr);
}
+dbg(1);
+ if(! is_null($autoperms))
+ set_pconfig(local_user(),'system','autoperms',(($autoperms) ? $abook_my_perms : 0));
+dbg(0);
connedit_clone($a);
@@ -255,6 +267,30 @@ function connedit_content(&$a) {
return login();
}
+ $my_perms = 0;
+ $role = get_pconfig(local_user(),'system','permissions_role');
+ if($role) {
+ $x = get_role_perms($role);
+ if($x['perms_accept'])
+ $my_perms = $x['perms_accept'];
+ else
+ $my_perms = get_channel_default_perms(local_user());
+ }
+ if($my_perms) {
+ $o .= "<script>function connectDefaultShare() {
+ \$('.abook-edit-me').each(function() {
+ if(! $(this).is(':disabled'))
+ $(this).removeAttr('checked');
+ });\n\n";
+ $perms = get_perms();
+ foreach($perms as $p => $v) {
+ if($my_perms & $v[1]) {
+ $o .= "\$('#me_id_perms_" . $p . "').attr('checked','checked'); \n";
+ }
+ }
+ $o .= "abook_perms_msg(); }\n</script>\n";
+ }
+
if(argc() == 3) {
$contact_id = intval(argv(1));
@@ -264,7 +300,7 @@ function connedit_content(&$a) {
$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 ) LIMIT 1",
+ WHERE abook_id = %d AND abook_channel = %d AND NOT ( abook_flags & %d )>0 LIMIT 1",
intval($contact_id),
intval(local_user()),
intval(ABOOK_FLAG_SELF)
@@ -468,6 +504,7 @@ function connedit_content(&$a) {
$slider_tpl = get_markup_template('contact_slider.tpl');
$slide = replace_macros($slider_tpl,array(
'$me' => t('Me'),
+ '$min' => 1,
'$val' => (($contact['abook_closeness']) ? $contact['abook_closeness'] : 99),
'$intimate' => t('Best Friends'),
'$friends' => t('Friends'),
@@ -494,16 +531,17 @@ function connedit_content(&$a) {
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]);
+ $perms[] = array('perms_' . $k, $v[3], (($contact['abook_their_perms'] & $v[1]) ? "1" : ""),$thisperm, $v[1], (($channel[$v[0]] == PERMS_SPECIFIC || $self) ? '' : '1'), $v[4]);
}
$o .= replace_macros($tpl,array(
- '$header' => (($self) ? t('Automatic Permissions Settings') : sprintf( t('Connections: settings for %s'),$contact['xchan_name'])),
+ '$header' => (($self) ? t('Connection Default Permissions') : sprintf( t('Connections: settings for %s'),$contact['xchan_name'])),
+ '$autoperms' => array('autoperms',t('Apply these permissions automatically'), ((get_pconfig(local_user(),'system','autoperms')) ? 1 : 0), ''),
'$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.'),
+ '$autolbl' => t('Apply the permissions indicated on this page to all new connections.'),
'$viewprof' => t('View Profile'),
'$lbl_slider' => t('Slide to adjust your degree of friendship'),
'$slide' => $slide,
diff --git a/mod/contactgroup.php b/mod/contactgroup.php
index 8b23f9f10..4515c4c4c 100644
--- a/mod/contactgroup.php
+++ b/mod/contactgroup.php
@@ -9,8 +9,8 @@ function contactgroup_content(&$a) {
}
if((argc() > 2) && (intval(argv(1))) && (argv(2))) {
- $r = q("SELECT abook_xchan from abook where abook_xchan = '%s' and abook_channel = %d and not ( abook_flags & %d ) limit 1",
- dbesc(argv(2)),
+ $r = q("SELECT abook_xchan from abook where abook_xchan = '%s' and abook_channel = %d and not ( abook_flags & %d )>0 limit 1",
+ dbesc(base64url_decode(argv(2))),
intval(local_user()),
intval(ABOOK_FLAG_SELF)
);
diff --git a/mod/delegate.php b/mod/delegate.php
index e582b9387..c78898b7f 100644
--- a/mod/delegate.php
+++ b/mod/delegate.php
@@ -42,7 +42,7 @@ function delegate_content(&$a) {
if(x($_SESSION,'submanage') && intval($_SESSION['submanage']))
goaway($a->get_baseurl() . '/delegate');
- q("delete from manage where uid = %d and mid = %d limit 1",
+ q("delete from manage where uid = %d and mid = %d",
intval($a->argv[2]),
intval(local_user())
);
diff --git a/mod/directory.php b/mod/directory.php
index 39eeb36ce..4ceda293d 100644
--- a/mod/directory.php
+++ b/mod/directory.php
@@ -1,12 +1,19 @@
<?php
+require_once('include/socgraph.php');
require_once('include/dir_fns.php');
require_once('include/widgets.php');
-
+require_once('include/bbcode.php');
function directory_init(&$a) {
- $a->set_pager_itemspage(80);
+ $a->set_pager_itemspage(60);
+ if(x($_GET,'ignore')) {
+ q("insert into xign ( uid, xchan ) values ( %d, '%s' ) ",
+ intval(local_user()),
+ dbesc($_GET['ignore'])
+ );
+ }
}
function directory_content(&$a) {
@@ -31,8 +38,9 @@ function directory_content(&$a) {
if(x($_REQUEST,'safe'))
$safe_mode = (intval($_REQUEST['safe']));
-
-
+ $pubforums = null;
+ if(array_key_exists('pubforums',$_REQUEST))
+ $pubforums = intval($_REQUEST['pubforums']);
$o = '';
nav_set_selected('directory');
@@ -42,13 +50,38 @@ function directory_content(&$a) {
else
$search = ((x($_GET,'search')) ? notags(trim(rawurldecode($_GET['search']))) : '');
- $advanced = ((x($_REQUEST,'query')) ? notags(trim($_REQUEST['query'])) : '');
+
+ if(strpos($search,'=') && local_user() && get_pconfig(local_user(),'feature','expert'))
+ $advanced = $search;
+
$keywords = (($_GET['keywords']) ? $_GET['keywords'] : '');
+ // Suggest channels if no search terms or keywords are given
+ $suggest = (local_user() && x($_REQUEST,'suggest')) ? $_REQUEST['suggest'] : '';
+
+ if($suggest) {
+ $r = suggestion_query(local_user(),get_observer_hash());
+
+ // Remember in which order the suggestions were
+ $addresses = array();
+ $index = 0;
+ foreach($r as $rr) {
+ $addresses[$rr['xchan_addr']] = $index++;
+ }
+
+ // Build query to get info about suggested people
+ $advanced = '';
+ foreach(array_keys($addresses) as $address) {
+ $advanced .= "address=\"$address\" ";
+ }
+ // Remove last space in the advanced query
+ $advanced = rtrim($advanced);
+
+ }
+
$tpl = get_markup_template('directory_header.tpl');
-
$dirmode = intval(get_config('system','directory_mode'));
if(($dirmode == DIRECTORY_MODE_PRIMARY) || ($dirmode == DIRECTORY_MODE_STANDALONE)) {
@@ -91,11 +124,19 @@ function directory_content(&$a) {
$query .= '&keywords=' . urlencode($keywords);
if($advanced)
$query .= '&query=' . urlencode($advanced);
+ if(! is_null($pubforums))
+ $query .= '&pubforums=' . intval($pubforums);
+
+ if(! is_null($pubforums))
+ $query .= '&pubforums=' . intval($pubforums);
+
+ $sort_order = ((x($_REQUEST,'order')) ? $_REQUEST['order'] : 'normal');
- $sort_order = ((x($_REQUEST,'order')) ? $_REQUEST['order'] : '');
if($sort_order)
$query .= '&order=' . urlencode($sort_order);
+
+
if($a->pager['page'] != 1)
$query .= '&p=' . $a->pager['page'];
@@ -122,6 +163,10 @@ function directory_content(&$a) {
$pdesc = (($rr['description']) ? $rr['description'] . '<br />' : '');
$connect_link = ((local_user()) ? z_root() . '/follow?f=&url=' . urlencode($rr['address']) : '');
+ // Checking status is disabled ATM until someone checks the performance impact more carefully
+ //$online = remote_online_status($rr['address']);
+ $online = '';
+
if(in_array($rr['hash'],$contacts))
$connect_link = '';
@@ -142,8 +187,6 @@ function directory_content(&$a) {
if(($years = age($rr['birthday'],'UTC','')) != 0)
$details .= '<br />' . t('Age: ') . $years ;
}
- if(strlen($rr['gender']))
- $details .= '<br />' . t('Gender: ') . $rr['gender'];
$page_type = '';
@@ -155,18 +198,53 @@ function directory_content(&$a) {
|| (x($profile,'country') == 1))
$location = t('Location:');
- $gender = ((x($profile,'gender') == 1) ? t('Gender:') : False);
+ $gender = ((x($profile,'gender') == 1) ? t('Gender: ') . $profile['gender']: False);
- $marital = ((x($profile,'marital') == 1) ? t('Status:') : False);
+ $marital = ((x($profile,'marital') == 1) ? t('Status: ') . $profile['marital']: False);
- $homepage = ((x($profile,'homepage') == 1) ? t('Homepage:') : False);
-
- $about = ((x($profile,'about') == 1) ? t('About:') : False);
+ $homepage = ((x($profile,'homepage') == 1) ? t('Homepage: ') : False);
+ $homepageurl = ((x($profile,'homepage') == 1) ? $profile['homepage'] : '');
+
+ $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'] : '');
+
+ $out = '';
+
+ if($keywords) {
+ $keywords = str_replace(',',' ', $keywords);
+ $keywords = str_replace(' ',' ', $keywords);
+ $karr = explode(' ', $keywords);
+
+ 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 = array(
'id' => ++$t,
'profile_link' => $profile_link,
+ 'public_forum' => $rr['public_forum'],
'photo' => $rr['photo'],
'hash' => $rr['hash'],
'alttext' => $rr['name'] . ' ' . $rr['address'],
@@ -174,27 +252,43 @@ function directory_content(&$a) {
'details' => $pdesc . $details,
'profile' => $profile,
'address' => $rr['address'],
+ 'nickname' => substr($rr['address'],0,strpos($rr['address'],'@')),
'location' => $location,
'gender' => $gender,
'pdesc' => $pdesc,
'marital' => $marital,
'homepage' => $homepage,
+ 'homepageurl' => linkify($homepageurl),
+ 'hometown' => $hometown,
'about' => $about,
'conn_label' => t('Connect'),
+ 'forum_label' => t('Public Forum:'),
'connect' => $connect_link,
+ 'online' => $online,
+ 'kw' => (($out) ? t('Keywords: ') : ''),
+ 'keywords' => $out,
+ 'ignlink' => $suggest ? $a->get_baseurl() . '/directory?ignore=' . $rr['hash'] : '',
+ 'ignore_label' => "Don't suggest",
);
$arr = array('contact' => $rr, 'entry' => $entry);
call_hooks('directory_item', $arr);
- $entries[] = $arr['entry'];
+ if($sort_order == '' && $suggest) {
+ $entries[$addresses[$rr['address']]] = $arr['entry']; // Use the same indexes as originally to get the best suggestion first
+ }
+ else {
+ $entries[] = $arr['entry'];
+ }
unset($profile);
unset($location);
}
+ ksort($entries); // Sort array by key so that foreach-constructs work as expected
+
if($j['keywords']) {
$a->data['directory_keywords'] = $j['keywords'];
}
@@ -215,19 +309,21 @@ function directory_content(&$a) {
killme();
}
else {
+ $maxheight = 175;
- $o .= "<script> var page_query_args = '" . $a->query_string . "'; </script>";
+ $o .= "<script> var page_query = '" . $_GET['q'] . "'; var extra_args = '" . extra_query_args() . "' ; divmore_height = " . intval($maxheight) . "; </script>";
$o .= replace_macros($tpl, array(
'$search' => $search,
'$desc' => t('Find'),
'$finddsc' => t('Finding:'),
'$safetxt' => htmlspecialchars($search,ENT_QUOTES,'UTF-8'),
'$entries' => $entries,
- '$dirlbl' => t('Directory'),
- '$submit' => t('Find')
+ '$dirlbl' => $suggest ? t('Channel Suggestions') : t('Directory'),
+ '$submit' => t('Find'),
+ '$next' => alt_pager($a,$j['records'], t('next page'), t('previous page'))
+
));
-// $o .= alt_pager($a,$j['records'], t('next page'), t('previous page'));
}
diff --git a/mod/dirprofile.php b/mod/dirprofile.php
deleted file mode 100644
index e9b12ada7..000000000
--- a/mod/dirprofile.php
+++ /dev/null
@@ -1,184 +0,0 @@
-<?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);
- $url = $directory['url'] . '/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 e292553ad..a88db0a2c 100644
--- a/mod/dirsearch.php
+++ b/mod/dirsearch.php
@@ -4,7 +4,7 @@ require_once('include/dir_fns.php');
function dirsearch_init(&$a) {
- $a->set_pager_itemspage(80);
+ $a->set_pager_itemspage(60);
}
@@ -64,6 +64,9 @@ function dirsearch_content(&$a) {
$agege = ((x($_REQUEST,'agege')) ? intval($_REQUEST['agege']) : 0 );
$agele = ((x($_REQUEST,'agele')) ? intval($_REQUEST['agele']) : 0 );
$kw = ((x($_REQUEST,'kw')) ? intval($_REQUEST['kw']) : 0 );
+ $forums = ((array_key_exists('pubforums',$_REQUEST)) ? intval($_REQUEST['pubforums']) : 0);
+
+
// by default use a safe search
$safe = ((x($_REQUEST,'safe'))); // ? intval($_REQUEST['safe']) : 1 );
@@ -108,6 +111,10 @@ function dirsearch_content(&$a) {
if($keywords)
$sql_extra .= dir_query_build($joiner,'xprof_keywords',$keywords);
+ if($forums)
+ $sql_extra .= dir_flag_build($joiner,'xprof_flags',XCHAN_FLAGS_PUBFORUM, $forums);
+
+
// we only support an age range currently. You must set both agege
// (greater than or equal) and agele (less than or equal)
@@ -122,7 +129,7 @@ function dirsearch_content(&$a) {
}
- $perpage = (($_REQUEST['n']) ? $_REQUEST['n'] : 80);
+ $perpage = (($_REQUEST['n']) ? $_REQUEST['n'] : 60);
$page = (($_REQUEST['p']) ? intval($_REQUEST['p'] - 1) : 0);
$startrec = (($page+1) * $perpage) - $perpage;
$limit = (($_REQUEST['limit']) ? intval($_REQUEST['limit']) : 0);
@@ -151,16 +158,16 @@ function dirsearch_content(&$a) {
}
- $safesql = (($safe > 0) ? " and not ( xchan_flags & " . intval(XCHAN_FLAGS_CENSORED|XCHAN_FLAGS_SELFCENSORED) . " ) " : '');
+ $safesql = (($safe > 0) ? " and not ( xchan_flags & " . intval(XCHAN_FLAGS_CENSORED|XCHAN_FLAGS_SELFCENSORED) . " )>0 " : '');
if($safe < 0)
- $safesql = " and ( xchan_flags & " . intval(XCHAN_FLAGS_CENSORED|XCHAN_FLAGS_SELFCENSORED) . " ) ";
+ $safesql = " and ( xchan_flags & " . intval(XCHAN_FLAGS_CENSORED|XCHAN_FLAGS_SELFCENSORED) . " )>0 ";
if($limit)
$qlimit = " LIMIT $limit ";
else {
$qlimit = " LIMIT " . intval($startrec) . " , " . intval($perpage);
if($return_total) {
- $r = q("SELECT COUNT(xchan_hash) AS `total` FROM xchan left join xprof on xchan_hash = xprof_hash where $logic $sql_extra and xchan_network = 'zot' and not ( xchan_flags & %d) and not ( xchan_flags & %d ) and not ( xchan_flags & %d ) $safesql ",
+ $r = q("SELECT COUNT(xchan_hash) AS `total` FROM xchan left join xprof on xchan_hash = xprof_hash where $logic $sql_extra and xchan_network = 'zot' and not ( xchan_flags & %d)>0 and not ( xchan_flags & %d )>0 and not ( xchan_flags & %d )>0 $safesql ",
intval(XCHAN_FLAGS_HIDDEN),
intval(XCHAN_FLAGS_ORPHAN),
intval(XCHAN_FLAGS_DELETED)
@@ -176,10 +183,11 @@ function dirsearch_content(&$a) {
$order = " order by xchan_name asc ";
elseif($sort_order == 'reverse')
$order = " order by xchan_name desc ";
+ elseif($sort_order == 'reversedate')
+ $order = " order by xchan_name_date asc ";
else
$order = " order by xchan_name_date desc ";
-
if($sync) {
$spkt = array('transactions' => array());
$r = q("select * from updates where ud_date >= '%s' and ud_guid != '' order by ud_date desc",
@@ -205,7 +213,7 @@ 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 xchan_network = 'zot' and not ( xchan_flags & %d ) and not ( xchan_flags & %d ) and not ( xchan_flags & %d ) $safesql $order $qlimit ",
+ $r = q("SELECT xchan.*, xprof.* from xchan left join xprof on xchan_hash = xprof_hash where ( $logic $sql_extra ) and xchan_network = 'zot' and not ( xchan_flags & %d )>0 and not ( xchan_flags & %d )>0 and not ( xchan_flags & %d )>0 $safesql $order $qlimit ",
intval(XCHAN_FLAGS_HIDDEN),
intval(XCHAN_FLAGS_ORPHAN),
intval(XCHAN_FLAGS_DELETED)
@@ -226,6 +234,8 @@ function dirsearch_content(&$a) {
$entry['name'] = $rr['xchan_name'];
$entry['hash'] = $rr['xchan_hash'];
+ $entry['public_forum'] = (($rr['xchan_flags'] & XCHAN_FLAGS_PUBFORUM) ? true : false);
+
$entry['url'] = $rr['xchan_url'];
$entry['photo_l'] = $rr['xchan_photo_l'];
$entry['photo'] = $rr['xchan_photo_m'];
@@ -271,6 +281,11 @@ function dir_query_build($joiner,$field,$s) {
return $ret;
}
+function dir_flag_build($joiner,$field,$bit,$s) {
+ return dbesc($joiner) . " ( " . dbesc('xchan_flags') . " & " . intval($bit) . " ) " . ((intval($s)) ? '>' : '=' ) . " 0 ";
+}
+
+
function dir_parse_query($s) {
$ret = array();
@@ -280,35 +295,44 @@ function dir_parse_query($s) {
if($all) {
foreach($all as $q) {
- if($q === 'and') {
- $curr['logic'] = 'and';
- continue;
- }
- if($q === 'or') {
- $curr['logic'] = 'or';
- continue;
- }
- if($q === 'not') {
- $curr['logic'] .= ' not';
- continue;
- }
- if(strpos($q,'=')) {
- if(! isset($curr['logic']))
+ if($quoted_string === false) {
+ if($q === 'and') {
+ $curr['logic'] = 'and';
+ continue;
+ }
+ if($q === 'or') {
$curr['logic'] = 'or';
- $curr['field'] = trim(substr($q,0,strpos($q,'=')));
- $curr['value'] = trim(substr($q,strpos($q,'=')+1));
- if(strpos($curr['value'],'"') !== false) {
- $quoted_string = true;
- $curr['value'] = substr($curr['value'],strpos($curr['value'],'"')+1);
+ continue;
}
- else {
- $ret[] = $curr;
- $curr = array();
- $continue;
+ if($q === 'not') {
+ $curr['logic'] .= ' not';
+ continue;
+ }
+ if(strpos($q,'=')) {
+ if(! isset($curr['logic']))
+ $curr['logic'] = 'or';
+ $curr['field'] = trim(substr($q,0,strpos($q,'=')));
+ $curr['value'] = trim(substr($q,strpos($q,'=')+1));
+ if($curr['value'][0] == '"' && $curr['value'][strlen($curr['value'])-1] != '"') {
+ $quoted_string = true;
+ $curr['value'] = substr($curr['value'],1);
+ continue;
+ }
+ elseif($curr['value'][0] == '"' && $curr['value'][strlen($curr['value'])-1] == '"') {
+ $curr['value'] = substr($curr['value'],1,strlen($curr['value'])-2);
+ $ret[] = $curr;
+ $curr = array();
+ continue;
+ }
+ else {
+ $ret[] = $curr;
+ $curr = array();
+ continue;
+ }
}
}
- elseif($quoted_string) {
- if(strpos($q,'"') !== false) {
+ else {
+ if($q[strlen($q)-1] == '"') {
$curr['value'] .= ' ' . str_replace('"','',trim($q));
$ret[] = $curr;
$curr = array();
diff --git a/mod/display.php b/mod/display.php
index c389eb976..7d7f4ca13 100644
--- a/mod/display.php
+++ b/mod/display.php
@@ -85,6 +85,8 @@ function display_content(&$a, $update = 0, $load = false) {
$target_item = $r[0];
}
+ $r = null;
+
if($target_item['item_restrict'] & ITEM_WEBPAGE) {
$x = q("select * from channel where channel_id = %d limit 1",
intval($target_item['uid'])
@@ -131,6 +133,7 @@ function display_content(&$a, $update = 0, $load = false) {
'$order' => '',
'$file' => '',
'$cats' => '',
+ '$tags' => '',
'$dend' => '',
'$dbegin' => '',
'$mid' => $item_hash
@@ -147,13 +150,14 @@ function display_content(&$a, $update = 0, $load = false) {
$updateable = false;
- $pager_sql = sprintf(" LIMIT %d, %d ",intval($a->pager['start']), intval($a->pager['itemspage']));
+ $pager_sql = sprintf(" LIMIT %d OFFSET %d ", intval($a->pager['itemspage']),intval($a->pager['start']));
if($load || ($_COOKIE['jsAvailable'] != 1)) {
$r = null;
require_once('include/identity.php');
$sys = get_sys_channel();
+ $sysid = $sys['channel_id'];
if(local_user()) {
$r = q("SELECT * from item
@@ -175,8 +179,8 @@ function display_content(&$a, $update = 0, $load = false) {
// in case somebody turned off public access to sys channel content using permissions
// make that content unsearchable by ensuring the owner_xchan can't match
- if(! perm_is_allowed($sys['channel_id'],$observer_hash,'view_stream'))
- $sys['xchan_hash'] .= 'disabled';
+ if(! perm_is_allowed($sysid,$observer_hash,'view_stream'))
+ $sysid = 0;
$r = q("SELECT * from item
@@ -185,11 +189,11 @@ function display_content(&$a, $update = 0, $load = false) {
AND (((( `item`.`allow_cid` = '' AND `item`.`allow_gid` = '' AND `item`.`deny_cid` = ''
AND `item`.`deny_gid` = '' AND item_private = 0 )
and owner_xchan in ( " . stream_perms_xchans(($observer_hash) ? (PERMS_NETWORK|PERMS_PUBLIC) : PERMS_PUBLIC) . " ))
- OR owner_xchan = '%s')
+ OR uid = %d )
$sql_extra )
- group by mid limit 1",
+ limit 1",
dbesc($target_item['parent_mid']),
- dbesc($sys['xchan_hash'])
+ intval($sysid)
);
}
@@ -226,8 +230,8 @@ function display_content(&$a, $update = 0, $load = false) {
}
if($updateable) {
- $x = q("UPDATE item SET item_flags = ( item_flags ^ %d )
- WHERE (item_flags & %d) AND uid = %d and parent = %d ",
+ $x = q("UPDATE item SET item_flags = ( item_flags & ~%d )
+ WHERE (item_flags & %d)>0 AND uid = %d and parent = %d ",
intval(ITEM_UNSEEN),
intval(ITEM_UNSEEN),
intval(local_user()),
diff --git a/mod/editblock.php b/mod/editblock.php
index 536ddd7d2..6ec840af7 100644
--- a/mod/editblock.php
+++ b/mod/editblock.php
@@ -1,50 +1,92 @@
<?php
+require_once('include/identity.php');
+require_once('include/acl_selectors.php');
-function editblock_content(&$a) {
+function editblock_init(&$a) {
+ if(argc() > 1 && argv(1) === 'sys' && is_site_admin()) {
+ $sys = get_sys_channel();
+ if($sys && intval($sys['channel_id'])) {
+ $a->is_sys = true;
+ }
+ }
- if(argc() < 2) {
- notice( t('Item not found') . EOL);
+ if(argc() > 1)
+ $which = argv(1);
+ else
return;
- }
- $channel = get_channel_by_nick(argv(1));
+ profile_load($a,$which);
- if($c) {
- $owner = intval($channel['channel_id']);
- }
+}
- $o = '';
+function editblock_content(&$a) {
- // Figure out which post we're editing
- $post_id = ((argc() > 2) ? intval(argv(2)) : 0);
+ if(! $a->profile) {
+ notice( t('Requested profile is not available.') . EOL );
+ $a->error = 404;
+ return;
+ }
+ $which = argv(1);
- if(! ($post_id && $channel)) {
- notice( t('Item not found') . EOL);
- return;
+ $uid = local_user();
+ $owner = 0;
+ $channel = null;
+ $observer = $a->get_observer();
+
+ $channel = $a->get_channel();
+
+ if($a->is_sys && is_site_admin()) {
+ $sys = get_sys_channel();
+ if($sys && intval($sys['channel_id'])) {
+ $uid = $owner = intval($sys['channel_id']);
+ $channel = $sys;
+ $observer = $sys;
+ }
+ }
+
+ if(! $owner) {
+ // Figure out who the page owner is.
+ $r = q("select channel_id from channel where channel_address = '%s'",
+ dbesc($which)
+ );
+ if($r) {
+ $owner = intval($r[0]['channel_id']);
+ }
}
- // Now we've got a post and an owner, let's find out if we're allowed to edit it
+ $ob_hash = (($observer) ? $observer['xchan_hash'] : '');
- if(! perm_is_allowed($channel['channel_id'],get_observer_hash(),'write_pages')) {
+ if(! perm_is_allowed($owner,$ob_hash,'write_pages')) {
notice( t('Permission denied.') . EOL);
return;
}
+ $is_owner = (($uid && $uid == $owner) ? true : false);
+
+ $o = '';
+
+
+ // Figure out which post we're editing
+ $post_id = ((argc() > 2) ? intval(argv(2)) : 0);
- // We've already figured out which item we want and whose copy we need, so we don't need anything fancy here
+ if(! ($post_id && $owner)) {
+ notice( t('Item not found') . EOL);
+ return;
+ }
+
$itm = q("SELECT * FROM `item` WHERE `id` = %d and uid = %s LIMIT 1",
intval($post_id),
- intval($channel['channel_id'])
+ intval($owner)
);
if($itm) {
$item_id = q("select * from item_id where service = 'BUILDBLOCK' and iid = %d limit 1",
- $itm[0]['id']
+ intval($itm[0]['id'])
);
if($item_id)
$block_title = $item_id[0]['sid'];
@@ -57,10 +99,6 @@ function editblock_content(&$a) {
$plaintext = true;
- // You may or may not be a local user.
-// if(local_user() && feature_enabled(local_user(),'richtext'))
-// $plaintext = false;
-
$mimeselect = '';
$mimetype = $itm[0]['mimetype'];
@@ -79,11 +117,11 @@ function editblock_content(&$a) {
$a->page['htmlhead'] .= replace_macros(get_markup_template('jot-header.tpl'), array(
- '$baseurl' => $a->get_baseurl(),
- '$editselect' => (($plaintext) ? 'none' : '/(profile-jot-text|prvmail-text)/'),
- '$ispublic' => '&nbsp;', // t('Visible to <strong>everybody</strong>'),
- '$geotag' => '',
- '$nickname' => $channel['channel_address'],
+ '$baseurl' => $a->get_baseurl(),
+ '$editselect' => (($plaintext) ? 'none' : '/(profile-jot-text|prvmail-text)/'),
+ '$ispublic' => '&nbsp;', // t('Visible to <strong>everybody</strong>'),
+ '$geotag' => '',
+ '$nickname' => $channel['channel_address'],
'$confirmdelete' => t('Delete block?')
));
@@ -96,62 +134,70 @@ function editblock_content(&$a) {
call_hooks('jot_tool', $jotplugins);
call_hooks('jot_networks', $jotnets);
-
- //$tpl = replace_macros($tpl,array('$jotplugins' => $jotplugins));
-
- // FIXME A return path with $_SESSION doesn't always work for observer - it may WSoD instead of loading a sensible page.
- //So, send folk to the webpage list.
-
$rp = 'blocks/' . $channel['channel_address'];
$o .= replace_macros($tpl,array(
- '$return_path' => $rp,
- '$action' => 'item',
- '$webpage' => ITEM_BUILDBLOCK,
- '$share' => t('Edit'),
- '$upload' => t('Upload photo'),
- '$attach' => t('Attach file'),
- '$weblink' => t('Insert web link'),
- '$youtube' => t('Insert YouTube video'),
- '$video' => t('Insert Vorbis [.ogg] video'),
- '$audio' => t('Insert Vorbis [.ogg] audio'),
- '$setloc' => t('Set your location'),
- '$noloc' => t('Clear browser location'),
- '$wait' => t('Please wait'),
- '$permset' => t('Permission settings'),
- '$ptyp' => $itm[0]['type'],
- '$mimeselect' => $mimeselect,
- '$content' => undo_post_tagging($itm[0]['body']),
- '$post_id' => $post_id,
- '$baseurl' => $a->get_baseurl(),
- '$defloc' => $channel['channel_location'],
- '$visitor' => false,
- '$public' => t('Public post'),
- '$jotnets' => $jotnets,
- '$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'),
- '$lockstate' => $lockstate,
- '$acl' => '',
- '$bang' => '',
- '$profile_uid' => (intval($channel['channel_id'])),
- '$preview' => ((feature_enabled(local_user(),'preview')) ? t('Preview') : ''),
- '$jotplugins' => $jotplugins,
- '$sourceapp' => $itm[0]['app'],
- '$defexpire' => '',
- '$feature_expire' => false,
- '$expires' => t('Set expiration date'),
+ '$return_path' => $rp,
+ '$action' => 'item',
+ '$webpage' => ITEM_BUILDBLOCK,
+ '$share' => t('Edit'),
+ '$upload' => t('Upload photo'),
+ '$attach' => t('Attach file'),
+ '$weblink' => t('Insert web link'),
+ '$youtube' => t('Insert YouTube video'),
+ '$video' => t('Insert Vorbis [.ogg] video'),
+ '$audio' => t('Insert Vorbis [.ogg] audio'),
+ '$setloc' => t('Set your location'),
+ '$noloc' => t('Clear browser location'),
+ '$wait' => t('Please wait'),
+ '$permset' => t('Permission settings'),
+ '$ptyp' => $itm[0]['type'],
+ '$mimeselect' => $mimeselect,
+ '$content' => undo_post_tagging($itm[0]['body']),
+ '$post_id' => $post_id,
+ '$baseurl' => $a->get_baseurl(),
+ '$defloc' => $channel['channel_location'],
+ '$visitor' => false,
+ '$public' => t('Public post'),
+ '$jotnets' => $jotnets,
+ '$title' => htmlspecialchars($itm[0]['title'],ENT_COMPAT,'UTF-8'),
+ '$placeholdertitle' => t('Title (optional)'),
+ '$pagetitle' => $block_title,
+ '$category' => '',
+ '$placeholdercategory' => t('Categories (optional, comma-separated list)'),
+ '$emtitle' => t('Example: bob@example.com, mary@example.com'),
+ '$lockstate' => $lockstate,
+ '$acl' => '',
+ '$bang' => '',
+ '$profile_uid' => (intval($channel['channel_id'])),
+ '$preview' => true, // ((feature_enabled($uid,'preview')) ? t('Preview') : ''),
+ '$jotplugins' => $jotplugins,
+ '$sourceapp' => $itm[0]['app'],
+ '$defexpire' => '',
+ '$feature_expire' => false,
+ '$expires' => t('Set expiration date'),
));
- $ob = get_observer_hash();
-
- if(($itm[0]['author_xchan'] === $ob) || ($itm[0]['owner_xchan'] === $ob))
+ if(($itm[0]['author_xchan'] === $ob_hash) || ($itm[0]['owner_xchan'] === $ob_hash))
$o .= '<br /><br /><a class="block-delete-link" href="item/drop/' . $itm[0]['id'] . '" >' . t('Delete Block') . '</a><br />';
+
+ $x = array(
+ 'type' => 'block',
+ 'title' => $itm[0]['title'],
+ 'body' => $itm[0]['body'],
+ 'term' => $itm[0]['term'],
+ 'created' => $itm[0]['created'],
+ 'edited' => $itm[0]['edited'],
+ 'mimetype' => $itm[0]['mimetype'],
+ 'pagetitle' => $page_title,
+ 'mid' => $itm[0]['mid']
+ );
+
+ $o .= EOL . EOL . t('Share') . EOL . '<textarea onclick="this.select();" class="shareable_element_text" >[element]' . base64url_encode(json_encode($x)) . '[/element]</textarea>' . EOL . EOL;
+
+
return $o;
}
diff --git a/mod/editlayout.php b/mod/editlayout.php
index 1e8a6e990..d76aa484d 100644
--- a/mod/editlayout.php
+++ b/mod/editlayout.php
@@ -1,34 +1,76 @@
<?php
-// What is this here for? I think it's cruft, but comment out for now in case it's here for a reason
-// require_once('acl_selectors.php');
+require_once('include/identity.php');
+require_once('include/acl_selectors.php');
+
+function editlayout_init(&$a) {
+
+ if(argc() > 1 && argv(1) === 'sys' && is_site_admin()) {
+ $sys = get_sys_channel();
+ if($sys && intval($sys['channel_id'])) {
+ $a->is_sys = true;
+ }
+ }
+
+ if(argc() > 1)
+ $which = argv(1);
+ else
+ return;
+
+ profile_load($a,$which);
+
+}
function editlayout_content(&$a) {
-// We first need to figure out who owns the webpage, grab it from an argument
- $which = argv(1);
-// $a->get_channel() and stuff don't work here, so we've got to find the owner for ourselves.
- $r = q("select channel_id from channel where channel_address = '%s'",
- dbesc($which)
+ if(! $a->profile) {
+ notice( t('Requested profile is not available.') . EOL );
+ $a->error = 404;
+ return;
+ }
+
+ $which = argv(1);
+
+ $uid = local_user();
+ $owner = 0;
+ $channel = null;
+ $observer = $a->get_observer();
+
+ $channel = $a->get_channel();
+
+ if($a->is_sys && is_site_admin()) {
+ $sys = get_sys_channel();
+ if($sys && intval($sys['channel_id'])) {
+ $uid = $owner = intval($sys['channel_id']);
+ $channel = $sys;
+ $observer = $sys;
+ }
+ }
+
+ if(! $owner) {
+ // Figure out who the page owner is.
+ $r = q("select channel_id from channel where channel_address = '%s'",
+ dbesc($which)
);
- if($r) {
- $owner = intval($r[0]['channel_id']);
- //logger('owner: ' . print_r($owner,true));
- }
+ if($r) {
+ $owner = intval($r[0]['channel_id']);
+ }
+ }
+ $ob_hash = (($observer) ? $observer['xchan_hash'] : '');
-
-
- if((local_user()) && (argc() > 2) && (argv(2) === 'view')) {
- $which = $channel['channel_address'];
- }
+ if(! perm_is_allowed($owner,$ob_hash,'write_pages')) {
+ notice( t('Permission denied.') . EOL);
+ return;
+ }
+ $is_owner = (($uid && $uid == $owner) ? true : false);
$o = '';
-// Figure out which post we're editing
+ // Figure out which post we're editing
$post_id = ((argc() > 2) ? intval(argv(2)) : 0);
@@ -37,48 +79,41 @@ function editlayout_content(&$a) {
return;
}
-// Now we've got a post and an owner, let's find out if we're allowed to edit it
-
- $observer = $a->get_observer();
- $ob_hash = (($observer) ? $observer['xchan_hash'] : '');
+ // Now we've got a post and an owner, let's find out if we're allowed to edit it
- $perms = get_all_perms($owner,$ob_hash);
+ $ob_hash = (($observer) ? $observer['xchan_hash'] : '');
- if(! $perms['write_pages']) {
- notice( t('Permission denied.') . EOL);
- return;
- }
+ $perms = get_all_perms($owner,$ob_hash);
+ if(! $perms['write_pages']) {
+ notice( t('Permission denied.') . EOL);
+ return;
+ }
-// We've already figured out which item we want and whose copy we need, so we don't need anything fancy here
- $itm = q("SELECT * FROM `item` WHERE `id` = %d and uid = %s LIMIT 1",
- intval($post_id),
- intval($owner)
- );
+ $itm = q("SELECT * FROM `item` WHERE `id` = %d and uid = %s LIMIT 1",
+ intval($post_id),
+ intval($owner)
+ );
$item_id = q("select * from item_id where service = 'PDL' and iid = %d limit 1",
- $itm[0]['id']
+ intval($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,
-// if(feature_enabled(local_user(),'richtext'))
-// $plaintext = false;
$o .= replace_macros(get_markup_template('edpost_head.tpl'), array(
'$title' => t('Edit Layout')
));
-
$a->page['htmlhead'] .= replace_macros(get_markup_template('jot-header.tpl'), array(
- '$baseurl' => $a->get_baseurl(),
- '$editselect' => (($plaintext) ? 'none' : '/(profile-jot-text|prvmail-text)/'),
- '$ispublic' => '&nbsp;', // t('Visible to <strong>everybody</strong>'),
- '$geotag' => $geotag,
- '$nickname' => $a->user['nickname'],
+ '$baseurl' => $a->get_baseurl(),
+ '$editselect' => (($plaintext) ? 'none' : '/(profile-jot-text|prvmail-text)/'),
+ '$ispublic' => '&nbsp;', // t('Visible to <strong>everybody</strong>'),
+ '$geotag' => $geotag,
+ '$nickname' => $channel['channel_address'],
'$confirmdelete' => t('Delete layout?')
));
@@ -91,60 +126,74 @@ function editlayout_content(&$a) {
call_hooks('jot_tool', $jotplugins);
call_hooks('jot_networks', $jotnets);
- $channel = $a->get_channel();
-
- //$tpl = replace_macros($tpl,array('$jotplugins' => $jotplugins));
-//FIXME A return path with $_SESSION doesn't always work for observer - it may WSoD instead of loading a sensible page. So, send folk to the webpage list.
+ // FIXME A return path with $_SESSION doesn't always work for observer - it may WSoD
+ // instead of loading a sensible page. So, send folk to the webpage list.
$rp = '/layouts/' . $which;
$o .= replace_macros($tpl,array(
- '$return_path' => $rp,
- '$action' => 'item',
- '$webpage' => ITEM_PDL,
- '$share' => t('Edit'),
- '$upload' => t('Upload photo'),
- '$attach' => t('Attach file'),
- '$weblink' => t('Insert web link'),
- '$youtube' => t('Insert YouTube video'),
- '$video' => t('Insert Vorbis [.ogg] video'),
- '$audio' => t('Insert Vorbis [.ogg] audio'),
- '$setloc' => t('Set your location'),
- '$noloc' => t('Clear browser location'),
- '$wait' => t('Please wait'),
- '$permset' => t('Permission settings'),
- '$ptyp' => $itm[0]['type'],
- '$content' => undo_post_tagging($itm[0]['body']),
- '$post_id' => $post_id,
- '$baseurl' => $a->get_baseurl(),
- '$defloc' => $channel['channel_location'],
- '$visitor' => false,
- '$public' => t('Public post'),
- '$jotnets' => $jotnets,
- '$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'),
- '$lockstate' => $lockstate,
- '$acl' => '',
- '$bang' => '',
- '$profile_uid' => (intval($owner)),
- '$preview' => ((feature_enabled(local_user(),'preview')) ? t('Preview') : ''),
- '$jotplugins' => $jotplugins,
- '$sourceapp' => t($a->sourcename),
- '$defexpire' => '',
- '$feature_expire' => false,
- '$expires' => t('Set expiration date'),
+ '$return_path' => $rp,
+ '$action' => 'item',
+ '$webpage' => ITEM_PDL,
+ '$share' => t('Edit'),
+ '$upload' => t('Upload photo'),
+ '$attach' => t('Attach file'),
+ '$weblink' => t('Insert web link'),
+ '$youtube' => t('Insert YouTube video'),
+ '$video' => t('Insert Vorbis [.ogg] video'),
+ '$audio' => t('Insert Vorbis [.ogg] audio'),
+ '$setloc' => t('Set your location'),
+ '$noloc' => t('Clear browser location'),
+ '$wait' => t('Please wait'),
+ '$permset' => t('Permission settings'),
+ '$ptyp' => $itm[0]['type'],
+ '$content' => undo_post_tagging($itm[0]['body']),
+ '$post_id' => $post_id,
+ '$baseurl' => $a->get_baseurl(),
+ '$defloc' => $channel['channel_location'],
+ '$visitor' => false,
+ '$public' => t('Public post'),
+ '$jotnets' => $jotnets,
+ '$title' => htmlspecialchars($itm[0]['title'],ENT_COMPAT,'UTF-8'),
+ '$placeholdertitle' => t('Title (optional)'),
+ '$pagetitle' => $layout_title,
+ '$category' => '',
+ '$placeholdercategory' => t('Categories (optional, comma-separated list)'),
+ '$emtitle' => t('Example: bob@example.com, mary@example.com'),
+ '$lockstate' => $lockstate,
+ '$acl' => '',
+ '$bang' => '',
+ '$profile_uid' => (intval($owner)),
+ '$preview' => true, // ((feature_enabled($uid,'preview')) ? t('Preview') : ''),
+ '$jotplugins' => $jotplugins,
+ '$sourceapp' => t($a->sourcename),
+ '$defexpire' => '',
+ '$feature_expire' => false,
+ '$expires' => t('Set expiration date'),
));
- $ob = get_observer_hash();
- if(($itm[0]['author_xchan'] === $ob) || ($itm[0]['owner_xchan'] === $ob))
+ if(($itm[0]['author_xchan'] === $ob_hash) || ($itm[0]['owner_xchan'] === $ob_hash))
$o .= '<br /><br /><a class="layout-delete-link" href="item/drop/' . $itm[0]['id'] . '" >' . t('Delete Layout') . '</a><br />';
+
+ $x = array(
+ 'type' => 'layout',
+ 'title' => $itm[0]['title'],
+ 'body' => $itm[0]['body'],
+ 'term' => $itm[0]['term'],
+ 'created' => $itm[0]['created'],
+ 'edited' => $itm[0]['edited'],
+ 'mimetype' => $itm[0]['mimetype'],
+ 'pagetitle' => $page_title,
+ 'mid' => $itm[0]['mid']
+ );
+
+ $o .= EOL . EOL . t('Share') . EOL . '<textarea onclick="this.select();" class="shareable_element_text" >[element]' . base64url_encode(json_encode($x)) . '[/element]</textarea>' . EOL . EOL;
+
+
+
return $o;
}
diff --git a/mod/editpost.php b/mod/editpost.php
index ed7fcff8a..dfbc8766e 100644
--- a/mod/editpost.php
+++ b/mod/editpost.php
@@ -129,15 +129,15 @@ function editpost_content(&$a) {
'$public' => t('Public post'),
'$jotnets' => $jotnets,
'$title' => htmlspecialchars($itm[0]['title'],ENT_COMPAT,'UTF-8'),
- '$placeholdertitle' => t('Set title'),
+ '$placeholdertitle' => t('Title (optional)'),
'$category' => $category,
- '$placeholdercategory' => t('Categories (comma-separated list)'),
+ '$placeholdercategory' => t('Categories (optional, comma-separated list)'),
'$emtitle' => t('Example: bob@example.com, mary@example.com'),
'$lockstate' => $lockstate,
'$acl' => '',
'$bang' => '',
'$profile_uid' => local_user(),
- '$preview' => ((feature_enabled(local_user(),'preview')) ? t('Preview') : ''),
+ '$preview' => true, // ((feature_enabled(local_user(),'preview')) ? t('Preview') : ''),
'$jotplugins' => $jotplugins,
'$sourceapp' => t($a->sourcename),
'$catsenabled' => $catsenabled,
diff --git a/mod/editwebpage.php b/mod/editwebpage.php
index 9fe76ba98..191c9a9ac 100644
--- a/mod/editwebpage.php
+++ b/mod/editwebpage.php
@@ -1,26 +1,71 @@
<?php
-// Required for setting permissions. (FIXME)
+require_once('include/identity.php');
+require_once('include/acl_selectors.php');
+
+function editwebpage_init(&$a) {
+
+ if(argc() > 1 && argv(1) === 'sys' && is_site_admin()) {
+ $sys = get_sys_channel();
+ if($sys && intval($sys['channel_id'])) {
+ $a->is_sys = true;
+ }
+ }
+
+ if(argc() > 1)
+ $which = argv(1);
+ else
+ return;
+
+ profile_load($a,$which);
+
+}
-require_once('acl_selectors.php');
function editwebpage_content(&$a) {
- // We first need to figure out who owns the webpage, grab it from an argument
+ if(! $a->profile) {
+ notice( t('Requested profile is not available.') . EOL );
+ $a->error = 404;
+ return;
+ }
$which = argv(1);
- // $a->get_channel() and stuff don't work here, so we've got to find the owner for ourselves.
-
- $r = q("select channel_id from channel where channel_address = '%s'",
- dbesc($which)
- );
- if($r) {
- $owner = intval($r[0]['channel_id']);
- //logger('owner: ' . print_r($owner,true));
+ $uid = local_user();
+ $owner = 0;
+ $channel = null;
+ $observer = $a->get_observer();
+
+ $channel = $a->get_channel();
+
+ if($a->is_sys && is_site_admin()) {
+ $sys = get_sys_channel();
+ if($sys && intval($sys['channel_id'])) {
+ $uid = $owner = intval($sys['channel_id']);
+ $channel = $sys;
+ $observer = $sys;
+ }
+ }
+
+ if(! $owner) {
+ // Figure out who the page owner is.
+ $r = q("select channel_id from channel where channel_address = '%s'",
+ dbesc($which)
+ );
+ if($r) {
+ $owner = intval($r[0]['channel_id']);
+ }
+ }
+
+ $ob_hash = (($observer) ? $observer['xchan_hash'] : '');
+
+ if(! perm_is_allowed($owner,$ob_hash,'write_pages')) {
+ notice( t('Permission denied.') . EOL);
+ return;
}
- $is_owner = ((local_user() && local_user() == $owner) ? true : false);
+ $is_owner = (($uid && $uid == $owner) ? true : false);
$o = '';
@@ -33,9 +78,6 @@ function editwebpage_content(&$a) {
return;
}
- // Now we've got a post and an owner, let's find out if we're allowed to edit it
-
- $observer = $a->get_observer();
$ob_hash = (($observer) ? $observer['xchan_hash'] : '');
$perms = get_all_perms($owner,$ob_hash);
@@ -45,14 +87,13 @@ function editwebpage_content(&$a) {
return;
}
+ // We've already figured out which item we want and whose copy we need,
+ // so we don't need anything fancy here
-
- // We've already figured out which item we want and whose copy we need, so we don't need anything fancy here
$itm = q("SELECT * FROM `item` WHERE `id` = %d and uid = %s LIMIT 1",
intval($post_id),
intval($owner)
- );
-
+ );
if($itm[0]['item_flags'] & ITEM_OBSCURED) {
$key = get_config('system','prvkey');
@@ -63,23 +104,17 @@ function editwebpage_content(&$a) {
}
$item_id = q("select * from item_id where service = 'WEBPAGE' and iid = %d limit 1",
- $itm[0]['id']
+ intval($itm[0]['id'])
);
if($item_id)
$page_title = $item_id[0]['sid'];
-
-
-
$plaintext = true;
-// if(feature_enabled($itm[0]['uid'],'richtext'))
-// $plaintext = false;
-
$mimetype = $itm[0]['mimetype'];
if($mimetype === 'application/x-php') {
- if((! local_user()) || (local_user() != $itm[0]['uid'])) {
+ if((! $uid) || ($uid != $itm[0]['uid'])) {
notice( t('Permission denied.') . EOL);
return;
}
@@ -101,7 +136,6 @@ function editwebpage_content(&$a) {
else
$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 +146,7 @@ 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' => $channel['channel_address'],
'$confirmdelete' => t('Delete webpage?')
));
@@ -124,12 +158,9 @@ function editwebpage_content(&$a) {
call_hooks('jot_tool', $jotplugins);
call_hooks('jot_networks', $jotnets);
-
- $channel = $a->get_channel();
-
- //$tpl = replace_macros($tpl,array('$jotplugins' => $jotplugins));
-//FIXME A return path with $_SESSION doesn't always work for observer - it may WSoD instead of loading a sensible page. So, send folk to the webpage list.
+ // FIXME A return path with $_SESSION doesn't always work for observer - it may WSoD
+ // instead of loading a sensible page. So, send folk to the webpage list.
$rp = 'webpages/' . $which;
@@ -164,27 +195,40 @@ function editwebpage_content(&$a) {
'$mimeselect' => $mimeselect,
'$layoutselect' => $layoutselect,
'$title' => htmlspecialchars($itm[0]['title'],ENT_COMPAT,'UTF-8'),
- '$placeholdertitle' => t('Set title'),
+ '$placeholdertitle' => t('Title (optional)'),
'$category' => '',
- '$placeholdercategory' => t('Categories (comma-separated list)'),
+ '$placeholdercategory' => t('Categories (optional, comma-separated list)'),
'$emtitle' => t('Example: bob@example.com, mary@example.com'),
'lockstate' => (((strlen($itm[0]['allow_cid'])) || (strlen($itm[0]['allow_gid'])) || (strlen($itm[0]['deny_cid'])) || (strlen($itm[0]['deny_gid']))) ? 'lock' : 'unlock'),
'$bang' => '',
'$profile_uid' => (intval($owner)),
- '$preview' => ((feature_enabled(local_user(),'preview')) ? t('Preview') : ''),
+ '$preview' => true, // ((feature_enabled($uid,'preview')) ? t('Preview') : ''),
'$jotplugins' => $jotplugins,
- '$sourceapp' => t($a->sourcename),
+ '$sourceapp' => $a->sourcename,
'$defexpire' => '',
'$feature_expire' => false,
'$expires' => t('Set expiration date'),
));
- $ob = get_observer_hash();
-
- if(($itm[0]['author_xchan'] === $ob) || ($itm[0]['owner_xchan'] === $ob))
+ if(($itm[0]['author_xchan'] === $ob_hash) || ($itm[0]['owner_xchan'] === $ob_hash))
$o .= '<br /><br /><a class="page-delete-link" href="item/drop/' . $itm[0]['id'] . '" >' . t('Delete Webpage') . '</a><br />';
+
+ $x = array(
+ 'type' => 'webpage',
+ 'title' => $itm[0]['title'],
+ 'body' => $itm[0]['body'],
+ 'term' => $itm[0]['term'],
+ 'created' => $itm[0]['created'],
+ 'edited' => $itm[0]['edited'],
+ 'mimetype' => $itm[0]['mimetype'],
+ 'pagetitle' => $page_title,
+ 'mid' => $itm[0]['mid']
+ );
+
+ $o .= EOL . EOL . t('Share') . EOL . '<textarea onclick="this.select();" class="shareable_element_text" >[element]' . base64url_encode(json_encode($x)) . '[/element]</textarea>' . EOL . EOL;
+
return $o;
}
diff --git a/mod/events.php b/mod/events.php
index e5250e8f8..e016311d5 100755
--- a/mod/events.php
+++ b/mod/events.php
@@ -12,27 +12,21 @@ function events_post(&$a) {
return;
$event_id = ((x($_POST,'event_id')) ? intval($_POST['event_id']) : 0);
+ $event_hash = ((x($_POST,'event_hash')) ? $_POST['event_hash'] : '');
+
$xchan = ((x($_POST,'xchan')) ? dbesc($_POST['xchan']) : '');
$uid = local_user();
$start_text = escape_tags($_REQUEST['start_text']);
$finish_text = escape_tags($_REQUEST['finish_text']);
- $startyear = intval($_POST['startyear']);
- $startmonth = intval($_POST['startmonth']);
- $startday = intval($_POST['startday']);
- $starthour = intval($_POST['starthour']);
- $startminute = intval($_POST['startminute']);
-
- $finishyear = intval($_POST['finishyear']);
- $finishmonth = intval($_POST['finishmonth']);
- $finishday = intval($_POST['finishday']);
- $finishhour = intval($_POST['finishhour']);
- $finishminute = intval($_POST['finishminute']);
-
$adjust = intval($_POST['adjust']);
$nofinish = intval($_POST['nofinish']);
+ $categories = escape_tags(trim($_POST['category']));
+
+
+
// only allow editing your own events.
if(($xchan) && ($xchan !== get_observer_hash()))
@@ -49,7 +43,7 @@ function events_post(&$a) {
}
if($nofinish) {
- $finish = '0000-00-00 00:00:00';
+ $finish = NULL_DATE;
}
if($finish_text) {
@@ -75,17 +69,22 @@ function events_post(&$a) {
// and we'll waste a bunch of time responding to it. Time that
// could've been spent doing something else.
- if(strcmp($finish,$start) < 0)
- $finish = $start;
$summary = escape_tags(trim($_POST['summary']));
$desc = escape_tags(trim($_POST['desc']));
$location = escape_tags(trim($_POST['location']));
$type = 'event';
+ $action = ($event_hash == '') ? 'new' : "event/" . $event_hash;
+ $onerror_url = $a->get_baseurl() . "/events/" . $action . "?summary=$summary&description=$desc&location=$location&start=$start_text&finish=$finish_text&adjust=$adjust&nofinish=$nofinish";
+ if(strcmp($finish,$start) < 0 && !$nofinish) {
+ notice( t('Event can not end before it has started.') . EOL);
+ goaway($onerror_url);
+ }
+
if((! $summary) || (! $start)) {
notice( t('Event title and start time are required.') . EOL);
- goaway($a->get_baseurl() . '/events/new');
+ goaway($onerror_url);
}
$share = ((intval($_POST['share'])) ? intval($_POST['share']) : 0);
@@ -138,6 +137,22 @@ function events_post(&$a) {
}
}
+ $post_tags = array();
+ $channel = $a->get_channel();
+
+ if(strlen($categories)) {
+ $cats = explode(',',$categories);
+ foreach($cats as $cat) {
+ $post_tags[] = array(
+ 'uid' => $profile_uid,
+ 'type' => TERM_CATEGORY,
+ 'otype' => TERM_OBJ_POST,
+ 'term' => trim($cat),
+ 'url' => $channel['xchan_url'] . '?f=&cat=' . urlencode(trim($cat))
+ );
+ }
+ }
+
$datarray = array();
$datarray['start'] = $start;
$datarray['finish'] = $finish;
@@ -160,6 +175,11 @@ function events_post(&$a) {
$datarray['edited'] = $edited;
$event = event_store_event($datarray);
+
+
+ if($post_tags)
+ $datarray['term'] = $post_tags;
+
$item_id = event_store_item($datarray,$event);
if($share)
@@ -179,14 +199,14 @@ function events_content(&$a) {
nav_set_selected('all_events');
if((argc() > 2) && (argv(1) === 'ignore') && intval(argv(2))) {
- $r = q("update event set ignore = 1 where id = %d and uid = %d limit 1",
+ $r = q("update event set ignore = 1 where id = %d and uid = %d",
intval(argv(2)),
intval(local_user())
);
}
if((argc() > 2) && (argv(1) === 'unignore') && intval(argv(2))) {
- $r = q("update event set ignore = 0 where id = %d and uid = %d limit 1",
+ $r = q("update event set ignore = 0 where id = %d and uid = %d",
intval(argv(2)),
intval(local_user())
);
@@ -248,13 +268,18 @@ function events_content(&$a) {
if($mode == 'view') {
- $thisyear = datetime_convert('UTC',date_default_timezone_get(),'now','Y');
- $thismonth = datetime_convert('UTC',date_default_timezone_get(),'now','m');
+ $thisyear = datetime_convert('UTC',date_default_timezone_get(),'now','Y');
+ $thismonth = datetime_convert('UTC',date_default_timezone_get(),'now','m');
if(! $y)
$y = intval($thisyear);
if(! $m)
$m = intval($thismonth);
+ $export = false;
+ if(argc() === 4 && argv(3) === 'export')
+ $export = true;
+
+
// Put some limits on dates. The PHP date functions don't seem to do so well before 1900.
// An upper limit was chosen to keep search engines from exploring links millions of years in the future.
@@ -310,8 +335,8 @@ function events_content(&$a) {
$r = q("SELECT event.*, item.plink, item.item_flags, item.author_xchan, item.owner_xchan
from event left join item on event_hash = resource_id
where resource_type = 'event' and event.uid = %d and event.ignore = %d
- AND (( `adjust` = 0 AND ( `finish` >= '%s' or nofinish ) AND `start` <= '%s' )
- OR ( `adjust` = 1 AND ( `finish` >= '%s' or nofinish ) AND `start` <= '%s' )) ",
+ AND (( `adjust` = 0 AND ( `finish` >= '%s' or nofinish = 1 ) AND `start` <= '%s' )
+ OR ( `adjust` = 1 AND ( `finish` >= '%s' or nofinish = 1 ) AND `start` <= '%s' )) ",
intval(local_user()),
intval($ignored),
dbesc($start),
@@ -393,6 +418,12 @@ function events_content(&$a) {
}
}
+ if($export) {
+ header('Content-type: text/calendar');
+ echo ical_wrapper($r);
+ killme();
+ }
+
if ($a->argv[1] === 'json'){
echo json_encode($events); killme();
}
@@ -412,6 +443,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'),'',''),
+ '$export' => array($a->get_baseurl()."/events/$y/$m/export",t('Export'),'',''),
'$calendar' => cal($y,$m,$links, ' eventcal'),
'$events' => $events,
@@ -435,6 +467,19 @@ function events_content(&$a) {
$channel = $a->get_channel();
+ // Passed parameters overrides anything found in the DB
+ if($mode === 'edit' || $mode === 'new') {
+ if(!x($orig_event)) $orig_event = array();
+ // In case of an error the browser is redirected back here, with these parameters filled in with the previous values
+ if(x($_REQUEST,'nofinish')) $orig_event['nofinish'] = $_REQUEST['nofinish'];
+ if(x($_REQUEST,'adjust')) $orig_event['adjust'] = $_REQUEST['adjust'];
+ if(x($_REQUEST,'summary')) $orig_event['summary'] = $_REQUEST['summary'];
+ if(x($_REQUEST,'description')) $orig_event['description'] = $_REQUEST['description'];
+ if(x($_REQUEST,'location')) $orig_event['location'] = $_REQUEST['location'];
+ if(x($_REQUEST,'start')) $orig_event['start'] = $_REQUEST['start'];
+ if(x($_REQUEST,'finish')) $orig_event['finish'] = $_REQUEST['finish'];
+ }
+
if($mode === 'edit' || $mode === 'new') {
$n_checked = ((x($orig_event) && $orig_event['nofinish']) ? ' checked="checked" ' : '');
@@ -485,8 +530,25 @@ function events_content(&$a) {
if(! $f)
$f = 'ymd';
- $dateformat = datesel_format($f);
- $timeformat = t('hour:minute');
+ $catsenabled = feature_enabled(local_user(),'categories');
+
+ $category = '';
+
+ if($catsenabled && x($orig_event)){
+ $itm = q("select * from item where resource_type = 'event' and resource_id = '%s' and uid = %d limit 1",
+ dbesc($orig_event['event_hash']),
+ intval(local_user())
+ );
+ $itm = fetch_post_tags($itm);
+ if($itm) {
+ $cats = get_terms_oftype($itm[0]['term'], TERM_CATEGORY);
+ foreach ($cats as $cat) {
+ if(strlen($category))
+ $category .= ', ';
+ $category .= $cat['term'];
+ }
+ }
+ }
require_once('include/acl_selectors.php');
@@ -499,30 +561,28 @@ function events_content(&$a) {
$tpl = get_markup_template('event_form.tpl');
-
$o .= replace_macros($tpl,array(
'$post' => $a->get_baseurl() . '/events',
'$eid' => $eid,
'$xchan' => $event_xchan,
'$mid' => $mid,
+ '$event_hash' => $event_id,
'$title' => t('Event details'),
- '$format_desc' => sprintf( t('Format is %s %s.'),$dateformat,$timeformat),
'$desc' => t('Starting date and Title are required.'),
-
+ '$catsenabled' => $catsenabled,
+ '$placeholdercategory' => t('Categories (comma-separated list)'),
+ '$category' => $category,
'$s_text' => t('Event Starts:') . ' <span class="required" title="' . t('Required') . '">*</span>',
- '$bootstrap' => 1,
'$stext' => $stext,
'$ftext' => $ftext,
'$ModalCANCEL' => t('Cancel'),
'$ModalOK' => t('OK'),
- '$s_dsel' => datesel($f,'start',$syear+5,$syear,false,$syear,$smonth,$sday),
- '$s_tsel' => timesel('start',$shour,$sminute),
+ '$s_dsel' => datetimesel($f,new DateTime(),DateTime::createFromFormat('Y',$syear+5),DateTime::createFromFormat('Y-m-d H:i',"$syear-$smonth-$sday $shour:$sminute"),'start_text'),
'$n_text' => t('Finish date/time is not known or not relevant'),
'$n_checked' => $n_checked,
'$f_text' => t('Event Finishes:'),
- '$f_dsel' => datesel($f,'finish',$fyear+5,$fyear,false,$fyear,$fmonth,$fday),
- '$f_tsel' => timesel('finish',$fhour,$fminute),
+ '$f_dsel' => datetimesel($f,new DateTime(),DateTime::createFromFormat('Y',$fyear+5),DateTime::createFromFormat('Y-m-d H:i',"$fyear-$fmonth-$fday $fhour:$fminute"),'finish_text',true,true,'start_text'),
'$a_text' => t('Adjust for viewer timezone'),
'$a_checked' => $a_checked,
'$d_text' => t('Description:'),
@@ -533,6 +593,7 @@ function events_content(&$a) {
'$t_orig' => $t_orig,
'$sh_text' => t('Share this event'),
'$sh_checked' => $sh_checked,
+ '$permissions' => t('Permissions'),
'$acl' => (($orig_event['event_xchan']) ? '' : populate_acl(((x($orig_event)) ? $orig_event : $perm_defaults),false)),
'$submit' => t('Submit')
diff --git a/mod/feed.php b/mod/feed.php
index fdbe4db8c..3b622fc17 100644
--- a/mod/feed.php
+++ b/mod/feed.php
@@ -7,11 +7,14 @@ function feed_init(&$a) {
$params = array();
- $params['begin'] = ((x($_REQUEST,'date_begin')) ? $_REQUEST['date_begin'] : '0000-00-00 00:00:00');
+ $params['begin'] = ((x($_REQUEST,'date_begin')) ? $_REQUEST['date_begin'] : NULL_DATE);
$params['end'] = ((x($_REQUEST,'date_end')) ? $_REQUEST['date_end'] : '');
$params['type'] = ((stristr(argv(0),'json')) ? 'json' : 'xml');
$params['pages'] = ((x($_REQUEST,'pages')) ? intval($_REQUEST['pages']) : 0);
$params['top'] = ((x($_REQUEST,'top')) ? intval($_REQUEST['top']) : 0);
+ $params['start'] = ((x($params,'start')) ? intval($params['start']) : 0);
+ $params['records'] = ((x($params,'records')) ? intval($params['records']) : 40);
+ $params['direction'] = ((x($params,'direction')) ? dbesc($params['direction']) : 'desc');
$channel = '';
if(argc() > 1) {
diff --git a/mod/filer.php b/mod/filer.php
index 3340fc999..9a409177c 100644
--- a/mod/filer.php
+++ b/mod/filer.php
@@ -27,7 +27,7 @@ function filer_content(&$a) {
intval(local_user())
);
if($r) {
- $x = q("update item set item_flags = ( item_flags | %d ) where id = %d and uid = %d limit 1",
+ $x = q("update item set item_flags = ( item_flags | %d ) where id = %d and uid = %d",
intval(ITEM_RETAINED),
intval($r[0]['parent']),
intval(local_user())
diff --git a/mod/filerm.php b/mod/filerm.php
index a37e80b31..900cfe60b 100644
--- a/mod/filerm.php
+++ b/mod/filerm.php
@@ -18,7 +18,7 @@ function filerm_content(&$a) {
logger('filerm: tag ' . $term . ' item ' . $item_id);
if($item_id && strlen($term)) {
- $r = q("delete from term where uid = %d and type = %d and oid = %d and term = '%s' limit 1",
+ $r = q("delete from term where uid = %d and type = %d and oid = %d and term = '%s'",
intval(local_user()),
intval(($category) ? TERM_CATEGORY : TERM_FILE),
intval($item_id),
diff --git a/mod/filestorage.php b/mod/filestorage.php
index 383af84fc..e27087a92 100644
--- a/mod/filestorage.php
+++ b/mod/filestorage.php
@@ -1,18 +1,26 @@
<?php
+/**
+ * @file mod/filestorage.php
+ *
+ */
require_once('include/attach.php');
+/**
+ *
+ * @param object &$a
+ */
function filestorage_post(&$a) {
- $channel_id = ((x($_POST,'uid')) ? intval($_POST['uid']) : 0);
+ $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']) : '');
+ $recurse = ((x($_POST, 'recurse')) ? intval($_POST['recurse']) : 0);
+ $resource = ((x($_POST, 'filehash')) ? notags($_POST['filehash']) : '');
if(! $resource) {
notice(t('Item not found.') . EOL);
@@ -24,11 +32,11 @@ function filestorage_post(&$a) {
$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);
+ attach_change_permissions($channel_id, $resource, $str_contact_allow, $str_group_allow, $str_contact_deny,$str_group_deny, $recurse = false);
//Build directory tree and redirect
$channel = $a->get_channel();
- $cloudPath = get_parent_cloudpath($channel_id, $channel['channel_address'], $resource) ;
+ $cloudPath = get_parent_cloudpath($channel_id, $channel['channel_address'], $resource);
goaway($cloudPath);
}
@@ -53,15 +61,15 @@ function filestorage_content(&$a) {
$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;
}
- // 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.
+ // 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) {
@@ -69,7 +77,6 @@ function filestorage_content(&$a) {
return;
}
-
if(argc() > 3 && argv(3) === 'delete') {
if(! $perms['write_storage']) {
notice( t('Permission denied.') . EOL);
@@ -77,7 +84,7 @@ function filestorage_content(&$a) {
}
$file = intval(argv(2));
- $r = q("select hash from attach where id = %d and uid = %d limit 1",
+ $r = q("SELECT hash FROM attach WHERE id = %d AND uid = %d LIMIT 1",
dbesc($file),
intval($owner)
);
@@ -86,11 +93,15 @@ function filestorage_content(&$a) {
goaway(z_root() . '/cloud/' . $which);
}
- attach_delete($owner,$r[0]['hash']);
-
- goaway(z_root() . '/cloud/' . $which);
- }
+ $f = $r[0];
+ $channel = $a->get_channel();
+
+ $parentpath = get_parent_cloudpath($channel['channel_id'], $channel['channel_address'], $f['hash']);
+ attach_delete($owner, $f['hash']);
+
+ goaway($parentpath);
+ }
if(argc() > 3 && argv(3) === 'edit') {
require_once('include/acl_selectors.php');
@@ -106,18 +117,16 @@ function filestorage_content(&$a) {
);
$f = $r[0];
-
$channel = $a->get_channel();
$cloudpath = get_cloudpath($f) . (($f['flags'] & ATTACH_FLAG_DIR) ? '?f=&davguest=1' : '');
$parentpath = get_parent_cloudpath($channel['channel_id'], $channel['channel_address'], $f['hash']);
- $aclselect_e = populate_acl($f,false);
+ $aclselect_e = populate_acl($f, false);
$is_a_dir = (($f['flags'] & ATTACH_FLAG_DIR) ? true : false);
$lockstate = (($f['allow_cid'] || $f['allow_gid'] || $f['deny_cid'] || $f['deny_gid']) ? 'lock' : 'unlock');
-
$o = replace_macros(get_markup_template('attach_edit.tpl'), array(
'$header' => t('Edit file permissions'),
'$file' => $f,
@@ -135,12 +144,10 @@ function filestorage_content(&$a) {
'$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;
- }
+ }
goaway(z_root() . '/cloud/' . $which);
-
}
diff --git a/mod/fsuggest.php b/mod/fsuggest.php
index 8b6f077d3..2f4f9606b 100644
--- a/mod/fsuggest.php
+++ b/mod/fsuggest.php
@@ -52,7 +52,7 @@ function fsuggest_post(&$a) {
);
if(count($r)) {
$fsuggest_id = $r[0]['id'];
- q("UPDATE `fsuggest` SET `note` = '%s' WHERE `id` = %d AND `uid` = %d LIMIT 1",
+ q("UPDATE `fsuggest` SET `note` = '%s' WHERE `id` = %d AND `uid` = %d",
dbesc($note),
intval($fsuggest_id),
intval(local_user())
diff --git a/mod/group.php b/mod/group.php
index 9b90b1a1a..f67623a83 100644
--- a/mod/group.php
+++ b/mod/group.php
@@ -44,7 +44,7 @@ function group_post(&$a) {
$public = intval($_POST['public']);
if((strlen($groupname)) && (($groupname != $group['name']) || ($public != $group['visible']))) {
- $r = q("UPDATE `groups` 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",
dbesc($groupname),
intval($public),
intval(local_user()),
@@ -117,7 +117,7 @@ function group_content(&$a) {
check_form_security_token_ForbiddenOnErr('group_member_change', 't');
- $r = q("SELECT abook_xchan from abook left join xchan on abook_xchan = xchan_hash 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",
+ $r = q("SELECT abook_xchan from abook left join xchan on abook_xchan = xchan_hash where abook_xchan = '%s' and abook_channel = %d and not (xchan_flags & %d)>0 and not (abook_flags & %d)>0 and not (abook_flags & %d)>0 limit 1",
dbesc(base64url_decode(argv(2))),
intval(local_user()),
intval(XCHAN_FLAGS_DELETED),
@@ -211,7 +211,7 @@ 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 (xchan_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)>0 and not (xchan_flags & %d)>0 and not (abook_flags & %d)>0 order by xchan_name asc",
intval(local_user()),
intval(ABOOK_FLAG_BLOCKED),
intval(XCHAN_FLAGS_DELETED),
diff --git a/mod/help.php b/mod/help.php
index 81ecd6ba9..a3dafcc9b 100644
--- a/mod/help.php
+++ b/mod/help.php
@@ -34,8 +34,6 @@ function help_content(&$a) {
$doctype = 'markdown';
- require_once('library/markdown.php');
-
$text = '';
if(argc() > 1) {
@@ -73,17 +71,22 @@ function help_content(&$a) {
));
}
- $text = preg_replace_callback("/#include (.*?)\;/ism", 'preg_callback_help_include', $text);
-
if($doctype === 'html')
$content = $text;
- if($doctype === 'markdown')
+ if($doctype === 'markdown') {
+ require_once('library/markdown.php');
+ # escape #include tags
+ $text = preg_replace('/#include/ism', '%%include', $text);
$content = Markdown($text);
+ $content = preg_replace('/%%include/ism', '#include', $content);
+ }
if($doctype === 'bbcode') {
require_once('include/bbcode.php');
$content = bbcode($text);
}
+ $content = preg_replace_callback("/#include (.*?)\;/ism", 'preg_callback_help_include', $content);
+
return replace_macros(get_markup_template("help.tpl"), array(
'$content' => $content
));
@@ -93,8 +96,17 @@ function help_content(&$a) {
function preg_callback_help_include($matches) {
- if($matches[1])
- return str_replace($matches[0],load_doc_file($matches[1]),$matches[0]);
+ if($matches[1]) {
+ $include = str_replace($matches[0],load_doc_file($matches[1]),$matches[0]);
+ if(preg_match('/\.bb$/', $matches[1]) || preg_match('/\.txt$/', $matches[1])) {
+ require_once('include/bbcode.php');
+ $include = bbcode($include);
+ } elseif(preg_match('/\.md$/', $matches[1])) {
+ require_once('library/markdown.php');
+ $include = Markdown($include);
+ }
+ return $include;
+ }
}
diff --git a/mod/home.php b/mod/home.php
index bc352976d..b2538795f 100644
--- a/mod/home.php
+++ b/mod/home.php
@@ -9,9 +9,10 @@ function home_init(&$a) {
$ret = array();
call_hooks('home_init',$ret);
- $channel = $a->get_channel();
+ $splash = ((argc() > 1 && argv(1) === 'splash') ? true : false);
- if(local_user() && $channel && $channel['xchan_url']) {
+ $channel = $a->get_channel();
+ if(local_user() && $channel && $channel['xchan_url'] && ! $splash) {
$dest = $channel['channel_startpage'];
if(! $dest)
$dest = get_pconfig(local_user(),'system','startpage');
@@ -23,14 +24,14 @@ function home_init(&$a) {
goaway($dest);
}
- if(get_account_id()) {
+ if(get_account_id() && ! $splash) {
goaway(z_root() . '/new_channel');
}
}
-function home_content(&$a) {
+function home_content(&$a, $update = 0, $load = false) {
$o = '';
@@ -39,10 +40,31 @@ function home_content(&$a) {
if(x($_SESSION,'mobile_theme'))
unset($_SESSION['mobile_theme']);
+ $splash = ((argc() > 1 && argv(1) === 'splash') ? true : false);
+
+ if(get_config('system','projecthome')) {
+ $o .= file_get_contents('assets/home.html');
+ $a->page['template'] = 'full';
+ $a->page['title'] = t('Red Matrix - &quot;The Network&quot;');
+ return $o;
+ }
+
+
+ // Deprecated
$channel_address = get_config("system", "site_channel" );
- if ($channel_address){
+
+ // See if the sys channel set a homepage
+ if (! $channel_address) {
+ require_once('include/identity.php');
+ $u = get_sys_channel();
+ if ($u) {
+ $u = array($u);
+ // change to channel_id when below deprecated and skip the $u=...
+ $channel_address = $u[0]['channel_address'];
+ }
+ }
- // We can do better, but until we figure out auto-linkification, let's keep things simple
+ if($channel_address) {
$page_id = 'home';
@@ -50,11 +72,6 @@ function home_content(&$a) {
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",
@@ -63,39 +80,161 @@ function home_content(&$a) {
intval(ITEM_WEBPAGE)
);
- if(! $r) {
- notice( t('Item not found.') . EOL);
- return;
+ if($r) {
+ xchan_query($r);
+ $r = fetch_post_tags($r,true);
+ $a->profile = array('profile_uid' => $u[0]['channel_id']);
+ $a->profile_uid = $u[0]['channel_id'];
+ $o .= prepare_page($r[0]);
+ return $o;
}
-
- 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(get_config('system','projecthome')) {
- $o .= file_get_contents('assets/home.html');
- $a->page['template'] = 'full';
- $a->page['title'] = t('Red Matrix - &quot;The Network&quot;');
- return $o;
- }
+ // Nope, we didn't find an item. Let's see if there's any html
if(file_exists('home.html')) {
$o .= file_get_contents('home.html');
}
else {
-
- // If there's no site channel or home contents configured, fallback to the old behaviour
-
$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);
+
+ if(intval(get_config('system','block_public')) && (! local_user()) && (! remote_user())) {
+ // If there's nothing special happening, just spit out a login box
+
+ if (! $a->config['system']['no_login_on_homepage'])
+ $o .= login(($a->config['system']['register_policy'] == REGISTER_CLOSED) ? 0 : 1);
+ return $o;
+ }
+ else {
+
+ if(! $update) {
+
+ $maxheight = get_config('system','home_divmore_height');
+ if(! $maxheight)
+ $maxheight = 75;
+
+ $o .= '<div id="live-home"></div>' . "\r\n";
+ $o .= "<script> var profile_uid = " . ((intval(local_user())) ? local_user() : (-1))
+ . "; var profile_page = " . $a->pager['page']
+ . "; divmore_height = " . intval($maxheight) . "; </script>\r\n";
+
+ $a->page['htmlhead'] .= replace_macros(get_markup_template("build_query.tpl"),array(
+ '$baseurl' => z_root(),
+ '$pgtype' => 'home',
+ '$uid' => ((local_user()) ? local_user() : '0'),
+ '$gid' => '0',
+ '$cid' => '0',
+ '$cmin' => '0',
+ '$cmax' => '99',
+ '$star' => '0',
+ '$liked' => '0',
+ '$conv' => '0',
+ '$spam' => '0',
+ '$fh' => '1',
+ '$nouveau' => '0',
+ '$wall' => '0',
+ '$list' => '0',
+ '$page' => (($a->pager['page'] != 1) ? $a->pager['page'] : 1),
+ '$search' => '',
+ '$order' => 'comment',
+ '$file' => '',
+ '$cats' => '',
+ '$tags' => '',
+ '$dend' => '',
+ '$mid' => '',
+ '$dbegin' => ''
+ ));
+ }
+
+ if($update && ! $load) {
+ // only setup pagination on initial page view
+ $pager_sql = '';
+ }
+ else {
+ $a->set_pager_itemspage(20);
+ $pager_sql = sprintf(" LIMIT %d OFFSET %d ", intval($a->pager['itemspage']), intval($a->pager['start']));
+ }
+
+ require_once('include/identity.php');
+ $sys = get_sys_channel();
+ $uids = " and item.uid = " . intval($sys['channel_id']) . " ";
+ $a->data['firehose'] = intval($sys['channel_id']);
+
+ $page_mode = 'list';
+
+ $simple_update = (($update) ? " and ( item.item_flags & " . intval(ITEM_UNSEEN) . " ) > 0 " : '');
+
+ if($update && $_SESSION['loadtime'])
+ $simple_update .= " and item.changed > '" . datetime_convert('UTC','UTC',$_SESSION['loadtime']) . "' ";
+ if($load)
+ $simple_update = '';
+
+ //logger('update: ' . $update . ' load: ' . $load);
+
+ if($update) {
+
+ $ordering = "commented";
+
+ if($load) {
+
+ $_SESSION['loadtime'] = datetime_convert();
+
+ // Fetch a page full of parent items for this page
+
+ $r = q("SELECT distinct item.id AS item_id, $ordering FROM item
+ left join abook on item.author_xchan = abook.abook_xchan
+ WHERE true $uids AND item.item_restrict = 0
+ AND item.parent = item.id
+ and ((abook.abook_flags & %d) = 0 or abook.abook_flags is null)
+ $sql_extra3 $sql_extra $sql_nets
+ ORDER BY $ordering DESC $pager_sql ",
+ intval(ABOOK_FLAG_BLOCKED)
+ );
+
+ }
+
+ // Then fetch all the children of the parents that are on this page
+ $parents_str = '';
+ $update_unseen = '';
+
+ if($r) {
+
+ $parents_str = ids_to_querystr($r,'item_id');
+
+ $items = q("SELECT item.*, item.id AS item_id FROM item
+ WHERE true $uids AND item.item_restrict = 0
+ AND item.parent IN ( %s )
+ $sql_extra ",
+ dbesc($parents_str)
+ );
+
+ xchan_query($items,true,(-1));
+ $items = fetch_post_tags($items,true);
+ $items = conv_sort($items,$ordering);
+ }
+ else {
+ $items = array();
+ }
+
+ }
+
+ // fake it
+ $mode = ('network');
+
+ $o .= conversation($a,$items,$mode,$update,$page_mode);
+
+ if(($items) && (! $update))
+ $o .= alt_pager($a,count($items));
+
+ return $o;
+
+ }
+ call_hooks('home_content',$o);
+ return $o;
}
-
- call_hooks('home_content',$o);
- return $o;
-}
+
+ return $o;
+
+} \ No newline at end of file
diff --git a/mod/impel.php b/mod/impel.php
new file mode 100644
index 000000000..1c7541bef
--- /dev/null
+++ b/mod/impel.php
@@ -0,0 +1,121 @@
+<?php /** @file */
+
+// import page design element
+
+
+function impel_init(&$a) {
+
+ $ret = array('success' => false);
+
+ if(! local_user())
+ json_return_and_die($ret);
+
+ logger('impel: ' . print_r($_REQUEST,true), LOGGER_DATA);
+
+ $elm = $_REQUEST['element'];
+ $x = base64url_decode($elm);
+ if(! $x)
+ json_return_and_die($ret);
+
+ $j = json_decode($x,true);
+ if(! $j)
+ json_return_and_die($ret);
+
+
+ $channel = $a->get_channel();
+
+ $arr = array();
+
+ switch($j['type']) {
+ case 'webpage':
+ $arr['item_restrict'] = ITEM_WEBPAGE;
+ $namespace = 'WEBPAGE';
+ $installed_type = t('webpage');
+ break;
+ case 'block':
+ $arr['item_restrict'] = ITEM_BUILDBLOCK;
+ $namespace = 'BUILDBLOCK';
+ $installed_type = t('block');
+ break;
+ case 'layout':
+ $arr['item_restrict'] = ITEM_PDL;
+ $namespace = 'PDL';
+ $installed_type = t('layout');
+ break;
+ default:
+ logger('mod_impel: unrecognised element type' . print_r($j,true));
+ break;
+ }
+ $arr['uid'] = local_user();
+ $arr['aid'] = $channel['channel_account_id'];
+ $arr['title'] = $j['title'];
+ $arr['body'] = $j['body'];
+ $arr['term'] = $j['term'];
+ $arr['created'] = datetime_convert('UTC','UTC', $j['created']);
+ $arr['edited'] = datetime_convert('UTC','UTC',$j['edited']);
+ $arr['owner_xchan'] = get_observer_hash();
+ $arr['author_xchan'] = (($j['author_xchan']) ? $j['author_xchan'] : get_observer_hash());
+ $arr['mimetype'] = (($j['mimetype']) ? $j['mimetype'] : 'text/bbcode');
+
+ if(! $j['mid'])
+ $j['mid'] = item_message_id();
+
+ $arr['mid'] = $arr['parent_mid'] = $j['mid'];
+
+
+ if($j['pagetitle']) {
+ require_once('library/urlify/URLify.php');
+ $pagetitle = strtolower(URLify::transliterate($j['pagetitle']));
+ }
+
+
+
+ // Verify ability to use html or php!!!
+
+ $execflag = false;
+
+ if($arr['mimetype'] === 'application/x-php') {
+ $z = q("select account_id, account_roles from account left join channel on channel_account_id = account_id where channel_id = %d limit 1",
+ intval(local_user())
+ );
+
+ if($z && ($z[0]['account_roles'] & ACCOUNT_ROLE_ALLOWCODE)) {
+ $execflag = true;
+ }
+ }
+
+ $remote_id = 0;
+
+ $z = q("select * from item_id where sid = '%s' and service = '%s' and uid = %d limit 1",
+ dbesc($pagetitle),
+ dbesc($namespace),
+ intval(local_user())
+ );
+ $i = q("select id from item where mid = '%s' and uid = %d limit 1",
+ dbesc($arr['mid']),
+ intval(local_user())
+ );
+ if($z && $i) {
+ $remote_id = $z[0]['id'];
+ $arr['id'] = $i[0]['id'];
+ // don't update if it has the same timestamp as the original
+ if($arr['edited'] > $i[0]['edited'])
+ $x = item_store_update($arr,$execflag);
+ }
+ else {
+ $x = item_store($arr,$execflag);
+ }
+ if($x['success'])
+ $item_id = $x['item_id'];
+
+
+ update_remote_id($channel,$item_id,$arr['item_restrict'],$pagetitle,$namespace,$remote_id,$arr['mid']);
+
+
+ $ret['success'] = true;
+
+ info( sprintf( t('%s element installed'), $installed_type));
+
+ json_return_and_die(true);
+
+} \ No newline at end of file
diff --git a/mod/import.php b/mod/import.php
index e732c3c06..c9a4edb67 100644
--- a/mod/import.php
+++ b/mod/import.php
@@ -9,13 +9,28 @@ require_once('include/identity.php');
function import_post(&$a) {
- if(! get_account_id()) {
+ $account_id = get_account_id();
+ if(! $account_id)
return;
+
+ $max_identities = account_service_class_fetch($account_id,'total_identities');
+ $max_friends = account_service_class_fetch($account_id,'total_channels');
+ $max_feeds = account_service_class_fetch($account_id,'total_feeds');
+
+ if($max_identities !== false) {
+ $r = q("select channel_id from channel where channel_account_id = %d",
+ intval($account_id)
+ );
+ if($r && count($r) > $max_identities) {
+ notice( sprintf( t('Your service plan only allows %d channels.'), $max_identities) . EOL);
+ return;
+ }
}
+
$data = null;
$seize = ((x($_REQUEST,'make_primary')) ? intval($_REQUEST['make_primary']) : 0);
-
+ $import_posts = ((x($_REQUEST,'import_posts')) ? intval($_REQUEST['import_posts']) : 0);
$src = $_FILES['filename']['tmp_name'];
$filename = basename($_FILES['filename']['name']);
$filesize = intval($_FILES['filename']['size']);
@@ -45,6 +60,8 @@ function import_post(&$a) {
$scheme = 'https://';
$api_path = '/api/red/channel/export/basic?f=&channel=' . $channelname;
+ if($import_posts)
+ $api_path .= '&posts=1';
$binary = false;
$redirects = 0;
$opts = array('http_auth' => $email . ':' . $password);
@@ -84,9 +101,33 @@ function import_post(&$a) {
// We should probably also verify the hash
if($r) {
- logger('mod_import: duplicate channel. ', print_r($channel,true));
- notice( t('Cannot create a duplicate channel identifier on this system. Import failed.') . EOL);
- return;
+ if($r[0]['channel_guid'] === $channel['channel_guid'] || $r[0]['channel_hash'] === $channel['channel_hash']) {
+ logger('mod_import: duplicate channel. ', print_r($channel,true));
+ notice( t('Cannot create a duplicate channel identifier on this system. Import failed.') . EOL);
+ return;
+ }
+ else {
+ // try at most ten times to generate a unique address.
+ $x = 0;
+ $found_unique = false;
+ do {
+ $tmp = $channel['channel_address'] . mt_rand(1000,9999);
+ $r = q("select * from channel where channel_address = '%s' limit 1",
+ dbesc($tmp)
+ );
+ if(! $r) {
+ $channel['channel_address'] = $tmp;
+ $found_unique = true;
+ break;
+ }
+ $x ++;
+ } while ($x < 10);
+ if(! $found_unique) {
+ logger('mod_import: duplicate channel. randomisation failed.', print_r($channel,true));
+ notice( t('Unable to create a unique channel address. Import failed.') . EOL);
+ return;
+ }
+ }
}
unset($channel['channel_id']);
@@ -198,7 +239,7 @@ function import_post(&$a) {
// reset the original primary hubloc if it is being seized
if($seize)
- $r = q("update hubloc set hubloc_flags = (hubloc_flags ^ %d) where (hubloc_flags & %d) and hubloc_hash = '%s' and hubloc_url != '%s' ",
+ $r = q("update hubloc set hubloc_flags = (hubloc_flags & ~%d) where (hubloc_flags & %d)>0 and hubloc_hash = '%s' and hubloc_url != '%s' ",
intval(HUBLOC_FLAGS_PRIMARY),
intval(HUBLOC_FLAGS_PRIMARY),
dbesc($channel['channel_hash']),
@@ -211,7 +252,7 @@ function import_post(&$a) {
// replace our existing xchan if we're seizing control
- $r = q("delete from xchan where xchan_hash = '%s' limit 1",
+ $r = q("delete from xchan where xchan_hash = '%s'",
dbesc($channel['channel_hash'])
);
@@ -256,12 +297,12 @@ function import_post(&$a) {
require_once('include/photo/photo_driver.php');
$photos = import_profile_photo($xchan['xchan_photo_l'],$xchan['xchan_hash']);
if($photos[4])
- $photodate = '0000-00-00 00:00:00';
+ $photodate = NULL_DATE;
else
$photodate = $xchan['xchan_photo_date'];
$r = q("update xchan set xchan_photo_l = '%s', xchan_photo_m = '%s', xchan_photo_s = '%s', xchan_photo_mimetype = '%s', xchan_photo_date = '%s'
- where xchan_hash = '%s' limit 1",
+ where xchan_hash = '%s'",
dbesc($photos[0]),
dbesc($photos[1]),
dbesc($photos[2]),
@@ -276,10 +317,18 @@ function import_post(&$a) {
// FIXME - ensure we have an xchan if somebody is trying to pull a fast one
+ $friends = 0;
+ $feeds = 0;
+
// import contacts
$abooks = $data['abook'];
if($abooks) {
foreach($abooks as $abook) {
+ if($max_friends !== false && $friends > $max_friends)
+ continue;
+ if($max_feeds !== false && ($abook['abook_flags'] & ABOOK_FLAG_FEED) && $feeds > $max_feeds)
+ continue;
+
unset($abook['abook_id']);
$abook['abook_account'] = get_account_id();
$abook['abook_channel'] = $channel['channel_id'];
@@ -289,6 +338,10 @@ function import_post(&$a) {
. "`) VALUES ('"
. implode("', '", array_values($abook))
. "')" );
+
+ $friends ++;
+ if($abook['abook_flags'] & ABOOK_FLAG_FEED)
+ $feeds ++;
}
}
@@ -315,7 +368,7 @@ function import_post(&$a) {
unset($group['id']);
$group['uid'] = $channel['channel_id'];
dbesc_array($group);
- $r = dbq("INSERT INTO group (`"
+ $r = dbq("INSERT INTO groups (`"
. implode("`, `", array_keys($group))
. "`) VALUES ('"
. implode("', '", array_values($group))
@@ -349,18 +402,75 @@ function import_post(&$a) {
}
}
-// FIXME - ensure we have a self entry if somebody is trying to pull a fast one
+ $saved_notification_flags = notifications_off($channel['channel_id']);
- if($seize) {
- // notify old server that it is no longer primary.
-
+ if($import_posts && array_key_exists('item',$data) && $data['item']) {
+
+ foreach($data['item'] as $i) {
+ $item = get_item_elements($i);
+
+ $r = q("select id, edited from item where mid = '%s' and uid = %d limit 1",
+ dbesc($item['mid']),
+ intval($channel['channel_id'])
+ );
+ if($r) {
+ if($item['edited'] > $r[0]['edited']) {
+ $item['id'] = $r[0]['id'];
+ $item['uid'] = $channel['channel_id'];
+ item_store_update($item);
+ continue;
+ }
+ }
+ else {
+ $item['aid'] = $channel['channel_account_id'];
+ $item['uid'] = $channel['channel_id'];
+ $item_result = item_store($item);
+ }
+
+ }
+
+ }
+
+ notifications_on($channel['channel_id'],$saved_notification_flags);
+
+ if(array_key_exists('item_id',$data) && $data['item_id']) {
+ foreach($data['item_id'] as $i) {
+ $r = q("select id from item where mid = '%s' and uid = %d limit 1",
+ dbesc($i['mid']),
+ intval($channel['channel_id'])
+ );
+ if(! $r)
+ continue;
+ $z = q("select * from item_id where service = '%s' and sid = '%s' and iid = %d and uid = %d limit 1",
+ dbesc($i['service']),
+ dbesc($i['sid']),
+ intval($r[0]['id']),
+ intval($channel['channel_id'])
+ );
+ if(! $z) {
+ q("insert into item_id (iid,uid,sid,service) values(%d,%d,'%s','%s')",
+ intval($r[0]['id']),
+ intval($channel['channel_id']),
+ dbesc($i['sid']),
+ dbesc($i['service'])
+ );
+ }
+ }
}
+
+
+// FIXME - ensure we have a self entry if somebody is trying to pull a fast one
+
+ // send out refresh requests
+ // notify old server that it may no longer be primary.
+
+ proc_run('php','include/notifier.php','location',$channel['channel_id']);
+
// This will indirectly perform a refresh_all *and* update the directory
proc_run('php', 'include/directory.php', $channel['channel_id']);
- // send out refresh requests
notice( t('Import completed.') . EOL);
@@ -368,7 +478,6 @@ function import_post(&$a) {
goaway(z_root() . '/network' );
-
}
@@ -389,6 +498,7 @@ function import_content(&$a) {
'$label_old_pass' => t('Your old login password'),
'$common' => t('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.'),
'$label_import_primary' => t('Make this hub my primary location'),
+ '$label_import_posts' => t('Import existing posts if possible'),
'$email' => '',
'$pass' => '',
'$submit' => t('Submit')
diff --git a/mod/item.php b/mod/item.php
index 9338cf401..9ffcc7de2 100644
--- a/mod/item.php
+++ b/mod/item.php
@@ -32,8 +32,17 @@ function item_post(&$a) {
require_once('include/security.php');
$uid = local_user();
-
$channel = null;
+ $observer = null;
+
+ $profile_uid = ((x($_REQUEST,'profile_uid')) ? intval($_REQUEST['profile_uid']) : 0);
+ require_once('include/identity.php');
+ $sys = get_sys_channel();
+ if($sys && $profile_uid && ($sys['channel_id'] == $profile_uid) && is_site_admin()) {
+ $uid = intval($sys['channel_id']);
+ $channel = $sys;
+ $observer = $sys;
+ }
if(x($_REQUEST,'dropitems')) {
require_once('include/items.php');
@@ -70,29 +79,32 @@ function item_post(&$a) {
$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']) : '');
$return_path = ((x($_REQUEST,'return')) ? $_REQUEST['return'] : '');
$preview = ((x($_REQUEST,'preview')) ? intval($_REQUEST['preview']) : 0);
$categories = ((x($_REQUEST,'category')) ? escape_tags($_REQUEST['category']) : '');
$webpage = ((x($_REQUEST,'webpage')) ? intval($_REQUEST['webpage']) : 0);
- $pagetitle = ((x($_REQUEST,'pagetitle')) ? escape_tags($_REQUEST['pagetitle']) : '');
+ $pagetitle = ((x($_REQUEST,'pagetitle')) ? escape_tags(urlencode($_REQUEST['pagetitle'])) : '');
$layout_mid = ((x($_REQUEST,'layout_mid')) ? escape_tags($_REQUEST['layout_mid']): '');
$plink = ((x($_REQUEST,'permalink')) ? escape_tags($_REQUEST['permalink']) : '');
+ // allow API to bulk load a bunch of imported items with sending out a bunch of posts.
+ $nopush = ((x($_REQUEST,'nopush')) ? intval($_REQUEST['nopush']) : 0);
+
/*
- Check service class limits
- */
- if (local_user() && !(x($_REQUEST,'parent')) && !(x($_REQUEST,'post_id'))) {
- $ret=item_check_service_class(local_user(),x($_REQUEST,'webpage'));
- if (!$ret['success']) {
- notice( t($ret['message']) . EOL) ;
- if(x($_REQUEST,'return'))
+ * Check service class limits
+ */
+ if ($uid && !(x($_REQUEST,'parent')) && !(x($_REQUEST,'post_id'))) {
+ $ret = item_check_service_class($uid,x($_REQUEST,'webpage'));
+ if (!$ret['success']) {
+ notice( t($ret['message']) . EOL) ;
+ if(x($_REQUEST,'return'))
goaway($a->get_baseurl() . "/" . $return_path );
killme();
+ }
}
- }
+
if($pagetitle) {
require_once('library/urlify/URLify.php');
$pagetitle = strtolower(URLify::transliterate($pagetitle));
@@ -108,6 +120,7 @@ function item_post(&$a) {
$parent = ((x($_REQUEST,'parent')) ? intval($_REQUEST['parent']) : 0);
$parent_mid = ((x($_REQUEST,'parent_mid')) ? trim($_REQUEST['parent_mid']) : '');
+ $route = '';
$parent_item = null;
$parent_contact = null;
$thr_parent = '';
@@ -124,11 +137,11 @@ function item_post(&$a) {
intval($parent)
);
}
- elseif($parent_mid && local_user()) {
+ elseif($parent_mid && $uid) {
// This is coming from an API source, and we are logged in
$r = q("SELECT * FROM `item` WHERE `mid` = '%s' AND `uid` = %d LIMIT 1",
dbesc($parent_mid),
- intval(local_user())
+ intval($uid)
);
}
// if this isn't the real parent of the conversation, find it
@@ -159,12 +172,12 @@ function item_post(&$a) {
$thr_parent = $parent_mid;
+ $route = $parent_item['route'];
}
-
- $observer = $a->get_observer();
-
+ if(! $observer)
+ $observer = $a->get_observer();
if($parent) {
logger('mod_item: item_post parent=' . $parent);
@@ -217,7 +230,7 @@ function item_post(&$a) {
if(! $channel) {
- if(local_user() && local_user() == $profile_uid) {
+ if($uid && $uid == $profile_uid) {
$channel = $a->get_channel();
}
else {
@@ -253,8 +266,25 @@ function item_post(&$a) {
killme();
}
+ $walltowall = false;
+ $walltowall_comment = false;
+
if($observer) {
logger('mod_item: post accepted from ' . $observer['xchan_name'] . ' for ' . $owner_xchan['xchan_name'], LOGGER_DEBUG);
+
+ // wall-to-wall detection.
+ // For top-level posts, if the author and owner are different it's a wall-to-wall
+ // For comments, We need to additionally look at the parent and see if it's a wall post that originated locally.
+
+ if($observer['xchan_name'] != $owner_xchan['xchan_name']) {
+ if($parent_item && ($parent_item['item_flags'] & (ITEM_WALL|ITEM_ORIGIN)) == (ITEM_WALL|ITEM_ORIGIN)) {
+ $walltowall_comment = true;
+ $walltowall = true;
+ }
+ if(! $parent) {
+ $walltowall = true;
+ }
+ }
}
$public_policy = ((x($_REQUEST,'public_policy')) ? escape_tags($_REQUEST['public_policy']) : map_scope($channel['channel_r_stream'],true));
@@ -325,6 +355,15 @@ function item_post(&$a) {
$str_group_deny = $channel['channel_deny_gid'];
$str_contact_deny = $channel['channel_deny_cid'];
}
+ elseif($walltowall) {
+
+ // use the channel owner's default permissions
+
+ $str_group_allow = $channel['channel_allow_gid'];
+ $str_contact_allow = $channel['channel_allow_cid'];
+ $str_group_deny = $channel['channel_deny_gid'];
+ $str_contact_deny = $channel['channel_deny_cid'];
+ }
else {
// use the posted permissions
@@ -384,13 +423,13 @@ function item_post(&$a) {
}
- $expires = '0000-00-00 00:00:00';
+ $expires = NULL_DATE;
if(feature_enabled($profile_uid,'content_expire')) {
if(x($_REQUEST,'expire')) {
$expires = datetime_convert(date_default_timezone_get(),'UTC', $_REQUEST['expire']);
if($expires <= datetime_convert())
- $expires = '0000-00-00 00:00:00';
+ $expires = NULL_DATE;
}
}
@@ -414,7 +453,7 @@ function item_post(&$a) {
intval($profile_uid)
);
if($z && ($z[0]['account_roles'] & ACCOUNT_ROLE_ALLOWCODE)) {
- if(local_user() && (get_account_id() == $z[0]['account_id'])) {
+ if($uid && (get_account_id() == $z[0]['account_id'])) {
$execflag = true;
}
else {
@@ -429,7 +468,8 @@ function item_post(&$a) {
if($mimetype === 'text/bbcode') {
- if(local_user() && local_user() == $profile_uid && feature_enabled(local_user(),'markdown')) {
+ require_once('include/text.php');
+ if($uid && $uid == $profile_uid && feature_enabled($uid,'markdown')) {
require_once('include/bb2diaspora.php');
$body = diaspora2bb(escape_tags($body),true);
}
@@ -562,11 +602,18 @@ function item_post(&$a) {
if($fullnametagged)
continue;
- $success = handle_tag($a, $body, $access_tag, $str_tags, (local_user()) ? local_user() : $profile_uid , $tag);
- logger('handle_tag: ' . print_r($success,tue), LOGGER_DATA);
+ $success = handle_tag($a, $body, $access_tag, $str_tags, ($uid) ? $uid : $profile_uid , $tag);
+ logger('handle_tag: ' . print_r($success,true), LOGGER_DATA);
if(($access_tag) && (! $parent_item)) {
logger('access_tag: ' . $tag . ' ' . print_r($access_tag,true), LOGGER_DATA);
- if ($first_access_tag) {
+ if ($first_access_tag && (! get_pconfig($profile_uid,'system','no_private_mention_acl_override'))) {
+
+ // This is a tough call, hence configurable. The issue is that one can type in a @!privacy mention
+ // and also have a default ACL (perhaps from viewing a collection) and could be suprised that the
+ // privacy mention wasn't the only recipient. So the default is to wipe out the existing ACL if a
+ // private mention is found. This can be over-ridden if you wish private mentions to be in
+ // addition to the current ACL settings.
+
$str_contact_allow = '';
$str_group_allow = '';
$first_access_tag = false;
@@ -716,6 +763,7 @@ function item_post(&$a) {
$datarray['comment_policy'] = map_scope($channel['channel_w_comment']);
$datarray['term'] = $post_tags;
$datarray['plink'] = $plink;
+ $datarray['route'] = $route;
// preview mode - prepare the body for display and send it via json
@@ -757,7 +805,7 @@ function item_post(&$a) {
$datarray['body'] = z_input_filter($datarray['uid'],$datarray['body'],$datarray['mimetype']);
- if(local_user()) {
+ if($uid) {
if($channel['channel_hash'] === $datarray['author_xchan']) {
$datarray['sig'] = base64url_encode(rsa_sign($datarray['body'],$channel['channel_prvkey']));
$datarray['item_flags'] = $datarray['item_flags'] | ITEM_VERIFIED;
@@ -780,7 +828,9 @@ function item_post(&$a) {
update_remote_id($channel,$post_id,$webpage,$pagetitle,$namespace,$remote_id,$mid);
- proc_run('php', "include/notifier.php", 'edit_post', $post_id);
+ if(! $nopush)
+ proc_run('php', "include/notifier.php", 'edit_post', $post_id);
+
if((x($_REQUEST,'return')) && strlen($return_path)) {
logger('return: ' . $return_path);
goaway($a->get_baseurl() . "/" . $return_path );
@@ -838,7 +888,7 @@ function item_post(&$a) {
// They will show up as people comment on them.
if($parent_item['item_restrict'] & ITEM_HIDDEN) {
- $r = q("UPDATE `item` SET `item_restrict` = %d WHERE `id` = %d LIMIT 1",
+ $r = q("UPDATE `item` SET `item_restrict` = %d WHERE `id` = %d",
intval($parent_item['item_restrict'] - ITEM_HIDDEN),
intval($parent_item['id'])
);
@@ -853,8 +903,9 @@ function item_post(&$a) {
if($parent) {
// Store the comment signature information in case we need to relay to Diaspora
-//FIXME
- store_diaspora_comment_sig($datarray,$channel,$parent_item, $post_id);
+ $ditem = $datarray;
+ $ditem['author'] = $observer;
+ store_diaspora_comment_sig($ditem,$channel,$parent_item, $post_id, (($walltowall_comment) ? 1 : 0));
}
update_remote_id($channel,$post_id,$webpage,$pagetitle,$namespace,$remote_id,$mid);
@@ -864,7 +915,8 @@ function item_post(&$a) {
call_hooks('post_local_end', $datarray);
- proc_run('php', 'include/notifier.php', $notify_type, $post_id);
+ if(! $nopush)
+ proc_run('php', 'include/notifier.php', $notify_type, $post_id);
logger('post_complete');
@@ -936,256 +988,6 @@ function item_content(&$a) {
}
}
-/**
- * This function removes the tag $tag from the text $body and replaces it with
- * the appropiate link.
- *
- * @param unknown_type $body the text to replace the tag in
- * @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, &$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_BOOKMARK : $termtype);
-
-
- //is it a hash tag?
- if(strpos($tag,'#') === 0) {
- 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 = 'https://redmatrix.me';
- $newtag = '#[zrl=' . $url . ']' . $basetag . '[/zrl]';
- $body = str_replace($tag,$newtag,$body);
- $replaced = true;
- }
- if(! $replaced) {
-
- //base tag has the tags name only
-
- if((substr($tag,0,7) === '#&quot;') && (substr($tag,-6,6) === '&quot;')) {
- $basetag = substr($tag,7);
- $basetag = substr($basetag,0,-6);
- }
- else
- $basetag = str_replace('_',' ',substr($tag,1));
-
- //create text for link
- $url = $a->get_baseurl() . '/search?tag=' . rawurlencode($basetag);
- $newtag = '#[zrl=' . $a->get_baseurl() . '/search?tag=' . rawurlencode($basetag) . ']' . $basetag . '[/zrl]';
- //replace tag by the link
- $body = str_replace($tag, $newtag, $body);
- $replaced = true;
- }
- //is the link already in str_tags?
- if(! stristr($str_tags,$newtag)) {
- //append or set str_tags
- if(strlen($str_tags))
- $str_tags .= ',';
- $str_tags .= $newtag;
- }
- return array('replaced' => $replaced, 'termtype' => $termtype, 'term' => $basetag, 'url' => $url, 'contact' => $r[0]);
- }
-
- //is it a person tag?
-
- if(strpos($tag,'@') === 0) {
-
- // The @! tag will alter permissions
- $exclusive = ((strpos($tag,'!') === 1) ? true : false);
-
- //is it already replaced?
- if(strpos($tag,'[zrl='))
- return $replaced;
-
- //get the person's name
-
- $name = substr($tag,(($exclusive) ? 2 : 1)); // The name or name fragment we are going to replace
- $newname = $name; // a copy that we can mess with
- $tagcid = 0;
-
- $r = null;
-
- // is it some generated name?
-
- $forum = false;
- $trailing_plus_name = false;
-
- // @channel+ is a forum or network delivery tag
-
- if(substr($newname,-1,1) === '+') {
- $forum = true;
- $newname = substr($newname,0,-1);
- }
-
- // Here we're looking for an address book entry as provided by the auto-completer
- // of the form something+nnn where nnn is an abook_id or the first chars of xchan_hash
-
- if(strrpos($newname,'+')) {
- //get the id
-
- if(strrpos($tagcid,' '))
- $tagcid = substr($tagcid,0,strrpos($tagcid,' '));
-
- $tagcid = substr($newname,strrpos($newname,'+') + 1);
-
- if(strlen($tagcid) < 16)
- $abook_id = intval($tagcid);
- //remove the next word from tag's name
- if(strpos($name,' ')) {
- $name = substr($name,0,strpos($name,' '));
- }
-
- if($abook_id) { // 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($abook_id),
- intval($profile_uid)
- );
- }
- else {
- $r = q("SELECT * FROM xchan
- WHERE xchan_hash like '%s%%' LIMIT 1",
- dbesc($tagcid)
- );
- }
- }
-
- if(! $r) {
-
- // look for matching names in the address book
-
- // Two ways to deal with spaces - doube quote the name or use underscores
- // we see this after input filtering so quotes have been html entity encoded
-
- if((substr($name,0,6) === '&quot;') && (substr($name,-6,6) === '&quot;')) {
- $newname = substr($name,6);
- $newname = substr($newname,0,-6);
- }
- else
- $newname = str_replace('_',' ',$name);
-
- // do this bit over since we started over with $name
-
- if(substr($newname,-1,1) === '+') {
- $forum = true;
- $newname = substr($newname,0,-1);
- }
-
- //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 abook left join xchan on abook_xchan = xchan_hash
- WHERE xchan_addr like ('%s') AND abook_channel = %d LIMIT 1",
- dbesc(((strpos($newname,'@')) ? $newname : $newname . '@%')),
- intval($profile_uid)
- );
- }
-
- if(! $r) {
-
- // it's possible somebody has a name ending with '+', which we stripped off as a forum indicator
- // This is very rare but we want to get it right.
-
- $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)
- $trailing_plus_name = true;
- }
- }
-
- // $r is set if we found something
-
- if($r) {
- $profile = $r[0]['xchan_url'];
- $newname = $r[0]['xchan_name'];
- // add the channel's xchan_hash 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 channel
-
- if(isset($profile)) {
- $replaced = true;
- //create profile link
- $profile = str_replace(',','%2c',$profile);
- $url = $profile;
- $newtag = '@' . (($exclusive) ? '!' : '') . '[zrl=' . $profile . ']' . $newname . (($forum && ! $trailing_plus_name) ? '+' : '') . '[/zrl]';
- $body = str_replace('@' . (($exclusive) ? '!' : '') . $name, $newtag, $body);
- //append tag to str_tags
- if(! stristr($str_tags,$newtag)) {
- if(strlen($str_tags))
- $str_tags .= ',';
- $str_tags .= $newtag;
- }
- }
- }
-
-
- return array('replaced' => $replaced, 'termtype' => $termtype, 'term' => $newname, 'url' => $url, 'contact' => $r[0]);
-}
-
-
function fix_attached_photo_permissions($uid,$xchan_hash,$body,
$str_contact_allow,$str_group_allow,$str_contact_deny,$str_group_deny) {
@@ -1243,7 +1045,7 @@ function fix_attached_photo_permissions($uid,$xchan_hash,$body,
$private = (($str_contact_allow || $str_group_allow || $str_contact_deny || $str_group_deny) ? true : false);
$r = q("UPDATE item SET allow_cid = '%s', allow_gid = '%s', deny_cid = '%s', deny_gid = '%s', item_private = %d
- WHERE id = %d AND uid = %d limit 1",
+ WHERE id = %d AND uid = %d",
dbesc($str_contact_allow),
dbesc($str_group_allow),
dbesc($str_contact_deny),
@@ -1293,7 +1095,7 @@ 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 not (i.item_restrict & %d) and i.uid= %d ",
+ and i.parent=i.id and (i.item_restrict & %d)>0 and not (i.item_restrict & %d)>0 and i.uid= %d ",
intval(ITEM_WEBPAGE),
intval(ITEM_DELETED),
intval($channel_id)
diff --git a/mod/layouts.php b/mod/layouts.php
index 2d14212cf..aaf5db0ef 100644
--- a/mod/layouts.php
+++ b/mod/layouts.php
@@ -1,36 +1,82 @@
<?php
-function layouts_content(&$a) {
+require_once('include/identity.php');
+require_once('include/conversation.php');
+require_once('include/acl_selectors.php');
+
+function layouts_init(&$a) {
+
+ if(argc() > 1 && argv(1) === 'sys' && is_site_admin()) {
+ $sys = get_sys_channel();
+ if($sys && intval($sys['channel_id'])) {
+ $a->is_sys = true;
+ }
+ }
if(argc() > 1)
$which = argv(1);
- else {
+ else
+ return;
+
+ profile_load($a,$which);
+
+}
+
+
+function layouts_content(&$a) {
+
+ if(! $a->profile) {
notice( t('Requested profile is not available.') . EOL );
$a->error = 404;
return;
}
- profile_load($a,$which,0);
+ $which = argv(1);
+ $uid = local_user();
+ $owner = 0;
+ $channel = null;
+ $observer = $a->get_observer();
- // Figure out who the page owner is.
- $r = q("select channel_id from channel where channel_address = '%s'",
- dbesc($which)
- );
- if($r) {
- $owner = intval($r[0]['channel_id']);
+ $channel = $a->get_channel();
+
+ if($a->is_sys && is_site_admin()) {
+ $sys = get_sys_channel();
+ if($sys && intval($sys['channel_id'])) {
+ $uid = $owner = intval($sys['channel_id']);
+ $channel = $sys;
+ $observer = $sys;
+ }
+ }
+
+ if(! $owner) {
+ // Figure out who the page owner is.
+ $r = q("select channel_id from channel where channel_address = '%s'",
+ dbesc($which)
+ );
+ if($r) {
+ $owner = intval($r[0]['channel_id']);
+ }
+ }
+
+ $ob_hash = (($observer) ? $observer['xchan_hash'] : '');
+
+ $perms = get_all_perms($owner,$ob_hash);
+
+ if(! $perms['write_pages']) {
+ notice( t('Permission denied.') . EOL);
+ return;
}
// Block design features from visitors
- if((! local_user()) || (local_user() != $owner)) {
+ if((! $uid) || ($uid != $owner)) {
notice( t('Permission denied.') . EOL);
return;
}
// Get the observer, check their permissions
- $observer = $a->get_observer();
$ob_hash = (($observer) ? $observer['xchan_hash'] : '');
$perms = get_all_perms($owner,$ob_hash);
@@ -41,7 +87,9 @@ function layouts_content(&$a) {
}
if((argc() > 3) && (argv(2) === 'share') && (argv(3))) {
- $r = q("select sid, service, mimetype, title, body from item_id left join item on item.id = item_id.iid where item_id.uid = %d and item.mid = '%s' and service = 'PDL' order by sid asc",
+ $r = q("select sid, service, mimetype, title, body from item_id
+ left join item on item.id = item_id.iid
+ where item_id.uid = %d and item.mid = '%s' and service = 'PDL' order by sid asc",
intval($owner),
dbesc(argv(3))
);
@@ -63,7 +111,6 @@ function layouts_content(&$a) {
'id' => 'layout-help-tab',
));
-
$o .= replace_macros(get_markup_template('common_tabs.tpl'),array('$tabs' => $tabs));
@@ -71,18 +118,16 @@ function layouts_content(&$a) {
// Nickname is set to the observers xchan, and profile_uid to the owners.
// This lets you post pages at other people's channels.
- require_once ('include/conversation.php');
-
$x = array(
- 'webpage' => ITEM_PDL,
- 'is_owner' => true,
- 'nickname' => $a->profile['channel_address'],
- 'lockstate' => (($group || $cid || $channel['channel_allow_cid'] || $channel['channel_allow_gid'] || $channel['channel_deny_cid'] || $channel['channel_deny_gid']) ? 'lock' : 'unlock'),
- 'bang' => (($group || $cid) ? '!' : ''),
- 'showacl' => false,
- 'visitor' => false,
- 'nopreview' => 1,
- 'ptlabel' => t('Layout Name'),
+ 'webpage' => ITEM_PDL,
+ 'is_owner' => true,
+ 'nickname' => $a->profile['channel_address'],
+ 'lockstate' => (($channel['channel_allow_cid'] || $channel['channel_allow_gid'] || $channel['channel_deny_cid'] || $channel['channel_deny_gid']) ? 'lock' : 'unlock'),
+ 'bang' => '',
+ 'showacl' => false,
+ 'visitor' => false,
+ 'nopreview' => 1,
+ 'ptlabel' => t('Layout Name'),
'profile_uid' => intval($owner),
);
@@ -96,10 +141,8 @@ function layouts_content(&$a) {
$o .= status_editor($a,$x);
- // Get a list of blocks. We can't display all them because endless scroll makes that unusable, so just list titles and an edit link.
- // TODO - this should be replaced with pagelist_widget
-
- $r = q("select iid, sid, mid from item_id left join item on item.id = item_id.iid where item_id.uid = %d and service = 'PDL' order by sid asc",
+ $r = q("select iid, sid, mid from item_id left join item on item.id = item_id.iid
+ where item_id.uid = %d and service = 'PDL' order by sid asc",
intval($owner)
);
@@ -108,24 +151,28 @@ function layouts_content(&$a) {
if($r) {
$pages = array();
foreach($r as $rr) {
- $pages[$rr['iid']][] = array('url' => $rr['iid'],'title' => $rr['sid'], 'mid' => $rr['mid']);
+ $pages[$rr['iid']][] = array(
+ 'url' => $rr['iid'],
+ 'title' => $rr['sid'],
+ 'mid' => $rr['mid']
+ );
}
}
-
//Build the base URL for edit links
- $url = z_root() . "/editlayout/" . $which;
+ $url = z_root() . '/editlayout/' . $which;
- return $o . replace_macros(get_markup_template("layoutlist.tpl"), array(
+ $o .= replace_macros(get_markup_template('layoutlist.tpl'), array(
'$baseurl' => $url,
- '$edit' => t('Edit'),
- '$share' => t('Share'),
- '$pages' => $pages,
+ '$edit' => t('Edit'),
+ '$share' => t('Share'),
+ '$pages' => $pages,
'$channel' => $which,
- '$view' => t('View'),
+ '$view' => t('View'),
'$preview' => '1',
));
+ return $o;
}
diff --git a/mod/like.php b/mod/like.php
index 916faf230..04a2b43cd 100755
--- a/mod/like.php
+++ b/mod/like.php
@@ -209,13 +209,17 @@ function like_content(&$a) {
}
else {
+ // this is used to like an item or comment
+
$item_id = ((argc() == 2) ? notags(trim(argv(1))) : 0);
logger('like: verb ' . $verb . ' item ' . $item_id, LOGGER_DEBUG);
+ // get the item. Allow linked photos (which are normally hidden) to be liked
- $r = q("SELECT * FROM item WHERE id = %d and item_restrict = 0 LIMIT 1",
- dbesc($item_id)
+ $r = q("SELECT * FROM item WHERE id = %d and (item_restrict = 0 or item_restrict = %d) LIMIT 1",
+ intval($item_id),
+ intval(ITEM_HIDDEN)
);
if(! $item_id || (! $r)) {
@@ -259,26 +263,18 @@ function like_content(&$a) {
else
killme();
-
- $r = q("SELECT * FROM item WHERE verb = '%s' AND item_restrict = 0
+ $r = q("SELECT id FROM item WHERE verb = '%s' AND item_restrict = 0
AND author_xchan = '%s' AND ( parent = %d OR thr_parent = '%s') LIMIT 1",
dbesc($activity),
dbesc($observer['xchan_hash']),
intval($item_id),
dbesc($item['mid'])
);
- if($r) {
- $like_item = $r[0];
-
- // Already liked/disliked it, delete it
- $r = q("UPDATE item SET item_restrict = ( item_restrict ^ %d ), changed = '%s' WHERE id = %d LIMIT 1",
- intval(ITEM_DELETED),
- dbesc(datetime_convert()),
- intval($like_item['id'])
- );
-
- proc_run('php',"include/notifier.php","like",$like_item['id']);
+ if($r) {
+ // already liked it. Drop that item.
+ require_once('include/items.php');
+ drop_item($r[0]['id'],false,DROPITEM_PHASE1);
return;
}
@@ -325,6 +321,15 @@ function like_content(&$a) {
if($item['item_flags'] & ITEM_WALL)
$item_flags |= ITEM_WALL;
+ // if this was a linked photo and was hidden, unhide it.
+
+ if($item['item_restrict'] & ITEM_HIDDEN) {
+ $r = q("update item set item_restrict = (item_restrict ^ %d) where id = %d",
+ intval(ITEM_HIDDEN),
+ intval($item['id'])
+ );
+ }
+
}
if($verb === 'like')
diff --git a/mod/locs.php b/mod/locs.php
new file mode 100644
index 000000000..b1169fcca
--- /dev/null
+++ b/mod/locs.php
@@ -0,0 +1,104 @@
+<?php /** @file */
+
+
+function locs_post(&$a) {
+
+ if(! local_user())
+ return;
+
+ $channel = $a->get_channel();
+
+ if($_REQUEST['primary']) {
+ $hubloc_id = intval($_REQUEST['primary']);
+ if($hubloc_id) {
+ $r = q("select hubloc_id from hubloc where hubloc_id = %d and hubloc_hash = '%s' limit 1",
+ intval($hubloc_id),
+ dbesc($channel['channel_hash'])
+ );
+ if(! $r) {
+ notice( t('Location not found.') . EOL);
+ return;
+ }
+ $r = q("update hubloc set hubloc_flags = (hubloc_flags & ~%d) where (hubloc_flags & %d)>0 and hubloc_hash = '%s' ",
+ intval(HUBLOC_FLAGS_PRIMARY),
+ intval(HUBLOC_FLAGS_PRIMARY),
+ dbesc($channel['channel_hash'])
+ );
+ $r = q("update hubloc set hubloc_flags = (hubloc_flags & %d) where hubloc_id = %d and hubloc_hash = '%s'",
+ intval(HUBLOC_FLAGS_PRIMARY),
+ intval($hubloc_id),
+ dbesc($channel['channel_hash'])
+ );
+ proc_run('php','include/notifier.php','location',$channel['channel_id']);
+ return;
+ }
+ }
+
+ if($_REQUEST['drop']) {
+ $hubloc_id = intval($_REQUEST['drop']);
+ if($hubloc_id) {
+ $r = q("select hubloc_id, hubloc_flags from hubloc where hubloc_id = %d and hubloc_url != '%s' and hubloc_hash = '%s' limit 1",
+ intval($hubloc_id),
+ dbesc(z_root()),
+ dbesc($channel['channel_hash'])
+ );
+ if(! $r) {
+ notice( t('Location not found.') . EOL);
+ return;
+ }
+ if($r[0]['hubloc_flags'] & HUBLOC_FLAGS_PRIMARY) {
+ notice( t('Primary location cannot be removed.') . EOL);
+ return;
+ }
+ $r = q("update hubloc set hubloc_flags = (hubloc_flags & %d) where hubloc_id = %d and hubloc_hash = '%s'",
+ intval(HUBLOC_FLAGS_DELETED),
+ intval($hubloc_id),
+ dbesc($channel['channel_hash'])
+ );
+ proc_run('php','include/notifier.php','location',$channel['channel_id']);
+ return;
+ }
+ }
+}
+
+
+
+function locs_content(&$a) {
+
+
+
+ if(! local_user()) {
+ notice( t('Permission denied.') . EOL);
+ return;
+ }
+
+ $channel = $a->get_channel();
+
+ $r = q("select * from hubloc where hubloc_hash = '%s'",
+ dbesc($channel['channel_hash'])
+ );
+
+ if(! $r) {
+ notice( t('No locations found.') . EOL);
+ return;
+ }
+
+
+ for($x = 0; $x < count($r); $x ++) {
+ $r[$x]['primary'] = (($r[$x]['hubloc_flags'] & HUBLOC_FLAGS_PRIMARY) ? true : false);
+ $r[$x]['deleted'] = (($r[$x]['hubloc_flags'] & HUBLOC_FLAGS_DELETED) ? true : false);
+ }
+
+
+
+ $o = replace_macros(get_markup_template('locmanage.tpl'), array(
+ '$header' => t('Manage Channel Locations'),
+ '$loc' => t('Location (address)'),
+ '$mkprm' => t('Primary Location'),
+ '$drop' => t('Drop location'),
+ '$submit' => t('Submit'),
+ '$hubs' => $r
+ ));
+
+ return $o;
+} \ No newline at end of file
diff --git a/mod/lostpass.php b/mod/lostpass.php
index dd7c7a7d5..3269128f1 100644
--- a/mod/lostpass.php
+++ b/mod/lostpass.php
@@ -21,7 +21,7 @@ function lostpass_post(&$a) {
$hash = random_string();
- $r = q("UPDATE account SET account_reset = '%s' WHERE account_id = %d LIMIT 1",
+ $r = q("UPDATE account SET account_reset = '%s' WHERE account_id = %d",
dbesc($hash),
intval($aid)
);
@@ -73,7 +73,7 @@ function lostpass_content(&$a) {
$salt = random_string(32);
$password_encoded = hash('whirlpool', $salt . $new_password);
- $r = q("UPDATE account SET account_salt = '%s', account_password = '%s', account_reset = '' where account_id = %d limit 1",
+ $r = q("UPDATE account SET account_salt = '%s', account_password = '%s', account_reset = '' where account_id = %d",
dbesc($salt),
dbesc($password_encoded),
intval($aid)
diff --git a/mod/mail.php b/mod/mail.php
index b7297443c..6c778b956 100644
--- a/mod/mail.php
+++ b/mod/mail.php
@@ -17,7 +17,7 @@ function mail_post(&$a) {
$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');
+ $expires = ((x($_REQUEST,'expires')) ? datetime_convert(date_default_timezone_get(),'UTC', $_REQUEST['expires']) : NULL_DATE);
// 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
@@ -72,7 +72,10 @@ function mail_post(&$a) {
if(! ($their_perms & PERMS_W_MAIL)) {
notice( t('Selected channel has private message restrictions. Send failed.'));
- return;
+ // reported issue: let's still save the message and continue. We'll just tell them
+ // that nothing useful is likely to happen. They might have spent hours on it.
+ // return;
+
}
}
@@ -110,6 +113,7 @@ function mail_content(&$a) {
}
$channel = $a->get_channel();
+
head_set_icon($channel['xchan_photo_s']);
$cipher = get_pconfig(local_user(),'system','default_cipher');
@@ -138,7 +142,7 @@ function mail_content(&$a) {
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",
+ $r = q("update mail set mail_flags = mail_flags | %d where id = %d and channel_id = %d",
intval(MAIL_RECALLED),
intval(argv(2)),
intval(local_user())
@@ -160,13 +164,16 @@ function mail_content(&$a) {
$tpl = get_markup_template('msg-header.tpl');
- $a->page['htmlhead'] .= replace_macros($tpl, array(
+ $header = 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')
));
+
+ $a->page['htmlhead'] .= $header;
+
$preselect = (isset($a->argv[2])?array($a->argv[2]):false);
$prename = $preurl = $preid = '';
@@ -273,7 +280,7 @@ function mail_content(&$a) {
$tpl = get_markup_template('msg-header.tpl');
$a->page['htmlhead'] .= replace_macros($tpl, array(
- '$nickname' => $channel['channel_addr'],
+ '$nickname' => $channel['channel_address'],
'$baseurl' => $a->get_baseurl(true),
'$editselect' => (($plaintext) ? 'none' : '/(profile-jot-text|prvmail-text)/'),
'$linkurl' => t('Please enter a link URL:'),
diff --git a/mod/manage.php b/mod/manage.php
index 1920967e6..00c6db7f0 100644
--- a/mod/manage.php
+++ b/mod/manage.php
@@ -17,7 +17,7 @@ function manage_content(&$a) {
intval(get_account_id())
);
if($r) {
- q("update account set account_default_channel = %d where account_id = %d limit 1",
+ q("update account set account_default_channel = %d where account_id = %d",
intval($change_channel),
intval(get_account_id())
);
@@ -36,7 +36,7 @@ function manage_content(&$a) {
$channels = null;
if(local_user()) {
- $r = q("select channel.*, xchan.* from channel left join xchan on channel.channel_hash = xchan.xchan_hash where channel.channel_account_id = %d and not ( channel_pageflags & %d ) order by channel_name ",
+ $r = q("select channel.*, xchan.* from channel left join xchan on channel.channel_hash = xchan.xchan_hash where channel.channel_account_id = %d and not ( channel_pageflags & %d )>0 order by channel_name ",
intval(get_account_id()),
intval(PAGE_REMOVED)
);
@@ -55,7 +55,7 @@ function manage_content(&$a) {
$c = q("SELECT id, item_restrict, item_flags FROM item
- WHERE (item_restrict = %d) and ( item_flags & %d ) and uid = %d",
+ WHERE (item_restrict = %d) and ( item_flags & %d )>0 and uid = %d",
intval(ITEM_VISIBLE),
intval(ITEM_UNSEEN),
intval($channels[$x]['channel_id'])
@@ -71,7 +71,7 @@ function manage_content(&$a) {
}
- $intr = 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 (abook_flags & %d) and not ((abook_flags & %d) or (xchan_flags & %d))",
+ $intr = 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 (abook_flags & %d)>0 and not ((abook_flags & %d)>0 or (xchan_flags & %d)>0)",
intval($channels[$x]['channel_id']),
intval(ABOOK_FLAG_PENDING),
intval(ABOOK_FLAG_SELF|ABOOK_FLAG_IGNORED),
@@ -82,7 +82,7 @@ function manage_content(&$a) {
$channels[$x]['intros'] = intval($intr[0]['total']);
- $mails = q("SELECT count(id) as total from mail WHERE channel_id = %d AND not (mail_flags & %d) and from_xchan != '%s' ",
+ $mails = q("SELECT count(id) as total from mail WHERE channel_id = %d AND not (mail_flags & %d)>0 and from_xchan != '%s' ",
intval($channels[$x]['channel_id']),
intval(MAIL_SEEN),
dbesc($channels[$x]['channel_hash'])
@@ -127,7 +127,7 @@ function manage_content(&$a) {
}
}
- $r = q("select count(channel_id) as total from channel where channel_account_id = %d and not ( channel_pageflags & %d )",
+ $r = q("select count(channel_id) as total from channel where channel_account_id = %d and not ( channel_pageflags & %d )>0",
intval(get_account_id()),
intval(PAGE_REMOVED)
);
diff --git a/mod/menu.php b/mod/menu.php
index a2d0c2385..92923e1ff 100644
--- a/mod/menu.php
+++ b/mod/menu.php
@@ -1,13 +1,23 @@
<?php
require_once('include/menu.php');
+require_once('include/identity.php');
function menu_post(&$a) {
- if(! local_user())
+ $uid = local_user();
+
+ if(array_key_exists('sys',$_REQUEST) && $_REQUEST['sys'] && is_site_admin()) {
+ $sys = get_sys_channel();
+ $uid = intval($sys['channel_id']);
+ $a->is_sys = true;
+ }
+
+ if(! $uid)
return;
- $_REQUEST['menu_channel_id'] = local_user();
+ $_REQUEST['menu_channel_id'] = $uid;
+
if($_REQUEST['menu_bookmark'])
$_REQUEST['menu_flags'] |= MENU_BOOKMARK;
if($_REQUEST['menu_system'])
@@ -19,7 +29,7 @@ function menu_post(&$a) {
$r = menu_edit($_REQUEST);
if($r) {
info( t('Menu updated.') . EOL);
- goaway(z_root() . '/mitem/' . $menu_id);
+ goaway(z_root() . '/mitem/' . $menu_id . (($a->is_sys) ? '?f=&sys=1' : ''));
}
else
notice( t('Unable to update menu.'). EOL);
@@ -28,7 +38,7 @@ function menu_post(&$a) {
$r = menu_create($_REQUEST);
if($r) {
info( t('Menu created.') . EOL);
- goaway(z_root() . '/mitem/' . $r);
+ goaway(z_root() . '/mitem/' . $r . (($a->is_sys) ? '?f=&sys=1' : ''));
}
else
notice( t('Unable to create menu.'). EOL);
@@ -40,36 +50,42 @@ function menu_post(&$a) {
function menu_content(&$a) {
- if(! local_user()) {
+ $uid = local_user();
+
+ if($a->is_sys && is_site_admin()) {
+ $sys = get_sys_channel();
+ $uid = intval($sys['channel_id']);
+ }
+
+ if(! $uid) {
notice( t('Permission denied.') . EOL);
return '';
}
-// $a->set_widget('design',design_tools());
-
-
if(argc() == 1) {
// list menus
- $x = menu_list(local_user());
-
- $o = replace_macros(get_markup_template('menulist.tpl'),array(
- '$title' => t('Manage Menus'),
- '$menus' => $x,
- '$edit' => t('Edit'),
- '$drop' => t('Drop'),
- '$new' => t('New'),
- '$hintnew' => t('Create a new menu'),
- '$hintdrop' => t('Delete this menu'),
- '$hintcontent' => t('Edit menu contents'),
- '$hintedit' => t('Edit this menu')
- ));
-
- return $o;
-
-
+ $x = menu_list($uid);
+ if($x) {
+ for($y = 0; $y < count($x); $y ++) {
+ $x[$y]['bookmark'] = (($x[$y]['menu_flags'] & MENU_BOOKMARK) ? true : false);
+ }
+ }
+ $o = replace_macros(get_markup_template('menulist.tpl'),array(
+ '$title' => t('Manage Menus'),
+ '$menus' => $x,
+ '$edit' => t('Edit'),
+ '$drop' => t('Drop'),
+ '$new' => t('New'),
+ '$bmark' => t('Bookmarks allowed'),
+ '$hintnew' => t('Create a new menu'),
+ '$hintdrop' => t('Delete this menu'),
+ '$hintcontent' => t('Edit menu contents'),
+ '$hintedit' => t('Edit this menu')
+ ));
+ return $o;
}
@@ -87,19 +103,19 @@ function menu_content(&$a) {
}
elseif(intval(argv(1))) {
- $m = menu_fetch_id(intval(argv(1)),local_user());
+ $m = menu_fetch_id(intval(argv(1)),$uid);
if(! $m) {
notice( t('Menu not found.') . EOL);
return '';
}
if(argc() == 3 && argv(2) == 'drop') {
- $r = menu_delete_id(intval(argv(1)),local_user());
+ $r = menu_delete_id(intval(argv(1)),$uid);
if($r)
info( t('Menu deleted.') . EOL);
else
notice( t('Menu could not be deleted.'). EOL);
- goaway(z_root() . '/menu');
+ goaway(z_root() . '/menu' . (($a->is_sys) ? '?f=&sys=1' : ''));
}
else {
$o = replace_macros(get_markup_template('menuedit.tpl'), array(
diff --git a/mod/message.php b/mod/message.php
index c14bf2161..7f3b6180a 100644
--- a/mod/message.php
+++ b/mod/message.php
@@ -61,18 +61,18 @@ function message_content(&$a) {
foreach($r as $rr) {
$o .= replace_macros($tpl, array(
- '$id' => $rr['id'],
- '$from_name' => $rr['from']['xchan_name'],
- '$from_url' => chanlink_hash($rr['from_xchan']),
+ '$id' => $rr['id'],
+ '$from_name' => $rr['from']['xchan_name'],
+ '$from_url' => chanlink_hash($rr['from_xchan']),
'$from_photo' => $rr['from']['xchan_photo_s'],
- '$to_name' => $rr['to']['xchan_name'],
- '$to_url' => chanlink_hash($rr['to_xchan']),
- '$to_photo' => $rr['to']['xchan_photo_s'],
- '$subject' => (($rr['seen']) ? $rr['title'] : '<strong>' . $rr['title'] . '</strong>'),
- '$delete' => t('Delete message'),
- '$body' => smilies(bbcode($rr['body'])),
- '$date' => datetime_convert('UTC',date_default_timezone_get(),$rr['created'], t('D, d M Y - g:i A')),
- '$seen' => $rr['seen']
+ '$to_name' => $rr['to']['xchan_name'],
+ '$to_url' => chanlink_hash($rr['to_xchan']),
+ '$to_photo' => $rr['to']['xchan_photo_s'],
+ '$subject' => (($rr['seen']) ? $rr['title'] : '<strong>' . $rr['title'] . '</strong>'),
+ '$delete' => t('Delete conversation'),
+ '$body' => smilies(bbcode($rr['body'])),
+ '$date' => datetime_convert('UTC',date_default_timezone_get(),$rr['created'], t('D, d M Y - g:i A')),
+ '$seen' => $rr['seen']
));
}
$o .= alt_pager($a,count($r));
diff --git a/mod/mitem.php b/mod/mitem.php
index 3240bb68b..7098d7489 100644
--- a/mod/mitem.php
+++ b/mod/mitem.php
@@ -4,12 +4,22 @@ require_once('include/menu.php');
require_once('include/acl_selectors.php');
function mitem_init(&$a) {
- if(! local_user())
+
+ $uid = local_user();
+
+ if(array_key_exists('sys',$_REQUEST) && $_REQUEST['sys'] && is_site_admin()) {
+ $sys = get_sys_channel();
+ $uid = intval($sys['channel_id']);
+ $a->is_sys = true;
+ }
+
+ if(! $uid)
return;
+
if(argc() < 2)
return;
- $m = menu_fetch_id(intval(argv(1)),local_user());
+ $m = menu_fetch_id(intval(argv(1)),$uid);
if(! $m) {
notice( t('Menu not found.') . EOL);
return '';
@@ -20,8 +30,18 @@ function mitem_init(&$a) {
function mitem_post(&$a) {
- if(! local_user())
+ $uid = local_user();
+
+ if($a->is_sys && is_site_admin()) {
+ $sys = get_sys_channel();
+ $uid = intval($sys['channel_id']);
+ }
+
+ if(! $uid) {
return;
+ }
+
+
if(! $a->data['menu'])
return;
@@ -29,7 +49,7 @@ function mitem_post(&$a) {
$channel = $a->get_channel();
- $_REQUEST['mitem_channel_id'] = local_user();
+ $_REQUEST['mitem_channel_id'] = $uid;
$_REQUEST['menu_id'] = $a->data['menu']['menu_id'];
$_REQUEST['mitem_flags'] = 0;
@@ -42,20 +62,20 @@ function mitem_post(&$a) {
$mitem_id = ((argc() > 2) ? intval(argv(2)) : 0);
if($mitem_id) {
$_REQUEST['mitem_id'] = $mitem_id;
- $r = menu_edit_item($_REQUEST['menu_id'],local_user(),$_REQUEST);
+ $r = menu_edit_item($_REQUEST['menu_id'],$uid,$_REQUEST);
if($r) {
info( t('Menu element updated.') . EOL);
- goaway(z_root() . '/mitem/' . $_REQUEST['menu_id']);
+ goaway(z_root() . '/mitem/' . $_REQUEST['menu_id'] . (($a->is_sys) ? '?f=&sys=1' : ''));
}
else
notice( t('Unable to update menu element.') . EOL);
}
else {
- $r = menu_add_item($_REQUEST['menu_id'],local_user(),$_REQUEST);
+ $r = menu_add_item($_REQUEST['menu_id'],$uid,$_REQUEST);
if($r) {
info( t('Menu element added.') . EOL);
- goaway(z_root() . '/mitem/' . $_REQUEST['menu_id']);
+ goaway(z_root() . '/mitem/' . $_REQUEST['menu_id'] . (($a->is_sys) ? '?f=&sys=1' : ''));
}
else
notice( t('Unable to add menu element.') . EOL);
@@ -69,7 +89,20 @@ function mitem_post(&$a) {
function mitem_content(&$a) {
- if(! local_user()) {
+ $uid = local_user();
+ $channel = $a->get_channel();
+ $observer = $a->get_observer();
+
+ $ob_hash = (($observer) ? $observer['xchan_hash'] : '');
+
+ if($a->is_sys && is_site_admin()) {
+ $sys = get_sys_channel();
+ $uid = intval($sys['channel_id']);
+ $channel = $sys;
+ $ob_hash = $sys['xchan_hash'];
+ }
+
+ if(! $uid) {
notice( t('Permission denied.') . EOL);
return '';
}
@@ -79,67 +112,61 @@ function mitem_content(&$a) {
return '';
}
- $channel = $a->get_channel();
-
- $m = menu_fetch($a->data['menu']['menu_name'],local_user(), get_observer_hash());
+ $m = menu_fetch($a->data['menu']['menu_name'],$uid,$ob_hash);
$a->data['menu_item'] = $m;
if(argc() == 2) {
$r = q("select * from menu_item where mitem_menu_id = %d and mitem_channel_id = %d order by mitem_order asc, mitem_desc asc",
intval($a->data['menu']['menu_id']),
- local_user()
+ intval($uid)
);
$o .= replace_macros(get_markup_template('mitemlist.tpl'),array(
- '$title' => t('Manage Menu Elements'),
+ '$title' => t('Manage Menu Elements'),
'$menuname' => $a->data['menu']['menu_name'],
'$menudesc' => $a->data['menu']['menu_desc'],
- '$edmenu' => t('Edit menu'),
- '$menu_id' => $a->data['menu']['menu_id'],
- '$mlist' => $r,
- '$edit' => t('Edit element'),
- '$drop' => t('Drop element'),
- '$new' => t('New element'),
+ '$edmenu' => t('Edit menu'),
+ '$menu_id' => $a->data['menu']['menu_id'],
+ '$mlist' => $r,
+ '$edit' => t('Edit element'),
+ '$drop' => t('Drop element'),
+ '$new' => t('New element'),
'$hintmenu' => t('Edit this menu container'),
- '$hintnew' => t('Add menu element'),
+ '$hintnew' => t('Add menu element'),
'$hintdrop' => t('Delete this menu item'),
'$hintedit' => t('Edit this menu item')
- ));
-
-
+ ));
+
return $o;
-
}
if(argc() > 2) {
-
-
if(argv(2) === 'new') {
$perm_defaults = 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']
+ 'deny_cid' => $channel['channel_deny_cid'],
+ 'deny_gid' => $channel['channel_deny_gid']
);
$o = replace_macros(get_markup_template('mitemedit.tpl'), array(
- '$header' => t('New Menu Element'),
- '$menu_id' => $a->data['menu']['menu_id'],
+ '$header' => t('New Menu Element'),
+ '$menu_id' => $a->data['menu']['menu_id'],
'$permissions' => t('Menu Item Permissions'),
- '$permdesc' => t("\x28click to open/close\x29"),
- '$aclselect' => populate_acl($perm_defaults,false),
- '$mitem_desc' => array('mitem_desc', t('Link text'), '', '','*'),
- '$mitem_link' => array('mitem_link', t('URL of link'), '', '', '*'),
- '$usezid' => array('usezid', t('Use Red magic-auth if available'), true, ''),
- '$newwin' => array('newwin', t('Open link in new window'), false,''),
+ '$permdesc' => t("\x28click to open/close\x29"),
+ '$aclselect' => populate_acl($perm_defaults,false),
+ '$mitem_desc' => array('mitem_desc', t('Link text'), '', '','*'),
+ '$mitem_link' => array('mitem_link', t('URL of link'), '', '', '*'),
+ '$usezid' => array('usezid', t('Use RedMatrix magic-auth if available'), true, ''),
+ '$newwin' => array('newwin', t('Open link in new window'), false,''),
// permissions go here
'$mitem_order' => array('mitem_order', t('Order in list'),'0',t('Higher numbers will sink to bottom of listing')),
- '$submit' => t('Create')
+ '$submit' => t('Create')
));
return $o;
}
@@ -148,23 +175,23 @@ function mitem_content(&$a) {
elseif(intval(argv(2))) {
$m = q("select * from menu_item where mitem_id = %d and mitem_channel_id = %d limit 1",
intval(argv(2)),
- intval(local_user())
+ intval($uid)
);
if(! $m) {
notice( t('Menu item not found.') . EOL);
- goaway(z_root() . '/menu');
+ goaway(z_root() . '/menu'. (($a->is_sys) ? '?f=&sys=1' : ''));
}
$mitem = $m[0];
if(argc() == 4 && argv(3) == 'drop') {
- $r = menu_del_item($mitem['mitem_menu_id'], local_user(),intval(argv(2)));
+ $r = menu_del_item($mitem['mitem_menu_id'], $uid, intval(argv(2)));
if($r)
info( t('Menu item deleted.') . EOL);
else
notice( t('Menu item could not be deleted.'). EOL);
- goaway(z_root() . '/mitem/' . $mitem['mitem_menu_id']);
+ goaway(z_root() . '/mitem/' . $mitem['mitem_menu_id'] . (($a->is_sys) ? '?f=&sys=1' : ''));
}
else {
@@ -179,7 +206,7 @@ function mitem_content(&$a) {
'$mitem_id' => intval(argv(2)),
'$mitem_desc' => array('mitem_desc', t('Link text'), $mitem['mitem_desc'], '','*'),
'$mitem_link' => array('mitem_link', t('URL of link'), $mitem['mitem_link'], '', '*'),
- '$usezid' => array('usezid', t('Use Red magic-auth if available'), (($mitem['mitem_flags'] & MENU_ITEM_ZID) ? 1 : 0), ''),
+ '$usezid' => array('usezid', t('Use RedMatrix magic-auth if available'), (($mitem['mitem_flags'] & MENU_ITEM_ZID) ? 1 : 0), ''),
'$newwin' => array('newwin', t('Open link in new window'), (($mitem['mitem_flags'] & MENU_ITEM_NEWWIN) ? 1 : 0),''),
// permissions go here
'$mitem_order' => array('mitem_order', t('Order in list'),$mitem['mitem_order'],t('Higher numbers will sink to bottom of listing')),
@@ -188,10 +215,5 @@ function mitem_content(&$a) {
return $o;
}
}
-
}
-
-
-
-
}
diff --git a/mod/network.php b/mod/network.php
index 97870a6a1..d444dbd59 100644
--- a/mod/network.php
+++ b/mod/network.php
@@ -24,7 +24,7 @@ function network_content(&$a, $update = 0, $load = false) {
if(! local_user()) {
$_SESSION['return_url'] = $a->query_string;
- return login(false);
+ return login(false);
}
@@ -34,6 +34,21 @@ function network_content(&$a, $update = 0, $load = false) {
$channel = $a->get_channel();
+
+ $datequery = $datequery2 = '';
+
+ $group = 0;
+
+ $nouveau = false;
+
+ $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']) : '');
+ $nouveau = ((x($_GET,'new')) ? intval($_GET['new']) : 0);
+ $gid = ((x($_GET,'gid')) ? intval($_GET['gid']) : 0);
+ $category = ((x($_REQUEST,'cat')) ? $_REQUEST['cat'] : '');
+ $hashtags = ((x($_REQUEST,'tag')) ? $_REQUEST['tag'] : '');
+
+
$search = (($_GET['search']) ? $_GET['search'] : '');
if($search) {
if(strpos($search,'@') === 0) {
@@ -47,33 +62,23 @@ function network_content(&$a, $update = 0, $load = false) {
}
}
elseif(strpos($search,'#') === 0) {
- $search = $_GET['search'] = substr($search,1);
+ $hashtags = substr($search,1);
+ $search = $_GET['search'] = '';
}
}
-
-
- $datequery = $datequery2 = '';
-
- $group = 0;
-
- $nouveau = false;
-
- $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']) : '');
- $nouveau = ((x($_GET,'new')) ? intval($_GET['new']) : 0);
- $gid = ((x($_GET,'gid')) ? intval($_GET['gid']) : 0);
-
-
if($datequery)
$_GET['order'] = 'post';
+
+ // filter by collection (e.g. group)
+
if($gid) {
- $r = q("SELECT * FROM `groups` WHERE id = %d AND uid = %d LIMIT 1",
- intval($gid),
- intval(local_user())
- );
- if(! $r) {
+ $r = q("SELECT * FROM groups WHERE id = %d AND uid = %d LIMIT 1",
+ intval($gid),
+ intval(local_user())
+ );
+ if(! $r) {
if($update)
killme();
notice( t('No such group') . EOL );
@@ -81,27 +86,26 @@ function network_content(&$a, $update = 0, $load = false) {
// NOTREACHED
}
- $group = $gid;
+ $group = $gid;
$group_hash = $r[0]['hash'];
- $def_acl = array('allow_gid' => '<' . $r[0]['hash'] . '>');
+ $def_acl = array('allow_gid' => '<' . $r[0]['hash'] . '>');
}
$o = '';
-
// if no tabs are selected, defaults to comments
- $cid = ((x($_GET,'cid')) ? intval($_GET['cid']) : 0);
- $star = ((x($_GET,'star')) ? intval($_GET['star']) : 0);
- $order = ((x($_GET,'order')) ? notags($_GET['order']) : 'comment');
- $liked = ((x($_GET,'liked')) ? intval($_GET['liked']) : 0);
- $conv = ((x($_GET,'conv')) ? intval($_GET['conv']) : 0);
- $spam = ((x($_GET,'spam')) ? intval($_GET['spam']) : 0);
- $cmin = ((x($_GET,'cmin')) ? intval($_GET['cmin']) : 0);
- $cmax = ((x($_GET,'cmax')) ? intval($_GET['cmax']) : 99);
- $firehose = ((x($_GET,'fh')) ? intval($_GET['fh']) : 0);
- $file = ((x($_GET,'file')) ? $_GET['file'] : '');
+ $cid = ((x($_GET,'cid')) ? intval($_GET['cid']) : 0);
+ $star = ((x($_GET,'star')) ? intval($_GET['star']) : 0);
+ $order = ((x($_GET,'order')) ? notags($_GET['order']) : 'comment');
+ $liked = ((x($_GET,'liked')) ? intval($_GET['liked']) : 0);
+ $conv = ((x($_GET,'conv')) ? intval($_GET['conv']) : 0);
+ $spam = ((x($_GET,'spam')) ? intval($_GET['spam']) : 0);
+ $cmin = ((x($_GET,'cmin')) ? intval($_GET['cmin']) : 0);
+ $cmax = ((x($_GET,'cmax')) ? intval($_GET['cmax']) : 99);
+ $firehose = ((x($_GET,'fh')) ? intval($_GET['fh']) : 0);
+ $file = ((x($_GET,'file')) ? $_GET['file'] : '');
if(x($_GET,'search') || x($_GET,'file'))
@@ -122,21 +126,21 @@ function network_content(&$a, $update = 0, $load = false) {
$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']
+ 'deny_cid' => $channel['channel_deny_cid'],
+ 'deny_gid' => $channel['channel_deny_gid']
);
$x = array(
- 'is_owner' => true,
- 'allow_location' => ((intval(get_pconfig($channel['channel_id'],'system','use_browser_location'))) ? '1' : ''),
+ 'is_owner' => true,
+ 'allow_location' => ((intval(get_pconfig($channel['channel_id'],'system','use_browser_location'))) ? '1' : ''),
'default_location' => $channel['channel_location'],
- 'nickname' => $channel['channel_address'],
- 'lockstate' => (($group || $cid || $channel['channel_allow_cid'] || $channel['channel_allow_gid'] || $channel['channel_deny_cid'] || $channel['channel_deny_gid']) ? 'lock' : 'unlock'),
- 'acl' => populate_acl((($group || $cid) ? $def_acl : $channel_acl)),
- 'bang' => (($group || $cid) ? '!' : ''),
- 'visitor' => true,
- 'profile_uid' => local_user()
+ 'nickname' => $channel['channel_address'],
+ 'lockstate' => (($group || $cid || $channel['channel_allow_cid'] || $channel['channel_allow_gid'] || $channel['channel_deny_cid'] || $channel['channel_deny_gid']) ? 'lock' : 'unlock'),
+ 'acl' => populate_acl((($group || $cid) ? $def_acl : $channel_acl)),
+ 'bang' => (($group || $cid) ? '!' : ''),
+ 'visitor' => true,
+ 'profile_uid' => local_user()
);
$o .= status_editor($a,$x);
@@ -146,33 +150,33 @@ function network_content(&$a, $update = 0, $load = false) {
// We don't have to deal with ACL's on this page. You're looking at everything
// that belongs to you, hence you can see all of it. We will filter by group if
- // desired.
+ // desired.
-
- $sql_options = (($star)
- ? " and (item_flags & " . intval(ITEM_STARRED) . ")"
+
+ $sql_options = (($star)
+ ? " and (item_flags & " . intval(ITEM_STARRED) . ") > 0"
: '');
$sql_nets = '';
- $sql_extra = " AND `item`.`parent` IN ( SELECT `parent` FROM `item` WHERE (item_flags & " . intval(ITEM_THREAD_TOP) . ") $sql_options ) ";
+ $sql_extra = " AND `item`.`parent` IN ( SELECT `parent` FROM `item` WHERE (item_flags & " . intval(ITEM_THREAD_TOP) . ")>0 $sql_options ) ";
if($group) {
$contact_str = '';
- $contacts = group_get_members($group);
- if($contacts) {
+ $contacts = group_get_members($group);
+ if($contacts) {
foreach($contacts as $c) {
if($contact_str)
$contact_str .= ',';
- $contact_str .= "'" . $c['xchan'] . "'";
+ $contact_str .= "'" . $c['xchan'] . "'";
}
- }
- else {
- $contact_str = ' 0 ';
+ }
+ else {
+ $contact_str = ' 0 ';
info( t('Collection is empty'));
- }
+ }
- $sql_extra = " AND item.parent IN ( SELECT DISTINCT parent FROM item WHERE true $sql_options AND (( author_xchan IN ( $contact_str ) OR owner_xchan in ( $contact_str )) or allow_gid like '" . protect_sprintf('%<' . dbesc($group_hash) . '>%') . "' ) and id = parent and item_restrict = 0 ) ";
+ $sql_extra = " AND item.parent IN ( SELECT DISTINCT parent FROM item WHERE true $sql_options AND (( author_xchan IN ( $contact_str ) OR owner_xchan in ( $contact_str )) or allow_gid like '" . protect_sprintf('%<' . dbesc($group_hash) . '>%') . "' ) and id = parent and item_restrict = 0 ) ";
$x = group_rec_byhash(local_user(), $group_hash);
@@ -180,60 +184,74 @@ function network_content(&$a, $update = 0, $load = false) {
$o = '<h2>' . t('Collection: ') . $x['name'] . '</h2>' . $o;
- }
+ }
elseif($cid) {
- $r = 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 & " . intval(ABOOK_FLAG_BLOCKED) . ") limit 1",
+ $r = 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 & " . intval(ABOOK_FLAG_BLOCKED) . ") > 0 limit 1",
intval($cid),
intval(local_user())
- );
- if($r) {
- $sql_extra = " AND item.parent IN ( SELECT DISTINCT parent FROM item WHERE true $sql_options AND uid = " . intval(local_user()) . " AND ( author_xchan = '" . dbesc($r[0]['abook_xchan']) . "' or owner_xchan = '" . dbesc($r[0]['abook_xchan']) . "' ) and item_restrict = 0 ) ";
+ );
+ if($r) {
+ $sql_extra = " AND item.parent IN ( SELECT DISTINCT parent FROM item WHERE true $sql_options AND uid = " . intval(local_user()) . " AND ( author_xchan = '" . dbesc($r[0]['abook_xchan']) . "' or owner_xchan = '" . dbesc($r[0]['abook_xchan']) . "' ) and item_restrict = 0 ) ";
$o = '<h2>' . t('Connection: ') . $r[0]['xchan_name'] . '</h2>' . $o;
- }
- else {
+ }
+ else {
notice( t('Invalid connection.') . EOL);
goaway($a->get_baseurl(true) . '/network');
- }
+ }
}
+ if(x($category)) {
+ $sql_extra .= protect_sprintf(term_query('item', $category, TERM_CATEGORY));
+ }
+ if(x($hashtags)) {
+ $sql_extra .= protect_sprintf(term_query('item', $hashtags, TERM_HASHTAG));
+ }
if(! $update) {
// The special div is needed for liveUpdate to kick in for this page.
- // We only launch liveUpdate if you aren't filtering in some incompatible
+ // We only launch liveUpdate if you aren't filtering in some incompatible
// way and also you aren't writing a comment (discovered in javascript).
if($gid || $cid || $cmin || ($cmax != 99) || $star || $liked || $conv || $spam || $nouveau || $list)
- $firehose = 0;
+ $firehose = 0;
+
+ $maxheight = get_pconfig(local_user(),'system','network_divmore_height');
+ if(! $maxheight)
+ $maxheight = 400;
+
$o .= '<div id="live-network"></div>' . "\r\n";
- $o .= "<script> var profile_uid = " . $_SESSION['uid'] . "; var profile_page = " . $a->pager['page'] . ";</script>";
+ $o .= "<script> var profile_uid = " . local_user()
+ . "; var profile_page = " . $a->pager['page']
+ . "; divmore_height = " . intval($maxheight) . "; </script>\r\n";
$a->page['htmlhead'] .= replace_macros(get_markup_template("build_query.tpl"),array(
'$baseurl' => z_root(),
- '$pgtype' => 'network',
- '$uid' => ((local_user()) ? local_user() : '0'),
- '$gid' => (($gid) ? $gid : '0'),
- '$cid' => (($cid) ? $cid : '0'),
- '$cmin' => (($cmin) ? $cmin : '0'),
- '$cmax' => (($cmax) ? $cmax : '0'),
- '$star' => (($star) ? $star : '0'),
- '$liked' => (($liked) ? $liked : '0'),
- '$conv' => (($conv) ? $conv : '0'),
- '$spam' => (($spam) ? $spam : '0'),
- '$fh' => (($firehose) ? $firehose : '0'),
+ '$pgtype' => 'network',
+ '$uid' => ((local_user()) ? local_user() : '0'),
+ '$gid' => (($gid) ? $gid : '0'),
+ '$cid' => (($cid) ? $cid : '0'),
+ '$cmin' => (($cmin) ? $cmin : '0'),
+ '$cmax' => (($cmax) ? $cmax : '0'),
+ '$star' => (($star) ? $star : '0'),
+ '$liked' => (($liked) ? $liked : '0'),
+ '$conv' => (($conv) ? $conv : '0'),
+ '$spam' => (($spam) ? $spam : '0'),
+ '$fh' => (($firehose) ? $firehose : '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,
- '$file' => $file,
- '$cats' => '',
- '$dend' => $datequery,
- '$mid' => '',
- '$dbegin' => $datequery2
+ '$wall' => '0',
+ '$list' => ((x($_REQUEST,'list')) ? intval($_REQUEST['list']) : 0),
+ '$page' => (($a->pager['page'] != 1) ? $a->pager['page'] : 1),
+ '$search' => (($search) ? $search : ''),
+ '$order' => $order,
+ '$file' => $file,
+ '$cats' => $category,
+ '$tags' => $hashtags,
+ '$dend' => $datequery,
+ '$mid' => '',
+ '$dbegin' => $datequery2
));
}
@@ -246,17 +264,19 @@ function network_content(&$a, $update = 0, $load = false) {
$sql_extra3 .= protect_sprintf(sprintf(" AND item.created >= '%s' ", dbesc(datetime_convert(date_default_timezone_get(),'',$datequery2))));
}
- $sql_extra2 = (($nouveau) ? '' : " AND `item`.`parent` = `item`.`id` ");
+ $sql_extra2 = (($nouveau) ? '' : " AND item.parent = item.id ");
$sql_extra3 = (($nouveau) ? '' : $sql_extra3);
if(x($_GET,'search')) {
$search = escape_tags($_GET['search']);
- if(strpos($search,'#') === 0)
+ if(strpos($search,'#') === 0) {
$sql_extra .= term_query('item',substr($search,1),TERM_HASHTAG);
- else
- $sql_extra .= sprintf(" AND `item`.`body` like '%s' ",
+ }
+ else {
+ $sql_extra .= sprintf(" AND item.body like '%s' ",
dbesc(protect_sprintf('%' . $search . '%'))
);
+ }
}
if(strlen($file)) {
@@ -264,7 +284,7 @@ function network_content(&$a, $update = 0, $load = false) {
}
if($conv) {
- $sql_extra .= sprintf(" AND parent IN (SELECT distinct(parent) from item where ( author_xchan like '%s' or ( item_flags & %d ))) ",
+ $sql_extra .= sprintf(" AND parent IN (SELECT distinct(parent) from item where ( author_xchan like '%s' or ( item_flags & %d ) > 0)) ",
dbesc(protect_sprintf($channel['channel_hash'])),
intval(ITEM_MENTIONSME)
);
@@ -279,7 +299,7 @@ function network_content(&$a, $update = 0, $load = false) {
else {
$itemspage = get_pconfig(local_user(),'system','itemspage');
$a->set_pager_itemspage(((intval($itemspage)) ? $itemspage : 20));
- $pager_sql = sprintf(" LIMIT %d, %d ",intval($a->pager['start']), intval($a->pager['itemspage']));
+ $pager_sql = sprintf(" LIMIT %d OFFSET %d ", intval($a->pager['itemspage']), intval($a->pager['start']));
}
@@ -287,7 +307,7 @@ function network_content(&$a, $update = 0, $load = false) {
// Not everybody who shows up in the network stream will be in your address book.
// By default those that aren't are assumed to have closeness = 99; but this isn't
- // recorded anywhere. So if cmax is 99, we'll open the search up to anybody in
+ // recorded anywhere. So if cmax is 99, we'll open the search up to anybody in
// the stream with a NULL address book entry.
$sql_nets .= " AND ";
@@ -314,33 +334,38 @@ function network_content(&$a, $update = 0, $load = false) {
$uids = " and item.uid = " . local_user() . " ";
}
- $simple_update = (($update) ? " and ( item.item_flags & " . intval(ITEM_UNSEEN) . " ) " : '');
+ if(get_pconfig(local_user(),'system','network_list_mode'))
+ $page_mode = 'list';
+ else
+ $page_mode = 'client';
+
+ $simple_update = (($update) ? " and ( item.item_flags & " . intval(ITEM_UNSEEN) . " ) > 0 " : '');
// This fixes a very subtle bug so I'd better explain it. You wake up in the morning or return after a day
- // or three and look at your matrix page - after opening up your browser. The first page loads just as it
- // should. All of a sudden a few seconds later, page 2 will get inserted at the beginning of the page
+ // or three and look at your matrix page - after opening up your browser. The first page loads just as it
+ // should. All of a sudden a few seconds later, page 2 will get inserted at the beginning of the page
// (before the page 1 content). The update code is actually doing just what it's supposed
// to, it's fetching posts that have the ITEM_UNSEEN bit set. But the reason that page 2 content is being
- // returned in an UPDATE is because you hadn't gotten that far yet - you're still on page 1 and everything
+ // returned in an UPDATE is because you hadn't gotten that far yet - you're still on page 1 and everything
// that we loaded for page 1 is now marked as seen. But the stuff on page 2 hasn't been. So... it's being
- // treated as "new fresh" content because it is unseen. We need to distinguish it somehow from content
+ // treated as "new fresh" content because it is unseen. We need to distinguish it somehow from content
// which "arrived as you were reading page 1". We're going to do this
// by storing in your session the current UTC time whenever you LOAD a network page, and only UPDATE items
// which are both ITEM_UNSEEN and have "changed" since that time. Cross fingers...
- if($update && $_SESSION['loadtime'])
- $simple_update .= " and item.changed > '" . datetime_convert('UTC','UTC',$_SESSION['loadtime']) . "' ";
+ if($update && $_SESSION['loadtime'])
+ $simple_update .= " and item.changed > '" . datetime_convert('UTC','UTC',$_SESSION['loadtime']) . "' ";
if($load)
$simple_update = '';
if($nouveau && $load) {
// "New Item View" - show all items unthreaded in reverse created date order
- $items = q("SELECT `item`.*, `item`.`id` AS `item_id` FROM `item`
- WHERE true $uids AND item_restrict = 0
+ $items = q("SELECT item.*, item.id AS item_id, received FROM item
+ WHERE true $uids AND item_restrict = 0
$simple_update
$sql_extra $sql_nets
- ORDER BY `item`.`received` DESC $pager_sql "
+ ORDER BY item.received DESC $pager_sql "
);
require_once('include/items.php');
@@ -354,9 +379,9 @@ function network_content(&$a, $update = 0, $load = false) {
// Normal conversation view
if($order === 'post')
- $ordering = "`created`";
+ $ordering = "created";
else
- $ordering = "`commented`";
+ $ordering = "commented";
if($load) {
@@ -364,19 +389,19 @@ function network_content(&$a, $update = 0, $load = false) {
// Fetch a page full of parent items for this page
- $r = q("SELECT distinct item.id AS item_id FROM item
+ $r = q("SELECT distinct item.id AS item_id, $ordering FROM item
left join abook on item.author_xchan = abook.abook_xchan
WHERE true $uids AND item.item_restrict = 0
AND item.parent = item.id
and ((abook.abook_flags & %d) = 0 or abook.abook_flags is null)
$sql_extra3 $sql_extra $sql_nets
- ORDER BY item.$ordering DESC $pager_sql ",
+ ORDER BY $ordering DESC $pager_sql ",
intval(ABOOK_FLAG_BLOCKED)
);
}
else {
- if(! $firehose) {
+ if(! $firehose) {
// update
$r = q("SELECT item.parent AS item_id FROM item
left join abook on item.author_xchan = abook.abook_xchan
@@ -396,29 +421,45 @@ function network_content(&$a, $update = 0, $load = false) {
$parents_str = ids_to_querystr($r,'item_id');
- $items = q("SELECT `item`.*, `item`.`id` AS `item_id` FROM `item`
- WHERE true $uids AND `item`.`item_restrict` = 0
- AND `item`.`parent` IN ( %s )
+ $items = q("SELECT item.*, item.id AS item_id FROM item
+ WHERE true $uids AND item.item_restrict = 0
+ AND item.parent IN ( %s )
$sql_extra ",
dbesc($parents_str)
);
- xchan_query($items);
+ xchan_query($items,true,(($firehose) ? local_user() : 0));
$items = fetch_post_tags($items,true);
$items = conv_sort($items,$ordering);
- }
+ }
else {
$items = array();
}
- if($parents_str)
- $update_unseen = ' AND parent IN ( ' . dbesc($parents_str) . ' )';
+ if($page_mode === 'list') {
+
+ /**
+ * in "list mode", only mark the parent item and any like activities as "seen".
+ * We won't distinguish between comment likes and post likes. The important thing
+ * is that the number of unseen comments will be accurate. The SQL to separate the
+ * comment likes could also get somewhat hairy.
+ */
+ if($parents_str) {
+ $update_unseen = " AND ( id IN ( " . dbesc($parents_str) . " )";
+ $update_unseen .= " OR ( parent IN ( " . dbesc($parents_str) . " ) AND verb in ( '" . dbesc(ACTIVITY_LIKE) . "','" . dbesc(ACTIVITY_DISLIKE) . "' ))) ";
+ }
+ }
+ else {
+ if($parents_str) {
+ $update_unseen = " AND parent IN ( " . dbesc($parents_str) . " )";
+ }
+ }
}
if(($update_unseen) && (! $firehose))
- $r = q("UPDATE `item` SET item_flags = ( item_flags ^ %d)
- WHERE (item_flags & %d) AND `uid` = %d $update_unseen ",
+ $r = q("UPDATE item SET item_flags = ( item_flags & ~%d)
+ WHERE (item_flags & %d) > 0 AND uid = %d $update_unseen ",
intval(ITEM_UNSEEN),
intval(ITEM_UNSEEN),
intval(local_user())
@@ -426,10 +467,11 @@ function network_content(&$a, $update = 0, $load = false) {
$mode = (($nouveau) ? 'network-new' : 'network');
- $o .= conversation($a,$items,$mode,$update,'client');
- if(($items) && (! $update))
- $o .= alt_pager($a,count($items));
+ $o .= conversation($a,$items,$mode,$update,$page_mode);
+
+ if(($items) && (! $update))
+ $o .= alt_pager($a,count($items));
return $o;
}
diff --git a/mod/new_channel.php b/mod/new_channel.php
index eafef2c08..185fc7c28 100644
--- a/mod/new_channel.php
+++ b/mod/new_channel.php
@@ -1,6 +1,8 @@
<?php
require_once('include/identity.php');
+require_once('include/permissions.php');
+
function new_channel_init(&$a) {
@@ -100,7 +102,7 @@ function new_channel_content(&$a) {
$name = ((x($_REQUEST,'name')) ? $_REQUEST['name'] : "" );
$nickname = ((x($_REQUEST,'nickname')) ? $_REQUEST['nickname'] : "" );
-
+ $privacy_role = ((x($_REQUEST,'permissions_role')) ? $_REQUEST['permissions_role'] : "" );
$o = replace_macros(get_markup_template('new_channel.tpl'), array(
@@ -113,6 +115,11 @@ function new_channel_content(&$a) {
'$nick_desc' => t('Your nickname will be used to create an easily remembered channel address (like an email address) which you can share with others.'),
'$label_import' => t('Or <a href="import">import an existing channel</a> from another location'),
'$name' => $name,
+ '$label_role' => t('Channel Type'),
+ '$questionmark' => t('?'),
+ '$what_is_role' => t('What is this?'),
+ '$help_role' => t('Please choose a channel type (such as social networking or community forum) and privacy requirements so we can select the best permissions for you'),
+ '$role_select' => role_selector(($privacy_role) ? $privacy_role : 'social'),
'$nickname' => $nickname,
'$submit' => t('Create')
));
diff --git a/mod/notifications.php b/mod/notifications.php
index 09f89e88a..5507ee7e2 100644
--- a/mod/notifications.php
+++ b/mod/notifications.php
@@ -33,7 +33,7 @@ function notifications_post(&$a) {
$fid = $r[0]['fid'];
if($_POST['submit'] == t('Discard')) {
- $r = q("DELETE FROM `intro` WHERE `id` = %d LIMIT 1",
+ $r = q("DELETE FROM `intro` WHERE `id` = %d",
intval($intro_id)
);
if(! $fid) {
@@ -41,7 +41,7 @@ function notifications_post(&$a) {
// The check for blocked and pending is in case the friendship was already approved
// and we just want to get rid of the now pointless notification
- $r = q("DELETE FROM `contact` WHERE `id` = %d AND `uid` = %d AND `self` = 0 AND `blocked` = 1 AND `pending` = 1 LIMIT 1",
+ $r = q("DELETE FROM `contact` WHERE `id` = %d AND `uid` = %d AND `self` = 0 AND `blocked` = 1 AND `pending` = 1",
intval($contact_id),
intval(local_user())
);
@@ -49,7 +49,7 @@ function notifications_post(&$a) {
goaway($a->get_baseurl(true) . '/notifications/intros');
}
if($_POST['submit'] == t('Ignore')) {
- $r = q("UPDATE `intro` SET `ignore` = 1 WHERE `id` = %d LIMIT 1",
+ $r = q("UPDATE `intro` SET `ignore` = 1 WHERE `id` = %d",
intval($intro_id));
goaway($a->get_baseurl(true) . '/notifications/intros');
}
diff --git a/mod/oembed.php b/mod/oembed.php
index a053a8c98..d4a4424f5 100644
--- a/mod/oembed.php
+++ b/mod/oembed.php
@@ -19,9 +19,10 @@ function oembed_init(&$a){
else {
echo "<html><body>";
- $j = oembed_fetch_url(base64url_decode(argv(1)));
+ $src = base64url_decode(argv(1));
+ $j = oembed_fetch_url($src);
echo $j->html;
-// logger('mod-oembed ' . $j->html, LOGGER_ALL);
+// logger('mod-oembed ' . $h, LOGGER_ALL);
echo "</body></html>";
}
}
diff --git a/mod/openid.php b/mod/openid.php
index 2112e0af4..9752db440 100644
--- a/mod/openid.php
+++ b/mod/openid.php
@@ -127,6 +127,8 @@ function openid_content(&$a) {
elseif($photo_other)
$pphoto = $photo_other;
+ $mimetype = guess_image_type($pphoto);
+
$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)
@@ -135,7 +137,7 @@ function openid_content(&$a) {
dbesc(''),
dbesc(''),
dbesc(''),
- dbesc('image/jpeg'),
+ dbesc($mimetype),
dbesc($pphoto),
dbesc($addr),
dbesc($url),
@@ -157,7 +159,7 @@ function openid_content(&$a) {
$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",
+ xchan_photo_s = '%s', xchan_photo_mimetype = '%s' where xchan_hash = '%s'",
dbesc(datetime_convert()),
dbesc($photos[0]),
dbesc($photos[1]),
diff --git a/mod/p.php b/mod/p.php
new file mode 100644
index 000000000..9d1c12dbc
--- /dev/null
+++ b/mod/p.php
@@ -0,0 +1,52 @@
+<?php /** @file */
+
+require_once('include/bb2diaspora.php');
+
+// used in Diaspora communications to provide a server copy of a sent post in XML format.
+
+function p_init(&$a) {
+
+ if(argc() < 2)
+ http_status_exit(401);
+
+ $mid = str_replace('.xml','',argv(1));
+
+ $r = q("select * from item where mid = '%s' and (item_flags & %d)>0 and item_private = 0 limit 1",
+ dbesc($mid),
+ intval(ITEM_WALL)
+ );
+
+
+ if((! $r) || (! perm_is_allowed($r[0]['uid'],'','view_stream')))
+ http_status_exit(404);
+
+
+ $c = q("select * from channel where channel_id = %d limit 1",
+ intval($r[0]['uid'])
+ );
+
+ if(! $c)
+ http_status_exit(404);
+
+ $myaddr = $c[0]['channel_address'] . '@' . $a->get_hostname();
+
+ $item = $r[0];
+
+ $title = $item['title'];
+ $body = bb2diaspora_itembody($item);
+ $created = datetime_convert('UTC','UTC',$item['created'],'Y-m-d H:i:s \U\T\C');
+
+ $tpl = get_markup_template('diaspora_post.tpl');
+ $msg = replace_macros($tpl, array(
+ '$body' => xmlify($body),
+ '$guid' => $item['mid'],
+ '$handle' => xmlify($myaddr),
+ '$public' => 'true',
+ '$created' => $created,
+ '$provider' => (($item['app']) ? $item['app'] : 'redmatrix')
+ ));
+
+ header('Content-type: text/xml');
+ echo $msg;
+ killme();
+} \ No newline at end of file
diff --git a/mod/page.php b/mod/page.php
index b3f53a227..e8f17ebda 100644
--- a/mod/page.php
+++ b/mod/page.php
@@ -14,13 +14,11 @@ function page_init(&$a) {
if($a->profile['profile_uid'])
head_set_icon($a->profile['thumb']);
-}
-
+ // load the item here in the init function because we need to extract
+ // the page layout and initialise the correct theme.
-function page_content(&$a) {
-
$observer = $a->get_observer();
$ob_hash = (($observer) ? $observer['xchan_hash'] : '');
@@ -97,11 +95,27 @@ function page_content(&$a) {
}
}
+ $a->data['webpage'] = $r;
+
+
+
+}
+
+
+
+
+function page_content(&$a) {
+
+ $r = $a->data['webpage'];
+ if(! $r)
+ return;
// logger('layout: ' . print_r($a->layout,true));
// Use of widgets should be determined by Comanche, but we don't have it on system pages yet, so...
+ // I recommend we now get rid of this bit - it's quite a hack to work around... - mike
+
if ($perms['write_pages']) {
$chan = $a->channel['channel_id'];
$who = $channel_address;
diff --git a/mod/photo.php b/mod/photo.php
index 9302278b6..8cb82e8ff 100644
--- a/mod/photo.php
+++ b/mod/photo.php
@@ -66,12 +66,12 @@ function photo_init(&$a) {
intval($uid)
);
if(count($r)) {
- $data = $r[0]['data'];
+ $data = dbunescbin($r[0]['data']);
$mimetype = $r[0]['type'];
}
if(! isset($data)) {
$data = file_get_contents($default);
- $mimetype = 'image/jpeg';
+ $mimetype = 'image/png';
}
}
else {
@@ -140,7 +140,7 @@ function photo_init(&$a) {
);
if($r && $allowed) {
- $data = $r[0]['data'];
+ $data = dbunescbin($r[0]['data']);
$mimetype = $r[0]['type'];
}
else {
@@ -176,15 +176,15 @@ function photo_init(&$a) {
case 4:
$data = file_get_contents(get_default_profile_photo());
- $mimetype = 'image/jpeg';
+ $mimetype = 'image/png';
break;
case 5:
$data = file_get_contents(get_default_profile_photo(80));
- $mimetype = 'image/jpeg';
+ $mimetype = 'image/png';
break;
case 6:
$data = file_get_contents(get_default_profile_photo(48));
- $mimetype = 'image/jpeg';
+ $mimetype = 'image/png';
break;
default:
killme();
diff --git a/mod/photos.php b/mod/photos.php
index 428aff2a0..7a9229cc4 100644
--- a/mod/photos.php
+++ b/mod/photos.php
@@ -196,7 +196,7 @@ function photos_post(&$a) {
}
}
- goaway($a->get_baseurl() . '/' . $_SESSION['photo_return']);
+ goaway($a->get_baseurl() . '/photos/' . $a->data['channel']['channel_address'] . '/album/' . $_SESSION['album_return']);
}
if(($a->argc > 2) && ((x($_POST,'desc') !== false) || (x($_POST,'newtag') !== false)) || (x($_POST,'albname') !== false)) {
@@ -206,6 +206,7 @@ function photos_post(&$a) {
$rawtags = ((x($_POST,'newtag')) ? notags(trim($_POST['newtag'])) : '');
$item_id = ((x($_POST,'item_id')) ? intval($_POST['item_id']) : 0);
$albname = ((x($_POST,'albname')) ? notags(trim($_POST['albname'])) : '');
+ $adult = ((x($_POST,'adult')) ? intval($_POST['adult']) : 0);
$str_group_allow = perms2str($_POST['group_allow']);
$str_contact_allow = perms2str($_POST['contact_allow']);
$str_group_deny = perms2str($_POST['group_deny']);
@@ -226,7 +227,7 @@ function photos_post(&$a) {
intval($page_owner_uid)
);
if(count($r)) {
- $ph = photo_factory($r[0]['data'], $r[0]['type']);
+ $ph = photo_factory(dbunescbin($r[0]['data']), $r[0]['type']);
if($ph->is_valid()) {
$rotate_deg = ( (intval($_POST['rotate']) == 1) ? 270 : 90 );
$ph->rotate($rotate_deg);
@@ -234,8 +235,8 @@ function photos_post(&$a) {
$width = $ph->getWidth();
$height = $ph->getHeight();
- $x = q("update photo set data = '%s', height = %d, width = %d where `resource_id` = '%s' and uid = %d and scale = 0 limit 1",
- dbesc($ph->imageString()),
+ $x = q("update photo set data = '%s', height = %d, width = %d where `resource_id` = '%s' and uid = %d and scale = 0",
+ dbescbin($ph->imageString()),
intval($height),
intval($width),
dbesc($resource_id),
@@ -247,8 +248,8 @@ function photos_post(&$a) {
$width = $ph->getWidth();
$height = $ph->getHeight();
- $x = q("update photo set data = '%s', height = %d, width = %d where `resource_id` = '%s' and uid = %d and scale = 1 limit 1",
- dbesc($ph->imageString()),
+ $x = q("update photo set data = '%s', height = %d, width = %d where `resource_id` = '%s' and uid = %d and scale = 1",
+ dbescbin($ph->imageString()),
intval($height),
intval($width),
dbesc($resource_id),
@@ -261,8 +262,8 @@ function photos_post(&$a) {
$width = $ph->getWidth();
$height = $ph->getHeight();
- $x = q("update photo set data = '%s', height = %d, width = %d where `resource_id` = '%s' and uid = %d and scale = 2 limit 1",
- dbesc($ph->imageString()),
+ $x = q("update photo set data = '%s', height = %d, width = %d where `resource_id` = '%s' and uid = %d and scale = 2",
+ dbescbin($ph->imageString()),
intval($height),
intval($width),
dbesc($resource_id),
@@ -273,13 +274,11 @@ function photos_post(&$a) {
}
}
- $p = q("SELECT * FROM `photo` WHERE `resource_id` = '%s' AND `uid` = %d and ( photo_flags = %d or photo_flags = %d ) ORDER BY `scale` DESC",
+ $p = q("SELECT * FROM `photo` WHERE `resource_id` = '%s' AND `uid` = %d ORDER BY `scale` DESC",
dbesc($resource_id),
- intval($page_owner_uid),
- intval(PHOTO_NORMAL),
- intval(PHOTO_PROFILE)
+ intval($page_owner_uid)
);
- if(count($p)) {
+ if($p) {
$ext = $phototypes[$p[0]['type']];
$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",
@@ -296,6 +295,14 @@ function photos_post(&$a) {
$item_private = (($str_contact_allow || $str_group_allow || $str_contact_deny || $str_group_deny) ? true : false);
+ $old_adult = (($p[0]['photo_flags'] & PHOTO_ADULT) ? 1 : 0);
+ if($old_adult != $adult) {
+ $r = q("update photo set photo_flags = ( photo_flags ^ %d) where resource_id = '%s' and uid = %d",
+ intval(PHOTO_ADULT),
+ dbesc($resource_id),
+ intval($page_owner_uid)
+ );
+ }
/* Don't make the item visible if the only change was the album name */
@@ -313,15 +320,17 @@ function photos_post(&$a) {
intval($item_id),
intval($page_owner_uid)
);
+
+ if($r) {
+ $old_tag = $r[0]['tag'];
+ $old_inform = $r[0]['inform'];
+ }
}
- if($r) {
- $old_tag = $r[0]['tag'];
- $old_inform = $r[0]['inform'];
- }
+
// make sure the linked item has the same permissions as the photo regardless of any other changes
$x = q("update item set allow_cid = '%s', allow_gid = '%s', deny_cid = '%s', deny_gid = '%s', item_private = %d
- where id = %d limit 1",
+ where id = %d",
dbesc($str_contact_allow),
dbesc($str_group_allow),
dbesc($str_contact_deny),
@@ -380,6 +389,7 @@ function photos_post(&$a) {
if($success['replaced']) {
$tagged[] = $tag;
+
$post_tags[] = array(
'uid' => $a->profile['profile_uid'],
'type' => $success['termtype'],
@@ -397,8 +407,14 @@ function photos_post(&$a) {
);
if($r) {
+ $r = fetch_post_tags($r,true);
$datarray = $r[0];
- $datarray['term'] = $post_tags;
+ if($post_tags) {
+ if((! array_key_exists('term',$datarray)) || (! is_array($datarray['term'])))
+ $datarray['term'] = $post_tags;
+ else
+ $datarray['term'] = array_merge($datarray['term'],$post_tags);
+ }
item_store_update($datarray,$execflag);
}
@@ -420,8 +436,11 @@ function photos_post(&$a) {
if(! $r['success']) {
notice($r['message'] . EOL);
}
-
- goaway($a->get_baseurl() . '/' . $_SESSION['photo_return']);
+
+ if($_REQUEST['newalbum'])
+ goaway($a->get_baseurl() . '/photos/' . $a->data['channel']['channel_address'] . '/album/' . bin2hex($_REQUEST['newalbum']));
+ else
+ goaway($a->get_baseurl() . '/photos/' . $a->data['channel']['channel_address'] . '/album/' . bin2hex(datetime_convert('UTC',date_default_timezone_get(),'now', 'Y')));
}
@@ -431,20 +450,17 @@ function photos_content(&$a) {
// URLs:
// photos/name
- // photos/name/upload
- // photos/name/upload/xxxxx (xxxxx is album name)
- // photos/name/album/xxxxx
- // photos/name/album/xxxxx/edit
+ // photos/name/album/xxxxx (xxxxx is album name)
// photos/name/image/xxxxx
- // photos/name/image/xxxxx/edit
if((get_config('system','block_public')) && (! local_user()) && (! remote_user())) {
notice( t('Public access denied.') . EOL);
return;
}
-
-
+
+ $unsafe = ((array_key_exists('unsafe',$_REQUEST) && $_REQUEST['unsafe']) ? 1 : 0);
+
require_once('include/bbcode.php');
require_once('include/security.php');
require_once('include/conversation.php');
@@ -468,11 +484,9 @@ function photos_content(&$a) {
if(argc() > 3) {
$datatype = argv(2);
$datum = argv(3);
- }
- elseif((argc() > 2) && (argv(2) === 'upload'))
- $datatype = 'upload';
- else
+ } else {
$datatype = 'summary';
+ }
if(argc() > 4)
$cmd = argv(4);
@@ -495,7 +509,6 @@ function photos_content(&$a) {
$can_post = perm_is_allowed($owner_uid,$observer['xchan_hash'],'post_photos');
$can_view = perm_is_allowed($owner_uid,$observer['xchan_hash'],'view_photos');
-
if(! $can_view) {
notice( t('Access to this item is restricted.') . EOL);
return;
@@ -513,42 +526,11 @@ function photos_content(&$a) {
$_is_owner = (local_user() && (local_user() == $owner_uid));
$o .= profile_tabs($a,$_is_owner, $a->data['channel']['channel_address']);
- //
- // dispatch request
- //
-
/**
* Display upload form
*/
- if($datatype === 'upload') {
- if(! ($can_post)) {
- notice( t('Permission denied.'));
- 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($albums['albums'])) {
- foreach($albums['albums'] as $album) {
- if(! $album['text'])
- continue;
- $selected = (($selname === $album['text']) ? ' selected="selected" ' : '');
- $albumselect .= '<option value="' . $album['text'] . '"' . $selected . '>' . $album['text'] . '</option>';
- }
- }
-
- $albumselect .= '</select>';
+ if( $can_post) {
$uploader = '';
@@ -556,12 +538,8 @@ function photos_content(&$a) {
'addon_text' => $uploader,
'default_upload' => true);
-
call_hooks('photo_upload_form',$ret);
- $default_upload = '<input id="photos-upload-choose" type="file" name="userfile" /> <div class="photos-upload-submit-wrapper" >
- <input type="submit" name="submit" value="' . t('Submit') . '" id="photos-upload-submit" /> </div>';
-
/* Show space usage */
$r = q("select sum(size) as total from photo where aid = %d and scale = 0 ",
@@ -571,10 +549,10 @@ function photos_content(&$a) {
$limit = service_class_fetch($a->data['channel']['channel_id'],'photo_upload_limit');
if($limit !== false) {
- $usage_message = sprintf( t("You have used %1$.2f Mbytes of %2$.2f Mbytes photo storage."), $r[0]['total'] / 1024000, $limit / 1024000 );
+ $usage_message = sprintf( t("%1$.2f MB of %2$.2f MB photo storage used."), $r[0]['total'] / 1024000, $limit / 1024000 );
}
else {
- $usage_message = sprintf( t('You have used %1$.2f Mbytes of photo storage.'), $r[0]['total'] / 1024000 );
+ $usage_message = sprintf( t('%1$.2f MB photo storage used.'), $r[0]['total'] / 1024000 );
}
if($_is_owner) {
@@ -586,38 +564,51 @@ function photos_content(&$a) {
'deny_cid' => $channel['channel_deny_cid'],
'deny_gid' => $channel['channel_deny_gid']
);
- }
- $albumselect_e = $albumselect;
+ $lockstate = (($channel['channel_allow_cid'] || $channel['channel_allow_gid'] || $channel['channel_deny_cid'] || $channel['channel_deny_gid']) ? 'lock' : 'unlock');
+ }
+
$aclselect_e = (($_is_owner) ? populate_acl($channel_acl,false) : '');
+ $selname = (($datum) ? hex2bin($datum) : '');
+
+ $albums = ((array_key_exists('albums', $a->data)) ? $a->data['albums'] : photos_albums_list($a->data['channel'],$a->data['observer']));
+
$tpl = get_markup_template('photos_upload.tpl');
- $o .= replace_macros($tpl,array(
+ $upload_form = replace_macros($tpl,array(
'$pagename' => t('Upload Photos'),
'$sessid' => session_id(),
'$usage' => $usage_message,
'$nickname' => $a->data['channel']['channel_address'],
- '$newalbum' => t('New album name: '),
- '$existalbumtext' => t('or existing album name: '),
+ '$newalbum_label' => t('Enter a new album name'),
+ '$newalbum_placeholder' => t('or select an existing one (doubleclick)'),
'$nosharetext' => t('Do not show a status post for this upload'),
- '$albumselect' => $albumselect_e,
+ '$albums' => $albums['albums'],
+ '$selname' => $selname,
'$permissions' => t('Permissions'),
'$aclselect' => $aclselect_e,
+ '$lockstate' => $lockstate,
'$uploader' => $ret['addon_text'],
- '$default' => (($ret['default_upload']) ? $default_upload : ''),
- '$uploadurl' => $ret['post_url']
+ '$default' => (($ret['default_upload']) ? true : false),
+ '$uploadurl' => $ret['post_url'],
+ '$submit' => t('Submit')
));
- return $o;
}
+ //
+ // dispatch request
+ //
+
/*
* Display a single photo album
*/
if($datatype === 'album') {
+
+
if((strlen($datum) & 1) || (! ctype_xdigit($datum))) {
notice( t('Album name could not be decoded') . EOL);
logger('mod_photos: illegal album encoding: ' . $datum);
@@ -627,15 +618,17 @@ function photos_content(&$a) {
$album = hex2bin($datum);
$r = q("SELECT `resource_id`, max(`scale`) AS `scale` 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`",
+ AND `scale` <= 4 and ((photo_flags = %d) or (photo_flags & %d ) > 0) $sql_extra GROUP BY `resource_id`",
intval($owner_uid),
dbesc($album),
intval(PHOTO_NORMAL),
- intval(PHOTO_PROFILE)
+ intval(($unsafe) ? (PHOTO_PROFILE|PHOTO_ADULT) : PHOTO_PROFILE)
);
if(count($r)) {
$a->set_pager_total(count($r));
- $a->set_pager_itemspage(40);
+ $a->set_pager_itemspage(60);
+ } else {
+ goaway($a->get_baseurl() . '/photos/' . $a->data['channel']['channel_address']);
}
if($_GET['order'] === 'posted')
@@ -643,62 +636,51 @@ function photos_content(&$a) {
else
$order = 'DESC';
- $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",
+
+ $r = q("SELECT p.resource_id, p.id, p.filename, p.type, p.scale, p.description, p.created FROM photo p INNER JOIN
+ (SELECT resource_id, max(scale) scale 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) ph
+ ON (p.resource_id = ph.resource_id AND p.scale = ph.scale)
+ ORDER BY created $order LIMIT %d OFFSET %d",
intval($owner_uid),
dbesc($album),
intvaL(PHOTO_NORMAL),
- intval(PHOTO_PROFILE),
- intval($a->pager['start']),
- intval($a->pager['itemspage'])
+ intval(($unsafe) ? (PHOTO_PROFILE|PHOTO_ADULT) : PHOTO_PROFILE),
+ intval($a->pager['itemspage']),
+ intval($a->pager['start'])
);
-
- $o .= '<h3>' . $album . '</h3>';
- if($cmd === 'edit') {
- if(($album !== t('Profile Photos')) && ($album !== 'Contact Photos') && ($album !== t('Contact Photos'))) {
- if($can_post) {
- if($a->get_template_engine() === 'internal') {
- $album_e = template_escape($album);
- }
- else {
- $album_e = $album;
- }
-
- $edit_tpl = get_markup_template('album_edit.tpl');
- $o .= replace_macros($edit_tpl,array(
- '$nametext' => t('New album name: '),
- '$nickname' => $a->data['channel']['channel_address'],
- '$album' => $album_e,
- '$hexalbum' => bin2hex($album),
- '$submit' => t('Submit'),
- '$dropsubmit' => t('Delete Album')
- ));
+ //edit album name
+ $album_edit = null;
+ if(($album !== t('Profile Photos')) && ($album !== 'Profile Photos') && ($album !== 'Contact Photos') && ($album !== t('Contact Photos'))) {
+ if($can_post) {
+ if($a->get_template_engine() === 'internal') {
+ $album_e = template_escape($album);
}
- }
- }
- else {
- if(($album !== t('Profile Photos')) && ($album !== 'Contact Photos') && ($album !== t('Contact Photos'))) {
- if($can_post) {
- $o .= '<div id="album-edit-link"><a href="'. $a->get_baseurl() . '/photos/'
- . $a->data['channel']['channel_address'] . '/album/' . bin2hex($album) . '/edit' . '">'
- . t('Edit Album') . '</a></div>';
- }
+ else {
+ $album_e = $album;
+ }
+ $albums = ((array_key_exists('albums', $a->data)) ? $a->data['albums'] : photos_albums_list($a->data['channel'],$a->data['observer']));
+ $edit_tpl = get_markup_template('album_edit.tpl');
+ $album_edit = replace_macros($edit_tpl,array(
+ '$nametext' => t('Enter a new album name'),
+ '$name_placeholder' => t('or select an existing one (doubleclick)'),
+ '$nickname' => $a->data['channel']['channel_address'],
+ '$album' => $album_e,
+ '$albums' => $albums['albums'],
+ '$hexalbum' => bin2hex($album),
+ '$submit' => t('Submit'),
+ '$dropsubmit' => t('Delete Album')
+ ));
}
}
if($_GET['order'] === 'posted')
- $o .= '<div class="photos-upload-link" ><a href="' . $a->get_baseurl() . '/photos/' . $a->data['channel']['channel_address'] . '/album/' . bin2hex($album) . '" >' . t('Show Newest First') . '</a></div>';
+ $order = array(t('Show Newest First'), $a->get_baseurl() . '/photos/' . $a->data['channel']['channel_address'] . '/album/' . bin2hex($album));
else
- $o .= '<div class="photos-upload-link" ><a href="' . $a->get_baseurl() . '/photos/' . $a->data['channel']['channel_address'] . '/album/' . bin2hex($album) . '?f=&order=posted" >' . t('Show Oldest First') . '</a></div>';
+ $order = array(t('Show Oldest First'), $a->get_baseurl() . '/photos/' . $a->data['channel']['channel_address'] . '/album/' . bin2hex($album) . '?f=&order=posted');
-
- if($can_post) {
- $o .= '<div class="photos-upload-link" ><a href="' . $a->get_baseurl() . '/photos/' . $a->data['channel']['channel_address'] . '/upload/' . bin2hex($album) . '" >' . t('Upload New Photos') . '</a></div>';
- }
-
- $tpl = get_markup_template('photo_album.tpl');
- if(count($r))
+ $photos = array();
+ if(count($r)) {
$twist = 'rotright';
foreach($r as $rr) {
@@ -712,38 +694,62 @@ function photos_content(&$a) {
$imgalt_e = $rr['filename'];
$desc_e = $rr['description'];
+ $imagelink = ($a->get_baseurl() . '/photos/' . $a->data['channel']['channel_address'] . '/image/' . $rr['resource_id']
+ . (($_GET['order'] === 'posted') ? '?f=&order=posted' : ''));
+
+ $rel=("photo");
+
+ $photos[] = array(
+ 'id' => $rr['id'],
+ 'twist' => ' ' . $twist . rand(2,4),
+ 'link' => $imagelink,
+ 'rel' => $rel,
+ 'title' => t('View Photo'),
+ 'src' => $a->get_baseurl() . '/photo/' . $rr['resource_id'] . '-' . $rr['scale'] . '.' .$ext,
+ 'alt' => $imgalt_e,
+ 'desc'=> $desc_e,
+ 'ext' => $ext,
+ 'hash'=> $rr['resource_id'],
+ 'unknown' => t('Unknown')
+ );
+ }
+ }
-// 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 {
- $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'],
- '$twist' => ' ' . $twist . rand(2,4),
- '$photolink' => $imagelink,
- '$rel' => $rel,
- '$phototitle' => t('View Photo'),
- '$imgsrc' => $a->get_baseurl() . '/photo/' . $rr['resource_id'] . '-' . $rr['scale'] . '.' .$ext,
- '$imgalt' => $imgalt_e,
- '$desc'=> $desc_e,
- '$ext' => $ext,
- '$hash'=> $rr['resource_id'],
+ if($_REQUEST['aj']) {
+ if($photos) {
+ $o = replace_macros(get_markup_template('photosajax.tpl'),array(
+ '$photos' => $photos,
));
+ }
+ else {
+ $o = '<div id="content-complete"></div>';
+ }
+ echo $o;
+ killme();
+ }
+ else {
+ $o .= "<script> var page_query = '" . $_GET['q'] . "'; var extra_args = '" . extra_query_args() . "' ; </script>";
+ $tpl = get_markup_template('photo_album.tpl');
+ $o .= replace_macros($tpl, array(
+ '$photos' => $photos,
+ '$album' => $album,
+ '$album_edit' => array(t('Edit Album'), $album_edit),
+ '$can_post' => $can_post,
+ '$upload' => array(t('Upload'), $a->get_baseurl() . '/photos/' . $a->data['channel']['channel_address'] . '/upload/' . bin2hex($album)),
+ '$order' => $order,
+ '$upload_form' => $upload_form,
+ '$usage' => $usage_message
+ ));
}
- $o .= '<div id="photo-album-end"></div>';
- $o .= paginate($a);
+
+ if((! $photos) && ($_REQUEST['aj'])) {
+ $o .= '<div id="content-complete"></div>';
+ echo $o;
+ killme();
+ }
+
+// $o .= paginate($a);
return $o;
@@ -758,25 +764,18 @@ function photos_content(&$a) {
// fetch image, item containing image, then comments
$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 ",
+ $sql_extra ORDER BY `scale` ASC ",
intval($owner_uid),
- dbesc($datum),
- intval(PHOTO_NORMAL),
- intval(PHOTO_PROFILE)
-
+ dbesc($datum)
);
if(! $ph) {
/* Check again - this time without specifying permissions */
- $ph = q("SELECT id FROM photo WHERE uid = %d AND resource_id = '%s'
- and ( photo_flags = %d or photo_flags = %d )
- LIMIT 1",
+ $ph = q("SELECT id FROM photo WHERE uid = %d AND resource_id = '%s' LIMIT 1",
intval($owner_uid),
- dbesc($datum),
- intval(PHOTO_NORMAL),
- intval(PHOTO_PROFILE)
+ dbesc($datum)
);
if($ph)
notice( t('Permission denied. Access to this item may be restricted.') . EOL);
@@ -797,11 +796,9 @@ function photos_content(&$a) {
$prvnxt = q("SELECT `resource_id` FROM `photo` WHERE `album` = '%s' AND `uid` = %d AND `scale` = 0
- and ( photo_flags = %d or photo_flags = %d ) $sql_extra ORDER BY `created` $order ",
+ $sql_extra ORDER BY `created` $order ",
dbesc($ph[0]['album']),
- intval($owner_uid),
- intval(PHOTO_NORMAL),
- intval(PHOTO_PROFILE)
+ intval($owner_uid)
);
if(count($prvnxt)) {
@@ -843,16 +840,14 @@ function photos_content(&$a) {
$tools = array(
'profile'=>array($a->get_baseurl() . '/profile_photo/use/'.$ph[0]['resource_id'], t('Use as profile photo')),
);
-
- // lock
- $lock = ( ( ($ph[0]['uid'] == local_user()) && (strlen($ph[0]['allow_cid']) || strlen($ph[0]['allow_gid'])
- || strlen($ph[0]['deny_cid']) || strlen($ph[0]['deny_gid'])) )
- ? t('Private Message')
- : Null);
-
-
}
+ // lockstate
+ $lockstate = ( ( (strlen($ph[0]['allow_cid']) || strlen($ph[0]['allow_gid'])
+ || strlen($ph[0]['deny_cid']) || strlen($ph[0]['deny_gid'])) )
+ ? array('lock', t('Private Photo'))
+ : array('unlock', Null));
+
$a->page['htmlhead'] .= '<script>$(document).keydown(function(event) {' . "\n";
if($prevlink)
$a->page['htmlhead'] .= 'if(event.ctrlKey && event.keyCode == 37) { event.preventDefault(); window.location.href = \'' . $prevlink . '\'; }' . "\n";
@@ -861,7 +856,7 @@ function photos_content(&$a) {
$a->page['htmlhead'] .= '});</script>';
if($prevlink)
- $prevlink = array($prevlink, '<i class="icon-backward photo-icons""></i>') ;
+ $prevlink = array($prevlink, t('Previous'));
$photo = array(
'href' => $a->get_baseurl() . '/photo/' . $hires['resource_id'] . '-' . $hires['scale'] . '.' . $phototypes[$hires['type']],
@@ -870,7 +865,7 @@ function photos_content(&$a) {
);
if($nextlink)
- $nextlink = array($nextlink, '<i class="icon-forward photo-icons"></i>');
+ $nextlink = array($nextlink, t('Next'));
// Do we have an item for this photo?
@@ -900,23 +895,21 @@ function photos_content(&$a) {
$r = conv_sort($r,'commented');
}
-
-
$tags = array();
if($link_item['term']) {
$cnt = 0;
- foreach($link_item['term'] as $t)
+ 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][1] = 'tagrm/drop/' . $link_item['id'] . '/' . bin2hex($t['term']); //?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)",
+ q("UPDATE `item` SET item_flags = (item_flags & ~%d) WHERE parent = %d and uid = %d and (item_flags & %d)>0",
intval(ITEM_UNSEEN),
intval($link_item['parent']),
intval(local_user()),
@@ -933,23 +926,22 @@ function photos_content(&$a) {
$edit = null;
if($can_post) {
- if(array_key_exists('albums', $a->data))
- $albums = get_app()->data['albums'];
- else
- $albums = photos_albums_list($a->data['channel'],$a->data['observer']);
-
$album_e = $ph[0]['album'];
$caption_e = $ph[0]['description'];
$aclselect_e = populate_acl($ph[0]);
+ $albums = ((array_key_exists('albums', $a->data)) ? $a->data['albums'] : photos_albums_list($a->data['channel'],$a->data['observer']));
+
+ $_SESSION['album_return'] = bin2hex($ph[0]['album']);
$edit = array(
'edit' => t('Edit photo'),
- 'id' => $ph[0]['id'],
+ 'id' => $link_item['id'],
'rotatecw' => t('Rotate CW (right)'),
'rotateccw' => t('Rotate CCW (left)'),
'albums' => $albums['albums'],
'album' => $album_e,
- 'newalbum' => t('New album name'),
+ 'newalbum_label' => t('Enter a new album name'),
+ 'newalbum_placeholder' => t('or select an existing one (doubleclick)'),
'nickname' => $a->data['channel']['channel_address'],
'resource_id' => $ph[0]['resource_id'],
'capt_label' => t('Caption'),
@@ -957,8 +949,11 @@ function photos_content(&$a) {
'tag_label' => t('Add a Tag'),
'permissions' => t('Permissions'),
'aclselect' => $aclselect_e,
- 'help_tags' => t('Example: @bob, @Barbara_Jensen, @jim@example.com, #California, #camping'),
+ 'lockstate' => $lockstate[0],
+ 'help_tags' => t('Example: @bob, @Barbara_Jensen, @jim@example.com'),
'item_id' => ((count($linked_items)) ? $link_item['id'] : 0),
+ 'adult_enabled' => feature_enabled($owner_uid,'adult_photo_flagging'),
+ 'adult' => array('adult',t('Flag as adult in album view'), (($ph[0]['photo_flags'] & PHOTO_ADULT) ? 1 : 0),''),
'submit' => t('Submit'),
'delete' => t('Delete Photo')
);
@@ -987,7 +982,7 @@ function photos_content(&$a) {
$comments = '';
if(! count($r)) {
if($can_post || $can_comment) {
- $comments .= replace_macros($cmnt_tpl,array(
+ $commentbox = replace_macros($cmnt_tpl,array(
'$return_path' => '',
'$mode' => 'photos',
'$jsreload' => $return_url,
@@ -1013,7 +1008,7 @@ function photos_content(&$a) {
$like = '';
$dislike = '';
- // display comments
+
if($r) {
foreach($r as $item) {
@@ -1021,10 +1016,33 @@ function photos_content(&$a) {
like_puller($a,$item,$dlike,'dislike');
}
- $like = ((isset($alike[$link_item['id']])) ? format_like($alike[$link_item['id']],$alike[$link_item['id'] . '-l'],'like',$link_item['id']) : '');
- $dislike = ((isset($dlike[$link_item['id']])) ? format_like($dlike[$link_item['id']],$dlike[$link_item['id'] . '-l'],'dislike',$link_item['id']) : '');
+ $like_count = ((x($alike,$link_item['mid'])) ? $alike[$link_item['mid']] : '');
+ $like_list = ((x($alike,$link_item['mid'])) ? $alike[$link_item['mid'] . '-l'] : '');
+ if (count($like_list) > MAX_LIKERS) {
+ $like_list_part = array_slice($like_list, 0, MAX_LIKERS);
+ array_push($like_list_part, '<a href="#" data-toggle="modal" data-target="#likeModal-' . $this->get_id() . '"><b>' . t('View all') . '</b></a>');
+ } else {
+ $like_list_part = '';
+ }
+ $like_button_label = tt('Like','Likes',$like_count,'noun');
+
+ //if (feature_enabled($conv->get_profile_owner(),'dislike')) {
+ $dislike_count = ((x($dlike,$link_item['mid'])) ? $dlike[$link_item['mid']] : '');
+ $dislike_list = ((x($dlike,$link_item['mid'])) ? $dlike[$link_item['mid'] . '-l'] : '');
+ $dislike_button_label = tt('Dislike','Dislikes',$dislike_count,'noun');
+ if (count($dislike_list) > MAX_LIKERS) {
+ $dislike_list_part = array_slice($dislike_list, 0, MAX_LIKERS);
+ array_push($dislike_list_part, '<a href="#" data-toggle="modal" data-target="#dislikeModal-' . $this->get_id() . '"><b>' . t('View all') . '</b></a>');
+ } else {
+ $dislike_list_part = '';
+ }
+ //}
+
+ $like = ((isset($alike[$link_item['mid']])) ? format_like($alike[$link_item['mid']],$alike[$link_item['mid'] . '-l'],'like',$link_item['mid']) : '');
+ $dislike = ((isset($dlike[$link_item['mid']])) ? format_like($dlike[$link_item['mid']],$dlike[$link_item['mid'] . '-l'],'dislike',$link_item['mid']) : '');
+ // display comments
foreach($r as $item) {
$comment = '';
@@ -1058,7 +1076,7 @@ function photos_content(&$a) {
$body_e = prepare_text($item['body'],$item['mimetype']);
$comments .= replace_macros($template,array(
- '$id' => $item['item_id'],
+ '$id' => $item['id'],
'$mode' => 'photos',
'$profile_url' => $profile_link,
'$name' => $name_e,
@@ -1067,7 +1085,7 @@ function photos_content(&$a) {
'$title' => $title_e,
'$body' => $body_e,
'$ago' => relative_date($item['created']),
- '$indent' => (($item['parent'] != $item['item_id']) ? ' comment' : ''),
+ '$indent' => (($item['parent'] != $item['id']) ? ' comment' : ''),
'$drop' => $drop,
'$comment' => $comment
));
@@ -1075,7 +1093,7 @@ function photos_content(&$a) {
}
if($can_post || $can_comment) {
- $comments .= replace_macros($cmnt_tpl,array(
+ $commentbox = replace_macros($cmnt_tpl,array(
'$return_path' => '',
'$jsreload' => $return_url,
'$type' => 'wall-comment',
@@ -1102,21 +1120,35 @@ function photos_content(&$a) {
$photo_tpl = get_markup_template('photo_view.tpl');
$o .= replace_macros($photo_tpl, array(
- '$id' => $ph[0]['id'],
+ '$id' => $link_item['id'], //$ph[0]['id'],
'$album' => $album_e,
'$tools' => $tools,
- '$lock' => $lock,
+ '$lock' => $lockstate[1],
'$photo' => $photo,
'$prevlink' => $prevlink,
'$nextlink' => $nextlink,
'$desc' => $ph[0]['description'],
+ '$filename' => $ph[0]['filename'],
+ '$unknown' => t('Unknown'),
'$tag_hdr' => t('In This Photo:'),
'$tags' => $tags,
'$edit' => $edit,
'$likebuttons' => $likebuttons,
'$like' => $like_e,
'$dislike' => $dislike_e,
+ '$like_count' => $like_count,
+ '$like_list' => $like_list,
+ '$like_list_part' => $like_list_part,
+ '$like_button_label' => $like_button_label,
+ '$like_modal_title' => t('Likes','noun'),
+ '$dislike_modal_title' => t('Dislikes','noun'),
+ '$dislike_count' => $dislike_count, //((feature_enabled($conv->get_profile_owner(),'dislike')) ? $dislike_count : ''),
+ '$dislike_list' => $dislike_list, //((feature_enabled($conv->get_profile_owner(),'dislike')) ? $dislike_list : ''),
+ '$dislike_list_part' => $dislike_list_part, //((feature_enabled($conv->get_profile_owner(),'dislike')) ? $dislike_list_part : ''),
+ '$dislike_button_label' => $dislike_button_label, //((feature_enabled($conv->get_profile_owner(),'dislike')) ? $dislike_button_label : ''),
+ '$modal_dismiss' => t('Close'),
'$comments' => $comments,
+ '$commentbox' => $commentbox,
'$paginate' => $paginate,
));
@@ -1129,29 +1161,30 @@ function photos_content(&$a) {
//$o = '';
$r = q("SELECT `resource_id`, max(`scale`) AS `scale` FROM `photo` WHERE `uid` = %d AND `album` != '%s' AND `album` != '%s'
- and ( photo_flags = %d or photo_flags = %d ) $sql_extra GROUP BY `resource_id`",
+ and ((photo_flags = %d) or (photo_flags & %d) > 0) $sql_extra GROUP BY `resource_id`",
intval($a->data['channel']['channel_id']),
dbesc('Contact Photos'),
dbesc( t('Contact Photos')),
intval(PHOTO_NORMAL),
- intval(PHOTO_PROFILE)
+ intval(($unsafe) ? (PHOTO_PROFILE|PHOTO_ADULT) : PHOTO_PROFILE)
);
if(count($r)) {
$a->set_pager_total(count($r));
- $a->set_pager_itemspage(20);
+ $a->set_pager_itemspage(60);
}
-
- $r = q("SELECT `resource_id`, `id`, `filename`, type, `album`, max(`scale`) AS `scale` FROM `photo`
- WHERE `uid` = %d AND `album` != '%s' AND `album` != '%s'
- and ( photo_flags = %d or photo_flags = %d )
- $sql_extra GROUP BY `resource_id` ORDER BY `created` DESC LIMIT %d , %d",
+
+ $r = q("SELECT p.resource_id, p.id, p.filename, p.type, p.album, p.scale, p.created FROM photo p INNER JOIN
+ (SELECT resource_id, max(scale) scale FROM photo
+ WHERE uid=%d AND album != '%s' AND album != '%s'
+ AND (photo_flags = %d or ( photo_flags & %d ) > 0 ) $sql_extra group by resource_id) ph
+ ON (p.resource_id = ph.resource_id and p.scale = ph.scale) ORDER by p.created DESC LIMIT %d OFFSET %d",
intval($a->data['channel']['channel_id']),
dbesc('Contact Photos'),
dbesc( t('Contact Photos')),
intval(PHOTO_NORMAL),
- intval(PHOTO_PROFILE),
- intval($a->pager['start']),
- intval($a->pager['itemspage'])
+ intval(($unsafe) ? (PHOTO_PROFILE|PHOTO_ADULT) : PHOTO_PROFILE),
+ intval($a->pager['itemspage']),
+ intval($a->pager['start'])
);
@@ -1192,16 +1225,39 @@ function photos_content(&$a) {
}
}
- $tpl = get_markup_template('photos_recent.tpl');
- $o .= replace_macros($tpl, array(
- '$title' => t('Recent Photos'),
- '$can_post' => $can_post,
- '$upload' => array(t('Upload New Photos'), $a->get_baseurl().'/photos/'.$a->data['channel']['channel_address'].'/upload'),
- '$photos' => $photos,
- ));
+ if($_REQUEST['aj']) {
+ if($photos) {
+ $o = replace_macros(get_markup_template('photosajax.tpl'),array(
+ '$photos' => $photos,
+ ));
+ }
+ else {
+ $o = '<div id="content-complete"></div>';
+ }
+ echo $o;
+ killme();
+ }
+ else {
+ $o .= "<script> var page_query = '" . $_GET['q'] . "'; var extra_args = '" . extra_query_args() . "' ; </script>";
+ $tpl = get_markup_template('photos_recent.tpl');
+ $o .= replace_macros($tpl, array(
+ '$title' => t('Recent Photos'),
+ '$can_post' => $can_post,
+ '$upload' => array(t('Upload'), $a->get_baseurl().'/photos/'.$a->data['channel']['channel_address'].'/upload'),
+ '$photos' => $photos,
+ '$upload_form' => $upload_form,
+ '$usage' => $usage_message
+ ));
-
- $o .= paginate($a);
+ }
+
+ if((! $photos) && ($_REQUEST['aj'])) {
+ $o .= '<div id="content-complete"></div>';
+ echo $o;
+ killme();
+ }
+
+// paginate($a);
return $o;
}
diff --git a/mod/ping.php b/mod/ping.php
index 49475de66..ef8afd91c 100644
--- a/mod/ping.php
+++ b/mod/ping.php
@@ -41,6 +41,19 @@ function ping_init(&$a) {
header("content-type: application/json");
+ $vnotify = false;
+
+ if(local_user()) {
+ $vnotify = get_pconfig(local_user(),'system','vnotify');
+ $evdays = intval(get_pconfig(local_user(),'system','evdays'));
+ }
+
+ // if unset show all visual notification types
+ if($vnotify === false)
+ $vnotify = (-1);
+ if($evdays < 1)
+ $evdays = 3;
+
/**
* If you have several windows open to this site and switch to a different channel
* in one of them, the others may get into a confused state showing you a page or options
@@ -71,6 +84,11 @@ function ping_init(&$a) {
}
unset($_SESSION['sysmsg_info']);
}
+ if(! ($vnotify & VNOTIFY_INFO))
+ $result['info'] = array();
+ if(! ($vnotify & VNOTIFY_ALERT))
+ $result['notice'] = array();
+
if($a->install) {
echo json_encode($result);
@@ -89,7 +107,7 @@ function ping_init(&$a) {
$basic_presence = false;
if($r) {
$basic_presence = true;
- q("update chatpresence set cp_last = '%s' where cp_id = %d limit 1",
+ q("update chatpresence set cp_last = '%s' where cp_id = %d",
dbesc(datetime_convert()),
intval($r[0]['cp_id'])
);
@@ -110,7 +128,9 @@ function ping_init(&$a) {
* and shouldn't count as online anymore. We allow an expection for bots.
*/
- q("delete from chatpresence where cp_last < UTC_TIMESTAMP() - INTERVAL 3 MINUTE and cp_client != 'auto' ");
+ q("delete from chatpresence where cp_last < %s - INTERVAL %s and cp_client != 'auto' ",
+ db_utcnow(), db_quoteinterval('3 MINUTE')
+ );
if((! local_user()) || ($result['invalid'])) {
echo json_encode($result);
@@ -130,14 +150,14 @@ function ping_init(&$a) {
if(x($_REQUEST, 'markRead') && local_user()) {
switch($_REQUEST['markRead']) {
case 'network':
- $r = q("update item set item_flags = ( item_flags ^ %d ) where (item_flags & %d) and uid = %d",
+ $r = q("update item set item_flags = ( item_flags & ~%d ) where (item_flags & %d) > 0 and uid = %d",
intval(ITEM_UNSEEN),
intval(ITEM_UNSEEN),
intval(local_user())
);
break;
case 'home':
- $r = q("update item set item_flags = ( item_flags ^ %d ) where (item_flags & %d) and (item_flags & %d) and uid = %d",
+ $r = q("update item set item_flags = ( item_flags & ~%d ) where (item_flags & %d) > 0 and (item_flags & %d) > 0 and uid = %d",
intval(ITEM_UNSEEN),
intval(ITEM_UNSEEN),
intval(ITEM_WALL),
@@ -145,7 +165,7 @@ function ping_init(&$a) {
);
break;
case 'messages':
- $r = q("update mail set mail_flags = ( mail_flags ^ %d ) where channel_id = %d and not (mail_flags & %d)",
+ $r = q("update mail set mail_flags = ( mail_flags | %d ) where channel_id = %d and not (mail_flags & %d) > 0",
intval(MAIL_SEEN),
intval(local_user()),
intval(MAIL_SEEN)
@@ -166,6 +186,14 @@ function ping_init(&$a) {
}
}
+ if(x($_REQUEST, 'markItemRead') && local_user()) {
+ $r = q("update item set item_flags = ( item_flags & ~%d ) where parent = %d and uid = %d",
+ intval(ITEM_UNSEEN),
+ intval($_REQUEST['markItemRead']),
+ intval(local_user())
+ );
+ }
+
/**
@@ -179,17 +207,17 @@ function ping_init(&$a) {
);
if($t && intval($t[0]['total']) > 49) {
$z = q("select * from notify where uid = %d
- and seen = 0 order by date desc limit 0, 50",
+ and seen = 0 order by date desc limit 50",
intval(local_user())
);
}
else {
$z1 = q("select * from notify where uid = %d
- and seen = 0 order by date desc limit 0, 50",
+ and seen = 0 order by date desc limit 50",
intval(local_user())
);
$z2 = q("select * from notify where uid = %d
- and seen = 1 order by date desc limit 0, %d",
+ and seen = 1 order by date desc limit %d",
intval(local_user()),
intval(50 - intval($t[0]['total']))
);
@@ -204,7 +232,7 @@ function ping_init(&$a) {
'url' => $zz['url'],
'photo' => $zz['photo'],
'when' => relative_date($zz['date']),
- 'class' => (($zz['seen']) ? 'notify-seen' : 'notify-unseen'),
+ 'hclass' => (($zz['seen']) ? 'notify-seen' : 'notify-unseen'),
'message' => strip_tags(bbcode($zz['msg']))
);
}
@@ -217,8 +245,8 @@ function ping_init(&$a) {
if(argc() > 1 && argv(1) === 'messages') {
$channel = $a->get_channel();
$t = q("select mail.*, xchan.* from mail left join xchan on xchan_hash = from_xchan
- where channel_id = %d and not ( mail_flags & %d ) and not (mail_flags & %d )
- and from_xchan != '%s' order by created desc limit 0,50",
+ where channel_id = %d and not ( mail_flags & %d ) > 0 and not (mail_flags & %d ) > 0
+ and from_xchan != '%s' order by created desc limit 50",
intval(local_user()),
intval(MAIL_SEEN),
intval(MAIL_DELETED),
@@ -233,7 +261,7 @@ function ping_init(&$a) {
'url' => $zz['xchan_url'],
'photo' => $zz['xchan_photo_s'],
'when' => relative_date($zz['created']),
- 'class' => (($zz['mail_flags'] & MAIL_SEEN) ? 'notify-seen' : 'notify-unseen'),
+ 'hclass' => (($zz['mail_flags'] & MAIL_SEEN) ? 'notify-seen' : 'notify-unseen'),
'message' => t('sent you a private message'),
);
}
@@ -247,7 +275,7 @@ function ping_init(&$a) {
$result = array();
$r = q("SELECT * FROM item
- WHERE item_restrict = %d and ( item_flags & %d ) and uid = %d",
+ WHERE item_restrict = %d and ( item_flags & %d ) > 0 and uid = %d",
intval(ITEM_VISIBLE),
intval(ITEM_UNSEEN),
intval(local_user())
@@ -269,7 +297,7 @@ function ping_init(&$a) {
if(argc() > 1 && (argv(1) === 'intros')) {
$result = array();
- $r = q("SELECT * FROM abook left join xchan on abook.abook_xchan = xchan.xchan_hash where abook_channel = %d and (abook_flags & %d) and not ((abook_flags & %d) or (xchan_flags & %d))",
+ $r = q("SELECT * FROM abook left join xchan on abook.abook_xchan = xchan.xchan_hash where abook_channel = %d and (abook_flags & %d) > 0 and not ((abook_flags & %d) > 0 or (xchan_flags & %d) > 0)",
intval(local_user()),
intval(ABOOK_FLAG_PENDING),
intval(ABOOK_FLAG_SELF|ABOOK_FLAG_IGNORED),
@@ -284,7 +312,7 @@ function ping_init(&$a) {
'url' => $rr['xchan_url'],
'photo' => $rr['xchan_photo_s'],
'when' => relative_date($rr['abook_created']),
- 'class' => ('notify-unseen'),
+ 'hclass' => ('notify-unseen'),
'message' => t('added your channel')
);
}
@@ -303,7 +331,7 @@ function ping_init(&$a) {
WHERE `event`.`uid` = %d AND start < '%s' AND start > '%s' and `ignore` = 0
ORDER BY `start` DESC ",
intval(local_user()),
- dbesc(datetime_convert('UTC', date_default_timezone_get(), 'now + 7 days')),
+ dbesc(datetime_convert('UTC', date_default_timezone_get(), 'now + ' . intval($evdays) . ' days')),
dbesc(datetime_convert('UTC', date_default_timezone_get(), 'now - 1 days'))
);
@@ -325,7 +353,7 @@ function ping_init(&$a) {
'url' => $rr['xchan_url'],
'photo' => $rr['xchan_photo_s'],
'when' => $when,
- 'class' => ('notify-unseen'),
+ 'hclass' => ('notify-unseen'),
'message' => t('posted an event')
);
}
@@ -341,101 +369,125 @@ function ping_init(&$a) {
* Normal ping - just the counts, no detail
*/
- $t = q("select count(*) as total from notify where uid = %d and seen = 0",
- intval(local_user())
- );
- if($t)
- $result['notify'] = intval($t[0]['total']);
+ if($vnotify & VNOTIFY_SYSTEM) {
+ $t = q("select count(*) as total from notify where uid = %d and seen = 0",
+ intval(local_user())
+ );
+ if($t)
+ $result['notify'] = intval($t[0]['total']);
+ }
$t1 = dba_timer();
- $r = q("SELECT id, item_restrict, item_flags FROM item
- WHERE (item_restrict = %d) and ( item_flags & %d ) and uid = %d",
- intval(ITEM_VISIBLE),
- intval(ITEM_UNSEEN),
- intval(local_user())
- );
+ if($vnotify & (VNOTIFY_NETWORK|VNOTIFY_CHANNEL)) {
+ $r = q("SELECT id, item_restrict, item_flags FROM item
+ WHERE (item_restrict = %d) and ( item_flags & %d ) > 0 and uid = %d",
+ intval(ITEM_VISIBLE),
+ intval(ITEM_UNSEEN),
+ intval(local_user())
+ );
- if(count($r)) {
- $arr = array('items' => $r);
- call_hooks('network_ping', $arr);
+ if($r) {
+ $arr = array('items' => $r);
+ call_hooks('network_ping', $arr);
- foreach ($r as $it) {
- if($it['item_flags'] & ITEM_WALL)
- $result['home'] ++;
- else
- $result['network'] ++;
+ foreach ($r as $it) {
+ if($it['item_flags'] & ITEM_WALL)
+ $result['home'] ++;
+ else
+ $result['network'] ++;
+ }
}
}
+ if(! ($vnotify & VNOTIFY_NETWORK))
+ $result['network'] = 0;
+ if(! ($vnotify & VNOTIFY_CHANNEL))
+ $result['home'] = 0;
+
$t2 = dba_timer();
- $intr = 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 (abook_flags & %d) and not ((abook_flags & %d) or (xchan_flags & %d))",
- intval(local_user()),
- intval(ABOOK_FLAG_PENDING),
- intval(ABOOK_FLAG_SELF|ABOOK_FLAG_IGNORED),
- intval(XCHAN_FLAGS_DELETED|XCHAN_FLAGS_ORPHAN)
- );
+ if($vnotify & VNOTIFY_INTRO) {
+ $intr = 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 (abook_flags & %d) > 0 and not ((abook_flags & %d) > 0 or (xchan_flags & %d) > 0)",
+ intval(local_user()),
+ intval(ABOOK_FLAG_PENDING),
+ intval(ABOOK_FLAG_SELF|ABOOK_FLAG_IGNORED),
+ intval(XCHAN_FLAGS_DELETED|XCHAN_FLAGS_ORPHAN)
+ );
- $t3 = dba_timer();
+ $t3 = dba_timer();
- if($intr)
- $result['intros'] = intval($intr[0]['total']);
+ if($intr)
+ $result['intros'] = intval($intr[0]['total']);
+ }
$t4 = dba_timer();
$channel = get_app()->get_channel();
- $mails = q("SELECT count(id) as total from mail
- WHERE channel_id = %d AND not (mail_flags & %d) and from_xchan != '%s' ",
- intval(local_user()),
- intval(MAIL_SEEN),
- dbesc($channel['channel_hash'])
- );
- if($mails)
- $result['mail'] = intval($mails[0]['total']);
-
- if ($a->config['system']['register_policy'] == REGISTER_APPROVE && is_site_admin()) {
- $regs = q("SELECT count(account_id) as total from account where (account_flags & %d)",
- intval(ACCOUNT_PENDING)
+ if($vnotify & VNOTIFY_MAIL) {
+ $mails = q("SELECT count(id) as total from mail
+ WHERE channel_id = %d AND not (mail_flags & %d) > 0 and from_xchan != '%s' ",
+ intval(local_user()),
+ intval(MAIL_SEEN),
+ dbesc($channel['channel_hash'])
);
- if($regs)
- $result['register'] = intval($regs[0]['total']);
+ if($mails)
+ $result['mail'] = intval($mails[0]['total']);
+ }
+
+ if($vnotify & VNOTIFY_REGISTER) {
+ if ($a->config['system']['register_policy'] == REGISTER_APPROVE && is_site_admin()) {
+ $regs = q("SELECT count(account_id) as total from account where (account_flags & %d) > 0",
+ intval(ACCOUNT_PENDING)
+ );
+ if($regs)
+ $result['register'] = intval($regs[0]['total']);
+ }
}
$t5 = dba_timer();
- $events = q("SELECT type, start, adjust FROM `event`
- WHERE `event`.`uid` = %d AND start < '%s' AND start > '%s' and `ignore` = 0
- ORDER BY `start` ASC ",
- intval(local_user()),
- dbesc(datetime_convert('UTC', date_default_timezone_get(), 'now + 7 days')),
- dbesc(datetime_convert('UTC', date_default_timezone_get(), 'now - 1 days'))
- );
-
- if($events) {
- $result['all_events'] = count($events);
-
- if($result['all_events']) {
- $str_now = datetime_convert('UTC', date_default_timezone_get(), 'now', 'Y-m-d');
- foreach($events as $x) {
- $bd = false;
- if($x['type'] === 'birthday') {
- $result['birthdays'] ++;
- $bd = true;
- }
- else {
- $result['events'] ++;
- }
- if(datetime_convert('UTC', ((intval($x['adjust'])) ? date_default_timezone_get() : 'UTC'), $x['start'], 'Y-m-d') === $str_now) {
- $result['all_events_today'] ++;
- if($bd)
- $result['birthdays_today'] ++;
- else
- $result['events_today'] ++;
+ if($vnotify & (VNOTIFY_EVENT|VNOTIFY_EVENTTODAY|VNOTIFY_BIRTHDAY)) {
+ $events = q("SELECT type, start, adjust FROM `event`
+ WHERE `event`.`uid` = %d AND start < '%s' AND start > '%s' and `ignore` = 0
+ ORDER BY `start` ASC ",
+ intval(local_user()),
+ dbesc(datetime_convert('UTC', date_default_timezone_get(), 'now + ' . intval($evdays) . ' days')),
+ dbesc(datetime_convert('UTC', date_default_timezone_get(), 'now - 1 days'))
+ );
+
+ if($events) {
+ $result['all_events'] = count($events);
+
+ if($result['all_events']) {
+ $str_now = datetime_convert('UTC', date_default_timezone_get(), 'now', 'Y-m-d');
+ foreach($events as $x) {
+ $bd = false;
+ if($x['type'] === 'birthday') {
+ $result['birthdays'] ++;
+ $bd = true;
+ }
+ else {
+ $result['events'] ++;
+ }
+ if(datetime_convert('UTC', ((intval($x['adjust'])) ? date_default_timezone_get() : 'UTC'), $x['start'], 'Y-m-d') === $str_now) {
+ $result['all_events_today'] ++;
+ if($bd)
+ $result['birthdays_today'] ++;
+ else
+ $result['events_today'] ++;
+ }
}
}
}
}
+ if(! ($vnotify & VNOTIFY_EVENT))
+ $result['all_events'] = $result['events'] = 0;
+ if(! ($vnotify & VNOTIFY_EVENTTODAY))
+ $result['all_events_today'] = $result['events_today'] = 0;
+ if(! ($vnotify & VNOTIFY_BIRTHDAY))
+ $result['birthdays'] = 0;
+
$x = json_encode($result);
diff --git a/mod/poco.php b/mod/poco.php
index c1696e4cd..3f932e92f 100644
--- a/mod/poco.php
+++ b/mod/poco.php
@@ -15,7 +15,7 @@ function poco_init(&$a) {
$user = notags(trim(argv(1)));
}
if(! x($user)) {
- $c = q("select * from pconfig where cat = 'system' and k = 'suggestme' and v = 1");
+ $c = q("select * from pconfig where cat = 'system' and k = 'suggestme' and v = '1'");
if(! $c) {
logger('mod_poco: system mode. No candidates.', LOGGER_DEBUG);
http_status_exit(404);
@@ -60,7 +60,7 @@ function poco_init(&$a) {
}
if($justme)
- $sql_extra = " and ( abook_flags & " . ABOOK_FLAG_SELF . " ) ";
+ $sql_extra = " and ( abook_flags & " . ABOOK_FLAG_SELF . " )>0 ";
else
$sql_extra = " and abook_flags = 0 ";
@@ -69,14 +69,14 @@ function poco_init(&$a) {
if($system_mode) {
$r = q("SELECT count(*) as `total` from abook where ( abook_flags & " . ABOOK_FLAG_SELF .
- " ) and abook_channel in (select uid from pconfig where cat = 'system' and k = 'suggestme' and v = 1) ");
+ " )>0 and abook_channel in (select uid from pconfig where cat = 'system' and k = 'suggestme' and v = '1') ");
}
else {
$r = q("SELECT count(*) as `total` from abook where abook_channel = %d
$sql_extra ",
intval($channel_id)
);
- $c = q("select * from menu_item where ( mitem_flags & " . intval(MENU_ITEM_CHATROOM) . " ) and allow_cid = '' and allow_gid = '' and deny_cid = '' and deny_gid = '' and mitem_channel_id = %d",
+ $c = q("select * from menu_item where ( mitem_flags & " . intval(MENU_ITEM_CHATROOM) . " )>0 and allow_cid = '' and allow_gid = '' and deny_cid = '' and deny_gid = '' and mitem_channel_id = %d",
intval($channel_id)
);
}
@@ -93,17 +93,17 @@ function poco_init(&$a) {
if($system_mode) {
$r = q("SELECT abook.*, xchan.* from abook left join xchan on abook_xchan = xchan_hash where ( abook_flags & " . ABOOK_FLAG_SELF .
- " ) and abook_channel in (select uid from pconfig where cat = 'system' and k = 'suggestme' and v = 1) limit %d, %d ",
- intval($startIndex),
- intval($itemsPerPage)
+ " )>0 and abook_channel in (select uid from pconfig where cat = 'system' and k = 'suggestme' and v = '1') limit %d offset %d ",
+ intval($itemsPerPage),
+ intval($startIndex)
);
}
else {
$r = q("SELECT abook.*, xchan.* from abook left join xchan on abook_xchan = xchan_hash where abook_channel = %d
- $sql_extra LIMIT %d, %d",
+ $sql_extra LIMIT %d OFFSET %d",
intval($channel_id),
- intval($startIndex),
- intval($itemsPerPage)
+ intval($itemsPerPage),
+ intval($startIndex)
);
}
diff --git a/mod/post.php b/mod/post.php
index 3b4f66baf..9e818a7e2 100644
--- a/mod/post.php
+++ b/mod/post.php
@@ -98,7 +98,7 @@ function post_init(&$a) {
// Any channel will do, providing it's currently active. We just need to have an
// identity to attach to the packet we send back. So find one.
- $c = q("select * from channel where not ( channel_pageflags & %d ) limit 1",
+ $c = q("select * from channel where not ( channel_pageflags & %d )>0 limit 1",
intval(PAGE_REMOVED)
);
@@ -415,8 +415,8 @@ function post_init(&$a) {
* }
*}
*
- * Currently defined message types are 'activity', 'mail', 'profile' and 'channel_sync', which each have
- * different content schemas.
+ * Currently defined message types are 'activity', 'mail', 'profile', 'location' and 'channel_sync',
+ * which each have different content schemas.
*
* Ping packet:
* A ping packet does not require any parameters except the type. It may or may not be encrypted.
@@ -507,6 +507,7 @@ function post_post(&$a) {
json_return_and_die($ret);
}
+
if($msgtype === 'pickup') {
/**
@@ -597,11 +598,24 @@ function post_post(&$a) {
$ret['success'] = true;
$ret['pickup'] = array();
foreach($r as $rr) {
- $ret['pickup'][] = array('notify' => json_decode($rr['outq_notify'],true),'message' => json_decode($rr['outq_msg'],true));
+ if($rr['outq_msg']) {
+ $x = json_decode($rr['outq_msg'],true);
- $x = q("delete from outq where outq_hash = '%s' limit 1",
- dbesc($rr['outq_hash'])
- );
+ if(! $x)
+ continue;
+
+ if(array_key_exists('message_list',$x)) {
+ foreach($x['message_list'] as $xx) {
+ $ret['pickup'][] = array('notify' => json_decode($rr['outq_notify'],true),'message' => $xx);
+ }
+ }
+ else
+ $ret['pickup'][] = array('notify' => json_decode($rr['outq_notify'],true),'message' => $x);
+
+ $x = q("delete from outq where outq_hash = '%s'",
+ dbesc($rr['outq_hash'])
+ );
+ }
}
}
@@ -645,7 +659,7 @@ function post_post(&$a) {
// Update our DB to show when we last communicated successfully with this hub
// This will allow us to prune dead hubs from using up resources
- $r = q("update hubloc set hubloc_connected = '%s' where hubloc_id = %d limit 1",
+ $r = q("update hubloc set hubloc_connected = '%s' where hubloc_id = %d",
dbesc(datetime_convert()),
intval($hub['hubloc_id'])
);
@@ -653,17 +667,17 @@ function post_post(&$a) {
// a dead hub came back to life - reset any tombstones we might have
if($hub['hubloc_status'] & HUBLOC_OFFLINE) {
- q("update hubloc set hubloc_status = (hubloc_status ^ %d) where hubloc_id = %d limit 1",
+ q("update hubloc set hubloc_status = (hubloc_status & ~%d) where hubloc_id = %d",
intval(HUBLOC_OFFLINE),
intval($hub['hubloc_id'])
);
if($r[0]['hubloc_flags'] & HUBLOC_FLAGS_ORPHANCHECK) {
- q("update hubloc set hubloc_flags = (hubloc_flags ^ %d) where hubloc_id = %d limit 1",
+ q("update hubloc set hubloc_flags = (hubloc_flags & ~%d) where hubloc_id = %d",
intval(HUBLOC_FLAGS_ORPHANCHECK),
intval($hub['hubloc_id'])
);
}
- q("update xchan set xchan_flags = (xchan_flags ^ %d) where (xchan_flags & %d) and xchan_hash = '%s' limit 1",
+ q("update xchan set xchan_flags = (xchan_flags & ~%d) where (xchan_flags & %d)>0 and xchan_hash = '%s'",
intval(XCHAN_FLAGS_ORPHAN),
intval(XCHAN_FLAGS_ORPHAN),
dbesc($hub['hubloc_hash'])
@@ -718,7 +732,9 @@ function post_post(&$a) {
$sender_hash = make_xchan_hash($arr['guid'],$arr['guid_sig']);
// garbage collect any old unused notifications
- q("delete from verify where type = 'auth' and created < UTC_TIMESTAMP() - INTERVAL 10 MINUTE");
+ q("delete from verify where type = 'auth' and created < %s - INTERVAL %s",
+ db_utcnow(), db_quoteinterval('10 MINUTE')
+ );
$y = q("select xchan_pubkey from xchan where xchan_hash = '%s' limit 1",
dbesc($sender_hash)
@@ -767,7 +783,7 @@ function post_post(&$a) {
$ret['message'] .= 'verification key not found' . EOL;
json_return_and_die($ret);
}
- $r = q("delete from verify where id = %d limit 1",
+ $r = q("delete from verify where id = %d",
intval($z[0]['id'])
);
@@ -782,6 +798,7 @@ function post_post(&$a) {
$ret['service_class'] = $u[0]['account_service_class'];
// Set "do not track" flag if this site or this channel's profile is restricted
+ // in some way
if(intval(get_config('system','block_public')))
$ret['DNT'] = true;
@@ -789,6 +806,8 @@ function post_post(&$a) {
$ret['DNT'] = true;
if(get_pconfig($c[0]['channel_id'],'system','do_not_track'))
$ret['DNT'] = true;
+ if(get_pconfig($c[0]['channel_id'],'system','hide_online_status'))
+ $ret['DNT'] = true;
json_return_and_die($ret);
@@ -796,6 +815,12 @@ function post_post(&$a) {
json_return_and_die($ret);
}
+ if($msgtype === 'request') {
+ // request a particular post/conversation by message_id
+ $x = zot_process_message_request($data);
+ json_return_and_die($x);
+ }
+
if($msgtype === 'purge') {
if($recipients) {
diff --git a/mod/profile_photo.php b/mod/profile_photo.php
index c587b9606..e9dad6f51 100644
--- a/mod/profile_photo.php
+++ b/mod/profile_photo.php
@@ -33,7 +33,7 @@ function profile_photo_set_profile_perms($profileid = '') {
if (intval($profile['is_default']) != 1) {
$r0 = q("SELECT channel_hash FROM channel WHERE channel_id = %d LIMIT 1", intval(local_user()) );
- $r1 = q("SELECT abook.abook_xchan FROM abook WHERE abook_profile = %d ", intval($profile['id'])); //Should not be needed in future. Catches old int-profile-ids.
+ $r1 = q("SELECT abook.abook_xchan FROM abook WHERE abook_profile = '%d' ", intval($profile['id'])); //Should not be needed in future. Catches old int-profile-ids.
$r2 = q("SELECT abook.abook_xchan FROM abook WHERE abook_profile = '%s'", dbesc($profile['profile_guid']));
$allowcid = "<" . $r0[0]['channel_hash'] . ">";
foreach ($r1 as $entry) {
@@ -173,7 +173,7 @@ function profile_photo_post(&$a) {
dbesc($base_image['resource_id']),
intval(local_user())
);
- $r = q("UPDATE photo SET photo_flags = ( photo_flags ^ %d ) WHERE ( photo_flags & %d )
+ $r = q("UPDATE photo SET photo_flags = ( photo_flags & ~%d ) WHERE ( photo_flags & %d )>0
AND resource_id != '%s' AND `uid` = %d",
intval(PHOTO_PROFILE),
intval(PHOTO_PROFILE),
@@ -182,7 +182,7 @@ function profile_photo_post(&$a) {
);
}
else {
- $r = q("update profile set photo = '%s', thumb = '%s' where id = %d and uid = %d limit 1",
+ $r = q("update profile set photo = '%s', thumb = '%s' where id = %d and uid = %d",
dbesc($a->get_baseurl() . '/photo/' . $base_image['resource_id'] . '-4'),
dbesc($a->get_baseurl() . '/photo/' . $base_image['resource_id'] . '-5'),
intval($_REQUEST['profile']),
@@ -196,7 +196,7 @@ function profile_photo_post(&$a) {
$channel = $a->get_channel();
$r = q("UPDATE xchan set xchan_photo_mimetype = '%s', xchan_photo_date = '%s'
- where xchan_hash = '%s' limit 1",
+ where xchan_hash = '%s'",
dbesc($im->getType()),
dbesc(datetime_convert()),
dbesc($channel['xchan_hash'])
@@ -302,7 +302,7 @@ function profile_photo_content(&$a) {
// unset any existing profile photos
$r = q("UPDATE photo SET profile = 0 WHERE profile = 1 AND uid = %d",
intval(local_user()));
- $r = q("UPDATE photo SET photo_flags = (photo_flags ^ %d ) WHERE (photo_flags & %d ) AND uid = %d",
+ $r = q("UPDATE photo SET photo_flags = (photo_flags & ~%d ) WHERE (photo_flags & %d )>0 AND uid = %d",
intval(PHOTO_PROFILE),
intval(PHOTO_PROFILE),
intval(local_user()));
@@ -320,7 +320,7 @@ function profile_photo_content(&$a) {
);
$r = q("UPDATE xchan set xchan_photo_date = '%s'
- where xchan_hash = '%s' limit 1",
+ where xchan_hash = '%s'",
dbesc(datetime_convert()),
dbesc($channel['xchan_hash'])
);
@@ -364,7 +364,9 @@ function profile_photo_content(&$a) {
// FIXME - yuk
'$select' => sprintf('%s %s', t('or'), ($newuser) ? '<a href="' . $a->get_baseurl() . '">' . t('skip this step') . '</a>' : '<a href="'. $a->get_baseurl() . '/photos/' . $a->channel['channel_address'] . '">' . t('select a photo from your photo albums') . '</a>')
));
-
+
+ call_hooks('profile_photo_content_end', $o);
+
return $o;
}
else {
diff --git a/mod/profiles.php b/mod/profiles.php
index 6361f56a3..6ecf7444a 100644
--- a/mod/profiles.php
+++ b/mod/profiles.php
@@ -30,7 +30,7 @@ function profiles_init(&$a) {
dbesc($profile_guid),
intval(local_user())
);
- $r = q("DELETE FROM `profile` WHERE `id` = %d AND `uid` = %d LIMIT 1",
+ $r = q("DELETE FROM `profile` WHERE `id` = %d AND `uid` = %d",
intval(argv(2)),
intval(local_user())
);
@@ -233,41 +233,29 @@ function profiles_post(&$a) {
return;
}
- if($_POST['dob']) {
- $year = substr($_POST['dob'],0,4);
- $month = substr($_POST['dob'],5,2);
- $day = substr($_POST['dob'],8,2);
- }
-
- $year = intval($_POST['year']);
- if($year < 1900 || $year > 2100 || $year < 0)
- $year = 0;
- $month = intval($_POST['month']);
- if(($month > 12) || ($month < 0))
- $month = 0;
- $mtab = array(0,31,29,31,30,31,30,31,31,30,31,30,31);
- $day = intval($_POST['day']);
- if(($day > $mtab[$month]) || ($day < 0))
- $day = 0;
-
-// if($year && (! ($month && $day))) {
-// $month = 1; $day = 1;
-// }
+ $dob = $_POST['dob'] ? escape_tags(trim($_POST['dob'])) : '0000-00-00'; // FIXME: Needs to be validated?
+ $y = substr($dob,0,4);
+ if((! ctype_digit($y)) || ($y < 1900))
+ $ignore_year = true;
+ else
+ $ignore_year = false;
- $dob = '0000-00-00';
- $dob = sprintf('%04d-%02d-%02d',$year,$month,$day);
-
+ if($dob != '0000-00-00') {
+ if(strpos($dob,'0000-') === 0) {
+ $ignore_year = true;
+ $dob = substr($dob,5);
+ }
+ $dob = datetime_convert('UTC','UTC',(($ignore_year) ? '1900-' . $dob : $dob),(($ignore_year) ? 'm-d' : 'Y-m-d'));
+ if($ignore_year)
+ $dob = '0000-' . $dob;
+ }
$name = escape_tags(trim($_POST['name']));
if($orig[0]['name'] != $name)
$namechanged = true;
-
-
-
-
$pdesc = escape_tags(trim($_POST['pdesc']));
$gender = escape_tags(trim($_POST['gender']));
$address = escape_tags(trim($_POST['address']));
@@ -304,7 +292,7 @@ function profiles_post(&$a) {
$with = ((x($_POST,'with')) ? escape_tags(trim($_POST['with'])) : '');
if(! strlen($howlong))
- $howlong = '0000-00-00 00:00:00';
+ $howlong = NULL_DATE;
else
$howlong = datetime_convert(date_default_timezone_get(),'UTC',$howlong);
@@ -366,7 +354,7 @@ function profiles_post(&$a) {
dbesc($zz['field_name'])
);
if($w) {
- q("update profext set v = '%s' where id = %d limit 1",
+ q("update profext set v = '%s' where id = %d",
dbesc(escape_tags(trim($_POST[$zz['field_name']]))),
intval($w[0]['id'])
);
@@ -481,7 +469,7 @@ function profiles_post(&$a) {
`work` = '%s',
`education` = '%s',
`hide_friends` = %d
- WHERE `id` = %d AND `uid` = %d LIMIT 1",
+ WHERE `id` = %d AND `uid` = %d",
dbesc($profile_name),
dbesc($name),
dbesc($pdesc),
@@ -534,7 +522,7 @@ function profiles_post(&$a) {
$channel = $a->get_channel();
if($namechanged && $is_default) {
- $r = q("UPDATE xchan SET xchan_name = '%s', xchan_name_date = '%s' WHERE xchan_hash = '%s' limit 1",
+ $r = q("UPDATE xchan SET xchan_name = '%s', xchan_name_date = '%s' WHERE xchan_hash = '%s'",
dbesc($name),
dbesc(datetime_convert()),
dbesc($channel['xchan_hash'])
@@ -542,6 +530,8 @@ function profiles_post(&$a) {
}
if($is_default) {
+ // reload the info for the sidebar widget - why does this not work?
+ profile_load($a,$channel['channel_address']);
proc_run('php','include/directory.php',local_user());
}
}
@@ -595,7 +585,7 @@ function profiles_content(&$a) {
$fields = $profile_fields_basic;
- $opt_tpl = get_markup_template("profile-hide_friends.tpl");
+ $opt_tpl = get_markup_template("profile_hide_friends.tpl");
$hide_friends = replace_macros($opt_tpl,array(
'$desc' => t('Hide your contact/friend list from viewers of this profile?'),
'$yes_str' => t('Yes'),
@@ -654,7 +644,7 @@ logger('extra_fields: ' . print_r($extra_fields,true));
'$lbl_fullname' => t('Your Full Name:'),
'$lbl_title' => t('Title/Description:'),
'$lbl_gender' => t('Your Gender:'),
- '$lbl_bd' => sprintf( t("Birthday \x28%s\x29:"),datesel_format($f)),
+ '$lbl_bd' => t("Birthday :"),
'$lbl_address' => t('Street Address:'),
'$lbl_city' => t('Locality/City:'),
'$lbl_zip' => t('Postal/Zip Code:'),
@@ -707,7 +697,7 @@ logger('extra_fields: ' . print_r($extra_fields,true));
'$marital' => marital_selector($r[0]['marital']),
'$marital_min' => marital_selector_min($r[0]['marital']),
'$with' => $r[0]['with'],
- '$howlong' => ($r[0]['howlong'] === '0000-00-00 00:00:00' ? '' : datetime_convert('UTC',date_default_timezone_get(),$r[0]['howlong'])),
+ '$howlong' => ($r[0]['howlong'] === NULL_DATE ? '' : datetime_convert('UTC',date_default_timezone_get(),$r[0]['howlong'])),
'$sexual' => sexpref_selector($r[0]['sexual']),
'$sexual_min' => sexpref_selector_min($r[0]['sexual']),
'$about' => $r[0]['about'],
@@ -766,6 +756,7 @@ logger('extra_fields: ' . print_r($extra_fields,true));
: '<a href="' . $a->get_baseurl(true) . '/profperm/' . $rr['id'] . '" />' . t('Edit visibility') . '</a>')
));
}
+
}
return $o;
}
diff --git a/mod/profperm.php b/mod/profperm.php
index 197062936..55dc8cc77 100644
--- a/mod/profperm.php
+++ b/mod/profperm.php
@@ -75,13 +75,13 @@ function profperm_content(&$a) {
if($change) {
if(in_array($change,$ingroup)) {
- q("UPDATE abook SET abook_profile = '' WHERE abook_id = %d AND abook_channel = %d LIMIT 1",
+ q("UPDATE abook SET abook_profile = '' WHERE abook_id = %d AND abook_channel = %d",
intval($change),
intval(local_user())
);
}
else {
- q("UPDATE abook SET abook_profile = '%s' WHERE abook_id = %d AND abook_channel = %d LIMIT 1",
+ q("UPDATE abook SET abook_profile = '%s' WHERE abook_id = %d AND abook_channel = %d",
dbesc($profile['profile_guid']),
intval($change),
intval(local_user())
diff --git a/mod/receive.php b/mod/receive.php
index 4071b169b..b7d27d40f 100644
--- a/mod/receive.php
+++ b/mod/receive.php
@@ -31,7 +31,7 @@ function receive_post(&$a) {
// Diaspora sites *may* provide a truncated guid.
- $r = q("SELECT * FROM channel left join xchan on channel_hash = xchan_hash WHERE channel_guid like '%s' AND NOT (channel_pageflags & %d ) LIMIT 1",
+ $r = q("SELECT * FROM channel left join xchan on channel_hash = xchan_hash WHERE channel_guid like '%s' AND NOT (channel_pageflags & %d )>0 LIMIT 1",
dbesc($guid . '%'),
intval(PAGE_REMOVED)
);
diff --git a/mod/register.php b/mod/register.php
index 0e33fa358..70bdcf350 100644
--- a/mod/register.php
+++ b/mod/register.php
@@ -37,7 +37,9 @@ function register_post(&$a) {
$max_dailies = intval(get_config('system','max_daily_registrations'));
if($max_dailies) {
- $r = q("select count(account_id) as total from account where account_created > UTC_TIMESTAMP() - INTERVAL 1 day");
+ $r = q("select count(account_id) as total from account where account_created > %s - INTERVAL %s",
+ db_utcnow(), db_quoteinterval('1 day')
+ );
if($r && $r[0]['total'] >= $max_dailies) {
notice( t('Maximum daily site registrations exceeded. Please try again tomorrow.') . EOL);
return;
@@ -100,7 +102,7 @@ function register_post(&$a) {
$invite_code = ((x($_POST,'invite_code')) ? notags(trim($_POST['invite_code'])) : '');
if($using_invites && $invite_code) {
- q("delete * from register where hash = '%s' limit 1", dbesc($invite_code));
+ q("delete * from register where hash = '%s'", dbesc($invite_code));
set_pconfig($result['account']['account_id'],'system','invites_remaining',$num_invites);
}
@@ -164,7 +166,9 @@ function register_content(&$a) {
$max_dailies = intval(get_config('system','max_daily_registrations'));
if($max_dailies) {
- $r = q("select count(account_id) as total from account where account_created > UTC_TIMESTAMP() - INTERVAL 1 day");
+ $r = q("select count(account_id) as total from account where account_created > %s - INTERVAL %s",
+ db_utcnow(), db_quoteinterval('1 day')
+ );
if($r && $r[0]['total'] >= $max_dailies) {
logger('max daily registrations exceeded.');
notice( t('This site has exceeded the number of allowed daily account registrations. Please try again tomorrow.') . EOL);
@@ -196,13 +200,13 @@ function register_content(&$a) {
$invite_code = ((x($_REQUEST,'invite_code')) ? strip_tags(trim($_REQUEST['invite_code'])) : "" );
-
+ require_once('include/bbcode.php');
$o = replace_macros(get_markup_template('register.tpl'), array(
'$title' => t('Registration'),
'$reg_is' => $registration_is,
- '$registertext' => get_config('system','register_text'),
+ '$registertext' => bbcode(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.'),
diff --git a/mod/removeaccount.php b/mod/removeaccount.php
index 1f9dbcafa..70979c07d 100644
--- a/mod/removeaccount.php
+++ b/mod/removeaccount.php
@@ -24,7 +24,7 @@ function removeaccount_post(&$a) {
if(! account_verify_password($account['account_email'],$_POST['qxz_password']))
return;
- if($account['account_password_changed'] != '0000-00-00 00:00:00') {
+ if($account['account_password_changed'] != NULL_DATE) {
$d1 = datetime_convert('UTC','UTC','now - 48 hours');
if($account['account_password_changed'] > d1) {
notice( t('Account removals are not allowed within 48 hours of changing the account password.') . EOL);
diff --git a/mod/removeme.php b/mod/removeme.php
index 13bf6cf63..d2ff013b8 100644
--- a/mod/removeme.php
+++ b/mod/removeme.php
@@ -23,7 +23,7 @@ function removeme_post(&$a) {
if(! account_verify_password($account['account_email'],$_POST['qxz_password']))
return;
- if($account['account_password_changed'] != '0000-00-00 00:00:00') {
+ if($account['account_password_changed'] != NULL_DATE) {
$d1 = datetime_convert('UTC','UTC','now - 48 hours');
if($account['account_password_changed'] > d1) {
notice( t('Channel removals are not allowed within 48 hours of changing the account password.') . EOL);
diff --git a/mod/search.php b/mod/search.php
index 15ac71376..6df9d631a 100644
--- a/mod/search.php
+++ b/mod/search.php
@@ -68,7 +68,8 @@ function search_content(&$a,$update = 0, $load = false) {
);
}
else {
- $sql_extra = sprintf(" AND `item`.`body` REGEXP '%s' ", dbesc(protect_sprintf(preg_quote($search))));
+ $regstr = db_getfunc('REGEXP');
+ $sql_extra = sprintf(" AND `item`.`body` $regstr '%s' ", dbesc(protect_sprintf(preg_quote($search))));
}
// Here is the way permissions work in the search module...
@@ -106,6 +107,7 @@ function search_content(&$a,$update = 0, $load = false) {
'$order' => '',
'$file' => '',
'$cats' => '',
+ '$tags' => '',
'$mid' => '',
'$dend' => '',
'$dbegin' => ''
@@ -123,7 +125,7 @@ function search_content(&$a,$update = 0, $load = false) {
if(($update) && ($load)) {
$itemspage = get_pconfig(local_user(),'system','itemspage');
$a->set_pager_itemspage(((intval($itemspage)) ? $itemspage : 20));
- $pager_sql = sprintf(" LIMIT %d, %d ",intval($a->pager['start']), intval($a->pager['itemspage']));
+ $pager_sql = sprintf(" LIMIT %d OFFSET %d ", intval($a->pager['itemspage']), intval($a->pager['start']));
// in case somebody turned off public access to sys channel content with permissions
@@ -132,29 +134,36 @@ function search_content(&$a,$update = 0, $load = false) {
if($load) {
$r = null;
-
+
+ if(ACTIVE_DBTYPE == DBTYPE_POSTGRES) {
+ $prefix = 'distinct on (created, mid)';
+ $suffix = 'ORDER BY created DESC, mid';
+ } else {
+ $prefix = 'distinct';
+ $suffix = 'group by mid ORDER BY created DESC';
+ }
if(local_user()) {
- $r = q("SELECT distinct mid, item.id as item_id, item.* from item
+ $r = q("SELECT $prefix mid, item.id as item_id, item.* from item
WHERE item_restrict = 0
AND ((( `item`.`allow_cid` = '' AND `item`.`allow_gid` = '' AND `item`.`deny_cid` = '' AND `item`.`deny_gid` = '' AND item_private = 0 )
OR ( `item`.`uid` = %d )) OR item.owner_xchan = '%s' )
$sql_extra
- group by mid ORDER BY created DESC $pager_sql ",
+ $suffix $pager_sql ",
intval(local_user()),
dbesc($sys['xchan_hash'])
);
}
if($r === null) {
- $r = q("SELECT distinct mid, item.id as item_id, item.* from item
- WHERE item_restrict = 0
- AND (((( `item`.`allow_cid` = '' AND `item`.`allow_gid` = '' AND `item`.`deny_cid` = ''
- AND `item`.`deny_gid` = '' AND item_private = 0 )
- and owner_xchan in ( " . stream_perms_xchans(($observer) ? (PERMS_NETWORK|PERMS_PUBLIC) : PERMS_PUBLIC) . " ))
- $pub_sql ) OR owner_xchan = '%s')
- $sql_extra
- group by mid ORDER BY created DESC $pager_sql",
+ $r = q("SELECT $prefix mid, item.id as item_id, item.* from item
+ WHERE item_restrict = 0
+ AND (((( `item`.`allow_cid` = '' AND `item`.`allow_gid` = '' AND `item`.`deny_cid` = ''
+ AND `item`.`deny_gid` = '' AND item_private = 0 )
+ and owner_xchan in ( " . stream_perms_xchans(($observer) ? (PERMS_NETWORK|PERMS_PUBLIC) : PERMS_PUBLIC) . " ))
+ $pub_sql ) OR owner_xchan = '%s')
+ $sql_extra
+ $suffix $pager_sql",
dbesc($sys['xchan_hash'])
- );
+ );
}
}
else {
diff --git a/mod/service_limits.php b/mod/service_limits.php
new file mode 100644
index 000000000..83ae2e06c
--- /dev/null
+++ b/mod/service_limits.php
@@ -0,0 +1,23 @@
+<?php /** @file */
+
+
+function service_limits_content(&$a) {
+
+ if(! local_user()) {
+ notice( t('Permission denied.') . EOL);
+ return;
+ }
+
+ $account = $a->get_account();
+ if($account['account_service_class']) {
+ $x = get_config('service_class',$account['account_service_class']);
+ if($x) {
+ $o = print_r($x,true);
+ return $o;
+ }
+ }
+ return t('No service class restrictions found.');
+}
+
+
+ \ No newline at end of file
diff --git a/mod/settings.php b/mod/settings.php
index d6ebf9e90..ea7b2ba06 100644
--- a/mod/settings.php
+++ b/mod/settings.php
@@ -39,7 +39,9 @@ function settings_post(&$a) {
if(! local_user())
return;
- // logger('mod_settings: ' . print_r($_REQUEST,true));
+ $channel = $a->get_channel();
+
+ logger('mod_settings: ' . print_r($_REQUEST,true));
if(x($_SESSION,'submanage') && intval($_SESSION['submanage']))
return;
@@ -136,7 +138,18 @@ function settings_post(&$a) {
$theme = ((x($_POST,'theme')) ? notags(trim($_POST['theme'])) : $a->channel['channel_theme']);
$mobile_theme = ((x($_POST,'mobile_theme')) ? notags(trim($_POST['mobile_theme'])) : '');
$user_scalable = ((x($_POST,'user_scalable')) ? intval($_POST['user_scalable']) : 0);
- $nosmile = ((x($_POST,'nosmile')) ? intval($_POST['nosmile']) : 0);
+ $nosmile = ((x($_POST,'nosmile')) ? intval($_POST['nosmile']) : 0);
+ $title_tosource = ((x($_POST,'title_tosource')) ? intval($_POST['title_tosource']) : 0);
+ $channel_list_mode = ((x($_POST,'channel_list_mode')) ? intval($_POST['channel_list_mode']) : 0);
+ $network_list_mode = ((x($_POST,'network_list_mode')) ? intval($_POST['network_list_mode']) : 0);
+
+ $channel_divmore_height = ((x($_POST,'channel_divmore_height')) ? intval($_POST['channel_divmore_height']) : 400);
+ if($channel_divmore_height < 50)
+ $channel_divmore_height = 50;
+ $network_divmore_height = ((x($_POST,'network_divmore_height')) ? intval($_POST['network_divmore_height']) : 400);
+ if($network_divmore_height < 50)
+ $network_divmore_height = 50;
+
$browser_update = ((x($_POST,'browser_update')) ? intval($_POST['browser_update']) : 0);
$browser_update = $browser_update * 1000;
if($browser_update < 10000)
@@ -147,17 +160,21 @@ function settings_post(&$a) {
$itemspage = 100;
- if($mobile_theme !== '') {
+ if ($mobile_theme == "---")
+ del_pconfig(local_user(),'system','mobile_theme');
+ else {
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','user_scalable',$user_scalable);
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);
-
+ set_pconfig(local_user(),'system','title_tosource',$title_tosource);
+ set_pconfig(local_user(),'system','channel_list_mode', $channel_list_mode);
+ set_pconfig(local_user(),'system','network_list_mode', $network_list_mode);
+ set_pconfig(local_user(),'system','channel_divmore_height', $channel_divmore_height);
+ set_pconfig(local_user(),'system','network_divmore_height', $network_divmore_height);
if ($theme == $a->channel['channel_theme']){
// call theme_post only if theme has not been changed
@@ -167,7 +184,7 @@ function settings_post(&$a) {
}
}
- $r = q("UPDATE channel SET channel_theme = '%s' WHERE channel_id = %d LIMIT 1",
+ $r = q("UPDATE channel SET channel_theme = '%s' WHERE channel_id = %d",
dbesc($theme),
intval(local_user())
);
@@ -204,7 +221,7 @@ function settings_post(&$a) {
$salt = random_string(32);
$password_encoded = hash('whirlpool', $salt . $newpass);
$r = q("update account set account_salt = '%s', account_password = '%s', account_password_changed = '%s'
- where account_id = %d limit 1",
+ where account_id = %d",
dbesc($salt),
dbesc($password_encoded),
dbesc(datetime_convert()),
@@ -234,7 +251,7 @@ function settings_post(&$a) {
$email = $a->user['email'];
}
if(! $errs) {
- $r = q("update account set account_email = '%s' where account_id = %d limit 1",
+ $r = q("update account set account_email = '%s' where account_id = %d",
dbesc($email),
intval($account['account_id'])
);
@@ -255,14 +272,111 @@ function settings_post(&$a) {
call_hooks('settings_post', $_POST);
-
+ $set_perms = '';
+
+ $role = ((x($_POST,'permissions_role')) ? notags(trim($_POST['permissions_role'])) : '');
+ $oldrole = get_pconfig(local_user(),'system','permissions_role');
+
+ if(($role != $oldrole) || ($role === 'custom')) {
+
+ if($role === 'custom') {
+ $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);
+ $def_group = ((x($_POST,'group-selection')) ? notags(trim($_POST['group-selection'])) : '');
+ $r = q("update channel set channel_default_group = '%s' where channel_id = %d",
+ dbesc($def_group),
+ intval(local_user())
+ );
+
+ $global_perms = get_perms();
+
+ foreach($global_perms as $k => $v) {
+ $set_perms .= ', ' . $v[0] . ' = ' . intval($_POST[$k]) . ' ';
+ }
+
+ $str_group_allow = perms2str($_POST['group_allow']);
+ $str_contact_allow = perms2str($_POST['contact_allow']);
+ $str_group_deny = perms2str($_POST['group_deny']);
+ $str_contact_deny = perms2str($_POST['contact_deny']);
+ $r = q("update channel set channel_allow_cid = '%s', channel_allow_gid = '%s', channel_deny_cid = '%s', channel_deny_gid = '%s'
+ where channel_id = %d",
+ dbesc($str_contact_allow),
+ dbesc($str_group_allow),
+ dbesc($str_contact_deny),
+ dbesc($str_group_deny),
+ intval(local_user())
+ );
+ }
+ else {
+ $role_permissions = get_role_perms($_POST['permissions_role']);
+ if(! $role_permissions) {
+ notice('Permissions category could not be found.');
+ return;
+ }
+ $hide_presence = 1 - (intval($role_permissions['online']));
+ if($role_permissions['default_collection']) {
+ $r = q("select hash from groups where uid = %d and name = '%s' limit 1",
+ intval(local_user()),
+ dbesc( t('Friends') )
+ );
+ if(! $r) {
+ require_once('include/group.php');
+ group_add(local_user(), t('Friends'));
+ group_add_member(local_user(),t('Friends'),$channel['channel_hash']);
+ $r = q("select hash from groups where uid = %d and name = '%s' limit 1",
+ intval(local_user()),
+ dbesc( t('Friends') )
+ );
+ }
+ if($r) {
+ q("update channel set channel_default_group = '%s', channel_allow_gid = '%s', channel_allow_cid = '', channel_deny_gid = '', channel_deny_cid = '' where channel_id = %d",
+ dbesc($r[0]['hash']),
+ dbesc('<' . $r[0]['hash'] . '>'),
+ intval(local_user())
+ );
+ }
+ else {
+ notice( sprintf('Default privacy collection \'%s\' not found. Please create and re-submit permission change.', t('Friends')) . EOL);
+ return;
+ }
+ }
+ // no default collection
+ else {
+ q("update channel set channel_default_group = '', channel_allow_gid = '', channel_allow_cid = '', channel_deny_gid = '',
+ channel_deny_cid = '' where channel_id = %d",
+ intval(local_user())
+ );
+ }
+
+ $r = q("update abook set abook_my_perms = %d where abook_channel = %d and (abook_flags & %d)>0",
+ intval(($role_permissions['perms_auto']) ? intval($role_permissions['perms_accept']) : 0),
+ intval(local_user()),
+ intval(ABOOK_FLAG_SELF)
+ );
+ set_pconfig(local_user(),'system','autoperms',(($role_permissions['perms_auto']) ? intval($role_permissions['perms_accept']) : 0));
+
+ foreach($role_permissions as $p => $v) {
+ if(strpos($p,'channel_') !== false) {
+ $set_perms .= ', ' . $p . ' = ' . intval($v) . ' ';
+ }
+ if($p === 'directory_publish') {
+ $publish = intval($v);
+ }
+ }
+ }
+
+ set_pconfig(local_user(),'system','hide_online_status',$hide_presence);
+ set_pconfig(local_user(),'system','permissions_role',$role);
+ }
+
$username = ((x($_POST,'username')) ? notags(trim($_POST['username'])) : '');
$timezone = ((x($_POST,'timezone')) ? notags(trim($_POST['timezone'])) : '');
$defloc = ((x($_POST,'defloc')) ? notags(trim($_POST['defloc'])) : '');
$openid = ((x($_POST,'openid_url')) ? notags(trim($_POST['openid_url'])) : '');
$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'])) : '');
+ $evdays = ((x($_POST,'evdays')) ? intval($_POST['evdays']) : 3);
+
$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);
@@ -271,17 +385,13 @@ 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);
- $blockwall = (((x($_POST,'blockwall')) && (intval($_POST['blockwall']) == 1)) ? 0: 1); // this setting is inverted!
+
$blocktags = (((x($_POST,'blocktags')) && (intval($_POST['blocktags']) == 1)) ? 0: 1); // this setting is inverted!
$unkmail = (((x($_POST,'unkmail')) && (intval($_POST['unkmail']) == 1)) ? 1: 0);
$cntunkmail = ((x($_POST,'cntunkmail')) ? intval($_POST['cntunkmail']) : 0);
$suggestme = ((x($_POST,'suggestme')) ? intval($_POST['suggestme']) : 0);
- $hide_friends = (($_POST['hide_friends'] == 1) ? 1: 0);
- $hidewall = (($_POST['hidewall'] == 1) ? 1: 0);
+
$post_newfriend = (($_POST['post_newfriend'] == 1) ? 1: 0);
$post_joingroup = (($_POST['post_joingroup'] == 1) ? 1: 0);
$post_profilechange = (($_POST['post_profilechange'] == 1) ? 1: 0);
@@ -293,63 +403,6 @@ function settings_post(&$a) {
if($adult != $existing_adult)
$pageflags = ($pageflags ^ PAGE_ADULT);
- $arr = array();
- $arr['channel_r_stream'] = (($_POST['view_stream']) ? $_POST['view_stream'] : 0);
- $arr['channel_r_profile'] = (($_POST['view_profile']) ? $_POST['view_profile'] : 0);
- $arr['channel_r_photos'] = (($_POST['view_photos']) ? $_POST['view_photos'] : 0);
- $arr['channel_r_abook'] = (($_POST['view_contacts']) ? $_POST['view_contacts'] : 0);
- $arr['channel_w_stream'] = (($_POST['send_stream']) ? $_POST['send_stream'] : 0);
- $arr['channel_w_wall'] = (($_POST['post_wall']) ? $_POST['post_wall'] : 0);
- $arr['channel_w_tagwall'] = (($_POST['tag_deliver']) ? $_POST['tag_deliver'] : 0);
- $arr['channel_w_comment'] = (($_POST['post_comments']) ? $_POST['post_comments'] : 0);
- $arr['channel_w_mail'] = (($_POST['post_mail']) ? $_POST['post_mail'] : 0);
- $arr['channel_w_photos'] = (($_POST['post_photos']) ? $_POST['post_photos'] : 0);
- $arr['channel_w_chat'] = (($_POST['chat']) ? $_POST['chat'] : 0);
- $arr['channel_a_delegate'] = (($_POST['delegate']) ? $_POST['delegate'] : 0);
- $arr['channel_r_storage'] = (($_POST['view_storage']) ? $_POST['view_storage'] : 0);
- $arr['channel_w_storage'] = (($_POST['write_storage']) ? $_POST['write_storage'] : 0);
- $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_w_like'] = (($_POST['post_like']) ? $_POST['post_like'] : 0);
-
- $defperms = 0;
- if(x($_POST['def_view_stream']))
- $defperms += $_POST['def_view_stream'];
- if(x($_POST['def_view_profile']))
- $defperms += $_POST['def_view_profile'];
- if(x($_POST['def_view_photos']))
- $defperms += $_POST['def_view_photos'];
- if(x($_POST['def_view_contacts']))
- $defperms += $_POST['def_view_contacts'];
- if(x($_POST['def_send_stream']))
- $defperms += $_POST['def_send_stream'];
- if(x($_POST['def_post_wall']))
- $defperms += $_POST['def_post_wall'];
- if(x($_POST['def_tag_deliver']))
- $defperms += $_POST['def_tag_deliver'];
- if(x($_POST['def_post_comments']))
- $defperms += $_POST['def_post_comments'];
- if(x($_POST['def_post_mail']))
- $defperms += $_POST['def_post_mail'];
- if(x($_POST['def_post_photos']))
- $defperms += $_POST['def_post_photos'];
- if(x($_POST['def_chat']))
- $defperms += $_POST['def_chat'];
- if(x($_POST['def_delegate']))
- $defperms += $_POST['def_delegate'];
- if(x($_POST['def_view_storage']))
- $defperms += $_POST['def_view_storage'];
- if(x($_POST['def_write_storage']))
- $defperms += $_POST['def_write_storage'];
- if(x($_POST['def_view_pages']))
- $defperms += $_POST['def_view_pages'];
- if(x($_POST['def_write_pages']))
- $defperms += $_POST['def_write_pages'];
- if(x($_POST['def_republish']))
- $defperms += $_POST['def_republish'];
- if(x($_POST['def_post_like']))
- $defperms += $_POST['def_post_like'];
$notify = 0;
@@ -371,6 +424,31 @@ function settings_post(&$a) {
$notify += intval($_POST['notify8']);
+ $vnotify = 0;
+
+ if(x($_POST,'vnotify1'))
+ $vnotify += intval($_POST['vnotify1']);
+ if(x($_POST,'vnotify2'))
+ $vnotify += intval($_POST['vnotify2']);
+ if(x($_POST,'vnotify3'))
+ $vnotify += intval($_POST['vnotify3']);
+ if(x($_POST,'vnotify4'))
+ $vnotify += intval($_POST['vnotify4']);
+ if(x($_POST,'vnotify5'))
+ $vnotify += intval($_POST['vnotify5']);
+ if(x($_POST,'vnotify6'))
+ $vnotify += intval($_POST['vnotify6']);
+ if(x($_POST,'vnotify7'))
+ $vnotify += intval($_POST['vnotify7']);
+ if(x($_POST,'vnotify8'))
+ $vnotify += intval($_POST['vnotify8']);
+ if(x($_POST,'vnotify9'))
+ $vnotify += intval($_POST['vnotify9']);
+ if(x($_POST,'vnotify10'))
+ $vnotify += intval($_POST['vnotify10']);
+ if(x($_POST,'vnotify11'))
+ $vnotify += intval($_POST['vnotify11']);
+
$channel = $a->get_channel();
$err = '';
@@ -387,27 +465,22 @@ function settings_post(&$a) {
}
}
-
if($timezone != $channel['channel_timezone']) {
if(strlen($timezone))
date_default_timezone_set($timezone);
}
- $str_group_allow = perms2str($_POST['group_allow']);
- $str_contact_allow = perms2str($_POST['contact_allow']);
- $str_group_deny = perms2str($_POST['group_deny']);
- $str_contact_deny = perms2str($_POST['contact_deny']);
-
set_pconfig(local_user(),'system','use_browser_location',$allow_location);
set_pconfig(local_user(),'system','suggestme', $suggestme);
set_pconfig(local_user(),'system','post_newfriend', $post_newfriend);
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);
+ set_pconfig(local_user(),'system','vnotify',$vnotify);
+ set_pconfig(local_user(),'system','evdays',$evdays);
- $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_w_like = %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 $set_perms where channel_id = %d",
dbesc($username),
intval($pageflags),
dbesc($timezone),
@@ -416,45 +489,20 @@ function settings_post(&$a) {
intval($unkmail),
intval($maxreq),
intval($expire),
- dbesc($def_group),
- intval($arr['channel_r_stream']),
- intval($arr['channel_r_profile']),
- intval($arr['channel_r_photos']),
- intval($arr['channel_r_abook']),
- intval($arr['channel_w_stream']),
- intval($arr['channel_w_wall']),
- intval($arr['channel_w_tagwall']),
- intval($arr['channel_w_comment']),
- intval($arr['channel_w_mail']),
- intval($arr['channel_w_photos']),
- intval($arr['channel_w_chat']),
- intval($arr['channel_a_delegate']),
- intval($arr['channel_r_storage']),
- intval($arr['channel_w_storage']),
- intval($arr['channel_r_pages']),
- intval($arr['channel_w_pages']),
- intval($arr['channel_a_republish']),
- intval($arr['channel_w_like']),
- dbesc($str_contact_allow),
- dbesc($str_group_allow),
- dbesc($str_contact_deny),
- dbesc($str_group_deny),
intval(local_user())
);
if($r)
info( t('Settings updated.') . EOL);
- $r = q("UPDATE `profile`
- SET `publish` = %d,
- `hide_friends` = %d
- WHERE `is_default` = 1 AND `uid` = %d LIMIT 1",
- intval($publish),
- intval($hide_friends),
- intval(local_user())
- );
+ if(! is_null($publish)) {
+ $r = q("UPDATE profile SET publish = %d WHERE is_default = 1 AND uid = %d",
+ intval($publish),
+ intval(local_user())
+ );
+ }
if($name_change) {
- $r = q("update xchan set xchan_name = '%s', xchan_name_date = '%s' where xchan_hash = '%s' limit 1",
+ $r = q("update xchan set xchan_name = '%s', xchan_name_date = '%s' where xchan_hash = '%s'",
dbesc($username),
dbesc(datetime_convert()),
dbesc($channel['channel_hash'])
@@ -589,7 +637,7 @@ function settings_content(&$a) {
if((argc() > 1) && (argv(1) === 'featured')) {
$settings_addons = "";
- $r = q("SELECT * FROM `hook` WHERE `hook` = 'plugin_settings' ");
+ $r = q("SELECT * FROM `hook` WHERE `hook` = 'feature_settings' ");
if(! count($r))
$settings_addons = t('No feature settings configured');
@@ -690,6 +738,7 @@ function settings_content(&$a) {
/*
* DISPLAY SETTINGS
*/
+
if((argc() > 1) && (argv(1) === 'display')) {
$default_theme = get_config('system','theme');
if(! $default_theme)
@@ -708,7 +757,6 @@ function settings_content(&$a) {
$themes = array();
- $mobile_themes = array("---" => t('No special theme for mobile devices'));
$files = glob('view/theme/*');
if($allowed_themes) {
foreach($allowed_themes as $th) {
@@ -716,15 +764,21 @@ function settings_content(&$a) {
$is_experimental = file_exists('view/theme/' . $th . '/experimental');
$unsupported = file_exists('view/theme/' . $th . '/unsupported');
$is_mobile = file_exists('view/theme/' . $th . '/mobile');
+ $is_library = file_exists('view/theme/'. $th . '/library');
+ $mobile_themes["---"] = t("No special theme for mobile devices");
+
if (!$is_experimental or ($is_experimental && (get_config('experimentals','exp_themes')==1 or get_config('experimentals','exp_themes')===false))){
$theme_name = (($is_experimental) ? sprintf(t('%s - (Experimental)'), $f) : $f);
- if($is_mobile) {
- $mobile_themes[$f]=$theme_name;
- }
- else {
- $themes[$f]=$theme_name;
+ if (! $is_library) {
+ if($is_mobile) {
+ $mobile_themes[$f] = $themes[$f] = $theme_name . ' (' . t('mobile') . ')';
+ }
+ else {
+ $mobile_themes[$f] = $themes[$f] = $theme_name;
+ }
}
}
+
}
}
$theme_selected = (!x($_SESSION,'theme')? $default_theme : $_SESSION['theme']);
@@ -734,7 +788,7 @@ function settings_content(&$a) {
$user_scalable = (($user_scalable===false)? '1': $user_scalable); // default if not set: 1
$browser_update = intval(get_pconfig(local_user(), 'system','update_interval'));
- $browser_update = (($browser_update == 0) ? 40 : $browser_update / 1000); // default if not set: 40 seconds
+ $browser_update = (($browser_update == 0) ? 80 : $browser_update / 1000); // default if not set: 40 seconds
$itemspage = intval(get_pconfig(local_user(), 'system','itemspage'));
$itemspage = (($itemspage > 0 && $itemspage < 101) ? $itemspage : 20); // default if not set: 20 items
@@ -742,6 +796,9 @@ function settings_content(&$a) {
$nosmile = get_pconfig(local_user(),'system','no_smilies');
$nosmile = (($nosmile===false)? '0': $nosmile); // default if not set: 0
+ $title_tosource = get_pconfig(local_user(),'system','title_tosource');
+ $title_tosource = (($title_tosource===false)? '0': $title_tosource); // default if not set: 0
+
$theme_config = "";
if( ($themeconfigfile = get_theme_config_file($theme_selected)) != null){
require_once($themeconfigfile);
@@ -762,9 +819,16 @@ 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, ''),
+ '$title_tosource' => array('title_tosource', t("Link post titles to source"), $title_tosource, ''),
'$layout_editor' => t('System Page Layout Editor - (advanced)'),
'$theme_config' => $theme_config,
'$expert' => feature_enabled(local_user(),'expert'),
+ '$channel_list_mode' => array('channel_list_mode', t('Use blog/list mode on channel page'), get_pconfig(local_user(),'system','channel_list_mode'), t('(comments displayed separately)')),
+ '$network_list_mode' => array('network_list_mode', t('Use blog/list mode on matrix page'), get_pconfig(local_user(),'system','network_list_mode'), t('(comments displayed separately)')),
+ '$channel_divmore_height' => array('channel_divmore_height', t('Channel page max height of content (in pixels)'), ((get_pconfig(local_user(),'system','channel_divmore_height')) ? get_pconfig(local_user(),'system','channel_divmore_height') : 400), t('click to expand content exceeding this height')),
+ '$network_divmore_height' => array('network_divmore_height', t('Matrix page max height of content (in pixels)'), ((get_pconfig(local_user(),'system','network_divmore_height')) ? get_pconfig(local_user(),'system','network_divmore_height') : 400) , t('click to expand content exceeding this height')),
+
+
));
return $o;
@@ -780,8 +844,6 @@ function settings_content(&$a) {
require_once('include/permissions.php');
-
-
$p = q("SELECT * FROM `profile` WHERE `is_default` = 1 AND `uid` = %d LIMIT 1",
intval(local_user())
);
@@ -834,9 +896,8 @@ function settings_content(&$a) {
$expire = $channel['channel_expire_days'];
$adult_flag = intval($channel['channel_pageflags'] & PAGE_ADULT);
- $blockwall = $a->user['blockwall'];
- $unkmail = $a->user['unkmail'];
- $cntunkmail = $a->user['cntunkmail'];
+// $unkmail = $a->user['unkmail'];
+// $cntunkmail = $a->user['cntunkmail'];
$hide_presence = intval(get_pconfig(local_user(), 'system','hide_online_status'));
@@ -874,8 +935,6 @@ function settings_content(&$a) {
$timezone = date_default_timezone_get();
-
-
$opt_tpl = get_markup_template("field_yesno.tpl");
if(get_config('system','publish_all')) {
$profile_in_dir = '<input type="hidden" name="profile_in_directory" value="1" />';
@@ -929,6 +988,16 @@ function settings_content(&$a) {
}
}
+ $evdays = get_pconfig(local_user(),'system','evdays');
+ if(! $evdays)
+ $evdays = 3;
+
+ $permissions_role = get_pconfig(local_user(),'system','permissions_role');
+ $permissions_set = (($permissions_role && $permissions_role != 'custom') ? true : false);
+ $vnotify = get_pconfig(local_user(),'system','vnotify');
+ if($vnotify === false)
+ $vnotify = (-1);
+
$o .= replace_macros($stpl,array(
'$ptitle' => t('Channel Settings'),
@@ -949,6 +1018,8 @@ function settings_content(&$a) {
'$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'),
+ '$permissions_set' => $permissions_set,
+ '$perms_set_msg' => t('Your permissions are already configured. Click to view/adjust'),
'$hide_presence' => array('hide_presence', t('Hide my online presence'),$hide_presence, t('Prevents displaying in your profile that you are online')),
@@ -968,9 +1039,10 @@ function settings_content(&$a) {
'$permdesc' => t("\x28click to open/close\x29"),
'$aclselect' => populate_acl($perm_defaults,false),
'$suggestme' => $suggestme,
-
'$group_select' => $group_select,
+ '$role_lbl' => t('Channel permissions category:'),
+ '$role_select' => role_selector($permissions_role),
'$profile_in_dir' => $profile_in_dir,
'$hide_friends' => $hide_friends,
@@ -994,7 +1066,23 @@ function settings_content(&$a) {
'$notify7' => array('notify7', t('You are tagged in a post'), ($notify & NOTIFY_TAGSELF), NOTIFY_TAGSELF, ''),
'$notify8' => array('notify8', t('You are poked/prodded/etc. in a post'), ($notify & NOTIFY_POKE), NOTIFY_POKE, ''),
-
+
+ '$lbl_vnot' => t('Show visual notifications including:'),
+
+ '$vnotify1' => array('vnotify1', t('Unseen matrix activity'), ($vnotify & VNOTIFY_NETWORK), VNOTIFY_NETWORK, ''),
+ '$vnotify2' => array('vnotify2', t('Unseen channel activity'), ($vnotify & VNOTIFY_CHANNEL), VNOTIFY_CHANNEL, ''),
+ '$vnotify3' => array('vnotify3', t('Unseen private messages'), ($vnotify & VNOTIFY_MAIL), VNOTIFY_MAIL, t('Recommended')),
+ '$vnotify4' => array('vnotify4', t('Upcoming events'), ($vnotify & VNOTIFY_EVENT), VNOTIFY_EVENT, ''),
+ '$vnotify5' => array('vnotify5', t('Events today'), ($vnotify & VNOTIFY_EVENTTODAY), VNOTIFY_EVENTTODAY, ''),
+ '$vnotify6' => array('vnotify6', t('Upcoming birthdays'), ($vnotify & VNOTIFY_BIRTHDAY), VNOTIFY_BIRTHDAY, t('Not available in all themes')),
+ '$vnotify7' => array('vnotify7', t('System (personal) notifications'), ($vnotify & VNOTIFY_SYSTEM), VNOTIFY_SYSTEM, ''),
+ '$vnotify8' => array('vnotify8', t('System info messages'), ($vnotify & VNOTIFY_INFO), VNOTIFY_INFO, t('Recommended')),
+ '$vnotify9' => array('vnotify9', t('System critical alerts'), ($vnotify & VNOTIFY_ALERT), VNOTIFY_ALERT, t('Recommended')),
+ '$vnotify10' => array('vnotify10', t('New connections'), ($vnotify & VNOTIFY_INTRO), VNOTIFY_INTRO, t('Recommended')),
+ '$vnotify11' => array('vnotify11', t('System Registrations'), ($vnotify & VNOTIFY_REGISTER), VNOTIFY_REGISTER, ''),
+
+ '$evdays' => array('evdays', t('Notify me of events this many days in advance'), $evdays, t('Must be greater than 0')),
+
'$h_advn' => t('Advanced Account/Page Type Settings'),
'$h_descadvn' => t('Change the behaviour of this account for special situations'),
'$pagetype' => $pagetype,
diff --git a/mod/setup.php b/mod/setup.php
index a8f3a1f47..044def15a 100755
--- a/mod/setup.php
+++ b/mod/setup.php
@@ -50,16 +50,18 @@ function setup_post(&$a) {
$dbuser = trim($_POST['dbuser']);
$dbpass = trim($_POST['dbpass']);
$dbdata = trim($_POST['dbdata']);
+ $dbtype = intval(trim($_POST['dbtype']));
$phpath = trim($_POST['phpath']);
$adminmail = trim($_POST['adminmail']);
$siteurl = trim($_POST['siteurl']);
require_once('include/dba/dba_driver.php');
unset($db);
- $db = dba_factory($dbhost, $dbport, $dbuser, $dbpass, $dbdata, true);
+ $db = dba_factory($dbhost, $dbport, $dbuser, $dbpass, $dbdata, $dbtype, true);
if(! $db->connected) {
echo "Database Connect failed: " . $db->error;
killme();
+ $a->data['db_conn_failed']=true;
}
/*if(get_db_errno()) {
unset($db);
@@ -80,9 +82,9 @@ function setup_post(&$a) {
return;
}
}*/
- if(get_db_errno()) {
- $a->data['db_conn_failed']=true;
- }
+ //if(get_db_errno()) {
+
+ //}
return;
break;
@@ -93,6 +95,7 @@ function setup_post(&$a) {
$dbuser = notags(trim($_POST['dbuser']));
$dbpass = notags(trim($_POST['dbpass']));
$dbdata = notags(trim($_POST['dbdata']));
+ $dbtype = intval(notags(trim($_POST['dbtype'])));
$phpath = notags(trim($_POST['phpath']));
$timezone = notags(trim($_POST['timezone']));
$adminmail = notags(trim($_POST['adminmail']));
@@ -109,7 +112,7 @@ function setup_post(&$a) {
}
// connect to db
- $db = dba_factory($dbhost, $dbport, $dbuser, $dbpass, $dbdata, true);
+ $db = dba_factory($dbhost, $dbport, $dbuser, $dbpass, $dbdata, $dbtype, true);
if(! $db->connected) {
echo 'CRITICAL: DB not connected.';
@@ -123,6 +126,7 @@ function setup_post(&$a) {
'$dbuser' => $dbuser,
'$dbpass' => $dbpass,
'$dbdata' => $dbdata,
+ '$dbtype' => $dbtype,
'$timezone' => $timezone,
'$siteurl' => $siteurl,
'$site_id' => random_string(),
@@ -187,7 +191,7 @@ function setup_content(&$a) {
}
if(x($a->data,'db_failed')) {
- $txt = t('You may need to import the file "install/database.sql" manually using phpmyadmin or mysql.') . EOL;
+ $txt = t('You may need to import the file "install/schema_xxx.sql" manually using a database client.') . EOL;
$txt .= t('Please see the file "install/INSTALL.txt".') . EOL ."<hr>" ;
$txt .= "<pre>".$a->data['db_failed'] . "</pre>". EOL ;
$db_return_text .= $txt;
@@ -273,6 +277,7 @@ function setup_content(&$a) {
$dbport = intval(notags(trim($_POST['dbport'])));
$dbpass = notags(trim($_POST['dbpass']));
$dbdata = notags(trim($_POST['dbdata']));
+ $dbtype = intval(notags(trim($_POST['dbtype'])));
$phpath = notags(trim($_POST['phpath']));
$adminmail = notags(trim($_POST['adminmail']));
$siteurl = notags(trim($_POST['siteurl']));
@@ -293,6 +298,7 @@ function setup_content(&$a) {
'$dbuser' => array('dbuser', t('Database Login Name'), $dbuser, ''),
'$dbpass' => array('dbpass', t('Database Login Password'), $dbpass, ''),
'$dbdata' => array('dbdata', t('Database Name'), $dbdata, ''),
+ '$dbtype' => array('dbtype', t('Database Type'), $dbtype, '', array( 0=>'MySQL', 1=>'PostgreSQL' )),
'$adminmail' => array('adminmail', t('Site administrator email address'), $adminmail, t('Your account email address must match this in order to use the web admin panel.')),
'$siteurl' => array('siteurl', t('Website URL'), z_root(), t('Please use SSL (https) URL if available.')),
@@ -316,6 +322,7 @@ function setup_content(&$a) {
$dbuser = notags(trim($_POST['dbuser']));
$dbpass = notags(trim($_POST['dbpass']));
$dbdata = notags(trim($_POST['dbdata']));
+ $dbtype = intval(notags(trim($_POST['dbtype'])));
$phpath = notags(trim($_POST['phpath']));
$adminmail = notags(trim($_POST['adminmail']));
@@ -335,6 +342,7 @@ function setup_content(&$a) {
'$dbpass' => $dbpass,
'$dbdata' => $dbdata,
'$phpath' => $phpath,
+ '$dbtype' => $dbtype,
'$adminmail' => array('adminmail', t('Site administrator email address'), $adminmail, t('Your account email address must match this in order to use the web admin panel.')),
@@ -440,7 +448,7 @@ function check_funcs(&$checks) {
check_add($ck_funcs, t('libCurl PHP module'), true, true, "");
check_add($ck_funcs, t('GD graphics PHP module'), true, true, "");
check_add($ck_funcs, t('OpenSSL PHP module'), true, true, "");
- check_add($ck_funcs, t('mysqli PHP module'), true, true, "");
+ check_add($ck_funcs, t('mysqli or postgres PHP module'), true, true, "");
check_add($ck_funcs, t('mb_string PHP module'), true, true, "");
check_add($ck_funcs, t('mcrypt PHP module'), true, true, "");
@@ -471,9 +479,9 @@ function check_funcs(&$checks) {
$ck_funcs[2]['status']= false;
$ck_funcs[2]['help']= t('Error: openssl PHP module required but not installed.');
}
- if(! function_exists('mysqli_connect')){
+ if(! function_exists('mysqli_connect') && !function_exists('pg_connect')){
$ck_funcs[3]['status']= false;
- $ck_funcs[3]['help']= t('Error: mysqli PHP module required but not installed.');
+ $ck_funcs[3]['help']= t('Error: mysqli or postgres PHP module required but neither are installed.');
}
if(! function_exists('mb_strlen')){
$ck_funcs[4]['status']= false;
@@ -579,7 +587,7 @@ function check_htaccess(&$checks) {
if ((! $test['success']) || ($test['body'] != "ok")) {
$status = false;
- $help = t('Url rewrite in .htaccess is not working. Check your server configuration.');
+ $help = t('Url rewrite in .htaccess is not working. Check your server configuration.'.'Test: '.var_export($test,true));
}
check_add($checks, t('Url rewrite is working'), $status, true, $help);
} else {
@@ -607,8 +615,8 @@ function load_database_rem($v, $i){
function load_database($db) {
-
- $str = file_get_contents('install/database.sql');
+ file_put_contents('debug-foo.log', 'Loading schema: '.$db->get_install_script());
+ $str = file_get_contents($db->get_install_script());
$arr = explode(';',$str);
$errors = false;
foreach($arr as $a) {
diff --git a/mod/siteinfo.php b/mod/siteinfo.php
index 9674965e1..03e578467 100644
--- a/mod/siteinfo.php
+++ b/mod/siteinfo.php
@@ -1,24 +1,39 @@
<?php
function siteinfo_init(&$a) {
-
+ global $db;
+
if ($a->argv[1]=="json"){
$register_policy = Array('REGISTER_CLOSED', 'REGISTER_APPROVE', 'REGISTER_OPEN');
-
+ $directory_mode = Array('DIRECTORY_MODE_NORMAL', 'DIRECTORY_MODE_SECONDARY','DIRECTORY_MODE_PRIMARY', 'DIRECTORY_MODE_STANDALONE');
+
$sql_extra = '';
- if(x($a->config,'admin_nickname')) {
- $sql_extra = sprintf(" AND nickname = '%s' ",dbesc($a->config['admin_nickname']));
+
+ $r = q("select * from channel left join account on account_id = channel_account_id where ( account_roles & 4096 )>0 and account_default_channel = channel_id");
+
+
+ if($r) {
+ $admin = array();
+ foreach($r as $rr) {
+ if($rr['channel_pageflags'] & PAGE_HUBADMIN)
+ $admin[] = array( 'name' => $rr['channel_name'], 'address' => $rr['channel_address'] . '@' . get_app()->get_hostname(), 'channel' => z_root() . '/channel/' . $rr['channel_address']);
+ }
+ if(! $admin) {
+ foreach($r as $rr) {
+ $admin[] = array( 'name' => $rr['channel_name'], 'address' => $rr['channel_address'] . '@' . get_app()->get_hostname(), 'channel' => z_root() . '/channel/' . $rr['channel_address']);
+ }
+ }
}
- if (isset($a->config['admin_email']) && $a->config['admin_email']!=''){
- $r = q("SELECT username, nickname FROM user WHERE email='%s' $sql_extra", dbesc($a->config['admin_email']));
- $admin = array(
- 'name' => $r[0]['username'],
- 'profile'=> $a->get_baseurl().'/channel/'.$r[0]['nickname'],
- );
- } else {
+ else {
$admin = false;
}
+ $def_service_class = get_config('system','default_service_class');
+ if($def_service_class)
+ $service_class = get_config('service_class',$def_service_class);
+ else
+ $service_class = false;
+
$visible_plugins = array();
if(is_array($a->plugins) && count($a->plugins)) {
$r = q("select * from addon where hidden = 0");
@@ -26,26 +41,46 @@ function siteinfo_init(&$a) {
foreach($r as $rr)
$visible_plugins[] = $rr['name'];
}
+ sort($visible_plugins);
if(@is_dir('.git') && function_exists('shell_exec'))
- $commit = @shell_exec('git log -1 --format="%h"');
+ $commit = trim(@shell_exec('git log -1 --format="%h"'));
if(! isset($commit) || strlen($commit) > 16)
$commit = '';
+ $site_info = get_config('system','info');
+ $site_name = get_config('system','sitename');
+
+ //Statistics
+ $channels_total_stat = intval(get_config('system','channels_total_stat'));
+ $channels_active_halfyear_stat = intval(get_config('system','channels_active_halfyear_stat'));
+ $channels_active_monthly_stat = intval(get_config('system','channels_active_monthly_stat'));
+ $local_posts_stat = intval(get_config('system','local_posts_stat'));
+ $hide_in_statistics = intval(get_config('system','hide_in_statistics'));
+
$data = Array(
'version' => RED_VERSION,
'commit' => $commit,
'url' => z_root(),
'plugins' => $visible_plugins,
'register_policy' => $register_policy[$a->config['system']['register_policy']],
+ 'directory_mode' => $directory_mode[$a->config['system']['directory_mode']],
+ 'language' => get_config('system','language'),
+ 'diaspora_emulation' => get_config('system','diaspora_enabled'),
+ 'rss_connections' => get_config('system','feed_contacts'),
+ 'default_service_restrictions' => $service_class,
'admin' => $admin,
- 'site_name' => $a->config['sitename'],
+ 'site_name' => (($site_name) ? $site_name : ''),
'platform' => RED_PLATFORM,
- 'info' => ((x($a->config,'info')) ? $a->config['info'] : '')
+ 'dbdriver' => $db->getdriver(),
+ 'info' => (($site_info) ? $site_info : ''),
+ 'channels_total' => $channels_total_stat,
+ 'channels_active_halfyear' => $channels_active_halfyear_stat,
+ 'channels_active_monthly' => $channels_active_monthly_stat,
+ 'local_posts' => $local_posts_stat,
+ 'hide_in_statistics' => $hide_in_statistics
);
-
- echo json_encode($data);
- killme();
+ json_return_and_die($data);
}
}
@@ -55,8 +90,10 @@ function siteinfo_content(&$a) {
if(! get_config('system','hidden_version_siteinfo')) {
$version = sprintf( t('Version %s'), RED_VERSION );
- if(@is_dir('.git') && function_exists('shell_exec'))
+ if(@is_dir('.git') && function_exists('shell_exec')) {
$commit = @shell_exec('git log -1 --format="%h"');
+ $tag = @shell_exec('git describe --tags --abbrev=0');
+ }
if(! isset($commit) || strlen($commit) > 16)
$commit = '';
}
@@ -97,6 +134,7 @@ function siteinfo_content(&$a) {
'$title' => t('Red'),
'$description' => t('This is a hub of the Red Matrix - a global cooperative network of decentralized privacy enhanced websites.'),
'$version' => $version,
+ '$tag' => $tag,
'$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.'),
diff --git a/mod/smilies.php b/mod/smilies.php
index c47f95da7..b22d0c6d2 100644
--- a/mod/smilies.php
+++ b/mod/smilies.php
@@ -1,3 +1,15 @@
<?php
-function smilies_content(&$a) { return smilies('',true); }
+function smilies_content(&$a) {
+ if ($a->argv[1]==="json"){
+ $tmp = list_smilies();
+ $results = array();
+ for($i = 0; $i < count($tmp['texts']); $i++) {
+ $results[] = array('text' => $tmp['texts'][$i], 'icon' => $tmp['icons'][$i]);
+ }
+ json_return_and_die($results);
+ }
+ else {
+ return smilies('',true);
+ }
+}
diff --git a/mod/sources.php b/mod/sources.php
index f4b36508f..73d78bbbf 100644
--- a/mod/sources.php
+++ b/mod/sources.php
@@ -47,7 +47,7 @@ function sources_post(&$a) {
goaway(z_root() . '/sources');
}
else {
- $r = q("update source set src_xchan = '%s', src_patt = '%s' where src_channel_id = %d and src_id = %d limit 1",
+ $r = q("update source set src_xchan = '%s', src_patt = '%s' where src_channel_id = %d and src_id = %d",
dbesc($xchan),
dbesc($words),
intval(local_user()),
@@ -150,7 +150,7 @@ function sources_content(&$a) {
notice( t('Source not found.') . EOL);
return '';
}
- $r = q("delete from source where src_id = %d and src_channel_id = %d limit 1",
+ $r = q("delete from source where src_id = %d and src_channel_id = %d",
intval(argv(1)),
intval(local_user())
);
diff --git a/mod/sslify.php b/mod/sslify.php
index ed06d87c1..f37a8e23e 100644
--- a/mod/sslify.php
+++ b/mod/sslify.php
@@ -3,7 +3,7 @@
function sslify_init(&$a) {
$x = z_fetch_url($_REQUEST['url']);
if($x['success']) {
- $h = explode("\n",$x['headers']);
+ $h = explode("\n",$x['header']);
foreach ($h as $l) {
list($k,$v) = array_map("trim", explode(":", trim($l), 2));
$hdrs[$k] = $v;
diff --git a/mod/starred.php b/mod/starred.php
index ca7621b0f..05b45bea3 100644
--- a/mod/starred.php
+++ b/mod/starred.php
@@ -21,7 +21,7 @@ function starred_init(&$a) {
$item_flags = ( $r[0]['item_flags'] ^ ITEM_STARRED );
- $r = q("UPDATE item SET item_flags = %d WHERE uid = %d and id = %d LIMIT 1",
+ $r = q("UPDATE item SET item_flags = %d WHERE uid = %d and id = %d",
intval($item_flags),
intval(local_user()),
intval($message_id)
diff --git a/mod/subthread.php b/mod/subthread.php
index 5ef0615b1..f0f54f4a6 100755
--- a/mod/subthread.php
+++ b/mod/subthread.php
@@ -228,7 +228,7 @@ EOT;
$post_id = $post['item_id'];
if(! $item['visible']) {
- $r = q("UPDATE `item` SET `visible` = 1 WHERE `id` = %d AND `uid` = %d LIMIT 1",
+ $r = q("UPDATE `item` SET `visible` = 1 WHERE `id` = %d AND `uid` = %d",
intval($item['id']),
intval($owner_uid)
);
diff --git a/mod/tagrm.php b/mod/tagrm.php
index 957cf0d71..38787cb0b 100644
--- a/mod/tagrm.php
+++ b/mod/tagrm.php
@@ -19,24 +19,27 @@ function tagrm_post(&$a) {
intval(local_user())
);
- if(! count($r))
+ if(! $r)
goaway($a->get_baseurl() . '/' . $_SESSION['photo_return']);
- $arr = explode(',', $r[0]['tag']);
- for($x = 0; $x < count($arr); $x ++) {
- if($arr[$x] === $tag) {
- unset($arr[$x]);
- break;
+ $r = fetch_post_tags($r,true);
+
+ $item = $r[0];
+ $new_tags = array();
+
+ if($item['term']) {
+ for($x = 0; $x < count($item['term']); $x ++) {
+ if($item['term'][$x]['term'] !== hex2bin($tag))
+ $new_tags[] = $item['term'][$x];
}
}
- $tag_str = implode(',',$arr);
+ if($new_tags)
+ $item['term'] = $new_tags;
+ else
+ unset($item['term']);
- q("UPDATE `item` SET `tag` = '%s' WHERE `id` = %d AND `uid` = %d LIMIT 1",
- dbesc($tag_str),
- intval($item),
- intval(local_user())
- );
+ item_store_update($item);
info( t('Tag removed') . EOL );
goaway($a->get_baseurl() . '/' . $_SESSION['photo_return']);
@@ -49,51 +52,90 @@ function tagrm_post(&$a) {
function tagrm_content(&$a) {
- $o = '';
-
if(! local_user()) {
goaway($a->get_baseurl() . '/' . $_SESSION['photo_return']);
// NOTREACHED
}
- $item = (($a->argc > 1) ? intval($a->argv[1]) : 0);
- if(! $item) {
+ // remove tag on the fly if item and tag are provided
+ if((argc() == 4) && (argv(1) === 'drop') && intval(argv(2))) {
+
+ $item = intval(argv(2));
+ $tag = argv(3);
+
+ $r = q("SELECT * FROM `item` WHERE `id` = %d AND `uid` = %d LIMIT 1",
+ intval($item),
+ intval(local_user())
+ );
+
+ if(! $r)
+ goaway($a->get_baseurl() . '/' . $_SESSION['photo_return']);
+
+ $r = fetch_post_tags($r,true);
+
+ $item = $r[0];
+
+ $new_tags = array();
+
+ if($item['term']) {
+ for($x = 0; $x < count($item['term']); $x ++) {
+ if($item['term'][$x]['term'] !== hex2bin($tag))
+ $new_tags[] = $item['term'][$x];
+ }
+ }
+
+ if($new_tags)
+ $item['term'] = $new_tags;
+ else
+ unset($item['term']);
+
+ item_store_update($item);
+
+ info( t('Tag removed') . EOL );
goaway($a->get_baseurl() . '/' . $_SESSION['photo_return']);
- // NOTREACHED
+
}
+ //if we got only the item print a list of tags to select
+ if((argc() == 3) && (argv(1) === 'drop') && intval(argv(2))) {
- $r = q("SELECT * FROM `item` WHERE `id` = %d AND `uid` = %d LIMIT 1",
- intval($item),
- intval(local_user())
- );
+ $o = '';
- if(! count($r))
- goaway($a->get_baseurl() . '/' . $_SESSION['photo_return']);
+ $item = intval(argv(2));
- $arr = explode(',', $r[0]['tag']);
+ $r = q("SELECT * FROM `item` WHERE `id` = %d AND `uid` = %d LIMIT 1",
+ intval($item),
+ intval(local_user())
+ );
- if(! count($arr))
- goaway($a->get_baseurl() . '/' . $_SESSION['photo_return']);
+ if(! $r)
+ goaway($a->get_baseurl() . '/' . $_SESSION['photo_return']);
- $o .= '<h3>' . t('Remove Item Tag') . '</h3>';
+ $r = fetch_post_tags($r,true);
- $o .= '<p id="tag-remove-desc">' . t('Select a tag to remove: ') . '</p>';
+ if(! count($r[0]['term']))
+ goaway($a->get_baseurl() . '/' . $_SESSION['photo_return']);
- $o .= '<form id="tagrm" action="tagrm" method="post" >';
- $o .= '<input type="hidden" name="item" value="' . $item . '" />';
- $o .= '<ul>';
+ $o .= '<h3>' . t('Remove Item Tag') . '</h3>';
+ $o .= '<p id="tag-remove-desc">' . t('Select a tag to remove: ') . '</p>';
- foreach($arr as $x) {
- $o .= '<li><input type="checkbox" name="tag" value="' . bin2hex($x) . '" >' . bbcode($x) . '</input></li>';
- }
+ $o .= '<form id="tagrm" action="tagrm" method="post" >';
+ $o .= '<input type="hidden" name="item" value="' . $item . '" />';
+ $o .= '<ul>';
- $o .= '</ul>';
- $o .= '<input id="tagrm-submit" type="submit" name="submit" value="' . t('Remove') .'" />';
- $o .= '<input id="tagrm-cancel" type="submit" name="submit" value="' . t('Cancel') .'" />';
- $o .= '</form>';
- return $o;
+ foreach($r[0]['term'] as $x) {
+ $o .= '<li><input type="checkbox" name="tag" value="' . bin2hex($x['term']) . '" >' . bbcode($x['term']) . '</input></li>';
+ }
+
+ $o .= '</ul>';
+ $o .= '<input id="tagrm-submit" type="submit" name="submit" value="' . t('Remove') .'" />';
+ $o .= '<input id="tagrm-cancel" type="submit" name="submit" value="' . t('Cancel') .'" />';
+ $o .= '</form>';
+
+ return $o;
+
+ }
}
diff --git a/mod/thing.php b/mod/thing.php
index 73722c5fa..f53a6ab7b 100644
--- a/mod/thing.php
+++ b/mod/thing.php
@@ -67,8 +67,6 @@ function thing_init(&$a) {
-
-
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),
@@ -87,7 +85,7 @@ function thing_init(&$a) {
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",
+ $r = q("update term set term = '%s', url = '%s', imgurl = '%s' where term_hash = '%s' and uid = %d",
dbesc($name),
dbesc(($url) ? $url : z_root() . '/thing/' . $term_hash),
dbesc($local_photo),
@@ -303,12 +301,12 @@ function thing_content(&$a) {
}
- $x = q("delete from obj where obj_obj = '%s' and obj_type = %d and obj_channel = %d limit 1",
+ $x = q("delete from obj where obj_obj = '%s' and obj_type = %d and obj_channel = %d",
dbesc($thing_hash),
intval(TERM_OBJ_THING),
intval(local_user())
);
- $x = q("delete from term where term_hash = '%s' and uid = %d limit 1",
+ $x = q("delete from term where term_hash = '%s' and uid = %d",
dbesc($thing_hash),
intval(local_user())
);
diff --git a/mod/uexport.php b/mod/uexport.php
index f3a2ce67c..250a001a2 100644
--- a/mod/uexport.php
+++ b/mod/uexport.php
@@ -4,22 +4,37 @@ function uexport_init(&$a) {
if(! local_user())
killme();
- $channel = $a->get_channel();
+ if(argc() > 1) {
+ $channel = $a->get_channel();
- require_once('include/identity.php');
+ require_once('include/identity.php');
- header('content-type: application/octet_stream');
- header('content-disposition: attachment; filename="' . $channel['channel_address'] . '.json"' );
+ header('content-type: application/octet_stream');
+ header('content-disposition: attachment; filename="' . $channel['channel_address'] . '.json"' );
- if(argc() > 1 && argv(1) === 'basic') {
- echo json_encode(identity_basic_export(local_user()));
- killme();
- }
+ if(argc() > 1 && argv(1) === 'basic') {
+ echo json_encode(identity_basic_export(local_user()));
+ killme();
+ }
- if(argc() > 1 && argv(1) === 'complete') {
- echo json_encode('not yet implemented');
- killme();
+ // FIXME - this basically doesn't work in the wild with a channel more than a few months old due to memory and execution time limits.
+ // It probably needs to be built at the CLI and offered to download as a tarball. Maybe stored in the members dav.
+
+ if(argc() > 1 && argv(1) === 'complete') {
+ echo json_encode(identity_basic_export(local_user(),true));
+ killme();
+ }
}
+}
-} \ No newline at end of file
+function uexport_content(&$a) {
+ $o = replace_macros(get_markup_template('uexport.tpl'), array(
+ '$title' => t('Export Channel'),
+ '$basictitle' => t('Export Channel'),
+ '$basic' => t('Export your basic channel information to a small file. This acts as a backup of your connections, permissions, profile and basic data, which can be used to import your data to a new hub, but does not contain your content.'),
+ '$fulltitle' => t('Export Content'),
+ '$full' => t('Export your channel information and all the content to a JSON backup. This backs up all of your connections, permissions, profile data and all of your content, but is generally not suitable for importing a channel to a new hub as this file may be VERY large. Please be patient - it may take several minutes for this download to begin.')
+ ));
+return $o;
+}
diff --git a/mod/update_home.php b/mod/update_home.php
new file mode 100644
index 000000000..c139682e1
--- /dev/null
+++ b/mod/update_home.php
@@ -0,0 +1,38 @@
+<?php
+
+// See update_profile.php for documentation
+
+require_once('mod/home.php');
+
+function update_home_content(&$a) {
+
+ $profile_uid = ((intval($_GET['p'])) ? intval($_GET['p']) : (-1));
+ $load = (((argc() > 1) && (argv(1) == 'load')) ? 1 : 0);
+ header("Content-type: text/html");
+ echo "<!DOCTYPE html><html><body>\r\n";
+ echo ((array_key_exists('msie',$_GET) && $_GET['msie'] == 1) ? '<div>' : '<section>');
+
+ $text = home_content($a,$profile_uid, $load);
+ $pattern = "/<img([^>]*) src=\"([^\"]*)\"/";
+ $replace = "<img\${1} dst=\"\${2}\"";
+ $text = preg_replace($pattern, $replace, $text);
+
+ if(! $load) {
+ $replace = '<br />' . t('[Embedded content - reload page to view]') . '<br />';
+ $pattern = "/<\s*audio[^>]*>(.*?)<\s*\/\s*audio>/i";
+ $text = preg_replace($pattern, $replace, $text);
+ $pattern = "/<\s*video[^>]*>(.*?)<\s*\/\s*video>/i";
+ $text = preg_replace($pattern, $replace, $text);
+ $pattern = "/<\s*embed[^>]*>(.*?)<\s*\/\s*embed>/i";
+ $text = preg_replace($pattern, $replace, $text);
+ $pattern = "/<\s*iframe[^>]*>(.*?)<\s*\/\s*iframe>/i";
+ $text = preg_replace($pattern, $replace, $text);
+ }
+
+ echo str_replace("\t",' ',$text);
+ echo ((array_key_exists('msie',$_GET) && $_GET['msie'] == 1) ? '</div>' : '</section>');
+ echo "</body></html>\r\n";
+// logger('update_home: ' . $text);
+ killme();
+
+} \ No newline at end of file
diff --git a/mod/viewconnections.php b/mod/viewconnections.php
index 40ce28efe..40d26c823 100644
--- a/mod/viewconnections.php
+++ b/mod/viewconnections.php
@@ -37,7 +37,7 @@ function viewconnections_content(&$a) {
$xchan_flags = $xchan_flags | XCHAN_FLAGS_HIDDEN;
}
- $r = q("SELECT count(*) as total FROM abook left join xchan on abook_xchan = xchan_hash where abook_channel = %d and not (abook_flags & %d ) and not ( xchan_flags & %d ) ",
+ $r = q("SELECT count(*) as total FROM abook left join xchan on abook_xchan = xchan_hash where abook_channel = %d and not (abook_flags & %d )>0 and not ( xchan_flags & %d )>0 ",
intval($a->profile['uid']),
intval($abook_flags),
intval($xchan_flags)
@@ -46,12 +46,12 @@ function viewconnections_content(&$a) {
$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 not ( abook_flags & %d ) and not ( xchan_flags & %d ) 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 not ( abook_flags & %d )>0 and not ( xchan_flags & %d )>0 order by xchan_name LIMIT %d OFFSET %d ",
intval($a->profile['uid']),
intval($abook_flags),
intval($xchan_flags),
- intval($a->pager['start']),
- intval($a->pager['itemspage'])
+ intval($a->pager['itemspage']),
+ intval($a->pager['start'])
);
if(! $r) {
diff --git a/mod/viewsrc.php b/mod/viewsrc.php
index ddf39535c..982d1c417 100644
--- a/mod/viewsrc.php
+++ b/mod/viewsrc.php
@@ -5,6 +5,8 @@ function viewsrc_content(&$a) {
$o = '';
+ $sys = get_sys_channel();
+
$item_id = ((argc() > 1) ? intval(argv(1)) : 0);
$json = ((argc() > 2 && argv(2) === 'json') ? true : false);
@@ -19,8 +21,9 @@ function viewsrc_content(&$a) {
}
if(local_user() && $item_id) {
- $r = q("select item_flags, body from item where item_restrict = 0 and uid = %d and id = %d limit 1",
+ $r = q("select item_flags, body from item where item_restrict = 0 and uid in (%d , %d) and id = %d limit 1",
intval(local_user()),
+ intval($sys['channel_id']),
intval($item_id)
);
diff --git a/mod/wall_upload.php b/mod/wall_upload.php
index f83f4f7cf..7ed1859a8 100644
--- a/mod/wall_upload.php
+++ b/mod/wall_upload.php
@@ -8,6 +8,7 @@ require_once('include/photos.php');
function wall_upload_post(&$a) {
+
$using_api = ((x($_FILES,'media')) ? true : false);
if($using_api) {
@@ -43,10 +44,6 @@ function wall_upload_post(&$a) {
killme();
}
- $m = $ret['body'];
-
-
-
if($using_api)
return("\n\n" . $ret['body'] . "\n\n");
else
diff --git a/mod/webpages.php b/mod/webpages.php
index bfa2ebd7d..baddebec8 100644
--- a/mod/webpages.php
+++ b/mod/webpages.php
@@ -1,37 +1,64 @@
<?php
-function webpages_content(&$a) {
+require_once('include/identity.php');
+require_once('include/conversation.php');
+require_once('include/acl_selectors.php');
+
+function webpages_init(&$a) {
+
+ if(argc() > 1 && argv(1) === 'sys' && is_site_admin()) {
+ $sys = get_sys_channel();
+ if($sys && intval($sys['channel_id'])) {
+ $a->is_sys = true;
+ }
+ }
if(argc() > 1)
$which = argv(1);
- else {
+ else
+ return;
+
+ profile_load($a,$which);
+
+}
+
+
+function webpages_content(&$a) {
+
+ if(! $a->profile) {
notice( t('Requested profile is not available.') . EOL );
$a->error = 404;
return;
}
- $profile = 0;
- $channel = $a->get_channel();
-
- if((local_user()) && (argc() > 2) && (argv(2) === 'view')) {
- $which = $channel['channel_address'];
- $profile = argv(1);
- }
+ $which = argv(1);
- profile_load($a,$which,$profile);
+ $uid = local_user();
+ $owner = 0;
+ $channel = null;
+ $observer = $a->get_observer();
+ $channel = $a->get_channel();
- // Figure out who the page owner is.
- $r = q("select channel_id from channel where channel_address = '%s'",
- dbesc($which)
- );
- if($r) {
- $owner = intval($r[0]['channel_id']);
+ if($a->is_sys && is_site_admin()) {
+ $sys = get_sys_channel();
+ if($sys && intval($sys['channel_id'])) {
+ $uid = $owner = intval($sys['channel_id']);
+ $channel = $sys;
+ $observer = $sys;
+ }
}
- // Get the observer, check their permissions
+ if(! $owner) {
+ // Figure out who the page owner is.
+ $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);
@@ -41,28 +68,30 @@ function webpages_content(&$a) {
return;
}
-// if(local_user() && local_user() == $owner) {
-// $a->set_widget('design',design_tools());
-// }
-
-
- $mimetype = (($_REQUEST['mimetype']) ? $_REQUEST['mimetype'] : get_config('system','page_mimetype'));
- if(! $mimetype)
- $mimetype = 'choose';
+ if(feature_enabled($owner,'expert')) {
+ $mimetype = (($_REQUEST['mimetype']) ? $_REQUEST['mimetype'] : get_pconfig($owner,'system','page_mimetype'));
+ if(! $mimetype)
+ $mimetype = 'choose';
+ }
+ else {
+ $mimetype = 'text/bbcode';
+ }
- $layout = (($_REQUEST['layout']) ? $_REQUEST['layout'] : get_config('system','page_layout'));
+ $layout = (($_REQUEST['layout']) ? $_REQUEST['layout'] : get_pconfig($owner,'system','page_layout'));
if(! $layout)
$layout = 'choose';
-// Create a status editor (for now - we'll need a WYSIWYG eventually) to create pages
-// Nickname is set to the observers xchan, and profile_uid to the owners. This lets you post pages at other people's channels.
- require_once ('include/conversation.php');
- require_once('include/acl_selectors.php');
+ // Create a status editor (for now - we'll need a WYSIWYG eventually) to create pages
+ // Nickname is set to the observers xchan, and profile_uid to the owner's.
+ // This lets you post pages at other people's channels.
- if(local_user() && local_user() == $a->profile_uid) {
+
+ if((! $channel) && ($uid) && ($uid == $a->profile_uid)) {
$channel = $a->get_channel();
+ }
+ if($channel) {
$channel_acl = array(
'allow_cid' => $channel['channel_allow_cid'],
'allow_gid' => $channel['channel_allow_gid'],
@@ -73,24 +102,22 @@ function webpages_content(&$a) {
else
$channel_acl = array();
- require_once('include/conversation.php');
- $o = profile_tabs($a,true);
- $o .= '<h2>' . t('Webpages') . '</h2>';
+ $o = profile_tabs($a,true);
$x = array(
- 'webpage' => ITEM_WEBPAGE,
- 'is_owner' => true,
- 'nickname' => $a->profile['channel_address'],
- 'lockstate' => (($group || $cid || $channel['channel_allow_cid'] || $channel['channel_allow_gid'] || $channel['channel_deny_cid'] || $channel['channel_deny_gid']) ? 'lock' : 'unlock'),
- 'bang' => (($group || $cid) ? '!' : ''),
- 'acl' => ((local_user() && local_user() == $owner) ? populate_acl($channel_acl,false) : ''),
- 'visitor' => true,
+ 'webpage' => ITEM_WEBPAGE,
+ 'is_owner' => true,
+ 'nickname' => $a->profile['channel_address'],
+ 'lockstate' => (($channel['channel_allow_cid'] || $channel['channel_allow_gid'] || $channel['channel_deny_cid'] || $channel['channel_deny_gid']) ? 'lock' : 'unlock'),
+ 'bang' => '',
+ 'acl' => (($uid && $uid == $owner) ? populate_acl($channel_acl,false) : ''),
+ 'visitor' => true,
'profile_uid' => intval($owner),
- 'mimetype' => $mimetype,
- 'layout' => $layout,
+ 'mimetype' => $mimetype,
+ 'layout' => $layout,
);
-
+
if($_REQUEST['title'])
$x['title'] = $_REQUEST['title'];
if($_REQUEST['body'])
@@ -100,11 +127,12 @@ function webpages_content(&$a) {
$o .= status_editor($a,$x);
-
- // Get a list of webpages. We can't display all them because endless scroll makes that unusable, so just list titles and an edit link.
+ // Get a list of webpages. We can't display all them because endless scroll makes that unusable,
+ // so just list titles and an edit link.
//TODO - this should be replaced with pagelist_widget
- $r = q("select * from item_id left join item on item_id.iid = item.id where item_id.uid = %d and service = 'WEBPAGE' order by item.created desc",
+ $r = q("select * from item_id left join item on item_id.iid = item.id
+ where item_id.uid = %d and service = 'WEBPAGE' order by item.created desc",
intval($owner)
);
@@ -114,28 +142,36 @@ function webpages_content(&$a) {
$pages = array();
foreach($r as $rr) {
unobscure($rr);
- $pages[$rr['iid']][] = array('url' => $rr['iid'],'pagetitle' => $rr['sid'],'title' => $rr['title'],'created' => datetime_convert('UTC',date_default_timezone_get(),$rr['created']),'edited' => datetime_convert('UTC',date_default_timezone_get(),$rr['edited']));
+ $pages[$rr['iid']][] = array(
+ 'url' => $rr['iid'],
+ 'pagetitle' => $rr['sid'],
+ 'title' => $rr['title'],
+ 'created' => datetime_convert('UTC',date_default_timezone_get(),$rr['created']),
+ 'edited' => datetime_convert('UTC',date_default_timezone_get(),$rr['edited'])
+ );
}
}
-//Build the base URL for edit links
- $url = z_root() . "/editwebpage/" . $which;
-// This isn't pretty, but it works. Until I figure out what to do with the UI, it's Good Enough(TM).
- return $o . replace_macros(get_markup_template("webpagelist.tpl"), array(
- '$baseurl' => $url,
- '$edit' => t('Edit'),
- '$pages' => $pages,
- '$channel' => $which,
- '$view' => t('View'),
- '$preview' => t('Preview'),
- '$actions_txt' => t('Actions'),
+ //Build the base URL for edit links
+ $url = z_root() . '/editwebpage/' . $which;
+
+ $o .= replace_macros(get_markup_template('webpagelist.tpl'), array(
+ '$listtitle' => t('Webpages'),
+ '$baseurl' => $url,
+ '$edit' => t('Edit'),
+ '$pages' => $pages,
+ '$channel' => $which,
+ '$view' => t('View'),
+ '$preview' => t('Preview'),
+ '$actions_txt' => t('Actions'),
'$pagelink_txt' => t('Page Link'),
- '$title_txt' => t('Title'),
- '$created_txt' => t('Created'),
- '$edited_txt' => t('Edited')
+ '$title_txt' => t('Title'),
+ '$created_txt' => t('Created'),
+ '$edited_txt' => t('Edited')
-));
+ ));
+ return $o;
}
diff --git a/mod/xchan.php b/mod/xchan.php
index 9d4cdcc22..69fbdb77d 100644
--- a/mod/xchan.php
+++ b/mod/xchan.php
@@ -3,28 +3,39 @@
function xchan_content(&$a) {
-
- $o .= '<h3>Xchan Lookup</h3>';
+ $o = '<h3>' . t('Xchan Lookup') . '</h3>';
$o .= '<form action="xchan" method="get">';
- $o .= 'Lookup xchan beginning with: <input type="text" style="width: 250px;" name="addr" value="' . $_GET['addr'] .'" />';
- $o .= '<input type="submit" name="submit" value="Submit" /></form>';
-
- $o .= '<br /><br />';
+ $o .= t('Lookup xchan beginning with (or webbie): ');
+ $o .= '<input type="text" style="width:250px;" name="addr" value="' . $_GET['addr'] .'">';
+ $o .= '<input type="submit" name="submit" value="' . t('Submit') .'"></form>';
+ $o .= '<br><br>';
- if(x($_GET,'addr')) {
+ if(x($_GET, 'addr')) {
$addr = trim($_GET['addr']);
- $r = q("select xchan_name from xchan where xchan_hash like '%s%%'",
+ $r = q("select * from xchan where xchan_hash like '%s%%' or xchan_addr = '%s' group by xchan_hash",
+ dbesc($addr),
dbesc($addr)
);
if($r) {
- foreach($r as $rr)
- $o .= $rr['xchan_name'] . EOL;
+ foreach($r as $rr) {
+ $o .= str_replace(array("\n", " "), array("<br>", "&nbsp;"), print_r($rr, true)) . EOL;
+
+ $s = q("select * from hubloc where hubloc_hash like '%s'",
+ dbesc($r[0]['xchan_hash'])
+ );
+
+ if($s) {
+ foreach($s as $rrr)
+ $o .= str_replace(array("\n", " "), array("<br>", "&nbsp;"), print_r($rrr, true)) . EOL;
+ }
+ }
}
else
notice( t('Not found.') . EOL);
+
}
return $o;
}
diff --git a/mod/zfinger.php b/mod/zfinger.php
index 1226f74fe..6f4febc6f 100644
--- a/mod/zfinger.php
+++ b/mod/zfinger.php
@@ -74,12 +74,12 @@ function zfinger_init(&$a) {
*/
$r = q("select channel.*, xchan.* from channel left join xchan on channel_hash = xchan_hash
- where ( channel_pageflags & %d ) order by channel_id limit 1",
+ where ( channel_pageflags & %d )>0 order by channel_id limit 1",
intval(PAGE_SYSTEM)
);
if(! $r) {
$r = q("select channel.*, xchan.* from channel left join xchan on channel_hash = xchan_hash
- where not ( channel_pageflags & %d ) order by channel_id limit 1",
+ where not ( channel_pageflags & %d )>0 order by channel_id limit 1",
intval(PAGE_REMOVED)
);
}
@@ -108,6 +108,21 @@ function zfinger_init(&$a) {
if($deleted || $censored)
$searchable = false;
+ $public_forum = false;
+
+ $role = get_pconfig($e['channel_id'],'system','permissions_role');
+ if($role === 'forum') {
+ $public_forum = true;
+ }
+ else {
+ // check if it has characteristics of a public forum based on custom permissions.
+ $t = q("select abook_my_perms from abook where abook_channel = %d and (abook_flags & %d)>0 limit 1",
+ intval($e['channel_id']),
+ intval(ABOOK_FLAG_SELF)
+ );
+ if($t && ($t[0]['abook_my_perms'] & PERMS_W_TAGWALL))
+ $public_forum = true;
+ }
// This is for birthdays and keywords, but must check access permissions
@@ -174,6 +189,7 @@ function zfinger_init(&$a) {
$ret['target_sig'] = $zsig;
$ret['searchable'] = $searchable;
$ret['adult_content'] = $adult_channel;
+ $ret['public_forum'] = $public_forum;
if($deleted)
$ret['deleted'] = $deleted;
@@ -208,28 +224,11 @@ function zfinger_init(&$a) {
if($permissions['view_profile'])
$ret['profile'] = $profile;
-
// array of (verified) hubs this channel uses
- $ret['locations'] = array();
-
- $x = zot_get_hublocs($e['channel_hash']);
- if($x && count($x)) {
- foreach($x as $hub) {
- if(! ($hub['hubloc_flags'] & HUBLOC_FLAGS_UNVERIFIED)) {
- $ret['locations'][] = array(
- 'host' => $hub['hubloc_host'],
- 'address' => $hub['hubloc_addr'],
- 'primary' => (($hub['hubloc_flags'] & HUBLOC_FLAGS_PRIMARY) ? true : false),
- 'url' => $hub['hubloc_url'],
- 'url_sig' => $hub['hubloc_url_sig'],
- 'callback' => $hub['hubloc_callback'],
- 'sitekey' => $hub['hubloc_sitekey'],
- 'deleted' => (($hub['hubloc_flags'] & HUBLOC_FLAGS_DELETED) ? true : false)
- );
- }
- }
- }
+ $x = zot_encode_locations($e);
+ if($x)
+ $ret['locations'] = $x;
$ret['site'] = array();
$ret['site']['url'] = z_root();
diff --git a/mod/zotfeed.php b/mod/zotfeed.php
index 480e886cd..9ad93c1d4 100644
--- a/mod/zotfeed.php
+++ b/mod/zotfeed.php
@@ -21,7 +21,7 @@ function zotfeed_init(&$a) {
$channel_address = ((argc() > 1) ? argv(1) : '');
if($channel_address) {
- $r = q("select channel_id, channel_name from channel where channel_address = '%s' and not (channel_pageflags & %d) limit 1",
+ $r = q("select channel_id, channel_name from channel where channel_address = '%s' and not (channel_pageflags & %d)>0 limit 1",
dbesc(argv(1)),
intval(PAGE_REMOVED)
);
@@ -38,7 +38,7 @@ function zotfeed_init(&$a) {
logger('zotfeed request: ' . $r[0]['channel_name'], LOGGER_DEBUG);
- $result['messages'] = zot_feed($r[0]['channel_id'],$observer['xchan_hash'],$mindate);
+ $result['messages'] = zot_feed($r[0]['channel_id'],$observer['xchan_hash'],array('mindate' => $mindate));
$result['success'] = true;
json_return_and_die($result);
diff --git a/util/messages.po b/util/messages.po
index a80e08f9b..12d872910 100644
--- a/util/messages.po
+++ b/util/messages.po
@@ -6,9 +6,9 @@
#, fuzzy
msgid ""
msgstr ""
-"Project-Id-Version: 2014-09-05.789\n"
+"Project-Id-Version: 2014-12-19.894\n"
"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2014-09-05 00:03-0700\n"
+"POT-Creation-Date: 2014-12-19 00:04-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"
@@ -17,1390 +17,1395 @@ msgstr ""
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
-#: ../../include/dba/dba_driver.php:50
+#: ../../include/dba/dba_driver.php:142
#, php-format
msgid "Cannot locate DNS info for database server '%s'"
msgstr ""
-#: ../../include/photo/photo_driver.php:653 ../../include/photos.php:51
+#: ../../include/photo/photo_driver.php:680 ../../include/photos.php:52
+#: ../../mod/photos.php:91 ../../mod/photos.php:654
#: ../../mod/profile_photo.php:142 ../../mod/profile_photo.php:301
-#: ../../mod/profile_photo.php:421 ../../mod/photos.php:91
-#: ../../mod/photos.php:659 ../../mod/photos.php:681
+#: ../../mod/profile_photo.php:423
msgid "Profile Photos"
msgstr ""
-#: ../../include/network.php:557
-msgid "view full size"
+#: ../../include/items.php:382 ../../mod/group.php:68
+#: ../../mod/subthread.php:49 ../../mod/profperm.php:23 ../../mod/like.php:246
+#: ../../index.php:389
+msgid "Permission denied"
msgstr ""
-#: ../../include/oembed.php:163
-msgid "Embedded content"
+#: ../../include/items.php:969 ../../include/items.php:1014
+msgid "(Unknown)"
msgstr ""
-#: ../../include/oembed.php:172
-msgid "Embedding disabled"
+#: ../../include/items.php:1171
+msgid "Visible to anybody on the internet."
msgstr ""
-#: ../../include/notify.php:23
-msgid "created a new post"
+#: ../../include/items.php:1173
+msgid "Visible to you only."
msgstr ""
-#: ../../include/notify.php:24
-#, php-format
-msgid "commented on %s's post"
+#: ../../include/items.php:1175
+msgid "Visible to anybody in this network."
msgstr ""
-#: ../../include/apps.php:123
-msgid "Site Admin"
+#: ../../include/items.php:1177
+msgid "Visible to anybody authenticated."
msgstr ""
-#: ../../include/apps.php:124 ../../include/nav.php:113
-#: ../../include/conversation.php:1561
-msgid "Bookmarks"
+#: ../../include/items.php:1179
+#, php-format
+msgid "Visible to anybody on %s."
msgstr ""
-#: ../../include/apps.php:125
-msgid "Address Book"
+#: ../../include/items.php:1181
+msgid "Visible to all connections."
msgstr ""
-#: ../../include/apps.php:126 ../../include/nav.php:119 ../../boot.php:1494
-msgid "Login"
+#: ../../include/items.php:1183
+msgid "Visible to approved connections."
msgstr ""
-#: ../../include/apps.php:127 ../../include/nav.php:209
-#: ../../mod/manage.php:148
-msgid "Channel Manager"
+#: ../../include/items.php:1185
+msgid "Visible to specific connections."
msgstr ""
-#: ../../include/apps.php:128 ../../include/nav.php:183
-msgid "Matrix"
+#: ../../include/items.php:3952 ../../mod/display.php:32
+#: ../../mod/thing.php:76 ../../mod/filestorage.php:26 ../../mod/admin.php:168
+#: ../../mod/admin.php:896 ../../mod/admin.php:1099 ../../mod/viewsrc.php:20
+msgid "Item not found."
msgstr ""
-#: ../../include/apps.php:129 ../../include/nav.php:211
-#: ../../include/widgets.php:521 ../../mod/admin.php:948
-#: ../../mod/admin.php:1153
-msgid "Settings"
+#: ../../include/items.php:4019 ../../include/photos.php:15
+#: ../../include/attach.php:116 ../../include/attach.php:163
+#: ../../include/attach.php:226 ../../include/attach.php:240
+#: ../../include/attach.php:280 ../../include/attach.php:294
+#: ../../include/attach.php:318 ../../include/attach.php:511
+#: ../../include/attach.php:585 ../../include/chat.php:116
+#: ../../mod/mood.php:112 ../../mod/register.php:72 ../../mod/mitem.php:106
+#: ../../mod/achievements.php:30 ../../mod/settings.php:542
+#: ../../mod/group.php:9 ../../mod/poke.php:128 ../../mod/api.php:26
+#: ../../mod/api.php:31 ../../mod/setup.php:207 ../../mod/authtest.php:13
+#: ../../mod/profile.php:64 ../../mod/profile.php:72 ../../mod/block.php:22
+#: ../../mod/block.php:72 ../../mod/delegate.php:6 ../../mod/sources.php:66
+#: ../../mod/events.php:195 ../../mod/channel.php:90 ../../mod/channel.php:201
+#: ../../mod/channel.php:244 ../../mod/chat.php:90 ../../mod/chat.php:95
+#: ../../mod/regmod.php:17 ../../mod/editpost.php:13 ../../mod/common.php:35
+#: ../../mod/connections.php:169 ../../mod/connedit.php:266
+#: ../../mod/mail.php:111 ../../mod/photos.php:68 ../../mod/webpages.php:67
+#: ../../mod/bookmarks.php:46 ../../mod/blocks.php:67 ../../mod/blocks.php:75
+#: ../../mod/editblock.php:65 ../../mod/pdledit.php:21
+#: ../../mod/editlayout.php:64 ../../mod/editlayout.php:89
+#: ../../mod/editwebpage.php:64 ../../mod/editwebpage.php:86
+#: ../../mod/editwebpage.php:118 ../../mod/profile_photo.php:263
+#: ../../mod/profile_photo.php:276 ../../mod/like.php:154
+#: ../../mod/thing.php:247 ../../mod/thing.php:264 ../../mod/thing.php:299
+#: ../../mod/fsuggest.php:78 ../../mod/filestorage.php:18
+#: ../../mod/filestorage.php:67 ../../mod/filestorage.php:82
+#: ../../mod/filestorage.php:109 ../../mod/locs.php:71 ../../mod/item.php:191
+#: ../../mod/item.php:199 ../../mod/item.php:972 ../../mod/suggest.php:26
+#: ../../mod/layouts.php:67 ../../mod/layouts.php:74 ../../mod/layouts.php:85
+#: ../../mod/profiles.php:179 ../../mod/profiles.php:550
+#: ../../mod/manage.php:6 ../../mod/menu.php:61 ../../mod/invite.php:13
+#: ../../mod/invite.php:104 ../../mod/network.php:12
+#: ../../mod/notifications.php:66 ../../mod/viewconnections.php:22
+#: ../../mod/viewconnections.php:27 ../../mod/viewsrc.php:14
+#: ../../mod/message.php:16 ../../mod/new_channel.php:68
+#: ../../mod/new_channel.php:99 ../../mod/page.php:28 ../../mod/page.php:78
+#: ../../mod/appman.php:66 ../../mod/service_limits.php:7 ../../index.php:190
+#: ../../index.php:390
+msgid "Permission denied."
msgstr ""
-#: ../../include/apps.php:130 ../../include/nav.php:105
-#: ../../include/reddav.php:1280 ../../include/conversation.php:1539
-#: ../../mod/fbrowser.php:114
-msgid "Files"
+#: ../../include/items.php:4410 ../../mod/group.php:38 ../../mod/group.php:140
+msgid "Collection not found."
msgstr ""
-#: ../../include/apps.php:131 ../../include/nav.php:115
-#: ../../include/conversation.php:1572 ../../mod/webpages.php:79
-msgid "Webpages"
+#: ../../include/items.php:4425
+msgid "Collection is empty."
msgstr ""
-#: ../../include/apps.php:132 ../../include/nav.php:186
-msgid "Channel Home"
+#: ../../include/items.php:4432
+#, php-format
+msgid "Collection: %s"
msgstr ""
-#: ../../include/apps.php:133 ../../include/identity.php:986
-#: ../../include/identity.php:1104 ../../mod/profperm.php:112
-msgid "Profile"
+#: ../../include/items.php:4443
+#, php-format
+msgid "Connection: %s"
msgstr ""
-#: ../../include/apps.php:134 ../../include/nav.php:104
-#: ../../include/conversation.php:1530 ../../mod/fbrowser.php:25
-msgid "Photos"
+#: ../../include/items.php:4446
+msgid "Connection not found."
msgstr ""
-#: ../../include/apps.php:135 ../../include/nav.php:205
-#: ../../mod/events.php:411
-msgid "Events"
+#: ../../include/menu.php:42 ../../include/page_widgets.php:8
+#: ../../include/page_widgets.php:36 ../../include/RedDAV/RedBrowser.php:251
+#: ../../include/apps.php:249 ../../include/ItemObject.php:100
+#: ../../mod/settings.php:627 ../../mod/editpost.php:112
+#: ../../mod/connections.php:381 ../../mod/connections.php:394
+#: ../../mod/connections.php:413 ../../mod/webpages.php:162
+#: ../../mod/blocks.php:132 ../../mod/editblock.php:143
+#: ../../mod/editlayout.php:139 ../../mod/editwebpage.php:174
+#: ../../mod/thing.php:233 ../../mod/layouts.php:167 ../../mod/menu.php:78
+msgid "Edit"
msgstr ""
-#: ../../include/apps.php:136 ../../include/nav.php:172
-#: ../../mod/directory.php:226
-msgid "Directory"
+#: ../../include/message.php:18
+msgid "No recipient provided."
msgstr ""
-#: ../../include/apps.php:137 ../../include/nav.php:164 ../../mod/help.php:60
-#: ../../mod/help.php:65
-msgid "Help"
+#: ../../include/message.php:23
+msgid "[no subject]"
msgstr ""
-#: ../../include/apps.php:138 ../../include/nav.php:197
-msgid "Mail"
+#: ../../include/message.php:45
+msgid "Unable to determine sender."
msgstr ""
-#: ../../include/apps.php:139 ../../mod/mood.php:131
-msgid "Mood"
+#: ../../include/message.php:200
+msgid "Stored post could not be verified."
msgstr ""
-#: ../../include/apps.php:140 ../../include/conversation.php:963
-msgid "Poke"
+#: ../../include/network.php:590
+msgid "view full size"
msgstr ""
-#: ../../include/apps.php:141 ../../include/nav.php:110
-msgid "Chat"
+#: ../../include/permissions.php:26
+msgid "Can view my normal stream and posts"
msgstr ""
-#: ../../include/apps.php:142 ../../include/nav.php:169
-#: ../../include/text.php:821 ../../include/text.php:835
-#: ../../mod/search.php:30
-msgid "Search"
+#: ../../include/permissions.php:27
+msgid "Can view my default channel profile"
msgstr ""
-#: ../../include/apps.php:143
-msgid "Probe"
+#: ../../include/permissions.php:28
+msgid "Can view my photo albums"
msgstr ""
-#: ../../include/apps.php:144
-msgid "Suggest"
+#: ../../include/permissions.php:29
+msgid "Can view my connections"
msgstr ""
-#: ../../include/apps.php:145
-msgid "Random Channel"
+#: ../../include/permissions.php:30
+msgid "Can view my file storage"
msgstr ""
-#: ../../include/apps.php:146
-msgid "Invite"
+#: ../../include/permissions.php:31
+msgid "Can view my webpages"
msgstr ""
-#: ../../include/apps.php:147
-msgid "Features"
+#: ../../include/permissions.php:34
+msgid "Can send me their channel stream and posts"
msgstr ""
-#: ../../include/apps.php:148
-msgid "Language"
+#: ../../include/permissions.php:35
+msgid "Can post on my channel page (\"wall\")"
msgstr ""
-#: ../../include/apps.php:149
-msgid "Post"
+#: ../../include/permissions.php:36
+msgid "Can comment on or like my posts"
msgstr ""
-#: ../../include/apps.php:150
-msgid "Profile Photo"
+#: ../../include/permissions.php:37
+msgid "Can send me private mail messages"
msgstr ""
-#: ../../include/apps.php:239 ../../mod/settings.php:79
-#: ../../mod/settings.php:543
-msgid "Update"
+#: ../../include/permissions.php:38
+msgid "Can post photos to my photo albums"
msgstr ""
-#: ../../include/apps.php:239
-msgid "Install"
+#: ../../include/permissions.php:39
+msgid "Can like/dislike stuff"
msgstr ""
-#: ../../include/apps.php:244
-msgid "Purchase"
+#: ../../include/permissions.php:39
+msgid "Profiles and things other than posts/comments"
msgstr ""
-#: ../../include/apps.php:246 ../../include/page_widgets.php:8
-#: ../../include/page_widgets.php:36 ../../include/reddav.php:1289
-#: ../../include/menu.php:42 ../../include/ItemObject.php:100
-#: ../../mod/settings.php:579 ../../mod/blocks.php:99
-#: ../../mod/connections.php:396 ../../mod/editblock.php:111
-#: ../../mod/editlayout.php:106 ../../mod/editpost.php:112
-#: ../../mod/editwebpage.php:143 ../../mod/thing.php:235
-#: ../../mod/layouts.php:121 ../../mod/menu.php:59 ../../mod/webpages.php:127
-msgid "Edit"
+#: ../../include/permissions.php:41
+msgid "Can forward to all my channel contacts via post @mentions"
msgstr ""
-#: ../../include/apps.php:247 ../../include/reddav.php:1290
-#: ../../include/conversation.php:648 ../../include/ItemObject.php:112
-#: ../../mod/settings.php:580 ../../mod/connedit.php:440
-#: ../../mod/photos.php:1052 ../../mod/group.php:176 ../../mod/admin.php:728
-#: ../../mod/admin.php:858 ../../mod/thing.php:236
-msgid "Delete"
+#: ../../include/permissions.php:41
+msgid "Advanced - useful for creating group forum channels"
msgstr ""
-#: ../../include/apps.php:328 ../../include/apps.php:379
-#: ../../include/reddav.php:1202 ../../mod/connedit.php:476
-msgid "Unknown"
+#: ../../include/permissions.php:42
+msgid "Can chat with me (when available)"
msgstr ""
-#: ../../include/page_widgets.php:6
-msgid "New Page"
+#: ../../include/permissions.php:43
+msgid "Can write to my file storage"
msgstr ""
-#: ../../include/page_widgets.php:39 ../../mod/blocks.php:102
-#: ../../mod/layouts.php:125 ../../mod/webpages.php:130
-msgid "View"
+#: ../../include/permissions.php:44
+msgid "Can edit my webpages"
msgstr ""
-#: ../../include/page_widgets.php:40 ../../include/conversation.php:1109
-#: ../../include/ItemObject.php:597 ../../mod/editblock.php:141
-#: ../../mod/editlayout.php:135 ../../mod/editpost.php:140
-#: ../../mod/editwebpage.php:174 ../../mod/photos.php:1003
-#: ../../mod/webpages.php:131
-msgid "Preview"
+#: ../../include/permissions.php:46
+msgid "Can source my public posts in derived channels"
msgstr ""
-#: ../../include/page_widgets.php:41 ../../mod/webpages.php:132
-msgid "Actions"
+#: ../../include/permissions.php:46
+msgid "Somewhat advanced - very useful in open communities"
msgstr ""
-#: ../../include/page_widgets.php:42 ../../mod/webpages.php:133
-msgid "Page Link"
+#: ../../include/permissions.php:48
+msgid "Can administer my channel resources"
msgstr ""
-#: ../../include/page_widgets.php:43 ../../mod/webpages.php:134
-msgid "Title"
+#: ../../include/permissions.php:48
+msgid "Extremely advanced. Leave this alone unless you know what you are doing"
msgstr ""
-#: ../../include/page_widgets.php:44 ../../mod/webpages.php:135
-msgid "Created"
+#: ../../include/permissions.php:814
+msgid "Social Networking"
msgstr ""
-#: ../../include/page_widgets.php:45 ../../mod/webpages.php:136
-msgid "Edited"
+#: ../../include/permissions.php:815 ../../include/permissions.php:817
+#: ../../include/permissions.php:819
+msgid "Mostly Public"
msgstr ""
-#: ../../include/security.php:301
-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/permissions.php:815 ../../include/permissions.php:817
+#: ../../include/permissions.php:819
+msgid "Restricted"
msgstr ""
-#: ../../include/zot.php:654
-msgid "Invalid data packet"
+#: ../../include/permissions.php:815 ../../include/permissions.php:817
+msgid "Private"
msgstr ""
-#: ../../include/zot.php:668
-msgid "Unable to verify channel signature"
+#: ../../include/permissions.php:816
+msgid "Community Forum"
msgstr ""
-#: ../../include/zot.php:865
-#, php-format
-msgid "Unable to verify site signature for %s"
+#: ../../include/permissions.php:818
+msgid "Feed Republish"
msgstr ""
-#: ../../include/photos.php:15 ../../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:116 ../../include/items.php:3826
-#: ../../mod/mood.php:112 ../../mod/mitem.php:73 ../../mod/achievements.php:30
-#: ../../mod/settings.php:494 ../../mod/poke.php:128 ../../mod/api.php:26
-#: ../../mod/api.php:31 ../../mod/authtest.php:13 ../../mod/profile.php:64
-#: ../../mod/profile.php:72 ../../mod/block.php:22 ../../mod/block.php:72
-#: ../../mod/profile_photo.php:263 ../../mod/profile_photo.php:276
-#: ../../mod/blocks.php:29 ../../mod/blocks.php:44 ../../mod/profiles.php:179
-#: ../../mod/profiles.php:560 ../../mod/bookmarks.php:46
-#: ../../mod/channel.php:89 ../../mod/channel.php:193
-#: ../../mod/channel.php:236 ../../mod/chat.php:90 ../../mod/chat.php:95
-#: ../../mod/register.php:70 ../../mod/regmod.php:17 ../../mod/common.php:35
-#: ../../mod/network.php:12 ../../mod/connections.php:169
-#: ../../mod/connedit.php:254 ../../mod/delegate.php:6 ../../mod/page.php:30
-#: ../../mod/page.php:80 ../../mod/setup.php:203 ../../mod/editblock.php:34
-#: ../../mod/pdledit.php:21 ../../mod/editlayout.php:48
-#: ../../mod/editpost.php:13 ../../mod/editwebpage.php:44
-#: ../../mod/editwebpage.php:83 ../../mod/photos.php:68
-#: ../../mod/photos.php:526 ../../mod/sources.php:66 ../../mod/events.php:175
-#: ../../mod/filestorage.php:10 ../../mod/filestorage.php:59
-#: ../../mod/filestorage.php:75 ../../mod/filestorage.php:98
-#: ../../mod/fsuggest.php:78 ../../mod/suggest.php:26 ../../mod/group.php:9
-#: ../../mod/thing.php:249 ../../mod/thing.php:266 ../../mod/thing.php:301
-#: ../../mod/invite.php:13 ../../mod/invite.php:104 ../../mod/item.php:178
-#: ../../mod/item.php:186 ../../mod/item.php:920 ../../mod/layouts.php:27
-#: ../../mod/layouts.php:39 ../../mod/like.php:154
-#: ../../mod/viewconnections.php:22 ../../mod/viewconnections.php:27
-#: ../../mod/viewsrc.php:12 ../../mod/mail.php:108 ../../mod/manage.php:6
-#: ../../mod/menu.php:44 ../../mod/webpages.php:40 ../../mod/message.php:16
-#: ../../mod/new_channel.php:66 ../../mod/new_channel.php:97
-#: ../../mod/notifications.php:66 ../../mod/appman.php:66 ../../index.php:186
-#: ../../index.php:361
-msgid "Permission denied."
+#: ../../include/permissions.php:820
+msgid "Special Purpose"
msgstr ""
-#: ../../include/photos.php:104
-#, php-format
-msgid "Image exceeds website size limit of %lu bytes"
+#: ../../include/permissions.php:821
+msgid "Celebrity/Soapbox"
msgstr ""
-#: ../../include/photos.php:111
-msgid "Image file is empty."
+#: ../../include/permissions.php:821
+msgid "Group Repository"
msgstr ""
-#: ../../include/photos.php:140 ../../mod/profile_photo.php:216
-msgid "Unable to process image"
+#: ../../include/permissions.php:822 ../../include/profile_selectors.php:6
+#: ../../include/profile_selectors.php:23
+#: ../../include/profile_selectors.php:61
+#: ../../include/profile_selectors.php:97
+msgid "Other"
msgstr ""
-#: ../../include/photos.php:212
-msgid "Photo storage failed."
+#: ../../include/permissions.php:823
+msgid "Custom/Expert Mode"
msgstr ""
-#: ../../include/photos.php:339 ../../include/conversation.php:1533
-msgid "Photo Albums"
+#: ../../include/notify.php:23
+msgid "created a new post"
msgstr ""
-#: ../../include/photos.php:343 ../../mod/photos.php:697
-#: ../../mod/photos.php:1199
-msgid "Upload New Photos"
+#: ../../include/notify.php:24
+#, php-format
+msgid "commented on %s's post"
msgstr ""
-#: ../../include/acl_selectors.php:240
-msgid "Visible to your default audience"
+#: ../../include/taxonomy.php:210 ../../include/taxonomy.php:229
+msgid "Tags"
msgstr ""
-#: ../../include/acl_selectors.php:241
-msgid "Show"
+#: ../../include/taxonomy.php:250 ../../include/contact_widgets.php:92
+#: ../../include/widgets.php:35
+msgid "Categories"
msgstr ""
-#: ../../include/acl_selectors.php:242
-msgid "Don't show"
+#: ../../include/taxonomy.php:269
+msgid "Keywords"
msgstr ""
-#: ../../include/acl_selectors.php:248 ../../mod/chat.php:209
-#: ../../mod/photos.php:604 ../../mod/photos.php:958
-#: ../../mod/filestorage.php:128
-msgid "Permissions"
+#: ../../include/taxonomy.php:294
+msgid "have"
msgstr ""
-#: ../../include/acl_selectors.php:249 ../../include/ItemObject.php:294
-msgid "Close"
+#: ../../include/taxonomy.php:294
+msgid "has"
msgstr ""
-#: ../../include/activities.php:39
-msgid " and "
+#: ../../include/taxonomy.php:295
+msgid "want"
msgstr ""
-#: ../../include/activities.php:47
-msgid "public profile"
+#: ../../include/taxonomy.php:295
+msgid "wants"
msgstr ""
-#: ../../include/activities.php:52
-#, php-format
-msgid "%1$s changed %2$s to &ldquo;%3$s&rdquo;"
+#: ../../include/taxonomy.php:296 ../../include/ItemObject.php:221
+msgid "like"
msgstr ""
-#: ../../include/activities.php:53
-#, php-format
-msgid "Visit %1$s's %2$s"
+#: ../../include/taxonomy.php:296
+msgid "likes"
msgstr ""
-#: ../../include/activities.php:56
-#, php-format
-msgid "%1$s has an updated %2$s, changing %3$s."
+#: ../../include/taxonomy.php:297 ../../include/ItemObject.php:222
+msgid "dislike"
msgstr ""
-#: ../../include/api.php:1036
-msgid "Public Timeline"
+#: ../../include/taxonomy.php:297
+msgid "dislikes"
msgstr ""
-#: ../../include/attach.php:224 ../../include/attach.php:278
-msgid "Item was not found."
-msgstr ""
+#: ../../include/taxonomy.php:380 ../../include/identity.php:1148
+#: ../../include/ItemObject.php:146 ../../mod/photos.php:1027
+msgctxt "noun"
+msgid "Like"
+msgid_plural "Likes"
+msgstr[0] ""
+msgstr[1] ""
-#: ../../include/attach.php:335
-msgid "No source file."
+#: ../../include/page_widgets.php:6
+msgid "New Page"
msgstr ""
-#: ../../include/attach.php:352
-msgid "Cannot locate file to replace"
+#: ../../include/page_widgets.php:39 ../../mod/webpages.php:165
+#: ../../mod/blocks.php:135 ../../mod/layouts.php:171
+msgid "View"
msgstr ""
-#: ../../include/attach.php:370
-msgid "Cannot locate file to revise/update"
+#: ../../include/page_widgets.php:40 ../../include/conversation.php:1102
+#: ../../include/ItemObject.php:638 ../../mod/photos.php:998
+#: ../../mod/webpages.php:166
+msgid "Preview"
msgstr ""
-#: ../../include/attach.php:381
-#, php-format
-msgid "File exceeds size limit of %d"
+#: ../../include/page_widgets.php:41 ../../mod/webpages.php:167
+msgid "Actions"
msgstr ""
-#: ../../include/attach.php:393
-#, php-format
-msgid "You have reached your limit of %1$.0f Mbytes attachment storage."
+#: ../../include/page_widgets.php:42 ../../mod/webpages.php:168
+msgid "Page Link"
msgstr ""
-#: ../../include/attach.php:475
-msgid "File upload failed. Possible system limit or action terminated."
+#: ../../include/page_widgets.php:43 ../../mod/webpages.php:169
+msgid "Title"
msgstr ""
-#: ../../include/attach.php:487
-msgid "Stored file could not be verified. Upload failed."
+#: ../../include/page_widgets.php:44 ../../mod/webpages.php:170
+msgid "Created"
msgstr ""
-#: ../../include/attach.php:528 ../../include/attach.php:545
-msgid "Path not available."
+#: ../../include/page_widgets.php:45 ../../mod/webpages.php:171
+msgid "Edited"
msgstr ""
-#: ../../include/attach.php:590
-msgid "Empty pathname"
+#: ../../include/oembed.php:171
+msgid "Embedded content"
msgstr ""
-#: ../../include/attach.php:606
-msgid "duplicate filename or path"
+#: ../../include/oembed.php:180
+msgid "Embedding disabled"
msgstr ""
-#: ../../include/attach.php:630
-msgid "Path not found."
+#: ../../include/auth.php:130
+msgid "Logged out."
msgstr ""
-#: ../../include/attach.php:681
-msgid "mkdir failed."
+#: ../../include/auth.php:271
+msgid "Failed authentication"
msgstr ""
-#: ../../include/attach.php:685
-msgid "database storage failed."
+#: ../../include/auth.php:285 ../../mod/openid.php:190
+msgid "Login failed."
msgstr ""
-#: ../../include/bb2diaspora.php:298
-msgid "Attachments:"
+#: ../../include/photos.php:105
+#, php-format
+msgid "Image exceeds website size limit of %lu bytes"
msgstr ""
-#: ../../include/bb2diaspora.php:377 ../../include/event.php:11
-msgid "l F d, Y \\@ g:i A"
+#: ../../include/photos.php:112
+msgid "Image file is empty."
msgstr ""
-#: ../../include/bb2diaspora.php:383 ../../include/event.php:20
-msgid "Starts:"
+#: ../../include/photos.php:141 ../../mod/profile_photo.php:216
+msgid "Unable to process image"
msgstr ""
-#: ../../include/bb2diaspora.php:391 ../../include/event.php:30
-msgid "Finishes:"
+#: ../../include/photos.php:213
+msgid "Photo storage failed."
msgstr ""
-#: ../../include/bb2diaspora.php:399 ../../include/event.php:40
-#: ../../include/identity.php:757 ../../mod/directory.php:156
-#: ../../mod/dirprofile.php:105 ../../mod/events.php:528
-msgid "Location:"
+#: ../../include/photos.php:341 ../../include/conversation.php:1533
+msgid "Photo Albums"
msgstr ""
-#: ../../include/nav.php:94 ../../include/nav.php:121 ../../boot.php:1493
-msgid "Logout"
+#: ../../include/photos.php:345
+msgid "Upload New Photos"
msgstr ""
-#: ../../include/nav.php:94 ../../include/nav.php:121
-msgid "End this session"
+#: ../../include/activities.php:39
+msgid " and "
msgstr ""
-#: ../../include/nav.php:97 ../../include/nav.php:155
-msgid "Home"
+#: ../../include/activities.php:47
+msgid "public profile"
msgstr ""
-#: ../../include/nav.php:97
-msgid "Your posts and conversations"
+#: ../../include/activities.php:52
+#, php-format
+msgid "%1$s changed %2$s to &ldquo;%3$s&rdquo;"
msgstr ""
-#: ../../include/nav.php:98 ../../include/conversation.php:957
-#: ../../mod/connedit.php:393 ../../mod/connedit.php:507
-msgid "View Profile"
+#: ../../include/activities.php:53
+#, php-format
+msgid "Visit %1$s's %2$s"
msgstr ""
-#: ../../include/nav.php:98
-msgid "Your profile page"
+#: ../../include/activities.php:56
+#, php-format
+msgid "%1$s has an updated %2$s, changing %3$s."
msgstr ""
-#: ../../include/nav.php:100
-msgid "Edit Profiles"
+#: ../../include/bb2diaspora.php:384
+msgid "Attachments:"
msgstr ""
-#: ../../include/nav.php:100
-msgid "Manage/Edit profiles"
+#: ../../include/bb2diaspora.php:463 ../../include/event.php:11
+msgid "l F d, Y \\@ g:i A"
msgstr ""
-#: ../../include/nav.php:102 ../../include/identity.php:730
-msgid "Edit Profile"
+#: ../../include/bb2diaspora.php:465
+msgid "Redmatrix event notification:"
msgstr ""
-#: ../../include/nav.php:102
-msgid "Edit your profile"
+#: ../../include/bb2diaspora.php:469 ../../include/event.php:20
+msgid "Starts:"
msgstr ""
-#: ../../include/nav.php:104
-msgid "Your photos"
+#: ../../include/bb2diaspora.php:477 ../../include/event.php:30
+msgid "Finishes:"
msgstr ""
-#: ../../include/nav.php:105
-msgid "Your files"
+#: ../../include/bb2diaspora.php:485 ../../include/event.php:40
+#: ../../include/identity.php:891 ../../mod/events.php:590
+#: ../../mod/directory.php:199
+msgid "Location:"
msgstr ""
-#: ../../include/nav.php:110
-msgid "Your chatrooms"
+#: ../../include/features.php:23
+msgid "General Features"
msgstr ""
-#: ../../include/nav.php:113
-msgid "Your bookmarks"
+#: ../../include/features.php:25
+msgid "Content Expiration"
msgstr ""
-#: ../../include/nav.php:115
-msgid "Your webpages"
+#: ../../include/features.php:25
+msgid "Remove posts/comments and/or private messages at a future time"
msgstr ""
-#: ../../include/nav.php:119
-msgid "Sign in"
+#: ../../include/features.php:26
+msgid "Multiple Profiles"
msgstr ""
-#: ../../include/nav.php:136
-#, php-format
-msgid "%s - click to logout"
+#: ../../include/features.php:26
+msgid "Ability to create multiple profiles"
msgstr ""
-#: ../../include/nav.php:141
-msgid "Click to authenticate to your home hub"
+#: ../../include/features.php:27
+msgid "Advanced Profiles"
msgstr ""
-#: ../../include/nav.php:155
-msgid "Home Page"
+#: ../../include/features.php:27
+msgid "Additional profile sections and selections"
msgstr ""
-#: ../../include/nav.php:159 ../../mod/register.php:220 ../../boot.php:1470
-msgid "Register"
+#: ../../include/features.php:28
+msgid "Profile Import/Export"
msgstr ""
-#: ../../include/nav.php:159
-msgid "Create an account"
+#: ../../include/features.php:28
+msgid "Save and load profile details across sites/channels"
msgstr ""
-#: ../../include/nav.php:164
-msgid "Help and documentation"
+#: ../../include/features.php:29
+msgid "Web Pages"
msgstr ""
-#: ../../include/nav.php:167 ../../include/widgets.php:86
-#: ../../mod/apps.php:33
-msgid "Apps"
+#: ../../include/features.php:29
+msgid "Provide managed web pages on your channel"
msgstr ""
-#: ../../include/nav.php:167
-msgid "Applications, utilities, links, games"
+#: ../../include/features.php:30
+msgid "Private Notes"
msgstr ""
-#: ../../include/nav.php:169
-msgid "Search site content"
+#: ../../include/features.php:30
+msgid "Enables a tool to store notes and reminders"
msgstr ""
-#: ../../include/nav.php:172
-msgid "Channel Locator"
+#: ../../include/features.php:34
+msgid "Navigation Channel Select"
msgstr ""
-#: ../../include/nav.php:183
-msgid "Your matrix"
+#: ../../include/features.php:34
+msgid "Change channels directly from within the navigation dropdown menu"
msgstr ""
-#: ../../include/nav.php:184
-msgid "Mark all matrix notifications seen"
+#: ../../include/features.php:38
+msgid "Extended Identity Sharing"
msgstr ""
-#: ../../include/nav.php:186
-msgid "Channel home"
+#: ../../include/features.php:38
+msgid ""
+"Share your identity with all websites on the internet. When disabled, "
+"identity is only shared with sites in the matrix."
msgstr ""
-#: ../../include/nav.php:187
-msgid "Mark all channel notifications seen"
+#: ../../include/features.php:39
+msgid "Expert Mode"
msgstr ""
-#: ../../include/nav.php:190 ../../mod/connections.php:389
-msgid "Connections"
+#: ../../include/features.php:39
+msgid "Enable Expert Mode to provide advanced configuration options"
msgstr ""
-#: ../../include/nav.php:193
-msgid "Notices"
+#: ../../include/features.php:40
+msgid "Premium Channel"
msgstr ""
-#: ../../include/nav.php:193
-msgid "Notifications"
+#: ../../include/features.php:40
+msgid ""
+"Allows you to set restrictions and terms on those that connect with your "
+"channel"
msgstr ""
-#: ../../include/nav.php:194
-msgid "See all notifications"
+#: ../../include/features.php:45
+msgid "Post Composition Features"
msgstr ""
-#: ../../include/nav.php:195 ../../mod/notifications.php:99
-msgid "Mark all system notifications seen"
+#: ../../include/features.php:47
+msgid "Use Markdown"
msgstr ""
-#: ../../include/nav.php:197
-msgid "Private mail"
+#: ../../include/features.php:47
+msgid "Allow use of \"Markdown\" to format posts"
msgstr ""
-#: ../../include/nav.php:198
-msgid "See all private messages"
+#: ../../include/features.php:49 ../../include/widgets.php:527
+#: ../../mod/sources.php:88
+msgid "Channel Sources"
msgstr ""
-#: ../../include/nav.php:199
-msgid "Mark all private messages seen"
+#: ../../include/features.php:49
+msgid "Automatically import channel content from other channels or feeds"
msgstr ""
-#: ../../include/nav.php:200
-msgid "Inbox"
+#: ../../include/features.php:50
+msgid "Even More Encryption"
msgstr ""
-#: ../../include/nav.php:201
-msgid "Outbox"
+#: ../../include/features.php:50
+msgid ""
+"Allow optional encryption of content end-to-end with a shared secret key"
msgstr ""
-#: ../../include/nav.php:202 ../../include/widgets.php:543
-msgid "New Message"
+#: ../../include/features.php:51
+msgid "Flag Adult Photos"
msgstr ""
-#: ../../include/nav.php:205
-msgid "Event Calendar"
+#: ../../include/features.php:51
+msgid "Provide photo edit option to hide adult photos from default album view"
msgstr ""
-#: ../../include/nav.php:206
-msgid "See all events"
+#: ../../include/features.php:56
+msgid "Network and Stream Filtering"
msgstr ""
-#: ../../include/nav.php:207
-msgid "Mark all events seen"
+#: ../../include/features.php:57
+msgid "Search by Date"
msgstr ""
-#: ../../include/nav.php:209
-msgid "Manage Your Channels"
+#: ../../include/features.php:57
+msgid "Ability to select posts by date ranges"
msgstr ""
-#: ../../include/nav.php:211
-msgid "Account/Channel Settings"
+#: ../../include/features.php:58
+msgid "Collections Filter"
msgstr ""
-#: ../../include/nav.php:219 ../../mod/admin.php:123
-msgid "Admin"
+#: ../../include/features.php:58
+msgid "Enable widget to display Network posts only from selected collections"
msgstr ""
-#: ../../include/nav.php:219
-msgid "Site Setup and Configuration"
+#: ../../include/features.php:59 ../../include/widgets.php:272
+msgid "Saved Searches"
msgstr ""
-#: ../../include/nav.php:244
-msgid "Nothing new here"
+#: ../../include/features.php:59
+msgid "Save search terms for re-use"
msgstr ""
-#: ../../include/nav.php:248
-msgid "Please wait..."
+#: ../../include/features.php:60
+msgid "Network Personal Tab"
msgstr ""
-#: ../../include/bookmarks.php:35
-#, php-format
-msgid "%1$s's bookmarks"
+#: ../../include/features.php:60
+msgid "Enable tab to display only Network posts that you've interacted on"
msgstr ""
-#: ../../include/text.php:321
-msgid "prev"
+#: ../../include/features.php:61
+msgid "Network New Tab"
msgstr ""
-#: ../../include/text.php:323
-msgid "first"
+#: ../../include/features.php:61
+msgid "Enable tab to display all new Network activity"
msgstr ""
-#: ../../include/text.php:352
-msgid "last"
+#: ../../include/features.php:62
+msgid "Affinity Tool"
msgstr ""
-#: ../../include/text.php:355
-msgid "next"
+#: ../../include/features.php:62
+msgid "Filter stream activity by depth of relationships"
msgstr ""
-#: ../../include/text.php:367
-msgid "older"
+#: ../../include/features.php:63
+msgid "Suggest Channels"
msgstr ""
-#: ../../include/text.php:369
-msgid "newer"
+#: ../../include/features.php:63
+msgid "Show channel suggestions"
msgstr ""
-#: ../../include/text.php:736
-msgid "No connections"
+#: ../../include/features.php:68
+msgid "Post/Comment Tools"
msgstr ""
-#: ../../include/text.php:749
-#, php-format
-msgid "%d Connection"
-msgid_plural "%d Connections"
-msgstr[0] ""
-msgstr[1] ""
-
-#: ../../include/text.php:762
-msgid "View Connections"
+#: ../../include/features.php:71
+msgid "Tagging"
msgstr ""
-#: ../../include/text.php:823 ../../include/text.php:837
-#: ../../include/widgets.php:193 ../../mod/rbmark.php:28
-#: ../../mod/rbmark.php:98 ../../mod/filer.php:50 ../../mod/admin.php:1336
-#: ../../mod/admin.php:1357
-msgid "Save"
+#: ../../include/features.php:71
+msgid "Ability to tag existing posts"
msgstr ""
-#: ../../include/text.php:903
-msgid "poke"
+#: ../../include/features.php:72
+msgid "Post Categories"
msgstr ""
-#: ../../include/text.php:903 ../../include/conversation.php:243
-msgid "poked"
+#: ../../include/features.php:72
+msgid "Add categories to your posts"
msgstr ""
-#: ../../include/text.php:904
-msgid "ping"
+#: ../../include/features.php:73 ../../include/contact_widgets.php:57
+#: ../../include/widgets.php:302
+msgid "Saved Folders"
msgstr ""
-#: ../../include/text.php:904
-msgid "pinged"
+#: ../../include/features.php:73
+msgid "Ability to file posts under folders"
msgstr ""
-#: ../../include/text.php:905
-msgid "prod"
+#: ../../include/features.php:74
+msgid "Dislike Posts"
msgstr ""
-#: ../../include/text.php:905
-msgid "prodded"
+#: ../../include/features.php:74
+msgid "Ability to dislike posts/comments"
msgstr ""
-#: ../../include/text.php:906
-msgid "slap"
+#: ../../include/features.php:75
+msgid "Star Posts"
msgstr ""
-#: ../../include/text.php:906
-msgid "slapped"
+#: ../../include/features.php:75
+msgid "Ability to mark special posts with a star indicator"
msgstr ""
-#: ../../include/text.php:907
-msgid "finger"
+#: ../../include/features.php:76
+msgid "Tag Cloud"
msgstr ""
-#: ../../include/text.php:907
-msgid "fingered"
+#: ../../include/features.php:76
+msgid "Provide a personal tag cloud on your channel page"
msgstr ""
-#: ../../include/text.php:908
-msgid "rebuff"
+#: ../../include/RedDAV/RedBrowser.php:106
+#: ../../include/RedDAV/RedBrowser.php:250
+msgid "parent"
msgstr ""
-#: ../../include/text.php:908
-msgid "rebuffed"
+#: ../../include/RedDAV/RedBrowser.php:130
+msgid "Collection"
msgstr ""
-#: ../../include/text.php:917
-msgid "happy"
+#: ../../include/RedDAV/RedBrowser.php:133
+msgid "Principal"
msgstr ""
-#: ../../include/text.php:918
-msgid "sad"
+#: ../../include/RedDAV/RedBrowser.php:136
+msgid "Addressbook"
msgstr ""
-#: ../../include/text.php:919
-msgid "mellow"
+#: ../../include/RedDAV/RedBrowser.php:139
+msgid "Calendar"
msgstr ""
-#: ../../include/text.php:920
-msgid "tired"
+#: ../../include/RedDAV/RedBrowser.php:142
+msgid "Schedule Inbox"
msgstr ""
-#: ../../include/text.php:921
-msgid "perky"
+#: ../../include/RedDAV/RedBrowser.php:145
+msgid "Schedule Outbox"
msgstr ""
-#: ../../include/text.php:922
-msgid "angry"
+#: ../../include/RedDAV/RedBrowser.php:163 ../../include/apps.php:331
+#: ../../include/apps.php:382 ../../include/conversation.php:992
+#: ../../mod/connedit.php:513 ../../mod/photos.php:713
+#: ../../mod/photos.php:1132
+msgid "Unknown"
msgstr ""
-#: ../../include/text.php:923
-msgid "stupified"
+#: ../../include/RedDAV/RedBrowser.php:223
+#, php-format
+msgid "%1$s used"
msgstr ""
-#: ../../include/text.php:924
-msgid "puzzled"
+#: ../../include/RedDAV/RedBrowser.php:228
+#, php-format
+msgid "%1$s used of %2$s (%3$s&#37;)"
msgstr ""
-#: ../../include/text.php:925
-msgid "interested"
+#: ../../include/RedDAV/RedBrowser.php:242 ../../include/apps.php:133
+#: ../../include/conversation.php:1539 ../../include/nav.php:106
+#: ../../mod/fbrowser.php:114
+msgid "Files"
msgstr ""
-#: ../../include/text.php:926
-msgid "bitter"
+#: ../../include/RedDAV/RedBrowser.php:246 ../../mod/settings.php:567
+#: ../../mod/settings.php:593 ../../mod/admin.php:866
+msgid "Name"
msgstr ""
-#: ../../include/text.php:927
-msgid "cheerful"
+#: ../../include/RedDAV/RedBrowser.php:247
+msgid "Type"
msgstr ""
-#: ../../include/text.php:928
-msgid "alive"
+#: ../../include/RedDAV/RedBrowser.php:248
+msgid "Size"
msgstr ""
-#: ../../include/text.php:929
-msgid "annoyed"
+#: ../../include/RedDAV/RedBrowser.php:249
+msgid "Last Modified"
msgstr ""
-#: ../../include/text.php:930
-msgid "anxious"
+#: ../../include/RedDAV/RedBrowser.php:252 ../../include/apps.php:250
+#: ../../include/conversation.php:639 ../../include/ItemObject.php:120
+#: ../../mod/settings.php:628 ../../mod/group.php:176
+#: ../../mod/connedit.php:476 ../../mod/photos.php:1070
+#: ../../mod/thing.php:234 ../../mod/admin.php:730 ../../mod/admin.php:861
+msgid "Delete"
msgstr ""
-#: ../../include/text.php:931
-msgid "cranky"
+#: ../../include/RedDAV/RedBrowser.php:253
+msgid "Total"
msgstr ""
-#: ../../include/text.php:932
-msgid "disturbed"
+#: ../../include/RedDAV/RedBrowser.php:306
+msgid "Create new folder"
msgstr ""
-#: ../../include/text.php:933
-msgid "frustrated"
+#: ../../include/RedDAV/RedBrowser.php:307 ../../mod/mitem.php:169
+#: ../../mod/menu.php:100 ../../mod/new_channel.php:122
+msgid "Create"
msgstr ""
-#: ../../include/text.php:934
-msgid "depressed"
+#: ../../include/RedDAV/RedBrowser.php:308
+msgid "Upload file"
msgstr ""
-#: ../../include/text.php:935
-msgid "motivated"
+#: ../../include/RedDAV/RedBrowser.php:309 ../../mod/photos.php:738
+#: ../../mod/photos.php:1246 ../../mod/profile_photo.php:361
+msgid "Upload"
msgstr ""
-#: ../../include/text.php:936
-msgid "relaxed"
+#: ../../include/bookmarks.php:35
+#, php-format
+msgid "%1$s's bookmarks"
msgstr ""
-#: ../../include/text.php:937
-msgid "surprised"
+#: ../../include/dir_fns.php:68
+msgid "Directory Options"
msgstr ""
-#: ../../include/text.php:1100
-msgid "Monday"
+#: ../../include/dir_fns.php:69
+msgid "Alphabetic"
msgstr ""
-#: ../../include/text.php:1100
-msgid "Tuesday"
+#: ../../include/dir_fns.php:70
+msgid "Reverse Alphabetic"
msgstr ""
-#: ../../include/text.php:1100
-msgid "Wednesday"
+#: ../../include/dir_fns.php:71
+msgid "Newest to Oldest"
msgstr ""
-#: ../../include/text.php:1100
-msgid "Thursday"
+#: ../../include/dir_fns.php:72
+msgid "Oldest to Newest"
msgstr ""
-#: ../../include/text.php:1100
-msgid "Friday"
+#: ../../include/dir_fns.php:73
+msgid "Public Forums Only"
msgstr ""
-#: ../../include/text.php:1100
-msgid "Saturday"
+#: ../../include/dir_fns.php:75
+msgid "Sort"
msgstr ""
-#: ../../include/text.php:1100
-msgid "Sunday"
+#: ../../include/dir_fns.php:91
+msgid "Enable Safe Search"
msgstr ""
-#: ../../include/text.php:1104
-msgid "January"
+#: ../../include/dir_fns.php:93
+msgid "Disable Safe Search"
msgstr ""
-#: ../../include/text.php:1104
-msgid "February"
+#: ../../include/dir_fns.php:95
+msgid "Safe Mode"
msgstr ""
-#: ../../include/text.php:1104
-msgid "March"
+#: ../../include/comanche.php:35 ../../mod/admin.php:353
+#: ../../view/theme/apw/php/config.php:185
+msgid "Default"
msgstr ""
-#: ../../include/text.php:1104
-msgid "April"
+#: ../../include/contact_selectors.php:56
+msgid "Frequently"
msgstr ""
-#: ../../include/text.php:1104
-msgid "May"
+#: ../../include/contact_selectors.php:57
+msgid "Hourly"
msgstr ""
-#: ../../include/text.php:1104
-msgid "June"
+#: ../../include/contact_selectors.php:58
+msgid "Twice daily"
msgstr ""
-#: ../../include/text.php:1104
-msgid "July"
+#: ../../include/contact_selectors.php:59
+msgid "Daily"
msgstr ""
-#: ../../include/text.php:1104
-msgid "August"
+#: ../../include/contact_selectors.php:60
+msgid "Weekly"
msgstr ""
-#: ../../include/text.php:1104
-msgid "September"
+#: ../../include/contact_selectors.php:61
+msgid "Monthly"
msgstr ""
-#: ../../include/text.php:1104
-msgid "October"
+#: ../../include/contact_selectors.php:76
+msgid "Friendica"
msgstr ""
-#: ../../include/text.php:1104
-msgid "November"
+#: ../../include/contact_selectors.php:77
+msgid "OStatus"
msgstr ""
-#: ../../include/text.php:1104
-msgid "December"
+#: ../../include/contact_selectors.php:78
+msgid "RSS/Atom"
msgstr ""
-#: ../../include/text.php:1182
-msgid "unknown.???"
+#: ../../include/contact_selectors.php:79 ../../mod/admin.php:726
+#: ../../mod/admin.php:735 ../../boot.php:1542
+msgid "Email"
msgstr ""
-#: ../../include/text.php:1183
-msgid "bytes"
+#: ../../include/contact_selectors.php:80
+msgid "Diaspora"
msgstr ""
-#: ../../include/text.php:1218
-msgid "remove category"
+#: ../../include/contact_selectors.php:81
+msgid "Facebook"
msgstr ""
-#: ../../include/text.php:1288
-msgid "remove from file"
+#: ../../include/contact_selectors.php:82
+msgid "Zot!"
msgstr ""
-#: ../../include/text.php:1353 ../../include/text.php:1365
-msgid "Click to open/close"
+#: ../../include/contact_selectors.php:83
+msgid "LinkedIn"
msgstr ""
-#: ../../include/text.php:1520 ../../mod/events.php:389
-msgid "Link to Source"
+#: ../../include/contact_selectors.php:84
+msgid "XMPP/IM"
msgstr ""
-#: ../../include/text.php:1539
-msgid "Select a page layout: "
+#: ../../include/contact_selectors.php:85
+msgid "MySpace"
msgstr ""
-#: ../../include/text.php:1542 ../../include/text.php:1607
-msgid "default"
+#: ../../include/Contact.php:107 ../../include/identity.php:840
+#: ../../include/conversation.php:937 ../../include/widgets.php:136
+#: ../../include/widgets.php:175 ../../mod/suggest.php:51
+#: ../../mod/match.php:62 ../../mod/directory.php:264
+msgid "Connect"
msgstr ""
-#: ../../include/text.php:1578
-msgid "Page content type: "
+#: ../../include/Contact.php:123
+msgid "New window"
msgstr ""
-#: ../../include/text.php:1619
-msgid "Select an alternate language"
+#: ../../include/Contact.php:124
+msgid "Open the selected location in a different window or browser tab"
msgstr ""
-#: ../../include/text.php:1740 ../../include/diaspora.php:1860
-#: ../../include/conversation.php:120 ../../mod/subthread.php:72
-#: ../../mod/subthread.php:174 ../../mod/tagger.php:45 ../../mod/like.php:294
-msgid "photo"
+#: ../../include/Contact.php:214 ../../mod/admin.php:646
+#, php-format
+msgid "User '%s' deleted"
msgstr ""
-#: ../../include/text.php:1743 ../../include/conversation.php:123
-#: ../../mod/tagger.php:49
-msgid "event"
+#: ../../include/acl_selectors.php:240
+msgid "Visible to your default audience"
msgstr ""
-#: ../../include/text.php:1746 ../../include/diaspora.php:1860
-#: ../../include/conversation.php:148 ../../mod/subthread.php:72
-#: ../../mod/subthread.php:174 ../../mod/tagger.php:53 ../../mod/like.php:294
-msgid "status"
+#: ../../include/acl_selectors.php:241
+msgid "Show"
msgstr ""
-#: ../../include/text.php:1748 ../../include/conversation.php:150
-#: ../../mod/tagger.php:55
-msgid "comment"
+#: ../../include/acl_selectors.php:242
+msgid "Don't show"
msgstr ""
-#: ../../include/text.php:1753
-msgid "activity"
+#: ../../include/acl_selectors.php:248 ../../mod/events.php:596
+#: ../../mod/chat.php:209 ../../mod/photos.php:588 ../../mod/photos.php:950
+#: ../../mod/filestorage.php:137
+msgid "Permissions"
msgstr ""
-#: ../../include/text.php:2017
-msgid "Design"
+#: ../../include/acl_selectors.php:249 ../../include/ItemObject.php:320
+#: ../../mod/photos.php:1149
+msgid "Close"
msgstr ""
-#: ../../include/text.php:2019
-msgid "Blocks"
+#: ../../include/text.php:320
+msgid "prev"
msgstr ""
-#: ../../include/text.php:2020
-msgid "Menus"
+#: ../../include/text.php:322
+msgid "first"
msgstr ""
-#: ../../include/text.php:2021
-msgid "Layouts"
+#: ../../include/text.php:351
+msgid "last"
msgstr ""
-#: ../../include/text.php:2022
-msgid "Pages"
+#: ../../include/text.php:354
+msgid "next"
msgstr ""
-#: ../../include/taxonomy.php:210
-msgid "Tags"
+#: ../../include/text.php:366
+msgid "older"
msgstr ""
-#: ../../include/taxonomy.php:227
-msgid "Keywords"
+#: ../../include/text.php:368
+msgid "newer"
msgstr ""
-#: ../../include/taxonomy.php:252
-msgid "have"
+#: ../../include/text.php:756
+msgid "No connections"
msgstr ""
-#: ../../include/taxonomy.php:252
-msgid "has"
-msgstr ""
+#: ../../include/text.php:772
+#, php-format
+msgid "%d Connection"
+msgid_plural "%d Connections"
+msgstr[0] ""
+msgstr[1] ""
-#: ../../include/taxonomy.php:253
-msgid "want"
+#: ../../include/text.php:785
+msgid "View Connections"
msgstr ""
-#: ../../include/taxonomy.php:253
-msgid "wants"
+#: ../../include/text.php:842 ../../include/text.php:854
+#: ../../include/apps.php:145 ../../include/nav.php:173
+#: ../../mod/search.php:30
+msgid "Search"
msgstr ""
-#: ../../include/taxonomy.php:254 ../../include/ItemObject.php:212
-msgid "like"
+#: ../../include/text.php:843 ../../include/text.php:855
+#: ../../include/widgets.php:192 ../../mod/rbmark.php:28
+#: ../../mod/rbmark.php:98 ../../mod/filer.php:50 ../../mod/admin.php:1339
+#: ../../mod/admin.php:1360
+msgid "Save"
msgstr ""
-#: ../../include/taxonomy.php:254
-msgid "likes"
+#: ../../include/text.php:919
+msgid "poke"
msgstr ""
-#: ../../include/taxonomy.php:255 ../../include/ItemObject.php:213
-msgid "dislike"
+#: ../../include/text.php:919 ../../include/conversation.php:243
+msgid "poked"
msgstr ""
-#: ../../include/taxonomy.php:255
-msgid "dislikes"
+#: ../../include/text.php:920
+msgid "ping"
msgstr ""
-#: ../../include/taxonomy.php:338 ../../include/identity.php:1012
-#: ../../include/ItemObject.php:138
-msgctxt "noun"
-msgid "Like"
-msgid_plural "Likes"
-msgstr[0] ""
-msgstr[1] ""
-
-#: ../../include/comanche.php:35 ../../view/theme/apw/php/config.php:185
-msgid "Default"
+#: ../../include/text.php:920
+msgid "pinged"
msgstr ""
-#: ../../include/contact_selectors.php:56
-msgid "Frequently"
+#: ../../include/text.php:921
+msgid "prod"
msgstr ""
-#: ../../include/contact_selectors.php:57
-msgid "Hourly"
+#: ../../include/text.php:921
+msgid "prodded"
msgstr ""
-#: ../../include/contact_selectors.php:58
-msgid "Twice daily"
+#: ../../include/text.php:922
+msgid "slap"
msgstr ""
-#: ../../include/contact_selectors.php:59
-msgid "Daily"
+#: ../../include/text.php:922
+msgid "slapped"
msgstr ""
-#: ../../include/contact_selectors.php:60
-msgid "Weekly"
+#: ../../include/text.php:923
+msgid "finger"
msgstr ""
-#: ../../include/contact_selectors.php:61
-msgid "Monthly"
+#: ../../include/text.php:923
+msgid "fingered"
msgstr ""
-#: ../../include/contact_selectors.php:76
-msgid "Friendica"
+#: ../../include/text.php:924
+msgid "rebuff"
msgstr ""
-#: ../../include/contact_selectors.php:77
-msgid "OStatus"
+#: ../../include/text.php:924
+msgid "rebuffed"
msgstr ""
-#: ../../include/contact_selectors.php:78
-msgid "RSS/Atom"
+#: ../../include/text.php:934
+msgid "happy"
msgstr ""
-#: ../../include/contact_selectors.php:79 ../../mod/admin.php:724
-#: ../../mod/admin.php:733 ../../boot.php:1496
-msgid "Email"
+#: ../../include/text.php:935
+msgid "sad"
msgstr ""
-#: ../../include/contact_selectors.php:80
-msgid "Diaspora"
+#: ../../include/text.php:936
+msgid "mellow"
msgstr ""
-#: ../../include/contact_selectors.php:81
-msgid "Facebook"
+#: ../../include/text.php:937
+msgid "tired"
msgstr ""
-#: ../../include/contact_selectors.php:82
-msgid "Zot!"
+#: ../../include/text.php:938
+msgid "perky"
msgstr ""
-#: ../../include/contact_selectors.php:83
-msgid "LinkedIn"
+#: ../../include/text.php:939
+msgid "angry"
msgstr ""
-#: ../../include/contact_selectors.php:84
-msgid "XMPP/IM"
+#: ../../include/text.php:940
+msgid "stupified"
msgstr ""
-#: ../../include/contact_selectors.php:85
-msgid "MySpace"
+#: ../../include/text.php:941
+msgid "puzzled"
msgstr ""
-#: ../../include/contact_widgets.php:14
-#, php-format
-msgid "%d invitation available"
-msgid_plural "%d invitations available"
-msgstr[0] ""
-msgstr[1] ""
+#: ../../include/text.php:942
+msgid "interested"
+msgstr ""
-#: ../../include/contact_widgets.php:19 ../../mod/admin.php:417
-msgid "Advanced"
+#: ../../include/text.php:943
+msgid "bitter"
msgstr ""
-#: ../../include/contact_widgets.php:22
-msgid "Find Channels"
+#: ../../include/text.php:944
+msgid "cheerful"
msgstr ""
-#: ../../include/contact_widgets.php:23
-msgid "Enter name or interest"
+#: ../../include/text.php:945
+msgid "alive"
msgstr ""
-#: ../../include/contact_widgets.php:24
-msgid "Connect/Follow"
+#: ../../include/text.php:946
+msgid "annoyed"
msgstr ""
-#: ../../include/contact_widgets.php:25
-msgid "Examples: Robert Morgenstein, Fishing"
+#: ../../include/text.php:947
+msgid "anxious"
msgstr ""
-#: ../../include/contact_widgets.php:26 ../../mod/connections.php:395
-#: ../../mod/directory.php:222 ../../mod/directory.php:227
-msgid "Find"
+#: ../../include/text.php:948
+msgid "cranky"
msgstr ""
-#: ../../include/contact_widgets.php:27 ../../mod/suggest.php:59
-msgid "Channel Suggestions"
+#: ../../include/text.php:949
+msgid "disturbed"
msgstr ""
-#: ../../include/contact_widgets.php:29
-msgid "Random Profile"
+#: ../../include/text.php:950
+msgid "frustrated"
msgstr ""
-#: ../../include/contact_widgets.php:30
-msgid "Invite Friends"
+#: ../../include/text.php:951
+msgid "depressed"
msgstr ""
-#: ../../include/contact_widgets.php:32
-msgid "Exammple: name=fred and country=iceland"
+#: ../../include/text.php:952
+msgid "motivated"
msgstr ""
-#: ../../include/contact_widgets.php:33
-msgid "Advanced Find"
+#: ../../include/text.php:953
+msgid "relaxed"
msgstr ""
-#: ../../include/contact_widgets.php:58 ../../include/features.php:72
-#: ../../include/widgets.php:303
-msgid "Saved Folders"
+#: ../../include/text.php:954
+msgid "surprised"
msgstr ""
-#: ../../include/contact_widgets.php:61 ../../include/contact_widgets.php:96
-#: ../../include/widgets.php:306
-msgid "Everything"
+#: ../../include/text.php:1113
+msgid "Monday"
msgstr ""
-#: ../../include/contact_widgets.php:93 ../../include/widgets.php:29
-msgid "Categories"
+#: ../../include/text.php:1113
+msgid "Tuesday"
msgstr ""
-#: ../../include/contact_widgets.php:126
-#, php-format
-msgid "%d connection in common"
-msgid_plural "%d connections in common"
-msgstr[0] ""
-msgstr[1] ""
+#: ../../include/text.php:1113
+msgid "Wednesday"
+msgstr ""
-#: ../../include/contact_widgets.php:131
-msgid "show more"
+#: ../../include/text.php:1113
+msgid "Thursday"
msgstr ""
-#: ../../include/event.php:326
-msgid "This event has been added to your calendar."
+#: ../../include/text.php:1113
+msgid "Friday"
msgstr ""
-#: ../../include/account.php:23
-msgid "Not a valid email address"
+#: ../../include/text.php:1113
+msgid "Saturday"
msgstr ""
-#: ../../include/account.php:25
-msgid "Your email domain is not among those allowed on this site"
+#: ../../include/text.php:1113
+msgid "Sunday"
msgstr ""
-#: ../../include/account.php:31
-msgid "Your email address is already registered at this site."
+#: ../../include/text.php:1117
+msgid "January"
msgstr ""
-#: ../../include/account.php:64
-msgid "An invitation is required."
+#: ../../include/text.php:1117
+msgid "February"
msgstr ""
-#: ../../include/account.php:68
-msgid "Invitation could not be verified."
+#: ../../include/text.php:1117
+msgid "March"
msgstr ""
-#: ../../include/account.php:119
-msgid "Please enter the required information."
+#: ../../include/text.php:1117
+msgid "April"
msgstr ""
-#: ../../include/account.php:187
-msgid "Failed to store account information."
+#: ../../include/text.php:1117
+msgid "May"
msgstr ""
-#: ../../include/account.php:245
-#, php-format
-msgid "Registration confirmation for %s"
+#: ../../include/text.php:1117
+msgid "June"
msgstr ""
-#: ../../include/account.php:313
-#, php-format
-msgid "Registration request at %s"
+#: ../../include/text.php:1117
+msgid "July"
msgstr ""
-#: ../../include/account.php:315 ../../include/account.php:342
-#: ../../include/account.php:399
-msgid "Administrator"
+#: ../../include/text.php:1117
+msgid "August"
msgstr ""
-#: ../../include/account.php:337
-msgid "your registration password"
+#: ../../include/text.php:1117
+msgid "September"
msgstr ""
-#: ../../include/account.php:340 ../../include/account.php:397
-#, php-format
-msgid "Registration details for %s"
+#: ../../include/text.php:1117
+msgid "October"
msgstr ""
-#: ../../include/account.php:406
-msgid "Account approved."
+#: ../../include/text.php:1117
+msgid "November"
msgstr ""
-#: ../../include/account.php:440
-#, php-format
-msgid "Registration revoked for %s"
+#: ../../include/text.php:1117
+msgid "December"
msgstr ""
-#: ../../include/account.php:486
-msgid "Account verified. Please login."
+#: ../../include/text.php:1195
+msgid "unknown.???"
msgstr ""
-#: ../../include/account.php:623 ../../include/account.php:625
-msgid "Click here to upgrade."
+#: ../../include/text.php:1196
+msgid "bytes"
msgstr ""
-#: ../../include/account.php:631
-msgid "This action exceeds the limits set by your subscription plan."
+#: ../../include/text.php:1232
+msgid "remove category"
msgstr ""
-#: ../../include/account.php:636
-msgid "This action is not available under your subscription plan."
+#: ../../include/text.php:1301
+msgid "remove from file"
msgstr ""
-#: ../../include/diaspora.php:1876 ../../include/conversation.php:164
-#: ../../mod/like.php:331
-#, php-format
-msgid "%1$s likes %2$s's %3$s"
+#: ../../include/text.php:1377 ../../include/text.php:1388
+msgid "Click to open/close"
msgstr ""
-#: ../../include/datetime.php:43 ../../include/datetime.php:45
-msgid "Miscellaneous"
+#: ../../include/text.php:1536 ../../mod/events.php:414
+msgid "Link to Source"
msgstr ""
-#: ../../include/datetime.php:152 ../../include/datetime.php:284
-msgid "year"
+#: ../../include/text.php:1555
+msgid "Select a page layout: "
msgstr ""
-#: ../../include/datetime.php:157 ../../include/datetime.php:285
-msgid "month"
+#: ../../include/text.php:1558 ../../include/text.php:1618
+msgid "default"
msgstr ""
-#: ../../include/datetime.php:162 ../../include/datetime.php:287
-msgid "day"
+#: ../../include/text.php:1591
+msgid "Page content type: "
msgstr ""
-#: ../../include/datetime.php:275
-msgid "never"
+#: ../../include/text.php:1630
+msgid "Select an alternate language"
msgstr ""
-#: ../../include/datetime.php:281
-msgid "less than a second ago"
+#: ../../include/text.php:1749 ../../include/conversation.php:120
+#: ../../include/diaspora.php:1928 ../../mod/subthread.php:72
+#: ../../mod/subthread.php:174 ../../mod/like.php:290 ../../mod/tagger.php:45
+msgid "photo"
msgstr ""
-#: ../../include/datetime.php:284
-msgid "years"
+#: ../../include/text.php:1752 ../../include/conversation.php:123
+#: ../../mod/tagger.php:49
+msgid "event"
msgstr ""
-#: ../../include/datetime.php:285
-msgid "months"
+#: ../../include/text.php:1755 ../../include/conversation.php:148
+#: ../../include/diaspora.php:1928 ../../mod/subthread.php:72
+#: ../../mod/subthread.php:174 ../../mod/like.php:290 ../../mod/tagger.php:53
+msgid "status"
msgstr ""
-#: ../../include/datetime.php:286
-msgid "week"
+#: ../../include/text.php:1757 ../../include/conversation.php:150
+#: ../../mod/tagger.php:55
+msgid "comment"
msgstr ""
-#: ../../include/datetime.php:286
-msgid "weeks"
+#: ../../include/text.php:1762
+msgid "activity"
msgstr ""
-#: ../../include/datetime.php:287
-msgid "days"
+#: ../../include/text.php:2049
+msgid "Design"
msgstr ""
-#: ../../include/datetime.php:288
-msgid "hour"
+#: ../../include/text.php:2052
+msgid "Blocks"
msgstr ""
-#: ../../include/datetime.php:288
-msgid "hours"
+#: ../../include/text.php:2053
+msgid "Menus"
msgstr ""
-#: ../../include/datetime.php:289
-msgid "minute"
+#: ../../include/text.php:2054
+msgid "Layouts"
msgstr ""
-#: ../../include/datetime.php:289
-msgid "minutes"
+#: ../../include/text.php:2055
+msgid "Pages"
msgstr ""
-#: ../../include/datetime.php:290
-msgid "second"
+#: ../../include/contact_widgets.php:14
+#, php-format
+msgid "%d invitation available"
+msgid_plural "%d invitations available"
+msgstr[0] ""
+msgstr[1] ""
+
+#: ../../include/contact_widgets.php:19 ../../mod/admin.php:416
+msgid "Advanced"
msgstr ""
-#: ../../include/datetime.php:290
-msgid "seconds"
+#: ../../include/contact_widgets.php:22
+msgid "Find Channels"
msgstr ""
-#: ../../include/datetime.php:299
-#, php-format
-msgid "%1$d %2$s ago"
+#: ../../include/contact_widgets.php:23
+msgid "Enter name or interest"
msgstr ""
-#: ../../include/datetime.php:504
-#, php-format
-msgid "%1$s's birthday"
+#: ../../include/contact_widgets.php:24
+msgid "Connect/Follow"
msgstr ""
-#: ../../include/datetime.php:505
-#, php-format
-msgid "Happy Birthday %1$s"
+#: ../../include/contact_widgets.php:25
+msgid "Examples: Robert Morgenstein, Fishing"
msgstr ""
-#: ../../include/dir_fns.php:56
-msgid "Sort Options"
+#: ../../include/contact_widgets.php:26 ../../mod/connections.php:412
+#: ../../mod/directory.php:317 ../../mod/directory.php:322
+msgid "Find"
msgstr ""
-#: ../../include/dir_fns.php:57
-msgid "Alphabetic"
+#: ../../include/contact_widgets.php:27 ../../mod/suggest.php:59
+#: ../../mod/directory.php:321
+msgid "Channel Suggestions"
msgstr ""
-#: ../../include/dir_fns.php:58
-msgid "Reverse Alphabetic"
+#: ../../include/contact_widgets.php:29
+msgid "Random Profile"
msgstr ""
-#: ../../include/dir_fns.php:59
-msgid "Newest to Oldest"
+#: ../../include/contact_widgets.php:30
+msgid "Invite Friends"
msgstr ""
-#: ../../include/dir_fns.php:71
-msgid "Enable Safe Search"
+#: ../../include/contact_widgets.php:32
+msgid "Advanced example: name=fred and country=iceland"
msgstr ""
-#: ../../include/dir_fns.php:73
-msgid "Disable Safe Search"
+#: ../../include/contact_widgets.php:60 ../../include/contact_widgets.php:95
+#: ../../include/widgets.php:305
+msgid "Everything"
msgstr ""
-#: ../../include/dir_fns.php:75
-msgid "Safe Mode"
+#: ../../include/contact_widgets.php:125
+#, php-format
+msgid "%d connection in common"
+msgid_plural "%d connections in common"
+msgstr[0] ""
+msgstr[1] ""
+
+#: ../../include/contact_widgets.php:130
+msgid "show more"
msgstr ""
#: ../../include/enotify.php:41
@@ -1598,1217 +1603,1106 @@ msgstr ""
msgid "[Red:Notify]"
msgstr ""
-#: ../../include/reddav.php:1145 ../../include/reddav.php:1288
-msgid "parent"
+#: ../../include/event.php:376
+msgid "This event has been added to your calendar."
msgstr ""
-#: ../../include/reddav.php:1169
-msgid "Collection"
+#: ../../include/group.php:26
+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/reddav.php:1172
-msgid "Principal"
+#: ../../include/group.php:235
+msgid "Default privacy group for new contacts"
msgstr ""
-#: ../../include/reddav.php:1175
-msgid "Addressbook"
+#: ../../include/group.php:254 ../../mod/admin.php:735
+msgid "All Channels"
msgstr ""
-#: ../../include/reddav.php:1178
-msgid "Calendar"
+#: ../../include/group.php:276
+msgid "edit"
msgstr ""
-#: ../../include/reddav.php:1181
-msgid "Schedule Inbox"
+#: ../../include/group.php:298
+msgid "Collections"
msgstr ""
-#: ../../include/reddav.php:1184
-msgid "Schedule Outbox"
+#: ../../include/group.php:299
+msgid "Edit collection"
msgstr ""
-#: ../../include/reddav.php:1262
-#, php-format
-msgid "%1$s used"
+#: ../../include/group.php:300
+msgid "Create a new collection"
msgstr ""
-#: ../../include/reddav.php:1267
-#, php-format
-msgid "%1$s used of %2$s (%3$s&#37;)"
+#: ../../include/group.php:301
+msgid "Channels not in any collection"
msgstr ""
-#: ../../include/reddav.php:1284 ../../mod/settings.php:519
-#: ../../mod/settings.php:545 ../../mod/admin.php:863
-msgid "Name"
+#: ../../include/group.php:303 ../../include/widgets.php:273
+msgid "add"
msgstr ""
-#: ../../include/reddav.php:1285
-msgid "Type"
+#: ../../include/identity.php:31 ../../mod/item.php:1112
+msgid "Unable to obtain identity information from database"
msgstr ""
-#: ../../include/reddav.php:1286
-msgid "Size"
+#: ../../include/identity.php:66
+msgid "Empty name"
msgstr ""
-#: ../../include/reddav.php:1287
-msgid "Last Modified"
+#: ../../include/identity.php:68
+msgid "Name too long"
msgstr ""
-#: ../../include/reddav.php:1291
-msgid "Total"
+#: ../../include/identity.php:169
+msgid "No account identifier"
msgstr ""
-#: ../../include/reddav.php:1344
-msgid "Create new folder"
+#: ../../include/identity.php:182
+msgid "Nickname is required."
msgstr ""
-#: ../../include/reddav.php:1345 ../../mod/mitem.php:142 ../../mod/menu.php:84
-#: ../../mod/new_channel.php:117
-msgid "Create"
+#: ../../include/identity.php:196
+msgid "Reserved nickname. Please choose another."
msgstr ""
-#: ../../include/reddav.php:1346
-msgid "Upload file"
+#: ../../include/identity.php:201 ../../include/dimport.php:34
+msgid ""
+"Nickname has unsupported characters or is already being used on this site."
msgstr ""
-#: ../../include/reddav.php:1347 ../../mod/profile_photo.php:361
-msgid "Upload"
+#: ../../include/identity.php:283
+msgid "Unable to retrieve created identity"
msgstr ""
-#: ../../include/conversation.php:126 ../../mod/like.php:89
-msgid "channel"
+#: ../../include/identity.php:343
+msgid "Default Profile"
msgstr ""
-#: ../../include/conversation.php:167 ../../mod/like.php:333
-#, php-format
-msgid "%1$s doesn't like %2$s's %3$s"
+#: ../../include/identity.php:387 ../../include/identity.php:388
+#: ../../include/identity.php:395 ../../include/widgets.php:428
+#: ../../include/profile_selectors.php:80 ../../mod/settings.php:320
+#: ../../mod/settings.php:324 ../../mod/settings.php:325
+#: ../../mod/settings.php:328 ../../mod/settings.php:339
+#: ../../mod/connedit.php:510
+msgid "Friends"
msgstr ""
-#: ../../include/conversation.php:204
-#, php-format
-msgid "%1$s is now connected with %2$s"
+#: ../../include/identity.php:643
+msgid "Requested channel is not available."
msgstr ""
-#: ../../include/conversation.php:239
-#, php-format
-msgid "%1$s poked %2$s"
+#: ../../include/identity.php:691 ../../mod/achievements.php:11
+#: ../../mod/profile.php:16 ../../mod/webpages.php:29 ../../mod/blocks.php:29
+#: ../../mod/editblock.php:29 ../../mod/editlayout.php:28
+#: ../../mod/editwebpage.php:28 ../../mod/filestorage.php:48
+#: ../../mod/connect.php:13 ../../mod/layouts.php:29 ../../mod/hcard.php:8
+msgid "Requested profile is not available."
msgstr ""
-#: ../../include/conversation.php:261 ../../mod/mood.php:63
-#, php-format
-msgctxt "mood"
-msgid "%1$s is %2$s"
+#: ../../include/identity.php:854 ../../mod/profiles.php:740
+msgid "Change profile photo"
msgstr ""
-#: ../../include/conversation.php:647 ../../include/ItemObject.php:118
-msgid "Select"
+#: ../../include/identity.php:860
+msgid "Profiles"
msgstr ""
-#: ../../include/conversation.php:655 ../../include/ItemObject.php:89
-#: ../../mod/photos.php:850
-msgid "Private Message"
+#: ../../include/identity.php:860
+msgid "Manage/edit profiles"
msgstr ""
-#: ../../include/conversation.php:662 ../../include/ItemObject.php:186
-msgid "Message is verified"
+#: ../../include/identity.php:861 ../../mod/profiles.php:741
+msgid "Create New Profile"
msgstr ""
-#: ../../include/conversation.php:682
-#, php-format
-msgid "View %s's profile @ %s"
+#: ../../include/identity.php:864 ../../include/nav.php:103
+msgid "Edit Profile"
msgstr ""
-#: ../../include/conversation.php:696
-msgid "Categories:"
+#: ../../include/identity.php:875 ../../mod/profiles.php:752
+msgid "Profile Image"
msgstr ""
-#: ../../include/conversation.php:697
-msgid "Filed under:"
+#: ../../include/identity.php:878
+msgid "visible to everybody"
msgstr ""
-#: ../../include/conversation.php:706 ../../include/ItemObject.php:255
-#, php-format
-msgid " from %s"
+#: ../../include/identity.php:879 ../../mod/profiles.php:635
+#: ../../mod/profiles.php:756
+msgid "Edit visibility"
msgstr ""
-#: ../../include/conversation.php:709 ../../include/ItemObject.php:258
-#, php-format
-msgid "last edited: %s"
+#: ../../include/identity.php:895 ../../include/identity.php:1132
+msgid "Gender:"
msgstr ""
-#: ../../include/conversation.php:710 ../../include/ItemObject.php:259
-#, php-format
-msgid "Expires: %s"
+#: ../../include/identity.php:896 ../../include/identity.php:1176
+msgid "Status:"
msgstr ""
-#: ../../include/conversation.php:725
-msgid "View in context"
+#: ../../include/identity.php:897 ../../include/identity.php:1187
+msgid "Homepage:"
msgstr ""
-#: ../../include/conversation.php:727 ../../include/conversation.php:1148
-#: ../../include/ItemObject.php:299 ../../mod/editblock.php:120
-#: ../../mod/editlayout.php:115 ../../mod/editpost.php:121
-#: ../../mod/editwebpage.php:152 ../../mod/photos.php:983
-#: ../../mod/mail.php:231 ../../mod/mail.php:346
-msgid "Please wait"
+#: ../../include/identity.php:898
+msgid "Online Now"
msgstr ""
-#: ../../include/conversation.php:854
-msgid "remove"
+#: ../../include/identity.php:976 ../../include/identity.php:1056
+#: ../../mod/ping.php:326
+msgid "g A l F d"
msgstr ""
-#: ../../include/conversation.php:858
-msgid "Loading..."
+#: ../../include/identity.php:977 ../../include/identity.php:1057
+msgid "F d"
msgstr ""
-#: ../../include/conversation.php:859
-msgid "Delete Selected Items"
+#: ../../include/identity.php:1022 ../../include/identity.php:1097
+#: ../../mod/ping.php:348
+msgid "[today]"
msgstr ""
-#: ../../include/conversation.php:954
-msgid "View Source"
+#: ../../include/identity.php:1034
+msgid "Birthday Reminders"
msgstr ""
-#: ../../include/conversation.php:955
-msgid "Follow Thread"
+#: ../../include/identity.php:1035
+msgid "Birthdays this week:"
msgstr ""
-#: ../../include/conversation.php:956
-msgid "View Status"
+#: ../../include/identity.php:1090
+msgid "[No description]"
msgstr ""
-#: ../../include/conversation.php:958
-msgid "View Photos"
+#: ../../include/identity.php:1108
+msgid "Event Reminders"
msgstr ""
-#: ../../include/conversation.php:959
-msgid "Matrix Activity"
+#: ../../include/identity.php:1109
+msgid "Events this week:"
msgstr ""
-#: ../../include/conversation.php:960 ../../include/identity.php:706
-#: ../../include/widgets.php:135 ../../include/widgets.php:175
-#: ../../include/Contact.php:107 ../../mod/directory.php:183
-#: ../../mod/dirprofile.php:164 ../../mod/suggest.php:51
-#: ../../mod/match.php:62
-msgid "Connect"
+#: ../../include/identity.php:1122 ../../include/identity.php:1251
+#: ../../include/apps.php:136 ../../mod/profperm.php:112
+msgid "Profile"
msgstr ""
-#: ../../include/conversation.php:961
-msgid "Edit Contact"
+#: ../../include/identity.php:1130 ../../mod/settings.php:1012
+msgid "Full Name:"
msgstr ""
-#: ../../include/conversation.php:962
-msgid "Send PM"
+#: ../../include/identity.php:1137
+msgid "Like this channel"
msgstr ""
-#: ../../include/conversation.php:1019
-#, php-format
-msgid "%s likes this."
+#: ../../include/identity.php:1161
+msgid "j F, Y"
msgstr ""
-#: ../../include/conversation.php:1019
-#, php-format
-msgid "%s doesn't like this."
+#: ../../include/identity.php:1162
+msgid "j F"
msgstr ""
-#: ../../include/conversation.php:1023
-#, 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:1025
-#, 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:1031
-msgid "and"
+#: ../../include/identity.php:1169
+msgid "Birthday:"
msgstr ""
-#: ../../include/conversation.php:1034
-#, php-format
-msgid ", and %d other people"
-msgid_plural ", and %d other people"
-msgstr[0] ""
-msgstr[1] ""
-
-#: ../../include/conversation.php:1035
-#, php-format
-msgid "%s like this."
+#: ../../include/identity.php:1173
+msgid "Age:"
msgstr ""
-#: ../../include/conversation.php:1035
+#: ../../include/identity.php:1182
#, php-format
-msgid "%s don't like this."
-msgstr ""
-
-#: ../../include/conversation.php:1092
-msgid "Visible to <strong>everybody</strong>"
-msgstr ""
-
-#: ../../include/conversation.php:1093 ../../mod/mail.php:167
-#: ../../mod/mail.php:279
-msgid "Please enter a link URL:"
-msgstr ""
-
-#: ../../include/conversation.php:1094
-msgid "Please enter a video link/URL:"
-msgstr ""
-
-#: ../../include/conversation.php:1095
-msgid "Please enter an audio link/URL:"
-msgstr ""
-
-#: ../../include/conversation.php:1096
-msgid "Tag term:"
+msgid "for %1$d %2$s"
msgstr ""
-#: ../../include/conversation.php:1097 ../../mod/filer.php:49
-msgid "Save to Folder:"
+#: ../../include/identity.php:1185 ../../mod/profiles.php:657
+msgid "Sexual Preference:"
msgstr ""
-#: ../../include/conversation.php:1098
-msgid "Where are you right now?"
+#: ../../include/identity.php:1189 ../../mod/profiles.php:659
+msgid "Hometown:"
msgstr ""
-#: ../../include/conversation.php:1099 ../../mod/editpost.php:52
-#: ../../mod/mail.php:168 ../../mod/mail.php:280
-msgid "Expires YYYY-MM-DD HH:MM"
+#: ../../include/identity.php:1191
+msgid "Tags:"
msgstr ""
-#: ../../include/conversation.php:1123 ../../mod/photos.php:982
-#: ../../mod/layouts.php:122
-msgid "Share"
+#: ../../include/identity.php:1193 ../../mod/profiles.php:660
+msgid "Political Views:"
msgstr ""
-#: ../../include/conversation.php:1125 ../../mod/editwebpage.php:139
-msgid "Page link title"
+#: ../../include/identity.php:1195
+msgid "Religion:"
msgstr ""
-#: ../../include/conversation.php:1128
-msgid "Post as"
+#: ../../include/identity.php:1197
+msgid "About:"
msgstr ""
-#: ../../include/conversation.php:1129 ../../mod/editblock.php:112
-#: ../../mod/editlayout.php:107 ../../mod/editpost.php:113
-#: ../../mod/editwebpage.php:144 ../../mod/mail.php:228 ../../mod/mail.php:342
-msgid "Upload photo"
+#: ../../include/identity.php:1199
+msgid "Hobbies/Interests:"
msgstr ""
-#: ../../include/conversation.php:1130
-msgid "upload photo"
+#: ../../include/identity.php:1201 ../../mod/profiles.php:663
+msgid "Likes:"
msgstr ""
-#: ../../include/conversation.php:1131 ../../mod/editblock.php:113
-#: ../../mod/editlayout.php:108 ../../mod/editpost.php:114
-#: ../../mod/editwebpage.php:145 ../../mod/mail.php:229 ../../mod/mail.php:343
-msgid "Attach file"
+#: ../../include/identity.php:1203 ../../mod/profiles.php:664
+msgid "Dislikes:"
msgstr ""
-#: ../../include/conversation.php:1132
-msgid "attach file"
+#: ../../include/identity.php:1206
+msgid "Contact information and Social Networks:"
msgstr ""
-#: ../../include/conversation.php:1133 ../../mod/editblock.php:114
-#: ../../mod/editlayout.php:109 ../../mod/editpost.php:115
-#: ../../mod/editwebpage.php:146 ../../mod/mail.php:230 ../../mod/mail.php:344
-msgid "Insert web link"
+#: ../../include/identity.php:1218
+msgid "My other channels:"
msgstr ""
-#: ../../include/conversation.php:1134
-msgid "web link"
+#: ../../include/identity.php:1221
+msgid "Musical interests:"
msgstr ""
-#: ../../include/conversation.php:1135
-msgid "Insert video link"
+#: ../../include/identity.php:1223
+msgid "Books, literature:"
msgstr ""
-#: ../../include/conversation.php:1136
-msgid "video link"
+#: ../../include/identity.php:1225
+msgid "Television:"
msgstr ""
-#: ../../include/conversation.php:1137
-msgid "Insert audio link"
+#: ../../include/identity.php:1227
+msgid "Film/dance/culture/entertainment:"
msgstr ""
-#: ../../include/conversation.php:1138
-msgid "audio link"
+#: ../../include/identity.php:1229
+msgid "Love/Romance:"
msgstr ""
-#: ../../include/conversation.php:1139 ../../mod/editblock.php:118
-#: ../../mod/editlayout.php:113 ../../mod/editpost.php:119
-#: ../../mod/editwebpage.php:150
-msgid "Set your location"
+#: ../../include/identity.php:1231
+msgid "Work/employment:"
msgstr ""
-#: ../../include/conversation.php:1140
-msgid "set location"
+#: ../../include/identity.php:1233
+msgid "School/education:"
msgstr ""
-#: ../../include/conversation.php:1141 ../../mod/editblock.php:119
-#: ../../mod/editlayout.php:114 ../../mod/editpost.php:120
-#: ../../mod/editwebpage.php:151
-msgid "Clear browser location"
+#: ../../include/identity.php:1253
+msgid "Like this thing"
msgstr ""
-#: ../../include/conversation.php:1142
-msgid "clear location"
+#: ../../include/account.php:23
+msgid "Not a valid email address"
msgstr ""
-#: ../../include/conversation.php:1144 ../../mod/editblock.php:132
-#: ../../mod/editlayout.php:126 ../../mod/editpost.php:132
-#: ../../mod/editwebpage.php:167
-msgid "Set title"
+#: ../../include/account.php:25
+msgid "Your email domain is not among those allowed on this site"
msgstr ""
-#: ../../include/conversation.php:1147 ../../mod/editblock.php:135
-#: ../../mod/editlayout.php:129 ../../mod/editpost.php:134
-#: ../../mod/editwebpage.php:169
-msgid "Categories (comma-separated list)"
+#: ../../include/account.php:31
+msgid "Your email address is already registered at this site."
msgstr ""
-#: ../../include/conversation.php:1149 ../../mod/editblock.php:121
-#: ../../mod/editlayout.php:116 ../../mod/editpost.php:122
-#: ../../mod/editwebpage.php:153
-msgid "Permission settings"
+#: ../../include/account.php:64
+msgid "An invitation is required."
msgstr ""
-#: ../../include/conversation.php:1150
-msgid "permissions"
+#: ../../include/account.php:68
+msgid "Invitation could not be verified."
msgstr ""
-#: ../../include/conversation.php:1157 ../../mod/editblock.php:129
-#: ../../mod/editlayout.php:123 ../../mod/editpost.php:129
-#: ../../mod/editwebpage.php:162
-msgid "Public post"
+#: ../../include/account.php:119
+msgid "Please enter the required information."
msgstr ""
-#: ../../include/conversation.php:1159 ../../mod/editblock.php:136
-#: ../../mod/editlayout.php:130 ../../mod/editpost.php:135
-#: ../../mod/editwebpage.php:170
-msgid "Example: bob@example.com, mary@example.com"
+#: ../../include/account.php:187
+msgid "Failed to store account information."
msgstr ""
-#: ../../include/conversation.php:1172 ../../mod/editblock.php:146
-#: ../../mod/editlayout.php:140 ../../mod/editpost.php:146
-#: ../../mod/editwebpage.php:179 ../../mod/mail.php:235 ../../mod/mail.php:349
-msgid "Set expiration date"
+#: ../../include/account.php:245
+#, php-format
+msgid "Registration confirmation for %s"
msgstr ""
-#: ../../include/conversation.php:1174 ../../include/ItemObject.php:600
-#: ../../mod/editpost.php:148 ../../mod/mail.php:237 ../../mod/mail.php:351
-msgid "Encrypt text"
+#: ../../include/account.php:313
+#, php-format
+msgid "Registration request at %s"
msgstr ""
-#: ../../include/conversation.php:1176 ../../mod/editpost.php:150
-#: ../../mod/events.php:516
-msgid "OK"
+#: ../../include/account.php:315 ../../include/account.php:342
+#: ../../include/account.php:399
+msgid "Administrator"
msgstr ""
-#: ../../include/conversation.php:1177 ../../mod/settings.php:518
-#: ../../mod/settings.php:544 ../../mod/editpost.php:151
-#: ../../mod/fbrowser.php:82 ../../mod/fbrowser.php:117
-#: ../../mod/events.php:515 ../../mod/tagrm.php:11 ../../mod/tagrm.php:94
-msgid "Cancel"
+#: ../../include/account.php:337
+msgid "your registration password"
msgstr ""
-#: ../../include/conversation.php:1419
-msgid "Discover"
+#: ../../include/account.php:340 ../../include/account.php:397
+#, php-format
+msgid "Registration details for %s"
msgstr ""
-#: ../../include/conversation.php:1422
-msgid "Imported public streams"
+#: ../../include/account.php:406
+msgid "Account approved."
msgstr ""
-#: ../../include/conversation.php:1427
-msgid "Commented Order"
+#: ../../include/account.php:440
+#, php-format
+msgid "Registration revoked for %s"
msgstr ""
-#: ../../include/conversation.php:1430
-msgid "Sort by Comment Date"
+#: ../../include/account.php:486
+msgid "Account verified. Please login."
msgstr ""
-#: ../../include/conversation.php:1434
-msgid "Posted Order"
+#: ../../include/account.php:648 ../../include/account.php:650
+msgid "Click here to upgrade."
msgstr ""
-#: ../../include/conversation.php:1437
-msgid "Sort by Post Date"
+#: ../../include/account.php:656
+msgid "This action exceeds the limits set by your subscription plan."
msgstr ""
-#: ../../include/conversation.php:1442 ../../include/widgets.php:89
-msgid "Personal"
+#: ../../include/account.php:661
+msgid "This action is not available under your subscription plan."
msgstr ""
-#: ../../include/conversation.php:1445
-msgid "Posts that mention or involve you"
+#: ../../include/follow.php:28
+msgid "Channel is blocked on this site."
msgstr ""
-#: ../../include/conversation.php:1451 ../../mod/connections.php:211
-#: ../../mod/connections.php:224 ../../mod/menu.php:61
-msgid "New"
+#: ../../include/follow.php:33
+msgid "Channel location missing."
msgstr ""
-#: ../../include/conversation.php:1454
-msgid "Activity Stream - by date"
+#: ../../include/follow.php:82
+msgid "Response from remote channel was incomplete."
msgstr ""
-#: ../../include/conversation.php:1460
-msgid "Starred"
+#: ../../include/follow.php:99
+msgid "Channel was deleted and no longer exists."
msgstr ""
-#: ../../include/conversation.php:1463
-msgid "Favourite Posts"
+#: ../../include/follow.php:135 ../../include/follow.php:202
+msgid "Protocol disabled."
msgstr ""
-#: ../../include/conversation.php:1470
-msgid "Spam"
+#: ../../include/follow.php:176
+msgid "Channel discovery failed."
msgstr ""
-#: ../../include/conversation.php:1473
-msgid "Posts flagged as SPAM"
+#: ../../include/follow.php:192
+msgid "local account not found."
msgstr ""
-#: ../../include/conversation.php:1509 ../../mod/admin.php:862
-msgid "Channel"
+#: ../../include/follow.php:220
+msgid "Cannot connect to yourself."
msgstr ""
-#: ../../include/conversation.php:1512
-msgid "Status Messages and Posts"
+#: ../../include/api.php:1084
+msgid "Public Timeline"
msgstr ""
-#: ../../include/conversation.php:1521
-msgid "About"
+#: ../../include/apps.php:126
+msgid "Site Admin"
msgstr ""
-#: ../../include/conversation.php:1524
-msgid "Profile Details"
+#: ../../include/apps.php:127 ../../include/conversation.php:1565
+#: ../../include/nav.php:117
+msgid "Bookmarks"
msgstr ""
-#: ../../include/conversation.php:1542
-msgid "Files and Storage"
+#: ../../include/apps.php:128
+msgid "Address Book"
msgstr ""
-#: ../../include/conversation.php:1551 ../../include/conversation.php:1554
-msgid "Chatrooms"
+#: ../../include/apps.php:129 ../../include/nav.php:125 ../../boot.php:1540
+msgid "Login"
msgstr ""
-#: ../../include/conversation.php:1564
-msgid "Saved Bookmarks"
+#: ../../include/apps.php:130 ../../include/nav.php:216
+#: ../../mod/manage.php:148
+msgid "Channel Manager"
msgstr ""
-#: ../../include/conversation.php:1575
-msgid "Manage Webpages"
+#: ../../include/apps.php:131 ../../include/nav.php:190
+msgid "Matrix"
msgstr ""
-#: ../../include/features.php:23
-msgid "General Features"
+#: ../../include/apps.php:132 ../../include/widgets.php:535
+#: ../../include/nav.php:218 ../../mod/admin.php:951 ../../mod/admin.php:1156
+msgid "Settings"
msgstr ""
-#: ../../include/features.php:25
-msgid "Content Expiration"
+#: ../../include/apps.php:134 ../../include/conversation.php:1576
+#: ../../include/nav.php:121 ../../mod/webpages.php:160
+msgid "Webpages"
msgstr ""
-#: ../../include/features.php:25
-msgid "Remove posts/comments and/or private messages at a future time"
+#: ../../include/apps.php:135 ../../include/nav.php:193
+msgid "Channel Home"
msgstr ""
-#: ../../include/features.php:26
-msgid "Multiple Profiles"
+#: ../../include/apps.php:137 ../../include/conversation.php:1530
+#: ../../include/nav.php:105 ../../mod/fbrowser.php:25
+msgid "Photos"
msgstr ""
-#: ../../include/features.php:26
-msgid "Ability to create multiple profiles"
+#: ../../include/apps.php:138 ../../include/nav.php:212
+#: ../../mod/events.php:442
+msgid "Events"
msgstr ""
-#: ../../include/features.php:27
-msgid "Advanced Profiles"
+#: ../../include/apps.php:139 ../../include/nav.php:176
+#: ../../mod/directory.php:321
+msgid "Directory"
msgstr ""
-#: ../../include/features.php:27
-msgid "Additional profile sections and selections"
+#: ../../include/apps.php:140 ../../include/nav.php:168 ../../mod/help.php:58
+#: ../../mod/help.php:63
+msgid "Help"
msgstr ""
-#: ../../include/features.php:28
-msgid "Profile Import/Export"
+#: ../../include/apps.php:141 ../../include/nav.php:204
+msgid "Mail"
msgstr ""
-#: ../../include/features.php:28
-msgid "Save and load profile details across sites/channels"
+#: ../../include/apps.php:142 ../../mod/mood.php:131
+msgid "Mood"
msgstr ""
-#: ../../include/features.php:29
-msgid "Web Pages"
+#: ../../include/apps.php:143 ../../include/conversation.php:940
+msgid "Poke"
msgstr ""
-#: ../../include/features.php:29
-msgid "Provide managed web pages on your channel"
+#: ../../include/apps.php:144 ../../include/nav.php:111
+msgid "Chat"
msgstr ""
-#: ../../include/features.php:30
-msgid "Private Notes"
+#: ../../include/apps.php:146
+msgid "Probe"
msgstr ""
-#: ../../include/features.php:30
-msgid "Enables a tool to store notes and reminders"
+#: ../../include/apps.php:147
+msgid "Suggest"
msgstr ""
-#: ../../include/features.php:34
-msgid "Navigation Channel Select"
+#: ../../include/apps.php:148
+msgid "Random Channel"
msgstr ""
-#: ../../include/features.php:34
-msgid "Change channels directly from within the navigation dropdown menu"
+#: ../../include/apps.php:149
+msgid "Invite"
msgstr ""
-#: ../../include/features.php:38
-msgid "Extended Identity Sharing"
+#: ../../include/apps.php:150
+msgid "Features"
msgstr ""
-#: ../../include/features.php:38
-msgid ""
-"Share your identity with all websites on the internet. When disabled, "
-"identity is only shared with sites in the matrix."
+#: ../../include/apps.php:151
+msgid "Language"
msgstr ""
-#: ../../include/features.php:39
-msgid "Expert Mode"
+#: ../../include/apps.php:152
+msgid "Post"
msgstr ""
-#: ../../include/features.php:39
-msgid "Enable Expert Mode to provide advanced configuration options"
+#: ../../include/apps.php:153
+msgid "Profile Photo"
msgstr ""
-#: ../../include/features.php:40
-msgid "Premium Channel"
+#: ../../include/apps.php:242 ../../mod/settings.php:81
+#: ../../mod/settings.php:591
+msgid "Update"
msgstr ""
-#: ../../include/features.php:40
-msgid ""
-"Allows you to set restrictions and terms on those that connect with your "
-"channel"
+#: ../../include/apps.php:242
+msgid "Install"
msgstr ""
-#: ../../include/features.php:45
-msgid "Post Composition Features"
+#: ../../include/apps.php:247
+msgid "Purchase"
msgstr ""
-#: ../../include/features.php:47
-msgid "Use Markdown"
+#: ../../include/attach.php:221 ../../include/attach.php:275
+msgid "Item was not found."
msgstr ""
-#: ../../include/features.php:47
-msgid "Allow use of \"Markdown\" to format posts"
+#: ../../include/attach.php:331
+msgid "No source file."
msgstr ""
-#: ../../include/features.php:48
-msgid "Post Preview"
+#: ../../include/attach.php:348
+msgid "Cannot locate file to replace"
msgstr ""
-#: ../../include/features.php:48
-msgid "Allow previewing posts and comments before publishing them"
+#: ../../include/attach.php:366
+msgid "Cannot locate file to revise/update"
msgstr ""
-#: ../../include/features.php:49 ../../include/widgets.php:510
-#: ../../mod/sources.php:88
-msgid "Channel Sources"
+#: ../../include/attach.php:377
+#, php-format
+msgid "File exceeds size limit of %d"
msgstr ""
-#: ../../include/features.php:49
-msgid "Automatically import channel content from other channels or feeds"
+#: ../../include/attach.php:389
+#, php-format
+msgid "You have reached your limit of %1$.0f Mbytes attachment storage."
msgstr ""
-#: ../../include/features.php:50
-msgid "Even More Encryption"
+#: ../../include/attach.php:472
+msgid "File upload failed. Possible system limit or action terminated."
msgstr ""
-#: ../../include/features.php:50
-msgid ""
-"Allow optional encryption of content end-to-end with a shared secret key"
+#: ../../include/attach.php:484
+msgid "Stored file could not be verified. Upload failed."
msgstr ""
-#: ../../include/features.php:55
-msgid "Network and Stream Filtering"
+#: ../../include/attach.php:526 ../../include/attach.php:543
+msgid "Path not available."
msgstr ""
-#: ../../include/features.php:56
-msgid "Search by Date"
+#: ../../include/attach.php:590
+msgid "Empty pathname"
msgstr ""
-#: ../../include/features.php:56
-msgid "Ability to select posts by date ranges"
+#: ../../include/attach.php:606
+msgid "duplicate filename or path"
msgstr ""
-#: ../../include/features.php:57
-msgid "Collections Filter"
+#: ../../include/attach.php:630
+msgid "Path not found."
msgstr ""
-#: ../../include/features.php:57
-msgid "Enable widget to display Network posts only from selected collections"
+#: ../../include/attach.php:681
+msgid "mkdir failed."
msgstr ""
-#: ../../include/features.php:58 ../../include/widgets.php:272
-msgid "Saved Searches"
+#: ../../include/attach.php:685
+msgid "database storage failed."
msgstr ""
-#: ../../include/features.php:58
-msgid "Save search terms for re-use"
+#: ../../include/chat.php:10
+msgid "Missing room name"
msgstr ""
-#: ../../include/features.php:59
-msgid "Network Personal Tab"
+#: ../../include/chat.php:19
+msgid "Duplicate room name"
msgstr ""
-#: ../../include/features.php:59
-msgid "Enable tab to display only Network posts that you've interacted on"
+#: ../../include/chat.php:68 ../../include/chat.php:76
+msgid "Invalid room specifier."
msgstr ""
-#: ../../include/features.php:60
-msgid "Network New Tab"
+#: ../../include/chat.php:105
+msgid "Room not found."
msgstr ""
-#: ../../include/features.php:60
-msgid "Enable tab to display all new Network activity"
+#: ../../include/chat.php:126
+msgid "Room is full"
msgstr ""
-#: ../../include/features.php:61
-msgid "Affinity Tool"
+#: ../../include/bbcode.php:112 ../../include/bbcode.php:682
+#: ../../include/bbcode.php:685 ../../include/bbcode.php:690
+#: ../../include/bbcode.php:693 ../../include/bbcode.php:696
+#: ../../include/bbcode.php:699 ../../include/bbcode.php:704
+#: ../../include/bbcode.php:707 ../../include/bbcode.php:712
+#: ../../include/bbcode.php:715 ../../include/bbcode.php:718
+#: ../../include/bbcode.php:721
+msgid "Image/photo"
msgstr ""
-#: ../../include/features.php:61
-msgid "Filter stream activity by depth of relationships"
+#: ../../include/bbcode.php:147 ../../include/bbcode.php:732
+msgid "Encrypted content"
msgstr ""
-#: ../../include/features.php:62
-msgid "Suggest Channels"
+#: ../../include/bbcode.php:165
+msgid "Install design element: "
msgstr ""
-#: ../../include/features.php:62
-msgid "Show channel suggestions"
+#: ../../include/bbcode.php:171
+msgid "QR code"
msgstr ""
-#: ../../include/features.php:67
-msgid "Post/Comment Tools"
+#: ../../include/bbcode.php:220
+#, php-format
+msgid "%1$s wrote the following %2$s %3$s"
msgstr ""
-#: ../../include/features.php:69
-msgid "Edit Sent Posts"
+#: ../../include/bbcode.php:222
+msgid "post"
msgstr ""
-#: ../../include/features.php:69
-msgid "Edit and correct posts and comments after sending"
+#: ../../include/bbcode.php:650
+msgid "$1 spoiler"
msgstr ""
-#: ../../include/features.php:70
-msgid "Tagging"
+#: ../../include/bbcode.php:670
+msgid "$1 wrote:"
msgstr ""
-#: ../../include/features.php:70
-msgid "Ability to tag existing posts"
+#: ../../include/conversation.php:126 ../../mod/like.php:89
+msgid "channel"
msgstr ""
-#: ../../include/features.php:71
-msgid "Post Categories"
+#: ../../include/conversation.php:164 ../../include/diaspora.php:1957
+#: ../../mod/like.php:336
+#, php-format
+msgid "%1$s likes %2$s's %3$s"
msgstr ""
-#: ../../include/features.php:71
-msgid "Add categories to your posts"
+#: ../../include/conversation.php:167 ../../mod/like.php:338
+#, php-format
+msgid "%1$s doesn't like %2$s's %3$s"
msgstr ""
-#: ../../include/features.php:72
-msgid "Ability to file posts under folders"
+#: ../../include/conversation.php:204
+#, php-format
+msgid "%1$s is now connected with %2$s"
msgstr ""
-#: ../../include/features.php:73
-msgid "Dislike Posts"
+#: ../../include/conversation.php:239
+#, php-format
+msgid "%1$s poked %2$s"
msgstr ""
-#: ../../include/features.php:73
-msgid "Ability to dislike posts/comments"
+#: ../../include/conversation.php:261 ../../mod/mood.php:63
+#, php-format
+msgctxt "mood"
+msgid "%1$s is %2$s"
msgstr ""
-#: ../../include/features.php:74
-msgid "Star Posts"
+#: ../../include/conversation.php:638 ../../include/ItemObject.php:126
+msgid "Select"
msgstr ""
-#: ../../include/features.php:74
-msgid "Ability to mark special posts with a star indicator"
+#: ../../include/conversation.php:646 ../../include/ItemObject.php:89
+msgid "Private Message"
msgstr ""
-#: ../../include/features.php:75
-msgid "Tag Cloud"
+#: ../../include/conversation.php:653 ../../include/ItemObject.php:194
+msgid "Message signature validated"
msgstr ""
-#: ../../include/features.php:75
-msgid "Provide a personal tag cloud on your channel page"
+#: ../../include/conversation.php:654 ../../include/ItemObject.php:195
+msgid "Message signature incorrect"
msgstr ""
-#: ../../include/follow.php:23
-msgid "Channel is blocked on this site."
+#: ../../include/conversation.php:674
+#, php-format
+msgid "View %s's profile @ %s"
msgstr ""
-#: ../../include/follow.php:28
-msgid "Channel location missing."
+#: ../../include/conversation.php:689
+msgid "Categories:"
msgstr ""
-#: ../../include/follow.php:70
-msgid "Response from remote channel was incomplete."
+#: ../../include/conversation.php:690
+msgid "Filed under:"
msgstr ""
-#: ../../include/follow.php:87
-msgid "Channel was deleted and no longer exists."
+#: ../../include/conversation.php:698 ../../include/ItemObject.php:274
+#, php-format
+msgid " from %s"
msgstr ""
-#: ../../include/follow.php:123 ../../include/follow.php:186
-msgid "Protocol disabled."
+#: ../../include/conversation.php:701 ../../include/ItemObject.php:277
+#, php-format
+msgid "last edited: %s"
msgstr ""
-#: ../../include/follow.php:160
-msgid "Channel discovery failed."
+#: ../../include/conversation.php:702 ../../include/ItemObject.php:278
+#, php-format
+msgid "Expires: %s"
msgstr ""
-#: ../../include/follow.php:176
-msgid "local account not found."
+#: ../../include/conversation.php:717
+msgid "View in context"
msgstr ""
-#: ../../include/follow.php:203
-msgid "Cannot connect to yourself."
+#: ../../include/conversation.php:719 ../../include/conversation.php:1142
+#: ../../include/ItemObject.php:325 ../../mod/editpost.php:121
+#: ../../mod/mail.php:238 ../../mod/mail.php:353 ../../mod/photos.php:978
+#: ../../mod/editblock.php:152 ../../mod/editlayout.php:148
+#: ../../mod/editwebpage.php:183
+msgid "Please wait"
msgstr ""
-#: ../../include/chat.php:10
-msgid "Missing room name"
+#: ../../include/conversation.php:835
+msgid "remove"
msgstr ""
-#: ../../include/chat.php:19
-msgid "Duplicate room name"
+#: ../../include/conversation.php:839 ../../include/nav.php:257
+msgid "Loading..."
msgstr ""
-#: ../../include/chat.php:68 ../../include/chat.php:76
-msgid "Invalid room specifier."
+#: ../../include/conversation.php:840
+msgid "Delete Selected Items"
msgstr ""
-#: ../../include/chat.php:105
-msgid "Room not found."
+#: ../../include/conversation.php:931
+msgid "View Source"
msgstr ""
-#: ../../include/chat.php:126
-msgid "Room is full"
+#: ../../include/conversation.php:932
+msgid "Follow Thread"
msgstr ""
-#: ../../include/items.php:357 ../../mod/profperm.php:23
-#: ../../mod/subthread.php:49 ../../mod/group.php:68 ../../mod/like.php:242
-#: ../../index.php:360
-msgid "Permission denied"
+#: ../../include/conversation.php:933
+msgid "View Status"
msgstr ""
-#: ../../include/items.php:918
-msgid "(Unknown)"
+#: ../../include/conversation.php:934 ../../include/nav.php:99
+#: ../../mod/connedit.php:429 ../../mod/connedit.php:545
+msgid "View Profile"
msgstr ""
-#: ../../include/items.php:1050
-msgid "Visible to anybody on the internet."
+#: ../../include/conversation.php:935
+msgid "View Photos"
msgstr ""
-#: ../../include/items.php:1052
-msgid "Visible to you only."
+#: ../../include/conversation.php:936
+msgid "Matrix Activity"
msgstr ""
-#: ../../include/items.php:1054
-msgid "Visible to anybody in this network."
+#: ../../include/conversation.php:938
+msgid "Edit Contact"
msgstr ""
-#: ../../include/items.php:1056
-msgid "Visible to anybody authenticated."
+#: ../../include/conversation.php:939
+msgid "Send PM"
msgstr ""
-#: ../../include/items.php:1058
+#: ../../include/conversation.php:1013
#, php-format
-msgid "Visible to anybody on %s."
-msgstr ""
-
-#: ../../include/items.php:1060
-msgid "Visible to all connections."
-msgstr ""
-
-#: ../../include/items.php:1062
-msgid "Visible to approved connections."
-msgstr ""
-
-#: ../../include/items.php:1064
-msgid "Visible to specific connections."
-msgstr ""
-
-#: ../../include/items.php:3764 ../../mod/home.php:67 ../../mod/display.php:32
-#: ../../mod/filestorage.php:18 ../../mod/admin.php:168
-#: ../../mod/admin.php:893 ../../mod/admin.php:1096 ../../mod/thing.php:78
-#: ../../mod/viewsrc.php:18
-msgid "Item not found."
-msgstr ""
-
-#: ../../include/items.php:4197 ../../mod/group.php:38 ../../mod/group.php:140
-msgid "Collection not found."
-msgstr ""
-
-#: ../../include/items.php:4212
-msgid "Collection is empty."
+msgid "%s likes this."
msgstr ""
-#: ../../include/items.php:4219
+#: ../../include/conversation.php:1013
#, php-format
-msgid "Collection: %s"
+msgid "%s doesn't like this."
msgstr ""
-#: ../../include/items.php:4230
+#: ../../include/conversation.php:1017
#, php-format
-msgid "Connection: %s"
-msgstr ""
-
-#: ../../include/items.php:4233
-msgid "Connection not found."
-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."
-msgstr ""
-
-#: ../../include/group.php:234
-msgid "Default privacy group for new contacts"
-msgstr ""
-
-#: ../../include/group.php:253 ../../mod/admin.php:733
-msgid "All Channels"
-msgstr ""
-
-#: ../../include/group.php:275
-msgid "edit"
-msgstr ""
-
-#: ../../include/group.php:296
-msgid "Collections"
-msgstr ""
-
-#: ../../include/group.php:297
-msgid "Edit collection"
-msgstr ""
-
-#: ../../include/group.php:298
-msgid "Create a new collection"
-msgstr ""
-
-#: ../../include/group.php:299
-msgid "Channels not in any collection"
-msgstr ""
-
-#: ../../include/group.php:301 ../../include/widgets.php:273
-msgid "add"
-msgstr ""
-
-#: ../../include/identity.php:30 ../../mod/item.php:1310
-msgid "Unable to obtain identity information from database"
-msgstr ""
-
-#: ../../include/identity.php:63
-msgid "Empty name"
-msgstr ""
-
-#: ../../include/identity.php:65
-msgid "Name too long"
-msgstr ""
-
-#: ../../include/identity.php:166
-msgid "No account identifier"
-msgstr ""
+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/identity.php:176
-msgid "Nickname is required."
-msgstr ""
+#: ../../include/conversation.php:1019
+#, 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/identity.php:190
-msgid "Reserved nickname. Please choose another."
+#: ../../include/conversation.php:1025
+msgid "and"
msgstr ""
-#: ../../include/identity.php:195
-msgid ""
-"Nickname has unsupported characters or is already being used on this site."
-msgstr ""
+#: ../../include/conversation.php:1028
+#, php-format
+msgid ", and %d other people"
+msgid_plural ", and %d other people"
+msgstr[0] ""
+msgstr[1] ""
-#: ../../include/identity.php:258
-msgid "Unable to retrieve created identity"
+#: ../../include/conversation.php:1029
+#, php-format
+msgid "%s like this."
msgstr ""
-#: ../../include/identity.php:317
-msgid "Default Profile"
+#: ../../include/conversation.php:1029
+#, php-format
+msgid "%s don't like this."
msgstr ""
-#: ../../include/identity.php:342 ../../include/widgets.php:407
-#: ../../include/profile_selectors.php:80 ../../mod/connedit.php:473
-msgid "Friends"
+#: ../../include/conversation.php:1086
+msgid "Visible to <strong>everybody</strong>"
msgstr ""
-#: ../../include/identity.php:509
-msgid "Requested channel is not available."
+#: ../../include/conversation.php:1087 ../../mod/mail.php:171
+#: ../../mod/mail.php:286
+msgid "Please enter a link URL:"
msgstr ""
-#: ../../include/identity.php:557 ../../mod/achievements.php:11
-#: ../../mod/profile.php:16 ../../mod/blocks.php:10 ../../mod/connect.php:13
-#: ../../mod/filestorage.php:40 ../../mod/layouts.php:8
-#: ../../mod/webpages.php:8 ../../mod/hcard.php:8
-msgid "Requested profile is not available."
+#: ../../include/conversation.php:1088
+msgid "Please enter a video link/URL:"
msgstr ""
-#: ../../include/identity.php:720 ../../mod/profiles.php:750
-msgid "Change profile photo"
+#: ../../include/conversation.php:1089
+msgid "Please enter an audio link/URL:"
msgstr ""
-#: ../../include/identity.php:726
-msgid "Profiles"
+#: ../../include/conversation.php:1090
+msgid "Tag term:"
msgstr ""
-#: ../../include/identity.php:726
-msgid "Manage/edit profiles"
+#: ../../include/conversation.php:1091 ../../mod/filer.php:49
+msgid "Save to Folder:"
msgstr ""
-#: ../../include/identity.php:727 ../../mod/profiles.php:751
-msgid "Create New Profile"
+#: ../../include/conversation.php:1092
+msgid "Where are you right now?"
msgstr ""
-#: ../../include/identity.php:741 ../../mod/profiles.php:762
-msgid "Profile Image"
+#: ../../include/conversation.php:1093 ../../mod/editpost.php:52
+#: ../../mod/mail.php:172 ../../mod/mail.php:287
+msgid "Expires YYYY-MM-DD HH:MM"
msgstr ""
-#: ../../include/identity.php:744
-msgid "visible to everybody"
+#: ../../include/conversation.php:1117 ../../mod/photos.php:977
+#: ../../mod/editblock.php:198 ../../mod/editlayout.php:193
+#: ../../mod/editwebpage.php:230 ../../mod/layouts.php:168
+msgid "Share"
msgstr ""
-#: ../../include/identity.php:745 ../../mod/profiles.php:645
-#: ../../mod/profiles.php:766
-msgid "Edit visibility"
+#: ../../include/conversation.php:1119 ../../mod/editwebpage.php:170
+msgid "Page link title"
msgstr ""
-#: ../../include/identity.php:759 ../../include/identity.php:996
-#: ../../mod/directory.php:158
-msgid "Gender:"
+#: ../../include/conversation.php:1122
+msgid "Post as"
msgstr ""
-#: ../../include/identity.php:760 ../../include/identity.php:1040
-#: ../../mod/directory.php:160
-msgid "Status:"
+#: ../../include/conversation.php:1123 ../../mod/editpost.php:113
+#: ../../mod/mail.php:235 ../../mod/mail.php:349 ../../mod/editblock.php:144
+#: ../../mod/editlayout.php:140 ../../mod/editwebpage.php:175
+msgid "Upload photo"
msgstr ""
-#: ../../include/identity.php:761 ../../include/identity.php:1051
-#: ../../mod/directory.php:162
-msgid "Homepage:"
+#: ../../include/conversation.php:1124
+msgid "upload photo"
msgstr ""
-#: ../../include/identity.php:762 ../../mod/dirprofile.php:151
-msgid "Online Now"
+#: ../../include/conversation.php:1125 ../../mod/editpost.php:114
+#: ../../mod/mail.php:236 ../../mod/mail.php:350 ../../mod/editblock.php:145
+#: ../../mod/editlayout.php:141 ../../mod/editwebpage.php:176
+msgid "Attach file"
msgstr ""
-#: ../../include/identity.php:840 ../../include/identity.php:920
-#: ../../mod/ping.php:298
-msgid "g A l F d"
+#: ../../include/conversation.php:1126
+msgid "attach file"
msgstr ""
-#: ../../include/identity.php:841 ../../include/identity.php:921
-msgid "F d"
+#: ../../include/conversation.php:1127 ../../mod/editpost.php:115
+#: ../../mod/mail.php:237 ../../mod/mail.php:351 ../../mod/editblock.php:146
+#: ../../mod/editlayout.php:142 ../../mod/editwebpage.php:177
+msgid "Insert web link"
msgstr ""
-#: ../../include/identity.php:886 ../../include/identity.php:961
-#: ../../mod/ping.php:320
-msgid "[today]"
+#: ../../include/conversation.php:1128
+msgid "web link"
msgstr ""
-#: ../../include/identity.php:898
-msgid "Birthday Reminders"
+#: ../../include/conversation.php:1129
+msgid "Insert video link"
msgstr ""
-#: ../../include/identity.php:899
-msgid "Birthdays this week:"
+#: ../../include/conversation.php:1130
+msgid "video link"
msgstr ""
-#: ../../include/identity.php:954
-msgid "[No description]"
+#: ../../include/conversation.php:1131
+msgid "Insert audio link"
msgstr ""
-#: ../../include/identity.php:972
-msgid "Event Reminders"
+#: ../../include/conversation.php:1132
+msgid "audio link"
msgstr ""
-#: ../../include/identity.php:973
-msgid "Events this week:"
+#: ../../include/conversation.php:1133 ../../mod/editpost.php:119
+#: ../../mod/editblock.php:150 ../../mod/editlayout.php:146
+#: ../../mod/editwebpage.php:181
+msgid "Set your location"
msgstr ""
-#: ../../include/identity.php:994 ../../mod/settings.php:943
-msgid "Full Name:"
+#: ../../include/conversation.php:1134
+msgid "set location"
msgstr ""
-#: ../../include/identity.php:1001
-msgid "Like this channel"
+#: ../../include/conversation.php:1135 ../../mod/editpost.php:120
+#: ../../mod/editblock.php:151 ../../mod/editlayout.php:147
+#: ../../mod/editwebpage.php:182
+msgid "Clear browser location"
msgstr ""
-#: ../../include/identity.php:1025
-msgid "j F, Y"
+#: ../../include/conversation.php:1136
+msgid "clear location"
msgstr ""
-#: ../../include/identity.php:1026
-msgid "j F"
+#: ../../include/conversation.php:1138 ../../mod/editpost.php:132
+#: ../../mod/editblock.php:164 ../../mod/editlayout.php:159
+#: ../../mod/editwebpage.php:198
+msgid "Title (optional)"
msgstr ""
-#: ../../include/identity.php:1033
-msgid "Birthday:"
+#: ../../include/conversation.php:1141 ../../mod/editpost.php:134
+#: ../../mod/editblock.php:167 ../../mod/editlayout.php:162
+#: ../../mod/editwebpage.php:200
+msgid "Categories (optional, comma-separated list)"
msgstr ""
-#: ../../include/identity.php:1037
-msgid "Age:"
+#: ../../include/conversation.php:1143 ../../mod/editpost.php:122
+#: ../../mod/editblock.php:153 ../../mod/editlayout.php:149
+#: ../../mod/editwebpage.php:184
+msgid "Permission settings"
msgstr ""
-#: ../../include/identity.php:1046
-#, php-format
-msgid "for %1$d %2$s"
+#: ../../include/conversation.php:1144
+msgid "permissions"
msgstr ""
-#: ../../include/identity.php:1049 ../../mod/profiles.php:667
-msgid "Sexual Preference:"
+#: ../../include/conversation.php:1151 ../../mod/editpost.php:129
+#: ../../mod/editblock.php:161 ../../mod/editlayout.php:156
+#: ../../mod/editwebpage.php:193
+msgid "Public post"
msgstr ""
-#: ../../include/identity.php:1053 ../../mod/profiles.php:669
-msgid "Hometown:"
+#: ../../include/conversation.php:1153 ../../mod/editpost.php:135
+#: ../../mod/editblock.php:168 ../../mod/editlayout.php:163
+#: ../../mod/editwebpage.php:201
+msgid "Example: bob@example.com, mary@example.com"
msgstr ""
-#: ../../include/identity.php:1055
-msgid "Tags:"
+#: ../../include/conversation.php:1166 ../../mod/editpost.php:146
+#: ../../mod/mail.php:242 ../../mod/mail.php:356 ../../mod/editblock.php:178
+#: ../../mod/editlayout.php:173 ../../mod/editwebpage.php:210
+msgid "Set expiration date"
msgstr ""
-#: ../../include/identity.php:1057 ../../mod/profiles.php:670
-msgid "Political Views:"
+#: ../../include/conversation.php:1168 ../../include/ItemObject.php:641
+#: ../../mod/editpost.php:148 ../../mod/mail.php:244 ../../mod/mail.php:358
+msgid "Encrypt text"
msgstr ""
-#: ../../include/identity.php:1059
-msgid "Religion:"
+#: ../../include/conversation.php:1170 ../../mod/events.php:580
+#: ../../mod/editpost.php:150
+msgid "OK"
msgstr ""
-#: ../../include/identity.php:1061 ../../mod/directory.php:164
-msgid "About:"
+#: ../../include/conversation.php:1171 ../../mod/settings.php:566
+#: ../../mod/settings.php:592 ../../mod/events.php:579
+#: ../../mod/editpost.php:151 ../../mod/fbrowser.php:82
+#: ../../mod/fbrowser.php:117 ../../mod/tagrm.php:11 ../../mod/tagrm.php:134
+msgid "Cancel"
msgstr ""
-#: ../../include/identity.php:1063
-msgid "Hobbies/Interests:"
+#: ../../include/conversation.php:1415
+msgid "Discover"
msgstr ""
-#: ../../include/identity.php:1065 ../../mod/profiles.php:673
-msgid "Likes:"
+#: ../../include/conversation.php:1418
+msgid "Imported public streams"
msgstr ""
-#: ../../include/identity.php:1067 ../../mod/profiles.php:674
-msgid "Dislikes:"
+#: ../../include/conversation.php:1423
+msgid "Commented Order"
msgstr ""
-#: ../../include/identity.php:1070
-msgid "Contact information and Social Networks:"
+#: ../../include/conversation.php:1426
+msgid "Sort by Comment Date"
msgstr ""
-#: ../../include/identity.php:1072
-msgid "My other channels:"
+#: ../../include/conversation.php:1430
+msgid "Posted Order"
msgstr ""
-#: ../../include/identity.php:1074
-msgid "Musical interests:"
+#: ../../include/conversation.php:1433
+msgid "Sort by Post Date"
msgstr ""
-#: ../../include/identity.php:1076
-msgid "Books, literature:"
+#: ../../include/conversation.php:1438 ../../include/widgets.php:94
+msgid "Personal"
msgstr ""
-#: ../../include/identity.php:1078
-msgid "Television:"
+#: ../../include/conversation.php:1441
+msgid "Posts that mention or involve you"
msgstr ""
-#: ../../include/identity.php:1080
-msgid "Film/dance/culture/entertainment:"
+#: ../../include/conversation.php:1447 ../../mod/connections.php:211
+#: ../../mod/connections.php:224 ../../mod/menu.php:80
+msgid "New"
msgstr ""
-#: ../../include/identity.php:1082
-msgid "Love/Romance:"
+#: ../../include/conversation.php:1450
+msgid "Activity Stream - by date"
msgstr ""
-#: ../../include/identity.php:1084
-msgid "Work/employment:"
+#: ../../include/conversation.php:1456
+msgid "Starred"
msgstr ""
-#: ../../include/identity.php:1086
-msgid "School/education:"
+#: ../../include/conversation.php:1459
+msgid "Favourite Posts"
msgstr ""
-#: ../../include/identity.php:1106
-msgid "Like this thing"
+#: ../../include/conversation.php:1466
+msgid "Spam"
msgstr ""
-#: ../../include/bbcode.php:112 ../../include/bbcode.php:645
-#: ../../include/bbcode.php:648 ../../include/bbcode.php:653
-#: ../../include/bbcode.php:656 ../../include/bbcode.php:659
-#: ../../include/bbcode.php:662 ../../include/bbcode.php:667
-#: ../../include/bbcode.php:670 ../../include/bbcode.php:675
-#: ../../include/bbcode.php:678 ../../include/bbcode.php:681
-#: ../../include/bbcode.php:684
-msgid "Image/photo"
+#: ../../include/conversation.php:1469
+msgid "Posts flagged as SPAM"
msgstr ""
-#: ../../include/bbcode.php:147 ../../include/bbcode.php:695
-msgid "Encrypted content"
+#: ../../include/conversation.php:1509 ../../mod/admin.php:865
+msgid "Channel"
msgstr ""
-#: ../../include/bbcode.php:163
-msgid "QR code"
+#: ../../include/conversation.php:1512
+msgid "Status Messages and Posts"
msgstr ""
-#: ../../include/bbcode.php:212
-#, php-format
-msgid "%1$s wrote the following %2$s %3$s"
+#: ../../include/conversation.php:1521
+msgid "About"
msgstr ""
-#: ../../include/bbcode.php:214
-msgid "post"
+#: ../../include/conversation.php:1524
+msgid "Profile Details"
msgstr ""
-#: ../../include/bbcode.php:613 ../../include/bbcode.php:633
-msgid "$1 wrote:"
+#: ../../include/conversation.php:1542
+msgid "Files and Storage"
msgstr ""
-#: ../../include/message.php:18
-msgid "No recipient provided."
+#: ../../include/conversation.php:1552 ../../include/conversation.php:1555
+msgid "Chatrooms"
msgstr ""
-#: ../../include/message.php:23
-msgid "[no subject]"
+#: ../../include/conversation.php:1568
+msgid "Saved Bookmarks"
msgstr ""
-#: ../../include/message.php:42
-msgid "Unable to determine sender."
+#: ../../include/conversation.php:1579
+msgid "Manage Webpages"
msgstr ""
-#: ../../include/message.php:143
-msgid "Stored post could not be verified."
+#: ../../include/widgets.php:91 ../../include/nav.php:171
+#: ../../mod/apps.php:33
+msgid "Apps"
msgstr ""
-#: ../../include/widgets.php:87
+#: ../../include/widgets.php:92
msgid "System"
msgstr ""
-#: ../../include/widgets.php:90
+#: ../../include/widgets.php:95
msgid "Create Personal App"
msgstr ""
-#: ../../include/widgets.php:91
+#: ../../include/widgets.php:96
msgid "Edit Personal App"
msgstr ""
-#: ../../include/widgets.php:137 ../../mod/suggest.php:53
+#: ../../include/widgets.php:138 ../../mod/suggest.php:53
msgid "Ignore/Hide"
msgstr ""
@@ -2837,264 +2731,380 @@ msgstr ""
msgid "Example: bob@example.com, http://example.com/barbara"
msgstr ""
-#: ../../include/widgets.php:191
+#: ../../include/widgets.php:190
msgid "Notes"
msgstr ""
-#: ../../include/widgets.php:263
+#: ../../include/widgets.php:264
msgid "Remove term"
msgstr ""
-#: ../../include/widgets.php:342
+#: ../../include/widgets.php:347
msgid "Archives"
msgstr ""
-#: ../../include/widgets.php:404
+#: ../../include/widgets.php:425
msgid "Refresh"
msgstr ""
-#: ../../include/widgets.php:405 ../../mod/connedit.php:470
+#: ../../include/widgets.php:426 ../../mod/connedit.php:506
msgid "Me"
msgstr ""
-#: ../../include/widgets.php:406 ../../mod/connedit.php:472
+#: ../../include/widgets.php:427 ../../mod/connedit.php:509
msgid "Best Friends"
msgstr ""
-#: ../../include/widgets.php:408
+#: ../../include/widgets.php:429
msgid "Co-workers"
msgstr ""
-#: ../../include/widgets.php:409 ../../mod/connedit.php:474
+#: ../../include/widgets.php:430 ../../mod/connedit.php:511
msgid "Former Friends"
msgstr ""
-#: ../../include/widgets.php:410 ../../mod/connedit.php:475
+#: ../../include/widgets.php:431 ../../mod/connedit.php:512
msgid "Acquaintances"
msgstr ""
-#: ../../include/widgets.php:411
+#: ../../include/widgets.php:432
msgid "Everybody"
msgstr ""
-#: ../../include/widgets.php:443
+#: ../../include/widgets.php:466
msgid "Account settings"
msgstr ""
-#: ../../include/widgets.php:449
+#: ../../include/widgets.php:472
msgid "Channel settings"
msgstr ""
-#: ../../include/widgets.php:455
+#: ../../include/widgets.php:478
msgid "Additional features"
msgstr ""
-#: ../../include/widgets.php:461
+#: ../../include/widgets.php:484
msgid "Feature settings"
msgstr ""
-#: ../../include/widgets.php:467
+#: ../../include/widgets.php:490
msgid "Display settings"
msgstr ""
-#: ../../include/widgets.php:473
+#: ../../include/widgets.php:496
msgid "Connected apps"
msgstr ""
-#: ../../include/widgets.php:479
+#: ../../include/widgets.php:502
msgid "Export channel"
msgstr ""
-#: ../../include/widgets.php:491
-msgid "Automatic Permissions (Advanced)"
+#: ../../include/widgets.php:511 ../../mod/connedit.php:539
+msgid "Connection Default Permissions"
msgstr ""
-#: ../../include/widgets.php:501
+#: ../../include/widgets.php:519
msgid "Premium Channel Settings"
msgstr ""
-#: ../../include/widgets.php:538
+#: ../../include/widgets.php:548 ../../mod/mail.php:125
+#: ../../mod/message.php:31
+msgid "Messages"
+msgstr ""
+
+#: ../../include/widgets.php:551
msgid "Check Mail"
msgstr ""
-#: ../../include/widgets.php:619
+#: ../../include/widgets.php:556 ../../include/nav.php:209
+msgid "New Message"
+msgstr ""
+
+#: ../../include/widgets.php:634
msgid "Chat Rooms"
msgstr ""
-#: ../../include/widgets.php:637
+#: ../../include/widgets.php:654
msgid "Bookmarked Chatrooms"
msgstr ""
-#: ../../include/widgets.php:655
+#: ../../include/widgets.php:674
msgid "Suggested Chatrooms"
msgstr ""
-#: ../../include/ItemObject.php:122
+#: ../../include/widgets.php:801 ../../include/widgets.php:859
+msgid "photo/image"
+msgstr ""
+
+#: ../../include/zot.php:664
+msgid "Invalid data packet"
+msgstr ""
+
+#: ../../include/zot.php:680
+msgid "Unable to verify channel signature"
+msgstr ""
+
+#: ../../include/zot.php:1829
+#, php-format
+msgid "Unable to verify site signature for %s"
+msgstr ""
+
+#: ../../include/ItemObject.php:130
msgid "Save to Folder"
msgstr ""
-#: ../../include/ItemObject.php:134 ../../include/ItemObject.php:146
+#: ../../include/ItemObject.php:142 ../../include/ItemObject.php:154
+#: ../../mod/photos.php:1023 ../../mod/photos.php:1035
msgid "View all"
msgstr ""
-#: ../../include/ItemObject.php:143
+#: ../../include/ItemObject.php:151 ../../mod/photos.php:1032
msgctxt "noun"
msgid "Dislike"
msgid_plural "Dislikes"
msgstr[0] ""
msgstr[1] ""
-#: ../../include/ItemObject.php:171
+#: ../../include/ItemObject.php:179
msgid "Add Star"
msgstr ""
-#: ../../include/ItemObject.php:172
+#: ../../include/ItemObject.php:180
msgid "Remove Star"
msgstr ""
-#: ../../include/ItemObject.php:173
+#: ../../include/ItemObject.php:181
msgid "Toggle Star Status"
msgstr ""
-#: ../../include/ItemObject.php:177
+#: ../../include/ItemObject.php:185
msgid "starred"
msgstr ""
-#: ../../include/ItemObject.php:194
+#: ../../include/ItemObject.php:203
msgid "Add Tag"
msgstr ""
-#: ../../include/ItemObject.php:212 ../../mod/photos.php:980
+#: ../../include/ItemObject.php:221 ../../mod/photos.php:975
msgid "I like this (toggle)"
msgstr ""
-#: ../../include/ItemObject.php:213 ../../mod/photos.php:981
+#: ../../include/ItemObject.php:222 ../../mod/photos.php:976
msgid "I don't like this (toggle)"
msgstr ""
-#: ../../include/ItemObject.php:217
+#: ../../include/ItemObject.php:226
msgid "Share This"
msgstr ""
-#: ../../include/ItemObject.php:217
+#: ../../include/ItemObject.php:226
msgid "share"
msgstr ""
-#: ../../include/ItemObject.php:240 ../../include/ItemObject.php:241
+#: ../../include/ItemObject.php:243
+#, php-format
+msgid "%d comment"
+msgid_plural "%d comments"
+msgstr[0] ""
+msgstr[1] ""
+
+#: ../../include/ItemObject.php:256 ../../include/ItemObject.php:257
#, php-format
msgid "View %s's profile - %s"
msgstr ""
-#: ../../include/ItemObject.php:242
+#: ../../include/ItemObject.php:260
msgid "to"
msgstr ""
-#: ../../include/ItemObject.php:243
+#: ../../include/ItemObject.php:261
msgid "via"
msgstr ""
-#: ../../include/ItemObject.php:244
+#: ../../include/ItemObject.php:262
msgid "Wall-to-Wall"
msgstr ""
-#: ../../include/ItemObject.php:245
+#: ../../include/ItemObject.php:263
msgid "via Wall-To-Wall:"
msgstr ""
-#: ../../include/ItemObject.php:279
+#: ../../include/ItemObject.php:299
msgid "Save Bookmarks"
msgstr ""
-#: ../../include/ItemObject.php:280
+#: ../../include/ItemObject.php:300
msgid "Add to Calendar"
msgstr ""
-#: ../../include/ItemObject.php:288
+#: ../../include/ItemObject.php:309
+msgid "Mark all seen"
+msgstr ""
+
+#: ../../include/ItemObject.php:314 ../../mod/photos.php:1143
msgctxt "noun"
msgid "Likes"
msgstr ""
-#: ../../include/ItemObject.php:289
+#: ../../include/ItemObject.php:315 ../../mod/photos.php:1144
msgctxt "noun"
msgid "Dislikes"
msgstr ""
-#: ../../include/ItemObject.php:320
-#, php-format
-msgid "%d comment"
-msgid_plural "%d comments"
-msgstr[0] ""
-msgstr[1] ""
-
-#: ../../include/ItemObject.php:321 ../../include/js_strings.php:7
+#: ../../include/ItemObject.php:345 ../../include/js_strings.php:7
msgid "[+] show all"
msgstr ""
-#: ../../include/ItemObject.php:585 ../../mod/photos.php:999
-#: ../../mod/photos.php:1086
+#: ../../include/ItemObject.php:626 ../../mod/photos.php:994
+#: ../../mod/photos.php:1104
msgid "This is you"
msgstr ""
-#: ../../include/ItemObject.php:587 ../../include/js_strings.php:6
-#: ../../mod/photos.php:1001 ../../mod/photos.php:1088
+#: ../../include/ItemObject.php:628 ../../include/js_strings.php:6
+#: ../../mod/photos.php:996 ../../mod/photos.php:1106
msgid "Comment"
msgstr ""
-#: ../../include/ItemObject.php:588 ../../mod/mood.php:135
-#: ../../mod/settings.php:517 ../../mod/settings.php:629
-#: ../../mod/settings.php:658 ../../mod/settings.php:682
-#: ../../mod/settings.php:755 ../../mod/settings.php:935
-#: ../../mod/poke.php:166 ../../mod/profiles.php:643 ../../mod/chat.php:177
-#: ../../mod/chat.php:211 ../../mod/connect.php:92 ../../mod/connedit.php:518
-#: ../../mod/setup.php:307 ../../mod/setup.php:350 ../../mod/pdledit.php:58
-#: ../../mod/photos.php:563 ../../mod/photos.php:674 ../../mod/photos.php:962
-#: ../../mod/photos.php:1002 ../../mod/photos.php:1089
-#: ../../mod/sources.php:104 ../../mod/sources.php:138
-#: ../../mod/events.php:535 ../../mod/filestorage.php:137
-#: ../../mod/fsuggest.php:108 ../../mod/group.php:81 ../../mod/admin.php:413
-#: ../../mod/admin.php:721 ../../mod/admin.php:856 ../../mod/admin.php:989
-#: ../../mod/admin.php:1188 ../../mod/admin.php:1275 ../../mod/thing.php:286
-#: ../../mod/thing.php:329 ../../mod/import.php:394 ../../mod/invite.php:142
-#: ../../mod/mail.php:345 ../../mod/appman.php:99 ../../mod/poll.php:68
-#: ../../view/theme/apw/php/config.php:256
-#: ../../view/theme/blogga/php/config.php:67
-#: ../../view/theme/blogga/view/theme/blog/config.php:67
+#: ../../include/ItemObject.php:629 ../../mod/mood.php:135
+#: ../../mod/settings.php:565 ../../mod/settings.php:677
+#: ../../mod/settings.php:706 ../../mod/settings.php:730
+#: ../../mod/settings.php:812 ../../mod/settings.php:1004
+#: ../../mod/group.php:81 ../../mod/poke.php:166 ../../mod/setup.php:313
+#: ../../mod/setup.php:358 ../../mod/sources.php:104 ../../mod/sources.php:138
+#: ../../mod/events.php:598 ../../mod/chat.php:177 ../../mod/chat.php:211
+#: ../../mod/connedit.php:556 ../../mod/mail.php:352 ../../mod/photos.php:594
+#: ../../mod/photos.php:671 ../../mod/photos.php:957 ../../mod/photos.php:997
+#: ../../mod/photos.php:1107 ../../mod/pdledit.php:58 ../../mod/thing.php:284
+#: ../../mod/thing.php:327 ../../mod/fsuggest.php:108
+#: ../../mod/filestorage.php:146 ../../mod/connect.php:93
+#: ../../mod/locs.php:99 ../../mod/import.php:504 ../../mod/profiles.php:633
+#: ../../mod/admin.php:412 ../../mod/admin.php:723 ../../mod/admin.php:859
+#: ../../mod/admin.php:992 ../../mod/admin.php:1191 ../../mod/admin.php:1278
+#: ../../mod/invite.php:142 ../../mod/xchan.php:11 ../../mod/appman.php:99
+#: ../../mod/poll.php:68 ../../view/theme/apw/php/config.php:256
#: ../../view/theme/redbasic/php/config.php:99
msgid "Submit"
msgstr ""
-#: ../../include/ItemObject.php:589
+#: ../../include/ItemObject.php:630
msgid "Bold"
msgstr ""
-#: ../../include/ItemObject.php:590
+#: ../../include/ItemObject.php:631
msgid "Italic"
msgstr ""
-#: ../../include/ItemObject.php:591
+#: ../../include/ItemObject.php:632
msgid "Underline"
msgstr ""
-#: ../../include/ItemObject.php:592
+#: ../../include/ItemObject.php:633
msgid "Quote"
msgstr ""
-#: ../../include/ItemObject.php:593
+#: ../../include/ItemObject.php:634
msgid "Code"
msgstr ""
-#: ../../include/ItemObject.php:594
+#: ../../include/ItemObject.php:635
msgid "Image"
msgstr ""
-#: ../../include/ItemObject.php:595
+#: ../../include/ItemObject.php:636
msgid "Link"
msgstr ""
-#: ../../include/ItemObject.php:596
+#: ../../include/ItemObject.php:637
msgid "Video"
msgstr ""
+#: ../../include/datetime.php:43 ../../include/datetime.php:45
+msgid "Miscellaneous"
+msgstr ""
+
+#: ../../include/datetime.php:142
+msgid "YYYY-MM-DD or MM-DD"
+msgstr ""
+
+#: ../../include/datetime.php:259
+msgid "never"
+msgstr ""
+
+#: ../../include/datetime.php:265
+msgid "less than a second ago"
+msgstr ""
+
+#: ../../include/datetime.php:268
+msgid "year"
+msgstr ""
+
+#: ../../include/datetime.php:268
+msgid "years"
+msgstr ""
+
+#: ../../include/datetime.php:269
+msgid "month"
+msgstr ""
+
+#: ../../include/datetime.php:269
+msgid "months"
+msgstr ""
+
+#: ../../include/datetime.php:270
+msgid "week"
+msgstr ""
+
+#: ../../include/datetime.php:270
+msgid "weeks"
+msgstr ""
+
+#: ../../include/datetime.php:271
+msgid "day"
+msgstr ""
+
+#: ../../include/datetime.php:271
+msgid "days"
+msgstr ""
+
+#: ../../include/datetime.php:272
+msgid "hour"
+msgstr ""
+
+#: ../../include/datetime.php:272
+msgid "hours"
+msgstr ""
+
+#: ../../include/datetime.php:273
+msgid "minute"
+msgstr ""
+
+#: ../../include/datetime.php:273
+msgid "minutes"
+msgstr ""
+
+#: ../../include/datetime.php:274
+msgid "second"
+msgstr ""
+
+#: ../../include/datetime.php:274
+msgid "seconds"
+msgstr ""
+
+#: ../../include/datetime.php:283
+#, php-format
+msgid "%1$d %2$s ago"
+msgstr ""
+
+#: ../../include/datetime.php:491
+#, php-format
+msgid "%1$s's birthday"
+msgstr ""
+
+#: ../../include/datetime.php:492
+#, php-format
+msgid "Happy Birthday %1$s"
+msgstr ""
+
#: ../../include/js_strings.php:5
msgid "Delete this item?"
msgstr ""
@@ -3139,92 +3149,83 @@ msgstr ""
msgid "close all"
msgstr ""
-#: ../../include/js_strings.php:19
-msgid "timeago.prefixAgo"
+#: ../../include/js_strings.php:18
+msgid "Nothing new here"
msgstr ""
#: ../../include/js_strings.php:20
-msgid "timeago.prefixFromNow"
+msgid "timeago.prefixAgo"
msgstr ""
#: ../../include/js_strings.php:21
-msgid "ago"
+msgid "timeago.prefixFromNow"
msgstr ""
#: ../../include/js_strings.php:22
-msgid "from now"
+msgid "ago"
msgstr ""
#: ../../include/js_strings.php:23
-msgid "less than a minute"
+msgid "from now"
msgstr ""
#: ../../include/js_strings.php:24
-msgid "about a minute"
+msgid "less than a minute"
msgstr ""
#: ../../include/js_strings.php:25
+msgid "about a minute"
+msgstr ""
+
+#: ../../include/js_strings.php:26
#, php-format
msgid "%d minutes"
msgstr ""
-#: ../../include/js_strings.php:26
+#: ../../include/js_strings.php:27
msgid "about an hour"
msgstr ""
-#: ../../include/js_strings.php:27
+#: ../../include/js_strings.php:28
#, php-format
msgid "about %d hours"
msgstr ""
-#: ../../include/js_strings.php:28
+#: ../../include/js_strings.php:29
msgid "a day"
msgstr ""
-#: ../../include/js_strings.php:29
+#: ../../include/js_strings.php:30
#, php-format
msgid "%d days"
msgstr ""
-#: ../../include/js_strings.php:30
+#: ../../include/js_strings.php:31
msgid "about a month"
msgstr ""
-#: ../../include/js_strings.php:31
+#: ../../include/js_strings.php:32
#, php-format
msgid "%d months"
msgstr ""
-#: ../../include/js_strings.php:32
+#: ../../include/js_strings.php:33
msgid "about a year"
msgstr ""
-#: ../../include/js_strings.php:33
+#: ../../include/js_strings.php:34
#, php-format
msgid "%d years"
msgstr ""
-#: ../../include/js_strings.php:34
+#: ../../include/js_strings.php:35
msgid " "
msgstr ""
-#: ../../include/js_strings.php:35
+#: ../../include/js_strings.php:36
msgid "timeago.numbers"
msgstr ""
-#: ../../include/Contact.php:123
-msgid "New window"
-msgstr ""
-
-#: ../../include/Contact.php:124
-msgid "Open the selected location in a different window or browser tab"
-msgstr ""
-
-#: ../../include/Contact.php:211 ../../mod/admin.php:647
-#, php-format
-msgid "User '%s' deleted"
-msgstr ""
-
#: ../../include/profile_selectors.php:6
#: ../../include/profile_selectors.php:23
msgid "Male"
@@ -3276,13 +3277,6 @@ msgid "Non-specific"
msgstr ""
#: ../../include/profile_selectors.php:6
-#: ../../include/profile_selectors.php:23
-#: ../../include/profile_selectors.php:61
-#: ../../include/profile_selectors.php:97
-msgid "Other"
-msgstr ""
-
-#: ../../include/profile_selectors.php:6
msgid "Undecided"
msgstr ""
@@ -3468,224 +3462,396 @@ msgstr ""
msgid "Ask me"
msgstr ""
-#: ../../include/auth.php:90
-msgid "Logged out."
+#: ../../include/nav.php:95 ../../include/nav.php:128 ../../boot.php:1539
+msgid "Logout"
msgstr ""
-#: ../../include/auth.php:236
-msgid "Failed authentication"
+#: ../../include/nav.php:95 ../../include/nav.php:128
+msgid "End this session"
msgstr ""
-#: ../../include/auth.php:251 ../../mod/openid.php:188
-msgid "Login failed."
+#: ../../include/nav.php:98 ../../include/nav.php:159
+msgid "Home"
msgstr ""
-#: ../../include/permissions.php:13
-msgid "Can view my normal stream and posts"
+#: ../../include/nav.php:98
+msgid "Your posts and conversations"
msgstr ""
-#: ../../include/permissions.php:14
-msgid "Can view my default channel profile"
+#: ../../include/nav.php:99
+msgid "Your profile page"
msgstr ""
-#: ../../include/permissions.php:15
-msgid "Can view my photo albums"
+#: ../../include/nav.php:101
+msgid "Edit Profiles"
msgstr ""
-#: ../../include/permissions.php:16
-msgid "Can view my connections"
+#: ../../include/nav.php:101
+msgid "Manage/Edit profiles"
msgstr ""
-#: ../../include/permissions.php:17
-msgid "Can view my file storage"
+#: ../../include/nav.php:103
+msgid "Edit your profile"
msgstr ""
-#: ../../include/permissions.php:18
-msgid "Can view my webpages"
+#: ../../include/nav.php:105
+msgid "Your photos"
msgstr ""
-#: ../../include/permissions.php:21
-msgid "Can send me their channel stream and posts"
+#: ../../include/nav.php:106
+msgid "Your files"
msgstr ""
-#: ../../include/permissions.php:22
-msgid "Can post on my channel page (\"wall\")"
+#: ../../include/nav.php:111
+msgid "Your chatrooms"
msgstr ""
-#: ../../include/permissions.php:23
-msgid "Can comment on or like my posts"
+#: ../../include/nav.php:117
+msgid "Your bookmarks"
msgstr ""
-#: ../../include/permissions.php:24
-msgid "Can send me private mail messages"
+#: ../../include/nav.php:121
+msgid "Your webpages"
msgstr ""
-#: ../../include/permissions.php:25
-msgid "Can post photos to my photo albums"
+#: ../../include/nav.php:125
+msgid "Sign in"
msgstr ""
-#: ../../include/permissions.php:26
-msgid "Can like/dislike stuff"
+#: ../../include/nav.php:142
+#, php-format
+msgid "%s - click to logout"
msgstr ""
-#: ../../include/permissions.php:26
-msgid "Profiles and things other than posts/comments"
+#: ../../include/nav.php:145
+msgid "Remote authentication"
msgstr ""
-#: ../../include/permissions.php:28
-msgid "Can forward to all my channel contacts via post @mentions"
+#: ../../include/nav.php:145
+msgid "Click to authenticate to your home hub"
msgstr ""
-#: ../../include/permissions.php:28
-msgid "Advanced - useful for creating group forum channels"
+#: ../../include/nav.php:159
+msgid "Home Page"
msgstr ""
-#: ../../include/permissions.php:29
-msgid "Can chat with me (when available)"
+#: ../../include/nav.php:163 ../../mod/register.php:224 ../../boot.php:1516
+msgid "Register"
msgstr ""
-#: ../../include/permissions.php:30
-msgid "Can write to my file storage"
+#: ../../include/nav.php:163
+msgid "Create an account"
msgstr ""
-#: ../../include/permissions.php:31
-msgid "Can edit my webpages"
+#: ../../include/nav.php:168
+msgid "Help and documentation"
msgstr ""
-#: ../../include/permissions.php:33
-msgid "Can source my public posts in derived channels"
+#: ../../include/nav.php:171
+msgid "Applications, utilities, links, games"
msgstr ""
-#: ../../include/permissions.php:33
-msgid "Somewhat advanced - very useful in open communities"
+#: ../../include/nav.php:173
+msgid "Search site content"
msgstr ""
-#: ../../include/permissions.php:35
-msgid "Can administer my channel resources"
+#: ../../include/nav.php:176
+msgid "Channel Directory"
msgstr ""
-#: ../../include/permissions.php:35
-msgid "Extremely advanced. Leave this alone unless you know what you are doing"
+#: ../../include/nav.php:190
+msgid "Your matrix"
+msgstr ""
+
+#: ../../include/nav.php:191
+msgid "Mark all matrix notifications seen"
+msgstr ""
+
+#: ../../include/nav.php:193
+msgid "Channel home"
+msgstr ""
+
+#: ../../include/nav.php:194
+msgid "Mark all channel notifications seen"
+msgstr ""
+
+#: ../../include/nav.php:197 ../../mod/connections.php:406
+msgid "Connections"
+msgstr ""
+
+#: ../../include/nav.php:200
+msgid "Notices"
+msgstr ""
+
+#: ../../include/nav.php:200
+msgid "Notifications"
+msgstr ""
+
+#: ../../include/nav.php:201
+msgid "See all notifications"
+msgstr ""
+
+#: ../../include/nav.php:202 ../../mod/notifications.php:99
+msgid "Mark all system notifications seen"
+msgstr ""
+
+#: ../../include/nav.php:204
+msgid "Private mail"
+msgstr ""
+
+#: ../../include/nav.php:205
+msgid "See all private messages"
+msgstr ""
+
+#: ../../include/nav.php:206
+msgid "Mark all private messages seen"
+msgstr ""
+
+#: ../../include/nav.php:207
+msgid "Inbox"
+msgstr ""
+
+#: ../../include/nav.php:208
+msgid "Outbox"
+msgstr ""
+
+#: ../../include/nav.php:212
+msgid "Event Calendar"
+msgstr ""
+
+#: ../../include/nav.php:213
+msgid "See all events"
+msgstr ""
+
+#: ../../include/nav.php:214
+msgid "Mark all events seen"
+msgstr ""
+
+#: ../../include/nav.php:216
+msgid "Manage Your Channels"
+msgstr ""
+
+#: ../../include/nav.php:218
+msgid "Account/Channel Settings"
+msgstr ""
+
+#: ../../include/nav.php:226 ../../mod/admin.php:123
+msgid "Admin"
+msgstr ""
+
+#: ../../include/nav.php:226
+msgid "Site Setup and Configuration"
+msgstr ""
+
+#: ../../include/nav.php:262
+msgid "@name, #tag, content"
+msgstr ""
+
+#: ../../include/nav.php:263
+msgid "Please wait..."
+msgstr ""
+
+#: ../../include/security.php:357
+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 ""
#: ../../mod/mood.php:132
msgid "Set your current mood and tell your friends"
msgstr ""
-#: ../../mod/mitem.php:14 ../../mod/menu.php:92
+#: ../../mod/register.php:44
+msgid "Maximum daily site registrations exceeded. Please try again tomorrow."
+msgstr ""
+
+#: ../../mod/register.php:50
+msgid ""
+"Please indicate acceptance of the Terms of Service. Registration failed."
+msgstr ""
+
+#: ../../mod/register.php:84
+msgid "Passwords do not match."
+msgstr ""
+
+#: ../../mod/register.php:117
+msgid ""
+"Registration successful. Please check your email for validation instructions."
+msgstr ""
+
+#: ../../mod/register.php:123
+msgid "Your registration is pending approval by the site owner."
+msgstr ""
+
+#: ../../mod/register.php:126
+msgid "Your registration can not be processed."
+msgstr ""
+
+#: ../../mod/register.php:163
+msgid "Registration on this site/hub is by approval only."
+msgstr ""
+
+#: ../../mod/register.php:164
+msgid "<a href=\"pubsites\">Register at another affiliated site/hub</a>"
+msgstr ""
+
+#: ../../mod/register.php:174
+msgid ""
+"This site has exceeded the number of allowed daily account registrations. "
+"Please try again tomorrow."
+msgstr ""
+
+#: ../../mod/register.php:185
+msgid "Terms of Service"
+msgstr ""
+
+#: ../../mod/register.php:191
+#, php-format
+msgid "I accept the %s for this website"
+msgstr ""
+
+#: ../../mod/register.php:193
+#, php-format
+msgid "I am over 13 years of age and accept the %s for this website"
+msgstr ""
+
+#: ../../mod/register.php:207 ../../mod/admin.php:413
+msgid "Registration"
+msgstr ""
+
+#: ../../mod/register.php:212
+msgid "Membership on this site is by invitation only."
+msgstr ""
+
+#: ../../mod/register.php:213
+msgid "Please enter your invitation code"
+msgstr ""
+
+#: ../../mod/register.php:216
+msgid "Your email address"
+msgstr ""
+
+#: ../../mod/register.php:217
+msgid "Choose a password"
+msgstr ""
+
+#: ../../mod/register.php:218
+msgid "Please re-enter your password"
+msgstr ""
+
+#: ../../mod/mitem.php:24 ../../mod/menu.php:108
msgid "Menu not found."
msgstr ""
-#: ../../mod/mitem.php:47
+#: ../../mod/mitem.php:67
msgid "Menu element updated."
msgstr ""
-#: ../../mod/mitem.php:51
+#: ../../mod/mitem.php:71
msgid "Unable to update menu element."
msgstr ""
-#: ../../mod/mitem.php:57
+#: ../../mod/mitem.php:77
msgid "Menu element added."
msgstr ""
-#: ../../mod/mitem.php:61
+#: ../../mod/mitem.php:81
msgid "Unable to add menu element."
msgstr ""
-#: ../../mod/mitem.php:78 ../../mod/dirprofile.php:175 ../../mod/menu.php:120
-#: ../../mod/xchan.php:27
+#: ../../mod/mitem.php:111 ../../mod/menu.php:136 ../../mod/xchan.php:37
msgid "Not found."
msgstr ""
-#: ../../mod/mitem.php:96
+#: ../../mod/mitem.php:127
msgid "Manage Menu Elements"
msgstr ""
-#: ../../mod/mitem.php:99
+#: ../../mod/mitem.php:130
msgid "Edit menu"
msgstr ""
-#: ../../mod/mitem.php:102
+#: ../../mod/mitem.php:133
msgid "Edit element"
msgstr ""
-#: ../../mod/mitem.php:103
+#: ../../mod/mitem.php:134
msgid "Drop element"
msgstr ""
-#: ../../mod/mitem.php:104
+#: ../../mod/mitem.php:135
msgid "New element"
msgstr ""
-#: ../../mod/mitem.php:105
+#: ../../mod/mitem.php:136
msgid "Edit this menu container"
msgstr ""
-#: ../../mod/mitem.php:106
+#: ../../mod/mitem.php:137
msgid "Add menu element"
msgstr ""
-#: ../../mod/mitem.php:107
+#: ../../mod/mitem.php:138
msgid "Delete this menu item"
msgstr ""
-#: ../../mod/mitem.php:108
+#: ../../mod/mitem.php:139
msgid "Edit this menu item"
msgstr ""
-#: ../../mod/mitem.php:131
+#: ../../mod/mitem.php:158
msgid "New Menu Element"
msgstr ""
-#: ../../mod/mitem.php:133 ../../mod/mitem.php:176
+#: ../../mod/mitem.php:160 ../../mod/mitem.php:203
msgid "Menu Item Permissions"
msgstr ""
-#: ../../mod/mitem.php:134 ../../mod/mitem.php:177 ../../mod/settings.php:968
+#: ../../mod/mitem.php:161 ../../mod/mitem.php:204 ../../mod/settings.php:1039
msgid "(click to open/close)"
msgstr ""
-#: ../../mod/mitem.php:136 ../../mod/mitem.php:180
+#: ../../mod/mitem.php:163 ../../mod/mitem.php:207
msgid "Link text"
msgstr ""
-#: ../../mod/mitem.php:137 ../../mod/mitem.php:181
+#: ../../mod/mitem.php:164 ../../mod/mitem.php:208
msgid "URL of link"
msgstr ""
-#: ../../mod/mitem.php:138 ../../mod/mitem.php:182
-msgid "Use Red magic-auth if available"
+#: ../../mod/mitem.php:165 ../../mod/mitem.php:209
+msgid "Use RedMatrix magic-auth if available"
msgstr ""
-#: ../../mod/mitem.php:139 ../../mod/mitem.php:183
+#: ../../mod/mitem.php:166 ../../mod/mitem.php:210
msgid "Open link in new window"
msgstr ""
-#: ../../mod/mitem.php:141 ../../mod/mitem.php:185
+#: ../../mod/mitem.php:168 ../../mod/mitem.php:212
msgid "Order in list"
msgstr ""
-#: ../../mod/mitem.php:141 ../../mod/mitem.php:185
+#: ../../mod/mitem.php:168 ../../mod/mitem.php:212
msgid "Higher numbers will sink to bottom of listing"
msgstr ""
-#: ../../mod/mitem.php:154
+#: ../../mod/mitem.php:181
msgid "Menu item not found."
msgstr ""
-#: ../../mod/mitem.php:163
+#: ../../mod/mitem.php:190
msgid "Menu item deleted."
msgstr ""
-#: ../../mod/mitem.php:165
+#: ../../mod/mitem.php:192
msgid "Menu item could not be deleted."
msgstr ""
-#: ../../mod/mitem.php:174
+#: ../../mod/mitem.php:201
msgid "Edit Menu Element"
msgstr ""
-#: ../../mod/mitem.php:186 ../../mod/menu.php:114
+#: ../../mod/mitem.php:213 ../../mod/menu.php:130
msgid "Modify"
msgstr ""
@@ -3693,481 +3859,628 @@ msgstr ""
msgid "Some blurb about what to do when you're new here"
msgstr ""
-#: ../../mod/ping.php:237
-msgid "sent you a private message"
-msgstr ""
-
-#: ../../mod/ping.php:288
-msgid "added your channel"
-msgstr ""
-
-#: ../../mod/ping.php:329
-msgid "posted an event"
-msgstr ""
-
-#: ../../mod/acl.php:244
-msgid "network"
-msgstr ""
-
-#: ../../mod/settings.php:71
+#: ../../mod/settings.php:73
msgid "Name is required"
msgstr ""
-#: ../../mod/settings.php:75
+#: ../../mod/settings.php:77
msgid "Key and Secret are required"
msgstr ""
-#: ../../mod/settings.php:196
+#: ../../mod/settings.php:213
msgid "Passwords do not match. Password unchanged."
msgstr ""
-#: ../../mod/settings.php:200
+#: ../../mod/settings.php:217
msgid "Empty passwords are not allowed. Password unchanged."
msgstr ""
-#: ../../mod/settings.php:214
+#: ../../mod/settings.php:231
msgid "Password changed."
msgstr ""
-#: ../../mod/settings.php:216
+#: ../../mod/settings.php:233
msgid "Password update failed. Please try again."
msgstr ""
-#: ../../mod/settings.php:230
+#: ../../mod/settings.php:247
msgid "Not valid email."
msgstr ""
-#: ../../mod/settings.php:233
+#: ../../mod/settings.php:250
msgid "Protected email address. Cannot change to that email."
msgstr ""
-#: ../../mod/settings.php:242
+#: ../../mod/settings.php:259
msgid "System failure storing new email. Please try again."
msgstr ""
-#: ../../mod/settings.php:445
+#: ../../mod/settings.php:495
msgid "Settings updated."
msgstr ""
-#: ../../mod/settings.php:516 ../../mod/settings.php:542
-#: ../../mod/settings.php:578
+#: ../../mod/settings.php:564 ../../mod/settings.php:590
+#: ../../mod/settings.php:626
msgid "Add application"
msgstr ""
-#: ../../mod/settings.php:519
+#: ../../mod/settings.php:567
msgid "Name of application"
msgstr ""
-#: ../../mod/settings.php:520 ../../mod/settings.php:546
+#: ../../mod/settings.php:568 ../../mod/settings.php:594
msgid "Consumer Key"
msgstr ""
-#: ../../mod/settings.php:520 ../../mod/settings.php:521
+#: ../../mod/settings.php:568 ../../mod/settings.php:569
msgid "Automatically generated - change if desired. Max length 20"
msgstr ""
-#: ../../mod/settings.php:521 ../../mod/settings.php:547
+#: ../../mod/settings.php:569 ../../mod/settings.php:595
msgid "Consumer Secret"
msgstr ""
-#: ../../mod/settings.php:522 ../../mod/settings.php:548
+#: ../../mod/settings.php:570 ../../mod/settings.php:596
msgid "Redirect"
msgstr ""
-#: ../../mod/settings.php:522
+#: ../../mod/settings.php:570
msgid ""
"Redirect URI - leave blank unless your application specifically requires this"
msgstr ""
-#: ../../mod/settings.php:523 ../../mod/settings.php:549
+#: ../../mod/settings.php:571 ../../mod/settings.php:597
msgid "Icon url"
msgstr ""
-#: ../../mod/settings.php:523
+#: ../../mod/settings.php:571
msgid "Optional"
msgstr ""
-#: ../../mod/settings.php:534
+#: ../../mod/settings.php:582
msgid "You can't edit this application."
msgstr ""
-#: ../../mod/settings.php:577
+#: ../../mod/settings.php:625
msgid "Connected Apps"
msgstr ""
-#: ../../mod/settings.php:581
+#: ../../mod/settings.php:629
msgid "Client key starts with"
msgstr ""
-#: ../../mod/settings.php:582
+#: ../../mod/settings.php:630
msgid "No name"
msgstr ""
-#: ../../mod/settings.php:583
+#: ../../mod/settings.php:631
msgid "Remove authorization"
msgstr ""
-#: ../../mod/settings.php:594
+#: ../../mod/settings.php:642
msgid "No feature settings configured"
msgstr ""
-#: ../../mod/settings.php:602
+#: ../../mod/settings.php:650
msgid "Feature Settings"
msgstr ""
-#: ../../mod/settings.php:625
+#: ../../mod/settings.php:673
msgid "Account Settings"
msgstr ""
-#: ../../mod/settings.php:626
+#: ../../mod/settings.php:674
msgid "Password Settings"
msgstr ""
-#: ../../mod/settings.php:627
+#: ../../mod/settings.php:675
msgid "New Password:"
msgstr ""
-#: ../../mod/settings.php:628
+#: ../../mod/settings.php:676
msgid "Confirm:"
msgstr ""
-#: ../../mod/settings.php:628
+#: ../../mod/settings.php:676
msgid "Leave password fields blank unless changing"
msgstr ""
-#: ../../mod/settings.php:630 ../../mod/settings.php:944
+#: ../../mod/settings.php:678 ../../mod/settings.php:1013
msgid "Email Address:"
msgstr ""
-#: ../../mod/settings.php:631 ../../mod/removeaccount.php:61
+#: ../../mod/settings.php:679 ../../mod/removeaccount.php:61
msgid "Remove Account"
msgstr ""
-#: ../../mod/settings.php:632
+#: ../../mod/settings.php:680
msgid "Remove this account from this server including all its channels"
msgstr ""
-#: ../../mod/settings.php:633 ../../mod/settings.php:1007
+#: ../../mod/settings.php:681 ../../mod/settings.php:1095
msgid "Warning: This action is permanent and cannot be reversed."
msgstr ""
-#: ../../mod/settings.php:649
+#: ../../mod/settings.php:697
msgid "Off"
msgstr ""
-#: ../../mod/settings.php:649
+#: ../../mod/settings.php:697
msgid "On"
msgstr ""
-#: ../../mod/settings.php:656
+#: ../../mod/settings.php:704
msgid "Additional Features"
msgstr ""
-#: ../../mod/settings.php:681
+#: ../../mod/settings.php:729
msgid "Connector Settings"
msgstr ""
-#: ../../mod/settings.php:711 ../../mod/admin.php:361
+#: ../../mod/settings.php:768
msgid "No special theme for mobile devices"
msgstr ""
-#: ../../mod/settings.php:720
+#: ../../mod/settings.php:771
#, php-format
msgid "%s - (Experimental)"
msgstr ""
-#: ../../mod/settings.php:753
+#: ../../mod/settings.php:774 ../../mod/admin.php:363
+msgid "mobile"
+msgstr ""
+
+#: ../../mod/settings.php:810
msgid "Display Settings"
msgstr ""
-#: ../../mod/settings.php:759
+#: ../../mod/settings.php:816
msgid "Display Theme:"
msgstr ""
-#: ../../mod/settings.php:760
+#: ../../mod/settings.php:817
msgid "Mobile Theme:"
msgstr ""
-#: ../../mod/settings.php:761
+#: ../../mod/settings.php:818
msgid "Enable user zoom on mobile devices"
msgstr ""
-#: ../../mod/settings.php:762
+#: ../../mod/settings.php:819
msgid "Update browser every xx seconds"
msgstr ""
-#: ../../mod/settings.php:762
+#: ../../mod/settings.php:819
msgid "Minimum of 10 seconds, no maximum"
msgstr ""
-#: ../../mod/settings.php:763
+#: ../../mod/settings.php:820
msgid "Maximum number of conversations to load at any time:"
msgstr ""
-#: ../../mod/settings.php:763
+#: ../../mod/settings.php:820
msgid "Maximum of 100 items"
msgstr ""
-#: ../../mod/settings.php:764
+#: ../../mod/settings.php:821
msgid "Don't show emoticons"
msgstr ""
-#: ../../mod/settings.php:765
+#: ../../mod/settings.php:822
+msgid "Link post titles to source"
+msgstr ""
+
+#: ../../mod/settings.php:823
msgid "System Page Layout Editor - (advanced)"
msgstr ""
-#: ../../mod/settings.php:801
+#: ../../mod/settings.php:826
+msgid "Use blog/list mode on channel page"
+msgstr ""
+
+#: ../../mod/settings.php:826 ../../mod/settings.php:827
+msgid "(comments displayed separately)"
+msgstr ""
+
+#: ../../mod/settings.php:827
+msgid "Use blog/list mode on matrix page"
+msgstr ""
+
+#: ../../mod/settings.php:828
+msgid "Channel page max height of content (in pixels)"
+msgstr ""
+
+#: ../../mod/settings.php:828 ../../mod/settings.php:829
+msgid "click to expand content exceeding this height"
+msgstr ""
+
+#: ../../mod/settings.php:829
+msgid "Matrix page max height of content (in pixels)"
+msgstr ""
+
+#: ../../mod/settings.php:863
msgid "Nobody except yourself"
msgstr ""
-#: ../../mod/settings.php:802
+#: ../../mod/settings.php:864
msgid "Only those you specifically allow"
msgstr ""
-#: ../../mod/settings.php:803
+#: ../../mod/settings.php:865
msgid "Approved connections"
msgstr ""
-#: ../../mod/settings.php:804
+#: ../../mod/settings.php:866
msgid "Any connections"
msgstr ""
-#: ../../mod/settings.php:805
+#: ../../mod/settings.php:867
msgid "Anybody on this website"
msgstr ""
-#: ../../mod/settings.php:806
+#: ../../mod/settings.php:868
msgid "Anybody in this network"
msgstr ""
-#: ../../mod/settings.php:807
+#: ../../mod/settings.php:869
msgid "Anybody authenticated"
msgstr ""
-#: ../../mod/settings.php:808
+#: ../../mod/settings.php:870
msgid "Anybody on the internet"
msgstr ""
-#: ../../mod/settings.php:885
+#: ../../mod/settings.php:944
msgid "Publish your default profile in the network directory"
msgstr ""
-#: ../../mod/settings.php:885 ../../mod/settings.php:890
-#: ../../mod/settings.php:961 ../../mod/api.php:106 ../../mod/profiles.php:602
-#: ../../mod/admin.php:391
+#: ../../mod/settings.php:944 ../../mod/settings.php:949
+#: ../../mod/settings.php:1032 ../../mod/api.php:106
+#: ../../mod/profiles.php:592 ../../mod/admin.php:390
msgid "No"
msgstr ""
-#: ../../mod/settings.php:885 ../../mod/settings.php:890
-#: ../../mod/settings.php:961 ../../mod/api.php:105 ../../mod/profiles.php:601
-#: ../../mod/admin.php:393
+#: ../../mod/settings.php:944 ../../mod/settings.php:949
+#: ../../mod/settings.php:1032 ../../mod/api.php:105
+#: ../../mod/profiles.php:591 ../../mod/admin.php:392
msgid "Yes"
msgstr ""
-#: ../../mod/settings.php:890
+#: ../../mod/settings.php:949
msgid "Allow us to suggest you as a potential friend to new members?"
msgstr ""
-#: ../../mod/settings.php:894 ../../mod/profile_photo.php:365
+#: ../../mod/settings.php:953 ../../mod/profile_photo.php:365
msgid "or"
msgstr ""
-#: ../../mod/settings.php:899
+#: ../../mod/settings.php:958
msgid "Your channel address is"
msgstr ""
-#: ../../mod/settings.php:933
+#: ../../mod/settings.php:1002
msgid "Channel Settings"
msgstr ""
-#: ../../mod/settings.php:942
+#: ../../mod/settings.php:1011
msgid "Basic Settings"
msgstr ""
-#: ../../mod/settings.php:945
+#: ../../mod/settings.php:1014
msgid "Your Timezone:"
msgstr ""
-#: ../../mod/settings.php:946
+#: ../../mod/settings.php:1015
msgid "Default Post Location:"
msgstr ""
-#: ../../mod/settings.php:946
+#: ../../mod/settings.php:1015
msgid "Geographical location to display on your posts"
msgstr ""
-#: ../../mod/settings.php:947
+#: ../../mod/settings.php:1016
msgid "Use Browser Location:"
msgstr ""
-#: ../../mod/settings.php:949
+#: ../../mod/settings.php:1018
msgid "Adult Content"
msgstr ""
-#: ../../mod/settings.php:949
+#: ../../mod/settings.php:1018
msgid ""
"This channel frequently or regularly publishes adult content. (Please tag "
"any adult material and/or nudity with #NSFW)"
msgstr ""
-#: ../../mod/settings.php:951
+#: ../../mod/settings.php:1020
msgid "Security and Privacy Settings"
msgstr ""
-#: ../../mod/settings.php:953
+#: ../../mod/settings.php:1022
+msgid "Your permissions are already configured. Click to view/adjust"
+msgstr ""
+
+#: ../../mod/settings.php:1024
msgid "Hide my online presence"
msgstr ""
-#: ../../mod/settings.php:953
+#: ../../mod/settings.php:1024
msgid "Prevents displaying in your profile that you are online"
msgstr ""
-#: ../../mod/settings.php:955
+#: ../../mod/settings.php:1026
msgid "Simple Privacy Settings:"
msgstr ""
-#: ../../mod/settings.php:956
+#: ../../mod/settings.php:1027
msgid ""
"Very Public - <em>extremely permissive (should be used with caution)</em>"
msgstr ""
-#: ../../mod/settings.php:957
+#: ../../mod/settings.php:1028
msgid ""
"Typical - <em>default public, privacy when desired (similar to social "
"network permissions but with improved privacy)</em>"
msgstr ""
-#: ../../mod/settings.php:958
+#: ../../mod/settings.php:1029
msgid "Private - <em>default private, never open or public</em>"
msgstr ""
-#: ../../mod/settings.php:959
+#: ../../mod/settings.php:1030
msgid "Blocked - <em>default blocked to/from everybody</em>"
msgstr ""
-#: ../../mod/settings.php:961
+#: ../../mod/settings.php:1032
msgid "Allow others to tag your posts"
msgstr ""
-#: ../../mod/settings.php:961
+#: ../../mod/settings.php:1032
msgid ""
"Often used by the community to retro-actively flag inappropriate content"
msgstr ""
-#: ../../mod/settings.php:963
+#: ../../mod/settings.php:1034
msgid "Advanced Privacy Settings"
msgstr ""
-#: ../../mod/settings.php:965
+#: ../../mod/settings.php:1036
msgid "Expire other channel content after this many days"
msgstr ""
-#: ../../mod/settings.php:965
+#: ../../mod/settings.php:1036
msgid "0 or blank prevents expiration"
msgstr ""
-#: ../../mod/settings.php:966
+#: ../../mod/settings.php:1037
msgid "Maximum Friend Requests/Day:"
msgstr ""
-#: ../../mod/settings.php:966
+#: ../../mod/settings.php:1037
msgid "May reduce spam activity"
msgstr ""
-#: ../../mod/settings.php:967
+#: ../../mod/settings.php:1038
msgid "Default Post Permissions"
msgstr ""
-#: ../../mod/settings.php:979
+#: ../../mod/settings.php:1043
+msgid "Channel permissions category:"
+msgstr ""
+
+#: ../../mod/settings.php:1051
msgid "Maximum private messages per day from unknown people:"
msgstr ""
-#: ../../mod/settings.php:979
+#: ../../mod/settings.php:1051
msgid "Useful to reduce spamming"
msgstr ""
-#: ../../mod/settings.php:982
+#: ../../mod/settings.php:1054
msgid "Notification Settings"
msgstr ""
-#: ../../mod/settings.php:983
+#: ../../mod/settings.php:1055
msgid "By default post a status message when:"
msgstr ""
-#: ../../mod/settings.php:984
+#: ../../mod/settings.php:1056
msgid "accepting a friend request"
msgstr ""
-#: ../../mod/settings.php:985
+#: ../../mod/settings.php:1057
msgid "joining a forum/community"
msgstr ""
-#: ../../mod/settings.php:986
+#: ../../mod/settings.php:1058
msgid "making an <em>interesting</em> profile change"
msgstr ""
-#: ../../mod/settings.php:987
+#: ../../mod/settings.php:1059
msgid "Send a notification email when:"
msgstr ""
-#: ../../mod/settings.php:988
+#: ../../mod/settings.php:1060
msgid "You receive a connection request"
msgstr ""
-#: ../../mod/settings.php:989
+#: ../../mod/settings.php:1061
msgid "Your connections are confirmed"
msgstr ""
-#: ../../mod/settings.php:990
+#: ../../mod/settings.php:1062
msgid "Someone writes on your profile wall"
msgstr ""
-#: ../../mod/settings.php:991
+#: ../../mod/settings.php:1063
msgid "Someone writes a followup comment"
msgstr ""
-#: ../../mod/settings.php:992
+#: ../../mod/settings.php:1064
msgid "You receive a private message"
msgstr ""
-#: ../../mod/settings.php:993
+#: ../../mod/settings.php:1065
msgid "You receive a friend suggestion"
msgstr ""
-#: ../../mod/settings.php:994
+#: ../../mod/settings.php:1066
msgid "You are tagged in a post"
msgstr ""
-#: ../../mod/settings.php:995
+#: ../../mod/settings.php:1067
msgid "You are poked/prodded/etc. in a post"
msgstr ""
-#: ../../mod/settings.php:998
+#: ../../mod/settings.php:1070
+msgid "Show visual notifications including:"
+msgstr ""
+
+#: ../../mod/settings.php:1072
+msgid "Unseen matrix activity"
+msgstr ""
+
+#: ../../mod/settings.php:1073
+msgid "Unseen channel activity"
+msgstr ""
+
+#: ../../mod/settings.php:1074
+msgid "Unseen private messages"
+msgstr ""
+
+#: ../../mod/settings.php:1074 ../../mod/settings.php:1079
+#: ../../mod/settings.php:1080 ../../mod/settings.php:1081
+msgid "Recommended"
+msgstr ""
+
+#: ../../mod/settings.php:1075
+msgid "Upcoming events"
+msgstr ""
+
+#: ../../mod/settings.php:1076
+msgid "Events today"
+msgstr ""
+
+#: ../../mod/settings.php:1077
+msgid "Upcoming birthdays"
+msgstr ""
+
+#: ../../mod/settings.php:1077
+msgid "Not available in all themes"
+msgstr ""
+
+#: ../../mod/settings.php:1078
+msgid "System (personal) notifications"
+msgstr ""
+
+#: ../../mod/settings.php:1079
+msgid "System info messages"
+msgstr ""
+
+#: ../../mod/settings.php:1080
+msgid "System critical alerts"
+msgstr ""
+
+#: ../../mod/settings.php:1081
+msgid "New connections"
+msgstr ""
+
+#: ../../mod/settings.php:1082
+msgid "System Registrations"
+msgstr ""
+
+#: ../../mod/settings.php:1084
+msgid "Notify me of events this many days in advance"
+msgstr ""
+
+#: ../../mod/settings.php:1084
+msgid "Must be greater than 0"
+msgstr ""
+
+#: ../../mod/settings.php:1086
msgid "Advanced Account/Page Type Settings"
msgstr ""
-#: ../../mod/settings.php:999
+#: ../../mod/settings.php:1087
msgid "Change the behaviour of this account for special situations"
msgstr ""
-#: ../../mod/settings.php:1002
+#: ../../mod/settings.php:1090
msgid ""
"Please enable expert mode (in <a href=\"settings/features\">Settings > "
"Additional features</a>) to adjust!"
msgstr ""
-#: ../../mod/settings.php:1003
+#: ../../mod/settings.php:1091
msgid "Miscellaneous Settings"
msgstr ""
-#: ../../mod/settings.php:1005
+#: ../../mod/settings.php:1093
msgid "Personal menu to display in your channel pages"
msgstr ""
-#: ../../mod/settings.php:1006
+#: ../../mod/settings.php:1094
msgid "Remove this channel"
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:233
+msgid "Click on a channel to add or remove."
+msgstr ""
+
+#: ../../mod/search.php:13 ../../mod/photos.php:458 ../../mod/display.php:9
+#: ../../mod/viewconnections.php:17 ../../mod/directory.php:22
+msgid "Public access denied."
+msgstr ""
+
+#: ../../mod/subthread.php:103
+#, php-format
+msgid "%1$s is following %2$s's %3$s"
+msgstr ""
+
#: ../../mod/poke.php:159
msgid "Poke/Prod"
msgstr ""
@@ -4206,389 +4519,585 @@ msgid ""
"and/or create new posts for you?"
msgstr ""
-#: ../../mod/post.php:229
+#: ../../mod/setup.php:166
+msgid "Red Matrix Server - Setup"
+msgstr ""
+
+#: ../../mod/setup.php:172
+msgid "Could not connect to database."
+msgstr ""
+
+#: ../../mod/setup.php:176
msgid ""
-"Remote authentication blocked. You are logged into this site locally. Please "
-"logout and retry."
+"Could not connect to specified site URL. Possible SSL certificate or DNS "
+"issue."
msgstr ""
-#: ../../mod/post.php:261 ../../mod/openid.php:72 ../../mod/openid.php:178
-#, php-format
-msgid "Welcome %s. Remote authentication successful."
+#: ../../mod/setup.php:183
+msgid "Could not create table."
msgstr ""
-#: ../../mod/attach.php:9
-msgid "Item not available."
+#: ../../mod/setup.php:189
+msgid "Your site database has been installed."
msgstr ""
-#: ../../mod/probe.php:23 ../../mod/probe.php:29
-#, php-format
-msgid "Fetching URL returns error: %1$s"
+#: ../../mod/setup.php:194
+msgid ""
+"You may need to import the file \"install/schema_xxx.sql\" manually using a "
+"database client."
msgstr ""
-#: ../../mod/block.php:27 ../../mod/page.php:35
-msgid "Invalid item."
+#: ../../mod/setup.php:195 ../../mod/setup.php:264 ../../mod/setup.php:663
+msgid "Please see the file \"install/INSTALL.txt\"."
msgstr ""
-#: ../../mod/block.php:39 ../../mod/page.php:47 ../../mod/home.php:54
-#: ../../mod/wall_upload.php:28
-msgid "Channel not found."
+#: ../../mod/setup.php:261
+msgid "System check"
msgstr ""
-#: ../../mod/block.php:75 ../../mod/page.php:83 ../../mod/display.php:100
-#: ../../mod/help.php:72 ../../index.php:236
-msgid "Page not found."
+#: ../../mod/setup.php:265 ../../mod/events.php:445 ../../mod/photos.php:868
+msgid "Next"
msgstr ""
-#: ../../mod/profile_photo.php:108
-msgid "Image uploaded but image cropping failed."
+#: ../../mod/setup.php:266
+msgid "Check again"
msgstr ""
-#: ../../mod/profile_photo.php:161
-msgid "Image resize failed."
+#: ../../mod/setup.php:289
+msgid "Database connection"
msgstr ""
-#: ../../mod/profile_photo.php:205
+#: ../../mod/setup.php:290
msgid ""
-"Shift-reload the page or clear browser cache if the new photo does not "
-"display immediately."
+"In order to install Red Matrix we need to know how to connect to your "
+"database."
msgstr ""
-#: ../../mod/profile_photo.php:232
-#, php-format
-msgid "Image exceeds size limit of %d"
+#: ../../mod/setup.php:291
+msgid ""
+"Please contact your hosting provider or site administrator if you have "
+"questions about these settings."
msgstr ""
-#: ../../mod/profile_photo.php:241
-msgid "Unable to process image."
+#: ../../mod/setup.php:292
+msgid ""
+"The database you specify below should already exist. If it does not, please "
+"create it before continuing."
msgstr ""
-#: ../../mod/profile_photo.php:290 ../../mod/profile_photo.php:339
-msgid "Photo not available."
+#: ../../mod/setup.php:296
+msgid "Database Server Name"
msgstr ""
-#: ../../mod/profile_photo.php:358
-msgid "Upload File:"
+#: ../../mod/setup.php:296
+msgid "Default is localhost"
msgstr ""
-#: ../../mod/profile_photo.php:359
-msgid "Select a profile:"
+#: ../../mod/setup.php:297
+msgid "Database Port"
msgstr ""
-#: ../../mod/profile_photo.php:360
-msgid "Upload Profile Photo"
+#: ../../mod/setup.php:297
+msgid "Communication port number - use 0 for default"
msgstr ""
-#: ../../mod/profile_photo.php:365
-msgid "skip this step"
+#: ../../mod/setup.php:298
+msgid "Database Login Name"
msgstr ""
-#: ../../mod/profile_photo.php:365
-msgid "select a photo from your photo albums"
+#: ../../mod/setup.php:299
+msgid "Database Login Password"
msgstr ""
-#: ../../mod/profile_photo.php:379
-msgid "Crop Image"
+#: ../../mod/setup.php:300
+msgid "Database Name"
msgstr ""
-#: ../../mod/profile_photo.php:380
-msgid "Please adjust the image cropping for optimum viewing."
+#: ../../mod/setup.php:301
+msgid "Database Type"
msgstr ""
-#: ../../mod/profile_photo.php:382
-msgid "Done Editing"
+#: ../../mod/setup.php:303 ../../mod/setup.php:347
+msgid "Site administrator email address"
msgstr ""
-#: ../../mod/profile_photo.php:425
-msgid "Image uploaded successfully."
+#: ../../mod/setup.php:303 ../../mod/setup.php:347
+msgid ""
+"Your account email address must match this in order to use the web admin "
+"panel."
msgstr ""
-#: ../../mod/profile_photo.php:427
-msgid "Image upload failed."
+#: ../../mod/setup.php:304 ../../mod/setup.php:349
+msgid "Website URL"
msgstr ""
-#: ../../mod/profile_photo.php:436
-#, php-format
-msgid "Image size reduction [%s] failed."
+#: ../../mod/setup.php:304 ../../mod/setup.php:349
+msgid "Please use SSL (https) URL if available."
msgstr ""
-#: ../../mod/blocks.php:62
-msgid "Block Name"
+#: ../../mod/setup.php:307 ../../mod/setup.php:352
+msgid "Please select a default timezone for your website"
msgstr ""
-#: ../../mod/profiles.php:18 ../../mod/profiles.php:165
-#: ../../mod/profiles.php:222 ../../mod/profiles.php:575
-msgid "Profile not found."
+#: ../../mod/setup.php:335
+msgid "Site settings"
msgstr ""
-#: ../../mod/profiles.php:38
-msgid "Profile deleted."
+#: ../../mod/setup.php:395
+msgid "Could not find a command line version of PHP in the web server PATH."
msgstr ""
-#: ../../mod/profiles.php:56 ../../mod/profiles.php:92
-msgid "Profile-"
+#: ../../mod/setup.php:396
+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/profiles.php:77 ../../mod/profiles.php:120
-msgid "New profile created."
+#: ../../mod/setup.php:400
+msgid "PHP executable path"
msgstr ""
-#: ../../mod/profiles.php:98
-msgid "Profile unavailable to clone."
+#: ../../mod/setup.php:400
+msgid ""
+"Enter full path to php executable. You can leave this blank to continue the "
+"installation."
msgstr ""
-#: ../../mod/profiles.php:136
-msgid "Profile unavailable to export."
+#: ../../mod/setup.php:405
+msgid "Command line PHP"
msgstr ""
-#: ../../mod/profiles.php:232
-msgid "Profile Name is required."
+#: ../../mod/setup.php:414
+msgid ""
+"The command line version of PHP on your system does not have "
+"\"register_argc_argv\" enabled."
msgstr ""
-#: ../../mod/profiles.php:390
-msgid "Marital Status"
+#: ../../mod/setup.php:415
+msgid "This is required for message delivery to work."
msgstr ""
-#: ../../mod/profiles.php:394
-msgid "Romantic Partner"
+#: ../../mod/setup.php:417
+msgid "PHP register_argc_argv"
msgstr ""
-#: ../../mod/profiles.php:398
-msgid "Likes"
+#: ../../mod/setup.php:438
+msgid ""
+"Error: the \"openssl_pkey_new\" function on this system is not able to "
+"generate encryption keys"
msgstr ""
-#: ../../mod/profiles.php:402
-msgid "Dislikes"
+#: ../../mod/setup.php:439
+msgid ""
+"If running under Windows, please see \"http://www.php.net/manual/en/openssl."
+"installation.php\"."
msgstr ""
-#: ../../mod/profiles.php:406
-msgid "Work/Employment"
+#: ../../mod/setup.php:441
+msgid "Generate encryption keys"
msgstr ""
-#: ../../mod/profiles.php:409
-msgid "Religion"
+#: ../../mod/setup.php:448
+msgid "libCurl PHP module"
msgstr ""
-#: ../../mod/profiles.php:413
-msgid "Political Views"
+#: ../../mod/setup.php:449
+msgid "GD graphics PHP module"
msgstr ""
-#: ../../mod/profiles.php:417
-msgid "Gender"
+#: ../../mod/setup.php:450
+msgid "OpenSSL PHP module"
msgstr ""
-#: ../../mod/profiles.php:421
-msgid "Sexual Preference"
+#: ../../mod/setup.php:451
+msgid "mysqli or postgres PHP module"
msgstr ""
-#: ../../mod/profiles.php:425
-msgid "Homepage"
+#: ../../mod/setup.php:452
+msgid "mb_string PHP module"
msgstr ""
-#: ../../mod/profiles.php:429
-msgid "Interests"
+#: ../../mod/setup.php:453
+msgid "mcrypt PHP module"
msgstr ""
-#: ../../mod/profiles.php:433 ../../mod/admin.php:863
-msgid "Address"
+#: ../../mod/setup.php:458 ../../mod/setup.php:460
+msgid "Apache mod_rewrite module"
msgstr ""
-#: ../../mod/profiles.php:440 ../../mod/pubsites.php:25
-msgid "Location"
+#: ../../mod/setup.php:458
+msgid ""
+"Error: Apache webserver mod-rewrite module is required but not installed."
msgstr ""
-#: ../../mod/profiles.php:523
-msgid "Profile updated."
+#: ../../mod/setup.php:464 ../../mod/setup.php:467
+msgid "proc_open"
msgstr ""
-#: ../../mod/profiles.php:600
-msgid "Hide your contact/friend list from viewers of this profile?"
+#: ../../mod/setup.php:464
+msgid ""
+"Error: proc_open is required but is either not installed or has been "
+"disabled in php.ini"
msgstr ""
-#: ../../mod/profiles.php:642
-msgid "Edit Profile Details"
+#: ../../mod/setup.php:472
+msgid "Error: libCURL PHP module required but not installed."
msgstr ""
-#: ../../mod/profiles.php:644
-msgid "View this profile"
+#: ../../mod/setup.php:476
+msgid ""
+"Error: GD graphics PHP module with JPEG support required but not installed."
msgstr ""
-#: ../../mod/profiles.php:646
-msgid "Change Profile Photo"
+#: ../../mod/setup.php:480
+msgid "Error: openssl PHP module required but not installed."
msgstr ""
-#: ../../mod/profiles.php:647
-msgid "Create a new profile using these settings"
+#: ../../mod/setup.php:484
+msgid ""
+"Error: mysqli or postgres PHP module required but neither are installed."
msgstr ""
-#: ../../mod/profiles.php:648
-msgid "Clone this profile"
+#: ../../mod/setup.php:488
+msgid "Error: mb_string PHP module required but not installed."
msgstr ""
-#: ../../mod/profiles.php:649
-msgid "Delete this profile"
+#: ../../mod/setup.php:492
+msgid "Error: mcrypt PHP module required but not installed."
msgstr ""
-#: ../../mod/profiles.php:651
-msgid "Import profile from file"
+#: ../../mod/setup.php:508
+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/profiles.php:652
-msgid "Export profile to file"
+#: ../../mod/setup.php:509
+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/profiles.php:653
-msgid "Profile Name:"
+#: ../../mod/setup.php:510
+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/profiles.php:654
-msgid "Your Full Name:"
+#: ../../mod/setup.php:511
+msgid ""
+"You can alternatively skip this procedure and perform a manual installation. "
+"Please see the file \"install/INSTALL.txt\" for instructions."
msgstr ""
-#: ../../mod/profiles.php:655
-msgid "Title/Description:"
+#: ../../mod/setup.php:514
+msgid ".htconfig.php is writable"
msgstr ""
-#: ../../mod/profiles.php:656
-msgid "Your Gender:"
+#: ../../mod/setup.php:524
+msgid ""
+"Red uses the Smarty3 template engine to render its web views. Smarty3 "
+"compiles templates to PHP to speed up rendering."
msgstr ""
-#: ../../mod/profiles.php:657
+#: ../../mod/setup.php:525
#, php-format
-msgid "Birthday (%s):"
+msgid ""
+"In order to store these compiled templates, the web server needs to have "
+"write access to the directory %s under the Red top level folder."
msgstr ""
-#: ../../mod/profiles.php:658
-msgid "Street Address:"
+#: ../../mod/setup.php:526 ../../mod/setup.php:544
+msgid ""
+"Please ensure that the user that your web server runs as (e.g. www-data) has "
+"write access to this folder."
msgstr ""
-#: ../../mod/profiles.php:659
-msgid "Locality/City:"
+#: ../../mod/setup.php:527
+#, php-format
+msgid ""
+"Note: as a security measure, you should give the web server write access to "
+"%s only--not the template files (.tpl) that it contains."
msgstr ""
-#: ../../mod/profiles.php:660
-msgid "Postal/Zip Code:"
+#: ../../mod/setup.php:530
+#, php-format
+msgid "%s is writable"
msgstr ""
-#: ../../mod/profiles.php:661
-msgid "Country:"
+#: ../../mod/setup.php:543
+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/profiles.php:662
-msgid "Region/State:"
+#: ../../mod/setup.php:547
+msgid "store is writable"
msgstr ""
-#: ../../mod/profiles.php:663
-msgid "<span class=\"heart\">&hearts;</span> Marital Status:"
+#: ../../mod/setup.php:577
+msgid ""
+"SSL certificate cannot be validated. Fix certificate or disable https access "
+"to this site."
msgstr ""
-#: ../../mod/profiles.php:664
-msgid "Who: (if applicable)"
+#: ../../mod/setup.php:578
+msgid ""
+"If you have https access to your website or allow connections to TCP port "
+"443 (the https: port), you MUST use a browser-valid certificate. You MUST "
+"NOT use self-signed certificates!"
msgstr ""
-#: ../../mod/profiles.php:665
-msgid "Examples: cathy123, Cathy Williams, cathy@example.com"
+#: ../../mod/setup.php:579
+msgid ""
+"This restriction is incorporated because public posts from you may for "
+"example contain references to images on your own hub."
msgstr ""
-#: ../../mod/profiles.php:666
-msgid "Since [date]:"
+#: ../../mod/setup.php:580
+msgid ""
+"If your certificate is not recognized, members of other sites (who may "
+"themselves have valid certificates) will get a warning message on their own "
+"site complaining about security issues."
msgstr ""
-#: ../../mod/profiles.php:668
-msgid "Homepage URL:"
+#: ../../mod/setup.php:581
+msgid ""
+"This can cause usability issues elsewhere (not just on your own site) so we "
+"must insist on this requirement."
msgstr ""
-#: ../../mod/profiles.php:671
-msgid "Religious Views:"
+#: ../../mod/setup.php:582
+msgid ""
+"Providers are available that issue free certificates which are browser-valid."
msgstr ""
-#: ../../mod/profiles.php:672
-msgid "Keywords:"
+#: ../../mod/setup.php:584
+msgid "SSL certificate validation"
msgstr ""
-#: ../../mod/profiles.php:675
-msgid "Example: fishing photography software"
+#: ../../mod/setup.php:590
+msgid ""
+"Url rewrite in .htaccess is not working. Check your server configuration."
+"Test: "
msgstr ""
-#: ../../mod/profiles.php:676
-msgid "Used in directory listings"
+#: ../../mod/setup.php:592
+msgid "Url rewrite is working"
msgstr ""
-#: ../../mod/profiles.php:677
-msgid "Tell us about yourself..."
+#: ../../mod/setup.php:602
+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/profiles.php:678
-msgid "Hobbies/Interests"
+#: ../../mod/setup.php:626
+msgid "Errors encountered creating database tables."
msgstr ""
-#: ../../mod/profiles.php:679
-msgid "Contact information and Social Networks"
+#: ../../mod/setup.php:661
+msgid "<h1>What next</h1>"
msgstr ""
-#: ../../mod/profiles.php:680
-msgid "My other channels"
+#: ../../mod/setup.php:662
+msgid ""
+"IMPORTANT: You will need to [manually] setup a scheduled task for the poller."
msgstr ""
-#: ../../mod/profiles.php:681
-msgid "Musical interests"
+#: ../../mod/attach.php:9
+msgid "Item not available."
msgstr ""
-#: ../../mod/profiles.php:682
-msgid "Books, literature"
+#: ../../mod/probe.php:23 ../../mod/probe.php:29
+#, php-format
+msgid "Fetching URL returns error: %1$s"
msgstr ""
-#: ../../mod/profiles.php:683
-msgid "Television"
+#: ../../mod/block.php:27 ../../mod/page.php:33
+msgid "Invalid item."
msgstr ""
-#: ../../mod/profiles.php:684
-msgid "Film/dance/culture/entertainment"
+#: ../../mod/block.php:39 ../../mod/wall_upload.php:29 ../../mod/page.php:45
+msgid "Channel not found."
msgstr ""
-#: ../../mod/profiles.php:685
-msgid "Love/romance"
+#: ../../mod/block.php:75 ../../mod/display.php:102 ../../mod/help.php:70
+#: ../../mod/page.php:81 ../../index.php:241
+msgid "Page not found."
msgstr ""
-#: ../../mod/profiles.php:686
-msgid "Work/employment"
+#: ../../mod/uexport.php:33 ../../mod/uexport.php:34
+msgid "Export Channel"
msgstr ""
-#: ../../mod/profiles.php:687
-msgid "School/education"
+#: ../../mod/uexport.php:35
+msgid ""
+"Export your basic channel information to a small file. This acts as a "
+"backup of your connections, permissions, profile and basic data, which can "
+"be used to import your data to a new hub, but\tdoes not contain your content."
msgstr ""
-#: ../../mod/profiles.php:693
-msgid "This is your default profile."
+#: ../../mod/uexport.php:36
+msgid "Export Content"
msgstr ""
-#: ../../mod/profiles.php:704 ../../mod/directory.php:143
-#: ../../mod/dirprofile.php:92
-msgid "Age: "
+#: ../../mod/uexport.php:37
+msgid ""
+"Export your channel information and all the content to a JSON backup. This "
+"backs up all of your connections, permissions, profile data and all of your "
+"content, but is generally not suitable for importing a channel to a new hub "
+"as this file may be VERY large. Please be patient - it may take several "
+"minutes for this download to begin."
msgstr ""
-#: ../../mod/profiles.php:747
-msgid "Edit/Manage Profiles"
+#: ../../mod/delegate.php:95
+msgid "No potential page delegates located."
msgstr ""
-#: ../../mod/profiles.php:748
-msgid "Add profile things"
+#: ../../mod/delegate.php:121
+msgid "Delegate Page Management"
msgstr ""
-#: ../../mod/profiles.php:749
-msgid "Include desirable objects in your profile"
+#: ../../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/bookmarks.php:38
-msgid "Bookmark added"
+#: ../../mod/delegate.php:124
+msgid "Existing Page Managers"
msgstr ""
-#: ../../mod/bookmarks.php:58
-msgid "My Bookmarks"
+#: ../../mod/delegate.php:126
+msgid "Existing Page Delegates"
msgstr ""
-#: ../../mod/bookmarks.php:69
-msgid "My Connections Bookmarks"
+#: ../../mod/delegate.php:128
+msgid "Potential Delegates"
+msgstr ""
+
+#: ../../mod/delegate.php:130 ../../mod/photos.php:905 ../../mod/tagrm.php:133
+msgid "Remove"
+msgstr ""
+
+#: ../../mod/delegate.php:131
+msgid "Add"
+msgstr ""
+
+#: ../../mod/delegate.php:132
+msgid "No entries."
+msgstr ""
+
+#: ../../mod/siteinfo.php:92
+#, php-format
+msgid "Version %s"
+msgstr ""
+
+#: ../../mod/siteinfo.php:113
+msgid "Installed plugins/addons/apps:"
+msgstr ""
+
+#: ../../mod/siteinfo.php:126
+msgid "No installed plugins/addons/apps"
+msgstr ""
+
+#: ../../mod/siteinfo.php:134
+msgid "Red"
+msgstr ""
+
+#: ../../mod/siteinfo.php:135
+msgid ""
+"This is a hub of the Red Matrix - a global cooperative network of "
+"decentralized privacy enhanced websites."
+msgstr ""
+
+#: ../../mod/siteinfo.php:139
+msgid "Running at web location"
+msgstr ""
+
+#: ../../mod/siteinfo.php:140
+msgid ""
+"Please visit <a href=\"http://getzot.com\">GetZot.com</a> to learn more "
+"about the Red Matrix."
+msgstr ""
+
+#: ../../mod/siteinfo.php:141
+msgid "Bug reports and issues: please visit"
+msgstr ""
+
+#: ../../mod/siteinfo.php:144
+msgid ""
+"Suggestions, praise, etc. - please email \"redmatrix\" at librelist - dot com"
+msgstr ""
+
+#: ../../mod/siteinfo.php:146
+msgid "Site Administrators"
+msgstr ""
+
+#: ../../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 ""
+"Import all or selected content from the following channel into this channel "
+"and distribute it according to your channel settings."
+msgstr ""
+
+#: ../../mod/sources.php:102 ../../mod/sources.php:134
+msgid "Only import content with these words (one per line)"
+msgstr ""
+
+#: ../../mod/sources.php:102 ../../mod/sources.php:134
+msgid "Leave blank to import all public content"
+msgstr ""
+
+#: ../../mod/sources.php:103 ../../mod/sources.php:137
+#: ../../mod/new_channel.php:112
+msgid "Channel Name"
+msgstr ""
+
+#: ../../mod/sources.php:123 ../../mod/sources.php:150
+msgid "Source not found."
+msgstr ""
+
+#: ../../mod/sources.php:130
+msgid "Edit Source"
+msgstr ""
+
+#: ../../mod/sources.php:131
+msgid "Delete Source"
+msgstr ""
+
+#: ../../mod/sources.php:158
+msgid "Source removed"
+msgstr ""
+
+#: ../../mod/sources.php:160
+msgid "Unable to remove source."
msgstr ""
#: ../../mod/profperm.php:29 ../../mod/profperm.php:58
@@ -4611,6 +5120,83 @@ msgstr ""
msgid "All Connections"
msgstr ""
+#: ../../mod/events.php:81
+msgid "Event can not end before it has started."
+msgstr ""
+
+#: ../../mod/events.php:86
+msgid "Event title and start time are required."
+msgstr ""
+
+#: ../../mod/events.php:100
+msgid "Event not found."
+msgstr ""
+
+#: ../../mod/events.php:369
+msgid "l, F j"
+msgstr ""
+
+#: ../../mod/events.php:391
+msgid "Edit event"
+msgstr ""
+
+#: ../../mod/events.php:443
+msgid "Create New Event"
+msgstr ""
+
+#: ../../mod/events.php:444 ../../mod/photos.php:859
+msgid "Previous"
+msgstr ""
+
+#: ../../mod/events.php:446
+msgid "Export"
+msgstr ""
+
+#: ../../mod/events.php:571
+msgid "Event details"
+msgstr ""
+
+#: ../../mod/events.php:572
+msgid "Starting date and Title are required."
+msgstr ""
+
+#: ../../mod/events.php:574
+msgid "Categories (comma-separated list)"
+msgstr ""
+
+#: ../../mod/events.php:576
+msgid "Event Starts:"
+msgstr ""
+
+#: ../../mod/events.php:576 ../../mod/events.php:592 ../../mod/appman.php:91
+#: ../../mod/appman.php:92
+msgid "Required"
+msgstr ""
+
+#: ../../mod/events.php:582
+msgid "Finish date/time is not known or not relevant"
+msgstr ""
+
+#: ../../mod/events.php:584
+msgid "Event Finishes:"
+msgstr ""
+
+#: ../../mod/events.php:586
+msgid "Adjust for viewer timezone"
+msgstr ""
+
+#: ../../mod/events.php:588
+msgid "Description:"
+msgstr ""
+
+#: ../../mod/events.php:592
+msgid "Title:"
+msgstr ""
+
+#: ../../mod/events.php:594
+msgid "Share this event"
+msgstr ""
+
#: ../../mod/pubsites.php:16
msgid "Public Sites"
msgstr ""
@@ -4636,11 +5222,15 @@ msgstr ""
msgid "Registration Policy"
msgstr ""
+#: ../../mod/pubsites.php:25 ../../mod/profiles.php:428
+msgid "Location"
+msgstr ""
+
#: ../../mod/channel.php:25 ../../mod/chat.php:19
msgid "You must be logged in to see this page."
msgstr ""
-#: ../../mod/channel.php:86
+#: ../../mod/channel.php:87
msgid "Insufficient permissions. Request redirected to profile page."
msgstr ""
@@ -4701,98 +5291,49 @@ msgstr ""
msgid "%1$s's Chatrooms"
msgstr ""
-#: ../../mod/register.php:42
-msgid "Maximum daily site registrations exceeded. Please try again tomorrow."
-msgstr ""
-
-#: ../../mod/register.php:48
-msgid ""
-"Please indicate acceptance of the Terms of Service. Registration failed."
-msgstr ""
-
-#: ../../mod/register.php:82
-msgid "Passwords do not match."
-msgstr ""
-
-#: ../../mod/register.php:115
-msgid ""
-"Registration successful. Please check your email for validation instructions."
-msgstr ""
-
-#: ../../mod/register.php:121
-msgid "Your registration is pending approval by the site owner."
-msgstr ""
-
-#: ../../mod/register.php:124
-msgid "Your registration can not be processed."
-msgstr ""
-
-#: ../../mod/register.php:161
-msgid "Registration on this site/hub is by approval only."
-msgstr ""
-
-#: ../../mod/register.php:162
-msgid "<a href=\"pubsites\">Register at another affiliated site/hub</a>"
-msgstr ""
-
-#: ../../mod/register.php:170
-msgid ""
-"This site has exceeded the number of allowed daily account registrations. "
-"Please try again tomorrow."
-msgstr ""
-
-#: ../../mod/register.php:181
-msgid "Terms of Service"
-msgstr ""
-
-#: ../../mod/register.php:187
-#, php-format
-msgid "I accept the %s for this website"
-msgstr ""
-
-#: ../../mod/register.php:189
-#, php-format
-msgid "I am over 13 years of age and accept the %s for this website"
-msgstr ""
-
-#: ../../mod/register.php:203 ../../mod/admin.php:414
-msgid "Registration"
+#: ../../mod/chatsvc.php:111
+msgid "Away"
msgstr ""
-#: ../../mod/register.php:208
-msgid "Membership on this site is by invitation only."
+#: ../../mod/chatsvc.php:115
+msgid "Online"
msgstr ""
-#: ../../mod/register.php:209
-msgid "Please enter your invitation code"
+#: ../../mod/regmod.php:11
+msgid "Please login."
msgstr ""
-#: ../../mod/register.php:212
-msgid "Your email address"
+#: ../../mod/editpost.php:20 ../../mod/editblock.php:79
+#: ../../mod/editblock.php:95 ../../mod/editlayout.php:78
+#: ../../mod/editwebpage.php:77
+msgid "Item not found"
msgstr ""
-#: ../../mod/register.php:213
-msgid "Choose a password"
+#: ../../mod/editpost.php:31
+msgid "Item is not editable"
msgstr ""
-#: ../../mod/register.php:214
-msgid "Please re-enter your password"
+#: ../../mod/editpost.php:42 ../../mod/rpost.php:97
+msgid "Edit post"
msgstr ""
-#: ../../mod/chatsvc.php:111
-msgid "Away"
+#: ../../mod/editpost.php:53
+msgid "Delete item?"
msgstr ""
-#: ../../mod/chatsvc.php:115
-msgid "Online"
+#: ../../mod/editpost.php:116 ../../mod/editblock.php:147
+#: ../../mod/editlayout.php:143 ../../mod/editwebpage.php:178
+msgid "Insert YouTube video"
msgstr ""
-#: ../../mod/regmod.php:11
-msgid "Please login."
+#: ../../mod/editpost.php:117 ../../mod/editblock.php:148
+#: ../../mod/editlayout.php:144 ../../mod/editwebpage.php:179
+msgid "Insert Vorbis [.ogg] video"
msgstr ""
-#: ../../mod/cloud.php:126
-msgid "Red Matrix - Guests: Username: {your email address}, Password: +++"
+#: ../../mod/editpost.php:118 ../../mod/editblock.php:149
+#: ../../mod/editlayout.php:145 ../../mod/editwebpage.php:180
+msgid "Insert Vorbis [.ogg] audio"
msgstr ""
#: ../../mod/removeme.php:29
@@ -4867,86 +5408,92 @@ msgstr ""
msgid "Authenticate"
msgstr ""
-#: ../../mod/connect.php:55 ../../mod/connect.php:103
-msgid "Continue"
+#: ../../mod/lostpass.php:15
+msgid "No valid account found."
msgstr ""
-#: ../../mod/connect.php:84
-msgid "Premium Channel Setup"
+#: ../../mod/lostpass.php:29
+msgid "Password reset request issued. Check your email."
msgstr ""
-#: ../../mod/connect.php:86
-msgid "Enable premium channel connection restrictions"
+#: ../../mod/lostpass.php:35 ../../mod/lostpass.php:102
+#, php-format
+msgid "Site Member (%s)"
msgstr ""
-#: ../../mod/connect.php:87
-msgid ""
-"Please enter your restrictions or conditions, such as paypal receipt, usage "
-"guidelines, etc."
+#: ../../mod/lostpass.php:40
+#, php-format
+msgid "Password reset requested at %s"
msgstr ""
-#: ../../mod/connect.php:89 ../../mod/connect.php:109
+#: ../../mod/lostpass.php:63
msgid ""
-"This channel may require additional steps or acknowledgement of the "
-"following conditions prior to connecting:"
+"Request could not be verified. (You may have previously submitted it.) "
+"Password reset failed."
msgstr ""
-#: ../../mod/connect.php:90
-msgid ""
-"Potential connections will then see the following text before proceeding:"
+#: ../../mod/lostpass.php:85 ../../boot.php:1548
+msgid "Password Reset"
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."
+#: ../../mod/lostpass.php:86
+msgid "Your password has been reset as requested."
msgstr ""
-#: ../../mod/connect.php:100
-msgid "(No specific instructions have been provided by the channel owner.)"
+#: ../../mod/lostpass.php:87
+msgid "Your new password is"
msgstr ""
-#: ../../mod/connect.php:108
-msgid "Restricted or Premium Channel"
+#: ../../mod/lostpass.php:88
+msgid "Save or copy your new password - and then"
msgstr ""
-#: ../../mod/network.php:79
-msgid "No such group"
+#: ../../mod/lostpass.php:89
+msgid "click here to login"
msgstr ""
-#: ../../mod/network.php:118
-msgid "Search Results For:"
+#: ../../mod/lostpass.php:90
+msgid ""
+"Your password may be changed from the <em>Settings</em> page after "
+"successful login."
msgstr ""
-#: ../../mod/network.php:172
-msgid "Collection is empty"
+#: ../../mod/lostpass.php:107
+#, php-format
+msgid "Your password has changed at %s"
msgstr ""
-#: ../../mod/network.php:180
-msgid "Collection: "
+#: ../../mod/lostpass.php:122
+msgid "Forgot your Password?"
msgstr ""
-#: ../../mod/network.php:193
-msgid "Connection: "
+#: ../../mod/lostpass.php:123
+msgid ""
+"Enter your email address and submit to have your password reset. Then check "
+"your email for further instructions."
msgstr ""
-#: ../../mod/network.php:196
-msgid "Invalid connection."
+#: ../../mod/lostpass.php:124
+msgid "Email Address"
+msgstr ""
+
+#: ../../mod/lostpass.php:125
+msgid "Reset"
msgstr ""
#: ../../mod/connections.php:37 ../../mod/connedit.php:64
msgid "Could not access contact record."
msgstr ""
-#: ../../mod/connections.php:51 ../../mod/connedit.php:78
+#: ../../mod/connections.php:51 ../../mod/connedit.php:86
msgid "Could not locate selected profile."
msgstr ""
-#: ../../mod/connections.php:94 ../../mod/connedit.php:132
+#: ../../mod/connections.php:94 ../../mod/connedit.php:140
msgid "Connection updated."
msgstr ""
-#: ../../mod/connections.php:96 ../../mod/connedit.php:134
+#: ../../mod/connections.php:96 ../../mod/connedit.php:142
msgid "Failed to update connection record."
msgstr ""
@@ -5016,1345 +5563,1365 @@ msgid "%1$s [%2$s]"
msgstr ""
#: ../../mod/connections.php:372
-msgid "Edit contact"
+msgid "Edit connection"
msgstr ""
-#: ../../mod/connections.php:393
+#: ../../mod/connections.php:410
msgid "Search your connections"
msgstr ""
-#: ../../mod/connections.php:394
+#: ../../mod/connections.php:411
msgid "Finding: "
msgstr ""
-#: ../../mod/rpost.php:97 ../../mod/editpost.php:42
-msgid "Edit post"
+#: ../../mod/ping.php:265
+msgid "sent you a private message"
+msgstr ""
+
+#: ../../mod/ping.php:316
+msgid "added your channel"
+msgstr ""
+
+#: ../../mod/ping.php:357
+msgid "posted an event"
msgstr ""
-#: ../../mod/connedit.php:181
+#: ../../mod/connedit.php:189
msgid "is now connected to"
msgstr ""
-#: ../../mod/connedit.php:274
+#: ../../mod/connedit.php:310
msgid "Could not access address book record."
msgstr ""
-#: ../../mod/connedit.php:288
+#: ../../mod/connedit.php:324
msgid "Refresh failed - channel is currently unavailable."
msgstr ""
-#: ../../mod/connedit.php:295
+#: ../../mod/connedit.php:331
msgid "Channel has been unblocked"
msgstr ""
-#: ../../mod/connedit.php:296
+#: ../../mod/connedit.php:332
msgid "Channel has been blocked"
msgstr ""
-#: ../../mod/connedit.php:300 ../../mod/connedit.php:312
-#: ../../mod/connedit.php:324 ../../mod/connedit.php:336
-#: ../../mod/connedit.php:352
+#: ../../mod/connedit.php:336 ../../mod/connedit.php:348
+#: ../../mod/connedit.php:360 ../../mod/connedit.php:372
+#: ../../mod/connedit.php:388
msgid "Unable to set address book parameters."
msgstr ""
-#: ../../mod/connedit.php:307
+#: ../../mod/connedit.php:343
msgid "Channel has been unignored"
msgstr ""
-#: ../../mod/connedit.php:308
+#: ../../mod/connedit.php:344
msgid "Channel has been ignored"
msgstr ""
-#: ../../mod/connedit.php:319
+#: ../../mod/connedit.php:355
msgid "Channel has been unarchived"
msgstr ""
-#: ../../mod/connedit.php:320
+#: ../../mod/connedit.php:356
msgid "Channel has been archived"
msgstr ""
-#: ../../mod/connedit.php:331
+#: ../../mod/connedit.php:367
msgid "Channel has been unhidden"
msgstr ""
-#: ../../mod/connedit.php:332
+#: ../../mod/connedit.php:368
msgid "Channel has been hidden"
msgstr ""
-#: ../../mod/connedit.php:347
+#: ../../mod/connedit.php:383
msgid "Channel has been approved"
msgstr ""
-#: ../../mod/connedit.php:348
+#: ../../mod/connedit.php:384
msgid "Channel has been unapproved"
msgstr ""
-#: ../../mod/connedit.php:376
+#: ../../mod/connedit.php:412
msgid "Connection has been removed."
msgstr ""
-#: ../../mod/connedit.php:396
+#: ../../mod/connedit.php:432
#, php-format
msgid "View %s's profile"
msgstr ""
-#: ../../mod/connedit.php:400
+#: ../../mod/connedit.php:436
msgid "Refresh Permissions"
msgstr ""
-#: ../../mod/connedit.php:403
+#: ../../mod/connedit.php:439
msgid "Fetch updated permissions"
msgstr ""
-#: ../../mod/connedit.php:407
+#: ../../mod/connedit.php:443
msgid "Recent Activity"
msgstr ""
-#: ../../mod/connedit.php:410
+#: ../../mod/connedit.php:446
msgid "View recent posts and comments"
msgstr ""
-#: ../../mod/connedit.php:414 ../../mod/connedit.php:557
-#: ../../mod/admin.php:730
+#: ../../mod/connedit.php:450 ../../mod/connedit.php:595
+#: ../../mod/admin.php:732
msgid "Unblock"
msgstr ""
-#: ../../mod/connedit.php:414 ../../mod/connedit.php:557
-#: ../../mod/admin.php:729
+#: ../../mod/connedit.php:450 ../../mod/connedit.php:595
+#: ../../mod/admin.php:731
msgid "Block"
msgstr ""
-#: ../../mod/connedit.php:417
+#: ../../mod/connedit.php:453
msgid "Block or Unblock this connection"
msgstr ""
-#: ../../mod/connedit.php:421 ../../mod/connedit.php:558
+#: ../../mod/connedit.php:457 ../../mod/connedit.php:596
msgid "Unignore"
msgstr ""
-#: ../../mod/connedit.php:421 ../../mod/connedit.php:558
+#: ../../mod/connedit.php:457 ../../mod/connedit.php:596
#: ../../mod/notifications.php:51
msgid "Ignore"
msgstr ""
-#: ../../mod/connedit.php:424
+#: ../../mod/connedit.php:460
msgid "Ignore or Unignore this connection"
msgstr ""
-#: ../../mod/connedit.php:427
+#: ../../mod/connedit.php:463
msgid "Unarchive"
msgstr ""
-#: ../../mod/connedit.php:427
+#: ../../mod/connedit.php:463
msgid "Archive"
msgstr ""
-#: ../../mod/connedit.php:430
+#: ../../mod/connedit.php:466
msgid "Archive or Unarchive this connection"
msgstr ""
-#: ../../mod/connedit.php:433
+#: ../../mod/connedit.php:469
msgid "Unhide"
msgstr ""
-#: ../../mod/connedit.php:433
+#: ../../mod/connedit.php:469
msgid "Hide"
msgstr ""
-#: ../../mod/connedit.php:436
+#: ../../mod/connedit.php:472
msgid "Hide or Unhide this connection"
msgstr ""
-#: ../../mod/connedit.php:443
+#: ../../mod/connedit.php:479
msgid "Delete this connection"
msgstr ""
-#: ../../mod/connedit.php:486 ../../mod/connedit.php:515
+#: ../../mod/connedit.php:523 ../../mod/connedit.php:553
msgid "Approve this connection"
msgstr ""
-#: ../../mod/connedit.php:486
+#: ../../mod/connedit.php:523
msgid "Accept connection to allow communication"
msgstr ""
-#: ../../mod/connedit.php:502
-msgid "Automatic Permissions Settings"
-msgstr ""
-
-#: ../../mod/connedit.php:502
+#: ../../mod/connedit.php:539
#, php-format
msgid "Connections: settings for %s"
msgstr ""
-#: ../../mod/connedit.php:506
-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."
+#: ../../mod/connedit.php:540
+msgid "Apply these permissions automatically"
+msgstr ""
+
+#: ../../mod/connedit.php:544
+msgid "Apply the permissions indicated on this page to all new connections."
msgstr ""
-#: ../../mod/connedit.php:508
+#: ../../mod/connedit.php:546
msgid "Slide to adjust your degree of friendship"
msgstr ""
-#: ../../mod/connedit.php:514
+#: ../../mod/connedit.php:552
msgid "inherited"
msgstr ""
-#: ../../mod/connedit.php:516
+#: ../../mod/connedit.php:554
msgid "Connection has no individual permissions!"
msgstr ""
-#: ../../mod/connedit.php:517
+#: ../../mod/connedit.php:555
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:519
+#: ../../mod/connedit.php:557
msgid "Profile Visibility"
msgstr ""
-#: ../../mod/connedit.php:520
+#: ../../mod/connedit.php:558
#, php-format
msgid ""
"Please choose the profile you would like to display to %s when viewing your "
"profile securely."
msgstr ""
-#: ../../mod/connedit.php:521
+#: ../../mod/connedit.php:559
msgid "Contact Information / Notes"
msgstr ""
-#: ../../mod/connedit.php:522
+#: ../../mod/connedit.php:560
msgid "Edit contact notes"
msgstr ""
-#: ../../mod/connedit.php:524
+#: ../../mod/connedit.php:562
msgid "Their Settings"
msgstr ""
-#: ../../mod/connedit.php:525
+#: ../../mod/connedit.php:563
msgid "My Settings"
msgstr ""
-#: ../../mod/connedit.php:527
+#: ../../mod/connedit.php:565
msgid "Clear/Disable Automatic Permissions"
msgstr ""
-#: ../../mod/connedit.php:528
+#: ../../mod/connedit.php:566
msgid "Forum Members"
msgstr ""
-#: ../../mod/connedit.php:529
+#: ../../mod/connedit.php:567
msgid "Soapbox"
msgstr ""
-#: ../../mod/connedit.php:530
+#: ../../mod/connedit.php:568
msgid "Full Sharing (typical social network permissions)"
msgstr ""
-#: ../../mod/connedit.php:531
+#: ../../mod/connedit.php:569
msgid "Cautious Sharing "
msgstr ""
-#: ../../mod/connedit.php:532
+#: ../../mod/connedit.php:570
msgid "Follow Only"
msgstr ""
-#: ../../mod/connedit.php:533
+#: ../../mod/connedit.php:571
msgid "Individual Permissions"
msgstr ""
-#: ../../mod/connedit.php:534
+#: ../../mod/connedit.php:572
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/connedit.php:535
+#: ../../mod/connedit.php:573
msgid "Advanced Permissions"
msgstr ""
-#: ../../mod/connedit.php:536
+#: ../../mod/connedit.php:574
msgid "Simple Permissions (select one and submit)"
msgstr ""
-#: ../../mod/connedit.php:540
+#: ../../mod/connedit.php:578
#, php-format
msgid "Visit %s's profile - %s"
msgstr ""
-#: ../../mod/connedit.php:541
+#: ../../mod/connedit.php:579
msgid "Block/Unblock contact"
msgstr ""
-#: ../../mod/connedit.php:542
+#: ../../mod/connedit.php:580
msgid "Ignore contact"
msgstr ""
-#: ../../mod/connedit.php:543
+#: ../../mod/connedit.php:581
msgid "Repair URL settings"
msgstr ""
-#: ../../mod/connedit.php:544
+#: ../../mod/connedit.php:582
msgid "View conversations"
msgstr ""
-#: ../../mod/connedit.php:546
+#: ../../mod/connedit.php:584
msgid "Delete contact"
msgstr ""
-#: ../../mod/connedit.php:549
+#: ../../mod/connedit.php:587
msgid "Last update:"
msgstr ""
-#: ../../mod/connedit.php:551
+#: ../../mod/connedit.php:589
msgid "Update public posts"
msgstr ""
-#: ../../mod/connedit.php:553
+#: ../../mod/connedit.php:591
msgid "Update now"
msgstr ""
-#: ../../mod/connedit.php:559
+#: ../../mod/connedit.php:597
msgid "Currently blocked"
msgstr ""
-#: ../../mod/connedit.php:560
+#: ../../mod/connedit.php:598
msgid "Currently ignored"
msgstr ""
-#: ../../mod/connedit.php:561
+#: ../../mod/connedit.php:599
msgid "Currently archived"
msgstr ""
-#: ../../mod/connedit.php:562
+#: ../../mod/connedit.php:600
msgid "Currently pending"
msgstr ""
-#: ../../mod/connedit.php:563
+#: ../../mod/connedit.php:601
msgid "Hide this contact from others"
msgstr ""
-#: ../../mod/connedit.php:563
+#: ../../mod/connedit.php:601
msgid ""
"Replies/likes to your public posts <strong>may</strong> still be visible"
msgstr ""
-#: ../../mod/delegate.php:95
-msgid "No potential page delegates located."
+#: ../../mod/mail.php:33
+msgid "Unable to lookup recipient."
msgstr ""
-#: ../../mod/delegate.php:121
-msgid "Delegate Page Management"
+#: ../../mod/mail.php:41
+msgid "Unable to communicate with requested channel."
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."
+#: ../../mod/mail.php:48
+msgid "Cannot verify requested channel."
msgstr ""
-#: ../../mod/delegate.php:124
-msgid "Existing Page Managers"
+#: ../../mod/mail.php:74
+msgid "Selected channel has private message restrictions. Send failed."
msgstr ""
-#: ../../mod/delegate.php:126
-msgid "Existing Page Delegates"
+#: ../../mod/mail.php:136
+msgid "Message deleted."
msgstr ""
-#: ../../mod/delegate.php:128
-msgid "Potential Delegates"
+#: ../../mod/mail.php:153
+msgid "Message recalled."
msgstr ""
-#: ../../mod/delegate.php:130 ../../mod/photos.php:912 ../../mod/tagrm.php:93
-msgid "Remove"
+#: ../../mod/mail.php:222
+msgid "Send Private Message"
msgstr ""
-#: ../../mod/delegate.php:131
-msgid "Add"
+#: ../../mod/mail.php:223 ../../mod/mail.php:340
+msgid "To:"
msgstr ""
-#: ../../mod/delegate.php:132
-msgid "No entries."
+#: ../../mod/mail.php:228 ../../mod/mail.php:342
+msgid "Subject:"
msgstr ""
-#: ../../mod/search.php:13 ../../mod/directory.php:15
-#: ../../mod/dirprofile.php:9 ../../mod/display.php:9 ../../mod/photos.php:443
-#: ../../mod/viewconnections.php:17
-msgid "Public access denied."
+#: ../../mod/mail.php:232 ../../mod/mail.php:345 ../../mod/invite.php:131
+msgid "Your message:"
msgstr ""
-#: ../../mod/directory.php:146 ../../mod/dirprofile.php:95
-msgid "Gender: "
+#: ../../mod/mail.php:239
+msgid "Send"
msgstr ""
-#: ../../mod/directory.php:223
-msgid "Finding:"
+#: ../../mod/mail.php:266
+msgid "Message not found."
msgstr ""
-#: ../../mod/directory.php:244
-msgid "No entries (some entries may be hidden)."
+#: ../../mod/mail.php:309
+msgid "Delete message"
msgstr ""
-#: ../../mod/dirprofile.php:108
-msgid "Status: "
+#: ../../mod/mail.php:310
+msgid "Recall message"
msgstr ""
-#: ../../mod/dirprofile.php:109
-msgid "Sexual Preference: "
+#: ../../mod/mail.php:312
+msgid "Message has been recalled."
msgstr ""
-#: ../../mod/dirprofile.php:111
-msgid "Homepage: "
+#: ../../mod/mail.php:329
+msgid "Private Conversation"
msgstr ""
-#: ../../mod/dirprofile.php:112
-msgid "Hometown: "
+#: ../../mod/mail.php:333 ../../mod/message.php:72
+msgid "Delete conversation"
msgstr ""
-#: ../../mod/dirprofile.php:114
-msgid "About: "
+#: ../../mod/mail.php:335
+msgid ""
+"No secure communications available. You <strong>may</strong> be able to "
+"respond from the sender's profile page."
msgstr ""
-#: ../../mod/dirprofile.php:162
-msgid "Keywords: "
+#: ../../mod/mail.php:339
+msgid "Send Reply"
msgstr ""
-#: ../../mod/dirsearch.php:21
-msgid "This site is not a directory server"
+#: ../../mod/photos.php:77
+msgid "Page owner information could not be retrieved."
msgstr ""
-#: ../../mod/home.php:81
-msgid "Red Matrix - &quot;The Network&quot;"
+#: ../../mod/photos.php:97
+msgid "Album not found."
msgstr ""
-#: ../../mod/home.php:94
-#, php-format
-msgid "Welcome to %s"
+#: ../../mod/photos.php:119 ../../mod/photos.php:672
+msgid "Delete Album"
msgstr ""
-#: ../../mod/setup.php:162
-msgid "Red Matrix Server - Setup"
+#: ../../mod/photos.php:159 ../../mod/photos.php:958
+msgid "Delete Photo"
msgstr ""
-#: ../../mod/setup.php:168
-msgid "Could not connect to database."
+#: ../../mod/photos.php:469
+msgid "No photos selected"
msgstr ""
-#: ../../mod/setup.php:172
-msgid ""
-"Could not connect to specified site URL. Possible SSL certificate or DNS "
-"issue."
+#: ../../mod/photos.php:513
+msgid "Access to this item is restricted."
msgstr ""
-#: ../../mod/setup.php:179
-msgid "Could not create table."
+#: ../../mod/photos.php:552
+#, php-format
+msgid "%1$.2f MB of %2$.2f MB photo storage used."
msgstr ""
-#: ../../mod/setup.php:185
-msgid "Your site database has been installed."
+#: ../../mod/photos.php:555
+#, php-format
+msgid "%1$.2f MB photo storage used."
msgstr ""
-#: ../../mod/setup.php:190
-msgid ""
-"You may need to import the file \"install/database.sql\" manually using "
-"phpmyadmin or mysql."
+#: ../../mod/photos.php:579
+msgid "Upload Photos"
msgstr ""
-#: ../../mod/setup.php:191 ../../mod/setup.php:260 ../../mod/setup.php:655
-msgid "Please see the file \"install/INSTALL.txt\"."
+#: ../../mod/photos.php:583 ../../mod/photos.php:665 ../../mod/photos.php:943
+msgid "Enter a new album name"
msgstr ""
-#: ../../mod/setup.php:257
-msgid "System check"
+#: ../../mod/photos.php:584 ../../mod/photos.php:666 ../../mod/photos.php:944
+msgid "or select an existing one (doubleclick)"
msgstr ""
-#: ../../mod/setup.php:261 ../../mod/events.php:414
-msgid "Next"
+#: ../../mod/photos.php:585
+msgid "Do not show a status post for this upload"
msgstr ""
-#: ../../mod/setup.php:262
-msgid "Check again"
+#: ../../mod/photos.php:613
+msgid "Album name could not be decoded"
msgstr ""
-#: ../../mod/setup.php:284
-msgid "Database connection"
+#: ../../mod/photos.php:654 ../../mod/photos.php:1167
+#: ../../mod/photos.php:1183
+msgid "Contact Photos"
msgstr ""
-#: ../../mod/setup.php:285
-msgid ""
-"In order to install Red Matrix we need to know how to connect to your "
-"database."
+#: ../../mod/photos.php:678
+msgid "Show Newest First"
msgstr ""
-#: ../../mod/setup.php:286
-msgid ""
-"Please contact your hosting provider or site administrator if you have "
-"questions about these settings."
+#: ../../mod/photos.php:680
+msgid "Show Oldest First"
msgstr ""
-#: ../../mod/setup.php:287
-msgid ""
-"The database you specify below should already exist. If it does not, please "
-"create it before continuing."
+#: ../../mod/photos.php:707 ../../mod/photos.php:1215
+msgid "View Photo"
msgstr ""
-#: ../../mod/setup.php:291
-msgid "Database Server Name"
+#: ../../mod/photos.php:736
+msgid "Edit Album"
msgstr ""
-#: ../../mod/setup.php:291
-msgid "Default is localhost"
+#: ../../mod/photos.php:781
+msgid "Permission denied. Access to this item may be restricted."
msgstr ""
-#: ../../mod/setup.php:292
-msgid "Database Port"
+#: ../../mod/photos.php:783
+msgid "Photo not available"
msgstr ""
-#: ../../mod/setup.php:292
-msgid "Communication port number - use 0 for default"
+#: ../../mod/photos.php:841
+msgid "Use as profile photo"
msgstr ""
-#: ../../mod/setup.php:293
-msgid "Database Login Name"
+#: ../../mod/photos.php:848
+msgid "Private Photo"
msgstr ""
-#: ../../mod/setup.php:294
-msgid "Database Login Password"
+#: ../../mod/photos.php:863
+msgid "View Full Size"
msgstr ""
-#: ../../mod/setup.php:295
-msgid "Database Name"
+#: ../../mod/photos.php:937
+msgid "Edit photo"
msgstr ""
-#: ../../mod/setup.php:297 ../../mod/setup.php:339
-msgid "Site administrator email address"
+#: ../../mod/photos.php:939
+msgid "Rotate CW (right)"
msgstr ""
-#: ../../mod/setup.php:297 ../../mod/setup.php:339
-msgid ""
-"Your account email address must match this in order to use the web admin "
-"panel."
+#: ../../mod/photos.php:940
+msgid "Rotate CCW (left)"
msgstr ""
-#: ../../mod/setup.php:298 ../../mod/setup.php:341
-msgid "Website URL"
+#: ../../mod/photos.php:947
+msgid "Caption"
msgstr ""
-#: ../../mod/setup.php:298 ../../mod/setup.php:341
-msgid "Please use SSL (https) URL if available."
+#: ../../mod/photos.php:949
+msgid "Add a Tag"
msgstr ""
-#: ../../mod/setup.php:301 ../../mod/setup.php:344
-msgid "Please select a default timezone for your website"
+#: ../../mod/photos.php:953
+msgid "Example: @bob, @Barbara_Jensen, @jim@example.com"
msgstr ""
-#: ../../mod/setup.php:328
-msgid "Site settings"
+#: ../../mod/photos.php:956
+msgid "Flag as adult in album view"
msgstr ""
-#: ../../mod/setup.php:387
-msgid "Could not find a command line version of PHP in the web server PATH."
+#: ../../mod/photos.php:1133
+msgid "In This Photo:"
msgstr ""
-#: ../../mod/setup.php:388
-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."
+#: ../../mod/photos.php:1221
+msgid "View Album"
msgstr ""
-#: ../../mod/setup.php:392
-msgid "PHP executable path"
+#: ../../mod/photos.php:1244
+msgid "Recent Photos"
msgstr ""
-#: ../../mod/setup.php:392
-msgid ""
-"Enter full path to php executable. You can leave this blank to continue the "
-"installation."
+#: ../../mod/bookmarks.php:38
+msgid "Bookmark added"
msgstr ""
-#: ../../mod/setup.php:397
-msgid "Command line PHP"
+#: ../../mod/bookmarks.php:60
+msgid "My Bookmarks"
msgstr ""
-#: ../../mod/setup.php:406
-msgid ""
-"The command line version of PHP on your system does not have "
-"\"register_argc_argv\" enabled."
+#: ../../mod/bookmarks.php:71
+msgid "My Connections Bookmarks"
msgstr ""
-#: ../../mod/setup.php:407
-msgid "This is required for message delivery to work."
+#: ../../mod/dirsearch.php:21
+msgid "This site is not a directory server"
msgstr ""
-#: ../../mod/setup.php:409
-msgid "PHP register_argc_argv"
+#: ../../mod/cloud.php:130
+msgid "RedMatrix - Guests: Username: {your email address}, Password: +++"
msgstr ""
-#: ../../mod/setup.php:430
-msgid ""
-"Error: the \"openssl_pkey_new\" function on this system is not able to "
-"generate encryption keys"
+#: ../../mod/acl.php:245
+msgid "network"
msgstr ""
-#: ../../mod/setup.php:431
-msgid ""
-"If running under Windows, please see \"http://www.php.net/manual/en/openssl."
-"installation.php\"."
+#: ../../mod/blocks.php:99
+msgid "Block Name"
msgstr ""
-#: ../../mod/setup.php:433
-msgid "Generate encryption keys"
+#: ../../mod/editblock.php:115
+msgid "Edit Block"
msgstr ""
-#: ../../mod/setup.php:440
-msgid "libCurl PHP module"
+#: ../../mod/editblock.php:125
+msgid "Delete block?"
msgstr ""
-#: ../../mod/setup.php:441
-msgid "GD graphics PHP module"
+#: ../../mod/editblock.php:183
+msgid "Delete Block"
msgstr ""
-#: ../../mod/setup.php:442
-msgid "OpenSSL PHP module"
+#: ../../mod/pdledit.php:13
+msgid "Layout updated."
msgstr ""
-#: ../../mod/setup.php:443
-msgid "mysqli PHP module"
+#: ../../mod/pdledit.php:28 ../../mod/pdledit.php:53
+msgid "Edit System Page Description"
msgstr ""
-#: ../../mod/setup.php:444
-msgid "mb_string PHP module"
+#: ../../mod/pdledit.php:48
+msgid "Layout not found."
msgstr ""
-#: ../../mod/setup.php:445
-msgid "mcrypt PHP module"
+#: ../../mod/pdledit.php:54
+msgid "Module Name:"
msgstr ""
-#: ../../mod/setup.php:450 ../../mod/setup.php:452
-msgid "Apache mod_rewrite module"
+#: ../../mod/pdledit.php:55 ../../mod/layouts.php:107
+msgid "Layout Help"
msgstr ""
-#: ../../mod/setup.php:450
-msgid ""
-"Error: Apache webserver mod-rewrite module is required but not installed."
+#: ../../mod/editlayout.php:108
+msgid "Edit Layout"
msgstr ""
-#: ../../mod/setup.php:456 ../../mod/setup.php:459
-msgid "proc_open"
+#: ../../mod/editlayout.php:117
+msgid "Delete layout?"
msgstr ""
-#: ../../mod/setup.php:456
-msgid ""
-"Error: proc_open is required but is either not installed or has been "
-"disabled in php.ini"
+#: ../../mod/editlayout.php:178
+msgid "Delete Layout"
msgstr ""
-#: ../../mod/setup.php:464
-msgid "Error: libCURL PHP module required but not installed."
+#: ../../mod/home.php:48
+msgid "Red Matrix - &quot;The Network&quot;"
msgstr ""
-#: ../../mod/setup.php:468
-msgid ""
-"Error: GD graphics PHP module with JPEG support required but not installed."
+#: ../../mod/home.php:101
+#, php-format
+msgid "Welcome to %s"
msgstr ""
-#: ../../mod/setup.php:472
-msgid "Error: openssl PHP module required but not installed."
+#: ../../mod/editwebpage.php:140
+msgid "Edit Webpage"
msgstr ""
-#: ../../mod/setup.php:476
-msgid "Error: mysqli PHP module required but not installed."
+#: ../../mod/editwebpage.php:150
+msgid "Delete webpage?"
msgstr ""
-#: ../../mod/setup.php:480
-msgid "Error: mb_string PHP module required but not installed."
+#: ../../mod/editwebpage.php:215
+msgid "Delete Webpage"
msgstr ""
-#: ../../mod/setup.php:484
-msgid "Error: mcrypt PHP module required but not installed."
+#: ../../mod/impel.php:33
+msgid "webpage"
msgstr ""
-#: ../../mod/setup.php:500
-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/impel.php:38
+msgid "block"
msgstr ""
-#: ../../mod/setup.php:501
-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/impel.php:43
+msgid "layout"
msgstr ""
-#: ../../mod/setup.php:502
-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/impel.php:117
+#, php-format
+msgid "%s element installed"
msgstr ""
-#: ../../mod/setup.php:503
-msgid ""
-"You can alternatively skip this procedure and perform a manual installation. "
-"Please see the file \"install/INSTALL.txt\" for instructions."
+#: ../../mod/profile_photo.php:108
+msgid "Image uploaded but image cropping failed."
msgstr ""
-#: ../../mod/setup.php:506
-msgid ".htconfig.php is writable"
+#: ../../mod/profile_photo.php:161
+msgid "Image resize failed."
msgstr ""
-#: ../../mod/setup.php:516
+#: ../../mod/profile_photo.php:205
msgid ""
-"Red uses the Smarty3 template engine to render its web views. Smarty3 "
-"compiles templates to PHP to speed up rendering."
+"Shift-reload the page or clear browser cache if the new photo does not "
+"display immediately."
msgstr ""
-#: ../../mod/setup.php:517
+#: ../../mod/profile_photo.php:232
#, php-format
-msgid ""
-"In order to store these compiled templates, the web server needs to have "
-"write access to the directory %s under the Red top level folder."
+msgid "Image exceeds size limit of %d"
msgstr ""
-#: ../../mod/setup.php:518 ../../mod/setup.php:536
-msgid ""
-"Please ensure that the user that your web server runs as (e.g. www-data) has "
-"write access to this folder."
+#: ../../mod/profile_photo.php:241
+msgid "Unable to process image."
msgstr ""
-#: ../../mod/setup.php:519
-#, php-format
-msgid ""
-"Note: as a security measure, you should give the web server write access to "
-"%s only--not the template files (.tpl) that it contains."
+#: ../../mod/profile_photo.php:290 ../../mod/profile_photo.php:339
+msgid "Photo not available."
msgstr ""
-#: ../../mod/setup.php:522
-#, php-format
-msgid "%s is writable"
+#: ../../mod/profile_photo.php:358
+msgid "Upload File:"
msgstr ""
-#: ../../mod/setup.php:535
-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"
+#: ../../mod/profile_photo.php:359
+msgid "Select a profile:"
msgstr ""
-#: ../../mod/setup.php:539
-msgid "store is writable"
+#: ../../mod/profile_photo.php:360
+msgid "Upload Profile Photo"
msgstr ""
-#: ../../mod/setup.php:569
-msgid ""
-"SSL certificate cannot be validated. Fix certificate or disable https access "
-"to this site."
+#: ../../mod/profile_photo.php:365
+msgid "skip this step"
msgstr ""
-#: ../../mod/setup.php:570
-msgid ""
-"If you have https access to your website or allow connections to TCP port "
-"443 (the https: port), you MUST use a browser-valid certificate. You MUST "
-"NOT use self-signed certificates!"
+#: ../../mod/profile_photo.php:365
+msgid "select a photo from your photo albums"
msgstr ""
-#: ../../mod/setup.php:571
-msgid ""
-"This restriction is incorporated because public posts from you may for "
-"example contain references to images on your own hub."
+#: ../../mod/profile_photo.php:381
+msgid "Crop Image"
msgstr ""
-#: ../../mod/setup.php:572
-msgid ""
-"If your certificate is not recognized, members of other sites (who may "
-"themselves have valid certificates) will get a warning message on their own "
-"site complaining about security issues."
+#: ../../mod/profile_photo.php:382
+msgid "Please adjust the image cropping for optimum viewing."
msgstr ""
-#: ../../mod/setup.php:573
-msgid ""
-"This can cause usability issues elsewhere (not just on your own site) so we "
-"must insist on this requirement."
+#: ../../mod/profile_photo.php:384
+msgid "Done Editing"
msgstr ""
-#: ../../mod/setup.php:574
-msgid ""
-"Providers are available that issue free certificates which are browser-valid."
+#: ../../mod/profile_photo.php:427
+msgid "Image uploaded successfully."
msgstr ""
-#: ../../mod/setup.php:576
-msgid "SSL certificate validation"
+#: ../../mod/profile_photo.php:429
+msgid "Image upload failed."
msgstr ""
-#: ../../mod/setup.php:582
-msgid ""
-"Url rewrite in .htaccess is not working. Check your server configuration."
+#: ../../mod/profile_photo.php:438
+#, php-format
+msgid "Image size reduction [%s] failed."
msgstr ""
-#: ../../mod/setup.php:584
-msgid "Url rewrite is working"
+#: ../../mod/like.php:15
+msgid "Like/Dislike"
+msgstr ""
+
+#: ../../mod/like.php:20
+msgid "This action is restricted to members."
msgstr ""
-#: ../../mod/setup.php:594
+#: ../../mod/like.php:21
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."
+"Please <a href=\"rmagic\">login with your RedMatrix ID</a> or <a href="
+"\"register\">register as a new RedMatrix member</a> to continue."
msgstr ""
-#: ../../mod/setup.php:618
-msgid "Errors encountered creating database tables."
+#: ../../mod/like.php:77 ../../mod/like.php:104 ../../mod/like.php:142
+msgid "Invalid request."
msgstr ""
-#: ../../mod/setup.php:653
-msgid "<h1>What next</h1>"
+#: ../../mod/like.php:119
+msgid "thing"
msgstr ""
-#: ../../mod/setup.php:654
-msgid ""
-"IMPORTANT: You will need to [manually] setup a scheduled task for the poller."
+#: ../../mod/like.php:165
+msgid "Channel unavailable."
msgstr ""
-#: ../../mod/editblock.php:8 ../../mod/editblock.php:27
-#: ../../mod/editblock.php:53 ../../mod/editlayout.php:36
-#: ../../mod/editpost.php:20 ../../mod/editwebpage.php:32
-msgid "Item not found"
+#: ../../mod/like.php:204
+msgid "Previous action reversed."
msgstr ""
-#: ../../mod/editblock.php:77
-msgid "Edit Block"
+#: ../../mod/like.php:422
+msgid "Action completed."
msgstr ""
-#: ../../mod/editblock.php:87
-msgid "Delete block?"
+#: ../../mod/like.php:423
+msgid "Thank you."
msgstr ""
-#: ../../mod/editblock.php:115 ../../mod/editlayout.php:110
-#: ../../mod/editpost.php:116 ../../mod/editwebpage.php:147
-msgid "Insert YouTube video"
+#: ../../mod/help.php:41 ../../mod/help.php:47 ../../mod/help.php:53
+msgid "Help:"
msgstr ""
-#: ../../mod/editblock.php:116 ../../mod/editlayout.php:111
-#: ../../mod/editpost.php:117 ../../mod/editwebpage.php:148
-msgid "Insert Vorbis [.ogg] video"
+#: ../../mod/help.php:67 ../../index.php:238
+msgid "Not Found"
msgstr ""
-#: ../../mod/editblock.php:117 ../../mod/editlayout.php:112
-#: ../../mod/editpost.php:118 ../../mod/editwebpage.php:149
-msgid "Insert Vorbis [.ogg] audio"
+#: ../../mod/thing.php:96
+msgid "Thing updated"
msgstr ""
-#: ../../mod/editblock.php:153
-msgid "Delete Block"
+#: ../../mod/thing.php:156
+msgid "Object store: failed"
msgstr ""
-#: ../../mod/pdledit.php:13
-msgid "Layout updated."
+#: ../../mod/thing.php:160
+msgid "Thing added"
msgstr ""
-#: ../../mod/pdledit.php:28 ../../mod/pdledit.php:53
-msgid "Edit System Page Description"
+#: ../../mod/thing.php:180
+#, php-format
+msgid "OBJ: %1$s %2$s %3$s"
msgstr ""
-#: ../../mod/pdledit.php:48
-msgid "Layout not found."
+#: ../../mod/thing.php:232
+msgid "Show Thing"
msgstr ""
-#: ../../mod/pdledit.php:54
-msgid "Module Name:"
+#: ../../mod/thing.php:239
+msgid "item not found."
msgstr ""
-#: ../../mod/pdledit.php:55 ../../mod/layouts.php:59
-msgid "Layout Help"
+#: ../../mod/thing.php:270
+msgid "Edit Thing"
msgstr ""
-#: ../../mod/editlayout.php:72
-msgid "Edit Layout"
+#: ../../mod/thing.php:272 ../../mod/thing.php:319
+msgid "Select a profile"
msgstr ""
-#: ../../mod/editlayout.php:82
-msgid "Delete layout?"
+#: ../../mod/thing.php:276 ../../mod/thing.php:322
+msgid "Post an activity"
msgstr ""
-#: ../../mod/editlayout.php:146
-msgid "Delete Layout"
+#: ../../mod/thing.php:276 ../../mod/thing.php:322
+msgid "Only sends to viewers of the applicable profile"
msgstr ""
-#: ../../mod/editpost.php:31
-msgid "Item is not editable"
+#: ../../mod/thing.php:278 ../../mod/thing.php:324
+msgid "Name of thing e.g. something"
msgstr ""
-#: ../../mod/editpost.php:53
-msgid "Delete item?"
+#: ../../mod/thing.php:280 ../../mod/thing.php:325
+msgid "URL of thing (optional)"
msgstr ""
-#: ../../mod/editwebpage.php:106
-msgid "Edit Webpage"
+#: ../../mod/thing.php:282 ../../mod/thing.php:326
+msgid "URL for photo of thing (optional)"
msgstr ""
-#: ../../mod/editwebpage.php:116
-msgid "Delete webpage?"
+#: ../../mod/thing.php:317
+msgid "Add Thing to your Profile"
msgstr ""
-#: ../../mod/editwebpage.php:186
-msgid "Delete Webpage"
+#: ../../mod/fsuggest.php:20 ../../mod/fsuggest.php:92
+msgid "Contact not found."
+msgstr ""
+
+#: ../../mod/fsuggest.php:63
+msgid "Friend suggestion sent."
+msgstr ""
+
+#: ../../mod/fsuggest.php:97
+msgid "Suggest Friends"
msgstr ""
-#: ../../mod/siteinfo.php:57
+#: ../../mod/fsuggest.php:99
#, php-format
-msgid "Version %s"
+msgid "Suggest a friend for %s"
msgstr ""
-#: ../../mod/siteinfo.php:76
-msgid "Installed plugins/addons/apps:"
+#: ../../mod/filestorage.php:76
+msgid "Permission Denied."
msgstr ""
-#: ../../mod/siteinfo.php:89
-msgid "No installed plugins/addons/apps"
+#: ../../mod/filestorage.php:92
+msgid "File not found."
msgstr ""
-#: ../../mod/siteinfo.php:97
-msgid "Red"
+#: ../../mod/filestorage.php:131
+msgid "Edit file permissions"
msgstr ""
-#: ../../mod/siteinfo.php:98
-msgid ""
-"This is a hub of the Red Matrix - a global cooperative network of "
-"decentralized privacy enhanced websites."
+#: ../../mod/filestorage.php:140
+msgid "Set/edit permissions"
msgstr ""
-#: ../../mod/siteinfo.php:101
-msgid "Running at web location"
+#: ../../mod/filestorage.php:141
+msgid "Include all files and sub folders"
msgstr ""
-#: ../../mod/siteinfo.php:102
+#: ../../mod/filestorage.php:142
+msgid "Return to file list"
+msgstr ""
+
+#: ../../mod/filestorage.php:144
+msgid "Copy/paste this code to attach file to a post"
+msgstr ""
+
+#: ../../mod/filestorage.php:145
+msgid "Copy/paste this URL to link file from a web page"
+msgstr ""
+
+#: ../../mod/connect.php:56 ../../mod/connect.php:104
+msgid "Continue"
+msgstr ""
+
+#: ../../mod/connect.php:85
+msgid "Premium Channel Setup"
+msgstr ""
+
+#: ../../mod/connect.php:87
+msgid "Enable premium channel connection restrictions"
+msgstr ""
+
+#: ../../mod/connect.php:88
msgid ""
-"Please visit <a href=\"http://getzot.com\">GetZot.com</a> to learn more "
-"about the Red Matrix."
+"Please enter your restrictions or conditions, such as paypal receipt, usage "
+"guidelines, etc."
msgstr ""
-#: ../../mod/siteinfo.php:103
-msgid "Bug reports and issues: please visit"
+#: ../../mod/connect.php:90 ../../mod/connect.php:110
+msgid ""
+"This channel may require additional steps or acknowledgement of the "
+"following conditions prior to connecting:"
msgstr ""
-#: ../../mod/siteinfo.php:106
+#: ../../mod/connect.php:91
msgid ""
-"Suggestions, praise, etc. - please email \"redmatrix\" at librelist - dot com"
+"Potential connections will then see the following text before proceeding:"
msgstr ""
-#: ../../mod/siteinfo.php:108
-msgid "Site Administrators"
+#: ../../mod/connect.php:92 ../../mod/connect.php:113
+msgid ""
+"By continuing, I certify that I have complied with any instructions provided "
+"on this page."
msgstr ""
-#: ../../mod/photos.php:77
-msgid "Page owner information could not be retrieved."
+#: ../../mod/connect.php:101
+msgid "(No specific instructions have been provided by the channel owner.)"
msgstr ""
-#: ../../mod/photos.php:97
-msgid "Album not found."
+#: ../../mod/connect.php:109
+msgid "Restricted or Premium Channel"
msgstr ""
-#: ../../mod/photos.php:119 ../../mod/photos.php:675
-msgid "Delete Album"
+#: ../../mod/filer.php:49
+msgid "- select -"
msgstr ""
-#: ../../mod/photos.php:159 ../../mod/photos.php:963
-msgid "Delete Photo"
+#: ../../mod/locs.php:19 ../../mod/locs.php:46
+msgid "Location not found."
msgstr ""
-#: ../../mod/photos.php:453
-msgid "No photos selected"
+#: ../../mod/locs.php:50
+msgid "Primary location cannot be removed."
msgstr ""
-#: ../../mod/photos.php:500
-msgid "Access to this item is restricted."
+#: ../../mod/locs.php:82
+msgid "No locations found."
msgstr ""
-#: ../../mod/photos.php:574
-#, php-format
-msgid "You have used %1$.2f Mbytes of %2$.2f Mbytes photo storage."
+#: ../../mod/locs.php:95
+msgid "Manage Channel Locations"
+msgstr ""
+
+#: ../../mod/locs.php:96
+msgid "Location (address)"
+msgstr ""
+
+#: ../../mod/locs.php:97
+msgid "Primary Location"
+msgstr ""
+
+#: ../../mod/locs.php:98
+msgid "Drop location"
+msgstr ""
+
+#: ../../mod/follow.php:25
+msgid "Channel added."
msgstr ""
-#: ../../mod/photos.php:577
+#: ../../mod/import.php:25
#, php-format
-msgid "You have used %1$.2f Mbytes of photo storage."
+msgid "Your service plan only allows %d channels."
msgstr ""
-#: ../../mod/photos.php:596
-msgid "Upload Photos"
+#: ../../mod/import.php:51
+msgid "Nothing to import."
msgstr ""
-#: ../../mod/photos.php:600 ../../mod/photos.php:670
-msgid "New album name: "
+#: ../../mod/import.php:75
+msgid "Unable to download data from old server"
msgstr ""
-#: ../../mod/photos.php:601
-msgid "or existing album name: "
+#: ../../mod/import.php:81
+msgid "Imported file is empty."
msgstr ""
-#: ../../mod/photos.php:602
-msgid "Do not show a status post for this upload"
+#: ../../mod/import.php:106
+msgid ""
+"Cannot create a duplicate channel identifier on this system. Import failed."
msgstr ""
-#: ../../mod/photos.php:622
-msgid "Album name could not be decoded"
+#: ../../mod/import.php:127
+msgid "Unable to create a unique channel address. Import failed."
msgstr ""
-#: ../../mod/photos.php:659 ../../mod/photos.php:681 ../../mod/photos.php:1135
-#: ../../mod/photos.php:1150
-msgid "Contact Photos"
+#: ../../mod/import.php:147
+msgid "Channel clone failed. Import failed."
msgstr ""
-#: ../../mod/photos.php:685
-msgid "Edit Album"
+#: ../../mod/import.php:157
+msgid "Cloned channel not found. Import failed."
msgstr ""
-#: ../../mod/photos.php:691
-msgid "Show Newest First"
+#: ../../mod/import.php:475
+msgid "Import completed."
msgstr ""
-#: ../../mod/photos.php:693
-msgid "Show Oldest First"
+#: ../../mod/import.php:487
+msgid "You must be logged in to use this feature."
msgstr ""
-#: ../../mod/photos.php:736 ../../mod/photos.php:1182
-msgid "View Photo"
+#: ../../mod/import.php:492
+msgid "Import Channel"
msgstr ""
-#: ../../mod/photos.php:782
-msgid "Permission denied. Access to this item may be restricted."
+#: ../../mod/import.php:493
+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 ""
-#: ../../mod/photos.php:784
-msgid "Photo not available"
+#: ../../mod/import.php:494
+msgid "File to Upload"
msgstr ""
-#: ../../mod/photos.php:844
-msgid "Use as profile photo"
+#: ../../mod/import.php:495
+msgid "Or provide the old server/hub details"
msgstr ""
-#: ../../mod/photos.php:868
-msgid "View Full Size"
+#: ../../mod/import.php:496
+msgid "Your old identity address (xyz@example.com)"
msgstr ""
-#: ../../mod/photos.php:946
-msgid "Edit photo"
+#: ../../mod/import.php:497
+msgid "Your old login email address"
msgstr ""
-#: ../../mod/photos.php:948
-msgid "Rotate CW (right)"
+#: ../../mod/import.php:498
+msgid "Your old login password"
msgstr ""
-#: ../../mod/photos.php:949
-msgid "Rotate CCW (left)"
+#: ../../mod/import.php:499
+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 ""
-#: ../../mod/photos.php:952
-msgid "New album name"
+#: ../../mod/import.php:500
+msgid "Make this hub my primary location"
msgstr ""
-#: ../../mod/photos.php:955
-msgid "Caption"
+#: ../../mod/import.php:501
+msgid "Import existing posts if possible"
msgstr ""
-#: ../../mod/photos.php:957
-msgid "Add a Tag"
+#: ../../mod/item.php:159
+msgid "Unable to locate original post."
msgstr ""
-#: ../../mod/photos.php:960
-msgid "Example: @bob, @Barbara_Jensen, @jim@example.com, #California, #camping"
+#: ../../mod/item.php:418
+msgid "Empty post discarded."
msgstr ""
-#: ../../mod/photos.php:1113
-msgid "In This Photo:"
+#: ../../mod/item.php:460
+msgid "Executable content type not permitted to this channel."
msgstr ""
-#: ../../mod/photos.php:1188
-msgid "View Album"
+#: ../../mod/item.php:899
+msgid "System error. Post not saved."
msgstr ""
-#: ../../mod/photos.php:1197
-msgid "Recent Photos"
+#: ../../mod/item.php:1117
+#, php-format
+msgid "You have reached your limit of %1$.0f top level posts."
msgstr ""
-#: ../../mod/sources.php:32
-msgid "Failed to create source. No channel selected."
+#: ../../mod/item.php:1123
+#, php-format
+msgid "You have reached your limit of %1$.0f webpages."
msgstr ""
-#: ../../mod/sources.php:45
-msgid "Source created."
+#: ../../mod/suggest.php:35
+msgid ""
+"No suggestions available. If this is a new site, please try again in 24 "
+"hours."
msgstr ""
-#: ../../mod/sources.php:57
-msgid "Source updated."
+#: ../../mod/layouts.php:110
+msgid "Help with this feature"
msgstr ""
-#: ../../mod/sources.php:82
-msgid "*"
+#: ../../mod/layouts.php:130
+msgid "Layout Name"
msgstr ""
-#: ../../mod/sources.php:89
-msgid "Manage remote sources of content for your channel."
+#: ../../mod/tagger.php:98
+#, php-format
+msgid "%1$s tagged %2$s's %3$s with %4$s"
msgstr ""
-#: ../../mod/sources.php:90 ../../mod/sources.php:100
-msgid "New Source"
+#: ../../mod/profiles.php:18 ../../mod/profiles.php:165
+#: ../../mod/profiles.php:222 ../../mod/profiles.php:565
+msgid "Profile not found."
msgstr ""
-#: ../../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."
+#: ../../mod/profiles.php:38
+msgid "Profile deleted."
msgstr ""
-#: ../../mod/sources.php:102 ../../mod/sources.php:134
-msgid "Only import content with these words (one per line)"
+#: ../../mod/profiles.php:56 ../../mod/profiles.php:92
+msgid "Profile-"
msgstr ""
-#: ../../mod/sources.php:102 ../../mod/sources.php:134
-msgid "Leave blank to import all public content"
+#: ../../mod/profiles.php:77 ../../mod/profiles.php:120
+msgid "New profile created."
msgstr ""
-#: ../../mod/sources.php:103 ../../mod/sources.php:137
-#: ../../mod/new_channel.php:110
-msgid "Channel Name"
+#: ../../mod/profiles.php:98
+msgid "Profile unavailable to clone."
msgstr ""
-#: ../../mod/sources.php:123 ../../mod/sources.php:150
-msgid "Source not found."
+#: ../../mod/profiles.php:136
+msgid "Profile unavailable to export."
msgstr ""
-#: ../../mod/sources.php:130
-msgid "Edit Source"
+#: ../../mod/profiles.php:232
+msgid "Profile Name is required."
msgstr ""
-#: ../../mod/sources.php:131
-msgid "Delete Source"
+#: ../../mod/profiles.php:378
+msgid "Marital Status"
msgstr ""
-#: ../../mod/sources.php:158
-msgid "Source removed"
+#: ../../mod/profiles.php:382
+msgid "Romantic Partner"
msgstr ""
-#: ../../mod/sources.php:160
-msgid "Unable to remove source."
+#: ../../mod/profiles.php:386
+msgid "Likes"
msgstr ""
-#: ../../mod/filer.php:49
-msgid "- select -"
+#: ../../mod/profiles.php:390
+msgid "Dislikes"
msgstr ""
-#: ../../mod/events.php:87
-msgid "Event title and start time are required."
+#: ../../mod/profiles.php:394
+msgid "Work/Employment"
msgstr ""
-#: ../../mod/events.php:101
-msgid "Event not found."
+#: ../../mod/profiles.php:397
+msgid "Religion"
msgstr ""
-#: ../../mod/events.php:344
-msgid "l, F j"
+#: ../../mod/profiles.php:401
+msgid "Political Views"
msgstr ""
-#: ../../mod/events.php:366
-msgid "Edit event"
+#: ../../mod/profiles.php:405
+msgid "Gender"
msgstr ""
-#: ../../mod/events.php:412
-msgid "Create New Event"
+#: ../../mod/profiles.php:409
+msgid "Sexual Preference"
msgstr ""
-#: ../../mod/events.php:413
-msgid "Previous"
+#: ../../mod/profiles.php:413
+msgid "Homepage"
msgstr ""
-#: ../../mod/events.php:487
-msgid "hour:minute"
+#: ../../mod/profiles.php:417
+msgid "Interests"
msgstr ""
-#: ../../mod/events.php:507
-msgid "Event details"
+#: ../../mod/profiles.php:421 ../../mod/admin.php:866
+msgid "Address"
msgstr ""
-#: ../../mod/events.php:508
-#, php-format
-msgid "Format is %s %s."
+#: ../../mod/profiles.php:511
+msgid "Profile updated."
msgstr ""
-#: ../../mod/events.php:509
-msgid "Starting date and Title are required."
+#: ../../mod/profiles.php:590
+msgid "Hide your contact/friend list from viewers of this profile?"
msgstr ""
-#: ../../mod/events.php:511
-msgid "Event Starts:"
+#: ../../mod/profiles.php:632
+msgid "Edit Profile Details"
msgstr ""
-#: ../../mod/events.php:511 ../../mod/events.php:530 ../../mod/appman.php:91
-#: ../../mod/appman.php:92
-msgid "Required"
+#: ../../mod/profiles.php:634
+msgid "View this profile"
msgstr ""
-#: ../../mod/events.php:519
-msgid "Finish date/time is not known or not relevant"
+#: ../../mod/profiles.php:636
+msgid "Change Profile Photo"
msgstr ""
-#: ../../mod/events.php:521
-msgid "Event Finishes:"
+#: ../../mod/profiles.php:637
+msgid "Create a new profile using these settings"
msgstr ""
-#: ../../mod/events.php:524
-msgid "Adjust for viewer timezone"
+#: ../../mod/profiles.php:638
+msgid "Clone this profile"
msgstr ""
-#: ../../mod/events.php:526
-msgid "Description:"
+#: ../../mod/profiles.php:639
+msgid "Delete this profile"
msgstr ""
-#: ../../mod/events.php:530
-msgid "Title:"
+#: ../../mod/profiles.php:641
+msgid "Import profile from file"
msgstr ""
-#: ../../mod/events.php:532
-msgid "Share this event"
+#: ../../mod/profiles.php:642
+msgid "Export profile to file"
msgstr ""
-#: ../../mod/filestorage.php:68
-msgid "Permission Denied."
+#: ../../mod/profiles.php:643
+msgid "Profile Name:"
msgstr ""
-#: ../../mod/filestorage.php:85
-msgid "File not found."
+#: ../../mod/profiles.php:644
+msgid "Your Full Name:"
msgstr ""
-#: ../../mod/filestorage.php:122
-msgid "Edit file permissions"
+#: ../../mod/profiles.php:645
+msgid "Title/Description:"
msgstr ""
-#: ../../mod/filestorage.php:131
-msgid "Set/edit permissions"
+#: ../../mod/profiles.php:646
+msgid "Your Gender:"
msgstr ""
-#: ../../mod/filestorage.php:132
-msgid "Include all files and sub folders"
+#: ../../mod/profiles.php:647
+msgid "Birthday :"
msgstr ""
-#: ../../mod/filestorage.php:133
-msgid "Return to file list"
+#: ../../mod/profiles.php:648
+msgid "Street Address:"
msgstr ""
-#: ../../mod/filestorage.php:135
-msgid "Copy/paste this code to attach file to a post"
+#: ../../mod/profiles.php:649
+msgid "Locality/City:"
msgstr ""
-#: ../../mod/filestorage.php:136
-msgid "Copy/paste this URL to link file from a web page"
+#: ../../mod/profiles.php:650
+msgid "Postal/Zip Code:"
msgstr ""
-#: ../../mod/follow.php:25
-msgid "Channel added."
+#: ../../mod/profiles.php:651
+msgid "Country:"
msgstr ""
-#: ../../mod/subthread.php:103
-#, php-format
-msgid "%1$s is following %2$s's %3$s"
+#: ../../mod/profiles.php:652
+msgid "Region/State:"
msgstr ""
-#: ../../mod/fsuggest.php:20 ../../mod/fsuggest.php:92
-msgid "Contact not found."
+#: ../../mod/profiles.php:653
+msgid "<span class=\"heart\">&hearts;</span> Marital Status:"
msgstr ""
-#: ../../mod/fsuggest.php:63
-msgid "Friend suggestion sent."
+#: ../../mod/profiles.php:654
+msgid "Who: (if applicable)"
msgstr ""
-#: ../../mod/fsuggest.php:97
-msgid "Suggest Friends"
+#: ../../mod/profiles.php:655
+msgid "Examples: cathy123, Cathy Williams, cathy@example.com"
msgstr ""
-#: ../../mod/fsuggest.php:99
-#, php-format
-msgid "Suggest a friend for %s"
+#: ../../mod/profiles.php:656
+msgid "Since [date]:"
msgstr ""
-#: ../../mod/suggest.php:35
-msgid ""
-"No suggestions available. If this is a new site, please try again in 24 "
-"hours."
+#: ../../mod/profiles.php:658
+msgid "Homepage URL:"
msgstr ""
-#: ../../mod/group.php:20
-msgid "Collection created."
+#: ../../mod/profiles.php:661
+msgid "Religious Views:"
msgstr ""
-#: ../../mod/group.php:26
-msgid "Could not create collection."
+#: ../../mod/profiles.php:662
+msgid "Keywords:"
msgstr ""
-#: ../../mod/group.php:54
-msgid "Collection updated."
+#: ../../mod/profiles.php:665
+msgid "Example: fishing photography software"
msgstr ""
-#: ../../mod/group.php:86
-msgid "Create a collection of channels."
+#: ../../mod/profiles.php:666
+msgid "Used in directory listings"
msgstr ""
-#: ../../mod/group.php:87 ../../mod/group.php:183
-msgid "Collection Name: "
+#: ../../mod/profiles.php:667
+msgid "Tell us about yourself..."
msgstr ""
-#: ../../mod/group.php:89 ../../mod/group.php:186
-msgid "Members are visible to other channels"
+#: ../../mod/profiles.php:668
+msgid "Hobbies/Interests"
msgstr ""
-#: ../../mod/group.php:107
-msgid "Collection removed."
+#: ../../mod/profiles.php:669
+msgid "Contact information and Social Networks"
msgstr ""
-#: ../../mod/group.php:109
-msgid "Unable to remove collection."
+#: ../../mod/profiles.php:670
+msgid "My other channels"
msgstr ""
-#: ../../mod/group.php:182
-msgid "Collection Editor"
+#: ../../mod/profiles.php:671
+msgid "Musical interests"
msgstr ""
-#: ../../mod/group.php:196
-msgid "Members"
+#: ../../mod/profiles.php:672
+msgid "Books, literature"
msgstr ""
-#: ../../mod/group.php:198
-msgid "All Connected Channels"
+#: ../../mod/profiles.php:673
+msgid "Television"
msgstr ""
-#: ../../mod/group.php:233
-msgid "Click on a channel to add or remove."
+#: ../../mod/profiles.php:674
+msgid "Film/dance/culture/entertainment"
msgstr ""
-#: ../../mod/tagger.php:98
-#, php-format
-msgid "%1$s tagged %2$s's %3$s with %4$s"
+#: ../../mod/profiles.php:675
+msgid "Love/romance"
msgstr ""
-#: ../../mod/help.php:43 ../../mod/help.php:49 ../../mod/help.php:55
-msgid "Help:"
+#: ../../mod/profiles.php:676
+msgid "Work/employment"
msgstr ""
-#: ../../mod/help.php:69 ../../index.php:233
-msgid "Not Found"
+#: ../../mod/profiles.php:677
+msgid "School/education"
+msgstr ""
+
+#: ../../mod/profiles.php:683
+msgid "This is your default profile."
+msgstr ""
+
+#: ../../mod/profiles.php:694 ../../mod/directory.php:188
+msgid "Age: "
+msgstr ""
+
+#: ../../mod/profiles.php:737
+msgid "Edit/Manage Profiles"
+msgstr ""
+
+#: ../../mod/profiles.php:738
+msgid "Add profile things"
+msgstr ""
+
+#: ../../mod/profiles.php:739
+msgid "Include desirable objects in your profile"
msgstr ""
-#: ../../mod/tagrm.php:41
+#: ../../mod/tagrm.php:44 ../../mod/tagrm.php:94
msgid "Tag removed"
msgstr ""
-#: ../../mod/tagrm.php:79
+#: ../../mod/tagrm.php:119
msgid "Remove Item Tag"
msgstr ""
-#: ../../mod/tagrm.php:81
+#: ../../mod/tagrm.php:121
msgid "Select a tag to remove: "
msgstr ""
@@ -6362,7 +6929,7 @@ msgstr ""
msgid "Theme settings updated."
msgstr ""
-#: ../../mod/admin.php:97 ../../mod/admin.php:412
+#: ../../mod/admin.php:97 ../../mod/admin.php:411
msgid "Site"
msgstr ""
@@ -6370,19 +6937,19 @@ msgstr ""
msgid "Accounts"
msgstr ""
-#: ../../mod/admin.php:99 ../../mod/admin.php:855
+#: ../../mod/admin.php:99 ../../mod/admin.php:858
msgid "Channels"
msgstr ""
-#: ../../mod/admin.php:100 ../../mod/admin.php:946 ../../mod/admin.php:988
+#: ../../mod/admin.php:100 ../../mod/admin.php:949 ../../mod/admin.php:991
msgid "Plugins"
msgstr ""
-#: ../../mod/admin.php:101 ../../mod/admin.php:1151 ../../mod/admin.php:1187
+#: ../../mod/admin.php:101 ../../mod/admin.php:1154 ../../mod/admin.php:1190
msgid "Themes"
msgstr ""
-#: ../../mod/admin.php:102 ../../mod/admin.php:513
+#: ../../mod/admin.php:102 ../../mod/admin.php:512
msgid "Server"
msgstr ""
@@ -6394,7 +6961,7 @@ msgstr ""
msgid "DB updates"
msgstr ""
-#: ../../mod/admin.php:118 ../../mod/admin.php:125 ../../mod/admin.php:1274
+#: ../../mod/admin.php:118 ../../mod/admin.php:125 ../../mod/admin.php:1277
msgid "Logs"
msgstr ""
@@ -6410,10 +6977,10 @@ msgstr ""
msgid "Message queues"
msgstr ""
-#: ../../mod/admin.php:211 ../../mod/admin.php:411 ../../mod/admin.php:512
-#: ../../mod/admin.php:719 ../../mod/admin.php:854 ../../mod/admin.php:945
-#: ../../mod/admin.php:987 ../../mod/admin.php:1150 ../../mod/admin.php:1186
-#: ../../mod/admin.php:1273
+#: ../../mod/admin.php:211 ../../mod/admin.php:410 ../../mod/admin.php:511
+#: ../../mod/admin.php:721 ../../mod/admin.php:857 ../../mod/admin.php:948
+#: ../../mod/admin.php:990 ../../mod/admin.php:1153 ../../mod/admin.php:1189
+#: ../../mod/admin.php:1276
msgid "Administration"
msgstr ""
@@ -6425,7 +6992,7 @@ msgstr ""
msgid "Registered users"
msgstr ""
-#: ../../mod/admin.php:216 ../../mod/admin.php:516
+#: ../../mod/admin.php:216 ../../mod/admin.php:515
msgid "Pending registrations"
msgstr ""
@@ -6433,706 +7000,682 @@ msgstr ""
msgid "Version"
msgstr ""
-#: ../../mod/admin.php:219 ../../mod/admin.php:517
+#: ../../mod/admin.php:219 ../../mod/admin.php:516
msgid "Active plugins"
msgstr ""
-#: ../../mod/admin.php:332
+#: ../../mod/admin.php:326
msgid "Site settings updated."
msgstr ""
-#: ../../mod/admin.php:363
-msgid "No special theme for accessibility"
+#: ../../mod/admin.php:365
+msgid "experimental"
+msgstr ""
+
+#: ../../mod/admin.php:367
+msgid "unsupported"
msgstr ""
-#: ../../mod/admin.php:392
+#: ../../mod/admin.php:391
msgid "Yes - with approval"
msgstr ""
-#: ../../mod/admin.php:398
+#: ../../mod/admin.php:397
msgid "My site is not a public server"
msgstr ""
-#: ../../mod/admin.php:399
+#: ../../mod/admin.php:398
msgid "My site has paid access only"
msgstr ""
-#: ../../mod/admin.php:400
+#: ../../mod/admin.php:399
msgid "My site has free access only"
msgstr ""
-#: ../../mod/admin.php:401
+#: ../../mod/admin.php:400
msgid "My site offers free accounts with optional paid upgrades"
msgstr ""
-#: ../../mod/admin.php:415
+#: ../../mod/admin.php:414
msgid "File upload"
msgstr ""
-#: ../../mod/admin.php:416
+#: ../../mod/admin.php:415
msgid "Policies"
msgstr ""
-#: ../../mod/admin.php:421
+#: ../../mod/admin.php:420
msgid "Site name"
msgstr ""
-#: ../../mod/admin.php:422
+#: ../../mod/admin.php:421
msgid "Banner/Logo"
msgstr ""
-#: ../../mod/admin.php:423
+#: ../../mod/admin.php:422
msgid "Administrator Information"
msgstr ""
-#: ../../mod/admin.php:423
+#: ../../mod/admin.php:422
msgid ""
"Contact information for site administrators. Displayed on siteinfo page. "
"BBCode can be used here"
msgstr ""
-#: ../../mod/admin.php:424
+#: ../../mod/admin.php:423
msgid "System language"
msgstr ""
-#: ../../mod/admin.php:425
+#: ../../mod/admin.php:424
msgid "System theme"
msgstr ""
-#: ../../mod/admin.php:425
+#: ../../mod/admin.php:424
msgid ""
"Default system theme - may be over-ridden by user profiles - <a href='#' "
"id='cnftheme'>change theme settings</a>"
msgstr ""
-#: ../../mod/admin.php:426
+#: ../../mod/admin.php:425
msgid "Mobile system theme"
msgstr ""
-#: ../../mod/admin.php:426
+#: ../../mod/admin.php:425
msgid "Theme for mobile devices"
msgstr ""
#: ../../mod/admin.php:427
-msgid "Accessibility system theme"
-msgstr ""
-
-#: ../../mod/admin.php:427
-msgid "Accessibility theme"
-msgstr ""
-
-#: ../../mod/admin.php:428
-msgid "Channel to use for this website's static pages"
-msgstr ""
-
-#: ../../mod/admin.php:428
-msgid "Site Channel"
-msgstr ""
-
-#: ../../mod/admin.php:429
msgid "Enable Diaspora Protocol"
msgstr ""
-#: ../../mod/admin.php:429
+#: ../../mod/admin.php:427
msgid "Communicate with Diaspora and Friendica - experimental"
msgstr ""
-#: ../../mod/admin.php:430
+#: ../../mod/admin.php:428
msgid "Allow Feeds as Connections"
msgstr ""
-#: ../../mod/admin.php:430
+#: ../../mod/admin.php:428
msgid "(Heavy system resource usage)"
msgstr ""
-#: ../../mod/admin.php:431
+#: ../../mod/admin.php:429
msgid "Maximum image size"
msgstr ""
-#: ../../mod/admin.php:431
+#: ../../mod/admin.php:429
msgid ""
"Maximum size in bytes of uploaded images. Default is 0, which means no "
"limits."
msgstr ""
-#: ../../mod/admin.php:432
+#: ../../mod/admin.php:430
msgid "Does this site allow new member registration?"
msgstr ""
-#: ../../mod/admin.php:433
+#: ../../mod/admin.php:431
msgid "Which best describes the types of account offered by this hub?"
msgstr ""
-#: ../../mod/admin.php:434
+#: ../../mod/admin.php:432
msgid "Register text"
msgstr ""
-#: ../../mod/admin.php:434
+#: ../../mod/admin.php:432
msgid "Will be displayed prominently on the registration page."
msgstr ""
-#: ../../mod/admin.php:435
+#: ../../mod/admin.php:433
msgid "Accounts abandoned after x days"
msgstr ""
-#: ../../mod/admin.php:435
+#: ../../mod/admin.php:433
msgid ""
"Will not waste system resources polling external sites for abandonded "
"accounts. Enter 0 for no time limit."
msgstr ""
-#: ../../mod/admin.php:436
+#: ../../mod/admin.php:434
msgid "Allowed friend domains"
msgstr ""
-#: ../../mod/admin.php:436
+#: ../../mod/admin.php:434
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:437
+#: ../../mod/admin.php:435
msgid "Allowed email domains"
msgstr ""
-#: ../../mod/admin.php:437
+#: ../../mod/admin.php:435
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:438
+#: ../../mod/admin.php:436
msgid "Block public"
msgstr ""
-#: ../../mod/admin.php:438
+#: ../../mod/admin.php:436
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:439
+#: ../../mod/admin.php:437
+msgid "Verify Email Addresses"
+msgstr ""
+
+#: ../../mod/admin.php:437
+msgid ""
+"Check to verify email addresses used in account registration (recommended)."
+msgstr ""
+
+#: ../../mod/admin.php:438
msgid "Force publish"
msgstr ""
-#: ../../mod/admin.php:439
+#: ../../mod/admin.php:438
msgid ""
"Check to force all profiles on this site to be listed in the site directory."
msgstr ""
-#: ../../mod/admin.php:440
+#: ../../mod/admin.php:439
msgid "Disable discovery tab"
msgstr ""
-#: ../../mod/admin.php:440
+#: ../../mod/admin.php:439
msgid ""
"Remove the tab in the network view with public content pulled from sources "
"chosen for this site."
msgstr ""
-#: ../../mod/admin.php:441
+#: ../../mod/admin.php:440
msgid "No login on Homepage"
msgstr ""
-#: ../../mod/admin.php:441
+#: ../../mod/admin.php:440
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:443
+#: ../../mod/admin.php:442
msgid "Proxy user"
msgstr ""
-#: ../../mod/admin.php:444
+#: ../../mod/admin.php:443
msgid "Proxy URL"
msgstr ""
-#: ../../mod/admin.php:445
+#: ../../mod/admin.php:444
msgid "Network timeout"
msgstr ""
-#: ../../mod/admin.php:445
+#: ../../mod/admin.php:444
msgid "Value is in seconds. Set to 0 for unlimited (not recommended)."
msgstr ""
-#: ../../mod/admin.php:446
+#: ../../mod/admin.php:445
msgid "Delivery interval"
msgstr ""
-#: ../../mod/admin.php:446
+#: ../../mod/admin.php:445
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:447
+#: ../../mod/admin.php:446
msgid "Poll interval"
msgstr ""
-#: ../../mod/admin.php:447
+#: ../../mod/admin.php:446
msgid ""
"Delay background polling processes by this many seconds to reduce system "
"load. If 0, use delivery interval."
msgstr ""
-#: ../../mod/admin.php:448
+#: ../../mod/admin.php:447
msgid "Maximum Load Average"
msgstr ""
-#: ../../mod/admin.php:448
+#: ../../mod/admin.php:447
msgid ""
"Maximum system load before delivery and poll processes are deferred - "
"default 50."
msgstr ""
-#: ../../mod/admin.php:504
+#: ../../mod/admin.php:503
msgid "No server found"
msgstr ""
-#: ../../mod/admin.php:511 ../../mod/admin.php:733
+#: ../../mod/admin.php:510 ../../mod/admin.php:735
msgid "ID"
msgstr ""
-#: ../../mod/admin.php:511
+#: ../../mod/admin.php:510
msgid "for channel"
msgstr ""
-#: ../../mod/admin.php:511
+#: ../../mod/admin.php:510
msgid "on server"
msgstr ""
-#: ../../mod/admin.php:511
+#: ../../mod/admin.php:510
msgid "Status"
msgstr ""
-#: ../../mod/admin.php:532
+#: ../../mod/admin.php:531
msgid "Update has been marked successful"
msgstr ""
-#: ../../mod/admin.php:542
+#: ../../mod/admin.php:541
#, php-format
msgid "Executing %s failed. Check system logs."
msgstr ""
-#: ../../mod/admin.php:545
+#: ../../mod/admin.php:544
#, php-format
msgid "Update %s was successfully applied."
msgstr ""
-#: ../../mod/admin.php:549
+#: ../../mod/admin.php:548
#, php-format
msgid "Update %s did not return a status. Unknown if it succeeded."
msgstr ""
-#: ../../mod/admin.php:552
+#: ../../mod/admin.php:551
#, php-format
msgid "Update function %s could not be found."
msgstr ""
-#: ../../mod/admin.php:567
+#: ../../mod/admin.php:566
msgid "No failed updates."
msgstr ""
-#: ../../mod/admin.php:571
+#: ../../mod/admin.php:570
msgid "Failed Updates"
msgstr ""
-#: ../../mod/admin.php:573
+#: ../../mod/admin.php:572
msgid "Mark success (if update was manually applied)"
msgstr ""
-#: ../../mod/admin.php:574
+#: ../../mod/admin.php:573
msgid "Attempt to execute this update step automatically"
msgstr ""
-#: ../../mod/admin.php:600
+#: ../../mod/admin.php:599
#, php-format
msgid "%s user blocked/unblocked"
msgid_plural "%s users blocked/unblocked"
msgstr[0] ""
msgstr[1] ""
-#: ../../mod/admin.php:607
+#: ../../mod/admin.php:606
#, php-format
msgid "%s user deleted"
msgid_plural "%s users deleted"
msgstr[0] ""
msgstr[1] ""
-#: ../../mod/admin.php:636
+#: ../../mod/admin.php:635
msgid "Account not found"
msgstr ""
-#: ../../mod/admin.php:656
+#: ../../mod/admin.php:655
#, php-format
msgid "User '%s' unblocked"
msgstr ""
-#: ../../mod/admin.php:656
+#: ../../mod/admin.php:655
#, php-format
msgid "User '%s' blocked"
msgstr ""
-#: ../../mod/admin.php:720 ../../mod/admin.php:732
+#: ../../mod/admin.php:722 ../../mod/admin.php:734
msgid "Users"
msgstr ""
-#: ../../mod/admin.php:722 ../../mod/admin.php:857
+#: ../../mod/admin.php:724 ../../mod/admin.php:860
msgid "select all"
msgstr ""
-#: ../../mod/admin.php:723
+#: ../../mod/admin.php:725
msgid "User registrations waiting for confirm"
msgstr ""
-#: ../../mod/admin.php:724
+#: ../../mod/admin.php:726
msgid "Request date"
msgstr ""
-#: ../../mod/admin.php:725
+#: ../../mod/admin.php:727
msgid "No registrations."
msgstr ""
-#: ../../mod/admin.php:726
+#: ../../mod/admin.php:728
msgid "Approve"
msgstr ""
-#: ../../mod/admin.php:727
+#: ../../mod/admin.php:729
msgid "Deny"
msgstr ""
-#: ../../mod/admin.php:733
+#: ../../mod/admin.php:735
msgid "Register date"
msgstr ""
-#: ../../mod/admin.php:733
+#: ../../mod/admin.php:735
msgid "Last login"
msgstr ""
-#: ../../mod/admin.php:733
+#: ../../mod/admin.php:735
msgid "Expires"
msgstr ""
-#: ../../mod/admin.php:733
+#: ../../mod/admin.php:735
msgid "Service Class"
msgstr ""
-#: ../../mod/admin.php:735
+#: ../../mod/admin.php:737
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:736
+#: ../../mod/admin.php:738
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:769
+#: ../../mod/admin.php:771
#, php-format
msgid "%s channel censored/uncensored"
-msgid_plural "%s channelss censored/uncensored"
+msgid_plural "%s channels censored/uncensored"
msgstr[0] ""
msgstr[1] ""
-#: ../../mod/admin.php:776
+#: ../../mod/admin.php:778
#, php-format
msgid "%s channel deleted"
msgid_plural "%s channels deleted"
msgstr[0] ""
msgstr[1] ""
-#: ../../mod/admin.php:795
+#: ../../mod/admin.php:797
msgid "Channel not found"
msgstr ""
-#: ../../mod/admin.php:806
+#: ../../mod/admin.php:808
#, php-format
msgid "Channel '%s' deleted"
msgstr ""
-#: ../../mod/admin.php:816
+#: ../../mod/admin.php:819
#, php-format
msgid "Channel '%s' uncensored"
msgstr ""
-#: ../../mod/admin.php:816
+#: ../../mod/admin.php:819
#, php-format
msgid "Channel '%s' censored"
msgstr ""
-#: ../../mod/admin.php:859
+#: ../../mod/admin.php:862
msgid "Censor"
msgstr ""
-#: ../../mod/admin.php:860
+#: ../../mod/admin.php:863
msgid "Uncensor"
msgstr ""
-#: ../../mod/admin.php:863
+#: ../../mod/admin.php:866
msgid "UID"
msgstr ""
-#: ../../mod/admin.php:865
+#: ../../mod/admin.php:868
msgid ""
"Selected channels will be deleted!\\n\\nEverything that was posted in these "
"channels on this site will be permanently deleted!\\n\\nAre you sure?"
msgstr ""
-#: ../../mod/admin.php:866
+#: ../../mod/admin.php:869
msgid ""
"The channel {0} will be deleted!\\n\\nEverything that was posted in this "
"channel on this site will be permanently deleted!\\n\\nAre you sure?"
msgstr ""
-#: ../../mod/admin.php:905
+#: ../../mod/admin.php:908
#, php-format
msgid "Plugin %s disabled."
msgstr ""
-#: ../../mod/admin.php:909
+#: ../../mod/admin.php:912
#, php-format
msgid "Plugin %s enabled."
msgstr ""
-#: ../../mod/admin.php:919 ../../mod/admin.php:1121
+#: ../../mod/admin.php:922 ../../mod/admin.php:1124
msgid "Disable"
msgstr ""
-#: ../../mod/admin.php:921 ../../mod/admin.php:1123
+#: ../../mod/admin.php:924 ../../mod/admin.php:1126
msgid "Enable"
msgstr ""
-#: ../../mod/admin.php:947 ../../mod/admin.php:1152
+#: ../../mod/admin.php:950 ../../mod/admin.php:1155
msgid "Toggle"
msgstr ""
-#: ../../mod/admin.php:955 ../../mod/admin.php:1162
+#: ../../mod/admin.php:958 ../../mod/admin.php:1165
msgid "Author: "
msgstr ""
-#: ../../mod/admin.php:956 ../../mod/admin.php:1163
+#: ../../mod/admin.php:959 ../../mod/admin.php:1166
msgid "Maintainer: "
msgstr ""
-#: ../../mod/admin.php:1085
+#: ../../mod/admin.php:1088
msgid "No themes found."
msgstr ""
-#: ../../mod/admin.php:1144
+#: ../../mod/admin.php:1147
msgid "Screenshot"
msgstr ""
-#: ../../mod/admin.php:1192
+#: ../../mod/admin.php:1195
msgid "[Experimental]"
msgstr ""
-#: ../../mod/admin.php:1193
+#: ../../mod/admin.php:1196
msgid "[Unsupported]"
msgstr ""
-#: ../../mod/admin.php:1220
+#: ../../mod/admin.php:1223
msgid "Log settings updated."
msgstr ""
-#: ../../mod/admin.php:1276
+#: ../../mod/admin.php:1279
msgid "Clear"
msgstr ""
-#: ../../mod/admin.php:1282
+#: ../../mod/admin.php:1285
msgid "Debugging"
msgstr ""
-#: ../../mod/admin.php:1283
+#: ../../mod/admin.php:1286
msgid "Log file"
msgstr ""
-#: ../../mod/admin.php:1283
+#: ../../mod/admin.php:1286
msgid ""
"Must be writable by web server. Relative to your Red top-level directory."
msgstr ""
-#: ../../mod/admin.php:1284
+#: ../../mod/admin.php:1287
msgid "Log level"
msgstr ""
-#: ../../mod/admin.php:1331
+#: ../../mod/admin.php:1334
msgid "New Profile Field"
msgstr ""
-#: ../../mod/admin.php:1332 ../../mod/admin.php:1353
+#: ../../mod/admin.php:1335 ../../mod/admin.php:1356
msgid "Field nickname"
msgstr ""
-#: ../../mod/admin.php:1332 ../../mod/admin.php:1353
+#: ../../mod/admin.php:1335 ../../mod/admin.php:1356
msgid "System name of field"
msgstr ""
-#: ../../mod/admin.php:1333 ../../mod/admin.php:1354
+#: ../../mod/admin.php:1336 ../../mod/admin.php:1357
msgid "Input type"
msgstr ""
-#: ../../mod/admin.php:1334 ../../mod/admin.php:1355
+#: ../../mod/admin.php:1337 ../../mod/admin.php:1358
msgid "Field Name"
msgstr ""
-#: ../../mod/admin.php:1334 ../../mod/admin.php:1355
+#: ../../mod/admin.php:1337 ../../mod/admin.php:1358
msgid "Label on profile pages"
msgstr ""
-#: ../../mod/admin.php:1335 ../../mod/admin.php:1356
+#: ../../mod/admin.php:1338 ../../mod/admin.php:1359
msgid "Help text"
msgstr ""
-#: ../../mod/admin.php:1335 ../../mod/admin.php:1356
+#: ../../mod/admin.php:1338 ../../mod/admin.php:1359
msgid "Additional info (optional)"
msgstr ""
-#: ../../mod/admin.php:1346
+#: ../../mod/admin.php:1349
msgid "Field definition not found"
msgstr ""
-#: ../../mod/admin.php:1352
+#: ../../mod/admin.php:1355
msgid "Edit Profile Field"
msgstr ""
-#: ../../mod/thing.php:98
-msgid "Thing updated"
-msgstr ""
-
-#: ../../mod/thing.php:158
-msgid "Object store: failed"
-msgstr ""
-
-#: ../../mod/thing.php:162
-msgid "Thing added"
-msgstr ""
-
-#: ../../mod/thing.php:182
+#: ../../mod/manage.php:136
#, php-format
-msgid "OBJ: %1$s %2$s %3$s"
+msgid "You have created %1$.0f of %2$.0f allowed channels."
msgstr ""
-#: ../../mod/thing.php:234
-msgid "Show Thing"
+#: ../../mod/manage.php:144
+msgid "Create a new channel"
msgstr ""
-#: ../../mod/thing.php:241
-msgid "item not found."
+#: ../../mod/manage.php:149
+msgid "Current Channel"
msgstr ""
-#: ../../mod/thing.php:272
-msgid "Edit Thing"
+#: ../../mod/manage.php:151
+msgid "Attach to one of your channels by selecting it."
msgstr ""
-#: ../../mod/thing.php:274 ../../mod/thing.php:321
-msgid "Select a profile"
+#: ../../mod/manage.php:152
+msgid "Default Channel"
msgstr ""
-#: ../../mod/thing.php:278 ../../mod/thing.php:324
-msgid "Post an activity"
+#: ../../mod/manage.php:153
+msgid "Make Default"
msgstr ""
-#: ../../mod/thing.php:278 ../../mod/thing.php:324
-msgid "Only sends to viewers of the applicable profile"
+#: ../../mod/menu.php:31
+msgid "Menu updated."
msgstr ""
-#: ../../mod/thing.php:280 ../../mod/thing.php:326
-msgid "Name of thing e.g. something"
+#: ../../mod/menu.php:35
+msgid "Unable to update menu."
msgstr ""
-#: ../../mod/thing.php:282 ../../mod/thing.php:327
-msgid "URL of thing (optional)"
+#: ../../mod/menu.php:40
+msgid "Menu created."
msgstr ""
-#: ../../mod/thing.php:284 ../../mod/thing.php:328
-msgid "URL for photo of thing (optional)"
+#: ../../mod/menu.php:44
+msgid "Unable to create menu."
msgstr ""
-#: ../../mod/thing.php:319
-msgid "Add Thing to your Profile"
+#: ../../mod/menu.php:76
+msgid "Manage Menus"
msgstr ""
-#: ../../mod/import.php:36
-msgid "Nothing to import."
+#: ../../mod/menu.php:79
+msgid "Drop"
msgstr ""
-#: ../../mod/import.php:58
-msgid "Unable to download data from old server"
+#: ../../mod/menu.php:81
+msgid "Bookmarks allowed"
msgstr ""
-#: ../../mod/import.php:64
-msgid "Imported file is empty."
+#: ../../mod/menu.php:82
+msgid "Create a new menu"
msgstr ""
-#: ../../mod/import.php:88
-msgid ""
-"Cannot create a duplicate channel identifier on this system. Import failed."
+#: ../../mod/menu.php:83
+msgid "Delete this menu"
msgstr ""
-#: ../../mod/import.php:106
-msgid "Channel clone failed. Import failed."
+#: ../../mod/menu.php:84 ../../mod/menu.php:125
+msgid "Edit menu contents"
msgstr ""
-#: ../../mod/import.php:116
-msgid "Cloned channel not found. Import failed."
+#: ../../mod/menu.php:85
+msgid "Edit this menu"
msgstr ""
-#: ../../mod/import.php:365
-msgid "Import completed."
+#: ../../mod/menu.php:96
+msgid "New Menu"
msgstr ""
-#: ../../mod/import.php:378
-msgid "You must be logged in to use this feature."
+#: ../../mod/menu.php:97 ../../mod/menu.php:126
+msgid "Menu name"
msgstr ""
-#: ../../mod/import.php:383
-msgid "Import Channel"
+#: ../../mod/menu.php:97 ../../mod/menu.php:126
+msgid "Must be unique, only seen by you"
msgstr ""
-#: ../../mod/import.php:384
-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."
+#: ../../mod/menu.php:98 ../../mod/menu.php:127
+msgid "Menu title"
msgstr ""
-#: ../../mod/import.php:385
-msgid "File to Upload"
+#: ../../mod/menu.php:98 ../../mod/menu.php:127
+msgid "Menu title as seen by others"
msgstr ""
-#: ../../mod/import.php:386
-msgid "Or provide the old server/hub details"
+#: ../../mod/menu.php:99 ../../mod/menu.php:128
+msgid "Allow bookmarks"
msgstr ""
-#: ../../mod/import.php:387
-msgid "Your old identity address (xyz@example.com)"
+#: ../../mod/menu.php:99 ../../mod/menu.php:128
+msgid "Menu may be used to store saved bookmarks"
msgstr ""
-#: ../../mod/import.php:388
-msgid "Your old login email address"
+#: ../../mod/menu.php:114
+msgid "Menu deleted."
msgstr ""
-#: ../../mod/import.php:389
-msgid "Your old login password"
+#: ../../mod/menu.php:116
+msgid "Menu could not be deleted."
msgstr ""
-#: ../../mod/import.php:390
-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."
+#: ../../mod/menu.php:122
+msgid "Edit Menu"
msgstr ""
-#: ../../mod/import.php:391
-msgid "Make this hub my primary location"
+#: ../../mod/menu.php:124
+msgid "Add or remove entries to this menu"
msgstr ""
#: ../../mod/invite.php:25
@@ -7176,10 +7719,6 @@ msgstr ""
msgid "Enter email addresses, one per line:"
msgstr ""
-#: ../../mod/invite.php:131 ../../mod/mail.php:225 ../../mod/mail.php:338
-msgid "Your message:"
-msgstr ""
-
#: ../../mod/invite.php:132
msgid "Please join my community on RedMatrix."
msgstr ""
@@ -7204,81 +7743,50 @@ msgstr ""
msgid "3. Click [Connect]"
msgstr ""
-#: ../../mod/item.php:146
-msgid "Unable to locate original post."
-msgstr ""
-
-#: ../../mod/item.php:379
-msgid "Empty post discarded."
-msgstr ""
-
-#: ../../mod/item.php:421
-msgid "Executable content type not permitted to this channel."
-msgstr ""
-
-#: ../../mod/item.php:849
-msgid "System error. Post not saved."
-msgstr ""
-
-#: ../../mod/item.php:1315
-#, php-format
-msgid "You have reached your limit of %1$.0f top level posts."
-msgstr ""
-
-#: ../../mod/item.php:1321
-#, php-format
-msgid "You have reached your limit of %1$.0f webpages."
-msgstr ""
-
-#: ../../mod/update_channel.php:43 ../../mod/update_display.php:25
-#: ../../mod/update_network.php:23 ../../mod/update_search.php:46
-msgid "[Embedded content - reload page to view]"
-msgstr ""
-
-#: ../../mod/layouts.php:62
-msgid "Help with this feature"
+#: ../../mod/network.php:84
+msgid "No such group"
msgstr ""
-#: ../../mod/layouts.php:85
-msgid "Layout Name"
+#: ../../mod/network.php:122
+msgid "Search Results For:"
msgstr ""
-#: ../../mod/like.php:15
-msgid "Like/Dislike"
+#: ../../mod/network.php:176
+msgid "Collection is empty"
msgstr ""
-#: ../../mod/like.php:20
-msgid "This action is restricted to members."
+#: ../../mod/network.php:184
+msgid "Collection: "
msgstr ""
-#: ../../mod/like.php:21
-msgid ""
-"Please <a href=\"rmagic\">login with your RedMatrix ID</a> or <a href="
-"\"register\">register as a new RedMatrix member</a> to continue."
+#: ../../mod/network.php:197
+msgid "Connection: "
msgstr ""
-#: ../../mod/like.php:77 ../../mod/like.php:104 ../../mod/like.php:142
-msgid "Invalid request."
+#: ../../mod/network.php:200
+msgid "Invalid connection."
msgstr ""
-#: ../../mod/like.php:119
-msgid "thing"
+#: ../../mod/notifications.php:26
+msgid "Invalid request identifier."
msgstr ""
-#: ../../mod/like.php:165
-msgid "Channel unavailable."
+#: ../../mod/notifications.php:35
+msgid "Discard"
msgstr ""
-#: ../../mod/like.php:204
-msgid "Previous action reversed."
+#: ../../mod/notifications.php:94 ../../mod/notify.php:53
+msgid "No more system notifications."
msgstr ""
-#: ../../mod/like.php:417
-msgid "Action completed."
+#: ../../mod/notifications.php:98 ../../mod/notify.php:57
+msgid "System Notifications"
msgstr ""
-#: ../../mod/like.php:418
-msgid "Thank you."
+#: ../../mod/update_channel.php:43 ../../mod/update_display.php:25
+#: ../../mod/update_network.php:23 ../../mod/update_search.php:46
+#: ../../mod/update_home.php:21
+msgid "[Embedded content - reload page to view]"
msgstr ""
#: ../../mod/lockview.php:31
@@ -7302,79 +7810,6 @@ msgstr ""
msgid "View Connnections"
msgstr ""
-#: ../../mod/lostpass.php:15
-msgid "No valid account found."
-msgstr ""
-
-#: ../../mod/lostpass.php:29
-msgid "Password reset request issued. Check your email."
-msgstr ""
-
-#: ../../mod/lostpass.php:35 ../../mod/lostpass.php:102
-#, php-format
-msgid "Site Member (%s)"
-msgstr ""
-
-#: ../../mod/lostpass.php:40
-#, php-format
-msgid "Password reset requested at %s"
-msgstr ""
-
-#: ../../mod/lostpass.php:63
-msgid ""
-"Request could not be verified. (You may have previously submitted it.) "
-"Password reset failed."
-msgstr ""
-
-#: ../../mod/lostpass.php:85 ../../boot.php:1504
-msgid "Password Reset"
-msgstr ""
-
-#: ../../mod/lostpass.php:86
-msgid "Your password has been reset as requested."
-msgstr ""
-
-#: ../../mod/lostpass.php:87
-msgid "Your new password is"
-msgstr ""
-
-#: ../../mod/lostpass.php:88
-msgid "Save or copy your new password - and then"
-msgstr ""
-
-#: ../../mod/lostpass.php:89
-msgid "click here to login"
-msgstr ""
-
-#: ../../mod/lostpass.php:90
-msgid ""
-"Your password may be changed from the <em>Settings</em> page after "
-"successful login."
-msgstr ""
-
-#: ../../mod/lostpass.php:107
-#, php-format
-msgid "Your password has changed at %s"
-msgstr ""
-
-#: ../../mod/lostpass.php:122
-msgid "Forgot your Password?"
-msgstr ""
-
-#: ../../mod/lostpass.php:123
-msgid ""
-"Enter your email address and submit to have your password reset. Then check "
-"your email for further instructions."
-msgstr ""
-
-#: ../../mod/lostpass.php:124
-msgid "Email Address"
-msgstr ""
-
-#: ../../mod/lostpass.php:125
-msgid "Reset"
-msgstr ""
-
#: ../../mod/magic.php:70
msgid "Hub not found."
msgstr ""
@@ -7387,110 +7822,16 @@ msgstr ""
msgid "Average Rating"
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/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:215
-msgid "Send Private Message"
-msgstr ""
-
-#: ../../mod/mail.php:216 ../../mod/mail.php:333
-msgid "To:"
-msgstr ""
-
-#: ../../mod/mail.php:221 ../../mod/mail.php:335
-msgid "Subject:"
-msgstr ""
-
-#: ../../mod/mail.php:232
-msgid "Send"
-msgstr ""
-
-#: ../../mod/mail.php:259
-msgid "Message not found."
-msgstr ""
-
-#: ../../mod/mail.php:302 ../../mod/message.php:72
-msgid "Delete message"
-msgstr ""
-
-#: ../../mod/mail.php:303
-msgid "Recall message"
-msgstr ""
-
-#: ../../mod/mail.php:305
-msgid "Message has been recalled."
-msgstr ""
-
-#: ../../mod/mail.php:322
-msgid "Private Conversation"
-msgstr ""
-
-#: ../../mod/mail.php:326
-msgid "Delete conversation"
-msgstr ""
-
-#: ../../mod/mail.php:328
-msgid ""
-"No secure communications available. You <strong>may</strong> be able to "
-"respond from the sender's profile page."
-msgstr ""
-
-#: ../../mod/mail.php:332
-msgid "Send Reply"
+#: ../../mod/openid.php:26
+msgid "OpenID protocol error. No ID returned."
msgstr ""
-#: ../../mod/manage.php:136
+#: ../../mod/openid.php:72 ../../mod/openid.php:180 ../../mod/post.php:261
#, php-format
-msgid "You have created %1$.0f of %2$.0f allowed channels."
-msgstr ""
-
-#: ../../mod/manage.php:144
-msgid "Create a new channel"
-msgstr ""
-
-#: ../../mod/manage.php:149
-msgid "Current Channel"
-msgstr ""
-
-#: ../../mod/manage.php:151
-msgid "Attach to one of your channels by selecting it."
-msgstr ""
-
-#: ../../mod/manage.php:152
-msgid "Default Channel"
-msgstr ""
-
-#: ../../mod/manage.php:153
-msgid "Make Default"
+msgid "Welcome %s. Remote authentication successful."
msgstr ""
-#: ../../mod/wall_upload.php:34
+#: ../../mod/wall_upload.php:35
msgid "Wall Photos"
msgstr ""
@@ -7510,90 +7851,6 @@ msgstr ""
msgid "No matches"
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: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/message.php:41
msgid "Conversation removed."
msgstr ""
@@ -7606,11 +7863,11 @@ msgstr ""
msgid "D, d M Y - g:i A"
msgstr ""
-#: ../../mod/new_channel.php:107
+#: ../../mod/new_channel.php:109
msgid "Add a Channel"
msgstr ""
-#: ../../mod/new_channel.php:108
+#: ../../mod/new_channel.php:110
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, "
@@ -7618,41 +7875,47 @@ msgid ""
"service provider allows."
msgstr ""
-#: ../../mod/new_channel.php:111
+#: ../../mod/new_channel.php:113
msgid ""
"Examples: \"Bob Jameson\", \"Lisa and her Horses\", \"Soccer\", \"Aviation "
"Group\" "
msgstr ""
-#: ../../mod/new_channel.php:112
+#: ../../mod/new_channel.php:114
msgid "Choose a short nickname"
msgstr ""
-#: ../../mod/new_channel.php:113
+#: ../../mod/new_channel.php:115
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
+#: ../../mod/new_channel.php:116
msgid ""
"Or <a href=\"import\">import an existing channel</a> from another location"
msgstr ""
-#: ../../mod/notifications.php:26
-msgid "Invalid request identifier."
+#: ../../mod/new_channel.php:118
+msgid "Channel Type"
msgstr ""
-#: ../../mod/notifications.php:35
-msgid "Discard"
+#: ../../mod/new_channel.php:119
+msgid ""
+"Please choose a channel type (such as social networking or community forum) "
+"and privacy requirements so we can select the best permissions for you"
msgstr ""
-#: ../../mod/notifications.php:94 ../../mod/notify.php:53
-msgid "No more system notifications."
+#: ../../mod/xchan.php:6
+msgid "Xchan Lookup"
msgstr ""
-#: ../../mod/notifications.php:98 ../../mod/notify.php:57
-msgid "System Notifications"
+#: ../../mod/xchan.php:9
+msgid "Lookup xchan beginning with (or webbie): "
+msgstr ""
+
+#: ../../mod/zfinger.php:23
+msgid "invalid target signature"
msgstr ""
#: ../../mod/oexchange.php:23
@@ -7663,12 +7926,54 @@ msgstr ""
msgid "Post successful."
msgstr ""
-#: ../../mod/zfinger.php:23
-msgid "invalid target signature"
+#: ../../mod/directory.php:201
+msgid "Gender: "
msgstr ""
-#: ../../mod/openid.php:26
-msgid "OpenID protocol error. No ID returned."
+#: ../../mod/directory.php:203
+msgid "Status: "
+msgstr ""
+
+#: ../../mod/directory.php:205
+msgid "Homepage: "
+msgstr ""
+
+#: ../../mod/directory.php:208
+msgid "Hometown: "
+msgstr ""
+
+#: ../../mod/directory.php:210
+msgid "About: "
+msgstr ""
+
+#: ../../mod/directory.php:265
+msgid "Public Forum:"
+msgstr ""
+
+#: ../../mod/directory.php:268
+msgid "Keywords: "
+msgstr ""
+
+#: ../../mod/directory.php:318
+msgid "Finding:"
+msgstr ""
+
+#: ../../mod/directory.php:323
+msgid "next page"
+msgstr ""
+
+#: ../../mod/directory.php:323
+msgid "previous page"
+msgstr ""
+
+#: ../../mod/directory.php:340
+msgid "No entries (some entries may be hidden)."
+msgstr ""
+
+#: ../../mod/post.php:229
+msgid ""
+"Remote authentication blocked. You are logged into this site locally. Please "
+"logout and retry."
msgstr ""
#: ../../mod/appman.php:28 ../../mod/appman.php:44
@@ -7755,6 +8060,10 @@ msgid ""
"removed from the network"
msgstr ""
+#: ../../mod/service_limits.php:19
+msgid "No service class restrictions found."
+msgstr ""
+
#: ../../view/theme/apw/php/config.php:202
#: ../../view/theme/apw/php/config.php:236
msgid "Schema Default"
@@ -7769,8 +8078,6 @@ msgid "Monospace"
msgstr ""
#: ../../view/theme/apw/php/config.php:259
-#: ../../view/theme/blogga/php/config.php:69
-#: ../../view/theme/blogga/view/theme/blog/config.php:69
#: ../../view/theme/redbasic/php/config.php:102
msgid "Theme settings"
msgstr ""
@@ -7901,21 +8208,6 @@ msgstr ""
msgid "Right offset of the aside element"
msgstr ""
-#: ../../view/theme/blogga/php/config.php:47
-#: ../../view/theme/blogga/view/theme/blog/config.php:47
-msgid "None"
-msgstr ""
-
-#: ../../view/theme/blogga/php/config.php:70
-#: ../../view/theme/blogga/view/theme/blog/config.php:70
-msgid "Header image"
-msgstr ""
-
-#: ../../view/theme/blogga/php/config.php:71
-#: ../../view/theme/blogga/view/theme/blog/config.php:71
-msgid "Header image only on profile pages"
-msgstr ""
-
#: ../../view/theme/redbasic/php/config.php:84
msgid "Light (Red Matrix default)"
msgstr ""
@@ -8040,41 +8332,41 @@ msgstr ""
msgid "Are you a clean desk or a messy desk person?"
msgstr ""
-#: ../../boot.php:1292
+#: ../../boot.php:1345
#, php-format
msgid "Update %s failed. See error logs."
msgstr ""
-#: ../../boot.php:1295
+#: ../../boot.php:1348
#, php-format
msgid "Update Error at %s"
msgstr ""
-#: ../../boot.php:1469
+#: ../../boot.php:1515
msgid ""
"Create an account to access services and applications within the Red Matrix"
msgstr ""
-#: ../../boot.php:1497
+#: ../../boot.php:1543
msgid "Password"
msgstr ""
-#: ../../boot.php:1498
+#: ../../boot.php:1544
msgid "Remember me"
msgstr ""
-#: ../../boot.php:1503
+#: ../../boot.php:1547
msgid "Forgot your password?"
msgstr ""
-#: ../../boot.php:1568
+#: ../../boot.php:1628
msgid "permission denied"
msgstr ""
-#: ../../boot.php:1569
+#: ../../boot.php:1629
msgid "Got Zot?"
msgstr ""
-#: ../../boot.php:1999
+#: ../../boot.php:2112
msgid "toggle mobile"
msgstr ""
diff --git a/util/wp/post_to_red/post_to_red.php b/util/wp/post_to_red/post_to_red.php
deleted file mode 100644
index ea6026ae2..000000000
--- a/util/wp/post_to_red/post_to_red.php
+++ /dev/null
@@ -1,493 +0,0 @@
-<?php
-/*
-Plugin Name: CrossPost to Red Matrix
-Plugin URI: http://blog.duthied.com/2011/09/12/friendika-cross-poster-wordpress-plugin/
-Description: This plugin allows you to cross post to your Red Matrix account. Extended by Mike Macgirvin from a Friendica cross-posting tool
-Version: 1.2
-Author: Devlon Duthied
-Author URI: http://blog.duthied.com
-*/
-
-/* Copyright 2011 Devlon Duthie (email: duthied@gmail.com)
-
- This program is free software; you can redistribute it and/or modify
- it under the terms of the GNU General Public License, version 2, as
- published by the Free Software Foundation.
-
- This program 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 General Public License for more details.
-
- You should have received a copy of the GNU General Public License
- along with this program; if not, write to the Free Software
- Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
-*/
-
-define("post_to_red_path", WP_PLUGIN_URL . "/" . str_replace(basename( __FILE__), "", plugin_basename(__FILE__)));
-define("post_to_red_version", "1.2");
-$plugin_dir = basename(dirname(__FILE__));
-$plugin = plugin_basename(__FILE__);
-
-define("post_to_red_acct_name", "post_to_red_admin_options");
-
-function post_to_red_deactivate() {
- delete_option('post_to_red_seed_location');
- delete_option('post_to_red_acct_name');
- delete_option('post_to_red_user_name');
- delete_option('post_to_red_password');
-}
-
-function post_to_red_get_seed_location() {
- return get_option('post_to_red_seed_location');
-}
-
-function post_to_red_get_acct_name() {
- return get_option('post_to_red_acct_name');
-}
-
-function post_to_red_get_channel_name() {
- return get_option('post_to_red_channel_name');
-}
-
-function post_to_red_get_password() {
- return get_option('post_to_red_password');
-}
-
-function post_to_red_post($post_id) {
-
- $post = get_post($post_id);
-
- if (isset($_POST['post_to_red'])) {
- update_post_meta($post_id, 'post_to_red', '1');
- }
-
- // if meta has been set
- if (get_post_meta($post_id, "post_to_red", true) === '1') {
-
- $user_name = post_to_red_get_acct_name();
- $password = post_to_red_get_password();
- $seed_location = post_to_red_get_seed_location();
- $channel = post_to_red_get_channel_name();
- $backlink = get_option('post_to_red_backlink');
-
- if ((isset($user_name)) && (isset($password)) && (isset($seed_location))) {
- // remove potential comments
- $message = preg_replace('/<!--(.*)-->/Uis', '', $post->post_content);
-
- // get any tags and make them hashtags
- $post_tags = get_the_tags($post_id);
- if ($post_tags) {
- foreach($post_tags as $tag) {
- $tag_string .= "#" . $tag->name . " ";
- }
- }
-
- $message_id = site_url() . '/' . $post_id;
-
- if (isset($tag_string)) {
- $message .= "<br />$tag_string";
- }
-
- $cats = '';
-
- $terms = get_the_terms($post_id,'category');
- if($terms) {
- foreach($terms as $term) {
- if(strlen($cats))
- $cats .= ',';
- $cats .= htmlspecialchars_decode($term->name, ENT_COMPAT);
- }
- }
-
-
-
- $bbcode = xpost_to_html2bbcode($message);
-
- if($backlink)
- $bbcode .= "\n\n" . _('Source:') . ' ' . '[url]' . get_permalink($post_id) . '[/url]';
-
- $url = $seed_location . '/api/statuses/update';
-
- $headers = array('Authorization' => 'Basic '.base64_encode("$user_name:$password"));
- $body = array(
- 'title' => xpost_to_html2bbcode($post->post_title),
- 'status' => $bbcode,
- 'source' => 'WordPress',
- 'namespace' => 'wordpress',
- 'remote_id' => $message_id,
- 'permalink' => $post->guid
- );
- if($channel)
- $body['channel'] = $channel;
- if($cats)
- $body['category'] = $cats;
-
- // post:
- $request = new WP_Http;
- $result = $request->request($url , array( 'method' => 'POST', 'body' => $body, 'headers' => $headers));
-
- }
-
- }
-}
-
-
-function post_to_red_delete_post($post_id) {
-
- $post = get_post($post_id);
-
- // if meta has been set
- if ((get_post_meta($post_id, "post_to_red", true) == '1') || (get_post_meta($post_id, "post_from_red", true) == '1')) {
-
- $user_name = post_to_red_get_acct_name();
- $password = post_to_red_get_password();
- $seed_location = post_to_red_get_seed_location();
- $channel = post_to_red_get_channel_name();
-
- if ((isset($user_name)) && (isset($password)) && (isset($seed_location))) {
-
- $message_id = site_url() . '/' . $post_id;
- $url = $seed_location . '/api/statuses/destroy';
-
- $headers = array('Authorization' => 'Basic '.base64_encode("$user_name:$password"));
- $body = array(
- 'namespace' => 'wordpress',
- 'remote_id' => $message_id,
- );
- if($channel)
- $body['channel'] = $channel;
-
- // post:
- $request = new WP_Http;
- $result = $request->request($url , array( 'method' => 'POST', 'body' => $body, 'headers' => $headers));
-
- }
-
- }
-}
-
-function post_to_red_delete_comment($post_id) {
-
- // The comment may already be destroyed so we can't query it or the parent post. That means
- // we have to make a network call for any deleted comment to see if it's registered on Red.
- // We really need a "before_delete_comment" action in WP to make
- // this more efficient.
-
- $user_name = post_to_red_get_acct_name();
- $password = post_to_red_get_password();
- $seed_location = post_to_red_get_seed_location();
- $channel = post_to_red_get_channel_name();
-
- if ((isset($user_name)) && (isset($password)) && (isset($seed_location))) {
-
- $message_id = site_url() . '/' . $post_id;
- $url = $seed_location . '/api/statuses/destroy';
-
- $headers = array('Authorization' => 'Basic '.base64_encode("$user_name:$password"));
- $body = array(
- 'namespace' => 'wordpress',
- 'comment_id' => $message_id,
- );
- if($channel)
- $body['channel'] = $channel;
-
- // post:
- $request = new WP_Http;
- $result = $request->request($url , array( 'method' => 'POST', 'body' => $body, 'headers' => $headers));
- }
-}
-
-
-
-
-function post_to_red_displayAdminContent() {
-
- $seed_url = post_to_red_get_seed_location();
- $password = post_to_red_get_password();
- $user_acct = post_to_red_get_acct_name();
- $channel = post_to_red_get_channel_name();
- $backlink = get_option('post_to_red_backlink');
- $backlink_checked = ((intval($backlink)) ? ' checked="checked" ' : '');
- // debug...
- // echo "seed location: $seed_url</br>";
- // echo "password: $password</br>";
- // echo "user_acct: $user_acct</br>";
-
- echo <<<EOF
- <div class='wrap'>
- <h2>CrossPost to Red Matrix</h2>
- <p>This plugin allows you to cross post to your Red Matrix channel.</p>
- </div>
-
- <div class="wrap">
- <h2>Configuration</h2>
- <form method="post" action="{$_SERVER["REQUEST_URI"]}">
- Enter the login details of your Red Matrix account<br /><br />
- Login (email): <input type="text" name="post_to_red_acct_name" value="{$user_acct}"/><br />
- Password: <input type="password" name="post_to_red_password" value="{$password}"/><br />
- Red Matrix URL: <input type="text" name="post_to_red_url" value="{$seed_url}"/><br />
- Optional channel nickname: <input type="text" name="post_to_red_channel" value="{$channel}"/><br />
- Add permalink to posts? <input type="checkbox" name="post_to_red_backlink" value="1" {$backlink_checked} /><br />
- <input type="submit" value="Save" name="submit" />
- </form>
- <p></p>
- </div>
-EOF;
-
- if(isset($_POST['submit'])) {
- echo "<div style='text-align:center;padding:4px;width:200px;background-color:#FFFF99;border:1xp solid #CCCCCC;color:#000000;'>Settings Saved!</div>";
- }
-}
-
-function post_to_red_post_checkbox() {
-
- add_meta_box(
- 'post_to_red_meta_box_id',
- 'Cross Post to Red Matrix',
- 'post_to_red_post_meta_content',
- 'post',
- 'normal',
- 'default'
- );
-}
-
-function post_to_red_post_meta_content($post_id) {
- wp_nonce_field(plugin_basename( __FILE__ ), 'post_to_red_nonce');
- echo '<input type="checkbox" name="post_to_red" value="1" /> Cross post?';
-}
-
-function post_to_red_post_field_data($post_id) {
-
- // check if this isn't an auto save
- if (defined('DOING_AUTOSAVE') && DOING_AUTOSAVE)
- return;
-
- // security check
- if((! array_key_exists('post_to_red_nonce', $_POST))
- || (!wp_verify_nonce( $_POST['post_to_red_nonce'], plugin_basename( __FILE__ ))))
- return;
-
- // now store data in custom fields based on checkboxes selected
- if (isset($_POST['post_to_red'])) {
- update_post_meta($post_id, 'post_to_red', '1');
- }
-}
-
-function post_to_red_display_admin_page() {
-
- if ((isset($_REQUEST["post_to_red_acct_name"])) && (isset($_REQUEST["post_to_red_password"]))) {
-
- $password = $_REQUEST["post_to_red_password"];
- $red_url = $_REQUEST["post_to_red_url"];
- $channelname = $_REQUEST['post_to_red_channel'];
-
-
- update_option('post_to_red_acct_name', $_REQUEST["post_to_red_acct_name"]);
- update_option('post_to_red_channel_name', $channelname);
- update_option('post_to_red_seed_location', $red_url);
- update_option('post_to_red_password', $password);
- update_option('post_to_red_backlink', $_REQUEST['post_to_red_backlink']);
- }
-
- post_to_red_displayAdminContent();
-}
-
-function post_to_red_settings_link($links) {
- $settings_link = '<a href="options-general.php?page=xpost-to-redmatrix">Settings</a>';
- array_unshift($links, $settings_link);
- return $links;
-}
-
-function post_to_red_admin() {
- add_options_page("Crosspost to redmatrix", "Crosspost to redmatrix", "manage_options", "xpost-to-redmatrix", "post_to_red_display_admin_page");
-}
-
-register_deactivation_hook( __FILE__, 'post_to_red_deactivate' );
-
-add_filter("plugin_action_links_$plugin", "post_to_red_settings_link");
-
-add_action("admin_menu", "post_to_red_admin");
-add_action('publish_post', 'post_to_red_post');
-add_action('add_meta_boxes', 'post_to_red_post_checkbox');
-add_action('save_post', 'post_to_red_post_field_data');
-add_action('before_delete_post', 'post_to_red_delete_post');
-
-add_action('delete_comment', 'post_to_red_delete_comment');
-
-add_filter('xmlrpc_methods', 'red_xmlrpc_methods');
-
-add_filter('get_avatar', 'post_to_red_get_avatar',10,5);
-
-
-function red_xmlrpc_methods($methods) {
- $methods['red.Comment'] = 'red_comment';
- return $methods;
-}
-
-function red_comment($args) {
- global $wp_xmlrpc_server;
- $wp_xmlrpc_server->escape( $args );
-
- $blog_id = $args[0];
- $username = $args[1];
- $password = $args[2];
- $post = $args[3];
- $content_struct = $args[4];
-
- if ( ! $user = $wp_xmlrpc_server->login( $username, $password ) )
- return $wp_xmlrpc_server->error;
-
- if ( is_numeric($post) )
- $post_id = absint($post);
- else
- $post_id = url_to_postid($post);
-
- if ( ! $post_id )
- return new IXR_Error( 404, __( 'Invalid post ID.' ) );
- if ( ! get_post($post_id) )
- return new IXR_Error( 404, __( 'Invalid post ID.' ) );
-
- $comment['comment_post_ID'] = $post_id;
-
- $comment['comment_author'] = '';
- if ( isset($content_struct['author']) )
- $comment['comment_author'] = $content_struct['author'];
-
- $comment['comment_author_email'] = '';
- if ( isset($content_struct['author_email']) )
- $comment['comment_author_email'] = $content_struct['author_email'];
-
- $comment['comment_author_url'] = '';
- if ( isset($content_struct['author_url']) )
- $comment['comment_author_url'] = $content_struct['author_url'];
-
- $comment['user_ID'] = 0;
-
- if ( get_option('require_name_email') ) {
- if ( 6 > strlen($comment['comment_author_email']) || '' == $comment['comment_author'] )
- return new IXR_Error( 403, __( 'Comment author name and email are required' ) );
- elseif ( !is_email($comment['comment_author_email']) )
- return new IXR_Error( 403, __( 'A valid email address is required' ) );
- }
-
- if(isset($content_struct['comment_id'])) {
- $comment['comment_ID'] = intval($content_struct['comment_id']);
- $edit = true;
- }
- $comment['comment_post_ID'] = $post_id;
- $comment['comment_parent'] = isset($content_struct['comment_parent']) ? absint($content_struct['comment_parent']) : 0;
- $comment['comment_content'] = isset($content_struct['content']) ? $content_struct['content'] : null;
-
- do_action('xmlrpc_call', 'red.Comment');
-
- if($edit) {
- $result = wp_update_comment($comment);
- $comment_ID = $comment['comment_ID'];
- }
- else {
- $comment_ID = wp_new_comment( $comment );
- if($comment_ID)
- wp_set_comment_status($comment_ID,'approve');
- }
-
- if(isset($content_struct['red_avatar']))
- add_comment_meta($comment_ID,'red_avatar',$content_struct['red_avatar'],true);
-
- do_action( 'xmlrpc_call_success_red_Comment', $comment_ID, $args );
-
- return $comment_ID;
-}
-
-function post_to_red_get_avatar($avatar,$id_or_email,$size,$default,$alt) {
-
- if(! is_object($id_or_email))
- return $avatar;
- if((! array_key_exists('comment_author_email',$id_or_email)) || (empty($id_or_email->comment_author_email)))
- return $avatar;
- if((! array_key_exists('comment_ID', $id_or_email)) || (! intval($id_or_email->comment_ID)))
- return $avatar;
- $l = get_comment_meta($id_or_email->comment_ID,'red_avatar',true);
- if($l) {
- $safe_alt = esc_attr($alt);
- $avatar = "<img alt='{$safe_alt}' src='{$l}' class='avatar avatar-{$size} photo' height='{$size}' width='{$size}' />";
- }
- return $avatar;
-}
-
-
-// from:
-// http://www.docgate.com/tutorial/php/how-to-convert-html-to-bbcode-with-php-script.html
-
-//function exists also in post to friendica plugin; load only if not yet loaded by that plugin
-if(!function_exists('xpost_to_html2bbcode')) {
- function xpost_to_html2bbcode($text) {
- $htmltags = array(
- '/\<b\>(.*?)\<\/b\>/is',
- '/\<i\>(.*?)\<\/i\>/is',
- '/\<u\>(.*?)\<\/u\>/is',
- '/\<ul.*?\>(.*?)\<\/ul\>/is',
- '/\<li\>(.*?)\<\/li\>/is',
- '/\<img(.*?) src=\"(.*?)\" alt=\"(.*?)\" title=\"Smile(y?)\" \/\>/is', // some smiley
- '/\<img(.*?) src=\"http:\/\/(.*?)\" (.*?)\>/is',
- '/\<img(.*?) src=\"(.*?)\" alt=\":(.*?)\" .*? \/\>/is', // some smiley
- '/\<div class=\"quotecontent\"\>(.*?)\<\/div\>/is',
- '/\<div class=\"codecontent\"\>(.*?)\<\/div\>/is',
- '/\<div class=\"quotetitle\"\>(.*?)\<\/div\>/is',
- '/\<div class=\"codetitle\"\>(.*?)\<\/div\>/is',
- '/\<cite.*?\>(.*?)\<\/cite\>/is',
- '/\<blockquote.*?\>(.*?)\<\/blockquote\>/is',
- '/\<div\>(.*?)\<\/div\>/is',
- '/\<code\>(.*?)\<\/code\>/is',
- '/\<br(.*?)\>/is',
- '/\<strong\>(.*?)\<\/strong\>/is',
- '/\<em\>(.*?)\<\/em\>/is',
- '/\<a href=\"mailto:(.*?)\"(.*?)\>(.*?)\<\/a\>/is',
- '/\<a .*?href=\"(.*?)\"(.*?)\>http:\/\/(.*?)\<\/a\>/is',
- '/\<a .*?href=\"(.*?)\"(.*?)\>(.*?)\<\/a\>/is'
- );
-
- $bbtags = array(
- '[b]$1[/b]',
- '[i]$1[/i]',
- '[u]$1[/u]',
- '[list]$1[/list]',
- '[*]$1',
- '$3',
- '[img]http://$2[/img]' . "\n",
- ':$3',
- '[quote]$1[/quote]',
- '[code]$1[/code]',
- '',
- '',
- '',
- '[quote]$1[/quote]',
- '$1',
- '[code]$1[/code]',
- "\n",
- '[b]$1[/b]',
- '[i]$1[/i]',
- '[email=$1]$3[/email]',
- '[url]$1[/url]',
- '[url=$1]$3[/url]'
- );
-
- $text = str_replace ("\n", ' ', $text);
- $ntext = preg_replace ($htmltags, $bbtags, $text);
- $ntext = preg_replace ($htmltags, $bbtags, $ntext);
-
- // for too large text and cannot handle by str_replace
- if (!$ntext) {
- $ntext = str_replace(array('<br>', '<br />'), "\n", $text);
- $ntext = str_replace(array('<strong>', '</strong>'), array('[b]', '[/b]'), $ntext);
- $ntext = str_replace(array('<em>', '</em>'), array('[i]', '[/i]'), $ntext);
- }
-
- $ntext = strip_tags($ntext);
-
- $ntext = trim(html_entity_decode($ntext,ENT_QUOTES,'UTF-8'));
- return $ntext;
- }
-}
-
-
diff --git a/util/wp/post_to_red/readme.txt b/util/wp/post_to_red/readme.txt
deleted file mode 100644
index e27c46236..000000000
--- a/util/wp/post_to_red/readme.txt
+++ /dev/null
@@ -1,39 +0,0 @@
-=== CrossPost to redmatrix ===
-Contributors: duthied, macgirvin
-Donate link: TBD
-Tags: redmatrix, crosspost
-Requires at least: 3.2
-Tested up to: 3.2
-Stable tag: 1.2
-
-CrossPost to Red Matrix for WordPress
-
-== Description ==
-This plugin allows you to cross post to your Red Matrix account.
-
-**Note, this plugin converts the html from wordpress into bbcode.
-The bbcode conversion doesn't handle height and width of an image, so be warned that if you post a very large
-image that is resized via height and with attributes, those attributes won't be honored in the resulatant post.
-
-== Changelog ==
-= 1.2 =
-* ensured no function name collision
-
-= 1.1 =
-* Added feedback to settings form post.
-
-= 1.0 =
-* Initial release.
-
-== Installation ==
-
-1. Install the plugin from your Wordpress admin panel.
-
-OR
-
-1. Upload the plugin folder to the `/wp-content/plugins/` directory.
-2. Activate the plugin through the 'Plugins' menu in WordPress.
-3. On the settings page enter your account name and password and the nickname of the channel to post to - then click the submit button
-4. To cross-post ensure the check box in the 'Cross Post To redmatrix' is checked before publishing.
-
-== Frequently Asked Questions ==
diff --git a/vendor/bin/sabredav b/vendor/bin/sabredav
deleted file mode 120000
index 3b5e4511d..000000000
--- a/vendor/bin/sabredav
+++ /dev/null
@@ -1 +0,0 @@
-../sabre/dav/bin/sabredav \ No newline at end of file
diff --git a/vendor/bin/vobjectvalidate.php b/vendor/bin/vobjectvalidate.php
deleted file mode 120000
index 4121667bf..000000000
--- a/vendor/bin/vobjectvalidate.php
+++ /dev/null
@@ -1 +0,0 @@
-../sabre/vobject/bin/vobjectvalidate.php \ No newline at end of file
diff --git a/version.inc b/version.inc
index 047aea03d..765b9a233 100644
--- a/version.inc
+++ b/version.inc
@@ -1 +1 @@
-2014-09-05.789
+2014-12-20.895
diff --git a/view/ca/cmnt_received_eml.tpl b/view/ca/cmnt_received_eml.tpl
deleted file mode 100644
index ca61ca492..000000000
--- a/view/ca/cmnt_received_eml.tpl
+++ /dev/null
@@ -1,18 +0,0 @@
-
-Apreciat/da $username,
-
- '$from' ha comentat un element/conversació que estàs seguint.
-
------
-$body
------
-
-Accedeix a $siteurl per a veure la conversa completa:
-
-$display
-
-
- $sitename
-
-
-
diff --git a/view/ca/follow_notify_eml.tpl b/view/ca/follow_notify_eml.tpl
deleted file mode 100644
index ab5a4b371..000000000
--- a/view/ca/follow_notify_eml.tpl
+++ /dev/null
@@ -1,13 +0,0 @@
-
-Apreciat/da $myname,
-
-Tens un nou seguidor en $sitename - '$requestor'.
-
-Pots visitar el seu perfil en $url.
-
-Iniciï sessió en el seu lloc per a aprovar o rebutjar/cancelar la sol·licitud.
-
-$siteurl
-
-
- $sitename
diff --git a/view/ca/friend_complete_eml.tpl b/view/ca/friend_complete_eml.tpl
deleted file mode 100644
index 539d9ff3d..000000000
--- a/view/ca/friend_complete_eml.tpl
+++ /dev/null
@@ -1,19 +0,0 @@
-
-Apreciat/da $username,
-
- Grans noticies... '$fn' a '$dfrn_url' ha acceptat la teva sol·licitud de connexió en '$sitename'.
-
-Ara sous amics mutus i podreu intercanviar actualizacions de estatus, fotos, i correu electrónic
-sense cap restricció.
-
-Visita la teva pàgina de 'Contactes' en $sitename si desitja realizar qualsevol canvi en aquesta relació.
-
-$siteurl
-
-[Per exemple, pots crear un perfil independent amb informació que no esta disponible al públic en general
-- i assignar drets de visualització a '$fn'].
-
-
- $sitename
-
-
diff --git a/view/ca/intro_complete_eml.tpl b/view/ca/intro_complete_eml.tpl
deleted file mode 100644
index 70507d71d..000000000
--- a/view/ca/intro_complete_eml.tpl
+++ /dev/null
@@ -1,21 +0,0 @@
-
-Apreciat/da $username,
-
- '$fn' en '$dfrn_url' ha acceptat la teva petició
-connexió a '$sitename'.
-
- '$fn' ha optat per acceptar-te com a "fan", que restringeix certes
-formes de comunicació, com missatges privats i algunes interaccions
-amb el perfil. Si ets una "celebritat" o una pàgina de comunitat,
-aquests ajustos s'aplican automàticament
-
- '$fn' pot optar per extendre aixó en una relació més permisiva
-en el futur.
-
- Començaràs a rebre les actualizacions públiques de estatus de '$fn',
-que apareixeran a la teva pàgina "Xarxa" en
-
-$siteurl
-
-
- $sitename
diff --git a/view/ca/mail_received_html_body_eml.tpl b/view/ca/mail_received_html_body_eml.tpl
deleted file mode 100644
index 64eee0bf1..000000000
--- a/view/ca/mail_received_html_body_eml.tpl
+++ /dev/null
@@ -1,24 +0,0 @@
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional //EN">
-<html>
-<head>
- <title>Mensaje de Friendica</title>
- <meta http-equiv="Content-Type" content="text/html;charset=utf-8" />
-</head>
-<body>
-<table style="border:1px solid #ccc">
- <tbody>
- <tr><td colspan="2" style="background:#3b5998; color:#FFFFFF; font-weight:bold; font-family:'lucida grande', tahoma, verdana,arial, sans-serif; padding: 4px 8px; vertical-align: middle; font-size:16px; letter-spacing: -0.03em; text-align: left;"><img style="width:32px;height:32px;" src='$siteurl/images/friendika-32.png'><span style="padding:7px;">Friendica</span></td></tr>
-
- <tr><td style="padding-top:22px;" colspan="2">Has rebut un nou missatge privat de '$from' en $siteName.</td></tr>
-
-
- <tr><td style="padding-left:22px;padding-top:22px;width:60px;" valign="top" rowspan=3><a href="$url"><img style="border:0px;width:48px;height:48px;" src="$thumb"></a></td>
- <td style="padding-top:22px;"><a href="$url">$from</a></td></tr>
- <tr><td style="font-weight:bold;padding-bottom:5px;">$title</td></tr>
- <tr><td style="padding-right:22px;">$htmlversion</td></tr>
- <tr><td style="padding-top:11px;padding-bottom:11px;" colspan="2">Accedeix a <a href="$siteurl">$siteurl</a> per a llegir i respondre als teus missatges privats.</td></tr>
- <tr><td></td><td>$siteName</td></tr>
- </tbody>
-</table>
-</body>
-</html>
diff --git a/view/ca/mail_received_text_body_eml.tpl b/view/ca/mail_received_text_body_eml.tpl
deleted file mode 100644
index b343c4e6d..000000000
--- a/view/ca/mail_received_text_body_eml.tpl
+++ /dev/null
@@ -1,9 +0,0 @@
-Has rebut un nou missatge privat de '$from' en $siteName.
-
-$title
-
-$textversion
-
-Accedeix a $siteurl per a llegir i respondre als teus missatges privats.
-
- $siteName
diff --git a/view/ca/request_notify_eml.tpl b/view/ca/request_notify_eml.tpl
deleted file mode 100644
index 276624aae..000000000
--- a/view/ca/request_notify_eml.tpl
+++ /dev/null
@@ -1,13 +0,0 @@
-
-Apreciat/da $myname,
-
-Acabes de rebre una sol·licitud de connexió de '$requestor' en $sitename.
-
-Pots visitar el seu perfil en $url.
-
-Accedeix al teu lloc per a veure la presentació completa i acceptar o ignorar/cancel·lar la sol·licitud.
-
-$siteurl
-
-
- $sitename
diff --git a/view/ca/wall_received_eml.tpl b/view/ca/wall_received_eml.tpl
deleted file mode 100644
index 0b5c150fd..000000000
--- a/view/ca/wall_received_eml.tpl
+++ /dev/null
@@ -1,18 +0,0 @@
-
-Apreciat/da $username,
-
- '$from' ha escrit quelcom en el mur del teu perfil.
-
------
-$body
------
-
-Accedeix a $siteurl per a veure o esborrar l'element:
-
-$display
-
-
- $sitename
-
-
-
diff --git a/view/cs/cmnt_received_eml.tpl b/view/cs/cmnt_received_eml.tpl
deleted file mode 100644
index ff4492322..000000000
--- a/view/cs/cmnt_received_eml.tpl
+++ /dev/null
@@ -1,14 +0,0 @@
-Milý/Milá $username,
-
- '$from' okommentoval položku/konverzaci, kterou následujete.
-
------
-$body
------
-
-Přihlaste se na $siteurl pro zobrazení kompletní konverzace:
-
-$display
-
-Díky,
- $sitename administrátor
diff --git a/view/cs/cmnt_received_html_body_eml.tpl b/view/cs/cmnt_received_html_body_eml.tpl
deleted file mode 100644
index 6b6318743..000000000
--- a/view/cs/cmnt_received_html_body_eml.tpl
+++ /dev/null
@@ -1,25 +0,0 @@
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional //EN">
-<html>
-<head>
- <title>Friendika zpráva</title>
- <meta http-equiv="Content-Type" content="text/html;charset=utf-8" />
-</head>
-<body>
-<table style="border:1px solid #ccc">
- <tbody>
- <tr><td colspan="2" style="background:#084769; color:#FFFFFF; font-weight:bold; font-family:'lucida grande', tahoma, verdana,arial, sans-serif; padding: 4px 8px; vertical-align: middle; font-size:16px; letter-spacing: -0.03em; text-align: left;"><img style="width:32px;height:32px; float:left;" src='$siteurl/images/friendika-32.png'><div style="padding:7px; margin-left: 5px; float:left; font-size:18px;letter-spacing:1px;">Friendika</div><div style="clear: both;"></div></td></tr>
-
- <tr><td style="padding-top:22px;" colspan="2">$from okomentoval položku/konverzaci, kterou následujete.</td></tr>
-
-
- <tr><td style="padding-left:22px;padding-top:22px;width:60px;" valign="top" rowspan=3><a href="$url"><img style="border:0px;width:48px;height:48px;" src="$thumb"></a></td>
- <td style="padding-top:22px;"><a href="$url">$from</a></td></tr>
- <tr><td style="padding-bottom:5px;"></td></tr>
- <tr><td style="padding-right:22px;">$body</td></tr>
- <tr><td style="padding-top:11px;padding-bottom:11px;" colspan="2">Přihlaste se na <a href="$display">pro zobrazení kompletní konverzace</a>.</td></tr>
- <tr><td></td><td>Díky,</td></tr>
- <tr><td></td><td>$sitename administrátor</td></tr>
- </tbody>
-</table>
-</body>
-</html>
diff --git a/view/cs/cmnt_received_text_body_eml.tpl b/view/cs/cmnt_received_text_body_eml.tpl
deleted file mode 100644
index ff4492322..000000000
--- a/view/cs/cmnt_received_text_body_eml.tpl
+++ /dev/null
@@ -1,14 +0,0 @@
-Milý/Milá $username,
-
- '$from' okommentoval položku/konverzaci, kterou následujete.
-
------
-$body
------
-
-Přihlaste se na $siteurl pro zobrazení kompletní konverzace:
-
-$display
-
-Díky,
- $sitename administrátor
diff --git a/view/cs/follow_notify_eml.tpl b/view/cs/follow_notify_eml.tpl
deleted file mode 100644
index ba07b19da..000000000
--- a/view/cs/follow_notify_eml.tpl
+++ /dev/null
@@ -1,14 +0,0 @@
-
-Dear {{$myname}},
-
-You have a new follower at {{$sitename}} - '{{$requestor}}'.
-
-You may visit their profile at {{$url}}.
-
-Please login to your site to approve or ignore/cancel the request.
-
-{{$siteurl}}
-
-Regards,
-
- {{$sitename}} administrator
diff --git a/view/cs/friend_complete_eml.tpl b/view/cs/friend_complete_eml.tpl
deleted file mode 100644
index 1c647b994..000000000
--- a/view/cs/friend_complete_eml.tpl
+++ /dev/null
@@ -1,22 +0,0 @@
-
-Dear {{$username}},
-
- Great news... '{{$fn}}' at '{{$dfrn_url}}' has accepted
-your connection request at '{{$sitename}}'.
-
-You are now mutual friends and may exchange status updates, photos, and email
-without restriction.
-
-Please visit your 'Connnections' page at {{$sitename}} if you wish to make
-any changes to this relationship.
-
-{{$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}}'].
-
-Sincerely,
-
- {{$sitename}} Administrator
-
-
diff --git a/view/cs/intro_complete_eml.tpl b/view/cs/intro_complete_eml.tpl
deleted file mode 100644
index 2c2428d68..000000000
--- a/view/cs/intro_complete_eml.tpl
+++ /dev/null
@@ -1,22 +0,0 @@
-
-Dear {{$username}},
-
- '{{$fn}}' at '{{$dfrn_url}}' has accepted
-your connection request at '{{$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}}' may choose to extend this into a two-way or more permissive
-relationship in the future.
-
- You will start receiving public status updates from '{{$fn}}',
-which will appear on your 'Matrix' page at
-
-{{$siteurl}}
-
-Sincerely,
-
- {{$sitename}} Administrator
diff --git a/view/cs/mail_received_html_body_eml.tpl b/view/cs/mail_received_html_body_eml.tpl
deleted file mode 100644
index 427c6c98d..000000000
--- a/view/cs/mail_received_html_body_eml.tpl
+++ /dev/null
@@ -1,25 +0,0 @@
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional //EN">
-<html>
-<head>
- <title>Friendika Zpráva</title>
- <meta http-equiv="Content-Type" content="text/html;charset=utf-8" />
-</head>
-<body>
-<table style="border:1px solid #ccc">
- <tbody>
- <tr><td colspan="2" style="background:#084769; color:#FFFFFF; font-weight:bold; font-family:'lucida grande', tahoma, verdana,arial, sans-serif; padding: 4px 8px; vertical-align: middle; font-size:16px; letter-spacing: -0.03em; text-align: left;"><img style="width:32px;height:32px; float:left;" src='$siteurl/images/friendika-32.png'><div style="padding:7px; margin-left: 5px; float:left; font-size:18px;letter-spacing:1px;">Friendika</div><div style="clear: both;"></div></td></tr>
-
- <tr><td style="padding-top:22px;" colspan="2">$from Vám poslal(a) novou soukromou zprávu na $siteName.</td></tr>
-
-
- <tr><td style="padding-left:22px;padding-top:22px;width:60px;" valign="top" rowspan=3><a href="$url"><img style="border:0px;width:48px;height:48px;" src="$thumb"></a></td>
- <td style="padding-top:22px;"><a href="$url">$from</a></td></tr>
- <tr><td style="font-weight:bold;padding-bottom:5px;">$title</td></tr>
- <tr><td style="padding-right:22px;">$htmlversion</td></tr>
- <tr><td style="padding-top:11px;padding-bottom:11px;" colspan="2">PÅ™ihlaste se na <a href="$siteurl">$siteurl<a/> pro Ätení a zaslání odpovÄ›dí na VaÅ¡e soukromé zprávy.</td></tr>
- <tr><td></td><td>Díky,</td></tr>
- <tr><td></td><td>$siteName administrátor</td></tr>
- </tbody>
-</table>
-</body>
-</html>
diff --git a/view/cs/mail_received_text_body_eml.tpl b/view/cs/mail_received_text_body_eml.tpl
deleted file mode 100644
index c69872377..000000000
--- a/view/cs/mail_received_text_body_eml.tpl
+++ /dev/null
@@ -1,10 +0,0 @@
-$from Vám poslal(a) novou soukromou zprávu na $siteName.
-
-$title
-
-$textversion
-
-PÅ™ihlaste se na $siteurl pro Ätení a zaslání odpovÄ›dí na VaÅ¡e soukromé zprávy.
-
-Díky,
-$siteName administrátor
diff --git a/view/cs/request_notify_eml.tpl b/view/cs/request_notify_eml.tpl
deleted file mode 100644
index d01b8ff27..000000000
--- a/view/cs/request_notify_eml.tpl
+++ /dev/null
@@ -1,17 +0,0 @@
-
-Dear {{$myname}},
-
-You have just received a connection request at {{$sitename}}
-
-from '{{$requestor}}'.
-
-You may visit their profile at {{$url}}.
-
-Please login to your site to view the complete introduction
-and approve or ignore/cancel the request.
-
-{{$siteurl}}
-
-Regards,
-
- {{$sitename}} administrator
diff --git a/view/cs/wall_received_eml.tpl b/view/cs/wall_received_eml.tpl
deleted file mode 100644
index 9fb27ddd8..000000000
--- a/view/cs/wall_received_eml.tpl
+++ /dev/null
@@ -1,14 +0,0 @@
-Milý/Milá $username,
-
- '$from' obohatil VaÅ¡i profilovou zeÄ.
-
------
-$body
------
-
-Přihlaste se na $siteurl k zobrazení nebo smazání této položky:
-
-$display
-
-Díky,
- $sitename administrátor
diff --git a/view/cs/wall_received_html_body_eml.tpl b/view/cs/wall_received_html_body_eml.tpl
deleted file mode 100644
index 893eec20c..000000000
--- a/view/cs/wall_received_html_body_eml.tpl
+++ /dev/null
@@ -1,24 +0,0 @@
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional //EN">
-<html>
-<head>
- <title>Friendika zpráva</title>
- <meta http-equiv="Content-Type" content="text/html;charset=utf-8" />
-</head>
-<body>
-<table style="border:1px solid #ccc">
- <tbody>
- <tr><td colspan="2" style="background:#084769; color:#FFFFFF; font-weight:bold; font-family:'lucida grande', tahoma, verdana,arial, sans-serif; padding: 4px 8px; vertical-align: middle; font-size:16px; letter-spacing: -0.03em; text-align: left;"><img style="width:32px;height:32px; float:left;" src='$siteurl/images/friendika-32.png'><div style="padding:7px; margin-left: 5px; float:left; font-size:18px;letter-spacing:1px;">Friendika</div><div style="clear: both;"></div></td></tr>
-
- <tr><td style="padding-top:22px;" colspan="2">$from obohatil VaÅ¡i profilovou zeÄ.</td></tr>
-
-
- <tr><td style="padding-left:22px;padding-top:22px;width:60px;" valign="top" rowspan=3><a href="$url"><img style="border:0px;width:48px;height:48px;" src="$thumb"></a></td>
- <td style="padding-top:22px;"><a href="$url">$from</a></td></tr>
- <tr><td style="padding-right:22px;">$body</td></tr>
- <tr><td style="padding-top:11px;padding-bottom:11px;" colspan="2">Přihlaste se na <a href="$siteurl">$siteurl</a> k <a href="$display">zobrazení nebo smazání této položky.</a></td></tr>
- <tr><td></td><td>Díky,</td></tr>
- <tr><td></td><td>$sitename administrátor</td></tr>
- </tbody>
-</table>
-</body>
-</html>
diff --git a/view/cs/wall_received_text_body_eml.tpl b/view/cs/wall_received_text_body_eml.tpl
deleted file mode 100644
index 088f7f9db..000000000
--- a/view/cs/wall_received_text_body_eml.tpl
+++ /dev/null
@@ -1,14 +0,0 @@
-Milý/Milá $username,
-
- '$from' obohatil VaÅ¡i profilovou zeÄ.
-
------
-$body
------
-
-Přihlaste se na $siteurl k zobrazení nebo smazání této položky:
-
-$display
-
-Díky,
- $sitename administrátor
diff --git a/view/css/bootstrap-red.css b/view/css/bootstrap-red.css
index a382a42b3..12287ba4f 100644
--- a/view/css/bootstrap-red.css
+++ b/view/css/bootstrap-red.css
@@ -1,39 +1,5 @@
/* override some bootstrap settings */
-html {
- font-size: 100%;
-}
-
-h1,
-.h1 {
- font-size: 24px;
-}
-
-h2,
-.h2 {
- font-size: 18px;
-}
-
-h3,
-.h3 {
- font-size: 16px;
-}
-
-h4,
-.h4 {
- font-size: 14px;
-}
-
-h5,
-.h5 {
- font-size: 12px;
-}
-
-h6,
-.h6 {
- font-size: 10px;
-}
-
/* nav overrides */
nav .badge {
@@ -45,8 +11,21 @@ nav .badge {
cursor: pointer;
}
+nav i {
+ font-size: 14px;
+}
+
+nav ul li {
+ max-height: 49px;
+}
+
+nav img {
+ height: 48px;
+ width: 48px;
+ margin-top: 1px;
+}
+
nav .dropdown-menu {
- top: 50px;
max-height: 450px;
max-width: 300px;
overflow-y: auto;
@@ -81,6 +60,10 @@ nav .navbar-collapse .navbar-right {
float: right;
}
+nav .navbar-toggle {
+ margin-bottom: 7px;
+}
+
/* nav overrides end */
.dropdown-menu img {
diff --git a/view/css/conversation.css b/view/css/conversation.css
index a6540ffba..7a5ffc2f7 100644
--- a/view/css/conversation.css
+++ b/view/css/conversation.css
@@ -1,8 +1,14 @@
+/* common */
+
+code {
+ font-family: Courier, monospace;
+ display: block;
+ overflow: auto;
+}
+
/* jot */
-#jot-title,
-#jot-category,
-#jot-pagetitle {
+.jothidden input {
border: 0px;
margin: 0px;
padding: 8px;
@@ -93,6 +99,10 @@
float: left;
}
+a.wall-item-name-link {
+ font-weight: bold !important;
+}
+
.wall-item-author {
white-space: nowrap;
overflow: hidden;
@@ -107,8 +117,16 @@
overflow: auto;
}
+.wall-item-content h1, .wall-item-content h2 {
+ font-size: 1.319em;
+}
+
+.wall-item-title h3, .wall-item-content h3, .wall-item-content h4 {
+ font-size: 1.112em;
+}
+
.wall-item-content img {
- max-width: 95%;
+ max-width: 100%;
}
.wall-item-title h3 {
@@ -232,3 +250,14 @@
display: none;
margin-top: 7px;
}
+
+/* disable link handling for unknown entries */
+.dropdown-menu > li > a.disabled {
+ pointer-events: none;
+ cursor: default;
+}
+
+.item-forged {
+ color: #FF0000;
+ font-size: 1.5em !important;
+}
diff --git a/view/css/default.css b/view/css/default.css
index 40d5cfc59..56173f932 100644
--- a/view/css/default.css
+++ b/view/css/default.css
@@ -23,10 +23,6 @@ aside#region_1 {
padding: 65px 7px 0px 7px;
}
-aside input[type='text'] {
- width: 100%;
-}
-
section {
width: 100%;
display: table-cell;
diff --git a/view/css/mod_connedit.css b/view/css/mod_connedit.css
index 5bf598062..e7b93a088 100644
--- a/view/css/mod_connedit.css
+++ b/view/css/mod_connedit.css
@@ -14,7 +14,7 @@
margin-bottom: 5px !important;
}
-.abook-pending-contact, .abook-permschange {
+.abook-pending-contact, .abook-permschange, .abook-autotext {
background: orange;
font-weight: bold;
margin: 10px;
diff --git a/view/css/mod_directory.css b/view/css/mod_directory.css
index bc8054937..20facbaf8 100644
--- a/view/css/mod_directory.css
+++ b/view/css/mod_directory.css
@@ -8,17 +8,23 @@
.directory-photo {
margin-left: 25px;
}
+.directory-photo-img {
+ margin-left: auto;
+ margin-right: auto;
+ display:block;
+ width: 80px;
+ height: 80px;
+}
.directory-details {
text-align: center;
margin-left: 5px;
margin-right: 5px;
}
.directory-item {
- float: left;
- width: 225px;
- height: 260px;
overflow: hidden;
margin: 2px;
+ border-bottom: 2px solid #f1f1f1;
+ padding-bottom: 3px;
}
#directory-search-wrapper {
@@ -42,3 +48,27 @@ div.dirtagblock.widget {
float: left;
width: 225px;
}
+
+.contact-photo {
+ float: left;
+ margin-right: 16px;
+}
+
+.contact-name {
+ font-size: larger;
+}
+
+.contact-info {
+ display: block;
+ overflow: hidden;
+}
+
+.directory-item {
+ margin: 16px;
+}
+.directory-connect {
+ margin-top: 3px;
+ display:block;
+ margin-left:auto;
+ margin-right: auto;
+}
diff --git a/view/css/mod_events.css b/view/css/mod_events.css
index 657eff082..0aef13aa6 100644
--- a/view/css/mod_events.css
+++ b/view/css/mod_events.css
@@ -1,3 +1,17 @@
#event-desc-textarea, #event-location-textarea {
width: 400px;
+}
+
+#event-summary {
+ width: 400px;
+}
+
+.event-cats {
+ margin-top: 15px;
+ width: 400px;
+}
+
+.required {
+ color: #ff0000;
+ font-size: 1.2rem;
} \ No newline at end of file
diff --git a/view/css/mod_locs.css b/view/css/mod_locs.css
new file mode 100644
index 000000000..95aee6aef
--- /dev/null
+++ b/view/css/mod_locs.css
@@ -0,0 +1,3 @@
+td {
+padding: 10px;
+}
diff --git a/view/css/mod_mail.css b/view/css/mod_mail.css
index c278f4d53..011c3edd5 100644
--- a/view/css/mod_mail.css
+++ b/view/css/mod_mail.css
@@ -45,8 +45,8 @@ img.mail-list-sender-photo {
#prvmail-rotator-wrapper {
float: left;
margin-top: 10px;
- margin-right: 10px;
- width: 24px;
+/* margin-right: 10px;
+ width: 24px; */
cursor: pointer;
}
diff --git a/view/css/mod_menu.css b/view/css/mod_menu.css
new file mode 100644
index 000000000..6123ea56b
--- /dev/null
+++ b/view/css/mod_menu.css
@@ -0,0 +1,3 @@
+#menulist > li {
+ margin-top: 15px;
+} \ No newline at end of file
diff --git a/view/css/mod_message.css b/view/css/mod_message.css
index 7c45e05be..011c3edd5 100644
--- a/view/css/mod_message.css
+++ b/view/css/mod_message.css
@@ -1,13 +1,3 @@
-/* message side */
-
-#message-check {
- text-align: left;
- white-space: normal;
- margin-top: 48px;
- margin-bottom: 15px;
-}
-
-
/* message */
#mail-list-wrapper {
@@ -55,8 +45,8 @@ img.mail-list-sender-photo {
#prvmail-rotator-wrapper {
float: left;
margin-top: 10px;
- margin-right: 10px;
- width: 24px;
+/* margin-right: 10px;
+ width: 24px; */
cursor: pointer;
}
diff --git a/view/css/mod_new_channel.css b/view/css/mod_new_channel.css
index 3b9c80953..397601635 100644
--- a/view/css/mod_new_channel.css
+++ b/view/css/mod_new_channel.css
@@ -1,13 +1,13 @@
h2 {
margin-left: 15%;
- margin-top: 15%;
+ margin-top: 5%;
}
#newchannel-form {
font-size: 1.4em;
margin-left: 15%;
- margin-top: 5%;
+ margin-top: 20px;
width: 50%;
}
@@ -22,6 +22,10 @@ h2 {
width: 275px;
}
+.newchannel-role-morehelp {
+ float: left;
+ width: 32px;
+}
.newchannel-input {
float: left;
width: 275px;
@@ -38,3 +42,131 @@ h2 {
margin-bottom: 20px;
}
+/**
+* Stylish Select 0.4.9 - $ plugin to replace a select drop down box with a stylable unordered list
+* http://github.com/scottdarby/Stylish-Select/
+*
+* Copyright (c) 2009 Scott Darby
+*
+* Requires: jQuery 1.3 or newer
+*
+* Dual licensed under the MIT and GPL licenses.
+*/
+
+/**
+* Hide lists on page load
+---------------------------------------------------------*/
+
+.stylish-select .SSContainerDivWrapper {
+ left:-9999px;
+}
+
+/*
+* Red example
+---------------------------------------------------------*/
+.stylish-select .SSContainerDivWrapper {
+ margin:0;
+ padding:0;
+ width:290px;
+ position:absolute;
+ top:22px;
+ left:0;
+ z-index:9999;
+ font-size: 60%;
+ line-height: 1.1;
+}
+
+.stylish-select a {
+ font-weight: normal !important;
+}
+
+.stylish-select ul.newList {
+ margin:0;
+ padding:0;
+ list-style:none;
+ color:#000;
+ background:#fff;
+ border:1px solid #ccc;
+ overflow:auto;
+}
+
+.stylish-select ul.newList * {
+ margin:0;
+ padding:0;
+}
+
+
+.stylish-select ul.newList a {
+ color: #000;
+ text-decoration:none;
+ display:block;
+ padding:3px 8px;
+}
+
+.stylish-select .newListSelected {
+ width:285px;
+ color:#000;
+ height:19px;
+ padding:3px 0 0 6px;
+ float:left;
+ background:url(select-bg.png) no-repeat;
+}
+
+.stylish-select ul.newList li a:focus {
+ -moz-outline-style: none;
+}
+
+.stylish-select .selectedTxt {
+ width:258px;
+ overflow:hidden;
+ height:18px;
+ font-size: 90%;
+ padding:0 23px 0 0;
+}
+
+.stylish-select .hiLite {
+ background:#650101!important;
+ color:#fff!important;
+}
+
+.stylish-select .newListHover {
+ background:#ccc!important;
+ color:#000!important;
+ cursor:default;
+}
+
+.stylish-select .newListDisabled {
+ opacity: 0.6;
+ -ms-filter: "progid:DXImageTransform.Microsoft.Alpha(Opacity=60)";
+ filter: alpha(opacity=60);
+}
+
+.stylish-select .newListItemDisabled {
+ opacity: 0.6;
+ -ms-filter: "progid:DXImageTransform.Microsoft.Alpha(Opacity=60)";
+ filter: alpha(opacity=60);
+}
+
+.stylish-select .newListOptionDisabled {
+ opacity: 0.6;
+ -ms-filter: "progid:DXImageTransform.Microsoft.Alpha(Opacity=60)";
+ filter: alpha(opacity=60);
+}
+
+.stylish-select .newListSelHover,
+.stylish-select .newListSelFocus {
+ background-position:0 -22px;
+ cursor:default;
+}
+
+.stylish-select .newListOptionTitle {
+ font-weight:bold;
+}
+
+.stylish-select .newListOptionTitle ul {
+ margin:3px 0 0;
+}
+
+.stylish-select .newListOptionTitle li {
+ font-weight:normal;
+} \ No newline at end of file
diff --git a/view/css/mod_photos.css b/view/css/mod_photos.css
index fa3b5b35a..34bac51e9 100644
--- a/view/css/mod_photos.css
+++ b/view/css/mod_photos.css
@@ -1,184 +1,30 @@
-
-
-.photo-top-photo, .photo-album-photo {
- padding: 10px;
- max-width: 300px;
-}
-
-
.photos-end {
clear: both;
margin-bottom: 25px;
}
-#photo-view-wrapper {
- float:left;
- min-width: 500px;
- overflow: hidden;
+.photo-item-tools-left,
+.photo-item-tools-right {
+ padding: 7px 10px;
}
-#photo-prev-link, #photo-next-link {
- padding: 10px;
- float: left;
+.photo-like-rotator {
+ margin-top: 23px;
+ margin-right: 5px;
}
#photo-photo {
- float: left;
-}
-
-#photo-photo-end {
- clear: both;
-}
-
-.photo-album-image-wrapper {
- float: left;
- margin-top: 15px;
- margin-right: 15px;
- margin-left: 15px;
-}
-.photo-album-image-wrapper .caption {
- display: none;
- width: 100%;
- bottom: 0px;
- padding: 0.5em 0.5em 0px 0.5em;
- margin: 0px;
-}
-.photo-album-image-wrapper a:hover .caption {
- display:block;
-}
-
-#photo-album-end {
- clear: both;
- margin-bottom: 25px;
-}
-
-.photo-top-image-wrapper {
- float: left;
- margin-top: 15px;
- margin-right: 15px;
- margin-left: 15px;
- margin-bottom: 15px;
-}
-.photo-top-album-name {
- width: 100%;
- min-height: 2em;
- bottom: 0px;
- padding: 0px 3px;
- padding-top: 0.5em;
-}
-#photo-top-end {
- clear: both;
-}
-
-#photo-top-links {
- margin-bottom: 30px;
- margin-left: 30px;
-}
-
-#photos-upload-newalbum-div {
- float: left;
- width: 175px;
-}
-
-#photos-upload-noshare {
- margin-bottom: 10px;
-}
-#photos-upload-existing-album-text {
- float: left;
- width: 175px;
-}
-#photos-upload-newalbum {
- float: left;
-}
-#photos-upload-album-select {
- float: left;
-}
-
-#photos-upload-spacer {
- margin-top: 25px;
-}
-#photos-upload-new-end, #photos-upload-exist-end {
- clear: both;
-}
-#photos-upload-exist-end {
- margin-bottom: 15px;
-}
-#photos-upload-submit {
- margin-top: 15px;
-}
-
-
-#photos-upload-select-files-text {
- margin-top: 15px;
- margin-bottom: 15px;
-}
-
-#photo-edit-caption-label, #photo-edit-tags-label, #photo-edit-albumname-label, #photo-edit-rotate-label {
- float: left;
- width: 150px;
-}
-
-#photo-edit-perms-end {
- margin-bottom: 15px;
-}
-
-#photo-edit-caption, #photo-edit-newtag, #photo-edit-albumname, #photo-edit-rotate {
- float: left;
- margin-bottom: 25px;
-}
-#photo-edit-link-wrap {
- margin-bottom: 15px;
-}
-#photo-like-div {
- margin-bottom: 25px;
-}
-
-#photo-edit-caption-end, #photo-edit-tags-end, #photo-edit-albumname-end, #photo-edit-rotate-end {
- clear: both;
-}
-
-#photo-edit-rotate-end {
- margin-bottom: 15px;
-}
-
-#photo-edit-delete-button {
- float: right;
+ display: table;
+ margin: 0 auto;
}
-#photo-edit-edit-wrapper {
- margin-top: 10px;
- margin-bottom: 30px;
+#photo-edit,
+#photo-album-edit-wrapper,
+#photo-upload-form {
+ display: none;
}
-#photo-photo-delete-button {
- float: right;
- margin-top: -64px;
+#photos-upload-choose {
+ border: unset;
+ padding: unset;
}
-
-#photo-edit-end {
- margin-bottom: 35px;
-}
-#photo-caption {
- margin-top: 15px;
- margin-bottom: 15px;
-}
-
-#in-this-photo-text {
- margin-left: 30px;
-}
-
-#in-this-photo {
- margin-left: 60px;
- margin-top: 10px;
- margin-bottom: 20px;
-}
-
-#photo-album-edit-submit, #photo-album-edit-drop {
- margin-top: 15px;
- margin-bottom: 15px;
-}
-
-#photo-album-edit-drop {
- margin-left: 200px;
-}
-
diff --git a/view/css/mod_profile.css b/view/css/mod_profile.css
new file mode 100644
index 000000000..e1ceae7f7
--- /dev/null
+++ b/view/css/mod_profile.css
@@ -0,0 +1,16 @@
+.aprofile dt {
+ font-weight: bold;
+}
+
+.profile-thing-list {
+ list-style-type: none;
+}
+
+.profile-thing-list img {
+ margin-bottom: 5px;
+}
+
+.profile-thing-list > li {
+ margin-bottom: 15px;
+}
+
diff --git a/view/css/mod_settings.css b/view/css/mod_settings.css
index 651167b47..b03023e21 100644
--- a/view/css/mod_settings.css
+++ b/view/css/mod_settings.css
@@ -12,6 +12,10 @@ ul#settings-privacy-macros {
margin-top: 15px;
}
+#settings-default-perms {
+ margin-top: 15px;
+}
+
#settings-perm-advanced {
margin-top: 15px;
}
@@ -41,7 +45,7 @@ ul#settings-privacy-macros {
margin-left: 20px;
width: 330px;
}
-#settings-notify-desc, #settings-activity-desc {
+#settings-notify-desc, #settings-activity-desc, #settings-vnotify-desc {
font-weight: bold;
margin-bottom: 15px;
}
diff --git a/view/css/widgets.css b/view/css/widgets.css
index 8bf5a9e97..4db87e633 100644
--- a/view/css/widgets.css
+++ b/view/css/widgets.css
@@ -1,15 +1,21 @@
-
-/* Easiest way to indent the widget body - indent the entire widget and then shift the header label back to the left */
-
.widget {
margin-bottom: 10px;
- padding: 10px 10px 10px 20px;
+ padding: 10px;
}
.widget h3 {
- margin-left: -10px;
margin-top: 0px;
- margin-bottom: 10px;
+}
+
+
+.widget .nav-pills > li > a {
+ padding: 6px 10px;
+}
+
+.widget-input {
+ width: 100%;
+ border-top-right-radius: 0px;
+ border-bottom-right-radius: 0px;
}
/* suggest */
@@ -31,63 +37,16 @@
/* notes */
#note-text {
+ padding: 5px;
width: 100%;
resize: vertical;
height: 150px;
}
-#note-save {
- margin-top: 10px;
-}
-
/* saved searches */
-
-#netsearch-box #search-submit {
- margin: 10px 0 7px 0;
-}
-
-#netsearch-box #search-save {
- margin: 9px 0 7px 6px;
-}
-.search-save {
- margin: 7px 0 7px 7px;
-}
-
-.saved-search-li {
- margin-top: 3px;
-}
-
-.saved-search-li i {
- opacity: 0;
-}
-
-.saved-search-li:hover i {
- opacity: 1;
-}
-
-.saved-search-icon {
- float: right;
-}
-
-.savedsearchterm {
- display: block;
- width: 150px;
- overflow: hidden;
-}
-
-/* peoplefind */
-
-#peoplefind-sidebar .btn {
- margin: 10px 0 10px 0;
-}
-
-#side-peoplefind-url {
- margin-top: 5px;
-}
-
-#side-peoplefind-url {
- font-size: 1em;
+#saved-search-list {
+ margin-top: 2px;
}
@@ -97,13 +56,15 @@
/* posted date */
.posted-date-selector-months {
- margin-left: 10px;
+ margin: 2px 0px 0px 10px;
+}
+
+#posted-date-selector li:not(:first-child) {
+ margin-top: 2px;
}
-#datebrowse-sidebar select {
- width: 190px;
- max-width: 190px;
- max-height: 150px;
+#posted-date-selector-drop li:not(:first-child) {
+ margin-top: 2px;
}
/* categories */
@@ -111,16 +72,8 @@
/* group */
-#sidebar-group-list {
- margin-bottom: 10px;
-}
-
-.sidebar-group-li input {
- float: right;
-}
-
-.groupsideedit {
- float: right;
+a.group-edit-tool {
+ z-index: 1;
}
.group-edit-icon {
@@ -145,9 +98,6 @@ li:hover .group-edit-icon {
/* photo albums */
-#photo-albums-upload-link {
- margin-top: 10px;
-}
/* Chatrooms */
diff --git a/view/de/cmnt_received_eml.tpl b/view/de/cmnt_received_eml.tpl
deleted file mode 100644
index 500c93eb4..000000000
--- a/view/de/cmnt_received_eml.tpl
+++ /dev/null
@@ -1,17 +0,0 @@
-
-Hallo $username,
-
-'$from' hat einen Pinnwandeintrag kommentiert dem du auch folgst.
-
------
-$body
------
-
-Um die gesamte Konversation zu sehen melde dich bitte bei $siteurl an:
-
-$display
-
-Danke für die Aufmerksamkeit
- $sitename Administrator
-
-
diff --git a/view/de/cmnt_received_html_body_eml.tpl b/view/de/cmnt_received_html_body_eml.tpl
deleted file mode 100644
index db7f829bc..000000000
--- a/view/de/cmnt_received_html_body_eml.tpl
+++ /dev/null
@@ -1,25 +0,0 @@
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional //EN">
-<html>
-<head>
- <title>Friendica Nachricht</title>
- <meta http-equiv="Content-Type" content="text/html;charset=utf-8" />
-</head>
-<body>
-<table style="border:1px solid #ccc">
- <tbody>
- <tr><td colspan="2" style="background:#084769; color:#FFFFFF; font-weight:bold; font-family:'lucida grande', tahoma, verdana,arial, sans-serif; padding: 4px 8px; vertical-align: middle; font-size:16px; letter-spacing: -0.03em; text-align: left;"><img style="width:32px;height:32px; float:left;" src='$siteurl/images/friendica-32.png'><div style="padding:7px; margin-left: 5px; float:left; font-size:18px;letter-spacing:1px;">Friendica</div><div style="clear: both;"></div></td></tr>
-
- <tr><td style="padding-top:22px;" colspan="2">$from hat einen Beitrag kommentiert dem du auch folgst.</td></tr>
-
-
- <tr><td style="padding-left:22px;padding-top:22px;width:60px;" valign="top" rowspan=3><a href="$url"><img style="border:0px;width:48px;height:48px;" src="$thumb"></a></td>
- <td style="padding-top:22px;"><a href="$url">$from</a></td></tr>
- <tr><td style="padding-bottom:5px;"></td></tr>
- <tr><td style="padding-right:22px;">$body</td></tr>
- <tr><td style="padding-top:11px;padding-bottom:11px;" colspan="2">Bitte melde dich an um <a href="$display">die komplette Unterhaltung anzuzeigen</a>.</td></tr>
- <tr><td></td><td>Beste Gr&uuml;&szlig;e,</td></tr>
- <tr><td></td><td>$sitename Administrator</td></tr>
- </tbody>
-</table>
-</body>
-</html>
diff --git a/view/de/cmnt_received_text_body_eml.tpl b/view/de/cmnt_received_text_body_eml.tpl
deleted file mode 100644
index e00a868af..000000000
--- a/view/de/cmnt_received_text_body_eml.tpl
+++ /dev/null
@@ -1,16 +0,0 @@
-Hallo $username,
-
-'$from' hat einen Pinnwandeintrag kommentiert dem du auch folgst.
-
------
-$body
------
-
-Um die gesamte Konversation zu sehen melde dich bitte bei $siteurl an:
-
-$display
-
-Danke fŸr die Aufmerksamkeit
- $sitename Administrator
-
-
diff --git a/view/de/follow_notify_eml.tpl b/view/de/follow_notify_eml.tpl
deleted file mode 100644
index ba07b19da..000000000
--- a/view/de/follow_notify_eml.tpl
+++ /dev/null
@@ -1,14 +0,0 @@
-
-Dear {{$myname}},
-
-You have a new follower at {{$sitename}} - '{{$requestor}}'.
-
-You may visit their profile at {{$url}}.
-
-Please login to your site to approve or ignore/cancel the request.
-
-{{$siteurl}}
-
-Regards,
-
- {{$sitename}} administrator
diff --git a/view/de/friend_complete_eml.tpl b/view/de/friend_complete_eml.tpl
deleted file mode 100644
index 1c647b994..000000000
--- a/view/de/friend_complete_eml.tpl
+++ /dev/null
@@ -1,22 +0,0 @@
-
-Dear {{$username}},
-
- Great news... '{{$fn}}' at '{{$dfrn_url}}' has accepted
-your connection request at '{{$sitename}}'.
-
-You are now mutual friends and may exchange status updates, photos, and email
-without restriction.
-
-Please visit your 'Connnections' page at {{$sitename}} if you wish to make
-any changes to this relationship.
-
-{{$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}}'].
-
-Sincerely,
-
- {{$sitename}} Administrator
-
-
diff --git a/view/de/htconfig.tpl b/view/de/htconfig.tpl
index 493cb5d00..550b018fe 100644
--- a/view/de/htconfig.tpl
+++ b/view/de/htconfig.tpl
@@ -33,6 +33,7 @@ $a->config['system']['baseurl'] = '{{$siteurl}}';
$a->config['system']['sitename'] = "Red Matrix";
$a->config['system']['location_hash'] = '{{$site_id}}';
+
// Your choices are REGISTER_OPEN, REGISTER_APPROVE, or REGISTER_CLOSED.
// Be certain to create your own personal account before setting
// REGISTER_CLOSED. 'register_text' (if set) will be displayed prominently on
@@ -44,13 +45,34 @@ $a->config['system']['register_policy'] = REGISTER_OPEN;
$a->config['system']['register_text'] = '';
$a->config['system']['admin_email'] = '{{$adminmail}}';
-// Maximum size of an imported message, 0 is unlimited
+// Recommend you leave this set to 1. Set to 0 to let people register without
+// proving they own the email address they register with.
-$a->config['system']['max_import_size'] = 200000;
+$a->config['system']['verify_email'] = 1;
+
+
+// Site access restrictions. By default we will create private sites.
+// Your choices are ACCESS_PRIVATE, ACCESS_PAID, ACCESS_TIERED, and ACCESS_FREE.
+// If you leave REGISTER_OPEN above, anybody may register on your
+// site, however your site will not be listed anywhere as an open
+// registration hub. We will use the system access policy (below)
+// to determine whether or not to list your site in the directory
+// as an open hub where anybody may create accounts. Your choice of
+// paid, tiered, or free determines how these listings will be presented.
+
+
+$a->config['system']['access_policy'] = ACCESS_PRIVATE;
-// maximum size of uploaded photos
+// If you operate a public site, you might wish that people are directed
+// to a "sellpage" where you can describe for features or policies or service plans in depth.
+// This must be an absolute URL beginning with http:// or https:// .
-$a->config['system']['maximagesize'] = 800000;
+$a->config['system']['sellpage'] = '';
+
+// Maximum size of an imported message, 0 is unlimited
+// FIXME - NOT currently implemented.
+
+$a->config['system']['max_import_size'] = 200000;
// Location of PHP command line processor
@@ -68,3 +90,14 @@ $a->config['system']['directory_mode'] = DIRECTORY_MODE_NORMAL;
$a->config['system']['theme'] = 'redbasic';
+
+// PHP error logging setup
+// Before doing this ensure that the webserver has permission
+// to create and write to php.out in the top level Red directory,
+// or change the name (below) to a file/path where this is allowed.
+
+// Uncomment the following 4 lines to turn on PHP error logging.
+//error_reporting(E_ERROR | E_WARNING | E_PARSE );
+//ini_set('error_log','php.out');
+//ini_set('log_errors','1');
+//ini_set('display_errors', '0');
diff --git a/view/de/intro_complete_eml.tpl b/view/de/intro_complete_eml.tpl
deleted file mode 100644
index 2c2428d68..000000000
--- a/view/de/intro_complete_eml.tpl
+++ /dev/null
@@ -1,22 +0,0 @@
-
-Dear {{$username}},
-
- '{{$fn}}' at '{{$dfrn_url}}' has accepted
-your connection request at '{{$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}}' may choose to extend this into a two-way or more permissive
-relationship in the future.
-
- You will start receiving public status updates from '{{$fn}}',
-which will appear on your 'Matrix' page at
-
-{{$siteurl}}
-
-Sincerely,
-
- {{$sitename}} Administrator
diff --git a/view/de/lostpass_eml.tpl b/view/de/lostpass_eml.tpl
index 3b79d2791..2175d2e5d 100644
--- a/view/de/lostpass_eml.tpl
+++ b/view/de/lostpass_eml.tpl
@@ -1,32 +1,32 @@
-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.
+Hallo {{$username}},
+ auf {{$sitename} wurde eine Rücksetzung Deines Passwortes angefordert.
+Bitte klicke auf den Link unten, um diese Anforderung zu bestätigen,
+oder kopiere den Link und füge ihn in die Adresszeile Deines Browsers ein.
-If you did NOT request this change, please DO NOT follow the link
-provided and ignore and/or delete this email.
+Falls Du KEINE Rücksetzung Deines Passwortes angefordert hast, folge dem Link
+NICHT! Ignoriere einfach diese E-Mail.
-Your password will not be changed unless we can verify that you
-issued this request.
+Dein Passwort wird nicht geändert, wenn Du nicht auf den
+Link klickst.
-Follow this link to verify your identity:
+Folge diesem Link, um Dein Passwort zurückzusetzen:
{{$reset_link}}
-You will then receive a follow-up message containing the new password.
+Du wirst dann eine E-Mail mit dem neuen Passwort bekommen.
-You may change that password from your account settings page after logging in.
+Du solltest das Passwort nach dem Einloggen in den Einstellungen ändern.
-The login details are as follows:
+Die Anmeldedetails lauten wie folgt:
-Site Location: {{$siteurl}}
-Login Name: {{$email}}
+Adresse des Servers: {{$siteurl}}
+Username: {{$email}}
-Sincerely,
- {{$sitename}} Administrator
+Viele Grüße,
+ der Administrator von {{$sitename}}
-
+ \ No newline at end of file
diff --git a/view/de/mail_received_html_body_eml.tpl b/view/de/mail_received_html_body_eml.tpl
deleted file mode 100644
index 34eea59da..000000000
--- a/view/de/mail_received_html_body_eml.tpl
+++ /dev/null
@@ -1,26 +0,0 @@
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional //EN">
-<html>
-<head>
- <title>Friendica Nachricht</title>
- <meta http-equiv="Content-Type" content="text/html;charset=utf-8" />
-</head>
-<body>
-<table style="border:1px solid #ccc">
- <tbody>
- <tr><td colspan="2" style="background:#084769; color:#FFFFFF; font-weight:bold; font-family:'lucida grande', tahoma, verdana,arial, sans-serif; padding: 4px 8px; vertical-align: middle; font-size:16px; letter-spacing: -0.03em; text-align: left;"><img style="width:32px;height:32px; float:left;" src='$siteurl/images/friendica-32.png'><div style="padding:7px; margin-left: 5px; float:left; font-size:18px;letter-spacing:1px;">Friendica</div><div style="clear: both;"></div></td></tr>
-
-
- <tr><td style="padding-top:22px;" colspan="2">$fromi hat dir eine private Nachricht auf $siteName gesendet.</td></tr>
-
-
- <tr><td style="padding-left:22px;padding-top:22px;width:60px;" valign="top" rowspan=3><a href="$url"><img style="border:0px;width:48px;height:48px;" src="$thumb"></a></td>
- <td style="padding-top:22px;"><a href="$url">$from</a></td></tr>
- <tr><td style="font-weight:bold;padding-bottom:5px;">$title</td></tr>
- <tr><td style="padding-right:22px;">$htmlversion</td></tr>
- <tr><td style="padding-top:11px;padding-bottom:11px;" colspan="2">Bitte melde dich auf <a href="$siteurl/message">$siteurl/message</a> an um die Nachricht zu bearbeiten.</td></tr>
- <tr><td></td><td>Beste Gr&uuml;&szlig;e,</td></tr>
- <tr><td></td><td>$siteName Administrator</td></tr>
- </tbody>
-</table>
-</body>
-</html>
diff --git a/view/de/mail_received_text_body_eml.tpl b/view/de/mail_received_text_body_eml.tpl
deleted file mode 100644
index f5c90cfed..000000000
--- a/view/de/mail_received_text_body_eml.tpl
+++ /dev/null
@@ -1,11 +0,0 @@
-Du hast eine neue private Nachricht von '$from' auf '$siteName' erhhalten.
-
-$title
-
-$textversion
-
-Bitte melde dich unter $siteurl an um deine privaten Nachrichte zu lesen und zu
-beantworten.
-
-Viele Gr٤e,
-$siteName Administrator
diff --git a/view/de/messages.po b/view/de/messages.po
index 3278eb006..247cc2ce9 100644
--- a/view/de/messages.po
+++ b/view/de/messages.po
@@ -11,9 +11,11 @@
# JooBee <d13@raclan.de>, 2014
# Einer von Vielen <tom@jfellow.net>, 2013
# Einer von Vielen <tom@jfellow.net>, 2013
+# Ettore Atalan <atalanttore@googlemail.com>, 2014
# Frank Dieckmann <frank@lumina-verte.org>, 2013
# Frank Dieckmann <frank@lumina-verte.org>, 2013
# Oliver <post@toktan.org>, 2013-2014
+# Phellmes <forum@suschka.de>, 2014
# bavatar <tobias.diekershoff@gmx.net>, 2013-2014
# do.t <tobias@tonstrom.de>, 2014
# zottel <transifex@zottel.net>, 2013-2014
@@ -22,8 +24,8 @@ msgid ""
msgstr ""
"Project-Id-Version: Red Matrix\n"
"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2014-08-09 01:13+0000\n"
-"PO-Revision-Date: 2014-08-11 07:23+0000\n"
+"POT-Creation-Date: 2014-11-14 00:04-0800\n"
+"PO-Revision-Date: 2014-11-24 10:45+0000\n"
"Last-Translator: zottel <transifex@zottel.net>\n"
"Language-Team: German (http://www.transifex.com/projects/p/red-matrix/language/de/)\n"
"MIME-Version: 1.0\n"
@@ -32,310 +34,1133 @@ msgstr ""
"Language: de\n"
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
-#: ../../view/theme/redbasic/php/config.php:84
-msgid "Light (Red Matrix default)"
-msgstr "Hell (RedMatrix Voreinstellung)"
+#: ../../include/dba/dba_driver.php:132
+#, php-format
+msgid "Cannot locate DNS info for database server '%s'"
+msgstr "Kann die DNS-Informationen für den Datenbank-Server '%s' nicht finden"
-#: ../../view/theme/redbasic/php/config.php:99
-#: ../../include/ItemObject.php:583 ../../mod/settings.php:516
-#: ../../mod/settings.php:628 ../../mod/settings.php:656
-#: ../../mod/settings.php:680 ../../mod/settings.php:750
-#: ../../mod/settings.php:928 ../../mod/filestorage.php:137
-#: ../../mod/admin.php:442 ../../mod/admin.php:751 ../../mod/admin.php:886
-#: ../../mod/admin.php:1019 ../../mod/admin.php:1218 ../../mod/admin.php:1305
-#: ../../mod/photos.php:563 ../../mod/photos.php:668 ../../mod/photos.php:956
-#: ../../mod/photos.php:996 ../../mod/photos.php:1083 ../../mod/mood.php:135
-#: ../../mod/pdledit.php:58 ../../mod/connedit.php:518 ../../mod/setup.php:307
-#: ../../mod/setup.php:350 ../../mod/invite.php:156 ../../mod/thing.php:286
-#: ../../mod/thing.php:329 ../../mod/connect.php:92 ../../mod/fsuggest.php:108
-#: ../../mod/poke.php:166 ../../mod/group.php:81 ../../mod/appman.php:99
-#: ../../mod/sources.php:104 ../../mod/sources.php:138
-#: ../../mod/import.php:393 ../../mod/mail.php:345 ../../mod/profiles.php:589
-#: ../../mod/chat.php:177 ../../mod/chat.php:211 ../../mod/events.php:511
-msgid "Submit"
-msgstr "Bestätigen"
+#: ../../include/photo/photo_driver.php:680 ../../include/photos.php:52
+#: ../../mod/photos.php:91 ../../mod/photos.php:654
+#: ../../mod/profile_photo.php:142 ../../mod/profile_photo.php:301
+#: ../../mod/profile_photo.php:423
+msgid "Profile Photos"
+msgstr "Profilfotos"
-#: ../../view/theme/redbasic/php/config.php:102
-msgid "Theme settings"
-msgstr "Theme-Einstellungen"
+#: ../../include/conversation.php:120 ../../include/diaspora.php:1923
+#: ../../include/text.php:1747 ../../mod/subthread.php:72
+#: ../../mod/subthread.php:174 ../../mod/tagger.php:45 ../../mod/like.php:298
+msgid "photo"
+msgstr "Foto"
-#: ../../view/theme/redbasic/php/config.php:103
-msgid "Set scheme"
-msgstr "Schema"
+#: ../../include/conversation.php:123 ../../include/text.php:1750
+#: ../../mod/tagger.php:49
+msgid "event"
+msgstr "Termin"
-#: ../../view/theme/redbasic/php/config.php:104
-msgid "Narrow navbar"
-msgstr "Verkleinere Navigationsleiste"
+#: ../../include/conversation.php:126 ../../mod/like.php:89
+msgid "channel"
+msgstr "Kanal"
-#: ../../view/theme/redbasic/php/config.php:105
-msgid "Navigation bar background color"
-msgstr "Hintergrundfarbe der Navigationsleiste"
+#: ../../include/conversation.php:148 ../../include/diaspora.php:1923
+#: ../../include/text.php:1753 ../../mod/subthread.php:72
+#: ../../mod/subthread.php:174 ../../mod/tagger.php:53 ../../mod/like.php:298
+msgid "status"
+msgstr "Status"
-#: ../../view/theme/redbasic/php/config.php:106
-msgid "Navigation bar gradient top color"
-msgstr "Farbverlauf der Navigationsleiste: Farbe oben"
+#: ../../include/conversation.php:150 ../../include/text.php:1755
+#: ../../mod/tagger.php:55
+msgid "comment"
+msgstr "Kommentar"
-#: ../../view/theme/redbasic/php/config.php:107
-msgid "Navigation bar gradient bottom color"
-msgstr "Farbverlauf der Navigationsleiste: Farbe unten"
+#: ../../include/conversation.php:164 ../../include/diaspora.php:1952
+#: ../../mod/like.php:344
+#, php-format
+msgid "%1$s likes %2$s's %3$s"
+msgstr "%1$s gefällt %2$ss %3$s"
-#: ../../view/theme/redbasic/php/config.php:108
-msgid "Navigation active button gradient top color"
-msgstr "Navigations-Button aktiv: Farbe für Farbverlauf oben"
+#: ../../include/conversation.php:167 ../../mod/like.php:346
+#, php-format
+msgid "%1$s doesn't like %2$s's %3$s"
+msgstr "%1$s gefällt %2$ss %3$s nicht"
-#: ../../view/theme/redbasic/php/config.php:109
-msgid "Navigation active button gradient bottom color"
-msgstr "Navigations-Button aktiv: Farbe für Farbverlauf unten"
+#: ../../include/conversation.php:204
+#, php-format
+msgid "%1$s is now connected with %2$s"
+msgstr "%1$s ist jetzt mit %2$s verbunden"
-#: ../../view/theme/redbasic/php/config.php:110
-msgid "Navigation bar border color "
-msgstr "Farbe für den Rand der Navigationsleiste"
+#: ../../include/conversation.php:239
+#, php-format
+msgid "%1$s poked %2$s"
+msgstr "%1$s stupste %2$s an"
-#: ../../view/theme/redbasic/php/config.php:111
-msgid "Navigation bar icon color "
-msgstr "Farbe für die Icons der Navigationsleiste"
+#: ../../include/conversation.php:243 ../../include/text.php:905
+msgid "poked"
+msgstr "stupste"
-#: ../../view/theme/redbasic/php/config.php:112
-msgid "Navigation bar active icon color "
-msgstr "Farbe für aktive Icons der Navigationsleiste"
+#: ../../include/conversation.php:261 ../../mod/mood.php:63
+#, php-format
+msgctxt "mood"
+msgid "%1$s is %2$s"
+msgstr "%1$s ist %2$s"
-#: ../../view/theme/redbasic/php/config.php:113
-msgid "link color"
-msgstr "Farbe für Links"
+#: ../../include/conversation.php:637 ../../include/ItemObject.php:126
+msgid "Select"
+msgstr "Auswählen"
-#: ../../view/theme/redbasic/php/config.php:114
-msgid "Set font-color for banner"
-msgstr "Farbe der Schrift des Banners"
+#: ../../include/conversation.php:638 ../../include/RedDAV/RedBrowser.php:251
+#: ../../include/apps.php:250 ../../include/ItemObject.php:120
+#: ../../mod/photos.php:1069 ../../mod/connedit.php:476
+#: ../../mod/thing.php:234 ../../mod/settings.php:612 ../../mod/group.php:176
+#: ../../mod/admin.php:730 ../../mod/admin.php:861
+msgid "Delete"
+msgstr "Löschen"
-#: ../../view/theme/redbasic/php/config.php:115
-msgid "Set the background color"
-msgstr "Hintergrundfarbe"
+#: ../../include/conversation.php:645 ../../include/ItemObject.php:89
+msgid "Private Message"
+msgstr "Private Nachricht"
-#: ../../view/theme/redbasic/php/config.php:116
-msgid "Set the background image"
-msgstr "Hintergrundbild"
+#: ../../include/conversation.php:652 ../../include/ItemObject.php:194
+msgid "Message signature validated"
+msgstr "Signatur überprüft"
-#: ../../view/theme/redbasic/php/config.php:117
-msgid "Set the background color of items"
-msgstr "Hintergrundfarbe für Beiträge"
+#: ../../include/conversation.php:653 ../../include/ItemObject.php:195
+msgid "Message signature incorrect"
+msgstr "Signatur nicht korrekt"
-#: ../../view/theme/redbasic/php/config.php:118
-msgid "Set the background color of comments"
-msgstr "Hintergrundfarbe für Kommentare"
+#: ../../include/conversation.php:674
+#, php-format
+msgid "View %s's profile @ %s"
+msgstr "%ss Profil auf %s ansehen"
-#: ../../view/theme/redbasic/php/config.php:119
-msgid "Set the border color of comments"
-msgstr "Farbe des Randes von Kommentaren"
+#: ../../include/conversation.php:689
+msgid "Categories:"
+msgstr "Kategorien:"
-#: ../../view/theme/redbasic/php/config.php:120
-msgid "Set the indent for comments"
-msgstr "Einzug für Kommmentare einstellen"
+#: ../../include/conversation.php:690
+msgid "Filed under:"
+msgstr "Gespeichert unter:"
-#: ../../view/theme/redbasic/php/config.php:121
-msgid "Set the basic color for item icons"
-msgstr "Grundfarbe für Beitrags-Icons"
+#: ../../include/conversation.php:698 ../../include/ItemObject.php:265
+#, php-format
+msgid " from %s"
+msgstr "von %s"
-#: ../../view/theme/redbasic/php/config.php:122
-msgid "Set the hover color for item icons"
-msgstr "Farbe für Beitrags-Icons unter dem Mauszeiger"
+#: ../../include/conversation.php:701 ../../include/ItemObject.php:268
+#, php-format
+msgid "last edited: %s"
+msgstr "zuletzt bearbeitet: %s"
-#: ../../view/theme/redbasic/php/config.php:123
-msgid "Set font-size for the entire application"
-msgstr "Schriftgröße für die ganze Applikation"
+#: ../../include/conversation.php:702 ../../include/ItemObject.php:269
+#, php-format
+msgid "Expires: %s"
+msgstr "Verfällt: %s"
-#: ../../view/theme/redbasic/php/config.php:124
-msgid "Set font-size for posts and comments"
-msgstr "Schriftgröße für Beiträge und Kommentare"
+#: ../../include/conversation.php:717
+msgid "View in context"
+msgstr "Im Zusammenhang anschauen"
-#: ../../view/theme/redbasic/php/config.php:125
-msgid "Set font-color for posts and comments"
-msgstr "Schriftfarbe für Posts und Kommentare"
+#: ../../include/conversation.php:719 ../../include/conversation.php:1153
+#: ../../include/ItemObject.php:310 ../../mod/photos.php:977
+#: ../../mod/editblock.php:152 ../../mod/editlayout.php:148
+#: ../../mod/editpost.php:121 ../../mod/editwebpage.php:183
+#: ../../mod/mail.php:234 ../../mod/mail.php:349
+msgid "Please wait"
+msgstr "Bitte warten"
-#: ../../view/theme/redbasic/php/config.php:126
-msgid "Set radius of corners"
-msgstr "Ecken-Radius"
+#: ../../include/conversation.php:843
+msgid "remove"
+msgstr "lösche"
-#: ../../view/theme/redbasic/php/config.php:127
-msgid "Set shadow depth of photos"
-msgstr "Schattentiefe von Fotos"
+#: ../../include/conversation.php:847 ../../include/nav.php:257
+msgid "Loading..."
+msgstr "Lädt ..."
-#: ../../view/theme/redbasic/php/config.php:128
-msgid "Set maximum width of conversation regions"
-msgstr "Maximalbreite der Unterhaltungsbereiche"
+#: ../../include/conversation.php:848
+msgid "Delete Selected Items"
+msgstr "Lösche die ausgewählten Elemente"
-#: ../../view/theme/redbasic/php/config.php:129
-msgid "Center conversation regions"
-msgstr "Konversationsbereich zentrieren"
+#: ../../include/conversation.php:942
+msgid "View Source"
+msgstr "Quelle anzeigen"
-#: ../../view/theme/redbasic/php/config.php:130
-msgid "Set minimum opacity of nav bar - to hide it"
-msgstr "Mindest-Deckkraft der Navigationsleiste ( - versteckt sie)"
+#: ../../include/conversation.php:943
+msgid "Follow Thread"
+msgstr "Unterhaltung folgen"
-#: ../../view/theme/redbasic/php/config.php:131
-msgid "Set size of conversation author photo"
-msgstr "Größe der Avatare von Themenstartern"
+#: ../../include/conversation.php:944
+msgid "View Status"
+msgstr "Status ansehen"
-#: ../../view/theme/redbasic/php/config.php:132
-msgid "Set size of followup author photos"
-msgstr "Größe der Avatare von Kommentatoren"
+#: ../../include/conversation.php:945 ../../include/nav.php:99
+#: ../../mod/connedit.php:429 ../../mod/connedit.php:544
+msgid "View Profile"
+msgstr "Profil ansehen"
-#: ../../view/theme/redbasic/php/config.php:133
-msgid "Sloppy photo albums"
-msgstr "Schräge Fotoalben"
+#: ../../include/conversation.php:946
+msgid "View Photos"
+msgstr "Fotos ansehen"
-#: ../../view/theme/redbasic/php/config.php:133
-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?"
+#: ../../include/conversation.php:947
+msgid "Matrix Activity"
+msgstr "Matrix-Aktivität"
+
+#: ../../include/conversation.php:948 ../../include/widgets.php:135
+#: ../../include/widgets.php:175 ../../include/Contact.php:107
+#: ../../include/identity.php:840 ../../mod/directory.php:224
+#: ../../mod/suggest.php:51 ../../mod/match.php:62
+msgid "Connect"
+msgstr "Verbinden"
+
+#: ../../include/conversation.php:949
+msgid "Edit Contact"
+msgstr "Kontakt bearbeiten"
+
+#: ../../include/conversation.php:950
+msgid "Send PM"
+msgstr "Sende PN"
+
+#: ../../include/conversation.php:951 ../../include/apps.php:143
+msgid "Poke"
+msgstr "Anstupsen"
+
+#: ../../include/conversation.php:1003 ../../include/RedDAV/RedBrowser.php:163
+#: ../../include/apps.php:331 ../../include/apps.php:382
+#: ../../mod/photos.php:713 ../../mod/photos.php:1131
+#: ../../mod/connedit.php:512
+msgid "Unknown"
+msgstr "Unbekannt"
-#: ../../boot.php:1291
+#: ../../include/conversation.php:1024
#, php-format
-msgid "Update %s failed. See error logs."
-msgstr "Aktualisierung %s fehlgeschlagen. Details in den Fehlerprotokollen."
+msgid "%s likes this."
+msgstr "%s gefällt das."
-#: ../../boot.php:1294
+#: ../../include/conversation.php:1024
#, php-format
-msgid "Update Error at %s"
-msgstr "Aktualisierungsfehler auf %s"
+msgid "%s doesn't like this."
+msgstr "%s gefällt das nicht."
-#: ../../boot.php:1468
-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."
+#: ../../include/conversation.php:1028
+#, 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."
-#: ../../boot.php:1469 ../../include/nav.php:146 ../../mod/register.php:221
-msgid "Register"
-msgstr "Registrieren"
+#: ../../include/conversation.php:1030
+#, 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."
-#: ../../boot.php:1492 ../../include/nav.php:81 ../../include/nav.php:108
-msgid "Logout"
-msgstr "Abmelden"
+#: ../../include/conversation.php:1036
+msgid "and"
+msgstr "und"
-#: ../../boot.php:1493 ../../include/nav.php:106 ../../include/apps.php:126
-msgid "Login"
-msgstr "Anmelden"
+#: ../../include/conversation.php:1039
+#, php-format
+msgid ", and %d other people"
+msgid_plural ", and %d other people"
+msgstr[0] ""
+msgstr[1] ", und %d andere"
-#: ../../boot.php:1495 ../../include/contact_selectors.php:79
-#: ../../mod/admin.php:754 ../../mod/admin.php:763
-msgid "Email"
-msgstr "E-Mail"
+#: ../../include/conversation.php:1040
+#, php-format
+msgid "%s like this."
+msgstr "%s gefällt das."
-#: ../../boot.php:1496
-msgid "Password"
-msgstr "Kennwort"
+#: ../../include/conversation.php:1040
+#, php-format
+msgid "%s don't like this."
+msgstr "%s gefällt das nicht."
-#: ../../boot.php:1497
-msgid "Remember me"
-msgstr "Angaben speichern"
+#: ../../include/conversation.php:1097
+msgid "Visible to <strong>everybody</strong>"
+msgstr "Sichtbar für <strong>jeden</strong>"
-#: ../../boot.php:1502
-msgid "Forgot your password?"
-msgstr "Passwort vergessen?"
+#: ../../include/conversation.php:1098 ../../mod/mail.php:170
+#: ../../mod/mail.php:282
+msgid "Please enter a link URL:"
+msgstr "Gib eine URL ein:"
-#: ../../boot.php:1503 ../../mod/lostpass.php:85
-msgid "Password Reset"
-msgstr "Zurücksetzen des Kennworts"
+#: ../../include/conversation.php:1099
+msgid "Please enter a video link/URL:"
+msgstr "Gib einen Video-Link/URL ein:"
-#: ../../boot.php:1567
-msgid "permission denied"
-msgstr "Zugriff verweigert"
+#: ../../include/conversation.php:1100
+msgid "Please enter an audio link/URL:"
+msgstr "Gib einen Audio-Link/URL ein:"
-#: ../../boot.php:1568
-msgid "Got Zot?"
-msgstr "Haste schon Zot?"
+#: ../../include/conversation.php:1101
+msgid "Tag term:"
+msgstr "Schlagwort:"
-#: ../../boot.php:1998
-msgid "toggle mobile"
-msgstr "auf/von mobile Ansicht wechseln"
+#: ../../include/conversation.php:1102 ../../mod/filer.php:49
+msgid "Save to Folder:"
+msgstr "Speichern in Ordner:"
-#: ../../include/auth.php:90
-msgid "Logged out."
-msgstr "Ausgeloggt."
+#: ../../include/conversation.php:1103
+msgid "Where are you right now?"
+msgstr "Wo bist Du jetzt grade?"
-#: ../../include/auth.php:236
-msgid "Failed authentication"
-msgstr "Authentifizierung fehlgeschlagen"
+#: ../../include/conversation.php:1104 ../../mod/editpost.php:52
+#: ../../mod/mail.php:171 ../../mod/mail.php:283
+msgid "Expires YYYY-MM-DD HH:MM"
+msgstr "Verfällt YYYY-MM-DD HH;MM"
-#: ../../include/auth.php:251 ../../mod/openid.php:188
-msgid "Login failed."
-msgstr "Login fehlgeschlagen."
+#: ../../include/conversation.php:1114 ../../include/page_widgets.php:40
+#: ../../include/ItemObject.php:608 ../../mod/photos.php:997
+#: ../../mod/webpages.php:166 ../../mod/editblock.php:173
+#: ../../mod/editlayout.php:168 ../../mod/editpost.php:140
+#: ../../mod/editwebpage.php:205
+msgid "Preview"
+msgstr "Vorschau"
-#: ../../include/comanche.php:35
-msgid "Default"
-msgstr "Standard"
+#: ../../include/conversation.php:1128 ../../mod/photos.php:976
+#: ../../mod/editblock.php:198 ../../mod/editlayout.php:193
+#: ../../mod/editwebpage.php:230 ../../mod/layouts.php:168
+msgid "Share"
+msgstr "Teilen"
-#: ../../include/photos.php:15 ../../include/items.php:3704
-#: ../../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:116
-#: ../../mod/settings.php:493 ../../mod/filestorage.php:10
-#: ../../mod/filestorage.php:59 ../../mod/filestorage.php:75
-#: ../../mod/filestorage.php:98 ../../mod/webpages.php:40
-#: ../../mod/authtest.php:13 ../../mod/new_channel.php:66
-#: ../../mod/new_channel.php:97 ../../mod/connections.php:169
-#: ../../mod/profile.php:64 ../../mod/profile.php:72 ../../mod/photos.php:68
-#: ../../mod/photos.php:526 ../../mod/mitem.php:73 ../../mod/regmod.php:18
-#: ../../mod/mood.php:112 ../../mod/pdledit.php:21
-#: ../../mod/profile_photo.php:263 ../../mod/profile_photo.php:276
-#: ../../mod/menu.php:44 ../../mod/block.php:22 ../../mod/block.php:72
-#: ../../mod/suggest.php:26 ../../mod/connedit.php:254
-#: ../../mod/message.php:16 ../../mod/setup.php:203 ../../mod/invite.php:13
-#: ../../mod/invite.php:104 ../../mod/thing.php:249 ../../mod/thing.php:266
-#: ../../mod/thing.php:301 ../../mod/viewconnections.php:22
-#: ../../mod/viewconnections.php:27 ../../mod/register.php:71
-#: ../../mod/network.php:12 ../../mod/delegate.php:6 ../../mod/fsuggest.php:78
-#: ../../mod/manage.php:6 ../../mod/editpost.php:13
-#: ../../mod/editwebpage.php:44 ../../mod/editwebpage.php:83
-#: ../../mod/poke.php:128 ../../mod/blocks.php:29 ../../mod/blocks.php:44
-#: ../../mod/group.php:9 ../../mod/item.php:178 ../../mod/item.php:186
-#: ../../mod/item.php:916 ../../mod/appman.php:66 ../../mod/sources.php:66
-#: ../../mod/page.php:30 ../../mod/page.php:80 ../../mod/mail.php:108
+#: ../../include/conversation.php:1130 ../../mod/editwebpage.php:170
+msgid "Page link title"
+msgstr "Seitentitel-Link"
+
+#: ../../include/conversation.php:1133
+msgid "Post as"
+msgstr "Posten als"
+
+#: ../../include/conversation.php:1134 ../../mod/editblock.php:144
+#: ../../mod/editlayout.php:140 ../../mod/editpost.php:113
+#: ../../mod/editwebpage.php:175 ../../mod/mail.php:231 ../../mod/mail.php:345
+msgid "Upload photo"
+msgstr "Foto hochladen"
+
+#: ../../include/conversation.php:1135
+msgid "upload photo"
+msgstr "Foto hochladen"
+
+#: ../../include/conversation.php:1136 ../../mod/editblock.php:145
+#: ../../mod/editlayout.php:141 ../../mod/editpost.php:114
+#: ../../mod/editwebpage.php:176 ../../mod/mail.php:232 ../../mod/mail.php:346
+msgid "Attach file"
+msgstr "Datei anhängen"
+
+#: ../../include/conversation.php:1137
+msgid "attach file"
+msgstr "Datei anfügen"
+
+#: ../../include/conversation.php:1138 ../../mod/editblock.php:146
+#: ../../mod/editlayout.php:142 ../../mod/editpost.php:115
+#: ../../mod/editwebpage.php:177 ../../mod/mail.php:233 ../../mod/mail.php:347
+msgid "Insert web link"
+msgstr "Link einfügen"
+
+#: ../../include/conversation.php:1139
+msgid "web link"
+msgstr "Web-Link"
+
+#: ../../include/conversation.php:1140
+msgid "Insert video link"
+msgstr "Video-Link einfügen"
+
+#: ../../include/conversation.php:1141
+msgid "video link"
+msgstr "Video-Link"
+
+#: ../../include/conversation.php:1142
+msgid "Insert audio link"
+msgstr "Audio-Link einfügen"
+
+#: ../../include/conversation.php:1143
+msgid "audio link"
+msgstr "Audio-Link"
+
+#: ../../include/conversation.php:1144 ../../mod/editblock.php:150
+#: ../../mod/editlayout.php:146 ../../mod/editpost.php:119
+#: ../../mod/editwebpage.php:181
+msgid "Set your location"
+msgstr "Standort"
+
+#: ../../include/conversation.php:1145
+msgid "set location"
+msgstr "Standort"
+
+#: ../../include/conversation.php:1146 ../../mod/editblock.php:151
+#: ../../mod/editlayout.php:147 ../../mod/editpost.php:120
+#: ../../mod/editwebpage.php:182
+msgid "Clear browser location"
+msgstr "Browser-Standort löschen"
+
+#: ../../include/conversation.php:1147
+msgid "clear location"
+msgstr "Standort löschen"
+
+#: ../../include/conversation.php:1149 ../../mod/editblock.php:164
+#: ../../mod/editlayout.php:159 ../../mod/editpost.php:132
+#: ../../mod/editwebpage.php:198
+msgid "Set title"
+msgstr "Titel"
+
+#: ../../include/conversation.php:1152 ../../mod/events.php:563
+#: ../../mod/editblock.php:167 ../../mod/editlayout.php:162
+#: ../../mod/editpost.php:134 ../../mod/editwebpage.php:200
+msgid "Categories (comma-separated list)"
+msgstr "Kategorien (Kommagetrennte Liste)"
+
+#: ../../include/conversation.php:1154 ../../mod/editblock.php:153
+#: ../../mod/editlayout.php:149 ../../mod/editpost.php:122
+#: ../../mod/editwebpage.php:184
+msgid "Permission settings"
+msgstr "Berechtigungs-Einstellungen"
+
+#: ../../include/conversation.php:1155
+msgid "permissions"
+msgstr "Berechtigungen"
+
+#: ../../include/conversation.php:1162 ../../mod/editblock.php:161
+#: ../../mod/editlayout.php:156 ../../mod/editpost.php:129
+#: ../../mod/editwebpage.php:193
+msgid "Public post"
+msgstr "Öffentlicher Beitrag"
+
+#: ../../include/conversation.php:1164 ../../mod/editblock.php:168
+#: ../../mod/editlayout.php:163 ../../mod/editpost.php:135
+#: ../../mod/editwebpage.php:201
+msgid "Example: bob@example.com, mary@example.com"
+msgstr "Beispiel: bob@example.com, mary@example.com"
+
+#: ../../include/conversation.php:1177 ../../mod/editblock.php:178
+#: ../../mod/editlayout.php:173 ../../mod/editpost.php:146
+#: ../../mod/editwebpage.php:210 ../../mod/mail.php:238 ../../mod/mail.php:352
+msgid "Set expiration date"
+msgstr "Verfallsdatum"
+
+#: ../../include/conversation.php:1179 ../../include/ItemObject.php:611
+#: ../../mod/editpost.php:148 ../../mod/mail.php:240 ../../mod/mail.php:354
+msgid "Encrypt text"
+msgstr "Text verschlüsseln"
+
+#: ../../include/conversation.php:1181 ../../mod/events.php:569
+#: ../../mod/editpost.php:150
+msgid "OK"
+msgstr "Ok"
+
+#: ../../include/conversation.php:1182 ../../mod/events.php:568
+#: ../../mod/editpost.php:151 ../../mod/settings.php:550
+#: ../../mod/settings.php:576 ../../mod/fbrowser.php:82
+#: ../../mod/fbrowser.php:117 ../../mod/tagrm.php:11 ../../mod/tagrm.php:134
+msgid "Cancel"
+msgstr "Abbrechen"
+
+#: ../../include/conversation.php:1426
+msgid "Discover"
+msgstr "Entdecken"
+
+#: ../../include/conversation.php:1429
+msgid "Imported public streams"
+msgstr "Importierte öffentliche Beiträge"
+
+#: ../../include/conversation.php:1434
+msgid "Commented Order"
+msgstr "Neueste Kommentare"
+
+#: ../../include/conversation.php:1437
+msgid "Sort by Comment Date"
+msgstr "Nach Kommentardatum sortiert"
+
+#: ../../include/conversation.php:1441
+msgid "Posted Order"
+msgstr "Neueste Beiträge"
+
+#: ../../include/conversation.php:1444
+msgid "Sort by Post Date"
+msgstr "Nach Beitragsdatum sortiert"
+
+#: ../../include/conversation.php:1449 ../../include/widgets.php:89
+msgid "Personal"
+msgstr "Persönlich"
+
+#: ../../include/conversation.php:1452
+msgid "Posts that mention or involve you"
+msgstr "Beiträge mit Beteiligung Deinerseits"
+
+#: ../../include/conversation.php:1458 ../../mod/connections.php:211
+#: ../../mod/connections.php:224 ../../mod/menu.php:80
+msgid "New"
+msgstr "Neu"
+
+#: ../../include/conversation.php:1461
+msgid "Activity Stream - by date"
+msgstr "Activity Stream – nach Datum sortiert"
+
+#: ../../include/conversation.php:1467
+msgid "Starred"
+msgstr "Markiert"
+
+#: ../../include/conversation.php:1470
+msgid "Favourite Posts"
+msgstr "Markierte Beiträge"
+
+#: ../../include/conversation.php:1477
+msgid "Spam"
+msgstr "Spam"
+
+#: ../../include/conversation.php:1480
+msgid "Posts flagged as SPAM"
+msgstr "Nachrichten, die als SPAM markiert wurden"
+
+#: ../../include/conversation.php:1520 ../../mod/admin.php:865
+msgid "Channel"
+msgstr "Kanal"
+
+#: ../../include/conversation.php:1523
+msgid "Status Messages and Posts"
+msgstr "Statusnachrichten und Beiträge"
+
+#: ../../include/conversation.php:1532
+msgid "About"
+msgstr "Ãœber"
+
+#: ../../include/conversation.php:1535
+msgid "Profile Details"
+msgstr "Profil-Details"
+
+#: ../../include/conversation.php:1541 ../../include/nav.php:105
+#: ../../include/apps.php:137 ../../mod/fbrowser.php:25
+msgid "Photos"
+msgstr "Fotos"
+
+#: ../../include/conversation.php:1544 ../../include/photos.php:341
+msgid "Photo Albums"
+msgstr "Fotoalben"
+
+#: ../../include/conversation.php:1550 ../../include/RedDAV/RedBrowser.php:241
+#: ../../include/nav.php:106 ../../include/apps.php:133
+#: ../../mod/fbrowser.php:114
+msgid "Files"
+msgstr "Dateien"
+
+#: ../../include/conversation.php:1553
+msgid "Files and Storage"
+msgstr "Dateien und Speicher"
+
+#: ../../include/conversation.php:1563 ../../include/conversation.php:1566
+msgid "Chatrooms"
+msgstr "Chaträume"
+
+#: ../../include/conversation.php:1576 ../../include/nav.php:117
+#: ../../include/apps.php:127
+msgid "Bookmarks"
+msgstr "Lesezeichen"
+
+#: ../../include/conversation.php:1579
+msgid "Saved Bookmarks"
+msgstr "Gespeicherte Lesezeichen"
+
+#: ../../include/conversation.php:1587 ../../include/nav.php:121
+#: ../../include/apps.php:134 ../../mod/webpages.php:160
+msgid "Webpages"
+msgstr "Webseiten"
+
+#: ../../include/conversation.php:1590
+msgid "Manage Webpages"
+msgstr "Webseiten verwalten"
+
+#: ../../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/dir_fns.php:56
+msgid "Sort Options"
+msgstr "Sortieroptionen"
+
+#: ../../include/dir_fns.php:57
+msgid "Alphabetic"
+msgstr "alphabetisch"
+
+#: ../../include/dir_fns.php:58
+msgid "Reverse Alphabetic"
+msgstr "Entgegengesetzt alphabetisch"
+
+#: ../../include/dir_fns.php:59
+msgid "Newest to Oldest"
+msgstr "Neueste zuerst"
+
+#: ../../include/dir_fns.php:71
+msgid "Enable Safe Search"
+msgstr "Sichere Suche einschalten"
+
+#: ../../include/dir_fns.php:73
+msgid "Disable Safe Search"
+msgstr "Sichere Suche ausschalten"
+
+#: ../../include/dir_fns.php:75
+msgid "Safe Mode"
+msgstr "Sicherer Modus"
+
+#: ../../include/page_widgets.php:6
+msgid "New Page"
+msgstr "Neue Seite"
+
+#: ../../include/page_widgets.php:8 ../../include/page_widgets.php:36
+#: ../../include/RedDAV/RedBrowser.php:250 ../../include/menu.php:42
+#: ../../include/apps.php:249 ../../include/ItemObject.php:100
+#: ../../mod/blocks.php:132 ../../mod/connections.php:381
+#: ../../mod/connections.php:394 ../../mod/connections.php:413
+#: ../../mod/thing.php:233 ../../mod/webpages.php:162
+#: ../../mod/editblock.php:143 ../../mod/editlayout.php:139
+#: ../../mod/editpost.php:112 ../../mod/settings.php:611
+#: ../../mod/editwebpage.php:174 ../../mod/layouts.php:167
+#: ../../mod/menu.php:78
+msgid "Edit"
+msgstr "Bearbeiten"
+
+#: ../../include/page_widgets.php:39 ../../mod/blocks.php:135
+#: ../../mod/webpages.php:165 ../../mod/layouts.php:171
+msgid "View"
+msgstr "Ansicht"
+
+#: ../../include/page_widgets.php:41 ../../mod/webpages.php:167
+msgid "Actions"
+msgstr "Aktionen"
+
+#: ../../include/page_widgets.php:42 ../../mod/webpages.php:168
+msgid "Page Link"
+msgstr "Seiten-Link"
+
+#: ../../include/page_widgets.php:43 ../../mod/webpages.php:169
+msgid "Title"
+msgstr "Titel"
+
+#: ../../include/page_widgets.php:44 ../../mod/webpages.php:170
+msgid "Created"
+msgstr "Erstellt"
+
+#: ../../include/page_widgets.php:45 ../../mod/webpages.php:171
+msgid "Edited"
+msgstr "Geändert"
+
+#: ../../include/chat.php:10
+msgid "Missing room name"
+msgstr "Der Chatraum hat keinen Namen"
+
+#: ../../include/chat.php:19
+msgid "Duplicate room name"
+msgstr "Name des Chatraums bereits vergeben"
+
+#: ../../include/chat.php:68 ../../include/chat.php:76
+msgid "Invalid room specifier."
+msgstr "Ungültiger Raumbezeichner."
+
+#: ../../include/chat.php:105
+msgid "Room not found."
+msgstr "Chatraum konnte nicht gefunden werden."
+
+#: ../../include/chat.php:116 ../../include/items.php:4013
+#: ../../include/attach.php:116 ../../include/attach.php:163
+#: ../../include/attach.php:226 ../../include/attach.php:240
+#: ../../include/attach.php:280 ../../include/attach.php:294
+#: ../../include/attach.php:318 ../../include/attach.php:511
+#: ../../include/attach.php:584 ../../include/photos.php:15
+#: ../../mod/mood.php:112 ../../mod/mitem.php:106
+#: ../../mod/achievements.php:30 ../../mod/profiles.php:179
+#: ../../mod/profiles.php:550 ../../mod/setup.php:207 ../../mod/poke.php:128
+#: ../../mod/api.php:26 ../../mod/api.php:31 ../../mod/authtest.php:13
+#: ../../mod/profile.php:64 ../../mod/profile.php:72 ../../mod/block.php:22
+#: ../../mod/block.php:72 ../../mod/sources.php:66 ../../mod/blocks.php:67
+#: ../../mod/blocks.php:75 ../../mod/register.php:72 ../../mod/events.php:195
#: ../../mod/channel.php:89 ../../mod/channel.php:193
-#: ../../mod/channel.php:236 ../../mod/profiles.php:179
-#: ../../mod/profiles.php:524 ../../mod/bookmarks.php:46
-#: ../../mod/common.php:35 ../../mod/like.php:154 ../../mod/api.php:26
-#: ../../mod/api.php:31 ../../mod/chat.php:90 ../../mod/chat.php:95
-#: ../../mod/events.php:160 ../../mod/notifications.php:66
-#: ../../mod/layouts.php:27 ../../mod/layouts.php:39
-#: ../../mod/editblock.php:34 ../../mod/viewsrc.php:12
-#: ../../mod/achievements.php:27 ../../mod/editlayout.php:48
-#: ../../index.php:186 ../../index.php:361
+#: ../../mod/channel.php:236 ../../mod/chat.php:90 ../../mod/chat.php:95
+#: ../../mod/regmod.php:17 ../../mod/network.php:12 ../../mod/common.php:35
+#: ../../mod/photos.php:68 ../../mod/connections.php:169
+#: ../../mod/manage.php:6 ../../mod/connedit.php:266 ../../mod/thing.php:247
+#: ../../mod/thing.php:264 ../../mod/thing.php:299 ../../mod/webpages.php:67
+#: ../../mod/bookmarks.php:46 ../../mod/editblock.php:65
+#: ../../mod/pdledit.php:21 ../../mod/editlayout.php:64
+#: ../../mod/editlayout.php:89 ../../mod/editpost.php:13
+#: ../../mod/settings.php:526 ../../mod/editwebpage.php:64
+#: ../../mod/editwebpage.php:86 ../../mod/editwebpage.php:118
+#: ../../mod/profile_photo.php:263 ../../mod/profile_photo.php:276
+#: ../../mod/fsuggest.php:78 ../../mod/filestorage.php:18
+#: ../../mod/filestorage.php:67 ../../mod/filestorage.php:82
+#: ../../mod/filestorage.php:109 ../../mod/delegate.php:6
+#: ../../mod/group.php:9 ../../mod/suggest.php:26 ../../mod/item.php:191
+#: ../../mod/item.php:199 ../../mod/item.php:971 ../../mod/like.php:154
+#: ../../mod/invite.php:13 ../../mod/invite.php:104 ../../mod/locs.php:71
+#: ../../mod/layouts.php:67 ../../mod/layouts.php:74 ../../mod/layouts.php:85
+#: ../../mod/viewconnections.php:22 ../../mod/viewconnections.php:27
+#: ../../mod/viewsrc.php:14 ../../mod/mail.php:111 ../../mod/menu.php:61
+#: ../../mod/message.php:16 ../../mod/new_channel.php:68
+#: ../../mod/new_channel.php:99 ../../mod/notifications.php:66
+#: ../../mod/page.php:28 ../../mod/page.php:78 ../../mod/appman.php:66
+#: ../../mod/service_limits.php:7 ../../index.php:190 ../../index.php:390
msgid "Permission denied."
msgstr "Zugang verweigert"
-#: ../../include/photos.php:51 ../../include/photo/photo_driver.php:643
-#: ../../mod/photos.php:91 ../../mod/photos.php:653 ../../mod/photos.php:675
-#: ../../mod/profile_photo.php:142 ../../mod/profile_photo.php:301
-#: ../../mod/profile_photo.php:421
-msgid "Profile Photos"
-msgstr "Profilfotos"
+#: ../../include/chat.php:126
+msgid "Room is full"
+msgstr "Der Raum ist voll"
+
+#: ../../include/oembed.php:171
+msgid "Embedded content"
+msgstr "Eingebetteter Inhalt"
+
+#: ../../include/oembed.php:180
+msgid "Embedding disabled"
+msgstr "Einbetten ausgeschaltet"
+
+#: ../../include/widgets.php:29 ../../include/contact_widgets.php:92
+#: ../../include/taxonomy.php:230
+msgid "Categories"
+msgstr "Kategorien"
+
+#: ../../include/widgets.php:86 ../../include/nav.php:171
+#: ../../mod/apps.php:33
+msgid "Apps"
+msgstr "Apps"
+
+#: ../../include/widgets.php:87
+msgid "System"
+msgstr "System"
+
+#: ../../include/widgets.php:90
+msgid "Create Personal App"
+msgstr "Persönliche App erstellen"
+
+#: ../../include/widgets.php:91
+msgid "Edit Personal App"
+msgstr "Persönliche App bearbeiten"
+
+#: ../../include/widgets.php:137 ../../mod/suggest.php:53
+msgid "Ignore/Hide"
+msgstr "Ignorieren/Verstecken"
+
+#: ../../include/widgets.php:143 ../../mod/connections.php:267
+msgid "Suggestions"
+msgstr "Vorschläge"
+
+#: ../../include/widgets.php:144
+msgid "See more..."
+msgstr "Mehr anzeigen …"
-#: ../../include/photos.php:89
+#: ../../include/widgets.php:166
#, php-format
-msgid "Image exceeds website size limit of %lu bytes"
-msgstr "Bild überschreitet das Limit der Webseite von %lu bytes"
+msgid "You have %1$.0f of %2$.0f allowed connections."
+msgstr "Du bist %1$.0f von maximal %2$.0f erlaubten Verbindungen eingegangen."
-#: ../../include/photos.php:96
-msgid "Image file is empty."
-msgstr "Bilddatei ist leer."
+#: ../../include/widgets.php:172
+msgid "Add New Connection"
+msgstr "Neue Verbindung hinzufügen"
-#: ../../include/photos.php:123 ../../mod/profile_photo.php:216
-msgid "Unable to process image"
-msgstr "Kann Bild nicht verarbeiten"
+#: ../../include/widgets.php:173
+msgid "Enter the channel address"
+msgstr "Adresse des Kanals eingeben"
-#: ../../include/photos.php:186
-msgid "Photo storage failed."
-msgstr "Foto speichern schlug fehl"
+#: ../../include/widgets.php:174
+msgid "Example: bob@example.com, http://example.com/barbara"
+msgstr "Beispiel: bob@beispiel.com, http://beispiel.com/barbara"
-#: ../../include/photos.php:313 ../../include/conversation.php:1515
-msgid "Photo Albums"
-msgstr "Fotoalben"
+#: ../../include/widgets.php:191
+msgid "Notes"
+msgstr "Notizen"
-#: ../../include/photos.php:317 ../../mod/photos.php:691
-#: ../../mod/photos.php:1193
-msgid "Upload New Photos"
-msgstr "Lade neue Fotos hoch"
+#: ../../include/widgets.php:193 ../../include/text.php:827
+#: ../../include/text.php:839 ../../mod/rbmark.php:28 ../../mod/rbmark.php:98
+#: ../../mod/filer.php:50 ../../mod/admin.php:1339 ../../mod/admin.php:1360
+msgid "Save"
+msgstr "Speichern"
+
+#: ../../include/widgets.php:263
+msgid "Remove term"
+msgstr "Eintrag löschen"
+
+#: ../../include/widgets.php:272 ../../include/features.php:58
+msgid "Saved Searches"
+msgstr "Gespeicherte Suchanfragen"
+
+#: ../../include/widgets.php:273 ../../include/group.php:303
+msgid "add"
+msgstr "hinzufügen"
+
+#: ../../include/widgets.php:303 ../../include/contact_widgets.php:57
+#: ../../include/features.php:72
+msgid "Saved Folders"
+msgstr "Gespeicherte Ordner"
+
+#: ../../include/widgets.php:306 ../../include/contact_widgets.php:60
+#: ../../include/contact_widgets.php:95
+msgid "Everything"
+msgstr "Alles"
+
+#: ../../include/widgets.php:352
+msgid "Archives"
+msgstr "Archive"
+
+#: ../../include/widgets.php:428
+msgid "Refresh"
+msgstr "Aktualisieren"
+
+#: ../../include/widgets.php:429 ../../mod/connedit.php:506
+msgid "Me"
+msgstr "Ich"
+
+#: ../../include/widgets.php:430 ../../mod/connedit.php:508
+msgid "Best Friends"
+msgstr "Beste Freunde"
+
+#: ../../include/widgets.php:431 ../../include/identity.php:387
+#: ../../include/identity.php:388 ../../include/identity.php:395
+#: ../../include/profile_selectors.php:80 ../../mod/connedit.php:509
+#: ../../mod/settings.php:304 ../../mod/settings.php:308
+#: ../../mod/settings.php:309 ../../mod/settings.php:312
+#: ../../mod/settings.php:323
+msgid "Friends"
+msgstr "Freunde"
+
+#: ../../include/widgets.php:432
+msgid "Co-workers"
+msgstr "Kollegen"
+
+#: ../../include/widgets.php:433 ../../mod/connedit.php:510
+msgid "Former Friends"
+msgstr "ehem. Freunde"
+
+#: ../../include/widgets.php:434 ../../mod/connedit.php:511
+msgid "Acquaintances"
+msgstr "Bekannte"
+
+#: ../../include/widgets.php:435
+msgid "Everybody"
+msgstr "Jeder"
+
+#: ../../include/widgets.php:469
+msgid "Account settings"
+msgstr "Konto-Einstellungen"
+
+#: ../../include/widgets.php:475
+msgid "Channel settings"
+msgstr "Kanal-Einstellungen"
+
+#: ../../include/widgets.php:481
+msgid "Additional features"
+msgstr "Zusätzliche Funktionen"
+
+#: ../../include/widgets.php:487
+msgid "Feature settings"
+msgstr "Funktions-Einstellungen"
+
+#: ../../include/widgets.php:493
+msgid "Display settings"
+msgstr "Anzeige-Einstellungen"
+
+#: ../../include/widgets.php:499
+msgid "Connected apps"
+msgstr "Verbundene Apps"
+
+#: ../../include/widgets.php:505
+msgid "Export channel"
+msgstr "Kanal exportieren"
+
+#: ../../include/widgets.php:511
+msgid "Export content"
+msgstr "Kanal-Inhalte exportieren"
+
+#: ../../include/widgets.php:520 ../../mod/connedit.php:538
+msgid "Connection Default Permissions"
+msgstr "Standardzugriffsrechte für neue Verbindungen:"
+
+#: ../../include/widgets.php:528
+msgid "Premium Channel Settings"
+msgstr "Premium-Kanal-Einstellungen"
+
+#: ../../include/widgets.php:537 ../../include/features.php:49
+#: ../../mod/sources.php:88
+msgid "Channel Sources"
+msgstr "Kanal-Quellen"
+
+#: ../../include/widgets.php:548 ../../include/nav.php:218
+#: ../../include/apps.php:132 ../../mod/admin.php:951 ../../mod/admin.php:1156
+msgid "Settings"
+msgstr "Einstellungen"
+
+#: ../../include/widgets.php:562 ../../mod/mail.php:124
+#: ../../mod/message.php:31
+msgid "Messages"
+msgstr "Nachrichten"
+
+#: ../../include/widgets.php:567
+msgid "Check Mail"
+msgstr "E-Mails abrufen"
+
+#: ../../include/widgets.php:572 ../../include/nav.php:209
+msgid "New Message"
+msgstr "Neue Nachricht"
+
+#: ../../include/widgets.php:648
+msgid "Chat Rooms"
+msgstr "Chaträume"
+
+#: ../../include/widgets.php:666
+msgid "Bookmarked Chatrooms"
+msgstr "Gespeicherte Chatrooms"
+
+#: ../../include/widgets.php:684
+msgid "Suggested Chatrooms"
+msgstr "Chatraum-Vorschläge"
+
+#: ../../include/zot.php:664
+msgid "Invalid data packet"
+msgstr "Ungültiges Datenpaket"
+
+#: ../../include/zot.php:680
+msgid "Unable to verify channel signature"
+msgstr "Konnte die Signatur des Kanals nicht verifizieren"
+
+#: ../../include/zot.php:1799
+#, php-format
+msgid "Unable to verify site signature for %s"
+msgstr "Kann die Signatur der Seite von %s nicht verifizieren"
+
+#: ../../include/activities.php:39
+msgid " and "
+msgstr "und"
+
+#: ../../include/activities.php:47
+msgid "public profile"
+msgstr "öffentliches Profil"
+
+#: ../../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:53
+#, php-format
+msgid "Visit %1$s's %2$s"
+msgstr "Besuche %1$s's %2$s"
+
+#: ../../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/bb2diaspora.php:384
+msgid "Attachments:"
+msgstr "Anhänge:"
+
+#: ../../include/bb2diaspora.php:463 ../../include/event.php:11
+msgid "l F d, Y \\@ g:i A"
+msgstr "l, d. F Y\\\\, H:i"
+
+#: ../../include/bb2diaspora.php:465
+msgid "Redmatrix event notification:"
+msgstr "RedMatrix Termin-Benachrichtigung:"
+
+#: ../../include/bb2diaspora.php:469 ../../include/event.php:20
+msgid "Starts:"
+msgstr "Beginnt:"
+
+#: ../../include/bb2diaspora.php:477 ../../include/event.php:30
+msgid "Finishes:"
+msgstr "Endet:"
+
+#: ../../include/bb2diaspora.php:485 ../../include/event.php:40
+#: ../../include/identity.php:891 ../../mod/directory.php:159
+#: ../../mod/events.php:579
+msgid "Location:"
+msgstr "Ort:"
+
+#: ../../include/RedDAV/RedBrowser.php:106
+#: ../../include/RedDAV/RedBrowser.php:249
+msgid "parent"
+msgstr "Ãœbergeordnetes Verzeichnis"
+
+#: ../../include/RedDAV/RedBrowser.php:130
+msgid "Collection"
+msgstr "Ordner"
+
+#: ../../include/RedDAV/RedBrowser.php:133
+msgid "Principal"
+msgstr "Prinzipal"
+
+#: ../../include/RedDAV/RedBrowser.php:136
+msgid "Addressbook"
+msgstr "Adressbuch"
+
+#: ../../include/RedDAV/RedBrowser.php:139
+msgid "Calendar"
+msgstr "Kalender"
+
+#: ../../include/RedDAV/RedBrowser.php:142
+msgid "Schedule Inbox"
+msgstr "Posteingang für überwachte Kalender"
+
+#: ../../include/RedDAV/RedBrowser.php:145
+msgid "Schedule Outbox"
+msgstr "Postausgang für überwachte Kalender"
+
+#: ../../include/RedDAV/RedBrowser.php:223
+#, php-format
+msgid "%1$s used"
+msgstr "%1$s verwendet"
+
+#: ../../include/RedDAV/RedBrowser.php:228
+#, php-format
+msgid "%1$s used of %2$s (%3$s&#37;)"
+msgstr "%1$s von %2$s verwendet (%3$s&#37;)"
+
+#: ../../include/RedDAV/RedBrowser.php:245 ../../mod/settings.php:551
+#: ../../mod/settings.php:577 ../../mod/admin.php:866
+msgid "Name"
+msgstr "Name"
+
+#: ../../include/RedDAV/RedBrowser.php:246
+msgid "Type"
+msgstr "Typ"
+
+#: ../../include/RedDAV/RedBrowser.php:247
+msgid "Size"
+msgstr "Größe"
+
+#: ../../include/RedDAV/RedBrowser.php:248
+msgid "Last Modified"
+msgstr "Zuletzt geändert"
+
+#: ../../include/RedDAV/RedBrowser.php:252
+msgid "Total"
+msgstr "Summe"
+
+#: ../../include/RedDAV/RedBrowser.php:305
+msgid "Create new folder"
+msgstr "Neuen Ordner anlegen"
+
+#: ../../include/RedDAV/RedBrowser.php:306 ../../mod/mitem.php:169
+#: ../../mod/menu.php:100 ../../mod/new_channel.php:122
+msgid "Create"
+msgstr "Erstelle"
+
+#: ../../include/RedDAV/RedBrowser.php:307
+msgid "Upload file"
+msgstr "Datei hochladen"
+
+#: ../../include/RedDAV/RedBrowser.php:308 ../../mod/photos.php:738
+#: ../../mod/photos.php:1245 ../../mod/profile_photo.php:361
+msgid "Upload"
+msgstr "Hochladen"
+
+#: ../../include/bookmarks.php:35
+#, php-format
+msgid "%1$s's bookmarks"
+msgstr "%1$ss Lesezeichen"
+
+#: ../../include/follow.php:28
+msgid "Channel is blocked on this site."
+msgstr "Der Kanal ist auf dieser Seite blockiert "
+
+#: ../../include/follow.php:33
+msgid "Channel location missing."
+msgstr "Adresse des Kanals fehlt."
+
+#: ../../include/follow.php:82
+msgid "Response from remote channel was incomplete."
+msgstr "Antwort des entfernten Kanals war unvollständig."
+
+#: ../../include/follow.php:99
+msgid "Channel was deleted and no longer exists."
+msgstr "Kanal wurde gelöscht und existiert nicht mehr."
+
+#: ../../include/follow.php:135 ../../include/follow.php:202
+msgid "Protocol disabled."
+msgstr "Protokoll deaktiviert."
+
+#: ../../include/follow.php:176
+msgid "Channel discovery failed."
+msgstr "Kanalsuche fehlgeschlagen"
+
+#: ../../include/follow.php:192
+msgid "local account not found."
+msgstr "Lokales Konto nicht gefunden."
+
+#: ../../include/follow.php:220
+msgid "Cannot connect to yourself."
+msgstr "Du kannst Dich nicht mit Dir selbst verbinden."
+
+#: ../../include/comanche.php:35 ../../mod/admin.php:353
+#: ../../view/theme/apw/php/config.php:185
+msgid "Default"
+msgstr "Standard"
+
+#: ../../include/contact_selectors.php:56
+msgid "Frequently"
+msgstr "Häufig"
+
+#: ../../include/contact_selectors.php:57
+msgid "Hourly"
+msgstr "Stündlich"
+
+#: ../../include/contact_selectors.php:58
+msgid "Twice daily"
+msgstr "Zwei Mal am Tag"
+
+#: ../../include/contact_selectors.php:59
+msgid "Daily"
+msgstr "Täglich"
+
+#: ../../include/contact_selectors.php:60
+msgid "Weekly"
+msgstr "Wöchentlich"
+
+#: ../../include/contact_selectors.php:61
+msgid "Monthly"
+msgstr "Monatlich"
+
+#: ../../include/contact_selectors.php:76
+msgid "Friendica"
+msgstr "Friendica"
+
+#: ../../include/contact_selectors.php:77
+msgid "OStatus"
+msgstr "OStatus"
+
+#: ../../include/contact_selectors.php:78
+msgid "RSS/Atom"
+msgstr "RSS/Atom"
+
+#: ../../include/contact_selectors.php:79 ../../mod/admin.php:726
+#: ../../mod/admin.php:735 ../../boot.php:1488
+msgid "Email"
+msgstr "E-Mail"
+
+#: ../../include/contact_selectors.php:80
+msgid "Diaspora"
+msgstr "Diaspora"
+
+#: ../../include/contact_selectors.php:81
+msgid "Facebook"
+msgstr "Facebook"
+
+#: ../../include/contact_selectors.php:82
+msgid "Zot!"
+msgstr "Zot!"
+
+#: ../../include/contact_selectors.php:83
+msgid "LinkedIn"
+msgstr "LinkedIn"
+
+#: ../../include/contact_selectors.php:84
+msgid "XMPP/IM"
+msgstr "XMPP/IM"
+
+#: ../../include/contact_selectors.php:85
+msgid "MySpace"
+msgstr "MySpace"
#: ../../include/contact_widgets.php:14
#, php-format
@@ -344,7 +1169,7 @@ msgid_plural "%d invitations available"
msgstr[0] "%d Einladung verfügbar"
msgstr[1] "%d Einladungen verfügbar"
-#: ../../include/contact_widgets.php:19 ../../mod/admin.php:446
+#: ../../include/contact_widgets.php:19 ../../mod/admin.php:416
msgid "Advanced"
msgstr "Fortgeschritten"
@@ -364,8 +1189,8 @@ msgstr "Verbinden/Folgen"
msgid "Examples: Robert Morgenstein, Fishing"
msgstr "Beispiele: Robert Morgenstein, Angeln"
-#: ../../include/contact_widgets.php:26 ../../mod/connections.php:392
-#: ../../mod/directory.php:222 ../../mod/directory.php:227
+#: ../../include/contact_widgets.php:26 ../../mod/directory.php:267
+#: ../../mod/directory.php:272 ../../mod/connections.php:412
msgid "Find"
msgstr "Finde"
@@ -382,135 +1207,714 @@ msgid "Invite Friends"
msgstr "Lade Freunde ein"
#: ../../include/contact_widgets.php:32
-msgid "Exammple: name=fred and country=iceland"
-msgstr "Beispiel: name=fred und country=deutschland"
-
-#: ../../include/contact_widgets.php:33
-msgid "Advanced Find"
-msgstr "Erweiterte Suche"
-
-#: ../../include/contact_widgets.php:58 ../../include/features.php:69
-#: ../../include/widgets.php:296
-msgid "Saved Folders"
-msgstr "Gesicherte Ordner"
-
-#: ../../include/contact_widgets.php:61 ../../include/contact_widgets.php:96
-#: ../../include/widgets.php:299
-msgid "Everything"
-msgstr "Alles"
-
-#: ../../include/contact_widgets.php:93 ../../include/widgets.php:29
-msgid "Categories"
-msgstr "Kategorien"
+msgid "Advanced example: name=fred and country=iceland"
+msgstr "Fortgeschrittenes Beispiel: name=fred and country=iceland"
-#: ../../include/contact_widgets.php:126
+#: ../../include/contact_widgets.php:125
#, php-format
msgid "%d connection in common"
msgid_plural "%d connections in common"
msgstr[0] "%d gemeinsame Verbindung"
msgstr[1] "%d gemeinsame Verbindungen"
-#: ../../include/contact_widgets.php:131
+#: ../../include/contact_widgets.php:130
msgid "show more"
msgstr "mehr zeigen"
-#: ../../include/activities.php:39
-msgid " and "
-msgstr "und"
+#: ../../include/enotify.php:41
+msgid "Red Matrix Notification"
+msgstr "Red Matrix Benachrichtigung"
-#: ../../include/activities.php:47
-msgid "public profile"
-msgstr "öffentliches Profil"
+#: ../../include/enotify.php:42
+msgid "redmatrix"
+msgstr "redmatrix"
-#: ../../include/activities.php:52
+#: ../../include/enotify.php:44
+msgid "Thank You,"
+msgstr "Danke."
+
+#: ../../include/enotify.php:46
#, 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"
+msgid "%s Administrator"
+msgstr "der Administrator von %s"
-#: ../../include/activities.php:53
+#: ../../include/enotify.php:81
#, php-format
-msgid "Visit %1$s's %2$s"
-msgstr "Besuche %1$s's %2$s"
+msgid "%s <!item_type!>"
+msgstr "%s <!item_type!>"
-#: ../../include/activities.php:56
+#: ../../include/enotify.php:85
#, 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."
+msgid "[Red:Notify] New mail received at %s"
+msgstr "[Red:Benachrichtigung] Neue Mail auf %s empfangen"
-#: ../../include/items.php:295 ../../mod/subthread.php:49
-#: ../../mod/profperm.php:23 ../../mod/group.php:68 ../../mod/like.php:242
-#: ../../index.php:360
-msgid "Permission denied"
-msgstr "Keine Berechtigung"
+#: ../../include/enotify.php:87
+#, 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/items.php:824
-msgid "(Unknown)"
-msgstr "(Unbekannt)"
+#: ../../include/enotify.php:88
+#, php-format
+msgid "%1$s sent you %2$s."
+msgstr "%1$s hat Dir %2$s geschickt."
-#: ../../include/items.php:953
-msgid "Visible to anybody on the internet."
-msgstr "Für jeden im Internet sichtbar."
+#: ../../include/enotify.php:88
+msgid "a private message"
+msgstr "eine private Nachricht"
-#: ../../include/items.php:955
-msgid "Visible to you only."
-msgstr "Nur für Dich sichtbar."
+#: ../../include/enotify.php:89
+#, 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/items.php:957
-msgid "Visible to anybody in this network."
-msgstr "Für jedes Mitglied der RedMatrix sichtbar."
+#: ../../include/enotify.php:144
+#, 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/items.php:959
-msgid "Visible to anybody authenticated."
-msgstr "Für jeden sichtbar, der angemeldet ist."
+#: ../../include/enotify.php:152
+#, 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/items.php:961
+#: ../../include/enotify.php:161
#, php-format
-msgid "Visible to anybody on %s."
-msgstr "Für jeden auf %s sichtbar."
+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/items.php:963
-msgid "Visible to all connections."
-msgstr "Für alle Verbindungen sichtbar."
+#: ../../include/enotify.php:172
+#, 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/items.php:965
-msgid "Visible to approved connections."
-msgstr "Nur für akzeptierte Verbindungen sichtbar."
+#: ../../include/enotify.php:173
+#, 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/items.php:3642 ../../mod/filestorage.php:18
-#: ../../mod/home.php:67 ../../mod/admin.php:159 ../../mod/admin.php:923
-#: ../../mod/admin.php:1126 ../../mod/thing.php:78 ../../mod/display.php:32
-#: ../../mod/viewsrc.php:18
-msgid "Item not found."
-msgstr "Element nicht gefunden."
+#: ../../include/enotify.php:176 ../../include/enotify.php:191
+#: ../../include/enotify.php:217 ../../include/enotify.php:236
+#: ../../include/enotify.php:250
+#, 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/items.php:4075 ../../mod/group.php:38 ../../mod/group.php:140
-msgid "Collection not found."
-msgstr "Sammlung nicht gefunden"
+#: ../../include/enotify.php:182
+#, php-format
+msgid "[Red:Notify] %s posted to your profile wall"
+msgstr "[Red:Hinweis] %s schrieb auf Deine Pinnwand"
-#: ../../include/items.php:4090
-msgid "Collection is empty."
-msgstr "Sammlung ist leer."
+#: ../../include/enotify.php:184
+#, 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/items.php:4097
+#: ../../include/enotify.php:186
#, php-format
-msgid "Collection: %s"
-msgstr "Sammlung: %s"
+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/items.php:4108
+#: ../../include/enotify.php:210
#, php-format
-msgid "Connection: %s"
-msgstr "Verbindung: %s"
+msgid "[Red:Notify] %s tagged you"
+msgstr "[Red:Benachrichtigung] %s hat Dich erwähnt"
-#: ../../include/items.php:4111
-msgid "Connection not found."
-msgstr "Die Verbindung wurde nicht gefunden."
+#: ../../include/enotify.php:211
+#, 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/Contact.php:107 ../../include/identity.php:675
-#: ../../include/widgets.php:128 ../../include/widgets.php:168
-#: ../../mod/dirprofile.php:164 ../../mod/suggest.php:51
-#: ../../mod/directory.php:183 ../../mod/match.php:62
-msgid "Connect"
-msgstr "Verbinden"
+#: ../../include/enotify.php:212
+#, 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/enotify.php:225
+#, php-format
+msgid "[Red:Notify] %1$s poked you"
+msgstr "[Red:Benachrichtigung] %1$s hat Dich angestupst"
+
+#: ../../include/enotify.php:226
+#, php-format
+msgid "%1$s, %2$s poked you at %3$s"
+msgstr "%1$s, %2$s hat Dich auf %3$s angestupst"
+
+#: ../../include/enotify.php:227
+#, 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/enotify.php:243
+#, php-format
+msgid "[Red:Notify] %s tagged your post"
+msgstr "[Red:Benachrichtigung] %s hat Deinen Beitrag verschlagwortet"
+
+#: ../../include/enotify.php:244
+#, 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/enotify.php:245
+#, 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/enotify.php:257
+msgid "[Red:Notify] Introduction received"
+msgstr "[Red:Benachrichtigung] Vorstellung erhalten"
+
+#: ../../include/enotify.php:258
+#, php-format
+msgid "%1$s, you've received an new connection request from '%2$s' at %3$s"
+msgstr "%1$s, Du hast eine neue Verbindungsanfrage von '%2$s' auf %3$s erhalten"
+
+#: ../../include/enotify.php:259
+#, php-format
+msgid ""
+"%1$s, you've received [zrl=%2$s]a new connection request[/zrl] from %3$s."
+msgstr "%1$s, Du hast [zrl=%2$s]eine neue Verbindungsanfrage[/zrl] von %3$s erhalten."
+
+#: ../../include/enotify.php:263 ../../include/enotify.php:282
+#, php-format
+msgid "You may visit their profile at %s"
+msgstr "Du kannst Dir das Profil unter %s ansehen"
+
+#: ../../include/enotify.php:265
+#, php-format
+msgid "Please visit %s to approve or reject the connection request."
+msgstr "Bitte besuche %s , um die Verbindungsanfrage anzunehmen oder abzulehnen."
+
+#: ../../include/enotify.php:272
+msgid "[Red:Notify] Friend suggestion received"
+msgstr "[Red:Benachrichtigung] Freundschaftsvorschlag erhalten"
+
+#: ../../include/enotify.php:273
+#, 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/enotify.php:274
+#, 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/enotify.php:280
+msgid "Name:"
+msgstr "Name:"
+
+#: ../../include/enotify.php:281
+msgid "Photo:"
+msgstr "Foto:"
+
+#: ../../include/enotify.php:284
+#, php-format
+msgid "Please visit %s to approve or reject the suggestion."
+msgstr "Bitte besuche %s um den Vorschlag zu akzeptieren oder abzulehnen."
+
+#: ../../include/enotify.php:477
+msgid "[Red:Notify]"
+msgstr "[Red:Benachrichtigung]"
+
+#: ../../include/event.php:326
+msgid "This event has been added to your calendar."
+msgstr "Dieser Termin wurde zu Deinem Kalender hinzugefügt"
+
+#: ../../include/group.php:26
+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 "Es hat früher schon einmal eine Sammlung mit diesem Namen existiert, die gelöscht wurde. Es <strong>könnten</strong> von damals noch Elemente (Beiträge, Dateien etc.) vorhanden sein, die allen jetzigen und zukünftigen Mitgliedern dieser Sammlung den Zugriff erlauben. Wenn das nicht Dein Plan war, erstelle bitte eine neue Sammlung mit einem anderen Namen."
+
+#: ../../include/group.php:235
+msgid "Default privacy group for new contacts"
+msgstr "Standard-Sammlung für neue Kontakte"
+
+#: ../../include/group.php:254 ../../mod/admin.php:735
+msgid "All Channels"
+msgstr "Alle Kanäle"
+
+#: ../../include/group.php:276
+msgid "edit"
+msgstr "Bearbeiten"
+
+#: ../../include/group.php:298
+msgid "Collections"
+msgstr "Sammlungen"
+
+#: ../../include/group.php:299
+msgid "Edit collection"
+msgstr "Sammlung bearbeiten"
+
+#: ../../include/group.php:300
+msgid "Create a new collection"
+msgstr "Neue Sammlung erzeugen"
+
+#: ../../include/group.php:301
+msgid "Channels not in any collection"
+msgstr "Kanäle, die nicht in einer Sammlung sind"
+
+#: ../../include/bbcode.php:112 ../../include/bbcode.php:653
+#: ../../include/bbcode.php:656 ../../include/bbcode.php:661
+#: ../../include/bbcode.php:664 ../../include/bbcode.php:667
+#: ../../include/bbcode.php:670 ../../include/bbcode.php:675
+#: ../../include/bbcode.php:678 ../../include/bbcode.php:683
+#: ../../include/bbcode.php:686 ../../include/bbcode.php:689
+#: ../../include/bbcode.php:692
+msgid "Image/photo"
+msgstr "Bild/Foto"
+
+#: ../../include/bbcode.php:147 ../../include/bbcode.php:703
+msgid "Encrypted content"
+msgstr "Verschlüsselter Inhalt"
+
+#: ../../include/bbcode.php:165
+msgid "Install design element: "
+msgstr "Design-Element installieren:"
+
+#: ../../include/bbcode.php:171
+msgid "QR code"
+msgstr "QR-Code"
+
+#: ../../include/bbcode.php:220
+#, php-format
+msgid "%1$s wrote the following %2$s %3$s"
+msgstr "%1$s schrieb den folgenden %2$s %3$s"
+
+#: ../../include/bbcode.php:222
+msgid "post"
+msgstr "Beitrag"
+
+#: ../../include/bbcode.php:621
+msgid "$1 spoiler"
+msgstr "$1 Spoiler"
+
+#: ../../include/bbcode.php:641
+msgid "$1 wrote:"
+msgstr "$1 schrieb:"
+
+#: ../../include/taxonomy.php:210
+msgid "Tags"
+msgstr "Schlagwörter"
+
+#: ../../include/taxonomy.php:249
+msgid "Keywords"
+msgstr "Schlüsselwörter"
+
+#: ../../include/taxonomy.php:274
+msgid "have"
+msgstr "habe"
+
+#: ../../include/taxonomy.php:274
+msgid "has"
+msgstr "hat"
+
+#: ../../include/taxonomy.php:275
+msgid "want"
+msgstr "will"
+
+#: ../../include/taxonomy.php:275
+msgid "wants"
+msgstr "will"
+
+#: ../../include/taxonomy.php:276 ../../include/ItemObject.php:221
+msgid "like"
+msgstr "mag"
+
+#: ../../include/taxonomy.php:276
+msgid "likes"
+msgstr "gefällt"
+
+#: ../../include/taxonomy.php:277 ../../include/ItemObject.php:222
+msgid "dislike"
+msgstr "verurteile"
+
+#: ../../include/taxonomy.php:277
+msgid "dislikes"
+msgstr "missfällt"
+
+#: ../../include/taxonomy.php:360 ../../include/identity.php:1148
+#: ../../include/ItemObject.php:146 ../../mod/photos.php:1026
+msgctxt "noun"
+msgid "Like"
+msgid_plural "Likes"
+msgstr[0] "Gefällt mir"
+msgstr[1] "Gefällt mir"
+
+#: ../../include/nav.php:95 ../../include/nav.php:128 ../../boot.php:1485
+msgid "Logout"
+msgstr "Abmelden"
+
+#: ../../include/nav.php:95 ../../include/nav.php:128
+msgid "End this session"
+msgstr "Beende diese Sitzung"
+
+#: ../../include/nav.php:98 ../../include/nav.php:159
+msgid "Home"
+msgstr "Home"
+
+#: ../../include/nav.php:98
+msgid "Your posts and conversations"
+msgstr "Deine Beiträge und Unterhaltungen"
+
+#: ../../include/nav.php:99
+msgid "Your profile page"
+msgstr "Deine Profilseite"
+
+#: ../../include/nav.php:101
+msgid "Edit Profiles"
+msgstr "Profile bearbeiten"
+
+#: ../../include/nav.php:101
+msgid "Manage/Edit profiles"
+msgstr "Profile verwalten"
+
+#: ../../include/nav.php:103 ../../include/identity.php:864
+msgid "Edit Profile"
+msgstr "Profile bearbeiten"
+
+#: ../../include/nav.php:103
+msgid "Edit your profile"
+msgstr "Profil bearbeiten"
+
+#: ../../include/nav.php:105
+msgid "Your photos"
+msgstr "Deine Bilder"
+
+#: ../../include/nav.php:106
+msgid "Your files"
+msgstr "Deine Dateien"
+
+#: ../../include/nav.php:111 ../../include/apps.php:144
+msgid "Chat"
+msgstr "Chat"
+
+#: ../../include/nav.php:111
+msgid "Your chatrooms"
+msgstr "Deine Chaträume"
+
+#: ../../include/nav.php:117
+msgid "Your bookmarks"
+msgstr "Deine Lesezeichen"
+
+#: ../../include/nav.php:121
+msgid "Your webpages"
+msgstr "Deine Webseiten"
+
+#: ../../include/nav.php:125 ../../include/apps.php:129 ../../boot.php:1486
+msgid "Login"
+msgstr "Anmelden"
+
+#: ../../include/nav.php:125
+msgid "Sign in"
+msgstr "Anmelden"
+
+#: ../../include/nav.php:142
+#, php-format
+msgid "%s - click to logout"
+msgstr "%s - Klick zum Abmelden"
+
+#: ../../include/nav.php:145
+msgid "Remote authentication"
+msgstr "Ãœber Konto auf anderem Server einloggen"
+
+#: ../../include/nav.php:145
+msgid "Click to authenticate to your home hub"
+msgstr "Klicke, um Dich über Deinen Heimat-Server zu authentifizieren"
+
+#: ../../include/nav.php:159
+msgid "Home Page"
+msgstr "Homepage"
+
+#: ../../include/nav.php:163 ../../mod/register.php:224 ../../boot.php:1464
+msgid "Register"
+msgstr "Registrieren"
+
+#: ../../include/nav.php:163
+msgid "Create an account"
+msgstr "Erzeuge ein Konto"
+
+#: ../../include/nav.php:168 ../../include/apps.php:140 ../../mod/help.php:58
+#: ../../mod/help.php:63
+msgid "Help"
+msgstr "Hilfe"
+
+#: ../../include/nav.php:168
+msgid "Help and documentation"
+msgstr "Hilfe und Dokumentation"
+
+#: ../../include/nav.php:171
+msgid "Applications, utilities, links, games"
+msgstr "Anwendungen (Apps), Zubehör, Links, Spiele"
+
+#: ../../include/nav.php:173 ../../include/text.php:826
+#: ../../include/text.php:838 ../../include/apps.php:145
+#: ../../mod/search.php:30
+msgid "Search"
+msgstr "Suche"
+
+#: ../../include/nav.php:173
+msgid "Search site content"
+msgstr "Durchsuche Seiten-Inhalt"
+
+#: ../../include/nav.php:176 ../../include/apps.php:139
+#: ../../mod/directory.php:271
+msgid "Directory"
+msgstr "Verzeichnis"
+
+#: ../../include/nav.php:176
+msgid "Channel Directory"
+msgstr "Kanal-Verzeichnis"
+
+#: ../../include/nav.php:190 ../../include/apps.php:131
+msgid "Matrix"
+msgstr "Matrix"
+
+#: ../../include/nav.php:190
+msgid "Your matrix"
+msgstr "Deine Matrix"
+
+#: ../../include/nav.php:191
+msgid "Mark all matrix notifications seen"
+msgstr "Markiere alle Matrix-Benachrichtigungen als angesehen"
+
+#: ../../include/nav.php:193 ../../include/apps.php:135
+msgid "Channel Home"
+msgstr "Mein Kanal"
+
+#: ../../include/nav.php:193
+msgid "Channel home"
+msgstr "Mein Kanal"
+
+#: ../../include/nav.php:194
+msgid "Mark all channel notifications seen"
+msgstr "Markiere alle Kanal-Benachrichtigungen als angesehen"
+
+#: ../../include/nav.php:197 ../../mod/connections.php:406
+msgid "Connections"
+msgstr "Verbindungen"
+
+#: ../../include/nav.php:200
+msgid "Notices"
+msgstr "Benachrichtigungen"
+
+#: ../../include/nav.php:200
+msgid "Notifications"
+msgstr "Benachrichtigungen"
+
+#: ../../include/nav.php:201
+msgid "See all notifications"
+msgstr "Alle Benachrichtigungen ansehen"
+
+#: ../../include/nav.php:202 ../../mod/notifications.php:99
+msgid "Mark all system notifications seen"
+msgstr "Markiere alle System-Benachrichtigungen als gesehen"
+
+#: ../../include/nav.php:204 ../../include/apps.php:141
+msgid "Mail"
+msgstr "Mail"
+
+#: ../../include/nav.php:204
+msgid "Private mail"
+msgstr "Persönliche Mail"
+
+#: ../../include/nav.php:205
+msgid "See all private messages"
+msgstr "Alle persönlichen Nachrichten ansehen"
+
+#: ../../include/nav.php:206
+msgid "Mark all private messages seen"
+msgstr "Markiere alle persönlichen Nachrichten als gesehen"
+
+#: ../../include/nav.php:207
+msgid "Inbox"
+msgstr "Eingang"
+
+#: ../../include/nav.php:208
+msgid "Outbox"
+msgstr "Ausgang"
+
+#: ../../include/nav.php:212 ../../include/apps.php:138
+#: ../../mod/events.php:431
+msgid "Events"
+msgstr "Termine"
+
+#: ../../include/nav.php:212
+msgid "Event Calendar"
+msgstr "Terminkalender"
+
+#: ../../include/nav.php:213
+msgid "See all events"
+msgstr "Alle Termine ansehen"
+
+#: ../../include/nav.php:214
+msgid "Mark all events seen"
+msgstr "Markiere alle Termine als gesehen"
+
+#: ../../include/nav.php:216 ../../include/apps.php:130
+#: ../../mod/manage.php:148
+msgid "Channel Manager"
+msgstr "Kanal-Manager"
+
+#: ../../include/nav.php:216
+msgid "Manage Your Channels"
+msgstr "Verwalte Deine Kanäle"
+
+#: ../../include/nav.php:218
+msgid "Account/Channel Settings"
+msgstr "Konto-/Kanal-Einstellungen"
+
+#: ../../include/nav.php:226 ../../mod/admin.php:123
+msgid "Admin"
+msgstr "Administration"
+
+#: ../../include/nav.php:226
+msgid "Site Setup and Configuration"
+msgstr "Seiten-Einrichtung und -Konfiguration"
+
+#: ../../include/nav.php:262
+msgid "Please wait..."
+msgstr "Bitte warten..."
+
+#: ../../include/permissions.php:13
+msgid "Can view my normal stream and posts"
+msgstr "Kann meine normalen Beiträge sehen"
+
+#: ../../include/permissions.php:14
+msgid "Can view my default channel profile"
+msgstr "Kann mein Standardprofil sehen"
+
+#: ../../include/permissions.php:15
+msgid "Can view my photo albums"
+msgstr "Kann meine Fotoalben betrachten"
+
+#: ../../include/permissions.php:16
+msgid "Can view my connections"
+msgstr "Kann meine Verbindungen sehen"
+
+#: ../../include/permissions.php:17
+msgid "Can view my file storage"
+msgstr "Kann meine Dateiordner lesen"
+
+#: ../../include/permissions.php:18
+msgid "Can view my webpages"
+msgstr "Kann meine Webseiten sehen"
+
+#: ../../include/permissions.php:21
+msgid "Can send me their channel stream and posts"
+msgstr "Kann mir die Beiträge aus seinem/ihrem Kanal schicken"
+
+#: ../../include/permissions.php:22
+msgid "Can post on my channel page (\"wall\")"
+msgstr "Kann auf meiner Kanal-Seite (\"wall\") Beiträge veröffentlichen"
+
+#: ../../include/permissions.php:23
+msgid "Can comment on or like my posts"
+msgstr "Darf meine Beiträge kommentieren und mögen/nicht mögen"
+
+#: ../../include/permissions.php:24
+msgid "Can send me private mail messages"
+msgstr "Kann mir private Nachrichten schicken"
+
+#: ../../include/permissions.php:25
+msgid "Can post photos to my photo albums"
+msgstr "Kann Fotos in meinen Fotoalben veröffentlichen"
+
+#: ../../include/permissions.php:26
+msgid "Can like/dislike stuff"
+msgstr "Kann andere Elemente mögen/nicht mögen"
+
+#: ../../include/permissions.php:26
+msgid "Profiles and things other than posts/comments"
+msgstr "Profile und alles außer Beiträge und Kommentare"
+
+#: ../../include/permissions.php:28
+msgid "Can forward to all my channel contacts via post @mentions"
+msgstr "Kann an alle meine Kontakte via @-Erwähnung Nachrichten weiterleiten"
+
+#: ../../include/permissions.php:28
+msgid "Advanced - useful for creating group forum channels"
+msgstr "Fortgeschritten - sinnvoll, um Gruppen-Kanäle/-Foren zu erstellen"
+
+#: ../../include/permissions.php:29
+msgid "Can chat with me (when available)"
+msgstr "Kann mit mir chatten (wenn verfügbar)"
+
+#: ../../include/permissions.php:30
+msgid "Can write to my file storage"
+msgstr "Kann in meine Dateiordner schreiben"
+
+#: ../../include/permissions.php:31
+msgid "Can edit my webpages"
+msgstr "Kann meine Webseiten bearbeiten"
+
+#: ../../include/permissions.php:33
+msgid "Can source my public posts in derived channels"
+msgstr "Kann meine öffentlichen Beiträge als Quellen für Kanäle verwenden"
+
+#: ../../include/permissions.php:33
+msgid "Somewhat advanced - very useful in open communities"
+msgstr "Etwas fortgeschritten – sehr nützlich in offenen Gemeinschaften"
+
+#: ../../include/permissions.php:35
+msgid "Can administer my channel resources"
+msgstr "Kann meine Kanäle administrieren"
+
+#: ../../include/permissions.php:35
+msgid ""
+"Extremely advanced. Leave this alone unless you know what you are doing"
+msgstr "Sehr fortgeschritten. Bearbeite das nur, wenn Du genau weißt, was Du tust"
+
+#: ../../include/permissions.php:785
+msgid "Social Networking"
+msgstr "Soziales Netzwerk"
+
+#: ../../include/permissions.php:786 ../../include/permissions.php:788
+#: ../../include/permissions.php:790
+msgid "Mostly Public"
+msgstr "Weitgehend öffentlich"
+
+#: ../../include/permissions.php:786 ../../include/permissions.php:788
+#: ../../include/permissions.php:790
+msgid "Restricted"
+msgstr "Beschränkt"
+
+#: ../../include/permissions.php:786 ../../include/permissions.php:788
+msgid "Private"
+msgstr "Privat"
+
+#: ../../include/permissions.php:787
+msgid "Community Forum"
+msgstr "Forum"
+
+#: ../../include/permissions.php:789
+msgid "Feed Republish"
+msgstr "Teilen von Feeds"
+
+#: ../../include/permissions.php:791
+msgid "Special Purpose"
+msgstr "Für besondere Zwecke"
+
+#: ../../include/permissions.php:792
+msgid "Celebrity/Soapbox"
+msgstr "Mitteilungs-Kanal (keine Kommentare)"
+
+#: ../../include/permissions.php:792
+msgid "Group Repository"
+msgstr "Gruppenarchiv"
+
+#: ../../include/permissions.php:793 ../../include/profile_selectors.php:6
+#: ../../include/profile_selectors.php:23
+#: ../../include/profile_selectors.php:61
+#: ../../include/profile_selectors.php:97
+msgid "Other"
+msgstr "Andere"
+
+#: ../../include/permissions.php:794
+msgid "Custom/Expert Mode"
+msgstr "Benutzerdefiniert/Expertenmodus"
#: ../../include/Contact.php:123
msgid "New window"
@@ -520,561 +1924,845 @@ msgstr "Neues Fenster"
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/datetime.php:43 ../../include/datetime.php:45
-msgid "Miscellaneous"
-msgstr "Verschiedenes"
+#: ../../include/Contact.php:211 ../../mod/admin.php:646
+#, php-format
+msgid "User '%s' deleted"
+msgstr "Benutzer '%s' gelöscht"
-#: ../../include/datetime.php:152 ../../include/datetime.php:284
-msgid "year"
-msgstr "Jahr"
+#: ../../include/features.php:23
+msgid "General Features"
+msgstr "Allgemeine Funktionen"
-#: ../../include/datetime.php:157 ../../include/datetime.php:285
-msgid "month"
-msgstr "Monat"
+#: ../../include/features.php:25
+msgid "Content Expiration"
+msgstr "Verfall von Inhalten"
-#: ../../include/datetime.php:162 ../../include/datetime.php:287
-msgid "day"
-msgstr "Tag"
+#: ../../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/datetime.php:275
-msgid "never"
-msgstr "Nie"
+#: ../../include/features.php:26
+msgid "Multiple Profiles"
+msgstr "Mehrfachprofile"
-#: ../../include/datetime.php:281
-msgid "less than a second ago"
-msgstr "Vor weniger als einer Sekunde"
+#: ../../include/features.php:26
+msgid "Ability to create multiple profiles"
+msgstr "Mehrfachprofile anlegen können"
-#: ../../include/datetime.php:284
-msgid "years"
-msgstr "Jahre"
+#: ../../include/features.php:27
+msgid "Advanced Profiles"
+msgstr "Erweiterte Profile"
-#: ../../include/datetime.php:285
-msgid "months"
-msgstr "Monate"
+#: ../../include/features.php:27
+msgid "Additional profile sections and selections"
+msgstr "Stellt zusätzliche Bereiche und Felder im Profil zur Verfügung"
-#: ../../include/datetime.php:286
-msgid "week"
-msgstr "Woche"
+#: ../../include/features.php:28
+msgid "Profile Import/Export"
+msgstr "Profil-Import/Export"
-#: ../../include/datetime.php:286
-msgid "weeks"
-msgstr "Wochen"
+#: ../../include/features.php:28
+msgid "Save and load profile details across sites/channels"
+msgstr "Speichere Dein Profil, um es in einen anderen Kanal zu importieren"
-#: ../../include/datetime.php:287
-msgid "days"
-msgstr "Tage"
+#: ../../include/features.php:29
+msgid "Web Pages"
+msgstr "Webseiten"
-#: ../../include/datetime.php:288
-msgid "hour"
-msgstr "Stunde"
+#: ../../include/features.php:29
+msgid "Provide managed web pages on your channel"
+msgstr "Stelle verwaltete Webseiten in Deinem Kanal zur Verfügung"
-#: ../../include/datetime.php:288
-msgid "hours"
-msgstr "Stunden"
+#: ../../include/features.php:30
+msgid "Private Notes"
+msgstr "Private Notizen"
-#: ../../include/datetime.php:289
-msgid "minute"
-msgstr "Minute"
+#: ../../include/features.php:30
+msgid "Enables a tool to store notes and reminders"
+msgstr "Werkzeug zum Speichern von Notizen und Erinnerungen aktivieren"
-#: ../../include/datetime.php:289
-msgid "minutes"
-msgstr "Minuten"
+#: ../../include/features.php:34
+msgid "Navigation Channel Select"
+msgstr "Kanal-Auswahl in der Navigationsleiste"
-#: ../../include/datetime.php:290
-msgid "second"
-msgstr "Sekunde"
+#: ../../include/features.php:34
+msgid "Change channels directly from within the navigation dropdown menu"
+msgstr "Wechsle direkt über das Navigationsmenü zu anderen Kanälen"
-#: ../../include/datetime.php:290
-msgid "seconds"
-msgstr "Sekunden"
+#: ../../include/features.php:38
+msgid "Extended Identity Sharing"
+msgstr "Erweitertes Teilen von Identitäten"
+
+#: ../../include/features.php:38
+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:39
+msgid "Expert Mode"
+msgstr "Expertenmodus"
+
+#: ../../include/features.php:39
+msgid "Enable Expert Mode to provide advanced configuration options"
+msgstr "Aktiviere den Expertenmodus, um fortgeschrittene Konfigurationsoptionen zu aktivieren"
+
+#: ../../include/features.php:40
+msgid "Premium Channel"
+msgstr "Premium-Kanal"
+
+#: ../../include/features.php:40
+msgid ""
+"Allows you to set restrictions and terms on those that connect with your "
+"channel"
+msgstr "Ermöglicht es, Einschränkungen und Bedingungen für Verbindungen dieses Kanals festzulegen"
+
+#: ../../include/features.php:45
+msgid "Post Composition Features"
+msgstr "Nachbearbeitungsfunktionen"
+
+#: ../../include/features.php:47
+msgid "Use Markdown"
+msgstr "Markdown benutzen"
+
+#: ../../include/features.php:47
+msgid "Allow use of \"Markdown\" to format posts"
+msgstr "Erlaube die Verwendung von \"Markdown\"-Syntax zur Formatierung von Beiträgen"
+
+#: ../../include/features.php:48
+msgid "Post Preview"
+msgstr "Voransicht"
+
+#: ../../include/features.php:48
+msgid "Allow previewing posts and comments before publishing them"
+msgstr "Erlaube Voransicht von Beiträgen und Kommentaren vor Veröffentlichung"
+
+#: ../../include/features.php:49
+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:50
+msgid "Even More Encryption"
+msgstr "Noch mehr Verschlüsselung"
+
+#: ../../include/features.php:50
+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:55
+msgid "Network and Stream Filtering"
+msgstr "Netzwerk- und Stream-Filter"
+
+#: ../../include/features.php:56
+msgid "Search by Date"
+msgstr "Suche nach Datum"
+
+#: ../../include/features.php:56
+msgid "Ability to select posts by date ranges"
+msgstr "Möglichkeit, Beiträge nach Zeiträumen auszuwählen"
+
+#: ../../include/features.php:57
+msgid "Collections Filter"
+msgstr "Filter für Sammlung"
+
+#: ../../include/features.php:57
+msgid "Enable widget to display Network posts only from selected collections"
+msgstr "Aktiviere nur Netzwerk-Beiträge von ausgewählten Sammlungen"
+
+#: ../../include/features.php:58
+msgid "Save search terms for re-use"
+msgstr "Suchbegriffe zur Wiederverwendung abspeichern"
+
+#: ../../include/features.php:59
+msgid "Network Personal Tab"
+msgstr "Persönlicher Netzwerkreiter"
+
+#: ../../include/features.php:59
+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:60
+msgid "Network New Tab"
+msgstr "Netzwerkreiter Neu"
+
+#: ../../include/features.php:60
+msgid "Enable tab to display all new Network activity"
+msgstr "Aktiviere Reiter, um alle neuen Netzwerkaktivitäten zu zeigen"
+
+#: ../../include/features.php:61
+msgid "Affinity Tool"
+msgstr "Beziehungs-Tool"
+
+#: ../../include/features.php:61
+msgid "Filter stream activity by depth of relationships"
+msgstr "Filter Aktivitätenstream nach Tiefe der Beziehung"
+
+#: ../../include/features.php:62
+msgid "Suggest Channels"
+msgstr "Kanäle vorschlagen"
+
+#: ../../include/features.php:62
+msgid "Show channel suggestions"
+msgstr "Kanal-Vorschläge anzeigen"
+
+#: ../../include/features.php:67
+msgid "Post/Comment Tools"
+msgstr "Beitrag-/Kommentar-Tools"
+
+#: ../../include/features.php:69
+msgid "Edit Sent Posts"
+msgstr "Bearbeite gesendete Beiträge"
+
+#: ../../include/features.php:69
+msgid "Edit and correct posts and comments after sending"
+msgstr "Bearbeite und korrigiere Beiträge und Kommentare nach dem Senden"
+
+#: ../../include/features.php:70
+msgid "Tagging"
+msgstr "Verschlagworten"
+
+#: ../../include/features.php:70
+msgid "Ability to tag existing posts"
+msgstr "Möglichkeit, um existierende Beiträge zu verschlagworten"
+
+#: ../../include/features.php:71
+msgid "Post Categories"
+msgstr "Beitrags-Kategorien"
+
+#: ../../include/features.php:71
+msgid "Add categories to your posts"
+msgstr "Kategorien für Beiträge"
+
+#: ../../include/features.php:72
+msgid "Ability to file posts under folders"
+msgstr "Möglichkeit, Beiträge in Verzeichnissen zu sammeln"
+
+#: ../../include/features.php:73
+msgid "Dislike Posts"
+msgstr "Gefällt-mir-nicht Beiträge"
+
+#: ../../include/features.php:73
+msgid "Ability to dislike posts/comments"
+msgstr "„Gefällt mir nicht“ ermöglichen"
+
+#: ../../include/features.php:74
+msgid "Star Posts"
+msgstr "Beiträge mit Sternchen versehen"
+
+#: ../../include/features.php:74
+msgid "Ability to mark special posts with a star indicator"
+msgstr "Möglichkeit, spezielle Beiträge mit Sternchen-Symbol zu markieren"
+
+#: ../../include/features.php:75
+msgid "Tag Cloud"
+msgstr "Schlagwort-Wolke"
+
+#: ../../include/features.php:75
+msgid "Provide a personal tag cloud on your channel page"
+msgstr "Persönliche Schlagwort-Wolke auf Deiner Kanal-Seite anzeigen"
+
+#: ../../include/account.php:23
+msgid "Not a valid email address"
+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 dieser Seite nicht erlaubt"
+
+#: ../../include/account.php:31
+msgid "Your email address is already registered at this site."
+msgstr "Deine E-Mail-Adresse ist auf dieser Seite bereits registriert."
+
+#: ../../include/account.php:64
+msgid "An invitation is required."
+msgstr "Eine Einladung wird benötigt"
+
+#: ../../include/account.php:68
+msgid "Invitation could not be verified."
+msgstr "Die Einladung konnte nicht bestätigt werden"
-#: ../../include/datetime.php:299
+#: ../../include/account.php:119
+msgid "Please enter the required information."
+msgstr "Bitte gib die benötigten Informationen ein."
+
+#: ../../include/account.php:187
+msgid "Failed to store account information."
+msgstr "Speichern der Account-Informationen fehlgeschlagen"
+
+#: ../../include/account.php:245
#, php-format
-msgid "%1$d %2$s ago"
-msgstr "vor %1$d %2$s"
+msgid "Registration confirmation for %s"
+msgstr "Registrierungsbestätigung für %s"
-#: ../../include/datetime.php:504
+#: ../../include/account.php:313
#, php-format
-msgid "%1$s's birthday"
-msgstr "%1$s's Geburtstag"
+msgid "Registration request at %s"
+msgstr "Registrierungsanfrage auf %s"
+
+#: ../../include/account.php:315 ../../include/account.php:342
+#: ../../include/account.php:399
+msgid "Administrator"
+msgstr "Administrator"
+
+#: ../../include/account.php:337
+msgid "your registration password"
+msgstr "Dein Registrierungspasswort"
-#: ../../include/datetime.php:505
+#: ../../include/account.php:340 ../../include/account.php:397
#, php-format
-msgid "Happy Birthday %1$s"
-msgstr "Alles Gute zum Geburtstag %1$s"
+msgid "Registration details for %s"
+msgstr "Registrierungsdetails für %s"
+
+#: ../../include/account.php:406
+msgid "Account approved."
+msgstr "Account bestätigt."
+
+#: ../../include/account.php:440
+#, php-format
+msgid "Registration revoked for %s"
+msgstr "Registrierung für %s widerrufen"
-#: ../../include/identity.php:30 ../../mod/item.php:1297
+#: ../../include/account.php:486
+msgid "Account verified. Please login."
+msgstr "Konto geprüft. Bitte melde Dich an!"
+
+#: ../../include/account.php:648 ../../include/account.php:650
+msgid "Click here to upgrade."
+msgstr "Klicke hier, um das Upgrade durchzuführen."
+
+#: ../../include/account.php:656
+msgid "This action exceeds the limits set by your subscription plan."
+msgstr "Diese Aktion überschreitet die Grenzen Ihres Abonnements."
+
+#: ../../include/account.php:661
+msgid "This action is not available under your subscription plan."
+msgstr "Diese Aktion ist in Ihrem Abonnement nicht verfügbar."
+
+#: ../../include/identity.php:31 ../../mod/item.php:1368
msgid "Unable to obtain identity information from database"
msgstr "Kann keine Identitäts-Informationen aus Datenbank beziehen"
-#: ../../include/identity.php:63
+#: ../../include/identity.php:66
msgid "Empty name"
msgstr "Namensfeld leer"
-#: ../../include/identity.php:65
+#: ../../include/identity.php:68
msgid "Name too long"
msgstr "Name ist zu lang"
-#: ../../include/identity.php:166
+#: ../../include/identity.php:169
msgid "No account identifier"
msgstr "Keine Account-Kennung"
-#: ../../include/identity.php:176
+#: ../../include/identity.php:182
msgid "Nickname is required."
msgstr "Spitzname ist erforderlich."
-#: ../../include/identity.php:190
+#: ../../include/identity.php:196
msgid "Reserved nickname. Please choose another."
msgstr "Reservierter Kurzname. Bitte wähle einen anderen."
-#: ../../include/identity.php:195
+#: ../../include/identity.php:201 ../../include/dimport.php:34
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:258
+#: ../../include/identity.php:283
msgid "Unable to retrieve created identity"
msgstr "Kann die erstellte Identität nicht empfangen"
-#: ../../include/identity.php:317
+#: ../../include/identity.php:343
msgid "Default Profile"
msgstr "Standard-Profil"
-#: ../../include/identity.php:342 ../../include/profile_selectors.php:80
-#: ../../include/widgets.php:400 ../../mod/connedit.php:473
-msgid "Friends"
-msgstr "Freunde"
-
-#: ../../include/identity.php:509
+#: ../../include/identity.php:643
msgid "Requested channel is not available."
msgstr "Angeforderte Kanal nicht verfügbar."
-#: ../../include/identity.php:557 ../../mod/filestorage.php:40
-#: ../../mod/webpages.php:8 ../../mod/profile.php:16 ../../mod/connect.php:13
-#: ../../mod/blocks.php:10 ../../mod/layouts.php:8
-#: ../../mod/achievements.php:8
+#: ../../include/identity.php:691 ../../mod/achievements.php:11
+#: ../../mod/connect.php:13 ../../mod/profile.php:16 ../../mod/blocks.php:29
+#: ../../mod/webpages.php:29 ../../mod/editblock.php:29
+#: ../../mod/editlayout.php:28 ../../mod/editwebpage.php:28
+#: ../../mod/filestorage.php:48 ../../mod/layouts.php:29 ../../mod/hcard.php:8
msgid "Requested profile is not available."
msgstr "Erwünschte Profil ist nicht verfügbar."
-#: ../../include/identity.php:689 ../../mod/profiles.php:695
+#: ../../include/identity.php:854 ../../mod/profiles.php:740
msgid "Change profile photo"
msgstr "Profilfoto ändern"
-#: ../../include/identity.php:695
+#: ../../include/identity.php:860
msgid "Profiles"
msgstr "Profile"
-#: ../../include/identity.php:695
+#: ../../include/identity.php:860
msgid "Manage/edit profiles"
msgstr "Profile verwalten/bearbeiten"
-#: ../../include/identity.php:696 ../../mod/profiles.php:696
+#: ../../include/identity.php:861 ../../mod/profiles.php:741
msgid "Create New Profile"
msgstr "Neues Profil erstellen"
-#: ../../include/identity.php:699 ../../include/nav.php:89
-msgid "Edit Profile"
-msgstr "Profile bearbeiten"
-
-#: ../../include/identity.php:710 ../../mod/profiles.php:707
+#: ../../include/identity.php:875 ../../mod/profiles.php:752
msgid "Profile Image"
msgstr "Profilfoto:"
-#: ../../include/identity.php:713
+#: ../../include/identity.php:878
msgid "visible to everybody"
msgstr "sichtbar für jeden"
-#: ../../include/identity.php:714 ../../mod/profiles.php:591
-#: ../../mod/profiles.php:711
+#: ../../include/identity.php:879 ../../mod/profiles.php:635
+#: ../../mod/profiles.php:756
msgid "Edit visibility"
msgstr "Sichtbarkeit bearbeiten"
-#: ../../include/identity.php:726 ../../include/event.php:40
-#: ../../include/bb2diaspora.php:485 ../../mod/dirprofile.php:105
-#: ../../mod/directory.php:156 ../../mod/events.php:504
-msgid "Location:"
-msgstr "Ort:"
-
-#: ../../include/identity.php:728 ../../include/identity.php:952
-#: ../../mod/directory.php:158
+#: ../../include/identity.php:895 ../../include/identity.php:1132
msgid "Gender:"
msgstr "Geschlecht:"
-#: ../../include/identity.php:729 ../../include/identity.php:996
-#: ../../mod/directory.php:160
+#: ../../include/identity.php:896 ../../include/identity.php:1176
msgid "Status:"
msgstr "Status:"
-#: ../../include/identity.php:730 ../../include/identity.php:1007
-#: ../../mod/directory.php:162
+#: ../../include/identity.php:897 ../../include/identity.php:1187
msgid "Homepage:"
msgstr "Homepage:"
-#: ../../include/identity.php:731 ../../mod/dirprofile.php:151
+#: ../../include/identity.php:898
msgid "Online Now"
msgstr "gerade online"
-#: ../../include/identity.php:796 ../../include/identity.php:876
-#: ../../mod/ping.php:298
+#: ../../include/identity.php:976 ../../include/identity.php:1056
+#: ../../mod/ping.php:318
msgid "g A l F d"
msgstr "l, d. F G \\\\U\\\\h\\\\r"
-#: ../../include/identity.php:797 ../../include/identity.php:877
+#: ../../include/identity.php:977 ../../include/identity.php:1057
msgid "F d"
msgstr "d. F"
-#: ../../include/identity.php:842 ../../include/identity.php:917
-#: ../../mod/ping.php:320
+#: ../../include/identity.php:1022 ../../include/identity.php:1097
+#: ../../mod/ping.php:340
msgid "[today]"
msgstr "[Heute]"
-#: ../../include/identity.php:854
+#: ../../include/identity.php:1034
msgid "Birthday Reminders"
msgstr "Geburtstags Erinnerungen"
-#: ../../include/identity.php:855
+#: ../../include/identity.php:1035
msgid "Birthdays this week:"
msgstr "Geburtstage in dieser Woche:"
-#: ../../include/identity.php:910
+#: ../../include/identity.php:1090
msgid "[No description]"
msgstr "[Keine Beschreibung]"
-#: ../../include/identity.php:928
+#: ../../include/identity.php:1108
msgid "Event Reminders"
-msgstr "Veranstaltungs- Erinnerungen"
+msgstr "Termin-Erinnerungen"
-#: ../../include/identity.php:929
+#: ../../include/identity.php:1109
msgid "Events this week:"
-msgstr "Veranstaltungen in dieser Woche:"
+msgstr "Termine in dieser Woche:"
-#: ../../include/identity.php:942 ../../include/identity.php:1050
-#: ../../include/apps.php:133 ../../mod/profperm.php:112
+#: ../../include/identity.php:1122 ../../include/identity.php:1240
+#: ../../include/apps.php:136 ../../mod/profperm.php:112
msgid "Profile"
msgstr "Profil"
-#: ../../include/identity.php:950 ../../mod/settings.php:936
+#: ../../include/identity.php:1130 ../../mod/settings.php:984
msgid "Full Name:"
msgstr "Voller Name:"
-#: ../../include/identity.php:957
+#: ../../include/identity.php:1137
msgid "Like this channel"
-msgstr "Mag den Kanal"
+msgstr "Dieser Kanal gefällt mir"
-#: ../../include/identity.php:968 ../../include/taxonomy.php:338
-#: ../../include/ItemObject.php:134
-msgctxt "noun"
-msgid "Like"
-msgid_plural "Likes"
-msgstr[0] "Gefällt mir"
-msgstr[1] "Gefällt mir"
-
-#: ../../include/identity.php:981
+#: ../../include/identity.php:1161
msgid "j F, Y"
-msgstr "j F, Y"
+msgstr "j. F Y"
-#: ../../include/identity.php:982
+#: ../../include/identity.php:1162
msgid "j F"
-msgstr "j F"
+msgstr "j. F"
-#: ../../include/identity.php:989
+#: ../../include/identity.php:1169
msgid "Birthday:"
msgstr "Geburtstag:"
-#: ../../include/identity.php:993
+#: ../../include/identity.php:1173
msgid "Age:"
msgstr "Alter:"
-#: ../../include/identity.php:1002
+#: ../../include/identity.php:1182
#, php-format
msgid "for %1$d %2$s"
msgstr "seit %1$d %2$s"
-#: ../../include/identity.php:1005 ../../mod/profiles.php:613
+#: ../../include/identity.php:1185 ../../mod/profiles.php:657
msgid "Sexual Preference:"
msgstr "Sexuelle Orientierung:"
-#: ../../include/identity.php:1009 ../../mod/profiles.php:615
+#: ../../include/identity.php:1189 ../../mod/profiles.php:659
msgid "Hometown:"
msgstr "Heimatstadt:"
-#: ../../include/identity.php:1011
+#: ../../include/identity.php:1191
msgid "Tags:"
msgstr "Schlagworte:"
-#: ../../include/identity.php:1013 ../../mod/profiles.php:616
+#: ../../include/identity.php:1193 ../../mod/profiles.php:660
msgid "Political Views:"
msgstr "Politische Ansichten:"
-#: ../../include/identity.php:1015
+#: ../../include/identity.php:1195
msgid "Religion:"
msgstr "Religion:"
-#: ../../include/identity.php:1017 ../../mod/directory.php:164
+#: ../../include/identity.php:1197
msgid "About:"
msgstr "Ãœber:"
-#: ../../include/identity.php:1019
+#: ../../include/identity.php:1199
msgid "Hobbies/Interests:"
msgstr "Hobbys/Interessen:"
-#: ../../include/identity.php:1021 ../../mod/profiles.php:619
+#: ../../include/identity.php:1201 ../../mod/profiles.php:663
msgid "Likes:"
msgstr "Gefällt:"
-#: ../../include/identity.php:1023 ../../mod/profiles.php:620
+#: ../../include/identity.php:1203 ../../mod/profiles.php:664
msgid "Dislikes:"
msgstr "Gefällt nicht:"
-#: ../../include/identity.php:1026
+#: ../../include/identity.php:1206
msgid "Contact information and Social Networks:"
msgstr "Kontaktinformation und soziale Netzwerke:"
-#: ../../include/identity.php:1028
+#: ../../include/identity.php:1208
msgid "My other channels:"
msgstr "Meine anderen Kanäle:"
-#: ../../include/identity.php:1030
+#: ../../include/identity.php:1210
msgid "Musical interests:"
msgstr "Musikalische Interessen:"
-#: ../../include/identity.php:1032
+#: ../../include/identity.php:1212
msgid "Books, literature:"
msgstr "Bücher, Literatur:"
-#: ../../include/identity.php:1034
+#: ../../include/identity.php:1214
msgid "Television:"
msgstr "Fernsehen:"
-#: ../../include/identity.php:1036
+#: ../../include/identity.php:1216
msgid "Film/dance/culture/entertainment:"
msgstr "Film/Tanz/Kultur/Unterhaltung:"
-#: ../../include/identity.php:1038
+#: ../../include/identity.php:1218
msgid "Love/Romance:"
msgstr "Liebe/Romantik:"
-#: ../../include/identity.php:1040
+#: ../../include/identity.php:1220
msgid "Work/employment:"
msgstr "Arbeit/Anstellung:"
-#: ../../include/identity.php:1042
+#: ../../include/identity.php:1222
msgid "School/education:"
msgstr "Schule/Ausbildung:"
-#: ../../include/identity.php:1052
+#: ../../include/identity.php:1242
msgid "Like this thing"
-msgstr "Finde ich gut"
+msgstr "Gefällt mir"
-#: ../../include/page_widgets.php:6
-msgid "New Page"
-msgstr "Neue Seite"
+#: ../../include/items.php:377 ../../mod/profperm.php:23
+#: ../../mod/subthread.php:49 ../../mod/group.php:68 ../../mod/like.php:246
+#: ../../index.php:389
+msgid "Permission denied"
+msgstr "Keine Berechtigung"
-#: ../../include/page_widgets.php:8 ../../include/page_widgets.php:36
-#: ../../include/menu.php:42 ../../include/reddav.php:1289
-#: ../../include/ItemObject.php:96 ../../include/apps.php:240
-#: ../../mod/settings.php:578 ../../mod/webpages.php:120
-#: ../../mod/connections.php:393 ../../mod/menu.php:59 ../../mod/thing.php:235
-#: ../../mod/editpost.php:112 ../../mod/editwebpage.php:143
-#: ../../mod/blocks.php:94 ../../mod/layouts.php:112
-#: ../../mod/editblock.php:111 ../../mod/editlayout.php:106
-msgid "Edit"
-msgstr "Bearbeiten"
+#: ../../include/items.php:964 ../../include/items.php:1009
+msgid "(Unknown)"
+msgstr "(Unbekannt)"
-#: ../../include/page_widgets.php:39 ../../mod/webpages.php:123
-#: ../../mod/blocks.php:97 ../../mod/layouts.php:116
-msgid "View"
-msgstr "Ansicht"
+#: ../../include/items.php:1165
+msgid "Visible to anybody on the internet."
+msgstr "Für jeden im Internet sichtbar."
-#: ../../include/page_widgets.php:40 ../../include/ItemObject.php:592
-#: ../../include/conversation.php:1091 ../../mod/webpages.php:124
-#: ../../mod/photos.php:997 ../../mod/editpost.php:140
-#: ../../mod/editwebpage.php:174 ../../mod/editblock.php:141
-#: ../../mod/editlayout.php:135
-msgid "Preview"
-msgstr "Vorschau"
+#: ../../include/items.php:1167
+msgid "Visible to you only."
+msgstr "Nur für Dich sichtbar."
-#: ../../include/page_widgets.php:41 ../../mod/webpages.php:125
-msgid "Actions"
-msgstr "Aktionen"
+#: ../../include/items.php:1169
+msgid "Visible to anybody in this network."
+msgstr "Für jedes Mitglied der RedMatrix sichtbar."
-#: ../../include/page_widgets.php:42 ../../mod/webpages.php:126
-msgid "Page Link"
-msgstr "Seiten Link"
+#: ../../include/items.php:1171
+msgid "Visible to anybody authenticated."
+msgstr "Für jeden sichtbar, der angemeldet ist."
-#: ../../include/page_widgets.php:43 ../../mod/webpages.php:127
-msgid "Title"
-msgstr "Titel"
+#: ../../include/items.php:1173
+#, php-format
+msgid "Visible to anybody on %s."
+msgstr "Für jeden auf %s sichtbar."
-#: ../../include/page_widgets.php:44 ../../mod/webpages.php:128
-msgid "Created"
-msgstr "Erstellt"
+#: ../../include/items.php:1175
+msgid "Visible to all connections."
+msgstr "Für alle Verbindungen sichtbar."
-#: ../../include/page_widgets.php:45 ../../mod/webpages.php:129
-msgid "Edited"
-msgstr "Geändert"
+#: ../../include/items.php:1177
+msgid "Visible to approved connections."
+msgstr "Nur für akzeptierte Verbindungen sichtbar."
-#: ../../include/reddav.php:1145 ../../include/reddav.php:1288
-msgid "parent"
-msgstr "Ãœbergeordnetes Verzeichnis"
+#: ../../include/items.php:1179
+msgid "Visible to specific connections."
+msgstr "Sichtbar für bestimmte Verbindungen."
-#: ../../include/reddav.php:1169
-msgid "Collection"
-msgstr "Sammlung"
+#: ../../include/items.php:3946 ../../mod/thing.php:76
+#: ../../mod/display.php:32 ../../mod/filestorage.php:26
+#: ../../mod/admin.php:168 ../../mod/admin.php:896 ../../mod/admin.php:1099
+#: ../../mod/viewsrc.php:20
+msgid "Item not found."
+msgstr "Element nicht gefunden."
-#: ../../include/reddav.php:1172
-msgid "Principal"
-msgstr "Prinzipal"
+#: ../../include/items.php:4402 ../../mod/group.php:38 ../../mod/group.php:140
+msgid "Collection not found."
+msgstr "Sammlung nicht gefunden"
-#: ../../include/reddav.php:1175
-msgid "Addressbook"
-msgstr "Adressbuch"
+#: ../../include/items.php:4417
+msgid "Collection is empty."
+msgstr "Sammlung ist leer."
-#: ../../include/reddav.php:1178
-msgid "Calendar"
-msgstr "Kalender"
+#: ../../include/items.php:4424
+#, php-format
+msgid "Collection: %s"
+msgstr "Sammlung: %s"
-#: ../../include/reddav.php:1181
-msgid "Schedule Inbox"
-msgstr "Post-Eingang prüfen"
+#: ../../include/items.php:4435
+#, php-format
+msgid "Connection: %s"
+msgstr "Verbindung: %s"
-#: ../../include/reddav.php:1184
-msgid "Schedule Outbox"
-msgstr "Post-Ausgang prüfen"
+#: ../../include/items.php:4438
+msgid "Connection not found."
+msgstr "Die Verbindung wurde nicht gefunden."
-#: ../../include/reddav.php:1202 ../../include/apps.php:322
-#: ../../include/apps.php:373 ../../mod/connedit.php:476
-msgid "Unknown"
-msgstr "Unbekannt"
+#: ../../include/message.php:18
+msgid "No recipient provided."
+msgstr "Kein Empfänger angegeben"
+
+#: ../../include/message.php:23
+msgid "[no subject]"
+msgstr "[no subject]"
+
+#: ../../include/message.php:45
+msgid "Unable to determine sender."
+msgstr "Kann Absender nicht bestimmen."
+
+#: ../../include/message.php:200
+msgid "Stored post could not be verified."
+msgstr "Gespeicherter Beitrag konnten nicht überprüft werden."
+
+#: ../../include/network.php:590
+msgid "view full size"
+msgstr "In Vollbildansicht anschauen"
+
+#: ../../include/attach.php:221 ../../include/attach.php:275
+msgid "Item was not found."
+msgstr "Beitrag wurde nicht gefunden."
+
+#: ../../include/attach.php:331
+msgid "No source file."
+msgstr "Keine Quelldatei."
+
+#: ../../include/attach.php:348
+msgid "Cannot locate file to replace"
+msgstr "Kann Datei zum Ersetzen nicht finden"
+
+#: ../../include/attach.php:366
+msgid "Cannot locate file to revise/update"
+msgstr "Kann Datei zum Prüfen/Aktualisieren nicht finden"
-#: ../../include/reddav.php:1262
+#: ../../include/attach.php:377
#, php-format
-msgid "%1$s used"
-msgstr "%1$s verwendet"
+msgid "File exceeds size limit of %d"
+msgstr "Datei überschreitet das Größen-Limit von %d"
-#: ../../include/reddav.php:1267
+#: ../../include/attach.php:389
#, php-format
-msgid "%1$s used of %2$s (%3$s&#37;)"
-msgstr "von %2$s wurden %1$s verwendet (%3$s&#37;)"
+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/reddav.php:1280 ../../include/nav.php:92
-#: ../../include/apps.php:130 ../../include/conversation.php:1521
-#: ../../mod/fbrowser.php:114
-msgid "Files"
-msgstr "Dateien"
+#: ../../include/attach.php:472
+msgid "File upload failed. Possible system limit or action terminated."
+msgstr "Datei-Upload fehlgeschlagen. Mögliche Systembegrenzung oder abgebrochener Prozess."
-#: ../../include/reddav.php:1284 ../../mod/settings.php:518
-#: ../../mod/settings.php:544 ../../mod/admin.php:893
-msgid "Name"
-msgstr "Name"
+#: ../../include/attach.php:484
+msgid "Stored file could not be verified. Upload failed."
+msgstr "Gespeichert Datei konnte nicht verifiziert werden. Upload abgebrochen."
-#: ../../include/reddav.php:1285
-msgid "Type"
-msgstr "Typ"
+#: ../../include/attach.php:526 ../../include/attach.php:543
+msgid "Path not available."
+msgstr "Pfad nicht verfügbar."
-#: ../../include/reddav.php:1286
-msgid "Size"
-msgstr "Größe"
+#: ../../include/attach.php:589
+msgid "Empty pathname"
+msgstr "Leere Pfadangabe"
-#: ../../include/reddav.php:1287
-msgid "Last Modified"
-msgstr "Zuletzt geändert"
+#: ../../include/attach.php:605
+msgid "duplicate filename or path"
+msgstr "doppelter Dateiname oder Pfad"
-#: ../../include/reddav.php:1290 ../../include/ItemObject.php:108
-#: ../../include/apps.php:241 ../../include/conversation.php:635
-#: ../../mod/settings.php:579 ../../mod/admin.php:758 ../../mod/admin.php:888
-#: ../../mod/photos.php:1046 ../../mod/connedit.php:440
-#: ../../mod/thing.php:236 ../../mod/group.php:176
-msgid "Delete"
-msgstr "Löschen"
+#: ../../include/attach.php:629
+msgid "Path not found."
+msgstr "Pfad nicht gefunden."
-#: ../../include/reddav.php:1291
-msgid "Total"
-msgstr "Summe"
+#: ../../include/attach.php:680
+msgid "mkdir failed."
+msgstr "mkdir fehlgeschlagen."
-#: ../../include/reddav.php:1344
-msgid "Create new folder"
-msgstr "Neuen Ordner anlegen"
+#: ../../include/attach.php:684
+msgid "database storage failed."
+msgstr "Speichern in der Datenbank fehlgeschlagen."
-#: ../../include/reddav.php:1345 ../../mod/new_channel.php:117
-#: ../../mod/mitem.php:142 ../../mod/menu.php:84
-msgid "Create"
-msgstr "Erstelle"
+#: ../../include/auth.php:116
+msgid "Logged out."
+msgstr "Ausgeloggt."
-#: ../../include/reddav.php:1346
-msgid "Upload file"
-msgstr "Datei hochladen"
+#: ../../include/auth.php:257
+msgid "Failed authentication"
+msgstr "Authentifizierung fehlgeschlagen"
-#: ../../include/reddav.php:1347 ../../mod/profile_photo.php:361
-msgid "Upload"
-msgstr "Hochladen"
+#: ../../include/auth.php:271 ../../mod/openid.php:190
+msgid "Login failed."
+msgstr "Login fehlgeschlagen."
-#: ../../include/message.php:18
-msgid "No recipient provided."
-msgstr "Kein Empfänger angegeben"
+#: ../../include/datetime.php:43 ../../include/datetime.php:45
+msgid "Miscellaneous"
+msgstr "Verschiedenes"
-#: ../../include/message.php:23
-msgid "[no subject]"
-msgstr "[no subject]"
+#: ../../include/datetime.php:142
+msgid "YYYY-MM-DD or MM-DD"
+msgstr "JJJJ-MM-TT oder MM-TT"
-#: ../../include/message.php:42
-msgid "Unable to determine sender."
-msgstr "Kann Absender nicht bestimmen."
+#: ../../include/datetime.php:248
+msgid "never"
+msgstr "Nie"
-#: ../../include/message.php:143
-msgid "Stored post could not be verified."
-msgstr "Gespeicherter Beitrag konnten nicht überprüft werden."
+#: ../../include/datetime.php:254
+msgid "less than a second ago"
+msgstr "Vor weniger als einer Sekunde"
-#: ../../include/taxonomy.php:210
-msgid "Tags"
-msgstr "Schlagwörter"
+#: ../../include/datetime.php:257
+msgid "year"
+msgstr "Jahr"
-#: ../../include/taxonomy.php:227
-msgid "Keywords"
-msgstr "Schlüsselwörter"
+#: ../../include/datetime.php:257
+msgid "years"
+msgstr "Jahre"
-#: ../../include/taxonomy.php:252
-msgid "have"
-msgstr "habe"
+#: ../../include/datetime.php:258
+msgid "month"
+msgstr "Monat"
-#: ../../include/taxonomy.php:252
-msgid "has"
-msgstr "hat"
+#: ../../include/datetime.php:258
+msgid "months"
+msgstr "Monate"
-#: ../../include/taxonomy.php:253
-msgid "want"
-msgstr "will"
+#: ../../include/datetime.php:259
+msgid "week"
+msgstr "Woche"
-#: ../../include/taxonomy.php:253
-msgid "wants"
-msgstr "will"
+#: ../../include/datetime.php:259
+msgid "weeks"
+msgstr "Wochen"
-#: ../../include/taxonomy.php:254 ../../include/ItemObject.php:208
-msgid "like"
-msgstr "mag"
+#: ../../include/datetime.php:260
+msgid "day"
+msgstr "Tag"
-#: ../../include/taxonomy.php:254
-msgid "likes"
-msgstr "gefällt"
+#: ../../include/datetime.php:260
+msgid "days"
+msgstr "Tage"
-#: ../../include/taxonomy.php:255 ../../include/ItemObject.php:209
-msgid "dislike"
-msgstr "verurteile"
+#: ../../include/datetime.php:261
+msgid "hour"
+msgstr "Stunde"
-#: ../../include/taxonomy.php:255
-msgid "dislikes"
-msgstr "missfällt"
+#: ../../include/datetime.php:261
+msgid "hours"
+msgstr "Stunden"
+
+#: ../../include/datetime.php:262
+msgid "minute"
+msgstr "Minute"
+
+#: ../../include/datetime.php:262
+msgid "minutes"
+msgstr "Minuten"
+
+#: ../../include/datetime.php:263
+msgid "second"
+msgstr "Sekunde"
+
+#: ../../include/datetime.php:263
+msgid "seconds"
+msgstr "Sekunden"
+
+#: ../../include/datetime.php:272
+#, php-format
+msgid "%1$d %2$s ago"
+msgstr "vor %1$d %2$s"
+
+#: ../../include/datetime.php:480
+#, php-format
+msgid "%1$s's birthday"
+msgstr "%1$ss Geburtstag"
+
+#: ../../include/datetime.php:481
+#, php-format
+msgid "Happy Birthday %1$s"
+msgstr "Alles Gute zum Geburtstag, %1$s"
+
+#: ../../include/photos.php:105
+#, php-format
+msgid "Image exceeds website size limit of %lu bytes"
+msgstr "Bild überschreitet das Limit der Webseite von %lu bytes"
+
+#: ../../include/photos.php:112
+msgid "Image file is empty."
+msgstr "Bilddatei ist leer."
+
+#: ../../include/photos.php:141 ../../mod/profile_photo.php:216
+msgid "Unable to process image"
+msgstr "Kann Bild nicht verarbeiten"
+
+#: ../../include/photos.php:213
+msgid "Photo storage failed."
+msgstr "Foto speichern schlug fehl"
+
+#: ../../include/photos.php:345
+msgid "Upload New Photos"
+msgstr "Lade neue Fotos hoch"
+
+#: ../../include/security.php:323
+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/js_strings.php:5
msgid "Delete this item?"
msgstr "Dieses Element löschen?"
-#: ../../include/js_strings.php:6 ../../include/ItemObject.php:582
-#: ../../mod/photos.php:995 ../../mod/photos.php:1082
+#: ../../include/js_strings.php:6 ../../include/ItemObject.php:598
+#: ../../mod/photos.php:995 ../../mod/photos.php:1105
msgid "Comment"
msgstr "Kommentar"
-#: ../../include/js_strings.php:7 ../../include/ItemObject.php:316
+#: ../../include/js_strings.php:7 ../../include/ItemObject.php:332
msgid "[+] show all"
msgstr "[+] Zeige alle"
@@ -1112,246 +2800,89 @@ msgstr "Hinweis zur Passphrase"
#: ../../include/js_strings.php:16
msgid "Notice: Permissions have changed but have not yet been submitted."
-msgstr "Mitteilung: Berechtigungen wurden verändert, aber noch nicht gespeichert."
+msgstr "Achtung: Berechtigungen wurden verändert, aber noch nicht gespeichert."
#: ../../include/js_strings.php:17
msgid "close all"
-msgstr "Alles schliessen"
+msgstr "Alle schließen"
-#: ../../include/js_strings.php:19
+#: ../../include/js_strings.php:18
+msgid "Nothing new here"
+msgstr "Nichts Neues hier"
+
+#: ../../include/js_strings.php:20
msgid "timeago.prefixAgo"
msgstr "timeago.prefixAgo"
-#: ../../include/js_strings.php:20
+#: ../../include/js_strings.php:21
msgid "timeago.prefixFromNow"
msgstr " "
-#: ../../include/js_strings.php:21
+#: ../../include/js_strings.php:22
msgid "ago"
msgstr "her"
-#: ../../include/js_strings.php:22
+#: ../../include/js_strings.php:23
msgid "from now"
msgstr "von jetzt"
-#: ../../include/js_strings.php:23
+#: ../../include/js_strings.php:24
msgid "less than a minute"
msgstr "weniger als eine Minute"
-#: ../../include/js_strings.php:24
+#: ../../include/js_strings.php:25
msgid "about a minute"
msgstr "ungefähr eine Minute"
-#: ../../include/js_strings.php:25
+#: ../../include/js_strings.php:26
#, php-format
msgid "%d minutes"
msgstr "%d Minuten"
-#: ../../include/js_strings.php:26
+#: ../../include/js_strings.php:27
msgid "about an hour"
msgstr "ungefähr eine Stunde"
-#: ../../include/js_strings.php:27
+#: ../../include/js_strings.php:28
#, php-format
msgid "about %d hours"
msgstr "ungefähr %d Stunden"
-#: ../../include/js_strings.php:28
+#: ../../include/js_strings.php:29
msgid "a day"
msgstr "ein Tag"
-#: ../../include/js_strings.php:29
+#: ../../include/js_strings.php:30
#, php-format
msgid "%d days"
msgstr "%d Tage"
-#: ../../include/js_strings.php:30
+#: ../../include/js_strings.php:31
msgid "about a month"
msgstr "ungefähr ein Monat"
-#: ../../include/js_strings.php:31
+#: ../../include/js_strings.php:32
#, php-format
msgid "%d months"
msgstr "%d Monate"
-#: ../../include/js_strings.php:32
+#: ../../include/js_strings.php:33
msgid "about a year"
msgstr "ungefähr ein Jahr"
-#: ../../include/js_strings.php:33
+#: ../../include/js_strings.php:34
#, php-format
msgid "%d years"
msgstr "%d Jahre"
-#: ../../include/js_strings.php:34
+#: ../../include/js_strings.php:35
msgid " "
msgstr " "
-#: ../../include/js_strings.php:35
+#: ../../include/js_strings.php:36
msgid "timeago.numbers"
msgstr "timeago.numbers"
-#: ../../include/permissions.php:13
-msgid "Can view my normal stream and posts"
-msgstr "Kann meine normalen Beiträge sehen"
-
-#: ../../include/permissions.php:14
-msgid "Can view my default channel profile"
-msgstr "Kann mein Standardprofil sehen"
-
-#: ../../include/permissions.php:15
-msgid "Can view my photo albums"
-msgstr "Kann meine Fotoalben betrachten"
-
-#: ../../include/permissions.php:16
-msgid "Can view my connections"
-msgstr "Kann meine Verbindungen sehen"
-
-#: ../../include/permissions.php:17
-msgid "Can view my file storage"
-msgstr "Kann meine Dateiordner lesen"
-
-#: ../../include/permissions.php:18
-msgid "Can view my webpages"
-msgstr "Kann meine Webseiten sehen"
-
-#: ../../include/permissions.php:21
-msgid "Can send me their channel stream and posts"
-msgstr "Kann mir die Beiträge aus seinem/ihrem Kanal schicken"
-
-#: ../../include/permissions.php:22
-msgid "Can post on my channel page (\"wall\")"
-msgstr "Kann auf meiner Kanal-Seite (\"wall\") Beiträge veröffentlichen"
-
-#: ../../include/permissions.php:23
-msgid "Can comment on or like my posts"
-msgstr "Darf meine Beiträge kommentieren und mögen/nicht mögen"
-
-#: ../../include/permissions.php:24
-msgid "Can send me private mail messages"
-msgstr "Kann mir private Nachrichten schicken"
-
-#: ../../include/permissions.php:25
-msgid "Can post photos to my photo albums"
-msgstr "Kann Fotos in meinen Fotoalben veröffentlichen"
-
-#: ../../include/permissions.php:26
-msgid "Can like/dislike stuff"
-msgstr "Kann andere Elemente mögen/nicht mögen"
-
-#: ../../include/permissions.php:28
-msgid "Can forward to all my channel contacts via post @mentions"
-msgstr "Kann an alle meine Kontakte via @-Erwähnung Nachrichten weiterleiten"
-
-#: ../../include/permissions.php:28
-msgid "Advanced - useful for creating group forum channels"
-msgstr "Fortgeschritten - sinnvoll, um Gruppen-Kanäle/-Foren zu erstellen"
-
-#: ../../include/permissions.php:29
-msgid "Can chat with me (when available)"
-msgstr "Kann mit mir chatten (wenn verfügbar)"
-
-#: ../../include/permissions.php:30
-msgid "Can write to my file storage"
-msgstr "Kann in meine Dateiordner schreiben"
-
-#: ../../include/permissions.php:31
-msgid "Can edit my webpages"
-msgstr "Kann meine Webseiten bearbeiten"
-
-#: ../../include/permissions.php:33
-msgid "Can source my public posts in derived channels"
-msgstr "Kann meine öffentlichen Beiträge als Quellen für Kanäle verwenden"
-
-#: ../../include/permissions.php:33
-msgid "Somewhat advanced - very useful in open communities"
-msgstr "Etwas fortgeschritten – sehr nützlich in offenen Gemeinschaften"
-
-#: ../../include/permissions.php:35
-msgid "Can administer my channel resources"
-msgstr "Kann meine Kanäle administrieren"
-
-#: ../../include/permissions.php:35
-msgid ""
-"Extremely advanced. Leave this alone unless you know what you are doing"
-msgstr "Sehr fortgeschritten. Bearbeite das nur, wenn Du genau weißt, was Du tust"
-
-#: ../../include/contact_selectors.php:56
-msgid "Frequently"
-msgstr "Häufig"
-
-#: ../../include/contact_selectors.php:57
-msgid "Hourly"
-msgstr "Stündlich"
-
-#: ../../include/contact_selectors.php:58
-msgid "Twice daily"
-msgstr "Zwei Mal am Tag"
-
-#: ../../include/contact_selectors.php:59
-msgid "Daily"
-msgstr "Täglich"
-
-#: ../../include/contact_selectors.php:60
-msgid "Weekly"
-msgstr "Wöchentlich"
-
-#: ../../include/contact_selectors.php:61
-msgid "Monthly"
-msgstr "Monatlich"
-
-#: ../../include/contact_selectors.php:76
-msgid "Friendica"
-msgstr "Friendica"
-
-#: ../../include/contact_selectors.php:77
-msgid "OStatus"
-msgstr "OStatus"
-
-#: ../../include/contact_selectors.php:78
-msgid "RSS/Atom"
-msgstr "RSS/Atom"
-
-#: ../../include/contact_selectors.php:80
-msgid "Diaspora"
-msgstr "Diaspora"
-
-#: ../../include/contact_selectors.php:81
-msgid "Facebook"
-msgstr "Facebook"
-
-#: ../../include/contact_selectors.php:82
-msgid "Zot!"
-msgstr "Zot!"
-
-#: ../../include/contact_selectors.php:83
-msgid "LinkedIn"
-msgstr "LinkedIn"
-
-#: ../../include/contact_selectors.php:84
-msgid "XMPP/IM"
-msgstr "XMPP/IM"
-
-#: ../../include/contact_selectors.php:85
-msgid "MySpace"
-msgstr "MySpace"
-
-#: ../../include/event.php:11 ../../include/bb2diaspora.php:463
-msgid "l F d, Y \\@ g:i A"
-msgstr "l, d. F Y\\\\, H:i"
-
-#: ../../include/event.php:20 ../../include/bb2diaspora.php:469
-msgid "Starts:"
-msgstr "Beginnt:"
-
-#: ../../include/event.php:30 ../../include/bb2diaspora.php:477
-msgid "Finishes:"
-msgstr "Endet:"
-
-#: ../../include/event.php:326
-msgid "This event has been added to your calendar."
-msgstr "Dieses Ereignis wurde Deinem Kalender hinzugefügt"
-
#: ../../include/profile_selectors.php:6
#: ../../include/profile_selectors.php:23
msgid "Male"
@@ -1403,13 +2934,6 @@ msgid "Non-specific"
msgstr "unklar"
#: ../../include/profile_selectors.php:6
-#: ../../include/profile_selectors.php:23
-#: ../../include/profile_selectors.php:61
-#: ../../include/profile_selectors.php:97
-msgid "Other"
-msgstr "Anders"
-
-#: ../../include/profile_selectors.php:6
msgid "Undecided"
msgstr "Unentschieden"
@@ -1595,383 +3119,6 @@ msgstr "Interessiert mich nicht"
msgid "Ask me"
msgstr "Frag mich mal"
-#: ../../include/account.php:23
-msgid "Not a valid email address"
-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 dieser Seite nicht erlaubt"
-
-#: ../../include/account.php:31
-msgid "Your email address is already registered at this site."
-msgstr "Deine E-Mail-Adresse ist auf dieser Seite bereits registriert."
-
-#: ../../include/account.php:64
-msgid "An invitation is required."
-msgstr "Eine Einladung wird benötigt"
-
-#: ../../include/account.php:68
-msgid "Invitation could not be verified."
-msgstr "Die Einladung konnte nicht bestätigt werden"
-
-#: ../../include/account.php:119
-msgid "Please enter the required information."
-msgstr "Bitte gib die benötigten Informationen ein."
-
-#: ../../include/account.php:187
-msgid "Failed to store account information."
-msgstr "Speichern der Account-Informationen fehlgeschlagen"
-
-#: ../../include/account.php:245
-#, php-format
-msgid "Registration confirmation for %s"
-msgstr "Registrierungsbestätigung für %s"
-
-#: ../../include/account.php:313
-#, php-format
-msgid "Registration request at %s"
-msgstr "Registrierungsanfrage auf %s"
-
-#: ../../include/account.php:315 ../../include/account.php:342
-#: ../../include/account.php:399
-msgid "Administrator"
-msgstr "Administrator"
-
-#: ../../include/account.php:337
-msgid "your registration password"
-msgstr "Dein Registrierungspasswort"
-
-#: ../../include/account.php:340 ../../include/account.php:397
-#, php-format
-msgid "Registration details for %s"
-msgstr "Registrierungsdetails für %s"
-
-#: ../../include/account.php:406
-msgid "Account approved."
-msgstr "Account bestätigt."
-
-#: ../../include/account.php:440
-#, php-format
-msgid "Registration revoked for %s"
-msgstr "Registrierung für %s widerrufen"
-
-#: ../../include/account.php:486
-msgid "Account verified. Please login."
-msgstr "Konto geprüft. Bitte melde Dich an!"
-
-#: ../../include/oembed.php:163
-msgid "Embedded content"
-msgstr "Eingebetteter Inhalt"
-
-#: ../../include/oembed.php:172
-msgid "Embedding disabled"
-msgstr "Einbetten ausgeschaltet"
-
-#: ../../include/zot.php:624
-msgid "Invalid data packet"
-msgstr "Ungültiges Datenpaket"
-
-#: ../../include/zot.php:634
-msgid "Unable to verify channel signature"
-msgstr "Konnte die Signatur des Kanals nicht verifizieren"
-
-#: ../../include/zot.php:831
-#, php-format
-msgid "Unable to verify site signature for %s"
-msgstr "Kann die Signatur der Seite von %s nicht verifizieren"
-
-#: ../../include/network.php:652
-msgid "view full size"
-msgstr "In Vollbildansicht anschauen"
-
-#: ../../include/dba/dba_driver.php:50
-#, php-format
-msgid "Cannot locate DNS info for database server '%s'"
-msgstr "Kann die DNS-Informationen für den Datenbank-Server '%s' nicht finden"
-
-#: ../../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 "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."
-
-#: ../../include/group.php:234
-msgid "Default privacy group for new contacts"
-msgstr "Standard-Privatsphärengruppe für neue Kontakte"
-
-#: ../../include/group.php:253 ../../mod/admin.php:763
-msgid "All Channels"
-msgstr "Alle Kanäle"
-
-#: ../../include/group.php:275
-msgid "edit"
-msgstr "Bearbeiten"
-
-#: ../../include/group.php:296
-msgid "Collections"
-msgstr "Sammlungen"
-
-#: ../../include/group.php:297
-msgid "Edit collection"
-msgstr "Bearbeite Sammlungen"
-
-#: ../../include/group.php:298
-msgid "Create a new collection"
-msgstr "Neue Sammlung erzeugen"
-
-#: ../../include/group.php:299
-msgid "Channels not in any collection"
-msgstr "Kanäle, die nicht in einer Sammlung sind"
-
-#: ../../include/group.php:301 ../../include/widgets.php:266
-msgid "add"
-msgstr "hinzufügen"
-
-#: ../../include/attach.php:224 ../../include/attach.php:278
-msgid "Item was not found."
-msgstr "Beitrag wurde nicht gefunden."
-
-#: ../../include/attach.php:335
-msgid "No source file."
-msgstr "Keine Quelldatei."
-
-#: ../../include/attach.php:352
-msgid "Cannot locate file to replace"
-msgstr "Kann Datei zum Ersetzen nicht finden"
-
-#: ../../include/attach.php:370
-msgid "Cannot locate file to revise/update"
-msgstr "Kann Datei zum Prüfen/Aktualisieren nicht finden"
-
-#: ../../include/attach.php:381
-#, php-format
-msgid "File exceeds size limit of %d"
-msgstr "Datei überschreitet das Größen-Limit von %d"
-
-#: ../../include/attach.php:393
-#, php-format
-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/attach.php:475
-msgid "File upload failed. Possible system limit or action terminated."
-msgstr "Datei-Upload fehlgeschlagen. Mögliche Systembegrenzung oder abgebrochener Prozess."
-
-#: ../../include/attach.php:487
-msgid "Stored file could not be verified. Upload failed."
-msgstr "Gespeichert Datei konnte nicht verifiziert werden. Upload abgebrochen."
-
-#: ../../include/attach.php:528 ../../include/attach.php:545
-msgid "Path not available."
-msgstr "Pfad nicht verfügbar."
-
-#: ../../include/attach.php:590
-msgid "Empty pathname"
-msgstr "Leere Pfadangabe"
-
-#: ../../include/attach.php:606
-msgid "duplicate filename or path"
-msgstr "doppelter Dateiname oder Pfad"
-
-#: ../../include/attach.php:630
-msgid "Path not found."
-msgstr "Pfad nicht gefunden."
-
-#: ../../include/attach.php:681
-msgid "mkdir failed."
-msgstr "mkdir fehlgeschlagen."
-
-#: ../../include/attach.php:685
-msgid "database storage failed."
-msgstr "Speichern in der Datenbank fehlgeschlagen."
-
-#: ../../include/ItemObject.php:89 ../../include/conversation.php:642
-#: ../../mod/photos.php:844
-msgid "Private Message"
-msgstr "Private Nachricht"
-
-#: ../../include/ItemObject.php:114 ../../include/conversation.php:634
-msgid "Select"
-msgstr "Auswählen"
-
-#: ../../include/ItemObject.php:118
-msgid "Save to Folder"
-msgstr "In Ordner speichern"
-
-#: ../../include/ItemObject.php:130 ../../include/ItemObject.php:142
-msgid "View all"
-msgstr "Alles anzeigen"
-
-#: ../../include/ItemObject.php:139
-msgctxt "noun"
-msgid "Dislike"
-msgid_plural "Dislikes"
-msgstr[0] "Gefällt nicht"
-msgstr[1] "Gefällt nicht"
-
-#: ../../include/ItemObject.php:167
-msgid "Add Star"
-msgstr "Stern hinzufügen"
-
-#: ../../include/ItemObject.php:168
-msgid "Remove Star"
-msgstr "Stern entfernen"
-
-#: ../../include/ItemObject.php:169
-msgid "Toggle Star Status"
-msgstr "Stern Status umschalten"
-
-#: ../../include/ItemObject.php:173
-msgid "starred"
-msgstr "markiert"
-
-#: ../../include/ItemObject.php:182 ../../include/conversation.php:649
-msgid "Message is verified"
-msgstr "Nachricht überprüft"
-
-#: ../../include/ItemObject.php:190
-msgid "Add Tag"
-msgstr "Tag hinzufügen"
-
-#: ../../include/ItemObject.php:208 ../../mod/photos.php:974
-msgid "I like this (toggle)"
-msgstr "Mir gefällt das (Umschalter)"
-
-#: ../../include/ItemObject.php:209 ../../mod/photos.php:975
-msgid "I don't like this (toggle)"
-msgstr "Mir gefällt das nicht (Umschalter)"
-
-#: ../../include/ItemObject.php:211
-msgid "Share This"
-msgstr "Teilen"
-
-#: ../../include/ItemObject.php:211
-msgid "share"
-msgstr "Teilen"
-
-#: ../../include/ItemObject.php:235 ../../include/ItemObject.php:236
-#, php-format
-msgid "View %s's profile - %s"
-msgstr "Schaue Dir %ss Profil an – %s"
-
-#: ../../include/ItemObject.php:237
-msgid "to"
-msgstr "an"
-
-#: ../../include/ItemObject.php:238
-msgid "via"
-msgstr "via"
-
-#: ../../include/ItemObject.php:239
-msgid "Wall-to-Wall"
-msgstr "Wall-to-Wall"
-
-#: ../../include/ItemObject.php:240
-msgid "via Wall-To-Wall:"
-msgstr "via Wall-To-Wall:"
-
-#: ../../include/ItemObject.php:250 ../../include/conversation.php:693
-#, php-format
-msgid " from %s"
-msgstr "von %s"
-
-#: ../../include/ItemObject.php:253 ../../include/conversation.php:696
-#, php-format
-msgid "last edited: %s"
-msgstr "zuletzt bearbeitet: %s"
-
-#: ../../include/ItemObject.php:254 ../../include/conversation.php:697
-#, php-format
-msgid "Expires: %s"
-msgstr "Verfällt: %s"
-
-#: ../../include/ItemObject.php:274
-msgid "Save Bookmarks"
-msgstr "Favoriten speichern"
-
-#: ../../include/ItemObject.php:275
-msgid "Add to Calendar"
-msgstr "Zum Kalender hinzufügen"
-
-#: ../../include/ItemObject.php:283
-msgctxt "noun"
-msgid "Likes"
-msgstr "Gefällt mir"
-
-#: ../../include/ItemObject.php:284
-msgctxt "noun"
-msgid "Dislikes"
-msgstr "Gefällt nicht"
-
-#: ../../include/ItemObject.php:289 ../../include/acl_selectors.php:249
-msgid "Close"
-msgstr "Geschlossen"
-
-#: ../../include/ItemObject.php:294 ../../include/conversation.php:714
-#: ../../include/conversation.php:1130 ../../mod/photos.php:977
-#: ../../mod/editpost.php:121 ../../mod/editwebpage.php:152
-#: ../../mod/mail.php:231 ../../mod/mail.php:346 ../../mod/editblock.php:120
-#: ../../mod/editlayout.php:115
-msgid "Please wait"
-msgstr "Bitte warten"
-
-#: ../../include/ItemObject.php:315
-#, php-format
-msgid "%d comment"
-msgid_plural "%d comments"
-msgstr[0] "%d Kommentar"
-msgstr[1] "%d Kommentare"
-
-#: ../../include/ItemObject.php:580 ../../mod/photos.php:993
-#: ../../mod/photos.php:1080
-msgid "This is you"
-msgstr "Das bist Du"
-
-#: ../../include/ItemObject.php:584
-msgid "Bold"
-msgstr "Fett"
-
-#: ../../include/ItemObject.php:585
-msgid "Italic"
-msgstr "Kursiv"
-
-#: ../../include/ItemObject.php:586
-msgid "Underline"
-msgstr "Unterstrichen"
-
-#: ../../include/ItemObject.php:587
-msgid "Quote"
-msgstr "Zitat"
-
-#: ../../include/ItemObject.php:588
-msgid "Code"
-msgstr "Code"
-
-#: ../../include/ItemObject.php:589
-msgid "Image"
-msgstr "Bild"
-
-#: ../../include/ItemObject.php:590
-msgid "Link"
-msgstr "Link"
-
-#: ../../include/ItemObject.php:591
-msgid "Video"
-msgstr "Video"
-
-#: ../../include/ItemObject.php:595 ../../include/conversation.php:1156
-#: ../../mod/editpost.php:148 ../../mod/mail.php:237 ../../mod/mail.php:351
-msgid "Encrypt text"
-msgstr "Text verschlüsseln"
-
-#: ../../include/security.php:301
-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/text.php:321
msgid "prev"
msgstr "vorherige"
@@ -1996,3840 +3143,4695 @@ msgstr "älter"
msgid "newer"
msgstr "neuer"
-#: ../../include/text.php:730
+#: ../../include/text.php:736
msgid "No connections"
msgstr "Keine Verbindungen"
-#: ../../include/text.php:743
+#: ../../include/text.php:753
#, php-format
msgid "%d Connection"
msgid_plural "%d Connections"
msgstr[0] "%d Verbindung"
msgstr[1] "%d Verbindungen"
-#: ../../include/text.php:756
+#: ../../include/text.php:766
msgid "View Connections"
msgstr "Verbindungen anzeigen"
-#: ../../include/text.php:815 ../../include/text.php:829
-#: ../../include/nav.php:156 ../../include/apps.php:142
-#: ../../mod/search.php:30
-msgid "Search"
-msgstr "Suche"
-
-#: ../../include/text.php:817 ../../include/text.php:831
-#: ../../include/widgets.php:186 ../../mod/filer.php:50
-#: ../../mod/rbmark.php:28 ../../mod/rbmark.php:98
-msgid "Save"
-msgstr "Speichern"
-
-#: ../../include/text.php:897
+#: ../../include/text.php:905
msgid "poke"
msgstr "anstupsen"
-#: ../../include/text.php:897 ../../include/conversation.php:243
-msgid "poked"
-msgstr "stupste"
-
-#: ../../include/text.php:898
+#: ../../include/text.php:906
msgid "ping"
msgstr "anpingen"
-#: ../../include/text.php:898
+#: ../../include/text.php:906
msgid "pinged"
msgstr "pingte"
-#: ../../include/text.php:899
+#: ../../include/text.php:907
msgid "prod"
msgstr "knuffen"
-#: ../../include/text.php:899
+#: ../../include/text.php:907
msgid "prodded"
msgstr "knuffte"
-#: ../../include/text.php:900
+#: ../../include/text.php:908
msgid "slap"
msgstr "ohrfeigen"
-#: ../../include/text.php:900
+#: ../../include/text.php:908
msgid "slapped"
msgstr "ohrfeigte"
-#: ../../include/text.php:901
+#: ../../include/text.php:909
msgid "finger"
msgstr "befummeln"
-#: ../../include/text.php:901
+#: ../../include/text.php:909
msgid "fingered"
msgstr "befummelte"
-#: ../../include/text.php:902
+#: ../../include/text.php:910
msgid "rebuff"
msgstr "eine Abfuhr erteilen"
-#: ../../include/text.php:902
+#: ../../include/text.php:910
msgid "rebuffed"
-msgstr "abfuhrerteilte"
+msgstr "zurückgewiesen"
-#: ../../include/text.php:911
+#: ../../include/text.php:919
msgid "happy"
msgstr "glücklich"
-#: ../../include/text.php:912
+#: ../../include/text.php:920
msgid "sad"
msgstr "traurig"
-#: ../../include/text.php:913
+#: ../../include/text.php:921
msgid "mellow"
msgstr "sanft"
-#: ../../include/text.php:914
+#: ../../include/text.php:922
msgid "tired"
msgstr "müde"
-#: ../../include/text.php:915
+#: ../../include/text.php:923
msgid "perky"
msgstr "frech"
-#: ../../include/text.php:916
+#: ../../include/text.php:924
msgid "angry"
msgstr "sauer"
-#: ../../include/text.php:917
+#: ../../include/text.php:925
msgid "stupified"
msgstr "verblüfft"
-#: ../../include/text.php:918
+#: ../../include/text.php:926
msgid "puzzled"
msgstr "verwirrt"
-#: ../../include/text.php:919
+#: ../../include/text.php:927
msgid "interested"
msgstr "interessiert"
-#: ../../include/text.php:920
+#: ../../include/text.php:928
msgid "bitter"
msgstr "verbittert"
-#: ../../include/text.php:921
+#: ../../include/text.php:929
msgid "cheerful"
msgstr "fröhlich"
-#: ../../include/text.php:922
+#: ../../include/text.php:930
msgid "alive"
msgstr "lebendig"
-#: ../../include/text.php:923
+#: ../../include/text.php:931
msgid "annoyed"
msgstr "verärgert"
-#: ../../include/text.php:924
+#: ../../include/text.php:932
msgid "anxious"
msgstr "unruhig"
-#: ../../include/text.php:925
+#: ../../include/text.php:933
msgid "cranky"
msgstr "schrullig"
-#: ../../include/text.php:926
+#: ../../include/text.php:934
msgid "disturbed"
msgstr "verstört"
-#: ../../include/text.php:927
+#: ../../include/text.php:935
msgid "frustrated"
msgstr "frustriert"
-#: ../../include/text.php:928
+#: ../../include/text.php:936
msgid "depressed"
msgstr "deprimiert"
-#: ../../include/text.php:929
+#: ../../include/text.php:937
msgid "motivated"
msgstr "motiviert"
-#: ../../include/text.php:930
+#: ../../include/text.php:938
msgid "relaxed"
msgstr "entspannt"
-#: ../../include/text.php:931
+#: ../../include/text.php:939
msgid "surprised"
msgstr "überrascht"
-#: ../../include/text.php:1092
+#: ../../include/text.php:1103
msgid "Monday"
msgstr "Montag"
-#: ../../include/text.php:1092
+#: ../../include/text.php:1103
msgid "Tuesday"
msgstr "Dienstag"
-#: ../../include/text.php:1092
+#: ../../include/text.php:1103
msgid "Wednesday"
msgstr "Mittwoch"
-#: ../../include/text.php:1092
+#: ../../include/text.php:1103
msgid "Thursday"
msgstr "Donnerstag"
-#: ../../include/text.php:1092
+#: ../../include/text.php:1103
msgid "Friday"
msgstr "Freitag"
-#: ../../include/text.php:1092
+#: ../../include/text.php:1103
msgid "Saturday"
msgstr "Samstag"
-#: ../../include/text.php:1092
+#: ../../include/text.php:1103
msgid "Sunday"
msgstr "Sonntag"
-#: ../../include/text.php:1096
+#: ../../include/text.php:1107
msgid "January"
msgstr "Januar"
-#: ../../include/text.php:1096
+#: ../../include/text.php:1107
msgid "February"
msgstr "Februar"
-#: ../../include/text.php:1096
+#: ../../include/text.php:1107
msgid "March"
msgstr "März"
-#: ../../include/text.php:1096
+#: ../../include/text.php:1107
msgid "April"
msgstr "April"
-#: ../../include/text.php:1096
+#: ../../include/text.php:1107
msgid "May"
msgstr "Mai"
-#: ../../include/text.php:1096
+#: ../../include/text.php:1107
msgid "June"
msgstr "Juni"
-#: ../../include/text.php:1096
+#: ../../include/text.php:1107
msgid "July"
msgstr "Juli"
-#: ../../include/text.php:1096
+#: ../../include/text.php:1107
msgid "August"
msgstr "August"
-#: ../../include/text.php:1096
+#: ../../include/text.php:1107
msgid "September"
msgstr "September"
-#: ../../include/text.php:1096
+#: ../../include/text.php:1107
msgid "October"
msgstr "Oktober"
-#: ../../include/text.php:1096
+#: ../../include/text.php:1107
msgid "November"
msgstr "November"
-#: ../../include/text.php:1096
+#: ../../include/text.php:1107
msgid "December"
msgstr "Dezember"
-#: ../../include/text.php:1174
+#: ../../include/text.php:1185
msgid "unknown.???"
msgstr "unbekannt.???"
-#: ../../include/text.php:1175
+#: ../../include/text.php:1186
msgid "bytes"
msgstr "Bytes"
-#: ../../include/text.php:1210
+#: ../../include/text.php:1225
msgid "remove category"
msgstr "Kategorie entfernen"
-#: ../../include/text.php:1280
+#: ../../include/text.php:1295
msgid "remove from file"
msgstr "aus der Datei entfernen"
-#: ../../include/text.php:1345 ../../include/text.php:1357
+#: ../../include/text.php:1360 ../../include/text.php:1372
msgid "Click to open/close"
msgstr "Klicke zum Öffnen/Schließen"
-#: ../../include/text.php:1512 ../../mod/events.php:374
+#: ../../include/text.php:1527 ../../mod/events.php:409
msgid "Link to Source"
msgstr "Link zur Quelle"
-#: ../../include/text.php:1531
+#: ../../include/text.php:1546
msgid "Select a page layout: "
msgstr "Ein Seiten-Layout auswählen:"
-#: ../../include/text.php:1534 ../../include/text.php:1599
+#: ../../include/text.php:1549 ../../include/text.php:1614
msgid "default"
msgstr "Standard"
-#: ../../include/text.php:1570
+#: ../../include/text.php:1585
msgid "Page content type: "
msgstr "Content-Typ der Seite:"
-#: ../../include/text.php:1611
+#: ../../include/text.php:1626
msgid "Select an alternate language"
msgstr "Wähle eine alternative Sprache"
-#: ../../include/text.php:1732 ../../include/conversation.php:120
-#: ../../mod/subthread.php:72 ../../mod/subthread.php:174
-#: ../../mod/tagger.php:45 ../../mod/like.php:294
-msgid "photo"
-msgstr "Foto"
-
-#: ../../include/text.php:1735 ../../include/conversation.php:123
-#: ../../mod/tagger.php:49
-msgid "event"
-msgstr "Ereignis"
-
-#: ../../include/text.php:1738 ../../include/conversation.php:148
-#: ../../mod/subthread.php:72 ../../mod/subthread.php:174
-#: ../../mod/tagger.php:53 ../../mod/like.php:294
-msgid "status"
-msgstr "Status"
-
-#: ../../include/text.php:1740 ../../include/conversation.php:150
-#: ../../mod/tagger.php:55
-msgid "comment"
-msgstr "Kommentar"
-
-#: ../../include/text.php:1745
+#: ../../include/text.php:1760
msgid "activity"
msgstr "Aktivität"
-#: ../../include/text.php:2004
+#: ../../include/text.php:2041
msgid "Design"
msgstr "Design"
-#: ../../include/text.php:2006
+#: ../../include/text.php:2044
msgid "Blocks"
msgstr "Blöcke"
-#: ../../include/text.php:2007
+#: ../../include/text.php:2045
msgid "Menus"
msgstr "Menüs"
-#: ../../include/text.php:2008
+#: ../../include/text.php:2046
msgid "Layouts"
msgstr "Layouts"
-#: ../../include/text.php:2009
+#: ../../include/text.php:2047
msgid "Pages"
msgstr "Seiten"
-#: ../../include/dir_fns.php:36
-msgid "Sort Options"
-msgstr "Sortieroptionen"
+#: ../../include/acl_selectors.php:240
+msgid "Visible to your default audience"
+msgstr "Standard-Sichtbarkeit"
-#: ../../include/dir_fns.php:37
-msgid "Alphabetic"
-msgstr "alphabetisch"
+#: ../../include/acl_selectors.php:241
+msgid "Show"
+msgstr "Zeigen"
-#: ../../include/dir_fns.php:38
-msgid "Reverse Alphabetic"
-msgstr "Entgegengesetzt alphabetisch"
+#: ../../include/acl_selectors.php:242
+msgid "Don't show"
+msgstr "Nicht zeigen"
-#: ../../include/dir_fns.php:39
-msgid "Newest to Oldest"
-msgstr "Neueste zuerst"
+#: ../../include/acl_selectors.php:248 ../../mod/events.php:585
+#: ../../mod/chat.php:209 ../../mod/photos.php:588 ../../mod/photos.php:950
+#: ../../mod/filestorage.php:137
+msgid "Permissions"
+msgstr "Berechtigungen"
-#: ../../include/dir_fns.php:51
-msgid "Enable Safe Search"
-msgstr "Sichere Suche einschalten"
+#: ../../include/acl_selectors.php:249 ../../include/ItemObject.php:305
+#: ../../mod/photos.php:1148
+msgid "Close"
+msgstr "Schließen"
-#: ../../include/dir_fns.php:53
-msgid "Disable Safe Search"
-msgstr "Sichere Suche ausschalten"
+#: ../../include/api.php:1084
+msgid "Public Timeline"
+msgstr "Öffentliche Zeitleiste"
-#: ../../include/dir_fns.php:55
-msgid "Safe Mode"
-msgstr "Sicherer Modus"
+#: ../../include/apps.php:126
+msgid "Site Admin"
+msgstr "Hub-Administration"
-#: ../../include/bbcode.php:112 ../../include/bbcode.php:645
-#: ../../include/bbcode.php:648 ../../include/bbcode.php:653
-#: ../../include/bbcode.php:656 ../../include/bbcode.php:659
-#: ../../include/bbcode.php:662 ../../include/bbcode.php:667
-#: ../../include/bbcode.php:670 ../../include/bbcode.php:675
-#: ../../include/bbcode.php:678 ../../include/bbcode.php:681
-#: ../../include/bbcode.php:684
-msgid "Image/photo"
-msgstr "Bild/Foto"
+#: ../../include/apps.php:128
+msgid "Address Book"
+msgstr "Adressbuch"
-#: ../../include/bbcode.php:147 ../../include/bbcode.php:695
-msgid "Encrypted content"
-msgstr "Verschlüsselter Inhalt"
+#: ../../include/apps.php:142 ../../mod/mood.php:131
+msgid "Mood"
+msgstr "Laune"
-#: ../../include/bbcode.php:163
-msgid "QR code"
-msgstr "QR-Code"
+#: ../../include/apps.php:146
+msgid "Probe"
+msgstr "Testen"
-#: ../../include/bbcode.php:212
-#, php-format
-msgid "%1$s wrote the following %2$s %3$s"
-msgstr "%1$s schrieb den folgenden %2$s %3$s"
+#: ../../include/apps.php:147
+msgid "Suggest"
+msgstr "Empfehlen"
-#: ../../include/bbcode.php:214
-msgid "post"
+#: ../../include/apps.php:148
+msgid "Random Channel"
+msgstr "Zufälliger Kanal"
+
+#: ../../include/apps.php:149
+msgid "Invite"
+msgstr "Einladen"
+
+#: ../../include/apps.php:150
+msgid "Features"
+msgstr "Funktionen"
+
+#: ../../include/apps.php:151
+msgid "Language"
+msgstr "Sprache"
+
+#: ../../include/apps.php:152
+msgid "Post"
msgstr "Beitrag"
-#: ../../include/bbcode.php:613 ../../include/bbcode.php:633
-msgid "$1 wrote:"
-msgstr "$1 schrieb:"
+#: ../../include/apps.php:153
+msgid "Profile Photo"
+msgstr "Profilfoto"
-#: ../../include/enotify.php:41
-msgid "Red Matrix Notification"
-msgstr "Red Matrix Benachrichtigung"
+#: ../../include/apps.php:242 ../../mod/settings.php:81
+#: ../../mod/settings.php:575
+msgid "Update"
+msgstr "Aktualisieren"
-#: ../../include/enotify.php:42
-msgid "redmatrix"
-msgstr "redmatrix"
+#: ../../include/apps.php:242
+msgid "Install"
+msgstr "Installieren"
-#: ../../include/enotify.php:44
-msgid "Thank You,"
-msgstr "Danke."
+#: ../../include/apps.php:247
+msgid "Purchase"
+msgstr "Kaufen"
-#: ../../include/enotify.php:46
-#, php-format
-msgid "%s Administrator"
-msgstr "%s Administrator"
+#: ../../include/ItemObject.php:130
+msgid "Save to Folder"
+msgstr "In Ordner speichern"
-#: ../../include/enotify.php:81
-#, php-format
-msgid "%s <!item_type!>"
-msgstr "%s <!item_type!>"
+#: ../../include/ItemObject.php:142 ../../include/ItemObject.php:154
+#: ../../mod/photos.php:1022 ../../mod/photos.php:1034
+msgid "View all"
+msgstr "Alles anzeigen"
-#: ../../include/enotify.php:85
-#, php-format
-msgid "[Red:Notify] New mail received at %s"
-msgstr "[Red Notify] Neue Mail auf %s empfangen"
+#: ../../include/ItemObject.php:151 ../../mod/photos.php:1031
+msgctxt "noun"
+msgid "Dislike"
+msgid_plural "Dislikes"
+msgstr[0] "Gefällt nicht"
+msgstr[1] "Gefällt nicht"
-#: ../../include/enotify.php:87
-#, 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/ItemObject.php:179
+msgid "Add Star"
+msgstr "Stern hinzufügen"
-#: ../../include/enotify.php:88
-#, php-format
-msgid "%1$s sent you %2$s."
-msgstr "%1$s hat Dir %2$s geschickt."
+#: ../../include/ItemObject.php:180
+msgid "Remove Star"
+msgstr "Stern entfernen"
-#: ../../include/enotify.php:88
-msgid "a private message"
-msgstr "eine private Nachricht"
+#: ../../include/ItemObject.php:181
+msgid "Toggle Star Status"
+msgstr "Markierungsstatus (Stern) umschalten"
-#: ../../include/enotify.php:89
-#, 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/ItemObject.php:185
+msgid "starred"
+msgstr "markiert"
-#: ../../include/enotify.php:144
-#, 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/ItemObject.php:203
+msgid "Add Tag"
+msgstr "Tag hinzufügen"
-#: ../../include/enotify.php:152
-#, 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/ItemObject.php:221 ../../mod/photos.php:974
+msgid "I like this (toggle)"
+msgstr "Mir gefällt das (Umschalter)"
-#: ../../include/enotify.php:161
-#, 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/ItemObject.php:222 ../../mod/photos.php:975
+msgid "I don't like this (toggle)"
+msgstr "Mir gefällt das nicht (Umschalter)"
-#: ../../include/enotify.php:172
-#, 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/ItemObject.php:226
+msgid "Share This"
+msgstr "Teilen"
-#: ../../include/enotify.php:173
-#, 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/ItemObject.php:226
+msgid "share"
+msgstr "Teilen"
-#: ../../include/enotify.php:176 ../../include/enotify.php:191
-#: ../../include/enotify.php:217 ../../include/enotify.php:236
-#: ../../include/enotify.php:250
+#: ../../include/ItemObject.php:249 ../../include/ItemObject.php:250
#, 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."
+msgid "View %s's profile - %s"
+msgstr "Schaue Dir %ss Profil an – %s"
-#: ../../include/enotify.php:182
-#, php-format
-msgid "[Red:Notify] %s posted to your profile wall"
-msgstr "[Red:Hinweis] %s schrieb auf Deine Pinnwand"
+#: ../../include/ItemObject.php:251
+msgid "to"
+msgstr "an"
-#: ../../include/enotify.php:184
-#, 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/ItemObject.php:252
+msgid "via"
+msgstr "via"
-#: ../../include/enotify.php:186
-#, 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/ItemObject.php:253
+msgid "Wall-to-Wall"
+msgstr "Wall-to-Wall"
-#: ../../include/enotify.php:210
-#, php-format
-msgid "[Red:Notify] %s tagged you"
-msgstr "[Red Notify] %s hat Dich getaggt"
+#: ../../include/ItemObject.php:254
+msgid "via Wall-To-Wall:"
+msgstr "via Wall-To-Wall:"
-#: ../../include/enotify.php:211
-#, 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/ItemObject.php:290
+msgid "Save Bookmarks"
+msgstr "Favoriten speichern"
-#: ../../include/enotify.php:212
-#, 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/ItemObject.php:291
+msgid "Add to Calendar"
+msgstr "Zum Kalender hinzufügen"
-#: ../../include/enotify.php:225
-#, php-format
-msgid "[Red:Notify] %1$s poked you"
-msgstr "[Red Notify] %1$s hat Dich angestupst"
+#: ../../include/ItemObject.php:299 ../../mod/photos.php:1142
+msgctxt "noun"
+msgid "Likes"
+msgstr "Gefällt mir"
-#: ../../include/enotify.php:226
-#, php-format
-msgid "%1$s, %2$s poked you at %3$s"
-msgstr "%1$s, %2$s hat Dich auf %3$s angestupst"
+#: ../../include/ItemObject.php:300 ../../mod/photos.php:1143
+msgctxt "noun"
+msgid "Dislikes"
+msgstr "Gefällt nicht"
-#: ../../include/enotify.php:227
+#: ../../include/ItemObject.php:331
#, 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]."
+msgid "%d comment"
+msgid_plural "%d comments"
+msgstr[0] "%d Kommentar"
+msgstr[1] "%d Kommentare"
-#: ../../include/enotify.php:243
-#, php-format
-msgid "[Red:Notify] %s tagged your post"
-msgstr "[Red:Hinweis] %s hat Deinen Beitrag getaggt"
+#: ../../include/ItemObject.php:596 ../../mod/photos.php:993
+#: ../../mod/photos.php:1103
+msgid "This is you"
+msgstr "Das bist Du"
-#: ../../include/enotify.php:244
-#, 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/ItemObject.php:599 ../../mod/mood.php:135
+#: ../../mod/profiles.php:633 ../../mod/connect.php:92 ../../mod/setup.php:313
+#: ../../mod/setup.php:358 ../../mod/poke.php:166 ../../mod/sources.php:104
+#: ../../mod/sources.php:138 ../../mod/events.php:587 ../../mod/chat.php:177
+#: ../../mod/chat.php:211 ../../mod/photos.php:594 ../../mod/photos.php:671
+#: ../../mod/photos.php:956 ../../mod/photos.php:996 ../../mod/photos.php:1106
+#: ../../mod/connedit.php:555 ../../mod/thing.php:284 ../../mod/thing.php:327
+#: ../../mod/pdledit.php:58 ../../mod/settings.php:549
+#: ../../mod/settings.php:661 ../../mod/settings.php:690
+#: ../../mod/settings.php:714 ../../mod/settings.php:790
+#: ../../mod/settings.php:976 ../../mod/fsuggest.php:108
+#: ../../mod/filestorage.php:146 ../../mod/group.php:81
+#: ../../mod/import.php:480 ../../mod/admin.php:412 ../../mod/admin.php:723
+#: ../../mod/admin.php:859 ../../mod/admin.php:992 ../../mod/admin.php:1191
+#: ../../mod/admin.php:1278 ../../mod/invite.php:142 ../../mod/locs.php:99
+#: ../../mod/mail.php:348 ../../mod/xchan.php:11 ../../mod/appman.php:99
+#: ../../mod/poll.php:68 ../../view/theme/apw/php/config.php:256
+#: ../../view/theme/blogga/php/config.php:67
+#: ../../view/theme/blogga/view/theme/blog/config.php:67
+#: ../../view/theme/redbasic/php/config.php:99
+msgid "Submit"
+msgstr "Bestätigen"
-#: ../../include/enotify.php:245
-#, 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/ItemObject.php:600
+msgid "Bold"
+msgstr "Fett"
-#: ../../include/enotify.php:257
-msgid "[Red:Notify] Introduction received"
-msgstr "[Red:Notify] Vorstellung erhalten"
+#: ../../include/ItemObject.php:601
+msgid "Italic"
+msgstr "Kursiv"
-#: ../../include/enotify.php:258
-#, php-format
-msgid "%1$s, you've received an new connection request from '%2$s' at %3$s"
-msgstr "%1$s, Du hast eine neue Verbindungsanfrage von '%2$s' auf %3$s erhalten"
+#: ../../include/ItemObject.php:602
+msgid "Underline"
+msgstr "Unterstrichen"
-#: ../../include/enotify.php:259
-#, php-format
-msgid ""
-"%1$s, you've received [zrl=%2$s]a new connection request[/zrl] from %3$s."
-msgstr "%1$s, Du hast [zrl=%2$s]eine neue Verbindungsanfrage[/zrl] von %3$s erhalten."
+#: ../../include/ItemObject.php:603
+msgid "Quote"
+msgstr "Zitat"
-#: ../../include/enotify.php:263 ../../include/enotify.php:282
-#, php-format
-msgid "You may visit their profile at %s"
-msgstr "Du kannst Dir das Profil unter %s ansehen"
+#: ../../include/ItemObject.php:604
+msgid "Code"
+msgstr "Code"
-#: ../../include/enotify.php:265
-#, php-format
-msgid "Please visit %s to approve or reject the connection request."
-msgstr "Bitte besuche %s um die Verbindungsanfrage anzunehmen oder abzulehnen."
+#: ../../include/ItemObject.php:605
+msgid "Image"
+msgstr "Bild"
-#: ../../include/enotify.php:272
-msgid "[Red:Notify] Friend suggestion received"
-msgstr "[Red:Benachrichtigung] Freundschaftsvorschlag erhalten"
+#: ../../include/ItemObject.php:606
+msgid "Link"
+msgstr "Link"
-#: ../../include/enotify.php:273
-#, 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/ItemObject.php:607
+msgid "Video"
+msgstr "Video"
-#: ../../include/enotify.php:274
-#, 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."
+#: ../../mod/mood.php:132
+msgid "Set your current mood and tell your friends"
+msgstr "Wähle Deine aktuelle Stimmung und teile sie mit Deinen Freunden"
-#: ../../include/enotify.php:280
-msgid "Name:"
-msgstr "Name:"
+#: ../../mod/profperm.php:29 ../../mod/profperm.php:58
+msgid "Invalid profile identifier."
+msgstr "Ungültiger Profil-Identifikator"
-#: ../../include/enotify.php:281
-msgid "Photo:"
-msgstr "Foto:"
+#: ../../mod/profperm.php:110
+msgid "Profile Visibility Editor"
+msgstr "Profil-Sichtbarkeits-Editor"
-#: ../../include/enotify.php:284
-#, php-format
-msgid "Please visit %s to approve or reject the suggestion."
-msgstr "Bitte besuche %s um den Vorschlag zu akzeptieren oder abzulehnen."
+#: ../../mod/profperm.php:114
+msgid "Click on a contact to add or remove."
+msgstr "Klicke auf einen Kontakt, um ihn hinzuzufügen oder zu entfernen."
-#: ../../include/bookmarks.php:35
-#, php-format
-msgid "%1$s's bookmarks"
-msgstr "%1$ss Lesezeichen"
+#: ../../mod/profperm.php:123
+msgid "Visible To"
+msgstr "Sichtbar für"
-#: ../../include/nav.php:81 ../../include/nav.php:108
-msgid "End this session"
-msgstr "Beende diese Sitzung"
+#: ../../mod/profperm.php:139 ../../mod/connections.php:279
+msgid "All Connections"
+msgstr "Alle Verbindungen"
-#: ../../include/nav.php:84 ../../include/nav.php:142
-msgid "Home"
-msgstr "Home"
+#: ../../mod/mitem.php:24 ../../mod/menu.php:108
+msgid "Menu not found."
+msgstr "Menü nicht gefunden"
-#: ../../include/nav.php:84
-msgid "Your posts and conversations"
-msgstr "Deine Beiträge und Unterhaltungen"
+#: ../../mod/mitem.php:67
+msgid "Menu element updated."
+msgstr "Menü-Element aktualisiert."
-#: ../../include/nav.php:85 ../../include/conversation.php:940
-#: ../../mod/connedit.php:393 ../../mod/connedit.php:507
-msgid "View Profile"
-msgstr "Profil ansehen"
+#: ../../mod/mitem.php:71
+msgid "Unable to update menu element."
+msgstr "Kann Menü-Element nicht aktualisieren."
-#: ../../include/nav.php:85
-msgid "Your profile page"
-msgstr "Deine Profilseite"
+#: ../../mod/mitem.php:77
+msgid "Menu element added."
+msgstr "Menü-Bestandteil hinzugefügt."
-#: ../../include/nav.php:87
-msgid "Edit Profiles"
-msgstr "Profile bearbeiten"
+#: ../../mod/mitem.php:81
+msgid "Unable to add menu element."
+msgstr "Kann Menü-Bestandteil nicht hinzufügen."
-#: ../../include/nav.php:87
-msgid "Manage/Edit profiles"
-msgstr "Profile verwalten"
+#: ../../mod/mitem.php:111 ../../mod/menu.php:136 ../../mod/xchan.php:37
+msgid "Not found."
+msgstr "Nicht gefunden."
-#: ../../include/nav.php:89
-msgid "Edit your profile"
-msgstr "Profil bearbeiten"
+#: ../../mod/mitem.php:127
+msgid "Manage Menu Elements"
+msgstr "Menü-Bestandteile verwalten"
-#: ../../include/nav.php:91 ../../include/apps.php:134
-#: ../../include/conversation.php:1512 ../../mod/fbrowser.php:25
-msgid "Photos"
-msgstr "Fotos"
+#: ../../mod/mitem.php:130
+msgid "Edit menu"
+msgstr "Menü bearbeiten"
-#: ../../include/nav.php:91
-msgid "Your photos"
-msgstr "Deine Bilder"
+#: ../../mod/mitem.php:133
+msgid "Edit element"
+msgstr "Bestandteil bearbeiten"
-#: ../../include/nav.php:92
-msgid "Your files"
-msgstr "Deine Dateien"
+#: ../../mod/mitem.php:134
+msgid "Drop element"
+msgstr "Bestandteil löschen"
-#: ../../include/nav.php:97 ../../include/apps.php:141
-msgid "Chat"
-msgstr "Chat"
+#: ../../mod/mitem.php:135
+msgid "New element"
+msgstr "Neues Bestandteil"
-#: ../../include/nav.php:97
-msgid "Your chatrooms"
-msgstr "Deine Chaträume"
+#: ../../mod/mitem.php:136
+msgid "Edit this menu container"
+msgstr "Diesen Menü-Container bearbeiten"
-#: ../../include/nav.php:100 ../../include/apps.php:124
-#: ../../include/conversation.php:1543
-msgid "Bookmarks"
-msgstr "Lesezeichen"
+#: ../../mod/mitem.php:137
+msgid "Add menu element"
+msgstr "Menüelement hinzufügen"
-#: ../../include/nav.php:100
-msgid "Your bookmarks"
-msgstr "Deine Lesezeichen"
+#: ../../mod/mitem.php:138
+msgid "Delete this menu item"
+msgstr "Lösche dieses Menü-Bestandteil"
-#: ../../include/nav.php:102 ../../include/apps.php:131
-#: ../../include/conversation.php:1554 ../../mod/webpages.php:79
-msgid "Webpages"
-msgstr "Webseiten"
+#: ../../mod/mitem.php:139
+msgid "Edit this menu item"
+msgstr "Bearbeite dieses Menü-Bestandteil"
-#: ../../include/nav.php:102
-msgid "Your webpages"
-msgstr "Deine Webseiten"
+#: ../../mod/mitem.php:158
+msgid "New Menu Element"
+msgstr "Neues Menü-Bestandteil"
-#: ../../include/nav.php:106
-msgid "Sign in"
-msgstr "Anmelden"
+#: ../../mod/mitem.php:160 ../../mod/mitem.php:203
+msgid "Menu Item Permissions"
+msgstr "Zugriffsrechte des Menü-Elements"
-#: ../../include/nav.php:123
-#, php-format
-msgid "%s - click to logout"
-msgstr "%s - Klick zum Abmelden"
+#: ../../mod/mitem.php:161 ../../mod/mitem.php:204 ../../mod/settings.php:1011
+msgid "(click to open/close)"
+msgstr "(zum öffnen/schließen anklicken)"
-#: ../../include/nav.php:128
-msgid "Click to authenticate to your home hub"
-msgstr "Klicke, um Dich über Deinen Heimat-Server zu authentifizieren"
+#: ../../mod/mitem.php:163 ../../mod/mitem.php:207
+msgid "Link text"
+msgstr "Link Text"
-#: ../../include/nav.php:142
-msgid "Home Page"
-msgstr "Homepage"
+#: ../../mod/mitem.php:164 ../../mod/mitem.php:208
+msgid "URL of link"
+msgstr "URL des Links"
-#: ../../include/nav.php:146
-msgid "Create an account"
-msgstr "Erzeuge ein Konto"
+#: ../../mod/mitem.php:165 ../../mod/mitem.php:209
+msgid "Use RedMatrix magic-auth if available"
+msgstr "Verwende die automatische RedMatrix-Authentifizierung (magic-auth), wenn verfügbar"
-#: ../../include/nav.php:151 ../../include/apps.php:137 ../../mod/help.php:60
-#: ../../mod/help.php:65
-msgid "Help"
-msgstr "Hilfe"
+#: ../../mod/mitem.php:166 ../../mod/mitem.php:210
+msgid "Open link in new window"
+msgstr "Öffne Link in neuem Fenster"
-#: ../../include/nav.php:151
-msgid "Help and documentation"
-msgstr "Hilfe und Dokumentation"
+#: ../../mod/mitem.php:168 ../../mod/mitem.php:212
+msgid "Order in list"
+msgstr "Reihenfolge in der Liste"
-#: ../../include/nav.php:154 ../../include/widgets.php:79
-#: ../../mod/apps.php:33
-msgid "Apps"
-msgstr "Apps"
+#: ../../mod/mitem.php:168 ../../mod/mitem.php:212
+msgid "Higher numbers will sink to bottom of listing"
+msgstr "Größere Nummern werden weiter unten in der Auflistung einsortiert"
-#: ../../include/nav.php:154
-msgid "Applications, utilities, links, games"
-msgstr "Applikationen, Zubehör, Links, Spiele"
+#: ../../mod/mitem.php:181
+msgid "Menu item not found."
+msgstr "Menü-Bestandteil nicht gefunden."
-#: ../../include/nav.php:156
-msgid "Search site content"
-msgstr "Durchsuche Seiten-Inhalt"
+#: ../../mod/mitem.php:190
+msgid "Menu item deleted."
+msgstr "Menü-Bestandteil gelöscht."
-#: ../../include/nav.php:159 ../../include/apps.php:136
-#: ../../mod/directory.php:226
-msgid "Directory"
-msgstr "Verzeichnis"
+#: ../../mod/mitem.php:192
+msgid "Menu item could not be deleted."
+msgstr "Menü-Bestandteil kann nicht gelöscht werden."
-#: ../../include/nav.php:159
-msgid "Channel Locator"
-msgstr "Kanal-Anzeiger"
+#: ../../mod/mitem.php:201
+msgid "Edit Menu Element"
+msgstr "Bearbeite Menü-Bestandteil"
-#: ../../include/nav.php:170 ../../include/apps.php:128
-msgid "Matrix"
-msgstr "Matrix"
+#: ../../mod/mitem.php:213 ../../mod/menu.php:130
+msgid "Modify"
+msgstr "Ändern"
-#: ../../include/nav.php:170
-msgid "Your matrix"
-msgstr "Deine Matrix"
+#: ../../mod/achievements.php:34
+msgid "Some blurb about what to do when you're new here"
+msgstr "Ein Hinweis, was man tun kann, wenn man neu hier ist"
-#: ../../include/nav.php:171
-msgid "Mark all matrix notifications seen"
-msgstr "Markiere alle Matrix-Benachrichtigungen als angesehen"
+#: ../../mod/profiles.php:18 ../../mod/profiles.php:165
+#: ../../mod/profiles.php:222 ../../mod/profiles.php:565
+msgid "Profile not found."
+msgstr "Profil nicht gefunden."
-#: ../../include/nav.php:173 ../../include/apps.php:132
-msgid "Channel Home"
-msgstr "Mein Kanal"
+#: ../../mod/profiles.php:38
+msgid "Profile deleted."
+msgstr "Profil gelöscht."
-#: ../../include/nav.php:173
-msgid "Channel home"
-msgstr "Mein Kanal"
+#: ../../mod/profiles.php:56 ../../mod/profiles.php:92
+msgid "Profile-"
+msgstr "Profil-"
-#: ../../include/nav.php:174
-msgid "Mark all channel notifications seen"
-msgstr "Markiere alle Kanal-Benachrichtigungen als angesehen"
+#: ../../mod/profiles.php:77 ../../mod/profiles.php:120
+msgid "New profile created."
+msgstr "Neues Profil erstellt."
-#: ../../include/nav.php:177 ../../mod/connections.php:386
-msgid "Connections"
-msgstr "Verbindungen"
+#: ../../mod/profiles.php:98
+msgid "Profile unavailable to clone."
+msgstr "Profil kann nicht geklont werden."
-#: ../../include/nav.php:180
-msgid "Notices"
-msgstr "Benachrichtigungen"
+#: ../../mod/profiles.php:136
+msgid "Profile unavailable to export."
+msgstr "Dieses Profil kann nicht exportiert werden."
-#: ../../include/nav.php:180
-msgid "Notifications"
-msgstr "Benachrichtigungen"
+#: ../../mod/profiles.php:232
+msgid "Profile Name is required."
+msgstr "Profil-Name erforderlich."
-#: ../../include/nav.php:181
-msgid "See all notifications"
-msgstr "Alle Benachrichtigungen ansehen"
+#: ../../mod/profiles.php:378
+msgid "Marital Status"
+msgstr "Familienstand"
-#: ../../include/nav.php:182 ../../mod/notifications.php:99
-msgid "Mark all system notifications seen"
-msgstr "Markiere alle System-Benachrichtigungen als gesehen"
+#: ../../mod/profiles.php:382
+msgid "Romantic Partner"
+msgstr "Romantische Partner"
-#: ../../include/nav.php:184 ../../include/apps.php:138
-msgid "Mail"
-msgstr "Mail"
+#: ../../mod/profiles.php:386
+msgid "Likes"
+msgstr "Gefällt"
-#: ../../include/nav.php:184
-msgid "Private mail"
-msgstr "Persönliche Mail"
+#: ../../mod/profiles.php:390
+msgid "Dislikes"
+msgstr "Gefällt nicht"
-#: ../../include/nav.php:185
-msgid "See all private messages"
-msgstr "Alle persönlichen Nachrichten ansehen"
+#: ../../mod/profiles.php:394
+msgid "Work/Employment"
+msgstr "Arbeit/Anstellung"
-#: ../../include/nav.php:186
-msgid "Mark all private messages seen"
-msgstr "Markiere alle persönlichen Nachrichten als gesehen"
+#: ../../mod/profiles.php:397
+msgid "Religion"
+msgstr "Religion"
-#: ../../include/nav.php:187
-msgid "Inbox"
-msgstr "Eingang"
+#: ../../mod/profiles.php:401
+msgid "Political Views"
+msgstr "Politische Ansichten"
-#: ../../include/nav.php:188
-msgid "Outbox"
-msgstr "Ausgang"
+#: ../../mod/profiles.php:405
+msgid "Gender"
+msgstr "Geschlecht"
-#: ../../include/nav.php:189 ../../include/widgets.php:536
-msgid "New Message"
-msgstr "Neue Nachricht"
+#: ../../mod/profiles.php:409
+msgid "Sexual Preference"
+msgstr "Sexuelle Orientierung"
-#: ../../include/nav.php:192 ../../include/apps.php:135
-#: ../../mod/events.php:396
-msgid "Events"
-msgstr "Veranstaltungen"
+#: ../../mod/profiles.php:413
+msgid "Homepage"
+msgstr "Webseite"
-#: ../../include/nav.php:192
-msgid "Event Calendar"
-msgstr "Veranstaltungskalender"
+#: ../../mod/profiles.php:417
+msgid "Interests"
+msgstr "Hobbys/Interessen"
-#: ../../include/nav.php:193
-msgid "See all events"
-msgstr "Alle Ereignisse ansehen"
+#: ../../mod/profiles.php:421 ../../mod/admin.php:866
+msgid "Address"
+msgstr "Adresse"
-#: ../../include/nav.php:194
-msgid "Mark all events seen"
-msgstr "Markiere alle Ereignisse als gesehen"
+#: ../../mod/profiles.php:428 ../../mod/pubsites.php:25
+msgid "Location"
+msgstr "Ort"
-#: ../../include/nav.php:196 ../../include/apps.php:127
-msgid "Channel Select"
-msgstr "Kanal-Auswahl"
+#: ../../mod/profiles.php:511
+msgid "Profile updated."
+msgstr "Profil aktualisiert."
-#: ../../include/nav.php:196
-msgid "Manage Your Channels"
-msgstr "Verwalte Deine Kanäle"
+#: ../../mod/profiles.php:590
+msgid "Hide your contact/friend list from viewers of this profile?"
+msgstr "Deine Kontaktliste vor Betrachtern dieses Profils verbergen?"
-#: ../../include/nav.php:198 ../../include/apps.php:129
-#: ../../include/widgets.php:514 ../../mod/admin.php:978
-#: ../../mod/admin.php:1183
-msgid "Settings"
-msgstr "Einstellungen"
+#: ../../mod/profiles.php:591 ../../mod/api.php:105 ../../mod/settings.php:916
+#: ../../mod/settings.php:921 ../../mod/settings.php:1004
+#: ../../mod/admin.php:392
+msgid "Yes"
+msgstr "Ja"
-#: ../../include/nav.php:198
-msgid "Account/Channel Settings"
-msgstr "Konto-/Kanal-Einstellungen"
+#: ../../mod/profiles.php:592 ../../mod/api.php:106 ../../mod/settings.php:916
+#: ../../mod/settings.php:921 ../../mod/settings.php:1004
+#: ../../mod/admin.php:390
+msgid "No"
+msgstr "Nein"
-#: ../../include/nav.php:206 ../../mod/admin.php:117
-msgid "Admin"
-msgstr "Admin"
+#: ../../mod/profiles.php:632
+msgid "Edit Profile Details"
+msgstr "Bearbeite Profil-Details"
-#: ../../include/nav.php:206
-msgid "Site Setup and Configuration"
-msgstr "Seiten-Einrichtung und -Konfiguration"
+#: ../../mod/profiles.php:634
+msgid "View this profile"
+msgstr "Dieses Profil ansehen"
-#: ../../include/nav.php:231
-msgid "Nothing new here"
-msgstr "Nichts Neues hier"
+#: ../../mod/profiles.php:636
+msgid "Change Profile Photo"
+msgstr "Profilfoto ändern"
-#: ../../include/nav.php:235
-msgid "Please wait..."
-msgstr "Bitte warten..."
+#: ../../mod/profiles.php:637
+msgid "Create a new profile using these settings"
+msgstr "Neues Profil anlegen und diese Einstellungen übernehmen"
-#: ../../include/features.php:23
-msgid "General Features"
-msgstr "Allgemeine Funktionen"
+#: ../../mod/profiles.php:638
+msgid "Clone this profile"
+msgstr "Dieses Profil klonen"
-#: ../../include/features.php:25
-msgid "Content Expiration"
-msgstr "Verfall von Inhalten"
+#: ../../mod/profiles.php:639
+msgid "Delete this profile"
+msgstr "Dieses Profil löschen"
-#: ../../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."
+#: ../../mod/profiles.php:641
+msgid "Import profile from file"
+msgstr "Profil aus einer Datei importieren"
-#: ../../include/features.php:26
-msgid "Multiple Profiles"
-msgstr "Mehrfachprofile"
+#: ../../mod/profiles.php:642
+msgid "Export profile to file"
+msgstr "Profil in eine Datei exportieren"
-#: ../../include/features.php:26
-msgid "Ability to create multiple profiles"
-msgstr "Mehrfachprofile anlegen können"
+#: ../../mod/profiles.php:643
+msgid "Profile Name:"
+msgstr "Profilname:"
-#: ../../include/features.php:27
-msgid "Advanced Profiles"
-msgstr "Erweiterte Profile"
+#: ../../mod/profiles.php:644
+msgid "Your Full Name:"
+msgstr "Dein voller Name:"
-#: ../../include/features.php:27
-msgid "Additional profile sections and selections"
-msgstr "Stellt zusätzliche Felder im Profil zur Verfügung"
+#: ../../mod/profiles.php:645
+msgid "Title/Description:"
+msgstr "Titel/Stellenbeschreibung:"
-#: ../../include/features.php:28
-msgid "Profile Import/Export"
-msgstr "Profil-Import/Export"
+#: ../../mod/profiles.php:646
+msgid "Your Gender:"
+msgstr "Dein Geschlecht:"
-#: ../../include/features.php:28
-msgid "Save and load profile details across sites/channels"
-msgstr "Speichere Dein Profil, um es in einen anderen Kanal zu importieren"
+#: ../../mod/profiles.php:647
+msgid "Birthday :"
+msgstr "Geburtstag:"
-#: ../../include/features.php:29
-msgid "Web Pages"
-msgstr "Webseiten"
+#: ../../mod/profiles.php:648
+msgid "Street Address:"
+msgstr "Straße und Hausnummer:"
-#: ../../include/features.php:29
-msgid "Provide managed web pages on your channel"
-msgstr "Stelle verwaltete Webseiten in Deinem Kanal zur Verfügung"
+#: ../../mod/profiles.php:649
+msgid "Locality/City:"
+msgstr "Wohnort:"
-#: ../../include/features.php:30
-msgid "Private Notes"
-msgstr "Private Notizen"
+#: ../../mod/profiles.php:650
+msgid "Postal/Zip Code:"
+msgstr "Postleitzahl:"
-#: ../../include/features.php:30
-msgid "Enables a tool to store notes and reminders"
-msgstr "Werkzeug zum Speichern von Notizen und Erinnerungen aktivieren"
+#: ../../mod/profiles.php:651
+msgid "Country:"
+msgstr "Land:"
-#: ../../include/features.php:35
-msgid "Extended Identity Sharing"
-msgstr "Erweitertes Teilen von Identitäten"
+#: ../../mod/profiles.php:652
+msgid "Region/State:"
+msgstr "Region/Bundesstaat:"
+
+#: ../../mod/profiles.php:653
+msgid "<span class=\"heart\">&hearts;</span> Marital Status:"
+msgstr "<span class=\"heart\">&hearts;</span> Beziehungsstatus:"
+
+#: ../../mod/profiles.php:654
+msgid "Who: (if applicable)"
+msgstr "Wer: (falls anwendbar)"
+
+#: ../../mod/profiles.php:655
+msgid "Examples: cathy123, Cathy Williams, cathy@example.com"
+msgstr "Beispiele: cathy123, Cathy Williams, cathy@example.com"
+
+#: ../../mod/profiles.php:656
+msgid "Since [date]:"
+msgstr "Seit [Datum]:"
+
+#: ../../mod/profiles.php:658
+msgid "Homepage URL:"
+msgstr "Homepage URL:"
+
+#: ../../mod/profiles.php:661
+msgid "Religious Views:"
+msgstr "Religiöse Ansichten:"
+
+#: ../../mod/profiles.php:662
+msgid "Keywords:"
+msgstr "Schlüsselwörter:"
+
+#: ../../mod/profiles.php:665
+msgid "Example: fishing photography software"
+msgstr "Beispiel: Angeln Fotografie Software"
+
+#: ../../mod/profiles.php:666
+msgid "Used in directory listings"
+msgstr "Wird in Verzeichnis-Auflistungen verwendet"
+
+#: ../../mod/profiles.php:667
+msgid "Tell us about yourself..."
+msgstr "Erzähle uns ein wenig von Dir …"
+
+#: ../../mod/profiles.php:668
+msgid "Hobbies/Interests"
+msgstr "Hobbys/Interessen"
+
+#: ../../mod/profiles.php:669
+msgid "Contact information and Social Networks"
+msgstr "Kontaktinformation und soziale Netzwerke"
+
+#: ../../mod/profiles.php:670
+msgid "My other channels"
+msgstr "Meine anderen Kanäle"
+
+#: ../../mod/profiles.php:671
+msgid "Musical interests"
+msgstr "Musikalische Interessen"
+
+#: ../../mod/profiles.php:672
+msgid "Books, literature"
+msgstr "Bücher, Literatur"
+
+#: ../../mod/profiles.php:673
+msgid "Television"
+msgstr "Fernsehen"
+
+#: ../../mod/profiles.php:674
+msgid "Film/dance/culture/entertainment"
+msgstr "Film/Tanz/Kultur/Unterhaltung"
+
+#: ../../mod/profiles.php:675
+msgid "Love/romance"
+msgstr "Liebe/Romantik"
+
+#: ../../mod/profiles.php:676
+msgid "Work/employment"
+msgstr "Arbeit/Anstellung"
+
+#: ../../mod/profiles.php:677
+msgid "School/education"
+msgstr "Schule/Ausbildung"
+
+#: ../../mod/profiles.php:683
+msgid "This is your default profile."
+msgstr "Das ist Dein Standardprofil."
+
+#: ../../mod/profiles.php:694 ../../mod/directory.php:148
+msgid "Age: "
+msgstr "Alter:"
+
+#: ../../mod/profiles.php:737
+msgid "Edit/Manage Profiles"
+msgstr "Profile bearbeiten/verwalten"
+
+#: ../../mod/profiles.php:738
+msgid "Add profile things"
+msgstr "Sachen zum Profil hinzufügen"
+
+#: ../../mod/profiles.php:739
+msgid "Include desirable objects in your profile"
+msgstr "Binde begehrenswerte Dinge in Dein Profil ein"
+
+#: ../../mod/connect.php:55 ../../mod/connect.php:103
+msgid "Continue"
+msgstr "Fortfahren"
+
+#: ../../mod/connect.php:84
+msgid "Premium Channel Setup"
+msgstr "Premium-Kanal-Einrichtung"
+
+#: ../../mod/connect.php:86
+msgid "Enable premium channel connection restrictions"
+msgstr "Einschränkungen für einen Premium-Kanal aktivieren"
-#: ../../include/features.php:35
+#: ../../mod/connect.php:87
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."
+"Please enter your restrictions or conditions, such as paypal receipt, usage "
+"guidelines, etc."
+msgstr "Bitte gib Deine Nutzungsbedingungen ein, z.B. Paypal-Quittung, Richtlinien etc."
-#: ../../include/features.php:36
-msgid "Expert Mode"
-msgstr "Expertenmodus"
+#: ../../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."
-#: ../../include/features.php:36
-msgid "Enable Expert Mode to provide advanced configuration options"
-msgstr "Aktiviere den Expertenmodus, um fortgeschrittene Konfigurationsoptionen zu aktivieren"
+#: ../../mod/connect.php:90
+msgid ""
+"Potential connections will then see the following text before proceeding:"
+msgstr "Potentielle Kontakte werden den folgenden Text sehen, bevor fortgefahren wird:"
-#: ../../include/features.php:37
-msgid "Premium Channel"
-msgstr "Premium-Kanal"
+#: ../../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 "Indem ich fortfahre, bestätige ich die Erfüllung aller Anweisungen auf dieser Seite."
+
+#: ../../mod/connect.php:100
+msgid "(No specific instructions have been provided by the channel owner.)"
+msgstr "(Der Kanal-Besitzer hat keine speziellen Anweisungen hinterlegt.)"
-#: ../../include/features.php:37
+#: ../../mod/connect.php:108
+msgid "Restricted or Premium Channel"
+msgstr "Eingeschränkter oder Premium-Kanal"
+
+#: ../../mod/post.php:229
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"
+"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."
-#: ../../include/features.php:42
-msgid "Post Composition Features"
-msgstr "Nachbearbeitungsfunktionen"
+#: ../../mod/post.php:261 ../../mod/openid.php:72 ../../mod/openid.php:180
+#, php-format
+msgid "Welcome %s. Remote authentication successful."
+msgstr "Willkommen %s. Entfernte Authentifizierung erfolgreich."
-#: ../../include/features.php:44
-msgid "Use Markdown"
-msgstr "Markdown benutzen"
+#: ../../mod/setup.php:166
+msgid "Red Matrix Server - Setup"
+msgstr "Red Matrix Server - Installation"
-#: ../../include/features.php:44
-msgid "Allow use of \"Markdown\" to format posts"
-msgstr "Erlaube Markdown zur Formatierung von Beiträgen"
+#: ../../mod/setup.php:172
+msgid "Could not connect to database."
+msgstr "Kann nicht mit der Datenbank verbinden."
-#: ../../include/features.php:45
-msgid "Post Preview"
-msgstr "Voransicht"
+#: ../../mod/setup.php:176
+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."
-#: ../../include/features.php:45
-msgid "Allow previewing posts and comments before publishing them"
-msgstr "Erlaube Voransicht von Beiträgen und Kommentaren vor Veröffentlichung"
+#: ../../mod/setup.php:183
+msgid "Could not create table."
+msgstr "Kann Tabelle nicht erstellen."
-#: ../../include/features.php:46 ../../include/widgets.php:503
-#: ../../mod/sources.php:88
-msgid "Channel Sources"
-msgstr "Kanal-Quellen"
+#: ../../mod/setup.php:189
+msgid "Your site database has been installed."
+msgstr "Die Datenbank Deines Hubs wurde installiert."
-#: ../../include/features.php:46
-msgid "Automatically import channel content from other channels or feeds"
-msgstr "Importiere automatisch Inhalte für diesen Kanal von anderen Kanälen oder Feeds"
+#: ../../mod/setup.php:194
+msgid ""
+"You may need to import the file \"install/schema_xxx.sql\" manually using a "
+"database client."
+msgstr "Möglicherweise musst Du die Datei install/schema_xxx.sql manuell mit Hilfe eines Datenkbank-Clients importieren."
-#: ../../include/features.php:47
-msgid "Even More Encryption"
-msgstr "Noch mehr Verschlüsselung"
+#: ../../mod/setup.php:195 ../../mod/setup.php:264 ../../mod/setup.php:663
+msgid "Please see the file \"install/INSTALL.txt\"."
+msgstr "Lies die Datei \"install/INSTALL.txt\"."
-#: ../../include/features.php:47
+#: ../../mod/setup.php:261
+msgid "System check"
+msgstr "Systemprüfung"
+
+#: ../../mod/setup.php:265 ../../mod/events.php:434 ../../mod/photos.php:868
+msgid "Next"
+msgstr "Nächste"
+
+#: ../../mod/setup.php:266
+msgid "Check again"
+msgstr "Bitte nochmal prüfen"
+
+#: ../../mod/setup.php:289
+msgid "Database connection"
+msgstr "Datenbank Verbindung"
+
+#: ../../mod/setup.php:290
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)"
+"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."
-#: ../../include/features.php:52
-msgid "Network and Stream Filtering"
-msgstr "Netzwerk- und Stream-Filter"
+#: ../../mod/setup.php:291
+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."
-#: ../../include/features.php:53
-msgid "Search by Date"
-msgstr "Suche nach Datum"
+#: ../../mod/setup.php:292
+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."
-#: ../../include/features.php:53
-msgid "Ability to select posts by date ranges"
-msgstr "Möglichkeit, Beiträge nach Zeiträumen auszuwählen"
+#: ../../mod/setup.php:296
+msgid "Database Server Name"
+msgstr "Datenbank-Servername"
-#: ../../include/features.php:54
-msgid "Collections Filter"
-msgstr "Filter für Sammlung"
+#: ../../mod/setup.php:296
+msgid "Default is localhost"
+msgstr "Standard ist localhost"
-#: ../../include/features.php:54
-msgid "Enable widget to display Network posts only from selected collections"
-msgstr "Aktiviere nur Netzwerk-Beiträge von ausgewählten Sammlungen"
+#: ../../mod/setup.php:297
+msgid "Database Port"
+msgstr "Datenbank-Port"
-#: ../../include/features.php:55 ../../include/widgets.php:265
-msgid "Saved Searches"
-msgstr "Gesicherte Suchanfragen"
+#: ../../mod/setup.php:297
+msgid "Communication port number - use 0 for default"
+msgstr "Port-Nummer für die Kommunikation – verwende 0 für die Standardeinstellung"
-#: ../../include/features.php:55
-msgid "Save search terms for re-use"
-msgstr "Gesicherte Suchbegriffe zur Wiederverwendung"
+#: ../../mod/setup.php:298
+msgid "Database Login Name"
+msgstr "Datenbank-Benutzername"
-#: ../../include/features.php:56
-msgid "Network Personal Tab"
-msgstr "Persönlicher Netzwerkreiter"
+#: ../../mod/setup.php:299
+msgid "Database Login Password"
+msgstr "Datenbank-Kennwort"
-#: ../../include/features.php:56
-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"
+#: ../../mod/setup.php:300
+msgid "Database Name"
+msgstr "Datenbank-Name"
-#: ../../include/features.php:57
-msgid "Network New Tab"
-msgstr "Netzwerkreiter Neu"
+#: ../../mod/setup.php:301
+msgid "Database Type"
+msgstr "Datenbanktyp"
-#: ../../include/features.php:57
-msgid "Enable tab to display all new Network activity"
-msgstr "Aktiviere Reiter, um alle neuen Netzwerkaktivitäten zu zeigen"
+#: ../../mod/setup.php:303 ../../mod/setup.php:347
+msgid "Site administrator email address"
+msgstr "E-Mail Adresse des Seiten-Administrators"
-#: ../../include/features.php:58
-msgid "Affinity Tool"
-msgstr "Beziehungs-Tool"
+#: ../../mod/setup.php:303 ../../mod/setup.php:347
+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."
-#: ../../include/features.php:58
-msgid "Filter stream activity by depth of relationships"
-msgstr "Filter Aktivitätenstream nach Tiefe der Beziehung"
+#: ../../mod/setup.php:304 ../../mod/setup.php:349
+msgid "Website URL"
+msgstr "Server-URL"
-#: ../../include/features.php:59
-msgid "Suggest Channels"
-msgstr "Kanäle vorschlagen"
+#: ../../mod/setup.php:304 ../../mod/setup.php:349
+msgid "Please use SSL (https) URL if available."
+msgstr "Nutze wenn möglich eine SSL-URL (https)."
-#: ../../include/features.php:59
-msgid "Show channel suggestions"
-msgstr "Kanal-Vorschläge anzeigen"
+#: ../../mod/setup.php:307 ../../mod/setup.php:352
+msgid "Please select a default timezone for your website"
+msgstr "Standard-Zeitzone für Deinen Server"
-#: ../../include/features.php:64
-msgid "Post/Comment Tools"
-msgstr "Beitrag-/Kommentar-Tools"
+#: ../../mod/setup.php:335
+msgid "Site settings"
+msgstr "Seiteneinstellungen"
-#: ../../include/features.php:66
-msgid "Edit Sent Posts"
-msgstr "Bearbeite gesendete Beiträge"
+#: ../../mod/setup.php:395
+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."
-#: ../../include/features.php:66
-msgid "Edit and correct posts and comments after sending"
-msgstr "Bearbeite und korrigiere Beiträge und Kommentare nach dem Senden"
+#: ../../mod/setup.php:396
+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."
-#: ../../include/features.php:67
-msgid "Tagging"
-msgstr "Verschlagworten"
+#: ../../mod/setup.php:400
+msgid "PHP executable path"
+msgstr "PHP Pfad zu ausführbarer Datei"
-#: ../../include/features.php:67
-msgid "Ability to tag existing posts"
-msgstr "Möglichkeit, um existierende Beiträge zu verschlagworten"
+#: ../../mod/setup.php:400
+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."
-#: ../../include/features.php:68
-msgid "Post Categories"
-msgstr "Beitrags-Kategorien"
+#: ../../mod/setup.php:405
+msgid "Command line PHP"
+msgstr "PHP Befehlszeile"
-#: ../../include/features.php:68
-msgid "Add categories to your posts"
-msgstr "Kategorien für Beiträge"
+#: ../../mod/setup.php:414
+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."
-#: ../../include/features.php:69
-msgid "Ability to file posts under folders"
-msgstr "Möglichkeit, Beiträge in Verzeichnissen zu sammeln"
+#: ../../mod/setup.php:415
+msgid "This is required for message delivery to work."
+msgstr "Das wird benötigt, damit die Auslieferung von Nachrichten funktioniert."
-#: ../../include/features.php:70
-msgid "Dislike Posts"
-msgstr "Gefällt-mir-nicht Beiträge"
+#: ../../mod/setup.php:417
+msgid "PHP register_argc_argv"
+msgstr "PHP register_argc_argv"
-#: ../../include/features.php:70
-msgid "Ability to dislike posts/comments"
-msgstr "„Gefällt mir nicht“ ermöglichen"
+#: ../../mod/setup.php:438
+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."
-#: ../../include/features.php:71
-msgid "Star Posts"
-msgstr "Beiträge mit Sternchen versehen"
+#: ../../mod/setup.php:439
+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."
-#: ../../include/features.php:71
-msgid "Ability to mark special posts with a star indicator"
-msgstr "Möglichkeit, spezielle Beiträge mit Sternchen-Symbol zu markieren"
+#: ../../mod/setup.php:441
+msgid "Generate encryption keys"
+msgstr "Verschlüsselungsschlüssel generieren"
-#: ../../include/features.php:72
-msgid "Tag Cloud"
-msgstr "Schlagwort-Wolke"
+#: ../../mod/setup.php:448
+msgid "libCurl PHP module"
+msgstr "libCurl-PHP-Modul"
-#: ../../include/features.php:72
-msgid "Provide a personal tag cloud on your channel page"
-msgstr "Persönliche Schlagwort-Wolke auf Deiner Kanal-Seite anzeigen"
+#: ../../mod/setup.php:449
+msgid "GD graphics PHP module"
+msgstr "GD-Grafik-PHP-Modul"
-#: ../../include/notify.php:23
-msgid "created a new post"
-msgstr "Neuer Beitrag wurde erzeugt"
+#: ../../mod/setup.php:450
+msgid "OpenSSL PHP module"
+msgstr "OpenSSL-PHP-Modul"
-#: ../../include/notify.php:24
-#, php-format
-msgid "commented on %s's post"
-msgstr "hat %s's Beitrag kommentiert"
+#: ../../mod/setup.php:451
+msgid "mysqli or postgres PHP module"
+msgstr "mysqli oder postgres PHP-Modul"
-#: ../../include/apps.php:123
-msgid "Site Admin"
-msgstr "Webseiten-Administrator"
+#: ../../mod/setup.php:452
+msgid "mb_string PHP module"
+msgstr "mb_string-PHP-Modul"
-#: ../../include/apps.php:125
-msgid "Address Book"
-msgstr "Adressbuch"
+#: ../../mod/setup.php:453
+msgid "mcrypt PHP module"
+msgstr "mcrypt-PHP-Modul"
-#: ../../include/apps.php:139 ../../mod/mood.php:131
-msgid "Mood"
-msgstr "Laune"
+#: ../../mod/setup.php:458 ../../mod/setup.php:460
+msgid "Apache mod_rewrite module"
+msgstr "Apache-mod_rewrite-Modul"
-#: ../../include/apps.php:140 ../../include/conversation.php:945
-msgid "Poke"
-msgstr "Anstupsen"
+#: ../../mod/setup.php:458
+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."
-#: ../../include/apps.php:143
-msgid "Probe"
-msgstr "Prüfen"
+#: ../../mod/setup.php:464 ../../mod/setup.php:467
+msgid "proc_open"
+msgstr "proc_open"
-#: ../../include/apps.php:144
-msgid "Suggest"
-msgstr "Empfehlung"
+#: ../../mod/setup.php:464
+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"
-#: ../../include/apps.php:233 ../../mod/settings.php:79
-#: ../../mod/settings.php:542
-msgid "Update"
-msgstr "Aktualisieren"
+#: ../../mod/setup.php:472
+msgid "Error: libCURL PHP module required but not installed."
+msgstr "Fehler: Das PHP-Modul libCURL wird benötigt, ist aber nicht installiert."
-#: ../../include/apps.php:233
-msgid "Install"
-msgstr "Installieren"
+#: ../../mod/setup.php:476
+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."
-#: ../../include/apps.php:238
-msgid "Purchase"
-msgstr "Kaufen"
+#: ../../mod/setup.php:480
+msgid "Error: openssl PHP module required but not installed."
+msgstr "Fehler: Das PHP-Modul openssl wird benötigt, ist aber nicht installiert."
-#: ../../include/api.php:1016
-msgid "Public Timeline"
-msgstr "Öffentliche Zeitleiste"
+#: ../../mod/setup.php:484
+msgid ""
+"Error: mysqli or postgres PHP module required but neither are installed."
+msgstr "Fehler: Das mysqli oder postgres PHP-Modul ist erforderlich, aber keines von beiden ist installiert."
-#: ../../include/chat.php:10
-msgid "Missing room name"
-msgstr "Der Chatraum hat keinen Namen"
+#: ../../mod/setup.php:488
+msgid "Error: mb_string PHP module required but not installed."
+msgstr "Fehler: Das PHP-Modul mb_string wird benötigt, ist aber nicht installiert."
-#: ../../include/chat.php:19
-msgid "Duplicate room name"
-msgstr "Name des Chatraums bereits vergeben"
+#: ../../mod/setup.php:492
+msgid "Error: mcrypt PHP module required but not installed."
+msgstr "Fehler: Das PHP-Modul mcrypt wird benötigt, ist aber nicht installiert."
-#: ../../include/chat.php:68 ../../include/chat.php:76
-msgid "Invalid room specifier."
-msgstr "Ungültiger Raumbezeichner."
+#: ../../mod/setup.php:508
+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."
-#: ../../include/chat.php:105
-msgid "Room not found."
-msgstr "Chatraum konnte nicht gefunden werden."
+#: ../../mod/setup.php:509
+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 Schreibrechte in dem Verzeichnis hat – selbst wenn Du selbst das darfst."
-#: ../../include/chat.php:126
-msgid "Room is full"
-msgstr "Der Raum ist voll"
+#: ../../mod/setup.php:510
+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."
-#: ../../include/conversation.php:126 ../../mod/like.php:89
-msgid "channel"
-msgstr "Kanal"
+#: ../../mod/setup.php:511
+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."
-#: ../../include/conversation.php:164 ../../mod/like.php:331
-#, php-format
-msgid "%1$s likes %2$s's %3$s"
-msgstr "%1$s gefällt %2$ss %3$s"
+#: ../../mod/setup.php:514
+msgid ".htconfig.php is writable"
+msgstr ".htconfig.php ist beschreibbar"
+
+#: ../../mod/setup.php:524
+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."
-#: ../../include/conversation.php:167 ../../mod/like.php:333
+#: ../../mod/setup.php:525
#, php-format
-msgid "%1$s doesn't like %2$s's %3$s"
-msgstr "%1$s gefällt %2$ss %3$s nicht"
+msgid ""
+"In order to store these compiled templates, the web server needs to have "
+"write access to the directory %s under the Red top level folder."
+msgstr "Um diese kompilierten Vorlagen speichern zu können, braucht der Web-Server Schreibzugriff auf das Verzeichnis %s unterhalb des Red-Installationsverzeichnisses."
-#: ../../include/conversation.php:204
+#: ../../mod/setup.php:526 ../../mod/setup.php:544
+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 Web-Server läuft (z.B. www-data), Schreibzugriff auf dieses Verzeichnis hat."
+
+#: ../../mod/setup.php:527
#, php-format
-msgid "%1$s is now connected with %2$s"
-msgstr "%1$s ist jetzt mit %2$s verbunden"
+msgid ""
+"Note: as a security measure, you should give the web server write access to "
+"%s only--not the template files (.tpl) that it contains."
+msgstr " Hinweis: Aus Sicherheitsgründen sollte der Web-Server nur auf %s Schreibrechte haben, nicht in der restlichen Red-Installation."
-#: ../../include/conversation.php:239
+#: ../../mod/setup.php:530
#, php-format
-msgid "%1$s poked %2$s"
-msgstr "%1$s stupste %2$s an"
+msgid "%s is writable"
+msgstr "%s ist beschreibbar"
-#: ../../include/conversation.php:261 ../../mod/mood.php:63
+#: ../../mod/setup.php:543
+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:547
+msgid "store is writable"
+msgstr "store ist schreibbar"
+
+#: ../../mod/setup.php:577
+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:578
+msgid ""
+"If you have https access to your website or allow connections to TCP port "
+"443 (the https: port), you MUST use a browser-valid certificate. You MUST "
+"NOT use self-signed certificates!"
+msgstr "Wenn Du via HTTPS auf Deinen Server zugreifen möchtest, also Verbindungen über den Port 443 möglich sein sollen, ist ein SSL-Zertifikat einer Zertifizierungsstelle (CA) notwendig, das von den Browsern ohne Sicherheitsabfrage akzeptiert wird. Die Verwendung eines selbst signierten Zertifikates ist nicht möglich."
+
+#: ../../mod/setup.php:579
+msgid ""
+"This restriction is incorporated because public posts from you may for "
+"example contain references to images on your own hub."
+msgstr "Diese Einschränkung wurde eingebaut, weil Deine öffentlichen Beiträge zum Beispiel Verweise auf Bilder auf Deinem eigenen Hub enthalten können."
+
+#: ../../mod/setup.php:580
+msgid ""
+"If your certificate is not recognized, members of other sites (who may "
+"themselves have valid certificates) will get a warning message on their own "
+"site complaining about security issues."
+msgstr "Wenn Dein Zertifikat nicht von jedem Browser akzeptiert wird, erhalten die Mitglieder anderer Red-Server (die mit korrekten Zertifikaten ausgestattet sind) Sicherheits-Warnmeldungen, obwohl sie gar nicht direkt auf Deinem Server unterwegs sind (zum Beispiel, wenn ein Bild aus einem Deiner Beiträge angezeigt wird)."
+
+#: ../../mod/setup.php:581
+msgid ""
+"This can cause usability issues elsewhere (not just on your own site) so we "
+"must insist on this requirement."
+msgstr "Dies kann Probleme für andere Nutzer (nicht nur auf Deinem eigenen Server) verursachen, so dass wir auf dieser Forderung bestehen müssen."
+
+#: ../../mod/setup.php:582
+msgid ""
+"Providers are available that issue free certificates which are browser-"
+"valid."
+msgstr "Es gibt einige Zertifizierungsstellen (CAs), bei denen solche Zertifikate kostenlos zu haben sind."
+
+#: ../../mod/setup.php:584
+msgid "SSL certificate validation"
+msgstr "SSL Zertifikatverifizierung"
+
+#: ../../mod/setup.php:590
+msgid ""
+"Url rewrite in .htaccess is not working. Check your server "
+"configuration.Test: "
+msgstr "Das Umschreiben von URLs (rewrite) per .htaccess funktioniert nicht. Bitte prüfe die Server-Konfiguration. Test:"
+
+#: ../../mod/setup.php:592
+msgid "Url rewrite is working"
+msgstr "Url rewrite funktioniert"
+
+#: ../../mod/setup.php:602
+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:626
+msgid "Errors encountered creating database tables."
+msgstr "Fehler beim Anlegen der Datenbank-Tabellen aufgetreten."
+
+#: ../../mod/setup.php:661
+msgid "<h1>What next</h1>"
+msgstr "<h1>Was als Nächstes</h1>"
+
+#: ../../mod/setup.php:662
+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:90
#, php-format
-msgctxt "mood"
-msgid "%1$s is %2$s"
-msgstr "%1$s ist %2$s"
+msgid "Version %s"
+msgstr "Version %s"
+
+#: ../../mod/siteinfo.php:111
+msgid "Installed plugins/addons/apps:"
+msgstr "Installierte Plugins/Addons/Apps"
+
+#: ../../mod/siteinfo.php:124
+msgid "No installed plugins/addons/apps"
+msgstr "Keine installierten Plugins/Addons/Apps"
+
+#: ../../mod/siteinfo.php:132
+msgid "Red"
+msgstr "Red"
+
+#: ../../mod/siteinfo.php:133
+msgid ""
+"This is a hub of the Red Matrix - a global cooperative network of "
+"decentralized privacy enhanced websites."
+msgstr "Dieser Hub ist Teil der RedMatrix – eines globalen, kooperativen Netzwerks aus dezentralen Websites, die Rücksicht auf Deine Privatsphäre nehmen."
+
+#: ../../mod/siteinfo.php:137
+msgid "Running at web location"
+msgstr "Erreichbar unter der Web-Adresse"
+
+#: ../../mod/siteinfo.php:138
+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:139
+msgid "Bug reports and issues: please visit"
+msgstr "Probleme oder Fehler gefunden? Bitte besuche"
+
+#: ../../mod/siteinfo.php:142
+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:144
+msgid "Site Administrators"
+msgstr "Administratoren"
+
+#: ../../mod/poke.php:159
+msgid "Poke/Prod"
+msgstr "Anstupsen/Knuffen"
+
+#: ../../mod/poke.php:160
+msgid "poke, prod or do other things to somebody"
+msgstr "Stupse Leute an oder mache anderes mit ihnen"
+
+#: ../../mod/poke.php:161
+msgid "Recipient"
+msgstr "Empfänger"
-#: ../../include/conversation.php:669
+#: ../../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"
+
+#: ../../mod/poke.php:165
+msgid "Make this post private"
+msgstr "Diesen Beitrag privat machen"
+
+#: ../../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/attach.php:9
+msgid "Item not available."
+msgstr "Element nicht verfügbar."
+
+#: ../../mod/probe.php:23 ../../mod/probe.php:29
#, php-format
-msgid "View %s's profile @ %s"
-msgstr "%ss Profil auf %s ansehen"
+msgid "Fetching URL returns error: %1$s"
+msgstr "Abrufen der URL gab einen Fehler zurück: %1$s"
-#: ../../include/conversation.php:683
-msgid "Categories:"
-msgstr "Kategorien:"
+#: ../../mod/block.php:27 ../../mod/page.php:33
+msgid "Invalid item."
+msgstr "Ungültiges Element."
-#: ../../include/conversation.php:684
-msgid "Filed under:"
-msgstr "Gespeichert unter:"
+#: ../../mod/block.php:39 ../../mod/wall_upload.php:28 ../../mod/page.php:45
+msgid "Channel not found."
+msgstr "Kanal nicht gefunden."
-#: ../../include/conversation.php:712
-msgid "View in context"
-msgstr "Im Zusammenhang anschauen"
+#: ../../mod/block.php:75 ../../mod/display.php:102 ../../mod/help.php:70
+#: ../../mod/page.php:81 ../../index.php:241
+msgid "Page not found."
+msgstr "Seite nicht gefunden."
-#: ../../include/conversation.php:841
-msgid "remove"
-msgstr "lösche"
+#: ../../mod/sources.php:32
+msgid "Failed to create source. No channel selected."
+msgstr "Konnte die Quelle nicht anlegen. Kein Kanal ausgewählt."
-#: ../../include/conversation.php:845
-msgid "Loading..."
-msgstr "Lädt ..."
+#: ../../mod/sources.php:45
+msgid "Source created."
+msgstr "Quelle erstellt."
-#: ../../include/conversation.php:846
-msgid "Delete Selected Items"
-msgstr "Lösche die ausgewählten Elemente"
+#: ../../mod/sources.php:57
+msgid "Source updated."
+msgstr "Quelle aktualisiert."
-#: ../../include/conversation.php:937
-msgid "View Source"
-msgstr "Quelle anzeigen"
+#: ../../mod/sources.php:82
+msgid "*"
+msgstr "*"
-#: ../../include/conversation.php:938
-msgid "Follow Thread"
-msgstr "Unterhaltung folgen"
+#: ../../mod/sources.php:89
+msgid "Manage remote sources of content for your channel."
+msgstr "Externe Inhaltsquellen für Deinen Kanal verwalten."
-#: ../../include/conversation.php:939
-msgid "View Status"
-msgstr "Status ansehen"
+#: ../../mod/sources.php:90 ../../mod/sources.php:100
+msgid "New Source"
+msgstr "Neue Quelle"
-#: ../../include/conversation.php:941
-msgid "View Photos"
-msgstr "Fotos ansehen"
+#: ../../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."
-#: ../../include/conversation.php:942
-msgid "Matrix Activity"
-msgstr "Matrix-Aktivität"
+#: ../../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"
-#: ../../include/conversation.php:943
-msgid "Edit Contact"
-msgstr "Kontakt bearbeiten"
+#: ../../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"
-#: ../../include/conversation.php:944
-msgid "Send PM"
-msgstr "Sende PN"
+#: ../../mod/sources.php:103 ../../mod/sources.php:137
+#: ../../mod/new_channel.php:112
+msgid "Channel Name"
+msgstr "Name des Kanals"
+
+#: ../../mod/sources.php:123 ../../mod/sources.php:150
+msgid "Source not found."
+msgstr "Quelle nicht gefunden."
-#: ../../include/conversation.php:1001
+#: ../../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/blocks.php:99
+msgid "Block Name"
+msgstr "Block-Name"
+
+#: ../../mod/search.php:13 ../../mod/directory.php:15 ../../mod/photos.php:458
+#: ../../mod/display.php:9 ../../mod/viewconnections.php:17
+msgid "Public access denied."
+msgstr "Öffentlicher Zugang verweigert."
+
+#: ../../mod/directory.php:161
+msgid "Gender: "
+msgstr "Geschlecht:"
+
+#: ../../mod/directory.php:163
+msgid "Status: "
+msgstr "Status:"
+
+#: ../../mod/directory.php:165
+msgid "Homepage: "
+msgstr "Webseite:"
+
+#: ../../mod/directory.php:168
+msgid "Hometown: "
+msgstr "Wohnort:"
+
+#: ../../mod/directory.php:170
+msgid "About: "
+msgstr "Ãœber:"
+
+#: ../../mod/directory.php:225
+msgid "Public Forum:"
+msgstr "Öffentliches Forum:"
+
+#: ../../mod/directory.php:228
+msgid "Keywords: "
+msgstr "Schlüsselwörter:"
+
+#: ../../mod/directory.php:268
+msgid "Finding:"
+msgstr "Ergebnisse:"
+
+#: ../../mod/directory.php:273
+msgid "next page"
+msgstr "nächste Seite"
+
+#: ../../mod/directory.php:273
+msgid "previous page"
+msgstr "vorherige Seite"
+
+#: ../../mod/directory.php:290
+msgid "No entries (some entries may be hidden)."
+msgstr "Keine Einträge gefunden (einige könnten versteckt sein)."
+
+#: ../../mod/register.php:44
+msgid "Maximum daily site registrations exceeded. Please try again tomorrow."
+msgstr "Maximale Anzahl täglicher Neuanmeldungen erreicht. Bitte versuche es morgen noch einmal."
+
+#: ../../mod/register.php:50
+msgid ""
+"Please indicate acceptance of the Terms of Service. Registration failed."
+msgstr "Bitte stimme den Nutzungsbedingungen zu. Registrierung fehlgeschlagen."
+
+#: ../../mod/register.php:84
+msgid "Passwords do not match."
+msgstr "Passwörter stimmen nicht überein."
+
+#: ../../mod/register.php:117
+msgid ""
+"Registration successful. Please check your email for validation "
+"instructions."
+msgstr "Registrierung erfolgreich. Eine E-Mail mit weiteren Anweisungen wurde an Dich gesendet."
+
+#: ../../mod/register.php:123
+msgid "Your registration is pending approval by the site owner."
+msgstr "Deine Registrierung muss noch vom Betreiber der Seite freigegeben werden."
+
+#: ../../mod/register.php:126
+msgid "Your registration can not be processed."
+msgstr "Deine Registrierung konnte nicht verarbeitet werden."
+
+#: ../../mod/register.php:163
+msgid "Registration on this site/hub is by approval only."
+msgstr "Anmeldungen auf diesem Server erfordern Zustimmung durch den Administrator"
+
+#: ../../mod/register.php:164
+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:174
+msgid ""
+"This site has exceeded the number of allowed daily account registrations. "
+"Please try again tomorrow."
+msgstr "Die maximale Anzahl täglicher Registrierungen auf diesem Server wurde überschritten. Bitte versuche es morgen noch einmal."
+
+#: ../../mod/register.php:185
+msgid "Terms of Service"
+msgstr "Nutzungsbedingungen"
+
+#: ../../mod/register.php:191
#, php-format
-msgid "%s likes this."
-msgstr "%s gefällt das."
+msgid "I accept the %s for this website"
+msgstr "Ich akzeptiere die %s für diese Webseite"
-#: ../../include/conversation.php:1001
+#: ../../mod/register.php:193
#, php-format
-msgid "%s doesn't like this."
-msgstr "%s gefällt das nicht."
+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:207 ../../mod/admin.php:413
+msgid "Registration"
+msgstr "Registrierung"
+
+#: ../../mod/register.php:212
+msgid "Membership on this site is by invitation only."
+msgstr "Mitgliedschaft auf dieser Seite ist nur nach vorheriger Einladung möglich."
+
+#: ../../mod/register.php:213
+msgid "Please enter your invitation code"
+msgstr "Bitte trage Deinen Einladungs-Code ein"
+
+#: ../../mod/register.php:216
+msgid "Your email address"
+msgstr "Ihre E-Mail Adresse"
+
+#: ../../mod/register.php:217
+msgid "Choose a password"
+msgstr "Passwort"
+
+#: ../../mod/register.php:218
+msgid "Please re-enter your password"
+msgstr "Bitte gib Dein Passwort noch einmal ein"
+
+#: ../../mod/events.php:81
+msgid "Event can not end before it has started."
+msgstr "Termin-Ende liegt vor dem Beginn."
+
+#: ../../mod/events.php:86
+msgid "Event title and start time are required."
+msgstr "Titel und Startzeit des Termins sind erforderlich."
+
+#: ../../mod/events.php:100
+msgid "Event not found."
+msgstr "Termin nicht gefunden."
+
+#: ../../mod/events.php:364
+msgid "l, F j"
+msgstr "l, j. F"
+
+#: ../../mod/events.php:386
+msgid "Edit event"
+msgstr "Termin bearbeiten"
+
+#: ../../mod/events.php:432
+msgid "Create New Event"
+msgstr "Neuen Termin erstellen"
+
+#: ../../mod/events.php:433 ../../mod/photos.php:859
+msgid "Previous"
+msgstr "Voriges"
+
+#: ../../mod/events.php:560
+msgid "Event details"
+msgstr "Termin-Details"
+
+#: ../../mod/events.php:561
+msgid "Starting date and Title are required."
+msgstr "Startdatum und Titel sind erforderlich."
+
+#: ../../mod/events.php:565
+msgid "Event Starts:"
+msgstr "Termin beginnt:"
+
+#: ../../mod/events.php:565 ../../mod/events.php:581 ../../mod/appman.php:91
+#: ../../mod/appman.php:92
+msgid "Required"
+msgstr "Benötigt"
+
+#: ../../mod/events.php:571
+msgid "Finish date/time is not known or not relevant"
+msgstr "Ende Datum/Zeit sind unbekannt oder unwichtig"
+
+#: ../../mod/events.php:573
+msgid "Event Finishes:"
+msgstr "Termin endet:"
+
+#: ../../mod/events.php:575
+msgid "Adjust for viewer timezone"
+msgstr "An die Zeitzone des Betrachters anpassen"
+
+#: ../../mod/events.php:577
+msgid "Description:"
+msgstr "Beschreibung:"
+
+#: ../../mod/events.php:581
+msgid "Title:"
+msgstr "Titel:"
+
+#: ../../mod/events.php:583
+msgid "Share this event"
+msgstr "Den Termin teilen"
+
+#: ../../mod/pubsites.php:16
+msgid "Public Sites"
+msgstr "Öffentliche Server"
+
+#: ../../mod/pubsites.php:19
+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 "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:25
+msgid "Site URL"
+msgstr "Server-URL"
+
+#: ../../mod/pubsites.php:25
+msgid "Access Type"
+msgstr "Zugangstyp"
+
+#: ../../mod/pubsites.php:25
+msgid "Registration Policy"
+msgstr "Registrierungsrichtlinien"
+
+#: ../../mod/channel.php:25 ../../mod/chat.php:19
+msgid "You must be logged in to see this page."
+msgstr "Du musst angemeldet sein, um diese Seite betrachten zu können."
+
+#: ../../mod/channel.php:86
+msgid "Insufficient permissions. Request redirected to profile page."
+msgstr "Unzureichende Zugriffsrechte. Die Anfrage wurde zur Profil-Seite umgeleitet."
+
+#: ../../mod/rbmark.php:88
+msgid "Select a bookmark folder"
+msgstr "Lesezeichenordner wählen"
+
+#: ../../mod/rbmark.php:93
+msgid "Save Bookmark"
+msgstr "Lesezeichen speichern"
+
+#: ../../mod/rbmark.php:94
+msgid "URL of bookmark"
+msgstr "URL des Lesezeichens"
+
+#: ../../mod/rbmark.php:95 ../../mod/appman.php:93
+msgid "Description"
+msgstr "Beschreibung"
+
+#: ../../mod/rbmark.php:99
+msgid "Or enter new bookmark folder name"
+msgstr "Oder gib einen neuen Namen für den Lesezeichenordner ein"
+
+#: ../../mod/chat.php:167
+msgid "Room not found"
+msgstr "Chatraum nicht gefunden"
+
+#: ../../mod/chat.php:178
+msgid "Leave Room"
+msgstr "Raum verlassen"
+
+#: ../../mod/chat.php:179
+msgid "Delete This Room"
+msgstr "Diesen Raum löschen"
+
+#: ../../mod/chat.php:180
+msgid "I am away right now"
+msgstr "Ich bin gerade nicht da"
+
+#: ../../mod/chat.php:181
+msgid "I am online"
+msgstr "Ich bin online"
+
+#: ../../mod/chat.php:183
+msgid "Bookmark this room"
+msgstr "Lesezeichen für diesen Raum setzen"
+
+#: ../../mod/chat.php:207 ../../mod/chat.php:229
+msgid "New Chatroom"
+msgstr "Neuer Chatraum"
+
+#: ../../mod/chat.php:208
+msgid "Chatroom Name"
+msgstr "Name des Chatraums"
-#: ../../include/conversation.php:1005
+#: ../../mod/chat.php:225
#, 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."
+msgid "%1$s's Chatrooms"
+msgstr "%1$ss Chaträume"
-#: ../../include/conversation.php:1007
+#: ../../mod/subthread.php:103
#, 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."
+msgid "%1$s is following %2$s's %3$s"
+msgstr "%1$s folgt nun %2$ss %3$s"
-#: ../../include/conversation.php:1013
-msgid "and"
-msgstr "und"
+#: ../../mod/chatsvc.php:111
+msgid "Away"
+msgstr "Abwesend"
+
+#: ../../mod/chatsvc.php:115
+msgid "Online"
+msgstr "Online"
+
+#: ../../mod/regmod.php:11
+msgid "Please login."
+msgstr "Bitte melde dich an."
+
+#: ../../mod/network.php:79
+msgid "No such group"
+msgstr "Sammlung nicht gefunden"
+
+#: ../../mod/network.php:118
+msgid "Search Results For:"
+msgstr "Suchergebnisse für:"
+
+#: ../../mod/network.php:172
+msgid "Collection is empty"
+msgstr "Sammlung ist leer"
+
+#: ../../mod/network.php:180
+msgid "Collection: "
+msgstr "Sammlung:"
+
+#: ../../mod/network.php:193
+msgid "Connection: "
+msgstr "Verbindung:"
+
+#: ../../mod/network.php:196
+msgid "Invalid connection."
+msgstr "Ungültige Verbindung."
+
+#: ../../mod/removeme.php:29
+msgid ""
+"Channel removals are not allowed within 48 hours of changing the account "
+"password."
+msgstr "Innerhalb von 48 Stunden nach einer Änderung des Passworts können keine Kanäle gelöscht werden."
+
+#: ../../mod/removeme.php:57
+msgid "Remove This Channel"
+msgstr "Diesen Kanal löschen"
+
+#: ../../mod/removeme.php:58
+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, kann dieser Prozess nicht wieder rückgängig gemacht werden."
+
+#: ../../mod/removeme.php:59 ../../mod/removeaccount.php:59
+msgid "Please enter your password for verification:"
+msgstr "Bitte gib zur Bestätigung Dein Passwort ein:"
+
+#: ../../mod/removeme.php:60
+msgid "Remove this channel and all its clones from the network"
+msgstr "Lösche diesen Kanal und all seine Klone aus dem Netzwerk"
+
+#: ../../mod/removeme.php:60
+msgid ""
+"By default only the instance of the channel located on this hub will be "
+"removed from the network"
+msgstr "Standardmäßig wird der Kanal nur auf diesem Server gelöscht, seine Klone verbleiben im Netzwerk"
+
+#: ../../mod/removeme.php:61
+msgid "Remove Channel"
+msgstr "Kanal löschen"
+
+#: ../../mod/common.php:10
+msgid "No channel."
+msgstr "Kein Kanal."
+
+#: ../../mod/common.php:39
+msgid "Common connections"
+msgstr "Gemeinsame Verbindungen"
+
+#: ../../mod/common.php:44
+msgid "No connections in common."
+msgstr "Keine gemeinsamen 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 sie noch einmal."
+
+#: ../../mod/rmagic.php:38
+msgid "The error message was:"
+msgstr "Die Fehlermeldung war:"
+
+#: ../../mod/rmagic.php:42
+msgid "Authentication failed."
+msgstr "Authentifizierung fehlgeschlagen."
+
+#: ../../mod/rmagic.php:82
+msgid "Remote Authentication"
+msgstr "Entfernte Authentifizierung"
+
+#: ../../mod/rmagic.php:83
+msgid "Enter your channel address (e.g. channel@example.com)"
+msgstr "Deine Kanal-Adresse (z. B. channel@example.com)"
+
+#: ../../mod/rmagic.php:84
+msgid "Authenticate"
+msgstr "Authentifizieren"
+
+#: ../../mod/filer.php:49
+msgid "- select -"
+msgstr "– auswählen –"
+
+#: ../../mod/photos.php:77
+msgid "Page owner information could not be retrieved."
+msgstr "Informationen über den Besitzer der Seite konnten nicht gefunden werden."
+
+#: ../../mod/photos.php:97
+msgid "Album not found."
+msgstr "Album nicht gefunden."
+
+#: ../../mod/photos.php:119 ../../mod/photos.php:672
+msgid "Delete Album"
+msgstr "Album löschen"
+
+#: ../../mod/photos.php:159 ../../mod/photos.php:957
+msgid "Delete Photo"
+msgstr "Foto löschen"
+
+#: ../../mod/photos.php:469
+msgid "No photos selected"
+msgstr "Keine Fotos ausgewählt"
-#: ../../include/conversation.php:1016
+#: ../../mod/photos.php:513
+msgid "Access to this item is restricted."
+msgstr "Der Zugriff auf dieses Foto ist eingeschränkt."
+
+#: ../../mod/photos.php:552
#, php-format
-msgid ", and %d other people"
-msgid_plural ", and %d other people"
-msgstr[0] ""
-msgstr[1] ", und %d andere"
+msgid "%1$.2f MB of %2$.2f MB photo storage used."
+msgstr "%1$.2f MB von %2$.2f MB Foto-Speicher belegt."
-#: ../../include/conversation.php:1017
+#: ../../mod/photos.php:555
#, php-format
-msgid "%s like this."
-msgstr "%s gefällt das."
+msgid "%1$.2f MB photo storage used."
+msgstr "%1$.2f MB Foto-Speicher belegt."
+
+#: ../../mod/photos.php:579
+msgid "Upload Photos"
+msgstr "Fotos hochladen"
+
+#: ../../mod/photos.php:583 ../../mod/photos.php:665 ../../mod/photos.php:943
+msgid "Enter a new album name"
+msgstr "Gib einen Namen für ein neues Album ein"
+
+#: ../../mod/photos.php:584 ../../mod/photos.php:666 ../../mod/photos.php:944
+msgid "or select an existing one (doubleclick)"
+msgstr "oder wähle ein bereits vorhandenes aus (Doppelklick)"
+
+#: ../../mod/photos.php:585
+msgid "Do not show a status post for this upload"
+msgstr "Keine Statusnachricht für diesen Upload senden"
+
+#: ../../mod/photos.php:613
+msgid "Album name could not be decoded"
+msgstr "Albumname konnte nicht dekodiert werden"
+
+#: ../../mod/photos.php:654 ../../mod/photos.php:1166
+#: ../../mod/photos.php:1182
+msgid "Contact Photos"
+msgstr "Kontakt-Bilder"
+
+#: ../../mod/photos.php:678
+msgid "Show Newest First"
+msgstr "Zeige Neueste zuerst"
+
+#: ../../mod/photos.php:680
+msgid "Show Oldest First"
+msgstr "Zeige Älteste zuerst"
+
+#: ../../mod/photos.php:707 ../../mod/photos.php:1214
+msgid "View Photo"
+msgstr "Foto ansehen"
+
+#: ../../mod/photos.php:736
+msgid "Edit Album"
+msgstr "Album bearbeiten"
+
+#: ../../mod/photos.php:781
+msgid "Permission denied. Access to this item may be restricted."
+msgstr "Berechtigung verweigert. Der Zugriff ist wahrscheinlich eingeschränkt worden."
+
+#: ../../mod/photos.php:783
+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:848
+msgid "Private Photo"
+msgstr "Privates Foto"
+
+#: ../../mod/photos.php:863
+msgid "View Full Size"
+msgstr "In voller Größe anzeigen"
+
+#: ../../mod/photos.php:905 ../../mod/delegate.php:130 ../../mod/tagrm.php:133
+msgid "Remove"
+msgstr "Entferne"
+
+#: ../../mod/photos.php:937
+msgid "Edit photo"
+msgstr "Foto bearbeiten"
+
+#: ../../mod/photos.php:939
+msgid "Rotate CW (right)"
+msgstr "Drehen im UZS (rechts)"
+
+#: ../../mod/photos.php:940
+msgid "Rotate CCW (left)"
+msgstr "Drehen gegen UZS (links)"
+
+#: ../../mod/photos.php:947
+msgid "Caption"
+msgstr "Bildunterschrift"
+
+#: ../../mod/photos.php:949
+msgid "Add a Tag"
+msgstr "Schlagwort hinzufügen"
+
+#: ../../mod/photos.php:953
+msgid "Example: @bob, @Barbara_Jensen, @jim@example.com"
+msgstr "Beispiele: @ben, @Karl_Prester, @lieschen@example.com"
+
+#: ../../mod/photos.php:955
+msgid "Flag as adult in album view"
+msgstr "In der Albumansicht als nicht jugendfrei markieren"
+
+#: ../../mod/photos.php:1132
+msgid "In This Photo:"
+msgstr "Auf diesem Foto:"
+
+#: ../../mod/photos.php:1220
+msgid "View Album"
+msgstr "Album ansehen"
+
+#: ../../mod/photos.php:1243
+msgid "Recent Photos"
+msgstr "Neueste Fotos"
+
+#: ../../mod/connections.php:37 ../../mod/connedit.php:64
+msgid "Could not access contact record."
+msgstr "Konnte nicht auf den Kontakteintrag zugreifen."
+
+#: ../../mod/connections.php:51 ../../mod/connedit.php:86
+msgid "Could not locate selected profile."
+msgstr "Gewähltes Profil nicht gefunden."
+
+#: ../../mod/connections.php:94 ../../mod/connedit.php:140
+msgid "Connection updated."
+msgstr "Verbindung aktualisiert."
+
+#: ../../mod/connections.php:96 ../../mod/connedit.php:142
+msgid "Failed to update connection record."
+msgstr "Konnte den Verbindungseintrag nicht aktualisieren."
+
+#: ../../mod/connections.php:191 ../../mod/connections.php:292
+msgid "Blocked"
+msgstr "Blockiert"
+
+#: ../../mod/connections.php:196 ../../mod/connections.php:299
+msgid "Ignored"
+msgstr "Ignoriert"
+
+#: ../../mod/connections.php:201 ../../mod/connections.php:313
+msgid "Hidden"
+msgstr "Versteckt"
+
+#: ../../mod/connections.php:206 ../../mod/connections.php:306
+msgid "Archived"
+msgstr "Archiviert"
+
+#: ../../mod/connections.php:230 ../../mod/connections.php:245
+msgid "All"
+msgstr "Alle"
+
+#: ../../mod/connections.php:270
+msgid "Suggest new connections"
+msgstr "Neue Verbindungen vorschlagen"
+
+#: ../../mod/connections.php:273
+msgid "New Connections"
+msgstr "Neue Verbindungen"
+
+#: ../../mod/connections.php:276
+msgid "Show pending (new) connections"
+msgstr "Zeige ausstehende (neue) Verbindungsanfragen"
+
+#: ../../mod/connections.php:282
+msgid "Show all connections"
+msgstr "Zeige alle Verbindungen"
+
+#: ../../mod/connections.php:285
+msgid "Unblocked"
+msgstr "Freigegeben"
+
+#: ../../mod/connections.php:288
+msgid "Only show unblocked connections"
+msgstr "Zeige nur freigegebene Verbindungen"
+
+#: ../../mod/connections.php:295
+msgid "Only show blocked connections"
+msgstr "Zeige nur blockierte Verbindungen"
+
+#: ../../mod/connections.php:302
+msgid "Only show ignored connections"
+msgstr "Zeige nur ignorierte Verbindungen"
+
+#: ../../mod/connections.php:309
+msgid "Only show archived connections"
+msgstr "Zeige nur archivierte Verbindungen"
+
+#: ../../mod/connections.php:316
+msgid "Only show hidden connections"
+msgstr "Zeige nur versteckte Verbindungen"
-#: ../../include/conversation.php:1017
+#: ../../mod/connections.php:371
#, php-format
-msgid "%s don't like this."
-msgstr "%s gefällt das nicht."
+msgid "%1$s [%2$s]"
+msgstr "%1$s [%2$s]"
-#: ../../include/conversation.php:1074
-msgid "Visible to <strong>everybody</strong>"
-msgstr "Sichtbar für <strong>jeden</strong>"
+#: ../../mod/connections.php:372
+msgid "Edit connection"
+msgstr "Verbindung bearbeiten"
-#: ../../include/conversation.php:1075 ../../mod/mail.php:167
-#: ../../mod/mail.php:279
-msgid "Please enter a link URL:"
-msgstr "Gib eine URL ein:"
+#: ../../mod/connections.php:410
+msgid "Search your connections"
+msgstr "Verbindungen durchsuchen"
-#: ../../include/conversation.php:1076
-msgid "Please enter a video link/URL:"
-msgstr "Gib einen Video-Link/URL ein:"
+#: ../../mod/connections.php:411
+msgid "Finding: "
+msgstr "Ergebnisse:"
-#: ../../include/conversation.php:1077
-msgid "Please enter an audio link/URL:"
-msgstr "Gib einen Audio-Link/URL ein:"
+#: ../../mod/manage.php:136
+#, php-format
+msgid "You have created %1$.0f of %2$.0f allowed channels."
+msgstr "Du hast %1$.0f von maximal %2$.0f erlaubten Kanälen eingerichtet."
-#: ../../include/conversation.php:1078
-msgid "Tag term:"
-msgstr "Schlagwort:"
+#: ../../mod/manage.php:144
+msgid "Create a new channel"
+msgstr "Neuen Kanal anlegen"
-#: ../../include/conversation.php:1079 ../../mod/filer.php:49
-msgid "Save to Folder:"
-msgstr "Speichern in Ordner:"
+#: ../../mod/manage.php:149
+msgid "Current Channel"
+msgstr "Aktueller Kanal"
-#: ../../include/conversation.php:1080
-msgid "Where are you right now?"
-msgstr "Wo bist Du jetzt grade?"
+#: ../../mod/manage.php:151
+msgid "Attach to one of your channels by selecting it."
+msgstr "Wähle einen Deiner Kanäle aus, um ihn zu verwenden."
-#: ../../include/conversation.php:1081 ../../mod/editpost.php:52
-#: ../../mod/mail.php:168 ../../mod/mail.php:280
-msgid "Expires YYYY-MM-DD HH:MM"
-msgstr "Verfällt YYYY-MM-DD HH;MM"
+#: ../../mod/manage.php:152
+msgid "Default Channel"
+msgstr "Standard Kanal"
-#: ../../include/conversation.php:1105 ../../mod/photos.php:976
-#: ../../mod/layouts.php:113
-msgid "Share"
-msgstr "Teilen"
+#: ../../mod/manage.php:153
+msgid "Make Default"
+msgstr "Zum Standard machen"
-#: ../../include/conversation.php:1107 ../../mod/editwebpage.php:139
-msgid "Page link title"
-msgstr "Seitentitel-Link"
+#: ../../mod/rpost.php:97 ../../mod/editpost.php:42
+msgid "Edit post"
+msgstr "Bearbeite Beitrag"
-#: ../../include/conversation.php:1110
-msgid "Post as"
-msgstr "Posten als"
+#: ../../mod/connedit.php:189
+msgid "is now connected to"
+msgstr "ist jetzt verbunden mit"
-#: ../../include/conversation.php:1111 ../../mod/editpost.php:113
-#: ../../mod/editwebpage.php:144 ../../mod/mail.php:228 ../../mod/mail.php:342
-#: ../../mod/editblock.php:112 ../../mod/editlayout.php:107
-msgid "Upload photo"
-msgstr "Foto hochladen"
+#: ../../mod/connedit.php:310
+msgid "Could not access address book record."
+msgstr "Konnte nicht auf den Adressbuch-Eintrag zugreifen."
-#: ../../include/conversation.php:1112
-msgid "upload photo"
-msgstr "Foto hochladen"
+#: ../../mod/connedit.php:324
+msgid "Refresh failed - channel is currently unavailable."
+msgstr "Aktualisierung fehlgeschlagen – der Kanal ist im Moment nicht erreichbar."
-#: ../../include/conversation.php:1113 ../../mod/editpost.php:114
-#: ../../mod/editwebpage.php:145 ../../mod/mail.php:229 ../../mod/mail.php:343
-#: ../../mod/editblock.php:113 ../../mod/editlayout.php:108
-msgid "Attach file"
-msgstr "Datei anhängen"
+#: ../../mod/connedit.php:331
+msgid "Channel has been unblocked"
+msgstr "Kanal nicht mehr blockiert"
-#: ../../include/conversation.php:1114
-msgid "attach file"
-msgstr "Datei anfügen"
+#: ../../mod/connedit.php:332
+msgid "Channel has been blocked"
+msgstr "Kanal blockiert"
-#: ../../include/conversation.php:1115 ../../mod/editpost.php:115
-#: ../../mod/editwebpage.php:146 ../../mod/mail.php:230 ../../mod/mail.php:344
-#: ../../mod/editblock.php:114 ../../mod/editlayout.php:109
-msgid "Insert web link"
-msgstr "Link einfügen"
+#: ../../mod/connedit.php:336 ../../mod/connedit.php:348
+#: ../../mod/connedit.php:360 ../../mod/connedit.php:372
+#: ../../mod/connedit.php:388
+msgid "Unable to set address book parameters."
+msgstr "Konnte die Adressbuch-Parameter nicht setzen."
-#: ../../include/conversation.php:1116
-msgid "web link"
-msgstr "Web-Link"
+#: ../../mod/connedit.php:343
+msgid "Channel has been unignored"
+msgstr "Kanal wird nicht mehr ignoriert"
-#: ../../include/conversation.php:1117
-msgid "Insert video link"
-msgstr "Video-Link einfügen"
+#: ../../mod/connedit.php:344
+msgid "Channel has been ignored"
+msgstr "Kanal wird ignoriert"
-#: ../../include/conversation.php:1118
-msgid "video link"
-msgstr "Video-Link"
+#: ../../mod/connedit.php:355
+msgid "Channel has been unarchived"
+msgstr "Kanal wurde aus dem Archiv zurück geholt"
-#: ../../include/conversation.php:1119
-msgid "Insert audio link"
-msgstr "Audio-Link einfügen"
+#: ../../mod/connedit.php:356
+msgid "Channel has been archived"
+msgstr "Kanal wurde archiviert"
-#: ../../include/conversation.php:1120
-msgid "audio link"
-msgstr "Audio-Link"
+#: ../../mod/connedit.php:367
+msgid "Channel has been unhidden"
+msgstr "Kanal wird nicht mehr versteckt"
-#: ../../include/conversation.php:1121 ../../mod/editpost.php:119
-#: ../../mod/editwebpage.php:150 ../../mod/editblock.php:118
-#: ../../mod/editlayout.php:113
-msgid "Set your location"
-msgstr "Standort"
+#: ../../mod/connedit.php:368
+msgid "Channel has been hidden"
+msgstr "Kanal wurde versteckt"
-#: ../../include/conversation.php:1122
-msgid "set location"
-msgstr "Standort"
+#: ../../mod/connedit.php:383
+msgid "Channel has been approved"
+msgstr "Kanal wurde zugelassen"
-#: ../../include/conversation.php:1123 ../../mod/editpost.php:120
-#: ../../mod/editwebpage.php:151 ../../mod/editblock.php:119
-#: ../../mod/editlayout.php:114
-msgid "Clear browser location"
-msgstr "Browser-Standort löschen"
+#: ../../mod/connedit.php:384
+msgid "Channel has been unapproved"
+msgstr "Zulassung des Kanals entfernt"
-#: ../../include/conversation.php:1124
-msgid "clear location"
-msgstr "Standort löschen"
+#: ../../mod/connedit.php:412
+msgid "Connection has been removed."
+msgstr "Verbindung wurde gelöscht."
-#: ../../include/conversation.php:1126 ../../mod/editpost.php:132
-#: ../../mod/editwebpage.php:167 ../../mod/editblock.php:132
-#: ../../mod/editlayout.php:126
-msgid "Set title"
-msgstr "Titel"
+#: ../../mod/connedit.php:432
+#, php-format
+msgid "View %s's profile"
+msgstr "%ss Profil ansehen"
-#: ../../include/conversation.php:1129 ../../mod/editpost.php:134
-#: ../../mod/editwebpage.php:169 ../../mod/editblock.php:135
-#: ../../mod/editlayout.php:129
-msgid "Categories (comma-separated list)"
-msgstr "Kategorien (Kommagetrennte Liste)"
+#: ../../mod/connedit.php:436
+msgid "Refresh Permissions"
+msgstr "Zugriffsrechte neu laden"
-#: ../../include/conversation.php:1131 ../../mod/editpost.php:122
-#: ../../mod/editwebpage.php:153 ../../mod/editblock.php:121
-#: ../../mod/editlayout.php:116
-msgid "Permission settings"
-msgstr "Berechtigungs-Einstellungen"
+#: ../../mod/connedit.php:439
+msgid "Fetch updated permissions"
+msgstr "Aktualisierte Zugriffsrechte abfragen"
-#: ../../include/conversation.php:1132
-msgid "permissions"
-msgstr "Berechtigungen"
+#: ../../mod/connedit.php:443
+msgid "Recent Activity"
+msgstr "Kürzliche Aktivitäten"
-#: ../../include/conversation.php:1139 ../../mod/editpost.php:129
-#: ../../mod/editwebpage.php:162 ../../mod/editblock.php:129
-#: ../../mod/editlayout.php:123
-msgid "Public post"
-msgstr "Öffentlicher Beitrag"
+#: ../../mod/connedit.php:446
+msgid "View recent posts and comments"
+msgstr "Betrachte die neuesten Beiträge und Kommentare"
-#: ../../include/conversation.php:1141 ../../mod/editpost.php:135
-#: ../../mod/editwebpage.php:170 ../../mod/editblock.php:136
-#: ../../mod/editlayout.php:130
-msgid "Example: bob@example.com, mary@example.com"
-msgstr "Beispiel: bob@example.com, mary@example.com"
+#: ../../mod/connedit.php:450 ../../mod/connedit.php:594
+#: ../../mod/admin.php:732
+msgid "Unblock"
+msgstr "Freigeben"
-#: ../../include/conversation.php:1154 ../../mod/editpost.php:146
-#: ../../mod/editwebpage.php:179 ../../mod/mail.php:235 ../../mod/mail.php:349
-#: ../../mod/editblock.php:146 ../../mod/editlayout.php:140
-msgid "Set expiration date"
-msgstr "Verfallsdatum"
+#: ../../mod/connedit.php:450 ../../mod/connedit.php:594
+#: ../../mod/admin.php:731
+msgid "Block"
+msgstr "Blockieren"
-#: ../../include/conversation.php:1158 ../../mod/editpost.php:150
-msgid "OK"
-msgstr "Ok"
+#: ../../mod/connedit.php:453
+msgid "Block or Unblock this connection"
+msgstr "Verbindung blockieren oder freigeben"
-#: ../../include/conversation.php:1159 ../../mod/settings.php:517
-#: ../../mod/settings.php:543 ../../mod/fbrowser.php:82
-#: ../../mod/fbrowser.php:117 ../../mod/editpost.php:151
-#: ../../mod/tagrm.php:11 ../../mod/tagrm.php:94
-msgid "Cancel"
-msgstr "Abbrechen"
+#: ../../mod/connedit.php:457 ../../mod/connedit.php:595
+msgid "Unignore"
+msgstr "Nicht ignorieren"
-#: ../../include/conversation.php:1401
-msgid "Discover"
-msgstr "Entdecken"
+#: ../../mod/connedit.php:457 ../../mod/connedit.php:595
+#: ../../mod/notifications.php:51
+msgid "Ignore"
+msgstr "Ignorieren"
-#: ../../include/conversation.php:1404
-msgid "Imported public streams"
-msgstr "Importierte öffentliche Beitragsströme"
+#: ../../mod/connedit.php:460
+msgid "Ignore or Unignore this connection"
+msgstr "Verbindung ignorieren oder wieder beachten"
-#: ../../include/conversation.php:1409
-msgid "Commented Order"
-msgstr "Neueste Kommentare"
+#: ../../mod/connedit.php:463
+msgid "Unarchive"
+msgstr "Aus Archiv zurückholen"
-#: ../../include/conversation.php:1412
-msgid "Sort by Comment Date"
-msgstr "Nach Kommentardatum sortiert"
+#: ../../mod/connedit.php:463
+msgid "Archive"
+msgstr "Archivieren"
-#: ../../include/conversation.php:1416
-msgid "Posted Order"
-msgstr "Neueste Beiträge"
+#: ../../mod/connedit.php:466
+msgid "Archive or Unarchive this connection"
+msgstr "Verbindung archivieren oder aus dem Archiv zurückholen"
-#: ../../include/conversation.php:1419
-msgid "Sort by Post Date"
-msgstr "Nach Beitragsdatum sortiert"
+#: ../../mod/connedit.php:469
+msgid "Unhide"
+msgstr "Wieder sichtbar machen"
-#: ../../include/conversation.php:1424 ../../include/widgets.php:82
-msgid "Personal"
-msgstr "Persönlich"
+#: ../../mod/connedit.php:469
+msgid "Hide"
+msgstr "Verstecken"
-#: ../../include/conversation.php:1427
-msgid "Posts that mention or involve you"
-msgstr "Beiträge mit Beteiligung Deinerseits"
+#: ../../mod/connedit.php:472
+msgid "Hide or Unhide this connection"
+msgstr "Diese Verbindung verstecken oder wieder sichtbar machen"
-#: ../../include/conversation.php:1433 ../../mod/connections.php:211
-#: ../../mod/connections.php:224 ../../mod/menu.php:61
-msgid "New"
-msgstr "Neu"
+#: ../../mod/connedit.php:479
+msgid "Delete this connection"
+msgstr "Verbindung löschen"
-#: ../../include/conversation.php:1436
-msgid "Activity Stream - by date"
-msgstr "Activity Stream – nach Datum sortiert"
+#: ../../mod/connedit.php:522 ../../mod/connedit.php:552
+msgid "Approve this connection"
+msgstr "Verbindung genehmigen"
-#: ../../include/conversation.php:1442
-msgid "Starred"
-msgstr "Markiert"
+#: ../../mod/connedit.php:522
+msgid "Accept connection to allow communication"
+msgstr "Akzeptiere die Verbindung, um Kommunikation zu ermöglichen"
-#: ../../include/conversation.php:1445
-msgid "Favourite Posts"
-msgstr "Markierte Beiträge"
+#: ../../mod/connedit.php:538
+#, php-format
+msgid "Connections: settings for %s"
+msgstr "Verbindungseinstellungen für %s"
-#: ../../include/conversation.php:1452
-msgid "Spam"
-msgstr "Spam"
+#: ../../mod/connedit.php:539
+msgid "Apply these permissions automatically"
+msgstr "Diese Berechtigungen automatisch anwenden"
-#: ../../include/conversation.php:1455
-msgid "Posts flagged as SPAM"
-msgstr "Nachrichten, die als SPAM markiert wurden"
+#: ../../mod/connedit.php:543
+msgid "Apply the permissions indicated on this page to all new connections."
+msgstr "Wende die auf dieser Seite gewählten Berechtigungen auf alle neuen Verbindungen an."
-#: ../../include/conversation.php:1491 ../../mod/admin.php:892
-msgid "Channel"
-msgstr "Kanal"
+#: ../../mod/connedit.php:545
+msgid "Slide to adjust your degree of friendship"
+msgstr "Verschieben, um den Grad der Freundschaft zu einzustellen"
-#: ../../include/conversation.php:1494
-msgid "Status Messages and Posts"
-msgstr "Statusnachrichten und Beiträge"
+#: ../../mod/connedit.php:551
+msgid "inherited"
+msgstr "geerbt"
-#: ../../include/conversation.php:1503
-msgid "About"
-msgstr "Ãœber"
+#: ../../mod/connedit.php:553
+msgid "Connection has no individual permissions!"
+msgstr "Diese Verbindung hat keine individuellen Zugriffsrechte!"
-#: ../../include/conversation.php:1506
-msgid "Profile Details"
-msgstr "Profil-Details"
+#: ../../mod/connedit.php:554
+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äre-Einstellungen</a> könnte das passen, eventuell solltest Du aber die „Zugriffsrechte für Fortgeschrittene“ überprüfen."
-#: ../../include/conversation.php:1524
-msgid "Files and Storage"
-msgstr "Dateien und Speicher"
+#: ../../mod/connedit.php:556
+msgid "Profile Visibility"
+msgstr "Sichtbarkeit des Profils"
-#: ../../include/conversation.php:1533 ../../include/conversation.php:1536
-msgid "Chatrooms"
-msgstr "Chaträume"
+#: ../../mod/connedit.php:557
+#, 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."
-#: ../../include/conversation.php:1546
-msgid "Saved Bookmarks"
-msgstr "Gespeicherte Lesezeichen"
+#: ../../mod/connedit.php:558
+msgid "Contact Information / Notes"
+msgstr "Kontaktinformationen / Notizen"
-#: ../../include/conversation.php:1557
-msgid "Manage Webpages"
-msgstr "Webseiten verwalten"
+#: ../../mod/connedit.php:559
+msgid "Edit contact notes"
+msgstr "Kontaktnotizen bearbeiten"
-#: ../../include/acl_selectors.php:240
-msgid "Visible to your default audience"
-msgstr "Standard-Sichtbarkeit"
+#: ../../mod/connedit.php:561
+msgid "Their Settings"
+msgstr "Deren Einstellungen"
-#: ../../include/acl_selectors.php:241
-msgid "Show"
-msgstr "Zeigen"
+#: ../../mod/connedit.php:562
+msgid "My Settings"
+msgstr "Meine Einstellungen"
-#: ../../include/acl_selectors.php:242
-msgid "Don't show"
-msgstr "Nicht zeigen"
+#: ../../mod/connedit.php:564
+msgid "Clear/Disable Automatic Permissions"
+msgstr "Automatische Berechtigungen abschalten/entfernen"
-#: ../../include/acl_selectors.php:248 ../../mod/filestorage.php:128
-#: ../../mod/photos.php:604 ../../mod/photos.php:952 ../../mod/chat.php:209
-msgid "Permissions"
-msgstr "Berechtigungen"
+#: ../../mod/connedit.php:565
+msgid "Forum Members"
+msgstr "Forum Mitglieder"
-#: ../../include/widgets.php:80
-msgid "System"
-msgstr "System"
+#: ../../mod/connedit.php:566
+msgid "Soapbox"
+msgstr "Marktschreier"
-#: ../../include/widgets.php:83
-msgid "Create Personal App"
-msgstr "Erstelle persönliche App"
+#: ../../mod/connedit.php:567
+msgid "Full Sharing (typical social network permissions)"
+msgstr "Vollumfängliches Teilen (übliche Berechtigungen in sozialen Netzwerken)"
-#: ../../include/widgets.php:84
-msgid "Edit Personal App"
-msgstr "Editiere persönliche App"
+#: ../../mod/connedit.php:568
+msgid "Cautious Sharing "
+msgstr "Vorsichtiges Teilen"
-#: ../../include/widgets.php:130 ../../mod/suggest.php:53
-msgid "Ignore/Hide"
-msgstr "Ignorieren/Verstecken"
+#: ../../mod/connedit.php:569
+msgid "Follow Only"
+msgstr "Nur folgen"
-#: ../../include/widgets.php:136 ../../mod/connections.php:267
-msgid "Suggestions"
-msgstr "Vorschläge"
+#: ../../mod/connedit.php:570
+msgid "Individual Permissions"
+msgstr "Individuelle Zugriffsrechte"
-#: ../../include/widgets.php:137
-msgid "See more..."
-msgstr "Mehr anzeigen …"
+#: ../../mod/connedit.php:571
+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 "Einige Berechtigungen werden von den globalen <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/connedit.php:572
+msgid "Advanced Permissions"
+msgstr "Zugriffsrechte für Fortgeschrittene"
+
+#: ../../mod/connedit.php:573
+msgid "Simple Permissions (select one and submit)"
+msgstr "Einfache Berechtigungs-Einstellungen (wähle eine aus und klicke auf Senden)"
-#: ../../include/widgets.php:159
+#: ../../mod/connedit.php:577
#, php-format
-msgid "You have %1$.0f of %2$.0f allowed connections."
-msgstr "Du bist %1$.0f von maximal %2$.0f erlaubten Verbindungen eingegangen."
+msgid "Visit %s's profile - %s"
+msgstr "%ss Profil besuchen - %s"
-#: ../../include/widgets.php:165
-msgid "Add New Connection"
-msgstr "Neue Verbindung hinzufügen"
+#: ../../mod/connedit.php:578
+msgid "Block/Unblock contact"
+msgstr "Kontakt blockieren/freigeben"
-#: ../../include/widgets.php:166
-msgid "Enter the channel address"
-msgstr "Adresse des Kanals eingeben"
+#: ../../mod/connedit.php:579
+msgid "Ignore contact"
+msgstr "Kontakt ignorieren"
-#: ../../include/widgets.php:167
-msgid "Example: bob@example.com, http://example.com/barbara"
-msgstr "Beispiel: bob@beispiel.com, http://beispiel.com/barbara"
+#: ../../mod/connedit.php:580
+msgid "Repair URL settings"
+msgstr "URL-Einstellungen reparieren"
-#: ../../include/widgets.php:184
-msgid "Notes"
-msgstr "Notizen"
+#: ../../mod/connedit.php:581
+msgid "View conversations"
+msgstr "Unterhaltungen anzeigen"
-#: ../../include/widgets.php:256
-msgid "Remove term"
-msgstr "Eintrag löschen"
+#: ../../mod/connedit.php:583
+msgid "Delete contact"
+msgstr "Kontakt löschen"
-#: ../../include/widgets.php:335
-msgid "Archives"
-msgstr "Archive"
+#: ../../mod/connedit.php:586
+msgid "Last update:"
+msgstr "Letzte Aktualisierung:"
-#: ../../include/widgets.php:397
-msgid "Refresh"
-msgstr "Aktualisieren"
+#: ../../mod/connedit.php:588
+msgid "Update public posts"
+msgstr "Öffentliche Beiträge aktualisieren"
-#: ../../include/widgets.php:398 ../../mod/connedit.php:470
-msgid "Me"
-msgstr "Ich"
+#: ../../mod/connedit.php:590
+msgid "Update now"
+msgstr "Jetzt aktualisieren"
-#: ../../include/widgets.php:399 ../../mod/connedit.php:472
-msgid "Best Friends"
-msgstr "Beste Freunde"
+#: ../../mod/connedit.php:596
+msgid "Currently blocked"
+msgstr "Derzeit blockiert"
-#: ../../include/widgets.php:401
-msgid "Co-workers"
-msgstr "Kollegen"
+#: ../../mod/connedit.php:597
+msgid "Currently ignored"
+msgstr "Derzeit ignoriert"
-#: ../../include/widgets.php:402 ../../mod/connedit.php:474
-msgid "Former Friends"
-msgstr "ehem. Freunde"
+#: ../../mod/connedit.php:598
+msgid "Currently archived"
+msgstr "Derzeit archiviert"
-#: ../../include/widgets.php:403 ../../mod/connedit.php:475
-msgid "Acquaintances"
-msgstr "Bekannte"
+#: ../../mod/connedit.php:599
+msgid "Currently pending"
+msgstr "Derzeit anstehend"
-#: ../../include/widgets.php:404
-msgid "Everybody"
-msgstr "Jeder"
+#: ../../mod/connedit.php:600
+msgid "Hide this contact from others"
+msgstr "Diese Verbindung vor den anderen verbergen."
-#: ../../include/widgets.php:436
-msgid "Account settings"
-msgstr "Konto-Einstellungen"
+#: ../../mod/connedit.php:600
+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"
-#: ../../include/widgets.php:442
-msgid "Channel settings"
-msgstr "Kanal-Einstellungen"
+#: ../../mod/openid.php:26
+msgid "OpenID protocol error. No ID returned."
+msgstr "OpenID Protokollfehler. Keine ID zurückgegeben."
-#: ../../include/widgets.php:448
-msgid "Additional features"
-msgstr "Zusätzliche Funktionen"
+#: ../../mod/thing.php:96
+msgid "Thing updated"
+msgstr "Sache aktualisiert"
-#: ../../include/widgets.php:454
-msgid "Feature settings"
-msgstr "Funktions-Einstellungen"
+#: ../../mod/thing.php:156
+msgid "Object store: failed"
+msgstr "Speichern des Objekts fehlgeschlagen"
-#: ../../include/widgets.php:460
-msgid "Display settings"
-msgstr "Anzeige-Einstellungen"
+#: ../../mod/thing.php:160
+msgid "Thing added"
+msgstr "Sache hinzugefügt"
-#: ../../include/widgets.php:466
-msgid "Connected apps"
-msgstr "Verbundene Apps"
+#: ../../mod/thing.php:180
+#, php-format
+msgid "OBJ: %1$s %2$s %3$s"
+msgstr "OBJ: %1$s %2$s %3$s"
-#: ../../include/widgets.php:472
-msgid "Export channel"
-msgstr "Kanal exportieren"
+#: ../../mod/thing.php:232
+msgid "Show Thing"
+msgstr "Sache anzeigen"
-#: ../../include/widgets.php:484
-msgid "Automatic Permissions (Advanced)"
-msgstr "Automatische Berechtigungen (Erweitert)"
+#: ../../mod/thing.php:239
+msgid "item not found."
+msgstr "Eintrag nicht gefunden"
-#: ../../include/widgets.php:494
-msgid "Premium Channel Settings"
-msgstr "Premium-Kanal-Einstellungen"
+#: ../../mod/thing.php:270
+msgid "Edit Thing"
+msgstr "Sache bearbeiten"
-#: ../../include/widgets.php:531
-msgid "Check Mail"
-msgstr "E-Mails abrufen"
+#: ../../mod/thing.php:272 ../../mod/thing.php:319
+msgid "Select a profile"
+msgstr "Wähle ein Profil"
-#: ../../include/widgets.php:612
-msgid "Chat Rooms"
-msgstr "Chaträume"
+#: ../../mod/thing.php:276 ../../mod/thing.php:322
+msgid "Post an activity"
+msgstr "Aktivitätsnachricht senden"
-#: ../../include/widgets.php:630
-msgid "Bookmarked Chatrooms"
-msgstr "Gespeicherte Chatrooms"
+#: ../../mod/thing.php:276 ../../mod/thing.php:322
+msgid "Only sends to viewers of the applicable profile"
+msgstr "Nur an Betrachter des ausgewählten Profils senden"
-#: ../../include/widgets.php:648
-msgid "Suggested Chatrooms"
-msgstr "Vorgeschlagene Chaträume"
+#: ../../mod/thing.php:278 ../../mod/thing.php:324
+msgid "Name of thing e.g. something"
+msgstr "Name der Sache, z. B. irgendwas"
-#: ../../include/follow.php:23
-msgid "Channel is blocked on this site."
-msgstr "Der Kanal ist auf dieser Seite blockiert "
+#: ../../mod/thing.php:280 ../../mod/thing.php:325
+msgid "URL of thing (optional)"
+msgstr "URL der Sache (optional)"
-#: ../../include/follow.php:28
-msgid "Channel location missing."
-msgstr "Adresse des Kanals fehlt."
+#: ../../mod/thing.php:282 ../../mod/thing.php:326
+msgid "URL for photo of thing (optional)"
+msgstr "URL eines Fotos der Sache (optional)"
-#: ../../include/follow.php:54
-msgid "Response from remote channel was incomplete."
-msgstr "Antwort des entfernten Kanals war unvollständig."
+#: ../../mod/thing.php:317
+msgid "Add Thing to your Profile"
+msgstr "Die Sache Deinem Profil hinzufügen"
-#: ../../include/follow.php:85
-msgid "Channel was deleted and no longer exists."
-msgstr "Kanal wurde gelöscht und existiert nicht mehr."
+#: ../../mod/lostpass.php:15
+msgid "No valid account found."
+msgstr "Kein gültiges Konto gefunden."
-#: ../../include/follow.php:132
-msgid "Channel discovery failed."
-msgstr "Kanalerkennung fehlgeschlagen"
+#: ../../mod/lostpass.php:29
+msgid "Password reset request issued. Check your email."
+msgstr "Zurücksetzen des Passworts eingeleitet. Schau in Deine E-Mails."
-#: ../../include/follow.php:149
-msgid "local account not found."
-msgstr "Lokales Konto nicht gefunden."
+#: ../../mod/lostpass.php:35 ../../mod/lostpass.php:102
+#, php-format
+msgid "Site Member (%s)"
+msgstr "Nutzer (%s)"
-#: ../../include/follow.php:158
-msgid "Cannot connect to yourself."
-msgstr "Du kannst Dich nicht mit Dir selbst verbinden."
+#: ../../mod/lostpass.php:40
+#, php-format
+msgid "Password reset requested at %s"
+msgstr "Passwort-Rücksetzung auf %s angefordert"
-#: ../../include/plugin.php:504 ../../include/plugin.php:506
-msgid "Click here to upgrade."
-msgstr "Klicke hier, um das Upgrade durchzuführen."
+#: ../../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. (Vielleicht hast Du schon einmal auf den Link in der E-Mail geklickt?) Passwort-Rücksetzung fehlgeschlagen."
-#: ../../include/plugin.php:512
-msgid "This action exceeds the limits set by your subscription plan."
-msgstr "Diese Aktion überschreitet die Grenzen Ihres Abonnements."
+#: ../../mod/lostpass.php:85 ../../boot.php:1494
+msgid "Password Reset"
+msgstr "Zurücksetzen des Kennworts"
-#: ../../include/plugin.php:517
-msgid "This action is not available under your subscription plan."
-msgstr "Diese Aktion ist in Ihrem Abonnement nicht verfügbar."
+#: ../../mod/lostpass.php:86
+msgid "Your password has been reset as requested."
+msgstr "Dein Passwort wurde wie angefordert neu erstellt."
-#: ../../mod/post.php:229
+#: ../../mod/lostpass.php:87
+msgid "Your new password is"
+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"
+
+#: ../../mod/lostpass.php:89
+msgid "click here to login"
+msgstr "Klicke hier, um dich anzumelden"
+
+#: ../../mod/lostpass.php:90
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."
+"Your password may be changed from the <em>Settings</em> page after "
+"successful login."
+msgstr "Dein Passwort kann unter <em>Einstellungen</em> nach einer erfolgreichen Anmeldung geändert werden."
-#: ../../mod/post.php:261 ../../mod/openid.php:72 ../../mod/openid.php:178
+#: ../../mod/lostpass.php:107
#, php-format
-msgid "Welcome %s. Remote authentication successful."
-msgstr "Willkommen %s. Entfernte Authentifizierung erfolgreich."
+msgid "Your password has changed at %s"
+msgstr "Auf %s wurde Dein Passwort geändert"
+
+#: ../../mod/lostpass.php:122
+msgid "Forgot your Password?"
+msgstr "Kennwort vergessen?"
+
+#: ../../mod/lostpass.php:123
+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 ein, um Dein Passwort zurücksetzen zu lassen. Du erhältst dann weitere Anweisungen per E-Mail."
+
+#: ../../mod/lostpass.php:124
+msgid "Email Address"
+msgstr "E-Mail Adresse"
+
+#: ../../mod/lostpass.php:125
+msgid "Reset"
+msgstr "Zurücksetzen"
+
+#: ../../mod/bookmarks.php:38
+msgid "Bookmark added"
+msgstr "Lesezeichen hinzugefügt"
+
+#: ../../mod/bookmarks.php:60
+msgid "My Bookmarks"
+msgstr "Meine Lesezeichen"
+
+#: ../../mod/bookmarks.php:71
+msgid "My Connections Bookmarks"
+msgstr "Lesezeichen meiner Kontakte"
+
+#: ../../mod/dirsearch.php:21
+msgid "This site is not a directory server"
+msgstr "Diese Website ist kein Verzeichnis-Server"
+
+#: ../../mod/cloud.php:130
+msgid "RedMatrix - Guests: Username: {your email address}, Password: +++"
+msgstr "RedMatrix – Gäste: Username: {Deine E-Mail-Adresse}, Passwort: +++"
+
+#: ../../mod/ping.php:257
+msgid "sent you a private message"
+msgstr "eine private Nachricht schicken"
+
+#: ../../mod/ping.php:308
+msgid "added your channel"
+msgstr "hat deinen Kanal hinzugefügt"
+
+#: ../../mod/ping.php:349
+msgid "posted an event"
+msgstr "hat einen Termin veröffentlicht"
+
+#: ../../mod/editblock.php:79 ../../mod/editblock.php:95
+#: ../../mod/editlayout.php:78 ../../mod/editpost.php:20
+#: ../../mod/editwebpage.php:77
+msgid "Item not found"
+msgstr "Element nicht gefunden"
+
+#: ../../mod/editblock.php:115
+msgid "Edit Block"
+msgstr "Block bearbeiten"
+
+#: ../../mod/editblock.php:125
+msgid "Delete block?"
+msgstr "Block löschen?"
+
+#: ../../mod/editblock.php:147 ../../mod/editlayout.php:143
+#: ../../mod/editpost.php:116 ../../mod/editwebpage.php:178
+msgid "Insert YouTube video"
+msgstr "YouTube-Video einfügen"
+
+#: ../../mod/editblock.php:148 ../../mod/editlayout.php:144
+#: ../../mod/editpost.php:117 ../../mod/editwebpage.php:179
+msgid "Insert Vorbis [.ogg] video"
+msgstr "Vorbis [.ogg]-Video einfügen"
+
+#: ../../mod/editblock.php:149 ../../mod/editlayout.php:145
+#: ../../mod/editpost.php:118 ../../mod/editwebpage.php:180
+msgid "Insert Vorbis [.ogg] audio"
+msgstr "Vorbis [.ogg]-Audio einfügen"
+
+#: ../../mod/editblock.php:183
+msgid "Delete Block"
+msgstr "Block löschen"
+
+#: ../../mod/pdledit.php:13
+msgid "Layout updated."
+msgstr "Layout aktualisiert."
+
+#: ../../mod/pdledit.php:28 ../../mod/pdledit.php:53
+msgid "Edit System Page Description"
+msgstr "Systemseitenbeschreibung bearbeiten"
+
+#: ../../mod/pdledit.php:48
+msgid "Layout not found."
+msgstr "Layout nicht gefunden."
-#: ../../mod/settings.php:71
+#: ../../mod/pdledit.php:54
+msgid "Module Name:"
+msgstr "Modulname:"
+
+#: ../../mod/pdledit.php:55 ../../mod/layouts.php:107
+msgid "Layout Help"
+msgstr "Layout-Hilfe"
+
+#: ../../mod/editlayout.php:108
+msgid "Edit Layout"
+msgstr "Layout bearbeiten"
+
+#: ../../mod/editlayout.php:117
+msgid "Delete layout?"
+msgstr "Layout löschen?"
+
+#: ../../mod/editlayout.php:178
+msgid "Delete Layout"
+msgstr "Layout löschen"
+
+#: ../../mod/editpost.php:31
+msgid "Item is not editable"
+msgstr "Element kann nicht bearbeitet werden."
+
+#: ../../mod/editpost.php:53
+msgid "Delete item?"
+msgstr "Eintrag löschen?"
+
+#: ../../mod/settings.php:73
msgid "Name is required"
msgstr "Name ist erforderlich"
-#: ../../mod/settings.php:75
+#: ../../mod/settings.php:77
msgid "Key and Secret are required"
msgstr "Schlüssel und Geheimnis werden benötigt"
-#: ../../mod/settings.php:195
+#: ../../mod/settings.php:197
msgid "Passwords do not match. Password unchanged."
msgstr "Kennwörter stimmen nicht überein. Kennwort nicht verändert."
-#: ../../mod/settings.php:199
+#: ../../mod/settings.php:201
msgid "Empty passwords are not allowed. Password unchanged."
msgstr "Leere Kennwörter sind nicht erlaubt. Kennwort nicht verändert."
-#: ../../mod/settings.php:213
+#: ../../mod/settings.php:215
msgid "Password changed."
msgstr "Kennwort geändert."
-#: ../../mod/settings.php:215
+#: ../../mod/settings.php:217
msgid "Password update failed. Please try again."
msgstr "Kennwortänderung fehlgeschlagen. Bitte versuche es noch einmal."
-#: ../../mod/settings.php:229
+#: ../../mod/settings.php:231
msgid "Not valid email."
msgstr "Keine gültige E-Mail Adresse."
-#: ../../mod/settings.php:232
+#: ../../mod/settings.php:234
msgid "Protected email address. Cannot change to that email."
msgstr "Geschützte E-Mail Adresse. Diese kann nicht verändert werden."
-#: ../../mod/settings.php:241
+#: ../../mod/settings.php:243
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:444
+#: ../../mod/settings.php:479
msgid "Settings updated."
msgstr "Einstellungen aktualisiert."
-#: ../../mod/settings.php:515 ../../mod/settings.php:541
-#: ../../mod/settings.php:577
+#: ../../mod/settings.php:548 ../../mod/settings.php:574
+#: ../../mod/settings.php:610
msgid "Add application"
msgstr "Anwendung hinzufügen"
-#: ../../mod/settings.php:518
+#: ../../mod/settings.php:551
msgid "Name of application"
msgstr "Name der Anwendung"
-#: ../../mod/settings.php:519 ../../mod/settings.php:545
+#: ../../mod/settings.php:552 ../../mod/settings.php:578
msgid "Consumer Key"
msgstr "Consumer Key"
-#: ../../mod/settings.php:519 ../../mod/settings.php:520
+#: ../../mod/settings.php:552 ../../mod/settings.php:553
msgid "Automatically generated - change if desired. Max length 20"
msgstr "Automatisch erzeugt – ändern, falls erwünscht. Maximale Länge 20"
-#: ../../mod/settings.php:520 ../../mod/settings.php:546
+#: ../../mod/settings.php:553 ../../mod/settings.php:579
msgid "Consumer Secret"
msgstr "Consumer Secret"
-#: ../../mod/settings.php:521 ../../mod/settings.php:547
+#: ../../mod/settings.php:554 ../../mod/settings.php:580
msgid "Redirect"
msgstr "Umleitung"
-#: ../../mod/settings.php:521
+#: ../../mod/settings.php:554
msgid ""
"Redirect URI - leave blank unless your application specifically requires "
"this"
-msgstr "Umleitungs-URl – lasse das leer, wenn Deine Anwendung es nicht explizit erfordert"
+msgstr "Umleitungs-URl – lasse das leer, solange Deine Anwendung es nicht explizit erfordert"
-#: ../../mod/settings.php:522 ../../mod/settings.php:548
+#: ../../mod/settings.php:555 ../../mod/settings.php:581
msgid "Icon url"
msgstr "Symbol-URL"
-#: ../../mod/settings.php:522
+#: ../../mod/settings.php:555
msgid "Optional"
msgstr "Optional"
-#: ../../mod/settings.php:533
+#: ../../mod/settings.php:566
msgid "You can't edit this application."
msgstr "Diese Anwendung kann nicht bearbeitet werden."
-#: ../../mod/settings.php:576
+#: ../../mod/settings.php:609
msgid "Connected Apps"
msgstr "Verbundene Apps"
-#: ../../mod/settings.php:580
+#: ../../mod/settings.php:613
msgid "Client key starts with"
-msgstr "Client key beginnt mit"
+msgstr "Client Key beginnt mit"
-#: ../../mod/settings.php:581
+#: ../../mod/settings.php:614
msgid "No name"
msgstr "Kein Name"
-#: ../../mod/settings.php:582
+#: ../../mod/settings.php:615
msgid "Remove authorization"
msgstr "Authorisierung aufheben"
-#: ../../mod/settings.php:593
+#: ../../mod/settings.php:626
msgid "No feature settings configured"
msgstr "Keine Funktions-Einstellungen konfiguriert"
-#: ../../mod/settings.php:601
+#: ../../mod/settings.php:634
msgid "Feature Settings"
msgstr "Funktions-Einstellungen"
-#: ../../mod/settings.php:624
+#: ../../mod/settings.php:657
msgid "Account Settings"
msgstr "Konto-Einstellungen"
-#: ../../mod/settings.php:625
+#: ../../mod/settings.php:658
msgid "Password Settings"
msgstr "Kennwort-Einstellungen"
-#: ../../mod/settings.php:626
+#: ../../mod/settings.php:659
msgid "New Password:"
msgstr "Neues Passwort:"
-#: ../../mod/settings.php:627
+#: ../../mod/settings.php:660
msgid "Confirm:"
msgstr "Bestätigen:"
-#: ../../mod/settings.php:627
+#: ../../mod/settings.php:660
msgid "Leave password fields blank unless changing"
msgstr "Lasse die Passwort-Felder leer, außer Du möchtest das Passwort ändern"
-#: ../../mod/settings.php:629 ../../mod/settings.php:937
+#: ../../mod/settings.php:662 ../../mod/settings.php:985
msgid "Email Address:"
msgstr "Email Adresse:"
-#: ../../mod/settings.php:630
+#: ../../mod/settings.php:663 ../../mod/removeaccount.php:61
msgid "Remove Account"
msgstr "Konto entfernen"
-#: ../../mod/settings.php:631 ../../mod/settings.php:1000
+#: ../../mod/settings.php:664
+msgid "Remove this account from this server including all its channels"
+msgstr "Lösche dieses Konto einschließlich aller zugehörigen Kanäle von diesem Server"
+
+#: ../../mod/settings.php:665 ../../mod/settings.php:1067
msgid "Warning: This action is permanent and cannot be reversed."
msgstr "Achtung: Diese Aktion ist endgültig und kann nicht rückgängig gemacht werden."
-#: ../../mod/settings.php:647
+#: ../../mod/settings.php:681
msgid "Off"
msgstr "Aus"
-#: ../../mod/settings.php:647
+#: ../../mod/settings.php:681
msgid "On"
msgstr "An"
-#: ../../mod/settings.php:654
+#: ../../mod/settings.php:688
msgid "Additional Features"
msgstr "Zusätzliche Funktionen"
-#: ../../mod/settings.php:679
+#: ../../mod/settings.php:713
msgid "Connector Settings"
msgstr "Connector-Einstellungen"
-#: ../../mod/settings.php:709 ../../mod/admin.php:390
+#: ../../mod/settings.php:743
msgid "No special theme for mobile devices"
msgstr "Keine spezielle Theme für mobile Geräte"
-#: ../../mod/settings.php:718
+#: ../../mod/settings.php:752
#, php-format
msgid "%s - (Experimental)"
-msgstr "%s - (Experimentell)"
+msgstr "%s – (experimentell)"
-#: ../../mod/settings.php:748
+#: ../../mod/settings.php:788
msgid "Display Settings"
msgstr "Anzeige-Einstellungen"
-#: ../../mod/settings.php:754
+#: ../../mod/settings.php:794
msgid "Display Theme:"
msgstr "Anzeige-Theme:"
-#: ../../mod/settings.php:755
+#: ../../mod/settings.php:795
msgid "Mobile Theme:"
msgstr "Mobile Theme:"
-#: ../../mod/settings.php:756
+#: ../../mod/settings.php:796
+msgid "Enable user zoom on mobile devices"
+msgstr "Zoom auf Mobilgeräten aktivieren"
+
+#: ../../mod/settings.php:797
msgid "Update browser every xx seconds"
msgstr "Browser alle xx Sekunden aktualisieren"
-#: ../../mod/settings.php:756
+#: ../../mod/settings.php:797
msgid "Minimum of 10 seconds, no maximum"
msgstr "Minimum 10 Sekunden, kein Maximum"
-#: ../../mod/settings.php:757
+#: ../../mod/settings.php:798
msgid "Maximum number of conversations to load at any time:"
msgstr "Maximale Anzahl von Unterhaltungen, die auf einmal geladen werden sollen:"
-#: ../../mod/settings.php:757
+#: ../../mod/settings.php:798
msgid "Maximum of 100 items"
msgstr "Maximum: 100 Beiträge"
-#: ../../mod/settings.php:758
+#: ../../mod/settings.php:799
msgid "Don't show emoticons"
msgstr "Emoticons nicht zeigen"
-#: ../../mod/settings.php:759
+#: ../../mod/settings.php:800
+msgid "Link post titles to source"
+msgstr "Beitragstitel zum Originalbeitrag verlinken"
+
+#: ../../mod/settings.php:801
msgid "System Page Layout Editor - (advanced)"
-msgstr "(Erweiterter) Seitenlayout Editor"
+msgstr "System-Seitenlayout-Editor (für Experten)"
-#: ../../mod/settings.php:794
+#: ../../mod/settings.php:835
msgid "Nobody except yourself"
msgstr "Niemand außer Dir selbst"
-#: ../../mod/settings.php:795
+#: ../../mod/settings.php:836
msgid "Only those you specifically allow"
msgstr "Nur die, denen Du es explizit erlaubst"
-#: ../../mod/settings.php:796
+#: ../../mod/settings.php:837
msgid "Approved connections"
-msgstr "Erlaubte Verbindung"
+msgstr "Angenommene Verbindungen"
-#: ../../mod/settings.php:797
+#: ../../mod/settings.php:838
msgid "Any connections"
-msgstr "Beliebige Verbindung"
+msgstr "Beliebige Verbindungen"
-#: ../../mod/settings.php:798
+#: ../../mod/settings.php:839
msgid "Anybody on this website"
msgstr "Jeder auf dieser Website"
-#: ../../mod/settings.php:799
+#: ../../mod/settings.php:840
msgid "Anybody in this network"
msgstr "Alle Red-Nutzer"
-#: ../../mod/settings.php:800
+#: ../../mod/settings.php:841
msgid "Anybody authenticated"
msgstr "Jeder authentifizierte"
-#: ../../mod/settings.php:801
+#: ../../mod/settings.php:842
msgid "Anybody on the internet"
msgstr "Jeder im Internet"
-#: ../../mod/settings.php:878
+#: ../../mod/settings.php:916
msgid "Publish your default profile in the network directory"
msgstr "Standard-Profil im Netzwerk-Verzeichnis veröffentlichen"
-#: ../../mod/settings.php:878 ../../mod/settings.php:883
-#: ../../mod/settings.php:954 ../../mod/admin.php:420
-#: ../../mod/profiles.php:566 ../../mod/api.php:106
-msgid "No"
-msgstr "Nein"
-
-#: ../../mod/settings.php:878 ../../mod/settings.php:883
-#: ../../mod/settings.php:954 ../../mod/admin.php:422
-#: ../../mod/profiles.php:565 ../../mod/api.php:105
-msgid "Yes"
-msgstr "Ja"
-
-#: ../../mod/settings.php:883
+#: ../../mod/settings.php:921
msgid "Allow us to suggest you as a potential friend to new members?"
msgstr "Dürfen wir Dich neuen Mitgliedern als potentiellen Kontakt vorschlagen?"
-#: ../../mod/settings.php:887 ../../mod/profile_photo.php:365
+#: ../../mod/settings.php:925 ../../mod/profile_photo.php:365
msgid "or"
msgstr "oder"
-#: ../../mod/settings.php:892
+#: ../../mod/settings.php:930
msgid "Your channel address is"
msgstr "Deine Kanal-Adresse lautet"
-#: ../../mod/settings.php:926
+#: ../../mod/settings.php:974
msgid "Channel Settings"
msgstr "Kanal-Einstellungen"
-#: ../../mod/settings.php:935
+#: ../../mod/settings.php:983
msgid "Basic Settings"
msgstr "Grundeinstellungen"
-#: ../../mod/settings.php:938
+#: ../../mod/settings.php:986
msgid "Your Timezone:"
msgstr "Ihre Zeitzone:"
-#: ../../mod/settings.php:939
+#: ../../mod/settings.php:987
msgid "Default Post Location:"
msgstr "Standardstandort:"
-#: ../../mod/settings.php:939
+#: ../../mod/settings.php:987
msgid "Geographical location to display on your posts"
msgstr "Geografischer Ort, der bei Deinen Beiträgen angezeigt werden soll"
-#: ../../mod/settings.php:940
+#: ../../mod/settings.php:988
msgid "Use Browser Location:"
msgstr "Standort des Browsers verwenden:"
-#: ../../mod/settings.php:942
+#: ../../mod/settings.php:990
msgid "Adult Content"
msgstr "Nicht jugendfreie Inhalte"
-#: ../../mod/settings.php:942
+#: ../../mod/settings.php:990
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:944
+#: ../../mod/settings.php:992
msgid "Security and Privacy Settings"
msgstr "Sicherheits- und Datenschutz-Einstellungen"
-#: ../../mod/settings.php:946
+#: ../../mod/settings.php:994
+msgid "Your permissions are already configured. Click to view/adjust"
+msgstr "Deine Zugriffsrechte sind schon konfiguriert. Klicke hier, um sie zu betrachten oder zu ändern"
+
+#: ../../mod/settings.php:996
msgid "Hide my online presence"
msgstr "Meine Online-Präsenz verbergen"
-#: ../../mod/settings.php:946
+#: ../../mod/settings.php:996
msgid "Prevents displaying in your profile that you are online"
msgstr "Verhindert die Anzeige Deines Online-Status in deinem Profil"
-#: ../../mod/settings.php:948
+#: ../../mod/settings.php:998
msgid "Simple Privacy Settings:"
msgstr "Einfache Privatsphäre-Einstellungen"
-#: ../../mod/settings.php:949
+#: ../../mod/settings.php:999
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:950
+#: ../../mod/settings.php:1000
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>"
+msgstr "Typisch – <em>Standard ö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:951
+#: ../../mod/settings.php:1001
msgid "Private - <em>default private, never open or public</em>"
-msgstr "Private – <em>Default privat, nie offen oder öffentlich</em>"
+msgstr "Privat – <em>Standard privat, nie offen oder öffentlich</em>"
-#: ../../mod/settings.php:952
+#: ../../mod/settings.php:1002
msgid "Blocked - <em>default blocked to/from everybody</em>"
-msgstr "Blockiert – <em>Alle per Default blockiert</em>"
+msgstr "Blockiert – <em>Alle standardmäßig blockiert</em>"
-#: ../../mod/settings.php:954
+#: ../../mod/settings.php:1004
msgid "Allow others to tag your posts"
-msgstr "Erlaube anderen deine Beiträge mit Schlagwörtern zu versehen"
+msgstr "Erlaube anderen, Deine Beiträge zu verschlagworten"
-#: ../../mod/settings.php:954
+#: ../../mod/settings.php:1004
msgid ""
"Often used by the community to retro-actively flag inappropriate content"
msgstr "Wird oft von der Community genutzt um rückwirkend anstößigen Inhalt zu markieren"
-#: ../../mod/settings.php:956
+#: ../../mod/settings.php:1006
msgid "Advanced Privacy Settings"
msgstr "Fortgeschrittene Privatsphäre-Einstellungen"
-#: ../../mod/settings.php:958
+#: ../../mod/settings.php:1008
msgid "Expire other channel content after this many days"
-msgstr "Lasse den Inhalt anderer Kanäle nach dieser Anzahl Tage verfallen"
+msgstr "Den Inhalt anderer Kanäle nach dieser Anzahl Tage verfallen lassen"
-#: ../../mod/settings.php:958
+#: ../../mod/settings.php:1008
msgid "0 or blank prevents expiration"
-msgstr "0 oder Leer verhindern das Verfallen"
+msgstr "0 oder kein Inhalt verhindern das Verfallen"
-#: ../../mod/settings.php:959
+#: ../../mod/settings.php:1009
msgid "Maximum Friend Requests/Day:"
msgstr "Maximale Kontaktanfragen pro Tag:"
-#: ../../mod/settings.php:959
+#: ../../mod/settings.php:1009
msgid "May reduce spam activity"
msgstr "Kann die Spam-Aktivität verringern"
-#: ../../mod/settings.php:960
+#: ../../mod/settings.php:1010
msgid "Default Post Permissions"
msgstr "Standardeinstellungen für Beitrags-Zugriffsrechte"
-#: ../../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:1015
+msgid "Channel permissions category:"
+msgstr "Zugriffsrechte-Kategorie des Kanals:"
-#: ../../mod/settings.php:972
+#: ../../mod/settings.php:1023
msgid "Maximum private messages per day from unknown people:"
msgstr "Maximale Anzahl privater Nachrichten pro Tag von unbekannten Leuten:"
-#: ../../mod/settings.php:972
+#: ../../mod/settings.php:1023
msgid "Useful to reduce spamming"
msgstr "Nützlich, um Spam zu verringern"
-#: ../../mod/settings.php:975
+#: ../../mod/settings.php:1026
msgid "Notification Settings"
msgstr "Benachrichtigungs-Einstellungen"
-#: ../../mod/settings.php:976
+#: ../../mod/settings.php:1027
msgid "By default post a status message when:"
msgstr "Sende standardmäßig Status-Nachrichten, wenn:"
-#: ../../mod/settings.php:977
+#: ../../mod/settings.php:1028
msgid "accepting a friend request"
-msgstr "Du eine Kontaktanfrage annimmst"
+msgstr "Du eine Verbindungsanfrage annimmst"
-#: ../../mod/settings.php:978
+#: ../../mod/settings.php:1029
msgid "joining a forum/community"
msgstr "Du einem Forum beitrittst"
-#: ../../mod/settings.php:979
+#: ../../mod/settings.php:1030
msgid "making an <em>interesting</em> profile change"
msgstr "Du eine <em>interessante</em> Änderung an Deinem Profil vornimmst"
-#: ../../mod/settings.php:980
+#: ../../mod/settings.php:1031
msgid "Send a notification email when:"
msgstr "Eine E-Mail-Benachrichtigung senden, wenn:"
-#: ../../mod/settings.php:981
+#: ../../mod/settings.php:1032
msgid "You receive a connection request"
-msgstr "Du hast eine Verbindungsanfrage erhalten"
+msgstr "Du eine Verbindungsanfrage erhältst"
-#: ../../mod/settings.php:982
+#: ../../mod/settings.php:1033
msgid "Your connections are confirmed"
-msgstr "Deine Verbindungen wurden bestätigt"
+msgstr "Eine Verbindung bestätigt wurde"
-#: ../../mod/settings.php:983
+#: ../../mod/settings.php:1034
msgid "Someone writes on your profile wall"
msgstr "Jemand auf Deine Pinnwand schreibt"
-#: ../../mod/settings.php:984
+#: ../../mod/settings.php:1035
msgid "Someone writes a followup comment"
msgstr "Jemand einen Beitrag kommentiert"
-#: ../../mod/settings.php:985
+#: ../../mod/settings.php:1036
msgid "You receive a private message"
msgstr "Du eine private Nachricht erhältst"
-#: ../../mod/settings.php:986
+#: ../../mod/settings.php:1037
msgid "You receive a friend suggestion"
msgstr "Du einen Kontaktvorschlag erhältst"
-#: ../../mod/settings.php:987
+#: ../../mod/settings.php:1038
msgid "You are tagged in a post"
msgstr "Du in einem Beitrag erwähnt wurdest"
-#: ../../mod/settings.php:988
+#: ../../mod/settings.php:1039
msgid "You are poked/prodded/etc. in a post"
msgstr "Du in einem Beitrag angestupst/geknufft/o.ä. wurdest"
-#: ../../mod/settings.php:991
+#: ../../mod/settings.php:1042
+msgid "Show visual notifications including:"
+msgstr "Visuelle Benachrichtigungen anzeigen für:"
+
+#: ../../mod/settings.php:1044
+msgid "Unseen matrix activity"
+msgstr "Ungesehene Matrix-Aktivität"
+
+#: ../../mod/settings.php:1045
+msgid "Unseen channel activity"
+msgstr "Ungesehene Kanal-Aktivität"
+
+#: ../../mod/settings.php:1046
+msgid "Unseen private messages"
+msgstr "Ungelesene persönliche Nachrichten"
+
+#: ../../mod/settings.php:1046 ../../mod/settings.php:1051
+#: ../../mod/settings.php:1052 ../../mod/settings.php:1053
+msgid "Recommended"
+msgstr "Empfohlen"
+
+#: ../../mod/settings.php:1047
+msgid "Upcoming events"
+msgstr "Baldige Termine"
+
+#: ../../mod/settings.php:1048
+msgid "Events today"
+msgstr "Heutige Termine"
+
+#: ../../mod/settings.php:1049
+msgid "Upcoming birthdays"
+msgstr "Baldige Geburtstage"
+
+#: ../../mod/settings.php:1049
+msgid "Not available in all themes"
+msgstr "Nicht in allen Themes verfügbar"
+
+#: ../../mod/settings.php:1050
+msgid "System (personal) notifications"
+msgstr "System – (persönliche) Benachrichtigungen"
+
+#: ../../mod/settings.php:1051
+msgid "System info messages"
+msgstr "System – Info-Nachrichten"
+
+#: ../../mod/settings.php:1052
+msgid "System critical alerts"
+msgstr "System – kritische Warnungen"
+
+#: ../../mod/settings.php:1053
+msgid "New connections"
+msgstr "Neue Verbindungen"
+
+#: ../../mod/settings.php:1054
+msgid "System Registrations"
+msgstr "System – Registrierungen"
+
+#: ../../mod/settings.php:1056
+msgid "Notify me of events this many days in advance"
+msgstr "Benachrichtige mich zu Terminen so viele Tage im Voraus"
+
+#: ../../mod/settings.php:1056
+msgid "Must be greater than 0"
+msgstr "Muss größer als 0 sein"
+
+#: ../../mod/settings.php:1058
msgid "Advanced Account/Page Type Settings"
msgstr "Erweiterte Account- und Seitenart-Einstellungen"
-#: ../../mod/settings.php:992
+#: ../../mod/settings.php:1059
msgid "Change the behaviour of this account for special situations"
msgstr "Ändere das Verhalten dieses Accounts unter speziellen Umständen"
-#: ../../mod/settings.php:995
+#: ../../mod/settings.php:1062
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
+#: ../../mod/settings.php:1063
msgid "Miscellaneous Settings"
msgstr "Sonstige Einstellungen"
-#: ../../mod/settings.php:998
+#: ../../mod/settings.php:1065
msgid "Personal menu to display in your channel pages"
-msgstr "Persönliches Menü zur Anzeige auf den Seiten deines Kanals"
+msgstr "Eigenes Menü zur Anzeige auf den Seiten deines Kanals"
-#: ../../mod/settings.php:999
+#: ../../mod/settings.php:1066
msgid "Remove this channel"
-msgstr "Lösche diesen Kanal"
+msgstr "Diesen Kanal löschen"
+
+#: ../../mod/editwebpage.php:140
+msgid "Edit Webpage"
+msgstr "Webseite bearbeiten"
+
+#: ../../mod/editwebpage.php:150
+msgid "Delete webpage?"
+msgstr "Webseite löschen?"
+
+#: ../../mod/editwebpage.php:215
+msgid "Delete Webpage"
+msgstr "Webseite löschen"
+
+#: ../../mod/impel.php:33
+msgid "webpage"
+msgstr "Webseite"
+
+#: ../../mod/impel.php:38
+msgid "block"
+msgstr "Block"
+
+#: ../../mod/impel.php:43
+msgid "layout"
+msgstr "Layout"
+
+#: ../../mod/impel.php:117
+#, php-format
+msgid "%s element installed"
+msgstr "Element für %s installiert"
+
+#: ../../mod/profile_photo.php:108
+msgid "Image uploaded but image cropping failed."
+msgstr "Bild hochgeladen, aber das Zurechtschneiden schlug fehl."
+
+#: ../../mod/profile_photo.php:161
+msgid "Image resize failed."
+msgstr "Bild-Anpassung fehlgeschlagen."
+
+#: ../../mod/profile_photo.php:205
+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, falls das neue Foto nicht sofort angezeigt wird."
+
+#: ../../mod/profile_photo.php:232
+#, php-format
+msgid "Image exceeds size limit of %d"
+msgstr "Bild ist größer als das Limit von %d"
+
+#: ../../mod/profile_photo.php:241
+msgid "Unable to process image."
+msgstr "Kann Bild nicht verarbeiten."
+
+#: ../../mod/profile_photo.php:290 ../../mod/profile_photo.php:339
+msgid "Photo not available."
+msgstr "Foto nicht verfügbar."
+
+#: ../../mod/profile_photo.php:358
+msgid "Upload File:"
+msgstr "Datei hochladen:"
+
+#: ../../mod/profile_photo.php:359
+msgid "Select a profile:"
+msgstr "Wähle ein Profil:"
+
+#: ../../mod/profile_photo.php:360
+msgid "Upload Profile Photo"
+msgstr "Lade neues Profilfoto hoch"
+
+#: ../../mod/profile_photo.php:365
+msgid "skip this step"
+msgstr "diesen Schritt überspringen"
+
+#: ../../mod/profile_photo.php:365
+msgid "select a photo from your photo albums"
+msgstr "ein Foto aus meinen Fotoalben"
+
+#: ../../mod/profile_photo.php:381
+msgid "Crop Image"
+msgstr "Bild zuschneiden"
+
+#: ../../mod/profile_photo.php:382
+msgid "Please adjust the image cropping for optimum viewing."
+msgstr "Bitte schneide das Bild für eine optimale Anzeige passend zu."
+
+#: ../../mod/profile_photo.php:384
+msgid "Done Editing"
+msgstr "Bearbeitung fertigstellen"
+
+#: ../../mod/profile_photo.php:427
+msgid "Image uploaded successfully."
+msgstr "Bild erfolgreich hochgeladen."
+
+#: ../../mod/profile_photo.php:429
+msgid "Image upload failed."
+msgstr "Hochladen des Bilds fehlgeschlagen."
+
+#: ../../mod/profile_photo.php:438
+#, php-format
+msgid "Image size reduction [%s] failed."
+msgstr "Reduzierung der Bildgröße [%s] fehlgeschlagen."
+
+#: ../../mod/fsuggest.php:20 ../../mod/fsuggest.php:92
+msgid "Contact not found."
+msgstr "Kontakt nicht gefunden"
-#: ../../mod/filestorage.php:68
+#: ../../mod/fsuggest.php:63
+msgid "Friend suggestion sent."
+msgstr "Freundschaftsempfehlung senden."
+
+#: ../../mod/fsuggest.php:97
+msgid "Suggest Friends"
+msgstr "Kontakte vorschlagen"
+
+#: ../../mod/fsuggest.php:99
+#, php-format
+msgid "Suggest a friend for %s"
+msgstr "Schlage %s einen Kontakt vor"
+
+#: ../../mod/filestorage.php:76
msgid "Permission Denied."
msgstr "Zugriff verweigert."
-#: ../../mod/filestorage.php:85
+#: ../../mod/filestorage.php:92
msgid "File not found."
msgstr "Datei nicht gefunden."
-#: ../../mod/filestorage.php:122
+#: ../../mod/filestorage.php:131
msgid "Edit file permissions"
msgstr "Dateiberechtigungen bearbeiten"
-#: ../../mod/filestorage.php:131
+#: ../../mod/filestorage.php:140
msgid "Set/edit permissions"
msgstr "Berechtigungen setzen/ändern"
-#: ../../mod/filestorage.php:132
+#: ../../mod/filestorage.php:141
msgid "Include all files and sub folders"
msgstr "Alle Dateien und Unterverzeichnisse einbinden"
-#: ../../mod/filestorage.php:133
+#: ../../mod/filestorage.php:142
msgid "Return to file list"
msgstr "Zurück zur Dateiliste"
-#: ../../mod/filestorage.php:135
+#: ../../mod/filestorage.php:144
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/filestorage.php:136
+#: ../../mod/filestorage.php:145
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/home.php:54 ../../mod/block.php:39 ../../mod/wall_upload.php:28
-#: ../../mod/page.php:47 ../../mod/chanview.php:77
-msgid "Channel not found."
-msgstr "Kanal nicht gefunden."
+#: ../../mod/help.php:41 ../../mod/help.php:47 ../../mod/help.php:53
+msgid "Help:"
+msgstr "Hilfe:"
-#: ../../mod/home.php:81
-msgid "Red Matrix - &quot;The Network&quot;"
-msgstr "Red Matrix - &quot;Das Netzwerk&quot;"
+#: ../../mod/help.php:67 ../../index.php:238
+msgid "Not Found"
+msgstr "Nicht gefunden"
-#: ../../mod/home.php:94
-#, php-format
-msgid "Welcome to %s"
-msgstr "Willkommen auf %s"
+#: ../../mod/acl.php:245
+msgid "network"
+msgstr "Netzwerk"
-#: ../../mod/probe.php:23 ../../mod/probe.php:29
+#: ../../mod/follow.php:25
+msgid "Channel added."
+msgstr "Kanal hinzugefügt."
+
+#: ../../mod/delegate.php:95
+msgid "No potential page delegates located."
+msgstr "Keine potentiellen Bevollmächtigten für die Seite gefunden."
+
+#: ../../mod/delegate.php:121
+msgid "Delegate Page Management"
+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. Gib niemandem eine Bevollmächtigung für Deinen privaten Account, dem Du nicht absolut vertraust!"
+
+#: ../../mod/delegate.php:124
+msgid "Existing Page Managers"
+msgstr "Vorhandene Seitenmanager"
+
+#: ../../mod/delegate.php:126
+msgid "Existing Page Delegates"
+msgstr "Vorhandene Bevollmächtigte für die Seite"
+
+#: ../../mod/delegate.php:128
+msgid "Potential Delegates"
+msgstr "Potentielle Bevollmächtigte"
+
+#: ../../mod/delegate.php:131
+msgid "Add"
+msgstr "Hinzufügen"
+
+#: ../../mod/delegate.php:132
+msgid "No entries."
+msgstr "Keine Einträge."
+
+#: ../../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:233
+msgid "Click on a channel to add or remove."
+msgstr "Wähle einen Kanal zum hinzufügen oder entfernen aus."
+
+#: ../../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 das ein neuer Server ist, versuche es in 24 Stunden noch einmal."
+
+#: ../../mod/import.php:25
#, php-format
-msgid "Fetching URL returns error: %1$s"
-msgstr "Abrufen der URL gab einen Fehler zurück: %1$s"
+msgid "Your service plan only allows %d channels."
+msgstr "Dein Vertrag erlaubt nur %d Kanäle."
-#: ../../mod/update_network.php:23 ../../mod/update_display.php:25
-#: ../../mod/update_search.php:46 ../../mod/update_channel.php:43
-msgid "[Embedded content - reload page to view]"
-msgstr "[Eingebettete Inhalte – lade die Seite neu, um sie anzuzeigen]"
+#: ../../mod/import.php:51
+msgid "Nothing to import."
+msgstr "Nichts zu importieren."
-#: ../../mod/new_channel.php:107
-msgid "Add a Channel"
-msgstr "Kanal hinzufügen"
+#: ../../mod/import.php:75
+msgid "Unable to download data from old server"
+msgstr "Daten können vom alten Server nicht heruntergeladen werden"
-#: ../../mod/new_channel.php:108
+#: ../../mod/import.php:81
+msgid "Imported file is empty."
+msgstr "Die importierte Datei ist leer."
+
+#: ../../mod/import.php:105
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 "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."
+"Cannot create a duplicate channel identifier on this system. Import failed."
+msgstr "Kann keinen doppelten Kanal-Identifikator auf diesem System erzeugen (Spitzname oder Hash schon belegt). Import fehlgeschlagen."
-#: ../../mod/new_channel.php:110 ../../mod/sources.php:103
-#: ../../mod/sources.php:137
-msgid "Channel Name"
-msgstr "Name des Kanals"
+#: ../../mod/import.php:123
+msgid "Channel clone failed. Import failed."
+msgstr "Klonen des Kanals fehlgeschlagen. Import fehlgeschlagen."
-#: ../../mod/new_channel.php:111
-msgid "Examples: \"Bob Jameson\", \"Lisa and her Horses\", \"Soccer\", \"Aviation Group\" "
-msgstr "Beispiele: „Horst Weidinger“, „Lisa und ihr Meerschweinchen“, „Fußball“, „Segelflieger-Forum“ "
+#: ../../mod/import.php:133
+msgid "Cloned channel not found. Import failed."
+msgstr "Geklonter Kanal nicht gefunden. Import fehlgeschlagen."
-#: ../../mod/new_channel.php:112
-msgid "Choose a short nickname"
-msgstr "Wähle einen kurzen Spitznamen"
+#: ../../mod/import.php:451
+msgid "Import completed."
+msgstr "Import abgeschlossen."
-#: ../../mod/new_channel.php:113
+#: ../../mod/import.php:463
+msgid "You must be logged in to use this feature."
+msgstr "Du musst angemeldet sein um diese Funktion zu nutzen."
+
+#: ../../mod/import.php:468
+msgid "Import Channel"
+msgstr "Kanal importieren"
+
+#: ../../mod/import.php:469
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 leicht zu merkende Kanal-Adresse (ähnlich einer E-Mail-Adresse) zu erzeugen, die Du mit anderen austauschen kannst."
+"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 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/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 Server"
+#: ../../mod/import.php:470
+msgid "File to Upload"
+msgstr "Hochzuladende Datei:"
-#: ../../mod/rmagic.php:38
+#: ../../mod/import.php:471
+msgid "Or provide the old server/hub details"
+msgstr "Oder gib die Details Deines bisherigen Red-Servers ein"
+
+#: ../../mod/import.php:472
+msgid "Your old identity address (xyz@example.com)"
+msgstr "Bisherige Kanal-Adresse (xyz@example.com)"
+
+#: ../../mod/import.php:473
+msgid "Your old login email address"
+msgstr "Deine alte Login-E-Mail-Adresse"
+
+#: ../../mod/import.php:474
+msgid "Your old login password"
+msgstr "Dein altes Passwort"
+
+#: ../../mod/import.php:475
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."
+"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 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/rmagic.php:38
-msgid "The error message was:"
-msgstr "Die Fehlermeldung lautet:"
+#: ../../mod/import.php:476
+msgid "Make this hub my primary location"
+msgstr "Dieser Red-Server ist mein primärer Server."
-#: ../../mod/rmagic.php:42
-msgid "Authentication failed."
-msgstr "Authentifizierung fehlgeschlagen."
+#: ../../mod/import.php:477
+msgid "Import existing posts if possible"
+msgstr "Existierende Beiträge importieren, falls möglich"
-#: ../../mod/rmagic.php:82
-msgid "Remote Authentication"
-msgstr "Entfernte Authentifizierung"
+#: ../../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/rmagic.php:83
-msgid "Enter your channel address (e.g. channel@example.com)"
-msgstr "Deine Kanal-Adresse (z. B. channel@example.com)"
+#: ../../mod/tagrm.php:44 ../../mod/tagrm.php:94
+msgid "Tag removed"
+msgstr "Schlagwort entfernt"
-#: ../../mod/rmagic.php:84
-msgid "Authenticate"
-msgstr "Authentifizieren"
+#: ../../mod/tagrm.php:119
+msgid "Remove Item Tag"
+msgstr "Schlagwort entfernen"
+
+#: ../../mod/tagrm.php:121
+msgid "Select a tag to remove: "
+msgstr "Schlagwort zum Entfernen auswählen:"
#: ../../mod/admin.php:52
msgid "Theme settings updated."
msgstr "Theme-Einstellungen aktualisiert."
-#: ../../mod/admin.php:92 ../../mod/admin.php:441
+#: ../../mod/admin.php:97 ../../mod/admin.php:411
msgid "Site"
msgstr "Seite"
-#: ../../mod/admin.php:93
+#: ../../mod/admin.php:98
msgid "Accounts"
msgstr "Konten"
-#: ../../mod/admin.php:94 ../../mod/admin.php:885
+#: ../../mod/admin.php:99 ../../mod/admin.php:858
msgid "Channels"
msgstr "Kanäle"
-#: ../../mod/admin.php:95 ../../mod/admin.php:976 ../../mod/admin.php:1018
+#: ../../mod/admin.php:100 ../../mod/admin.php:949 ../../mod/admin.php:991
msgid "Plugins"
msgstr "Plug-Ins"
-#: ../../mod/admin.php:96 ../../mod/admin.php:1181 ../../mod/admin.php:1217
+#: ../../mod/admin.php:101 ../../mod/admin.php:1154 ../../mod/admin.php:1190
msgid "Themes"
msgstr "Themes"
-#: ../../mod/admin.php:97 ../../mod/admin.php:541
+#: ../../mod/admin.php:102 ../../mod/admin.php:512
msgid "Server"
msgstr "Server"
-#: ../../mod/admin.php:98
+#: ../../mod/admin.php:103
+msgid "Profile Config"
+msgstr "Profilkonfiguration"
+
+#: ../../mod/admin.php:104
msgid "DB updates"
msgstr "DB-Aktualisierungen"
-#: ../../mod/admin.php:112 ../../mod/admin.php:119 ../../mod/admin.php:1304
+#: ../../mod/admin.php:118 ../../mod/admin.php:125 ../../mod/admin.php:1277
msgid "Logs"
msgstr "Protokolle"
-#: ../../mod/admin.php:118
+#: ../../mod/admin.php:124
msgid "Plugin Features"
msgstr "Plug-In Funktionen"
-#: ../../mod/admin.php:120
+#: ../../mod/admin.php:126
msgid "User registrations waiting for confirmation"
msgstr "Nutzer-Anmeldungen, die auf Bestätigung warten"
-#: ../../mod/admin.php:197
+#: ../../mod/admin.php:206
msgid "Message queues"
msgstr "Nachrichten-Warteschlangen"
-#: ../../mod/admin.php:202 ../../mod/admin.php:440 ../../mod/admin.php:540
-#: ../../mod/admin.php:749 ../../mod/admin.php:884 ../../mod/admin.php:975
-#: ../../mod/admin.php:1017 ../../mod/admin.php:1180 ../../mod/admin.php:1216
-#: ../../mod/admin.php:1303
+#: ../../mod/admin.php:211 ../../mod/admin.php:410 ../../mod/admin.php:511
+#: ../../mod/admin.php:721 ../../mod/admin.php:857 ../../mod/admin.php:948
+#: ../../mod/admin.php:990 ../../mod/admin.php:1153 ../../mod/admin.php:1189
+#: ../../mod/admin.php:1276
msgid "Administration"
msgstr "Administration"
-#: ../../mod/admin.php:203
+#: ../../mod/admin.php:212
msgid "Summary"
msgstr "Zusammenfassung"
-#: ../../mod/admin.php:205
+#: ../../mod/admin.php:214
msgid "Registered users"
msgstr "Registrierte Benutzer"
-#: ../../mod/admin.php:207 ../../mod/admin.php:544
+#: ../../mod/admin.php:216 ../../mod/admin.php:515
msgid "Pending registrations"
msgstr "Ausstehende Registrierungen"
-#: ../../mod/admin.php:208
+#: ../../mod/admin.php:217
msgid "Version"
msgstr "Version"
-#: ../../mod/admin.php:210 ../../mod/admin.php:545
+#: ../../mod/admin.php:219 ../../mod/admin.php:516
msgid "Active plugins"
msgstr "Aktive Plug-Ins"
-#: ../../mod/admin.php:361
+#: ../../mod/admin.php:326
msgid "Site settings updated."
msgstr "Site-Einstellungen aktualisiert."
-#: ../../mod/admin.php:392
-msgid "No special theme for accessibility"
-msgstr "Kein spezielles Accessibility-Theme vorhanden"
+#: ../../mod/admin.php:363
+msgid "mobile"
+msgstr "mobil"
-#: ../../mod/admin.php:421
+#: ../../mod/admin.php:365
+msgid "experimental"
+msgstr "experimentell"
+
+#: ../../mod/admin.php:367
+msgid "unsupported"
+msgstr "nicht unterstützt"
+
+#: ../../mod/admin.php:391
msgid "Yes - with approval"
msgstr "Ja - mit Zustimmung"
-#: ../../mod/admin.php:427
+#: ../../mod/admin.php:397
msgid "My site is not a public server"
-msgstr "Meine Seite ist kein öffentlicher Server"
+msgstr "Mein Server ist kein öffentlicher Server"
-#: ../../mod/admin.php:428
+#: ../../mod/admin.php:398
msgid "My site has paid access only"
-msgstr "Meine Seite erlaubt nur bezahlten Zugang"
+msgstr "Mein Server erlaubt nur bezahlten Zugang"
-#: ../../mod/admin.php:429
+#: ../../mod/admin.php:399
msgid "My site has free access only"
-msgstr "Meine Seite erlaubt ausschließlich freien Zugang"
+msgstr "Mein Server erlaubt ausschließlich freien Zugang"
-#: ../../mod/admin.php:430
+#: ../../mod/admin.php:400
msgid "My site offers free accounts with optional paid upgrades"
-msgstr "Meine Seite bietet freie Accounts mit der Möglichkeit von bezahlten Upgrades"
+msgstr "Mein Server bietet kostenlose Konten mit der Möglichkeit zu bezahlten Upgrades"
-#: ../../mod/admin.php:443 ../../mod/register.php:204
-msgid "Registration"
-msgstr "Registrierung"
-
-#: ../../mod/admin.php:444
+#: ../../mod/admin.php:414
msgid "File upload"
msgstr "Dateiupload"
-#: ../../mod/admin.php:445
+#: ../../mod/admin.php:415
msgid "Policies"
msgstr "Richtlinien"
-#: ../../mod/admin.php:450
+#: ../../mod/admin.php:420
msgid "Site name"
msgstr "Seitenname"
-#: ../../mod/admin.php:451
+#: ../../mod/admin.php:421
msgid "Banner/Logo"
msgstr "Banner/Logo"
-#: ../../mod/admin.php:452
+#: ../../mod/admin.php:422
msgid "Administrator Information"
msgstr "Administrator-Informationen"
-#: ../../mod/admin.php:452
+#: ../../mod/admin.php:422
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:453
+#: ../../mod/admin.php:423
msgid "System language"
msgstr "System-Sprache"
-#: ../../mod/admin.php:454
+#: ../../mod/admin.php:424
msgid "System theme"
msgstr "System-Theme"
-#: ../../mod/admin.php:454
+#: ../../mod/admin.php:424
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>"
-#: ../../mod/admin.php:455
+#: ../../mod/admin.php:425
msgid "Mobile system theme"
msgstr "Mobile System-Theme:"
-#: ../../mod/admin.php:455
+#: ../../mod/admin.php:425
msgid "Theme for mobile devices"
msgstr "Theme für mobile Geräte"
-#: ../../mod/admin.php:456
-msgid "Accessibility system theme"
-msgstr "Accessibility-System-Theme"
+#: ../../mod/admin.php:427
+msgid "Enable Diaspora Protocol"
+msgstr "Diaspora-Protokoll aktivieren"
-#: ../../mod/admin.php:456
-msgid "Accessibility theme"
-msgstr "Accessibility-Theme"
+#: ../../mod/admin.php:427
+msgid "Communicate with Diaspora and Friendica - experimental"
+msgstr "Kommunikation mit Diaspora und Friendica – experimentell"
-#: ../../mod/admin.php:457
-msgid "Channel to use for this website's static pages"
-msgstr "Kanal für die statischen Seiten dieser Webseite verwenden"
+#: ../../mod/admin.php:428
+msgid "Allow Feeds as Connections"
+msgstr "Feeds als Verbindungen erlauben"
-#: ../../mod/admin.php:457
-msgid "Site Channel"
-msgstr "Seiten Kanal"
+#: ../../mod/admin.php:428
+msgid "(Heavy system resource usage)"
+msgstr "(führt zu hoher Systemlast)"
-#: ../../mod/admin.php:459
+#: ../../mod/admin.php:429
msgid "Maximum image size"
msgstr "Maximale Bildgröße"
-#: ../../mod/admin.php:459
+#: ../../mod/admin.php:429
msgid ""
"Maximum size in bytes of uploaded images. Default is 0, which means no "
"limits."
msgstr "Maximale Größe hochgeladener Bilder in Bytes. Standard ist 0 (keine Einschränkung)."
-#: ../../mod/admin.php:460
+#: ../../mod/admin.php:430
msgid "Does this site allow new member registration?"
-msgstr "Erlaubt diese Seite die Registrierung neuer Nutzer?"
+msgstr "Erlaubt dieser Server die Registrierung neuer Nutzer?"
-#: ../../mod/admin.php:461
+#: ../../mod/admin.php:431
msgid "Which best describes the types of account offered by this hub?"
-msgstr "Wie lautet die passenste Beschreibung der Accounts auf diesem Hub?"
+msgstr "Was ist die passendste Beschreibung der Konten auf diesem Hub?"
-#: ../../mod/admin.php:462
+#: ../../mod/admin.php:432
msgid "Register text"
msgstr "Registrierungstext"
-#: ../../mod/admin.php:462
+#: ../../mod/admin.php:432
msgid "Will be displayed prominently on the registration page."
msgstr "Wird gut sichtbar auf der Registrierungs-Seite angezeigt."
-#: ../../mod/admin.php:463
+#: ../../mod/admin.php:433
msgid "Accounts abandoned after x days"
msgstr "Konten gelten nach X Tagen als unbenutzt"
-#: ../../mod/admin.php:463
+#: ../../mod/admin.php:433
msgid ""
"Will not waste system resources polling external sites for abandonded "
"accounts. Enter 0 for no time 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:464
+#: ../../mod/admin.php:434
msgid "Allowed friend domains"
msgstr "Erlaubte Domains für Kontakte"
-#: ../../mod/admin.php:464
+#: ../../mod/admin.php:434
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:465
+#: ../../mod/admin.php:435
msgid "Allowed email domains"
msgstr "Erlaubte Domains für E-Mails"
-#: ../../mod/admin.php:465
+#: ../../mod/admin.php:435
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:466
+#: ../../mod/admin.php:436
msgid "Block public"
msgstr "Öffentlichen Zugriff blockieren"
-#: ../../mod/admin.php:466
+#: ../../mod/admin.php:436
msgid ""
"Check to block public access to all otherwise public personal pages on this "
"site unless you are currently logged in."
msgstr "Zugriff auf sonst öffentliche persönliche Seiten blockieren, wenn man nicht eingeloggt ist."
-#: ../../mod/admin.php:467
+#: ../../mod/admin.php:437
+msgid "Verify Email Addresses"
+msgstr "E-Mail-Adressen überprüfen"
+
+#: ../../mod/admin.php:437
+msgid ""
+"Check to verify email addresses used in account registration (recommended)."
+msgstr "Aktivieren, um die Überprüfung von E-Mail-Adressen bei der Registrierung von Benutzerkonten zu aktivieren (empfohlen)."
+
+#: ../../mod/admin.php:438
msgid "Force publish"
msgstr "Veröffentlichung erzwingen"
-#: ../../mod/admin.php:467
+#: ../../mod/admin.php:438
msgid ""
"Check to force all profiles on this site to be listed in the site directory."
msgstr "Die Veröffentlichung aller Profile dieses Servers im Verzeichnis erzwingen."
-#: ../../mod/admin.php:468
+#: ../../mod/admin.php:439
msgid "Disable discovery tab"
msgstr "Den „Entdecken“-Reiter ausblenden"
-#: ../../mod/admin.php:468
+#: ../../mod/admin.php:439
msgid ""
"Remove the tab in the network view with public content pulled from sources "
"chosen for this site."
-msgstr "Entferne den „Entdecken“-Reiter aus der Matrix-Seite, in dem öffentliche Inhalte von anderen RedMatrix-Hubs angezeigt werden können."
+msgstr "Entferne den „Entdecken“-Reiter aus der Matrix-Seite, in dem öffentliche Inhalte angezeigt werden, die von anderen RedMatrix-Hubs geholt wurden."
-#: ../../mod/admin.php:469
+#: ../../mod/admin.php:440
msgid "No login on Homepage"
msgstr "Kein Login auf der Homepage"
-#: ../../mod/admin.php:469
+#: ../../mod/admin.php:440
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 "Aktivieren, 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:471
+#: ../../mod/admin.php:442
msgid "Proxy user"
msgstr "Proxy Benutzer"
-#: ../../mod/admin.php:472
+#: ../../mod/admin.php:443
msgid "Proxy URL"
msgstr "Proxy URL"
-#: ../../mod/admin.php:473
+#: ../../mod/admin.php:444
msgid "Network timeout"
msgstr "Netzwerk-Timeout"
-#: ../../mod/admin.php:473
+#: ../../mod/admin.php:444
msgid "Value is in seconds. Set to 0 for unlimited (not recommended)."
msgstr "Wert in Sekunden. 0 für unbegrenzt (nicht empfohlen)."
-#: ../../mod/admin.php:474
+#: ../../mod/admin.php:445
msgid "Delivery interval"
msgstr "Auslieferung Intervall"
-#: ../../mod/admin.php:474
+#: ../../mod/admin.php:445
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 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:475
+#: ../../mod/admin.php:446
msgid "Poll interval"
msgstr "Abfrageintervall"
-#: ../../mod/admin.php:475
+#: ../../mod/admin.php:446
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 Sekunden, um die Systemlast zu reduzieren. Bei 0 wird das Auslieferungsintervall verwendet."
-#: ../../mod/admin.php:476
+#: ../../mod/admin.php:447
msgid "Maximum Load Average"
msgstr "Maximales Load Average"
-#: ../../mod/admin.php:476
+#: ../../mod/admin.php:447
msgid ""
"Maximum system load before delivery and poll processes are deferred - "
"default 50."
msgstr "Maximale Systemlast, bevor Verteil- und Empfangsprozesse verschoben werden – Standard 50"
-#: ../../mod/admin.php:532
+#: ../../mod/admin.php:503
msgid "No server found"
msgstr "Kein Server gefunden"
-#: ../../mod/admin.php:539 ../../mod/admin.php:763
+#: ../../mod/admin.php:510 ../../mod/admin.php:735
msgid "ID"
msgstr "ID"
-#: ../../mod/admin.php:539
+#: ../../mod/admin.php:510
msgid "for channel"
msgstr "für Kanal"
-#: ../../mod/admin.php:539
+#: ../../mod/admin.php:510
msgid "on server"
msgstr "auf Server"
-#: ../../mod/admin.php:539
+#: ../../mod/admin.php:510
msgid "Status"
msgstr "Status"
-#: ../../mod/admin.php:560
+#: ../../mod/admin.php:531
msgid "Update has been marked successful"
msgstr "Update wurde als erfolgreich markiert"
-#: ../../mod/admin.php:570
+#: ../../mod/admin.php:541
#, php-format
msgid "Executing %s failed. Check system logs."
msgstr "Ausführen von %s fehlgeschlagen. Überprüfe die Systemprotokolle."
-#: ../../mod/admin.php:573
+#: ../../mod/admin.php:544
#, php-format
msgid "Update %s was successfully applied."
msgstr "Update %s wurde erfolgreich ausgeführt."
-#: ../../mod/admin.php:577
+#: ../../mod/admin.php:548
#, php-format
msgid "Update %s did not return a status. Unknown if it succeeded."
msgstr "Update %s lieferte keinen Rückgabewert. Erfolg unbekannt."
-#: ../../mod/admin.php:580
+#: ../../mod/admin.php:551
#, php-format
msgid "Update function %s could not be found."
msgstr "Update-Funktion %s konnte nicht gefunden werden."
-#: ../../mod/admin.php:595
+#: ../../mod/admin.php:566
msgid "No failed updates."
msgstr "Keine fehlgeschlagenen Aktualisierungen."
-#: ../../mod/admin.php:599
+#: ../../mod/admin.php:570
msgid "Failed Updates"
msgstr "Fehlgeschlagene Aktualisierungen"
-#: ../../mod/admin.php:601
+#: ../../mod/admin.php:572
msgid "Mark success (if update was manually applied)"
msgstr "Als erfolgreich markieren (wenn das Update manuell ausgeführt wurde)"
-#: ../../mod/admin.php:602
+#: ../../mod/admin.php:573
msgid "Attempt to execute this update step automatically"
msgstr "Versuche, diesen Updateschritt automatisch auszuführen"
-#: ../../mod/admin.php:628
+#: ../../mod/admin.php:599
#, 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:635
+#: ../../mod/admin.php:606
#, 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:666
+#: ../../mod/admin.php:635
msgid "Account not found"
msgstr "Konto nicht gefunden"
-#: ../../mod/admin.php:677
-#, php-format
-msgid "User '%s' deleted"
-msgstr "Benutzer '%s' gelöscht"
-
-#: ../../mod/admin.php:686
+#: ../../mod/admin.php:655
#, php-format
msgid "User '%s' unblocked"
msgstr "Benutzer '%s' freigegeben"
-#: ../../mod/admin.php:686
+#: ../../mod/admin.php:655
#, php-format
msgid "User '%s' blocked"
msgstr "Benutzer '%s' blockiert"
-#: ../../mod/admin.php:750 ../../mod/admin.php:762
+#: ../../mod/admin.php:722 ../../mod/admin.php:734
msgid "Users"
msgstr "Benutzer"
-#: ../../mod/admin.php:752 ../../mod/admin.php:887
+#: ../../mod/admin.php:724 ../../mod/admin.php:860
msgid "select all"
msgstr "Alle auswählen"
-#: ../../mod/admin.php:753
+#: ../../mod/admin.php:725
msgid "User registrations waiting for confirm"
msgstr "Neuanmeldungen, die auf Deine Bestätigung warten"
-#: ../../mod/admin.php:754
+#: ../../mod/admin.php:726
msgid "Request date"
msgstr "Antragsdatum"
-#: ../../mod/admin.php:755
+#: ../../mod/admin.php:727
msgid "No registrations."
msgstr "Keine Registrierungen."
-#: ../../mod/admin.php:756
+#: ../../mod/admin.php:728
msgid "Approve"
msgstr "Genehmigen"
-#: ../../mod/admin.php:757
+#: ../../mod/admin.php:729
msgid "Deny"
msgstr "Verweigern"
-#: ../../mod/admin.php:759 ../../mod/connedit.php:414
-#: ../../mod/connedit.php:557
-msgid "Block"
-msgstr "Blockieren"
-
-#: ../../mod/admin.php:760 ../../mod/connedit.php:414
-#: ../../mod/connedit.php:557
-msgid "Unblock"
-msgstr "Freigeben"
-
-#: ../../mod/admin.php:763
+#: ../../mod/admin.php:735
msgid "Register date"
msgstr "Registrierungs-Datum"
-#: ../../mod/admin.php:763
+#: ../../mod/admin.php:735
msgid "Last login"
msgstr "Letzte Anmeldung"
-#: ../../mod/admin.php:763
+#: ../../mod/admin.php:735
msgid "Expires"
msgstr "Verfällt"
-#: ../../mod/admin.php:763
+#: ../../mod/admin.php:735
msgid "Service Class"
msgstr "Service-Klasse"
-#: ../../mod/admin.php:765
+#: ../../mod/admin.php:737
msgid ""
"Selected users will be deleted!\\n\\nEverything these users had posted on "
"this site will be permanently deleted!\\n\\nAre you sure?"
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:766
+#: ../../mod/admin.php:738
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 endgültig gelöscht werden!\\n\\nBist Du sicher?"
-#: ../../mod/admin.php:799
+#: ../../mod/admin.php:771
#, php-format
msgid "%s channel censored/uncensored"
-msgid_plural "%s channelss censored/uncensored"
-msgstr[0] "%s Kanal zensiert/unzensiert"
-msgstr[1] "%s Kanäle zensiert/unzensiert"
+msgid_plural "%s channels censored/uncensored"
+msgstr[0] "%s Kanal gesperrt/freigegeben"
+msgstr[1] "%s Kanäle gesperrt/freigegeben"
-#: ../../mod/admin.php:806
+#: ../../mod/admin.php:778
#, php-format
msgid "%s channel deleted"
msgid_plural "%s channels deleted"
msgstr[0] "%s Kanal gelöscht"
msgstr[1] "%s Kanäle gelöscht"
-#: ../../mod/admin.php:825
+#: ../../mod/admin.php:797
msgid "Channel not found"
msgstr "Kanal nicht gefunden"
-#: ../../mod/admin.php:836
+#: ../../mod/admin.php:808
#, php-format
msgid "Channel '%s' deleted"
msgstr "Kanal '%s' gelöscht"
-#: ../../mod/admin.php:846
+#: ../../mod/admin.php:819
#, php-format
msgid "Channel '%s' uncensored"
msgstr "Kanal '%s' freigegeben"
-#: ../../mod/admin.php:846
+#: ../../mod/admin.php:819
#, php-format
msgid "Channel '%s' censored"
msgstr "Kanal '%s' gesperrt"
-#: ../../mod/admin.php:889
+#: ../../mod/admin.php:862
msgid "Censor"
msgstr "Sperren"
-#: ../../mod/admin.php:890
+#: ../../mod/admin.php:863
msgid "Uncensor"
msgstr "Freigeben"
-#: ../../mod/admin.php:893
+#: ../../mod/admin.php:866
msgid "UID"
msgstr "UID"
-#: ../../mod/admin.php:893 ../../mod/profiles.php:397
-msgid "Address"
-msgstr "Adresse"
-
-#: ../../mod/admin.php:895
+#: ../../mod/admin.php:868
msgid ""
"Selected channels will be deleted!\\n\\nEverything that was posted in these "
"channels on this site will be permanently deleted!\\n\\nAre you sure?"
-msgstr "Alle ausgewählte Kanäle werden gelöscht!\\n\\nAlles was von diesen Kanälen auf dieser Seite geschrieben wurde, wird dauerhaft gelöscht!\\n\\nBist du dir sicher?"
+msgstr "Alle ausgewählten Kanäle werden gelöscht!\\n\\nAlles was von diesen Kanälen auf diesem Server geschrieben wurde, wird dauerhaft gelöscht!\\n\\nBist Du sicher?"
-#: ../../mod/admin.php:896
+#: ../../mod/admin.php:869
msgid ""
"The channel {0} will be deleted!\\n\\nEverything that was posted in this "
"channel on this site will be permanently deleted!\\n\\nAre you sure?"
-msgstr "Der Kanal {0} wird gelöscht!\\n\\nAlles was von diesem Kanal auf dieser Seite geschrieben wurde, wird gelöscht!\\n\\nBist du dir sicher?"
+msgstr "Der Kanal {0} wird gelöscht!\\n\\nAlles was von diesem Kanal auf diesem Server geschrieben wurde, wird gelöscht!\\n\\nBist Du sicher?"
-#: ../../mod/admin.php:935
+#: ../../mod/admin.php:908
#, php-format
msgid "Plugin %s disabled."
msgstr "Plug-In %s deaktiviert."
-#: ../../mod/admin.php:939
+#: ../../mod/admin.php:912
#, php-format
msgid "Plugin %s enabled."
msgstr "Plug-In %s aktiviert."
-#: ../../mod/admin.php:949 ../../mod/admin.php:1151
+#: ../../mod/admin.php:922 ../../mod/admin.php:1124
msgid "Disable"
msgstr "Deaktivieren"
-#: ../../mod/admin.php:951 ../../mod/admin.php:1153
+#: ../../mod/admin.php:924 ../../mod/admin.php:1126
msgid "Enable"
msgstr "Aktivieren"
-#: ../../mod/admin.php:977 ../../mod/admin.php:1182
+#: ../../mod/admin.php:950 ../../mod/admin.php:1155
msgid "Toggle"
msgstr "Umschalten"
-#: ../../mod/admin.php:985 ../../mod/admin.php:1192
+#: ../../mod/admin.php:958 ../../mod/admin.php:1165
msgid "Author: "
msgstr "Autor: "
-#: ../../mod/admin.php:986 ../../mod/admin.php:1193
+#: ../../mod/admin.php:959 ../../mod/admin.php:1166
msgid "Maintainer: "
msgstr "Betreuer:"
-#: ../../mod/admin.php:1115
+#: ../../mod/admin.php:1088
msgid "No themes found."
msgstr "Keine Theme gefunden."
-#: ../../mod/admin.php:1174
+#: ../../mod/admin.php:1147
msgid "Screenshot"
msgstr "Bildschirmfoto"
-#: ../../mod/admin.php:1222
+#: ../../mod/admin.php:1195
msgid "[Experimental]"
msgstr "[Experimentell]"
-#: ../../mod/admin.php:1223
+#: ../../mod/admin.php:1196
msgid "[Unsupported]"
msgstr "[Nicht unterstützt]"
-#: ../../mod/admin.php:1250
+#: ../../mod/admin.php:1223
msgid "Log settings updated."
msgstr "Protokoll-Einstellungen aktualisiert."
-#: ../../mod/admin.php:1306
+#: ../../mod/admin.php:1279
msgid "Clear"
msgstr "Leeren"
-#: ../../mod/admin.php:1312
+#: ../../mod/admin.php:1285
msgid "Debugging"
msgstr "Debugging"
-#: ../../mod/admin.php:1313
+#: ../../mod/admin.php:1286
msgid "Log file"
msgstr "Protokolldatei"
-#: ../../mod/admin.php:1313
+#: ../../mod/admin.php:1286
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."
-#: ../../mod/admin.php:1314
+#: ../../mod/admin.php:1287
msgid "Log level"
msgstr "Protokollstufe"
-#: ../../mod/filer.php:49
-msgid "- select -"
-msgstr "– auswählen –"
-
-#: ../../mod/connections.php:37 ../../mod/connedit.php:64
-msgid "Could not access contact record."
-msgstr "Konnte nicht auf den Kontakteintrag zugreifen."
-
-#: ../../mod/connections.php:51 ../../mod/connedit.php:78
-msgid "Could not locate selected profile."
-msgstr "Gewähltes Profil nicht gefunden."
-
-#: ../../mod/connections.php:94 ../../mod/connedit.php:132
-msgid "Connection updated."
-msgstr "Verbindung aktualisiert."
-
-#: ../../mod/connections.php:96 ../../mod/connedit.php:134
-msgid "Failed to update connection record."
-msgstr "Konnte den Verbindungseintrag nicht aktualisieren."
-
-#: ../../mod/connections.php:191 ../../mod/connections.php:292
-msgid "Blocked"
-msgstr "Blockiert"
-
-#: ../../mod/connections.php:196 ../../mod/connections.php:299
-msgid "Ignored"
-msgstr "Ignoriert"
-
-#: ../../mod/connections.php:201 ../../mod/connections.php:313
-msgid "Hidden"
-msgstr "Versteckt"
-
-#: ../../mod/connections.php:206 ../../mod/connections.php:306
-msgid "Archived"
-msgstr "Archiviert"
-
-#: ../../mod/connections.php:230 ../../mod/connections.php:245
-msgid "All"
-msgstr "Alle"
-
-#: ../../mod/connections.php:270
-msgid "Suggest new connections"
-msgstr "Neue Verbindungen vorschlagen"
-
-#: ../../mod/connections.php:273
-msgid "New Connections"
-msgstr "Neue Verbindungen"
-
-#: ../../mod/connections.php:276
-msgid "Show pending (new) connections"
-msgstr "Zeige ausstehende (neue) Verbindungsanfragen"
-
-#: ../../mod/connections.php:279 ../../mod/profperm.php:139
-msgid "All Connections"
-msgstr "Alle Verbindungen"
-
-#: ../../mod/connections.php:282
-msgid "Show all connections"
-msgstr "Zeige alle Verbindungen"
-
-#: ../../mod/connections.php:285
-msgid "Unblocked"
-msgstr "Freigegeben"
-
-#: ../../mod/connections.php:288
-msgid "Only show unblocked connections"
-msgstr "Zeige nur freigegebene Verbindungen"
-
-#: ../../mod/connections.php:295
-msgid "Only show blocked connections"
-msgstr "Zeige nur blockierte Verbindungen"
-
-#: ../../mod/connections.php:302
-msgid "Only show ignored connections"
-msgstr "Zeige nur ignorierte Verbindungen"
-
-#: ../../mod/connections.php:309
-msgid "Only show archived connections"
-msgstr "Zeige nur archivierte Verbindungen"
-
-#: ../../mod/connections.php:316
-msgid "Only show hidden connections"
-msgstr "Zeige nur versteckte Verbindungen"
-
-#: ../../mod/connections.php:368
-#, php-format
-msgid "%1$s [%2$s]"
-msgstr "%1$s [%2$s]"
-
-#: ../../mod/connections.php:369
-msgid "Edit contact"
-msgstr "Kontakt bearbeiten"
-
-#: ../../mod/connections.php:390
-msgid "Search your connections"
-msgstr "Verbindungen durchsuchen"
-
-#: ../../mod/connections.php:391
-msgid "Finding: "
-msgstr "Ergebnisse:"
-
-#: ../../mod/dirprofile.php:9 ../../mod/photos.php:443
-#: ../../mod/viewconnections.php:17 ../../mod/directory.php:15
-#: ../../mod/display.php:9 ../../mod/search.php:13
-msgid "Public access denied."
-msgstr "Öffentlicher Zugang verweigert."
-
-#: ../../mod/dirprofile.php:92 ../../mod/directory.php:143
-#: ../../mod/profiles.php:650
-msgid "Age: "
-msgstr "Alter:"
-
-#: ../../mod/dirprofile.php:95 ../../mod/directory.php:146
-msgid "Gender: "
-msgstr "Geschlecht:"
+#: ../../mod/admin.php:1334
+msgid "New Profile Field"
+msgstr "Neues Profilfeld"
-#: ../../mod/dirprofile.php:108
-msgid "Status: "
-msgstr "Status:"
+#: ../../mod/admin.php:1335 ../../mod/admin.php:1356
+msgid "Field nickname"
+msgstr "Kurzname für das Feld"
-#: ../../mod/dirprofile.php:109
-msgid "Sexual Preference: "
-msgstr "Sexuelle Ausrichtung:"
+#: ../../mod/admin.php:1335 ../../mod/admin.php:1356
+msgid "System name of field"
+msgstr "Systemname des Feldes"
-#: ../../mod/dirprofile.php:111
-msgid "Homepage: "
-msgstr "Webseite:"
+#: ../../mod/admin.php:1336 ../../mod/admin.php:1357
+msgid "Input type"
+msgstr "Art des Inhalts"
-#: ../../mod/dirprofile.php:112
-msgid "Hometown: "
-msgstr "Wohnort:"
+#: ../../mod/admin.php:1337 ../../mod/admin.php:1358
+msgid "Field Name"
+msgstr "Feldname"
-#: ../../mod/dirprofile.php:114
-msgid "About: "
-msgstr "Ãœber:"
+#: ../../mod/admin.php:1337 ../../mod/admin.php:1358
+msgid "Label on profile pages"
+msgstr "Bezeichnung auf Profilseiten"
-#: ../../mod/dirprofile.php:162
-msgid "Keywords: "
-msgstr "Schlüsselwörter:"
+#: ../../mod/admin.php:1338 ../../mod/admin.php:1359
+msgid "Help text"
+msgstr "Hilfetext"
-#: ../../mod/dirprofile.php:175 ../../mod/mitem.php:78 ../../mod/xchan.php:27
-#: ../../mod/menu.php:120
-msgid "Not found."
-msgstr "Nicht gefunden."
+#: ../../mod/admin.php:1338 ../../mod/admin.php:1359
+msgid "Additional info (optional)"
+msgstr "Zusätzliche Informationen (optional)"
-#: ../../mod/photos.php:77
-msgid "Page owner information could not be retrieved."
-msgstr "Informationen über den Besitzer der Seite konnten nicht gefunden werden."
+#: ../../mod/admin.php:1349
+msgid "Field definition not found"
+msgstr "Feld-Definition nicht gefunden"
-#: ../../mod/photos.php:97
-msgid "Album not found."
-msgstr "Album nicht gefunden."
+#: ../../mod/admin.php:1355
+msgid "Edit Profile Field"
+msgstr "Profilfeld bearbeiten"
-#: ../../mod/photos.php:119 ../../mod/photos.php:669
-msgid "Delete Album"
-msgstr "Album löschen"
+#: ../../mod/item.php:159
+msgid "Unable to locate original post."
+msgstr "Originalbeitrag nicht gefunden."
-#: ../../mod/photos.php:159 ../../mod/photos.php:957
-msgid "Delete Photo"
-msgstr "Foto löschen"
+#: ../../mod/item.php:418
+msgid "Empty post discarded."
+msgstr "Leeren Beitrag verworfen."
-#: ../../mod/photos.php:453
-msgid "No photos selected"
-msgstr "Keine Fotos ausgewählt"
+#: ../../mod/item.php:460
+msgid "Executable content type not permitted to this channel."
+msgstr "Ausführbarer Content-Typ ist für diesen Kanal nicht freigegeben."
-#: ../../mod/photos.php:500
-msgid "Access to this item is restricted."
-msgstr "Der Zugriff auf dieses Foto ist eingeschränkt."
+#: ../../mod/item.php:898
+msgid "System error. Post not saved."
+msgstr "Systemfehler. Beitrag nicht gespeichert."
-#: ../../mod/photos.php:574
+#: ../../mod/item.php:1373
#, 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."
+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/photos.php:577
+#: ../../mod/item.php:1379
#, php-format
-msgid "You have used %1$.2f Mbytes of photo storage."
-msgstr "Du verwendest %1$.2f MBytes Deines Foto-Speichers."
-
-#: ../../mod/photos.php:596
-msgid "Upload Photos"
-msgstr "Fotos hochladen"
-
-#: ../../mod/photos.php:600 ../../mod/photos.php:664
-msgid "New album name: "
-msgstr "Name des neuen Albums:"
-
-#: ../../mod/photos.php:601
-msgid "or existing album name: "
-msgstr "Oder bestehender Album-Name:"
-
-#: ../../mod/photos.php:602
-msgid "Do not show a status post for this upload"
-msgstr "Keine Statusnachricht für diesen Upload senden"
-
-#: ../../mod/photos.php:653 ../../mod/photos.php:675 ../../mod/photos.php:1129
-#: ../../mod/photos.php:1144
-msgid "Contact Photos"
-msgstr "Kontakt-Bilder"
-
-#: ../../mod/photos.php:679
-msgid "Edit Album"
-msgstr "Album bearbeiten"
-
-#: ../../mod/photos.php:685
-msgid "Show Newest First"
-msgstr "Zeige Neueste zuerst"
-
-#: ../../mod/photos.php:687
-msgid "Show Oldest First"
-msgstr "Zeige Älteste zuerst"
-
-#: ../../mod/photos.php:730 ../../mod/photos.php:1176
-msgid "View Photo"
-msgstr "Foto ansehen"
-
-#: ../../mod/photos.php:776
-msgid "Permission denied. Access to this item may be restricted."
-msgstr "Berechtigung verweigert. Der Zugriff ist wahrscheinlich eingeschränkt worden."
-
-#: ../../mod/photos.php:778
-msgid "Photo not available"
-msgstr "Foto nicht verfügbar"
-
-#: ../../mod/photos.php:838
-msgid "Use as profile photo"
-msgstr "Als Profilfoto verwenden"
-
-#: ../../mod/photos.php:862
-msgid "View Full Size"
-msgstr "In voller Größe anzeigen"
-
-#: ../../mod/photos.php:906 ../../mod/delegate.php:130 ../../mod/tagrm.php:93
-msgid "Remove"
-msgstr "Entferne"
-
-#: ../../mod/photos.php:940
-msgid "Edit photo"
-msgstr "Foto bearbeiten"
-
-#: ../../mod/photos.php:942
-msgid "Rotate CW (right)"
-msgstr "Drehen im UZS (rechts)"
-
-#: ../../mod/photos.php:943
-msgid "Rotate CCW (left)"
-msgstr "Drehen gegen UZS (links)"
-
-#: ../../mod/photos.php:946
-msgid "New album name"
-msgstr "Name des neuen Albums:"
+msgid "You have reached your limit of %1$.0f webpages."
+msgstr "Du hast die maximale Anzahl von %1$.0f Webseiten erreicht."
-#: ../../mod/photos.php:949
-msgid "Caption"
-msgstr "Bildunterschrift"
+#: ../../mod/like.php:15
+msgid "Like/Dislike"
+msgstr "Mögen/Nicht mögen"
-#: ../../mod/photos.php:951
-msgid "Add a Tag"
-msgstr "Schlagwort hinzufügen"
+#: ../../mod/like.php:20
+msgid "This action is restricted to members."
+msgstr "Diese Aktion kann nur von Mitgliedern ausgeführt werden."
-#: ../../mod/photos.php:954
+#: ../../mod/like.php:21
msgid ""
-"Example: @bob, @Barbara_Jensen, @jim@example.com, #California, #camping"
-msgstr "Beispiel: @bob, @Barbara_Jensen, @jim@example.com, #California, #camping"
+"Please <a href=\"rmagic\">login with your RedMatrix ID</a> or <a "
+"href=\"register\">register as a new RedMatrix member</a> to continue."
+msgstr "Bitte <a href=\"rmagic\">melde Dich mit Deiner RedMatrix-ID an</a> oder <a href=\"register\">registriere Dich als neues Mitglied der RedMatrix</a>, um fortzufahren."
-#: ../../mod/photos.php:1107
-msgid "In This Photo:"
-msgstr "Auf diesem Foto:"
+#: ../../mod/like.php:77 ../../mod/like.php:104 ../../mod/like.php:142
+msgid "Invalid request."
+msgstr "Ungültige Anfrage."
-#: ../../mod/photos.php:1182
-msgid "View Album"
-msgstr "Album ansehen"
+#: ../../mod/like.php:119
+msgid "thing"
+msgstr "Sache"
-#: ../../mod/photos.php:1191
-msgid "Recent Photos"
-msgstr "Neueste Fotos"
+#: ../../mod/like.php:165
+msgid "Channel unavailable."
+msgstr "Kanal nicht vorhanden."
-#: ../../mod/mitem.php:14 ../../mod/menu.php:92
-msgid "Menu not found."
-msgstr "Menü nicht gefunden"
+#: ../../mod/like.php:204
+msgid "Previous action reversed."
+msgstr "Die vorherige Aktion wurde rückgängig gemacht."
-#: ../../mod/mitem.php:47
-msgid "Menu element updated."
-msgstr "Menü-Element aktualisiert."
+#: ../../mod/like.php:430
+msgid "Action completed."
+msgstr "Aktion durchgeführt."
-#: ../../mod/mitem.php:51
-msgid "Unable to update menu element."
-msgstr "Kann Menü-Element nicht aktualisieren."
+#: ../../mod/like.php:431
+msgid "Thank you."
+msgstr "Vielen Dank."
-#: ../../mod/mitem.php:57
-msgid "Menu element added."
-msgstr "Menü-Bestandteil hinzugefügt."
+#: ../../mod/invite.php:25
+msgid "Total invitation limit exceeded."
+msgstr "Einladungslimit überschritten."
-#: ../../mod/mitem.php:61
-msgid "Unable to add menu element."
-msgstr "Kann Menü-Bestandteil nicht hinzufügen."
+#: ../../mod/invite.php:49
+#, php-format
+msgid "%s : Not a valid email address."
+msgstr "%s : Keine gültige Email Adresse."
-#: ../../mod/mitem.php:96
-msgid "Manage Menu Elements"
-msgstr "Menü-Bestandteile verwalten"
+#: ../../mod/invite.php:76
+msgid "Please join us on Red"
+msgstr "Schließe Dich uns an und werde Teil der Red-Matrix"
-#: ../../mod/mitem.php:99
-msgid "Edit menu"
-msgstr "Menü bearbeiten"
+#: ../../mod/invite.php:87
+msgid "Invitation limit exceeded. Please contact your site administrator."
+msgstr "Einladungslimit überschritten. Bitte kontaktiere den Administrator Deines Red-Servers."
-#: ../../mod/mitem.php:102
-msgid "Edit element"
-msgstr "Bestandteil bearbeiten"
+#: ../../mod/invite.php:92
+#, php-format
+msgid "%s : Message delivery failed."
+msgstr "%s : Nachricht konnte nicht zugestellt werden."
-#: ../../mod/mitem.php:103
-msgid "Drop element"
-msgstr "Bestandteil löschen"
+#: ../../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/mitem.php:104
-msgid "New element"
-msgstr "Neues Bestandteil"
+#: ../../mod/invite.php:115
+msgid "You have no more invitations available"
+msgstr "Du hast keine weiteren verfügbare Einladungen"
-#: ../../mod/mitem.php:105
-msgid "Edit this menu container"
-msgstr "Diesen Menü-Container bearbeiten"
+#: ../../mod/invite.php:129
+msgid "Send invitations"
+msgstr "Einladungen senden"
-#: ../../mod/mitem.php:106
-msgid "Add menu element"
-msgstr "Menüelement hinzufügen"
+#: ../../mod/invite.php:130
+msgid "Enter email addresses, one per line:"
+msgstr "Email-Adressen eintragen, eine pro Zeile:"
-#: ../../mod/mitem.php:107
-msgid "Delete this menu item"
-msgstr "Lösche dieses Menü-Bestandteil"
+#: ../../mod/invite.php:131 ../../mod/mail.php:228 ../../mod/mail.php:341
+msgid "Your message:"
+msgstr "Deine Nachricht:"
-#: ../../mod/mitem.php:108
-msgid "Edit this menu item"
-msgstr "Bearbeite dieses Menü-Bestandteil"
+#: ../../mod/invite.php:132
+msgid "Please join my community on RedMatrix."
+msgstr "Schließe Dich uns in der RedMatrix an!"
-#: ../../mod/mitem.php:131
-msgid "New Menu Element"
-msgstr "Neues Menü-Bestandteil"
+#: ../../mod/invite.php:134
+msgid "You will need to supply this invitation code: "
+msgstr "Gib diesen Invite-Code ein:"
-#: ../../mod/mitem.php:133 ../../mod/mitem.php:176
-msgid "Menu Item Permissions"
-msgstr "Zugriffsrechte des Menü-Elements"
+#: ../../mod/invite.php:135
+msgid "1. Register at any RedMatrix location (they are all inter-connected)"
+msgstr "1. Registriere Dich auf irgendeinem RedMatrix-Server (sie sind alle miteinander verbunden)"
-#: ../../mod/mitem.php:136 ../../mod/mitem.php:180
-msgid "Link text"
-msgstr "Link Text"
+#: ../../mod/invite.php:137
+msgid "2. Enter my RedMatrix network address into the site searchbar."
+msgstr "2. Gib meine RedMatrix-Adresse im Suchfeld ein."
-#: ../../mod/mitem.php:137 ../../mod/mitem.php:181
-msgid "URL of link"
-msgstr "URL des Links"
+#: ../../mod/invite.php:138
+msgid "or visit "
+msgstr "oder besuche"
-#: ../../mod/mitem.php:138 ../../mod/mitem.php:182
-msgid "Use Red magic-auth if available"
-msgstr "Verwende Red Magic-Auth wenn verfügbar"
+#: ../../mod/invite.php:140
+msgid "3. Click [Connect]"
+msgstr "3. Klicke auf [Verbinden]"
-#: ../../mod/mitem.php:139 ../../mod/mitem.php:183
-msgid "Open link in new window"
-msgstr "Öffne Link in neuem Fenster"
+#: ../../mod/locs.php:19 ../../mod/locs.php:46
+msgid "Location not found."
+msgstr "Klon nicht gefunden."
-#: ../../mod/mitem.php:141 ../../mod/mitem.php:185
-msgid "Order in list"
-msgstr "Reihenfolge in der Liste"
+#: ../../mod/locs.php:50
+msgid "Primary location cannot be removed."
+msgstr "Der primäre Klon kann nicht gelöscht werden."
-#: ../../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/locs.php:82
+msgid "No locations found."
+msgstr "Keine Klon-Adressen gefunden"
-#: ../../mod/mitem.php:154
-msgid "Menu item not found."
-msgstr "Menü-Bestandteil nicht gefunden."
+#: ../../mod/locs.php:95
+msgid "Manage Channel Locations"
+msgstr "Klon-Adressen verwalten"
-#: ../../mod/mitem.php:163
-msgid "Menu item deleted."
-msgstr "Menü-Bestandteil gelöscht."
+#: ../../mod/locs.php:96
+msgid "Location (address)"
+msgstr "URL (Adresse)"
-#: ../../mod/mitem.php:165
-msgid "Menu item could not be deleted."
-msgstr "Menü-Bestandteil kann nicht gelöscht werden."
+#: ../../mod/locs.php:97
+msgid "Primary Location"
+msgstr "Primärer Klon"
-#: ../../mod/mitem.php:174
-msgid "Edit Menu Element"
-msgstr "Bearbeite Menü-Bestandteil"
-
-#: ../../mod/mitem.php:186 ../../mod/menu.php:114
-msgid "Modify"
-msgstr "Ändern"
+#: ../../mod/locs.php:98
+msgid "Drop location"
+msgstr "Klon löschen"
-#: ../../mod/subthread.php:103
-#, php-format
-msgid "%1$s is following %2$s's %3$s"
-msgstr "%1$s folgt nun %2$ss %3$s"
+#: ../../mod/update_channel.php:43 ../../mod/update_display.php:25
+#: ../../mod/update_network.php:23 ../../mod/update_search.php:46
+msgid "[Embedded content - reload page to view]"
+msgstr "[Eingebettete Inhalte – lade die Seite neu, um sie anzuzeigen]"
-#: ../../mod/regmod.php:12
-msgid "Please login."
-msgstr "Bitte melde dich an."
+#: ../../mod/layouts.php:110
+msgid "Help with this feature"
+msgstr "Hilfe zu dieser Funktion"
-#: ../../mod/mood.php:132
-msgid "Set your current mood and tell your friends"
-msgstr "Wähle Deine aktuelle Stimmung und teile sie mit Deinen Freunden"
+#: ../../mod/layouts.php:130
+msgid "Layout Name"
+msgstr "Layout-Name"
-#: ../../mod/lockview.php:35 ../../mod/lockview.php:41
+#: ../../mod/lockview.php:31
msgid "Remote privacy information not available."
msgstr "Privatsphäre-Einstellungen anderer Nutzer sind nicht verfügbar."
-#: ../../mod/lockview.php:50
+#: ../../mod/lockview.php:52
msgid "Visible to:"
msgstr "Sichtbar für:"
-#: ../../mod/rbmark.php:88
-msgid "Select a bookmark folder"
-msgstr "Wähle einen Lesezeichenordner"
+#: ../../mod/viewconnections.php:58
+msgid "No connections."
+msgstr "Keine Verbindungen."
-#: ../../mod/rbmark.php:93
-msgid "Save Bookmark"
-msgstr "Speichere Lesezeichen"
+#: ../../mod/viewconnections.php:71
+#, php-format
+msgid "Visit %s's profile [%s]"
+msgstr "%ss Profil [%s] besuchen"
-#: ../../mod/rbmark.php:94
-msgid "URL of bookmark"
-msgstr "URL des Lesezeichens"
+#: ../../mod/viewconnections.php:86
+msgid "View Connnections"
+msgstr "Zeige Verbindungen"
-#: ../../mod/rbmark.php:95 ../../mod/appman.php:93
-msgid "Description"
-msgstr "Beschreibung"
+#: ../../mod/magic.php:70
+msgid "Hub not found."
+msgstr "Server nicht gefunden."
-#: ../../mod/rbmark.php:99
-msgid "Or enter new bookmark folder name"
-msgstr "Oder gib einen neuen Namen für den Lesezeichenordner ein"
+#: ../../mod/vote.php:97
+msgid "Total votes"
+msgstr "Stimmen gesamt"
-#: ../../mod/pdledit.php:13
-msgid "Layout updated."
-msgstr "Layout aktualisiert."
+#: ../../mod/vote.php:98
+msgid "Average Rating"
+msgstr "Durchschnittliche Bewertung"
-#: ../../mod/pdledit.php:28 ../../mod/pdledit.php:53
-msgid "Edit System Page Description"
-msgstr "Systemseitenbeschreibung editieren"
+#: ../../mod/mail.php:33
+msgid "Unable to lookup recipient."
+msgstr "Konnte den Empfänger nicht finden."
-#: ../../mod/pdledit.php:48
-msgid "Layout not found."
-msgstr "Layout nicht gefunden."
+#: ../../mod/mail.php:41
+msgid "Unable to communicate with requested channel."
+msgstr "Die Kommunikation mit dem ausgewählten Kanal ist fehlgeschlagen."
-#: ../../mod/pdledit.php:54
-msgid "Module Name:"
-msgstr "Modulname:"
+#: ../../mod/mail.php:48
+msgid "Cannot verify requested channel."
+msgstr "Verifizierung des angeforderten Kanals fehlgeschlagen."
-#: ../../mod/pdledit.php:55 ../../mod/layouts.php:59
-msgid "Layout Help"
-msgstr "Layout-Hilfe"
+#: ../../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/profile_photo.php:108
-msgid "Image uploaded but image cropping failed."
-msgstr "Bild hochgeladen, aber das Zurechtschneiden schlug fehl."
+#: ../../mod/mail.php:135
+msgid "Message deleted."
+msgstr "Nachricht gelöscht."
-#: ../../mod/profile_photo.php:161
-msgid "Image resize failed."
-msgstr "Bild-Anpassung fehlgeschlagen."
+#: ../../mod/mail.php:152
+msgid "Message recalled."
+msgstr "Nachricht widerrufen."
-#: ../../mod/profile_photo.php:205
-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, falls das neue Foto nicht sofort angezeigt wird."
+#: ../../mod/mail.php:218
+msgid "Send Private Message"
+msgstr "Private Nachricht senden"
-#: ../../mod/profile_photo.php:232
-#, php-format
-msgid "Image exceeds size limit of %d"
-msgstr "Bild ist größer als das Limit von %d"
+#: ../../mod/mail.php:219 ../../mod/mail.php:336
+msgid "To:"
+msgstr "An:"
-#: ../../mod/profile_photo.php:241
-msgid "Unable to process image."
-msgstr "Kann Bild nicht verarbeiten."
+#: ../../mod/mail.php:224 ../../mod/mail.php:338
+msgid "Subject:"
+msgstr "Betreff:"
-#: ../../mod/profile_photo.php:290 ../../mod/profile_photo.php:339
-msgid "Photo not available."
-msgstr "Foto nicht verfügbar."
+#: ../../mod/mail.php:235
+msgid "Send"
+msgstr "Absenden"
-#: ../../mod/profile_photo.php:358
-msgid "Upload File:"
-msgstr "Datei hochladen:"
+#: ../../mod/mail.php:262
+msgid "Message not found."
+msgstr "Nachricht nicht gefunden."
-#: ../../mod/profile_photo.php:359
-msgid "Select a profile:"
-msgstr "Wählen Sie ein Profil:"
+#: ../../mod/mail.php:305
+msgid "Delete message"
+msgstr "Nachricht löschen"
-#: ../../mod/profile_photo.php:360
-msgid "Upload Profile Photo"
-msgstr "Lade neues Profilfoto hoch"
+#: ../../mod/mail.php:306
+msgid "Recall message"
+msgstr "Nachricht widerrufen"
-#: ../../mod/profile_photo.php:365
-msgid "skip this step"
-msgstr "diesen Schritt überspringen"
+#: ../../mod/mail.php:308
+msgid "Message has been recalled."
+msgstr "Die Nachricht wurde widerrufen."
-#: ../../mod/profile_photo.php:365
-msgid "select a photo from your photo albums"
-msgstr "ein Foto aus meinen Fotoalben"
+#: ../../mod/mail.php:325
+msgid "Private Conversation"
+msgstr "Private Unterhaltung"
-#: ../../mod/profile_photo.php:379
-msgid "Crop Image"
-msgstr "Bild zuschneiden"
+#: ../../mod/mail.php:329 ../../mod/message.php:72
+msgid "Delete conversation"
+msgstr "Unterhaltung löschen"
-#: ../../mod/profile_photo.php:380
-msgid "Please adjust the image cropping for optimum viewing."
-msgstr "Bitte schneide das Bild für eine optimale Anzeige passend zu."
+#: ../../mod/mail.php:331
+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/profile_photo.php:382
-msgid "Done Editing"
-msgstr "Bearbeitung fertigstellen"
+#: ../../mod/mail.php:335
+msgid "Send Reply"
+msgstr "Antwort senden"
-#: ../../mod/profile_photo.php:425
-msgid "Image uploaded successfully."
-msgstr "Bild erfolgreich hochgeladen."
+#: ../../mod/wall_upload.php:34
+msgid "Wall Photos"
+msgstr "Wall Fotos"
-#: ../../mod/profile_photo.php:427
-msgid "Image upload failed."
-msgstr "Hochladen des Bilds fehlgeschlagen."
+#: ../../mod/match.php:16
+msgid "Profile Match"
+msgstr "Profil-Ãœbereinstimmungen"
-#: ../../mod/profile_photo.php:436
-#, php-format
-msgid "Image size reduction [%s] failed."
-msgstr "Reduzierung der Bildgröße [%s] fehlgeschlagen."
+#: ../../mod/match.php:24
+msgid "No keywords to match. Please add keywords to your default profile."
+msgstr "Keine Schlüsselwörter für den Abgleich gefunden. Bitte füge Schlüsselwörter zu Deinem Standardprofil hinzu."
-#: ../../mod/acl.php:239
-msgid "network"
-msgstr "Netzwerk"
+#: ../../mod/match.php:61
+msgid "is interested in:"
+msgstr "interessiert sich für:"
+
+#: ../../mod/match.php:69
+msgid "No matches"
+msgstr "Keine Ãœbereinstimmungen"
-#: ../../mod/menu.php:21
+#: ../../mod/menu.php:31
msgid "Menu updated."
msgstr "Menü aktualisiert."
-#: ../../mod/menu.php:25
+#: ../../mod/menu.php:35
msgid "Unable to update menu."
msgstr "Kann Menü nicht aktualisieren."
-#: ../../mod/menu.php:30
+#: ../../mod/menu.php:40
msgid "Menu created."
msgstr "Menü erstellt."
-#: ../../mod/menu.php:34
+#: ../../mod/menu.php:44
msgid "Unable to create menu."
msgstr "Kann Menü nicht erstellen."
-#: ../../mod/menu.php:57
+#: ../../mod/menu.php:76
msgid "Manage Menus"
msgstr "Menüs verwalten"
-#: ../../mod/menu.php:60
+#: ../../mod/menu.php:79
msgid "Drop"
msgstr "Löschen"
-#: ../../mod/menu.php:62
+#: ../../mod/menu.php:81
+msgid "Bookmarks allowed"
+msgstr "Lesezeichen erlaubt"
+
+#: ../../mod/menu.php:82
msgid "Create a new menu"
msgstr "Neues Menü erstellen"
-#: ../../mod/menu.php:63
+#: ../../mod/menu.php:83
msgid "Delete this menu"
msgstr "Lösche dieses Menü"
-#: ../../mod/menu.php:64 ../../mod/menu.php:109
+#: ../../mod/menu.php:84 ../../mod/menu.php:125
msgid "Edit menu contents"
msgstr "Bearbeite Menü Inhalte"
-#: ../../mod/menu.php:65
+#: ../../mod/menu.php:85
msgid "Edit this menu"
msgstr "Dieses Menü bearbeiten"
-#: ../../mod/menu.php:80
+#: ../../mod/menu.php:96
msgid "New Menu"
msgstr "Neues Menü"
-#: ../../mod/menu.php:81 ../../mod/menu.php:110
+#: ../../mod/menu.php:97 ../../mod/menu.php:126
msgid "Menu name"
msgstr "Menü Name"
-#: ../../mod/menu.php:81 ../../mod/menu.php:110
+#: ../../mod/menu.php:97 ../../mod/menu.php:126
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
+#: ../../mod/menu.php:98 ../../mod/menu.php:127
msgid "Menu title"
msgstr "Menü Titel"
-#: ../../mod/menu.php:82 ../../mod/menu.php:111
+#: ../../mod/menu.php:98 ../../mod/menu.php:127
msgid "Menu title as seen by others"
msgstr "Menü Titel wie er von anderen gesehen wird"
-#: ../../mod/menu.php:83 ../../mod/menu.php:112
+#: ../../mod/menu.php:99 ../../mod/menu.php:128
msgid "Allow bookmarks"
msgstr "Erlaube Lesezeichen"
-#: ../../mod/menu.php:83 ../../mod/menu.php:112
+#: ../../mod/menu.php:99 ../../mod/menu.php:128
msgid "Menu may be used to store saved bookmarks"
msgstr "Im Menü können gespeicherte Lesezeichen abgelegt werden"
-#: ../../mod/menu.php:98
+#: ../../mod/menu.php:114
msgid "Menu deleted."
msgstr "Menü gelöscht."
-#: ../../mod/menu.php:100
+#: ../../mod/menu.php:116
msgid "Menu could not be deleted."
msgstr "Menü konnte nicht gelöscht werden."
-#: ../../mod/menu.php:106
+#: ../../mod/menu.php:122
msgid "Edit Menu"
msgstr "Menü bearbeiten"
-#: ../../mod/menu.php:108
+#: ../../mod/menu.php:124
msgid "Add or remove entries to this menu"
msgstr "Einträge zu diesem Menü hinzufügen oder entfernen"
-#: ../../mod/block.php:27 ../../mod/page.php:35
-msgid "Invalid item."
-msgstr "Ungültiges Element."
-
-#: ../../mod/block.php:75 ../../mod/help.php:72 ../../mod/display.php:100
-#: ../../mod/page.php:83 ../../index.php:236
-msgid "Page not found."
-msgstr "Seite nicht gefunden."
-
-#: ../../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/wall_upload.php:34
-msgid "Wall Photos"
-msgstr "Wall Fotos"
-
-#: ../../mod/openid.php:26
-msgid "OpenID protocol error. No ID returned."
-msgstr "OpenID Protokollfehler. Keine ID zurückgegeben."
-
-#: ../../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 das ein neuer Server ist, versuche es in 24 Stunden noch einmal."
-
-#: ../../mod/connedit.php:181
-msgid "is now connected to"
-msgstr "ist jetzt verbunden mit"
-
-#: ../../mod/connedit.php:274
-msgid "Could not access address book record."
-msgstr "Konnte nicht auf den Adressbuch-Eintrag zugreifen."
-
-#: ../../mod/connedit.php:288
-msgid "Refresh failed - channel is currently unavailable."
-msgstr "Aktualisierung fehlgeschlagen – der Kanal ist im Moment nicht erreichbar."
-
-#: ../../mod/connedit.php:295
-msgid "Channel has been unblocked"
-msgstr "Kanal nicht mehr blockiert"
-
-#: ../../mod/connedit.php:296
-msgid "Channel has been blocked"
-msgstr "Kanal blockiert"
-
-#: ../../mod/connedit.php:300 ../../mod/connedit.php:312
-#: ../../mod/connedit.php:324 ../../mod/connedit.php:336
-#: ../../mod/connedit.php:352
-msgid "Unable to set address book parameters."
-msgstr "Konnte die Adressbuch-Parameter nicht setzen."
-
-#: ../../mod/connedit.php:307
-msgid "Channel has been unignored"
-msgstr "Kanal wird nicht mehr ignoriert"
-
-#: ../../mod/connedit.php:308
-msgid "Channel has been ignored"
-msgstr "Kanal wird ignoriert"
-
-#: ../../mod/connedit.php:319
-msgid "Channel has been unarchived"
-msgstr "Kanal wurde aus dem Archiv zurück geholt"
-
-#: ../../mod/connedit.php:320
-msgid "Channel has been archived"
-msgstr "Kanal wurde archiviert"
-
-#: ../../mod/connedit.php:331
-msgid "Channel has been unhidden"
-msgstr "Kanal wird nicht mehr versteckt"
-
-#: ../../mod/connedit.php:332
-msgid "Channel has been hidden"
-msgstr "Kanal wurde versteckt"
-
-#: ../../mod/connedit.php:347
-msgid "Channel has been approved"
-msgstr "Kanal wurde zugelassen"
-
-#: ../../mod/connedit.php:348
-msgid "Channel has been unapproved"
-msgstr "Zulassung des Kanals entfernt"
-
-#: ../../mod/connedit.php:376
-msgid "Connection has been removed."
-msgstr "Verbindung wurde entfernt."
-
-#: ../../mod/connedit.php:396
-#, php-format
-msgid "View %s's profile"
-msgstr "%ss Profil ansehen"
-
-#: ../../mod/connedit.php:400
-msgid "Refresh Permissions"
-msgstr "Zugriffsrechte neu laden"
-
-#: ../../mod/connedit.php:403
-msgid "Fetch updated permissions"
-msgstr "Aktualisierte Zugriffsrechte abfragen"
-
-#: ../../mod/connedit.php:407
-msgid "Recent Activity"
-msgstr "Kürzliche Aktivitäten"
-
-#: ../../mod/connedit.php:410
-msgid "View recent posts and comments"
-msgstr "Betrachte die neuesten Beiträge und Kommentare"
-
-#: ../../mod/connedit.php:417
-msgid "Block or Unblock this connection"
-msgstr "Verbindung blockieren oder freigeben"
-
-#: ../../mod/connedit.php:421 ../../mod/connedit.php:558
-msgid "Unignore"
-msgstr "Nicht ignorieren"
-
-#: ../../mod/connedit.php:421 ../../mod/connedit.php:558
-#: ../../mod/notifications.php:51
-msgid "Ignore"
-msgstr "Ignorieren"
-
-#: ../../mod/connedit.php:424
-msgid "Ignore or Unignore this connection"
-msgstr "Verbindung ignorieren oder wieder beachten"
-
-#: ../../mod/connedit.php:427
-msgid "Unarchive"
-msgstr "Aus Archiv zurückholen"
-
-#: ../../mod/connedit.php:427
-msgid "Archive"
-msgstr "Archivieren"
-
-#: ../../mod/connedit.php:430
-msgid "Archive or Unarchive this connection"
-msgstr "Verbindung archivieren oder aus dem Archiv zurückholen"
-
-#: ../../mod/connedit.php:433
-msgid "Unhide"
-msgstr "Wieder sichtbar machen"
-
-#: ../../mod/connedit.php:433
-msgid "Hide"
-msgstr "Verstecken"
-
-#: ../../mod/connedit.php:436
-msgid "Hide or Unhide this connection"
-msgstr "Diese Verbindung verstecken oder wieder sichtbar machen"
-
-#: ../../mod/connedit.php:443
-msgid "Delete this connection"
-msgstr "Verbindung löschen"
-
-#: ../../mod/connedit.php:486 ../../mod/connedit.php:515
-msgid "Approve this connection"
-msgstr "Verbindung genehmigen"
-
-#: ../../mod/connedit.php:486
-msgid "Accept connection to allow communication"
-msgstr "Akzeptiere die Verbindung, um Kommunikation zu ermöglichen"
-
-#: ../../mod/connedit.php:502
-msgid "Automatic Permissions Settings"
-msgstr "Automatische Berechtigungs-Einstellungen"
-
-#: ../../mod/connedit.php:502
-#, php-format
-msgid "Connections: settings for %s"
-msgstr "Verbindungseinstellungen für %s"
-
-#: ../../mod/connedit.php:506
-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 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/connedit.php:508
-msgid "Slide to adjust your degree of friendship"
-msgstr "Verschieben, um den Grad der Freundschaft zu einzustellen"
-
-#: ../../mod/connedit.php:514
-msgid "inherited"
-msgstr "geerbt"
-
-#: ../../mod/connedit.php:516
-msgid "Connection has no individual permissions!"
-msgstr "Diese Verbindung hat keine individuellen Zugriffsrechte!"
-
-#: ../../mod/connedit.php:517
-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äre-Einstellungen</a> könnte das passen, eventuell solltest Du aber die „Zugriffsrechte für Fortgeschrittene“ überprüfen."
-
-#: ../../mod/connedit.php:519
-msgid "Profile Visibility"
-msgstr "Sichtbarkeit des Profils"
-
-#: ../../mod/connedit.php:520
-#, 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."
-
-#: ../../mod/connedit.php:521
-msgid "Contact Information / Notes"
-msgstr "Kontaktinformationen / Notizen"
-
-#: ../../mod/connedit.php:522
-msgid "Edit contact notes"
-msgstr "Kontaktnotizen bearbeiten"
-
-#: ../../mod/connedit.php:524
-msgid "Their Settings"
-msgstr "Deren Einstellungen"
-
-#: ../../mod/connedit.php:525
-msgid "My Settings"
-msgstr "Meine Einstellungen"
-
-#: ../../mod/connedit.php:527
-msgid "Clear/Disable Automatic Permissions"
-msgstr "Automatische Berechtigungen abschalten/entfernen"
-
-#: ../../mod/connedit.php:528
-msgid "Forum Members"
-msgstr "Forum Mitglieder"
-
-#: ../../mod/connedit.php:529
-msgid "Soapbox"
-msgstr "Marktschreier"
-
-#: ../../mod/connedit.php:530
-msgid "Full Sharing (typical social network permissions)"
-msgstr "Vollumfängliches Teilen (übliche Berechtigungen in sozialen Netzwerken)"
-
-#: ../../mod/connedit.php:531
-msgid "Cautious Sharing "
-msgstr "Vorsichtiges Teilen"
-
-#: ../../mod/connedit.php:532
-msgid "Follow Only"
-msgstr "Nur folgen"
-
-#: ../../mod/connedit.php:533
-msgid "Individual Permissions"
-msgstr "Individuelle Zugriffsrechte"
-
-#: ../../mod/connedit.php:534
-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 "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/connedit.php:535
-msgid "Advanced Permissions"
-msgstr "Zugriffsrechte für Fortgeschrittene"
-
-#: ../../mod/connedit.php:536
-msgid "Simple Permissions (select one and submit)"
-msgstr "Einfache Berechtigungs-Einstellungen (wähle eine aus und klicke auf Senden)"
-
-#: ../../mod/connedit.php:540
-#, php-format
-msgid "Visit %s's profile - %s"
-msgstr "%ss Profil besuchen - %s"
-
-#: ../../mod/connedit.php:541
-msgid "Block/Unblock contact"
-msgstr "Kontakt blockieren/freigeben"
-
-#: ../../mod/connedit.php:542
-msgid "Ignore contact"
-msgstr "Kontakt ignorieren"
-
-#: ../../mod/connedit.php:543
-msgid "Repair URL settings"
-msgstr "URL-Einstellungen reparieren"
-
-#: ../../mod/connedit.php:544
-msgid "View conversations"
-msgstr "Unterhaltungen anzeigen"
-
-#: ../../mod/connedit.php:546
-msgid "Delete contact"
-msgstr "Kontakt löschen"
-
-#: ../../mod/connedit.php:549
-msgid "Last update:"
-msgstr "Letzte Aktualisierung:"
-
-#: ../../mod/connedit.php:551
-msgid "Update public posts"
-msgstr "Öffentliche Beiträge aktualisieren"
-
-#: ../../mod/connedit.php:553
-msgid "Update now"
-msgstr "Jetzt aktualisieren"
-
-#: ../../mod/connedit.php:559
-msgid "Currently blocked"
-msgstr "Derzeit blockiert"
-
-#: ../../mod/connedit.php:560
-msgid "Currently ignored"
-msgstr "Derzeit ignoriert"
-
-#: ../../mod/connedit.php:561
-msgid "Currently archived"
-msgstr "Derzeit archiviert"
-
-#: ../../mod/connedit.php:562
-msgid "Currently pending"
-msgstr "Derzeit anstehend"
-
-#: ../../mod/connedit.php:563
-msgid "Hide this contact from others"
-msgstr "Diese Verbindung vor den anderen verbergen."
-
-#: ../../mod/connedit.php:563
-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/message.php:31 ../../mod/mail.php:121
-msgid "Messages"
-msgstr "Nachrichten"
-
#: ../../mod/message.php:41
msgid "Conversation removed."
msgstr "Unterhaltung gelöscht."
@@ -5838,546 +7840,82 @@ msgstr "Unterhaltung gelöscht."
msgid "No messages."
msgstr "Keine Nachrichten."
-#: ../../mod/message.php:72 ../../mod/mail.php:302
-msgid "Delete message"
-msgstr "Nachricht löschen"
-
#: ../../mod/message.php:74
msgid "D, d M Y - g:i A"
-msgstr "D, d. M Y - g:i A"
-
-#: ../../mod/ping.php:237
-msgid "sent you a private message"
-msgstr "eine private Nachricht schicken"
-
-#: ../../mod/ping.php:288
-msgid "added your channel"
-msgstr "hat deinen Kanal hinzugefügt"
-
-#: ../../mod/ping.php:329
-msgid "posted an event"
-msgstr "hat eine Veranstaltung veröffentlicht"
-
-#: ../../mod/setup.php:162
-msgid "Red Matrix Server - Setup"
-msgstr "Red Matrix Server - Installation"
-
-#: ../../mod/setup.php:168
-msgid "Could not connect to database."
-msgstr "Kann nicht mit der Datenbank verbinden."
-
-#: ../../mod/setup.php:172
-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:179
-msgid "Could not create table."
-msgstr "Kann Tabelle nicht erstellen."
-
-#: ../../mod/setup.php:185
-msgid "Your site database has been installed."
-msgstr "Die Datenbank Deines Servers wurde installiert."
-
-#: ../../mod/setup.php:190
-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:191 ../../mod/setup.php:260 ../../mod/setup.php:655
-msgid "Please see the file \"install/INSTALL.txt\"."
-msgstr "Lies die Datei \"install/INSTALL.txt\"."
-
-#: ../../mod/setup.php:257
-msgid "System check"
-msgstr "Systemprüfung"
-
-#: ../../mod/setup.php:261 ../../mod/events.php:399
-msgid "Next"
-msgstr "Nächste"
-
-#: ../../mod/setup.php:262
-msgid "Check again"
-msgstr "Bitte nochmal prüfen"
-
-#: ../../mod/setup.php:284
-msgid "Database connection"
-msgstr "Datenbank Verbindung"
-
-#: ../../mod/setup.php:285
-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:286
-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:287
-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:291
-msgid "Database Server Name"
-msgstr "Datenbank-Servername"
-
-#: ../../mod/setup.php:291
-msgid "Default is localhost"
-msgstr "Standard ist localhost"
-
-#: ../../mod/setup.php:292
-msgid "Database Port"
-msgstr "Datenbank-Port"
-
-#: ../../mod/setup.php:292
-msgid "Communication port number - use 0 for default"
-msgstr "Port-Nummer für die Kommunikation – verwende 0 für die Standardeinstellung"
-
-#: ../../mod/setup.php:293
-msgid "Database Login Name"
-msgstr "Datenbank-Benutzername"
-
-#: ../../mod/setup.php:294
-msgid "Database Login Password"
-msgstr "Datenbank-Kennwort"
-
-#: ../../mod/setup.php:295
-msgid "Database Name"
-msgstr "Datenbank-Name"
-
-#: ../../mod/setup.php:297 ../../mod/setup.php:339
-msgid "Site administrator email address"
-msgstr "E-Mail Adresse des Seiten-Administrators"
-
-#: ../../mod/setup.php:297 ../../mod/setup.php:339
-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:298 ../../mod/setup.php:341
-msgid "Website URL"
-msgstr "Server-URL"
-
-#: ../../mod/setup.php:298 ../../mod/setup.php:341
-msgid "Please use SSL (https) URL if available."
-msgstr "Nutze wenn möglich eine SSL-URL (https)."
-
-#: ../../mod/setup.php:301 ../../mod/setup.php:344
-msgid "Please select a default timezone for your website"
-msgstr "Standard-Zeitzone für Deinen Server"
-
-#: ../../mod/setup.php:328
-msgid "Site settings"
-msgstr "Seiteneinstellungen"
-
-#: ../../mod/setup.php:387
-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:388
-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:392
-msgid "PHP executable path"
-msgstr "PHP Pfad zu ausführbarer Datei"
-
-#: ../../mod/setup.php:392
-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:397
-msgid "Command line PHP"
-msgstr "PHP Befehlszeile"
-
-#: ../../mod/setup.php:406
-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:407
-msgid "This is required for message delivery to work."
-msgstr "Das wird benötigt, damit die Auslieferung von Nachrichten funktioniert."
-
-#: ../../mod/setup.php:409
-msgid "PHP register_argc_argv"
-msgstr "PHP register_argc_argv"
-
-#: ../../mod/setup.php:430
-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:431
-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:433
-msgid "Generate encryption keys"
-msgstr "Verschlüsselungsschlüssel generieren"
-
-#: ../../mod/setup.php:440
-msgid "libCurl PHP module"
-msgstr "libCurl-PHP-Modul"
-
-#: ../../mod/setup.php:441
-msgid "GD graphics PHP module"
-msgstr "GD-Grafik-PHP-Modul"
-
-#: ../../mod/setup.php:442
-msgid "OpenSSL PHP module"
-msgstr "OpenSSL-PHP-Modul"
-
-#: ../../mod/setup.php:443
-msgid "mysqli PHP module"
-msgstr "mysqli-PHP-Modul"
-
-#: ../../mod/setup.php:444
-msgid "mb_string PHP module"
-msgstr "mb_string-PHP-Modul"
-
-#: ../../mod/setup.php:445
-msgid "mcrypt PHP module"
-msgstr "mcrypt-PHP-Modul"
-
-#: ../../mod/setup.php:450 ../../mod/setup.php:452
-msgid "Apache mod_rewrite module"
-msgstr "Apache-mod_rewrite-Modul"
-
-#: ../../mod/setup.php:450
-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:456 ../../mod/setup.php:459
-msgid "proc_open"
-msgstr "proc_open"
-
-#: ../../mod/setup.php:456
-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:464
-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:468
-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:472
-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:476
-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:480
-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:484
-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:500
-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:501
-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:502
-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:503
-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:506
-msgid ".htconfig.php is writable"
-msgstr ".htconfig.php ist beschreibbar"
-
-#: ../../mod/setup.php:516
-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:517
-#, php-format
-msgid ""
-"In order to store these compiled templates, the web server needs to have "
-"write access to the directory %s under the Red top level folder."
-msgstr "Um diese kompilierten Vorlagen speichern zu können braucht der Web-Server Schreibzugriff auf das Verzeichnis %s unterhalb des Red-Installationsverzeichnisses."
-
-#: ../../mod/setup.php:518 ../../mod/setup.php:536
-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:519
-#, php-format
-msgid ""
-"Note: as a security measure, you should give the web server write access to "
-"%s only--not the template files (.tpl) that it contains."
-msgstr " Hinweis: Aus Sicherheitsgründen sollte der Web-Server nur auf %s Schreibrechte haben, nicht in der restlichen Red-Installation."
-
-#: ../../mod/setup.php:522
-#, php-format
-msgid "%s is writable"
-msgstr "%s ist beschreibbar"
-
-#: ../../mod/setup.php:535
-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:539
-msgid "store is writable"
-msgstr "store ist schreibbar"
-
-#: ../../mod/setup.php:569
-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:570
-msgid ""
-"If you have https access to your website or allow connections to TCP port "
-"443 (the https: port), you MUST use a browser-valid certificate. You MUST "
-"NOT use self-signed certificates!"
-msgstr "Wenn Du über HTTPS-Protokoll auf Deine Seite zugreifen möchtest, also Verbindungen über den Port 443 möglich sein sollen, ist ein allgemein gültiges digitales SSL-Zertifikat einer Zertifizierungsstelle (CA) notwendig, welches Dein Browser akzeptiert. Die Verwendung eines selbst signierten Zertifikates ist nicht möglich."
-
-#: ../../mod/setup.php:571
-msgid ""
-"This restriction is incorporated because public posts from you may for "
-"example contain references to images on your own hub."
-msgstr "Diese Einschränkung wurde eingebaut, weil Deine öffentlichen Beiträge zum Beispiel Verweise auf Bilder in Deinem eigenen Hub enthalten können."
-
-#: ../../mod/setup.php:572
-msgid ""
-"If your certificate is not recognized, members of other sites (who may "
-"themselves have valid certificates) will get a warning message on their own "
-"site complaining about security issues."
-msgstr "Wenn Dein Zertifikat nicht von jedem Browser akzeptiert wird, erhalten die Mitglieder anderer Red-Server (die mit korrekten Zertifikate ausgestattet sind) Sicherheits-Warnmeldungen, obwohl sie gar nicht direkt auf Deinem Server unterwegs sind (zum Beispiel, wenn ein Bild aus einem Deiner Beiträge angezeigt wird)."
+msgstr "D, d. M Y - G:i"
-#: ../../mod/setup.php:573
-msgid ""
-"This can cause usability issues elsewhere (not just on your own site) so we "
-"must insist on this requirement."
-msgstr "Dies kann Probleme an anderer Stelle (nicht nur auf Ihrer eigenen Website) verursachen, so dass wir auf dieser Forderung bestehen müssen.. "
-
-#: ../../mod/setup.php:574
-msgid ""
-"Providers are available that issue free certificates which are browser-"
-"valid."
-msgstr "Einige Provider stellen kostenlos gültige Browser-Zertifikate aus."
-
-#: ../../mod/setup.php:576
-msgid "SSL certificate validation"
-msgstr "SSL Zertifikatverifizierung"
-
-#: ../../mod/setup.php:582
-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:584
-msgid "Url rewrite is working"
-msgstr "Url rewrite funktioniert"
-
-#: ../../mod/setup.php:594
-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:618
-msgid "Errors encountered creating database tables."
-msgstr "Fehler beim Anlegen der Datenbank-Tabellen aufgetreten."
-
-#: ../../mod/setup.php:653
-msgid "<h1>What next</h1>"
-msgstr "<h1>Was als Nächstes</h1>"
+#: ../../mod/new_channel.php:109
+msgid "Add a Channel"
+msgstr "Kanal hinzufügen"
-#: ../../mod/setup.php:654
+#: ../../mod/new_channel.php:110
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/magic.php:70
-msgid "Hub not found."
-msgstr "Server nicht gefunden."
-
-#: ../../mod/invite.php:25
-msgid "Total invitation limit exceeded."
-msgstr "Einladungslimit überschritten."
-
-#: ../../mod/invite.php:49
-#, php-format
-msgid "%s : Not a valid email address."
-msgstr "%s : Keine gültige Email Adresse."
-
-#: ../../mod/invite.php:76
-msgid "Please join us on Red"
-msgstr "Schließe Dich uns an und werde Teil der Red-Matrix"
-
-#: ../../mod/invite.php:87
-msgid "Invitation limit exceeded. Please contact your site administrator."
-msgstr "Einladungslimit überschritten. Bitte kontaktiere den Administrator Deines Red-Servers."
-
-#: ../../mod/invite.php:92
-#, php-format
-msgid "%s : Message delivery failed."
-msgstr "%s : Nachricht konnte nicht zugestellt werden."
-
-#: ../../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:115
-msgid "You have no more invitations available"
-msgstr "Du hast keine weiteren verfügbare Einladungen"
-
-#: ../../mod/invite.php:141
-msgid "Send invitations"
-msgstr "Einladungen senden"
+"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 "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/invite.php:142
-msgid "Enter email addresses, one per line:"
-msgstr "Email-Adressen eintragen, eine pro Zeile:"
+#: ../../mod/new_channel.php:113
+msgid "Examples: \"Bob Jameson\", \"Lisa and her Horses\", \"Soccer\", \"Aviation Group\" "
+msgstr "Beispiele: „Horst Weidinger“, „Lisa und ihr Meerschweinchen“, „Fußball“, „Segelflieger-Forum“ "
-#: ../../mod/invite.php:143 ../../mod/mail.php:225 ../../mod/mail.php:338
-msgid "Your message:"
-msgstr "Deine Nachricht:"
+#: ../../mod/new_channel.php:114
+msgid "Choose a short nickname"
+msgstr "Wähle einen kurzen Spitznamen"
-#: ../../mod/invite.php:144
+#: ../../mod/new_channel.php:115
msgid ""
-"You are cordially invited to join me and some other close friends on the Red"
-" Matrix - a revolutionary new decentralized communication and information "
-"tool."
-msgstr "Du bist herzlich eingeladen, mir und einigen anderen guten Freunden in die RedMatrix zu folgen – ein revolutionär neues und dezentrales Kommunikations- und Informationsnetzwerk."
-
-#: ../../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:147
-msgid "Please visit my channel at"
-msgstr "Bitte besuche meinen Kanal auf"
+"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 leicht zu merkende Kanal-Adresse (ähnlich einer E-Mail-Adresse) zu erzeugen, die Du mit anderen austauschen kannst."
-#: ../../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 welchem Server in der Red-Matrix, sie sind alle miteinander verbunden) verbinde Dich bitte mit meinem Kanal in der Matrix. Adresse:"
+#: ../../mod/new_channel.php:116
+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 Server"
-#: ../../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/new_channel.php:118
+msgid "Channel Type"
+msgstr "Kanaltyp"
-#: ../../mod/invite.php:155
+#: ../../mod/new_channel.php:119
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, besuche http://getzot.com"
+"Please choose a channel type (such as social networking or community forum) "
+"and privacy requirements so we can select the best permissions for you"
+msgstr "Wähle einen Kanaltyp (wie Soziales Netzwerk oder Forum) und Privatsphäre-Vorgaben, so dass wir die passenden Kanal-Zugriffsrechte für Dich setzen können"
-#: ../../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:162
-msgid "Thing added"
-msgstr "Ding hinzugefügt"
+#: ../../mod/home.php:46
+msgid "Red Matrix - &quot;The Network&quot;"
+msgstr "RedMatrix – &quot;Das Netzwerk&quot;"
-#: ../../mod/thing.php:182
+#: ../../mod/home.php:101
#, php-format
-msgid "OBJ: %1$s %2$s %3$s"
-msgstr "OBJ: %1$s %2$s %3$s"
-
-#: ../../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:272
-msgid "Edit Thing"
-msgstr "Ding bearbeiten"
-
-#: ../../mod/thing.php:274 ../../mod/thing.php:321
-msgid "Select a profile"
-msgstr "Wähle ein Profil"
+msgid "Welcome to %s"
+msgstr "Willkommen auf %s"
-#: ../../mod/thing.php:278 ../../mod/thing.php:324
-msgid "Post an activity"
-msgstr "Aktivitätsnachricht senden"
+#: ../../mod/notifications.php:26
+msgid "Invalid request identifier."
+msgstr "Ungültiger Anfrage-Identifikator."
-#: ../../mod/thing.php:278 ../../mod/thing.php:324
-msgid "Only sends to viewers of the applicable profile"
-msgstr "Nur an Betrachter des ausgewählten Profils senden"
+#: ../../mod/notifications.php:35
+msgid "Discard"
+msgstr "Verwerfen"
-#: ../../mod/thing.php:280 ../../mod/thing.php:326
-msgid "Name of thing e.g. something"
-msgstr "Name des Dings, z.B. Etwas"
+#: ../../mod/notifications.php:94 ../../mod/notify.php:53
+msgid "No more system notifications."
+msgstr "Keine System-Benachrichtigungen mehr."
-#: ../../mod/thing.php:282 ../../mod/thing.php:327
-msgid "URL of thing (optional)"
-msgstr "URL des Dings (optional)"
+#: ../../mod/notifications.php:98 ../../mod/notify.php:57
+msgid "System Notifications"
+msgstr "System-Benachrichtigungen"
-#: ../../mod/thing.php:284 ../../mod/thing.php:328
-msgid "URL for photo of thing (optional)"
-msgstr "URL eines Fotos von dem Ding (optional)"
+#: ../../mod/xchan.php:6
+msgid "Xchan Lookup"
+msgstr "Xchan-Suche"
-#: ../../mod/thing.php:319
-msgid "Add Thing to your Profile"
-msgstr "Das Ding Deinem Profil hinzufügen"
+#: ../../mod/xchan.php:9
+msgid "Lookup xchan beginning with (or webbie): "
+msgstr "Nach xchans oder Webbies (Kanal-Adressen) suchen, die wie folgt beginnen:"
#: ../../mod/oexchange.php:23
msgid "Unable to find your hub."
@@ -6387,549 +7925,13 @@ msgstr "Konnte Deinen Server nicht finden."
msgid "Post successful."
msgstr "Veröffentlichung erfolgreich."
-#: ../../mod/help.php:43 ../../mod/help.php:49 ../../mod/help.php:55
-msgid "Help:"
-msgstr "Hilfe:"
-
-#: ../../mod/help.php:69 ../../index.php:233
-msgid "Not Found"
-msgstr "Nicht gefunden"
-
-#: ../../mod/viewconnections.php:58
-msgid "No connections."
-msgstr "Keine Verbindungen."
-
-#: ../../mod/viewconnections.php:71
-#, php-format
-msgid "Visit %s's profile [%s]"
-msgstr "%ss Profil [%s] besuchen"
-
-#: ../../mod/viewconnections.php:86
-msgid "View Connnections"
-msgstr "Zeige Verbindungen"
-
-#: ../../mod/profperm.php:29 ../../mod/profperm.php:58
-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 "Klicke auf einen Kontakt, um ihn hinzuzufügen oder zu entfernen."
-
-#: ../../mod/profperm.php:123
-msgid "Visible To"
-msgstr "Sichtbar für"
-
-#: ../../mod/register.php:43
-msgid "Maximum daily site registrations exceeded. Please try again tomorrow."
-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. Registrierung fehlgeschlagen."
-
-#: ../../mod/register.php:83
-msgid "Passwords do not match."
-msgstr "Passwörter stimmen nicht überein."
-
-#: ../../mod/register.php:116
-msgid ""
-"Registration successful. Please check your email for validation "
-"instructions."
-msgstr "Registrierung erfolgreich. Eine E-Mail mit weiteren Anweisungen wurde an Dich gesendet."
-
-#: ../../mod/register.php:122
-msgid "Your registration is pending approval by the site owner."
-msgstr "Deine Registrierung muss noch vom Betreiber der Seite freigegeben werden."
-
-#: ../../mod/register.php:125
-msgid "Your registration can not be processed."
-msgstr "Deine Registrierung konnte nicht verarbeitet werden."
-
-#: ../../mod/register.php:162
-msgid "Registration on this site/hub is by approval only."
-msgstr "Anmeldungen auf diesem Server erfordern Zustimmung durch den Administrator"
-
-#: ../../mod/register.php:163
-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:171
-msgid ""
-"This site has exceeded the number of allowed daily account registrations. "
-"Please try again tomorrow."
-msgstr "Die maximale Anzahl täglicher Registrierungen auf diesem Server wurde überschritten. Bitte versuche es morgen noch einmal."
-
-#: ../../mod/register.php:182
-msgid "Terms of Service"
-msgstr "Nutzungsbedingungen"
-
-#: ../../mod/register.php:188
-#, php-format
-msgid "I accept the %s for this website"
-msgstr "Ich akzeptiere die %s für diese Webseite"
-
-#: ../../mod/register.php:190
-#, 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:209
-msgid "Membership on this site is by invitation only."
-msgstr "Mitgliedschaft auf dieser Seite ist nur nach vorheriger Einladung möglich."
-
-#: ../../mod/register.php:210
-msgid "Please enter your invitation code"
-msgstr "Bitte trage Deinen Einladungs-Code ein"
-
-#: ../../mod/register.php:213
-msgid "Your email address"
-msgstr "Ihre E-Mail Adresse"
-
-#: ../../mod/register.php:214
-msgid "Choose a password"
-msgstr "Passwort"
-
-#: ../../mod/register.php:215
-msgid "Please re-enter your password"
-msgstr "Bitte gib Dein Passwort noch einmal ein"
-
-#: ../../mod/network.php:79
-msgid "No such group"
-msgstr "Gruppe existiert nicht"
-
-#: ../../mod/network.php:118
-msgid "Search Results For:"
-msgstr "Suchergebnisse für:"
-
-#: ../../mod/network.php:172
-msgid "Collection is empty"
-msgstr "Sammlung ist leer"
-
-#: ../../mod/network.php:180
-msgid "Collection: "
-msgstr "Sammlung:"
-
-#: ../../mod/network.php:193
-msgid "Connection: "
-msgstr "Verbindung:"
-
-#: ../../mod/network.php:196
-msgid "Invalid connection."
-msgstr "Ungültige Verbindung."
-
-#: ../../mod/delegate.php:95
-msgid "No potential page delegates located."
-msgstr "Keine potentiellen Bevollmächtigten für die Seite gefunden."
-
-#: ../../mod/delegate.php:121
-msgid "Delegate Page Management"
-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. Gib niemandem eine Bevollmächtigung für Deinen privaten Account, dem Du nicht absolut vertraust!"
-
-#: ../../mod/delegate.php:124
-msgid "Existing Page Managers"
-msgstr "Vorhandene Seitenmanager"
-
-#: ../../mod/delegate.php:126
-msgid "Existing Page Delegates"
-msgstr "Vorhandene Bevollmächtigte für die Seite"
-
-#: ../../mod/delegate.php:128
-msgid "Potential Delegates"
-msgstr "Potentielle Bevollmächtigte"
-
-#: ../../mod/delegate.php:131
-msgid "Add"
-msgstr "Hinzufügen"
-
-#: ../../mod/delegate.php:132
-msgid "No entries."
-msgstr "Keine Einträge."
-
-#: ../../mod/connect.php:55 ../../mod/connect.php:103
-msgid "Continue"
-msgstr "Fortfahren"
-
-#: ../../mod/connect.php:84
-msgid "Premium Channel Setup"
-msgstr "Premium-Kanal-Einrichtung"
-
-#: ../../mod/connect.php:86
-msgid "Enable premium channel connection restrictions"
-msgstr "Einschränkungen für einen Premium-Kanal aktivieren"
-
-#: ../../mod/connect.php:87
-msgid ""
-"Please enter your restrictions or conditions, such as paypal receipt, usage "
-"guidelines, etc."
-msgstr "Bitte gib Deine Nutzungsbedingungen ein, z.B. Paypal-Quittung, Richtlinien etc."
-
-#: ../../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."
-
-#: ../../mod/connect.php:90
-msgid ""
-"Potential connections will then see the following text before proceeding:"
-msgstr "Potentielle Kontakte werden den folgenden Text sehen, bevor fortgefahren wird:"
-
-#: ../../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 "Indem ich fortfahre, bestätige ich die Erfüllung aller Anweisungen aus dieser Seite."
-
-#: ../../mod/connect.php:100
-msgid "(No specific instructions have been provided by the channel owner.)"
-msgstr "(Der Kanal-Besitzer hat keine speziellen Anweisungen hinterlegt.)"
-
-#: ../../mod/connect.php:108
-msgid "Restricted or Premium Channel"
-msgstr "Eingeschränkter oder Premium-Kanal"
-
-#: ../../mod/fsuggest.php:20 ../../mod/fsuggest.php:92
-msgid "Contact not found."
-msgstr "Kontakt nicht gefunden"
-
-#: ../../mod/fsuggest.php:63
-msgid "Friend suggestion sent."
-msgstr "Freundschaftsempfehlung senden."
-
-#: ../../mod/fsuggest.php:97
-msgid "Suggest Friends"
-msgstr "Kontakte vorschlagen"
-
-#: ../../mod/fsuggest.php:99
-#, php-format
-msgid "Suggest a friend for %s"
-msgstr "Schlage %s einen Kontakt vor"
-
-#: ../../mod/manage.php:136
-#, php-format
-msgid "You have created %1$.0f of %2$.0f allowed channels."
-msgstr "Du hast %1$.0f von maximal %2$.0f erlaubten Kanälen eingerichtet."
-
-#: ../../mod/manage.php:144
-msgid "Create a new channel"
-msgstr "Erzeuge neues Kanal"
-
-#: ../../mod/manage.php:148
-msgid "Channel Manager"
-msgstr "Kanal-Manager"
-
-#: ../../mod/manage.php:149
-msgid "Current Channel"
-msgstr "Aktueller Kanal"
-
-#: ../../mod/manage.php:151
-msgid "Attach to one of your channels by selecting it."
-msgstr "Wähle einen Deiner Kanäle aus, um ihn zu verwenden."
-
-#: ../../mod/manage.php:152
-msgid "Default Channel"
-msgstr "Standard Kanal"
-
-#: ../../mod/manage.php:153
-msgid "Make Default"
-msgstr "Zum Standard machen"
-
-#: ../../mod/removeme.php:29
-msgid ""
-"Channel removals are not allowed within 48 hours of changing the account "
-"password."
-msgstr "Innerhalb von 48 Stunden nach einer Änderung des Passworts können keine Kanäle gelöscht werden."
-
-#: ../../mod/removeme.php:57
-msgid "Remove This Channel"
-msgstr "Diesen Kanal löschen"
-
-#: ../../mod/removeme.php:58
-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 kann dieser Prozess nicht rückgängig gemacht werden."
-
-#: ../../mod/removeme.php:59
-msgid "Please enter your password for verification:"
-msgstr "Bitte gib zur Bestätigung Dein Passwort ein:"
-
-#: ../../mod/removeme.php:60
-msgid "Remove this channel and all its clones from the network"
-msgstr "Lösche diesen Kanal und all seine Klone aus dem Netzwerk"
-
-#: ../../mod/removeme.php:60
-msgid ""
-"By default only the instance of the channel located on this hub will be "
-"removed from the network"
-msgstr "Standardmäßig wird der Kanal nur auf diesem Server gelöscht, seine Klone verbleiben im Netzwerk"
-
-#: ../../mod/removeme.php:61
-msgid "Remove Channel"
-msgstr "Kanal löschen"
-
-#: ../../mod/editpost.php:20 ../../mod/editwebpage.php:32
-#: ../../mod/editblock.php:8 ../../mod/editblock.php:27
-#: ../../mod/editblock.php:53 ../../mod/editlayout.php:36
-msgid "Item not found"
-msgstr "Element nicht gefunden"
-
-#: ../../mod/editpost.php:31
-msgid "Item is not editable"
-msgstr "Element kann nicht bearbeitet werden."
-
-#: ../../mod/editpost.php:42 ../../mod/rpost.php:97
-msgid "Edit post"
-msgstr "Bearbeite Beitrag"
-
-#: ../../mod/editpost.php:53
-msgid "Delete item?"
-msgstr "Eintrag löschen?"
-
-#: ../../mod/editpost.php:116 ../../mod/editwebpage.php:147
-#: ../../mod/editblock.php:115 ../../mod/editlayout.php:110
-msgid "Insert YouTube video"
-msgstr "YouTube-Video einfügen"
-
-#: ../../mod/editpost.php:117 ../../mod/editwebpage.php:148
-#: ../../mod/editblock.php:116 ../../mod/editlayout.php:111
-msgid "Insert Vorbis [.ogg] video"
-msgstr "Vorbis [.ogg]-Video einfügen"
-
-#: ../../mod/editpost.php:118 ../../mod/editwebpage.php:149
-#: ../../mod/editblock.php:117 ../../mod/editlayout.php:112
-msgid "Insert Vorbis [.ogg] audio"
-msgstr "Vorbis [.ogg]-Audio einfügen"
-
-#: ../../mod/editwebpage.php:106
-msgid "Edit Webpage"
-msgstr "Webseite bearbeiten"
-
-#: ../../mod/editwebpage.php:116
-msgid "Delete webpage?"
-msgstr "Webseite löschen?"
-
-#: ../../mod/editwebpage.php:186
-msgid "Delete Webpage"
-msgstr "Webseite löschen"
-
-#: ../../mod/poke.php:159
-msgid "Poke/Prod"
-msgstr "Anstupsen/Knuffen"
-
-#: ../../mod/poke.php:160
-msgid "poke, prod or do other things to somebody"
-msgstr "Stupse Leute an oder mache anderes mit ihnen"
-
-#: ../../mod/poke.php:161
-msgid "Recipient"
-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"
-
-#: ../../mod/poke.php:165
-msgid "Make this post private"
-msgstr "Diesen Beitrag privat machen"
-
-#: ../../mod/blocks.php:66
-msgid "Block Name"
-msgstr "Block-Name"
-
-#: ../../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:233
-msgid "Click on a channel to add or remove."
-msgstr "Wähle einen Kanal zum hinzufügen oder entfernen aus."
-
-#: ../../mod/tagrm.php:41
-msgid "Tag removed"
-msgstr "Schlagwort entfernt"
-
-#: ../../mod/tagrm.php:79
-msgid "Remove Item Tag"
-msgstr "Schlagwort entfernen"
-
-#: ../../mod/tagrm.php:81
-msgid "Select a tag to remove: "
-msgstr "Schlagwort zum Entfernen auswählen:"
-
-#: ../../mod/attach.php:9
-msgid "Item not available."
-msgstr "Element nicht verfügbar."
-
-#: ../../mod/item.php:146
-msgid "Unable to locate original post."
-msgstr "Originalbeitrag nicht gefunden."
-
-#: ../../mod/item.php:379
-msgid "Empty post discarded."
-msgstr "Leeren Beitrag verworfen."
-
-#: ../../mod/item.php:421
-msgid "Executable content type not permitted to this channel."
-msgstr "Ausführbarer Content-Typ ist für diesen Kanal nicht freigegeben."
-
-#: ../../mod/item.php:850
-msgid "System error. Post not saved."
-msgstr "Systemfehler. Beitrag nicht gespeichert."
-
-#: ../../mod/item.php:1302
-#, 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:1308
-#, php-format
-msgid "You have reached your limit of %1$.0f webpages."
-msgstr "Du hast die maximale Anzahl von %1$.0f Webseiten erreicht."
-
-#: ../../mod/cloud.php:126
-msgid "Red Matrix - Guests: Username: {your email address}, Password: +++"
-msgstr "Red-Matrix-Gäste: Nutzername: {Deine E-Mail-Adresse}; Passwort: +++"
-
-#: ../../mod/chatsvc.php:111
-msgid "Away"
-msgstr "Abwesend"
-
-#: ../../mod/chatsvc.php:115
-msgid "Online"
-msgstr "Online"
-
-#: ../../mod/directory.php:223
-msgid "Finding:"
-msgstr "Ergebnisse:"
-
-#: ../../mod/directory.php:239
-msgid "No entries (some entries may be hidden)."
-msgstr "Keine Einträge gefunden (einige könnten versteckt sein)."
-
-#: ../../mod/match.php:16
-msgid "Profile Match"
-msgstr "Profil-Ãœbereinstimmungen"
-
-#: ../../mod/match.php:24
-msgid "No keywords to match. Please add keywords to your default profile."
-msgstr "Keine Schlüsselwörter für den Abgleich gefunden. Bitte füge Schlüsselwörter zu Deinem Standardprofil hinzu."
-
-#: ../../mod/match.php:61
-msgid "is interested in:"
-msgstr "interessiert sich für:"
-
-#: ../../mod/match.php:69
-msgid "No matches"
-msgstr "Keine Ãœbereinstimmungen"
-
-#: ../../mod/dirsearch.php:21
-msgid "This site is not a directory server"
-msgstr "Diese Website ist kein Verzeichnis-Server"
-
-#: ../../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:97
-msgid "Red"
-msgstr "Red"
-
-#: ../../mod/siteinfo.php:98
-msgid ""
-"This is a hub of the Red Matrix - a global cooperative network of "
-"decentralized privacy enhanced websites."
-msgstr "Dieser Hub ist Teil der RedMatrix – eines globalen, kooperativen Netzwerks aus dezentralen Websites, die Rücksicht auf Deine Privatsphäre nehmen."
-
-#: ../../mod/siteinfo.php:101
-msgid "Running at web location"
-msgstr "Erreichbar unter der Web-Adresse"
-
-#: ../../mod/siteinfo.php:102
-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:103
-msgid "Bug reports and issues: please visit"
-msgstr "Probleme oder Fehler gefunden? Bitte besuche"
-
-#: ../../mod/siteinfo.php:106
-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:108
-msgid "Site Administrators"
-msgstr "Administratoren"
+#: ../../mod/zfinger.php:23
+msgid "invalid target signature"
+msgstr "Ungültige Signatur des Ziels"
#: ../../mod/appman.php:28 ../../mod/appman.php:44
msgid "App installed."
-msgstr "App installiert!"
+msgstr "App installiert."
#: ../../mod/appman.php:37
msgid "Malformed app."
@@ -6941,36 +7943,31 @@ msgstr "Code einbetten"
#: ../../mod/appman.php:86
msgid "Edit App"
-msgstr "Editiere App"
+msgstr "App bearbeiten"
#: ../../mod/appman.php:86
msgid "Create App"
-msgstr "Erstelle App"
+msgstr "App erstellen"
#: ../../mod/appman.php:91
msgid "Name of app"
msgstr "Name der App"
-#: ../../mod/appman.php:91 ../../mod/appman.php:92 ../../mod/events.php:492
-#: ../../mod/events.php:506
-msgid "Required"
-msgstr "Benötigt"
-
#: ../../mod/appman.php:92
msgid "Location (URL) of app"
msgstr "Ort (URL) der App"
#: ../../mod/appman.php:94
msgid "Photo icon URL"
-msgstr "URL zum Foto"
+msgstr "URL zum Icon"
#: ../../mod/appman.php:94
msgid "80 x 80 pixels - optional"
-msgstr "80 x 80 Pixel - Optional"
+msgstr "80 x 80 Pixel – optional"
#: ../../mod/appman.php:95
msgid "Version ID"
-msgstr "Versions ID"
+msgstr "Versions-ID"
#: ../../mod/appman.php:96
msgid "Price of app"
@@ -6978,803 +7975,368 @@ msgstr "Preis der App"
#: ../../mod/appman.php:97
msgid "Location (URL) to purchase app"
-msgstr "Ort (URL) um die App zu kaufen"
-
-#: ../../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"
+msgstr "Ort (URL), um die App zu kaufen"
-#: ../../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/pubsites.php:16
-msgid "Public Sites"
-msgstr "Öffentliche Server"
-
-#: ../../mod/pubsites.php:19
-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 "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:25
-msgid "Site URL"
-msgstr "Server-URL"
-
-#: ../../mod/pubsites.php:25
-msgid "Access Type"
-msgstr "Zugangstyp"
-
-#: ../../mod/pubsites.php:25
-msgid "Registration Policy"
-msgstr "Registrierungsrichtlinien"
-
-#: ../../mod/pubsites.php:25 ../../mod/profiles.php:404
-msgid "Location"
-msgstr "Ort"
-
-#: ../../mod/import.php:36
-msgid "Nothing to import."
-msgstr "Nichts zu importieren."
+#: ../../mod/poll.php:64
+msgid "Poll"
+msgstr "Umfrage"
-#: ../../mod/import.php:58
-msgid "Unable to download data from old server"
-msgstr "Daten können vom alten Server nicht heruntergeladen werden"
+#: ../../mod/poll.php:69
+msgid "View Results"
+msgstr "Ergebnisse"
-#: ../../mod/import.php:64
-msgid "Imported file is empty."
-msgstr "Die importierte Datei ist leer."
-
-#: ../../mod/import.php:88
+#: ../../mod/removeaccount.php:30
msgid ""
-"Cannot create a duplicate channel identifier on this system. Import failed."
-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."
-msgstr "Klonen des Kanals fehlgeschlagen. Import fehlgeschlagen."
-
-#: ../../mod/import.php:116
-msgid "Cloned channel not found. Import failed."
-msgstr "Geklonter Kanal nicht gefunden. Import fehlgeschlagen."
-
-#: ../../mod/import.php:364
-msgid "Import completed."
-msgstr "Import abgeschlossen."
-
-#: ../../mod/import.php:377
-msgid "You must be logged in to use this feature."
-msgstr "Du musst angemeldet sein um diese Funktion zu nutzen."
+"Account removals are not allowed within 48 hours of changing the account "
+"password."
+msgstr "Das Löschen von Konten innerhalb 48 Stunden nachdem deren Passwort geändert wurde ist nicht erlaubt."
-#: ../../mod/import.php:382
-msgid "Import Channel"
-msgstr "Kanal importieren"
+#: ../../mod/removeaccount.php:57
+msgid "Remove This Account"
+msgstr "Dieses Konto löschen"
-#: ../../mod/import.php:383
+#: ../../mod/removeaccount.php:58
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 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:384
-msgid "File to Upload"
-msgstr "Hochzuladende Datei:"
-
-#: ../../mod/import.php:385
-msgid "Or provide the old server/hub details"
-msgstr "Oder gib die Details Deines bisherigen Red-Servers ein"
-
-#: ../../mod/import.php:386
-msgid "Your old identity address (xyz@example.com)"
-msgstr "Bisherige Kanal-Adresse (xyz@example.com)"
-
-#: ../../mod/import.php:387
-msgid "Your old login email address"
-msgstr "Ihre alte Login E-Mail Adresse"
-
-#: ../../mod/import.php:388
-msgid "Your old login password"
-msgstr "Ihr altes Login Kennwort"
+"This will completely remove this account including all its channels from the"
+" network. Once this has been done it is not recoverable."
+msgstr "Hiermit wird dieses Nutzerkonto einschließlich all seiner Kanäle komplett aus dem Netzwerk entfernt. Dieser Vorgang kann nicht rückgängig gemacht werden."
-#: ../../mod/import.php:389
+#: ../../mod/removeaccount.php:60
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 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:390
-msgid "Make this hub my primary location"
-msgstr "Dieser Red-Server ist mein primärer Server."
-
-#: ../../mod/zfinger.php:23
-msgid "invalid target signature"
-msgstr "Ungültige Signatur des Ziels"
-
-#: ../../mod/mail.php:33
-msgid "Unable to lookup recipient."
-msgstr "Konnte den Empfänger nicht finden."
-
-#: ../../mod/mail.php:41
-msgid "Unable to communicate with requested channel."
-msgstr "Die Kommunikation mit dem ausgewählten Kanal ist fehlgeschlagen."
-
-#: ../../mod/mail.php:48
-msgid "Cannot verify requested channel."
-msgstr "Verifizierung des angeforderten Kanals fehlgeschlagen."
-
-#: ../../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/mail.php:132
-msgid "Message deleted."
-msgstr "Nachricht gelöscht."
+"Remove this account, all its channels and all its channel clones from the "
+"network"
+msgstr "Dieses Konto, all seine Kanäle sowie alle Kanal-Klone aus dem Netzwerk löschen"
-#: ../../mod/mail.php:149
-msgid "Message recalled."
-msgstr "Nachricht widerrufen."
-
-#: ../../mod/mail.php:215
-msgid "Send Private Message"
-msgstr "Private Nachricht senden"
-
-#: ../../mod/mail.php:216 ../../mod/mail.php:333
-msgid "To:"
-msgstr "An:"
-
-#: ../../mod/mail.php:221 ../../mod/mail.php:335
-msgid "Subject:"
-msgstr "Betreff:"
-
-#: ../../mod/mail.php:232
-msgid "Send"
-msgstr "Absenden"
-
-#: ../../mod/mail.php:259
-msgid "Message not found."
-msgstr "Nachricht nicht gefunden."
-
-#: ../../mod/mail.php:303
-msgid "Recall message"
-msgstr "Nachricht widerrufen"
-
-#: ../../mod/mail.php:305
-msgid "Message has been recalled."
-msgstr "Die Nachricht wurde widerrufen."
-
-#: ../../mod/mail.php:322
-msgid "Private Conversation"
-msgstr "Private Unterhaltung"
-
-#: ../../mod/mail.php:326
-msgid "Delete conversation"
-msgstr "Unterhaltung löschen"
-
-#: ../../mod/mail.php:328
+#: ../../mod/removeaccount.php:60
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/mail.php:332
-msgid "Send Reply"
-msgstr "Antwort senden"
-
-#: ../../mod/channel.php:25 ../../mod/chat.php:19
-msgid "You must be logged in to see this page."
-msgstr "Du musst angemeldet sein, um diese Seite betrachten zu können."
-
-#: ../../mod/channel.php:86
-msgid "Insufficient permissions. Request redirected to profile page."
-msgstr "Unzureichende Zugriffsrechte. Die Anfrage wurde zur Profil-Seite umgeleitet."
-
-#: ../../mod/profiles.php:18 ../../mod/profiles.php:165
-#: ../../mod/profiles.php:222 ../../mod/profiles.php:539
-msgid "Profile not found."
-msgstr "Profil nicht gefunden."
-
-#: ../../mod/profiles.php:38
-msgid "Profile deleted."
-msgstr "Profil gelöscht."
-
-#: ../../mod/profiles.php:56 ../../mod/profiles.php:92
-msgid "Profile-"
-msgstr "Profil-"
-
-#: ../../mod/profiles.php:77 ../../mod/profiles.php:120
-msgid "New profile created."
-msgstr "Neues Profil erstellt."
-
-#: ../../mod/profiles.php:98
-msgid "Profile unavailable to clone."
-msgstr "Profil kann nicht geklont werden."
-
-#: ../../mod/profiles.php:136
-msgid "Profile unavailable to export."
-msgstr "Dieses Profil kann nicht exportiert werden."
-
-#: ../../mod/profiles.php:232
-msgid "Profile Name is required."
-msgstr "Profil-Name erforderlich."
-
-#: ../../mod/profiles.php:354
-msgid "Marital Status"
-msgstr "Familienstand"
-
-#: ../../mod/profiles.php:358
-msgid "Romantic Partner"
-msgstr "Romantische Partner"
-
-#: ../../mod/profiles.php:362
-msgid "Likes"
-msgstr "Gefällt"
-
-#: ../../mod/profiles.php:366
-msgid "Dislikes"
-msgstr "Gefällt nicht"
-
-#: ../../mod/profiles.php:370
-msgid "Work/Employment"
-msgstr "Arbeit/Anstellung"
-
-#: ../../mod/profiles.php:373
-msgid "Religion"
-msgstr "Religion"
-
-#: ../../mod/profiles.php:377
-msgid "Political Views"
-msgstr "Politische Ansichten"
-
-#: ../../mod/profiles.php:381
-msgid "Gender"
-msgstr "Geschlecht"
-
-#: ../../mod/profiles.php:385
-msgid "Sexual Preference"
-msgstr "Sexuelle Orientierung"
-
-#: ../../mod/profiles.php:389
-msgid "Homepage"
-msgstr "Webseite"
-
-#: ../../mod/profiles.php:393
-msgid "Interests"
-msgstr "Hobbys/Interessen"
-
-#: ../../mod/profiles.php:487
-msgid "Profile updated."
-msgstr "Profil aktualisiert."
-
-#: ../../mod/profiles.php:564
-msgid "Hide your contact/friend list from viewers of this profile?"
-msgstr "Deine Kontaktliste vor Betrachtern dieses Profils verbergen?"
-
-#: ../../mod/profiles.php:588
-msgid "Edit Profile Details"
-msgstr "Bearbeite Profil-Details"
-
-#: ../../mod/profiles.php:590
-msgid "View this profile"
-msgstr "Dieses Profil ansehen"
-
-#: ../../mod/profiles.php:592
-msgid "Change Profile Photo"
-msgstr "Profilfoto ändern"
-
-#: ../../mod/profiles.php:593
-msgid "Create a new profile using these settings"
-msgstr "Neues Profil anlegen und diese Einstellungen übernehmen"
-
-#: ../../mod/profiles.php:594
-msgid "Clone this profile"
-msgstr "Dieses Profil klonen"
-
-#: ../../mod/profiles.php:595
-msgid "Delete this profile"
-msgstr "Dieses Profil löschen"
-
-#: ../../mod/profiles.php:597
-msgid "Import profile from file"
-msgstr "Profil aus einer Datei importieren"
-
-#: ../../mod/profiles.php:598
-msgid "Export profile to file"
-msgstr "Profil in eine Datei exportieren"
-
-#: ../../mod/profiles.php:599
-msgid "Profile Name:"
-msgstr "Profilname:"
-
-#: ../../mod/profiles.php:600
-msgid "Your Full Name:"
-msgstr "Dein voller Name:"
-
-#: ../../mod/profiles.php:601
-msgid "Title/Description:"
-msgstr "Titel/Stellenbeschreibung:"
-
-#: ../../mod/profiles.php:602
-msgid "Your Gender:"
-msgstr "Dein Geschlecht:"
-
-#: ../../mod/profiles.php:603
-#, php-format
-msgid "Birthday (%s):"
-msgstr "Geburtstag (%s):"
-
-#: ../../mod/profiles.php:604
-msgid "Street Address:"
-msgstr "Straße und Hausnummer:"
-
-#: ../../mod/profiles.php:605
-msgid "Locality/City:"
-msgstr "Wohnort:"
-
-#: ../../mod/profiles.php:606
-msgid "Postal/Zip Code:"
-msgstr "Postleitzahl:"
-
-#: ../../mod/profiles.php:607
-msgid "Country:"
-msgstr "Land:"
-
-#: ../../mod/profiles.php:608
-msgid "Region/State:"
-msgstr "Region/Bundesstaat:"
-
-#: ../../mod/profiles.php:609
-msgid "<span class=\"heart\">&hearts;</span> Marital Status:"
-msgstr "<span class=\"heart\">&hearts;</span> Beziehungsstatus:"
-
-#: ../../mod/profiles.php:610
-msgid "Who: (if applicable)"
-msgstr "Wer: (falls anwendbar)"
-
-#: ../../mod/profiles.php:611
-msgid "Examples: cathy123, Cathy Williams, cathy@example.com"
-msgstr "Beispiele: cathy123, Cathy Williams, cathy@example.com"
-
-#: ../../mod/profiles.php:612
-msgid "Since [date]:"
-msgstr "Seit [Datum]:"
-
-#: ../../mod/profiles.php:614
-msgid "Homepage URL:"
-msgstr "Homepage URL:"
+"By default only the instances of the channels located on this hub will be "
+"removed from the network"
+msgstr "Standardmäßig werden nur die Kanalklone auf diesem RedMatrix-Hub aus dem Netzwerk entfernt"
-#: ../../mod/profiles.php:617
-msgid "Religious Views:"
-msgstr "Religiöse Ansichten:"
+#: ../../mod/service_limits.php:19
+msgid "No service class restrictions found."
+msgstr "Keine Dienstklassenbeschränkungen gefunden."
-#: ../../mod/profiles.php:618
-msgid "Keywords:"
-msgstr "Schlüsselwörter:"
+#: ../../view/theme/apw/php/config.php:202
+#: ../../view/theme/apw/php/config.php:236
+msgid "Schema Default"
+msgstr "Standard-Schema"
-#: ../../mod/profiles.php:621
-msgid "Example: fishing photography software"
-msgstr "Beispiel: Angeln Fotografie Software"
+#: ../../view/theme/apw/php/config.php:203
+msgid "Sans-Serif"
+msgstr "Sans-Serif"
-#: ../../mod/profiles.php:622
-msgid "Used in directory listings"
-msgstr "Wird in Verzeichnis-Auflistungen verwendet"
+#: ../../view/theme/apw/php/config.php:204
+msgid "Monospace"
+msgstr "Monospace"
-#: ../../mod/profiles.php:623
-msgid "Tell us about yourself..."
-msgstr "Erzähle uns ein wenig von Dir …"
+#: ../../view/theme/apw/php/config.php:259
+#: ../../view/theme/blogga/php/config.php:69
+#: ../../view/theme/blogga/view/theme/blog/config.php:69
+#: ../../view/theme/redbasic/php/config.php:102
+msgid "Theme settings"
+msgstr "Theme-Einstellungen"
-#: ../../mod/profiles.php:624
-msgid "Hobbies/Interests"
-msgstr "Hobbys/Interessen"
+#: ../../view/theme/apw/php/config.php:260
+#: ../../view/theme/redbasic/php/config.php:103
+msgid "Set scheme"
+msgstr "Schema"
-#: ../../mod/profiles.php:625
-msgid "Contact information and Social Networks"
-msgstr "Kontaktinformation und soziale Netzwerke"
+#: ../../view/theme/apw/php/config.php:261
+#: ../../view/theme/redbasic/php/config.php:124
+msgid "Set font-size for posts and comments"
+msgstr "Schriftgröße für Beiträge und Kommentare"
-#: ../../mod/profiles.php:626
-msgid "My other channels"
-msgstr "Meine anderen Kanäle"
+#: ../../view/theme/apw/php/config.php:262
+msgid "Set font face"
+msgstr "Schriftart"
-#: ../../mod/profiles.php:627
-msgid "Musical interests"
-msgstr "Musikalische Interessen"
+#: ../../view/theme/apw/php/config.php:263
+msgid "Set iconset"
+msgstr "Iconset"
-#: ../../mod/profiles.php:628
-msgid "Books, literature"
-msgstr "Bücher, Literatur"
+#: ../../view/theme/apw/php/config.php:264
+msgid "Set big shadow size, default 15px 15px 15px"
+msgstr "Ausmaß der großen Schatten (Default 15px 15px 15px)"
-#: ../../mod/profiles.php:629
-msgid "Television"
-msgstr "Fernsehen"
+#: ../../view/theme/apw/php/config.php:265
+msgid "Set small shadow size, default 5px 5px 5px"
+msgstr "Ausmaß der kleinen Schatten (Default 5px 5px 5px)"
-#: ../../mod/profiles.php:630
-msgid "Film/dance/culture/entertainment"
-msgstr "Film/Tanz/Kultur/Unterhaltung"
+#: ../../view/theme/apw/php/config.php:266
+msgid "Set shadow color, default #000"
+msgstr "Farbe der Schatten (Default #000)"
-#: ../../mod/profiles.php:631
-msgid "Love/romance"
-msgstr "Liebe/Romantik"
+#: ../../view/theme/apw/php/config.php:267
+msgid "Set radius size, default 5px"
+msgstr "Ecken-Radius (Default 5px)"
-#: ../../mod/profiles.php:632
-msgid "Work/employment"
-msgstr "Arbeit/Anstellung"
+#: ../../view/theme/apw/php/config.php:268
+msgid "Set line-height for posts and comments"
+msgstr "Zeilenhöhe in Beiträgen und Kommentaren"
-#: ../../mod/profiles.php:633
-msgid "School/education"
-msgstr "Schule/Ausbildung"
+#: ../../view/theme/apw/php/config.php:269
+msgid "Set background image"
+msgstr "Hintergrundbild"
-#: ../../mod/profiles.php:639
-msgid "This is your default profile."
-msgstr "Das ist Dein Standardprofil"
+#: ../../view/theme/apw/php/config.php:270
+msgid "Set background attachment"
+msgstr "Hintergrunddatei"
-#: ../../mod/profiles.php:692
-msgid "Edit/Manage Profiles"
-msgstr "Profile bearbeiten/verwalten"
+#: ../../view/theme/apw/php/config.php:271
+msgid "Set background color"
+msgstr "Hintergrundfarbe"
-#: ../../mod/profiles.php:693
-msgid "Add profile things"
-msgstr "Profil-Dinge hinzufügen"
+#: ../../view/theme/apw/php/config.php:272
+msgid "Set section background image"
+msgstr "Hintergrundbild für die Section"
-#: ../../mod/profiles.php:694
-msgid "Include desirable objects in your profile"
-msgstr "Binde begehrenswerte Dinge in Dein Profil ein"
+#: ../../view/theme/apw/php/config.php:273
+msgid "Set section background color"
+msgstr "Hintergrundfarbe für die Section"
-#: ../../mod/bookmarks.php:38
-msgid "Bookmark added"
-msgstr "Lesezeichen hinzugefügt"
+#: ../../view/theme/apw/php/config.php:274
+msgid "Set color of items - use hex"
+msgstr "Farbe für Beiträge – Hex benutzen"
-#: ../../mod/bookmarks.php:58
-msgid "My Bookmarks"
-msgstr "Meine Lesezeichen"
+#: ../../view/theme/apw/php/config.php:275
+msgid "Set color of links - use hex"
+msgstr "Farbe für Links – Hex benutzen"
-#: ../../mod/bookmarks.php:69
-msgid "My Connections Bookmarks"
-msgstr "Lesezeichen meiner Kontakte"
+#: ../../view/theme/apw/php/config.php:276
+msgid "Set max-width for items. Default 400px"
+msgstr "Maximale Breite von Beiträgen (Default 400px)"
-#: ../../mod/common.php:10
-msgid "No channel."
-msgstr "Kein Kanal."
+#: ../../view/theme/apw/php/config.php:277
+msgid "Set min-width for items. Default 240px"
+msgstr "Minimale Breite von Beiträgen (Default 240px)"
-#: ../../mod/common.php:39
-msgid "Common connections"
-msgstr "Gemeinsame Verbindungen"
+#: ../../view/theme/apw/php/config.php:278
+msgid "Set the generic content wrapper width. Default 48%"
+msgstr "Breite des \"generic content wrapper\" (Default 48%)"
-#: ../../mod/common.php:44
-msgid "No connections in common."
-msgstr "Keine gemeinsamen Verbindungen."
+#: ../../view/theme/apw/php/config.php:279
+msgid "Set color of fonts - use hex"
+msgstr "Schriftfarbe – Hex benutzen"
-#: ../../mod/like.php:15
-msgid "Like/Dislike"
-msgstr "Mögen/Nicht mögen"
+#: ../../view/theme/apw/php/config.php:280
+msgid "Set background-size element"
+msgstr "Größe des Hintergrund-Elements"
-#: ../../mod/like.php:20
-msgid "This action is restricted to members."
-msgstr "Diese Aktion kann nur von Mitgliedern ausgeführt werden."
+#: ../../view/theme/apw/php/config.php:281
+msgid "Item opacity"
+msgstr "Deckkraft der Beiträge"
-#: ../../mod/like.php:21
-msgid ""
-"Please <a href=\"rmagic\">login with your RedMatrix ID</a> or <a "
-"href=\"register\">register as a new RedMatrix member</a> to continue."
-msgstr "Bitte <a href=\"rmagic\">melde Dich mit Deiner RedMatrix-ID an</a> oder <a href=\"register\">registriere Dich als neues Mitglied der RedMatrix</a>, um fortzufahren."
+#: ../../view/theme/apw/php/config.php:282
+msgid "Display post previews only"
+msgstr "Nur Beitragsvorschau anzeigen"
-#: ../../mod/like.php:77 ../../mod/like.php:104 ../../mod/like.php:142
-msgid "Invalid request."
-msgstr "Ungültige Anfrage."
+#: ../../view/theme/apw/php/config.php:283
+msgid "Display side bar on channel page"
+msgstr "Zeige die Seitenleiste auf der Kanal-Seite"
-#: ../../mod/like.php:119
-msgid "thing"
-msgstr "Sache"
+#: ../../view/theme/apw/php/config.php:284
+msgid "Colour of the navigation bar"
+msgstr "Farbe der Navigationsleiste"
-#: ../../mod/like.php:165
-msgid "Channel unavailable."
-msgstr "Kanal nicht vorhanden."
+#: ../../view/theme/apw/php/config.php:285
+msgid "Item float"
+msgstr "Beitragsfluss"
-#: ../../mod/like.php:204
-msgid "Previous action reversed."
-msgstr "Die vorherige Aktion wurde rückgängig gemacht."
+#: ../../view/theme/apw/php/config.php:286
+msgid "Left offset of the section element"
+msgstr "Linker Rand des Section Elements"
-#: ../../mod/like.php:417
-msgid "Action completed."
-msgstr "Aktion durchgeführt."
+#: ../../view/theme/apw/php/config.php:287
+msgid "Right offset of the section element"
+msgstr "Rechter Rand des Section Elements"
-#: ../../mod/like.php:418
-msgid "Thank you."
-msgstr "Vielen Dank."
+#: ../../view/theme/apw/php/config.php:288
+msgid "Section width"
+msgstr "Breite der Section"
-#: ../../mod/notify.php:53 ../../mod/notifications.php:94
-msgid "No more system notifications."
-msgstr "Keine System-Benachrichtigungen mehr."
+#: ../../view/theme/apw/php/config.php:289
+msgid "Left offset of the aside"
+msgstr "Linker Rand des Aside-Elements"
-#: ../../mod/notify.php:57 ../../mod/notifications.php:98
-msgid "System Notifications"
-msgstr "System-Benachrichtigungen"
+#: ../../view/theme/apw/php/config.php:290
+msgid "Right offset of the aside element"
+msgstr "Rechter Rand des Aside-Elements"
-#: ../../mod/api.php:76 ../../mod/api.php:102
-msgid "Authorize application connection"
-msgstr "Zugriff für die Anwendung autorisieren"
+#: ../../view/theme/blogga/php/config.php:47
+#: ../../view/theme/blogga/view/theme/blog/config.php:47
+msgid "None"
+msgstr "Kein"
-#: ../../mod/api.php:77
-msgid "Return to your app and insert this Securty Code:"
-msgstr "Trage folgenden Sicherheitscode in der Anwendung ein:"
+#: ../../view/theme/blogga/php/config.php:70
+#: ../../view/theme/blogga/view/theme/blog/config.php:70
+msgid "Header image"
+msgstr "Titelbild"
-#: ../../mod/api.php:89
-msgid "Please login to continue."
-msgstr "Zum Weitermachen, bitte einloggen."
+#: ../../view/theme/blogga/php/config.php:71
+#: ../../view/theme/blogga/view/theme/blog/config.php:71
+msgid "Header image only on profile pages"
+msgstr "Titelbild nur auf Profil-Seiten anzeigen"
-#: ../../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?"
+#: ../../view/theme/redbasic/php/config.php:84
+msgid "Light (Red Matrix default)"
+msgstr "Hell (RedMatrix-Voreinstellung)"
-#: ../../mod/chat.php:167
-msgid "Room not found"
-msgstr "Chatraum konnte nicht gefunden werden."
+#: ../../view/theme/redbasic/php/config.php:104
+msgid "Narrow navbar"
+msgstr "Schmale Navigationsleiste"
-#: ../../mod/chat.php:178
-msgid "Leave Room"
-msgstr "Raum verlassen"
+#: ../../view/theme/redbasic/php/config.php:105
+msgid "Navigation bar background color"
+msgstr "Hintergrundfarbe der Navigationsleiste"
-#: ../../mod/chat.php:179
-msgid "Delete This Room"
-msgstr "Diesen Raum löschen"
+#: ../../view/theme/redbasic/php/config.php:106
+msgid "Navigation bar gradient top color"
+msgstr "Farbverlauf der Navigationsleiste: Farbe oben"
-#: ../../mod/chat.php:180
-msgid "I am away right now"
-msgstr "Ich bin gerade nicht da"
+#: ../../view/theme/redbasic/php/config.php:107
+msgid "Navigation bar gradient bottom color"
+msgstr "Farbverlauf der Navigationsleiste: Farbe unten"
-#: ../../mod/chat.php:181
-msgid "I am online"
-msgstr "Ich bin online"
+#: ../../view/theme/redbasic/php/config.php:108
+msgid "Navigation active button gradient top color"
+msgstr "Navigations-Button aktiv: Farbe für Farbverlauf oben"
-#: ../../mod/chat.php:183
-msgid "Bookmark this room"
-msgstr "Lesezeichen für diesen Raum"
+#: ../../view/theme/redbasic/php/config.php:109
+msgid "Navigation active button gradient bottom color"
+msgstr "Navigations-Button aktiv: Farbe für Farbverlauf unten"
-#: ../../mod/chat.php:207 ../../mod/chat.php:229
-msgid "New Chatroom"
-msgstr "Neuer Chatraum"
+#: ../../view/theme/redbasic/php/config.php:110
+msgid "Navigation bar border color "
+msgstr "Farbe für den Rand der Navigationsleiste"
-#: ../../mod/chat.php:208
-msgid "Chatroom Name"
-msgstr "Name des Chatraums"
+#: ../../view/theme/redbasic/php/config.php:111
+msgid "Navigation bar icon color "
+msgstr "Farbe für die Icons der Navigationsleiste"
-#: ../../mod/chat.php:225
-#, php-format
-msgid "%1$s's Chatrooms"
-msgstr "%1$ss Chaträume"
+#: ../../view/theme/redbasic/php/config.php:112
+msgid "Navigation bar active icon color "
+msgstr "Farbe für aktive Icons der Navigationsleiste"
-#: ../../mod/events.php:72
-msgid "Event title and start time are required."
-msgstr "Veranstaltungs- Titel und Startzeit sind erforderlich."
+#: ../../view/theme/redbasic/php/config.php:113
+msgid "link color"
+msgstr "Farbe für Links"
-#: ../../mod/events.php:86
-msgid "Event not found."
-msgstr "Termin nicht gefunden."
+#: ../../view/theme/redbasic/php/config.php:114
+msgid "Set font-color for banner"
+msgstr "Farbe der Schrift des Banners"
-#: ../../mod/events.php:329
-msgid "l, F j"
-msgstr "l, F j"
+#: ../../view/theme/redbasic/php/config.php:115
+msgid "Set the background color"
+msgstr "Hintergrundfarbe"
-#: ../../mod/events.php:351
-msgid "Edit event"
-msgstr "Veranstaltung bearbeiten"
+#: ../../view/theme/redbasic/php/config.php:116
+msgid "Set the background image"
+msgstr "Hintergrundbild"
-#: ../../mod/events.php:397
-msgid "Create New Event"
-msgstr "Neue Veranstaltung erstellen"
+#: ../../view/theme/redbasic/php/config.php:117
+msgid "Set the background color of items"
+msgstr "Hintergrundfarbe für Beiträge"
-#: ../../mod/events.php:398
-msgid "Previous"
-msgstr "Voriges"
+#: ../../view/theme/redbasic/php/config.php:118
+msgid "Set the background color of comments"
+msgstr "Hintergrundfarbe für Kommentare"
-#: ../../mod/events.php:469
-msgid "hour:minute"
-msgstr "Stunde:Minute"
+#: ../../view/theme/redbasic/php/config.php:119
+msgid "Set the border color of comments"
+msgstr "Farbe des Randes von Kommentaren"
-#: ../../mod/events.php:489
-msgid "Event details"
-msgstr "Veranstaltungs-Details"
+#: ../../view/theme/redbasic/php/config.php:120
+msgid "Set the indent for comments"
+msgstr "Einzug für Kommentare"
-#: ../../mod/events.php:490
-#, php-format
-msgid "Format is %s %s. Starting date and Title are required."
-msgstr "Format ist %s %s. Startzeit und Titel sind erforderlich."
+#: ../../view/theme/redbasic/php/config.php:121
+msgid "Set the basic color for item icons"
+msgstr "Grundfarbe für Beitrags-Icons"
-#: ../../mod/events.php:492
-msgid "Event Starts:"
-msgstr "Veranstaltung startet:"
+#: ../../view/theme/redbasic/php/config.php:122
+msgid "Set the hover color for item icons"
+msgstr "Farbe für Beitrags-Icons unter dem Mauszeiger"
-#: ../../mod/events.php:495
-msgid "Finish date/time is not known or not relevant"
-msgstr "Ende Datum/Zeit sind unbekannt oder unwichtig"
+#: ../../view/theme/redbasic/php/config.php:123
+msgid "Set font-size for the entire application"
+msgstr "Schriftgröße für die ganze Applikation"
-#: ../../mod/events.php:497
-msgid "Event Finishes:"
-msgstr "Veranstaltung endet:"
+#: ../../view/theme/redbasic/php/config.php:125
+msgid "Set font-color for posts and comments"
+msgstr "Schriftfarbe für Posts und Kommentare"
-#: ../../mod/events.php:500
-msgid "Adjust for viewer timezone"
-msgstr "An die Zeitzone des Betrachters anpassen"
+#: ../../view/theme/redbasic/php/config.php:126
+msgid "Set radius of corners"
+msgstr "Ecken-Radius"
-#: ../../mod/events.php:502
-msgid "Description:"
-msgstr "Beschreibung:"
+#: ../../view/theme/redbasic/php/config.php:127
+msgid "Set shadow depth of photos"
+msgstr "Schattentiefe von Fotos"
-#: ../../mod/events.php:506
-msgid "Title:"
-msgstr "Titel:"
+#: ../../view/theme/redbasic/php/config.php:128
+msgid "Set maximum width of conversation regions"
+msgstr "Maximalbreite der Unterhaltungsbereiche"
-#: ../../mod/events.php:508
-msgid "Share this event"
-msgstr "Die Veranstaltung teilen"
+#: ../../view/theme/redbasic/php/config.php:129
+msgid "Center conversation regions"
+msgstr "Konversationsbereich zentrieren"
-#: ../../mod/notifications.php:26
-msgid "Invalid request identifier."
-msgstr "Ungültiger Anfrage-Identifikator."
+#: ../../view/theme/redbasic/php/config.php:130
+msgid "Set minimum opacity of nav bar - to hide it"
+msgstr "Mindest-Deckkraft der Navigationsleiste ( - versteckt sie)"
-#: ../../mod/notifications.php:35
-msgid "Discard"
-msgstr "Verwerfen"
+#: ../../view/theme/redbasic/php/config.php:131
+msgid "Set size of conversation author photo"
+msgstr "Größe der Avatare von Themenstartern"
-#: ../../mod/lostpass.php:15
-msgid "No valid account found."
-msgstr "Kein gültiges Konto gefunden."
+#: ../../view/theme/redbasic/php/config.php:132
+msgid "Set size of followup author photos"
+msgstr "Größe der Avatare von Kommentatoren"
-#: ../../mod/lostpass.php:29
-msgid "Password reset request issued. Check your email."
-msgstr "Zurücksetzen des Passworts eingeleitet. Schau in Deine E-Mails."
+#: ../../view/theme/redbasic/php/config.php:133
+msgid "Sloppy photo albums"
+msgstr "Schräge Fotoalben"
-#: ../../mod/lostpass.php:35 ../../mod/lostpass.php:102
-#, php-format
-msgid "Site Member (%s)"
-msgstr "Nutzer (%s)"
+#: ../../view/theme/redbasic/php/config.php:133
+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?"
-#: ../../mod/lostpass.php:40
+#: ../../boot.php:1293
#, php-format
-msgid "Password reset requested at %s"
-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. (Vielleicht hast Du schon einmal auf den Link in der E-Mail geklickt?) Passwort-Rücksetzung fehlgeschlagen."
-
-#: ../../mod/lostpass.php:86
-msgid "Your password has been reset as requested."
-msgstr "Dein Passwort wurde wie angefordert neu erstellt."
-
-#: ../../mod/lostpass.php:87
-msgid "Your new password is"
-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"
-
-#: ../../mod/lostpass.php:89
-msgid "click here to login"
-msgstr "Klicke hier, um dich anzumelden"
-
-#: ../../mod/lostpass.php:90
-msgid ""
-"Your password may be changed from the <em>Settings</em> page after "
-"successful login."
-msgstr "Dein Passwort kann unter <em>Einstellungen</em> nach einer erfolgreichen Anmeldung geändert werden."
+msgid "Update %s failed. See error logs."
+msgstr "Aktualisierung %s fehlgeschlagen. Details in den Fehlerprotokollen."
-#: ../../mod/lostpass.php:107
+#: ../../boot.php:1296
#, php-format
-msgid "Your password has changed at %s"
-msgstr "Auf %s wurde Dein Passwort geändert"
-
-#: ../../mod/lostpass.php:122
-msgid "Forgot your Password?"
-msgstr "Kennwort vergessen?"
+msgid "Update Error at %s"
+msgstr "Aktualisierungsfehler auf %s"
-#: ../../mod/lostpass.php:123
+#: ../../boot.php:1463
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 ein, um Dein Passwort zurücksetzen zu lassen. Du erhältst dann weitere Anweisungen per E-Mail."
-
-#: ../../mod/lostpass.php:124
-msgid "Email Address"
-msgstr "E-Mail Adresse"
-
-#: ../../mod/lostpass.php:125
-msgid "Reset"
-msgstr "Zurücksetzen"
-
-#: ../../mod/layouts.php:62
-msgid "Help with this feature"
-msgstr "Hilfe zu dieser Funktion"
-
-#: ../../mod/layouts.php:84
-msgid "Layout Name"
-msgstr "Layout-Name"
-
-#: ../../mod/editblock.php:77
-msgid "Edit Block"
-msgstr "Block bearbeiten"
+"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."
-#: ../../mod/editblock.php:87
-msgid "Delete block?"
-msgstr "Block löschen?"
+#: ../../boot.php:1489
+msgid "Password"
+msgstr "Kennwort"
-#: ../../mod/editblock.php:153
-msgid "Delete Block"
-msgstr "Block löschen"
+#: ../../boot.php:1490
+msgid "Remember me"
+msgstr "Angaben speichern"
-#: ../../mod/editlayout.php:72
-msgid "Edit Layout"
-msgstr "Layout bearbeiten"
+#: ../../boot.php:1493
+msgid "Forgot your password?"
+msgstr "Passwort vergessen?"
-#: ../../mod/editlayout.php:82
-msgid "Delete layout?"
-msgstr "Layout löschen?"
+#: ../../boot.php:1567
+msgid "permission denied"
+msgstr "Zugriff verweigert"
-#: ../../mod/editlayout.php:146
-msgid "Delete Layout"
-msgstr "Layout löschen"
+#: ../../boot.php:1568
+msgid "Got Zot?"
+msgstr "Haste schon Zot?"
-#: ../../mod/follow.php:25
-msgid "Channel added."
-msgstr "Kanal hinzugefügt."
+#: ../../boot.php:2030
+msgid "toggle mobile"
+msgstr "auf/von mobile Ansicht wechseln"
diff --git a/view/de/passchanged_eml.tpl b/view/de/passchanged_eml.tpl
index 0d94be3c2..95805f677 100644
--- a/view/de/passchanged_eml.tpl
+++ b/view/de/passchanged_eml.tpl
@@ -1,20 +1,20 @@
-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).
+Hallo {{$username}},
+ Dein Passwort wurde wie gewünscht geändert. Bitte nimm diese
+Information zu Deinen Unterlagen (oder ändere Dein Passwort sofort auf
+etwas, an das Du Dich erinnern kannst).
-Your login details are as follows:
+Deine Anmeldedetails lauten wie folgt:
-Site Location: {{$siteurl}}
-Login Name: {{$email}}
-Password: {{$new_password}}
+Web-Adresse des Servers: {{$siteurl}}
+Username: {{$email}}
+Passwort: {{$new_password}}
-You may change that password from your account settings page after logging in.
+Du solltest das Passwort nach dem Einloggen in den Einstellungen ändern.
-Sincerely,
- {{$sitename}} Administrator
+Mit freundlichen Grüßen,
+ der Administrator von {{$sitename}}
-
+ \ No newline at end of file
diff --git a/view/de/register_open_eml.tpl b/view/de/register_open_eml.tpl
index 4b397201c..ce96d2ec6 100644
--- a/view/de/register_open_eml.tpl
+++ b/view/de/register_open_eml.tpl
@@ -1,19 +1,19 @@
-An account has been created at {{$sitename}} for this email address.
-The login details are as follows:
+Auf {{$sitename}} für diese E-Mail-Adresse ein Konto angelegt.
+Die Anmeldedetails lauten wie folgt:
-Site Location: {{$siteurl}}
-Login: {{$email}}
-Password: (the password which was provided during registration)
+Adresse des Servers: {{$siteurl}}
+Username: {{$email}}
+Passwort: (das Passwort, das Du während des Registrierungsvorgangs angegeben hast)
-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.
+Falls das Konto ohne Dein Wissen erstellt wurde und Du es löschen möchtest, kannst Du auf der
+Login-Seite des Servers das Passwort zurücksetzen lassen. Mit dem neuen Passwort kannst Du
+Dich einloggen und dann auf der Einstellungen-Seite das Konto löschen. Bitte
+entschuldige die Unannehmlichkeit.
-Thank you and welcome to {{$sitename}}.
+Danke, und herzlich Willkommen auf {{$sitename}}!
-Sincerely,
- {{$sitename}} Administrator
+Viele Grüße,
+ der Administrator von {{$sitename}}
-
+ \ No newline at end of file
diff --git a/view/de/register_verify_eml.tpl b/view/de/register_verify_eml.tpl
index 85d9a12d3..4da21265d 100644
--- a/view/de/register_verify_eml.tpl
+++ b/view/de/register_verify_eml.tpl
@@ -1,25 +1,24 @@
-A new user registration request was received at {{$sitename}} which requires
-your approval.
+Eine neuer Benutzer hat sich auf {{$sitename}} registriert und benötigt
+Deine Freigabe.
-The login details are as follows:
+Die Anmeldedetails lauten wie folgt:
-Site Location: {{$siteurl}}
-Login Name: {{$email}}
-IP Address: {{$details}}
+Adresse des Servers: {{$siteurl}}
+Username: {{$email}}
+IP-Adresse: {{$details}}
-To approve this request please visit the following link:
+Um die Anfrage zu bestätigen besuche bitte folgenden Link:
{{$siteurl}}/regmod/allow/{{$hash}}
-To deny the request and remove the account, please visit:
+Um die Anfrage abzulehnen und das Konto zu entfernen besuche bitte:
{{$siteurl}}/regmod/deny/{{$hash}}
-Thank you.
-
+Vielen Dank.
diff --git a/view/de/request_notify_eml.tpl b/view/de/request_notify_eml.tpl
deleted file mode 100644
index d01b8ff27..000000000
--- a/view/de/request_notify_eml.tpl
+++ /dev/null
@@ -1,17 +0,0 @@
-
-Dear {{$myname}},
-
-You have just received a connection request at {{$sitename}}
-
-from '{{$requestor}}'.
-
-You may visit their profile at {{$url}}.
-
-Please login to your site to view the complete introduction
-and approve or ignore/cancel the request.
-
-{{$siteurl}}
-
-Regards,
-
- {{$sitename}} administrator
diff --git a/view/de/strings.php b/view/de/strings.php
index 6816c61e8..2d7265e18 100644
--- a/view/de/strings.php
+++ b/view/de/strings.php
@@ -5,67 +5,255 @@ function string_plural_select_de($n){
return ($n != 1);;
}}
;
-$a->strings["Light (Red Matrix default)"] = "Hell (RedMatrix Voreinstellung)";
-$a->strings["Submit"] = "Bestätigen";
-$a->strings["Theme settings"] = "Theme-Einstellungen";
-$a->strings["Set scheme"] = "Schema";
-$a->strings["Narrow navbar"] = "Verkleinere Navigationsleiste";
-$a->strings["Navigation bar background color"] = "Hintergrundfarbe der Navigationsleiste";
-$a->strings["Navigation bar gradient top color"] = "Farbverlauf der Navigationsleiste: Farbe oben";
-$a->strings["Navigation bar gradient bottom color"] = "Farbverlauf der Navigationsleiste: Farbe unten";
-$a->strings["Navigation active button gradient top color"] = "Navigations-Button aktiv: Farbe für Farbverlauf oben";
-$a->strings["Navigation active button gradient bottom color"] = "Navigations-Button aktiv: Farbe für Farbverlauf unten";
-$a->strings["Navigation bar border color "] = "Farbe für den Rand der Navigationsleiste";
-$a->strings["Navigation bar icon color "] = "Farbe für die Icons der Navigationsleiste";
-$a->strings["Navigation bar active icon color "] = "Farbe für aktive Icons der Navigationsleiste";
-$a->strings["link color"] = "Farbe für Links";
-$a->strings["Set font-color for banner"] = "Farbe der Schrift des Banners";
-$a->strings["Set the background color"] = "Hintergrundfarbe";
-$a->strings["Set the background image"] = "Hintergrundbild";
-$a->strings["Set the background color of items"] = "Hintergrundfarbe für Beiträge";
-$a->strings["Set the background color of comments"] = "Hintergrundfarbe für Kommentare";
-$a->strings["Set the border color of comments"] = "Farbe des Randes von Kommentaren";
-$a->strings["Set the indent for comments"] = "Einzug für Kommmentare einstellen";
-$a->strings["Set the basic color for item icons"] = "Grundfarbe für Beitrags-Icons";
-$a->strings["Set the hover color 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"] = "Schriftgröße für Beiträge und Kommentare";
-$a->strings["Set font-color for posts and comments"] = "Schriftfarbe für Posts 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 Unterhaltungsbereiche";
-$a->strings["Center conversation regions"] = "Konversationsbereich zentrieren";
-$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["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["Register"] = "Registrieren";
-$a->strings["Logout"] = "Abmelden";
-$a->strings["Login"] = "Anmelden";
-$a->strings["Email"] = "E-Mail";
-$a->strings["Password"] = "Kennwort";
-$a->strings["Remember me"] = "Angaben speichern";
-$a->strings["Forgot your password?"] = "Passwort vergessen?";
-$a->strings["Password Reset"] = "Zurücksetzen des Kennworts";
-$a->strings["permission denied"] = "Zugriff verweigert";
-$a->strings["Got Zot?"] = "Haste schon Zot?";
-$a->strings["toggle mobile"] = "auf/von mobile Ansicht wechseln";
-$a->strings["Logged out."] = "Ausgeloggt.";
-$a->strings["Failed authentication"] = "Authentifizierung fehlgeschlagen";
-$a->strings["Login failed."] = "Login fehlgeschlagen.";
-$a->strings["Default"] = "Standard";
-$a->strings["Permission denied."] = "Zugang verweigert";
+$a->strings["Cannot locate DNS info for database server '%s'"] = "Kann die DNS-Informationen für den Datenbank-Server '%s' nicht finden";
$a->strings["Profile Photos"] = "Profilfotos";
-$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"] = "Foto";
+$a->strings["event"] = "Termin";
+$a->strings["channel"] = "Kanal";
+$a->strings["status"] = "Status";
+$a->strings["comment"] = "Kommentar";
+$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["poked"] = "stupste";
+$a->strings["__ctx:mood__ %1\$s is %2\$s"] = "%1\$s ist %2\$s";
+$a->strings["Select"] = "Auswählen";
+$a->strings["Delete"] = "Löschen";
+$a->strings["Private Message"] = "Private Nachricht";
+$a->strings["Message signature validated"] = "Signatur überprüft";
+$a->strings["Message signature incorrect"] = "Signatur nicht korrekt";
+$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 Profile"] = "Profil ansehen";
+$a->strings["View Photos"] = "Fotos ansehen";
+$a->strings["Matrix Activity"] = "Matrix-Aktivität";
+$a->strings["Connect"] = "Verbinden";
+$a->strings["Edit Contact"] = "Kontakt bearbeiten";
+$a->strings["Send PM"] = "Sende PN";
+$a->strings["Poke"] = "Anstupsen";
+$a->strings["Unknown"] = "Unbekannt";
+$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["Post as"] = "Posten als";
+$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["Discover"] = "Entdecken";
+$a->strings["Imported public streams"] = "Importierte öffentliche Beiträge";
+$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["Photos"] = "Fotos";
$a->strings["Photo Albums"] = "Fotoalben";
-$a->strings["Upload New Photos"] = "Lade neue Fotos hoch";
+$a->strings["Files"] = "Dateien";
+$a->strings["Files and Storage"] = "Dateien und Speicher";
+$a->strings["Chatrooms"] = "Chaträume";
+$a->strings["Bookmarks"] = "Lesezeichen";
+$a->strings["Saved Bookmarks"] = "Gespeicherte Lesezeichen";
+$a->strings["Webpages"] = "Webseiten";
+$a->strings["Manage Webpages"] = "Webseiten verwalten";
+$a->strings["created a new post"] = "Neuer Beitrag wurde erzeugt";
+$a->strings["commented on %s's post"] = "hat %s's Beitrag kommentiert";
+$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["New Page"] = "Neue Seite";
+$a->strings["Edit"] = "Bearbeiten";
+$a->strings["View"] = "Ansicht";
+$a->strings["Actions"] = "Aktionen";
+$a->strings["Page Link"] = "Seiten-Link";
+$a->strings["Title"] = "Titel";
+$a->strings["Created"] = "Erstellt";
+$a->strings["Edited"] = "Geändert";
+$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["Permission denied."] = "Zugang verweigert";
+$a->strings["Room is full"] = "Der Raum ist voll";
+$a->strings["Embedded content"] = "Eingebetteter Inhalt";
+$a->strings["Embedding disabled"] = "Einbetten ausgeschaltet";
+$a->strings["Categories"] = "Kategorien";
+$a->strings["Apps"] = "Apps";
+$a->strings["System"] = "System";
+$a->strings["Create Personal App"] = "Persönliche App erstellen";
+$a->strings["Edit Personal App"] = "Persönliche App bearbeiten";
+$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"] = "Gespeicherte Suchanfragen";
+$a->strings["add"] = "hinzufügen";
+$a->strings["Saved Folders"] = "Gespeicherte 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["Export content"] = "Kanal-Inhalte exportieren";
+$a->strings["Connection Default Permissions"] = "Standardzugriffsrechte für neue Verbindungen:";
+$a->strings["Premium Channel Settings"] = "Premium-Kanal-Einstellungen";
+$a->strings["Channel Sources"] = "Kanal-Quellen";
+$a->strings["Settings"] = "Einstellungen";
+$a->strings["Messages"] = "Nachrichten";
+$a->strings["Check Mail"] = "E-Mails abrufen";
+$a->strings["New Message"] = "Neue Nachricht";
+$a->strings["Chat Rooms"] = "Chaträume";
+$a->strings["Bookmarked Chatrooms"] = "Gespeicherte Chatrooms";
+$a->strings["Suggested Chatrooms"] = "Chatraum-Vorschläge";
+$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[" and "] = "und";
+$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["Attachments:"] = "Anhänge:";
+$a->strings["l F d, Y \\@ g:i A"] = "l, d. F Y\\\\, H:i";
+$a->strings["Redmatrix event notification:"] = "RedMatrix Termin-Benachrichtigung:";
+$a->strings["Starts:"] = "Beginnt:";
+$a->strings["Finishes:"] = "Endet:";
+$a->strings["Location:"] = "Ort:";
+$a->strings["parent"] = "Ãœbergeordnetes Verzeichnis";
+$a->strings["Collection"] = "Ordner";
+$a->strings["Principal"] = "Prinzipal";
+$a->strings["Addressbook"] = "Adressbuch";
+$a->strings["Calendar"] = "Kalender";
+$a->strings["Schedule Inbox"] = "Posteingang für überwachte Kalender";
+$a->strings["Schedule Outbox"] = "Postausgang für überwachte Kalender";
+$a->strings["%1\$s used"] = "%1\$s verwendet";
+$a->strings["%1\$s used of %2\$s (%3\$s&#37;)"] = "%1\$s von %2\$s verwendet (%3\$s&#37;)";
+$a->strings["Name"] = "Name";
+$a->strings["Type"] = "Typ";
+$a->strings["Size"] = "Größe";
+$a->strings["Last Modified"] = "Zuletzt geändert";
+$a->strings["Total"] = "Summe";
+$a->strings["Create new folder"] = "Neuen Ordner anlegen";
+$a->strings["Create"] = "Erstelle";
+$a->strings["Upload file"] = "Datei hochladen";
+$a->strings["Upload"] = "Hochladen";
+$a->strings["%1\$s's bookmarks"] = "%1\$ss Lesezeichen";
+$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["Response from remote channel was incomplete."] = "Antwort des entfernten Kanals war unvollständig.";
+$a->strings["Channel was deleted and no longer exists."] = "Kanal wurde gelöscht und existiert nicht mehr.";
+$a->strings["Protocol disabled."] = "Protokoll deaktiviert.";
+$a->strings["Channel discovery failed."] = "Kanalsuche fehlgeschlagen";
+$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["Default"] = "Standard";
+$a->strings["Frequently"] = "Häufig";
+$a->strings["Hourly"] = "Stündlich";
+$a->strings["Twice daily"] = "Zwei Mal am Tag";
+$a->strings["Daily"] = "Täglich";
+$a->strings["Weekly"] = "Wöchentlich";
+$a->strings["Monthly"] = "Monatlich";
+$a->strings["Friendica"] = "Friendica";
+$a->strings["OStatus"] = "OStatus";
+$a->strings["RSS/Atom"] = "RSS/Atom";
+$a->strings["Email"] = "E-Mail";
+$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["%d invitation available"] = array(
0 => "%d Einladung verfügbar",
1 => "%d Einladungen verfügbar",
@@ -79,59 +267,251 @@ $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["Exammple: name=fred and country=iceland"] = "Beispiel: name=fred und country=deutschland";
-$a->strings["Advanced Find"] = "Erweiterte Suche";
-$a->strings["Saved Folders"] = "Gesicherte Ordner";
-$a->strings["Everything"] = "Alles";
-$a->strings["Categories"] = "Kategorien";
+$a->strings["Advanced example: name=fred and country=iceland"] = "Fortgeschrittenes Beispiel: name=fred and country=iceland";
$a->strings["%d connection in common"] = array(
0 => "%d gemeinsame Verbindung",
1 => "%d gemeinsame Verbindungen",
);
$a->strings["show more"] = "mehr zeigen";
-$a->strings[" and "] = "und";
-$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["Permission denied"] = "Keine Berechtigung";
-$a->strings["(Unknown)"] = "(Unbekannt)";
-$a->strings["Visible to anybody on the internet."] = "Für jeden im Internet sichtbar.";
-$a->strings["Visible to you only."] = "Nur für Dich sichtbar.";
-$a->strings["Visible to anybody in this network."] = "Für jedes Mitglied der RedMatrix sichtbar.";
-$a->strings["Visible to anybody authenticated."] = "Für jeden sichtbar, der angemeldet ist.";
-$a->strings["Visible to anybody on %s."] = "Für jeden auf %s sichtbar.";
-$a->strings["Visible to all connections."] = "Für alle Verbindungen sichtbar.";
-$a->strings["Visible to approved connections."] = "Nur für akzeptierte Verbindungen sichtbar.";
-$a->strings["Item not found."] = "Element nicht gefunden.";
-$a->strings["Collection not found."] = "Sammlung nicht gefunden";
-$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["Connect"] = "Verbinden";
+$a->strings["Red Matrix Notification"] = "Red Matrix Benachrichtigung";
+$a->strings["redmatrix"] = "redmatrix";
+$a->strings["Thank You,"] = "Danke.";
+$a->strings["%s Administrator"] = "der Administrator von %s";
+$a->strings["%s <!item_type!>"] = "%s <!item_type!>";
+$a->strings["[Red:Notify] New mail received at %s"] = "[Red:Benachrichtigung] 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:Benachrichtigung] %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:Benachrichtigung] %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:Benachrichtigung] %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:Benachrichtigung] Vorstellung erhalten";
+$a->strings["%1\$s, you've received an new connection request from '%2\$s' at %3\$s"] = "%1\$s, Du hast eine neue Verbindungsanfrage von '%2\$s' auf %3\$s erhalten";
+$a->strings["%1\$s, you've received [zrl=%2\$s]a new connection request[/zrl] from %3\$s."] = "%1\$s, Du hast [zrl=%2\$s]eine neue Verbindungsanfrage[/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 connection request."] = "Bitte besuche %s , um die Verbindungsanfrage 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["[Red:Notify]"] = "[Red:Benachrichtigung]";
+$a->strings["This event has been added to your calendar."] = "Dieser Termin wurde zu Deinem Kalender hinzugefügt";
+$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."] = "Es hat früher schon einmal eine Sammlung mit diesem Namen existiert, die gelöscht wurde. Es <strong>könnten</strong> von damals noch Elemente (Beiträge, Dateien etc.) vorhanden sein, die allen jetzigen und zukünftigen Mitgliedern dieser Sammlung den Zugriff erlauben. Wenn das nicht Dein Plan war, erstelle bitte eine neue Sammlung mit einem anderen Namen.";
+$a->strings["Default privacy group for new contacts"] = "Standard-Sammlung für neue Kontakte";
+$a->strings["All Channels"] = "Alle Kanäle";
+$a->strings["edit"] = "Bearbeiten";
+$a->strings["Collections"] = "Sammlungen";
+$a->strings["Edit collection"] = "Sammlung bearbeiten";
+$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["Image/photo"] = "Bild/Foto";
+$a->strings["Encrypted content"] = "Verschlüsselter Inhalt";
+$a->strings["Install design element: "] = "Design-Element installieren:";
+$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 spoiler"] = "$1 Spoiler";
+$a->strings["$1 wrote:"] = "$1 schrieb:";
+$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["like"] = "mag";
+$a->strings["likes"] = "gefällt";
+$a->strings["dislike"] = "verurteile";
+$a->strings["dislikes"] = "missfällt";
+$a->strings["__ctx:noun__ Like"] = array(
+ 0 => "Gefällt mir",
+ 1 => "Gefällt mir",
+);
+$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"] = "Profile verwalten";
+$a->strings["Edit Profile"] = "Profile bearbeiten";
+$a->strings["Edit your profile"] = "Profil bearbeiten";
+$a->strings["Your photos"] = "Deine Bilder";
+$a->strings["Your files"] = "Deine Dateien";
+$a->strings["Chat"] = "Chat";
+$a->strings["Your chatrooms"] = "Deine Chaträume";
+$a->strings["Your bookmarks"] = "Deine Lesezeichen";
+$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["Remote authentication"] = "Ãœber Konto auf anderem Server einloggen";
+$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["Applications, utilities, links, games"] = "Anwendungen (Apps), Zubehör, Links, Spiele";
+$a->strings["Search"] = "Suche";
+$a->strings["Search site content"] = "Durchsuche Seiten-Inhalt";
+$a->strings["Directory"] = "Verzeichnis";
+$a->strings["Channel Directory"] = "Kanal-Verzeichnis";
+$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["Connections"] = "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["Events"] = "Termine";
+$a->strings["Event Calendar"] = "Terminkalender";
+$a->strings["See all events"] = "Alle Termine ansehen";
+$a->strings["Mark all events seen"] = "Markiere alle Termine als gesehen";
+$a->strings["Channel Manager"] = "Kanal-Manager";
+$a->strings["Manage Your Channels"] = "Verwalte Deine Kanäle";
+$a->strings["Account/Channel Settings"] = "Konto-/Kanal-Einstellungen";
+$a->strings["Admin"] = "Administration";
+$a->strings["Site Setup and Configuration"] = "Seiten-Einrichtung und -Konfiguration";
+$a->strings["Please wait..."] = "Bitte warten...";
+$a->strings["Can view my normal stream and posts"] = "Kann meine normalen Beiträge sehen";
+$a->strings["Can view my default channel profile"] = "Kann mein Standardprofil sehen";
+$a->strings["Can view my photo albums"] = "Kann meine Fotoalben betrachten";
+$a->strings["Can view my connections"] = "Kann meine Verbindungen sehen";
+$a->strings["Can view my file storage"] = "Kann meine Dateiordner lesen";
+$a->strings["Can view my webpages"] = "Kann meine Webseiten sehen";
+$a->strings["Can send me their channel stream and posts"] = "Kann mir die Beiträge aus seinem/ihrem Kanal schicken";
+$a->strings["Can post on my channel page (\"wall\")"] = "Kann auf meiner Kanal-Seite (\"wall\") Beiträge veröffentlichen";
+$a->strings["Can comment on or like my posts"] = "Darf meine Beiträge kommentieren und mögen/nicht mögen";
+$a->strings["Can send me private mail messages"] = "Kann mir private Nachrichten schicken";
+$a->strings["Can post photos to my photo albums"] = "Kann Fotos in meinen Fotoalben veröffentlichen";
+$a->strings["Can like/dislike stuff"] = "Kann andere Elemente mögen/nicht mögen";
+$a->strings["Profiles and things other than posts/comments"] = "Profile und alles außer Beiträge und Kommentare";
+$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["Can write to my file storage"] = "Kann in meine Dateiordner schreiben";
+$a->strings["Can edit my webpages"] = "Kann meine Webseiten bearbeiten";
+$a->strings["Can source my public posts in derived channels"] = "Kann meine öffentlichen Beiträge als Quellen für Kanäle verwenden";
+$a->strings["Somewhat advanced - very useful in open communities"] = "Etwas fortgeschritten – sehr nützlich in offenen Gemeinschaften";
+$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 das nur, wenn Du genau weißt, was Du tust";
+$a->strings["Social Networking"] = "Soziales Netzwerk";
+$a->strings["Mostly Public"] = "Weitgehend öffentlich";
+$a->strings["Restricted"] = "Beschränkt";
+$a->strings["Private"] = "Privat";
+$a->strings["Community Forum"] = "Forum";
+$a->strings["Feed Republish"] = "Teilen von Feeds";
+$a->strings["Special Purpose"] = "Für besondere Zwecke";
+$a->strings["Celebrity/Soapbox"] = "Mitteilungs-Kanal (keine Kommentare)";
+$a->strings["Group Repository"] = "Gruppenarchiv";
+$a->strings["Other"] = "Andere";
+$a->strings["Custom/Expert Mode"] = "Benutzerdefiniert/Expertenmodus";
$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["Miscellaneous"] = "Verschiedenes";
-$a->strings["year"] = "Jahr";
-$a->strings["month"] = "Monat";
-$a->strings["day"] = "Tag";
-$a->strings["never"] = "Nie";
-$a->strings["less than a second ago"] = "Vor weniger als einer Sekunde";
-$a->strings["years"] = "Jahre";
-$a->strings["months"] = "Monate";
-$a->strings["week"] = "Woche";
-$a->strings["weeks"] = "Wochen";
-$a->strings["days"] = "Tage";
-$a->strings["hour"] = "Stunde";
-$a->strings["hours"] = "Stunden";
-$a->strings["minute"] = "Minute";
-$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["%1\$s's birthday"] = "%1\$s's Geburtstag";
-$a->strings["Happy Birthday %1\$s"] = "Alles Gute zum Geburtstag %1\$s";
+$a->strings["User '%s' deleted"] = "Benutzer '%s' gelöscht";
+$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["Advanced Profiles"] = "Erweiterte Profile";
+$a->strings["Additional profile sections and selections"] = "Stellt zusätzliche Bereiche und Felder im Profil zur Verfügung";
+$a->strings["Profile Import/Export"] = "Profil-Import/Export";
+$a->strings["Save and load profile details across sites/channels"] = "Speichere Dein Profil, um es in einen anderen Kanal zu importieren";
+$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["Navigation Channel Select"] = "Kanal-Auswahl in der Navigationsleiste";
+$a->strings["Change channels directly from within the navigation dropdown menu"] = "Wechsle direkt über das Navigationsmenü zu anderen Kanälen";
+$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 es, Einschränkungen und Bedingungen für Verbindungen dieses Kanals festzulegen";
+$a->strings["Post Composition Features"] = "Nachbearbeitungsfunktionen";
+$a->strings["Use Markdown"] = "Markdown benutzen";
+$a->strings["Allow use of \"Markdown\" to format posts"] = "Erlaube die Verwendung von \"Markdown\"-Syntax zur Formatierung von Beiträgen";
+$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"] = "Suchbegriffe zur Wiederverwendung abspeichern";
+$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["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 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";
+$a->strings["Please enter the required information."] = "Bitte gib die benötigten Informationen ein.";
+$a->strings["Failed to store account information."] = "Speichern der Account-Informationen fehlgeschlagen";
+$a->strings["Registration confirmation for %s"] = "Registrierungsbestätigung für %s";
+$a->strings["Registration request at %s"] = "Registrierungsanfrage auf %s";
+$a->strings["Administrator"] = "Administrator";
+$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["Account verified. Please login."] = "Konto geprüft. Bitte melde Dich an!";
+$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["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";
@@ -141,18 +521,15 @@ $a->strings["Reserved nickname. Please choose another."] = "Reservierter Kurznam
$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["Requested channel is not available."] = "Angeforderte Kanal nicht verfügbar.";
$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"] = "Profile verwalten/bearbeiten";
$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["Location:"] = "Ort:";
$a->strings["Gender:"] = "Geschlecht:";
$a->strings["Status:"] = "Status:";
$a->strings["Homepage:"] = "Homepage:";
@@ -163,17 +540,13 @@ $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["Event Reminders"] = "Termin-Erinnerungen";
+$a->strings["Events this week:"] = "Termine in dieser Woche:";
$a->strings["Profile"] = "Profil";
$a->strings["Full Name:"] = "Voller Name:";
-$a->strings["Like this channel"] = "Mag den Kanal";
-$a->strings["__ctx:noun__ Like"] = array(
- 0 => "Gefällt mir",
- 1 => "Gefällt mir",
-);
-$a->strings["j F, Y"] = "j F, Y";
-$a->strings["j F"] = "j F";
+$a->strings["Like this channel"] = "Dieser Kanal gefällt mir";
+$a->strings["j F, Y"] = "j. F Y";
+$a->strings["j F"] = "j. F";
$a->strings["Birthday:"] = "Geburtstag:";
$a->strings["Age:"] = "Alter:";
$a->strings["for %1\$d %2\$s"] = "seit %1\$d %2\$s";
@@ -195,51 +568,72 @@ $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["Like this thing"] = "Finde ich gut";
-$a->strings["New Page"] = "Neue Seite";
-$a->strings["Edit"] = "Bearbeiten";
-$a->strings["View"] = "Ansicht";
-$a->strings["Preview"] = "Vorschau";
-$a->strings["Actions"] = "Aktionen";
-$a->strings["Page Link"] = "Seiten Link";
-$a->strings["Title"] = "Titel";
-$a->strings["Created"] = "Erstellt";
-$a->strings["Edited"] = "Geändert";
-$a->strings["parent"] = "Ãœbergeordnetes Verzeichnis";
-$a->strings["Collection"] = "Sammlung";
-$a->strings["Principal"] = "Prinzipal";
-$a->strings["Addressbook"] = "Adressbuch";
-$a->strings["Calendar"] = "Kalender";
-$a->strings["Schedule Inbox"] = "Post-Eingang prüfen";
-$a->strings["Schedule Outbox"] = "Post-Ausgang prüfen";
-$a->strings["Unknown"] = "Unbekannt";
-$a->strings["%1\$s used"] = "%1\$s verwendet";
-$a->strings["%1\$s used of %2\$s (%3\$s&#37;)"] = "von %2\$s wurden %1\$s verwendet (%3\$s&#37;)";
-$a->strings["Files"] = "Dateien";
-$a->strings["Name"] = "Name";
-$a->strings["Type"] = "Typ";
-$a->strings["Size"] = "Größe";
-$a->strings["Last Modified"] = "Zuletzt geändert";
-$a->strings["Delete"] = "Löschen";
-$a->strings["Total"] = "Summe";
-$a->strings["Create new folder"] = "Neuen Ordner anlegen";
-$a->strings["Create"] = "Erstelle";
-$a->strings["Upload file"] = "Datei hochladen";
-$a->strings["Upload"] = "Hochladen";
+$a->strings["Like this thing"] = "Gefällt mir";
+$a->strings["Permission denied"] = "Keine Berechtigung";
+$a->strings["(Unknown)"] = "(Unbekannt)";
+$a->strings["Visible to anybody on the internet."] = "Für jeden im Internet sichtbar.";
+$a->strings["Visible to you only."] = "Nur für Dich sichtbar.";
+$a->strings["Visible to anybody in this network."] = "Für jedes Mitglied der RedMatrix sichtbar.";
+$a->strings["Visible to anybody authenticated."] = "Für jeden sichtbar, der angemeldet ist.";
+$a->strings["Visible to anybody on %s."] = "Für jeden auf %s sichtbar.";
+$a->strings["Visible to all connections."] = "Für alle Verbindungen sichtbar.";
+$a->strings["Visible to approved connections."] = "Nur für akzeptierte Verbindungen sichtbar.";
+$a->strings["Visible to specific connections."] = "Sichtbar für bestimmte Verbindungen.";
+$a->strings["Item not found."] = "Element nicht gefunden.";
+$a->strings["Collection not found."] = "Sammlung nicht gefunden";
+$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["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["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["like"] = "mag";
-$a->strings["likes"] = "gefällt";
-$a->strings["dislike"] = "verurteile";
-$a->strings["dislikes"] = "missfällt";
+$a->strings["view full size"] = "In Vollbildansicht anschauen";
+$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["Logged out."] = "Ausgeloggt.";
+$a->strings["Failed authentication"] = "Authentifizierung fehlgeschlagen";
+$a->strings["Login failed."] = "Login fehlgeschlagen.";
+$a->strings["Miscellaneous"] = "Verschiedenes";
+$a->strings["YYYY-MM-DD or MM-DD"] = "JJJJ-MM-TT oder MM-TT";
+$a->strings["never"] = "Nie";
+$a->strings["less than a second ago"] = "Vor weniger als einer Sekunde";
+$a->strings["year"] = "Jahr";
+$a->strings["years"] = "Jahre";
+$a->strings["month"] = "Monat";
+$a->strings["months"] = "Monate";
+$a->strings["week"] = "Woche";
+$a->strings["weeks"] = "Wochen";
+$a->strings["day"] = "Tag";
+$a->strings["days"] = "Tage";
+$a->strings["hour"] = "Stunde";
+$a->strings["hours"] = "Stunden";
+$a->strings["minute"] = "Minute";
+$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["%1\$s's birthday"] = "%1\$ss Geburtstag";
+$a->strings["Happy Birthday %1\$s"] = "Alles Gute zum Geburtstag, %1\$s";
+$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["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["Delete this item?"] = "Dieses Element löschen?";
$a->strings["Comment"] = "Kommentar";
$a->strings["[+] show all"] = "[+] Zeige alle";
@@ -251,8 +645,9 @@ $a->strings["Passwords do not match"] = "Kennwörter stimmen nicht überein";
$a->strings["everybody"] = "alle";
$a->strings["Secret Passphrase"] = "geheime Passphrase";
$a->strings["Passphrase hint"] = "Hinweis zur Passphrase";
-$a->strings["Notice: Permissions have changed but have not yet been submitted."] = "Mitteilung: Berechtigungen wurden verändert, aber noch nicht gespeichert.";
-$a->strings["close all"] = "Alles schliessen";
+$a->strings["Notice: Permissions have changed but have not yet been submitted."] = "Achtung: Berechtigungen wurden verändert, aber noch nicht gespeichert.";
+$a->strings["close all"] = "Alle schließen";
+$a->strings["Nothing new here"] = "Nichts Neues hier";
$a->strings["timeago.prefixAgo"] = "timeago.prefixAgo";
$a->strings["timeago.prefixFromNow"] = " ";
$a->strings["ago"] = "her";
@@ -270,46 +665,6 @@ $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["Can view my normal stream and posts"] = "Kann meine normalen Beiträge sehen";
-$a->strings["Can view my default channel profile"] = "Kann mein Standardprofil sehen";
-$a->strings["Can view my photo albums"] = "Kann meine Fotoalben betrachten";
-$a->strings["Can view my connections"] = "Kann meine Verbindungen sehen";
-$a->strings["Can view my file storage"] = "Kann meine Dateiordner lesen";
-$a->strings["Can view my webpages"] = "Kann meine Webseiten sehen";
-$a->strings["Can send me their channel stream and posts"] = "Kann mir die Beiträge aus seinem/ihrem Kanal schicken";
-$a->strings["Can post on my channel page (\"wall\")"] = "Kann auf meiner Kanal-Seite (\"wall\") Beiträge veröffentlichen";
-$a->strings["Can comment on or like my posts"] = "Darf meine Beiträge kommentieren und mögen/nicht mögen";
-$a->strings["Can send me private mail messages"] = "Kann mir private Nachrichten schicken";
-$a->strings["Can post photos to my photo albums"] = "Kann Fotos in meinen Fotoalben veröffentlichen";
-$a->strings["Can like/dislike stuff"] = "Kann andere Elemente mögen/nicht mögen";
-$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["Can write to my file storage"] = "Kann in meine Dateiordner schreiben";
-$a->strings["Can edit my webpages"] = "Kann meine Webseiten bearbeiten";
-$a->strings["Can source my public posts in derived channels"] = "Kann meine öffentlichen Beiträge als Quellen für Kanäle verwenden";
-$a->strings["Somewhat advanced - very useful in open communities"] = "Etwas fortgeschritten – sehr nützlich in offenen Gemeinschaften";
-$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 das nur, wenn Du genau weißt, was Du tust";
-$a->strings["Frequently"] = "Häufig";
-$a->strings["Hourly"] = "Stündlich";
-$a->strings["Twice daily"] = "Zwei Mal am Tag";
-$a->strings["Daily"] = "Täglich";
-$a->strings["Weekly"] = "Wöchentlich";
-$a->strings["Monthly"] = "Monatlich";
-$a->strings["Friendica"] = "Friendica";
-$a->strings["OStatus"] = "OStatus";
-$a->strings["RSS/Atom"] = "RSS/Atom";
-$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["l F d, Y \\@ g:i A"] = "l, d. F Y\\\\, H:i";
-$a->strings["Starts:"] = "Beginnt:";
-$a->strings["Finishes:"] = "Endet:";
-$a->strings["This event has been added to your calendar."] = "Dieses Ereignis wurde Deinem Kalender hinzugefügt";
$a->strings["Male"] = "Männlich";
$a->strings["Female"] = "Weiblich";
$a->strings["Currently Male"] = "Momentan männlich";
@@ -322,7 +677,6 @@ $a->strings["Transsexual"] = "Transsexuell";
$a->strings["Hermaphrodite"] = "Zwitter";
$a->strings["Neuter"] = "Geschlechtslos";
$a->strings["Non-specific"] = "unklar";
-$a->strings["Other"] = "Anders";
$a->strings["Undecided"] = "Unentschieden";
$a->strings["Males"] = "Männer";
$a->strings["Females"] = "Frauen";
@@ -367,98 +721,6 @@ $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["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 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";
-$a->strings["Please enter the required information."] = "Bitte gib die benötigten Informationen ein.";
-$a->strings["Failed to store account information."] = "Speichern der Account-Informationen fehlgeschlagen";
-$a->strings["Registration confirmation for %s"] = "Registrierungsbestätigung für %s";
-$a->strings["Registration request at %s"] = "Registrierungsanfrage auf %s";
-$a->strings["Administrator"] = "Administrator";
-$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["Account verified. Please login."] = "Konto geprüft. Bitte melde Dich an!";
-$a->strings["Embedded content"] = "Eingebetteter Inhalt";
-$a->strings["Embedding disabled"] = "Einbetten ausgeschaltet";
-$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["view full size"] = "In Vollbildansicht anschauen";
-$a->strings["Cannot locate DNS info for database server '%s'"] = "Kann die DNS-Informationen für den Datenbank-Server '%s' nicht finden";
-$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";
-$a->strings["edit"] = "Bearbeiten";
-$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["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["Private Message"] = "Private Nachricht";
-$a->strings["Select"] = "Auswählen";
-$a->strings["Save to Folder"] = "In Ordner speichern";
-$a->strings["View all"] = "Alles anzeigen";
-$a->strings["__ctx:noun__ Dislike"] = array(
- 0 => "Gefällt nicht",
- 1 => "Gefällt nicht",
-);
-$a->strings["Add Star"] = "Stern hinzufügen";
-$a->strings["Remove Star"] = "Stern 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"] = "Tag hinzufügen";
-$a->strings["I like this (toggle)"] = "Mir gefällt das (Umschalter)";
-$a->strings["I don't like this (toggle)"] = "Mir gefällt das nicht (Umschalter)";
-$a->strings["Share This"] = "Teilen";
-$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[" from %s"] = "von %s";
-$a->strings["last edited: %s"] = "zuletzt bearbeitet: %s";
-$a->strings["Expires: %s"] = "Verfällt: %s";
-$a->strings["Save Bookmarks"] = "Favoriten speichern";
-$a->strings["Add to Calendar"] = "Zum Kalender hinzufügen";
-$a->strings["__ctx:noun__ Likes"] = "Gefällt mir";
-$a->strings["__ctx:noun__ Dislikes"] = "Gefällt nicht";
-$a->strings["Close"] = "Geschlossen";
-$a->strings["Please wait"] = "Bitte warten";
-$a->strings["%d comment"] = array(
- 0 => "%d Kommentar",
- 1 => "%d Kommentare",
-);
-$a->strings["This is you"] = "Das bist Du";
-$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["Encrypt text"] = "Text verschlüsseln";
-$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["prev"] = "vorherige";
$a->strings["first"] = "erste";
$a->strings["last"] = "letzte";
@@ -471,10 +733,7 @@ $a->strings["%d Connection"] = array(
1 => "%d Verbindungen",
);
$a->strings["View Connections"] = "Verbindungen anzeigen";
-$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";
@@ -484,7 +743,7 @@ $a->strings["slapped"] = "ohrfeigte";
$a->strings["finger"] = "befummeln";
$a->strings["fingered"] = "befummelte";
$a->strings["rebuff"] = "eine Abfuhr erteilen";
-$a->strings["rebuffed"] = "abfuhrerteilte";
+$a->strings["rebuffed"] = "zurückgewiesen";
$a->strings["happy"] = "glücklich";
$a->strings["sad"] = "traurig";
$a->strings["mellow"] = "sanft";
@@ -535,344 +794,592 @@ $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["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["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["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 getaggt";
-$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 getaggt";
-$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 new connection request from '%2\$s' at %3\$s"] = "%1\$s, Du hast eine neue Verbindungsanfrage von '%2\$s' auf %3\$s erhalten";
-$a->strings["%1\$s, you've received [zrl=%2\$s]a new connection request[/zrl] from %3\$s."] = "%1\$s, Du hast [zrl=%2\$s]eine neue Verbindungsanfrage[/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 connection request."] = "Bitte besuche %s um die Verbindungsanfrage 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["%1\$s's bookmarks"] = "%1\$ss Lesezeichen";
-$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["Edit your profile"] = "Profil bearbeiten";
-$a->strings["Photos"] = "Fotos";
-$a->strings["Your photos"] = "Deine Bilder";
-$a->strings["Your files"] = "Deine Dateien";
-$a->strings["Chat"] = "Chat";
-$a->strings["Your chatrooms"] = "Deine Chaträume";
-$a->strings["Bookmarks"] = "Lesezeichen";
-$a->strings["Your bookmarks"] = "Deine Lesezeichen";
-$a->strings["Webpages"] = "Webseiten";
-$a->strings["Your webpages"] = "Deine Webseiten";
-$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["Create an account"] = "Erzeuge ein Konto";
-$a->strings["Help"] = "Hilfe";
-$a->strings["Help and documentation"] = "Hilfe und Dokumentation";
-$a->strings["Apps"] = "Apps";
-$a->strings["Applications, utilities, links, games"] = "Applikationen, Zubehör, Links, 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["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["Connections"] = "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["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["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["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["Advanced Profiles"] = "Erweiterte Profile";
-$a->strings["Additional profile sections and selections"] = "Stellt zusätzliche Felder im Profil zur Verfügung";
-$a->strings["Profile Import/Export"] = "Profil-Import/Export";
-$a->strings["Save and load profile details across sites/channels"] = "Speichere Dein Profil, um es in einen anderen Kanal zu importieren";
-$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["Use Markdown"] = "Markdown benutzen";
-$a->strings["Allow use of \"Markdown\" to format posts"] = "Erlaube Markdown zur Formatierung von Beiträgen";
-$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 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["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["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["created a new post"] = "Neuer Beitrag wurde erzeugt";
-$a->strings["commented on %s's post"] = "hat %s's Beitrag kommentiert";
-$a->strings["Site Admin"] = "Webseiten-Administrator";
+$a->strings["Visible to your default audience"] = "Standard-Sichtbarkeit";
+$a->strings["Show"] = "Zeigen";
+$a->strings["Don't show"] = "Nicht zeigen";
+$a->strings["Permissions"] = "Berechtigungen";
+$a->strings["Close"] = "Schließen";
+$a->strings["Public Timeline"] = "Öffentliche Zeitleiste";
+$a->strings["Site Admin"] = "Hub-Administration";
$a->strings["Address Book"] = "Adressbuch";
$a->strings["Mood"] = "Laune";
-$a->strings["Poke"] = "Anstupsen";
-$a->strings["Probe"] = "Prüfen";
-$a->strings["Suggest"] = "Empfehlung";
+$a->strings["Probe"] = "Testen";
+$a->strings["Suggest"] = "Empfehlen";
+$a->strings["Random Channel"] = "Zufälliger Kanal";
+$a->strings["Invite"] = "Einladen";
+$a->strings["Features"] = "Funktionen";
+$a->strings["Language"] = "Sprache";
+$a->strings["Post"] = "Beitrag";
+$a->strings["Profile Photo"] = "Profilfoto";
$a->strings["Update"] = "Aktualisieren";
$a->strings["Install"] = "Installieren";
$a->strings["Purchase"] = "Kaufen";
-$a->strings["Public Timeline"] = "Öffentliche Zeitleiste";
-$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["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["__ctx:mood__ %1\$s is %2\$s"] = "%1\$s ist %2\$s";
-$a->strings["View %s's profile @ %s"] = "%ss Profil auf %s ansehen";
-$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["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["%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["Save to Folder"] = "In Ordner speichern";
+$a->strings["View all"] = "Alles anzeigen";
+$a->strings["__ctx:noun__ Dislike"] = array(
+ 0 => "Gefällt nicht",
+ 1 => "Gefällt nicht",
);
-$a->strings["and"] = "und";
-$a->strings[", and %d other people"] = array(
- 0 => "",
- 1 => ", und %d andere",
+$a->strings["Add Star"] = "Stern hinzufügen";
+$a->strings["Remove Star"] = "Stern entfernen";
+$a->strings["Toggle Star Status"] = "Markierungsstatus (Stern) umschalten";
+$a->strings["starred"] = "markiert";
+$a->strings["Add Tag"] = "Tag hinzufügen";
+$a->strings["I like this (toggle)"] = "Mir gefällt das (Umschalter)";
+$a->strings["I don't like this (toggle)"] = "Mir gefällt das nicht (Umschalter)";
+$a->strings["Share This"] = "Teilen";
+$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["Save Bookmarks"] = "Favoriten speichern";
+$a->strings["Add to Calendar"] = "Zum Kalender hinzufügen";
+$a->strings["__ctx:noun__ Likes"] = "Gefällt mir";
+$a->strings["__ctx:noun__ Dislikes"] = "Gefällt nicht";
+$a->strings["%d comment"] = array(
+ 0 => "%d Kommentar",
+ 1 => "%d Kommentare",
);
-$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["Post as"] = "Posten als";
-$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["OK"] = "Ok";
-$a->strings["Cancel"] = "Abbrechen";
-$a->strings["Discover"] = "Entdecken";
-$a->strings["Imported public streams"] = "Importierte öffentliche Beitragsströme";
-$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["Files and Storage"] = "Dateien und Speicher";
-$a->strings["Chatrooms"] = "Chaträume";
-$a->strings["Saved Bookmarks"] = "Gespeicherte Lesezeichen";
-$a->strings["Manage Webpages"] = "Webseiten verwalten";
-$a->strings["Visible to your default audience"] = "Standard-Sichtbarkeit";
-$a->strings["Show"] = "Zeigen";
-$a->strings["Don't show"] = "Nicht zeigen";
-$a->strings["Permissions"] = "Berechtigungen";
-$a->strings["System"] = "System";
-$a->strings["Create Personal App"] = "Erstelle persönliche App";
-$a->strings["Edit Personal App"] = "Editiere persönliche App";
-$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["Remove term"] = "Eintrag löschen";
-$a->strings["Archives"] = "Archive";
-$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"] = "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["Check Mail"] = "E-Mails abrufen";
-$a->strings["Chat Rooms"] = "Chaträume";
-$a->strings["Bookmarked Chatrooms"] = "Gespeicherte Chatrooms";
-$a->strings["Suggested Chatrooms"] = "Vorgeschlagene Chaträume";
-$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["Response from remote channel was incomplete."] = "Antwort des entfernten Kanals war unvollständig.";
-$a->strings["Channel was deleted and no longer exists."] = "Kanal wurde gelöscht und existiert nicht mehr.";
-$a->strings["Channel discovery failed."] = "Kanalerkennung fehlgeschlagen";
-$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["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["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["Set your current mood and tell your friends"] = "Wähle Deine aktuelle Stimmung und teile sie mit Deinen Freunden";
+$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["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["Menu Item Permissions"] = "Zugriffsrechte des Menü-Elements";
+$a->strings["(click to open/close)"] = "(zum öffnen/schließen anklicken)";
+$a->strings["Link text"] = "Link Text";
+$a->strings["URL of link"] = "URL des Links";
+$a->strings["Use RedMatrix magic-auth if available"] = "Verwende die automatische RedMatrix-Authentifizierung (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["Modify"] = "Ändern";
+$a->strings["Some blurb about what to do when you're new here"] = "Ein Hinweis, was man tun kann, wenn man neu hier ist";
+$a->strings["Profile not found."] = "Profil nicht gefunden.";
+$a->strings["Profile deleted."] = "Profil gelöscht.";
+$a->strings["Profile-"] = "Profil-";
+$a->strings["New profile created."] = "Neues Profil erstellt.";
+$a->strings["Profile unavailable to clone."] = "Profil kann nicht geklont werden.";
+$a->strings["Profile unavailable to export."] = "Dieses Profil kann nicht exportiert 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";
+$a->strings["Dislikes"] = "Gefällt nicht";
+$a->strings["Work/Employment"] = "Arbeit/Anstellung";
+$a->strings["Religion"] = "Religion";
+$a->strings["Political Views"] = "Politische Ansichten";
+$a->strings["Gender"] = "Geschlecht";
+$a->strings["Sexual Preference"] = "Sexuelle Orientierung";
+$a->strings["Homepage"] = "Webseite";
+$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?"] = "Deine Kontaktliste vor Betrachtern dieses Profils verbergen?";
+$a->strings["Yes"] = "Ja";
+$a->strings["No"] = "Nein";
+$a->strings["Edit Profile Details"] = "Bearbeite Profil-Details";
+$a->strings["View this profile"] = "Dieses Profil ansehen";
+$a->strings["Change Profile Photo"] = "Profilfoto ändern";
+$a->strings["Create a new profile using these settings"] = "Neues Profil anlegen und diese Einstellungen übernehmen";
+$a->strings["Clone this profile"] = "Dieses Profil klonen";
+$a->strings["Delete this profile"] = "Dieses Profil löschen";
+$a->strings["Import profile from file"] = "Profil aus einer Datei importieren";
+$a->strings["Export profile to file"] = "Profil in eine Datei exportieren";
+$a->strings["Profile Name:"] = "Profilname:";
+$a->strings["Your Full Name:"] = "Dein voller Name:";
+$a->strings["Title/Description:"] = "Titel/Stellenbeschreibung:";
+$a->strings["Your Gender:"] = "Dein Geschlecht:";
+$a->strings["Birthday :"] = "Geburtstag:";
+$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["<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";
+$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: 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 Kanäle";
+$a->strings["Musical interests"] = "Musikalische Interessen";
+$a->strings["Books, literature"] = "Bücher, Literatur";
+$a->strings["Television"] = "Fernsehen";
+$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 default profile."] = "Das ist Dein Standardprofil.";
+$a->strings["Age: "] = "Alter:";
+$a->strings["Edit/Manage Profiles"] = "Profile bearbeiten/verwalten";
+$a->strings["Add profile things"] = "Sachen zum Profil hinzufügen";
+$a->strings["Include desirable objects in your profile"] = "Binde begehrenswerte Dinge in Dein Profil ein";
+$a->strings["Continue"] = "Fortfahren";
+$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 auf 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["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["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 Hubs wurde installiert.";
+$a->strings["You may need to import the file \"install/schema_xxx.sql\" manually using a database client."] = "Möglicherweise musst Du die Datei install/schema_xxx.sql manuell mit Hilfe eines Datenkbank-Clients importieren.";
+$a->strings["Please see the file \"install/INSTALL.txt\"."] = "Lies die Datei \"install/INSTALL.txt\".";
+$a->strings["System check"] = "Systemprüfung";
+$a->strings["Next"] = "Nächste";
+$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["Database Type"] = "Datenbanktyp";
+$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 or postgres PHP module"] = "mysqli oder postgres 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 or postgres PHP module required but neither are installed."] = "Fehler: Das mysqli oder postgres PHP-Modul ist erforderlich, aber keines von beiden ist 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 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 %s under the Red top level folder."] = "Um diese kompilierten Vorlagen speichern zu können, braucht der Web-Server Schreibzugriff auf das Verzeichnis %s unterhalb des Red-Installationsverzeichnisses.";
+$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 Web-Server 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 %s only--not the template files (.tpl) that it contains."] = " Hinweis: Aus Sicherheitsgründen sollte der Web-Server nur auf %s Schreibrechte haben, nicht in der restlichen Red-Installation.";
+$a->strings["%s is writable"] = "%s 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 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["If you have https access to your website or allow connections to TCP port 443 (the https: port), you MUST use a browser-valid certificate. You MUST NOT use self-signed certificates!"] = "Wenn Du via HTTPS auf Deinen Server zugreifen möchtest, also Verbindungen über den Port 443 möglich sein sollen, ist ein SSL-Zertifikat einer Zertifizierungsstelle (CA) notwendig, das von den Browsern ohne Sicherheitsabfrage akzeptiert wird. Die Verwendung eines selbst signierten Zertifikates ist nicht möglich.";
+$a->strings["This restriction is incorporated because public posts from you may for example contain references to images on your own hub."] = "Diese Einschränkung wurde eingebaut, weil Deine öffentlichen Beiträge zum Beispiel Verweise auf Bilder auf Deinem eigenen Hub enthalten können.";
+$a->strings["If your certificate is not recognized, members of other sites (who may themselves have valid certificates) will get a warning message on their own site complaining about security issues."] = "Wenn Dein Zertifikat nicht von jedem Browser akzeptiert wird, erhalten die Mitglieder anderer Red-Server (die mit korrekten Zertifikaten ausgestattet sind) Sicherheits-Warnmeldungen, obwohl sie gar nicht direkt auf Deinem Server unterwegs sind (zum Beispiel, wenn ein Bild aus einem Deiner Beiträge angezeigt wird).";
+$a->strings["This can cause usability issues elsewhere (not just on your own site) so we must insist on this requirement."] = "Dies kann Probleme für andere Nutzer (nicht nur auf Deinem eigenen Server) verursachen, so dass wir auf dieser Forderung bestehen müssen.";
+$a->strings["Providers are available that issue free certificates which are browser-valid."] = "Es gibt einige Zertifizierungsstellen (CAs), bei denen solche Zertifikate kostenlos zu haben sind.";
+$a->strings["SSL certificate validation"] = "SSL Zertifikatverifizierung";
+$a->strings["Url rewrite in .htaccess is not working. Check your server configuration.Test: "] = "Das Umschreiben von URLs (rewrite) per .htaccess funktioniert nicht. Bitte prüfe die Server-Konfiguration. Test:";
+$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["Red"] = "Red";
+$a->strings["This is a hub of the Red Matrix - a global cooperative network of decentralized privacy enhanced websites."] = "Dieser Hub ist Teil der RedMatrix – eines globalen, kooperativen Netzwerks aus dezentralen Websites, die Rücksicht auf Deine Privatsphäre nehmen.";
+$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["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["Make this post private"] = "Diesen Beitrag privat machen";
+$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["Item not available."] = "Element nicht verfügbar.";
+$a->strings["Fetching URL returns error: %1\$s"] = "Abrufen der URL gab einen Fehler zurück: %1\$s";
+$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["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."] = "Externe Inhaltsquellen für Deinen Kanal 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["Block Name"] = "Block-Name";
+$a->strings["Public access denied."] = "Öffentlicher Zugang verweigert.";
+$a->strings["Gender: "] = "Geschlecht:";
+$a->strings["Status: "] = "Status:";
+$a->strings["Homepage: "] = "Webseite:";
+$a->strings["Hometown: "] = "Wohnort:";
+$a->strings["About: "] = "Ãœber:";
+$a->strings["Public Forum:"] = "Öffentliches Forum:";
+$a->strings["Keywords: "] = "Schlüsselwörter:";
+$a->strings["Finding:"] = "Ergebnisse:";
+$a->strings["next page"] = "nächste Seite";
+$a->strings["previous page"] = "vorherige Seite";
+$a->strings["No entries (some entries may be hidden)."] = "Keine Einträge gefunden (einige könnten versteckt sein).";
+$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["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["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["Registration"] = "Registrierung";
+$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["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["Event can not end before it has started."] = "Termin-Ende liegt vor dem Beginn.";
+$a->strings["Event title and start time are required."] = "Titel und Startzeit des Termins sind erforderlich.";
+$a->strings["Event not found."] = "Termin nicht gefunden.";
+$a->strings["l, F j"] = "l, j. F";
+$a->strings["Edit event"] = "Termin bearbeiten";
+$a->strings["Create New Event"] = "Neuen Termin erstellen";
+$a->strings["Previous"] = "Voriges";
+$a->strings["Event details"] = "Termin-Details";
+$a->strings["Starting date and Title are required."] = "Startdatum und Titel sind erforderlich.";
+$a->strings["Event Starts:"] = "Termin beginnt:";
+$a->strings["Required"] = "Benötigt";
+$a->strings["Finish date/time is not known or not relevant"] = "Ende Datum/Zeit sind unbekannt oder unwichtig";
+$a->strings["Event Finishes:"] = "Termin endet:";
+$a->strings["Adjust for viewer timezone"] = "An die Zeitzone des Betrachters anpassen";
+$a->strings["Description:"] = "Beschreibung:";
+$a->strings["Title:"] = "Titel:";
+$a->strings["Share this event"] = "Den Termin teilen";
+$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["You must be logged in to see this page."] = "Du musst angemeldet sein, um diese Seite betrachten zu können.";
+$a->strings["Insufficient permissions. Request redirected to profile page."] = "Unzureichende Zugriffsrechte. Die Anfrage wurde zur Profil-Seite umgeleitet.";
+$a->strings["Select a bookmark folder"] = "Lesezeichenordner wählen";
+$a->strings["Save Bookmark"] = "Lesezeichen speichern";
+$a->strings["URL of bookmark"] = "URL des Lesezeichens";
+$a->strings["Description"] = "Beschreibung";
+$a->strings["Or enter new bookmark folder name"] = "Oder gib einen neuen Namen für den Lesezeichenordner ein";
+$a->strings["Room not found"] = "Chatraum nicht gefunden";
+$a->strings["Leave Room"] = "Raum verlassen";
+$a->strings["Delete This Room"] = "Diesen Raum löschen";
+$a->strings["I am away right now"] = "Ich bin gerade nicht da";
+$a->strings["I am online"] = "Ich bin online";
+$a->strings["Bookmark this room"] = "Lesezeichen für diesen Raum setzen";
+$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["%1\$s is following %2\$s's %3\$s"] = "%1\$s folgt nun %2\$ss %3\$s";
+$a->strings["Away"] = "Abwesend";
+$a->strings["Online"] = "Online";
+$a->strings["Please login."] = "Bitte melde dich an.";
+$a->strings["No such group"] = "Sammlung nicht gefunden";
+$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["Channel removals are not allowed within 48 hours of changing the account password."] = "Innerhalb von 48 Stunden nach einer Änderung des Passworts können keine Kanäle gelöscht werden.";
+$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 wieder 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"] = "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["No channel."] = "Kein Kanal.";
+$a->strings["Common connections"] = "Gemeinsame Verbindungen";
+$a->strings["No connections in common."] = "Keine gemeinsamen Verbindungen.";
+$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 sie noch einmal.";
+$a->strings["The error message was:"] = "Die Fehlermeldung war:";
+$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["- select -"] = "– auswählen –";
+$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["%1$.2f MB of %2$.2f MB photo storage used."] = "%1$.2f MB von %2$.2f MB Foto-Speicher belegt.";
+$a->strings["%1$.2f MB photo storage used."] = "%1$.2f MB Foto-Speicher belegt.";
+$a->strings["Upload Photos"] = "Fotos hochladen";
+$a->strings["Enter a new album name"] = "Gib einen Namen für ein neues Album ein";
+$a->strings["or select an existing one (doubleclick)"] = "oder wähle ein bereits vorhandenes aus (Doppelklick)";
+$a->strings["Do not show a status post for this upload"] = "Keine Statusnachricht für diesen Upload senden";
+$a->strings["Album name could not be decoded"] = "Albumname konnte nicht dekodiert werden";
+$a->strings["Contact Photos"] = "Kontakt-Bilder";
+$a->strings["Show Newest First"] = "Zeige Neueste zuerst";
+$a->strings["Show Oldest First"] = "Zeige Älteste zuerst";
+$a->strings["View Photo"] = "Foto ansehen";
+$a->strings["Edit Album"] = "Album bearbeiten";
+$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["Private Photo"] = "Privates Foto";
+$a->strings["View Full Size"] = "In voller Größe anzeigen";
+$a->strings["Remove"] = "Entferne";
+$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["Caption"] = "Bildunterschrift";
+$a->strings["Add a Tag"] = "Schlagwort hinzufügen";
+$a->strings["Example: @bob, @Barbara_Jensen, @jim@example.com"] = "Beispiele: @ben, @Karl_Prester, @lieschen@example.com";
+$a->strings["Flag as adult in album view"] = "In der Albumansicht als nicht jugendfrei markieren";
+$a->strings["In This Photo:"] = "Auf diesem Foto:";
+$a->strings["View Album"] = "Album ansehen";
+$a->strings["Recent Photos"] = "Neueste Fotos";
+$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["Failed to update connection record."] = "Konnte den Verbindungseintrag nicht aktualisieren.";
+$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["New Connections"] = "Neue Verbindungen";
+$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 connection"] = "Verbindung bearbeiten";
+$a->strings["Search your connections"] = "Verbindungen durchsuchen";
+$a->strings["Finding: "] = "Ergebnisse:";
+$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"] = "Neuen Kanal anlegen";
+$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["Default Channel"] = "Standard Kanal";
+$a->strings["Make Default"] = "Zum Standard machen";
+$a->strings["Edit post"] = "Bearbeite Beitrag";
+$a->strings["is now connected to"] = "ist jetzt verbunden mit";
+$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["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";
+$a->strings["Channel has been archived"] = "Kanal wurde archiviert";
+$a->strings["Channel has been unhidden"] = "Kanal wird nicht mehr versteckt";
+$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["Connection has been removed."] = "Verbindung wurde gelöscht.";
+$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["Unblock"] = "Freigeben";
+$a->strings["Block"] = "Blockieren";
+$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"] = "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["Approve this connection"] = "Verbindung genehmigen";
+$a->strings["Accept connection to allow communication"] = "Akzeptiere die Verbindung, um Kommunikation zu ermöglichen";
+$a->strings["Connections: settings for %s"] = "Verbindungseinstellungen für %s";
+$a->strings["Apply these permissions automatically"] = "Diese Berechtigungen automatisch anwenden";
+$a->strings["Apply the permissions indicated on this page to all new connections."] = "Wende die auf dieser Seite gewählten Berechtigungen auf alle neuen Verbindungen an.";
+$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["Contact Information / Notes"] = "Kontaktinformationen / Notizen";
+$a->strings["Edit contact notes"] = "Kontaktnotizen bearbeiten";
+$a->strings["Their Settings"] = "Deren Einstellungen";
+$a->strings["My Settings"] = "Meine Einstellungen";
+$a->strings["Clear/Disable Automatic Permissions"] = "Automatische Berechtigungen abschalten/entfernen";
+$a->strings["Forum Members"] = "Forum Mitglieder";
+$a->strings["Soapbox"] = "Marktschreier";
+$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 globalen <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["View conversations"] = "Unterhaltungen anzeigen";
+$a->strings["Delete contact"] = "Kontakt löschen";
+$a->strings["Last update:"] = "Letzte Aktualisierung:";
+$a->strings["Update public posts"] = "Öffentliche Beiträge aktualisieren";
+$a->strings["Update now"] = "Jetzt aktualisieren";
+$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["OpenID protocol error. No ID returned."] = "OpenID Protokollfehler. Keine ID zurückgegeben.";
+$a->strings["Thing updated"] = "Sache aktualisiert";
+$a->strings["Object store: failed"] = "Speichern des Objekts fehlgeschlagen";
+$a->strings["Thing added"] = "Sache hinzugefügt";
+$a->strings["OBJ: %1\$s %2\$s %3\$s"] = "OBJ: %1\$s %2\$s %3\$s";
+$a->strings["Show Thing"] = "Sache anzeigen";
+$a->strings["item not found."] = "Eintrag nicht gefunden";
+$a->strings["Edit Thing"] = "Sache bearbeiten";
+$a->strings["Select a profile"] = "Wähle ein Profil";
+$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 der Sache, z. B. irgendwas";
+$a->strings["URL of thing (optional)"] = "URL der Sache (optional)";
+$a->strings["URL for photo of thing (optional)"] = "URL eines Fotos der Sache (optional)";
+$a->strings["Add Thing to your Profile"] = "Die Sache Deinem Profil hinzufügen";
+$a->strings["No valid account found."] = "Kein gültiges Konto gefunden.";
+$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["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["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 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["Bookmark added"] = "Lesezeichen hinzugefügt";
+$a->strings["My Bookmarks"] = "Meine Lesezeichen";
+$a->strings["My Connections Bookmarks"] = "Lesezeichen meiner Kontakte";
+$a->strings["This site is not a directory server"] = "Diese Website ist kein Verzeichnis-Server";
+$a->strings["RedMatrix - Guests: Username: {your email address}, Password: +++"] = "RedMatrix – Gäste: Username: {Deine E-Mail-Adresse}, Passwort: +++";
+$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 einen Termin veröffentlicht";
+$a->strings["Item not found"] = "Element nicht gefunden";
+$a->strings["Edit Block"] = "Block bearbeiten";
+$a->strings["Delete block?"] = "Block 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["Delete Block"] = "Block löschen";
+$a->strings["Layout updated."] = "Layout aktualisiert.";
+$a->strings["Edit System Page Description"] = "Systemseitenbeschreibung bearbeiten";
+$a->strings["Layout not found."] = "Layout nicht gefunden.";
+$a->strings["Module Name:"] = "Modulname:";
+$a->strings["Layout Help"] = "Layout-Hilfe";
+$a->strings["Edit Layout"] = "Layout bearbeiten";
+$a->strings["Delete layout?"] = "Layout löschen?";
+$a->strings["Delete Layout"] = "Layout löschen";
+$a->strings["Item is not editable"] = "Element kann nicht bearbeitet werden.";
+$a->strings["Delete item?"] = "Eintrag löschen?";
$a->strings["Name is required"] = "Name ist erforderlich";
$a->strings["Key and Secret are required"] = "Schlüssel und Geheimnis werden benötigt";
$a->strings["Passwords do not match. Password unchanged."] = "Kennwörter stimmen nicht überein. Kennwort nicht verändert.";
@@ -889,12 +1396,12 @@ $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["Consumer Secret"] = "Consumer Secret";
$a->strings["Redirect"] = "Umleitung";
-$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["Redirect URI - leave blank unless your application specifically requires this"] = "Umleitungs-URl – lasse das leer, solange 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.";
$a->strings["Connected Apps"] = "Verbundene Apps";
-$a->strings["Client key starts with"] = "Client key beginnt mit";
+$a->strings["Client key starts with"] = "Client Key beginnt mit";
$a->strings["No name"] = "Kein Name";
$a->strings["Remove authorization"] = "Authorisierung aufheben";
$a->strings["No feature settings configured"] = "Keine Funktions-Einstellungen konfiguriert";
@@ -906,33 +1413,34 @@ $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["Email Address:"] = "Email Adresse:";
$a->strings["Remove Account"] = "Konto entfernen";
+$a->strings["Remove this account from this server including all its channels"] = "Lösche dieses Konto einschließlich aller zugehörigen Kanäle von diesem Server";
$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["%s - (Experimental)"] = "%s - (Experimentell)";
+$a->strings["%s - (Experimental)"] = "%s – (experimentell)";
$a->strings["Display Settings"] = "Anzeige-Einstellungen";
$a->strings["Display Theme:"] = "Anzeige-Theme:";
$a->strings["Mobile Theme:"] = "Mobile Theme:";
+$a->strings["Enable user zoom on mobile devices"] = "Zoom auf Mobilgeräten aktivieren";
$a->strings["Update browser every xx seconds"] = "Browser alle xx Sekunden aktualisieren";
$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["System Page Layout Editor - (advanced)"] = "(Erweiterter) Seitenlayout Editor";
+$a->strings["Link post titles to source"] = "Beitragstitel zum Originalbeitrag verlinken";
+$a->strings["System Page Layout Editor - (advanced)"] = "System-Seitenlayout-Editor (für Experten)";
$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["Approved connections"] = "Erlaubte Verbindung";
-$a->strings["Any connections"] = "Beliebige Verbindung";
+$a->strings["Approved connections"] = "Angenommene Verbindungen";
+$a->strings["Any connections"] = "Beliebige Verbindungen";
$a->strings["Anybody on this website"] = "Jeder auf dieser Website";
$a->strings["Anybody in this network"] = "Alle Red-Nutzer";
$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"] = "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";
@@ -945,44 +1453,89 @@ $a->strings["Use Browser Location:"] = "Standort des Browsers verwenden:";
$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["Your permissions are already configured. Click to view/adjust"] = "Deine Zugriffsrechte sind schon konfiguriert. Klicke hier, um sie zu betrachten oder zu ändern";
$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["Typical - <em>default public, privacy when desired (similar to social network permissions but with improved privacy)</em>"] = "Typisch – <em>Standard ö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>"] = "Privat – <em>Standard privat, nie offen oder öffentlich</em>";
+$a->strings["Blocked - <em>default blocked to/from everybody</em>"] = "Blockiert – <em>Alle standardmäßig blockiert</em>";
+$a->strings["Allow others to tag your posts"] = "Erlaube anderen, Deine Beiträge zu verschlagworten";
$a->strings["Often used by the community to retro-actively flag inappropriate content"] = "Wird oft von der Community genutzt um rückwirkend anstößigen Inhalt zu markieren";
$a->strings["Advanced Privacy Settings"] = "Fortgeschrittene Privatsphäre-Einstellungen";
-$a->strings["Expire other channel content after this many days"] = "Lasse den Inhalt anderer Kanäle nach dieser Anzahl Tage verfallen";
-$a->strings["0 or blank prevents expiration"] = "0 oder Leer verhindern das Verfallen";
+$a->strings["Expire other channel content after this many days"] = "Den Inhalt anderer Kanäle nach dieser Anzahl Tage verfallen lassen";
+$a->strings["0 or blank prevents expiration"] = "0 oder kein Inhalt verhindern das Verfallen";
$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"] = "Standardeinstellungen für Beitrags-Zugriffsrechte";
-$a->strings["(click to open/close)"] = "(zum öffnen/schließen anklicken)";
+$a->strings["Channel permissions category:"] = "Zugriffsrechte-Kategorie des Kanals:";
$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["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"] = "Du eine Kontaktanfrage annimmst";
+$a->strings["accepting a friend request"] = "Du eine Verbindungsanfrage 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 a connection request"] = "Du hast eine Verbindungsanfrage erhalten";
-$a->strings["Your connections are confirmed"] = "Deine Verbindungen wurden bestätigt";
+$a->strings["You receive a connection request"] = "Du eine Verbindungsanfrage erhältst";
+$a->strings["Your connections are confirmed"] = "Eine Verbindung bestätigt wurde";
$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 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["Show visual notifications including:"] = "Visuelle Benachrichtigungen anzeigen für:";
+$a->strings["Unseen matrix activity"] = "Ungesehene Matrix-Aktivität";
+$a->strings["Unseen channel activity"] = "Ungesehene Kanal-Aktivität";
+$a->strings["Unseen private messages"] = "Ungelesene persönliche Nachrichten";
+$a->strings["Recommended"] = "Empfohlen";
+$a->strings["Upcoming events"] = "Baldige Termine";
+$a->strings["Events today"] = "Heutige Termine";
+$a->strings["Upcoming birthdays"] = "Baldige Geburtstage";
+$a->strings["Not available in all themes"] = "Nicht in allen Themes verfügbar";
+$a->strings["System (personal) notifications"] = "System – (persönliche) Benachrichtigungen";
+$a->strings["System info messages"] = "System – Info-Nachrichten";
+$a->strings["System critical alerts"] = "System – kritische Warnungen";
+$a->strings["New connections"] = "Neue Verbindungen";
+$a->strings["System Registrations"] = "System – Registrierungen";
+$a->strings["Notify me of events this many days in advance"] = "Benachrichtige mich zu Terminen so viele Tage im Voraus";
+$a->strings["Must be greater than 0"] = "Muss größer als 0 sein";
$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"] = "Sonstige Einstellungen";
-$a->strings["Personal menu to display in your channel pages"] = "Persönliches Menü zur Anzeige auf den Seiten deines Kanals";
-$a->strings["Remove this channel"] = "Lösche diesen Kanal";
+$a->strings["Personal menu to display in your channel pages"] = "Eigenes Menü zur Anzeige auf den Seiten deines Kanals";
+$a->strings["Remove this channel"] = "Diesen Kanal löschen";
+$a->strings["Edit Webpage"] = "Webseite bearbeiten";
+$a->strings["Delete webpage?"] = "Webseite löschen?";
+$a->strings["Delete Webpage"] = "Webseite löschen";
+$a->strings["webpage"] = "Webseite";
+$a->strings["block"] = "Block";
+$a->strings["layout"] = "Layout";
+$a->strings["%s element installed"] = "Element für %s installiert";
+$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, 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.";
+$a->strings["Upload File:"] = "Datei hochladen:";
+$a->strings["Select a profile:"] = "Wähle ein Profil:";
+$a->strings["Upload Profile Photo"] = "Lade neues Profilfoto hoch";
+$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 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["Contact not found."] = "Kontakt nicht gefunden";
+$a->strings["Friend suggestion sent."] = "Freundschaftsempfehlung senden.";
+$a->strings["Suggest Friends"] = "Kontakte vorschlagen";
+$a->strings["Suggest a friend for %s"] = "Schlage %s einen Kontakt vor";
$a->strings["Permission Denied."] = "Zugriff verweigert.";
$a->strings["File not found."] = "Datei nicht gefunden.";
$a->strings["Edit file permissions"] = "Dateiberechtigungen bearbeiten";
@@ -991,24 +1544,54 @@ $a->strings["Include all files and sub folders"] = "Alle Dateien und Unterverzei
$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["Channel not found."] = "Kanal nicht gefunden.";
-$a->strings["Red Matrix - &quot;The Network&quot;"] = "Red Matrix - &quot;Das Netzwerk&quot;";
-$a->strings["Welcome to %s"] = "Willkommen auf %s";
-$a->strings["Fetching URL returns error: %1\$s"] = "Abrufen der URL gab einen Fehler zurück: %1\$s";
-$a->strings["[Embedded content - reload page to view]"] = "[Eingebettete Inhalte – lade die Seite neu, um sie anzuzeigen]";
-$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["Channel Name"] = "Name des Kanals";
-$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["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["Help:"] = "Hilfe:";
+$a->strings["Not Found"] = "Nicht gefunden";
+$a->strings["network"] = "Netzwerk";
+$a->strings["Channel added."] = "Kanal hinzugefügt.";
+$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 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["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["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["Your service plan only allows %d channels."] = "Dein Vertrag erlaubt nur %d Kanäle.";
+$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 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 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 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"] = "Deine alte Login-E-Mail-Adresse";
+$a->strings["Your old login password"] = "Dein altes Passwort";
+$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["Import existing posts if possible"] = "Existierende Beiträge importieren, falls möglich";
+$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["Tag removed"] = "Schlagwort entfernt";
+$a->strings["Remove Item Tag"] = "Schlagwort entfernen";
+$a->strings["Select a tag to remove: "] = "Schlagwort zum Entfernen auswählen:";
$a->strings["Theme settings updated."] = "Theme-Einstellungen aktualisiert.";
$a->strings["Site"] = "Seite";
$a->strings["Accounts"] = "Konten";
@@ -1016,6 +1599,7 @@ $a->strings["Channels"] = "Kanäle";
$a->strings["Plugins"] = "Plug-Ins";
$a->strings["Themes"] = "Themes";
$a->strings["Server"] = "Server";
+$a->strings["Profile Config"] = "Profilkonfiguration";
$a->strings["DB updates"] = "DB-Aktualisierungen";
$a->strings["Logs"] = "Protokolle";
$a->strings["Plugin Features"] = "Plug-In Funktionen";
@@ -1028,13 +1612,14 @@ $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["mobile"] = "mobil";
+$a->strings["experimental"] = "experimentell";
+$a->strings["unsupported"] = "nicht unterstützt";
$a->strings["Yes - with approval"] = "Ja - mit Zustimmung";
-$a->strings["My site is not a public server"] = "Meine Seite ist kein öffentlicher Server";
-$a->strings["My site has paid access only"] = "Meine Seite erlaubt nur bezahlten Zugang";
-$a->strings["My site has free access only"] = "Meine Seite erlaubt ausschließlich freien Zugang";
-$a->strings["My site offers free accounts with optional paid upgrades"] = "Meine Seite bietet freie Accounts mit der Möglichkeit von bezahlten Upgrades";
-$a->strings["Registration"] = "Registrierung";
+$a->strings["My site is not a public server"] = "Mein Server ist kein öffentlicher Server";
+$a->strings["My site has paid access only"] = "Mein Server erlaubt nur bezahlten Zugang";
+$a->strings["My site has free access only"] = "Mein Server erlaubt ausschließlich freien Zugang";
+$a->strings["My site offers free accounts with optional paid upgrades"] = "Mein Server bietet kostenlose Konten mit der Möglichkeit zu bezahlten Upgrades";
$a->strings["File upload"] = "Dateiupload";
$a->strings["Policies"] = "Richtlinien";
$a->strings["Site name"] = "Seitenname";
@@ -1046,14 +1631,14 @@ $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["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["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["Enable Diaspora Protocol"] = "Diaspora-Protokoll aktivieren";
+$a->strings["Communicate with Diaspora and Friendica - experimental"] = "Kommunikation mit Diaspora und Friendica – experimentell";
+$a->strings["Allow Feeds as Connections"] = "Feeds als Verbindungen erlauben";
+$a->strings["(Heavy system resource usage)"] = "(führt zu hoher Systemlast)";
$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 hochgeladener Bilder in Bytes. Standard ist 0 (keine Einschränkung).";
-$a->strings["Does this site allow new member registration?"] = "Erlaubt diese Seite die Registrierung neuer Nutzer?";
-$a->strings["Which best describes the types of account offered by this hub?"] = "Wie lautet die passenste Beschreibung der Accounts auf diesem Hub?";
+$a->strings["Does this site allow new member registration?"] = "Erlaubt dieser Server die Registrierung neuer Nutzer?";
+$a->strings["Which best describes the types of account offered by this hub?"] = "Was ist die passendste Beschreibung der Konten auf diesem Hub?";
$a->strings["Register text"] = "Registrierungstext";
$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";
@@ -1064,10 +1649,12 @@ $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."] = "Zugriff auf sonst öffentliche persönliche Seiten blockieren, wenn man nicht eingeloggt ist.";
+$a->strings["Verify Email Addresses"] = "E-Mail-Adressen überprüfen";
+$a->strings["Check to verify email addresses used in account registration (recommended)."] = "Aktivieren, um die Überprüfung von E-Mail-Adressen bei der Registrierung von Benutzerkonten zu aktivieren (empfohlen).";
$a->strings["Force publish"] = "Veröffentlichung 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["Disable discovery tab"] = "Den „Entdecken“-Reiter ausblenden";
-$a->strings["Remove the tab in the network view with public content pulled from sources chosen for this site."] = "Entferne den „Entdecken“-Reiter aus der Matrix-Seite, in dem öffentliche Inhalte von anderen RedMatrix-Hubs angezeigt werden können.";
+$a->strings["Remove the tab in the network view with public content pulled from sources chosen for this site."] = "Entferne den „Entdecken“-Reiter aus der Matrix-Seite, in dem öffentliche Inhalte angezeigt werden, die von anderen RedMatrix-Hubs geholt wurden.";
$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)."] = "Aktivieren, 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";
@@ -1103,7 +1690,6 @@ $a->strings["%s user deleted"] = array(
1 => "%s Nutzer gelöscht",
);
$a->strings["Account not found"] = "Konto nicht gefunden";
-$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["Users"] = "Benutzer";
@@ -1113,8 +1699,6 @@ $a->strings["Request date"] = "Antragsdatum";
$a->strings["No registrations."] = "Keine Registrierungen.";
$a->strings["Approve"] = "Genehmigen";
$a->strings["Deny"] = "Verweigern";
-$a->strings["Block"] = "Blockieren";
-$a->strings["Unblock"] = "Freigeben";
$a->strings["Register date"] = "Registrierungs-Datum";
$a->strings["Last login"] = "Letzte Anmeldung";
$a->strings["Expires"] = "Verfällt";
@@ -1122,8 +1706,8 @@ $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?"] = "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["%s channel censored/uncensored"] = array(
- 0 => "%s Kanal zensiert/unzensiert",
- 1 => "%s Kanäle zensiert/unzensiert",
+ 0 => "%s Kanal gesperrt/freigegeben",
+ 1 => "%s Kanäle gesperrt/freigegeben",
);
$a->strings["%s channel deleted"] = array(
0 => "%s Kanal gelöscht",
@@ -1136,9 +1720,8 @@ $a->strings["Channel '%s' censored"] = "Kanal '%s' gesperrt";
$a->strings["Censor"] = "Sperren";
$a->strings["Uncensor"] = "Freigeben";
$a->strings["UID"] = "UID";
-$a->strings["Address"] = "Adresse";
-$a->strings["Selected channels will be deleted!\\n\\nEverything that was posted in these channels on this site will be permanently deleted!\\n\\nAre you sure?"] = "Alle ausgewählte Kanäle werden gelöscht!\\n\\nAlles was von diesen Kanälen auf dieser Seite geschrieben wurde, wird dauerhaft gelöscht!\\n\\nBist du dir sicher?";
-$a->strings["The channel {0} will be deleted!\\n\\nEverything that was posted in this channel on this site will be permanently deleted!\\n\\nAre you sure?"] = "Der Kanal {0} wird gelöscht!\\n\\nAlles was von diesem Kanal auf dieser Seite geschrieben wurde, wird gelöscht!\\n\\nBist du dir sicher?";
+$a->strings["Selected channels will be deleted!\\n\\nEverything that was posted in these channels on this site will be permanently deleted!\\n\\nAre you sure?"] = "Alle ausgewählten Kanäle werden gelöscht!\\n\\nAlles was von diesen Kanälen auf diesem Server geschrieben wurde, wird dauerhaft gelöscht!\\n\\nBist Du sicher?";
+$a->strings["The channel {0} will be deleted!\\n\\nEverything that was posted in this channel on this site will be permanently deleted!\\n\\nAre you sure?"] = "Der Kanal {0} wird gelöscht!\\n\\nAlles was von diesem Kanal auf diesem Server geschrieben wurde, wird gelöscht!\\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";
@@ -1156,319 +1739,31 @@ $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["Log level"] = "Protokollstufe";
-$a->strings["- select -"] = "– auswählen –";
-$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["Failed to update connection record."] = "Konnte den Verbindungseintrag nicht aktualisieren.";
-$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["New Connections"] = "Neue Verbindungen";
-$a->strings["Show pending (new) connections"] = "Zeige ausstehende (neue) Verbindungsanfragen";
-$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["Public access denied."] = "Öffentlicher Zugang verweigert.";
-$a->strings["Age: "] = "Alter:";
-$a->strings["Gender: "] = "Geschlecht:";
-$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["Not found."] = "Nicht gefunden.";
-$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["Remove"] = "Entferne";
-$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["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["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["Modify"] = "Ändern";
-$a->strings["%1\$s is following %2\$s's %3\$s"] = "%1\$s folgt nun %2\$ss %3\$s";
-$a->strings["Please login."] = "Bitte melde dich an.";
-$a->strings["Set your current mood and tell your friends"] = "Wähle Deine aktuelle Stimmung und teile sie mit Deinen Freunden";
-$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["Select a bookmark folder"] = "Wähle einen Lesezeichenordner";
-$a->strings["Save Bookmark"] = "Speichere Lesezeichen";
-$a->strings["URL of bookmark"] = "URL des Lesezeichens";
-$a->strings["Description"] = "Beschreibung";
-$a->strings["Or enter new bookmark folder name"] = "Oder gib einen neuen Namen für den Lesezeichenordner ein";
-$a->strings["Layout updated."] = "Layout aktualisiert.";
-$a->strings["Edit System Page Description"] = "Systemseitenbeschreibung editieren";
-$a->strings["Layout not found."] = "Layout nicht gefunden.";
-$a->strings["Module Name:"] = "Modulname:";
-$a->strings["Layout Help"] = "Layout-Hilfe";
-$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, 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.";
-$a->strings["Upload File:"] = "Datei hochladen:";
-$a->strings["Select a profile:"] = "Wählen Sie ein Profil:";
-$a->strings["Upload Profile Photo"] = "Lade neues Profilfoto hoch";
-$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 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["network"] = "Netzwerk";
-$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["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["Invalid item."] = "Ungültiges Element.";
-$a->strings["Page not found."] = "Seite nicht gefunden.";
-$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["Wall Photos"] = "Wall Fotos";
-$a->strings["OpenID protocol error. No ID returned."] = "OpenID Protokollfehler. Keine ID zurückgegeben.";
-$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["is now connected to"] = "ist jetzt verbunden mit";
-$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["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";
-$a->strings["Channel has been archived"] = "Kanal wurde archiviert";
-$a->strings["Channel has been unhidden"] = "Kanal wird nicht mehr versteckt";
-$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["Connection has been removed."] = "Verbindung wurde entfernt.";
-$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 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"] = "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["Approve this connection"] = "Verbindung genehmigen";
-$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 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["Contact Information / Notes"] = "Kontaktinformationen / Notizen";
-$a->strings["Edit contact notes"] = "Kontaktnotizen bearbeiten";
-$a->strings["Their Settings"] = "Deren Einstellungen";
-$a->strings["My Settings"] = "Meine Einstellungen";
-$a->strings["Clear/Disable Automatic Permissions"] = "Automatische Berechtigungen abschalten/entfernen";
-$a->strings["Forum Members"] = "Forum Mitglieder";
-$a->strings["Soapbox"] = "Marktschreier";
-$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["View conversations"] = "Unterhaltungen anzeigen";
-$a->strings["Delete contact"] = "Kontakt löschen";
-$a->strings["Last update:"] = "Letzte Aktualisierung:";
-$a->strings["Update public posts"] = "Öffentliche Beiträge aktualisieren";
-$a->strings["Update now"] = "Jetzt aktualisieren";
-$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["Messages"] = "Nachrichten";
-$a->strings["Conversation removed."] = "Unterhaltung gelöscht.";
-$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["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["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["Next"] = "Nächste";
-$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 %s under the Red top level folder."] = "Um diese kompilierten Vorlagen speichern zu können braucht der Web-Server Schreibzugriff auf das Verzeichnis %s unterhalb des Red-Installationsverzeichnisses.";
-$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 %s only--not the template files (.tpl) that it contains."] = " Hinweis: Aus Sicherheitsgründen sollte der Web-Server nur auf %s Schreibrechte haben, nicht in der restlichen Red-Installation.";
-$a->strings["%s is writable"] = "%s 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 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["If you have https access to your website or allow connections to TCP port 443 (the https: port), you MUST use a browser-valid certificate. You MUST NOT use self-signed certificates!"] = "Wenn Du über HTTPS-Protokoll auf Deine Seite zugreifen möchtest, also Verbindungen über den Port 443 möglich sein sollen, ist ein allgemein gültiges digitales SSL-Zertifikat einer Zertifizierungsstelle (CA) notwendig, welches Dein Browser akzeptiert. Die Verwendung eines selbst signierten Zertifikates ist nicht möglich.";
-$a->strings["This restriction is incorporated because public posts from you may for example contain references to images on your own hub."] = "Diese Einschränkung wurde eingebaut, weil Deine öffentlichen Beiträge zum Beispiel Verweise auf Bilder in Deinem eigenen Hub enthalten können.";
-$a->strings["If your certificate is not recognized, members of other sites (who may themselves have valid certificates) will get a warning message on their own site complaining about security issues."] = "Wenn Dein Zertifikat nicht von jedem Browser akzeptiert wird, erhalten die Mitglieder anderer Red-Server (die mit korrekten Zertifikate ausgestattet sind) Sicherheits-Warnmeldungen, obwohl sie gar nicht direkt auf Deinem Server unterwegs sind (zum Beispiel, wenn ein Bild aus einem Deiner Beiträge angezeigt wird).";
-$a->strings["This can cause usability issues elsewhere (not just on your own site) so we must insist on this requirement."] = "Dies kann Probleme an anderer Stelle (nicht nur auf Ihrer eigenen Website) verursachen, so dass wir auf dieser Forderung bestehen müssen.. ";
-$a->strings["Providers are available that issue free certificates which are browser-valid."] = "Einige Provider stellen kostenlos gültige Browser-Zertifikate aus.";
-$a->strings["SSL certificate validation"] = "SSL Zertifikatverifizierung";
-$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["Hub not found."] = "Server nicht gefunden.";
+$a->strings["New Profile Field"] = "Neues Profilfeld";
+$a->strings["Field nickname"] = "Kurzname für das Feld";
+$a->strings["System name of field"] = "Systemname des Feldes";
+$a->strings["Input type"] = "Art des Inhalts";
+$a->strings["Field Name"] = "Feldname";
+$a->strings["Label on profile pages"] = "Bezeichnung auf Profilseiten";
+$a->strings["Help text"] = "Hilfetext";
+$a->strings["Additional info (optional)"] = "Zusätzliche Informationen (optional)";
+$a->strings["Field definition not found"] = "Feld-Definition nicht gefunden";
+$a->strings["Edit Profile Field"] = "Profilfeld bearbeiten";
+$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["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["Like/Dislike"] = "Mögen/Nicht mögen";
+$a->strings["This action is restricted to members."] = "Diese Aktion kann nur von Mitgliedern ausgeführt werden.";
+$a->strings["Please <a href=\"rmagic\">login with your RedMatrix ID</a> or <a href=\"register\">register as a new RedMatrix member</a> to continue."] = "Bitte <a href=\"rmagic\">melde Dich mit Deiner RedMatrix-ID an</a> oder <a href=\"register\">registriere Dich als neues Mitglied der RedMatrix</a>, um fortzufahren.";
+$a->strings["Invalid request."] = "Ungültige Anfrage.";
+$a->strings["thing"] = "Sache";
+$a->strings["Channel unavailable."] = "Kanal nicht vorhanden.";
+$a->strings["Previous action reversed."] = "Die vorherige Aktion wurde rückgängig gemacht.";
+$a->strings["Action completed."] = "Aktion durchgeführt.";
+$a->strings["Thank you."] = "Vielen Dank.";
$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"] = "Schließe Dich uns an und werde Teil der Red-Matrix";
@@ -1482,204 +1777,30 @@ $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 decentralized communication and information tool."] = "Du bist herzlich eingeladen, mir und einigen anderen guten Freunden in die RedMatrix zu folgen – ein revolutionär neues und dezentrales 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 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, besuche http://getzot.com";
-$a->strings["Thing updated"] = "Ding aktualisiert";
-$a->strings["Object store: failed"] = "Speichern des Objekts fehlgeschlagen";
-$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["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["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["Unable to find your hub."] = "Konnte Deinen Server nicht finden.";
-$a->strings["Post successful."] = "Veröffentlichung erfolgreich.";
-$a->strings["Help:"] = "Hilfe:";
-$a->strings["Not Found"] = "Nicht gefunden";
+$a->strings["Please join my community on RedMatrix."] = "Schließe Dich uns in der RedMatrix an!";
+$a->strings["You will need to supply this invitation code: "] = "Gib diesen Invite-Code ein:";
+$a->strings["1. Register at any RedMatrix location (they are all inter-connected)"] = "1. Registriere Dich auf irgendeinem RedMatrix-Server (sie sind alle miteinander verbunden)";
+$a->strings["2. Enter my RedMatrix network address into the site searchbar."] = "2. Gib meine RedMatrix-Adresse im Suchfeld ein.";
+$a->strings["or visit "] = "oder besuche";
+$a->strings["3. Click [Connect]"] = "3. Klicke auf [Verbinden]";
+$a->strings["Location not found."] = "Klon nicht gefunden.";
+$a->strings["Primary location cannot be removed."] = "Der primäre Klon kann nicht gelöscht werden.";
+$a->strings["No locations found."] = "Keine Klon-Adressen gefunden";
+$a->strings["Manage Channel Locations"] = "Klon-Adressen verwalten";
+$a->strings["Location (address)"] = "URL (Adresse)";
+$a->strings["Primary Location"] = "Primärer Klon";
+$a->strings["Drop location"] = "Klon löschen";
+$a->strings["[Embedded content - reload page to view]"] = "[Eingebettete Inhalte – lade die Seite neu, um sie anzuzeigen]";
+$a->strings["Help with this feature"] = "Hilfe zu dieser Funktion";
+$a->strings["Layout Name"] = "Layout-Name";
+$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["No connections."] = "Keine Verbindungen.";
$a->strings["Visit %s's profile [%s]"] = "%ss Profil [%s] besuchen";
$a->strings["View Connnections"] = "Zeige Verbindungen";
-$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["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["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["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["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["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["No potential page delegates located."] = "Keine potentiellen Bevollmächtigten für die Seite gefunden.";
-$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["Continue"] = "Fortfahren";
-$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["Contact not found."] = "Kontakt nicht gefunden";
-$a->strings["Friend suggestion sent."] = "Freundschaftsempfehlung senden.";
-$a->strings["Suggest Friends"] = "Kontakte vorschlagen";
-$a->strings["Suggest a friend for %s"] = "Schlage %s einen Kontakt vor";
-$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["Default Channel"] = "Standard Kanal";
-$a->strings["Make Default"] = "Zum Standard machen";
-$a->strings["Channel removals are not allowed within 48 hours of changing the account password."] = "Innerhalb von 48 Stunden nach einer Änderung des Passworts können keine Kanäle gelöscht werden.";
-$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"] = "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["Item not found"] = "Element nicht gefunden";
-$a->strings["Item is not editable"] = "Element kann nicht bearbeitet werden.";
-$a->strings["Edit post"] = "Bearbeite Beitrag";
-$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["Edit Webpage"] = "Webseite bearbeiten";
-$a->strings["Delete webpage?"] = "Webseite löschen?";
-$a->strings["Delete Webpage"] = "Webseite löschen";
-$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["Make this post private"] = "Diesen Beitrag privat machen";
-$a->strings["Block Name"] = "Block-Name";
-$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["Tag removed"] = "Schlagwort entfernt";
-$a->strings["Remove Item Tag"] = "Schlagwort entfernen";
-$a->strings["Select a tag to remove: "] = "Schlagwort zum Entfernen auswählen:";
-$a->strings["Item not available."] = "Element nicht verfügbar.";
-$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["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["Red Matrix - Guests: Username: {your email address}, Password: +++"] = "Red-Matrix-Gäste: Nutzername: {Deine E-Mail-Adresse}; Passwort: +++";
-$a->strings["Away"] = "Abwesend";
-$a->strings["Online"] = "Online";
-$a->strings["Finding:"] = "Ergebnisse:";
-$a->strings["No entries (some entries may be hidden)."] = "Keine Einträge gefunden (einige könnten versteckt sein).";
-$a->strings["Profile Match"] = "Profil-Ãœbereinstimmungen";
-$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["This site is not a directory server"] = "Diese Website ist kein Verzeichnis-Server";
-$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 decentralized privacy enhanced websites."] = "Dieser Hub ist Teil der RedMatrix – eines globalen, kooperativen Netzwerks aus dezentralen Websites, die Rücksicht auf Deine Privatsphäre nehmen.";
-$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["App installed."] = "App installiert!";
-$a->strings["Malformed app."] = "Fehlerhafte App.";
-$a->strings["Embed code"] = "Code einbetten";
-$a->strings["Edit App"] = "Editiere App";
-$a->strings["Create App"] = "Erstelle App";
-$a->strings["Name of app"] = "Name der App";
-$a->strings["Required"] = "Benötigt";
-$a->strings["Location (URL) of app"] = "Ort (URL) der App";
-$a->strings["Photo icon URL"] = "URL zum Foto";
-$a->strings["80 x 80 pixels - optional"] = "80 x 80 Pixel - Optional";
-$a->strings["Version ID"] = "Versions ID";
-$a->strings["Price of app"] = "Preis der App";
-$a->strings["Location (URL) to purchase app"] = "Ort (URL) um die App zu kaufen";
-$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["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["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["Location"] = "Ort";
-$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 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 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 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 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["invalid target signature"] = "Ungültige Signatur des Ziels";
+$a->strings["Hub not found."] = "Server nicht gefunden.";
+$a->strings["Total votes"] = "Stimmen gesamt";
+$a->strings["Average Rating"] = "Durchschnittliche Bewertung";
$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.";
@@ -1691,145 +1812,157 @@ $a->strings["To:"] = "An:";
$a->strings["Subject:"] = "Betreff:";
$a->strings["Send"] = "Absenden";
$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["You must be logged in to see this page."] = "Du musst angemeldet sein, um diese Seite betrachten zu können.";
-$a->strings["Insufficient permissions. Request redirected to profile page."] = "Unzureichende Zugriffsrechte. Die Anfrage wurde zur Profil-Seite umgeleitet.";
-$a->strings["Profile not found."] = "Profil nicht gefunden.";
-$a->strings["Profile deleted."] = "Profil gelöscht.";
-$a->strings["Profile-"] = "Profil-";
-$a->strings["New profile created."] = "Neues Profil erstellt.";
-$a->strings["Profile unavailable to clone."] = "Profil kann nicht geklont werden.";
-$a->strings["Profile unavailable to export."] = "Dieses Profil kann nicht exportiert 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";
-$a->strings["Dislikes"] = "Gefällt nicht";
-$a->strings["Work/Employment"] = "Arbeit/Anstellung";
-$a->strings["Religion"] = "Religion";
-$a->strings["Political Views"] = "Politische Ansichten";
-$a->strings["Gender"] = "Geschlecht";
-$a->strings["Sexual Preference"] = "Sexuelle Orientierung";
-$a->strings["Homepage"] = "Webseite";
-$a->strings["Interests"] = "Hobbys/Interessen";
-$a->strings["Profile updated."] = "Profil aktualisiert.";
-$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";
-$a->strings["Create a new profile using these settings"] = "Neues Profil anlegen und diese Einstellungen übernehmen";
-$a->strings["Clone this profile"] = "Dieses Profil klonen";
-$a->strings["Delete this profile"] = "Dieses Profil löschen";
-$a->strings["Import profile from file"] = "Profil aus einer Datei importieren";
-$a->strings["Export profile to file"] = "Profil in eine Datei exportieren";
-$a->strings["Profile Name:"] = "Profilname:";
-$a->strings["Your Full Name:"] = "Dein voller Name:";
-$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["<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";
-$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: 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 Kanäle";
-$a->strings["Musical interests"] = "Musikalische Interessen";
-$a->strings["Books, literature"] = "Bücher, Literatur";
-$a->strings["Television"] = "Fernsehen";
-$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 default profile."] = "Das ist Dein Standardprofil";
-$a->strings["Edit/Manage Profiles"] = "Profile bearbeiten/verwalten";
-$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["Bookmark added"] = "Lesezeichen hinzugefügt";
-$a->strings["My Bookmarks"] = "Meine Lesezeichen";
-$a->strings["My Connections Bookmarks"] = "Lesezeichen meiner Kontakte";
-$a->strings["No channel."] = "Kein Kanal.";
-$a->strings["Common connections"] = "Gemeinsame Verbindungen";
-$a->strings["No connections in common."] = "Keine gemeinsamen Verbindungen.";
-$a->strings["Like/Dislike"] = "Mögen/Nicht mögen";
-$a->strings["This action is restricted to members."] = "Diese Aktion kann nur von Mitgliedern ausgeführt werden.";
-$a->strings["Please <a href=\"rmagic\">login with your RedMatrix ID</a> or <a href=\"register\">register as a new RedMatrix member</a> to continue."] = "Bitte <a href=\"rmagic\">melde Dich mit Deiner RedMatrix-ID an</a> oder <a href=\"register\">registriere Dich als neues Mitglied der RedMatrix</a>, um fortzufahren.";
-$a->strings["Invalid request."] = "Ungültige Anfrage.";
-$a->strings["thing"] = "Sache";
-$a->strings["Channel unavailable."] = "Kanal nicht vorhanden.";
-$a->strings["Previous action reversed."] = "Die vorherige Aktion wurde rückgängig gemacht.";
-$a->strings["Action completed."] = "Aktion durchgeführt.";
-$a->strings["Thank you."] = "Vielen Dank.";
-$a->strings["No more system notifications."] = "Keine System-Benachrichtigungen mehr.";
-$a->strings["System Notifications"] = "System-Benachrichtigungen";
-$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["Room not found"] = "Chatraum konnte nicht gefunden werden.";
-$a->strings["Leave Room"] = "Raum verlassen";
-$a->strings["Delete This Room"] = "Diesen Raum löschen";
-$a->strings["I am away right now"] = "Ich bin gerade nicht da";
-$a->strings["I am online"] = "Ich bin online";
-$a->strings["Bookmark this room"] = "Lesezeichen für diesen Raum";
-$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["Event title and start time are required."] = "Veranstaltungs- Titel und Startzeit sind erforderlich.";
-$a->strings["Event not found."] = "Termin nicht gefunden.";
-$a->strings["l, F j"] = "l, F j";
-$a->strings["Edit event"] = "Veranstaltung bearbeiten";
-$a->strings["Create New Event"] = "Neue Veranstaltung erstellen";
-$a->strings["Previous"] = "Voriges";
-$a->strings["hour:minute"] = "Stunde:Minute";
-$a->strings["Event details"] = "Veranstaltungs-Details";
-$a->strings["Format is %s %s. Starting date and Title are required."] = "Format ist %s %s. Startzeit und Titel sind erforderlich.";
-$a->strings["Event Starts:"] = "Veranstaltung startet:";
-$a->strings["Finish date/time is not known or not relevant"] = "Ende Datum/Zeit sind unbekannt oder unwichtig";
-$a->strings["Event Finishes:"] = "Veranstaltung endet:";
-$a->strings["Adjust for viewer timezone"] = "An die Zeitzone des Betrachters anpassen";
-$a->strings["Description:"] = "Beschreibung:";
-$a->strings["Title:"] = "Titel:";
-$a->strings["Share this event"] = "Die Veranstaltung teilen";
+$a->strings["Wall Photos"] = "Wall Fotos";
+$a->strings["Profile Match"] = "Profil-Ãœbereinstimmungen";
+$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["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["Bookmarks allowed"] = "Lesezeichen erlaubt";
+$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["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["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->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["Channel Type"] = "Kanaltyp";
+$a->strings["Please choose a channel type (such as social networking or community forum) and privacy requirements so we can select the best permissions for you"] = "Wähle einen Kanaltyp (wie Soziales Netzwerk oder Forum) und Privatsphäre-Vorgaben, so dass wir die passenden Kanal-Zugriffsrechte für Dich setzen können";
+$a->strings["Red Matrix - &quot;The Network&quot;"] = "RedMatrix – &quot;Das Netzwerk&quot;";
+$a->strings["Welcome to %s"] = "Willkommen auf %s";
$a->strings["Invalid request identifier."] = "Ungültiger Anfrage-Identifikator.";
$a->strings["Discard"] = "Verwerfen";
-$a->strings["No valid account found."] = "Kein gültiges Konto gefunden.";
-$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["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["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["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 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["Help with this feature"] = "Hilfe zu dieser Funktion";
-$a->strings["Layout Name"] = "Layout-Name";
-$a->strings["Edit Block"] = "Block bearbeiten";
-$a->strings["Delete block?"] = "Block löschen?";
-$a->strings["Delete Block"] = "Block löschen";
-$a->strings["Edit Layout"] = "Layout bearbeiten";
-$a->strings["Delete layout?"] = "Layout löschen?";
-$a->strings["Delete Layout"] = "Layout löschen";
-$a->strings["Channel added."] = "Kanal hinzugefügt.";
+$a->strings["No more system notifications."] = "Keine System-Benachrichtigungen mehr.";
+$a->strings["System Notifications"] = "System-Benachrichtigungen";
+$a->strings["Xchan Lookup"] = "Xchan-Suche";
+$a->strings["Lookup xchan beginning with (or webbie): "] = "Nach xchans oder Webbies (Kanal-Adressen) suchen, die wie folgt beginnen:";
+$a->strings["Unable to find your hub."] = "Konnte Deinen Server nicht finden.";
+$a->strings["Post successful."] = "Veröffentlichung erfolgreich.";
+$a->strings["invalid target signature"] = "Ungültige Signatur des Ziels";
+$a->strings["App installed."] = "App installiert.";
+$a->strings["Malformed app."] = "Fehlerhafte App.";
+$a->strings["Embed code"] = "Code einbetten";
+$a->strings["Edit App"] = "App bearbeiten";
+$a->strings["Create App"] = "App erstellen";
+$a->strings["Name of app"] = "Name der App";
+$a->strings["Location (URL) of app"] = "Ort (URL) der App";
+$a->strings["Photo icon URL"] = "URL zum Icon";
+$a->strings["80 x 80 pixels - optional"] = "80 x 80 Pixel – optional";
+$a->strings["Version ID"] = "Versions-ID";
+$a->strings["Price of app"] = "Preis der App";
+$a->strings["Location (URL) to purchase app"] = "Ort (URL), um die App zu kaufen";
+$a->strings["Poll"] = "Umfrage";
+$a->strings["View Results"] = "Ergebnisse";
+$a->strings["Account removals are not allowed within 48 hours of changing the account password."] = "Das Löschen von Konten innerhalb 48 Stunden nachdem deren Passwort geändert wurde ist nicht erlaubt.";
+$a->strings["Remove This Account"] = "Dieses Konto löschen";
+$a->strings["This will completely remove this account including all its channels from the network. Once this has been done it is not recoverable."] = "Hiermit wird dieses Nutzerkonto einschließlich all seiner Kanäle komplett aus dem Netzwerk entfernt. Dieser Vorgang kann nicht rückgängig gemacht werden.";
+$a->strings["Remove this account, all its channels and all its channel clones from the network"] = "Dieses Konto, all seine Kanäle sowie alle Kanal-Klone aus dem Netzwerk löschen";
+$a->strings["By default only the instances of the channels located on this hub will be removed from the network"] = "Standardmäßig werden nur die Kanalklone auf diesem RedMatrix-Hub aus dem Netzwerk entfernt";
+$a->strings["No service class restrictions found."] = "Keine Dienstklassenbeschränkungen gefunden.";
+$a->strings["Schema Default"] = "Standard-Schema";
+$a->strings["Sans-Serif"] = "Sans-Serif";
+$a->strings["Monospace"] = "Monospace";
+$a->strings["Theme settings"] = "Theme-Einstellungen";
+$a->strings["Set scheme"] = "Schema";
+$a->strings["Set font-size for posts and comments"] = "Schriftgröße für Beiträge und Kommentare";
+$a->strings["Set font face"] = "Schriftart";
+$a->strings["Set iconset"] = "Iconset";
+$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 color, 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"] = "Zeilenhöhe in Beiträgen und Kommentaren";
+$a->strings["Set background image"] = "Hintergrundbild";
+$a->strings["Set background attachment"] = "Hintergrunddatei";
+$a->strings["Set background color"] = "Hintergrundfarbe";
+$a->strings["Set section background image"] = "Hintergrundbild für die Section";
+$a->strings["Set section background color"] = "Hintergrundfarbe für die Section";
+$a->strings["Set color of items - use hex"] = "Farbe für Beiträge – Hex benutzen";
+$a->strings["Set color of links - use hex"] = "Farbe für Links – Hex benutzen";
+$a->strings["Set max-width for items. Default 400px"] = "Maximale Breite von Beiträgen (Default 400px)";
+$a->strings["Set min-width for items. Default 240px"] = "Minimale Breite von Beiträgen (Default 240px)";
+$a->strings["Set the generic content wrapper width. Default 48%"] = "Breite des \"generic content wrapper\" (Default 48%)";
+$a->strings["Set color of fonts - use hex"] = "Schriftfarbe – Hex benutzen";
+$a->strings["Set background-size element"] = "Größe des Hintergrund-Elements";
+$a->strings["Item opacity"] = "Deckkraft der Beiträge";
+$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";
+$a->strings["Item float"] = "Beitragsfluss";
+$a->strings["Left offset of the section element"] = "Linker Rand des Section Elements";
+$a->strings["Right offset of the section element"] = "Rechter Rand des Section Elements";
+$a->strings["Section width"] = "Breite der Section";
+$a->strings["Left offset of the aside"] = "Linker Rand des Aside-Elements";
+$a->strings["Right offset of the aside element"] = "Rechter Rand des Aside-Elements";
+$a->strings["None"] = "Kein";
+$a->strings["Header image"] = "Titelbild";
+$a->strings["Header image only on profile pages"] = "Titelbild nur auf Profil-Seiten anzeigen";
+$a->strings["Light (Red Matrix default)"] = "Hell (RedMatrix-Voreinstellung)";
+$a->strings["Narrow navbar"] = "Schmale Navigationsleiste";
+$a->strings["Navigation bar background color"] = "Hintergrundfarbe der Navigationsleiste";
+$a->strings["Navigation bar gradient top color"] = "Farbverlauf der Navigationsleiste: Farbe oben";
+$a->strings["Navigation bar gradient bottom color"] = "Farbverlauf der Navigationsleiste: Farbe unten";
+$a->strings["Navigation active button gradient top color"] = "Navigations-Button aktiv: Farbe für Farbverlauf oben";
+$a->strings["Navigation active button gradient bottom color"] = "Navigations-Button aktiv: Farbe für Farbverlauf unten";
+$a->strings["Navigation bar border color "] = "Farbe für den Rand der Navigationsleiste";
+$a->strings["Navigation bar icon color "] = "Farbe für die Icons der Navigationsleiste";
+$a->strings["Navigation bar active icon color "] = "Farbe für aktive Icons der Navigationsleiste";
+$a->strings["link color"] = "Farbe für Links";
+$a->strings["Set font-color for banner"] = "Farbe der Schrift des Banners";
+$a->strings["Set the background color"] = "Hintergrundfarbe";
+$a->strings["Set the background image"] = "Hintergrundbild";
+$a->strings["Set the background color of items"] = "Hintergrundfarbe für Beiträge";
+$a->strings["Set the background color of comments"] = "Hintergrundfarbe für Kommentare";
+$a->strings["Set the border color of comments"] = "Farbe des Randes von Kommentaren";
+$a->strings["Set the indent for comments"] = "Einzug für Kommentare";
+$a->strings["Set the basic color for item icons"] = "Grundfarbe für Beitrags-Icons";
+$a->strings["Set the hover color 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-color for posts and comments"] = "Schriftfarbe für Posts 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 Unterhaltungsbereiche";
+$a->strings["Center conversation regions"] = "Konversationsbereich zentrieren";
+$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["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["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["toggle mobile"] = "auf/von mobile Ansicht wechseln";
diff --git a/view/de/update_fail_eml.tpl b/view/de/update_fail_eml.tpl
index a7df8fc2f..ca1a4985d 100644
--- a/view/de/update_fail_eml.tpl
+++ b/view/de/update_fail_eml.tpl
@@ -1,13 +1,13 @@
-Hey,
-I'm the web server at {{$sitename}};
+Hallo,
+ich bin der Webserver für {{$sitename}};
-The Red Matrix developers released update {{$update}} recently,
-but when I tried to install it, something went terribly wrong.
-This needs to be fixed soon and it requires human intervention.
-Please contact a Red developer if you can not figure out how to
-fix it on your own. My database might be invalid.
+Die RedMatrix-Entwickler haben kürzlich das Update {{$update}} veröffentlicht,
+aber als ich versuchte, es zu installieren, ging irgendwas furchtbar schief.
+Das muss so bald als möglich gelöst werden und erfordert einen manuellen Eingriff.
+Bitte kontaktiere einen Red-Entwickler, wenn Du nicht weißt, wie Du das Problem
+selbst beheben kannst. Meine Datenbank ist eventuell ungültig.
-The error message is '{{$error}}'.
+Die Fehlermeldung ist '{{$error}}'.
-Apologies for the inconvenience,
- your web server at {{$siteurl}} \ No newline at end of file
+Bitte entschuldige die Unannehmlichkeit,
+ Dein Web-Server auf {{$siteurl}} \ No newline at end of file
diff --git a/view/de/wall_received_eml.tpl b/view/de/wall_received_eml.tpl
deleted file mode 100644
index b0ca45b24..000000000
--- a/view/de/wall_received_eml.tpl
+++ /dev/null
@@ -1,18 +0,0 @@
-
-Hallo $username,
-
-'$from' hat etwas auf deiner Profilwand gepostet.
-
------
-$body
------
-
-Bitte melde dich unter $siteurl an um den Eintrag anzusehen oder zu löschen.
-
-$display
-
-Besten Dank!
- $sitename Administrator
-
-
-
diff --git a/view/de/wall_received_html_body_eml.tpl b/view/de/wall_received_html_body_eml.tpl
deleted file mode 100644
index 407e4fdce..000000000
--- a/view/de/wall_received_html_body_eml.tpl
+++ /dev/null
@@ -1,24 +0,0 @@
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional //EN">
-<html>
-<head>
- <title>Friendica Nachricht</title>
- <meta http-equiv="Content-Type" content="text/html;charset=utf-8" />
-</head>
-<body>
-<table style="border:1px solid #ccc">
- <tbody>
- <tr><td colspan="2" style="background:#084769; color:#FFFFFF; font-weight:bold; font-family:'lucida grande', tahoma, verdana,arial, sans-serif; padding: 4px 8px; vertical-align: middle; font-size:16px; letter-spacing: -0.03em; text-align: left;"><img style="width:32px;height:32px; float:left;" src='$siteurl/images/friendica-32.png'><div style="padding:7px; margin-left: 5px; float:left; font-size:18px;letter-spacing:1px;">Friendica</div><div style="clear: both;"></div></td></tr>
-
- <tr><td style="padding-top:22px;" colspan="2">$from hat etwas auf deine Pinnwand gepostet.</td></tr>
-
-
- <tr><td style="padding-left:22px;padding-top:22px;width:60px;" valign="top" rowspan=3><a href="$url"><img style="border:0px;width:48px;height:48px;" src="$thumb"></a></td>
- <td style="padding-top:22px;"><a href="$url">$from</a></td></tr>
- <tr><td style="padding-right:22px;">$body</td></tr>
- <tr><td style="padding-top:11px;padding-bottom:11px;" colspan="2">Bitte melde dich auf <a href="$siteurl">$siteurl</a> an um <a href="$display">den Eintrag anzusehen oder ihn zu l&ouml;schen</a>.</td></tr>
- <tr><td></td><td>Beste Gr&uuml;&szlig;e,</td></tr>
- <tr><td></td><td>$sitename Administrator</td></tr>
- </tbody>
-</table>
-</body>
-</html>
diff --git a/view/de/wall_received_text_body_eml.tpl b/view/de/wall_received_text_body_eml.tpl
deleted file mode 100644
index c627b0c7e..000000000
--- a/view/de/wall_received_text_body_eml.tpl
+++ /dev/null
@@ -1,18 +0,0 @@
-
-Hallo $username,
-
- '$from' hat etwas auf deiner Pinnwand gepostet.
-
------
-$body
------
-
-Bitte melde dich auf $siteurl an um den Beitrag anzusehen oder ihn zu löschen:
-
-$display
-
-Besten Dank!
- $sitename Administrator
-
-
-
diff --git a/view/en-au/follow_notify_eml.tpl b/view/en-au/follow_notify_eml.tpl
deleted file mode 100644
index ba07b19da..000000000
--- a/view/en-au/follow_notify_eml.tpl
+++ /dev/null
@@ -1,14 +0,0 @@
-
-Dear {{$myname}},
-
-You have a new follower at {{$sitename}} - '{{$requestor}}'.
-
-You may visit their profile at {{$url}}.
-
-Please login to your site to approve or ignore/cancel the request.
-
-{{$siteurl}}
-
-Regards,
-
- {{$sitename}} administrator
diff --git a/view/en-au/friend_complete_eml.tpl b/view/en-au/friend_complete_eml.tpl
deleted file mode 100644
index 1c647b994..000000000
--- a/view/en-au/friend_complete_eml.tpl
+++ /dev/null
@@ -1,22 +0,0 @@
-
-Dear {{$username}},
-
- Great news... '{{$fn}}' at '{{$dfrn_url}}' has accepted
-your connection request at '{{$sitename}}'.
-
-You are now mutual friends and may exchange status updates, photos, and email
-without restriction.
-
-Please visit your 'Connnections' page at {{$sitename}} if you wish to make
-any changes to this relationship.
-
-{{$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}}'].
-
-Sincerely,
-
- {{$sitename}} Administrator
-
-
diff --git a/view/en-au/intro_complete_eml.tpl b/view/en-au/intro_complete_eml.tpl
deleted file mode 100644
index 2c2428d68..000000000
--- a/view/en-au/intro_complete_eml.tpl
+++ /dev/null
@@ -1,22 +0,0 @@
-
-Dear {{$username}},
-
- '{{$fn}}' at '{{$dfrn_url}}' has accepted
-your connection request at '{{$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}}' may choose to extend this into a two-way or more permissive
-relationship in the future.
-
- You will start receiving public status updates from '{{$fn}}',
-which will appear on your 'Matrix' page at
-
-{{$siteurl}}
-
-Sincerely,
-
- {{$sitename}} Administrator
diff --git a/view/en-au/request_notify_eml.tpl b/view/en-au/request_notify_eml.tpl
deleted file mode 100644
index d01b8ff27..000000000
--- a/view/en-au/request_notify_eml.tpl
+++ /dev/null
@@ -1,17 +0,0 @@
-
-Dear {{$myname}},
-
-You have just received a connection request at {{$sitename}}
-
-from '{{$requestor}}'.
-
-You may visit their profile at {{$url}}.
-
-Please login to your site to view the complete introduction
-and approve or ignore/cancel the request.
-
-{{$siteurl}}
-
-Regards,
-
- {{$sitename}} administrator
diff --git a/view/en-gb/follow_notify_eml.tpl b/view/en-gb/follow_notify_eml.tpl
deleted file mode 100644
index ba07b19da..000000000
--- a/view/en-gb/follow_notify_eml.tpl
+++ /dev/null
@@ -1,14 +0,0 @@
-
-Dear {{$myname}},
-
-You have a new follower at {{$sitename}} - '{{$requestor}}'.
-
-You may visit their profile at {{$url}}.
-
-Please login to your site to approve or ignore/cancel the request.
-
-{{$siteurl}}
-
-Regards,
-
- {{$sitename}} administrator
diff --git a/view/en-gb/friend_complete_eml.tpl b/view/en-gb/friend_complete_eml.tpl
deleted file mode 100644
index 1c647b994..000000000
--- a/view/en-gb/friend_complete_eml.tpl
+++ /dev/null
@@ -1,22 +0,0 @@
-
-Dear {{$username}},
-
- Great news... '{{$fn}}' at '{{$dfrn_url}}' has accepted
-your connection request at '{{$sitename}}'.
-
-You are now mutual friends and may exchange status updates, photos, and email
-without restriction.
-
-Please visit your 'Connnections' page at {{$sitename}} if you wish to make
-any changes to this relationship.
-
-{{$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}}'].
-
-Sincerely,
-
- {{$sitename}} Administrator
-
-
diff --git a/view/en-gb/intro_complete_eml.tpl b/view/en-gb/intro_complete_eml.tpl
deleted file mode 100644
index 2c2428d68..000000000
--- a/view/en-gb/intro_complete_eml.tpl
+++ /dev/null
@@ -1,22 +0,0 @@
-
-Dear {{$username}},
-
- '{{$fn}}' at '{{$dfrn_url}}' has accepted
-your connection request at '{{$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}}' may choose to extend this into a two-way or more permissive
-relationship in the future.
-
- You will start receiving public status updates from '{{$fn}}',
-which will appear on your 'Matrix' page at
-
-{{$siteurl}}
-
-Sincerely,
-
- {{$sitename}} Administrator
diff --git a/view/en-gb/request_notify_eml.tpl b/view/en-gb/request_notify_eml.tpl
deleted file mode 100644
index d01b8ff27..000000000
--- a/view/en-gb/request_notify_eml.tpl
+++ /dev/null
@@ -1,17 +0,0 @@
-
-Dear {{$myname}},
-
-You have just received a connection request at {{$sitename}}
-
-from '{{$requestor}}'.
-
-You may visit their profile at {{$url}}.
-
-Please login to your site to view the complete introduction
-and approve or ignore/cancel the request.
-
-{{$siteurl}}
-
-Regards,
-
- {{$sitename}} administrator
diff --git a/view/en-gb/strings.php b/view/en-gb/strings.php
index abf14f43a..a95915844 100644
--- a/view/en-gb/strings.php
+++ b/view/en-gb/strings.php
@@ -27,3 +27,5 @@ $a->strings["Do you want to authorize this application to access your posts and
$a->strings["If your certificate is not recognized, members of other sites (who may themselves have valid certificates) will get a warning message on their own site complaining about security issues."] = "If your certificate is not recognised, members of other sites (who may themselves have valid certificates) will get a warning message on their own site complaining about security issues.";
$a->strings["This is a hub of the Red Matrix - a global cooperative network of decentralized privacy enhanced websites."] = "This is a hub of the Red Matrix - a global cooperative network of decentralised privacy enhanced websites.";
$a->strings["You are cordially invited to join me and some other close friends on the Red Matrix - a revolutionary new decentralized communication and information tool."] = "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["l F d, Y \\@ g:i A"] = "l j F, Y \\@ G:i";
+$a->strings["D, d M Y - g:i A"] = "D, d M Y - G:i";
diff --git a/view/en/follow_notify_eml.tpl b/view/en/follow_notify_eml.tpl
deleted file mode 100644
index ba07b19da..000000000
--- a/view/en/follow_notify_eml.tpl
+++ /dev/null
@@ -1,14 +0,0 @@
-
-Dear {{$myname}},
-
-You have a new follower at {{$sitename}} - '{{$requestor}}'.
-
-You may visit their profile at {{$url}}.
-
-Please login to your site to approve or ignore/cancel the request.
-
-{{$siteurl}}
-
-Regards,
-
- {{$sitename}} administrator
diff --git a/view/en/friend_complete_eml.tpl b/view/en/friend_complete_eml.tpl
deleted file mode 100644
index 1c647b994..000000000
--- a/view/en/friend_complete_eml.tpl
+++ /dev/null
@@ -1,22 +0,0 @@
-
-Dear {{$username}},
-
- Great news... '{{$fn}}' at '{{$dfrn_url}}' has accepted
-your connection request at '{{$sitename}}'.
-
-You are now mutual friends and may exchange status updates, photos, and email
-without restriction.
-
-Please visit your 'Connnections' page at {{$sitename}} if you wish to make
-any changes to this relationship.
-
-{{$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}}'].
-
-Sincerely,
-
- {{$sitename}} Administrator
-
-
diff --git a/view/en/htconfig.tpl b/view/en/htconfig.tpl
index 9377472bd..d06e5da49 100644
--- a/view/en/htconfig.tpl
+++ b/view/en/htconfig.tpl
@@ -1,6 +1,6 @@
<?php
-// Set the following for your MySQL installation
+// Set the following for your database installation
// Copy or rename this file to .htconfig.php
$db_host = '{{$dbhost}}';
@@ -8,6 +8,7 @@ $db_port = '{{$dbport}}';
$db_user = '{{$dbuser}}';
$db_pass = '{{$dbpass}}';
$db_data = '{{$dbdata}}';
+$db_type = '{{$dbtype}}'; // an integer. 0 or unset for mysql, 1 for postgres
/*
* Notice: Many of the following settings will be available in the admin panel
@@ -45,6 +46,11 @@ $a->config['system']['register_policy'] = REGISTER_OPEN;
$a->config['system']['register_text'] = '';
$a->config['system']['admin_email'] = '{{$adminmail}}';
+// Recommend you leave this set to 1. Set to 0 to let people register without
+// proving they own the email address they register with.
+
+$a->config['system']['verify_email'] = 1;
+
// Site access restrictions. By default we will create private sites.
// Your choices are ACCESS_PRIVATE, ACCESS_PAID, ACCESS_TIERED, and ACCESS_FREE.
diff --git a/view/en/intro_complete_eml.tpl b/view/en/intro_complete_eml.tpl
deleted file mode 100644
index 2c2428d68..000000000
--- a/view/en/intro_complete_eml.tpl
+++ /dev/null
@@ -1,22 +0,0 @@
-
-Dear {{$username}},
-
- '{{$fn}}' at '{{$dfrn_url}}' has accepted
-your connection request at '{{$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}}' may choose to extend this into a two-way or more permissive
-relationship in the future.
-
- You will start receiving public status updates from '{{$fn}}',
-which will appear on your 'Matrix' page at
-
-{{$siteurl}}
-
-Sincerely,
-
- {{$sitename}} Administrator
diff --git a/view/en/request_notify_eml.tpl b/view/en/request_notify_eml.tpl
deleted file mode 100644
index d01b8ff27..000000000
--- a/view/en/request_notify_eml.tpl
+++ /dev/null
@@ -1,17 +0,0 @@
-
-Dear {{$myname}},
-
-You have just received a connection request at {{$sitename}}
-
-from '{{$requestor}}'.
-
-You may visit their profile at {{$url}}.
-
-Please login to your site to view the complete introduction
-and approve or ignore/cancel the request.
-
-{{$siteurl}}
-
-Regards,
-
- {{$sitename}} administrator
diff --git a/view/eo/follow_notify_eml.tpl b/view/eo/follow_notify_eml.tpl
deleted file mode 100644
index ba07b19da..000000000
--- a/view/eo/follow_notify_eml.tpl
+++ /dev/null
@@ -1,14 +0,0 @@
-
-Dear {{$myname}},
-
-You have a new follower at {{$sitename}} - '{{$requestor}}'.
-
-You may visit their profile at {{$url}}.
-
-Please login to your site to approve or ignore/cancel the request.
-
-{{$siteurl}}
-
-Regards,
-
- {{$sitename}} administrator
diff --git a/view/eo/friend_complete_eml.tpl b/view/eo/friend_complete_eml.tpl
deleted file mode 100644
index 1c647b994..000000000
--- a/view/eo/friend_complete_eml.tpl
+++ /dev/null
@@ -1,22 +0,0 @@
-
-Dear {{$username}},
-
- Great news... '{{$fn}}' at '{{$dfrn_url}}' has accepted
-your connection request at '{{$sitename}}'.
-
-You are now mutual friends and may exchange status updates, photos, and email
-without restriction.
-
-Please visit your 'Connnections' page at {{$sitename}} if you wish to make
-any changes to this relationship.
-
-{{$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}}'].
-
-Sincerely,
-
- {{$sitename}} Administrator
-
-
diff --git a/view/eo/intro_complete_eml.tpl b/view/eo/intro_complete_eml.tpl
deleted file mode 100644
index 2c2428d68..000000000
--- a/view/eo/intro_complete_eml.tpl
+++ /dev/null
@@ -1,22 +0,0 @@
-
-Dear {{$username}},
-
- '{{$fn}}' at '{{$dfrn_url}}' has accepted
-your connection request at '{{$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}}' may choose to extend this into a two-way or more permissive
-relationship in the future.
-
- You will start receiving public status updates from '{{$fn}}',
-which will appear on your 'Matrix' page at
-
-{{$siteurl}}
-
-Sincerely,
-
- {{$sitename}} Administrator
diff --git a/view/eo/request_notify_eml.tpl b/view/eo/request_notify_eml.tpl
deleted file mode 100644
index d01b8ff27..000000000
--- a/view/eo/request_notify_eml.tpl
+++ /dev/null
@@ -1,17 +0,0 @@
-
-Dear {{$myname}},
-
-You have just received a connection request at {{$sitename}}
-
-from '{{$requestor}}'.
-
-You may visit their profile at {{$url}}.
-
-Please login to your site to view the complete introduction
-and approve or ignore/cancel the request.
-
-{{$siteurl}}
-
-Regards,
-
- {{$sitename}} administrator
diff --git a/view/es/cmnt_received_eml.tpl b/view/es/cmnt_received_eml.tpl
deleted file mode 100644
index abf2d95df..000000000
--- a/view/es/cmnt_received_eml.tpl
+++ /dev/null
@@ -1,18 +0,0 @@
-
-Estimado/a $username,
-
- '$from' ha comentado un elemento/conversación que estás siguiendo.
-
------
-$body
------
-
-Accede a $siteurl para ver la conversación completa:
-
-$display
-
-
- $sitename
-
-
-
diff --git a/view/es/follow_notify_eml.tpl b/view/es/follow_notify_eml.tpl
deleted file mode 100644
index ba07b19da..000000000
--- a/view/es/follow_notify_eml.tpl
+++ /dev/null
@@ -1,14 +0,0 @@
-
-Dear {{$myname}},
-
-You have a new follower at {{$sitename}} - '{{$requestor}}'.
-
-You may visit their profile at {{$url}}.
-
-Please login to your site to approve or ignore/cancel the request.
-
-{{$siteurl}}
-
-Regards,
-
- {{$sitename}} administrator
diff --git a/view/es/friend_complete_eml.tpl b/view/es/friend_complete_eml.tpl
deleted file mode 100644
index 1c647b994..000000000
--- a/view/es/friend_complete_eml.tpl
+++ /dev/null
@@ -1,22 +0,0 @@
-
-Dear {{$username}},
-
- Great news... '{{$fn}}' at '{{$dfrn_url}}' has accepted
-your connection request at '{{$sitename}}'.
-
-You are now mutual friends and may exchange status updates, photos, and email
-without restriction.
-
-Please visit your 'Connnections' page at {{$sitename}} if you wish to make
-any changes to this relationship.
-
-{{$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}}'].
-
-Sincerely,
-
- {{$sitename}} Administrator
-
-
diff --git a/view/es/intro_complete_eml.tpl b/view/es/intro_complete_eml.tpl
deleted file mode 100644
index 2c2428d68..000000000
--- a/view/es/intro_complete_eml.tpl
+++ /dev/null
@@ -1,22 +0,0 @@
-
-Dear {{$username}},
-
- '{{$fn}}' at '{{$dfrn_url}}' has accepted
-your connection request at '{{$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}}' may choose to extend this into a two-way or more permissive
-relationship in the future.
-
- You will start receiving public status updates from '{{$fn}}',
-which will appear on your 'Matrix' page at
-
-{{$siteurl}}
-
-Sincerely,
-
- {{$sitename}} Administrator
diff --git a/view/es/mail_received_html_body_eml.tpl b/view/es/mail_received_html_body_eml.tpl
deleted file mode 100644
index 5086ec246..000000000
--- a/view/es/mail_received_html_body_eml.tpl
+++ /dev/null
@@ -1,24 +0,0 @@
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional //EN">
-<html>
-<head>
- <title>Mensaje de Friendika</title>
- <meta http-equiv="Content-Type" content="text/html;charset=utf-8" />
-</head>
-<body>
-<table style="border:1px solid #ccc">
- <tbody>
- <tr><td colspan="2" style="background:#3b5998; color:#FFFFFF; font-weight:bold; font-family:'lucida grande', tahoma, verdana,arial, sans-serif; padding: 4px 8px; vertical-align: middle; font-size:16px; letter-spacing: -0.03em; text-align: left;"><img style="width:32px;height:32px;" src='$siteurl/images/friendika-32.png'><span style="padding:7px;">Friendika</span></td></tr>
-
- <tr><td style="padding-top:22px;" colspan="2">Has recibido un nuevo mensaje privado de '$from' en $siteName.</td></tr>
-
-
- <tr><td style="padding-left:22px;padding-top:22px;width:60px;" valign="top" rowspan=3><a href="$url"><img style="border:0px;width:48px;height:48px;" src="$thumb"></a></td>
- <td style="padding-top:22px;"><a href="$url">$from</a></td></tr>
- <tr><td style="font-weight:bold;padding-bottom:5px;">$title</td></tr>
- <tr><td style="padding-right:22px;">$htmlversion</td></tr>
- <tr><td style="padding-top:11px;padding-bottom:11px;" colspan="2">Accede a <a href="$siteurl">$siteurl</a> para leer y responder a tus mensajes privados.</td></tr>
- <tr><td></td><td>$siteName</td></tr>
- </tbody>
-</table>
-</body>
-</html>
diff --git a/view/es/mail_received_text_body_eml.tpl b/view/es/mail_received_text_body_eml.tpl
deleted file mode 100644
index 8400b9d01..000000000
--- a/view/es/mail_received_text_body_eml.tpl
+++ /dev/null
@@ -1,9 +0,0 @@
-Has recibido un nuevo mensaje privado de '$from' en $siteName.
-
-$title
-
-$textversion
-
-Accede a $siteurl para leer y responder a tus mensajes privados.
-
- $siteName
diff --git a/view/es/request_notify_eml.tpl b/view/es/request_notify_eml.tpl
deleted file mode 100644
index d01b8ff27..000000000
--- a/view/es/request_notify_eml.tpl
+++ /dev/null
@@ -1,17 +0,0 @@
-
-Dear {{$myname}},
-
-You have just received a connection request at {{$sitename}}
-
-from '{{$requestor}}'.
-
-You may visit their profile at {{$url}}.
-
-Please login to your site to view the complete introduction
-and approve or ignore/cancel the request.
-
-{{$siteurl}}
-
-Regards,
-
- {{$sitename}} administrator
diff --git a/view/es/wall_received_eml.tpl b/view/es/wall_received_eml.tpl
deleted file mode 100644
index 4cd253c72..000000000
--- a/view/es/wall_received_eml.tpl
+++ /dev/null
@@ -1,18 +0,0 @@
-
-Estimado/a $username,
-
- '$from' ha escrito algo en el muro de tu perfil.
-
------
-$body
------
-
-Accede a $siteurl para ver o borrar el elemento:
-
-$display
-
-
- $sitename
-
-
-
diff --git a/view/fr/cmnt_received_eml.tpl b/view/fr/cmnt_received_eml.tpl
deleted file mode 100644
index 762a0c4cd..000000000
--- a/view/fr/cmnt_received_eml.tpl
+++ /dev/null
@@ -1,18 +0,0 @@
-
-Cher(e) $username,
-
- « $from » a commenté un élément ou une conversation que vous suivez.
-
------
-$body
------
-
-Connectez-vous à $siteurl si vous souhaitez voir la conversation complète :
-
-$display
-
-Merci,
- L'administrateur de $sitename
-
-
-
diff --git a/view/fr/cmnt_received_html_body_eml.tpl b/view/fr/cmnt_received_html_body_eml.tpl
deleted file mode 100644
index 94b33c2b4..000000000
--- a/view/fr/cmnt_received_html_body_eml.tpl
+++ /dev/null
@@ -1,25 +0,0 @@
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional //EN">
-<html>
-<head>
- <title>Message de la Matrice</title>
- <meta http-equiv="Content-Type" content="text/html;charset=utf-8" />
-</head>
-<body>
-<table style="border:1px solid #ccc">
- <tbody>
- <tr><td colspan="2" style="background:#3b5998; color:#FFFFFF; font-weight:bold; font-family:'lucida grande', tahoma, verdana,arial, sans-serif; padding: 4px 8px; vertical-align: middle; font-size:16px; letter-spacing: -0.03em; text-align: left;"><img style="width:32px;height:32px;" src='$siteurl/images/friendika-32.png'><span style="padding:7px;">Friendica</span></td></tr>
-
- <tr><td style="padding-top:22px;" colspan="2">$from a commenté un élément ou une conversation que vous suivez.</td></tr>
-
-
- <tr><td style="padding-left:22px;padding-top:22px;width:60px;" valign="top" rowspan=3><a href="$url"><img style="border:0px;width:48px;height:48px;" src="$thumb"></a></td>
- <td style="padding-top:22px;"><a href="$url">$from</a></td></tr>
- <tr><td style="padding-bottom:5px;"></td></tr>
- <tr><td style="padding-right:22px;">$body</td></tr>
- <tr><td style="padding-top:11px;padding-bottom:11px;" colspan="2"><a href="$display">Connectez-vous à $siteurl si vous souhaitez voir la conversation complète</a></td></tr>
- <tr><td></td><td>Merci,</td></tr>
- <tr><td></td><td>L'administrateur de $sitename</td></tr>
- </tbody>
-</table>
-</body>
-</html> \ No newline at end of file
diff --git a/view/fr/cmnt_received_text_body_eml.tpl b/view/fr/cmnt_received_text_body_eml.tpl
deleted file mode 100644
index 876b53e12..000000000
--- a/view/fr/cmnt_received_text_body_eml.tpl
+++ /dev/null
@@ -1,15 +0,0 @@
-
-Cher(e) $username,
-
- « $from » a commenté un éléŽment ou une conversation que vous suivez.
-
------
-$body
------
-
-Connectez-vous à $siteurl si vous souhaitez voir la conversation complète :
-
-$display
-
-Merci,
- L'administrateur de $sitename \ No newline at end of file
diff --git a/view/fr/follow_notify_eml.tpl b/view/fr/follow_notify_eml.tpl
deleted file mode 100644
index 600168a59..000000000
--- a/view/fr/follow_notify_eml.tpl
+++ /dev/null
@@ -1,14 +0,0 @@
-
-Cher {{$myname}},
-
-Vous avez un nouvel admirateur {{$sitename}} - '{{$requestor}}'.
-
-Vous pouvez visiter son profil ici {{$url}}.
-
-Veuillez vous enregistrer sur votre hub pour approuver ou ignorer/supprimer cette requête.
-
-{{$siteurl}}
-
-Bien à vous,
-
- Administrateur {{$sitename}} \ No newline at end of file
diff --git a/view/fr/friend_complete_eml.tpl b/view/fr/friend_complete_eml.tpl
deleted file mode 100644
index 5226b380d..000000000
--- a/view/fr/friend_complete_eml.tpl
+++ /dev/null
@@ -1,22 +0,0 @@
-
-Cher {{$username}},
-
- Bonne nouvelle... '{{$fn}}' de '{{$dfrn_url}}' a accepté
-votre requête de contact sur '{{$sitename}}'.
-
-Vous entrer maintenant en relation et pouvez échanger vos statuts, photos et courriel
-sans restrictions.
-
-Visiter la page de vos 'relations' {{$sitename}} pour tout
-changements de statut avec cette relation.
-
-{{$siteurl}}
-
-[Par exemple, vous pouvez créer un profil distinct avec des information qui ne sont pas
-accessible au public en général - et définir les autorisations de '{{$fn}}'].
-
-Sincèrement,
-
- Administrateur {{$sitename}}
-
- \ No newline at end of file
diff --git a/view/fr/intro_complete_eml.tpl b/view/fr/intro_complete_eml.tpl
deleted file mode 100644
index 6486257af..000000000
--- a/view/fr/intro_complete_eml.tpl
+++ /dev/null
@@ -1,22 +0,0 @@
-
-Cher {{$username}},
-
- '{{$fn}}' de '{{$dfrn_url}}' a accepté
-votre requête de relation sur '{{$sitename}}'.
-
- '{{$fn}}' vous accepte comme un "fan", ceci restreint
-certaines formes de communications - tel que les messages privés et quelques modes
-d'intéractions avec le profil. S'il s'agît de la page d'une célébrité ou de la page d'une communauté,
- ces réglages ont été appliqués automatiquement.
-
- '{{$fn}}' peut choisir d'étendre les permissions de cette relation
-dans le futur.
-
- Vous allez commencer à recevoir les changements de statuts de '{{$fn}}',
-ils seront ajoutés à votre fil de nouvelle sur
-
-{{$siteurl}}
-
-Sincèrement,
-
- Administrateur {{$sitename}} \ No newline at end of file
diff --git a/view/fr/lostpass_eml.tpl b/view/fr/lostpass_eml.tpl
index 04292dca8..0421d41a8 100644
--- a/view/fr/lostpass_eml.tpl
+++ b/view/fr/lostpass_eml.tpl
@@ -1,30 +1,30 @@
Cher {{$username}},
- Une demande pour réinitialiser votre mot de passe a récemment été reçu de {{$sitename}}
+ Une demande pour réinitialiser votre mot de passe a récemment été reçue par {{$sitename}}
Pour confirmer cette requête, veuillez suivre le lien de vérification
-suivant ou copier-coller le dans la barre d'adresse de votre navigateur.
+ci-dessous ou en faire un copier-coller dans la barre d'adresse de votre navigateur.
-Si vous N'AVEZ PAS demander ce changement, NE SUIVEZ PAS ce lien, ignorez simplement et/ou supprimer ce courriel.
+Si vous N'AVEZ PAS demandé ce changement, NE SUIVEZ PAS ce lien, ignorez-le simplement et/ou supprimez ce courriel.
Votre mot de passe ne sera pas changé à moins que nous puissions vérifier vos intentions.
-Suivez ce lien pour vérifier votre identité:
+Suivez ce lien pour confirmer votre identité:
{{$reset_link}}
Vous recevrez ensuite un second courriel avec votre nouveau mot de passe.
-Vous pouvez changez ce mot de passe à partir de la page des configurations de votre profil.
+Vous pouvez changer ce mot de passe à partir des réglages du profil après vous être connecté.
-Voici les détails de connections:
+Voici les détails de connexion:
Emplacement du site:⇥{{$siteurl}}
-Usager:⇥{{$email}}
+Utilisateur:⇥{{$email}}
Sincèrement,
- Administrateur {{$sitename}}
+ L'administrateur {{$sitename}}
\ No newline at end of file
diff --git a/view/fr/mail_received_html_body_eml.tpl b/view/fr/mail_received_html_body_eml.tpl
deleted file mode 100644
index f8038f07e..000000000
--- a/view/fr/mail_received_html_body_eml.tpl
+++ /dev/null
@@ -1,25 +0,0 @@
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional //EN">
-<html>
-<head>
- <title>Message de la Matrice</title>
- <meta http-equiv="Content-Type" content="text/html;charset=utf-8" />
-</head>
-<body>
-<table style="border:1px solid #ccc">
- <tbody>
- <tr><td colspan="2" style="background:#3b5998; color:#FFFFFF; font-weight:bold; font-family:'lucida grande', tahoma, verdana,arial, sans-serif; padding: 4px 8px; vertical-align: middle; font-size:16px; letter-spacing: -0.03em; text-align: left;"><img style="width:32px;height:32px;" src='$siteurl/images/friendika-32.png'><span style="padding:7px;">Friendica</span></td></tr>
-
- <tr><td style="padding-top:22px;" colspan="2">$from vous a envoyé un message à $siteName.</td></tr>
-
-
- <tr><td style="padding-left:22px;padding-top:22px;width:60px;" valign="top" rowspan=3><a href="$url"><img style="border:0px;width:48px;height:48px;" src="$thumb"></a></td>
- <td style="padding-top:22px;"><a href="$url">$from</a></td></tr>
- <tr><td style="font-weight:bold;padding-bottom:5px;">$title</td></tr>
- <tr><td style="padding-right:22px;">$htmlversion</td></tr>
- <tr><td style="padding-top:11px;padding-bottom:11px;" colspan="2">Veuillez Ouvrir une session sur <a href="$siteurl">$siteurl</a> pour lire et répondre à vos messages privés.</td></tr>
- <tr><td></td><td>Merci,</td></tr>
- <tr><td></td><td>$siteName Administrateur</td></tr>
- </tbody>
-</table>
-</body>
-</html>
diff --git a/view/fr/mail_received_text_body_eml.tpl b/view/fr/mail_received_text_body_eml.tpl
deleted file mode 100644
index 65d034c15..000000000
--- a/view/fr/mail_received_text_body_eml.tpl
+++ /dev/null
@@ -1,10 +0,0 @@
-$from vous a envoyé un message à $siteName.
-
-$title
-
-$textversion
-
-Veuillez ouvrir une session sur $siteurl pour lire et répondre à vos messages privés.
-
-Merci,
-$siteName Administrateur
diff --git a/view/fr/messages.po b/view/fr/messages.po
index 79a60534f..dfff156a2 100644
--- a/view/fr/messages.po
+++ b/view/fr/messages.po
@@ -23,7 +23,7 @@ msgstr ""
#: ../../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 BD '%s'"
+msgstr "Impossible de trouver les infos DNS du serveur de base de données '%s'"
#: ../../include/photo/photo_driver.php:653 ../../include/photos.php:51
#: ../../mod/profile_photo.php:142 ../../mod/profile_photo.php:301
@@ -91,7 +91,7 @@ msgstr "Favoris"
#: ../../include/apps.php:125
msgid "Address Book"
-msgstr "Carnet d'adresse"
+msgstr "Carnet d'adresses"
#: ../../include/apps.php:126 ../../include/nav.php:106 ../../boot.php:1498
msgid "Login"
@@ -183,7 +183,7 @@ msgstr "Suggérer"
#: ../../include/apps.php:145
msgid "Random Channel"
-msgstr "Un Canal au Hasard"
+msgstr "Un canal au hasard"
#: ../../include/apps.php:146
msgid "Invite"
@@ -203,12 +203,12 @@ msgstr "Envoyer"
#: ../../include/apps.php:150
msgid "Profile Photo"
-msgstr "Photo du Profil"
+msgstr "Photo du profil"
#: ../../include/apps.php:239 ../../mod/settings.php:79
#: ../../mod/settings.php:543
msgid "Update"
-msgstr "Mise-à-jour"
+msgstr "Mise à jour"
#: ../../include/apps.php:239
msgid "Install"
@@ -289,11 +289,11 @@ msgstr "Sauver"
#: ../../include/text.php:897
msgid "poke"
-msgstr "cogne"
+msgstr "cogner"
#: ../../include/text.php:897 ../../include/conversation.php:243
msgid "poked"
-msgstr "C'est fait cogner"
+msgstr "a cogné"
#: ../../include/text.php:898
msgid "ping"
@@ -301,23 +301,23 @@ msgstr "solliciter"
#: ../../include/text.php:898
msgid "pinged"
-msgstr "sollicité"
+msgstr "a sollicité"
#: ../../include/text.php:899
msgid "prod"
-msgstr "aiguillonner"
+msgstr "encourager"
#: ../../include/text.php:899
msgid "prodded"
-msgstr "aiguillonné"
+msgstr "a encouragé"
#: ../../include/text.php:900
msgid "slap"
-msgstr "giffle"
+msgstr "gifler"
#: ../../include/text.php:900
msgid "slapped"
-msgstr "gifflé"
+msgstr "a giflé"
#: ../../include/text.php:901
msgid "finger"
@@ -325,15 +325,15 @@ msgstr "pointer"
#: ../../include/text.php:901
msgid "fingered"
-msgstr "pointé"
+msgstr "a pointé"
#: ../../include/text.php:902
msgid "rebuff"
-msgstr "rejetter"
+msgstr "rejeter"
#: ../../include/text.php:902
msgid "rebuffed"
-msgstr "rejetté"
+msgstr "a rejeté"
#: ../../include/text.php:911
msgid "happy"
@@ -357,7 +357,7 @@ msgstr "impertinent"
#: ../../include/text.php:916
msgid "angry"
-msgstr "colèrique"
+msgstr "colérique"
#: ../../include/text.php:917
msgid "stupified"
@@ -377,7 +377,7 @@ msgstr "amer"
#: ../../include/text.php:921
msgid "cheerful"
-msgstr "entrain"
+msgstr "joyeux"
#: ../../include/text.php:922
msgid "alive"
@@ -385,7 +385,7 @@ msgstr "énergique"
#: ../../include/text.php:923
msgid "annoyed"
-msgstr "agaçé"
+msgstr "agacé"
#: ../../include/text.php:924
msgid "anxious"
@@ -517,7 +517,7 @@ msgstr "Cliquer pour ouvrir/fermer"
#: ../../include/text.php:1512 ../../mod/events.php:374
msgid "Link to Source"
-msgstr "Lien vers la Source"
+msgstr "Lien vers la source"
#: ../../include/text.php:1531
msgid "Select a page layout: "
@@ -563,7 +563,7 @@ msgstr "Menus"
#: ../../include/text.php:2008
msgid "Layouts"
-msgstr "Mises-en-page"
+msgstr "Mises en page"
#: ../../include/text.php:2009
msgid "Pages"
@@ -766,7 +766,7 @@ msgstr "Fermer"
#: ../../include/activities.php:39
msgid " and "
-msgstr "et"
+msgstr " et "
#: ../../include/activities.php:47
msgid "public profile"
@@ -780,12 +780,12 @@ msgstr "%1$s a changé %2$s en &ldquo;%3$s&rdquo;"
#: ../../include/activities.php:53
#, php-format
msgid "Visit %1$s's %2$s"
-msgstr "Visiter %1$s de %2$s"
+msgstr "Visiter %1$s sur %2$s"
#: ../../include/activities.php:56
#, php-format
msgid "%1$s has an updated %2$s, changing %3$s."
-msgstr "%1$s a mis-à-jour %2$s, modifiant %3$s."
+msgstr "%1$s a mis à jour %2$s, modifiant %3$s."
#: ../../include/api.php:1036
msgid "Public Timeline"
@@ -805,7 +805,7 @@ msgstr "Impossible de trouver le fichier à remplacer."
#: ../../include/attach.php:370
msgid "Cannot locate file to revise/update"
-msgstr "Impossible de trouver le fichier à corriger/mettre-à-jour"
+msgstr "Impossible de trouver le fichier à corriger/mettre à jour"
#: ../../include/attach.php:381
#, php-format
@@ -1490,7 +1490,7 @@ msgstr "Merci de visiter %s pour voir et/ou répondre sur cette conversation."
#: ../../include/enotify.php:182
#, php-format
msgid "[Red:Notify] %s posted to your profile wall"
-msgstr "[Matrice Rouge:Notification] %s a publié sur votre profil"
+msgstr "[Red:Notification] %s a publié sur votre profil"
#: ../../include/enotify.php:184
#, php-format
@@ -1525,7 +1525,7 @@ msgstr "[Red:Notification] %1$s vous a cogné"
#: ../../include/enotify.php:226
#, php-format
msgid "%1$s, %2$s poked you at %3$s"
-msgstr "%1$s, vous avez été cogné/pointé/sollicité par %2$s sur %3$s"
+msgstr "%1$s, %2$s vous a cogné sur %3$s
#: ../../include/enotify.php:227
#, php-format
@@ -1535,7 +1535,7 @@ msgstr "%1$s, %2$s [zrl=%2$s]vous a cogné[/zrl]."
#: ../../include/enotify.php:243
#, php-format
msgid "[Red:Notify] %s tagged your post"
-msgstr "[Matrice Rouge:Notification] %s a étiqueté votre publication"
+msgstr "[Red:Notification] %s a étiqueté votre publication"
#: ../../include/enotify.php:244
#, php-format
@@ -1574,7 +1574,7 @@ msgstr "Merci de visiter %s avant d'approuver (ou non) cette demande de relation
#: ../../include/enotify.php:272
msgid "[Red:Notify] Friend suggestion received"
-msgstr "[Matrice Rouge:Notification] Nouvelle suggestion d'amitié"
+msgstr "[Red:Notification] Nouvelle suggestion d'amitié"
#: ../../include/enotify.php:273
#, php-format
@@ -1859,7 +1859,7 @@ msgstr "Merci d'entrer l'URL d'une video&nbsp;:"
#: ../../include/conversation.php:1077
msgid "Please enter an audio link/URL:"
-msgstr "Merci d'entrer l'URL d'un contenu audio&nsbp;:"
+msgstr "Merci d'entrer l'URL d'un contenu audio&nbsp;:"
#: ../../include/conversation.php:1078
msgid "Tag term:"
@@ -2408,7 +2408,7 @@ msgstr "Visible sur toute la Matrice."
#: ../../include/items.php:965
msgid "Visible to anybody authenticated."
-msgstr "Visible aux usagers authentifiés."
+msgstr "Visible aux utilisateurs authentifiés."
#: ../../include/items.php:967
#, php-format
@@ -2672,7 +2672,7 @@ msgstr "Ville natale&nbsp;:"
#: ../../include/identity.php:1042
msgid "Tags:"
-msgstr "Étiquettes:"
+msgstr "Étiquettes&nbsp;:"
#: ../../include/identity.php:1044 ../../mod/profiles.php:616
msgid "Political Views:"
@@ -2720,7 +2720,7 @@ msgstr "Télévision&nbsp;:"
#: ../../include/identity.php:1067
msgid "Film/dance/culture/entertainment:"
-msgstr "Cinéma/danse/culture/divertissement&nsbp;:"
+msgstr "Cinéma/danse/culture/divertissement&nbsp;:"
#: ../../include/identity.php:1069
msgid "Love/Romance:"
@@ -3126,7 +3126,7 @@ msgstr "Indice pour la phrase de passe"
#: ../../include/js_strings.php:16
msgid "Notice: Permissions have changed but have not yet been submitted."
-msgstr "Note&nbsp;: Les permissions ont changées, mais n'ont pas encore été sauvées."
+msgstr "Note&nbsp;: Les permissions ont changé, mais n'ont pas encore été soumises."
#: ../../include/js_strings.php:17
msgid "close all"
@@ -3134,7 +3134,7 @@ msgstr "fermer tout"
#: ../../include/js_strings.php:19
msgid "timeago.prefixAgo"
-msgstr "timeago.prefixAgo"
+msgstr "Il y a"
#: ../../include/js_strings.php:20
msgid "timeago.prefixFromNow"
@@ -3142,7 +3142,7 @@ msgstr "timeago.prefixFromNow"
#: ../../include/js_strings.php:21
msgid "ago"
-msgstr "auparavant"
+msgstr " "
#: ../../include/js_strings.php:22
msgid "from now"
@@ -3567,7 +3567,7 @@ msgstr "Menu introuvable."
#: ../../mod/mitem.php:47
msgid "Menu element updated."
-msgstr "Entrée de menu mis-à-jour."
+msgstr "Entrée de menu mis à jour."
#: ../../mod/mitem.php:51
msgid "Unable to update menu element."
@@ -3716,7 +3716,7 @@ msgstr "Le mot de passe a été changé."
#: ../../mod/settings.php:216
msgid "Password update failed. Please try again."
-msgstr "La mise-à-jour du mot de passe a échoué. Merci de recommencer."
+msgstr "La mise à jour du mot de passe a échoué. Merci de recommencer."
#: ../../mod/settings.php:230
msgid "Not valid email."
@@ -3872,7 +3872,7 @@ msgstr "Thème mobile&nbsp;:"
#: ../../mod/settings.php:760
msgid "Enable user zoom on mobile devices"
-msgstr "Permettre à l'usager d'un mobile d'agrandir le contenu"
+msgstr "Permettre à l'utilisateur d'un mobile d'agrandir le contenu"
#: ../../mod/settings.php:761
msgid "Update browser every xx seconds"
@@ -4122,7 +4122,7 @@ msgstr "Vous êtes étiqueté dans une publication"
#: ../../mod/settings.php:994
msgid "You are poked/prodded/etc. in a post"
-msgstr "Vous êtes cogné/pointé/etc. dans une publication"
+msgstr "Vous êtes cogné/encouragé/etc. dans une publication"
#: ../../mod/settings.php:997
msgid "Advanced Account/Page Type Settings"
@@ -4152,11 +4152,11 @@ msgstr "Supprimer ce canal"
#: ../../mod/poke.php:159
msgid "Poke/Prod"
-msgstr "Cogner/Solliciter"
+msgstr "Cogner/Encourager"
#: ../../mod/poke.php:160
msgid "poke, prod or do other things to somebody"
-msgstr "Cogner, pointer, et autres choses à faire à quelqu'un"
+msgstr "Cogner, encourager, et autres choses à faire à quelqu'un"
#: ../../mod/poke.php:161
msgid "Recipient"
@@ -4776,7 +4776,7 @@ msgstr "Merci de vous connecter."
#: ../../mod/cloud.php:126
msgid "Red Matrix - Guests: Username: {your email address}, Password: +++"
-msgstr "Matrice Rouge - Pour les invités: Usager = {votre courriel}, Mot de passe = +++"
+msgstr "Matrice Rouge - Pour les invités: Nom d'utilisateur = {votre courriel}, Mot de passe = +++"
#: ../../mod/removeme.php:29
msgid ""
@@ -4822,7 +4822,7 @@ msgstr "Relations communes"
#: ../../mod/common.php:44
msgid "No connections in common."
-msgstr "Pas de relations en commun."
+msgstr "Pas de relation en commun."
#: ../../mod/rmagic.php:38
msgid ""
@@ -5292,7 +5292,7 @@ msgstr "Supprimer le contact"
#: ../../mod/connedit.php:549
msgid "Last update:"
-msgstr "Dernière mise-à-jour&nbsp;:"
+msgstr "Dernière mise à jour&nbsp;:"
#: ../../mod/connedit.php:551
msgid "Update public posts"
@@ -5549,7 +5549,7 @@ msgstr "Impossible de trouver une version CLI de PHP dans le PATH du serveur web
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 "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."
+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:392
msgid "PHP executable path"
@@ -5802,7 +5802,7 @@ msgstr "<h1>Et maintenant</h1>"
msgid ""
"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."
+msgstr "IMPORTANT&nbsp;: Vous devez créer [manuellement] une tâche planifiée pour les mises à jour."
#: ../../mod/editblock.php:8 ../../mod/editblock.php:27
#: ../../mod/editblock.php:53 ../../mod/editlayout.php:36
@@ -6279,7 +6279,7 @@ msgstr "Impossible de créer la collection."
#: ../../mod/group.php:54
msgid "Collection updated."
-msgstr "Collection mise-à-jour."
+msgstr "Collection mise à jour."
#: ../../mod/group.php:86
msgid "Create a collection of channels."
@@ -6936,7 +6936,7 @@ msgstr "Niveau de journalisation"
#: ../../mod/thing.php:98
msgid "Thing updated"
-msgstr "Chose mise-à-jour"
+msgstr "Chose mise à jour"
#: ../../mod/thing.php:158
msgid "Object store: failed"
@@ -7224,7 +7224,7 @@ msgstr "Visible par&nbsp;:"
#: ../../mod/viewconnections.php:58
msgid "No connections."
-msgstr "Pas de relations."
+msgstr "Pas de relation."
#: ../../mod/viewconnections.php:71
#, php-format
@@ -7675,7 +7675,7 @@ msgstr "URL vers le serveur Friendica"
#: ../../mod/frphotos.php:82
msgid "Friendica Login Username"
-msgstr "Nom d'usager Friendica"
+msgstr "Nom d'utilisateur Friendica"
#: ../../mod/frphotos.php:83
msgid "Friendica Login Password"
@@ -7997,12 +7997,12 @@ msgstr "Vous êtes plutôt \"bureau bien rangé\" ou \"gros foutoir\"?"
#: ../../boot.php:1296
#, php-format
msgid "Update %s failed. See error logs."
-msgstr "La mise-à-jour %s a échoué. Merci de consulter les journaux d'erreur."
+msgstr "La mise à jour %s a échoué. Merci de consulter les journaux d'erreur."
#: ../../boot.php:1299
#, php-format
msgid "Update Error at %s"
-msgstr "Erreur de mise-à-jour sur %s"
+msgstr "Erreur de mise à jour sur %s"
#: ../../boot.php:1473
msgid ""
diff --git a/view/fr/passchanged_eml.tpl b/view/fr/passchanged_eml.tpl
index bfbd7c5ef..7c4e3d7bb 100644
--- a/view/fr/passchanged_eml.tpl
+++ b/view/fr/passchanged_eml.tpl
@@ -4,16 +4,16 @@ Cher {{$username}},
Veuillez conserver cette information (ou changer immédiatement ce mot de passe temporaire).
-Voici les détails de connections:
+Voici les détails de connexion:
Emplacement du site:⇥{{$siteurl}}
-Usager:⇥{{$email}}
+Utilisateur:⇥{{$email}}
Mot de passe:⇥{{$new_password}}
-Vous pouvez changez ce mot de passe à partir des réglages du profil après vous être connecté.
+Vous pouvez changer ce mot de passe à partir des réglages du profil après vous être connecté.
Sincèrement,
- Administrateur {{$sitename}}
+ L'administrateur {{$sitename}}
\ No newline at end of file
diff --git a/view/fr/register_open_eml.tpl b/view/fr/register_open_eml.tpl
index 7bf52a261..46390bc9d 100644
--- a/view/fr/register_open_eml.tpl
+++ b/view/fr/register_open_eml.tpl
@@ -1,19 +1,18 @@
Un compte a été créé sur {{$sitename}} avec cette adresse de courriel.
-Voici les détails de connections:
+Voici les détails de connexion:
Emplacement du site:⇥{{$siteurl}}
-Usager:⇥{{$email}}
-Mot de passe: (le mot de passe tel qu'il a été spécifier lors de l'enregistrement)
+Utilisateur:⇥{{$email}}
+Mot de passe: (le mot de passe qui a été spécifié lors de l'enregistrement)
-Si ce compte a été créé sans votre accord, vous pouvez
-visiter ce site et réinitialiser le mot de passe.
+Si ce compte a été créé sans votre accord, vous pouvez visiter ce site et réinitialiser le mot de passe.
Ceci vous permettra de supprimer le compte à partir de la page des réglages du profil.
-Veuillez accepter nos excuses pour tous les inconvénients que cela a pu engendrer.
+Veuillez accepter nos excuses pour tous les désagréments engendrés.
-Merci et Bienvenu sur {{$sitename}}.
+Merci et bienvenue sur {{$sitename}}.
Sincèrement,
- Administrateur {{$sitename}}
+ L'administrateur {{$sitename}}
\ No newline at end of file
diff --git a/view/fr/register_verify_eml.tpl b/view/fr/register_verify_eml.tpl
index 09170079c..9d2be027c 100644
--- a/view/fr/register_verify_eml.tpl
+++ b/view/fr/register_verify_eml.tpl
@@ -1,15 +1,15 @@
-Une demande d'enregistrement pour un nouvel usager a été reçue de {{$sitename}} laquelle requiert
+Une demande d'enregistrement pour un nouvel utilisateur a été reçue par {{$sitename}} qui requiert
votre accord.
-Voici les détails de connections:
+Voici les détails de connexion:
Emplacement du site:⇥{{$siteurl}}
-Usager:⇥{{$email}}
+Utilisateur:⇥{{$email}}
Adresse IP: {{$details}}
-Pour confirmer votre accord, veuillez visiter le lien suivant:
+Pour confirmer votre accord, veuillez suivre le lien suivant:
{{$siteurl}}/regmod/allow/{{$hash}}
diff --git a/view/fr/register_verify_member.tpl b/view/fr/register_verify_member.tpl
index c7641d4f7..3461c56a0 100644
--- a/view/fr/register_verify_member.tpl
+++ b/view/fr/register_verify_member.tpl
@@ -1,16 +1,16 @@
Merci de vous être enregistré sur {{$sitename}}.
-Voici les détails de connections:
+Voici les détails de connexion:
Emplacement du site:⇥{{$siteurl}}
-Usager:⇥{{$email}}
+Utilisateur:⇥{{$email}}
Connectez-vous avec le mot de passe que vous avez choisi au moment de l'enregistrement.
-Nous avons besoin de vérifier votre adresse de courriel avant d’autoriser votre accès sur le réseau.
+Nous avons besoin de vérifier votre adresse de courriel avant d’autoriser votre accès au réseau.
-Si vous avez enregistré ce compte, veuillez visiter ce lien:
+Si vous avez enregistré ce compte, suivre ce lien:
{{$siteurl}}/regver/allow/{{$hash}}
diff --git a/view/fr/request_notify_eml.tpl b/view/fr/request_notify_eml.tpl
deleted file mode 100644
index 3e6feb93c..000000000
--- a/view/fr/request_notify_eml.tpl
+++ /dev/null
@@ -1,17 +0,0 @@
-
-Cher {{$myname}},
-
-Vous venez de recevoir une demande de relation sur {{$sitename}}
-
-de '{{$requestor}}'.
-
-Vous pouvez visiter son profil ici {{$url}}.
-
-Veuillez vos connecter pour voir son profil
-et approuver ou ignorer/supprimer cette requête.
-
-{{$siteurl}}
-
-Bien à vous,
-
- Administrateur {{$sitename}} \ No newline at end of file
diff --git a/view/fr/strings.php b/view/fr/strings.php
index 750a9f38f..03a6a0fee 100644
--- a/view/fr/strings.php
+++ b/view/fr/strings.php
@@ -5,7 +5,7 @@ function string_plural_select_fr($n){
return ($n > 1);;
}}
;
-$a->strings["Cannot locate DNS info for database server '%s'"] = "Impossible de trouver les infos DNS du serveur de BD '%s'";
+$a->strings["Cannot locate DNS info for database server '%s'"] = "Impossible de trouver les infos DNS du serveur de base de données '%s'";
$a->strings["Profile Photos"] = "Photos du profil";
$a->strings["%1\$s is now friends with %2\$s"] = "%1\$s et %2\$s sont maintenant amis.";
$a->strings["Sharing notification from Diaspora network"] = "Partage de vos notifications du réseau Diaspora";
@@ -19,7 +19,7 @@ $a->strings["created a new post"] = "a publié";
$a->strings["commented on %s's post"] = "a commenté la publication de %s";
$a->strings["Site Admin"] = "Administrateur";
$a->strings["Bookmarks"] = "Favoris";
-$a->strings["Address Book"] = "Carnet d'adresse";
+$a->strings["Address Book"] = "Carnet d'adresses";
$a->strings["Login"] = "Connexion";
$a->strings["Channel Select"] = "Changer de canal";
$a->strings["Matrix"] = "Matrice";
@@ -39,13 +39,13 @@ $a->strings["Chat"] = "Clavardage";
$a->strings["Search"] = "Recherche";
$a->strings["Probe"] = "Sonder";
$a->strings["Suggest"] = "Suggérer";
-$a->strings["Random Channel"] = "Un Canal au Hasard";
+$a->strings["Random Channel"] = "Un canal au hasard";
$a->strings["Invite"] = "Invitation";
$a->strings["Features"] = "Fonctionalités";
$a->strings["Language"] = "Langue";
$a->strings["Post"] = "Envoyer";
-$a->strings["Profile Photo"] = "Photo du Profil";
-$a->strings["Update"] = "Mise-à-jour";
+$a->strings["Profile Photo"] = "Photo du profil";
+$a->strings["Update"] = "Mise à jour";
$a->strings["Install"] = "Installer";
$a->strings["Purchase"] = "Acheter";
$a->strings["Edit"] = "Éditer";
@@ -64,31 +64,31 @@ $a->strings["%d Connection"] = array(
);
$a->strings["View Connections"] = "Voir les relations";
$a->strings["Save"] = "Sauver";
-$a->strings["poke"] = "cogne";
-$a->strings["poked"] = "C'est fait cogner";
+$a->strings["poke"] = "cogner";
+$a->strings["poked"] = "a cogné";
$a->strings["ping"] = "solliciter";
-$a->strings["pinged"] = "sollicité";
-$a->strings["prod"] = "aiguillonner";
-$a->strings["prodded"] = "aiguillonné";
-$a->strings["slap"] = "giffle";
-$a->strings["slapped"] = "gifflé";
+$a->strings["pinged"] = "a sollicité";
+$a->strings["prod"] = "encourager";
+$a->strings["prodded"] = "a encouragé";
+$a->strings["slap"] = "gifler";
+$a->strings["slapped"] = "a giflé";
$a->strings["finger"] = "pointer";
-$a->strings["fingered"] = "pointé";
-$a->strings["rebuff"] = "rejetter";
-$a->strings["rebuffed"] = "rejetté";
+$a->strings["fingered"] = "a pointé";
+$a->strings["rebuff"] = "rejeter";
+$a->strings["rebuffed"] = "a rejeté";
$a->strings["happy"] = "heureux";
$a->strings["sad"] = "triste";
$a->strings["mellow"] = "mélancolique";
$a->strings["tired"] = "fatigué";
$a->strings["perky"] = "impertinent";
-$a->strings["angry"] = "colèrique";
+$a->strings["angry"] = "colérique";
$a->strings["stupified"] = "stupéfié";
$a->strings["puzzled"] = "perplexe";
$a->strings["interested"] = "intéressé";
$a->strings["bitter"] = "amer";
-$a->strings["cheerful"] = "entrain";
+$a->strings["cheerful"] = "joyeux";
$a->strings["alive"] = "énergique";
-$a->strings["annoyed"] = "agaçé";
+$a->strings["annoyed"] = "agacé";
$a->strings["anxious"] = "anxieux";
$a->strings["cranky"] = "énervé";
$a->strings["disturbed"] = "perturbé";
@@ -121,7 +121,7 @@ $a->strings["bytes"] = "octets";
$a->strings["remove category"] = "supprimer la catégorie";
$a->strings["remove from file"] = "retirer du fichier";
$a->strings["Click to open/close"] = "Cliquer pour ouvrir/fermer";
-$a->strings["Link to Source"] = "Lien vers la Source";
+$a->strings["Link to Source"] = "Lien vers la 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;:";
@@ -170,16 +170,16 @@ $a->strings["Show"] = "Voir plus";
$a->strings["Don't show"] = "Cacher";
$a->strings["Permissions"] = "Permissions";
$a->strings["Close"] = "Fermer";
-$a->strings[" and "] = "et";
+$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["Visit %1\$s's %2\$s"] = "Visiter %1\$s sur %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["Public Timeline"] = "Fil public";
$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["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.";
@@ -349,16 +349,16 @@ $a->strings["%1\$s, %2\$s commented on [zrl=%3\$s]your %4\$s[/zrl]"] = "%1\$s, %
$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"] = "[Matrice Rouge:Notification] %s a publié sur votre profil";
+$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 publié sur votre profil à %3\$s";
$a->strings["%1\$s, %2\$s posted to [zrl=%3\$s]your wall[/zrl]"] = "%1\$s, %2\$s a publié sur [zrl=%3\$s]votre profil[/zrl]";
$a->strings["[Red:Notify] %s tagged you"] = "[Red:Notification] %s vous a étiqueté";
$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 étiqueté[/zrl].";
$a->strings["[Red:Notify] %1\$s poked you"] = "[Red:Notification] %1\$s vous a cogné";
-$a->strings["%1\$s, %2\$s poked you at %3\$s"] = "%1\$s, vous avez été cogné/pointé/sollicité par %2\$s sur %3\$s";
+$a->strings["%1\$s, %2\$s poked you at %3\$s"] = "%1\$s, %2\$s vous a cogné sur %3\$s";
$a->strings["%1\$s, %2\$s [zrl=%2\$s]poked you[/zrl]."] = "%1\$s, %2\$s [zrl=%2\$s]vous a cogné[/zrl].";
-$a->strings["[Red:Notify] %s tagged your post"] = "[Matrice Rouge:Notification] %s a étiqueté votre publication";
+$a->strings["[Red:Notify] %s tagged your post"] = "[Red:Notification] %s a étiqueté votre publication";
$a->strings["%1\$s, %2\$s tagged your post at %3\$s"] = "%1\$s, %2\$s a étiqueté votre publication sur %3\$s";
$a->strings["%1\$s, %2\$s tagged [zrl=%3\$s]your post[/zrl]"] = "%1\$s, %2\$s a étiqueté [zrl=%3\$s]votre publication[/zrl]";
$a->strings["[Red:Notify] Introduction received"] = "[Red:Notification] Nouvelle introduction";
@@ -366,7 +366,7 @@ $a->strings["%1\$s, you've received an new connection request from '%2\$s' at %3
$a->strings["%1\$s, you've received [zrl=%2\$s]a new connection request[/zrl] from %3\$s."] = "%1\$s, vous avez reçu [zrl=%2\$s]une demande de mise en relation[/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 connection request."] = "Merci de visiter %s avant d'approuver (ou non) cette demande de relation.";
-$a->strings["[Red:Notify] Friend suggestion received"] = "[Matrice Rouge:Notification] Nouvelle suggestion d'amitié";
+$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;:";
@@ -437,7 +437,7 @@ $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["Please enter an audio link/URL:"] = "Merci d'entrer l'URL d'un contenu audio&nbsp;:";
$a->strings["Tag term:"] = "Étiquette&nbsp;:";
$a->strings["Save to Folder:"] = "Classer dans le dossier&nbsp;:";
$a->strings["Where are you right now?"] = "Où êtes-vous présentement?";
@@ -565,7 +565,7 @@ $a->strings["(Unknown)"] = "(Inconnu)";
$a->strings["Visible to anybody on the internet."] = "Visible à tout le monde sur internet.";
$a->strings["Visible to you only."] = "Visible pour vous seulement.";
$a->strings["Visible to anybody in this network."] = "Visible sur toute la Matrice.";
-$a->strings["Visible to anybody authenticated."] = "Visible aux usagers authentifiés.";
+$a->strings["Visible to anybody authenticated."] = "Visible aux utilisateurs authentifiés.";
$a->strings["Visible to anybody on %s."] = "Visible pour tous sur %s.";
$a->strings["Visible to all connections."] = "Visible pour tous les contacts.";
$a->strings["Visible to approved connections."] = "Visible aux contacts approuvés.";
@@ -625,7 +625,7 @@ $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:"] = "Étiquettes:";
+$a->strings["Tags:"] = "Étiquettes&nbsp;:";
$a->strings["Political Views:"] = "Opinions politiques&nbsp;:";
$a->strings["Religion:"] = "Religion&nbsp;:";
$a->strings["About:"] = "À propos&nbsp;:";
@@ -637,7 +637,7 @@ $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["Film/dance/culture/entertainment:"] = "Cinéma/danse/culture/divertissement&nbsp;:";
$a->strings["Love/Romance:"] = "Vie sentimentale/amoureuse&nbsp;:";
$a->strings["Work/employment:"] = "Travail&nbsp;:";
$a->strings["School/education:"] = "Cursus&nbsp;:";
@@ -735,11 +735,11 @@ $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["Notice: Permissions have changed but have not yet been submitted."] = "Note&nbsp;: Les permissions ont changées, mais n'ont pas encore été sauvées.";
+$a->strings["Notice: Permissions have changed but have not yet been submitted."] = "Note&nbsp;: Les permissions ont changé, mais n'ont pas encore été soumises.";
$a->strings["close all"] = "fermer tout";
-$a->strings["timeago.prefixAgo"] = "timeago.prefixAgo";
+$a->strings["timeago.prefixAgo"] = "Il y a";
$a->strings["timeago.prefixFromNow"] = "timeago.prefixFromNow";
-$a->strings["ago"] = "auparavant";
+$a->strings["ago"] = " ";
$a->strings["from now"] = "de maintenant";
$a->strings["less than a minute"] = "moins d'une minute";
$a->strings["about a minute"] = "environ une minute";
@@ -840,7 +840,7 @@ $a->strings["Can administer my channel resources"] = "Peut administrer les resso
$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["Set your current mood and tell your friends"] = "Indiquez votre humeur du moment à vos amis";
$a->strings["Menu not found."] = "Menu introuvable.";
-$a->strings["Menu element updated."] = "Entrée de menu mis-à-jour.";
+$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.";
@@ -877,7 +877,7 @@ $a->strings["Key and Secret are required"] = "Clef et secret sont requis";
$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["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.";
@@ -915,7 +915,7 @@ $a->strings["%s - (Experimental)"] = "%s - (Expérimental)";
$a->strings["Display Settings"] = "Affichage";
$a->strings["Display Theme:"] = "Thème&nbsp;:";
$a->strings["Mobile Theme:"] = "Thème mobile&nbsp;:";
-$a->strings["Enable user zoom on mobile devices"] = "Permettre à l'usager d'un mobile d'agrandir le contenu";
+$a->strings["Enable user zoom on mobile devices"] = "Permettre à l'utilisateur d'un mobile d'agrandir le contenu";
$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;:";
@@ -938,13 +938,13 @@ $a->strings["or"] = "ou";
$a->strings["Your channel address is"] = "Voici l'adresse de votre canal";
$a->strings["Channel Settings"] = "Canal";
$a->strings["Basic Settings"] = "Basique";
-$a->strings["Your Timezone:"] = "Fureau Horaire&nbsp;:";
+$a->strings["Your Timezone:"] = "Fuseau horaire&nbsp;:";
$a->strings["Default Post Location:"] = "Emplacement géographique par défaut&nbsp;:";
$a->strings["Geographical location to display on your posts"] = "Emplacement géographique à afficher sur vos publications";
$a->strings["Use Browser Location:"] = "Utiliser la géolocalisation 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 l'étiquette <em>#NSFW</em> - Not Safe For Work)";
-$a->strings["Security and Privacy Settings"] = "Réglages de Sécurité et vie privée";
+$a->strings["Security and Privacy Settings"] = "Réglages de 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;:";
@@ -952,7 +952,7 @@ $a->strings["Very Public - <em>extremely permissive (should be used with caution
$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["Allow others to tag your posts"] = "Autoriser les autres à \"étiqueté\" vos publications";
+$a->strings["Allow others to tag your posts"] = "Autoriser les autres à \"étiqueter\" vos publications";
$a->strings["Often used by the community to retro-actively flag inappropriate content"] = "Souvent utilisé par la communauté pour distinguer le contenu innaproprié";
$a->strings["Advanced Privacy Settings"] = "Réglages avancés";
$a->strings["Expire other channel content after this many days"] = "Faire expirer le contenu des autres canaux après n jours";
@@ -975,15 +975,15 @@ $a->strings["Someone writes a followup comment"] = "Quelqu'un a commenté sur vo
$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 cogné/pointé/etc. dans une publication";
+$a->strings["You are poked/prodded/etc. in a post"] = "Vous êtes cogné/encouragé/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 <a href=\"settings/features\">Settings > Additional features</a>) to adjust!"] = "Mode expert requis (<a href=\"settings/features\">Réglages > Fonctions supplémentaires</a>) svp ajuster!";
$a->strings["Miscellaneous Settings"] = "Divers";
$a->strings["Personal menu to display in your channel pages"] = "Menu personnel tel qu'il apparaîtra sur les pages de votre canal";
$a->strings["Remove this channel"] = "Supprimer ce canal";
-$a->strings["Poke/Prod"] = "Cogner/Solliciter";
-$a->strings["poke, prod or do other things to somebody"] = "Cogner, pointer, et autres choses à faire à quelqu'un";
+$a->strings["Poke/Prod"] = "Cogner/Encourager";
+$a->strings["poke, prod or do other things to somebody"] = "Cogner, encourager, 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";
@@ -1116,7 +1116,7 @@ $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["Registration on this site/hub is by approval only."] = "L'inscription sur cette instance/ce site est soumise à 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"] = "Règles du Service";
@@ -1131,7 +1131,7 @@ $a->strings["Please re-enter your password"] = "Confirmez-le";
$a->strings["Away"] = "Absent";
$a->strings["Online"] = "En ligne";
$a->strings["Please login."] = "Merci de vous connecter.";
-$a->strings["Red Matrix - Guests: Username: {your email address}, Password: +++"] = "Matrice Rouge - Pour les invités: Usager = {votre courriel}, Mot de passe = +++";
+$a->strings["Red Matrix - Guests: Username: {your email address}, Password: +++"] = "Matrice Rouge - Pour les invités: Nom d'utilisateur = {votre courriel}, Mot de passe = +++";
$a->strings["Channel removals are not allowed within 48 hours of changing the account password."] = "Il est impossible de supprimer un canal à l'intérieur de 48 heures après avoir changé le mot de passe d'un compte.";
$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é.";
@@ -1141,7 +1141,7 @@ $a->strings["By default only the instance of the channel located on this hub wil
$a->strings["Remove Channel"] = "Enlever le canal";
$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["No connections in common."] = "Pas de relation en commun.";
$a->strings["We encountered a problem while logging in with the OpenID you provided. Please check the correct spelling of the ID."] = "Nous avons rencontré un problème avec l'OpenID que vous nous avez fourni. Merci de vérifier que l'ID est bien saisi.";
$a->strings["The error message was:"] = "Le message d'erreur était&nbsp;:";
$a->strings["Authentication failed."] = "Échec de l'authentification.";
@@ -1251,7 +1251,7 @@ $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["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é";
@@ -1310,7 +1310,7 @@ $a->strings["Please use SSL (https) URL if available."] = "Merci d'utiliser SSL/
$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["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)";
@@ -1360,7 +1360,7 @@ $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["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["Item not found"] = "Élément introuvable";
$a->strings["Edit Block"] = "Éditer bloc";
$a->strings["Delete block?"] = "Supprimer le bloc?";
@@ -1473,7 +1473,7 @@ $a->strings["Suggest a friend for %s"] = "Suggérer une relation à %s";
$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["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["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";
@@ -1511,7 +1511,7 @@ $a->strings["Active plugins"] = "Extensions actives";
$a->strings["Site settings updated."] = "Réglages du site sauvegardés.";
$a->strings["No special theme for accessibility"] = "Pas de thème spécifique pour l'accessibilité";
$a->strings["Yes - with approval"] = "Oui - avec approbation";
-$a->strings["My site is not a public server"] = "Mon site n'est pas un serveur publique";
+$a->strings["My site is not a public server"] = "Mon site n'est pas un serveur public";
$a->strings["My site has paid access only"] = "Mon site est payant";
$a->strings["My site has free access only"] = "Mon site est gratuit";
$a->strings["My site offers free accounts with optional paid upgrades"] = "Mon site offre des comptes gratuits avec des ajouts payants";
@@ -1633,7 +1633,7 @@ $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 votre installation de la Matrice Rouge.";
$a->strings["Log level"] = "Niveau de journalisation";
-$a->strings["Thing updated"] = "Chose mise-à-jour";
+$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";
@@ -1703,7 +1703,7 @@ $a->strings["Action completed."] = "Action complétée.";
$a->strings["Thank you."] = "Merci.";
$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["No connections."] = "Pas de relations.";
+$a->strings["No connections."] = "Pas de relation.";
$a->strings["Visit %s's profile [%s]"] = "Visiter le profil de %s [%s]";
$a->strings["View Connnections"] = "Voir les relations";
$a->strings["No valid account found."] = "Aucun compte valide trouvé.";
@@ -1811,7 +1811,7 @@ $a->strings["View Results"] = "Voir les Résultats";
$a->strings["Friendica Photo Album Import"] = "Importer votre Album Photo Friendica";
$a->strings["This will import all your Friendica photo albums to this Red channel."] = "Cette fonction va importer tous vos albums photos Friendica dans ce canal de la Matrice Rouge.";
$a->strings["Friendica Server base URL"] = "URL vers le serveur Friendica";
-$a->strings["Friendica Login Username"] = "Nom d'usager Friendica";
+$a->strings["Friendica Login Username"] = "Nom d'utilisateur Friendica";
$a->strings["Friendica Login Password"] = "Mot de passe Friendica";
$a->strings["Account removals are not allowed within 48 hours of changing the account password."] = "Il est impossible de supprimer un compte à l'intérieur de 48 heures après avoir changé le mot de passe d'un compte.";
$a->strings["Remove This Account"] = "Supprimer ce Compte";
@@ -1887,8 +1887,8 @@ $a->strings["Set size of conversation author photo"] = "Définir la taille de la
$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["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["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";
diff --git a/view/fr/update_fail_eml.tpl b/view/fr/update_fail_eml.tpl
index 39dc6fa03..5fbad2c8a 100644
--- a/view/fr/update_fail_eml.tpl
+++ b/view/fr/update_fail_eml.tpl
@@ -1,16 +1,16 @@
Bonjour,
Je suis le serveur web de {{$sitename}};
-Les développeurs de la Matrice Rouge viennent de lancer une mise-à-jour {{$update}} récemment,
+Les développeurs de la Matrice Rouge ont lancé une mise à jour {{$update}} récemment,
toutefois, lorsque j'ai essayé de l'installer, quelques choses d'inattendu s'est produit.
-
+
Nous devons corriger la situation et cela requiert votre intervention.
-Veuillez contacter un développeur de la Matrice Rouge si vous avez de la difficulté à déterminer
+Veuillez contacter un développeur de la Matrice Rouge si vous avez des difficultés à déterminer
la meilleure approche pour résoudre le problème. Ma base de donnée est peut-être corrompue.
Le message d'erreur est '{{$error}}'.
-Veuillez accepter mes plus humbles excuses pour les inconvénients,
+Veuillez accepter mes plus humbles excuses pour les désagréments,
votre serveur web a {{$siteurl}} \ No newline at end of file
diff --git a/view/fr/wall_received_eml.tpl b/view/fr/wall_received_eml.tpl
deleted file mode 100644
index 6a208fb5b..000000000
--- a/view/fr/wall_received_eml.tpl
+++ /dev/null
@@ -1,18 +0,0 @@
-
-Cher(e) $username,
-
- « $from » a publié quelque chose sur le mur de votre profil.
-
------
-$body
------
-
-Connectez-vous à $siteurl pour voir et/ou supprimer l'élément :
-
-$display
-
-Merci,
- l'administrateur de $sitename
-
-
-
diff --git a/view/it/cmnt_received_eml.tpl b/view/it/cmnt_received_eml.tpl
deleted file mode 100644
index 1991d29ae..000000000
--- a/view/it/cmnt_received_eml.tpl
+++ /dev/null
@@ -1,18 +0,0 @@
-
-Caro/a $username,
-
- '$from' ha commentato un elemeto/conversazione che stai seguendo.
-
------
-$body
------
-
-Accedi a $siteurl per verdere la conversazione completa:
-
-$display
-
-Grazie,
- L'amministratore di $sitename
-
-
-
diff --git a/view/it/cmnt_received_html_body_eml.tpl b/view/it/cmnt_received_html_body_eml.tpl
deleted file mode 100644
index 5f2edb84b..000000000
--- a/view/it/cmnt_received_html_body_eml.tpl
+++ /dev/null
@@ -1,25 +0,0 @@
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional //EN">
-<html>
-<head>
- <title>Friendika Messaggio</title>
- <meta http-equiv="Content-Type" content="text/html;charset=utf-8" />
-</head>
-<body>
-<table style="border:1px solid #ccc">
- <tbody>
- <tr><td colspan="2" style="background:#3b5998; color:#FFFFFF; font-weight:bold; font-family:'lucida grande', tahoma, verdana,arial, sans-serif; padding: 4px 8px; vertical-align: middle; font-size:16px; letter-spacing: -0.03em; text-align: left;"><img style="width:32px;height:32px;" src='$siteurl/images/friendika-32.png'><span style="padding:7px;">Friendika</span></td></tr>
-
- <tr><td style="padding-top:22px;" colspan="2">$from ha commentato un elemeto/conversazione che stai seguendo.</td></tr>
-
-
- <tr><td style="padding-left:22px;padding-top:22px;width:60px;" valign="top" rowspan=3><a href="$url"><img style="border:0px;width:48px;height:48px;" src="$thumb"></a></td>
- <td style="padding-top:22px;"><a href="$url">$from</a></td></tr>
- <tr><td style="padding-bottom:5px;"></td></tr>
- <tr><td style="padding-right:22px;">$body</td></tr>
- <tr><td style="padding-top:11px;padding-bottom:11px;" colspan="2"><a href="$display">Accedi a $siteurl per verdere la conversazione completa:</a>.</td></tr>
- <tr><td></td><td>Grazie,</td></tr>
- <tr><td></td><td>L'amministratore di $sitename</td></tr>
- </tbody>
-</table>
-</body>
-</html> \ No newline at end of file
diff --git a/view/it/cmnt_received_text_body_eml.tpl b/view/it/cmnt_received_text_body_eml.tpl
deleted file mode 100644
index 1991d29ae..000000000
--- a/view/it/cmnt_received_text_body_eml.tpl
+++ /dev/null
@@ -1,18 +0,0 @@
-
-Caro/a $username,
-
- '$from' ha commentato un elemeto/conversazione che stai seguendo.
-
------
-$body
------
-
-Accedi a $siteurl per verdere la conversazione completa:
-
-$display
-
-Grazie,
- L'amministratore di $sitename
-
-
-
diff --git a/view/it/follow_notify_eml.tpl b/view/it/follow_notify_eml.tpl
deleted file mode 100644
index af854babb..000000000
--- a/view/it/follow_notify_eml.tpl
+++ /dev/null
@@ -1,14 +0,0 @@
-
-Ciao {{$myname}},
-
-'{{$requestor}}' ha appena iniziato a seguirti su {{$sitename}}.
-
-Se vuoi, puoi vedere il suo profilo su {{$url}}.
-
-Per approvare o cancellare la richiesta devi accedere al tuo sito.
-
-{{$siteurl}}
-
-Saluti,
-
- L'amministratore di {{$sitename}} \ No newline at end of file
diff --git a/view/it/friend_complete_eml.tpl b/view/it/friend_complete_eml.tpl
deleted file mode 100644
index 041568ab8..000000000
--- a/view/it/friend_complete_eml.tpl
+++ /dev/null
@@ -1,22 +0,0 @@
-
-Ciao {{$myname}},
-
- Grandi notizie... '{{$fn}}' (sul server {{$dfrn_url}}) ha accettato
-la tua richiesta di entrare in contatto su '{{$sitename}}'.
-
-Ora siete amici e potete scambiare messaggi di stato, aggiornamenti, foto e messaggi privati
-senza restrizioni.
-
-Visita la tua pagina 'Contatti' su {{$sitename}}
-per modificare come preferisci questa amicizia.
-
-{{$siteurl}}
-
-[Per esempio, potresti anche creare un tuo profilo specifico da mostrare, con informazioni
-che non vuoi rendere disponibili a tutti, e poi assegnare il diritto di vederlo a '{{$fn}}'].
-
-Con affetto,
-
- L'amministratore di {{$sitename}}
-
- \ No newline at end of file
diff --git a/view/it/intro_complete_eml.tpl b/view/it/intro_complete_eml.tpl
deleted file mode 100644
index 2fd1e1bd0..000000000
--- a/view/it/intro_complete_eml.tpl
+++ /dev/null
@@ -1,22 +0,0 @@
-
-Ciao {{$username}},
-
- '{{$fn}}' (sul server {{$dfrn_url}}) ha accettato
-la tua richiesta di entrare in contatto su '{{$sitename}}'.
-
- Adesso sei tra i "fan" di '{{$fn}}', che quindi non hanno accesso
-ad alcune funzioni, come per esempio i messaggi privati.
- Se si tratta di una comunità o di una celebrità,
-questa limitazione è assegnata automaticamente.
-
- '{{$fn}}' potrà anche scegliere di estendere le tue possibilità
-di comunicare, nel futuro.
-
- Inizierai subito a ricevere gli aggiornamenti da '{{$fn}}',
-che appariranno nella pagina 'La tua rete'
-
-su {{$siteurl}}
-
-Saluti,
-
- L'amministratore di {{$sitename}} \ No newline at end of file
diff --git a/view/it/mail_received_html_body_eml.tpl b/view/it/mail_received_html_body_eml.tpl
deleted file mode 100644
index 847954550..000000000
--- a/view/it/mail_received_html_body_eml.tpl
+++ /dev/null
@@ -1,25 +0,0 @@
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional //EN">
-<html>
-<head>
- <title>Friendika Messsaggio</title>
- <meta http-equiv="Content-Type" content="text/html;charset=utf-8" />
-</head>
-<body>
-<table style="border:1px solid #ccc">
- <tbody>
- <tr><td colspan="2" style="background:#3b5998; color:#FFFFFF; font-weight:bold; font-family:'lucida grande', tahoma, verdana,arial, sans-serif; padding: 4px 8px; vertical-align: middle; font-size:16px; letter-spacing: -0.03em; text-align: left;"><img style="width:32px;height:32px;" src='$siteurl/images/friendika-32.png'><span style="padding:7px;">Friendika</span></td></tr>
-
- <tr><td style="padding-top:22px;" colspan="2">Hai ricevuto un nuovo messsaggio privato su $siteName da '$from'.</td></tr>
-
-
- <tr><td style="padding-left:22px;padding-top:22px;width:60px;" valign="top" rowspan=3><a href="$url"><img style="border:0px;width:48px;height:48px;" src="$thumb"></a></td>
- <td style="padding-top:22px;"><a href="$url">$from</a></td></tr>
- <tr><td style="font-weight:bold;padding-bottom:5px;">$title</td></tr>
- <tr><td style="padding-right:22px;">$htmlversion</td></tr>
- <tr><td style="padding-top:11px;padding-bottom:11px;" colspan="2">Accedi a <a href="$siteurl">$siteurl</a> per leggere e rispondere ai tuoi messaggi privati.</td></tr>
- <tr><td></td><td>Grazie,</td></tr>
- <tr><td></td><td>L'amministratore di $siteName</td></tr>
- </tbody>
-</table>
-</body>
-</html>
diff --git a/view/it/mail_received_text_body_eml.tpl b/view/it/mail_received_text_body_eml.tpl
deleted file mode 100644
index c7da9533f..000000000
--- a/view/it/mail_received_text_body_eml.tpl
+++ /dev/null
@@ -1,10 +0,0 @@
-Hai ricevuto un nuovo messsaggio privato su $siteName da '$from'.
-
-$title
-
-$textversion
-
-Accedi a $siteurl per leggere e rispondere ai tuoi messaggi privati.
-
-Grazie,
-L'amministratore di $siteName
diff --git a/view/it/messages.po b/view/it/messages.po
index 881d979b1..cb3ca700a 100644
--- a/view/it/messages.po
+++ b/view/it/messages.po
@@ -13,8 +13,8 @@ msgid ""
msgstr ""
"Project-Id-Version: Red Matrix\n"
"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2014-08-29 00:03-0700\n"
-"PO-Revision-Date: 2014-09-01 12:59+0000\n"
+"POT-Creation-Date: 2014-12-12 00:03-0800\n"
+"PO-Revision-Date: 2014-12-15 08:35+0000\n"
"Last-Translator: tuscanhobbit <pynolo@tarine.net>\n"
"Language-Team: Italian (http://www.transifex.com/projects/p/red-matrix/language/it/)\n"
"MIME-Version: 1.0\n"
@@ -23,29 +23,49 @@ msgstr ""
"Language: it\n"
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
-#: ../../include/dba/dba_driver.php:50
+#: ../../include/dba/dba_driver.php:142
#, php-format
msgid "Cannot locate DNS info for database server '%s'"
msgstr "Non trovo le informazioni DNS per il database server '%s'"
-#: ../../include/photo/photo_driver.php:653 ../../include/photos.php:51
+#: ../../include/photo/photo_driver.php:680 ../../include/photos.php:52
#: ../../mod/profile_photo.php:142 ../../mod/profile_photo.php:301
-#: ../../mod/profile_photo.php:421 ../../mod/photos.php:91
-#: ../../mod/photos.php:659 ../../mod/photos.php:681
+#: ../../mod/profile_photo.php:423 ../../mod/photos.php:91
+#: ../../mod/photos.php:654
msgid "Profile Photos"
msgstr "Foto del profilo"
-#: ../../include/network.php:557
-msgid "view full size"
-msgstr "guarda nelle dimensioni reali"
+#: ../../include/follow.php:28
+msgid "Channel is blocked on this site."
+msgstr "Il canale è bloccato per questo sito."
-#: ../../include/oembed.php:163
-msgid "Embedded content"
-msgstr "Contenuti incorporati"
+#: ../../include/follow.php:33
+msgid "Channel location missing."
+msgstr "Manca l'indirizzo del canale."
-#: ../../include/oembed.php:172
-msgid "Embedding disabled"
-msgstr "Contenuti incorporati - funzione disabilitata"
+#: ../../include/follow.php:82
+msgid "Response from remote channel was incomplete."
+msgstr "La risposta dal canale non è completa."
+
+#: ../../include/follow.php:99
+msgid "Channel was deleted and no longer exists."
+msgstr "Il canale è stato rimosso e non esiste più."
+
+#: ../../include/follow.php:135 ../../include/follow.php:202
+msgid "Protocol disabled."
+msgstr "Protocollo disabilitato."
+
+#: ../../include/follow.php:176
+msgid "Channel discovery failed."
+msgstr "La ricerca del canale non ha avuto successo."
+
+#: ../../include/follow.php:192
+msgid "local account not found."
+msgstr "l'account locale non è stato trovato."
+
+#: ../../include/follow.php:220
+msgid "Cannot connect to yourself."
+msgstr "Non puoi connetterti a te stesso."
#: ../../include/notify.php:23
msgid "created a new post"
@@ -56,311 +76,160 @@ msgstr "Ha creato un nuovo articolo"
msgid "commented on %s's post"
msgstr "ha commentato l'articolo di %s"
-#: ../../include/apps.php:123
-msgid "Site Admin"
-msgstr "Amministrazione sito"
-
-#: ../../include/apps.php:124 ../../include/nav.php:113
-#: ../../include/conversation.php:1561
-msgid "Bookmarks"
-msgstr "Segnalibri"
-
-#: ../../include/apps.php:125
-msgid "Address Book"
-msgstr "Rubrica"
-
-#: ../../include/apps.php:126 ../../include/nav.php:119 ../../boot.php:1493
-msgid "Login"
-msgstr "Accedi"
-
-#: ../../include/apps.php:127 ../../include/nav.php:209
-#: ../../mod/manage.php:148
-msgid "Channel Manager"
-msgstr "Gestione canali"
-
-#: ../../include/apps.php:128 ../../include/nav.php:183
-msgid "Matrix"
-msgstr "RedMatrix"
-
-#: ../../include/apps.php:129 ../../include/nav.php:211
-#: ../../include/widgets.php:521 ../../mod/admin.php:950
-#: ../../mod/admin.php:1155
-msgid "Settings"
-msgstr "Impostazioni"
-
-#: ../../include/apps.php:130 ../../include/nav.php:105
-#: ../../include/reddav.php:1280 ../../include/conversation.php:1539
-#: ../../mod/fbrowser.php:114
-msgid "Files"
-msgstr "Archivio file"
-
-#: ../../include/apps.php:131 ../../include/nav.php:115
-#: ../../include/conversation.php:1572 ../../mod/webpages.php:79
-msgid "Webpages"
-msgstr "Pagine web"
-
-#: ../../include/apps.php:132 ../../include/nav.php:186
-msgid "Channel Home"
-msgstr "Bacheca del canale"
-
-#: ../../include/apps.php:133 ../../include/identity.php:991
-#: ../../include/identity.php:1109 ../../mod/profperm.php:112
-msgid "Profile"
-msgstr "Profilo"
-
-#: ../../include/apps.php:134 ../../include/nav.php:104
-#: ../../include/conversation.php:1530 ../../mod/fbrowser.php:25
-msgid "Photos"
-msgstr "Foto"
-
-#: ../../include/apps.php:135 ../../include/nav.php:205
-#: ../../mod/events.php:396
-msgid "Events"
-msgstr "Eventi"
-
-#: ../../include/apps.php:136 ../../include/nav.php:172
-#: ../../mod/directory.php:226
-msgid "Directory"
-msgstr "Tutti i canali"
-
-#: ../../include/apps.php:137 ../../include/nav.php:164 ../../mod/help.php:60
-#: ../../mod/help.php:65
-msgid "Help"
-msgstr "Guida"
-
-#: ../../include/apps.php:138 ../../include/nav.php:197
-msgid "Mail"
-msgstr "Messaggi"
-
-#: ../../include/apps.php:139 ../../mod/mood.php:131
-msgid "Mood"
-msgstr "Umore"
-
-#: ../../include/apps.php:140 ../../include/conversation.php:963
-msgid "Poke"
-msgstr "Poke"
-
-#: ../../include/apps.php:141 ../../include/nav.php:110
-msgid "Chat"
-msgstr "Area chat"
-
-#: ../../include/apps.php:142 ../../include/nav.php:169
-#: ../../include/text.php:815 ../../include/text.php:829
-#: ../../mod/search.php:30
-msgid "Search"
-msgstr "Cerca"
-
-#: ../../include/apps.php:143
-msgid "Probe"
-msgstr "Diagnostica"
-
-#: ../../include/apps.php:144
-msgid "Suggest"
-msgstr "Suggerisci"
-
-#: ../../include/apps.php:145
-msgid "Random Channel"
-msgstr "Canale casuale"
-
-#: ../../include/apps.php:146
-msgid "Invite"
-msgstr "Invita"
-
-#: ../../include/apps.php:147
-msgid "Features"
-msgstr "Funzionalità"
-
-#: ../../include/apps.php:148
-msgid "Language"
-msgstr "Lingua"
-
-#: ../../include/apps.php:149
-msgid "Post"
-msgstr "Articolo"
-
-#: ../../include/apps.php:150
-msgid "Profile Photo"
-msgstr "Foto del profilo"
-
-#: ../../include/apps.php:239 ../../mod/settings.php:79
-#: ../../mod/settings.php:543
-msgid "Update"
-msgstr "Aggiorna"
-
-#: ../../include/apps.php:239
-msgid "Install"
-msgstr "Installa"
-
-#: ../../include/apps.php:244
-msgid "Purchase"
-msgstr "Acquista"
-
-#: ../../include/apps.php:246 ../../include/page_widgets.php:8
-#: ../../include/page_widgets.php:36 ../../include/reddav.php:1289
-#: ../../include/menu.php:42 ../../include/ItemObject.php:96
-#: ../../mod/settings.php:579 ../../mod/blocks.php:99
-#: ../../mod/connections.php:396 ../../mod/editblock.php:111
-#: ../../mod/editlayout.php:106 ../../mod/editpost.php:112
-#: ../../mod/editwebpage.php:143 ../../mod/thing.php:235
-#: ../../mod/layouts.php:121 ../../mod/menu.php:59 ../../mod/webpages.php:127
-msgid "Edit"
-msgstr "Modifica"
-
-#: ../../include/apps.php:247 ../../include/reddav.php:1290
-#: ../../include/conversation.php:648 ../../include/ItemObject.php:108
-#: ../../mod/settings.php:580 ../../mod/connedit.php:440
-#: ../../mod/photos.php:1052 ../../mod/group.php:176 ../../mod/admin.php:730
-#: ../../mod/admin.php:860 ../../mod/thing.php:236
-msgid "Delete"
-msgstr "Elimina"
-
-#: ../../include/apps.php:328 ../../include/apps.php:379
-#: ../../include/reddav.php:1202 ../../mod/connedit.php:476
-msgid "Unknown"
-msgstr "Sconosciuto"
+#: ../../include/security.php:357
+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 "I controlli di sicurezza sono falliti. Probabilmente è accaduto perché la pagina è stata tenuta aperta troppo a lungo (ore?) prima di inviare il contenuto."
#: ../../include/page_widgets.php:6
msgid "New Page"
msgstr "Nuova pagina web"
-#: ../../include/page_widgets.php:39 ../../mod/blocks.php:102
-#: ../../mod/layouts.php:125 ../../mod/webpages.php:130
+#: ../../include/page_widgets.php:8 ../../include/page_widgets.php:36
+#: ../../include/menu.php:42 ../../include/RedDAV/RedBrowser.php:250
+#: ../../include/apps.php:249 ../../include/ItemObject.php:100
+#: ../../mod/blocks.php:132 ../../mod/settings.php:627
+#: ../../mod/connections.php:381 ../../mod/connections.php:394
+#: ../../mod/connections.php:413 ../../mod/thing.php:233
+#: ../../mod/webpages.php:162 ../../mod/editblock.php:143
+#: ../../mod/editlayout.php:139 ../../mod/editpost.php:112
+#: ../../mod/editwebpage.php:174 ../../mod/layouts.php:167
+#: ../../mod/menu.php:78
+msgid "Edit"
+msgstr "Modifica"
+
+#: ../../include/page_widgets.php:39 ../../mod/blocks.php:135
+#: ../../mod/webpages.php:165 ../../mod/layouts.php:171
msgid "View"
msgstr "Guarda"
-#: ../../include/page_widgets.php:40 ../../include/conversation.php:1109
-#: ../../include/ItemObject.php:592 ../../mod/editblock.php:141
-#: ../../mod/editlayout.php:135 ../../mod/editpost.php:140
-#: ../../mod/editwebpage.php:174 ../../mod/photos.php:1003
-#: ../../mod/webpages.php:131
+#: ../../include/page_widgets.php:40 ../../include/conversation.php:1104
+#: ../../include/ItemObject.php:630 ../../mod/webpages.php:166
+#: ../../mod/editblock.php:173 ../../mod/editlayout.php:168
+#: ../../mod/editpost.php:140 ../../mod/editwebpage.php:205
+#: ../../mod/photos.php:998
msgid "Preview"
msgstr "Anteprima"
-#: ../../include/page_widgets.php:41 ../../mod/webpages.php:132
+#: ../../include/page_widgets.php:41 ../../mod/webpages.php:167
msgid "Actions"
msgstr "Azioni"
-#: ../../include/page_widgets.php:42 ../../mod/webpages.php:133
+#: ../../include/page_widgets.php:42 ../../mod/webpages.php:168
msgid "Page Link"
msgstr "Link alla pagina"
-#: ../../include/page_widgets.php:43 ../../mod/webpages.php:134
+#: ../../include/page_widgets.php:43 ../../mod/webpages.php:169
msgid "Title"
msgstr "Titolo"
-#: ../../include/page_widgets.php:44 ../../mod/webpages.php:135
+#: ../../include/page_widgets.php:44 ../../mod/webpages.php:170
msgid "Created"
msgstr "Creato"
-#: ../../include/page_widgets.php:45 ../../mod/webpages.php:136
+#: ../../include/page_widgets.php:45 ../../mod/webpages.php:171
msgid "Edited"
msgstr "Modificato"
-#: ../../include/security.php:301
-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 "L'identificativo di sicurezza del modulo che hai riempito non è corretto. Probabilmente è accaduto perché la pagina è stata tenuta aperta troppo a lungo (ore?) prima di inviare il contenuto."
+#: ../../include/contact_widgets.php:14
+#, php-format
+msgid "%d invitation available"
+msgid_plural "%d invitations available"
+msgstr[0] "%d invito disponibile"
+msgstr[1] "%d inviti disponibili"
-#: ../../include/zot.php:654
-msgid "Invalid data packet"
-msgstr "Dati non validi"
+#: ../../include/contact_widgets.php:19 ../../mod/admin.php:416
+msgid "Advanced"
+msgstr "Avanzate"
-#: ../../include/zot.php:668
-msgid "Unable to verify channel signature"
-msgstr "Impossibile verificare la firma elettronica del canale"
+#: ../../include/contact_widgets.php:22
+msgid "Find Channels"
+msgstr "Ricerca canali"
-#: ../../include/zot.php:865
-#, php-format
-msgid "Unable to verify site signature for %s"
-msgstr "Impossibile verificare la firma elettronica del sito %s"
+#: ../../include/contact_widgets.php:23
+msgid "Enter name or interest"
+msgstr "Scrivi un nome o un interesse"
-#: ../../include/photos.php:15 ../../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:116 ../../include/items.php:3692
-#: ../../mod/mood.php:112 ../../mod/mitem.php:73 ../../mod/achievements.php:27
-#: ../../mod/settings.php:494 ../../mod/poke.php:128 ../../mod/api.php:26
-#: ../../mod/api.php:31 ../../mod/authtest.php:13 ../../mod/profile.php:64
-#: ../../mod/profile.php:72 ../../mod/block.php:22 ../../mod/block.php:72
-#: ../../mod/profile_photo.php:263 ../../mod/profile_photo.php:276
-#: ../../mod/blocks.php:29 ../../mod/blocks.php:44 ../../mod/profiles.php:179
-#: ../../mod/profiles.php:560 ../../mod/bookmarks.php:46
-#: ../../mod/channel.php:89 ../../mod/channel.php:193
-#: ../../mod/channel.php:236 ../../mod/chat.php:90 ../../mod/chat.php:95
-#: ../../mod/register.php:71 ../../mod/regmod.php:18 ../../mod/common.php:35
-#: ../../mod/network.php:12 ../../mod/connections.php:169
-#: ../../mod/connedit.php:254 ../../mod/delegate.php:6 ../../mod/page.php:30
-#: ../../mod/page.php:80 ../../mod/setup.php:203 ../../mod/editblock.php:34
-#: ../../mod/pdledit.php:21 ../../mod/editlayout.php:48
-#: ../../mod/editpost.php:13 ../../mod/editwebpage.php:44
-#: ../../mod/editwebpage.php:83 ../../mod/photos.php:68
-#: ../../mod/photos.php:526 ../../mod/sources.php:66 ../../mod/events.php:160
-#: ../../mod/filestorage.php:10 ../../mod/filestorage.php:59
-#: ../../mod/filestorage.php:75 ../../mod/filestorage.php:98
-#: ../../mod/fsuggest.php:78 ../../mod/suggest.php:26 ../../mod/group.php:9
-#: ../../mod/thing.php:249 ../../mod/thing.php:266 ../../mod/thing.php:301
-#: ../../mod/invite.php:13 ../../mod/invite.php:104 ../../mod/item.php:178
-#: ../../mod/item.php:186 ../../mod/item.php:915 ../../mod/layouts.php:27
-#: ../../mod/layouts.php:39 ../../mod/like.php:154
-#: ../../mod/viewconnections.php:22 ../../mod/viewconnections.php:27
-#: ../../mod/viewsrc.php:12 ../../mod/mail.php:108 ../../mod/manage.php:6
-#: ../../mod/menu.php:44 ../../mod/webpages.php:40 ../../mod/message.php:16
-#: ../../mod/new_channel.php:66 ../../mod/new_channel.php:97
-#: ../../mod/notifications.php:66 ../../mod/appman.php:66 ../../index.php:186
-#: ../../index.php:361
-msgid "Permission denied."
-msgstr "Permesso negato."
+#: ../../include/contact_widgets.php:24
+msgid "Connect/Follow"
+msgstr "Aggiungi"
-#: ../../include/photos.php:104
-#, php-format
-msgid "Image exceeds website size limit of %lu bytes"
-msgstr "L'immagine supera il limite massimo di %lu bytes"
+#: ../../include/contact_widgets.php:25
+msgid "Examples: Robert Morgenstein, Fishing"
+msgstr "Per esempio: Mario Rossi, Pesca"
-#: ../../include/photos.php:111
-msgid "Image file is empty."
-msgstr "Il file dell'immagine è vuoto."
+#: ../../include/contact_widgets.php:26 ../../mod/connections.php:412
+#: ../../mod/directory.php:316 ../../mod/directory.php:321
+msgid "Find"
+msgstr "Cerca"
-#: ../../include/photos.php:140 ../../mod/profile_photo.php:216
-msgid "Unable to process image"
-msgstr "Impossibile elaborare l'immagine"
+#: ../../include/contact_widgets.php:27 ../../mod/suggest.php:59
+#: ../../mod/directory.php:320
+msgid "Channel Suggestions"
+msgstr "Canali suggeriti"
-#: ../../include/photos.php:212
-msgid "Photo storage failed."
-msgstr "Impossibile caricare la foto."
+#: ../../include/contact_widgets.php:29
+msgid "Random Profile"
+msgstr "Profilo casuale"
-#: ../../include/photos.php:339 ../../include/conversation.php:1533
-msgid "Photo Albums"
-msgstr "Album foto"
+#: ../../include/contact_widgets.php:30
+msgid "Invite Friends"
+msgstr "Invita amici"
-#: ../../include/photos.php:343 ../../mod/photos.php:697
-#: ../../mod/photos.php:1199
-msgid "Upload New Photos"
-msgstr "Carica nuove foto"
+#: ../../include/contact_widgets.php:32
+msgid "Advanced example: name=fred and country=iceland"
+msgstr "Per esempio: name=mario e country=italy"
-#: ../../include/acl_selectors.php:240
-msgid "Visible to your default audience"
-msgstr "Visibile secondo le impostazioni predefinite"
+#: ../../include/contact_widgets.php:57 ../../include/features.php:73
+#: ../../include/widgets.php:298
+msgid "Saved Folders"
+msgstr "Cartelle salvate"
-#: ../../include/acl_selectors.php:241
-msgid "Show"
-msgstr "Mostra"
+#: ../../include/contact_widgets.php:60 ../../include/contact_widgets.php:95
+#: ../../include/widgets.php:301
+msgid "Everything"
+msgstr "Tutto"
-#: ../../include/acl_selectors.php:242
-msgid "Don't show"
-msgstr "Non mostrare"
+#: ../../include/contact_widgets.php:92 ../../include/taxonomy.php:230
+#: ../../include/widgets.php:35
+msgid "Categories"
+msgstr "Categorie"
-#: ../../include/acl_selectors.php:248 ../../mod/chat.php:209
-#: ../../mod/photos.php:604 ../../mod/photos.php:958
-#: ../../mod/filestorage.php:128
-msgid "Permissions"
-msgstr "Permessi"
+#: ../../include/contact_widgets.php:125
+#, php-format
+msgid "%d connection in common"
+msgid_plural "%d connections in common"
+msgstr[0] "%d contatto in comune"
+msgstr[1] "%d contatti in comune"
-#: ../../include/acl_selectors.php:249 ../../include/ItemObject.php:289
-msgid "Close"
-msgstr "Chiudi"
+#: ../../include/contact_widgets.php:130
+msgid "show more"
+msgstr "mostra tutto"
+
+#: ../../include/oembed.php:171
+msgid "Embedded content"
+msgstr "Contenuti incorporati"
+
+#: ../../include/oembed.php:180
+msgid "Embedding disabled"
+msgstr "Disabilita la creazione di contenuti incorporati"
+
+#: ../../include/message.php:18
+msgid "No recipient provided."
+msgstr "Devi scegliere un destinatario."
+
+#: ../../include/message.php:23
+msgid "[no subject]"
+msgstr "[nessun titolo]"
+
+#: ../../include/message.php:45
+msgid "Unable to determine sender."
+msgstr "Impossibile determinare il mittente."
+
+#: ../../include/message.php:200
+msgid "Stored post could not be verified."
+msgstr "Non è stato possibile verificare l'articolo inserito."
#: ../../include/activities.php:39
msgid " and "
@@ -385,45 +254,132 @@ msgstr "Guarda %2$s di %1$s "
msgid "%1$s has an updated %2$s, changing %3$s."
msgstr "%1$s ha aggiornato %2$s cambiando %3$s."
-#: ../../include/api.php:1036
-msgid "Public Timeline"
-msgstr "Diario pubblico"
+#: ../../include/acl_selectors.php:240
+msgid "Visible to your default audience"
+msgstr "Visibile secondo le impostazioni predefinite"
+
+#: ../../include/acl_selectors.php:241
+msgid "Show"
+msgstr "Mostra"
-#: ../../include/attach.php:224 ../../include/attach.php:278
+#: ../../include/acl_selectors.php:242
+msgid "Don't show"
+msgstr "Non mostrare"
+
+#: ../../include/acl_selectors.php:248 ../../mod/events.php:596
+#: ../../mod/chat.php:209 ../../mod/filestorage.php:137
+#: ../../mod/photos.php:588 ../../mod/photos.php:950
+msgid "Permissions"
+msgstr "Permessi"
+
+#: ../../include/acl_selectors.php:249 ../../include/ItemObject.php:312
+#: ../../mod/photos.php:1149
+msgid "Close"
+msgstr "Chiudi"
+
+#: ../../include/bb2diaspora.php:384
+msgid "Attachments:"
+msgstr "Allegati:"
+
+#: ../../include/bb2diaspora.php:463 ../../include/event.php:11
+msgid "l F d, Y \\@ g:i A"
+msgstr "l d F Y \\@ G:i"
+
+#: ../../include/bb2diaspora.php:465
+msgid "Redmatrix event notification:"
+msgstr "Notifica eventi RedMatrix:"
+
+#: ../../include/bb2diaspora.php:469 ../../include/event.php:20
+msgid "Starts:"
+msgstr "Inizio:"
+
+#: ../../include/bb2diaspora.php:477 ../../include/event.php:30
+msgid "Finishes:"
+msgstr "Fine:"
+
+#: ../../include/bb2diaspora.php:485 ../../include/identity.php:891
+#: ../../include/event.php:40 ../../mod/events.php:590
+#: ../../mod/directory.php:199
+msgid "Location:"
+msgstr "Luogo:"
+
+#: ../../include/attach.php:116 ../../include/attach.php:163
+#: ../../include/attach.php:226 ../../include/attach.php:240
+#: ../../include/attach.php:280 ../../include/attach.php:294
+#: ../../include/attach.php:318 ../../include/attach.php:511
+#: ../../include/attach.php:585 ../../include/photos.php:15
+#: ../../include/items.php:4019 ../../include/chat.php:116
+#: ../../mod/mood.php:112 ../../mod/mitem.php:106
+#: ../../mod/achievements.php:30 ../../mod/register.php:72
+#: ../../mod/sources.php:66 ../../mod/poke.php:128 ../../mod/api.php:26
+#: ../../mod/api.php:31 ../../mod/authtest.php:13 ../../mod/profile.php:64
+#: ../../mod/profile.php:72 ../../mod/block.php:22 ../../mod/block.php:72
+#: ../../mod/blocks.php:67 ../../mod/blocks.php:75 ../../mod/setup.php:207
+#: ../../mod/settings.php:542 ../../mod/events.php:195
+#: ../../mod/channel.php:89 ../../mod/channel.php:198
+#: ../../mod/channel.php:241 ../../mod/chat.php:90 ../../mod/chat.php:95
+#: ../../mod/regmod.php:17 ../../mod/common.php:35 ../../mod/like.php:154
+#: ../../mod/connections.php:169 ../../mod/connedit.php:266
+#: ../../mod/thing.php:247 ../../mod/thing.php:264 ../../mod/thing.php:299
+#: ../../mod/webpages.php:67 ../../mod/bookmarks.php:46
+#: ../../mod/profiles.php:179 ../../mod/profiles.php:550
+#: ../../mod/editblock.php:65 ../../mod/pdledit.php:21
+#: ../../mod/editlayout.php:64 ../../mod/editlayout.php:89
+#: ../../mod/editpost.php:13 ../../mod/editwebpage.php:64
+#: ../../mod/editwebpage.php:86 ../../mod/editwebpage.php:118
+#: ../../mod/profile_photo.php:263 ../../mod/profile_photo.php:276
+#: ../../mod/item.php:191 ../../mod/item.php:199 ../../mod/item.php:972
+#: ../../mod/fsuggest.php:78 ../../mod/filestorage.php:18
+#: ../../mod/filestorage.php:67 ../../mod/filestorage.php:82
+#: ../../mod/filestorage.php:109 ../../mod/delegate.php:6
+#: ../../mod/group.php:9 ../../mod/suggest.php:26 ../../mod/locs.php:71
+#: ../../mod/mail.php:111 ../../mod/invite.php:13 ../../mod/invite.php:104
+#: ../../mod/manage.php:6 ../../mod/layouts.php:67 ../../mod/layouts.php:74
+#: ../../mod/layouts.php:85 ../../mod/viewconnections.php:22
+#: ../../mod/viewconnections.php:27 ../../mod/viewsrc.php:14
+#: ../../mod/network.php:12 ../../mod/menu.php:61 ../../mod/message.php:16
+#: ../../mod/new_channel.php:68 ../../mod/new_channel.php:99
+#: ../../mod/notifications.php:66 ../../mod/page.php:28 ../../mod/page.php:78
+#: ../../mod/photos.php:68 ../../mod/appman.php:66
+#: ../../mod/service_limits.php:7 ../../index.php:190 ../../index.php:390
+msgid "Permission denied."
+msgstr "Permesso negato."
+
+#: ../../include/attach.php:221 ../../include/attach.php:275
msgid "Item was not found."
msgstr "Elemento non trovato."
-#: ../../include/attach.php:335
+#: ../../include/attach.php:331
msgid "No source file."
msgstr "Nessun file di origine."
-#: ../../include/attach.php:352
+#: ../../include/attach.php:348
msgid "Cannot locate file to replace"
msgstr "Il file da sostituire non è stato trovato"
-#: ../../include/attach.php:370
+#: ../../include/attach.php:366
msgid "Cannot locate file to revise/update"
msgstr "Il file da aggiornare non è stato trovato"
-#: ../../include/attach.php:381
+#: ../../include/attach.php:377
#, php-format
msgid "File exceeds size limit of %d"
msgstr "Il file supera la dimensione massima di %d"
-#: ../../include/attach.php:393
+#: ../../include/attach.php:389
#, php-format
msgid "You have reached your limit of %1$.0f Mbytes attachment storage."
msgstr "Hai raggiunto il limite complessivo di %1$.0f Mbytes per gli allegati."
-#: ../../include/attach.php:475
+#: ../../include/attach.php:472
msgid "File upload failed. Possible system limit or action terminated."
-msgstr "Caricamento file fallito, potrebbe aver superato i limiti o l'azione potrebbe essere stata interrotta."
+msgstr "Caricamento file fallito, potrebbe essere stato interrotto o potrebbe aver superato lo spazio assegnato."
-#: ../../include/attach.php:487
+#: ../../include/attach.php:484
msgid "Stored file could not be verified. Upload failed."
msgstr "Il file non può essere verificato. Caricamento fallito."
-#: ../../include/attach.php:528 ../../include/attach.php:545
+#: ../../include/attach.php:526 ../../include/attach.php:543
msgid "Path not available."
msgstr "Percorso non disponibile."
@@ -433,7 +389,7 @@ msgstr "Il percorso del file è vuoto"
#: ../../include/attach.php:606
msgid "duplicate filename or path"
-msgstr "il file o percorso del file è duplicato"
+msgstr "il file o il percorso del file è duplicato"
#: ../../include/attach.php:630
msgid "Path not found."
@@ -447,633 +403,567 @@ msgstr "mkdir fallito."
msgid "database storage failed."
msgstr "scrittura su database fallita."
-#: ../../include/plugin.php:504 ../../include/plugin.php:506
-msgid "Click here to upgrade."
-msgstr "Clicca qui per aggiornare."
+#: ../../include/RedDAV/RedBrowser.php:106
+#: ../../include/RedDAV/RedBrowser.php:249
+msgid "parent"
+msgstr "cartella superiore"
-#: ../../include/plugin.php:512
-msgid "This action exceeds the limits set by your subscription plan."
-msgstr "Questa operazione esce dai termini del tuo abbonamento."
+#: ../../include/RedDAV/RedBrowser.php:130
+msgid "Collection"
+msgstr "Cartella"
-#: ../../include/plugin.php:517
-msgid "This action is not available under your subscription plan."
-msgstr "Questa operazione non è prevista dal tuo abbonamento."
+#: ../../include/RedDAV/RedBrowser.php:133
+msgid "Principal"
+msgstr "Principale"
-#: ../../include/bb2diaspora.php:463 ../../include/event.php:11
-msgid "l F d, Y \\@ g:i A"
-msgstr "l d F Y \\@ G:i"
+#: ../../include/RedDAV/RedBrowser.php:136
+msgid "Addressbook"
+msgstr "Rubrica"
-#: ../../include/bb2diaspora.php:469 ../../include/event.php:20
-msgid "Starts:"
-msgstr "Inizio:"
+#: ../../include/RedDAV/RedBrowser.php:139
+msgid "Calendar"
+msgstr "Calendario"
-#: ../../include/bb2diaspora.php:477 ../../include/event.php:30
-msgid "Finishes:"
-msgstr "Fine:"
+#: ../../include/RedDAV/RedBrowser.php:142
+msgid "Schedule Inbox"
+msgstr "Appuntamenti ricevuti"
-#: ../../include/bb2diaspora.php:485 ../../include/event.php:40
-#: ../../include/identity.php:757 ../../mod/directory.php:156
-#: ../../mod/dirprofile.php:105 ../../mod/events.php:504
-msgid "Location:"
-msgstr "Luogo:"
+#: ../../include/RedDAV/RedBrowser.php:145
+msgid "Schedule Outbox"
+msgstr "Appuntamenti inviati"
+
+#: ../../include/RedDAV/RedBrowser.php:163 ../../include/conversation.php:993
+#: ../../include/apps.php:331 ../../include/apps.php:382
+#: ../../mod/connedit.php:513 ../../mod/photos.php:713
+#: ../../mod/photos.php:1132
+msgid "Unknown"
+msgstr "Sconosciuto"
+
+#: ../../include/RedDAV/RedBrowser.php:223
+#, php-format
+msgid "%1$s used"
+msgstr "%1$s occupati"
+
+#: ../../include/RedDAV/RedBrowser.php:228
+#, php-format
+msgid "%1$s used of %2$s (%3$s&#37;)"
+msgstr "%1$s occupati di %2$s (%3$s&#37;)"
+
+#: ../../include/RedDAV/RedBrowser.php:241 ../../include/nav.php:106
+#: ../../include/conversation.php:1540 ../../include/apps.php:133
+#: ../../mod/fbrowser.php:114
+msgid "Files"
+msgstr "Archivio file"
+
+#: ../../include/RedDAV/RedBrowser.php:245 ../../mod/settings.php:567
+#: ../../mod/settings.php:593 ../../mod/admin.php:866
+msgid "Name"
+msgstr "Nome"
+
+#: ../../include/RedDAV/RedBrowser.php:246
+msgid "Type"
+msgstr "Tipo"
+
+#: ../../include/RedDAV/RedBrowser.php:247
+msgid "Size"
+msgstr "Dimensione"
+
+#: ../../include/RedDAV/RedBrowser.php:248
+msgid "Last Modified"
+msgstr "Ultima modifica"
+
+#: ../../include/RedDAV/RedBrowser.php:251 ../../include/conversation.php:639
+#: ../../include/apps.php:250 ../../include/ItemObject.php:120
+#: ../../mod/settings.php:628 ../../mod/connedit.php:476
+#: ../../mod/thing.php:234 ../../mod/group.php:176 ../../mod/admin.php:730
+#: ../../mod/admin.php:861 ../../mod/photos.php:1070
+msgid "Delete"
+msgstr "Elimina"
+
+#: ../../include/RedDAV/RedBrowser.php:252
+msgid "Total"
+msgstr "Totale"
+
+#: ../../include/RedDAV/RedBrowser.php:305
+msgid "Create new folder"
+msgstr "Crea una nuova cartella"
+
+#: ../../include/RedDAV/RedBrowser.php:306 ../../mod/mitem.php:169
+#: ../../mod/menu.php:100 ../../mod/new_channel.php:122
+msgid "Create"
+msgstr "Crea"
+
+#: ../../include/RedDAV/RedBrowser.php:307
+msgid "Upload file"
+msgstr "Carica un file"
-#: ../../include/nav.php:94 ../../include/nav.php:121 ../../boot.php:1492
+#: ../../include/RedDAV/RedBrowser.php:308 ../../mod/profile_photo.php:361
+#: ../../mod/photos.php:738 ../../mod/photos.php:1246
+msgid "Upload"
+msgstr "Carica"
+
+#: ../../include/bookmarks.php:35
+#, php-format
+msgid "%1$s's bookmarks"
+msgstr "I segnalibri di %1$s"
+
+#: ../../include/nav.php:95 ../../include/nav.php:128 ../../boot.php:1528
msgid "Logout"
msgstr "Esci"
-#: ../../include/nav.php:94 ../../include/nav.php:121
+#: ../../include/nav.php:95 ../../include/nav.php:128
msgid "End this session"
msgstr "Chiudi questa sessione"
-#: ../../include/nav.php:97 ../../include/nav.php:155
+#: ../../include/nav.php:98 ../../include/nav.php:159
msgid "Home"
msgstr "Bacheca"
-#: ../../include/nav.php:97
+#: ../../include/nav.php:98
msgid "Your posts and conversations"
msgstr "I tuoi articoli e conversazioni"
-#: ../../include/nav.php:98 ../../include/conversation.php:957
-#: ../../mod/connedit.php:393 ../../mod/connedit.php:507
+#: ../../include/nav.php:99 ../../include/conversation.php:935
+#: ../../mod/connedit.php:429 ../../mod/connedit.php:545
msgid "View Profile"
msgstr "Profilo"
-#: ../../include/nav.php:98
+#: ../../include/nav.php:99
msgid "Your profile page"
msgstr "Il tuo profilo"
-#: ../../include/nav.php:100
+#: ../../include/nav.php:101
msgid "Edit Profiles"
msgstr "Modifica i profili"
-#: ../../include/nav.php:100
+#: ../../include/nav.php:101
msgid "Manage/Edit profiles"
msgstr "Gestisci/modifica i profili"
-#: ../../include/nav.php:102 ../../include/identity.php:730
+#: ../../include/nav.php:103 ../../include/identity.php:864
msgid "Edit Profile"
msgstr "Modifica il profilo"
-#: ../../include/nav.php:102
+#: ../../include/nav.php:103
msgid "Edit your profile"
msgstr "Modifica il profilo"
-#: ../../include/nav.php:104
+#: ../../include/nav.php:105 ../../include/conversation.php:1531
+#: ../../include/apps.php:137 ../../mod/fbrowser.php:25
+msgid "Photos"
+msgstr "Foto"
+
+#: ../../include/nav.php:105
msgid "Your photos"
msgstr "Le tue foto"
-#: ../../include/nav.php:105
+#: ../../include/nav.php:106
msgid "Your files"
msgstr "I tuoi file"
-#: ../../include/nav.php:110
+#: ../../include/nav.php:111 ../../include/apps.php:144
+msgid "Chat"
+msgstr "Area chat"
+
+#: ../../include/nav.php:111
msgid "Your chatrooms"
msgstr "Le tue aree chat"
-#: ../../include/nav.php:113
+#: ../../include/nav.php:117 ../../include/conversation.php:1566
+#: ../../include/apps.php:127
+msgid "Bookmarks"
+msgstr "Segnalibri"
+
+#: ../../include/nav.php:117
msgid "Your bookmarks"
msgstr "I tuoi segnalibri"
-#: ../../include/nav.php:115
+#: ../../include/nav.php:121 ../../include/conversation.php:1577
+#: ../../include/apps.php:134 ../../mod/webpages.php:160
+msgid "Webpages"
+msgstr "Pagine web"
+
+#: ../../include/nav.php:121
msgid "Your webpages"
msgstr "Le tue pagine web"
-#: ../../include/nav.php:119
+#: ../../include/nav.php:125 ../../include/apps.php:129 ../../boot.php:1529
+msgid "Login"
+msgstr "Accedi"
+
+#: ../../include/nav.php:125
msgid "Sign in"
-msgstr "Entra"
+msgstr "Accedi"
-#: ../../include/nav.php:136
+#: ../../include/nav.php:142
#, php-format
msgid "%s - click to logout"
msgstr "%s - clicca per uscire"
-#: ../../include/nav.php:141
+#: ../../include/nav.php:145
+msgid "Remote authentication"
+msgstr "Autenticazione magica dal tuo server"
+
+#: ../../include/nav.php:145
msgid "Click to authenticate to your home hub"
msgstr "Clicca per autenticarti sul tuo server principale"
-#: ../../include/nav.php:155
+#: ../../include/nav.php:159
msgid "Home Page"
msgstr "Bacheca"
-#: ../../include/nav.php:159 ../../mod/register.php:221 ../../boot.php:1469
+#: ../../include/nav.php:163 ../../mod/register.php:224 ../../boot.php:1507
msgid "Register"
msgstr "Iscriviti"
-#: ../../include/nav.php:159
+#: ../../include/nav.php:163
msgid "Create an account"
msgstr "Crea un account"
-#: ../../include/nav.php:164
+#: ../../include/nav.php:168 ../../include/apps.php:140 ../../mod/help.php:58
+#: ../../mod/help.php:63
+msgid "Help"
+msgstr "Guida"
+
+#: ../../include/nav.php:168
msgid "Help and documentation"
msgstr "Guida e documentazione"
-#: ../../include/nav.php:167 ../../include/widgets.php:86
+#: ../../include/nav.php:171 ../../include/widgets.php:91
#: ../../mod/apps.php:33
msgid "Apps"
msgstr "Apps"
-#: ../../include/nav.php:167
+#: ../../include/nav.php:171
msgid "Applications, utilities, links, games"
msgstr "Applicazioni, utilità, link, giochi"
-#: ../../include/nav.php:169
+#: ../../include/nav.php:173 ../../include/text.php:826
+#: ../../include/text.php:838 ../../include/apps.php:145
+#: ../../mod/search.php:30
+msgid "Search"
+msgstr "Cerca"
+
+#: ../../include/nav.php:173
msgid "Search site content"
msgstr "Cerca nel sito"
-#: ../../include/nav.php:172
-msgid "Channel Locator"
-msgstr "Ricerca canali"
+#: ../../include/nav.php:176 ../../include/apps.php:139
+#: ../../mod/directory.php:320
+msgid "Directory"
+msgstr "Elenco pubblico"
+
+#: ../../include/nav.php:176
+msgid "Channel Directory"
+msgstr "Elenco pubblico canali"
+
+#: ../../include/nav.php:190 ../../include/apps.php:131
+msgid "Matrix"
+msgstr "RedMatrix"
-#: ../../include/nav.php:183
+#: ../../include/nav.php:190
msgid "Your matrix"
msgstr "La tua rete"
-#: ../../include/nav.php:184
+#: ../../include/nav.php:191
msgid "Mark all matrix notifications seen"
msgstr "Segna come lette le notifiche della tua rete"
-#: ../../include/nav.php:186
+#: ../../include/nav.php:193 ../../include/apps.php:135
+msgid "Channel Home"
+msgstr "Bacheca del canale"
+
+#: ../../include/nav.php:193
msgid "Channel home"
msgstr "Bacheca del canale"
-#: ../../include/nav.php:187
+#: ../../include/nav.php:194
msgid "Mark all channel notifications seen"
-msgstr "Segna come lette le notifiche dei canali"
+msgstr "Segna come lette le notifiche del canale"
-#: ../../include/nav.php:190 ../../mod/connections.php:389
+#: ../../include/nav.php:197 ../../mod/connections.php:406
msgid "Connections"
msgstr "Contatti"
-#: ../../include/nav.php:193
+#: ../../include/nav.php:200
msgid "Notices"
-msgstr "Notifiche"
+msgstr "Avvisi"
-#: ../../include/nav.php:193
+#: ../../include/nav.php:200
msgid "Notifications"
msgstr "Notifiche"
-#: ../../include/nav.php:194
+#: ../../include/nav.php:201
msgid "See all notifications"
msgstr "Vedi tutte le notifiche"
-#: ../../include/nav.php:195 ../../mod/notifications.php:99
+#: ../../include/nav.php:202 ../../mod/notifications.php:99
msgid "Mark all system notifications seen"
msgstr "Segna come lette le notifiche di sistema"
-#: ../../include/nav.php:197
+#: ../../include/nav.php:204 ../../include/apps.php:141
+msgid "Mail"
+msgstr "Messaggi"
+
+#: ../../include/nav.php:204
msgid "Private mail"
msgstr "Messaggi privati"
-#: ../../include/nav.php:198
+#: ../../include/nav.php:205
msgid "See all private messages"
msgstr "Guarda tutti i messaggi privati"
-#: ../../include/nav.php:199
+#: ../../include/nav.php:206
msgid "Mark all private messages seen"
msgstr "Segna come letti tutti i messaggi privati"
-#: ../../include/nav.php:200
+#: ../../include/nav.php:207
msgid "Inbox"
msgstr "In arrivo"
-#: ../../include/nav.php:201
+#: ../../include/nav.php:208
msgid "Outbox"
msgstr "Inviati"
-#: ../../include/nav.php:202 ../../include/widgets.php:543
+#: ../../include/nav.php:209 ../../include/widgets.php:557
msgid "New Message"
msgstr "Nuovo messaggio"
-#: ../../include/nav.php:205
+#: ../../include/nav.php:212 ../../include/apps.php:138
+#: ../../mod/events.php:442
+msgid "Events"
+msgstr "Eventi"
+
+#: ../../include/nav.php:212
msgid "Event Calendar"
msgstr "Calendario"
-#: ../../include/nav.php:206
+#: ../../include/nav.php:213
msgid "See all events"
msgstr "Guarda tutti gli eventi"
-#: ../../include/nav.php:207
+#: ../../include/nav.php:214
msgid "Mark all events seen"
msgstr "Marca come letti tutti gli eventi"
-#: ../../include/nav.php:209
+#: ../../include/nav.php:216 ../../include/apps.php:130
+#: ../../mod/manage.php:148
+msgid "Channel Manager"
+msgstr "Gestione canali"
+
+#: ../../include/nav.php:216
msgid "Manage Your Channels"
-msgstr "Gestisci i contatti dei tuoi canali"
+msgstr "Gestisci i tuoi canali"
-#: ../../include/nav.php:211
+#: ../../include/nav.php:218 ../../include/widgets.php:536
+#: ../../include/apps.php:132 ../../mod/admin.php:951 ../../mod/admin.php:1156
+msgid "Settings"
+msgstr "Impostazioni"
+
+#: ../../include/nav.php:218
msgid "Account/Channel Settings"
-msgstr "Impostazioni account e canali"
+msgstr "Impostazioni dell'account e del canale"
-#: ../../include/nav.php:219 ../../mod/admin.php:123
+#: ../../include/nav.php:226 ../../mod/admin.php:123
msgid "Admin"
msgstr "Amministrazione"
-#: ../../include/nav.php:219
+#: ../../include/nav.php:226
msgid "Site Setup and Configuration"
-msgstr "Configurazione del sito"
+msgstr "Installazione e configurazione del sito"
-#: ../../include/nav.php:244
-msgid "Nothing new here"
-msgstr "Niente di nuovo qui"
+#: ../../include/nav.php:257 ../../include/conversation.php:840
+msgid "Loading..."
+msgstr "Caricamento in corso..."
-#: ../../include/nav.php:248
+#: ../../include/nav.php:262
msgid "Please wait..."
msgstr "Attendere..."
-#: ../../include/bookmarks.php:35
-#, php-format
-msgid "%1$s's bookmarks"
-msgstr "I segnalibri di %1$s"
-
-#: ../../include/text.php:321
-msgid "prev"
-msgstr "prec"
-
-#: ../../include/text.php:323
-msgid "first"
-msgstr "inizio"
-
-#: ../../include/text.php:352
-msgid "last"
-msgstr "fine"
-
-#: ../../include/text.php:355
-msgid "next"
-msgstr "succ"
-
-#: ../../include/text.php:367
-msgid "older"
-msgstr "più recenti"
-
-#: ../../include/text.php:369
-msgid "newer"
-msgstr "più nuovi"
-
-#: ../../include/text.php:730
-msgid "No connections"
-msgstr "Nessun contatto"
-
-#: ../../include/text.php:743
-#, php-format
-msgid "%d Connection"
-msgid_plural "%d Connections"
-msgstr[0] "%d contatto"
-msgstr[1] "%d contatti"
-
-#: ../../include/text.php:756
-msgid "View Connections"
-msgstr "Elenco contatti"
-
-#: ../../include/text.php:817 ../../include/text.php:831
-#: ../../include/widgets.php:193 ../../mod/rbmark.php:28
-#: ../../mod/rbmark.php:98 ../../mod/filer.php:50 ../../mod/admin.php:1338
-#: ../../mod/admin.php:1359
-msgid "Save"
-msgstr "Salva"
-
-#: ../../include/text.php:897
-msgid "poke"
-msgstr "poke"
-
-#: ../../include/text.php:897 ../../include/conversation.php:243
-msgid "poked"
-msgstr "ha ricevuto un poke"
-
-#: ../../include/text.php:898
-msgid "ping"
-msgstr "ping"
-
-#: ../../include/text.php:898
-msgid "pinged"
-msgstr "ha ricevuto un ping"
-
-#: ../../include/text.php:899
-msgid "prod"
-msgstr "prod"
-
-#: ../../include/text.php:899
-msgid "prodded"
-msgstr "ha ricevuto un prod"
-
-#: ../../include/text.php:900
-msgid "slap"
-msgstr "schiaffo"
-
-#: ../../include/text.php:900
-msgid "slapped"
-msgstr "ha ricevuto uno schiaffo"
-
-#: ../../include/text.php:901
-msgid "finger"
-msgstr "finger"
-
-#: ../../include/text.php:901
-msgid "fingered"
-msgstr "ha ricevuto un finger"
-
-#: ../../include/text.php:902
-msgid "rebuff"
-msgstr "rifiuto"
-
-#: ../../include/text.php:902
-msgid "rebuffed"
-msgstr "ha ricevuto un rifiuto"
-
-#: ../../include/text.php:911
-msgid "happy"
-msgstr "felice"
-
-#: ../../include/text.php:912
-msgid "sad"
-msgstr "triste"
-
-#: ../../include/text.php:913
-msgid "mellow"
-msgstr "calmo"
-
-#: ../../include/text.php:914
-msgid "tired"
-msgstr "stanco"
-
-#: ../../include/text.php:915
-msgid "perky"
-msgstr "vivace"
-
-#: ../../include/text.php:916
-msgid "angry"
-msgstr "arrabbiato"
-
-#: ../../include/text.php:917
-msgid "stupified"
-msgstr "stordito"
-
-#: ../../include/text.php:918
-msgid "puzzled"
-msgstr "confuso"
-
-#: ../../include/text.php:919
-msgid "interested"
-msgstr "attento"
-
-#: ../../include/text.php:920
-msgid "bitter"
-msgstr "amaro"
-
-#: ../../include/text.php:921
-msgid "cheerful"
-msgstr "allegro"
-
-#: ../../include/text.php:922
-msgid "alive"
-msgstr "vivace"
-
-#: ../../include/text.php:923
-msgid "annoyed"
-msgstr "seccato"
-
-#: ../../include/text.php:924
-msgid "anxious"
-msgstr "ansioso"
-
-#: ../../include/text.php:925
-msgid "cranky"
-msgstr "irritabile"
-
-#: ../../include/text.php:926
-msgid "disturbed"
-msgstr "turbato"
-
-#: ../../include/text.php:927
-msgid "frustrated"
-msgstr "frustrato"
-
-#: ../../include/text.php:928
-msgid "depressed"
-msgstr "in depressione"
-
-#: ../../include/text.php:929
-msgid "motivated"
-msgstr "motivato"
-
-#: ../../include/text.php:930
-msgid "relaxed"
-msgstr "rilassato"
-
-#: ../../include/text.php:931
-msgid "surprised"
-msgstr "sorpreso"
-
-#: ../../include/text.php:1094
-msgid "Monday"
-msgstr "lunedì"
-
-#: ../../include/text.php:1094
-msgid "Tuesday"
-msgstr "martedì"
-
-#: ../../include/text.php:1094
-msgid "Wednesday"
-msgstr "mercoledì"
-
-#: ../../include/text.php:1094
-msgid "Thursday"
-msgstr "giovedì"
-
-#: ../../include/text.php:1094
-msgid "Friday"
-msgstr "venerdì"
+#: ../../include/network.php:590
+msgid "view full size"
+msgstr "guarda nelle dimensioni reali"
-#: ../../include/text.php:1094
-msgid "Saturday"
-msgstr "sabato"
+#: ../../include/dir_fns.php:66
+msgid "Directory Options"
+msgstr "Opzioni elenco pubblico"
-#: ../../include/text.php:1094
-msgid "Sunday"
-msgstr "domenica"
-
-#: ../../include/text.php:1098
-msgid "January"
-msgstr "gennaio"
+#: ../../include/dir_fns.php:67
+msgid "Alphabetic"
+msgstr "Alfabetico"
-#: ../../include/text.php:1098
-msgid "February"
-msgstr "febbraio"
+#: ../../include/dir_fns.php:68
+msgid "Reverse Alphabetic"
+msgstr "Alfabetico inverso"
-#: ../../include/text.php:1098
-msgid "March"
-msgstr "marzo"
+#: ../../include/dir_fns.php:69
+msgid "Newest to Oldest"
+msgstr "Prima i più recenti"
-#: ../../include/text.php:1098
-msgid "April"
-msgstr "aprile"
+#: ../../include/dir_fns.php:70
+msgid "Oldest to Newest"
+msgstr "Prima i più vecchi"
-#: ../../include/text.php:1098
-msgid "May"
-msgstr "maggio"
+#: ../../include/dir_fns.php:71
+msgid "Public Forums Only"
+msgstr "Solo forum pubblici"
-#: ../../include/text.php:1098
-msgid "June"
-msgstr "giugno"
+#: ../../include/dir_fns.php:73
+msgid "Sort"
+msgstr "Ordinamento"
-#: ../../include/text.php:1098
-msgid "July"
-msgstr "luglio"
-
-#: ../../include/text.php:1098
-msgid "August"
-msgstr "agosto"
+#: ../../include/dir_fns.php:89
+msgid "Enable Safe Search"
+msgstr "Abilita SafeSearch"
-#: ../../include/text.php:1098
-msgid "September"
-msgstr "settembre"
+#: ../../include/dir_fns.php:91
+msgid "Disable Safe Search"
+msgstr "Disabilita SafeSearch"
-#: ../../include/text.php:1098
-msgid "October"
-msgstr "ottobre"
+#: ../../include/dir_fns.php:93
+msgid "Safe Mode"
+msgstr "Modalità SafeSearch"
-#: ../../include/text.php:1098
-msgid "November"
-msgstr "novembre"
+#: ../../include/permissions.php:26
+msgid "Can view my normal stream and posts"
+msgstr "Può vedere i miei contenuti e articoli normali"
-#: ../../include/text.php:1098
-msgid "December"
-msgstr "dicembre"
+#: ../../include/permissions.php:27
+msgid "Can view my default channel profile"
+msgstr "Può vedere il profilo predefinito del canale"
-#: ../../include/text.php:1176
-msgid "unknown.???"
-msgstr "sconosciuto???"
+#: ../../include/permissions.php:28
+msgid "Can view my photo albums"
+msgstr "Può vedere i miei album fotografici"
-#: ../../include/text.php:1177
-msgid "bytes"
-msgstr "byte"
+#: ../../include/permissions.php:29
+msgid "Can view my connections"
+msgstr "Può vedere i miei contatti"
-#: ../../include/text.php:1212
-msgid "remove category"
-msgstr "rimuovi la categoria"
+#: ../../include/permissions.php:30
+msgid "Can view my file storage"
+msgstr "Può vedere i miei file condivisi"
-#: ../../include/text.php:1282
-msgid "remove from file"
-msgstr "rimuovi dal file"
+#: ../../include/permissions.php:31
+msgid "Can view my webpages"
+msgstr "Può vedere le mie pagine web"
-#: ../../include/text.php:1347 ../../include/text.php:1359
-msgid "Click to open/close"
-msgstr "Clicca per aprire/chiudere"
+#: ../../include/permissions.php:34
+msgid "Can send me their channel stream and posts"
+msgstr "È tra i canali che seguo"
-#: ../../include/text.php:1514 ../../mod/events.php:374
-msgid "Link to Source"
-msgstr "Link al sorgente"
+#: ../../include/permissions.php:35
+msgid "Can post on my channel page (\"wall\")"
+msgstr "Può scrivere sulla bacheca del mio canale"
-#: ../../include/text.php:1533
-msgid "Select a page layout: "
-msgstr "Scegli il layout della pagina:"
+#: ../../include/permissions.php:36
+msgid "Can comment on or like my posts"
+msgstr "Può commentare o aggiungere \"mi piace\" ai miei articoli"
-#: ../../include/text.php:1536 ../../include/text.php:1601
-msgid "default"
-msgstr "predefinito"
+#: ../../include/permissions.php:37
+msgid "Can send me private mail messages"
+msgstr "Può inviarmi messaggi privati"
-#: ../../include/text.php:1572
-msgid "Page content type: "
-msgstr "Contenuto della pagina:"
+#: ../../include/permissions.php:38
+msgid "Can post photos to my photo albums"
+msgstr "Può aggiungere foto ai miei album"
-#: ../../include/text.php:1613
-msgid "Select an alternate language"
-msgstr "Seleziona una lingua diversa"
+#: ../../include/permissions.php:39
+msgid "Can like/dislike stuff"
+msgstr "Può aggiungere \"mi piace\""
-#: ../../include/text.php:1734 ../../include/diaspora.php:1852
-#: ../../include/conversation.php:120 ../../mod/subthread.php:72
-#: ../../mod/subthread.php:174 ../../mod/tagger.php:45 ../../mod/like.php:294
-msgid "photo"
-msgstr "la foto"
+#: ../../include/permissions.php:39
+msgid "Profiles and things other than posts/comments"
+msgstr "Profili e tutto ciò che non è articoli e commenti"
-#: ../../include/text.php:1737 ../../include/conversation.php:123
-#: ../../mod/tagger.php:49
-msgid "event"
-msgstr "l'evento"
+#: ../../include/permissions.php:41
+msgid "Can forward to all my channel contacts via post @mentions"
+msgstr "Può inoltrare articoli a tutti i contatti del canale tramite una @menzione"
-#: ../../include/text.php:1740 ../../include/diaspora.php:1852
-#: ../../include/conversation.php:148 ../../mod/subthread.php:72
-#: ../../mod/subthread.php:174 ../../mod/tagger.php:53 ../../mod/like.php:294
-msgid "status"
-msgstr "il messaggio di stato"
+#: ../../include/permissions.php:41
+msgid "Advanced - useful for creating group forum channels"
+msgstr "Impostazione avanzata - utile per creare un canale-forum di discussione"
-#: ../../include/text.php:1742 ../../include/conversation.php:150
-#: ../../mod/tagger.php:55
-msgid "comment"
-msgstr "il commento"
+#: ../../include/permissions.php:42
+msgid "Can chat with me (when available)"
+msgstr "Può aprire una chat con me (se disponibile)"
-#: ../../include/text.php:1747
-msgid "activity"
-msgstr "l'attività"
+#: ../../include/permissions.php:43
+msgid "Can write to my file storage"
+msgstr "Può scrivere sul mio archivio file"
-#: ../../include/text.php:2006
-msgid "Design"
-msgstr "Design"
+#: ../../include/permissions.php:44
+msgid "Can edit my webpages"
+msgstr "Può modificare le mie pagine web"
-#: ../../include/text.php:2008
-msgid "Blocks"
-msgstr "Riquadri"
+#: ../../include/permissions.php:46
+msgid "Can source my public posts in derived channels"
+msgstr "Può usare i miei articoli pubblici per creare canali derivati"
-#: ../../include/text.php:2009
-msgid "Menus"
-msgstr "Menù"
+#: ../../include/permissions.php:46
+msgid "Somewhat advanced - very useful in open communities"
+msgstr "Piuttosto avanzato - molto utile nelle comunità aperte"
-#: ../../include/text.php:2010
-msgid "Layouts"
-msgstr "Layout"
+#: ../../include/permissions.php:48
+msgid "Can administer my channel resources"
+msgstr "Può amministrare i contenuti del mio canale"
-#: ../../include/text.php:2011
-msgid "Pages"
-msgstr "Pagine"
+#: ../../include/permissions.php:48
+msgid ""
+"Extremely advanced. Leave this alone unless you know what you are doing"
+msgstr "Impostazione pericolosa - lasciare il valore predefinito se non si è assolutamente sicuri"
-#: ../../include/taxonomy.php:210
-msgid "Tags"
-msgstr "Tag"
+#: ../../include/permissions.php:814
+msgid "Social Networking"
+msgstr "Social network"
-#: ../../include/taxonomy.php:227
-msgid "Keywords"
-msgstr "Parole chiave"
+#: ../../include/permissions.php:815 ../../include/permissions.php:817
+#: ../../include/permissions.php:819
+msgid "Mostly Public"
+msgstr "Quasi sempre pubblico"
-#: ../../include/taxonomy.php:252
-msgid "have"
-msgstr "ho"
+#: ../../include/permissions.php:815 ../../include/permissions.php:817
+#: ../../include/permissions.php:819
+msgid "Restricted"
+msgstr "Con restrizioni"
-#: ../../include/taxonomy.php:252
-msgid "has"
-msgstr "ha"
+#: ../../include/permissions.php:815 ../../include/permissions.php:817
+msgid "Private"
+msgstr "Privato"
-#: ../../include/taxonomy.php:253
-msgid "want"
-msgstr "voglio"
+#: ../../include/permissions.php:816
+msgid "Community Forum"
+msgstr "Forum di discussione"
-#: ../../include/taxonomy.php:253
-msgid "wants"
-msgstr "vuole"
+#: ../../include/permissions.php:818
+msgid "Feed Republish"
+msgstr "Aggregatore di feed esterni"
-#: ../../include/taxonomy.php:254 ../../include/ItemObject.php:208
-msgid "like"
-msgstr "mi piace"
+#: ../../include/permissions.php:820
+msgid "Special Purpose"
+msgstr "Per finalità speciali"
-#: ../../include/taxonomy.php:254
-msgid "likes"
-msgstr "mi piace"
+#: ../../include/permissions.php:821
+msgid "Celebrity/Soapbox"
+msgstr "Pagina per fan"
-#: ../../include/taxonomy.php:255 ../../include/ItemObject.php:209
-msgid "dislike"
-msgstr "non mi piace"
+#: ../../include/permissions.php:821
+msgid "Group Repository"
+msgstr "Repository di gruppo"
-#: ../../include/taxonomy.php:255
-msgid "dislikes"
-msgstr "non mi piace"
+#: ../../include/permissions.php:822 ../../include/profile_selectors.php:6
+#: ../../include/profile_selectors.php:23
+#: ../../include/profile_selectors.php:61
+#: ../../include/profile_selectors.php:97
+msgid "Other"
+msgstr "Altro"
-#: ../../include/taxonomy.php:338 ../../include/identity.php:1017
-#: ../../include/ItemObject.php:134
-msgctxt "noun"
-msgid "Like"
-msgid_plural "Likes"
-msgstr[0] "Mi piace"
-msgstr[1] "Mi piace"
+#: ../../include/permissions.php:823
+msgid "Custom/Expert Mode"
+msgstr "Personalizzazione per esperti"
-#: ../../include/comanche.php:35 ../../view/theme/apw/php/config.php:185
+#: ../../include/comanche.php:35 ../../mod/admin.php:353
+#: ../../view/theme/apw/php/config.php:185
msgid "Default"
msgstr "Predefinito"
@@ -1114,7 +1004,7 @@ msgid "RSS/Atom"
msgstr "RSS/Atom"
#: ../../include/contact_selectors.php:79 ../../mod/admin.php:726
-#: ../../mod/admin.php:735 ../../boot.php:1495
+#: ../../mod/admin.php:735 ../../boot.php:1531
msgid "Email"
msgstr "Email"
@@ -1142,272 +1032,450 @@ msgstr "XMPP/IM"
msgid "MySpace"
msgstr "MySpace"
-#: ../../include/contact_widgets.php:14
-#, php-format
-msgid "%d invitation available"
-msgid_plural "%d invitations available"
-msgstr[0] "%d invito disponibile"
-msgstr[1] "%d inviti disponibili"
+#: ../../include/identity.php:31 ../../mod/item.php:1112
+msgid "Unable to obtain identity information from database"
+msgstr "Impossibile ottenere le informazioni di identificazione dal database"
-#: ../../include/contact_widgets.php:19 ../../mod/admin.php:417
-msgid "Advanced"
-msgstr "Avanzate"
+#: ../../include/identity.php:66
+msgid "Empty name"
+msgstr "Nome vuoto"
-#: ../../include/contact_widgets.php:22
-msgid "Find Channels"
-msgstr "Ricerca canali"
+#: ../../include/identity.php:68
+msgid "Name too long"
+msgstr "Nome troppo lungo"
-#: ../../include/contact_widgets.php:23
-msgid "Enter name or interest"
-msgstr "Scrivi un nome o un interesse"
+#: ../../include/identity.php:169
+msgid "No account identifier"
+msgstr "Account senza identificativo"
-#: ../../include/contact_widgets.php:24
-msgid "Connect/Follow"
+#: ../../include/identity.php:182
+msgid "Nickname is required."
+msgstr "Il nome dell'account è obbligatorio."
+
+#: ../../include/identity.php:196
+msgid "Reserved nickname. Please choose another."
+msgstr "Nome utente riservato. Per favore scegline un altro."
+
+#: ../../include/identity.php:201 ../../include/dimport.php:34
+msgid ""
+"Nickname has unsupported characters or is already being used on this site."
+msgstr "Il nome dell'account è già in uso oppure ha dei caratteri non supportati."
+
+#: ../../include/identity.php:283
+msgid "Unable to retrieve created identity"
+msgstr "Impossibile caricare l'identità creata"
+
+#: ../../include/identity.php:343
+msgid "Default Profile"
+msgstr "Profilo predefinito"
+
+#: ../../include/identity.php:387 ../../include/identity.php:388
+#: ../../include/identity.php:395 ../../include/widgets.php:424
+#: ../../include/profile_selectors.php:80 ../../mod/settings.php:320
+#: ../../mod/settings.php:324 ../../mod/settings.php:325
+#: ../../mod/settings.php:328 ../../mod/settings.php:339
+#: ../../mod/connedit.php:510
+msgid "Friends"
+msgstr "Amici"
+
+#: ../../include/identity.php:643
+msgid "Requested channel is not available."
+msgstr "Il canale che cerchi non è disponibile."
+
+#: ../../include/identity.php:691 ../../mod/achievements.php:11
+#: ../../mod/profile.php:16 ../../mod/blocks.php:29 ../../mod/connect.php:13
+#: ../../mod/webpages.php:29 ../../mod/editblock.php:29
+#: ../../mod/editlayout.php:28 ../../mod/editwebpage.php:28
+#: ../../mod/filestorage.php:48 ../../mod/layouts.php:29 ../../mod/hcard.php:8
+msgid "Requested profile is not available."
+msgstr "Il profilo richiesto non è disponibile."
+
+#: ../../include/identity.php:840 ../../include/Contact.php:107
+#: ../../include/conversation.php:938 ../../include/widgets.php:136
+#: ../../include/widgets.php:175 ../../mod/suggest.php:51
+#: ../../mod/match.php:62 ../../mod/directory.php:264
+msgid "Connect"
msgstr "Aggiungi"
-#: ../../include/contact_widgets.php:25
-msgid "Examples: Robert Morgenstein, Fishing"
-msgstr "Per esempio: Mario Rossi, Pesca"
+#: ../../include/identity.php:854 ../../mod/profiles.php:740
+msgid "Change profile photo"
+msgstr "Cambia la foto del profilo"
-#: ../../include/contact_widgets.php:26 ../../mod/connections.php:395
-#: ../../mod/directory.php:222 ../../mod/directory.php:227
-msgid "Find"
-msgstr "Cerca"
+#: ../../include/identity.php:860
+msgid "Profiles"
+msgstr "Profili"
-#: ../../include/contact_widgets.php:27 ../../mod/suggest.php:59
-msgid "Channel Suggestions"
-msgstr "Canali suggeriti"
+#: ../../include/identity.php:860
+msgid "Manage/edit profiles"
+msgstr "Gestisci/modifica i profili"
-#: ../../include/contact_widgets.php:29
-msgid "Random Profile"
-msgstr "Profilo casuale"
+#: ../../include/identity.php:861 ../../mod/profiles.php:741
+msgid "Create New Profile"
+msgstr "Crea un nuovo profilo"
-#: ../../include/contact_widgets.php:30
-msgid "Invite Friends"
-msgstr "Invita amici"
+#: ../../include/identity.php:875 ../../mod/profiles.php:752
+msgid "Profile Image"
+msgstr "Immagine del profilo"
-#: ../../include/contact_widgets.php:32
-msgid "Exammple: name=fred and country=iceland"
-msgstr "Per esempio: name=mario e country=italy"
+#: ../../include/identity.php:878
+msgid "visible to everybody"
+msgstr "visibile a tutti"
-#: ../../include/contact_widgets.php:33
-msgid "Advanced Find"
-msgstr "Ricerca avanzata"
+#: ../../include/identity.php:879 ../../mod/profiles.php:635
+#: ../../mod/profiles.php:756
+msgid "Edit visibility"
+msgstr "Cambia la visibilità"
-#: ../../include/contact_widgets.php:58 ../../include/features.php:72
-#: ../../include/widgets.php:303
-msgid "Saved Folders"
-msgstr "Cartelle salvate"
+#: ../../include/identity.php:895 ../../include/identity.php:1132
+msgid "Gender:"
+msgstr "Sesso:"
-#: ../../include/contact_widgets.php:61 ../../include/contact_widgets.php:96
-#: ../../include/widgets.php:306
-msgid "Everything"
-msgstr "Tutto"
+#: ../../include/identity.php:896 ../../include/identity.php:1176
+msgid "Status:"
+msgstr "Stato:"
-#: ../../include/contact_widgets.php:93 ../../include/widgets.php:29
-msgid "Categories"
-msgstr "Categorie"
+#: ../../include/identity.php:897 ../../include/identity.php:1187
+msgid "Homepage:"
+msgstr "Home page:"
-#: ../../include/contact_widgets.php:126
-#, php-format
-msgid "%d connection in common"
-msgid_plural "%d connections in common"
-msgstr[0] "%d contatto in comune"
-msgstr[1] "%d contatti in comune"
+#: ../../include/identity.php:898
+msgid "Online Now"
+msgstr "Online adesso"
-#: ../../include/contact_widgets.php:131
-msgid "show more"
-msgstr "mostra tutto"
+#: ../../include/identity.php:976 ../../include/identity.php:1056
+#: ../../mod/ping.php:326
+msgid "g A l F d"
+msgstr "g A l d F"
-#: ../../include/event.php:326
-msgid "This event has been added to your calendar."
-msgstr "Questo evento è stato aggiunto al tuo calendario"
+#: ../../include/identity.php:977 ../../include/identity.php:1057
+msgid "F d"
+msgstr "d F"
-#: ../../include/account.php:23
-msgid "Not a valid email address"
-msgstr "Email non valida"
+#: ../../include/identity.php:1022 ../../include/identity.php:1097
+#: ../../mod/ping.php:348
+msgid "[today]"
+msgstr "[oggi]"
-#: ../../include/account.php:25
-msgid "Your email domain is not among those allowed on this site"
-msgstr "Il dominio della tua email attualmente non è permesso su questo sito"
+#: ../../include/identity.php:1034
+msgid "Birthday Reminders"
+msgstr "Promemoria compleanni"
-#: ../../include/account.php:31
-msgid "Your email address is already registered at this site."
-msgstr "La tua email è già registrata su questo sito."
+#: ../../include/identity.php:1035
+msgid "Birthdays this week:"
+msgstr "Compleanni questa settimana:"
-#: ../../include/account.php:64
-msgid "An invitation is required."
-msgstr "È necessario un invito."
+#: ../../include/identity.php:1090
+msgid "[No description]"
+msgstr "[Nessuna descrizione]"
-#: ../../include/account.php:68
-msgid "Invitation could not be verified."
-msgstr "L'invito non può essere verificato."
+#: ../../include/identity.php:1108
+msgid "Event Reminders"
+msgstr "Promemoria"
-#: ../../include/account.php:119
-msgid "Please enter the required information."
-msgstr "Inserisci le informazioni richieste."
+#: ../../include/identity.php:1109
+msgid "Events this week:"
+msgstr "Eventi di questa settimana:"
-#: ../../include/account.php:187
-msgid "Failed to store account information."
-msgstr "Non è stato possibile salvare le informazioni del tuo account."
+#: ../../include/identity.php:1122 ../../include/identity.php:1251
+#: ../../include/apps.php:136 ../../mod/profperm.php:112
+msgid "Profile"
+msgstr "Profilo"
-#: ../../include/account.php:245
-#, php-format
-msgid "Registration confirmation for %s"
-msgstr "Registrazione di %s confermata"
+#: ../../include/identity.php:1130 ../../mod/settings.php:1012
+msgid "Full Name:"
+msgstr "Nome completo:"
-#: ../../include/account.php:313
-#, php-format
-msgid "Registration request at %s"
-msgstr "Richiesta di registrazione su %s"
+#: ../../include/identity.php:1137
+msgid "Like this channel"
+msgstr "Mi piace questo canale"
-#: ../../include/account.php:315 ../../include/account.php:342
-#: ../../include/account.php:399
-msgid "Administrator"
-msgstr "Amministratore"
+#: ../../include/identity.php:1148 ../../include/taxonomy.php:360
+#: ../../include/ItemObject.php:146 ../../mod/photos.php:1027
+msgctxt "noun"
+msgid "Like"
+msgid_plural "Likes"
+msgstr[0] "Mi piace"
+msgstr[1] "Mi piace"
-#: ../../include/account.php:337
-msgid "your registration password"
-msgstr "la password di registrazione"
+#: ../../include/identity.php:1161
+msgid "j F, Y"
+msgstr "j F Y"
-#: ../../include/account.php:340 ../../include/account.php:397
-#, php-format
-msgid "Registration details for %s"
-msgstr "Dettagli della registrazione di %s"
+#: ../../include/identity.php:1162
+msgid "j F"
+msgstr "j F"
-#: ../../include/account.php:406
-msgid "Account approved."
-msgstr "Account approvato."
+#: ../../include/identity.php:1169
+msgid "Birthday:"
+msgstr "Compleanno:"
-#: ../../include/account.php:440
+#: ../../include/identity.php:1173
+msgid "Age:"
+msgstr "Età:"
+
+#: ../../include/identity.php:1182
#, php-format
-msgid "Registration revoked for %s"
-msgstr "Registrazione revocata per %s"
+msgid "for %1$d %2$s"
+msgstr "per %1$d %2$s"
-#: ../../include/account.php:486
-msgid "Account verified. Please login."
-msgstr "Registrazione verificata. Adesso puoi effettuare login."
+#: ../../include/identity.php:1185 ../../mod/profiles.php:657
+msgid "Sexual Preference:"
+msgstr "Preferenze sessuali:"
+
+#: ../../include/identity.php:1189 ../../mod/profiles.php:659
+msgid "Hometown:"
+msgstr "Città dove vivo:"
-#: ../../include/diaspora.php:1868 ../../include/conversation.php:164
-#: ../../mod/like.php:331
+#: ../../include/identity.php:1191
+msgid "Tags:"
+msgstr "Tag:"
+
+#: ../../include/identity.php:1193 ../../mod/profiles.php:660
+msgid "Political Views:"
+msgstr "Orientamento politico:"
+
+#: ../../include/identity.php:1195
+msgid "Religion:"
+msgstr "Religione:"
+
+#: ../../include/identity.php:1197
+msgid "About:"
+msgstr "Informazioni:"
+
+#: ../../include/identity.php:1199
+msgid "Hobbies/Interests:"
+msgstr "Interessi e hobby:"
+
+#: ../../include/identity.php:1201 ../../mod/profiles.php:663
+msgid "Likes:"
+msgstr "Mi piace:"
+
+#: ../../include/identity.php:1203 ../../mod/profiles.php:664
+msgid "Dislikes:"
+msgstr "Non mi piace:"
+
+#: ../../include/identity.php:1206
+msgid "Contact information and Social Networks:"
+msgstr "Contatti e social network:"
+
+#: ../../include/identity.php:1218
+msgid "My other channels:"
+msgstr "I miei altri canali:"
+
+#: ../../include/identity.php:1221
+msgid "Musical interests:"
+msgstr "Gusti musicali:"
+
+#: ../../include/identity.php:1223
+msgid "Books, literature:"
+msgstr "Libri, letteratura:"
+
+#: ../../include/identity.php:1225
+msgid "Television:"
+msgstr "Televisione:"
+
+#: ../../include/identity.php:1227
+msgid "Film/dance/culture/entertainment:"
+msgstr "Film, danza, cultura, intrattenimento:"
+
+#: ../../include/identity.php:1229
+msgid "Love/Romance:"
+msgstr "Amore:"
+
+#: ../../include/identity.php:1231
+msgid "Work/employment:"
+msgstr "Lavoro:"
+
+#: ../../include/identity.php:1233
+msgid "School/education:"
+msgstr "Scuola:"
+
+#: ../../include/identity.php:1253
+msgid "Like this thing"
+msgstr "Mi piace questo oggetto"
+
+#: ../../include/bbcode.php:112 ../../include/bbcode.php:655
+#: ../../include/bbcode.php:658 ../../include/bbcode.php:663
+#: ../../include/bbcode.php:666 ../../include/bbcode.php:669
+#: ../../include/bbcode.php:672 ../../include/bbcode.php:677
+#: ../../include/bbcode.php:680 ../../include/bbcode.php:685
+#: ../../include/bbcode.php:688 ../../include/bbcode.php:691
+#: ../../include/bbcode.php:694
+msgid "Image/photo"
+msgstr "Immagine"
+
+#: ../../include/bbcode.php:147 ../../include/bbcode.php:705
+msgid "Encrypted content"
+msgstr "Contenuto crittografato"
+
+#: ../../include/bbcode.php:165
+msgid "Install design element: "
+msgstr "Installa il componente di design:"
+
+#: ../../include/bbcode.php:171
+msgid "QR code"
+msgstr "QR code"
+
+#: ../../include/bbcode.php:220
#, php-format
-msgid "%1$s likes %2$s's %3$s"
-msgstr "A %1$s piace %3$s di %2$s"
+msgid "%1$s wrote the following %2$s %3$s"
+msgstr "%1$s ha scritto %2$s %3$s"
-#: ../../include/diaspora.php:2278
-msgid "Attachments:"
-msgstr "Allegati:"
+#: ../../include/bbcode.php:222
+msgid "post"
+msgstr "l'articolo"
+
+#: ../../include/bbcode.php:623
+msgid "$1 spoiler"
+msgstr "$1 spoiler"
+
+#: ../../include/bbcode.php:643
+msgid "$1 wrote:"
+msgstr "$1 ha scritto:"
#: ../../include/datetime.php:43 ../../include/datetime.php:45
msgid "Miscellaneous"
msgstr "Altro"
-#: ../../include/datetime.php:152 ../../include/datetime.php:284
-msgid "year"
-msgstr "anno"
+#: ../../include/datetime.php:142
+msgid "YYYY-MM-DD or MM-DD"
+msgstr "AAAA-MM-GG oppure MM-GG"
-#: ../../include/datetime.php:157 ../../include/datetime.php:285
-msgid "month"
-msgstr "mese"
-
-#: ../../include/datetime.php:162 ../../include/datetime.php:287
-msgid "day"
-msgstr "giorno"
-
-#: ../../include/datetime.php:275
+#: ../../include/datetime.php:259
msgid "never"
msgstr "mai"
-#: ../../include/datetime.php:281
+#: ../../include/datetime.php:265
msgid "less than a second ago"
msgstr "meno di un secondo fa"
-#: ../../include/datetime.php:284
+#: ../../include/datetime.php:268
+msgid "year"
+msgstr "anno"
+
+#: ../../include/datetime.php:268
msgid "years"
msgstr "anni"
-#: ../../include/datetime.php:285
+#: ../../include/datetime.php:269
+msgid "month"
+msgstr "mese"
+
+#: ../../include/datetime.php:269
msgid "months"
msgstr "mesi"
-#: ../../include/datetime.php:286
+#: ../../include/datetime.php:270
msgid "week"
msgstr "settimana"
-#: ../../include/datetime.php:286
+#: ../../include/datetime.php:270
msgid "weeks"
msgstr "settimane"
-#: ../../include/datetime.php:287
+#: ../../include/datetime.php:271
+msgid "day"
+msgstr "giorno"
+
+#: ../../include/datetime.php:271
msgid "days"
msgstr "giorni"
-#: ../../include/datetime.php:288
+#: ../../include/datetime.php:272
msgid "hour"
msgstr "ora"
-#: ../../include/datetime.php:288
+#: ../../include/datetime.php:272
msgid "hours"
msgstr "ore"
-#: ../../include/datetime.php:289
+#: ../../include/datetime.php:273
msgid "minute"
msgstr "minuto"
-#: ../../include/datetime.php:289
+#: ../../include/datetime.php:273
msgid "minutes"
msgstr "minuti"
-#: ../../include/datetime.php:290
+#: ../../include/datetime.php:274
msgid "second"
msgstr "secondo"
-#: ../../include/datetime.php:290
+#: ../../include/datetime.php:274
msgid "seconds"
msgstr "secondi"
-#: ../../include/datetime.php:299
+#: ../../include/datetime.php:283
#, php-format
msgid "%1$d %2$s ago"
msgstr "%1$d %2$s fa"
-#: ../../include/datetime.php:504
+#: ../../include/datetime.php:491
#, php-format
msgid "%1$s's birthday"
-msgstr "È il compleanno di %1$s"
+msgstr "Compleanno di %1$s"
-#: ../../include/datetime.php:505
+#: ../../include/datetime.php:492
#, php-format
msgid "Happy Birthday %1$s"
msgstr "Buon compleanno %1$s"
-#: ../../include/dir_fns.php:36
-msgid "Sort Options"
-msgstr "Opzioni di ordinamento"
+#: ../../include/Contact.php:123
+msgid "New window"
+msgstr "Nuova finestra"
-#: ../../include/dir_fns.php:37
-msgid "Alphabetic"
-msgstr "Alfabetico"
+#: ../../include/Contact.php:124
+msgid "Open the selected location in a different window or browser tab"
+msgstr "Apri l'indirizzo selezionato in una nuova scheda o finestra"
-#: ../../include/dir_fns.php:38
-msgid "Reverse Alphabetic"
-msgstr "Alfabetico inverso"
+#: ../../include/Contact.php:214 ../../mod/admin.php:646
+#, php-format
+msgid "User '%s' deleted"
+msgstr "Utente '%s' eliminato"
-#: ../../include/dir_fns.php:39
-msgid "Newest to Oldest"
-msgstr "Dal più nuovo al più vecchio"
+#: ../../include/taxonomy.php:210
+msgid "Tags"
+msgstr "Tag"
-#: ../../include/dir_fns.php:51
-msgid "Enable Safe Search"
-msgstr "Abilita SafeSearch"
+#: ../../include/taxonomy.php:249
+msgid "Keywords"
+msgstr "Parole chiave"
-#: ../../include/dir_fns.php:53
-msgid "Disable Safe Search"
-msgstr "Disabilita SafeSearch"
+#: ../../include/taxonomy.php:274
+msgid "have"
+msgstr "ho"
-#: ../../include/dir_fns.php:55
-msgid "Safe Mode"
-msgstr "Modalità SafeSearch"
+#: ../../include/taxonomy.php:274
+msgid "has"
+msgstr "ha"
+
+#: ../../include/taxonomy.php:275
+msgid "want"
+msgstr "voglio"
+
+#: ../../include/taxonomy.php:275
+msgid "wants"
+msgstr "vuole"
+
+#: ../../include/taxonomy.php:276 ../../include/ItemObject.php:221
+msgid "like"
+msgstr "mi piace"
+
+#: ../../include/taxonomy.php:276
+msgid "likes"
+msgstr "gli piace"
+
+#: ../../include/taxonomy.php:277 ../../include/ItemObject.php:222
+msgid "dislike"
+msgstr "non mi piace"
+
+#: ../../include/taxonomy.php:277
+msgid "dislikes"
+msgstr "non gli piace"
+
+#: ../../include/api.php:1084
+msgid "Public Timeline"
+msgstr "Diario pubblico"
#: ../../include/enotify.php:41
msgid "Red Matrix Notification"
@@ -1424,7 +1492,7 @@ msgstr "Grazie,"
#: ../../include/enotify.php:46
#, php-format
msgid "%s Administrator"
-msgstr "Amministratore %s"
+msgstr "L'amministratore di %s"
#: ../../include/enotify.php:81
#, php-format
@@ -1434,7 +1502,7 @@ msgstr "%s <!item_type!>"
#: ../../include/enotify.php:85
#, php-format
msgid "[Red:Notify] New mail received at %s"
-msgstr "[RedMatrix] Nuovo messaggio ricevuto su %s"
+msgstr "[RedMatrix] Nuovo messaggio su %s"
#: ../../include/enotify.php:87
#, php-format
@@ -1605,87 +1673,650 @@ msgstr "Visita %s per approvare o rifiutare il suggerimento."
msgid "[Red:Notify]"
msgstr "[RedMatrix]"
-#: ../../include/reddav.php:1145 ../../include/reddav.php:1288
-msgid "parent"
-msgstr "cartella superiore"
+#: ../../include/event.php:376
+msgid "This event has been added to your calendar."
+msgstr "Questo evento è stato aggiunto al tuo calendario"
-#: ../../include/reddav.php:1169
-msgid "Collection"
-msgstr "Cartella"
+#: ../../include/group.php:26
+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 "È stato ripristinato un insieme con lo stesso nome che era stato eliminato in precedenza. I permessi già presenti <strong>potrebbero</strong> rimanere validi per i nuovi canali. Se non vuoi che ciò accada, devi creare un altro insieme con un nome diverso."
-#: ../../include/reddav.php:1172
-msgid "Principal"
-msgstr "Principale"
+#: ../../include/group.php:235
+msgid "Default privacy group for new contacts"
+msgstr "Insieme predefinito per i canali che inizi a seguire"
-#: ../../include/reddav.php:1175
-msgid "Addressbook"
-msgstr "Rubrica"
+#: ../../include/group.php:254 ../../mod/admin.php:735
+msgid "All Channels"
+msgstr "Tutti i canali"
-#: ../../include/reddav.php:1178
-msgid "Calendar"
-msgstr "Calendario"
+#: ../../include/group.php:276
+msgid "edit"
+msgstr "modifica"
-#: ../../include/reddav.php:1181
-msgid "Schedule Inbox"
-msgstr "Appuntamenti ricevuti"
+#: ../../include/group.php:298
+msgid "Collections"
+msgstr "Insiemi di canali"
-#: ../../include/reddav.php:1184
-msgid "Schedule Outbox"
-msgstr "Appuntamenti inviati"
+#: ../../include/group.php:299
+msgid "Edit collection"
+msgstr "Modifica l'insieme di canali"
-#: ../../include/reddav.php:1262
-#, php-format
-msgid "%1$s used"
-msgstr "%1$s occupati"
+#: ../../include/group.php:300
+msgid "Create a new collection"
+msgstr "Crea un nuovo insieme"
+
+#: ../../include/group.php:301
+msgid "Channels not in any collection"
+msgstr "Canali che non sono in un insieme"
+
+#: ../../include/group.php:303 ../../include/widgets.php:269
+msgid "add"
+msgstr "aggiungi"
+
+#: ../../include/features.php:23
+msgid "General Features"
+msgstr "Funzionalità di base"
+
+#: ../../include/features.php:25
+msgid "Content Expiration"
+msgstr "Scadenza"
+
+#: ../../include/features.php:25
+msgid "Remove posts/comments and/or private messages at a future time"
+msgstr "Elimina gli articoli, i commenti o i messaggi privati dopo un lasso di tempo"
+
+#: ../../include/features.php:26
+msgid "Multiple Profiles"
+msgstr "Profili multipli"
+
+#: ../../include/features.php:26
+msgid "Ability to create multiple profiles"
+msgstr "Abilitazione a creare profili multipli"
+
+#: ../../include/features.php:27
+msgid "Advanced Profiles"
+msgstr "Profili avanzati"
+
+#: ../../include/features.php:27
+msgid "Additional profile sections and selections"
+msgstr "Informazioni aggiuntive del profilo"
+
+#: ../../include/features.php:28
+msgid "Profile Import/Export"
+msgstr "Importa/esporta il profilo"
+
+#: ../../include/features.php:28
+msgid "Save and load profile details across sites/channels"
+msgstr "Salva o ripristina le informazioni del profilo su canali o siti diversi"
+
+#: ../../include/features.php:29
+msgid "Web Pages"
+msgstr "Pagine web"
+
+#: ../../include/features.php:29
+msgid "Provide managed web pages on your channel"
+msgstr "Attiva la creazione di pagine web sul tuo canale"
+
+#: ../../include/features.php:30
+msgid "Private Notes"
+msgstr "Note private"
+
+#: ../../include/features.php:30
+msgid "Enables a tool to store notes and reminders"
+msgstr "Abilita il riquadro per scrivere annotazioni"
+
+#: ../../include/features.php:34
+msgid "Navigation Channel Select"
+msgstr "Scegli il canale attivo dal menu"
+
+#: ../../include/features.php:34
+msgid "Change channels directly from within the navigation dropdown menu"
+msgstr "Scegli il canale attivo direttamente dal menu di navigazione"
+
+#: ../../include/features.php:38
+msgid "Extended Identity Sharing"
+msgstr "Condivisione avanzata dell'identità"
+
+#: ../../include/features.php:38
+msgid ""
+"Share your identity with all websites on the internet. When disabled, "
+"identity is only shared with sites in the matrix."
+msgstr "Rendi nota la tua identità a tutti i siti internet. Se disabilitato, la tua identità sarà comunicata solo ai siti RedMatrix."
+
+#: ../../include/features.php:39
+msgid "Expert Mode"
+msgstr "Modalità esperto"
+
+#: ../../include/features.php:39
+msgid "Enable Expert Mode to provide advanced configuration options"
+msgstr "Abilita la modalità esperto per vedere le opzioni di configurazione avanzate"
+
+#: ../../include/features.php:40
+msgid "Premium Channel"
+msgstr "Canale premium"
+
+#: ../../include/features.php:40
+msgid ""
+"Allows you to set restrictions and terms on those that connect with your "
+"channel"
+msgstr "Ti permette di impostare delle restrizioni e dei termini d'uso a chi segue il canale"
+
+#: ../../include/features.php:45
+msgid "Post Composition Features"
+msgstr "Modalità di scrittura articoli"
+
+#: ../../include/features.php:47
+msgid "Use Markdown"
+msgstr "Usa il markdown"
+
+#: ../../include/features.php:47
+msgid "Allow use of \"Markdown\" to format posts"
+msgstr "Consenti l'uso del markdown per formattare gli articoli"
+
+#: ../../include/features.php:48
+msgid "Post Preview"
+msgstr "Anteprima articolo"
+
+#: ../../include/features.php:48
+msgid "Allow previewing posts and comments before publishing them"
+msgstr "Abilita l'anteprima degli articoli e dei commenti prima di pubblicarli"
+
+#: ../../include/features.php:49 ../../include/widgets.php:528
+#: ../../mod/sources.php:88
+msgid "Channel Sources"
+msgstr "Sorgenti del canale"
+
+#: ../../include/features.php:49
+msgid "Automatically import channel content from other channels or feeds"
+msgstr "Importa automaticamente il contenuto del canale da altri canali o feed"
+
+#: ../../include/features.php:50
+msgid "Even More Encryption"
+msgstr "Crittografia addizionale"
+
+#: ../../include/features.php:50
+msgid ""
+"Allow optional encryption of content end-to-end with a shared secret key"
+msgstr "Rendi possibile la crittografia tra mittente e destinatario che condividono una chiave segreta"
+
+#: ../../include/features.php:51
+msgid "Flag Adult Photos"
+msgstr "Marca le foto per adulti"
+
+#: ../../include/features.php:51
+msgid "Provide photo edit option to hide adult photos from default album view"
+msgstr "Permette di marcare e nascondere negli album le foto per adulti"
+
+#: ../../include/features.php:56
+msgid "Network and Stream Filtering"
+msgstr "Filtraggio dei contenuti"
+
+#: ../../include/features.php:57
+msgid "Search by Date"
+msgstr "Ricerca per data"
+
+#: ../../include/features.php:57
+msgid "Ability to select posts by date ranges"
+msgstr "Per selezionare gli articoli in un intervallo tra date"
+
+#: ../../include/features.php:58
+msgid "Collections Filter"
+msgstr "Filtra per insiemi di canali"
+
+#: ../../include/features.php:58
+msgid "Enable widget to display Network posts only from selected collections"
+msgstr "Mostra il riquadro per filtrare gli articoli di certi insiemi di canali"
+
+#: ../../include/features.php:59 ../../include/widgets.php:268
+msgid "Saved Searches"
+msgstr "Ricerche salvate"
+
+#: ../../include/features.php:59
+msgid "Save search terms for re-use"
+msgstr "Salva i termini delle ricerche per poterle ripetere"
+
+#: ../../include/features.php:60
+msgid "Network Personal Tab"
+msgstr "Attività personale"
+
+#: ../../include/features.php:60
+msgid "Enable tab to display only Network posts that you've interacted on"
+msgstr "Abilita il link per mostrare solamente i contenuti con cui hai interagito"
+
+#: ../../include/features.php:61
+msgid "Network New Tab"
+msgstr "Contenuti nuovi"
+
+#: ../../include/features.php:61
+msgid "Enable tab to display all new Network activity"
+msgstr "Abilita il link per visualizzare solo i nuovi contenuti"
+
+#: ../../include/features.php:62
+msgid "Affinity Tool"
+msgstr "Filtro per affinità"
+
+#: ../../include/features.php:62
+msgid "Filter stream activity by depth of relationships"
+msgstr "Permette di selezionare i contenuti in base al livello di amicizia"
+
+#: ../../include/features.php:63
+msgid "Suggest Channels"
+msgstr "Suggerisci canali"
+
+#: ../../include/features.php:63
+msgid "Show channel suggestions"
+msgstr "Mostra alcuni canali che potrebbero interessarti"
+
+#: ../../include/features.php:68
+msgid "Post/Comment Tools"
+msgstr "Gestione articoli e commenti"
+
+#: ../../include/features.php:70
+msgid "Edit Sent Posts"
+msgstr "Modifica gli articoli già inviati"
+
+#: ../../include/features.php:70
+msgid "Edit and correct posts and comments after sending"
+msgstr "Modifica e correggi gli articoli o i commenti anche dopo l'invio"
+
+#: ../../include/features.php:71
+msgid "Tagging"
+msgstr "Tag"
+
+#: ../../include/features.php:71
+msgid "Ability to tag existing posts"
+msgstr "Permetti l'aggiunta di tag su articoli già esistenti"
+
+#: ../../include/features.php:72
+msgid "Post Categories"
+msgstr "Categorie degli articoli"
+
+#: ../../include/features.php:72
+msgid "Add categories to your posts"
+msgstr "Abilita le categorie per i tuoi articoli"
+
+#: ../../include/features.php:73
+msgid "Ability to file posts under folders"
+msgstr "Abilita la raccolta dei tuoi articoli in cartelle"
+
+#: ../../include/features.php:74
+msgid "Dislike Posts"
+msgstr "Non mi piace"
+
+#: ../../include/features.php:74
+msgid "Ability to dislike posts/comments"
+msgstr "Abilità la funzionalità \"non mi piace\" per i tuoi articoli"
+
+#: ../../include/features.php:75
+msgid "Star Posts"
+msgstr "Articoli stella (preferiti)"
+
+#: ../../include/features.php:75
+msgid "Ability to mark special posts with a star indicator"
+msgstr "Mostra la stella per scegliere gli articoli preferiti"
+
+#: ../../include/features.php:76
+msgid "Tag Cloud"
+msgstr "Nuvola di tag"
+
+#: ../../include/features.php:76
+msgid "Provide a personal tag cloud on your channel page"
+msgstr "Mostra la nuvola dei tag che usi di più sulla pagina del tuo canale"
+
+#: ../../include/text.php:321
+msgid "prev"
+msgstr "prec"
+
+#: ../../include/text.php:323
+msgid "first"
+msgstr "inizio"
+
+#: ../../include/text.php:352
+msgid "last"
+msgstr "fine"
-#: ../../include/reddav.php:1267
+#: ../../include/text.php:355
+msgid "next"
+msgstr "succ"
+
+#: ../../include/text.php:367
+msgid "older"
+msgstr "più recenti"
+
+#: ../../include/text.php:369
+msgid "newer"
+msgstr "più nuovi"
+
+#: ../../include/text.php:736
+msgid "No connections"
+msgstr "Nessun contatto"
+
+#: ../../include/text.php:753
#, php-format
-msgid "%1$s used of %2$s (%3$s&#37;)"
-msgstr "%1$s occupati di %2$s (%3$s&#37;)"
+msgid "%d Connection"
+msgid_plural "%d Connections"
+msgstr[0] "%d contatto"
+msgstr[1] "%d contatti"
-#: ../../include/reddav.php:1284 ../../mod/settings.php:519
-#: ../../mod/settings.php:545 ../../mod/admin.php:865
-msgid "Name"
-msgstr "Nome"
+#: ../../include/text.php:766
+msgid "View Connections"
+msgstr "Elenco contatti"
-#: ../../include/reddav.php:1285
-msgid "Type"
-msgstr "Tipo"
+#: ../../include/text.php:827 ../../include/text.php:839
+#: ../../include/widgets.php:192 ../../mod/filer.php:50
+#: ../../mod/rbmark.php:28 ../../mod/rbmark.php:98 ../../mod/admin.php:1339
+#: ../../mod/admin.php:1360
+msgid "Save"
+msgstr "Salva"
-#: ../../include/reddav.php:1286
-msgid "Size"
-msgstr "Dimensione"
+#: ../../include/text.php:905
+msgid "poke"
+msgstr "poke"
-#: ../../include/reddav.php:1287
-msgid "Last Modified"
-msgstr "Ultima modifica"
+#: ../../include/text.php:905 ../../include/conversation.php:243
+msgid "poked"
+msgstr "ha ricevuto un poke"
-#: ../../include/reddav.php:1291
-msgid "Total"
-msgstr "Totale"
+#: ../../include/text.php:906
+msgid "ping"
+msgstr "ping"
-#: ../../include/reddav.php:1344
-msgid "Create new folder"
-msgstr "Crea una nuova cartella"
+#: ../../include/text.php:906
+msgid "pinged"
+msgstr "ha ricevuto un ping"
-#: ../../include/reddav.php:1345 ../../mod/mitem.php:142 ../../mod/menu.php:84
-#: ../../mod/new_channel.php:117
-msgid "Create"
-msgstr "Crea"
+#: ../../include/text.php:907
+msgid "prod"
+msgstr "spintone"
-#: ../../include/reddav.php:1346
-msgid "Upload file"
-msgstr "Carica un file"
+#: ../../include/text.php:907
+msgid "prodded"
+msgstr "ha ricevuto uno spintone"
-#: ../../include/reddav.php:1347 ../../mod/profile_photo.php:361
-msgid "Upload"
-msgstr "Carica"
+#: ../../include/text.php:908
+msgid "slap"
+msgstr "schiaffo"
+
+#: ../../include/text.php:908
+msgid "slapped"
+msgstr "ha ricevuto uno schiaffo"
+
+#: ../../include/text.php:909
+msgid "finger"
+msgstr "finger"
+
+#: ../../include/text.php:909
+msgid "fingered"
+msgstr "ha ricevuto un finger"
+
+#: ../../include/text.php:910
+msgid "rebuff"
+msgstr "rifiuto"
+
+#: ../../include/text.php:910
+msgid "rebuffed"
+msgstr "ha ricevuto un rifiuto"
+
+#: ../../include/text.php:919
+msgid "happy"
+msgstr "felice"
+
+#: ../../include/text.php:920
+msgid "sad"
+msgstr "triste"
+
+#: ../../include/text.php:921
+msgid "mellow"
+msgstr "calmo"
+
+#: ../../include/text.php:922
+msgid "tired"
+msgstr "stanco"
+
+#: ../../include/text.php:923
+msgid "perky"
+msgstr "vivace"
+
+#: ../../include/text.php:924
+msgid "angry"
+msgstr "arrabbiato"
+
+#: ../../include/text.php:925
+msgid "stupified"
+msgstr "stordito"
+
+#: ../../include/text.php:926
+msgid "puzzled"
+msgstr "confuso"
+
+#: ../../include/text.php:927
+msgid "interested"
+msgstr "attento"
+
+#: ../../include/text.php:928
+msgid "bitter"
+msgstr "amaro"
+
+#: ../../include/text.php:929
+msgid "cheerful"
+msgstr "allegro"
+
+#: ../../include/text.php:930
+msgid "alive"
+msgstr "vivace"
+
+#: ../../include/text.php:931
+msgid "annoyed"
+msgstr "seccato"
+
+#: ../../include/text.php:932
+msgid "anxious"
+msgstr "ansioso"
+
+#: ../../include/text.php:933
+msgid "cranky"
+msgstr "irritabile"
+
+#: ../../include/text.php:934
+msgid "disturbed"
+msgstr "turbato"
+
+#: ../../include/text.php:935
+msgid "frustrated"
+msgstr "frustrato"
+
+#: ../../include/text.php:936
+msgid "depressed"
+msgstr "in depressione"
+
+#: ../../include/text.php:937
+msgid "motivated"
+msgstr "motivato"
+
+#: ../../include/text.php:938
+msgid "relaxed"
+msgstr "rilassato"
+
+#: ../../include/text.php:939
+msgid "surprised"
+msgstr "sorpreso"
+
+#: ../../include/text.php:1103
+msgid "Monday"
+msgstr "lunedì"
+
+#: ../../include/text.php:1103
+msgid "Tuesday"
+msgstr "martedì"
+
+#: ../../include/text.php:1103
+msgid "Wednesday"
+msgstr "mercoledì"
+
+#: ../../include/text.php:1103
+msgid "Thursday"
+msgstr "giovedì"
+
+#: ../../include/text.php:1103
+msgid "Friday"
+msgstr "venerdì"
+
+#: ../../include/text.php:1103
+msgid "Saturday"
+msgstr "sabato"
+
+#: ../../include/text.php:1103
+msgid "Sunday"
+msgstr "domenica"
+
+#: ../../include/text.php:1107
+msgid "January"
+msgstr "gennaio"
+
+#: ../../include/text.php:1107
+msgid "February"
+msgstr "febbraio"
+
+#: ../../include/text.php:1107
+msgid "March"
+msgstr "marzo"
+
+#: ../../include/text.php:1107
+msgid "April"
+msgstr "aprile"
+
+#: ../../include/text.php:1107
+msgid "May"
+msgstr "maggio"
+
+#: ../../include/text.php:1107
+msgid "June"
+msgstr "giugno"
+
+#: ../../include/text.php:1107
+msgid "July"
+msgstr "luglio"
+
+#: ../../include/text.php:1107
+msgid "August"
+msgstr "agosto"
+
+#: ../../include/text.php:1107
+msgid "September"
+msgstr "settembre"
+
+#: ../../include/text.php:1107
+msgid "October"
+msgstr "ottobre"
+
+#: ../../include/text.php:1107
+msgid "November"
+msgstr "novembre"
+
+#: ../../include/text.php:1107
+msgid "December"
+msgstr "dicembre"
+
+#: ../../include/text.php:1185
+msgid "unknown.???"
+msgstr "sconosciuto???"
+
+#: ../../include/text.php:1186
+msgid "bytes"
+msgstr "byte"
+
+#: ../../include/text.php:1225
+msgid "remove category"
+msgstr "rimuovi la categoria"
+
+#: ../../include/text.php:1295
+msgid "remove from file"
+msgstr "rimuovi dal file"
+
+#: ../../include/text.php:1360 ../../include/text.php:1372
+msgid "Click to open/close"
+msgstr "Clicca per aprire/chiudere"
+
+#: ../../include/text.php:1527 ../../mod/events.php:414
+msgid "Link to Source"
+msgstr "Link al sito d'origine"
+
+#: ../../include/text.php:1546
+msgid "Select a page layout: "
+msgstr "Scegli il layout della pagina:"
+
+#: ../../include/text.php:1549 ../../include/text.php:1614
+msgid "default"
+msgstr "predefinito"
+
+#: ../../include/text.php:1585
+msgid "Page content type: "
+msgstr "Contenuto della pagina:"
+
+#: ../../include/text.php:1626
+msgid "Select an alternate language"
+msgstr "Seleziona una lingua diversa"
+
+#: ../../include/text.php:1747 ../../include/conversation.php:120
+#: ../../include/diaspora.php:1928 ../../mod/subthread.php:72
+#: ../../mod/subthread.php:174 ../../mod/like.php:290 ../../mod/tagger.php:45
+msgid "photo"
+msgstr "la foto"
+
+#: ../../include/text.php:1750 ../../include/conversation.php:123
+#: ../../mod/tagger.php:49
+msgid "event"
+msgstr "l'evento"
+
+#: ../../include/text.php:1753 ../../include/conversation.php:148
+#: ../../include/diaspora.php:1928 ../../mod/subthread.php:72
+#: ../../mod/subthread.php:174 ../../mod/like.php:290 ../../mod/tagger.php:53
+msgid "status"
+msgstr "il messaggio di stato"
+
+#: ../../include/text.php:1755 ../../include/conversation.php:150
+#: ../../mod/tagger.php:55
+msgid "comment"
+msgstr "il commento"
+
+#: ../../include/text.php:1760
+msgid "activity"
+msgstr "l'attività"
+
+#: ../../include/text.php:2046
+msgid "Design"
+msgstr "Design"
+
+#: ../../include/text.php:2049
+msgid "Blocks"
+msgstr "Riquadri"
+
+#: ../../include/text.php:2050
+msgid "Menus"
+msgstr "Menù"
+
+#: ../../include/text.php:2051
+msgid "Layouts"
+msgstr "Layout"
+
+#: ../../include/text.php:2052
+msgid "Pages"
+msgstr "Pagine"
#: ../../include/conversation.php:126 ../../mod/like.php:89
msgid "channel"
msgstr "canale"
-#: ../../include/conversation.php:167 ../../mod/like.php:333
+#: ../../include/conversation.php:164 ../../include/diaspora.php:1957
+#: ../../mod/like.php:336
+#, php-format
+msgid "%1$s likes %2$s's %3$s"
+msgstr "A %1$s piace %3$s di %2$s"
+
+#: ../../include/conversation.php:167 ../../mod/like.php:338
#, php-format
msgid "%1$s doesn't like %2$s's %3$s"
msgstr "A %1$s non piace %3$s di %2$s"
@@ -1706,1111 +2337,594 @@ msgctxt "mood"
msgid "%1$s is %2$s"
msgstr "%1$s è %2$s"
-#: ../../include/conversation.php:647 ../../include/ItemObject.php:114
+#: ../../include/conversation.php:638 ../../include/ItemObject.php:126
msgid "Select"
msgstr "Seleziona"
-#: ../../include/conversation.php:655 ../../include/ItemObject.php:89
-#: ../../mod/photos.php:850
+#: ../../include/conversation.php:646 ../../include/ItemObject.php:89
msgid "Private Message"
msgstr "Messaggio privato"
-#: ../../include/conversation.php:662 ../../include/ItemObject.php:182
-msgid "Message is verified"
-msgstr "Messaggio verificato"
+#: ../../include/conversation.php:653 ../../include/ItemObject.php:194
+msgid "Message signature validated"
+msgstr "Messaggio con firma verificata"
+
+#: ../../include/conversation.php:654 ../../include/ItemObject.php:195
+msgid "Message signature incorrect"
+msgstr "Massaggio con firma non corretta"
-#: ../../include/conversation.php:682
+#: ../../include/conversation.php:675
#, php-format
msgid "View %s's profile @ %s"
msgstr "Vedi il profilo di %s @ %s"
-#: ../../include/conversation.php:696
+#: ../../include/conversation.php:690
msgid "Categories:"
msgstr "Categorie:"
-#: ../../include/conversation.php:697
+#: ../../include/conversation.php:691
msgid "Filed under:"
msgstr "Classificato come:"
-#: ../../include/conversation.php:706 ../../include/ItemObject.php:250
+#: ../../include/conversation.php:699 ../../include/ItemObject.php:266
#, php-format
msgid " from %s"
msgstr " da %s"
-#: ../../include/conversation.php:709 ../../include/ItemObject.php:253
+#: ../../include/conversation.php:702 ../../include/ItemObject.php:269
#, php-format
msgid "last edited: %s"
msgstr "ultima modifica: %s"
-#: ../../include/conversation.php:710 ../../include/ItemObject.php:254
+#: ../../include/conversation.php:703 ../../include/ItemObject.php:270
#, php-format
msgid "Expires: %s"
msgstr "Scadenza: %s"
-#: ../../include/conversation.php:725
+#: ../../include/conversation.php:718
msgid "View in context"
msgstr "Vedi nel contesto"
-#: ../../include/conversation.php:727 ../../include/conversation.php:1148
-#: ../../include/ItemObject.php:294 ../../mod/editblock.php:120
-#: ../../mod/editlayout.php:115 ../../mod/editpost.php:121
-#: ../../mod/editwebpage.php:152 ../../mod/photos.php:983
-#: ../../mod/mail.php:231 ../../mod/mail.php:346
+#: ../../include/conversation.php:720 ../../include/conversation.php:1143
+#: ../../include/ItemObject.php:317 ../../mod/editblock.php:152
+#: ../../mod/editlayout.php:148 ../../mod/editpost.php:121
+#: ../../mod/editwebpage.php:183 ../../mod/mail.php:238 ../../mod/mail.php:353
+#: ../../mod/photos.php:978
msgid "Please wait"
msgstr "Attendere"
-#: ../../include/conversation.php:854
+#: ../../include/conversation.php:836
msgid "remove"
msgstr "rimuovi"
-#: ../../include/conversation.php:858
-msgid "Loading..."
-msgstr "Caricamento in corso..."
-
-#: ../../include/conversation.php:859
+#: ../../include/conversation.php:841
msgid "Delete Selected Items"
msgstr "Elimina gli oggetti selezionati"
-#: ../../include/conversation.php:954
+#: ../../include/conversation.php:932
msgid "View Source"
msgstr "Vedi il sorgente"
-#: ../../include/conversation.php:955
+#: ../../include/conversation.php:933
msgid "Follow Thread"
msgstr "Segui la discussione"
-#: ../../include/conversation.php:956
+#: ../../include/conversation.php:934
msgid "View Status"
msgstr "Guarda il messaggio di stato"
-#: ../../include/conversation.php:958
+#: ../../include/conversation.php:936
msgid "View Photos"
msgstr "Guarda le foto"
-#: ../../include/conversation.php:959
+#: ../../include/conversation.php:937
msgid "Matrix Activity"
msgstr "Attività nella tua rete"
-#: ../../include/conversation.php:960 ../../include/identity.php:706
-#: ../../include/widgets.php:135 ../../include/widgets.php:175
-#: ../../include/Contact.php:107 ../../mod/directory.php:183
-#: ../../mod/dirprofile.php:164 ../../mod/suggest.php:51
-#: ../../mod/match.php:62
-msgid "Connect"
-msgstr "Aggiungi"
-
-#: ../../include/conversation.php:961
+#: ../../include/conversation.php:939
msgid "Edit Contact"
msgstr "Modifica il contatto"
-#: ../../include/conversation.php:962
+#: ../../include/conversation.php:940
msgid "Send PM"
msgstr "Invia messaggio privato"
-#: ../../include/conversation.php:1019
+#: ../../include/conversation.php:941 ../../include/apps.php:143
+msgid "Poke"
+msgstr "Poke"
+
+#: ../../include/conversation.php:1014
#, php-format
msgid "%s likes this."
msgstr "Piace a %s."
-#: ../../include/conversation.php:1019
+#: ../../include/conversation.php:1014
#, php-format
msgid "%s doesn't like this."
msgstr "Non piace a %s."
-#: ../../include/conversation.php:1023
+#: ../../include/conversation.php:1018
#, 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] "Piace a <span %1$s>%2$d persone</span>."
-#: ../../include/conversation.php:1025
+#: ../../include/conversation.php:1020
#, 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] "Non piace a <span %1$s>%2$d persone</span>."
-#: ../../include/conversation.php:1031
+#: ../../include/conversation.php:1026
msgid "and"
msgstr "e"
-#: ../../include/conversation.php:1034
+#: ../../include/conversation.php:1029
#, php-format
msgid ", and %d other people"
msgid_plural ", and %d other people"
msgstr[0] ""
msgstr[1] "e altre %d persone"
-#: ../../include/conversation.php:1035
+#: ../../include/conversation.php:1030
#, php-format
msgid "%s like this."
msgstr "Piace a %s."
-#: ../../include/conversation.php:1035
+#: ../../include/conversation.php:1030
#, php-format
msgid "%s don't like this."
msgstr "Non piace a %s."
-#: ../../include/conversation.php:1092
+#: ../../include/conversation.php:1087
msgid "Visible to <strong>everybody</strong>"
msgstr "Visibile a <strong>tutti</strong>"
-#: ../../include/conversation.php:1093 ../../mod/mail.php:167
-#: ../../mod/mail.php:279
+#: ../../include/conversation.php:1088 ../../mod/mail.php:171
+#: ../../mod/mail.php:286
msgid "Please enter a link URL:"
msgstr "Inserisci l'indirizzo del link:"
-#: ../../include/conversation.php:1094
+#: ../../include/conversation.php:1089
msgid "Please enter a video link/URL:"
msgstr "Inserisci l'indirizzo del video:"
-#: ../../include/conversation.php:1095
+#: ../../include/conversation.php:1090
msgid "Please enter an audio link/URL:"
msgstr "Inserisci l'indirizzo dell'audio:"
-#: ../../include/conversation.php:1096
+#: ../../include/conversation.php:1091
msgid "Tag term:"
msgstr "Tag:"
-#: ../../include/conversation.php:1097 ../../mod/filer.php:49
+#: ../../include/conversation.php:1092 ../../mod/filer.php:49
msgid "Save to Folder:"
msgstr "Salva nella cartella:"
-#: ../../include/conversation.php:1098
+#: ../../include/conversation.php:1093
msgid "Where are you right now?"
msgstr "Dove sei ora?"
-#: ../../include/conversation.php:1099 ../../mod/editpost.php:52
-#: ../../mod/mail.php:168 ../../mod/mail.php:280
+#: ../../include/conversation.php:1094 ../../mod/editpost.php:52
+#: ../../mod/mail.php:172 ../../mod/mail.php:287
msgid "Expires YYYY-MM-DD HH:MM"
msgstr "Scade il YYYY-MM-DD HH:MM"
-#: ../../include/conversation.php:1123 ../../mod/photos.php:982
-#: ../../mod/layouts.php:122
+#: ../../include/conversation.php:1118 ../../mod/editblock.php:198
+#: ../../mod/editlayout.php:193 ../../mod/editwebpage.php:230
+#: ../../mod/layouts.php:168 ../../mod/photos.php:977
msgid "Share"
msgstr "Condividi"
-#: ../../include/conversation.php:1125 ../../mod/editwebpage.php:139
+#: ../../include/conversation.php:1120 ../../mod/editwebpage.php:170
msgid "Page link title"
msgstr "Link del titolo"
-#: ../../include/conversation.php:1128
+#: ../../include/conversation.php:1123
msgid "Post as"
msgstr "Pubblica come "
-#: ../../include/conversation.php:1129 ../../mod/editblock.php:112
-#: ../../mod/editlayout.php:107 ../../mod/editpost.php:113
-#: ../../mod/editwebpage.php:144 ../../mod/mail.php:228 ../../mod/mail.php:342
+#: ../../include/conversation.php:1124 ../../mod/editblock.php:144
+#: ../../mod/editlayout.php:140 ../../mod/editpost.php:113
+#: ../../mod/editwebpage.php:175 ../../mod/mail.php:235 ../../mod/mail.php:349
msgid "Upload photo"
msgstr "Carica foto"
-#: ../../include/conversation.php:1130
+#: ../../include/conversation.php:1125
msgid "upload photo"
msgstr "carica foto"
-#: ../../include/conversation.php:1131 ../../mod/editblock.php:113
-#: ../../mod/editlayout.php:108 ../../mod/editpost.php:114
-#: ../../mod/editwebpage.php:145 ../../mod/mail.php:229 ../../mod/mail.php:343
+#: ../../include/conversation.php:1126 ../../mod/editblock.php:145
+#: ../../mod/editlayout.php:141 ../../mod/editpost.php:114
+#: ../../mod/editwebpage.php:176 ../../mod/mail.php:236 ../../mod/mail.php:350
msgid "Attach file"
msgstr "Allega file"
-#: ../../include/conversation.php:1132
+#: ../../include/conversation.php:1127
msgid "attach file"
msgstr "allega file"
-#: ../../include/conversation.php:1133 ../../mod/editblock.php:114
-#: ../../mod/editlayout.php:109 ../../mod/editpost.php:115
-#: ../../mod/editwebpage.php:146 ../../mod/mail.php:230 ../../mod/mail.php:344
+#: ../../include/conversation.php:1128 ../../mod/editblock.php:146
+#: ../../mod/editlayout.php:142 ../../mod/editpost.php:115
+#: ../../mod/editwebpage.php:177 ../../mod/mail.php:237 ../../mod/mail.php:351
msgid "Insert web link"
msgstr "Inserisci un indirizzo web"
-#: ../../include/conversation.php:1134
+#: ../../include/conversation.php:1129
msgid "web link"
msgstr "link web"
-#: ../../include/conversation.php:1135
+#: ../../include/conversation.php:1130
msgid "Insert video link"
msgstr "Inserisci l'indirizzo di un video"
-#: ../../include/conversation.php:1136
+#: ../../include/conversation.php:1131
msgid "video link"
msgstr "link video"
-#: ../../include/conversation.php:1137
+#: ../../include/conversation.php:1132
msgid "Insert audio link"
msgstr "Inserisci l'indirizzo di un audio"
-#: ../../include/conversation.php:1138
+#: ../../include/conversation.php:1133
msgid "audio link"
msgstr "link audio"
-#: ../../include/conversation.php:1139 ../../mod/editblock.php:118
-#: ../../mod/editlayout.php:113 ../../mod/editpost.php:119
-#: ../../mod/editwebpage.php:150
+#: ../../include/conversation.php:1134 ../../mod/editblock.php:150
+#: ../../mod/editlayout.php:146 ../../mod/editpost.php:119
+#: ../../mod/editwebpage.php:181
msgid "Set your location"
msgstr "La tua località"
-#: ../../include/conversation.php:1140
+#: ../../include/conversation.php:1135
msgid "set location"
msgstr "la tua località"
-#: ../../include/conversation.php:1141 ../../mod/editblock.php:119
-#: ../../mod/editlayout.php:114 ../../mod/editpost.php:120
-#: ../../mod/editwebpage.php:151
+#: ../../include/conversation.php:1136 ../../mod/editblock.php:151
+#: ../../mod/editlayout.php:147 ../../mod/editpost.php:120
+#: ../../mod/editwebpage.php:182
msgid "Clear browser location"
msgstr "Rimuovi la località data dal browser"
-#: ../../include/conversation.php:1142
+#: ../../include/conversation.php:1137
msgid "clear location"
msgstr "rimuovi la località"
-#: ../../include/conversation.php:1144 ../../mod/editblock.php:132
-#: ../../mod/editlayout.php:126 ../../mod/editpost.php:132
-#: ../../mod/editwebpage.php:167
-msgid "Set title"
-msgstr "Scegli un titolo"
-
-#: ../../include/conversation.php:1147 ../../mod/editblock.php:135
-#: ../../mod/editlayout.php:129 ../../mod/editpost.php:134
-#: ../../mod/editwebpage.php:169
-msgid "Categories (comma-separated list)"
-msgstr "Categorie (separate da virgola)"
-
-#: ../../include/conversation.php:1149 ../../mod/editblock.php:121
-#: ../../mod/editlayout.php:116 ../../mod/editpost.php:122
-#: ../../mod/editwebpage.php:153
+#: ../../include/conversation.php:1139 ../../mod/editblock.php:164
+#: ../../mod/editlayout.php:159 ../../mod/editpost.php:132
+#: ../../mod/editwebpage.php:198
+msgid "Title (optional)"
+msgstr "Titolo (opzionale)"
+
+#: ../../include/conversation.php:1142 ../../mod/editblock.php:167
+#: ../../mod/editlayout.php:162 ../../mod/editpost.php:134
+#: ../../mod/editwebpage.php:200
+msgid "Categories (optional, comma-separated list)"
+msgstr "Categorie (lista separata da virgole)"
+
+#: ../../include/conversation.php:1144 ../../mod/editblock.php:153
+#: ../../mod/editlayout.php:149 ../../mod/editpost.php:122
+#: ../../mod/editwebpage.php:184
msgid "Permission settings"
msgstr "Impostazioni permessi"
-#: ../../include/conversation.php:1150
+#: ../../include/conversation.php:1145
msgid "permissions"
msgstr "permessi"
-#: ../../include/conversation.php:1157 ../../mod/editblock.php:129
-#: ../../mod/editlayout.php:123 ../../mod/editpost.php:129
-#: ../../mod/editwebpage.php:162
+#: ../../include/conversation.php:1152 ../../mod/editblock.php:161
+#: ../../mod/editlayout.php:156 ../../mod/editpost.php:129
+#: ../../mod/editwebpage.php:193
msgid "Public post"
msgstr "Articolo pubblico"
-#: ../../include/conversation.php:1159 ../../mod/editblock.php:136
-#: ../../mod/editlayout.php:130 ../../mod/editpost.php:135
-#: ../../mod/editwebpage.php:170
+#: ../../include/conversation.php:1154 ../../mod/editblock.php:168
+#: ../../mod/editlayout.php:163 ../../mod/editpost.php:135
+#: ../../mod/editwebpage.php:201
msgid "Example: bob@example.com, mary@example.com"
msgstr "Per esempio: mario@esempio.com, simona@esempio.com"
-#: ../../include/conversation.php:1172 ../../mod/editblock.php:146
-#: ../../mod/editlayout.php:140 ../../mod/editpost.php:146
-#: ../../mod/editwebpage.php:179 ../../mod/mail.php:235 ../../mod/mail.php:349
+#: ../../include/conversation.php:1167 ../../mod/editblock.php:178
+#: ../../mod/editlayout.php:173 ../../mod/editpost.php:146
+#: ../../mod/editwebpage.php:210 ../../mod/mail.php:242 ../../mod/mail.php:356
msgid "Set expiration date"
msgstr "Data di scadenza"
-#: ../../include/conversation.php:1174 ../../include/ItemObject.php:595
-#: ../../mod/editpost.php:148 ../../mod/mail.php:237 ../../mod/mail.php:351
+#: ../../include/conversation.php:1169 ../../include/ItemObject.php:633
+#: ../../mod/editpost.php:148 ../../mod/mail.php:244 ../../mod/mail.php:358
msgid "Encrypt text"
msgstr "Crittografia del testo"
-#: ../../include/conversation.php:1176 ../../mod/editpost.php:150
+#: ../../include/conversation.php:1171 ../../mod/events.php:580
+#: ../../mod/editpost.php:150
msgid "OK"
msgstr "OK"
-#: ../../include/conversation.php:1177 ../../mod/settings.php:518
-#: ../../mod/settings.php:544 ../../mod/editpost.php:151
-#: ../../mod/fbrowser.php:82 ../../mod/fbrowser.php:117 ../../mod/tagrm.php:11
-#: ../../mod/tagrm.php:94
+#: ../../include/conversation.php:1172 ../../mod/settings.php:566
+#: ../../mod/settings.php:592 ../../mod/events.php:579
+#: ../../mod/editpost.php:151 ../../mod/fbrowser.php:82
+#: ../../mod/fbrowser.php:117 ../../mod/tagrm.php:11 ../../mod/tagrm.php:134
msgid "Cancel"
msgstr "Annulla"
-#: ../../include/conversation.php:1419
+#: ../../include/conversation.php:1416
msgid "Discover"
msgstr "Scopri"
-#: ../../include/conversation.php:1422
+#: ../../include/conversation.php:1419
msgid "Imported public streams"
msgstr "Contenuti pubblici importati"
-#: ../../include/conversation.php:1427
+#: ../../include/conversation.php:1424
msgid "Commented Order"
msgstr "Ultimi commenti"
-#: ../../include/conversation.php:1430
+#: ../../include/conversation.php:1427
msgid "Sort by Comment Date"
msgstr "Per data del commento"
-#: ../../include/conversation.php:1434
+#: ../../include/conversation.php:1431
msgid "Posted Order"
msgstr "Ultimi articoli"
-#: ../../include/conversation.php:1437
+#: ../../include/conversation.php:1434
msgid "Sort by Post Date"
msgstr "Per data di creazione"
-#: ../../include/conversation.php:1442 ../../include/widgets.php:89
+#: ../../include/conversation.php:1439 ../../include/widgets.php:94
msgid "Personal"
msgstr "Personali"
-#: ../../include/conversation.php:1445
+#: ../../include/conversation.php:1442
msgid "Posts that mention or involve you"
msgstr "Articoli che ti riguardano o ti menzionano"
-#: ../../include/conversation.php:1451 ../../mod/connections.php:211
-#: ../../mod/connections.php:224 ../../mod/menu.php:61
+#: ../../include/conversation.php:1448 ../../mod/connections.php:211
+#: ../../mod/connections.php:224 ../../mod/menu.php:80
msgid "New"
msgstr "Novità"
-#: ../../include/conversation.php:1454
+#: ../../include/conversation.php:1451
msgid "Activity Stream - by date"
msgstr "Elenco attività - per data"
-#: ../../include/conversation.php:1460
+#: ../../include/conversation.php:1457
msgid "Starred"
msgstr "Preferiti"
-#: ../../include/conversation.php:1463
+#: ../../include/conversation.php:1460
msgid "Favourite Posts"
msgstr "Articoli preferiti"
-#: ../../include/conversation.php:1470
+#: ../../include/conversation.php:1467
msgid "Spam"
msgstr "Spam"
-#: ../../include/conversation.php:1473
+#: ../../include/conversation.php:1470
msgid "Posts flagged as SPAM"
msgstr "Articoli marcati come spam"
-#: ../../include/conversation.php:1509 ../../mod/admin.php:864
+#: ../../include/conversation.php:1510 ../../mod/admin.php:865
msgid "Channel"
msgstr "Canale"
-#: ../../include/conversation.php:1512
+#: ../../include/conversation.php:1513
msgid "Status Messages and Posts"
msgstr "Articoli e messaggi di stato"
-#: ../../include/conversation.php:1521
+#: ../../include/conversation.php:1522
msgid "About"
msgstr "Informazioni"
-#: ../../include/conversation.php:1524
+#: ../../include/conversation.php:1525
msgid "Profile Details"
msgstr "Dettagli del profilo"
-#: ../../include/conversation.php:1542
+#: ../../include/conversation.php:1534 ../../include/photos.php:341
+msgid "Photo Albums"
+msgstr "Album foto"
+
+#: ../../include/conversation.php:1543
msgid "Files and Storage"
msgstr "Archivio file"
-#: ../../include/conversation.php:1551 ../../include/conversation.php:1554
+#: ../../include/conversation.php:1553 ../../include/conversation.php:1556
msgid "Chatrooms"
msgstr "Area chat"
-#: ../../include/conversation.php:1564
+#: ../../include/conversation.php:1569
msgid "Saved Bookmarks"
msgstr "Segnalibri salvati"
-#: ../../include/conversation.php:1575
+#: ../../include/conversation.php:1580
msgid "Manage Webpages"
msgstr "Gestisci le pagine web"
-#: ../../include/features.php:23
-msgid "General Features"
-msgstr "Funzionalità di base"
-
-#: ../../include/features.php:25
-msgid "Content Expiration"
-msgstr "Scadenza"
-
-#: ../../include/features.php:25
-msgid "Remove posts/comments and/or private messages at a future time"
-msgstr "Elimina gli articoli, i commenti o i messaggi privati dopo che è trascorso del tempo"
-
-#: ../../include/features.php:26
-msgid "Multiple Profiles"
-msgstr "Profili multipli"
-
-#: ../../include/features.php:26
-msgid "Ability to create multiple profiles"
-msgstr "Abilitazione a creare profili multipli"
-
-#: ../../include/features.php:27
-msgid "Advanced Profiles"
-msgstr "Profili avanzati"
-
-#: ../../include/features.php:27
-msgid "Additional profile sections and selections"
-msgstr "Informazioni aggiuntive del profilo"
-
-#: ../../include/features.php:28
-msgid "Profile Import/Export"
-msgstr "Importa/esporta il profilo"
-
-#: ../../include/features.php:28
-msgid "Save and load profile details across sites/channels"
-msgstr "Salva o ripristina le informazioni del profilo su canali o siti diversi"
-
-#: ../../include/features.php:29
-msgid "Web Pages"
-msgstr "Pagine web"
-
-#: ../../include/features.php:29
-msgid "Provide managed web pages on your channel"
-msgstr "Attiva la creazione di pagine web sul tuo canale"
-
-#: ../../include/features.php:30
-msgid "Private Notes"
-msgstr "Note private"
-
-#: ../../include/features.php:30
-msgid "Enables a tool to store notes and reminders"
-msgstr "Abilita il riquadro per scrivere annotazioni"
-
-#: ../../include/features.php:34
-msgid "Navigation Channel Select"
-msgstr "Scegli il canale attivo dal menu"
-
-#: ../../include/features.php:34
-msgid "Change channels directly from within the navigation dropdown menu"
-msgstr "Scegli il canale attivo direttamente dal menu di navigazione"
-
-#: ../../include/features.php:38
-msgid "Extended Identity Sharing"
-msgstr "Condivisione avanzata dell'identità"
-
-#: ../../include/features.php:38
-msgid ""
-"Share your identity with all websites on the internet. When disabled, "
-"identity is only shared with sites in the matrix."
-msgstr "Rendi nota la tua identità a tutti i siti internet. Se disabilitato, la tua identità sarà comunicata solo ai siti RedMatrix."
-
-#: ../../include/features.php:39
-msgid "Expert Mode"
-msgstr "Modalità esperto"
-
-#: ../../include/features.php:39
-msgid "Enable Expert Mode to provide advanced configuration options"
-msgstr "Abilita la modalità esperto per vedere le opzioni di configurazione avanzate"
-
-#: ../../include/features.php:40
-msgid "Premium Channel"
-msgstr "Canale premium"
-
-#: ../../include/features.php:40
-msgid ""
-"Allows you to set restrictions and terms on those that connect with your "
-"channel"
-msgstr "Ti permette di imporre delle restrizioni e dei termini d'uso a chi segue il canale"
-
-#: ../../include/features.php:45
-msgid "Post Composition Features"
-msgstr "Modalità di scrittura articoli"
-
-#: ../../include/features.php:47
-msgid "Use Markdown"
-msgstr "Usa il markdown"
-
-#: ../../include/features.php:47
-msgid "Allow use of \"Markdown\" to format posts"
-msgstr "Consenti l'uso del markdown per formattare gli articoli"
-
-#: ../../include/features.php:48
-msgid "Post Preview"
-msgstr "Anteprima articolo"
-
-#: ../../include/features.php:48
-msgid "Allow previewing posts and comments before publishing them"
-msgstr "Abilita l'anteprima degli articoli e dei commenti prima di pubblicarli"
-
-#: ../../include/features.php:49 ../../include/widgets.php:510
-#: ../../mod/sources.php:88
-msgid "Channel Sources"
-msgstr "Sorgenti del canale"
-
-#: ../../include/features.php:49
-msgid "Automatically import channel content from other channels or feeds"
-msgstr "Importa automaticamente il contenuto del canale da altri canali o feed"
-
-#: ../../include/features.php:50
-msgid "Even More Encryption"
-msgstr "Crittografia addizionale"
-
-#: ../../include/features.php:50
-msgid ""
-"Allow optional encryption of content end-to-end with a shared secret key"
-msgstr "Rendi possibile la crittografia dei contenuti tra mittente e destinatari con una chiave segreta"
-
-#: ../../include/features.php:55
-msgid "Network and Stream Filtering"
-msgstr "Filtraggio dei contenuti"
-
-#: ../../include/features.php:56
-msgid "Search by Date"
-msgstr "Ricerca per data"
-
-#: ../../include/features.php:56
-msgid "Ability to select posts by date ranges"
-msgstr "Per selezionare gli articoli in un intervallo tra date"
-
-#: ../../include/features.php:57
-msgid "Collections Filter"
-msgstr "Filtra per insiemi di canali"
-
-#: ../../include/features.php:57
-msgid "Enable widget to display Network posts only from selected collections"
-msgstr "Mostra il riquadro per filtrare gli articoli di certi insiemi di canali"
-
-#: ../../include/features.php:58 ../../include/widgets.php:272
-msgid "Saved Searches"
-msgstr "Ricerche salvate"
-
-#: ../../include/features.php:58
-msgid "Save search terms for re-use"
-msgstr "Salva i termini delle ricerche per poterle ripetere"
-
-#: ../../include/features.php:59
-msgid "Network Personal Tab"
-msgstr "Attività personale"
-
-#: ../../include/features.php:59
-msgid "Enable tab to display only Network posts that you've interacted on"
-msgstr "Abilita il link per mostrare solamente i contenuti con cui hai interagito"
-
-#: ../../include/features.php:60
-msgid "Network New Tab"
-msgstr "Contenuti nuovi"
-
-#: ../../include/features.php:60
-msgid "Enable tab to display all new Network activity"
-msgstr "Abilita il link per visualizzare solo i nuovi contenuti"
-
-#: ../../include/features.php:61
-msgid "Affinity Tool"
-msgstr "Filtro per affinità"
-
-#: ../../include/features.php:61
-msgid "Filter stream activity by depth of relationships"
-msgstr "Permette di selezionare i contenuti in base al livello di amicizia"
-
-#: ../../include/features.php:62
-msgid "Suggest Channels"
-msgstr "Suggerisci canali"
-
-#: ../../include/features.php:62
-msgid "Show channel suggestions"
-msgstr "Mostra alcuni canali che potrebbero interessarti"
-
-#: ../../include/features.php:67
-msgid "Post/Comment Tools"
-msgstr "Gestione articoli e commenti"
-
-#: ../../include/features.php:69
-msgid "Edit Sent Posts"
-msgstr "Modifica gli articoli già inviati"
-
-#: ../../include/features.php:69
-msgid "Edit and correct posts and comments after sending"
-msgstr "Modifica e correggi gli articoli o i commenti anche dopo l'invio"
-
-#: ../../include/features.php:70
-msgid "Tagging"
-msgstr "Tag"
+#: ../../include/account.php:23
+msgid "Not a valid email address"
+msgstr "Email non valida"
-#: ../../include/features.php:70
-msgid "Ability to tag existing posts"
-msgstr "Permetti l'aggiunta di tag su articoli già esistenti"
+#: ../../include/account.php:25
+msgid "Your email domain is not among those allowed on this site"
+msgstr "Il dominio della tua email attualmente non è permesso su questo sito"
-#: ../../include/features.php:71
-msgid "Post Categories"
-msgstr "Categorie degli articoli"
+#: ../../include/account.php:31
+msgid "Your email address is already registered at this site."
+msgstr "La tua email è già registrata su questo sito."
-#: ../../include/features.php:71
-msgid "Add categories to your posts"
-msgstr "Abilita le categorie per i tuoi articoli"
+#: ../../include/account.php:64
+msgid "An invitation is required."
+msgstr "È necessario un invito."
-#: ../../include/features.php:72
-msgid "Ability to file posts under folders"
-msgstr "Abilita la raccolta dei tuoi articoli in cartelle"
+#: ../../include/account.php:68
+msgid "Invitation could not be verified."
+msgstr "L'invito non può essere verificato."
-#: ../../include/features.php:73
-msgid "Dislike Posts"
-msgstr "Non mi piace"
+#: ../../include/account.php:119
+msgid "Please enter the required information."
+msgstr "Inserisci le informazioni richieste."
-#: ../../include/features.php:73
-msgid "Ability to dislike posts/comments"
-msgstr "Abilità la funzionalità \"non mi piace\" per i tuoi articoli"
+#: ../../include/account.php:187
+msgid "Failed to store account information."
+msgstr "Non è stato possibile salvare le informazioni del tuo account."
-#: ../../include/features.php:74
-msgid "Star Posts"
-msgstr "Articoli stella (preferiti)"
+#: ../../include/account.php:245
+#, php-format
+msgid "Registration confirmation for %s"
+msgstr "Registrazione di %s confermata"
-#: ../../include/features.php:74
-msgid "Ability to mark special posts with a star indicator"
-msgstr "Mostra la stella per scegliere gli articoli preferiti"
+#: ../../include/account.php:313
+#, php-format
+msgid "Registration request at %s"
+msgstr "Richiesta di registrazione su %s"
-#: ../../include/features.php:75
-msgid "Tag Cloud"
-msgstr "Nuvola di tag"
+#: ../../include/account.php:315 ../../include/account.php:342
+#: ../../include/account.php:399
+msgid "Administrator"
+msgstr "Amministratore"
-#: ../../include/features.php:75
-msgid "Provide a personal tag cloud on your channel page"
-msgstr "Mostra la nuvola dei tag che usi di più sulla pagina del tuo canale"
+#: ../../include/account.php:337
+msgid "your registration password"
+msgstr "la password di registrazione"
-#: ../../include/follow.php:23
-msgid "Channel is blocked on this site."
-msgstr "Il canale è bloccato per questo sito."
+#: ../../include/account.php:340 ../../include/account.php:397
+#, php-format
+msgid "Registration details for %s"
+msgstr "Dettagli della registrazione di %s"
-#: ../../include/follow.php:28
-msgid "Channel location missing."
-msgstr "Manca l'indirizzo del canale."
+#: ../../include/account.php:406
+msgid "Account approved."
+msgstr "Account approvato."
-#: ../../include/follow.php:54
-msgid "Response from remote channel was incomplete."
-msgstr "La risposta dal canale non è completa."
+#: ../../include/account.php:440
+#, php-format
+msgid "Registration revoked for %s"
+msgstr "Registrazione revocata per %s"
-#: ../../include/follow.php:85
-msgid "Channel was deleted and no longer exists."
-msgstr "Il canale è stato rimosso e non esiste più."
+#: ../../include/account.php:486
+msgid "Account verified. Please login."
+msgstr "Registrazione verificata. Adesso puoi effettuare login."
-#: ../../include/follow.php:143
-msgid "Channel discovery failed."
-msgstr "La ricerca del canale non ha avuto successo."
+#: ../../include/account.php:648 ../../include/account.php:650
+msgid "Click here to upgrade."
+msgstr "Clicca qui per aggiornare."
-#: ../../include/follow.php:160
-msgid "local account not found."
-msgstr "l'account locale non è stato trovato."
+#: ../../include/account.php:656
+msgid "This action exceeds the limits set by your subscription plan."
+msgstr "Questa operazione supera i limiti del tuo abbonamento."
-#: ../../include/follow.php:169
-msgid "Cannot connect to yourself."
-msgstr "Non puoi connetterti a te stesso."
+#: ../../include/account.php:661
+msgid "This action is not available under your subscription plan."
+msgstr "Questa operazione non è prevista dal tuo abbonamento."
-#: ../../include/chat.php:10
-msgid "Missing room name"
-msgstr "Area chat senza nome"
+#: ../../include/photos.php:105
+#, php-format
+msgid "Image exceeds website size limit of %lu bytes"
+msgstr "L'immagine supera il limite massimo di %lu bytes"
-#: ../../include/chat.php:19
-msgid "Duplicate room name"
-msgstr "Il nome dell'area chat è duplicato"
+#: ../../include/photos.php:112
+msgid "Image file is empty."
+msgstr "Il file dell'immagine è vuoto."
-#: ../../include/chat.php:68 ../../include/chat.php:76
-msgid "Invalid room specifier."
-msgstr "Il nome dell'area chat non è valido."
+#: ../../include/photos.php:141 ../../mod/profile_photo.php:216
+msgid "Unable to process image"
+msgstr "Impossibile elaborare l'immagine"
-#: ../../include/chat.php:105
-msgid "Room not found."
-msgstr "Area chat non trovata."
+#: ../../include/photos.php:213
+msgid "Photo storage failed."
+msgstr "Impossibile caricare la foto."
-#: ../../include/chat.php:126
-msgid "Room is full"
-msgstr "L'area chat è al completo"
+#: ../../include/photos.php:345
+msgid "Upload New Photos"
+msgstr "Carica nuove foto"
-#: ../../include/items.php:315 ../../mod/profperm.php:23
-#: ../../mod/subthread.php:49 ../../mod/group.php:68 ../../mod/like.php:242
-#: ../../index.php:360
+#: ../../include/items.php:382 ../../mod/profperm.php:23
+#: ../../mod/subthread.php:49 ../../mod/like.php:246 ../../mod/group.php:68
+#: ../../index.php:389
msgid "Permission denied"
msgstr "Permesso negato"
-#: ../../include/items.php:858
+#: ../../include/items.php:969 ../../include/items.php:1014
msgid "(Unknown)"
msgstr "(Sconosciuto)"
-#: ../../include/items.php:990
+#: ../../include/items.php:1171
msgid "Visible to anybody on the internet."
-msgstr "Visibile a chiunque su internet"
+msgstr "Visibile a chiunque su internet."
-#: ../../include/items.php:992
+#: ../../include/items.php:1173
msgid "Visible to you only."
msgstr "Visibile solo a te."
-#: ../../include/items.php:994
+#: ../../include/items.php:1175
msgid "Visible to anybody in this network."
msgstr "Visibile a tutti su questa rete."
-#: ../../include/items.php:996
+#: ../../include/items.php:1177
msgid "Visible to anybody authenticated."
msgstr "Visibile a chiunque sia autenticato."
-#: ../../include/items.php:998
+#: ../../include/items.php:1179
#, php-format
msgid "Visible to anybody on %s."
msgstr "Visibile a tutti in %s."
-#: ../../include/items.php:1000
+#: ../../include/items.php:1181
msgid "Visible to all connections."
msgstr "Visibile a tutti coloro che ti seguono."
-#: ../../include/items.php:1002
+#: ../../include/items.php:1183
msgid "Visible to approved connections."
msgstr "Visibile ai contatti approvati."
-#: ../../include/items.php:1004
+#: ../../include/items.php:1185
msgid "Visible to specific connections."
msgstr "Visibile ad alcuni contatti scelti."
-#: ../../include/items.php:3630 ../../mod/home.php:67 ../../mod/display.php:32
-#: ../../mod/filestorage.php:18 ../../mod/admin.php:168
-#: ../../mod/admin.php:895 ../../mod/admin.php:1098 ../../mod/thing.php:78
-#: ../../mod/viewsrc.php:18
+#: ../../include/items.php:3952 ../../mod/thing.php:76
+#: ../../mod/display.php:32 ../../mod/filestorage.php:26
+#: ../../mod/admin.php:168 ../../mod/admin.php:896 ../../mod/admin.php:1099
+#: ../../mod/viewsrc.php:20
msgid "Item not found."
msgstr "Elemento non trovato."
-#: ../../include/items.php:4063 ../../mod/group.php:38 ../../mod/group.php:140
+#: ../../include/items.php:4410 ../../mod/group.php:38 ../../mod/group.php:140
msgid "Collection not found."
-msgstr "Insieme non trovato."
+msgstr "Insieme di canali non trovato."
-#: ../../include/items.php:4078
+#: ../../include/items.php:4425
msgid "Collection is empty."
msgstr "L'insieme di canali è vuoto."
-#: ../../include/items.php:4085
+#: ../../include/items.php:4432
#, php-format
msgid "Collection: %s"
msgstr "Insieme: %s"
-#: ../../include/items.php:4096
+#: ../../include/items.php:4443
#, php-format
msgid "Connection: %s"
msgstr "Contatto: %s"
-#: ../../include/items.php:4099
+#: ../../include/items.php:4446
msgid "Connection not found."
msgstr "Contatto non trovato."
-#: ../../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 "È stato ripristinato un insieme con lo stesso nome che era stato eliminato in precedenza. I permessi già presenti <strong>potrebbero</strong> rimanere validi per i nuovi canali. Se non vuoi che ciò accada, devi creare un altro insieme con un nome diverso."
-
-#: ../../include/group.php:234
-msgid "Default privacy group for new contacts"
-msgstr "Insieme predefinito per i canali che inizi a seguire"
-
-#: ../../include/group.php:253 ../../mod/admin.php:735
-msgid "All Channels"
-msgstr "Tutti i canali"
-
-#: ../../include/group.php:275
-msgid "edit"
-msgstr "modifica"
-
-#: ../../include/group.php:296
-msgid "Collections"
-msgstr "Insiemi di canali"
-
-#: ../../include/group.php:297
-msgid "Edit collection"
-msgstr "Modifica l'insieme di canali"
-
-#: ../../include/group.php:298
-msgid "Create a new collection"
-msgstr "Crea un nuovo insieme"
-
-#: ../../include/group.php:299
-msgid "Channels not in any collection"
-msgstr "Canali che non sono in un insieme"
-
-#: ../../include/group.php:301 ../../include/widgets.php:273
-msgid "add"
-msgstr "aggiungi"
-
-#: ../../include/identity.php:30 ../../mod/item.php:1296
-msgid "Unable to obtain identity information from database"
-msgstr "Impossibile ottenere le informazioni di identificazione dal database"
-
-#: ../../include/identity.php:63
-msgid "Empty name"
-msgstr "Nome vuoto"
-
-#: ../../include/identity.php:65
-msgid "Name too long"
-msgstr "Nome troppo lungo"
-
-#: ../../include/identity.php:166
-msgid "No account identifier"
-msgstr "Account senza identificativo"
-
-#: ../../include/identity.php:176
-msgid "Nickname is required."
-msgstr "Il nome dell'account è obbligatorio."
-
-#: ../../include/identity.php:190
-msgid "Reserved nickname. Please choose another."
-msgstr "Nome utente riservato. Per favore scegline un altro."
-
-#: ../../include/identity.php:195
-msgid ""
-"Nickname has unsupported characters or is already being used on this site."
-msgstr "Il nome dell'account è già in uso oppure ha dei caratteri non supportati."
-
-#: ../../include/identity.php:258
-msgid "Unable to retrieve created identity"
-msgstr "Impossibile caricare l'identità creata"
-
-#: ../../include/identity.php:317
-msgid "Default Profile"
-msgstr "Profilo predefinito"
-
-#: ../../include/identity.php:342 ../../include/widgets.php:407
-#: ../../include/profile_selectors.php:80 ../../mod/connedit.php:473
-msgid "Friends"
-msgstr "Amici"
-
-#: ../../include/identity.php:509
-msgid "Requested channel is not available."
-msgstr "Il canale che cerchi non è disponibile."
-
-#: ../../include/identity.php:557 ../../mod/achievements.php:8
-#: ../../mod/profile.php:16 ../../mod/blocks.php:10 ../../mod/connect.php:13
-#: ../../mod/filestorage.php:40 ../../mod/layouts.php:8
-#: ../../mod/webpages.php:8 ../../mod/hcard.php:8
-msgid "Requested profile is not available."
-msgstr "Il profilo richiesto non è disponibile."
-
-#: ../../include/identity.php:720 ../../mod/profiles.php:750
-msgid "Change profile photo"
-msgstr "Cambia la foto del profilo"
-
-#: ../../include/identity.php:726
-msgid "Profiles"
-msgstr "Profili"
-
-#: ../../include/identity.php:726
-msgid "Manage/edit profiles"
-msgstr "Gestisci/modifica i profili"
-
-#: ../../include/identity.php:727 ../../mod/profiles.php:751
-msgid "Create New Profile"
-msgstr "Crea un nuovo profilo"
-
-#: ../../include/identity.php:741 ../../mod/profiles.php:762
-msgid "Profile Image"
-msgstr "Immagine del profilo"
-
-#: ../../include/identity.php:744
-msgid "visible to everybody"
-msgstr "visibile a tutti"
-
-#: ../../include/identity.php:745 ../../mod/profiles.php:645
-#: ../../mod/profiles.php:766
-msgid "Edit visibility"
-msgstr "Cambia la visibilità"
-
-#: ../../include/identity.php:759 ../../include/identity.php:1001
-#: ../../mod/directory.php:158
-msgid "Gender:"
-msgstr "Sesso:"
-
-#: ../../include/identity.php:760 ../../include/identity.php:1045
-#: ../../mod/directory.php:160
-msgid "Status:"
-msgstr "Stato:"
-
-#: ../../include/identity.php:761 ../../include/identity.php:1056
-#: ../../mod/directory.php:162
-msgid "Homepage:"
-msgstr "Home page:"
-
-#: ../../include/identity.php:762 ../../mod/dirprofile.php:151
-msgid "Online Now"
-msgstr "Online adesso"
-
-#: ../../include/identity.php:845 ../../include/identity.php:925
-#: ../../mod/ping.php:298
-msgid "g A l F d"
-msgstr "g A l d F"
-
-#: ../../include/identity.php:846 ../../include/identity.php:926
-msgid "F d"
-msgstr "d F"
-
-#: ../../include/identity.php:891 ../../include/identity.php:966
-#: ../../mod/ping.php:320
-msgid "[today]"
-msgstr "[oggi]"
-
-#: ../../include/identity.php:903
-msgid "Birthday Reminders"
-msgstr "Promemoria compleanni"
-
-#: ../../include/identity.php:904
-msgid "Birthdays this week:"
-msgstr "Compleanni questa settimana:"
-
-#: ../../include/identity.php:959
-msgid "[No description]"
-msgstr "[Nessuna descrizione]"
-
-#: ../../include/identity.php:977
-msgid "Event Reminders"
-msgstr "Promemoria"
-
-#: ../../include/identity.php:978
-msgid "Events this week:"
-msgstr "Eventi di questa settimana:"
-
-#: ../../include/identity.php:999 ../../mod/settings.php:943
-msgid "Full Name:"
-msgstr "Nome completo:"
-
-#: ../../include/identity.php:1006
-msgid "Like this channel"
-msgstr "Mi piace questo canale"
-
-#: ../../include/identity.php:1030
-msgid "j F, Y"
-msgstr "j F Y"
-
-#: ../../include/identity.php:1031
-msgid "j F"
-msgstr "j F"
-
-#: ../../include/identity.php:1038
-msgid "Birthday:"
-msgstr "Compleanno:"
-
-#: ../../include/identity.php:1042
-msgid "Age:"
-msgstr "Età:"
-
-#: ../../include/identity.php:1051
-#, php-format
-msgid "for %1$d %2$s"
-msgstr "per %1$d %2$s"
-
-#: ../../include/identity.php:1054 ../../mod/profiles.php:667
-msgid "Sexual Preference:"
-msgstr "Preferenze sessuali:"
-
-#: ../../include/identity.php:1058 ../../mod/profiles.php:669
-msgid "Hometown:"
-msgstr "Città dove vivo:"
-
-#: ../../include/identity.php:1060
-msgid "Tags:"
-msgstr "Tag:"
-
-#: ../../include/identity.php:1062 ../../mod/profiles.php:670
-msgid "Political Views:"
-msgstr "Orientamento politico:"
-
-#: ../../include/identity.php:1064
-msgid "Religion:"
-msgstr "Religione:"
-
-#: ../../include/identity.php:1066 ../../mod/directory.php:164
-msgid "About:"
-msgstr "Informazioni:"
-
-#: ../../include/identity.php:1068
-msgid "Hobbies/Interests:"
-msgstr "Interessi e hobby:"
-
-#: ../../include/identity.php:1070 ../../mod/profiles.php:673
-msgid "Likes:"
-msgstr "Mi piace:"
-
-#: ../../include/identity.php:1072 ../../mod/profiles.php:674
-msgid "Dislikes:"
-msgstr "Non mi piace:"
-
-#: ../../include/identity.php:1075
-msgid "Contact information and Social Networks:"
-msgstr "Contatti e social network:"
-
-#: ../../include/identity.php:1077
-msgid "My other channels:"
-msgstr "I miei altri canali:"
-
-#: ../../include/identity.php:1079
-msgid "Musical interests:"
-msgstr "Gusti musicali:"
-
-#: ../../include/identity.php:1081
-msgid "Books, literature:"
-msgstr "Libri, letteratura:"
-
-#: ../../include/identity.php:1083
-msgid "Television:"
-msgstr "Televisione:"
-
-#: ../../include/identity.php:1085
-msgid "Film/dance/culture/entertainment:"
-msgstr "Film, danza, cultura, intrattenimento:"
-
-#: ../../include/identity.php:1087
-msgid "Love/Romance:"
-msgstr "Amore:"
-
-#: ../../include/identity.php:1089
-msgid "Work/employment:"
-msgstr "Lavoro:"
-
-#: ../../include/identity.php:1091
-msgid "School/education:"
-msgstr "Scuola:"
-
-#: ../../include/identity.php:1111
-msgid "Like this thing"
-msgstr "Mi piace questo oggetto"
-
-#: ../../include/bbcode.php:112 ../../include/bbcode.php:645
-#: ../../include/bbcode.php:648 ../../include/bbcode.php:653
-#: ../../include/bbcode.php:656 ../../include/bbcode.php:659
-#: ../../include/bbcode.php:662 ../../include/bbcode.php:667
-#: ../../include/bbcode.php:670 ../../include/bbcode.php:675
-#: ../../include/bbcode.php:678 ../../include/bbcode.php:681
-#: ../../include/bbcode.php:684
-msgid "Image/photo"
-msgstr "Immagine"
-
-#: ../../include/bbcode.php:147 ../../include/bbcode.php:695
-msgid "Encrypted content"
-msgstr "Contenuto crittografato"
-
-#: ../../include/bbcode.php:163
-msgid "QR code"
-msgstr "QR code"
-
-#: ../../include/bbcode.php:212
-#, php-format
-msgid "%1$s wrote the following %2$s %3$s"
-msgstr "%1$s ha scritto %2$s %3$s"
-
-#: ../../include/bbcode.php:214
-msgid "post"
-msgstr "l'articolo"
-
-#: ../../include/bbcode.php:613 ../../include/bbcode.php:633
-msgid "$1 wrote:"
-msgstr "$1 ha scritto:"
-
-#: ../../include/message.php:18
-msgid "No recipient provided."
-msgstr "Devi scegliere un destinatario."
-
-#: ../../include/message.php:23
-msgid "[no subject]"
-msgstr "[nessun titolo]"
-
-#: ../../include/message.php:42
-msgid "Unable to determine sender."
-msgstr "Impossibile determinare il mittente."
-
-#: ../../include/message.php:143
-msgid "Stored post could not be verified."
-msgstr "Non è stato possibile verificare l'articolo inserito."
-
-#: ../../include/widgets.php:87
+#: ../../include/widgets.php:92
msgid "System"
msgstr "Sistema"
-#: ../../include/widgets.php:90
+#: ../../include/widgets.php:95
msgid "Create Personal App"
msgstr "Crea una app personale"
-#: ../../include/widgets.php:91
+#: ../../include/widgets.php:96
msgid "Edit Personal App"
msgstr "Modifica una app personale"
-#: ../../include/widgets.php:137 ../../mod/suggest.php:53
+#: ../../include/widgets.php:138 ../../mod/suggest.php:53
msgid "Ignore/Hide"
msgstr "Ignora/nascondi"
@@ -2839,267 +2953,136 @@ msgstr "Scrivi l'indirizzo del canale"
msgid "Example: bob@example.com, http://example.com/barbara"
msgstr "Per esempio: mario@pippo.it oppure http://pluto.com/barbara"
-#: ../../include/widgets.php:191
+#: ../../include/widgets.php:190
msgid "Notes"
msgstr "Note"
-#: ../../include/widgets.php:263
+#: ../../include/widgets.php:260
msgid "Remove term"
msgstr "Rimuovi termine"
-#: ../../include/widgets.php:342
+#: ../../include/widgets.php:343
msgid "Archives"
msgstr "Archivi"
-#: ../../include/widgets.php:404
+#: ../../include/widgets.php:421
msgid "Refresh"
msgstr "Aggiorna"
-#: ../../include/widgets.php:405 ../../mod/connedit.php:470
+#: ../../include/widgets.php:422 ../../mod/connedit.php:506
msgid "Me"
msgstr "Io"
-#: ../../include/widgets.php:406 ../../mod/connedit.php:472
+#: ../../include/widgets.php:423 ../../mod/connedit.php:509
msgid "Best Friends"
-msgstr "Buoni amici"
+msgstr "Migliori amici"
-#: ../../include/widgets.php:408
+#: ../../include/widgets.php:425
msgid "Co-workers"
msgstr "Colleghi"
-#: ../../include/widgets.php:409 ../../mod/connedit.php:474
+#: ../../include/widgets.php:426 ../../mod/connedit.php:511
msgid "Former Friends"
msgstr "Ex amici"
-#: ../../include/widgets.php:410 ../../mod/connedit.php:475
+#: ../../include/widgets.php:427 ../../mod/connedit.php:512
msgid "Acquaintances"
msgstr "Conoscenti"
-#: ../../include/widgets.php:411
+#: ../../include/widgets.php:428
msgid "Everybody"
msgstr "Tutti"
-#: ../../include/widgets.php:443
+#: ../../include/widgets.php:462
msgid "Account settings"
msgstr "Il tuo account"
-#: ../../include/widgets.php:449
+#: ../../include/widgets.php:468
msgid "Channel settings"
msgstr "Impostazioni del canale"
-#: ../../include/widgets.php:455
+#: ../../include/widgets.php:474
msgid "Additional features"
msgstr "Funzionalità opzionali"
-#: ../../include/widgets.php:461
+#: ../../include/widgets.php:480
msgid "Feature settings"
msgstr "Componenti aggiuntivi"
-#: ../../include/widgets.php:467
+#: ../../include/widgets.php:486
msgid "Display settings"
msgstr "Aspetto"
-#: ../../include/widgets.php:473
+#: ../../include/widgets.php:492
msgid "Connected apps"
msgstr "App connesse"
-#: ../../include/widgets.php:479
+#: ../../include/widgets.php:498
msgid "Export channel"
msgstr "Esporta il canale"
-#: ../../include/widgets.php:491
-msgid "Automatic Permissions (Advanced)"
-msgstr "Permessi predefiniti (avanzato)"
+#: ../../include/widgets.php:504
+msgid "Export content"
+msgstr "Esporta i contenuti"
+
+#: ../../include/widgets.php:512 ../../mod/connedit.php:539
+msgid "Connection Default Permissions"
+msgstr "Permessi predefiniti dei nuovi contatti"
-#: ../../include/widgets.php:501
+#: ../../include/widgets.php:520
msgid "Premium Channel Settings"
msgstr "Canale premium - impostazioni"
-#: ../../include/widgets.php:538
+#: ../../include/widgets.php:549 ../../mod/mail.php:125
+#: ../../mod/message.php:31
+msgid "Messages"
+msgstr "Messaggi"
+
+#: ../../include/widgets.php:552
msgid "Check Mail"
msgstr "Controlla i messaggi"
-#: ../../include/widgets.php:619
+#: ../../include/widgets.php:635
msgid "Chat Rooms"
msgstr "Aree chat attive"
-#: ../../include/widgets.php:637
+#: ../../include/widgets.php:655
msgid "Bookmarked Chatrooms"
msgstr "Aree chat nei segnalibri"
-#: ../../include/widgets.php:655
+#: ../../include/widgets.php:675
msgid "Suggested Chatrooms"
msgstr "Aree chat suggerite"
-#: ../../include/ItemObject.php:118
-msgid "Save to Folder"
-msgstr "Salva nella cartella"
-
-#: ../../include/ItemObject.php:130 ../../include/ItemObject.php:142
-msgid "View all"
-msgstr "Vedi tutto"
-
-#: ../../include/ItemObject.php:139
-msgctxt "noun"
-msgid "Dislike"
-msgid_plural "Dislikes"
-msgstr[0] "Non mi piace"
-msgstr[1] "Non mi piace"
-
-#: ../../include/ItemObject.php:167
-msgid "Add Star"
-msgstr "Aggiungi ai preferiti"
-
-#: ../../include/ItemObject.php:168
-msgid "Remove Star"
-msgstr "Rimuovi dai preferiti"
-
-#: ../../include/ItemObject.php:169
-msgid "Toggle Star Status"
-msgstr "Attiva/disattiva preferito"
-
-#: ../../include/ItemObject.php:173
-msgid "starred"
-msgstr "preferito"
-
-#: ../../include/ItemObject.php:190
-msgid "Add Tag"
-msgstr "Aggiungi un tag"
-
-#: ../../include/ItemObject.php:208 ../../mod/photos.php:980
-msgid "I like this (toggle)"
-msgstr "Attiva/disattiva Mi piace"
-
-#: ../../include/ItemObject.php:209 ../../mod/photos.php:981
-msgid "I don't like this (toggle)"
-msgstr "Attiva/disattiva Non mi piace"
-
-#: ../../include/ItemObject.php:211
-msgid "Share This"
-msgstr "Condividi"
-
-#: ../../include/ItemObject.php:211
-msgid "share"
-msgstr "condividi"
-
-#: ../../include/ItemObject.php:235 ../../include/ItemObject.php:236
-#, php-format
-msgid "View %s's profile - %s"
-msgstr "Guarda il profilo di %s - %s"
-
-#: ../../include/ItemObject.php:237
-msgid "to"
-msgstr "a"
-
-#: ../../include/ItemObject.php:238
-msgid "via"
-msgstr "via"
+#: ../../include/widgets.php:802 ../../include/widgets.php:860
+msgid "photo/image"
+msgstr "foto/immagine"
-#: ../../include/ItemObject.php:239
-msgid "Wall-to-Wall"
-msgstr "Da bacheca a bacheca"
-
-#: ../../include/ItemObject.php:240
-msgid "via Wall-To-Wall:"
-msgstr "da bacheca a bacheca:"
-
-#: ../../include/ItemObject.php:274
-msgid "Save Bookmarks"
-msgstr "Salva segnalibro"
-
-#: ../../include/ItemObject.php:275
-msgid "Add to Calendar"
-msgstr "Aggiungi al calendario"
-
-#: ../../include/ItemObject.php:283
-msgctxt "noun"
-msgid "Likes"
-msgstr "Mi piace"
+#: ../../include/zot.php:664
+msgid "Invalid data packet"
+msgstr "Dati non validi"
-#: ../../include/ItemObject.php:284
-msgctxt "noun"
-msgid "Dislikes"
-msgstr "Non mi piace"
+#: ../../include/zot.php:680
+msgid "Unable to verify channel signature"
+msgstr "Impossibile verificare la firma elettronica del canale"
-#: ../../include/ItemObject.php:315
+#: ../../include/zot.php:1819
#, php-format
-msgid "%d comment"
-msgid_plural "%d comments"
-msgstr[0] "%d commento"
-msgstr[1] "%d commenti"
-
-#: ../../include/ItemObject.php:316 ../../include/js_strings.php:7
-msgid "[+] show all"
-msgstr "[+] mostra tutto"
+msgid "Unable to verify site signature for %s"
+msgstr "Impossibile verificare la firma elettronica del sito %s"
-#: ../../include/ItemObject.php:580 ../../mod/photos.php:999
-#: ../../mod/photos.php:1086
-msgid "This is you"
-msgstr "Questo sei tu"
+#: ../../include/js_strings.php:5
+msgid "Delete this item?"
+msgstr "Eliminare questo elemento?"
-#: ../../include/ItemObject.php:582 ../../include/js_strings.php:6
-#: ../../mod/photos.php:1001 ../../mod/photos.php:1088
+#: ../../include/js_strings.php:6 ../../include/ItemObject.php:620
+#: ../../mod/photos.php:996 ../../mod/photos.php:1106
msgid "Comment"
msgstr "Commento"
-#: ../../include/ItemObject.php:583 ../../mod/mood.php:135
-#: ../../mod/settings.php:517 ../../mod/settings.php:629
-#: ../../mod/settings.php:658 ../../mod/settings.php:682
-#: ../../mod/settings.php:755 ../../mod/settings.php:935
-#: ../../mod/poke.php:166 ../../mod/profiles.php:643 ../../mod/chat.php:177
-#: ../../mod/chat.php:211 ../../mod/connect.php:92 ../../mod/connedit.php:518
-#: ../../mod/setup.php:307 ../../mod/setup.php:350 ../../mod/pdledit.php:58
-#: ../../mod/photos.php:563 ../../mod/photos.php:674 ../../mod/photos.php:962
-#: ../../mod/photos.php:1002 ../../mod/photos.php:1089
-#: ../../mod/sources.php:104 ../../mod/sources.php:138
-#: ../../mod/events.php:511 ../../mod/filestorage.php:137
-#: ../../mod/fsuggest.php:108 ../../mod/group.php:81 ../../mod/admin.php:413
-#: ../../mod/admin.php:723 ../../mod/admin.php:858 ../../mod/admin.php:991
-#: ../../mod/admin.php:1190 ../../mod/admin.php:1277 ../../mod/thing.php:286
-#: ../../mod/thing.php:329 ../../mod/import.php:394 ../../mod/invite.php:142
-#: ../../mod/mail.php:345 ../../mod/appman.php:99 ../../mod/poll.php:68
-#: ../../view/theme/apw/php/config.php:256
-#: ../../view/theme/blogga/php/config.php:67
-#: ../../view/theme/blogga/view/theme/blog/config.php:67
-#: ../../view/theme/redbasic/php/config.php:99
-msgid "Submit"
-msgstr "Salva"
-
-#: ../../include/ItemObject.php:584
-msgid "Bold"
-msgstr "Grassetto"
-
-#: ../../include/ItemObject.php:585
-msgid "Italic"
-msgstr "Corsivo"
-
-#: ../../include/ItemObject.php:586
-msgid "Underline"
-msgstr "Sottolineato"
-
-#: ../../include/ItemObject.php:587
-msgid "Quote"
-msgstr "Citazione"
-
-#: ../../include/ItemObject.php:588
-msgid "Code"
-msgstr "Codice"
-
-#: ../../include/ItemObject.php:589
-msgid "Image"
-msgstr "Immagine"
-
-#: ../../include/ItemObject.php:590
-msgid "Link"
-msgstr "Link"
-
-#: ../../include/ItemObject.php:591
-msgid "Video"
-msgstr "Video"
-
-#: ../../include/js_strings.php:5
-msgid "Delete this item?"
-msgstr "Eliminare questo elemento?"
+#: ../../include/js_strings.php:7 ../../include/ItemObject.php:337
+msgid "[+] show all"
+msgstr "[+] mostra tutto"
#: ../../include/js_strings.php:8
msgid "[-] show less"
@@ -3141,92 +3124,83 @@ msgstr "Nota: i permessi sono stati modificati ma non ancora salvati."
msgid "close all"
msgstr "chiudi tutto"
-#: ../../include/js_strings.php:19
+#: ../../include/js_strings.php:18
+msgid "Nothing new here"
+msgstr "Niente di nuovo qui"
+
+#: ../../include/js_strings.php:20
msgid "timeago.prefixAgo"
msgstr "timeago.prefixAgo"
-#: ../../include/js_strings.php:20
+#: ../../include/js_strings.php:21
msgid "timeago.prefixFromNow"
msgstr "timeago.prefixFromNow"
-#: ../../include/js_strings.php:21
+#: ../../include/js_strings.php:22
msgid "ago"
msgstr "fa"
-#: ../../include/js_strings.php:22
+#: ../../include/js_strings.php:23
msgid "from now"
msgstr "da adesso"
-#: ../../include/js_strings.php:23
+#: ../../include/js_strings.php:24
msgid "less than a minute"
msgstr "meno di un minuto"
-#: ../../include/js_strings.php:24
+#: ../../include/js_strings.php:25
msgid "about a minute"
msgstr "circa un minuto"
-#: ../../include/js_strings.php:25
+#: ../../include/js_strings.php:26
#, php-format
msgid "%d minutes"
msgstr "%d minuti"
-#: ../../include/js_strings.php:26
+#: ../../include/js_strings.php:27
msgid "about an hour"
msgstr "circa un’ora"
-#: ../../include/js_strings.php:27
+#: ../../include/js_strings.php:28
#, php-format
msgid "about %d hours"
msgstr "circa %d ore"
-#: ../../include/js_strings.php:28
+#: ../../include/js_strings.php:29
msgid "a day"
msgstr "un giorno"
-#: ../../include/js_strings.php:29
+#: ../../include/js_strings.php:30
#, php-format
msgid "%d days"
msgstr "%d giorni"
-#: ../../include/js_strings.php:30
+#: ../../include/js_strings.php:31
msgid "about a month"
msgstr "circa un mese"
-#: ../../include/js_strings.php:31
+#: ../../include/js_strings.php:32
#, php-format
msgid "%d months"
msgstr "%d mesi"
-#: ../../include/js_strings.php:32
+#: ../../include/js_strings.php:33
msgid "about a year"
msgstr "circa un anno"
-#: ../../include/js_strings.php:33
+#: ../../include/js_strings.php:34
#, php-format
msgid "%d years"
msgstr "%d anni"
-#: ../../include/js_strings.php:34
+#: ../../include/js_strings.php:35
msgid " "
msgstr " "
-#: ../../include/js_strings.php:35
+#: ../../include/js_strings.php:36
msgid "timeago.numbers"
msgstr "timeago.numbers"
-#: ../../include/Contact.php:123
-msgid "New window"
-msgstr "Nuova finestra"
-
-#: ../../include/Contact.php:124
-msgid "Open the selected location in a different window or browser tab"
-msgstr "Apri l'indirizzo selezionato in una nuova scheda o finestra"
-
-#: ../../include/Contact.php:211 ../../mod/admin.php:649
-#, php-format
-msgid "User '%s' deleted"
-msgstr "Utente '%s' eliminato"
-
#: ../../include/profile_selectors.php:6
#: ../../include/profile_selectors.php:23
msgid "Male"
@@ -3278,13 +3252,6 @@ msgid "Non-specific"
msgstr "Non specificato"
#: ../../include/profile_selectors.php:6
-#: ../../include/profile_selectors.php:23
-#: ../../include/profile_selectors.php:61
-#: ../../include/profile_selectors.php:97
-msgid "Other"
-msgstr "Altro"
-
-#: ../../include/profile_selectors.php:6
msgid "Undecided"
msgstr "Indeciso"
@@ -3382,7 +3349,7 @@ msgstr "Sesso-dipendente"
#: ../../include/profile_selectors.php:80
msgid "Friends/Benefits"
-msgstr "Amici piccanti"
+msgstr "Amici con qualcosa in più"
#: ../../include/profile_selectors.php:80
msgid "Casual"
@@ -3399,7 +3366,7 @@ msgstr "Sposato/a"
#: ../../include/profile_selectors.php:80
msgid "Imaginarily married"
-msgstr "Sogna il matrimonio"
+msgstr "Con matrimonio immaginario"
#: ../../include/profile_selectors.php:80
msgid "Partners"
@@ -3470,1146 +3437,1650 @@ msgstr "Chi se ne frega"
msgid "Ask me"
msgstr "Chiedimelo"
-#: ../../include/auth.php:90
+#: ../../include/apps.php:126
+msgid "Site Admin"
+msgstr "Amministrazione sito"
+
+#: ../../include/apps.php:128
+msgid "Address Book"
+msgstr "Rubrica"
+
+#: ../../include/apps.php:142 ../../mod/mood.php:131
+msgid "Mood"
+msgstr "Umore"
+
+#: ../../include/apps.php:146
+msgid "Probe"
+msgstr "Diagnostica"
+
+#: ../../include/apps.php:147
+msgid "Suggest"
+msgstr "Suggerisci"
+
+#: ../../include/apps.php:148
+msgid "Random Channel"
+msgstr "Canale casuale"
+
+#: ../../include/apps.php:149
+msgid "Invite"
+msgstr "Invita"
+
+#: ../../include/apps.php:150
+msgid "Features"
+msgstr "Funzionalità"
+
+#: ../../include/apps.php:151
+msgid "Language"
+msgstr "Lingua"
+
+#: ../../include/apps.php:152
+msgid "Post"
+msgstr "Articolo"
+
+#: ../../include/apps.php:153
+msgid "Profile Photo"
+msgstr "Foto del profilo"
+
+#: ../../include/apps.php:242 ../../mod/settings.php:81
+#: ../../mod/settings.php:591
+msgid "Update"
+msgstr "Aggiorna"
+
+#: ../../include/apps.php:242
+msgid "Install"
+msgstr "Installa"
+
+#: ../../include/apps.php:247
+msgid "Purchase"
+msgstr "Acquista"
+
+#: ../../include/auth.php:116
msgid "Logged out."
msgstr "Uscita effettuata."
-#: ../../include/auth.php:236
+#: ../../include/auth.php:257
msgid "Failed authentication"
msgstr "Autenticazione fallita"
-#: ../../include/auth.php:251 ../../mod/openid.php:188
+#: ../../include/auth.php:271 ../../mod/openid.php:190
msgid "Login failed."
msgstr "Accesso fallito."
-#: ../../include/permissions.php:13
-msgid "Can view my normal stream and posts"
-msgstr "Può vedere i miei contenuti e articoli normali"
+#: ../../include/ItemObject.php:130
+msgid "Save to Folder"
+msgstr "Salva nella cartella"
-#: ../../include/permissions.php:14
-msgid "Can view my default channel profile"
-msgstr "Può vedere il profilo predefinito del canale"
+#: ../../include/ItemObject.php:142 ../../include/ItemObject.php:154
+#: ../../mod/photos.php:1023 ../../mod/photos.php:1035
+msgid "View all"
+msgstr "Vedi tutto"
-#: ../../include/permissions.php:15
-msgid "Can view my photo albums"
-msgstr "Può vedere i miei album fotografici"
+#: ../../include/ItemObject.php:151 ../../mod/photos.php:1032
+msgctxt "noun"
+msgid "Dislike"
+msgid_plural "Dislikes"
+msgstr[0] "Non mi piace"
+msgstr[1] "Non mi piace"
-#: ../../include/permissions.php:16
-msgid "Can view my connections"
-msgstr "Può vedere i miei contatti"
+#: ../../include/ItemObject.php:179
+msgid "Add Star"
+msgstr "Aggiungi ai preferiti"
-#: ../../include/permissions.php:17
-msgid "Can view my file storage"
-msgstr "Può vedere i miei file condivisi"
+#: ../../include/ItemObject.php:180
+msgid "Remove Star"
+msgstr "Rimuovi dai preferiti"
-#: ../../include/permissions.php:18
-msgid "Can view my webpages"
-msgstr "Può vedere le mie pagine web"
+#: ../../include/ItemObject.php:181
+msgid "Toggle Star Status"
+msgstr "Attiva/disattiva preferito"
-#: ../../include/permissions.php:21
-msgid "Can send me their channel stream and posts"
-msgstr "È tra i canali che seguo"
+#: ../../include/ItemObject.php:185
+msgid "starred"
+msgstr "preferito"
-#: ../../include/permissions.php:22
-msgid "Can post on my channel page (\"wall\")"
-msgstr "Può scrivere sulla bacheca del mio canale"
+#: ../../include/ItemObject.php:203
+msgid "Add Tag"
+msgstr "Aggiungi un tag"
-#: ../../include/permissions.php:23
-msgid "Can comment on or like my posts"
-msgstr "Può commentare o aggiungere \"mi piace\" ai miei articoli"
+#: ../../include/ItemObject.php:221 ../../mod/photos.php:975
+msgid "I like this (toggle)"
+msgstr "Attiva/disattiva Mi piace"
-#: ../../include/permissions.php:24
-msgid "Can send me private mail messages"
-msgstr "Può inviarmi messaggi privati"
+#: ../../include/ItemObject.php:222 ../../mod/photos.php:976
+msgid "I don't like this (toggle)"
+msgstr "Attiva/disattiva Non mi piace"
-#: ../../include/permissions.php:25
-msgid "Can post photos to my photo albums"
-msgstr "Può aggiungere foto ai miei album"
+#: ../../include/ItemObject.php:226
+msgid "Share This"
+msgstr "Condividi"
-#: ../../include/permissions.php:26
-msgid "Can like/dislike stuff"
-msgstr "Può aggiungere \"mi piace\""
+#: ../../include/ItemObject.php:226
+msgid "share"
+msgstr "condividi"
-#: ../../include/permissions.php:26
-msgid "Profiles and things other than posts/comments"
-msgstr "Profili e tutto ciò che non è articoli e commenti"
+#: ../../include/ItemObject.php:236
+#, php-format
+msgid "%d comment"
+msgid_plural "%d comments"
+msgstr[0] "%d commento"
+msgstr[1] "%d commenti"
-#: ../../include/permissions.php:28
-msgid "Can forward to all my channel contacts via post @mentions"
-msgstr "Può inoltrare articoli a tutti i contatti del canale tramite una @menzione"
+#: ../../include/ItemObject.php:249 ../../include/ItemObject.php:250
+#, php-format
+msgid "View %s's profile - %s"
+msgstr "Guarda il profilo di %s - %s"
-#: ../../include/permissions.php:28
-msgid "Advanced - useful for creating group forum channels"
-msgstr "Impostazione avanzata - utile per creare un canale-forum di discussione"
+#: ../../include/ItemObject.php:252
+msgid "to"
+msgstr "a"
-#: ../../include/permissions.php:29
-msgid "Can chat with me (when available)"
-msgstr "Può aprire una chat con me (se disponibile)"
+#: ../../include/ItemObject.php:253
+msgid "via"
+msgstr "via"
-#: ../../include/permissions.php:30
-msgid "Can write to my file storage"
-msgstr "Può scrivere sul mio archivio file"
+#: ../../include/ItemObject.php:254
+msgid "Wall-to-Wall"
+msgstr "Da bacheca a bacheca"
-#: ../../include/permissions.php:31
-msgid "Can edit my webpages"
-msgstr "Può modificare le mie pagine web"
+#: ../../include/ItemObject.php:255
+msgid "via Wall-To-Wall:"
+msgstr "da bacheca a bacheca:"
-#: ../../include/permissions.php:33
-msgid "Can source my public posts in derived channels"
-msgstr "Può usare i miei articoli pubblici per creare canali derivati"
+#: ../../include/ItemObject.php:291
+msgid "Save Bookmarks"
+msgstr "Salva segnalibro"
-#: ../../include/permissions.php:33
-msgid "Somewhat advanced - very useful in open communities"
-msgstr "Piuttosto avanzato - molto utile nelle comunità aperte"
+#: ../../include/ItemObject.php:292
+msgid "Add to Calendar"
+msgstr "Aggiungi al calendario"
-#: ../../include/permissions.php:35
-msgid "Can administer my channel resources"
-msgstr "Può amministrare i contenuti del mio canale"
+#: ../../include/ItemObject.php:301
+msgid "Mark all seen"
+msgstr "Marca tutto come letto"
-#: ../../include/permissions.php:35
-msgid ""
-"Extremely advanced. Leave this alone unless you know what you are doing"
-msgstr "Impostazione pericolosa - lasciare il valore predefinito se non si è assolutamente sicuri"
+#: ../../include/ItemObject.php:306 ../../mod/photos.php:1143
+msgctxt "noun"
+msgid "Likes"
+msgstr "Mi piace"
+
+#: ../../include/ItemObject.php:307 ../../mod/photos.php:1144
+msgctxt "noun"
+msgid "Dislikes"
+msgstr "Non mi piace"
+
+#: ../../include/ItemObject.php:618 ../../mod/photos.php:994
+#: ../../mod/photos.php:1104
+msgid "This is you"
+msgstr "Questo sei tu"
+
+#: ../../include/ItemObject.php:621 ../../mod/mood.php:135
+#: ../../mod/sources.php:104 ../../mod/sources.php:138 ../../mod/poke.php:166
+#: ../../mod/setup.php:313 ../../mod/setup.php:358 ../../mod/settings.php:565
+#: ../../mod/settings.php:677 ../../mod/settings.php:706
+#: ../../mod/settings.php:730 ../../mod/settings.php:812
+#: ../../mod/settings.php:1004 ../../mod/events.php:598 ../../mod/chat.php:177
+#: ../../mod/chat.php:211 ../../mod/connect.php:93 ../../mod/connedit.php:556
+#: ../../mod/thing.php:284 ../../mod/thing.php:327 ../../mod/profiles.php:633
+#: ../../mod/pdledit.php:58 ../../mod/fsuggest.php:108
+#: ../../mod/filestorage.php:146 ../../mod/group.php:81
+#: ../../mod/import.php:480 ../../mod/admin.php:412 ../../mod/admin.php:723
+#: ../../mod/admin.php:859 ../../mod/admin.php:992 ../../mod/admin.php:1191
+#: ../../mod/admin.php:1278 ../../mod/locs.php:99 ../../mod/mail.php:352
+#: ../../mod/invite.php:142 ../../mod/xchan.php:11 ../../mod/photos.php:594
+#: ../../mod/photos.php:671 ../../mod/photos.php:957 ../../mod/photos.php:997
+#: ../../mod/photos.php:1107 ../../mod/appman.php:99 ../../mod/poll.php:68
+#: ../../view/theme/apw/php/config.php:256
+#: ../../view/theme/redbasic/php/config.php:99
+msgid "Submit"
+msgstr "Salva"
+
+#: ../../include/ItemObject.php:622
+msgid "Bold"
+msgstr "Grassetto"
+
+#: ../../include/ItemObject.php:623
+msgid "Italic"
+msgstr "Corsivo"
+
+#: ../../include/ItemObject.php:624
+msgid "Underline"
+msgstr "Sottolineato"
+
+#: ../../include/ItemObject.php:625
+msgid "Quote"
+msgstr "Citazione"
+
+#: ../../include/ItemObject.php:626
+msgid "Code"
+msgstr "Codice"
+
+#: ../../include/ItemObject.php:627
+msgid "Image"
+msgstr "Immagine"
+
+#: ../../include/ItemObject.php:628
+msgid "Link"
+msgstr "Link"
+
+#: ../../include/ItemObject.php:629
+msgid "Video"
+msgstr "Video"
+
+#: ../../include/chat.php:10
+msgid "Missing room name"
+msgstr "Area chat senza nome"
+
+#: ../../include/chat.php:19
+msgid "Duplicate room name"
+msgstr "Il nome dell'area chat è duplicato"
+
+#: ../../include/chat.php:68 ../../include/chat.php:76
+msgid "Invalid room specifier."
+msgstr "Il nome dell'area chat non è valido."
+
+#: ../../include/chat.php:105
+msgid "Room not found."
+msgstr "Area chat non trovata."
+
+#: ../../include/chat.php:126
+msgid "Room is full"
+msgstr "L'area chat è al completo"
#: ../../mod/mood.php:132
msgid "Set your current mood and tell your friends"
msgstr "Scegli il tuo umore attuale per mostrarlo agli amici"
-#: ../../mod/mitem.php:14 ../../mod/menu.php:92
+#: ../../mod/mitem.php:24 ../../mod/menu.php:108
msgid "Menu not found."
msgstr "Menù non trovato."
-#: ../../mod/mitem.php:47
+#: ../../mod/mitem.php:67
msgid "Menu element updated."
msgstr "L'elemento del menù è stato aggiornato."
-#: ../../mod/mitem.php:51
+#: ../../mod/mitem.php:71
msgid "Unable to update menu element."
msgstr "Non è possibile aggiornare l'elemento del menù."
-#: ../../mod/mitem.php:57
+#: ../../mod/mitem.php:77
msgid "Menu element added."
msgstr "Elemento aggiunto al menù."
-#: ../../mod/mitem.php:61
+#: ../../mod/mitem.php:81
msgid "Unable to add menu element."
msgstr "Impossibile aggiungere l'elemento al menù."
-#: ../../mod/mitem.php:78 ../../mod/dirprofile.php:175 ../../mod/menu.php:120
-#: ../../mod/xchan.php:27
+#: ../../mod/mitem.php:111 ../../mod/menu.php:136 ../../mod/xchan.php:37
msgid "Not found."
msgstr "Non trovato."
-#: ../../mod/mitem.php:96
+#: ../../mod/mitem.php:127
msgid "Manage Menu Elements"
msgstr "Gestione elementi del menù"
-#: ../../mod/mitem.php:99
+#: ../../mod/mitem.php:130
msgid "Edit menu"
msgstr "Modifica il menù"
-#: ../../mod/mitem.php:102
+#: ../../mod/mitem.php:133
msgid "Edit element"
msgstr "Modifica l'elemento"
-#: ../../mod/mitem.php:103
+#: ../../mod/mitem.php:134
msgid "Drop element"
msgstr "Elimina l'elemento"
-#: ../../mod/mitem.php:104
+#: ../../mod/mitem.php:135
msgid "New element"
msgstr "Nuovo elemento"
-#: ../../mod/mitem.php:105
+#: ../../mod/mitem.php:136
msgid "Edit this menu container"
msgstr "Modifica il contenitore del menù"
-#: ../../mod/mitem.php:106
+#: ../../mod/mitem.php:137
msgid "Add menu element"
msgstr "Aggiungi un elemento al menù"
-#: ../../mod/mitem.php:107
+#: ../../mod/mitem.php:138
msgid "Delete this menu item"
msgstr "Elimina questo elemento del menù"
-#: ../../mod/mitem.php:108
+#: ../../mod/mitem.php:139
msgid "Edit this menu item"
msgstr "Modifica questo elemento del menù"
-#: ../../mod/mitem.php:131
+#: ../../mod/mitem.php:158
msgid "New Menu Element"
msgstr "Nuovo elemento del menù"
-#: ../../mod/mitem.php:133 ../../mod/mitem.php:176
+#: ../../mod/mitem.php:160 ../../mod/mitem.php:203
msgid "Menu Item Permissions"
msgstr "Permessi del menu"
-#: ../../mod/mitem.php:134 ../../mod/mitem.php:177 ../../mod/settings.php:968
+#: ../../mod/mitem.php:161 ../../mod/mitem.php:204 ../../mod/settings.php:1039
msgid "(click to open/close)"
msgstr "(clicca per aprire/chiudere)"
-#: ../../mod/mitem.php:136 ../../mod/mitem.php:180
+#: ../../mod/mitem.php:163 ../../mod/mitem.php:207
msgid "Link text"
msgstr "Testo del link"
-#: ../../mod/mitem.php:137 ../../mod/mitem.php:181
+#: ../../mod/mitem.php:164 ../../mod/mitem.php:208
msgid "URL of link"
msgstr "Indirizzo del link"
-#: ../../mod/mitem.php:138 ../../mod/mitem.php:182
-msgid "Use Red magic-auth if available"
+#: ../../mod/mitem.php:165 ../../mod/mitem.php:209
+msgid "Use RedMatrix magic-auth if available"
msgstr "Usa l'autenticazione magica di RedMatrix, se disponibile"
-#: ../../mod/mitem.php:139 ../../mod/mitem.php:183
+#: ../../mod/mitem.php:166 ../../mod/mitem.php:210
msgid "Open link in new window"
msgstr "Apri il link in una nuova finestra"
-#: ../../mod/mitem.php:141 ../../mod/mitem.php:185
+#: ../../mod/mitem.php:168 ../../mod/mitem.php:212
msgid "Order in list"
msgstr "Ordine dell'elenco"
-#: ../../mod/mitem.php:141 ../../mod/mitem.php:185
+#: ../../mod/mitem.php:168 ../../mod/mitem.php:212
msgid "Higher numbers will sink to bottom of listing"
msgstr "I numeri più alti andranno in fondo all'elenco"
-#: ../../mod/mitem.php:154
+#: ../../mod/mitem.php:181
msgid "Menu item not found."
msgstr "L'elemento del menù non è stato trovato."
-#: ../../mod/mitem.php:163
+#: ../../mod/mitem.php:190
msgid "Menu item deleted."
msgstr "L'elemento del menù è stato eliminato."
-#: ../../mod/mitem.php:165
+#: ../../mod/mitem.php:192
msgid "Menu item could not be deleted."
msgstr "L'elemento del menù non può essere eliminato."
-#: ../../mod/mitem.php:174
+#: ../../mod/mitem.php:201
msgid "Edit Menu Element"
msgstr "Modifica l'elemento del menù"
-#: ../../mod/mitem.php:186 ../../mod/menu.php:114
+#: ../../mod/mitem.php:213 ../../mod/menu.php:130
msgid "Modify"
msgstr "Modifica"
-#: ../../mod/ping.php:237
-msgid "sent you a private message"
-msgstr "ti ha inviato un messaggio privato"
+#: ../../mod/achievements.php:34
+msgid "Some blurb about what to do when you're new here"
+msgstr "Qualche suggerimento per i nuovi utenti su cosa fare"
-#: ../../mod/ping.php:288
-msgid "added your channel"
-msgstr "ha aggiunto il tuo canale"
+#: ../../mod/register.php:44
+msgid "Maximum daily site registrations exceeded. Please try again tomorrow."
+msgstr "È stato superato il numero massimo giornaliero di registrazioni a questo sito. Riprova domani!"
-#: ../../mod/ping.php:329
-msgid "posted an event"
-msgstr "ha creato un evento"
+#: ../../mod/register.php:50
+msgid ""
+"Please indicate acceptance of the Terms of Service. Registration failed."
+msgstr "Impossibile proseguire. Devi prima accettare le Condizioni d'Uso del servizio."
-#: ../../mod/acl.php:239
-msgid "network"
-msgstr "rete"
+#: ../../mod/register.php:84
+msgid "Passwords do not match."
+msgstr "Le password non corrispondono."
+
+#: ../../mod/register.php:117
+msgid ""
+"Registration successful. Please check your email for validation "
+"instructions."
+msgstr "La registrazione è terminata correttamente. Per continuare controlla l'email che ti è stata inviata."
+
+#: ../../mod/register.php:123
+msgid "Your registration is pending approval by the site owner."
+msgstr "La tua richiesta è in attesa di approvazione da parte dell'amministratore del sito."
+
+#: ../../mod/register.php:126
+msgid "Your registration can not be processed."
+msgstr "La tua registrazione non puo' essere processata."
+
+#: ../../mod/register.php:163
+msgid "Registration on this site/hub is by approval only."
+msgstr "La registrazione su questo sito è soggetta ad approvazione."
+
+#: ../../mod/register.php:164
+msgid "<a href=\"pubsites\">Register at another affiliated site/hub</a>"
+msgstr "<a href=\"pubsites\">Registrati su un altro server affiliato</a>"
+
+#: ../../mod/register.php:174
+msgid ""
+"This site has exceeded the number of allowed daily account registrations. "
+"Please try again tomorrow."
+msgstr "Questo sito ha superato il numero di registrazioni giornaliere consentite. Prova di nuovo domani."
+
+#: ../../mod/register.php:185
+msgid "Terms of Service"
+msgstr "Condizioni d'Uso"
+
+#: ../../mod/register.php:191
+#, php-format
+msgid "I accept the %s for this website"
+msgstr "Accetto le %s di questo sito"
+
+#: ../../mod/register.php:193
+#, php-format
+msgid "I am over 13 years of age and accept the %s for this website"
+msgstr "Ho più di 13 anni e accetto le %s di questo sito"
+
+#: ../../mod/register.php:207 ../../mod/admin.php:413
+msgid "Registration"
+msgstr "Registrazione"
+
+#: ../../mod/register.php:212
+msgid "Membership on this site is by invitation only."
+msgstr "Per registrarsi su questo sito è necessario un invito."
+
+#: ../../mod/register.php:213
+msgid "Please enter your invitation code"
+msgstr "Inserisci il codice dell'invito"
+
+#: ../../mod/register.php:216
+msgid "Your email address"
+msgstr "Il tuo indirizzo email"
+
+#: ../../mod/register.php:217
+msgid "Choose a password"
+msgstr "Scegli una password"
+
+#: ../../mod/register.php:218
+msgid "Please re-enter your password"
+msgstr "Ripeti la password per verifica"
+
+#: ../../mod/filer.php:49
+msgid "- select -"
+msgstr "- scegli -"
-#: ../../mod/settings.php:71
+#: ../../mod/profperm.php:29 ../../mod/profperm.php:58
+msgid "Invalid profile identifier."
+msgstr "Indentificativo del profilo non valido."
+
+#: ../../mod/profperm.php:110
+msgid "Profile Visibility Editor"
+msgstr "Modifica la visibilità del profilo"
+
+#: ../../mod/profperm.php:114
+msgid "Click on a contact to add or remove."
+msgstr "Clicca su un contatto per aggiungerlo o rimuoverlo."
+
+#: ../../mod/profperm.php:123
+msgid "Visible To"
+msgstr "Visibile a"
+
+#: ../../mod/profperm.php:139 ../../mod/connections.php:279
+msgid "All Connections"
+msgstr "Tutti i contatti"
+
+#: ../../mod/sources.php:32
+msgid "Failed to create source. No channel selected."
+msgstr "Impossibile creare la sorgente. Nessun canale selezionato."
+
+#: ../../mod/sources.php:45
+msgid "Source created."
+msgstr "Sorgente creata."
+
+#: ../../mod/sources.php:57
+msgid "Source updated."
+msgstr "Sorgente aggiornata."
+
+#: ../../mod/sources.php:82
+msgid "*"
+msgstr "*"
+
+#: ../../mod/sources.php:89
+msgid "Manage remote sources of content for your channel."
+msgstr "Gestisci le sorgenti dei contenuti del tuo canale."
+
+#: ../../mod/sources.php:90 ../../mod/sources.php:100
+msgid "New Source"
+msgstr "Nuova sorgente"
+
+#: ../../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 "Importa nel tuo canale tutti o una parte dei contenuti dal canale seguente."
+
+#: ../../mod/sources.php:102 ../../mod/sources.php:134
+msgid "Only import content with these words (one per line)"
+msgstr "Importa solo i contenuti che hanno queste parole (una per riga)"
+
+#: ../../mod/sources.php:102 ../../mod/sources.php:134
+msgid "Leave blank to import all public content"
+msgstr "Lascia vuoto per importare tutti i contenuti pubblici"
+
+#: ../../mod/sources.php:103 ../../mod/sources.php:137
+#: ../../mod/new_channel.php:112
+msgid "Channel Name"
+msgstr "Nome del canale"
+
+#: ../../mod/sources.php:123 ../../mod/sources.php:150
+msgid "Source not found."
+msgstr "Sorgente non trovata."
+
+#: ../../mod/sources.php:130
+msgid "Edit Source"
+msgstr "Modifica la sorgente"
+
+#: ../../mod/sources.php:131
+msgid "Delete Source"
+msgstr "Elimina la sorgente"
+
+#: ../../mod/sources.php:158
+msgid "Source removed"
+msgstr "Sorgente eliminata"
+
+#: ../../mod/sources.php:160
+msgid "Unable to remove source."
+msgstr "Impossibile rimuovere la sorgente."
+
+#: ../../mod/poke.php:159
+msgid "Poke/Prod"
+msgstr "Poke/Prod"
+
+#: ../../mod/poke.php:160
+msgid "poke, prod or do other things to somebody"
+msgstr "Manda un poke, un prod o altro"
+
+#: ../../mod/poke.php:161
+msgid "Recipient"
+msgstr "Destinatario"
+
+#: ../../mod/poke.php:162
+msgid "Choose what you wish to do to recipient"
+msgstr "Scegli cosa vuoi inviare al destinatario"
+
+#: ../../mod/poke.php:165
+msgid "Make this post private"
+msgstr "Rendi privato questo articolo"
+
+#: ../../mod/api.php:76 ../../mod/api.php:102
+msgid "Authorize application connection"
+msgstr "Autorizza la app"
+
+#: ../../mod/api.php:77
+msgid "Return to your app and insert this Securty Code:"
+msgstr "Torna alla app e inserisci questo codice di sicurezza:"
+
+#: ../../mod/api.php:89
+msgid "Please login to continue."
+msgstr "Accedi al sito per continuare."
+
+#: ../../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 "Vuoi autorizzare questa app ad accedere ai messaggi e ai contatti o creare nuovi messaggi per te?"
+
+#: ../../mod/api.php:105 ../../mod/settings.php:944 ../../mod/settings.php:949
+#: ../../mod/settings.php:1032 ../../mod/profiles.php:591
+#: ../../mod/admin.php:392
+msgid "Yes"
+msgstr "Si"
+
+#: ../../mod/api.php:106 ../../mod/settings.php:944 ../../mod/settings.php:949
+#: ../../mod/settings.php:1032 ../../mod/profiles.php:592
+#: ../../mod/admin.php:390
+msgid "No"
+msgstr "No"
+
+#: ../../mod/search.php:13 ../../mod/display.php:9
+#: ../../mod/viewconnections.php:17 ../../mod/directory.php:22
+#: ../../mod/photos.php:458
+msgid "Public access denied."
+msgstr "Accesso pubblico negato."
+
+#: ../../mod/attach.php:9
+msgid "Item not available."
+msgstr "Elemento non disponibile."
+
+#: ../../mod/probe.php:23 ../../mod/probe.php:29
+#, php-format
+msgid "Fetching URL returns error: %1$s"
+msgstr "La chiamata all'URL restituisce questo errore: %1$s"
+
+#: ../../mod/block.php:27 ../../mod/page.php:33
+msgid "Invalid item."
+msgstr "Elemento non valido."
+
+#: ../../mod/block.php:39 ../../mod/wall_upload.php:29 ../../mod/page.php:45
+msgid "Channel not found."
+msgstr "Canale non trovato."
+
+#: ../../mod/block.php:75 ../../mod/display.php:102 ../../mod/help.php:70
+#: ../../mod/page.php:81 ../../index.php:241
+msgid "Page not found."
+msgstr "Pagina non trovata."
+
+#: ../../mod/subthread.php:103
+#, php-format
+msgid "%1$s is following %2$s's %3$s"
+msgstr "%1$s sta seguendo %3$s di %2$s"
+
+#: ../../mod/blocks.php:99
+msgid "Block Name"
+msgstr "Nome del riquadro"
+
+#: ../../mod/setup.php:166
+msgid "Red Matrix Server - Setup"
+msgstr "RedMatrix Server - Installazione"
+
+#: ../../mod/setup.php:172
+msgid "Could not connect to database."
+msgstr " Impossibile connettersi al database."
+
+#: ../../mod/setup.php:176
+msgid ""
+"Could not connect to specified site URL. Possible SSL certificate or DNS "
+"issue."
+msgstr "Non è possibile raggiungere l'indirizzo del sito specificato. Potrebbe essere un problema di SSL o DNS."
+
+#: ../../mod/setup.php:183
+msgid "Could not create table."
+msgstr "Impossibile creare le tabelle."
+
+#: ../../mod/setup.php:189
+msgid "Your site database has been installed."
+msgstr "Il database del sito è stato installato."
+
+#: ../../mod/setup.php:194
+msgid ""
+"You may need to import the file \"install/schema_xxx.sql\" manually using a "
+"database client."
+msgstr "Potresti dover importare il file 'install/schema_xxx.sql' manualmente usando un client per collegarti al db."
+
+#: ../../mod/setup.php:195 ../../mod/setup.php:264 ../../mod/setup.php:663
+msgid "Please see the file \"install/INSTALL.txt\"."
+msgstr "Leggi il file 'install/INSTALL.txt'."
+
+#: ../../mod/setup.php:261
+msgid "System check"
+msgstr "Verifica del sistema"
+
+#: ../../mod/setup.php:265 ../../mod/events.php:445 ../../mod/photos.php:868
+msgid "Next"
+msgstr "Successivo"
+
+#: ../../mod/setup.php:266
+msgid "Check again"
+msgstr "Verifica di nuovo"
+
+#: ../../mod/setup.php:289
+msgid "Database connection"
+msgstr "Connessione al database"
+
+#: ../../mod/setup.php:290
+msgid ""
+"In order to install Red Matrix we need to know how to connect to your "
+"database."
+msgstr "Per installare RedMatrix è necessario conoscere i parametri di connessione al database."
+
+#: ../../mod/setup.php:291
+msgid ""
+"Please contact your hosting provider or site administrator if you have "
+"questions about these settings."
+msgstr "Contatta il tuo fornitore di hosting o l'amministratore del sito se hai domande su queste impostazioni."
+
+#: ../../mod/setup.php:292
+msgid ""
+"The database you specify below should already exist. If it does not, please "
+"create it before continuing."
+msgstr "Il database deve già esistere. Se non esiste, crealo prima di continuare."
+
+#: ../../mod/setup.php:296
+msgid "Database Server Name"
+msgstr "Server del database"
+
+#: ../../mod/setup.php:296
+msgid "Default is localhost"
+msgstr "'localhost' è il predefinito"
+
+#: ../../mod/setup.php:297
+msgid "Database Port"
+msgstr "Port del database"
+
+#: ../../mod/setup.php:297
+msgid "Communication port number - use 0 for default"
+msgstr "Scrivi 0 per usare il valore standard"
+
+#: ../../mod/setup.php:298
+msgid "Database Login Name"
+msgstr "Utente database"
+
+#: ../../mod/setup.php:299
+msgid "Database Login Password"
+msgstr "Password utente database"
+
+#: ../../mod/setup.php:300
+msgid "Database Name"
+msgstr "Nome database"
+
+#: ../../mod/setup.php:301
+msgid "Database Type"
+msgstr "Tipo database"
+
+#: ../../mod/setup.php:303 ../../mod/setup.php:347
+msgid "Site administrator email address"
+msgstr "Indirizzo email dell'amministratore del sito"
+
+#: ../../mod/setup.php:303 ../../mod/setup.php:347
+msgid ""
+"Your account email address must match this in order to use the web admin "
+"panel."
+msgstr "Il tuo indirizzo email deve corrispondere a questo per poter usare il pannello di amministrazione web."
+
+#: ../../mod/setup.php:304 ../../mod/setup.php:349
+msgid "Website URL"
+msgstr "URL completo del sito"
+
+#: ../../mod/setup.php:304 ../../mod/setup.php:349
+msgid "Please use SSL (https) URL if available."
+msgstr "Se disponibile, usa l'indirizzo SSL (https)."
+
+#: ../../mod/setup.php:307 ../../mod/setup.php:352
+msgid "Please select a default timezone for your website"
+msgstr "Seleziona il fuso orario predefinito per il tuo sito web"
+
+#: ../../mod/setup.php:335
+msgid "Site settings"
+msgstr "Impostazioni del sito"
+
+#: ../../mod/setup.php:395
+msgid "Could not find a command line version of PHP in the web server PATH."
+msgstr "Non è possibile trovare la versione di PHP da riga di comando nel PATH del server web"
+
+#: ../../mod/setup.php:396
+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 "Se non hai installata la versione di PHP da riga di comando non potrai attivare il polling in background tramite cron."
+
+#: ../../mod/setup.php:400
+msgid "PHP executable path"
+msgstr "Path del comando PHP"
+
+#: ../../mod/setup.php:400
+msgid ""
+"Enter full path to php executable. You can leave this blank to continue the "
+"installation."
+msgstr "Inserisci il percorso dell'eseguibile PHP. Puoi lasciarlo vuoto per continuare l'installazione."
+
+#: ../../mod/setup.php:405
+msgid "Command line PHP"
+msgstr "PHP da riga di comando"
+
+#: ../../mod/setup.php:414
+msgid ""
+"The command line version of PHP on your system does not have "
+"\"register_argc_argv\" enabled."
+msgstr "La versione da riga di comando di PHP nel sistema non ha abilitato \"register_argc_argv\"."
+
+#: ../../mod/setup.php:415
+msgid "This is required for message delivery to work."
+msgstr "E' necessario perché funzioni la consegna dei messaggi."
+
+#: ../../mod/setup.php:417
+msgid "PHP register_argc_argv"
+msgstr "PHP register_argc_argv"
+
+#: ../../mod/setup.php:438
+msgid ""
+"Error: the \"openssl_pkey_new\" function on this system is not able to "
+"generate encryption keys"
+msgstr "Errore: la funzione \"openssl_pkey_new\" su questo sistema non è in grado di generare le chiavi di criptazione"
+
+#: ../../mod/setup.php:439
+msgid ""
+"If running under Windows, please see "
+"\"http://www.php.net/manual/en/openssl.installation.php\"."
+msgstr "Se stai usando un server windows, guarda \"http://www.php.net/manual/en/openssl.installation.php\"."
+
+#: ../../mod/setup.php:441
+msgid "Generate encryption keys"
+msgstr "Genera chiavi di criptazione"
+
+#: ../../mod/setup.php:448
+msgid "libCurl PHP module"
+msgstr "modulo PHP libCurl"
+
+#: ../../mod/setup.php:449
+msgid "GD graphics PHP module"
+msgstr "modulo PHP GD graphics"
+
+#: ../../mod/setup.php:450
+msgid "OpenSSL PHP module"
+msgstr "modulo PHP OpenSSL"
+
+#: ../../mod/setup.php:451
+msgid "mysqli or postgres PHP module"
+msgstr "modulo PHP per mysqli oppure prostgres"
+
+#: ../../mod/setup.php:452
+msgid "mb_string PHP module"
+msgstr "modulo PHP mb_string"
+
+#: ../../mod/setup.php:453
+msgid "mcrypt PHP module"
+msgstr "modulo PHP mcrypt"
+
+#: ../../mod/setup.php:458 ../../mod/setup.php:460
+msgid "Apache mod_rewrite module"
+msgstr "modulo Apache mod_rewrite"
+
+#: ../../mod/setup.php:458
+msgid ""
+"Error: Apache webserver mod-rewrite module is required but not installed."
+msgstr "Errore: il modulo mod-rewrite di Apache è richiesto ma non installato"
+
+#: ../../mod/setup.php:464 ../../mod/setup.php:467
+msgid "proc_open"
+msgstr "proc_open"
+
+#: ../../mod/setup.php:464
+msgid ""
+"Error: proc_open is required but is either not installed or has been "
+"disabled in php.ini"
+msgstr "Errore: proc_open è richiesto ma non è installato o è disabilitato in php.ini"
+
+#: ../../mod/setup.php:472
+msgid "Error: libCURL PHP module required but not installed."
+msgstr "Errore: il modulo libCURL di PHP è richiesto ma non installato."
+
+#: ../../mod/setup.php:476
+msgid ""
+"Error: GD graphics PHP module with JPEG support required but not installed."
+msgstr "Errore: Il modulo GD graphics di PHP con supporto a JPEG è richiesto ma non installato."
+
+#: ../../mod/setup.php:480
+msgid "Error: openssl PHP module required but not installed."
+msgstr "Errore: il modulo openssl di PHP è richiesto ma non installato."
+
+#: ../../mod/setup.php:484
+msgid ""
+"Error: mysqli or postgres PHP module required but neither are installed."
+msgstr "Errore: il modulo PHP per mysqli o postgres è richiesto ma non installato"
+
+#: ../../mod/setup.php:488
+msgid "Error: mb_string PHP module required but not installed."
+msgstr "Errore: il modulo PHP mb_string è richiesto ma non installato."
+
+#: ../../mod/setup.php:492
+msgid "Error: mcrypt PHP module required but not installed."
+msgstr "Errore: il modulo PHP mcrypt è richiesto ma non installato."
+
+#: ../../mod/setup.php:508
+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'installazione web deve poter creare un file chiamato \".htconfig.php\" nella cartella di RedMatrix ma non è in grado di farlo."
+
+#: ../../mod/setup.php:509
+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 "Spesso ciò è dovuto ai permessi di accesso al disco: il web server potrebbe non aver diritto di scrivere il file nella cartella, anche se tu puoi."
+
+#: ../../mod/setup.php:510
+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 "Alla fine di questa procedura ti sarà dato il testo da salvare in un file di nome .htconfig.php dentro la cartella principale di RedMatrix."
+
+#: ../../mod/setup.php:511
+msgid ""
+"You can alternatively skip this procedure and perform a manual installation."
+" Please see the file \"install/INSTALL.txt\" for instructions."
+msgstr "Puoi anche saltare questa procedura ed effettuare un'installazione manuale. Guarda il file 'install/INSTALL.txt' per le istruzioni."
+
+#: ../../mod/setup.php:514
+msgid ".htconfig.php is writable"
+msgstr ".htconfig.php è scrivibile"
+
+#: ../../mod/setup.php:524
+msgid ""
+"Red uses the Smarty3 template engine to render its web views. Smarty3 "
+"compiles templates to PHP to speed up rendering."
+msgstr "Red usa il sistema Smarty3 per costruire i suoi template grafici. Smarty3 è molto veloce perché compila i template delle pagine direttamente in PHP."
+
+#: ../../mod/setup.php:525
+#, php-format
+msgid ""
+"In order to store these compiled templates, the web server needs to have "
+"write access to the directory %s under the Red top level folder."
+msgstr "Per poter memorizzare i template compilati, il web server deve avere accesso in scrittura a %s sotto la cartella di installazione di RedMatrix."
+
+#: ../../mod/setup.php:526 ../../mod/setup.php:544
+msgid ""
+"Please ensure that the user that your web server runs as (e.g. www-data) has"
+" write access to this folder."
+msgstr "Assicurati che il tuo web server sia in esecuzione da parte di un utente che ha diritto di scrittura su quella cartella (ad esempio www-data)."
+
+#: ../../mod/setup.php:527
+#, php-format
+msgid ""
+"Note: as a security measure, you should give the web server write access to "
+"%s only--not the template files (.tpl) that it contains."
+msgstr "Nota bene: come precauzione, dovresti dare i diritti di scrittura solamente su %s e non sui file template (.tpl) che contiene."
+
+#: ../../mod/setup.php:530
+#, php-format
+msgid "%s is writable"
+msgstr "%s è scrivibile"
+
+#: ../../mod/setup.php:543
+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 "RedMatrix salva i file caricati nella cartella \"store\" sul server. Il server deve avere i diritti di scrittura su quella cartella che si trova dentro l'installazione di RedMatrix"
+
+#: ../../mod/setup.php:547
+msgid "store is writable"
+msgstr "l'archivio è scrivibile"
+
+#: ../../mod/setup.php:577
+msgid ""
+"SSL certificate cannot be validated. Fix certificate or disable https access"
+" to this site."
+msgstr "Il certificato SSL non può essere validato. Correggi l'errore o disabilita l'accesso https al sito."
+
+#: ../../mod/setup.php:578
+msgid ""
+"If you have https access to your website or allow connections to TCP port "
+"443 (the https: port), you MUST use a browser-valid certificate. You MUST "
+"NOT use self-signed certificates!"
+msgstr "Se abiliti https per il tuo sito o permetti connessioni TCP su port 443 (quella di https), DEVI usare un certificato riconosciuto dai browser internet. NON DEVI usare certificati generati da te!"
+
+#: ../../mod/setup.php:579
+msgid ""
+"This restriction is incorporated because public posts from you may for "
+"example contain references to images on your own hub."
+msgstr "Questa restrizione è necessaria perché i tuoi post pubblici potrebbero contenere riferimenti a immagini sul tuo server."
+
+#: ../../mod/setup.php:580
+msgid ""
+"If your certificate is not recognized, members of other sites (who may "
+"themselves have valid certificates) will get a warning message on their own "
+"site complaining about security issues."
+msgstr "Se il tuo certificato non è riconosciuto, gli utenti che ti seguono da altri siti (che avranno certificati validi) riceveranno gravi avvisi di sicurezza dal browser."
+
+#: ../../mod/setup.php:581
+msgid ""
+"This can cause usability issues elsewhere (not just on your own site) so we "
+"must insist on this requirement."
+msgstr "Ciò può creare seri problemi di usabilità (non solo sul tuo sito), quindi dobbiamo insistere su questo punto."
+
+#: ../../mod/setup.php:582
+msgid ""
+"Providers are available that issue free certificates which are browser-"
+"valid."
+msgstr "Eventualmente, considera che esistono provider che rilasciano certificati gratuiti riconosciuti dai browser."
+
+#: ../../mod/setup.php:584
+msgid "SSL certificate validation"
+msgstr "Validazione del certificato SSL"
+
+#: ../../mod/setup.php:590
+msgid ""
+"Url rewrite in .htaccess is not working. Check your server "
+"configuration.Test: "
+msgstr "In .htaccess la funzionalità url rewrite non funziona. Controlla la configurazione del server. Test:"
+
+#: ../../mod/setup.php:592
+msgid "Url rewrite is working"
+msgstr "Url rewrite funziona correttamente"
+
+#: ../../mod/setup.php:602
+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 "Il file di configurazione del database \".htconfig.php\" non puo' essere scritto. Usa il testo qui di seguito per creare questo file di configurazione nella cartella principale del tuo sito."
+
+#: ../../mod/setup.php:626
+msgid "Errors encountered creating database tables."
+msgstr "La creazione delle tabelle del database ha generato errori."
+
+#: ../../mod/setup.php:661
+msgid "<h1>What next</h1>"
+msgstr "<h1>I prossimi passi</h1>"
+
+#: ../../mod/setup.php:662
+msgid ""
+"IMPORTANT: You will need to [manually] setup a scheduled task for the "
+"poller."
+msgstr "IMPORTANTE: Devi creare [manualmente] la pianificazione del polling."
+
+#: ../../mod/settings.php:73
msgid "Name is required"
msgstr "Il nome è obbligatorio"
-#: ../../mod/settings.php:75
+#: ../../mod/settings.php:77
msgid "Key and Secret are required"
-msgstr "Chiave e Segreto sono richiesti"
+msgstr "Key e Secret sono richiesti"
-#: ../../mod/settings.php:196
+#: ../../mod/settings.php:213
msgid "Passwords do not match. Password unchanged."
msgstr "Le password non corrispondono. Password non cambiata."
-#: ../../mod/settings.php:200
+#: ../../mod/settings.php:217
msgid "Empty passwords are not allowed. Password unchanged."
msgstr "Le password non possono essere vuote. Password non cambiata."
-#: ../../mod/settings.php:214
+#: ../../mod/settings.php:231
msgid "Password changed."
msgstr "Password cambiata."
-#: ../../mod/settings.php:216
+#: ../../mod/settings.php:233
msgid "Password update failed. Please try again."
-msgstr "Aggiornamento password fallito. Prova ancora."
+msgstr "Modifica password fallita. Prova ancora."
-#: ../../mod/settings.php:230
+#: ../../mod/settings.php:247
msgid "Not valid email."
msgstr "Email non valida."
-#: ../../mod/settings.php:233
+#: ../../mod/settings.php:250
msgid "Protected email address. Cannot change to that email."
msgstr "È un indirizzo email riservato. Non puoi sceglierlo."
-#: ../../mod/settings.php:242
+#: ../../mod/settings.php:259
msgid "System failure storing new email. Please try again."
msgstr "Errore di sistema. Non è stato possibile memorizzare il tuo messaggio, riprova per favore."
-#: ../../mod/settings.php:445
+#: ../../mod/settings.php:495
msgid "Settings updated."
msgstr "Impostazioni aggiornate."
-#: ../../mod/settings.php:516 ../../mod/settings.php:542
-#: ../../mod/settings.php:578
+#: ../../mod/settings.php:564 ../../mod/settings.php:590
+#: ../../mod/settings.php:626
msgid "Add application"
msgstr "Aggiungi una app"
-#: ../../mod/settings.php:519
+#: ../../mod/settings.php:567
msgid "Name of application"
msgstr "Nome dell'applicazione"
-#: ../../mod/settings.php:520 ../../mod/settings.php:546
+#: ../../mod/settings.php:568 ../../mod/settings.php:594
msgid "Consumer Key"
msgstr "Consumer Key"
-#: ../../mod/settings.php:520 ../../mod/settings.php:521
+#: ../../mod/settings.php:568 ../../mod/settings.php:569
msgid "Automatically generated - change if desired. Max length 20"
msgstr "Generato automaticamente - è possibile cambiarlo. Lunghezza massima 20"
-#: ../../mod/settings.php:521 ../../mod/settings.php:547
+#: ../../mod/settings.php:569 ../../mod/settings.php:595
msgid "Consumer Secret"
msgstr "Consumer Secret"
-#: ../../mod/settings.php:522 ../../mod/settings.php:548
+#: ../../mod/settings.php:570 ../../mod/settings.php:596
msgid "Redirect"
msgstr "Redirect"
-#: ../../mod/settings.php:522
+#: ../../mod/settings.php:570
msgid ""
"Redirect URI - leave blank unless your application specifically requires "
"this"
msgstr "URI ridirezionato - lasciare bianco se non richiesto specificamente dall'applicazione."
-#: ../../mod/settings.php:523 ../../mod/settings.php:549
+#: ../../mod/settings.php:571 ../../mod/settings.php:597
msgid "Icon url"
msgstr "Url icona"
-#: ../../mod/settings.php:523
+#: ../../mod/settings.php:571
msgid "Optional"
msgstr "Opzionale"
-#: ../../mod/settings.php:534
+#: ../../mod/settings.php:582
msgid "You can't edit this application."
msgstr "Non puoi modificare questa applicazione."
-#: ../../mod/settings.php:577
+#: ../../mod/settings.php:625
msgid "Connected Apps"
msgstr "App connesse"
-#: ../../mod/settings.php:581
+#: ../../mod/settings.php:629
msgid "Client key starts with"
msgstr "La client key inizia con"
-#: ../../mod/settings.php:582
+#: ../../mod/settings.php:630
msgid "No name"
msgstr "Nessun nome"
-#: ../../mod/settings.php:583
+#: ../../mod/settings.php:631
msgid "Remove authorization"
msgstr "Revoca l'autorizzazione"
-#: ../../mod/settings.php:594
+#: ../../mod/settings.php:642
msgid "No feature settings configured"
msgstr "Non hai componenti aggiuntivi da personalizzare"
-#: ../../mod/settings.php:602
+#: ../../mod/settings.php:650
msgid "Feature Settings"
msgstr "Componenti aggiuntivi"
-#: ../../mod/settings.php:625
+#: ../../mod/settings.php:673
msgid "Account Settings"
msgstr "Il tuo account"
-#: ../../mod/settings.php:626
+#: ../../mod/settings.php:674
msgid "Password Settings"
msgstr "Impostazioni password"
-#: ../../mod/settings.php:627
+#: ../../mod/settings.php:675
msgid "New Password:"
msgstr "Nuova password:"
-#: ../../mod/settings.php:628
+#: ../../mod/settings.php:676
msgid "Confirm:"
msgstr "Conferma:"
-#: ../../mod/settings.php:628
+#: ../../mod/settings.php:676
msgid "Leave password fields blank unless changing"
msgstr "Lascia questi campi in bianco per non cambiare la password"
-#: ../../mod/settings.php:630 ../../mod/settings.php:944
+#: ../../mod/settings.php:678 ../../mod/settings.php:1013
msgid "Email Address:"
msgstr "Indirizzo email:"
-#: ../../mod/settings.php:631 ../../mod/removeaccount.php:61
+#: ../../mod/settings.php:679 ../../mod/removeaccount.php:61
msgid "Remove Account"
msgstr "Elimina l'account"
-#: ../../mod/settings.php:632
+#: ../../mod/settings.php:680
msgid "Remove this account from this server including all its channels"
-msgstr "Elimina questo account da questo server, inclusi tutti i canali."
+msgstr "Elimina l'account da questo server, inclusi tutti i canali"
-#: ../../mod/settings.php:633 ../../mod/settings.php:1007
+#: ../../mod/settings.php:681 ../../mod/settings.php:1095
msgid "Warning: This action is permanent and cannot be reversed."
msgstr "Attenzione: questa azione è permanente e non potrà più essere annullata."
-#: ../../mod/settings.php:649
+#: ../../mod/settings.php:697
msgid "Off"
msgstr "Off"
-#: ../../mod/settings.php:649
+#: ../../mod/settings.php:697
msgid "On"
msgstr "On"
-#: ../../mod/settings.php:656
+#: ../../mod/settings.php:704
msgid "Additional Features"
msgstr "Funzionalità opzionali"
-#: ../../mod/settings.php:681
+#: ../../mod/settings.php:729
msgid "Connector Settings"
msgstr "Impostazioni del connettore"
-#: ../../mod/settings.php:711 ../../mod/admin.php:361
+#: ../../mod/settings.php:768
msgid "No special theme for mobile devices"
msgstr "Nessun tema per dispositivi mobili"
-#: ../../mod/settings.php:720
+#: ../../mod/settings.php:771
#, php-format
msgid "%s - (Experimental)"
msgstr "%s - (Sperimentale)"
-#: ../../mod/settings.php:753
+#: ../../mod/settings.php:774 ../../mod/admin.php:363
+msgid "mobile"
+msgstr "mobile"
+
+#: ../../mod/settings.php:810
msgid "Display Settings"
msgstr "Aspetto"
-#: ../../mod/settings.php:759
+#: ../../mod/settings.php:816
msgid "Display Theme:"
-msgstr "Tema per monitor:"
+msgstr "Tema per schermi medio grandi:"
-#: ../../mod/settings.php:760
+#: ../../mod/settings.php:817
msgid "Mobile Theme:"
msgstr "Tema per dispositivi mobili:"
-#: ../../mod/settings.php:761
+#: ../../mod/settings.php:818
msgid "Enable user zoom on mobile devices"
msgstr "Attiva la possibilità di fare zoom sui dispositivi mobili"
-#: ../../mod/settings.php:762
+#: ../../mod/settings.php:819
msgid "Update browser every xx seconds"
msgstr "Aggiorna il browser ogni x secondi"
-#: ../../mod/settings.php:762
+#: ../../mod/settings.php:819
msgid "Minimum of 10 seconds, no maximum"
msgstr "Minimo 10 secondi, nessun limite massimo"
-#: ../../mod/settings.php:763
+#: ../../mod/settings.php:820
msgid "Maximum number of conversations to load at any time:"
msgstr "Massimo numero di conversazioni da mostrare ogni volta:"
-#: ../../mod/settings.php:763
+#: ../../mod/settings.php:820
msgid "Maximum of 100 items"
msgstr "Massimo 100"
-#: ../../mod/settings.php:764
+#: ../../mod/settings.php:821
msgid "Don't show emoticons"
msgstr "Non mostrare le emoticons"
-#: ../../mod/settings.php:765
+#: ../../mod/settings.php:822
+msgid "Link post titles to source"
+msgstr "Il link del titolo di un articolo porta al sito originale"
+
+#: ../../mod/settings.php:823
msgid "System Page Layout Editor - (advanced)"
-msgstr "Modifica i layout di sistema - (avanzato)"
+msgstr "Modifica i layout di sistema (avanzato)"
+
+#: ../../mod/settings.php:826
+msgid "Use blog/list mode on channel page"
+msgstr "Mostra il canale nella modalità blog"
+
+#: ../../mod/settings.php:826 ../../mod/settings.php:827
+msgid "(comments displayed separately)"
+msgstr "(i commenti sono mostrati separatamente)"
-#: ../../mod/settings.php:801
+#: ../../mod/settings.php:827
+msgid "Use blog/list mode on matrix page"
+msgstr "Mostra la tua rete in modalità blog"
+
+#: ../../mod/settings.php:828
+msgid "Channel page max height of content (in pixels)"
+msgstr "Altezza massima dei contenuti del canale (in pixel)"
+
+#: ../../mod/settings.php:828 ../../mod/settings.php:829
+msgid "click to expand content exceeding this height"
+msgstr "dovrai cliccare per mostrare i contenuti di dimensioni maggiori"
+
+#: ../../mod/settings.php:829
+msgid "Matrix page max height of content (in pixels)"
+msgstr "Altezza massima dei contenuti della tua rete (in pixel)"
+
+#: ../../mod/settings.php:863
msgid "Nobody except yourself"
msgstr "Nessuno tranne te"
-#: ../../mod/settings.php:802
+#: ../../mod/settings.php:864
msgid "Only those you specifically allow"
msgstr "Solo chi riceve il mio permesso"
-#: ../../mod/settings.php:803
+#: ../../mod/settings.php:865
msgid "Approved connections"
msgstr "Contatti approvati"
-#: ../../mod/settings.php:804
+#: ../../mod/settings.php:866
msgid "Any connections"
msgstr "Tutti i contatti"
-#: ../../mod/settings.php:805
+#: ../../mod/settings.php:867
msgid "Anybody on this website"
msgstr "Chiunque su questo sito"
-#: ../../mod/settings.php:806
+#: ../../mod/settings.php:868
msgid "Anybody in this network"
msgstr "Chiunque su Red"
-#: ../../mod/settings.php:807
+#: ../../mod/settings.php:869
msgid "Anybody authenticated"
msgstr "Chiunque sia autenticato"
-#: ../../mod/settings.php:808
+#: ../../mod/settings.php:870
msgid "Anybody on the internet"
msgstr "Chiunque su internet"
-#: ../../mod/settings.php:885
+#: ../../mod/settings.php:944
msgid "Publish your default profile in the network directory"
-msgstr "Pubblica il mio profilo predefinito sull'elenco pubblico dei canali"
+msgstr "Mostra il mio profilo predefinito nell'elenco pubblico dei canali"
-#: ../../mod/settings.php:885 ../../mod/settings.php:890
-#: ../../mod/settings.php:961 ../../mod/api.php:106 ../../mod/profiles.php:602
-#: ../../mod/admin.php:391
-msgid "No"
-msgstr "No"
-
-#: ../../mod/settings.php:885 ../../mod/settings.php:890
-#: ../../mod/settings.php:961 ../../mod/api.php:105 ../../mod/profiles.php:601
-#: ../../mod/admin.php:393
-msgid "Yes"
-msgstr "Si"
-
-#: ../../mod/settings.php:890
+#: ../../mod/settings.php:949
msgid "Allow us to suggest you as a potential friend to new members?"
-msgstr "Vuoi essere suggerito come potenziale amico ai nuovi membri?"
+msgstr "Vuoi essere suggerito come amico ai nuovi membri?"
-#: ../../mod/settings.php:894 ../../mod/profile_photo.php:365
+#: ../../mod/settings.php:953 ../../mod/profile_photo.php:365
msgid "or"
msgstr "o"
-#: ../../mod/settings.php:899
+#: ../../mod/settings.php:958
msgid "Your channel address is"
msgstr "L'indirizzo del tuo canale è"
-#: ../../mod/settings.php:933
+#: ../../mod/settings.php:1002
msgid "Channel Settings"
msgstr "Impostazioni del canale"
-#: ../../mod/settings.php:942
+#: ../../mod/settings.php:1011
msgid "Basic Settings"
msgstr "Impostazioni di base"
-#: ../../mod/settings.php:945
+#: ../../mod/settings.php:1014
msgid "Your Timezone:"
msgstr "Il tuo fuso orario:"
-#: ../../mod/settings.php:946
+#: ../../mod/settings.php:1015
msgid "Default Post Location:"
msgstr "Località predefinita:"
-#: ../../mod/settings.php:946
+#: ../../mod/settings.php:1015
msgid "Geographical location to display on your posts"
msgstr "Posizione geografica da mostrare sui tuoi post"
-#: ../../mod/settings.php:947
+#: ../../mod/settings.php:1016
msgid "Use Browser Location:"
msgstr "Usa la località rilevata dal browser:"
-#: ../../mod/settings.php:949
+#: ../../mod/settings.php:1018
msgid "Adult Content"
msgstr "Contenuto per adulti"
-#: ../../mod/settings.php:949
+#: ../../mod/settings.php:1018
msgid ""
"This channel frequently or regularly publishes adult content. (Please tag "
"any adult material and/or nudity with #NSFW)"
msgstr "Questo canale pubblica frequentemente contenuto per adulti. (I contenuti per adulti vanno taggati #NSFW - Not Safe For Work)"
-#: ../../mod/settings.php:951
+#: ../../mod/settings.php:1020
msgid "Security and Privacy Settings"
msgstr "Impostazioni di sicurezza e privacy"
-#: ../../mod/settings.php:953
+#: ../../mod/settings.php:1022
+msgid "Your permissions are already configured. Click to view/adjust"
+msgstr "I tuoi permessi sono già stati configurati. Clicca per vederli o modificarli"
+
+#: ../../mod/settings.php:1024
msgid "Hide my online presence"
msgstr "Non mostrare la mia presenza online"
-#: ../../mod/settings.php:953
+#: ../../mod/settings.php:1024
msgid "Prevents displaying in your profile that you are online"
msgstr "Non mostra sul tuo profilo che sei online"
-#: ../../mod/settings.php:955
+#: ../../mod/settings.php:1026
msgid "Simple Privacy Settings:"
msgstr "Impostazioni di privacy semplificate"
-#: ../../mod/settings.php:956
+#: ../../mod/settings.php:1027
msgid ""
"Very Public - <em>extremely permissive (should be used with caution)</em>"
msgstr "Tutto pubblico - <em>estremamente permissivo (da usare con cautela)</em>"
-#: ../../mod/settings.php:957
+#: ../../mod/settings.php:1028
msgid ""
"Typical - <em>default public, privacy when desired (similar to social "
"network permissions but with improved privacy)</em>"
msgstr "Standard - <em>contenuti normalmente pubblici, ma anche privati se necessario (simile ai social network ma con privacy migliorata)</em>"
-#: ../../mod/settings.php:958
+#: ../../mod/settings.php:1029
msgid "Private - <em>default private, never open or public</em>"
msgstr "Privato - <em>contenuti normalmente privati, nulla è aperto o pubblico</em>"
-#: ../../mod/settings.php:959
+#: ../../mod/settings.php:1030
msgid "Blocked - <em>default blocked to/from everybody</em>"
-msgstr "Bloccato - <em>bloccato in ricezione e invio</em>"
+msgstr "Bloccato - <em>bloccato in invio e ricezione dei contenuti</em>"
-#: ../../mod/settings.php:961
+#: ../../mod/settings.php:1032
msgid "Allow others to tag your posts"
msgstr "Permetti ad altri di taggare i tuoi articoli"
-#: ../../mod/settings.php:961
+#: ../../mod/settings.php:1032
msgid ""
"Often used by the community to retro-actively flag inappropriate content"
msgstr "Usato spesso dalla comunità per marcare contenuti inappropriati già esistenti"
-#: ../../mod/settings.php:963
+#: ../../mod/settings.php:1034
msgid "Advanced Privacy Settings"
msgstr "Impostazioni di privacy avanzate"
-#: ../../mod/settings.php:965
+#: ../../mod/settings.php:1036
msgid "Expire other channel content after this many days"
msgstr "Giorni dopo cui mettere in scadenza gli altri contenuti del canale"
-#: ../../mod/settings.php:965
+#: ../../mod/settings.php:1036
msgid "0 or blank prevents expiration"
msgstr "Lascia vuoto oppure 0 per non impostare scadenze"
-#: ../../mod/settings.php:966
+#: ../../mod/settings.php:1037
msgid "Maximum Friend Requests/Day:"
msgstr "Numero massimo giornaliero di richieste di amicizia:"
-#: ../../mod/settings.php:966
+#: ../../mod/settings.php:1037
msgid "May reduce spam activity"
msgstr "Serve e ridurre lo spam"
-#: ../../mod/settings.php:967
+#: ../../mod/settings.php:1038
msgid "Default Post Permissions"
msgstr "Permessi predefiniti per gli articoli"
-#: ../../mod/settings.php:979
+#: ../../mod/settings.php:1043
+msgid "Channel permissions category:"
+msgstr "Categorie di permessi dei canali:"
+
+#: ../../mod/settings.php:1051
msgid "Maximum private messages per day from unknown people:"
msgstr "Numero massimo giornaliero di messaggi privati da utenti sconosciuti:"
-#: ../../mod/settings.php:979
+#: ../../mod/settings.php:1051
msgid "Useful to reduce spamming"
msgstr "Serve e ridurre lo spam"
-#: ../../mod/settings.php:982
+#: ../../mod/settings.php:1054
msgid "Notification Settings"
msgstr "Impostazioni di notifica"
-#: ../../mod/settings.php:983
+#: ../../mod/settings.php:1055
msgid "By default post a status message when:"
msgstr "Pubblica un messaggio di stato quando:"
-#: ../../mod/settings.php:984
+#: ../../mod/settings.php:1056
msgid "accepting a friend request"
msgstr "accetto una nuova amicizia"
-#: ../../mod/settings.php:985
+#: ../../mod/settings.php:1057
msgid "joining a forum/community"
msgstr "entro a far parte di un forum"
-#: ../../mod/settings.php:986
+#: ../../mod/settings.php:1058
msgid "making an <em>interesting</em> profile change"
msgstr "faccio un cambiamento <em>interessante</em> al mio profilo"
-#: ../../mod/settings.php:987
+#: ../../mod/settings.php:1059
msgid "Send a notification email when:"
msgstr "Invia una email di notifica quando:"
-#: ../../mod/settings.php:988
+#: ../../mod/settings.php:1060
msgid "You receive a connection request"
msgstr "Ricevi una richiesta di entrare in contatto"
-#: ../../mod/settings.php:989
+#: ../../mod/settings.php:1061
msgid "Your connections are confirmed"
msgstr "I tuoi contatti sono confermati"
-#: ../../mod/settings.php:990
+#: ../../mod/settings.php:1062
msgid "Someone writes on your profile wall"
msgstr "Qualcuno scrive sulla tua bacheca"
-#: ../../mod/settings.php:991
+#: ../../mod/settings.php:1063
msgid "Someone writes a followup comment"
msgstr "Qualcuno scrive un commento a un tuo articolo"
-#: ../../mod/settings.php:992
+#: ../../mod/settings.php:1064
msgid "You receive a private message"
msgstr "Ricevi un messaggio privato"
-#: ../../mod/settings.php:993
+#: ../../mod/settings.php:1065
msgid "You receive a friend suggestion"
msgstr "Ti viene suggerito un amico"
-#: ../../mod/settings.php:994
+#: ../../mod/settings.php:1066
msgid "You are tagged in a post"
msgstr "Sei taggato in un articolo"
-#: ../../mod/settings.php:995
+#: ../../mod/settings.php:1067
msgid "You are poked/prodded/etc. in a post"
msgstr "Ricevi un poke in un articolo"
-#: ../../mod/settings.php:998
-msgid "Advanced Account/Page Type Settings"
-msgstr "Impostazioni avanzate"
-
-#: ../../mod/settings.php:999
-msgid "Change the behaviour of this account for special situations"
-msgstr "Cambia il funzionamento di questo account in situazioni particolari"
-
-#: ../../mod/settings.php:1002
-msgid ""
-"Please enable expert mode (in <a href=\"settings/features\">Settings > "
-"Additional features</a>) to adjust!"
-msgstr "Abilita la modalità esperto per fare cambiamenti! (in <a href=\"settings/features\">Impostazioni > Funzionalità opzionali</a>)"
-
-#: ../../mod/settings.php:1003
-msgid "Miscellaneous Settings"
-msgstr "Impostazioni varie"
-
-#: ../../mod/settings.php:1005
-msgid "Personal menu to display in your channel pages"
-msgstr "Menu personale da mostrare sulle pagine del tuo canale"
-
-#: ../../mod/settings.php:1006
-msgid "Remove this channel"
-msgstr "Elimina questo canale"
+#: ../../mod/settings.php:1070
+msgid "Show visual notifications including:"
+msgstr "Mostra queste notifiche a schermo:"
-#: ../../mod/poke.php:159
-msgid "Poke/Prod"
-msgstr "Poke/Prod"
+#: ../../mod/settings.php:1072
+msgid "Unseen matrix activity"
+msgstr "Nuove attività nella rete"
-#: ../../mod/poke.php:160
-msgid "poke, prod or do other things to somebody"
-msgstr "Manda un poke, un prod o altro"
+#: ../../mod/settings.php:1073
+msgid "Unseen channel activity"
+msgstr "Novità nei canali"
-#: ../../mod/poke.php:161
-msgid "Recipient"
-msgstr "Destinatario"
+#: ../../mod/settings.php:1074
+msgid "Unseen private messages"
+msgstr "Nuovi messaggi privati"
-#: ../../mod/poke.php:162
-msgid "Choose what you wish to do to recipient"
-msgstr "Scegli cosa vuoi inviare al destinatario"
+#: ../../mod/settings.php:1074 ../../mod/settings.php:1079
+#: ../../mod/settings.php:1080 ../../mod/settings.php:1081
+msgid "Recommended"
+msgstr "Consigliato"
-#: ../../mod/poke.php:165
-msgid "Make this post private"
-msgstr "Rendi privato questo articolo"
+#: ../../mod/settings.php:1075
+msgid "Upcoming events"
+msgstr "Prossimi eventi"
-#: ../../mod/api.php:76 ../../mod/api.php:102
-msgid "Authorize application connection"
-msgstr "Autorizza la app"
+#: ../../mod/settings.php:1076
+msgid "Events today"
+msgstr "Eventi di oggi"
-#: ../../mod/api.php:77
-msgid "Return to your app and insert this Securty Code:"
-msgstr "Torna alla app e inserisci questo codice di sicurezza:"
+#: ../../mod/settings.php:1077
+msgid "Upcoming birthdays"
+msgstr "Prossimi compleanni"
-#: ../../mod/api.php:89
-msgid "Please login to continue."
-msgstr "Accedi al sito per continuare."
+#: ../../mod/settings.php:1077
+msgid "Not available in all themes"
+msgstr "Non disponibile in tutti i temi"
-#: ../../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 "Vuoi autorizzare questa app ad accedere ai messaggi e ai contatti o creare nuovi messaggi per te?"
+#: ../../mod/settings.php:1078
+msgid "System (personal) notifications"
+msgstr "Notifiche personali dal sistema"
-#: ../../mod/post.php:229
-msgid ""
-"Remote authentication blocked. You are logged into this site locally. Please"
-" logout and retry."
-msgstr "L'autenticazione remota non è disponibile. Hai accesso solamente a questo sito. Puoi provare ad uscire per tentare di nuovo."
-
-#: ../../mod/post.php:261 ../../mod/openid.php:72 ../../mod/openid.php:178
-#, php-format
-msgid "Welcome %s. Remote authentication successful."
-msgstr "Ciao %s. La tua autenticazione da remoto è avvenuta con successo."
+#: ../../mod/settings.php:1079
+msgid "System info messages"
+msgstr "Notifiche di sistema"
-#: ../../mod/attach.php:9
-msgid "Item not available."
-msgstr "Elemento non disponibile."
+#: ../../mod/settings.php:1080
+msgid "System critical alerts"
+msgstr "Avvisi critici di sistema"
-#: ../../mod/probe.php:23 ../../mod/probe.php:29
-#, php-format
-msgid "Fetching URL returns error: %1$s"
-msgstr "La chiamata all'URL restituisce questo errore: %1$s"
+#: ../../mod/settings.php:1081
+msgid "New connections"
+msgstr "Nuovi contatti"
-#: ../../mod/block.php:27 ../../mod/page.php:35
-msgid "Invalid item."
-msgstr "Elemento non valido."
+#: ../../mod/settings.php:1082
+msgid "System Registrations"
+msgstr "Registrazioni"
-#: ../../mod/block.php:39 ../../mod/chanview.php:77 ../../mod/page.php:47
-#: ../../mod/home.php:54 ../../mod/wall_upload.php:28
-msgid "Channel not found."
-msgstr "Canale non trovato."
+#: ../../mod/settings.php:1084
+msgid "Notify me of events this many days in advance"
+msgstr "Giorni di anticipo per notificare gli eventi"
-#: ../../mod/block.php:75 ../../mod/page.php:83 ../../mod/display.php:100
-#: ../../mod/help.php:72 ../../index.php:236
-msgid "Page not found."
-msgstr "Pagina non trovata."
+#: ../../mod/settings.php:1084
+msgid "Must be greater than 0"
+msgstr "Maggiore di 0"
-#: ../../mod/profile_photo.php:108
-msgid "Image uploaded but image cropping failed."
-msgstr "L'immagine è stata caricata, ma il non è stato possibile ritagliarla."
+#: ../../mod/settings.php:1086
+msgid "Advanced Account/Page Type Settings"
+msgstr "Impostazioni avanzate"
-#: ../../mod/profile_photo.php:161
-msgid "Image resize failed."
-msgstr "Il ridimensionamento dell'immagine è fallito."
+#: ../../mod/settings.php:1087
+msgid "Change the behaviour of this account for special situations"
+msgstr "Cambia il funzionamento di questo account per necessità particolari"
-#: ../../mod/profile_photo.php:205
+#: ../../mod/settings.php:1090
msgid ""
-"Shift-reload the page or clear browser cache if the new photo does not "
-"display immediately."
-msgstr "Ricarica la pagina con shift+F5 o cancella la cache del browser se la nuova foto non viene mostrata immediatamente."
-
-#: ../../mod/profile_photo.php:232
-#, php-format
-msgid "Image exceeds size limit of %d"
-msgstr "La dimensione dell'immagine supera il limite di %d"
-
-#: ../../mod/profile_photo.php:241
-msgid "Unable to process image."
-msgstr "Impossibile elaborare l'immagine."
-
-#: ../../mod/profile_photo.php:290 ../../mod/profile_photo.php:339
-msgid "Photo not available."
-msgstr "Foto non disponibile."
-
-#: ../../mod/profile_photo.php:358
-msgid "Upload File:"
-msgstr "Carica un file:"
-
-#: ../../mod/profile_photo.php:359
-msgid "Select a profile:"
-msgstr "Seleziona un profilo:"
-
-#: ../../mod/profile_photo.php:360
-msgid "Upload Profile Photo"
-msgstr "Carica la foto del profilo"
-
-#: ../../mod/profile_photo.php:365
-msgid "skip this step"
-msgstr "salta questo passaggio"
-
-#: ../../mod/profile_photo.php:365
-msgid "select a photo from your photo albums"
-msgstr "seleziona una foto dai tuoi album"
-
-#: ../../mod/profile_photo.php:379
-msgid "Crop Image"
-msgstr "Ritaglia immagine"
-
-#: ../../mod/profile_photo.php:380
-msgid "Please adjust the image cropping for optimum viewing."
-msgstr "Ritaglia l'immagine per migliorarne la visualizzazione."
-
-#: ../../mod/profile_photo.php:382
-msgid "Done Editing"
-msgstr "Modifica terminata"
-
-#: ../../mod/profile_photo.php:425
-msgid "Image uploaded successfully."
-msgstr "Immagine caricata con successo."
-
-#: ../../mod/profile_photo.php:427
-msgid "Image upload failed."
-msgstr "Il caricamento dell'immagine è fallito."
-
-#: ../../mod/profile_photo.php:436
-#, php-format
-msgid "Image size reduction [%s] failed."
-msgstr "Il ridimensionamento del'immagine [%s] è fallito."
-
-#: ../../mod/blocks.php:62
-msgid "Block Name"
-msgstr "Nome del riquadro"
-
-#: ../../mod/profiles.php:18 ../../mod/profiles.php:165
-#: ../../mod/profiles.php:222 ../../mod/profiles.php:575
-msgid "Profile not found."
-msgstr "Profilo non trovato."
-
-#: ../../mod/profiles.php:38
-msgid "Profile deleted."
-msgstr "Profilo eliminato."
-
-#: ../../mod/profiles.php:56 ../../mod/profiles.php:92
-msgid "Profile-"
-msgstr "Profilo-"
-
-#: ../../mod/profiles.php:77 ../../mod/profiles.php:120
-msgid "New profile created."
-msgstr "Il nuovo profilo è stato creato."
-
-#: ../../mod/profiles.php:98
-msgid "Profile unavailable to clone."
-msgstr "Impossibile duplicare il profilo."
-
-#: ../../mod/profiles.php:136
-msgid "Profile unavailable to export."
-msgstr "Il profilo non è disponibile per l'export."
-
-#: ../../mod/profiles.php:232
-msgid "Profile Name is required."
-msgstr "Il nome del profilo è obbligatorio ."
-
-#: ../../mod/profiles.php:390
-msgid "Marital Status"
-msgstr "Stato sentimentale"
-
-#: ../../mod/profiles.php:394
-msgid "Romantic Partner"
-msgstr "Partner affettivo"
-
-#: ../../mod/profiles.php:398
-msgid "Likes"
-msgstr "Mi piace"
-
-#: ../../mod/profiles.php:402
-msgid "Dislikes"
-msgstr "Non mi piace"
-
-#: ../../mod/profiles.php:406
-msgid "Work/Employment"
-msgstr "Lavoro/impiego"
-
-#: ../../mod/profiles.php:409
-msgid "Religion"
-msgstr "Religione"
-
-#: ../../mod/profiles.php:413
-msgid "Political Views"
-msgstr "Orientamento politico"
-
-#: ../../mod/profiles.php:417
-msgid "Gender"
-msgstr "Sesso"
-
-#: ../../mod/profiles.php:421
-msgid "Sexual Preference"
-msgstr "Preferenze sessuali"
-
-#: ../../mod/profiles.php:425
-msgid "Homepage"
-msgstr "Home page"
-
-#: ../../mod/profiles.php:429
-msgid "Interests"
-msgstr "Interessi"
-
-#: ../../mod/profiles.php:433 ../../mod/admin.php:865
-msgid "Address"
-msgstr "Indirizzo"
-
-#: ../../mod/profiles.php:440 ../../mod/pubsites.php:25
-msgid "Location"
-msgstr "Posizione geografica"
-
-#: ../../mod/profiles.php:523
-msgid "Profile updated."
-msgstr "Profilo aggiornato."
-
-#: ../../mod/profiles.php:600
-msgid "Hide your contact/friend list from viewers of this profile?"
-msgstr "Nascondi la tua lista di contatti/amici ai visitatori di questo profilo?"
-
-#: ../../mod/profiles.php:642
-msgid "Edit Profile Details"
-msgstr "Modifica i dettagli del profilo"
-
-#: ../../mod/profiles.php:644
-msgid "View this profile"
-msgstr "Guarda questo profilo"
-
-#: ../../mod/profiles.php:646
-msgid "Change Profile Photo"
-msgstr "Cambia la foto del profilo"
-
-#: ../../mod/profiles.php:647
-msgid "Create a new profile using these settings"
-msgstr "Crea un nuovo profilo usando queste impostazioni"
-
-#: ../../mod/profiles.php:648
-msgid "Clone this profile"
-msgstr "Clona questo profilo"
-
-#: ../../mod/profiles.php:649
-msgid "Delete this profile"
-msgstr "Elimina questo profilo"
-
-#: ../../mod/profiles.php:651
-msgid "Import profile from file"
-msgstr "Importa il profilo da un file"
-
-#: ../../mod/profiles.php:652
-msgid "Export profile to file"
-msgstr "Esporta il profilo in un file"
-
-#: ../../mod/profiles.php:653
-msgid "Profile Name:"
-msgstr "Nome del profilo:"
-
-#: ../../mod/profiles.php:654
-msgid "Your Full Name:"
-msgstr "Il tuo nome completo:"
-
-#: ../../mod/profiles.php:655
-msgid "Title/Description:"
-msgstr "Titolo/descrizione:"
-
-#: ../../mod/profiles.php:656
-msgid "Your Gender:"
-msgstr "Sesso:"
-
-#: ../../mod/profiles.php:657
-#, php-format
-msgid "Birthday (%s):"
-msgstr "Compleanno (%s):"
-
-#: ../../mod/profiles.php:658
-msgid "Street Address:"
-msgstr "Indirizzo (via/piazza):"
-
-#: ../../mod/profiles.php:659
-msgid "Locality/City:"
-msgstr "Località:"
-
-#: ../../mod/profiles.php:660
-msgid "Postal/Zip Code:"
-msgstr "CAP:"
-
-#: ../../mod/profiles.php:661
-msgid "Country:"
-msgstr "Nazione:"
-
-#: ../../mod/profiles.php:662
-msgid "Region/State:"
-msgstr "Regione/stato:"
-
-#: ../../mod/profiles.php:663
-msgid "<span class=\"heart\">&hearts;</span> Marital Status:"
-msgstr "<span class=\"heart\">&hearts;</span> Stato sentimentale:"
-
-#: ../../mod/profiles.php:664
-msgid "Who: (if applicable)"
-msgstr "Con chi: (se possibile)"
-
-#: ../../mod/profiles.php:665
-msgid "Examples: cathy123, Cathy Williams, cathy@example.com"
-msgstr "Per esempio: cathy123, Cathy Williams, cathy@example.com"
-
-#: ../../mod/profiles.php:666
-msgid "Since [date]:"
-msgstr "dal [data]:"
-
-#: ../../mod/profiles.php:668
-msgid "Homepage URL:"
-msgstr "Indirizzo home page:"
-
-#: ../../mod/profiles.php:671
-msgid "Religious Views:"
-msgstr "Orientamento religioso:"
-
-#: ../../mod/profiles.php:672
-msgid "Keywords:"
-msgstr "Parole chiave, tag:"
-
-#: ../../mod/profiles.php:675
-msgid "Example: fishing photography software"
-msgstr "Per esempio: pesca fotografia programmazione"
-
-#: ../../mod/profiles.php:676
-msgid "Used in directory listings"
-msgstr "Visibile nell'elenco pubblico di canali"
-
-#: ../../mod/profiles.php:677
-msgid "Tell us about yourself..."
-msgstr "Raccontaci di te..."
-
-#: ../../mod/profiles.php:678
-msgid "Hobbies/Interests"
-msgstr "Hobby/interessi"
+"Please enable expert mode (in <a href=\"settings/features\">Settings > "
+"Additional features</a>) to adjust!"
+msgstr "Abilita la modalità esperto per fare cambiamenti! (in <a href=\"settings/features\">Impostazioni > Funzionalità opzionali</a>)"
-#: ../../mod/profiles.php:679
-msgid "Contact information and Social Networks"
-msgstr "Contatti personali e i tuoi social network"
+#: ../../mod/settings.php:1091
+msgid "Miscellaneous Settings"
+msgstr "Impostazioni varie"
-#: ../../mod/profiles.php:680
-msgid "My other channels"
-msgstr "I miei altri canali"
+#: ../../mod/settings.php:1093
+msgid "Personal menu to display in your channel pages"
+msgstr "Menu personale da mostrare sulle pagine del tuo canale"
-#: ../../mod/profiles.php:681
-msgid "Musical interests"
-msgstr "Interessi musicali"
+#: ../../mod/settings.php:1094
+msgid "Remove this channel"
+msgstr "Elimina questo canale"
-#: ../../mod/profiles.php:682
-msgid "Books, literature"
-msgstr "Libri, letteratura"
+#: ../../mod/events.php:81
+msgid "Event can not end before it has started."
+msgstr "Un evento non può terminare prima del suo inizio."
-#: ../../mod/profiles.php:683
-msgid "Television"
-msgstr "Televisione"
+#: ../../mod/events.php:86
+msgid "Event title and start time are required."
+msgstr "Sono necessari il titolo e l'ora d'inizio dell'evento."
-#: ../../mod/profiles.php:684
-msgid "Film/dance/culture/entertainment"
-msgstr "Film/danza/cultura/intrattenimento"
+#: ../../mod/events.php:100
+msgid "Event not found."
+msgstr "Evento non trovato."
-#: ../../mod/profiles.php:685
-msgid "Love/romance"
-msgstr "Amore"
+#: ../../mod/events.php:369
+msgid "l, F j"
+msgstr "l j F"
-#: ../../mod/profiles.php:686
-msgid "Work/employment"
-msgstr "Lavoro/impiego"
+#: ../../mod/events.php:391
+msgid "Edit event"
+msgstr "Modifica l'evento"
-#: ../../mod/profiles.php:687
-msgid "School/education"
-msgstr "Scuola/educazione"
+#: ../../mod/events.php:443
+msgid "Create New Event"
+msgstr "Crea un nuovo evento"
-#: ../../mod/profiles.php:693
-msgid "This is your default profile."
-msgstr "Questo è il tuo profilo predefinito."
+#: ../../mod/events.php:444 ../../mod/photos.php:859
+msgid "Previous"
+msgstr "Precendente"
-#: ../../mod/profiles.php:704 ../../mod/directory.php:143
-#: ../../mod/dirprofile.php:92
-msgid "Age: "
-msgstr "Età:"
+#: ../../mod/events.php:446
+msgid "Export"
+msgstr "Esporta"
-#: ../../mod/profiles.php:747
-msgid "Edit/Manage Profiles"
-msgstr "Modifica/gestisci i profili"
+#: ../../mod/events.php:571
+msgid "Event details"
+msgstr "Dettagli evento"
-#: ../../mod/profiles.php:748
-msgid "Add profile things"
-msgstr "Aggiungi oggetti al profilo"
+#: ../../mod/events.php:572
+msgid "Starting date and Title are required."
+msgstr "Titolo e data d'inizio sono obbligatori."
-#: ../../mod/profiles.php:749
-msgid "Include desirable objects in your profile"
-msgstr "Aggiungi oggetti interessanti al tuo profilo"
+#: ../../mod/events.php:574
+msgid "Categories (comma-separated list)"
+msgstr "Categorie (separate da virgola)"
-#: ../../mod/bookmarks.php:38
-msgid "Bookmark added"
-msgstr "Segnalibro aggiunto"
+#: ../../mod/events.php:576
+msgid "Event Starts:"
+msgstr "Inizio:"
-#: ../../mod/bookmarks.php:58
-msgid "My Bookmarks"
-msgstr "I miei segnalibri"
+#: ../../mod/events.php:576 ../../mod/events.php:592 ../../mod/appman.php:91
+#: ../../mod/appman.php:92
+msgid "Required"
+msgstr "Obbligatorio"
-#: ../../mod/bookmarks.php:69
-msgid "My Connections Bookmarks"
-msgstr "I segnalibri dei miei contatti"
+#: ../../mod/events.php:582
+msgid "Finish date/time is not known or not relevant"
+msgstr "La data/ora di fine non è rilevante"
-#: ../../mod/profperm.php:29 ../../mod/profperm.php:58
-msgid "Invalid profile identifier."
-msgstr "Indentificativo del profilo non valido."
+#: ../../mod/events.php:584
+msgid "Event Finishes:"
+msgstr "Fine:"
-#: ../../mod/profperm.php:110
-msgid "Profile Visibility Editor"
-msgstr "Modifica la visibilità del profilo"
+#: ../../mod/events.php:586
+msgid "Adjust for viewer timezone"
+msgstr "Adatta al fuso orario di chi legge"
-#: ../../mod/profperm.php:114
-msgid "Click on a contact to add or remove."
-msgstr "Clicca su un contatto per aggiungerlo o rimuoverlo."
+#: ../../mod/events.php:588
+msgid "Description:"
+msgstr "Descrizione:"
-#: ../../mod/profperm.php:123
-msgid "Visible To"
-msgstr "Visibile a"
+#: ../../mod/events.php:592
+msgid "Title:"
+msgstr "Titolo:"
-#: ../../mod/profperm.php:139 ../../mod/connections.php:279
-msgid "All Connections"
-msgstr "Tutti i contatti"
+#: ../../mod/events.php:594
+msgid "Share this event"
+msgstr "Condividi questo evento"
#: ../../mod/pubsites.php:16
msgid "Public Sites"
@@ -4622,7 +5093,7 @@ 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 "Gli indirizzi elencati permettono la registrazione su RedMatrix. Tutti i siti di questa rete sono interconnessi, quindi essere registrati su uno è come essere registrati ovunque. Alcuni potrebbero richiedere un'iscrizione a pagamento o prevedere tipi diversi di abbonamento. Potrai trovare maggiori informazioni al riguardo visitando ciascun sito."
+msgstr "Gli indirizzi elencati permettono la registrazione su RedMatrix. Tutti i siti di questa rete sono interconnessi, quindi essere registrati su uno è come essere registrati ovunque. Alcuni potrebbero richiedere un'iscrizione a pagamento o prevedere diverse tipologie di abbonamento. Eventualmente potrai trovare maggiori informazioni visitando ciascun sito."
#: ../../mod/pubsites.php:25
msgid "Site URL"
@@ -4636,6 +5107,10 @@ msgstr "Tipo di accesso"
msgid "Registration Policy"
msgstr "Politica di registrazione"
+#: ../../mod/pubsites.php:25 ../../mod/profiles.php:428
+msgid "Location"
+msgstr "Posizione geografica"
+
#: ../../mod/channel.php:25 ../../mod/chat.php:19
msgid "You must be logged in to see this page."
msgstr "Devi aver effettuato l'accesso per vedere questa pagina."
@@ -4678,7 +5153,7 @@ msgstr "Elimina questa area chat"
#: ../../mod/chat.php:180
msgid "I am away right now"
-msgstr "Non sono presente al momento"
+msgstr "Non sono presente"
#: ../../mod/chat.php:181
msgid "I am online"
@@ -4701,100 +5176,107 @@ msgstr "Nome dell'area chat"
msgid "%1$s's Chatrooms"
msgstr "Le aree chat di %1$s"
-#: ../../mod/register.php:43
-msgid "Maximum daily site registrations exceeded. Please try again tomorrow."
-msgstr "È stato superato il numero massimo giornaliero di registrazioni a questo sito. Riprova domani!"
+#: ../../mod/siteinfo.php:92
+#, php-format
+msgid "Version %s"
+msgstr "Versione %s"
-#: ../../mod/register.php:49
-msgid ""
-"Please indicate acceptance of the Terms of Service. Registration failed."
-msgstr "Impossibile proseguire. Devi prima accettare le Condizioni d'Uso del servizio."
+#: ../../mod/siteinfo.php:113
+msgid "Installed plugins/addons/apps:"
+msgstr "App e componenti installati:"
-#: ../../mod/register.php:83
-msgid "Passwords do not match."
-msgstr "Le password non corrispondono."
+#: ../../mod/siteinfo.php:126
+msgid "No installed plugins/addons/apps"
+msgstr "Nessuna app o componente installato"
-#: ../../mod/register.php:116
-msgid ""
-"Registration successful. Please check your email for validation "
-"instructions."
-msgstr "La registrazione è terminata correttamente. Per continuare controlla l'email che ti è stata inviata."
+#: ../../mod/siteinfo.php:134
+msgid "Red"
+msgstr "RedMatrix"
-#: ../../mod/register.php:122
-msgid "Your registration is pending approval by the site owner."
-msgstr "La tua richiesta è in attesa di approvazione da parte dell'amministratore del sito."
+#: ../../mod/siteinfo.php:135
+msgid ""
+"This is a hub of the Red Matrix - a global cooperative network of "
+"decentralized privacy enhanced websites."
+msgstr "Questo è un hub di RedMatrix - una rete cooperativa e decentralizzata di siti ad elevata privacy. "
-#: ../../mod/register.php:125
-msgid "Your registration can not be processed."
-msgstr "La tua registrazione non puo' essere acquisita."
+#: ../../mod/siteinfo.php:139
+msgid "Running at web location"
+msgstr "In esecuzione sull'indirizzo web"
-#: ../../mod/register.php:162
-msgid "Registration on this site/hub is by approval only."
-msgstr "La registrazione su questo sito è soggetta ad approvazione."
+#: ../../mod/siteinfo.php:140
+msgid ""
+"Please visit <a href=\"http://getzot.com\">GetZot.com</a> to learn more "
+"about the Red Matrix."
+msgstr "Visita <a href=\"http://getzot.com\">GetZot.com</a> per scoprire il progetto RedMatrix."
-#: ../../mod/register.php:163
-msgid "<a href=\"pubsites\">Register at another affiliated site/hub</a>"
-msgstr "<a href=\"pubsites\">Registrati su un altro server affiliato</a>"
+#: ../../mod/siteinfo.php:141
+msgid "Bug reports and issues: please visit"
+msgstr "Per segnalare bug e problemi: visita"
-#: ../../mod/register.php:171
+#: ../../mod/siteinfo.php:144
msgid ""
-"This site has exceeded the number of allowed daily account registrations. "
-"Please try again tomorrow."
-msgstr "Questo sito ha superato il numero di registrazioni giornaliere consentite. Prova di nuovo domani."
+"Suggestions, praise, etc. - please email \"redmatrix\" at librelist - dot "
+"com"
+msgstr "Per consigli, ringraziamenti, ecc. - scrivi a \"redmatrix\" at librelist - dot com"
-#: ../../mod/register.php:182
-msgid "Terms of Service"
-msgstr "Condizioni d'Uso"
+#: ../../mod/siteinfo.php:146
+msgid "Site Administrators"
+msgstr "Amministratori del sito"
-#: ../../mod/register.php:188
-#, php-format
-msgid "I accept the %s for this website"
-msgstr "Accetto le %s di questo sito"
+#: ../../mod/chatsvc.php:111
+msgid "Away"
+msgstr "Assente"
-#: ../../mod/register.php:190
-#, php-format
-msgid "I am over 13 years of age and accept the %s for this website"
-msgstr "Ho più di 13 anni e accetto le %s di questo sito"
+#: ../../mod/chatsvc.php:115
+msgid "Online"
+msgstr "Online"
-#: ../../mod/register.php:204 ../../mod/admin.php:414
-msgid "Registration"
-msgstr "Registrazione"
+#: ../../mod/regmod.php:11
+msgid "Please login."
+msgstr "Effettua l'accesso."
-#: ../../mod/register.php:209
-msgid "Membership on this site is by invitation only."
-msgstr "Per registrarsi su questo sito è necessario un invito."
+#: ../../mod/connect.php:56 ../../mod/connect.php:104
+msgid "Continue"
+msgstr "Continua"
-#: ../../mod/register.php:210
-msgid "Please enter your invitation code"
-msgstr "Inserisci il codice dell'invito"
+#: ../../mod/connect.php:85
+msgid "Premium Channel Setup"
+msgstr "Canale premium - installazione"
-#: ../../mod/register.php:213
-msgid "Your email address"
-msgstr "Il tuo indirizzo email"
+#: ../../mod/connect.php:87
+msgid "Enable premium channel connection restrictions"
+msgstr "Abilita le restrizioni del canale premium"
-#: ../../mod/register.php:214
-msgid "Choose a password"
-msgstr "Scegli una password"
+#: ../../mod/connect.php:88
+msgid ""
+"Please enter your restrictions or conditions, such as paypal receipt, usage "
+"guidelines, etc."
+msgstr "Scrivi le condizioni d'uso e le restrizioni di questo canale, come per esempio le linee guida, il sistema di pagamento, ecc."
-#: ../../mod/register.php:215
-msgid "Please re-enter your password"
-msgstr "Ripeti la password per verifica"
+#: ../../mod/connect.php:90 ../../mod/connect.php:110
+msgid ""
+"This channel may require additional steps or acknowledgement of the "
+"following conditions prior to connecting:"
+msgstr "Prima di connetterti a questo canale è necessario che tu accetti le seguenti condizioni:"
-#: ../../mod/chatsvc.php:111
-msgid "Away"
-msgstr "Assente"
+#: ../../mod/connect.php:91
+msgid ""
+"Potential connections will then see the following text before proceeding:"
+msgstr "Il testo seguente comparirà a chi vorrà seguire il canale:"
-#: ../../mod/chatsvc.php:115
-msgid "Online"
-msgstr "Online"
+#: ../../mod/connect.php:92 ../../mod/connect.php:113
+msgid ""
+"By continuing, I certify that I have complied with any instructions provided"
+" on this page."
+msgstr "Continuando dichiaro di aver seguito tutte le indicazioni e le istruzioni fornite in questa pagina."
-#: ../../mod/regmod.php:12
-msgid "Please login."
-msgstr "Accedi."
+#: ../../mod/connect.php:101
+msgid "(No specific instructions have been provided by the channel owner.)"
+msgstr "(Il gestore del canale non ha fornito istruzioni specifiche)"
-#: ../../mod/cloud.php:126
-msgid "Red Matrix - Guests: Username: {your email address}, Password: +++"
-msgstr "Accesso a RedMatrix. Inserisci l'email con cui sei registrato e la password."
+#: ../../mod/connect.php:109
+msgid "Restricted or Premium Channel"
+msgstr "Canale premium - con restrizioni"
#: ../../mod/removeme.php:29
msgid ""
@@ -4868,86 +5350,68 @@ msgstr "Inserisci l'indirizzo del tuo canale (ad esempio lucia@esempio.com)"
msgid "Authenticate"
msgstr "Autenticazione"
-#: ../../mod/connect.php:55 ../../mod/connect.php:103
-msgid "Continue"
-msgstr "Continua"
-
-#: ../../mod/connect.php:84
-msgid "Premium Channel Setup"
-msgstr "Canale premium - installazione"
-
-#: ../../mod/connect.php:86
-msgid "Enable premium channel connection restrictions"
-msgstr "Abilita le restrizioni del canale premium"
-
-#: ../../mod/connect.php:87
-msgid ""
-"Please enter your restrictions or conditions, such as paypal receipt, usage "
-"guidelines, etc."
-msgstr "Scrivi le condizioni d'uso e le restrizioni di questo canale, come per esempio le linee guida o il sistema di pagamento ecc."
-
-#: ../../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 "Prima di connetterti a questo canale è necessario che tu accetti le seguenti condizioni:"
+#: ../../mod/like.php:15
+msgid "Like/Dislike"
+msgstr "Mi piace/Non mi piace"
-#: ../../mod/connect.php:90
-msgid ""
-"Potential connections will then see the following text before proceeding:"
-msgstr "Il testo seguente comparirà a chi vorrà connettersi:"
+#: ../../mod/like.php:20
+msgid "This action is restricted to members."
+msgstr "Questa funzionalità è riservata agli iscritti."
-#: ../../mod/connect.php:91 ../../mod/connect.php:112
+#: ../../mod/like.php:21
msgid ""
-"By continuing, I certify that I have complied with any instructions provided"
-" on this page."
-msgstr "Continuando dichiaro di aver seguito tutte le indicazioni e le istruzioni fornite in questa pagina."
+"Please <a href=\"rmagic\">login with your RedMatrix ID</a> or <a "
+"href=\"register\">register as a new RedMatrix member</a> to continue."
+msgstr "Per favore <a href=\"rmagic\">accedi con il tuo identificativo RedMatrix</a> o <a href=\"register\">registrati su RedMatrix</a> per continuare."
-#: ../../mod/connect.php:100
-msgid "(No specific instructions have been provided by the channel owner.)"
-msgstr "(Il gestore del canale non ha fornito istruzioni specifiche)"
+#: ../../mod/like.php:77 ../../mod/like.php:104 ../../mod/like.php:142
+msgid "Invalid request."
+msgstr "Richiesta non valida."
-#: ../../mod/connect.php:108
-msgid "Restricted or Premium Channel"
-msgstr "Canale premium - con restrizioni"
+#: ../../mod/like.php:119
+msgid "thing"
+msgstr "oggetto"
-#: ../../mod/network.php:79
-msgid "No such group"
-msgstr "Impossibile trovare l'insieme"
+#: ../../mod/like.php:165
+msgid "Channel unavailable."
+msgstr "Canale non trovato."
-#: ../../mod/network.php:118
-msgid "Search Results For:"
-msgstr "Cerca risultati con:"
+#: ../../mod/like.php:204
+msgid "Previous action reversed."
+msgstr "Il comando precedente è stato annullato."
-#: ../../mod/network.php:172
-msgid "Collection is empty"
-msgstr "L'insieme di canali è vuoto"
+#: ../../mod/like.php:422
+msgid "Action completed."
+msgstr "Comando completato."
-#: ../../mod/network.php:180
-msgid "Collection: "
-msgstr "Insieme:"
+#: ../../mod/like.php:423
+msgid "Thank you."
+msgstr "Grazie."
-#: ../../mod/network.php:193
-msgid "Connection: "
-msgstr "Connessione:"
+#: ../../mod/post.php:229
+msgid ""
+"Remote authentication blocked. You are logged into this site locally. Please"
+" logout and retry."
+msgstr "L'autenticazione magica dal tuo sito non è disponibile. Hai accesso solamente a questo sito. Puoi provare a disconnetterti per tentare di nuovo."
-#: ../../mod/network.php:196
-msgid "Invalid connection."
-msgstr "Connessione non valida."
+#: ../../mod/post.php:261 ../../mod/openid.php:72 ../../mod/openid.php:180
+#, php-format
+msgid "Welcome %s. Remote authentication successful."
+msgstr "Ciao %s. L'autenticazione magica è avvenuta con successo."
#: ../../mod/connections.php:37 ../../mod/connedit.php:64
msgid "Could not access contact record."
msgstr "Non è possibile accedere alle informazioni sul contatto."
-#: ../../mod/connections.php:51 ../../mod/connedit.php:78
+#: ../../mod/connections.php:51 ../../mod/connedit.php:86
msgid "Could not locate selected profile."
msgstr "Non riesco a trovare il profilo selezionato."
-#: ../../mod/connections.php:94 ../../mod/connedit.php:132
+#: ../../mod/connections.php:94 ../../mod/connedit.php:140
msgid "Connection updated."
msgstr "Contatto aggiornato."
-#: ../../mod/connections.php:96 ../../mod/connedit.php:134
+#: ../../mod/connections.php:96 ../../mod/connedit.php:142
msgid "Failed to update connection record."
msgstr "Impossibile aggiornare le informazioni del contatto."
@@ -5017,257 +5481,258 @@ msgid "%1$s [%2$s]"
msgstr "%1$s [%2$s]"
#: ../../mod/connections.php:372
-msgid "Edit contact"
+msgid "Edit connection"
msgstr "Modifica il contatto"
-#: ../../mod/connections.php:393
+#: ../../mod/connections.php:410
msgid "Search your connections"
msgstr "Cerca tra i contatti"
-#: ../../mod/connections.php:394
+#: ../../mod/connections.php:411
msgid "Finding: "
msgstr "Ricerca: "
+#: ../../mod/openid.php:26
+msgid "OpenID protocol error. No ID returned."
+msgstr "Errore del protocollo OpenID. Nessun ID ricevuto in risposta."
+
#: ../../mod/rpost.php:97 ../../mod/editpost.php:42
msgid "Edit post"
msgstr "Modifica articolo"
-#: ../../mod/connedit.php:181
+#: ../../mod/connedit.php:189
msgid "is now connected to"
-msgstr "adesso è in contatto con"
+msgstr "ha come nuovo contatto"
-#: ../../mod/connedit.php:274
+#: ../../mod/connedit.php:310
msgid "Could not access address book record."
msgstr "Impossibile accedere alle informazioni della rubrica."
-#: ../../mod/connedit.php:288
+#: ../../mod/connedit.php:324
msgid "Refresh failed - channel is currently unavailable."
msgstr "Il canale non è disponibile - impossibile aggiornare."
-#: ../../mod/connedit.php:295
+#: ../../mod/connedit.php:331
msgid "Channel has been unblocked"
msgstr "Il canale è stato sbloccato"
-#: ../../mod/connedit.php:296
+#: ../../mod/connedit.php:332
msgid "Channel has been blocked"
msgstr "Il canale è stato bloccato"
-#: ../../mod/connedit.php:300 ../../mod/connedit.php:312
-#: ../../mod/connedit.php:324 ../../mod/connedit.php:336
-#: ../../mod/connedit.php:352
+#: ../../mod/connedit.php:336 ../../mod/connedit.php:348
+#: ../../mod/connedit.php:360 ../../mod/connedit.php:372
+#: ../../mod/connedit.php:388
msgid "Unable to set address book parameters."
msgstr "Impossibile impostare i parametri della rubrica."
-#: ../../mod/connedit.php:307
+#: ../../mod/connedit.php:343
msgid "Channel has been unignored"
msgstr "Il canale non sarà più ignorato"
-#: ../../mod/connedit.php:308
+#: ../../mod/connedit.php:344
msgid "Channel has been ignored"
msgstr "Il canale sarà ignorato"
-#: ../../mod/connedit.php:319
+#: ../../mod/connedit.php:355
msgid "Channel has been unarchived"
msgstr "Il canale non è più archiviato"
-#: ../../mod/connedit.php:320
+#: ../../mod/connedit.php:356
msgid "Channel has been archived"
msgstr "Il canale è stato archiviato"
-#: ../../mod/connedit.php:331
+#: ../../mod/connedit.php:367
msgid "Channel has been unhidden"
msgstr "Il canale non è più nascosto"
-#: ../../mod/connedit.php:332
+#: ../../mod/connedit.php:368
msgid "Channel has been hidden"
msgstr "Il canale è stato nascosto"
-#: ../../mod/connedit.php:347
+#: ../../mod/connedit.php:383
msgid "Channel has been approved"
msgstr "Il canale è stato approvato"
-#: ../../mod/connedit.php:348
+#: ../../mod/connedit.php:384
msgid "Channel has been unapproved"
msgstr "Il canale non è più approvato"
-#: ../../mod/connedit.php:376
+#: ../../mod/connedit.php:412
msgid "Connection has been removed."
msgstr "Il contatto è stato rimosso."
-#: ../../mod/connedit.php:396
+#: ../../mod/connedit.php:432
#, php-format
msgid "View %s's profile"
msgstr "Guarda il profilo di %s"
-#: ../../mod/connedit.php:400
+#: ../../mod/connedit.php:436
msgid "Refresh Permissions"
msgstr "Aggiorna i permessi"
-#: ../../mod/connedit.php:403
+#: ../../mod/connedit.php:439
msgid "Fetch updated permissions"
msgstr "Scarica i permessi aggiornati"
-#: ../../mod/connedit.php:407
+#: ../../mod/connedit.php:443
msgid "Recent Activity"
msgstr "Attività recenti"
-#: ../../mod/connedit.php:410
+#: ../../mod/connedit.php:446
msgid "View recent posts and comments"
msgstr "Leggi i post recenti e i commenti"
-#: ../../mod/connedit.php:414 ../../mod/connedit.php:557
+#: ../../mod/connedit.php:450 ../../mod/connedit.php:595
#: ../../mod/admin.php:732
msgid "Unblock"
msgstr "Sblocca"
-#: ../../mod/connedit.php:414 ../../mod/connedit.php:557
+#: ../../mod/connedit.php:450 ../../mod/connedit.php:595
#: ../../mod/admin.php:731
msgid "Block"
msgstr "Blocca"
-#: ../../mod/connedit.php:417
+#: ../../mod/connedit.php:453
msgid "Block or Unblock this connection"
msgstr "Per bloccare o meno questo contatto"
-#: ../../mod/connedit.php:421 ../../mod/connedit.php:558
+#: ../../mod/connedit.php:457 ../../mod/connedit.php:596
msgid "Unignore"
msgstr "Non ignorare"
-#: ../../mod/connedit.php:421 ../../mod/connedit.php:558
+#: ../../mod/connedit.php:457 ../../mod/connedit.php:596
#: ../../mod/notifications.php:51
msgid "Ignore"
msgstr "Ignora"
-#: ../../mod/connedit.php:424
+#: ../../mod/connedit.php:460
msgid "Ignore or Unignore this connection"
msgstr "Per ignorare o meno questo contatto"
-#: ../../mod/connedit.php:427
+#: ../../mod/connedit.php:463
msgid "Unarchive"
msgstr "Non archiviare"
-#: ../../mod/connedit.php:427
+#: ../../mod/connedit.php:463
msgid "Archive"
msgstr "Archivia"
-#: ../../mod/connedit.php:430
+#: ../../mod/connedit.php:466
msgid "Archive or Unarchive this connection"
msgstr "Per archiviare o meno questo contatto"
-#: ../../mod/connedit.php:433
+#: ../../mod/connedit.php:469
msgid "Unhide"
msgstr "Non nascondere"
-#: ../../mod/connedit.php:433
+#: ../../mod/connedit.php:469
msgid "Hide"
msgstr "Nascondi"
-#: ../../mod/connedit.php:436
+#: ../../mod/connedit.php:472
msgid "Hide or Unhide this connection"
msgstr "Per nascondere o meno questo contatto"
-#: ../../mod/connedit.php:443
+#: ../../mod/connedit.php:479
msgid "Delete this connection"
msgstr "Elimina questo contatto"
-#: ../../mod/connedit.php:486 ../../mod/connedit.php:515
+#: ../../mod/connedit.php:523 ../../mod/connedit.php:553
msgid "Approve this connection"
msgstr "Approva questo contatto"
-#: ../../mod/connedit.php:486
+#: ../../mod/connedit.php:523
msgid "Accept connection to allow communication"
msgstr "Entra in contatto per poter comunicare"
-#: ../../mod/connedit.php:502
-msgid "Automatic Permissions Settings"
-msgstr "Permessi predefiniti"
-
-#: ../../mod/connedit.php:502
+#: ../../mod/connedit.php:539
#, php-format
msgid "Connections: settings for %s"
msgstr "Contatti: impostazioni per %s"
-#: ../../mod/connedit.php:506
-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 "Hai ricevuto da un canale una richiesta di entrare in contatto, se prosegui la richiesta sarà approvata e saranno applicati i permessi mostrati. Lascia questa pagina se non vuoi proseguire."
+#: ../../mod/connedit.php:540
+msgid "Apply these permissions automatically"
+msgstr "Applica automaticamente questi permessi"
-#: ../../mod/connedit.php:508
+#: ../../mod/connedit.php:544
+msgid "Apply the permissions indicated on this page to all new connections."
+msgstr "Applica i permessi indicati su questa pagina a tutti i nuovi contatti."
+
+#: ../../mod/connedit.php:546
msgid "Slide to adjust your degree of friendship"
msgstr "Trascina per restringere il grado di amicizia da mostrare"
-#: ../../mod/connedit.php:514
+#: ../../mod/connedit.php:552
msgid "inherited"
msgstr "derivato"
-#: ../../mod/connedit.php:516
+#: ../../mod/connedit.php:554
msgid "Connection has no individual permissions!"
msgstr "Non hai assegnato permessi individuali a questo contatto!"
-#: ../../mod/connedit.php:517
+#: ../../mod/connedit.php:555
msgid ""
"This may be appropriate based on your <a href=\"settings\">privacy "
"settings</a>, though you may wish to review the \"Advanced Permissions\"."
msgstr "Questo corrisponde alle tue <a href='settings'>impostazioni di privacy</a>, ma puoi anche dare un'occhiata ai 'Permessi avanzati' per opzioni più dettagliate."
-#: ../../mod/connedit.php:519
+#: ../../mod/connedit.php:557
msgid "Profile Visibility"
msgstr "Visibilità del profilo"
-#: ../../mod/connedit.php:520
+#: ../../mod/connedit.php:558
#, php-format
msgid ""
"Please choose the profile you would like to display to %s when viewing your "
"profile securely."
msgstr "Seleziona il profilo che vuoi mostrare a %s quando visita il tuo profilo in modo sicuro."
-#: ../../mod/connedit.php:521
+#: ../../mod/connedit.php:559
msgid "Contact Information / Notes"
msgstr "Informazioni e annotazioni sul contatto"
-#: ../../mod/connedit.php:522
+#: ../../mod/connedit.php:560
msgid "Edit contact notes"
msgstr "Modifica le informazioni sul contatto"
-#: ../../mod/connedit.php:524
+#: ../../mod/connedit.php:562
msgid "Their Settings"
msgstr "Permessi concessi a te"
-#: ../../mod/connedit.php:525
+#: ../../mod/connedit.php:563
msgid "My Settings"
msgstr "I permessi che concedo"
-#: ../../mod/connedit.php:527
+#: ../../mod/connedit.php:565
msgid "Clear/Disable Automatic Permissions"
msgstr "Rimuovi/disabilita i permessi automatici"
-#: ../../mod/connedit.php:528
+#: ../../mod/connedit.php:566
msgid "Forum Members"
msgstr "Membro di un forum"
-#: ../../mod/connedit.php:529
+#: ../../mod/connedit.php:567
msgid "Soapbox"
msgstr "Comunicati e annunci"
-#: ../../mod/connedit.php:530
+#: ../../mod/connedit.php:568
msgid "Full Sharing (typical social network permissions)"
msgstr "Condivisione completa (permessi tipici dei social network)"
-#: ../../mod/connedit.php:531
+#: ../../mod/connedit.php:569
msgid "Cautious Sharing "
msgstr "Condivisione prudente"
-#: ../../mod/connedit.php:532
+#: ../../mod/connedit.php:570
msgid "Follow Only"
msgstr "Follower"
-#: ../../mod/connedit.php:533
+#: ../../mod/connedit.php:571
msgid "Individual Permissions"
msgstr "Permessi individuali"
-#: ../../mod/connedit.php:534
+#: ../../mod/connedit.php:572
msgid ""
"Some permissions may be inherited from your channel <a "
"href=\"settings\">privacy settings</a>, which have higher priority than "
@@ -5275,583 +5740,513 @@ msgid ""
"have no effect."
msgstr "I permessi nelle <a href=\"settings\">impostazioni di privacy</a> hanno priorità su quelli mostrati in questa pagina. Non avrà alcun effetto cambiarli qui, se sono indicati come derivati."
-#: ../../mod/connedit.php:535
+#: ../../mod/connedit.php:573
msgid "Advanced Permissions"
msgstr "Permessi avanzati"
-#: ../../mod/connedit.php:536
+#: ../../mod/connedit.php:574
msgid "Simple Permissions (select one and submit)"
msgstr "Permessi semplificati (seleziona e salva)"
-#: ../../mod/connedit.php:540
+#: ../../mod/connedit.php:578
#, php-format
msgid "Visit %s's profile - %s"
msgstr "Guarda il profilo di %s - %s"
-#: ../../mod/connedit.php:541
+#: ../../mod/connedit.php:579
msgid "Block/Unblock contact"
msgstr "Blocca/sblocca contatto"
-#: ../../mod/connedit.php:542
+#: ../../mod/connedit.php:580
msgid "Ignore contact"
msgstr "Ignora il contatto"
-#: ../../mod/connedit.php:543
+#: ../../mod/connedit.php:581
msgid "Repair URL settings"
msgstr "Ripara le impostazioni URL"
-#: ../../mod/connedit.php:544
+#: ../../mod/connedit.php:582
msgid "View conversations"
msgstr "Leggi le conversazioni"
-#: ../../mod/connedit.php:546
+#: ../../mod/connedit.php:584
msgid "Delete contact"
msgstr "Elimina contatto"
-#: ../../mod/connedit.php:549
+#: ../../mod/connedit.php:587
msgid "Last update:"
msgstr "Ultimo aggiornamento:"
-#: ../../mod/connedit.php:551
+#: ../../mod/connedit.php:589
msgid "Update public posts"
msgstr "Aggiorna gli articoli pubblici"
-#: ../../mod/connedit.php:553
+#: ../../mod/connedit.php:591
msgid "Update now"
msgstr "Aggiorna adesso"
-#: ../../mod/connedit.php:559
+#: ../../mod/connedit.php:597
msgid "Currently blocked"
msgstr "Attualmente bloccato"
-#: ../../mod/connedit.php:560
+#: ../../mod/connedit.php:598
msgid "Currently ignored"
msgstr "Attualmente ignorato"
-#: ../../mod/connedit.php:561
+#: ../../mod/connedit.php:599
msgid "Currently archived"
msgstr "Attualmente archiviato"
-#: ../../mod/connedit.php:562
+#: ../../mod/connedit.php:600
msgid "Currently pending"
msgstr "Attualmente da approvare"
-#: ../../mod/connedit.php:563
+#: ../../mod/connedit.php:601
msgid "Hide this contact from others"
msgstr "Nascondi questo contatto agli altri"
-#: ../../mod/connedit.php:563
+#: ../../mod/connedit.php:601
msgid ""
"Replies/likes to your public posts <strong>may</strong> still be visible"
msgstr "Le risposte ai tuoi articoli pubblici <strong>potrebbero</strong> restare comunque visibili"
-#: ../../mod/delegate.php:95
-msgid "No potential page delegates located."
-msgstr "Impossibile trovare delegati per questa pagina."
+#: ../../mod/thing.php:96
+msgid "Thing updated"
+msgstr "L'oggetto è stato aggiornato"
-#: ../../mod/delegate.php:121
-msgid "Delegate Page Management"
-msgstr "Gestione delegati per la pagina"
+#: ../../mod/thing.php:156
+msgid "Object store: failed"
+msgstr "Impossibile memorizzare l'oggetto."
-#: ../../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 "I Delegati sono in grando di gestire tutti gli aspetti di questa pagina, tranne per i settaggi di base dell'account. Non delegare il tuo account personale a nessuno di cui non ti fidi ciecamente."
+#: ../../mod/thing.php:160
+msgid "Thing added"
+msgstr "L'oggetto è stato aggiunto"
-#: ../../mod/delegate.php:124
-msgid "Existing Page Managers"
-msgstr "Gestori attuali della pagina"
+#: ../../mod/thing.php:180
+#, php-format
+msgid "OBJ: %1$s %2$s %3$s"
+msgstr "OBJ: %1$s %2$s %3$s"
-#: ../../mod/delegate.php:126
-msgid "Existing Page Delegates"
-msgstr "Delegati attuali della pagina"
+#: ../../mod/thing.php:232
+msgid "Show Thing"
+msgstr "Mostra l'oggetto"
-#: ../../mod/delegate.php:128
-msgid "Potential Delegates"
-msgstr "Delegati potenziali"
+#: ../../mod/thing.php:239
+msgid "item not found."
+msgstr "non trovato."
-#: ../../mod/delegate.php:130 ../../mod/photos.php:912 ../../mod/tagrm.php:93
-msgid "Remove"
-msgstr "Rimuovi"
+#: ../../mod/thing.php:270
+msgid "Edit Thing"
+msgstr "Modifica l'oggetto"
-#: ../../mod/delegate.php:131
-msgid "Add"
-msgstr "Aggiungi"
+#: ../../mod/thing.php:272 ../../mod/thing.php:319
+msgid "Select a profile"
+msgstr "Scegli un profilo"
-#: ../../mod/delegate.php:132
-msgid "No entries."
-msgstr "Nessun risultato."
+#: ../../mod/thing.php:276 ../../mod/thing.php:322
+msgid "Post an activity"
+msgstr "Pubblica un'attività"
-#: ../../mod/search.php:13 ../../mod/directory.php:15
-#: ../../mod/dirprofile.php:9 ../../mod/display.php:9 ../../mod/photos.php:443
-#: ../../mod/viewconnections.php:17
-msgid "Public access denied."
-msgstr "Accesso pubblico negato."
+#: ../../mod/thing.php:276 ../../mod/thing.php:322
+msgid "Only sends to viewers of the applicable profile"
+msgstr "Invia solo a chi segue il relativo canale"
-#: ../../mod/directory.php:146 ../../mod/dirprofile.php:95
-msgid "Gender: "
-msgstr "Sesso:"
+#: ../../mod/thing.php:278 ../../mod/thing.php:324
+msgid "Name of thing e.g. something"
+msgstr "Nome dell'oggetto"
-#: ../../mod/directory.php:223
-msgid "Finding:"
-msgstr "Ricerca:"
+#: ../../mod/thing.php:280 ../../mod/thing.php:325
+msgid "URL of thing (optional)"
+msgstr "Indirizzo web dell'oggetto (opzionale)"
-#: ../../mod/directory.php:244
-msgid "No entries (some entries may be hidden)."
-msgstr "Nessun risultato (qualcosa potrebbe essere nascosto)."
+#: ../../mod/thing.php:282 ../../mod/thing.php:326
+msgid "URL for photo of thing (optional)"
+msgstr "Indirizzo di un'immagine dell'oggetto (facoltativo)"
-#: ../../mod/dirprofile.php:108
-msgid "Status: "
-msgstr "Stato:"
+#: ../../mod/thing.php:317
+msgid "Add Thing to your Profile"
+msgstr "Aggiungi l'oggetto al tuo profilo"
-#: ../../mod/dirprofile.php:109
-msgid "Sexual Preference: "
-msgstr "Preferenza sessuale:"
+#: ../../mod/lostpass.php:15
+msgid "No valid account found."
+msgstr "Nessun account valido trovato."
-#: ../../mod/dirprofile.php:111
-msgid "Homepage: "
-msgstr "Homepage:"
+#: ../../mod/lostpass.php:29
+msgid "Password reset request issued. Check your email."
+msgstr "La richiesta per reimpostare la password è stata inviata. Controlla la tua email."
-#: ../../mod/dirprofile.php:112
-msgid "Hometown: "
-msgstr "Città dove vivo:"
+#: ../../mod/lostpass.php:35 ../../mod/lostpass.php:102
+#, php-format
+msgid "Site Member (%s)"
+msgstr "Utente del sito (%s)"
-#: ../../mod/dirprofile.php:114
-msgid "About: "
-msgstr "Informazioni:"
+#: ../../mod/lostpass.php:40
+#, php-format
+msgid "Password reset requested at %s"
+msgstr "È stato richiesto di reimpostare password su %s"
-#: ../../mod/dirprofile.php:162
-msgid "Keywords: "
-msgstr "Parole chiave:"
+#: ../../mod/lostpass.php:63
+msgid ""
+"Request could not be verified. (You may have previously submitted it.) "
+"Password reset failed."
+msgstr "La richiesta non può essere verificata (potresti averla già usata precedentemente). La password non sarà reimpostata."
-#: ../../mod/dirsearch.php:21
-msgid "This site is not a directory server"
-msgstr "Questo sito non fornisce l'elenco generale dei canali"
+#: ../../mod/lostpass.php:85 ../../boot.php:1537
+msgid "Password Reset"
+msgstr "Reimposta la password"
-#: ../../mod/home.php:81
-msgid "Red Matrix - &quot;The Network&quot;"
-msgstr "RedMatrix - &quot;La Rete&quot;"
+#: ../../mod/lostpass.php:86
+msgid "Your password has been reset as requested."
+msgstr "La password è stata reimpostata come richiesto."
-#: ../../mod/home.php:94
-#, php-format
-msgid "Welcome to %s"
-msgstr "%s ti dà il benvenuto"
+#: ../../mod/lostpass.php:87
+msgid "Your new password is"
+msgstr "La tua nuova password è"
-#: ../../mod/setup.php:162
-msgid "Red Matrix Server - Setup"
-msgstr "RedMatrix Server - Installazione"
+#: ../../mod/lostpass.php:88
+msgid "Save or copy your new password - and then"
+msgstr "Salva o copia la tua nuova password, quindi"
-#: ../../mod/setup.php:168
-msgid "Could not connect to database."
-msgstr " Impossibile connettersi al database."
+#: ../../mod/lostpass.php:89
+msgid "click here to login"
+msgstr "clicca qui per accedere"
-#: ../../mod/setup.php:172
+#: ../../mod/lostpass.php:90
msgid ""
-"Could not connect to specified site URL. Possible SSL certificate or DNS "
-"issue."
-msgstr "Non è possibile raggiungere l'indirizzo del sito specificato. Potrebbe essere un problema di SSL o DNS."
+"Your password may be changed from the <em>Settings</em> page after "
+"successful login."
+msgstr "Puoi cambiare la tua password dalla pagina delle <em>Impostazioni</em> dopo aver effettuato l'accesso."
-#: ../../mod/setup.php:179
-msgid "Could not create table."
-msgstr "Impossibile creare le tabelle."
+#: ../../mod/lostpass.php:107
+#, php-format
+msgid "Your password has changed at %s"
+msgstr "La tua password su %s è cambiata"
-#: ../../mod/setup.php:185
-msgid "Your site database has been installed."
-msgstr "Il database del sito è stato installato."
+#: ../../mod/lostpass.php:122
+msgid "Forgot your Password?"
+msgstr "Hai dimenticato la password?"
-#: ../../mod/setup.php:190
+#: ../../mod/lostpass.php:123
msgid ""
-"You may need to import the file \"install/database.sql\" manually using "
-"phpmyadmin or mysql."
-msgstr "Potresti dover importare il file 'install/database.sql' manualmente usando phpmyadmin o mysql."
-
-#: ../../mod/setup.php:191 ../../mod/setup.php:260 ../../mod/setup.php:655
-msgid "Please see the file \"install/INSTALL.txt\"."
-msgstr "Leggi il file 'install/INSTALL.txt'."
-
-#: ../../mod/setup.php:257
-msgid "System check"
-msgstr "Verifica del sistema"
+"Enter your email address and submit to have your password reset. Then check "
+"your email for further instructions."
+msgstr "Inserisci il tuo indirizzo email per reimpostare la password. Dopo aver inviato la richiesta, controlla l'email e troverai le istruzioni per continuare."
-#: ../../mod/setup.php:261 ../../mod/events.php:399
-msgid "Next"
-msgstr "Successivo"
+#: ../../mod/lostpass.php:124
+msgid "Email Address"
+msgstr "Indirizzo email"
-#: ../../mod/setup.php:262
-msgid "Check again"
-msgstr "Verifica di nuovo"
+#: ../../mod/lostpass.php:125
+msgid "Reset"
+msgstr "Reimposta"
-#: ../../mod/setup.php:284
-msgid "Database connection"
-msgstr "Connessione al database"
+#: ../../mod/bookmarks.php:38
+msgid "Bookmark added"
+msgstr "Segnalibro aggiunto"
-#: ../../mod/setup.php:285
-msgid ""
-"In order to install Red Matrix we need to know how to connect to your "
-"database."
-msgstr "Per installare RedMatrix è necessario conoscere i parametri di connessione al database."
+#: ../../mod/bookmarks.php:60
+msgid "My Bookmarks"
+msgstr "I miei segnalibri"
-#: ../../mod/setup.php:286
-msgid ""
-"Please contact your hosting provider or site administrator if you have "
-"questions about these settings."
-msgstr "Contatta il tuo fornitore di hosting o l'amministratore del sito se hai domande su queste impostazioni."
+#: ../../mod/bookmarks.php:71
+msgid "My Connections Bookmarks"
+msgstr "I segnalibri dei miei contatti"
-#: ../../mod/setup.php:287
-msgid ""
-"The database you specify below should already exist. If it does not, please "
-"create it before continuing."
-msgstr "Il database deve già esistere. Se non esiste, crealo prima di continuare."
+#: ../../mod/dirsearch.php:21
+msgid "This site is not a directory server"
+msgstr "Questo sito non è un server di elenchi pubblici"
-#: ../../mod/setup.php:291
-msgid "Database Server Name"
-msgstr "Server del database"
+#: ../../mod/cloud.php:130
+msgid "RedMatrix - Guests: Username: {your email address}, Password: +++"
+msgstr "Accesso a Red Matrix. {Inserisci l'email con cui sei registrato e la password.}"
-#: ../../mod/setup.php:291
-msgid "Default is localhost"
-msgstr "'localhost' è il predefinito"
+#: ../../mod/profiles.php:18 ../../mod/profiles.php:165
+#: ../../mod/profiles.php:222 ../../mod/profiles.php:565
+msgid "Profile not found."
+msgstr "Profilo non trovato."
-#: ../../mod/setup.php:292
-msgid "Database Port"
-msgstr "Port del database"
+#: ../../mod/profiles.php:38
+msgid "Profile deleted."
+msgstr "Profilo eliminato."
-#: ../../mod/setup.php:292
-msgid "Communication port number - use 0 for default"
-msgstr "Scrivi 0 per usare il valore standard"
+#: ../../mod/profiles.php:56 ../../mod/profiles.php:92
+msgid "Profile-"
+msgstr "Profilo-"
-#: ../../mod/setup.php:293
-msgid "Database Login Name"
-msgstr "Utente database"
+#: ../../mod/profiles.php:77 ../../mod/profiles.php:120
+msgid "New profile created."
+msgstr "Il nuovo profilo è stato creato."
-#: ../../mod/setup.php:294
-msgid "Database Login Password"
-msgstr "Password utente database"
+#: ../../mod/profiles.php:98
+msgid "Profile unavailable to clone."
+msgstr "Impossibile duplicare il profilo."
-#: ../../mod/setup.php:295
-msgid "Database Name"
-msgstr "Nome database"
+#: ../../mod/profiles.php:136
+msgid "Profile unavailable to export."
+msgstr "Il profilo non è disponibile per l'export."
-#: ../../mod/setup.php:297 ../../mod/setup.php:339
-msgid "Site administrator email address"
-msgstr "Indirizzo email dell'amministratore del sito"
+#: ../../mod/profiles.php:232
+msgid "Profile Name is required."
+msgstr "Il nome del profilo è obbligatorio ."
-#: ../../mod/setup.php:297 ../../mod/setup.php:339
-msgid ""
-"Your account email address must match this in order to use the web admin "
-"panel."
-msgstr "Il tuo indirizzo email deve corrispondere a questo per poter usare il pannello di amministrazione web."
+#: ../../mod/profiles.php:378
+msgid "Marital Status"
+msgstr "Stato sentimentale"
-#: ../../mod/setup.php:298 ../../mod/setup.php:341
-msgid "Website URL"
-msgstr "URL completo del sito"
+#: ../../mod/profiles.php:382
+msgid "Romantic Partner"
+msgstr "Partner affettivo"
-#: ../../mod/setup.php:298 ../../mod/setup.php:341
-msgid "Please use SSL (https) URL if available."
-msgstr "Se disponibile, usa l'indirizzo SSL (https)."
+#: ../../mod/profiles.php:386
+msgid "Likes"
+msgstr "Mi piace"
-#: ../../mod/setup.php:301 ../../mod/setup.php:344
-msgid "Please select a default timezone for your website"
-msgstr "Seleziona il fuso orario predefinito per il tuo sito web"
+#: ../../mod/profiles.php:390
+msgid "Dislikes"
+msgstr "Non mi piace"
-#: ../../mod/setup.php:328
-msgid "Site settings"
-msgstr "Impostazioni del sito"
+#: ../../mod/profiles.php:394
+msgid "Work/Employment"
+msgstr "Lavoro/impiego"
-#: ../../mod/setup.php:387
-msgid "Could not find a command line version of PHP in the web server PATH."
-msgstr "Non è possibile trovare la versione di PHP da riga di comando nel PATH del server web"
+#: ../../mod/profiles.php:397
+msgid "Religion"
+msgstr "Religione"
-#: ../../mod/setup.php:388
-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 "Se non hai installata la versione di PHP da riga di comando non potrai attivare il polling in background tramite cron."
+#: ../../mod/profiles.php:401
+msgid "Political Views"
+msgstr "Orientamento politico"
-#: ../../mod/setup.php:392
-msgid "PHP executable path"
-msgstr "Path del comando PHP"
+#: ../../mod/profiles.php:405
+msgid "Gender"
+msgstr "Sesso"
-#: ../../mod/setup.php:392
-msgid ""
-"Enter full path to php executable. You can leave this blank to continue the "
-"installation."
-msgstr "Inserisci il percorso dell'eseguibile PHP. Puoi lasciarlo vuoto per continuare l'installazione."
+#: ../../mod/profiles.php:409
+msgid "Sexual Preference"
+msgstr "Preferenze sessuali"
-#: ../../mod/setup.php:397
-msgid "Command line PHP"
-msgstr "PHP da riga di comando"
+#: ../../mod/profiles.php:413
+msgid "Homepage"
+msgstr "Home page"
-#: ../../mod/setup.php:406
-msgid ""
-"The command line version of PHP on your system does not have "
-"\"register_argc_argv\" enabled."
-msgstr "La versione da riga di comando di PHP nel sistema non ha abilitato \"register_argc_argv\"."
+#: ../../mod/profiles.php:417
+msgid "Interests"
+msgstr "Interessi"
-#: ../../mod/setup.php:407
-msgid "This is required for message delivery to work."
-msgstr "E' necessario perché funzioni la consegna dei messaggi."
+#: ../../mod/profiles.php:421 ../../mod/admin.php:866
+msgid "Address"
+msgstr "Indirizzo"
-#: ../../mod/setup.php:409
-msgid "PHP register_argc_argv"
-msgstr "PHP register_argc_argv"
+#: ../../mod/profiles.php:511
+msgid "Profile updated."
+msgstr "Profilo aggiornato."
-#: ../../mod/setup.php:430
-msgid ""
-"Error: the \"openssl_pkey_new\" function on this system is not able to "
-"generate encryption keys"
-msgstr "Errore: la funzione \"openssl_pkey_new\" su questo sistema non è in grado di generare le chiavi di criptazione"
+#: ../../mod/profiles.php:590
+msgid "Hide your contact/friend list from viewers of this profile?"
+msgstr "Nascondi la tua lista di contatti/amici ai visitatori di questo profilo?"
-#: ../../mod/setup.php:431
-msgid ""
-"If running under Windows, please see "
-"\"http://www.php.net/manual/en/openssl.installation.php\"."
-msgstr "Se stai usando un server windows, guarda \"http://www.php.net/manual/en/openssl.installation.php\"."
+#: ../../mod/profiles.php:632
+msgid "Edit Profile Details"
+msgstr "Modifica i dettagli del profilo"
-#: ../../mod/setup.php:433
-msgid "Generate encryption keys"
-msgstr "Genera chiavi di criptazione"
+#: ../../mod/profiles.php:634
+msgid "View this profile"
+msgstr "Guarda questo profilo"
-#: ../../mod/setup.php:440
-msgid "libCurl PHP module"
-msgstr "modulo PHP libCurl"
+#: ../../mod/profiles.php:636
+msgid "Change Profile Photo"
+msgstr "Cambia la foto del profilo"
-#: ../../mod/setup.php:441
-msgid "GD graphics PHP module"
-msgstr "modulo PHP GD graphics"
+#: ../../mod/profiles.php:637
+msgid "Create a new profile using these settings"
+msgstr "Crea un nuovo profilo usando queste impostazioni"
-#: ../../mod/setup.php:442
-msgid "OpenSSL PHP module"
-msgstr "modulo PHP OpenSSL"
+#: ../../mod/profiles.php:638
+msgid "Clone this profile"
+msgstr "Clona questo profilo"
-#: ../../mod/setup.php:443
-msgid "mysqli PHP module"
-msgstr "modulo PHP mysqli"
+#: ../../mod/profiles.php:639
+msgid "Delete this profile"
+msgstr "Elimina questo profilo"
-#: ../../mod/setup.php:444
-msgid "mb_string PHP module"
-msgstr "modulo PHP mb_string"
+#: ../../mod/profiles.php:641
+msgid "Import profile from file"
+msgstr "Importa il profilo da un file"
-#: ../../mod/setup.php:445
-msgid "mcrypt PHP module"
-msgstr "modulo PHP mcrypt"
+#: ../../mod/profiles.php:642
+msgid "Export profile to file"
+msgstr "Esporta il profilo in un file"
-#: ../../mod/setup.php:450 ../../mod/setup.php:452
-msgid "Apache mod_rewrite module"
-msgstr "modulo Apache mod_rewrite"
+#: ../../mod/profiles.php:643
+msgid "Profile Name:"
+msgstr "Nome del profilo:"
-#: ../../mod/setup.php:450
-msgid ""
-"Error: Apache webserver mod-rewrite module is required but not installed."
-msgstr "Errore: il modulo mod-rewrite di Apache è richiesto ma non installato"
+#: ../../mod/profiles.php:644
+msgid "Your Full Name:"
+msgstr "Il tuo nome completo:"
-#: ../../mod/setup.php:456 ../../mod/setup.php:459
-msgid "proc_open"
-msgstr "proc_open"
+#: ../../mod/profiles.php:645
+msgid "Title/Description:"
+msgstr "Titolo/descrizione:"
-#: ../../mod/setup.php:456
-msgid ""
-"Error: proc_open is required but is either not installed or has been "
-"disabled in php.ini"
-msgstr "Errore: proc_open è richiesto ma non è installato o è disabilitato in php.ini"
+#: ../../mod/profiles.php:646
+msgid "Your Gender:"
+msgstr "Sesso:"
-#: ../../mod/setup.php:464
-msgid "Error: libCURL PHP module required but not installed."
-msgstr "Errore: il modulo libCURL di PHP è richiesto ma non installato."
+#: ../../mod/profiles.php:647
+msgid "Birthday :"
+msgstr "Compleanno:"
-#: ../../mod/setup.php:468
-msgid ""
-"Error: GD graphics PHP module with JPEG support required but not installed."
-msgstr "Errore: Il modulo GD graphics di PHP con supporto a JPEG è richiesto ma non installato."
+#: ../../mod/profiles.php:648
+msgid "Street Address:"
+msgstr "Indirizzo (via/piazza):"
-#: ../../mod/setup.php:472
-msgid "Error: openssl PHP module required but not installed."
-msgstr "Errore: il modulo openssl di PHP è richiesto ma non installato."
+#: ../../mod/profiles.php:649
+msgid "Locality/City:"
+msgstr "Località:"
-#: ../../mod/setup.php:476
-msgid "Error: mysqli PHP module required but not installed."
-msgstr "Errore: il modulo mysqli di PHP è richiesto ma non installato."
+#: ../../mod/profiles.php:650
+msgid "Postal/Zip Code:"
+msgstr "CAP:"
-#: ../../mod/setup.php:480
-msgid "Error: mb_string PHP module required but not installed."
-msgstr "Errore: il modulo PHP mb_string è richiesto ma non installato."
+#: ../../mod/profiles.php:651
+msgid "Country:"
+msgstr "Nazione:"
-#: ../../mod/setup.php:484
-msgid "Error: mcrypt PHP module required but not installed."
-msgstr "Errore: il modulo PHP mcrypt è richiesto ma non installato."
+#: ../../mod/profiles.php:652
+msgid "Region/State:"
+msgstr "Regione/stato:"
-#: ../../mod/setup.php:500
-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'installazione web deve poter creare un file chiamato \".htconfig.php\" nella cartella principale del tuo web server ma non è in grado di farlo."
+#: ../../mod/profiles.php:653
+msgid "<span class=\"heart\">&hearts;</span> Marital Status:"
+msgstr "<span class=\"heart\">&hearts;</span> Stato sentimentale:"
-#: ../../mod/setup.php:501
-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 "Spesso ciò è dovuto ai permessi di accesso al disco: il web server potrebbe non aver diritto di scrivere il file nella cartella, anche se tu puoi."
+#: ../../mod/profiles.php:654
+msgid "Who: (if applicable)"
+msgstr "Con chi: (se possibile)"
-#: ../../mod/setup.php:502
-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 "Alla fine di questa procedura ti sarà dato il testo da salvare in un file di nome .htconfig.php dentro la cartella principale di RedMatrix."
+#: ../../mod/profiles.php:655
+msgid "Examples: cathy123, Cathy Williams, cathy@example.com"
+msgstr "Per esempio: cathy123, Cathy Williams, cathy@example.com"
-#: ../../mod/setup.php:503
-msgid ""
-"You can alternatively skip this procedure and perform a manual installation."
-" Please see the file \"install/INSTALL.txt\" for instructions."
-msgstr "Puoi anche saltare questa procedura ed effettuare un'installazione manuale. Guarda il file 'install/INSTALL.txt' per le istruzioni."
+#: ../../mod/profiles.php:656
+msgid "Since [date]:"
+msgstr "dal [data]:"
-#: ../../mod/setup.php:506
-msgid ".htconfig.php is writable"
-msgstr ".htconfig.php è scrivibile"
+#: ../../mod/profiles.php:658
+msgid "Homepage URL:"
+msgstr "Indirizzo home page:"
-#: ../../mod/setup.php:516
-msgid ""
-"Red uses the Smarty3 template engine to render its web views. Smarty3 "
-"compiles templates to PHP to speed up rendering."
-msgstr "Red usa il sistema Smarty3 per costruire i suoi template grafici. Smarty3 è molto veloce perché compila i template delle pagine direttamente in PHP."
+#: ../../mod/profiles.php:661
+msgid "Religious Views:"
+msgstr "Orientamento religioso:"
-#: ../../mod/setup.php:517
-#, php-format
-msgid ""
-"In order to store these compiled templates, the web server needs to have "
-"write access to the directory %s under the Red top level folder."
-msgstr "Per poter memorizzare i template compilati, il web server deve avere accesso in scrittura a %s sotto la cartella di installazione di RedMatrix."
+#: ../../mod/profiles.php:662
+msgid "Keywords:"
+msgstr "Parole chiave, tag:"
-#: ../../mod/setup.php:518 ../../mod/setup.php:536
-msgid ""
-"Please ensure that the user that your web server runs as (e.g. www-data) has"
-" write access to this folder."
-msgstr "Assicurati che il tuo web server sia in esecuzione come un utente che ha diritto di scrittura su quella cartella (ad esempio www-data)."
+#: ../../mod/profiles.php:665
+msgid "Example: fishing photography software"
+msgstr "Per esempio: pesca fotografia programmazione"
-#: ../../mod/setup.php:519
-#, php-format
-msgid ""
-"Note: as a security measure, you should give the web server write access to "
-"%s only--not the template files (.tpl) that it contains."
-msgstr "Nota bene: come precauzione, dovresti dare i diritti di scrittura solamente su %s e non sui file template (.tpl) che contiene."
+#: ../../mod/profiles.php:666
+msgid "Used in directory listings"
+msgstr "Visibile nell'elenco pubblico di canali"
-#: ../../mod/setup.php:522
-#, php-format
-msgid "%s is writable"
-msgstr "%s è scrivibile"
+#: ../../mod/profiles.php:667
+msgid "Tell us about yourself..."
+msgstr "Raccontaci di te..."
-#: ../../mod/setup.php:535
-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 "RedMatrix usa un archivio per salvare i file caricati. Il server deve avere i diritti di scrittura sulla cartella dell'archivio che si trova dentro la cartella principale di RedMatrix"
+#: ../../mod/profiles.php:668
+msgid "Hobbies/Interests"
+msgstr "Hobby/interessi"
-#: ../../mod/setup.php:539
-msgid "store is writable"
-msgstr "l'archivio è scrivibile"
+#: ../../mod/profiles.php:669
+msgid "Contact information and Social Networks"
+msgstr "Contatti personali e i tuoi social network"
-#: ../../mod/setup.php:569
-msgid ""
-"SSL certificate cannot be validated. Fix certificate or disable https access"
-" to this site."
-msgstr "Il certificato SSL non può essere validato. Correggi l'errore o disabilita l'accesso https al sito."
+#: ../../mod/profiles.php:670
+msgid "My other channels"
+msgstr "I miei altri canali"
-#: ../../mod/setup.php:570
-msgid ""
-"If you have https access to your website or allow connections to TCP port "
-"443 (the https: port), you MUST use a browser-valid certificate. You MUST "
-"NOT use self-signed certificates!"
-msgstr "Se abiliti https per il tuo sito o permetti connessioni TCP su port 443 (quella di https), DEVI usare un certificato riconosciuto dai browser internet. NON DEVI usare certificati generati da te!"
+#: ../../mod/profiles.php:671
+msgid "Musical interests"
+msgstr "Interessi musicali"
-#: ../../mod/setup.php:571
-msgid ""
-"This restriction is incorporated because public posts from you may for "
-"example contain references to images on your own hub."
-msgstr "Questa restrizione è necessaria perché i tuoi post pubblici potrebbero contenere riferimenti a immagini sul tuo server."
+#: ../../mod/profiles.php:672
+msgid "Books, literature"
+msgstr "Libri, letteratura"
-#: ../../mod/setup.php:572
-msgid ""
-"If your certificate is not recognized, members of other sites (who may "
-"themselves have valid certificates) will get a warning message on their own "
-"site complaining about security issues."
-msgstr "Se il tuo certificato non è riconosciuto, gli utenti che ti seguono da altri siti (che avranno certificati validi) riceveranno gravi avvisi di sicurezza dal browser."
+#: ../../mod/profiles.php:673
+msgid "Television"
+msgstr "Televisione"
-#: ../../mod/setup.php:573
-msgid ""
-"This can cause usability issues elsewhere (not just on your own site) so we "
-"must insist on this requirement."
-msgstr "Ciò può creare problemi di usabilità molto gravi (non solo sul tuo sito), quindi dobbiamo insistere su questo punto."
+#: ../../mod/profiles.php:674
+msgid "Film/dance/culture/entertainment"
+msgstr "Film/danza/cultura/intrattenimento"
-#: ../../mod/setup.php:574
-msgid ""
-"Providers are available that issue free certificates which are browser-"
-"valid."
-msgstr "Eventualmente, considera che esistono provider che rilasciano certificati gratuiti riconosciuti dai browser."
+#: ../../mod/profiles.php:675
+msgid "Love/romance"
+msgstr "Amore"
-#: ../../mod/setup.php:576
-msgid "SSL certificate validation"
-msgstr "Validazione del certificato SSL"
+#: ../../mod/profiles.php:676
+msgid "Work/employment"
+msgstr "Lavoro/impiego"
-#: ../../mod/setup.php:582
-msgid ""
-"Url rewrite in .htaccess is not working. Check your server configuration."
-msgstr "In .htaccess la funzionalità url rewrite non funziona. Controlla la configurazione del server."
+#: ../../mod/profiles.php:677
+msgid "School/education"
+msgstr "Scuola/educazione"
-#: ../../mod/setup.php:584
-msgid "Url rewrite is working"
-msgstr "Url rewrite funziona correttamente"
+#: ../../mod/profiles.php:683
+msgid "This is your default profile."
+msgstr "Questo è il tuo profilo predefinito."
-#: ../../mod/setup.php:594
-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 "Il file di configurazione del database \".htconfig.php\" non puo' essere scritto. Usa il testo qui di seguito per creare questo file di configurazione nella cartella principale del tuo sito."
+#: ../../mod/profiles.php:694 ../../mod/directory.php:188
+msgid "Age: "
+msgstr "Età:"
-#: ../../mod/setup.php:618
-msgid "Errors encountered creating database tables."
-msgstr "La creazione delle tabelle del database ha generato errori."
+#: ../../mod/profiles.php:737
+msgid "Edit/Manage Profiles"
+msgstr "Modifica/gestisci i profili"
-#: ../../mod/setup.php:653
-msgid "<h1>What next</h1>"
-msgstr "<h1>I prossimi passi</h1>"
+#: ../../mod/profiles.php:738
+msgid "Add profile things"
+msgstr "Aggiungi oggetti al profilo"
-#: ../../mod/setup.php:654
-msgid ""
-"IMPORTANT: You will need to [manually] setup a scheduled task for the "
-"poller."
-msgstr "IMPORTANTE: Devi creare [manualmente] la pianificazione del polling."
+#: ../../mod/profiles.php:739
+msgid "Include desirable objects in your profile"
+msgstr "Aggiungi oggetti interessanti al tuo profilo"
-#: ../../mod/editblock.php:8 ../../mod/editblock.php:27
-#: ../../mod/editblock.php:53 ../../mod/editlayout.php:36
-#: ../../mod/editpost.php:20 ../../mod/editwebpage.php:32
+#: ../../mod/editblock.php:79 ../../mod/editblock.php:95
+#: ../../mod/editlayout.php:78 ../../mod/editpost.php:20
+#: ../../mod/editwebpage.php:77
msgid "Item not found"
msgstr "Elemento non trovato"
-#: ../../mod/editblock.php:77
+#: ../../mod/editblock.php:115
msgid "Edit Block"
msgstr "Modifica il riquadro"
-#: ../../mod/editblock.php:87
+#: ../../mod/editblock.php:125
msgid "Delete block?"
msgstr "Vuoi eliminare questo riquadro?"
-#: ../../mod/editblock.php:115 ../../mod/editlayout.php:110
-#: ../../mod/editpost.php:116 ../../mod/editwebpage.php:147
+#: ../../mod/editblock.php:147 ../../mod/editlayout.php:143
+#: ../../mod/editpost.php:116 ../../mod/editwebpage.php:178
msgid "Insert YouTube video"
msgstr "Inserisci video da YouTube"
-#: ../../mod/editblock.php:116 ../../mod/editlayout.php:111
-#: ../../mod/editpost.php:117 ../../mod/editwebpage.php:148
+#: ../../mod/editblock.php:148 ../../mod/editlayout.php:144
+#: ../../mod/editpost.php:117 ../../mod/editwebpage.php:179
msgid "Insert Vorbis [.ogg] video"
msgstr "Inserisci video Vorbis [.ogg]"
-#: ../../mod/editblock.php:117 ../../mod/editlayout.php:112
-#: ../../mod/editpost.php:118 ../../mod/editwebpage.php:149
+#: ../../mod/editblock.php:149 ../../mod/editlayout.php:145
+#: ../../mod/editpost.php:118 ../../mod/editwebpage.php:180
msgid "Insert Vorbis [.ogg] audio"
msgstr "Inserisci audio Vorbis [.ogg]"
-#: ../../mod/editblock.php:153
+#: ../../mod/editblock.php:183
msgid "Delete Block"
msgstr "Elimina il riquadro"
@@ -5871,19 +6266,19 @@ msgstr "Layout non trovato."
msgid "Module Name:"
msgstr "Nome del modulo:"
-#: ../../mod/pdledit.php:55 ../../mod/layouts.php:59
+#: ../../mod/pdledit.php:55 ../../mod/layouts.php:107
msgid "Layout Help"
msgstr "Guida al layout"
-#: ../../mod/editlayout.php:72
+#: ../../mod/editlayout.php:108
msgid "Edit Layout"
msgstr "Modifica il layout"
-#: ../../mod/editlayout.php:82
+#: ../../mod/editlayout.php:117
msgid "Delete layout?"
msgstr "Vuoi eliminare questo layout?"
-#: ../../mod/editlayout.php:146
+#: ../../mod/editlayout.php:178
msgid "Delete Layout"
msgstr "Elimina il layout"
@@ -5895,397 +6290,236 @@ msgstr "L'elemento non è modificabile"
msgid "Delete item?"
msgstr "Eliminare questo elemento?"
-#: ../../mod/editwebpage.php:106
+#: ../../mod/help.php:41 ../../mod/help.php:47 ../../mod/help.php:53
+msgid "Help:"
+msgstr "Guida:"
+
+#: ../../mod/help.php:67 ../../index.php:238
+msgid "Not Found"
+msgstr "Non disponibile"
+
+#: ../../mod/editwebpage.php:140
msgid "Edit Webpage"
msgstr "Modifica la pagina web"
-#: ../../mod/editwebpage.php:116
+#: ../../mod/editwebpage.php:150
msgid "Delete webpage?"
msgstr "Vuoi eliminare questa pagina web?"
-#: ../../mod/editwebpage.php:186
+#: ../../mod/editwebpage.php:215
msgid "Delete Webpage"
msgstr "Elimina la pagina web"
-#: ../../mod/siteinfo.php:57
-#, php-format
-msgid "Version %s"
-msgstr "Versione %s"
-
-#: ../../mod/siteinfo.php:76
-msgid "Installed plugins/addons/apps:"
-msgstr "App e componenti installati:"
-
-#: ../../mod/siteinfo.php:89
-msgid "No installed plugins/addons/apps"
-msgstr "Nessuna app o componente installato"
-
-#: ../../mod/siteinfo.php:97
-msgid "Red"
-msgstr "RedMatrix"
-
-#: ../../mod/siteinfo.php:98
-msgid ""
-"This is a hub of the Red Matrix - a global cooperative network of "
-"decentralized privacy enhanced websites."
-msgstr "Questo è un hub di RedMatrix - una rete cooperativa e decentralizzata di siti ad elevata privacy. "
-
-#: ../../mod/siteinfo.php:101
-msgid "Running at web location"
-msgstr "In esecuzione sull'indirizzo web"
+#: ../../mod/impel.php:33
+msgid "webpage"
+msgstr "pagina web"
-#: ../../mod/siteinfo.php:102
-msgid ""
-"Please visit <a href=\"http://getzot.com\">GetZot.com</a> to learn more "
-"about the Red Matrix."
-msgstr "Visita <a href=\"http://getzot.com\">GetZot.com</a> per scoprire il progetto RedMatrix."
+#: ../../mod/impel.php:38
+msgid "block"
+msgstr "riquadro"
-#: ../../mod/siteinfo.php:103
-msgid "Bug reports and issues: please visit"
-msgstr "Per segnalare bug e problemi: visita"
+#: ../../mod/impel.php:43
+msgid "layout"
+msgstr "layout"
-#: ../../mod/siteinfo.php:106
-msgid ""
-"Suggestions, praise, etc. - please email \"redmatrix\" at librelist - dot "
-"com"
-msgstr "Per consigli, ringraziamenti, ecc. - scrivi a \"redmatrix\" at librelist - dot com"
-
-#: ../../mod/siteinfo.php:108
-msgid "Site Administrators"
-msgstr "Amministratori del sito"
-
-#: ../../mod/photos.php:77
-msgid "Page owner information could not be retrieved."
-msgstr "Impossibile ottenere informazioni sul proprietario della pagina."
-
-#: ../../mod/photos.php:97
-msgid "Album not found."
-msgstr "Album non trovato."
-
-#: ../../mod/photos.php:119 ../../mod/photos.php:675
-msgid "Delete Album"
-msgstr "Elimina album"
-
-#: ../../mod/photos.php:159 ../../mod/photos.php:963
-msgid "Delete Photo"
-msgstr "Elimina foto"
-
-#: ../../mod/photos.php:453
-msgid "No photos selected"
-msgstr "Nessuna foto selezionata"
-
-#: ../../mod/photos.php:500
-msgid "Access to this item is restricted."
-msgstr "Questo elemento non è visibile a tutti."
-
-#: ../../mod/photos.php:574
+#: ../../mod/impel.php:117
#, php-format
-msgid "You have used %1$.2f Mbytes of %2$.2f Mbytes photo storage."
-msgstr "Hai usato %1$.2f Mb di %2$.2f Mb disponibili per le foto."
-
-#: ../../mod/photos.php:577
-#, php-format
-msgid "You have used %1$.2f Mbytes of photo storage."
-msgstr "Hai usato %1$.2f Mb di spazio per le foto."
-
-#: ../../mod/photos.php:596
-msgid "Upload Photos"
-msgstr "Carica foto"
+msgid "%s element installed"
+msgstr "%s elemento installato"
-#: ../../mod/photos.php:600 ../../mod/photos.php:670
-msgid "New album name: "
-msgstr "Nome del nuovo album: "
-
-#: ../../mod/photos.php:601
-msgid "or existing album name: "
-msgstr "o nome di un album esistente: "
-
-#: ../../mod/photos.php:602
-msgid "Do not show a status post for this upload"
-msgstr "Non creare un messaggio di stato per questo caricamento"
-
-#: ../../mod/photos.php:622
-msgid "Album name could not be decoded"
-msgstr "Non è stato possibile leggere il nome dell'album"
-
-#: ../../mod/photos.php:659 ../../mod/photos.php:681 ../../mod/photos.php:1135
-#: ../../mod/photos.php:1150
-msgid "Contact Photos"
-msgstr "Foto dei contatti"
-
-#: ../../mod/photos.php:685
-msgid "Edit Album"
-msgstr "Modifica album"
-
-#: ../../mod/photos.php:691
-msgid "Show Newest First"
-msgstr "Prima i più recenti"
-
-#: ../../mod/photos.php:693
-msgid "Show Oldest First"
-msgstr "Prima i più vecchi"
-
-#: ../../mod/photos.php:736 ../../mod/photos.php:1182
-msgid "View Photo"
-msgstr "Guarda la foto"
-
-#: ../../mod/photos.php:782
-msgid "Permission denied. Access to this item may be restricted."
-msgstr "Permesso negato. L'accesso a questo elemento può essere stato limitato."
-
-#: ../../mod/photos.php:784
-msgid "Photo not available"
-msgstr "Foto non disponibile"
-
-#: ../../mod/photos.php:844
-msgid "Use as profile photo"
-msgstr "Usa come foto del profilo"
-
-#: ../../mod/photos.php:868
-msgid "View Full Size"
-msgstr "Vedi nelle dimensioni originali"
-
-#: ../../mod/photos.php:946
-msgid "Edit photo"
-msgstr "Modifica la foto"
-
-#: ../../mod/photos.php:948
-msgid "Rotate CW (right)"
-msgstr "Ruota (senso orario)"
-
-#: ../../mod/photos.php:949
-msgid "Rotate CCW (left)"
-msgstr "Ruota (senso antiorario)"
-
-#: ../../mod/photos.php:952
-msgid "New album name"
-msgstr "Nuovo nome dell'album"
-
-#: ../../mod/photos.php:955
-msgid "Caption"
-msgstr "Titolo"
+#: ../../mod/profile_photo.php:108
+msgid "Image uploaded but image cropping failed."
+msgstr "L'immagine è stata caricata, ma il non è stato possibile ritagliarla."
-#: ../../mod/photos.php:957
-msgid "Add a Tag"
-msgstr "Aggiungi tag"
+#: ../../mod/profile_photo.php:161
+msgid "Image resize failed."
+msgstr "Il ridimensionamento dell'immagine è fallito."
-#: ../../mod/photos.php:960
+#: ../../mod/profile_photo.php:205
msgid ""
-"Example: @bob, @Barbara_Jensen, @jim@example.com, #California, #camping"
-msgstr "Per esempio: @luca, @Maria_Bianchi, @bob@example.com, #California, #camping"
-
-#: ../../mod/photos.php:1113
-msgid "In This Photo:"
-msgstr "In questa foto:"
-
-#: ../../mod/photos.php:1188
-msgid "View Album"
-msgstr "Guarda l'album"
-
-#: ../../mod/photos.php:1197
-msgid "Recent Photos"
-msgstr "Foto recenti"
-
-#: ../../mod/sources.php:32
-msgid "Failed to create source. No channel selected."
-msgstr "Impossibile creare la sorgente. Nessun canale selezionato."
-
-#: ../../mod/sources.php:45
-msgid "Source created."
-msgstr "Sorgente creata."
-
-#: ../../mod/sources.php:57
-msgid "Source updated."
-msgstr "Sorgente aggiornata."
-
-#: ../../mod/sources.php:82
-msgid "*"
-msgstr "*"
-
-#: ../../mod/sources.php:89
-msgid "Manage remote sources of content for your channel."
-msgstr "Gestisci le sorgenti dei contenuti del tuo canale."
-
-#: ../../mod/sources.php:90 ../../mod/sources.php:100
-msgid "New Source"
-msgstr "Nuova sorgente"
+"Shift-reload the page or clear browser cache if the new photo does not "
+"display immediately."
+msgstr "Ricarica la pagina con shift+F5 o cancella la cache del browser se la nuova foto non viene mostrata immediatamente."
-#: ../../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 "Importa nel tuo canale tutti o una parte dei contenuti dal canale seguente."
+#: ../../mod/profile_photo.php:232
+#, php-format
+msgid "Image exceeds size limit of %d"
+msgstr "La dimensione dell'immagine supera il limite di %d"
-#: ../../mod/sources.php:102 ../../mod/sources.php:134
-msgid "Only import content with these words (one per line)"
-msgstr "Importa solo i contenuti che hanno queste parole (una per riga)"
+#: ../../mod/profile_photo.php:241
+msgid "Unable to process image."
+msgstr "Impossibile elaborare l'immagine."
-#: ../../mod/sources.php:102 ../../mod/sources.php:134
-msgid "Leave blank to import all public content"
-msgstr "Lascia vuoto per importare tutti i contenuti pubblici"
+#: ../../mod/profile_photo.php:290 ../../mod/profile_photo.php:339
+msgid "Photo not available."
+msgstr "Foto non disponibile."
-#: ../../mod/sources.php:103 ../../mod/sources.php:137
-#: ../../mod/new_channel.php:110
-msgid "Channel Name"
-msgstr "Nome del canale"
+#: ../../mod/profile_photo.php:358
+msgid "Upload File:"
+msgstr "Carica un file:"
-#: ../../mod/sources.php:123 ../../mod/sources.php:150
-msgid "Source not found."
-msgstr "Sorgente non trovata."
+#: ../../mod/profile_photo.php:359
+msgid "Select a profile:"
+msgstr "Seleziona un profilo:"
-#: ../../mod/sources.php:130
-msgid "Edit Source"
-msgstr "Modifica la sorgente"
+#: ../../mod/profile_photo.php:360
+msgid "Upload Profile Photo"
+msgstr "Carica la foto del profilo"
-#: ../../mod/sources.php:131
-msgid "Delete Source"
-msgstr "Elimina la sorgente"
+#: ../../mod/profile_photo.php:365
+msgid "skip this step"
+msgstr "salta questo passaggio"
-#: ../../mod/sources.php:158
-msgid "Source removed"
-msgstr "Sorgente eliminata"
+#: ../../mod/profile_photo.php:365
+msgid "select a photo from your photo albums"
+msgstr "seleziona una foto dai tuoi album"
-#: ../../mod/sources.php:160
-msgid "Unable to remove source."
-msgstr "Impossibile rimuovere la sorgente."
+#: ../../mod/profile_photo.php:381
+msgid "Crop Image"
+msgstr "Ritaglia immagine"
-#: ../../mod/filer.php:49
-msgid "- select -"
-msgstr "- scegli -"
+#: ../../mod/profile_photo.php:382
+msgid "Please adjust the image cropping for optimum viewing."
+msgstr "Ritaglia l'immagine per migliorarne la visualizzazione."
-#: ../../mod/events.php:72
-msgid "Event title and start time are required."
-msgstr "Sono necessari il titolo e l'ora d'inizio dell'evento."
+#: ../../mod/profile_photo.php:384
+msgid "Done Editing"
+msgstr "Modifica terminata"
-#: ../../mod/events.php:86
-msgid "Event not found."
-msgstr "Evento non trovato."
+#: ../../mod/profile_photo.php:427
+msgid "Image uploaded successfully."
+msgstr "Immagine caricata con successo."
-#: ../../mod/events.php:329
-msgid "l, F j"
-msgstr "l j F"
+#: ../../mod/profile_photo.php:429
+msgid "Image upload failed."
+msgstr "Il caricamento dell'immagine è fallito."
-#: ../../mod/events.php:351
-msgid "Edit event"
-msgstr "Modifica l'evento"
+#: ../../mod/profile_photo.php:438
+#, php-format
+msgid "Image size reduction [%s] failed."
+msgstr "Il ridimensionamento del'immagine [%s] è fallito."
-#: ../../mod/events.php:397
-msgid "Create New Event"
-msgstr "Crea un nuovo evento"
+#: ../../mod/item.php:159
+msgid "Unable to locate original post."
+msgstr "Impossibile trovare il messaggio originale."
-#: ../../mod/events.php:398
-msgid "Previous"
-msgstr "Precendente"
+#: ../../mod/item.php:418
+msgid "Empty post discarded."
+msgstr "L'articolo vuoto è stato ignorato."
-#: ../../mod/events.php:469
-msgid "hour:minute"
-msgstr "ora:minuti"
+#: ../../mod/item.php:460
+msgid "Executable content type not permitted to this channel."
+msgstr "I contenuti eseguibili non sono permessi su questo canale."
-#: ../../mod/events.php:489
-msgid "Event details"
-msgstr "Dettagli evento"
+#: ../../mod/item.php:899
+msgid "System error. Post not saved."
+msgstr "Errore di sistema. Articolo non salvato."
-#: ../../mod/events.php:490
+#: ../../mod/item.php:1117
#, php-format
-msgid "Format is %s %s. Starting date and Title are required."
-msgstr "Il formato è %s %s. L'inizio e il titolo sono obbligatori."
-
-#: ../../mod/events.php:492
-msgid "Event Starts:"
-msgstr "Inizio:"
-
-#: ../../mod/events.php:492 ../../mod/events.php:506 ../../mod/appman.php:91
-#: ../../mod/appman.php:92
-msgid "Required"
-msgstr "Obbligatorio"
-
-#: ../../mod/events.php:495
-msgid "Finish date/time is not known or not relevant"
-msgstr "La data/ora di fine non è rilevante"
+msgid "You have reached your limit of %1$.0f top level posts."
+msgstr "Hai raggiunto il limite massimo di %1$.0f articoli sulla pagina principale."
-#: ../../mod/events.php:497
-msgid "Event Finishes:"
-msgstr "Fine:"
+#: ../../mod/item.php:1123
+#, php-format
+msgid "You have reached your limit of %1$.0f webpages."
+msgstr "Hai raggiunto il limite massimo di %1$.0f pagine web."
-#: ../../mod/events.php:500
-msgid "Adjust for viewer timezone"
-msgstr "Adatta al fuso orario di chi legge"
+#: ../../mod/fsuggest.php:20 ../../mod/fsuggest.php:92
+msgid "Contact not found."
+msgstr "Contatto non trovato."
-#: ../../mod/events.php:502
-msgid "Description:"
-msgstr "Descrizione:"
+#: ../../mod/fsuggest.php:63
+msgid "Friend suggestion sent."
+msgstr "Suggerimento di amicizia inviato."
-#: ../../mod/events.php:506
-msgid "Title:"
-msgstr "Titolo:"
+#: ../../mod/fsuggest.php:97
+msgid "Suggest Friends"
+msgstr "Suggerisci amici"
-#: ../../mod/events.php:508
-msgid "Share this event"
-msgstr "Condividi questo evento"
+#: ../../mod/fsuggest.php:99
+#, php-format
+msgid "Suggest a friend for %s"
+msgstr "Suggerisci un amico a %s"
-#: ../../mod/filestorage.php:68
+#: ../../mod/filestorage.php:76
msgid "Permission Denied."
msgstr "Permesso negato."
-#: ../../mod/filestorage.php:85
+#: ../../mod/filestorage.php:92
msgid "File not found."
msgstr "File non trovato."
-#: ../../mod/filestorage.php:122
+#: ../../mod/filestorage.php:131
msgid "Edit file permissions"
msgstr "Modifica i permessi del file"
-#: ../../mod/filestorage.php:131
+#: ../../mod/filestorage.php:140
msgid "Set/edit permissions"
msgstr "Modifica i permessi"
-#: ../../mod/filestorage.php:132
+#: ../../mod/filestorage.php:141
msgid "Include all files and sub folders"
msgstr "Includi tutti i file e le sottocartelle"
-#: ../../mod/filestorage.php:133
+#: ../../mod/filestorage.php:142
msgid "Return to file list"
msgstr "Torna all'elenco dei file"
-#: ../../mod/filestorage.php:135
+#: ../../mod/filestorage.php:144
msgid "Copy/paste this code to attach file to a post"
msgstr "Copia/incolla questo codice per far comparire il file in un articolo"
-#: ../../mod/filestorage.php:136
+#: ../../mod/filestorage.php:145
msgid "Copy/paste this URL to link file from a web page"
msgstr "Copia/incolla questo indirizzo in una pagina web per avere un link al file"
-#: ../../mod/follow.php:25
-msgid "Channel added."
-msgstr "Canale aggiunto."
+#: ../../mod/acl.php:245
+msgid "network"
+msgstr "rete"
-#: ../../mod/subthread.php:103
-#, php-format
-msgid "%1$s is following %2$s's %3$s"
-msgstr "%1$s sta seguendo %3$s di %2$s"
+#: ../../mod/delegate.php:95
+msgid "No potential page delegates located."
+msgstr "Impossibile trovare delegati per questa pagina."
-#: ../../mod/fsuggest.php:20 ../../mod/fsuggest.php:92
-msgid "Contact not found."
-msgstr "Contatto non trovato."
+#: ../../mod/delegate.php:121
+msgid "Delegate Page Management"
+msgstr "Gestione delegati per la pagina"
-#: ../../mod/fsuggest.php:63
-msgid "Friend suggestion sent."
-msgstr "Suggerimento di amicizia inviato."
+#: ../../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 "I Delegati sono in grando di gestire tutti gli aspetti di questa pagina, tranne per i settaggi di base dell'account. Non delegare il tuo account personale a nessuno di cui non ti fidi ciecamente."
-#: ../../mod/fsuggest.php:97
-msgid "Suggest Friends"
-msgstr "Suggerisci amici"
+#: ../../mod/delegate.php:124
+msgid "Existing Page Managers"
+msgstr "Gestori attuali della pagina"
-#: ../../mod/fsuggest.php:99
-#, php-format
-msgid "Suggest a friend for %s"
-msgstr "Suggerisci un amico a %s"
+#: ../../mod/delegate.php:126
+msgid "Existing Page Delegates"
+msgstr "Delegati attuali della pagina"
-#: ../../mod/suggest.php:35
-msgid ""
-"No suggestions available. If this is a new site, please try again in 24 "
-"hours."
-msgstr "Nessun suggerimento disponibile. Se questo è un sito nuovo, riprova tra 24 ore."
+#: ../../mod/delegate.php:128
+msgid "Potential Delegates"
+msgstr "Delegati potenziali"
+
+#: ../../mod/delegate.php:130 ../../mod/tagrm.php:133 ../../mod/photos.php:905
+msgid "Remove"
+msgstr "Rimuovi"
+
+#: ../../mod/delegate.php:131
+msgid "Add"
+msgstr "Aggiungi"
+
+#: ../../mod/delegate.php:132
+msgid "No entries."
+msgstr "Nessun risultato."
+
+#: ../../mod/follow.php:25
+msgid "Channel added."
+msgstr "Canale aggiunto."
#: ../../mod/group.php:20
msgid "Collection created."
@@ -6309,7 +6543,7 @@ msgstr "Nome dell'insieme:"
#: ../../mod/group.php:89 ../../mod/group.php:186
msgid "Members are visible to other channels"
-msgstr "I membri saranno visibili agli altri canali"
+msgstr "I membri potranno vedere gli altri canali dell'insieme"
#: ../../mod/group.php:107
msgid "Collection removed."
@@ -6335,28 +6569,121 @@ msgstr "Tutti i canali connessi"
msgid "Click on a channel to add or remove."
msgstr "Clicca su un canale per aggiungerlo o rimuoverlo."
+#: ../../mod/home.php:48
+msgid "Red Matrix - &quot;The Network&quot;"
+msgstr "RedMatrix - &quot;La tua rete&quot;"
+
+#: ../../mod/home.php:101
+#, php-format
+msgid "Welcome to %s"
+msgstr "%s ti dà il benvenuto"
+
+#: ../../mod/suggest.php:35
+msgid ""
+"No suggestions available. If this is a new site, please try again in 24 "
+"hours."
+msgstr "Nessun suggerimento disponibile. Se questo sito è nuovo, riprova tra 24 ore."
+
+#: ../../mod/import.php:25
+#, php-format
+msgid "Your service plan only allows %d channels."
+msgstr "Il tuo account permette di creare al massimo %d canali."
+
+#: ../../mod/import.php:51
+msgid "Nothing to import."
+msgstr "Non c'è niente da importare."
+
+#: ../../mod/import.php:75
+msgid "Unable to download data from old server"
+msgstr "Impossibile importare i dati dal vecchio server"
+
+#: ../../mod/import.php:81
+msgid "Imported file is empty."
+msgstr "Il file da importare è vuoto."
+
+#: ../../mod/import.php:105
+msgid ""
+"Cannot create a duplicate channel identifier on this system. Import failed."
+msgstr "Non posso creare un canale con un identificativo che già esiste su questo sistema. L'importazione è fallita."
+
+#: ../../mod/import.php:123
+msgid "Channel clone failed. Import failed."
+msgstr "Impossibile clonare il canale. L'importazione è fallita."
+
+#: ../../mod/import.php:133
+msgid "Cloned channel not found. Import failed."
+msgstr "Impossibile trovare il canale clonato. L'importazione è fallita."
+
+#: ../../mod/import.php:451
+msgid "Import completed."
+msgstr "L'importazione è terminata con successo!"
+
+#: ../../mod/import.php:463
+msgid "You must be logged in to use this feature."
+msgstr "Per questa funzionalità devi aver effettuato l'accesso."
+
+#: ../../mod/import.php:468
+msgid "Import Channel"
+msgstr "Importa un canale"
+
+#: ../../mod/import.php:469
+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 "Usa questo modulo per importare un tuo canale da un altro server/hub. Puoi scaricare i dati identificativi del canale direttamente dall'altro server/hub oppure tramite un file che hai esportato. Saranno importati solamente l'identità e i contatti. L'importazione dei contenuti non è ancora disponibile."
+
+#: ../../mod/import.php:470
+msgid "File to Upload"
+msgstr "File da caricare"
+
+#: ../../mod/import.php:471
+msgid "Or provide the old server/hub details"
+msgstr "Oppure fornisci i dettagli del vecchio server/hub"
+
+#: ../../mod/import.php:472
+msgid "Your old identity address (xyz@example.com)"
+msgstr "Il tuo vecchio identificativo (per esempio pippo@esempio.com)"
+
+#: ../../mod/import.php:473
+msgid "Your old login email address"
+msgstr "L'email che usavi per accedere sul vecchio server"
+
+#: ../../mod/import.php:474
+msgid "Your old login password"
+msgstr "La password per il vecchio server"
+
+#: ../../mod/import.php:475
+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 "Scegli se vuoi spostare il tuo indirizzo primario su questo server, oppure se preferisci che quello vecchio resti tale. Potrai pubblicare da entrambi i server, ma solamente uno sarà indicato come posizione in cui risiedono i tuoi file, foto, ecc."
+
+#: ../../mod/import.php:476
+msgid "Make this hub my primary location"
+msgstr "Rendi questo server il mio indirizzo primario"
+
+#: ../../mod/import.php:477
+msgid "Import existing posts if possible"
+msgstr "Importazione dei post esistenti, se possibile"
+
#: ../../mod/tagger.php:98
#, php-format
msgid "%1$s tagged %2$s's %3$s with %4$s"
msgstr "%1$s ha taggato %3$s di %2$s con %4$s"
-#: ../../mod/help.php:43 ../../mod/help.php:49 ../../mod/help.php:55
-msgid "Help:"
-msgstr "Guida:"
-
-#: ../../mod/help.php:69 ../../index.php:233
-msgid "Not Found"
-msgstr "Non disponibile"
-
-#: ../../mod/tagrm.php:41
+#: ../../mod/tagrm.php:44 ../../mod/tagrm.php:94
msgid "Tag removed"
msgstr "Tag rimosso"
-#: ../../mod/tagrm.php:79
+#: ../../mod/tagrm.php:119
msgid "Remove Item Tag"
msgstr "Rimuovi il tag"
-#: ../../mod/tagrm.php:81
+#: ../../mod/tagrm.php:121
msgid "Select a tag to remove: "
msgstr "Seleziona un tag da rimuovere: "
@@ -6364,7 +6691,7 @@ msgstr "Seleziona un tag da rimuovere: "
msgid "Theme settings updated."
msgstr "Le impostazioni del tema sono state aggiornate."
-#: ../../mod/admin.php:97 ../../mod/admin.php:412
+#: ../../mod/admin.php:97 ../../mod/admin.php:411
msgid "Site"
msgstr "Sito"
@@ -6372,19 +6699,19 @@ msgstr "Sito"
msgid "Accounts"
msgstr "Account"
-#: ../../mod/admin.php:99 ../../mod/admin.php:857
+#: ../../mod/admin.php:99 ../../mod/admin.php:858
msgid "Channels"
msgstr "Canali"
-#: ../../mod/admin.php:100 ../../mod/admin.php:948 ../../mod/admin.php:990
+#: ../../mod/admin.php:100 ../../mod/admin.php:949 ../../mod/admin.php:991
msgid "Plugins"
msgstr "Plugin"
-#: ../../mod/admin.php:101 ../../mod/admin.php:1153 ../../mod/admin.php:1189
+#: ../../mod/admin.php:101 ../../mod/admin.php:1154 ../../mod/admin.php:1190
msgid "Themes"
msgstr "Temi"
-#: ../../mod/admin.php:102 ../../mod/admin.php:513
+#: ../../mod/admin.php:102 ../../mod/admin.php:512
msgid "Server"
msgstr "Server"
@@ -6396,7 +6723,7 @@ msgstr "Configurazione del profilo"
msgid "DB updates"
msgstr "Aggiornamenti al DB"
-#: ../../mod/admin.php:118 ../../mod/admin.php:125 ../../mod/admin.php:1276
+#: ../../mod/admin.php:118 ../../mod/admin.php:125 ../../mod/admin.php:1277
msgid "Logs"
msgstr "Log"
@@ -6412,10 +6739,10 @@ msgstr "Registrazioni in attesa"
msgid "Message queues"
msgstr "Messaggi in attesa di recapito"
-#: ../../mod/admin.php:211 ../../mod/admin.php:411 ../../mod/admin.php:512
-#: ../../mod/admin.php:721 ../../mod/admin.php:856 ../../mod/admin.php:947
-#: ../../mod/admin.php:989 ../../mod/admin.php:1152 ../../mod/admin.php:1188
-#: ../../mod/admin.php:1275
+#: ../../mod/admin.php:211 ../../mod/admin.php:410 ../../mod/admin.php:511
+#: ../../mod/admin.php:721 ../../mod/admin.php:857 ../../mod/admin.php:948
+#: ../../mod/admin.php:990 ../../mod/admin.php:1153 ../../mod/admin.php:1189
+#: ../../mod/admin.php:1276
msgid "Administration"
msgstr "Amministrazione"
@@ -6427,7 +6754,7 @@ msgstr "Riepilogo"
msgid "Registered users"
msgstr "Utenti registrati"
-#: ../../mod/admin.php:216 ../../mod/admin.php:516
+#: ../../mod/admin.php:216 ../../mod/admin.php:515
msgid "Pending registrations"
msgstr "Registrazioni da approvare"
@@ -6435,346 +6762,343 @@ msgstr "Registrazioni da approvare"
msgid "Version"
msgstr "Versione"
-#: ../../mod/admin.php:219 ../../mod/admin.php:517
+#: ../../mod/admin.php:219 ../../mod/admin.php:516
msgid "Active plugins"
msgstr "Plugin attivi"
-#: ../../mod/admin.php:332
+#: ../../mod/admin.php:326
msgid "Site settings updated."
-msgstr "Impostazioni del sito aggiornate."
+msgstr "Impostazioni del sito salvate correttamente."
-#: ../../mod/admin.php:363
-msgid "No special theme for accessibility"
-msgstr "Nessun tema speciale per l'accessibilità"
+#: ../../mod/admin.php:365
+msgid "experimental"
+msgstr "sperimentale"
-#: ../../mod/admin.php:392
+#: ../../mod/admin.php:367
+msgid "unsupported"
+msgstr "non supportato"
+
+#: ../../mod/admin.php:391
msgid "Yes - with approval"
msgstr "Sì - con approvazione"
-#: ../../mod/admin.php:398
+#: ../../mod/admin.php:397
msgid "My site is not a public server"
msgstr "Non è un server pubblico"
-#: ../../mod/admin.php:399
+#: ../../mod/admin.php:398
msgid "My site has paid access only"
msgstr "È un servizio a pagamento"
-#: ../../mod/admin.php:400
+#: ../../mod/admin.php:399
msgid "My site has free access only"
msgstr "È un servizio gratuito"
-#: ../../mod/admin.php:401
+#: ../../mod/admin.php:400
msgid "My site offers free accounts with optional paid upgrades"
msgstr "È un servizio gratuito con opzioni aggiuntive a pagamento"
-#: ../../mod/admin.php:415
+#: ../../mod/admin.php:414
msgid "File upload"
msgstr "Caricamento file"
-#: ../../mod/admin.php:416
+#: ../../mod/admin.php:415
msgid "Policies"
msgstr "Politiche"
-#: ../../mod/admin.php:421
+#: ../../mod/admin.php:420
msgid "Site name"
msgstr "Nome del sito"
-#: ../../mod/admin.php:422
+#: ../../mod/admin.php:421
msgid "Banner/Logo"
msgstr "Banner o logo"
-#: ../../mod/admin.php:423
+#: ../../mod/admin.php:422
msgid "Administrator Information"
-msgstr "Informazioni sull'amministrazione"
+msgstr "Informazioni sull'amministratore"
-#: ../../mod/admin.php:423
+#: ../../mod/admin.php:422
msgid ""
"Contact information for site administrators. Displayed on siteinfo page. "
"BBCode can be used here"
msgstr "Informazioni per contattare gli amministratori del sito. Saranno mostrate sulla pagina di informazioni. È consentito il BBcode"
-#: ../../mod/admin.php:424
+#: ../../mod/admin.php:423
msgid "System language"
msgstr "Lingua di sistema"
-#: ../../mod/admin.php:425
+#: ../../mod/admin.php:424
msgid "System theme"
msgstr "Tema di sistema"
-#: ../../mod/admin.php:425
+#: ../../mod/admin.php:424
msgid ""
"Default system theme - may be over-ridden by user profiles - <a href='#' "
"id='cnftheme'>change theme settings</a>"
msgstr "Il tema di sistema può essere cambiato dai profili dei singoli utenti - <a href='#' id='cnftheme'>Cambia le impostazioni del tema</a>"
-#: ../../mod/admin.php:426
+#: ../../mod/admin.php:425
msgid "Mobile system theme"
msgstr "Tema di sistema per dispositivi mobili"
-#: ../../mod/admin.php:426
+#: ../../mod/admin.php:425
msgid "Theme for mobile devices"
msgstr "Tema per i dispositivi mobili"
#: ../../mod/admin.php:427
-msgid "Accessibility system theme"
-msgstr "Tema di sistema ad alta accessibilità"
-
-#: ../../mod/admin.php:427
-msgid "Accessibility theme"
-msgstr "Tema ad alta accessibilità"
-
-#: ../../mod/admin.php:428
-msgid "Channel to use for this website's static pages"
-msgstr "Canale da usare per le pagine statiche di questo sito"
-
-#: ../../mod/admin.php:428
-msgid "Site Channel"
-msgstr "Canale del sito"
-
-#: ../../mod/admin.php:429
msgid "Enable Diaspora Protocol"
msgstr "Abilita la comunicazione con Diaspora"
-#: ../../mod/admin.php:429
+#: ../../mod/admin.php:427
msgid "Communicate with Diaspora and Friendica - experimental"
msgstr "Sperimentale - per comunicare con Diaspora e Friendica"
-#: ../../mod/admin.php:430
+#: ../../mod/admin.php:428
msgid "Allow Feeds as Connections"
msgstr "Permetti di aggiungere i feed come contatti"
-#: ../../mod/admin.php:430
+#: ../../mod/admin.php:428
msgid "(Heavy system resource usage)"
msgstr "(Uso intenso delle risorse di sistema!)"
-#: ../../mod/admin.php:431
+#: ../../mod/admin.php:429
msgid "Maximum image size"
msgstr "Dimensione massima immagini"
-#: ../../mod/admin.php:431
+#: ../../mod/admin.php:429
msgid ""
"Maximum size in bytes of uploaded images. Default is 0, which means no "
"limits."
msgstr "Massima dimensione in byte delle immagini caricate. Il default è 0, cioè nessun limite."
-#: ../../mod/admin.php:432
+#: ../../mod/admin.php:430
msgid "Does this site allow new member registration?"
msgstr "Questo sito permette a nuovi utenti di registrarsi?"
-#: ../../mod/admin.php:433
+#: ../../mod/admin.php:431
msgid "Which best describes the types of account offered by this hub?"
msgstr "Come descriveresti il tipo di servizio proposto da questo server?"
-#: ../../mod/admin.php:434
+#: ../../mod/admin.php:432
msgid "Register text"
-msgstr "Testo diregistrazione"
+msgstr "Testo di registrazione"
-#: ../../mod/admin.php:434
+#: ../../mod/admin.php:432
msgid "Will be displayed prominently on the registration page."
msgstr "Sarà mostrato ben visibile nella pagina di registrazione."
-#: ../../mod/admin.php:435
+#: ../../mod/admin.php:433
msgid "Accounts abandoned after x days"
msgstr "Account abbandonati dopo X giorni"
-#: ../../mod/admin.php:435
+#: ../../mod/admin.php:433
msgid ""
"Will not waste system resources polling external sites for abandonded "
"accounts. Enter 0 for no time limit."
msgstr "Eviterà di sprecare risorse di sistema controllando se i siti esterni hanno account abbandonati. Immettere 0 per non imporre nessun limite di tempo."
-#: ../../mod/admin.php:436
+#: ../../mod/admin.php:434
msgid "Allowed friend domains"
msgstr "Domini fidati e consentiti"
-#: ../../mod/admin.php:436
+#: ../../mod/admin.php:434
msgid ""
"Comma separated list of domains which are allowed to establish friendships "
"with this site. Wildcards are accepted. Empty to allow any domains"
msgstr "Elenco separato da virglola dei domini che possono stabilire amicizie con questo sito. Sono accettati caratteri jolly. Lascia vuoto per accettare connessioni da qualsiasi dominio."
-#: ../../mod/admin.php:437
+#: ../../mod/admin.php:435
msgid "Allowed email domains"
msgstr "Domini email consentiti"
-#: ../../mod/admin.php:437
+#: ../../mod/admin.php:435
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 "Elenco separato da virgola dei domini permessi come indirizzi email in fase di registrazione. Sono accettati caratteri jolly. Lascia vuoto per accettare qualsiasi dominio."
+msgstr "Elenco separato da virgola dei domini permessi come indirizzi email in fase di registrazione. Sono accettati caratteri jolly. Lascia vuoto per accettare qualsiasi dominio email"
-#: ../../mod/admin.php:438
+#: ../../mod/admin.php:436
msgid "Block public"
msgstr "Blocca pagine pubbliche"
-#: ../../mod/admin.php:438
+#: ../../mod/admin.php:436
msgid ""
"Check to block public access to all otherwise public personal pages on this "
"site unless you are currently logged in."
msgstr "Seleziona per impedire di vedere le pagine personali di questo sito a chi non ha effettuato l'accesso."
-#: ../../mod/admin.php:439
+#: ../../mod/admin.php:437
+msgid "Verify Email Addresses"
+msgstr "Verifica l'indirizzo email"
+
+#: ../../mod/admin.php:437
+msgid ""
+"Check to verify email addresses used in account registration (recommended)."
+msgstr "Attiva per richiedere la verifica degli indirizzi email dei nuovi utenti (consigliato)."
+
+#: ../../mod/admin.php:438
msgid "Force publish"
msgstr "Forza la publicazione del profilo"
-#: ../../mod/admin.php:439
+#: ../../mod/admin.php:438
msgid ""
"Check to force all profiles on this site to be listed in the site directory."
-msgstr "Seleziona per mostrare nell'elenco dei canali del sito <strong>tutti</strong> i profili registrati."
+msgstr "Seleziona per mostrare nell'elenco pubblico <strong>tutti</strong> i profili registrati su questo sito."
-#: ../../mod/admin.php:440
+#: ../../mod/admin.php:439
msgid "Disable discovery tab"
msgstr "Disabilita la funzione 'scopri'"
-#: ../../mod/admin.php:440
+#: ../../mod/admin.php:439
msgid ""
"Remove the tab in the network view with public content pulled from sources "
"chosen for this site."
msgstr "Nell'area della rete personale non comparirà più la scheda con i contenuti acquisiti da altri siti."
-#: ../../mod/admin.php:441
+#: ../../mod/admin.php:440
msgid "No login on Homepage"
msgstr "Non mostrare il login sulla homepage"
-#: ../../mod/admin.php:441
+#: ../../mod/admin.php:440
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 "Per nascondere la possibilità di fare login ai visitatori (per esempio, quando il contenuto della homepage del sito è alimentato dal canale)."
+msgstr "Per nascondere la possibilità di fare login ai visitatori (per esempio, quando il contenuto della homepage del sito è alimentato da un canale)."
-#: ../../mod/admin.php:443
+#: ../../mod/admin.php:442
msgid "Proxy user"
msgstr "Utente proxy"
-#: ../../mod/admin.php:444
+#: ../../mod/admin.php:443
msgid "Proxy URL"
msgstr "URL proxy"
-#: ../../mod/admin.php:445
+#: ../../mod/admin.php:444
msgid "Network timeout"
msgstr "Timeout rete"
-#: ../../mod/admin.php:445
+#: ../../mod/admin.php:444
msgid "Value is in seconds. Set to 0 for unlimited (not recommended)."
msgstr "Valore in secondi. Imposta a 0 per illimitato (sconsigliato)."
-#: ../../mod/admin.php:446
+#: ../../mod/admin.php:445
msgid "Delivery interval"
msgstr "Recapito ritardato"
-#: ../../mod/admin.php:446
+#: ../../mod/admin.php:445
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 "RItarda il processo di recapito di questo numero di secondi per ridurre il carico di sistema. Consigliati: 4-5 secondi per hosting condiviso, 2-3 per i VPS, 0-1 per grandi server dedicati."
+msgstr "Numero di secondi di cui può essere ritardato il recapito, per ridurre il carico di sistema. Consigliati: 4-5 secondi per hosting condiviso, 2-3 per i VPS, 0-1 per grandi server dedicati."
-#: ../../mod/admin.php:447
+#: ../../mod/admin.php:446
msgid "Poll interval"
msgstr "Intervallo di polling"
-#: ../../mod/admin.php:447
+#: ../../mod/admin.php:446
msgid ""
"Delay background polling processes by this many seconds to reduce system "
"load. If 0, use delivery interval."
-msgstr "Ritarda i processi di polling in background di questo numero di secondi per ridurre il carico del sistema. Se 0, verrà usato lo stesso valore del 'Recapito ritardato'."
+msgstr "Numero di secondi di cui può essere ritardato il polling in background, per ridurre il carico del sistema. Se 0, verrà usato lo stesso valore del 'Recapito ritardato'."
-#: ../../mod/admin.php:448
+#: ../../mod/admin.php:447
msgid "Maximum Load Average"
msgstr "Carico massimo medio"
-#: ../../mod/admin.php:448
+#: ../../mod/admin.php:447
msgid ""
"Maximum system load before delivery and poll processes are deferred - "
"default 50."
msgstr "Carico di sistema massimo perché i processi di recapito e polling siano ritardati - il valore predefinito è 50."
-#: ../../mod/admin.php:504
+#: ../../mod/admin.php:503
msgid "No server found"
msgstr "Server non trovato"
-#: ../../mod/admin.php:511 ../../mod/admin.php:735
+#: ../../mod/admin.php:510 ../../mod/admin.php:735
msgid "ID"
msgstr "ID"
-#: ../../mod/admin.php:511
+#: ../../mod/admin.php:510
msgid "for channel"
msgstr "per canale"
-#: ../../mod/admin.php:511
+#: ../../mod/admin.php:510
msgid "on server"
msgstr "sul server"
-#: ../../mod/admin.php:511
+#: ../../mod/admin.php:510
msgid "Status"
msgstr "Stato"
-#: ../../mod/admin.php:532
+#: ../../mod/admin.php:531
msgid "Update has been marked successful"
msgstr "L'aggiornamento è stato marcato come eseguito."
-#: ../../mod/admin.php:542
+#: ../../mod/admin.php:541
#, php-format
msgid "Executing %s failed. Check system logs."
msgstr "Fallita l'esecuzione di %s. Maggiori informazioni sui log di sistema."
-#: ../../mod/admin.php:545
+#: ../../mod/admin.php:544
#, php-format
msgid "Update %s was successfully applied."
msgstr "L'aggiornamento %s è terminato correttamente."
-#: ../../mod/admin.php:549
+#: ../../mod/admin.php:548
#, php-format
msgid "Update %s did not return a status. Unknown if it succeeded."
msgstr "L'aggiornamento %s non ha dato risposta. Impossibile determinare se è terminato correttamente."
-#: ../../mod/admin.php:552
+#: ../../mod/admin.php:551
#, php-format
msgid "Update function %s could not be found."
msgstr "Impossibile trovare la funzione di aggiornamento %s"
-#: ../../mod/admin.php:567
+#: ../../mod/admin.php:566
msgid "No failed updates."
msgstr "Nessun aggiornamento fallito."
-#: ../../mod/admin.php:571
+#: ../../mod/admin.php:570
msgid "Failed Updates"
msgstr "Aggiornamenti falliti."
-#: ../../mod/admin.php:573
+#: ../../mod/admin.php:572
msgid "Mark success (if update was manually applied)"
msgstr "Marca come eseguito (se applicato manualmente)."
-#: ../../mod/admin.php:574
+#: ../../mod/admin.php:573
msgid "Attempt to execute this update step automatically"
msgstr "Tenta di eseguire in automatico questo passaggio dell'aggiornamento."
-#: ../../mod/admin.php:600
+#: ../../mod/admin.php:599
#, php-format
msgid "%s user blocked/unblocked"
msgid_plural "%s users blocked/unblocked"
msgstr[0] "%s utente bloccato/sbloccato"
msgstr[1] "%s utenti bloccati/sbloccati"
-#: ../../mod/admin.php:607
+#: ../../mod/admin.php:606
#, php-format
msgid "%s user deleted"
msgid_plural "%s users deleted"
msgstr[0] "%s utente cancellato"
msgstr[1] "%s utenti cancellati"
-#: ../../mod/admin.php:638
+#: ../../mod/admin.php:635
msgid "Account not found"
msgstr "Account non trovato"
-#: ../../mod/admin.php:658
+#: ../../mod/admin.php:655
#, php-format
msgid "User '%s' unblocked"
msgstr "Utente '%s' sbloccato"
-#: ../../mod/admin.php:658
+#: ../../mod/admin.php:655
#, php-format
msgid "User '%s' blocked"
msgstr "Utente '%s' bloccato"
@@ -6783,7 +7107,7 @@ msgstr "Utente '%s' bloccato"
msgid "Users"
msgstr "Utenti"
-#: ../../mod/admin.php:724 ../../mod/admin.php:859
+#: ../../mod/admin.php:724 ../../mod/admin.php:860
msgid "select all"
msgstr "seleziona tutti"
@@ -6821,7 +7145,7 @@ msgstr "Con scadenza"
#: ../../mod/admin.php:735
msgid "Service Class"
-msgstr "Service Class"
+msgstr "Classe dell'account"
#: ../../mod/admin.php:737
msgid ""
@@ -6838,7 +7162,7 @@ msgstr "L'utente {0} sarà eliminato!\\n\\nTutto quello che ha pubblicato su que
#: ../../mod/admin.php:771
#, php-format
msgid "%s channel censored/uncensored"
-msgid_plural "%s channelss censored/uncensored"
+msgid_plural "%s channels censored/uncensored"
msgstr[0] "Censura modificata per %s canale"
msgstr[1] "Censura modificata per %s canali"
@@ -6858,284 +7182,256 @@ msgstr "Canale non trovato"
msgid "Channel '%s' deleted"
msgstr "Il canale '%s' è stato rimosso"
-#: ../../mod/admin.php:818
+#: ../../mod/admin.php:819
#, php-format
msgid "Channel '%s' uncensored"
msgstr "Rimossa la censura dal canale '%s'"
-#: ../../mod/admin.php:818
+#: ../../mod/admin.php:819
#, php-format
msgid "Channel '%s' censored"
msgstr "Applicata una censura al canale '%s'"
-#: ../../mod/admin.php:861
+#: ../../mod/admin.php:862
msgid "Censor"
msgstr "Applica una censura"
-#: ../../mod/admin.php:862
+#: ../../mod/admin.php:863
msgid "Uncensor"
msgstr "Rimuovi la censura"
-#: ../../mod/admin.php:865
+#: ../../mod/admin.php:866
msgid "UID"
msgstr "UID"
-#: ../../mod/admin.php:867
+#: ../../mod/admin.php:868
msgid ""
"Selected channels will be deleted!\\n\\nEverything that was posted in these "
"channels on this site will be permanently deleted!\\n\\nAre you sure?"
msgstr "I canali selezionati saranno rimossi!\\n\\nTutto ciò che è stato pubblicato su questo server tramite questi canali sarà irreversibilmente eliminato!\\n\\nVuoi confermare?"
-#: ../../mod/admin.php:868
+#: ../../mod/admin.php:869
msgid ""
"The channel {0} will be deleted!\\n\\nEverything that was posted in this "
"channel on this site will be permanently deleted!\\n\\nAre you sure?"
msgstr "Il canale {0} sarà rimosso!\\n\\nTutto ciò che è stato pubblicato su questo server tramite questo canale sarà irreversibilmente eliminato!\\n\\nVuoi confermare?"
-#: ../../mod/admin.php:907
+#: ../../mod/admin.php:908
#, php-format
msgid "Plugin %s disabled."
msgstr "Plugin %s non attivo."
-#: ../../mod/admin.php:911
+#: ../../mod/admin.php:912
#, php-format
msgid "Plugin %s enabled."
msgstr "Plugin %s attivo."
-#: ../../mod/admin.php:921 ../../mod/admin.php:1123
+#: ../../mod/admin.php:922 ../../mod/admin.php:1124
msgid "Disable"
msgstr "Disattiva"
-#: ../../mod/admin.php:923 ../../mod/admin.php:1125
+#: ../../mod/admin.php:924 ../../mod/admin.php:1126
msgid "Enable"
msgstr "Attiva"
-#: ../../mod/admin.php:949 ../../mod/admin.php:1154
+#: ../../mod/admin.php:950 ../../mod/admin.php:1155
msgid "Toggle"
msgstr "Attiva/disattiva"
-#: ../../mod/admin.php:957 ../../mod/admin.php:1164
+#: ../../mod/admin.php:958 ../../mod/admin.php:1165
msgid "Author: "
msgstr "Autore:"
-#: ../../mod/admin.php:958 ../../mod/admin.php:1165
+#: ../../mod/admin.php:959 ../../mod/admin.php:1166
msgid "Maintainer: "
msgstr "Gestore:"
-#: ../../mod/admin.php:1087
+#: ../../mod/admin.php:1088
msgid "No themes found."
msgstr "Nessun tema trovato."
-#: ../../mod/admin.php:1146
+#: ../../mod/admin.php:1147
msgid "Screenshot"
msgstr "Istantanea dello schermo"
-#: ../../mod/admin.php:1194
+#: ../../mod/admin.php:1195
msgid "[Experimental]"
msgstr "[Sperimentale]"
-#: ../../mod/admin.php:1195
+#: ../../mod/admin.php:1196
msgid "[Unsupported]"
msgstr "[Non supportato]"
-#: ../../mod/admin.php:1222
+#: ../../mod/admin.php:1223
msgid "Log settings updated."
msgstr "Impostazioni di log aggiornate."
-#: ../../mod/admin.php:1278
+#: ../../mod/admin.php:1279
msgid "Clear"
msgstr "Pulisci"
-#: ../../mod/admin.php:1284
+#: ../../mod/admin.php:1285
msgid "Debugging"
msgstr "Debugging"
-#: ../../mod/admin.php:1285
+#: ../../mod/admin.php:1286
msgid "Log file"
msgstr "File di log"
-#: ../../mod/admin.php:1285
+#: ../../mod/admin.php:1286
msgid ""
"Must be writable by web server. Relative to your Red top-level directory."
-msgstr "Deve essere scrivibile dal web server. È relativa alla cartella dove è installato RedMatrix."
+msgstr "Deve essere scrivibile dal web server. La posizione è relativa alla cartella dove è installato RedMatrix."
-#: ../../mod/admin.php:1286
+#: ../../mod/admin.php:1287
msgid "Log level"
msgstr "Livello di log"
-#: ../../mod/admin.php:1333
+#: ../../mod/admin.php:1334
msgid "New Profile Field"
msgstr "Nuovo campo del profilo"
-#: ../../mod/admin.php:1334 ../../mod/admin.php:1355
+#: ../../mod/admin.php:1335 ../../mod/admin.php:1356
msgid "Field nickname"
msgstr "Nome breve del campo"
-#: ../../mod/admin.php:1334 ../../mod/admin.php:1355
+#: ../../mod/admin.php:1335 ../../mod/admin.php:1356
msgid "System name of field"
msgstr "Nome di sistema del campo"
-#: ../../mod/admin.php:1335 ../../mod/admin.php:1356
+#: ../../mod/admin.php:1336 ../../mod/admin.php:1357
msgid "Input type"
msgstr "Tipo di dati"
-#: ../../mod/admin.php:1336 ../../mod/admin.php:1357
+#: ../../mod/admin.php:1337 ../../mod/admin.php:1358
msgid "Field Name"
msgstr "Nome del campo"
-#: ../../mod/admin.php:1336 ../../mod/admin.php:1357
+#: ../../mod/admin.php:1337 ../../mod/admin.php:1358
msgid "Label on profile pages"
msgstr "Etichetta da mostrare sulla pagina del profilo"
-#: ../../mod/admin.php:1337 ../../mod/admin.php:1358
+#: ../../mod/admin.php:1338 ../../mod/admin.php:1359
msgid "Help text"
msgstr "Testo di aiuto"
-#: ../../mod/admin.php:1337 ../../mod/admin.php:1358
+#: ../../mod/admin.php:1338 ../../mod/admin.php:1359
msgid "Additional info (optional)"
msgstr "Informazioni aggiuntive (opzionali)"
-#: ../../mod/admin.php:1348
+#: ../../mod/admin.php:1349
msgid "Field definition not found"
msgstr "Impossibile trovare la definizione del campo"
-#: ../../mod/admin.php:1354
+#: ../../mod/admin.php:1355
msgid "Edit Profile Field"
msgstr "Modifica campo del profilo"
-#: ../../mod/thing.php:98
-msgid "Thing updated"
-msgstr "L'oggetto è stato aggiornato"
-
-#: ../../mod/thing.php:158
-msgid "Object store: failed"
-msgstr "Impossibile memorizzare l'oggetto."
+#: ../../mod/locs.php:19 ../../mod/locs.php:46
+msgid "Location not found."
+msgstr "Indirizzo non trovato."
-#: ../../mod/thing.php:162
-msgid "Thing added"
-msgstr "L'oggetto è stato aggiunto"
+#: ../../mod/locs.php:50
+msgid "Primary location cannot be removed."
+msgstr "L'indirizzo principale non può essere rimosso."
-#: ../../mod/thing.php:182
-#, php-format
-msgid "OBJ: %1$s %2$s %3$s"
-msgstr "OBJ: %1$s %2$s %3$s"
+#: ../../mod/locs.php:82
+msgid "No locations found."
+msgstr "Nessun indirizzo trovato."
-#: ../../mod/thing.php:234
-msgid "Show Thing"
-msgstr "Mostra l'oggetto"
+#: ../../mod/locs.php:95
+msgid "Manage Channel Locations"
+msgstr "Modifica gli indirizzi del canale"
-#: ../../mod/thing.php:241
-msgid "item not found."
-msgstr "non trovato."
-
-#: ../../mod/thing.php:272
-msgid "Edit Thing"
-msgstr "Modifica l'oggetto"
-
-#: ../../mod/thing.php:274 ../../mod/thing.php:321
-msgid "Select a profile"
-msgstr "Scegli un profilo"
-
-#: ../../mod/thing.php:278 ../../mod/thing.php:324
-msgid "Post an activity"
-msgstr "Pubblica un'attività"
-
-#: ../../mod/thing.php:278 ../../mod/thing.php:324
-msgid "Only sends to viewers of the applicable profile"
-msgstr "Invia solo a chi segue il relativo canale"
+#: ../../mod/locs.php:96
+msgid "Location (address)"
+msgstr "Indirizzo"
-#: ../../mod/thing.php:280 ../../mod/thing.php:326
-msgid "Name of thing e.g. something"
-msgstr "Nome dell'oggetto"
+#: ../../mod/locs.php:97
+msgid "Primary Location"
+msgstr "Indirizzo primario"
-#: ../../mod/thing.php:282 ../../mod/thing.php:327
-msgid "URL of thing (optional)"
-msgstr "Indirizzo web dell'oggetto"
+#: ../../mod/locs.php:98
+msgid "Drop location"
+msgstr "Elimina un indirizzo"
-#: ../../mod/thing.php:284 ../../mod/thing.php:328
-msgid "URL for photo of thing (optional)"
-msgstr "Indirizzo di un'immagine dell'oggetto (facoltativo)"
+#: ../../mod/mail.php:33
+msgid "Unable to lookup recipient."
+msgstr "Impossibile associare un destinatario."
-#: ../../mod/thing.php:319
-msgid "Add Thing to your Profile"
-msgstr "Aggiungi l'oggetto al tuo profilo"
+#: ../../mod/mail.php:41
+msgid "Unable to communicate with requested channel."
+msgstr "Impossibile comunicare con il canale richiesto."
-#: ../../mod/import.php:36
-msgid "Nothing to import."
-msgstr "Non c'è niente da importare."
+#: ../../mod/mail.php:48
+msgid "Cannot verify requested channel."
+msgstr "Impossibile verificare il canale richiesto."
-#: ../../mod/import.php:58
-msgid "Unable to download data from old server"
-msgstr "Impossibile importare i dati dal vecchio server"
+#: ../../mod/mail.php:74
+msgid "Selected channel has private message restrictions. Send failed."
+msgstr "Il canale ha delle regole restrittive per la ricezione dei messaggi privati. Invio fallito."
-#: ../../mod/import.php:64
-msgid "Imported file is empty."
-msgstr "Il file da importare è vuoto."
+#: ../../mod/mail.php:136
+msgid "Message deleted."
+msgstr "Messaggio eliminato."
-#: ../../mod/import.php:88
-msgid ""
-"Cannot create a duplicate channel identifier on this system. Import failed."
-msgstr "Non posso creare un canale con un identificativo che già esiste su questo sistema. L'importazione è fallita."
+#: ../../mod/mail.php:153
+msgid "Message recalled."
+msgstr "Messaggio revocato."
-#: ../../mod/import.php:106
-msgid "Channel clone failed. Import failed."
-msgstr "Impossibile clonare il canale. L'importazione è fallita."
+#: ../../mod/mail.php:222
+msgid "Send Private Message"
+msgstr "Invia un messaggio privato"
-#: ../../mod/import.php:116
-msgid "Cloned channel not found. Import failed."
-msgstr "Impossibile trovare il canale clonato. L'importazione è fallita."
+#: ../../mod/mail.php:223 ../../mod/mail.php:340
+msgid "To:"
+msgstr "A:"
-#: ../../mod/import.php:365
-msgid "Import completed."
-msgstr "L'importazione è terminata con successo!"
+#: ../../mod/mail.php:228 ../../mod/mail.php:342
+msgid "Subject:"
+msgstr "Oggetto:"
-#: ../../mod/import.php:378
-msgid "You must be logged in to use this feature."
-msgstr "Per questa funzionalità devi aver effettuato l'accesso."
+#: ../../mod/mail.php:232 ../../mod/mail.php:345 ../../mod/invite.php:131
+msgid "Your message:"
+msgstr "Il tuo messaggio:"
-#: ../../mod/import.php:383
-msgid "Import Channel"
-msgstr "Importa un canale"
+#: ../../mod/mail.php:239
+msgid "Send"
+msgstr "Invia"
-#: ../../mod/import.php:384
-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 "Usa questo modulo per importare un tuo canale da un altro server/hub. Puoi scaricare i dati identificativi del canale direttamente dall'altro server/hub oppure tramite un file che hai esportato. Saranno importati solamente l'identità e i contatti. L'importazione dei contenuti non è ancora disponibile."
+#: ../../mod/mail.php:266
+msgid "Message not found."
+msgstr "Messaggio non trovato."
-#: ../../mod/import.php:385
-msgid "File to Upload"
-msgstr "File da caricare"
+#: ../../mod/mail.php:309
+msgid "Delete message"
+msgstr "Elimina il messaggio"
-#: ../../mod/import.php:386
-msgid "Or provide the old server/hub details"
-msgstr "Oppure fornisci i dettagli del vecchio server/hub"
+#: ../../mod/mail.php:310
+msgid "Recall message"
+msgstr "Revoca il messaggio"
-#: ../../mod/import.php:387
-msgid "Your old identity address (xyz@example.com)"
-msgstr "Il tuo vecchio identificativo (per esempio pippo@esempio.com)"
+#: ../../mod/mail.php:312
+msgid "Message has been recalled."
+msgstr "Il messaggio è stato revocato."
-#: ../../mod/import.php:388
-msgid "Your old login email address"
-msgstr "L'email che usavi per accedere sul vecchio server"
+#: ../../mod/mail.php:329
+msgid "Private Conversation"
+msgstr "Conversazione privata"
-#: ../../mod/import.php:389
-msgid "Your old login password"
-msgstr "La password per il vecchio server"
+#: ../../mod/mail.php:333 ../../mod/message.php:72
+msgid "Delete conversation"
+msgstr "Elimina la conversazione"
-#: ../../mod/import.php:390
+#: ../../mod/mail.php:335
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 "Per ciascuna opzione, scegli se vuoi rendere questo server il tuo indirizzo primario, oppure se preferisci che lo rimanga il vecchio. Potrai pubblicare da entrambi i server, ma solamente uno sarà marcato come primario per i tuoi file, foto, ecc."
+"No secure communications available. You <strong>may</strong> be able to "
+"respond from the sender's profile page."
+msgstr "Non è disponibile alcuna tecnologia per comunicare in modo sicuro. <strong>Se possibile</strong>, prova a rispondere direttamente dalla pagina del profilo del mittente."
-#: ../../mod/import.php:391
-msgid "Make this hub my primary location"
-msgstr "Rendi questo server il mio indirizzo primario"
+#: ../../mod/mail.php:339
+msgid "Send Reply"
+msgstr "Invia la risposta"
#: ../../mod/invite.php:25
msgid "Total invitation limit exceeded."
@@ -7178,10 +7474,6 @@ msgstr "Spedisci inviti"
msgid "Enter email addresses, one per line:"
msgstr "Inserisci gli indirizzi email, uno per riga:"
-#: ../../mod/invite.php:131 ../../mod/mail.php:225 ../../mod/mail.php:338
-msgid "Your message:"
-msgstr "Il tuo messaggio:"
-
#: ../../mod/invite.php:132
msgid "Please join my community on RedMatrix."
msgstr "Entra a far parte della mia comunità su RedMatrix."
@@ -7200,89 +7492,51 @@ msgstr "2. Inserisci il mio indirizzo RedMatrix nella barra di ricerca che compa
#: ../../mod/invite.php:138
msgid "or visit "
-msgstr "oppure visita"
+msgstr "oppure visita "
#: ../../mod/invite.php:140
msgid "3. Click [Connect]"
msgstr "3. Clicca su [Aggiungi]"
-#: ../../mod/item.php:146
-msgid "Unable to locate original post."
-msgstr "Impossibile trovare il messaggio originale."
+#: ../../mod/manage.php:136
+#, php-format
+msgid "You have created %1$.0f of %2$.0f allowed channels."
+msgstr "Hai creato %1$.0f dei %2$.0f canali permessi."
-#: ../../mod/item.php:379
-msgid "Empty post discarded."
-msgstr "L'articolo vuoto è stato ignorato."
+#: ../../mod/manage.php:144
+msgid "Create a new channel"
+msgstr "Crea un nuovo canale"
-#: ../../mod/item.php:421
-msgid "Executable content type not permitted to this channel."
-msgstr "I contenuti eseguibili non sono permessi su questo canale."
+#: ../../mod/manage.php:149
+msgid "Current Channel"
+msgstr "Canale attuale"
-#: ../../mod/item.php:849
-msgid "System error. Post not saved."
-msgstr "Errore di sistema. Articolo non salvato."
+#: ../../mod/manage.php:151
+msgid "Attach to one of your channels by selecting it."
+msgstr "Seleziona il canale a cui vuoi passare."
-#: ../../mod/item.php:1301
-#, php-format
-msgid "You have reached your limit of %1$.0f top level posts."
-msgstr "Hai raggiunto il limite massimo di %1$.0f articoli sulla pagina principale."
+#: ../../mod/manage.php:152
+msgid "Default Channel"
+msgstr "Canale predefinito"
-#: ../../mod/item.php:1307
-#, php-format
-msgid "You have reached your limit of %1$.0f webpages."
-msgstr "Hai raggiunto il limite massimo di %1$.0f pagine web."
+#: ../../mod/manage.php:153
+msgid "Make Default"
+msgstr "Rendi predefinito"
#: ../../mod/update_channel.php:43 ../../mod/update_display.php:25
#: ../../mod/update_network.php:23 ../../mod/update_search.php:46
+#: ../../mod/update_home.php:21
msgid "[Embedded content - reload page to view]"
msgstr "[Contenuto incorporato - ricarica la pagina per visualizzarlo correttamente]"
-#: ../../mod/layouts.php:62
+#: ../../mod/layouts.php:110
msgid "Help with this feature"
msgstr "La guida per questa funzionalità"
-#: ../../mod/layouts.php:85
+#: ../../mod/layouts.php:130
msgid "Layout Name"
msgstr "Nome layout"
-#: ../../mod/like.php:15
-msgid "Like/Dislike"
-msgstr "Mi piace/Non mi piace"
-
-#: ../../mod/like.php:20
-msgid "This action is restricted to members."
-msgstr "Questa funzionalità è riservata agli iscritti."
-
-#: ../../mod/like.php:21
-msgid ""
-"Please <a href=\"rmagic\">login with your RedMatrix ID</a> or <a "
-"href=\"register\">register as a new RedMatrix member</a> to continue."
-msgstr "Per favore <a href=\"rmagic\">accedi con il tuo identificativo RedMatrix</a> o <a href=\"register\">registrati su RedMatrix</a> per continuare."
-
-#: ../../mod/like.php:77 ../../mod/like.php:104 ../../mod/like.php:142
-msgid "Invalid request."
-msgstr "Richiesta non valida."
-
-#: ../../mod/like.php:119
-msgid "thing"
-msgstr "oggetto"
-
-#: ../../mod/like.php:165
-msgid "Channel unavailable."
-msgstr "Canale non trovato."
-
-#: ../../mod/like.php:204
-msgid "Previous action reversed."
-msgstr "Il comando precedente è stato annullato."
-
-#: ../../mod/like.php:417
-msgid "Action completed."
-msgstr "Comando completato."
-
-#: ../../mod/like.php:418
-msgid "Thank you."
-msgstr "Grazie."
-
#: ../../mod/lockview.php:31
msgid "Remote privacy information not available."
msgstr "Le informazioni remote sulla privacy non sono disponibili."
@@ -7304,195 +7558,43 @@ msgstr "Visita il profilo di %s [%s]"
msgid "View Connnections"
msgstr "Guarda i contatti"
-#: ../../mod/lostpass.php:15
-msgid "No valid account found."
-msgstr "Nessun account valido trovato."
-
-#: ../../mod/lostpass.php:29
-msgid "Password reset request issued. Check your email."
-msgstr "La richiesta per reimpostare la password è stata inviata. Controlla la tua email."
-
-#: ../../mod/lostpass.php:35 ../../mod/lostpass.php:102
-#, php-format
-msgid "Site Member (%s)"
-msgstr "Utente del sito (%s)"
-
-#: ../../mod/lostpass.php:40
-#, php-format
-msgid "Password reset requested at %s"
-msgstr "È stato richiesto di reimpostare password su %s"
-
-#: ../../mod/lostpass.php:63
-msgid ""
-"Request could not be verified. (You may have previously submitted it.) "
-"Password reset failed."
-msgstr "La richiesta non può essere verificata (potresti averla già usata precedentemente). La password non può essere reimpostata."
-
-#: ../../mod/lostpass.php:85 ../../boot.php:1503
-msgid "Password Reset"
-msgstr "Reimposta la password"
-
-#: ../../mod/lostpass.php:86
-msgid "Your password has been reset as requested."
-msgstr "La password è stata reimpostata come richiesto."
-
-#: ../../mod/lostpass.php:87
-msgid "Your new password is"
-msgstr "La tua nuova password è"
-
-#: ../../mod/lostpass.php:88
-msgid "Save or copy your new password - and then"
-msgstr "Salva o copia la tua nuova password, quindi"
-
-#: ../../mod/lostpass.php:89
-msgid "click here to login"
-msgstr "clicca qui per accedere"
-
-#: ../../mod/lostpass.php:90
-msgid ""
-"Your password may be changed from the <em>Settings</em> page after "
-"successful login."
-msgstr "Puoi cambiare la tua password dalla pagina delle <em>Impostazioni</em> dopo aver effettuato l'accesso."
-
-#: ../../mod/lostpass.php:107
-#, php-format
-msgid "Your password has changed at %s"
-msgstr "La tua password su %s è cambiata"
-
-#: ../../mod/lostpass.php:122
-msgid "Forgot your Password?"
-msgstr "Hai dimenticato la password?"
-
-#: ../../mod/lostpass.php:123
-msgid ""
-"Enter your email address and submit to have your password reset. Then check "
-"your email for further instructions."
-msgstr "Inserisci il tuo indirizzo email per reimpostare la password. Dopo aver inviato la richiesta, controlla l'email e troverai le istruzioni per continuare."
-
-#: ../../mod/lostpass.php:124
-msgid "Email Address"
-msgstr "Indirizzo email"
-
-#: ../../mod/lostpass.php:125
-msgid "Reset"
-msgstr "Reimposta"
-
#: ../../mod/magic.php:70
msgid "Hub not found."
msgstr "Server non trovato."
#: ../../mod/vote.php:97
msgid "Total votes"
-msgstr "Totale voti"
+msgstr "Voti totali"
#: ../../mod/vote.php:98
msgid "Average Rating"
-msgstr "Media"
+msgstr "Valutazione media"
-#: ../../mod/mail.php:33
-msgid "Unable to lookup recipient."
-msgstr "Impossibile associare un destinatario."
-
-#: ../../mod/mail.php:41
-msgid "Unable to communicate with requested channel."
-msgstr "Impossibile comunicare con il canale richiesto."
-
-#: ../../mod/mail.php:48
-msgid "Cannot verify requested channel."
-msgstr "Impossibile verificare il canale richiesto."
-
-#: ../../mod/mail.php:74
-msgid "Selected channel has private message restrictions. Send failed."
-msgstr "Il canale ha delle regole restrittive per la ricezione dei messaggi privati. Invio fallito."
-
-#: ../../mod/mail.php:121 ../../mod/message.php:31
-msgid "Messages"
-msgstr "Messaggi"
-
-#: ../../mod/mail.php:132
-msgid "Message deleted."
-msgstr "Messaggio eliminato."
-
-#: ../../mod/mail.php:149
-msgid "Message recalled."
-msgstr "Messaggio revocato."
-
-#: ../../mod/mail.php:215
-msgid "Send Private Message"
-msgstr "Invia un messaggio privato"
-
-#: ../../mod/mail.php:216 ../../mod/mail.php:333
-msgid "To:"
-msgstr "A:"
-
-#: ../../mod/mail.php:221 ../../mod/mail.php:335
-msgid "Subject:"
-msgstr "Oggetto:"
-
-#: ../../mod/mail.php:232
-msgid "Send"
-msgstr "Invia"
-
-#: ../../mod/mail.php:259
-msgid "Message not found."
-msgstr "Messaggio non trovato."
-
-#: ../../mod/mail.php:302 ../../mod/message.php:72
-msgid "Delete message"
-msgstr "Elimina il messaggio"
-
-#: ../../mod/mail.php:303
-msgid "Recall message"
-msgstr "Revoca il messaggio"
-
-#: ../../mod/mail.php:305
-msgid "Message has been recalled."
-msgstr "Il messaggio è stato revocato."
-
-#: ../../mod/mail.php:322
-msgid "Private Conversation"
-msgstr "Conversazione privata"
-
-#: ../../mod/mail.php:326
-msgid "Delete conversation"
-msgstr "Elimina la conversazione"
-
-#: ../../mod/mail.php:328
-msgid ""
-"No secure communications available. You <strong>may</strong> be able to "
-"respond from the sender's profile page."
-msgstr "Non è disponibile alcun sistema per comunicare in modo sicuro. Puoi verificare se <strong>eventualmente</strong> è possibile rispondere dalla pagina del profilo del mittente."
-
-#: ../../mod/mail.php:332
-msgid "Send Reply"
-msgstr "Invia la risposta"
-
-#: ../../mod/manage.php:136
-#, php-format
-msgid "You have created %1$.0f of %2$.0f allowed channels."
-msgstr "Hai creato %1$.0f dei %2$.0f canali permessi."
+#: ../../mod/network.php:81
+msgid "No such group"
+msgstr "Impossibile trovare l'insieme"
-#: ../../mod/manage.php:144
-msgid "Create a new channel"
-msgstr "Crea un nuovo canale"
+#: ../../mod/network.php:119
+msgid "Search Results For:"
+msgstr "Cerca risultati con:"
-#: ../../mod/manage.php:149
-msgid "Current Channel"
-msgstr "Canale attuale"
+#: ../../mod/network.php:173
+msgid "Collection is empty"
+msgstr "L'insieme di canali è vuoto"
-#: ../../mod/manage.php:151
-msgid "Attach to one of your channels by selecting it."
-msgstr "Seleziona il canale a cui vuoi passare."
+#: ../../mod/network.php:181
+msgid "Collection: "
+msgstr "Insieme:"
-#: ../../mod/manage.php:152
-msgid "Default Channel"
-msgstr "Canale predefinito"
+#: ../../mod/network.php:194
+msgid "Connection: "
+msgstr "Contatto:"
-#: ../../mod/manage.php:153
-msgid "Make Default"
-msgstr "Rendi predefinito"
+#: ../../mod/network.php:197
+msgid "Invalid connection."
+msgstr "Contatto non valido."
-#: ../../mod/wall_upload.php:34
+#: ../../mod/wall_upload.php:35
msgid "Wall Photos"
msgstr "Foto della bacheca"
@@ -7502,7 +7604,7 @@ msgstr "Profili corrispondenti"
#: ../../mod/match.php:24
msgid "No keywords to match. Please add keywords to your default profile."
-msgstr "Nessuna parola chiave per le ricerche. Aggiungi parole chiave al tuo profilo predefinito."
+msgstr "Non hai scritto parole chiave. Aggiungi parole chiave al tuo profilo predefinito per comparire nelle ricerche."
#: ../../mod/match.php:61
msgid "is interested in:"
@@ -7512,87 +7614,91 @@ msgstr "interessi personali:"
msgid "No matches"
msgstr "Nessun risultato"
-#: ../../mod/menu.php:21
+#: ../../mod/menu.php:31
msgid "Menu updated."
msgstr "Menù aggiornato."
-#: ../../mod/menu.php:25
+#: ../../mod/menu.php:35
msgid "Unable to update menu."
msgstr "Impossibile aggiornare il menù."
-#: ../../mod/menu.php:30
+#: ../../mod/menu.php:40
msgid "Menu created."
msgstr "Menù creato."
-#: ../../mod/menu.php:34
+#: ../../mod/menu.php:44
msgid "Unable to create menu."
msgstr "Impossibile creare il menù."
-#: ../../mod/menu.php:57
+#: ../../mod/menu.php:76
msgid "Manage Menus"
msgstr "Gestione menù"
-#: ../../mod/menu.php:60
+#: ../../mod/menu.php:79
msgid "Drop"
msgstr "Elimina"
-#: ../../mod/menu.php:62
+#: ../../mod/menu.php:81
+msgid "Bookmarks allowed"
+msgstr "Permetti segnalibri"
+
+#: ../../mod/menu.php:82
msgid "Create a new menu"
msgstr "Crea un nuovo menù"
-#: ../../mod/menu.php:63
+#: ../../mod/menu.php:83
msgid "Delete this menu"
msgstr "Elimina questo menù"
-#: ../../mod/menu.php:64 ../../mod/menu.php:109
+#: ../../mod/menu.php:84 ../../mod/menu.php:125
msgid "Edit menu contents"
msgstr "Modifica i contenuti del menù"
-#: ../../mod/menu.php:65
+#: ../../mod/menu.php:85
msgid "Edit this menu"
msgstr "Modifica questo menù"
-#: ../../mod/menu.php:80
+#: ../../mod/menu.php:96
msgid "New Menu"
msgstr "Nuovo menù"
-#: ../../mod/menu.php:81 ../../mod/menu.php:110
+#: ../../mod/menu.php:97 ../../mod/menu.php:126
msgid "Menu name"
msgstr "Nome del menù"
-#: ../../mod/menu.php:81 ../../mod/menu.php:110
+#: ../../mod/menu.php:97 ../../mod/menu.php:126
msgid "Must be unique, only seen by you"
msgstr "Deve essere unico, lo vedrai solo tu"
-#: ../../mod/menu.php:82 ../../mod/menu.php:111
+#: ../../mod/menu.php:98 ../../mod/menu.php:127
msgid "Menu title"
msgstr "Titolo del menù"
-#: ../../mod/menu.php:82 ../../mod/menu.php:111
+#: ../../mod/menu.php:98 ../../mod/menu.php:127
msgid "Menu title as seen by others"
msgstr "Titolo del menù come comparirà a tutti"
-#: ../../mod/menu.php:83 ../../mod/menu.php:112
+#: ../../mod/menu.php:99 ../../mod/menu.php:128
msgid "Allow bookmarks"
msgstr "Permetti l'invio di segnalibri"
-#: ../../mod/menu.php:83 ../../mod/menu.php:112
+#: ../../mod/menu.php:99 ../../mod/menu.php:128
msgid "Menu may be used to store saved bookmarks"
-msgstr "Puoi salvare i segnalibri nei menu"
+msgstr "Puoi salvare i segnalibri nei menù"
-#: ../../mod/menu.php:98
+#: ../../mod/menu.php:114
msgid "Menu deleted."
msgstr "Menù eliminato."
-#: ../../mod/menu.php:100
+#: ../../mod/menu.php:116
msgid "Menu could not be deleted."
msgstr "Il menù non può essere eliminato."
-#: ../../mod/menu.php:106
+#: ../../mod/menu.php:122
msgid "Edit Menu"
msgstr "Modifica menù"
-#: ../../mod/menu.php:108
+#: ../../mod/menu.php:124
msgid "Add or remove entries to this menu"
msgstr "Aggiungi o rimuovi elementi di questo menù"
@@ -7608,36 +7714,46 @@ msgstr "Nessun messaggio."
msgid "D, d M Y - g:i A"
msgstr "D d M Y - G:i"
-#: ../../mod/new_channel.php:107
+#: ../../mod/new_channel.php:109
msgid "Add a Channel"
msgstr "Aggiungi un canale"
-#: ../../mod/new_channel.php:108
+#: ../../mod/new_channel.php:110
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 "I contenuti che pubblichi finiscono in un \"canale\". Un canale può essere usato per mantenere un tuo profilo personale, per avere un blog, per creare forum di discussione o gruppi di interesse, per pagine di celebrità e molto altro. Puoi creare quanti canali vuoi a meno di limiti dati dal gestore del sito."
+msgstr "I contenuti che pubblichi sono mostrati nel tuo \"canale\". Un canale può essere usato come bacheca personale, come blog, oppure può essere un forum di discussione, un gruppo di interesse, una pagina di celebrità e molto altro. Puoi creare tanti canali quanti ne permette il tuo sito."
-#: ../../mod/new_channel.php:111
+#: ../../mod/new_channel.php:113
msgid "Examples: \"Bob Jameson\", \"Lisa and her Horses\", \"Soccer\", \"Aviation Group\" "
msgstr "Per esempio: \"Mario Rossi\", \"Lisa e le sue ricette\", \"Il campionato\", \"Il gruppo di escursionismo\""
-#: ../../mod/new_channel.php:112
+#: ../../mod/new_channel.php:114
msgid "Choose a short nickname"
msgstr "Scegli un nome breve"
-#: ../../mod/new_channel.php:113
+#: ../../mod/new_channel.php:115
msgid ""
"Your nickname will be used to create an easily remembered channel address "
"(like an email address) which you can share with others."
msgstr "Il nome breve sarà usato per creare un indirizzo facile da ricordare per il tuo canale (simile a una email). Così potrai condividerlo e gli altri potranno trovarti."
-#: ../../mod/new_channel.php:114
+#: ../../mod/new_channel.php:116
msgid "Or <a href=\"import\">import an existing channel</a> from another location"
msgstr "Oppure <a href=\"import\">importa un tuo canale esistente</a> da un altro server/hub"
+#: ../../mod/new_channel.php:118
+msgid "Channel Type"
+msgstr "Tipo di canale"
+
+#: ../../mod/new_channel.php:119
+msgid ""
+"Please choose a channel type (such as social networking or community forum) "
+"and privacy requirements so we can select the best permissions for you"
+msgstr "Descrivi il tipo di canale che vorresti creare (per esempio se ti interessa più usarlo come social network, come un forum di discussione...) e il tipo di privacy che preferisci. RedMatrix sceglierà per te i permessi più adatti."
+
#: ../../mod/notifications.php:26
msgid "Invalid request identifier."
msgstr "L'identificativo della richiesta non è valido."
@@ -7654,6 +7770,18 @@ msgstr "Non ci sono nuove notifiche di sistema."
msgid "System Notifications"
msgstr "Notifiche di sistema"
+#: ../../mod/xchan.php:6
+msgid "Xchan Lookup"
+msgstr "Ricerca canale"
+
+#: ../../mod/xchan.php:9
+msgid "Lookup xchan beginning with (or webbie): "
+msgstr "Cerca un canale (o un webbie) che inizia per:"
+
+#: ../../mod/zfinger.php:23
+msgid "invalid target signature"
+msgstr "la firma ricevuta non è valida"
+
#: ../../mod/oexchange.php:23
msgid "Unable to find your hub."
msgstr "Impossibile raggiungere il tuo hub."
@@ -7662,13 +7790,196 @@ msgstr "Impossibile raggiungere il tuo hub."
msgid "Post successful."
msgstr "Inviato!"
-#: ../../mod/zfinger.php:23
-msgid "invalid target signature"
-msgstr "la firma riscontrata non è valida"
+#: ../../mod/directory.php:201
+msgid "Gender: "
+msgstr "Sesso:"
-#: ../../mod/openid.php:26
-msgid "OpenID protocol error. No ID returned."
-msgstr "Errore del protocollo OpenID. Nessun ID ricevuto in risposta."
+#: ../../mod/directory.php:203
+msgid "Status: "
+msgstr "Stato:"
+
+#: ../../mod/directory.php:205
+msgid "Homepage: "
+msgstr "Homepage:"
+
+#: ../../mod/directory.php:208
+msgid "Hometown: "
+msgstr "Città dove vivo:"
+
+#: ../../mod/directory.php:210
+msgid "About: "
+msgstr "Informazioni:"
+
+#: ../../mod/directory.php:265
+msgid "Public Forum:"
+msgstr "Forum pubblico:"
+
+#: ../../mod/directory.php:268
+msgid "Keywords: "
+msgstr "Parole chiave:"
+
+#: ../../mod/directory.php:317
+msgid "Finding:"
+msgstr "Ricerca:"
+
+#: ../../mod/directory.php:322
+msgid "next page"
+msgstr "pagina successiva"
+
+#: ../../mod/directory.php:322
+msgid "previous page"
+msgstr "pagina precedente"
+
+#: ../../mod/directory.php:339
+msgid "No entries (some entries may be hidden)."
+msgstr "Nessun risultato (qualche elemento potrebbe essere nascosto)."
+
+#: ../../mod/photos.php:77
+msgid "Page owner information could not be retrieved."
+msgstr "Impossibile ottenere informazioni sul proprietario della pagina."
+
+#: ../../mod/photos.php:97
+msgid "Album not found."
+msgstr "Album non trovato."
+
+#: ../../mod/photos.php:119 ../../mod/photos.php:672
+msgid "Delete Album"
+msgstr "Elimina album"
+
+#: ../../mod/photos.php:159 ../../mod/photos.php:958
+msgid "Delete Photo"
+msgstr "Elimina foto"
+
+#: ../../mod/photos.php:469
+msgid "No photos selected"
+msgstr "Nessuna foto selezionata"
+
+#: ../../mod/photos.php:513
+msgid "Access to this item is restricted."
+msgstr "Questo elemento non è visibile a tutti."
+
+#: ../../mod/photos.php:552
+#, php-format
+msgid "%1$.2f MB of %2$.2f MB photo storage used."
+msgstr "Hai usato %1$.2f Mb dei %2$.2f Mb di spazio disponibile."
+
+#: ../../mod/photos.php:555
+#, php-format
+msgid "%1$.2f MB photo storage used."
+msgstr "Hai usato %1$.2f Mb del tuo spazio disponibile."
+
+#: ../../mod/photos.php:579
+msgid "Upload Photos"
+msgstr "Carica foto"
+
+#: ../../mod/photos.php:583 ../../mod/photos.php:665 ../../mod/photos.php:943
+msgid "Enter a new album name"
+msgstr "Inserisci il nome di un nuovo album"
+
+#: ../../mod/photos.php:584 ../../mod/photos.php:666 ../../mod/photos.php:944
+msgid "or select an existing one (doubleclick)"
+msgstr "o seleziona uno esistente (doppio click)"
+
+#: ../../mod/photos.php:585
+msgid "Do not show a status post for this upload"
+msgstr "Non creare un messaggio di stato per questo caricamento"
+
+#: ../../mod/photos.php:613
+msgid "Album name could not be decoded"
+msgstr "Non è stato possibile leggere il nome dell'album"
+
+#: ../../mod/photos.php:654 ../../mod/photos.php:1167
+#: ../../mod/photos.php:1183
+msgid "Contact Photos"
+msgstr "Foto dei contatti"
+
+#: ../../mod/photos.php:678
+msgid "Show Newest First"
+msgstr "Prima i più recenti"
+
+#: ../../mod/photos.php:680
+msgid "Show Oldest First"
+msgstr "Prima i più vecchi"
+
+#: ../../mod/photos.php:707 ../../mod/photos.php:1215
+msgid "View Photo"
+msgstr "Guarda la foto"
+
+#: ../../mod/photos.php:736
+msgid "Edit Album"
+msgstr "Modifica album"
+
+#: ../../mod/photos.php:781
+msgid "Permission denied. Access to this item may be restricted."
+msgstr "Permesso negato. L'accesso a questo elemento può essere stato limitato."
+
+#: ../../mod/photos.php:783
+msgid "Photo not available"
+msgstr "Foto non disponibile"
+
+#: ../../mod/photos.php:841
+msgid "Use as profile photo"
+msgstr "Usa come foto del profilo"
+
+#: ../../mod/photos.php:848
+msgid "Private Photo"
+msgstr "Foto privata"
+
+#: ../../mod/photos.php:863
+msgid "View Full Size"
+msgstr "Vedi nelle dimensioni originali"
+
+#: ../../mod/photos.php:937
+msgid "Edit photo"
+msgstr "Modifica la foto"
+
+#: ../../mod/photos.php:939
+msgid "Rotate CW (right)"
+msgstr "Ruota (senso orario)"
+
+#: ../../mod/photos.php:940
+msgid "Rotate CCW (left)"
+msgstr "Ruota (senso antiorario)"
+
+#: ../../mod/photos.php:947
+msgid "Caption"
+msgstr "Titolo"
+
+#: ../../mod/photos.php:949
+msgid "Add a Tag"
+msgstr "Aggiungi tag"
+
+#: ../../mod/photos.php:953
+msgid "Example: @bob, @Barbara_Jensen, @jim@example.com"
+msgstr "Esempio: @bob, @Barbara_Jensen, @jim@example.com"
+
+#: ../../mod/photos.php:956
+msgid "Flag as adult in album view"
+msgstr "Marca come 'per adulti'"
+
+#: ../../mod/photos.php:1133
+msgid "In This Photo:"
+msgstr "In questa foto:"
+
+#: ../../mod/photos.php:1221
+msgid "View Album"
+msgstr "Guarda l'album"
+
+#: ../../mod/photos.php:1244
+msgid "Recent Photos"
+msgstr "Foto recenti"
+
+#: ../../mod/ping.php:265
+msgid "sent you a private message"
+msgstr "ti ha inviato un messaggio privato"
+
+#: ../../mod/ping.php:316
+msgid "added your channel"
+msgstr "ha aggiunto il tuo canale"
+
+#: ../../mod/ping.php:357
+msgid "posted an event"
+msgstr "ha creato un evento"
#: ../../mod/appman.php:28 ../../mod/appman.php:44
msgid "App installed."
@@ -7754,6 +8065,10 @@ msgid ""
"removed from the network"
msgstr "A meno che tu non lo richieda espressamente, solo i canali presenti su questo server saranno rimossi dalla rete."
+#: ../../mod/service_limits.php:19
+msgid "No service class restrictions found."
+msgstr "Non esistono restrizioni su questa classe di account."
+
#: ../../view/theme/apw/php/config.php:202
#: ../../view/theme/apw/php/config.php:236
msgid "Schema Default"
@@ -7761,15 +8076,13 @@ msgstr "Schema predefinito"
#: ../../view/theme/apw/php/config.php:203
msgid "Sans-Serif"
-msgstr "Sans-Serif"
+msgstr "Sans-serif"
#: ../../view/theme/apw/php/config.php:204
msgid "Monospace"
msgstr "Monospace"
#: ../../view/theme/apw/php/config.php:259
-#: ../../view/theme/blogga/php/config.php:69
-#: ../../view/theme/blogga/view/theme/blog/config.php:69
#: ../../view/theme/redbasic/php/config.php:102
msgid "Theme settings"
msgstr "Impostazioni del tema"
@@ -7826,11 +8139,11 @@ msgstr "Colore di sfondo"
#: ../../view/theme/apw/php/config.php:272
msgid "Set section background image"
-msgstr "Immagine di sfondo dei contenuti"
+msgstr "Immagine di sfondo della sezione"
#: ../../view/theme/apw/php/config.php:273
msgid "Set section background color"
-msgstr "Colore di sfondo dei contenuti"
+msgstr "Colore di sfondo dell'area principale"
#: ../../view/theme/apw/php/config.php:274
msgid "Set color of items - use hex"
@@ -7882,38 +8195,23 @@ msgstr "Float degli oggetti della pagina"
#: ../../view/theme/apw/php/config.php:286
msgid "Left offset of the section element"
-msgstr "Spostamento a sinistra dei contenuti"
+msgstr "Margine sinistro dell'area principale"
#: ../../view/theme/apw/php/config.php:287
msgid "Right offset of the section element"
-msgstr "Spostamento a destra dei contenuti"
+msgstr "Margine destro dell'area principale"
#: ../../view/theme/apw/php/config.php:288
msgid "Section width"
-msgstr "Larghezza dei contenuti"
+msgstr "Larghezza dell'area principale"
#: ../../view/theme/apw/php/config.php:289
msgid "Left offset of the aside"
-msgstr "Spostamento a sinistra della colonna laterale"
+msgstr "Margine sinistro della colonna laterale"
#: ../../view/theme/apw/php/config.php:290
msgid "Right offset of the aside element"
-msgstr "Spostamento a destra della colonna laterale"
-
-#: ../../view/theme/blogga/php/config.php:47
-#: ../../view/theme/blogga/view/theme/blog/config.php:47
-msgid "None"
-msgstr "Nessuno"
-
-#: ../../view/theme/blogga/php/config.php:70
-#: ../../view/theme/blogga/view/theme/blog/config.php:70
-msgid "Header image"
-msgstr "Immagine dell'intestazione"
-
-#: ../../view/theme/blogga/php/config.php:71
-#: ../../view/theme/blogga/view/theme/blog/config.php:71
-msgid "Header image only on profile pages"
-msgstr "Metti un'immagine solo nell'intestazione dei profili"
+msgstr "Margine destro della colonna laterale"
#: ../../view/theme/redbasic/php/config.php:84
msgid "Light (Red Matrix default)"
@@ -8039,41 +8337,41 @@ msgstr "Album con foto storte"
msgid "Are you a clean desk or a messy desk person?"
msgstr "La tua scrivania è sempre a posto? Sei una persona disordinata?"
-#: ../../boot.php:1291
+#: ../../boot.php:1336
#, php-format
msgid "Update %s failed. See error logs."
msgstr "%s: aggiornamento fallito. Controlla i log di errore."
-#: ../../boot.php:1294
+#: ../../boot.php:1339
#, php-format
msgid "Update Error at %s"
msgstr "Errore di aggiornamento su %s"
-#: ../../boot.php:1468
+#: ../../boot.php:1506
msgid ""
"Create an account to access services and applications within the Red Matrix"
msgstr "Registrati per accedere ai servizi e alle applicazioni di RedMatrix"
-#: ../../boot.php:1496
+#: ../../boot.php:1532
msgid "Password"
msgstr "Password"
-#: ../../boot.php:1497
+#: ../../boot.php:1533
msgid "Remember me"
msgstr "Resta connesso"
-#: ../../boot.php:1502
+#: ../../boot.php:1536
msgid "Forgot your password?"
msgstr "Hai dimenticato la password?"
-#: ../../boot.php:1567
+#: ../../boot.php:1617
msgid "permission denied"
msgstr "permesso negato"
-#: ../../boot.php:1568
+#: ../../boot.php:1618
msgid "Got Zot?"
msgstr "Hai Zot?"
-#: ../../boot.php:1998
+#: ../../boot.php:2101
msgid "toggle mobile"
msgstr "attiva/disattiva versione mobile"
diff --git a/view/it/request_notify_eml.tpl b/view/it/request_notify_eml.tpl
deleted file mode 100644
index 4f3cfe02a..000000000
--- a/view/it/request_notify_eml.tpl
+++ /dev/null
@@ -1,17 +0,0 @@
-
-Ciao {{$myname}},
-
-Su {{$sitename}} hai appena ricevuto da
-
- '{{$requestor}}' una richiesta di entrare in contatto.
-
-Se vuoi, puoi visitare il suo profilo su {{$url}}.
-
-Per vedere i dettagli della richiesta devi effettuare l'accesso
-e poi potrai approvarla o rifiutarla.
-
-{{$siteurl}}
-
-Saluti,
-
- L'amministratore di {{$sitename}} \ No newline at end of file
diff --git a/view/it/strings.php b/view/it/strings.php
index 605dcd889..84c350ee9 100644
--- a/view/it/strings.php
+++ b/view/it/strings.php
@@ -7,46 +7,19 @@ function string_plural_select_it($n){
;
$a->strings["Cannot locate DNS info for database server '%s'"] = "Non trovo le informazioni DNS per il database server '%s'";
$a->strings["Profile Photos"] = "Foto del profilo";
-$a->strings["view full size"] = "guarda nelle dimensioni reali";
-$a->strings["Embedded content"] = "Contenuti incorporati";
-$a->strings["Embedding disabled"] = "Contenuti incorporati - funzione disabilitata";
+$a->strings["Channel is blocked on this site."] = "Il canale è bloccato per questo sito.";
+$a->strings["Channel location missing."] = "Manca l'indirizzo del canale.";
+$a->strings["Response from remote channel was incomplete."] = "La risposta dal canale non è completa.";
+$a->strings["Channel was deleted and no longer exists."] = "Il canale è stato rimosso e non esiste più.";
+$a->strings["Protocol disabled."] = "Protocollo disabilitato.";
+$a->strings["Channel discovery failed."] = "La ricerca del canale non ha avuto successo.";
+$a->strings["local account not found."] = "l'account locale non è stato trovato.";
+$a->strings["Cannot connect to yourself."] = "Non puoi connetterti a te stesso.";
$a->strings["created a new post"] = "Ha creato un nuovo articolo";
$a->strings["commented on %s's post"] = "ha commentato l'articolo di %s";
-$a->strings["Site Admin"] = "Amministrazione sito";
-$a->strings["Bookmarks"] = "Segnalibri";
-$a->strings["Address Book"] = "Rubrica";
-$a->strings["Login"] = "Accedi";
-$a->strings["Channel Manager"] = "Gestione canali";
-$a->strings["Matrix"] = "RedMatrix";
-$a->strings["Settings"] = "Impostazioni";
-$a->strings["Files"] = "Archivio file";
-$a->strings["Webpages"] = "Pagine web";
-$a->strings["Channel Home"] = "Bacheca del canale";
-$a->strings["Profile"] = "Profilo";
-$a->strings["Photos"] = "Foto";
-$a->strings["Events"] = "Eventi";
-$a->strings["Directory"] = "Tutti i canali";
-$a->strings["Help"] = "Guida";
-$a->strings["Mail"] = "Messaggi";
-$a->strings["Mood"] = "Umore";
-$a->strings["Poke"] = "Poke";
-$a->strings["Chat"] = "Area chat";
-$a->strings["Search"] = "Cerca";
-$a->strings["Probe"] = "Diagnostica";
-$a->strings["Suggest"] = "Suggerisci";
-$a->strings["Random Channel"] = "Canale casuale";
-$a->strings["Invite"] = "Invita";
-$a->strings["Features"] = "Funzionalità";
-$a->strings["Language"] = "Lingua";
-$a->strings["Post"] = "Articolo";
-$a->strings["Profile Photo"] = "Foto del profilo";
-$a->strings["Update"] = "Aggiorna";
-$a->strings["Install"] = "Installa";
-$a->strings["Purchase"] = "Acquista";
-$a->strings["Edit"] = "Modifica";
-$a->strings["Delete"] = "Elimina";
-$a->strings["Unknown"] = "Sconosciuto";
+$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."] = "I controlli di sicurezza sono falliti. Probabilmente è accaduto perché la pagina è stata tenuta aperta troppo a lungo (ore?) prima di inviare il contenuto.";
$a->strings["New Page"] = "Nuova pagina web";
+$a->strings["Edit"] = "Modifica";
$a->strings["View"] = "Guarda";
$a->strings["Preview"] = "Anteprima";
$a->strings["Actions"] = "Azioni";
@@ -54,49 +27,87 @@ $a->strings["Page Link"] = "Link alla pagina";
$a->strings["Title"] = "Titolo";
$a->strings["Created"] = "Creato";
$a->strings["Edited"] = "Modificato";
-$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."] = "L'identificativo di sicurezza del modulo che hai riempito non è corretto. Probabilmente è accaduto perché la pagina è stata tenuta aperta troppo a lungo (ore?) prima di inviare il contenuto.";
-$a->strings["Invalid data packet"] = "Dati non validi";
-$a->strings["Unable to verify channel signature"] = "Impossibile verificare la firma elettronica del canale";
-$a->strings["Unable to verify site signature for %s"] = "Impossibile verificare la firma elettronica del sito %s";
-$a->strings["Permission denied."] = "Permesso negato.";
-$a->strings["Image exceeds website size limit of %lu bytes"] = "L'immagine supera il limite massimo di %lu bytes";
-$a->strings["Image file is empty."] = "Il file dell'immagine è vuoto.";
-$a->strings["Unable to process image"] = "Impossibile elaborare l'immagine";
-$a->strings["Photo storage failed."] = "Impossibile caricare la foto.";
-$a->strings["Photo Albums"] = "Album foto";
-$a->strings["Upload New Photos"] = "Carica nuove foto";
-$a->strings["Visible to your default audience"] = "Visibile secondo le impostazioni predefinite";
-$a->strings["Show"] = "Mostra";
-$a->strings["Don't show"] = "Non mostrare";
-$a->strings["Permissions"] = "Permessi";
-$a->strings["Close"] = "Chiudi";
+$a->strings["%d invitation available"] = array(
+ 0 => "%d invito disponibile",
+ 1 => "%d inviti disponibili",
+);
+$a->strings["Advanced"] = "Avanzate";
+$a->strings["Find Channels"] = "Ricerca canali";
+$a->strings["Enter name or interest"] = "Scrivi un nome o un interesse";
+$a->strings["Connect/Follow"] = "Aggiungi";
+$a->strings["Examples: Robert Morgenstein, Fishing"] = "Per esempio: Mario Rossi, Pesca";
+$a->strings["Find"] = "Cerca";
+$a->strings["Channel Suggestions"] = "Canali suggeriti";
+$a->strings["Random Profile"] = "Profilo casuale";
+$a->strings["Invite Friends"] = "Invita amici";
+$a->strings["Advanced example: name=fred and country=iceland"] = "Per esempio: name=mario e country=italy";
+$a->strings["Saved Folders"] = "Cartelle salvate";
+$a->strings["Everything"] = "Tutto";
+$a->strings["Categories"] = "Categorie";
+$a->strings["%d connection in common"] = array(
+ 0 => "%d contatto in comune",
+ 1 => "%d contatti in comune",
+);
+$a->strings["show more"] = "mostra tutto";
+$a->strings["Embedded content"] = "Contenuti incorporati";
+$a->strings["Embedding disabled"] = "Disabilita la creazione di contenuti incorporati";
+$a->strings["No recipient provided."] = "Devi scegliere un destinatario.";
+$a->strings["[no subject]"] = "[nessun titolo]";
+$a->strings["Unable to determine sender."] = "Impossibile determinare il mittente.";
+$a->strings["Stored post could not be verified."] = "Non è stato possibile verificare l'articolo inserito.";
$a->strings[" and "] = "e";
$a->strings["public profile"] = "profilo pubblico";
$a->strings["%1\$s changed %2\$s to &ldquo;%3\$s&rdquo;"] = "%1\$s ha cambiato %2\$s in &ldquo;%3\$s&rdquo;";
$a->strings["Visit %1\$s's %2\$s"] = "Guarda %2\$s di %1\$s ";
$a->strings["%1\$s has an updated %2\$s, changing %3\$s."] = "%1\$s ha aggiornato %2\$s cambiando %3\$s.";
-$a->strings["Public Timeline"] = "Diario pubblico";
+$a->strings["Visible to your default audience"] = "Visibile secondo le impostazioni predefinite";
+$a->strings["Show"] = "Mostra";
+$a->strings["Don't show"] = "Non mostrare";
+$a->strings["Permissions"] = "Permessi";
+$a->strings["Close"] = "Chiudi";
+$a->strings["Attachments:"] = "Allegati:";
+$a->strings["l F d, Y \\@ g:i A"] = "l d F Y \\@ G:i";
+$a->strings["Redmatrix event notification:"] = "Notifica eventi RedMatrix:";
+$a->strings["Starts:"] = "Inizio:";
+$a->strings["Finishes:"] = "Fine:";
+$a->strings["Location:"] = "Luogo:";
+$a->strings["Permission denied."] = "Permesso negato.";
$a->strings["Item was not found."] = "Elemento non trovato.";
$a->strings["No source file."] = "Nessun file di origine.";
$a->strings["Cannot locate file to replace"] = "Il file da sostituire non è stato trovato";
$a->strings["Cannot locate file to revise/update"] = "Il file da aggiornare non è stato trovato";
$a->strings["File exceeds size limit of %d"] = "Il file supera la dimensione massima di %d";
$a->strings["You have reached your limit of %1$.0f Mbytes attachment storage."] = "Hai raggiunto il limite complessivo di %1$.0f Mbytes per gli allegati.";
-$a->strings["File upload failed. Possible system limit or action terminated."] = "Caricamento file fallito, potrebbe aver superato i limiti o l'azione potrebbe essere stata interrotta.";
+$a->strings["File upload failed. Possible system limit or action terminated."] = "Caricamento file fallito, potrebbe essere stato interrotto o potrebbe aver superato lo spazio assegnato.";
$a->strings["Stored file could not be verified. Upload failed."] = "Il file non può essere verificato. Caricamento fallito.";
$a->strings["Path not available."] = "Percorso non disponibile.";
$a->strings["Empty pathname"] = "Il percorso del file è vuoto";
-$a->strings["duplicate filename or path"] = "il file o percorso del file è duplicato";
+$a->strings["duplicate filename or path"] = "il file o il percorso del file è duplicato";
$a->strings["Path not found."] = "Percorso del file non trovato.";
$a->strings["mkdir failed."] = "mkdir fallito.";
$a->strings["database storage failed."] = "scrittura su database fallita.";
-$a->strings["Click here to upgrade."] = "Clicca qui per aggiornare.";
-$a->strings["This action exceeds the limits set by your subscription plan."] = "Questa operazione esce dai termini del tuo abbonamento.";
-$a->strings["This action is not available under your subscription plan."] = "Questa operazione non è prevista dal tuo abbonamento.";
-$a->strings["l F d, Y \\@ g:i A"] = "l d F Y \\@ G:i";
-$a->strings["Starts:"] = "Inizio:";
-$a->strings["Finishes:"] = "Fine:";
-$a->strings["Location:"] = "Luogo:";
+$a->strings["parent"] = "cartella superiore";
+$a->strings["Collection"] = "Cartella";
+$a->strings["Principal"] = "Principale";
+$a->strings["Addressbook"] = "Rubrica";
+$a->strings["Calendar"] = "Calendario";
+$a->strings["Schedule Inbox"] = "Appuntamenti ricevuti";
+$a->strings["Schedule Outbox"] = "Appuntamenti inviati";
+$a->strings["Unknown"] = "Sconosciuto";
+$a->strings["%1\$s used"] = "%1\$s occupati";
+$a->strings["%1\$s used of %2\$s (%3\$s&#37;)"] = "%1\$s occupati di %2\$s (%3\$s&#37;)";
+$a->strings["Files"] = "Archivio file";
+$a->strings["Name"] = "Nome";
+$a->strings["Type"] = "Tipo";
+$a->strings["Size"] = "Dimensione";
+$a->strings["Last Modified"] = "Ultima modifica";
+$a->strings["Delete"] = "Elimina";
+$a->strings["Total"] = "Totale";
+$a->strings["Create new folder"] = "Crea una nuova cartella";
+$a->strings["Create"] = "Crea";
+$a->strings["Upload file"] = "Carica un file";
+$a->strings["Upload"] = "Carica";
+$a->strings["%1\$s's bookmarks"] = "I segnalibri di %1\$s";
$a->strings["Logout"] = "Esci";
$a->strings["End this session"] = "Chiudi questa sessione";
$a->strings["Home"] = "Bacheca";
@@ -107,47 +118,339 @@ $a->strings["Edit Profiles"] = "Modifica i profili";
$a->strings["Manage/Edit profiles"] = "Gestisci/modifica i profili";
$a->strings["Edit Profile"] = "Modifica il profilo";
$a->strings["Edit your profile"] = "Modifica il profilo";
+$a->strings["Photos"] = "Foto";
$a->strings["Your photos"] = "Le tue foto";
$a->strings["Your files"] = "I tuoi file";
+$a->strings["Chat"] = "Area chat";
$a->strings["Your chatrooms"] = "Le tue aree chat";
+$a->strings["Bookmarks"] = "Segnalibri";
$a->strings["Your bookmarks"] = "I tuoi segnalibri";
+$a->strings["Webpages"] = "Pagine web";
$a->strings["Your webpages"] = "Le tue pagine web";
-$a->strings["Sign in"] = "Entra";
+$a->strings["Login"] = "Accedi";
+$a->strings["Sign in"] = "Accedi";
$a->strings["%s - click to logout"] = "%s - clicca per uscire";
+$a->strings["Remote authentication"] = "Autenticazione magica dal tuo server";
$a->strings["Click to authenticate to your home hub"] = "Clicca per autenticarti sul tuo server principale";
$a->strings["Home Page"] = "Bacheca";
$a->strings["Register"] = "Iscriviti";
$a->strings["Create an account"] = "Crea un account";
+$a->strings["Help"] = "Guida";
$a->strings["Help and documentation"] = "Guida e documentazione";
$a->strings["Apps"] = "Apps";
$a->strings["Applications, utilities, links, games"] = "Applicazioni, utilità, link, giochi";
+$a->strings["Search"] = "Cerca";
$a->strings["Search site content"] = "Cerca nel sito";
-$a->strings["Channel Locator"] = "Ricerca canali";
+$a->strings["Directory"] = "Elenco pubblico";
+$a->strings["Channel Directory"] = "Elenco pubblico canali";
+$a->strings["Matrix"] = "RedMatrix";
$a->strings["Your matrix"] = "La tua rete";
$a->strings["Mark all matrix notifications seen"] = "Segna come lette le notifiche della tua rete";
+$a->strings["Channel Home"] = "Bacheca del canale";
$a->strings["Channel home"] = "Bacheca del canale";
-$a->strings["Mark all channel notifications seen"] = "Segna come lette le notifiche dei canali";
+$a->strings["Mark all channel notifications seen"] = "Segna come lette le notifiche del canale";
$a->strings["Connections"] = "Contatti";
-$a->strings["Notices"] = "Notifiche";
+$a->strings["Notices"] = "Avvisi";
$a->strings["Notifications"] = "Notifiche";
$a->strings["See all notifications"] = "Vedi tutte le notifiche";
$a->strings["Mark all system notifications seen"] = "Segna come lette le notifiche di sistema";
+$a->strings["Mail"] = "Messaggi";
$a->strings["Private mail"] = "Messaggi privati";
$a->strings["See all private messages"] = "Guarda tutti i messaggi privati";
$a->strings["Mark all private messages seen"] = "Segna come letti tutti i messaggi privati";
$a->strings["Inbox"] = "In arrivo";
$a->strings["Outbox"] = "Inviati";
$a->strings["New Message"] = "Nuovo messaggio";
+$a->strings["Events"] = "Eventi";
$a->strings["Event Calendar"] = "Calendario";
$a->strings["See all events"] = "Guarda tutti gli eventi";
$a->strings["Mark all events seen"] = "Marca come letti tutti gli eventi";
-$a->strings["Manage Your Channels"] = "Gestisci i contatti dei tuoi canali";
-$a->strings["Account/Channel Settings"] = "Impostazioni account e canali";
+$a->strings["Channel Manager"] = "Gestione canali";
+$a->strings["Manage Your Channels"] = "Gestisci i tuoi canali";
+$a->strings["Settings"] = "Impostazioni";
+$a->strings["Account/Channel Settings"] = "Impostazioni dell'account e del canale";
$a->strings["Admin"] = "Amministrazione";
-$a->strings["Site Setup and Configuration"] = "Configurazione del sito";
-$a->strings["Nothing new here"] = "Niente di nuovo qui";
+$a->strings["Site Setup and Configuration"] = "Installazione e configurazione del sito";
+$a->strings["Loading..."] = "Caricamento in corso...";
$a->strings["Please wait..."] = "Attendere...";
-$a->strings["%1\$s's bookmarks"] = "I segnalibri di %1\$s";
+$a->strings["view full size"] = "guarda nelle dimensioni reali";
+$a->strings["Directory Options"] = "Opzioni elenco pubblico";
+$a->strings["Alphabetic"] = "Alfabetico";
+$a->strings["Reverse Alphabetic"] = "Alfabetico inverso";
+$a->strings["Newest to Oldest"] = "Prima i più recenti";
+$a->strings["Oldest to Newest"] = "Prima i più vecchi";
+$a->strings["Public Forums Only"] = "Solo forum pubblici";
+$a->strings["Sort"] = "Ordinamento";
+$a->strings["Enable Safe Search"] = "Abilita SafeSearch";
+$a->strings["Disable Safe Search"] = "Disabilita SafeSearch";
+$a->strings["Safe Mode"] = "Modalità SafeSearch";
+$a->strings["Can view my normal stream and posts"] = "Può vedere i miei contenuti e articoli normali";
+$a->strings["Can view my default channel profile"] = "Può vedere il profilo predefinito del canale";
+$a->strings["Can view my photo albums"] = "Può vedere i miei album fotografici";
+$a->strings["Can view my connections"] = "Può vedere i miei contatti";
+$a->strings["Can view my file storage"] = "Può vedere i miei file condivisi";
+$a->strings["Can view my webpages"] = "Può vedere le mie pagine web";
+$a->strings["Can send me their channel stream and posts"] = "È tra i canali che seguo";
+$a->strings["Can post on my channel page (\"wall\")"] = "Può scrivere sulla bacheca del mio canale";
+$a->strings["Can comment on or like my posts"] = "Può commentare o aggiungere \"mi piace\" ai miei articoli";
+$a->strings["Can send me private mail messages"] = "Può inviarmi messaggi privati";
+$a->strings["Can post photos to my photo albums"] = "Può aggiungere foto ai miei album";
+$a->strings["Can like/dislike stuff"] = "Può aggiungere \"mi piace\"";
+$a->strings["Profiles and things other than posts/comments"] = "Profili e tutto ciò che non è articoli e commenti";
+$a->strings["Can forward to all my channel contacts via post @mentions"] = "Può inoltrare articoli a tutti i contatti del canale tramite una @menzione";
+$a->strings["Advanced - useful for creating group forum channels"] = "Impostazione avanzata - utile per creare un canale-forum di discussione";
+$a->strings["Can chat with me (when available)"] = "Può aprire una chat con me (se disponibile)";
+$a->strings["Can write to my file storage"] = "Può scrivere sul mio archivio file";
+$a->strings["Can edit my webpages"] = "Può modificare le mie pagine web";
+$a->strings["Can source my public posts in derived channels"] = "Può usare i miei articoli pubblici per creare canali derivati";
+$a->strings["Somewhat advanced - very useful in open communities"] = "Piuttosto avanzato - molto utile nelle comunità aperte";
+$a->strings["Can administer my channel resources"] = "Può amministrare i contenuti del mio canale";
+$a->strings["Extremely advanced. Leave this alone unless you know what you are doing"] = "Impostazione pericolosa - lasciare il valore predefinito se non si è assolutamente sicuri";
+$a->strings["Social Networking"] = "Social network";
+$a->strings["Mostly Public"] = "Quasi sempre pubblico";
+$a->strings["Restricted"] = "Con restrizioni";
+$a->strings["Private"] = "Privato";
+$a->strings["Community Forum"] = "Forum di discussione";
+$a->strings["Feed Republish"] = "Aggregatore di feed esterni";
+$a->strings["Special Purpose"] = "Per finalità speciali";
+$a->strings["Celebrity/Soapbox"] = "Pagina per fan";
+$a->strings["Group Repository"] = "Repository di gruppo";
+$a->strings["Other"] = "Altro";
+$a->strings["Custom/Expert Mode"] = "Personalizzazione per esperti";
+$a->strings["Default"] = "Predefinito";
+$a->strings["Frequently"] = "Frequentemente";
+$a->strings["Hourly"] = "Ogni ora";
+$a->strings["Twice daily"] = "Due volte al giorno";
+$a->strings["Daily"] = "Ogni giorno";
+$a->strings["Weekly"] = "Ogni settimana";
+$a->strings["Monthly"] = "Ogni mese";
+$a->strings["Friendica"] = "Friendica";
+$a->strings["OStatus"] = "OStatus";
+$a->strings["RSS/Atom"] = "RSS/Atom";
+$a->strings["Email"] = "Email";
+$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["Unable to obtain identity information from database"] = "Impossibile ottenere le informazioni di identificazione dal database";
+$a->strings["Empty name"] = "Nome vuoto";
+$a->strings["Name too long"] = "Nome troppo lungo";
+$a->strings["No account identifier"] = "Account senza identificativo";
+$a->strings["Nickname is required."] = "Il nome dell'account è obbligatorio.";
+$a->strings["Reserved nickname. Please choose another."] = "Nome utente riservato. Per favore scegline un altro.";
+$a->strings["Nickname has unsupported characters or is already being used on this site."] = "Il nome dell'account è già in uso oppure ha dei caratteri non supportati.";
+$a->strings["Unable to retrieve created identity"] = "Impossibile caricare l'identità creata";
+$a->strings["Default Profile"] = "Profilo predefinito";
+$a->strings["Friends"] = "Amici";
+$a->strings["Requested channel is not available."] = "Il canale che cerchi non è disponibile.";
+$a->strings["Requested profile is not available."] = "Il profilo richiesto non è disponibile.";
+$a->strings["Connect"] = "Aggiungi";
+$a->strings["Change profile photo"] = "Cambia la foto del profilo";
+$a->strings["Profiles"] = "Profili";
+$a->strings["Manage/edit profiles"] = "Gestisci/modifica i profili";
+$a->strings["Create New Profile"] = "Crea un nuovo profilo";
+$a->strings["Profile Image"] = "Immagine del profilo";
+$a->strings["visible to everybody"] = "visibile a tutti";
+$a->strings["Edit visibility"] = "Cambia la visibilità";
+$a->strings["Gender:"] = "Sesso:";
+$a->strings["Status:"] = "Stato:";
+$a->strings["Homepage:"] = "Home page:";
+$a->strings["Online Now"] = "Online adesso";
+$a->strings["g A l F d"] = "g A l d F";
+$a->strings["F d"] = "d F";
+$a->strings["[today]"] = "[oggi]";
+$a->strings["Birthday Reminders"] = "Promemoria compleanni";
+$a->strings["Birthdays this week:"] = "Compleanni questa settimana:";
+$a->strings["[No description]"] = "[Nessuna descrizione]";
+$a->strings["Event Reminders"] = "Promemoria";
+$a->strings["Events this week:"] = "Eventi di questa settimana:";
+$a->strings["Profile"] = "Profilo";
+$a->strings["Full Name:"] = "Nome completo:";
+$a->strings["Like this channel"] = "Mi piace questo canale";
+$a->strings["__ctx:noun__ Like"] = array(
+ 0 => "Mi piace",
+ 1 => "Mi piace",
+);
+$a->strings["j F, Y"] = "j F Y";
+$a->strings["j F"] = "j F";
+$a->strings["Birthday:"] = "Compleanno:";
+$a->strings["Age:"] = "Età:";
+$a->strings["for %1\$d %2\$s"] = "per %1\$d %2\$s";
+$a->strings["Sexual Preference:"] = "Preferenze sessuali:";
+$a->strings["Hometown:"] = "Città dove vivo:";
+$a->strings["Tags:"] = "Tag:";
+$a->strings["Political Views:"] = "Orientamento politico:";
+$a->strings["Religion:"] = "Religione:";
+$a->strings["About:"] = "Informazioni:";
+$a->strings["Hobbies/Interests:"] = "Interessi e hobby:";
+$a->strings["Likes:"] = "Mi piace:";
+$a->strings["Dislikes:"] = "Non mi piace:";
+$a->strings["Contact information and Social Networks:"] = "Contatti e social network:";
+$a->strings["My other channels:"] = "I miei altri canali:";
+$a->strings["Musical interests:"] = "Gusti musicali:";
+$a->strings["Books, literature:"] = "Libri, letteratura:";
+$a->strings["Television:"] = "Televisione:";
+$a->strings["Film/dance/culture/entertainment:"] = "Film, danza, cultura, intrattenimento:";
+$a->strings["Love/Romance:"] = "Amore:";
+$a->strings["Work/employment:"] = "Lavoro:";
+$a->strings["School/education:"] = "Scuola:";
+$a->strings["Like this thing"] = "Mi piace questo oggetto";
+$a->strings["Image/photo"] = "Immagine";
+$a->strings["Encrypted content"] = "Contenuto crittografato";
+$a->strings["Install design element: "] = "Installa il componente di design:";
+$a->strings["QR code"] = "QR code";
+$a->strings["%1\$s wrote the following %2\$s %3\$s"] = "%1\$s ha scritto %2\$s %3\$s";
+$a->strings["post"] = "l'articolo";
+$a->strings["$1 spoiler"] = "$1 spoiler";
+$a->strings["$1 wrote:"] = "$1 ha scritto:";
+$a->strings["Miscellaneous"] = "Altro";
+$a->strings["YYYY-MM-DD or MM-DD"] = "AAAA-MM-GG oppure MM-GG";
+$a->strings["never"] = "mai";
+$a->strings["less than a second ago"] = "meno di un secondo fa";
+$a->strings["year"] = "anno";
+$a->strings["years"] = "anni";
+$a->strings["month"] = "mese";
+$a->strings["months"] = "mesi";
+$a->strings["week"] = "settimana";
+$a->strings["weeks"] = "settimane";
+$a->strings["day"] = "giorno";
+$a->strings["days"] = "giorni";
+$a->strings["hour"] = "ora";
+$a->strings["hours"] = "ore";
+$a->strings["minute"] = "minuto";
+$a->strings["minutes"] = "minuti";
+$a->strings["second"] = "secondo";
+$a->strings["seconds"] = "secondi";
+$a->strings["%1\$d %2\$s ago"] = "%1\$d %2\$s fa";
+$a->strings["%1\$s's birthday"] = "Compleanno di %1\$s";
+$a->strings["Happy Birthday %1\$s"] = "Buon compleanno %1\$s";
+$a->strings["New window"] = "Nuova finestra";
+$a->strings["Open the selected location in a different window or browser tab"] = "Apri l'indirizzo selezionato in una nuova scheda o finestra";
+$a->strings["User '%s' deleted"] = "Utente '%s' eliminato";
+$a->strings["Tags"] = "Tag";
+$a->strings["Keywords"] = "Parole chiave";
+$a->strings["have"] = "ho";
+$a->strings["has"] = "ha";
+$a->strings["want"] = "voglio";
+$a->strings["wants"] = "vuole";
+$a->strings["like"] = "mi piace";
+$a->strings["likes"] = "gli piace";
+$a->strings["dislike"] = "non mi piace";
+$a->strings["dislikes"] = "non gli piace";
+$a->strings["Public Timeline"] = "Diario pubblico";
+$a->strings["Red Matrix Notification"] = "Notifica di RedMatrix";
+$a->strings["redmatrix"] = "RedMatrix";
+$a->strings["Thank You,"] = "Grazie,";
+$a->strings["%s Administrator"] = "L'amministratore di %s";
+$a->strings["%s <!item_type!>"] = "%s <!item_type!>";
+$a->strings["[Red:Notify] New mail received at %s"] = "[RedMatrix] Nuovo messaggio su %s";
+$a->strings["%1\$s, %2\$s sent you a new private message at %3\$s."] = "%1\$s, %2\$s ti ha mandato un messaggio privato su %3\$s.";
+$a->strings["%1\$s sent you %2\$s."] = "%1\$s ti ha mandato %2\$s.";
+$a->strings["a private message"] = "un messaggio privato";
+$a->strings["Please visit %s to view and/or reply to your private messages."] = "Visita %s per leggere i tuoi messaggi privati e rispondere.";
+$a->strings["%1\$s, %2\$s commented on [zrl=%3\$s]a %4\$s[/zrl]"] = "%1\$s, %2\$s ha commentato [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 ha commentato [zrl=%3\$s]%5\$s di %4\$s[/zrl]";
+$a->strings["%1\$s, %2\$s commented on [zrl=%3\$s]your %4\$s[/zrl]"] = "%1\$s, %2\$s ha commentato [zrl=%3\$s]%4\$s che hai creato[/zrl]";
+$a->strings["[Red:Notify] Comment to conversation #%1\$d by %2\$s"] = "[RedMatrix] Nuovo commento di %2\$s alla conversazione #%1\$d";
+$a->strings["%1\$s, %2\$s commented on an item/conversation you have been following."] = "%1\$s, %2\$s ha commentato un elemento che stavi seguendo.";
+$a->strings["Please visit %s to view and/or reply to the conversation."] = "Visita %s per leggere o commentare la conversazione.";
+$a->strings["[Red:Notify] %s posted to your profile wall"] = "[RedMatrix] %s ha scritto sulla tua bacheca";
+$a->strings["%1\$s, %2\$s posted to your profile wall at %3\$s"] = "%1\$s, %2\$s ha scritto sulla bacheca del tuo profilo su %3\$s";
+$a->strings["%1\$s, %2\$s posted to [zrl=%3\$s]your wall[/zrl]"] = "%1\$s, %2\$s ha scritto sulla [zrl=%3\$s]tua bacheca[/zrl]";
+$a->strings["[Red:Notify] %s tagged you"] = "[RedMatrix] %s ti ha taggato";
+$a->strings["%1\$s, %2\$s tagged you at %3\$s"] = "%1\$s, %2\$s ti ha taggato su %3\$s";
+$a->strings["%1\$s, %2\$s [zrl=%3\$s]tagged you[/zrl]."] = "%1\$s, %2\$s [zrl=%3\$s]ti ha taggato[/zrl].";
+$a->strings["[Red:Notify] %1\$s poked you"] = "[RedMatrix] %1\$s ti ha mandato un poke";
+$a->strings["%1\$s, %2\$s poked you at %3\$s"] = "%1\$s, %2\$s ti ha mandato un poke su %3\$s";
+$a->strings["%1\$s, %2\$s [zrl=%2\$s]poked you[/zrl]."] = "%1\$s, %2\$s [zrl=%2\$s]ti ha mandato un poke[/zrl].";
+$a->strings["[Red:Notify] %s tagged your post"] = "[RedMatrix] %s ha taggato il tuo articolo";
+$a->strings["%1\$s, %2\$s tagged your post at %3\$s"] = "%1\$s, %2\$s ha taggato il tuo articolo su %3\$s";
+$a->strings["%1\$s, %2\$s tagged [zrl=%3\$s]your post[/zrl]"] = "%1\$s, %2\$s ha taggato [zrl=%3\$s]il tuo articolo[/zrl]";
+$a->strings["[Red:Notify] Introduction received"] = "[RedMatrix] Hai una richiesta di amicizia";
+$a->strings["%1\$s, you've received an new connection request from '%2\$s' at %3\$s"] = "%1\$s, hai ricevuto una richiesta di entrare in contatto da '%2\$s' su %3\$s";
+$a->strings["%1\$s, you've received [zrl=%2\$s]a new connection request[/zrl] from %3\$s."] = "%1\$s, hai ricevuto una [zrl=%2\$s]richiesta di entrare in contatto[/zrl] da %3\$s.";
+$a->strings["You may visit their profile at %s"] = "Puoi visitare il suo profilo su %s";
+$a->strings["Please visit %s to approve or reject the connection request."] = "Visita %s per approvare o rifiutare la richiesta di entrare in contatto.";
+$a->strings["[Red:Notify] Friend suggestion received"] = "[RedMatrix] Ti è stato suggerito un amico";
+$a->strings["%1\$s, you've received a friend suggestion from '%2\$s' at %3\$s"] = "%1\$s, ti è stato suggerito un amico da '%2\$s' su %3\$s";
+$a->strings["%1\$s, you've received [zrl=%2\$s]a friend suggestion[/zrl] for %3\$s from %4\$s."] = "%1\$s, %4\$s ti [zrl=%2\$s]ha suggerito %3\$s[/zrl] come amico.";
+$a->strings["Name:"] = "Nome:";
+$a->strings["Photo:"] = "Foto:";
+$a->strings["Please visit %s to approve or reject the suggestion."] = "Visita %s per approvare o rifiutare il suggerimento.";
+$a->strings["[Red:Notify]"] = "[RedMatrix]";
+$a->strings["This event has been added to your calendar."] = "Questo evento è stato aggiunto al tuo calendario";
+$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."] = "È stato ripristinato un insieme con lo stesso nome che era stato eliminato in precedenza. I permessi già presenti <strong>potrebbero</strong> rimanere validi per i nuovi canali. Se non vuoi che ciò accada, devi creare un altro insieme con un nome diverso.";
+$a->strings["Default privacy group for new contacts"] = "Insieme predefinito per i canali che inizi a seguire";
+$a->strings["All Channels"] = "Tutti i canali";
+$a->strings["edit"] = "modifica";
+$a->strings["Collections"] = "Insiemi di canali";
+$a->strings["Edit collection"] = "Modifica l'insieme di canali";
+$a->strings["Create a new collection"] = "Crea un nuovo insieme";
+$a->strings["Channels not in any collection"] = "Canali che non sono in un insieme";
+$a->strings["add"] = "aggiungi";
+$a->strings["General Features"] = "Funzionalità di base";
+$a->strings["Content Expiration"] = "Scadenza";
+$a->strings["Remove posts/comments and/or private messages at a future time"] = "Elimina gli articoli, i commenti o i messaggi privati dopo un lasso di tempo";
+$a->strings["Multiple Profiles"] = "Profili multipli";
+$a->strings["Ability to create multiple profiles"] = "Abilitazione a creare profili multipli";
+$a->strings["Advanced Profiles"] = "Profili avanzati";
+$a->strings["Additional profile sections and selections"] = "Informazioni aggiuntive del profilo";
+$a->strings["Profile Import/Export"] = "Importa/esporta il profilo";
+$a->strings["Save and load profile details across sites/channels"] = "Salva o ripristina le informazioni del profilo su canali o siti diversi";
+$a->strings["Web Pages"] = "Pagine web";
+$a->strings["Provide managed web pages on your channel"] = "Attiva la creazione di pagine web sul tuo canale";
+$a->strings["Private Notes"] = "Note private";
+$a->strings["Enables a tool to store notes and reminders"] = "Abilita il riquadro per scrivere annotazioni";
+$a->strings["Navigation Channel Select"] = "Scegli il canale attivo dal menu";
+$a->strings["Change channels directly from within the navigation dropdown menu"] = "Scegli il canale attivo direttamente dal menu di navigazione";
+$a->strings["Extended Identity Sharing"] = "Condivisione avanzata dell'identità";
+$a->strings["Share your identity with all websites on the internet. When disabled, identity is only shared with sites in the matrix."] = "Rendi nota la tua identità a tutti i siti internet. Se disabilitato, la tua identità sarà comunicata solo ai siti RedMatrix.";
+$a->strings["Expert Mode"] = "Modalità esperto";
+$a->strings["Enable Expert Mode to provide advanced configuration options"] = "Abilita la modalità esperto per vedere le opzioni di configurazione avanzate";
+$a->strings["Premium Channel"] = "Canale premium";
+$a->strings["Allows you to set restrictions and terms on those that connect with your channel"] = "Ti permette di impostare delle restrizioni e dei termini d'uso a chi segue il canale";
+$a->strings["Post Composition Features"] = "Modalità di scrittura articoli";
+$a->strings["Use Markdown"] = "Usa il markdown";
+$a->strings["Allow use of \"Markdown\" to format posts"] = "Consenti l'uso del markdown per formattare gli articoli";
+$a->strings["Post Preview"] = "Anteprima articolo";
+$a->strings["Allow previewing posts and comments before publishing them"] = "Abilita l'anteprima degli articoli e dei commenti prima di pubblicarli";
+$a->strings["Channel Sources"] = "Sorgenti del canale";
+$a->strings["Automatically import channel content from other channels or feeds"] = "Importa automaticamente il contenuto del canale da altri canali o feed";
+$a->strings["Even More Encryption"] = "Crittografia addizionale";
+$a->strings["Allow optional encryption of content end-to-end with a shared secret key"] = "Rendi possibile la crittografia tra mittente e destinatario che condividono una chiave segreta";
+$a->strings["Flag Adult Photos"] = "Marca le foto per adulti";
+$a->strings["Provide photo edit option to hide adult photos from default album view"] = "Permette di marcare e nascondere negli album le foto per adulti";
+$a->strings["Network and Stream Filtering"] = "Filtraggio dei contenuti";
+$a->strings["Search by Date"] = "Ricerca per data";
+$a->strings["Ability to select posts by date ranges"] = "Per selezionare gli articoli in un intervallo tra date";
+$a->strings["Collections Filter"] = "Filtra per insiemi di canali";
+$a->strings["Enable widget to display Network posts only from selected collections"] = "Mostra il riquadro per filtrare gli articoli di certi insiemi di canali";
+$a->strings["Saved Searches"] = "Ricerche salvate";
+$a->strings["Save search terms for re-use"] = "Salva i termini delle ricerche per poterle ripetere";
+$a->strings["Network Personal Tab"] = "Attività personale";
+$a->strings["Enable tab to display only Network posts that you've interacted on"] = "Abilita il link per mostrare solamente i contenuti con cui hai interagito";
+$a->strings["Network New Tab"] = "Contenuti nuovi";
+$a->strings["Enable tab to display all new Network activity"] = "Abilita il link per visualizzare solo i nuovi contenuti";
+$a->strings["Affinity Tool"] = "Filtro per affinità";
+$a->strings["Filter stream activity by depth of relationships"] = "Permette di selezionare i contenuti in base al livello di amicizia";
+$a->strings["Suggest Channels"] = "Suggerisci canali";
+$a->strings["Show channel suggestions"] = "Mostra alcuni canali che potrebbero interessarti";
+$a->strings["Post/Comment Tools"] = "Gestione articoli e commenti";
+$a->strings["Edit Sent Posts"] = "Modifica gli articoli già inviati";
+$a->strings["Edit and correct posts and comments after sending"] = "Modifica e correggi gli articoli o i commenti anche dopo l'invio";
+$a->strings["Tagging"] = "Tag";
+$a->strings["Ability to tag existing posts"] = "Permetti l'aggiunta di tag su articoli già esistenti";
+$a->strings["Post Categories"] = "Categorie degli articoli";
+$a->strings["Add categories to your posts"] = "Abilita le categorie per i tuoi articoli";
+$a->strings["Ability to file posts under folders"] = "Abilita la raccolta dei tuoi articoli in cartelle";
+$a->strings["Dislike Posts"] = "Non mi piace";
+$a->strings["Ability to dislike posts/comments"] = "Abilità la funzionalità \"non mi piace\" per i tuoi articoli";
+$a->strings["Star Posts"] = "Articoli stella (preferiti)";
+$a->strings["Ability to mark special posts with a star indicator"] = "Mostra la stella per scegliere gli articoli preferiti";
+$a->strings["Tag Cloud"] = "Nuvola di tag";
+$a->strings["Provide a personal tag cloud on your channel page"] = "Mostra la nuvola dei tag che usi di più sulla pagina del tuo canale";
$a->strings["prev"] = "prec";
$a->strings["first"] = "inizio";
$a->strings["last"] = "fine";
@@ -165,8 +468,8 @@ $a->strings["poke"] = "poke";
$a->strings["poked"] = "ha ricevuto un poke";
$a->strings["ping"] = "ping";
$a->strings["pinged"] = "ha ricevuto un ping";
-$a->strings["prod"] = "prod";
-$a->strings["prodded"] = "ha ricevuto un prod";
+$a->strings["prod"] = "spintone";
+$a->strings["prodded"] = "ha ricevuto uno spintone";
$a->strings["slap"] = "schiaffo";
$a->strings["slapped"] = "ha ricevuto uno schiaffo";
$a->strings["finger"] = "finger";
@@ -218,7 +521,7 @@ $a->strings["bytes"] = "byte";
$a->strings["remove category"] = "rimuovi la categoria";
$a->strings["remove from file"] = "rimuovi dal file";
$a->strings["Click to open/close"] = "Clicca per aprire/chiudere";
-$a->strings["Link to Source"] = "Link al sorgente";
+$a->strings["Link to Source"] = "Link al sito d'origine";
$a->strings["Select a page layout: "] = "Scegli il layout della pagina:";
$a->strings["default"] = "predefinito";
$a->strings["Page content type: "] = "Contenuto della pagina:";
@@ -233,171 +536,16 @@ $a->strings["Blocks"] = "Riquadri";
$a->strings["Menus"] = "Menù";
$a->strings["Layouts"] = "Layout";
$a->strings["Pages"] = "Pagine";
-$a->strings["Tags"] = "Tag";
-$a->strings["Keywords"] = "Parole chiave";
-$a->strings["have"] = "ho";
-$a->strings["has"] = "ha";
-$a->strings["want"] = "voglio";
-$a->strings["wants"] = "vuole";
-$a->strings["like"] = "mi piace";
-$a->strings["likes"] = "mi piace";
-$a->strings["dislike"] = "non mi piace";
-$a->strings["dislikes"] = "non mi piace";
-$a->strings["__ctx:noun__ Like"] = array(
- 0 => "Mi piace",
- 1 => "Mi piace",
-);
-$a->strings["Default"] = "Predefinito";
-$a->strings["Frequently"] = "Frequentemente";
-$a->strings["Hourly"] = "Ogni ora";
-$a->strings["Twice daily"] = "Due volte al giorno";
-$a->strings["Daily"] = "Ogni giorno";
-$a->strings["Weekly"] = "Ogni settimana";
-$a->strings["Monthly"] = "Ogni mese";
-$a->strings["Friendica"] = "Friendica";
-$a->strings["OStatus"] = "OStatus";
-$a->strings["RSS/Atom"] = "RSS/Atom";
-$a->strings["Email"] = "Email";
-$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["%d invitation available"] = array(
- 0 => "%d invito disponibile",
- 1 => "%d inviti disponibili",
-);
-$a->strings["Advanced"] = "Avanzate";
-$a->strings["Find Channels"] = "Ricerca canali";
-$a->strings["Enter name or interest"] = "Scrivi un nome o un interesse";
-$a->strings["Connect/Follow"] = "Aggiungi";
-$a->strings["Examples: Robert Morgenstein, Fishing"] = "Per esempio: Mario Rossi, Pesca";
-$a->strings["Find"] = "Cerca";
-$a->strings["Channel Suggestions"] = "Canali suggeriti";
-$a->strings["Random Profile"] = "Profilo casuale";
-$a->strings["Invite Friends"] = "Invita amici";
-$a->strings["Exammple: name=fred and country=iceland"] = "Per esempio: name=mario e country=italy";
-$a->strings["Advanced Find"] = "Ricerca avanzata";
-$a->strings["Saved Folders"] = "Cartelle salvate";
-$a->strings["Everything"] = "Tutto";
-$a->strings["Categories"] = "Categorie";
-$a->strings["%d connection in common"] = array(
- 0 => "%d contatto in comune",
- 1 => "%d contatti in comune",
-);
-$a->strings["show more"] = "mostra tutto";
-$a->strings["This event has been added to your calendar."] = "Questo evento è stato aggiunto al tuo calendario";
-$a->strings["Not a valid email address"] = "Email non valida";
-$a->strings["Your email domain is not among those allowed on this site"] = "Il dominio della tua email attualmente non è permesso su questo sito";
-$a->strings["Your email address is already registered at this site."] = "La tua email è già registrata su questo sito.";
-$a->strings["An invitation is required."] = "È necessario un invito.";
-$a->strings["Invitation could not be verified."] = "L'invito non può essere verificato.";
-$a->strings["Please enter the required information."] = "Inserisci le informazioni richieste.";
-$a->strings["Failed to store account information."] = "Non è stato possibile salvare le informazioni del tuo account.";
-$a->strings["Registration confirmation for %s"] = "Registrazione di %s confermata";
-$a->strings["Registration request at %s"] = "Richiesta di registrazione su %s";
-$a->strings["Administrator"] = "Amministratore";
-$a->strings["your registration password"] = "la password di registrazione";
-$a->strings["Registration details for %s"] = "Dettagli della registrazione di %s";
-$a->strings["Account approved."] = "Account approvato.";
-$a->strings["Registration revoked for %s"] = "Registrazione revocata per %s";
-$a->strings["Account verified. Please login."] = "Registrazione verificata. Adesso puoi effettuare login.";
-$a->strings["%1\$s likes %2\$s's %3\$s"] = "A %1\$s piace %3\$s di %2\$s";
-$a->strings["Attachments:"] = "Allegati:";
-$a->strings["Miscellaneous"] = "Altro";
-$a->strings["year"] = "anno";
-$a->strings["month"] = "mese";
-$a->strings["day"] = "giorno";
-$a->strings["never"] = "mai";
-$a->strings["less than a second ago"] = "meno di un secondo fa";
-$a->strings["years"] = "anni";
-$a->strings["months"] = "mesi";
-$a->strings["week"] = "settimana";
-$a->strings["weeks"] = "settimane";
-$a->strings["days"] = "giorni";
-$a->strings["hour"] = "ora";
-$a->strings["hours"] = "ore";
-$a->strings["minute"] = "minuto";
-$a->strings["minutes"] = "minuti";
-$a->strings["second"] = "secondo";
-$a->strings["seconds"] = "secondi";
-$a->strings["%1\$d %2\$s ago"] = "%1\$d %2\$s fa";
-$a->strings["%1\$s's birthday"] = "È il compleanno di %1\$s";
-$a->strings["Happy Birthday %1\$s"] = "Buon compleanno %1\$s";
-$a->strings["Sort Options"] = "Opzioni di ordinamento";
-$a->strings["Alphabetic"] = "Alfabetico";
-$a->strings["Reverse Alphabetic"] = "Alfabetico inverso";
-$a->strings["Newest to Oldest"] = "Dal più nuovo al più vecchio";
-$a->strings["Enable Safe Search"] = "Abilita SafeSearch";
-$a->strings["Disable Safe Search"] = "Disabilita SafeSearch";
-$a->strings["Safe Mode"] = "Modalità SafeSearch";
-$a->strings["Red Matrix Notification"] = "Notifica di RedMatrix";
-$a->strings["redmatrix"] = "RedMatrix";
-$a->strings["Thank You,"] = "Grazie,";
-$a->strings["%s Administrator"] = "Amministratore %s";
-$a->strings["%s <!item_type!>"] = "%s <!item_type!>";
-$a->strings["[Red:Notify] New mail received at %s"] = "[RedMatrix] Nuovo messaggio ricevuto su %s";
-$a->strings["%1\$s, %2\$s sent you a new private message at %3\$s."] = "%1\$s, %2\$s ti ha mandato un messaggio privato su %3\$s.";
-$a->strings["%1\$s sent you %2\$s."] = "%1\$s ti ha mandato %2\$s.";
-$a->strings["a private message"] = "un messaggio privato";
-$a->strings["Please visit %s to view and/or reply to your private messages."] = "Visita %s per leggere i tuoi messaggi privati e rispondere.";
-$a->strings["%1\$s, %2\$s commented on [zrl=%3\$s]a %4\$s[/zrl]"] = "%1\$s, %2\$s ha commentato [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 ha commentato [zrl=%3\$s]%5\$s di %4\$s[/zrl]";
-$a->strings["%1\$s, %2\$s commented on [zrl=%3\$s]your %4\$s[/zrl]"] = "%1\$s, %2\$s ha commentato [zrl=%3\$s]%4\$s che hai creato[/zrl]";
-$a->strings["[Red:Notify] Comment to conversation #%1\$d by %2\$s"] = "[RedMatrix] Nuovo commento di %2\$s alla conversazione #%1\$d";
-$a->strings["%1\$s, %2\$s commented on an item/conversation you have been following."] = "%1\$s, %2\$s ha commentato un elemento che stavi seguendo.";
-$a->strings["Please visit %s to view and/or reply to the conversation."] = "Visita %s per leggere o commentare la conversazione.";
-$a->strings["[Red:Notify] %s posted to your profile wall"] = "[RedMatrix] %s ha scritto sulla tua bacheca";
-$a->strings["%1\$s, %2\$s posted to your profile wall at %3\$s"] = "%1\$s, %2\$s ha scritto sulla bacheca del tuo profilo su %3\$s";
-$a->strings["%1\$s, %2\$s posted to [zrl=%3\$s]your wall[/zrl]"] = "%1\$s, %2\$s ha scritto sulla [zrl=%3\$s]tua bacheca[/zrl]";
-$a->strings["[Red:Notify] %s tagged you"] = "[RedMatrix] %s ti ha taggato";
-$a->strings["%1\$s, %2\$s tagged you at %3\$s"] = "%1\$s, %2\$s ti ha taggato su %3\$s";
-$a->strings["%1\$s, %2\$s [zrl=%3\$s]tagged you[/zrl]."] = "%1\$s, %2\$s [zrl=%3\$s]ti ha taggato[/zrl].";
-$a->strings["[Red:Notify] %1\$s poked you"] = "[RedMatrix] %1\$s ti ha mandato un poke";
-$a->strings["%1\$s, %2\$s poked you at %3\$s"] = "%1\$s, %2\$s ti ha mandato un poke su %3\$s";
-$a->strings["%1\$s, %2\$s [zrl=%2\$s]poked you[/zrl]."] = "%1\$s, %2\$s [zrl=%2\$s]ti ha mandato un poke[/zrl].";
-$a->strings["[Red:Notify] %s tagged your post"] = "[RedMatrix] %s ha taggato il tuo articolo";
-$a->strings["%1\$s, %2\$s tagged your post at %3\$s"] = "%1\$s, %2\$s ha taggato il tuo articolo su %3\$s";
-$a->strings["%1\$s, %2\$s tagged [zrl=%3\$s]your post[/zrl]"] = "%1\$s, %2\$s ha taggato [zrl=%3\$s]il tuo articolo[/zrl]";
-$a->strings["[Red:Notify] Introduction received"] = "[RedMatrix] Hai una richiesta di amicizia";
-$a->strings["%1\$s, you've received an new connection request from '%2\$s' at %3\$s"] = "%1\$s, hai ricevuto una richiesta di entrare in contatto da '%2\$s' su %3\$s";
-$a->strings["%1\$s, you've received [zrl=%2\$s]a new connection request[/zrl] from %3\$s."] = "%1\$s, hai ricevuto una [zrl=%2\$s]richiesta di entrare in contatto[/zrl] da %3\$s.";
-$a->strings["You may visit their profile at %s"] = "Puoi visitare il suo profilo su %s";
-$a->strings["Please visit %s to approve or reject the connection request."] = "Visita %s per approvare o rifiutare la richiesta di entrare in contatto.";
-$a->strings["[Red:Notify] Friend suggestion received"] = "[RedMatrix] Ti è stato suggerito un amico";
-$a->strings["%1\$s, you've received a friend suggestion from '%2\$s' at %3\$s"] = "%1\$s, ti è stato suggerito un amico da '%2\$s' su %3\$s";
-$a->strings["%1\$s, you've received [zrl=%2\$s]a friend suggestion[/zrl] for %3\$s from %4\$s."] = "%1\$s, %4\$s ti [zrl=%2\$s]ha suggerito %3\$s[/zrl] come amico.";
-$a->strings["Name:"] = "Nome:";
-$a->strings["Photo:"] = "Foto:";
-$a->strings["Please visit %s to approve or reject the suggestion."] = "Visita %s per approvare o rifiutare il suggerimento.";
-$a->strings["[Red:Notify]"] = "[RedMatrix]";
-$a->strings["parent"] = "cartella superiore";
-$a->strings["Collection"] = "Cartella";
-$a->strings["Principal"] = "Principale";
-$a->strings["Addressbook"] = "Rubrica";
-$a->strings["Calendar"] = "Calendario";
-$a->strings["Schedule Inbox"] = "Appuntamenti ricevuti";
-$a->strings["Schedule Outbox"] = "Appuntamenti inviati";
-$a->strings["%1\$s used"] = "%1\$s occupati";
-$a->strings["%1\$s used of %2\$s (%3\$s&#37;)"] = "%1\$s occupati di %2\$s (%3\$s&#37;)";
-$a->strings["Name"] = "Nome";
-$a->strings["Type"] = "Tipo";
-$a->strings["Size"] = "Dimensione";
-$a->strings["Last Modified"] = "Ultima modifica";
-$a->strings["Total"] = "Totale";
-$a->strings["Create new folder"] = "Crea una nuova cartella";
-$a->strings["Create"] = "Crea";
-$a->strings["Upload file"] = "Carica un file";
-$a->strings["Upload"] = "Carica";
$a->strings["channel"] = "canale";
+$a->strings["%1\$s likes %2\$s's %3\$s"] = "A %1\$s piace %3\$s di %2\$s";
$a->strings["%1\$s doesn't like %2\$s's %3\$s"] = "A %1\$s non piace %3\$s di %2\$s";
$a->strings["%1\$s is now connected with %2\$s"] = "%1\$s adesso è connesso con %2\$s";
$a->strings["%1\$s poked %2\$s"] = "%1\$s ha mandato un poke a %2\$s";
$a->strings["__ctx:mood__ %1\$s is %2\$s"] = "%1\$s è %2\$s";
$a->strings["Select"] = "Seleziona";
$a->strings["Private Message"] = "Messaggio privato";
-$a->strings["Message is verified"] = "Messaggio verificato";
+$a->strings["Message signature validated"] = "Messaggio con firma verificata";
+$a->strings["Message signature incorrect"] = "Massaggio con firma non corretta";
$a->strings["View %s's profile @ %s"] = "Vedi il profilo di %s @ %s";
$a->strings["Categories:"] = "Categorie:";
$a->strings["Filed under:"] = "Classificato come:";
@@ -407,16 +555,15 @@ $a->strings["Expires: %s"] = "Scadenza: %s";
$a->strings["View in context"] = "Vedi nel contesto";
$a->strings["Please wait"] = "Attendere";
$a->strings["remove"] = "rimuovi";
-$a->strings["Loading..."] = "Caricamento in corso...";
$a->strings["Delete Selected Items"] = "Elimina gli oggetti selezionati";
$a->strings["View Source"] = "Vedi il sorgente";
$a->strings["Follow Thread"] = "Segui la discussione";
$a->strings["View Status"] = "Guarda il messaggio di stato";
$a->strings["View Photos"] = "Guarda le foto";
$a->strings["Matrix Activity"] = "Attività nella tua rete";
-$a->strings["Connect"] = "Aggiungi";
$a->strings["Edit Contact"] = "Modifica il contatto";
$a->strings["Send PM"] = "Invia messaggio privato";
+$a->strings["Poke"] = "Poke";
$a->strings["%s likes this."] = "Piace a %s.";
$a->strings["%s doesn't like this."] = "Non piace a %s.";
$a->strings["<span %1\$s>%2\$d people</span> like this."] = array(
@@ -459,8 +606,8 @@ $a->strings["Set your location"] = "La tua località";
$a->strings["set location"] = "la tua località";
$a->strings["Clear browser location"] = "Rimuovi la località data dal browser";
$a->strings["clear location"] = "rimuovi la località";
-$a->strings["Set title"] = "Scegli un titolo";
-$a->strings["Categories (comma-separated list)"] = "Categorie (separate da virgola)";
+$a->strings["Title (optional)"] = "Titolo (opzionale)";
+$a->strings["Categories (optional, comma-separated list)"] = "Categorie (lista separata da virgole)";
$a->strings["Permission settings"] = "Impostazioni permessi";
$a->strings["permissions"] = "permessi";
$a->strings["Public post"] = "Articolo pubblico";
@@ -487,84 +634,37 @@ $a->strings["Channel"] = "Canale";
$a->strings["Status Messages and Posts"] = "Articoli e messaggi di stato";
$a->strings["About"] = "Informazioni";
$a->strings["Profile Details"] = "Dettagli del profilo";
+$a->strings["Photo Albums"] = "Album foto";
$a->strings["Files and Storage"] = "Archivio file";
$a->strings["Chatrooms"] = "Area chat";
$a->strings["Saved Bookmarks"] = "Segnalibri salvati";
$a->strings["Manage Webpages"] = "Gestisci le pagine web";
-$a->strings["General Features"] = "Funzionalità di base";
-$a->strings["Content Expiration"] = "Scadenza";
-$a->strings["Remove posts/comments and/or private messages at a future time"] = "Elimina gli articoli, i commenti o i messaggi privati dopo che è trascorso del tempo";
-$a->strings["Multiple Profiles"] = "Profili multipli";
-$a->strings["Ability to create multiple profiles"] = "Abilitazione a creare profili multipli";
-$a->strings["Advanced Profiles"] = "Profili avanzati";
-$a->strings["Additional profile sections and selections"] = "Informazioni aggiuntive del profilo";
-$a->strings["Profile Import/Export"] = "Importa/esporta il profilo";
-$a->strings["Save and load profile details across sites/channels"] = "Salva o ripristina le informazioni del profilo su canali o siti diversi";
-$a->strings["Web Pages"] = "Pagine web";
-$a->strings["Provide managed web pages on your channel"] = "Attiva la creazione di pagine web sul tuo canale";
-$a->strings["Private Notes"] = "Note private";
-$a->strings["Enables a tool to store notes and reminders"] = "Abilita il riquadro per scrivere annotazioni";
-$a->strings["Navigation Channel Select"] = "Scegli il canale attivo dal menu";
-$a->strings["Change channels directly from within the navigation dropdown menu"] = "Scegli il canale attivo direttamente dal menu di navigazione";
-$a->strings["Extended Identity Sharing"] = "Condivisione avanzata dell'identità";
-$a->strings["Share your identity with all websites on the internet. When disabled, identity is only shared with sites in the matrix."] = "Rendi nota la tua identità a tutti i siti internet. Se disabilitato, la tua identità sarà comunicata solo ai siti RedMatrix.";
-$a->strings["Expert Mode"] = "Modalità esperto";
-$a->strings["Enable Expert Mode to provide advanced configuration options"] = "Abilita la modalità esperto per vedere le opzioni di configurazione avanzate";
-$a->strings["Premium Channel"] = "Canale premium";
-$a->strings["Allows you to set restrictions and terms on those that connect with your channel"] = "Ti permette di imporre delle restrizioni e dei termini d'uso a chi segue il canale";
-$a->strings["Post Composition Features"] = "Modalità di scrittura articoli";
-$a->strings["Use Markdown"] = "Usa il markdown";
-$a->strings["Allow use of \"Markdown\" to format posts"] = "Consenti l'uso del markdown per formattare gli articoli";
-$a->strings["Post Preview"] = "Anteprima articolo";
-$a->strings["Allow previewing posts and comments before publishing them"] = "Abilita l'anteprima degli articoli e dei commenti prima di pubblicarli";
-$a->strings["Channel Sources"] = "Sorgenti del canale";
-$a->strings["Automatically import channel content from other channels or feeds"] = "Importa automaticamente il contenuto del canale da altri canali o feed";
-$a->strings["Even More Encryption"] = "Crittografia addizionale";
-$a->strings["Allow optional encryption of content end-to-end with a shared secret key"] = "Rendi possibile la crittografia dei contenuti tra mittente e destinatari con una chiave segreta";
-$a->strings["Network and Stream Filtering"] = "Filtraggio dei contenuti";
-$a->strings["Search by Date"] = "Ricerca per data";
-$a->strings["Ability to select posts by date ranges"] = "Per selezionare gli articoli in un intervallo tra date";
-$a->strings["Collections Filter"] = "Filtra per insiemi di canali";
-$a->strings["Enable widget to display Network posts only from selected collections"] = "Mostra il riquadro per filtrare gli articoli di certi insiemi di canali";
-$a->strings["Saved Searches"] = "Ricerche salvate";
-$a->strings["Save search terms for re-use"] = "Salva i termini delle ricerche per poterle ripetere";
-$a->strings["Network Personal Tab"] = "Attività personale";
-$a->strings["Enable tab to display only Network posts that you've interacted on"] = "Abilita il link per mostrare solamente i contenuti con cui hai interagito";
-$a->strings["Network New Tab"] = "Contenuti nuovi";
-$a->strings["Enable tab to display all new Network activity"] = "Abilita il link per visualizzare solo i nuovi contenuti";
-$a->strings["Affinity Tool"] = "Filtro per affinità";
-$a->strings["Filter stream activity by depth of relationships"] = "Permette di selezionare i contenuti in base al livello di amicizia";
-$a->strings["Suggest Channels"] = "Suggerisci canali";
-$a->strings["Show channel suggestions"] = "Mostra alcuni canali che potrebbero interessarti";
-$a->strings["Post/Comment Tools"] = "Gestione articoli e commenti";
-$a->strings["Edit Sent Posts"] = "Modifica gli articoli già inviati";
-$a->strings["Edit and correct posts and comments after sending"] = "Modifica e correggi gli articoli o i commenti anche dopo l'invio";
-$a->strings["Tagging"] = "Tag";
-$a->strings["Ability to tag existing posts"] = "Permetti l'aggiunta di tag su articoli già esistenti";
-$a->strings["Post Categories"] = "Categorie degli articoli";
-$a->strings["Add categories to your posts"] = "Abilita le categorie per i tuoi articoli";
-$a->strings["Ability to file posts under folders"] = "Abilita la raccolta dei tuoi articoli in cartelle";
-$a->strings["Dislike Posts"] = "Non mi piace";
-$a->strings["Ability to dislike posts/comments"] = "Abilità la funzionalità \"non mi piace\" per i tuoi articoli";
-$a->strings["Star Posts"] = "Articoli stella (preferiti)";
-$a->strings["Ability to mark special posts with a star indicator"] = "Mostra la stella per scegliere gli articoli preferiti";
-$a->strings["Tag Cloud"] = "Nuvola di tag";
-$a->strings["Provide a personal tag cloud on your channel page"] = "Mostra la nuvola dei tag che usi di più sulla pagina del tuo canale";
-$a->strings["Channel is blocked on this site."] = "Il canale è bloccato per questo sito.";
-$a->strings["Channel location missing."] = "Manca l'indirizzo del canale.";
-$a->strings["Response from remote channel was incomplete."] = "La risposta dal canale non è completa.";
-$a->strings["Channel was deleted and no longer exists."] = "Il canale è stato rimosso e non esiste più.";
-$a->strings["Channel discovery failed."] = "La ricerca del canale non ha avuto successo.";
-$a->strings["local account not found."] = "l'account locale non è stato trovato.";
-$a->strings["Cannot connect to yourself."] = "Non puoi connetterti a te stesso.";
-$a->strings["Missing room name"] = "Area chat senza nome";
-$a->strings["Duplicate room name"] = "Il nome dell'area chat è duplicato";
-$a->strings["Invalid room specifier."] = "Il nome dell'area chat non è valido.";
-$a->strings["Room not found."] = "Area chat non trovata.";
-$a->strings["Room is full"] = "L'area chat è al completo";
+$a->strings["Not a valid email address"] = "Email non valida";
+$a->strings["Your email domain is not among those allowed on this site"] = "Il dominio della tua email attualmente non è permesso su questo sito";
+$a->strings["Your email address is already registered at this site."] = "La tua email è già registrata su questo sito.";
+$a->strings["An invitation is required."] = "È necessario un invito.";
+$a->strings["Invitation could not be verified."] = "L'invito non può essere verificato.";
+$a->strings["Please enter the required information."] = "Inserisci le informazioni richieste.";
+$a->strings["Failed to store account information."] = "Non è stato possibile salvare le informazioni del tuo account.";
+$a->strings["Registration confirmation for %s"] = "Registrazione di %s confermata";
+$a->strings["Registration request at %s"] = "Richiesta di registrazione su %s";
+$a->strings["Administrator"] = "Amministratore";
+$a->strings["your registration password"] = "la password di registrazione";
+$a->strings["Registration details for %s"] = "Dettagli della registrazione di %s";
+$a->strings["Account approved."] = "Account approvato.";
+$a->strings["Registration revoked for %s"] = "Registrazione revocata per %s";
+$a->strings["Account verified. Please login."] = "Registrazione verificata. Adesso puoi effettuare login.";
+$a->strings["Click here to upgrade."] = "Clicca qui per aggiornare.";
+$a->strings["This action exceeds the limits set by your subscription plan."] = "Questa operazione supera i limiti del tuo abbonamento.";
+$a->strings["This action is not available under your subscription plan."] = "Questa operazione non è prevista dal tuo abbonamento.";
+$a->strings["Image exceeds website size limit of %lu bytes"] = "L'immagine supera il limite massimo di %lu bytes";
+$a->strings["Image file is empty."] = "Il file dell'immagine è vuoto.";
+$a->strings["Unable to process image"] = "Impossibile elaborare l'immagine";
+$a->strings["Photo storage failed."] = "Impossibile caricare la foto.";
+$a->strings["Upload New Photos"] = "Carica nuove foto";
$a->strings["Permission denied"] = "Permesso negato";
$a->strings["(Unknown)"] = "(Sconosciuto)";
-$a->strings["Visible to anybody on the internet."] = "Visibile a chiunque su internet";
+$a->strings["Visible to anybody on the internet."] = "Visibile a chiunque su internet.";
$a->strings["Visible to you only."] = "Visibile solo a te.";
$a->strings["Visible to anybody in this network."] = "Visibile a tutti su questa rete.";
$a->strings["Visible to anybody authenticated."] = "Visibile a chiunque sia autenticato.";
@@ -573,87 +673,11 @@ $a->strings["Visible to all connections."] = "Visibile a tutti coloro che ti seg
$a->strings["Visible to approved connections."] = "Visibile ai contatti approvati.";
$a->strings["Visible to specific connections."] = "Visibile ad alcuni contatti scelti.";
$a->strings["Item not found."] = "Elemento non trovato.";
-$a->strings["Collection not found."] = "Insieme non trovato.";
+$a->strings["Collection not found."] = "Insieme di canali non trovato.";
$a->strings["Collection is empty."] = "L'insieme di canali è vuoto.";
$a->strings["Collection: %s"] = "Insieme: %s";
$a->strings["Connection: %s"] = "Contatto: %s";
$a->strings["Connection not found."] = "Contatto non trovato.";
-$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."] = "È stato ripristinato un insieme con lo stesso nome che era stato eliminato in precedenza. I permessi già presenti <strong>potrebbero</strong> rimanere validi per i nuovi canali. Se non vuoi che ciò accada, devi creare un altro insieme con un nome diverso.";
-$a->strings["Default privacy group for new contacts"] = "Insieme predefinito per i canali che inizi a seguire";
-$a->strings["All Channels"] = "Tutti i canali";
-$a->strings["edit"] = "modifica";
-$a->strings["Collections"] = "Insiemi di canali";
-$a->strings["Edit collection"] = "Modifica l'insieme di canali";
-$a->strings["Create a new collection"] = "Crea un nuovo insieme";
-$a->strings["Channels not in any collection"] = "Canali che non sono in un insieme";
-$a->strings["add"] = "aggiungi";
-$a->strings["Unable to obtain identity information from database"] = "Impossibile ottenere le informazioni di identificazione dal database";
-$a->strings["Empty name"] = "Nome vuoto";
-$a->strings["Name too long"] = "Nome troppo lungo";
-$a->strings["No account identifier"] = "Account senza identificativo";
-$a->strings["Nickname is required."] = "Il nome dell'account è obbligatorio.";
-$a->strings["Reserved nickname. Please choose another."] = "Nome utente riservato. Per favore scegline un altro.";
-$a->strings["Nickname has unsupported characters or is already being used on this site."] = "Il nome dell'account è già in uso oppure ha dei caratteri non supportati.";
-$a->strings["Unable to retrieve created identity"] = "Impossibile caricare l'identità creata";
-$a->strings["Default Profile"] = "Profilo predefinito";
-$a->strings["Friends"] = "Amici";
-$a->strings["Requested channel is not available."] = "Il canale che cerchi non è disponibile.";
-$a->strings["Requested profile is not available."] = "Il profilo richiesto non è disponibile.";
-$a->strings["Change profile photo"] = "Cambia la foto del profilo";
-$a->strings["Profiles"] = "Profili";
-$a->strings["Manage/edit profiles"] = "Gestisci/modifica i profili";
-$a->strings["Create New Profile"] = "Crea un nuovo profilo";
-$a->strings["Profile Image"] = "Immagine del profilo";
-$a->strings["visible to everybody"] = "visibile a tutti";
-$a->strings["Edit visibility"] = "Cambia la visibilità";
-$a->strings["Gender:"] = "Sesso:";
-$a->strings["Status:"] = "Stato:";
-$a->strings["Homepage:"] = "Home page:";
-$a->strings["Online Now"] = "Online adesso";
-$a->strings["g A l F d"] = "g A l d F";
-$a->strings["F d"] = "d F";
-$a->strings["[today]"] = "[oggi]";
-$a->strings["Birthday Reminders"] = "Promemoria compleanni";
-$a->strings["Birthdays this week:"] = "Compleanni questa settimana:";
-$a->strings["[No description]"] = "[Nessuna descrizione]";
-$a->strings["Event Reminders"] = "Promemoria";
-$a->strings["Events this week:"] = "Eventi di questa settimana:";
-$a->strings["Full Name:"] = "Nome completo:";
-$a->strings["Like this channel"] = "Mi piace questo canale";
-$a->strings["j F, Y"] = "j F Y";
-$a->strings["j F"] = "j F";
-$a->strings["Birthday:"] = "Compleanno:";
-$a->strings["Age:"] = "Età:";
-$a->strings["for %1\$d %2\$s"] = "per %1\$d %2\$s";
-$a->strings["Sexual Preference:"] = "Preferenze sessuali:";
-$a->strings["Hometown:"] = "Città dove vivo:";
-$a->strings["Tags:"] = "Tag:";
-$a->strings["Political Views:"] = "Orientamento politico:";
-$a->strings["Religion:"] = "Religione:";
-$a->strings["About:"] = "Informazioni:";
-$a->strings["Hobbies/Interests:"] = "Interessi e hobby:";
-$a->strings["Likes:"] = "Mi piace:";
-$a->strings["Dislikes:"] = "Non mi piace:";
-$a->strings["Contact information and Social Networks:"] = "Contatti e social network:";
-$a->strings["My other channels:"] = "I miei altri canali:";
-$a->strings["Musical interests:"] = "Gusti musicali:";
-$a->strings["Books, literature:"] = "Libri, letteratura:";
-$a->strings["Television:"] = "Televisione:";
-$a->strings["Film/dance/culture/entertainment:"] = "Film, danza, cultura, intrattenimento:";
-$a->strings["Love/Romance:"] = "Amore:";
-$a->strings["Work/employment:"] = "Lavoro:";
-$a->strings["School/education:"] = "Scuola:";
-$a->strings["Like this thing"] = "Mi piace questo oggetto";
-$a->strings["Image/photo"] = "Immagine";
-$a->strings["Encrypted content"] = "Contenuto crittografato";
-$a->strings["QR code"] = "QR code";
-$a->strings["%1\$s wrote the following %2\$s %3\$s"] = "%1\$s ha scritto %2\$s %3\$s";
-$a->strings["post"] = "l'articolo";
-$a->strings["$1 wrote:"] = "$1 ha scritto:";
-$a->strings["No recipient provided."] = "Devi scegliere un destinatario.";
-$a->strings["[no subject]"] = "[nessun titolo]";
-$a->strings["Unable to determine sender."] = "Impossibile determinare il mittente.";
-$a->strings["Stored post could not be verified."] = "Non è stato possibile verificare l'articolo inserito.";
$a->strings["System"] = "Sistema";
$a->strings["Create Personal App"] = "Crea una app personale";
$a->strings["Edit Personal App"] = "Modifica una app personale";
@@ -669,7 +693,7 @@ $a->strings["Remove term"] = "Rimuovi termine";
$a->strings["Archives"] = "Archivi";
$a->strings["Refresh"] = "Aggiorna";
$a->strings["Me"] = "Io";
-$a->strings["Best Friends"] = "Buoni amici";
+$a->strings["Best Friends"] = "Migliori amici";
$a->strings["Co-workers"] = "Colleghi";
$a->strings["Former Friends"] = "Ex amici";
$a->strings["Acquaintances"] = "Conoscenti";
@@ -681,53 +705,21 @@ $a->strings["Feature settings"] = "Componenti aggiuntivi";
$a->strings["Display settings"] = "Aspetto";
$a->strings["Connected apps"] = "App connesse";
$a->strings["Export channel"] = "Esporta il canale";
-$a->strings["Automatic Permissions (Advanced)"] = "Permessi predefiniti (avanzato)";
+$a->strings["Export content"] = "Esporta i contenuti";
+$a->strings["Connection Default Permissions"] = "Permessi predefiniti dei nuovi contatti";
$a->strings["Premium Channel Settings"] = "Canale premium - impostazioni";
+$a->strings["Messages"] = "Messaggi";
$a->strings["Check Mail"] = "Controlla i messaggi";
$a->strings["Chat Rooms"] = "Aree chat attive";
$a->strings["Bookmarked Chatrooms"] = "Aree chat nei segnalibri";
$a->strings["Suggested Chatrooms"] = "Aree chat suggerite";
-$a->strings["Save to Folder"] = "Salva nella cartella";
-$a->strings["View all"] = "Vedi tutto";
-$a->strings["__ctx:noun__ Dislike"] = array(
- 0 => "Non mi piace",
- 1 => "Non mi piace",
-);
-$a->strings["Add Star"] = "Aggiungi ai preferiti";
-$a->strings["Remove Star"] = "Rimuovi dai preferiti";
-$a->strings["Toggle Star Status"] = "Attiva/disattiva preferito";
-$a->strings["starred"] = "preferito";
-$a->strings["Add Tag"] = "Aggiungi un tag";
-$a->strings["I like this (toggle)"] = "Attiva/disattiva Mi piace";
-$a->strings["I don't like this (toggle)"] = "Attiva/disattiva Non mi piace";
-$a->strings["Share This"] = "Condividi";
-$a->strings["share"] = "condividi";
-$a->strings["View %s's profile - %s"] = "Guarda il profilo di %s - %s";
-$a->strings["to"] = "a";
-$a->strings["via"] = "via";
-$a->strings["Wall-to-Wall"] = "Da bacheca a bacheca";
-$a->strings["via Wall-To-Wall:"] = "da bacheca a bacheca:";
-$a->strings["Save Bookmarks"] = "Salva segnalibro";
-$a->strings["Add to Calendar"] = "Aggiungi al calendario";
-$a->strings["__ctx:noun__ Likes"] = "Mi piace";
-$a->strings["__ctx:noun__ Dislikes"] = "Non mi piace";
-$a->strings["%d comment"] = array(
- 0 => "%d commento",
- 1 => "%d commenti",
-);
-$a->strings["[+] show all"] = "[+] mostra tutto";
-$a->strings["This is you"] = "Questo sei tu";
-$a->strings["Comment"] = "Commento";
-$a->strings["Submit"] = "Salva";
-$a->strings["Bold"] = "Grassetto";
-$a->strings["Italic"] = "Corsivo";
-$a->strings["Underline"] = "Sottolineato";
-$a->strings["Quote"] = "Citazione";
-$a->strings["Code"] = "Codice";
-$a->strings["Image"] = "Immagine";
-$a->strings["Link"] = "Link";
-$a->strings["Video"] = "Video";
+$a->strings["photo/image"] = "foto/immagine";
+$a->strings["Invalid data packet"] = "Dati non validi";
+$a->strings["Unable to verify channel signature"] = "Impossibile verificare la firma elettronica del canale";
+$a->strings["Unable to verify site signature for %s"] = "Impossibile verificare la firma elettronica del sito %s";
$a->strings["Delete this item?"] = "Eliminare questo elemento?";
+$a->strings["Comment"] = "Commento";
+$a->strings["[+] show all"] = "[+] mostra tutto";
$a->strings["[-] show less"] = "[-] riduci";
$a->strings["[+] expand"] = "[+] mostra tutto";
$a->strings["[-] collapse"] = "[-] riduci";
@@ -738,6 +730,7 @@ $a->strings["Secret Passphrase"] = "Chiave segreta";
$a->strings["Passphrase hint"] = "Suggerimento per la chiave segreta";
$a->strings["Notice: Permissions have changed but have not yet been submitted."] = "Nota: i permessi sono stati modificati ma non ancora salvati.";
$a->strings["close all"] = "chiudi tutto";
+$a->strings["Nothing new here"] = "Niente di nuovo qui";
$a->strings["timeago.prefixAgo"] = "timeago.prefixAgo";
$a->strings["timeago.prefixFromNow"] = "timeago.prefixFromNow";
$a->strings["ago"] = "fa";
@@ -755,9 +748,6 @@ $a->strings["about a year"] = "circa un anno";
$a->strings["%d years"] = "%d anni";
$a->strings[" "] = " ";
$a->strings["timeago.numbers"] = "timeago.numbers";
-$a->strings["New window"] = "Nuova finestra";
-$a->strings["Open the selected location in a different window or browser tab"] = "Apri l'indirizzo selezionato in una nuova scheda o finestra";
-$a->strings["User '%s' deleted"] = "Utente '%s' eliminato";
$a->strings["Male"] = "Maschio";
$a->strings["Female"] = "Femmina";
$a->strings["Currently Male"] = "Al momento maschio";
@@ -770,7 +760,6 @@ $a->strings["Transsexual"] = "Transessuale";
$a->strings["Hermaphrodite"] = "Ermafrodito";
$a->strings["Neuter"] = "Neutro";
$a->strings["Non-specific"] = "Non specificato";
-$a->strings["Other"] = "Altro";
$a->strings["Undecided"] = "Indeciso";
$a->strings["Males"] = "Maschi";
$a->strings["Females"] = "Femmine";
@@ -794,11 +783,11 @@ $a->strings["Infatuated"] = "Infatuato/a";
$a->strings["Dating"] = "Disponibile a un incontro";
$a->strings["Unfaithful"] = "Infedele";
$a->strings["Sex Addict"] = "Sesso-dipendente";
-$a->strings["Friends/Benefits"] = "Amici piccanti";
+$a->strings["Friends/Benefits"] = "Amici con qualcosa in più";
$a->strings["Casual"] = "Casual";
$a->strings["Engaged"] = "Impegnato";
$a->strings["Married"] = "Sposato/a";
-$a->strings["Imaginarily married"] = "Sogna il matrimonio";
+$a->strings["Imaginarily married"] = "Con matrimonio immaginario";
$a->strings["Partners"] = "Partner";
$a->strings["Cohabiting"] = "Convivente";
$a->strings["Common law"] = "Matrimonio regolare";
@@ -815,31 +804,67 @@ $a->strings["Uncertain"] = "Incerto/a";
$a->strings["It's complicated"] = "Relazione complicata";
$a->strings["Don't care"] = "Chi se ne frega";
$a->strings["Ask me"] = "Chiedimelo";
+$a->strings["Site Admin"] = "Amministrazione sito";
+$a->strings["Address Book"] = "Rubrica";
+$a->strings["Mood"] = "Umore";
+$a->strings["Probe"] = "Diagnostica";
+$a->strings["Suggest"] = "Suggerisci";
+$a->strings["Random Channel"] = "Canale casuale";
+$a->strings["Invite"] = "Invita";
+$a->strings["Features"] = "Funzionalità";
+$a->strings["Language"] = "Lingua";
+$a->strings["Post"] = "Articolo";
+$a->strings["Profile Photo"] = "Foto del profilo";
+$a->strings["Update"] = "Aggiorna";
+$a->strings["Install"] = "Installa";
+$a->strings["Purchase"] = "Acquista";
$a->strings["Logged out."] = "Uscita effettuata.";
$a->strings["Failed authentication"] = "Autenticazione fallita";
$a->strings["Login failed."] = "Accesso fallito.";
-$a->strings["Can view my normal stream and posts"] = "Può vedere i miei contenuti e articoli normali";
-$a->strings["Can view my default channel profile"] = "Può vedere il profilo predefinito del canale";
-$a->strings["Can view my photo albums"] = "Può vedere i miei album fotografici";
-$a->strings["Can view my connections"] = "Può vedere i miei contatti";
-$a->strings["Can view my file storage"] = "Può vedere i miei file condivisi";
-$a->strings["Can view my webpages"] = "Può vedere le mie pagine web";
-$a->strings["Can send me their channel stream and posts"] = "È tra i canali che seguo";
-$a->strings["Can post on my channel page (\"wall\")"] = "Può scrivere sulla bacheca del mio canale";
-$a->strings["Can comment on or like my posts"] = "Può commentare o aggiungere \"mi piace\" ai miei articoli";
-$a->strings["Can send me private mail messages"] = "Può inviarmi messaggi privati";
-$a->strings["Can post photos to my photo albums"] = "Può aggiungere foto ai miei album";
-$a->strings["Can like/dislike stuff"] = "Può aggiungere \"mi piace\"";
-$a->strings["Profiles and things other than posts/comments"] = "Profili e tutto ciò che non è articoli e commenti";
-$a->strings["Can forward to all my channel contacts via post @mentions"] = "Può inoltrare articoli a tutti i contatti del canale tramite una @menzione";
-$a->strings["Advanced - useful for creating group forum channels"] = "Impostazione avanzata - utile per creare un canale-forum di discussione";
-$a->strings["Can chat with me (when available)"] = "Può aprire una chat con me (se disponibile)";
-$a->strings["Can write to my file storage"] = "Può scrivere sul mio archivio file";
-$a->strings["Can edit my webpages"] = "Può modificare le mie pagine web";
-$a->strings["Can source my public posts in derived channels"] = "Può usare i miei articoli pubblici per creare canali derivati";
-$a->strings["Somewhat advanced - very useful in open communities"] = "Piuttosto avanzato - molto utile nelle comunità aperte";
-$a->strings["Can administer my channel resources"] = "Può amministrare i contenuti del mio canale";
-$a->strings["Extremely advanced. Leave this alone unless you know what you are doing"] = "Impostazione pericolosa - lasciare il valore predefinito se non si è assolutamente sicuri";
+$a->strings["Save to Folder"] = "Salva nella cartella";
+$a->strings["View all"] = "Vedi tutto";
+$a->strings["__ctx:noun__ Dislike"] = array(
+ 0 => "Non mi piace",
+ 1 => "Non mi piace",
+);
+$a->strings["Add Star"] = "Aggiungi ai preferiti";
+$a->strings["Remove Star"] = "Rimuovi dai preferiti";
+$a->strings["Toggle Star Status"] = "Attiva/disattiva preferito";
+$a->strings["starred"] = "preferito";
+$a->strings["Add Tag"] = "Aggiungi un tag";
+$a->strings["I like this (toggle)"] = "Attiva/disattiva Mi piace";
+$a->strings["I don't like this (toggle)"] = "Attiva/disattiva Non mi piace";
+$a->strings["Share This"] = "Condividi";
+$a->strings["share"] = "condividi";
+$a->strings["%d comment"] = array(
+ 0 => "%d commento",
+ 1 => "%d commenti",
+);
+$a->strings["View %s's profile - %s"] = "Guarda il profilo di %s - %s";
+$a->strings["to"] = "a";
+$a->strings["via"] = "via";
+$a->strings["Wall-to-Wall"] = "Da bacheca a bacheca";
+$a->strings["via Wall-To-Wall:"] = "da bacheca a bacheca:";
+$a->strings["Save Bookmarks"] = "Salva segnalibro";
+$a->strings["Add to Calendar"] = "Aggiungi al calendario";
+$a->strings["Mark all seen"] = "Marca tutto come letto";
+$a->strings["__ctx:noun__ Likes"] = "Mi piace";
+$a->strings["__ctx:noun__ Dislikes"] = "Non mi piace";
+$a->strings["This is you"] = "Questo sei tu";
+$a->strings["Submit"] = "Salva";
+$a->strings["Bold"] = "Grassetto";
+$a->strings["Italic"] = "Corsivo";
+$a->strings["Underline"] = "Sottolineato";
+$a->strings["Quote"] = "Citazione";
+$a->strings["Code"] = "Codice";
+$a->strings["Image"] = "Immagine";
+$a->strings["Link"] = "Link";
+$a->strings["Video"] = "Video";
+$a->strings["Missing room name"] = "Area chat senza nome";
+$a->strings["Duplicate room name"] = "Il nome dell'area chat è duplicato";
+$a->strings["Invalid room specifier."] = "Il nome dell'area chat non è valido.";
+$a->strings["Room not found."] = "Area chat non trovata.";
+$a->strings["Room is full"] = "L'area chat è al completo";
$a->strings["Set your current mood and tell your friends"] = "Scegli il tuo umore attuale per mostrarlo agli amici";
$a->strings["Menu not found."] = "Menù non trovato.";
$a->strings["Menu element updated."] = "L'elemento del menù è stato aggiornato.";
@@ -861,7 +886,7 @@ $a->strings["Menu Item Permissions"] = "Permessi del menu";
$a->strings["(click to open/close)"] = "(clicca per aprire/chiudere)";
$a->strings["Link text"] = "Testo del link";
$a->strings["URL of link"] = "Indirizzo del link";
-$a->strings["Use Red magic-auth if available"] = "Usa l'autenticazione magica di RedMatrix, se disponibile";
+$a->strings["Use RedMatrix magic-auth if available"] = "Usa l'autenticazione magica di RedMatrix, se disponibile";
$a->strings["Open link in new window"] = "Apri il link in una nuova finestra";
$a->strings["Order in list"] = "Ordine dell'elenco";
$a->strings["Higher numbers will sink to bottom of listing"] = "I numeri più alti andranno in fondo all'elenco";
@@ -870,16 +895,151 @@ $a->strings["Menu item deleted."] = "L'elemento del menù è stato eliminato.";
$a->strings["Menu item could not be deleted."] = "L'elemento del menù non può essere eliminato.";
$a->strings["Edit Menu Element"] = "Modifica l'elemento del menù";
$a->strings["Modify"] = "Modifica";
-$a->strings["sent you a private message"] = "ti ha inviato un messaggio privato";
-$a->strings["added your channel"] = "ha aggiunto il tuo canale";
-$a->strings["posted an event"] = "ha creato un evento";
-$a->strings["network"] = "rete";
+$a->strings["Some blurb about what to do when you're new here"] = "Qualche suggerimento per i nuovi utenti su cosa fare";
+$a->strings["Maximum daily site registrations exceeded. Please try again tomorrow."] = "È stato superato il numero massimo giornaliero di registrazioni a questo sito. Riprova domani!";
+$a->strings["Please indicate acceptance of the Terms of Service. Registration failed."] = "Impossibile proseguire. Devi prima accettare le Condizioni d'Uso del servizio.";
+$a->strings["Passwords do not match."] = "Le password non corrispondono.";
+$a->strings["Registration successful. Please check your email for validation instructions."] = "La registrazione è terminata correttamente. Per continuare controlla l'email che ti è stata inviata.";
+$a->strings["Your registration is pending approval by the site owner."] = "La tua richiesta è in attesa di approvazione da parte dell'amministratore del sito.";
+$a->strings["Your registration can not be processed."] = "La tua registrazione non puo' essere processata.";
+$a->strings["Registration on this site/hub is by approval only."] = "La registrazione su questo sito è soggetta ad approvazione.";
+$a->strings["<a href=\"pubsites\">Register at another affiliated site/hub</a>"] = "<a href=\"pubsites\">Registrati su un altro server affiliato</a>";
+$a->strings["This site has exceeded the number of allowed daily account registrations. Please try again tomorrow."] = "Questo sito ha superato il numero di registrazioni giornaliere consentite. Prova di nuovo domani.";
+$a->strings["Terms of Service"] = "Condizioni d'Uso";
+$a->strings["I accept the %s for this website"] = "Accetto le %s di questo sito";
+$a->strings["I am over 13 years of age and accept the %s for this website"] = "Ho più di 13 anni e accetto le %s di questo sito";
+$a->strings["Registration"] = "Registrazione";
+$a->strings["Membership on this site is by invitation only."] = "Per registrarsi su questo sito è necessario un invito.";
+$a->strings["Please enter your invitation code"] = "Inserisci il codice dell'invito";
+$a->strings["Your email address"] = "Il tuo indirizzo email";
+$a->strings["Choose a password"] = "Scegli una password";
+$a->strings["Please re-enter your password"] = "Ripeti la password per verifica";
+$a->strings["- select -"] = "- scegli -";
+$a->strings["Invalid profile identifier."] = "Indentificativo del profilo non valido.";
+$a->strings["Profile Visibility Editor"] = "Modifica la visibilità del profilo";
+$a->strings["Click on a contact to add or remove."] = "Clicca su un contatto per aggiungerlo o rimuoverlo.";
+$a->strings["Visible To"] = "Visibile a";
+$a->strings["All Connections"] = "Tutti i contatti";
+$a->strings["Failed to create source. No channel selected."] = "Impossibile creare la sorgente. Nessun canale selezionato.";
+$a->strings["Source created."] = "Sorgente creata.";
+$a->strings["Source updated."] = "Sorgente aggiornata.";
+$a->strings["*"] = "*";
+$a->strings["Manage remote sources of content for your channel."] = "Gestisci le sorgenti dei contenuti del tuo canale.";
+$a->strings["New Source"] = "Nuova sorgente";
+$a->strings["Import all or selected content from the following channel into this channel and distribute it according to your channel settings."] = "Importa nel tuo canale tutti o una parte dei contenuti dal canale seguente.";
+$a->strings["Only import content with these words (one per line)"] = "Importa solo i contenuti che hanno queste parole (una per riga)";
+$a->strings["Leave blank to import all public content"] = "Lascia vuoto per importare tutti i contenuti pubblici";
+$a->strings["Channel Name"] = "Nome del canale";
+$a->strings["Source not found."] = "Sorgente non trovata.";
+$a->strings["Edit Source"] = "Modifica la sorgente";
+$a->strings["Delete Source"] = "Elimina la sorgente";
+$a->strings["Source removed"] = "Sorgente eliminata";
+$a->strings["Unable to remove source."] = "Impossibile rimuovere la sorgente.";
+$a->strings["Poke/Prod"] = "Poke/Prod";
+$a->strings["poke, prod or do other things to somebody"] = "Manda un poke, un prod o altro";
+$a->strings["Recipient"] = "Destinatario";
+$a->strings["Choose what you wish to do to recipient"] = "Scegli cosa vuoi inviare al destinatario";
+$a->strings["Make this post private"] = "Rendi privato questo articolo";
+$a->strings["Authorize application connection"] = "Autorizza la app";
+$a->strings["Return to your app and insert this Securty Code:"] = "Torna alla app e inserisci questo codice di sicurezza:";
+$a->strings["Please login to continue."] = "Accedi al sito per continuare.";
+$a->strings["Do you want to authorize this application to access your posts and contacts, and/or create new posts for you?"] = "Vuoi autorizzare questa app ad accedere ai messaggi e ai contatti o creare nuovi messaggi per te?";
+$a->strings["Yes"] = "Si";
+$a->strings["No"] = "No";
+$a->strings["Public access denied."] = "Accesso pubblico negato.";
+$a->strings["Item not available."] = "Elemento non disponibile.";
+$a->strings["Fetching URL returns error: %1\$s"] = "La chiamata all'URL restituisce questo errore: %1\$s";
+$a->strings["Invalid item."] = "Elemento non valido.";
+$a->strings["Channel not found."] = "Canale non trovato.";
+$a->strings["Page not found."] = "Pagina non trovata.";
+$a->strings["%1\$s is following %2\$s's %3\$s"] = "%1\$s sta seguendo %3\$s di %2\$s";
+$a->strings["Block Name"] = "Nome del riquadro";
+$a->strings["Red Matrix Server - Setup"] = "RedMatrix Server - Installazione";
+$a->strings["Could not connect to database."] = " Impossibile connettersi al database.";
+$a->strings["Could not connect to specified site URL. Possible SSL certificate or DNS issue."] = "Non è possibile raggiungere l'indirizzo del sito specificato. Potrebbe essere un problema di SSL o DNS.";
+$a->strings["Could not create table."] = "Impossibile creare le tabelle.";
+$a->strings["Your site database has been installed."] = "Il database del sito è stato installato.";
+$a->strings["You may need to import the file \"install/schema_xxx.sql\" manually using a database client."] = "Potresti dover importare il file 'install/schema_xxx.sql' manualmente usando un client per collegarti al db.";
+$a->strings["Please see the file \"install/INSTALL.txt\"."] = "Leggi il file 'install/INSTALL.txt'.";
+$a->strings["System check"] = "Verifica del sistema";
+$a->strings["Next"] = "Successivo";
+$a->strings["Check again"] = "Verifica di nuovo";
+$a->strings["Database connection"] = "Connessione al database";
+$a->strings["In order to install Red Matrix we need to know how to connect to your database."] = "Per installare RedMatrix è necessario conoscere i parametri di connessione al database.";
+$a->strings["Please contact your hosting provider or site administrator if you have questions about these settings."] = "Contatta il tuo fornitore di hosting o l'amministratore del sito se hai domande su queste impostazioni.";
+$a->strings["The database you specify below should already exist. If it does not, please create it before continuing."] = "Il database deve già esistere. Se non esiste, crealo prima di continuare.";
+$a->strings["Database Server Name"] = "Server del database";
+$a->strings["Default is localhost"] = "'localhost' è il predefinito";
+$a->strings["Database Port"] = "Port del database";
+$a->strings["Communication port number - use 0 for default"] = "Scrivi 0 per usare il valore standard";
+$a->strings["Database Login Name"] = "Utente database";
+$a->strings["Database Login Password"] = "Password utente database";
+$a->strings["Database Name"] = "Nome database";
+$a->strings["Database Type"] = "Tipo database";
+$a->strings["Site administrator email address"] = "Indirizzo email dell'amministratore del sito";
+$a->strings["Your account email address must match this in order to use the web admin panel."] = "Il tuo indirizzo email deve corrispondere a questo per poter usare il pannello di amministrazione web.";
+$a->strings["Website URL"] = "URL completo del sito";
+$a->strings["Please use SSL (https) URL if available."] = "Se disponibile, usa l'indirizzo SSL (https).";
+$a->strings["Please select a default timezone for your website"] = "Seleziona il fuso orario predefinito per il tuo sito web";
+$a->strings["Site settings"] = "Impostazioni del sito";
+$a->strings["Could not find a command line version of PHP in the web server PATH."] = "Non è possibile trovare la versione di PHP da riga di comando nel PATH del server 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."] = "Se non hai installata la versione di PHP da riga di comando non potrai attivare il polling in background tramite cron.";
+$a->strings["PHP executable path"] = "Path del comando PHP";
+$a->strings["Enter full path to php executable. You can leave this blank to continue the installation."] = "Inserisci il percorso dell'eseguibile PHP. Puoi lasciarlo vuoto per continuare l'installazione.";
+$a->strings["Command line PHP"] = "PHP da riga di comando";
+$a->strings["The command line version of PHP on your system does not have \"register_argc_argv\" enabled."] = "La versione da riga di comando di PHP nel sistema non ha abilitato \"register_argc_argv\".";
+$a->strings["This is required for message delivery to work."] = "E' necessario perché funzioni la consegna dei messaggi.";
+$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"] = "Errore: la funzione \"openssl_pkey_new\" su questo sistema non è in grado di generare le chiavi di criptazione";
+$a->strings["If running under Windows, please see \"http://www.php.net/manual/en/openssl.installation.php\"."] = "Se stai usando un server windows, guarda \"http://www.php.net/manual/en/openssl.installation.php\".";
+$a->strings["Generate encryption keys"] = "Genera chiavi di criptazione";
+$a->strings["libCurl PHP module"] = "modulo PHP libCurl";
+$a->strings["GD graphics PHP module"] = "modulo PHP GD graphics";
+$a->strings["OpenSSL PHP module"] = "modulo PHP OpenSSL";
+$a->strings["mysqli or postgres PHP module"] = "modulo PHP per mysqli oppure prostgres";
+$a->strings["mb_string PHP module"] = "modulo PHP mb_string";
+$a->strings["mcrypt PHP module"] = "modulo PHP mcrypt";
+$a->strings["Apache mod_rewrite module"] = "modulo Apache mod_rewrite";
+$a->strings["Error: Apache webserver mod-rewrite module is required but not installed."] = "Errore: il modulo mod-rewrite di Apache è richiesto ma non installato";
+$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"] = "Errore: proc_open è richiesto ma non è installato o è disabilitato in php.ini";
+$a->strings["Error: libCURL PHP module required but not installed."] = "Errore: il modulo libCURL di PHP è richiesto ma non installato.";
+$a->strings["Error: GD graphics PHP module with JPEG support required but not installed."] = "Errore: Il modulo GD graphics di PHP con supporto a JPEG è richiesto ma non installato.";
+$a->strings["Error: openssl PHP module required but not installed."] = "Errore: il modulo openssl di PHP è richiesto ma non installato.";
+$a->strings["Error: mysqli or postgres PHP module required but neither are installed."] = "Errore: il modulo PHP per mysqli o postgres è richiesto ma non installato";
+$a->strings["Error: mb_string PHP module required but not installed."] = "Errore: il modulo PHP mb_string è richiesto ma non installato.";
+$a->strings["Error: mcrypt PHP module required but not installed."] = "Errore: il modulo PHP mcrypt è richiesto ma non installato.";
+$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'installazione web deve poter creare un file chiamato \".htconfig.php\" nella cartella di RedMatrix ma non è in grado di farlo.";
+$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."] = "Spesso ciò è dovuto ai permessi di accesso al disco: il web server potrebbe non aver diritto di scrivere il file nella cartella, anche se tu puoi.";
+$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."] = "Alla fine di questa procedura ti sarà dato il testo da salvare in un file di nome .htconfig.php dentro la cartella principale di RedMatrix.";
+$a->strings["You can alternatively skip this procedure and perform a manual installation. Please see the file \"install/INSTALL.txt\" for instructions."] = "Puoi anche saltare questa procedura ed effettuare un'installazione manuale. Guarda il file 'install/INSTALL.txt' per le istruzioni.";
+$a->strings[".htconfig.php is writable"] = ".htconfig.php è scrivibile";
+$a->strings["Red uses the Smarty3 template engine to render its web views. Smarty3 compiles templates to PHP to speed up rendering."] = "Red usa il sistema Smarty3 per costruire i suoi template grafici. Smarty3 è molto veloce perché compila i template delle pagine direttamente in PHP.";
+$a->strings["In order to store these compiled templates, the web server needs to have write access to the directory %s under the Red top level folder."] = "Per poter memorizzare i template compilati, il web server deve avere accesso in scrittura a %s sotto la cartella di installazione di RedMatrix.";
+$a->strings["Please ensure that the user that your web server runs as (e.g. www-data) has write access to this folder."] = "Assicurati che il tuo web server sia in esecuzione da parte di un utente che ha diritto di scrittura su quella cartella (ad esempio www-data).";
+$a->strings["Note: as a security measure, you should give the web server write access to %s only--not the template files (.tpl) that it contains."] = "Nota bene: come precauzione, dovresti dare i diritti di scrittura solamente su %s e non sui file template (.tpl) che contiene.";
+$a->strings["%s is writable"] = "%s è scrivibile";
+$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"] = "RedMatrix salva i file caricati nella cartella \"store\" sul server. Il server deve avere i diritti di scrittura su quella cartella che si trova dentro l'installazione di RedMatrix";
+$a->strings["store is writable"] = "l'archivio è scrivibile";
+$a->strings["SSL certificate cannot be validated. Fix certificate or disable https access to this site."] = "Il certificato SSL non può essere validato. Correggi l'errore o disabilita l'accesso https al sito.";
+$a->strings["If you have https access to your website or allow connections to TCP port 443 (the https: port), you MUST use a browser-valid certificate. You MUST NOT use self-signed certificates!"] = "Se abiliti https per il tuo sito o permetti connessioni TCP su port 443 (quella di https), DEVI usare un certificato riconosciuto dai browser internet. NON DEVI usare certificati generati da te!";
+$a->strings["This restriction is incorporated because public posts from you may for example contain references to images on your own hub."] = "Questa restrizione è necessaria perché i tuoi post pubblici potrebbero contenere riferimenti a immagini sul tuo server.";
+$a->strings["If your certificate is not recognized, members of other sites (who may themselves have valid certificates) will get a warning message on their own site complaining about security issues."] = "Se il tuo certificato non è riconosciuto, gli utenti che ti seguono da altri siti (che avranno certificati validi) riceveranno gravi avvisi di sicurezza dal browser.";
+$a->strings["This can cause usability issues elsewhere (not just on your own site) so we must insist on this requirement."] = "Ciò può creare seri problemi di usabilità (non solo sul tuo sito), quindi dobbiamo insistere su questo punto.";
+$a->strings["Providers are available that issue free certificates which are browser-valid."] = "Eventualmente, considera che esistono provider che rilasciano certificati gratuiti riconosciuti dai browser.";
+$a->strings["SSL certificate validation"] = "Validazione del certificato SSL";
+$a->strings["Url rewrite in .htaccess is not working. Check your server configuration.Test: "] = "In .htaccess la funzionalità url rewrite non funziona. Controlla la configurazione del server. Test:";
+$a->strings["Url rewrite is working"] = "Url rewrite funziona correttamente";
+$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."] = "Il file di configurazione del database \".htconfig.php\" non puo' essere scritto. Usa il testo qui di seguito per creare questo file di configurazione nella cartella principale del tuo sito.";
+$a->strings["Errors encountered creating database tables."] = "La creazione delle tabelle del database ha generato errori.";
+$a->strings["<h1>What next</h1>"] = "<h1>I prossimi passi</h1>";
+$a->strings["IMPORTANT: You will need to [manually] setup a scheduled task for the poller."] = "IMPORTANTE: Devi creare [manualmente] la pianificazione del polling.";
$a->strings["Name is required"] = "Il nome è obbligatorio";
-$a->strings["Key and Secret are required"] = "Chiave e Segreto sono richiesti";
+$a->strings["Key and Secret are required"] = "Key e Secret sono richiesti";
$a->strings["Passwords do not match. Password unchanged."] = "Le password non corrispondono. Password non cambiata.";
$a->strings["Empty passwords are not allowed. Password unchanged."] = "Le password non possono essere vuote. Password non cambiata.";
$a->strings["Password changed."] = "Password cambiata.";
-$a->strings["Password update failed. Please try again."] = "Aggiornamento password fallito. Prova ancora.";
+$a->strings["Password update failed. Please try again."] = "Modifica password fallita. Prova ancora.";
$a->strings["Not valid email."] = "Email non valida.";
$a->strings["Protected email address. Cannot change to that email."] = "È un indirizzo email riservato. Non puoi sceglierlo.";
$a->strings["System failure storing new email. Please try again."] = "Errore di sistema. Non è stato possibile memorizzare il tuo messaggio, riprova per favore.";
@@ -907,7 +1067,7 @@ $a->strings["Confirm:"] = "Conferma:";
$a->strings["Leave password fields blank unless changing"] = "Lascia questi campi in bianco per non cambiare la password";
$a->strings["Email Address:"] = "Indirizzo email:";
$a->strings["Remove Account"] = "Elimina l'account";
-$a->strings["Remove this account from this server including all its channels"] = "Elimina questo account da questo server, inclusi tutti i canali.";
+$a->strings["Remove this account from this server including all its channels"] = "Elimina l'account da questo server, inclusi tutti i canali";
$a->strings["Warning: This action is permanent and cannot be reversed."] = "Attenzione: questa azione è permanente e non potrà più essere annullata.";
$a->strings["Off"] = "Off";
$a->strings["On"] = "On";
@@ -915,8 +1075,9 @@ $a->strings["Additional Features"] = "Funzionalità opzionali";
$a->strings["Connector Settings"] = "Impostazioni del connettore";
$a->strings["No special theme for mobile devices"] = "Nessun tema per dispositivi mobili";
$a->strings["%s - (Experimental)"] = "%s - (Sperimentale)";
+$a->strings["mobile"] = "mobile";
$a->strings["Display Settings"] = "Aspetto";
-$a->strings["Display Theme:"] = "Tema per monitor:";
+$a->strings["Display Theme:"] = "Tema per schermi medio grandi:";
$a->strings["Mobile Theme:"] = "Tema per dispositivi mobili:";
$a->strings["Enable user zoom on mobile devices"] = "Attiva la possibilità di fare zoom sui dispositivi mobili";
$a->strings["Update browser every xx seconds"] = "Aggiorna il browser ogni x secondi";
@@ -924,7 +1085,14 @@ $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["System Page Layout Editor - (advanced)"] = "Modifica i layout di sistema - (avanzato)";
+$a->strings["Link post titles to source"] = "Il link del titolo di un articolo porta al sito originale";
+$a->strings["System Page Layout Editor - (advanced)"] = "Modifica i layout di sistema (avanzato)";
+$a->strings["Use blog/list mode on channel page"] = "Mostra il canale nella modalità blog";
+$a->strings["(comments displayed separately)"] = "(i commenti sono mostrati separatamente)";
+$a->strings["Use blog/list mode on matrix page"] = "Mostra la tua rete in modalità blog";
+$a->strings["Channel page max height of content (in pixels)"] = "Altezza massima dei contenuti del canale (in pixel)";
+$a->strings["click to expand content exceeding this height"] = "dovrai cliccare per mostrare i contenuti di dimensioni maggiori";
+$a->strings["Matrix page max height of content (in pixels)"] = "Altezza massima dei contenuti della tua rete (in pixel)";
$a->strings["Nobody except yourself"] = "Nessuno tranne te";
$a->strings["Only those you specifically allow"] = "Solo chi riceve il mio permesso";
$a->strings["Approved connections"] = "Contatti approvati";
@@ -933,10 +1101,8 @@ $a->strings["Anybody on this website"] = "Chiunque su questo sito";
$a->strings["Anybody in this network"] = "Chiunque su Red";
$a->strings["Anybody authenticated"] = "Chiunque sia autenticato";
$a->strings["Anybody on the internet"] = "Chiunque su internet";
-$a->strings["Publish your default profile in the network directory"] = "Pubblica il mio profilo predefinito sull'elenco pubblico dei canali";
-$a->strings["No"] = "No";
-$a->strings["Yes"] = "Si";
-$a->strings["Allow us to suggest you as a potential friend to new members?"] = "Vuoi essere suggerito come potenziale amico ai nuovi membri?";
+$a->strings["Publish your default profile in the network directory"] = "Mostra il mio profilo predefinito nell'elenco pubblico dei canali";
+$a->strings["Allow us to suggest you as a potential friend to new members?"] = "Vuoi essere suggerito come amico ai nuovi membri?";
$a->strings["or"] = "o";
$a->strings["Your channel address is"] = "L'indirizzo del tuo canale è";
$a->strings["Channel Settings"] = "Impostazioni del canale";
@@ -948,13 +1114,14 @@ $a->strings["Use Browser Location:"] = "Usa la località rilevata dal browser:";
$a->strings["Adult Content"] = "Contenuto per adulti";
$a->strings["This channel frequently or regularly publishes adult content. (Please tag any adult material and/or nudity with #NSFW)"] = "Questo canale pubblica frequentemente contenuto per adulti. (I contenuti per adulti vanno taggati #NSFW - Not Safe For Work)";
$a->strings["Security and Privacy Settings"] = "Impostazioni di sicurezza e privacy";
+$a->strings["Your permissions are already configured. Click to view/adjust"] = "I tuoi permessi sono già stati configurati. Clicca per vederli o modificarli";
$a->strings["Hide my online presence"] = "Non mostrare la mia presenza online";
$a->strings["Prevents displaying in your profile that you are online"] = "Non mostra sul tuo profilo che sei online";
$a->strings["Simple Privacy Settings:"] = "Impostazioni di privacy semplificate";
$a->strings["Very Public - <em>extremely permissive (should be used with caution)</em>"] = "Tutto pubblico - <em>estremamente permissivo (da usare con cautela)</em>";
$a->strings["Typical - <em>default public, privacy when desired (similar to social network permissions but with improved privacy)</em>"] = "Standard - <em>contenuti normalmente pubblici, ma anche privati se necessario (simile ai social network ma con privacy migliorata)</em>";
$a->strings["Private - <em>default private, never open or public</em>"] = "Privato - <em>contenuti normalmente privati, nulla è aperto o pubblico</em>";
-$a->strings["Blocked - <em>default blocked to/from everybody</em>"] = "Bloccato - <em>bloccato in ricezione e invio</em>";
+$a->strings["Blocked - <em>default blocked to/from everybody</em>"] = "Bloccato - <em>bloccato in invio e ricezione dei contenuti</em>";
$a->strings["Allow others to tag your posts"] = "Permetti ad altri di taggare i tuoi articoli";
$a->strings["Often used by the community to retro-actively flag inappropriate content"] = "Usato spesso dalla comunità per marcare contenuti inappropriati già esistenti";
$a->strings["Advanced Privacy Settings"] = "Impostazioni di privacy avanzate";
@@ -963,6 +1130,7 @@ $a->strings["0 or blank prevents expiration"] = "Lascia vuoto oppure 0 per non i
$a->strings["Maximum Friend Requests/Day:"] = "Numero massimo giornaliero di richieste di amicizia:";
$a->strings["May reduce spam activity"] = "Serve e ridurre lo spam";
$a->strings["Default Post Permissions"] = "Permessi predefiniti per gli articoli";
+$a->strings["Channel permissions category:"] = "Categorie di permessi dei canali:";
$a->strings["Maximum private messages per day from unknown people:"] = "Numero massimo giornaliero di messaggi privati da utenti sconosciuti:";
$a->strings["Useful to reduce spamming"] = "Serve e ridurre lo spam";
$a->strings["Notification Settings"] = "Impostazioni di notifica";
@@ -979,124 +1147,53 @@ $a->strings["You receive a private message"] = "Ricevi un messaggio privato";
$a->strings["You receive a friend suggestion"] = "Ti viene suggerito un amico";
$a->strings["You are tagged in a post"] = "Sei taggato in un articolo";
$a->strings["You are poked/prodded/etc. in a post"] = "Ricevi un poke in un articolo";
+$a->strings["Show visual notifications including:"] = "Mostra queste notifiche a schermo:";
+$a->strings["Unseen matrix activity"] = "Nuove attività nella rete";
+$a->strings["Unseen channel activity"] = "Novità nei canali";
+$a->strings["Unseen private messages"] = "Nuovi messaggi privati";
+$a->strings["Recommended"] = "Consigliato";
+$a->strings["Upcoming events"] = "Prossimi eventi";
+$a->strings["Events today"] = "Eventi di oggi";
+$a->strings["Upcoming birthdays"] = "Prossimi compleanni";
+$a->strings["Not available in all themes"] = "Non disponibile in tutti i temi";
+$a->strings["System (personal) notifications"] = "Notifiche personali dal sistema";
+$a->strings["System info messages"] = "Notifiche di sistema";
+$a->strings["System critical alerts"] = "Avvisi critici di sistema";
+$a->strings["New connections"] = "Nuovi contatti";
+$a->strings["System Registrations"] = "Registrazioni";
+$a->strings["Notify me of events this many days in advance"] = "Giorni di anticipo per notificare gli eventi";
+$a->strings["Must be greater than 0"] = "Maggiore di 0";
$a->strings["Advanced Account/Page Type Settings"] = "Impostazioni avanzate";
-$a->strings["Change the behaviour of this account for special situations"] = "Cambia il funzionamento di questo account in situazioni particolari";
+$a->strings["Change the behaviour of this account for special situations"] = "Cambia il funzionamento di questo account per necessità particolari";
$a->strings["Please enable expert mode (in <a href=\"settings/features\">Settings > Additional features</a>) to adjust!"] = "Abilita la modalità esperto per fare cambiamenti! (in <a href=\"settings/features\">Impostazioni > Funzionalità opzionali</a>)";
$a->strings["Miscellaneous Settings"] = "Impostazioni varie";
$a->strings["Personal menu to display in your channel pages"] = "Menu personale da mostrare sulle pagine del tuo canale";
$a->strings["Remove this channel"] = "Elimina questo canale";
-$a->strings["Poke/Prod"] = "Poke/Prod";
-$a->strings["poke, prod or do other things to somebody"] = "Manda un poke, un prod o altro";
-$a->strings["Recipient"] = "Destinatario";
-$a->strings["Choose what you wish to do to recipient"] = "Scegli cosa vuoi inviare al destinatario";
-$a->strings["Make this post private"] = "Rendi privato questo articolo";
-$a->strings["Authorize application connection"] = "Autorizza la app";
-$a->strings["Return to your app and insert this Securty Code:"] = "Torna alla app e inserisci questo codice di sicurezza:";
-$a->strings["Please login to continue."] = "Accedi al sito per continuare.";
-$a->strings["Do you want to authorize this application to access your posts and contacts, and/or create new posts for you?"] = "Vuoi autorizzare questa app ad accedere ai messaggi e ai contatti o creare nuovi messaggi per te?";
-$a->strings["Remote authentication blocked. You are logged into this site locally. Please logout and retry."] = "L'autenticazione remota non è disponibile. Hai accesso solamente a questo sito. Puoi provare ad uscire per tentare di nuovo.";
-$a->strings["Welcome %s. Remote authentication successful."] = "Ciao %s. La tua autenticazione da remoto è avvenuta con successo.";
-$a->strings["Item not available."] = "Elemento non disponibile.";
-$a->strings["Fetching URL returns error: %1\$s"] = "La chiamata all'URL restituisce questo errore: %1\$s";
-$a->strings["Invalid item."] = "Elemento non valido.";
-$a->strings["Channel not found."] = "Canale non trovato.";
-$a->strings["Page not found."] = "Pagina non trovata.";
-$a->strings["Image uploaded but image cropping failed."] = "L'immagine è stata caricata, ma il non è stato possibile ritagliarla.";
-$a->strings["Image resize failed."] = "Il ridimensionamento dell'immagine è fallito.";
-$a->strings["Shift-reload the page or clear browser cache if the new photo does not display immediately."] = "Ricarica la pagina con shift+F5 o cancella la cache del browser se la nuova foto non viene mostrata immediatamente.";
-$a->strings["Image exceeds size limit of %d"] = "La dimensione dell'immagine supera il limite di %d";
-$a->strings["Unable to process image."] = "Impossibile elaborare l'immagine.";
-$a->strings["Photo not available."] = "Foto non disponibile.";
-$a->strings["Upload File:"] = "Carica un file:";
-$a->strings["Select a profile:"] = "Seleziona un profilo:";
-$a->strings["Upload Profile Photo"] = "Carica la foto del profilo";
-$a->strings["skip this step"] = "salta questo passaggio";
-$a->strings["select a photo from your photo albums"] = "seleziona una foto dai tuoi album";
-$a->strings["Crop Image"] = "Ritaglia immagine";
-$a->strings["Please adjust the image cropping for optimum viewing."] = "Ritaglia l'immagine per migliorarne la visualizzazione.";
-$a->strings["Done Editing"] = "Modifica terminata";
-$a->strings["Image uploaded successfully."] = "Immagine caricata con successo.";
-$a->strings["Image upload failed."] = "Il caricamento dell'immagine è fallito.";
-$a->strings["Image size reduction [%s] failed."] = "Il ridimensionamento del'immagine [%s] è fallito.";
-$a->strings["Block Name"] = "Nome del riquadro";
-$a->strings["Profile not found."] = "Profilo non trovato.";
-$a->strings["Profile deleted."] = "Profilo eliminato.";
-$a->strings["Profile-"] = "Profilo-";
-$a->strings["New profile created."] = "Il nuovo profilo è stato creato.";
-$a->strings["Profile unavailable to clone."] = "Impossibile duplicare il profilo.";
-$a->strings["Profile unavailable to export."] = "Il profilo non è disponibile per l'export.";
-$a->strings["Profile Name is required."] = "Il nome del profilo è obbligatorio .";
-$a->strings["Marital Status"] = "Stato sentimentale";
-$a->strings["Romantic Partner"] = "Partner affettivo";
-$a->strings["Likes"] = "Mi piace";
-$a->strings["Dislikes"] = "Non mi piace";
-$a->strings["Work/Employment"] = "Lavoro/impiego";
-$a->strings["Religion"] = "Religione";
-$a->strings["Political Views"] = "Orientamento politico";
-$a->strings["Gender"] = "Sesso";
-$a->strings["Sexual Preference"] = "Preferenze sessuali";
-$a->strings["Homepage"] = "Home page";
-$a->strings["Interests"] = "Interessi";
-$a->strings["Address"] = "Indirizzo";
-$a->strings["Location"] = "Posizione geografica";
-$a->strings["Profile updated."] = "Profilo aggiornato.";
-$a->strings["Hide your contact/friend list from viewers of this profile?"] = "Nascondi la tua lista di contatti/amici ai visitatori di questo profilo?";
-$a->strings["Edit Profile Details"] = "Modifica i dettagli del profilo";
-$a->strings["View this profile"] = "Guarda questo profilo";
-$a->strings["Change Profile Photo"] = "Cambia la foto del profilo";
-$a->strings["Create a new profile using these settings"] = "Crea un nuovo profilo usando queste impostazioni";
-$a->strings["Clone this profile"] = "Clona questo profilo";
-$a->strings["Delete this profile"] = "Elimina questo profilo";
-$a->strings["Import profile from file"] = "Importa il profilo da un file";
-$a->strings["Export profile to file"] = "Esporta il profilo in un file";
-$a->strings["Profile Name:"] = "Nome del profilo:";
-$a->strings["Your Full Name:"] = "Il tuo nome completo:";
-$a->strings["Title/Description:"] = "Titolo/descrizione:";
-$a->strings["Your Gender:"] = "Sesso:";
-$a->strings["Birthday (%s):"] = "Compleanno (%s):";
-$a->strings["Street Address:"] = "Indirizzo (via/piazza):";
-$a->strings["Locality/City:"] = "Località:";
-$a->strings["Postal/Zip Code:"] = "CAP:";
-$a->strings["Country:"] = "Nazione:";
-$a->strings["Region/State:"] = "Regione/stato:";
-$a->strings["<span class=\"heart\">&hearts;</span> Marital Status:"] = "<span class=\"heart\">&hearts;</span> Stato sentimentale:";
-$a->strings["Who: (if applicable)"] = "Con chi: (se possibile)";
-$a->strings["Examples: cathy123, Cathy Williams, cathy@example.com"] = "Per esempio: cathy123, Cathy Williams, cathy@example.com";
-$a->strings["Since [date]:"] = "dal [data]:";
-$a->strings["Homepage URL:"] = "Indirizzo home page:";
-$a->strings["Religious Views:"] = "Orientamento religioso:";
-$a->strings["Keywords:"] = "Parole chiave, tag:";
-$a->strings["Example: fishing photography software"] = "Per esempio: pesca fotografia programmazione";
-$a->strings["Used in directory listings"] = "Visibile nell'elenco pubblico di canali";
-$a->strings["Tell us about yourself..."] = "Raccontaci di te...";
-$a->strings["Hobbies/Interests"] = "Hobby/interessi";
-$a->strings["Contact information and Social Networks"] = "Contatti personali e i tuoi social network";
-$a->strings["My other channels"] = "I miei altri canali";
-$a->strings["Musical interests"] = "Interessi musicali";
-$a->strings["Books, literature"] = "Libri, letteratura";
-$a->strings["Television"] = "Televisione";
-$a->strings["Film/dance/culture/entertainment"] = "Film/danza/cultura/intrattenimento";
-$a->strings["Love/romance"] = "Amore";
-$a->strings["Work/employment"] = "Lavoro/impiego";
-$a->strings["School/education"] = "Scuola/educazione";
-$a->strings["This is your default profile."] = "Questo è il tuo profilo predefinito.";
-$a->strings["Age: "] = "Età:";
-$a->strings["Edit/Manage Profiles"] = "Modifica/gestisci i profili";
-$a->strings["Add profile things"] = "Aggiungi oggetti al profilo";
-$a->strings["Include desirable objects in your profile"] = "Aggiungi oggetti interessanti al tuo profilo";
-$a->strings["Bookmark added"] = "Segnalibro aggiunto";
-$a->strings["My Bookmarks"] = "I miei segnalibri";
-$a->strings["My Connections Bookmarks"] = "I segnalibri dei miei contatti";
-$a->strings["Invalid profile identifier."] = "Indentificativo del profilo non valido.";
-$a->strings["Profile Visibility Editor"] = "Modifica la visibilità del profilo";
-$a->strings["Click on a contact to add or remove."] = "Clicca su un contatto per aggiungerlo o rimuoverlo.";
-$a->strings["Visible To"] = "Visibile a";
-$a->strings["All Connections"] = "Tutti i contatti";
+$a->strings["Event can not end before it has started."] = "Un evento non può terminare prima del suo inizio.";
+$a->strings["Event title and start time are required."] = "Sono necessari il titolo e l'ora d'inizio dell'evento.";
+$a->strings["Event not found."] = "Evento non trovato.";
+$a->strings["l, F j"] = "l j F";
+$a->strings["Edit event"] = "Modifica l'evento";
+$a->strings["Create New Event"] = "Crea un nuovo evento";
+$a->strings["Previous"] = "Precendente";
+$a->strings["Export"] = "Esporta";
+$a->strings["Event details"] = "Dettagli evento";
+$a->strings["Starting date and Title are required."] = "Titolo e data d'inizio sono obbligatori.";
+$a->strings["Categories (comma-separated list)"] = "Categorie (separate da virgola)";
+$a->strings["Event Starts:"] = "Inizio:";
+$a->strings["Required"] = "Obbligatorio";
+$a->strings["Finish date/time is not known or not relevant"] = "La data/ora di fine non è rilevante";
+$a->strings["Event Finishes:"] = "Fine:";
+$a->strings["Adjust for viewer timezone"] = "Adatta al fuso orario di chi legge";
+$a->strings["Description:"] = "Descrizione:";
+$a->strings["Title:"] = "Titolo:";
+$a->strings["Share this event"] = "Condividi questo evento";
$a->strings["Public Sites"] = "Siti pubblici";
-$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."] = "Gli indirizzi elencati permettono la registrazione su RedMatrix. Tutti i siti di questa rete sono interconnessi, quindi essere registrati su uno è come essere registrati ovunque. Alcuni potrebbero richiedere un'iscrizione a pagamento o prevedere tipi diversi di abbonamento. Potrai trovare maggiori informazioni al riguardo visitando ciascun sito.";
+$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."] = "Gli indirizzi elencati permettono la registrazione su RedMatrix. Tutti i siti di questa rete sono interconnessi, quindi essere registrati su uno è come essere registrati ovunque. Alcuni potrebbero richiedere un'iscrizione a pagamento o prevedere diverse tipologie di abbonamento. Eventualmente potrai trovare maggiori informazioni visitando ciascun sito.";
$a->strings["Site URL"] = "URL del sito";
$a->strings["Access Type"] = "Tipo di accesso";
$a->strings["Registration Policy"] = "Politica di registrazione";
+$a->strings["Location"] = "Posizione geografica";
$a->strings["You must be logged in to see this page."] = "Devi aver effettuato l'accesso per vedere questa pagina.";
$a->strings["Insufficient permissions. Request redirected to profile page."] = "Permessi insufficienti. Sarà visualizzata la pagina del profilo.";
$a->strings["Select a bookmark folder"] = "Scegli una cartella di segnalibri";
@@ -1107,34 +1204,34 @@ $a->strings["Or enter new bookmark folder name"] = "O inserisci il nome di una n
$a->strings["Room not found"] = "Area chat non trovata";
$a->strings["Leave Room"] = "Lascia l'area chat";
$a->strings["Delete This Room"] = "Elimina questa area chat";
-$a->strings["I am away right now"] = "Non sono presente al momento";
+$a->strings["I am away right now"] = "Non sono presente";
$a->strings["I am online"] = "Sono online";
$a->strings["Bookmark this room"] = "Aggiungi l'area chat ai segnalibri";
$a->strings["New Chatroom"] = "Nuova area chat";
$a->strings["Chatroom Name"] = "Nome dell'area chat";
$a->strings["%1\$s's Chatrooms"] = "Le aree chat di %1\$s";
-$a->strings["Maximum daily site registrations exceeded. Please try again tomorrow."] = "È stato superato il numero massimo giornaliero di registrazioni a questo sito. Riprova domani!";
-$a->strings["Please indicate acceptance of the Terms of Service. Registration failed."] = "Impossibile proseguire. Devi prima accettare le Condizioni d'Uso del servizio.";
-$a->strings["Passwords do not match."] = "Le password non corrispondono.";
-$a->strings["Registration successful. Please check your email for validation instructions."] = "La registrazione è terminata correttamente. Per continuare controlla l'email che ti è stata inviata.";
-$a->strings["Your registration is pending approval by the site owner."] = "La tua richiesta è in attesa di approvazione da parte dell'amministratore del sito.";
-$a->strings["Your registration can not be processed."] = "La tua registrazione non puo' essere acquisita.";
-$a->strings["Registration on this site/hub is by approval only."] = "La registrazione su questo sito è soggetta ad approvazione.";
-$a->strings["<a href=\"pubsites\">Register at another affiliated site/hub</a>"] = "<a href=\"pubsites\">Registrati su un altro server affiliato</a>";
-$a->strings["This site has exceeded the number of allowed daily account registrations. Please try again tomorrow."] = "Questo sito ha superato il numero di registrazioni giornaliere consentite. Prova di nuovo domani.";
-$a->strings["Terms of Service"] = "Condizioni d'Uso";
-$a->strings["I accept the %s for this website"] = "Accetto le %s di questo sito";
-$a->strings["I am over 13 years of age and accept the %s for this website"] = "Ho più di 13 anni e accetto le %s di questo sito";
-$a->strings["Registration"] = "Registrazione";
-$a->strings["Membership on this site is by invitation only."] = "Per registrarsi su questo sito è necessario un invito.";
-$a->strings["Please enter your invitation code"] = "Inserisci il codice dell'invito";
-$a->strings["Your email address"] = "Il tuo indirizzo email";
-$a->strings["Choose a password"] = "Scegli una password";
-$a->strings["Please re-enter your password"] = "Ripeti la password per verifica";
+$a->strings["Version %s"] = "Versione %s";
+$a->strings["Installed plugins/addons/apps:"] = "App e componenti installati:";
+$a->strings["No installed plugins/addons/apps"] = "Nessuna app o componente installato";
+$a->strings["Red"] = "RedMatrix";
+$a->strings["This is a hub of the Red Matrix - a global cooperative network of decentralized privacy enhanced websites."] = "Questo è un hub di RedMatrix - una rete cooperativa e decentralizzata di siti ad elevata privacy. ";
+$a->strings["Running at web location"] = "In esecuzione sull'indirizzo web";
+$a->strings["Please visit <a href=\"http://getzot.com\">GetZot.com</a> to learn more about the Red Matrix."] = "Visita <a href=\"http://getzot.com\">GetZot.com</a> per scoprire il progetto RedMatrix.";
+$a->strings["Bug reports and issues: please visit"] = "Per segnalare bug e problemi: visita";
+$a->strings["Suggestions, praise, etc. - please email \"redmatrix\" at librelist - dot com"] = "Per consigli, ringraziamenti, ecc. - scrivi a \"redmatrix\" at librelist - dot com";
+$a->strings["Site Administrators"] = "Amministratori del sito";
$a->strings["Away"] = "Assente";
$a->strings["Online"] = "Online";
-$a->strings["Please login."] = "Accedi.";
-$a->strings["Red Matrix - Guests: Username: {your email address}, Password: +++"] = "Accesso a RedMatrix. Inserisci l'email con cui sei registrato e la password.";
+$a->strings["Please login."] = "Effettua l'accesso.";
+$a->strings["Continue"] = "Continua";
+$a->strings["Premium Channel Setup"] = "Canale premium - installazione";
+$a->strings["Enable premium channel connection restrictions"] = "Abilita le restrizioni del canale premium";
+$a->strings["Please enter your restrictions or conditions, such as paypal receipt, usage guidelines, etc."] = "Scrivi le condizioni d'uso e le restrizioni di questo canale, come per esempio le linee guida, il sistema di pagamento, ecc.";
+$a->strings["This channel may require additional steps or acknowledgement of the following conditions prior to connecting:"] = "Prima di connetterti a questo canale è necessario che tu accetti le seguenti condizioni:";
+$a->strings["Potential connections will then see the following text before proceeding:"] = "Il testo seguente comparirà a chi vorrà seguire il canale:";
+$a->strings["By continuing, I certify that I have complied with any instructions provided on this page."] = "Continuando dichiaro di aver seguito tutte le indicazioni e le istruzioni fornite in questa pagina.";
+$a->strings["(No specific instructions have been provided by the channel owner.)"] = "(Il gestore del canale non ha fornito istruzioni specifiche)";
+$a->strings["Restricted or Premium Channel"] = "Canale premium - con restrizioni";
$a->strings["Channel removals are not allowed within 48 hours of changing the account password."] = "Non è possibile eliminare un canale prima di 48 ore dall'ultimo cambio password.";
$a->strings["Remove This Channel"] = "Elimina questo canale";
$a->strings["This will completely remove this channel from the network. Once this has been done it is not recoverable."] = "Questo comando rimuoverà completamente il canale che stai usando. Una volta fatto non sarà più possibile ripristinarlo.";
@@ -1151,21 +1248,17 @@ $a->strings["Authentication failed."] = "Autenticazione fallita.";
$a->strings["Remote Authentication"] = "Autenticazione a distanza";
$a->strings["Enter your channel address (e.g. channel@example.com)"] = "Inserisci l'indirizzo del tuo canale (ad esempio lucia@esempio.com)";
$a->strings["Authenticate"] = "Autenticazione";
-$a->strings["Continue"] = "Continua";
-$a->strings["Premium Channel Setup"] = "Canale premium - installazione";
-$a->strings["Enable premium channel connection restrictions"] = "Abilita le restrizioni del canale premium";
-$a->strings["Please enter your restrictions or conditions, such as paypal receipt, usage guidelines, etc."] = "Scrivi le condizioni d'uso e le restrizioni di questo canale, come per esempio le linee guida o il sistema di pagamento ecc.";
-$a->strings["This channel may require additional steps or acknowledgement of the following conditions prior to connecting:"] = "Prima di connetterti a questo canale è necessario che tu accetti le seguenti condizioni:";
-$a->strings["Potential connections will then see the following text before proceeding:"] = "Il testo seguente comparirà a chi vorrà connettersi:";
-$a->strings["By continuing, I certify that I have complied with any instructions provided on this page."] = "Continuando dichiaro di aver seguito tutte le indicazioni e le istruzioni fornite in questa pagina.";
-$a->strings["(No specific instructions have been provided by the channel owner.)"] = "(Il gestore del canale non ha fornito istruzioni specifiche)";
-$a->strings["Restricted or Premium Channel"] = "Canale premium - con restrizioni";
-$a->strings["No such group"] = "Impossibile trovare l'insieme";
-$a->strings["Search Results For:"] = "Cerca risultati con:";
-$a->strings["Collection is empty"] = "L'insieme di canali è vuoto";
-$a->strings["Collection: "] = "Insieme:";
-$a->strings["Connection: "] = "Connessione:";
-$a->strings["Invalid connection."] = "Connessione non valida.";
+$a->strings["Like/Dislike"] = "Mi piace/Non mi piace";
+$a->strings["This action is restricted to members."] = "Questa funzionalità è riservata agli iscritti.";
+$a->strings["Please <a href=\"rmagic\">login with your RedMatrix ID</a> or <a href=\"register\">register as a new RedMatrix member</a> to continue."] = "Per favore <a href=\"rmagic\">accedi con il tuo identificativo RedMatrix</a> o <a href=\"register\">registrati su RedMatrix</a> per continuare.";
+$a->strings["Invalid request."] = "Richiesta non valida.";
+$a->strings["thing"] = "oggetto";
+$a->strings["Channel unavailable."] = "Canale non trovato.";
+$a->strings["Previous action reversed."] = "Il comando precedente è stato annullato.";
+$a->strings["Action completed."] = "Comando completato.";
+$a->strings["Thank you."] = "Grazie.";
+$a->strings["Remote authentication blocked. You are logged into this site locally. Please logout and retry."] = "L'autenticazione magica dal tuo sito non è disponibile. Hai accesso solamente a questo sito. Puoi provare a disconnetterti per tentare di nuovo.";
+$a->strings["Welcome %s. Remote authentication successful."] = "Ciao %s. L'autenticazione magica è avvenuta con successo.";
$a->strings["Could not access contact record."] = "Non è possibile accedere alle informazioni sul contatto.";
$a->strings["Could not locate selected profile."] = "Non riesco a trovare il profilo selezionato.";
$a->strings["Connection updated."] = "Contatto aggiornato.";
@@ -1186,11 +1279,12 @@ $a->strings["Only show ignored connections"] = "Mostra solo i contatti ignorati"
$a->strings["Only show archived connections"] = "Mostra solo i contatti archiviati";
$a->strings["Only show hidden connections"] = "Mostra solo i contatti nascosti";
$a->strings["%1\$s [%2\$s]"] = "%1\$s [%2\$s]";
-$a->strings["Edit contact"] = "Modifica il contatto";
+$a->strings["Edit connection"] = "Modifica il contatto";
$a->strings["Search your connections"] = "Cerca tra i contatti";
$a->strings["Finding: "] = "Ricerca: ";
+$a->strings["OpenID protocol error. No ID returned."] = "Errore del protocollo OpenID. Nessun ID ricevuto in risposta.";
$a->strings["Edit post"] = "Modifica articolo";
-$a->strings["is now connected to"] = "adesso è in contatto con";
+$a->strings["is now connected to"] = "ha come nuovo contatto";
$a->strings["Could not access address book record."] = "Impossibile accedere alle informazioni della rubrica.";
$a->strings["Refresh failed - channel is currently unavailable."] = "Il canale non è disponibile - impossibile aggiornare.";
$a->strings["Channel has been unblocked"] = "Il canale è stato sbloccato";
@@ -1225,9 +1319,9 @@ $a->strings["Hide or Unhide this connection"] = "Per nascondere o meno questo co
$a->strings["Delete this connection"] = "Elimina questo contatto";
$a->strings["Approve this connection"] = "Approva questo contatto";
$a->strings["Accept connection to allow communication"] = "Entra in contatto per poter comunicare";
-$a->strings["Automatic Permissions Settings"] = "Permessi predefiniti";
$a->strings["Connections: settings for %s"] = "Contatti: impostazioni per %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."] = "Hai ricevuto da un canale una richiesta di entrare in contatto, se prosegui la richiesta sarà approvata e saranno applicati i permessi mostrati. Lascia questa pagina se non vuoi proseguire.";
+$a->strings["Apply these permissions automatically"] = "Applica automaticamente questi permessi";
+$a->strings["Apply the permissions indicated on this page to all new connections."] = "Applica i permessi indicati su questa pagina a tutti i nuovi contatti.";
$a->strings["Slide to adjust your degree of friendship"] = "Trascina per restringere il grado di amicizia da mostrare";
$a->strings["inherited"] = "derivato";
$a->strings["Connection has no individual permissions!"] = "Non hai assegnato permessi individuali a questo contatto!";
@@ -1263,107 +1357,105 @@ $a->strings["Currently archived"] = "Attualmente archiviato";
$a->strings["Currently pending"] = "Attualmente da approvare";
$a->strings["Hide this contact from others"] = "Nascondi questo contatto agli altri";
$a->strings["Replies/likes to your public posts <strong>may</strong> still be visible"] = "Le risposte ai tuoi articoli pubblici <strong>potrebbero</strong> restare comunque visibili";
-$a->strings["No potential page delegates located."] = "Impossibile trovare delegati per questa pagina.";
-$a->strings["Delegate Page Management"] = "Gestione delegati per la pagina";
-$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."] = "I Delegati sono in grando di gestire tutti gli aspetti di questa pagina, tranne per i settaggi di base dell'account. Non delegare il tuo account personale a nessuno di cui non ti fidi ciecamente.";
-$a->strings["Existing Page Managers"] = "Gestori attuali della pagina";
-$a->strings["Existing Page Delegates"] = "Delegati attuali della pagina";
-$a->strings["Potential Delegates"] = "Delegati potenziali";
-$a->strings["Remove"] = "Rimuovi";
-$a->strings["Add"] = "Aggiungi";
-$a->strings["No entries."] = "Nessun risultato.";
-$a->strings["Public access denied."] = "Accesso pubblico negato.";
-$a->strings["Gender: "] = "Sesso:";
-$a->strings["Finding:"] = "Ricerca:";
-$a->strings["No entries (some entries may be hidden)."] = "Nessun risultato (qualcosa potrebbe essere nascosto).";
-$a->strings["Status: "] = "Stato:";
-$a->strings["Sexual Preference: "] = "Preferenza sessuale:";
-$a->strings["Homepage: "] = "Homepage:";
-$a->strings["Hometown: "] = "Città dove vivo:";
-$a->strings["About: "] = "Informazioni:";
-$a->strings["Keywords: "] = "Parole chiave:";
-$a->strings["This site is not a directory server"] = "Questo sito non fornisce l'elenco generale dei canali";
-$a->strings["Red Matrix - &quot;The Network&quot;"] = "RedMatrix - &quot;La Rete&quot;";
-$a->strings["Welcome to %s"] = "%s ti dà il benvenuto";
-$a->strings["Red Matrix Server - Setup"] = "RedMatrix Server - Installazione";
-$a->strings["Could not connect to database."] = " Impossibile connettersi al database.";
-$a->strings["Could not connect to specified site URL. Possible SSL certificate or DNS issue."] = "Non è possibile raggiungere l'indirizzo del sito specificato. Potrebbe essere un problema di SSL o DNS.";
-$a->strings["Could not create table."] = "Impossibile creare le tabelle.";
-$a->strings["Your site database has been installed."] = "Il database del sito è stato installato.";
-$a->strings["You may need to import the file \"install/database.sql\" manually using phpmyadmin or mysql."] = "Potresti dover importare il file 'install/database.sql' manualmente usando phpmyadmin o mysql.";
-$a->strings["Please see the file \"install/INSTALL.txt\"."] = "Leggi il file 'install/INSTALL.txt'.";
-$a->strings["System check"] = "Verifica del sistema";
-$a->strings["Next"] = "Successivo";
-$a->strings["Check again"] = "Verifica di nuovo";
-$a->strings["Database connection"] = "Connessione al database";
-$a->strings["In order to install Red Matrix we need to know how to connect to your database."] = "Per installare RedMatrix è necessario conoscere i parametri di connessione al database.";
-$a->strings["Please contact your hosting provider or site administrator if you have questions about these settings."] = "Contatta il tuo fornitore di hosting o l'amministratore del sito se hai domande su queste impostazioni.";
-$a->strings["The database you specify below should already exist. If it does not, please create it before continuing."] = "Il database deve già esistere. Se non esiste, crealo prima di continuare.";
-$a->strings["Database Server Name"] = "Server del database";
-$a->strings["Default is localhost"] = "'localhost' è il predefinito";
-$a->strings["Database Port"] = "Port del database";
-$a->strings["Communication port number - use 0 for default"] = "Scrivi 0 per usare il valore standard";
-$a->strings["Database Login Name"] = "Utente database";
-$a->strings["Database Login Password"] = "Password utente database";
-$a->strings["Database Name"] = "Nome database";
-$a->strings["Site administrator email address"] = "Indirizzo email dell'amministratore del sito";
-$a->strings["Your account email address must match this in order to use the web admin panel."] = "Il tuo indirizzo email deve corrispondere a questo per poter usare il pannello di amministrazione web.";
-$a->strings["Website URL"] = "URL completo del sito";
-$a->strings["Please use SSL (https) URL if available."] = "Se disponibile, usa l'indirizzo SSL (https).";
-$a->strings["Please select a default timezone for your website"] = "Seleziona il fuso orario predefinito per il tuo sito web";
-$a->strings["Site settings"] = "Impostazioni del sito";
-$a->strings["Could not find a command line version of PHP in the web server PATH."] = "Non è possibile trovare la versione di PHP da riga di comando nel PATH del server 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."] = "Se non hai installata la versione di PHP da riga di comando non potrai attivare il polling in background tramite cron.";
-$a->strings["PHP executable path"] = "Path del comando PHP";
-$a->strings["Enter full path to php executable. You can leave this blank to continue the installation."] = "Inserisci il percorso dell'eseguibile PHP. Puoi lasciarlo vuoto per continuare l'installazione.";
-$a->strings["Command line PHP"] = "PHP da riga di comando";
-$a->strings["The command line version of PHP on your system does not have \"register_argc_argv\" enabled."] = "La versione da riga di comando di PHP nel sistema non ha abilitato \"register_argc_argv\".";
-$a->strings["This is required for message delivery to work."] = "E' necessario perché funzioni la consegna dei messaggi.";
-$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"] = "Errore: la funzione \"openssl_pkey_new\" su questo sistema non è in grado di generare le chiavi di criptazione";
-$a->strings["If running under Windows, please see \"http://www.php.net/manual/en/openssl.installation.php\"."] = "Se stai usando un server windows, guarda \"http://www.php.net/manual/en/openssl.installation.php\".";
-$a->strings["Generate encryption keys"] = "Genera chiavi di criptazione";
-$a->strings["libCurl PHP module"] = "modulo PHP libCurl";
-$a->strings["GD graphics PHP module"] = "modulo PHP GD graphics";
-$a->strings["OpenSSL PHP module"] = "modulo PHP OpenSSL";
-$a->strings["mysqli PHP module"] = "modulo PHP mysqli";
-$a->strings["mb_string PHP module"] = "modulo PHP mb_string";
-$a->strings["mcrypt PHP module"] = "modulo PHP mcrypt";
-$a->strings["Apache mod_rewrite module"] = "modulo Apache mod_rewrite";
-$a->strings["Error: Apache webserver mod-rewrite module is required but not installed."] = "Errore: il modulo mod-rewrite di Apache è richiesto ma non installato";
-$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"] = "Errore: proc_open è richiesto ma non è installato o è disabilitato in php.ini";
-$a->strings["Error: libCURL PHP module required but not installed."] = "Errore: il modulo libCURL di PHP è richiesto ma non installato.";
-$a->strings["Error: GD graphics PHP module with JPEG support required but not installed."] = "Errore: Il modulo GD graphics di PHP con supporto a JPEG è richiesto ma non installato.";
-$a->strings["Error: openssl PHP module required but not installed."] = "Errore: il modulo openssl di PHP è richiesto ma non installato.";
-$a->strings["Error: mysqli PHP module required but not installed."] = "Errore: il modulo mysqli di PHP è richiesto ma non installato.";
-$a->strings["Error: mb_string PHP module required but not installed."] = "Errore: il modulo PHP mb_string è richiesto ma non installato.";
-$a->strings["Error: mcrypt PHP module required but not installed."] = "Errore: il modulo PHP mcrypt è richiesto ma non installato.";
-$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'installazione web deve poter creare un file chiamato \".htconfig.php\" nella cartella principale del tuo web server ma non è in grado di farlo.";
-$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."] = "Spesso ciò è dovuto ai permessi di accesso al disco: il web server potrebbe non aver diritto di scrivere il file nella cartella, anche se tu puoi.";
-$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."] = "Alla fine di questa procedura ti sarà dato il testo da salvare in un file di nome .htconfig.php dentro la cartella principale di RedMatrix.";
-$a->strings["You can alternatively skip this procedure and perform a manual installation. Please see the file \"install/INSTALL.txt\" for instructions."] = "Puoi anche saltare questa procedura ed effettuare un'installazione manuale. Guarda il file 'install/INSTALL.txt' per le istruzioni.";
-$a->strings[".htconfig.php is writable"] = ".htconfig.php è scrivibile";
-$a->strings["Red uses the Smarty3 template engine to render its web views. Smarty3 compiles templates to PHP to speed up rendering."] = "Red usa il sistema Smarty3 per costruire i suoi template grafici. Smarty3 è molto veloce perché compila i template delle pagine direttamente in PHP.";
-$a->strings["In order to store these compiled templates, the web server needs to have write access to the directory %s under the Red top level folder."] = "Per poter memorizzare i template compilati, il web server deve avere accesso in scrittura a %s sotto la cartella di installazione di RedMatrix.";
-$a->strings["Please ensure that the user that your web server runs as (e.g. www-data) has write access to this folder."] = "Assicurati che il tuo web server sia in esecuzione come un utente che ha diritto di scrittura su quella cartella (ad esempio www-data).";
-$a->strings["Note: as a security measure, you should give the web server write access to %s only--not the template files (.tpl) that it contains."] = "Nota bene: come precauzione, dovresti dare i diritti di scrittura solamente su %s e non sui file template (.tpl) che contiene.";
-$a->strings["%s is writable"] = "%s è scrivibile";
-$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"] = "RedMatrix usa un archivio per salvare i file caricati. Il server deve avere i diritti di scrittura sulla cartella dell'archivio che si trova dentro la cartella principale di RedMatrix";
-$a->strings["store is writable"] = "l'archivio è scrivibile";
-$a->strings["SSL certificate cannot be validated. Fix certificate or disable https access to this site."] = "Il certificato SSL non può essere validato. Correggi l'errore o disabilita l'accesso https al sito.";
-$a->strings["If you have https access to your website or allow connections to TCP port 443 (the https: port), you MUST use a browser-valid certificate. You MUST NOT use self-signed certificates!"] = "Se abiliti https per il tuo sito o permetti connessioni TCP su port 443 (quella di https), DEVI usare un certificato riconosciuto dai browser internet. NON DEVI usare certificati generati da te!";
-$a->strings["This restriction is incorporated because public posts from you may for example contain references to images on your own hub."] = "Questa restrizione è necessaria perché i tuoi post pubblici potrebbero contenere riferimenti a immagini sul tuo server.";
-$a->strings["If your certificate is not recognized, members of other sites (who may themselves have valid certificates) will get a warning message on their own site complaining about security issues."] = "Se il tuo certificato non è riconosciuto, gli utenti che ti seguono da altri siti (che avranno certificati validi) riceveranno gravi avvisi di sicurezza dal browser.";
-$a->strings["This can cause usability issues elsewhere (not just on your own site) so we must insist on this requirement."] = "Ciò può creare problemi di usabilità molto gravi (non solo sul tuo sito), quindi dobbiamo insistere su questo punto.";
-$a->strings["Providers are available that issue free certificates which are browser-valid."] = "Eventualmente, considera che esistono provider che rilasciano certificati gratuiti riconosciuti dai browser.";
-$a->strings["SSL certificate validation"] = "Validazione del certificato SSL";
-$a->strings["Url rewrite in .htaccess is not working. Check your server configuration."] = "In .htaccess la funzionalità url rewrite non funziona. Controlla la configurazione del server.";
-$a->strings["Url rewrite is working"] = "Url rewrite funziona correttamente";
-$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."] = "Il file di configurazione del database \".htconfig.php\" non puo' essere scritto. Usa il testo qui di seguito per creare questo file di configurazione nella cartella principale del tuo sito.";
-$a->strings["Errors encountered creating database tables."] = "La creazione delle tabelle del database ha generato errori.";
-$a->strings["<h1>What next</h1>"] = "<h1>I prossimi passi</h1>";
-$a->strings["IMPORTANT: You will need to [manually] setup a scheduled task for the poller."] = "IMPORTANTE: Devi creare [manualmente] la pianificazione del polling.";
+$a->strings["Thing updated"] = "L'oggetto è stato aggiornato";
+$a->strings["Object store: failed"] = "Impossibile memorizzare l'oggetto.";
+$a->strings["Thing added"] = "L'oggetto è stato aggiunto";
+$a->strings["OBJ: %1\$s %2\$s %3\$s"] = "OBJ: %1\$s %2\$s %3\$s";
+$a->strings["Show Thing"] = "Mostra l'oggetto";
+$a->strings["item not found."] = "non trovato.";
+$a->strings["Edit Thing"] = "Modifica l'oggetto";
+$a->strings["Select a profile"] = "Scegli un profilo";
+$a->strings["Post an activity"] = "Pubblica un'attività";
+$a->strings["Only sends to viewers of the applicable profile"] = "Invia solo a chi segue il relativo canale";
+$a->strings["Name of thing e.g. something"] = "Nome dell'oggetto";
+$a->strings["URL of thing (optional)"] = "Indirizzo web dell'oggetto (opzionale)";
+$a->strings["URL for photo of thing (optional)"] = "Indirizzo di un'immagine dell'oggetto (facoltativo)";
+$a->strings["Add Thing to your Profile"] = "Aggiungi l'oggetto al tuo profilo";
+$a->strings["No valid account found."] = "Nessun account valido trovato.";
+$a->strings["Password reset request issued. Check your email."] = "La richiesta per reimpostare la password è stata inviata. Controlla la tua email.";
+$a->strings["Site Member (%s)"] = "Utente del sito (%s)";
+$a->strings["Password reset requested at %s"] = "È stato richiesto di reimpostare password su %s";
+$a->strings["Request could not be verified. (You may have previously submitted it.) Password reset failed."] = "La richiesta non può essere verificata (potresti averla già usata precedentemente). La password non sarà reimpostata.";
+$a->strings["Password Reset"] = "Reimposta la password";
+$a->strings["Your password has been reset as requested."] = "La password è stata reimpostata come richiesto.";
+$a->strings["Your new password is"] = "La tua nuova password è";
+$a->strings["Save or copy your new password - and then"] = "Salva o copia la tua nuova password, quindi";
+$a->strings["click here to login"] = "clicca qui per accedere";
+$a->strings["Your password may be changed from the <em>Settings</em> page after successful login."] = "Puoi cambiare la tua password dalla pagina delle <em>Impostazioni</em> dopo aver effettuato l'accesso.";
+$a->strings["Your password has changed at %s"] = "La tua password su %s è cambiata";
+$a->strings["Forgot your Password?"] = "Hai dimenticato la password?";
+$a->strings["Enter your email address and submit to have your password reset. Then check your email for further instructions."] = "Inserisci il tuo indirizzo email per reimpostare la password. Dopo aver inviato la richiesta, controlla l'email e troverai le istruzioni per continuare.";
+$a->strings["Email Address"] = "Indirizzo email";
+$a->strings["Reset"] = "Reimposta";
+$a->strings["Bookmark added"] = "Segnalibro aggiunto";
+$a->strings["My Bookmarks"] = "I miei segnalibri";
+$a->strings["My Connections Bookmarks"] = "I segnalibri dei miei contatti";
+$a->strings["This site is not a directory server"] = "Questo sito non è un server di elenchi pubblici";
+$a->strings["RedMatrix - Guests: Username: {your email address}, Password: +++"] = "Accesso a Red Matrix. {Inserisci l'email con cui sei registrato e la password.}";
+$a->strings["Profile not found."] = "Profilo non trovato.";
+$a->strings["Profile deleted."] = "Profilo eliminato.";
+$a->strings["Profile-"] = "Profilo-";
+$a->strings["New profile created."] = "Il nuovo profilo è stato creato.";
+$a->strings["Profile unavailable to clone."] = "Impossibile duplicare il profilo.";
+$a->strings["Profile unavailable to export."] = "Il profilo non è disponibile per l'export.";
+$a->strings["Profile Name is required."] = "Il nome del profilo è obbligatorio .";
+$a->strings["Marital Status"] = "Stato sentimentale";
+$a->strings["Romantic Partner"] = "Partner affettivo";
+$a->strings["Likes"] = "Mi piace";
+$a->strings["Dislikes"] = "Non mi piace";
+$a->strings["Work/Employment"] = "Lavoro/impiego";
+$a->strings["Religion"] = "Religione";
+$a->strings["Political Views"] = "Orientamento politico";
+$a->strings["Gender"] = "Sesso";
+$a->strings["Sexual Preference"] = "Preferenze sessuali";
+$a->strings["Homepage"] = "Home page";
+$a->strings["Interests"] = "Interessi";
+$a->strings["Address"] = "Indirizzo";
+$a->strings["Profile updated."] = "Profilo aggiornato.";
+$a->strings["Hide your contact/friend list from viewers of this profile?"] = "Nascondi la tua lista di contatti/amici ai visitatori di questo profilo?";
+$a->strings["Edit Profile Details"] = "Modifica i dettagli del profilo";
+$a->strings["View this profile"] = "Guarda questo profilo";
+$a->strings["Change Profile Photo"] = "Cambia la foto del profilo";
+$a->strings["Create a new profile using these settings"] = "Crea un nuovo profilo usando queste impostazioni";
+$a->strings["Clone this profile"] = "Clona questo profilo";
+$a->strings["Delete this profile"] = "Elimina questo profilo";
+$a->strings["Import profile from file"] = "Importa il profilo da un file";
+$a->strings["Export profile to file"] = "Esporta il profilo in un file";
+$a->strings["Profile Name:"] = "Nome del profilo:";
+$a->strings["Your Full Name:"] = "Il tuo nome completo:";
+$a->strings["Title/Description:"] = "Titolo/descrizione:";
+$a->strings["Your Gender:"] = "Sesso:";
+$a->strings["Birthday :"] = "Compleanno:";
+$a->strings["Street Address:"] = "Indirizzo (via/piazza):";
+$a->strings["Locality/City:"] = "Località:";
+$a->strings["Postal/Zip Code:"] = "CAP:";
+$a->strings["Country:"] = "Nazione:";
+$a->strings["Region/State:"] = "Regione/stato:";
+$a->strings["<span class=\"heart\">&hearts;</span> Marital Status:"] = "<span class=\"heart\">&hearts;</span> Stato sentimentale:";
+$a->strings["Who: (if applicable)"] = "Con chi: (se possibile)";
+$a->strings["Examples: cathy123, Cathy Williams, cathy@example.com"] = "Per esempio: cathy123, Cathy Williams, cathy@example.com";
+$a->strings["Since [date]:"] = "dal [data]:";
+$a->strings["Homepage URL:"] = "Indirizzo home page:";
+$a->strings["Religious Views:"] = "Orientamento religioso:";
+$a->strings["Keywords:"] = "Parole chiave, tag:";
+$a->strings["Example: fishing photography software"] = "Per esempio: pesca fotografia programmazione";
+$a->strings["Used in directory listings"] = "Visibile nell'elenco pubblico di canali";
+$a->strings["Tell us about yourself..."] = "Raccontaci di te...";
+$a->strings["Hobbies/Interests"] = "Hobby/interessi";
+$a->strings["Contact information and Social Networks"] = "Contatti personali e i tuoi social network";
+$a->strings["My other channels"] = "I miei altri canali";
+$a->strings["Musical interests"] = "Interessi musicali";
+$a->strings["Books, literature"] = "Libri, letteratura";
+$a->strings["Television"] = "Televisione";
+$a->strings["Film/dance/culture/entertainment"] = "Film/danza/cultura/intrattenimento";
+$a->strings["Love/romance"] = "Amore";
+$a->strings["Work/employment"] = "Lavoro/impiego";
+$a->strings["School/education"] = "Scuola/educazione";
+$a->strings["This is your default profile."] = "Questo è il tuo profilo predefinito.";
+$a->strings["Age: "] = "Età:";
+$a->strings["Edit/Manage Profiles"] = "Modifica/gestisci i profili";
+$a->strings["Add profile things"] = "Aggiungi oggetti al profilo";
+$a->strings["Include desirable objects in your profile"] = "Aggiungi oggetti interessanti al tuo profilo";
$a->strings["Item not found"] = "Elemento non trovato";
$a->strings["Edit Block"] = "Modifica il riquadro";
$a->strings["Delete block?"] = "Vuoi eliminare questo riquadro?";
@@ -1381,84 +1473,42 @@ $a->strings["Delete layout?"] = "Vuoi eliminare questo layout?";
$a->strings["Delete Layout"] = "Elimina il layout";
$a->strings["Item is not editable"] = "L'elemento non è modificabile";
$a->strings["Delete item?"] = "Eliminare questo elemento?";
+$a->strings["Help:"] = "Guida:";
+$a->strings["Not Found"] = "Non disponibile";
$a->strings["Edit Webpage"] = "Modifica la pagina web";
$a->strings["Delete webpage?"] = "Vuoi eliminare questa pagina web?";
$a->strings["Delete Webpage"] = "Elimina la pagina web";
-$a->strings["Version %s"] = "Versione %s";
-$a->strings["Installed plugins/addons/apps:"] = "App e componenti installati:";
-$a->strings["No installed plugins/addons/apps"] = "Nessuna app o componente installato";
-$a->strings["Red"] = "RedMatrix";
-$a->strings["This is a hub of the Red Matrix - a global cooperative network of decentralized privacy enhanced websites."] = "Questo è un hub di RedMatrix - una rete cooperativa e decentralizzata di siti ad elevata privacy. ";
-$a->strings["Running at web location"] = "In esecuzione sull'indirizzo web";
-$a->strings["Please visit <a href=\"http://getzot.com\">GetZot.com</a> to learn more about the Red Matrix."] = "Visita <a href=\"http://getzot.com\">GetZot.com</a> per scoprire il progetto RedMatrix.";
-$a->strings["Bug reports and issues: please visit"] = "Per segnalare bug e problemi: visita";
-$a->strings["Suggestions, praise, etc. - please email \"redmatrix\" at librelist - dot com"] = "Per consigli, ringraziamenti, ecc. - scrivi a \"redmatrix\" at librelist - dot com";
-$a->strings["Site Administrators"] = "Amministratori del sito";
-$a->strings["Page owner information could not be retrieved."] = "Impossibile ottenere informazioni sul proprietario della pagina.";
-$a->strings["Album not found."] = "Album non trovato.";
-$a->strings["Delete Album"] = "Elimina album";
-$a->strings["Delete Photo"] = "Elimina foto";
-$a->strings["No photos selected"] = "Nessuna foto selezionata";
-$a->strings["Access to this item is restricted."] = "Questo elemento non è visibile a tutti.";
-$a->strings["You have used %1$.2f Mbytes of %2$.2f Mbytes photo storage."] = "Hai usato %1$.2f Mb di %2$.2f Mb disponibili per le foto.";
-$a->strings["You have used %1$.2f Mbytes of photo storage."] = "Hai usato %1$.2f Mb di spazio per le foto.";
-$a->strings["Upload Photos"] = "Carica foto";
-$a->strings["New album name: "] = "Nome del nuovo album: ";
-$a->strings["or existing album name: "] = "o nome di un album esistente: ";
-$a->strings["Do not show a status post for this upload"] = "Non creare un messaggio di stato per questo caricamento";
-$a->strings["Album name could not be decoded"] = "Non è stato possibile leggere il nome dell'album";
-$a->strings["Contact Photos"] = "Foto dei contatti";
-$a->strings["Edit Album"] = "Modifica album";
-$a->strings["Show Newest First"] = "Prima i più recenti";
-$a->strings["Show Oldest First"] = "Prima i più vecchi";
-$a->strings["View Photo"] = "Guarda la foto";
-$a->strings["Permission denied. Access to this item may be restricted."] = "Permesso negato. L'accesso a questo elemento può essere stato limitato.";
-$a->strings["Photo not available"] = "Foto non disponibile";
-$a->strings["Use as profile photo"] = "Usa come foto del profilo";
-$a->strings["View Full Size"] = "Vedi nelle dimensioni originali";
-$a->strings["Edit photo"] = "Modifica la foto";
-$a->strings["Rotate CW (right)"] = "Ruota (senso orario)";
-$a->strings["Rotate CCW (left)"] = "Ruota (senso antiorario)";
-$a->strings["New album name"] = "Nuovo nome dell'album";
-$a->strings["Caption"] = "Titolo";
-$a->strings["Add a Tag"] = "Aggiungi tag";
-$a->strings["Example: @bob, @Barbara_Jensen, @jim@example.com, #California, #camping"] = "Per esempio: @luca, @Maria_Bianchi, @bob@example.com, #California, #camping";
-$a->strings["In This Photo:"] = "In questa foto:";
-$a->strings["View Album"] = "Guarda l'album";
-$a->strings["Recent Photos"] = "Foto recenti";
-$a->strings["Failed to create source. No channel selected."] = "Impossibile creare la sorgente. Nessun canale selezionato.";
-$a->strings["Source created."] = "Sorgente creata.";
-$a->strings["Source updated."] = "Sorgente aggiornata.";
-$a->strings["*"] = "*";
-$a->strings["Manage remote sources of content for your channel."] = "Gestisci le sorgenti dei contenuti del tuo canale.";
-$a->strings["New Source"] = "Nuova sorgente";
-$a->strings["Import all or selected content from the following channel into this channel and distribute it according to your channel settings."] = "Importa nel tuo canale tutti o una parte dei contenuti dal canale seguente.";
-$a->strings["Only import content with these words (one per line)"] = "Importa solo i contenuti che hanno queste parole (una per riga)";
-$a->strings["Leave blank to import all public content"] = "Lascia vuoto per importare tutti i contenuti pubblici";
-$a->strings["Channel Name"] = "Nome del canale";
-$a->strings["Source not found."] = "Sorgente non trovata.";
-$a->strings["Edit Source"] = "Modifica la sorgente";
-$a->strings["Delete Source"] = "Elimina la sorgente";
-$a->strings["Source removed"] = "Sorgente eliminata";
-$a->strings["Unable to remove source."] = "Impossibile rimuovere la sorgente.";
-$a->strings["- select -"] = "- scegli -";
-$a->strings["Event title and start time are required."] = "Sono necessari il titolo e l'ora d'inizio dell'evento.";
-$a->strings["Event not found."] = "Evento non trovato.";
-$a->strings["l, F j"] = "l j F";
-$a->strings["Edit event"] = "Modifica l'evento";
-$a->strings["Create New Event"] = "Crea un nuovo evento";
-$a->strings["Previous"] = "Precendente";
-$a->strings["hour:minute"] = "ora:minuti";
-$a->strings["Event details"] = "Dettagli evento";
-$a->strings["Format is %s %s. Starting date and Title are required."] = "Il formato è %s %s. L'inizio e il titolo sono obbligatori.";
-$a->strings["Event Starts:"] = "Inizio:";
-$a->strings["Required"] = "Obbligatorio";
-$a->strings["Finish date/time is not known or not relevant"] = "La data/ora di fine non è rilevante";
-$a->strings["Event Finishes:"] = "Fine:";
-$a->strings["Adjust for viewer timezone"] = "Adatta al fuso orario di chi legge";
-$a->strings["Description:"] = "Descrizione:";
-$a->strings["Title:"] = "Titolo:";
-$a->strings["Share this event"] = "Condividi questo evento";
+$a->strings["webpage"] = "pagina web";
+$a->strings["block"] = "riquadro";
+$a->strings["layout"] = "layout";
+$a->strings["%s element installed"] = "%s elemento installato";
+$a->strings["Image uploaded but image cropping failed."] = "L'immagine è stata caricata, ma il non è stato possibile ritagliarla.";
+$a->strings["Image resize failed."] = "Il ridimensionamento dell'immagine è fallito.";
+$a->strings["Shift-reload the page or clear browser cache if the new photo does not display immediately."] = "Ricarica la pagina con shift+F5 o cancella la cache del browser se la nuova foto non viene mostrata immediatamente.";
+$a->strings["Image exceeds size limit of %d"] = "La dimensione dell'immagine supera il limite di %d";
+$a->strings["Unable to process image."] = "Impossibile elaborare l'immagine.";
+$a->strings["Photo not available."] = "Foto non disponibile.";
+$a->strings["Upload File:"] = "Carica un file:";
+$a->strings["Select a profile:"] = "Seleziona un profilo:";
+$a->strings["Upload Profile Photo"] = "Carica la foto del profilo";
+$a->strings["skip this step"] = "salta questo passaggio";
+$a->strings["select a photo from your photo albums"] = "seleziona una foto dai tuoi album";
+$a->strings["Crop Image"] = "Ritaglia immagine";
+$a->strings["Please adjust the image cropping for optimum viewing."] = "Ritaglia l'immagine per migliorarne la visualizzazione.";
+$a->strings["Done Editing"] = "Modifica terminata";
+$a->strings["Image uploaded successfully."] = "Immagine caricata con successo.";
+$a->strings["Image upload failed."] = "Il caricamento dell'immagine è fallito.";
+$a->strings["Image size reduction [%s] failed."] = "Il ridimensionamento del'immagine [%s] è fallito.";
+$a->strings["Unable to locate original post."] = "Impossibile trovare il messaggio originale.";
+$a->strings["Empty post discarded."] = "L'articolo vuoto è stato ignorato.";
+$a->strings["Executable content type not permitted to this channel."] = "I contenuti eseguibili non sono permessi su questo canale.";
+$a->strings["System error. Post not saved."] = "Errore di sistema. Articolo non salvato.";
+$a->strings["You have reached your limit of %1$.0f top level posts."] = "Hai raggiunto il limite massimo di %1$.0f articoli sulla pagina principale.";
+$a->strings["You have reached your limit of %1$.0f webpages."] = "Hai raggiunto il limite massimo di %1$.0f pagine web.";
+$a->strings["Contact not found."] = "Contatto non trovato.";
+$a->strings["Friend suggestion sent."] = "Suggerimento di amicizia inviato.";
+$a->strings["Suggest Friends"] = "Suggerisci amici";
+$a->strings["Suggest a friend for %s"] = "Suggerisci un amico a %s";
$a->strings["Permission Denied."] = "Permesso negato.";
$a->strings["File not found."] = "File non trovato.";
$a->strings["Edit file permissions"] = "Modifica i permessi del file";
@@ -1467,28 +1517,52 @@ $a->strings["Include all files and sub folders"] = "Includi tutti i file e le so
$a->strings["Return to file list"] = "Torna all'elenco dei file";
$a->strings["Copy/paste this code to attach file to a post"] = "Copia/incolla questo codice per far comparire il file in un articolo";
$a->strings["Copy/paste this URL to link file from a web page"] = "Copia/incolla questo indirizzo in una pagina web per avere un link al file";
+$a->strings["network"] = "rete";
+$a->strings["No potential page delegates located."] = "Impossibile trovare delegati per questa pagina.";
+$a->strings["Delegate Page Management"] = "Gestione delegati per la pagina";
+$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."] = "I Delegati sono in grando di gestire tutti gli aspetti di questa pagina, tranne per i settaggi di base dell'account. Non delegare il tuo account personale a nessuno di cui non ti fidi ciecamente.";
+$a->strings["Existing Page Managers"] = "Gestori attuali della pagina";
+$a->strings["Existing Page Delegates"] = "Delegati attuali della pagina";
+$a->strings["Potential Delegates"] = "Delegati potenziali";
+$a->strings["Remove"] = "Rimuovi";
+$a->strings["Add"] = "Aggiungi";
+$a->strings["No entries."] = "Nessun risultato.";
$a->strings["Channel added."] = "Canale aggiunto.";
-$a->strings["%1\$s is following %2\$s's %3\$s"] = "%1\$s sta seguendo %3\$s di %2\$s";
-$a->strings["Contact not found."] = "Contatto non trovato.";
-$a->strings["Friend suggestion sent."] = "Suggerimento di amicizia inviato.";
-$a->strings["Suggest Friends"] = "Suggerisci amici";
-$a->strings["Suggest a friend for %s"] = "Suggerisci un amico a %s";
-$a->strings["No suggestions available. If this is a new site, please try again in 24 hours."] = "Nessun suggerimento disponibile. Se questo è un sito nuovo, riprova tra 24 ore.";
$a->strings["Collection created."] = "L'insieme di canali è stato creato.";
$a->strings["Could not create collection."] = "Impossibile creare l'insieme.";
$a->strings["Collection updated."] = "Insieme aggiornato.";
$a->strings["Create a collection of channels."] = "Crea un insieme di canali.";
$a->strings["Collection Name: "] = "Nome dell'insieme:";
-$a->strings["Members are visible to other channels"] = "I membri saranno visibili agli altri canali";
+$a->strings["Members are visible to other channels"] = "I membri potranno vedere gli altri canali dell'insieme";
$a->strings["Collection removed."] = "Insieme rimosso.";
$a->strings["Unable to remove collection."] = "Impossibile rimuovere l'insieme.";
$a->strings["Collection Editor"] = "Modifica l'insieme";
$a->strings["Members"] = "Membri";
$a->strings["All Connected Channels"] = "Tutti i canali connessi";
$a->strings["Click on a channel to add or remove."] = "Clicca su un canale per aggiungerlo o rimuoverlo.";
+$a->strings["Red Matrix - &quot;The Network&quot;"] = "RedMatrix - &quot;La tua rete&quot;";
+$a->strings["Welcome to %s"] = "%s ti dà il benvenuto";
+$a->strings["No suggestions available. If this is a new site, please try again in 24 hours."] = "Nessun suggerimento disponibile. Se questo sito è nuovo, riprova tra 24 ore.";
+$a->strings["Your service plan only allows %d channels."] = "Il tuo account permette di creare al massimo %d canali.";
+$a->strings["Nothing to import."] = "Non c'è niente da importare.";
+$a->strings["Unable to download data from old server"] = "Impossibile importare i dati dal vecchio server";
+$a->strings["Imported file is empty."] = "Il file da importare è vuoto.";
+$a->strings["Cannot create a duplicate channel identifier on this system. Import failed."] = "Non posso creare un canale con un identificativo che già esiste su questo sistema. L'importazione è fallita.";
+$a->strings["Channel clone failed. Import failed."] = "Impossibile clonare il canale. L'importazione è fallita.";
+$a->strings["Cloned channel not found. Import failed."] = "Impossibile trovare il canale clonato. L'importazione è fallita.";
+$a->strings["Import completed."] = "L'importazione è terminata con successo!";
+$a->strings["You must be logged in to use this feature."] = "Per questa funzionalità devi aver effettuato l'accesso.";
+$a->strings["Import Channel"] = "Importa un canale";
+$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."] = "Usa questo modulo per importare un tuo canale da un altro server/hub. Puoi scaricare i dati identificativi del canale direttamente dall'altro server/hub oppure tramite un file che hai esportato. Saranno importati solamente l'identità e i contatti. L'importazione dei contenuti non è ancora disponibile.";
+$a->strings["File to Upload"] = "File da caricare";
+$a->strings["Or provide the old server/hub details"] = "Oppure fornisci i dettagli del vecchio server/hub";
+$a->strings["Your old identity address (xyz@example.com)"] = "Il tuo vecchio identificativo (per esempio pippo@esempio.com)";
+$a->strings["Your old login email address"] = "L'email che usavi per accedere sul vecchio server";
+$a->strings["Your old login password"] = "La password per il vecchio server";
+$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."] = "Scegli se vuoi spostare il tuo indirizzo primario su questo server, oppure se preferisci che quello vecchio resti tale. Potrai pubblicare da entrambi i server, ma solamente uno sarà indicato come posizione in cui risiedono i tuoi file, foto, ecc.";
+$a->strings["Make this hub my primary location"] = "Rendi questo server il mio indirizzo primario";
+$a->strings["Import existing posts if possible"] = "Importazione dei post esistenti, se possibile";
$a->strings["%1\$s tagged %2\$s's %3\$s with %4\$s"] = "%1\$s ha taggato %3\$s di %2\$s con %4\$s";
-$a->strings["Help:"] = "Guida:";
-$a->strings["Not Found"] = "Non disponibile";
$a->strings["Tag removed"] = "Tag rimosso";
$a->strings["Remove Item Tag"] = "Rimuovi il tag";
$a->strings["Select a tag to remove: "] = "Seleziona un tag da rimuovere: ";
@@ -1511,8 +1585,9 @@ $a->strings["Registered users"] = "Utenti registrati";
$a->strings["Pending registrations"] = "Registrazioni da approvare";
$a->strings["Version"] = "Versione";
$a->strings["Active plugins"] = "Plugin attivi";
-$a->strings["Site settings updated."] = "Impostazioni del sito aggiornate.";
-$a->strings["No special theme for accessibility"] = "Nessun tema speciale per l'accessibilità";
+$a->strings["Site settings updated."] = "Impostazioni del sito salvate correttamente.";
+$a->strings["experimental"] = "sperimentale";
+$a->strings["unsupported"] = "non supportato";
$a->strings["Yes - with approval"] = "Sì - con approvazione";
$a->strings["My site is not a public server"] = "Non è un server pubblico";
$a->strings["My site has paid access only"] = "È un servizio a pagamento";
@@ -1522,17 +1597,13 @@ $a->strings["File upload"] = "Caricamento file";
$a->strings["Policies"] = "Politiche";
$a->strings["Site name"] = "Nome del sito";
$a->strings["Banner/Logo"] = "Banner o logo";
-$a->strings["Administrator Information"] = "Informazioni sull'amministrazione";
+$a->strings["Administrator Information"] = "Informazioni sull'amministratore";
$a->strings["Contact information for site administrators. Displayed on siteinfo page. BBCode can be used here"] = "Informazioni per contattare gli amministratori del sito. Saranno mostrate sulla pagina di informazioni. È consentito il BBcode";
$a->strings["System language"] = "Lingua di sistema";
$a->strings["System theme"] = "Tema di sistema";
$a->strings["Default system theme - may be over-ridden by user profiles - <a href='#' id='cnftheme'>change theme settings</a>"] = "Il tema di sistema può essere cambiato dai profili dei singoli utenti - <a href='#' id='cnftheme'>Cambia le impostazioni del tema</a>";
$a->strings["Mobile system theme"] = "Tema di sistema per dispositivi mobili";
$a->strings["Theme for mobile devices"] = "Tema per i dispositivi mobili";
-$a->strings["Accessibility system theme"] = "Tema di sistema ad alta accessibilità";
-$a->strings["Accessibility theme"] = "Tema ad alta accessibilità";
-$a->strings["Channel to use for this website's static pages"] = "Canale da usare per le pagine statiche di questo sito";
-$a->strings["Site Channel"] = "Canale del sito";
$a->strings["Enable Diaspora Protocol"] = "Abilita la comunicazione con Diaspora";
$a->strings["Communicate with Diaspora and Friendica - experimental"] = "Sperimentale - per comunicare con Diaspora e Friendica";
$a->strings["Allow Feeds as Connections"] = "Permetti di aggiungere i feed come contatti";
@@ -1541,30 +1612,32 @@ $a->strings["Maximum image size"] = "Dimensione massima immagini";
$a->strings["Maximum size in bytes of uploaded images. Default is 0, which means no limits."] = "Massima dimensione in byte delle immagini caricate. Il default è 0, cioè nessun limite.";
$a->strings["Does this site allow new member registration?"] = "Questo sito permette a nuovi utenti di registrarsi?";
$a->strings["Which best describes the types of account offered by this hub?"] = "Come descriveresti il tipo di servizio proposto da questo server?";
-$a->strings["Register text"] = "Testo diregistrazione";
+$a->strings["Register text"] = "Testo di registrazione";
$a->strings["Will be displayed prominently on the registration page."] = "Sarà mostrato ben visibile nella pagina di registrazione.";
$a->strings["Accounts abandoned after x days"] = "Account abbandonati dopo X giorni";
$a->strings["Will not waste system resources polling external sites for abandonded accounts. Enter 0 for no time limit."] = "Eviterà di sprecare risorse di sistema controllando se i siti esterni hanno account abbandonati. Immettere 0 per non imporre nessun limite di tempo.";
$a->strings["Allowed friend domains"] = "Domini fidati e consentiti";
$a->strings["Comma separated list of domains which are allowed to establish friendships with this site. Wildcards are accepted. Empty to allow any domains"] = "Elenco separato da virglola dei domini che possono stabilire amicizie con questo sito. Sono accettati caratteri jolly. Lascia vuoto per accettare connessioni da qualsiasi dominio.";
$a->strings["Allowed email domains"] = "Domini email consentiti";
-$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"] = "Elenco separato da virgola dei domini permessi come indirizzi email in fase di registrazione. Sono accettati caratteri jolly. Lascia vuoto per accettare qualsiasi dominio.";
+$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"] = "Elenco separato da virgola dei domini permessi come indirizzi email in fase di registrazione. Sono accettati caratteri jolly. Lascia vuoto per accettare qualsiasi dominio email";
$a->strings["Block public"] = "Blocca pagine pubbliche";
$a->strings["Check to block public access to all otherwise public personal pages on this site unless you are currently logged in."] = "Seleziona per impedire di vedere le pagine personali di questo sito a chi non ha effettuato l'accesso.";
+$a->strings["Verify Email Addresses"] = "Verifica l'indirizzo email";
+$a->strings["Check to verify email addresses used in account registration (recommended)."] = "Attiva per richiedere la verifica degli indirizzi email dei nuovi utenti (consigliato).";
$a->strings["Force publish"] = "Forza la publicazione del profilo";
-$a->strings["Check to force all profiles on this site to be listed in the site directory."] = "Seleziona per mostrare nell'elenco dei canali del sito <strong>tutti</strong> i profili registrati.";
+$a->strings["Check to force all profiles on this site to be listed in the site directory."] = "Seleziona per mostrare nell'elenco pubblico <strong>tutti</strong> i profili registrati su questo sito.";
$a->strings["Disable discovery tab"] = "Disabilita la funzione 'scopri'";
$a->strings["Remove the tab in the network view with public content pulled from sources chosen for this site."] = "Nell'area della rete personale non comparirà più la scheda con i contenuti acquisiti da altri siti.";
$a->strings["No login on Homepage"] = "Non mostrare il login sulla 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)."] = "Per nascondere la possibilità di fare login ai visitatori (per esempio, quando il contenuto della homepage del sito è alimentato dal canale).";
+$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)."] = "Per nascondere la possibilità di fare login ai visitatori (per esempio, quando il contenuto della homepage del sito è alimentato da un canale).";
$a->strings["Proxy user"] = "Utente proxy";
$a->strings["Proxy URL"] = "URL proxy";
$a->strings["Network timeout"] = "Timeout rete";
$a->strings["Value is in seconds. Set to 0 for unlimited (not recommended)."] = "Valore in secondi. Imposta a 0 per illimitato (sconsigliato).";
$a->strings["Delivery interval"] = "Recapito ritardato";
-$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."] = "RItarda il processo di recapito di questo numero di secondi per ridurre il carico di sistema. Consigliati: 4-5 secondi per hosting condiviso, 2-3 per i VPS, 0-1 per grandi server dedicati.";
+$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."] = "Numero di secondi di cui può essere ritardato il recapito, per ridurre il carico di sistema. Consigliati: 4-5 secondi per hosting condiviso, 2-3 per i VPS, 0-1 per grandi server dedicati.";
$a->strings["Poll interval"] = "Intervallo di polling";
-$a->strings["Delay background polling processes by this many seconds to reduce system load. If 0, use delivery interval."] = "Ritarda i processi di polling in background di questo numero di secondi per ridurre il carico del sistema. Se 0, verrà usato lo stesso valore del 'Recapito ritardato'.";
+$a->strings["Delay background polling processes by this many seconds to reduce system load. If 0, use delivery interval."] = "Numero di secondi di cui può essere ritardato il polling in background, per ridurre il carico del sistema. Se 0, verrà usato lo stesso valore del 'Recapito ritardato'.";
$a->strings["Maximum Load Average"] = "Carico massimo medio";
$a->strings["Maximum system load before delivery and poll processes are deferred - default 50."] = "Carico di sistema massimo perché i processi di recapito e polling siano ritardati - il valore predefinito è 50.";
$a->strings["No server found"] = "Server non trovato";
@@ -1602,7 +1675,7 @@ $a->strings["Deny"] = "Nega";
$a->strings["Register date"] = "Data registrazione";
$a->strings["Last login"] = "Ultimo accesso";
$a->strings["Expires"] = "Con scadenza";
-$a->strings["Service Class"] = "Service Class";
+$a->strings["Service Class"] = "Classe dell'account";
$a->strings["Selected users will be deleted!\\n\\nEverything these users had posted on this site will be permanently deleted!\\n\\nAre you sure?"] = "Gli utenti selezionati saranno eliminati!\\n\\nTutto quello che gli utenti hanno pubblicato su questo sito sarà permanentemente eliminato!\\n\\nConfermi?";
$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'utente {0} sarà eliminato!\\n\\nTutto quello che ha pubblicato su questo sito sarà permanentemente eliminato!\\n\\nConfermi?";
$a->strings["%s channel censored/uncensored"] = array(
@@ -1637,7 +1710,7 @@ $a->strings["Log settings updated."] = "Impostazioni di log aggiornate.";
$a->strings["Clear"] = "Pulisci";
$a->strings["Debugging"] = "Debugging";
$a->strings["Log file"] = "File di log";
-$a->strings["Must be writable by web server. Relative to your Red top-level directory."] = "Deve essere scrivibile dal web server. È relativa alla cartella dove è installato RedMatrix.";
+$a->strings["Must be writable by web server. Relative to your Red top-level directory."] = "Deve essere scrivibile dal web server. La posizione è relativa alla cartella dove è installato RedMatrix.";
$a->strings["Log level"] = "Livello di log";
$a->strings["New Profile Field"] = "Nuovo campo del profilo";
$a->strings["Field nickname"] = "Nome breve del campo";
@@ -1649,37 +1722,32 @@ $a->strings["Help text"] = "Testo di aiuto";
$a->strings["Additional info (optional)"] = "Informazioni aggiuntive (opzionali)";
$a->strings["Field definition not found"] = "Impossibile trovare la definizione del campo";
$a->strings["Edit Profile Field"] = "Modifica campo del profilo";
-$a->strings["Thing updated"] = "L'oggetto è stato aggiornato";
-$a->strings["Object store: failed"] = "Impossibile memorizzare l'oggetto.";
-$a->strings["Thing added"] = "L'oggetto è stato aggiunto";
-$a->strings["OBJ: %1\$s %2\$s %3\$s"] = "OBJ: %1\$s %2\$s %3\$s";
-$a->strings["Show Thing"] = "Mostra l'oggetto";
-$a->strings["item not found."] = "non trovato.";
-$a->strings["Edit Thing"] = "Modifica l'oggetto";
-$a->strings["Select a profile"] = "Scegli un profilo";
-$a->strings["Post an activity"] = "Pubblica un'attività";
-$a->strings["Only sends to viewers of the applicable profile"] = "Invia solo a chi segue il relativo canale";
-$a->strings["Name of thing e.g. something"] = "Nome dell'oggetto";
-$a->strings["URL of thing (optional)"] = "Indirizzo web dell'oggetto";
-$a->strings["URL for photo of thing (optional)"] = "Indirizzo di un'immagine dell'oggetto (facoltativo)";
-$a->strings["Add Thing to your Profile"] = "Aggiungi l'oggetto al tuo profilo";
-$a->strings["Nothing to import."] = "Non c'è niente da importare.";
-$a->strings["Unable to download data from old server"] = "Impossibile importare i dati dal vecchio server";
-$a->strings["Imported file is empty."] = "Il file da importare è vuoto.";
-$a->strings["Cannot create a duplicate channel identifier on this system. Import failed."] = "Non posso creare un canale con un identificativo che già esiste su questo sistema. L'importazione è fallita.";
-$a->strings["Channel clone failed. Import failed."] = "Impossibile clonare il canale. L'importazione è fallita.";
-$a->strings["Cloned channel not found. Import failed."] = "Impossibile trovare il canale clonato. L'importazione è fallita.";
-$a->strings["Import completed."] = "L'importazione è terminata con successo!";
-$a->strings["You must be logged in to use this feature."] = "Per questa funzionalità devi aver effettuato l'accesso.";
-$a->strings["Import Channel"] = "Importa un canale";
-$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."] = "Usa questo modulo per importare un tuo canale da un altro server/hub. Puoi scaricare i dati identificativi del canale direttamente dall'altro server/hub oppure tramite un file che hai esportato. Saranno importati solamente l'identità e i contatti. L'importazione dei contenuti non è ancora disponibile.";
-$a->strings["File to Upload"] = "File da caricare";
-$a->strings["Or provide the old server/hub details"] = "Oppure fornisci i dettagli del vecchio server/hub";
-$a->strings["Your old identity address (xyz@example.com)"] = "Il tuo vecchio identificativo (per esempio pippo@esempio.com)";
-$a->strings["Your old login email address"] = "L'email che usavi per accedere sul vecchio server";
-$a->strings["Your old login password"] = "La password per il vecchio server";
-$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."] = "Per ciascuna opzione, scegli se vuoi rendere questo server il tuo indirizzo primario, oppure se preferisci che lo rimanga il vecchio. Potrai pubblicare da entrambi i server, ma solamente uno sarà marcato come primario per i tuoi file, foto, ecc.";
-$a->strings["Make this hub my primary location"] = "Rendi questo server il mio indirizzo primario";
+$a->strings["Location not found."] = "Indirizzo non trovato.";
+$a->strings["Primary location cannot be removed."] = "L'indirizzo principale non può essere rimosso.";
+$a->strings["No locations found."] = "Nessun indirizzo trovato.";
+$a->strings["Manage Channel Locations"] = "Modifica gli indirizzi del canale";
+$a->strings["Location (address)"] = "Indirizzo";
+$a->strings["Primary Location"] = "Indirizzo primario";
+$a->strings["Drop location"] = "Elimina un indirizzo";
+$a->strings["Unable to lookup recipient."] = "Impossibile associare un destinatario.";
+$a->strings["Unable to communicate with requested channel."] = "Impossibile comunicare con il canale richiesto.";
+$a->strings["Cannot verify requested channel."] = "Impossibile verificare il canale richiesto.";
+$a->strings["Selected channel has private message restrictions. Send failed."] = "Il canale ha delle regole restrittive per la ricezione dei messaggi privati. Invio fallito.";
+$a->strings["Message deleted."] = "Messaggio eliminato.";
+$a->strings["Message recalled."] = "Messaggio revocato.";
+$a->strings["Send Private Message"] = "Invia un messaggio privato";
+$a->strings["To:"] = "A:";
+$a->strings["Subject:"] = "Oggetto:";
+$a->strings["Your message:"] = "Il tuo messaggio:";
+$a->strings["Send"] = "Invia";
+$a->strings["Message not found."] = "Messaggio non trovato.";
+$a->strings["Delete message"] = "Elimina il messaggio";
+$a->strings["Recall message"] = "Revoca il messaggio";
+$a->strings["Message has been recalled."] = "Il messaggio è stato revocato.";
+$a->strings["Private Conversation"] = "Conversazione privata";
+$a->strings["Delete conversation"] = "Elimina la conversazione";
+$a->strings["No secure communications available. You <strong>may</strong> be able to respond from the sender's profile page."] = "Non è disponibile alcuna tecnologia per comunicare in modo sicuro. <strong>Se possibile</strong>, prova a rispondere direttamente dalla pagina del profilo del mittente.";
+$a->strings["Send Reply"] = "Invia la risposta";
$a->strings["Total invitation limit exceeded."] = "Hai superato il numero massimo di inviti.";
$a->strings["%s : Not a valid email address."] = "%s: non è un indirizzo email valido.";
$a->strings["Please join us on Red"] = "Vieni con noi su RedMatrix";
@@ -1692,83 +1760,38 @@ $a->strings["%d message sent."] = array(
$a->strings["You have no more invitations available"] = "Non hai altri inviti disponibili";
$a->strings["Send invitations"] = "Spedisci inviti";
$a->strings["Enter email addresses, one per line:"] = "Inserisci gli indirizzi email, uno per riga:";
-$a->strings["Your message:"] = "Il tuo messaggio:";
$a->strings["Please join my community on RedMatrix."] = "Entra a far parte della mia comunità su RedMatrix.";
$a->strings["You will need to supply this invitation code: "] = "Dovrai fornire questo codice di invito:";
$a->strings["1. Register at any RedMatrix location (they are all inter-connected)"] = "1. Registrati su un qualsiasi sito RedMatrix (sono tutti interconnessi)";
$a->strings["2. Enter my RedMatrix network address into the site searchbar."] = "2. Inserisci il mio indirizzo RedMatrix nella barra di ricerca che compare nella pagina.";
-$a->strings["or visit "] = "oppure visita";
+$a->strings["or visit "] = "oppure visita ";
$a->strings["3. Click [Connect]"] = "3. Clicca su [Aggiungi]";
-$a->strings["Unable to locate original post."] = "Impossibile trovare il messaggio originale.";
-$a->strings["Empty post discarded."] = "L'articolo vuoto è stato ignorato.";
-$a->strings["Executable content type not permitted to this channel."] = "I contenuti eseguibili non sono permessi su questo canale.";
-$a->strings["System error. Post not saved."] = "Errore di sistema. Articolo non salvato.";
-$a->strings["You have reached your limit of %1$.0f top level posts."] = "Hai raggiunto il limite massimo di %1$.0f articoli sulla pagina principale.";
-$a->strings["You have reached your limit of %1$.0f webpages."] = "Hai raggiunto il limite massimo di %1$.0f pagine web.";
+$a->strings["You have created %1$.0f of %2$.0f allowed channels."] = "Hai creato %1$.0f dei %2$.0f canali permessi.";
+$a->strings["Create a new channel"] = "Crea un nuovo canale";
+$a->strings["Current Channel"] = "Canale attuale";
+$a->strings["Attach to one of your channels by selecting it."] = "Seleziona il canale a cui vuoi passare.";
+$a->strings["Default Channel"] = "Canale predefinito";
+$a->strings["Make Default"] = "Rendi predefinito";
$a->strings["[Embedded content - reload page to view]"] = "[Contenuto incorporato - ricarica la pagina per visualizzarlo correttamente]";
$a->strings["Help with this feature"] = "La guida per questa funzionalità";
$a->strings["Layout Name"] = "Nome layout";
-$a->strings["Like/Dislike"] = "Mi piace/Non mi piace";
-$a->strings["This action is restricted to members."] = "Questa funzionalità è riservata agli iscritti.";
-$a->strings["Please <a href=\"rmagic\">login with your RedMatrix ID</a> or <a href=\"register\">register as a new RedMatrix member</a> to continue."] = "Per favore <a href=\"rmagic\">accedi con il tuo identificativo RedMatrix</a> o <a href=\"register\">registrati su RedMatrix</a> per continuare.";
-$a->strings["Invalid request."] = "Richiesta non valida.";
-$a->strings["thing"] = "oggetto";
-$a->strings["Channel unavailable."] = "Canale non trovato.";
-$a->strings["Previous action reversed."] = "Il comando precedente è stato annullato.";
-$a->strings["Action completed."] = "Comando completato.";
-$a->strings["Thank you."] = "Grazie.";
$a->strings["Remote privacy information not available."] = "Le informazioni remote sulla privacy non sono disponibili.";
$a->strings["Visible to:"] = "Visibile a:";
$a->strings["No connections."] = "Nessun contatto.";
$a->strings["Visit %s's profile [%s]"] = "Visita il profilo di %s [%s]";
$a->strings["View Connnections"] = "Guarda i contatti";
-$a->strings["No valid account found."] = "Nessun account valido trovato.";
-$a->strings["Password reset request issued. Check your email."] = "La richiesta per reimpostare la password è stata inviata. Controlla la tua email.";
-$a->strings["Site Member (%s)"] = "Utente del sito (%s)";
-$a->strings["Password reset requested at %s"] = "È stato richiesto di reimpostare password su %s";
-$a->strings["Request could not be verified. (You may have previously submitted it.) Password reset failed."] = "La richiesta non può essere verificata (potresti averla già usata precedentemente). La password non può essere reimpostata.";
-$a->strings["Password Reset"] = "Reimposta la password";
-$a->strings["Your password has been reset as requested."] = "La password è stata reimpostata come richiesto.";
-$a->strings["Your new password is"] = "La tua nuova password è";
-$a->strings["Save or copy your new password - and then"] = "Salva o copia la tua nuova password, quindi";
-$a->strings["click here to login"] = "clicca qui per accedere";
-$a->strings["Your password may be changed from the <em>Settings</em> page after successful login."] = "Puoi cambiare la tua password dalla pagina delle <em>Impostazioni</em> dopo aver effettuato l'accesso.";
-$a->strings["Your password has changed at %s"] = "La tua password su %s è cambiata";
-$a->strings["Forgot your Password?"] = "Hai dimenticato la password?";
-$a->strings["Enter your email address and submit to have your password reset. Then check your email for further instructions."] = "Inserisci il tuo indirizzo email per reimpostare la password. Dopo aver inviato la richiesta, controlla l'email e troverai le istruzioni per continuare.";
-$a->strings["Email Address"] = "Indirizzo email";
-$a->strings["Reset"] = "Reimposta";
$a->strings["Hub not found."] = "Server non trovato.";
-$a->strings["Total votes"] = "Totale voti";
-$a->strings["Average Rating"] = "Media";
-$a->strings["Unable to lookup recipient."] = "Impossibile associare un destinatario.";
-$a->strings["Unable to communicate with requested channel."] = "Impossibile comunicare con il canale richiesto.";
-$a->strings["Cannot verify requested channel."] = "Impossibile verificare il canale richiesto.";
-$a->strings["Selected channel has private message restrictions. Send failed."] = "Il canale ha delle regole restrittive per la ricezione dei messaggi privati. Invio fallito.";
-$a->strings["Messages"] = "Messaggi";
-$a->strings["Message deleted."] = "Messaggio eliminato.";
-$a->strings["Message recalled."] = "Messaggio revocato.";
-$a->strings["Send Private Message"] = "Invia un messaggio privato";
-$a->strings["To:"] = "A:";
-$a->strings["Subject:"] = "Oggetto:";
-$a->strings["Send"] = "Invia";
-$a->strings["Message not found."] = "Messaggio non trovato.";
-$a->strings["Delete message"] = "Elimina il messaggio";
-$a->strings["Recall message"] = "Revoca il messaggio";
-$a->strings["Message has been recalled."] = "Il messaggio è stato revocato.";
-$a->strings["Private Conversation"] = "Conversazione privata";
-$a->strings["Delete conversation"] = "Elimina la conversazione";
-$a->strings["No secure communications available. You <strong>may</strong> be able to respond from the sender's profile page."] = "Non è disponibile alcun sistema per comunicare in modo sicuro. Puoi verificare se <strong>eventualmente</strong> è possibile rispondere dalla pagina del profilo del mittente.";
-$a->strings["Send Reply"] = "Invia la risposta";
-$a->strings["You have created %1$.0f of %2$.0f allowed channels."] = "Hai creato %1$.0f dei %2$.0f canali permessi.";
-$a->strings["Create a new channel"] = "Crea un nuovo canale";
-$a->strings["Current Channel"] = "Canale attuale";
-$a->strings["Attach to one of your channels by selecting it."] = "Seleziona il canale a cui vuoi passare.";
-$a->strings["Default Channel"] = "Canale predefinito";
-$a->strings["Make Default"] = "Rendi predefinito";
+$a->strings["Total votes"] = "Voti totali";
+$a->strings["Average Rating"] = "Valutazione media";
+$a->strings["No such group"] = "Impossibile trovare l'insieme";
+$a->strings["Search Results For:"] = "Cerca risultati con:";
+$a->strings["Collection is empty"] = "L'insieme di canali è vuoto";
+$a->strings["Collection: "] = "Insieme:";
+$a->strings["Connection: "] = "Contatto:";
+$a->strings["Invalid connection."] = "Contatto non valido.";
$a->strings["Wall Photos"] = "Foto della bacheca";
$a->strings["Profile Match"] = "Profili corrispondenti";
-$a->strings["No keywords to match. Please add keywords to your default profile."] = "Nessuna parola chiave per le ricerche. Aggiungi parole chiave al tuo profilo predefinito.";
+$a->strings["No keywords to match. Please add keywords to your default profile."] = "Non hai scritto parole chiave. Aggiungi parole chiave al tuo profilo predefinito per comparire nelle ricerche.";
$a->strings["is interested in:"] = "interessi personali:";
$a->strings["No matches"] = "Nessun risultato";
$a->strings["Menu updated."] = "Menù aggiornato.";
@@ -1777,6 +1800,7 @@ $a->strings["Menu created."] = "Menù creato.";
$a->strings["Unable to create menu."] = "Impossibile creare il menù.";
$a->strings["Manage Menus"] = "Gestione menù";
$a->strings["Drop"] = "Elimina";
+$a->strings["Bookmarks allowed"] = "Permetti segnalibri";
$a->strings["Create a new menu"] = "Crea un nuovo menù";
$a->strings["Delete this menu"] = "Elimina questo menù";
$a->strings["Edit menu contents"] = "Modifica i contenuti del menù";
@@ -1787,7 +1811,7 @@ $a->strings["Must be unique, only seen by you"] = "Deve essere unico, lo vedrai
$a->strings["Menu title"] = "Titolo del menù";
$a->strings["Menu title as seen by others"] = "Titolo del menù come comparirà a tutti";
$a->strings["Allow bookmarks"] = "Permetti l'invio di segnalibri";
-$a->strings["Menu may be used to store saved bookmarks"] = "Puoi salvare i segnalibri nei menu";
+$a->strings["Menu may be used to store saved bookmarks"] = "Puoi salvare i segnalibri nei menù";
$a->strings["Menu deleted."] = "Menù eliminato.";
$a->strings["Menu could not be deleted."] = "Il menù non può essere eliminato.";
$a->strings["Edit Menu"] = "Modifica menù";
@@ -1796,19 +1820,69 @@ $a->strings["Conversation removed."] = "Conversazione rimossa.";
$a->strings["No messages."] = "Nessun messaggio.";
$a->strings["D, d M Y - g:i A"] = "D d M Y - G:i";
$a->strings["Add a Channel"] = "Aggiungi un canale";
-$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."] = "I contenuti che pubblichi finiscono in un \"canale\". Un canale può essere usato per mantenere un tuo profilo personale, per avere un blog, per creare forum di discussione o gruppi di interesse, per pagine di celebrità e molto altro. Puoi creare quanti canali vuoi a meno di limiti dati dal gestore del sito.";
+$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."] = "I contenuti che pubblichi sono mostrati nel tuo \"canale\". Un canale può essere usato come bacheca personale, come blog, oppure può essere un forum di discussione, un gruppo di interesse, una pagina di celebrità e molto altro. Puoi creare tanti canali quanti ne permette il tuo sito.";
$a->strings["Examples: \"Bob Jameson\", \"Lisa and her Horses\", \"Soccer\", \"Aviation Group\" "] = "Per esempio: \"Mario Rossi\", \"Lisa e le sue ricette\", \"Il campionato\", \"Il gruppo di escursionismo\"";
$a->strings["Choose a short nickname"] = "Scegli un nome breve";
$a->strings["Your nickname will be used to create an easily remembered channel address (like an email address) which you can share with others."] = "Il nome breve sarà usato per creare un indirizzo facile da ricordare per il tuo canale (simile a una email). Così potrai condividerlo e gli altri potranno trovarti.";
$a->strings["Or <a href=\"import\">import an existing channel</a> from another location"] = "Oppure <a href=\"import\">importa un tuo canale esistente</a> da un altro server/hub";
+$a->strings["Channel Type"] = "Tipo di canale";
+$a->strings["Please choose a channel type (such as social networking or community forum) and privacy requirements so we can select the best permissions for you"] = "Descrivi il tipo di canale che vorresti creare (per esempio se ti interessa più usarlo come social network, come un forum di discussione...) e il tipo di privacy che preferisci. RedMatrix sceglierà per te i permessi più adatti.";
$a->strings["Invalid request identifier."] = "L'identificativo della richiesta non è valido.";
$a->strings["Discard"] = "Rifiuta";
$a->strings["No more system notifications."] = "Non ci sono nuove notifiche di sistema.";
$a->strings["System Notifications"] = "Notifiche di sistema";
+$a->strings["Xchan Lookup"] = "Ricerca canale";
+$a->strings["Lookup xchan beginning with (or webbie): "] = "Cerca un canale (o un webbie) che inizia per:";
+$a->strings["invalid target signature"] = "la firma ricevuta non è valida";
$a->strings["Unable to find your hub."] = "Impossibile raggiungere il tuo hub.";
$a->strings["Post successful."] = "Inviato!";
-$a->strings["invalid target signature"] = "la firma riscontrata non è valida";
-$a->strings["OpenID protocol error. No ID returned."] = "Errore del protocollo OpenID. Nessun ID ricevuto in risposta.";
+$a->strings["Gender: "] = "Sesso:";
+$a->strings["Status: "] = "Stato:";
+$a->strings["Homepage: "] = "Homepage:";
+$a->strings["Hometown: "] = "Città dove vivo:";
+$a->strings["About: "] = "Informazioni:";
+$a->strings["Public Forum:"] = "Forum pubblico:";
+$a->strings["Keywords: "] = "Parole chiave:";
+$a->strings["Finding:"] = "Ricerca:";
+$a->strings["next page"] = "pagina successiva";
+$a->strings["previous page"] = "pagina precedente";
+$a->strings["No entries (some entries may be hidden)."] = "Nessun risultato (qualche elemento potrebbe essere nascosto).";
+$a->strings["Page owner information could not be retrieved."] = "Impossibile ottenere informazioni sul proprietario della pagina.";
+$a->strings["Album not found."] = "Album non trovato.";
+$a->strings["Delete Album"] = "Elimina album";
+$a->strings["Delete Photo"] = "Elimina foto";
+$a->strings["No photos selected"] = "Nessuna foto selezionata";
+$a->strings["Access to this item is restricted."] = "Questo elemento non è visibile a tutti.";
+$a->strings["%1$.2f MB of %2$.2f MB photo storage used."] = "Hai usato %1$.2f Mb dei %2$.2f Mb di spazio disponibile.";
+$a->strings["%1$.2f MB photo storage used."] = "Hai usato %1$.2f Mb del tuo spazio disponibile.";
+$a->strings["Upload Photos"] = "Carica foto";
+$a->strings["Enter a new album name"] = "Inserisci il nome di un nuovo album";
+$a->strings["or select an existing one (doubleclick)"] = "o seleziona uno esistente (doppio click)";
+$a->strings["Do not show a status post for this upload"] = "Non creare un messaggio di stato per questo caricamento";
+$a->strings["Album name could not be decoded"] = "Non è stato possibile leggere il nome dell'album";
+$a->strings["Contact Photos"] = "Foto dei contatti";
+$a->strings["Show Newest First"] = "Prima i più recenti";
+$a->strings["Show Oldest First"] = "Prima i più vecchi";
+$a->strings["View Photo"] = "Guarda la foto";
+$a->strings["Edit Album"] = "Modifica album";
+$a->strings["Permission denied. Access to this item may be restricted."] = "Permesso negato. L'accesso a questo elemento può essere stato limitato.";
+$a->strings["Photo not available"] = "Foto non disponibile";
+$a->strings["Use as profile photo"] = "Usa come foto del profilo";
+$a->strings["Private Photo"] = "Foto privata";
+$a->strings["View Full Size"] = "Vedi nelle dimensioni originali";
+$a->strings["Edit photo"] = "Modifica la foto";
+$a->strings["Rotate CW (right)"] = "Ruota (senso orario)";
+$a->strings["Rotate CCW (left)"] = "Ruota (senso antiorario)";
+$a->strings["Caption"] = "Titolo";
+$a->strings["Add a Tag"] = "Aggiungi tag";
+$a->strings["Example: @bob, @Barbara_Jensen, @jim@example.com"] = "Esempio: @bob, @Barbara_Jensen, @jim@example.com";
+$a->strings["Flag as adult in album view"] = "Marca come 'per adulti'";
+$a->strings["In This Photo:"] = "In questa foto:";
+$a->strings["View Album"] = "Guarda l'album";
+$a->strings["Recent Photos"] = "Foto recenti";
+$a->strings["sent you a private message"] = "ti ha inviato un messaggio privato";
+$a->strings["added your channel"] = "ha aggiunto il tuo canale";
+$a->strings["posted an event"] = "ha creato un evento";
$a->strings["App installed."] = "App installata";
$a->strings["Malformed app."] = "App non corretta";
$a->strings["Embed code"] = "Inserisci del codice";
@@ -1828,8 +1902,9 @@ $a->strings["Remove This Account"] = "Elimina questo account";
$a->strings["This will completely remove this account including all its channels from the network. Once this has been done it is not recoverable."] = "Questa operazione rimuoverà completamente il tuo account dalla rete, inclusi tutti i suoi canali. Una volta avviata la rimozione, sarà definitiva.";
$a->strings["Remove this account, all its channels and all its channel clones from the network"] = "Elimina dalla rete questo account, tutti i suoi canali e ANCHE tutti gli eventuali canali clonati.";
$a->strings["By default only the instances of the channels located on this hub will be removed from the network"] = "A meno che tu non lo richieda espressamente, solo i canali presenti su questo server saranno rimossi dalla rete.";
+$a->strings["No service class restrictions found."] = "Non esistono restrizioni su questa classe di account.";
$a->strings["Schema Default"] = "Schema predefinito";
-$a->strings["Sans-Serif"] = "Sans-Serif";
+$a->strings["Sans-Serif"] = "Sans-serif";
$a->strings["Monospace"] = "Monospace";
$a->strings["Theme settings"] = "Impostazioni del tema";
$a->strings["Set scheme"] = "Schema";
@@ -1844,8 +1919,8 @@ $a->strings["Set line-height for posts and comments"] = "Altezza della riga per
$a->strings["Set background image"] = "Immagine di sfondo";
$a->strings["Set background attachment"] = "Allega uno sfondo";
$a->strings["Set background color"] = "Colore di sfondo";
-$a->strings["Set section background image"] = "Immagine di sfondo dei contenuti";
-$a->strings["Set section background color"] = "Colore di sfondo dei contenuti";
+$a->strings["Set section background image"] = "Immagine di sfondo della sezione";
+$a->strings["Set section background color"] = "Colore di sfondo dell'area principale";
$a->strings["Set color of items - use hex"] = "Colore degli elementi della pagina - esadecimale";
$a->strings["Set color of links - use hex"] = "Colore dei link - esadecimale";
$a->strings["Set max-width for items. Default 400px"] = "Larghezza massima degli elementi della pagina. Predefinita: 400px";
@@ -1858,14 +1933,11 @@ $a->strings["Display post previews only"] = "Mostra le anteprime solo degli arti
$a->strings["Display side bar on channel page"] = "Mostra la colonna laterale sulla pagina del canale";
$a->strings["Colour of the navigation bar"] = "Colore della barra di navigazione";
$a->strings["Item float"] = "Float degli oggetti della pagina";
-$a->strings["Left offset of the section element"] = "Spostamento a sinistra dei contenuti";
-$a->strings["Right offset of the section element"] = "Spostamento a destra dei contenuti";
-$a->strings["Section width"] = "Larghezza dei contenuti";
-$a->strings["Left offset of the aside"] = "Spostamento a sinistra della colonna laterale";
-$a->strings["Right offset of the aside element"] = "Spostamento a destra della colonna laterale";
-$a->strings["None"] = "Nessuno";
-$a->strings["Header image"] = "Immagine dell'intestazione";
-$a->strings["Header image only on profile pages"] = "Metti un'immagine solo nell'intestazione dei profili";
+$a->strings["Left offset of the section element"] = "Margine sinistro dell'area principale";
+$a->strings["Right offset of the section element"] = "Margine destro dell'area principale";
+$a->strings["Section width"] = "Larghezza dell'area principale";
+$a->strings["Left offset of the aside"] = "Margine sinistro della colonna laterale";
+$a->strings["Right offset of the aside element"] = "Margine destro della colonna laterale";
$a->strings["Light (Red Matrix default)"] = "Light (predefinito)";
$a->strings["Narrow navbar"] = "Barra di navigazione ristretta";
$a->strings["Navigation bar background color"] = "Barra di navigazione: Colore di sfondo";
diff --git a/view/it/wall_received_eml.tpl b/view/it/wall_received_eml.tpl
deleted file mode 100644
index ba9e25901..000000000
--- a/view/it/wall_received_eml.tpl
+++ /dev/null
@@ -1,18 +0,0 @@
-
-Caro/a $username,
-
- '$from' ha scritto qualcosa sulla bachecha del tuo profilo.
-
------
-$body
------
-
-Accedi a $siteurl per vedere o cancellare l'elemento:
-
-$display
-
-Grazie,
- L'amministratore di $sitename
-
-
-
diff --git a/view/it/wall_received_html_body_eml.tpl b/view/it/wall_received_html_body_eml.tpl
deleted file mode 100644
index cdc05cfa3..000000000
--- a/view/it/wall_received_html_body_eml.tpl
+++ /dev/null
@@ -1,24 +0,0 @@
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional //EN">
-<html>
-<head>
- <title>Messaggio da Friendika</title>
- <meta http-equiv="Content-Type" content="text/html;charset=utf-8" />
-</head>
-<body>
-<table style="border:1px solid #ccc">
- <tbody>
- <tr><td colspan="2" style="background:#084769; color:#FFFFFF; font-weight:bold; font-family:'lucida grande', tahoma, verdana,arial, sans-serif; padding: 4px 8px; vertical-align: middle; font-size:16px; letter-spacing: -0.03em; text-align: left;"><img style="width:32px;height:32px; float:left;" src='$siteurl/images/friendika-32.png'><div style="padding:7px; margin-left: 5px; float:left; font-size:18px;letter-spacing:1px;">Friendika</div><div style="clear: both;"></div></td></tr>
-
- <tr><td style="padding-top:22px;" colspan="2">$from ha scritto sulla tua bacheca.</td></tr>
-
-
- <tr><td style="padding-left:22px;padding-top:22px;width:60px;" valign="top" rowspan=3><a href="$url"><img style="border:0px;width:48px;height:48px;" src="$thumb"></a></td>
- <td style="padding-top:22px;"><a href="$url">$from</a></td></tr>
- <tr><td style="padding-right:22px;">$body</td></tr>
- <tr><td style="padding-top:11px;padding-bottom:11px;" colspan="2">Vai su <a href="$siteurl">$siteurl</a> per <a href="$display">vedere o cancellare il post</a>.</td></tr>
- <tr><td></td><td>Grazie,</td></tr>
- <tr><td></td><td>L'amministratore di $sitename</td></tr>
- </tbody>
-</table>
-</body>
-</html> \ No newline at end of file
diff --git a/view/it/wall_received_text_body_eml.tpl b/view/it/wall_received_text_body_eml.tpl
deleted file mode 100644
index 327557ea1..000000000
--- a/view/it/wall_received_text_body_eml.tpl
+++ /dev/null
@@ -1,18 +0,0 @@
-
-Caro $username,
-
- '$from' ha scritto sulla tua bacheca.
-
------
-$body
------
-
-Vai su $siteurl per vedere o cancellare il post:
-
-$display
-
-Grazie,
- L'amministratore di $sitename
-
-
-
diff --git a/view/js/acl.js b/view/js/acl.js
index c129634a0..f9428e1c5 100644
--- a/view/js/acl.js
+++ b/view/js/acl.js
@@ -17,20 +17,24 @@ function ACL(backend_url, preset){
that.item_tpl = unescape($(".acl-list-item[rel=acl-template]").html());
that.showall = $("#acl-showall");
+ // set the initial ACL lists in case the enclosing form gets submitted before the ajax loader completes.
+ that.on_submit();
+
if (preset.length==0) that.showall.removeClass("btn-default").addClass("btn-warning");
/*events*/
$(document).ready(function() {
- that.showall.click(that.on_showall);
- $(document).on('click','.acl-button-show',that.on_button_show);
- $(document).on('click','.acl-button-hide',that.on_button_hide);
- $("#acl-search").keypress(that.on_search);
-// $("#acl-wrapper").parents("form").submit(that.on_submit);
+// setTimeout( function() {
+ that.showall.click(that.on_showall);
+ $(document).on('click','.acl-button-show',that.on_button_show);
+ $(document).on('click','.acl-button-hide',that.on_button_hide);
+ $("#acl-search").keypress(that.on_search);
- /* startup! */
- that.get(0,100);
- that.on_submit();
+ /* startup! */
+ that.get(0,100);
+ that.on_submit();
+// }, 5000 );
});
}
diff --git a/view/js/autocomplete.js b/view/js/autocomplete.js
index c01ba6990..e62959a6c 100644
--- a/view/js/autocomplete.js
+++ b/view/js/autocomplete.js
@@ -1,200 +1,59 @@
/**
- * Friendica people autocomplete
+ * Red people autocomplete
*
- * require jQuery, jquery.textareas
+ * require jQuery, jquery.textcomplete
*/
-
-
-
-function ACPopup(elm,backend_url){
- this.idsel=-1;
- this.element = elm;
- this.searchText="";
- this.ready=true;
- this.kp_timer = false;
- this.url = backend_url;
-
- var w = 530;
- var h = 130;
-
-
- if(typeof elm.editorId == "undefined") {
- style = $(elm).offset();
- w = $(elm).width();
- h = $(elm).height();
- }
- else {
- var container = elm.getContainer();
- if(typeof container != "undefined") {
- style = $(container).offset();
- w = $(container).width();
- h = $(container).height();
- }
- }
-
- if(! w)
- w = 530;
-
- if(! h)
- h = 130;
-
- style.top=style.top+h;
- style.width = w;
- style.position = 'absolute';
- /* style['max-height'] = '150px';
- style.border = '1px solid red';
- style.background = '#cccccc';
-
- style.overflow = 'auto';
- style['z-index'] = '100000';
- */
- style.display = 'none';
-
- this.cont = $("<div class='acpopup'></div>");
- this.cont.css(style);
-
- $("body").append(this.cont);
-}
-ACPopup.prototype.close = function(){
- $(this.cont).remove();
- this.ready=false;
-}
-ACPopup.prototype.search = function(text){
- var that = this;
- this.searchText=text;
- if (this.kp_timer) clearTimeout(this.kp_timer);
- this.kp_timer = setTimeout( function(){that._search();}, 500);
-}
-ACPopup.prototype._search = function(){
- console.log("_search");
- var that = this;
+function mysearch(term, callback, backend_url) {
var postdata = {
start:0,
count:100,
- search:this.searchText,
+ //search:term.substring(1),
+ search:term,
type:'c',
}
$.ajax({
type:'POST',
- url: this.url,
+ url: backend_url,
data: postdata,
dataType: 'json',
success:function(data){
- that.cont.html("");
- if (data.tot>0){
- that.cont.show();
- $(data.items).each(function(){
- html = "<img src='{0}' height='16px' width='16px'>{1} ({2})".format(this.photo, this.name, ((this.label) ? this.nick + ' ' + this.label : this.nick) )
- that.add(this.taggable, html, this.nick.replace(' ','') + '+' + this.id + ' - ' + this.link);
- });
- } else {
- that.cont.hide();
- }
- }
- });
-
-}
-ACPopup.prototype.add = function(taggable, label, value){
- var that=this;
- var elm = $("<div class='acpopupitem " + taggable +"' title='"+value+"'>"+label+"</div>");
- elm.click(function(e){
- t = $(this).attr('title').replace(new RegExp(' \- .*'),'');
- if(typeof(that.element.container) === "undefined") {
- el=$(that.element);
- sel = el.getSelection();
- sel.start = sel.start- that.searchText.length;
- el.setSelection(sel.start,sel.end).replaceSelectedText(t+' ').collapseSelection(false);
- that.close();
- }
- else {
- txt = tinyMCE.activeEditor.getContent();
- // alert(that.searchText + ':' + t);
- newtxt = txt.replace('@' + that.searchText, '@' + t + ' ');
- tinyMCE.activeEditor.setContent(newtxt);
- tinyMCE.activeEditor.focus();
- that.close();
- }
- });
- $(this.cont).append(elm);
-}
-ACPopup.prototype.onkey = function(event){
- if (event.keyCode == '13') {
- if(this.idsel>-1) {
- this.cont.children()[this.idsel].click();
- event.preventDefault();
- }
- else
- this.close();
- }
- if (event.keyCode == '38') { //cursor up
- cmax = this.cont.children().size()-1;
- this.idsel--;
- if (this.idsel<0) this.idsel=cmax;
- event.preventDefault();
- }
- if (event.keyCode == '40' || event.keyCode == '9') { //cursor down
- cmax = this.cont.children().size()-1;
- this.idsel++;
- if (this.idsel>cmax) this.idsel=0;
- event.preventDefault();
- }
-
- if (event.keyCode == '38' || event.keyCode == '40' || event.keyCode == '9') {
- this.cont.children().removeClass('selected');
- $(this.cont.children()[this.idsel]).addClass('selected');
- }
-
- if (event.keyCode == '27') { //ESC
- this.close();
- }
+ callback(data.items);
+ },
+ }).fail(function () {callback([]); }); // Callback must be invoked even if something went wrong.
}
-function ContactAutocomplete(element,backend_url){
- this.pattern=/@(\!*)([^ \n]+)$/;
- this.popup=null;
- var that = this;
-
- $(element).unbind('keydown');
- $(element).unbind('keyup');
-
- $(element).keydown(function(event){
- if (that.popup!==null) that.popup.onkey(event);
- });
-
- $(element).keyup(function(event){
- cpos = $(this).getSelection();
- if (cpos.start==cpos.end){
- match = $(this).val().substring(0,cpos.start).match(that.pattern);
- if (match!==null){
- if (that.popup===null){
- that.popup = new ACPopup(this, backend_url);
- }
- if (that.popup.ready && match[2]!==that.popup.searchText) that.popup.search(match[2]);
- if (!that.popup.ready) that.popup=null;
-
- } else {
- if (that.popup!==null) {that.popup.close(); that.popup=null;}
- }
-
-
- }
- });
-
+function format(item) {
+ return "<img src='{0}' height='16px' width='16px'>{1} ({2})".format(item.photo, item.name, ((item.label) ? item.nick + ' ' + item.label : item.nick) )
}
+function replace(item) {
+ // $2 ensures that prefix (@,@!) is preserved
+ return '$1$2'+item.nick.replace(' ','') + '+' + item.id;
+}
/**
* jQuery plugin 'contact_autocomplete'
*/
(function( $ ){
- $.fn.contact_autocomplete = function(backend_url) {
- this.each(function(){
- new ContactAutocomplete(this, backend_url);
- });
- };
-})( jQuery );
-
+ $.fn.contact_autocomplete = function(backend_url) {
+ // Autocomplete contacts
+ contacts = {
+ match: /(^|\s)(@!?)(\w{2,})$/,
+ index: 3,
+ search: function(term, callback) { mysearch(term, callback, backend_url); },
+ replace: replace,
+ template: format,
+ }
-
+ smilies = {
+ match: /(^|\s)(:[a-z]{2,})$/,
+ index: 2,
+ search: function(term, callback) { $.getJSON('/smilies/json').done(function(data) { callback($.map(data, function(entry) { return entry['text'].indexOf(term) === 0 ? entry : null })) }) },
+ template: function(item) { return item['icon'] + item['text'] },
+ replace: function(item) { return "$1"+item['text'] + ' '; },
+ }
+ this.textcomplete([contacts,smilies],{});
+ };
+})( jQuery );
diff --git a/view/js/main.js b/view/js/main.js
index b5b77d473..a851e7e63 100644
--- a/view/js/main.js
+++ b/view/js/main.js
@@ -113,7 +113,7 @@
}
function viewsrc(id) {
- $.colorbox({href: 'viewsrc/' + id });
+ $.colorbox({href: 'viewsrc/' + id, maxWidth: '80%', maxHeight: '80%' });
}
function qCommentInsert(obj,id) {
@@ -180,6 +180,13 @@
timer = setTimeout(NavUpdate,2000);
}
+ function markItemRead(itemId) {
+ $.get('ping?f=&markItemRead='+itemId);
+ $('.unseen-wall-indicator-'+itemId).hide();
+ }
+
+
+
var src = null;
var prev = null;
var livetime = null;
@@ -200,6 +207,7 @@
var loadingPage = true;
var pageHasMoreContent = true;
var updateCountsOnly = false;
+ var divmore_height = 400;
$(function() {
$.ajaxSetup({cache: false});
@@ -285,7 +293,7 @@
scroll_next = true;
loadingPage = true;
- if($('.directory-end').length == 0)
+ if(($('.directory-end').length == 0) && ($('.photos-end').length == 0))
liveUpdate();
else
pageUpdate();
@@ -335,7 +343,7 @@
if($('#live-network').length) { src = 'network'; liveUpdate(); }
if($('#live-channel').length) { src = 'channel'; liveUpdate(); }
- if($('#live-community').length) { src = 'community'; liveUpdate(); }
+ if($('#live-home').length) { src = 'home'; liveUpdate(); }
if($('#live-display').length) { src = 'display'; liveUpdate(); }
if($('#live-search').length) { src = 'search'; liveUpdate(); }
@@ -429,6 +437,8 @@ function updatePageItems(mode,data) {
pageHasMoreContent = false;
}
+ collapseHeight();
+
}
@@ -458,25 +468,17 @@ function updateConvItems(mode,data) {
if(isVisible)
showHideComments(itmId);
$(".autotime").timeago();
- // divgrow doesn't prevent itself from attaching a second (or 500th)
- // "show more" div to a content region - it also has a few other
- // issues related to how we're trying to use it.
- // disable for now.
- // $("div.wall-item-body").divgrow({ initialHeight: 400 });
}
else {
$('img',this).each(function() {
$(this).attr('src',$(this).attr('dst'));
});
- // more FIXME related to expanded comments
if($('#collapsed-comments-'+itmId).is(':visible'))
isVisible = true;
$('#' + ident).replaceWith($(this));
if(isVisible)
showHideComments(itmId);
$(".autotime").timeago();
- // $("div.wall-item-body").divgrow({ initialHeight: 400 });
-
}
prev = ident;
});
@@ -508,8 +510,6 @@ function updateConvItems(mode,data) {
if(isVisible)
showHideComments(itmId);
$(".autotime").timeago();
- // $("div.wall-item-body").divgrow({ initialHeight: 400 });
-
}
else {
$('img',this).each(function() {
@@ -521,7 +521,6 @@ function updateConvItems(mode,data) {
if(isVisible)
showHideComments(itmId);
$(".autotime").timeago();
- // $("div.wall-item-body").divgrow({ initialHeight: 400 });
}
});
@@ -557,7 +556,6 @@ function updateConvItems(mode,data) {
showHideComments(itmId);
$(".autotime").timeago();
- // $("div.wall-item-body").divgrow({ initialHeight: 400 });
}
prev = ident;
});
@@ -575,7 +573,7 @@ function updateConvItems(mode,data) {
}
/* autocomplete @nicknames */
- $(".comment-edit-form textarea").contact_autocomplete(baseurl+"/acl");
+ $(".comment-edit-form textarea").contact_autocomplete(baseurl+"/acl?f=&n=1");
var bimgs = $(".wall-item-body img").not(function() { return this.complete; });
var bimgcount = bimgs.length;
@@ -596,18 +594,16 @@ function updateConvItems(mode,data) {
function collapseHeight() {
- $(".wall-item-body").each(function() {
- if($(this).height() > 410) {
+ $(".wall-item-body, .contact-info").each(function() {
+ if($(this).height() > divmore_height + 10) {
if(! $(this).hasClass('divmore')) {
- $(this).divgrow({ initialHeight: 400, moreText: aStr['divgrowmore'], lessText: aStr['divgrowless'], showBrackets: false });
+ $(this).divgrow({ initialHeight: divmore_height, moreText: aStr['divgrowmore'], lessText: aStr['divgrowless'], showBrackets: false });
$(this).addClass('divmore');
}
}
});
}
-
-
function liveUpdate() {
if((src == null) || (stopped) || (! profile_uid)) { $('.like-rotator').spin(false); return; }
if(($('.comment-edit-text-full').length) || (in_progress)) {
@@ -689,7 +685,7 @@ function updateConvItems(mode,data) {
bParam_page = 1;
}
- update_url = baseurl + '/directory/?f=&aj=1&page=' + bParam_page;
+ update_url = baseurl + '/' + page_query + '/?f=&aj=1&page=' + bParam_page + extra_args ;
$("#page-spinner").spin('small');
update_mode = 'append';
@@ -704,6 +700,25 @@ function updateConvItems(mode,data) {
}
+ function justifyPhotos() {
+ justifiedGalleryActive = true;
+ $('#photo-album-contents').justifiedGallery({
+ margins: 3,
+ sizeRangeSuffixes: {
+ 'lt100': '-2',
+ 'lt240': '-2',
+ 'lt320': '-2',
+ 'lt500': '',
+ 'lt640': '-1',
+ 'lt1024': '-0'
+ }
+ }).on('jg.complete', function(e){ justifiedGalleryActive = false; });
+ }
+
+ function justifyPhotosAjax() {
+ justifiedGalleryActive = true;
+ $('#photo-album-contents').justifiedGallery('norewind').on('jg.complete', function(e){ justifiedGalleryActive = false; });
+ }
function notify_popup_loader(notifyType) {
@@ -724,13 +739,13 @@ function updateConvItems(mode,data) {
if(data.notify.length==0){
- $("#nav-" + notifyType + "-menu").html(notifications_empty);
+ $("#nav-" + notifyType + "-menu").html(aStr[nothingnew]);
} else {
$("#nav-" + notifyType + "-menu").html(notifications_all + notifications_mark);
$(data.notify).each(function() {
- html = notifications_tpl.format(this.notify_link,this.photo,this.name,this.message,this.when,this.class);
+ html = notifications_tpl.format(this.notify_link,this.photo,this.name,this.message,this.when,this.hclass);
$("#nav-" + notifyType + "-menu").append(html);
});
$(".dropdown-menu img[data-src]").each(function(i, el){
@@ -874,12 +889,23 @@ function updateConvItems(mode,data) {
return true;
}
+ function importElement(elem) {
+ $.post(
+ "impel",
+ { "element" : elem },
+ function(data) {
+ if(timer) clearTimeout(timer);
+ timer = setTimeout(NavUpdate,10);
+ }
+ );
+ return false;
+ }
function preview_post() {
$("#jot-preview").val("1");
$("#jot-preview-content").show();
- tinyMCE.triggerSave();
+// tinyMCE.triggerSave();
$.post(
"item",
$("#profile-jot-form").serialize(),
@@ -956,6 +982,7 @@ function updateConvItems(mode,data) {
$('body').css('cursor', 'wait');
$.get('contactgroup/' + gid + '/' + cid, function(data) {
$('body').css('cursor', 'auto');
+ $('#group-' + gid).toggleClass('icon-check icon-check-empty');
});
}
@@ -995,6 +1022,8 @@ function fcFileBrowser (field_name, url, type, win) {
}
function setupFieldRichtext(){
+ return;
+/*
tinyMCE.init({
theme : "advanced",
mode : "specific_textareas",
@@ -1018,6 +1047,7 @@ function setupFieldRichtext(){
theme_advanced_path : false,
file_browser_callback : "fcFileBrowser",
});
+*/
}
@@ -1089,7 +1119,7 @@ $(document).ready(function() {
-$(window).scroll(function () {
+$(window).scroll(function () {
if(typeof buildCmd == 'function') {
// This is a content page with items and/or conversations
$('#more').hide();
@@ -1099,7 +1129,7 @@ $(window).scroll(function () {
$('#more').css("top","400");
$('#more').show();
}
-
+
if($(window).scrollTop() + $(window).height() > $(document).height() - 100) {
if((pageHasMoreContent) && (! loadingPage)) {
$('#more').hide();
@@ -1119,9 +1149,9 @@ $(window).scroll(function () {
$('#more').css("top","400");
$('#more').show();
}
-
+
if($(window).scrollTop() + $(window).height() > $(document).height() - 100) {
- if((pageHasMoreContent) && (! loadingPage)) {
+ if((pageHasMoreContent) && (! loadingPage) && (! justifiedGalleryActive)) {
$('#more').hide();
$('#no-more').hide();
diff --git a/view/js/mod_connedit.js b/view/js/mod_connedit.js
index 6231dbd0c..fabf24e95 100644
--- a/view/js/mod_connedit.js
+++ b/view/js/mod_connedit.js
@@ -6,11 +6,18 @@ function abook_perms_msg() {
}
$(document).ready(function() {
- if(typeof(after_following) !== 'undefined' && after_following)
- connectFullShare();
+ if(typeof(after_following) !== 'undefined' && after_following) {
+ if(typeof(connectDefaultShare) !== 'undefined')
+ connectDefaultShare();
+ else
+ connectFullShare();
+ }
$('#id_pending').click(function() {
- connectFullShare();
+ if(typeof(connectDefaultShare) !== 'undefined')
+ connectDefaultShare();
+ else
+ connectFullShare();
});
$('.abook-edit-me').click(function() {
diff --git a/view/js/mod_directory.js b/view/js/mod_directory.js
index 291734b4f..74c8b414d 100644
--- a/view/js/mod_directory.js
+++ b/view/js/mod_directory.js
@@ -6,3 +6,6 @@ function dirdetails(hash) {
}
+$(document).ready(function() {
+ collapseHeight();
+}); \ No newline at end of file
diff --git a/view/js/mod_events.js b/view/js/mod_events.js
new file mode 100644
index 000000000..0ce128fcc
--- /dev/null
+++ b/view/js/mod_events.js
@@ -0,0 +1,37 @@
+
+$(document).ready( function() { showHideFinishDate(); });
+
+function showHideFinishDate() {
+ if( $('#event-nofinish-checkbox').is(':checked'))
+ $('#event-finish-wrapper').hide();
+ else
+ $('#event-finish-wrapper').show();
+}
+
+
+
+ function eventGetStart() {
+ //reply = prompt("{{$expirewhen}}", $('#jot-expire').val());
+ $('#startModal').modal();
+ $('#start-modal-OKButton').on('click', function() {
+ reply=$('#start-date').val();
+ if(reply && reply.length) {
+ $('#start-text').val(reply);
+ $('#startModal').modal('hide');
+ }
+ })
+
+
+ }
+ function eventGetFinish() {
+ //reply = prompt("{{$expirewhen}}", $('#jot-expire').val());
+ $('#finishModal').modal();
+ $('#finish-modal-OKButton').on('click', function() {
+ reply=$('#finish-date').val();
+ if(reply && reply.length) {
+ $('#finish-text').val(reply);
+ $('#finishModal').modal('hide');
+ }
+ })
+
+ }
diff --git a/view/js/mod_new_channel.js b/view/js/mod_new_channel.js
index a3c1dd05c..492267ff9 100644
--- a/view/js/mod_new_channel.js
+++ b/view/js/mod_new_channel.js
@@ -1,16 +1,21 @@
$(document).ready(function() {
+// $("#privacy-role-select").sSelect();
$("#newchannel-name").blur(function() {
+ $("#name-spinner").spin('small');
var zreg_name = $("#newchannel-name").val();
$.get("new_channel/autofill.json?f=&name=" + encodeURIComponent(zreg_name),function(data) {
$("#newchannel-nickname").val(data);
zFormError("#newchannel-name-feedback",data.error);
+ $("#name-spinner").spin(false);
});
});
$("#newchannel-nickname").blur(function() {
+ $("#nick-spinner").spin('small');
var zreg_nick = $("#newchannel-nickname").val();
$.get("new_channel/checkaddr.json?f=&nick=" + encodeURIComponent(zreg_nick),function(data) {
$("#newchannel-nickname").val(data);
zFormError("#newchannel-nickname-feedback",data.error);
+ $("#nick-spinner").spin(false);
});
});
diff --git a/view/js/mod_photos.js b/view/js/mod_photos.js
index aaa86df40..8b7706f16 100644
--- a/view/js/mod_photos.js
+++ b/view/js/mod_photos.js
@@ -13,6 +13,19 @@ $(document).ready(function() {
'transition' : 'elastic'
});
+ var a;
+ a = $("#photo-edit-newtag").autocomplete({
+ serviceUrl: baseurl + '/acl',
+ minChars: 2,
+ width: 250,
+ id: 'newtag-ac',
+ onSelect: function(value,data) {
+ $("#photo-edit-newtag").val(data);
+ },
+ });
+ a.setOptions({ params: { type: 'p' }});
+
+
$('#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 77c9d0ced..87c8c3a2b 100644
--- a/view/js/mod_settings.js
+++ b/view/js/mod_settings.js
@@ -3,10 +3,18 @@ var ispublic = aStr['everybody'] ;
$(document).ready(function() {
- $("a#settings-default-perms-menu").colorbox({
- 'inline' : true,
- 'transition' : 'elastic'
- });
+ $("a#settings-default-perms-menu").colorbox({
+ 'inline' : true,
+ 'transition' : 'elastic'
+ });
+
+ $("#privacy-role-select").change(function() {
+ var role = $("#privacy-role-select").val();
+ if(role == 'custom')
+ $('#advanced-perm').show();
+ else
+ $('#advanced-perm').hide();
+ });
$('#contact_allow, #contact_deny, #group_allow, #group_deny').change(function() {
var selstr;
diff --git a/view/nb-no/follow_notify_eml.tpl b/view/nb-no/follow_notify_eml.tpl
deleted file mode 100644
index ba07b19da..000000000
--- a/view/nb-no/follow_notify_eml.tpl
+++ /dev/null
@@ -1,14 +0,0 @@
-
-Dear {{$myname}},
-
-You have a new follower at {{$sitename}} - '{{$requestor}}'.
-
-You may visit their profile at {{$url}}.
-
-Please login to your site to approve or ignore/cancel the request.
-
-{{$siteurl}}
-
-Regards,
-
- {{$sitename}} administrator
diff --git a/view/nb-no/friend_complete_eml.tpl b/view/nb-no/friend_complete_eml.tpl
deleted file mode 100644
index 1c647b994..000000000
--- a/view/nb-no/friend_complete_eml.tpl
+++ /dev/null
@@ -1,22 +0,0 @@
-
-Dear {{$username}},
-
- Great news... '{{$fn}}' at '{{$dfrn_url}}' has accepted
-your connection request at '{{$sitename}}'.
-
-You are now mutual friends and may exchange status updates, photos, and email
-without restriction.
-
-Please visit your 'Connnections' page at {{$sitename}} if you wish to make
-any changes to this relationship.
-
-{{$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}}'].
-
-Sincerely,
-
- {{$sitename}} Administrator
-
-
diff --git a/view/nb-no/intro_complete_eml.tpl b/view/nb-no/intro_complete_eml.tpl
deleted file mode 100644
index 2c2428d68..000000000
--- a/view/nb-no/intro_complete_eml.tpl
+++ /dev/null
@@ -1,22 +0,0 @@
-
-Dear {{$username}},
-
- '{{$fn}}' at '{{$dfrn_url}}' has accepted
-your connection request at '{{$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}}' may choose to extend this into a two-way or more permissive
-relationship in the future.
-
- You will start receiving public status updates from '{{$fn}}',
-which will appear on your 'Matrix' page at
-
-{{$siteurl}}
-
-Sincerely,
-
- {{$sitename}} Administrator
diff --git a/view/nb-no/messages.po b/view/nb-no/messages.po
index d5d325345..a2f67253f 100644
--- a/view/nb-no/messages.po
+++ b/view/nb-no/messages.po
@@ -8,8 +8,8 @@ msgid ""
msgstr ""
"Project-Id-Version: Red Matrix\n"
"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2014-06-20 00:03-0700\n"
-"PO-Revision-Date: 2014-06-22 12:27+0000\n"
+"POT-Creation-Date: 2014-11-14 00:04-0800\n"
+"PO-Revision-Date: 2014-11-22 11:05+0000\n"
"Last-Translator: Haakon Meland Eriksen <haakon.eriksen@far.no>\n"
"Language-Team: Norwegian Bokmål (Norway) (http://www.transifex.com/projects/p/red-matrix/language/nb_NO/)\n"
"MIME-Version: 1.0\n"
@@ -18,1252 +18,1131 @@ msgstr ""
"Language: nb_NO\n"
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
-#: ../../include/dba/dba_driver.php:50
+#: ../../include/dba/dba_driver.php:132
#, php-format
msgid "Cannot locate DNS info for database server '%s'"
msgstr "Kan ikke finne DNS-informasjon om databasetjener '%s'"
-#: ../../include/photo/photo_driver.php:643 ../../include/photos.php:51
+#: ../../include/photo/photo_driver.php:680 ../../include/photos.php:52
+#: ../../mod/photos.php:91 ../../mod/photos.php:654
#: ../../mod/profile_photo.php:142 ../../mod/profile_photo.php:301
-#: ../../mod/profile_photo.php:421 ../../mod/photos.php:91
-#: ../../mod/photos.php:653 ../../mod/photos.php:675
+#: ../../mod/profile_photo.php:423
msgid "Profile Photos"
msgstr "Profilbilder"
-#: ../../include/bbcode.php:128 ../../include/bbcode.php:648
-#: ../../include/bbcode.php:651 ../../include/bbcode.php:656
-#: ../../include/bbcode.php:659 ../../include/bbcode.php:662
-#: ../../include/bbcode.php:665 ../../include/bbcode.php:670
-#: ../../include/bbcode.php:673 ../../include/bbcode.php:678
-#: ../../include/bbcode.php:681 ../../include/bbcode.php:684
-#: ../../include/bbcode.php:687
-msgid "Image/photo"
-msgstr "Bilde/fotografi"
-
-#: ../../include/bbcode.php:163 ../../include/bbcode.php:698
-msgid "Encrypted content"
-msgstr "Kryptert innhold"
-
-#: ../../include/bbcode.php:179
-msgid "QR code"
-msgstr "QR-kode"
-
-#: ../../include/bbcode.php:228
-#, php-format
-msgid "%1$s wrote the following %2$s %3$s"
-msgstr "%1$s skrev følgende %2$s %3$s"
-
-#: ../../include/bbcode.php:230
-msgid "post"
-msgstr "innlegg"
-
-#: ../../include/bbcode.php:616 ../../include/bbcode.php:636
-msgid "$1 wrote:"
-msgstr "$1 skrev:"
-
-#: ../../include/oembed.php:171
-msgid "Embedded content"
-msgstr "Innebygget innhold"
-
-#: ../../include/oembed.php:180
-msgid "Embedding disabled"
-msgstr "Innbygging avskrudd"
-
-#: ../../include/notify.php:23
-msgid "created a new post"
-msgstr "laget et nytt innlegg"
-
-#: ../../include/notify.php:24
-#, php-format
-msgid "commented on %s's post"
-msgstr "kommenterte på %s sitt innlegg"
-
-#: ../../include/conversation.php:117 ../../include/text.php:1705
-#: ../../mod/subthread.php:72 ../../mod/subthread.php:174
-#: ../../mod/tagger.php:45 ../../mod/like.php:111
+#: ../../include/conversation.php:120 ../../include/diaspora.php:1923
+#: ../../include/text.php:1747 ../../mod/subthread.php:72
+#: ../../mod/subthread.php:174 ../../mod/tagger.php:45 ../../mod/like.php:298
msgid "photo"
msgstr "foto"
-#: ../../include/conversation.php:120 ../../include/text.php:1708
+#: ../../include/conversation.php:123 ../../include/text.php:1750
#: ../../mod/tagger.php:49
msgid "event"
msgstr "hendelse"
-#: ../../include/conversation.php:123
+#: ../../include/conversation.php:126 ../../mod/like.php:89
msgid "channel"
msgstr "kanal"
-#: ../../include/conversation.php:145 ../../include/text.php:1711
-#: ../../mod/subthread.php:72 ../../mod/subthread.php:174
-#: ../../mod/tagger.php:53 ../../mod/like.php:111
+#: ../../include/conversation.php:148 ../../include/diaspora.php:1923
+#: ../../include/text.php:1753 ../../mod/subthread.php:72
+#: ../../mod/subthread.php:174 ../../mod/tagger.php:53 ../../mod/like.php:298
msgid "status"
msgstr "status"
-#: ../../include/conversation.php:147 ../../include/text.php:1713
+#: ../../include/conversation.php:150 ../../include/text.php:1755
#: ../../mod/tagger.php:55
msgid "comment"
msgstr "kommentar"
-#: ../../include/conversation.php:161 ../../mod/like.php:142
+#: ../../include/conversation.php:164 ../../include/diaspora.php:1952
+#: ../../mod/like.php:344
#, php-format
msgid "%1$s likes %2$s's %3$s"
msgstr "%1$s liker %2$s sin %3$s"
-#: ../../include/conversation.php:164 ../../mod/like.php:144
+#: ../../include/conversation.php:167 ../../mod/like.php:346
#, php-format
msgid "%1$s doesn't like %2$s's %3$s"
msgstr "%1$s liker ikke %2$s sin %3$s"
-#: ../../include/conversation.php:201
+#: ../../include/conversation.php:204
#, php-format
msgid "%1$s is now connected with %2$s"
msgstr "%1$s er nå forbundet med %2$s"
-#: ../../include/conversation.php:236
+#: ../../include/conversation.php:239
#, php-format
msgid "%1$s poked %2$s"
msgstr "%1$s prikket %2$s"
-#: ../../include/conversation.php:240 ../../include/text.php:895
+#: ../../include/conversation.php:243 ../../include/text.php:905
msgid "poked"
msgstr "prikket"
-#: ../../include/conversation.php:258 ../../mod/mood.php:63
+#: ../../include/conversation.php:261 ../../mod/mood.php:63
#, php-format
msgctxt "mood"
msgid "%1$s is %2$s"
msgstr "%1$s er %2$s"
-#: ../../include/conversation.php:631 ../../include/ItemObject.php:114
+#: ../../include/conversation.php:637 ../../include/ItemObject.php:126
msgid "Select"
msgstr "Velg"
-#: ../../include/conversation.php:632 ../../include/apps.php:232
-#: ../../include/ItemObject.php:108 ../../mod/settings.php:578
-#: ../../mod/connedit.php:398 ../../mod/filestorage.php:175
-#: ../../mod/group.php:176 ../../mod/admin.php:758 ../../mod/admin.php:887
-#: ../../mod/thing.php:236 ../../mod/photos.php:1041
+#: ../../include/conversation.php:638 ../../include/RedDAV/RedBrowser.php:251
+#: ../../include/apps.php:250 ../../include/ItemObject.php:120
+#: ../../mod/photos.php:1069 ../../mod/connedit.php:476
+#: ../../mod/thing.php:234 ../../mod/settings.php:612 ../../mod/group.php:176
+#: ../../mod/admin.php:730 ../../mod/admin.php:861
msgid "Delete"
msgstr "Slett"
-#: ../../include/conversation.php:639 ../../include/ItemObject.php:89
-#: ../../mod/photos.php:844
+#: ../../include/conversation.php:645 ../../include/ItemObject.php:89
msgid "Private Message"
msgstr "Privat melding"
-#: ../../include/conversation.php:646 ../../include/ItemObject.php:182
-msgid "Message is verified"
-msgstr "Innlegg er bekreftet"
+#: ../../include/conversation.php:652 ../../include/ItemObject.php:194
+msgid "Message signature validated"
+msgstr "Innleggets signatur er bekreftet"
+
+#: ../../include/conversation.php:653 ../../include/ItemObject.php:195
+msgid "Message signature incorrect"
+msgstr "Innleggets signatur er feil"
-#: ../../include/conversation.php:666
+#: ../../include/conversation.php:674
#, php-format
msgid "View %s's profile @ %s"
msgstr "Vis %s sin profile @ %s"
-#: ../../include/conversation.php:680
+#: ../../include/conversation.php:689
msgid "Categories:"
msgstr "Kategorier:"
-#: ../../include/conversation.php:681
+#: ../../include/conversation.php:690
msgid "Filed under:"
msgstr "Sortert under:"
-#: ../../include/conversation.php:690 ../../include/ItemObject.php:250
+#: ../../include/conversation.php:698 ../../include/ItemObject.php:265
#, php-format
msgid " from %s"
msgstr "fra %s"
-#: ../../include/conversation.php:693 ../../include/ItemObject.php:253
+#: ../../include/conversation.php:701 ../../include/ItemObject.php:268
#, php-format
msgid "last edited: %s"
msgstr "sist endret: %s"
-#: ../../include/conversation.php:694 ../../include/ItemObject.php:254
+#: ../../include/conversation.php:702 ../../include/ItemObject.php:269
#, php-format
msgid "Expires: %s"
msgstr "Utløper: %s"
-#: ../../include/conversation.php:709
+#: ../../include/conversation.php:717
msgid "View in context"
msgstr "Vis i sammenheng"
-#: ../../include/conversation.php:711 ../../include/conversation.php:1127
-#: ../../include/ItemObject.php:294 ../../mod/editblock.php:120
-#: ../../mod/editlayout.php:115 ../../mod/editpost.php:121
-#: ../../mod/editwebpage.php:152 ../../mod/mail.php:222 ../../mod/mail.php:336
-#: ../../mod/photos.php:972
+#: ../../include/conversation.php:719 ../../include/conversation.php:1153
+#: ../../include/ItemObject.php:310 ../../mod/photos.php:977
+#: ../../mod/editblock.php:152 ../../mod/editlayout.php:148
+#: ../../mod/editpost.php:121 ../../mod/editwebpage.php:183
+#: ../../mod/mail.php:234 ../../mod/mail.php:349
msgid "Please wait"
msgstr "Vennligst vent"
-#: ../../include/conversation.php:838
+#: ../../include/conversation.php:843
msgid "remove"
msgstr "fjern"
-#: ../../include/conversation.php:842
+#: ../../include/conversation.php:847 ../../include/nav.php:257
msgid "Loading..."
msgstr "Laster..."
-#: ../../include/conversation.php:843
+#: ../../include/conversation.php:848
msgid "Delete Selected Items"
msgstr "Slett valgte elementer"
-#: ../../include/conversation.php:934
+#: ../../include/conversation.php:942
msgid "View Source"
msgstr "Vis kilde"
-#: ../../include/conversation.php:935
+#: ../../include/conversation.php:943
msgid "Follow Thread"
msgstr "Følg tråd"
-#: ../../include/conversation.php:936
+#: ../../include/conversation.php:944
msgid "View Status"
msgstr "Vis status"
-#: ../../include/conversation.php:937 ../../include/nav.php:81
-#: ../../mod/connedit.php:351 ../../mod/connedit.php:465
+#: ../../include/conversation.php:945 ../../include/nav.php:99
+#: ../../mod/connedit.php:429 ../../mod/connedit.php:544
msgid "View Profile"
msgstr "Vis profil"
-#: ../../include/conversation.php:938
+#: ../../include/conversation.php:946
msgid "View Photos"
msgstr "Vis bilder"
-#: ../../include/conversation.php:939
+#: ../../include/conversation.php:947
msgid "Matrix Activity"
msgstr "Matrix-aktivitet"
-#: ../../include/conversation.php:940
+#: ../../include/conversation.php:948 ../../include/widgets.php:135
+#: ../../include/widgets.php:175 ../../include/Contact.php:107
+#: ../../include/identity.php:840 ../../mod/directory.php:224
+#: ../../mod/suggest.php:51 ../../mod/match.php:62
+msgid "Connect"
+msgstr "Koble"
+
+#: ../../include/conversation.php:949
msgid "Edit Contact"
msgstr "Endre kontakt"
-#: ../../include/conversation.php:941
+#: ../../include/conversation.php:950
msgid "Send PM"
msgstr "Send privat melding"
-#: ../../include/conversation.php:942 ../../include/apps.php:135
+#: ../../include/conversation.php:951 ../../include/apps.php:143
msgid "Poke"
msgstr "Prikk"
-#: ../../include/conversation.php:998
+#: ../../include/conversation.php:1003 ../../include/RedDAV/RedBrowser.php:163
+#: ../../include/apps.php:331 ../../include/apps.php:382
+#: ../../mod/photos.php:713 ../../mod/photos.php:1131
+#: ../../mod/connedit.php:512
+msgid "Unknown"
+msgstr "Ukjent"
+
+#: ../../include/conversation.php:1024
#, php-format
msgid "%s likes this."
msgstr "%s liker dette."
-#: ../../include/conversation.php:998
+#: ../../include/conversation.php:1024
#, php-format
msgid "%s doesn't like this."
msgstr "%s liker ikke dette."
-#: ../../include/conversation.php:1002
+#: ../../include/conversation.php:1028
#, 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> liker dette."
msgstr[1] "<span %1$s>%2$d personer</span> liker dette."
-#: ../../include/conversation.php:1004
+#: ../../include/conversation.php:1030
#, 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> liker ikke dette."
msgstr[1] "<span %1$s>%2$d personer</span> liker ikke dette."
-#: ../../include/conversation.php:1010
+#: ../../include/conversation.php:1036
msgid "and"
msgstr "og"
-#: ../../include/conversation.php:1013
+#: ../../include/conversation.php:1039
#, php-format
msgid ", and %d other people"
msgid_plural ", and %d other people"
msgstr[0] ", og %d annen person"
msgstr[1] ", og %d andre personer"
-#: ../../include/conversation.php:1014
+#: ../../include/conversation.php:1040
#, php-format
msgid "%s like this."
msgstr "%s liker dette."
-#: ../../include/conversation.php:1014
+#: ../../include/conversation.php:1040
#, php-format
msgid "%s don't like this."
msgstr "%s liker ikke dette."
-#: ../../include/conversation.php:1071
+#: ../../include/conversation.php:1097
msgid "Visible to <strong>everybody</strong>"
msgstr "Synlig for <strong>alle</strong>"
-#: ../../include/conversation.php:1072 ../../mod/mail.php:171
-#: ../../mod/mail.php:269
+#: ../../include/conversation.php:1098 ../../mod/mail.php:170
+#: ../../mod/mail.php:282
msgid "Please enter a link URL:"
msgstr "Vennligst skriv inn en lenke URL:"
-#: ../../include/conversation.php:1073
+#: ../../include/conversation.php:1099
msgid "Please enter a video link/URL:"
msgstr "Vennligst skriv en videolenke/URL:"
-#: ../../include/conversation.php:1074
+#: ../../include/conversation.php:1100
msgid "Please enter an audio link/URL:"
msgstr "Vennligst skriv en lydlenke/URL:"
-#: ../../include/conversation.php:1075
+#: ../../include/conversation.php:1101
msgid "Tag term:"
msgstr "Merkelapp:"
-#: ../../include/conversation.php:1076 ../../mod/filer.php:49
+#: ../../include/conversation.php:1102 ../../mod/filer.php:49
msgid "Save to Folder:"
msgstr "Lagre til mappe:"
-#: ../../include/conversation.php:1077
+#: ../../include/conversation.php:1103
msgid "Where are you right now?"
msgstr "Hvor er du akkurat nå?"
-#: ../../include/conversation.php:1078 ../../mod/editpost.php:52
-#: ../../mod/mail.php:172 ../../mod/mail.php:270
+#: ../../include/conversation.php:1104 ../../mod/editpost.php:52
+#: ../../mod/mail.php:171 ../../mod/mail.php:283
msgid "Expires YYYY-MM-DD HH:MM"
msgstr "Utløper YYYY-MM-DD HH:MM"
-#: ../../include/conversation.php:1088 ../../include/page_widgets.php:40
-#: ../../include/ItemObject.php:592 ../../mod/editblock.php:141
-#: ../../mod/editlayout.php:135 ../../mod/editpost.php:140
-#: ../../mod/editwebpage.php:174 ../../mod/webpages.php:124
-#: ../../mod/photos.php:992
+#: ../../include/conversation.php:1114 ../../include/page_widgets.php:40
+#: ../../include/ItemObject.php:608 ../../mod/photos.php:997
+#: ../../mod/webpages.php:166 ../../mod/editblock.php:173
+#: ../../mod/editlayout.php:168 ../../mod/editpost.php:140
+#: ../../mod/editwebpage.php:205
msgid "Preview"
msgstr "Forhåndsvisning"
-#: ../../include/conversation.php:1102 ../../mod/layouts.php:113
-#: ../../mod/photos.php:971
+#: ../../include/conversation.php:1128 ../../mod/photos.php:976
+#: ../../mod/editblock.php:198 ../../mod/editlayout.php:193
+#: ../../mod/editwebpage.php:230 ../../mod/layouts.php:168
msgid "Share"
msgstr "Del"
-#: ../../include/conversation.php:1104 ../../mod/editwebpage.php:139
+#: ../../include/conversation.php:1130 ../../mod/editwebpage.php:170
msgid "Page link title"
msgstr "Sidens lenketittel"
-#: ../../include/conversation.php:1107
+#: ../../include/conversation.php:1133
msgid "Post as"
msgstr "Lag innlegg som"
-#: ../../include/conversation.php:1108 ../../mod/editblock.php:112
-#: ../../mod/editlayout.php:107 ../../mod/editpost.php:113
-#: ../../mod/editwebpage.php:144 ../../mod/mail.php:219 ../../mod/mail.php:332
+#: ../../include/conversation.php:1134 ../../mod/editblock.php:144
+#: ../../mod/editlayout.php:140 ../../mod/editpost.php:113
+#: ../../mod/editwebpage.php:175 ../../mod/mail.php:231 ../../mod/mail.php:345
msgid "Upload photo"
msgstr "Last opp bilde"
-#: ../../include/conversation.php:1109
+#: ../../include/conversation.php:1135
msgid "upload photo"
msgstr "last opp bilde"
-#: ../../include/conversation.php:1110 ../../mod/editblock.php:113
-#: ../../mod/editlayout.php:108 ../../mod/editpost.php:114
-#: ../../mod/editwebpage.php:145 ../../mod/mail.php:220 ../../mod/mail.php:333
+#: ../../include/conversation.php:1136 ../../mod/editblock.php:145
+#: ../../mod/editlayout.php:141 ../../mod/editpost.php:114
+#: ../../mod/editwebpage.php:176 ../../mod/mail.php:232 ../../mod/mail.php:346
msgid "Attach file"
msgstr "Legg ved fil"
-#: ../../include/conversation.php:1111
+#: ../../include/conversation.php:1137
msgid "attach file"
msgstr "legg ved fil"
-#: ../../include/conversation.php:1112 ../../mod/editblock.php:114
-#: ../../mod/editlayout.php:109 ../../mod/editpost.php:115
-#: ../../mod/editwebpage.php:146 ../../mod/mail.php:221 ../../mod/mail.php:334
+#: ../../include/conversation.php:1138 ../../mod/editblock.php:146
+#: ../../mod/editlayout.php:142 ../../mod/editpost.php:115
+#: ../../mod/editwebpage.php:177 ../../mod/mail.php:233 ../../mod/mail.php:347
msgid "Insert web link"
msgstr "Sett inn web-lenke"
-#: ../../include/conversation.php:1113
+#: ../../include/conversation.php:1139
msgid "web link"
msgstr "web-lenke"
-#: ../../include/conversation.php:1114
+#: ../../include/conversation.php:1140
msgid "Insert video link"
msgstr "Sett inn videolenke"
-#: ../../include/conversation.php:1115
+#: ../../include/conversation.php:1141
msgid "video link"
msgstr "videolenke"
-#: ../../include/conversation.php:1116
+#: ../../include/conversation.php:1142
msgid "Insert audio link"
msgstr "Sett inn lenke til lyd"
-#: ../../include/conversation.php:1117
+#: ../../include/conversation.php:1143
msgid "audio link"
msgstr "lenke til lyd"
-#: ../../include/conversation.php:1118 ../../mod/editblock.php:118
-#: ../../mod/editlayout.php:113 ../../mod/editpost.php:119
-#: ../../mod/editwebpage.php:150
+#: ../../include/conversation.php:1144 ../../mod/editblock.php:150
+#: ../../mod/editlayout.php:146 ../../mod/editpost.php:119
+#: ../../mod/editwebpage.php:181
msgid "Set your location"
msgstr "Angi din plassering"
-#: ../../include/conversation.php:1119
+#: ../../include/conversation.php:1145
msgid "set location"
msgstr "angi plassering"
-#: ../../include/conversation.php:1120 ../../mod/editblock.php:119
-#: ../../mod/editlayout.php:114 ../../mod/editpost.php:120
-#: ../../mod/editwebpage.php:151
+#: ../../include/conversation.php:1146 ../../mod/editblock.php:151
+#: ../../mod/editlayout.php:147 ../../mod/editpost.php:120
+#: ../../mod/editwebpage.php:182
msgid "Clear browser location"
msgstr "Fjern nettleserplassering"
-#: ../../include/conversation.php:1121
+#: ../../include/conversation.php:1147
msgid "clear location"
msgstr "fjern plassering"
-#: ../../include/conversation.php:1123 ../../mod/editblock.php:132
-#: ../../mod/editlayout.php:126 ../../mod/editpost.php:132
-#: ../../mod/editwebpage.php:167
+#: ../../include/conversation.php:1149 ../../mod/editblock.php:164
+#: ../../mod/editlayout.php:159 ../../mod/editpost.php:132
+#: ../../mod/editwebpage.php:198
msgid "Set title"
msgstr "Angi tittel"
-#: ../../include/conversation.php:1126 ../../mod/editblock.php:135
-#: ../../mod/editlayout.php:129 ../../mod/editpost.php:134
-#: ../../mod/editwebpage.php:169
+#: ../../include/conversation.php:1152 ../../mod/events.php:563
+#: ../../mod/editblock.php:167 ../../mod/editlayout.php:162
+#: ../../mod/editpost.php:134 ../../mod/editwebpage.php:200
msgid "Categories (comma-separated list)"
msgstr "Kategorier (kommaseparert liste)"
-#: ../../include/conversation.php:1128 ../../mod/editblock.php:121
-#: ../../mod/editlayout.php:116 ../../mod/editpost.php:122
-#: ../../mod/editwebpage.php:153
+#: ../../include/conversation.php:1154 ../../mod/editblock.php:153
+#: ../../mod/editlayout.php:149 ../../mod/editpost.php:122
+#: ../../mod/editwebpage.php:184
msgid "Permission settings"
msgstr "Tillatelser - innstillinger"
-#: ../../include/conversation.php:1129
+#: ../../include/conversation.php:1155
msgid "permissions"
msgstr "tillatelser"
-#: ../../include/conversation.php:1136 ../../mod/editblock.php:129
-#: ../../mod/editlayout.php:123 ../../mod/editpost.php:129
-#: ../../mod/editwebpage.php:162
+#: ../../include/conversation.php:1162 ../../mod/editblock.php:161
+#: ../../mod/editlayout.php:156 ../../mod/editpost.php:129
+#: ../../mod/editwebpage.php:193
msgid "Public post"
msgstr "Offentlig innlegg"
-#: ../../include/conversation.php:1138 ../../mod/editblock.php:136
-#: ../../mod/editlayout.php:130 ../../mod/editpost.php:135
-#: ../../mod/editwebpage.php:170
+#: ../../include/conversation.php:1164 ../../mod/editblock.php:168
+#: ../../mod/editlayout.php:163 ../../mod/editpost.php:135
+#: ../../mod/editwebpage.php:201
msgid "Example: bob@example.com, mary@example.com"
msgstr "Eksempel: ola@eksempel.no, kari@eksempel.no"
-#: ../../include/conversation.php:1151 ../../mod/editblock.php:146
-#: ../../mod/editlayout.php:140 ../../mod/editpost.php:146
-#: ../../mod/editwebpage.php:179 ../../mod/mail.php:226 ../../mod/mail.php:339
+#: ../../include/conversation.php:1177 ../../mod/editblock.php:178
+#: ../../mod/editlayout.php:173 ../../mod/editpost.php:146
+#: ../../mod/editwebpage.php:210 ../../mod/mail.php:238 ../../mod/mail.php:352
msgid "Set expiration date"
msgstr "Angi utløpsdato"
-#: ../../include/conversation.php:1153 ../../include/ItemObject.php:595
-#: ../../mod/editpost.php:148 ../../mod/mail.php:228 ../../mod/mail.php:341
+#: ../../include/conversation.php:1179 ../../include/ItemObject.php:611
+#: ../../mod/editpost.php:148 ../../mod/mail.php:240 ../../mod/mail.php:354
msgid "Encrypt text"
msgstr "Krypter tekst"
-#: ../../include/conversation.php:1155 ../../mod/editpost.php:150
+#: ../../include/conversation.php:1181 ../../mod/events.php:569
+#: ../../mod/editpost.php:150
msgid "OK"
msgstr "OK"
-#: ../../include/conversation.php:1156 ../../mod/settings.php:516
-#: ../../mod/settings.php:542 ../../mod/editpost.php:151
-#: ../../mod/fbrowser.php:82 ../../mod/fbrowser.php:117 ../../mod/tagrm.php:11
-#: ../../mod/tagrm.php:94
+#: ../../include/conversation.php:1182 ../../mod/events.php:568
+#: ../../mod/editpost.php:151 ../../mod/settings.php:550
+#: ../../mod/settings.php:576 ../../mod/fbrowser.php:82
+#: ../../mod/fbrowser.php:117 ../../mod/tagrm.php:11 ../../mod/tagrm.php:134
msgid "Cancel"
msgstr "Avbryt"
-#: ../../include/conversation.php:1398
+#: ../../include/conversation.php:1426
msgid "Discover"
msgstr "Oppdage"
-#: ../../include/conversation.php:1401
+#: ../../include/conversation.php:1429
msgid "Imported public streams"
msgstr "Importerte offentlige strømmer"
-#: ../../include/conversation.php:1406
+#: ../../include/conversation.php:1434
msgid "Commented Order"
msgstr "Kommentert"
-#: ../../include/conversation.php:1409
+#: ../../include/conversation.php:1437
msgid "Sort by Comment Date"
msgstr "Sorter etter kommentert dato"
-#: ../../include/conversation.php:1413
+#: ../../include/conversation.php:1441
msgid "Posted Order"
msgstr "Lagt inn"
-#: ../../include/conversation.php:1416
+#: ../../include/conversation.php:1444
msgid "Sort by Post Date"
msgstr "Sorter etter innleggsdato"
-#: ../../include/conversation.php:1421 ../../include/widgets.php:82
+#: ../../include/conversation.php:1449 ../../include/widgets.php:89
msgid "Personal"
msgstr "Personlig"
-#: ../../include/conversation.php:1424
+#: ../../include/conversation.php:1452
msgid "Posts that mention or involve you"
msgstr "Innlegg som nevner eller involverer deg"
-#: ../../include/conversation.php:1430 ../../mod/connections.php:211
-#: ../../mod/connections.php:224 ../../mod/menu.php:61
+#: ../../include/conversation.php:1458 ../../mod/connections.php:211
+#: ../../mod/connections.php:224 ../../mod/menu.php:80
msgid "New"
msgstr "Nye"
-#: ../../include/conversation.php:1433
+#: ../../include/conversation.php:1461
msgid "Activity Stream - by date"
msgstr "Aktivitetsstrøm - etter dato"
-#: ../../include/conversation.php:1439
+#: ../../include/conversation.php:1467
msgid "Starred"
msgstr "Stjerne"
-#: ../../include/conversation.php:1442
+#: ../../include/conversation.php:1470
msgid "Favourite Posts"
msgstr "Favorittinnlegg"
-#: ../../include/conversation.php:1449
+#: ../../include/conversation.php:1477
msgid "Spam"
msgstr "Søppel"
-#: ../../include/conversation.php:1452
+#: ../../include/conversation.php:1480
msgid "Posts flagged as SPAM"
msgstr "Innlegg merket som SØPPEL"
-#: ../../include/conversation.php:1486 ../../mod/admin.php:891
+#: ../../include/conversation.php:1520 ../../mod/admin.php:865
msgid "Channel"
msgstr "Kanal"
-#: ../../include/conversation.php:1489
+#: ../../include/conversation.php:1523
msgid "Status Messages and Posts"
msgstr "Statusmeldinger og -innlegg"
-#: ../../include/conversation.php:1498
+#: ../../include/conversation.php:1532
msgid "About"
msgstr "Om"
-#: ../../include/conversation.php:1501
+#: ../../include/conversation.php:1535
msgid "Profile Details"
msgstr "Profildetaljer"
-#: ../../include/conversation.php:1507 ../../include/nav.php:84
-#: ../../include/apps.php:129 ../../mod/fbrowser.php:25
+#: ../../include/conversation.php:1541 ../../include/nav.php:105
+#: ../../include/apps.php:137 ../../mod/fbrowser.php:25
msgid "Photos"
msgstr "Bilder"
-#: ../../include/conversation.php:1510 ../../include/photos.php:313
+#: ../../include/conversation.php:1544 ../../include/photos.php:341
msgid "Photo Albums"
msgstr "Fotoalbum"
-#: ../../include/conversation.php:1516 ../../include/nav.php:85
-#: ../../include/apps.php:125 ../../mod/fbrowser.php:114
+#: ../../include/conversation.php:1550 ../../include/RedDAV/RedBrowser.php:241
+#: ../../include/nav.php:106 ../../include/apps.php:133
+#: ../../mod/fbrowser.php:114
msgid "Files"
msgstr "Filer"
-#: ../../include/conversation.php:1519
+#: ../../include/conversation.php:1553
msgid "Files and Storage"
msgstr "Filer og lagring"
-#: ../../include/conversation.php:1528 ../../include/conversation.php:1531
+#: ../../include/conversation.php:1563 ../../include/conversation.php:1566
msgid "Chatrooms"
msgstr "Chatrom"
-#: ../../include/conversation.php:1538 ../../include/nav.php:93
-#: ../../include/apps.php:119
+#: ../../include/conversation.php:1576 ../../include/nav.php:117
+#: ../../include/apps.php:127
msgid "Bookmarks"
msgstr "Bokmerker"
-#: ../../include/conversation.php:1541
+#: ../../include/conversation.php:1579
msgid "Saved Bookmarks"
msgstr "Lagrede bokmerker"
-#: ../../include/conversation.php:1549 ../../include/nav.php:95
-#: ../../include/apps.php:126 ../../mod/webpages.php:79
+#: ../../include/conversation.php:1587 ../../include/nav.php:121
+#: ../../include/apps.php:134 ../../mod/webpages.php:160
msgid "Webpages"
msgstr "Websider"
-#: ../../include/conversation.php:1552
+#: ../../include/conversation.php:1590
msgid "Manage Webpages"
msgstr "HÃ¥ndtere websider"
+#: ../../include/notify.php:23
+msgid "created a new post"
+msgstr "laget et nytt innlegg"
+
+#: ../../include/notify.php:24
+#, php-format
+msgid "commented on %s's post"
+msgstr "kommenterte på %s sitt innlegg"
+
+#: ../../include/dir_fns.php:56
+msgid "Sort Options"
+msgstr "Sorteringsmuligheter"
+
+#: ../../include/dir_fns.php:57
+msgid "Alphabetic"
+msgstr "Alfabetisk"
+
+#: ../../include/dir_fns.php:58
+msgid "Reverse Alphabetic"
+msgstr "Omvendt alfabetisk"
+
+#: ../../include/dir_fns.php:59
+msgid "Newest to Oldest"
+msgstr "Nyest til eldst"
+
+#: ../../include/dir_fns.php:71
+msgid "Enable Safe Search"
+msgstr "Skru på Trygt søk"
+
+#: ../../include/dir_fns.php:73
+msgid "Disable Safe Search"
+msgstr "Skru av Trygt søk"
+
+#: ../../include/dir_fns.php:75
+msgid "Safe Mode"
+msgstr "Trygt modus"
+
#: ../../include/page_widgets.php:6
msgid "New Page"
msgstr "Ny side"
#: ../../include/page_widgets.php:8 ../../include/page_widgets.php:36
-#: ../../include/apps.php:231 ../../include/menu.php:42
-#: ../../include/ItemObject.php:96 ../../mod/settings.php:577
-#: ../../mod/blocks.php:94 ../../mod/connections.php:393
-#: ../../mod/editblock.php:111 ../../mod/editlayout.php:106
-#: ../../mod/editpost.php:112 ../../mod/editwebpage.php:143
-#: ../../mod/filestorage.php:174 ../../mod/thing.php:235
-#: ../../mod/layouts.php:112 ../../mod/menu.php:59 ../../mod/webpages.php:120
+#: ../../include/RedDAV/RedBrowser.php:250 ../../include/menu.php:42
+#: ../../include/apps.php:249 ../../include/ItemObject.php:100
+#: ../../mod/blocks.php:132 ../../mod/connections.php:381
+#: ../../mod/connections.php:394 ../../mod/connections.php:413
+#: ../../mod/thing.php:233 ../../mod/webpages.php:162
+#: ../../mod/editblock.php:143 ../../mod/editlayout.php:139
+#: ../../mod/editpost.php:112 ../../mod/settings.php:611
+#: ../../mod/editwebpage.php:174 ../../mod/layouts.php:167
+#: ../../mod/menu.php:78
msgid "Edit"
msgstr "Endre"
-#: ../../include/page_widgets.php:39 ../../mod/blocks.php:97
-#: ../../mod/layouts.php:116 ../../mod/webpages.php:123
+#: ../../include/page_widgets.php:39 ../../mod/blocks.php:135
+#: ../../mod/webpages.php:165 ../../mod/layouts.php:171
msgid "View"
msgstr "Vis"
-#: ../../include/page_widgets.php:41 ../../mod/webpages.php:125
+#: ../../include/page_widgets.php:41 ../../mod/webpages.php:167
msgid "Actions"
msgstr "Handlinger"
-#: ../../include/page_widgets.php:42 ../../mod/webpages.php:126
+#: ../../include/page_widgets.php:42 ../../mod/webpages.php:168
msgid "Page Link"
msgstr "Sidelenke"
-#: ../../include/page_widgets.php:43 ../../mod/webpages.php:127
+#: ../../include/page_widgets.php:43 ../../mod/webpages.php:169
msgid "Title"
msgstr "Tittel"
-#: ../../include/page_widgets.php:44 ../../mod/webpages.php:128
+#: ../../include/page_widgets.php:44 ../../mod/webpages.php:170
msgid "Created"
msgstr "Laget"
-#: ../../include/page_widgets.php:45 ../../mod/webpages.php:129
+#: ../../include/page_widgets.php:45 ../../mod/webpages.php:171
msgid "Edited"
msgstr "Endret"
-#: ../../include/security.php:301
-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 "Skjemaets sikkerhetspollett var ikke gyldig. Dette skjedde antakelig fordi skjemaet har vært åpnet for lenge (>3 timer) før det ble sendt inn."
-
-#: ../../include/account.php:23
-msgid "Not a valid email address"
-msgstr "Ikke en gyldig e-postadresse"
-
-#: ../../include/account.php:25
-msgid "Your email domain is not among those allowed on this site"
-msgstr "Ditt e-postdomene er ikke blant de som er tillatt på dette stedet"
-
-#: ../../include/account.php:31
-msgid "Your email address is already registered at this site."
-msgstr "Din e-postadresse er allerede registrert på dette nettstedet."
-
-#: ../../include/account.php:64
-msgid "An invitation is required."
-msgstr "En invitasjon er påkrevd."
-
-#: ../../include/account.php:68
-msgid "Invitation could not be verified."
-msgstr "Invitasjon kunne ikke bekreftes."
-
-#: ../../include/account.php:119
-msgid "Please enter the required information."
-msgstr "Vennligst skriv inn nødvendig informasjon."
-
-#: ../../include/account.php:187
-msgid "Failed to store account information."
-msgstr "Mislyktes med å lagre kontoinformasjon."
-
-#: ../../include/account.php:273
-#, php-format
-msgid "Registration request at %s"
-msgstr "Registreringsforespørsel hos %s"
-
-#: ../../include/account.php:275 ../../include/account.php:302
-#: ../../include/account.php:359
-msgid "Administrator"
-msgstr "Administrator"
-
-#: ../../include/account.php:297
-msgid "your registration password"
-msgstr "ditt registreringspassord"
+#: ../../include/chat.php:10
+msgid "Missing room name"
+msgstr "Mangler romnavn"
-#: ../../include/account.php:300 ../../include/account.php:357
-#, php-format
-msgid "Registration details for %s"
-msgstr "Registreringsdetaljer for %s"
+#: ../../include/chat.php:19
+msgid "Duplicate room name"
+msgstr "Duplikat romnavn"
-#: ../../include/account.php:366
-msgid "Account approved."
-msgstr "Konto godkjent."
+#: ../../include/chat.php:68 ../../include/chat.php:76
+msgid "Invalid room specifier."
+msgstr "Ugyldig rom-spesifisering"
-#: ../../include/account.php:400
-#, php-format
-msgid "Registration revoked for %s"
-msgstr "Registrering trukket tilbake for %s"
+#: ../../include/chat.php:105
+msgid "Room not found."
+msgstr "Rommet ble ikke funnet."
-#: ../../include/photos.php:15 ../../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:116 ../../include/items.php:3679
-#: ../../mod/mood.php:112 ../../mod/mitem.php:73 ../../mod/achievements.php:27
-#: ../../mod/settings.php:492 ../../mod/poke.php:128 ../../mod/api.php:26
-#: ../../mod/api.php:31 ../../mod/authtest.php:13 ../../mod/profile.php:64
-#: ../../mod/profile.php:72 ../../mod/block.php:22 ../../mod/block.php:72
-#: ../../mod/profile_photo.php:263 ../../mod/profile_photo.php:276
-#: ../../mod/blocks.php:29 ../../mod/blocks.php:44 ../../mod/profiles.php:152
-#: ../../mod/profiles.php:462 ../../mod/bookmarks.php:46
+#: ../../include/chat.php:116 ../../include/items.php:4013
+#: ../../include/attach.php:116 ../../include/attach.php:163
+#: ../../include/attach.php:226 ../../include/attach.php:240
+#: ../../include/attach.php:280 ../../include/attach.php:294
+#: ../../include/attach.php:318 ../../include/attach.php:511
+#: ../../include/attach.php:584 ../../include/photos.php:15
+#: ../../mod/mood.php:112 ../../mod/mitem.php:106
+#: ../../mod/achievements.php:30 ../../mod/profiles.php:179
+#: ../../mod/profiles.php:550 ../../mod/setup.php:207 ../../mod/poke.php:128
+#: ../../mod/api.php:26 ../../mod/api.php:31 ../../mod/authtest.php:13
+#: ../../mod/profile.php:64 ../../mod/profile.php:72 ../../mod/block.php:22
+#: ../../mod/block.php:72 ../../mod/sources.php:66 ../../mod/blocks.php:67
+#: ../../mod/blocks.php:75 ../../mod/register.php:72 ../../mod/events.php:195
#: ../../mod/channel.php:89 ../../mod/channel.php:193
#: ../../mod/channel.php:236 ../../mod/chat.php:90 ../../mod/chat.php:95
-#: ../../mod/register.php:68 ../../mod/regmod.php:18 ../../mod/common.php:35
-#: ../../mod/network.php:12 ../../mod/connections.php:169
-#: ../../mod/connedit.php:221 ../../mod/delegate.php:6 ../../mod/page.php:30
-#: ../../mod/page.php:80 ../../mod/setup.php:203 ../../mod/editblock.php:34
-#: ../../mod/pdledit.php:21 ../../mod/editlayout.php:48
-#: ../../mod/editpost.php:13 ../../mod/editwebpage.php:44
-#: ../../mod/editwebpage.php:83 ../../mod/sources.php:66
-#: ../../mod/events.php:141 ../../mod/filestorage.php:10
-#: ../../mod/filestorage.php:59 ../../mod/filestorage.php:75
-#: ../../mod/filestorage.php:98 ../../mod/fsuggest.php:78
-#: ../../mod/suggest.php:26 ../../mod/group.php:9 ../../mod/thing.php:247
-#: ../../mod/thing.php:263 ../../mod/thing.php:298 ../../mod/invite.php:13
-#: ../../mod/invite.php:104 ../../mod/item.php:179 ../../mod/item.php:187
-#: ../../mod/item.php:894 ../../mod/layouts.php:27 ../../mod/layouts.php:39
+#: ../../mod/regmod.php:17 ../../mod/network.php:12 ../../mod/common.php:35
+#: ../../mod/photos.php:68 ../../mod/connections.php:169
+#: ../../mod/manage.php:6 ../../mod/connedit.php:266 ../../mod/thing.php:247
+#: ../../mod/thing.php:264 ../../mod/thing.php:299 ../../mod/webpages.php:67
+#: ../../mod/bookmarks.php:46 ../../mod/editblock.php:65
+#: ../../mod/pdledit.php:21 ../../mod/editlayout.php:64
+#: ../../mod/editlayout.php:89 ../../mod/editpost.php:13
+#: ../../mod/settings.php:526 ../../mod/editwebpage.php:64
+#: ../../mod/editwebpage.php:86 ../../mod/editwebpage.php:118
+#: ../../mod/profile_photo.php:263 ../../mod/profile_photo.php:276
+#: ../../mod/fsuggest.php:78 ../../mod/filestorage.php:18
+#: ../../mod/filestorage.php:67 ../../mod/filestorage.php:82
+#: ../../mod/filestorage.php:109 ../../mod/delegate.php:6
+#: ../../mod/group.php:9 ../../mod/suggest.php:26 ../../mod/item.php:191
+#: ../../mod/item.php:199 ../../mod/item.php:971 ../../mod/like.php:154
+#: ../../mod/invite.php:13 ../../mod/invite.php:104 ../../mod/locs.php:71
+#: ../../mod/layouts.php:67 ../../mod/layouts.php:74 ../../mod/layouts.php:85
#: ../../mod/viewconnections.php:22 ../../mod/viewconnections.php:27
-#: ../../mod/viewsrc.php:12 ../../mod/mail.php:108 ../../mod/manage.php:6
-#: ../../mod/menu.php:44 ../../mod/webpages.php:40 ../../mod/message.php:16
-#: ../../mod/new_channel.php:66 ../../mod/new_channel.php:97
-#: ../../mod/photos.php:68 ../../mod/photos.php:526
-#: ../../mod/notifications.php:66 ../../mod/appman.php:66 ../../index.php:186
-#: ../../index.php:361
+#: ../../mod/viewsrc.php:14 ../../mod/mail.php:111 ../../mod/menu.php:61
+#: ../../mod/message.php:16 ../../mod/new_channel.php:68
+#: ../../mod/new_channel.php:99 ../../mod/notifications.php:66
+#: ../../mod/page.php:28 ../../mod/page.php:78 ../../mod/appman.php:66
+#: ../../mod/service_limits.php:7 ../../index.php:190 ../../index.php:390
msgid "Permission denied."
msgstr "Tillatelse avslått."
-#: ../../include/photos.php:89
-#, php-format
-msgid "Image exceeds website size limit of %lu bytes"
-msgstr "Bilde overstiger nettstedets størrelsesbegrensning på %lu bytes"
-
-#: ../../include/photos.php:96
-msgid "Image file is empty."
-msgstr "Bildefilen er tom."
-
-#: ../../include/photos.php:123 ../../mod/profile_photo.php:216
-msgid "Unable to process image"
-msgstr "Kan ikke behandle bildet"
-
-#: ../../include/photos.php:186
-msgid "Photo storage failed."
-msgstr "Bildelagring mislyktes."
-
-#: ../../include/photos.php:317 ../../mod/photos.php:691
-#: ../../mod/photos.php:1188
-msgid "Upload New Photos"
-msgstr "Last opp nye bilder"
-
-#: ../../include/acl_selectors.php:240
-msgid "Visible to everybody"
-msgstr "Synlig for alle"
-
-#: ../../include/acl_selectors.php:241
-msgid "Show"
-msgstr "Vis"
-
-#: ../../include/acl_selectors.php:242
-msgid "Don't show"
-msgstr "Ikke vis"
-
-#: ../../include/acl_selectors.php:248 ../../mod/chat.php:209
-#: ../../mod/filestorage.php:126 ../../mod/photos.php:604
-#: ../../mod/photos.php:947
-msgid "Permissions"
-msgstr "Tillatelser"
-
-#: ../../include/acl_selectors.php:249 ../../include/ItemObject.php:289
-msgid "Close"
-msgstr "Lukk"
-
-#: ../../include/activities.php:39
-msgid " and "
-msgstr "og"
+#: ../../include/chat.php:126
+msgid "Room is full"
+msgstr "Rommet er fullt"
-#: ../../include/activities.php:47
-msgid "public profile"
-msgstr "offentlig profil"
+#: ../../include/oembed.php:171
+msgid "Embedded content"
+msgstr "Innebygget innhold"
-#: ../../include/activities.php:52
-#, php-format
-msgid "%1$s changed %2$s to &ldquo;%3$s&rdquo;"
-msgstr "%1$s endret %2$s til &ldquo;%3$s&rdquo;"
+#: ../../include/oembed.php:180
+msgid "Embedding disabled"
+msgstr "Innbygging avskrudd"
-#: ../../include/activities.php:53
-#, php-format
-msgid "Visit %1$s's %2$s"
-msgstr "Besøk %1$s sitt %2$s"
+#: ../../include/widgets.php:29 ../../include/contact_widgets.php:92
+#: ../../include/taxonomy.php:230
+msgid "Categories"
+msgstr "Kategorier"
-#: ../../include/activities.php:56
-#, php-format
-msgid "%1$s has an updated %2$s, changing %3$s."
-msgstr "%1$s har oppdatert %2$s, endret %3$s."
+#: ../../include/widgets.php:86 ../../include/nav.php:171
+#: ../../mod/apps.php:33
+msgid "Apps"
+msgstr "Apper"
-#: ../../include/api.php:1016
-msgid "Public Timeline"
-msgstr "Offentlig tidslinje"
+#: ../../include/widgets.php:87
+msgid "System"
+msgstr "System"
-#: ../../include/attach.php:224 ../../include/attach.php:278
-msgid "Item was not found."
-msgstr "Elementet ble ikke funnet."
+#: ../../include/widgets.php:90
+msgid "Create Personal App"
+msgstr "Lag personlig app"
-#: ../../include/attach.php:335
-msgid "No source file."
-msgstr "Ingen kildefil."
+#: ../../include/widgets.php:91
+msgid "Edit Personal App"
+msgstr "Endre personlig app"
-#: ../../include/attach.php:352
-msgid "Cannot locate file to replace"
-msgstr "Kan ikke finne filen som skal byttes ut"
+#: ../../include/widgets.php:137 ../../mod/suggest.php:53
+msgid "Ignore/Hide"
+msgstr "Ignorer/Skjul"
-#: ../../include/attach.php:370
-msgid "Cannot locate file to revise/update"
-msgstr "Finner ikke filen som skal revideres/oppdateres"
+#: ../../include/widgets.php:143 ../../mod/connections.php:267
+msgid "Suggestions"
+msgstr "Forslag"
-#: ../../include/attach.php:381
-#, php-format
-msgid "File exceeds size limit of %d"
-msgstr "Filens størrelse overgår grensen på %d"
+#: ../../include/widgets.php:144
+msgid "See more..."
+msgstr "Se mer..."
-#: ../../include/attach.php:393
+#: ../../include/widgets.php:166
#, php-format
-msgid "You have reached your limit of %1$.0f Mbytes attachment storage."
-msgstr "Du har nådd din lagringsgrense for vedlegg på %1$.0f Mbytes."
-
-#: ../../include/attach.php:475
-msgid "File upload failed. Possible system limit or action terminated."
-msgstr "Mislyktes med å laste opp filen. Mulig systemgrense eller handling avbrutt."
+msgid "You have %1$.0f of %2$.0f allowed connections."
+msgstr "Du har %1$.0f av %2$.0f tillate forbindelser."
-#: ../../include/attach.php:487
-msgid "Stored file could not be verified. Upload failed."
-msgstr "Lagret fil kunne ikke bekreftes. Opplasting mislyktes."
+#: ../../include/widgets.php:172
+msgid "Add New Connection"
+msgstr "Legg til ny forbindelse"
-#: ../../include/attach.php:528 ../../include/attach.php:545
-msgid "Path not available."
-msgstr "Stien er ikke tilgjengelig."
+#: ../../include/widgets.php:173
+msgid "Enter the channel address"
+msgstr "Skriv kanal-adressen"
-#: ../../include/attach.php:590
-msgid "Empty pathname"
-msgstr "Tomt sti-navn"
+#: ../../include/widgets.php:174
+msgid "Example: bob@example.com, http://example.com/barbara"
+msgstr "Eksempel: ola.nordmann@eksempel.no, http://eksempel.no/karinordmann"
-#: ../../include/attach.php:606
-msgid "duplicate filename or path"
-msgstr "duplikat av filnavn eller sti"
+#: ../../include/widgets.php:191
+msgid "Notes"
+msgstr "Merknader"
-#: ../../include/attach.php:630
-msgid "Path not found."
-msgstr "Stien ble ikke funnet."
+#: ../../include/widgets.php:193 ../../include/text.php:827
+#: ../../include/text.php:839 ../../mod/rbmark.php:28 ../../mod/rbmark.php:98
+#: ../../mod/filer.php:50 ../../mod/admin.php:1339 ../../mod/admin.php:1360
+msgid "Save"
+msgstr "Lagre"
-#: ../../include/attach.php:674
-msgid "mkdir failed."
-msgstr "mkdir mislyktes."
+#: ../../include/widgets.php:263
+msgid "Remove term"
+msgstr "Fjern begrep"
-#: ../../include/attach.php:678
-msgid "database storage failed."
-msgstr "databaselagring mislyktes."
+#: ../../include/widgets.php:272 ../../include/features.php:58
+msgid "Saved Searches"
+msgstr "Lagrede søk"
-#: ../../include/bb2diaspora.php:441 ../../include/event.php:11
-msgid "l F d, Y \\@ g:i A"
-msgstr "l F d, Y \\@ g:i A"
+#: ../../include/widgets.php:273 ../../include/group.php:303
+msgid "add"
+msgstr "legg til"
-#: ../../include/bb2diaspora.php:447 ../../include/event.php:20
-msgid "Starts:"
-msgstr "Starter:"
+#: ../../include/widgets.php:303 ../../include/contact_widgets.php:57
+#: ../../include/features.php:72
+msgid "Saved Folders"
+msgstr "Lagrede mapper"
-#: ../../include/bb2diaspora.php:455 ../../include/event.php:30
-msgid "Finishes:"
-msgstr "Slutter:"
+#: ../../include/widgets.php:306 ../../include/contact_widgets.php:60
+#: ../../include/contact_widgets.php:95
+msgid "Everything"
+msgstr "Alt"
-#: ../../include/bb2diaspora.php:463 ../../include/event.php:40
-#: ../../include/identity.php:726 ../../mod/directory.php:156
-#: ../../mod/dirprofile.php:105 ../../mod/events.php:485
-msgid "Location:"
-msgstr "Plassering:"
+#: ../../include/widgets.php:352
+msgid "Archives"
+msgstr "Arkiv"
-#: ../../include/nav.php:77 ../../include/nav.php:101 ../../boot.php:1456
-msgid "Logout"
-msgstr "Logg ut"
+#: ../../include/widgets.php:428
+msgid "Refresh"
+msgstr "Forny"
-#: ../../include/nav.php:77 ../../include/nav.php:101
-msgid "End this session"
-msgstr "Avslutt denne økten"
+#: ../../include/widgets.php:429 ../../mod/connedit.php:506
+msgid "Me"
+msgstr "Meg"
-#: ../../include/nav.php:80 ../../include/nav.php:135
-msgid "Home"
-msgstr "Hjem"
+#: ../../include/widgets.php:430 ../../mod/connedit.php:508
+msgid "Best Friends"
+msgstr "Bestevenner"
-#: ../../include/nav.php:80
-msgid "Your posts and conversations"
-msgstr "Dine innlegg og samtaler"
+#: ../../include/widgets.php:431 ../../include/identity.php:387
+#: ../../include/identity.php:388 ../../include/identity.php:395
+#: ../../include/profile_selectors.php:80 ../../mod/connedit.php:509
+#: ../../mod/settings.php:304 ../../mod/settings.php:308
+#: ../../mod/settings.php:309 ../../mod/settings.php:312
+#: ../../mod/settings.php:323
+msgid "Friends"
+msgstr "Venner"
-#: ../../include/nav.php:81
-msgid "Your profile page"
-msgstr "Din profilside"
+#: ../../include/widgets.php:432
+msgid "Co-workers"
+msgstr "Medarbeidere"
-#: ../../include/nav.php:83
-msgid "Edit Profiles"
-msgstr "Endre profiler"
+#: ../../include/widgets.php:433 ../../mod/connedit.php:510
+msgid "Former Friends"
+msgstr "Tidligere venner"
-#: ../../include/nav.php:83
-msgid "Manage/Edit profiles"
-msgstr "HÃ¥ndter/endre profiler"
+#: ../../include/widgets.php:434 ../../mod/connedit.php:511
+msgid "Acquaintances"
+msgstr "Bekjente"
-#: ../../include/nav.php:84
-msgid "Your photos"
-msgstr "Dine bilder"
+#: ../../include/widgets.php:435
+msgid "Everybody"
+msgstr "Alle"
-#: ../../include/nav.php:85
-msgid "Your files"
-msgstr "Dine filer"
+#: ../../include/widgets.php:469
+msgid "Account settings"
+msgstr "Kontoinnstillinger"
-#: ../../include/nav.php:90 ../../include/apps.php:136
-msgid "Chat"
-msgstr "Chat"
+#: ../../include/widgets.php:475
+msgid "Channel settings"
+msgstr "Kanalinnstillinger"
-#: ../../include/nav.php:90
-msgid "Your chatrooms"
-msgstr "Dine chatterom"
+#: ../../include/widgets.php:481
+msgid "Additional features"
+msgstr "Tilleggsfunksjoner"
-#: ../../include/nav.php:93
-msgid "Your bookmarks"
-msgstr "Dine bokmerker"
+#: ../../include/widgets.php:487
+msgid "Feature settings"
+msgstr "Funksjonsinnstillinger"
-#: ../../include/nav.php:95
-msgid "Your webpages"
-msgstr "Dine websider"
+#: ../../include/widgets.php:493
+msgid "Display settings"
+msgstr "Visningsinnstillinger"
-#: ../../include/nav.php:99 ../../include/apps.php:121 ../../boot.php:1457
-msgid "Login"
-msgstr "Logg inn"
+#: ../../include/widgets.php:499
+msgid "Connected apps"
+msgstr "Tilkoblede app-er"
-#: ../../include/nav.php:99
-msgid "Sign in"
-msgstr "Logg på"
+#: ../../include/widgets.php:505
+msgid "Export channel"
+msgstr "Eksporter kanal"
-#: ../../include/nav.php:116
-#, php-format
-msgid "%s - click to logout"
-msgstr "%s - klikk for å logge ut"
+#: ../../include/widgets.php:511
+msgid "Export content"
+msgstr "Eksporter innhold"
-#: ../../include/nav.php:121
-msgid "Click to authenticate to your home hub"
-msgstr "Klikk for å godkjennes mot din hjemme-hub"
+#: ../../include/widgets.php:520 ../../mod/connedit.php:538
+msgid "Connection Default Permissions"
+msgstr "Forbindelsens standard tillatelser"
-#: ../../include/nav.php:135
-msgid "Home Page"
-msgstr "Hjemmeside"
+#: ../../include/widgets.php:528
+msgid "Premium Channel Settings"
+msgstr "Premiumkanal-innstillinger"
-#: ../../include/nav.php:139 ../../mod/register.php:206 ../../boot.php:1433
-msgid "Register"
-msgstr "Registrer"
+#: ../../include/widgets.php:537 ../../include/features.php:49
+#: ../../mod/sources.php:88
+msgid "Channel Sources"
+msgstr "Kanalkilder"
-#: ../../include/nav.php:139
-msgid "Create an account"
-msgstr "Lag en konto"
+#: ../../include/widgets.php:548 ../../include/nav.php:218
+#: ../../include/apps.php:132 ../../mod/admin.php:951 ../../mod/admin.php:1156
+msgid "Settings"
+msgstr "Innstillinger"
-#: ../../include/nav.php:144 ../../include/apps.php:132 ../../mod/help.php:60
-#: ../../mod/help.php:65
-msgid "Help"
-msgstr "Hjelp"
+#: ../../include/widgets.php:562 ../../mod/mail.php:124
+#: ../../mod/message.php:31
+msgid "Messages"
+msgstr "Meldinger"
-#: ../../include/nav.php:144
-msgid "Help and documentation"
-msgstr "Hjelp og dokumentasjon"
+#: ../../include/widgets.php:567
+msgid "Check Mail"
+msgstr "Sjekk meldinger"
-#: ../../include/nav.php:147 ../../include/widgets.php:79
-#: ../../mod/apps.php:33
-msgid "Apps"
-msgstr "Apper"
+#: ../../include/widgets.php:572 ../../include/nav.php:209
+msgid "New Message"
+msgstr "Ny melding"
-#: ../../include/nav.php:147
-msgid "Applications, utilities, links, games"
-msgstr "Programmer, verktøy, lenker, spill"
+#: ../../include/widgets.php:648
+msgid "Chat Rooms"
+msgstr "Chatrom"
-#: ../../include/nav.php:149 ../../include/text.php:813
-#: ../../include/text.php:827 ../../include/apps.php:137
-#: ../../mod/search.php:29
-msgid "Search"
-msgstr "Søk"
+#: ../../include/widgets.php:666
+msgid "Bookmarked Chatrooms"
+msgstr "Bokmerkede chatrom"
-#: ../../include/nav.php:149
-msgid "Search site content"
-msgstr "Søk stedets innhold"
+#: ../../include/widgets.php:684
+msgid "Suggested Chatrooms"
+msgstr "Foreslåtte chatrom"
-#: ../../include/nav.php:152 ../../include/apps.php:131
-#: ../../mod/directory.php:210
-msgid "Directory"
-msgstr "Katalog"
+#: ../../include/zot.php:664
+msgid "Invalid data packet"
+msgstr "Ugyldig datapakke"
-#: ../../include/nav.php:152
-msgid "Channel Locator"
-msgstr "Kanal-finner"
+#: ../../include/zot.php:680
+msgid "Unable to verify channel signature"
+msgstr "Ikke i stand til å sjekke kanalsignaturen"
-#: ../../include/nav.php:163 ../../include/apps.php:123
-msgid "Matrix"
-msgstr "Matrix"
+#: ../../include/zot.php:1799
+#, php-format
+msgid "Unable to verify site signature for %s"
+msgstr "Ikke i stand til å bekrefte signaturen til %s"
-#: ../../include/nav.php:163
-msgid "Your matrix"
-msgstr "Din matrix"
+#: ../../include/activities.php:39
+msgid " and "
+msgstr "og"
-#: ../../include/nav.php:164
-msgid "Mark all matrix notifications seen"
-msgstr "Merk alle matrix-varsler som sett"
+#: ../../include/activities.php:47
+msgid "public profile"
+msgstr "offentlig profil"
-#: ../../include/nav.php:166 ../../include/apps.php:127
-msgid "Channel Home"
-msgstr "Kanalhjem"
+#: ../../include/activities.php:52
+#, php-format
+msgid "%1$s changed %2$s to &ldquo;%3$s&rdquo;"
+msgstr "%1$s endret %2$s til &ldquo;%3$s&rdquo;"
-#: ../../include/nav.php:166
-msgid "Channel home"
-msgstr "Kanalhjem"
+#: ../../include/activities.php:53
+#, php-format
+msgid "Visit %1$s's %2$s"
+msgstr "Besøk %1$s sitt %2$s"
-#: ../../include/nav.php:167
-msgid "Mark all channel notifications seen"
-msgstr "Merk alle kanalvarsler som sett"
+#: ../../include/activities.php:56
+#, php-format
+msgid "%1$s has an updated %2$s, changing %3$s."
+msgstr "%1$s har oppdatert %2$s, endret %3$s."
-#: ../../include/nav.php:170 ../../mod/connections.php:386
-msgid "Connections"
-msgstr "Forbindelser"
+#: ../../include/bb2diaspora.php:384
+msgid "Attachments:"
+msgstr "Vedlegg:"
-#: ../../include/nav.php:173
-msgid "Notices"
-msgstr "Varsel"
+#: ../../include/bb2diaspora.php:463 ../../include/event.php:11
+msgid "l F d, Y \\@ g:i A"
+msgstr "l F d, Y \\@ g:i A"
-#: ../../include/nav.php:173
-msgid "Notifications"
-msgstr "Varsler"
+#: ../../include/bb2diaspora.php:465
+msgid "Redmatrix event notification:"
+msgstr "RedMatrix hendelsesvarsling:"
-#: ../../include/nav.php:174
-msgid "See all notifications"
-msgstr "Se alle varsler"
+#: ../../include/bb2diaspora.php:469 ../../include/event.php:20
+msgid "Starts:"
+msgstr "Starter:"
-#: ../../include/nav.php:175 ../../mod/notifications.php:99
-msgid "Mark all system notifications seen"
-msgstr "Merk alle systemvarsler som sett"
+#: ../../include/bb2diaspora.php:477 ../../include/event.php:30
+msgid "Finishes:"
+msgstr "Slutter:"
-#: ../../include/nav.php:177 ../../include/apps.php:133
-msgid "Mail"
-msgstr "Melding"
+#: ../../include/bb2diaspora.php:485 ../../include/event.php:40
+#: ../../include/identity.php:891 ../../mod/directory.php:159
+#: ../../mod/events.php:579
+msgid "Location:"
+msgstr "Plassering:"
-#: ../../include/nav.php:177
-msgid "Private mail"
-msgstr "Privat post"
+#: ../../include/RedDAV/RedBrowser.php:106
+#: ../../include/RedDAV/RedBrowser.php:249
+msgid "parent"
+msgstr "opp et nivå"
-#: ../../include/nav.php:178
-msgid "See all private messages"
-msgstr "Se alle private meldinger"
+#: ../../include/RedDAV/RedBrowser.php:130
+msgid "Collection"
+msgstr "Samling"
-#: ../../include/nav.php:179
-msgid "Mark all private messages seen"
-msgstr "Merk alle private meldinger som sett"
+#: ../../include/RedDAV/RedBrowser.php:133
+msgid "Principal"
+msgstr "Viktigste"
-#: ../../include/nav.php:180
-msgid "Inbox"
-msgstr "Innboks"
+#: ../../include/RedDAV/RedBrowser.php:136
+msgid "Addressbook"
+msgstr "Adressebok"
-#: ../../include/nav.php:181
-msgid "Outbox"
-msgstr "Utboks"
+#: ../../include/RedDAV/RedBrowser.php:139
+msgid "Calendar"
+msgstr "Kalender"
-#: ../../include/nav.php:182 ../../include/widgets.php:536
-msgid "New Message"
-msgstr "Ny melding"
+#: ../../include/RedDAV/RedBrowser.php:142
+msgid "Schedule Inbox"
+msgstr "Tidsplan innboks"
-#: ../../include/nav.php:185 ../../include/apps.php:130
-#: ../../mod/events.php:377
-msgid "Events"
-msgstr "Hendelser"
+#: ../../include/RedDAV/RedBrowser.php:145
+msgid "Schedule Outbox"
+msgstr "Tidsplan utboks"
-#: ../../include/nav.php:185
-msgid "Event Calendar"
-msgstr "Kalender"
+#: ../../include/RedDAV/RedBrowser.php:223
+#, php-format
+msgid "%1$s used"
+msgstr "%1$s brukt"
-#: ../../include/nav.php:186
-msgid "See all events"
-msgstr "Se alle hendelser"
+#: ../../include/RedDAV/RedBrowser.php:228
+#, php-format
+msgid "%1$s used of %2$s (%3$s&#37;)"
+msgstr "%1$s brukt av %2$s (%3$s&#37;)"
-#: ../../include/nav.php:187
-msgid "Mark all events seen"
-msgstr "Merk alle hendelser som sett"
+#: ../../include/RedDAV/RedBrowser.php:245 ../../mod/settings.php:551
+#: ../../mod/settings.php:577 ../../mod/admin.php:866
+msgid "Name"
+msgstr "Navn"
-#: ../../include/nav.php:189 ../../include/apps.php:122
-msgid "Channel Select"
-msgstr "Kanaler"
+#: ../../include/RedDAV/RedBrowser.php:246
+msgid "Type"
+msgstr "Type"
-#: ../../include/nav.php:189
-msgid "Manage Your Channels"
-msgstr "HÃ¥ndter dine kanaler"
+#: ../../include/RedDAV/RedBrowser.php:247
+msgid "Size"
+msgstr "Størrelse"
-#: ../../include/nav.php:191 ../../include/apps.php:124
-#: ../../include/widgets.php:514 ../../mod/admin.php:977
-#: ../../mod/admin.php:1182
-msgid "Settings"
-msgstr "Innstillinger"
+#: ../../include/RedDAV/RedBrowser.php:248
+msgid "Last Modified"
+msgstr "Sist endret"
-#: ../../include/nav.php:191
-msgid "Account/Channel Settings"
-msgstr "Konto-/kanal-innstillinger"
+#: ../../include/RedDAV/RedBrowser.php:252
+msgid "Total"
+msgstr "Totalt"
-#: ../../include/nav.php:199 ../../mod/admin.php:117
-msgid "Admin"
-msgstr "Administrator"
+#: ../../include/RedDAV/RedBrowser.php:305
+msgid "Create new folder"
+msgstr "Lag ny mappe"
-#: ../../include/nav.php:199
-msgid "Site Setup and Configuration"
-msgstr "Nettstedsoppsett og -konfigurasjon"
+#: ../../include/RedDAV/RedBrowser.php:306 ../../mod/mitem.php:169
+#: ../../mod/menu.php:100 ../../mod/new_channel.php:122
+msgid "Create"
+msgstr "Lag"
-#: ../../include/nav.php:224
-msgid "Nothing new here"
-msgstr "Ikke noe nytt her"
+#: ../../include/RedDAV/RedBrowser.php:307
+msgid "Upload file"
+msgstr "Last opp fil"
-#: ../../include/nav.php:228
-msgid "Please wait..."
-msgstr "Vennligst vent..."
+#: ../../include/RedDAV/RedBrowser.php:308 ../../mod/photos.php:738
+#: ../../mod/photos.php:1245 ../../mod/profile_photo.php:361
+msgid "Upload"
+msgstr "Last opp"
-#: ../../include/bookmarks.php:42
+#: ../../include/bookmarks.php:35
#, php-format
msgid "%1$s's bookmarks"
msgstr "%1$s sine bokmerker"
-#: ../../include/chat.php:10
-msgid "Missing room name"
-msgstr "Mangler romnavn"
-
-#: ../../include/chat.php:19
-msgid "Duplicate room name"
-msgstr "Duplikat romnavn"
-
-#: ../../include/chat.php:68 ../../include/chat.php:76
-msgid "Invalid room specifier."
-msgstr "Ugyldig rom-spesifisering"
-
-#: ../../include/chat.php:105
-msgid "Room not found."
-msgstr "Rommet ble ikke funnet."
-
-#: ../../include/chat.php:126
-msgid "Room is full"
-msgstr "Rommet er fullt"
-
-#: ../../include/taxonomy.php:210
-msgid "Tags"
-msgstr "Merkelapper"
-
-#: ../../include/taxonomy.php:227
-msgid "Keywords"
-msgstr "Nøkkelord"
-
-#: ../../include/taxonomy.php:252
-msgid "have"
-msgstr "har"
+#: ../../include/follow.php:28
+msgid "Channel is blocked on this site."
+msgstr "Kanalen er blokkert på dette nettstedet."
-#: ../../include/taxonomy.php:252
-msgid "has"
-msgstr "har"
+#: ../../include/follow.php:33
+msgid "Channel location missing."
+msgstr "Kanalplassering mangler."
-#: ../../include/taxonomy.php:253
-msgid "want"
-msgstr "ønsker"
+#: ../../include/follow.php:82
+msgid "Response from remote channel was incomplete."
+msgstr "Svaret fra den andre kanalen var ikke komplett."
-#: ../../include/taxonomy.php:253
-msgid "wants"
-msgstr "ønsker"
+#: ../../include/follow.php:99
+msgid "Channel was deleted and no longer exists."
+msgstr "Kanalen er slettet og finnes ikke lenger."
-#: ../../include/taxonomy.php:254 ../../include/ItemObject.php:208
-msgid "like"
-msgstr "liker"
+#: ../../include/follow.php:135 ../../include/follow.php:202
+msgid "Protocol disabled."
+msgstr "Protokollen er avskrudd."
-#: ../../include/taxonomy.php:254
-msgid "likes"
-msgstr "liker"
+#: ../../include/follow.php:176
+msgid "Channel discovery failed."
+msgstr "Kanaloppdagelse mislyktes."
-#: ../../include/taxonomy.php:255 ../../include/ItemObject.php:209
-msgid "dislike"
-msgstr "misliker"
+#: ../../include/follow.php:192
+msgid "local account not found."
+msgstr "lokal konto ble ikke funnet."
-#: ../../include/taxonomy.php:255
-msgid "dislikes"
-msgstr "misliker"
+#: ../../include/follow.php:220
+msgid "Cannot connect to yourself."
+msgstr "Kan ikke lage forbindelse med deg selv."
-#: ../../include/comanche.php:35 ../../view/theme/apw/php/config.php:185
-#: ../../view/theme/redbasic/php/config.php:84
+#: ../../include/comanche.php:35 ../../mod/admin.php:353
+#: ../../view/theme/apw/php/config.php:185
msgid "Default"
msgstr "Standard"
-#: ../../include/contact_selectors.php:30
-msgid "Unknown | Not categorised"
-msgstr "Ukjent | Ikke kategorisert"
-
-#: ../../include/contact_selectors.php:31
-msgid "Block immediately"
-msgstr "Blokker umiddelbart"
-
-#: ../../include/contact_selectors.php:32
-msgid "Shady, spammer, self-marketer"
-msgstr "Lyssky, utsender av søppelpost, egenkampanje"
-
-#: ../../include/contact_selectors.php:33
-msgid "Known to me, but no opinion"
-msgstr "Bekjent av meg, men jeg er uten mening"
-
-#: ../../include/contact_selectors.php:34
-msgid "OK, probably harmless"
-msgstr "OK, antakelig harmløs"
-
-#: ../../include/contact_selectors.php:35
-msgid "Reputable, has my trust"
-msgstr "Hederlig, har min tillit"
-
-#: ../../include/contact_selectors.php:54
+#: ../../include/contact_selectors.php:56
msgid "Frequently"
msgstr "Ofte"
-#: ../../include/contact_selectors.php:55
+#: ../../include/contact_selectors.php:57
msgid "Hourly"
msgstr "Hver time"
-#: ../../include/contact_selectors.php:56
+#: ../../include/contact_selectors.php:58
msgid "Twice daily"
msgstr "To ganger daglig"
-#: ../../include/contact_selectors.php:57
+#: ../../include/contact_selectors.php:59
msgid "Daily"
msgstr "Daglig"
-#: ../../include/contact_selectors.php:58
+#: ../../include/contact_selectors.php:60
msgid "Weekly"
msgstr "Ukentlig"
-#: ../../include/contact_selectors.php:59
+#: ../../include/contact_selectors.php:61
msgid "Monthly"
msgstr "MÃ¥nedlig"
-#: ../../include/contact_selectors.php:74
+#: ../../include/contact_selectors.php:76
msgid "Friendica"
msgstr "Friendica"
-#: ../../include/contact_selectors.php:75
+#: ../../include/contact_selectors.php:77
msgid "OStatus"
msgstr "OStatus"
-#: ../../include/contact_selectors.php:76
+#: ../../include/contact_selectors.php:78
msgid "RSS/Atom"
msgstr "RSS/Atom"
-#: ../../include/contact_selectors.php:77 ../../mod/admin.php:754
-#: ../../mod/admin.php:763 ../../boot.php:1459
+#: ../../include/contact_selectors.php:79 ../../mod/admin.php:726
+#: ../../mod/admin.php:735 ../../boot.php:1488
msgid "Email"
msgstr "E-post"
-#: ../../include/contact_selectors.php:78
+#: ../../include/contact_selectors.php:80
msgid "Diaspora"
msgstr "Diaspora"
-#: ../../include/contact_selectors.php:79
+#: ../../include/contact_selectors.php:81
msgid "Facebook"
msgstr "Facebook"
-#: ../../include/contact_selectors.php:80
+#: ../../include/contact_selectors.php:82
msgid "Zot!"
msgstr "Zot!"
-#: ../../include/contact_selectors.php:81
+#: ../../include/contact_selectors.php:83
msgid "LinkedIn"
msgstr "LinkedIn"
-#: ../../include/contact_selectors.php:82
+#: ../../include/contact_selectors.php:84
msgid "XMPP/IM"
msgstr "XMPP/IM"
-#: ../../include/contact_selectors.php:83
+#: ../../include/contact_selectors.php:85
msgid "MySpace"
msgstr "MySpace"
@@ -1274,7 +1153,7 @@ msgid_plural "%d invitations available"
msgstr[0] "%d invitasjon tilgjengelig"
msgstr[1] "%d invitasjoner tilgjengelig"
-#: ../../include/contact_widgets.php:19 ../../mod/admin.php:446
+#: ../../include/contact_widgets.php:19 ../../mod/admin.php:416
msgid "Advanced"
msgstr "Avansert"
@@ -1294,8 +1173,8 @@ msgstr "Forbindelse/Følg"
msgid "Examples: Robert Morgenstein, Fishing"
msgstr "Eksempler: Ola Nordmann, fisking"
-#: ../../include/contact_widgets.php:26 ../../mod/connections.php:392
-#: ../../mod/directory.php:206 ../../mod/directory.php:211
+#: ../../include/contact_widgets.php:26 ../../mod/directory.php:267
+#: ../../mod/directory.php:272 ../../mod/connections.php:412
msgid "Find"
msgstr "Finn"
@@ -1312,26 +1191,8 @@ msgid "Invite Friends"
msgstr "Inviter venner"
#: ../../include/contact_widgets.php:32
-msgid "Exammple: name=fred and country=iceland"
-msgstr "Eksempel: name=fred og country=iceland"
-
-#: ../../include/contact_widgets.php:33
-msgid "Advanced Find"
-msgstr "Avansert finn"
-
-#: ../../include/contact_widgets.php:58 ../../include/features.php:66
-#: ../../include/widgets.php:296
-msgid "Saved Folders"
-msgstr "Lagrede mapper"
-
-#: ../../include/contact_widgets.php:61 ../../include/contact_widgets.php:95
-#: ../../include/widgets.php:299
-msgid "Everything"
-msgstr "Alt"
-
-#: ../../include/contact_widgets.php:92 ../../include/widgets.php:29
-msgid "Categories"
-msgstr "Kategorier"
+msgid "Advanced example: name=fred and country=iceland"
+msgstr "Avansert eksempel: navn=fred og land=island"
#: ../../include/contact_widgets.php:125
#, php-format
@@ -1344,125 +1205,6 @@ msgstr[1] "%d forbindelser felles"
msgid "show more"
msgstr "vis mer"
-#: ../../include/event.php:326
-msgid "This event has been added to your calendar."
-msgstr "Denne hendelsen er lagt til i din kalender."
-
-#: ../../include/reddav.php:1045
-msgid "Edit File properties"
-msgstr "Endre filegenskaper"
-
-#: ../../include/datetime.php:43 ../../include/datetime.php:45
-msgid "Miscellaneous"
-msgstr "Forskjellig"
-
-#: ../../include/datetime.php:152 ../../include/datetime.php:284
-msgid "year"
-msgstr "Ã¥r"
-
-#: ../../include/datetime.php:157 ../../include/datetime.php:285
-msgid "month"
-msgstr "måned"
-
-#: ../../include/datetime.php:162 ../../include/datetime.php:287
-msgid "day"
-msgstr "dag"
-
-#: ../../include/datetime.php:275
-msgid "never"
-msgstr "aldri"
-
-#: ../../include/datetime.php:281
-msgid "less than a second ago"
-msgstr "for mindre enn ett sekund siden"
-
-#: ../../include/datetime.php:284
-msgid "years"
-msgstr "Ã¥r"
-
-#: ../../include/datetime.php:285
-msgid "months"
-msgstr "måneder"
-
-#: ../../include/datetime.php:286
-msgid "week"
-msgstr "uke"
-
-#: ../../include/datetime.php:286
-msgid "weeks"
-msgstr "uker"
-
-#: ../../include/datetime.php:287
-msgid "days"
-msgstr "dager"
-
-#: ../../include/datetime.php:288
-msgid "hour"
-msgstr "time"
-
-#: ../../include/datetime.php:288
-msgid "hours"
-msgstr "timer"
-
-#: ../../include/datetime.php:289
-msgid "minute"
-msgstr "minutt"
-
-#: ../../include/datetime.php:289
-msgid "minutes"
-msgstr "minutter"
-
-#: ../../include/datetime.php:290
-msgid "second"
-msgstr "sekund"
-
-#: ../../include/datetime.php:290
-msgid "seconds"
-msgstr "sekunder"
-
-#: ../../include/datetime.php:299
-#, php-format
-msgid "%1$d %2$s ago"
-msgstr "%1$d %2$s siden"
-
-#: ../../include/datetime.php:504
-#, php-format
-msgid "%1$s's birthday"
-msgstr "%1$s sin fødselsdag"
-
-#: ../../include/datetime.php:505
-#, php-format
-msgid "Happy Birthday %1$s"
-msgstr "Gratulerer med dagen, %1$s !"
-
-#: ../../include/dir_fns.php:36
-msgid "Sort Options"
-msgstr "Sorteringsmuligheter"
-
-#: ../../include/dir_fns.php:37
-msgid "Alphabetic"
-msgstr "Alfabetisk"
-
-#: ../../include/dir_fns.php:38
-msgid "Reverse Alphabetic"
-msgstr "Omvendt alfabetisk"
-
-#: ../../include/dir_fns.php:39
-msgid "Newest to Oldest"
-msgstr "Nyest til eldst"
-
-#: ../../include/dir_fns.php:51
-msgid "Enable Safe Search"
-msgstr "Skru på Trygt søk"
-
-#: ../../include/dir_fns.php:53
-msgid "Disable Safe Search"
-msgstr "Skru av Trygt søk"
-
-#: ../../include/dir_fns.php:55
-msgid "Safe Mode"
-msgstr "Trygt modus"
-
#: ../../include/enotify.php:41
msgid "Red Matrix Notification"
msgstr "Red Matrix-varsling"
@@ -1655,6 +1397,522 @@ msgstr "Bilde:"
msgid "Please visit %s to approve or reject the suggestion."
msgstr "Vennligst besøk %s for å godkjenne eller avslå dette forslaget."
+#: ../../include/enotify.php:477
+msgid "[Red:Notify]"
+msgstr "[Red:Notify]"
+
+#: ../../include/event.php:326
+msgid "This event has been added to your calendar."
+msgstr "Denne hendelsen er lagt til i din kalender."
+
+#: ../../include/group.php:26
+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 "En slettet gruppe med dette navnet ble gjenopprettet. Eksisterende tillatelser for elementet <strong>kan</strong> gjelde for denne gruppen og fremtidige medlemmer. Hvis du ønsket noe annet, vennligst lag en ny gruppe med et annet navn."
+
+#: ../../include/group.php:235
+msgid "Default privacy group for new contacts"
+msgstr "Standard personverngruppe for nye kontakter"
+
+#: ../../include/group.php:254 ../../mod/admin.php:735
+msgid "All Channels"
+msgstr "Alle kanaler"
+
+#: ../../include/group.php:276
+msgid "edit"
+msgstr "endre"
+
+#: ../../include/group.php:298
+msgid "Collections"
+msgstr "Samlinger"
+
+#: ../../include/group.php:299
+msgid "Edit collection"
+msgstr "Endre samling"
+
+#: ../../include/group.php:300
+msgid "Create a new collection"
+msgstr "Lag en ny samling"
+
+#: ../../include/group.php:301
+msgid "Channels not in any collection"
+msgstr "Kanaler som ikke er i noen samling"
+
+#: ../../include/bbcode.php:112 ../../include/bbcode.php:653
+#: ../../include/bbcode.php:656 ../../include/bbcode.php:661
+#: ../../include/bbcode.php:664 ../../include/bbcode.php:667
+#: ../../include/bbcode.php:670 ../../include/bbcode.php:675
+#: ../../include/bbcode.php:678 ../../include/bbcode.php:683
+#: ../../include/bbcode.php:686 ../../include/bbcode.php:689
+#: ../../include/bbcode.php:692
+msgid "Image/photo"
+msgstr "Bilde/fotografi"
+
+#: ../../include/bbcode.php:147 ../../include/bbcode.php:703
+msgid "Encrypted content"
+msgstr "Kryptert innhold"
+
+#: ../../include/bbcode.php:165
+msgid "Install design element: "
+msgstr "Installer designelement:"
+
+#: ../../include/bbcode.php:171
+msgid "QR code"
+msgstr "QR-kode"
+
+#: ../../include/bbcode.php:220
+#, php-format
+msgid "%1$s wrote the following %2$s %3$s"
+msgstr "%1$s skrev følgende %2$s %3$s"
+
+#: ../../include/bbcode.php:222
+msgid "post"
+msgstr "innlegg"
+
+#: ../../include/bbcode.php:621
+msgid "$1 spoiler"
+msgstr "$1 avsløring"
+
+#: ../../include/bbcode.php:641
+msgid "$1 wrote:"
+msgstr "$1 skrev:"
+
+#: ../../include/taxonomy.php:210
+msgid "Tags"
+msgstr "Merkelapper"
+
+#: ../../include/taxonomy.php:249
+msgid "Keywords"
+msgstr "Nøkkelord"
+
+#: ../../include/taxonomy.php:274
+msgid "have"
+msgstr "har"
+
+#: ../../include/taxonomy.php:274
+msgid "has"
+msgstr "har"
+
+#: ../../include/taxonomy.php:275
+msgid "want"
+msgstr "ønsker"
+
+#: ../../include/taxonomy.php:275
+msgid "wants"
+msgstr "ønsker"
+
+#: ../../include/taxonomy.php:276 ../../include/ItemObject.php:221
+msgid "like"
+msgstr "liker"
+
+#: ../../include/taxonomy.php:276
+msgid "likes"
+msgstr "liker"
+
+#: ../../include/taxonomy.php:277 ../../include/ItemObject.php:222
+msgid "dislike"
+msgstr "misliker"
+
+#: ../../include/taxonomy.php:277
+msgid "dislikes"
+msgstr "misliker"
+
+#: ../../include/taxonomy.php:360 ../../include/identity.php:1148
+#: ../../include/ItemObject.php:146 ../../mod/photos.php:1026
+msgctxt "noun"
+msgid "Like"
+msgid_plural "Likes"
+msgstr[0] "Liker"
+msgstr[1] "Liker"
+
+#: ../../include/nav.php:95 ../../include/nav.php:128 ../../boot.php:1485
+msgid "Logout"
+msgstr "Logg ut"
+
+#: ../../include/nav.php:95 ../../include/nav.php:128
+msgid "End this session"
+msgstr "Avslutt denne økten"
+
+#: ../../include/nav.php:98 ../../include/nav.php:159
+msgid "Home"
+msgstr "Hjem"
+
+#: ../../include/nav.php:98
+msgid "Your posts and conversations"
+msgstr "Dine innlegg og samtaler"
+
+#: ../../include/nav.php:99
+msgid "Your profile page"
+msgstr "Din profilside"
+
+#: ../../include/nav.php:101
+msgid "Edit Profiles"
+msgstr "Endre profiler"
+
+#: ../../include/nav.php:101
+msgid "Manage/Edit profiles"
+msgstr "HÃ¥ndter/endre profiler"
+
+#: ../../include/nav.php:103 ../../include/identity.php:864
+msgid "Edit Profile"
+msgstr "Endre profil"
+
+#: ../../include/nav.php:103
+msgid "Edit your profile"
+msgstr "Endre din profil"
+
+#: ../../include/nav.php:105
+msgid "Your photos"
+msgstr "Dine bilder"
+
+#: ../../include/nav.php:106
+msgid "Your files"
+msgstr "Dine filer"
+
+#: ../../include/nav.php:111 ../../include/apps.php:144
+msgid "Chat"
+msgstr "Chat"
+
+#: ../../include/nav.php:111
+msgid "Your chatrooms"
+msgstr "Dine chatterom"
+
+#: ../../include/nav.php:117
+msgid "Your bookmarks"
+msgstr "Dine bokmerker"
+
+#: ../../include/nav.php:121
+msgid "Your webpages"
+msgstr "Dine websider"
+
+#: ../../include/nav.php:125 ../../include/apps.php:129 ../../boot.php:1486
+msgid "Login"
+msgstr "Logg inn"
+
+#: ../../include/nav.php:125
+msgid "Sign in"
+msgstr "Logg på"
+
+#: ../../include/nav.php:142
+#, php-format
+msgid "%s - click to logout"
+msgstr "%s - klikk for å logge ut"
+
+#: ../../include/nav.php:145
+msgid "Remote authentication"
+msgstr "Fjernautentisering"
+
+#: ../../include/nav.php:145
+msgid "Click to authenticate to your home hub"
+msgstr "Klikk for å godkjennes mot din hjemme-hub"
+
+#: ../../include/nav.php:159
+msgid "Home Page"
+msgstr "Hjemmeside"
+
+#: ../../include/nav.php:163 ../../mod/register.php:224 ../../boot.php:1464
+msgid "Register"
+msgstr "Registrer"
+
+#: ../../include/nav.php:163
+msgid "Create an account"
+msgstr "Lag en konto"
+
+#: ../../include/nav.php:168 ../../include/apps.php:140 ../../mod/help.php:58
+#: ../../mod/help.php:63
+msgid "Help"
+msgstr "Hjelp"
+
+#: ../../include/nav.php:168
+msgid "Help and documentation"
+msgstr "Hjelp og dokumentasjon"
+
+#: ../../include/nav.php:171
+msgid "Applications, utilities, links, games"
+msgstr "Programmer, verktøy, lenker, spill"
+
+#: ../../include/nav.php:173 ../../include/text.php:826
+#: ../../include/text.php:838 ../../include/apps.php:145
+#: ../../mod/search.php:30
+msgid "Search"
+msgstr "Søk"
+
+#: ../../include/nav.php:173
+msgid "Search site content"
+msgstr "Søk stedets innhold"
+
+#: ../../include/nav.php:176 ../../include/apps.php:139
+#: ../../mod/directory.php:271
+msgid "Directory"
+msgstr "Katalog"
+
+#: ../../include/nav.php:176
+msgid "Channel Directory"
+msgstr "Kanalkatalog"
+
+#: ../../include/nav.php:190 ../../include/apps.php:131
+msgid "Matrix"
+msgstr "Matrix"
+
+#: ../../include/nav.php:190
+msgid "Your matrix"
+msgstr "Din matrix"
+
+#: ../../include/nav.php:191
+msgid "Mark all matrix notifications seen"
+msgstr "Merk alle matrix-varsler som sett"
+
+#: ../../include/nav.php:193 ../../include/apps.php:135
+msgid "Channel Home"
+msgstr "Kanalhjem"
+
+#: ../../include/nav.php:193
+msgid "Channel home"
+msgstr "Kanalhjem"
+
+#: ../../include/nav.php:194
+msgid "Mark all channel notifications seen"
+msgstr "Merk alle kanalvarsler som sett"
+
+#: ../../include/nav.php:197 ../../mod/connections.php:406
+msgid "Connections"
+msgstr "Forbindelser"
+
+#: ../../include/nav.php:200
+msgid "Notices"
+msgstr "Varsel"
+
+#: ../../include/nav.php:200
+msgid "Notifications"
+msgstr "Varsler"
+
+#: ../../include/nav.php:201
+msgid "See all notifications"
+msgstr "Se alle varsler"
+
+#: ../../include/nav.php:202 ../../mod/notifications.php:99
+msgid "Mark all system notifications seen"
+msgstr "Merk alle systemvarsler som sett"
+
+#: ../../include/nav.php:204 ../../include/apps.php:141
+msgid "Mail"
+msgstr "Melding"
+
+#: ../../include/nav.php:204
+msgid "Private mail"
+msgstr "Privat post"
+
+#: ../../include/nav.php:205
+msgid "See all private messages"
+msgstr "Se alle private meldinger"
+
+#: ../../include/nav.php:206
+msgid "Mark all private messages seen"
+msgstr "Merk alle private meldinger som sett"
+
+#: ../../include/nav.php:207
+msgid "Inbox"
+msgstr "Innboks"
+
+#: ../../include/nav.php:208
+msgid "Outbox"
+msgstr "Utboks"
+
+#: ../../include/nav.php:212 ../../include/apps.php:138
+#: ../../mod/events.php:431
+msgid "Events"
+msgstr "Hendelser"
+
+#: ../../include/nav.php:212
+msgid "Event Calendar"
+msgstr "Kalender"
+
+#: ../../include/nav.php:213
+msgid "See all events"
+msgstr "Se alle hendelser"
+
+#: ../../include/nav.php:214
+msgid "Mark all events seen"
+msgstr "Merk alle hendelser som sett"
+
+#: ../../include/nav.php:216 ../../include/apps.php:130
+#: ../../mod/manage.php:148
+msgid "Channel Manager"
+msgstr "Kanalstyring"
+
+#: ../../include/nav.php:216
+msgid "Manage Your Channels"
+msgstr "HÃ¥ndter dine kanaler"
+
+#: ../../include/nav.php:218
+msgid "Account/Channel Settings"
+msgstr "Konto-/kanal-innstillinger"
+
+#: ../../include/nav.php:226 ../../mod/admin.php:123
+msgid "Admin"
+msgstr "Administrator"
+
+#: ../../include/nav.php:226
+msgid "Site Setup and Configuration"
+msgstr "Nettstedsoppsett og -konfigurasjon"
+
+#: ../../include/nav.php:262
+msgid "Please wait..."
+msgstr "Vennligst vent..."
+
+#: ../../include/permissions.php:13
+msgid "Can view my normal stream and posts"
+msgstr "Kan se min normale strøm og innlegg"
+
+#: ../../include/permissions.php:14
+msgid "Can view my default channel profile"
+msgstr "Kan se min standard kanalprofil"
+
+#: ../../include/permissions.php:15
+msgid "Can view my photo albums"
+msgstr "Kan se mine fotoalbum"
+
+#: ../../include/permissions.php:16
+msgid "Can view my connections"
+msgstr "Kan se mine forbindelser"
+
+#: ../../include/permissions.php:17
+msgid "Can view my file storage"
+msgstr "Kan se mitt fillager"
+
+#: ../../include/permissions.php:18
+msgid "Can view my webpages"
+msgstr "Kan se mine websider"
+
+#: ../../include/permissions.php:21
+msgid "Can send me their channel stream and posts"
+msgstr "Kan sende meg deres kanalstrøm og innlegg"
+
+#: ../../include/permissions.php:22
+msgid "Can post on my channel page (\"wall\")"
+msgstr "Kan lage innlegg på min kanalside (\"vegg\")"
+
+#: ../../include/permissions.php:23
+msgid "Can comment on or like my posts"
+msgstr "Kan kommentere på eller like mine innlegg"
+
+#: ../../include/permissions.php:24
+msgid "Can send me private mail messages"
+msgstr "Kan sende meg private meldinger"
+
+#: ../../include/permissions.php:25
+msgid "Can post photos to my photo albums"
+msgstr "Kan legge inn bilder i mine fotoalbum"
+
+#: ../../include/permissions.php:26
+msgid "Can like/dislike stuff"
+msgstr "Kan like/ikke like forskjellige greier"
+
+#: ../../include/permissions.php:26
+msgid "Profiles and things other than posts/comments"
+msgstr "Profiler og andre ting enn innlegg/kommentarer"
+
+#: ../../include/permissions.php:28
+msgid "Can forward to all my channel contacts via post @mentions"
+msgstr "Kan videresende til alle mine kanalkontakter via @navn i innlegg"
+
+#: ../../include/permissions.php:28
+msgid "Advanced - useful for creating group forum channels"
+msgstr "Avansert - nyttig for å lage forumkanaler for grupper"
+
+#: ../../include/permissions.php:29
+msgid "Can chat with me (when available)"
+msgstr "Kan chatte/sende lynmeldinger til meg (når tilgjengelig)"
+
+#: ../../include/permissions.php:30
+msgid "Can write to my file storage"
+msgstr "Kan skrive til mitt fillager"
+
+#: ../../include/permissions.php:31
+msgid "Can edit my webpages"
+msgstr "Kan endre mine websider"
+
+#: ../../include/permissions.php:33
+msgid "Can source my public posts in derived channels"
+msgstr "Kan bruke mine offentlige innlegg som kanalkilde i egne kanaler"
+
+#: ../../include/permissions.php:33
+msgid "Somewhat advanced - very useful in open communities"
+msgstr "Litt avansert - svært nyttig i åpne fellesskap"
+
+#: ../../include/permissions.php:35
+msgid "Can administer my channel resources"
+msgstr "Kan administrere mine kanalressurser"
+
+#: ../../include/permissions.php:35
+msgid ""
+"Extremely advanced. Leave this alone unless you know what you are doing"
+msgstr "Ekstremt avansert. La dette være med mindre du vet hva du gjør"
+
+#: ../../include/permissions.php:785
+msgid "Social Networking"
+msgstr "Sosialt nettverk"
+
+#: ../../include/permissions.php:786 ../../include/permissions.php:788
+#: ../../include/permissions.php:790
+msgid "Mostly Public"
+msgstr "Ganske offentlig"
+
+#: ../../include/permissions.php:786 ../../include/permissions.php:788
+#: ../../include/permissions.php:790
+msgid "Restricted"
+msgstr "Begrenset"
+
+#: ../../include/permissions.php:786 ../../include/permissions.php:788
+msgid "Private"
+msgstr "Privat"
+
+#: ../../include/permissions.php:787
+msgid "Community Forum"
+msgstr "Forum for fellesskap"
+
+#: ../../include/permissions.php:789
+msgid "Feed Republish"
+msgstr "Republisering av strømmet innhold"
+
+#: ../../include/permissions.php:791
+msgid "Special Purpose"
+msgstr "Spesiell bruk"
+
+#: ../../include/permissions.php:792
+msgid "Celebrity/Soapbox"
+msgstr "Kjendis/Talerstol"
+
+#: ../../include/permissions.php:792
+msgid "Group Repository"
+msgstr "Gruppelager"
+
+#: ../../include/permissions.php:793 ../../include/profile_selectors.php:6
+#: ../../include/profile_selectors.php:23
+#: ../../include/profile_selectors.php:61
+#: ../../include/profile_selectors.php:97
+msgid "Other"
+msgstr "Annen"
+
+#: ../../include/permissions.php:794
+msgid "Custom/Expert Mode"
+msgstr "Tilpasset/Ekspertmodus"
+
+#: ../../include/Contact.php:123
+msgid "New window"
+msgstr "Nytt vindu"
+
+#: ../../include/Contact.php:124
+msgid "Open the selected location in a different window or browser tab"
+msgstr "Ã…pne det valgte stedet i et annet vindu eller nettleser-fane"
+
+#: ../../include/Contact.php:211 ../../mod/admin.php:646
+#, php-format
+msgid "User '%s' deleted"
+msgstr "Brukeren '%s' er slettet"
+
#: ../../include/features.php:23
msgid "General Features"
msgstr "Generelle funksjoner"
@@ -1676,884 +1934,604 @@ msgid "Ability to create multiple profiles"
msgstr "Mulig å lage flere profiler"
#: ../../include/features.php:27
+msgid "Advanced Profiles"
+msgstr "Avanserte profiler"
+
+#: ../../include/features.php:27
+msgid "Additional profile sections and selections"
+msgstr "Ytterlige seksjoner og utvalg til profilen"
+
+#: ../../include/features.php:28
+msgid "Profile Import/Export"
+msgstr "Profil-import/-eksport"
+
+#: ../../include/features.php:28
+msgid "Save and load profile details across sites/channels"
+msgstr "Lagre og åpne profildetaljer på tvers av nettsteder/kanaler"
+
+#: ../../include/features.php:29
msgid "Web Pages"
msgstr "Web-sider"
-#: ../../include/features.php:27
+#: ../../include/features.php:29
msgid "Provide managed web pages on your channel"
msgstr "Tilby kontrollerte web-sider på din kanal"
-#: ../../include/features.php:28
+#: ../../include/features.php:30
msgid "Private Notes"
msgstr "Private merknader"
-#: ../../include/features.php:28
+#: ../../include/features.php:30
msgid "Enables a tool to store notes and reminders"
msgstr "Skrur på et verktøy for lagre merknader og påminnelser"
-#: ../../include/features.php:33
+#: ../../include/features.php:34
+msgid "Navigation Channel Select"
+msgstr "Navigasjon kanalvalg"
+
+#: ../../include/features.php:34
+msgid "Change channels directly from within the navigation dropdown menu"
+msgstr "Endre kanaler direkte fra navigasjonsmenyen"
+
+#: ../../include/features.php:38
msgid "Extended Identity Sharing"
msgstr "Utvidet identitetsdeling"
-#: ../../include/features.php:33
+#: ../../include/features.php:38
msgid ""
"Share your identity with all websites on the internet. When disabled, "
"identity is only shared with sites in the matrix."
msgstr "Del din identiet med alle nettsteder på Internett. Når denne er avskrudd, deles identiteten bare med nettsteder i matrix."
-#: ../../include/features.php:34
+#: ../../include/features.php:39
msgid "Expert Mode"
msgstr "Ekspertmodus"
-#: ../../include/features.php:34
+#: ../../include/features.php:39
msgid "Enable Expert Mode to provide advanced configuration options"
msgstr "Skru på Ekspertmodus for å tilby avanserte konfigurasjonsvalg"
-#: ../../include/features.php:35
+#: ../../include/features.php:40
msgid "Premium Channel"
msgstr "Premiumkanal"
-#: ../../include/features.php:35
+#: ../../include/features.php:40
msgid ""
"Allows you to set restrictions and terms on those that connect with your "
"channel"
msgstr "Lar deg angi restriksjoner og betingelser for de som kobler seg til din kanal"
-#: ../../include/features.php:40
+#: ../../include/features.php:45
msgid "Post Composition Features"
msgstr "Funksjoner for å lage innlegg"
-#: ../../include/features.php:41
-msgid "Richtext Editor"
-msgstr "Riktekst redigeringsverktøy"
+#: ../../include/features.php:47
+msgid "Use Markdown"
+msgstr "Bruk Markdown"
-#: ../../include/features.php:41
-msgid "Enable richtext editor"
-msgstr "Skru på redigeringverktøy for riktekst"
+#: ../../include/features.php:47
+msgid "Allow use of \"Markdown\" to format posts"
+msgstr "Tillat bruk av \"Markdown\" til formatering av innlegg"
-#: ../../include/features.php:42
+#: ../../include/features.php:48
msgid "Post Preview"
msgstr "Forhåndsvisning av innlegg"
-#: ../../include/features.php:42
+#: ../../include/features.php:48
msgid "Allow previewing posts and comments before publishing them"
msgstr "Tillat forhåndsvisning av innlegg og kommentarer før publisering"
-#: ../../include/features.php:43 ../../include/widgets.php:503
-#: ../../mod/sources.php:88
-msgid "Channel Sources"
-msgstr "Kanalkilder"
-
-#: ../../include/features.php:43
+#: ../../include/features.php:49
msgid "Automatically import channel content from other channels or feeds"
msgstr "Automatisk import av kanalinnhold fra andre kanaler eller strømmer"
-#: ../../include/features.php:44
+#: ../../include/features.php:50
msgid "Even More Encryption"
msgstr "Enda mer kryptering"
-#: ../../include/features.php:44
+#: ../../include/features.php:50
msgid ""
"Allow optional encryption of content end-to-end with a shared secret key"
msgstr "Tillat valgfri kryptering av innhold ende-til-ende via en delt hemmelig nøkkel"
-#: ../../include/features.php:49
+#: ../../include/features.php:55
msgid "Network and Stream Filtering"
msgstr "Nettverk- og strømfiltrering"
-#: ../../include/features.php:50
+#: ../../include/features.php:56
msgid "Search by Date"
msgstr "Søk etter dato"
-#: ../../include/features.php:50
+#: ../../include/features.php:56
msgid "Ability to select posts by date ranges"
msgstr "Mulighet for å velge innlegg etter datoområde"
-#: ../../include/features.php:51
+#: ../../include/features.php:57
msgid "Collections Filter"
msgstr "Filter for samlinger"
-#: ../../include/features.php:51
+#: ../../include/features.php:57
msgid "Enable widget to display Network posts only from selected collections"
msgstr "Skru på miniprogram for å vise Nettverksinnlegg bare fra valgte samlinger"
-#: ../../include/features.php:52 ../../include/widgets.php:265
-msgid "Saved Searches"
-msgstr "Lagrede søk"
-
-#: ../../include/features.php:52
+#: ../../include/features.php:58
msgid "Save search terms for re-use"
msgstr "Lagre søkeuttrykk for senere bruk"
-#: ../../include/features.php:53
+#: ../../include/features.php:59
msgid "Network Personal Tab"
msgstr "Nettverk personlig fane"
-#: ../../include/features.php:53
+#: ../../include/features.php:59
msgid "Enable tab to display only Network posts that you've interacted on"
msgstr "Skru på fane for å bare vise Nettverksinnlegg som du har deltatt i"
-#: ../../include/features.php:54
+#: ../../include/features.php:60
msgid "Network New Tab"
msgstr "Nettverk Ny fane"
-#: ../../include/features.php:54
+#: ../../include/features.php:60
msgid "Enable tab to display all new Network activity"
msgstr "Skru på fane for å vise all ny nettverksaktivitet"
-#: ../../include/features.php:55
+#: ../../include/features.php:61
msgid "Affinity Tool"
msgstr "Nærhetsverktøy"
-#: ../../include/features.php:55
+#: ../../include/features.php:61
msgid "Filter stream activity by depth of relationships"
msgstr "Filtrer strømaktiviteten etter releasjonsdybde"
-#: ../../include/features.php:56
+#: ../../include/features.php:62
msgid "Suggest Channels"
msgstr "Foreslå kanaler"
-#: ../../include/features.php:56
+#: ../../include/features.php:62
msgid "Show channel suggestions"
msgstr "Vis kanalforslag"
-#: ../../include/features.php:61
+#: ../../include/features.php:67
msgid "Post/Comment Tools"
msgstr "Innlegg-/Kommentar-verktøy"
-#: ../../include/features.php:63
+#: ../../include/features.php:69
msgid "Edit Sent Posts"
msgstr "Endre publiserte innlegg"
-#: ../../include/features.php:63
+#: ../../include/features.php:69
msgid "Edit and correct posts and comments after sending"
msgstr "Endre og korrigere innlegg og kommentarer etter sending"
-#: ../../include/features.php:64
+#: ../../include/features.php:70
msgid "Tagging"
msgstr "Merking"
-#: ../../include/features.php:64
+#: ../../include/features.php:70
msgid "Ability to tag existing posts"
msgstr "Mulighet til å merke eksisterende meldinger"
-#: ../../include/features.php:65
+#: ../../include/features.php:71
msgid "Post Categories"
msgstr "Innleggskategorier"
-#: ../../include/features.php:65
+#: ../../include/features.php:71
msgid "Add categories to your posts"
msgstr "Legg kategorier til dine innlegg"
-#: ../../include/features.php:66
+#: ../../include/features.php:72
msgid "Ability to file posts under folders"
msgstr "Mulighet til å sortere innlegg i mapper"
-#: ../../include/features.php:67
+#: ../../include/features.php:73
msgid "Dislike Posts"
msgstr "Mislik innlegg"
-#: ../../include/features.php:67
+#: ../../include/features.php:73
msgid "Ability to dislike posts/comments"
msgstr "Mulighet til å mislike innlegg/kommentarer"
-#: ../../include/features.php:68
+#: ../../include/features.php:74
msgid "Star Posts"
msgstr "Stjerneinnlegg"
-#: ../../include/features.php:68
+#: ../../include/features.php:74
msgid "Ability to mark special posts with a star indicator"
msgstr "Mulighet til å merke spesielle innlegg med en stjerne"
-#: ../../include/features.php:69
+#: ../../include/features.php:75
msgid "Tag Cloud"
msgstr "Merkelappsky"
-#: ../../include/features.php:69
+#: ../../include/features.php:75
msgid "Provide a personal tag cloud on your channel page"
msgstr "Tilby en personlig merkelappsky på din kanalside"
-#: ../../include/follow.php:23
-msgid "Channel is blocked on this site."
-msgstr "Kanalen er blokkert på dette nettstedet."
+#: ../../include/account.php:23
+msgid "Not a valid email address"
+msgstr "Ikke en gyldig e-postadresse"
-#: ../../include/follow.php:28
-msgid "Channel location missing."
-msgstr "Kanalplassering mangler."
+#: ../../include/account.php:25
+msgid "Your email domain is not among those allowed on this site"
+msgstr "Ditt e-postdomene er ikke blant de som er tillatt på dette stedet"
-#: ../../include/follow.php:54
-msgid "Response from remote channel was incomplete."
-msgstr "Svaret fra den andre kanalen var ikke komplett."
+#: ../../include/account.php:31
+msgid "Your email address is already registered at this site."
+msgstr "Din e-postadresse er allerede registrert på dette nettstedet."
-#: ../../include/follow.php:85
-msgid "Channel was deleted and no longer exists."
-msgstr "Kanalen er slettet og finnes ikke lenger."
+#: ../../include/account.php:64
+msgid "An invitation is required."
+msgstr "En invitasjon er påkrevd."
-#: ../../include/follow.php:132
-msgid "Channel discovery failed."
-msgstr "Kanaloppdagelse mislyktes."
+#: ../../include/account.php:68
+msgid "Invitation could not be verified."
+msgstr "Invitasjon kunne ikke bekreftes."
-#: ../../include/follow.php:149
-msgid "local account not found."
-msgstr "lokal konto ble ikke funnet."
+#: ../../include/account.php:119
+msgid "Please enter the required information."
+msgstr "Vennligst skriv inn nødvendig informasjon."
-#: ../../include/follow.php:158
-msgid "Cannot connect to yourself."
-msgstr "Kan ikke lage forbindelse med deg selv."
+#: ../../include/account.php:187
+msgid "Failed to store account information."
+msgstr "Mislyktes med å lagre kontoinformasjon."
-#: ../../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 "En slettet gruppe med dette navnet ble gjenopprettet. Eksisterende tillatelser for elementet <strong>kan</strong> gjelde for denne gruppen og fremtidige medlemmer. Hvis du ønsket noe annet, vennligst lag en ny gruppe med et annet navn."
+#: ../../include/account.php:245
+#, php-format
+msgid "Registration confirmation for %s"
+msgstr "Registreringsbekreftelse for %s"
-#: ../../include/group.php:223
-msgid "Default privacy group for new contacts"
-msgstr "Standard personverngruppe for nye kontakter"
+#: ../../include/account.php:313
+#, php-format
+msgid "Registration request at %s"
+msgstr "Registreringsforespørsel hos %s"
-#: ../../include/group.php:242 ../../mod/admin.php:763
-msgid "All Channels"
-msgstr "Alle kanaler"
+#: ../../include/account.php:315 ../../include/account.php:342
+#: ../../include/account.php:399
+msgid "Administrator"
+msgstr "Administrator"
-#: ../../include/group.php:264
-msgid "edit"
-msgstr "endre"
+#: ../../include/account.php:337
+msgid "your registration password"
+msgstr "ditt registreringspassord"
-#: ../../include/group.php:285
-msgid "Collections"
-msgstr "Samlinger"
+#: ../../include/account.php:340 ../../include/account.php:397
+#, php-format
+msgid "Registration details for %s"
+msgstr "Registreringsdetaljer for %s"
-#: ../../include/group.php:286
-msgid "Edit collection"
-msgstr "Endre samling"
+#: ../../include/account.php:406
+msgid "Account approved."
+msgstr "Konto godkjent."
-#: ../../include/group.php:287
-msgid "Create a new collection"
-msgstr "Lag en ny samling"
+#: ../../include/account.php:440
+#, php-format
+msgid "Registration revoked for %s"
+msgstr "Registrering trukket tilbake for %s"
-#: ../../include/group.php:288
-msgid "Channels not in any collection"
-msgstr "Kanaler som ikke er i noen samling"
+#: ../../include/account.php:486
+msgid "Account verified. Please login."
+msgstr "Konto bekreftet. Vennligst logg inn."
-#: ../../include/group.php:290 ../../include/widgets.php:266
-msgid "add"
-msgstr "legg til"
+#: ../../include/account.php:648 ../../include/account.php:650
+msgid "Click here to upgrade."
+msgstr "Klikk her for å oppgradere."
+
+#: ../../include/account.php:656
+msgid "This action exceeds the limits set by your subscription plan."
+msgstr "Denne handlingen går utenfor grensene satt i din abonnementsplan."
+
+#: ../../include/account.php:661
+msgid "This action is not available under your subscription plan."
+msgstr "Denne handlingen er ikke tilgjengelig i din abonnementsplan."
-#: ../../include/identity.php:30 ../../mod/item.php:1266
+#: ../../include/identity.php:31 ../../mod/item.php:1368
msgid "Unable to obtain identity information from database"
msgstr "Klarer ikke å få tak i identitetsinformasjon fra databasen"
-#: ../../include/identity.php:63
+#: ../../include/identity.php:66
msgid "Empty name"
msgstr "Mangler navn"
-#: ../../include/identity.php:65
+#: ../../include/identity.php:68
msgid "Name too long"
msgstr "Navnet er for langt"
-#: ../../include/identity.php:166
+#: ../../include/identity.php:169
msgid "No account identifier"
msgstr "Ingen kontoidentifikator"
-#: ../../include/identity.php:176
+#: ../../include/identity.php:182
msgid "Nickname is required."
msgstr "Kallenavn er påkrevd."
-#: ../../include/identity.php:190
+#: ../../include/identity.php:196
msgid "Reserved nickname. Please choose another."
msgstr "Reservert kallenavn. Vennligst velg et annet."
-#: ../../include/identity.php:195
+#: ../../include/identity.php:201 ../../include/dimport.php:34
msgid ""
"Nickname has unsupported characters or is already being used on this site."
msgstr "Kallenavnet inneholder tegn som ikke er støttet eller det er allerede i bruk på dette nettstedet."
-#: ../../include/identity.php:258
+#: ../../include/identity.php:283
msgid "Unable to retrieve created identity"
msgstr "Klarer ikke å hente den lagede identiteten"
-#: ../../include/identity.php:317
+#: ../../include/identity.php:343
msgid "Default Profile"
msgstr "Standardprofil"
-#: ../../include/identity.php:342 ../../include/widgets.php:400
-#: ../../include/profile_selectors.php:42 ../../mod/connedit.php:431
-msgid "Friends"
-msgstr "Venner"
-
-#: ../../include/identity.php:509
+#: ../../include/identity.php:643
msgid "Requested channel is not available."
msgstr "Forespurt kanal er ikke tilgjengelig."
-#: ../../include/identity.php:557 ../../mod/achievements.php:8
-#: ../../mod/profile.php:16 ../../mod/blocks.php:10 ../../mod/connect.php:13
-#: ../../mod/filestorage.php:40 ../../mod/layouts.php:8
-#: ../../mod/webpages.php:8
+#: ../../include/identity.php:691 ../../mod/achievements.php:11
+#: ../../mod/connect.php:13 ../../mod/profile.php:16 ../../mod/blocks.php:29
+#: ../../mod/webpages.php:29 ../../mod/editblock.php:29
+#: ../../mod/editlayout.php:28 ../../mod/editwebpage.php:28
+#: ../../mod/filestorage.php:48 ../../mod/layouts.php:29 ../../mod/hcard.php:8
msgid "Requested profile is not available."
msgstr "Forespurt profil er ikke tilgjengelig."
-#: ../../include/identity.php:675 ../../include/widgets.php:128
-#: ../../include/widgets.php:168 ../../include/Contact.php:107
-#: ../../mod/directory.php:183 ../../mod/dirprofile.php:164
-#: ../../mod/suggest.php:51 ../../mod/match.php:62
-msgid "Connect"
-msgstr "Koble"
-
-#: ../../include/identity.php:689 ../../mod/profiles.php:612
+#: ../../include/identity.php:854 ../../mod/profiles.php:740
msgid "Change profile photo"
msgstr "Endre profilbilde"
-#: ../../include/identity.php:695
+#: ../../include/identity.php:860
msgid "Profiles"
msgstr "Profiler"
-#: ../../include/identity.php:695
+#: ../../include/identity.php:860
msgid "Manage/edit profiles"
msgstr "HÃ¥ndtere/endre profiler"
-#: ../../include/identity.php:696 ../../mod/profiles.php:613
+#: ../../include/identity.php:861 ../../mod/profiles.php:741
msgid "Create New Profile"
msgstr "Lag ny profil"
-#: ../../include/identity.php:699
-msgid "Edit Profile"
-msgstr "Endre profil"
-
-#: ../../include/identity.php:710 ../../mod/profiles.php:624
+#: ../../include/identity.php:875 ../../mod/profiles.php:752
msgid "Profile Image"
msgstr "Profilbilde"
-#: ../../include/identity.php:713 ../../mod/profiles.php:627
+#: ../../include/identity.php:878
msgid "visible to everybody"
msgstr "synlig for alle"
-#: ../../include/identity.php:714 ../../mod/profiles.php:628
+#: ../../include/identity.php:879 ../../mod/profiles.php:635
+#: ../../mod/profiles.php:756
msgid "Edit visibility"
msgstr "Endre synlighet"
-#: ../../include/identity.php:728 ../../include/identity.php:952
-#: ../../mod/directory.php:158
+#: ../../include/identity.php:895 ../../include/identity.php:1132
msgid "Gender:"
msgstr "Kjønn:"
-#: ../../include/identity.php:729 ../../include/identity.php:977
-#: ../../mod/directory.php:160
+#: ../../include/identity.php:896 ../../include/identity.php:1176
msgid "Status:"
msgstr "Status:"
-#: ../../include/identity.php:730 ../../include/identity.php:988
-#: ../../mod/directory.php:162
+#: ../../include/identity.php:897 ../../include/identity.php:1187
msgid "Homepage:"
msgstr "Hjemmeside:"
-#: ../../include/identity.php:731 ../../mod/dirprofile.php:151
+#: ../../include/identity.php:898
msgid "Online Now"
msgstr "Online nå"
-#: ../../include/identity.php:796 ../../include/identity.php:876
-#: ../../mod/ping.php:262
+#: ../../include/identity.php:976 ../../include/identity.php:1056
+#: ../../mod/ping.php:318
msgid "g A l F d"
msgstr "g A l F d"
-#: ../../include/identity.php:797 ../../include/identity.php:877
+#: ../../include/identity.php:977 ../../include/identity.php:1057
msgid "F d"
msgstr "F d"
-#: ../../include/identity.php:842 ../../include/identity.php:917
-#: ../../mod/ping.php:284
+#: ../../include/identity.php:1022 ../../include/identity.php:1097
+#: ../../mod/ping.php:340
msgid "[today]"
msgstr "[idag]"
-#: ../../include/identity.php:854
+#: ../../include/identity.php:1034
msgid "Birthday Reminders"
msgstr "Fødselsdagspåminnnelser"
-#: ../../include/identity.php:855
+#: ../../include/identity.php:1035
msgid "Birthdays this week:"
msgstr "Fødselsdager denne uken:"
-#: ../../include/identity.php:910
+#: ../../include/identity.php:1090
msgid "[No description]"
msgstr "[Ingen beskrivelse]"
-#: ../../include/identity.php:928
+#: ../../include/identity.php:1108
msgid "Event Reminders"
msgstr "Hendelsespåminnelser"
-#: ../../include/identity.php:929
+#: ../../include/identity.php:1109
msgid "Events this week:"
msgstr "Hendelser denne uken:"
-#: ../../include/identity.php:942 ../../include/identity.php:1031
-#: ../../include/apps.php:128 ../../mod/profperm.php:112
+#: ../../include/identity.php:1122 ../../include/identity.php:1240
+#: ../../include/apps.php:136 ../../mod/profperm.php:112
msgid "Profile"
msgstr "Profil"
-#: ../../include/identity.php:950 ../../mod/settings.php:935
+#: ../../include/identity.php:1130 ../../mod/settings.php:984
msgid "Full Name:"
msgstr "Fullt navn:"
-#: ../../include/identity.php:962
+#: ../../include/identity.php:1137
+msgid "Like this channel"
+msgstr "Lik denne kanalen"
+
+#: ../../include/identity.php:1161
msgid "j F, Y"
msgstr "j F, Y"
-#: ../../include/identity.php:963
+#: ../../include/identity.php:1162
msgid "j F"
msgstr "j F"
-#: ../../include/identity.php:970
+#: ../../include/identity.php:1169
msgid "Birthday:"
msgstr "Fødselsdag:"
-#: ../../include/identity.php:974
+#: ../../include/identity.php:1173
msgid "Age:"
msgstr "Alder:"
-#: ../../include/identity.php:983
+#: ../../include/identity.php:1182
#, php-format
msgid "for %1$d %2$s"
msgstr "for %1$d %2$s"
-#: ../../include/identity.php:986 ../../mod/profiles.php:535
+#: ../../include/identity.php:1185 ../../mod/profiles.php:657
msgid "Sexual Preference:"
msgstr "Seksuell preferanse:"
-#: ../../include/identity.php:990 ../../mod/profiles.php:537
+#: ../../include/identity.php:1189 ../../mod/profiles.php:659
msgid "Hometown:"
msgstr "Hjemby:"
-#: ../../include/identity.php:992
+#: ../../include/identity.php:1191
msgid "Tags:"
msgstr "Merkelapper:"
-#: ../../include/identity.php:994 ../../mod/profiles.php:538
+#: ../../include/identity.php:1193 ../../mod/profiles.php:660
msgid "Political Views:"
msgstr "Politiske synspunkter:"
-#: ../../include/identity.php:996
+#: ../../include/identity.php:1195
msgid "Religion:"
msgstr "Religion:"
-#: ../../include/identity.php:998 ../../mod/directory.php:164
+#: ../../include/identity.php:1197
msgid "About:"
msgstr "Om:"
-#: ../../include/identity.php:1000
+#: ../../include/identity.php:1199
msgid "Hobbies/Interests:"
msgstr "Hobbyer/interesser:"
-#: ../../include/identity.php:1002 ../../mod/profiles.php:541
+#: ../../include/identity.php:1201 ../../mod/profiles.php:663
msgid "Likes:"
msgstr "Liker:"
-#: ../../include/identity.php:1004 ../../mod/profiles.php:542
+#: ../../include/identity.php:1203 ../../mod/profiles.php:664
msgid "Dislikes:"
msgstr "Misliker:"
-#: ../../include/identity.php:1007
+#: ../../include/identity.php:1206
msgid "Contact information and Social Networks:"
msgstr "Kontaktinformasjon og sosiale nettverk:"
-#: ../../include/identity.php:1009
+#: ../../include/identity.php:1208
msgid "My other channels:"
msgstr "Mine andre kanaler:"
-#: ../../include/identity.php:1011
+#: ../../include/identity.php:1210
msgid "Musical interests:"
msgstr "Musikkinteresse:"
-#: ../../include/identity.php:1013
+#: ../../include/identity.php:1212
msgid "Books, literature:"
msgstr "Bøker, litteratur:"
-#: ../../include/identity.php:1015
+#: ../../include/identity.php:1214
msgid "Television:"
msgstr "TV:"
-#: ../../include/identity.php:1017
+#: ../../include/identity.php:1216
msgid "Film/dance/culture/entertainment:"
msgstr "Film/dans/kultur/underholdning:"
-#: ../../include/identity.php:1019
+#: ../../include/identity.php:1218
msgid "Love/Romance:"
msgstr "Kjærlighet/romantikk:"
-#: ../../include/identity.php:1021
+#: ../../include/identity.php:1220
msgid "Work/employment:"
msgstr "Arbeid/sysselsetting:"
-#: ../../include/identity.php:1023
+#: ../../include/identity.php:1222
msgid "School/education:"
msgstr "Skole/utdannelse:"
-#: ../../include/network.php:652
-msgid "view full size"
-msgstr "vis full størrelse"
+#: ../../include/identity.php:1242
+msgid "Like this thing"
+msgstr "Lik denne tingen"
-#: ../../include/text.php:320
-msgid "prev"
-msgstr "forrige"
+#: ../../include/items.php:377 ../../mod/profperm.php:23
+#: ../../mod/subthread.php:49 ../../mod/group.php:68 ../../mod/like.php:246
+#: ../../index.php:389
+msgid "Permission denied"
+msgstr "Tillatelse avvist"
-#: ../../include/text.php:322
-msgid "first"
-msgstr "første"
+#: ../../include/items.php:964 ../../include/items.php:1009
+msgid "(Unknown)"
+msgstr "(Ukjent)"
-#: ../../include/text.php:351
-msgid "last"
-msgstr "siste"
+#: ../../include/items.php:1165
+msgid "Visible to anybody on the internet."
+msgstr "Synlig for enhver på Internett."
-#: ../../include/text.php:354
-msgid "next"
-msgstr "neste"
+#: ../../include/items.php:1167
+msgid "Visible to you only."
+msgstr "Synlig bare for deg."
-#: ../../include/text.php:366
-msgid "older"
-msgstr "eldre"
+#: ../../include/items.php:1169
+msgid "Visible to anybody in this network."
+msgstr "Synlig for enhver i dette nettverket."
-#: ../../include/text.php:368
-msgid "newer"
-msgstr "nyere"
+#: ../../include/items.php:1171
+msgid "Visible to anybody authenticated."
+msgstr "Synlig for enhver som er autentisert."
-#: ../../include/text.php:729
-msgid "No connections"
-msgstr "Ingen forbindelser"
-
-#: ../../include/text.php:742
+#: ../../include/items.php:1173
#, php-format
-msgid "%d Connection"
-msgid_plural "%d Connections"
-msgstr[0] "%d forbindelse"
-msgstr[1] "%d forbindelser"
-
-#: ../../include/text.php:754
-msgid "View Connections"
-msgstr "Vis forbindelser"
-
-#: ../../include/text.php:815 ../../include/text.php:829
-#: ../../include/widgets.php:186 ../../mod/rbmark.php:28
-#: ../../mod/rbmark.php:98 ../../mod/filer.php:50
-msgid "Save"
-msgstr "Lagre"
-
-#: ../../include/text.php:895
-msgid "poke"
-msgstr "prikk"
-
-#: ../../include/text.php:896
-msgid "ping"
-msgstr "varsle"
-
-#: ../../include/text.php:896
-msgid "pinged"
-msgstr "varslet"
-
-#: ../../include/text.php:897
-msgid "prod"
-msgstr "oppildne"
-
-#: ../../include/text.php:897
-msgid "prodded"
-msgstr "oppildnet"
-
-#: ../../include/text.php:898
-msgid "slap"
-msgstr "daske"
+msgid "Visible to anybody on %s."
+msgstr "Synlig for alle på %s."
-#: ../../include/text.php:898
-msgid "slapped"
-msgstr "dasket"
-
-#: ../../include/text.php:899
-msgid "finger"
-msgstr "fingre"
+#: ../../include/items.php:1175
+msgid "Visible to all connections."
+msgstr "Synlig for alle forbindelser."
-#: ../../include/text.php:899
-msgid "fingered"
-msgstr "fingret"
+#: ../../include/items.php:1177
+msgid "Visible to approved connections."
+msgstr "Synlig for godkjente forbindelser."
-#: ../../include/text.php:900
-msgid "rebuff"
-msgstr "tilbakevise"
-
-#: ../../include/text.php:900
-msgid "rebuffed"
-msgstr "tilbakeviste"
-
-#: ../../include/text.php:909
-msgid "happy"
-msgstr "glad"
-
-#: ../../include/text.php:910
-msgid "sad"
-msgstr "trist"
-
-#: ../../include/text.php:911
-msgid "mellow"
-msgstr "dempet"
-
-#: ../../include/text.php:912
-msgid "tired"
-msgstr "trøtt"
-
-#: ../../include/text.php:913
-msgid "perky"
-msgstr "oppkvikket"
-
-#: ../../include/text.php:914
-msgid "angry"
-msgstr "sint"
-
-#: ../../include/text.php:915
-msgid "stupified"
-msgstr "sløvet"
-
-#: ../../include/text.php:916
-msgid "puzzled"
-msgstr "forundret"
-
-#: ../../include/text.php:917
-msgid "interested"
-msgstr "interessert"
-
-#: ../../include/text.php:918
-msgid "bitter"
-msgstr "bitter"
-
-#: ../../include/text.php:919
-msgid "cheerful"
-msgstr "munter"
+#: ../../include/items.php:1179
+msgid "Visible to specific connections."
+msgstr "Synlig for spesifikke forbindelser."
-#: ../../include/text.php:920
-msgid "alive"
-msgstr "levende"
-
-#: ../../include/text.php:921
-msgid "annoyed"
-msgstr "irritert"
-
-#: ../../include/text.php:922
-msgid "anxious"
-msgstr "nervøs"
-
-#: ../../include/text.php:923
-msgid "cranky"
-msgstr "gretten"
-
-#: ../../include/text.php:924
-msgid "disturbed"
-msgstr "foruroliget"
-
-#: ../../include/text.php:925
-msgid "frustrated"
-msgstr "frustrert"
-
-#: ../../include/text.php:926
-msgid "depressed"
-msgstr "lei seg"
-
-#: ../../include/text.php:927
-msgid "motivated"
-msgstr "motivert"
-
-#: ../../include/text.php:928
-msgid "relaxed"
-msgstr "avslappet"
-
-#: ../../include/text.php:929
-msgid "surprised"
-msgstr "overrasket"
-
-#: ../../include/text.php:1090
-msgid "Monday"
-msgstr "mandag"
-
-#: ../../include/text.php:1090
-msgid "Tuesday"
-msgstr "tirsdag"
-
-#: ../../include/text.php:1090
-msgid "Wednesday"
-msgstr "onsdag"
-
-#: ../../include/text.php:1090
-msgid "Thursday"
-msgstr "torsdag"
-
-#: ../../include/text.php:1090
-msgid "Friday"
-msgstr "fredag"
-
-#: ../../include/text.php:1090
-msgid "Saturday"
-msgstr "lørdag"
-
-#: ../../include/text.php:1090
-msgid "Sunday"
-msgstr "søndag"
-
-#: ../../include/text.php:1094
-msgid "January"
-msgstr "januar"
-
-#: ../../include/text.php:1094
-msgid "February"
-msgstr "februar"
-
-#: ../../include/text.php:1094
-msgid "March"
-msgstr "mars"
-
-#: ../../include/text.php:1094
-msgid "April"
-msgstr "april"
-
-#: ../../include/text.php:1094
-msgid "May"
-msgstr "mai"
-
-#: ../../include/text.php:1094
-msgid "June"
-msgstr "juni"
-
-#: ../../include/text.php:1094
-msgid "July"
-msgstr "juli"
-
-#: ../../include/text.php:1094
-msgid "August"
-msgstr "august"
-
-#: ../../include/text.php:1094
-msgid "September"
-msgstr "september"
-
-#: ../../include/text.php:1094
-msgid "October"
-msgstr "oktober"
-
-#: ../../include/text.php:1094
-msgid "November"
-msgstr "november"
-
-#: ../../include/text.php:1094
-msgid "December"
-msgstr "desember"
-
-#: ../../include/text.php:1172
-msgid "unknown.???"
-msgstr "ukjent.???"
-
-#: ../../include/text.php:1173
-msgid "bytes"
-msgstr "bytes"
-
-#: ../../include/text.php:1208
-msgid "remove category"
-msgstr "fjern kategori"
-
-#: ../../include/text.php:1257
-msgid "remove from file"
-msgstr "fjern fra fil"
-
-#: ../../include/text.php:1318 ../../include/text.php:1330
-msgid "Click to open/close"
-msgstr "Klikk for å åpne/lukke"
-
-#: ../../include/text.php:1485 ../../mod/events.php:355
-msgid "Link to Source"
-msgstr "Lenke til kilde"
-
-#: ../../include/text.php:1504
-msgid "Select a page layout: "
-msgstr "Velg en side-layout:"
-
-#: ../../include/text.php:1507 ../../include/text.php:1572
-msgid "default"
-msgstr "standard"
-
-#: ../../include/text.php:1543
-msgid "Page content type: "
-msgstr "Sidens innholdstype:"
-
-#: ../../include/text.php:1584
-msgid "Select an alternate language"
-msgstr "Velg et annet språk"
-
-#: ../../include/text.php:1718
-msgid "activity"
-msgstr "aktivitet"
-
-#: ../../include/text.php:1977
-msgid "Design"
-msgstr "Formgivning"
-
-#: ../../include/text.php:1979
-msgid "Blocks"
-msgstr "Byggeklosser"
-
-#: ../../include/text.php:1980
-msgid "Menus"
-msgstr "Menyer"
-
-#: ../../include/text.php:1981
-msgid "Layouts"
-msgstr "Layout"
-
-#: ../../include/text.php:1982
-msgid "Pages"
-msgstr "Sider"
-
-#: ../../include/apps.php:118
-msgid "Site Admin"
-msgstr "Nettstedsadministrator"
-
-#: ../../include/apps.php:120
-msgid "Address Book"
-msgstr "Adressebok"
-
-#: ../../include/apps.php:134 ../../mod/mood.php:131
-msgid "Mood"
-msgstr "Stemning"
-
-#: ../../include/apps.php:138
-msgid "Probe"
-msgstr "Undersøk"
-
-#: ../../include/apps.php:139
-msgid "Suggest"
-msgstr "Forreslå"
-
-#: ../../include/apps.php:224 ../../mod/settings.php:79
-#: ../../mod/settings.php:541
-msgid "Update"
-msgstr "Oppdater"
-
-#: ../../include/apps.php:224
-msgid "Install"
-msgstr "Installer"
-
-#: ../../include/apps.php:229
-msgid "Purchase"
-msgstr "Kjøp"
+#: ../../include/items.php:3946 ../../mod/thing.php:76
+#: ../../mod/display.php:32 ../../mod/filestorage.php:26
+#: ../../mod/admin.php:168 ../../mod/admin.php:896 ../../mod/admin.php:1099
+#: ../../mod/viewsrc.php:20
+msgid "Item not found."
+msgstr "Elementet ble ikke funnet."
-#: ../../include/apps.php:313 ../../include/apps.php:364
-#: ../../mod/connedit.php:434
-msgid "Unknown"
-msgstr "Ukjent"
+#: ../../include/items.php:4402 ../../mod/group.php:38 ../../mod/group.php:140
+msgid "Collection not found."
+msgstr "Samlingen ble ikke funnet."
-#: ../../include/zot.php:607
-msgid "Invalid data packet"
-msgstr "Ugyldig datapakke"
+#: ../../include/items.php:4417
+msgid "Collection is empty."
+msgstr "Samlingen er tom."
-#: ../../include/zot.php:617
-msgid "Unable to verify channel signature"
-msgstr "Ikke i stand til å sjekke kanalsignaturen"
+#: ../../include/items.php:4424
+#, php-format
+msgid "Collection: %s"
+msgstr "Samling: %s"
-#: ../../include/zot.php:814
+#: ../../include/items.php:4435
#, php-format
-msgid "Unable to verify site signature for %s"
-msgstr "Ikke i stand til å bekrefte signaturen til %s"
+msgid "Connection: %s"
+msgstr "Forbindelse: %s"
+
+#: ../../include/items.php:4438
+msgid "Connection not found."
+msgstr "Forbindelsen ble ikke funnet."
#: ../../include/message.php:18
msgid "No recipient provided."
@@ -2563,336 +2541,215 @@ msgstr "Ingen mottaker angitt."
msgid "[no subject]"
msgstr "[ikke noe emne]"
-#: ../../include/message.php:42
+#: ../../include/message.php:45
msgid "Unable to determine sender."
msgstr "Kan ikke avgjøre avsender."
-#: ../../include/message.php:143
+#: ../../include/message.php:200
msgid "Stored post could not be verified."
msgstr "Lagret innlegg kunne ikke bekreftes."
-#: ../../include/plugin.php:486 ../../include/plugin.php:488
-msgid "Click here to upgrade."
-msgstr "Klikk her for å oppgradere."
-
-#: ../../include/plugin.php:494
-msgid "This action exceeds the limits set by your subscription plan."
-msgstr "Denne handlingen går utenfor grensene satt i din abonnementsplan."
-
-#: ../../include/plugin.php:499
-msgid "This action is not available under your subscription plan."
-msgstr "Denne handlingen er ikke tilgjengelig i din abonnementsplan."
-
-#: ../../include/widgets.php:80
-msgid "System"
-msgstr "System"
-
-#: ../../include/widgets.php:83
-msgid "Create Personal App"
-msgstr "Lag personlig app"
+#: ../../include/network.php:590
+msgid "view full size"
+msgstr "vis full størrelse"
-#: ../../include/widgets.php:84
-msgid "Edit Personal App"
-msgstr "Endre personlig app"
+#: ../../include/attach.php:221 ../../include/attach.php:275
+msgid "Item was not found."
+msgstr "Elementet ble ikke funnet."
-#: ../../include/widgets.php:130 ../../mod/suggest.php:53
-msgid "Ignore/Hide"
-msgstr "Ignorer/Skjul"
+#: ../../include/attach.php:331
+msgid "No source file."
+msgstr "Ingen kildefil."
-#: ../../include/widgets.php:136 ../../mod/connections.php:267
-msgid "Suggestions"
-msgstr "Forslag"
+#: ../../include/attach.php:348
+msgid "Cannot locate file to replace"
+msgstr "Kan ikke finne filen som skal byttes ut"
-#: ../../include/widgets.php:137
-msgid "See more..."
-msgstr "Se mer..."
+#: ../../include/attach.php:366
+msgid "Cannot locate file to revise/update"
+msgstr "Finner ikke filen som skal revideres/oppdateres"
-#: ../../include/widgets.php:159
+#: ../../include/attach.php:377
#, php-format
-msgid "You have %1$.0f of %2$.0f allowed connections."
-msgstr "Du har %1$.0f av %2$.0f tillate forbindelser."
-
-#: ../../include/widgets.php:165
-msgid "Add New Connection"
-msgstr "Legg til ny forbindelse"
-
-#: ../../include/widgets.php:166
-msgid "Enter the channel address"
-msgstr "Skriv kanal-adressen"
-
-#: ../../include/widgets.php:167
-msgid "Example: bob@example.com, http://example.com/barbara"
-msgstr "Eksempel: ola.nordmann@eksempel.no, http://eksempel.no/karinordmann"
-
-#: ../../include/widgets.php:184
-msgid "Notes"
-msgstr "Merknader"
-
-#: ../../include/widgets.php:256
-msgid "Remove term"
-msgstr "Fjern begrep"
-
-#: ../../include/widgets.php:335
-msgid "Archives"
-msgstr "Arkiv"
-
-#: ../../include/widgets.php:397
-msgid "Refresh"
-msgstr "Forny"
-
-#: ../../include/widgets.php:398 ../../mod/connedit.php:428
-msgid "Me"
-msgstr "Meg"
-
-#: ../../include/widgets.php:399 ../../mod/connedit.php:430
-msgid "Best Friends"
-msgstr "Bestevenner"
+msgid "File exceeds size limit of %d"
+msgstr "Filens størrelse overgår grensen på %d"
-#: ../../include/widgets.php:401
-msgid "Co-workers"
-msgstr "Medarbeidere"
+#: ../../include/attach.php:389
+#, php-format
+msgid "You have reached your limit of %1$.0f Mbytes attachment storage."
+msgstr "Du har nådd din lagringsgrense for vedlegg på %1$.0f Mbytes."
-#: ../../include/widgets.php:402 ../../mod/connedit.php:432
-msgid "Former Friends"
-msgstr "Tidligere venner"
+#: ../../include/attach.php:472
+msgid "File upload failed. Possible system limit or action terminated."
+msgstr "Mislyktes med å laste opp filen. Mulig systemgrense eller handling avbrutt."
-#: ../../include/widgets.php:403 ../../mod/connedit.php:433
-msgid "Acquaintances"
-msgstr "Bekjente"
+#: ../../include/attach.php:484
+msgid "Stored file could not be verified. Upload failed."
+msgstr "Lagret fil kunne ikke bekreftes. Opplasting mislyktes."
-#: ../../include/widgets.php:404
-msgid "Everybody"
-msgstr "Alle"
+#: ../../include/attach.php:526 ../../include/attach.php:543
+msgid "Path not available."
+msgstr "Stien er ikke tilgjengelig."
-#: ../../include/widgets.php:436
-msgid "Account settings"
-msgstr "Kontoinnstillinger"
+#: ../../include/attach.php:589
+msgid "Empty pathname"
+msgstr "Tomt sti-navn"
-#: ../../include/widgets.php:442
-msgid "Channel settings"
-msgstr "Kanalinnstillinger"
+#: ../../include/attach.php:605
+msgid "duplicate filename or path"
+msgstr "duplikat av filnavn eller sti"
-#: ../../include/widgets.php:448
-msgid "Additional features"
-msgstr "Tilleggsfunksjoner"
+#: ../../include/attach.php:629
+msgid "Path not found."
+msgstr "Stien ble ikke funnet."
-#: ../../include/widgets.php:454
-msgid "Feature settings"
-msgstr "Funksjonsinnstillinger"
+#: ../../include/attach.php:680
+msgid "mkdir failed."
+msgstr "mkdir mislyktes."
-#: ../../include/widgets.php:460
-msgid "Display settings"
-msgstr "Visningsinnstillinger"
+#: ../../include/attach.php:684
+msgid "database storage failed."
+msgstr "databaselagring mislyktes."
-#: ../../include/widgets.php:466
-msgid "Connected apps"
-msgstr "Tilkoblede app-er"
+#: ../../include/auth.php:116
+msgid "Logged out."
+msgstr "Logget ut."
-#: ../../include/widgets.php:472
-msgid "Export channel"
-msgstr "Eksporter kanal"
+#: ../../include/auth.php:257
+msgid "Failed authentication"
+msgstr "Mislykket autentisering"
-#: ../../include/widgets.php:484
-msgid "Automatic Permissions (Advanced)"
-msgstr "Automatiske tillatelser (avansert)"
+#: ../../include/auth.php:271 ../../mod/openid.php:190
+msgid "Login failed."
+msgstr "Innlogging mislyktes."
-#: ../../include/widgets.php:494
-msgid "Premium Channel Settings"
-msgstr "Premiumkanal-innstillinger"
+#: ../../include/datetime.php:43 ../../include/datetime.php:45
+msgid "Miscellaneous"
+msgstr "Forskjellig"
-#: ../../include/widgets.php:531
-msgid "Check Mail"
-msgstr "Sjekk meldinger"
+#: ../../include/datetime.php:142
+msgid "YYYY-MM-DD or MM-DD"
+msgstr "YYYY-MM-DD eller MM-DD"
-#: ../../include/widgets.php:612
-msgid "Chat Rooms"
-msgstr "Chatrom"
+#: ../../include/datetime.php:248
+msgid "never"
+msgstr "aldri"
-#: ../../include/widgets.php:630
-msgid "Bookmarked Chatrooms"
-msgstr "Bokmerkede chatrom"
+#: ../../include/datetime.php:254
+msgid "less than a second ago"
+msgstr "for mindre enn ett sekund siden"
-#: ../../include/widgets.php:648
-msgid "Suggested Chatrooms"
-msgstr "Foreslåtte chatrom"
+#: ../../include/datetime.php:257
+msgid "year"
+msgstr "Ã¥r"
-#: ../../include/ItemObject.php:118
-msgid "Save to Folder"
-msgstr "Lagre i mappe"
+#: ../../include/datetime.php:257
+msgid "years"
+msgstr "Ã¥r"
-#: ../../include/ItemObject.php:130 ../../include/ItemObject.php:142
-msgid "View all"
-msgstr "Vis alle"
+#: ../../include/datetime.php:258
+msgid "month"
+msgstr "måned"
-#: ../../include/ItemObject.php:134
-msgctxt "noun"
-msgid "Like"
-msgid_plural "Likes"
-msgstr[0] "Liker"
-msgstr[1] "Liker"
+#: ../../include/datetime.php:258
+msgid "months"
+msgstr "måneder"
-#: ../../include/ItemObject.php:139
-msgctxt "noun"
-msgid "Dislike"
-msgid_plural "Dislikes"
-msgstr[0] "Liker ikke"
-msgstr[1] "Liker ikke"
+#: ../../include/datetime.php:259
+msgid "week"
+msgstr "uke"
-#: ../../include/ItemObject.php:167
-msgid "Add Star"
-msgstr "Legg til stjerne"
+#: ../../include/datetime.php:259
+msgid "weeks"
+msgstr "uker"
-#: ../../include/ItemObject.php:168
-msgid "Remove Star"
-msgstr "Fjern stjerne"
+#: ../../include/datetime.php:260
+msgid "day"
+msgstr "dag"
-#: ../../include/ItemObject.php:169
-msgid "Toggle Star Status"
-msgstr "Skru av og på stjernestatus"
+#: ../../include/datetime.php:260
+msgid "days"
+msgstr "dager"
-#: ../../include/ItemObject.php:173
-msgid "starred"
-msgstr "stjernemerket"
+#: ../../include/datetime.php:261
+msgid "hour"
+msgstr "time"
-#: ../../include/ItemObject.php:190
-msgid "Add Tag"
-msgstr "Legg til merkelapp"
+#: ../../include/datetime.php:261
+msgid "hours"
+msgstr "timer"
-#: ../../include/ItemObject.php:208 ../../mod/photos.php:969
-msgid "I like this (toggle)"
-msgstr "Jeg liker dette (skru av og på)"
+#: ../../include/datetime.php:262
+msgid "minute"
+msgstr "minutt"
-#: ../../include/ItemObject.php:209 ../../mod/photos.php:970
-msgid "I don't like this (toggle)"
-msgstr "Jeg liker ikke dette (skru av og på)"
+#: ../../include/datetime.php:262
+msgid "minutes"
+msgstr "minutter"
-#: ../../include/ItemObject.php:211
-msgid "Share This"
-msgstr "Del dette"
+#: ../../include/datetime.php:263
+msgid "second"
+msgstr "sekund"
-#: ../../include/ItemObject.php:211
-msgid "share"
-msgstr "del"
+#: ../../include/datetime.php:263
+msgid "seconds"
+msgstr "sekunder"
-#: ../../include/ItemObject.php:235 ../../include/ItemObject.php:236
+#: ../../include/datetime.php:272
#, php-format
-msgid "View %s's profile - %s"
-msgstr "Vis %s sin profil - %s"
-
-#: ../../include/ItemObject.php:237
-msgid "to"
-msgstr "til"
-
-#: ../../include/ItemObject.php:238
-msgid "via"
-msgstr "via"
-
-#: ../../include/ItemObject.php:239
-msgid "Wall-to-Wall"
-msgstr "vegg-til-vegg"
-
-#: ../../include/ItemObject.php:240
-msgid "via Wall-To-Wall:"
-msgstr "via vegg-til-vegg:"
-
-#: ../../include/ItemObject.php:274
-msgid "Save Bookmarks"
-msgstr "Lagre bokmerker"
-
-#: ../../include/ItemObject.php:275
-msgid "Add to Calendar"
-msgstr "Legg til i kalender"
-
-#: ../../include/ItemObject.php:283
-msgctxt "noun"
-msgid "Likes"
-msgstr "Liker"
-
-#: ../../include/ItemObject.php:284
-msgctxt "noun"
-msgid "Dislikes"
-msgstr "Liker ikke"
+msgid "%1$d %2$s ago"
+msgstr "%1$d %2$s siden"
-#: ../../include/ItemObject.php:315
+#: ../../include/datetime.php:480
#, php-format
-msgid "%d comment"
-msgid_plural "%d comments"
-msgstr[0] "%d kommentar"
-msgstr[1] "%d kommentarer"
-
-#: ../../include/ItemObject.php:316 ../../include/js_strings.php:7
-msgid "[+] show all"
-msgstr "[+] Vis alle"
-
-#: ../../include/ItemObject.php:580 ../../mod/photos.php:988
-#: ../../mod/photos.php:1075
-msgid "This is you"
-msgstr "Dette er deg"
-
-#: ../../include/ItemObject.php:582 ../../include/js_strings.php:6
-#: ../../mod/photos.php:990 ../../mod/photos.php:1077
-msgid "Comment"
-msgstr "Kommentar"
-
-#: ../../include/ItemObject.php:583 ../../mod/mood.php:135
-#: ../../mod/settings.php:515 ../../mod/settings.php:627
-#: ../../mod/settings.php:655 ../../mod/settings.php:679
-#: ../../mod/settings.php:749 ../../mod/settings.php:927
-#: ../../mod/poke.php:166 ../../mod/profiles.php:515 ../../mod/chat.php:177
-#: ../../mod/chat.php:211 ../../mod/connect.php:92 ../../mod/connedit.php:476
-#: ../../mod/setup.php:307 ../../mod/setup.php:350 ../../mod/pdledit.php:58
-#: ../../mod/sources.php:104 ../../mod/sources.php:138
-#: ../../mod/events.php:492 ../../mod/filestorage.php:135
-#: ../../mod/fsuggest.php:108 ../../mod/group.php:81 ../../mod/admin.php:442
-#: ../../mod/admin.php:751 ../../mod/admin.php:885 ../../mod/admin.php:1018
-#: ../../mod/admin.php:1217 ../../mod/admin.php:1304 ../../mod/thing.php:283
-#: ../../mod/thing.php:326 ../../mod/import.php:393 ../../mod/invite.php:156
-#: ../../mod/mail.php:223 ../../mod/mail.php:335 ../../mod/photos.php:563
-#: ../../mod/photos.php:668 ../../mod/photos.php:951 ../../mod/photos.php:991
-#: ../../mod/photos.php:1078 ../../mod/appman.php:99
-#: ../../view/theme/apw/php/config.php:256
-#: ../../view/theme/blogga/php/config.php:67
-#: ../../view/theme/blogga/view/theme/blog/config.php:67
-#: ../../view/theme/redbasic/php/config.php:99
-msgid "Submit"
-msgstr "Send"
-
-#: ../../include/ItemObject.php:584
-msgid "Bold"
-msgstr "Uthevet"
+msgid "%1$s's birthday"
+msgstr "%1$s sin fødselsdag"
-#: ../../include/ItemObject.php:585
-msgid "Italic"
-msgstr "Kursiv"
+#: ../../include/datetime.php:481
+#, php-format
+msgid "Happy Birthday %1$s"
+msgstr "Gratulerer med dagen, %1$s !"
-#: ../../include/ItemObject.php:586
-msgid "Underline"
-msgstr "Understreket"
+#: ../../include/photos.php:105
+#, php-format
+msgid "Image exceeds website size limit of %lu bytes"
+msgstr "Bilde overstiger nettstedets størrelsesbegrensning på %lu bytes"
-#: ../../include/ItemObject.php:587
-msgid "Quote"
-msgstr "Sitat"
+#: ../../include/photos.php:112
+msgid "Image file is empty."
+msgstr "Bildefilen er tom."
-#: ../../include/ItemObject.php:588
-msgid "Code"
-msgstr "Kode"
+#: ../../include/photos.php:141 ../../mod/profile_photo.php:216
+msgid "Unable to process image"
+msgstr "Kan ikke behandle bildet"
-#: ../../include/ItemObject.php:589
-msgid "Image"
-msgstr "Bilde"
+#: ../../include/photos.php:213
+msgid "Photo storage failed."
+msgstr "Bildelagring mislyktes."
-#: ../../include/ItemObject.php:590
-msgid "Link"
-msgstr "Lenke"
+#: ../../include/photos.php:345
+msgid "Upload New Photos"
+msgstr "Last opp nye bilder"
-#: ../../include/ItemObject.php:591
-msgid "Video"
-msgstr "Video"
+#: ../../include/security.php:323
+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 "Skjemaets sikkerhetspollett var ikke gyldig. Dette skjedde antakelig fordi skjemaet har vært åpnet for lenge (>3 timer) før det ble sendt inn."
#: ../../include/js_strings.php:5
msgid "Delete this item?"
msgstr "Slett dette elementet?"
+#: ../../include/js_strings.php:6 ../../include/ItemObject.php:598
+#: ../../mod/photos.php:995 ../../mod/photos.php:1105
+msgid "Comment"
+msgstr "Kommentar"
+
+#: ../../include/js_strings.php:7 ../../include/ItemObject.php:332
+msgid "[+] show all"
+msgstr "[+] Vis alle"
+
#: ../../include/js_strings.php:8
msgid "[-] show less"
msgstr "[-] Vis mindre"
@@ -2933,92 +2790,90 @@ msgstr "Varsel: Tillatelser har blitt endret, men de har ennå ikke blitt sendt
msgid "close all"
msgstr "Lukk alle"
-#: ../../include/js_strings.php:19
+#: ../../include/js_strings.php:18
+msgid "Nothing new here"
+msgstr "Ikke noe nytt her"
+
+#: ../../include/js_strings.php:20
msgid "timeago.prefixAgo"
msgstr "timeago.prefixAgo"
-#: ../../include/js_strings.php:20
+#: ../../include/js_strings.php:21
msgid "timeago.prefixFromNow"
msgstr "timeago.prefixFromNow"
-#: ../../include/js_strings.php:21
+#: ../../include/js_strings.php:22
msgid "ago"
msgstr "siden"
-#: ../../include/js_strings.php:22
+#: ../../include/js_strings.php:23
msgid "from now"
msgstr "fra nå"
-#: ../../include/js_strings.php:23
+#: ../../include/js_strings.php:24
msgid "less than a minute"
msgstr "mindre enn ett minutt"
-#: ../../include/js_strings.php:24
+#: ../../include/js_strings.php:25
msgid "about a minute"
msgstr "omtrent et minutt"
-#: ../../include/js_strings.php:25
+#: ../../include/js_strings.php:26
#, php-format
msgid "%d minutes"
msgstr "%d minutter"
-#: ../../include/js_strings.php:26
+#: ../../include/js_strings.php:27
msgid "about an hour"
msgstr "omtrent en time"
-#: ../../include/js_strings.php:27
+#: ../../include/js_strings.php:28
#, php-format
msgid "about %d hours"
msgstr "omtrent %d timer"
-#: ../../include/js_strings.php:28
+#: ../../include/js_strings.php:29
msgid "a day"
msgstr "en dag"
-#: ../../include/js_strings.php:29
+#: ../../include/js_strings.php:30
#, php-format
msgid "%d days"
msgstr "%d dager"
-#: ../../include/js_strings.php:30
+#: ../../include/js_strings.php:31
msgid "about a month"
msgstr "omtrent en måned"
-#: ../../include/js_strings.php:31
+#: ../../include/js_strings.php:32
#, php-format
msgid "%d months"
msgstr "%d måneder"
-#: ../../include/js_strings.php:32
+#: ../../include/js_strings.php:33
msgid "about a year"
msgstr "omtrent et år"
-#: ../../include/js_strings.php:33
+#: ../../include/js_strings.php:34
#, php-format
msgid "%d years"
msgstr "%d år"
-#: ../../include/js_strings.php:34
+#: ../../include/js_strings.php:35
msgid " "
msgstr " "
-#: ../../include/js_strings.php:35
+#: ../../include/js_strings.php:36
msgid "timeago.numbers"
msgstr "timeago.numbers"
-#: ../../include/Contact.php:123
-msgid "New window"
-msgstr "Nytt vindu"
-
-#: ../../include/Contact.php:124
-msgid "Open the selected location in a different window or browser tab"
-msgstr "Ã…pne det valgte stedet i et annet vindu eller nettleser-fane"
-
#: ../../include/profile_selectors.php:6
+#: ../../include/profile_selectors.php:23
msgid "Male"
msgstr "Mannlig"
#: ../../include/profile_selectors.php:6
+#: ../../include/profile_selectors.php:23
msgid "Female"
msgstr "Kvinnelig"
@@ -3063,910 +2918,1646 @@ msgid "Non-specific"
msgstr "Ubestemt"
#: ../../include/profile_selectors.php:6
-msgid "Other"
-msgstr "Annen"
-
-#: ../../include/profile_selectors.php:6
msgid "Undecided"
msgstr "Ubestemt"
-#: ../../include/profile_selectors.php:23
+#: ../../include/profile_selectors.php:42
+#: ../../include/profile_selectors.php:61
msgid "Males"
msgstr "Menn"
-#: ../../include/profile_selectors.php:23
+#: ../../include/profile_selectors.php:42
+#: ../../include/profile_selectors.php:61
msgid "Females"
msgstr "Kvinner"
-#: ../../include/profile_selectors.php:23
+#: ../../include/profile_selectors.php:42
msgid "Gay"
msgstr "Homo"
-#: ../../include/profile_selectors.php:23
+#: ../../include/profile_selectors.php:42
msgid "Lesbian"
msgstr "Lesbisk"
-#: ../../include/profile_selectors.php:23
+#: ../../include/profile_selectors.php:42
msgid "No Preference"
msgstr "Ingen preferanse"
-#: ../../include/profile_selectors.php:23
+#: ../../include/profile_selectors.php:42
msgid "Bisexual"
msgstr "Biseksuell"
-#: ../../include/profile_selectors.php:23
+#: ../../include/profile_selectors.php:42
msgid "Autosexual"
msgstr "Autoseksuell"
-#: ../../include/profile_selectors.php:23
+#: ../../include/profile_selectors.php:42
msgid "Abstinent"
msgstr "Avholdende"
-#: ../../include/profile_selectors.php:23
+#: ../../include/profile_selectors.php:42
msgid "Virgin"
msgstr "Jomfru"
-#: ../../include/profile_selectors.php:23
+#: ../../include/profile_selectors.php:42
msgid "Deviant"
msgstr "Avviker"
-#: ../../include/profile_selectors.php:23
+#: ../../include/profile_selectors.php:42
msgid "Fetish"
msgstr "Fetisj"
-#: ../../include/profile_selectors.php:23
+#: ../../include/profile_selectors.php:42
msgid "Oodles"
msgstr "Masse"
-#: ../../include/profile_selectors.php:23
+#: ../../include/profile_selectors.php:42
msgid "Nonsexual"
msgstr "Ikke-seksuell"
-#: ../../include/profile_selectors.php:42
+#: ../../include/profile_selectors.php:80
+#: ../../include/profile_selectors.php:97
msgid "Single"
msgstr "Enslig"
-#: ../../include/profile_selectors.php:42
+#: ../../include/profile_selectors.php:80
msgid "Lonely"
msgstr "Ensom"
-#: ../../include/profile_selectors.php:42
+#: ../../include/profile_selectors.php:80
msgid "Available"
msgstr "Tilgjengelig"
-#: ../../include/profile_selectors.php:42
+#: ../../include/profile_selectors.php:80
msgid "Unavailable"
msgstr "Ikke tilgjengelig"
-#: ../../include/profile_selectors.php:42
+#: ../../include/profile_selectors.php:80
msgid "Has crush"
msgstr "Er forelsket"
-#: ../../include/profile_selectors.php:42
+#: ../../include/profile_selectors.php:80
msgid "Infatuated"
msgstr "Betatt"
-#: ../../include/profile_selectors.php:42
+#: ../../include/profile_selectors.php:80
+#: ../../include/profile_selectors.php:97
msgid "Dating"
msgstr "Sammen med"
-#: ../../include/profile_selectors.php:42
+#: ../../include/profile_selectors.php:80
msgid "Unfaithful"
msgstr "Utro"
-#: ../../include/profile_selectors.php:42
+#: ../../include/profile_selectors.php:80
msgid "Sex Addict"
msgstr "Sexavhengig"
-#: ../../include/profile_selectors.php:42
+#: ../../include/profile_selectors.php:80
msgid "Friends/Benefits"
msgstr "Venner med frynsegoder"
-#: ../../include/profile_selectors.php:42
+#: ../../include/profile_selectors.php:80
msgid "Casual"
msgstr "Tilfeldig"
-#: ../../include/profile_selectors.php:42
+#: ../../include/profile_selectors.php:80
msgid "Engaged"
msgstr "Forlovet"
-#: ../../include/profile_selectors.php:42
+#: ../../include/profile_selectors.php:80
+#: ../../include/profile_selectors.php:97
msgid "Married"
msgstr "Gift"
-#: ../../include/profile_selectors.php:42
+#: ../../include/profile_selectors.php:80
msgid "Imaginarily married"
msgstr "Gift i fantasien"
-#: ../../include/profile_selectors.php:42
+#: ../../include/profile_selectors.php:80
msgid "Partners"
msgstr "Partnere"
-#: ../../include/profile_selectors.php:42
+#: ../../include/profile_selectors.php:80
+#: ../../include/profile_selectors.php:97
msgid "Cohabiting"
msgstr "Samboer"
-#: ../../include/profile_selectors.php:42
+#: ../../include/profile_selectors.php:80
msgid "Common law"
msgstr "Samboer"
-#: ../../include/profile_selectors.php:42
+#: ../../include/profile_selectors.php:80
msgid "Happy"
msgstr "Lykkelig"
-#: ../../include/profile_selectors.php:42
+#: ../../include/profile_selectors.php:80
msgid "Not looking"
msgstr "Ikke på utkikk"
-#: ../../include/profile_selectors.php:42
+#: ../../include/profile_selectors.php:80
msgid "Swinger"
msgstr "Partnerbytte"
-#: ../../include/profile_selectors.php:42
+#: ../../include/profile_selectors.php:80
msgid "Betrayed"
msgstr "Bedratt"
-#: ../../include/profile_selectors.php:42
+#: ../../include/profile_selectors.php:80
+#: ../../include/profile_selectors.php:97
msgid "Separated"
msgstr "Separert"
-#: ../../include/profile_selectors.php:42
+#: ../../include/profile_selectors.php:80
msgid "Unstable"
msgstr "Ustabilt"
-#: ../../include/profile_selectors.php:42
+#: ../../include/profile_selectors.php:80
+#: ../../include/profile_selectors.php:97
msgid "Divorced"
msgstr "Skilt"
-#: ../../include/profile_selectors.php:42
+#: ../../include/profile_selectors.php:80
msgid "Imaginarily divorced"
msgstr "Skilt i fantasien"
-#: ../../include/profile_selectors.php:42
+#: ../../include/profile_selectors.php:80
+#: ../../include/profile_selectors.php:97
msgid "Widowed"
msgstr "Enke"
-#: ../../include/profile_selectors.php:42
+#: ../../include/profile_selectors.php:80
msgid "Uncertain"
msgstr "Usikkert"
-#: ../../include/profile_selectors.php:42
+#: ../../include/profile_selectors.php:80
+#: ../../include/profile_selectors.php:97
msgid "It's complicated"
msgstr "Det er komplisert"
-#: ../../include/profile_selectors.php:42
+#: ../../include/profile_selectors.php:80
msgid "Don't care"
msgstr "Bryr meg ikke"
-#: ../../include/profile_selectors.php:42
+#: ../../include/profile_selectors.php:80
msgid "Ask me"
msgstr "Spør meg"
-#: ../../include/auth.php:79
-msgid "Logged out."
-msgstr "Logget ut."
-
-#: ../../include/auth.php:198
-msgid "Failed authentication"
-msgstr "Mislykket autentisering"
+#: ../../include/text.php:321
+msgid "prev"
+msgstr "forrige"
-#: ../../include/auth.php:213 ../../mod/openid.php:188
-msgid "Login failed."
-msgstr "Innlogging mislyktes."
+#: ../../include/text.php:323
+msgid "first"
+msgstr "første"
-#: ../../include/items.php:306 ../../mod/profperm.php:23
-#: ../../mod/subthread.php:49 ../../mod/group.php:68 ../../mod/like.php:63
-#: ../../index.php:360
-msgid "Permission denied"
-msgstr "Tillatelse avvist"
+#: ../../include/text.php:352
+msgid "last"
+msgstr "siste"
-#: ../../include/items.php:830
-msgid "(Unknown)"
-msgstr "(Ukjent)"
+#: ../../include/text.php:355
+msgid "next"
+msgstr "neste"
-#: ../../include/items.php:3617 ../../mod/display.php:32
-#: ../../mod/filestorage.php:18 ../../mod/home.php:65 ../../mod/admin.php:159
-#: ../../mod/admin.php:922 ../../mod/admin.php:1125 ../../mod/thing.php:78
-#: ../../mod/viewsrc.php:18
-msgid "Item not found."
-msgstr "Elementet ble ikke funnet."
+#: ../../include/text.php:367
+msgid "older"
+msgstr "eldre"
-#: ../../include/items.php:4041 ../../mod/group.php:38 ../../mod/group.php:140
-msgid "Collection not found."
-msgstr "Samlingen ble ikke funnet."
+#: ../../include/text.php:369
+msgid "newer"
+msgstr "nyere"
-#: ../../include/items.php:4056
-msgid "Collection is empty."
-msgstr "Samlingen er tom."
+#: ../../include/text.php:736
+msgid "No connections"
+msgstr "Ingen forbindelser"
-#: ../../include/items.php:4063
+#: ../../include/text.php:753
#, php-format
-msgid "Collection: %s"
-msgstr "Samling: %s"
+msgid "%d Connection"
+msgid_plural "%d Connections"
+msgstr[0] "%d forbindelse"
+msgstr[1] "%d forbindelser"
-#: ../../include/items.php:4074
-#, php-format
-msgid "Connection: %s"
-msgstr "Forbindelse: %s"
+#: ../../include/text.php:766
+msgid "View Connections"
+msgstr "Vis forbindelser"
-#: ../../include/items.php:4077
-msgid "Connection not found."
-msgstr "Forbindelsen ble ikke funnet."
+#: ../../include/text.php:905
+msgid "poke"
+msgstr "prikk"
-#: ../../include/permissions.php:13
-msgid "Can view my \"public\" stream and posts"
-msgstr "Kan se min \"offentlige\" strøm og innlegg"
+#: ../../include/text.php:906
+msgid "ping"
+msgstr "varsle"
-#: ../../include/permissions.php:14
-msgid "Can view my \"public\" channel profile"
-msgstr "Kan se min \"offentlige\" kanalprofil"
+#: ../../include/text.php:906
+msgid "pinged"
+msgstr "varslet"
-#: ../../include/permissions.php:15
-msgid "Can view my \"public\" photo albums"
-msgstr "Kan se mine \"offentlige\" fotoalbum"
+#: ../../include/text.php:907
+msgid "prod"
+msgstr "oppildne"
-#: ../../include/permissions.php:16
-msgid "Can view my \"public\" address book"
-msgstr "Kan se min \"offentlige\" adressebok"
+#: ../../include/text.php:907
+msgid "prodded"
+msgstr "oppildnet"
-#: ../../include/permissions.php:17
-msgid "Can view my \"public\" file storage"
-msgstr "Kan se mitt \"offentlige\" fillager"
+#: ../../include/text.php:908
+msgid "slap"
+msgstr "daske"
-#: ../../include/permissions.php:18
-msgid "Can view my \"public\" pages"
-msgstr "Kan se mine \"offentlige\" sider"
+#: ../../include/text.php:908
+msgid "slapped"
+msgstr "dasket"
-#: ../../include/permissions.php:21
-msgid "Can send me their channel stream and posts"
-msgstr "Kan sende meg deres kanalstrøm og innlegg"
+#: ../../include/text.php:909
+msgid "finger"
+msgstr "fingre"
-#: ../../include/permissions.php:22
-msgid "Can post on my channel page (\"wall\")"
-msgstr "Kan lage innlegg på min kanalside (\"vegg\")"
+#: ../../include/text.php:909
+msgid "fingered"
+msgstr "fingret"
-#: ../../include/permissions.php:23
-msgid "Can comment on my posts"
-msgstr "Kan kommentere på mine innlegg"
+#: ../../include/text.php:910
+msgid "rebuff"
+msgstr "tilbakevise"
-#: ../../include/permissions.php:24
-msgid "Can send me private mail messages"
-msgstr "Kan sende meg private meldinger"
+#: ../../include/text.php:910
+msgid "rebuffed"
+msgstr "tilbakeviste"
-#: ../../include/permissions.php:25
-msgid "Can post photos to my photo albums"
-msgstr "Kan legge inn bilder i mine fotoalbum"
+#: ../../include/text.php:919
+msgid "happy"
+msgstr "glad"
-#: ../../include/permissions.php:26
-msgid "Can forward to all my channel contacts via post @mentions"
-msgstr "Kan videresende til alle mine kanalkontakter via @navn i innlegg"
+#: ../../include/text.php:920
+msgid "sad"
+msgstr "trist"
-#: ../../include/permissions.php:26
-msgid "Advanced - useful for creating group forum channels"
-msgstr "Avansert - nyttig for å lage forumkanaler for grupper"
+#: ../../include/text.php:921
+msgid "mellow"
+msgstr "dempet"
-#: ../../include/permissions.php:27
-msgid "Can chat with me (when available)"
-msgstr "Kan chatte/sende lynmeldinger til meg (når tilgjengelig)"
+#: ../../include/text.php:922
+msgid "tired"
+msgstr "trøtt"
-#: ../../include/permissions.php:28
-msgid "Can write to my \"public\" file storage"
-msgstr "Kan skrive til mitt \"offentlige\" fillager"
+#: ../../include/text.php:923
+msgid "perky"
+msgstr "oppkvikket"
-#: ../../include/permissions.php:29
-msgid "Can edit my \"public\" pages"
-msgstr "Kan endre mine \"offentlige\" sider"
+#: ../../include/text.php:924
+msgid "angry"
+msgstr "sint"
-#: ../../include/permissions.php:31
-msgid "Can source my \"public\" posts in derived channels"
-msgstr "Kan bruke mine \"offentlige\" innlegg som kanalkilde i egne kanaler"
+#: ../../include/text.php:925
+msgid "stupified"
+msgstr "sløvet"
-#: ../../include/permissions.php:31
-msgid "Somewhat advanced - very useful in open communities"
-msgstr "Litt avansert - svært nyttig i åpne fellesskap"
+#: ../../include/text.php:926
+msgid "puzzled"
+msgstr "forundret"
-#: ../../include/permissions.php:33
-msgid "Can administer my channel resources"
-msgstr "Kan administrere mine kanalressurser"
+#: ../../include/text.php:927
+msgid "interested"
+msgstr "interessert"
-#: ../../include/permissions.php:33
-msgid ""
-"Extremely advanced. Leave this alone unless you know what you are doing"
-msgstr "Ekstremt avansert. La dette være med mindre du vet hva du gjør"
+#: ../../include/text.php:928
+msgid "bitter"
+msgstr "bitter"
+
+#: ../../include/text.php:929
+msgid "cheerful"
+msgstr "munter"
+
+#: ../../include/text.php:930
+msgid "alive"
+msgstr "levende"
+
+#: ../../include/text.php:931
+msgid "annoyed"
+msgstr "irritert"
+
+#: ../../include/text.php:932
+msgid "anxious"
+msgstr "nervøs"
+
+#: ../../include/text.php:933
+msgid "cranky"
+msgstr "gretten"
+
+#: ../../include/text.php:934
+msgid "disturbed"
+msgstr "foruroliget"
+
+#: ../../include/text.php:935
+msgid "frustrated"
+msgstr "frustrert"
+
+#: ../../include/text.php:936
+msgid "depressed"
+msgstr "lei seg"
+
+#: ../../include/text.php:937
+msgid "motivated"
+msgstr "motivert"
+
+#: ../../include/text.php:938
+msgid "relaxed"
+msgstr "avslappet"
+
+#: ../../include/text.php:939
+msgid "surprised"
+msgstr "overrasket"
+
+#: ../../include/text.php:1103
+msgid "Monday"
+msgstr "mandag"
+
+#: ../../include/text.php:1103
+msgid "Tuesday"
+msgstr "tirsdag"
+
+#: ../../include/text.php:1103
+msgid "Wednesday"
+msgstr "onsdag"
+
+#: ../../include/text.php:1103
+msgid "Thursday"
+msgstr "torsdag"
+
+#: ../../include/text.php:1103
+msgid "Friday"
+msgstr "fredag"
+
+#: ../../include/text.php:1103
+msgid "Saturday"
+msgstr "lørdag"
+
+#: ../../include/text.php:1103
+msgid "Sunday"
+msgstr "søndag"
+
+#: ../../include/text.php:1107
+msgid "January"
+msgstr "januar"
+
+#: ../../include/text.php:1107
+msgid "February"
+msgstr "februar"
+
+#: ../../include/text.php:1107
+msgid "March"
+msgstr "mars"
+
+#: ../../include/text.php:1107
+msgid "April"
+msgstr "april"
+
+#: ../../include/text.php:1107
+msgid "May"
+msgstr "mai"
+
+#: ../../include/text.php:1107
+msgid "June"
+msgstr "juni"
+
+#: ../../include/text.php:1107
+msgid "July"
+msgstr "juli"
+
+#: ../../include/text.php:1107
+msgid "August"
+msgstr "august"
+
+#: ../../include/text.php:1107
+msgid "September"
+msgstr "september"
+
+#: ../../include/text.php:1107
+msgid "October"
+msgstr "oktober"
+
+#: ../../include/text.php:1107
+msgid "November"
+msgstr "november"
+
+#: ../../include/text.php:1107
+msgid "December"
+msgstr "desember"
+
+#: ../../include/text.php:1185
+msgid "unknown.???"
+msgstr "ukjent.???"
+
+#: ../../include/text.php:1186
+msgid "bytes"
+msgstr "bytes"
+
+#: ../../include/text.php:1225
+msgid "remove category"
+msgstr "fjern kategori"
+
+#: ../../include/text.php:1295
+msgid "remove from file"
+msgstr "fjern fra fil"
+
+#: ../../include/text.php:1360 ../../include/text.php:1372
+msgid "Click to open/close"
+msgstr "Klikk for å åpne/lukke"
+
+#: ../../include/text.php:1527 ../../mod/events.php:409
+msgid "Link to Source"
+msgstr "Lenke til kilde"
+
+#: ../../include/text.php:1546
+msgid "Select a page layout: "
+msgstr "Velg en side-layout:"
+
+#: ../../include/text.php:1549 ../../include/text.php:1614
+msgid "default"
+msgstr "standard"
+
+#: ../../include/text.php:1585
+msgid "Page content type: "
+msgstr "Sidens innholdstype:"
+
+#: ../../include/text.php:1626
+msgid "Select an alternate language"
+msgstr "Velg et annet språk"
+
+#: ../../include/text.php:1760
+msgid "activity"
+msgstr "aktivitet"
+
+#: ../../include/text.php:2041
+msgid "Design"
+msgstr "Formgivning"
+
+#: ../../include/text.php:2044
+msgid "Blocks"
+msgstr "Byggeklosser"
+
+#: ../../include/text.php:2045
+msgid "Menus"
+msgstr "Menyer"
+
+#: ../../include/text.php:2046
+msgid "Layouts"
+msgstr "Layout"
+
+#: ../../include/text.php:2047
+msgid "Pages"
+msgstr "Sider"
+
+#: ../../include/acl_selectors.php:240
+msgid "Visible to your default audience"
+msgstr "Synlig for ditt standard publikum"
+
+#: ../../include/acl_selectors.php:241
+msgid "Show"
+msgstr "Vis"
+
+#: ../../include/acl_selectors.php:242
+msgid "Don't show"
+msgstr "Ikke vis"
+
+#: ../../include/acl_selectors.php:248 ../../mod/events.php:585
+#: ../../mod/chat.php:209 ../../mod/photos.php:588 ../../mod/photos.php:950
+#: ../../mod/filestorage.php:137
+msgid "Permissions"
+msgstr "Tillatelser"
+
+#: ../../include/acl_selectors.php:249 ../../include/ItemObject.php:305
+#: ../../mod/photos.php:1148
+msgid "Close"
+msgstr "Lukk"
+
+#: ../../include/api.php:1084
+msgid "Public Timeline"
+msgstr "Offentlig tidslinje"
+
+#: ../../include/apps.php:126
+msgid "Site Admin"
+msgstr "Nettstedsadministrator"
+
+#: ../../include/apps.php:128
+msgid "Address Book"
+msgstr "Adressebok"
+
+#: ../../include/apps.php:142 ../../mod/mood.php:131
+msgid "Mood"
+msgstr "Stemning"
+
+#: ../../include/apps.php:146
+msgid "Probe"
+msgstr "Undersøk"
+
+#: ../../include/apps.php:147
+msgid "Suggest"
+msgstr "Forreslå"
+
+#: ../../include/apps.php:148
+msgid "Random Channel"
+msgstr "Tilfeldig kanal"
+
+#: ../../include/apps.php:149
+msgid "Invite"
+msgstr "Inviter"
+
+#: ../../include/apps.php:150
+msgid "Features"
+msgstr "Funksjoner"
+
+#: ../../include/apps.php:151
+msgid "Language"
+msgstr "Språk"
+
+#: ../../include/apps.php:152
+msgid "Post"
+msgstr "Innlegg"
+
+#: ../../include/apps.php:153
+msgid "Profile Photo"
+msgstr "Profilbilde"
+
+#: ../../include/apps.php:242 ../../mod/settings.php:81
+#: ../../mod/settings.php:575
+msgid "Update"
+msgstr "Oppdater"
+
+#: ../../include/apps.php:242
+msgid "Install"
+msgstr "Installer"
+
+#: ../../include/apps.php:247
+msgid "Purchase"
+msgstr "Kjøp"
+
+#: ../../include/ItemObject.php:130
+msgid "Save to Folder"
+msgstr "Lagre i mappe"
+
+#: ../../include/ItemObject.php:142 ../../include/ItemObject.php:154
+#: ../../mod/photos.php:1022 ../../mod/photos.php:1034
+msgid "View all"
+msgstr "Vis alle"
+
+#: ../../include/ItemObject.php:151 ../../mod/photos.php:1031
+msgctxt "noun"
+msgid "Dislike"
+msgid_plural "Dislikes"
+msgstr[0] "Liker ikke"
+msgstr[1] "Liker ikke"
+
+#: ../../include/ItemObject.php:179
+msgid "Add Star"
+msgstr "Legg til stjerne"
+
+#: ../../include/ItemObject.php:180
+msgid "Remove Star"
+msgstr "Fjern stjerne"
+
+#: ../../include/ItemObject.php:181
+msgid "Toggle Star Status"
+msgstr "Skru av og på stjernestatus"
+
+#: ../../include/ItemObject.php:185
+msgid "starred"
+msgstr "stjernemerket"
+
+#: ../../include/ItemObject.php:203
+msgid "Add Tag"
+msgstr "Legg til merkelapp"
+
+#: ../../include/ItemObject.php:221 ../../mod/photos.php:974
+msgid "I like this (toggle)"
+msgstr "Jeg liker dette (skru av og på)"
+
+#: ../../include/ItemObject.php:222 ../../mod/photos.php:975
+msgid "I don't like this (toggle)"
+msgstr "Jeg liker ikke dette (skru av og på)"
+
+#: ../../include/ItemObject.php:226
+msgid "Share This"
+msgstr "Del dette"
+
+#: ../../include/ItemObject.php:226
+msgid "share"
+msgstr "del"
+
+#: ../../include/ItemObject.php:249 ../../include/ItemObject.php:250
+#, php-format
+msgid "View %s's profile - %s"
+msgstr "Vis %s sin profil - %s"
+
+#: ../../include/ItemObject.php:251
+msgid "to"
+msgstr "til"
+
+#: ../../include/ItemObject.php:252
+msgid "via"
+msgstr "via"
+
+#: ../../include/ItemObject.php:253
+msgid "Wall-to-Wall"
+msgstr "vegg-til-vegg"
+
+#: ../../include/ItemObject.php:254
+msgid "via Wall-To-Wall:"
+msgstr "via vegg-til-vegg:"
+
+#: ../../include/ItemObject.php:290
+msgid "Save Bookmarks"
+msgstr "Lagre bokmerker"
+
+#: ../../include/ItemObject.php:291
+msgid "Add to Calendar"
+msgstr "Legg til i kalender"
+
+#: ../../include/ItemObject.php:299 ../../mod/photos.php:1142
+msgctxt "noun"
+msgid "Likes"
+msgstr "Liker"
+
+#: ../../include/ItemObject.php:300 ../../mod/photos.php:1143
+msgctxt "noun"
+msgid "Dislikes"
+msgstr "Liker ikke"
+
+#: ../../include/ItemObject.php:331
+#, php-format
+msgid "%d comment"
+msgid_plural "%d comments"
+msgstr[0] "%d kommentar"
+msgstr[1] "%d kommentarer"
+
+#: ../../include/ItemObject.php:596 ../../mod/photos.php:993
+#: ../../mod/photos.php:1103
+msgid "This is you"
+msgstr "Dette er deg"
+
+#: ../../include/ItemObject.php:599 ../../mod/mood.php:135
+#: ../../mod/profiles.php:633 ../../mod/connect.php:92 ../../mod/setup.php:313
+#: ../../mod/setup.php:358 ../../mod/poke.php:166 ../../mod/sources.php:104
+#: ../../mod/sources.php:138 ../../mod/events.php:587 ../../mod/chat.php:177
+#: ../../mod/chat.php:211 ../../mod/photos.php:594 ../../mod/photos.php:671
+#: ../../mod/photos.php:956 ../../mod/photos.php:996 ../../mod/photos.php:1106
+#: ../../mod/connedit.php:555 ../../mod/thing.php:284 ../../mod/thing.php:327
+#: ../../mod/pdledit.php:58 ../../mod/settings.php:549
+#: ../../mod/settings.php:661 ../../mod/settings.php:690
+#: ../../mod/settings.php:714 ../../mod/settings.php:790
+#: ../../mod/settings.php:976 ../../mod/fsuggest.php:108
+#: ../../mod/filestorage.php:146 ../../mod/group.php:81
+#: ../../mod/import.php:480 ../../mod/admin.php:412 ../../mod/admin.php:723
+#: ../../mod/admin.php:859 ../../mod/admin.php:992 ../../mod/admin.php:1191
+#: ../../mod/admin.php:1278 ../../mod/invite.php:142 ../../mod/locs.php:99
+#: ../../mod/mail.php:348 ../../mod/xchan.php:11 ../../mod/appman.php:99
+#: ../../mod/poll.php:68 ../../view/theme/apw/php/config.php:256
+#: ../../view/theme/blogga/php/config.php:67
+#: ../../view/theme/blogga/view/theme/blog/config.php:67
+#: ../../view/theme/redbasic/php/config.php:99
+msgid "Submit"
+msgstr "Send"
+
+#: ../../include/ItemObject.php:600
+msgid "Bold"
+msgstr "Uthevet"
+
+#: ../../include/ItemObject.php:601
+msgid "Italic"
+msgstr "Kursiv"
+
+#: ../../include/ItemObject.php:602
+msgid "Underline"
+msgstr "Understreket"
+
+#: ../../include/ItemObject.php:603
+msgid "Quote"
+msgstr "Sitat"
+
+#: ../../include/ItemObject.php:604
+msgid "Code"
+msgstr "Kode"
+
+#: ../../include/ItemObject.php:605
+msgid "Image"
+msgstr "Bilde"
+
+#: ../../include/ItemObject.php:606
+msgid "Link"
+msgstr "Lenke"
+
+#: ../../include/ItemObject.php:607
+msgid "Video"
+msgstr "Video"
#: ../../mod/mood.php:132
msgid "Set your current mood and tell your friends"
msgstr "Angi ditt nåværende humør og fortell dine venner"
-#: ../../mod/mitem.php:14 ../../mod/menu.php:92
+#: ../../mod/profperm.php:29 ../../mod/profperm.php:58
+msgid "Invalid profile identifier."
+msgstr "Ugyldig profil-identifikator."
+
+#: ../../mod/profperm.php:110
+msgid "Profile Visibility Editor"
+msgstr "Endre profilsynlighet"
+
+#: ../../mod/profperm.php:114
+msgid "Click on a contact to add or remove."
+msgstr "Klikk på en kontakt for å legge til eller fjerne."
+
+#: ../../mod/profperm.php:123
+msgid "Visible To"
+msgstr "Synlig for"
+
+#: ../../mod/profperm.php:139 ../../mod/connections.php:279
+msgid "All Connections"
+msgstr "Alle forbindelser"
+
+#: ../../mod/mitem.php:24 ../../mod/menu.php:108
msgid "Menu not found."
msgstr "Menyen ble ikke funnet."
-#: ../../mod/mitem.php:47
+#: ../../mod/mitem.php:67
msgid "Menu element updated."
msgstr "Menyelement er oppdatert."
-#: ../../mod/mitem.php:51
+#: ../../mod/mitem.php:71
msgid "Unable to update menu element."
msgstr "Ikke i stand til å oppdatere menyelement."
-#: ../../mod/mitem.php:57
+#: ../../mod/mitem.php:77
msgid "Menu element added."
msgstr "Menyelement lagt til."
-#: ../../mod/mitem.php:61
+#: ../../mod/mitem.php:81
msgid "Unable to add menu element."
msgstr "Ikke i stand til å legge til menyelement."
-#: ../../mod/mitem.php:78 ../../mod/dirprofile.php:175 ../../mod/menu.php:120
-#: ../../mod/xchan.php:27
+#: ../../mod/mitem.php:111 ../../mod/menu.php:136 ../../mod/xchan.php:37
msgid "Not found."
msgstr "Ikke funnet."
-#: ../../mod/mitem.php:96
+#: ../../mod/mitem.php:127
msgid "Manage Menu Elements"
msgstr "HÃ¥ndtere menyelementer"
-#: ../../mod/mitem.php:99
+#: ../../mod/mitem.php:130
msgid "Edit menu"
msgstr "Endre meny"
-#: ../../mod/mitem.php:102
+#: ../../mod/mitem.php:133
msgid "Edit element"
msgstr "Endre element"
-#: ../../mod/mitem.php:103
+#: ../../mod/mitem.php:134
msgid "Drop element"
msgstr "Slett element"
-#: ../../mod/mitem.php:104
+#: ../../mod/mitem.php:135
msgid "New element"
msgstr "Nytt element"
-#: ../../mod/mitem.php:105
+#: ../../mod/mitem.php:136
msgid "Edit this menu container"
msgstr "Endre denne menybeholderen"
-#: ../../mod/mitem.php:106
+#: ../../mod/mitem.php:137
msgid "Add menu element"
msgstr "Legg til menyelement"
-#: ../../mod/mitem.php:107
+#: ../../mod/mitem.php:138
msgid "Delete this menu item"
msgstr "Slett dette menyelementet"
-#: ../../mod/mitem.php:108
+#: ../../mod/mitem.php:139
msgid "Edit this menu item"
msgstr "Endre dette menyelementet"
-#: ../../mod/mitem.php:131
+#: ../../mod/mitem.php:158
msgid "New Menu Element"
msgstr "Nytt menyelement"
-#: ../../mod/mitem.php:133 ../../mod/mitem.php:176
+#: ../../mod/mitem.php:160 ../../mod/mitem.php:203
msgid "Menu Item Permissions"
msgstr "Menyelement Tillatelser"
-#: ../../mod/mitem.php:134 ../../mod/mitem.php:177 ../../mod/settings.php:960
+#: ../../mod/mitem.php:161 ../../mod/mitem.php:204 ../../mod/settings.php:1011
msgid "(click to open/close)"
msgstr "(klikk for å åpne/lukke)"
-#: ../../mod/mitem.php:136 ../../mod/mitem.php:180
+#: ../../mod/mitem.php:163 ../../mod/mitem.php:207
msgid "Link text"
msgstr "Lenketekst"
-#: ../../mod/mitem.php:137 ../../mod/mitem.php:181
+#: ../../mod/mitem.php:164 ../../mod/mitem.php:208
msgid "URL of link"
msgstr "URL-en til lenken"
-#: ../../mod/mitem.php:138 ../../mod/mitem.php:182
-msgid "Use Red magic-auth if available"
-msgstr "Bruk Red sin magiske-autent hvis mulig"
+#: ../../mod/mitem.php:165 ../../mod/mitem.php:209
+msgid "Use RedMatrix magic-auth if available"
+msgstr "Bruk RedMatrixs magiske-autentisering hvis tilgjengelig"
-#: ../../mod/mitem.php:139 ../../mod/mitem.php:183
+#: ../../mod/mitem.php:166 ../../mod/mitem.php:210
msgid "Open link in new window"
msgstr "Ã…pne lenke i nytt vindu"
-#: ../../mod/mitem.php:141 ../../mod/mitem.php:185
+#: ../../mod/mitem.php:168 ../../mod/mitem.php:212
msgid "Order in list"
msgstr "Ordne i liste"
-#: ../../mod/mitem.php:141 ../../mod/mitem.php:185
+#: ../../mod/mitem.php:168 ../../mod/mitem.php:212
msgid "Higher numbers will sink to bottom of listing"
msgstr "Høyere tall vil synke mot bunnen av listen"
-#: ../../mod/mitem.php:142 ../../mod/menu.php:84 ../../mod/new_channel.php:117
-msgid "Create"
-msgstr "Lag"
-
-#: ../../mod/mitem.php:154
+#: ../../mod/mitem.php:181
msgid "Menu item not found."
msgstr "Menyelement ble ikke funnet."
-#: ../../mod/mitem.php:163
+#: ../../mod/mitem.php:190
msgid "Menu item deleted."
msgstr "Menyelement slettet."
-#: ../../mod/mitem.php:165
+#: ../../mod/mitem.php:192
msgid "Menu item could not be deleted."
msgstr "Menyelement kunne ikke bli slettet."
-#: ../../mod/mitem.php:174
+#: ../../mod/mitem.php:201
msgid "Edit Menu Element"
msgstr "Endre menyelement"
-#: ../../mod/mitem.php:186 ../../mod/menu.php:114
+#: ../../mod/mitem.php:213 ../../mod/menu.php:130
msgid "Modify"
msgstr "Endre"
-#: ../../mod/ping.php:192
-msgid "sent you a private message"
-msgstr "sendte deg en privat melding"
+#: ../../mod/achievements.php:34
+msgid "Some blurb about what to do when you're new here"
+msgstr "En standardtekst om hva du bør gjøre som ny her"
-#: ../../mod/ping.php:250
-msgid "added your channel"
-msgstr "la til din kanal"
+#: ../../mod/profiles.php:18 ../../mod/profiles.php:165
+#: ../../mod/profiles.php:222 ../../mod/profiles.php:565
+msgid "Profile not found."
+msgstr "Profilen ble ikke funnet."
-#: ../../mod/ping.php:294
-msgid "posted an event"
-msgstr "la ut en hendelse"
+#: ../../mod/profiles.php:38
+msgid "Profile deleted."
+msgstr "Profilen er slettet."
-#: ../../mod/acl.php:239
-msgid "network"
-msgstr "nettverk"
+#: ../../mod/profiles.php:56 ../../mod/profiles.php:92
+msgid "Profile-"
+msgstr "Profil-"
-#: ../../mod/settings.php:71
-msgid "Name is required"
-msgstr "Navn er påkrevd"
+#: ../../mod/profiles.php:77 ../../mod/profiles.php:120
+msgid "New profile created."
+msgstr "Ny profil opprettet."
-#: ../../mod/settings.php:75
-msgid "Key and Secret are required"
-msgstr "Nøkkel og hemmelighet er påkrevd"
+#: ../../mod/profiles.php:98
+msgid "Profile unavailable to clone."
+msgstr "Profilen er utilgjengelig for klonen."
-#: ../../mod/settings.php:195
-msgid "Passwords do not match. Password unchanged."
-msgstr "Passordene stemmer ikke overens. Passord uforandret."
+#: ../../mod/profiles.php:136
+msgid "Profile unavailable to export."
+msgstr "Profilen er utilgjengelig for eksport."
-#: ../../mod/settings.php:199
-msgid "Empty passwords are not allowed. Password unchanged."
-msgstr "Tomme passord er ikke tillatt. Passord uforandret."
+#: ../../mod/profiles.php:232
+msgid "Profile Name is required."
+msgstr "Profilnavn er påkrevd."
-#: ../../mod/settings.php:212
-msgid "Password changed."
-msgstr "Passord endret."
+#: ../../mod/profiles.php:378
+msgid "Marital Status"
+msgstr "Sivilstand"
-#: ../../mod/settings.php:214
-msgid "Password update failed. Please try again."
-msgstr "Passord oppdatering mislyktes. Vennligst prøv igjen."
+#: ../../mod/profiles.php:382
+msgid "Romantic Partner"
+msgstr "Romantisk partner"
-#: ../../mod/settings.php:228
-msgid "Not valid email."
-msgstr "Ikke gyldig e-post."
+#: ../../mod/profiles.php:386
+msgid "Likes"
+msgstr "Liker"
-#: ../../mod/settings.php:231
-msgid "Protected email address. Cannot change to that email."
-msgstr "Beskyttet e-postadresse. Kan ikke endre til den e-postadressen."
+#: ../../mod/profiles.php:390
+msgid "Dislikes"
+msgstr "Liker ikke"
-#: ../../mod/settings.php:240
-msgid "System failure storing new email. Please try again."
-msgstr "Systemfeil ved lagring av ny e-post. Vennligst prøv igjen."
+#: ../../mod/profiles.php:394
+msgid "Work/Employment"
+msgstr "Arbeid/sysselsetting"
-#: ../../mod/settings.php:443
-msgid "Settings updated."
-msgstr "Innstillinger oppdatert."
+#: ../../mod/profiles.php:397
+msgid "Religion"
+msgstr "Religion"
-#: ../../mod/settings.php:514 ../../mod/settings.php:540
-#: ../../mod/settings.php:576
-msgid "Add application"
-msgstr "Legg til program"
+#: ../../mod/profiles.php:401
+msgid "Political Views"
+msgstr "Politiske synspunkter"
-#: ../../mod/settings.php:517 ../../mod/settings.php:543
-#: ../../mod/admin.php:892
-msgid "Name"
-msgstr "Navn"
+#: ../../mod/profiles.php:405
+msgid "Gender"
+msgstr "Kjønn"
-#: ../../mod/settings.php:517
-msgid "Name of application"
-msgstr "Navn på program"
+#: ../../mod/profiles.php:409
+msgid "Sexual Preference"
+msgstr "Seksuelle preferanser"
-#: ../../mod/settings.php:518 ../../mod/settings.php:544
-msgid "Consumer Key"
-msgstr "Consumer Key"
+#: ../../mod/profiles.php:413
+msgid "Homepage"
+msgstr "Hjemmeside"
-#: ../../mod/settings.php:518 ../../mod/settings.php:519
-msgid "Automatically generated - change if desired. Max length 20"
-msgstr "Automatisk laget - kan endres om du vil. Største lengde 20"
+#: ../../mod/profiles.php:417
+msgid "Interests"
+msgstr "Interesser"
-#: ../../mod/settings.php:519 ../../mod/settings.php:545
-msgid "Consumer Secret"
-msgstr "Consumer Secret"
+#: ../../mod/profiles.php:421 ../../mod/admin.php:866
+msgid "Address"
+msgstr "Adresse"
-#: ../../mod/settings.php:520 ../../mod/settings.php:546
-msgid "Redirect"
-msgstr "Omdirigering"
+#: ../../mod/profiles.php:428 ../../mod/pubsites.php:25
+msgid "Location"
+msgstr "Plassering"
-#: ../../mod/settings.php:520
-msgid ""
-"Redirect URI - leave blank unless your application specifically requires "
-"this"
-msgstr "Omdirigerings-URI - la stå tomt hvis ikke ditt program spesifikt krever dette"
+#: ../../mod/profiles.php:511
+msgid "Profile updated."
+msgstr "Profilen er oppdatert."
-#: ../../mod/settings.php:521 ../../mod/settings.php:547
-msgid "Icon url"
-msgstr "Ikon-URL"
+#: ../../mod/profiles.php:590
+msgid "Hide your contact/friend list from viewers of this profile?"
+msgstr "Skjul kontakt-/vennelisten din fra de som ser på denne profilen?"
-#: ../../mod/settings.php:521
-msgid "Optional"
-msgstr "Valgfritt"
+#: ../../mod/profiles.php:591 ../../mod/api.php:105 ../../mod/settings.php:916
+#: ../../mod/settings.php:921 ../../mod/settings.php:1004
+#: ../../mod/admin.php:392
+msgid "Yes"
+msgstr "Ja"
-#: ../../mod/settings.php:532
-msgid "You can't edit this application."
-msgstr "Du kan ikke endre dette programmet."
+#: ../../mod/profiles.php:592 ../../mod/api.php:106 ../../mod/settings.php:916
+#: ../../mod/settings.php:921 ../../mod/settings.php:1004
+#: ../../mod/admin.php:390
+msgid "No"
+msgstr "Nei"
-#: ../../mod/settings.php:575
-msgid "Connected Apps"
-msgstr "Tilkoblede app-er"
+#: ../../mod/profiles.php:632
+msgid "Edit Profile Details"
+msgstr "Endre profildetaljer"
-#: ../../mod/settings.php:579
-msgid "Client key starts with"
-msgstr "Klientnøkkel starter med"
+#: ../../mod/profiles.php:634
+msgid "View this profile"
+msgstr "Vis denne profilen"
-#: ../../mod/settings.php:580
-msgid "No name"
-msgstr "Ikke noe navn"
+#: ../../mod/profiles.php:636
+msgid "Change Profile Photo"
+msgstr "Endre profilbilde"
-#: ../../mod/settings.php:581
-msgid "Remove authorization"
-msgstr "Fjern tillatelse"
+#: ../../mod/profiles.php:637
+msgid "Create a new profile using these settings"
+msgstr "Lag en ny profil ved å bruke disse innstillingene"
-#: ../../mod/settings.php:592
-msgid "No feature settings configured"
-msgstr "Ingen funksjonsinnstillinger er konfigurert"
+#: ../../mod/profiles.php:638
+msgid "Clone this profile"
+msgstr "Klon denne profilen"
-#: ../../mod/settings.php:600
-msgid "Feature Settings"
-msgstr "Funksjonsinnstillinger"
+#: ../../mod/profiles.php:639
+msgid "Delete this profile"
+msgstr "Slett denne profilen"
-#: ../../mod/settings.php:623
-msgid "Account Settings"
-msgstr "Kontoinnstillinger"
+#: ../../mod/profiles.php:641
+msgid "Import profile from file"
+msgstr "Importer profil fra fil"
-#: ../../mod/settings.php:624
-msgid "Password Settings"
-msgstr "Passordinnstillinger"
+#: ../../mod/profiles.php:642
+msgid "Export profile to file"
+msgstr "Eksporter profil til fil"
-#: ../../mod/settings.php:625
-msgid "New Password:"
-msgstr "Nytt passord:"
+#: ../../mod/profiles.php:643
+msgid "Profile Name:"
+msgstr "Profilnavn:"
-#: ../../mod/settings.php:626
-msgid "Confirm:"
-msgstr "Bekreft:"
+#: ../../mod/profiles.php:644
+msgid "Your Full Name:"
+msgstr "Ditt fulle navn:"
-#: ../../mod/settings.php:626
-msgid "Leave password fields blank unless changing"
-msgstr "La passordfeltene stå blanke om det ikke skal endres"
+#: ../../mod/profiles.php:645
+msgid "Title/Description:"
+msgstr "Tittel/Beskrivelse:"
-#: ../../mod/settings.php:628 ../../mod/settings.php:936
-msgid "Email Address:"
-msgstr "E-postadresse:"
+#: ../../mod/profiles.php:646
+msgid "Your Gender:"
+msgstr "Ditt kjønn:"
-#: ../../mod/settings.php:629
-msgid "Remove Account"
-msgstr "Slett konto"
+#: ../../mod/profiles.php:647
+msgid "Birthday :"
+msgstr "Fødselsdag:"
-#: ../../mod/settings.php:630
-msgid "Warning: This action is permanent and cannot be reversed."
-msgstr "Advarsel: Denne handlingen er permanent og kan ikke angres."
+#: ../../mod/profiles.php:648
+msgid "Street Address:"
+msgstr "Gateadresse:"
-#: ../../mod/settings.php:646
-msgid "Off"
-msgstr "Av"
+#: ../../mod/profiles.php:649
+msgid "Locality/City:"
+msgstr "Sted/By:"
-#: ../../mod/settings.php:646
-msgid "On"
-msgstr "PÃ¥"
+#: ../../mod/profiles.php:650
+msgid "Postal/Zip Code:"
+msgstr "Postnummer/ZIP-kode:"
-#: ../../mod/settings.php:653
-msgid "Additional Features"
-msgstr "Ekstra funksjoner"
+#: ../../mod/profiles.php:651
+msgid "Country:"
+msgstr "Land:"
-#: ../../mod/settings.php:678
-msgid "Connector Settings"
-msgstr "Koblingsinnstillinger"
+#: ../../mod/profiles.php:652
+msgid "Region/State:"
+msgstr "Region/fylke:"
-#: ../../mod/settings.php:708 ../../mod/admin.php:390
-msgid "No special theme for mobile devices"
-msgstr "Ikke noe spesielt tema for mobile enheter"
+#: ../../mod/profiles.php:653
+msgid "<span class=\"heart\">&hearts;</span> Marital Status:"
+msgstr "<span class=\"heart\">&hearts;</span> Sivilstand:"
+
+#: ../../mod/profiles.php:654
+msgid "Who: (if applicable)"
+msgstr "Hvem: (hvis det er aktuelt) "
+
+#: ../../mod/profiles.php:655
+msgid "Examples: cathy123, Cathy Williams, cathy@example.com"
+msgstr "Eksempler: kari123, Kari Villiamsen, kari@example.com"
+
+#: ../../mod/profiles.php:656
+msgid "Since [date]:"
+msgstr "Siden [dato]:"
+
+#: ../../mod/profiles.php:658
+msgid "Homepage URL:"
+msgstr "Hjemmeside URL:"
+
+#: ../../mod/profiles.php:661
+msgid "Religious Views:"
+msgstr "Religiøse synspunkter:"
+
+#: ../../mod/profiles.php:662
+msgid "Keywords:"
+msgstr "Nøkkelord:"
+
+#: ../../mod/profiles.php:665
+msgid "Example: fishing photography software"
+msgstr "Eksempel: fisking fotografering programvare"
+
+#: ../../mod/profiles.php:666
+msgid "Used in directory listings"
+msgstr "Brukt i katalogoppføringer"
+
+#: ../../mod/profiles.php:667
+msgid "Tell us about yourself..."
+msgstr "Fortell oss om deg selv..."
+
+#: ../../mod/profiles.php:668
+msgid "Hobbies/Interests"
+msgstr "Hobbier/Interesser"
+
+#: ../../mod/profiles.php:669
+msgid "Contact information and Social Networks"
+msgstr "Kontaktinformasjon og sosiale nettverk"
+
+#: ../../mod/profiles.php:670
+msgid "My other channels"
+msgstr "Mine andre kanaler"
+
+#: ../../mod/profiles.php:671
+msgid "Musical interests"
+msgstr "Musikkinteresser"
+
+#: ../../mod/profiles.php:672
+msgid "Books, literature"
+msgstr "Bøker, litteratur"
+
+#: ../../mod/profiles.php:673
+msgid "Television"
+msgstr "TV/fjernsyn"
+
+#: ../../mod/profiles.php:674
+msgid "Film/dance/culture/entertainment"
+msgstr "Film/dans/kultur/underholdning"
+
+#: ../../mod/profiles.php:675
+msgid "Love/romance"
+msgstr "Kjærlighet/romantikk"
+
+#: ../../mod/profiles.php:676
+msgid "Work/employment"
+msgstr "Arbeid/sysselsetting"
+
+#: ../../mod/profiles.php:677
+msgid "School/education"
+msgstr "Skole/utdanning"
-#: ../../mod/settings.php:717
+#: ../../mod/profiles.php:683
+msgid "This is your default profile."
+msgstr "Dette er din standardprofil."
+
+#: ../../mod/profiles.php:694 ../../mod/directory.php:148
+msgid "Age: "
+msgstr "Alder:"
+
+#: ../../mod/profiles.php:737
+msgid "Edit/Manage Profiles"
+msgstr "Endre/håndter profiler"
+
+#: ../../mod/profiles.php:738
+msgid "Add profile things"
+msgstr "Legg til profilting"
+
+#: ../../mod/profiles.php:739
+msgid "Include desirable objects in your profile"
+msgstr "Inkluder ønskverdige objekter i din profil"
+
+#: ../../mod/connect.php:55 ../../mod/connect.php:103
+msgid "Continue"
+msgstr "Fortsett"
+
+#: ../../mod/connect.php:84
+msgid "Premium Channel Setup"
+msgstr "Premiumkanal-oppsett"
+
+#: ../../mod/connect.php:86
+msgid "Enable premium channel connection restrictions"
+msgstr "Slå på restriksjoner for forbindelse med premiumkanal"
+
+#: ../../mod/connect.php:87
+msgid ""
+"Please enter your restrictions or conditions, such as paypal receipt, usage "
+"guidelines, etc."
+msgstr "Vennligst skriv dine restriksjoner og betingelser, slik som PayPal-kvittering, retningslinjer for bruk, og så videre."
+
+#: ../../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 "Denne kanalen kan kreve ytterligere steg og bekreftelse av følgende betingelser før tilkobling:"
+
+#: ../../mod/connect.php:90
+msgid ""
+"Potential connections will then see the following text before proceeding:"
+msgstr "Potensielle forbindelser vil da se følgende tekst før de går videre:"
+
+#: ../../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 "Ved å fortsette bekrefter jeg at jeg har oppfylt alle instruksjoner gitt på denne siden."
+
+#: ../../mod/connect.php:100
+msgid "(No specific instructions have been provided by the channel owner.)"
+msgstr "(Ingen spesifikke instruksjoner er gitt av kanaleieren.)"
+
+#: ../../mod/connect.php:108
+msgid "Restricted or Premium Channel"
+msgstr "Begrenset kanal eller premiumkanal"
+
+#: ../../mod/post.php:229
+msgid ""
+"Remote authentication blocked. You are logged into this site locally. Please"
+" logout and retry."
+msgstr "Fjernautentisering blokkert. Du er logget inn på dette nettstedet lokalt. Vennligst logg ut og prøv på nytt."
+
+#: ../../mod/post.php:261 ../../mod/openid.php:72 ../../mod/openid.php:180
#, php-format
-msgid "%s - (Experimental)"
-msgstr "%s - (Eksperimentelt)"
+msgid "Welcome %s. Remote authentication successful."
+msgstr "Velkommen %s. Ekstern autentisering er vellykket."
-#: ../../mod/settings.php:747
-msgid "Display Settings"
-msgstr "Visningsinnstillinger"
+#: ../../mod/setup.php:166
+msgid "Red Matrix Server - Setup"
+msgstr "Red Matrix tjener - oppsett"
-#: ../../mod/settings.php:753
-msgid "Display Theme:"
-msgstr "Visningstema:"
+#: ../../mod/setup.php:172
+msgid "Could not connect to database."
+msgstr "Fikk ikke kontakt med databasen."
-#: ../../mod/settings.php:754
-msgid "Mobile Theme:"
-msgstr "Mobiltema:"
+#: ../../mod/setup.php:176
+msgid ""
+"Could not connect to specified site URL. Possible SSL certificate or DNS "
+"issue."
+msgstr "Fikk ikke kontakt med det angitte nettstedets URL. Problemet kan muligens skyldes SSL-sertifikatet eller DNS."
-#: ../../mod/settings.php:755
-msgid "Update browser every xx seconds"
-msgstr "Oppdater nettleser hvert xx sekunder"
+#: ../../mod/setup.php:183
+msgid "Could not create table."
+msgstr "Kunne ikke lage tabellen."
-#: ../../mod/settings.php:755
-msgid "Minimum of 10 seconds, no maximum"
-msgstr "Minimum 10 sekunder, ikke noe maksimum"
+#: ../../mod/setup.php:189
+msgid "Your site database has been installed."
+msgstr "Databasen til ditt nettsted har blitt installert."
-#: ../../mod/settings.php:756
-msgid "Maximum number of conversations to load at any time:"
-msgstr "Maksimalt antall samtaler å laste samtidig:"
+#: ../../mod/setup.php:194
+msgid ""
+"You may need to import the file \"install/schema_xxx.sql\" manually using a "
+"database client."
+msgstr "Du må kanskje importere filen \"install/schmea_xxx.sql\" manuelt ved å bruke en databaseklient."
-#: ../../mod/settings.php:756
-msgid "Maximum of 100 items"
-msgstr "Maksimum 100 elementer"
+#: ../../mod/setup.php:195 ../../mod/setup.php:264 ../../mod/setup.php:663
+msgid "Please see the file \"install/INSTALL.txt\"."
+msgstr "Vennligst les filen \"install/INSTALL.txt\"."
-#: ../../mod/settings.php:757
-msgid "Don't show emoticons"
-msgstr "Ikke vis følelsesikoner"
+#: ../../mod/setup.php:261
+msgid "System check"
+msgstr "Systemsjekk"
-#: ../../mod/settings.php:758
-msgid "System Page Layout Editor - (advanced)"
-msgstr "Systemsidens layoutbehandler - (avansert)"
+#: ../../mod/setup.php:265 ../../mod/events.php:434 ../../mod/photos.php:868
+msgid "Next"
+msgstr "Neste"
-#: ../../mod/settings.php:793
-msgid "Nobody except yourself"
-msgstr "Ingen unntatt deg selv"
+#: ../../mod/setup.php:266
+msgid "Check again"
+msgstr "Sjekk igjen"
-#: ../../mod/settings.php:794
-msgid "Only those you specifically allow"
-msgstr "Bare de du spesifikt tillater"
+#: ../../mod/setup.php:289
+msgid "Database connection"
+msgstr "Databaseforbindelse"
-#: ../../mod/settings.php:795
-msgid "Approved connections"
-msgstr "Godkjente forbindelser"
+#: ../../mod/setup.php:290
+msgid ""
+"In order to install Red Matrix we need to know how to connect to your "
+"database."
+msgstr "For å installere Red Matrix må du oppgi hvordan din database kan kontaktes."
-#: ../../mod/settings.php:796
-msgid "Any connections"
-msgstr "Enhver forbindelse"
+#: ../../mod/setup.php:291
+msgid ""
+"Please contact your hosting provider or site administrator if you have "
+"questions about these settings."
+msgstr "Vennligst kontakt din nettstedstilbyder eller nettstedsadministrator hvis du har spørsmål om disse innstillingene."
-#: ../../mod/settings.php:797
-msgid "Anybody on this website"
-msgstr "Enhver ved dette nettstedet"
+#: ../../mod/setup.php:292
+msgid ""
+"The database you specify below should already exist. If it does not, please "
+"create it before continuing."
+msgstr "Databasen du oppgir nedenfor må finnes på forhånd. Hvis den ikke finnes, vennligst lag den før du fortsetter."
-#: ../../mod/settings.php:798
-msgid "Anybody in this network"
-msgstr "Enhver i dette nettverket"
+#: ../../mod/setup.php:296
+msgid "Database Server Name"
+msgstr "Navn på databasetjener"
-#: ../../mod/settings.php:799
-msgid "Anybody authenticated"
-msgstr "Enhver som er autentisert"
+#: ../../mod/setup.php:296
+msgid "Default is localhost"
+msgstr "Standard er localhost"
-#: ../../mod/settings.php:800
-msgid "Anybody on the internet"
-msgstr "Enhver på Internett"
+#: ../../mod/setup.php:297
+msgid "Database Port"
+msgstr "Databaseport"
-#: ../../mod/settings.php:877
-msgid "Publish your default profile in the network directory"
-msgstr "Publiser din standardprofil i nettverkskatalogen"
+#: ../../mod/setup.php:297
+msgid "Communication port number - use 0 for default"
+msgstr "Kommunikasjonsportnummer - bruk 0 for standard"
-#: ../../mod/settings.php:877 ../../mod/settings.php:882
-#: ../../mod/settings.php:953 ../../mod/api.php:106 ../../mod/profiles.php:493
-#: ../../mod/admin.php:420
-msgid "No"
-msgstr "Nei"
+#: ../../mod/setup.php:298
+msgid "Database Login Name"
+msgstr "Database innloggingsnavn"
-#: ../../mod/settings.php:877 ../../mod/settings.php:882
-#: ../../mod/settings.php:953 ../../mod/api.php:105 ../../mod/profiles.php:492
-#: ../../mod/admin.php:422
-msgid "Yes"
-msgstr "Ja"
+#: ../../mod/setup.php:299
+msgid "Database Login Password"
+msgstr "Database innloggingspassord"
-#: ../../mod/settings.php:882
-msgid "Allow us to suggest you as a potential friend to new members?"
-msgstr "Tillat oss å foreslå deg som en mulig venn til nye medlemmer?"
+#: ../../mod/setup.php:300
+msgid "Database Name"
+msgstr "Databasenavn"
-#: ../../mod/settings.php:886 ../../mod/profile_photo.php:365
-msgid "or"
-msgstr "eller"
+#: ../../mod/setup.php:301
+msgid "Database Type"
+msgstr "Databasetype"
-#: ../../mod/settings.php:891
-msgid "Your channel address is"
-msgstr "Din kanaladresse er"
+#: ../../mod/setup.php:303 ../../mod/setup.php:347
+msgid "Site administrator email address"
+msgstr "E-postadressen til administrator ved nettstedet"
-#: ../../mod/settings.php:925
-msgid "Channel Settings"
-msgstr "Kanalinnstillinger"
+#: ../../mod/setup.php:303 ../../mod/setup.php:347
+msgid ""
+"Your account email address must match this in order to use the web admin "
+"panel."
+msgstr "Din konto sin e-postadresse må være lik denne for å kunne bruke web-administrasjonspanelet."
-#: ../../mod/settings.php:934
-msgid "Basic Settings"
-msgstr "Grunninnstillinger"
+#: ../../mod/setup.php:304 ../../mod/setup.php:349
+msgid "Website URL"
+msgstr "Nettstedets URL"
-#: ../../mod/settings.php:937
-msgid "Your Timezone:"
-msgstr "Din tidssone:"
+#: ../../mod/setup.php:304 ../../mod/setup.php:349
+msgid "Please use SSL (https) URL if available."
+msgstr "Vennligst bruk SSL (https) URL hvis tilgjengelig."
-#: ../../mod/settings.php:938
-msgid "Default Post Location:"
-msgstr "Standard plassering ved innlegg:"
+#: ../../mod/setup.php:307 ../../mod/setup.php:352
+msgid "Please select a default timezone for your website"
+msgstr "Vennligst velg en standard tidssone for ditt nettsted"
-#: ../../mod/settings.php:938
-msgid "Geographical location to display on your posts"
-msgstr "Geografisk plassering som vises på dine innlegg"
+#: ../../mod/setup.php:335
+msgid "Site settings"
+msgstr "Nettstedets innstillinger"
-#: ../../mod/settings.php:939
-msgid "Use Browser Location:"
-msgstr "Bruk nettleseren sin plassering:"
+#: ../../mod/setup.php:395
+msgid "Could not find a command line version of PHP in the web server PATH."
+msgstr "Fant ikke en kommandolinjeversjon av PHP i webtjenerens sti (PATH)."
-#: ../../mod/settings.php:941
-msgid "Adult Content"
-msgstr "Voksent innhold"
+#: ../../mod/setup.php:396
+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 "Hvis du ikke har en kommandolinjeversjon av PHP installert på tjeneren, så vil du ikke kunne kjøre bakgrunnshenting via cron."
-#: ../../mod/settings.php:941
+#: ../../mod/setup.php:400
+msgid "PHP executable path"
+msgstr "PHP-kjørefilens sti"
+
+#: ../../mod/setup.php:400
msgid ""
-"This channel frequently or regularly publishes adult content. (Please tag "
-"any adult material and/or nudity with #NSFW)"
-msgstr "Denne kanalen vil ofte eller jevnlig publisere voksent innhold. (Vennligst merk alt voksent materiale og/eller nakenhet med #NSFW)"
+"Enter full path to php executable. You can leave this blank to continue the "
+"installation."
+msgstr "Skriv full sti til kjørefilen for PHP. Du kan la denne stå blank for å fortsette installasjonen."
-#: ../../mod/settings.php:943
-msgid "Security and Privacy Settings"
-msgstr "Sikkerhets- og personverninnstillinger"
+#: ../../mod/setup.php:405
+msgid "Command line PHP"
+msgstr "Kommandolinje PHP"
-#: ../../mod/settings.php:945
-msgid "Hide my online presence"
-msgstr "Skjul min tilstedeværelse online"
+#: ../../mod/setup.php:414
+msgid ""
+"The command line version of PHP on your system does not have "
+"\"register_argc_argv\" enabled."
+msgstr "Kommandolinjeversjonen av PHP på ditt system har ikke \"register_argc_argv\" påskrudd."
-#: ../../mod/settings.php:945
-msgid "Prevents displaying in your profile that you are online"
-msgstr "Forhindrer visning på din profil av at du er online "
+#: ../../mod/setup.php:415
+msgid "This is required for message delivery to work."
+msgstr "Dette er påkrevd for at meldingslevering skal virke."
-#: ../../mod/settings.php:947
-msgid "Simple Privacy Settings:"
-msgstr "Enkle personverninnstillinger:"
+#: ../../mod/setup.php:417
+msgid "PHP register_argc_argv"
+msgstr "PHP register_argc_argv"
-#: ../../mod/settings.php:948
+#: ../../mod/setup.php:438
msgid ""
-"Very Public - <em>extremely permissive (should be used with caution)</em>"
-msgstr "Svært offentlig - <em>ekstremt åpent (bør brukes med varsomhet)</em>"
+"Error: the \"openssl_pkey_new\" function on this system is not able to "
+"generate encryption keys"
+msgstr "Feil: \"openssl_pkey_new\"-funksjonen på dette systemet er ikke i stand til å lage krypteringsnøkler"
-#: ../../mod/settings.php:949
+#: ../../mod/setup.php:439
msgid ""
-"Typical - <em>default public, privacy when desired (similar to social "
-"network permissions but with improved privacy)</em>"
-msgstr "Typisk - <em>standard er offentlig, personvern når ønsket (likner på tillatelser i sosiale nettverk, men med forbedret personvern)</em>"
+"If running under Windows, please see "
+"\"http://www.php.net/manual/en/openssl.installation.php\"."
+msgstr "Ved kjøring på Windows, vennligst se \"http://www.php.net/manual/en/openssl.installation.php\"."
-#: ../../mod/settings.php:950
-msgid "Private - <em>default private, never open or public</em>"
-msgstr "Privat - <em>standard er privat, aldri åpen eller offentlig</em>"
+#: ../../mod/setup.php:441
+msgid "Generate encryption keys"
+msgstr "Lag krypteringsnøkler"
-#: ../../mod/settings.php:951
-msgid "Blocked - <em>default blocked to/from everybody</em>"
-msgstr "Blokkert - <em>standard blokkert til/fra alle</em>"
+#: ../../mod/setup.php:448
+msgid "libCurl PHP module"
+msgstr "libCurl PHP-modul"
-#: ../../mod/settings.php:953
-msgid "Allow others to tag your posts"
-msgstr "Tillat andre å merke dine innlegg"
+#: ../../mod/setup.php:449
+msgid "GD graphics PHP module"
+msgstr "GD graphics PHP-modul"
+
+#: ../../mod/setup.php:450
+msgid "OpenSSL PHP module"
+msgstr "OpenSSL PHP-modul"
+
+#: ../../mod/setup.php:451
+msgid "mysqli or postgres PHP module"
+msgstr "MySQLi eller Postgres PHP modul"
+
+#: ../../mod/setup.php:452
+msgid "mb_string PHP module"
+msgstr "mb_string PHP-modul"
+
+#: ../../mod/setup.php:453
+msgid "mcrypt PHP module"
+msgstr "mcrypt PHP-modul"
+
+#: ../../mod/setup.php:458 ../../mod/setup.php:460
+msgid "Apache mod_rewrite module"
+msgstr "Apache mod_rewrite-modul"
-#: ../../mod/settings.php:953
+#: ../../mod/setup.php:458
msgid ""
-"Often used by the community to retro-actively flag inappropriate content"
-msgstr "Ofte brukt av fellesskapet for å merke upassende innhold i etterkant"
+"Error: Apache webserver mod-rewrite module is required but not installed."
+msgstr "Feil: Apache web-tjenerens mod-rewrite-modul er påkrevd, men ikke installert."
-#: ../../mod/settings.php:955
-msgid "Advanced Privacy Settings"
-msgstr "Avanserte personverninnstillinger"
+#: ../../mod/setup.php:464 ../../mod/setup.php:467
+msgid "proc_open"
+msgstr "proc_open"
-#: ../../mod/settings.php:957
-msgid "Expire other channel content after this many days"
-msgstr "Annet kanal innhold utløper etter så mange dager"
+#: ../../mod/setup.php:464
+msgid ""
+"Error: proc_open is required but is either not installed or has been "
+"disabled in php.ini"
+msgstr "Feil: proc_open er påkrevd, men er enten ikke installert eller har blitt avskrudd i php.ini"
-#: ../../mod/settings.php:957
-msgid "0 or blank prevents expiration"
-msgstr "0 eller blankt forhindrer utløp"
+#: ../../mod/setup.php:472
+msgid "Error: libCURL PHP module required but not installed."
+msgstr "Feil: libCURL PHP-modul er påkrevd, men er ikke installert."
-#: ../../mod/settings.php:958
-msgid "Maximum Friend Requests/Day:"
-msgstr "Maksimalt antall venneforespørsler per dag:"
+#: ../../mod/setup.php:476
+msgid ""
+"Error: GD graphics PHP module with JPEG support required but not installed."
+msgstr "Feil: GD graphics PHP-modul med JPEG-støtte er påkrevd, men er ikke installert."
-#: ../../mod/settings.php:958
-msgid "May reduce spam activity"
-msgstr "Kan redusere søppelpostaktivitet"
+#: ../../mod/setup.php:480
+msgid "Error: openssl PHP module required but not installed."
+msgstr "Feil: openssl PHP-modul er påkrevd, men er ikke installert."
-#: ../../mod/settings.php:959
-msgid "Default Post Permissions"
-msgstr "Standard innleggstillatelser"
+#: ../../mod/setup.php:484
+msgid ""
+"Error: mysqli or postgres PHP module required but neither are installed."
+msgstr "Feil: mysqli eller postgres PHP modul er påkrevd, men ingen av dem er installert."
-#: ../../mod/settings.php:971
-msgid "Maximum private messages per day from unknown people:"
-msgstr "Maksimalt antall private meldinger per dag fra ukjente personer:"
+#: ../../mod/setup.php:488
+msgid "Error: mb_string PHP module required but not installed."
+msgstr "Feil: mb_string PHP-modul er påkrevd, men er ikke installert."
-#: ../../mod/settings.php:971
-msgid "Useful to reduce spamming"
-msgstr "Nyttig for å redusere søppelpost"
+#: ../../mod/setup.php:492
+msgid "Error: mcrypt PHP module required but not installed."
+msgstr "Feil: mcrypt PHP-modul er påkrevd, men er ikke installert."
-#: ../../mod/settings.php:974
-msgid "Notification Settings"
-msgstr "Varslingsinnstillinger"
+#: ../../mod/setup.php:508
+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 "Web-installasjonen må kunne lage en fil kalt \".htconfig.php\" i toppkatalogen til web-tjeneren din, men dette får den ikke til."
-#: ../../mod/settings.php:975
-msgid "By default post a status message when:"
-msgstr "Legg inn en statusmelding når du:"
+#: ../../mod/setup.php:509
+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 "Dette er oftest tillatelsesinnstilling, ettersom webtjeneren kanskje kan skrive til filer i din mappe - selv om du kan."
-#: ../../mod/settings.php:976
-msgid "accepting a friend request"
-msgstr "aksepterer en venneforespørsel"
+#: ../../mod/setup.php:510
+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 "På slutten av denne prosedyren vil vi gi deg en tekst til å lagre i en fil kalt .htconfig.php i toppkatalogen til din Red."
-#: ../../mod/settings.php:977
-msgid "joining a forum/community"
-msgstr "blir med i et forum/miljø"
+#: ../../mod/setup.php:511
+msgid ""
+"You can alternatively skip this procedure and perform a manual installation."
+" Please see the file \"install/INSTALL.txt\" for instructions."
+msgstr "Alternativt, så kan du hoppe over denne prosedyren og gjennomføre en manuell installasjon. Vennligst se filen \"install/INSTALL.txt\" for instruksjoner."
-#: ../../mod/settings.php:978
-msgid "making an <em>interesting</em> profile change"
-msgstr "gjør en <em>interessant</em> profilendring"
+#: ../../mod/setup.php:514
+msgid ".htconfig.php is writable"
+msgstr ".htconfig.php kan skrives til"
-#: ../../mod/settings.php:979
-msgid "Send a notification email when:"
-msgstr "Send en varsel-e-post når:"
+#: ../../mod/setup.php:524
+msgid ""
+"Red uses the Smarty3 template engine to render its web views. Smarty3 "
+"compiles templates to PHP to speed up rendering."
+msgstr "Red bruker malmotoren Smarty3 for å gjengi sine webvisninger. Smarty3 kompilerer malene om til PHP for å framskynde gjengivelsen."
-#: ../../mod/settings.php:980
-msgid "You receive a connection request"
-msgstr "Du har mottatt en forespørsel om forbindelse"
+#: ../../mod/setup.php:525
+#, php-format
+msgid ""
+"In order to store these compiled templates, the web server needs to have "
+"write access to the directory %s under the Red top level folder."
+msgstr "For å kunne lagre disse kompilerte malene, så må webtjeneren ha skrivetilgang til katalogen %s under Red sin hovedmappe."
-#: ../../mod/settings.php:981
-msgid "Your connections are confirmed"
-msgstr "Dine forbindelser er bekreftet"
+#: ../../mod/setup.php:526 ../../mod/setup.php:544
+msgid ""
+"Please ensure that the user that your web server runs as (e.g. www-data) has"
+" write access to this folder."
+msgstr "Vennligst sikre at brukeren som din web-tjeneste kjører som (for eksempel www-data) har skrivetilgang til denne katalogen."
-#: ../../mod/settings.php:982
-msgid "Someone writes on your profile wall"
-msgstr "Noen skriver på din profilvegg"
+#: ../../mod/setup.php:527
+#, php-format
+msgid ""
+"Note: as a security measure, you should give the web server write access to "
+"%s only--not the template files (.tpl) that it contains."
+msgstr "Merknad: som et sikkerhetstiltak bør du bare gi webtjerenn skrivetilgang til %s - ikke til malfilene (.tpl) som den inneholder."
-#: ../../mod/settings.php:983
-msgid "Someone writes a followup comment"
-msgstr "Noen skriver en oppfølgende kommentar"
+#: ../../mod/setup.php:530
+#, php-format
+msgid "%s is writable"
+msgstr "%s kan skrives til"
-#: ../../mod/settings.php:984
-msgid "You receive a private message"
-msgstr "Du mottar en privat melding"
+#: ../../mod/setup.php:543
+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 bruker lagringsmappen for å lagre opplastede filer. Webtjeneren trenger å ha skrivetilgang til lagringsmappen under Red sin toppnivåmappe."
-#: ../../mod/settings.php:985
-msgid "You receive a friend suggestion"
-msgstr "Du mottok et venneforslag"
+#: ../../mod/setup.php:547
+msgid "store is writable"
+msgstr "lageret kan skrives til"
-#: ../../mod/settings.php:986
-msgid "You are tagged in a post"
-msgstr "Du merkes i et innlegg"
+#: ../../mod/setup.php:577
+msgid ""
+"SSL certificate cannot be validated. Fix certificate or disable https access"
+" to this site."
+msgstr "SSL-sertifikatet kan ikke kontrolleres. Fiks sertifikatet eller skru av https tilgang til dette nettstedet."
-#: ../../mod/settings.php:987
-msgid "You are poked/prodded/etc. in a post"
-msgstr "Du ble prikket/oppildnet/og så vider i et innlegg"
+#: ../../mod/setup.php:578
+msgid ""
+"If you have https access to your website or allow connections to TCP port "
+"443 (the https: port), you MUST use a browser-valid certificate. You MUST "
+"NOT use self-signed certificates!"
+msgstr "Hvis du har HTTPS-tilgang til ditt nettsted eller tillater forbindelser til TCP port 443 (HTTPS-porten), så MÅ du bruke nettlesergodkjent sertifkater. Du MÅ IKKE bruke egensignert sertifikater!"
-#: ../../mod/settings.php:990
-msgid "Advanced Account/Page Type Settings"
-msgstr "Avanserte innstillinger for konto/sidetype"
+#: ../../mod/setup.php:579
+msgid ""
+"This restriction is incorporated because public posts from you may for "
+"example contain references to images on your own hub."
+msgstr "Denne begrensningen er tatt inn fordi offentlige innlegg fra deg kan for eksempel inneholde referanser til bilder på din egen hub."
-#: ../../mod/settings.php:991
-msgid "Change the behaviour of this account for special situations"
-msgstr "Endre oppførselen til denne kontoen i spesielle situasjoner"
+#: ../../mod/setup.php:580
+msgid ""
+"If your certificate is not recognized, members of other sites (who may "
+"themselves have valid certificates) will get a warning message on their own "
+"site complaining about security issues."
+msgstr "Hvis sertifikatet ditt ikke gjenkjennes, så vil medlemmer på andre nettsteder (som selv kan ha godkjente sertifikater) få en beskjed med en advarsel på deres eget nettsted som klager over sikkerhetsproblemer."
-#: ../../mod/settings.php:994
+#: ../../mod/setup.php:581
msgid ""
-"Please enable expert mode (in <a href=\"settings/features\">Settings > "
-"Additional features</a>) to adjust!"
-msgstr "Vennligst skru på ekspertmodus (under <a href=\"settings/features\">Innstillinger > Ekstra funksjoner</a>) for å justere!"
+"This can cause usability issues elsewhere (not just on your own site) so we "
+"must insist on this requirement."
+msgstr "Dette kan gi problemer med brukervennlighet (ikke bare på ditt eget nettsted), så vi må insistere på dette kravet."
-#: ../../mod/settings.php:995
-msgid "Miscellaneous Settings"
-msgstr "Diverse innstillinger"
+#: ../../mod/setup.php:582
+msgid ""
+"Providers are available that issue free certificates which are browser-"
+"valid."
+msgstr "Det finnes tilbydere som utsteder gratis sertifikater som er gyldige i nettlesere."
-#: ../../mod/settings.php:997
-msgid "Personal menu to display in your channel pages"
-msgstr "Personlig meny som kan vises på dine kanalsider"
+#: ../../mod/setup.php:584
+msgid "SSL certificate validation"
+msgstr "SSL sertifikat-kontroll"
+
+#: ../../mod/setup.php:590
+msgid ""
+"Url rewrite in .htaccess is not working. Check your server "
+"configuration.Test: "
+msgstr "URL omskriving (rewrite) i .htaccess virker ikke. Sjekk konfigurasjonen til tjeneren din. Test:"
+
+#: ../../mod/setup.php:592
+msgid "Url rewrite is working"
+msgstr "URL rewrite virker"
+
+#: ../../mod/setup.php:602
+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 "Databasekonfigurasjonsfilen \".htconfig.php\" kunne ikke skrives. Vennligst bruk den medfølgende teksten for å lage en konfigurasjonsfil i toppkatalogen av din web-tjener."
+
+#: ../../mod/setup.php:626
+msgid "Errors encountered creating database tables."
+msgstr "Feil oppstod under opprettelsen av databasetabeller."
+
+#: ../../mod/setup.php:661
+msgid "<h1>What next</h1>"
+msgstr "<h1>Hva gjenstår</h1>"
+
+#: ../../mod/setup.php:662
+msgid ""
+"IMPORTANT: You will need to [manually] setup a scheduled task for the "
+"poller."
+msgstr "VIKTIG: Du må [manuelt] sette opp en automatisert tidfestet oppgave til bakgrunnshenteren."
+
+#: ../../mod/siteinfo.php:90
+#, php-format
+msgid "Version %s"
+msgstr "Versjon %s"
+
+#: ../../mod/siteinfo.php:111
+msgid "Installed plugins/addons/apps:"
+msgstr "Installerte tilleggsfunksjoner/tillegg/apper:"
+
+#: ../../mod/siteinfo.php:124
+msgid "No installed plugins/addons/apps"
+msgstr "Ingen installerte tilleggsfunksjoner/tillegg/apper"
+
+#: ../../mod/siteinfo.php:132
+msgid "Red"
+msgstr "Red"
+
+#: ../../mod/siteinfo.php:133
+msgid ""
+"This is a hub of the Red Matrix - a global cooperative network of "
+"decentralized privacy enhanced websites."
+msgstr "Dette er en hub i Red Matrix - et globalt kooperativt nettverk av desentraliserte personvernforsterkede nettsteder."
+
+#: ../../mod/siteinfo.php:137
+msgid "Running at web location"
+msgstr "Kjører på webplasseringen"
+
+#: ../../mod/siteinfo.php:138
+msgid ""
+"Please visit <a href=\"http://getzot.com\">GetZot.com</a> to learn more "
+"about the Red Matrix."
+msgstr "Vennligst besøk <a href=\"http://getzot.com\">GetZot.com</a> for å lære mer om Red Matrix."
+
+#: ../../mod/siteinfo.php:139
+msgid "Bug reports and issues: please visit"
+msgstr "Feilmeldinger og feilretting: vennligst besøk"
+
+#: ../../mod/siteinfo.php:142
+msgid ""
+"Suggestions, praise, etc. - please email \"redmatrix\" at librelist - dot "
+"com"
+msgstr "Forslag, ros og så videre - vennligst e-post \"redmatrix\" hos librelist - punktum com"
+
+#: ../../mod/siteinfo.php:144
+msgid "Site Administrators"
+msgstr "Nettstedsadministratorer"
#: ../../mod/poke.php:159
msgid "Poke/Prod"
@@ -4006,17 +4597,6 @@ msgid ""
" and/or create new posts for you?"
msgstr "Vil du tillate dette programmet å få tilgang til dine innlegg og kontakter, og/eller lage nye innlegg for deg?"
-#: ../../mod/post.php:226
-msgid ""
-"Remote authentication blocked. You are logged into this site locally. Please"
-" logout and retry."
-msgstr "Fjernautentisering blokkert. Du er logget inn på dette nettstedet lokalt. Vennligst logg ut og prøv på nytt."
-
-#: ../../mod/post.php:257 ../../mod/openid.php:72 ../../mod/openid.php:178
-#, php-format
-msgid "Welcome %s. Remote authentication successful."
-msgstr "Velkommen %s. Ekstern autentisering er vellykket."
-
#: ../../mod/attach.php:9
msgid "Item not available."
msgstr "Elementet er ikke tilgjengelig."
@@ -4026,384 +4606,282 @@ msgstr "Elementet er ikke tilgjengelig."
msgid "Fetching URL returns error: %1$s"
msgstr "Henting av URL gir følgende feil: %1$s"
-#: ../../mod/block.php:27 ../../mod/page.php:35
+#: ../../mod/block.php:27 ../../mod/page.php:33
msgid "Invalid item."
msgstr "Ugyldig element."
-#: ../../mod/block.php:39 ../../mod/chanview.php:77 ../../mod/page.php:47
-#: ../../mod/home.php:52 ../../mod/wall_upload.php:28
+#: ../../mod/block.php:39 ../../mod/wall_upload.php:28 ../../mod/page.php:45
msgid "Channel not found."
msgstr "Kanalen ble ikke funnet."
-#: ../../mod/block.php:75 ../../mod/page.php:83 ../../mod/display.php:100
-#: ../../mod/help.php:72 ../../index.php:236
+#: ../../mod/block.php:75 ../../mod/display.php:102 ../../mod/help.php:70
+#: ../../mod/page.php:81 ../../index.php:241
msgid "Page not found."
msgstr "Siden ikke funnet."
-#: ../../mod/profile_photo.php:108
-msgid "Image uploaded but image cropping failed."
-msgstr "Bildet ble lastet opp, men beskjæring av bildet mislyktes."
-
-#: ../../mod/profile_photo.php:161
-msgid "Image resize failed."
-msgstr "Endring av bildestørrelse mislyktes."
-
-#: ../../mod/profile_photo.php:205
-msgid ""
-"Shift-reload the page or clear browser cache if the new photo does not "
-"display immediately."
-msgstr "Hold nede Shift-knappen og last siden på nytt eller tøm nettleserens mellomlager hvis det nye bildet ikke vises umiddelbart."
-
-#: ../../mod/profile_photo.php:232
-#, php-format
-msgid "Image exceeds size limit of %d"
-msgstr "Bildet overstiger størrelsesbegrensningen på %d"
+#: ../../mod/sources.php:32
+msgid "Failed to create source. No channel selected."
+msgstr "Mislyktes med å lage kilde. Ingen kanal er valgt."
-#: ../../mod/profile_photo.php:241
-msgid "Unable to process image."
-msgstr "Kan ikke behandle bildet."
+#: ../../mod/sources.php:45
+msgid "Source created."
+msgstr "Kilden er laget."
-#: ../../mod/profile_photo.php:290 ../../mod/profile_photo.php:339
-msgid "Photo not available."
-msgstr "Bildet er ikke tilgjengelig."
+#: ../../mod/sources.php:57
+msgid "Source updated."
+msgstr "Kilden er oppdatert."
-#: ../../mod/profile_photo.php:358
-msgid "Upload File:"
-msgstr "Last opp fil:"
+#: ../../mod/sources.php:82
+msgid "*"
+msgstr "*"
-#: ../../mod/profile_photo.php:359
-msgid "Select a profile:"
-msgstr "Velg en profil:"
+#: ../../mod/sources.php:89
+msgid "Manage remote sources of content for your channel."
+msgstr "HÃ¥ndtere eksterne innholdskilder til din kanal."
-#: ../../mod/profile_photo.php:360
-msgid "Upload Profile Photo"
-msgstr "Last opp profilbilde:"
+#: ../../mod/sources.php:90 ../../mod/sources.php:100
+msgid "New Source"
+msgstr "Ny kilde"
-#: ../../mod/profile_photo.php:361
-msgid "Upload"
-msgstr "Last opp"
+#: ../../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 "Importer alt eller et utvalgt av innhold fra følgende kanal inn i denne kanalen og distribuer det i henhold til dine egne kanalinnstillinger."
-#: ../../mod/profile_photo.php:365
-msgid "skip this step"
-msgstr "hopp over dette steget"
+#: ../../mod/sources.php:102 ../../mod/sources.php:134
+msgid "Only import content with these words (one per line)"
+msgstr "Bare importer innhold med disse ordene (ett ord per linje)"
-#: ../../mod/profile_photo.php:365
-msgid "select a photo from your photo albums"
-msgstr "velg et bilde fra dine fotoalbum"
+#: ../../mod/sources.php:102 ../../mod/sources.php:134
+msgid "Leave blank to import all public content"
+msgstr "La stå tomt for å importere alt offentlig innhold"
-#: ../../mod/profile_photo.php:379
-msgid "Crop Image"
-msgstr "Beskjær bildet"
+#: ../../mod/sources.php:103 ../../mod/sources.php:137
+#: ../../mod/new_channel.php:112
+msgid "Channel Name"
+msgstr "Kanalnavn"
-#: ../../mod/profile_photo.php:380
-msgid "Please adjust the image cropping for optimum viewing."
-msgstr "Vennligst juster bildebeskjæringen for optimal visning."
+#: ../../mod/sources.php:123 ../../mod/sources.php:150
+msgid "Source not found."
+msgstr "Kilden ble ikke funnet."
-#: ../../mod/profile_photo.php:382
-msgid "Done Editing"
-msgstr "Avslutt redigering"
+#: ../../mod/sources.php:130
+msgid "Edit Source"
+msgstr "Endre kilde"
-#: ../../mod/profile_photo.php:425
-msgid "Image uploaded successfully."
-msgstr "Opplasting av bildet var vellykket."
+#: ../../mod/sources.php:131
+msgid "Delete Source"
+msgstr "Slett kilde"
-#: ../../mod/profile_photo.php:427
-msgid "Image upload failed."
-msgstr "Opplasting av bildet mislyktes."
+#: ../../mod/sources.php:158
+msgid "Source removed"
+msgstr "Kilden er fjernet"
-#: ../../mod/profile_photo.php:436
-#, php-format
-msgid "Image size reduction [%s] failed."
-msgstr "Forminsking av bildet [%s] mislyktes."
+#: ../../mod/sources.php:160
+msgid "Unable to remove source."
+msgstr "Ikke i stand til å fjerne kilde."
-#: ../../mod/blocks.php:66
+#: ../../mod/blocks.php:99
msgid "Block Name"
msgstr "Byggeklossens navn"
-#: ../../mod/profiles.php:18 ../../mod/profiles.php:138
-#: ../../mod/profiles.php:168 ../../mod/profiles.php:472
-msgid "Profile not found."
-msgstr "Profilen ble ikke funnet."
-
-#: ../../mod/profiles.php:38
-msgid "Profile deleted."
-msgstr "Profilen er slettet."
-
-#: ../../mod/profiles.php:56 ../../mod/profiles.php:92
-msgid "Profile-"
-msgstr "Profil-"
-
-#: ../../mod/profiles.php:77 ../../mod/profiles.php:120
-msgid "New profile created."
-msgstr "Ny profil opprettet."
-
-#: ../../mod/profiles.php:98
-msgid "Profile unavailable to clone."
-msgstr "Profilen er utilgjengelig for klonen."
-
-#: ../../mod/profiles.php:178
-msgid "Profile Name is required."
-msgstr "Profilnavn er påkrevd."
-
-#: ../../mod/profiles.php:294
-msgid "Marital Status"
-msgstr "Sivilstand"
-
-#: ../../mod/profiles.php:298
-msgid "Romantic Partner"
-msgstr "Romantisk partner"
-
-#: ../../mod/profiles.php:302
-msgid "Likes"
-msgstr "Liker"
-
-#: ../../mod/profiles.php:306
-msgid "Dislikes"
-msgstr "Liker ikke"
+#: ../../mod/search.php:13 ../../mod/directory.php:15 ../../mod/photos.php:458
+#: ../../mod/display.php:9 ../../mod/viewconnections.php:17
+msgid "Public access denied."
+msgstr "Offentlig tilgang avvist."
-#: ../../mod/profiles.php:310
-msgid "Work/Employment"
-msgstr "Arbeid/sysselsetting"
+#: ../../mod/directory.php:161
+msgid "Gender: "
+msgstr "Kjønn:"
-#: ../../mod/profiles.php:313
-msgid "Religion"
-msgstr "Religion"
+#: ../../mod/directory.php:163
+msgid "Status: "
+msgstr "Status:"
-#: ../../mod/profiles.php:317
-msgid "Political Views"
-msgstr "Politiske synspunkter"
+#: ../../mod/directory.php:165
+msgid "Homepage: "
+msgstr "Hjemmeside:"
-#: ../../mod/profiles.php:321
-msgid "Gender"
-msgstr "Kjønn"
+#: ../../mod/directory.php:168
+msgid "Hometown: "
+msgstr "Hjemby:"
-#: ../../mod/profiles.php:325
-msgid "Sexual Preference"
-msgstr "Seksuelle preferanser"
+#: ../../mod/directory.php:170
+msgid "About: "
+msgstr "Om:"
-#: ../../mod/profiles.php:329
-msgid "Homepage"
-msgstr "Hjemmeside"
+#: ../../mod/directory.php:225
+msgid "Public Forum:"
+msgstr "Offentlig forum:"
-#: ../../mod/profiles.php:333
-msgid "Interests"
-msgstr "Interesser"
+#: ../../mod/directory.php:228
+msgid "Keywords: "
+msgstr "Nøkkelord:"
-#: ../../mod/profiles.php:337 ../../mod/admin.php:892
-msgid "Address"
-msgstr "Adresse"
+#: ../../mod/directory.php:268
+msgid "Finding:"
+msgstr "Finner:"
-#: ../../mod/profiles.php:344 ../../mod/pubsites.php:25
-msgid "Location"
-msgstr "Plassering"
+#: ../../mod/directory.php:273
+msgid "next page"
+msgstr "Neste side"
-#: ../../mod/profiles.php:427
-msgid "Profile updated."
-msgstr "Profilen er oppdatert."
+#: ../../mod/directory.php:273
+msgid "previous page"
+msgstr "Forrige side"
-#: ../../mod/profiles.php:491
-msgid "Hide your contact/friend list from viewers of this profile?"
-msgstr "Skjul kontakt-/vennelisten din fra de som ser på denne profilen?"
+#: ../../mod/directory.php:290
+msgid "No entries (some entries may be hidden)."
+msgstr "Ingen oppføringer (noen oppføringer kan være skjult)."
-#: ../../mod/profiles.php:514
-msgid "Edit Profile Details"
-msgstr "Endre profildetaljer"
+#: ../../mod/register.php:44
+msgid "Maximum daily site registrations exceeded. Please try again tomorrow."
+msgstr "Antallet daglige registreringer ved nettstedet er overskredet. Vær vennlig å prøve igjen imorgen."
-#: ../../mod/profiles.php:516
-msgid "View this profile"
-msgstr "Vis denne profilen"
+#: ../../mod/register.php:50
+msgid ""
+"Please indicate acceptance of the Terms of Service. Registration failed."
+msgstr "Vennligst angi at tjenesteavtalen er akseptert. Registrering mislyktes."
-#: ../../mod/profiles.php:517
-msgid "Change Profile Photo"
-msgstr "Endre profilbilde"
+#: ../../mod/register.php:84
+msgid "Passwords do not match."
+msgstr "Passordene er ikke like."
-#: ../../mod/profiles.php:518
-msgid "Create a new profile using these settings"
-msgstr "Lag en ny profil ved å bruke disse innstillingene"
+#: ../../mod/register.php:117
+msgid ""
+"Registration successful. Please check your email for validation "
+"instructions."
+msgstr "Registreringen er vellykket. Vennligst sjekk e-posten din for å bekrefte opprettelsen."
-#: ../../mod/profiles.php:519
-msgid "Clone this profile"
-msgstr "Klon denne profilen"
+#: ../../mod/register.php:123
+msgid "Your registration is pending approval by the site owner."
+msgstr "Din registrering venter på godkjenning av nettstedets eier."
-#: ../../mod/profiles.php:520
-msgid "Delete this profile"
-msgstr "Slett denne profilen"
+#: ../../mod/register.php:126
+msgid "Your registration can not be processed."
+msgstr "Din registrering kan ikke behandles."
-#: ../../mod/profiles.php:521
-msgid "Profile Name:"
-msgstr "Profilnavn:"
+#: ../../mod/register.php:163
+msgid "Registration on this site/hub is by approval only."
+msgstr "Registrering på dette nettstedet/denne hubben skjer bare gjennom godkjenning."
-#: ../../mod/profiles.php:522
-msgid "Your Full Name:"
-msgstr "Ditt fulle navn:"
+#: ../../mod/register.php:164
+msgid "<a href=\"pubsites\">Register at another affiliated site/hub</a>"
+msgstr "<a href=\"pubsites\">Registrer på et annet tilknyttet nettsted/hub</a>"
-#: ../../mod/profiles.php:523
-msgid "Title/Description:"
-msgstr "Tittel/Beskrivelse:"
+#: ../../mod/register.php:174
+msgid ""
+"This site has exceeded the number of allowed daily account registrations. "
+"Please try again tomorrow."
+msgstr "Dette nettstedet har overskredet antallet tillate kontoregistreringer per dag. Vennligst prøv igjen imorgen."
-#: ../../mod/profiles.php:524
-msgid "Your Gender:"
-msgstr "Ditt kjønn:"
+#: ../../mod/register.php:185
+msgid "Terms of Service"
+msgstr "Tjenesteavtale"
-#: ../../mod/profiles.php:525
+#: ../../mod/register.php:191
#, php-format
-msgid "Birthday (%s):"
-msgstr "Fødselsdag (%s):"
-
-#: ../../mod/profiles.php:526
-msgid "Street Address:"
-msgstr "Gateadresse:"
-
-#: ../../mod/profiles.php:527
-msgid "Locality/City:"
-msgstr "Sted/By:"
-
-#: ../../mod/profiles.php:528
-msgid "Postal/Zip Code:"
-msgstr "Postnummer/ZIP-kode:"
-
-#: ../../mod/profiles.php:529
-msgid "Country:"
-msgstr "Land:"
-
-#: ../../mod/profiles.php:530
-msgid "Region/State:"
-msgstr "Region/fylke:"
-
-#: ../../mod/profiles.php:531
-msgid "<span class=\"heart\">&hearts;</span> Marital Status:"
-msgstr "<span class=\"heart\">&hearts;</span> Sivilstand:"
-
-#: ../../mod/profiles.php:532
-msgid "Who: (if applicable)"
-msgstr "Hvem: (hvis det er aktuelt) "
-
-#: ../../mod/profiles.php:533
-msgid "Examples: cathy123, Cathy Williams, cathy@example.com"
-msgstr "Eksempler: kari123, Kari Villiamsen, kari@example.com"
-
-#: ../../mod/profiles.php:534
-msgid "Since [date]:"
-msgstr "Siden [dato]:"
-
-#: ../../mod/profiles.php:536
-msgid "Homepage URL:"
-msgstr "Hjemmeside URL:"
-
-#: ../../mod/profiles.php:539
-msgid "Religious Views:"
-msgstr "Religiøse synspunkter:"
-
-#: ../../mod/profiles.php:540
-msgid "Keywords:"
-msgstr "Nøkkelord:"
-
-#: ../../mod/profiles.php:543
-msgid "Example: fishing photography software"
-msgstr "Eksempel: fisking fotografering programvare"
-
-#: ../../mod/profiles.php:544
-msgid "Used in directory listings"
-msgstr "Brukt i katalogoppføringer"
+msgid "I accept the %s for this website"
+msgstr "Jeg godtar %s for dette nettstedet"
-#: ../../mod/profiles.php:545
-msgid "Tell us about yourself..."
-msgstr "Fortell oss om deg selv..."
+#: ../../mod/register.php:193
+#, php-format
+msgid "I am over 13 years of age and accept the %s for this website"
+msgstr "Jeg er over 13 år gammel og aksepterer %s for dette nettstedet."
-#: ../../mod/profiles.php:546
-msgid "Hobbies/Interests"
-msgstr "Hobbier/Interesser"
+#: ../../mod/register.php:207 ../../mod/admin.php:413
+msgid "Registration"
+msgstr "Registrering"
-#: ../../mod/profiles.php:547
-msgid "Contact information and Social Networks"
-msgstr "Kontaktinformasjon og sosiale nettverk"
+#: ../../mod/register.php:212
+msgid "Membership on this site is by invitation only."
+msgstr "Medlemskap ved dette nettstedet skjer kun via invitasjon."
-#: ../../mod/profiles.php:548
-msgid "My other channels"
-msgstr "Mine andre kanaler"
+#: ../../mod/register.php:213
+msgid "Please enter your invitation code"
+msgstr "Vennligst skriv din invitasjonskode"
-#: ../../mod/profiles.php:549
-msgid "Musical interests"
-msgstr "Musikkinteresser"
+#: ../../mod/register.php:216
+msgid "Your email address"
+msgstr "Din e-postadresse"
-#: ../../mod/profiles.php:550
-msgid "Books, literature"
-msgstr "Bøker, litteratur"
+#: ../../mod/register.php:217
+msgid "Choose a password"
+msgstr "Velg et passord"
-#: ../../mod/profiles.php:551
-msgid "Television"
-msgstr "TV/fjernsyn"
+#: ../../mod/register.php:218
+msgid "Please re-enter your password"
+msgstr "Vennligst skriv ditt passord en gang til"
-#: ../../mod/profiles.php:552
-msgid "Film/dance/culture/entertainment"
-msgstr "Film/dans/kultur/underholdning"
+#: ../../mod/events.php:81
+msgid "Event can not end before it has started."
+msgstr "Hendelsen kan ikke slutte før den starter."
-#: ../../mod/profiles.php:553
-msgid "Love/romance"
-msgstr "Kjærlighet/romantikk"
+#: ../../mod/events.php:86
+msgid "Event title and start time are required."
+msgstr "Hendelsestittel og starttidspunkt er påkrevd."
-#: ../../mod/profiles.php:554
-msgid "Work/employment"
-msgstr "Arbeid/sysselsetting"
+#: ../../mod/events.php:100
+msgid "Event not found."
+msgstr "Hendelsen ble ikke funnet."
-#: ../../mod/profiles.php:555
-msgid "School/education"
-msgstr "Skole/utdanning"
+#: ../../mod/events.php:364
+msgid "l, F j"
+msgstr "l, F j"
-#: ../../mod/profiles.php:560
-msgid ""
-"This is your <strong>public</strong> profile.<br />It <strong>may</strong> "
-"be visible to anybody using the internet."
-msgstr "Dette er din <strong>offentlige</strong> profil.<br />Den <strong>kan</strong> være synlig for alle på Internett."
+#: ../../mod/events.php:386
+msgid "Edit event"
+msgstr "Endre hendelse"
-#: ../../mod/profiles.php:570 ../../mod/directory.php:143
-#: ../../mod/dirprofile.php:92
-msgid "Age: "
-msgstr "Alder:"
+#: ../../mod/events.php:432
+msgid "Create New Event"
+msgstr "Lag ny hendelse"
-#: ../../mod/profiles.php:609
-msgid "Edit/Manage Profiles"
-msgstr "Endre/håndter profiler"
+#: ../../mod/events.php:433 ../../mod/photos.php:859
+msgid "Previous"
+msgstr "Forrige"
-#: ../../mod/profiles.php:610
-msgid "Add profile things"
-msgstr "Legg til profilting"
+#: ../../mod/events.php:560
+msgid "Event details"
+msgstr "Hendelsesdetaljer"
-#: ../../mod/profiles.php:611
-msgid "Include desirable objects in your profile"
-msgstr "Inkluder ønskverdige objekter i din profil"
+#: ../../mod/events.php:561
+msgid "Starting date and Title are required."
+msgstr "Startdato og Tittel er påkrevd."
-#: ../../mod/bookmarks.php:38
-msgid "Bookmark added"
-msgstr "Bokmerke lagt til"
+#: ../../mod/events.php:565
+msgid "Event Starts:"
+msgstr "Hendelsen starter:"
-#: ../../mod/bookmarks.php:58
-msgid "My Bookmarks"
-msgstr "Mine bokmerker"
+#: ../../mod/events.php:565 ../../mod/events.php:581 ../../mod/appman.php:91
+#: ../../mod/appman.php:92
+msgid "Required"
+msgstr "PÃ¥krevd"
-#: ../../mod/bookmarks.php:69
-msgid "My Connections Bookmarks"
-msgstr "Mine forbindelsers bokmerker"
+#: ../../mod/events.php:571
+msgid "Finish date/time is not known or not relevant"
+msgstr "Sluttdato/-tidspunkt er ikke kjent eller ikke relevant"
-#: ../../mod/profperm.php:29 ../../mod/profperm.php:58
-msgid "Invalid profile identifier."
-msgstr "Ugyldig profil-identifikator."
+#: ../../mod/events.php:573
+msgid "Event Finishes:"
+msgstr "Hendelsen slutter:"
-#: ../../mod/profperm.php:110
-msgid "Profile Visibility Editor"
-msgstr "Endre profilsynlighet"
+#: ../../mod/events.php:575
+msgid "Adjust for viewer timezone"
+msgstr "Juster i forhold til tilskuerens tidssone"
-#: ../../mod/profperm.php:114
-msgid "Click on a contact to add or remove."
-msgstr "Klikk på en kontakt for å legge til eller fjerne."
+#: ../../mod/events.php:577
+msgid "Description:"
+msgstr "Beskrivelse:"
-#: ../../mod/profperm.php:123
-msgid "Visible To"
-msgstr "Synlig for"
+#: ../../mod/events.php:581
+msgid "Title:"
+msgstr "Tittel:"
-#: ../../mod/profperm.php:139 ../../mod/connections.php:279
-msgid "All Connections"
-msgstr "Alle forbindelser"
+#: ../../mod/events.php:583
+msgid "Share this event"
+msgstr "Del denne hendelsen"
#: ../../mod/pubsites.php:16
msgid "Public Sites"
@@ -4495,84 +4973,10 @@ msgstr "Navn på chatrom"
msgid "%1$s's Chatrooms"
msgstr "%1$s sine chatrom"
-#: ../../mod/register.php:43
-msgid "Maximum daily site registrations exceeded. Please try again tomorrow."
-msgstr "Antallet daglige registreringer ved nettstedet er overskredet. Vær vennlig å prøve igjen imorgen."
-
-#: ../../mod/register.php:49
-msgid ""
-"Please indicate acceptance of the Terms of Service. Registration failed."
-msgstr "Vennligst angi at tjenesteavtalen er akseptert. Registrering mislyktes."
-
-#: ../../mod/register.php:77
-msgid "Passwords do not match."
-msgstr "Passordene er ikke like."
-
-#: ../../mod/register.php:105
-msgid ""
-"Registration successful. Please check your email for validation "
-"instructions."
-msgstr "Registreringen er vellykket. Vennligst sjekk e-posten din for å bekrefte opprettelsen."
-
-#: ../../mod/register.php:111
-msgid "Your registration is pending approval by the site owner."
-msgstr "Din registrering venter på godkjenning av nettstedets eier."
-
-#: ../../mod/register.php:114
-msgid "Your registration can not be processed."
-msgstr "Din registrering kan ikke behandles."
-
-#: ../../mod/register.php:147
-msgid "Registration on this site/hub is by approval only."
-msgstr "Registrering på dette nettstedet/denne hubben skjer bare gjennom godkjenning."
-
-#: ../../mod/register.php:148
-msgid "<a href=\"pubsites\">Register at another affiliated site/hub</a>"
-msgstr "<a href=\"pubsites\">Registrer på et annet tilknyttet nettsted/hub</a>"
-
-#: ../../mod/register.php:156
-msgid ""
-"This site has exceeded the number of allowed daily account registrations. "
-"Please try again tomorrow."
-msgstr "Dette nettstedet har overskredet antallet tillate kontoregistreringer per dag. Vennligst prøv igjen imorgen."
-
-#: ../../mod/register.php:167
-msgid "Terms of Service"
-msgstr "Tjenesteavtale"
-
-#: ../../mod/register.php:173
-#, php-format
-msgid "I accept the %s for this website"
-msgstr "Jeg godtar %s for dette nettstedet"
-
-#: ../../mod/register.php:175
+#: ../../mod/subthread.php:103
#, php-format
-msgid "I am over 13 years of age and accept the %s for this website"
-msgstr "Jeg er over 13 år gammel og aksepterer %s for dette nettstedet."
-
-#: ../../mod/register.php:189 ../../mod/admin.php:443
-msgid "Registration"
-msgstr "Registrering"
-
-#: ../../mod/register.php:194
-msgid "Membership on this site is by invitation only."
-msgstr "Medlemskap ved dette nettstedet skjer kun via invitasjon."
-
-#: ../../mod/register.php:195
-msgid "Please enter your invitation code"
-msgstr "Vennligst skriv din invitasjonskode"
-
-#: ../../mod/register.php:198
-msgid "Your email address"
-msgstr "Din e-postadresse"
-
-#: ../../mod/register.php:199
-msgid "Choose a password"
-msgstr "Velg et passord"
-
-#: ../../mod/register.php:200
-msgid "Please re-enter your password"
-msgstr "Vennligst skriv ditt passord en gang til"
+msgid "%1$s is following %2$s's %3$s"
+msgstr "%1$s følger %2$s sin %3$s"
#: ../../mod/chatsvc.php:111
msgid "Away"
@@ -4582,39 +4986,65 @@ msgstr "Borte"
msgid "Online"
msgstr "Online"
-#: ../../mod/regmod.php:12
+#: ../../mod/regmod.php:11
msgid "Please login."
msgstr "Vennligst logg inn."
-#: ../../mod/cloud.php:112
-msgid "Red Matrix - Guests: Username: {your email address}, Password: +++"
-msgstr "Red Matrix - gjester: brukernavn: {din e-postadresse}, passord: +++"
+#: ../../mod/network.php:79
+msgid "No such group"
+msgstr "Gruppen finnes ikke"
+
+#: ../../mod/network.php:118
+msgid "Search Results For:"
+msgstr "Søkeresultat for:"
+
+#: ../../mod/network.php:172
+msgid "Collection is empty"
+msgstr "Samlingen er tom"
+
+#: ../../mod/network.php:180
+msgid "Collection: "
+msgstr "Samling:"
-#: ../../mod/removeme.php:49
+#: ../../mod/network.php:193
+msgid "Connection: "
+msgstr "Forbindelse:"
+
+#: ../../mod/network.php:196
+msgid "Invalid connection."
+msgstr "Ugyldig forbindelse."
+
+#: ../../mod/removeme.php:29
+msgid ""
+"Channel removals are not allowed within 48 hours of changing the account "
+"password."
+msgstr "Fjerning av kanaler er ikke tillatt innen 48 timer etter endring av kontopassordet."
+
+#: ../../mod/removeme.php:57
msgid "Remove This Channel"
msgstr "Fjern denne kanalen"
-#: ../../mod/removeme.php:50
+#: ../../mod/removeme.php:58
msgid ""
"This will completely remove this channel from the network. Once this has "
"been done it is not recoverable."
msgstr "Dette vil fullstendig fjerne kanalen fra nettverket. NÃ¥r det er gjort kan det ikke angres."
-#: ../../mod/removeme.php:51
+#: ../../mod/removeme.php:59 ../../mod/removeaccount.php:59
msgid "Please enter your password for verification:"
msgstr "Vennligst skriv ditt passord for å få bekreftelse:"
-#: ../../mod/removeme.php:52
+#: ../../mod/removeme.php:60
msgid "Remove this channel and all its clones from the network"
msgstr "Fjern denne kanalen og alle dens kloner fra nettverket"
-#: ../../mod/removeme.php:52
+#: ../../mod/removeme.php:60
msgid ""
"By default only the instance of the channel located on this hub will be "
"removed from the network"
msgstr "Som standard vil bare forekomsten av denne kanalen lokalisert på denne hubben bli fjernet fra nettverket"
-#: ../../mod/removeme.php:53
+#: ../../mod/removeme.php:61
msgid "Remove Channel"
msgstr "Fjern kanal"
@@ -4644,98 +5074,174 @@ msgstr "Feilmeldingen var:"
msgid "Authentication failed."
msgstr "Autentisering mislyktes."
-#: ../../mod/rmagic.php:78
+#: ../../mod/rmagic.php:82
msgid "Remote Authentication"
msgstr "Fjernautentisering"
-#: ../../mod/rmagic.php:79
+#: ../../mod/rmagic.php:83
msgid "Enter your channel address (e.g. channel@example.com)"
msgstr "Skriv din kanaladresse (for eksempel channel@exampel.com)"
-#: ../../mod/rmagic.php:80
+#: ../../mod/rmagic.php:84
msgid "Authenticate"
msgstr "Autentiser"
-#: ../../mod/connect.php:55 ../../mod/connect.php:103
-msgid "Continue"
-msgstr "Fortsett"
+#: ../../mod/filer.php:49
+msgid "- select -"
+msgstr "- velg -"
-#: ../../mod/connect.php:84
-msgid "Premium Channel Setup"
-msgstr "Premiumkanal-oppsett"
+#: ../../mod/photos.php:77
+msgid "Page owner information could not be retrieved."
+msgstr "Informasjon om sideeier kunne ikke hentes."
-#: ../../mod/connect.php:86
-msgid "Enable premium channel connection restrictions"
-msgstr "Slå på restriksjoner for forbindelse med premiumkanal"
+#: ../../mod/photos.php:97
+msgid "Album not found."
+msgstr "Albumet ble ikke funnet."
-#: ../../mod/connect.php:87
-msgid ""
-"Please enter your restrictions or conditions, such as paypal receipt, usage "
-"guidelines, etc."
-msgstr "Vennligst skriv dine restriksjoner og betingelser, slik som PayPal-kvittering, retningslinjer for bruk, og så videre."
+#: ../../mod/photos.php:119 ../../mod/photos.php:672
+msgid "Delete Album"
+msgstr "Slett album"
-#: ../../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 "Denne kanalen kan kreve ytterligere steg og bekreftelse av følgende betingelser før tilkobling:"
+#: ../../mod/photos.php:159 ../../mod/photos.php:957
+msgid "Delete Photo"
+msgstr "Slett bilde"
-#: ../../mod/connect.php:90
-msgid ""
-"Potential connections will then see the following text before proceeding:"
-msgstr "Potensielle forbindelser vil da se følgende tekst før de går videre:"
+#: ../../mod/photos.php:469
+msgid "No photos selected"
+msgstr "Ingen bilder valgt"
-#: ../../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 "Ved å fortsette bekrefter jeg at jeg har oppfylt alle instruksjoner gitt på denne siden."
+#: ../../mod/photos.php:513
+msgid "Access to this item is restricted."
+msgstr "Tilgang til dette elementet er begrenset."
-#: ../../mod/connect.php:100
-msgid "(No specific instructions have been provided by the channel owner.)"
-msgstr "(Ingen spesifikke instruksjoner er gitt av kanaleieren.)"
+#: ../../mod/photos.php:552
+#, php-format
+msgid "%1$.2f MB of %2$.2f MB photo storage used."
+msgstr "%1$.2f MB av %2$.2f MB lagringsplass til bilder er brukt."
-#: ../../mod/connect.php:108
-msgid "Restricted or Premium Channel"
-msgstr "Begrenset kanal eller premiumkanal"
+#: ../../mod/photos.php:555
+#, php-format
+msgid "%1$.2f MB photo storage used."
+msgstr "%1$.2f MB lagringsplass til bilder er brukt."
-#: ../../mod/network.php:79
-msgid "No such group"
-msgstr "Gruppen finnes ikke"
+#: ../../mod/photos.php:579
+msgid "Upload Photos"
+msgstr "Last opp bilder"
-#: ../../mod/network.php:118
-msgid "Search Results For:"
-msgstr "Søkeresultat for:"
+#: ../../mod/photos.php:583 ../../mod/photos.php:665 ../../mod/photos.php:943
+msgid "Enter a new album name"
+msgstr "Skriv et nytt albumnavn"
-#: ../../mod/network.php:172
-msgid "Collection is empty"
-msgstr "Samlingen er tom"
+#: ../../mod/photos.php:584 ../../mod/photos.php:666 ../../mod/photos.php:944
+msgid "or select an existing one (doubleclick)"
+msgstr "eller velg et eksisterende album (dobbeltklikk)"
-#: ../../mod/network.php:180
-msgid "Collection: "
-msgstr "Samling:"
+#: ../../mod/photos.php:585
+msgid "Do not show a status post for this upload"
+msgstr "Ikke lag et statusinnlegg for denne oppdateringen"
-#: ../../mod/network.php:193
-msgid "Connection: "
-msgstr "Forbindelse:"
+#: ../../mod/photos.php:613
+msgid "Album name could not be decoded"
+msgstr "Albumnavnet kunne ikke dekodes"
-#: ../../mod/network.php:196
-msgid "Invalid connection."
-msgstr "Ugyldig forbindelse."
+#: ../../mod/photos.php:654 ../../mod/photos.php:1166
+#: ../../mod/photos.php:1182
+msgid "Contact Photos"
+msgstr "Kontaktbilder"
+
+#: ../../mod/photos.php:678
+msgid "Show Newest First"
+msgstr "Vis nyeste først"
+
+#: ../../mod/photos.php:680
+msgid "Show Oldest First"
+msgstr "Vis eldste først"
+
+#: ../../mod/photos.php:707 ../../mod/photos.php:1214
+msgid "View Photo"
+msgstr "Vis foto"
+
+#: ../../mod/photos.php:736
+msgid "Edit Album"
+msgstr "Endre album"
+
+#: ../../mod/photos.php:781
+msgid "Permission denied. Access to this item may be restricted."
+msgstr "Tillatelse avvist. Tilgang til dette elementet kan være begrenset."
+
+#: ../../mod/photos.php:783
+msgid "Photo not available"
+msgstr "Bilde er utilgjengelig"
+
+#: ../../mod/photos.php:841
+msgid "Use as profile photo"
+msgstr "Bruk som profilbilde"
+
+#: ../../mod/photos.php:848
+msgid "Private Photo"
+msgstr "Privat bilde"
+
+#: ../../mod/photos.php:863
+msgid "View Full Size"
+msgstr "Vis i full størrelse"
+
+#: ../../mod/photos.php:905 ../../mod/delegate.php:130 ../../mod/tagrm.php:133
+msgid "Remove"
+msgstr "Fjern"
+
+#: ../../mod/photos.php:937
+msgid "Edit photo"
+msgstr "Endre bilde"
+
+#: ../../mod/photos.php:939
+msgid "Rotate CW (right)"
+msgstr "Roter med klokka (mot høyre)"
+
+#: ../../mod/photos.php:940
+msgid "Rotate CCW (left)"
+msgstr "Roter mot klokka (venstre)"
+
+#: ../../mod/photos.php:947
+msgid "Caption"
+msgstr "Overskrift"
+
+#: ../../mod/photos.php:949
+msgid "Add a Tag"
+msgstr "Legg til merkelapp"
+
+#: ../../mod/photos.php:953
+msgid "Example: @bob, @Barbara_Jensen, @jim@example.com"
+msgstr "Eksempel: @bob, @Barbara_Jensen, @jim@example.com"
+
+#: ../../mod/photos.php:955
+msgid "Flag as adult in album view"
+msgstr "Flag som voksent i albumvisning"
+
+#: ../../mod/photos.php:1132
+msgid "In This Photo:"
+msgstr "I dette bildet:"
+
+#: ../../mod/photos.php:1220
+msgid "View Album"
+msgstr "Vis album"
+
+#: ../../mod/photos.php:1243
+msgid "Recent Photos"
+msgstr "Nye bilder"
#: ../../mod/connections.php:37 ../../mod/connedit.php:64
msgid "Could not access contact record."
msgstr "Fikk ikke tilgang til kontaktinformasjonen."
-#: ../../mod/connections.php:51 ../../mod/connedit.php:78
+#: ../../mod/connections.php:51 ../../mod/connedit.php:86
msgid "Could not locate selected profile."
msgstr "Fant ikke valgt profil."
-#: ../../mod/connections.php:94 ../../mod/connedit.php:131
+#: ../../mod/connections.php:94 ../../mod/connedit.php:140
msgid "Connection updated."
msgstr "Forbindelsen er oppdatert."
-#: ../../mod/connections.php:96 ../../mod/connedit.php:133
+#: ../../mod/connections.php:96 ../../mod/connedit.php:142
msgid "Failed to update connection record."
msgstr "Mislyktes med å oppdatere forbindelsesinformasjonen."
@@ -4759,10 +5265,6 @@ msgstr "Arkivert"
msgid "All"
msgstr "Alle"
-#: ../../mod/connections.php:240 ../../mod/connections.php:320
-msgid "Unconnected"
-msgstr "Ikke tilkoblet"
-
#: ../../mod/connections.php:270
msgid "Suggest new connections"
msgstr "Foreslå nye forbindelser"
@@ -4803,263 +5305,285 @@ msgstr "Vis bare arkiverte forbindelser"
msgid "Only show hidden connections"
msgstr "Vis bare skjulte forbindelser"
-#: ../../mod/connections.php:323
-msgid "Only show one-way connections"
-msgstr "Vis bare en-veis-forbindelser"
-
-#: ../../mod/connections.php:368
+#: ../../mod/connections.php:371
#, php-format
msgid "%1$s [%2$s]"
msgstr "%1$s [%2$s]"
-#: ../../mod/connections.php:369
-msgid "Edit contact"
-msgstr "Endre kontakt"
+#: ../../mod/connections.php:372
+msgid "Edit connection"
+msgstr "Endre forbindelse"
-#: ../../mod/connections.php:390
+#: ../../mod/connections.php:410
msgid "Search your connections"
msgstr "Søk blant dine forbindelser"
-#: ../../mod/connections.php:391
+#: ../../mod/connections.php:411
msgid "Finding: "
msgstr "Fant:"
+#: ../../mod/manage.php:136
+#, php-format
+msgid "You have created %1$.0f of %2$.0f allowed channels."
+msgstr "Du har laget %1$.0f av %2$.0f tillatte kanaler."
+
+#: ../../mod/manage.php:144
+msgid "Create a new channel"
+msgstr "Lag en ny kanal"
+
+#: ../../mod/manage.php:149
+msgid "Current Channel"
+msgstr "Gjeldende kanal"
+
+#: ../../mod/manage.php:151
+msgid "Attach to one of your channels by selecting it."
+msgstr "Bytt til en av dine kanaler ved å velge den."
+
+#: ../../mod/manage.php:152
+msgid "Default Channel"
+msgstr "Standardkanal"
+
+#: ../../mod/manage.php:153
+msgid "Make Default"
+msgstr "Gjør til standard"
+
#: ../../mod/rpost.php:97 ../../mod/editpost.php:42
msgid "Edit post"
msgstr "Endre innlegg"
-#: ../../mod/connedit.php:243
+#: ../../mod/connedit.php:189
+msgid "is now connected to"
+msgstr "er nå forbundet til"
+
+#: ../../mod/connedit.php:310
msgid "Could not access address book record."
msgstr "Fikk ikke tilgang til informasjonen i adresseboken."
-#: ../../mod/connedit.php:257
+#: ../../mod/connedit.php:324
msgid "Refresh failed - channel is currently unavailable."
msgstr "Oppfrisking mislyktes - kanalen er for øyeblikket utilgjengelig."
-#: ../../mod/connedit.php:264
+#: ../../mod/connedit.php:331
msgid "Channel has been unblocked"
msgstr "Kanalen er ikke blokkert lenger"
-#: ../../mod/connedit.php:265
+#: ../../mod/connedit.php:332
msgid "Channel has been blocked"
msgstr "Kanalen har blitt blokkert"
-#: ../../mod/connedit.php:269 ../../mod/connedit.php:281
-#: ../../mod/connedit.php:293 ../../mod/connedit.php:305
-#: ../../mod/connedit.php:320
+#: ../../mod/connedit.php:336 ../../mod/connedit.php:348
+#: ../../mod/connedit.php:360 ../../mod/connedit.php:372
+#: ../../mod/connedit.php:388
msgid "Unable to set address book parameters."
msgstr "Ikke i stand til å angi parametre for adresseboken."
-#: ../../mod/connedit.php:276
+#: ../../mod/connedit.php:343
msgid "Channel has been unignored"
msgstr "Kanalen er ikke lenger ignorert"
-#: ../../mod/connedit.php:277
+#: ../../mod/connedit.php:344
msgid "Channel has been ignored"
msgstr "Kanalen blir ignorert"
-#: ../../mod/connedit.php:288
+#: ../../mod/connedit.php:355
msgid "Channel has been unarchived"
msgstr "Kanalen er ikke lenger arkivert"
-#: ../../mod/connedit.php:289
+#: ../../mod/connedit.php:356
msgid "Channel has been archived"
msgstr "Kanalen er arkivert"
-#: ../../mod/connedit.php:300
+#: ../../mod/connedit.php:367
msgid "Channel has been unhidden"
msgstr "Kanalen er ikke lenger skjult"
-#: ../../mod/connedit.php:301
+#: ../../mod/connedit.php:368
msgid "Channel has been hidden"
msgstr "Kanalen er blitt skjult"
-#: ../../mod/connedit.php:315
+#: ../../mod/connedit.php:383
msgid "Channel has been approved"
msgstr "Kanalen har blitt godkjent"
-#: ../../mod/connedit.php:316
+#: ../../mod/connedit.php:384
msgid "Channel has been unapproved"
msgstr "Kanalen er ikke lenger godkjent"
-#: ../../mod/connedit.php:334
+#: ../../mod/connedit.php:412
msgid "Connection has been removed."
msgstr "Forbindelsen har blitt fjernet."
-#: ../../mod/connedit.php:354
+#: ../../mod/connedit.php:432
#, php-format
msgid "View %s's profile"
msgstr "Vis %s sin profil"
-#: ../../mod/connedit.php:358
+#: ../../mod/connedit.php:436
msgid "Refresh Permissions"
msgstr "Oppfrisk tillatelser"
-#: ../../mod/connedit.php:361
+#: ../../mod/connedit.php:439
msgid "Fetch updated permissions"
msgstr "Hent oppdaterte tillatelser"
-#: ../../mod/connedit.php:365
+#: ../../mod/connedit.php:443
msgid "Recent Activity"
msgstr "Nylig aktivitet"
-#: ../../mod/connedit.php:368
+#: ../../mod/connedit.php:446
msgid "View recent posts and comments"
msgstr "Vis nylige innlegg og kommentarer"
-#: ../../mod/connedit.php:372 ../../mod/connedit.php:515
-#: ../../mod/admin.php:760
+#: ../../mod/connedit.php:450 ../../mod/connedit.php:594
+#: ../../mod/admin.php:732
msgid "Unblock"
msgstr "Ikke blokker lenger"
-#: ../../mod/connedit.php:372 ../../mod/connedit.php:515
-#: ../../mod/admin.php:759
+#: ../../mod/connedit.php:450 ../../mod/connedit.php:594
+#: ../../mod/admin.php:731
msgid "Block"
msgstr "Blokker"
-#: ../../mod/connedit.php:375
+#: ../../mod/connedit.php:453
msgid "Block or Unblock this connection"
msgstr "Blokker eller fjern blokkering av denne forbindelsen "
-#: ../../mod/connedit.php:379 ../../mod/connedit.php:516
+#: ../../mod/connedit.php:457 ../../mod/connedit.php:595
msgid "Unignore"
msgstr "Ikke ignorer lenger"
-#: ../../mod/connedit.php:379 ../../mod/connedit.php:516
+#: ../../mod/connedit.php:457 ../../mod/connedit.php:595
#: ../../mod/notifications.php:51
msgid "Ignore"
msgstr "Ignorer"
-#: ../../mod/connedit.php:382
+#: ../../mod/connedit.php:460
msgid "Ignore or Unignore this connection"
msgstr "Ignorer eller fjern ignorering av denne forbindelsen"
-#: ../../mod/connedit.php:385
+#: ../../mod/connedit.php:463
msgid "Unarchive"
msgstr "Ikke arkiver lenger"
-#: ../../mod/connedit.php:385
+#: ../../mod/connedit.php:463
msgid "Archive"
msgstr "Arkiver"
-#: ../../mod/connedit.php:388
+#: ../../mod/connedit.php:466
msgid "Archive or Unarchive this connection"
msgstr "Arkiver eller fjern arkivering av denne forbindelsen"
-#: ../../mod/connedit.php:391
+#: ../../mod/connedit.php:469
msgid "Unhide"
msgstr "Ikke skjul lenger"
-#: ../../mod/connedit.php:391
+#: ../../mod/connedit.php:469
msgid "Hide"
msgstr "Skjul"
-#: ../../mod/connedit.php:394
+#: ../../mod/connedit.php:472
msgid "Hide or Unhide this connection"
msgstr "Skjul eller fjern skjuling av denne forbindelsen"
-#: ../../mod/connedit.php:401
+#: ../../mod/connedit.php:479
msgid "Delete this connection"
msgstr "Slett denne forbindelsen"
-#: ../../mod/connedit.php:444 ../../mod/connedit.php:473
+#: ../../mod/connedit.php:522 ../../mod/connedit.php:552
msgid "Approve this connection"
msgstr "Godta denne forbindelsen"
-#: ../../mod/connedit.php:444
+#: ../../mod/connedit.php:522
msgid "Accept connection to allow communication"
msgstr "Godta denne forbindelsen for å tillate kommunikasjon"
-#: ../../mod/connedit.php:460
-msgid "Automatic Permissions Settings"
-msgstr "Automatiske innstillinger for tillatelser"
-
-#: ../../mod/connedit.php:460
+#: ../../mod/connedit.php:538
#, php-format
msgid "Connections: settings for %s"
msgstr "Forbindelser: innstillinger for %s"
-#: ../../mod/connedit.php:464
-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 "Når du mottar en kanal-introduksjon, så vil alle tillatelser gitt her gjelde for den nye forbindelsen automatisk og introduksjonen godkjennes. Forlat denne siden hvis du ikke ønsker å bruke denne egenskapen."
+#: ../../mod/connedit.php:539
+msgid "Apply these permissions automatically"
+msgstr "Bruk disse tillatelsene automatisk"
-#: ../../mod/connedit.php:466
+#: ../../mod/connedit.php:543
+msgid "Apply the permissions indicated on this page to all new connections."
+msgstr "Bruk tillatelsene angitt på denne siden på alle nye forbindelser."
+
+#: ../../mod/connedit.php:545
msgid "Slide to adjust your degree of friendship"
msgstr "Flytt for å justere din grad av vennskap"
-#: ../../mod/connedit.php:472
+#: ../../mod/connedit.php:551
msgid "inherited"
msgstr "arvet"
-#: ../../mod/connedit.php:474
+#: ../../mod/connedit.php:553
msgid "Connection has no individual permissions!"
msgstr "Forbindelsen har ingen individuelle tillatelser!"
-#: ../../mod/connedit.php:475
+#: ../../mod/connedit.php:554
msgid ""
"This may be appropriate based on your <a href=\"settings\">privacy "
"settings</a>, though you may wish to review the \"Advanced Permissions\"."
msgstr "Dette kan være riktig basert på dine <a href=\"settings\">personverninnstillinger</a>, men kanskje du bør se over \"Avanserte tillatelser\"."
-#: ../../mod/connedit.php:477
+#: ../../mod/connedit.php:556
msgid "Profile Visibility"
msgstr "Profilens synlighet"
-#: ../../mod/connedit.php:478
+#: ../../mod/connedit.php:557
#, php-format
msgid ""
"Please choose the profile you would like to display to %s when viewing your "
"profile securely."
msgstr "Vennligst velg profilen du ønsker å vise %s når profilen din ses på en sikret måte. "
-#: ../../mod/connedit.php:479
+#: ../../mod/connedit.php:558
msgid "Contact Information / Notes"
msgstr "Kontaktinformasjon / Merknader"
-#: ../../mod/connedit.php:480
+#: ../../mod/connedit.php:559
msgid "Edit contact notes"
msgstr "Endre kontaktmerknader"
-#: ../../mod/connedit.php:482
+#: ../../mod/connedit.php:561
msgid "Their Settings"
msgstr "Deres innstillinger"
-#: ../../mod/connedit.php:483
+#: ../../mod/connedit.php:562
msgid "My Settings"
msgstr "Mine innstillinger"
-#: ../../mod/connedit.php:485
+#: ../../mod/connedit.php:564
msgid "Clear/Disable Automatic Permissions"
msgstr "Tøm/Skru av Automatiske tillatelser"
-#: ../../mod/connedit.php:486
+#: ../../mod/connedit.php:565
msgid "Forum Members"
msgstr "Forummedlemmer"
-#: ../../mod/connedit.php:487
+#: ../../mod/connedit.php:566
msgid "Soapbox"
msgstr "Talerstol"
-#: ../../mod/connedit.php:488
+#: ../../mod/connedit.php:567
msgid "Full Sharing (typical social network permissions)"
msgstr "Full deling (typiske tillatelser i sosiale nettverk)"
-#: ../../mod/connedit.php:489
+#: ../../mod/connedit.php:568
msgid "Cautious Sharing "
msgstr "Forsiktig deling"
-#: ../../mod/connedit.php:490
+#: ../../mod/connedit.php:569
msgid "Follow Only"
msgstr "Bare følg"
-#: ../../mod/connedit.php:491
+#: ../../mod/connedit.php:570
msgid "Individual Permissions"
msgstr "Individuelle tillatelser"
-#: ../../mod/connedit.php:492
+#: ../../mod/connedit.php:571
msgid ""
"Some permissions may be inherited from your channel <a "
"href=\"settings\">privacy settings</a>, which have higher priority than "
@@ -5067,894 +5591,1040 @@ msgid ""
"have no effect."
msgstr "Noen tillatelser kan være arvet fra din kanals <a ref=\"settings\">personverninnstillinger</a>, som har høyere prioritet enn individuelle innstillinger. Å endre arvede innstillinger på denne siden vil ikke ha noen effekt."
-#: ../../mod/connedit.php:493
+#: ../../mod/connedit.php:572
msgid "Advanced Permissions"
msgstr "Avanserte tillatelser"
-#: ../../mod/connedit.php:494
+#: ../../mod/connedit.php:573
msgid "Simple Permissions (select one and submit)"
msgstr "Enkle tillatelser (velg en og lagre)"
-#: ../../mod/connedit.php:498
+#: ../../mod/connedit.php:577
#, php-format
msgid "Visit %s's profile - %s"
msgstr "Besøk %s sin profil - %s"
-#: ../../mod/connedit.php:499
+#: ../../mod/connedit.php:578
msgid "Block/Unblock contact"
msgstr "Blokker/Ikke blokker kontakt"
-#: ../../mod/connedit.php:500
+#: ../../mod/connedit.php:579
msgid "Ignore contact"
msgstr "Ignorer kontakt"
-#: ../../mod/connedit.php:501
+#: ../../mod/connedit.php:580
msgid "Repair URL settings"
msgstr "Reparer URL-innstillinger"
-#: ../../mod/connedit.php:502
+#: ../../mod/connedit.php:581
msgid "View conversations"
msgstr "Vis samtaler"
-#: ../../mod/connedit.php:504
+#: ../../mod/connedit.php:583
msgid "Delete contact"
msgstr "Slett kontakt"
-#: ../../mod/connedit.php:507
+#: ../../mod/connedit.php:586
msgid "Last update:"
msgstr "Siste oppdatering:"
-#: ../../mod/connedit.php:509
+#: ../../mod/connedit.php:588
msgid "Update public posts"
msgstr "Oppdater offentlige innlegg"
-#: ../../mod/connedit.php:511
+#: ../../mod/connedit.php:590
msgid "Update now"
msgstr "Oppdater nå"
-#: ../../mod/connedit.php:517
+#: ../../mod/connedit.php:596
msgid "Currently blocked"
msgstr "For øyeblikket blokkert"
-#: ../../mod/connedit.php:518
+#: ../../mod/connedit.php:597
msgid "Currently ignored"
msgstr "For øyeblikket ignorert"
-#: ../../mod/connedit.php:519
+#: ../../mod/connedit.php:598
msgid "Currently archived"
msgstr "For øyeblikket arkivert"
-#: ../../mod/connedit.php:520
+#: ../../mod/connedit.php:599
msgid "Currently pending"
msgstr "For øyeblikket ventende"
-#: ../../mod/connedit.php:521
+#: ../../mod/connedit.php:600
msgid "Hide this contact from others"
msgstr "Skjul denne kontakten for andre"
-#: ../../mod/connedit.php:521
+#: ../../mod/connedit.php:600
msgid ""
"Replies/likes to your public posts <strong>may</strong> still be visible"
msgstr "Svar/likes på dine offentlige innlegg <strong>kan</strong> fortsatt være synlige"
-#: ../../mod/delegate.php:95
-msgid "No potential page delegates located."
-msgstr "Ingen potensielle sidedelegater er funnet."
+#: ../../mod/openid.php:26
+msgid "OpenID protocol error. No ID returned."
+msgstr "OpenID protokollfeil. Ingen ID ble returnert."
-#: ../../mod/delegate.php:121
-msgid "Delegate Page Management"
-msgstr "Deleger sidehåndtering"
+#: ../../mod/thing.php:96
+msgid "Thing updated"
+msgstr "Tingen er oppdatert"
-#: ../../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 "Delegater kan håndtere alle sider ved denne kontoen/siden unntatt grunnleggende kontoinformasjon. Vennligst ikke deleger din personlige konto til noen du ikke stoler fullstendig på."
+#: ../../mod/thing.php:156
+msgid "Object store: failed"
+msgstr "Objektlagring: mislyktes"
-#: ../../mod/delegate.php:124
-msgid "Existing Page Managers"
-msgstr "Eksisterende sidehåndterere"
+#: ../../mod/thing.php:160
+msgid "Thing added"
+msgstr "Ting lagt til"
-#: ../../mod/delegate.php:126
-msgid "Existing Page Delegates"
-msgstr "Eksisterende sidedelegater"
+#: ../../mod/thing.php:180
+#, php-format
+msgid "OBJ: %1$s %2$s %3$s"
+msgstr "OBJ: %1$s %2$s %3$s"
-#: ../../mod/delegate.php:128
-msgid "Potential Delegates"
-msgstr "Potensielle sidedelegater"
+#: ../../mod/thing.php:232
+msgid "Show Thing"
+msgstr "Vis ting"
-#: ../../mod/delegate.php:130 ../../mod/tagrm.php:93 ../../mod/photos.php:906
-msgid "Remove"
-msgstr "Fjern"
+#: ../../mod/thing.php:239
+msgid "item not found."
+msgstr "element ble ikke funnet."
-#: ../../mod/delegate.php:131
-msgid "Add"
-msgstr "Legg til"
+#: ../../mod/thing.php:270
+msgid "Edit Thing"
+msgstr "Endre ting"
-#: ../../mod/delegate.php:132
-msgid "No entries."
-msgstr "Ingen oppføringer."
+#: ../../mod/thing.php:272 ../../mod/thing.php:319
+msgid "Select a profile"
+msgstr "Velg en profil"
-#: ../../mod/search.php:13 ../../mod/directory.php:15
-#: ../../mod/dirprofile.php:9 ../../mod/display.php:9
-#: ../../mod/viewconnections.php:17 ../../mod/photos.php:443
-msgid "Public access denied."
-msgstr "Offentlig tilgang avvist."
+#: ../../mod/thing.php:276 ../../mod/thing.php:322
+msgid "Post an activity"
+msgstr "Legg inn en aktivitet"
-#: ../../mod/directory.php:146 ../../mod/dirprofile.php:95
-msgid "Gender: "
-msgstr "Kjønn:"
+#: ../../mod/thing.php:276 ../../mod/thing.php:322
+msgid "Only sends to viewers of the applicable profile"
+msgstr "Sender bare til seere av den aktuelle profilen"
-#: ../../mod/directory.php:207
-msgid "Finding:"
-msgstr "Finner:"
+#: ../../mod/thing.php:278 ../../mod/thing.php:324
+msgid "Name of thing e.g. something"
+msgstr "Navn på ting for eksempel noe"
-#: ../../mod/directory.php:215
-msgid "next page"
-msgstr "neste side"
+#: ../../mod/thing.php:280 ../../mod/thing.php:325
+msgid "URL of thing (optional)"
+msgstr "URL til ting (valgfritt)"
-#: ../../mod/directory.php:215
-msgid "previous page"
-msgstr "forrige side"
+#: ../../mod/thing.php:282 ../../mod/thing.php:326
+msgid "URL for photo of thing (optional)"
+msgstr "URL til bilde av ting (valgfritt)"
-#: ../../mod/directory.php:222
-msgid "No entries (some entries may be hidden)."
-msgstr "Ingen oppføringer (noen oppføringer kan være skjult)."
+#: ../../mod/thing.php:317
+msgid "Add Thing to your Profile"
+msgstr "Legg til ting i din profil"
-#: ../../mod/dirprofile.php:108
-msgid "Status: "
-msgstr "Status:"
+#: ../../mod/lostpass.php:15
+msgid "No valid account found."
+msgstr "Ingen gyldig konto funnet."
-#: ../../mod/dirprofile.php:109
-msgid "Sexual Preference: "
-msgstr "Seksuelle preferanser:"
+#: ../../mod/lostpass.php:29
+msgid "Password reset request issued. Check your email."
+msgstr "Forespørsel om å tilbakestille passord er mottatt. Sjekk e-posten din."
-#: ../../mod/dirprofile.php:111
-msgid "Homepage: "
-msgstr "Hjemmeside:"
+#: ../../mod/lostpass.php:35 ../../mod/lostpass.php:102
+#, php-format
+msgid "Site Member (%s)"
+msgstr "Nettstedsmedlem (%s)"
-#: ../../mod/dirprofile.php:112
-msgid "Hometown: "
-msgstr "Hjemby:"
+#: ../../mod/lostpass.php:40
+#, php-format
+msgid "Password reset requested at %s"
+msgstr "Forespurt om å tilbakestille passord hos %s"
-#: ../../mod/dirprofile.php:114
-msgid "About: "
-msgstr "Om:"
+#: ../../mod/lostpass.php:63
+msgid ""
+"Request could not be verified. (You may have previously submitted it.) "
+"Password reset failed."
+msgstr "Forespørsel kunne ikke bekreftes. (Du kan ha sendt den inn tidligere.) Tilbakestilling av passord mislyktes."
-#: ../../mod/dirprofile.php:162
-msgid "Keywords: "
-msgstr "Nøkkelord:"
+#: ../../mod/lostpass.php:85 ../../boot.php:1494
+msgid "Password Reset"
+msgstr "Tilbakestill passord"
+
+#: ../../mod/lostpass.php:86
+msgid "Your password has been reset as requested."
+msgstr "Ditt passord har blitt tilbakestilt som forespurt."
+
+#: ../../mod/lostpass.php:87
+msgid "Your new password is"
+msgstr "Ditt nye passord er"
+
+#: ../../mod/lostpass.php:88
+msgid "Save or copy your new password - and then"
+msgstr "Lagre eller kopier ditt nye passord, og deretter kan du"
+
+#: ../../mod/lostpass.php:89
+msgid "click here to login"
+msgstr "klikke her for å logge inn"
+
+#: ../../mod/lostpass.php:90
+msgid ""
+"Your password may be changed from the <em>Settings</em> page after "
+"successful login."
+msgstr "Ditt passord kan endres på siden <em>Innstillinger</em> etter vellykket innlogging."
+
+#: ../../mod/lostpass.php:107
+#, php-format
+msgid "Your password has changed at %s"
+msgstr "Ditt passord er endret hos %s"
+
+#: ../../mod/lostpass.php:122
+msgid "Forgot your Password?"
+msgstr "Glemt passord ditt?"
+
+#: ../../mod/lostpass.php:123
+msgid ""
+"Enter your email address and submit to have your password reset. Then check "
+"your email for further instructions."
+msgstr "Skriv e-postadressen din og send inn for å tilbakestille passordet ditt. Sjekk deretter din e-post for videre instruksjoner."
+
+#: ../../mod/lostpass.php:124
+msgid "Email Address"
+msgstr "E-postadresse"
+
+#: ../../mod/lostpass.php:125
+msgid "Reset"
+msgstr "Tilbakestill"
+
+#: ../../mod/bookmarks.php:38
+msgid "Bookmark added"
+msgstr "Bokmerke lagt til"
+
+#: ../../mod/bookmarks.php:60
+msgid "My Bookmarks"
+msgstr "Mine bokmerker"
+
+#: ../../mod/bookmarks.php:71
+msgid "My Connections Bookmarks"
+msgstr "Mine forbindelsers bokmerker"
#: ../../mod/dirsearch.php:21
msgid "This site is not a directory server"
msgstr "Dette nettstedet er ikke en katalogtjener"
-#: ../../mod/setup.php:162
-msgid "Red Matrix Server - Setup"
-msgstr "Red Matrix tjener - oppsett"
+#: ../../mod/cloud.php:130
+msgid "RedMatrix - Guests: Username: {your email address}, Password: +++"
+msgstr "RedMatrix - gjester: brukernavn: {din e-postadresse}, passord: +++"
-#: ../../mod/setup.php:168
-msgid "Could not connect to database."
-msgstr "Fikk ikke kontakt med databasen."
+#: ../../mod/ping.php:257
+msgid "sent you a private message"
+msgstr "sendte deg en privat melding"
-#: ../../mod/setup.php:172
-msgid ""
-"Could not connect to specified site URL. Possible SSL certificate or DNS "
-"issue."
-msgstr "Fikk ikke kontakt med det angitte nettstedets URL. Problemet kan muligens skyldes SSL-sertifikatet eller DNS."
+#: ../../mod/ping.php:308
+msgid "added your channel"
+msgstr "la til din kanal"
-#: ../../mod/setup.php:179
-msgid "Could not create table."
-msgstr "Kunne ikke lage tabellen."
+#: ../../mod/ping.php:349
+msgid "posted an event"
+msgstr "la ut en hendelse"
-#: ../../mod/setup.php:185
-msgid "Your site database has been installed."
-msgstr "Databasen til ditt nettsted har blitt installert."
+#: ../../mod/editblock.php:79 ../../mod/editblock.php:95
+#: ../../mod/editlayout.php:78 ../../mod/editpost.php:20
+#: ../../mod/editwebpage.php:77
+msgid "Item not found"
+msgstr "Elementet ble ikke funnet."
-#: ../../mod/setup.php:190
-msgid ""
-"You may need to import the file \"install/database.sql\" manually using "
-"phpmyadmin or mysql."
-msgstr "Du må kanskje importere filen \"install/database.sql\" manuelt ved hjelp av phpmyadmin eller mysql."
+#: ../../mod/editblock.php:115
+msgid "Edit Block"
+msgstr "Endre byggekloss"
-#: ../../mod/setup.php:191 ../../mod/setup.php:260 ../../mod/setup.php:655
-msgid "Please see the file \"install/INSTALL.txt\"."
-msgstr "Vennligst les filen \"install/INSTALL.txt\"."
+#: ../../mod/editblock.php:125
+msgid "Delete block?"
+msgstr "Slett byggeklossen?"
-#: ../../mod/setup.php:257
-msgid "System check"
-msgstr "Systemsjekk"
+#: ../../mod/editblock.php:147 ../../mod/editlayout.php:143
+#: ../../mod/editpost.php:116 ../../mod/editwebpage.php:178
+msgid "Insert YouTube video"
+msgstr "Sett inn YouTube-video"
-#: ../../mod/setup.php:261 ../../mod/events.php:380
-msgid "Next"
-msgstr "Neste"
+#: ../../mod/editblock.php:148 ../../mod/editlayout.php:144
+#: ../../mod/editpost.php:117 ../../mod/editwebpage.php:179
+msgid "Insert Vorbis [.ogg] video"
+msgstr "Sett inn Vorbis [.ogg] video"
-#: ../../mod/setup.php:262
-msgid "Check again"
-msgstr "Sjekk igjen"
+#: ../../mod/editblock.php:149 ../../mod/editlayout.php:145
+#: ../../mod/editpost.php:118 ../../mod/editwebpage.php:180
+msgid "Insert Vorbis [.ogg] audio"
+msgstr "Legg i"
-#: ../../mod/setup.php:284
-msgid "Database connection"
-msgstr "Databaseforbindelse"
+#: ../../mod/editblock.php:183
+msgid "Delete Block"
+msgstr "Slett byggekloss"
-#: ../../mod/setup.php:285
-msgid ""
-"In order to install Red Matrix we need to know how to connect to your "
-"database."
-msgstr "For å installere Red Matrix må du oppgi hvordan din database kan kontaktes."
+#: ../../mod/pdledit.php:13
+msgid "Layout updated."
+msgstr "Layout er oppdatert."
-#: ../../mod/setup.php:286
-msgid ""
-"Please contact your hosting provider or site administrator if you have "
-"questions about these settings."
-msgstr "Vennligst kontakt din nettstedstilbyder eller nettstedsadministrator hvis du har spørsmål om disse innstillingene."
+#: ../../mod/pdledit.php:28 ../../mod/pdledit.php:53
+msgid "Edit System Page Description"
+msgstr "Endre beskrivelsen av systemsiden"
-#: ../../mod/setup.php:287
-msgid ""
-"The database you specify below should already exist. If it does not, please "
-"create it before continuing."
-msgstr "Databasen du oppgir nedenfor må finnes på forhånd. Hvis den ikke finnes, vennligst lag den før du fortsetter."
+#: ../../mod/pdledit.php:48
+msgid "Layout not found."
+msgstr "Layouten ble ikke funnet."
-#: ../../mod/setup.php:291
-msgid "Database Server Name"
-msgstr "Navn på databasetjener"
+#: ../../mod/pdledit.php:54
+msgid "Module Name:"
+msgstr "Modulnavn:"
-#: ../../mod/setup.php:291
-msgid "Default is localhost"
-msgstr "Standard er localhost"
+#: ../../mod/pdledit.php:55 ../../mod/layouts.php:107
+msgid "Layout Help"
+msgstr "Layout-hjelp"
-#: ../../mod/setup.php:292
-msgid "Database Port"
-msgstr "Databaseport"
+#: ../../mod/editlayout.php:108
+msgid "Edit Layout"
+msgstr "Endre layout"
-#: ../../mod/setup.php:292
-msgid "Communication port number - use 0 for default"
-msgstr "Kommunikasjonsportnummer - bruk 0 for standard"
+#: ../../mod/editlayout.php:117
+msgid "Delete layout?"
+msgstr "Slett layout?"
-#: ../../mod/setup.php:293
-msgid "Database Login Name"
-msgstr "Database innloggingsnavn"
+#: ../../mod/editlayout.php:178
+msgid "Delete Layout"
+msgstr "Slett layout"
-#: ../../mod/setup.php:294
-msgid "Database Login Password"
-msgstr "Database innloggingspassord"
+#: ../../mod/editpost.php:31
+msgid "Item is not editable"
+msgstr "Elementet kan ikke endres"
-#: ../../mod/setup.php:295
-msgid "Database Name"
-msgstr "Databasenavn"
+#: ../../mod/editpost.php:53
+msgid "Delete item?"
+msgstr "Slett element?"
-#: ../../mod/setup.php:297 ../../mod/setup.php:339
-msgid "Site administrator email address"
-msgstr "E-postadressen til administrator ved nettstedet"
+#: ../../mod/settings.php:73
+msgid "Name is required"
+msgstr "Navn er påkrevd"
-#: ../../mod/setup.php:297 ../../mod/setup.php:339
-msgid ""
-"Your account email address must match this in order to use the web admin "
-"panel."
-msgstr "Din konto sin e-postadresse må være lik denne for å kunne bruke web-administrasjonspanelet."
+#: ../../mod/settings.php:77
+msgid "Key and Secret are required"
+msgstr "Nøkkel og hemmelighet er påkrevd"
-#: ../../mod/setup.php:298 ../../mod/setup.php:341
-msgid "Website URL"
-msgstr "Nettstedets URL"
+#: ../../mod/settings.php:197
+msgid "Passwords do not match. Password unchanged."
+msgstr "Passordene stemmer ikke overens. Passord uforandret."
-#: ../../mod/setup.php:298 ../../mod/setup.php:341
-msgid "Please use SSL (https) URL if available."
-msgstr "Vennligst bruk SSL (https) URL hvis tilgjengelig."
+#: ../../mod/settings.php:201
+msgid "Empty passwords are not allowed. Password unchanged."
+msgstr "Tomme passord er ikke tillatt. Passord uforandret."
-#: ../../mod/setup.php:301 ../../mod/setup.php:344
-msgid "Please select a default timezone for your website"
-msgstr "Vennligst velg en standard tidssone for ditt nettsted"
+#: ../../mod/settings.php:215
+msgid "Password changed."
+msgstr "Passord endret."
-#: ../../mod/setup.php:328
-msgid "Site settings"
-msgstr "Nettstedets innstillinger"
+#: ../../mod/settings.php:217
+msgid "Password update failed. Please try again."
+msgstr "Passord oppdatering mislyktes. Vennligst prøv igjen."
-#: ../../mod/setup.php:387
-msgid "Could not find a command line version of PHP in the web server PATH."
-msgstr "Fant ikke en kommandolinjeversjon av PHP i webtjenerens sti (PATH)."
+#: ../../mod/settings.php:231
+msgid "Not valid email."
+msgstr "Ikke gyldig e-post."
-#: ../../mod/setup.php:388
-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 "Hvis du ikke har en kommandolinjeversjon av PHP installert på tjeneren, så vil du ikke kunne kjøre bakgrunnshenting via cron."
+#: ../../mod/settings.php:234
+msgid "Protected email address. Cannot change to that email."
+msgstr "Beskyttet e-postadresse. Kan ikke endre til den e-postadressen."
-#: ../../mod/setup.php:392
-msgid "PHP executable path"
-msgstr "PHP-kjørefilens sti"
+#: ../../mod/settings.php:243
+msgid "System failure storing new email. Please try again."
+msgstr "Systemfeil ved lagring av ny e-post. Vennligst prøv igjen."
-#: ../../mod/setup.php:392
-msgid ""
-"Enter full path to php executable. You can leave this blank to continue the "
-"installation."
-msgstr "Skriv full sti til kjørefilen for PHP. Du kan la denne stå blank for å fortsette installasjonen."
+#: ../../mod/settings.php:479
+msgid "Settings updated."
+msgstr "Innstillinger oppdatert."
-#: ../../mod/setup.php:397
-msgid "Command line PHP"
-msgstr "Kommandolinje PHP"
+#: ../../mod/settings.php:548 ../../mod/settings.php:574
+#: ../../mod/settings.php:610
+msgid "Add application"
+msgstr "Legg til program"
-#: ../../mod/setup.php:406
-msgid ""
-"The command line version of PHP on your system does not have "
-"\"register_argc_argv\" enabled."
-msgstr "Kommandolinjeversjonen av PHP på ditt system har ikke \"register_argc_argv\" påskrudd."
+#: ../../mod/settings.php:551
+msgid "Name of application"
+msgstr "Navn på program"
-#: ../../mod/setup.php:407
-msgid "This is required for message delivery to work."
-msgstr "Dette er påkrevd for at meldingslevering skal virke."
+#: ../../mod/settings.php:552 ../../mod/settings.php:578
+msgid "Consumer Key"
+msgstr "Consumer Key"
-#: ../../mod/setup.php:409
-msgid "PHP register_argc_argv"
-msgstr "PHP register_argc_argv"
+#: ../../mod/settings.php:552 ../../mod/settings.php:553
+msgid "Automatically generated - change if desired. Max length 20"
+msgstr "Automatisk laget - kan endres om du vil. Største lengde 20"
-#: ../../mod/setup.php:430
-msgid ""
-"Error: the \"openssl_pkey_new\" function on this system is not able to "
-"generate encryption keys"
-msgstr "Feil: \"openssl_pkey_new\"-funksjonen på dette systemet er ikke i stand til å lage krypteringsnøkler"
+#: ../../mod/settings.php:553 ../../mod/settings.php:579
+msgid "Consumer Secret"
+msgstr "Consumer Secret"
+
+#: ../../mod/settings.php:554 ../../mod/settings.php:580
+msgid "Redirect"
+msgstr "Omdirigering"
-#: ../../mod/setup.php:431
+#: ../../mod/settings.php:554
msgid ""
-"If running under Windows, please see "
-"\"http://www.php.net/manual/en/openssl.installation.php\"."
-msgstr "Ved kjøring på Windows, vennligst se \"http://www.php.net/manual/en/openssl.installation.php\"."
+"Redirect URI - leave blank unless your application specifically requires "
+"this"
+msgstr "Omdirigerings-URI - la stå tomt hvis ikke ditt program spesifikt krever dette"
-#: ../../mod/setup.php:433
-msgid "Generate encryption keys"
-msgstr "Lag krypteringsnøkler"
+#: ../../mod/settings.php:555 ../../mod/settings.php:581
+msgid "Icon url"
+msgstr "Ikon-URL"
-#: ../../mod/setup.php:440
-msgid "libCurl PHP module"
-msgstr "libCurl PHP-modul"
+#: ../../mod/settings.php:555
+msgid "Optional"
+msgstr "Valgfritt"
-#: ../../mod/setup.php:441
-msgid "GD graphics PHP module"
-msgstr "GD graphics PHP-modul"
+#: ../../mod/settings.php:566
+msgid "You can't edit this application."
+msgstr "Du kan ikke endre dette programmet."
-#: ../../mod/setup.php:442
-msgid "OpenSSL PHP module"
-msgstr "OpenSSL PHP-modul"
+#: ../../mod/settings.php:609
+msgid "Connected Apps"
+msgstr "Tilkoblede app-er"
-#: ../../mod/setup.php:443
-msgid "mysqli PHP module"
-msgstr "mysqli PHP-modul"
+#: ../../mod/settings.php:613
+msgid "Client key starts with"
+msgstr "Klientnøkkel starter med"
-#: ../../mod/setup.php:444
-msgid "mb_string PHP module"
-msgstr "mb_string PHP-modul"
+#: ../../mod/settings.php:614
+msgid "No name"
+msgstr "Ikke noe navn"
-#: ../../mod/setup.php:445
-msgid "mcrypt PHP module"
-msgstr "mcrypt PHP-modul"
+#: ../../mod/settings.php:615
+msgid "Remove authorization"
+msgstr "Fjern tillatelse"
-#: ../../mod/setup.php:450 ../../mod/setup.php:452
-msgid "Apache mod_rewrite module"
-msgstr "Apache mod_rewrite-modul"
+#: ../../mod/settings.php:626
+msgid "No feature settings configured"
+msgstr "Ingen funksjonsinnstillinger er konfigurert"
-#: ../../mod/setup.php:450
-msgid ""
-"Error: Apache webserver mod-rewrite module is required but not installed."
-msgstr "Feil: Apache web-tjenerens mod-rewrite-modul er påkrevd, men ikke installert."
+#: ../../mod/settings.php:634
+msgid "Feature Settings"
+msgstr "Funksjonsinnstillinger"
-#: ../../mod/setup.php:456 ../../mod/setup.php:459
-msgid "proc_open"
-msgstr "proc_open"
+#: ../../mod/settings.php:657
+msgid "Account Settings"
+msgstr "Kontoinnstillinger"
-#: ../../mod/setup.php:456
-msgid ""
-"Error: proc_open is required but is either not installed or has been "
-"disabled in php.ini"
-msgstr "Feil: proc_open er påkrevd, men er enten ikke installert eller har blitt avskrudd i php.ini"
+#: ../../mod/settings.php:658
+msgid "Password Settings"
+msgstr "Passordinnstillinger"
-#: ../../mod/setup.php:464
-msgid "Error: libCURL PHP module required but not installed."
-msgstr "Feil: libCURL PHP-modul er påkrevd, men er ikke installert."
+#: ../../mod/settings.php:659
+msgid "New Password:"
+msgstr "Nytt passord:"
-#: ../../mod/setup.php:468
-msgid ""
-"Error: GD graphics PHP module with JPEG support required but not installed."
-msgstr "Feil: GD graphics PHP-modul med JPEG-støtte er påkrevd, men er ikke installert."
+#: ../../mod/settings.php:660
+msgid "Confirm:"
+msgstr "Bekreft:"
-#: ../../mod/setup.php:472
-msgid "Error: openssl PHP module required but not installed."
-msgstr "Feil: openssl PHP-modul er påkrevd, men er ikke installert."
+#: ../../mod/settings.php:660
+msgid "Leave password fields blank unless changing"
+msgstr "La passordfeltene stå blanke om det ikke skal endres"
-#: ../../mod/setup.php:476
-msgid "Error: mysqli PHP module required but not installed."
-msgstr "Feil: mysqli PHP-modul er påkrevd, men er ikke installert."
+#: ../../mod/settings.php:662 ../../mod/settings.php:985
+msgid "Email Address:"
+msgstr "E-postadresse:"
-#: ../../mod/setup.php:480
-msgid "Error: mb_string PHP module required but not installed."
-msgstr "Feil: mb_string PHP-modul er påkrevd, men er ikke installert."
+#: ../../mod/settings.php:663 ../../mod/removeaccount.php:61
+msgid "Remove Account"
+msgstr "Slett konto"
-#: ../../mod/setup.php:484
-msgid "Error: mcrypt PHP module required but not installed."
-msgstr "Feil: mcrypt PHP-modul er påkrevd, men er ikke installert."
+#: ../../mod/settings.php:664
+msgid "Remove this account from this server including all its channels"
+msgstr "Slett denne kontoen inkludert alle dens kanaler fra denne tjeneren"
-#: ../../mod/setup.php:500
-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 "Web-installasjonen må kunne lage en fil kalt \".htconfig.php\" i toppkatalogen til web-tjeneren din, men dette får den ikke til."
+#: ../../mod/settings.php:665 ../../mod/settings.php:1067
+msgid "Warning: This action is permanent and cannot be reversed."
+msgstr "Advarsel: Denne handlingen er permanent og kan ikke angres."
-#: ../../mod/setup.php:501
-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 "Dette er oftest tillatelsesinnstilling, ettersom webtjeneren kanskje kan skrive til filer i din mappe - selv om du kan."
+#: ../../mod/settings.php:681
+msgid "Off"
+msgstr "Av"
-#: ../../mod/setup.php:502
-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 "På slutten av denne prosedyren vil vi gi deg en tekst til å lagre i en fil kalt .htconfig.php i toppkatalogen til din Red."
+#: ../../mod/settings.php:681
+msgid "On"
+msgstr "PÃ¥"
-#: ../../mod/setup.php:503
-msgid ""
-"You can alternatively skip this procedure and perform a manual installation."
-" Please see the file \"install/INSTALL.txt\" for instructions."
-msgstr "Alternativt, så kan du hoppe over denne prosedyren og gjennomføre en manuell installasjon. Vennligst se filen \"install/INSTALL.txt\" for instruksjoner."
+#: ../../mod/settings.php:688
+msgid "Additional Features"
+msgstr "Ekstra funksjoner"
-#: ../../mod/setup.php:506
-msgid ".htconfig.php is writable"
-msgstr ".htconfig.php kan skrives til"
+#: ../../mod/settings.php:713
+msgid "Connector Settings"
+msgstr "Koblingsinnstillinger"
-#: ../../mod/setup.php:516
-msgid ""
-"Red uses the Smarty3 template engine to render its web views. Smarty3 "
-"compiles templates to PHP to speed up rendering."
-msgstr "Red bruker malmotoren Smarty3 for å gjengi sine webvisninger. Smarty3 kompilerer malene om til PHP for å framskynde gjengivelsen."
+#: ../../mod/settings.php:743
+msgid "No special theme for mobile devices"
+msgstr "Ikke noe spesielt tema for mobile enheter"
-#: ../../mod/setup.php:517
-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 "For å kunne lagre disse kompilerte malene, så må webtjeneren ha skrivetilgang til katalogen view/tpl/smarty3/ under Red sin hovedmappe."
+#: ../../mod/settings.php:752
+#, php-format
+msgid "%s - (Experimental)"
+msgstr "%s - (Eksperimentelt)"
-#: ../../mod/setup.php:518 ../../mod/setup.php:536
-msgid ""
-"Please ensure that the user that your web server runs as (e.g. www-data) has"
-" write access to this folder."
-msgstr "Vennligst sikre at brukeren som din web-tjeneste kjører som (for eksempel www-data) har skrivetilgang til denne katalogen."
+#: ../../mod/settings.php:788
+msgid "Display Settings"
+msgstr "Visningsinnstillinger"
-#: ../../mod/setup.php:519
-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 "Merknad: som et sikkerhetstiltak bør du bare gi webtjerenn skrivetilgang til view/tpl/smarty3/ - ikke til malfilene (.tpl) som den inneholder."
+#: ../../mod/settings.php:794
+msgid "Display Theme:"
+msgstr "Visningstema:"
-#: ../../mod/setup.php:522
-msgid "view/tpl/smarty3 is writable"
-msgstr "view/tpl/smarty3 er skrivbar"
+#: ../../mod/settings.php:795
+msgid "Mobile Theme:"
+msgstr "Mobiltema:"
-#: ../../mod/setup.php:535
-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 bruker lagringsmappen for å lagre opplastede filer. Webtjeneren trenger å ha skrivetilgang til lagringsmappen under Red sin toppnivåmappe."
+#: ../../mod/settings.php:796
+msgid "Enable user zoom on mobile devices"
+msgstr "Skru på brukerstyrt zoom på mobile enheter"
-#: ../../mod/setup.php:539
-msgid "store is writable"
-msgstr "lageret kan skrives til"
+#: ../../mod/settings.php:797
+msgid "Update browser every xx seconds"
+msgstr "Oppdater nettleser hvert xx sekunder"
-#: ../../mod/setup.php:569
-msgid ""
-"SSL certificate cannot be validated. Fix certificate or disable https access"
-" to this site."
-msgstr "SSL-sertifikatet kan ikke kontrolleres. Fiks sertifikatet eller skru av https tilgang til dette nettstedet."
+#: ../../mod/settings.php:797
+msgid "Minimum of 10 seconds, no maximum"
+msgstr "Minimum 10 sekunder, ikke noe maksimum"
-#: ../../mod/setup.php:570
-msgid ""
-"If you have https access to your website or allow connections to TCP port "
-"443 (the https: port), you MUST use a browser-valid certificate. You MUST "
-"NOT use self-signed certificates!"
-msgstr "Hvis du har HTTPS-tilgang til ditt nettsted eller tillater forbindelser til TCP port 443 (HTTPS-porten), så MÅ du bruke nettlesergodkjent sertifkater. Du MÅ IKKE bruke egensignert sertifikater!"
+#: ../../mod/settings.php:798
+msgid "Maximum number of conversations to load at any time:"
+msgstr "Maksimalt antall samtaler å laste samtidig:"
-#: ../../mod/setup.php:571
-msgid ""
-"This restriction is incorporated because public posts from you may for "
-"example contain references to images on your own hub."
-msgstr "Denne begrensningen er tatt inn fordi offentlige innlegg fra deg kan for eksempel inneholde referanser til bilder på din egen hub."
+#: ../../mod/settings.php:798
+msgid "Maximum of 100 items"
+msgstr "Maksimum 100 elementer"
+
+#: ../../mod/settings.php:799
+msgid "Don't show emoticons"
+msgstr "Ikke vis følelsesikoner"
+
+#: ../../mod/settings.php:800
+msgid "Link post titles to source"
+msgstr "Lenk innleggets tittel til kilden"
+
+#: ../../mod/settings.php:801
+msgid "System Page Layout Editor - (advanced)"
+msgstr "Systemsidens layoutbehandler - (avansert)"
+
+#: ../../mod/settings.php:835
+msgid "Nobody except yourself"
+msgstr "Ingen unntatt deg selv"
+
+#: ../../mod/settings.php:836
+msgid "Only those you specifically allow"
+msgstr "Bare de du spesifikt tillater"
+
+#: ../../mod/settings.php:837
+msgid "Approved connections"
+msgstr "Godkjente forbindelser"
+
+#: ../../mod/settings.php:838
+msgid "Any connections"
+msgstr "Enhver forbindelse"
+
+#: ../../mod/settings.php:839
+msgid "Anybody on this website"
+msgstr "Enhver ved dette nettstedet"
+
+#: ../../mod/settings.php:840
+msgid "Anybody in this network"
+msgstr "Enhver i dette nettverket"
+
+#: ../../mod/settings.php:841
+msgid "Anybody authenticated"
+msgstr "Enhver som er autentisert"
+
+#: ../../mod/settings.php:842
+msgid "Anybody on the internet"
+msgstr "Enhver på Internett"
+
+#: ../../mod/settings.php:916
+msgid "Publish your default profile in the network directory"
+msgstr "Publiser din standardprofil i nettverkskatalogen"
+
+#: ../../mod/settings.php:921
+msgid "Allow us to suggest you as a potential friend to new members?"
+msgstr "Tillat oss å foreslå deg som en mulig venn til nye medlemmer?"
+
+#: ../../mod/settings.php:925 ../../mod/profile_photo.php:365
+msgid "or"
+msgstr "eller"
+
+#: ../../mod/settings.php:930
+msgid "Your channel address is"
+msgstr "Din kanaladresse er"
+
+#: ../../mod/settings.php:974
+msgid "Channel Settings"
+msgstr "Kanalinnstillinger"
+
+#: ../../mod/settings.php:983
+msgid "Basic Settings"
+msgstr "Grunninnstillinger"
+
+#: ../../mod/settings.php:986
+msgid "Your Timezone:"
+msgstr "Din tidssone:"
-#: ../../mod/setup.php:572
+#: ../../mod/settings.php:987
+msgid "Default Post Location:"
+msgstr "Standard plassering ved innlegg:"
+
+#: ../../mod/settings.php:987
+msgid "Geographical location to display on your posts"
+msgstr "Geografisk plassering som vises på dine innlegg"
+
+#: ../../mod/settings.php:988
+msgid "Use Browser Location:"
+msgstr "Bruk nettleseren sin plassering:"
+
+#: ../../mod/settings.php:990
+msgid "Adult Content"
+msgstr "Voksent innhold"
+
+#: ../../mod/settings.php:990
msgid ""
-"If your certificate is not recognised, members of other sites (who may "
-"themselves have valid certificates) will get a warning message on their own "
-"site complaining about security issues."
-msgstr "Hvis sertifikatet ditt ikke gjenkjennes, så vil medlemmer på andre nettsteder (som selv kan ha godkjente sertifikater) få en beskjed med en advarsel på deres eget nettsted som klager over sikkerhetsproblemer."
+"This channel frequently or regularly publishes adult content. (Please tag "
+"any adult material and/or nudity with #NSFW)"
+msgstr "Denne kanalen vil ofte eller jevnlig publisere voksent innhold. (Vennligst merk alt voksent materiale og/eller nakenhet med #NSFW)"
+
+#: ../../mod/settings.php:992
+msgid "Security and Privacy Settings"
+msgstr "Sikkerhets- og personverninnstillinger"
+
+#: ../../mod/settings.php:994
+msgid "Your permissions are already configured. Click to view/adjust"
+msgstr "Dine tillatelser er allerede satt. Klikk for å se/justere."
+
+#: ../../mod/settings.php:996
+msgid "Hide my online presence"
+msgstr "Skjul min tilstedeværelse online"
-#: ../../mod/setup.php:573
+#: ../../mod/settings.php:996
+msgid "Prevents displaying in your profile that you are online"
+msgstr "Forhindrer visning på din profil av at du er online "
+
+#: ../../mod/settings.php:998
+msgid "Simple Privacy Settings:"
+msgstr "Enkle personverninnstillinger:"
+
+#: ../../mod/settings.php:999
msgid ""
-"This can cause usability issues elsewhere (not just on your own site) so we "
-"must insist on this requirement."
-msgstr "Dette kan gi problemer med brukervennlighet (ikke bare på ditt eget nettsted), så vi må insistere på dette kravet."
+"Very Public - <em>extremely permissive (should be used with caution)</em>"
+msgstr "Svært offentlig - <em>ekstremt åpent (bør brukes med varsomhet)</em>"
-#: ../../mod/setup.php:574
+#: ../../mod/settings.php:1000
msgid ""
-"Providers are available that issue free certificates which are browser-"
-"valid."
-msgstr "Det finnes tilbydere som utsteder gratis sertifikater som er gyldige i nettlesere."
+"Typical - <em>default public, privacy when desired (similar to social "
+"network permissions but with improved privacy)</em>"
+msgstr "Typisk - <em>standard er offentlig, personvern når ønsket (likner på tillatelser i sosiale nettverk, men med forbedret personvern)</em>"
-#: ../../mod/setup.php:576
-msgid "SSL certificate validation"
-msgstr "SSL sertifikat-kontroll"
+#: ../../mod/settings.php:1001
+msgid "Private - <em>default private, never open or public</em>"
+msgstr "Privat - <em>standard er privat, aldri åpen eller offentlig</em>"
-#: ../../mod/setup.php:582
-msgid ""
-"Url rewrite in .htaccess is not working. Check your server configuration."
-msgstr "URL rewrite i .htaccess virker ikke. Sjekk konfigurasjonen på tjeneren."
+#: ../../mod/settings.php:1002
+msgid "Blocked - <em>default blocked to/from everybody</em>"
+msgstr "Blokkert - <em>standard blokkert til/fra alle</em>"
-#: ../../mod/setup.php:584
-msgid "Url rewrite is working"
-msgstr "URL rewrite virker"
+#: ../../mod/settings.php:1004
+msgid "Allow others to tag your posts"
+msgstr "Tillat andre å merke dine innlegg"
-#: ../../mod/setup.php:594
+#: ../../mod/settings.php:1004
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 "Databasekonfigurasjonsfilen \".htconfig.php\" kunne ikke skrives. Vennligst bruk den medfølgende teksten for å lage en konfigurasjonsfil i toppkatalogen av din web-tjener."
+"Often used by the community to retro-actively flag inappropriate content"
+msgstr "Ofte brukt av fellesskapet for å merke upassende innhold i etterkant"
-#: ../../mod/setup.php:618
-msgid "Errors encountered creating database tables."
-msgstr "Feil oppstod under opprettelsen av databasetabeller."
+#: ../../mod/settings.php:1006
+msgid "Advanced Privacy Settings"
+msgstr "Avanserte personverninnstillinger"
-#: ../../mod/setup.php:653
-msgid "<h1>What next</h1>"
-msgstr "<h1>Hva gjenstår</h1>"
+#: ../../mod/settings.php:1008
+msgid "Expire other channel content after this many days"
+msgstr "Annet kanal innhold utløper etter så mange dager"
-#: ../../mod/setup.php:654
-msgid ""
-"IMPORTANT: You will need to [manually] setup a scheduled task for the "
-"poller."
-msgstr "VIKTIG: Du må [manuelt] sette opp en automatisert tidfestet oppgave til bakgrunnshenteren."
+#: ../../mod/settings.php:1008
+msgid "0 or blank prevents expiration"
+msgstr "0 eller blankt forhindrer utløp"
-#: ../../mod/editblock.php:8 ../../mod/editblock.php:27
-#: ../../mod/editblock.php:53 ../../mod/editlayout.php:36
-#: ../../mod/editpost.php:20 ../../mod/editwebpage.php:32
-msgid "Item not found"
-msgstr "Elementet ble ikke funnet."
+#: ../../mod/settings.php:1009
+msgid "Maximum Friend Requests/Day:"
+msgstr "Maksimalt antall venneforespørsler per dag:"
-#: ../../mod/editblock.php:77
-msgid "Edit Block"
-msgstr "Endre byggekloss"
+#: ../../mod/settings.php:1009
+msgid "May reduce spam activity"
+msgstr "Kan redusere søppelpostaktivitet"
-#: ../../mod/editblock.php:87
-msgid "Delete block?"
-msgstr "Slett byggeklossen?"
+#: ../../mod/settings.php:1010
+msgid "Default Post Permissions"
+msgstr "Standard innleggstillatelser"
-#: ../../mod/editblock.php:115 ../../mod/editlayout.php:110
-#: ../../mod/editpost.php:116 ../../mod/editwebpage.php:147
-msgid "Insert YouTube video"
-msgstr "Sett inn YouTube-video"
+#: ../../mod/settings.php:1015
+msgid "Channel permissions category:"
+msgstr "Kategori med kanaltillatelser:"
-#: ../../mod/editblock.php:116 ../../mod/editlayout.php:111
-#: ../../mod/editpost.php:117 ../../mod/editwebpage.php:148
-msgid "Insert Vorbis [.ogg] video"
-msgstr "Sett inn Vorbis [.ogg] video"
+#: ../../mod/settings.php:1023
+msgid "Maximum private messages per day from unknown people:"
+msgstr "Maksimalt antall private meldinger per dag fra ukjente personer:"
-#: ../../mod/editblock.php:117 ../../mod/editlayout.php:112
-#: ../../mod/editpost.php:118 ../../mod/editwebpage.php:149
-msgid "Insert Vorbis [.ogg] audio"
-msgstr "Legg i"
+#: ../../mod/settings.php:1023
+msgid "Useful to reduce spamming"
+msgstr "Nyttig for å redusere søppelpost"
-#: ../../mod/editblock.php:153
-msgid "Delete Block"
-msgstr "Slett byggekloss"
+#: ../../mod/settings.php:1026
+msgid "Notification Settings"
+msgstr "Varslingsinnstillinger"
-#: ../../mod/pdledit.php:13
-msgid "Layout updated."
-msgstr "Layout er oppdatert."
+#: ../../mod/settings.php:1027
+msgid "By default post a status message when:"
+msgstr "Legg inn en statusmelding når du:"
-#: ../../mod/pdledit.php:28 ../../mod/pdledit.php:53
-msgid "Edit System Page Description"
-msgstr "Endre beskrivelsen av systemsiden"
+#: ../../mod/settings.php:1028
+msgid "accepting a friend request"
+msgstr "aksepterer en venneforespørsel"
-#: ../../mod/pdledit.php:48
-msgid "Layout not found."
-msgstr "Layouten ble ikke funnet."
+#: ../../mod/settings.php:1029
+msgid "joining a forum/community"
+msgstr "blir med i et forum/miljø"
-#: ../../mod/pdledit.php:54
-msgid "Module Name:"
-msgstr "Modulnavn:"
+#: ../../mod/settings.php:1030
+msgid "making an <em>interesting</em> profile change"
+msgstr "gjør en <em>interessant</em> profilendring"
-#: ../../mod/pdledit.php:55 ../../mod/layouts.php:59
-msgid "Layout Help"
-msgstr "Layout-hjelp"
+#: ../../mod/settings.php:1031
+msgid "Send a notification email when:"
+msgstr "Send en varsel-e-post når:"
-#: ../../mod/editlayout.php:72
-msgid "Edit Layout"
-msgstr "Endre layout"
+#: ../../mod/settings.php:1032
+msgid "You receive a connection request"
+msgstr "Du har mottatt en forespørsel om forbindelse"
-#: ../../mod/editlayout.php:82
-msgid "Delete layout?"
-msgstr "Slett layout?"
+#: ../../mod/settings.php:1033
+msgid "Your connections are confirmed"
+msgstr "Dine forbindelser er bekreftet"
-#: ../../mod/editlayout.php:146
-msgid "Delete Layout"
-msgstr "Slett layout"
+#: ../../mod/settings.php:1034
+msgid "Someone writes on your profile wall"
+msgstr "Noen skriver på din profilvegg"
-#: ../../mod/editpost.php:31
-msgid "Item is not editable"
-msgstr "Elementet kan ikke endres"
+#: ../../mod/settings.php:1035
+msgid "Someone writes a followup comment"
+msgstr "Noen skriver en oppfølgende kommentar"
-#: ../../mod/editpost.php:53
-msgid "Delete item?"
-msgstr "Slett element?"
+#: ../../mod/settings.php:1036
+msgid "You receive a private message"
+msgstr "Du mottar en privat melding"
-#: ../../mod/editwebpage.php:106
-msgid "Edit Webpage"
-msgstr "Endre webside"
+#: ../../mod/settings.php:1037
+msgid "You receive a friend suggestion"
+msgstr "Du mottok et venneforslag"
-#: ../../mod/editwebpage.php:116
-msgid "Delete webpage?"
-msgstr "Slett webside?"
+#: ../../mod/settings.php:1038
+msgid "You are tagged in a post"
+msgstr "Du merkes i et innlegg"
-#: ../../mod/editwebpage.php:186
-msgid "Delete Webpage"
-msgstr "Slett webside"
+#: ../../mod/settings.php:1039
+msgid "You are poked/prodded/etc. in a post"
+msgstr "Du ble prikket/oppildnet/og så vider i et innlegg"
-#: ../../mod/siteinfo.php:57
-#, php-format
-msgid "Version %s"
-msgstr "Versjon %s"
+#: ../../mod/settings.php:1042
+msgid "Show visual notifications including:"
+msgstr "Vis visuelle varslinger om:"
-#: ../../mod/siteinfo.php:76
-msgid "Installed plugins/addons/apps:"
-msgstr "Installerte tilleggsfunksjoner/tillegg/apper:"
+#: ../../mod/settings.php:1044
+msgid "Unseen matrix activity"
+msgstr "Usett matrixaktivitet"
-#: ../../mod/siteinfo.php:89
-msgid "No installed plugins/addons/apps"
-msgstr "Ingen installerte tilleggsfunksjoner/tillegg/apper"
+#: ../../mod/settings.php:1045
+msgid "Unseen channel activity"
+msgstr "Usett kanalaktivitet"
-#: ../../mod/siteinfo.php:97
-msgid "Red"
-msgstr "Red"
+#: ../../mod/settings.php:1046
+msgid "Unseen private messages"
+msgstr "Usette private meldinger"
-#: ../../mod/siteinfo.php:98
-msgid ""
-"This is a hub of the Red Matrix - a global cooperative network of "
-"decentralised privacy enhanced websites."
-msgstr "Dette er en hub i Red Matrix - et globalt kooperativt nettverk av desentraliserte personvernforsterkede nettsteder."
+#: ../../mod/settings.php:1046 ../../mod/settings.php:1051
+#: ../../mod/settings.php:1052 ../../mod/settings.php:1053
+msgid "Recommended"
+msgstr "Anbefalt"
-#: ../../mod/siteinfo.php:101
-msgid "Running at web location"
-msgstr "Kjører på webplasseringen"
+#: ../../mod/settings.php:1047
+msgid "Upcoming events"
+msgstr "Kommende hendelser"
-#: ../../mod/siteinfo.php:102
-msgid ""
-"Please visit <a href=\"http://getzot.com\">GetZot.com</a> to learn more "
-"about the Red Matrix."
-msgstr "Vennligst besøk <a href=\"http://getzot.com\">GetZot.com</a> for å lære mer om Red Matrix."
+#: ../../mod/settings.php:1048
+msgid "Events today"
+msgstr "Hendelser idag"
-#: ../../mod/siteinfo.php:103
-msgid "Bug reports and issues: please visit"
-msgstr "Feilmeldinger og feilretting: vennligst besøk"
+#: ../../mod/settings.php:1049
+msgid "Upcoming birthdays"
+msgstr "Kommende fødselsdager"
-#: ../../mod/siteinfo.php:106
-msgid ""
-"Suggestions, praise, etc. - please email \"redmatrix\" at librelist - dot "
-"com"
-msgstr "Forslag, ros og så videre - vennligst e-post \"redmatrix\" hos librelist - punktum com"
+#: ../../mod/settings.php:1049
+msgid "Not available in all themes"
+msgstr "Ikke tilgjengelig i alle temaer"
-#: ../../mod/siteinfo.php:108
-msgid "Site Administrators"
-msgstr "Nettstedsadministratorer"
+#: ../../mod/settings.php:1050
+msgid "System (personal) notifications"
+msgstr "System (personlige) varslinger"
-#: ../../mod/sources.php:32
-msgid "Failed to create source. No channel selected."
-msgstr "Mislyktes med å lage kilde. Ingen kanal er valgt."
+#: ../../mod/settings.php:1051
+msgid "System info messages"
+msgstr "System infomeldinger"
-#: ../../mod/sources.php:45
-msgid "Source created."
-msgstr "Kilden er laget."
+#: ../../mod/settings.php:1052
+msgid "System critical alerts"
+msgstr "System kritiske varsel"
-#: ../../mod/sources.php:57
-msgid "Source updated."
-msgstr "Kilden er oppdatert."
+#: ../../mod/settings.php:1053
+msgid "New connections"
+msgstr "Nye forbindelser"
-#: ../../mod/sources.php:82
-msgid "*"
-msgstr "*"
+#: ../../mod/settings.php:1054
+msgid "System Registrations"
+msgstr "Systemregistreringer"
-#: ../../mod/sources.php:89
-msgid "Manage remote sources of content for your channel."
-msgstr "HÃ¥ndtere eksterne innholdskilder til din kanal."
+#: ../../mod/settings.php:1056
+msgid "Notify me of events this many days in advance"
+msgstr "Varsle meg om hendelser dette antall dager på forhånd"
-#: ../../mod/sources.php:90 ../../mod/sources.php:100
-msgid "New Source"
-msgstr "Ny kilde"
+#: ../../mod/settings.php:1056
+msgid "Must be greater than 0"
+msgstr "Må være større enn 0"
-#: ../../mod/sources.php:101 ../../mod/sources.php:133
+#: ../../mod/settings.php:1058
+msgid "Advanced Account/Page Type Settings"
+msgstr "Avanserte innstillinger for konto/sidetype"
+
+#: ../../mod/settings.php:1059
+msgid "Change the behaviour of this account for special situations"
+msgstr "Endre oppførselen til denne kontoen i spesielle situasjoner"
+
+#: ../../mod/settings.php:1062
msgid ""
-"Import all or selected content from the following channel into this channel "
-"and distribute it according to your channel settings."
-msgstr "Importer alt eller et utvalgt av innhold fra følgende kanal inn i denne kanalen og distribuer det i henhold til dine egne kanalinnstillinger."
+"Please enable expert mode (in <a href=\"settings/features\">Settings > "
+"Additional features</a>) to adjust!"
+msgstr "Vennligst skru på ekspertmodus (under <a href=\"settings/features\">Innstillinger > Ekstra funksjoner</a>) for å justere!"
-#: ../../mod/sources.php:102 ../../mod/sources.php:134
-msgid "Only import content with these words (one per line)"
-msgstr "Bare importer innhold med disse ordene (ett ord per linje)"
+#: ../../mod/settings.php:1063
+msgid "Miscellaneous Settings"
+msgstr "Diverse innstillinger"
-#: ../../mod/sources.php:102 ../../mod/sources.php:134
-msgid "Leave blank to import all public content"
-msgstr "La stå tomt for å importere alt offentlig innhold"
+#: ../../mod/settings.php:1065
+msgid "Personal menu to display in your channel pages"
+msgstr "Personlig meny som kan vises på dine kanalsider"
-#: ../../mod/sources.php:103 ../../mod/sources.php:137
-#: ../../mod/new_channel.php:110
-msgid "Channel Name"
-msgstr "Kanalnavn"
+#: ../../mod/settings.php:1066
+msgid "Remove this channel"
+msgstr "Fjern denne kanalen"
-#: ../../mod/sources.php:123 ../../mod/sources.php:150
-msgid "Source not found."
-msgstr "Kilden ble ikke funnet."
+#: ../../mod/editwebpage.php:140
+msgid "Edit Webpage"
+msgstr "Endre webside"
-#: ../../mod/sources.php:130
-msgid "Edit Source"
-msgstr "Endre kilde"
+#: ../../mod/editwebpage.php:150
+msgid "Delete webpage?"
+msgstr "Slett webside?"
-#: ../../mod/sources.php:131
-msgid "Delete Source"
-msgstr "Slett kilde"
+#: ../../mod/editwebpage.php:215
+msgid "Delete Webpage"
+msgstr "Slett webside"
-#: ../../mod/sources.php:158
-msgid "Source removed"
-msgstr "Kilden er fjernet"
+#: ../../mod/impel.php:33
+msgid "webpage"
+msgstr "nettside"
-#: ../../mod/sources.php:160
-msgid "Unable to remove source."
-msgstr "Ikke i stand til å fjerne kilde."
+#: ../../mod/impel.php:38
+msgid "block"
+msgstr "byggekloss"
-#: ../../mod/filer.php:49
-msgid "- select -"
-msgstr "- velg -"
+#: ../../mod/impel.php:43
+msgid "layout"
+msgstr "layout"
-#: ../../mod/events.php:72
-msgid "Event title and start time are required."
-msgstr "Hendelsestittel og starttidspunkt er påkrevd."
+#: ../../mod/impel.php:117
+#, php-format
+msgid "%s element installed"
+msgstr "%s element installert"
-#: ../../mod/events.php:310
-msgid "l, F j"
-msgstr "l, F j"
+#: ../../mod/profile_photo.php:108
+msgid "Image uploaded but image cropping failed."
+msgstr "Bildet ble lastet opp, men beskjæring av bildet mislyktes."
-#: ../../mod/events.php:332
-msgid "Edit event"
-msgstr "Endre hendelse"
+#: ../../mod/profile_photo.php:161
+msgid "Image resize failed."
+msgstr "Endring av bildestørrelse mislyktes."
-#: ../../mod/events.php:378
-msgid "Create New Event"
-msgstr "Lag ny hendelse"
+#: ../../mod/profile_photo.php:205
+msgid ""
+"Shift-reload the page or clear browser cache if the new photo does not "
+"display immediately."
+msgstr "Hold nede Shift-knappen og last siden på nytt eller tøm nettleserens mellomlager hvis det nye bildet ikke vises umiddelbart."
-#: ../../mod/events.php:379
-msgid "Previous"
-msgstr "Forrige"
+#: ../../mod/profile_photo.php:232
+#, php-format
+msgid "Image exceeds size limit of %d"
+msgstr "Bildet overstiger størrelsesbegrensningen på %d"
-#: ../../mod/events.php:450
-msgid "hour:minute"
-msgstr "time:minutt"
+#: ../../mod/profile_photo.php:241
+msgid "Unable to process image."
+msgstr "Kan ikke behandle bildet."
-#: ../../mod/events.php:470
-msgid "Event details"
-msgstr "Hendelsesdetaljer"
+#: ../../mod/profile_photo.php:290 ../../mod/profile_photo.php:339
+msgid "Photo not available."
+msgstr "Bildet er ikke tilgjengelig."
-#: ../../mod/events.php:471
-#, php-format
-msgid "Format is %s %s. Starting date and Title are required."
-msgstr "Formatet er %s %s. Startdato og tittel er påkrevd."
+#: ../../mod/profile_photo.php:358
+msgid "Upload File:"
+msgstr "Last opp fil:"
-#: ../../mod/events.php:473
-msgid "Event Starts:"
-msgstr "Hendelsen starter:"
+#: ../../mod/profile_photo.php:359
+msgid "Select a profile:"
+msgstr "Velg en profil:"
-#: ../../mod/events.php:473 ../../mod/events.php:487 ../../mod/appman.php:91
-#: ../../mod/appman.php:92
-msgid "Required"
-msgstr "PÃ¥krevd"
+#: ../../mod/profile_photo.php:360
+msgid "Upload Profile Photo"
+msgstr "Last opp profilbilde:"
-#: ../../mod/events.php:476
-msgid "Finish date/time is not known or not relevant"
-msgstr "Sluttdato/-tidspunkt er ikke kjent eller ikke relevant"
+#: ../../mod/profile_photo.php:365
+msgid "skip this step"
+msgstr "hopp over dette steget"
-#: ../../mod/events.php:478
-msgid "Event Finishes:"
-msgstr "Hendelsen slutter:"
+#: ../../mod/profile_photo.php:365
+msgid "select a photo from your photo albums"
+msgstr "velg et bilde fra dine fotoalbum"
-#: ../../mod/events.php:481
-msgid "Adjust for viewer timezone"
-msgstr "Juster i forhold til tilskuerens tidssone"
+#: ../../mod/profile_photo.php:381
+msgid "Crop Image"
+msgstr "Beskjær bildet"
-#: ../../mod/events.php:483
-msgid "Description:"
-msgstr "Beskrivelse:"
+#: ../../mod/profile_photo.php:382
+msgid "Please adjust the image cropping for optimum viewing."
+msgstr "Vennligst juster bildebeskjæringen for optimal visning."
-#: ../../mod/events.php:487
-msgid "Title:"
-msgstr "Tittel:"
+#: ../../mod/profile_photo.php:384
+msgid "Done Editing"
+msgstr "Avslutt redigering"
-#: ../../mod/events.php:489
-msgid "Share this event"
-msgstr "Del denne hendelsen"
+#: ../../mod/profile_photo.php:427
+msgid "Image uploaded successfully."
+msgstr "Opplasting av bildet var vellykket."
+
+#: ../../mod/profile_photo.php:429
+msgid "Image upload failed."
+msgstr "Opplasting av bildet mislyktes."
+
+#: ../../mod/profile_photo.php:438
+#, php-format
+msgid "Image size reduction [%s] failed."
+msgstr "Forminsking av bildet [%s] mislyktes."
+
+#: ../../mod/fsuggest.php:20 ../../mod/fsuggest.php:92
+msgid "Contact not found."
+msgstr "Kontakten ble ikke funnet."
+
+#: ../../mod/fsuggest.php:63
+msgid "Friend suggestion sent."
+msgstr "Venneforespørsel sendt."
+
+#: ../../mod/fsuggest.php:97
+msgid "Suggest Friends"
+msgstr "Foreslå venner"
-#: ../../mod/filestorage.php:68
+#: ../../mod/fsuggest.php:99
+#, php-format
+msgid "Suggest a friend for %s"
+msgstr "Foreslå en venn for %s"
+
+#: ../../mod/filestorage.php:76
msgid "Permission Denied."
msgstr "Tillatelse avvist."
-#: ../../mod/filestorage.php:85
+#: ../../mod/filestorage.php:92
msgid "File not found."
msgstr "Filen ble ikke funnet."
-#: ../../mod/filestorage.php:121
+#: ../../mod/filestorage.php:131
msgid "Edit file permissions"
msgstr "Endre filtillatelser"
-#: ../../mod/filestorage.php:129
+#: ../../mod/filestorage.php:140
msgid "Set/edit permissions"
msgstr "Angi/endre tillatelser"
-#: ../../mod/filestorage.php:130
+#: ../../mod/filestorage.php:141
msgid "Include all files and sub folders"
msgstr "Inkluder alle filer og undermapper"
-#: ../../mod/filestorage.php:131
+#: ../../mod/filestorage.php:142
msgid "Return to file list"
msgstr "GÃ¥ tilbake til filoversikten"
-#: ../../mod/filestorage.php:133
+#: ../../mod/filestorage.php:144
msgid "Copy/paste this code to attach file to a post"
msgstr "Kopier og lim inn denne koden for å legge til filen i et innlegg"
-#: ../../mod/filestorage.php:134
+#: ../../mod/filestorage.php:145
msgid "Copy/paste this URL to link file from a web page"
msgstr "Kopier og lim inn denne URL-en for å lenke til filen fra en webside"
-#: ../../mod/filestorage.php:171
-msgid "Download"
-msgstr "Last ned"
-
-#: ../../mod/filestorage.php:177
-msgid "Used: "
-msgstr "Brukt:"
+#: ../../mod/help.php:41 ../../mod/help.php:47 ../../mod/help.php:53
+msgid "Help:"
+msgstr "Hjelp:"
-#: ../../mod/filestorage.php:178
-msgid "[directory]"
-msgstr "[mappe]"
+#: ../../mod/help.php:67 ../../index.php:238
+msgid "Not Found"
+msgstr "Ikke funnet"
-#: ../../mod/filestorage.php:180
-msgid "Limit: "
-msgstr "Grense:"
+#: ../../mod/acl.php:245
+msgid "network"
+msgstr "nettverk"
#: ../../mod/follow.php:25
msgid "Channel added."
msgstr "Kanal lagt til."
-#: ../../mod/subthread.php:103
-#, php-format
-msgid "%1$s is following %2$s's %3$s"
-msgstr "%1$s følger %2$s sin %3$s"
+#: ../../mod/delegate.php:95
+msgid "No potential page delegates located."
+msgstr "Ingen potensielle sidedelegater er funnet."
-#: ../../mod/fsuggest.php:20 ../../mod/fsuggest.php:92
-msgid "Contact not found."
-msgstr "Kontakten ble ikke funnet."
+#: ../../mod/delegate.php:121
+msgid "Delegate Page Management"
+msgstr "Deleger sidehåndtering"
-#: ../../mod/fsuggest.php:63
-msgid "Friend suggestion sent."
-msgstr "Venneforespørsel sendt."
+#: ../../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 "Delegater kan håndtere alle sider ved denne kontoen/siden unntatt grunnleggende kontoinformasjon. Vennligst ikke deleger din personlige konto til noen du ikke stoler fullstendig på."
-#: ../../mod/fsuggest.php:97
-msgid "Suggest Friends"
-msgstr "Foreslå venner"
+#: ../../mod/delegate.php:124
+msgid "Existing Page Managers"
+msgstr "Eksisterende sidehåndterere"
-#: ../../mod/fsuggest.php:99
-#, php-format
-msgid "Suggest a friend for %s"
-msgstr "Foreslå en venn for %s"
+#: ../../mod/delegate.php:126
+msgid "Existing Page Delegates"
+msgstr "Eksisterende sidedelegater"
-#: ../../mod/suggest.php:35
-msgid ""
-"No suggestions available. If this is a new site, please try again in 24 "
-"hours."
-msgstr "Ingen forslag tilgjengelige. Hvis dette er et nytt nettsted, vennligst prøv igjen om 24 timer."
+#: ../../mod/delegate.php:128
+msgid "Potential Delegates"
+msgstr "Potensielle sidedelegater"
+
+#: ../../mod/delegate.php:131
+msgid "Add"
+msgstr "Legg til"
+
+#: ../../mod/delegate.php:132
+msgid "No entries."
+msgstr "Ingen oppføringer."
#: ../../mod/group.php:20
msgid "Collection created."
@@ -6000,769 +6670,826 @@ msgstr "Medlemmer"
msgid "All Connected Channels"
msgstr "Alle tilkoblede kanaler"
-#: ../../mod/group.php:231
+#: ../../mod/group.php:233
msgid "Click on a channel to add or remove."
msgstr "Klikk på en kanal for å legge til eller fjerne."
+#: ../../mod/suggest.php:35
+msgid ""
+"No suggestions available. If this is a new site, please try again in 24 "
+"hours."
+msgstr "Ingen forslag tilgjengelige. Hvis dette er et nytt nettsted, vennligst prøv igjen om 24 timer."
+
+#: ../../mod/import.php:25
+#, php-format
+msgid "Your service plan only allows %d channels."
+msgstr "Din tjenesteplan tillater bare %d kanaler."
+
+#: ../../mod/import.php:51
+msgid "Nothing to import."
+msgstr "Ingenting å importere."
+
+#: ../../mod/import.php:75
+msgid "Unable to download data from old server"
+msgstr "Ikke i stand til å laste ned data fra gammel tjener"
+
+#: ../../mod/import.php:81
+msgid "Imported file is empty."
+msgstr "Importert fil er tom."
+
+#: ../../mod/import.php:105
+msgid ""
+"Cannot create a duplicate channel identifier on this system. Import failed."
+msgstr "Kan ikke lage en kopi av kanal-identifikatoren på dette systemet. Import mislyktes."
+
+#: ../../mod/import.php:123
+msgid "Channel clone failed. Import failed."
+msgstr "Kanalkloning mislyktes. Import mislyktes."
+
+#: ../../mod/import.php:133
+msgid "Cloned channel not found. Import failed."
+msgstr "Klonet kanal ble ikke funnet. Import mislyktes."
+
+#: ../../mod/import.php:451
+msgid "Import completed."
+msgstr "Import ferdig."
+
+#: ../../mod/import.php:463
+msgid "You must be logged in to use this feature."
+msgstr "Du må være innlogget for å bruke denne funksjonen."
+
+#: ../../mod/import.php:468
+msgid "Import Channel"
+msgstr "Importer kanal"
+
+#: ../../mod/import.php:469
+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 "Bruk dette skjemaet til å importere en eksisterende kanal fra en annen tjener/hub. Du kan hente kanalidentiteten fra den gamle tjeneren/hubben via nettverket eller bruke en eksportert fil. Bare identiteten og forbindelser/relasjoner vil bli importert. Importering av innhold er ennå ikke tilgjengelig."
+
+#: ../../mod/import.php:470
+msgid "File to Upload"
+msgstr "Fil som skal lastes opp"
+
+#: ../../mod/import.php:471
+msgid "Or provide the old server/hub details"
+msgstr "Eller oppgi detaljene fra den gamle tjeneren/hub-en"
+
+#: ../../mod/import.php:472
+msgid "Your old identity address (xyz@example.com)"
+msgstr "Din gamle identitetsadresse (xyz@example.com)"
+
+#: ../../mod/import.php:473
+msgid "Your old login email address"
+msgstr "Din gamle innloggings e-postadresse"
+
+#: ../../mod/import.php:474
+msgid "Your old login password"
+msgstr "Ditt gamle innloggingspassord"
+
+#: ../../mod/import.php:475
+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 "Enten du tar det ene eller det andre valget, vennligst angi om du vil at denne hubben skal være din nye primære adresse, eller om din gamle plassering skal fortsette å ha denne rollen. Du kan lage innlegg fra den ene eller den andre plasseringen, men bare en av dem kan markeres som den primære plasseringen for filer, bilder og media."
+
+#: ../../mod/import.php:476
+msgid "Make this hub my primary location"
+msgstr "Gjør dette nettstedet til min primære plassering"
+
+#: ../../mod/import.php:477
+msgid "Import existing posts if possible"
+msgstr "Importerer eksisterende innlegg hvis mulig."
+
#: ../../mod/tagger.php:98
#, php-format
msgid "%1$s tagged %2$s's %3$s with %4$s"
msgstr "%1$s merket %3$s til %2$s med %4$s"
-#: ../../mod/help.php:43 ../../mod/help.php:49 ../../mod/help.php:55
-msgid "Help:"
-msgstr "Hjelp:"
-
-#: ../../mod/help.php:69 ../../index.php:233
-msgid "Not Found"
-msgstr "Ikke funnet"
-
-#: ../../mod/tagrm.php:41
+#: ../../mod/tagrm.php:44 ../../mod/tagrm.php:94
msgid "Tag removed"
msgstr "Merkelapp fjernet"
-#: ../../mod/tagrm.php:79
+#: ../../mod/tagrm.php:119
msgid "Remove Item Tag"
msgstr "Fjern merkelapp fra element"
-#: ../../mod/tagrm.php:81
+#: ../../mod/tagrm.php:121
msgid "Select a tag to remove: "
msgstr "Velg merkelapp å fjerne:"
-#: ../../mod/home.php:79
-msgid "Red Matrix - &quot;The Network&quot;"
-msgstr "Red Matrix - &quot;Nettverket&quot;"
-
-#: ../../mod/home.php:92
-#, php-format
-msgid "Welcome to %s"
-msgstr "Velkommen til %s"
-
#: ../../mod/admin.php:52
msgid "Theme settings updated."
msgstr "Temainnstillinger er oppdatert."
-#: ../../mod/admin.php:92 ../../mod/admin.php:441
+#: ../../mod/admin.php:97 ../../mod/admin.php:411
msgid "Site"
msgstr "Nettsted"
-#: ../../mod/admin.php:93
+#: ../../mod/admin.php:98
msgid "Accounts"
msgstr "Kontoer"
-#: ../../mod/admin.php:94 ../../mod/admin.php:884
+#: ../../mod/admin.php:99 ../../mod/admin.php:858
msgid "Channels"
msgstr "Kanaler"
-#: ../../mod/admin.php:95 ../../mod/admin.php:975 ../../mod/admin.php:1017
+#: ../../mod/admin.php:100 ../../mod/admin.php:949 ../../mod/admin.php:991
msgid "Plugins"
msgstr "Tilleggsfunksjoner"
-#: ../../mod/admin.php:96 ../../mod/admin.php:1180 ../../mod/admin.php:1216
+#: ../../mod/admin.php:101 ../../mod/admin.php:1154 ../../mod/admin.php:1190
msgid "Themes"
msgstr "Temaer"
-#: ../../mod/admin.php:97 ../../mod/admin.php:541
+#: ../../mod/admin.php:102 ../../mod/admin.php:512
msgid "Server"
msgstr "Tjener"
-#: ../../mod/admin.php:98
+#: ../../mod/admin.php:103
+msgid "Profile Config"
+msgstr "Profilinnstillinger"
+
+#: ../../mod/admin.php:104
msgid "DB updates"
msgstr "Databaseoppdateringer"
-#: ../../mod/admin.php:112 ../../mod/admin.php:119 ../../mod/admin.php:1303
+#: ../../mod/admin.php:118 ../../mod/admin.php:125 ../../mod/admin.php:1277
msgid "Logs"
msgstr "Logger"
-#: ../../mod/admin.php:118
+#: ../../mod/admin.php:124
msgid "Plugin Features"
msgstr "Tilleggsfunksjoner"
-#: ../../mod/admin.php:120
+#: ../../mod/admin.php:126
msgid "User registrations waiting for confirmation"
msgstr "Brukerregistreringer som venter på bekreftelse"
-#: ../../mod/admin.php:197
+#: ../../mod/admin.php:206
msgid "Message queues"
msgstr "Meldingskøer"
-#: ../../mod/admin.php:202 ../../mod/admin.php:440 ../../mod/admin.php:540
-#: ../../mod/admin.php:749 ../../mod/admin.php:883 ../../mod/admin.php:974
-#: ../../mod/admin.php:1016 ../../mod/admin.php:1179 ../../mod/admin.php:1215
-#: ../../mod/admin.php:1302
+#: ../../mod/admin.php:211 ../../mod/admin.php:410 ../../mod/admin.php:511
+#: ../../mod/admin.php:721 ../../mod/admin.php:857 ../../mod/admin.php:948
+#: ../../mod/admin.php:990 ../../mod/admin.php:1153 ../../mod/admin.php:1189
+#: ../../mod/admin.php:1276
msgid "Administration"
msgstr "Administrasjon"
-#: ../../mod/admin.php:203
+#: ../../mod/admin.php:212
msgid "Summary"
msgstr "Sammendrag"
-#: ../../mod/admin.php:205
+#: ../../mod/admin.php:214
msgid "Registered users"
msgstr "Registrerte brukere"
-#: ../../mod/admin.php:207 ../../mod/admin.php:544
+#: ../../mod/admin.php:216 ../../mod/admin.php:515
msgid "Pending registrations"
msgstr "Ventende registreringer"
-#: ../../mod/admin.php:208
+#: ../../mod/admin.php:217
msgid "Version"
msgstr "Versjon"
-#: ../../mod/admin.php:210 ../../mod/admin.php:545
+#: ../../mod/admin.php:219 ../../mod/admin.php:516
msgid "Active plugins"
msgstr "Aktive tilleggsfunksjoner"
-#: ../../mod/admin.php:361
+#: ../../mod/admin.php:326
msgid "Site settings updated."
msgstr "Nettstedsinnstillinger er oppdatert."
-#: ../../mod/admin.php:392
-msgid "No special theme for accessibility"
-msgstr "Ikke noe spesielt tema for universell utforming"
+#: ../../mod/admin.php:363
+msgid "mobile"
+msgstr "mobil"
-#: ../../mod/admin.php:421
+#: ../../mod/admin.php:365
+msgid "experimental"
+msgstr "eksperimentell"
+
+#: ../../mod/admin.php:367
+msgid "unsupported"
+msgstr "ikke støttet"
+
+#: ../../mod/admin.php:391
msgid "Yes - with approval"
msgstr "Ja - med godkjenning"
-#: ../../mod/admin.php:427
+#: ../../mod/admin.php:397
msgid "My site is not a public server"
msgstr "Mitt nettsted er ikke en offentlig tjeneste"
-#: ../../mod/admin.php:428
+#: ../../mod/admin.php:398
msgid "My site has paid access only"
msgstr "Mitt nettsted gir kun tilgang mot betaling"
-#: ../../mod/admin.php:429
+#: ../../mod/admin.php:399
msgid "My site has free access only"
msgstr "Mitt nettsted har kun gratis tilgang"
-#: ../../mod/admin.php:430
+#: ../../mod/admin.php:400
msgid "My site offers free accounts with optional paid upgrades"
msgstr "Mitt nettsted tilbyr gratis konto med valgfri oppgradering til betalt tjeneste"
-#: ../../mod/admin.php:444
+#: ../../mod/admin.php:414
msgid "File upload"
msgstr "Last opp fil"
-#: ../../mod/admin.php:445
+#: ../../mod/admin.php:415
msgid "Policies"
msgstr "Retningslinjer"
-#: ../../mod/admin.php:450
+#: ../../mod/admin.php:420
msgid "Site name"
msgstr "Nettstedets navn"
-#: ../../mod/admin.php:451
+#: ../../mod/admin.php:421
msgid "Banner/Logo"
msgstr "Banner/Logo"
-#: ../../mod/admin.php:452
+#: ../../mod/admin.php:422
msgid "Administrator Information"
msgstr "Administratorinformasjon"
-#: ../../mod/admin.php:452
+#: ../../mod/admin.php:422
msgid ""
"Contact information for site administrators. Displayed on siteinfo page. "
"BBCode can be used here"
msgstr "Kontaktinformasjon til nettstedsadministratorer. Vises på siteinfo-siden. BBCode kan brukes her"
-#: ../../mod/admin.php:453
+#: ../../mod/admin.php:423
msgid "System language"
msgstr "Systemspråk"
-#: ../../mod/admin.php:454
+#: ../../mod/admin.php:424
msgid "System theme"
msgstr "Systemtema"
-#: ../../mod/admin.php:454
+#: ../../mod/admin.php:424
msgid ""
"Default system theme - may be over-ridden by user profiles - <a href='#' "
"id='cnftheme'>change theme settings</a>"
msgstr "Standard systemtema - kan overstyres av brukerprofiler - <a href='#' id='cnftheme'>endre temainnstillinger</a>"
-#: ../../mod/admin.php:455
+#: ../../mod/admin.php:425
msgid "Mobile system theme"
msgstr "Mobilt systemtema"
-#: ../../mod/admin.php:455
+#: ../../mod/admin.php:425
msgid "Theme for mobile devices"
msgstr "Tema for mobile enheter"
-#: ../../mod/admin.php:456
-msgid "Accessibility system theme"
-msgstr "Universelt utformet systemtema"
+#: ../../mod/admin.php:427
+msgid "Enable Diaspora Protocol"
+msgstr "Skru på Diaspora-protokollen"
-#: ../../mod/admin.php:456
-msgid "Accessibility theme"
-msgstr "Universelt utformet tema"
+#: ../../mod/admin.php:427
+msgid "Communicate with Diaspora and Friendica - experimental"
+msgstr "Samhandling med Diaspora og Friendica - eksperimentell"
-#: ../../mod/admin.php:457
-msgid "Channel to use for this website's static pages"
-msgstr "Kanal å bruke for dette nettstedets statiske sider"
+#: ../../mod/admin.php:428
+msgid "Allow Feeds as Connections"
+msgstr "Tillat strømmer som forbindelser"
-#: ../../mod/admin.php:457
-msgid "Site Channel"
-msgstr "Nettstedets kanal"
+#: ../../mod/admin.php:428
+msgid "(Heavy system resource usage)"
+msgstr "(Tung bruk av systemressurser)"
-#: ../../mod/admin.php:459
+#: ../../mod/admin.php:429
msgid "Maximum image size"
msgstr "Største bildestørrelse"
-#: ../../mod/admin.php:459
+#: ../../mod/admin.php:429
msgid ""
"Maximum size in bytes of uploaded images. Default is 0, which means no "
"limits."
msgstr "Største størrelse i bytes for opplastede bilder. Standard er 0, som betyr ubegrenset."
-#: ../../mod/admin.php:460
+#: ../../mod/admin.php:430
msgid "Does this site allow new member registration?"
msgstr "Tillater dette nettstedet registrering av nye medlemmer?"
-#: ../../mod/admin.php:461
+#: ../../mod/admin.php:431
msgid "Which best describes the types of account offered by this hub?"
msgstr "Hvilket alternativ beskriver best hva slags kontotype som tilbys av dette nettstedet/denne hubben?"
-#: ../../mod/admin.php:462
+#: ../../mod/admin.php:432
msgid "Register text"
msgstr "Registreringstekst"
-#: ../../mod/admin.php:462
+#: ../../mod/admin.php:432
msgid "Will be displayed prominently on the registration page."
msgstr "Vil bli vist på en fremtredende måte på registreringssiden."
-#: ../../mod/admin.php:463
+#: ../../mod/admin.php:433
msgid "Accounts abandoned after x days"
msgstr "Kontoer forlatt etter x dager"
-#: ../../mod/admin.php:463
+#: ../../mod/admin.php:433
msgid ""
"Will not waste system resources polling external sites for abandonded "
"accounts. Enter 0 for no time limit."
msgstr "Vil ikke kaste bort systemressurser på å spørre eksterne nettsteder etter forlatte kontoer. Skriv 0 for å ikke sette noen tidsgrense."
-#: ../../mod/admin.php:464
+#: ../../mod/admin.php:434
msgid "Allowed friend domains"
msgstr "Tillatte vennedomener"
-#: ../../mod/admin.php:464
+#: ../../mod/admin.php:434
msgid ""
"Comma separated list of domains which are allowed to establish friendships "
"with this site. Wildcards are accepted. Empty to allow any domains"
msgstr "Kommaseparert liste over domener som har lov til å etablere vennskap med dette nettstedet. Jokertegn er akseptert. Tøm for å tillate alle domener."
-#: ../../mod/admin.php:465
+#: ../../mod/admin.php:435
msgid "Allowed email domains"
msgstr "Tillate e-postdomener"
-#: ../../mod/admin.php:465
+#: ../../mod/admin.php:435
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 "Kommaseparert liste med domener som er tillatt i e-postadresser ved registrering på dette nettstedet. Jokertegn er akseptert. Tomt betyr at alle domener er tillatt"
-#: ../../mod/admin.php:466
+#: ../../mod/admin.php:436
msgid "Block public"
msgstr "Blokker offentlig tilgang"
-#: ../../mod/admin.php:466
+#: ../../mod/admin.php:436
msgid ""
"Check to block public access to all otherwise public personal pages on this "
"site unless you are currently logged in."
msgstr "Kryss av for å blokkere tilgang til alle personlige sider som ellers ville vært offentlig tilgjengelige på dette nettstedet med mindre du er logget inn."
-#: ../../mod/admin.php:467
+#: ../../mod/admin.php:437
+msgid "Verify Email Addresses"
+msgstr "Bekreft e-postadresser"
+
+#: ../../mod/admin.php:437
+msgid ""
+"Check to verify email addresses used in account registration (recommended)."
+msgstr "Sett hake for å sjekke e-postadresser brukt ved kontoregistrering (anbefales)."
+
+#: ../../mod/admin.php:438
msgid "Force publish"
msgstr "Tving publisering"
-#: ../../mod/admin.php:467
+#: ../../mod/admin.php:438
msgid ""
"Check to force all profiles on this site to be listed in the site directory."
msgstr "Kryss av for å tvinge alle profiler på dette nettstedet til å bli oppført i nettstedet sin katalog."
-#: ../../mod/admin.php:468
+#: ../../mod/admin.php:439
msgid "Disable discovery tab"
msgstr "Skru av oppdagelsesfanen"
-#: ../../mod/admin.php:468
+#: ../../mod/admin.php:439
msgid ""
"Remove the tab in the network view with public content pulled from sources "
"chosen for this site."
msgstr "Fjern fanen fra nettverksvisningen med offentlig innhold trukket inn fra kilder valg for dette nettstedet."
-#: ../../mod/admin.php:469
+#: ../../mod/admin.php:440
msgid "No login on Homepage"
msgstr "Ingen innlogging på hjemmesiden"
-#: ../../mod/admin.php:469
+#: ../../mod/admin.php:440
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 "Sett hake for å skjule innloggingsskjemaet fra ditt nettsteds hjemmeside for besøkende som ikke er innlogget (for eksempel når du legger inn innhold på hjemmesiden via nettstedskanalen)."
-#: ../../mod/admin.php:471
+#: ../../mod/admin.php:442
msgid "Proxy user"
msgstr "Brukernavn mellomtjener"
-#: ../../mod/admin.php:472
+#: ../../mod/admin.php:443
msgid "Proxy URL"
msgstr "Mellomtjener URL"
-#: ../../mod/admin.php:473
+#: ../../mod/admin.php:444
msgid "Network timeout"
msgstr "Nettverk tidsavbrudd"
-#: ../../mod/admin.php:473
+#: ../../mod/admin.php:444
msgid "Value is in seconds. Set to 0 for unlimited (not recommended)."
msgstr "Verdien i sekunder. Skriv 0 for ubegrenset (ikke anbefalt)."
-#: ../../mod/admin.php:474
+#: ../../mod/admin.php:445
msgid "Delivery interval"
msgstr "Leveringsinterval"
-#: ../../mod/admin.php:474
+#: ../../mod/admin.php:445
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 "Forsink leveringsprosessene i bakgrunnen med dette antall sekunder for å redusere systembelastningen. Anbefaling: 4-5 for delte tjenere, 2-3 for virtuelle tjenere, 0-1 for større dedikerte tjenere."
-#: ../../mod/admin.php:475
+#: ../../mod/admin.php:446
msgid "Poll interval"
msgstr "Spørreintervall"
-#: ../../mod/admin.php:475
+#: ../../mod/admin.php:446
msgid ""
"Delay background polling processes by this many seconds to reduce system "
"load. If 0, use delivery interval."
msgstr "Forsink spørreprosessene i bakgrunnen med dette antall sekunder for å redusere systembelastningen. Hvis 0, bruk dette leveringsintervallet."
-#: ../../mod/admin.php:476
+#: ../../mod/admin.php:447
msgid "Maximum Load Average"
msgstr "Største belastningsgjennomsnitt"
-#: ../../mod/admin.php:476
+#: ../../mod/admin.php:447
msgid ""
"Maximum system load before delivery and poll processes are deferred - "
"default 50."
msgstr "Største systembelastning før leverings- og spørreprosesser blir utsatt - standard 50."
-#: ../../mod/admin.php:532
+#: ../../mod/admin.php:503
msgid "No server found"
msgstr "Ingen tjener funnet"
-#: ../../mod/admin.php:539 ../../mod/admin.php:763
+#: ../../mod/admin.php:510 ../../mod/admin.php:735
msgid "ID"
msgstr "ID"
-#: ../../mod/admin.php:539
+#: ../../mod/admin.php:510
msgid "for channel"
msgstr "for kanalen"
-#: ../../mod/admin.php:539
+#: ../../mod/admin.php:510
msgid "on server"
msgstr "på tjener"
-#: ../../mod/admin.php:539
+#: ../../mod/admin.php:510
msgid "Status"
msgstr "Status"
-#: ../../mod/admin.php:560
+#: ../../mod/admin.php:531
msgid "Update has been marked successful"
msgstr "Oppdateringen har blitt merket som en suksess"
-#: ../../mod/admin.php:570
+#: ../../mod/admin.php:541
#, php-format
msgid "Executing %s failed. Check system logs."
msgstr "Utføring av %s feilet. Sjekk systemlogger."
-#: ../../mod/admin.php:573
+#: ../../mod/admin.php:544
#, php-format
msgid "Update %s was successfully applied."
msgstr "Oppdatering %s ble gjennomført med suksess."
-#: ../../mod/admin.php:577
+#: ../../mod/admin.php:548
#, php-format
msgid "Update %s did not return a status. Unknown if it succeeded."
msgstr "Oppdatering %s returnerte ingen status. Det er ukjent om den ble vellykket."
-#: ../../mod/admin.php:580
+#: ../../mod/admin.php:551
#, php-format
msgid "Update function %s could not be found."
msgstr "Oppdatering av funksjon %s kunne ikke finnes."
-#: ../../mod/admin.php:595
+#: ../../mod/admin.php:566
msgid "No failed updates."
msgstr "Ingen mislykkede oppdateringer."
-#: ../../mod/admin.php:599
+#: ../../mod/admin.php:570
msgid "Failed Updates"
msgstr "Mislykkede oppdateringer"
-#: ../../mod/admin.php:601
+#: ../../mod/admin.php:572
msgid "Mark success (if update was manually applied)"
msgstr "Marker suksess (hvis oppdateringen ble gjennomført manuelt)"
-#: ../../mod/admin.php:602
+#: ../../mod/admin.php:573
msgid "Attempt to execute this update step automatically"
msgstr "Prøv å gjennomføre dette oppdateringstrinnet automatisk"
-#: ../../mod/admin.php:628
+#: ../../mod/admin.php:599
#, php-format
msgid "%s user blocked/unblocked"
msgid_plural "%s users blocked/unblocked"
msgstr[0] "%s bruker blokkert/ikke blokkert lenger"
msgstr[1] "%s brukere blokkert/ikke blokkert lenger"
-#: ../../mod/admin.php:635
+#: ../../mod/admin.php:606
#, php-format
msgid "%s user deleted"
msgid_plural "%s users deleted"
msgstr[0] "%s bruker slettet"
msgstr[1] "%s brukere slettet"
-#: ../../mod/admin.php:666
+#: ../../mod/admin.php:635
msgid "Account not found"
msgstr "Kontoen ble ikke funnet"
-#: ../../mod/admin.php:677
-#, php-format
-msgid "User '%s' deleted"
-msgstr "Brukeren '%s' er slettet"
-
-#: ../../mod/admin.php:686
+#: ../../mod/admin.php:655
#, php-format
msgid "User '%s' unblocked"
msgstr "Brukeren '%s' er ikke blokkert lenger"
-#: ../../mod/admin.php:686
+#: ../../mod/admin.php:655
#, php-format
msgid "User '%s' blocked"
msgstr "Brukeren '%s' er blokkert"
-#: ../../mod/admin.php:750 ../../mod/admin.php:762
+#: ../../mod/admin.php:722 ../../mod/admin.php:734
msgid "Users"
msgstr "Brukere"
-#: ../../mod/admin.php:752 ../../mod/admin.php:886
+#: ../../mod/admin.php:724 ../../mod/admin.php:860
msgid "select all"
msgstr "velg alle"
-#: ../../mod/admin.php:753
+#: ../../mod/admin.php:725
msgid "User registrations waiting for confirm"
msgstr "Brukerregistreringer som venter på bekreftelse"
-#: ../../mod/admin.php:754
+#: ../../mod/admin.php:726
msgid "Request date"
msgstr "Dato for forespørsel"
-#: ../../mod/admin.php:755
+#: ../../mod/admin.php:727
msgid "No registrations."
msgstr "Ingen registreringer."
-#: ../../mod/admin.php:756
+#: ../../mod/admin.php:728
msgid "Approve"
msgstr "Godkjenn"
-#: ../../mod/admin.php:757
+#: ../../mod/admin.php:729
msgid "Deny"
msgstr "Avslå"
-#: ../../mod/admin.php:763
+#: ../../mod/admin.php:735
msgid "Register date"
msgstr "Registreringsdato"
-#: ../../mod/admin.php:763
+#: ../../mod/admin.php:735
msgid "Last login"
msgstr "Siste innlogging"
-#: ../../mod/admin.php:763
+#: ../../mod/admin.php:735
msgid "Expires"
msgstr "Utløper"
-#: ../../mod/admin.php:763
+#: ../../mod/admin.php:735
msgid "Service Class"
msgstr "Tjenesteklasse"
-#: ../../mod/admin.php:765
+#: ../../mod/admin.php:737
msgid ""
"Selected users will be deleted!\\n\\nEverything these users had posted on "
"this site will be permanently deleted!\\n\\nAre you sure?"
msgstr "Valgte brukere vil bli slettet!\\n\\nAlt som disse brukerne har lagt inn på dette nettstedet vil bli slettet for alltid!\\n\\nEr du sikker på at du vil slette valgte brukere og deres innhold?"
-#: ../../mod/admin.php:766
+#: ../../mod/admin.php:738
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 "Brukeren {0} vil bli slettet!\\n\\nAlt denne brukeren har lagt inn på dette nettstedet vil bli slettet for alltid!\\n\\nEr du sikker på at du vil slette denne brukeren og alt innholdet til denne brukeren?"
-#: ../../mod/admin.php:798
+#: ../../mod/admin.php:771
#, php-format
msgid "%s channel censored/uncensored"
-msgid_plural "%s channelss censored/uncensored"
-msgstr[0] "%s kanal sensurert/ikke sensurert lenger"
-msgstr[1] "%s kanaler sensurert/ikke sensurert lenger"
+msgid_plural "%s channels censored/uncensored"
+msgstr[0] "%s kanal er sensurert/ikke sensurert lenger"
+msgstr[1] "%s kanaler er sensurert/ikke sensurert lenger"
-#: ../../mod/admin.php:805
+#: ../../mod/admin.php:778
#, php-format
msgid "%s channel deleted"
msgid_plural "%s channels deleted"
msgstr[0] "%s kanal slettet"
msgstr[1] "%s kanaler slettet"
-#: ../../mod/admin.php:824
+#: ../../mod/admin.php:797
msgid "Channel not found"
msgstr "Kanalen ble ikke funnet"
-#: ../../mod/admin.php:835
+#: ../../mod/admin.php:808
#, php-format
msgid "Channel '%s' deleted"
msgstr "Kanalen '%s' er slettet"
-#: ../../mod/admin.php:845
+#: ../../mod/admin.php:819
#, php-format
msgid "Channel '%s' uncensored"
msgstr "Kanalen '%s' er ikke sensurert lenger"
-#: ../../mod/admin.php:845
+#: ../../mod/admin.php:819
#, php-format
msgid "Channel '%s' censored"
msgstr "Kanalen '%s' er sensurert"
-#: ../../mod/admin.php:888
+#: ../../mod/admin.php:862
msgid "Censor"
msgstr "Sensurer"
-#: ../../mod/admin.php:889
+#: ../../mod/admin.php:863
msgid "Uncensor"
msgstr "Ikke sensurer lenger"
-#: ../../mod/admin.php:892
+#: ../../mod/admin.php:866
msgid "UID"
msgstr "UID"
-#: ../../mod/admin.php:894
+#: ../../mod/admin.php:868
msgid ""
"Selected channels will be deleted!\\n\\nEverything that was posted in these "
"channels on this site will be permanently deleted!\\n\\nAre you sure?"
msgstr "Valgte kanaler vil bli slettet!\\n\\nAlt innhold som er lagt inn i disse kanalene på dette nettstedet vil bli slettet for alltid!\\n\\nEr du sikker på at du vil slette disse kanalene med alt innhold?"
-#: ../../mod/admin.php:895
+#: ../../mod/admin.php:869
msgid ""
"The channel {0} will be deleted!\\n\\nEverything that was posted in this "
"channel on this site will be permanently deleted!\\n\\nAre you sure?"
msgstr "Kanalen {0} vil bli slettet!\\n\\nAlt innhold som er lagt inn i denne kanalen på dettet nettstedet vil bli slettet for alltid!\\n\\nEr du sikker på at du vil slette denne kanalen med alt innhold?"
-#: ../../mod/admin.php:934
+#: ../../mod/admin.php:908
#, php-format
msgid "Plugin %s disabled."
msgstr "Tilleggsfunksjonen %s er avskrudd."
-#: ../../mod/admin.php:938
+#: ../../mod/admin.php:912
#, php-format
msgid "Plugin %s enabled."
msgstr "Tilleggsfunksjonen %s er påskrudd."
-#: ../../mod/admin.php:948 ../../mod/admin.php:1150
+#: ../../mod/admin.php:922 ../../mod/admin.php:1124
msgid "Disable"
msgstr "Skru av"
-#: ../../mod/admin.php:950 ../../mod/admin.php:1152
+#: ../../mod/admin.php:924 ../../mod/admin.php:1126
msgid "Enable"
msgstr "Skru på"
-#: ../../mod/admin.php:976 ../../mod/admin.php:1181
+#: ../../mod/admin.php:950 ../../mod/admin.php:1155
msgid "Toggle"
msgstr "Skru av og på"
-#: ../../mod/admin.php:984 ../../mod/admin.php:1191
+#: ../../mod/admin.php:958 ../../mod/admin.php:1165
msgid "Author: "
msgstr "Forfatter:"
-#: ../../mod/admin.php:985 ../../mod/admin.php:1192
+#: ../../mod/admin.php:959 ../../mod/admin.php:1166
msgid "Maintainer: "
msgstr "Vedlikeholder:"
-#: ../../mod/admin.php:1114
+#: ../../mod/admin.php:1088
msgid "No themes found."
msgstr "Ingen temaer er funnet."
-#: ../../mod/admin.php:1173
+#: ../../mod/admin.php:1147
msgid "Screenshot"
msgstr "Skjermbilde"
-#: ../../mod/admin.php:1221
+#: ../../mod/admin.php:1195
msgid "[Experimental]"
msgstr "[Eksperimentelt]"
-#: ../../mod/admin.php:1222
+#: ../../mod/admin.php:1196
msgid "[Unsupported]"
msgstr "[Ingen støtte]"
-#: ../../mod/admin.php:1249
+#: ../../mod/admin.php:1223
msgid "Log settings updated."
msgstr "Logginnstillinger er oppdatert."
-#: ../../mod/admin.php:1305
+#: ../../mod/admin.php:1279
msgid "Clear"
msgstr "Tøm"
-#: ../../mod/admin.php:1311
+#: ../../mod/admin.php:1285
msgid "Debugging"
msgstr "Feilsøking"
-#: ../../mod/admin.php:1312
+#: ../../mod/admin.php:1286
msgid "Log file"
msgstr "Loggfil"
-#: ../../mod/admin.php:1312
+#: ../../mod/admin.php:1286
msgid ""
"Must be writable by web server. Relative to your Red top-level directory."
msgstr "Må kunne skrives til av webtjenesten. Relativ til din Red sin toppnivåkatalog."
-#: ../../mod/admin.php:1313
+#: ../../mod/admin.php:1287
msgid "Log level"
msgstr "Loggnivå"
-#: ../../mod/thing.php:98
-msgid "Thing updated"
-msgstr "Tingen er oppdatert"
-
-#: ../../mod/thing.php:158
-msgid "Object store: failed"
-msgstr "Objektlagring: mislyktes"
-
-#: ../../mod/thing.php:162
-msgid "Thing added"
-msgstr "Ting lagt til"
-
-#: ../../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:234
-msgid "Show Thing"
-msgstr "Vis ting"
-
-#: ../../mod/thing.php:241
-msgid "item not found."
-msgstr "element ble ikke funnet."
-
-#: ../../mod/thing.php:269
-msgid "Edit Thing"
-msgstr "Endre ting"
+#: ../../mod/admin.php:1334
+msgid "New Profile Field"
+msgstr "Nytt profilfelt"
-#: ../../mod/thing.php:271 ../../mod/thing.php:318
-msgid "Select a profile"
-msgstr "Velg en profil"
+#: ../../mod/admin.php:1335 ../../mod/admin.php:1356
+msgid "Field nickname"
+msgstr "Feltets kallenavn"
-#: ../../mod/thing.php:273 ../../mod/thing.php:320
-msgid "Select a category of stuff. e.g. I ______ something"
-msgstr "Velg en kategori med ting, for eksempel l_____ noe"
+#: ../../mod/admin.php:1335 ../../mod/admin.php:1356
+msgid "System name of field"
+msgstr "Systemnavnet til feltet"
-#: ../../mod/thing.php:275 ../../mod/thing.php:321
-msgid "Post an activity"
-msgstr "Legg inn en aktivitet"
+#: ../../mod/admin.php:1336 ../../mod/admin.php:1357
+msgid "Input type"
+msgstr "Inndata-type"
-#: ../../mod/thing.php:275 ../../mod/thing.php:321
-msgid "Only sends to viewers of the applicable profile"
-msgstr "Sender bare til seere av den aktuelle profilen"
+#: ../../mod/admin.php:1337 ../../mod/admin.php:1358
+msgid "Field Name"
+msgstr "Feltnavn"
-#: ../../mod/thing.php:277 ../../mod/thing.php:323
-msgid "Name of thing e.g. something"
-msgstr "Navn på ting for eksempel noe"
+#: ../../mod/admin.php:1337 ../../mod/admin.php:1358
+msgid "Label on profile pages"
+msgstr "Merkelapp på profilsider"
-#: ../../mod/thing.php:279 ../../mod/thing.php:324
-msgid "URL of thing (optional)"
-msgstr "URL til ting (valgfritt)"
+#: ../../mod/admin.php:1338 ../../mod/admin.php:1359
+msgid "Help text"
+msgstr "Hjelpetekst"
-#: ../../mod/thing.php:281 ../../mod/thing.php:325
-msgid "URL for photo of thing (optional)"
-msgstr "URL til bilde av ting (valgfritt)"
+#: ../../mod/admin.php:1338 ../../mod/admin.php:1359
+msgid "Additional info (optional)"
+msgstr "Tilleggsinformasjon (valgfritt)"
-#: ../../mod/thing.php:316
-msgid "Add Thing to your Profile"
-msgstr "Legg til ting i din profil"
+#: ../../mod/admin.php:1349
+msgid "Field definition not found"
+msgstr "Feltdefinisjonen ble ikke funnet"
-#: ../../mod/import.php:36
-msgid "Nothing to import."
-msgstr "Ingenting å importere."
+#: ../../mod/admin.php:1355
+msgid "Edit Profile Field"
+msgstr "Endre profilfelt"
-#: ../../mod/import.php:58
-msgid "Unable to download data from old server"
-msgstr "Ikke i stand til å laste ned data fra gammel tjener"
+#: ../../mod/item.php:159
+msgid "Unable to locate original post."
+msgstr "Ikke i stand til å finne opprinnelig innlegg."
-#: ../../mod/import.php:64
-msgid "Imported file is empty."
-msgstr "Importert fil er tom."
+#: ../../mod/item.php:418
+msgid "Empty post discarded."
+msgstr "Tomt innlegg forkastet."
-#: ../../mod/import.php:88
-msgid ""
-"Cannot create a duplicate channel identifier on this system. Import failed."
-msgstr "Kan ikke lage en kopi av kanal-identifikatoren på dette systemet. Import mislyktes."
+#: ../../mod/item.php:460
+msgid "Executable content type not permitted to this channel."
+msgstr "Kjørbar innholdstype er ikke tillat for denne kanalen."
-#: ../../mod/import.php:106
-msgid "Channel clone failed. Import failed."
-msgstr "Kanalkloning mislyktes. Import mislyktes."
+#: ../../mod/item.php:898
+msgid "System error. Post not saved."
+msgstr "Systemfeil. Innlegg ble ikke lagret."
-#: ../../mod/import.php:116
-msgid "Cloned channel not found. Import failed."
-msgstr "Klonet kanal ble ikke funnet. Import mislyktes."
+#: ../../mod/item.php:1373
+#, php-format
+msgid "You have reached your limit of %1$.0f top level posts."
+msgstr "Du har nådd din grense på %1$.0f startinnlegg."
-#: ../../mod/import.php:364
-msgid "Import completed."
-msgstr "Import ferdig."
+#: ../../mod/item.php:1379
+#, php-format
+msgid "You have reached your limit of %1$.0f webpages."
+msgstr "Du har nådd din grense på %1$.0f websider."
-#: ../../mod/import.php:377
-msgid "You must be logged in to use this feature."
-msgstr "Du må være innlogget for å bruke denne funksjonen."
+#: ../../mod/like.php:15
+msgid "Like/Dislike"
+msgstr "Liker/Liker ikke"
-#: ../../mod/import.php:382
-msgid "Import Channel"
-msgstr "Importer kanal"
+#: ../../mod/like.php:20
+msgid "This action is restricted to members."
+msgstr "Denne handlingen er begrenset til medlemmer."
-#: ../../mod/import.php:383
+#: ../../mod/like.php:21
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 "Bruk dette skjemaet til å importere en eksisterende kanal fra en annen tjener/hub. Du kan hente kanalidentiteten fra den gamle tjeneren/hubben via nettverket eller bruke en eksportert fil. Bare identiteten og forbindelser/relasjoner vil bli importert. Importering av innhold er ennå ikke tilgjengelig."
+"Please <a href=\"rmagic\">login with your RedMatrix ID</a> or <a "
+"href=\"register\">register as a new RedMatrix member</a> to continue."
+msgstr "Vennligst <a href=\"rmagic\">logg inn med din RedMatrix ID</a> eller <a href=\"register\">registrer deg som et nytt RedMatrix-medlem</a> for å fortsette"
-#: ../../mod/import.php:384
-msgid "File to Upload"
-msgstr "Fil som skal lastes opp"
+#: ../../mod/like.php:77 ../../mod/like.php:104 ../../mod/like.php:142
+msgid "Invalid request."
+msgstr "Ugyldig forespørsel."
-#: ../../mod/import.php:385
-msgid "Or provide the old server/hub details"
-msgstr "Eller oppgi detaljene fra den gamle tjeneren/hub-en"
+#: ../../mod/like.php:119
+msgid "thing"
+msgstr "ting"
-#: ../../mod/import.php:386
-msgid "Your old identity address (xyz@example.com)"
-msgstr "Din gamle identitetsadresse (xyz@example.com)"
+#: ../../mod/like.php:165
+msgid "Channel unavailable."
+msgstr "Kanalen er utilgjengelig."
-#: ../../mod/import.php:387
-msgid "Your old login email address"
-msgstr "Din gamle innloggings e-postadresse"
+#: ../../mod/like.php:204
+msgid "Previous action reversed."
+msgstr "Forrige handling er omgjort."
-#: ../../mod/import.php:388
-msgid "Your old login password"
-msgstr "Ditt gamle innloggingspassord"
+#: ../../mod/like.php:430
+msgid "Action completed."
+msgstr "Handling ferdig."
-#: ../../mod/import.php:389
-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 "Enten du tar det ene eller det andre valget, vennligst angi om du vil at denne hubben skal være din nye primære adresse, eller om din gamle plassering skal fortsette å ha denne rollen. Du kan lage innlegg fra den ene eller den andre plasseringen, men bare en av dem kan markeres som den primære plasseringen for filer, bilder og media."
-
-#: ../../mod/import.php:390
-msgid "Make this hub my primary location"
-msgstr "Gjør dette nettstedet til min primære plassering"
+#: ../../mod/like.php:431
+msgid "Thank you."
+msgstr "Tusen takk."
#: ../../mod/invite.php:25
msgid "Total invitation limit exceeded."
@@ -6797,94 +7524,88 @@ msgstr[1] "%d meldinger sendt."
msgid "You have no more invitations available"
msgstr "Du har ikke flere invitasjoner tilgjengelig"
-#: ../../mod/invite.php:141
+#: ../../mod/invite.php:129
msgid "Send invitations"
msgstr "Send invitasjoner"
-#: ../../mod/invite.php:142
+#: ../../mod/invite.php:130
msgid "Enter email addresses, one per line:"
msgstr "Skriv e-postadresser, en per linje:"
-#: ../../mod/invite.php:143 ../../mod/mail.php:216 ../../mod/mail.php:328
+#: ../../mod/invite.php:131 ../../mod/mail.php:228 ../../mod/mail.php:341
msgid "Your message:"
msgstr "Din melding:"
-#: ../../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 er hjertelig invitert til å være med meg og noen andre nære venner i Red Matrix - et nytt og revolusjonerende desentralisert kommunikasjons- og informasjonsverktøy."
+#: ../../mod/invite.php:132
+msgid "Please join my community on RedMatrix."
+msgstr "Du er velkommen til å bli med i mitt fellesskap på RedMatrix."
-#: ../../mod/invite.php:146
-msgid "You will need to supply this invitation code: $invite_code"
-msgstr "Du må oppgi denne invitasjonskoden: $invite_code"
+#: ../../mod/invite.php:134
+msgid "You will need to supply this invitation code: "
+msgstr "Du må oppgi denne invitasjonskoden:"
-#: ../../mod/invite.php:147
-msgid "Please visit my channel at"
-msgstr "Vennligst besøk min kanal hos"
+#: ../../mod/invite.php:135
+msgid "1. Register at any RedMatrix location (they are all inter-connected)"
+msgstr "1. Registrer ved enhver RedMatrix-lokasjon (de er alle forbundet med hverandre)"
-#: ../../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 "Når du har registrert (på et HVILKET SOM HELST Red Matrix-nettsted - de er alle forbundet med hverandre), vennligst opprett kobling med min Red Matrix-kanaladresse:"
+#: ../../mod/invite.php:137
+msgid "2. Enter my RedMatrix network address into the site searchbar."
+msgstr "2. Skriv inn min RedMatrix-adresse i nettstedets søkefelt."
-#: ../../mod/invite.php:153
-msgid "Click the [Register] link on the following page to join."
-msgstr "Klikk på [Registering]-lenken på følgende side for å bli med."
+#: ../../mod/invite.php:138
+msgid "or visit "
+msgstr "eller besøk"
-#: ../../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 "For mer informasjon om Red Matrix-prosjektet og hvorfor det har potensialet til å forandre Internett som vi kjenner det, vær vennlig å besøke http://getzot.com"
+#: ../../mod/invite.php:140
+msgid "3. Click [Connect]"
+msgstr "3. Klikk [Forbindelse]"
-#: ../../mod/item.php:147
-msgid "Unable to locate original post."
-msgstr "Ikke i stand til å finne opprinnelig innlegg."
+#: ../../mod/locs.php:19 ../../mod/locs.php:46
+msgid "Location not found."
+msgstr "Plassering er ikke funnet."
-#: ../../mod/item.php:372
-msgid "Empty post discarded."
-msgstr "Tomt innlegg forkastet."
+#: ../../mod/locs.php:50
+msgid "Primary location cannot be removed."
+msgstr "Primær plassering kan ikke fjernes."
-#: ../../mod/item.php:414
-msgid "Executable content type not permitted to this channel."
-msgstr "Kjørbar innholdstype er ikke tillat for denne kanalen."
+#: ../../mod/locs.php:82
+msgid "No locations found."
+msgstr "Ingen plasseringer ble funnet."
-#: ../../mod/item.php:828
-msgid "System error. Post not saved."
-msgstr "Systemfeil. Innlegg ble ikke lagret."
+#: ../../mod/locs.php:95
+msgid "Manage Channel Locations"
+msgstr "HÃ¥ndter kanalplasseringer"
-#: ../../mod/item.php:1271
-#, php-format
-msgid "You have reached your limit of %1$.0f top level posts."
-msgstr "Du har nådd din grense på %1$.0f startinnlegg."
+#: ../../mod/locs.php:96
+msgid "Location (address)"
+msgstr "Plassering (adresse)"
-#: ../../mod/item.php:1277
-#, php-format
-msgid "You have reached your limit of %1$.0f webpages."
-msgstr "Du har nådd din grense på %1$.0f websider."
+#: ../../mod/locs.php:97
+msgid "Primary Location"
+msgstr "Hovedplassering"
+
+#: ../../mod/locs.php:98
+msgid "Drop location"
+msgstr "Slett plassering"
#: ../../mod/update_channel.php:43 ../../mod/update_display.php:25
#: ../../mod/update_network.php:23 ../../mod/update_search.php:46
msgid "[Embedded content - reload page to view]"
msgstr "[Innebygget innhold - last siden på nytt for å se]"
-#: ../../mod/layouts.php:62
+#: ../../mod/layouts.php:110
msgid "Help with this feature"
msgstr "Hjelp med denne funksjonen"
-#: ../../mod/layouts.php:84
+#: ../../mod/layouts.php:130
msgid "Layout Name"
msgstr "Layout-navn"
-#: ../../mod/lockview.php:30 ../../mod/lockview.php:36
+#: ../../mod/lockview.php:31
msgid "Remote privacy information not available."
msgstr "Ekstern personverninformasjon er ikke tilgjengelig."
-#: ../../mod/lockview.php:45
+#: ../../mod/lockview.php:52
msgid "Visible to:"
msgstr "Synlig for:"
@@ -6892,88 +7613,15 @@ msgstr "Synlig for:"
msgid "No connections."
msgstr "Ingen forbindelser."
-#: ../../mod/viewconnections.php:70
+#: ../../mod/viewconnections.php:71
#, php-format
msgid "Visit %s's profile [%s]"
msgstr "Besøk %s sin profil [%s]"
-#: ../../mod/viewconnections.php:85
+#: ../../mod/viewconnections.php:86
msgid "View Connnections"
msgstr "Vis forbindelser"
-#: ../../mod/lostpass.php:15
-msgid "No valid account found."
-msgstr "Ingen gyldig konto funnet."
-
-#: ../../mod/lostpass.php:29
-msgid "Password reset request issued. Check your email."
-msgstr "Forespørsel om å tilbakestille passord er mottatt. Sjekk e-posten din."
-
-#: ../../mod/lostpass.php:35 ../../mod/lostpass.php:102
-#, php-format
-msgid "Site Member (%s)"
-msgstr "Nettstedsmedlem (%s)"
-
-#: ../../mod/lostpass.php:40
-#, php-format
-msgid "Password reset requested at %s"
-msgstr "Forespurt om å tilbakestille passord hos %s"
-
-#: ../../mod/lostpass.php:63
-msgid ""
-"Request could not be verified. (You may have previously submitted it.) "
-"Password reset failed."
-msgstr "Forespørsel kunne ikke bekreftes. (Du kan ha sendt den inn tidligere.) Tilbakestilling av passord mislyktes."
-
-#: ../../mod/lostpass.php:85 ../../boot.php:1467
-msgid "Password Reset"
-msgstr "Tilbakestill passord"
-
-#: ../../mod/lostpass.php:86
-msgid "Your password has been reset as requested."
-msgstr "Ditt passord har blitt tilbakestilt som forespurt."
-
-#: ../../mod/lostpass.php:87
-msgid "Your new password is"
-msgstr "Ditt nye passord er"
-
-#: ../../mod/lostpass.php:88
-msgid "Save or copy your new password - and then"
-msgstr "Lagre eller kopier ditt nye passord, og deretter kan du"
-
-#: ../../mod/lostpass.php:89
-msgid "click here to login"
-msgstr "klikke her for å logge inn"
-
-#: ../../mod/lostpass.php:90
-msgid ""
-"Your password may be changed from the <em>Settings</em> page after "
-"successful login."
-msgstr "Ditt passord kan endres på siden <em>Innstillinger</em> etter vellykket innlogging."
-
-#: ../../mod/lostpass.php:107
-#, php-format
-msgid "Your password has changed at %s"
-msgstr "Ditt passord er endret hos %s"
-
-#: ../../mod/lostpass.php:122
-msgid "Forgot your Password?"
-msgstr "Glemt passord ditt?"
-
-#: ../../mod/lostpass.php:123
-msgid ""
-"Enter your email address and submit to have your password reset. Then check "
-"your email for further instructions."
-msgstr "Skriv e-postadressen din og send inn for å tilbakestille passordet ditt. Sjekk deretter din e-post for videre instruksjoner."
-
-#: ../../mod/lostpass.php:124
-msgid "Email Address"
-msgstr "E-postadresse"
-
-#: ../../mod/lostpass.php:125
-msgid "Reset"
-msgstr "Tilbakestill"
-
#: ../../mod/magic.php:70
msgid "Hub not found."
msgstr "Hubben ble ikke funnet."
@@ -7002,93 +7650,64 @@ msgstr "Kan ikke bekrefte forespurt kanal."
msgid "Selected channel has private message restrictions. Send failed."
msgstr "Valgt kanal har restriksjoner for private meldinger. Sending feilet."
-#: ../../mod/mail.php:121 ../../mod/message.php:31
-msgid "Messages"
-msgstr "Meldinger"
-
-#: ../../mod/mail.php:132
+#: ../../mod/mail.php:135
msgid "Message deleted."
msgstr "Melding slettet."
-#: ../../mod/mail.php:149
+#: ../../mod/mail.php:152
msgid "Message recalled."
msgstr "Innlegg tilbakekalt."
-#: ../../mod/mail.php:206
+#: ../../mod/mail.php:218
msgid "Send Private Message"
msgstr "Send privat melding"
-#: ../../mod/mail.php:207 ../../mod/mail.php:323
+#: ../../mod/mail.php:219 ../../mod/mail.php:336
msgid "To:"
msgstr "Til:"
-#: ../../mod/mail.php:212 ../../mod/mail.php:325
+#: ../../mod/mail.php:224 ../../mod/mail.php:338
msgid "Subject:"
msgstr "Emne:"
-#: ../../mod/mail.php:249
+#: ../../mod/mail.php:235
+msgid "Send"
+msgstr "Send"
+
+#: ../../mod/mail.php:262
msgid "Message not found."
msgstr "Melding ikke funnet."
-#: ../../mod/mail.php:292 ../../mod/message.php:72
+#: ../../mod/mail.php:305
msgid "Delete message"
msgstr "Slett melding"
-#: ../../mod/mail.php:293
+#: ../../mod/mail.php:306
msgid "Recall message"
msgstr "Tilbakekall innlegg"
-#: ../../mod/mail.php:295
+#: ../../mod/mail.php:308
msgid "Message has been recalled."
msgstr "Innlegget har blitt tilbakekalt."
-#: ../../mod/mail.php:312
+#: ../../mod/mail.php:325
msgid "Private Conversation"
msgstr "Privat samtale"
-#: ../../mod/mail.php:316
+#: ../../mod/mail.php:329 ../../mod/message.php:72
msgid "Delete conversation"
msgstr "Slett samtale"
-#: ../../mod/mail.php:318
+#: ../../mod/mail.php:331
msgid ""
"No secure communications available. You <strong>may</strong> be able to "
"respond from the sender's profile page."
msgstr "Ingen sikret kommunikasjon tilgjengelig. Du kan <strong>muligens</strong> greie å svare via senderens profilside."
-#: ../../mod/mail.php:322
+#: ../../mod/mail.php:335
msgid "Send Reply"
msgstr "Send svar"
-#: ../../mod/manage.php:64
-#, php-format
-msgid "You have created %1$.0f of %2$.0f allowed channels."
-msgstr "Du har laget %1$.0f av %2$.0f tillatte kanaler."
-
-#: ../../mod/manage.php:72
-msgid "Create a new channel"
-msgstr "Lag en ny kanal"
-
-#: ../../mod/manage.php:77
-msgid "Channel Manager"
-msgstr "Kanalstyring"
-
-#: ../../mod/manage.php:78
-msgid "Current Channel"
-msgstr "Gjeldende kanal"
-
-#: ../../mod/manage.php:80
-msgid "Attach to one of your channels by selecting it."
-msgstr "Bytt til en av dine kanaler ved å velge den."
-
-#: ../../mod/manage.php:81
-msgid "Default Channel"
-msgstr "Standardkanal"
-
-#: ../../mod/manage.php:82
-msgid "Make Default"
-msgstr "Gjør til standard"
-
#: ../../mod/wall_upload.php:34
msgid "Wall Photos"
msgstr "Veggbilder"
@@ -7109,87 +7728,91 @@ msgstr "er interessert i:"
msgid "No matches"
msgstr "Ingen treff"
-#: ../../mod/menu.php:21
+#: ../../mod/menu.php:31
msgid "Menu updated."
msgstr "Menyen er oppdatert."
-#: ../../mod/menu.php:25
+#: ../../mod/menu.php:35
msgid "Unable to update menu."
msgstr "Ikke i stand til å oppdatere meny."
-#: ../../mod/menu.php:30
+#: ../../mod/menu.php:40
msgid "Menu created."
msgstr "Meny laget."
-#: ../../mod/menu.php:34
+#: ../../mod/menu.php:44
msgid "Unable to create menu."
msgstr "Ikke i stand til å lage meny."
-#: ../../mod/menu.php:57
+#: ../../mod/menu.php:76
msgid "Manage Menus"
msgstr "HÃ¥ndtere menyer"
-#: ../../mod/menu.php:60
+#: ../../mod/menu.php:79
msgid "Drop"
msgstr "Slett"
-#: ../../mod/menu.php:62
+#: ../../mod/menu.php:81
+msgid "Bookmarks allowed"
+msgstr "Bokmerker tillatt"
+
+#: ../../mod/menu.php:82
msgid "Create a new menu"
msgstr "Lag en ny meny"
-#: ../../mod/menu.php:63
+#: ../../mod/menu.php:83
msgid "Delete this menu"
msgstr "Slett denne menyen"
-#: ../../mod/menu.php:64 ../../mod/menu.php:109
+#: ../../mod/menu.php:84 ../../mod/menu.php:125
msgid "Edit menu contents"
msgstr "Endre menyinnholdet"
-#: ../../mod/menu.php:65
+#: ../../mod/menu.php:85
msgid "Edit this menu"
msgstr "Endre denne menyen"
-#: ../../mod/menu.php:80
+#: ../../mod/menu.php:96
msgid "New Menu"
msgstr "Ny meny"
-#: ../../mod/menu.php:81 ../../mod/menu.php:110
+#: ../../mod/menu.php:97 ../../mod/menu.php:126
msgid "Menu name"
msgstr "Menynavn"
-#: ../../mod/menu.php:81 ../../mod/menu.php:110
+#: ../../mod/menu.php:97 ../../mod/menu.php:126
msgid "Must be unique, only seen by you"
msgstr "Må være unik, ses bare av deg"
-#: ../../mod/menu.php:82 ../../mod/menu.php:111
+#: ../../mod/menu.php:98 ../../mod/menu.php:127
msgid "Menu title"
msgstr "Menytittel"
-#: ../../mod/menu.php:82 ../../mod/menu.php:111
+#: ../../mod/menu.php:98 ../../mod/menu.php:127
msgid "Menu title as seen by others"
msgstr "Menytittelen andre ser"
-#: ../../mod/menu.php:83 ../../mod/menu.php:112
+#: ../../mod/menu.php:99 ../../mod/menu.php:128
msgid "Allow bookmarks"
msgstr "Tillat bokmerker"
-#: ../../mod/menu.php:83 ../../mod/menu.php:112
+#: ../../mod/menu.php:99 ../../mod/menu.php:128
msgid "Menu may be used to store saved bookmarks"
msgstr "Menyen kan brukes til å lagre lagrede bokmerker"
-#: ../../mod/menu.php:98
+#: ../../mod/menu.php:114
msgid "Menu deleted."
msgstr "Meny slettet."
-#: ../../mod/menu.php:100
+#: ../../mod/menu.php:116
msgid "Menu could not be deleted."
msgstr "Menyen kunne ikke bli slettet."
-#: ../../mod/menu.php:106
+#: ../../mod/menu.php:122
msgid "Edit Menu"
msgstr "Endre meny"
-#: ../../mod/menu.php:108
+#: ../../mod/menu.php:124
msgid "Add or remove entries to this menu"
msgstr "Legg til eller fjern punkter i denne menyen"
@@ -7205,11 +7828,11 @@ msgstr "Ingen meldinger."
msgid "D, d M Y - g:i A"
msgstr "D, d M Y - g:i A"
-#: ../../mod/new_channel.php:107
+#: ../../mod/new_channel.php:109
msgid "Add a Channel"
msgstr "Legg til en kanal"
-#: ../../mod/new_channel.php:108
+#: ../../mod/new_channel.php:110
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, "
@@ -7217,151 +7840,42 @@ msgid ""
"service provider allows."
msgstr "En kanal er din egen samling av relaterte web-sider. En kanal kan brukes til å samle sosiale nettverksprofiler, blogger, samtalegrupper og forum, kjendissider og mye mer. Du kan lage så mange kanaler som din tjenestetilbyder tillater."
-#: ../../mod/new_channel.php:111
+#: ../../mod/new_channel.php:113
msgid "Examples: \"Bob Jameson\", \"Lisa and her Horses\", \"Soccer\", \"Aviation Group\" "
msgstr "Eksempel: \"Ola Nordmann\", \"Lisa og hestene hennes\", \"Fotball\", \"Sykkelgruppa\""
-#: ../../mod/new_channel.php:112
+#: ../../mod/new_channel.php:114
msgid "Choose a short nickname"
msgstr "Velg et kort kallenavn"
-#: ../../mod/new_channel.php:113
+#: ../../mod/new_channel.php:115
msgid ""
"Your nickname will be used to create an easily remembered channel address "
"(like an email address) which you can share with others."
msgstr "Ditt kallenavn brukes til å lage en kanaladresse som er enkel å huske (minner om en e-postadresse) og som du kan dele med andre."
-#: ../../mod/new_channel.php:114
+#: ../../mod/new_channel.php:116
msgid "Or <a href=\"import\">import an existing channel</a> from another location"
msgstr "Eller <a href=\"import\">importerer en eksisterende kanal</a> fra et annet sted."
-#: ../../mod/photos.php:77
-msgid "Page owner information could not be retrieved."
-msgstr "Informasjon om sideeier kunne ikke hentes."
-
-#: ../../mod/photos.php:97
-msgid "Album not found."
-msgstr "Albumet ble ikke funnet."
-
-#: ../../mod/photos.php:119 ../../mod/photos.php:669
-msgid "Delete Album"
-msgstr "Slett album"
-
-#: ../../mod/photos.php:159 ../../mod/photos.php:952
-msgid "Delete Photo"
-msgstr "Slett bilde"
-
-#: ../../mod/photos.php:453
-msgid "No photos selected"
-msgstr "Ingen bilder valgt"
-
-#: ../../mod/photos.php:500
-msgid "Access to this item is restricted."
-msgstr "Tilgang til dette elementet er begrenset."
-
-#: ../../mod/photos.php:574
-#, php-format
-msgid "You have used %1$.2f Mbytes of %2$.2f Mbytes photo storage."
-msgstr "Du har brukt %1$.2f Mbytes av %2$.2f Mbytes i bildelageret."
-
-#: ../../mod/photos.php:577
-#, php-format
-msgid "You have used %1$.2f Mbytes of photo storage."
-msgstr "Du har brukt %1$.2f Mbytes av bildelageret."
-
-#: ../../mod/photos.php:596
-msgid "Upload Photos"
-msgstr "Last opp bilder"
-
-#: ../../mod/photos.php:600 ../../mod/photos.php:664
-msgid "New album name: "
-msgstr "Nytt albumnavn:"
-
-#: ../../mod/photos.php:601
-msgid "or existing album name: "
-msgstr "eller eksisterende albumnavn:"
-
-#: ../../mod/photos.php:602
-msgid "Do not show a status post for this upload"
-msgstr "Ikke lag et statusinnlegg for denne oppdateringen"
+#: ../../mod/new_channel.php:118
+msgid "Channel Type"
+msgstr "Kanaltype"
-#: ../../mod/photos.php:653 ../../mod/photos.php:675 ../../mod/photos.php:1124
-#: ../../mod/photos.php:1139
-msgid "Contact Photos"
-msgstr "Kontaktbilder"
-
-#: ../../mod/photos.php:679
-msgid "Edit Album"
-msgstr "Endre album"
-
-#: ../../mod/photos.php:685
-msgid "Show Newest First"
-msgstr "Vis nyeste først"
-
-#: ../../mod/photos.php:687
-msgid "Show Oldest First"
-msgstr "Vis eldste først"
-
-#: ../../mod/photos.php:730 ../../mod/photos.php:1171
-msgid "View Photo"
-msgstr "Vis foto"
-
-#: ../../mod/photos.php:776
-msgid "Permission denied. Access to this item may be restricted."
-msgstr "Tillatelse avvist. Tilgang til dette elementet kan være begrenset."
-
-#: ../../mod/photos.php:778
-msgid "Photo not available"
-msgstr "Bilde er utilgjengelig"
-
-#: ../../mod/photos.php:838
-msgid "Use as profile photo"
-msgstr "Bruk som profilbilde"
-
-#: ../../mod/photos.php:862
-msgid "View Full Size"
-msgstr "Vis i full størrelse"
-
-#: ../../mod/photos.php:936
-msgid "Edit photo"
-msgstr "Endre bilde"
-
-#: ../../mod/photos.php:938
-msgid "Rotate CW (right)"
-msgstr "Roter med klokka (mot høyre)"
-
-#: ../../mod/photos.php:939
-msgid "Rotate CCW (left)"
-msgstr "Roter mot klokka (venstre)"
-
-#: ../../mod/photos.php:941
-msgid "New album name"
-msgstr "Nytt albumnavn"
-
-#: ../../mod/photos.php:944
-msgid "Caption"
-msgstr "Overskrift"
-
-#: ../../mod/photos.php:946
-msgid "Add a Tag"
-msgstr "Legg til merkelapp"
-
-#: ../../mod/photos.php:949
+#: ../../mod/new_channel.php:119
msgid ""
-"Example: @bob, @Barbara_Jensen, @jim@example.com, #California, #camping"
-msgstr "Eksempel: @ola, @Kari_Nordmann, @jim@example.com, #Norge, #telttur"
+"Please choose a channel type (such as social networking or community forum) "
+"and privacy requirements so we can select the best permissions for you"
+msgstr "Vennligst velg en kanaltype (for eksempel sosialt nettverk eller forum for felleskap) og krav til personvern slik at vi kan velge de beste tillatelsene for deg."
-#: ../../mod/photos.php:1102
-msgid "In This Photo:"
-msgstr "I dette bildet:"
-
-#: ../../mod/photos.php:1177
-msgid "View Album"
-msgstr "Vis album"
+#: ../../mod/home.php:46
+msgid "Red Matrix - &quot;The Network&quot;"
+msgstr "Red Matrix - &quot;Nettverket&quot;"
-#: ../../mod/photos.php:1186
-msgid "Recent Photos"
-msgstr "Nye bilder"
+#: ../../mod/home.php:101
+#, php-format
+msgid "Welcome to %s"
+msgstr "Velkommen til %s"
#: ../../mod/notifications.php:26
msgid "Invalid request identifier."
@@ -7379,6 +7893,14 @@ msgstr "Ingen flere systemvarsler."
msgid "System Notifications"
msgstr "Systemvarsler"
+#: ../../mod/xchan.php:6
+msgid "Xchan Lookup"
+msgstr "Xchan oppslag"
+
+#: ../../mod/xchan.php:9
+msgid "Lookup xchan beginning with (or webbie): "
+msgstr "Slå opp xchan som begynner med (eller webbie):"
+
#: ../../mod/oexchange.php:23
msgid "Unable to find your hub."
msgstr "Ikke i stand til å finne hubben din."
@@ -7391,10 +7913,6 @@ msgstr "Innlegg vellykket."
msgid "invalid target signature"
msgstr "MÃ¥lets signatur er ugyldig"
-#: ../../mod/openid.php:26
-msgid "OpenID protocol error. No ID returned."
-msgstr "OpenID protokollfeil. Ingen ID ble returnert."
-
#: ../../mod/appman.php:28 ../../mod/appman.php:44
msgid "App installed."
msgstr "App installert."
@@ -7443,10 +7961,50 @@ msgstr "Pris på app"
msgid "Location (URL) to purchase app"
msgstr "Plassering (URL) for å kjøpe app"
+#: ../../mod/poll.php:64
+msgid "Poll"
+msgstr "Spørring"
+
+#: ../../mod/poll.php:69
+msgid "View Results"
+msgstr "Vis resultater"
+
+#: ../../mod/removeaccount.php:30
+msgid ""
+"Account removals are not allowed within 48 hours of changing the account "
+"password."
+msgstr "Sletting av kontoer er ikke tillatt innen 48 timer etter endring av kontopassordet."
+
+#: ../../mod/removeaccount.php:57
+msgid "Remove This Account"
+msgstr "Slett denne kontoen"
+
+#: ../../mod/removeaccount.php:58
+msgid ""
+"This will completely remove this account including all its channels from the"
+" network. Once this has been done it is not recoverable."
+msgstr "Dette vil fullstendig slette denne kontoen inkludert alle dens kanaler fra nettverket. NÃ¥r dette er gjort kan det ikke angres."
+
+#: ../../mod/removeaccount.php:60
+msgid ""
+"Remove this account, all its channels and all its channel clones from the "
+"network"
+msgstr "Slett denne kontoen, alle dens kanaler og alle dens kanalkloner fra dette nettverket"
+
+#: ../../mod/removeaccount.php:60
+msgid ""
+"By default only the instances of the channels located on this hub will be "
+"removed from the network"
+msgstr "Som standard vil bare forekomster av kanalene lokalisert på denne hubben bli slettet fra nettverket"
+
+#: ../../mod/service_limits.php:19
+msgid "No service class restrictions found."
+msgstr "Ingen restriksjoner er funnet i tjenesteklasse."
+
#: ../../view/theme/apw/php/config.php:202
#: ../../view/theme/apw/php/config.php:236
msgid "Schema Default"
-msgstr "Standardskjema"
+msgstr "Standard skjema"
#: ../../view/theme/apw/php/config.php:203
msgid "Sans-Serif"
@@ -7479,7 +8037,7 @@ msgstr "Angi skrifttype"
#: ../../view/theme/apw/php/config.php:263
msgid "Set iconset"
-msgstr "Angi ikonsett"
+msgstr "Angi ikonutvalg"
#: ../../view/theme/apw/php/config.php:264
msgid "Set big shadow size, default 15px 15px 15px"
@@ -7490,12 +8048,12 @@ msgid "Set small shadow size, default 5px 5px 5px"
msgstr "Angi liten skyggestørrelse, standard 5px 5px 5px"
#: ../../view/theme/apw/php/config.php:266
-msgid "Set shadow colour, default #000"
+msgid "Set shadow color, default #000"
msgstr "Angi skyggefarge, standard #000"
#: ../../view/theme/apw/php/config.php:267
msgid "Set radius size, default 5px"
-msgstr "Angi størrelsen på radius, standard 5px"
+msgstr "Angi radiusstørrelse, standard 5px"
#: ../../view/theme/apw/php/config.php:268
msgid "Set line-height for posts and comments"
@@ -7510,39 +8068,39 @@ msgid "Set background attachment"
msgstr "Angi bakgrunnsvedlegg"
#: ../../view/theme/apw/php/config.php:271
-msgid "Set background colour"
-msgstr "Angi bakgrunnsbilde"
+msgid "Set background color"
+msgstr "Angi bakgrunnsfarge"
#: ../../view/theme/apw/php/config.php:272
msgid "Set section background image"
msgstr "Angi seksjonens bakgrunnsbilde"
#: ../../view/theme/apw/php/config.php:273
-msgid "Set section background colour"
+msgid "Set section background color"
msgstr "Angi seksjonens bakgrunnsfarge"
#: ../../view/theme/apw/php/config.php:274
-msgid "Set colour of items - use hex"
+msgid "Set color of items - use hex"
msgstr "Angi fargen til elementer - bruk hex"
#: ../../view/theme/apw/php/config.php:275
-msgid "Set colour of links - use hex"
+msgid "Set color of links - use hex"
msgstr "Angi fargen til lenker - bruk hex"
#: ../../view/theme/apw/php/config.php:276
msgid "Set max-width for items. Default 400px"
-msgstr "Angi største bredde for elementer. Standard 400px."
+msgstr "Angi maksimal bredde for elementer. Standard 400px"
#: ../../view/theme/apw/php/config.php:277
msgid "Set min-width for items. Default 240px"
-msgstr "Angi minste bredde for elementer. Standard 240px."
+msgstr "Angi minimumsbredde for elementer. Standard 240px"
#: ../../view/theme/apw/php/config.php:278
msgid "Set the generic content wrapper width. Default 48%"
-msgstr "Angi bredden til den generelle innholdsinnpakningen. Standard 48%"
+msgstr "Angi den generelle bredden for innpakking av innhold. Standard 48%"
#: ../../view/theme/apw/php/config.php:279
-msgid "Set colour of fonts - use hex"
+msgid "Set color of fonts - use hex"
msgstr "Angi skriftfargen - bruk hex"
#: ../../view/theme/apw/php/config.php:280
@@ -7551,7 +8109,7 @@ msgstr "Angi størrelsen på bakgrunnselementet"
#: ../../view/theme/apw/php/config.php:281
msgid "Item opacity"
-msgstr "Elementets dekkevne"
+msgstr "Elementers dekkevne"
#: ../../view/theme/apw/php/config.php:282
msgid "Display post previews only"
@@ -7563,7 +8121,7 @@ msgstr "Vis sidestolpe på kanalsiden"
#: ../../view/theme/apw/php/config.php:284
msgid "Colour of the navigation bar"
-msgstr "Fargen til navigasjonslinjen"
+msgstr "Fargen på navigasjonslinjen"
#: ../../view/theme/apw/php/config.php:285
msgid "Item float"
@@ -7604,52 +8162,56 @@ msgstr "Topptekstbilde"
msgid "Header image only on profile pages"
msgstr "Topptekstbilde bare på profilsider"
+#: ../../view/theme/redbasic/php/config.php:84
+msgid "Light (Red Matrix default)"
+msgstr "Lys (Red Matrix standard)"
+
#: ../../view/theme/redbasic/php/config.php:104
msgid "Narrow navbar"
msgstr "Smal navigasjonslinje"
#: ../../view/theme/redbasic/php/config.php:105
-msgid "Navigation bar background colour"
+msgid "Navigation bar background color"
msgstr "Navigasjonslinjens bakgrunnsfarge"
#: ../../view/theme/redbasic/php/config.php:106
-msgid "Navigation bar gradient top colour"
+msgid "Navigation bar gradient top color"
msgstr "Navigasjonslinjens graderte toppfarge"
#: ../../view/theme/redbasic/php/config.php:107
-msgid "Navigation bar gradient bottom colour"
+msgid "Navigation bar gradient bottom color"
msgstr "Navigasjonslinjens graderte bunnfarge"
#: ../../view/theme/redbasic/php/config.php:108
-msgid "Navigation active button gradient top colour"
+msgid "Navigation active button gradient top color"
msgstr "Aktiv navigasjonsknapp sin graderte toppfarge"
#: ../../view/theme/redbasic/php/config.php:109
-msgid "Navigation active button gradient bottom colour"
+msgid "Navigation active button gradient bottom color"
msgstr "Aktiv navigasjonsknapp sin graderte bunnfarge"
#: ../../view/theme/redbasic/php/config.php:110
-msgid "Navigation bar border colour "
+msgid "Navigation bar border color "
msgstr "Navigasjonslinjens kantfarge"
#: ../../view/theme/redbasic/php/config.php:111
-msgid "Navigation bar icon colour "
+msgid "Navigation bar icon color "
msgstr "Navigasjonslinjens ikonfarge"
#: ../../view/theme/redbasic/php/config.php:112
-msgid "Navigation bar active icon colour "
+msgid "Navigation bar active icon color "
msgstr "Navigasjonslinjens aktive ikoners farge"
#: ../../view/theme/redbasic/php/config.php:113
-msgid "link colour"
+msgid "link color"
msgstr "lenkefarge"
#: ../../view/theme/redbasic/php/config.php:114
-msgid "Set font-colour for banner"
+msgid "Set font-color for banner"
msgstr "Angi skriftfargen for banneret"
#: ../../view/theme/redbasic/php/config.php:115
-msgid "Set the background colour"
+msgid "Set the background color"
msgstr "Angi bakgrunnsfargen"
#: ../../view/theme/redbasic/php/config.php:116
@@ -7657,15 +8219,15 @@ msgid "Set the background image"
msgstr "Angi bakgrunnsbilde"
#: ../../view/theme/redbasic/php/config.php:117
-msgid "Set the background colour of items"
+msgid "Set the background color of items"
msgstr "Angi bakgrunnsfargen til elementer"
#: ../../view/theme/redbasic/php/config.php:118
-msgid "Set the background colour of comments"
+msgid "Set the background color of comments"
msgstr "Angi bakgrunnsfargen til kommentarer"
#: ../../view/theme/redbasic/php/config.php:119
-msgid "Set the border colour of comments"
+msgid "Set the border color of comments"
msgstr "Angi kantfargen til kommentarer"
#: ../../view/theme/redbasic/php/config.php:120
@@ -7673,11 +8235,11 @@ msgid "Set the indent for comments"
msgstr "Angi innrykket til kommentarer"
#: ../../view/theme/redbasic/php/config.php:121
-msgid "Set the basic colour for item icons"
+msgid "Set the basic color for item icons"
msgstr "Angi grunnfargen for elementikoner"
#: ../../view/theme/redbasic/php/config.php:122
-msgid "Set the hover colour for item icons"
+msgid "Set the hover color for item icons"
msgstr "Angi fargen til elementikoner ved berøring"
#: ../../view/theme/redbasic/php/config.php:123
@@ -7685,7 +8247,7 @@ msgid "Set font-size for the entire application"
msgstr "Angi skriftstørrelsen for hele programmet"
#: ../../view/theme/redbasic/php/config.php:125
-msgid "Set font-colour for posts and comments"
+msgid "Set font-color for posts and comments"
msgstr "Angi skriftfargen for innlegg og kommentarer"
#: ../../view/theme/redbasic/php/config.php:126
@@ -7724,41 +8286,41 @@ msgstr "Slurvete fotoalbum"
msgid "Are you a clean desk or a messy desk person?"
msgstr "Er du en person med ryddig arbeidsbord eller et rotete arbeidsbord?"
-#: ../../boot.php:1265
+#: ../../boot.php:1293
#, php-format
msgid "Update %s failed. See error logs."
msgstr "Oppdatering %s mislyktes. Se feilloggen."
-#: ../../boot.php:1268
+#: ../../boot.php:1296
#, php-format
msgid "Update Error at %s"
msgstr "Oppdateringsfeil ved %s"
-#: ../../boot.php:1432
+#: ../../boot.php:1463
msgid ""
"Create an account to access services and applications within the Red Matrix"
msgstr "Lag en konto for å få tilgang til tjenester og programmer i Red Matrix"
-#: ../../boot.php:1460
+#: ../../boot.php:1489
msgid "Password"
msgstr "Passord"
-#: ../../boot.php:1461
+#: ../../boot.php:1490
msgid "Remember me"
msgstr "Husk meg"
-#: ../../boot.php:1466
+#: ../../boot.php:1493
msgid "Forgot your password?"
msgstr "Glemt passordet ditt?"
-#: ../../boot.php:1531
+#: ../../boot.php:1567
msgid "permission denied"
msgstr "tillatelse avvist"
-#: ../../boot.php:1532
+#: ../../boot.php:1568
msgid "Got Zot?"
msgstr "Har du Zot?"
-#: ../../boot.php:1962
+#: ../../boot.php:2030
msgid "toggle mobile"
msgstr "Skru på mobil"
diff --git a/view/nb-no/request_notify_eml.tpl b/view/nb-no/request_notify_eml.tpl
deleted file mode 100644
index d01b8ff27..000000000
--- a/view/nb-no/request_notify_eml.tpl
+++ /dev/null
@@ -1,17 +0,0 @@
-
-Dear {{$myname}},
-
-You have just received a connection request at {{$sitename}}
-
-from '{{$requestor}}'.
-
-You may visit their profile at {{$url}}.
-
-Please login to your site to view the complete introduction
-and approve or ignore/cancel the request.
-
-{{$siteurl}}
-
-Regards,
-
- {{$sitename}} administrator
diff --git a/view/nb-no/strings.php b/view/nb-no/strings.php
index fe770c326..45172963c 100644
--- a/view/nb-no/strings.php
+++ b/view/nb-no/strings.php
@@ -7,16 +7,6 @@ function string_plural_select_nb_no($n){
;
$a->strings["Cannot locate DNS info for database server '%s'"] = "Kan ikke finne DNS-informasjon om databasetjener '%s'";
$a->strings["Profile Photos"] = "Profilbilder";
-$a->strings["Image/photo"] = "Bilde/fotografi";
-$a->strings["Encrypted content"] = "Kryptert innhold";
-$a->strings["QR code"] = "QR-kode";
-$a->strings["%1\$s wrote the following %2\$s %3\$s"] = "%1\$s skrev følgende %2\$s %3\$s";
-$a->strings["post"] = "innlegg";
-$a->strings["$1 wrote:"] = "$1 skrev:";
-$a->strings["Embedded content"] = "Innebygget innhold";
-$a->strings["Embedding disabled"] = "Innbygging avskrudd";
-$a->strings["created a new post"] = "laget et nytt innlegg";
-$a->strings["commented on %s's post"] = "kommenterte på %s sitt innlegg";
$a->strings["photo"] = "foto";
$a->strings["event"] = "hendelse";
$a->strings["channel"] = "kanal";
@@ -31,7 +21,8 @@ $a->strings["__ctx:mood__ %1\$s is %2\$s"] = "%1\$s er %2\$s";
$a->strings["Select"] = "Velg";
$a->strings["Delete"] = "Slett";
$a->strings["Private Message"] = "Privat melding";
-$a->strings["Message is verified"] = "Innlegg er bekreftet";
+$a->strings["Message signature validated"] = "Innleggets signatur er bekreftet";
+$a->strings["Message signature incorrect"] = "Innleggets signatur er feil";
$a->strings["View %s's profile @ %s"] = "Vis %s sin profile @ %s";
$a->strings["Categories:"] = "Kategorier:";
$a->strings["Filed under:"] = "Sortert under:";
@@ -49,9 +40,11 @@ $a->strings["View Status"] = "Vis status";
$a->strings["View Profile"] = "Vis profil";
$a->strings["View Photos"] = "Vis bilder";
$a->strings["Matrix Activity"] = "Matrix-aktivitet";
+$a->strings["Connect"] = "Koble";
$a->strings["Edit Contact"] = "Endre kontakt";
$a->strings["Send PM"] = "Send privat melding";
$a->strings["Poke"] = "Prikk";
+$a->strings["Unknown"] = "Ukjent";
$a->strings["%s likes this."] = "%s liker dette.";
$a->strings["%s doesn't like this."] = "%s liker ikke dette.";
$a->strings["<span %1\$s>%2\$d people</span> like this."] = array(
@@ -132,6 +125,15 @@ $a->strings["Bookmarks"] = "Bokmerker";
$a->strings["Saved Bookmarks"] = "Lagrede bokmerker";
$a->strings["Webpages"] = "Websider";
$a->strings["Manage Webpages"] = "HÃ¥ndtere websider";
+$a->strings["created a new post"] = "laget et nytt innlegg";
+$a->strings["commented on %s's post"] = "kommenterte på %s sitt innlegg";
+$a->strings["Sort Options"] = "Sorteringsmuligheter";
+$a->strings["Alphabetic"] = "Alfabetisk";
+$a->strings["Reverse Alphabetic"] = "Omvendt alfabetisk";
+$a->strings["Newest to Oldest"] = "Nyest til eldst";
+$a->strings["Enable Safe Search"] = "Skru på Trygt søk";
+$a->strings["Disable Safe Search"] = "Skru av Trygt søk";
+$a->strings["Safe Mode"] = "Trygt modus";
$a->strings["New Page"] = "Ny side";
$a->strings["Edit"] = "Endre";
$a->strings["View"] = "Vis";
@@ -140,136 +142,102 @@ $a->strings["Page Link"] = "Sidelenke";
$a->strings["Title"] = "Tittel";
$a->strings["Created"] = "Laget";
$a->strings["Edited"] = "Endret";
-$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."] = "Skjemaets sikkerhetspollett var ikke gyldig. Dette skjedde antakelig fordi skjemaet har vært åpnet for lenge (>3 timer) før det ble sendt inn.";
-$a->strings["Not a valid email address"] = "Ikke en gyldig e-postadresse";
-$a->strings["Your email domain is not among those allowed on this site"] = "Ditt e-postdomene er ikke blant de som er tillatt på dette stedet";
-$a->strings["Your email address is already registered at this site."] = "Din e-postadresse er allerede registrert på dette nettstedet.";
-$a->strings["An invitation is required."] = "En invitasjon er påkrevd.";
-$a->strings["Invitation could not be verified."] = "Invitasjon kunne ikke bekreftes.";
-$a->strings["Please enter the required information."] = "Vennligst skriv inn nødvendig informasjon.";
-$a->strings["Failed to store account information."] = "Mislyktes med å lagre kontoinformasjon.";
-$a->strings["Registration request at %s"] = "Registreringsforespørsel hos %s";
-$a->strings["Administrator"] = "Administrator";
-$a->strings["your registration password"] = "ditt registreringspassord";
-$a->strings["Registration details for %s"] = "Registreringsdetaljer for %s";
-$a->strings["Account approved."] = "Konto godkjent.";
-$a->strings["Registration revoked for %s"] = "Registrering trukket tilbake for %s";
+$a->strings["Missing room name"] = "Mangler romnavn";
+$a->strings["Duplicate room name"] = "Duplikat romnavn";
+$a->strings["Invalid room specifier."] = "Ugyldig rom-spesifisering";
+$a->strings["Room not found."] = "Rommet ble ikke funnet.";
$a->strings["Permission denied."] = "Tillatelse avslått.";
-$a->strings["Image exceeds website size limit of %lu bytes"] = "Bilde overstiger nettstedets størrelsesbegrensning på %lu bytes";
-$a->strings["Image file is empty."] = "Bildefilen er tom.";
-$a->strings["Unable to process image"] = "Kan ikke behandle bildet";
-$a->strings["Photo storage failed."] = "Bildelagring mislyktes.";
-$a->strings["Upload New Photos"] = "Last opp nye bilder";
-$a->strings["Visible to everybody"] = "Synlig for alle";
-$a->strings["Show"] = "Vis";
-$a->strings["Don't show"] = "Ikke vis";
-$a->strings["Permissions"] = "Tillatelser";
-$a->strings["Close"] = "Lukk";
+$a->strings["Room is full"] = "Rommet er fullt";
+$a->strings["Embedded content"] = "Innebygget innhold";
+$a->strings["Embedding disabled"] = "Innbygging avskrudd";
+$a->strings["Categories"] = "Kategorier";
+$a->strings["Apps"] = "Apper";
+$a->strings["System"] = "System";
+$a->strings["Create Personal App"] = "Lag personlig app";
+$a->strings["Edit Personal App"] = "Endre personlig app";
+$a->strings["Ignore/Hide"] = "Ignorer/Skjul";
+$a->strings["Suggestions"] = "Forslag";
+$a->strings["See more..."] = "Se mer...";
+$a->strings["You have %1$.0f of %2$.0f allowed connections."] = "Du har %1$.0f av %2$.0f tillate forbindelser.";
+$a->strings["Add New Connection"] = "Legg til ny forbindelse";
+$a->strings["Enter the channel address"] = "Skriv kanal-adressen";
+$a->strings["Example: bob@example.com, http://example.com/barbara"] = "Eksempel: ola.nordmann@eksempel.no, http://eksempel.no/karinordmann";
+$a->strings["Notes"] = "Merknader";
+$a->strings["Save"] = "Lagre";
+$a->strings["Remove term"] = "Fjern begrep";
+$a->strings["Saved Searches"] = "Lagrede søk";
+$a->strings["add"] = "legg til";
+$a->strings["Saved Folders"] = "Lagrede mapper";
+$a->strings["Everything"] = "Alt";
+$a->strings["Archives"] = "Arkiv";
+$a->strings["Refresh"] = "Forny";
+$a->strings["Me"] = "Meg";
+$a->strings["Best Friends"] = "Bestevenner";
+$a->strings["Friends"] = "Venner";
+$a->strings["Co-workers"] = "Medarbeidere";
+$a->strings["Former Friends"] = "Tidligere venner";
+$a->strings["Acquaintances"] = "Bekjente";
+$a->strings["Everybody"] = "Alle";
+$a->strings["Account settings"] = "Kontoinnstillinger";
+$a->strings["Channel settings"] = "Kanalinnstillinger";
+$a->strings["Additional features"] = "Tilleggsfunksjoner";
+$a->strings["Feature settings"] = "Funksjonsinnstillinger";
+$a->strings["Display settings"] = "Visningsinnstillinger";
+$a->strings["Connected apps"] = "Tilkoblede app-er";
+$a->strings["Export channel"] = "Eksporter kanal";
+$a->strings["Export content"] = "Eksporter innhold";
+$a->strings["Connection Default Permissions"] = "Forbindelsens standard tillatelser";
+$a->strings["Premium Channel Settings"] = "Premiumkanal-innstillinger";
+$a->strings["Channel Sources"] = "Kanalkilder";
+$a->strings["Settings"] = "Innstillinger";
+$a->strings["Messages"] = "Meldinger";
+$a->strings["Check Mail"] = "Sjekk meldinger";
+$a->strings["New Message"] = "Ny melding";
+$a->strings["Chat Rooms"] = "Chatrom";
+$a->strings["Bookmarked Chatrooms"] = "Bokmerkede chatrom";
+$a->strings["Suggested Chatrooms"] = "Foreslåtte chatrom";
+$a->strings["Invalid data packet"] = "Ugyldig datapakke";
+$a->strings["Unable to verify channel signature"] = "Ikke i stand til å sjekke kanalsignaturen";
+$a->strings["Unable to verify site signature for %s"] = "Ikke i stand til å bekrefte signaturen til %s";
$a->strings[" and "] = "og";
$a->strings["public profile"] = "offentlig profil";
$a->strings["%1\$s changed %2\$s to &ldquo;%3\$s&rdquo;"] = "%1\$s endret %2\$s til &ldquo;%3\$s&rdquo;";
$a->strings["Visit %1\$s's %2\$s"] = "Besøk %1\$s sitt %2\$s";
$a->strings["%1\$s has an updated %2\$s, changing %3\$s."] = "%1\$s har oppdatert %2\$s, endret %3\$s.";
-$a->strings["Public Timeline"] = "Offentlig tidslinje";
-$a->strings["Item was not found."] = "Elementet ble ikke funnet.";
-$a->strings["No source file."] = "Ingen kildefil.";
-$a->strings["Cannot locate file to replace"] = "Kan ikke finne filen som skal byttes ut";
-$a->strings["Cannot locate file to revise/update"] = "Finner ikke filen som skal revideres/oppdateres";
-$a->strings["File exceeds size limit of %d"] = "Filens størrelse overgår grensen på %d";
-$a->strings["You have reached your limit of %1$.0f Mbytes attachment storage."] = "Du har nådd din lagringsgrense for vedlegg på %1$.0f Mbytes.";
-$a->strings["File upload failed. Possible system limit or action terminated."] = "Mislyktes med å laste opp filen. Mulig systemgrense eller handling avbrutt.";
-$a->strings["Stored file could not be verified. Upload failed."] = "Lagret fil kunne ikke bekreftes. Opplasting mislyktes.";
-$a->strings["Path not available."] = "Stien er ikke tilgjengelig.";
-$a->strings["Empty pathname"] = "Tomt sti-navn";
-$a->strings["duplicate filename or path"] = "duplikat av filnavn eller sti";
-$a->strings["Path not found."] = "Stien ble ikke funnet.";
-$a->strings["mkdir failed."] = "mkdir mislyktes.";
-$a->strings["database storage failed."] = "databaselagring mislyktes.";
+$a->strings["Attachments:"] = "Vedlegg:";
$a->strings["l F d, Y \\@ g:i A"] = "l F d, Y \\@ g:i A";
+$a->strings["Redmatrix event notification:"] = "RedMatrix hendelsesvarsling:";
$a->strings["Starts:"] = "Starter:";
$a->strings["Finishes:"] = "Slutter:";
$a->strings["Location:"] = "Plassering:";
-$a->strings["Logout"] = "Logg ut";
-$a->strings["End this session"] = "Avslutt denne økten";
-$a->strings["Home"] = "Hjem";
-$a->strings["Your posts and conversations"] = "Dine innlegg og samtaler";
-$a->strings["Your profile page"] = "Din profilside";
-$a->strings["Edit Profiles"] = "Endre profiler";
-$a->strings["Manage/Edit profiles"] = "HÃ¥ndter/endre profiler";
-$a->strings["Your photos"] = "Dine bilder";
-$a->strings["Your files"] = "Dine filer";
-$a->strings["Chat"] = "Chat";
-$a->strings["Your chatrooms"] = "Dine chatterom";
-$a->strings["Your bookmarks"] = "Dine bokmerker";
-$a->strings["Your webpages"] = "Dine websider";
-$a->strings["Login"] = "Logg inn";
-$a->strings["Sign in"] = "Logg på";
-$a->strings["%s - click to logout"] = "%s - klikk for å logge ut";
-$a->strings["Click to authenticate to your home hub"] = "Klikk for å godkjennes mot din hjemme-hub";
-$a->strings["Home Page"] = "Hjemmeside";
-$a->strings["Register"] = "Registrer";
-$a->strings["Create an account"] = "Lag en konto";
-$a->strings["Help"] = "Hjelp";
-$a->strings["Help and documentation"] = "Hjelp og dokumentasjon";
-$a->strings["Apps"] = "Apper";
-$a->strings["Applications, utilities, links, games"] = "Programmer, verktøy, lenker, spill";
-$a->strings["Search"] = "Søk";
-$a->strings["Search site content"] = "Søk stedets innhold";
-$a->strings["Directory"] = "Katalog";
-$a->strings["Channel Locator"] = "Kanal-finner";
-$a->strings["Matrix"] = "Matrix";
-$a->strings["Your matrix"] = "Din matrix";
-$a->strings["Mark all matrix notifications seen"] = "Merk alle matrix-varsler som sett";
-$a->strings["Channel Home"] = "Kanalhjem";
-$a->strings["Channel home"] = "Kanalhjem";
-$a->strings["Mark all channel notifications seen"] = "Merk alle kanalvarsler som sett";
-$a->strings["Connections"] = "Forbindelser";
-$a->strings["Notices"] = "Varsel";
-$a->strings["Notifications"] = "Varsler";
-$a->strings["See all notifications"] = "Se alle varsler";
-$a->strings["Mark all system notifications seen"] = "Merk alle systemvarsler som sett";
-$a->strings["Mail"] = "Melding";
-$a->strings["Private mail"] = "Privat post";
-$a->strings["See all private messages"] = "Se alle private meldinger";
-$a->strings["Mark all private messages seen"] = "Merk alle private meldinger som sett";
-$a->strings["Inbox"] = "Innboks";
-$a->strings["Outbox"] = "Utboks";
-$a->strings["New Message"] = "Ny melding";
-$a->strings["Events"] = "Hendelser";
-$a->strings["Event Calendar"] = "Kalender";
-$a->strings["See all events"] = "Se alle hendelser";
-$a->strings["Mark all events seen"] = "Merk alle hendelser som sett";
-$a->strings["Channel Select"] = "Kanaler";
-$a->strings["Manage Your Channels"] = "HÃ¥ndter dine kanaler";
-$a->strings["Settings"] = "Innstillinger";
-$a->strings["Account/Channel Settings"] = "Konto-/kanal-innstillinger";
-$a->strings["Admin"] = "Administrator";
-$a->strings["Site Setup and Configuration"] = "Nettstedsoppsett og -konfigurasjon";
-$a->strings["Nothing new here"] = "Ikke noe nytt her";
-$a->strings["Please wait..."] = "Vennligst vent...";
+$a->strings["parent"] = "opp et nivå";
+$a->strings["Collection"] = "Samling";
+$a->strings["Principal"] = "Viktigste";
+$a->strings["Addressbook"] = "Adressebok";
+$a->strings["Calendar"] = "Kalender";
+$a->strings["Schedule Inbox"] = "Tidsplan innboks";
+$a->strings["Schedule Outbox"] = "Tidsplan utboks";
+$a->strings["%1\$s used"] = "%1\$s brukt";
+$a->strings["%1\$s used of %2\$s (%3\$s&#37;)"] = "%1\$s brukt av %2\$s (%3\$s&#37;)";
+$a->strings["Name"] = "Navn";
+$a->strings["Type"] = "Type";
+$a->strings["Size"] = "Størrelse";
+$a->strings["Last Modified"] = "Sist endret";
+$a->strings["Total"] = "Totalt";
+$a->strings["Create new folder"] = "Lag ny mappe";
+$a->strings["Create"] = "Lag";
+$a->strings["Upload file"] = "Last opp fil";
+$a->strings["Upload"] = "Last opp";
$a->strings["%1\$s's bookmarks"] = "%1\$s sine bokmerker";
-$a->strings["Missing room name"] = "Mangler romnavn";
-$a->strings["Duplicate room name"] = "Duplikat romnavn";
-$a->strings["Invalid room specifier."] = "Ugyldig rom-spesifisering";
-$a->strings["Room not found."] = "Rommet ble ikke funnet.";
-$a->strings["Room is full"] = "Rommet er fullt";
-$a->strings["Tags"] = "Merkelapper";
-$a->strings["Keywords"] = "Nøkkelord";
-$a->strings["have"] = "har";
-$a->strings["has"] = "har";
-$a->strings["want"] = "ønsker";
-$a->strings["wants"] = "ønsker";
-$a->strings["like"] = "liker";
-$a->strings["likes"] = "liker";
-$a->strings["dislike"] = "misliker";
-$a->strings["dislikes"] = "misliker";
+$a->strings["Channel is blocked on this site."] = "Kanalen er blokkert på dette nettstedet.";
+$a->strings["Channel location missing."] = "Kanalplassering mangler.";
+$a->strings["Response from remote channel was incomplete."] = "Svaret fra den andre kanalen var ikke komplett.";
+$a->strings["Channel was deleted and no longer exists."] = "Kanalen er slettet og finnes ikke lenger.";
+$a->strings["Protocol disabled."] = "Protokollen er avskrudd.";
+$a->strings["Channel discovery failed."] = "Kanaloppdagelse mislyktes.";
+$a->strings["local account not found."] = "lokal konto ble ikke funnet.";
+$a->strings["Cannot connect to yourself."] = "Kan ikke lage forbindelse med deg selv.";
$a->strings["Default"] = "Standard";
-$a->strings["Unknown | Not categorised"] = "Ukjent | Ikke kategorisert";
-$a->strings["Block immediately"] = "Blokker umiddelbart";
-$a->strings["Shady, spammer, self-marketer"] = "Lyssky, utsender av søppelpost, egenkampanje";
-$a->strings["Known to me, but no opinion"] = "Bekjent av meg, men jeg er uten mening";
-$a->strings["OK, probably harmless"] = "OK, antakelig harmløs";
-$a->strings["Reputable, has my trust"] = "Hederlig, har min tillit";
$a->strings["Frequently"] = "Ofte";
$a->strings["Hourly"] = "Hver time";
$a->strings["Twice daily"] = "To ganger daglig";
@@ -299,45 +267,12 @@ $a->strings["Find"] = "Finn";
$a->strings["Channel Suggestions"] = "Kanalforslag";
$a->strings["Random Profile"] = "Tilfeldig profil";
$a->strings["Invite Friends"] = "Inviter venner";
-$a->strings["Exammple: name=fred and country=iceland"] = "Eksempel: name=fred og country=iceland";
-$a->strings["Advanced Find"] = "Avansert finn";
-$a->strings["Saved Folders"] = "Lagrede mapper";
-$a->strings["Everything"] = "Alt";
-$a->strings["Categories"] = "Kategorier";
+$a->strings["Advanced example: name=fred and country=iceland"] = "Avansert eksempel: navn=fred og land=island";
$a->strings["%d connection in common"] = array(
0 => "%d forbindelse felles",
1 => "%d forbindelser felles",
);
$a->strings["show more"] = "vis mer";
-$a->strings["This event has been added to your calendar."] = "Denne hendelsen er lagt til i din kalender.";
-$a->strings["Edit File properties"] = "Endre filegenskaper";
-$a->strings["Miscellaneous"] = "Forskjellig";
-$a->strings["year"] = "Ã¥r";
-$a->strings["month"] = "måned";
-$a->strings["day"] = "dag";
-$a->strings["never"] = "aldri";
-$a->strings["less than a second ago"] = "for mindre enn ett sekund siden";
-$a->strings["years"] = "Ã¥r";
-$a->strings["months"] = "måneder";
-$a->strings["week"] = "uke";
-$a->strings["weeks"] = "uker";
-$a->strings["days"] = "dager";
-$a->strings["hour"] = "time";
-$a->strings["hours"] = "timer";
-$a->strings["minute"] = "minutt";
-$a->strings["minutes"] = "minutter";
-$a->strings["second"] = "sekund";
-$a->strings["seconds"] = "sekunder";
-$a->strings["%1\$d %2\$s ago"] = "%1\$d %2\$s siden";
-$a->strings["%1\$s's birthday"] = "%1\$s sin fødselsdag";
-$a->strings["Happy Birthday %1\$s"] = "Gratulerer med dagen, %1\$s !";
-$a->strings["Sort Options"] = "Sorteringsmuligheter";
-$a->strings["Alphabetic"] = "Alfabetisk";
-$a->strings["Reverse Alphabetic"] = "Omvendt alfabetisk";
-$a->strings["Newest to Oldest"] = "Nyest til eldst";
-$a->strings["Enable Safe Search"] = "Skru på Trygt søk";
-$a->strings["Disable Safe Search"] = "Skru av Trygt søk";
-$a->strings["Safe Mode"] = "Trygt modus";
$a->strings["Red Matrix Notification"] = "Red Matrix-varsling";
$a->strings["redmatrix"] = "redmatrix";
$a->strings["Thank You,"] = "Tusen takk,";
@@ -377,15 +312,146 @@ $a->strings["%1\$s, you've received [zrl=%2\$s]a friend suggestion[/zrl] for %3\
$a->strings["Name:"] = "Navn:";
$a->strings["Photo:"] = "Bilde:";
$a->strings["Please visit %s to approve or reject the suggestion."] = "Vennligst besøk %s for å godkjenne eller avslå dette forslaget.";
+$a->strings["[Red:Notify]"] = "[Red:Notify]";
+$a->strings["This event has been added to your calendar."] = "Denne hendelsen er lagt til i din kalender.";
+$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."] = "En slettet gruppe med dette navnet ble gjenopprettet. Eksisterende tillatelser for elementet <strong>kan</strong> gjelde for denne gruppen og fremtidige medlemmer. Hvis du ønsket noe annet, vennligst lag en ny gruppe med et annet navn.";
+$a->strings["Default privacy group for new contacts"] = "Standard personverngruppe for nye kontakter";
+$a->strings["All Channels"] = "Alle kanaler";
+$a->strings["edit"] = "endre";
+$a->strings["Collections"] = "Samlinger";
+$a->strings["Edit collection"] = "Endre samling";
+$a->strings["Create a new collection"] = "Lag en ny samling";
+$a->strings["Channels not in any collection"] = "Kanaler som ikke er i noen samling";
+$a->strings["Image/photo"] = "Bilde/fotografi";
+$a->strings["Encrypted content"] = "Kryptert innhold";
+$a->strings["Install design element: "] = "Installer designelement:";
+$a->strings["QR code"] = "QR-kode";
+$a->strings["%1\$s wrote the following %2\$s %3\$s"] = "%1\$s skrev følgende %2\$s %3\$s";
+$a->strings["post"] = "innlegg";
+$a->strings["$1 spoiler"] = "$1 avsløring";
+$a->strings["$1 wrote:"] = "$1 skrev:";
+$a->strings["Tags"] = "Merkelapper";
+$a->strings["Keywords"] = "Nøkkelord";
+$a->strings["have"] = "har";
+$a->strings["has"] = "har";
+$a->strings["want"] = "ønsker";
+$a->strings["wants"] = "ønsker";
+$a->strings["like"] = "liker";
+$a->strings["likes"] = "liker";
+$a->strings["dislike"] = "misliker";
+$a->strings["dislikes"] = "misliker";
+$a->strings["__ctx:noun__ Like"] = array(
+ 0 => "Liker",
+ 1 => "Liker",
+);
+$a->strings["Logout"] = "Logg ut";
+$a->strings["End this session"] = "Avslutt denne økten";
+$a->strings["Home"] = "Hjem";
+$a->strings["Your posts and conversations"] = "Dine innlegg og samtaler";
+$a->strings["Your profile page"] = "Din profilside";
+$a->strings["Edit Profiles"] = "Endre profiler";
+$a->strings["Manage/Edit profiles"] = "HÃ¥ndter/endre profiler";
+$a->strings["Edit Profile"] = "Endre profil";
+$a->strings["Edit your profile"] = "Endre din profil";
+$a->strings["Your photos"] = "Dine bilder";
+$a->strings["Your files"] = "Dine filer";
+$a->strings["Chat"] = "Chat";
+$a->strings["Your chatrooms"] = "Dine chatterom";
+$a->strings["Your bookmarks"] = "Dine bokmerker";
+$a->strings["Your webpages"] = "Dine websider";
+$a->strings["Login"] = "Logg inn";
+$a->strings["Sign in"] = "Logg på";
+$a->strings["%s - click to logout"] = "%s - klikk for å logge ut";
+$a->strings["Remote authentication"] = "Fjernautentisering";
+$a->strings["Click to authenticate to your home hub"] = "Klikk for å godkjennes mot din hjemme-hub";
+$a->strings["Home Page"] = "Hjemmeside";
+$a->strings["Register"] = "Registrer";
+$a->strings["Create an account"] = "Lag en konto";
+$a->strings["Help"] = "Hjelp";
+$a->strings["Help and documentation"] = "Hjelp og dokumentasjon";
+$a->strings["Applications, utilities, links, games"] = "Programmer, verktøy, lenker, spill";
+$a->strings["Search"] = "Søk";
+$a->strings["Search site content"] = "Søk stedets innhold";
+$a->strings["Directory"] = "Katalog";
+$a->strings["Channel Directory"] = "Kanalkatalog";
+$a->strings["Matrix"] = "Matrix";
+$a->strings["Your matrix"] = "Din matrix";
+$a->strings["Mark all matrix notifications seen"] = "Merk alle matrix-varsler som sett";
+$a->strings["Channel Home"] = "Kanalhjem";
+$a->strings["Channel home"] = "Kanalhjem";
+$a->strings["Mark all channel notifications seen"] = "Merk alle kanalvarsler som sett";
+$a->strings["Connections"] = "Forbindelser";
+$a->strings["Notices"] = "Varsel";
+$a->strings["Notifications"] = "Varsler";
+$a->strings["See all notifications"] = "Se alle varsler";
+$a->strings["Mark all system notifications seen"] = "Merk alle systemvarsler som sett";
+$a->strings["Mail"] = "Melding";
+$a->strings["Private mail"] = "Privat post";
+$a->strings["See all private messages"] = "Se alle private meldinger";
+$a->strings["Mark all private messages seen"] = "Merk alle private meldinger som sett";
+$a->strings["Inbox"] = "Innboks";
+$a->strings["Outbox"] = "Utboks";
+$a->strings["Events"] = "Hendelser";
+$a->strings["Event Calendar"] = "Kalender";
+$a->strings["See all events"] = "Se alle hendelser";
+$a->strings["Mark all events seen"] = "Merk alle hendelser som sett";
+$a->strings["Channel Manager"] = "Kanalstyring";
+$a->strings["Manage Your Channels"] = "HÃ¥ndter dine kanaler";
+$a->strings["Account/Channel Settings"] = "Konto-/kanal-innstillinger";
+$a->strings["Admin"] = "Administrator";
+$a->strings["Site Setup and Configuration"] = "Nettstedsoppsett og -konfigurasjon";
+$a->strings["Please wait..."] = "Vennligst vent...";
+$a->strings["Can view my normal stream and posts"] = "Kan se min normale strøm og innlegg";
+$a->strings["Can view my default channel profile"] = "Kan se min standard kanalprofil";
+$a->strings["Can view my photo albums"] = "Kan se mine fotoalbum";
+$a->strings["Can view my connections"] = "Kan se mine forbindelser";
+$a->strings["Can view my file storage"] = "Kan se mitt fillager";
+$a->strings["Can view my webpages"] = "Kan se mine websider";
+$a->strings["Can send me their channel stream and posts"] = "Kan sende meg deres kanalstrøm og innlegg";
+$a->strings["Can post on my channel page (\"wall\")"] = "Kan lage innlegg på min kanalside (\"vegg\")";
+$a->strings["Can comment on or like my posts"] = "Kan kommentere på eller like mine innlegg";
+$a->strings["Can send me private mail messages"] = "Kan sende meg private meldinger";
+$a->strings["Can post photos to my photo albums"] = "Kan legge inn bilder i mine fotoalbum";
+$a->strings["Can like/dislike stuff"] = "Kan like/ikke like forskjellige greier";
+$a->strings["Profiles and things other than posts/comments"] = "Profiler og andre ting enn innlegg/kommentarer";
+$a->strings["Can forward to all my channel contacts via post @mentions"] = "Kan videresende til alle mine kanalkontakter via @navn i innlegg";
+$a->strings["Advanced - useful for creating group forum channels"] = "Avansert - nyttig for å lage forumkanaler for grupper";
+$a->strings["Can chat with me (when available)"] = "Kan chatte/sende lynmeldinger til meg (når tilgjengelig)";
+$a->strings["Can write to my file storage"] = "Kan skrive til mitt fillager";
+$a->strings["Can edit my webpages"] = "Kan endre mine websider";
+$a->strings["Can source my public posts in derived channels"] = "Kan bruke mine offentlige innlegg som kanalkilde i egne kanaler";
+$a->strings["Somewhat advanced - very useful in open communities"] = "Litt avansert - svært nyttig i åpne fellesskap";
+$a->strings["Can administer my channel resources"] = "Kan administrere mine kanalressurser";
+$a->strings["Extremely advanced. Leave this alone unless you know what you are doing"] = "Ekstremt avansert. La dette være med mindre du vet hva du gjør";
+$a->strings["Social Networking"] = "Sosialt nettverk";
+$a->strings["Mostly Public"] = "Ganske offentlig";
+$a->strings["Restricted"] = "Begrenset";
+$a->strings["Private"] = "Privat";
+$a->strings["Community Forum"] = "Forum for fellesskap";
+$a->strings["Feed Republish"] = "Republisering av strømmet innhold";
+$a->strings["Special Purpose"] = "Spesiell bruk";
+$a->strings["Celebrity/Soapbox"] = "Kjendis/Talerstol";
+$a->strings["Group Repository"] = "Gruppelager";
+$a->strings["Other"] = "Annen";
+$a->strings["Custom/Expert Mode"] = "Tilpasset/Ekspertmodus";
+$a->strings["New window"] = "Nytt vindu";
+$a->strings["Open the selected location in a different window or browser tab"] = "Ã…pne det valgte stedet i et annet vindu eller nettleser-fane";
+$a->strings["User '%s' deleted"] = "Brukeren '%s' er slettet";
$a->strings["General Features"] = "Generelle funksjoner";
$a->strings["Content Expiration"] = "Innholdet utløper";
$a->strings["Remove posts/comments and/or private messages at a future time"] = "Fjern innlegg/kommentarer og/eller private meldinger på et angitt tidspunkt i fremtiden";
$a->strings["Multiple Profiles"] = "Flere profiler";
$a->strings["Ability to create multiple profiles"] = "Mulig å lage flere profiler";
+$a->strings["Advanced Profiles"] = "Avanserte profiler";
+$a->strings["Additional profile sections and selections"] = "Ytterlige seksjoner og utvalg til profilen";
+$a->strings["Profile Import/Export"] = "Profil-import/-eksport";
+$a->strings["Save and load profile details across sites/channels"] = "Lagre og åpne profildetaljer på tvers av nettsteder/kanaler";
$a->strings["Web Pages"] = "Web-sider";
$a->strings["Provide managed web pages on your channel"] = "Tilby kontrollerte web-sider på din kanal";
$a->strings["Private Notes"] = "Private merknader";
$a->strings["Enables a tool to store notes and reminders"] = "Skrur på et verktøy for lagre merknader og påminnelser";
+$a->strings["Navigation Channel Select"] = "Navigasjon kanalvalg";
+$a->strings["Change channels directly from within the navigation dropdown menu"] = "Endre kanaler direkte fra navigasjonsmenyen";
$a->strings["Extended Identity Sharing"] = "Utvidet identitetsdeling";
$a->strings["Share your identity with all websites on the internet. When disabled, identity is only shared with sites in the matrix."] = "Del din identiet med alle nettsteder på Internett. Når denne er avskrudd, deles identiteten bare med nettsteder i matrix.";
$a->strings["Expert Mode"] = "Ekspertmodus";
@@ -393,11 +459,10 @@ $a->strings["Enable Expert Mode to provide advanced configuration options"] = "S
$a->strings["Premium Channel"] = "Premiumkanal";
$a->strings["Allows you to set restrictions and terms on those that connect with your channel"] = "Lar deg angi restriksjoner og betingelser for de som kobler seg til din kanal";
$a->strings["Post Composition Features"] = "Funksjoner for å lage innlegg";
-$a->strings["Richtext Editor"] = "Riktekst redigeringsverktøy";
-$a->strings["Enable richtext editor"] = "Skru på redigeringverktøy for riktekst";
+$a->strings["Use Markdown"] = "Bruk Markdown";
+$a->strings["Allow use of \"Markdown\" to format posts"] = "Tillat bruk av \"Markdown\" til formatering av innlegg";
$a->strings["Post Preview"] = "Forhåndsvisning av innlegg";
$a->strings["Allow previewing posts and comments before publishing them"] = "Tillat forhåndsvisning av innlegg og kommentarer før publisering";
-$a->strings["Channel Sources"] = "Kanalkilder";
$a->strings["Automatically import channel content from other channels or feeds"] = "Automatisk import av kanalinnhold fra andre kanaler eller strømmer";
$a->strings["Even More Encryption"] = "Enda mer kryptering";
$a->strings["Allow optional encryption of content end-to-end with a shared secret key"] = "Tillat valgfri kryptering av innhold ende-til-ende via en delt hemmelig nøkkel";
@@ -406,7 +471,6 @@ $a->strings["Search by Date"] = "Søk etter dato";
$a->strings["Ability to select posts by date ranges"] = "Mulighet for å velge innlegg etter datoområde";
$a->strings["Collections Filter"] = "Filter for samlinger";
$a->strings["Enable widget to display Network posts only from selected collections"] = "Skru på miniprogram for å vise Nettverksinnlegg bare fra valgte samlinger";
-$a->strings["Saved Searches"] = "Lagrede søk";
$a->strings["Save search terms for re-use"] = "Lagre søkeuttrykk for senere bruk";
$a->strings["Network Personal Tab"] = "Nettverk personlig fane";
$a->strings["Enable tab to display only Network posts that you've interacted on"] = "Skru på fane for å bare vise Nettverksinnlegg som du har deltatt i";
@@ -430,22 +494,24 @@ $a->strings["Star Posts"] = "Stjerneinnlegg";
$a->strings["Ability to mark special posts with a star indicator"] = "Mulighet til å merke spesielle innlegg med en stjerne";
$a->strings["Tag Cloud"] = "Merkelappsky";
$a->strings["Provide a personal tag cloud on your channel page"] = "Tilby en personlig merkelappsky på din kanalside";
-$a->strings["Channel is blocked on this site."] = "Kanalen er blokkert på dette nettstedet.";
-$a->strings["Channel location missing."] = "Kanalplassering mangler.";
-$a->strings["Response from remote channel was incomplete."] = "Svaret fra den andre kanalen var ikke komplett.";
-$a->strings["Channel was deleted and no longer exists."] = "Kanalen er slettet og finnes ikke lenger.";
-$a->strings["Channel discovery failed."] = "Kanaloppdagelse mislyktes.";
-$a->strings["local account not found."] = "lokal konto ble ikke funnet.";
-$a->strings["Cannot connect to yourself."] = "Kan ikke lage forbindelse med deg selv.";
-$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."] = "En slettet gruppe med dette navnet ble gjenopprettet. Eksisterende tillatelser for elementet <strong>kan</strong> gjelde for denne gruppen og fremtidige medlemmer. Hvis du ønsket noe annet, vennligst lag en ny gruppe med et annet navn.";
-$a->strings["Default privacy group for new contacts"] = "Standard personverngruppe for nye kontakter";
-$a->strings["All Channels"] = "Alle kanaler";
-$a->strings["edit"] = "endre";
-$a->strings["Collections"] = "Samlinger";
-$a->strings["Edit collection"] = "Endre samling";
-$a->strings["Create a new collection"] = "Lag en ny samling";
-$a->strings["Channels not in any collection"] = "Kanaler som ikke er i noen samling";
-$a->strings["add"] = "legg til";
+$a->strings["Not a valid email address"] = "Ikke en gyldig e-postadresse";
+$a->strings["Your email domain is not among those allowed on this site"] = "Ditt e-postdomene er ikke blant de som er tillatt på dette stedet";
+$a->strings["Your email address is already registered at this site."] = "Din e-postadresse er allerede registrert på dette nettstedet.";
+$a->strings["An invitation is required."] = "En invitasjon er påkrevd.";
+$a->strings["Invitation could not be verified."] = "Invitasjon kunne ikke bekreftes.";
+$a->strings["Please enter the required information."] = "Vennligst skriv inn nødvendig informasjon.";
+$a->strings["Failed to store account information."] = "Mislyktes med å lagre kontoinformasjon.";
+$a->strings["Registration confirmation for %s"] = "Registreringsbekreftelse for %s";
+$a->strings["Registration request at %s"] = "Registreringsforespørsel hos %s";
+$a->strings["Administrator"] = "Administrator";
+$a->strings["your registration password"] = "ditt registreringspassord";
+$a->strings["Registration details for %s"] = "Registreringsdetaljer for %s";
+$a->strings["Account approved."] = "Konto godkjent.";
+$a->strings["Registration revoked for %s"] = "Registrering trukket tilbake for %s";
+$a->strings["Account verified. Please login."] = "Konto bekreftet. Vennligst logg inn.";
+$a->strings["Click here to upgrade."] = "Klikk her for å oppgradere.";
+$a->strings["This action exceeds the limits set by your subscription plan."] = "Denne handlingen går utenfor grensene satt i din abonnementsplan.";
+$a->strings["This action is not available under your subscription plan."] = "Denne handlingen er ikke tilgjengelig i din abonnementsplan.";
$a->strings["Unable to obtain identity information from database"] = "Klarer ikke å få tak i identitetsinformasjon fra databasen";
$a->strings["Empty name"] = "Mangler navn";
$a->strings["Name too long"] = "Navnet er for langt";
@@ -455,15 +521,12 @@ $a->strings["Reserved nickname. Please choose another."] = "Reservert kallenavn.
$a->strings["Nickname has unsupported characters or is already being used on this site."] = "Kallenavnet inneholder tegn som ikke er støttet eller det er allerede i bruk på dette nettstedet.";
$a->strings["Unable to retrieve created identity"] = "Klarer ikke å hente den lagede identiteten";
$a->strings["Default Profile"] = "Standardprofil";
-$a->strings["Friends"] = "Venner";
$a->strings["Requested channel is not available."] = "Forespurt kanal er ikke tilgjengelig.";
$a->strings["Requested profile is not available."] = "Forespurt profil er ikke tilgjengelig.";
-$a->strings["Connect"] = "Koble";
$a->strings["Change profile photo"] = "Endre profilbilde";
$a->strings["Profiles"] = "Profiler";
$a->strings["Manage/edit profiles"] = "HÃ¥ndtere/endre profiler";
$a->strings["Create New Profile"] = "Lag ny profil";
-$a->strings["Edit Profile"] = "Endre profil";
$a->strings["Profile Image"] = "Profilbilde";
$a->strings["visible to everybody"] = "synlig for alle";
$a->strings["Edit visibility"] = "Endre synlighet";
@@ -481,6 +544,7 @@ $a->strings["Event Reminders"] = "Hendelsespåminnelser";
$a->strings["Events this week:"] = "Hendelser denne uken:";
$a->strings["Profile"] = "Profil";
$a->strings["Full Name:"] = "Fullt navn:";
+$a->strings["Like this channel"] = "Lik denne kanalen";
$a->strings["j F, Y"] = "j F, Y";
$a->strings["j F"] = "j F";
$a->strings["Birthday:"] = "Fødselsdag:";
@@ -504,7 +568,159 @@ $a->strings["Film/dance/culture/entertainment:"] = "Film/dans/kultur/underholdni
$a->strings["Love/Romance:"] = "Kjærlighet/romantikk:";
$a->strings["Work/employment:"] = "Arbeid/sysselsetting:";
$a->strings["School/education:"] = "Skole/utdannelse:";
+$a->strings["Like this thing"] = "Lik denne tingen";
+$a->strings["Permission denied"] = "Tillatelse avvist";
+$a->strings["(Unknown)"] = "(Ukjent)";
+$a->strings["Visible to anybody on the internet."] = "Synlig for enhver på Internett.";
+$a->strings["Visible to you only."] = "Synlig bare for deg.";
+$a->strings["Visible to anybody in this network."] = "Synlig for enhver i dette nettverket.";
+$a->strings["Visible to anybody authenticated."] = "Synlig for enhver som er autentisert.";
+$a->strings["Visible to anybody on %s."] = "Synlig for alle på %s.";
+$a->strings["Visible to all connections."] = "Synlig for alle forbindelser.";
+$a->strings["Visible to approved connections."] = "Synlig for godkjente forbindelser.";
+$a->strings["Visible to specific connections."] = "Synlig for spesifikke forbindelser.";
+$a->strings["Item not found."] = "Elementet ble ikke funnet.";
+$a->strings["Collection not found."] = "Samlingen ble ikke funnet.";
+$a->strings["Collection is empty."] = "Samlingen er tom.";
+$a->strings["Collection: %s"] = "Samling: %s";
+$a->strings["Connection: %s"] = "Forbindelse: %s";
+$a->strings["Connection not found."] = "Forbindelsen ble ikke funnet.";
+$a->strings["No recipient provided."] = "Ingen mottaker angitt.";
+$a->strings["[no subject]"] = "[ikke noe emne]";
+$a->strings["Unable to determine sender."] = "Kan ikke avgjøre avsender.";
+$a->strings["Stored post could not be verified."] = "Lagret innlegg kunne ikke bekreftes.";
$a->strings["view full size"] = "vis full størrelse";
+$a->strings["Item was not found."] = "Elementet ble ikke funnet.";
+$a->strings["No source file."] = "Ingen kildefil.";
+$a->strings["Cannot locate file to replace"] = "Kan ikke finne filen som skal byttes ut";
+$a->strings["Cannot locate file to revise/update"] = "Finner ikke filen som skal revideres/oppdateres";
+$a->strings["File exceeds size limit of %d"] = "Filens størrelse overgår grensen på %d";
+$a->strings["You have reached your limit of %1$.0f Mbytes attachment storage."] = "Du har nådd din lagringsgrense for vedlegg på %1$.0f Mbytes.";
+$a->strings["File upload failed. Possible system limit or action terminated."] = "Mislyktes med å laste opp filen. Mulig systemgrense eller handling avbrutt.";
+$a->strings["Stored file could not be verified. Upload failed."] = "Lagret fil kunne ikke bekreftes. Opplasting mislyktes.";
+$a->strings["Path not available."] = "Stien er ikke tilgjengelig.";
+$a->strings["Empty pathname"] = "Tomt sti-navn";
+$a->strings["duplicate filename or path"] = "duplikat av filnavn eller sti";
+$a->strings["Path not found."] = "Stien ble ikke funnet.";
+$a->strings["mkdir failed."] = "mkdir mislyktes.";
+$a->strings["database storage failed."] = "databaselagring mislyktes.";
+$a->strings["Logged out."] = "Logget ut.";
+$a->strings["Failed authentication"] = "Mislykket autentisering";
+$a->strings["Login failed."] = "Innlogging mislyktes.";
+$a->strings["Miscellaneous"] = "Forskjellig";
+$a->strings["YYYY-MM-DD or MM-DD"] = "YYYY-MM-DD eller MM-DD";
+$a->strings["never"] = "aldri";
+$a->strings["less than a second ago"] = "for mindre enn ett sekund siden";
+$a->strings["year"] = "Ã¥r";
+$a->strings["years"] = "Ã¥r";
+$a->strings["month"] = "måned";
+$a->strings["months"] = "måneder";
+$a->strings["week"] = "uke";
+$a->strings["weeks"] = "uker";
+$a->strings["day"] = "dag";
+$a->strings["days"] = "dager";
+$a->strings["hour"] = "time";
+$a->strings["hours"] = "timer";
+$a->strings["minute"] = "minutt";
+$a->strings["minutes"] = "minutter";
+$a->strings["second"] = "sekund";
+$a->strings["seconds"] = "sekunder";
+$a->strings["%1\$d %2\$s ago"] = "%1\$d %2\$s siden";
+$a->strings["%1\$s's birthday"] = "%1\$s sin fødselsdag";
+$a->strings["Happy Birthday %1\$s"] = "Gratulerer med dagen, %1\$s !";
+$a->strings["Image exceeds website size limit of %lu bytes"] = "Bilde overstiger nettstedets størrelsesbegrensning på %lu bytes";
+$a->strings["Image file is empty."] = "Bildefilen er tom.";
+$a->strings["Unable to process image"] = "Kan ikke behandle bildet";
+$a->strings["Photo storage failed."] = "Bildelagring mislyktes.";
+$a->strings["Upload New Photos"] = "Last opp nye bilder";
+$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."] = "Skjemaets sikkerhetspollett var ikke gyldig. Dette skjedde antakelig fordi skjemaet har vært åpnet for lenge (>3 timer) før det ble sendt inn.";
+$a->strings["Delete this item?"] = "Slett dette elementet?";
+$a->strings["Comment"] = "Kommentar";
+$a->strings["[+] show all"] = "[+] Vis alle";
+$a->strings["[-] show less"] = "[-] Vis mindre";
+$a->strings["[+] expand"] = "[+] Utvid";
+$a->strings["[-] collapse"] = "[-] Lukk";
+$a->strings["Password too short"] = "Passordet er for kort";
+$a->strings["Passwords do not match"] = "Passordene er ikke like";
+$a->strings["everybody"] = "alle";
+$a->strings["Secret Passphrase"] = "Hemmelig passordsetning";
+$a->strings["Passphrase hint"] = "Hint om passordsetning";
+$a->strings["Notice: Permissions have changed but have not yet been submitted."] = "Varsel: Tillatelser har blitt endret, men de har ennå ikke blitt sendt inn.";
+$a->strings["close all"] = "Lukk alle";
+$a->strings["Nothing new here"] = "Ikke noe nytt her";
+$a->strings["timeago.prefixAgo"] = "timeago.prefixAgo";
+$a->strings["timeago.prefixFromNow"] = "timeago.prefixFromNow";
+$a->strings["ago"] = "siden";
+$a->strings["from now"] = "fra nå";
+$a->strings["less than a minute"] = "mindre enn ett minutt";
+$a->strings["about a minute"] = "omtrent et minutt";
+$a->strings["%d minutes"] = "%d minutter";
+$a->strings["about an hour"] = "omtrent en time";
+$a->strings["about %d hours"] = "omtrent %d timer";
+$a->strings["a day"] = "en dag";
+$a->strings["%d days"] = "%d dager";
+$a->strings["about a month"] = "omtrent en måned";
+$a->strings["%d months"] = "%d måneder";
+$a->strings["about a year"] = "omtrent et år";
+$a->strings["%d years"] = "%d år";
+$a->strings[" "] = " ";
+$a->strings["timeago.numbers"] = "timeago.numbers";
+$a->strings["Male"] = "Mannlig";
+$a->strings["Female"] = "Kvinnelig";
+$a->strings["Currently Male"] = "For tiden mann";
+$a->strings["Currently Female"] = "For tiden kvinne";
+$a->strings["Mostly Male"] = "For det meste mann";
+$a->strings["Mostly Female"] = "For det meste kvinne";
+$a->strings["Transgender"] = "Transkjønnet";
+$a->strings["Intersex"] = "interkjønnet";
+$a->strings["Transsexual"] = "Transseksuell";
+$a->strings["Hermaphrodite"] = "Hermafroditt";
+$a->strings["Neuter"] = "Intetkjønn";
+$a->strings["Non-specific"] = "Ubestemt";
+$a->strings["Undecided"] = "Ubestemt";
+$a->strings["Males"] = "Menn";
+$a->strings["Females"] = "Kvinner";
+$a->strings["Gay"] = "Homo";
+$a->strings["Lesbian"] = "Lesbisk";
+$a->strings["No Preference"] = "Ingen preferanse";
+$a->strings["Bisexual"] = "Biseksuell";
+$a->strings["Autosexual"] = "Autoseksuell";
+$a->strings["Abstinent"] = "Avholdende";
+$a->strings["Virgin"] = "Jomfru";
+$a->strings["Deviant"] = "Avviker";
+$a->strings["Fetish"] = "Fetisj";
+$a->strings["Oodles"] = "Masse";
+$a->strings["Nonsexual"] = "Ikke-seksuell";
+$a->strings["Single"] = "Enslig";
+$a->strings["Lonely"] = "Ensom";
+$a->strings["Available"] = "Tilgjengelig";
+$a->strings["Unavailable"] = "Ikke tilgjengelig";
+$a->strings["Has crush"] = "Er forelsket";
+$a->strings["Infatuated"] = "Betatt";
+$a->strings["Dating"] = "Sammen med";
+$a->strings["Unfaithful"] = "Utro";
+$a->strings["Sex Addict"] = "Sexavhengig";
+$a->strings["Friends/Benefits"] = "Venner med frynsegoder";
+$a->strings["Casual"] = "Tilfeldig";
+$a->strings["Engaged"] = "Forlovet";
+$a->strings["Married"] = "Gift";
+$a->strings["Imaginarily married"] = "Gift i fantasien";
+$a->strings["Partners"] = "Partnere";
+$a->strings["Cohabiting"] = "Samboer";
+$a->strings["Common law"] = "Samboer";
+$a->strings["Happy"] = "Lykkelig";
+$a->strings["Not looking"] = "Ikke på utkikk";
+$a->strings["Swinger"] = "Partnerbytte";
+$a->strings["Betrayed"] = "Bedratt";
+$a->strings["Separated"] = "Separert";
+$a->strings["Unstable"] = "Ustabilt";
+$a->strings["Divorced"] = "Skilt";
+$a->strings["Imaginarily divorced"] = "Skilt i fantasien";
+$a->strings["Widowed"] = "Enke";
+$a->strings["Uncertain"] = "Usikkert";
+$a->strings["It's complicated"] = "Det er komplisert";
+$a->strings["Don't care"] = "Bryr meg ikke";
+$a->strings["Ask me"] = "Spør meg";
$a->strings["prev"] = "forrige";
$a->strings["first"] = "første";
$a->strings["last"] = "siste";
@@ -517,7 +733,6 @@ $a->strings["%d Connection"] = array(
1 => "%d forbindelser",
);
$a->strings["View Connections"] = "Vis forbindelser";
-$a->strings["Save"] = "Lagre";
$a->strings["poke"] = "prikk";
$a->strings["ping"] = "varsle";
$a->strings["pinged"] = "varslet";
@@ -585,64 +800,28 @@ $a->strings["Blocks"] = "Byggeklosser";
$a->strings["Menus"] = "Menyer";
$a->strings["Layouts"] = "Layout";
$a->strings["Pages"] = "Sider";
+$a->strings["Visible to your default audience"] = "Synlig for ditt standard publikum";
+$a->strings["Show"] = "Vis";
+$a->strings["Don't show"] = "Ikke vis";
+$a->strings["Permissions"] = "Tillatelser";
+$a->strings["Close"] = "Lukk";
+$a->strings["Public Timeline"] = "Offentlig tidslinje";
$a->strings["Site Admin"] = "Nettstedsadministrator";
$a->strings["Address Book"] = "Adressebok";
$a->strings["Mood"] = "Stemning";
$a->strings["Probe"] = "Undersøk";
$a->strings["Suggest"] = "Forreslå";
+$a->strings["Random Channel"] = "Tilfeldig kanal";
+$a->strings["Invite"] = "Inviter";
+$a->strings["Features"] = "Funksjoner";
+$a->strings["Language"] = "Språk";
+$a->strings["Post"] = "Innlegg";
+$a->strings["Profile Photo"] = "Profilbilde";
$a->strings["Update"] = "Oppdater";
$a->strings["Install"] = "Installer";
$a->strings["Purchase"] = "Kjøp";
-$a->strings["Unknown"] = "Ukjent";
-$a->strings["Invalid data packet"] = "Ugyldig datapakke";
-$a->strings["Unable to verify channel signature"] = "Ikke i stand til å sjekke kanalsignaturen";
-$a->strings["Unable to verify site signature for %s"] = "Ikke i stand til å bekrefte signaturen til %s";
-$a->strings["No recipient provided."] = "Ingen mottaker angitt.";
-$a->strings["[no subject]"] = "[ikke noe emne]";
-$a->strings["Unable to determine sender."] = "Kan ikke avgjøre avsender.";
-$a->strings["Stored post could not be verified."] = "Lagret innlegg kunne ikke bekreftes.";
-$a->strings["Click here to upgrade."] = "Klikk her for å oppgradere.";
-$a->strings["This action exceeds the limits set by your subscription plan."] = "Denne handlingen går utenfor grensene satt i din abonnementsplan.";
-$a->strings["This action is not available under your subscription plan."] = "Denne handlingen er ikke tilgjengelig i din abonnementsplan.";
-$a->strings["System"] = "System";
-$a->strings["Create Personal App"] = "Lag personlig app";
-$a->strings["Edit Personal App"] = "Endre personlig app";
-$a->strings["Ignore/Hide"] = "Ignorer/Skjul";
-$a->strings["Suggestions"] = "Forslag";
-$a->strings["See more..."] = "Se mer...";
-$a->strings["You have %1$.0f of %2$.0f allowed connections."] = "Du har %1$.0f av %2$.0f tillate forbindelser.";
-$a->strings["Add New Connection"] = "Legg til ny forbindelse";
-$a->strings["Enter the channel address"] = "Skriv kanal-adressen";
-$a->strings["Example: bob@example.com, http://example.com/barbara"] = "Eksempel: ola.nordmann@eksempel.no, http://eksempel.no/karinordmann";
-$a->strings["Notes"] = "Merknader";
-$a->strings["Remove term"] = "Fjern begrep";
-$a->strings["Archives"] = "Arkiv";
-$a->strings["Refresh"] = "Forny";
-$a->strings["Me"] = "Meg";
-$a->strings["Best Friends"] = "Bestevenner";
-$a->strings["Co-workers"] = "Medarbeidere";
-$a->strings["Former Friends"] = "Tidligere venner";
-$a->strings["Acquaintances"] = "Bekjente";
-$a->strings["Everybody"] = "Alle";
-$a->strings["Account settings"] = "Kontoinnstillinger";
-$a->strings["Channel settings"] = "Kanalinnstillinger";
-$a->strings["Additional features"] = "Tilleggsfunksjoner";
-$a->strings["Feature settings"] = "Funksjonsinnstillinger";
-$a->strings["Display settings"] = "Visningsinnstillinger";
-$a->strings["Connected apps"] = "Tilkoblede app-er";
-$a->strings["Export channel"] = "Eksporter kanal";
-$a->strings["Automatic Permissions (Advanced)"] = "Automatiske tillatelser (avansert)";
-$a->strings["Premium Channel Settings"] = "Premiumkanal-innstillinger";
-$a->strings["Check Mail"] = "Sjekk meldinger";
-$a->strings["Chat Rooms"] = "Chatrom";
-$a->strings["Bookmarked Chatrooms"] = "Bokmerkede chatrom";
-$a->strings["Suggested Chatrooms"] = "Foreslåtte chatrom";
$a->strings["Save to Folder"] = "Lagre i mappe";
$a->strings["View all"] = "Vis alle";
-$a->strings["__ctx:noun__ Like"] = array(
- 0 => "Liker",
- 1 => "Liker",
-);
$a->strings["__ctx:noun__ Dislike"] = array(
0 => "Liker ikke",
1 => "Liker ikke",
@@ -669,9 +848,7 @@ $a->strings["%d comment"] = array(
0 => "%d kommentar",
1 => "%d kommentarer",
);
-$a->strings["[+] show all"] = "[+] Vis alle";
$a->strings["This is you"] = "Dette er deg";
-$a->strings["Comment"] = "Kommentar";
$a->strings["Submit"] = "Send";
$a->strings["Bold"] = "Uthevet";
$a->strings["Italic"] = "Kursiv";
@@ -681,125 +858,12 @@ $a->strings["Code"] = "Kode";
$a->strings["Image"] = "Bilde";
$a->strings["Link"] = "Lenke";
$a->strings["Video"] = "Video";
-$a->strings["Delete this item?"] = "Slett dette elementet?";
-$a->strings["[-] show less"] = "[-] Vis mindre";
-$a->strings["[+] expand"] = "[+] Utvid";
-$a->strings["[-] collapse"] = "[-] Lukk";
-$a->strings["Password too short"] = "Passordet er for kort";
-$a->strings["Passwords do not match"] = "Passordene er ikke like";
-$a->strings["everybody"] = "alle";
-$a->strings["Secret Passphrase"] = "Hemmelig passordsetning";
-$a->strings["Passphrase hint"] = "Hint om passordsetning";
-$a->strings["Notice: Permissions have changed but have not yet been submitted."] = "Varsel: Tillatelser har blitt endret, men de har ennå ikke blitt sendt inn.";
-$a->strings["close all"] = "Lukk alle";
-$a->strings["timeago.prefixAgo"] = "timeago.prefixAgo";
-$a->strings["timeago.prefixFromNow"] = "timeago.prefixFromNow";
-$a->strings["ago"] = "siden";
-$a->strings["from now"] = "fra nå";
-$a->strings["less than a minute"] = "mindre enn ett minutt";
-$a->strings["about a minute"] = "omtrent et minutt";
-$a->strings["%d minutes"] = "%d minutter";
-$a->strings["about an hour"] = "omtrent en time";
-$a->strings["about %d hours"] = "omtrent %d timer";
-$a->strings["a day"] = "en dag";
-$a->strings["%d days"] = "%d dager";
-$a->strings["about a month"] = "omtrent en måned";
-$a->strings["%d months"] = "%d måneder";
-$a->strings["about a year"] = "omtrent et år";
-$a->strings["%d years"] = "%d år";
-$a->strings[" "] = " ";
-$a->strings["timeago.numbers"] = "timeago.numbers";
-$a->strings["New window"] = "Nytt vindu";
-$a->strings["Open the selected location in a different window or browser tab"] = "Ã…pne det valgte stedet i et annet vindu eller nettleser-fane";
-$a->strings["Male"] = "Mannlig";
-$a->strings["Female"] = "Kvinnelig";
-$a->strings["Currently Male"] = "For tiden mann";
-$a->strings["Currently Female"] = "For tiden kvinne";
-$a->strings["Mostly Male"] = "For det meste mann";
-$a->strings["Mostly Female"] = "For det meste kvinne";
-$a->strings["Transgender"] = "Transkjønnet";
-$a->strings["Intersex"] = "interkjønnet";
-$a->strings["Transsexual"] = "Transseksuell";
-$a->strings["Hermaphrodite"] = "Hermafroditt";
-$a->strings["Neuter"] = "Intetkjønn";
-$a->strings["Non-specific"] = "Ubestemt";
-$a->strings["Other"] = "Annen";
-$a->strings["Undecided"] = "Ubestemt";
-$a->strings["Males"] = "Menn";
-$a->strings["Females"] = "Kvinner";
-$a->strings["Gay"] = "Homo";
-$a->strings["Lesbian"] = "Lesbisk";
-$a->strings["No Preference"] = "Ingen preferanse";
-$a->strings["Bisexual"] = "Biseksuell";
-$a->strings["Autosexual"] = "Autoseksuell";
-$a->strings["Abstinent"] = "Avholdende";
-$a->strings["Virgin"] = "Jomfru";
-$a->strings["Deviant"] = "Avviker";
-$a->strings["Fetish"] = "Fetisj";
-$a->strings["Oodles"] = "Masse";
-$a->strings["Nonsexual"] = "Ikke-seksuell";
-$a->strings["Single"] = "Enslig";
-$a->strings["Lonely"] = "Ensom";
-$a->strings["Available"] = "Tilgjengelig";
-$a->strings["Unavailable"] = "Ikke tilgjengelig";
-$a->strings["Has crush"] = "Er forelsket";
-$a->strings["Infatuated"] = "Betatt";
-$a->strings["Dating"] = "Sammen med";
-$a->strings["Unfaithful"] = "Utro";
-$a->strings["Sex Addict"] = "Sexavhengig";
-$a->strings["Friends/Benefits"] = "Venner med frynsegoder";
-$a->strings["Casual"] = "Tilfeldig";
-$a->strings["Engaged"] = "Forlovet";
-$a->strings["Married"] = "Gift";
-$a->strings["Imaginarily married"] = "Gift i fantasien";
-$a->strings["Partners"] = "Partnere";
-$a->strings["Cohabiting"] = "Samboer";
-$a->strings["Common law"] = "Samboer";
-$a->strings["Happy"] = "Lykkelig";
-$a->strings["Not looking"] = "Ikke på utkikk";
-$a->strings["Swinger"] = "Partnerbytte";
-$a->strings["Betrayed"] = "Bedratt";
-$a->strings["Separated"] = "Separert";
-$a->strings["Unstable"] = "Ustabilt";
-$a->strings["Divorced"] = "Skilt";
-$a->strings["Imaginarily divorced"] = "Skilt i fantasien";
-$a->strings["Widowed"] = "Enke";
-$a->strings["Uncertain"] = "Usikkert";
-$a->strings["It's complicated"] = "Det er komplisert";
-$a->strings["Don't care"] = "Bryr meg ikke";
-$a->strings["Ask me"] = "Spør meg";
-$a->strings["Logged out."] = "Logget ut.";
-$a->strings["Failed authentication"] = "Mislykket autentisering";
-$a->strings["Login failed."] = "Innlogging mislyktes.";
-$a->strings["Permission denied"] = "Tillatelse avvist";
-$a->strings["(Unknown)"] = "(Ukjent)";
-$a->strings["Item not found."] = "Elementet ble ikke funnet.";
-$a->strings["Collection not found."] = "Samlingen ble ikke funnet.";
-$a->strings["Collection is empty."] = "Samlingen er tom.";
-$a->strings["Collection: %s"] = "Samling: %s";
-$a->strings["Connection: %s"] = "Forbindelse: %s";
-$a->strings["Connection not found."] = "Forbindelsen ble ikke funnet.";
-$a->strings["Can view my \"public\" stream and posts"] = "Kan se min \"offentlige\" strøm og innlegg";
-$a->strings["Can view my \"public\" channel profile"] = "Kan se min \"offentlige\" kanalprofil";
-$a->strings["Can view my \"public\" photo albums"] = "Kan se mine \"offentlige\" fotoalbum";
-$a->strings["Can view my \"public\" address book"] = "Kan se min \"offentlige\" adressebok";
-$a->strings["Can view my \"public\" file storage"] = "Kan se mitt \"offentlige\" fillager";
-$a->strings["Can view my \"public\" pages"] = "Kan se mine \"offentlige\" sider";
-$a->strings["Can send me their channel stream and posts"] = "Kan sende meg deres kanalstrøm og innlegg";
-$a->strings["Can post on my channel page (\"wall\")"] = "Kan lage innlegg på min kanalside (\"vegg\")";
-$a->strings["Can comment on my posts"] = "Kan kommentere på mine innlegg";
-$a->strings["Can send me private mail messages"] = "Kan sende meg private meldinger";
-$a->strings["Can post photos to my photo albums"] = "Kan legge inn bilder i mine fotoalbum";
-$a->strings["Can forward to all my channel contacts via post @mentions"] = "Kan videresende til alle mine kanalkontakter via @navn i innlegg";
-$a->strings["Advanced - useful for creating group forum channels"] = "Avansert - nyttig for å lage forumkanaler for grupper";
-$a->strings["Can chat with me (when available)"] = "Kan chatte/sende lynmeldinger til meg (når tilgjengelig)";
-$a->strings["Can write to my \"public\" file storage"] = "Kan skrive til mitt \"offentlige\" fillager";
-$a->strings["Can edit my \"public\" pages"] = "Kan endre mine \"offentlige\" sider";
-$a->strings["Can source my \"public\" posts in derived channels"] = "Kan bruke mine \"offentlige\" innlegg som kanalkilde i egne kanaler";
-$a->strings["Somewhat advanced - very useful in open communities"] = "Litt avansert - svært nyttig i åpne fellesskap";
-$a->strings["Can administer my channel resources"] = "Kan administrere mine kanalressurser";
-$a->strings["Extremely advanced. Leave this alone unless you know what you are doing"] = "Ekstremt avansert. La dette være med mindre du vet hva du gjør";
$a->strings["Set your current mood and tell your friends"] = "Angi ditt nåværende humør og fortell dine venner";
+$a->strings["Invalid profile identifier."] = "Ugyldig profil-identifikator.";
+$a->strings["Profile Visibility Editor"] = "Endre profilsynlighet";
+$a->strings["Click on a contact to add or remove."] = "Klikk på en kontakt for å legge til eller fjerne.";
+$a->strings["Visible To"] = "Synlig for";
+$a->strings["All Connections"] = "Alle forbindelser";
$a->strings["Menu not found."] = "Menyen ble ikke funnet.";
$a->strings["Menu element updated."] = "Menyelement er oppdatert.";
$a->strings["Unable to update menu element."] = "Ikke i stand til å oppdatere menyelement.";
@@ -820,169 +884,22 @@ $a->strings["Menu Item Permissions"] = "Menyelement Tillatelser";
$a->strings["(click to open/close)"] = "(klikk for å åpne/lukke)";
$a->strings["Link text"] = "Lenketekst";
$a->strings["URL of link"] = "URL-en til lenken";
-$a->strings["Use Red magic-auth if available"] = "Bruk Red sin magiske-autent hvis mulig";
+$a->strings["Use RedMatrix magic-auth if available"] = "Bruk RedMatrixs magiske-autentisering hvis tilgjengelig";
$a->strings["Open link in new window"] = "Ã…pne lenke i nytt vindu";
$a->strings["Order in list"] = "Ordne i liste";
$a->strings["Higher numbers will sink to bottom of listing"] = "Høyere tall vil synke mot bunnen av listen";
-$a->strings["Create"] = "Lag";
$a->strings["Menu item not found."] = "Menyelement ble ikke funnet.";
$a->strings["Menu item deleted."] = "Menyelement slettet.";
$a->strings["Menu item could not be deleted."] = "Menyelement kunne ikke bli slettet.";
$a->strings["Edit Menu Element"] = "Endre menyelement";
$a->strings["Modify"] = "Endre";
-$a->strings["sent you a private message"] = "sendte deg en privat melding";
-$a->strings["added your channel"] = "la til din kanal";
-$a->strings["posted an event"] = "la ut en hendelse";
-$a->strings["network"] = "nettverk";
-$a->strings["Name is required"] = "Navn er påkrevd";
-$a->strings["Key and Secret are required"] = "Nøkkel og hemmelighet er påkrevd";
-$a->strings["Passwords do not match. Password unchanged."] = "Passordene stemmer ikke overens. Passord uforandret.";
-$a->strings["Empty passwords are not allowed. Password unchanged."] = "Tomme passord er ikke tillatt. Passord uforandret.";
-$a->strings["Password changed."] = "Passord endret.";
-$a->strings["Password update failed. Please try again."] = "Passord oppdatering mislyktes. Vennligst prøv igjen.";
-$a->strings["Not valid email."] = "Ikke gyldig e-post.";
-$a->strings["Protected email address. Cannot change to that email."] = "Beskyttet e-postadresse. Kan ikke endre til den e-postadressen.";
-$a->strings["System failure storing new email. Please try again."] = "Systemfeil ved lagring av ny e-post. Vennligst prøv igjen.";
-$a->strings["Settings updated."] = "Innstillinger oppdatert.";
-$a->strings["Add application"] = "Legg til program";
-$a->strings["Name"] = "Navn";
-$a->strings["Name of application"] = "Navn på program";
-$a->strings["Consumer Key"] = "Consumer Key";
-$a->strings["Automatically generated - change if desired. Max length 20"] = "Automatisk laget - kan endres om du vil. Største lengde 20";
-$a->strings["Consumer Secret"] = "Consumer Secret";
-$a->strings["Redirect"] = "Omdirigering";
-$a->strings["Redirect URI - leave blank unless your application specifically requires this"] = "Omdirigerings-URI - la stå tomt hvis ikke ditt program spesifikt krever dette";
-$a->strings["Icon url"] = "Ikon-URL";
-$a->strings["Optional"] = "Valgfritt";
-$a->strings["You can't edit this application."] = "Du kan ikke endre dette programmet.";
-$a->strings["Connected Apps"] = "Tilkoblede app-er";
-$a->strings["Client key starts with"] = "Klientnøkkel starter med";
-$a->strings["No name"] = "Ikke noe navn";
-$a->strings["Remove authorization"] = "Fjern tillatelse";
-$a->strings["No feature settings configured"] = "Ingen funksjonsinnstillinger er konfigurert";
-$a->strings["Feature Settings"] = "Funksjonsinnstillinger";
-$a->strings["Account Settings"] = "Kontoinnstillinger";
-$a->strings["Password Settings"] = "Passordinnstillinger";
-$a->strings["New Password:"] = "Nytt passord:";
-$a->strings["Confirm:"] = "Bekreft:";
-$a->strings["Leave password fields blank unless changing"] = "La passordfeltene stå blanke om det ikke skal endres";
-$a->strings["Email Address:"] = "E-postadresse:";
-$a->strings["Remove Account"] = "Slett konto";
-$a->strings["Warning: This action is permanent and cannot be reversed."] = "Advarsel: Denne handlingen er permanent og kan ikke angres.";
-$a->strings["Off"] = "Av";
-$a->strings["On"] = "PÃ¥";
-$a->strings["Additional Features"] = "Ekstra funksjoner";
-$a->strings["Connector Settings"] = "Koblingsinnstillinger";
-$a->strings["No special theme for mobile devices"] = "Ikke noe spesielt tema for mobile enheter";
-$a->strings["%s - (Experimental)"] = "%s - (Eksperimentelt)";
-$a->strings["Display Settings"] = "Visningsinnstillinger";
-$a->strings["Display Theme:"] = "Visningstema:";
-$a->strings["Mobile Theme:"] = "Mobiltema:";
-$a->strings["Update browser every xx seconds"] = "Oppdater nettleser hvert xx sekunder";
-$a->strings["Minimum of 10 seconds, no maximum"] = "Minimum 10 sekunder, ikke noe maksimum";
-$a->strings["Maximum number of conversations to load at any time:"] = "Maksimalt antall samtaler å laste samtidig:";
-$a->strings["Maximum of 100 items"] = "Maksimum 100 elementer";
-$a->strings["Don't show emoticons"] = "Ikke vis følelsesikoner";
-$a->strings["System Page Layout Editor - (advanced)"] = "Systemsidens layoutbehandler - (avansert)";
-$a->strings["Nobody except yourself"] = "Ingen unntatt deg selv";
-$a->strings["Only those you specifically allow"] = "Bare de du spesifikt tillater";
-$a->strings["Approved connections"] = "Godkjente forbindelser";
-$a->strings["Any connections"] = "Enhver forbindelse";
-$a->strings["Anybody on this website"] = "Enhver ved dette nettstedet";
-$a->strings["Anybody in this network"] = "Enhver i dette nettverket";
-$a->strings["Anybody authenticated"] = "Enhver som er autentisert";
-$a->strings["Anybody on the internet"] = "Enhver på Internett";
-$a->strings["Publish your default profile in the network directory"] = "Publiser din standardprofil i nettverkskatalogen";
-$a->strings["No"] = "Nei";
-$a->strings["Yes"] = "Ja";
-$a->strings["Allow us to suggest you as a potential friend to new members?"] = "Tillat oss å foreslå deg som en mulig venn til nye medlemmer?";
-$a->strings["or"] = "eller";
-$a->strings["Your channel address is"] = "Din kanaladresse er";
-$a->strings["Channel Settings"] = "Kanalinnstillinger";
-$a->strings["Basic Settings"] = "Grunninnstillinger";
-$a->strings["Your Timezone:"] = "Din tidssone:";
-$a->strings["Default Post Location:"] = "Standard plassering ved innlegg:";
-$a->strings["Geographical location to display on your posts"] = "Geografisk plassering som vises på dine innlegg";
-$a->strings["Use Browser Location:"] = "Bruk nettleseren sin plassering:";
-$a->strings["Adult Content"] = "Voksent innhold";
-$a->strings["This channel frequently or regularly publishes adult content. (Please tag any adult material and/or nudity with #NSFW)"] = "Denne kanalen vil ofte eller jevnlig publisere voksent innhold. (Vennligst merk alt voksent materiale og/eller nakenhet med #NSFW)";
-$a->strings["Security and Privacy Settings"] = "Sikkerhets- og personverninnstillinger";
-$a->strings["Hide my online presence"] = "Skjul min tilstedeværelse online";
-$a->strings["Prevents displaying in your profile that you are online"] = "Forhindrer visning på din profil av at du er online ";
-$a->strings["Simple Privacy Settings:"] = "Enkle personverninnstillinger:";
-$a->strings["Very Public - <em>extremely permissive (should be used with caution)</em>"] = "Svært offentlig - <em>ekstremt åpent (bør brukes med varsomhet)</em>";
-$a->strings["Typical - <em>default public, privacy when desired (similar to social network permissions but with improved privacy)</em>"] = "Typisk - <em>standard er offentlig, personvern når ønsket (likner på tillatelser i sosiale nettverk, men med forbedret personvern)</em>";
-$a->strings["Private - <em>default private, never open or public</em>"] = "Privat - <em>standard er privat, aldri åpen eller offentlig</em>";
-$a->strings["Blocked - <em>default blocked to/from everybody</em>"] = "Blokkert - <em>standard blokkert til/fra alle</em>";
-$a->strings["Allow others to tag your posts"] = "Tillat andre å merke dine innlegg";
-$a->strings["Often used by the community to retro-actively flag inappropriate content"] = "Ofte brukt av fellesskapet for å merke upassende innhold i etterkant";
-$a->strings["Advanced Privacy Settings"] = "Avanserte personverninnstillinger";
-$a->strings["Expire other channel content after this many days"] = "Annet kanal innhold utløper etter så mange dager";
-$a->strings["0 or blank prevents expiration"] = "0 eller blankt forhindrer utløp";
-$a->strings["Maximum Friend Requests/Day:"] = "Maksimalt antall venneforespørsler per dag:";
-$a->strings["May reduce spam activity"] = "Kan redusere søppelpostaktivitet";
-$a->strings["Default Post Permissions"] = "Standard innleggstillatelser";
-$a->strings["Maximum private messages per day from unknown people:"] = "Maksimalt antall private meldinger per dag fra ukjente personer:";
-$a->strings["Useful to reduce spamming"] = "Nyttig for å redusere søppelpost";
-$a->strings["Notification Settings"] = "Varslingsinnstillinger";
-$a->strings["By default post a status message when:"] = "Legg inn en statusmelding når du:";
-$a->strings["accepting a friend request"] = "aksepterer en venneforespørsel";
-$a->strings["joining a forum/community"] = "blir med i et forum/miljø";
-$a->strings["making an <em>interesting</em> profile change"] = "gjør en <em>interessant</em> profilendring";
-$a->strings["Send a notification email when:"] = "Send en varsel-e-post når:";
-$a->strings["You receive a connection request"] = "Du har mottatt en forespørsel om forbindelse";
-$a->strings["Your connections are confirmed"] = "Dine forbindelser er bekreftet";
-$a->strings["Someone writes on your profile wall"] = "Noen skriver på din profilvegg";
-$a->strings["Someone writes a followup comment"] = "Noen skriver en oppfølgende kommentar";
-$a->strings["You receive a private message"] = "Du mottar en privat melding";
-$a->strings["You receive a friend suggestion"] = "Du mottok et venneforslag";
-$a->strings["You are tagged in a post"] = "Du merkes i et innlegg";
-$a->strings["You are poked/prodded/etc. in a post"] = "Du ble prikket/oppildnet/og så vider i et innlegg";
-$a->strings["Advanced Account/Page Type Settings"] = "Avanserte innstillinger for konto/sidetype";
-$a->strings["Change the behaviour of this account for special situations"] = "Endre oppførselen til denne kontoen i spesielle situasjoner";
-$a->strings["Please enable expert mode (in <a href=\"settings/features\">Settings > Additional features</a>) to adjust!"] = "Vennligst skru på ekspertmodus (under <a href=\"settings/features\">Innstillinger > Ekstra funksjoner</a>) for å justere!";
-$a->strings["Miscellaneous Settings"] = "Diverse innstillinger";
-$a->strings["Personal menu to display in your channel pages"] = "Personlig meny som kan vises på dine kanalsider";
-$a->strings["Poke/Prod"] = "Prikke/oppildne";
-$a->strings["poke, prod or do other things to somebody"] = "prikke, oppildne eller gjør andre ting med noen";
-$a->strings["Recipient"] = "Mottaker";
-$a->strings["Choose what you wish to do to recipient"] = "Velg hva du ønsker å gjøre med mottakeren";
-$a->strings["Make this post private"] = "Gjør dette innlegget privat";
-$a->strings["Authorize application connection"] = "Tillat programforbindelse";
-$a->strings["Return to your app and insert this Securty Code:"] = "GÃ¥ tilbake til din app og legg inn denne sikkerhetskoden:";
-$a->strings["Please login to continue."] = "Vennligst logg inn for å fortsette.";
-$a->strings["Do you want to authorize this application to access your posts and contacts, and/or create new posts for you?"] = "Vil du tillate dette programmet å få tilgang til dine innlegg og kontakter, og/eller lage nye innlegg for deg?";
-$a->strings["Remote authentication blocked. You are logged into this site locally. Please logout and retry."] = "Fjernautentisering blokkert. Du er logget inn på dette nettstedet lokalt. Vennligst logg ut og prøv på nytt.";
-$a->strings["Welcome %s. Remote authentication successful."] = "Velkommen %s. Ekstern autentisering er vellykket.";
-$a->strings["Item not available."] = "Elementet er ikke tilgjengelig.";
-$a->strings["Fetching URL returns error: %1\$s"] = "Henting av URL gir følgende feil: %1\$s";
-$a->strings["Invalid item."] = "Ugyldig element.";
-$a->strings["Channel not found."] = "Kanalen ble ikke funnet.";
-$a->strings["Page not found."] = "Siden ikke funnet.";
-$a->strings["Image uploaded but image cropping failed."] = "Bildet ble lastet opp, men beskjæring av bildet mislyktes.";
-$a->strings["Image resize failed."] = "Endring av bildestørrelse mislyktes.";
-$a->strings["Shift-reload the page or clear browser cache if the new photo does not display immediately."] = "Hold nede Shift-knappen og last siden på nytt eller tøm nettleserens mellomlager hvis det nye bildet ikke vises umiddelbart.";
-$a->strings["Image exceeds size limit of %d"] = "Bildet overstiger størrelsesbegrensningen på %d";
-$a->strings["Unable to process image."] = "Kan ikke behandle bildet.";
-$a->strings["Photo not available."] = "Bildet er ikke tilgjengelig.";
-$a->strings["Upload File:"] = "Last opp fil:";
-$a->strings["Select a profile:"] = "Velg en profil:";
-$a->strings["Upload Profile Photo"] = "Last opp profilbilde:";
-$a->strings["Upload"] = "Last opp";
-$a->strings["skip this step"] = "hopp over dette steget";
-$a->strings["select a photo from your photo albums"] = "velg et bilde fra dine fotoalbum";
-$a->strings["Crop Image"] = "Beskjær bildet";
-$a->strings["Please adjust the image cropping for optimum viewing."] = "Vennligst juster bildebeskjæringen for optimal visning.";
-$a->strings["Done Editing"] = "Avslutt redigering";
-$a->strings["Image uploaded successfully."] = "Opplasting av bildet var vellykket.";
-$a->strings["Image upload failed."] = "Opplasting av bildet mislyktes.";
-$a->strings["Image size reduction [%s] failed."] = "Forminsking av bildet [%s] mislyktes.";
-$a->strings["Block Name"] = "Byggeklossens navn";
+$a->strings["Some blurb about what to do when you're new here"] = "En standardtekst om hva du bør gjøre som ny her";
$a->strings["Profile not found."] = "Profilen ble ikke funnet.";
$a->strings["Profile deleted."] = "Profilen er slettet.";
$a->strings["Profile-"] = "Profil-";
$a->strings["New profile created."] = "Ny profil opprettet.";
$a->strings["Profile unavailable to clone."] = "Profilen er utilgjengelig for klonen.";
+$a->strings["Profile unavailable to export."] = "Profilen er utilgjengelig for eksport.";
$a->strings["Profile Name is required."] = "Profilnavn er påkrevd.";
$a->strings["Marital Status"] = "Sivilstand";
$a->strings["Romantic Partner"] = "Romantisk partner";
@@ -999,17 +916,21 @@ $a->strings["Address"] = "Adresse";
$a->strings["Location"] = "Plassering";
$a->strings["Profile updated."] = "Profilen er oppdatert.";
$a->strings["Hide your contact/friend list from viewers of this profile?"] = "Skjul kontakt-/vennelisten din fra de som ser på denne profilen?";
+$a->strings["Yes"] = "Ja";
+$a->strings["No"] = "Nei";
$a->strings["Edit Profile Details"] = "Endre profildetaljer";
$a->strings["View this profile"] = "Vis denne profilen";
$a->strings["Change Profile Photo"] = "Endre profilbilde";
$a->strings["Create a new profile using these settings"] = "Lag en ny profil ved å bruke disse innstillingene";
$a->strings["Clone this profile"] = "Klon denne profilen";
$a->strings["Delete this profile"] = "Slett denne profilen";
+$a->strings["Import profile from file"] = "Importer profil fra fil";
+$a->strings["Export profile to file"] = "Eksporter profil til fil";
$a->strings["Profile Name:"] = "Profilnavn:";
$a->strings["Your Full Name:"] = "Ditt fulle navn:";
$a->strings["Title/Description:"] = "Tittel/Beskrivelse:";
$a->strings["Your Gender:"] = "Ditt kjønn:";
-$a->strings["Birthday (%s):"] = "Fødselsdag (%s):";
+$a->strings["Birthday :"] = "Fødselsdag:";
$a->strings["Street Address:"] = "Gateadresse:";
$a->strings["Locality/City:"] = "Sted/By:";
$a->strings["Postal/Zip Code:"] = "Postnummer/ZIP-kode:";
@@ -1035,19 +956,189 @@ $a->strings["Film/dance/culture/entertainment"] = "Film/dans/kultur/underholdnin
$a->strings["Love/romance"] = "Kjærlighet/romantikk";
$a->strings["Work/employment"] = "Arbeid/sysselsetting";
$a->strings["School/education"] = "Skole/utdanning";
-$a->strings["This is your <strong>public</strong> profile.<br />It <strong>may</strong> be visible to anybody using the internet."] = "Dette er din <strong>offentlige</strong> profil.<br />Den <strong>kan</strong> være synlig for alle på Internett.";
+$a->strings["This is your default profile."] = "Dette er din standardprofil.";
$a->strings["Age: "] = "Alder:";
$a->strings["Edit/Manage Profiles"] = "Endre/håndter profiler";
$a->strings["Add profile things"] = "Legg til profilting";
$a->strings["Include desirable objects in your profile"] = "Inkluder ønskverdige objekter i din profil";
-$a->strings["Bookmark added"] = "Bokmerke lagt til";
-$a->strings["My Bookmarks"] = "Mine bokmerker";
-$a->strings["My Connections Bookmarks"] = "Mine forbindelsers bokmerker";
-$a->strings["Invalid profile identifier."] = "Ugyldig profil-identifikator.";
-$a->strings["Profile Visibility Editor"] = "Endre profilsynlighet";
-$a->strings["Click on a contact to add or remove."] = "Klikk på en kontakt for å legge til eller fjerne.";
-$a->strings["Visible To"] = "Synlig for";
-$a->strings["All Connections"] = "Alle forbindelser";
+$a->strings["Continue"] = "Fortsett";
+$a->strings["Premium Channel Setup"] = "Premiumkanal-oppsett";
+$a->strings["Enable premium channel connection restrictions"] = "Slå på restriksjoner for forbindelse med premiumkanal";
+$a->strings["Please enter your restrictions or conditions, such as paypal receipt, usage guidelines, etc."] = "Vennligst skriv dine restriksjoner og betingelser, slik som PayPal-kvittering, retningslinjer for bruk, og så videre.";
+$a->strings["This channel may require additional steps or acknowledgement of the following conditions prior to connecting:"] = "Denne kanalen kan kreve ytterligere steg og bekreftelse av følgende betingelser før tilkobling:";
+$a->strings["Potential connections will then see the following text before proceeding:"] = "Potensielle forbindelser vil da se følgende tekst før de går videre:";
+$a->strings["By continuing, I certify that I have complied with any instructions provided on this page."] = "Ved å fortsette bekrefter jeg at jeg har oppfylt alle instruksjoner gitt på denne siden.";
+$a->strings["(No specific instructions have been provided by the channel owner.)"] = "(Ingen spesifikke instruksjoner er gitt av kanaleieren.)";
+$a->strings["Restricted or Premium Channel"] = "Begrenset kanal eller premiumkanal";
+$a->strings["Remote authentication blocked. You are logged into this site locally. Please logout and retry."] = "Fjernautentisering blokkert. Du er logget inn på dette nettstedet lokalt. Vennligst logg ut og prøv på nytt.";
+$a->strings["Welcome %s. Remote authentication successful."] = "Velkommen %s. Ekstern autentisering er vellykket.";
+$a->strings["Red Matrix Server - Setup"] = "Red Matrix tjener - oppsett";
+$a->strings["Could not connect to database."] = "Fikk ikke kontakt med databasen.";
+$a->strings["Could not connect to specified site URL. Possible SSL certificate or DNS issue."] = "Fikk ikke kontakt med det angitte nettstedets URL. Problemet kan muligens skyldes SSL-sertifikatet eller DNS.";
+$a->strings["Could not create table."] = "Kunne ikke lage tabellen.";
+$a->strings["Your site database has been installed."] = "Databasen til ditt nettsted har blitt installert.";
+$a->strings["You may need to import the file \"install/schema_xxx.sql\" manually using a database client."] = "Du må kanskje importere filen \"install/schmea_xxx.sql\" manuelt ved å bruke en databaseklient.";
+$a->strings["Please see the file \"install/INSTALL.txt\"."] = "Vennligst les filen \"install/INSTALL.txt\".";
+$a->strings["System check"] = "Systemsjekk";
+$a->strings["Next"] = "Neste";
+$a->strings["Check again"] = "Sjekk igjen";
+$a->strings["Database connection"] = "Databaseforbindelse";
+$a->strings["In order to install Red Matrix we need to know how to connect to your database."] = "For å installere Red Matrix må du oppgi hvordan din database kan kontaktes.";
+$a->strings["Please contact your hosting provider or site administrator if you have questions about these settings."] = "Vennligst kontakt din nettstedstilbyder eller nettstedsadministrator hvis du har spørsmål om disse innstillingene.";
+$a->strings["The database you specify below should already exist. If it does not, please create it before continuing."] = "Databasen du oppgir nedenfor må finnes på forhånd. Hvis den ikke finnes, vennligst lag den før du fortsetter.";
+$a->strings["Database Server Name"] = "Navn på databasetjener";
+$a->strings["Default is localhost"] = "Standard er localhost";
+$a->strings["Database Port"] = "Databaseport";
+$a->strings["Communication port number - use 0 for default"] = "Kommunikasjonsportnummer - bruk 0 for standard";
+$a->strings["Database Login Name"] = "Database innloggingsnavn";
+$a->strings["Database Login Password"] = "Database innloggingspassord";
+$a->strings["Database Name"] = "Databasenavn";
+$a->strings["Database Type"] = "Databasetype";
+$a->strings["Site administrator email address"] = "E-postadressen til administrator ved nettstedet";
+$a->strings["Your account email address must match this in order to use the web admin panel."] = "Din konto sin e-postadresse må være lik denne for å kunne bruke web-administrasjonspanelet.";
+$a->strings["Website URL"] = "Nettstedets URL";
+$a->strings["Please use SSL (https) URL if available."] = "Vennligst bruk SSL (https) URL hvis tilgjengelig.";
+$a->strings["Please select a default timezone for your website"] = "Vennligst velg en standard tidssone for ditt nettsted";
+$a->strings["Site settings"] = "Nettstedets innstillinger";
+$a->strings["Could not find a command line version of PHP in the web server PATH."] = "Fant ikke en kommandolinjeversjon av PHP i webtjenerens sti (PATH).";
+$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."] = "Hvis du ikke har en kommandolinjeversjon av PHP installert på tjeneren, så vil du ikke kunne kjøre bakgrunnshenting via cron.";
+$a->strings["PHP executable path"] = "PHP-kjørefilens sti";
+$a->strings["Enter full path to php executable. You can leave this blank to continue the installation."] = "Skriv full sti til kjørefilen for PHP. Du kan la denne stå blank for å fortsette installasjonen.";
+$a->strings["Command line PHP"] = "Kommandolinje PHP";
+$a->strings["The command line version of PHP on your system does not have \"register_argc_argv\" enabled."] = "Kommandolinjeversjonen av PHP på ditt system har ikke \"register_argc_argv\" påskrudd.";
+$a->strings["This is required for message delivery to work."] = "Dette er påkrevd for at meldingslevering skal virke.";
+$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"] = "Feil: \"openssl_pkey_new\"-funksjonen på dette systemet er ikke i stand til å lage krypteringsnøkler";
+$a->strings["If running under Windows, please see \"http://www.php.net/manual/en/openssl.installation.php\"."] = "Ved kjøring på Windows, vennligst se \"http://www.php.net/manual/en/openssl.installation.php\".";
+$a->strings["Generate encryption keys"] = "Lag krypteringsnøkler";
+$a->strings["libCurl PHP module"] = "libCurl PHP-modul";
+$a->strings["GD graphics PHP module"] = "GD graphics PHP-modul";
+$a->strings["OpenSSL PHP module"] = "OpenSSL PHP-modul";
+$a->strings["mysqli or postgres PHP module"] = "MySQLi eller Postgres 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."] = "Feil: Apache web-tjenerens mod-rewrite-modul er påkrevd, men ikke installert.";
+$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"] = "Feil: proc_open er påkrevd, men er enten ikke installert eller har blitt avskrudd i php.ini";
+$a->strings["Error: libCURL PHP module required but not installed."] = "Feil: libCURL PHP-modul er påkrevd, men er ikke installert.";
+$a->strings["Error: GD graphics PHP module with JPEG support required but not installed."] = "Feil: GD graphics PHP-modul med JPEG-støtte er påkrevd, men er ikke installert.";
+$a->strings["Error: openssl PHP module required but not installed."] = "Feil: openssl PHP-modul er påkrevd, men er ikke installert.";
+$a->strings["Error: mysqli or postgres PHP module required but neither are installed."] = "Feil: mysqli eller postgres PHP modul er påkrevd, men ingen av dem er installert.";
+$a->strings["Error: mb_string PHP module required but not installed."] = "Feil: mb_string PHP-modul er påkrevd, men er ikke installert.";
+$a->strings["Error: mcrypt PHP module required but not installed."] = "Feil: mcrypt PHP-modul er påkrevd, men er ikke installert.";
+$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."] = "Web-installasjonen må kunne lage en fil kalt \".htconfig.php\" i toppkatalogen til web-tjeneren din, men dette får den ikke til.";
+$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."] = "Dette er oftest tillatelsesinnstilling, ettersom webtjeneren kanskje kan skrive til filer i din mappe - selv om du kan.";
+$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."] = "På slutten av denne prosedyren vil vi gi deg en tekst til å lagre i en fil kalt .htconfig.php i toppkatalogen til din Red.";
+$a->strings["You can alternatively skip this procedure and perform a manual installation. Please see the file \"install/INSTALL.txt\" for instructions."] = "Alternativt, så kan du hoppe over denne prosedyren og gjennomføre en manuell installasjon. Vennligst se filen \"install/INSTALL.txt\" for instruksjoner.";
+$a->strings[".htconfig.php is writable"] = ".htconfig.php kan skrives til";
+$a->strings["Red uses the Smarty3 template engine to render its web views. Smarty3 compiles templates to PHP to speed up rendering."] = "Red bruker malmotoren Smarty3 for å gjengi sine webvisninger. Smarty3 kompilerer malene om til PHP for å framskynde gjengivelsen.";
+$a->strings["In order to store these compiled templates, the web server needs to have write access to the directory %s under the Red top level folder."] = "For å kunne lagre disse kompilerte malene, så må webtjeneren ha skrivetilgang til katalogen %s under Red sin hovedmappe.";
+$a->strings["Please ensure that the user that your web server runs as (e.g. www-data) has write access to this folder."] = "Vennligst sikre at brukeren som din web-tjeneste kjører som (for eksempel www-data) har skrivetilgang til denne katalogen.";
+$a->strings["Note: as a security measure, you should give the web server write access to %s only--not the template files (.tpl) that it contains."] = "Merknad: som et sikkerhetstiltak bør du bare gi webtjerenn skrivetilgang til %s - ikke til malfilene (.tpl) som den inneholder.";
+$a->strings["%s is writable"] = "%s kan skrives til";
+$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 bruker lagringsmappen for å lagre opplastede filer. Webtjeneren trenger å ha skrivetilgang til lagringsmappen under Red sin toppnivåmappe.";
+$a->strings["store is writable"] = "lageret kan skrives til";
+$a->strings["SSL certificate cannot be validated. Fix certificate or disable https access to this site."] = "SSL-sertifikatet kan ikke kontrolleres. Fiks sertifikatet eller skru av https tilgang til dette nettstedet.";
+$a->strings["If you have https access to your website or allow connections to TCP port 443 (the https: port), you MUST use a browser-valid certificate. You MUST NOT use self-signed certificates!"] = "Hvis du har HTTPS-tilgang til ditt nettsted eller tillater forbindelser til TCP port 443 (HTTPS-porten), så MÅ du bruke nettlesergodkjent sertifkater. Du MÅ IKKE bruke egensignert sertifikater!";
+$a->strings["This restriction is incorporated because public posts from you may for example contain references to images on your own hub."] = "Denne begrensningen er tatt inn fordi offentlige innlegg fra deg kan for eksempel inneholde referanser til bilder på din egen hub.";
+$a->strings["If your certificate is not recognized, members of other sites (who may themselves have valid certificates) will get a warning message on their own site complaining about security issues."] = "Hvis sertifikatet ditt ikke gjenkjennes, så vil medlemmer på andre nettsteder (som selv kan ha godkjente sertifikater) få en beskjed med en advarsel på deres eget nettsted som klager over sikkerhetsproblemer.";
+$a->strings["This can cause usability issues elsewhere (not just on your own site) so we must insist on this requirement."] = "Dette kan gi problemer med brukervennlighet (ikke bare på ditt eget nettsted), så vi må insistere på dette kravet.";
+$a->strings["Providers are available that issue free certificates which are browser-valid."] = "Det finnes tilbydere som utsteder gratis sertifikater som er gyldige i nettlesere.";
+$a->strings["SSL certificate validation"] = "SSL sertifikat-kontroll";
+$a->strings["Url rewrite in .htaccess is not working. Check your server configuration.Test: "] = "URL omskriving (rewrite) i .htaccess virker ikke. Sjekk konfigurasjonen til tjeneren din. Test:";
+$a->strings["Url rewrite is working"] = "URL rewrite virker";
+$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."] = "Databasekonfigurasjonsfilen \".htconfig.php\" kunne ikke skrives. Vennligst bruk den medfølgende teksten for å lage en konfigurasjonsfil i toppkatalogen av din web-tjener.";
+$a->strings["Errors encountered creating database tables."] = "Feil oppstod under opprettelsen av databasetabeller.";
+$a->strings["<h1>What next</h1>"] = "<h1>Hva gjenstår</h1>";
+$a->strings["IMPORTANT: You will need to [manually] setup a scheduled task for the poller."] = "VIKTIG: Du må [manuelt] sette opp en automatisert tidfestet oppgave til bakgrunnshenteren.";
+$a->strings["Version %s"] = "Versjon %s";
+$a->strings["Installed plugins/addons/apps:"] = "Installerte tilleggsfunksjoner/tillegg/apper:";
+$a->strings["No installed plugins/addons/apps"] = "Ingen installerte tilleggsfunksjoner/tillegg/apper";
+$a->strings["Red"] = "Red";
+$a->strings["This is a hub of the Red Matrix - a global cooperative network of decentralized privacy enhanced websites."] = "Dette er en hub i Red Matrix - et globalt kooperativt nettverk av desentraliserte personvernforsterkede nettsteder.";
+$a->strings["Running at web location"] = "Kjører på webplasseringen";
+$a->strings["Please visit <a href=\"http://getzot.com\">GetZot.com</a> to learn more about the Red Matrix."] = "Vennligst besøk <a href=\"http://getzot.com\">GetZot.com</a> for å lære mer om Red Matrix.";
+$a->strings["Bug reports and issues: please visit"] = "Feilmeldinger og feilretting: vennligst besøk";
+$a->strings["Suggestions, praise, etc. - please email \"redmatrix\" at librelist - dot com"] = "Forslag, ros og så videre - vennligst e-post \"redmatrix\" hos librelist - punktum com";
+$a->strings["Site Administrators"] = "Nettstedsadministratorer";
+$a->strings["Poke/Prod"] = "Prikke/oppildne";
+$a->strings["poke, prod or do other things to somebody"] = "prikke, oppildne eller gjør andre ting med noen";
+$a->strings["Recipient"] = "Mottaker";
+$a->strings["Choose what you wish to do to recipient"] = "Velg hva du ønsker å gjøre med mottakeren";
+$a->strings["Make this post private"] = "Gjør dette innlegget privat";
+$a->strings["Authorize application connection"] = "Tillat programforbindelse";
+$a->strings["Return to your app and insert this Securty Code:"] = "GÃ¥ tilbake til din app og legg inn denne sikkerhetskoden:";
+$a->strings["Please login to continue."] = "Vennligst logg inn for å fortsette.";
+$a->strings["Do you want to authorize this application to access your posts and contacts, and/or create new posts for you?"] = "Vil du tillate dette programmet å få tilgang til dine innlegg og kontakter, og/eller lage nye innlegg for deg?";
+$a->strings["Item not available."] = "Elementet er ikke tilgjengelig.";
+$a->strings["Fetching URL returns error: %1\$s"] = "Henting av URL gir følgende feil: %1\$s";
+$a->strings["Invalid item."] = "Ugyldig element.";
+$a->strings["Channel not found."] = "Kanalen ble ikke funnet.";
+$a->strings["Page not found."] = "Siden ikke funnet.";
+$a->strings["Failed to create source. No channel selected."] = "Mislyktes med å lage kilde. Ingen kanal er valgt.";
+$a->strings["Source created."] = "Kilden er laget.";
+$a->strings["Source updated."] = "Kilden er oppdatert.";
+$a->strings["*"] = "*";
+$a->strings["Manage remote sources of content for your channel."] = "HÃ¥ndtere eksterne innholdskilder til din kanal.";
+$a->strings["New Source"] = "Ny kilde";
+$a->strings["Import all or selected content from the following channel into this channel and distribute it according to your channel settings."] = "Importer alt eller et utvalgt av innhold fra følgende kanal inn i denne kanalen og distribuer det i henhold til dine egne kanalinnstillinger.";
+$a->strings["Only import content with these words (one per line)"] = "Bare importer innhold med disse ordene (ett ord per linje)";
+$a->strings["Leave blank to import all public content"] = "La stå tomt for å importere alt offentlig innhold";
+$a->strings["Channel Name"] = "Kanalnavn";
+$a->strings["Source not found."] = "Kilden ble ikke funnet.";
+$a->strings["Edit Source"] = "Endre kilde";
+$a->strings["Delete Source"] = "Slett kilde";
+$a->strings["Source removed"] = "Kilden er fjernet";
+$a->strings["Unable to remove source."] = "Ikke i stand til å fjerne kilde.";
+$a->strings["Block Name"] = "Byggeklossens navn";
+$a->strings["Public access denied."] = "Offentlig tilgang avvist.";
+$a->strings["Gender: "] = "Kjønn:";
+$a->strings["Status: "] = "Status:";
+$a->strings["Homepage: "] = "Hjemmeside:";
+$a->strings["Hometown: "] = "Hjemby:";
+$a->strings["About: "] = "Om:";
+$a->strings["Public Forum:"] = "Offentlig forum:";
+$a->strings["Keywords: "] = "Nøkkelord:";
+$a->strings["Finding:"] = "Finner:";
+$a->strings["next page"] = "Neste side";
+$a->strings["previous page"] = "Forrige side";
+$a->strings["No entries (some entries may be hidden)."] = "Ingen oppføringer (noen oppføringer kan være skjult).";
+$a->strings["Maximum daily site registrations exceeded. Please try again tomorrow."] = "Antallet daglige registreringer ved nettstedet er overskredet. Vær vennlig å prøve igjen imorgen.";
+$a->strings["Please indicate acceptance of the Terms of Service. Registration failed."] = "Vennligst angi at tjenesteavtalen er akseptert. Registrering mislyktes.";
+$a->strings["Passwords do not match."] = "Passordene er ikke like.";
+$a->strings["Registration successful. Please check your email for validation instructions."] = "Registreringen er vellykket. Vennligst sjekk e-posten din for å bekrefte opprettelsen.";
+$a->strings["Your registration is pending approval by the site owner."] = "Din registrering venter på godkjenning av nettstedets eier.";
+$a->strings["Your registration can not be processed."] = "Din registrering kan ikke behandles.";
+$a->strings["Registration on this site/hub is by approval only."] = "Registrering på dette nettstedet/denne hubben skjer bare gjennom godkjenning.";
+$a->strings["<a href=\"pubsites\">Register at another affiliated site/hub</a>"] = "<a href=\"pubsites\">Registrer på et annet tilknyttet nettsted/hub</a>";
+$a->strings["This site has exceeded the number of allowed daily account registrations. Please try again tomorrow."] = "Dette nettstedet har overskredet antallet tillate kontoregistreringer per dag. Vennligst prøv igjen imorgen.";
+$a->strings["Terms of Service"] = "Tjenesteavtale";
+$a->strings["I accept the %s for this website"] = "Jeg godtar %s for dette nettstedet";
+$a->strings["I am over 13 years of age and accept the %s for this website"] = "Jeg er over 13 år gammel og aksepterer %s for dette nettstedet.";
+$a->strings["Registration"] = "Registrering";
+$a->strings["Membership on this site is by invitation only."] = "Medlemskap ved dette nettstedet skjer kun via invitasjon.";
+$a->strings["Please enter your invitation code"] = "Vennligst skriv din invitasjonskode";
+$a->strings["Your email address"] = "Din e-postadresse";
+$a->strings["Choose a password"] = "Velg et passord";
+$a->strings["Please re-enter your password"] = "Vennligst skriv ditt passord en gang til";
+$a->strings["Event can not end before it has started."] = "Hendelsen kan ikke slutte før den starter.";
+$a->strings["Event title and start time are required."] = "Hendelsestittel og starttidspunkt er påkrevd.";
+$a->strings["Event not found."] = "Hendelsen ble ikke funnet.";
+$a->strings["l, F j"] = "l, F j";
+$a->strings["Edit event"] = "Endre hendelse";
+$a->strings["Create New Event"] = "Lag ny hendelse";
+$a->strings["Previous"] = "Forrige";
+$a->strings["Event details"] = "Hendelsesdetaljer";
+$a->strings["Starting date and Title are required."] = "Startdato og Tittel er påkrevd.";
+$a->strings["Event Starts:"] = "Hendelsen starter:";
+$a->strings["Required"] = "PÃ¥krevd";
+$a->strings["Finish date/time is not known or not relevant"] = "Sluttdato/-tidspunkt er ikke kjent eller ikke relevant";
+$a->strings["Event Finishes:"] = "Hendelsen slutter:";
+$a->strings["Adjust for viewer timezone"] = "Juster i forhold til tilskuerens tidssone";
+$a->strings["Description:"] = "Beskrivelse:";
+$a->strings["Title:"] = "Tittel:";
+$a->strings["Share this event"] = "Del denne hendelsen";
$a->strings["Public Sites"] = "Offentlige nettsteder";
$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."] = "Nettstedene på listen tillater offentlig registrering i Red Matrix. Alle nettsteder i matrix er forbundet så medlemskap på enhver av dem formidler medlemskap i hele matrix. Noen nettsteder kan kreve abonnement eller tilby lagdelte tjenesteavtaler. Tilbyderlenkene <strong>kan</strong> gi tilleggsopplysninger.";
$a->strings["Site URL"] = "Nettstedets URL";
@@ -1069,28 +1160,17 @@ $a->strings["Bookmark this room"] = "Bokmerk dette rommet";
$a->strings["New Chatroom"] = "Nytt chatrom";
$a->strings["Chatroom Name"] = "Navn på chatrom";
$a->strings["%1\$s's Chatrooms"] = "%1\$s sine chatrom";
-$a->strings["Maximum daily site registrations exceeded. Please try again tomorrow."] = "Antallet daglige registreringer ved nettstedet er overskredet. Vær vennlig å prøve igjen imorgen.";
-$a->strings["Please indicate acceptance of the Terms of Service. Registration failed."] = "Vennligst angi at tjenesteavtalen er akseptert. Registrering mislyktes.";
-$a->strings["Passwords do not match."] = "Passordene er ikke like.";
-$a->strings["Registration successful. Please check your email for validation instructions."] = "Registreringen er vellykket. Vennligst sjekk e-posten din for å bekrefte opprettelsen.";
-$a->strings["Your registration is pending approval by the site owner."] = "Din registrering venter på godkjenning av nettstedets eier.";
-$a->strings["Your registration can not be processed."] = "Din registrering kan ikke behandles.";
-$a->strings["Registration on this site/hub is by approval only."] = "Registrering på dette nettstedet/denne hubben skjer bare gjennom godkjenning.";
-$a->strings["<a href=\"pubsites\">Register at another affiliated site/hub</a>"] = "<a href=\"pubsites\">Registrer på et annet tilknyttet nettsted/hub</a>";
-$a->strings["This site has exceeded the number of allowed daily account registrations. Please try again tomorrow."] = "Dette nettstedet har overskredet antallet tillate kontoregistreringer per dag. Vennligst prøv igjen imorgen.";
-$a->strings["Terms of Service"] = "Tjenesteavtale";
-$a->strings["I accept the %s for this website"] = "Jeg godtar %s for dette nettstedet";
-$a->strings["I am over 13 years of age and accept the %s for this website"] = "Jeg er over 13 år gammel og aksepterer %s for dette nettstedet.";
-$a->strings["Registration"] = "Registrering";
-$a->strings["Membership on this site is by invitation only."] = "Medlemskap ved dette nettstedet skjer kun via invitasjon.";
-$a->strings["Please enter your invitation code"] = "Vennligst skriv din invitasjonskode";
-$a->strings["Your email address"] = "Din e-postadresse";
-$a->strings["Choose a password"] = "Velg et passord";
-$a->strings["Please re-enter your password"] = "Vennligst skriv ditt passord en gang til";
+$a->strings["%1\$s is following %2\$s's %3\$s"] = "%1\$s følger %2\$s sin %3\$s";
$a->strings["Away"] = "Borte";
$a->strings["Online"] = "Online";
$a->strings["Please login."] = "Vennligst logg inn.";
-$a->strings["Red Matrix - Guests: Username: {your email address}, Password: +++"] = "Red Matrix - gjester: brukernavn: {din e-postadresse}, passord: +++";
+$a->strings["No such group"] = "Gruppen finnes ikke";
+$a->strings["Search Results For:"] = "Søkeresultat for:";
+$a->strings["Collection is empty"] = "Samlingen er tom";
+$a->strings["Collection: "] = "Samling:";
+$a->strings["Connection: "] = "Forbindelse:";
+$a->strings["Invalid connection."] = "Ugyldig forbindelse.";
+$a->strings["Channel removals are not allowed within 48 hours of changing the account password."] = "Fjerning av kanaler er ikke tillatt innen 48 timer etter endring av kontopassordet.";
$a->strings["Remove This Channel"] = "Fjern denne kanalen";
$a->strings["This will completely remove this channel from the network. Once this has been done it is not recoverable."] = "Dette vil fullstendig fjerne kanalen fra nettverket. NÃ¥r det er gjort kan det ikke angres.";
$a->strings["Please enter your password for verification:"] = "Vennligst skriv ditt passord for å få bekreftelse:";
@@ -1106,21 +1186,41 @@ $a->strings["Authentication failed."] = "Autentisering mislyktes.";
$a->strings["Remote Authentication"] = "Fjernautentisering";
$a->strings["Enter your channel address (e.g. channel@example.com)"] = "Skriv din kanaladresse (for eksempel channel@exampel.com)";
$a->strings["Authenticate"] = "Autentiser";
-$a->strings["Continue"] = "Fortsett";
-$a->strings["Premium Channel Setup"] = "Premiumkanal-oppsett";
-$a->strings["Enable premium channel connection restrictions"] = "Slå på restriksjoner for forbindelse med premiumkanal";
-$a->strings["Please enter your restrictions or conditions, such as paypal receipt, usage guidelines, etc."] = "Vennligst skriv dine restriksjoner og betingelser, slik som PayPal-kvittering, retningslinjer for bruk, og så videre.";
-$a->strings["This channel may require additional steps or acknowledgement of the following conditions prior to connecting:"] = "Denne kanalen kan kreve ytterligere steg og bekreftelse av følgende betingelser før tilkobling:";
-$a->strings["Potential connections will then see the following text before proceeding:"] = "Potensielle forbindelser vil da se følgende tekst før de går videre:";
-$a->strings["By continuing, I certify that I have complied with any instructions provided on this page."] = "Ved å fortsette bekrefter jeg at jeg har oppfylt alle instruksjoner gitt på denne siden.";
-$a->strings["(No specific instructions have been provided by the channel owner.)"] = "(Ingen spesifikke instruksjoner er gitt av kanaleieren.)";
-$a->strings["Restricted or Premium Channel"] = "Begrenset kanal eller premiumkanal";
-$a->strings["No such group"] = "Gruppen finnes ikke";
-$a->strings["Search Results For:"] = "Søkeresultat for:";
-$a->strings["Collection is empty"] = "Samlingen er tom";
-$a->strings["Collection: "] = "Samling:";
-$a->strings["Connection: "] = "Forbindelse:";
-$a->strings["Invalid connection."] = "Ugyldig forbindelse.";
+$a->strings["- select -"] = "- velg -";
+$a->strings["Page owner information could not be retrieved."] = "Informasjon om sideeier kunne ikke hentes.";
+$a->strings["Album not found."] = "Albumet ble ikke funnet.";
+$a->strings["Delete Album"] = "Slett album";
+$a->strings["Delete Photo"] = "Slett bilde";
+$a->strings["No photos selected"] = "Ingen bilder valgt";
+$a->strings["Access to this item is restricted."] = "Tilgang til dette elementet er begrenset.";
+$a->strings["%1$.2f MB of %2$.2f MB photo storage used."] = "%1$.2f MB av %2$.2f MB lagringsplass til bilder er brukt.";
+$a->strings["%1$.2f MB photo storage used."] = "%1$.2f MB lagringsplass til bilder er brukt.";
+$a->strings["Upload Photos"] = "Last opp bilder";
+$a->strings["Enter a new album name"] = "Skriv et nytt albumnavn";
+$a->strings["or select an existing one (doubleclick)"] = "eller velg et eksisterende album (dobbeltklikk)";
+$a->strings["Do not show a status post for this upload"] = "Ikke lag et statusinnlegg for denne oppdateringen";
+$a->strings["Album name could not be decoded"] = "Albumnavnet kunne ikke dekodes";
+$a->strings["Contact Photos"] = "Kontaktbilder";
+$a->strings["Show Newest First"] = "Vis nyeste først";
+$a->strings["Show Oldest First"] = "Vis eldste først";
+$a->strings["View Photo"] = "Vis foto";
+$a->strings["Edit Album"] = "Endre album";
+$a->strings["Permission denied. Access to this item may be restricted."] = "Tillatelse avvist. Tilgang til dette elementet kan være begrenset.";
+$a->strings["Photo not available"] = "Bilde er utilgjengelig";
+$a->strings["Use as profile photo"] = "Bruk som profilbilde";
+$a->strings["Private Photo"] = "Privat bilde";
+$a->strings["View Full Size"] = "Vis i full størrelse";
+$a->strings["Remove"] = "Fjern";
+$a->strings["Edit photo"] = "Endre bilde";
+$a->strings["Rotate CW (right)"] = "Roter med klokka (mot høyre)";
+$a->strings["Rotate CCW (left)"] = "Roter mot klokka (venstre)";
+$a->strings["Caption"] = "Overskrift";
+$a->strings["Add a Tag"] = "Legg til merkelapp";
+$a->strings["Example: @bob, @Barbara_Jensen, @jim@example.com"] = "Eksempel: @bob, @Barbara_Jensen, @jim@example.com";
+$a->strings["Flag as adult in album view"] = "Flag som voksent i albumvisning";
+$a->strings["In This Photo:"] = "I dette bildet:";
+$a->strings["View Album"] = "Vis album";
+$a->strings["Recent Photos"] = "Nye bilder";
$a->strings["Could not access contact record."] = "Fikk ikke tilgang til kontaktinformasjonen.";
$a->strings["Could not locate selected profile."] = "Fant ikke valgt profil.";
$a->strings["Connection updated."] = "Forbindelsen er oppdatert.";
@@ -1130,7 +1230,6 @@ $a->strings["Ignored"] = "Ignorert";
$a->strings["Hidden"] = "Skjult";
$a->strings["Archived"] = "Arkivert";
$a->strings["All"] = "Alle";
-$a->strings["Unconnected"] = "Ikke tilkoblet";
$a->strings["Suggest new connections"] = "Foreslå nye forbindelser";
$a->strings["New Connections"] = "Nye forbindelser";
$a->strings["Show pending (new) connections"] = "Vis ventende (nye) forbindelser";
@@ -1141,12 +1240,18 @@ $a->strings["Only show blocked connections"] = "Vis bare forbindelser som er blo
$a->strings["Only show ignored connections"] = "Vis bare ignorerte forbindelser";
$a->strings["Only show archived connections"] = "Vis bare arkiverte forbindelser";
$a->strings["Only show hidden connections"] = "Vis bare skjulte forbindelser";
-$a->strings["Only show one-way connections"] = "Vis bare en-veis-forbindelser";
$a->strings["%1\$s [%2\$s]"] = "%1\$s [%2\$s]";
-$a->strings["Edit contact"] = "Endre kontakt";
+$a->strings["Edit connection"] = "Endre forbindelse";
$a->strings["Search your connections"] = "Søk blant dine forbindelser";
$a->strings["Finding: "] = "Fant:";
+$a->strings["You have created %1$.0f of %2$.0f allowed channels."] = "Du har laget %1$.0f av %2$.0f tillatte kanaler.";
+$a->strings["Create a new channel"] = "Lag en ny kanal";
+$a->strings["Current Channel"] = "Gjeldende kanal";
+$a->strings["Attach to one of your channels by selecting it."] = "Bytt til en av dine kanaler ved å velge den.";
+$a->strings["Default Channel"] = "Standardkanal";
+$a->strings["Make Default"] = "Gjør til standard";
$a->strings["Edit post"] = "Endre innlegg";
+$a->strings["is now connected to"] = "er nå forbundet til";
$a->strings["Could not access address book record."] = "Fikk ikke tilgang til informasjonen i adresseboken.";
$a->strings["Refresh failed - channel is currently unavailable."] = "Oppfrisking mislyktes - kanalen er for øyeblikket utilgjengelig.";
$a->strings["Channel has been unblocked"] = "Kanalen er ikke blokkert lenger";
@@ -1181,9 +1286,9 @@ $a->strings["Hide or Unhide this connection"] = "Skjul eller fjern skjuling av d
$a->strings["Delete this connection"] = "Slett denne forbindelsen";
$a->strings["Approve this connection"] = "Godta denne forbindelsen";
$a->strings["Accept connection to allow communication"] = "Godta denne forbindelsen for å tillate kommunikasjon";
-$a->strings["Automatic Permissions Settings"] = "Automatiske innstillinger for tillatelser";
$a->strings["Connections: settings for %s"] = "Forbindelser: innstillinger 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."] = "Når du mottar en kanal-introduksjon, så vil alle tillatelser gitt her gjelde for den nye forbindelsen automatisk og introduksjonen godkjennes. Forlat denne siden hvis du ikke ønsker å bruke denne egenskapen.";
+$a->strings["Apply these permissions automatically"] = "Bruk disse tillatelsene automatisk";
+$a->strings["Apply the permissions indicated on this page to all new connections."] = "Bruk tillatelsene angitt på denne siden på alle nye forbindelser.";
$a->strings["Slide to adjust your degree of friendship"] = "Flytt for å justere din grad av vennskap";
$a->strings["inherited"] = "arvet";
$a->strings["Connection has no individual permissions!"] = "Forbindelsen har ingen individuelle tillatelser!";
@@ -1219,107 +1324,45 @@ $a->strings["Currently archived"] = "For øyeblikket arkivert";
$a->strings["Currently pending"] = "For øyeblikket ventende";
$a->strings["Hide this contact from others"] = "Skjul denne kontakten for andre";
$a->strings["Replies/likes to your public posts <strong>may</strong> still be visible"] = "Svar/likes på dine offentlige innlegg <strong>kan</strong> fortsatt være synlige";
-$a->strings["No potential page delegates located."] = "Ingen potensielle sidedelegater er funnet.";
-$a->strings["Delegate Page Management"] = "Deleger sidehåndtering";
-$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."] = "Delegater kan håndtere alle sider ved denne kontoen/siden unntatt grunnleggende kontoinformasjon. Vennligst ikke deleger din personlige konto til noen du ikke stoler fullstendig på.";
-$a->strings["Existing Page Managers"] = "Eksisterende sidehåndterere";
-$a->strings["Existing Page Delegates"] = "Eksisterende sidedelegater";
-$a->strings["Potential Delegates"] = "Potensielle sidedelegater";
-$a->strings["Remove"] = "Fjern";
-$a->strings["Add"] = "Legg til";
-$a->strings["No entries."] = "Ingen oppføringer.";
-$a->strings["Public access denied."] = "Offentlig tilgang avvist.";
-$a->strings["Gender: "] = "Kjønn:";
-$a->strings["Finding:"] = "Finner:";
-$a->strings["next page"] = "neste side";
-$a->strings["previous page"] = "forrige side";
-$a->strings["No entries (some entries may be hidden)."] = "Ingen oppføringer (noen oppføringer kan være skjult).";
-$a->strings["Status: "] = "Status:";
-$a->strings["Sexual Preference: "] = "Seksuelle preferanser:";
-$a->strings["Homepage: "] = "Hjemmeside:";
-$a->strings["Hometown: "] = "Hjemby:";
-$a->strings["About: "] = "Om:";
-$a->strings["Keywords: "] = "Nøkkelord:";
+$a->strings["OpenID protocol error. No ID returned."] = "OpenID protokollfeil. Ingen ID ble returnert.";
+$a->strings["Thing updated"] = "Tingen er oppdatert";
+$a->strings["Object store: failed"] = "Objektlagring: mislyktes";
+$a->strings["Thing added"] = "Ting lagt til";
+$a->strings["OBJ: %1\$s %2\$s %3\$s"] = "OBJ: %1\$s %2\$s %3\$s";
+$a->strings["Show Thing"] = "Vis ting";
+$a->strings["item not found."] = "element ble ikke funnet.";
+$a->strings["Edit Thing"] = "Endre ting";
+$a->strings["Select a profile"] = "Velg en profil";
+$a->strings["Post an activity"] = "Legg inn en aktivitet";
+$a->strings["Only sends to viewers of the applicable profile"] = "Sender bare til seere av den aktuelle profilen";
+$a->strings["Name of thing e.g. something"] = "Navn på ting for eksempel noe";
+$a->strings["URL of thing (optional)"] = "URL til ting (valgfritt)";
+$a->strings["URL for photo of thing (optional)"] = "URL til bilde av ting (valgfritt)";
+$a->strings["Add Thing to your Profile"] = "Legg til ting i din profil";
+$a->strings["No valid account found."] = "Ingen gyldig konto funnet.";
+$a->strings["Password reset request issued. Check your email."] = "Forespørsel om å tilbakestille passord er mottatt. Sjekk e-posten din.";
+$a->strings["Site Member (%s)"] = "Nettstedsmedlem (%s)";
+$a->strings["Password reset requested at %s"] = "Forespurt om å tilbakestille passord hos %s";
+$a->strings["Request could not be verified. (You may have previously submitted it.) Password reset failed."] = "Forespørsel kunne ikke bekreftes. (Du kan ha sendt den inn tidligere.) Tilbakestilling av passord mislyktes.";
+$a->strings["Password Reset"] = "Tilbakestill passord";
+$a->strings["Your password has been reset as requested."] = "Ditt passord har blitt tilbakestilt som forespurt.";
+$a->strings["Your new password is"] = "Ditt nye passord er";
+$a->strings["Save or copy your new password - and then"] = "Lagre eller kopier ditt nye passord, og deretter kan du";
+$a->strings["click here to login"] = "klikke her for å logge inn";
+$a->strings["Your password may be changed from the <em>Settings</em> page after successful login."] = "Ditt passord kan endres på siden <em>Innstillinger</em> etter vellykket innlogging.";
+$a->strings["Your password has changed at %s"] = "Ditt passord er endret hos %s";
+$a->strings["Forgot your Password?"] = "Glemt passord ditt?";
+$a->strings["Enter your email address and submit to have your password reset. Then check your email for further instructions."] = "Skriv e-postadressen din og send inn for å tilbakestille passordet ditt. Sjekk deretter din e-post for videre instruksjoner.";
+$a->strings["Email Address"] = "E-postadresse";
+$a->strings["Reset"] = "Tilbakestill";
+$a->strings["Bookmark added"] = "Bokmerke lagt til";
+$a->strings["My Bookmarks"] = "Mine bokmerker";
+$a->strings["My Connections Bookmarks"] = "Mine forbindelsers bokmerker";
$a->strings["This site is not a directory server"] = "Dette nettstedet er ikke en katalogtjener";
-$a->strings["Red Matrix Server - Setup"] = "Red Matrix tjener - oppsett";
-$a->strings["Could not connect to database."] = "Fikk ikke kontakt med databasen.";
-$a->strings["Could not connect to specified site URL. Possible SSL certificate or DNS issue."] = "Fikk ikke kontakt med det angitte nettstedets URL. Problemet kan muligens skyldes SSL-sertifikatet eller DNS.";
-$a->strings["Could not create table."] = "Kunne ikke lage tabellen.";
-$a->strings["Your site database has been installed."] = "Databasen til ditt nettsted har blitt installert.";
-$a->strings["You may need to import the file \"install/database.sql\" manually using phpmyadmin or mysql."] = "Du må kanskje importere filen \"install/database.sql\" manuelt ved hjelp av phpmyadmin eller mysql.";
-$a->strings["Please see the file \"install/INSTALL.txt\"."] = "Vennligst les filen \"install/INSTALL.txt\".";
-$a->strings["System check"] = "Systemsjekk";
-$a->strings["Next"] = "Neste";
-$a->strings["Check again"] = "Sjekk igjen";
-$a->strings["Database connection"] = "Databaseforbindelse";
-$a->strings["In order to install Red Matrix we need to know how to connect to your database."] = "For å installere Red Matrix må du oppgi hvordan din database kan kontaktes.";
-$a->strings["Please contact your hosting provider or site administrator if you have questions about these settings."] = "Vennligst kontakt din nettstedstilbyder eller nettstedsadministrator hvis du har spørsmål om disse innstillingene.";
-$a->strings["The database you specify below should already exist. If it does not, please create it before continuing."] = "Databasen du oppgir nedenfor må finnes på forhånd. Hvis den ikke finnes, vennligst lag den før du fortsetter.";
-$a->strings["Database Server Name"] = "Navn på databasetjener";
-$a->strings["Default is localhost"] = "Standard er localhost";
-$a->strings["Database Port"] = "Databaseport";
-$a->strings["Communication port number - use 0 for default"] = "Kommunikasjonsportnummer - bruk 0 for standard";
-$a->strings["Database Login Name"] = "Database innloggingsnavn";
-$a->strings["Database Login Password"] = "Database innloggingspassord";
-$a->strings["Database Name"] = "Databasenavn";
-$a->strings["Site administrator email address"] = "E-postadressen til administrator ved nettstedet";
-$a->strings["Your account email address must match this in order to use the web admin panel."] = "Din konto sin e-postadresse må være lik denne for å kunne bruke web-administrasjonspanelet.";
-$a->strings["Website URL"] = "Nettstedets URL";
-$a->strings["Please use SSL (https) URL if available."] = "Vennligst bruk SSL (https) URL hvis tilgjengelig.";
-$a->strings["Please select a default timezone for your website"] = "Vennligst velg en standard tidssone for ditt nettsted";
-$a->strings["Site settings"] = "Nettstedets innstillinger";
-$a->strings["Could not find a command line version of PHP in the web server PATH."] = "Fant ikke en kommandolinjeversjon av PHP i webtjenerens sti (PATH).";
-$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."] = "Hvis du ikke har en kommandolinjeversjon av PHP installert på tjeneren, så vil du ikke kunne kjøre bakgrunnshenting via cron.";
-$a->strings["PHP executable path"] = "PHP-kjørefilens sti";
-$a->strings["Enter full path to php executable. You can leave this blank to continue the installation."] = "Skriv full sti til kjørefilen for PHP. Du kan la denne stå blank for å fortsette installasjonen.";
-$a->strings["Command line PHP"] = "Kommandolinje PHP";
-$a->strings["The command line version of PHP on your system does not have \"register_argc_argv\" enabled."] = "Kommandolinjeversjonen av PHP på ditt system har ikke \"register_argc_argv\" påskrudd.";
-$a->strings["This is required for message delivery to work."] = "Dette er påkrevd for at meldingslevering skal virke.";
-$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"] = "Feil: \"openssl_pkey_new\"-funksjonen på dette systemet er ikke i stand til å lage krypteringsnøkler";
-$a->strings["If running under Windows, please see \"http://www.php.net/manual/en/openssl.installation.php\"."] = "Ved kjøring på Windows, vennligst se \"http://www.php.net/manual/en/openssl.installation.php\".";
-$a->strings["Generate encryption keys"] = "Lag krypteringsnøkler";
-$a->strings["libCurl PHP module"] = "libCurl PHP-modul";
-$a->strings["GD graphics PHP module"] = "GD graphics 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."] = "Feil: Apache web-tjenerens mod-rewrite-modul er påkrevd, men ikke installert.";
-$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"] = "Feil: proc_open er påkrevd, men er enten ikke installert eller har blitt avskrudd i php.ini";
-$a->strings["Error: libCURL PHP module required but not installed."] = "Feil: libCURL PHP-modul er påkrevd, men er ikke installert.";
-$a->strings["Error: GD graphics PHP module with JPEG support required but not installed."] = "Feil: GD graphics PHP-modul med JPEG-støtte er påkrevd, men er ikke installert.";
-$a->strings["Error: openssl PHP module required but not installed."] = "Feil: openssl PHP-modul er påkrevd, men er ikke installert.";
-$a->strings["Error: mysqli PHP module required but not installed."] = "Feil: mysqli PHP-modul er påkrevd, men er ikke installert.";
-$a->strings["Error: mb_string PHP module required but not installed."] = "Feil: mb_string PHP-modul er påkrevd, men er ikke installert.";
-$a->strings["Error: mcrypt PHP module required but not installed."] = "Feil: mcrypt PHP-modul er påkrevd, men er ikke installert.";
-$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."] = "Web-installasjonen må kunne lage en fil kalt \".htconfig.php\" i toppkatalogen til web-tjeneren din, men dette får den ikke til.";
-$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."] = "Dette er oftest tillatelsesinnstilling, ettersom webtjeneren kanskje kan skrive til filer i din mappe - selv om du kan.";
-$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."] = "På slutten av denne prosedyren vil vi gi deg en tekst til å lagre i en fil kalt .htconfig.php i toppkatalogen til din Red.";
-$a->strings["You can alternatively skip this procedure and perform a manual installation. Please see the file \"install/INSTALL.txt\" for instructions."] = "Alternativt, så kan du hoppe over denne prosedyren og gjennomføre en manuell installasjon. Vennligst se filen \"install/INSTALL.txt\" for instruksjoner.";
-$a->strings[".htconfig.php is writable"] = ".htconfig.php kan skrives til";
-$a->strings["Red uses the Smarty3 template engine to render its web views. Smarty3 compiles templates to PHP to speed up rendering."] = "Red bruker malmotoren Smarty3 for å gjengi sine webvisninger. Smarty3 kompilerer malene om til PHP for å framskynde gjengivelsen.";
-$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."] = "For å kunne lagre disse kompilerte malene, så må webtjeneren ha skrivetilgang til katalogen view/tpl/smarty3/ under Red sin hovedmappe.";
-$a->strings["Please ensure that the user that your web server runs as (e.g. www-data) has write access to this folder."] = "Vennligst sikre at brukeren som din web-tjeneste kjører som (for eksempel www-data) har skrivetilgang til denne katalogen.";
-$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."] = "Merknad: som et sikkerhetstiltak bør du bare gi webtjerenn skrivetilgang til view/tpl/smarty3/ - ikke til malfilene (.tpl) som den inneholder.";
-$a->strings["view/tpl/smarty3 is writable"] = "view/tpl/smarty3 er skrivbar";
-$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 bruker lagringsmappen for å lagre opplastede filer. Webtjeneren trenger å ha skrivetilgang til lagringsmappen under Red sin toppnivåmappe.";
-$a->strings["store is writable"] = "lageret kan skrives til";
-$a->strings["SSL certificate cannot be validated. Fix certificate or disable https access to this site."] = "SSL-sertifikatet kan ikke kontrolleres. Fiks sertifikatet eller skru av https tilgang til dette nettstedet.";
-$a->strings["If you have https access to your website or allow connections to TCP port 443 (the https: port), you MUST use a browser-valid certificate. You MUST NOT use self-signed certificates!"] = "Hvis du har HTTPS-tilgang til ditt nettsted eller tillater forbindelser til TCP port 443 (HTTPS-porten), så MÅ du bruke nettlesergodkjent sertifkater. Du MÅ IKKE bruke egensignert sertifikater!";
-$a->strings["This restriction is incorporated because public posts from you may for example contain references to images on your own hub."] = "Denne begrensningen er tatt inn fordi offentlige innlegg fra deg kan for eksempel inneholde referanser til bilder på din egen hub.";
-$a->strings["If your certificate is not recognised, members of other sites (who may themselves have valid certificates) will get a warning message on their own site complaining about security issues."] = "Hvis sertifikatet ditt ikke gjenkjennes, så vil medlemmer på andre nettsteder (som selv kan ha godkjente sertifikater) få en beskjed med en advarsel på deres eget nettsted som klager over sikkerhetsproblemer.";
-$a->strings["This can cause usability issues elsewhere (not just on your own site) so we must insist on this requirement."] = "Dette kan gi problemer med brukervennlighet (ikke bare på ditt eget nettsted), så vi må insistere på dette kravet.";
-$a->strings["Providers are available that issue free certificates which are browser-valid."] = "Det finnes tilbydere som utsteder gratis sertifikater som er gyldige i nettlesere.";
-$a->strings["SSL certificate validation"] = "SSL sertifikat-kontroll";
-$a->strings["Url rewrite in .htaccess is not working. Check your server configuration."] = "URL rewrite i .htaccess virker ikke. Sjekk konfigurasjonen på tjeneren.";
-$a->strings["Url rewrite is working"] = "URL rewrite virker";
-$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."] = "Databasekonfigurasjonsfilen \".htconfig.php\" kunne ikke skrives. Vennligst bruk den medfølgende teksten for å lage en konfigurasjonsfil i toppkatalogen av din web-tjener.";
-$a->strings["Errors encountered creating database tables."] = "Feil oppstod under opprettelsen av databasetabeller.";
-$a->strings["<h1>What next</h1>"] = "<h1>Hva gjenstår</h1>";
-$a->strings["IMPORTANT: You will need to [manually] setup a scheduled task for the poller."] = "VIKTIG: Du må [manuelt] sette opp en automatisert tidfestet oppgave til bakgrunnshenteren.";
+$a->strings["RedMatrix - Guests: Username: {your email address}, Password: +++"] = "RedMatrix - gjester: brukernavn: {din e-postadresse}, passord: +++";
+$a->strings["sent you a private message"] = "sendte deg en privat melding";
+$a->strings["added your channel"] = "la til din kanal";
+$a->strings["posted an event"] = "la ut en hendelse";
$a->strings["Item not found"] = "Elementet ble ikke funnet.";
$a->strings["Edit Block"] = "Endre byggekloss";
$a->strings["Delete block?"] = "Slett byggeklossen?";
@@ -1337,51 +1380,162 @@ $a->strings["Delete layout?"] = "Slett layout?";
$a->strings["Delete Layout"] = "Slett layout";
$a->strings["Item is not editable"] = "Elementet kan ikke endres";
$a->strings["Delete item?"] = "Slett element?";
+$a->strings["Name is required"] = "Navn er påkrevd";
+$a->strings["Key and Secret are required"] = "Nøkkel og hemmelighet er påkrevd";
+$a->strings["Passwords do not match. Password unchanged."] = "Passordene stemmer ikke overens. Passord uforandret.";
+$a->strings["Empty passwords are not allowed. Password unchanged."] = "Tomme passord er ikke tillatt. Passord uforandret.";
+$a->strings["Password changed."] = "Passord endret.";
+$a->strings["Password update failed. Please try again."] = "Passord oppdatering mislyktes. Vennligst prøv igjen.";
+$a->strings["Not valid email."] = "Ikke gyldig e-post.";
+$a->strings["Protected email address. Cannot change to that email."] = "Beskyttet e-postadresse. Kan ikke endre til den e-postadressen.";
+$a->strings["System failure storing new email. Please try again."] = "Systemfeil ved lagring av ny e-post. Vennligst prøv igjen.";
+$a->strings["Settings updated."] = "Innstillinger oppdatert.";
+$a->strings["Add application"] = "Legg til program";
+$a->strings["Name of application"] = "Navn på program";
+$a->strings["Consumer Key"] = "Consumer Key";
+$a->strings["Automatically generated - change if desired. Max length 20"] = "Automatisk laget - kan endres om du vil. Største lengde 20";
+$a->strings["Consumer Secret"] = "Consumer Secret";
+$a->strings["Redirect"] = "Omdirigering";
+$a->strings["Redirect URI - leave blank unless your application specifically requires this"] = "Omdirigerings-URI - la stå tomt hvis ikke ditt program spesifikt krever dette";
+$a->strings["Icon url"] = "Ikon-URL";
+$a->strings["Optional"] = "Valgfritt";
+$a->strings["You can't edit this application."] = "Du kan ikke endre dette programmet.";
+$a->strings["Connected Apps"] = "Tilkoblede app-er";
+$a->strings["Client key starts with"] = "Klientnøkkel starter med";
+$a->strings["No name"] = "Ikke noe navn";
+$a->strings["Remove authorization"] = "Fjern tillatelse";
+$a->strings["No feature settings configured"] = "Ingen funksjonsinnstillinger er konfigurert";
+$a->strings["Feature Settings"] = "Funksjonsinnstillinger";
+$a->strings["Account Settings"] = "Kontoinnstillinger";
+$a->strings["Password Settings"] = "Passordinnstillinger";
+$a->strings["New Password:"] = "Nytt passord:";
+$a->strings["Confirm:"] = "Bekreft:";
+$a->strings["Leave password fields blank unless changing"] = "La passordfeltene stå blanke om det ikke skal endres";
+$a->strings["Email Address:"] = "E-postadresse:";
+$a->strings["Remove Account"] = "Slett konto";
+$a->strings["Remove this account from this server including all its channels"] = "Slett denne kontoen inkludert alle dens kanaler fra denne tjeneren";
+$a->strings["Warning: This action is permanent and cannot be reversed."] = "Advarsel: Denne handlingen er permanent og kan ikke angres.";
+$a->strings["Off"] = "Av";
+$a->strings["On"] = "PÃ¥";
+$a->strings["Additional Features"] = "Ekstra funksjoner";
+$a->strings["Connector Settings"] = "Koblingsinnstillinger";
+$a->strings["No special theme for mobile devices"] = "Ikke noe spesielt tema for mobile enheter";
+$a->strings["%s - (Experimental)"] = "%s - (Eksperimentelt)";
+$a->strings["Display Settings"] = "Visningsinnstillinger";
+$a->strings["Display Theme:"] = "Visningstema:";
+$a->strings["Mobile Theme:"] = "Mobiltema:";
+$a->strings["Enable user zoom on mobile devices"] = "Skru på brukerstyrt zoom på mobile enheter";
+$a->strings["Update browser every xx seconds"] = "Oppdater nettleser hvert xx sekunder";
+$a->strings["Minimum of 10 seconds, no maximum"] = "Minimum 10 sekunder, ikke noe maksimum";
+$a->strings["Maximum number of conversations to load at any time:"] = "Maksimalt antall samtaler å laste samtidig:";
+$a->strings["Maximum of 100 items"] = "Maksimum 100 elementer";
+$a->strings["Don't show emoticons"] = "Ikke vis følelsesikoner";
+$a->strings["Link post titles to source"] = "Lenk innleggets tittel til kilden";
+$a->strings["System Page Layout Editor - (advanced)"] = "Systemsidens layoutbehandler - (avansert)";
+$a->strings["Nobody except yourself"] = "Ingen unntatt deg selv";
+$a->strings["Only those you specifically allow"] = "Bare de du spesifikt tillater";
+$a->strings["Approved connections"] = "Godkjente forbindelser";
+$a->strings["Any connections"] = "Enhver forbindelse";
+$a->strings["Anybody on this website"] = "Enhver ved dette nettstedet";
+$a->strings["Anybody in this network"] = "Enhver i dette nettverket";
+$a->strings["Anybody authenticated"] = "Enhver som er autentisert";
+$a->strings["Anybody on the internet"] = "Enhver på Internett";
+$a->strings["Publish your default profile in the network directory"] = "Publiser din standardprofil i nettverkskatalogen";
+$a->strings["Allow us to suggest you as a potential friend to new members?"] = "Tillat oss å foreslå deg som en mulig venn til nye medlemmer?";
+$a->strings["or"] = "eller";
+$a->strings["Your channel address is"] = "Din kanaladresse er";
+$a->strings["Channel Settings"] = "Kanalinnstillinger";
+$a->strings["Basic Settings"] = "Grunninnstillinger";
+$a->strings["Your Timezone:"] = "Din tidssone:";
+$a->strings["Default Post Location:"] = "Standard plassering ved innlegg:";
+$a->strings["Geographical location to display on your posts"] = "Geografisk plassering som vises på dine innlegg";
+$a->strings["Use Browser Location:"] = "Bruk nettleseren sin plassering:";
+$a->strings["Adult Content"] = "Voksent innhold";
+$a->strings["This channel frequently or regularly publishes adult content. (Please tag any adult material and/or nudity with #NSFW)"] = "Denne kanalen vil ofte eller jevnlig publisere voksent innhold. (Vennligst merk alt voksent materiale og/eller nakenhet med #NSFW)";
+$a->strings["Security and Privacy Settings"] = "Sikkerhets- og personverninnstillinger";
+$a->strings["Your permissions are already configured. Click to view/adjust"] = "Dine tillatelser er allerede satt. Klikk for å se/justere.";
+$a->strings["Hide my online presence"] = "Skjul min tilstedeværelse online";
+$a->strings["Prevents displaying in your profile that you are online"] = "Forhindrer visning på din profil av at du er online ";
+$a->strings["Simple Privacy Settings:"] = "Enkle personverninnstillinger:";
+$a->strings["Very Public - <em>extremely permissive (should be used with caution)</em>"] = "Svært offentlig - <em>ekstremt åpent (bør brukes med varsomhet)</em>";
+$a->strings["Typical - <em>default public, privacy when desired (similar to social network permissions but with improved privacy)</em>"] = "Typisk - <em>standard er offentlig, personvern når ønsket (likner på tillatelser i sosiale nettverk, men med forbedret personvern)</em>";
+$a->strings["Private - <em>default private, never open or public</em>"] = "Privat - <em>standard er privat, aldri åpen eller offentlig</em>";
+$a->strings["Blocked - <em>default blocked to/from everybody</em>"] = "Blokkert - <em>standard blokkert til/fra alle</em>";
+$a->strings["Allow others to tag your posts"] = "Tillat andre å merke dine innlegg";
+$a->strings["Often used by the community to retro-actively flag inappropriate content"] = "Ofte brukt av fellesskapet for å merke upassende innhold i etterkant";
+$a->strings["Advanced Privacy Settings"] = "Avanserte personverninnstillinger";
+$a->strings["Expire other channel content after this many days"] = "Annet kanal innhold utløper etter så mange dager";
+$a->strings["0 or blank prevents expiration"] = "0 eller blankt forhindrer utløp";
+$a->strings["Maximum Friend Requests/Day:"] = "Maksimalt antall venneforespørsler per dag:";
+$a->strings["May reduce spam activity"] = "Kan redusere søppelpostaktivitet";
+$a->strings["Default Post Permissions"] = "Standard innleggstillatelser";
+$a->strings["Channel permissions category:"] = "Kategori med kanaltillatelser:";
+$a->strings["Maximum private messages per day from unknown people:"] = "Maksimalt antall private meldinger per dag fra ukjente personer:";
+$a->strings["Useful to reduce spamming"] = "Nyttig for å redusere søppelpost";
+$a->strings["Notification Settings"] = "Varslingsinnstillinger";
+$a->strings["By default post a status message when:"] = "Legg inn en statusmelding når du:";
+$a->strings["accepting a friend request"] = "aksepterer en venneforespørsel";
+$a->strings["joining a forum/community"] = "blir med i et forum/miljø";
+$a->strings["making an <em>interesting</em> profile change"] = "gjør en <em>interessant</em> profilendring";
+$a->strings["Send a notification email when:"] = "Send en varsel-e-post når:";
+$a->strings["You receive a connection request"] = "Du har mottatt en forespørsel om forbindelse";
+$a->strings["Your connections are confirmed"] = "Dine forbindelser er bekreftet";
+$a->strings["Someone writes on your profile wall"] = "Noen skriver på din profilvegg";
+$a->strings["Someone writes a followup comment"] = "Noen skriver en oppfølgende kommentar";
+$a->strings["You receive a private message"] = "Du mottar en privat melding";
+$a->strings["You receive a friend suggestion"] = "Du mottok et venneforslag";
+$a->strings["You are tagged in a post"] = "Du merkes i et innlegg";
+$a->strings["You are poked/prodded/etc. in a post"] = "Du ble prikket/oppildnet/og så vider i et innlegg";
+$a->strings["Show visual notifications including:"] = "Vis visuelle varslinger om:";
+$a->strings["Unseen matrix activity"] = "Usett matrixaktivitet";
+$a->strings["Unseen channel activity"] = "Usett kanalaktivitet";
+$a->strings["Unseen private messages"] = "Usette private meldinger";
+$a->strings["Recommended"] = "Anbefalt";
+$a->strings["Upcoming events"] = "Kommende hendelser";
+$a->strings["Events today"] = "Hendelser idag";
+$a->strings["Upcoming birthdays"] = "Kommende fødselsdager";
+$a->strings["Not available in all themes"] = "Ikke tilgjengelig i alle temaer";
+$a->strings["System (personal) notifications"] = "System (personlige) varslinger";
+$a->strings["System info messages"] = "System infomeldinger";
+$a->strings["System critical alerts"] = "System kritiske varsel";
+$a->strings["New connections"] = "Nye forbindelser";
+$a->strings["System Registrations"] = "Systemregistreringer";
+$a->strings["Notify me of events this many days in advance"] = "Varsle meg om hendelser dette antall dager på forhånd";
+$a->strings["Must be greater than 0"] = "Må være større enn 0";
+$a->strings["Advanced Account/Page Type Settings"] = "Avanserte innstillinger for konto/sidetype";
+$a->strings["Change the behaviour of this account for special situations"] = "Endre oppførselen til denne kontoen i spesielle situasjoner";
+$a->strings["Please enable expert mode (in <a href=\"settings/features\">Settings > Additional features</a>) to adjust!"] = "Vennligst skru på ekspertmodus (under <a href=\"settings/features\">Innstillinger > Ekstra funksjoner</a>) for å justere!";
+$a->strings["Miscellaneous Settings"] = "Diverse innstillinger";
+$a->strings["Personal menu to display in your channel pages"] = "Personlig meny som kan vises på dine kanalsider";
+$a->strings["Remove this channel"] = "Fjern denne kanalen";
$a->strings["Edit Webpage"] = "Endre webside";
$a->strings["Delete webpage?"] = "Slett webside?";
$a->strings["Delete Webpage"] = "Slett webside";
-$a->strings["Version %s"] = "Versjon %s";
-$a->strings["Installed plugins/addons/apps:"] = "Installerte tilleggsfunksjoner/tillegg/apper:";
-$a->strings["No installed plugins/addons/apps"] = "Ingen installerte tilleggsfunksjoner/tillegg/apper";
-$a->strings["Red"] = "Red";
-$a->strings["This is a hub of the Red Matrix - a global cooperative network of decentralised privacy enhanced websites."] = "Dette er en hub i Red Matrix - et globalt kooperativt nettverk av desentraliserte personvernforsterkede nettsteder.";
-$a->strings["Running at web location"] = "Kjører på webplasseringen";
-$a->strings["Please visit <a href=\"http://getzot.com\">GetZot.com</a> to learn more about the Red Matrix."] = "Vennligst besøk <a href=\"http://getzot.com\">GetZot.com</a> for å lære mer om Red Matrix.";
-$a->strings["Bug reports and issues: please visit"] = "Feilmeldinger og feilretting: vennligst besøk";
-$a->strings["Suggestions, praise, etc. - please email \"redmatrix\" at librelist - dot com"] = "Forslag, ros og så videre - vennligst e-post \"redmatrix\" hos librelist - punktum com";
-$a->strings["Site Administrators"] = "Nettstedsadministratorer";
-$a->strings["Failed to create source. No channel selected."] = "Mislyktes med å lage kilde. Ingen kanal er valgt.";
-$a->strings["Source created."] = "Kilden er laget.";
-$a->strings["Source updated."] = "Kilden er oppdatert.";
-$a->strings["*"] = "*";
-$a->strings["Manage remote sources of content for your channel."] = "HÃ¥ndtere eksterne innholdskilder til din kanal.";
-$a->strings["New Source"] = "Ny kilde";
-$a->strings["Import all or selected content from the following channel into this channel and distribute it according to your channel settings."] = "Importer alt eller et utvalgt av innhold fra følgende kanal inn i denne kanalen og distribuer det i henhold til dine egne kanalinnstillinger.";
-$a->strings["Only import content with these words (one per line)"] = "Bare importer innhold med disse ordene (ett ord per linje)";
-$a->strings["Leave blank to import all public content"] = "La stå tomt for å importere alt offentlig innhold";
-$a->strings["Channel Name"] = "Kanalnavn";
-$a->strings["Source not found."] = "Kilden ble ikke funnet.";
-$a->strings["Edit Source"] = "Endre kilde";
-$a->strings["Delete Source"] = "Slett kilde";
-$a->strings["Source removed"] = "Kilden er fjernet";
-$a->strings["Unable to remove source."] = "Ikke i stand til å fjerne kilde.";
-$a->strings["- select -"] = "- velg -";
-$a->strings["Event title and start time are required."] = "Hendelsestittel og starttidspunkt er påkrevd.";
-$a->strings["l, F j"] = "l, F j";
-$a->strings["Edit event"] = "Endre hendelse";
-$a->strings["Create New Event"] = "Lag ny hendelse";
-$a->strings["Previous"] = "Forrige";
-$a->strings["hour:minute"] = "time:minutt";
-$a->strings["Event details"] = "Hendelsesdetaljer";
-$a->strings["Format is %s %s. Starting date and Title are required."] = "Formatet er %s %s. Startdato og tittel er påkrevd.";
-$a->strings["Event Starts:"] = "Hendelsen starter:";
-$a->strings["Required"] = "PÃ¥krevd";
-$a->strings["Finish date/time is not known or not relevant"] = "Sluttdato/-tidspunkt er ikke kjent eller ikke relevant";
-$a->strings["Event Finishes:"] = "Hendelsen slutter:";
-$a->strings["Adjust for viewer timezone"] = "Juster i forhold til tilskuerens tidssone";
-$a->strings["Description:"] = "Beskrivelse:";
-$a->strings["Title:"] = "Tittel:";
-$a->strings["Share this event"] = "Del denne hendelsen";
+$a->strings["webpage"] = "nettside";
+$a->strings["block"] = "byggekloss";
+$a->strings["layout"] = "layout";
+$a->strings["%s element installed"] = "%s element installert";
+$a->strings["Image uploaded but image cropping failed."] = "Bildet ble lastet opp, men beskjæring av bildet mislyktes.";
+$a->strings["Image resize failed."] = "Endring av bildestørrelse mislyktes.";
+$a->strings["Shift-reload the page or clear browser cache if the new photo does not display immediately."] = "Hold nede Shift-knappen og last siden på nytt eller tøm nettleserens mellomlager hvis det nye bildet ikke vises umiddelbart.";
+$a->strings["Image exceeds size limit of %d"] = "Bildet overstiger størrelsesbegrensningen på %d";
+$a->strings["Unable to process image."] = "Kan ikke behandle bildet.";
+$a->strings["Photo not available."] = "Bildet er ikke tilgjengelig.";
+$a->strings["Upload File:"] = "Last opp fil:";
+$a->strings["Select a profile:"] = "Velg en profil:";
+$a->strings["Upload Profile Photo"] = "Last opp profilbilde:";
+$a->strings["skip this step"] = "hopp over dette steget";
+$a->strings["select a photo from your photo albums"] = "velg et bilde fra dine fotoalbum";
+$a->strings["Crop Image"] = "Beskjær bildet";
+$a->strings["Please adjust the image cropping for optimum viewing."] = "Vennligst juster bildebeskjæringen for optimal visning.";
+$a->strings["Done Editing"] = "Avslutt redigering";
+$a->strings["Image uploaded successfully."] = "Opplasting av bildet var vellykket.";
+$a->strings["Image upload failed."] = "Opplasting av bildet mislyktes.";
+$a->strings["Image size reduction [%s] failed."] = "Forminsking av bildet [%s] mislyktes.";
+$a->strings["Contact not found."] = "Kontakten ble ikke funnet.";
+$a->strings["Friend suggestion sent."] = "Venneforespørsel sendt.";
+$a->strings["Suggest Friends"] = "Foreslå venner";
+$a->strings["Suggest a friend for %s"] = "Foreslå en venn for %s";
$a->strings["Permission Denied."] = "Tillatelse avvist.";
$a->strings["File not found."] = "Filen ble ikke funnet.";
$a->strings["Edit file permissions"] = "Endre filtillatelser";
@@ -1390,17 +1544,18 @@ $a->strings["Include all files and sub folders"] = "Inkluder alle filer og under
$a->strings["Return to file list"] = "GÃ¥ tilbake til filoversikten";
$a->strings["Copy/paste this code to attach file to a post"] = "Kopier og lim inn denne koden for å legge til filen i et innlegg";
$a->strings["Copy/paste this URL to link file from a web page"] = "Kopier og lim inn denne URL-en for å lenke til filen fra en webside";
-$a->strings["Download"] = "Last ned";
-$a->strings["Used: "] = "Brukt:";
-$a->strings["[directory]"] = "[mappe]";
-$a->strings["Limit: "] = "Grense:";
+$a->strings["Help:"] = "Hjelp:";
+$a->strings["Not Found"] = "Ikke funnet";
+$a->strings["network"] = "nettverk";
$a->strings["Channel added."] = "Kanal lagt til.";
-$a->strings["%1\$s is following %2\$s's %3\$s"] = "%1\$s følger %2\$s sin %3\$s";
-$a->strings["Contact not found."] = "Kontakten ble ikke funnet.";
-$a->strings["Friend suggestion sent."] = "Venneforespørsel sendt.";
-$a->strings["Suggest Friends"] = "Foreslå venner";
-$a->strings["Suggest a friend for %s"] = "Foreslå en venn for %s";
-$a->strings["No suggestions available. If this is a new site, please try again in 24 hours."] = "Ingen forslag tilgjengelige. Hvis dette er et nytt nettsted, vennligst prøv igjen om 24 timer.";
+$a->strings["No potential page delegates located."] = "Ingen potensielle sidedelegater er funnet.";
+$a->strings["Delegate Page Management"] = "Deleger sidehåndtering";
+$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."] = "Delegater kan håndtere alle sider ved denne kontoen/siden unntatt grunnleggende kontoinformasjon. Vennligst ikke deleger din personlige konto til noen du ikke stoler fullstendig på.";
+$a->strings["Existing Page Managers"] = "Eksisterende sidehåndterere";
+$a->strings["Existing Page Delegates"] = "Eksisterende sidedelegater";
+$a->strings["Potential Delegates"] = "Potensielle sidedelegater";
+$a->strings["Add"] = "Legg til";
+$a->strings["No entries."] = "Ingen oppføringer.";
$a->strings["Collection created."] = "Samling opprettet.";
$a->strings["Could not create collection."] = "Kunne ikke lage samling.";
$a->strings["Collection updated."] = "Samlingen er oppdatert.";
@@ -1413,14 +1568,30 @@ $a->strings["Collection Editor"] = "Samlingsbehandler";
$a->strings["Members"] = "Medlemmer";
$a->strings["All Connected Channels"] = "Alle tilkoblede kanaler";
$a->strings["Click on a channel to add or remove."] = "Klikk på en kanal for å legge til eller fjerne.";
+$a->strings["No suggestions available. If this is a new site, please try again in 24 hours."] = "Ingen forslag tilgjengelige. Hvis dette er et nytt nettsted, vennligst prøv igjen om 24 timer.";
+$a->strings["Your service plan only allows %d channels."] = "Din tjenesteplan tillater bare %d kanaler.";
+$a->strings["Nothing to import."] = "Ingenting å importere.";
+$a->strings["Unable to download data from old server"] = "Ikke i stand til å laste ned data fra gammel tjener";
+$a->strings["Imported file is empty."] = "Importert fil er tom.";
+$a->strings["Cannot create a duplicate channel identifier on this system. Import failed."] = "Kan ikke lage en kopi av kanal-identifikatoren på dette systemet. Import mislyktes.";
+$a->strings["Channel clone failed. Import failed."] = "Kanalkloning mislyktes. Import mislyktes.";
+$a->strings["Cloned channel not found. Import failed."] = "Klonet kanal ble ikke funnet. Import mislyktes.";
+$a->strings["Import completed."] = "Import ferdig.";
+$a->strings["You must be logged in to use this feature."] = "Du må være innlogget for å bruke denne funksjonen.";
+$a->strings["Import Channel"] = "Importer kanal";
+$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."] = "Bruk dette skjemaet til å importere en eksisterende kanal fra en annen tjener/hub. Du kan hente kanalidentiteten fra den gamle tjeneren/hubben via nettverket eller bruke en eksportert fil. Bare identiteten og forbindelser/relasjoner vil bli importert. Importering av innhold er ennå ikke tilgjengelig.";
+$a->strings["File to Upload"] = "Fil som skal lastes opp";
+$a->strings["Or provide the old server/hub details"] = "Eller oppgi detaljene fra den gamle tjeneren/hub-en";
+$a->strings["Your old identity address (xyz@example.com)"] = "Din gamle identitetsadresse (xyz@example.com)";
+$a->strings["Your old login email address"] = "Din gamle innloggings e-postadresse";
+$a->strings["Your old login password"] = "Ditt gamle innloggingspassord";
+$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."] = "Enten du tar det ene eller det andre valget, vennligst angi om du vil at denne hubben skal være din nye primære adresse, eller om din gamle plassering skal fortsette å ha denne rollen. Du kan lage innlegg fra den ene eller den andre plasseringen, men bare en av dem kan markeres som den primære plasseringen for filer, bilder og media.";
+$a->strings["Make this hub my primary location"] = "Gjør dette nettstedet til min primære plassering";
+$a->strings["Import existing posts if possible"] = "Importerer eksisterende innlegg hvis mulig.";
$a->strings["%1\$s tagged %2\$s's %3\$s with %4\$s"] = "%1\$s merket %3\$s til %2\$s med %4\$s";
-$a->strings["Help:"] = "Hjelp:";
-$a->strings["Not Found"] = "Ikke funnet";
$a->strings["Tag removed"] = "Merkelapp fjernet";
$a->strings["Remove Item Tag"] = "Fjern merkelapp fra element";
$a->strings["Select a tag to remove: "] = "Velg merkelapp å fjerne:";
-$a->strings["Red Matrix - &quot;The Network&quot;"] = "Red Matrix - &quot;Nettverket&quot;";
-$a->strings["Welcome to %s"] = "Velkommen til %s";
$a->strings["Theme settings updated."] = "Temainnstillinger er oppdatert.";
$a->strings["Site"] = "Nettsted";
$a->strings["Accounts"] = "Kontoer";
@@ -1428,6 +1599,7 @@ $a->strings["Channels"] = "Kanaler";
$a->strings["Plugins"] = "Tilleggsfunksjoner";
$a->strings["Themes"] = "Temaer";
$a->strings["Server"] = "Tjener";
+$a->strings["Profile Config"] = "Profilinnstillinger";
$a->strings["DB updates"] = "Databaseoppdateringer";
$a->strings["Logs"] = "Logger";
$a->strings["Plugin Features"] = "Tilleggsfunksjoner";
@@ -1440,7 +1612,9 @@ $a->strings["Pending registrations"] = "Ventende registreringer";
$a->strings["Version"] = "Versjon";
$a->strings["Active plugins"] = "Aktive tilleggsfunksjoner";
$a->strings["Site settings updated."] = "Nettstedsinnstillinger er oppdatert.";
-$a->strings["No special theme for accessibility"] = "Ikke noe spesielt tema for universell utforming";
+$a->strings["mobile"] = "mobil";
+$a->strings["experimental"] = "eksperimentell";
+$a->strings["unsupported"] = "ikke støttet";
$a->strings["Yes - with approval"] = "Ja - med godkjenning";
$a->strings["My site is not a public server"] = "Mitt nettsted er ikke en offentlig tjeneste";
$a->strings["My site has paid access only"] = "Mitt nettsted gir kun tilgang mot betaling";
@@ -1457,10 +1631,10 @@ $a->strings["System theme"] = "Systemtema";
$a->strings["Default system theme - may be over-ridden by user profiles - <a href='#' id='cnftheme'>change theme settings</a>"] = "Standard systemtema - kan overstyres av brukerprofiler - <a href='#' id='cnftheme'>endre temainnstillinger</a>";
$a->strings["Mobile system theme"] = "Mobilt systemtema";
$a->strings["Theme for mobile devices"] = "Tema for mobile enheter";
-$a->strings["Accessibility system theme"] = "Universelt utformet systemtema";
-$a->strings["Accessibility theme"] = "Universelt utformet tema";
-$a->strings["Channel to use for this website's static pages"] = "Kanal å bruke for dette nettstedets statiske sider";
-$a->strings["Site Channel"] = "Nettstedets kanal";
+$a->strings["Enable Diaspora Protocol"] = "Skru på Diaspora-protokollen";
+$a->strings["Communicate with Diaspora and Friendica - experimental"] = "Samhandling med Diaspora og Friendica - eksperimentell";
+$a->strings["Allow Feeds as Connections"] = "Tillat strømmer som forbindelser";
+$a->strings["(Heavy system resource usage)"] = "(Tung bruk av systemressurser)";
$a->strings["Maximum image size"] = "Største bildestørrelse";
$a->strings["Maximum size in bytes of uploaded images. Default is 0, which means no limits."] = "Største størrelse i bytes for opplastede bilder. Standard er 0, som betyr ubegrenset.";
$a->strings["Does this site allow new member registration?"] = "Tillater dette nettstedet registrering av nye medlemmer?";
@@ -1475,6 +1649,8 @@ $a->strings["Allowed email domains"] = "Tillate e-postdomener";
$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"] = "Kommaseparert liste med domener som er tillatt i e-postadresser ved registrering på dette nettstedet. Jokertegn er akseptert. Tomt betyr at alle domener er tillatt";
$a->strings["Block public"] = "Blokker offentlig tilgang";
$a->strings["Check to block public access to all otherwise public personal pages on this site unless you are currently logged in."] = "Kryss av for å blokkere tilgang til alle personlige sider som ellers ville vært offentlig tilgjengelige på dette nettstedet med mindre du er logget inn.";
+$a->strings["Verify Email Addresses"] = "Bekreft e-postadresser";
+$a->strings["Check to verify email addresses used in account registration (recommended)."] = "Sett hake for å sjekke e-postadresser brukt ved kontoregistrering (anbefales).";
$a->strings["Force publish"] = "Tving publisering";
$a->strings["Check to force all profiles on this site to be listed in the site directory."] = "Kryss av for å tvinge alle profiler på dette nettstedet til å bli oppført i nettstedet sin katalog.";
$a->strings["Disable discovery tab"] = "Skru av oppdagelsesfanen";
@@ -1514,7 +1690,6 @@ $a->strings["%s user deleted"] = array(
1 => "%s brukere slettet",
);
$a->strings["Account not found"] = "Kontoen ble ikke funnet";
-$a->strings["User '%s' deleted"] = "Brukeren '%s' er slettet";
$a->strings["User '%s' unblocked"] = "Brukeren '%s' er ikke blokkert lenger";
$a->strings["User '%s' blocked"] = "Brukeren '%s' er blokkert";
$a->strings["Users"] = "Brukere";
@@ -1531,8 +1706,8 @@ $a->strings["Service Class"] = "Tjenesteklasse";
$a->strings["Selected users will be deleted!\\n\\nEverything these users had posted on this site will be permanently deleted!\\n\\nAre you sure?"] = "Valgte brukere vil bli slettet!\\n\\nAlt som disse brukerne har lagt inn på dette nettstedet vil bli slettet for alltid!\\n\\nEr du sikker på at du vil slette valgte brukere og deres innhold?";
$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?"] = "Brukeren {0} vil bli slettet!\\n\\nAlt denne brukeren har lagt inn på dette nettstedet vil bli slettet for alltid!\\n\\nEr du sikker på at du vil slette denne brukeren og alt innholdet til denne brukeren?";
$a->strings["%s channel censored/uncensored"] = array(
- 0 => "%s kanal sensurert/ikke sensurert lenger",
- 1 => "%s kanaler sensurert/ikke sensurert lenger",
+ 0 => "%s kanal er sensurert/ikke sensurert lenger",
+ 1 => "%s kanaler er sensurert/ikke sensurert lenger",
);
$a->strings["%s channel deleted"] = array(
0 => "%s kanal slettet",
@@ -1564,38 +1739,31 @@ $a->strings["Debugging"] = "Feilsøking";
$a->strings["Log file"] = "Loggfil";
$a->strings["Must be writable by web server. Relative to your Red top-level directory."] = "Må kunne skrives til av webtjenesten. Relativ til din Red sin toppnivåkatalog.";
$a->strings["Log level"] = "Loggnivå";
-$a->strings["Thing updated"] = "Tingen er oppdatert";
-$a->strings["Object store: failed"] = "Objektlagring: mislyktes";
-$a->strings["Thing added"] = "Ting lagt til";
-$a->strings["OBJ: %1\$s %2\$s %3\$s"] = "OBJ: %1\$s %2\$s %3\$s";
-$a->strings["Show Thing"] = "Vis ting";
-$a->strings["item not found."] = "element ble ikke funnet.";
-$a->strings["Edit Thing"] = "Endre ting";
-$a->strings["Select a profile"] = "Velg en profil";
-$a->strings["Select a category of stuff. e.g. I ______ something"] = "Velg en kategori med ting, for eksempel l_____ noe";
-$a->strings["Post an activity"] = "Legg inn en aktivitet";
-$a->strings["Only sends to viewers of the applicable profile"] = "Sender bare til seere av den aktuelle profilen";
-$a->strings["Name of thing e.g. something"] = "Navn på ting for eksempel noe";
-$a->strings["URL of thing (optional)"] = "URL til ting (valgfritt)";
-$a->strings["URL for photo of thing (optional)"] = "URL til bilde av ting (valgfritt)";
-$a->strings["Add Thing to your Profile"] = "Legg til ting i din profil";
-$a->strings["Nothing to import."] = "Ingenting å importere.";
-$a->strings["Unable to download data from old server"] = "Ikke i stand til å laste ned data fra gammel tjener";
-$a->strings["Imported file is empty."] = "Importert fil er tom.";
-$a->strings["Cannot create a duplicate channel identifier on this system. Import failed."] = "Kan ikke lage en kopi av kanal-identifikatoren på dette systemet. Import mislyktes.";
-$a->strings["Channel clone failed. Import failed."] = "Kanalkloning mislyktes. Import mislyktes.";
-$a->strings["Cloned channel not found. Import failed."] = "Klonet kanal ble ikke funnet. Import mislyktes.";
-$a->strings["Import completed."] = "Import ferdig.";
-$a->strings["You must be logged in to use this feature."] = "Du må være innlogget for å bruke denne funksjonen.";
-$a->strings["Import Channel"] = "Importer kanal";
-$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."] = "Bruk dette skjemaet til å importere en eksisterende kanal fra en annen tjener/hub. Du kan hente kanalidentiteten fra den gamle tjeneren/hubben via nettverket eller bruke en eksportert fil. Bare identiteten og forbindelser/relasjoner vil bli importert. Importering av innhold er ennå ikke tilgjengelig.";
-$a->strings["File to Upload"] = "Fil som skal lastes opp";
-$a->strings["Or provide the old server/hub details"] = "Eller oppgi detaljene fra den gamle tjeneren/hub-en";
-$a->strings["Your old identity address (xyz@example.com)"] = "Din gamle identitetsadresse (xyz@example.com)";
-$a->strings["Your old login email address"] = "Din gamle innloggings e-postadresse";
-$a->strings["Your old login password"] = "Ditt gamle innloggingspassord";
-$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."] = "Enten du tar det ene eller det andre valget, vennligst angi om du vil at denne hubben skal være din nye primære adresse, eller om din gamle plassering skal fortsette å ha denne rollen. Du kan lage innlegg fra den ene eller den andre plasseringen, men bare en av dem kan markeres som den primære plasseringen for filer, bilder og media.";
-$a->strings["Make this hub my primary location"] = "Gjør dette nettstedet til min primære plassering";
+$a->strings["New Profile Field"] = "Nytt profilfelt";
+$a->strings["Field nickname"] = "Feltets kallenavn";
+$a->strings["System name of field"] = "Systemnavnet til feltet";
+$a->strings["Input type"] = "Inndata-type";
+$a->strings["Field Name"] = "Feltnavn";
+$a->strings["Label on profile pages"] = "Merkelapp på profilsider";
+$a->strings["Help text"] = "Hjelpetekst";
+$a->strings["Additional info (optional)"] = "Tilleggsinformasjon (valgfritt)";
+$a->strings["Field definition not found"] = "Feltdefinisjonen ble ikke funnet";
+$a->strings["Edit Profile Field"] = "Endre profilfelt";
+$a->strings["Unable to locate original post."] = "Ikke i stand til å finne opprinnelig innlegg.";
+$a->strings["Empty post discarded."] = "Tomt innlegg forkastet.";
+$a->strings["Executable content type not permitted to this channel."] = "Kjørbar innholdstype er ikke tillat for denne kanalen.";
+$a->strings["System error. Post not saved."] = "Systemfeil. Innlegg ble ikke lagret.";
+$a->strings["You have reached your limit of %1$.0f top level posts."] = "Du har nådd din grense på %1$.0f startinnlegg.";
+$a->strings["You have reached your limit of %1$.0f webpages."] = "Du har nådd din grense på %1$.0f websider.";
+$a->strings["Like/Dislike"] = "Liker/Liker ikke";
+$a->strings["This action is restricted to members."] = "Denne handlingen er begrenset til medlemmer.";
+$a->strings["Please <a href=\"rmagic\">login with your RedMatrix ID</a> or <a href=\"register\">register as a new RedMatrix member</a> to continue."] = "Vennligst <a href=\"rmagic\">logg inn med din RedMatrix ID</a> eller <a href=\"register\">registrer deg som et nytt RedMatrix-medlem</a> for å fortsette";
+$a->strings["Invalid request."] = "Ugyldig forespørsel.";
+$a->strings["thing"] = "ting";
+$a->strings["Channel unavailable."] = "Kanalen er utilgjengelig.";
+$a->strings["Previous action reversed."] = "Forrige handling er omgjort.";
+$a->strings["Action completed."] = "Handling ferdig.";
+$a->strings["Thank you."] = "Tusen takk.";
$a->strings["Total invitation limit exceeded."] = "Grensen for totalt antall invitasjoner er overskredet.";
$a->strings["%s : Not a valid email address."] = "%s : ikke en gyldig e-postadresse.";
$a->strings["Please join us on Red"] = "Bli med oss på Red";
@@ -1609,18 +1777,19 @@ $a->strings["You have no more invitations available"] = "Du har ikke flere invit
$a->strings["Send invitations"] = "Send invitasjoner";
$a->strings["Enter email addresses, one per line:"] = "Skriv e-postadresser, en per linje:";
$a->strings["Your message:"] = "Din melding:";
-$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 er hjertelig invitert til å være med meg og noen andre nære venner i Red Matrix - et nytt og revolusjonerende desentralisert kommunikasjons- og informasjonsverktøy.";
-$a->strings["You will need to supply this invitation code: \$invite_code"] = "Du må oppgi denne invitasjonskoden: \$invite_code";
-$a->strings["Please visit my channel at"] = "Vennligst besøk min kanal hos";
-$a->strings["Once you have registered (on ANY Red Matrix site - they are all inter-connected), please connect with my Red Matrix channel address:"] = "Når du har registrert (på et HVILKET SOM HELST Red Matrix-nettsted - de er alle forbundet med hverandre), vennligst opprett kobling med min Red Matrix-kanaladresse:";
-$a->strings["Click the [Register] link on the following page to join."] = "Klikk på [Registering]-lenken på følgende side for å bli med.";
-$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"] = "For mer informasjon om Red Matrix-prosjektet og hvorfor det har potensialet til å forandre Internett som vi kjenner det, vær vennlig å besøke http://getzot.com";
-$a->strings["Unable to locate original post."] = "Ikke i stand til å finne opprinnelig innlegg.";
-$a->strings["Empty post discarded."] = "Tomt innlegg forkastet.";
-$a->strings["Executable content type not permitted to this channel."] = "Kjørbar innholdstype er ikke tillat for denne kanalen.";
-$a->strings["System error. Post not saved."] = "Systemfeil. Innlegg ble ikke lagret.";
-$a->strings["You have reached your limit of %1$.0f top level posts."] = "Du har nådd din grense på %1$.0f startinnlegg.";
-$a->strings["You have reached your limit of %1$.0f webpages."] = "Du har nådd din grense på %1$.0f websider.";
+$a->strings["Please join my community on RedMatrix."] = "Du er velkommen til å bli med i mitt fellesskap på RedMatrix.";
+$a->strings["You will need to supply this invitation code: "] = "Du må oppgi denne invitasjonskoden:";
+$a->strings["1. Register at any RedMatrix location (they are all inter-connected)"] = "1. Registrer ved enhver RedMatrix-lokasjon (de er alle forbundet med hverandre)";
+$a->strings["2. Enter my RedMatrix network address into the site searchbar."] = "2. Skriv inn min RedMatrix-adresse i nettstedets søkefelt.";
+$a->strings["or visit "] = "eller besøk";
+$a->strings["3. Click [Connect]"] = "3. Klikk [Forbindelse]";
+$a->strings["Location not found."] = "Plassering er ikke funnet.";
+$a->strings["Primary location cannot be removed."] = "Primær plassering kan ikke fjernes.";
+$a->strings["No locations found."] = "Ingen plasseringer ble funnet.";
+$a->strings["Manage Channel Locations"] = "HÃ¥ndter kanalplasseringer";
+$a->strings["Location (address)"] = "Plassering (adresse)";
+$a->strings["Primary Location"] = "Hovedplassering";
+$a->strings["Drop location"] = "Slett plassering";
$a->strings["[Embedded content - reload page to view]"] = "[Innebygget innhold - last siden på nytt for å se]";
$a->strings["Help with this feature"] = "Hjelp med denne funksjonen";
$a->strings["Layout Name"] = "Layout-navn";
@@ -1629,22 +1798,6 @@ $a->strings["Visible to:"] = "Synlig for:";
$a->strings["No connections."] = "Ingen forbindelser.";
$a->strings["Visit %s's profile [%s]"] = "Besøk %s sin profil [%s]";
$a->strings["View Connnections"] = "Vis forbindelser";
-$a->strings["No valid account found."] = "Ingen gyldig konto funnet.";
-$a->strings["Password reset request issued. Check your email."] = "Forespørsel om å tilbakestille passord er mottatt. Sjekk e-posten din.";
-$a->strings["Site Member (%s)"] = "Nettstedsmedlem (%s)";
-$a->strings["Password reset requested at %s"] = "Forespurt om å tilbakestille passord hos %s";
-$a->strings["Request could not be verified. (You may have previously submitted it.) Password reset failed."] = "Forespørsel kunne ikke bekreftes. (Du kan ha sendt den inn tidligere.) Tilbakestilling av passord mislyktes.";
-$a->strings["Password Reset"] = "Tilbakestill passord";
-$a->strings["Your password has been reset as requested."] = "Ditt passord har blitt tilbakestilt som forespurt.";
-$a->strings["Your new password is"] = "Ditt nye passord er";
-$a->strings["Save or copy your new password - and then"] = "Lagre eller kopier ditt nye passord, og deretter kan du";
-$a->strings["click here to login"] = "klikke her for å logge inn";
-$a->strings["Your password may be changed from the <em>Settings</em> page after successful login."] = "Ditt passord kan endres på siden <em>Innstillinger</em> etter vellykket innlogging.";
-$a->strings["Your password has changed at %s"] = "Ditt passord er endret hos %s";
-$a->strings["Forgot your Password?"] = "Glemt passord ditt?";
-$a->strings["Enter your email address and submit to have your password reset. Then check your email for further instructions."] = "Skriv e-postadressen din og send inn for å tilbakestille passordet ditt. Sjekk deretter din e-post for videre instruksjoner.";
-$a->strings["Email Address"] = "E-postadresse";
-$a->strings["Reset"] = "Tilbakestill";
$a->strings["Hub not found."] = "Hubben ble ikke funnet.";
$a->strings["Total votes"] = "Totalt antall stemmer";
$a->strings["Average Rating"] = "Gjennomsnittlig vurdering";
@@ -1652,12 +1805,12 @@ $a->strings["Unable to lookup recipient."] = "Ikke i stand til å slå opp motta
$a->strings["Unable to communicate with requested channel."] = "Ikke i stand til å kommunisere med forespurt kanal.";
$a->strings["Cannot verify requested channel."] = "Kan ikke bekrefte forespurt kanal.";
$a->strings["Selected channel has private message restrictions. Send failed."] = "Valgt kanal har restriksjoner for private meldinger. Sending feilet.";
-$a->strings["Messages"] = "Meldinger";
$a->strings["Message deleted."] = "Melding slettet.";
$a->strings["Message recalled."] = "Innlegg tilbakekalt.";
$a->strings["Send Private Message"] = "Send privat melding";
$a->strings["To:"] = "Til:";
$a->strings["Subject:"] = "Emne:";
+$a->strings["Send"] = "Send";
$a->strings["Message not found."] = "Melding ikke funnet.";
$a->strings["Delete message"] = "Slett melding";
$a->strings["Recall message"] = "Tilbakekall innlegg";
@@ -1666,13 +1819,6 @@ $a->strings["Private Conversation"] = "Privat samtale";
$a->strings["Delete conversation"] = "Slett samtale";
$a->strings["No secure communications available. You <strong>may</strong> be able to respond from the sender's profile page."] = "Ingen sikret kommunikasjon tilgjengelig. Du kan <strong>muligens</strong> greie å svare via senderens profilside.";
$a->strings["Send Reply"] = "Send svar";
-$a->strings["You have created %1$.0f of %2$.0f allowed channels."] = "Du har laget %1$.0f av %2$.0f tillatte kanaler.";
-$a->strings["Create a new channel"] = "Lag en ny kanal";
-$a->strings["Channel Manager"] = "Kanalstyring";
-$a->strings["Current Channel"] = "Gjeldende kanal";
-$a->strings["Attach to one of your channels by selecting it."] = "Bytt til en av dine kanaler ved å velge den.";
-$a->strings["Default Channel"] = "Standardkanal";
-$a->strings["Make Default"] = "Gjør til standard";
$a->strings["Wall Photos"] = "Veggbilder";
$a->strings["Profile Match"] = "Profiltreff";
$a->strings["No keywords to match. Please add keywords to your default profile."] = "Ingen nøkkelord å sammenlikne. Vennligst legg til nøkkelord til din standardprofil.";
@@ -1684,6 +1830,7 @@ $a->strings["Menu created."] = "Meny laget.";
$a->strings["Unable to create menu."] = "Ikke i stand til å lage meny.";
$a->strings["Manage Menus"] = "HÃ¥ndtere menyer";
$a->strings["Drop"] = "Slett";
+$a->strings["Bookmarks allowed"] = "Bokmerker tillatt";
$a->strings["Create a new menu"] = "Lag en ny meny";
$a->strings["Delete this menu"] = "Slett denne menyen";
$a->strings["Edit menu contents"] = "Endre menyinnholdet";
@@ -1708,45 +1855,19 @@ $a->strings["Examples: \"Bob Jameson\", \"Lisa and her Horses\", \"Soccer\", \"A
$a->strings["Choose a short nickname"] = "Velg et kort kallenavn";
$a->strings["Your nickname will be used to create an easily remembered channel address (like an email address) which you can share with others."] = "Ditt kallenavn brukes til å lage en kanaladresse som er enkel å huske (minner om en e-postadresse) og som du kan dele med andre.";
$a->strings["Or <a href=\"import\">import an existing channel</a> from another location"] = "Eller <a href=\"import\">importerer en eksisterende kanal</a> fra et annet sted.";
-$a->strings["Page owner information could not be retrieved."] = "Informasjon om sideeier kunne ikke hentes.";
-$a->strings["Album not found."] = "Albumet ble ikke funnet.";
-$a->strings["Delete Album"] = "Slett album";
-$a->strings["Delete Photo"] = "Slett bilde";
-$a->strings["No photos selected"] = "Ingen bilder valgt";
-$a->strings["Access to this item is restricted."] = "Tilgang til dette elementet er begrenset.";
-$a->strings["You have used %1$.2f Mbytes of %2$.2f Mbytes photo storage."] = "Du har brukt %1$.2f Mbytes av %2$.2f Mbytes i bildelageret.";
-$a->strings["You have used %1$.2f Mbytes of photo storage."] = "Du har brukt %1$.2f Mbytes av bildelageret.";
-$a->strings["Upload Photos"] = "Last opp bilder";
-$a->strings["New album name: "] = "Nytt albumnavn:";
-$a->strings["or existing album name: "] = "eller eksisterende albumnavn:";
-$a->strings["Do not show a status post for this upload"] = "Ikke lag et statusinnlegg for denne oppdateringen";
-$a->strings["Contact Photos"] = "Kontaktbilder";
-$a->strings["Edit Album"] = "Endre album";
-$a->strings["Show Newest First"] = "Vis nyeste først";
-$a->strings["Show Oldest First"] = "Vis eldste først";
-$a->strings["View Photo"] = "Vis foto";
-$a->strings["Permission denied. Access to this item may be restricted."] = "Tillatelse avvist. Tilgang til dette elementet kan være begrenset.";
-$a->strings["Photo not available"] = "Bilde er utilgjengelig";
-$a->strings["Use as profile photo"] = "Bruk som profilbilde";
-$a->strings["View Full Size"] = "Vis i full størrelse";
-$a->strings["Edit photo"] = "Endre bilde";
-$a->strings["Rotate CW (right)"] = "Roter med klokka (mot høyre)";
-$a->strings["Rotate CCW (left)"] = "Roter mot klokka (venstre)";
-$a->strings["New album name"] = "Nytt albumnavn";
-$a->strings["Caption"] = "Overskrift";
-$a->strings["Add a Tag"] = "Legg til merkelapp";
-$a->strings["Example: @bob, @Barbara_Jensen, @jim@example.com, #California, #camping"] = "Eksempel: @ola, @Kari_Nordmann, @jim@example.com, #Norge, #telttur";
-$a->strings["In This Photo:"] = "I dette bildet:";
-$a->strings["View Album"] = "Vis album";
-$a->strings["Recent Photos"] = "Nye bilder";
+$a->strings["Channel Type"] = "Kanaltype";
+$a->strings["Please choose a channel type (such as social networking or community forum) and privacy requirements so we can select the best permissions for you"] = "Vennligst velg en kanaltype (for eksempel sosialt nettverk eller forum for felleskap) og krav til personvern slik at vi kan velge de beste tillatelsene for deg.";
+$a->strings["Red Matrix - &quot;The Network&quot;"] = "Red Matrix - &quot;Nettverket&quot;";
+$a->strings["Welcome to %s"] = "Velkommen til %s";
$a->strings["Invalid request identifier."] = "Ugyldig forespørselsidentifikator.";
$a->strings["Discard"] = "Forkast";
$a->strings["No more system notifications."] = "Ingen flere systemvarsler.";
$a->strings["System Notifications"] = "Systemvarsler";
+$a->strings["Xchan Lookup"] = "Xchan oppslag";
+$a->strings["Lookup xchan beginning with (or webbie): "] = "Slå opp xchan som begynner med (eller webbie):";
$a->strings["Unable to find your hub."] = "Ikke i stand til å finne hubben din.";
$a->strings["Post successful."] = "Innlegg vellykket.";
$a->strings["invalid target signature"] = "MÃ¥lets signatur er ugyldig";
-$a->strings["OpenID protocol error. No ID returned."] = "OpenID protokollfeil. Ingen ID ble returnert.";
$a->strings["App installed."] = "App installert.";
$a->strings["Malformed app."] = "Feil oppsett for app-en.";
$a->strings["Embed code"] = "Innbyggingskode";
@@ -1759,35 +1880,43 @@ $a->strings["80 x 80 pixels - optional"] = "80 x80 pixler - valgfritt";
$a->strings["Version ID"] = "Versjons-ID";
$a->strings["Price of app"] = "Pris på app";
$a->strings["Location (URL) to purchase app"] = "Plassering (URL) for å kjøpe app";
-$a->strings["Schema Default"] = "Standardskjema";
+$a->strings["Poll"] = "Spørring";
+$a->strings["View Results"] = "Vis resultater";
+$a->strings["Account removals are not allowed within 48 hours of changing the account password."] = "Sletting av kontoer er ikke tillatt innen 48 timer etter endring av kontopassordet.";
+$a->strings["Remove This Account"] = "Slett denne kontoen";
+$a->strings["This will completely remove this account including all its channels from the network. Once this has been done it is not recoverable."] = "Dette vil fullstendig slette denne kontoen inkludert alle dens kanaler fra nettverket. NÃ¥r dette er gjort kan det ikke angres.";
+$a->strings["Remove this account, all its channels and all its channel clones from the network"] = "Slett denne kontoen, alle dens kanaler og alle dens kanalkloner fra dette nettverket";
+$a->strings["By default only the instances of the channels located on this hub will be removed from the network"] = "Som standard vil bare forekomster av kanalene lokalisert på denne hubben bli slettet fra nettverket";
+$a->strings["No service class restrictions found."] = "Ingen restriksjoner er funnet i tjenesteklasse.";
+$a->strings["Schema Default"] = "Standard skjema";
$a->strings["Sans-Serif"] = "Sans-Serif";
$a->strings["Monospace"] = "Monospace";
$a->strings["Theme settings"] = "Temainnstillinger";
$a->strings["Set scheme"] = "Angi skjema";
$a->strings["Set font-size for posts and comments"] = "Angi skriftstørrelse for innlegg og kommentarer";
$a->strings["Set font face"] = "Angi skrifttype";
-$a->strings["Set iconset"] = "Angi ikonsett";
+$a->strings["Set iconset"] = "Angi ikonutvalg";
$a->strings["Set big shadow size, default 15px 15px 15px"] = "Angi stor skyggestørrelse, standard 15px 15px 15px";
$a->strings["Set small shadow size, default 5px 5px 5px"] = "Angi liten skyggestørrelse, standard 5px 5px 5px";
-$a->strings["Set shadow colour, default #000"] = "Angi skyggefarge, standard #000";
-$a->strings["Set radius size, default 5px"] = "Angi størrelsen på radius, standard 5px";
+$a->strings["Set shadow color, default #000"] = "Angi skyggefarge, standard #000";
+$a->strings["Set radius size, default 5px"] = "Angi radiusstørrelse, standard 5px";
$a->strings["Set line-height for posts and comments"] = "Angi linjeavstand for innlegg og kommentarer";
$a->strings["Set background image"] = "Angi bakgrunnsbilde";
$a->strings["Set background attachment"] = "Angi bakgrunnsvedlegg";
-$a->strings["Set background colour"] = "Angi bakgrunnsbilde";
+$a->strings["Set background color"] = "Angi bakgrunnsfarge";
$a->strings["Set section background image"] = "Angi seksjonens bakgrunnsbilde";
-$a->strings["Set section background colour"] = "Angi seksjonens bakgrunnsfarge";
-$a->strings["Set colour of items - use hex"] = "Angi fargen til elementer - bruk hex";
-$a->strings["Set colour of links - use hex"] = "Angi fargen til lenker - bruk hex";
-$a->strings["Set max-width for items. Default 400px"] = "Angi største bredde for elementer. Standard 400px.";
-$a->strings["Set min-width for items. Default 240px"] = "Angi minste bredde for elementer. Standard 240px.";
-$a->strings["Set the generic content wrapper width. Default 48%"] = "Angi bredden til den generelle innholdsinnpakningen. Standard 48%";
-$a->strings["Set colour of fonts - use hex"] = "Angi skriftfargen - bruk hex";
+$a->strings["Set section background color"] = "Angi seksjonens bakgrunnsfarge";
+$a->strings["Set color of items - use hex"] = "Angi fargen til elementer - bruk hex";
+$a->strings["Set color of links - use hex"] = "Angi fargen til lenker - bruk hex";
+$a->strings["Set max-width for items. Default 400px"] = "Angi maksimal bredde for elementer. Standard 400px";
+$a->strings["Set min-width for items. Default 240px"] = "Angi minimumsbredde for elementer. Standard 240px";
+$a->strings["Set the generic content wrapper width. Default 48%"] = "Angi den generelle bredden for innpakking av innhold. Standard 48%";
+$a->strings["Set color of fonts - use hex"] = "Angi skriftfargen - bruk hex";
$a->strings["Set background-size element"] = "Angi størrelsen på bakgrunnselementet";
-$a->strings["Item opacity"] = "Elementets dekkevne";
+$a->strings["Item opacity"] = "Elementers dekkevne";
$a->strings["Display post previews only"] = "Vis kun forhåndsvisning av innlegg";
$a->strings["Display side bar on channel page"] = "Vis sidestolpe på kanalsiden";
-$a->strings["Colour of the navigation bar"] = "Fargen til navigasjonslinjen";
+$a->strings["Colour of the navigation bar"] = "Fargen på navigasjonslinjen";
$a->strings["Item float"] = "Elementflyt";
$a->strings["Left offset of the section element"] = "Til venstre for seksjonselementet";
$a->strings["Right offset of the section element"] = "Til høyre for seksjonselementet";
@@ -1797,27 +1926,28 @@ $a->strings["Right offset of the aside element"] = "Til høyre for sidestolpen";
$a->strings["None"] = "Ingen";
$a->strings["Header image"] = "Topptekstbilde";
$a->strings["Header image only on profile pages"] = "Topptekstbilde bare på profilsider";
+$a->strings["Light (Red Matrix default)"] = "Lys (Red Matrix standard)";
$a->strings["Narrow navbar"] = "Smal navigasjonslinje";
-$a->strings["Navigation bar background colour"] = "Navigasjonslinjens bakgrunnsfarge";
-$a->strings["Navigation bar gradient top colour"] = "Navigasjonslinjens graderte toppfarge";
-$a->strings["Navigation bar gradient bottom colour"] = "Navigasjonslinjens graderte bunnfarge";
-$a->strings["Navigation active button gradient top colour"] = "Aktiv navigasjonsknapp sin graderte toppfarge";
-$a->strings["Navigation active button gradient bottom colour"] = "Aktiv navigasjonsknapp sin graderte bunnfarge";
-$a->strings["Navigation bar border colour "] = "Navigasjonslinjens kantfarge";
-$a->strings["Navigation bar icon colour "] = "Navigasjonslinjens ikonfarge";
-$a->strings["Navigation bar active icon colour "] = "Navigasjonslinjens aktive ikoners farge";
-$a->strings["link colour"] = "lenkefarge";
-$a->strings["Set font-colour for banner"] = "Angi skriftfargen for banneret";
-$a->strings["Set the background colour"] = "Angi bakgrunnsfargen";
+$a->strings["Navigation bar background color"] = "Navigasjonslinjens bakgrunnsfarge";
+$a->strings["Navigation bar gradient top color"] = "Navigasjonslinjens graderte toppfarge";
+$a->strings["Navigation bar gradient bottom color"] = "Navigasjonslinjens graderte bunnfarge";
+$a->strings["Navigation active button gradient top color"] = "Aktiv navigasjonsknapp sin graderte toppfarge";
+$a->strings["Navigation active button gradient bottom color"] = "Aktiv navigasjonsknapp sin graderte bunnfarge";
+$a->strings["Navigation bar border color "] = "Navigasjonslinjens kantfarge";
+$a->strings["Navigation bar icon color "] = "Navigasjonslinjens ikonfarge";
+$a->strings["Navigation bar active icon color "] = "Navigasjonslinjens aktive ikoners farge";
+$a->strings["link color"] = "lenkefarge";
+$a->strings["Set font-color for banner"] = "Angi skriftfargen for banneret";
+$a->strings["Set the background color"] = "Angi bakgrunnsfargen";
$a->strings["Set the background image"] = "Angi bakgrunnsbilde";
-$a->strings["Set the background colour of items"] = "Angi bakgrunnsfargen til elementer";
-$a->strings["Set the background colour of comments"] = "Angi bakgrunnsfargen til kommentarer";
-$a->strings["Set the border colour of comments"] = "Angi kantfargen til kommentarer";
+$a->strings["Set the background color of items"] = "Angi bakgrunnsfargen til elementer";
+$a->strings["Set the background color of comments"] = "Angi bakgrunnsfargen til kommentarer";
+$a->strings["Set the border color of comments"] = "Angi kantfargen til kommentarer";
$a->strings["Set the indent for comments"] = "Angi innrykket til kommentarer";
-$a->strings["Set the basic colour for item icons"] = "Angi grunnfargen for elementikoner";
-$a->strings["Set the hover colour for item icons"] = "Angi fargen til elementikoner ved berøring";
+$a->strings["Set the basic color for item icons"] = "Angi grunnfargen for elementikoner";
+$a->strings["Set the hover color for item icons"] = "Angi fargen til elementikoner ved berøring";
$a->strings["Set font-size for the entire application"] = "Angi skriftstørrelsen for hele programmet";
-$a->strings["Set font-colour for posts and comments"] = "Angi skriftfargen for innlegg og kommentarer";
+$a->strings["Set font-color for posts and comments"] = "Angi skriftfargen for innlegg og kommentarer";
$a->strings["Set radius of corners"] = "Angi hjørneradius";
$a->strings["Set shadow depth of photos"] = "Angi skyggedybden til bilder";
$a->strings["Set maximum width of conversation regions"] = "Angi største bredde for samtaleregioner";
diff --git a/view/nl/follow_notify_eml.tpl b/view/nl/follow_notify_eml.tpl
deleted file mode 100644
index a80fe087c..000000000
--- a/view/nl/follow_notify_eml.tpl
+++ /dev/null
@@ -1,14 +0,0 @@
-
-Beste {{$myname}},
-
-Je hebt een nieuwe volger op {{$sitename}} - '{{$requestor}}'.
-
-Je kan zijn/ haar profiel bezoeken op {{$url}}.
-
-Je dient op je hub in te loggen om het verzoek te accepteren, het af te wijzen of om het te negeren.
-
-{{$siteurl}}
-
-Vriendelijke groet,
-
- Beheerder {{$sitename}} ({{$siteurl}}) \ No newline at end of file
diff --git a/view/nl/friend_complete_eml.tpl b/view/nl/friend_complete_eml.tpl
deleted file mode 100644
index 3688b2fcd..000000000
--- a/view/nl/friend_complete_eml.tpl
+++ /dev/null
@@ -1,22 +0,0 @@
-
-Beste {{$username}},
-
- Groot nieuws... '{{$fn}}' op '{{$dfrn_url}}' heeft jouw
-connectieverzoek op '{{$sitename}}' geaccepteerd.
-
-Jullie zijn nu met elkaar verbonden en kunnen zonder beperkingen berichten, foto's en
-privéberichten uitwisselen.
-
-Bezoek jouw 'connecties'-pagina op {{$sitename}} wanneer je instellingen voor
-deze connectie wil veranderen.
-
-{{$siteurl}}
-
-[Je kan bijvoorbeeld een apart profiel aanmaken (zie extra functies) die niet voor het
-grote publiek te zien is en deze zichtbaar maken voor '{{$fn}}'].
-
-Vriendelijke groet,
-
- Beheerder {{$sitename}} ({{siteurl}})
-
- \ No newline at end of file
diff --git a/view/nl/intro_complete_eml.tpl b/view/nl/intro_complete_eml.tpl
deleted file mode 100644
index e635327fc..000000000
--- a/view/nl/intro_complete_eml.tpl
+++ /dev/null
@@ -1,22 +0,0 @@
-
-Beste {{$username}},
-
- '{{$fn}}' op '{{$dfrn_url}}' heeft jouw
-connectieverzoek geaccepteerd op '{{$sitename}}'.
-
- '{{$fn}}' heeft er voor gekozen om jou als "fan" te accepteren.
-Hierdoor worden sommige vormen van communicatie beperkt, zoals het sturen van privéberichten en sommige
-profiel-interacties. Wanneer dit een kanaal van een beroemdheid of een groep/forum is werden
-deze instellingen automatisch toegepast.
-
- '{{$fn}}' kan er voor kiezen om in de toekomst deze beperkingen op te heffen of
-om juist meer beperkingen op te leggen.
-
- Vanaf nu ontvang je openbare berichten van '{{$fn}}'.
-Deze zullen in jouw 'matrix' (tijdlijn) verschijnen op
-
-{{$siteurl}}.
-
-Vriendelijke groet,
-
- Beheerder {{$sitename}} ({{$siteurl}}) \ No newline at end of file
diff --git a/view/nl/messages.po b/view/nl/messages.po
index 3c7485790..54dfcc478 100644
--- a/view/nl/messages.po
+++ b/view/nl/messages.po
@@ -9,8 +9,8 @@ msgid ""
msgstr ""
"Project-Id-Version: Red Matrix\n"
"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2014-08-29 00:03-0700\n"
-"PO-Revision-Date: 2014-08-30 14:00+0000\n"
+"POT-Creation-Date: 2014-12-12 00:03-0800\n"
+"PO-Revision-Date: 2014-12-17 14:09+0000\n"
"Last-Translator: jeroenpraat <jeroenpraat@xs4all.nl>\n"
"Language-Team: Dutch (http://www.transifex.com/projects/p/red-matrix/language/nl/)\n"
"MIME-Version: 1.0\n"
@@ -19,29 +19,49 @@ msgstr ""
"Language: nl\n"
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
-#: ../../include/dba/dba_driver.php:50
+#: ../../include/dba/dba_driver.php:142
#, php-format
msgid "Cannot locate DNS info for database server '%s'"
msgstr "Kan DNS-informatie voor databaseserver '%s' niet vinden"
-#: ../../include/photo/photo_driver.php:653 ../../include/photos.php:51
+#: ../../include/photo/photo_driver.php:680 ../../include/photos.php:52
#: ../../mod/profile_photo.php:142 ../../mod/profile_photo.php:301
-#: ../../mod/profile_photo.php:421 ../../mod/photos.php:91
-#: ../../mod/photos.php:659 ../../mod/photos.php:681
+#: ../../mod/profile_photo.php:423 ../../mod/photos.php:91
+#: ../../mod/photos.php:654
msgid "Profile Photos"
msgstr "Profielfoto's"
-#: ../../include/network.php:557
-msgid "view full size"
-msgstr "volledige grootte tonen"
+#: ../../include/follow.php:28
+msgid "Channel is blocked on this site."
+msgstr "Kanaal is op deze hub geblokkeerd."
-#: ../../include/oembed.php:163
-msgid "Embedded content"
-msgstr "Ingesloten inhoud"
+#: ../../include/follow.php:33
+msgid "Channel location missing."
+msgstr "Ontbrekende kanaallocatie."
-#: ../../include/oembed.php:172
-msgid "Embedding disabled"
-msgstr "Insluiten uitgeschakeld"
+#: ../../include/follow.php:82
+msgid "Response from remote channel was incomplete."
+msgstr "Antwoord van het kanaal op afstand was niet volledig."
+
+#: ../../include/follow.php:99
+msgid "Channel was deleted and no longer exists."
+msgstr "Kanaal is verwijderd en bestaat niet meer."
+
+#: ../../include/follow.php:135 ../../include/follow.php:202
+msgid "Protocol disabled."
+msgstr "Protocol uitgeschakeld."
+
+#: ../../include/follow.php:176
+msgid "Channel discovery failed."
+msgstr "Kanaal ontdekken mislukt."
+
+#: ../../include/follow.php:192
+msgid "local account not found."
+msgstr "lokale account niet gevonden."
+
+#: ../../include/follow.php:220
+msgid "Cannot connect to yourself."
+msgstr "Kan niet met jezelf verbinden"
#: ../../include/notify.php:23
msgid "created a new post"
@@ -52,311 +72,160 @@ msgstr "maakte een nieuw bericht aan"
msgid "commented on %s's post"
msgstr "gaf een reactie op een bericht van %s"
-#: ../../include/apps.php:123
-msgid "Site Admin"
-msgstr "Hubbeheerder"
-
-#: ../../include/apps.php:124 ../../include/nav.php:113
-#: ../../include/conversation.php:1561
-msgid "Bookmarks"
-msgstr "Bladwijzers"
-
-#: ../../include/apps.php:125
-msgid "Address Book"
-msgstr "Connecties"
-
-#: ../../include/apps.php:126 ../../include/nav.php:119 ../../boot.php:1493
-msgid "Login"
-msgstr "Inloggen"
-
-#: ../../include/apps.php:127 ../../include/nav.php:209
-#: ../../mod/manage.php:148
-msgid "Channel Manager"
-msgstr "Kanaalbeheer"
-
-#: ../../include/apps.php:128 ../../include/nav.php:183
-msgid "Matrix"
-msgstr "Matrix"
-
-#: ../../include/apps.php:129 ../../include/nav.php:211
-#: ../../include/widgets.php:521 ../../mod/admin.php:950
-#: ../../mod/admin.php:1155
-msgid "Settings"
-msgstr "Instellingen"
-
-#: ../../include/apps.php:130 ../../include/nav.php:105
-#: ../../include/reddav.php:1280 ../../include/conversation.php:1539
-#: ../../mod/fbrowser.php:114
-msgid "Files"
-msgstr "Bestanden"
-
-#: ../../include/apps.php:131 ../../include/nav.php:115
-#: ../../include/conversation.php:1572 ../../mod/webpages.php:79
-msgid "Webpages"
-msgstr "Webpagina's"
-
-#: ../../include/apps.php:132 ../../include/nav.php:186
-msgid "Channel Home"
-msgstr "Tijdlijn kanaal"
-
-#: ../../include/apps.php:133 ../../include/identity.php:991
-#: ../../include/identity.php:1109 ../../mod/profperm.php:112
-msgid "Profile"
-msgstr "Profiel"
-
-#: ../../include/apps.php:134 ../../include/nav.php:104
-#: ../../include/conversation.php:1530 ../../mod/fbrowser.php:25
-msgid "Photos"
-msgstr "Foto's"
-
-#: ../../include/apps.php:135 ../../include/nav.php:205
-#: ../../mod/events.php:396
-msgid "Events"
-msgstr "Gebeurtenissen"
-
-#: ../../include/apps.php:136 ../../include/nav.php:172
-#: ../../mod/directory.php:226
-msgid "Directory"
-msgstr "Gids"
-
-#: ../../include/apps.php:137 ../../include/nav.php:164 ../../mod/help.php:60
-#: ../../mod/help.php:65
-msgid "Help"
-msgstr "Hulp"
-
-#: ../../include/apps.php:138 ../../include/nav.php:197
-msgid "Mail"
-msgstr "Privéberichten"
-
-#: ../../include/apps.php:139 ../../mod/mood.php:131
-msgid "Mood"
-msgstr "Stemming"
-
-#: ../../include/apps.php:140 ../../include/conversation.php:963
-msgid "Poke"
-msgstr "Aanstoten"
-
-#: ../../include/apps.php:141 ../../include/nav.php:110
-msgid "Chat"
-msgstr "Chatten"
-
-#: ../../include/apps.php:142 ../../include/nav.php:169
-#: ../../include/text.php:815 ../../include/text.php:829
-#: ../../mod/search.php:30
-msgid "Search"
-msgstr "Zoeken"
-
-#: ../../include/apps.php:143
-msgid "Probe"
-msgstr "Onderzoeken"
-
-#: ../../include/apps.php:144
-msgid "Suggest"
-msgstr "Voorstellen"
-
-#: ../../include/apps.php:145
-msgid "Random Channel"
-msgstr "Willekeurig kanaal"
-
-#: ../../include/apps.php:146
-msgid "Invite"
-msgstr "Uitnodigen "
-
-#: ../../include/apps.php:147
-msgid "Features"
-msgstr "Extra functies"
-
-#: ../../include/apps.php:148
-msgid "Language"
-msgstr "Taal"
-
-#: ../../include/apps.php:149
-msgid "Post"
-msgstr "Bericht"
-
-#: ../../include/apps.php:150
-msgid "Profile Photo"
-msgstr "Profielfoto"
-
-#: ../../include/apps.php:239 ../../mod/settings.php:79
-#: ../../mod/settings.php:543
-msgid "Update"
-msgstr "Bijwerken"
-
-#: ../../include/apps.php:239
-msgid "Install"
-msgstr "Installeren"
-
-#: ../../include/apps.php:244
-msgid "Purchase"
-msgstr "Aanschaffen"
-
-#: ../../include/apps.php:246 ../../include/page_widgets.php:8
-#: ../../include/page_widgets.php:36 ../../include/reddav.php:1289
-#: ../../include/menu.php:42 ../../include/ItemObject.php:96
-#: ../../mod/settings.php:579 ../../mod/blocks.php:99
-#: ../../mod/connections.php:396 ../../mod/editblock.php:111
-#: ../../mod/editlayout.php:106 ../../mod/editpost.php:112
-#: ../../mod/editwebpage.php:143 ../../mod/thing.php:235
-#: ../../mod/layouts.php:121 ../../mod/menu.php:59 ../../mod/webpages.php:127
-msgid "Edit"
-msgstr "Bewerken"
-
-#: ../../include/apps.php:247 ../../include/reddav.php:1290
-#: ../../include/conversation.php:648 ../../include/ItemObject.php:108
-#: ../../mod/settings.php:580 ../../mod/connedit.php:440
-#: ../../mod/photos.php:1052 ../../mod/group.php:176 ../../mod/admin.php:730
-#: ../../mod/admin.php:860 ../../mod/thing.php:236
-msgid "Delete"
-msgstr "Verwijderen"
-
-#: ../../include/apps.php:328 ../../include/apps.php:379
-#: ../../include/reddav.php:1202 ../../mod/connedit.php:476
-msgid "Unknown"
-msgstr "Onbekend"
+#: ../../include/security.php:357
+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 "De beveiligings-token van het tekstvak was ongeldig. Dit is mogelijk het gevolg van dat er te lang (meer dan 3 uur) gewacht is om de tekst op te slaan. "
#: ../../include/page_widgets.php:6
msgid "New Page"
msgstr "Nieuwe pagina"
-#: ../../include/page_widgets.php:39 ../../mod/blocks.php:102
-#: ../../mod/layouts.php:125 ../../mod/webpages.php:130
+#: ../../include/page_widgets.php:8 ../../include/page_widgets.php:36
+#: ../../include/menu.php:42 ../../include/RedDAV/RedBrowser.php:250
+#: ../../include/apps.php:249 ../../include/ItemObject.php:100
+#: ../../mod/blocks.php:132 ../../mod/settings.php:627
+#: ../../mod/connections.php:381 ../../mod/connections.php:394
+#: ../../mod/connections.php:413 ../../mod/thing.php:233
+#: ../../mod/webpages.php:162 ../../mod/editblock.php:143
+#: ../../mod/editlayout.php:139 ../../mod/editpost.php:112
+#: ../../mod/editwebpage.php:174 ../../mod/layouts.php:167
+#: ../../mod/menu.php:78
+msgid "Edit"
+msgstr "Bewerken"
+
+#: ../../include/page_widgets.php:39 ../../mod/blocks.php:135
+#: ../../mod/webpages.php:165 ../../mod/layouts.php:171
msgid "View"
msgstr "Weergeven"
-#: ../../include/page_widgets.php:40 ../../include/conversation.php:1109
-#: ../../include/ItemObject.php:592 ../../mod/editblock.php:141
-#: ../../mod/editlayout.php:135 ../../mod/editpost.php:140
-#: ../../mod/editwebpage.php:174 ../../mod/photos.php:1003
-#: ../../mod/webpages.php:131
+#: ../../include/page_widgets.php:40 ../../include/conversation.php:1104
+#: ../../include/ItemObject.php:630 ../../mod/webpages.php:166
+#: ../../mod/editblock.php:173 ../../mod/editlayout.php:168
+#: ../../mod/editpost.php:140 ../../mod/editwebpage.php:205
+#: ../../mod/photos.php:998
msgid "Preview"
msgstr "Voorvertoning"
-#: ../../include/page_widgets.php:41 ../../mod/webpages.php:132
+#: ../../include/page_widgets.php:41 ../../mod/webpages.php:167
msgid "Actions"
msgstr "Acties"
-#: ../../include/page_widgets.php:42 ../../mod/webpages.php:133
+#: ../../include/page_widgets.php:42 ../../mod/webpages.php:168
msgid "Page Link"
msgstr "Paginalink"
-#: ../../include/page_widgets.php:43 ../../mod/webpages.php:134
+#: ../../include/page_widgets.php:43 ../../mod/webpages.php:169
msgid "Title"
msgstr "Titel"
-#: ../../include/page_widgets.php:44 ../../mod/webpages.php:135
+#: ../../include/page_widgets.php:44 ../../mod/webpages.php:170
msgid "Created"
msgstr "Aangemaakt"
-#: ../../include/page_widgets.php:45 ../../mod/webpages.php:136
+#: ../../include/page_widgets.php:45 ../../mod/webpages.php:171
msgid "Edited"
msgstr "Bewerkt"
-#: ../../include/security.php:301
-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 "De beveiligings-token van het tekstvak was ongeldig. Dit is mogelijk het gevolg van dat er te lang (meer dan 3 uur) gewacht is om de tekst op te slaan. "
+#: ../../include/contact_widgets.php:14
+#, php-format
+msgid "%d invitation available"
+msgid_plural "%d invitations available"
+msgstr[0] "%d uitnodiging beschikbaar"
+msgstr[1] "%d uitnodigingen beschikbaar"
-#: ../../include/zot.php:654
-msgid "Invalid data packet"
-msgstr "Datapakket ongeldig"
+#: ../../include/contact_widgets.php:19 ../../mod/admin.php:416
+msgid "Advanced"
+msgstr "Geavanceerd"
-#: ../../include/zot.php:668
-msgid "Unable to verify channel signature"
-msgstr "Kanaal-kenmerk (channel signature) kon niet worden geverifieerd. "
+#: ../../include/contact_widgets.php:22
+msgid "Find Channels"
+msgstr "Kanalen vinden"
-#: ../../include/zot.php:865
-#, php-format
-msgid "Unable to verify site signature for %s"
-msgstr "Hub-kenmerk (site signature) voor %s kon niet worden geverifieerd"
-
-#: ../../include/photos.php:15 ../../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:116 ../../include/items.php:3692
-#: ../../mod/mood.php:112 ../../mod/mitem.php:73 ../../mod/achievements.php:27
-#: ../../mod/settings.php:494 ../../mod/poke.php:128 ../../mod/api.php:26
-#: ../../mod/api.php:31 ../../mod/authtest.php:13 ../../mod/profile.php:64
-#: ../../mod/profile.php:72 ../../mod/block.php:22 ../../mod/block.php:72
-#: ../../mod/profile_photo.php:263 ../../mod/profile_photo.php:276
-#: ../../mod/blocks.php:29 ../../mod/blocks.php:44 ../../mod/profiles.php:179
-#: ../../mod/profiles.php:560 ../../mod/bookmarks.php:46
-#: ../../mod/channel.php:89 ../../mod/channel.php:193
-#: ../../mod/channel.php:236 ../../mod/chat.php:90 ../../mod/chat.php:95
-#: ../../mod/register.php:71 ../../mod/regmod.php:18 ../../mod/common.php:35
-#: ../../mod/network.php:12 ../../mod/connections.php:169
-#: ../../mod/connedit.php:254 ../../mod/delegate.php:6 ../../mod/page.php:30
-#: ../../mod/page.php:80 ../../mod/setup.php:203 ../../mod/editblock.php:34
-#: ../../mod/pdledit.php:21 ../../mod/editlayout.php:48
-#: ../../mod/editpost.php:13 ../../mod/editwebpage.php:44
-#: ../../mod/editwebpage.php:83 ../../mod/photos.php:68
-#: ../../mod/photos.php:526 ../../mod/sources.php:66 ../../mod/events.php:160
-#: ../../mod/filestorage.php:10 ../../mod/filestorage.php:59
-#: ../../mod/filestorage.php:75 ../../mod/filestorage.php:98
-#: ../../mod/fsuggest.php:78 ../../mod/suggest.php:26 ../../mod/group.php:9
-#: ../../mod/thing.php:249 ../../mod/thing.php:266 ../../mod/thing.php:301
-#: ../../mod/invite.php:13 ../../mod/invite.php:104 ../../mod/item.php:178
-#: ../../mod/item.php:186 ../../mod/item.php:915 ../../mod/layouts.php:27
-#: ../../mod/layouts.php:39 ../../mod/like.php:154
-#: ../../mod/viewconnections.php:22 ../../mod/viewconnections.php:27
-#: ../../mod/viewsrc.php:12 ../../mod/mail.php:108 ../../mod/manage.php:6
-#: ../../mod/menu.php:44 ../../mod/webpages.php:40 ../../mod/message.php:16
-#: ../../mod/new_channel.php:66 ../../mod/new_channel.php:97
-#: ../../mod/notifications.php:66 ../../mod/appman.php:66 ../../index.php:186
-#: ../../index.php:361
-msgid "Permission denied."
-msgstr "Toegang geweigerd"
+#: ../../include/contact_widgets.php:23
+msgid "Enter name or interest"
+msgstr "Vul naam of interesse in"
-#: ../../include/photos.php:104
-#, php-format
-msgid "Image exceeds website size limit of %lu bytes"
-msgstr "Afbeelding is groter dan op deze hub toegestane limiet van %lu bytes"
+#: ../../include/contact_widgets.php:24
+msgid "Connect/Follow"
+msgstr "Verbinden/volgen"
-#: ../../include/photos.php:111
-msgid "Image file is empty."
-msgstr "Afbeeldingsbestand is leeg"
+#: ../../include/contact_widgets.php:25
+msgid "Examples: Robert Morgenstein, Fishing"
+msgstr "Voorbeeld: Robert Morgenstein, vissen"
-#: ../../include/photos.php:140 ../../mod/profile_photo.php:216
-msgid "Unable to process image"
-msgstr "Afbeelding kan niet verwerkt worden"
+#: ../../include/contact_widgets.php:26 ../../mod/connections.php:412
+#: ../../mod/directory.php:316 ../../mod/directory.php:321
+msgid "Find"
+msgstr "Vinden"
-#: ../../include/photos.php:212
-msgid "Photo storage failed."
-msgstr "Foto kan niet worden opgeslagen"
+#: ../../include/contact_widgets.php:27 ../../mod/suggest.php:59
+#: ../../mod/directory.php:320
+msgid "Channel Suggestions"
+msgstr "Voorgestelde kanalen"
-#: ../../include/photos.php:339 ../../include/conversation.php:1533
-msgid "Photo Albums"
-msgstr "Fotoalbums"
+#: ../../include/contact_widgets.php:29
+msgid "Random Profile"
+msgstr "Willekeurig profiel"
-#: ../../include/photos.php:343 ../../mod/photos.php:697
-#: ../../mod/photos.php:1199
-msgid "Upload New Photos"
-msgstr "Nieuwe foto's uploaden"
+#: ../../include/contact_widgets.php:30
+msgid "Invite Friends"
+msgstr "Vrienden uitnodigen"
-#: ../../include/acl_selectors.php:240
-msgid "Visible to your default audience"
-msgstr "Voor iedereen zichtbaar, zoals dit van te voren is ingesteld"
+#: ../../include/contact_widgets.php:32
+msgid "Advanced example: name=fred and country=iceland"
+msgstr "Geavanceerd voorbeeld (Engels): name=jan en country=nederland"
-#: ../../include/acl_selectors.php:241
-msgid "Show"
-msgstr "Tonen"
+#: ../../include/contact_widgets.php:57 ../../include/features.php:73
+#: ../../include/widgets.php:298
+msgid "Saved Folders"
+msgstr "Bewaarde mappen"
-#: ../../include/acl_selectors.php:242
-msgid "Don't show"
-msgstr "Niet tonen"
+#: ../../include/contact_widgets.php:60 ../../include/contact_widgets.php:95
+#: ../../include/widgets.php:301
+msgid "Everything"
+msgstr "Alles"
-#: ../../include/acl_selectors.php:248 ../../mod/chat.php:209
-#: ../../mod/photos.php:604 ../../mod/photos.php:958
-#: ../../mod/filestorage.php:128
-msgid "Permissions"
-msgstr "Privacy-rechten"
+#: ../../include/contact_widgets.php:92 ../../include/taxonomy.php:230
+#: ../../include/widgets.php:35
+msgid "Categories"
+msgstr "Categorieën"
-#: ../../include/acl_selectors.php:249 ../../include/ItemObject.php:289
-msgid "Close"
-msgstr "Sluiten"
+#: ../../include/contact_widgets.php:125
+#, php-format
+msgid "%d connection in common"
+msgid_plural "%d connections in common"
+msgstr[0] "%d gemeenschappelijke connectie"
+msgstr[1] "%d gemeenschappelijke connecties"
+
+#: ../../include/contact_widgets.php:130
+msgid "show more"
+msgstr "meer connecties weergeven"
+
+#: ../../include/oembed.php:171
+msgid "Embedded content"
+msgstr "Ingesloten inhoud"
+
+#: ../../include/oembed.php:180
+msgid "Embedding disabled"
+msgstr "Insluiten uitgeschakeld"
+
+#: ../../include/message.php:18
+msgid "No recipient provided."
+msgstr "Geen ontvanger opgegeven."
+
+#: ../../include/message.php:23
+msgid "[no subject]"
+msgstr "[geen onderwerp]"
+
+#: ../../include/message.php:45
+msgid "Unable to determine sender."
+msgstr "Afzender kan niet bepaald worden."
+
+#: ../../include/message.php:200
+msgid "Stored post could not be verified."
+msgstr "Opgeslagen bericht kon niet worden geverifieerd."
#: ../../include/activities.php:39
msgid " and "
@@ -381,45 +250,132 @@ msgstr "Bezoek het %2$s van %1$s"
msgid "%1$s has an updated %2$s, changing %3$s."
msgstr "%1$s heeft een aangepaste %2$s, %3$s veranderd."
-#: ../../include/api.php:1036
-msgid "Public Timeline"
-msgstr "Openbare tijdlijn"
+#: ../../include/acl_selectors.php:240
+msgid "Visible to your default audience"
+msgstr "Voor iedereen zichtbaar, mits niet anders ingesteld"
+
+#: ../../include/acl_selectors.php:241
+msgid "Show"
+msgstr "Tonen"
-#: ../../include/attach.php:224 ../../include/attach.php:278
+#: ../../include/acl_selectors.php:242
+msgid "Don't show"
+msgstr "Niet tonen"
+
+#: ../../include/acl_selectors.php:248 ../../mod/events.php:596
+#: ../../mod/chat.php:209 ../../mod/filestorage.php:137
+#: ../../mod/photos.php:588 ../../mod/photos.php:950
+msgid "Permissions"
+msgstr "Permissies"
+
+#: ../../include/acl_selectors.php:249 ../../include/ItemObject.php:312
+#: ../../mod/photos.php:1149
+msgid "Close"
+msgstr "Sluiten"
+
+#: ../../include/bb2diaspora.php:384
+msgid "Attachments:"
+msgstr "Bijlagen:"
+
+#: ../../include/bb2diaspora.php:463 ../../include/event.php:11
+msgid "l F d, Y \\@ g:i A"
+msgstr "l d F Y \\@ G:i"
+
+#: ../../include/bb2diaspora.php:465
+msgid "Redmatrix event notification:"
+msgstr "Notificatie RedMatrix-gebeurtenis:"
+
+#: ../../include/bb2diaspora.php:469 ../../include/event.php:20
+msgid "Starts:"
+msgstr "Start:"
+
+#: ../../include/bb2diaspora.php:477 ../../include/event.php:30
+msgid "Finishes:"
+msgstr "Einde:"
+
+#: ../../include/bb2diaspora.php:485 ../../include/identity.php:891
+#: ../../include/event.php:40 ../../mod/events.php:590
+#: ../../mod/directory.php:199
+msgid "Location:"
+msgstr "Plaats:"
+
+#: ../../include/attach.php:116 ../../include/attach.php:163
+#: ../../include/attach.php:226 ../../include/attach.php:240
+#: ../../include/attach.php:280 ../../include/attach.php:294
+#: ../../include/attach.php:318 ../../include/attach.php:511
+#: ../../include/attach.php:585 ../../include/photos.php:15
+#: ../../include/items.php:4019 ../../include/chat.php:116
+#: ../../mod/mood.php:112 ../../mod/mitem.php:106
+#: ../../mod/achievements.php:30 ../../mod/register.php:72
+#: ../../mod/sources.php:66 ../../mod/poke.php:128 ../../mod/api.php:26
+#: ../../mod/api.php:31 ../../mod/authtest.php:13 ../../mod/profile.php:64
+#: ../../mod/profile.php:72 ../../mod/block.php:22 ../../mod/block.php:72
+#: ../../mod/blocks.php:67 ../../mod/blocks.php:75 ../../mod/setup.php:207
+#: ../../mod/settings.php:542 ../../mod/events.php:195
+#: ../../mod/channel.php:89 ../../mod/channel.php:198
+#: ../../mod/channel.php:241 ../../mod/chat.php:90 ../../mod/chat.php:95
+#: ../../mod/regmod.php:17 ../../mod/common.php:35 ../../mod/like.php:154
+#: ../../mod/connections.php:169 ../../mod/connedit.php:266
+#: ../../mod/thing.php:247 ../../mod/thing.php:264 ../../mod/thing.php:299
+#: ../../mod/webpages.php:67 ../../mod/bookmarks.php:46
+#: ../../mod/profiles.php:179 ../../mod/profiles.php:550
+#: ../../mod/editblock.php:65 ../../mod/pdledit.php:21
+#: ../../mod/editlayout.php:64 ../../mod/editlayout.php:89
+#: ../../mod/editpost.php:13 ../../mod/editwebpage.php:64
+#: ../../mod/editwebpage.php:86 ../../mod/editwebpage.php:118
+#: ../../mod/profile_photo.php:263 ../../mod/profile_photo.php:276
+#: ../../mod/item.php:191 ../../mod/item.php:199 ../../mod/item.php:972
+#: ../../mod/fsuggest.php:78 ../../mod/filestorage.php:18
+#: ../../mod/filestorage.php:67 ../../mod/filestorage.php:82
+#: ../../mod/filestorage.php:109 ../../mod/delegate.php:6
+#: ../../mod/group.php:9 ../../mod/suggest.php:26 ../../mod/locs.php:71
+#: ../../mod/mail.php:111 ../../mod/invite.php:13 ../../mod/invite.php:104
+#: ../../mod/manage.php:6 ../../mod/layouts.php:67 ../../mod/layouts.php:74
+#: ../../mod/layouts.php:85 ../../mod/viewconnections.php:22
+#: ../../mod/viewconnections.php:27 ../../mod/viewsrc.php:14
+#: ../../mod/network.php:12 ../../mod/menu.php:61 ../../mod/message.php:16
+#: ../../mod/new_channel.php:68 ../../mod/new_channel.php:99
+#: ../../mod/notifications.php:66 ../../mod/page.php:28 ../../mod/page.php:78
+#: ../../mod/photos.php:68 ../../mod/appman.php:66
+#: ../../mod/service_limits.php:7 ../../index.php:190 ../../index.php:390
+msgid "Permission denied."
+msgstr "Toegang geweigerd"
+
+#: ../../include/attach.php:221 ../../include/attach.php:275
msgid "Item was not found."
msgstr "Item niet gevonden"
-#: ../../include/attach.php:335
+#: ../../include/attach.php:331
msgid "No source file."
msgstr "Geen bronbestand."
-#: ../../include/attach.php:352
+#: ../../include/attach.php:348
msgid "Cannot locate file to replace"
msgstr "Kan het te vervangen bestand niet vinden"
-#: ../../include/attach.php:370
+#: ../../include/attach.php:366
msgid "Cannot locate file to revise/update"
msgstr "Kan het bestand wat aangepast moet worden niet vinden"
-#: ../../include/attach.php:381
+#: ../../include/attach.php:377
#, php-format
msgid "File exceeds size limit of %d"
msgstr "Bestand is groter dan de toegelaten %d"
-#: ../../include/attach.php:393
+#: ../../include/attach.php:389
#, php-format
msgid "You have reached your limit of %1$.0f Mbytes attachment storage."
msgstr "Je hebt jouw limiet van %1$.0f MB opslagruimte voor bijlagen bereikt."
-#: ../../include/attach.php:475
+#: ../../include/attach.php:472
msgid "File upload failed. Possible system limit or action terminated."
msgstr "Uploaden van bestand mislukt. Mogelijk systeemlimiet bereikt of actie afgebroken."
-#: ../../include/attach.php:487
+#: ../../include/attach.php:484
msgid "Stored file could not be verified. Upload failed."
msgstr "Opgeslagen bestand kon niet worden geverifieerd. Uploaden mislukt."
-#: ../../include/attach.php:528 ../../include/attach.php:545
+#: ../../include/attach.php:526 ../../include/attach.php:543
msgid "Path not available."
msgstr "Pad niet beschikbaar."
@@ -443,633 +399,567 @@ msgstr "directory aanmaken (mkdir) mislukt."
msgid "database storage failed."
msgstr "opslag in database mislukt."
-#: ../../include/plugin.php:504 ../../include/plugin.php:506
-msgid "Click here to upgrade."
-msgstr "Klik hier om te upgraden."
+#: ../../include/RedDAV/RedBrowser.php:106
+#: ../../include/RedDAV/RedBrowser.php:249
+msgid "parent"
+msgstr "omhoog"
-#: ../../include/plugin.php:512
-msgid "This action exceeds the limits set by your subscription plan."
-msgstr "Deze handeling overschrijdt de beperkingen die voor jouw abonnement gelden."
+#: ../../include/RedDAV/RedBrowser.php:130
+msgid "Collection"
+msgstr "map"
-#: ../../include/plugin.php:517
-msgid "This action is not available under your subscription plan."
-msgstr "Deze handeling is niet mogelijk met jouw abonnement."
+#: ../../include/RedDAV/RedBrowser.php:133
+msgid "Principal"
+msgstr "principal"
-#: ../../include/bb2diaspora.php:463 ../../include/event.php:11
-msgid "l F d, Y \\@ g:i A"
-msgstr "l d F Y \\@ G:i"
+#: ../../include/RedDAV/RedBrowser.php:136
+msgid "Addressbook"
+msgstr "Adresboek"
-#: ../../include/bb2diaspora.php:469 ../../include/event.php:20
-msgid "Starts:"
-msgstr "Start:"
+#: ../../include/RedDAV/RedBrowser.php:139
+msgid "Calendar"
+msgstr "Agenda"
-#: ../../include/bb2diaspora.php:477 ../../include/event.php:30
-msgid "Finishes:"
-msgstr "Einde:"
+#: ../../include/RedDAV/RedBrowser.php:142
+msgid "Schedule Inbox"
+msgstr "Planning-postvak IN"
-#: ../../include/bb2diaspora.php:485 ../../include/event.php:40
-#: ../../include/identity.php:757 ../../mod/directory.php:156
-#: ../../mod/dirprofile.php:105 ../../mod/events.php:504
-msgid "Location:"
-msgstr "Plaats:"
+#: ../../include/RedDAV/RedBrowser.php:145
+msgid "Schedule Outbox"
+msgstr "Planning-postvak UIT"
+
+#: ../../include/RedDAV/RedBrowser.php:163 ../../include/conversation.php:993
+#: ../../include/apps.php:331 ../../include/apps.php:382
+#: ../../mod/connedit.php:513 ../../mod/photos.php:713
+#: ../../mod/photos.php:1132
+msgid "Unknown"
+msgstr "Onbekend"
+
+#: ../../include/RedDAV/RedBrowser.php:223
+#, php-format
+msgid "%1$s used"
+msgstr "%1$s gebruikt"
+
+#: ../../include/RedDAV/RedBrowser.php:228
+#, php-format
+msgid "%1$s used of %2$s (%3$s&#37;)"
+msgstr "%1$s van %2$s gebruikt (%3$s&#37;)"
+
+#: ../../include/RedDAV/RedBrowser.php:241 ../../include/nav.php:106
+#: ../../include/conversation.php:1540 ../../include/apps.php:133
+#: ../../mod/fbrowser.php:114
+msgid "Files"
+msgstr "Bestanden"
+
+#: ../../include/RedDAV/RedBrowser.php:245 ../../mod/settings.php:567
+#: ../../mod/settings.php:593 ../../mod/admin.php:866
+msgid "Name"
+msgstr "Naam"
+
+#: ../../include/RedDAV/RedBrowser.php:246
+msgid "Type"
+msgstr "Type"
+
+#: ../../include/RedDAV/RedBrowser.php:247
+msgid "Size"
+msgstr "Grootte"
+
+#: ../../include/RedDAV/RedBrowser.php:248
+msgid "Last Modified"
+msgstr "Laatst gewijzigd"
+
+#: ../../include/RedDAV/RedBrowser.php:251 ../../include/conversation.php:639
+#: ../../include/apps.php:250 ../../include/ItemObject.php:120
+#: ../../mod/settings.php:628 ../../mod/connedit.php:476
+#: ../../mod/thing.php:234 ../../mod/group.php:176 ../../mod/admin.php:730
+#: ../../mod/admin.php:861 ../../mod/photos.php:1070
+msgid "Delete"
+msgstr "Verwijderen"
+
+#: ../../include/RedDAV/RedBrowser.php:252
+msgid "Total"
+msgstr "Totaal"
+
+#: ../../include/RedDAV/RedBrowser.php:305
+msgid "Create new folder"
+msgstr "Nieuwe map aanmaken"
-#: ../../include/nav.php:94 ../../include/nav.php:121 ../../boot.php:1492
+#: ../../include/RedDAV/RedBrowser.php:306 ../../mod/mitem.php:169
+#: ../../mod/menu.php:100 ../../mod/new_channel.php:122
+msgid "Create"
+msgstr "Aanmaken"
+
+#: ../../include/RedDAV/RedBrowser.php:307
+msgid "Upload file"
+msgstr "Bestand uploaden"
+
+#: ../../include/RedDAV/RedBrowser.php:308 ../../mod/profile_photo.php:361
+#: ../../mod/photos.php:738 ../../mod/photos.php:1246
+msgid "Upload"
+msgstr "Uploaden"
+
+#: ../../include/bookmarks.php:35
+#, php-format
+msgid "%1$s's bookmarks"
+msgstr "Bladwijzers van %1$s"
+
+#: ../../include/nav.php:95 ../../include/nav.php:128 ../../boot.php:1528
msgid "Logout"
msgstr "Uitloggen"
-#: ../../include/nav.php:94 ../../include/nav.php:121
+#: ../../include/nav.php:95 ../../include/nav.php:128
msgid "End this session"
msgstr "Beëindig deze sessie"
-#: ../../include/nav.php:97 ../../include/nav.php:155
+#: ../../include/nav.php:98 ../../include/nav.php:159
msgid "Home"
msgstr "Home"
-#: ../../include/nav.php:97
+#: ../../include/nav.php:98
msgid "Your posts and conversations"
msgstr "Jouw berichten en conversaties"
-#: ../../include/nav.php:98 ../../include/conversation.php:957
-#: ../../mod/connedit.php:393 ../../mod/connedit.php:507
+#: ../../include/nav.php:99 ../../include/conversation.php:935
+#: ../../mod/connedit.php:429 ../../mod/connedit.php:545
msgid "View Profile"
msgstr "Profiel weergeven"
-#: ../../include/nav.php:98
+#: ../../include/nav.php:99
msgid "Your profile page"
msgstr "Jouw profielpagina"
-#: ../../include/nav.php:100
+#: ../../include/nav.php:101
msgid "Edit Profiles"
msgstr "Bewerk profielen"
-#: ../../include/nav.php:100
+#: ../../include/nav.php:101
msgid "Manage/Edit profiles"
msgstr "Beheer/wijzig profielen"
-#: ../../include/nav.php:102 ../../include/identity.php:730
+#: ../../include/nav.php:103 ../../include/identity.php:864
msgid "Edit Profile"
msgstr "Profiel bewerken"
-#: ../../include/nav.php:102
+#: ../../include/nav.php:103
msgid "Edit your profile"
msgstr "Jouw profiel bewerken"
-#: ../../include/nav.php:104
+#: ../../include/nav.php:105 ../../include/conversation.php:1531
+#: ../../include/apps.php:137 ../../mod/fbrowser.php:25
+msgid "Photos"
+msgstr "Foto's"
+
+#: ../../include/nav.php:105
msgid "Your photos"
msgstr "Jouw foto's"
-#: ../../include/nav.php:105
+#: ../../include/nav.php:106
msgid "Your files"
msgstr "Jouw bestanden"
-#: ../../include/nav.php:110
+#: ../../include/nav.php:111 ../../include/apps.php:144
+msgid "Chat"
+msgstr "Chatten"
+
+#: ../../include/nav.php:111
msgid "Your chatrooms"
msgstr "Jouw chatkanalen"
-#: ../../include/nav.php:113
+#: ../../include/nav.php:117 ../../include/conversation.php:1566
+#: ../../include/apps.php:127
+msgid "Bookmarks"
+msgstr "Bladwijzers"
+
+#: ../../include/nav.php:117
msgid "Your bookmarks"
msgstr "Jouw bladwijzers"
-#: ../../include/nav.php:115
+#: ../../include/nav.php:121 ../../include/conversation.php:1577
+#: ../../include/apps.php:134 ../../mod/webpages.php:160
+msgid "Webpages"
+msgstr "Webpagina's"
+
+#: ../../include/nav.php:121
msgid "Your webpages"
msgstr "Jouw webpagina's"
-#: ../../include/nav.php:119
+#: ../../include/nav.php:125 ../../include/apps.php:129 ../../boot.php:1529
+msgid "Login"
+msgstr "Inloggen"
+
+#: ../../include/nav.php:125
msgid "Sign in"
msgstr "Inloggen"
-#: ../../include/nav.php:136
+#: ../../include/nav.php:142
#, php-format
msgid "%s - click to logout"
msgstr "%s - klik om uit te loggen"
-#: ../../include/nav.php:141
+#: ../../include/nav.php:145
+msgid "Remote authentication"
+msgstr "Authenticatie op afstand"
+
+#: ../../include/nav.php:145
msgid "Click to authenticate to your home hub"
-msgstr "Klik om jezelf te authenticeren via jouw eigen RedMatrix-hub"
+msgstr "Authenticeer jezelf via (bijvoorbeeld) jouw RedMatrix-hub"
-#: ../../include/nav.php:155
+#: ../../include/nav.php:159
msgid "Home Page"
msgstr "Homepage"
-#: ../../include/nav.php:159 ../../mod/register.php:221 ../../boot.php:1469
+#: ../../include/nav.php:163 ../../mod/register.php:224 ../../boot.php:1507
msgid "Register"
-msgstr "Registreren "
+msgstr "Registreren"
-#: ../../include/nav.php:159
+#: ../../include/nav.php:163
msgid "Create an account"
msgstr "Maak een account aan"
-#: ../../include/nav.php:164
+#: ../../include/nav.php:168 ../../include/apps.php:140 ../../mod/help.php:58
+#: ../../mod/help.php:63
+msgid "Help"
+msgstr "Hulp"
+
+#: ../../include/nav.php:168
msgid "Help and documentation"
msgstr "Hulp en documentatie"
-#: ../../include/nav.php:167 ../../include/widgets.php:86
+#: ../../include/nav.php:171 ../../include/widgets.php:91
#: ../../mod/apps.php:33
msgid "Apps"
msgstr "Apps"
-#: ../../include/nav.php:167
+#: ../../include/nav.php:171
msgid "Applications, utilities, links, games"
msgstr "Apps"
-#: ../../include/nav.php:169
+#: ../../include/nav.php:173 ../../include/text.php:826
+#: ../../include/text.php:838 ../../include/apps.php:145
+#: ../../mod/search.php:30
+msgid "Search"
+msgstr "Zoeken"
+
+#: ../../include/nav.php:173
msgid "Search site content"
msgstr "Inhoud van deze RedMatrix-hub doorzoeken"
-#: ../../include/nav.php:172
-msgid "Channel Locator"
+#: ../../include/nav.php:176 ../../include/apps.php:139
+#: ../../mod/directory.php:320
+msgid "Directory"
+msgstr "Kanalengids"
+
+#: ../../include/nav.php:176
+msgid "Channel Directory"
msgstr "Kanalengids"
-#: ../../include/nav.php:183
+#: ../../include/nav.php:190 ../../include/apps.php:131
+msgid "Matrix"
+msgstr "Matrix"
+
+#: ../../include/nav.php:190
msgid "Your matrix"
msgstr "Jouw matrix"
-#: ../../include/nav.php:184
+#: ../../include/nav.php:191
msgid "Mark all matrix notifications seen"
msgstr "Markeer alle matrixnotificaties als bekeken"
-#: ../../include/nav.php:186
+#: ../../include/nav.php:193 ../../include/apps.php:135
+msgid "Channel Home"
+msgstr "Tijdlijn kanaal"
+
+#: ../../include/nav.php:193
msgid "Channel home"
msgstr "Tijdlijn kanaal"
-#: ../../include/nav.php:187
+#: ../../include/nav.php:194
msgid "Mark all channel notifications seen"
msgstr "Alle kanaalnotificaties als gelezen markeren"
-#: ../../include/nav.php:190 ../../mod/connections.php:389
+#: ../../include/nav.php:197 ../../mod/connections.php:406
msgid "Connections"
msgstr "Connecties"
-#: ../../include/nav.php:193
+#: ../../include/nav.php:200
msgid "Notices"
msgstr "Notificaties"
-#: ../../include/nav.php:193
+#: ../../include/nav.php:200
msgid "Notifications"
msgstr "Notificaties"
-#: ../../include/nav.php:194
+#: ../../include/nav.php:201
msgid "See all notifications"
msgstr "Alle notificaties weergeven"
-#: ../../include/nav.php:195 ../../mod/notifications.php:99
+#: ../../include/nav.php:202 ../../mod/notifications.php:99
msgid "Mark all system notifications seen"
msgstr "Markeer alle systeemnotificaties als bekeken"
-#: ../../include/nav.php:197
+#: ../../include/nav.php:204 ../../include/apps.php:141
+msgid "Mail"
+msgstr "Privéberichten"
+
+#: ../../include/nav.php:204
msgid "Private mail"
msgstr "Privéberichten"
-#: ../../include/nav.php:198
+#: ../../include/nav.php:205
msgid "See all private messages"
msgstr "Alle privéberichten weergeven"
-#: ../../include/nav.php:199
+#: ../../include/nav.php:206
msgid "Mark all private messages seen"
msgstr "Markeer alle privéberichten als bekeken"
-#: ../../include/nav.php:200
+#: ../../include/nav.php:207
msgid "Inbox"
msgstr "Postvak IN"
-#: ../../include/nav.php:201
+#: ../../include/nav.php:208
msgid "Outbox"
msgstr "Postvak UIT"
-#: ../../include/nav.php:202 ../../include/widgets.php:543
+#: ../../include/nav.php:209 ../../include/widgets.php:557
msgid "New Message"
msgstr "Nieuw bericht"
-#: ../../include/nav.php:205
+#: ../../include/nav.php:212 ../../include/apps.php:138
+#: ../../mod/events.php:442
+msgid "Events"
+msgstr "Agenda"
+
+#: ../../include/nav.php:212
msgid "Event Calendar"
msgstr "Agenda"
-#: ../../include/nav.php:206
+#: ../../include/nav.php:213
msgid "See all events"
msgstr "Alle gebeurtenissen weergeven"
-#: ../../include/nav.php:207
+#: ../../include/nav.php:214
msgid "Mark all events seen"
msgstr "Markeer alle gebeurtenissen als bekeken"
-#: ../../include/nav.php:209
+#: ../../include/nav.php:216 ../../include/apps.php:130
+#: ../../mod/manage.php:148
+msgid "Channel Manager"
+msgstr "Kanaalbeheer"
+
+#: ../../include/nav.php:216
msgid "Manage Your Channels"
msgstr "Beheer je kanalen"
-#: ../../include/nav.php:211
+#: ../../include/nav.php:218 ../../include/widgets.php:536
+#: ../../include/apps.php:132 ../../mod/admin.php:951 ../../mod/admin.php:1156
+msgid "Settings"
+msgstr "Instellingen"
+
+#: ../../include/nav.php:218
msgid "Account/Channel Settings"
msgstr "Account-/kanaal-instellingen"
-#: ../../include/nav.php:219 ../../mod/admin.php:123
+#: ../../include/nav.php:226 ../../mod/admin.php:123
msgid "Admin"
msgstr "Beheer"
-#: ../../include/nav.php:219
+#: ../../include/nav.php:226
msgid "Site Setup and Configuration"
msgstr "Hub instellen en beheren"
-#: ../../include/nav.php:244
-msgid "Nothing new here"
-msgstr "Niets nieuw hier"
+#: ../../include/nav.php:257 ../../include/conversation.php:840
+msgid "Loading..."
+msgstr "Aan het laden..."
-#: ../../include/nav.php:248
+#: ../../include/nav.php:262
msgid "Please wait..."
msgstr "Wachten aub..."
-#: ../../include/bookmarks.php:35
-#, php-format
-msgid "%1$s's bookmarks"
-msgstr "Bladwijzers van %1$s"
-
-#: ../../include/text.php:321
-msgid "prev"
-msgstr "vorige"
-
-#: ../../include/text.php:323
-msgid "first"
-msgstr "eerste"
-
-#: ../../include/text.php:352
-msgid "last"
-msgstr "laatste"
-
-#: ../../include/text.php:355
-msgid "next"
-msgstr "volgende"
-
-#: ../../include/text.php:367
-msgid "older"
-msgstr "ouder"
-
-#: ../../include/text.php:369
-msgid "newer"
-msgstr "nieuwer"
-
-#: ../../include/text.php:730
-msgid "No connections"
-msgstr "Geen connecties"
-
-#: ../../include/text.php:743
-#, php-format
-msgid "%d Connection"
-msgid_plural "%d Connections"
-msgstr[0] "%d connectie"
-msgstr[1] "%d connecties"
-
-#: ../../include/text.php:756
-msgid "View Connections"
-msgstr "Connecties weergeven"
-
-#: ../../include/text.php:817 ../../include/text.php:831
-#: ../../include/widgets.php:193 ../../mod/rbmark.php:28
-#: ../../mod/rbmark.php:98 ../../mod/filer.php:50 ../../mod/admin.php:1338
-#: ../../mod/admin.php:1359
-msgid "Save"
-msgstr "Opslaan"
-
-#: ../../include/text.php:897
-msgid "poke"
-msgstr "aanstoten"
-
-#: ../../include/text.php:897 ../../include/conversation.php:243
-msgid "poked"
-msgstr "aangestoten"
-
-#: ../../include/text.php:898
-msgid "ping"
-msgstr "ping"
-
-#: ../../include/text.php:898
-msgid "pinged"
-msgstr "gepingd"
-
-#: ../../include/text.php:899
-msgid "prod"
-msgstr "por"
-
-#: ../../include/text.php:899
-msgid "prodded"
-msgstr "gepord"
-
-#: ../../include/text.php:900
-msgid "slap"
-msgstr "slaan"
-
-#: ../../include/text.php:900
-msgid "slapped"
-msgstr "sloeg"
-
-#: ../../include/text.php:901
-msgid "finger"
-msgstr "finger"
-
-#: ../../include/text.php:901
-msgid "fingered"
-msgstr "gefingerd"
-
-#: ../../include/text.php:902
-msgid "rebuff"
-msgstr "afpoeieren"
-
-#: ../../include/text.php:902
-msgid "rebuffed"
-msgstr "afgepoeierd"
-
-#: ../../include/text.php:911
-msgid "happy"
-msgstr "gelukkig"
-
-#: ../../include/text.php:912
-msgid "sad"
-msgstr "bedroefd"
-
-#: ../../include/text.php:913
-msgid "mellow"
-msgstr "mellow"
-
-#: ../../include/text.php:914
-msgid "tired"
-msgstr "moe"
-
-#: ../../include/text.php:915
-msgid "perky"
-msgstr "parmantig"
-
-#: ../../include/text.php:916
-msgid "angry"
-msgstr "boos"
-
-#: ../../include/text.php:917
-msgid "stupified"
-msgstr "beteuterd"
-
-#: ../../include/text.php:918
-msgid "puzzled"
-msgstr "verward"
-
-#: ../../include/text.php:919
-msgid "interested"
-msgstr "geïnteresseerd"
-
-#: ../../include/text.php:920
-msgid "bitter"
-msgstr "verbitterd"
-
-#: ../../include/text.php:921
-msgid "cheerful"
-msgstr "vrolijk"
-
-#: ../../include/text.php:922
-msgid "alive"
-msgstr "levendig"
-
-#: ../../include/text.php:923
-msgid "annoyed"
-msgstr "geërgerd"
-
-#: ../../include/text.php:924
-msgid "anxious"
-msgstr "bezorgd"
-
-#: ../../include/text.php:925
-msgid "cranky"
-msgstr "humeurig"
-
-#: ../../include/text.php:926
-msgid "disturbed"
-msgstr "verontrust"
-
-#: ../../include/text.php:927
-msgid "frustrated"
-msgstr "gefrustreerd "
-
-#: ../../include/text.php:928
-msgid "depressed"
-msgstr "gedeprimeerd"
-
-#: ../../include/text.php:929
-msgid "motivated"
-msgstr "gemotiveerd"
-
-#: ../../include/text.php:930
-msgid "relaxed"
-msgstr "ontspannen"
-
-#: ../../include/text.php:931
-msgid "surprised"
-msgstr "verrast"
-
-#: ../../include/text.php:1094
-msgid "Monday"
-msgstr "maandag"
-
-#: ../../include/text.php:1094
-msgid "Tuesday"
-msgstr "dinsdag"
-
-#: ../../include/text.php:1094
-msgid "Wednesday"
-msgstr "woensdag"
-
-#: ../../include/text.php:1094
-msgid "Thursday"
-msgstr "donderdag"
-
-#: ../../include/text.php:1094
-msgid "Friday"
-msgstr "vrijdag"
-
-#: ../../include/text.php:1094
-msgid "Saturday"
-msgstr "zaterdag"
-
-#: ../../include/text.php:1094
-msgid "Sunday"
-msgstr "zondag"
+#: ../../include/network.php:590
+msgid "view full size"
+msgstr "volledige grootte tonen"
-#: ../../include/text.php:1098
-msgid "January"
-msgstr "januari"
+#: ../../include/dir_fns.php:66
+msgid "Directory Options"
+msgstr "Opties kanalengids"
-#: ../../include/text.php:1098
-msgid "February"
-msgstr "februari"
+#: ../../include/dir_fns.php:67
+msgid "Alphabetic"
+msgstr "Alfabetisch"
-#: ../../include/text.php:1098
-msgid "March"
-msgstr "maart"
+#: ../../include/dir_fns.php:68
+msgid "Reverse Alphabetic"
+msgstr "Omgekeerd alfabetisch"
-#: ../../include/text.php:1098
-msgid "April"
-msgstr "april"
+#: ../../include/dir_fns.php:69
+msgid "Newest to Oldest"
+msgstr "Nieuw naar oud"
-#: ../../include/text.php:1098
-msgid "May"
-msgstr "mei"
+#: ../../include/dir_fns.php:70
+msgid "Oldest to Newest"
+msgstr "Oud naar nieuw"
-#: ../../include/text.php:1098
-msgid "June"
-msgstr "juni"
+#: ../../include/dir_fns.php:71
+msgid "Public Forums Only"
+msgstr "Alleen openbare forums"
-#: ../../include/text.php:1098
-msgid "July"
-msgstr "juli"
+#: ../../include/dir_fns.php:73
+msgid "Sort"
+msgstr "Sorteren"
-#: ../../include/text.php:1098
-msgid "August"
-msgstr "augustus"
+#: ../../include/dir_fns.php:89
+msgid "Enable Safe Search"
+msgstr "Veilig zoeken inschakelen"
-#: ../../include/text.php:1098
-msgid "September"
-msgstr "september"
+#: ../../include/dir_fns.php:91
+msgid "Disable Safe Search"
+msgstr "Veilig zoeken uitschakelen"
-#: ../../include/text.php:1098
-msgid "October"
-msgstr "oktober"
+#: ../../include/dir_fns.php:93
+msgid "Safe Mode"
+msgstr "Veilig zoeken"
-#: ../../include/text.php:1098
-msgid "November"
-msgstr "november"
+#: ../../include/permissions.php:26
+msgid "Can view my normal stream and posts"
+msgstr "Kan mijn normale kanaalstream en berichten bekijken"
-#: ../../include/text.php:1098
-msgid "December"
-msgstr "december"
+#: ../../include/permissions.php:27
+msgid "Can view my default channel profile"
+msgstr "Kan mijn standaard kanaalprofiel bekijken"
-#: ../../include/text.php:1176
-msgid "unknown.???"
-msgstr "onbekend.???"
+#: ../../include/permissions.php:28
+msgid "Can view my photo albums"
+msgstr "Kan mijn fotoalbums bekijken"
-#: ../../include/text.php:1177
-msgid "bytes"
-msgstr "bytes"
+#: ../../include/permissions.php:29
+msgid "Can view my connections"
+msgstr "Kan een lijst met mijn connecties bekijken"
-#: ../../include/text.php:1212
-msgid "remove category"
-msgstr "categorie verwijderen"
+#: ../../include/permissions.php:30
+msgid "Can view my file storage"
+msgstr "Kan mijn bestanden bekijken"
-#: ../../include/text.php:1282
-msgid "remove from file"
-msgstr "uit map verwijderen"
+#: ../../include/permissions.php:31
+msgid "Can view my webpages"
+msgstr "Kan mijn pagina's bekijken"
-#: ../../include/text.php:1347 ../../include/text.php:1359
-msgid "Click to open/close"
-msgstr "Klik om te openen of te sluiten"
+#: ../../include/permissions.php:34
+msgid "Can send me their channel stream and posts"
+msgstr "Kan mij de inhoud van hun kanaal en berichten sturen"
-#: ../../include/text.php:1514 ../../mod/events.php:374
-msgid "Link to Source"
-msgstr "Originele locatie"
+#: ../../include/permissions.php:35
+msgid "Can post on my channel page (\"wall\")"
+msgstr "Kan een bericht in mijn kanaal plaatsen"
-#: ../../include/text.php:1533
-msgid "Select a page layout: "
-msgstr "Kies een paginalayout: "
+#: ../../include/permissions.php:36
+msgid "Can comment on or like my posts"
+msgstr "Kan op mijn berichten reageren of deze (niet) leuk vinden"
-#: ../../include/text.php:1536 ../../include/text.php:1601
-msgid "default"
-msgstr "standaard"
+#: ../../include/permissions.php:37
+msgid "Can send me private mail messages"
+msgstr "Kan mij privéberichten sturen"
-#: ../../include/text.php:1572
-msgid "Page content type: "
-msgstr "Opmaakcode pagina"
+#: ../../include/permissions.php:38
+msgid "Can post photos to my photo albums"
+msgstr "Kan foto's aan mijn fotoalbums toevoegen"
-#: ../../include/text.php:1613
-msgid "Select an alternate language"
-msgstr "Kies een andere taal"
+#: ../../include/permissions.php:39
+msgid "Can like/dislike stuff"
+msgstr "Kan dingen leuk of niet leuk vinden"
-#: ../../include/text.php:1734 ../../include/diaspora.php:1852
-#: ../../include/conversation.php:120 ../../mod/subthread.php:72
-#: ../../mod/subthread.php:174 ../../mod/tagger.php:45 ../../mod/like.php:294
-msgid "photo"
-msgstr "foto"
+#: ../../include/permissions.php:39
+msgid "Profiles and things other than posts/comments"
+msgstr "Profielen en dingen, buiten berichten en reacties"
-#: ../../include/text.php:1737 ../../include/conversation.php:123
-#: ../../mod/tagger.php:49
-msgid "event"
-msgstr "gebeurtenis"
+#: ../../include/permissions.php:41
+msgid "Can forward to all my channel contacts via post @mentions"
+msgstr "Kan naar al mijn kanaalconnecties berichten doorsturen met behulp van @vermeldingen+"
-#: ../../include/text.php:1740 ../../include/diaspora.php:1852
-#: ../../include/conversation.php:148 ../../mod/subthread.php:72
-#: ../../mod/subthread.php:174 ../../mod/tagger.php:53 ../../mod/like.php:294
-msgid "status"
-msgstr "bericht"
+#: ../../include/permissions.php:41
+msgid "Advanced - useful for creating group forum channels"
+msgstr "Geavanceerd - nuttig voor groepforums"
-#: ../../include/text.php:1742 ../../include/conversation.php:150
-#: ../../mod/tagger.php:55
-msgid "comment"
-msgstr "reactie"
+#: ../../include/permissions.php:42
+msgid "Can chat with me (when available)"
+msgstr "Kan met mij chatten (wanneer beschikbaar)"
-#: ../../include/text.php:1747
-msgid "activity"
-msgstr "activiteit"
+#: ../../include/permissions.php:43
+msgid "Can write to my file storage"
+msgstr "Kan bestanden aan mijn bestandsopslag toevoegen"
-#: ../../include/text.php:2006
-msgid "Design"
-msgstr "Ontwerp"
+#: ../../include/permissions.php:44
+msgid "Can edit my webpages"
+msgstr "Kan mijn pagina's bewerken"
-#: ../../include/text.php:2008
-msgid "Blocks"
-msgstr "Blokken"
+#: ../../include/permissions.php:46
+msgid "Can source my public posts in derived channels"
+msgstr "Kan mijn openbare berichten als bron voor andere kanalen gebruiken"
-#: ../../include/text.php:2009
-msgid "Menus"
-msgstr "Menu's"
+#: ../../include/permissions.php:46
+msgid "Somewhat advanced - very useful in open communities"
+msgstr "Enigszins geavanceerd (erg nuttig voor kanalen van forums/groepen)"
-#: ../../include/text.php:2010
-msgid "Layouts"
-msgstr "Layouts"
+#: ../../include/permissions.php:48
+msgid "Can administer my channel resources"
+msgstr "Kan mijn kanaal beheren"
-#: ../../include/text.php:2011
-msgid "Pages"
-msgstr "Pagina's"
+#: ../../include/permissions.php:48
+msgid ""
+"Extremely advanced. Leave this alone unless you know what you are doing"
+msgstr "Zeer geavanceerd. Laat dit met rust, behalve als je weet wat je doet."
-#: ../../include/taxonomy.php:210
-msgid "Tags"
-msgstr "Labels"
+#: ../../include/permissions.php:814
+msgid "Social Networking"
+msgstr "Sociaal netwerk"
-#: ../../include/taxonomy.php:227
-msgid "Keywords"
-msgstr "Trefwoorden"
+#: ../../include/permissions.php:815 ../../include/permissions.php:817
+#: ../../include/permissions.php:819
+msgid "Mostly Public"
+msgstr "Vrijwel alles openbaar"
-#: ../../include/taxonomy.php:252
-msgid "have"
-msgstr "heb"
+#: ../../include/permissions.php:815 ../../include/permissions.php:817
+#: ../../include/permissions.php:819
+msgid "Restricted"
+msgstr "Beperkt zichtbaar"
-#: ../../include/taxonomy.php:252
-msgid "has"
-msgstr "heeft"
+#: ../../include/permissions.php:815 ../../include/permissions.php:817
+msgid "Private"
+msgstr "Verborgen kanaal"
-#: ../../include/taxonomy.php:253
-msgid "want"
-msgstr "wil"
+#: ../../include/permissions.php:816
+msgid "Community Forum"
+msgstr "Groepsforum"
-#: ../../include/taxonomy.php:253
-msgid "wants"
-msgstr "wil"
+#: ../../include/permissions.php:818
+msgid "Feed Republish"
+msgstr "Feed herpubliceren"
-#: ../../include/taxonomy.php:254 ../../include/ItemObject.php:208
-msgid "like"
-msgstr "vind dit leuk"
+#: ../../include/permissions.php:820
+msgid "Special Purpose"
+msgstr "Speciaal doel"
-#: ../../include/taxonomy.php:254
-msgid "likes"
-msgstr "vindt dit leuk"
+#: ../../include/permissions.php:821
+msgid "Celebrity/Soapbox"
+msgstr "Beroemdheid/alleen volgen"
-#: ../../include/taxonomy.php:255 ../../include/ItemObject.php:209
-msgid "dislike"
-msgstr "vind dit niet leuk"
+#: ../../include/permissions.php:821
+msgid "Group Repository"
+msgstr "Groepsopslag"
-#: ../../include/taxonomy.php:255
-msgid "dislikes"
-msgstr "vindt dit niet leuk"
+#: ../../include/permissions.php:822 ../../include/profile_selectors.php:6
+#: ../../include/profile_selectors.php:23
+#: ../../include/profile_selectors.php:61
+#: ../../include/profile_selectors.php:97
+msgid "Other"
+msgstr "Anders"
-#: ../../include/taxonomy.php:338 ../../include/identity.php:1017
-#: ../../include/ItemObject.php:134
-msgctxt "noun"
-msgid "Like"
-msgid_plural "Likes"
-msgstr[0] "vindt dit leuk"
-msgstr[1] "vinden dit leuk"
+#: ../../include/permissions.php:823
+msgid "Custom/Expert Mode"
+msgstr "Expertmodus/handmatig aanpassen"
-#: ../../include/comanche.php:35 ../../view/theme/apw/php/config.php:185
+#: ../../include/comanche.php:35 ../../mod/admin.php:353
+#: ../../view/theme/apw/php/config.php:185
msgid "Default"
msgstr "Standaard"
@@ -1110,7 +1000,7 @@ msgid "RSS/Atom"
msgstr "RSS/Atom"
#: ../../include/contact_selectors.php:79 ../../mod/admin.php:726
-#: ../../mod/admin.php:735 ../../boot.php:1495
+#: ../../mod/admin.php:735 ../../boot.php:1531
msgid "Email"
msgstr "E-mail"
@@ -1138,272 +1028,450 @@ msgstr "XMPP/IM"
msgid "MySpace"
msgstr "MySpace"
-#: ../../include/contact_widgets.php:14
-#, php-format
-msgid "%d invitation available"
-msgid_plural "%d invitations available"
-msgstr[0] "%d uitnodiging beschikbaar"
-msgstr[1] "%d uitnodigingen beschikbaar"
+#: ../../include/identity.php:31 ../../mod/item.php:1112
+msgid "Unable to obtain identity information from database"
+msgstr "Niet in staat om identiteitsinformatie uit de database te verkrijgen"
-#: ../../include/contact_widgets.php:19 ../../mod/admin.php:417
-msgid "Advanced"
-msgstr "Geavanceerd"
+#: ../../include/identity.php:66
+msgid "Empty name"
+msgstr "Ontbrekende naam"
-#: ../../include/contact_widgets.php:22
-msgid "Find Channels"
-msgstr "Kanalen vinden"
+#: ../../include/identity.php:68
+msgid "Name too long"
+msgstr "Naam te lang"
-#: ../../include/contact_widgets.php:23
-msgid "Enter name or interest"
-msgstr "Vul naam of interesse in"
+#: ../../include/identity.php:169
+msgid "No account identifier"
+msgstr "Geen account-identificator"
-#: ../../include/contact_widgets.php:24
-msgid "Connect/Follow"
-msgstr "Verbinden/volgen"
+#: ../../include/identity.php:182
+msgid "Nickname is required."
+msgstr "Bijnaam is verplicht"
-#: ../../include/contact_widgets.php:25
-msgid "Examples: Robert Morgenstein, Fishing"
-msgstr "Voorbeeld: Robert Morgenstein, vissen"
+#: ../../include/identity.php:196
+msgid "Reserved nickname. Please choose another."
+msgstr "Deze naam is gereserveerd. Kies een andere."
-#: ../../include/contact_widgets.php:26 ../../mod/connections.php:395
-#: ../../mod/directory.php:222 ../../mod/directory.php:227
-msgid "Find"
-msgstr "Vinden"
+#: ../../include/identity.php:201 ../../include/dimport.php:34
+msgid ""
+"Nickname has unsupported characters or is already being used on this site."
+msgstr "Deze naam heeft niet ondersteunde karakters of is al op deze hub in gebruik."
-#: ../../include/contact_widgets.php:27 ../../mod/suggest.php:59
-msgid "Channel Suggestions"
-msgstr "Voorgestelde kanalen"
+#: ../../include/identity.php:283
+msgid "Unable to retrieve created identity"
+msgstr "Niet in staat om aangemaakte identiteit te vinden"
-#: ../../include/contact_widgets.php:29
-msgid "Random Profile"
-msgstr "Willekeurig profiel"
+#: ../../include/identity.php:343
+msgid "Default Profile"
+msgstr "Standaardprofiel"
-#: ../../include/contact_widgets.php:30
-msgid "Invite Friends"
-msgstr "Vrienden uitnodigen"
+#: ../../include/identity.php:387 ../../include/identity.php:388
+#: ../../include/identity.php:395 ../../include/widgets.php:424
+#: ../../include/profile_selectors.php:80 ../../mod/settings.php:320
+#: ../../mod/settings.php:324 ../../mod/settings.php:325
+#: ../../mod/settings.php:328 ../../mod/settings.php:339
+#: ../../mod/connedit.php:510
+msgid "Friends"
+msgstr "Vrienden"
-#: ../../include/contact_widgets.php:32
-msgid "Exammple: name=fred and country=iceland"
-msgstr "Voorbeeld: (voor naam) name=herman en (voor land) country=nederland"
+#: ../../include/identity.php:643
+msgid "Requested channel is not available."
+msgstr "Opgevraagd kanaal is niet beschikbaar."
-#: ../../include/contact_widgets.php:33
-msgid "Advanced Find"
-msgstr "Geavanceerd zoeken"
+#: ../../include/identity.php:691 ../../mod/achievements.php:11
+#: ../../mod/profile.php:16 ../../mod/blocks.php:29 ../../mod/connect.php:13
+#: ../../mod/webpages.php:29 ../../mod/editblock.php:29
+#: ../../mod/editlayout.php:28 ../../mod/editwebpage.php:28
+#: ../../mod/filestorage.php:48 ../../mod/layouts.php:29 ../../mod/hcard.php:8
+msgid "Requested profile is not available."
+msgstr "Opgevraagd profiel is niet beschikbaar"
-#: ../../include/contact_widgets.php:58 ../../include/features.php:72
-#: ../../include/widgets.php:303
-msgid "Saved Folders"
-msgstr "Bewaarde mappen"
+#: ../../include/identity.php:840 ../../include/Contact.php:107
+#: ../../include/conversation.php:938 ../../include/widgets.php:136
+#: ../../include/widgets.php:175 ../../mod/suggest.php:51
+#: ../../mod/match.php:62 ../../mod/directory.php:264
+msgid "Connect"
+msgstr "Verbinden"
-#: ../../include/contact_widgets.php:61 ../../include/contact_widgets.php:96
-#: ../../include/widgets.php:306
-msgid "Everything"
-msgstr "Alles"
+#: ../../include/identity.php:854 ../../mod/profiles.php:740
+msgid "Change profile photo"
+msgstr "Profielfoto veranderen"
-#: ../../include/contact_widgets.php:93 ../../include/widgets.php:29
-msgid "Categories"
-msgstr "Categorieën"
+#: ../../include/identity.php:860
+msgid "Profiles"
+msgstr "Profielen"
-#: ../../include/contact_widgets.php:126
-#, php-format
-msgid "%d connection in common"
-msgid_plural "%d connections in common"
-msgstr[0] "%d gemeenschappelijke connectie"
-msgstr[1] "%d gemeenschappelijke connecties"
+#: ../../include/identity.php:860
+msgid "Manage/edit profiles"
+msgstr "Profielen beheren/bewerken"
-#: ../../include/contact_widgets.php:131
-msgid "show more"
-msgstr "meer connecties weergeven"
+#: ../../include/identity.php:861 ../../mod/profiles.php:741
+msgid "Create New Profile"
+msgstr "Nieuw profiel aanmaken"
-#: ../../include/event.php:326
-msgid "This event has been added to your calendar."
-msgstr "Dit evenement is aan jouw agenda toegevoegd."
+#: ../../include/identity.php:875 ../../mod/profiles.php:752
+msgid "Profile Image"
+msgstr "Profielfoto"
-#: ../../include/account.php:23
-msgid "Not a valid email address"
-msgstr "Geen geldig e-mailadres"
+#: ../../include/identity.php:878
+msgid "visible to everybody"
+msgstr "Voor iedereen zichtbaar"
-#: ../../include/account.php:25
-msgid "Your email domain is not among those allowed on this site"
-msgstr "Jouw e-maildomein is op deze RedMatrix-hub niet toegestaan"
+#: ../../include/identity.php:879 ../../mod/profiles.php:635
+#: ../../mod/profiles.php:756
+msgid "Edit visibility"
+msgstr "Zichtbaarheid bewerken"
-#: ../../include/account.php:31
-msgid "Your email address is already registered at this site."
-msgstr "Jouw e-mailadres is al op deze RedMatrix-hub geregistreerd ."
+#: ../../include/identity.php:895 ../../include/identity.php:1132
+msgid "Gender:"
+msgstr "Geslacht:"
-#: ../../include/account.php:64
-msgid "An invitation is required."
-msgstr "Een uitnodiging is vereist"
+#: ../../include/identity.php:896 ../../include/identity.php:1176
+msgid "Status:"
+msgstr "Status:"
-#: ../../include/account.php:68
-msgid "Invitation could not be verified."
-msgstr "Uitnodiging kon niet geverifieerd worden"
+#: ../../include/identity.php:897 ../../include/identity.php:1187
+msgid "Homepage:"
+msgstr "Homepagina:"
-#: ../../include/account.php:119
-msgid "Please enter the required information."
-msgstr "Vul de vereiste informatie in."
+#: ../../include/identity.php:898
+msgid "Online Now"
+msgstr "Nu online"
-#: ../../include/account.php:187
-msgid "Failed to store account information."
-msgstr "Account-informatie kon niet opgeslagen worden."
+#: ../../include/identity.php:976 ../../include/identity.php:1056
+#: ../../mod/ping.php:326
+msgid "g A l F d"
+msgstr "G:i, l d F"
-#: ../../include/account.php:245
-#, php-format
-msgid "Registration confirmation for %s"
-msgstr "Registratiebevestiging voor %s"
+#: ../../include/identity.php:977 ../../include/identity.php:1057
+msgid "F d"
+msgstr "d F"
-#: ../../include/account.php:313
-#, php-format
-msgid "Registration request at %s"
-msgstr "Registratieverzoek op %s"
+#: ../../include/identity.php:1022 ../../include/identity.php:1097
+#: ../../mod/ping.php:348
+msgid "[today]"
+msgstr "[vandaag]"
-#: ../../include/account.php:315 ../../include/account.php:342
-#: ../../include/account.php:399
-msgid "Administrator"
-msgstr "Beheerder"
+#: ../../include/identity.php:1034
+msgid "Birthday Reminders"
+msgstr "Verjaardagsherinneringen"
-#: ../../include/account.php:337
-msgid "your registration password"
-msgstr "jouw registratiewachtwoord"
+#: ../../include/identity.php:1035
+msgid "Birthdays this week:"
+msgstr "Verjaardagen deze week:"
-#: ../../include/account.php:340 ../../include/account.php:397
-#, php-format
-msgid "Registration details for %s"
-msgstr "Registratiedetails voor %s"
+#: ../../include/identity.php:1090
+msgid "[No description]"
+msgstr "[Geen omschrijving]"
-#: ../../include/account.php:406
-msgid "Account approved."
-msgstr "Account goedgekeurd"
+#: ../../include/identity.php:1108
+msgid "Event Reminders"
+msgstr "Herinneringen"
-#: ../../include/account.php:440
+#: ../../include/identity.php:1109
+msgid "Events this week:"
+msgstr "Gebeurtenissen deze week:"
+
+#: ../../include/identity.php:1122 ../../include/identity.php:1251
+#: ../../include/apps.php:136 ../../mod/profperm.php:112
+msgid "Profile"
+msgstr "Profiel"
+
+#: ../../include/identity.php:1130 ../../mod/settings.php:1012
+msgid "Full Name:"
+msgstr "Volledige naam:"
+
+#: ../../include/identity.php:1137
+msgid "Like this channel"
+msgstr "Vind dit kanaal leuk"
+
+#: ../../include/identity.php:1148 ../../include/taxonomy.php:360
+#: ../../include/ItemObject.php:146 ../../mod/photos.php:1027
+msgctxt "noun"
+msgid "Like"
+msgid_plural "Likes"
+msgstr[0] "vindt dit leuk"
+msgstr[1] "vinden dit leuk"
+
+#: ../../include/identity.php:1161
+msgid "j F, Y"
+msgstr "F j Y"
+
+#: ../../include/identity.php:1162
+msgid "j F"
+msgstr "F j"
+
+#: ../../include/identity.php:1169
+msgid "Birthday:"
+msgstr "Geboortedatum:"
+
+#: ../../include/identity.php:1173
+msgid "Age:"
+msgstr "Leeftijd:"
+
+#: ../../include/identity.php:1182
#, php-format
-msgid "Registration revoked for %s"
-msgstr "Registratie ingetrokken voor %s"
+msgid "for %1$d %2$s"
+msgstr "voor %1$d %2$s"
-#: ../../include/account.php:486
-msgid "Account verified. Please login."
-msgstr "Account is geverifieerd. Je kan inloggen."
+#: ../../include/identity.php:1185 ../../mod/profiles.php:657
+msgid "Sexual Preference:"
+msgstr "Seksuele voorkeur:"
+
+#: ../../include/identity.php:1189 ../../mod/profiles.php:659
+msgid "Hometown:"
+msgstr "Oorspronkelijk uit:"
+
+#: ../../include/identity.php:1191
+msgid "Tags:"
+msgstr "Trefwoorden:"
+
+#: ../../include/identity.php:1193 ../../mod/profiles.php:660
+msgid "Political Views:"
+msgstr "Politieke overtuigingen:"
+
+#: ../../include/identity.php:1195
+msgid "Religion:"
+msgstr "Religie:"
+
+#: ../../include/identity.php:1197
+msgid "About:"
+msgstr "Over:"
+
+#: ../../include/identity.php:1199
+msgid "Hobbies/Interests:"
+msgstr "Hobby's/interesses:"
+
+#: ../../include/identity.php:1201 ../../mod/profiles.php:663
+msgid "Likes:"
+msgstr "Houdt van:"
+
+#: ../../include/identity.php:1203 ../../mod/profiles.php:664
+msgid "Dislikes:"
+msgstr "Houdt niet van:"
+
+#: ../../include/identity.php:1206
+msgid "Contact information and Social Networks:"
+msgstr "Contactinformatie en sociale netwerken:"
+
+#: ../../include/identity.php:1218
+msgid "My other channels:"
+msgstr "Mijn andere kanalen"
+
+#: ../../include/identity.php:1221
+msgid "Musical interests:"
+msgstr "Muzikale interesses:"
+
+#: ../../include/identity.php:1223
+msgid "Books, literature:"
+msgstr "Boeken, literatuur:"
+
+#: ../../include/identity.php:1225
+msgid "Television:"
+msgstr "Televisie:"
+
+#: ../../include/identity.php:1227
+msgid "Film/dance/culture/entertainment:"
+msgstr "Films/dansen/cultuur/vermaak:"
+
+#: ../../include/identity.php:1229
+msgid "Love/Romance:"
+msgstr "Liefde/romantiek:"
+
+#: ../../include/identity.php:1231
+msgid "Work/employment:"
+msgstr "Werk/beroep:"
+
+#: ../../include/identity.php:1233
+msgid "School/education:"
+msgstr "School/opleiding:"
+
+#: ../../include/identity.php:1253
+msgid "Like this thing"
+msgstr "Vind dit ding leuk"
+
+#: ../../include/bbcode.php:112 ../../include/bbcode.php:655
+#: ../../include/bbcode.php:658 ../../include/bbcode.php:663
+#: ../../include/bbcode.php:666 ../../include/bbcode.php:669
+#: ../../include/bbcode.php:672 ../../include/bbcode.php:677
+#: ../../include/bbcode.php:680 ../../include/bbcode.php:685
+#: ../../include/bbcode.php:688 ../../include/bbcode.php:691
+#: ../../include/bbcode.php:694
+msgid "Image/photo"
+msgstr "Afbeelding/foto"
+
+#: ../../include/bbcode.php:147 ../../include/bbcode.php:705
+msgid "Encrypted content"
+msgstr "Versleutelde inhoud"
+
+#: ../../include/bbcode.php:165
+msgid "Install design element: "
+msgstr "Installeer ontwerp-onderdeel"
+
+#: ../../include/bbcode.php:171
+msgid "QR code"
+msgstr "QR-code"
-#: ../../include/diaspora.php:1868 ../../include/conversation.php:164
-#: ../../mod/like.php:331
+#: ../../include/bbcode.php:220
#, php-format
-msgid "%1$s likes %2$s's %3$s"
-msgstr "%1$s vindt %3$s van %2$s leuk"
+msgid "%1$s wrote the following %2$s %3$s"
+msgstr "%1$s schreef het volgende %2$s %3$s"
-#: ../../include/diaspora.php:2278
-msgid "Attachments:"
-msgstr "Bijlagen:"
+#: ../../include/bbcode.php:222
+msgid "post"
+msgstr "bericht"
+
+#: ../../include/bbcode.php:623
+msgid "$1 spoiler"
+msgstr "$1 spoiler"
+
+#: ../../include/bbcode.php:643
+msgid "$1 wrote:"
+msgstr "$1 schreef:"
#: ../../include/datetime.php:43 ../../include/datetime.php:45
msgid "Miscellaneous"
msgstr "Diversen"
-#: ../../include/datetime.php:152 ../../include/datetime.php:284
-msgid "year"
-msgstr "jaar"
+#: ../../include/datetime.php:142
+msgid "YYYY-MM-DD or MM-DD"
+msgstr "JJJJ-MM-DD of MM-DD"
-#: ../../include/datetime.php:157 ../../include/datetime.php:285
-msgid "month"
-msgstr "maand"
-
-#: ../../include/datetime.php:162 ../../include/datetime.php:287
-msgid "day"
-msgstr "dag"
-
-#: ../../include/datetime.php:275
+#: ../../include/datetime.php:259
msgid "never"
msgstr "nooit"
-#: ../../include/datetime.php:281
+#: ../../include/datetime.php:265
msgid "less than a second ago"
msgstr "minder dan een seconde geleden"
-#: ../../include/datetime.php:284
+#: ../../include/datetime.php:268
+msgid "year"
+msgstr "jaar"
+
+#: ../../include/datetime.php:268
msgid "years"
msgstr "jaren"
-#: ../../include/datetime.php:285
+#: ../../include/datetime.php:269
+msgid "month"
+msgstr "maand"
+
+#: ../../include/datetime.php:269
msgid "months"
msgstr "maanden"
-#: ../../include/datetime.php:286
+#: ../../include/datetime.php:270
msgid "week"
msgstr "week"
-#: ../../include/datetime.php:286
+#: ../../include/datetime.php:270
msgid "weeks"
msgstr "weken"
-#: ../../include/datetime.php:287
+#: ../../include/datetime.php:271
+msgid "day"
+msgstr "dag"
+
+#: ../../include/datetime.php:271
msgid "days"
msgstr "dagen"
-#: ../../include/datetime.php:288
+#: ../../include/datetime.php:272
msgid "hour"
msgstr "uur"
-#: ../../include/datetime.php:288
+#: ../../include/datetime.php:272
msgid "hours"
msgstr "uren"
-#: ../../include/datetime.php:289
+#: ../../include/datetime.php:273
msgid "minute"
msgstr "minuut"
-#: ../../include/datetime.php:289
+#: ../../include/datetime.php:273
msgid "minutes"
msgstr "minuten"
-#: ../../include/datetime.php:290
+#: ../../include/datetime.php:274
msgid "second"
msgstr "seconde"
-#: ../../include/datetime.php:290
+#: ../../include/datetime.php:274
msgid "seconds"
msgstr "seconden"
-#: ../../include/datetime.php:299
+#: ../../include/datetime.php:283
#, php-format
msgid "%1$d %2$s ago"
msgstr "%1$d %2$s geleden"
-#: ../../include/datetime.php:504
+#: ../../include/datetime.php:491
#, php-format
msgid "%1$s's birthday"
msgstr "Verjaardag van %1$s"
-#: ../../include/datetime.php:505
+#: ../../include/datetime.php:492
#, php-format
msgid "Happy Birthday %1$s"
msgstr "Gefeliciteerd met je verjaardag %1$s"
-#: ../../include/dir_fns.php:36
-msgid "Sort Options"
-msgstr "Sorteeropties"
+#: ../../include/Contact.php:123
+msgid "New window"
+msgstr "Nieuw venster"
-#: ../../include/dir_fns.php:37
-msgid "Alphabetic"
-msgstr "Alfabetisch"
+#: ../../include/Contact.php:124
+msgid "Open the selected location in a different window or browser tab"
+msgstr "Open de geselecteerde locatie in een ander venster of tab"
-#: ../../include/dir_fns.php:38
-msgid "Reverse Alphabetic"
-msgstr "Omgekeerd alfabetisch"
+#: ../../include/Contact.php:214 ../../mod/admin.php:646
+#, php-format
+msgid "User '%s' deleted"
+msgstr "Account '%s' verwijderd"
-#: ../../include/dir_fns.php:39
-msgid "Newest to Oldest"
-msgstr "Nieuw naar oud"
+#: ../../include/taxonomy.php:210
+msgid "Tags"
+msgstr "Labels"
-#: ../../include/dir_fns.php:51
-msgid "Enable Safe Search"
-msgstr "Veilig zoeken inschakelen"
+#: ../../include/taxonomy.php:249
+msgid "Keywords"
+msgstr "Trefwoorden"
-#: ../../include/dir_fns.php:53
-msgid "Disable Safe Search"
-msgstr "Veilig zoeken uitschakelen"
+#: ../../include/taxonomy.php:274
+msgid "have"
+msgstr "heb"
-#: ../../include/dir_fns.php:55
-msgid "Safe Mode"
-msgstr "Veilig zoeken"
+#: ../../include/taxonomy.php:274
+msgid "has"
+msgstr "heeft"
+
+#: ../../include/taxonomy.php:275
+msgid "want"
+msgstr "wil"
+
+#: ../../include/taxonomy.php:275
+msgid "wants"
+msgstr "wil"
+
+#: ../../include/taxonomy.php:276 ../../include/ItemObject.php:221
+msgid "like"
+msgstr "vind dit leuk"
+
+#: ../../include/taxonomy.php:276
+msgid "likes"
+msgstr "vindt dit leuk"
+
+#: ../../include/taxonomy.php:277 ../../include/ItemObject.php:222
+msgid "dislike"
+msgstr "vind dit niet leuk"
+
+#: ../../include/taxonomy.php:277
+msgid "dislikes"
+msgstr "vindt dit niet leuk"
+
+#: ../../include/api.php:1084
+msgid "Public Timeline"
+msgstr "Openbare tijdlijn"
#: ../../include/enotify.php:41
msgid "Red Matrix Notification"
@@ -1601,87 +1669,650 @@ msgstr "Bezoek %s om het voorstel te accepteren of af te wijzen."
msgid "[Red:Notify]"
msgstr "[Red:Notificatie]"
-#: ../../include/reddav.php:1145 ../../include/reddav.php:1288
-msgid "parent"
-msgstr "omhoog"
+#: ../../include/event.php:376
+msgid "This event has been added to your calendar."
+msgstr "Dit evenement is aan jouw agenda toegevoegd."
-#: ../../include/reddav.php:1169
-msgid "Collection"
-msgstr "map"
+#: ../../include/group.php:26
+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 "Een verwijderde collectie met deze naam is gereactiveerd. Bestaande itemrechten <strong>kunnen</strong> van toepassing zijn op deze collectie en toekomstige leden. Wanneer je dit niet zo bedoeld hebt, moet je een nieuwe collectie met een andere naam aanmaken."
-#: ../../include/reddav.php:1172
-msgid "Principal"
-msgstr "principal"
+#: ../../include/group.php:235
+msgid "Default privacy group for new contacts"
+msgstr "Standaard privacy-collectie voor nieuwe kanalen"
-#: ../../include/reddav.php:1175
-msgid "Addressbook"
-msgstr "Adresboek"
+#: ../../include/group.php:254 ../../mod/admin.php:735
+msgid "All Channels"
+msgstr "Alle kanalen"
-#: ../../include/reddav.php:1178
-msgid "Calendar"
-msgstr "Agenda"
+#: ../../include/group.php:276
+msgid "edit"
+msgstr "bewerken"
-#: ../../include/reddav.php:1181
-msgid "Schedule Inbox"
-msgstr "Planning-postvak IN"
+#: ../../include/group.php:298
+msgid "Collections"
+msgstr "Collecties"
-#: ../../include/reddav.php:1184
-msgid "Schedule Outbox"
-msgstr "Planning-postvak UIT"
+#: ../../include/group.php:299
+msgid "Edit collection"
+msgstr "Collectie bewerken"
-#: ../../include/reddav.php:1262
-#, php-format
-msgid "%1$s used"
-msgstr "%1$s gebruikt"
+#: ../../include/group.php:300
+msgid "Create a new collection"
+msgstr "Nieuwe collectie aanmaken"
+
+#: ../../include/group.php:301
+msgid "Channels not in any collection"
+msgstr "Kanalen die zich in geen enkele collectie bevinden"
+
+#: ../../include/group.php:303 ../../include/widgets.php:269
+msgid "add"
+msgstr "toevoegen"
+
+#: ../../include/features.php:23
+msgid "General Features"
+msgstr "Algemene functies"
+
+#: ../../include/features.php:25
+msgid "Content Expiration"
+msgstr "Inhoud laten verlopen"
+
+#: ../../include/features.php:25
+msgid "Remove posts/comments and/or private messages at a future time"
+msgstr "Berichten, reacties en/of privéberichten na een bepaalde tijd verwijderen"
+
+#: ../../include/features.php:26
+msgid "Multiple Profiles"
+msgstr "Meerdere profielen"
+
+#: ../../include/features.php:26
+msgid "Ability to create multiple profiles"
+msgstr "Mogelijkheid om meerdere profielen aan te maken"
+
+#: ../../include/features.php:27
+msgid "Advanced Profiles"
+msgstr "Geavanceerde profielen"
+
+#: ../../include/features.php:27
+msgid "Additional profile sections and selections"
+msgstr "Extra onderdelen en keuzes voor je profiel"
+
+#: ../../include/features.php:28
+msgid "Profile Import/Export"
+msgstr "Profiel importen/exporteren"
+
+#: ../../include/features.php:28
+msgid "Save and load profile details across sites/channels"
+msgstr "Profielgegevens opslaan en in andere hubs/kanalen gebruiken."
+
+#: ../../include/features.php:29
+msgid "Web Pages"
+msgstr "Webpagina's"
+
+#: ../../include/features.php:29
+msgid "Provide managed web pages on your channel"
+msgstr "Sta beheerde webpagina's op jouw kanaal toe"
+
+#: ../../include/features.php:30
+msgid "Private Notes"
+msgstr "Privé-aantekeningen"
+
+#: ../../include/features.php:30
+msgid "Enables a tool to store notes and reminders"
+msgstr "Schakelt een eenvoudige toepassing in om aantekeningen en herinneringen in op te slaan"
+
+#: ../../include/features.php:34
+msgid "Navigation Channel Select"
+msgstr "Kanaal kiezen in navigatiemenu"
+
+#: ../../include/features.php:34
+msgid "Change channels directly from within the navigation dropdown menu"
+msgstr "Kies een ander kanaal direct vanuit het dropdown-menu op de navigatiebalk"
+
+#: ../../include/features.php:38
+msgid "Extended Identity Sharing"
+msgstr "Uitgebreid identiteit delen"
+
+#: ../../include/features.php:38
+msgid ""
+"Share your identity with all websites on the internet. When disabled, "
+"identity is only shared with sites in the matrix."
+msgstr "Deel jouw RedMatrix-identiteit met alle websites op het internet. Wanneer dit is uitgeschakeld wordt je identiteit alleen binnen het RedMatrix-netwerk gedeeld. Schakel dit alleen als je weet wat je doet."
+
+#: ../../include/features.php:39
+msgid "Expert Mode"
+msgstr "Expertmodus"
+
+#: ../../include/features.php:39
+msgid "Enable Expert Mode to provide advanced configuration options"
+msgstr "Schakel de expertmodus in voor geavanceerde instellingen"
+
+#: ../../include/features.php:40
+msgid "Premium Channel"
+msgstr "Premiumkanaal"
+
+#: ../../include/features.php:40
+msgid ""
+"Allows you to set restrictions and terms on those that connect with your "
+"channel"
+msgstr "Stelt je in staat om beperkingen en voorwaarden in te stellen voor jouw kanaal"
+
+#: ../../include/features.php:45
+msgid "Post Composition Features"
+msgstr "Functies voor het opstellen van berichten"
+
+#: ../../include/features.php:47
+msgid "Use Markdown"
+msgstr "Markdown gebruiken"
+
+#: ../../include/features.php:47
+msgid "Allow use of \"Markdown\" to format posts"
+msgstr "Sta het gebruik van \"markdown\" toe om berichten mee op te maken."
-#: ../../include/reddav.php:1267
+#: ../../include/features.php:48
+msgid "Post Preview"
+msgstr "Voorvertoning"
+
+#: ../../include/features.php:48
+msgid "Allow previewing posts and comments before publishing them"
+msgstr "Een optie om je berichten en reacties voor het definitief publiceren voor te vertonen"
+
+#: ../../include/features.php:49 ../../include/widgets.php:528
+#: ../../mod/sources.php:88
+msgid "Channel Sources"
+msgstr "Kanaalbronnen"
+
+#: ../../include/features.php:49
+msgid "Automatically import channel content from other channels or feeds"
+msgstr "Automatisch inhoud uit andere kanalen of feeds importeren."
+
+#: ../../include/features.php:50
+msgid "Even More Encryption"
+msgstr "Extra encryptie"
+
+#: ../../include/features.php:50
+msgid ""
+"Allow optional encryption of content end-to-end with a shared secret key"
+msgstr "Sta toe dat inhoud extra end-to-end wordt versleuteld met een gedeelde geheime sleutel."
+
+#: ../../include/features.php:51
+msgid "Flag Adult Photos"
+msgstr "Markeer foto's als voor volwassenen"
+
+#: ../../include/features.php:51
+msgid "Provide photo edit option to hide adult photos from default album view"
+msgstr "Zorgt voor een optie om foto's met inhoud voor volwassenen in de standaard albumweergave te verbergen"
+
+#: ../../include/features.php:56
+msgid "Network and Stream Filtering"
+msgstr "Netwerk- en streamfilter"
+
+#: ../../include/features.php:57
+msgid "Search by Date"
+msgstr "Zoek op datum"
+
+#: ../../include/features.php:57
+msgid "Ability to select posts by date ranges"
+msgstr "Mogelijkheid om berichten op datum te filteren "
+
+#: ../../include/features.php:58
+msgid "Collections Filter"
+msgstr "Filter op collecties"
+
+#: ../../include/features.php:58
+msgid "Enable widget to display Network posts only from selected collections"
+msgstr "Sta de widget toe om netwerkberichten te tonen van bepaalde collecties"
+
+#: ../../include/features.php:59 ../../include/widgets.php:268
+msgid "Saved Searches"
+msgstr "Opgeslagen zoekopdrachten"
+
+#: ../../include/features.php:59
+msgid "Save search terms for re-use"
+msgstr "Sla zoekopdrachten op voor hergebruik"
+
+#: ../../include/features.php:60
+msgid "Network Personal Tab"
+msgstr "Persoonlijke netwerktab"
+
+#: ../../include/features.php:60
+msgid "Enable tab to display only Network posts that you've interacted on"
+msgstr "Sta het toe dat de tab netwerkberichten toont waarmee je interactie had"
+
+#: ../../include/features.php:61
+msgid "Network New Tab"
+msgstr "Nieuwe netwerktab"
+
+#: ../../include/features.php:61
+msgid "Enable tab to display all new Network activity"
+msgstr "Laat de tab alle nieuwe netwerkactiviteit tonen"
+
+#: ../../include/features.php:62
+msgid "Affinity Tool"
+msgstr "Verwantschapsfilter"
+
+#: ../../include/features.php:62
+msgid "Filter stream activity by depth of relationships"
+msgstr "Filter wat je in de Matrix ziet op hoe goed je iemand kent of mag"
+
+#: ../../include/features.php:63
+msgid "Suggest Channels"
+msgstr "Kanalen voorstellen"
+
+#: ../../include/features.php:63
+msgid "Show channel suggestions"
+msgstr "Voor jou mogelijk interessante kanalen voorstellen"
+
+#: ../../include/features.php:68
+msgid "Post/Comment Tools"
+msgstr "Bericht- en reactiehulpmiddelen"
+
+#: ../../include/features.php:70
+msgid "Edit Sent Posts"
+msgstr "Bewerk verzonden berichten"
+
+#: ../../include/features.php:70
+msgid "Edit and correct posts and comments after sending"
+msgstr "Bewerk en corrigeer berichten en reacties nadat deze zijn verzonden"
+
+#: ../../include/features.php:71
+msgid "Tagging"
+msgstr "Labelen"
+
+#: ../../include/features.php:71
+msgid "Ability to tag existing posts"
+msgstr "Mogelijkheid om bestaande berichten te labelen"
+
+#: ../../include/features.php:72
+msgid "Post Categories"
+msgstr "Categorieën berichten"
+
+#: ../../include/features.php:72
+msgid "Add categories to your posts"
+msgstr "Voeg categorieën toe aan je berichten"
+
+#: ../../include/features.php:73
+msgid "Ability to file posts under folders"
+msgstr "Mogelijkheid om berichten in mappen op te slaan"
+
+#: ../../include/features.php:74
+msgid "Dislike Posts"
+msgstr "Vind berichten niet leuk"
+
+#: ../../include/features.php:74
+msgid "Ability to dislike posts/comments"
+msgstr "Mogelijkheid om berichten en reacties niet leuk te vinden"
+
+#: ../../include/features.php:75
+msgid "Star Posts"
+msgstr "Geef berichten een ster"
+
+#: ../../include/features.php:75
+msgid "Ability to mark special posts with a star indicator"
+msgstr "Mogelijkheid om speciale berichten met een ster te markeren"
+
+#: ../../include/features.php:76
+msgid "Tag Cloud"
+msgstr "Wolk met trefwoorden/labels"
+
+#: ../../include/features.php:76
+msgid "Provide a personal tag cloud on your channel page"
+msgstr "Zorgt voor een persoonlijke wolk met trefwoorden of labels op jouw kanaalpagina"
+
+#: ../../include/text.php:321
+msgid "prev"
+msgstr "vorige"
+
+#: ../../include/text.php:323
+msgid "first"
+msgstr "eerste"
+
+#: ../../include/text.php:352
+msgid "last"
+msgstr "laatste"
+
+#: ../../include/text.php:355
+msgid "next"
+msgstr "volgende"
+
+#: ../../include/text.php:367
+msgid "older"
+msgstr "ouder"
+
+#: ../../include/text.php:369
+msgid "newer"
+msgstr "nieuwer"
+
+#: ../../include/text.php:736
+msgid "No connections"
+msgstr "Geen connecties"
+
+#: ../../include/text.php:753
#, php-format
-msgid "%1$s used of %2$s (%3$s&#37;)"
-msgstr "%1$s van %2$s gebruikt (%3$s&#37;)"
+msgid "%d Connection"
+msgid_plural "%d Connections"
+msgstr[0] "%d connectie"
+msgstr[1] "%d connecties"
-#: ../../include/reddav.php:1284 ../../mod/settings.php:519
-#: ../../mod/settings.php:545 ../../mod/admin.php:865
-msgid "Name"
-msgstr "Naam"
+#: ../../include/text.php:766
+msgid "View Connections"
+msgstr "Connecties weergeven"
-#: ../../include/reddav.php:1285
-msgid "Type"
-msgstr "Type"
+#: ../../include/text.php:827 ../../include/text.php:839
+#: ../../include/widgets.php:192 ../../mod/filer.php:50
+#: ../../mod/rbmark.php:28 ../../mod/rbmark.php:98 ../../mod/admin.php:1339
+#: ../../mod/admin.php:1360
+msgid "Save"
+msgstr "Opslaan"
-#: ../../include/reddav.php:1286
-msgid "Size"
-msgstr "Grootte"
+#: ../../include/text.php:905
+msgid "poke"
+msgstr "aanstoten"
-#: ../../include/reddav.php:1287
-msgid "Last Modified"
-msgstr "Laatst gewijzigd"
+#: ../../include/text.php:905 ../../include/conversation.php:243
+msgid "poked"
+msgstr "aangestoten"
-#: ../../include/reddav.php:1291
-msgid "Total"
-msgstr "Totaal"
+#: ../../include/text.php:906
+msgid "ping"
+msgstr "ping"
-#: ../../include/reddav.php:1344
-msgid "Create new folder"
-msgstr "Nieuwe map aanmaken"
+#: ../../include/text.php:906
+msgid "pinged"
+msgstr "gepingd"
-#: ../../include/reddav.php:1345 ../../mod/mitem.php:142 ../../mod/menu.php:84
-#: ../../mod/new_channel.php:117
-msgid "Create"
-msgstr "Aanmaken"
+#: ../../include/text.php:907
+msgid "prod"
+msgstr "por"
-#: ../../include/reddav.php:1346
-msgid "Upload file"
-msgstr "Bestand uploaden"
+#: ../../include/text.php:907
+msgid "prodded"
+msgstr "gepord"
-#: ../../include/reddav.php:1347 ../../mod/profile_photo.php:361
-msgid "Upload"
-msgstr "Uploaden"
+#: ../../include/text.php:908
+msgid "slap"
+msgstr "slaan"
+
+#: ../../include/text.php:908
+msgid "slapped"
+msgstr "sloeg"
+
+#: ../../include/text.php:909
+msgid "finger"
+msgstr "finger"
+
+#: ../../include/text.php:909
+msgid "fingered"
+msgstr "gefingerd"
+
+#: ../../include/text.php:910
+msgid "rebuff"
+msgstr "afpoeieren"
+
+#: ../../include/text.php:910
+msgid "rebuffed"
+msgstr "afgepoeierd"
+
+#: ../../include/text.php:919
+msgid "happy"
+msgstr "gelukkig"
+
+#: ../../include/text.php:920
+msgid "sad"
+msgstr "bedroefd"
+
+#: ../../include/text.php:921
+msgid "mellow"
+msgstr "mellow"
+
+#: ../../include/text.php:922
+msgid "tired"
+msgstr "moe"
+
+#: ../../include/text.php:923
+msgid "perky"
+msgstr "parmantig"
+
+#: ../../include/text.php:924
+msgid "angry"
+msgstr "boos"
+
+#: ../../include/text.php:925
+msgid "stupified"
+msgstr "beteuterd"
+
+#: ../../include/text.php:926
+msgid "puzzled"
+msgstr "verward"
+
+#: ../../include/text.php:927
+msgid "interested"
+msgstr "geïnteresseerd"
+
+#: ../../include/text.php:928
+msgid "bitter"
+msgstr "verbitterd"
+
+#: ../../include/text.php:929
+msgid "cheerful"
+msgstr "vrolijk"
+
+#: ../../include/text.php:930
+msgid "alive"
+msgstr "levendig"
+
+#: ../../include/text.php:931
+msgid "annoyed"
+msgstr "geërgerd"
+
+#: ../../include/text.php:932
+msgid "anxious"
+msgstr "bezorgd"
+
+#: ../../include/text.php:933
+msgid "cranky"
+msgstr "humeurig"
+
+#: ../../include/text.php:934
+msgid "disturbed"
+msgstr "verontrust"
+
+#: ../../include/text.php:935
+msgid "frustrated"
+msgstr "gefrustreerd "
+
+#: ../../include/text.php:936
+msgid "depressed"
+msgstr "gedeprimeerd"
+
+#: ../../include/text.php:937
+msgid "motivated"
+msgstr "gemotiveerd"
+
+#: ../../include/text.php:938
+msgid "relaxed"
+msgstr "ontspannen"
+
+#: ../../include/text.php:939
+msgid "surprised"
+msgstr "verrast"
+
+#: ../../include/text.php:1103
+msgid "Monday"
+msgstr "maandag"
+
+#: ../../include/text.php:1103
+msgid "Tuesday"
+msgstr "dinsdag"
+
+#: ../../include/text.php:1103
+msgid "Wednesday"
+msgstr "woensdag"
+
+#: ../../include/text.php:1103
+msgid "Thursday"
+msgstr "donderdag"
+
+#: ../../include/text.php:1103
+msgid "Friday"
+msgstr "vrijdag"
+
+#: ../../include/text.php:1103
+msgid "Saturday"
+msgstr "zaterdag"
+
+#: ../../include/text.php:1103
+msgid "Sunday"
+msgstr "zondag"
+
+#: ../../include/text.php:1107
+msgid "January"
+msgstr "januari"
+
+#: ../../include/text.php:1107
+msgid "February"
+msgstr "februari"
+
+#: ../../include/text.php:1107
+msgid "March"
+msgstr "maart"
+
+#: ../../include/text.php:1107
+msgid "April"
+msgstr "april"
+
+#: ../../include/text.php:1107
+msgid "May"
+msgstr "mei"
+
+#: ../../include/text.php:1107
+msgid "June"
+msgstr "juni"
+
+#: ../../include/text.php:1107
+msgid "July"
+msgstr "juli"
+
+#: ../../include/text.php:1107
+msgid "August"
+msgstr "augustus"
+
+#: ../../include/text.php:1107
+msgid "September"
+msgstr "september"
+
+#: ../../include/text.php:1107
+msgid "October"
+msgstr "oktober"
+
+#: ../../include/text.php:1107
+msgid "November"
+msgstr "november"
+
+#: ../../include/text.php:1107
+msgid "December"
+msgstr "december"
+
+#: ../../include/text.php:1185
+msgid "unknown.???"
+msgstr "onbekend.???"
+
+#: ../../include/text.php:1186
+msgid "bytes"
+msgstr "bytes"
+
+#: ../../include/text.php:1225
+msgid "remove category"
+msgstr "categorie verwijderen"
+
+#: ../../include/text.php:1295
+msgid "remove from file"
+msgstr "uit map verwijderen"
+
+#: ../../include/text.php:1360 ../../include/text.php:1372
+msgid "Click to open/close"
+msgstr "Klik om te openen of te sluiten"
+
+#: ../../include/text.php:1527 ../../mod/events.php:414
+msgid "Link to Source"
+msgstr "Originele locatie"
+
+#: ../../include/text.php:1546
+msgid "Select a page layout: "
+msgstr "Kies een paginalay-out: "
+
+#: ../../include/text.php:1549 ../../include/text.php:1614
+msgid "default"
+msgstr "standaard"
+
+#: ../../include/text.php:1585
+msgid "Page content type: "
+msgstr "Opmaakcode pagina"
+
+#: ../../include/text.php:1626
+msgid "Select an alternate language"
+msgstr "Kies een andere taal"
+
+#: ../../include/text.php:1747 ../../include/conversation.php:120
+#: ../../include/diaspora.php:1928 ../../mod/subthread.php:72
+#: ../../mod/subthread.php:174 ../../mod/like.php:290 ../../mod/tagger.php:45
+msgid "photo"
+msgstr "foto"
+
+#: ../../include/text.php:1750 ../../include/conversation.php:123
+#: ../../mod/tagger.php:49
+msgid "event"
+msgstr "gebeurtenis"
+
+#: ../../include/text.php:1753 ../../include/conversation.php:148
+#: ../../include/diaspora.php:1928 ../../mod/subthread.php:72
+#: ../../mod/subthread.php:174 ../../mod/like.php:290 ../../mod/tagger.php:53
+msgid "status"
+msgstr "bericht"
+
+#: ../../include/text.php:1755 ../../include/conversation.php:150
+#: ../../mod/tagger.php:55
+msgid "comment"
+msgstr "reactie"
+
+#: ../../include/text.php:1760
+msgid "activity"
+msgstr "activiteit"
+
+#: ../../include/text.php:2046
+msgid "Design"
+msgstr "Ontwerp"
+
+#: ../../include/text.php:2049
+msgid "Blocks"
+msgstr "Blokken"
+
+#: ../../include/text.php:2050
+msgid "Menus"
+msgstr "Menu's"
+
+#: ../../include/text.php:2051
+msgid "Layouts"
+msgstr "Lay-outs"
+
+#: ../../include/text.php:2052
+msgid "Pages"
+msgstr "Pagina's"
#: ../../include/conversation.php:126 ../../mod/like.php:89
msgid "channel"
msgstr "kanaal"
-#: ../../include/conversation.php:167 ../../mod/like.php:333
+#: ../../include/conversation.php:164 ../../include/diaspora.php:1957
+#: ../../mod/like.php:336
+#, php-format
+msgid "%1$s likes %2$s's %3$s"
+msgstr "%1$s vindt %3$s van %2$s leuk"
+
+#: ../../include/conversation.php:167 ../../mod/like.php:338
#, php-format
msgid "%1$s doesn't like %2$s's %3$s"
msgstr "%1$s vindt %3$s van %2$s niet leuk"
@@ -1702,1111 +2333,594 @@ msgctxt "mood"
msgid "%1$s is %2$s"
msgstr "%1$s is %2$s"
-#: ../../include/conversation.php:647 ../../include/ItemObject.php:114
+#: ../../include/conversation.php:638 ../../include/ItemObject.php:126
msgid "Select"
msgstr "Kies"
-#: ../../include/conversation.php:655 ../../include/ItemObject.php:89
-#: ../../mod/photos.php:850
+#: ../../include/conversation.php:646 ../../include/ItemObject.php:89
msgid "Private Message"
msgstr "Privébericht"
-#: ../../include/conversation.php:662 ../../include/ItemObject.php:182
-msgid "Message is verified"
-msgstr "Bericht is geverifieerd"
+#: ../../include/conversation.php:653 ../../include/ItemObject.php:194
+msgid "Message signature validated"
+msgstr "Berichtkenmerk gevalideerd"
+
+#: ../../include/conversation.php:654 ../../include/ItemObject.php:195
+msgid "Message signature incorrect"
+msgstr "Berichtkenmerk onjuist"
-#: ../../include/conversation.php:682
+#: ../../include/conversation.php:675
#, php-format
msgid "View %s's profile @ %s"
msgstr "Bekijk het profiel van %s @ %s"
-#: ../../include/conversation.php:696
+#: ../../include/conversation.php:690
msgid "Categories:"
msgstr "Categorieën:"
-#: ../../include/conversation.php:697
+#: ../../include/conversation.php:691
msgid "Filed under:"
msgstr "Bewaard onder:"
-#: ../../include/conversation.php:706 ../../include/ItemObject.php:250
+#: ../../include/conversation.php:699 ../../include/ItemObject.php:266
#, php-format
msgid " from %s"
msgstr " van %s"
-#: ../../include/conversation.php:709 ../../include/ItemObject.php:253
+#: ../../include/conversation.php:702 ../../include/ItemObject.php:269
#, php-format
msgid "last edited: %s"
msgstr "laatst bewerkt: %s"
-#: ../../include/conversation.php:710 ../../include/ItemObject.php:254
+#: ../../include/conversation.php:703 ../../include/ItemObject.php:270
#, php-format
msgid "Expires: %s"
msgstr "Verloopt: %s"
-#: ../../include/conversation.php:725
+#: ../../include/conversation.php:718
msgid "View in context"
msgstr "In context bekijken"
-#: ../../include/conversation.php:727 ../../include/conversation.php:1148
-#: ../../include/ItemObject.php:294 ../../mod/editblock.php:120
-#: ../../mod/editlayout.php:115 ../../mod/editpost.php:121
-#: ../../mod/editwebpage.php:152 ../../mod/photos.php:983
-#: ../../mod/mail.php:231 ../../mod/mail.php:346
+#: ../../include/conversation.php:720 ../../include/conversation.php:1143
+#: ../../include/ItemObject.php:317 ../../mod/editblock.php:152
+#: ../../mod/editlayout.php:148 ../../mod/editpost.php:121
+#: ../../mod/editwebpage.php:183 ../../mod/mail.php:238 ../../mod/mail.php:353
+#: ../../mod/photos.php:978
msgid "Please wait"
msgstr "Even wachten"
-#: ../../include/conversation.php:854
+#: ../../include/conversation.php:836
msgid "remove"
msgstr "verwijderen"
-#: ../../include/conversation.php:858
-msgid "Loading..."
-msgstr "Aan het laden..."
-
-#: ../../include/conversation.php:859
+#: ../../include/conversation.php:841
msgid "Delete Selected Items"
msgstr "Verwijder de geselecteerde items"
-#: ../../include/conversation.php:954
+#: ../../include/conversation.php:932
msgid "View Source"
msgstr "Bron weergeven"
-#: ../../include/conversation.php:955
+#: ../../include/conversation.php:933
msgid "Follow Thread"
msgstr "Conversatie volgen"
-#: ../../include/conversation.php:956
+#: ../../include/conversation.php:934
msgid "View Status"
msgstr "Status weergeven"
-#: ../../include/conversation.php:958
+#: ../../include/conversation.php:936
msgid "View Photos"
msgstr "Foto's weergeven"
-#: ../../include/conversation.php:959
+#: ../../include/conversation.php:937
msgid "Matrix Activity"
msgstr "Activiteit in de RedMatrix"
-#: ../../include/conversation.php:960 ../../include/identity.php:706
-#: ../../include/widgets.php:135 ../../include/widgets.php:175
-#: ../../include/Contact.php:107 ../../mod/directory.php:183
-#: ../../mod/dirprofile.php:164 ../../mod/suggest.php:51
-#: ../../mod/match.php:62
-msgid "Connect"
-msgstr "Verbinden"
-
-#: ../../include/conversation.php:961
+#: ../../include/conversation.php:939
msgid "Edit Contact"
msgstr "Contact bewerken"
-#: ../../include/conversation.php:962
+#: ../../include/conversation.php:940
msgid "Send PM"
msgstr "Privébericht verzenden"
-#: ../../include/conversation.php:1019
+#: ../../include/conversation.php:941 ../../include/apps.php:143
+msgid "Poke"
+msgstr "Aanstoten"
+
+#: ../../include/conversation.php:1014
#, php-format
msgid "%s likes this."
msgstr "%s vindt dit leuk."
-#: ../../include/conversation.php:1019
+#: ../../include/conversation.php:1014
#, php-format
msgid "%s doesn't like this."
msgstr "%s vindt dit niet leuk."
-#: ../../include/conversation.php:1023
+#: ../../include/conversation.php:1018
#, 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 persoon</span> vindt dit leuk."
msgstr[1] "<span %1$s>%2$d personen</span> vinden dit leuk."
-#: ../../include/conversation.php:1025
+#: ../../include/conversation.php:1020
#, 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 persoon</span> vindt dit niet leuk."
msgstr[1] "<span %1$s>%2$d personen</span> vinden dit niet leuk."
-#: ../../include/conversation.php:1031
+#: ../../include/conversation.php:1026
msgid "and"
msgstr "en"
-#: ../../include/conversation.php:1034
+#: ../../include/conversation.php:1029
#, php-format
msgid ", and %d other people"
msgid_plural ", and %d other people"
msgstr[0] ", en %d ander persoon"
msgstr[1] ", en %d andere personen"
-#: ../../include/conversation.php:1035
+#: ../../include/conversation.php:1030
#, php-format
msgid "%s like this."
msgstr "%s vinden dit leuk."
-#: ../../include/conversation.php:1035
+#: ../../include/conversation.php:1030
#, php-format
msgid "%s don't like this."
msgstr "%s vinden dit niet leuk."
-#: ../../include/conversation.php:1092
+#: ../../include/conversation.php:1087
msgid "Visible to <strong>everybody</strong>"
msgstr "Voor <strong>iedereen</strong> zichtbaar"
-#: ../../include/conversation.php:1093 ../../mod/mail.php:167
-#: ../../mod/mail.php:279
+#: ../../include/conversation.php:1088 ../../mod/mail.php:171
+#: ../../mod/mail.php:286
msgid "Please enter a link URL:"
msgstr "Vul een internetadres/URL in:"
-#: ../../include/conversation.php:1094
+#: ../../include/conversation.php:1089
msgid "Please enter a video link/URL:"
msgstr "Vul een videolink/URL in:"
-#: ../../include/conversation.php:1095
+#: ../../include/conversation.php:1090
msgid "Please enter an audio link/URL:"
msgstr "Vul een audiolink/URL in:"
-#: ../../include/conversation.php:1096
+#: ../../include/conversation.php:1091
msgid "Tag term:"
msgstr "Label:"
-#: ../../include/conversation.php:1097 ../../mod/filer.php:49
+#: ../../include/conversation.php:1092 ../../mod/filer.php:49
msgid "Save to Folder:"
msgstr "Bewaar in map: "
-#: ../../include/conversation.php:1098
+#: ../../include/conversation.php:1093
msgid "Where are you right now?"
msgstr "Waar bevind je je op dit moment?"
-#: ../../include/conversation.php:1099 ../../mod/editpost.php:52
-#: ../../mod/mail.php:168 ../../mod/mail.php:280
+#: ../../include/conversation.php:1094 ../../mod/editpost.php:52
+#: ../../mod/mail.php:172 ../../mod/mail.php:287
msgid "Expires YYYY-MM-DD HH:MM"
msgstr "Verloopt op DD-MM-YYYY om HH:MM"
-#: ../../include/conversation.php:1123 ../../mod/photos.php:982
-#: ../../mod/layouts.php:122
+#: ../../include/conversation.php:1118 ../../mod/editblock.php:198
+#: ../../mod/editlayout.php:193 ../../mod/editwebpage.php:230
+#: ../../mod/layouts.php:168 ../../mod/photos.php:977
msgid "Share"
msgstr "Delen"
-#: ../../include/conversation.php:1125 ../../mod/editwebpage.php:139
+#: ../../include/conversation.php:1120 ../../mod/editwebpage.php:170
msgid "Page link title"
msgstr "Titel van paginalink"
-#: ../../include/conversation.php:1128
+#: ../../include/conversation.php:1123
msgid "Post as"
msgstr "Bericht plaatsen als"
-#: ../../include/conversation.php:1129 ../../mod/editblock.php:112
-#: ../../mod/editlayout.php:107 ../../mod/editpost.php:113
-#: ../../mod/editwebpage.php:144 ../../mod/mail.php:228 ../../mod/mail.php:342
+#: ../../include/conversation.php:1124 ../../mod/editblock.php:144
+#: ../../mod/editlayout.php:140 ../../mod/editpost.php:113
+#: ../../mod/editwebpage.php:175 ../../mod/mail.php:235 ../../mod/mail.php:349
msgid "Upload photo"
msgstr "Foto uploaden"
-#: ../../include/conversation.php:1130
+#: ../../include/conversation.php:1125
msgid "upload photo"
msgstr "foto uploaden"
-#: ../../include/conversation.php:1131 ../../mod/editblock.php:113
-#: ../../mod/editlayout.php:108 ../../mod/editpost.php:114
-#: ../../mod/editwebpage.php:145 ../../mod/mail.php:229 ../../mod/mail.php:343
+#: ../../include/conversation.php:1126 ../../mod/editblock.php:145
+#: ../../mod/editlayout.php:141 ../../mod/editpost.php:114
+#: ../../mod/editwebpage.php:176 ../../mod/mail.php:236 ../../mod/mail.php:350
msgid "Attach file"
msgstr "Bestand toevoegen"
-#: ../../include/conversation.php:1132
+#: ../../include/conversation.php:1127
msgid "attach file"
msgstr "bestand toevoegen"
-#: ../../include/conversation.php:1133 ../../mod/editblock.php:114
-#: ../../mod/editlayout.php:109 ../../mod/editpost.php:115
-#: ../../mod/editwebpage.php:146 ../../mod/mail.php:230 ../../mod/mail.php:344
+#: ../../include/conversation.php:1128 ../../mod/editblock.php:146
+#: ../../mod/editlayout.php:142 ../../mod/editpost.php:115
+#: ../../mod/editwebpage.php:177 ../../mod/mail.php:237 ../../mod/mail.php:351
msgid "Insert web link"
msgstr "Weblink invoegen"
-#: ../../include/conversation.php:1134
+#: ../../include/conversation.php:1129
msgid "web link"
msgstr "Weblink"
-#: ../../include/conversation.php:1135
+#: ../../include/conversation.php:1130
msgid "Insert video link"
msgstr "Videolink invoegen"
-#: ../../include/conversation.php:1136
+#: ../../include/conversation.php:1131
msgid "video link"
msgstr "videolink"
-#: ../../include/conversation.php:1137
+#: ../../include/conversation.php:1132
msgid "Insert audio link"
msgstr "Audiolink invoegen"
-#: ../../include/conversation.php:1138
+#: ../../include/conversation.php:1133
msgid "audio link"
msgstr "audiolink"
-#: ../../include/conversation.php:1139 ../../mod/editblock.php:118
-#: ../../mod/editlayout.php:113 ../../mod/editpost.php:119
-#: ../../mod/editwebpage.php:150
+#: ../../include/conversation.php:1134 ../../mod/editblock.php:150
+#: ../../mod/editlayout.php:146 ../../mod/editpost.php:119
+#: ../../mod/editwebpage.php:181
msgid "Set your location"
msgstr "Locatie instellen"
-#: ../../include/conversation.php:1140
+#: ../../include/conversation.php:1135
msgid "set location"
msgstr "locatie instellen"
-#: ../../include/conversation.php:1141 ../../mod/editblock.php:119
-#: ../../mod/editlayout.php:114 ../../mod/editpost.php:120
-#: ../../mod/editwebpage.php:151
+#: ../../include/conversation.php:1136 ../../mod/editblock.php:151
+#: ../../mod/editlayout.php:147 ../../mod/editpost.php:120
+#: ../../mod/editwebpage.php:182
msgid "Clear browser location"
msgstr "Locatie van webbrowser wissen"
-#: ../../include/conversation.php:1142
+#: ../../include/conversation.php:1137
msgid "clear location"
msgstr "locatie wissen"
-#: ../../include/conversation.php:1144 ../../mod/editblock.php:132
-#: ../../mod/editlayout.php:126 ../../mod/editpost.php:132
-#: ../../mod/editwebpage.php:167
-msgid "Set title"
-msgstr "Titel instellen"
-
-#: ../../include/conversation.php:1147 ../../mod/editblock.php:135
-#: ../../mod/editlayout.php:129 ../../mod/editpost.php:134
-#: ../../mod/editwebpage.php:169
-msgid "Categories (comma-separated list)"
-msgstr "Categorieën (door komma's gescheiden lijst)"
-
-#: ../../include/conversation.php:1149 ../../mod/editblock.php:121
-#: ../../mod/editlayout.php:116 ../../mod/editpost.php:122
-#: ../../mod/editwebpage.php:153
+#: ../../include/conversation.php:1139 ../../mod/editblock.php:164
+#: ../../mod/editlayout.php:159 ../../mod/editpost.php:132
+#: ../../mod/editwebpage.php:198
+msgid "Title (optional)"
+msgstr "Titel (optioneel)"
+
+#: ../../include/conversation.php:1142 ../../mod/editblock.php:167
+#: ../../mod/editlayout.php:162 ../../mod/editpost.php:134
+#: ../../mod/editwebpage.php:200
+msgid "Categories (optional, comma-separated list)"
+msgstr "Categorieën (optioneel, door komma's gescheiden lijst)"
+
+#: ../../include/conversation.php:1144 ../../mod/editblock.php:153
+#: ../../mod/editlayout.php:149 ../../mod/editpost.php:122
+#: ../../mod/editwebpage.php:184
msgid "Permission settings"
-msgstr "Privacy-rechten"
+msgstr "Permissies"
-#: ../../include/conversation.php:1150
+#: ../../include/conversation.php:1145
msgid "permissions"
-msgstr "privacy-rechten"
+msgstr "permissies"
-#: ../../include/conversation.php:1157 ../../mod/editblock.php:129
-#: ../../mod/editlayout.php:123 ../../mod/editpost.php:129
-#: ../../mod/editwebpage.php:162
+#: ../../include/conversation.php:1152 ../../mod/editblock.php:161
+#: ../../mod/editlayout.php:156 ../../mod/editpost.php:129
+#: ../../mod/editwebpage.php:193
msgid "Public post"
msgstr "Openbaar bericht"
-#: ../../include/conversation.php:1159 ../../mod/editblock.php:136
-#: ../../mod/editlayout.php:130 ../../mod/editpost.php:135
-#: ../../mod/editwebpage.php:170
+#: ../../include/conversation.php:1154 ../../mod/editblock.php:168
+#: ../../mod/editlayout.php:163 ../../mod/editpost.php:135
+#: ../../mod/editwebpage.php:201
msgid "Example: bob@example.com, mary@example.com"
msgstr "Voorbeeld: bob@voorbeeld.nl, mary@voorbeeld.be"
-#: ../../include/conversation.php:1172 ../../mod/editblock.php:146
-#: ../../mod/editlayout.php:140 ../../mod/editpost.php:146
-#: ../../mod/editwebpage.php:179 ../../mod/mail.php:235 ../../mod/mail.php:349
+#: ../../include/conversation.php:1167 ../../mod/editblock.php:178
+#: ../../mod/editlayout.php:173 ../../mod/editpost.php:146
+#: ../../mod/editwebpage.php:210 ../../mod/mail.php:242 ../../mod/mail.php:356
msgid "Set expiration date"
msgstr "Verloopdatum instellen"
-#: ../../include/conversation.php:1174 ../../include/ItemObject.php:595
-#: ../../mod/editpost.php:148 ../../mod/mail.php:237 ../../mod/mail.php:351
+#: ../../include/conversation.php:1169 ../../include/ItemObject.php:633
+#: ../../mod/editpost.php:148 ../../mod/mail.php:244 ../../mod/mail.php:358
msgid "Encrypt text"
msgstr "Tekst versleutelen"
-#: ../../include/conversation.php:1176 ../../mod/editpost.php:150
+#: ../../include/conversation.php:1171 ../../mod/events.php:580
+#: ../../mod/editpost.php:150
msgid "OK"
msgstr "OK"
-#: ../../include/conversation.php:1177 ../../mod/settings.php:518
-#: ../../mod/settings.php:544 ../../mod/editpost.php:151
-#: ../../mod/fbrowser.php:82 ../../mod/fbrowser.php:117 ../../mod/tagrm.php:11
-#: ../../mod/tagrm.php:94
+#: ../../include/conversation.php:1172 ../../mod/settings.php:566
+#: ../../mod/settings.php:592 ../../mod/events.php:579
+#: ../../mod/editpost.php:151 ../../mod/fbrowser.php:82
+#: ../../mod/fbrowser.php:117 ../../mod/tagrm.php:11 ../../mod/tagrm.php:134
msgid "Cancel"
msgstr "Annuleren"
-#: ../../include/conversation.php:1419
+#: ../../include/conversation.php:1416
msgid "Discover"
msgstr "Ontdekken"
-#: ../../include/conversation.php:1422
+#: ../../include/conversation.php:1419
msgid "Imported public streams"
msgstr "Openbare streams importeren"
-#: ../../include/conversation.php:1427
+#: ../../include/conversation.php:1424
msgid "Commented Order"
msgstr "Nieuwe reacties bovenaan"
-#: ../../include/conversation.php:1430
+#: ../../include/conversation.php:1427
msgid "Sort by Comment Date"
msgstr "Berichten met nieuwe reacties bovenaan"
-#: ../../include/conversation.php:1434
+#: ../../include/conversation.php:1431
msgid "Posted Order"
msgstr "Nieuwe berichten bovenaan"
-#: ../../include/conversation.php:1437
+#: ../../include/conversation.php:1434
msgid "Sort by Post Date"
msgstr "Nieuwe berichten bovenaan"
-#: ../../include/conversation.php:1442 ../../include/widgets.php:89
+#: ../../include/conversation.php:1439 ../../include/widgets.php:94
msgid "Personal"
msgstr "Persoonlijk"
-#: ../../include/conversation.php:1445
+#: ../../include/conversation.php:1442
msgid "Posts that mention or involve you"
msgstr "Alleen berichten die jou vermelden of waar je op een andere manier bij betrokken bent"
-#: ../../include/conversation.php:1451 ../../mod/connections.php:211
-#: ../../mod/connections.php:224 ../../mod/menu.php:61
+#: ../../include/conversation.php:1448 ../../mod/connections.php:211
+#: ../../mod/connections.php:224 ../../mod/menu.php:80
msgid "New"
msgstr "Nieuw"
-#: ../../include/conversation.php:1454
+#: ../../include/conversation.php:1451
msgid "Activity Stream - by date"
msgstr "Activiteitenstroom - volgens datum"
-#: ../../include/conversation.php:1460
+#: ../../include/conversation.php:1457
msgid "Starred"
msgstr "Met ster"
-#: ../../include/conversation.php:1463
+#: ../../include/conversation.php:1460
msgid "Favourite Posts"
msgstr "Favoriete berichten"
-#: ../../include/conversation.php:1470
+#: ../../include/conversation.php:1467
msgid "Spam"
msgstr "Spam"
-#: ../../include/conversation.php:1473
+#: ../../include/conversation.php:1470
msgid "Posts flagged as SPAM"
msgstr "Berichten gemarkeerd als SPAM"
-#: ../../include/conversation.php:1509 ../../mod/admin.php:864
+#: ../../include/conversation.php:1510 ../../mod/admin.php:865
msgid "Channel"
msgstr "Kanaal"
-#: ../../include/conversation.php:1512
+#: ../../include/conversation.php:1513
msgid "Status Messages and Posts"
msgstr "Berichten in dit kanaal"
-#: ../../include/conversation.php:1521
+#: ../../include/conversation.php:1522
msgid "About"
msgstr "Over"
-#: ../../include/conversation.php:1524
+#: ../../include/conversation.php:1525
msgid "Profile Details"
msgstr "Profiel"
-#: ../../include/conversation.php:1542
+#: ../../include/conversation.php:1534 ../../include/photos.php:341
+msgid "Photo Albums"
+msgstr "Fotoalbums"
+
+#: ../../include/conversation.php:1543
msgid "Files and Storage"
msgstr "Bestanden en opslagruimte"
-#: ../../include/conversation.php:1551 ../../include/conversation.php:1554
+#: ../../include/conversation.php:1553 ../../include/conversation.php:1556
msgid "Chatrooms"
msgstr "Chatkanalen"
-#: ../../include/conversation.php:1564
+#: ../../include/conversation.php:1569
msgid "Saved Bookmarks"
msgstr "Opgeslagen bladwijzers"
-#: ../../include/conversation.php:1575
+#: ../../include/conversation.php:1580
msgid "Manage Webpages"
msgstr "Webpagina's beheren"
-#: ../../include/features.php:23
-msgid "General Features"
-msgstr "Algemene functies"
-
-#: ../../include/features.php:25
-msgid "Content Expiration"
-msgstr "Inhoud laten verlopen"
-
-#: ../../include/features.php:25
-msgid "Remove posts/comments and/or private messages at a future time"
-msgstr "Berichten, reacties en/of privéberichten na een bepaalde tijd verwijderen"
-
-#: ../../include/features.php:26
-msgid "Multiple Profiles"
-msgstr "Meerdere profielen"
-
-#: ../../include/features.php:26
-msgid "Ability to create multiple profiles"
-msgstr "Mogelijkheid om meerdere profielen aan te maken"
-
-#: ../../include/features.php:27
-msgid "Advanced Profiles"
-msgstr "Geavanceerde profielen"
-
-#: ../../include/features.php:27
-msgid "Additional profile sections and selections"
-msgstr "Extra onderdelen en keuzes voor je profiel"
-
-#: ../../include/features.php:28
-msgid "Profile Import/Export"
-msgstr "Profiel importen/exporteren"
-
-#: ../../include/features.php:28
-msgid "Save and load profile details across sites/channels"
-msgstr "Profielgegevens opslaan en in andere hubs/kanalen gebruiken."
-
-#: ../../include/features.php:29
-msgid "Web Pages"
-msgstr "Webpagina's"
-
-#: ../../include/features.php:29
-msgid "Provide managed web pages on your channel"
-msgstr "Sta beheerde webpagina's op jouw kanaal toe"
-
-#: ../../include/features.php:30
-msgid "Private Notes"
-msgstr "Privé-aantekeningen"
-
-#: ../../include/features.php:30
-msgid "Enables a tool to store notes and reminders"
-msgstr "Schakelt een eenvoudige toepassing in om aantekeningen en herinneringen in op te slaan"
-
-#: ../../include/features.php:34
-msgid "Navigation Channel Select"
-msgstr "Kanaal kiezen in navigatiemenu"
-
-#: ../../include/features.php:34
-msgid "Change channels directly from within the navigation dropdown menu"
-msgstr "Kies een ander kanaal direct vanuit het dropdown-menu op de navigatiebalk"
-
-#: ../../include/features.php:38
-msgid "Extended Identity Sharing"
-msgstr "Uitgebreid identiteit delen"
-
-#: ../../include/features.php:38
-msgid ""
-"Share your identity with all websites on the internet. When disabled, "
-"identity is only shared with sites in the matrix."
-msgstr "Deel jouw RedMatrix-identiteit met alle websites op het internet. Wanneer dit is uitgeschakeld wordt je identiteit alleen binnen het RedMatrix-netwerk gedeeld. Schakel dit alleen als je weet wat je doet."
-
-#: ../../include/features.php:39
-msgid "Expert Mode"
-msgstr "Expertmodus"
-
-#: ../../include/features.php:39
-msgid "Enable Expert Mode to provide advanced configuration options"
-msgstr "Schakel de expertmodus in voor geavanceerde instellingen"
-
-#: ../../include/features.php:40
-msgid "Premium Channel"
-msgstr "Premiumkanaal"
-
-#: ../../include/features.php:40
-msgid ""
-"Allows you to set restrictions and terms on those that connect with your "
-"channel"
-msgstr "Stelt je in staat om beperkingen en voorwaarden in te stellen voor jouw kanaal"
-
-#: ../../include/features.php:45
-msgid "Post Composition Features"
-msgstr "Functies voor het opstellen van berichten"
-
-#: ../../include/features.php:47
-msgid "Use Markdown"
-msgstr "Markdown gebruiken"
-
-#: ../../include/features.php:47
-msgid "Allow use of \"Markdown\" to format posts"
-msgstr "Sta het gebruik van \"markdown\" toe om berichten mee op te maken."
-
-#: ../../include/features.php:48
-msgid "Post Preview"
-msgstr "Voorvertoning"
-
-#: ../../include/features.php:48
-msgid "Allow previewing posts and comments before publishing them"
-msgstr "Een optie om je berichten en reacties voor het definitief publiceren voor te vertonen"
-
-#: ../../include/features.php:49 ../../include/widgets.php:510
-#: ../../mod/sources.php:88
-msgid "Channel Sources"
-msgstr "Kanaalbronnen"
-
-#: ../../include/features.php:49
-msgid "Automatically import channel content from other channels or feeds"
-msgstr "Automatisch inhoud uit andere kanalen of feeds importeren."
-
-#: ../../include/features.php:50
-msgid "Even More Encryption"
-msgstr "Extra encryptie"
-
-#: ../../include/features.php:50
-msgid ""
-"Allow optional encryption of content end-to-end with a shared secret key"
-msgstr "Sta toe dat inhoud extra end-to-end wordt versleuteld met een gedeelde geheime sleutel."
-
-#: ../../include/features.php:55
-msgid "Network and Stream Filtering"
-msgstr "Netwerk- en streamfilter"
-
-#: ../../include/features.php:56
-msgid "Search by Date"
-msgstr "Zoek op datum"
-
-#: ../../include/features.php:56
-msgid "Ability to select posts by date ranges"
-msgstr "Mogelijkheid om berichten op datum te filteren "
-
-#: ../../include/features.php:57
-msgid "Collections Filter"
-msgstr "Filter op collecties"
-
-#: ../../include/features.php:57
-msgid "Enable widget to display Network posts only from selected collections"
-msgstr "Sta de widget toe om netwerkberichten te tonen van bepaalde collecties"
-
-#: ../../include/features.php:58 ../../include/widgets.php:272
-msgid "Saved Searches"
-msgstr "Opgeslagen zoekopdrachten"
-
-#: ../../include/features.php:58
-msgid "Save search terms for re-use"
-msgstr "Sla zoekopdrachten op voor hergebruik"
-
-#: ../../include/features.php:59
-msgid "Network Personal Tab"
-msgstr "Persoonlijke netwerktab"
-
-#: ../../include/features.php:59
-msgid "Enable tab to display only Network posts that you've interacted on"
-msgstr "Sta het toe dat de tab netwerkberichten toont waarmee je interactie had"
-
-#: ../../include/features.php:60
-msgid "Network New Tab"
-msgstr "Nieuwe netwerktab"
-
-#: ../../include/features.php:60
-msgid "Enable tab to display all new Network activity"
-msgstr "Laat de tab alle nieuwe netwerkactiviteit tonen"
-
-#: ../../include/features.php:61
-msgid "Affinity Tool"
-msgstr "Verwantschapsfilter"
-
-#: ../../include/features.php:61
-msgid "Filter stream activity by depth of relationships"
-msgstr "Filter wat je in de Matrix ziet op hoe goed je iemand kent of mag"
-
-#: ../../include/features.php:62
-msgid "Suggest Channels"
-msgstr "Kanalen voorstellen"
-
-#: ../../include/features.php:62
-msgid "Show channel suggestions"
-msgstr "Voor jou mogelijk interessante kanalen voorstellen"
-
-#: ../../include/features.php:67
-msgid "Post/Comment Tools"
-msgstr "Bericht- en reactiehulpmiddelen"
-
-#: ../../include/features.php:69
-msgid "Edit Sent Posts"
-msgstr "Bewerk verzonden berichten"
-
-#: ../../include/features.php:69
-msgid "Edit and correct posts and comments after sending"
-msgstr "Bewerk en corrigeer berichten en reacties nadat deze zijn verzonden"
-
-#: ../../include/features.php:70
-msgid "Tagging"
-msgstr "Labelen"
+#: ../../include/account.php:23
+msgid "Not a valid email address"
+msgstr "Geen geldig e-mailadres"
-#: ../../include/features.php:70
-msgid "Ability to tag existing posts"
-msgstr "Mogelijkheid om bestaande berichten te labelen"
+#: ../../include/account.php:25
+msgid "Your email domain is not among those allowed on this site"
+msgstr "Jouw e-maildomein is op deze RedMatrix-hub niet toegestaan"
-#: ../../include/features.php:71
-msgid "Post Categories"
-msgstr "Categorieën berichten"
+#: ../../include/account.php:31
+msgid "Your email address is already registered at this site."
+msgstr "Jouw e-mailadres is al op deze RedMatrix-hub geregistreerd."
-#: ../../include/features.php:71
-msgid "Add categories to your posts"
-msgstr "Voeg categorieën toe aan je berichten"
+#: ../../include/account.php:64
+msgid "An invitation is required."
+msgstr "Een uitnodiging is vereist"
-#: ../../include/features.php:72
-msgid "Ability to file posts under folders"
-msgstr "Mogelijkheid om berichten in mappen op te slaan"
+#: ../../include/account.php:68
+msgid "Invitation could not be verified."
+msgstr "Uitnodiging kon niet geverifieerd worden"
-#: ../../include/features.php:73
-msgid "Dislike Posts"
-msgstr "Vind berichten niet leuk"
+#: ../../include/account.php:119
+msgid "Please enter the required information."
+msgstr "Vul de vereiste informatie in."
-#: ../../include/features.php:73
-msgid "Ability to dislike posts/comments"
-msgstr "Mogelijkheid om berichten en reacties niet leuk te vinden"
+#: ../../include/account.php:187
+msgid "Failed to store account information."
+msgstr "Account-informatie kon niet opgeslagen worden."
-#: ../../include/features.php:74
-msgid "Star Posts"
-msgstr "Geef berichten een ster"
+#: ../../include/account.php:245
+#, php-format
+msgid "Registration confirmation for %s"
+msgstr "Registratiebevestiging voor %s"
-#: ../../include/features.php:74
-msgid "Ability to mark special posts with a star indicator"
-msgstr "Mogelijkheid om speciale berichten met een ster te markeren"
+#: ../../include/account.php:313
+#, php-format
+msgid "Registration request at %s"
+msgstr "Registratiebevestiging voor %s"
-#: ../../include/features.php:75
-msgid "Tag Cloud"
-msgstr "Wolk met trefwoorden/labels"
+#: ../../include/account.php:315 ../../include/account.php:342
+#: ../../include/account.php:399
+msgid "Administrator"
+msgstr "Beheerder"
-#: ../../include/features.php:75
-msgid "Provide a personal tag cloud on your channel page"
-msgstr "Zorgt voor een persoonlijke wolk met trefwoorden of labels op jouw kanaalpagina"
+#: ../../include/account.php:337
+msgid "your registration password"
+msgstr "jouw registratiewachtwoord"
-#: ../../include/follow.php:23
-msgid "Channel is blocked on this site."
-msgstr "Kanaal is op deze hub geblokkeerd."
+#: ../../include/account.php:340 ../../include/account.php:397
+#, php-format
+msgid "Registration details for %s"
+msgstr "Registratiegegevens voor %s"
-#: ../../include/follow.php:28
-msgid "Channel location missing."
-msgstr "Ontbrekende kanaallocatie."
+#: ../../include/account.php:406
+msgid "Account approved."
+msgstr "Account goedgekeurd"
-#: ../../include/follow.php:54
-msgid "Response from remote channel was incomplete."
-msgstr "Antwoord van het kanaal op afstand was niet volledig."
+#: ../../include/account.php:440
+#, php-format
+msgid "Registration revoked for %s"
+msgstr "Registratie ingetrokken voor %s"
-#: ../../include/follow.php:85
-msgid "Channel was deleted and no longer exists."
-msgstr "Kanaal is verwijderd en bestaat niet meer."
+#: ../../include/account.php:486
+msgid "Account verified. Please login."
+msgstr "Account is geverifieerd. Je kan inloggen."
-#: ../../include/follow.php:143
-msgid "Channel discovery failed."
-msgstr "Kanaal ontdekken mislukt."
+#: ../../include/account.php:648 ../../include/account.php:650
+msgid "Click here to upgrade."
+msgstr "Klik hier om te upgraden."
-#: ../../include/follow.php:160
-msgid "local account not found."
-msgstr "lokale account niet gevonden."
+#: ../../include/account.php:656
+msgid "This action exceeds the limits set by your subscription plan."
+msgstr "Deze handeling overschrijdt de beperkingen die voor jouw abonnement gelden."
-#: ../../include/follow.php:169
-msgid "Cannot connect to yourself."
-msgstr "Kan niet met jezelf verbinden"
+#: ../../include/account.php:661
+msgid "This action is not available under your subscription plan."
+msgstr "Deze handeling is niet mogelijk met jouw abonnement."
-#: ../../include/chat.php:10
-msgid "Missing room name"
-msgstr "Naam chatkanaal ontbreekt"
+#: ../../include/photos.php:105
+#, php-format
+msgid "Image exceeds website size limit of %lu bytes"
+msgstr "Afbeelding is groter dan op deze hub toegestane limiet van %lu bytes"
-#: ../../include/chat.php:19
-msgid "Duplicate room name"
-msgstr "Naam chatkanaal bestaat al"
+#: ../../include/photos.php:112
+msgid "Image file is empty."
+msgstr "Afbeeldingsbestand is leeg"
-#: ../../include/chat.php:68 ../../include/chat.php:76
-msgid "Invalid room specifier."
-msgstr "Ongeldige omschrijving chatkanaal"
+#: ../../include/photos.php:141 ../../mod/profile_photo.php:216
+msgid "Unable to process image"
+msgstr "Afbeelding kan niet verwerkt worden"
-#: ../../include/chat.php:105
-msgid "Room not found."
-msgstr "Chatkanaal niet gevonden"
+#: ../../include/photos.php:213
+msgid "Photo storage failed."
+msgstr "Foto kan niet worden opgeslagen"
-#: ../../include/chat.php:126
-msgid "Room is full"
-msgstr "Chatkanaal is vol"
+#: ../../include/photos.php:345
+msgid "Upload New Photos"
+msgstr "Nieuwe foto's uploaden"
-#: ../../include/items.php:315 ../../mod/profperm.php:23
-#: ../../mod/subthread.php:49 ../../mod/group.php:68 ../../mod/like.php:242
-#: ../../index.php:360
+#: ../../include/items.php:382 ../../mod/profperm.php:23
+#: ../../mod/subthread.php:49 ../../mod/like.php:246 ../../mod/group.php:68
+#: ../../index.php:389
msgid "Permission denied"
msgstr "Toegang geweigerd"
-#: ../../include/items.php:858
+#: ../../include/items.php:969 ../../include/items.php:1014
msgid "(Unknown)"
msgstr "(Onbekend)"
-#: ../../include/items.php:990
+#: ../../include/items.php:1171
msgid "Visible to anybody on the internet."
msgstr "Voor iedereen op het internet zichtbaar."
-#: ../../include/items.php:992
+#: ../../include/items.php:1173
msgid "Visible to you only."
msgstr "Alleen voor jou zichtbaar."
-#: ../../include/items.php:994
+#: ../../include/items.php:1175
msgid "Visible to anybody in this network."
msgstr "Voor iedereen in dit netwerk zichtbaar."
-#: ../../include/items.php:996
+#: ../../include/items.php:1177
msgid "Visible to anybody authenticated."
msgstr "Voor iedereen die geauthenticeerd is zichtbaar."
-#: ../../include/items.php:998
+#: ../../include/items.php:1179
#, php-format
msgid "Visible to anybody on %s."
msgstr "Voor iedereen op %s zichtbaar."
-#: ../../include/items.php:1000
+#: ../../include/items.php:1181
msgid "Visible to all connections."
msgstr "Voor alle connecties zichtbaar."
-#: ../../include/items.php:1002
+#: ../../include/items.php:1183
msgid "Visible to approved connections."
msgstr "Voor alle goedgekeurde connecties zichtbaar."
-#: ../../include/items.php:1004
+#: ../../include/items.php:1185
msgid "Visible to specific connections."
msgstr "Voor specifieke connecties zichtbaar."
-#: ../../include/items.php:3630 ../../mod/home.php:67 ../../mod/display.php:32
-#: ../../mod/filestorage.php:18 ../../mod/admin.php:168
-#: ../../mod/admin.php:895 ../../mod/admin.php:1098 ../../mod/thing.php:78
-#: ../../mod/viewsrc.php:18
+#: ../../include/items.php:3952 ../../mod/thing.php:76
+#: ../../mod/display.php:32 ../../mod/filestorage.php:26
+#: ../../mod/admin.php:168 ../../mod/admin.php:896 ../../mod/admin.php:1099
+#: ../../mod/viewsrc.php:20
msgid "Item not found."
msgstr "Item niet gevonden."
-#: ../../include/items.php:4063 ../../mod/group.php:38 ../../mod/group.php:140
+#: ../../include/items.php:4410 ../../mod/group.php:38 ../../mod/group.php:140
msgid "Collection not found."
msgstr "Collectie niet gevonden."
-#: ../../include/items.php:4078
+#: ../../include/items.php:4425
msgid "Collection is empty."
msgstr "Collectie is leeg"
-#: ../../include/items.php:4085
+#: ../../include/items.php:4432
#, php-format
msgid "Collection: %s"
msgstr "Collectie: %s"
-#: ../../include/items.php:4096
+#: ../../include/items.php:4443
#, php-format
msgid "Connection: %s"
msgstr "Connectie: %s"
-#: ../../include/items.php:4099
+#: ../../include/items.php:4446
msgid "Connection not found."
msgstr "Connectie niet gevonden."
-#: ../../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 "Een verwijderde collectie met deze naam is gereactiveerd. Bestaande itemrechten <strong>kunnen</strong> van toepassing zijn op deze collectie en toekomstige leden. Wanneer je dit niet zo bedoeld hebt, moet je een nieuwe collectie met een andere naam aanmaken."
-
-#: ../../include/group.php:234
-msgid "Default privacy group for new contacts"
-msgstr "Standaard privacy-collectie voor nieuwe kanalen"
-
-#: ../../include/group.php:253 ../../mod/admin.php:735
-msgid "All Channels"
-msgstr "Alle kanalen"
-
-#: ../../include/group.php:275
-msgid "edit"
-msgstr "bewerken"
-
-#: ../../include/group.php:296
-msgid "Collections"
-msgstr "Collecties"
-
-#: ../../include/group.php:297
-msgid "Edit collection"
-msgstr "Collectie bewerken"
-
-#: ../../include/group.php:298
-msgid "Create a new collection"
-msgstr "Nieuwe collectie aanmaken"
-
-#: ../../include/group.php:299
-msgid "Channels not in any collection"
-msgstr "Kanalen die zich in geen enkele collectie bevinden"
-
-#: ../../include/group.php:301 ../../include/widgets.php:273
-msgid "add"
-msgstr "toevoegen"
-
-#: ../../include/identity.php:30 ../../mod/item.php:1296
-msgid "Unable to obtain identity information from database"
-msgstr "Niet in staat om identiteitsinformatie uit de database te verkrijgen"
-
-#: ../../include/identity.php:63
-msgid "Empty name"
-msgstr "Ontbrekende naam"
-
-#: ../../include/identity.php:65
-msgid "Name too long"
-msgstr "Naam te lang"
-
-#: ../../include/identity.php:166
-msgid "No account identifier"
-msgstr "Geen account-identificator"
-
-#: ../../include/identity.php:176
-msgid "Nickname is required."
-msgstr "Bijnaam is verplicht"
-
-#: ../../include/identity.php:190
-msgid "Reserved nickname. Please choose another."
-msgstr "Deze naam is gereserveerd. Kies een andere."
-
-#: ../../include/identity.php:195
-msgid ""
-"Nickname has unsupported characters or is already being used on this site."
-msgstr "Deze naam heeft niet ondersteunde karakters of is al op deze hub in gebruik."
-
-#: ../../include/identity.php:258
-msgid "Unable to retrieve created identity"
-msgstr "Niet in staat om aangemaakte identiteit te vinden"
-
-#: ../../include/identity.php:317
-msgid "Default Profile"
-msgstr "Standaardprofiel"
-
-#: ../../include/identity.php:342 ../../include/widgets.php:407
-#: ../../include/profile_selectors.php:80 ../../mod/connedit.php:473
-msgid "Friends"
-msgstr "Vrienden"
-
-#: ../../include/identity.php:509
-msgid "Requested channel is not available."
-msgstr "Opgevraagd kanaal is niet beschikbaar."
-
-#: ../../include/identity.php:557 ../../mod/achievements.php:8
-#: ../../mod/profile.php:16 ../../mod/blocks.php:10 ../../mod/connect.php:13
-#: ../../mod/filestorage.php:40 ../../mod/layouts.php:8
-#: ../../mod/webpages.php:8 ../../mod/hcard.php:8
-msgid "Requested profile is not available."
-msgstr "Opgevraagd profiel is niet beschikbaar"
-
-#: ../../include/identity.php:720 ../../mod/profiles.php:750
-msgid "Change profile photo"
-msgstr "Profielfoto veranderen"
-
-#: ../../include/identity.php:726
-msgid "Profiles"
-msgstr "Profielen"
-
-#: ../../include/identity.php:726
-msgid "Manage/edit profiles"
-msgstr "Profielen beheren/bewerken"
-
-#: ../../include/identity.php:727 ../../mod/profiles.php:751
-msgid "Create New Profile"
-msgstr "Nieuw profiel aanmaken"
-
-#: ../../include/identity.php:741 ../../mod/profiles.php:762
-msgid "Profile Image"
-msgstr "Profielfoto"
-
-#: ../../include/identity.php:744
-msgid "visible to everybody"
-msgstr "Voor iedereen zichtbaar"
-
-#: ../../include/identity.php:745 ../../mod/profiles.php:645
-#: ../../mod/profiles.php:766
-msgid "Edit visibility"
-msgstr "Zichtbaarheid bewerken"
-
-#: ../../include/identity.php:759 ../../include/identity.php:1001
-#: ../../mod/directory.php:158
-msgid "Gender:"
-msgstr "Geslacht:"
-
-#: ../../include/identity.php:760 ../../include/identity.php:1045
-#: ../../mod/directory.php:160
-msgid "Status:"
-msgstr "Status:"
-
-#: ../../include/identity.php:761 ../../include/identity.php:1056
-#: ../../mod/directory.php:162
-msgid "Homepage:"
-msgstr "Homepagina:"
-
-#: ../../include/identity.php:762 ../../mod/dirprofile.php:151
-msgid "Online Now"
-msgstr "Nu online"
-
-#: ../../include/identity.php:845 ../../include/identity.php:925
-#: ../../mod/ping.php:298
-msgid "g A l F d"
-msgstr "G:i, l d F"
-
-#: ../../include/identity.php:846 ../../include/identity.php:926
-msgid "F d"
-msgstr "d F"
-
-#: ../../include/identity.php:891 ../../include/identity.php:966
-#: ../../mod/ping.php:320
-msgid "[today]"
-msgstr "[vandaag]"
-
-#: ../../include/identity.php:903
-msgid "Birthday Reminders"
-msgstr "Verjaardagsherinneringen"
-
-#: ../../include/identity.php:904
-msgid "Birthdays this week:"
-msgstr "Verjaardagen deze week:"
-
-#: ../../include/identity.php:959
-msgid "[No description]"
-msgstr "[Geen omschrijving]"
-
-#: ../../include/identity.php:977
-msgid "Event Reminders"
-msgstr "Herinneringen voor gebeurtenissen"
-
-#: ../../include/identity.php:978
-msgid "Events this week:"
-msgstr "Gebeurtenissen deze week:"
-
-#: ../../include/identity.php:999 ../../mod/settings.php:943
-msgid "Full Name:"
-msgstr "Volledige naam:"
-
-#: ../../include/identity.php:1006
-msgid "Like this channel"
-msgstr "Vind dit kanaal leuk"
-
-#: ../../include/identity.php:1030
-msgid "j F, Y"
-msgstr "F j Y"
-
-#: ../../include/identity.php:1031
-msgid "j F"
-msgstr "F j"
-
-#: ../../include/identity.php:1038
-msgid "Birthday:"
-msgstr "Geboortedatum:"
-
-#: ../../include/identity.php:1042
-msgid "Age:"
-msgstr "Leeftijd:"
-
-#: ../../include/identity.php:1051
-#, php-format
-msgid "for %1$d %2$s"
-msgstr "voor %1$d %2$s"
-
-#: ../../include/identity.php:1054 ../../mod/profiles.php:667
-msgid "Sexual Preference:"
-msgstr "Seksuele voorkeur:"
-
-#: ../../include/identity.php:1058 ../../mod/profiles.php:669
-msgid "Hometown:"
-msgstr "Oorspronkelijk uit:"
-
-#: ../../include/identity.php:1060
-msgid "Tags:"
-msgstr "Trefwoorden:"
-
-#: ../../include/identity.php:1062 ../../mod/profiles.php:670
-msgid "Political Views:"
-msgstr "Politieke overtuigingen:"
-
-#: ../../include/identity.php:1064
-msgid "Religion:"
-msgstr "Religie:"
-
-#: ../../include/identity.php:1066 ../../mod/directory.php:164
-msgid "About:"
-msgstr "Over:"
-
-#: ../../include/identity.php:1068
-msgid "Hobbies/Interests:"
-msgstr "Hobby's/interesses:"
-
-#: ../../include/identity.php:1070 ../../mod/profiles.php:673
-msgid "Likes:"
-msgstr "Houdt van:"
-
-#: ../../include/identity.php:1072 ../../mod/profiles.php:674
-msgid "Dislikes:"
-msgstr "Houdt niet van:"
-
-#: ../../include/identity.php:1075
-msgid "Contact information and Social Networks:"
-msgstr "Contactinformatie en sociale netwerken:"
-
-#: ../../include/identity.php:1077
-msgid "My other channels:"
-msgstr "Mijn andere kanalen"
-
-#: ../../include/identity.php:1079
-msgid "Musical interests:"
-msgstr "Muzikale interesses:"
-
-#: ../../include/identity.php:1081
-msgid "Books, literature:"
-msgstr "Boeken, literatuur:"
-
-#: ../../include/identity.php:1083
-msgid "Television:"
-msgstr "Televisie:"
-
-#: ../../include/identity.php:1085
-msgid "Film/dance/culture/entertainment:"
-msgstr "Films/dansen/cultuur/vermaak:"
-
-#: ../../include/identity.php:1087
-msgid "Love/Romance:"
-msgstr "Liefde/romantiek:"
-
-#: ../../include/identity.php:1089
-msgid "Work/employment:"
-msgstr "Werk/beroep:"
-
-#: ../../include/identity.php:1091
-msgid "School/education:"
-msgstr "School/opleiding:"
-
-#: ../../include/identity.php:1111
-msgid "Like this thing"
-msgstr "Vind dit ding leuk"
-
-#: ../../include/bbcode.php:112 ../../include/bbcode.php:645
-#: ../../include/bbcode.php:648 ../../include/bbcode.php:653
-#: ../../include/bbcode.php:656 ../../include/bbcode.php:659
-#: ../../include/bbcode.php:662 ../../include/bbcode.php:667
-#: ../../include/bbcode.php:670 ../../include/bbcode.php:675
-#: ../../include/bbcode.php:678 ../../include/bbcode.php:681
-#: ../../include/bbcode.php:684
-msgid "Image/photo"
-msgstr "Afbeelding/foto"
-
-#: ../../include/bbcode.php:147 ../../include/bbcode.php:695
-msgid "Encrypted content"
-msgstr "Versleutelde inhoud"
-
-#: ../../include/bbcode.php:163
-msgid "QR code"
-msgstr "QR-code"
-
-#: ../../include/bbcode.php:212
-#, php-format
-msgid "%1$s wrote the following %2$s %3$s"
-msgstr "%1$s schreef het volgende %2$s %3$s"
-
-#: ../../include/bbcode.php:214
-msgid "post"
-msgstr "bericht"
-
-#: ../../include/bbcode.php:613 ../../include/bbcode.php:633
-msgid "$1 wrote:"
-msgstr "$1 schreef:"
-
-#: ../../include/message.php:18
-msgid "No recipient provided."
-msgstr "Geen ontvanger opgegeven."
-
-#: ../../include/message.php:23
-msgid "[no subject]"
-msgstr "[geen onderwerp]"
-
-#: ../../include/message.php:42
-msgid "Unable to determine sender."
-msgstr "Afzender kan niet bepaald worden."
-
-#: ../../include/message.php:143
-msgid "Stored post could not be verified."
-msgstr "Opgeslagen bericht kon niet worden geverifieerd."
-
-#: ../../include/widgets.php:87
+#: ../../include/widgets.php:92
msgid "System"
msgstr "Systeem"
-#: ../../include/widgets.php:90
+#: ../../include/widgets.php:95
msgid "Create Personal App"
msgstr "Persoonlijke app maken"
-#: ../../include/widgets.php:91
+#: ../../include/widgets.php:96
msgid "Edit Personal App"
msgstr "Persoonlijke app bewerken"
-#: ../../include/widgets.php:137 ../../mod/suggest.php:53
+#: ../../include/widgets.php:138 ../../mod/suggest.php:53
msgid "Ignore/Hide"
msgstr "Negeren/Verbergen"
@@ -2835,267 +2949,136 @@ msgstr "Vul het adres van het nieuwe kanaal in"
msgid "Example: bob@example.com, http://example.com/barbara"
msgstr "Voorbeeld: bob@example.com, http://example.com/barbara"
-#: ../../include/widgets.php:191
+#: ../../include/widgets.php:190
msgid "Notes"
msgstr "Aantekeningen"
-#: ../../include/widgets.php:263
+#: ../../include/widgets.php:260
msgid "Remove term"
msgstr "Verwijder zoekterm"
-#: ../../include/widgets.php:342
+#: ../../include/widgets.php:343
msgid "Archives"
msgstr "Archieven"
-#: ../../include/widgets.php:404
+#: ../../include/widgets.php:421
msgid "Refresh"
msgstr "Vernieuwen"
-#: ../../include/widgets.php:405 ../../mod/connedit.php:470
+#: ../../include/widgets.php:422 ../../mod/connedit.php:506
msgid "Me"
msgstr "Ik"
-#: ../../include/widgets.php:406 ../../mod/connedit.php:472
+#: ../../include/widgets.php:423 ../../mod/connedit.php:509
msgid "Best Friends"
msgstr "Goede vrienden"
-#: ../../include/widgets.php:408
+#: ../../include/widgets.php:425
msgid "Co-workers"
msgstr "Collega's"
-#: ../../include/widgets.php:409 ../../mod/connedit.php:474
+#: ../../include/widgets.php:426 ../../mod/connedit.php:511
msgid "Former Friends"
msgstr "Oude vrienden"
-#: ../../include/widgets.php:410 ../../mod/connedit.php:475
+#: ../../include/widgets.php:427 ../../mod/connedit.php:512
msgid "Acquaintances"
msgstr "Kennissen"
-#: ../../include/widgets.php:411
+#: ../../include/widgets.php:428
msgid "Everybody"
msgstr "Iedereen"
-#: ../../include/widgets.php:443
+#: ../../include/widgets.php:462
msgid "Account settings"
msgstr "Account"
-#: ../../include/widgets.php:449
+#: ../../include/widgets.php:468
msgid "Channel settings"
msgstr "Kanaal"
-#: ../../include/widgets.php:455
+#: ../../include/widgets.php:474
msgid "Additional features"
msgstr "Extra functies"
-#: ../../include/widgets.php:461
+#: ../../include/widgets.php:480
msgid "Feature settings"
msgstr "Plug-ins"
-#: ../../include/widgets.php:467
+#: ../../include/widgets.php:486
msgid "Display settings"
msgstr "Weergave"
-#: ../../include/widgets.php:473
+#: ../../include/widgets.php:492
msgid "Connected apps"
msgstr "Verbonden applicaties"
-#: ../../include/widgets.php:479
+#: ../../include/widgets.php:498
msgid "Export channel"
msgstr "Kanaal exporteren"
-#: ../../include/widgets.php:491
-msgid "Automatic Permissions (Advanced)"
-msgstr "Automatische privacy-rechten (geavanceerd)"
+#: ../../include/widgets.php:504
+msgid "Export content"
+msgstr "Inhoud exporteren"
+
+#: ../../include/widgets.php:512 ../../mod/connedit.php:539
+msgid "Connection Default Permissions"
+msgstr "Standaard permissies voor connecties"
-#: ../../include/widgets.php:501
+#: ../../include/widgets.php:520
msgid "Premium Channel Settings"
msgstr "Instellingen premiumkanaal"
-#: ../../include/widgets.php:538
+#: ../../include/widgets.php:549 ../../mod/mail.php:125
+#: ../../mod/message.php:31
+msgid "Messages"
+msgstr "Berichten"
+
+#: ../../include/widgets.php:552
msgid "Check Mail"
msgstr "Controleer op nieuwe berichten"
-#: ../../include/widgets.php:619
+#: ../../include/widgets.php:635
msgid "Chat Rooms"
msgstr "Chatkanalen"
-#: ../../include/widgets.php:637
+#: ../../include/widgets.php:655
msgid "Bookmarked Chatrooms"
msgstr "Bladwijzers van chatkanalen"
-#: ../../include/widgets.php:655
+#: ../../include/widgets.php:675
msgid "Suggested Chatrooms"
msgstr "Voorgestelde chatkanalen"
-#: ../../include/ItemObject.php:118
-msgid "Save to Folder"
-msgstr "In map opslaan"
-
-#: ../../include/ItemObject.php:130 ../../include/ItemObject.php:142
-msgid "View all"
-msgstr "Toon alles"
-
-#: ../../include/ItemObject.php:139
-msgctxt "noun"
-msgid "Dislike"
-msgid_plural "Dislikes"
-msgstr[0] "vindt dit niet leuk"
-msgstr[1] "vinden dit niet leuk"
-
-#: ../../include/ItemObject.php:167
-msgid "Add Star"
-msgstr "Ster toevoegen"
-
-#: ../../include/ItemObject.php:168
-msgid "Remove Star"
-msgstr "Ster verwijderen"
-
-#: ../../include/ItemObject.php:169
-msgid "Toggle Star Status"
-msgstr "Ster toevoegen of verwijderen"
+#: ../../include/widgets.php:802 ../../include/widgets.php:860
+msgid "photo/image"
+msgstr "foto/afbeelding"
-#: ../../include/ItemObject.php:173
-msgid "starred"
-msgstr "met ster"
-
-#: ../../include/ItemObject.php:190
-msgid "Add Tag"
-msgstr "Label toevoegen"
-
-#: ../../include/ItemObject.php:208 ../../mod/photos.php:980
-msgid "I like this (toggle)"
-msgstr "Vind ik leuk"
-
-#: ../../include/ItemObject.php:209 ../../mod/photos.php:981
-msgid "I don't like this (toggle)"
-msgstr "Vind ik niet leuk"
-
-#: ../../include/ItemObject.php:211
-msgid "Share This"
-msgstr "Delen"
-
-#: ../../include/ItemObject.php:211
-msgid "share"
-msgstr "delen"
-
-#: ../../include/ItemObject.php:235 ../../include/ItemObject.php:236
-#, php-format
-msgid "View %s's profile - %s"
-msgstr "Profiel van %s bekijken - %s"
-
-#: ../../include/ItemObject.php:237
-msgid "to"
-msgstr "aan"
-
-#: ../../include/ItemObject.php:238
-msgid "via"
-msgstr "via"
-
-#: ../../include/ItemObject.php:239
-msgid "Wall-to-Wall"
-msgstr "Kanaal-naar-kanaal"
-
-#: ../../include/ItemObject.php:240
-msgid "via Wall-To-Wall:"
-msgstr "via kanaal-naar-kanaal"
-
-#: ../../include/ItemObject.php:274
-msgid "Save Bookmarks"
-msgstr "Bladwijzers opslaan"
-
-#: ../../include/ItemObject.php:275
-msgid "Add to Calendar"
-msgstr "Aan agenda toevoegen"
-
-#: ../../include/ItemObject.php:283
-msgctxt "noun"
-msgid "Likes"
-msgstr "vinden dit leuk"
+#: ../../include/zot.php:664
+msgid "Invalid data packet"
+msgstr "Datapakket ongeldig"
-#: ../../include/ItemObject.php:284
-msgctxt "noun"
-msgid "Dislikes"
-msgstr "vinden dit niet leuk"
+#: ../../include/zot.php:680
+msgid "Unable to verify channel signature"
+msgstr "Kanaalkenmerk kon niet worden geverifieerd. "
-#: ../../include/ItemObject.php:315
+#: ../../include/zot.php:1819
#, php-format
-msgid "%d comment"
-msgid_plural "%d comments"
-msgstr[0] "%d reactie"
-msgstr[1] "%d reacties weergeven"
-
-#: ../../include/ItemObject.php:316 ../../include/js_strings.php:7
-msgid "[+] show all"
-msgstr "[+] alle"
+msgid "Unable to verify site signature for %s"
+msgstr "Hubkenmerk voor %s kon niet worden geverifieerd"
-#: ../../include/ItemObject.php:580 ../../mod/photos.php:999
-#: ../../mod/photos.php:1086
-msgid "This is you"
-msgstr "Dit ben jij"
+#: ../../include/js_strings.php:5
+msgid "Delete this item?"
+msgstr "Dit item verwijderen?"
-#: ../../include/ItemObject.php:582 ../../include/js_strings.php:6
-#: ../../mod/photos.php:1001 ../../mod/photos.php:1088
+#: ../../include/js_strings.php:6 ../../include/ItemObject.php:620
+#: ../../mod/photos.php:996 ../../mod/photos.php:1106
msgid "Comment"
msgstr "Reactie"
-#: ../../include/ItemObject.php:583 ../../mod/mood.php:135
-#: ../../mod/settings.php:517 ../../mod/settings.php:629
-#: ../../mod/settings.php:658 ../../mod/settings.php:682
-#: ../../mod/settings.php:755 ../../mod/settings.php:935
-#: ../../mod/poke.php:166 ../../mod/profiles.php:643 ../../mod/chat.php:177
-#: ../../mod/chat.php:211 ../../mod/connect.php:92 ../../mod/connedit.php:518
-#: ../../mod/setup.php:307 ../../mod/setup.php:350 ../../mod/pdledit.php:58
-#: ../../mod/photos.php:563 ../../mod/photos.php:674 ../../mod/photos.php:962
-#: ../../mod/photos.php:1002 ../../mod/photos.php:1089
-#: ../../mod/sources.php:104 ../../mod/sources.php:138
-#: ../../mod/events.php:511 ../../mod/filestorage.php:137
-#: ../../mod/fsuggest.php:108 ../../mod/group.php:81 ../../mod/admin.php:413
-#: ../../mod/admin.php:723 ../../mod/admin.php:858 ../../mod/admin.php:991
-#: ../../mod/admin.php:1190 ../../mod/admin.php:1277 ../../mod/thing.php:286
-#: ../../mod/thing.php:329 ../../mod/import.php:394 ../../mod/invite.php:142
-#: ../../mod/mail.php:345 ../../mod/appman.php:99 ../../mod/poll.php:68
-#: ../../view/theme/apw/php/config.php:256
-#: ../../view/theme/blogga/php/config.php:67
-#: ../../view/theme/blogga/view/theme/blog/config.php:67
-#: ../../view/theme/redbasic/php/config.php:99
-msgid "Submit"
-msgstr "Opslaan"
-
-#: ../../include/ItemObject.php:584
-msgid "Bold"
-msgstr "Vet"
-
-#: ../../include/ItemObject.php:585
-msgid "Italic"
-msgstr "Cursief"
-
-#: ../../include/ItemObject.php:586
-msgid "Underline"
-msgstr "Onderstrepen"
-
-#: ../../include/ItemObject.php:587
-msgid "Quote"
-msgstr "Citeren"
-
-#: ../../include/ItemObject.php:588
-msgid "Code"
-msgstr "Broncode"
-
-#: ../../include/ItemObject.php:589
-msgid "Image"
-msgstr "Afbeelding"
-
-#: ../../include/ItemObject.php:590
-msgid "Link"
-msgstr "Link"
-
-#: ../../include/ItemObject.php:591
-msgid "Video"
-msgstr "Video"
-
-#: ../../include/js_strings.php:5
-msgid "Delete this item?"
-msgstr "Dit item verwijderen?"
+#: ../../include/js_strings.php:7 ../../include/ItemObject.php:337
+msgid "[+] show all"
+msgstr "[+] alle"
#: ../../include/js_strings.php:8
msgid "[-] show less"
@@ -3131,98 +3114,89 @@ msgstr "Wachtwoordhint"
#: ../../include/js_strings.php:16
msgid "Notice: Permissions have changed but have not yet been submitted."
-msgstr "Mededeling: de privacy-rechten zijn veranderd, maar zijn nog niet opgeslagen."
+msgstr "Mededeling: de permissies zijn veranderd, maar zijn nog niet opgeslagen."
#: ../../include/js_strings.php:17
msgid "close all"
msgstr "Alles sluiten"
-#: ../../include/js_strings.php:19
+#: ../../include/js_strings.php:18
+msgid "Nothing new here"
+msgstr "Niets nieuw hier"
+
+#: ../../include/js_strings.php:20
msgid "timeago.prefixAgo"
msgstr "timeago.prefixAgo"
-#: ../../include/js_strings.php:20
+#: ../../include/js_strings.php:21
msgid "timeago.prefixFromNow"
msgstr "timeago.prefixFromNow"
-#: ../../include/js_strings.php:21
+#: ../../include/js_strings.php:22
msgid "ago"
msgstr "geleden"
-#: ../../include/js_strings.php:22
+#: ../../include/js_strings.php:23
msgid "from now"
msgstr "vanaf nu"
-#: ../../include/js_strings.php:23
+#: ../../include/js_strings.php:24
msgid "less than a minute"
msgstr "minder dan een minuut"
-#: ../../include/js_strings.php:24
+#: ../../include/js_strings.php:25
msgid "about a minute"
msgstr "ongeveer een minuut"
-#: ../../include/js_strings.php:25
+#: ../../include/js_strings.php:26
#, php-format
msgid "%d minutes"
msgstr "%d minuten"
-#: ../../include/js_strings.php:26
+#: ../../include/js_strings.php:27
msgid "about an hour"
msgstr "ongeveer een uur"
-#: ../../include/js_strings.php:27
+#: ../../include/js_strings.php:28
#, php-format
msgid "about %d hours"
msgstr "ongeveer %d uren"
-#: ../../include/js_strings.php:28
+#: ../../include/js_strings.php:29
msgid "a day"
msgstr "een dag"
-#: ../../include/js_strings.php:29
+#: ../../include/js_strings.php:30
#, php-format
msgid "%d days"
msgstr "%d dagen"
-#: ../../include/js_strings.php:30
+#: ../../include/js_strings.php:31
msgid "about a month"
msgstr "ongeveer een maand"
-#: ../../include/js_strings.php:31
+#: ../../include/js_strings.php:32
#, php-format
msgid "%d months"
msgstr "%d maanden"
-#: ../../include/js_strings.php:32
+#: ../../include/js_strings.php:33
msgid "about a year"
msgstr "ongeveer een jaar"
-#: ../../include/js_strings.php:33
+#: ../../include/js_strings.php:34
#, php-format
msgid "%d years"
msgstr "%d jaren"
-#: ../../include/js_strings.php:34
+#: ../../include/js_strings.php:35
msgid " "
msgstr " "
-#: ../../include/js_strings.php:35
+#: ../../include/js_strings.php:36
msgid "timeago.numbers"
msgstr "timeago.numbers"
-#: ../../include/Contact.php:123
-msgid "New window"
-msgstr "Nieuw venster"
-
-#: ../../include/Contact.php:124
-msgid "Open the selected location in a different window or browser tab"
-msgstr "Open de geselecteerde locatie in een ander venster of tab"
-
-#: ../../include/Contact.php:211 ../../mod/admin.php:649
-#, php-format
-msgid "User '%s' deleted"
-msgstr "Account '%s' verwijderd"
-
#: ../../include/profile_selectors.php:6
#: ../../include/profile_selectors.php:23
msgid "Male"
@@ -3274,13 +3248,6 @@ msgid "Non-specific"
msgstr "Niet gespecificeerd"
#: ../../include/profile_selectors.php:6
-#: ../../include/profile_selectors.php:23
-#: ../../include/profile_selectors.php:61
-#: ../../include/profile_selectors.php:97
-msgid "Other"
-msgstr "Anders"
-
-#: ../../include/profile_selectors.php:6
msgid "Undecided"
msgstr "Nog niet beslist"
@@ -3466,1146 +3433,1650 @@ msgstr "Maakt mij niks uit"
msgid "Ask me"
msgstr "Vraag het me"
-#: ../../include/auth.php:90
+#: ../../include/apps.php:126
+msgid "Site Admin"
+msgstr "Hubbeheerder"
+
+#: ../../include/apps.php:128
+msgid "Address Book"
+msgstr "Connecties"
+
+#: ../../include/apps.php:142 ../../mod/mood.php:131
+msgid "Mood"
+msgstr "Stemming"
+
+#: ../../include/apps.php:146
+msgid "Probe"
+msgstr "Onderzoeken"
+
+#: ../../include/apps.php:147
+msgid "Suggest"
+msgstr "Voorstellen"
+
+#: ../../include/apps.php:148
+msgid "Random Channel"
+msgstr "Willekeurig kanaal"
+
+#: ../../include/apps.php:149
+msgid "Invite"
+msgstr "Uitnodigen "
+
+#: ../../include/apps.php:150
+msgid "Features"
+msgstr "Extra functies"
+
+#: ../../include/apps.php:151
+msgid "Language"
+msgstr "Taal"
+
+#: ../../include/apps.php:152
+msgid "Post"
+msgstr "Bericht"
+
+#: ../../include/apps.php:153
+msgid "Profile Photo"
+msgstr "Profielfoto"
+
+#: ../../include/apps.php:242 ../../mod/settings.php:81
+#: ../../mod/settings.php:591
+msgid "Update"
+msgstr "Bijwerken"
+
+#: ../../include/apps.php:242
+msgid "Install"
+msgstr "Installeren"
+
+#: ../../include/apps.php:247
+msgid "Purchase"
+msgstr "Aanschaffen"
+
+#: ../../include/auth.php:116
msgid "Logged out."
msgstr "Uitgelogd."
-#: ../../include/auth.php:236
+#: ../../include/auth.php:257
msgid "Failed authentication"
msgstr "Mislukte authenticatie"
-#: ../../include/auth.php:251 ../../mod/openid.php:188
+#: ../../include/auth.php:271 ../../mod/openid.php:190
msgid "Login failed."
msgstr "Inloggen mislukt."
-#: ../../include/permissions.php:13
-msgid "Can view my normal stream and posts"
-msgstr "Kan mijn normale kanaalstream en berichten bekijken"
+#: ../../include/ItemObject.php:130
+msgid "Save to Folder"
+msgstr "In map opslaan"
-#: ../../include/permissions.php:14
-msgid "Can view my default channel profile"
-msgstr "Kan mijn standaard kanaalprofiel bekijken"
+#: ../../include/ItemObject.php:142 ../../include/ItemObject.php:154
+#: ../../mod/photos.php:1023 ../../mod/photos.php:1035
+msgid "View all"
+msgstr "Toon alles"
-#: ../../include/permissions.php:15
-msgid "Can view my photo albums"
-msgstr "Kan mijn fotoalbums bekijken"
+#: ../../include/ItemObject.php:151 ../../mod/photos.php:1032
+msgctxt "noun"
+msgid "Dislike"
+msgid_plural "Dislikes"
+msgstr[0] "vindt dit niet leuk"
+msgstr[1] "vinden dit niet leuk"
-#: ../../include/permissions.php:16
-msgid "Can view my connections"
-msgstr "Kan een lijst met mijn connecties bekijken"
+#: ../../include/ItemObject.php:179
+msgid "Add Star"
+msgstr "Ster toevoegen"
-#: ../../include/permissions.php:17
-msgid "Can view my file storage"
-msgstr "Kan mijn bestanden bekijken"
+#: ../../include/ItemObject.php:180
+msgid "Remove Star"
+msgstr "Ster verwijderen"
-#: ../../include/permissions.php:18
-msgid "Can view my webpages"
-msgstr "Kan mijn pagina's bekijken"
+#: ../../include/ItemObject.php:181
+msgid "Toggle Star Status"
+msgstr "Ster toevoegen of verwijderen"
-#: ../../include/permissions.php:21
-msgid "Can send me their channel stream and posts"
-msgstr "Kan mij de inhoud van hun kanaal en berichten sturen"
+#: ../../include/ItemObject.php:185
+msgid "starred"
+msgstr "met ster"
-#: ../../include/permissions.php:22
-msgid "Can post on my channel page (\"wall\")"
-msgstr "Kan een bericht in mijn kanaal plaatsen"
+#: ../../include/ItemObject.php:203
+msgid "Add Tag"
+msgstr "Label toevoegen"
-#: ../../include/permissions.php:23
-msgid "Can comment on or like my posts"
-msgstr "Kan op mijn berichten reageren of deze (niet) leuk vinden"
+#: ../../include/ItemObject.php:221 ../../mod/photos.php:975
+msgid "I like this (toggle)"
+msgstr "Vind ik leuk"
-#: ../../include/permissions.php:24
-msgid "Can send me private mail messages"
-msgstr "Kan mij privéberichten sturen"
+#: ../../include/ItemObject.php:222 ../../mod/photos.php:976
+msgid "I don't like this (toggle)"
+msgstr "Vind ik niet leuk"
-#: ../../include/permissions.php:25
-msgid "Can post photos to my photo albums"
-msgstr "Kan foto's aan mijn fotoalbums toevoegen"
+#: ../../include/ItemObject.php:226
+msgid "Share This"
+msgstr "Delen"
-#: ../../include/permissions.php:26
-msgid "Can like/dislike stuff"
-msgstr "Kan dingen leuk of niet leuk vinden"
+#: ../../include/ItemObject.php:226
+msgid "share"
+msgstr "delen"
-#: ../../include/permissions.php:26
-msgid "Profiles and things other than posts/comments"
-msgstr "Profielen en dingen, buiten berichten en reacties"
+#: ../../include/ItemObject.php:236
+#, php-format
+msgid "%d comment"
+msgid_plural "%d comments"
+msgstr[0] "%d reactie"
+msgstr[1] "%d reacties weergeven"
-#: ../../include/permissions.php:28
-msgid "Can forward to all my channel contacts via post @mentions"
-msgstr "Kan naar al mijn kanaalconnecties berichten doorsturen met behulp van @vermeldingen+"
+#: ../../include/ItemObject.php:249 ../../include/ItemObject.php:250
+#, php-format
+msgid "View %s's profile - %s"
+msgstr "Profiel van %s bekijken - %s"
-#: ../../include/permissions.php:28
-msgid "Advanced - useful for creating group forum channels"
-msgstr "Geavanceerd - nuttig voor kanalen met een groep- cq. forumfunctie"
+#: ../../include/ItemObject.php:252
+msgid "to"
+msgstr "aan"
-#: ../../include/permissions.php:29
-msgid "Can chat with me (when available)"
-msgstr "Kan met mij chatten (wanneer beschikbaar)"
+#: ../../include/ItemObject.php:253
+msgid "via"
+msgstr "via"
-#: ../../include/permissions.php:30
-msgid "Can write to my file storage"
-msgstr "Kan bestanden aan mijn bestandsopslag toevoegen"
+#: ../../include/ItemObject.php:254
+msgid "Wall-to-Wall"
+msgstr "Kanaal-naar-kanaal"
-#: ../../include/permissions.php:31
-msgid "Can edit my webpages"
-msgstr "Kan mijn pagina's bewerken"
+#: ../../include/ItemObject.php:255
+msgid "via Wall-To-Wall:"
+msgstr "via kanaal-naar-kanaal"
-#: ../../include/permissions.php:33
-msgid "Can source my public posts in derived channels"
-msgstr "Kan mijn openbare berichten als bron voor andere kanalen gebruiken"
+#: ../../include/ItemObject.php:291
+msgid "Save Bookmarks"
+msgstr "Bladwijzers opslaan"
-#: ../../include/permissions.php:33
-msgid "Somewhat advanced - very useful in open communities"
-msgstr "Enigszins geavanceerd (erg nuttig voor kanalen van forums/groepen)"
+#: ../../include/ItemObject.php:292
+msgid "Add to Calendar"
+msgstr "Aan agenda toevoegen"
-#: ../../include/permissions.php:35
-msgid "Can administer my channel resources"
-msgstr "Kan mijn kanaal beheren"
+#: ../../include/ItemObject.php:301
+msgid "Mark all seen"
+msgstr "Markeer alles als bekeken"
-#: ../../include/permissions.php:35
-msgid ""
-"Extremely advanced. Leave this alone unless you know what you are doing"
-msgstr "Zeer geavanceerd. Laat dit met rust, behalve als je weet wat je doet."
+#: ../../include/ItemObject.php:306 ../../mod/photos.php:1143
+msgctxt "noun"
+msgid "Likes"
+msgstr "vinden dit leuk"
+
+#: ../../include/ItemObject.php:307 ../../mod/photos.php:1144
+msgctxt "noun"
+msgid "Dislikes"
+msgstr "vinden dit niet leuk"
+
+#: ../../include/ItemObject.php:618 ../../mod/photos.php:994
+#: ../../mod/photos.php:1104
+msgid "This is you"
+msgstr "Dit ben jij"
+
+#: ../../include/ItemObject.php:621 ../../mod/mood.php:135
+#: ../../mod/sources.php:104 ../../mod/sources.php:138 ../../mod/poke.php:166
+#: ../../mod/setup.php:313 ../../mod/setup.php:358 ../../mod/settings.php:565
+#: ../../mod/settings.php:677 ../../mod/settings.php:706
+#: ../../mod/settings.php:730 ../../mod/settings.php:812
+#: ../../mod/settings.php:1004 ../../mod/events.php:598 ../../mod/chat.php:177
+#: ../../mod/chat.php:211 ../../mod/connect.php:93 ../../mod/connedit.php:556
+#: ../../mod/thing.php:284 ../../mod/thing.php:327 ../../mod/profiles.php:633
+#: ../../mod/pdledit.php:58 ../../mod/fsuggest.php:108
+#: ../../mod/filestorage.php:146 ../../mod/group.php:81
+#: ../../mod/import.php:480 ../../mod/admin.php:412 ../../mod/admin.php:723
+#: ../../mod/admin.php:859 ../../mod/admin.php:992 ../../mod/admin.php:1191
+#: ../../mod/admin.php:1278 ../../mod/locs.php:99 ../../mod/mail.php:352
+#: ../../mod/invite.php:142 ../../mod/xchan.php:11 ../../mod/photos.php:594
+#: ../../mod/photos.php:671 ../../mod/photos.php:957 ../../mod/photos.php:997
+#: ../../mod/photos.php:1107 ../../mod/appman.php:99 ../../mod/poll.php:68
+#: ../../view/theme/apw/php/config.php:256
+#: ../../view/theme/redbasic/php/config.php:99
+msgid "Submit"
+msgstr "Opslaan"
+
+#: ../../include/ItemObject.php:622
+msgid "Bold"
+msgstr "Vet"
+
+#: ../../include/ItemObject.php:623
+msgid "Italic"
+msgstr "Cursief"
+
+#: ../../include/ItemObject.php:624
+msgid "Underline"
+msgstr "Onderstrepen"
+
+#: ../../include/ItemObject.php:625
+msgid "Quote"
+msgstr "Citeren"
+
+#: ../../include/ItemObject.php:626
+msgid "Code"
+msgstr "Broncode"
+
+#: ../../include/ItemObject.php:627
+msgid "Image"
+msgstr "Afbeelding"
+
+#: ../../include/ItemObject.php:628
+msgid "Link"
+msgstr "Link"
+
+#: ../../include/ItemObject.php:629
+msgid "Video"
+msgstr "Video"
+
+#: ../../include/chat.php:10
+msgid "Missing room name"
+msgstr "Naam chatkanaal ontbreekt"
+
+#: ../../include/chat.php:19
+msgid "Duplicate room name"
+msgstr "Naam chatkanaal bestaat al"
+
+#: ../../include/chat.php:68 ../../include/chat.php:76
+msgid "Invalid room specifier."
+msgstr "Ongeldige omschrijving chatkanaal"
+
+#: ../../include/chat.php:105
+msgid "Room not found."
+msgstr "Chatkanaal niet gevonden"
+
+#: ../../include/chat.php:126
+msgid "Room is full"
+msgstr "Chatkanaal is vol"
#: ../../mod/mood.php:132
msgid "Set your current mood and tell your friends"
msgstr "Noteer je huidige stemming en toon het aan je connecties"
-#: ../../mod/mitem.php:14 ../../mod/menu.php:92
+#: ../../mod/mitem.php:24 ../../mod/menu.php:108
msgid "Menu not found."
msgstr "Menu niet gevonden."
-#: ../../mod/mitem.php:47
+#: ../../mod/mitem.php:67
msgid "Menu element updated."
msgstr "Menu-onderdeel geüpdatet."
-#: ../../mod/mitem.php:51
+#: ../../mod/mitem.php:71
msgid "Unable to update menu element."
msgstr "Menu-onderdeel kan niet worden geüpdatet."
-#: ../../mod/mitem.php:57
+#: ../../mod/mitem.php:77
msgid "Menu element added."
msgstr "Menu-onderdeel toegevoegd"
-#: ../../mod/mitem.php:61
+#: ../../mod/mitem.php:81
msgid "Unable to add menu element."
msgstr "Menu-onderdeel kan niet worden toegevoegd."
-#: ../../mod/mitem.php:78 ../../mod/dirprofile.php:175 ../../mod/menu.php:120
-#: ../../mod/xchan.php:27
+#: ../../mod/mitem.php:111 ../../mod/menu.php:136 ../../mod/xchan.php:37
msgid "Not found."
msgstr "Niet gevonden."
-#: ../../mod/mitem.php:96
+#: ../../mod/mitem.php:127
msgid "Manage Menu Elements"
msgstr "Menu-onderdelen beheren"
-#: ../../mod/mitem.php:99
+#: ../../mod/mitem.php:130
msgid "Edit menu"
msgstr "Menu bewerken"
-#: ../../mod/mitem.php:102
+#: ../../mod/mitem.php:133
msgid "Edit element"
msgstr "Onderdeel bewerken"
-#: ../../mod/mitem.php:103
+#: ../../mod/mitem.php:134
msgid "Drop element"
msgstr "Onderdeel verwijderen"
-#: ../../mod/mitem.php:104
+#: ../../mod/mitem.php:135
msgid "New element"
msgstr "Nieuw element"
-#: ../../mod/mitem.php:105
+#: ../../mod/mitem.php:136
msgid "Edit this menu container"
msgstr "Deze menu-container bewerken"
-#: ../../mod/mitem.php:106
+#: ../../mod/mitem.php:137
msgid "Add menu element"
msgstr "Menu-element toevoegen"
-#: ../../mod/mitem.php:107
+#: ../../mod/mitem.php:138
msgid "Delete this menu item"
msgstr "Dit menu-item verwijderen"
-#: ../../mod/mitem.php:108
+#: ../../mod/mitem.php:139
msgid "Edit this menu item"
msgstr "Dit menu-item bewerken"
-#: ../../mod/mitem.php:131
+#: ../../mod/mitem.php:158
msgid "New Menu Element"
msgstr "Nieuw menu-element"
-#: ../../mod/mitem.php:133 ../../mod/mitem.php:176
+#: ../../mod/mitem.php:160 ../../mod/mitem.php:203
msgid "Menu Item Permissions"
-msgstr "Privacy-rechten menu-item"
+msgstr "Permissies menu-item"
-#: ../../mod/mitem.php:134 ../../mod/mitem.php:177 ../../mod/settings.php:968
+#: ../../mod/mitem.php:161 ../../mod/mitem.php:204 ../../mod/settings.php:1039
msgid "(click to open/close)"
msgstr "(klik om te openen/sluiten)"
-#: ../../mod/mitem.php:136 ../../mod/mitem.php:180
+#: ../../mod/mitem.php:163 ../../mod/mitem.php:207
msgid "Link text"
msgstr "Linktekst"
-#: ../../mod/mitem.php:137 ../../mod/mitem.php:181
+#: ../../mod/mitem.php:164 ../../mod/mitem.php:208
msgid "URL of link"
msgstr "URL of link"
-#: ../../mod/mitem.php:138 ../../mod/mitem.php:182
-msgid "Use Red magic-auth if available"
-msgstr "Gebruik Reds magische authenticatie wanneer aanwezig"
+#: ../../mod/mitem.php:165 ../../mod/mitem.php:209
+msgid "Use RedMatrix magic-auth if available"
+msgstr "Gebruik RedMatrix' magic-auth wanneer beschikbaar"
-#: ../../mod/mitem.php:139 ../../mod/mitem.php:183
+#: ../../mod/mitem.php:166 ../../mod/mitem.php:210
msgid "Open link in new window"
msgstr "Open link in nieuw venster"
-#: ../../mod/mitem.php:141 ../../mod/mitem.php:185
+#: ../../mod/mitem.php:168 ../../mod/mitem.php:212
msgid "Order in list"
msgstr "Volgorde in lijst"
-#: ../../mod/mitem.php:141 ../../mod/mitem.php:185
+#: ../../mod/mitem.php:168 ../../mod/mitem.php:212
msgid "Higher numbers will sink to bottom of listing"
msgstr "Hogere nummers komen onderaan de lijst terecht"
-#: ../../mod/mitem.php:154
+#: ../../mod/mitem.php:181
msgid "Menu item not found."
msgstr "Menu-item niet gevonden."
-#: ../../mod/mitem.php:163
+#: ../../mod/mitem.php:190
msgid "Menu item deleted."
msgstr "Menu-item verwijderd."
-#: ../../mod/mitem.php:165
+#: ../../mod/mitem.php:192
msgid "Menu item could not be deleted."
msgstr "Menu-item kon niet worden verwijderd."
-#: ../../mod/mitem.php:174
+#: ../../mod/mitem.php:201
msgid "Edit Menu Element"
msgstr "Menu-element bewerken"
-#: ../../mod/mitem.php:186 ../../mod/menu.php:114
+#: ../../mod/mitem.php:213 ../../mod/menu.php:130
msgid "Modify"
msgstr "Wijzigen"
-#: ../../mod/ping.php:237
-msgid "sent you a private message"
-msgstr "stuurde jou een privébericht"
+#: ../../mod/achievements.php:34
+msgid "Some blurb about what to do when you're new here"
+msgstr "Welkom op de RedMatrix. Klik op de tab ontdekken of klik rechtsboven op de <a href=\"directory\">kanalengids</a>, om kanalen te vinden. Rechtsboven vind je ook onze <a href=\"directory\">apps</a>, waar je vrijwel alles van de RedMatrix kan vinden. Voor <a href=\"directory\">hulp</a> met de RedMatrix klik je op het vraagteken of als je meer vragen hebt stel je die in het <a href=\"https://zothost.me/channel/support\">supportkanaal</a> (liefst in het Engels)."
-#: ../../mod/ping.php:288
-msgid "added your channel"
-msgstr "voegde jouw kanaal toe"
+#: ../../mod/register.php:44
+msgid "Maximum daily site registrations exceeded. Please try again tomorrow."
+msgstr "Maximum toegestane dagelijkse registraties op deze RedMatrix-hub bereikt. Probeer het morgen (UTC) nogmaals."
-#: ../../mod/ping.php:329
-msgid "posted an event"
-msgstr "plaatste een gebeurtenis"
+#: ../../mod/register.php:50
+msgid ""
+"Please indicate acceptance of the Terms of Service. Registration failed."
+msgstr "Registratie mislukt. De gebruiksvoorwaarden dienen wel geaccepteerd te worden."
-#: ../../mod/acl.php:239
-msgid "network"
-msgstr "netwerk"
+#: ../../mod/register.php:84
+msgid "Passwords do not match."
+msgstr "Wachtwoorden komen niet met elkaar overeen."
+
+#: ../../mod/register.php:117
+msgid ""
+"Registration successful. Please check your email for validation "
+"instructions."
+msgstr "Registratie geslaagd. Controleer je e-mail voor instructies."
+
+#: ../../mod/register.php:123
+msgid "Your registration is pending approval by the site owner."
+msgstr "Jouw accountregistratie wacht op goedkeuring van de beheerder van deze RedMatrix-hub."
+
+#: ../../mod/register.php:126
+msgid "Your registration can not be processed."
+msgstr "Jouw registratie kan niet verwerkt worden."
+
+#: ../../mod/register.php:163
+msgid "Registration on this site/hub is by approval only."
+msgstr "Registraties op deze RedMatrix-hub moeten eerst worden goedgekeurd."
+
+#: ../../mod/register.php:164
+msgid "<a href=\"pubsites\">Register at another affiliated site/hub</a>"
+msgstr "<a href=\"pubsites\">Registreer op een andere RedMatrix-hub</a>"
+
+#: ../../mod/register.php:174
+msgid ""
+"This site has exceeded the number of allowed daily account registrations. "
+"Please try again tomorrow."
+msgstr "Deze RedMatrix-hub heeft het maximum aantal dagelijks toegestane registraties bereikt. Probeer het morgen (UTC) nogmaals."
+
+#: ../../mod/register.php:185
+msgid "Terms of Service"
+msgstr "Gebruiksvoorwaarden"
+
+#: ../../mod/register.php:191
+#, php-format
+msgid "I accept the %s for this website"
+msgstr "Ik accepteer de %s van deze RedMatrix-hub"
+
+#: ../../mod/register.php:193
+#, php-format
+msgid "I am over 13 years of age and accept the %s for this website"
+msgstr "Ik accepteer de %s van deze RedMatrix-hub"
-#: ../../mod/settings.php:71
+#: ../../mod/register.php:207 ../../mod/admin.php:413
+msgid "Registration"
+msgstr "Registratie"
+
+#: ../../mod/register.php:212
+msgid "Membership on this site is by invitation only."
+msgstr "Registreren op deze RedMatrix-hub kan alleen op uitnodiging."
+
+#: ../../mod/register.php:213
+msgid "Please enter your invitation code"
+msgstr "Vul jouw uitnodigingscode in"
+
+#: ../../mod/register.php:216
+msgid "Your email address"
+msgstr "Jouw e-mailadres"
+
+#: ../../mod/register.php:217
+msgid "Choose a password"
+msgstr "Geef een wachtwoord op"
+
+#: ../../mod/register.php:218
+msgid "Please re-enter your password"
+msgstr "Geef het wachtwoord opnieuw op"
+
+#: ../../mod/filer.php:49
+msgid "- select -"
+msgstr "- kies map -"
+
+#: ../../mod/profperm.php:29 ../../mod/profperm.php:58
+msgid "Invalid profile identifier."
+msgstr "Ongeldige profiel-identificator"
+
+#: ../../mod/profperm.php:110
+msgid "Profile Visibility Editor"
+msgstr "Zichtbaarheid profiel "
+
+#: ../../mod/profperm.php:114
+msgid "Click on a contact to add or remove."
+msgstr "Klik op een connectie om deze toe te voegen of te verwijderen"
+
+#: ../../mod/profperm.php:123
+msgid "Visible To"
+msgstr "Zichtbaar voor"
+
+#: ../../mod/profperm.php:139 ../../mod/connections.php:279
+msgid "All Connections"
+msgstr "Alle connecties"
+
+#: ../../mod/sources.php:32
+msgid "Failed to create source. No channel selected."
+msgstr "Aanmaken bron mislukt. Geen kanaal geselecteerd."
+
+#: ../../mod/sources.php:45
+msgid "Source created."
+msgstr "Bron aangemaakt."
+
+#: ../../mod/sources.php:57
+msgid "Source updated."
+msgstr "Bron aangemaakt."
+
+#: ../../mod/sources.php:82
+msgid "*"
+msgstr "*"
+
+#: ../../mod/sources.php:89
+msgid "Manage remote sources of content for your channel."
+msgstr "Beheer externe bronnen met inhoud voor jouw kanaal"
+
+#: ../../mod/sources.php:90 ../../mod/sources.php:100
+msgid "New Source"
+msgstr "Nieuwe bron"
+
+#: ../../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 "Importeer complete of gedeelde inhoud vanuit het volgende kanaal naar dit kanaal, en verdeel het vervolgens volgens jouw kanaalinstellingen."
+
+#: ../../mod/sources.php:102 ../../mod/sources.php:134
+msgid "Only import content with these words (one per line)"
+msgstr "Importeer alleen inhoud met deze woorden (één per regel)"
+
+#: ../../mod/sources.php:102 ../../mod/sources.php:134
+msgid "Leave blank to import all public content"
+msgstr "Laat leeg om alle openbare inhoud te importeren"
+
+#: ../../mod/sources.php:103 ../../mod/sources.php:137
+#: ../../mod/new_channel.php:112
+msgid "Channel Name"
+msgstr "Kanaalnaam"
+
+#: ../../mod/sources.php:123 ../../mod/sources.php:150
+msgid "Source not found."
+msgstr "Bron niet gevonden"
+
+#: ../../mod/sources.php:130
+msgid "Edit Source"
+msgstr "Bron bewerken"
+
+#: ../../mod/sources.php:131
+msgid "Delete Source"
+msgstr "Bron verwijderen"
+
+#: ../../mod/sources.php:158
+msgid "Source removed"
+msgstr "Bron verwijderd"
+
+#: ../../mod/sources.php:160
+msgid "Unable to remove source."
+msgstr "Verwijderen bron mislukt."
+
+#: ../../mod/poke.php:159
+msgid "Poke/Prod"
+msgstr "Aanstoten/porren"
+
+#: ../../mod/poke.php:160
+msgid "poke, prod or do other things to somebody"
+msgstr "aanstoten, porren of andere dingen met iemand doen"
+
+#: ../../mod/poke.php:161
+msgid "Recipient"
+msgstr "Ontvanger"
+
+#: ../../mod/poke.php:162
+msgid "Choose what you wish to do to recipient"
+msgstr "Kies wat je met de ontvanger wil doen"
+
+#: ../../mod/poke.php:165
+msgid "Make this post private"
+msgstr "Maak dit bericht privé"
+
+#: ../../mod/api.php:76 ../../mod/api.php:102
+msgid "Authorize application connection"
+msgstr "Geef toestemming voor applicatiekoppeling"
+
+#: ../../mod/api.php:77
+msgid "Return to your app and insert this Securty Code:"
+msgstr "Ga terug naar je app en voeg deze beveiligingscode in:"
+
+#: ../../mod/api.php:89
+msgid "Please login to continue."
+msgstr "Inloggen om verder te kunnen gaan."
+
+#: ../../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 "Wil je deze applicatie toestemming geven om jouw berichten en connecties te zien, en/of nieuwe berichten voor jou te plaatsen?"
+
+#: ../../mod/api.php:105 ../../mod/settings.php:944 ../../mod/settings.php:949
+#: ../../mod/settings.php:1032 ../../mod/profiles.php:591
+#: ../../mod/admin.php:392
+msgid "Yes"
+msgstr "Ja"
+
+#: ../../mod/api.php:106 ../../mod/settings.php:944 ../../mod/settings.php:949
+#: ../../mod/settings.php:1032 ../../mod/profiles.php:592
+#: ../../mod/admin.php:390
+msgid "No"
+msgstr "Nee"
+
+#: ../../mod/search.php:13 ../../mod/display.php:9
+#: ../../mod/viewconnections.php:17 ../../mod/directory.php:22
+#: ../../mod/photos.php:458
+msgid "Public access denied."
+msgstr "Openbare toegang geweigerd."
+
+#: ../../mod/attach.php:9
+msgid "Item not available."
+msgstr "Item is niet aanwezig."
+
+#: ../../mod/probe.php:23 ../../mod/probe.php:29
+#, php-format
+msgid "Fetching URL returns error: %1$s"
+msgstr "Ophalen URL gaf een foutmelding terug: %1$s"
+
+#: ../../mod/block.php:27 ../../mod/page.php:33
+msgid "Invalid item."
+msgstr "Ongeldig item."
+
+#: ../../mod/block.php:39 ../../mod/wall_upload.php:29 ../../mod/page.php:45
+msgid "Channel not found."
+msgstr "Kanaal niet gevonden."
+
+#: ../../mod/block.php:75 ../../mod/display.php:102 ../../mod/help.php:70
+#: ../../mod/page.php:81 ../../index.php:241
+msgid "Page not found."
+msgstr "Pagina niet gevonden."
+
+#: ../../mod/subthread.php:103
+#, php-format
+msgid "%1$s is following %2$s's %3$s"
+msgstr "%1$s volgt het %3$s van %2$s"
+
+#: ../../mod/blocks.php:99
+msgid "Block Name"
+msgstr "Bloknaam"
+
+#: ../../mod/setup.php:166
+msgid "Red Matrix Server - Setup"
+msgstr "RedMatrix Server - Setup"
+
+#: ../../mod/setup.php:172
+msgid "Could not connect to database."
+msgstr "Could not connect to database."
+
+#: ../../mod/setup.php:176
+msgid ""
+"Could not connect to specified site URL. Possible SSL certificate or DNS "
+"issue."
+msgstr "Could not connect to specified hub URL. Possible SSL certificate or DNS issue."
+
+#: ../../mod/setup.php:183
+msgid "Could not create table."
+msgstr "Could not create table."
+
+#: ../../mod/setup.php:189
+msgid "Your site database has been installed."
+msgstr "Your hub database has been installed."
+
+#: ../../mod/setup.php:194
+msgid ""
+"You may need to import the file \"install/schema_xxx.sql\" manually using a "
+"database client."
+msgstr "You may need to import the file \"install/schema_xxx.sql\" manually using a database client."
+
+#: ../../mod/setup.php:195 ../../mod/setup.php:264 ../../mod/setup.php:663
+msgid "Please see the file \"install/INSTALL.txt\"."
+msgstr "Please see the file \"install/INSTALL.txt\"."
+
+#: ../../mod/setup.php:261
+msgid "System check"
+msgstr "System check"
+
+#: ../../mod/setup.php:265 ../../mod/events.php:445 ../../mod/photos.php:868
+msgid "Next"
+msgstr "Volgende"
+
+#: ../../mod/setup.php:266
+msgid "Check again"
+msgstr "Check again"
+
+#: ../../mod/setup.php:289
+msgid "Database connection"
+msgstr "Database connection"
+
+#: ../../mod/setup.php:290
+msgid ""
+"In order to install Red Matrix we need to know how to connect to your "
+"database."
+msgstr "In order to install RedMatrix we need to know how to connect to your database."
+
+#: ../../mod/setup.php:291
+msgid ""
+"Please contact your hosting provider or site administrator if you have "
+"questions about these settings."
+msgstr "Please contact your hosting provider or site administrator if you have questions about these settings."
+
+#: ../../mod/setup.php:292
+msgid ""
+"The database you specify below should already exist. If it does not, please "
+"create it before continuing."
+msgstr "The database you specify below should already exist. If it does not, please create it before continuing."
+
+#: ../../mod/setup.php:296
+msgid "Database Server Name"
+msgstr "Database Server Name"
+
+#: ../../mod/setup.php:296
+msgid "Default is localhost"
+msgstr "Default is localhost"
+
+#: ../../mod/setup.php:297
+msgid "Database Port"
+msgstr "Database Port"
+
+#: ../../mod/setup.php:297
+msgid "Communication port number - use 0 for default"
+msgstr "Communication port number - use 0 for default"
+
+#: ../../mod/setup.php:298
+msgid "Database Login Name"
+msgstr "Database Login Name"
+
+#: ../../mod/setup.php:299
+msgid "Database Login Password"
+msgstr "Database Login Password"
+
+#: ../../mod/setup.php:300
+msgid "Database Name"
+msgstr "Database Name"
+
+#: ../../mod/setup.php:301
+msgid "Database Type"
+msgstr "Database Type"
+
+#: ../../mod/setup.php:303 ../../mod/setup.php:347
+msgid "Site administrator email address"
+msgstr "Hub administrator email address"
+
+#: ../../mod/setup.php:303 ../../mod/setup.php:347
+msgid ""
+"Your account email address must match this in order to use the web admin "
+"panel."
+msgstr "Your account email address must match this in order to use the web admin panel."
+
+#: ../../mod/setup.php:304 ../../mod/setup.php:349
+msgid "Website URL"
+msgstr "Hub URL"
+
+#: ../../mod/setup.php:304 ../../mod/setup.php:349
+msgid "Please use SSL (https) URL if available."
+msgstr "Please use SSL (https) URL if available."
+
+#: ../../mod/setup.php:307 ../../mod/setup.php:352
+msgid "Please select a default timezone for your website"
+msgstr "Please select a default timezone for your hub"
+
+#: ../../mod/setup.php:335
+msgid "Site settings"
+msgstr "Hub settings"
+
+#: ../../mod/setup.php:395
+msgid "Could not find a command line version of PHP in the web server PATH."
+msgstr "Could not find a command line version of PHP in the web server PATH."
+
+#: ../../mod/setup.php:396
+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 "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."
+
+#: ../../mod/setup.php:400
+msgid "PHP executable path"
+msgstr "PHP executable path"
+
+#: ../../mod/setup.php:400
+msgid ""
+"Enter full path to php executable. You can leave this blank to continue the "
+"installation."
+msgstr "Enter full path to php executable. You can leave this blank to continue the installation."
+
+#: ../../mod/setup.php:405
+msgid "Command line PHP"
+msgstr "Command line PHP"
+
+#: ../../mod/setup.php:414
+msgid ""
+"The command line version of PHP on your system does not have "
+"\"register_argc_argv\" enabled."
+msgstr "The command line version of PHP on your system does not have \"register_argc_argv\" enabled."
+
+#: ../../mod/setup.php:415
+msgid "This is required for message delivery to work."
+msgstr "This is required for message delivery to work."
+
+#: ../../mod/setup.php:417
+msgid "PHP register_argc_argv"
+msgstr "PHP register_argc_argv"
+
+#: ../../mod/setup.php:438
+msgid ""
+"Error: the \"openssl_pkey_new\" function on this system is not able to "
+"generate encryption keys"
+msgstr "Error: the \"openssl_pkey_new\" function on this system is not able to generate encryption keys"
+
+#: ../../mod/setup.php:439
+msgid ""
+"If running under Windows, please see "
+"\"http://www.php.net/manual/en/openssl.installation.php\"."
+msgstr "If running under Windows, please see \"http://www.php.net/manual/en/openssl.installation.php\"."
+
+#: ../../mod/setup.php:441
+msgid "Generate encryption keys"
+msgstr "Generate encryption keys"
+
+#: ../../mod/setup.php:448
+msgid "libCurl PHP module"
+msgstr "libCurl PHP module"
+
+#: ../../mod/setup.php:449
+msgid "GD graphics PHP module"
+msgstr "GD graphics PHP module"
+
+#: ../../mod/setup.php:450
+msgid "OpenSSL PHP module"
+msgstr "OpenSSL PHP module"
+
+#: ../../mod/setup.php:451
+msgid "mysqli or postgres PHP module"
+msgstr "mysqli or postgres PHP module"
+
+#: ../../mod/setup.php:452
+msgid "mb_string PHP module"
+msgstr "mb_string PHP module"
+
+#: ../../mod/setup.php:453
+msgid "mcrypt PHP module"
+msgstr "mcrypt PHP module"
+
+#: ../../mod/setup.php:458 ../../mod/setup.php:460
+msgid "Apache mod_rewrite module"
+msgstr "Apache mod_rewrite module"
+
+#: ../../mod/setup.php:458
+msgid ""
+"Error: Apache webserver mod-rewrite module is required but not installed."
+msgstr "Error: Apache webserver mod-rewrite module is required but not installed."
+
+#: ../../mod/setup.php:464 ../../mod/setup.php:467
+msgid "proc_open"
+msgstr "proc_open"
+
+#: ../../mod/setup.php:464
+msgid ""
+"Error: proc_open is required but is either not installed or has been "
+"disabled in php.ini"
+msgstr "Error: proc_open is required but is either not installed or has been disabled in php.ini"
+
+#: ../../mod/setup.php:472
+msgid "Error: libCURL PHP module required but not installed."
+msgstr "Error: libCURL PHP module required but not installed."
+
+#: ../../mod/setup.php:476
+msgid ""
+"Error: GD graphics PHP module with JPEG support required but not installed."
+msgstr "Error: GD graphics PHP module with JPEG support required but not installed."
+
+#: ../../mod/setup.php:480
+msgid "Error: openssl PHP module required but not installed."
+msgstr "Error: openssl PHP module required but not installed."
+
+#: ../../mod/setup.php:484
+msgid ""
+"Error: mysqli or postgres PHP module required but neither are installed."
+msgstr "Error: mysqli or postgres PHP module required but neither are installed."
+
+#: ../../mod/setup.php:488
+msgid "Error: mb_string PHP module required but not installed."
+msgstr "Error: mb_string PHP module required but not installed."
+
+#: ../../mod/setup.php:492
+msgid "Error: mcrypt PHP module required but not installed."
+msgstr "Error: mcrypt PHP module required but not installed."
+
+#: ../../mod/setup.php:508
+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 "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/setup.php:509
+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 "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/setup.php:510
+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 "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/setup.php:511
+msgid ""
+"You can alternatively skip this procedure and perform a manual installation."
+" Please see the file \"install/INSTALL.txt\" for instructions."
+msgstr "You can alternatively skip this procedure and perform a manual installation. Please see the file \"install/INSTALL.txt\" for instructions."
+
+#: ../../mod/setup.php:514
+msgid ".htconfig.php is writable"
+msgstr ".htconfig.php is writable"
+
+#: ../../mod/setup.php:524
+msgid ""
+"Red uses the Smarty3 template engine to render its web views. Smarty3 "
+"compiles templates to PHP to speed up rendering."
+msgstr "Red uses the Smarty3 template engine to render its web views. Smarty3 compiles templates to PHP to speed up rendering."
+
+#: ../../mod/setup.php:525
+#, php-format
+msgid ""
+"In order to store these compiled templates, the web server needs to have "
+"write access to the directory %s under the Red top level folder."
+msgstr "In order to store these compiled templates, the web server needs to have write access to the directory %s under the Red top level folder."
+
+#: ../../mod/setup.php:526 ../../mod/setup.php:544
+msgid ""
+"Please ensure that the user that your web server runs as (e.g. www-data) has"
+" write access to this folder."
+msgstr "Please ensure that the user that your web server runs as (e.g. www-data) has write access to this folder."
+
+#: ../../mod/setup.php:527
+#, php-format
+msgid ""
+"Note: as a security measure, you should give the web server write access to "
+"%s only--not the template files (.tpl) that it contains."
+msgstr "Note: as a security measure, you should give the web server write access to %s only--not the template files (.tpl) that it contains."
+
+#: ../../mod/setup.php:530
+#, php-format
+msgid "%s is writable"
+msgstr "%s is writable"
+
+#: ../../mod/setup.php:543
+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 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"
+
+#: ../../mod/setup.php:547
+msgid "store is writable"
+msgstr "store is writable"
+
+#: ../../mod/setup.php:577
+msgid ""
+"SSL certificate cannot be validated. Fix certificate or disable https access"
+" to this site."
+msgstr "SSL certificate cannot be validated. Fix certificate or disable https access to this hub."
+
+#: ../../mod/setup.php:578
+msgid ""
+"If you have https access to your website or allow connections to TCP port "
+"443 (the https: port), you MUST use a browser-valid certificate. You MUST "
+"NOT use self-signed certificates!"
+msgstr "If you have https access to your hub or allow connections to TCP port 443 (the https: port), you MUST use a browser-valid certificate. You MUST NOT use self-signed certificates!"
+
+#: ../../mod/setup.php:579
+msgid ""
+"This restriction is incorporated because public posts from you may for "
+"example contain references to images on your own hub."
+msgstr "This restriction is incorporated because public posts from you may for example contain references to images on your own hub."
+
+#: ../../mod/setup.php:580
+msgid ""
+"If your certificate is not recognized, members of other sites (who may "
+"themselves have valid certificates) will get a warning message on their own "
+"site complaining about security issues."
+msgstr "If your certificate is not recognized, members of other hubs (who may themselves have valid certificates) will get a warning message on their own hub complaining about security issues."
+
+#: ../../mod/setup.php:581
+msgid ""
+"This can cause usability issues elsewhere (not just on your own site) so we "
+"must insist on this requirement."
+msgstr "This can cause usability issues elsewhere (not just on your own hub) so we must insist on this requirement."
+
+#: ../../mod/setup.php:582
+msgid ""
+"Providers are available that issue free certificates which are browser-"
+"valid."
+msgstr "Providers are available that issue free certificates which are browser-valid."
+
+#: ../../mod/setup.php:584
+msgid "SSL certificate validation"
+msgstr "SSL certificate validation"
+
+#: ../../mod/setup.php:590
+msgid ""
+"Url rewrite in .htaccess is not working. Check your server "
+"configuration.Test: "
+msgstr "Url rewrite in .htaccess is not working. Check your server configuration.Test: "
+
+#: ../../mod/setup.php:592
+msgid "Url rewrite is working"
+msgstr "Url rewrite is working"
+
+#: ../../mod/setup.php:602
+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 "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/setup.php:626
+msgid "Errors encountered creating database tables."
+msgstr "Errors encountered creating database tables."
+
+#: ../../mod/setup.php:661
+msgid "<h1>What next</h1>"
+msgstr "<h1>Wat nu</h1>"
+
+#: ../../mod/setup.php:662
+msgid ""
+"IMPORTANT: You will need to [manually] setup a scheduled task for the "
+"poller."
+msgstr "IMPORTANT: You will need to [manually] setup a scheduled task for the poller."
+
+#: ../../mod/settings.php:73
msgid "Name is required"
msgstr "Naam is vereist"
-#: ../../mod/settings.php:75
+#: ../../mod/settings.php:77
msgid "Key and Secret are required"
msgstr "Key en secret zijn vereist"
-#: ../../mod/settings.php:196
+#: ../../mod/settings.php:213
msgid "Passwords do not match. Password unchanged."
msgstr "Wachtwoorden komen niet overeen. Wachtwoord onveranderd."
-#: ../../mod/settings.php:200
+#: ../../mod/settings.php:217
msgid "Empty passwords are not allowed. Password unchanged."
msgstr "Lege wachtwoorden zijn niet toegestaan. Wachtwoord onveranderd."
-#: ../../mod/settings.php:214
+#: ../../mod/settings.php:231
msgid "Password changed."
msgstr "Wachtwoord veranderd."
-#: ../../mod/settings.php:216
+#: ../../mod/settings.php:233
msgid "Password update failed. Please try again."
msgstr "Bijwerken wachtwoord mislukt. Probeer opnieuw."
-#: ../../mod/settings.php:230
+#: ../../mod/settings.php:247
msgid "Not valid email."
msgstr "Geen geldig e-mailadres."
-#: ../../mod/settings.php:233
+#: ../../mod/settings.php:250
msgid "Protected email address. Cannot change to that email."
msgstr "Beschermd e-mailadres. Kan dat e-mailadres niet gebruiken."
-#: ../../mod/settings.php:242
+#: ../../mod/settings.php:259
msgid "System failure storing new email. Please try again."
msgstr "Systeemfout opslaan van nieuwe e-mail. Probeer het nog een keer."
-#: ../../mod/settings.php:445
+#: ../../mod/settings.php:495
msgid "Settings updated."
msgstr "Instellingen bijgewerkt."
-#: ../../mod/settings.php:516 ../../mod/settings.php:542
-#: ../../mod/settings.php:578
+#: ../../mod/settings.php:564 ../../mod/settings.php:590
+#: ../../mod/settings.php:626
msgid "Add application"
msgstr "Applicatie toevoegen"
-#: ../../mod/settings.php:519
+#: ../../mod/settings.php:567
msgid "Name of application"
msgstr "Naam van applicatie"
-#: ../../mod/settings.php:520 ../../mod/settings.php:546
+#: ../../mod/settings.php:568 ../../mod/settings.php:594
msgid "Consumer Key"
msgstr "Consumer key"
-#: ../../mod/settings.php:520 ../../mod/settings.php:521
+#: ../../mod/settings.php:568 ../../mod/settings.php:569
msgid "Automatically generated - change if desired. Max length 20"
msgstr "Automatische gegenereerd - verander wanneer gewenst. Maximale lengte is 20"
-#: ../../mod/settings.php:521 ../../mod/settings.php:547
+#: ../../mod/settings.php:569 ../../mod/settings.php:595
msgid "Consumer Secret"
msgstr "Consumer secret"
-#: ../../mod/settings.php:522 ../../mod/settings.php:548
+#: ../../mod/settings.php:570 ../../mod/settings.php:596
msgid "Redirect"
msgstr "Redirect/doorverwijzing"
-#: ../../mod/settings.php:522
+#: ../../mod/settings.php:570
msgid ""
"Redirect URI - leave blank unless your application specifically requires "
"this"
msgstr "URI voor redirect - laat leeg, behalve wanneer de applicatie dit vereist"
-#: ../../mod/settings.php:523 ../../mod/settings.php:549
+#: ../../mod/settings.php:571 ../../mod/settings.php:597
msgid "Icon url"
msgstr "URL van pictogram"
-#: ../../mod/settings.php:523
+#: ../../mod/settings.php:571
msgid "Optional"
msgstr "Optioneel"
-#: ../../mod/settings.php:534
+#: ../../mod/settings.php:582
msgid "You can't edit this application."
msgstr "Je kan deze applicatie niet bewerken"
-#: ../../mod/settings.php:577
+#: ../../mod/settings.php:625
msgid "Connected Apps"
msgstr "Verbonden applicaties"
-#: ../../mod/settings.php:581
+#: ../../mod/settings.php:629
msgid "Client key starts with"
msgstr "Client key begint met"
-#: ../../mod/settings.php:582
+#: ../../mod/settings.php:630
msgid "No name"
msgstr "Geen naam"
-#: ../../mod/settings.php:583
+#: ../../mod/settings.php:631
msgid "Remove authorization"
msgstr "Autorisatie verwijderen"
-#: ../../mod/settings.php:594
+#: ../../mod/settings.php:642
msgid "No feature settings configured"
msgstr "Geen plugin-instellingen ingesteld"
-#: ../../mod/settings.php:602
+#: ../../mod/settings.php:650
msgid "Feature Settings"
msgstr "Plugin-instellingen"
-#: ../../mod/settings.php:625
+#: ../../mod/settings.php:673
msgid "Account Settings"
msgstr "Account-instellingen"
-#: ../../mod/settings.php:626
+#: ../../mod/settings.php:674
msgid "Password Settings"
msgstr "Wachtwoord-instellingen"
-#: ../../mod/settings.php:627
+#: ../../mod/settings.php:675
msgid "New Password:"
msgstr "Nieuw wachtwoord:"
-#: ../../mod/settings.php:628
+#: ../../mod/settings.php:676
msgid "Confirm:"
msgstr "Bevestigen:"
-#: ../../mod/settings.php:628
+#: ../../mod/settings.php:676
msgid "Leave password fields blank unless changing"
msgstr "Laat de wachtwoordvelden leeg, behalve wanneer je deze wil veranderen"
-#: ../../mod/settings.php:630 ../../mod/settings.php:944
+#: ../../mod/settings.php:678 ../../mod/settings.php:1013
msgid "Email Address:"
msgstr "E-mailadres:"
-#: ../../mod/settings.php:631 ../../mod/removeaccount.php:61
+#: ../../mod/settings.php:679 ../../mod/removeaccount.php:61
msgid "Remove Account"
msgstr "Account verwijderen"
-#: ../../mod/settings.php:632
+#: ../../mod/settings.php:680
msgid "Remove this account from this server including all its channels"
msgstr "Dit account en al zijn kanalen van deze RedMatrix-hub verwijderen"
-#: ../../mod/settings.php:633 ../../mod/settings.php:1007
+#: ../../mod/settings.php:681 ../../mod/settings.php:1095
msgid "Warning: This action is permanent and cannot be reversed."
msgstr "Waarschuwing: Deze handeling is van permanente aard en kan niet meer worden teruggedraaid."
-#: ../../mod/settings.php:649
+#: ../../mod/settings.php:697
msgid "Off"
msgstr "Uit"
-#: ../../mod/settings.php:649
+#: ../../mod/settings.php:697
msgid "On"
msgstr "Aan"
-#: ../../mod/settings.php:656
+#: ../../mod/settings.php:704
msgid "Additional Features"
msgstr "Extra functies"
-#: ../../mod/settings.php:681
+#: ../../mod/settings.php:729
msgid "Connector Settings"
msgstr "Instellingen externe koppelingen"
-#: ../../mod/settings.php:711 ../../mod/admin.php:361
+#: ../../mod/settings.php:768
msgid "No special theme for mobile devices"
msgstr "Geen speciaal thema voor mobiele apparaten"
-#: ../../mod/settings.php:720
+#: ../../mod/settings.php:771
#, php-format
msgid "%s - (Experimental)"
msgstr "%s - (experimenteel)"
-#: ../../mod/settings.php:753
+#: ../../mod/settings.php:774 ../../mod/admin.php:363
+msgid "mobile"
+msgstr "mobiel"
+
+#: ../../mod/settings.php:810
msgid "Display Settings"
msgstr "Weergave-instellingen"
-#: ../../mod/settings.php:759
+#: ../../mod/settings.php:816
msgid "Display Theme:"
msgstr "Gebruik thema:"
-#: ../../mod/settings.php:760
+#: ../../mod/settings.php:817
msgid "Mobile Theme:"
msgstr "Mobiel thema:"
-#: ../../mod/settings.php:761
+#: ../../mod/settings.php:818
msgid "Enable user zoom on mobile devices"
msgstr "Inzoomen op smartphones en tablets toestaan"
-#: ../../mod/settings.php:762
+#: ../../mod/settings.php:819
msgid "Update browser every xx seconds"
msgstr "Ververs de webbrowser om de zoveel seconde"
-#: ../../mod/settings.php:762
+#: ../../mod/settings.php:819
msgid "Minimum of 10 seconds, no maximum"
msgstr "Minimaal 10 seconde, geen maximum"
-#: ../../mod/settings.php:763
+#: ../../mod/settings.php:820
msgid "Maximum number of conversations to load at any time:"
msgstr "Maximaal aantal conversaties die per keer geladen worden:"
-#: ../../mod/settings.php:763
+#: ../../mod/settings.php:820
msgid "Maximum of 100 items"
msgstr "Maximaal 100 conversaties"
-#: ../../mod/settings.php:764
+#: ../../mod/settings.php:821
msgid "Don't show emoticons"
msgstr "Geen emoticons weergeven"
-#: ../../mod/settings.php:765
+#: ../../mod/settings.php:822
+msgid "Link post titles to source"
+msgstr "Berichtkoppen naar originele locatie linken"
+
+#: ../../mod/settings.php:823
msgid "System Page Layout Editor - (advanced)"
msgstr "Lay-out bewerken van systeempagina's (geavanceerd)"
-#: ../../mod/settings.php:801
+#: ../../mod/settings.php:826
+msgid "Use blog/list mode on channel page"
+msgstr "Gebruik blog/lijst-modus op kanaalpagina"
+
+#: ../../mod/settings.php:826 ../../mod/settings.php:827
+msgid "(comments displayed separately)"
+msgstr "(reacties worden afzonderlijk weergeven)"
+
+#: ../../mod/settings.php:827
+msgid "Use blog/list mode on matrix page"
+msgstr "Gebruik blog/lijst-modus op matrixpagina"
+
+#: ../../mod/settings.php:828
+msgid "Channel page max height of content (in pixels)"
+msgstr "Maximale hoogte berichtinhoud op kanaalpagina (in pixels)"
+
+#: ../../mod/settings.php:828 ../../mod/settings.php:829
+msgid "click to expand content exceeding this height"
+msgstr "klik om inhoud uit te klappen die deze hoogte overschrijdt"
+
+#: ../../mod/settings.php:829
+msgid "Matrix page max height of content (in pixels)"
+msgstr "Maximale hoogte berichtinhoud op matrixpagina (in pixels)"
+
+#: ../../mod/settings.php:863
msgid "Nobody except yourself"
msgstr "Niemand, behalve jezelf"
-#: ../../mod/settings.php:802
+#: ../../mod/settings.php:864
msgid "Only those you specifically allow"
msgstr "Alleen connecties met uitdrukkelijke toestemming"
-#: ../../mod/settings.php:803
+#: ../../mod/settings.php:865
msgid "Approved connections"
msgstr "Geaccepteerde connecties"
-#: ../../mod/settings.php:804
+#: ../../mod/settings.php:866
msgid "Any connections"
msgstr "Alle connecties"
-#: ../../mod/settings.php:805
+#: ../../mod/settings.php:867
msgid "Anybody on this website"
msgstr "Iedereen op deze hub"
-#: ../../mod/settings.php:806
+#: ../../mod/settings.php:868
msgid "Anybody in this network"
msgstr "Iedereen in dit netwerk"
-#: ../../mod/settings.php:807
+#: ../../mod/settings.php:869
msgid "Anybody authenticated"
msgstr "Geauthenticeerd"
-#: ../../mod/settings.php:808
+#: ../../mod/settings.php:870
msgid "Anybody on the internet"
msgstr "Iedereen op het internet"
-#: ../../mod/settings.php:885
+#: ../../mod/settings.php:944
msgid "Publish your default profile in the network directory"
msgstr "Publiceer je standaardprofiel in de kanalengids"
-#: ../../mod/settings.php:885 ../../mod/settings.php:890
-#: ../../mod/settings.php:961 ../../mod/api.php:106 ../../mod/profiles.php:602
-#: ../../mod/admin.php:391
-msgid "No"
-msgstr "Nee"
-
-#: ../../mod/settings.php:885 ../../mod/settings.php:890
-#: ../../mod/settings.php:961 ../../mod/api.php:105 ../../mod/profiles.php:601
-#: ../../mod/admin.php:393
-msgid "Yes"
-msgstr "Ja"
-
-#: ../../mod/settings.php:890
+#: ../../mod/settings.php:949
msgid "Allow us to suggest you as a potential friend to new members?"
msgstr "Sta ons toe om jouw kanaal als mogelijke connectie voor te stellen aan nieuwe kanalen"
-#: ../../mod/settings.php:894 ../../mod/profile_photo.php:365
+#: ../../mod/settings.php:953 ../../mod/profile_photo.php:365
msgid "or"
msgstr "of"
-#: ../../mod/settings.php:899
+#: ../../mod/settings.php:958
msgid "Your channel address is"
msgstr "Jouw kanaaladres is"
-#: ../../mod/settings.php:933
+#: ../../mod/settings.php:1002
msgid "Channel Settings"
msgstr "Kanaal-instellingen"
-#: ../../mod/settings.php:942
+#: ../../mod/settings.php:1011
msgid "Basic Settings"
msgstr "Basis-instellingen"
-#: ../../mod/settings.php:945
+#: ../../mod/settings.php:1014
msgid "Your Timezone:"
msgstr "Jouw tijdzone:"
-#: ../../mod/settings.php:946
+#: ../../mod/settings.php:1015
msgid "Default Post Location:"
msgstr "Standaardlocatie bericht:"
-#: ../../mod/settings.php:946
+#: ../../mod/settings.php:1015
msgid "Geographical location to display on your posts"
msgstr "Geografische locatie die bij het bericht moet worden vermeld"
-#: ../../mod/settings.php:947
+#: ../../mod/settings.php:1016
msgid "Use Browser Location:"
msgstr "Locatie van webbrowser gebruiken:"
-#: ../../mod/settings.php:949
+#: ../../mod/settings.php:1018
msgid "Adult Content"
msgstr "Inhoud voor volwassenen"
-#: ../../mod/settings.php:949
+#: ../../mod/settings.php:1018
msgid ""
"This channel frequently or regularly publishes adult content. (Please tag "
"any adult material and/or nudity with #NSFW)"
-msgstr "Dit kanaal publiceert regelmatig of vaak materiaal dat alleen geschikt is voor volwassen. (Gebruik de hashtag #NSFW in berichten met een seksueel getinte inhoud of ander voor minderjarigen ongeschikt materiaal)"
+msgstr "Dit kanaal publiceert regelmatig of vaak materiaal dat alleen geschikt is voor volwassenen. (Gebruik de hashtag #NSFW in berichten met een seksueel getinte inhoud of ander voor minderjarigen ongeschikt materiaal)"
-#: ../../mod/settings.php:951
+#: ../../mod/settings.php:1020
msgid "Security and Privacy Settings"
-msgstr "Veiligheids- privacy-instellingen"
+msgstr "Veiligheids- en privacy-instellingen"
+
+#: ../../mod/settings.php:1022
+msgid "Your permissions are already configured. Click to view/adjust"
+msgstr "Jouw permissies zijn al ingesteld. Klik om ze te bekijken of aan te passen."
-#: ../../mod/settings.php:953
+#: ../../mod/settings.php:1024
msgid "Hide my online presence"
msgstr "Verberg mijn aanwezigheid"
-#: ../../mod/settings.php:953
+#: ../../mod/settings.php:1024
msgid "Prevents displaying in your profile that you are online"
msgstr "Voorkomt dat op je kanaal te zien valt dat je momenteel op de RedMatrix aanwezig bent"
-#: ../../mod/settings.php:955
+#: ../../mod/settings.php:1026
msgid "Simple Privacy Settings:"
msgstr "Eenvoudige privacy-instellingen:"
-#: ../../mod/settings.php:956
+#: ../../mod/settings.php:1027
msgid ""
"Very Public - <em>extremely permissive (should be used with caution)</em>"
msgstr "Zeer openbaar <em>(kanaal staat volledig open - moet met grote zorgvuldigheid gebruikt worden)</em>"
-#: ../../mod/settings.php:957
+#: ../../mod/settings.php:1028
msgid ""
"Typical - <em>default public, privacy when desired (similar to social "
"network permissions but with improved privacy)</em>"
msgstr "Normaal <em>(standaard openbaar, maar privacy wanneer noodzakelijk - vergelijkbaar met die van sociale netwerken, maar met verbeterde privacy)</em>"
-#: ../../mod/settings.php:958
+#: ../../mod/settings.php:1029
msgid "Private - <em>default private, never open or public</em>"
msgstr "Privé <em>(standaard privé en nooit openbaar)</em>"
-#: ../../mod/settings.php:959
+#: ../../mod/settings.php:1030
msgid "Blocked - <em>default blocked to/from everybody</em>"
msgstr "Geblokkeerd <em>(standaard geblokkeerd naar/van iedereen)</em>"
-#: ../../mod/settings.php:961
+#: ../../mod/settings.php:1032
msgid "Allow others to tag your posts"
msgstr "Anderen toestaan om je berichten te labelen"
-#: ../../mod/settings.php:961
+#: ../../mod/settings.php:1032
msgid ""
"Often used by the community to retro-actively flag inappropriate content"
msgstr "Vaak in groepen/forums gebruikt om met terugwerkende kracht ongepast materiaal te markeren"
-#: ../../mod/settings.php:963
+#: ../../mod/settings.php:1034
msgid "Advanced Privacy Settings"
msgstr "Geavanceerde privacy-instellingen"
-#: ../../mod/settings.php:965
+#: ../../mod/settings.php:1036
msgid "Expire other channel content after this many days"
msgstr "Inhoud van andere kanalen na zoveel aantal dagen laten verlopen:"
-#: ../../mod/settings.php:965
+#: ../../mod/settings.php:1036
msgid "0 or blank prevents expiration"
msgstr "0 of leeg voorkomt het verlopen"
-#: ../../mod/settings.php:966
+#: ../../mod/settings.php:1037
msgid "Maximum Friend Requests/Day:"
msgstr "Maximum aantal connectieverzoeken per dag:"
-#: ../../mod/settings.php:966
+#: ../../mod/settings.php:1037
msgid "May reduce spam activity"
msgstr "Kan eventuele spam verminderen"
-#: ../../mod/settings.php:967
+#: ../../mod/settings.php:1038
msgid "Default Post Permissions"
-msgstr "Standaard privacy-rechten voor nieuwe berichten"
+msgstr "Standaard permissies voor nieuwe berichten"
-#: ../../mod/settings.php:979
+#: ../../mod/settings.php:1043
+msgid "Channel permissions category:"
+msgstr "Kanaaltype en -permissies:"
+
+#: ../../mod/settings.php:1051
msgid "Maximum private messages per day from unknown people:"
msgstr "Maximum aantal privé-berichten per dag van onbekende personen:"
-#: ../../mod/settings.php:979
+#: ../../mod/settings.php:1051
msgid "Useful to reduce spamming"
msgstr "Kan eventuele spam verminderen"
-#: ../../mod/settings.php:982
+#: ../../mod/settings.php:1054
msgid "Notification Settings"
msgstr "Notificatie-instellingen"
-#: ../../mod/settings.php:983
+#: ../../mod/settings.php:1055
msgid "By default post a status message when:"
msgstr "Plaats automatisch een statusbericht wanneer:"
-#: ../../mod/settings.php:984
+#: ../../mod/settings.php:1056
msgid "accepting a friend request"
msgstr "Een connectieverzoek wordt geaccepteerd"
-#: ../../mod/settings.php:985
+#: ../../mod/settings.php:1057
msgid "joining a forum/community"
-msgstr "Je lid wordt van een groep/forum"
+msgstr "Je lid wordt van een forum/groep"
-#: ../../mod/settings.php:986
+#: ../../mod/settings.php:1058
msgid "making an <em>interesting</em> profile change"
msgstr "Er sprake is van een <em>interessante</em> profielwijziging"
-#: ../../mod/settings.php:987
+#: ../../mod/settings.php:1059
msgid "Send a notification email when:"
msgstr "Verzend een notificatie per e-mail wanneer:"
-#: ../../mod/settings.php:988
+#: ../../mod/settings.php:1060
msgid "You receive a connection request"
msgstr "Je een connectieverzoek ontvangt"
-#: ../../mod/settings.php:989
+#: ../../mod/settings.php:1061
msgid "Your connections are confirmed"
msgstr "Jouw connecties zijn bevestigd"
-#: ../../mod/settings.php:990
+#: ../../mod/settings.php:1062
msgid "Someone writes on your profile wall"
msgstr "Iemand iets op jouw kanaal heeft geschreven"
-#: ../../mod/settings.php:991
+#: ../../mod/settings.php:1063
msgid "Someone writes a followup comment"
msgstr "Iemand een reactie schrijft"
-#: ../../mod/settings.php:992
+#: ../../mod/settings.php:1064
msgid "You receive a private message"
msgstr "Je een privé-bericht ontvangt"
-#: ../../mod/settings.php:993
+#: ../../mod/settings.php:1065
msgid "You receive a friend suggestion"
msgstr "Je een kanaalvoorstel ontvangt"
-#: ../../mod/settings.php:994
+#: ../../mod/settings.php:1066
msgid "You are tagged in a post"
msgstr "Je expliciet in een bericht bent genoemd"
-#: ../../mod/settings.php:995
+#: ../../mod/settings.php:1067
msgid "You are poked/prodded/etc. in a post"
msgstr "Je bent in een bericht aangestoten/gepord/etc."
-#: ../../mod/settings.php:998
-msgid "Advanced Account/Page Type Settings"
-msgstr "Instellingen geavanceerd account/paginatype"
-
-#: ../../mod/settings.php:999
-msgid "Change the behaviour of this account for special situations"
-msgstr "Verander het gedrag van dit account voor speciale situaties"
-
-#: ../../mod/settings.php:1002
-msgid ""
-"Please enable expert mode (in <a href=\"settings/features\">Settings > "
-"Additional features</a>) to adjust!"
-msgstr "Schakel de expertmodus in (in <a href=\"settings/features\">Instellingen > Extra functies</a>) om aan te kunnen passen!"
-
-#: ../../mod/settings.php:1003
-msgid "Miscellaneous Settings"
-msgstr "Diverse instellingen"
-
-#: ../../mod/settings.php:1005
-msgid "Personal menu to display in your channel pages"
-msgstr "Persoonlijk menu om op je kanaalpagina's weer te geven"
+#: ../../mod/settings.php:1070
+msgid "Show visual notifications including:"
+msgstr "Toon de volgende zichtbare notificaties:"
-#: ../../mod/settings.php:1006
-msgid "Remove this channel"
-msgstr "Verwijder dit kanaal"
+#: ../../mod/settings.php:1072
+msgid "Unseen matrix activity"
+msgstr "Niet bekeken matrix-activiteit"
-#: ../../mod/poke.php:159
-msgid "Poke/Prod"
-msgstr "Aanstoten/porren"
+#: ../../mod/settings.php:1073
+msgid "Unseen channel activity"
+msgstr "Niet bekeken kanaal-activiteit"
-#: ../../mod/poke.php:160
-msgid "poke, prod or do other things to somebody"
-msgstr "aanstoten, porren of andere dingen met iemand doen"
+#: ../../mod/settings.php:1074
+msgid "Unseen private messages"
+msgstr "Niet bekeken privéberichten"
-#: ../../mod/poke.php:161
-msgid "Recipient"
-msgstr "Ontvanger"
-
-#: ../../mod/poke.php:162
-msgid "Choose what you wish to do to recipient"
-msgstr "Kies wat je met de ontvanger wil doen"
-
-#: ../../mod/poke.php:165
-msgid "Make this post private"
-msgstr "Maak dit bericht privé"
+#: ../../mod/settings.php:1074 ../../mod/settings.php:1079
+#: ../../mod/settings.php:1080 ../../mod/settings.php:1081
+msgid "Recommended"
+msgstr "Aanbevolen"
-#: ../../mod/api.php:76 ../../mod/api.php:102
-msgid "Authorize application connection"
-msgstr "Geef toestemming voor applicatiekoppeling"
+#: ../../mod/settings.php:1075
+msgid "Upcoming events"
+msgstr "Aankomende gebeurtenissen"
-#: ../../mod/api.php:77
-msgid "Return to your app and insert this Securty Code:"
-msgstr "Ga terug naar je app en voeg deze beveiligingscode in:"
+#: ../../mod/settings.php:1076
+msgid "Events today"
+msgstr "Gebeurtissen van vandaag"
-#: ../../mod/api.php:89
-msgid "Please login to continue."
-msgstr "Inloggen om verder te kunnen gaan."
+#: ../../mod/settings.php:1077
+msgid "Upcoming birthdays"
+msgstr "Aankomende verjaardagen"
-#: ../../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 "Wil je deze applicatie toestemming geven om jouw berichten en connecties te zien, en/of nieuwe berichten voor jou te plaatsen?"
+#: ../../mod/settings.php:1077
+msgid "Not available in all themes"
+msgstr "Niet in alle thema's beschikbaar"
-#: ../../mod/post.php:229
-msgid ""
-"Remote authentication blocked. You are logged into this site locally. Please"
-" logout and retry."
-msgstr "Authenticatie op afstand geblokkeerd. Je bent lokaal op deze hub ingelogd. Uitloggen en opnieuw proberen."
+#: ../../mod/settings.php:1078
+msgid "System (personal) notifications"
+msgstr "(Persoonlijke) systeemnotificaties"
-#: ../../mod/post.php:261 ../../mod/openid.php:72 ../../mod/openid.php:178
-#, php-format
-msgid "Welcome %s. Remote authentication successful."
-msgstr "Welkom %s. Authenticatie op afstand geslaagd."
+#: ../../mod/settings.php:1079
+msgid "System info messages"
+msgstr "Systeemmededelingen"
-#: ../../mod/attach.php:9
-msgid "Item not available."
-msgstr "Item is niet aanwezig."
+#: ../../mod/settings.php:1080
+msgid "System critical alerts"
+msgstr "Kritische systeemwaarschuwingen"
-#: ../../mod/probe.php:23 ../../mod/probe.php:29
-#, php-format
-msgid "Fetching URL returns error: %1$s"
-msgstr "Ophalen URL gaf een foutmelding terug: %1$s"
+#: ../../mod/settings.php:1081
+msgid "New connections"
+msgstr "Nieuwe connecties"
-#: ../../mod/block.php:27 ../../mod/page.php:35
-msgid "Invalid item."
-msgstr "Ongeldig item."
+#: ../../mod/settings.php:1082
+msgid "System Registrations"
+msgstr "Nieuwe accountregistraties op deze hub"
-#: ../../mod/block.php:39 ../../mod/chanview.php:77 ../../mod/page.php:47
-#: ../../mod/home.php:54 ../../mod/wall_upload.php:28
-msgid "Channel not found."
-msgstr "Kanaal niet gevonden."
+#: ../../mod/settings.php:1084
+msgid "Notify me of events this many days in advance"
+msgstr "Herinner mij zoveel dagen van te voren aan gebeurtenissen"
-#: ../../mod/block.php:75 ../../mod/page.php:83 ../../mod/display.php:100
-#: ../../mod/help.php:72 ../../index.php:236
-msgid "Page not found."
-msgstr "Pagina niet gevonden."
+#: ../../mod/settings.php:1084
+msgid "Must be greater than 0"
+msgstr "Moet hoger dan 0 zijn"
-#: ../../mod/profile_photo.php:108
-msgid "Image uploaded but image cropping failed."
-msgstr "Afbeelding geüpload, maar afbeelding kon niet worden bijgesneden. "
+#: ../../mod/settings.php:1086
+msgid "Advanced Account/Page Type Settings"
+msgstr "Instellingen geavanceerd account/paginatype"
-#: ../../mod/profile_photo.php:161
-msgid "Image resize failed."
-msgstr "Afbeelding kon niet van grootte veranderd worden."
+#: ../../mod/settings.php:1087
+msgid "Change the behaviour of this account for special situations"
+msgstr "Verander het gedrag van dit account voor speciale situaties"
-#: ../../mod/profile_photo.php:205
+#: ../../mod/settings.php:1090
msgid ""
-"Shift-reload the page or clear browser cache if the new photo does not "
-"display immediately."
-msgstr "Vernieuw de pagina met shift+R of shift+F5, of leeg je browserbuffer, wanneer de nieuwe foto niet meteen wordt weergegeven."
-
-#: ../../mod/profile_photo.php:232
-#, php-format
-msgid "Image exceeds size limit of %d"
-msgstr "Afbeeldingsgrootte overschrijdt het limiet van %d"
-
-#: ../../mod/profile_photo.php:241
-msgid "Unable to process image."
-msgstr "Niet in staat om afbeelding te verwerken."
-
-#: ../../mod/profile_photo.php:290 ../../mod/profile_photo.php:339
-msgid "Photo not available."
-msgstr "Foto niet beschikbaar."
-
-#: ../../mod/profile_photo.php:358
-msgid "Upload File:"
-msgstr "Bestand uploaden:"
-
-#: ../../mod/profile_photo.php:359
-msgid "Select a profile:"
-msgstr "Kies een profiel:"
-
-#: ../../mod/profile_photo.php:360
-msgid "Upload Profile Photo"
-msgstr "Profielfoto uploaden"
-
-#: ../../mod/profile_photo.php:365
-msgid "skip this step"
-msgstr "sla deze stap over"
-
-#: ../../mod/profile_photo.php:365
-msgid "select a photo from your photo albums"
-msgstr "Kies een foto uit jouw fotoalbums"
-
-#: ../../mod/profile_photo.php:379
-msgid "Crop Image"
-msgstr "Afbeelding bijsnijden"
-
-#: ../../mod/profile_photo.php:380
-msgid "Please adjust the image cropping for optimum viewing."
-msgstr "Snij de afbeelding zo uit dat deze optimaal wordt weergegeven."
-
-#: ../../mod/profile_photo.php:382
-msgid "Done Editing"
-msgstr "Klaar met bewerken"
-
-#: ../../mod/profile_photo.php:425
-msgid "Image uploaded successfully."
-msgstr "Uploaden afbeelding geslaagd"
-
-#: ../../mod/profile_photo.php:427
-msgid "Image upload failed."
-msgstr "Uploaden afbeelding mislukt"
-
-#: ../../mod/profile_photo.php:436
-#, php-format
-msgid "Image size reduction [%s] failed."
-msgstr "Verkleinen [%s] van afbeelding mislukt."
-
-#: ../../mod/blocks.php:62
-msgid "Block Name"
-msgstr "Bloknaam"
-
-#: ../../mod/profiles.php:18 ../../mod/profiles.php:165
-#: ../../mod/profiles.php:222 ../../mod/profiles.php:575
-msgid "Profile not found."
-msgstr "Profiel niet gevonden."
-
-#: ../../mod/profiles.php:38
-msgid "Profile deleted."
-msgstr "Profiel verwijderd."
-
-#: ../../mod/profiles.php:56 ../../mod/profiles.php:92
-msgid "Profile-"
-msgstr "Profiel-"
-
-#: ../../mod/profiles.php:77 ../../mod/profiles.php:120
-msgid "New profile created."
-msgstr "Nieuw profiel aangemaakt."
-
-#: ../../mod/profiles.php:98
-msgid "Profile unavailable to clone."
-msgstr "Profiel niet beschikbaar om te klonen"
-
-#: ../../mod/profiles.php:136
-msgid "Profile unavailable to export."
-msgstr "Geen profiel beschikbaar om te exporteren"
-
-#: ../../mod/profiles.php:232
-msgid "Profile Name is required."
-msgstr "Profielnaam is vereist"
-
-#: ../../mod/profiles.php:390
-msgid "Marital Status"
-msgstr "Huwelijke status"
-
-#: ../../mod/profiles.php:394
-msgid "Romantic Partner"
-msgstr "Romantische partner"
-
-#: ../../mod/profiles.php:398
-msgid "Likes"
-msgstr "Houdt van"
-
-#: ../../mod/profiles.php:402
-msgid "Dislikes"
-msgstr "Houdt niet van"
-
-#: ../../mod/profiles.php:406
-msgid "Work/Employment"
-msgstr "Werk/arbeid"
-
-#: ../../mod/profiles.php:409
-msgid "Religion"
-msgstr "Religie"
-
-#: ../../mod/profiles.php:413
-msgid "Political Views"
-msgstr "Politieke overtuigingen"
-
-#: ../../mod/profiles.php:417
-msgid "Gender"
-msgstr "Geslacht"
-
-#: ../../mod/profiles.php:421
-msgid "Sexual Preference"
-msgstr "Seksuele voorkeur"
-
-#: ../../mod/profiles.php:425
-msgid "Homepage"
-msgstr "Homepage"
-
-#: ../../mod/profiles.php:429
-msgid "Interests"
-msgstr "Interesses"
-
-#: ../../mod/profiles.php:433 ../../mod/admin.php:865
-msgid "Address"
-msgstr "Kanaaladres"
-
-#: ../../mod/profiles.php:440 ../../mod/pubsites.php:25
-msgid "Location"
-msgstr "Locatie"
-
-#: ../../mod/profiles.php:523
-msgid "Profile updated."
-msgstr "Profiel bijgewerkt"
-
-#: ../../mod/profiles.php:600
-msgid "Hide your contact/friend list from viewers of this profile?"
-msgstr "Laat de lijst met connecties niet aan bezoekers van dit profiel zien."
-
-#: ../../mod/profiles.php:642
-msgid "Edit Profile Details"
-msgstr "Profiel bewerken"
-
-#: ../../mod/profiles.php:644
-msgid "View this profile"
-msgstr "Profiel weergeven"
-
-#: ../../mod/profiles.php:646
-msgid "Change Profile Photo"
-msgstr "Profielfoto wijzigen"
-
-#: ../../mod/profiles.php:647
-msgid "Create a new profile using these settings"
-msgstr "Een nieuw profiel aanmaken met dit profiel als basis"
-
-#: ../../mod/profiles.php:648
-msgid "Clone this profile"
-msgstr "Dit profiel klonen"
-
-#: ../../mod/profiles.php:649
-msgid "Delete this profile"
-msgstr "Dit profiel verwijderen"
-
-#: ../../mod/profiles.php:651
-msgid "Import profile from file"
-msgstr "Profiel vanuit bestand importeren"
-
-#: ../../mod/profiles.php:652
-msgid "Export profile to file"
-msgstr "Profiel naar bestand exporteren"
-
-#: ../../mod/profiles.php:653
-msgid "Profile Name:"
-msgstr "Profielnaam:"
-
-#: ../../mod/profiles.php:654
-msgid "Your Full Name:"
-msgstr "Jouw volledige naam:"
-
-#: ../../mod/profiles.php:655
-msgid "Title/Description:"
-msgstr "Titel/omschrijving:"
-
-#: ../../mod/profiles.php:656
-msgid "Your Gender:"
-msgstr "Jouw geslacht"
-
-#: ../../mod/profiles.php:657
-#, php-format
-msgid "Birthday (%s):"
-msgstr "Geboortedag (%s)"
-
-#: ../../mod/profiles.php:658
-msgid "Street Address:"
-msgstr "Straat en huisnummer:"
-
-#: ../../mod/profiles.php:659
-msgid "Locality/City:"
-msgstr "Woonplaats:"
-
-#: ../../mod/profiles.php:660
-msgid "Postal/Zip Code:"
-msgstr "Postcode:"
-
-#: ../../mod/profiles.php:661
-msgid "Country:"
-msgstr "Land:"
-
-#: ../../mod/profiles.php:662
-msgid "Region/State:"
-msgstr "Provincie/gewest/deelstaat:"
-
-#: ../../mod/profiles.php:663
-msgid "<span class=\"heart\">&hearts;</span> Marital Status:"
-msgstr "<span class=\"heart\">&hearts;</span> Huwelijkse staat:"
-
-#: ../../mod/profiles.php:664
-msgid "Who: (if applicable)"
-msgstr "Wie (wanneer toepasselijk):"
-
-#: ../../mod/profiles.php:665
-msgid "Examples: cathy123, Cathy Williams, cathy@example.com"
-msgstr "Voorbeelden: karin123, Karin Jansen, cathy@voorbeeld.nl"
-
-#: ../../mod/profiles.php:666
-msgid "Since [date]:"
-msgstr "Sinds [datum]:"
-
-#: ../../mod/profiles.php:668
-msgid "Homepage URL:"
-msgstr "Adres homepage:"
-
-#: ../../mod/profiles.php:671
-msgid "Religious Views:"
-msgstr "Religieuze overtuigingen"
-
-#: ../../mod/profiles.php:672
-msgid "Keywords:"
-msgstr "Trefwoorden"
-
-#: ../../mod/profiles.php:675
-msgid "Example: fishing photography software"
-msgstr "Voorbeeld: muziek, fotografie, software"
-
-#: ../../mod/profiles.php:676
-msgid "Used in directory listings"
-msgstr "Wordt in de kanalengids gebruikt"
-
-#: ../../mod/profiles.php:677
-msgid "Tell us about yourself..."
-msgstr "Vertel ons iets over jezelf..."
-
-#: ../../mod/profiles.php:678
-msgid "Hobbies/Interests"
-msgstr "Hobby's/interesses"
+"Please enable expert mode (in <a href=\"settings/features\">Settings > "
+"Additional features</a>) to adjust!"
+msgstr "Schakel de expertmodus in (in <a href=\"settings/features\">Instellingen > Extra functies</a>) om aan te kunnen passen!"
-#: ../../mod/profiles.php:679
-msgid "Contact information and Social Networks"
-msgstr "Contactinformatie en sociale netwerken"
+#: ../../mod/settings.php:1091
+msgid "Miscellaneous Settings"
+msgstr "Diverse instellingen"
-#: ../../mod/profiles.php:680
-msgid "My other channels"
-msgstr "Mijn andere kanalen"
+#: ../../mod/settings.php:1093
+msgid "Personal menu to display in your channel pages"
+msgstr "Persoonlijk menu om op je kanaalpagina's weer te geven"
-#: ../../mod/profiles.php:681
-msgid "Musical interests"
-msgstr "Muzikale interesses"
+#: ../../mod/settings.php:1094
+msgid "Remove this channel"
+msgstr "Verwijder dit kanaal"
-#: ../../mod/profiles.php:682
-msgid "Books, literature"
-msgstr "Boeken/literatuur"
+#: ../../mod/events.php:81
+msgid "Event can not end before it has started."
+msgstr "Gebeurtenis kan niet eindigen voordat het is begonnen"
-#: ../../mod/profiles.php:683
-msgid "Television"
-msgstr "Televisie"
+#: ../../mod/events.php:86
+msgid "Event title and start time are required."
+msgstr "Titel en begintijd van gebeurtenis zijn vereist."
-#: ../../mod/profiles.php:684
-msgid "Film/dance/culture/entertainment"
-msgstr "Film/dans/cultuur/entertainment"
+#: ../../mod/events.php:100
+msgid "Event not found."
+msgstr "Gebeurtenis niet gevonden"
-#: ../../mod/profiles.php:685
-msgid "Love/romance"
-msgstr "Liefde/romantiek"
+#: ../../mod/events.php:369
+msgid "l, F j"
+msgstr "l j F"
-#: ../../mod/profiles.php:686
-msgid "Work/employment"
-msgstr "Werk/arbeid"
+#: ../../mod/events.php:391
+msgid "Edit event"
+msgstr "Gebeurtenis bewerken"
-#: ../../mod/profiles.php:687
-msgid "School/education"
-msgstr "School/onderwijs"
+#: ../../mod/events.php:443
+msgid "Create New Event"
+msgstr "Nieuwe gebeurtenis aanmaken"
-#: ../../mod/profiles.php:693
-msgid "This is your default profile."
-msgstr "Dit is jouw standaardprofiel"
+#: ../../mod/events.php:444 ../../mod/photos.php:859
+msgid "Previous"
+msgstr "Vorige"
-#: ../../mod/profiles.php:704 ../../mod/directory.php:143
-#: ../../mod/dirprofile.php:92
-msgid "Age: "
-msgstr "Leeftijd:"
+#: ../../mod/events.php:446
+msgid "Export"
+msgstr "Exporteren"
-#: ../../mod/profiles.php:747
-msgid "Edit/Manage Profiles"
-msgstr "Profielen bewerken/beheren"
+#: ../../mod/events.php:571
+msgid "Event details"
+msgstr "Details van gebeurtenis"
-#: ../../mod/profiles.php:748
-msgid "Add profile things"
-msgstr "Dingen aan je profiel toevoegen"
+#: ../../mod/events.php:572
+msgid "Starting date and Title are required."
+msgstr "Begintijd en titel zijn vereist."
-#: ../../mod/profiles.php:749
-msgid "Include desirable objects in your profile"
-msgstr "Voeg door jou gewenste dingen aan jouw profiel toe"
+#: ../../mod/events.php:574
+msgid "Categories (comma-separated list)"
+msgstr "Categorieën (door komma's gescheiden lijst)"
-#: ../../mod/bookmarks.php:38
-msgid "Bookmark added"
-msgstr "Bladwijzer toegevoegd"
+#: ../../mod/events.php:576
+msgid "Event Starts:"
+msgstr "Begin gebeurtenis:"
-#: ../../mod/bookmarks.php:58
-msgid "My Bookmarks"
-msgstr "Mijn bladwijzers"
+#: ../../mod/events.php:576 ../../mod/events.php:592 ../../mod/appman.php:91
+#: ../../mod/appman.php:92
+msgid "Required"
+msgstr "Vereist"
-#: ../../mod/bookmarks.php:69
-msgid "My Connections Bookmarks"
-msgstr "Bladwijzers van mijn connecties"
+#: ../../mod/events.php:582
+msgid "Finish date/time is not known or not relevant"
+msgstr "Einddatum/-tijd is niet bekend of niet relevant"
-#: ../../mod/profperm.php:29 ../../mod/profperm.php:58
-msgid "Invalid profile identifier."
-msgstr "Ongeldige profiel-identificator"
+#: ../../mod/events.php:584
+msgid "Event Finishes:"
+msgstr "Einde gebeurtenis:"
-#: ../../mod/profperm.php:110
-msgid "Profile Visibility Editor"
-msgstr "Zichtbaarheid profiel "
+#: ../../mod/events.php:586
+msgid "Adjust for viewer timezone"
+msgstr "Aanpassen aan de tijdzone van wie deze gebeurtenis bekijkt"
-#: ../../mod/profperm.php:114
-msgid "Click on a contact to add or remove."
-msgstr "Klik op een connectie om deze toe te voegen of te verwijderen"
+#: ../../mod/events.php:588
+msgid "Description:"
+msgstr "Omschrijving:"
-#: ../../mod/profperm.php:123
-msgid "Visible To"
-msgstr "Zichtbaar voor"
+#: ../../mod/events.php:592
+msgid "Title:"
+msgstr "Titel:"
-#: ../../mod/profperm.php:139 ../../mod/connections.php:279
-msgid "All Connections"
-msgstr "Alle connecties"
+#: ../../mod/events.php:594
+msgid "Share this event"
+msgstr "Deel deze gebeurtenis"
#: ../../mod/pubsites.php:16
msgid "Public Sites"
@@ -4632,13 +5103,17 @@ msgstr "Toegangstype"
msgid "Registration Policy"
msgstr "Registratiebeleid"
+#: ../../mod/pubsites.php:25 ../../mod/profiles.php:428
+msgid "Location"
+msgstr "Locatie"
+
#: ../../mod/channel.php:25 ../../mod/chat.php:19
msgid "You must be logged in to see this page."
msgstr "Je moet zijn ingelogd om deze pagina te kunnen bekijken."
#: ../../mod/channel.php:86
msgid "Insufficient permissions. Request redirected to profile page."
-msgstr "Onvoldoende privacy-rechten. Doorgestuurd naar profielpagina."
+msgstr "Onvoldoende permissies. Doorgestuurd naar profielpagina."
#: ../../mod/rbmark.php:88
msgid "Select a bookmark folder"
@@ -4697,84 +5172,52 @@ msgstr "Naam chatkanaal"
msgid "%1$s's Chatrooms"
msgstr "Chatkanalen van %1$s"
-#: ../../mod/register.php:43
-msgid "Maximum daily site registrations exceeded. Please try again tomorrow."
-msgstr "Maximum toegestane dagelijkse registraties op deze RedMatrix-hub bereikt. Probeer het morgen (UTC) nogmaals."
-
-#: ../../mod/register.php:49
-msgid ""
-"Please indicate acceptance of the Terms of Service. Registration failed."
-msgstr "Registratie mislukt. De gebruiksvoorwaarden dienen wel geaccepteerd te worden."
-
-#: ../../mod/register.php:83
-msgid "Passwords do not match."
-msgstr "Wachtwoorden komen niet met elkaar overeen."
-
-#: ../../mod/register.php:116
-msgid ""
-"Registration successful. Please check your email for validation "
-"instructions."
-msgstr "Registratie geslaagd. Controleer je e-mail voor instructies."
-
-#: ../../mod/register.php:122
-msgid "Your registration is pending approval by the site owner."
-msgstr "Jouw accountregistratie wacht op goedkeuring van de beheerder van deze RedMatrix-hub."
+#: ../../mod/siteinfo.php:92
+#, php-format
+msgid "Version %s"
+msgstr "Versie %s"
-#: ../../mod/register.php:125
-msgid "Your registration can not be processed."
-msgstr "Jouw registratie kan niet verwerkt worden."
+#: ../../mod/siteinfo.php:113
+msgid "Installed plugins/addons/apps:"
+msgstr "Ingeschakelde plug-ins/add-ons/apps:"
-#: ../../mod/register.php:162
-msgid "Registration on this site/hub is by approval only."
-msgstr "Registraties op deze RedMatrix-hub moeten eerst worden goedgekeurd."
+#: ../../mod/siteinfo.php:126
+msgid "No installed plugins/addons/apps"
+msgstr "Geen ingeschakelde plug-ins/add-ons/apps"
-#: ../../mod/register.php:163
-msgid "<a href=\"pubsites\">Register at another affiliated site/hub</a>"
-msgstr "<a href=\"pubsites\">Registreer op een andere RedMatrix-hub</a>"
+#: ../../mod/siteinfo.php:134
+msgid "Red"
+msgstr "Red"
-#: ../../mod/register.php:171
+#: ../../mod/siteinfo.php:135
msgid ""
-"This site has exceeded the number of allowed daily account registrations. "
-"Please try again tomorrow."
-msgstr "Deze RedMatrix-hub heeft het maximum aantal dagelijks toegestane registraties bereikt. Probeer het morgen (UTC) nogmaals."
-
-#: ../../mod/register.php:182
-msgid "Terms of Service"
-msgstr "Gebruiksvoorwaarden"
-
-#: ../../mod/register.php:188
-#, php-format
-msgid "I accept the %s for this website"
-msgstr "Ik accepteer de %s van deze RedMatrix-hub"
-
-#: ../../mod/register.php:190
-#, php-format
-msgid "I am over 13 years of age and accept the %s for this website"
-msgstr "Ik accepteer de %s van deze RedMatrix-hub"
-
-#: ../../mod/register.php:204 ../../mod/admin.php:414
-msgid "Registration"
-msgstr "Registratie"
+"This is a hub of the Red Matrix - a global cooperative network of "
+"decentralized privacy enhanced websites."
+msgstr "Dit is een hub van de RedMatrix - een wereldwijd coöperatief netwerk van gedecentraliseerde websites met verbeterde privacy."
-#: ../../mod/register.php:209
-msgid "Membership on this site is by invitation only."
-msgstr "Registreren op deze RedMatrix-hub kan alleen op uitnodiging."
+#: ../../mod/siteinfo.php:139
+msgid "Running at web location"
+msgstr "Draaiend op weblocatie"
-#: ../../mod/register.php:210
-msgid "Please enter your invitation code"
-msgstr "Vul jouw uitnodigingscode in"
+#: ../../mod/siteinfo.php:140
+msgid ""
+"Please visit <a href=\"http://getzot.com\">GetZot.com</a> to learn more "
+"about the Red Matrix."
+msgstr "Bezoek <a href=\"http://redmatrix.me\">RedMatrix.me</a> om meer te leren over de RedMatrix."
-#: ../../mod/register.php:213
-msgid "Your email address"
-msgstr "Jouw e-mailadres"
+#: ../../mod/siteinfo.php:141
+msgid "Bug reports and issues: please visit"
+msgstr "Bugrapporten en andere kwesties: bezoek"
-#: ../../mod/register.php:214
-msgid "Choose a password"
-msgstr "Geef een wachtwoord op"
+#: ../../mod/siteinfo.php:144
+msgid ""
+"Suggestions, praise, etc. - please email \"redmatrix\" at librelist - dot "
+"com"
+msgstr "Voorstellen, lofbetuigingen, enz. - e-mail \"redmatrix\" at librelist - dot com"
-#: ../../mod/register.php:215
-msgid "Please re-enter your password"
-msgstr "Geef het wachtwoord opnieuw op"
+#: ../../mod/siteinfo.php:146
+msgid "Site Administrators"
+msgstr "Hubbeheerders: "
#: ../../mod/chatsvc.php:111
msgid "Away"
@@ -4784,13 +5227,52 @@ msgstr "Afwezig"
msgid "Online"
msgstr "Online"
-#: ../../mod/regmod.php:12
+#: ../../mod/regmod.php:11
msgid "Please login."
msgstr "Inloggen."
-#: ../../mod/cloud.php:126
-msgid "Red Matrix - Guests: Username: {your email address}, Password: +++"
-msgstr "RedMatrix - gasten: Gebruikersnaam: {jouw e-mailadres}, wachtwoord: +++"
+#: ../../mod/connect.php:56 ../../mod/connect.php:104
+msgid "Continue"
+msgstr "Ga verder"
+
+#: ../../mod/connect.php:85
+msgid "Premium Channel Setup"
+msgstr "Instellen premiumkanaal "
+
+#: ../../mod/connect.php:87
+msgid "Enable premium channel connection restrictions"
+msgstr "Restricties voor connecties van premiumkanaal toestaan"
+
+#: ../../mod/connect.php:88
+msgid ""
+"Please enter your restrictions or conditions, such as paypal receipt, usage "
+"guidelines, etc."
+msgstr "Vul je restricties of voorwaarden in, zoals een paypal-afschrift, voorschriften voor leden, enz."
+
+#: ../../mod/connect.php:90 ../../mod/connect.php:110
+msgid ""
+"This channel may require additional steps or acknowledgement of the "
+"following conditions prior to connecting:"
+msgstr "Dit kanaal kan extra stappen of het accepteren van de volgende voorwaarden vereisen, voordat de connectie wordt geaccepteerd:"
+
+#: ../../mod/connect.php:91
+msgid ""
+"Potential connections will then see the following text before proceeding:"
+msgstr "Mogelijke connecties zullen dan de volgende tekst zien voordat ze verder kunnen:"
+
+#: ../../mod/connect.php:92 ../../mod/connect.php:113
+msgid ""
+"By continuing, I certify that I have complied with any instructions provided"
+" on this page."
+msgstr "Door verder te gaan ga ik automatisch akkoord met alle voorwaarden en aanwijzingen op deze pagina."
+
+#: ../../mod/connect.php:101
+msgid "(No specific instructions have been provided by the channel owner.)"
+msgstr "(Er zijn geen speciale voorwaarden en aanwijzingen door de kanaal-eigenaar verstrekt) "
+
+#: ../../mod/connect.php:109
+msgid "Restricted or Premium Channel"
+msgstr "Beperkt of premiumkanaal"
#: ../../mod/removeme.php:29
msgid ""
@@ -4864,86 +5346,68 @@ msgstr "Vul jouw kanaaladres in (bijv. channel@example.com)"
msgid "Authenticate"
msgstr "Authenticeren"
-#: ../../mod/connect.php:55 ../../mod/connect.php:103
-msgid "Continue"
-msgstr "Ga verder"
-
-#: ../../mod/connect.php:84
-msgid "Premium Channel Setup"
-msgstr "Instellen premiumkanaal "
-
-#: ../../mod/connect.php:86
-msgid "Enable premium channel connection restrictions"
-msgstr "Restricties voor connecties van premiumkanaal toestaan"
-
-#: ../../mod/connect.php:87
-msgid ""
-"Please enter your restrictions or conditions, such as paypal receipt, usage "
-"guidelines, etc."
-msgstr "Vul je restricties of voorwaarden in, zoals een paypal-afschrift, gebruikersvoorschriften, enz."
-
-#: ../../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 "Dit kanaal kan extra stappen of het accepteren van de volgende voorwaarden vereisen, voordat de connectie wordt geaccepteerd:"
+#: ../../mod/like.php:15
+msgid "Like/Dislike"
+msgstr "Leuk/niet leuk"
-#: ../../mod/connect.php:90
-msgid ""
-"Potential connections will then see the following text before proceeding:"
-msgstr "Mogelijke connecties zullen dan de volgende tekst zien voordat ze verder kunnen:"
+#: ../../mod/like.php:20
+msgid "This action is restricted to members."
+msgstr "Deze actie kan alleen door mensen met een RedMatrix-account worden uitgevoerd."
-#: ../../mod/connect.php:91 ../../mod/connect.php:112
+#: ../../mod/like.php:21
msgid ""
-"By continuing, I certify that I have complied with any instructions provided"
-" on this page."
-msgstr "Door verder te gaan ga ik automatisch akkoord met alle voorwaarden en aanwijzingen op deze pagina."
+"Please <a href=\"rmagic\">login with your RedMatrix ID</a> or <a "
+"href=\"register\">register as a new RedMatrix member</a> to continue."
+msgstr "Je dient <a href=\"rmagic\">in te loggen met je RedMatrix-account</a> of <a href=\"register\">een nieuw RedMatrix-account te registreren</a> om verder te kunnen gaan."
-#: ../../mod/connect.php:100
-msgid "(No specific instructions have been provided by the channel owner.)"
-msgstr "(Er zijn geen speciale voorwaarden en aanwijzingen door de kanaal-eigenaar verstrekt) "
+#: ../../mod/like.php:77 ../../mod/like.php:104 ../../mod/like.php:142
+msgid "Invalid request."
+msgstr "Ongeldig verzoek"
-#: ../../mod/connect.php:108
-msgid "Restricted or Premium Channel"
-msgstr "Beperkt of premiumkanaal"
+#: ../../mod/like.php:119
+msgid "thing"
+msgstr "ding"
-#: ../../mod/network.php:79
-msgid "No such group"
-msgstr "Collectie niet gevonden"
+#: ../../mod/like.php:165
+msgid "Channel unavailable."
+msgstr "Kanaal niet beschikbaar."
-#: ../../mod/network.php:118
-msgid "Search Results For:"
-msgstr "Zoekresultaten voor:"
+#: ../../mod/like.php:204
+msgid "Previous action reversed."
+msgstr "Vorige actie omgedraaid"
-#: ../../mod/network.php:172
-msgid "Collection is empty"
-msgstr "Collectie is leeg"
+#: ../../mod/like.php:422
+msgid "Action completed."
+msgstr "Actie voltooid"
-#: ../../mod/network.php:180
-msgid "Collection: "
-msgstr "Collectie: "
+#: ../../mod/like.php:423
+msgid "Thank you."
+msgstr "Bedankt"
-#: ../../mod/network.php:193
-msgid "Connection: "
-msgstr "Connectie: "
+#: ../../mod/post.php:229
+msgid ""
+"Remote authentication blocked. You are logged into this site locally. Please"
+" logout and retry."
+msgstr "Authenticatie op afstand geblokkeerd. Je bent lokaal op deze hub ingelogd. Uitloggen en opnieuw proberen."
-#: ../../mod/network.php:196
-msgid "Invalid connection."
-msgstr "Ongeldige connectie."
+#: ../../mod/post.php:261 ../../mod/openid.php:72 ../../mod/openid.php:180
+#, php-format
+msgid "Welcome %s. Remote authentication successful."
+msgstr "Welkom %s. Authenticatie op afstand geslaagd."
#: ../../mod/connections.php:37 ../../mod/connedit.php:64
msgid "Could not access contact record."
msgstr "Kon geen toegang krijgen tot de connectie-gegevens."
-#: ../../mod/connections.php:51 ../../mod/connedit.php:78
+#: ../../mod/connections.php:51 ../../mod/connedit.php:86
msgid "Could not locate selected profile."
msgstr "Kon het gekozen profiel niet vinden."
-#: ../../mod/connections.php:94 ../../mod/connedit.php:132
+#: ../../mod/connections.php:94 ../../mod/connedit.php:140
msgid "Connection updated."
msgstr "Connectie bijgewerkt."
-#: ../../mod/connections.php:96 ../../mod/connedit.php:134
+#: ../../mod/connections.php:96 ../../mod/connedit.php:142
msgid "Failed to update connection record."
msgstr "Bijwerken van connectie-gegevens mislukt."
@@ -5013,847 +5477,778 @@ msgid "%1$s [%2$s]"
msgstr "%1$s [%2$s]"
#: ../../mod/connections.php:372
-msgid "Edit contact"
+msgid "Edit connection"
msgstr "Connectie bewerken"
-#: ../../mod/connections.php:393
+#: ../../mod/connections.php:410
msgid "Search your connections"
msgstr "Doorzoek jouw connecties"
-#: ../../mod/connections.php:394
+#: ../../mod/connections.php:411
msgid "Finding: "
msgstr "Zoeken naar: "
+#: ../../mod/openid.php:26
+msgid "OpenID protocol error. No ID returned."
+msgstr "OpenID-protocolfout. Geen ID terugontvangen."
+
#: ../../mod/rpost.php:97 ../../mod/editpost.php:42
msgid "Edit post"
msgstr "Bericht bewerken"
-#: ../../mod/connedit.php:181
+#: ../../mod/connedit.php:189
msgid "is now connected to"
msgstr "is nu verbonden met"
-#: ../../mod/connedit.php:274
+#: ../../mod/connedit.php:310
msgid "Could not access address book record."
msgstr "Kon geen toegang krijgen tot de record van de connectie."
-#: ../../mod/connedit.php:288
+#: ../../mod/connedit.php:324
msgid "Refresh failed - channel is currently unavailable."
msgstr "Vernieuwen mislukt - kanaal is momenteel niet beschikbaar"
-#: ../../mod/connedit.php:295
+#: ../../mod/connedit.php:331
msgid "Channel has been unblocked"
msgstr "Kanaal is gedeblokkeerd"
-#: ../../mod/connedit.php:296
+#: ../../mod/connedit.php:332
msgid "Channel has been blocked"
msgstr "Kanaal is geblokkeerd"
-#: ../../mod/connedit.php:300 ../../mod/connedit.php:312
-#: ../../mod/connedit.php:324 ../../mod/connedit.php:336
-#: ../../mod/connedit.php:352
+#: ../../mod/connedit.php:336 ../../mod/connedit.php:348
+#: ../../mod/connedit.php:360 ../../mod/connedit.php:372
+#: ../../mod/connedit.php:388
msgid "Unable to set address book parameters."
msgstr "Niet in staat om de parameters van connecties in te stellen."
-#: ../../mod/connedit.php:307
+#: ../../mod/connedit.php:343
msgid "Channel has been unignored"
msgstr "Kanaal wordt niet meer genegeerd"
-#: ../../mod/connedit.php:308
+#: ../../mod/connedit.php:344
msgid "Channel has been ignored"
msgstr "Kanaal wordt genegeerd"
-#: ../../mod/connedit.php:319
+#: ../../mod/connedit.php:355
msgid "Channel has been unarchived"
msgstr "Kanaal is niet meer gearchiveerd"
-#: ../../mod/connedit.php:320
+#: ../../mod/connedit.php:356
msgid "Channel has been archived"
msgstr "Kanaal is gearchiveerd"
-#: ../../mod/connedit.php:331
+#: ../../mod/connedit.php:367
msgid "Channel has been unhidden"
msgstr "Kanaal is niet meer verborgen"
-#: ../../mod/connedit.php:332
+#: ../../mod/connedit.php:368
msgid "Channel has been hidden"
msgstr "Kanaal is verborgen"
-#: ../../mod/connedit.php:347
+#: ../../mod/connedit.php:383
msgid "Channel has been approved"
msgstr "Connectie/kanaal is geaccepteerd"
-#: ../../mod/connedit.php:348
+#: ../../mod/connedit.php:384
msgid "Channel has been unapproved"
msgstr "Connectie/kanaal is afgewezen"
-#: ../../mod/connedit.php:376
+#: ../../mod/connedit.php:412
msgid "Connection has been removed."
msgstr "Connectie is verwijderd"
-#: ../../mod/connedit.php:396
+#: ../../mod/connedit.php:432
#, php-format
msgid "View %s's profile"
msgstr "Profiel van %s weergeven"
-#: ../../mod/connedit.php:400
+#: ../../mod/connedit.php:436
msgid "Refresh Permissions"
-msgstr "Privacy-rechten vernieuwen"
+msgstr "Permissies vernieuwen"
-#: ../../mod/connedit.php:403
+#: ../../mod/connedit.php:439
msgid "Fetch updated permissions"
-msgstr "Aangepaste privacy-rechten ophalen"
+msgstr "Aangepaste permissies ophalen"
-#: ../../mod/connedit.php:407
+#: ../../mod/connedit.php:443
msgid "Recent Activity"
msgstr "Recente activiteit"
-#: ../../mod/connedit.php:410
+#: ../../mod/connedit.php:446
msgid "View recent posts and comments"
msgstr "Recente berichten en reacties weergeven"
-#: ../../mod/connedit.php:414 ../../mod/connedit.php:557
+#: ../../mod/connedit.php:450 ../../mod/connedit.php:595
#: ../../mod/admin.php:732
msgid "Unblock"
msgstr "Deblokkeren"
-#: ../../mod/connedit.php:414 ../../mod/connedit.php:557
+#: ../../mod/connedit.php:450 ../../mod/connedit.php:595
#: ../../mod/admin.php:731
msgid "Block"
msgstr "Blokkeren"
-#: ../../mod/connedit.php:417
+#: ../../mod/connedit.php:453
msgid "Block or Unblock this connection"
msgstr "Deze connectie blokkeren of deblokkeren"
-#: ../../mod/connedit.php:421 ../../mod/connedit.php:558
+#: ../../mod/connedit.php:457 ../../mod/connedit.php:596
msgid "Unignore"
msgstr "Niet meer negeren"
-#: ../../mod/connedit.php:421 ../../mod/connedit.php:558
+#: ../../mod/connedit.php:457 ../../mod/connedit.php:596
#: ../../mod/notifications.php:51
msgid "Ignore"
msgstr "Negeren"
-#: ../../mod/connedit.php:424
+#: ../../mod/connedit.php:460
msgid "Ignore or Unignore this connection"
msgstr "Deze connectie negeren of niet meer negeren"
-#: ../../mod/connedit.php:427
+#: ../../mod/connedit.php:463
msgid "Unarchive"
msgstr "Niet meer archiveren"
-#: ../../mod/connedit.php:427
+#: ../../mod/connedit.php:463
msgid "Archive"
msgstr "Archiveren"
-#: ../../mod/connedit.php:430
+#: ../../mod/connedit.php:466
msgid "Archive or Unarchive this connection"
msgstr "Deze connectie archiveren of niet meer archiveren"
-#: ../../mod/connedit.php:433
+#: ../../mod/connedit.php:469
msgid "Unhide"
msgstr "Niet meer verbergen"
-#: ../../mod/connedit.php:433
+#: ../../mod/connedit.php:469
msgid "Hide"
msgstr "Verbergen"
-#: ../../mod/connedit.php:436
+#: ../../mod/connedit.php:472
msgid "Hide or Unhide this connection"
msgstr "Deze connectie verbergen of niet meer verbergen"
-#: ../../mod/connedit.php:443
+#: ../../mod/connedit.php:479
msgid "Delete this connection"
msgstr "Deze connectie verwijderen"
-#: ../../mod/connedit.php:486 ../../mod/connedit.php:515
+#: ../../mod/connedit.php:523 ../../mod/connedit.php:553
msgid "Approve this connection"
msgstr "Deze connectie accepteren"
-#: ../../mod/connedit.php:486
+#: ../../mod/connedit.php:523
msgid "Accept connection to allow communication"
msgstr "Keur deze connectie goed om communicatie toe te staan"
-#: ../../mod/connedit.php:502
-msgid "Automatic Permissions Settings"
-msgstr "Automatische privacy-rechten"
-
-#: ../../mod/connedit.php:502
+#: ../../mod/connedit.php:539
#, php-format
msgid "Connections: settings for %s"
msgstr "Connecties: instellingen voor %s"
-#: ../../mod/connedit.php:506
-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 "Wanneer je een connectieverzoek voor een kanaal ontvangt, zullen alle privacy-rechten hier automatisch op de nieuwe connectie worden toegepast en het connectieverzoek worden geaccepteerd. Verlaat deze pagina wanneer je geen gebruik wil maken van deze functie."
+#: ../../mod/connedit.php:540
+msgid "Apply these permissions automatically"
+msgstr "Deze permissies automatisch toepassen"
-#: ../../mod/connedit.php:508
+#: ../../mod/connedit.php:544
+msgid "Apply the permissions indicated on this page to all new connections."
+msgstr "Permissies die op deze pagina staan vermeldt op alle nieuwe connecties toepassen."
+
+#: ../../mod/connedit.php:546
msgid "Slide to adjust your degree of friendship"
msgstr "Schuif om te bepalen hoe goed je iemand kent en/of mag"
-#: ../../mod/connedit.php:514
+#: ../../mod/connedit.php:552
msgid "inherited"
msgstr "geërfd"
-#: ../../mod/connedit.php:516
+#: ../../mod/connedit.php:554
msgid "Connection has no individual permissions!"
-msgstr "Connectie heeft geen individuele privacy-rechten!"
+msgstr "Connectie heeft geen individuele permissies!"
-#: ../../mod/connedit.php:517
+#: ../../mod/connedit.php:555
msgid ""
"This may be appropriate based on your <a href=\"settings\">privacy "
"settings</a>, though you may wish to review the \"Advanced Permissions\"."
msgstr "Dit is mogelijk voldoende, wanneer er naar jouw <a href=\"settings\">privacy-instellingen</a> wordt gekeken. Hoewel je wellicht de geavanceerde rechten wil nagaan."
-#: ../../mod/connedit.php:519
+#: ../../mod/connedit.php:557
msgid "Profile Visibility"
msgstr "Zichtbaarheid profiel"
-#: ../../mod/connedit.php:520
+#: ../../mod/connedit.php:558
#, php-format
msgid ""
"Please choose the profile you would like to display to %s when viewing your "
"profile securely."
msgstr "Kies het profiel dat je aan %s wil tonen wanneer hij/zij ingelogd jouw profiel wil bekijken."
-#: ../../mod/connedit.php:521
+#: ../../mod/connedit.php:559
msgid "Contact Information / Notes"
msgstr "Informatie/aantekeningen over connectie"
-#: ../../mod/connedit.php:522
+#: ../../mod/connedit.php:560
msgid "Edit contact notes"
msgstr "Bewerk aantekeningen over contact"
-#: ../../mod/connedit.php:524
+#: ../../mod/connedit.php:562
msgid "Their Settings"
msgstr "Hun instellingen"
-#: ../../mod/connedit.php:525
+#: ../../mod/connedit.php:563
msgid "My Settings"
msgstr "Mijn instellingen"
-#: ../../mod/connedit.php:527
+#: ../../mod/connedit.php:565
msgid "Clear/Disable Automatic Permissions"
-msgstr "Verwijderen/uitschakelen automatische privacy-rechten"
+msgstr "Verwijderen/uitschakelen automatische permissies"
-#: ../../mod/connedit.php:528
+#: ../../mod/connedit.php:566
msgid "Forum Members"
-msgstr "Forum/groepsleden"
+msgstr "Forumleden"
-#: ../../mod/connedit.php:529
+#: ../../mod/connedit.php:567
msgid "Soapbox"
msgstr "Zeepkist"
-#: ../../mod/connedit.php:530
+#: ../../mod/connedit.php:568
msgid "Full Sharing (typical social network permissions)"
msgstr "Voluit delen (vergelijkbaar met die van sociale netwerken)"
-#: ../../mod/connedit.php:531
+#: ../../mod/connedit.php:569
msgid "Cautious Sharing "
msgstr "Voorzichtig delen"
-#: ../../mod/connedit.php:532
+#: ../../mod/connedit.php:570
msgid "Follow Only"
msgstr "Alleen volgen"
-#: ../../mod/connedit.php:533
+#: ../../mod/connedit.php:571
msgid "Individual Permissions"
-msgstr "Individuele privacy-rechten"
+msgstr "Individuele permissies"
-#: ../../mod/connedit.php:534
+#: ../../mod/connedit.php:572
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 "Sommige privacy-rechten kunnen worden overgeërfd van de <a href=\"settings\">privacy-instellingen</a> van jouw kanaal. Wanneer je deze geërfde instellingen op deze pagina veranderd heeft dat geen effect."
+msgstr "Sommige permissies kunnen worden overgeërfd van de <a href=\"settings\">privacy-instellingen</a> van jouw kanaal. Wanneer je deze geërfde instellingen op deze pagina veranderd heeft dat geen effect."
-#: ../../mod/connedit.php:535
+#: ../../mod/connedit.php:573
msgid "Advanced Permissions"
-msgstr "Geavanceerde privacy-rechten"
+msgstr "Geavanceerde permissies"
-#: ../../mod/connedit.php:536
+#: ../../mod/connedit.php:574
msgid "Simple Permissions (select one and submit)"
-msgstr "Eenvoudige privacy-rechten (selecteer er één en opslaan)"
+msgstr "Eenvoudige permissies (selecteer er één en opslaan)"
-#: ../../mod/connedit.php:540
+#: ../../mod/connedit.php:578
#, php-format
msgid "Visit %s's profile - %s"
msgstr "Profiel van %s bezoeken - %s"
-#: ../../mod/connedit.php:541
+#: ../../mod/connedit.php:579
msgid "Block/Unblock contact"
msgstr "Connectie blokkeren/deblokkeren"
-#: ../../mod/connedit.php:542
+#: ../../mod/connedit.php:580
msgid "Ignore contact"
msgstr "Connectie negeren"
-#: ../../mod/connedit.php:543
+#: ../../mod/connedit.php:581
msgid "Repair URL settings"
msgstr "URL-instellingen repareren"
-#: ../../mod/connedit.php:544
+#: ../../mod/connedit.php:582
msgid "View conversations"
msgstr "Conversaties weergeven"
-#: ../../mod/connedit.php:546
+#: ../../mod/connedit.php:584
msgid "Delete contact"
msgstr "Connectie verwijderen"
-#: ../../mod/connedit.php:549
+#: ../../mod/connedit.php:587
msgid "Last update:"
msgstr "Laatste wijziging:"
-#: ../../mod/connedit.php:551
+#: ../../mod/connedit.php:589
msgid "Update public posts"
msgstr "Openbare berichten updaten"
-#: ../../mod/connedit.php:553
+#: ../../mod/connedit.php:591
msgid "Update now"
msgstr "Nu updaten"
-#: ../../mod/connedit.php:559
+#: ../../mod/connedit.php:597
msgid "Currently blocked"
msgstr "Momenteel geblokkeerd"
-#: ../../mod/connedit.php:560
+#: ../../mod/connedit.php:598
msgid "Currently ignored"
msgstr "Momenteel genegeerd"
-#: ../../mod/connedit.php:561
+#: ../../mod/connedit.php:599
msgid "Currently archived"
msgstr "Momenteel gearchiveerd"
-#: ../../mod/connedit.php:562
+#: ../../mod/connedit.php:600
msgid "Currently pending"
msgstr "Moeten nog geaccepteerd of afgewezen worden"
-#: ../../mod/connedit.php:563
+#: ../../mod/connedit.php:601
msgid "Hide this contact from others"
msgstr "Verberg deze connectie voor anderen"
-#: ../../mod/connedit.php:563
+#: ../../mod/connedit.php:601
msgid ""
"Replies/likes to your public posts <strong>may</strong> still be visible"
msgstr "Reacties/vind-ik-leuks op jouw openbare berichten <strong>kunnen</strong> zichtbaar blijven"
-#: ../../mod/delegate.php:95
-msgid "No potential page delegates located."
-msgstr "Geen gevolmachtigde personen gevonden waaraan mogelijk het accountbeheer kan worden uitbesteed."
+#: ../../mod/thing.php:96
+msgid "Thing updated"
+msgstr "Ding bijgewerkt"
-#: ../../mod/delegate.php:121
-msgid "Delegate Page Management"
-msgstr "Accountbeheer uitbesteden"
+#: ../../mod/thing.php:156
+msgid "Object store: failed"
+msgstr "Opslaan van ding mislukt"
-#: ../../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 "Gevolmachtigde personen zijn in staat om alle aspecten van dit account te beheren, behalve enkele basisinstellingen. Besteed het beheer van je persoonlijke account niet aan iemand uit die je niet volledig vertrouwd."
+#: ../../mod/thing.php:160
+msgid "Thing added"
+msgstr "Ding toegevoegd"
-#: ../../mod/delegate.php:124
-msgid "Existing Page Managers"
-msgstr "Bestaande accountbeheerders"
+#: ../../mod/thing.php:180
+#, php-format
+msgid "OBJ: %1$s %2$s %3$s"
+msgstr "OBJ: %1$s %2$s %3$s"
-#: ../../mod/delegate.php:126
-msgid "Existing Page Delegates"
-msgstr "Bestaande gevolmachtigde accountbeheerders"
+#: ../../mod/thing.php:232
+msgid "Show Thing"
+msgstr "Ding weergeven"
-#: ../../mod/delegate.php:128
-msgid "Potential Delegates"
-msgstr "Gevolmachtigde personen waaraan mogelijk het accountbeheer kan worden uitbesteed."
+#: ../../mod/thing.php:239
+msgid "item not found."
+msgstr "Item niet gevonden"
-#: ../../mod/delegate.php:130 ../../mod/photos.php:912 ../../mod/tagrm.php:93
-msgid "Remove"
-msgstr "Verwijderen"
+#: ../../mod/thing.php:270
+msgid "Edit Thing"
+msgstr "Ding bewerken"
-#: ../../mod/delegate.php:131
-msgid "Add"
-msgstr "Toevoegen"
+#: ../../mod/thing.php:272 ../../mod/thing.php:319
+msgid "Select a profile"
+msgstr "Kies een profiel"
-#: ../../mod/delegate.php:132
-msgid "No entries."
-msgstr "Geen"
+#: ../../mod/thing.php:276 ../../mod/thing.php:322
+msgid "Post an activity"
+msgstr "Plaats een bericht"
-#: ../../mod/search.php:13 ../../mod/directory.php:15
-#: ../../mod/dirprofile.php:9 ../../mod/display.php:9 ../../mod/photos.php:443
-#: ../../mod/viewconnections.php:17
-msgid "Public access denied."
-msgstr "Openbare toegang geweigerd."
+#: ../../mod/thing.php:276 ../../mod/thing.php:322
+msgid "Only sends to viewers of the applicable profile"
+msgstr "Toont dit alleen aan diegene die het gekozen profiel mogen zien."
-#: ../../mod/directory.php:146 ../../mod/dirprofile.php:95
-msgid "Gender: "
-msgstr "Geslacht:"
+#: ../../mod/thing.php:278 ../../mod/thing.php:324
+msgid "Name of thing e.g. something"
+msgstr "Naam van ding"
-#: ../../mod/directory.php:223
-msgid "Finding:"
-msgstr "Gezocht naar:"
+#: ../../mod/thing.php:280 ../../mod/thing.php:325
+msgid "URL of thing (optional)"
+msgstr "URL van ding (optioneel)"
-#: ../../mod/directory.php:244
-msgid "No entries (some entries may be hidden)."
-msgstr "Niets gevonden (sommige kanalen kunnen verborgen zijn)."
+#: ../../mod/thing.php:282 ../../mod/thing.php:326
+msgid "URL for photo of thing (optional)"
+msgstr "URL van foto van ding (optioneel)"
-#: ../../mod/dirprofile.php:108
-msgid "Status: "
-msgstr "Status: "
+#: ../../mod/thing.php:317
+msgid "Add Thing to your Profile"
+msgstr "Ding aan je profiel toevoegen"
-#: ../../mod/dirprofile.php:109
-msgid "Sexual Preference: "
-msgstr "Seksuele voorkeur: "
+#: ../../mod/lostpass.php:15
+msgid "No valid account found."
+msgstr "Geen geldige account gevonden."
-#: ../../mod/dirprofile.php:111
-msgid "Homepage: "
-msgstr "Homepage: "
+#: ../../mod/lostpass.php:29
+msgid "Password reset request issued. Check your email."
+msgstr "Het verzoek om je wachtwoord opnieuw in te stellen is behandeld. Controleer je e-mail."
-#: ../../mod/dirprofile.php:112
-msgid "Hometown: "
-msgstr "Oorspronkelijk uit: "
+#: ../../mod/lostpass.php:35 ../../mod/lostpass.php:102
+#, php-format
+msgid "Site Member (%s)"
+msgstr "Lid van hub (%s)"
-#: ../../mod/dirprofile.php:114
-msgid "About: "
-msgstr "Over: "
+#: ../../mod/lostpass.php:40
+#, php-format
+msgid "Password reset requested at %s"
+msgstr "Verzoek tot het opnieuw instellen van een wachtwoord op %s is ingediend"
-#: ../../mod/dirprofile.php:162
-msgid "Keywords: "
-msgstr "Trefwoorden: "
+#: ../../mod/lostpass.php:63
+msgid ""
+"Request could not be verified. (You may have previously submitted it.) "
+"Password reset failed."
+msgstr "Het verzoek kon niet worden geverifieerd. (Mogelijk heb je al eerder een verzoek ingediend.) Opnieuw instellen van wachtwoord is mislukt."
-#: ../../mod/dirsearch.php:21
-msgid "This site is not a directory server"
-msgstr "Deze hub is geen kanalengidshub (directoryserver)"
+#: ../../mod/lostpass.php:85 ../../boot.php:1537
+msgid "Password Reset"
+msgstr "Wachtwoord vergeten?"
-#: ../../mod/home.php:81
-msgid "Red Matrix - &quot;The Network&quot;"
-msgstr "RedMatrix - &quot;The Network&quot;"
+#: ../../mod/lostpass.php:86
+msgid "Your password has been reset as requested."
+msgstr "Jouw wachtwoord is opnieuw ingesteld zoals je had verzocht."
-#: ../../mod/home.php:94
-#, php-format
-msgid "Welcome to %s"
-msgstr "Welkom op %s"
+#: ../../mod/lostpass.php:87
+msgid "Your new password is"
+msgstr "Jouw nieuwe wachtwoord is"
-#: ../../mod/setup.php:162
-msgid "Red Matrix Server - Setup"
-msgstr "RedMatrix Server - Setup"
+#: ../../mod/lostpass.php:88
+msgid "Save or copy your new password - and then"
+msgstr "Kopieer of sla je nieuwe wachtwoord op - en"
-#: ../../mod/setup.php:168
-msgid "Could not connect to database."
-msgstr "Could not connect to database."
+#: ../../mod/lostpass.php:89
+msgid "click here to login"
+msgstr "klik dan hier om in te loggen"
-#: ../../mod/setup.php:172
+#: ../../mod/lostpass.php:90
msgid ""
-"Could not connect to specified site URL. Possible SSL certificate or DNS "
-"issue."
-msgstr "Could not connect to specified hub URL. Possible SSL certificate or DNS issue."
+"Your password may be changed from the <em>Settings</em> page after "
+"successful login."
+msgstr "Jouw wachtwoord kan worden veranderd onder <em>instellingen</em>, nadat je succesvol bent ingelogd."
-#: ../../mod/setup.php:179
-msgid "Could not create table."
-msgstr "Could not create table."
+#: ../../mod/lostpass.php:107
+#, php-format
+msgid "Your password has changed at %s"
+msgstr "Jouw wachtwoord op %s is veranderd"
-#: ../../mod/setup.php:185
-msgid "Your site database has been installed."
-msgstr "Your hub database has been installed."
+#: ../../mod/lostpass.php:122
+msgid "Forgot your Password?"
+msgstr "Wachtwoord vergeten?"
-#: ../../mod/setup.php:190
+#: ../../mod/lostpass.php:123
msgid ""
-"You may need to import the file \"install/database.sql\" manually using "
-"phpmyadmin or mysql."
-msgstr "You may need to import the file \"install/database.sql\" manually using phpmyadmin or mysql."
-
-#: ../../mod/setup.php:191 ../../mod/setup.php:260 ../../mod/setup.php:655
-msgid "Please see the file \"install/INSTALL.txt\"."
-msgstr "Please see the file \"install/INSTALL.txt\"."
-
-#: ../../mod/setup.php:257
-msgid "System check"
-msgstr "System check"
+"Enter your email address and submit to have your password reset. Then check "
+"your email for further instructions."
+msgstr "Voer je e-mailadres in en verstuur deze om je wachtwoord opnieuw in te stellen. Controleer hierna hier je e-mail voor verdere instructies."
-#: ../../mod/setup.php:261 ../../mod/events.php:399
-msgid "Next"
-msgstr "Volgende"
+#: ../../mod/lostpass.php:124
+msgid "Email Address"
+msgstr "E-mailadres"
-#: ../../mod/setup.php:262
-msgid "Check again"
-msgstr "Check again"
+#: ../../mod/lostpass.php:125
+msgid "Reset"
+msgstr "Opnieuw instellen"
-#: ../../mod/setup.php:284
-msgid "Database connection"
-msgstr "Database connection"
+#: ../../mod/bookmarks.php:38
+msgid "Bookmark added"
+msgstr "Bladwijzer toegevoegd"
-#: ../../mod/setup.php:285
-msgid ""
-"In order to install Red Matrix we need to know how to connect to your "
-"database."
-msgstr "In order to install RedMatrix we need to know how to connect to your database."
+#: ../../mod/bookmarks.php:60
+msgid "My Bookmarks"
+msgstr "Mijn bladwijzers"
-#: ../../mod/setup.php:286
-msgid ""
-"Please contact your hosting provider or site administrator if you have "
-"questions about these settings."
-msgstr "Please contact your hosting provider or site administrator if you have questions about these settings."
+#: ../../mod/bookmarks.php:71
+msgid "My Connections Bookmarks"
+msgstr "Bladwijzers van mijn connecties"
-#: ../../mod/setup.php:287
-msgid ""
-"The database you specify below should already exist. If it does not, please "
-"create it before continuing."
-msgstr "The database you specify below should already exist. If it does not, please create it before continuing."
+#: ../../mod/dirsearch.php:21
+msgid "This site is not a directory server"
+msgstr "Deze hub is geen kanalengidshub (directoryserver)"
-#: ../../mod/setup.php:291
-msgid "Database Server Name"
-msgstr "Database Server Name"
+#: ../../mod/cloud.php:130
+msgid "RedMatrix - Guests: Username: {your email address}, Password: +++"
+msgstr "RedMatrix - gasttoegang: Toegangsnaam: {jouw e-mailadres}, wachtwoord: +++"
-#: ../../mod/setup.php:291
-msgid "Default is localhost"
-msgstr "Default is localhost"
+#: ../../mod/profiles.php:18 ../../mod/profiles.php:165
+#: ../../mod/profiles.php:222 ../../mod/profiles.php:565
+msgid "Profile not found."
+msgstr "Profiel niet gevonden."
-#: ../../mod/setup.php:292
-msgid "Database Port"
-msgstr "Database Port"
+#: ../../mod/profiles.php:38
+msgid "Profile deleted."
+msgstr "Profiel verwijderd."
-#: ../../mod/setup.php:292
-msgid "Communication port number - use 0 for default"
-msgstr "Communication port number - use 0 for default"
+#: ../../mod/profiles.php:56 ../../mod/profiles.php:92
+msgid "Profile-"
+msgstr "Profiel-"
-#: ../../mod/setup.php:293
-msgid "Database Login Name"
-msgstr "Database Login Name"
+#: ../../mod/profiles.php:77 ../../mod/profiles.php:120
+msgid "New profile created."
+msgstr "Nieuw profiel aangemaakt."
-#: ../../mod/setup.php:294
-msgid "Database Login Password"
-msgstr "Database Login Password"
+#: ../../mod/profiles.php:98
+msgid "Profile unavailable to clone."
+msgstr "Profiel niet beschikbaar om te klonen"
-#: ../../mod/setup.php:295
-msgid "Database Name"
-msgstr "Database Name"
+#: ../../mod/profiles.php:136
+msgid "Profile unavailable to export."
+msgstr "Geen profiel beschikbaar om te exporteren"
-#: ../../mod/setup.php:297 ../../mod/setup.php:339
-msgid "Site administrator email address"
-msgstr "Hub administrator email address"
+#: ../../mod/profiles.php:232
+msgid "Profile Name is required."
+msgstr "Profielnaam is vereist"
-#: ../../mod/setup.php:297 ../../mod/setup.php:339
-msgid ""
-"Your account email address must match this in order to use the web admin "
-"panel."
-msgstr "Your account email address must match this in order to use the web admin panel."
+#: ../../mod/profiles.php:378
+msgid "Marital Status"
+msgstr "Huwelijke status"
-#: ../../mod/setup.php:298 ../../mod/setup.php:341
-msgid "Website URL"
-msgstr "Hub URL"
+#: ../../mod/profiles.php:382
+msgid "Romantic Partner"
+msgstr "Romantische partner"
-#: ../../mod/setup.php:298 ../../mod/setup.php:341
-msgid "Please use SSL (https) URL if available."
-msgstr "Please use SSL (https) URL if available."
+#: ../../mod/profiles.php:386
+msgid "Likes"
+msgstr "Houdt van"
-#: ../../mod/setup.php:301 ../../mod/setup.php:344
-msgid "Please select a default timezone for your website"
-msgstr "Please select a default timezone for your hub"
+#: ../../mod/profiles.php:390
+msgid "Dislikes"
+msgstr "Houdt niet van"
-#: ../../mod/setup.php:328
-msgid "Site settings"
-msgstr "Hub settings"
+#: ../../mod/profiles.php:394
+msgid "Work/Employment"
+msgstr "Werk/arbeid"
-#: ../../mod/setup.php:387
-msgid "Could not find a command line version of PHP in the web server PATH."
-msgstr "Could not find a command line version of PHP in the web server PATH."
+#: ../../mod/profiles.php:397
+msgid "Religion"
+msgstr "Religie"
-#: ../../mod/setup.php:388
-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 "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."
+#: ../../mod/profiles.php:401
+msgid "Political Views"
+msgstr "Politieke overtuigingen"
-#: ../../mod/setup.php:392
-msgid "PHP executable path"
-msgstr "PHP executable path"
+#: ../../mod/profiles.php:405
+msgid "Gender"
+msgstr "Geslacht"
-#: ../../mod/setup.php:392
-msgid ""
-"Enter full path to php executable. You can leave this blank to continue the "
-"installation."
-msgstr "Enter full path to php executable. You can leave this blank to continue the installation."
+#: ../../mod/profiles.php:409
+msgid "Sexual Preference"
+msgstr "Seksuele voorkeur"
-#: ../../mod/setup.php:397
-msgid "Command line PHP"
-msgstr "Command line PHP"
+#: ../../mod/profiles.php:413
+msgid "Homepage"
+msgstr "Homepage"
-#: ../../mod/setup.php:406
-msgid ""
-"The command line version of PHP on your system does not have "
-"\"register_argc_argv\" enabled."
-msgstr "The command line version of PHP on your system does not have \"register_argc_argv\" enabled."
+#: ../../mod/profiles.php:417
+msgid "Interests"
+msgstr "Interesses"
-#: ../../mod/setup.php:407
-msgid "This is required for message delivery to work."
-msgstr "This is required for message delivery to work."
+#: ../../mod/profiles.php:421 ../../mod/admin.php:866
+msgid "Address"
+msgstr "Kanaaladres"
-#: ../../mod/setup.php:409
-msgid "PHP register_argc_argv"
-msgstr "PHP register_argc_argv"
+#: ../../mod/profiles.php:511
+msgid "Profile updated."
+msgstr "Profiel bijgewerkt"
-#: ../../mod/setup.php:430
-msgid ""
-"Error: the \"openssl_pkey_new\" function on this system is not able to "
-"generate encryption keys"
-msgstr "Error: the \"openssl_pkey_new\" function on this system is not able to generate encryption keys"
+#: ../../mod/profiles.php:590
+msgid "Hide your contact/friend list from viewers of this profile?"
+msgstr "Laat de lijst met connecties niet aan bezoekers van dit profiel zien."
-#: ../../mod/setup.php:431
-msgid ""
-"If running under Windows, please see "
-"\"http://www.php.net/manual/en/openssl.installation.php\"."
-msgstr "If running under Windows, please see \"http://www.php.net/manual/en/openssl.installation.php\"."
+#: ../../mod/profiles.php:632
+msgid "Edit Profile Details"
+msgstr "Profiel bewerken"
-#: ../../mod/setup.php:433
-msgid "Generate encryption keys"
-msgstr "Generate encryption keys"
+#: ../../mod/profiles.php:634
+msgid "View this profile"
+msgstr "Profiel weergeven"
-#: ../../mod/setup.php:440
-msgid "libCurl PHP module"
-msgstr "libCurl PHP module"
+#: ../../mod/profiles.php:636
+msgid "Change Profile Photo"
+msgstr "Profielfoto wijzigen"
-#: ../../mod/setup.php:441
-msgid "GD graphics PHP module"
-msgstr "GD graphics PHP module"
+#: ../../mod/profiles.php:637
+msgid "Create a new profile using these settings"
+msgstr "Een nieuw profiel aanmaken met dit profiel als basis"
-#: ../../mod/setup.php:442
-msgid "OpenSSL PHP module"
-msgstr "OpenSSL PHP module"
+#: ../../mod/profiles.php:638
+msgid "Clone this profile"
+msgstr "Dit profiel klonen"
-#: ../../mod/setup.php:443
-msgid "mysqli PHP module"
-msgstr "mysqli PHP module"
+#: ../../mod/profiles.php:639
+msgid "Delete this profile"
+msgstr "Dit profiel verwijderen"
-#: ../../mod/setup.php:444
-msgid "mb_string PHP module"
-msgstr "mb_string PHP module"
+#: ../../mod/profiles.php:641
+msgid "Import profile from file"
+msgstr "Profiel vanuit bestand importeren"
-#: ../../mod/setup.php:445
-msgid "mcrypt PHP module"
-msgstr "mcrypt PHP module"
+#: ../../mod/profiles.php:642
+msgid "Export profile to file"
+msgstr "Profiel naar bestand exporteren"
-#: ../../mod/setup.php:450 ../../mod/setup.php:452
-msgid "Apache mod_rewrite module"
-msgstr "Apache mod_rewrite module"
+#: ../../mod/profiles.php:643
+msgid "Profile Name:"
+msgstr "Profielnaam:"
-#: ../../mod/setup.php:450
-msgid ""
-"Error: Apache webserver mod-rewrite module is required but not installed."
-msgstr "Error: Apache webserver mod-rewrite module is required but not installed."
+#: ../../mod/profiles.php:644
+msgid "Your Full Name:"
+msgstr "Jouw volledige naam:"
-#: ../../mod/setup.php:456 ../../mod/setup.php:459
-msgid "proc_open"
-msgstr "proc_open"
+#: ../../mod/profiles.php:645
+msgid "Title/Description:"
+msgstr "Titel/omschrijving:"
-#: ../../mod/setup.php:456
-msgid ""
-"Error: proc_open is required but is either not installed or has been "
-"disabled in php.ini"
-msgstr "Error: proc_open is required but is either not installed or has been disabled in php.ini"
+#: ../../mod/profiles.php:646
+msgid "Your Gender:"
+msgstr "Jouw geslacht"
-#: ../../mod/setup.php:464
-msgid "Error: libCURL PHP module required but not installed."
-msgstr "Error: libCURL PHP module required but not installed."
+#: ../../mod/profiles.php:647
+msgid "Birthday :"
+msgstr "Verjaardag: "
-#: ../../mod/setup.php:468
-msgid ""
-"Error: GD graphics PHP module with JPEG support required but not installed."
-msgstr "Error: GD graphics PHP module with JPEG support required but not installed."
+#: ../../mod/profiles.php:648
+msgid "Street Address:"
+msgstr "Straat en huisnummer:"
-#: ../../mod/setup.php:472
-msgid "Error: openssl PHP module required but not installed."
-msgstr "Error: openssl PHP module required but not installed."
+#: ../../mod/profiles.php:649
+msgid "Locality/City:"
+msgstr "Woonplaats:"
-#: ../../mod/setup.php:476
-msgid "Error: mysqli PHP module required but not installed."
-msgstr "Error: mysqli PHP module required but not installed."
+#: ../../mod/profiles.php:650
+msgid "Postal/Zip Code:"
+msgstr "Postcode:"
-#: ../../mod/setup.php:480
-msgid "Error: mb_string PHP module required but not installed."
-msgstr "Error: mb_string PHP module required but not installed."
+#: ../../mod/profiles.php:651
+msgid "Country:"
+msgstr "Land:"
-#: ../../mod/setup.php:484
-msgid "Error: mcrypt PHP module required but not installed."
-msgstr "Error: mcrypt PHP module required but not installed."
+#: ../../mod/profiles.php:652
+msgid "Region/State:"
+msgstr "Provincie/gewest/deelstaat:"
-#: ../../mod/setup.php:500
-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 "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/profiles.php:653
+msgid "<span class=\"heart\">&hearts;</span> Marital Status:"
+msgstr "<span class=\"heart\">&hearts;</span> Huwelijkse staat:"
-#: ../../mod/setup.php:501
-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 "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/profiles.php:654
+msgid "Who: (if applicable)"
+msgstr "Wie (wanneer toepasselijk):"
-#: ../../mod/setup.php:502
-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 "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/profiles.php:655
+msgid "Examples: cathy123, Cathy Williams, cathy@example.com"
+msgstr "Voorbeelden: karin123, Karin Jansen, cathy@voorbeeld.nl"
-#: ../../mod/setup.php:503
-msgid ""
-"You can alternatively skip this procedure and perform a manual installation."
-" Please see the file \"install/INSTALL.txt\" for instructions."
-msgstr "You can alternatively skip this procedure and perform a manual installation. Please see the file \"install/INSTALL.txt\" for instructions."
+#: ../../mod/profiles.php:656
+msgid "Since [date]:"
+msgstr "Sinds [datum]:"
-#: ../../mod/setup.php:506
-msgid ".htconfig.php is writable"
-msgstr ".htconfig.php is writable"
+#: ../../mod/profiles.php:658
+msgid "Homepage URL:"
+msgstr "Adres homepage:"
-#: ../../mod/setup.php:516
-msgid ""
-"Red uses the Smarty3 template engine to render its web views. Smarty3 "
-"compiles templates to PHP to speed up rendering."
-msgstr "Red uses the Smarty3 template engine to render its web views. Smarty3 compiles templates to PHP to speed up rendering."
+#: ../../mod/profiles.php:661
+msgid "Religious Views:"
+msgstr "Religieuze overtuigingen"
-#: ../../mod/setup.php:517
-#, php-format
-msgid ""
-"In order to store these compiled templates, the web server needs to have "
-"write access to the directory %s under the Red top level folder."
-msgstr "In order to store these compiled templates, the web server needs to have write access to the directory %s under the Red top level folder."
+#: ../../mod/profiles.php:662
+msgid "Keywords:"
+msgstr "Trefwoorden"
-#: ../../mod/setup.php:518 ../../mod/setup.php:536
-msgid ""
-"Please ensure that the user that your web server runs as (e.g. www-data) has"
-" write access to this folder."
-msgstr "Please ensure that the user that your web server runs as (e.g. www-data) has write access to this folder."
+#: ../../mod/profiles.php:665
+msgid "Example: fishing photography software"
+msgstr "Voorbeeld: muziek, fotografie, software"
-#: ../../mod/setup.php:519
-#, php-format
-msgid ""
-"Note: as a security measure, you should give the web server write access to "
-"%s only--not the template files (.tpl) that it contains."
-msgstr "Note: as a security measure, you should give the web server write access to %s only--not the template files (.tpl) that it contains."
+#: ../../mod/profiles.php:666
+msgid "Used in directory listings"
+msgstr "Wordt in de kanalengids gebruikt"
-#: ../../mod/setup.php:522
-#, php-format
-msgid "%s is writable"
-msgstr "%s is writable"
+#: ../../mod/profiles.php:667
+msgid "Tell us about yourself..."
+msgstr "Vertel ons iets over jezelf..."
-#: ../../mod/setup.php:535
-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 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"
+#: ../../mod/profiles.php:668
+msgid "Hobbies/Interests"
+msgstr "Hobby's/interesses"
-#: ../../mod/setup.php:539
-msgid "store is writable"
-msgstr "store is writable"
+#: ../../mod/profiles.php:669
+msgid "Contact information and Social Networks"
+msgstr "Contactinformatie en sociale netwerken"
-#: ../../mod/setup.php:569
-msgid ""
-"SSL certificate cannot be validated. Fix certificate or disable https access"
-" to this site."
-msgstr "SSL certificate cannot be validated. Fix certificate or disable https access to this hub."
+#: ../../mod/profiles.php:670
+msgid "My other channels"
+msgstr "Mijn andere kanalen"
-#: ../../mod/setup.php:570
-msgid ""
-"If you have https access to your website or allow connections to TCP port "
-"443 (the https: port), you MUST use a browser-valid certificate. You MUST "
-"NOT use self-signed certificates!"
-msgstr "If you have https access to your hub or allow connections to TCP port 443 (the https: port), you MUST use a browser-valid certificate. You MUST NOT use self-signed certificates!"
+#: ../../mod/profiles.php:671
+msgid "Musical interests"
+msgstr "Muzikale interesses"
-#: ../../mod/setup.php:571
-msgid ""
-"This restriction is incorporated because public posts from you may for "
-"example contain references to images on your own hub."
-msgstr "This restriction is incorporated because public posts from you may for example contain references to images on your own hub."
+#: ../../mod/profiles.php:672
+msgid "Books, literature"
+msgstr "Boeken/literatuur"
-#: ../../mod/setup.php:572
-msgid ""
-"If your certificate is not recognized, members of other sites (who may "
-"themselves have valid certificates) will get a warning message on their own "
-"site complaining about security issues."
-msgstr "If your certificate is not recognized, members of other hubs (who may themselves have valid certificates) will get a warning message on their own hub complaining about security issues."
+#: ../../mod/profiles.php:673
+msgid "Television"
+msgstr "Televisie"
-#: ../../mod/setup.php:573
-msgid ""
-"This can cause usability issues elsewhere (not just on your own site) so we "
-"must insist on this requirement."
-msgstr "This can cause usability issues elsewhere (not just on your own hub) so we must insist on this requirement."
+#: ../../mod/profiles.php:674
+msgid "Film/dance/culture/entertainment"
+msgstr "Film/dans/cultuur/entertainment"
-#: ../../mod/setup.php:574
-msgid ""
-"Providers are available that issue free certificates which are browser-"
-"valid."
-msgstr "Providers are available that issue free certificates which are browser-valid."
+#: ../../mod/profiles.php:675
+msgid "Love/romance"
+msgstr "Liefde/romantiek"
-#: ../../mod/setup.php:576
-msgid "SSL certificate validation"
-msgstr "SSL certificate validation"
+#: ../../mod/profiles.php:676
+msgid "Work/employment"
+msgstr "Werk/arbeid"
-#: ../../mod/setup.php:582
-msgid ""
-"Url rewrite in .htaccess is not working. Check your server configuration."
-msgstr "Url rewrite in .htaccess is not working. Check your server configuration."
+#: ../../mod/profiles.php:677
+msgid "School/education"
+msgstr "School/onderwijs"
-#: ../../mod/setup.php:584
-msgid "Url rewrite is working"
-msgstr "Url rewrite is working"
+#: ../../mod/profiles.php:683
+msgid "This is your default profile."
+msgstr "Dit is jouw standaardprofiel"
-#: ../../mod/setup.php:594
-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 "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/profiles.php:694 ../../mod/directory.php:188
+msgid "Age: "
+msgstr "Leeftijd:"
-#: ../../mod/setup.php:618
-msgid "Errors encountered creating database tables."
-msgstr "Errors encountered creating database tables."
+#: ../../mod/profiles.php:737
+msgid "Edit/Manage Profiles"
+msgstr "Profielen bewerken/beheren"
-#: ../../mod/setup.php:653
-msgid "<h1>What next</h1>"
-msgstr "<h1>Wat nu</h1>"
+#: ../../mod/profiles.php:738
+msgid "Add profile things"
+msgstr "Dingen aan je profiel toevoegen"
-#: ../../mod/setup.php:654
-msgid ""
-"IMPORTANT: You will need to [manually] setup a scheduled task for the "
-"poller."
-msgstr "IMPORTANT: You will need to [manually] setup a scheduled task for the poller."
+#: ../../mod/profiles.php:739
+msgid "Include desirable objects in your profile"
+msgstr "Voeg door jou gewenste dingen aan jouw profiel toe"
-#: ../../mod/editblock.php:8 ../../mod/editblock.php:27
-#: ../../mod/editblock.php:53 ../../mod/editlayout.php:36
-#: ../../mod/editpost.php:20 ../../mod/editwebpage.php:32
+#: ../../mod/editblock.php:79 ../../mod/editblock.php:95
+#: ../../mod/editlayout.php:78 ../../mod/editpost.php:20
+#: ../../mod/editwebpage.php:77
msgid "Item not found"
msgstr "Item niet gevonden"
-#: ../../mod/editblock.php:77
+#: ../../mod/editblock.php:115
msgid "Edit Block"
msgstr "Blok bewerken"
-#: ../../mod/editblock.php:87
+#: ../../mod/editblock.php:125
msgid "Delete block?"
msgstr "Blok verwijderen"
-#: ../../mod/editblock.php:115 ../../mod/editlayout.php:110
-#: ../../mod/editpost.php:116 ../../mod/editwebpage.php:147
+#: ../../mod/editblock.php:147 ../../mod/editlayout.php:143
+#: ../../mod/editpost.php:116 ../../mod/editwebpage.php:178
msgid "Insert YouTube video"
msgstr "YouTube-video invoegen"
-#: ../../mod/editblock.php:116 ../../mod/editlayout.php:111
-#: ../../mod/editpost.php:117 ../../mod/editwebpage.php:148
+#: ../../mod/editblock.php:148 ../../mod/editlayout.php:144
+#: ../../mod/editpost.php:117 ../../mod/editwebpage.php:179
msgid "Insert Vorbis [.ogg] video"
msgstr "Vorbis-video [.ogg] invoegen"
-#: ../../mod/editblock.php:117 ../../mod/editlayout.php:112
-#: ../../mod/editpost.php:118 ../../mod/editwebpage.php:149
+#: ../../mod/editblock.php:149 ../../mod/editlayout.php:145
+#: ../../mod/editpost.php:118 ../../mod/editwebpage.php:180
msgid "Insert Vorbis [.ogg] audio"
msgstr "Vorbis-audio [.ogg] invoegen"
-#: ../../mod/editblock.php:153
+#: ../../mod/editblock.php:183
msgid "Delete Block"
msgstr "Blok verwijderen"
#: ../../mod/pdledit.php:13
msgid "Layout updated."
-msgstr "Layout bijgewerkt."
+msgstr "Lay-out bijgewerkt."
#: ../../mod/pdledit.php:28 ../../mod/pdledit.php:53
msgid "Edit System Page Description"
@@ -5867,19 +6262,19 @@ msgstr "Lay-out niet gevonden."
msgid "Module Name:"
msgstr "Modulenaam:"
-#: ../../mod/pdledit.php:55 ../../mod/layouts.php:59
+#: ../../mod/pdledit.php:55 ../../mod/layouts.php:107
msgid "Layout Help"
msgstr "Lay-out-hulp"
-#: ../../mod/editlayout.php:72
+#: ../../mod/editlayout.php:108
msgid "Edit Layout"
msgstr "Lay-out bewerken"
-#: ../../mod/editlayout.php:82
+#: ../../mod/editlayout.php:117
msgid "Delete layout?"
msgstr "Lay-out verwijderen?"
-#: ../../mod/editlayout.php:146
+#: ../../mod/editlayout.php:178
msgid "Delete Layout"
msgstr "Lay-out verwijderen"
@@ -5891,397 +6286,236 @@ msgstr "Item is niet te bewerken"
msgid "Delete item?"
msgstr "Item verwijderen?"
-#: ../../mod/editwebpage.php:106
+#: ../../mod/help.php:41 ../../mod/help.php:47 ../../mod/help.php:53
+msgid "Help:"
+msgstr "Hulp:"
+
+#: ../../mod/help.php:67 ../../index.php:238
+msgid "Not Found"
+msgstr "Niet gevonden"
+
+#: ../../mod/editwebpage.php:140
msgid "Edit Webpage"
msgstr "Webpagina bewerken"
-#: ../../mod/editwebpage.php:116
+#: ../../mod/editwebpage.php:150
msgid "Delete webpage?"
msgstr "Webpagina verwijderen?"
-#: ../../mod/editwebpage.php:186
+#: ../../mod/editwebpage.php:215
msgid "Delete Webpage"
msgstr "Webpagina verwijderen"
-#: ../../mod/siteinfo.php:57
-#, php-format
-msgid "Version %s"
-msgstr "Versie %s"
-
-#: ../../mod/siteinfo.php:76
-msgid "Installed plugins/addons/apps:"
-msgstr "Ingeschakelde plug-ins/add-ons/apps:"
-
-#: ../../mod/siteinfo.php:89
-msgid "No installed plugins/addons/apps"
-msgstr "Geen ingeschakelde plug-ins/add-ons/apps"
-
-#: ../../mod/siteinfo.php:97
-msgid "Red"
-msgstr "Red"
-
-#: ../../mod/siteinfo.php:98
-msgid ""
-"This is a hub of the Red Matrix - a global cooperative network of "
-"decentralized privacy enhanced websites."
-msgstr "Dit is een hub van de RedMatrix - een wereldwijd coöperatief netwerk van gedecentraliseerde websites met verbeterde privacy."
-
-#: ../../mod/siteinfo.php:101
-msgid "Running at web location"
-msgstr "Draaiend op weblocatie"
-
-#: ../../mod/siteinfo.php:102
-msgid ""
-"Please visit <a href=\"http://getzot.com\">GetZot.com</a> to learn more "
-"about the Red Matrix."
-msgstr "Bezoek <a href=\"http://redmatrix.me\">RedMatrix.me</a> om meer te leren over de RedMatrix."
-
-#: ../../mod/siteinfo.php:103
-msgid "Bug reports and issues: please visit"
-msgstr "Bugrapporten en andere kwesties: bezoek"
-
-#: ../../mod/siteinfo.php:106
-msgid ""
-"Suggestions, praise, etc. - please email \"redmatrix\" at librelist - dot "
-"com"
-msgstr "Voorstellen, lofbetuigingen, enz. - e-mail \"redmatrix\" at librelist - dot com"
-
-#: ../../mod/siteinfo.php:108
-msgid "Site Administrators"
-msgstr "Hubbeheerders"
-
-#: ../../mod/photos.php:77
-msgid "Page owner information could not be retrieved."
-msgstr "Informatie over de pagina-eigenaar werd niet ontvangen."
-
-#: ../../mod/photos.php:97
-msgid "Album not found."
-msgstr "Album niet gevonden."
-
-#: ../../mod/photos.php:119 ../../mod/photos.php:675
-msgid "Delete Album"
-msgstr "Verwijder album"
+#: ../../mod/impel.php:33
+msgid "webpage"
+msgstr "Webpagina"
-#: ../../mod/photos.php:159 ../../mod/photos.php:963
-msgid "Delete Photo"
-msgstr "Verwijder foto"
-
-#: ../../mod/photos.php:453
-msgid "No photos selected"
-msgstr "Geen foto's geselecteerd"
-
-#: ../../mod/photos.php:500
-msgid "Access to this item is restricted."
-msgstr "Toegang tot dit item is beperkt."
+#: ../../mod/impel.php:38
+msgid "block"
+msgstr "blok"
-#: ../../mod/photos.php:574
-#, php-format
-msgid "You have used %1$.2f Mbytes of %2$.2f Mbytes photo storage."
-msgstr "Je gebruiker %1$.2f MB van totaal %2$.2f MB foto-opslagruimte."
+#: ../../mod/impel.php:43
+msgid "layout"
+msgstr "lay-out"
-#: ../../mod/photos.php:577
+#: ../../mod/impel.php:117
#, php-format
-msgid "You have used %1$.2f Mbytes of photo storage."
-msgstr "Je gebruikt %1$.2f MB aan foto-opslagruimte."
-
-#: ../../mod/photos.php:596
-msgid "Upload Photos"
-msgstr "Foto's uploaden"
-
-#: ../../mod/photos.php:600 ../../mod/photos.php:670
-msgid "New album name: "
-msgstr "Nieuwe albumnaam: "
-
-#: ../../mod/photos.php:601
-msgid "or existing album name: "
-msgstr "of een bestaande albumnaam: "
-
-#: ../../mod/photos.php:602
-msgid "Do not show a status post for this upload"
-msgstr "Plaats geen bericht voor deze upload."
-
-#: ../../mod/photos.php:622
-msgid "Album name could not be decoded"
-msgstr "Albumnaam kon niet gedecodeerd worden"
-
-#: ../../mod/photos.php:659 ../../mod/photos.php:681 ../../mod/photos.php:1135
-#: ../../mod/photos.php:1150
-msgid "Contact Photos"
-msgstr "Connectiefoto's"
-
-#: ../../mod/photos.php:685
-msgid "Edit Album"
-msgstr "Album bewerken"
-
-#: ../../mod/photos.php:691
-msgid "Show Newest First"
-msgstr "Nieuwste eerst weergeven"
-
-#: ../../mod/photos.php:693
-msgid "Show Oldest First"
-msgstr "Oudste eerst weergeven"
-
-#: ../../mod/photos.php:736 ../../mod/photos.php:1182
-msgid "View Photo"
-msgstr "Foto weergeven"
-
-#: ../../mod/photos.php:782
-msgid "Permission denied. Access to this item may be restricted."
-msgstr "Toegang geweigerd. Toegang tot dit item kan zijn beperkt."
-
-#: ../../mod/photos.php:784
-msgid "Photo not available"
-msgstr "Foto niet aanwezig"
-
-#: ../../mod/photos.php:844
-msgid "Use as profile photo"
-msgstr "Als profielfoto gebruiken"
-
-#: ../../mod/photos.php:868
-msgid "View Full Size"
-msgstr "Volledige grootte weergeven"
-
-#: ../../mod/photos.php:946
-msgid "Edit photo"
-msgstr "Foto bewerken"
+msgid "%s element installed"
+msgstr "%s onderdeel geïnstalleerd"
-#: ../../mod/photos.php:948
-msgid "Rotate CW (right)"
-msgstr "Draai met de klok mee (naar rechts)"
-
-#: ../../mod/photos.php:949
-msgid "Rotate CCW (left)"
-msgstr "Draai tegen de klok in (naar links)"
-
-#: ../../mod/photos.php:952
-msgid "New album name"
-msgstr "Nieuwe albumnaam"
-
-#: ../../mod/photos.php:955
-msgid "Caption"
-msgstr "Bijschrift"
+#: ../../mod/profile_photo.php:108
+msgid "Image uploaded but image cropping failed."
+msgstr "Afbeelding geüpload, maar afbeelding kon niet worden bijgesneden. "
-#: ../../mod/photos.php:957
-msgid "Add a Tag"
-msgstr "Label toevoegen"
+#: ../../mod/profile_photo.php:161
+msgid "Image resize failed."
+msgstr "Afbeelding kon niet van grootte veranderd worden."
-#: ../../mod/photos.php:960
+#: ../../mod/profile_photo.php:205
msgid ""
-"Example: @bob, @Barbara_Jensen, @jim@example.com, #California, #camping"
-msgstr "Voorbeeld: @bob, @Barbara_Jansen, @jan@example.com, #Friesland, #camping"
-
-#: ../../mod/photos.php:1113
-msgid "In This Photo:"
-msgstr "Op deze foto:"
-
-#: ../../mod/photos.php:1188
-msgid "View Album"
-msgstr "Album weergeven"
-
-#: ../../mod/photos.php:1197
-msgid "Recent Photos"
-msgstr "Recente foto's"
-
-#: ../../mod/sources.php:32
-msgid "Failed to create source. No channel selected."
-msgstr "Aanmaken bron mislukt. Geen kanaal geselecteerd."
-
-#: ../../mod/sources.php:45
-msgid "Source created."
-msgstr "Bron aangemaakt."
-
-#: ../../mod/sources.php:57
-msgid "Source updated."
-msgstr "Bron aangemaakt."
-
-#: ../../mod/sources.php:82
-msgid "*"
-msgstr "*"
-
-#: ../../mod/sources.php:89
-msgid "Manage remote sources of content for your channel."
-msgstr "Beheer externe bronnen met inhoud voor jouw kanaal"
-
-#: ../../mod/sources.php:90 ../../mod/sources.php:100
-msgid "New Source"
-msgstr "Nieuwe bron"
+"Shift-reload the page or clear browser cache if the new photo does not "
+"display immediately."
+msgstr "Vernieuw de pagina met shift+R of shift+F5, of leeg je browserbuffer, wanneer de nieuwe foto niet meteen wordt weergegeven."
-#: ../../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 "Importeer complete of gedeelde inhoud vanuit het volgende kanaal naar dit kanaal, en verdeel het vervolgens volgens jouw kanaalinstellingen."
+#: ../../mod/profile_photo.php:232
+#, php-format
+msgid "Image exceeds size limit of %d"
+msgstr "Afbeeldingsgrootte overschrijdt het limiet van %d"
-#: ../../mod/sources.php:102 ../../mod/sources.php:134
-msgid "Only import content with these words (one per line)"
-msgstr "Importeer alleen inhoud met deze woorden (één per regel)"
+#: ../../mod/profile_photo.php:241
+msgid "Unable to process image."
+msgstr "Niet in staat om afbeelding te verwerken."
-#: ../../mod/sources.php:102 ../../mod/sources.php:134
-msgid "Leave blank to import all public content"
-msgstr "Laat leeg om alle openbare inhoud te importeren"
+#: ../../mod/profile_photo.php:290 ../../mod/profile_photo.php:339
+msgid "Photo not available."
+msgstr "Foto niet beschikbaar."
-#: ../../mod/sources.php:103 ../../mod/sources.php:137
-#: ../../mod/new_channel.php:110
-msgid "Channel Name"
-msgstr "Kanaalnaam"
+#: ../../mod/profile_photo.php:358
+msgid "Upload File:"
+msgstr "Bestand uploaden:"
-#: ../../mod/sources.php:123 ../../mod/sources.php:150
-msgid "Source not found."
-msgstr "Bron niet gevonden"
+#: ../../mod/profile_photo.php:359
+msgid "Select a profile:"
+msgstr "Kies een profiel:"
-#: ../../mod/sources.php:130
-msgid "Edit Source"
-msgstr "Bron bewerken"
+#: ../../mod/profile_photo.php:360
+msgid "Upload Profile Photo"
+msgstr "Profielfoto uploaden"
-#: ../../mod/sources.php:131
-msgid "Delete Source"
-msgstr "Bron verwijderen"
+#: ../../mod/profile_photo.php:365
+msgid "skip this step"
+msgstr "sla deze stap over"
-#: ../../mod/sources.php:158
-msgid "Source removed"
-msgstr "Bron verwijderd"
+#: ../../mod/profile_photo.php:365
+msgid "select a photo from your photo albums"
+msgstr "Kies een foto uit jouw fotoalbums"
-#: ../../mod/sources.php:160
-msgid "Unable to remove source."
-msgstr "Verwijderen bron mislukt."
+#: ../../mod/profile_photo.php:381
+msgid "Crop Image"
+msgstr "Afbeelding bijsnijden"
-#: ../../mod/filer.php:49
-msgid "- select -"
-msgstr "- kies map -"
+#: ../../mod/profile_photo.php:382
+msgid "Please adjust the image cropping for optimum viewing."
+msgstr "Snij de afbeelding zo uit dat deze optimaal wordt weergegeven."
-#: ../../mod/events.php:72
-msgid "Event title and start time are required."
-msgstr "Titel en begintijd van gebeurtenis zijn vereist."
+#: ../../mod/profile_photo.php:384
+msgid "Done Editing"
+msgstr "Klaar met bewerken"
-#: ../../mod/events.php:86
-msgid "Event not found."
-msgstr "Gebeurtenis niet gevonden"
+#: ../../mod/profile_photo.php:427
+msgid "Image uploaded successfully."
+msgstr "Uploaden afbeelding geslaagd"
-#: ../../mod/events.php:329
-msgid "l, F j"
-msgstr "l j F"
+#: ../../mod/profile_photo.php:429
+msgid "Image upload failed."
+msgstr "Uploaden afbeelding mislukt"
-#: ../../mod/events.php:351
-msgid "Edit event"
-msgstr "Gebeurtenis bewerken"
+#: ../../mod/profile_photo.php:438
+#, php-format
+msgid "Image size reduction [%s] failed."
+msgstr "Verkleinen [%s] van afbeelding mislukt."
-#: ../../mod/events.php:397
-msgid "Create New Event"
-msgstr "Nieuwe gebeurtenis aanmaken"
+#: ../../mod/item.php:159
+msgid "Unable to locate original post."
+msgstr "Niet in staat om de originele locatie van het bericht te vinden. "
-#: ../../mod/events.php:398
-msgid "Previous"
-msgstr "Vorige"
+#: ../../mod/item.php:418
+msgid "Empty post discarded."
+msgstr "Leeg bericht geannuleerd"
-#: ../../mod/events.php:469
-msgid "hour:minute"
-msgstr "uur:minuut"
+#: ../../mod/item.php:460
+msgid "Executable content type not permitted to this channel."
+msgstr "Uitvoerbare bestanden zijn niet toegestaan op dit kanaal."
-#: ../../mod/events.php:489
-msgid "Event details"
-msgstr "Details van gebeurtenis"
+#: ../../mod/item.php:899
+msgid "System error. Post not saved."
+msgstr "Systeemfout. Bericht niet opgeslagen."
-#: ../../mod/events.php:490
+#: ../../mod/item.php:1117
#, php-format
-msgid "Format is %s %s. Starting date and Title are required."
-msgstr "Volgorde is %s %s. Begintijd en titel zijn vereist."
-
-#: ../../mod/events.php:492
-msgid "Event Starts:"
-msgstr "Begin gebeurtenis:"
-
-#: ../../mod/events.php:492 ../../mod/events.php:506 ../../mod/appman.php:91
-#: ../../mod/appman.php:92
-msgid "Required"
-msgstr "Vereist"
-
-#: ../../mod/events.php:495
-msgid "Finish date/time is not known or not relevant"
-msgstr "Einddatum/-tijd is niet bekend of niet relevant"
+msgid "You have reached your limit of %1$.0f top level posts."
+msgstr "Je hebt jouw limiet van %1$.0f berichten bereikt."
-#: ../../mod/events.php:497
-msgid "Event Finishes:"
-msgstr "Einde gebeurtenis:"
+#: ../../mod/item.php:1123
+#, php-format
+msgid "You have reached your limit of %1$.0f webpages."
+msgstr "Je hebt jouw limiet van %1$.0f webpagina's bereikt."
-#: ../../mod/events.php:500
-msgid "Adjust for viewer timezone"
-msgstr "Aanpassen aan de tijdzone van wie deze gebeurtenis bekijkt"
+#: ../../mod/fsuggest.php:20 ../../mod/fsuggest.php:92
+msgid "Contact not found."
+msgstr "Contact niet gevonden"
-#: ../../mod/events.php:502
-msgid "Description:"
-msgstr "Omschrijving:"
+#: ../../mod/fsuggest.php:63
+msgid "Friend suggestion sent."
+msgstr "Kanaalvoorstel verzonden."
-#: ../../mod/events.php:506
-msgid "Title:"
-msgstr "Titel:"
+#: ../../mod/fsuggest.php:97
+msgid "Suggest Friends"
+msgstr "Kanalen voorstellen"
-#: ../../mod/events.php:508
-msgid "Share this event"
-msgstr "Deel deze gebeurtenis"
+#: ../../mod/fsuggest.php:99
+#, php-format
+msgid "Suggest a friend for %s"
+msgstr "Stel een kanaal voor aan %s"
-#: ../../mod/filestorage.php:68
+#: ../../mod/filestorage.php:76
msgid "Permission Denied."
msgstr "Toegang geweigerd"
-#: ../../mod/filestorage.php:85
+#: ../../mod/filestorage.php:92
msgid "File not found."
msgstr "Bestand niet gevonden."
-#: ../../mod/filestorage.php:122
+#: ../../mod/filestorage.php:131
msgid "Edit file permissions"
msgstr "Bestandsrechten bewerken"
-#: ../../mod/filestorage.php:131
+#: ../../mod/filestorage.php:140
msgid "Set/edit permissions"
msgstr "Rechten instellen/bewerken"
-#: ../../mod/filestorage.php:132
+#: ../../mod/filestorage.php:141
msgid "Include all files and sub folders"
msgstr "Toepassen op alle bestanden en submappen"
-#: ../../mod/filestorage.php:133
+#: ../../mod/filestorage.php:142
msgid "Return to file list"
msgstr "Terugkeren naar bestandlijst "
-#: ../../mod/filestorage.php:135
+#: ../../mod/filestorage.php:144
msgid "Copy/paste this code to attach file to a post"
msgstr "Kopieer/plak deze code om het bestand aan een bericht te koppelen"
-#: ../../mod/filestorage.php:136
+#: ../../mod/filestorage.php:145
msgid "Copy/paste this URL to link file from a web page"
msgstr "Kopieer/plak deze URL om het bestand aan een externe webpagina te koppelen"
-#: ../../mod/follow.php:25
-msgid "Channel added."
-msgstr "Kanaal toegevoegd."
+#: ../../mod/acl.php:245
+msgid "network"
+msgstr "netwerk"
-#: ../../mod/subthread.php:103
-#, php-format
-msgid "%1$s is following %2$s's %3$s"
-msgstr "%1$s volgt het %3$s van %2$s"
+#: ../../mod/delegate.php:95
+msgid "No potential page delegates located."
+msgstr "Geen gevolmachtigde personen gevonden waaraan mogelijk het accountbeheer kan worden uitbesteed."
-#: ../../mod/fsuggest.php:20 ../../mod/fsuggest.php:92
-msgid "Contact not found."
-msgstr "Contact niet gevonden"
+#: ../../mod/delegate.php:121
+msgid "Delegate Page Management"
+msgstr "Accountbeheer uitbesteden"
-#: ../../mod/fsuggest.php:63
-msgid "Friend suggestion sent."
-msgstr "Kanaalvoorstel verzonden."
+#: ../../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 "Gevolmachtigde personen zijn in staat om alle aspecten van dit account te beheren, behalve enkele basisinstellingen. Besteed het beheer van je persoonlijke account niet aan iemand uit die je niet volledig vertrouwd."
-#: ../../mod/fsuggest.php:97
-msgid "Suggest Friends"
-msgstr "Kanalen voorstellen"
+#: ../../mod/delegate.php:124
+msgid "Existing Page Managers"
+msgstr "Bestaande accountbeheerders"
-#: ../../mod/fsuggest.php:99
-#, php-format
-msgid "Suggest a friend for %s"
-msgstr "Stel een kanaal voor aan %s"
+#: ../../mod/delegate.php:126
+msgid "Existing Page Delegates"
+msgstr "Bestaande gevolmachtigde accountbeheerders"
-#: ../../mod/suggest.php:35
-msgid ""
-"No suggestions available. If this is a new site, please try again in 24 "
-"hours."
-msgstr "Geen voorgestelde kanalen gevonden. Wanneer dit een nieuwe hub is, probeer het dan over 24 uur weer."
+#: ../../mod/delegate.php:128
+msgid "Potential Delegates"
+msgstr "Gevolmachtigde personen waaraan mogelijk het accountbeheer kan worden uitbesteed."
+
+#: ../../mod/delegate.php:130 ../../mod/tagrm.php:133 ../../mod/photos.php:905
+msgid "Remove"
+msgstr "Verwijderen"
+
+#: ../../mod/delegate.php:131
+msgid "Add"
+msgstr "Toevoegen"
+
+#: ../../mod/delegate.php:132
+msgid "No entries."
+msgstr "Geen"
+
+#: ../../mod/follow.php:25
+msgid "Channel added."
+msgstr "Kanaal toegevoegd."
#: ../../mod/group.php:20
msgid "Collection created."
@@ -6331,28 +6565,121 @@ msgstr "Alle kanaalconnecties"
msgid "Click on a channel to add or remove."
msgstr "Klik op een kanaal om deze toe te voegen of te verwijderen."
+#: ../../mod/home.php:48
+msgid "Red Matrix - &quot;The Network&quot;"
+msgstr "RedMatrix - &quot;The Network&quot;"
+
+#: ../../mod/home.php:101
+#, php-format
+msgid "Welcome to %s"
+msgstr "Welkom op %s"
+
+#: ../../mod/suggest.php:35
+msgid ""
+"No suggestions available. If this is a new site, please try again in 24 "
+"hours."
+msgstr "Geen voorgestelde kanalen gevonden. Wanneer dit een nieuwe hub is, probeer het dan over 24 uur weer."
+
+#: ../../mod/import.php:25
+#, php-format
+msgid "Your service plan only allows %d channels."
+msgstr "Jouw abonnement staat maar %d kanalen toe."
+
+#: ../../mod/import.php:51
+msgid "Nothing to import."
+msgstr "Niets gevonden om te importeren"
+
+#: ../../mod/import.php:75
+msgid "Unable to download data from old server"
+msgstr "Niet in staat om gegevens van de oude hub te downloaden"
+
+#: ../../mod/import.php:81
+msgid "Imported file is empty."
+msgstr "Geïmporteerde bestand is leeg"
+
+#: ../../mod/import.php:105
+msgid ""
+"Cannot create a duplicate channel identifier on this system. Import failed."
+msgstr "Kan geen dubbele kanaal-identificator op deze hub aanmaken. Importeren mislukt."
+
+#: ../../mod/import.php:123
+msgid "Channel clone failed. Import failed."
+msgstr "Het klonen van het kanaal is mislukt. Importeren mislukt."
+
+#: ../../mod/import.php:133
+msgid "Cloned channel not found. Import failed."
+msgstr "Gekloond kanaal niet gevonden. Importeren mislukt."
+
+#: ../../mod/import.php:451
+msgid "Import completed."
+msgstr "Import voltooid."
+
+#: ../../mod/import.php:463
+msgid "You must be logged in to use this feature."
+msgstr "Je moet ingelogd zijn om dit onderdeel te kunnen gebruiken."
+
+#: ../../mod/import.php:468
+msgid "Import Channel"
+msgstr "Kanaal importeren"
+
+#: ../../mod/import.php:469
+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 "Gebruik dit formulier om een bestaand kanaal te importeren van een andere hub. Je kan de kanaal-identiteit van de oude hub via het netwerk ontvangen of een exportbestand verstrekken. Alleen de identiteit en de connecties zullen geïmporteerd worden. Het importeren van inhoud is nog niet beschikbaar."
+
+#: ../../mod/import.php:470
+msgid "File to Upload"
+msgstr "Bestand om te uploaden"
+
+#: ../../mod/import.php:471
+msgid "Or provide the old server/hub details"
+msgstr "Of vul de gegevens van de oude hub in"
+
+#: ../../mod/import.php:472
+msgid "Your old identity address (xyz@example.com)"
+msgstr "Jouw oude kanaaladres (xyz@example.com)"
+
+#: ../../mod/import.php:473
+msgid "Your old login email address"
+msgstr "Het e-mailadres van je oude account"
+
+#: ../../mod/import.php:474
+msgid "Your old login password"
+msgstr "Wachtwoord van jouw oude account"
+
+#: ../../mod/import.php:475
+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 "Voor elke optie geldt dat je moet kiezen of je jouw primaire kanaaladres op deze hub wil instellen of dat jouw oude hub deze rol blijft vervullen."
+
+#: ../../mod/import.php:476
+msgid "Make this hub my primary location"
+msgstr "Stel deze hub als mijn primaire locatie in"
+
+#: ../../mod/import.php:477
+msgid "Import existing posts if possible"
+msgstr "Importeer bestaande berichten (wanneer mogelijk)"
+
#: ../../mod/tagger.php:98
#, php-format
msgid "%1$s tagged %2$s's %3$s with %4$s"
msgstr "%1$s labelde het %3$s van %2$s met %4$s"
-#: ../../mod/help.php:43 ../../mod/help.php:49 ../../mod/help.php:55
-msgid "Help:"
-msgstr "Hulp:"
-
-#: ../../mod/help.php:69 ../../index.php:233
-msgid "Not Found"
-msgstr "Niet gevonden"
-
-#: ../../mod/tagrm.php:41
+#: ../../mod/tagrm.php:44 ../../mod/tagrm.php:94
msgid "Tag removed"
msgstr "Label verwijderd"
-#: ../../mod/tagrm.php:79
+#: ../../mod/tagrm.php:119
msgid "Remove Item Tag"
msgstr "Verwijder itemlabel"
-#: ../../mod/tagrm.php:81
+#: ../../mod/tagrm.php:121
msgid "Select a tag to remove: "
msgstr "Kies een label om te verwijderen"
@@ -6360,7 +6687,7 @@ msgstr "Kies een label om te verwijderen"
msgid "Theme settings updated."
msgstr "Thema-instellingen bijgewerkt."
-#: ../../mod/admin.php:97 ../../mod/admin.php:412
+#: ../../mod/admin.php:97 ../../mod/admin.php:411
msgid "Site"
msgstr "Hub-instellingen"
@@ -6368,19 +6695,19 @@ msgstr "Hub-instellingen"
msgid "Accounts"
msgstr "Accounts"
-#: ../../mod/admin.php:99 ../../mod/admin.php:857
+#: ../../mod/admin.php:99 ../../mod/admin.php:858
msgid "Channels"
msgstr "Kanalen"
-#: ../../mod/admin.php:100 ../../mod/admin.php:948 ../../mod/admin.php:990
+#: ../../mod/admin.php:100 ../../mod/admin.php:949 ../../mod/admin.php:991
msgid "Plugins"
msgstr "Plug-ins"
-#: ../../mod/admin.php:101 ../../mod/admin.php:1153 ../../mod/admin.php:1189
+#: ../../mod/admin.php:101 ../../mod/admin.php:1154 ../../mod/admin.php:1190
msgid "Themes"
msgstr "Thema's"
-#: ../../mod/admin.php:102 ../../mod/admin.php:513
+#: ../../mod/admin.php:102 ../../mod/admin.php:512
msgid "Server"
msgstr "Hubbeheer"
@@ -6392,7 +6719,7 @@ msgstr "Profielconfiguratie"
msgid "DB updates"
msgstr "Database-updates"
-#: ../../mod/admin.php:118 ../../mod/admin.php:125 ../../mod/admin.php:1276
+#: ../../mod/admin.php:118 ../../mod/admin.php:125 ../../mod/admin.php:1277
msgid "Logs"
msgstr "Logboeken"
@@ -6402,16 +6729,16 @@ msgstr "Plug-in-opties"
#: ../../mod/admin.php:126
msgid "User registrations waiting for confirmation"
-msgstr "Accountregistraties die op goedkeuring wachten"
+msgstr "Accounts die op goedkeuring wachten"
#: ../../mod/admin.php:206
msgid "Message queues"
msgstr "Berichtenwachtrij"
-#: ../../mod/admin.php:211 ../../mod/admin.php:411 ../../mod/admin.php:512
-#: ../../mod/admin.php:721 ../../mod/admin.php:856 ../../mod/admin.php:947
-#: ../../mod/admin.php:989 ../../mod/admin.php:1152 ../../mod/admin.php:1188
-#: ../../mod/admin.php:1275
+#: ../../mod/admin.php:211 ../../mod/admin.php:410 ../../mod/admin.php:511
+#: ../../mod/admin.php:721 ../../mod/admin.php:857 ../../mod/admin.php:948
+#: ../../mod/admin.php:990 ../../mod/admin.php:1153 ../../mod/admin.php:1189
+#: ../../mod/admin.php:1276
msgid "Administration"
msgstr "Beheer"
@@ -6421,9 +6748,9 @@ msgstr "Samenvatting"
#: ../../mod/admin.php:214
msgid "Registered users"
-msgstr "Geregistreerde gebruikers"
+msgstr "Geregistreerde accounts"
-#: ../../mod/admin.php:216 ../../mod/admin.php:516
+#: ../../mod/admin.php:216 ../../mod/admin.php:515
msgid "Pending registrations"
msgstr "Accounts die op goedkeuring wachten"
@@ -6431,355 +6758,352 @@ msgstr "Accounts die op goedkeuring wachten"
msgid "Version"
msgstr "Versie"
-#: ../../mod/admin.php:219 ../../mod/admin.php:517
+#: ../../mod/admin.php:219 ../../mod/admin.php:516
msgid "Active plugins"
msgstr "Ingeschakelde plug-ins"
-#: ../../mod/admin.php:332
+#: ../../mod/admin.php:326
msgid "Site settings updated."
msgstr "Hub-instellingen bijgewerkt."
-#: ../../mod/admin.php:363
-msgid "No special theme for accessibility"
-msgstr "Geen speciaal thema voor universele toegang"
+#: ../../mod/admin.php:365
+msgid "experimental"
+msgstr "experimenteel"
-#: ../../mod/admin.php:392
+#: ../../mod/admin.php:367
+msgid "unsupported"
+msgstr "Niet ondersteund"
+
+#: ../../mod/admin.php:391
msgid "Yes - with approval"
msgstr "Ja - met goedkeuring"
-#: ../../mod/admin.php:398
+#: ../../mod/admin.php:397
msgid "My site is not a public server"
msgstr "Mijn RedMatrix-hub is niet openbaar"
-#: ../../mod/admin.php:399
+#: ../../mod/admin.php:398
msgid "My site has paid access only"
msgstr "Mijn RedMatrix-hub kent alleen betaalde toegang"
-#: ../../mod/admin.php:400
+#: ../../mod/admin.php:399
msgid "My site has free access only"
msgstr "Mijn RedMatrix-hub kent alleen gratis toegang"
-#: ../../mod/admin.php:401
+#: ../../mod/admin.php:400
msgid "My site offers free accounts with optional paid upgrades"
msgstr "Mijn RedMatrix-hub biedt gratis accounts aan met betaalde uitbreidingen als optie"
-#: ../../mod/admin.php:415
+#: ../../mod/admin.php:414
msgid "File upload"
msgstr "Bestand uploaden"
-#: ../../mod/admin.php:416
+#: ../../mod/admin.php:415
msgid "Policies"
msgstr "Beleid"
-#: ../../mod/admin.php:421
+#: ../../mod/admin.php:420
msgid "Site name"
msgstr "Naam van deze RedMatrix-hub"
-#: ../../mod/admin.php:422
+#: ../../mod/admin.php:421
msgid "Banner/Logo"
msgstr "Banner/logo"
-#: ../../mod/admin.php:423
+#: ../../mod/admin.php:422
msgid "Administrator Information"
msgstr "Informatie over de beheerder van deze hub"
-#: ../../mod/admin.php:423
+#: ../../mod/admin.php:422
msgid ""
"Contact information for site administrators. Displayed on siteinfo page. "
"BBCode can be used here"
msgstr "Contactinformatie voor hub-beheerders. Getoond op pagina met hub-informatie. Er kan hier bbcode gebruikt worden."
-#: ../../mod/admin.php:424
+#: ../../mod/admin.php:423
msgid "System language"
msgstr "Standaardtaal"
-#: ../../mod/admin.php:425
+#: ../../mod/admin.php:424
msgid "System theme"
msgstr "Standaardthema"
-#: ../../mod/admin.php:425
+#: ../../mod/admin.php:424
msgid ""
"Default system theme - may be over-ridden by user profiles - <a href='#' "
"id='cnftheme'>change theme settings</a>"
-msgstr "Standaardthema voor RedMatrix-hub (kan door gebruiker veranderd worden) - <a href='#' id='cnftheme'>verander thema-instellingen</a>"
+msgstr "Standaardthema voor RedMatrix-hub (kan door lid veranderd worden) - <a href='#' id='cnftheme'>verander thema-instellingen</a>"
-#: ../../mod/admin.php:426
+#: ../../mod/admin.php:425
msgid "Mobile system theme"
msgstr "Standaardthema voor mobiel"
-#: ../../mod/admin.php:426
+#: ../../mod/admin.php:425
msgid "Theme for mobile devices"
msgstr "Thema voor mobiele apparaten"
#: ../../mod/admin.php:427
-msgid "Accessibility system theme"
-msgstr "Standaardthema voor universele toegang"
-
-#: ../../mod/admin.php:427
-msgid "Accessibility theme"
-msgstr "Thema voor universele toegang"
-
-#: ../../mod/admin.php:428
-msgid "Channel to use for this website's static pages"
-msgstr "Kanaal die op deze hub als statische pagina op de homepage gebruikt moet worden"
-
-#: ../../mod/admin.php:428
-msgid "Site Channel"
-msgstr "Kanaal op deze RedMatrix-hub"
-
-#: ../../mod/admin.php:429
msgid "Enable Diaspora Protocol"
-msgstr "Diaspora-protocol inschakkelen"
+msgstr "Diaspora-protocol inschakelen"
-#: ../../mod/admin.php:429
+#: ../../mod/admin.php:427
msgid "Communicate with Diaspora and Friendica - experimental"
msgstr "Communiceer met Diaspora en Friendica (experimenteel)"
-#: ../../mod/admin.php:430
+#: ../../mod/admin.php:428
msgid "Allow Feeds as Connections"
msgstr "Sta feeds toe als connecties"
-#: ../../mod/admin.php:430
+#: ../../mod/admin.php:428
msgid "(Heavy system resource usage)"
msgstr "(sterk negatieve invloed op systeembronnen hub)"
-#: ../../mod/admin.php:431
+#: ../../mod/admin.php:429
msgid "Maximum image size"
msgstr "Maximale grootte van afbeeldingen"
-#: ../../mod/admin.php:431
+#: ../../mod/admin.php:429
msgid ""
"Maximum size in bytes of uploaded images. Default is 0, which means no "
"limits."
msgstr "Maximale grootte in bytes voor afbeeldingen die worden geüpload. Standaard is 0, wat geen limiet betekend."
-#: ../../mod/admin.php:432
+#: ../../mod/admin.php:430
msgid "Does this site allow new member registration?"
-msgstr "Staat deze hub registratie van nieuwe accounts toe?"
+msgstr "Staat deze hub nieuwe accounts toe?"
-#: ../../mod/admin.php:433
+#: ../../mod/admin.php:431
msgid "Which best describes the types of account offered by this hub?"
msgstr "Wat voor soort accounts biedt deze RedMatrix-hub aan? Kies wat het meest in de buurt komt."
-#: ../../mod/admin.php:434
+#: ../../mod/admin.php:432
msgid "Register text"
-msgstr "Registratietekst"
+msgstr "Tekst tijdens registratie"
-#: ../../mod/admin.php:434
+#: ../../mod/admin.php:432
msgid "Will be displayed prominently on the registration page."
-msgstr "Wordt prominent op de registratiepagina getoond."
+msgstr "Tekst dat op de pagina voor het registreren van nieuwe accounts wordt getoond."
-#: ../../mod/admin.php:435
+#: ../../mod/admin.php:433
msgid "Accounts abandoned after x days"
msgstr "Accounts als verlaten beschouwen na zoveel aantal dagen:"
-#: ../../mod/admin.php:435
+#: ../../mod/admin.php:433
msgid ""
"Will not waste system resources polling external sites for abandonded "
"accounts. Enter 0 for no time limit."
msgstr "Zal geen systeembronnen verspillen door polling van externe hubs voor verlaten accounts. Vul 0 in voor geen tijdslimiet."
-#: ../../mod/admin.php:436
+#: ../../mod/admin.php:434
msgid "Allowed friend domains"
msgstr "Toegestane domeinen"
-#: ../../mod/admin.php:436
+#: ../../mod/admin.php:434
msgid ""
"Comma separated list of domains which are allowed to establish friendships "
"with this site. Wildcards are accepted. Empty to allow any domains"
msgstr "Komma-gescheiden lijst van domeinen waarvan kanalen connecties kunnen aangaan met kanalen op deze RedMatrix-hub. Wildcards zijn toegestaan.\nLaat leeg om alle domeinen toe te laten."
-#: ../../mod/admin.php:437
+#: ../../mod/admin.php:435
msgid "Allowed email domains"
msgstr "Toegestane e-maildomeinen"
-#: ../../mod/admin.php:437
+#: ../../mod/admin.php:435
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 "Door komma's gescheiden lijst met e-maildomeinen die op deze hub mogen registeren. Wildcards zijn toegestaan.\nLaat leeg om alle domeinen toe te laten."
-#: ../../mod/admin.php:438
+#: ../../mod/admin.php:436
msgid "Block public"
msgstr "Openbare toegang blokkeren"
-#: ../../mod/admin.php:438
+#: ../../mod/admin.php:436
msgid ""
"Check to block public access to all otherwise public personal pages on this "
"site unless you are currently logged in."
-msgstr "Vink dit aan om alle normaliter openbare persoonlijke pagina's op deze hub alleen toegankelijk te maken voor ingelogde gebruikers."
+msgstr "Vink dit aan om alle normaliter openbare persoonlijke pagina's op deze hub alleen toegankelijk te maken voor ingelogde leden."
-#: ../../mod/admin.php:439
+#: ../../mod/admin.php:437
+msgid "Verify Email Addresses"
+msgstr "E-mailadres verifieren"
+
+#: ../../mod/admin.php:437
+msgid ""
+"Check to verify email addresses used in account registration (recommended)."
+msgstr "Inschakelen om e-mailadressen te verifiëren die tijdens de accountregistratie worden gebruikt (aanbevolen)."
+
+#: ../../mod/admin.php:438
msgid "Force publish"
msgstr "Dwing kanaalvermelding af"
-#: ../../mod/admin.php:439
+#: ../../mod/admin.php:438
msgid ""
"Check to force all profiles on this site to be listed in the site directory."
msgstr "Vink dit aan om af te dwingen dat alle kanalen op deze hub in de kanalengids worden vermeld."
-#: ../../mod/admin.php:440
+#: ../../mod/admin.php:439
msgid "Disable discovery tab"
msgstr "Ontdekkingstab"
-#: ../../mod/admin.php:440
+#: ../../mod/admin.php:439
msgid ""
"Remove the tab in the network view with public content pulled from sources "
"chosen for this site."
msgstr "Verwijder de tab in de matrix-weergave waarin zich een selectie aan openbare berichten bevindt, die automatisch voor deze hub zijn uitgekozen."
-#: ../../mod/admin.php:441
+#: ../../mod/admin.php:440
msgid "No login on Homepage"
msgstr "Geen inlogformulier op de homepage"
-#: ../../mod/admin.php:441
+#: ../../mod/admin.php:440
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 "Vink dit aan om het inlogformulier op de homepage van deze hub, die niet-ingelogde gebruikers te zien krijgen, te verbergen. (bijvoorbeeld wanneer je een kanaal op deze RedMatrix-hub als homepage gebruikt)"
+msgstr "Vink dit aan om het inlogformulier op de homepage van deze hub, die niet-ingelogde bezoekers te zien krijgen, te verbergen. (bijvoorbeeld wanneer je een kanaal op deze RedMatrix-hub als homepage gebruikt)"
-#: ../../mod/admin.php:443
+#: ../../mod/admin.php:442
msgid "Proxy user"
-msgstr "Proxy-gebruiker"
+msgstr "Gebruikersnaam proxy"
-#: ../../mod/admin.php:444
+#: ../../mod/admin.php:443
msgid "Proxy URL"
-msgstr "Proxy-URL"
+msgstr "URL proxy"
-#: ../../mod/admin.php:445
+#: ../../mod/admin.php:444
msgid "Network timeout"
msgstr "Netwerktimeout"
-#: ../../mod/admin.php:445
+#: ../../mod/admin.php:444
msgid "Value is in seconds. Set to 0 for unlimited (not recommended)."
msgstr "Waarde is in seconden. Zet op 0 voor onbeperkt (niet aanbevolen)"
-#: ../../mod/admin.php:446
+#: ../../mod/admin.php:445
msgid "Delivery interval"
msgstr "Afleveringsinterval"
-#: ../../mod/admin.php:446
+#: ../../mod/admin.php:445
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 "Vertraag de achtergrondprocessen voor het afleveren met een aantal seconden om de systeembelasting te verminderen. Aanbevolen: 4-5 voor shared hosts, 2-3 voor virtual private servers (VPS) en 0-1 voor grote dedicated servers."
-#: ../../mod/admin.php:447
+#: ../../mod/admin.php:446
msgid "Poll interval"
msgstr "Poll-interval"
-#: ../../mod/admin.php:447
+#: ../../mod/admin.php:446
msgid ""
"Delay background polling processes by this many seconds to reduce system "
"load. If 0, use delivery interval."
msgstr "De achtergrondprocessen voor het afleveren met zoveel seconden vertragen om de systeembelasting te verminderen. 0 om de afleveringsinterval te gebruiken."
-#: ../../mod/admin.php:448
+#: ../../mod/admin.php:447
msgid "Maximum Load Average"
msgstr "Maximaal gemiddelde systeembelasting"
-#: ../../mod/admin.php:448
+#: ../../mod/admin.php:447
msgid ""
"Maximum system load before delivery and poll processes are deferred - "
"default 50."
msgstr "Maximale systeembelasting voordat de afleverings- en polllingsprocessen worden uitgesteld. Standaard is 50."
-#: ../../mod/admin.php:504
+#: ../../mod/admin.php:503
msgid "No server found"
msgstr "Geen hub gevonden"
-#: ../../mod/admin.php:511 ../../mod/admin.php:735
+#: ../../mod/admin.php:510 ../../mod/admin.php:735
msgid "ID"
msgstr "ID"
-#: ../../mod/admin.php:511
+#: ../../mod/admin.php:510
msgid "for channel"
msgstr "voor kanaal"
-#: ../../mod/admin.php:511
+#: ../../mod/admin.php:510
msgid "on server"
msgstr "op hub"
-#: ../../mod/admin.php:511
+#: ../../mod/admin.php:510
msgid "Status"
msgstr "Status"
-#: ../../mod/admin.php:532
+#: ../../mod/admin.php:531
msgid "Update has been marked successful"
msgstr "Update is als succesvol gemarkeerd"
-#: ../../mod/admin.php:542
+#: ../../mod/admin.php:541
#, php-format
msgid "Executing %s failed. Check system logs."
msgstr "Uitvoeren van %s is mislukt. Controleer systeemlogboek."
-#: ../../mod/admin.php:545
+#: ../../mod/admin.php:544
#, php-format
msgid "Update %s was successfully applied."
msgstr "Update %s was geslaagd."
-#: ../../mod/admin.php:549
+#: ../../mod/admin.php:548
#, php-format
msgid "Update %s did not return a status. Unknown if it succeeded."
msgstr "Update %s gaf geen melding. Het is daarom niet bekend of deze geslaagd is."
-#: ../../mod/admin.php:552
+#: ../../mod/admin.php:551
#, php-format
msgid "Update function %s could not be found."
msgstr "Update-functie %s kon niet gevonden worden."
-#: ../../mod/admin.php:567
+#: ../../mod/admin.php:566
msgid "No failed updates."
msgstr "Geen mislukte updates."
-#: ../../mod/admin.php:571
+#: ../../mod/admin.php:570
msgid "Failed Updates"
msgstr "Mislukte updates"
-#: ../../mod/admin.php:573
+#: ../../mod/admin.php:572
msgid "Mark success (if update was manually applied)"
msgstr "Markeer als geslaagd (wanneer de update handmatig was uitgevoerd)"
-#: ../../mod/admin.php:574
+#: ../../mod/admin.php:573
msgid "Attempt to execute this update step automatically"
msgstr "Poging om deze stap van de update automatisch uit te voeren."
-#: ../../mod/admin.php:600
+#: ../../mod/admin.php:599
#, php-format
msgid "%s user blocked/unblocked"
msgid_plural "%s users blocked/unblocked"
msgstr[0] "%s account geblokkeerd/gedeblokkeerd"
msgstr[1] "%s accounts geblokkeerd/gedeblokkeerd"
-#: ../../mod/admin.php:607
+#: ../../mod/admin.php:606
#, php-format
msgid "%s user deleted"
msgid_plural "%s users deleted"
msgstr[0] "%s account verwijderd"
msgstr[1] "%s accounts verwijderd"
-#: ../../mod/admin.php:638
+#: ../../mod/admin.php:635
msgid "Account not found"
msgstr "Account niet gevonden"
-#: ../../mod/admin.php:658
+#: ../../mod/admin.php:655
#, php-format
msgid "User '%s' unblocked"
msgstr "Account '%s' gedeblokkeerd"
-#: ../../mod/admin.php:658
+#: ../../mod/admin.php:655
#, php-format
msgid "User '%s' blocked"
-msgstr "Gebruiker '%s' geblokkeerd"
+msgstr "Lid '%s' geblokkeerd"
#: ../../mod/admin.php:722 ../../mod/admin.php:734
msgid "Users"
msgstr "Accounts"
-#: ../../mod/admin.php:724 ../../mod/admin.php:859
+#: ../../mod/admin.php:724 ../../mod/admin.php:860
msgid "select all"
msgstr "alles selecteren"
@@ -6834,9 +7158,9 @@ msgstr "Account {0} (met bijbehorende kanalen) wordt verwijderd !\\n\\nAlles wat
#: ../../mod/admin.php:771
#, php-format
msgid "%s channel censored/uncensored"
-msgid_plural "%s channelss censored/uncensored"
-msgstr[0] "%s kanalen gecensureerd/ongecensureerd"
-msgstr[1] "%s kanaal gecensureerd/ongecensureerd"
+msgid_plural "%s channels censored/uncensored"
+msgstr[0] "%s kanaal gecensureerd/ongecensureerd"
+msgstr[1] "%s kanalen gecensureerd/ongecensureerd"
#: ../../mod/admin.php:778
#, php-format
@@ -6854,284 +7178,256 @@ msgstr "Kanaal niet gevonden"
msgid "Channel '%s' deleted"
msgstr "Kanaal '%s' verwijderd"
-#: ../../mod/admin.php:818
+#: ../../mod/admin.php:819
#, php-format
msgid "Channel '%s' uncensored"
msgstr "Kanaal '%s' ongecensureerd"
-#: ../../mod/admin.php:818
+#: ../../mod/admin.php:819
#, php-format
msgid "Channel '%s' censored"
msgstr "Kanaal '%s' gecensureerd"
-#: ../../mod/admin.php:861
+#: ../../mod/admin.php:862
msgid "Censor"
msgstr "Censureren"
-#: ../../mod/admin.php:862
+#: ../../mod/admin.php:863
msgid "Uncensor"
msgstr "Niet censureren"
-#: ../../mod/admin.php:865
+#: ../../mod/admin.php:866
msgid "UID"
msgstr "UID"
-#: ../../mod/admin.php:867
+#: ../../mod/admin.php:868
msgid ""
"Selected channels will be deleted!\\n\\nEverything that was posted in these "
"channels on this site will be permanently deleted!\\n\\nAre you sure?"
msgstr "Geselecteerde kanalen worden verwijderd!\\n\\nAlles wat in deze kanalen op deze hub werd gepubliceerd wordt definitief verwijderd!\\n\\nWeet je het zeker?"
-#: ../../mod/admin.php:868
+#: ../../mod/admin.php:869
msgid ""
"The channel {0} will be deleted!\\n\\nEverything that was posted in this "
"channel on this site will be permanently deleted!\\n\\nAre you sure?"
msgstr "Kanaal {0} wordt verwijderd!\\n\\nAlles wat in dit kanaal op deze hub werd gepubliceerd wordt definitief verwijderd!\\n\\nWeet je het zeker?"
-#: ../../mod/admin.php:907
+#: ../../mod/admin.php:908
#, php-format
msgid "Plugin %s disabled."
msgstr "Plug-in %s uitgeschakeld."
-#: ../../mod/admin.php:911
+#: ../../mod/admin.php:912
#, php-format
msgid "Plugin %s enabled."
msgstr "Plug-in %s ingeschakeld"
-#: ../../mod/admin.php:921 ../../mod/admin.php:1123
+#: ../../mod/admin.php:922 ../../mod/admin.php:1124
msgid "Disable"
msgstr "Uitschakelen"
-#: ../../mod/admin.php:923 ../../mod/admin.php:1125
+#: ../../mod/admin.php:924 ../../mod/admin.php:1126
msgid "Enable"
msgstr "Inschakelen"
-#: ../../mod/admin.php:949 ../../mod/admin.php:1154
+#: ../../mod/admin.php:950 ../../mod/admin.php:1155
msgid "Toggle"
msgstr "Omschakelen"
-#: ../../mod/admin.php:957 ../../mod/admin.php:1164
+#: ../../mod/admin.php:958 ../../mod/admin.php:1165
msgid "Author: "
msgstr "Auteur: "
-#: ../../mod/admin.php:958 ../../mod/admin.php:1165
+#: ../../mod/admin.php:959 ../../mod/admin.php:1166
msgid "Maintainer: "
msgstr "Beheerder: "
-#: ../../mod/admin.php:1087
+#: ../../mod/admin.php:1088
msgid "No themes found."
msgstr "Geen thema's gevonden"
-#: ../../mod/admin.php:1146
+#: ../../mod/admin.php:1147
msgid "Screenshot"
msgstr "Schermafdruk"
-#: ../../mod/admin.php:1194
+#: ../../mod/admin.php:1195
msgid "[Experimental]"
msgstr "[Experimenteel]"
-#: ../../mod/admin.php:1195
+#: ../../mod/admin.php:1196
msgid "[Unsupported]"
msgstr "[Niet ondersteund]"
-#: ../../mod/admin.php:1222
+#: ../../mod/admin.php:1223
msgid "Log settings updated."
msgstr "Logboek-instellingen bijgewerkt."
-#: ../../mod/admin.php:1278
+#: ../../mod/admin.php:1279
msgid "Clear"
msgstr "Leegmaken"
-#: ../../mod/admin.php:1284
+#: ../../mod/admin.php:1285
msgid "Debugging"
msgstr "Debuggen"
-#: ../../mod/admin.php:1285
+#: ../../mod/admin.php:1286
msgid "Log file"
msgstr "Logbestand"
-#: ../../mod/admin.php:1285
+#: ../../mod/admin.php:1286
msgid ""
"Must be writable by web server. Relative to your Red top-level directory."
msgstr "Moet door de webserver beschrijfbaar zijn. Relatief ten opzichte van de bovenste map van je RedMatrix-installatie."
-#: ../../mod/admin.php:1286
+#: ../../mod/admin.php:1287
msgid "Log level"
msgstr "Logniveau"
-#: ../../mod/admin.php:1333
+#: ../../mod/admin.php:1334
msgid "New Profile Field"
msgstr "Nieuw profielveld"
-#: ../../mod/admin.php:1334 ../../mod/admin.php:1355
+#: ../../mod/admin.php:1335 ../../mod/admin.php:1356
msgid "Field nickname"
msgstr "Bijnaam voor veld"
-#: ../../mod/admin.php:1334 ../../mod/admin.php:1355
+#: ../../mod/admin.php:1335 ../../mod/admin.php:1356
msgid "System name of field"
msgstr "Systeemnaam voor veld"
-#: ../../mod/admin.php:1335 ../../mod/admin.php:1356
+#: ../../mod/admin.php:1336 ../../mod/admin.php:1357
msgid "Input type"
msgstr "Invoertype"
-#: ../../mod/admin.php:1336 ../../mod/admin.php:1357
+#: ../../mod/admin.php:1337 ../../mod/admin.php:1358
msgid "Field Name"
msgstr "Veldnaam"
-#: ../../mod/admin.php:1336 ../../mod/admin.php:1357
+#: ../../mod/admin.php:1337 ../../mod/admin.php:1358
msgid "Label on profile pages"
msgstr "Tekstlabel voor op profielpagina's"
-#: ../../mod/admin.php:1337 ../../mod/admin.php:1358
+#: ../../mod/admin.php:1338 ../../mod/admin.php:1359
msgid "Help text"
msgstr "Helptekst"
-#: ../../mod/admin.php:1337 ../../mod/admin.php:1358
+#: ../../mod/admin.php:1338 ../../mod/admin.php:1359
msgid "Additional info (optional)"
msgstr "Extra informatie (optioneel)"
-#: ../../mod/admin.php:1348
+#: ../../mod/admin.php:1349
msgid "Field definition not found"
msgstr "Velddefinitie niet gevonden"
-#: ../../mod/admin.php:1354
+#: ../../mod/admin.php:1355
msgid "Edit Profile Field"
msgstr "Profielveld bewerken"
-#: ../../mod/thing.php:98
-msgid "Thing updated"
-msgstr "Ding bijgewerkt"
+#: ../../mod/locs.php:19 ../../mod/locs.php:46
+msgid "Location not found."
+msgstr "Locatie niet gevonden."
-#: ../../mod/thing.php:158
-msgid "Object store: failed"
-msgstr "Opslaan van ding mislukt"
-
-#: ../../mod/thing.php:162
-msgid "Thing added"
-msgstr "Ding toegevoegd"
+#: ../../mod/locs.php:50
+msgid "Primary location cannot be removed."
+msgstr "Primaire locatie kan niet worden verwijderd."
-#: ../../mod/thing.php:182
-#, php-format
-msgid "OBJ: %1$s %2$s %3$s"
-msgstr "OBJ: %1$s %2$s %3$s"
+#: ../../mod/locs.php:82
+msgid "No locations found."
+msgstr "Geen locaties gevonden."
-#: ../../mod/thing.php:234
-msgid "Show Thing"
-msgstr "Ding weergeven"
+#: ../../mod/locs.php:95
+msgid "Manage Channel Locations"
+msgstr "Kanaallocaties beheren"
-#: ../../mod/thing.php:241
-msgid "item not found."
-msgstr "Item niet gevonden"
+#: ../../mod/locs.php:96
+msgid "Location (address)"
+msgstr "Locatie (adres)"
-#: ../../mod/thing.php:272
-msgid "Edit Thing"
-msgstr "Ding bewerken"
+#: ../../mod/locs.php:97
+msgid "Primary Location"
+msgstr "Primaire locatie"
-#: ../../mod/thing.php:274 ../../mod/thing.php:321
-msgid "Select a profile"
-msgstr "Kies een profiel"
+#: ../../mod/locs.php:98
+msgid "Drop location"
+msgstr "Locatie verwijderen"
-#: ../../mod/thing.php:278 ../../mod/thing.php:324
-msgid "Post an activity"
-msgstr "Plaats een bericht"
-
-#: ../../mod/thing.php:278 ../../mod/thing.php:324
-msgid "Only sends to viewers of the applicable profile"
-msgstr "Toont dit alleen aan diegene die het gekozen profiel mogen zien."
-
-#: ../../mod/thing.php:280 ../../mod/thing.php:326
-msgid "Name of thing e.g. something"
-msgstr "Naam van ding"
-
-#: ../../mod/thing.php:282 ../../mod/thing.php:327
-msgid "URL of thing (optional)"
-msgstr "URL van ding (optioneel)"
-
-#: ../../mod/thing.php:284 ../../mod/thing.php:328
-msgid "URL for photo of thing (optional)"
-msgstr "URL van foto van ding (optioneel)"
+#: ../../mod/mail.php:33
+msgid "Unable to lookup recipient."
+msgstr "Niet in staat om ontvanger op te zoeken."
-#: ../../mod/thing.php:319
-msgid "Add Thing to your Profile"
-msgstr "Ding aan je profiel toevoegen"
+#: ../../mod/mail.php:41
+msgid "Unable to communicate with requested channel."
+msgstr "Niet in staat om met het aangevraagde kanaal te communiceren."
-#: ../../mod/import.php:36
-msgid "Nothing to import."
-msgstr "Niets gevonden om te importeren"
+#: ../../mod/mail.php:48
+msgid "Cannot verify requested channel."
+msgstr "Kan opgevraagd kanaal niet verifieren"
-#: ../../mod/import.php:58
-msgid "Unable to download data from old server"
-msgstr "Niet in staat om gegevens van de oude hub te downloaden"
+#: ../../mod/mail.php:74
+msgid "Selected channel has private message restrictions. Send failed."
+msgstr "Gekozen kanaal heeft restricties voor privéberichten. Verzenden mislukt."
-#: ../../mod/import.php:64
-msgid "Imported file is empty."
-msgstr "Geïmporteerde bestand is leeg"
+#: ../../mod/mail.php:136
+msgid "Message deleted."
+msgstr "Bericht verwijderd."
-#: ../../mod/import.php:88
-msgid ""
-"Cannot create a duplicate channel identifier on this system. Import failed."
-msgstr "Kan geen dubbele kanaal-identificator op deze hub aanmaken. Importeren mislukt."
+#: ../../mod/mail.php:153
+msgid "Message recalled."
+msgstr "Bericht ingetrokken."
-#: ../../mod/import.php:106
-msgid "Channel clone failed. Import failed."
-msgstr "Het klonen van het kanaal is mislukt. Importeren mislukt."
+#: ../../mod/mail.php:222
+msgid "Send Private Message"
+msgstr "Privébericht versturen"
-#: ../../mod/import.php:116
-msgid "Cloned channel not found. Import failed."
-msgstr "Gekloond kanaal niet gevonden. Importeren mislukt."
+#: ../../mod/mail.php:223 ../../mod/mail.php:340
+msgid "To:"
+msgstr "Aan:"
-#: ../../mod/import.php:365
-msgid "Import completed."
-msgstr "Import voltooid."
+#: ../../mod/mail.php:228 ../../mod/mail.php:342
+msgid "Subject:"
+msgstr "Onderwerp:"
-#: ../../mod/import.php:378
-msgid "You must be logged in to use this feature."
-msgstr "Je moet ingelogd zijn om dit onderdeel te kunnen gebruiken."
+#: ../../mod/mail.php:232 ../../mod/mail.php:345 ../../mod/invite.php:131
+msgid "Your message:"
+msgstr "Jouw bericht:"
-#: ../../mod/import.php:383
-msgid "Import Channel"
-msgstr "Kanaal importeren"
+#: ../../mod/mail.php:239
+msgid "Send"
+msgstr "Verzenden"
-#: ../../mod/import.php:384
-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 "Gebruik dit formulier om een bestaand kanaal te importeren van een andere hub. Je kan de kanaal-identiteit van de oude hub via het netwerk ontvangen of een exportbestand verstrekken. Alleen de identiteit en de connecties zullen geïmporteerd worden. Het importeren van inhoud is nog niet beschikbaar."
+#: ../../mod/mail.php:266
+msgid "Message not found."
+msgstr "Bericht niet gevonden"
-#: ../../mod/import.php:385
-msgid "File to Upload"
-msgstr "Bestand om te uploaden"
+#: ../../mod/mail.php:309
+msgid "Delete message"
+msgstr "Bericht verwijderen"
-#: ../../mod/import.php:386
-msgid "Or provide the old server/hub details"
-msgstr "Of vul de gegevens van de oude hub in"
+#: ../../mod/mail.php:310
+msgid "Recall message"
+msgstr "Bericht intrekken"
-#: ../../mod/import.php:387
-msgid "Your old identity address (xyz@example.com)"
-msgstr "Jouw oude kanaaladres (xyz@example.com)"
+#: ../../mod/mail.php:312
+msgid "Message has been recalled."
+msgstr "Bericht is ingetrokken."
-#: ../../mod/import.php:388
-msgid "Your old login email address"
-msgstr "Het e-mailadres van je oude account"
+#: ../../mod/mail.php:329
+msgid "Private Conversation"
+msgstr "Privéconversatie"
-#: ../../mod/import.php:389
-msgid "Your old login password"
-msgstr "Wachtwoord van jouw oude account"
+#: ../../mod/mail.php:333 ../../mod/message.php:72
+msgid "Delete conversation"
+msgstr "Verwijder conversatie"
-#: ../../mod/import.php:390
+#: ../../mod/mail.php:335
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 "Voor elke optie geldt dat je moet kiezen of je jouw primaire kanaaladres op deze hub wil instellen of dat jouw oude hub deze rol blijft vervullen."
+"No secure communications available. You <strong>may</strong> be able to "
+"respond from the sender's profile page."
+msgstr "Geen veilige communicatie beschikbaar. <strong>Mogelijk</strong> kan je reageren op de kanaalpagina van de afzender."
-#: ../../mod/import.php:391
-msgid "Make this hub my primary location"
-msgstr "Stel deze hub als mijn primaire locatie in"
+#: ../../mod/mail.php:339
+msgid "Send Reply"
+msgstr "Antwoord versturen"
#: ../../mod/invite.php:25
msgid "Total invitation limit exceeded."
@@ -7174,10 +7470,6 @@ msgstr "Uitnodigingen verzenden"
msgid "Enter email addresses, one per line:"
msgstr "Voer e-mailadressen in, één per regel:"
-#: ../../mod/invite.php:131 ../../mod/mail.php:225 ../../mod/mail.php:338
-msgid "Your message:"
-msgstr "Jouw bericht:"
-
#: ../../mod/invite.php:132
msgid "Please join my community on RedMatrix."
msgstr "Hierbij nodig ik je uit om mij, en andere vrienden en kennissen, op de RedMatrix te vergezellen. Lees meer over de RedMatrix op https://redmatrix.me."
@@ -7202,82 +7494,44 @@ msgstr "of bezoek "
msgid "3. Click [Connect]"
msgstr "3. Klik op [+ Verbinden]"
-#: ../../mod/item.php:146
-msgid "Unable to locate original post."
-msgstr "Niet in staat om de originele locatie van het bericht te vinden. "
+#: ../../mod/manage.php:136
+#, php-format
+msgid "You have created %1$.0f of %2$.0f allowed channels."
+msgstr "Je hebt %1$.0f van totaal %2$.0f toegestane kanalen aangemaakt."
-#: ../../mod/item.php:379
-msgid "Empty post discarded."
-msgstr "Leeg bericht geannuleerd"
+#: ../../mod/manage.php:144
+msgid "Create a new channel"
+msgstr "Nieuw kanaal aanmaken"
-#: ../../mod/item.php:421
-msgid "Executable content type not permitted to this channel."
-msgstr "Uitvoerbare bestanden zijn niet toegestaan op dit kanaal."
+#: ../../mod/manage.php:149
+msgid "Current Channel"
+msgstr "Huidig kanaal"
-#: ../../mod/item.php:849
-msgid "System error. Post not saved."
-msgstr "Systeemfout. Bericht niet opgeslagen."
+#: ../../mod/manage.php:151
+msgid "Attach to one of your channels by selecting it."
+msgstr "Gebruik een van jouw kanalen door op een te klikken."
-#: ../../mod/item.php:1301
-#, php-format
-msgid "You have reached your limit of %1$.0f top level posts."
-msgstr "Je hebt jouw limiet van %1$.0f berichten bereikt."
+#: ../../mod/manage.php:152
+msgid "Default Channel"
+msgstr "Standaardkanaal"
-#: ../../mod/item.php:1307
-#, php-format
-msgid "You have reached your limit of %1$.0f webpages."
-msgstr "Je hebt jouw limiet van %1$.0f webpagina's bereikt."
+#: ../../mod/manage.php:153
+msgid "Make Default"
+msgstr "Als standaard instellen"
#: ../../mod/update_channel.php:43 ../../mod/update_display.php:25
#: ../../mod/update_network.php:23 ../../mod/update_search.php:46
+#: ../../mod/update_home.php:21
msgid "[Embedded content - reload page to view]"
msgstr "[Ingesloten inhoud - ververs pagina om te bekijken] "
-#: ../../mod/layouts.php:62
+#: ../../mod/layouts.php:110
msgid "Help with this feature"
msgstr "Hulp voor dit onderdeel"
-#: ../../mod/layouts.php:85
+#: ../../mod/layouts.php:130
msgid "Layout Name"
-msgstr "Naam layout"
-
-#: ../../mod/like.php:15
-msgid "Like/Dislike"
-msgstr "Leuk/niet leuk"
-
-#: ../../mod/like.php:20
-msgid "This action is restricted to members."
-msgstr "Deze actie kan alleen door mensen met een RedMatrix-account worden uitgevoerd."
-
-#: ../../mod/like.php:21
-msgid ""
-"Please <a href=\"rmagic\">login with your RedMatrix ID</a> or <a "
-"href=\"register\">register as a new RedMatrix member</a> to continue."
-msgstr "Je dient <a href=\"rmagic\">in te loggen met je RedMatrix-account</a> of <a href=\"register\">een nieuw RedMatrix-account te registreren</a> om verder te kunnen gaan."
-
-#: ../../mod/like.php:77 ../../mod/like.php:104 ../../mod/like.php:142
-msgid "Invalid request."
-msgstr "Ongeldig verzoek"
-
-#: ../../mod/like.php:119
-msgid "thing"
-msgstr "ding"
-
-#: ../../mod/like.php:165
-msgid "Channel unavailable."
-msgstr "Kanaal niet beschikbaar."
-
-#: ../../mod/like.php:204
-msgid "Previous action reversed."
-msgstr "Vorige actie omgedraaid"
-
-#: ../../mod/like.php:417
-msgid "Action completed."
-msgstr "Actie voltooid"
-
-#: ../../mod/like.php:418
-msgid "Thank you."
-msgstr "Bedankt"
+msgstr "Naam lay-out"
#: ../../mod/lockview.php:31
msgid "Remote privacy information not available."
@@ -7300,79 +7554,6 @@ msgstr "Bezoek het profiel van %s [%s]"
msgid "View Connnections"
msgstr "Connecties weergeven"
-#: ../../mod/lostpass.php:15
-msgid "No valid account found."
-msgstr "Geen geldige account gevonden."
-
-#: ../../mod/lostpass.php:29
-msgid "Password reset request issued. Check your email."
-msgstr "Het verzoek om je wachtwoord opnieuw in te stellen is behandeld. Controleer je e-mail."
-
-#: ../../mod/lostpass.php:35 ../../mod/lostpass.php:102
-#, php-format
-msgid "Site Member (%s)"
-msgstr "Lid van hub (%s)"
-
-#: ../../mod/lostpass.php:40
-#, php-format
-msgid "Password reset requested at %s"
-msgstr "Verzoek tot het opnieuw instellen van een wachtwoord op %s is ingediend"
-
-#: ../../mod/lostpass.php:63
-msgid ""
-"Request could not be verified. (You may have previously submitted it.) "
-"Password reset failed."
-msgstr "Het verzoek kon niet worden geverifieerd. (Mogelijk heb je al eerder een verzoek ingediend.) Opnieuw instellen van wachtwoord is mislukt."
-
-#: ../../mod/lostpass.php:85 ../../boot.php:1503
-msgid "Password Reset"
-msgstr "Wachtwoord vergeten?"
-
-#: ../../mod/lostpass.php:86
-msgid "Your password has been reset as requested."
-msgstr "Jouw wachtwoord is opnieuw ingesteld zoals je had verzocht."
-
-#: ../../mod/lostpass.php:87
-msgid "Your new password is"
-msgstr "Jouw nieuwe wachtwoord is"
-
-#: ../../mod/lostpass.php:88
-msgid "Save or copy your new password - and then"
-msgstr "Kopieer of sla je nieuwe wachtwoord op - en"
-
-#: ../../mod/lostpass.php:89
-msgid "click here to login"
-msgstr "klik dan hier om in te loggen"
-
-#: ../../mod/lostpass.php:90
-msgid ""
-"Your password may be changed from the <em>Settings</em> page after "
-"successful login."
-msgstr "Jouw wachtwoord kan worden veranderd onder <em>instellingen</em>, nadat je succesvol bent ingelogd."
-
-#: ../../mod/lostpass.php:107
-#, php-format
-msgid "Your password has changed at %s"
-msgstr "Jouw wachtwoord op %s is veranderd"
-
-#: ../../mod/lostpass.php:122
-msgid "Forgot your Password?"
-msgstr "Wachtwoord vergeten?"
-
-#: ../../mod/lostpass.php:123
-msgid ""
-"Enter your email address and submit to have your password reset. Then check "
-"your email for further instructions."
-msgstr "Voer je e-mailadres in en verstuur deze om je wachtwoord opnieuw in te stellen. Controleer hierna hier je e-mail voor verdere instructies."
-
-#: ../../mod/lostpass.php:124
-msgid "Email Address"
-msgstr "E-mailadres"
-
-#: ../../mod/lostpass.php:125
-msgid "Reset"
-msgstr "Opnieuw instellen"
-
#: ../../mod/magic.php:70
msgid "Hub not found."
msgstr "Hub niet gevonden."
@@ -7383,112 +7564,33 @@ msgstr "Totaal aantal stemmen"
#: ../../mod/vote.php:98
msgid "Average Rating"
-msgstr "Gemiddeld cijfer"
-
-#: ../../mod/mail.php:33
-msgid "Unable to lookup recipient."
-msgstr "Niet in staat om ontvanger op te zoeken."
-
-#: ../../mod/mail.php:41
-msgid "Unable to communicate with requested channel."
-msgstr "Niet in staat om met het aangevraagde kanaal te communiceren."
-
-#: ../../mod/mail.php:48
-msgid "Cannot verify requested channel."
-msgstr "Kan opgevraagd kanaal niet verifieren"
-
-#: ../../mod/mail.php:74
-msgid "Selected channel has private message restrictions. Send failed."
-msgstr "Gekozen kanaal heeft restricties voor privéberichten. Verzenden mislukt."
-
-#: ../../mod/mail.php:121 ../../mod/message.php:31
-msgid "Messages"
-msgstr "Berichten"
-
-#: ../../mod/mail.php:132
-msgid "Message deleted."
-msgstr "Bericht verwijderd."
-
-#: ../../mod/mail.php:149
-msgid "Message recalled."
-msgstr "Bericht ingetrokken."
-
-#: ../../mod/mail.php:215
-msgid "Send Private Message"
-msgstr "Privébericht versturen"
-
-#: ../../mod/mail.php:216 ../../mod/mail.php:333
-msgid "To:"
-msgstr "Aan:"
+msgstr "Gemiddelde waardering"
-#: ../../mod/mail.php:221 ../../mod/mail.php:335
-msgid "Subject:"
-msgstr "Onderwerp:"
-
-#: ../../mod/mail.php:232
-msgid "Send"
-msgstr "Verzenden"
-
-#: ../../mod/mail.php:259
-msgid "Message not found."
-msgstr "Bericht niet gevonden"
-
-#: ../../mod/mail.php:302 ../../mod/message.php:72
-msgid "Delete message"
-msgstr "Bericht verwijderen"
-
-#: ../../mod/mail.php:303
-msgid "Recall message"
-msgstr "Bericht intrekken"
-
-#: ../../mod/mail.php:305
-msgid "Message has been recalled."
-msgstr "Bericht is ingetrokken."
-
-#: ../../mod/mail.php:322
-msgid "Private Conversation"
-msgstr "Privéconversatie"
-
-#: ../../mod/mail.php:326
-msgid "Delete conversation"
-msgstr "Verwijder conversatie"
-
-#: ../../mod/mail.php:328
-msgid ""
-"No secure communications available. You <strong>may</strong> be able to "
-"respond from the sender's profile page."
-msgstr "Geen veilige communicatie beschikbaar. <strong>Mogelijk</strong> kan je reageren op de kanaalpagina van de afzender."
-
-#: ../../mod/mail.php:332
-msgid "Send Reply"
-msgstr "Antwoord versturen"
-
-#: ../../mod/manage.php:136
-#, php-format
-msgid "You have created %1$.0f of %2$.0f allowed channels."
-msgstr "Je hebt %1$.0f van totaal %2$.0f toegestane kanalen aangemaakt."
+#: ../../mod/network.php:81
+msgid "No such group"
+msgstr "Collectie niet gevonden"
-#: ../../mod/manage.php:144
-msgid "Create a new channel"
-msgstr "Nieuw kanaal aanmaken"
+#: ../../mod/network.php:119
+msgid "Search Results For:"
+msgstr "Zoekresultaten voor:"
-#: ../../mod/manage.php:149
-msgid "Current Channel"
-msgstr "Huidig kanaal"
+#: ../../mod/network.php:173
+msgid "Collection is empty"
+msgstr "Collectie is leeg"
-#: ../../mod/manage.php:151
-msgid "Attach to one of your channels by selecting it."
-msgstr "Gebruik een van jouw kanalen door op een te klikken."
+#: ../../mod/network.php:181
+msgid "Collection: "
+msgstr "Collectie: "
-#: ../../mod/manage.php:152
-msgid "Default Channel"
-msgstr "Standaardkanaal"
+#: ../../mod/network.php:194
+msgid "Connection: "
+msgstr "Connectie: "
-#: ../../mod/manage.php:153
-msgid "Make Default"
-msgstr "Als standaard instellen"
+#: ../../mod/network.php:197
+msgid "Invalid connection."
+msgstr "Ongeldige connectie."
-#: ../../mod/wall_upload.php:34
+#: ../../mod/wall_upload.php:35
msgid "Wall Photos"
msgstr "Kanaalfoto's"
@@ -7508,87 +7610,91 @@ msgstr "is geïnteresseerd in:"
msgid "No matches"
msgstr "Geen overeenkomsten"
-#: ../../mod/menu.php:21
+#: ../../mod/menu.php:31
msgid "Menu updated."
msgstr "Menu aangepast. "
-#: ../../mod/menu.php:25
+#: ../../mod/menu.php:35
msgid "Unable to update menu."
msgstr "Niet in staat om menu aan te passen"
-#: ../../mod/menu.php:30
+#: ../../mod/menu.php:40
msgid "Menu created."
msgstr "Menu aangemaakt."
-#: ../../mod/menu.php:34
+#: ../../mod/menu.php:44
msgid "Unable to create menu."
msgstr "Niet in staat om menu aan te maken."
-#: ../../mod/menu.php:57
+#: ../../mod/menu.php:76
msgid "Manage Menus"
msgstr "Menu's beheren"
-#: ../../mod/menu.php:60
+#: ../../mod/menu.php:79
msgid "Drop"
msgstr "Verwijderen"
-#: ../../mod/menu.php:62
+#: ../../mod/menu.php:81
+msgid "Bookmarks allowed"
+msgstr "Bladwijzers toegestaan"
+
+#: ../../mod/menu.php:82
msgid "Create a new menu"
msgstr "Een nieuwe menu aanmaken"
-#: ../../mod/menu.php:63
+#: ../../mod/menu.php:83
msgid "Delete this menu"
msgstr "Menu verwijderen"
-#: ../../mod/menu.php:64 ../../mod/menu.php:109
+#: ../../mod/menu.php:84 ../../mod/menu.php:125
msgid "Edit menu contents"
msgstr "Bewerk de inhoud van het menu"
-#: ../../mod/menu.php:65
+#: ../../mod/menu.php:85
msgid "Edit this menu"
msgstr "Dit menu bewerken"
-#: ../../mod/menu.php:80
+#: ../../mod/menu.php:96
msgid "New Menu"
msgstr "Nieuw menu"
-#: ../../mod/menu.php:81 ../../mod/menu.php:110
+#: ../../mod/menu.php:97 ../../mod/menu.php:126
msgid "Menu name"
msgstr "Naam van menu"
-#: ../../mod/menu.php:81 ../../mod/menu.php:110
+#: ../../mod/menu.php:97 ../../mod/menu.php:126
msgid "Must be unique, only seen by you"
msgstr "Moet uniek zijn en is alleen zichtbaar voor jou."
-#: ../../mod/menu.php:82 ../../mod/menu.php:111
+#: ../../mod/menu.php:98 ../../mod/menu.php:127
msgid "Menu title"
msgstr "Titel van menu"
-#: ../../mod/menu.php:82 ../../mod/menu.php:111
+#: ../../mod/menu.php:98 ../../mod/menu.php:127
msgid "Menu title as seen by others"
msgstr "Titel van menu zoals anderen dat zien."
-#: ../../mod/menu.php:83 ../../mod/menu.php:112
+#: ../../mod/menu.php:99 ../../mod/menu.php:128
msgid "Allow bookmarks"
msgstr "Bladwijzers toestaan"
-#: ../../mod/menu.php:83 ../../mod/menu.php:112
+#: ../../mod/menu.php:99 ../../mod/menu.php:128
msgid "Menu may be used to store saved bookmarks"
msgstr "Menu kan gebruikt worden om bladwijzers in op te slaan"
-#: ../../mod/menu.php:98
+#: ../../mod/menu.php:114
msgid "Menu deleted."
msgstr "Menu verwijderd."
-#: ../../mod/menu.php:100
+#: ../../mod/menu.php:116
msgid "Menu could not be deleted."
msgstr "Menu kon niet verwijderd worden."
-#: ../../mod/menu.php:106
+#: ../../mod/menu.php:122
msgid "Edit Menu"
msgstr "Menu bewerken"
-#: ../../mod/menu.php:108
+#: ../../mod/menu.php:124
msgid "Add or remove entries to this menu"
msgstr "Items aan dit menu toevoegen of verwijder"
@@ -7604,36 +7710,46 @@ msgstr "Geen berichten"
msgid "D, d M Y - g:i A"
msgstr "D, j M Y - G:i"
-#: ../../mod/new_channel.php:107
+#: ../../mod/new_channel.php:109
msgid "Add a Channel"
msgstr "Kanaal toevoegen"
-#: ../../mod/new_channel.php:108
+#: ../../mod/new_channel.php:110
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 "Een kanaal is jouw eigen verzameling gerelateerde webpagina's. Een kanaal kan gebruikt worden voor een sociaal netwerk, weblog, discussiegroep of forum, een pagina over een beroemdheid, en voor veel meer. Je kan net zoveel kanalen aanmaken als dat de eigenaar/beheerder van jouw hub toestaat."
+msgstr "Een kanaal is jouw eigen verzameling gerelateerde webpagina's. Een kanaal kan gebruikt worden voor een sociaal netwerk, weblog, discussiegroep of forum, een pagina over een beroemdheid, en voor veel meer. Je kan net zoveel kanalen aanmaken als dat de eigenaar/beheerder van jouw hub toestaat."
-#: ../../mod/new_channel.php:111
+#: ../../mod/new_channel.php:113
msgid "Examples: \"Bob Jameson\", \"Lisa and her Horses\", \"Soccer\", \"Aviation Group\" "
msgstr "Voorbeelden: \"Bruce Springsteen\", \"Familiefoto's\", \"Voetbal\", \"Astronomie\""
-#: ../../mod/new_channel.php:112
+#: ../../mod/new_channel.php:114
msgid "Choose a short nickname"
msgstr "Kies een korte bijnaam"
-#: ../../mod/new_channel.php:113
+#: ../../mod/new_channel.php:115
msgid ""
"Your nickname will be used to create an easily remembered channel address "
"(like an email address) which you can share with others."
msgstr "Jouw bijnaam wordt gebruikt om een makkelijk te onthouden kanaaladres (zoals een e-mailadres) aan te maken, die je dan kan delen met anderen."
-#: ../../mod/new_channel.php:114
+#: ../../mod/new_channel.php:116
msgid "Or <a href=\"import\">import an existing channel</a> from another location"
msgstr "Of <a href=\"import\">importeer een bestaand kanaal</a> vanaf een andere locatie."
+#: ../../mod/new_channel.php:118
+msgid "Channel Type"
+msgstr "Kanaaltype"
+
+#: ../../mod/new_channel.php:119
+msgid ""
+"Please choose a channel type (such as social networking or community forum) "
+"and privacy requirements so we can select the best permissions for you"
+msgstr "Kies een kanaaltype (bijv. een persoonlijk kanaal voor een sociaal netwerk of eentje voor een groepsforum) en jouw behoefte aan privacy, zodat wij voor jou de beste permissies kunnen kiezen."
+
#: ../../mod/notifications.php:26
msgid "Invalid request identifier."
msgstr "Ongeldige verzoek identificator (request identifier)"
@@ -7650,6 +7766,18 @@ msgstr "Geen systeemnotificaties meer."
msgid "System Notifications"
msgstr "Systeemnotificaties"
+#: ../../mod/xchan.php:6
+msgid "Xchan Lookup"
+msgstr "Xchan opzoeken"
+
+#: ../../mod/xchan.php:9
+msgid "Lookup xchan beginning with (or webbie): "
+msgstr "Zoek een xchan (of webbie) die begint met:"
+
+#: ../../mod/zfinger.php:23
+msgid "invalid target signature"
+msgstr "ongeldig doelkenmerk"
+
#: ../../mod/oexchange.php:23
msgid "Unable to find your hub."
msgstr "Niet in staat om je hub te vinden"
@@ -7658,13 +7786,196 @@ msgstr "Niet in staat om je hub te vinden"
msgid "Post successful."
msgstr "Verzenden bericht geslaagd."
-#: ../../mod/zfinger.php:23
-msgid "invalid target signature"
-msgstr "ongeldig doel-kenmerk (target signature)"
+#: ../../mod/directory.php:201
+msgid "Gender: "
+msgstr "Geslacht:"
-#: ../../mod/openid.php:26
-msgid "OpenID protocol error. No ID returned."
-msgstr "OpenID-protocolfout. Geen ID terugontvangen."
+#: ../../mod/directory.php:203
+msgid "Status: "
+msgstr "Status: "
+
+#: ../../mod/directory.php:205
+msgid "Homepage: "
+msgstr "Homepage: "
+
+#: ../../mod/directory.php:208
+msgid "Hometown: "
+msgstr "Oorspronkelijk uit: "
+
+#: ../../mod/directory.php:210
+msgid "About: "
+msgstr "Over: "
+
+#: ../../mod/directory.php:265
+msgid "Public Forum:"
+msgstr "Openbaar forum:"
+
+#: ../../mod/directory.php:268
+msgid "Keywords: "
+msgstr "Trefwoorden: "
+
+#: ../../mod/directory.php:317
+msgid "Finding:"
+msgstr "Gezocht naar:"
+
+#: ../../mod/directory.php:322
+msgid "next page"
+msgstr "volgende pagina"
+
+#: ../../mod/directory.php:322
+msgid "previous page"
+msgstr "vorige pagina"
+
+#: ../../mod/directory.php:339
+msgid "No entries (some entries may be hidden)."
+msgstr "Niets gevonden (sommige kanalen kunnen verborgen zijn)."
+
+#: ../../mod/photos.php:77
+msgid "Page owner information could not be retrieved."
+msgstr "Informatie over de pagina-eigenaar werd niet ontvangen."
+
+#: ../../mod/photos.php:97
+msgid "Album not found."
+msgstr "Album niet gevonden."
+
+#: ../../mod/photos.php:119 ../../mod/photos.php:672
+msgid "Delete Album"
+msgstr "Verwijder album"
+
+#: ../../mod/photos.php:159 ../../mod/photos.php:958
+msgid "Delete Photo"
+msgstr "Verwijder foto"
+
+#: ../../mod/photos.php:469
+msgid "No photos selected"
+msgstr "Geen foto's geselecteerd"
+
+#: ../../mod/photos.php:513
+msgid "Access to this item is restricted."
+msgstr "Toegang tot dit item is beperkt."
+
+#: ../../mod/photos.php:552
+#, php-format
+msgid "%1$.2f MB of %2$.2f MB photo storage used."
+msgstr "%1$.2f MB van %2$.2f MB aan foto-opslag gebruikt."
+
+#: ../../mod/photos.php:555
+#, php-format
+msgid "%1$.2f MB photo storage used."
+msgstr "%1$.2f MB aan foto-opslag gebruikt."
+
+#: ../../mod/photos.php:579
+msgid "Upload Photos"
+msgstr "Foto's uploaden"
+
+#: ../../mod/photos.php:583 ../../mod/photos.php:665 ../../mod/photos.php:943
+msgid "Enter a new album name"
+msgstr "Vul een nieuwe albumnaam in"
+
+#: ../../mod/photos.php:584 ../../mod/photos.php:666 ../../mod/photos.php:944
+msgid "or select an existing one (doubleclick)"
+msgstr "of kies een bestaand album (dubbelklikken)"
+
+#: ../../mod/photos.php:585
+msgid "Do not show a status post for this upload"
+msgstr "Plaats geen bericht voor deze upload."
+
+#: ../../mod/photos.php:613
+msgid "Album name could not be decoded"
+msgstr "Albumnaam kon niet gedecodeerd worden"
+
+#: ../../mod/photos.php:654 ../../mod/photos.php:1167
+#: ../../mod/photos.php:1183
+msgid "Contact Photos"
+msgstr "Connectiefoto's"
+
+#: ../../mod/photos.php:678
+msgid "Show Newest First"
+msgstr "Nieuwste eerst weergeven"
+
+#: ../../mod/photos.php:680
+msgid "Show Oldest First"
+msgstr "Oudste eerst weergeven"
+
+#: ../../mod/photos.php:707 ../../mod/photos.php:1215
+msgid "View Photo"
+msgstr "Foto weergeven"
+
+#: ../../mod/photos.php:736
+msgid "Edit Album"
+msgstr "Album bewerken"
+
+#: ../../mod/photos.php:781
+msgid "Permission denied. Access to this item may be restricted."
+msgstr "Toegang geweigerd. Toegang tot dit item kan zijn beperkt."
+
+#: ../../mod/photos.php:783
+msgid "Photo not available"
+msgstr "Foto niet aanwezig"
+
+#: ../../mod/photos.php:841
+msgid "Use as profile photo"
+msgstr "Als profielfoto gebruiken"
+
+#: ../../mod/photos.php:848
+msgid "Private Photo"
+msgstr "Privéfoto"
+
+#: ../../mod/photos.php:863
+msgid "View Full Size"
+msgstr "Volledige grootte weergeven"
+
+#: ../../mod/photos.php:937
+msgid "Edit photo"
+msgstr "Foto bewerken"
+
+#: ../../mod/photos.php:939
+msgid "Rotate CW (right)"
+msgstr "Draai met de klok mee (naar rechts)"
+
+#: ../../mod/photos.php:940
+msgid "Rotate CCW (left)"
+msgstr "Draai tegen de klok in (naar links)"
+
+#: ../../mod/photos.php:947
+msgid "Caption"
+msgstr "Bijschrift"
+
+#: ../../mod/photos.php:949
+msgid "Add a Tag"
+msgstr "Label toevoegen"
+
+#: ../../mod/photos.php:953
+msgid "Example: @bob, @Barbara_Jensen, @jim@example.com"
+msgstr "Voorbeeld: @bob, @Barbara_Jansen, @jan@voorbeeld.nl"
+
+#: ../../mod/photos.php:956
+msgid "Flag as adult in album view"
+msgstr "Markeer als voor volwassenen in albumweergave"
+
+#: ../../mod/photos.php:1133
+msgid "In This Photo:"
+msgstr "Op deze foto:"
+
+#: ../../mod/photos.php:1221
+msgid "View Album"
+msgstr "Album weergeven"
+
+#: ../../mod/photos.php:1244
+msgid "Recent Photos"
+msgstr "Recente foto's"
+
+#: ../../mod/ping.php:265
+msgid "sent you a private message"
+msgstr "stuurde jou een privébericht"
+
+#: ../../mod/ping.php:316
+msgid "added your channel"
+msgstr "voegde jouw kanaal toe"
+
+#: ../../mod/ping.php:357
+msgid "posted an event"
+msgstr "plaatste een gebeurtenis"
#: ../../mod/appman.php:28 ../../mod/appman.php:44
msgid "App installed."
@@ -7750,6 +8061,10 @@ msgid ""
"removed from the network"
msgstr "Standaard worden alleen de kanalen die zich op deze hub bevinden uit het RedMatrix-netwerk verwijderd."
+#: ../../mod/service_limits.php:19
+msgid "No service class restrictions found."
+msgstr "Geen abonnementsbeperkingen gevonden."
+
#: ../../view/theme/apw/php/config.php:202
#: ../../view/theme/apw/php/config.php:236
msgid "Schema Default"
@@ -7764,8 +8079,6 @@ msgid "Monospace"
msgstr "Monospace"
#: ../../view/theme/apw/php/config.php:259
-#: ../../view/theme/blogga/php/config.php:69
-#: ../../view/theme/blogga/view/theme/blog/config.php:69
#: ../../view/theme/redbasic/php/config.php:102
msgid "Theme settings"
msgstr "Thema-instellingen"
@@ -7802,7 +8115,7 @@ msgstr "Schaduwkleur instellen (standaard #000)"
#: ../../view/theme/apw/php/config.php:267
msgid "Set radius size, default 5px"
-msgstr "Radius instellen, standaard 5px"
+msgstr "Radius instellen (standaard 5px)"
#: ../../view/theme/apw/php/config.php:268
msgid "Set line-height for posts and comments"
@@ -7896,21 +8209,6 @@ msgstr "Rechter offset van aside (zijbalk)"
msgid "Right offset of the aside element"
msgstr "Rechter offset van het aside-element"
-#: ../../view/theme/blogga/php/config.php:47
-#: ../../view/theme/blogga/view/theme/blog/config.php:47
-msgid "None"
-msgstr "Geen"
-
-#: ../../view/theme/blogga/php/config.php:70
-#: ../../view/theme/blogga/view/theme/blog/config.php:70
-msgid "Header image"
-msgstr "Header-afbeelding"
-
-#: ../../view/theme/blogga/php/config.php:71
-#: ../../view/theme/blogga/view/theme/blog/config.php:71
-msgid "Header image only on profile pages"
-msgstr "Header-afbeelding alleen op profielpagina's weergeven"
-
#: ../../view/theme/redbasic/php/config.php:84
msgid "Light (Red Matrix default)"
msgstr "Light (RedMatrix-standaard)"
@@ -8035,41 +8333,41 @@ msgstr "Rommelig vormgegeven fotoalbums"
msgid "Are you a clean desk or a messy desk person?"
msgstr "Ben je iemand die van een opgeruimd bureau houdt of van een rommelig bureau?"
-#: ../../boot.php:1291
+#: ../../boot.php:1336
#, php-format
msgid "Update %s failed. See error logs."
msgstr "Update %s mislukt. Zie foutenlogboek."
-#: ../../boot.php:1294
+#: ../../boot.php:1339
#, php-format
msgid "Update Error at %s"
msgstr "Update-fout op %s"
-#: ../../boot.php:1468
+#: ../../boot.php:1506
msgid ""
"Create an account to access services and applications within the Red Matrix"
msgstr "Maak een account aan om toegang te krijgen tot diensten en toepassingen van de RedMatrix"
-#: ../../boot.php:1496
+#: ../../boot.php:1532
msgid "Password"
msgstr "Wachtwoord"
-#: ../../boot.php:1497
+#: ../../boot.php:1533
msgid "Remember me"
msgstr "Aangemeld blijven"
-#: ../../boot.php:1502
+#: ../../boot.php:1536
msgid "Forgot your password?"
msgstr "Wachtwoord vergeten?"
-#: ../../boot.php:1567
+#: ../../boot.php:1617
msgid "permission denied"
msgstr "toegang geweigerd"
-#: ../../boot.php:1568
+#: ../../boot.php:1618
msgid "Got Zot?"
msgstr "Heb je Zot?"
-#: ../../boot.php:1998
+#: ../../boot.php:2101
msgid "toggle mobile"
msgstr "mobiele weergave omschakelen"
diff --git a/view/nl/register_verify_member.tpl b/view/nl/register_verify_member.tpl
index 7bcd63009..12afdd32d 100644
--- a/view/nl/register_verify_member.tpl
+++ b/view/nl/register_verify_member.tpl
@@ -6,7 +6,7 @@ Jouw inloggegevens zijn als volgt:
Hub: {{$siteurl}}
Inlognaam: {{$email}}
-Log in met het wachtwoord die je tijdens het registeren hebt gekozen.
+Log in met het wachtwoord die je tijdens het registreren hebt gekozen.
Wij dienen jouw e-mailadres te verifiëren om je volledig toegang te kunnen geven.
@@ -15,7 +15,7 @@ Wanneer jij dit account hebt aangemaakt, bezoek dan de volgende link:
{{$siteurl}}/regver/allow/{{$hash}}
-Om de registratie van dit account te annuleren en deze te verwijderen bezoek je:
+Om de registratie van dit account te annuleren en deze te verwijderen bezoek je:
{{$siteurl}}/regver/deny/{{$hash}}
diff --git a/view/nl/request_notify_eml.tpl b/view/nl/request_notify_eml.tpl
deleted file mode 100644
index d96f56c89..000000000
--- a/view/nl/request_notify_eml.tpl
+++ /dev/null
@@ -1,17 +0,0 @@
-
-Beste {{$myname}},
-
-Je hebt een connectieverzoek ontvangen op
-
-van '{{$requestor}}'.
-
-Je kan zijn/haar profiel bezoeken op {{$url}}.
-
-Je dient op jouw hub in te loggen om het complete connectieverzoek te bekijken
-en om het verzoek te accepteren, het af te wijzen of om het te negeren.
-
-{{$siteurl}}
-
-Vriendelijke groet,
-
- Beheerder {{$sitename}} \ No newline at end of file
diff --git a/view/nl/strings.php b/view/nl/strings.php
index 7fa5b7f5e..720010ff1 100644
--- a/view/nl/strings.php
+++ b/view/nl/strings.php
@@ -7,46 +7,19 @@ function string_plural_select_nl($n){
;
$a->strings["Cannot locate DNS info for database server '%s'"] = "Kan DNS-informatie voor databaseserver '%s' niet vinden";
$a->strings["Profile Photos"] = "Profielfoto's";
-$a->strings["view full size"] = "volledige grootte tonen";
-$a->strings["Embedded content"] = "Ingesloten inhoud";
-$a->strings["Embedding disabled"] = "Insluiten uitgeschakeld";
+$a->strings["Channel is blocked on this site."] = "Kanaal is op deze hub geblokkeerd.";
+$a->strings["Channel location missing."] = "Ontbrekende kanaallocatie.";
+$a->strings["Response from remote channel was incomplete."] = "Antwoord van het kanaal op afstand was niet volledig.";
+$a->strings["Channel was deleted and no longer exists."] = "Kanaal is verwijderd en bestaat niet meer.";
+$a->strings["Protocol disabled."] = "Protocol uitgeschakeld.";
+$a->strings["Channel discovery failed."] = "Kanaal ontdekken mislukt.";
+$a->strings["local account not found."] = "lokale account niet gevonden.";
+$a->strings["Cannot connect to yourself."] = "Kan niet met jezelf verbinden";
$a->strings["created a new post"] = "maakte een nieuw bericht aan";
$a->strings["commented on %s's post"] = "gaf een reactie op een bericht van %s";
-$a->strings["Site Admin"] = "Hubbeheerder";
-$a->strings["Bookmarks"] = "Bladwijzers";
-$a->strings["Address Book"] = "Connecties";
-$a->strings["Login"] = "Inloggen";
-$a->strings["Channel Manager"] = "Kanaalbeheer";
-$a->strings["Matrix"] = "Matrix";
-$a->strings["Settings"] = "Instellingen";
-$a->strings["Files"] = "Bestanden";
-$a->strings["Webpages"] = "Webpagina's";
-$a->strings["Channel Home"] = "Tijdlijn kanaal";
-$a->strings["Profile"] = "Profiel";
-$a->strings["Photos"] = "Foto's";
-$a->strings["Events"] = "Gebeurtenissen";
-$a->strings["Directory"] = "Gids";
-$a->strings["Help"] = "Hulp";
-$a->strings["Mail"] = "Privéberichten";
-$a->strings["Mood"] = "Stemming";
-$a->strings["Poke"] = "Aanstoten";
-$a->strings["Chat"] = "Chatten";
-$a->strings["Search"] = "Zoeken";
-$a->strings["Probe"] = "Onderzoeken";
-$a->strings["Suggest"] = "Voorstellen";
-$a->strings["Random Channel"] = "Willekeurig kanaal";
-$a->strings["Invite"] = "Uitnodigen ";
-$a->strings["Features"] = "Extra functies";
-$a->strings["Language"] = "Taal";
-$a->strings["Post"] = "Bericht";
-$a->strings["Profile Photo"] = "Profielfoto";
-$a->strings["Update"] = "Bijwerken";
-$a->strings["Install"] = "Installeren";
-$a->strings["Purchase"] = "Aanschaffen";
-$a->strings["Edit"] = "Bewerken";
-$a->strings["Delete"] = "Verwijderen";
-$a->strings["Unknown"] = "Onbekend";
+$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."] = "De beveiligings-token van het tekstvak was ongeldig. Dit is mogelijk het gevolg van dat er te lang (meer dan 3 uur) gewacht is om de tekst op te slaan. ";
$a->strings["New Page"] = "Nieuwe pagina";
+$a->strings["Edit"] = "Bewerken";
$a->strings["View"] = "Weergeven";
$a->strings["Preview"] = "Voorvertoning";
$a->strings["Actions"] = "Acties";
@@ -54,28 +27,51 @@ $a->strings["Page Link"] = "Paginalink";
$a->strings["Title"] = "Titel";
$a->strings["Created"] = "Aangemaakt";
$a->strings["Edited"] = "Bewerkt";
-$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."] = "De beveiligings-token van het tekstvak was ongeldig. Dit is mogelijk het gevolg van dat er te lang (meer dan 3 uur) gewacht is om de tekst op te slaan. ";
-$a->strings["Invalid data packet"] = "Datapakket ongeldig";
-$a->strings["Unable to verify channel signature"] = "Kanaal-kenmerk (channel signature) kon niet worden geverifieerd. ";
-$a->strings["Unable to verify site signature for %s"] = "Hub-kenmerk (site signature) voor %s kon niet worden geverifieerd";
-$a->strings["Permission denied."] = "Toegang geweigerd";
-$a->strings["Image exceeds website size limit of %lu bytes"] = "Afbeelding is groter dan op deze hub toegestane limiet van %lu bytes";
-$a->strings["Image file is empty."] = "Afbeeldingsbestand is leeg";
-$a->strings["Unable to process image"] = "Afbeelding kan niet verwerkt worden";
-$a->strings["Photo storage failed."] = "Foto kan niet worden opgeslagen";
-$a->strings["Photo Albums"] = "Fotoalbums";
-$a->strings["Upload New Photos"] = "Nieuwe foto's uploaden";
-$a->strings["Visible to your default audience"] = "Voor iedereen zichtbaar, zoals dit van te voren is ingesteld";
-$a->strings["Show"] = "Tonen";
-$a->strings["Don't show"] = "Niet tonen";
-$a->strings["Permissions"] = "Privacy-rechten";
-$a->strings["Close"] = "Sluiten";
+$a->strings["%d invitation available"] = array(
+ 0 => "%d uitnodiging beschikbaar",
+ 1 => "%d uitnodigingen beschikbaar",
+);
+$a->strings["Advanced"] = "Geavanceerd";
+$a->strings["Find Channels"] = "Kanalen vinden";
+$a->strings["Enter name or interest"] = "Vul naam of interesse in";
+$a->strings["Connect/Follow"] = "Verbinden/volgen";
+$a->strings["Examples: Robert Morgenstein, Fishing"] = "Voorbeeld: Robert Morgenstein, vissen";
+$a->strings["Find"] = "Vinden";
+$a->strings["Channel Suggestions"] = "Voorgestelde kanalen";
+$a->strings["Random Profile"] = "Willekeurig profiel";
+$a->strings["Invite Friends"] = "Vrienden uitnodigen";
+$a->strings["Advanced example: name=fred and country=iceland"] = "Geavanceerd voorbeeld (Engels): name=jan en country=nederland";
+$a->strings["Saved Folders"] = "Bewaarde mappen";
+$a->strings["Everything"] = "Alles";
+$a->strings["Categories"] = "Categorieën";
+$a->strings["%d connection in common"] = array(
+ 0 => "%d gemeenschappelijke connectie",
+ 1 => "%d gemeenschappelijke connecties",
+);
+$a->strings["show more"] = "meer connecties weergeven";
+$a->strings["Embedded content"] = "Ingesloten inhoud";
+$a->strings["Embedding disabled"] = "Insluiten uitgeschakeld";
+$a->strings["No recipient provided."] = "Geen ontvanger opgegeven.";
+$a->strings["[no subject]"] = "[geen onderwerp]";
+$a->strings["Unable to determine sender."] = "Afzender kan niet bepaald worden.";
+$a->strings["Stored post could not be verified."] = "Opgeslagen bericht kon niet worden geverifieerd.";
$a->strings[" and "] = " en ";
$a->strings["public profile"] = "openbaar profiel";
$a->strings["%1\$s changed %2\$s to &ldquo;%3\$s&rdquo;"] = "%1\$s veranderde %2\$s naar &ldquo;%3\$s&rdquo;";
$a->strings["Visit %1\$s's %2\$s"] = "Bezoek het %2\$s van %1\$s";
$a->strings["%1\$s has an updated %2\$s, changing %3\$s."] = "%1\$s heeft een aangepaste %2\$s, %3\$s veranderd.";
-$a->strings["Public Timeline"] = "Openbare tijdlijn";
+$a->strings["Visible to your default audience"] = "Voor iedereen zichtbaar, mits niet anders ingesteld";
+$a->strings["Show"] = "Tonen";
+$a->strings["Don't show"] = "Niet tonen";
+$a->strings["Permissions"] = "Permissies";
+$a->strings["Close"] = "Sluiten";
+$a->strings["Attachments:"] = "Bijlagen:";
+$a->strings["l F d, Y \\@ g:i A"] = "l d F Y \\@ G:i";
+$a->strings["Redmatrix event notification:"] = "Notificatie RedMatrix-gebeurtenis:";
+$a->strings["Starts:"] = "Start:";
+$a->strings["Finishes:"] = "Einde:";
+$a->strings["Location:"] = "Plaats:";
+$a->strings["Permission denied."] = "Toegang geweigerd";
$a->strings["Item was not found."] = "Item niet gevonden";
$a->strings["No source file."] = "Geen bronbestand.";
$a->strings["Cannot locate file to replace"] = "Kan het te vervangen bestand niet vinden";
@@ -90,13 +86,28 @@ $a->strings["duplicate filename or path"] = "dubbele bestandsnaam of pad";
$a->strings["Path not found."] = "Pad niet gevonden";
$a->strings["mkdir failed."] = "directory aanmaken (mkdir) mislukt.";
$a->strings["database storage failed."] = "opslag in database mislukt.";
-$a->strings["Click here to upgrade."] = "Klik hier om te upgraden.";
-$a->strings["This action exceeds the limits set by your subscription plan."] = "Deze handeling overschrijdt de beperkingen die voor jouw abonnement gelden.";
-$a->strings["This action is not available under your subscription plan."] = "Deze handeling is niet mogelijk met jouw abonnement.";
-$a->strings["l F d, Y \\@ g:i A"] = "l d F Y \\@ G:i";
-$a->strings["Starts:"] = "Start:";
-$a->strings["Finishes:"] = "Einde:";
-$a->strings["Location:"] = "Plaats:";
+$a->strings["parent"] = "omhoog";
+$a->strings["Collection"] = "map";
+$a->strings["Principal"] = "principal";
+$a->strings["Addressbook"] = "Adresboek";
+$a->strings["Calendar"] = "Agenda";
+$a->strings["Schedule Inbox"] = "Planning-postvak IN";
+$a->strings["Schedule Outbox"] = "Planning-postvak UIT";
+$a->strings["Unknown"] = "Onbekend";
+$a->strings["%1\$s used"] = "%1\$s gebruikt";
+$a->strings["%1\$s used of %2\$s (%3\$s&#37;)"] = "%1\$s van %2\$s gebruikt (%3\$s&#37;)";
+$a->strings["Files"] = "Bestanden";
+$a->strings["Name"] = "Naam";
+$a->strings["Type"] = "Type";
+$a->strings["Size"] = "Grootte";
+$a->strings["Last Modified"] = "Laatst gewijzigd";
+$a->strings["Delete"] = "Verwijderen";
+$a->strings["Total"] = "Totaal";
+$a->strings["Create new folder"] = "Nieuwe map aanmaken";
+$a->strings["Create"] = "Aanmaken";
+$a->strings["Upload file"] = "Bestand uploaden";
+$a->strings["Upload"] = "Uploaden";
+$a->strings["%1\$s's bookmarks"] = "Bladwijzers van %1\$s";
$a->strings["Logout"] = "Uitloggen";
$a->strings["End this session"] = "Beëindig deze sessie";
$a->strings["Home"] = "Home";
@@ -107,24 +118,35 @@ $a->strings["Edit Profiles"] = "Bewerk profielen";
$a->strings["Manage/Edit profiles"] = "Beheer/wijzig profielen";
$a->strings["Edit Profile"] = "Profiel bewerken";
$a->strings["Edit your profile"] = "Jouw profiel bewerken";
+$a->strings["Photos"] = "Foto's";
$a->strings["Your photos"] = "Jouw foto's";
$a->strings["Your files"] = "Jouw bestanden";
+$a->strings["Chat"] = "Chatten";
$a->strings["Your chatrooms"] = "Jouw chatkanalen";
+$a->strings["Bookmarks"] = "Bladwijzers";
$a->strings["Your bookmarks"] = "Jouw bladwijzers";
+$a->strings["Webpages"] = "Webpagina's";
$a->strings["Your webpages"] = "Jouw webpagina's";
+$a->strings["Login"] = "Inloggen";
$a->strings["Sign in"] = "Inloggen";
$a->strings["%s - click to logout"] = "%s - klik om uit te loggen";
-$a->strings["Click to authenticate to your home hub"] = "Klik om jezelf te authenticeren via jouw eigen RedMatrix-hub";
+$a->strings["Remote authentication"] = "Authenticatie op afstand";
+$a->strings["Click to authenticate to your home hub"] = "Authenticeer jezelf via (bijvoorbeeld) jouw RedMatrix-hub";
$a->strings["Home Page"] = "Homepage";
-$a->strings["Register"] = "Registreren ";
+$a->strings["Register"] = "Registreren";
$a->strings["Create an account"] = "Maak een account aan";
+$a->strings["Help"] = "Hulp";
$a->strings["Help and documentation"] = "Hulp en documentatie";
$a->strings["Apps"] = "Apps";
$a->strings["Applications, utilities, links, games"] = "Apps";
+$a->strings["Search"] = "Zoeken";
$a->strings["Search site content"] = "Inhoud van deze RedMatrix-hub doorzoeken";
-$a->strings["Channel Locator"] = "Kanalengids";
+$a->strings["Directory"] = "Kanalengids";
+$a->strings["Channel Directory"] = "Kanalengids";
+$a->strings["Matrix"] = "Matrix";
$a->strings["Your matrix"] = "Jouw matrix";
$a->strings["Mark all matrix notifications seen"] = "Markeer alle matrixnotificaties als bekeken";
+$a->strings["Channel Home"] = "Tijdlijn kanaal";
$a->strings["Channel home"] = "Tijdlijn kanaal";
$a->strings["Mark all channel notifications seen"] = "Alle kanaalnotificaties als gelezen markeren";
$a->strings["Connections"] = "Connecties";
@@ -132,22 +154,303 @@ $a->strings["Notices"] = "Notificaties";
$a->strings["Notifications"] = "Notificaties";
$a->strings["See all notifications"] = "Alle notificaties weergeven";
$a->strings["Mark all system notifications seen"] = "Markeer alle systeemnotificaties als bekeken";
+$a->strings["Mail"] = "Privéberichten";
$a->strings["Private mail"] = "Privéberichten";
$a->strings["See all private messages"] = "Alle privéberichten weergeven";
$a->strings["Mark all private messages seen"] = "Markeer alle privéberichten als bekeken";
$a->strings["Inbox"] = "Postvak IN";
$a->strings["Outbox"] = "Postvak UIT";
$a->strings["New Message"] = "Nieuw bericht";
+$a->strings["Events"] = "Agenda";
$a->strings["Event Calendar"] = "Agenda";
$a->strings["See all events"] = "Alle gebeurtenissen weergeven";
$a->strings["Mark all events seen"] = "Markeer alle gebeurtenissen als bekeken";
+$a->strings["Channel Manager"] = "Kanaalbeheer";
$a->strings["Manage Your Channels"] = "Beheer je kanalen";
+$a->strings["Settings"] = "Instellingen";
$a->strings["Account/Channel Settings"] = "Account-/kanaal-instellingen";
$a->strings["Admin"] = "Beheer";
$a->strings["Site Setup and Configuration"] = "Hub instellen en beheren";
-$a->strings["Nothing new here"] = "Niets nieuw hier";
+$a->strings["Loading..."] = "Aan het laden...";
$a->strings["Please wait..."] = "Wachten aub...";
-$a->strings["%1\$s's bookmarks"] = "Bladwijzers van %1\$s";
+$a->strings["view full size"] = "volledige grootte tonen";
+$a->strings["Directory Options"] = "Opties kanalengids";
+$a->strings["Alphabetic"] = "Alfabetisch";
+$a->strings["Reverse Alphabetic"] = "Omgekeerd alfabetisch";
+$a->strings["Newest to Oldest"] = "Nieuw naar oud";
+$a->strings["Oldest to Newest"] = "Oud naar nieuw";
+$a->strings["Public Forums Only"] = "Alleen openbare forums";
+$a->strings["Sort"] = "Sorteren";
+$a->strings["Enable Safe Search"] = "Veilig zoeken inschakelen";
+$a->strings["Disable Safe Search"] = "Veilig zoeken uitschakelen";
+$a->strings["Safe Mode"] = "Veilig zoeken";
+$a->strings["Can view my normal stream and posts"] = "Kan mijn normale kanaalstream en berichten bekijken";
+$a->strings["Can view my default channel profile"] = "Kan mijn standaard kanaalprofiel bekijken";
+$a->strings["Can view my photo albums"] = "Kan mijn fotoalbums bekijken";
+$a->strings["Can view my connections"] = "Kan een lijst met mijn connecties bekijken";
+$a->strings["Can view my file storage"] = "Kan mijn bestanden bekijken";
+$a->strings["Can view my webpages"] = "Kan mijn pagina's bekijken";
+$a->strings["Can send me their channel stream and posts"] = "Kan mij de inhoud van hun kanaal en berichten sturen";
+$a->strings["Can post on my channel page (\"wall\")"] = "Kan een bericht in mijn kanaal plaatsen";
+$a->strings["Can comment on or like my posts"] = "Kan op mijn berichten reageren of deze (niet) leuk vinden";
+$a->strings["Can send me private mail messages"] = "Kan mij privéberichten sturen";
+$a->strings["Can post photos to my photo albums"] = "Kan foto's aan mijn fotoalbums toevoegen";
+$a->strings["Can like/dislike stuff"] = "Kan dingen leuk of niet leuk vinden";
+$a->strings["Profiles and things other than posts/comments"] = "Profielen en dingen, buiten berichten en reacties";
+$a->strings["Can forward to all my channel contacts via post @mentions"] = "Kan naar al mijn kanaalconnecties berichten doorsturen met behulp van @vermeldingen+";
+$a->strings["Advanced - useful for creating group forum channels"] = "Geavanceerd - nuttig voor groepforums";
+$a->strings["Can chat with me (when available)"] = "Kan met mij chatten (wanneer beschikbaar)";
+$a->strings["Can write to my file storage"] = "Kan bestanden aan mijn bestandsopslag toevoegen";
+$a->strings["Can edit my webpages"] = "Kan mijn pagina's bewerken";
+$a->strings["Can source my public posts in derived channels"] = "Kan mijn openbare berichten als bron voor andere kanalen gebruiken";
+$a->strings["Somewhat advanced - very useful in open communities"] = "Enigszins geavanceerd (erg nuttig voor kanalen van forums/groepen)";
+$a->strings["Can administer my channel resources"] = "Kan mijn kanaal beheren";
+$a->strings["Extremely advanced. Leave this alone unless you know what you are doing"] = "Zeer geavanceerd. Laat dit met rust, behalve als je weet wat je doet.";
+$a->strings["Social Networking"] = "Sociaal netwerk";
+$a->strings["Mostly Public"] = "Vrijwel alles openbaar";
+$a->strings["Restricted"] = "Beperkt zichtbaar";
+$a->strings["Private"] = "Verborgen kanaal";
+$a->strings["Community Forum"] = "Groepsforum";
+$a->strings["Feed Republish"] = "Feed herpubliceren";
+$a->strings["Special Purpose"] = "Speciaal doel";
+$a->strings["Celebrity/Soapbox"] = "Beroemdheid/alleen volgen";
+$a->strings["Group Repository"] = "Groepsopslag";
+$a->strings["Other"] = "Anders";
+$a->strings["Custom/Expert Mode"] = "Expertmodus/handmatig aanpassen";
+$a->strings["Default"] = "Standaard";
+$a->strings["Frequently"] = "Regelmatig";
+$a->strings["Hourly"] = "Elk uur";
+$a->strings["Twice daily"] = "Twee keer per dag";
+$a->strings["Daily"] = "Dagelijks";
+$a->strings["Weekly"] = "Wekelijks";
+$a->strings["Monthly"] = "Maandelijks";
+$a->strings["Friendica"] = "Friendica";
+$a->strings["OStatus"] = "OStatus";
+$a->strings["RSS/Atom"] = "RSS/Atom";
+$a->strings["Email"] = "E-mail";
+$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["Unable to obtain identity information from database"] = "Niet in staat om identiteitsinformatie uit de database te verkrijgen";
+$a->strings["Empty name"] = "Ontbrekende naam";
+$a->strings["Name too long"] = "Naam te lang";
+$a->strings["No account identifier"] = "Geen account-identificator";
+$a->strings["Nickname is required."] = "Bijnaam is verplicht";
+$a->strings["Reserved nickname. Please choose another."] = "Deze naam is gereserveerd. Kies een andere.";
+$a->strings["Nickname has unsupported characters or is already being used on this site."] = "Deze naam heeft niet ondersteunde karakters of is al op deze hub in gebruik.";
+$a->strings["Unable to retrieve created identity"] = "Niet in staat om aangemaakte identiteit te vinden";
+$a->strings["Default Profile"] = "Standaardprofiel";
+$a->strings["Friends"] = "Vrienden";
+$a->strings["Requested channel is not available."] = "Opgevraagd kanaal is niet beschikbaar.";
+$a->strings["Requested profile is not available."] = "Opgevraagd profiel is niet beschikbaar";
+$a->strings["Connect"] = "Verbinden";
+$a->strings["Change profile photo"] = "Profielfoto veranderen";
+$a->strings["Profiles"] = "Profielen";
+$a->strings["Manage/edit profiles"] = "Profielen beheren/bewerken";
+$a->strings["Create New Profile"] = "Nieuw profiel aanmaken";
+$a->strings["Profile Image"] = "Profielfoto";
+$a->strings["visible to everybody"] = "Voor iedereen zichtbaar";
+$a->strings["Edit visibility"] = "Zichtbaarheid bewerken";
+$a->strings["Gender:"] = "Geslacht:";
+$a->strings["Status:"] = "Status:";
+$a->strings["Homepage:"] = "Homepagina:";
+$a->strings["Online Now"] = "Nu online";
+$a->strings["g A l F d"] = "G:i, l d F";
+$a->strings["F d"] = "d F";
+$a->strings["[today]"] = "[vandaag]";
+$a->strings["Birthday Reminders"] = "Verjaardagsherinneringen";
+$a->strings["Birthdays this week:"] = "Verjaardagen deze week:";
+$a->strings["[No description]"] = "[Geen omschrijving]";
+$a->strings["Event Reminders"] = "Herinneringen";
+$a->strings["Events this week:"] = "Gebeurtenissen deze week:";
+$a->strings["Profile"] = "Profiel";
+$a->strings["Full Name:"] = "Volledige naam:";
+$a->strings["Like this channel"] = "Vind dit kanaal leuk";
+$a->strings["__ctx:noun__ Like"] = array(
+ 0 => "vindt dit leuk",
+ 1 => "vinden dit leuk",
+);
+$a->strings["j F, Y"] = "F j Y";
+$a->strings["j F"] = "F j";
+$a->strings["Birthday:"] = "Geboortedatum:";
+$a->strings["Age:"] = "Leeftijd:";
+$a->strings["for %1\$d %2\$s"] = "voor %1\$d %2\$s";
+$a->strings["Sexual Preference:"] = "Seksuele voorkeur:";
+$a->strings["Hometown:"] = "Oorspronkelijk uit:";
+$a->strings["Tags:"] = "Trefwoorden:";
+$a->strings["Political Views:"] = "Politieke overtuigingen:";
+$a->strings["Religion:"] = "Religie:";
+$a->strings["About:"] = "Over:";
+$a->strings["Hobbies/Interests:"] = "Hobby's/interesses:";
+$a->strings["Likes:"] = "Houdt van:";
+$a->strings["Dislikes:"] = "Houdt niet van:";
+$a->strings["Contact information and Social Networks:"] = "Contactinformatie en sociale netwerken:";
+$a->strings["My other channels:"] = "Mijn andere kanalen";
+$a->strings["Musical interests:"] = "Muzikale interesses:";
+$a->strings["Books, literature:"] = "Boeken, literatuur:";
+$a->strings["Television:"] = "Televisie:";
+$a->strings["Film/dance/culture/entertainment:"] = "Films/dansen/cultuur/vermaak:";
+$a->strings["Love/Romance:"] = "Liefde/romantiek:";
+$a->strings["Work/employment:"] = "Werk/beroep:";
+$a->strings["School/education:"] = "School/opleiding:";
+$a->strings["Like this thing"] = "Vind dit ding leuk";
+$a->strings["Image/photo"] = "Afbeelding/foto";
+$a->strings["Encrypted content"] = "Versleutelde inhoud";
+$a->strings["Install design element: "] = "Installeer ontwerp-onderdeel";
+$a->strings["QR code"] = "QR-code";
+$a->strings["%1\$s wrote the following %2\$s %3\$s"] = "%1\$s schreef het volgende %2\$s %3\$s";
+$a->strings["post"] = "bericht";
+$a->strings["$1 spoiler"] = "$1 spoiler";
+$a->strings["$1 wrote:"] = "$1 schreef:";
+$a->strings["Miscellaneous"] = "Diversen";
+$a->strings["YYYY-MM-DD or MM-DD"] = "JJJJ-MM-DD of MM-DD";
+$a->strings["never"] = "nooit";
+$a->strings["less than a second ago"] = "minder dan een seconde geleden";
+$a->strings["year"] = "jaar";
+$a->strings["years"] = "jaren";
+$a->strings["month"] = "maand";
+$a->strings["months"] = "maanden";
+$a->strings["week"] = "week";
+$a->strings["weeks"] = "weken";
+$a->strings["day"] = "dag";
+$a->strings["days"] = "dagen";
+$a->strings["hour"] = "uur";
+$a->strings["hours"] = "uren";
+$a->strings["minute"] = "minuut";
+$a->strings["minutes"] = "minuten";
+$a->strings["second"] = "seconde";
+$a->strings["seconds"] = "seconden";
+$a->strings["%1\$d %2\$s ago"] = "%1\$d %2\$s geleden";
+$a->strings["%1\$s's birthday"] = "Verjaardag van %1\$s";
+$a->strings["Happy Birthday %1\$s"] = "Gefeliciteerd met je verjaardag %1\$s";
+$a->strings["New window"] = "Nieuw venster";
+$a->strings["Open the selected location in a different window or browser tab"] = "Open de geselecteerde locatie in een ander venster of tab";
+$a->strings["User '%s' deleted"] = "Account '%s' verwijderd";
+$a->strings["Tags"] = "Labels";
+$a->strings["Keywords"] = "Trefwoorden";
+$a->strings["have"] = "heb";
+$a->strings["has"] = "heeft";
+$a->strings["want"] = "wil";
+$a->strings["wants"] = "wil";
+$a->strings["like"] = "vind dit leuk";
+$a->strings["likes"] = "vindt dit leuk";
+$a->strings["dislike"] = "vind dit niet leuk";
+$a->strings["dislikes"] = "vindt dit niet leuk";
+$a->strings["Public Timeline"] = "Openbare tijdlijn";
+$a->strings["Red Matrix Notification"] = "RedMatrix-notificatie";
+$a->strings["redmatrix"] = "RedMatrix";
+$a->strings["Thank You,"] = "Bedankt,";
+$a->strings["%s Administrator"] = "Beheerder %s";
+$a->strings["%s <!item_type!>"] = "%s <!item_type!>";
+$a->strings["[Red:Notify] New mail received at %s"] = "[Red:Notificatie] Nieuw privébericht ontvangen op %s";
+$a->strings["%1\$s, %2\$s sent you a new private message at %3\$s."] = "%1\$s, %2\$s zond jou een nieuw privébericht om %3\$s.";
+$a->strings["%1\$s sent you %2\$s."] = "%1\$s zond jou %2\$s.";
+$a->strings["a private message"] = "een privébericht";
+$a->strings["Please visit %s to view and/or reply to your private messages."] = "Bezoek %s om je privéberichten te bekijken en/of er op te reageren.";
+$a->strings["%1\$s, %2\$s commented on [zrl=%3\$s]a %4\$s[/zrl]"] = "%1\$s, %2\$s gaf een reactie op [zrl=%3\$s]een %4\$s[/zrl]";
+$a->strings["%1\$s, %2\$s commented on [zrl=%3\$s]%4\$s's %5\$s[/zrl]"] = "%1\$s, %2\$s gaf een reactie op [zrl=%3\$s]een %5\$s van %4\$s[/zrl]";
+$a->strings["%1\$s, %2\$s commented on [zrl=%3\$s]your %4\$s[/zrl]"] = "%1\$s, %2\$s gaf een reactie op [zrl=%3\$s]jouw %4\$s[/zrl]";
+$a->strings["[Red:Notify] Comment to conversation #%1\$d by %2\$s"] = "[Red:Notificatie] Reactie op conversatie #%1\$d door %2\$s";
+$a->strings["%1\$s, %2\$s commented on an item/conversation you have been following."] = "%1\$s, %2\$s gaf een reactie op een bericht/conversatie die jij volgt.";
+$a->strings["Please visit %s to view and/or reply to the conversation."] = "Bezoek %s om de conversatie te bekijken en/of er op te reageren.";
+$a->strings["[Red:Notify] %s posted to your profile wall"] = "[Red:Notificatie] %s heeft een bericht op jouw kanaal geplaatst";
+$a->strings["%1\$s, %2\$s posted to your profile wall at %3\$s"] = "%1\$s, %2\$s heeft om %3\$s een bericht op jouw kanaal geplaatst";
+$a->strings["%1\$s, %2\$s posted to [zrl=%3\$s]your wall[/zrl]"] = "%1\$s, %2\$s heeft een bericht op [zrl=%3\$s]jouw kanaal[/zrl] geplaatst";
+$a->strings["[Red:Notify] %s tagged you"] = "[Red:Notificatie] %s heeft je genoemd";
+$a->strings["%1\$s, %2\$s tagged you at %3\$s"] = "%1\$s, %2\$s noemde jou op %3\$s";
+$a->strings["%1\$s, %2\$s [zrl=%3\$s]tagged you[/zrl]."] = "%1\$s, %2\$s [zrl=%3\$s]noemde jou[/zrl].";
+$a->strings["[Red:Notify] %1\$s poked you"] = "[Red:Notificatie] %1\$s heeft je aangestoten";
+$a->strings["%1\$s, %2\$s poked you at %3\$s"] = "%1\$s, %2\$s heeft je aangestoten op %3\$s";
+$a->strings["%1\$s, %2\$s [zrl=%2\$s]poked you[/zrl]."] = "%1\$s, %2\$s [zrl=%2\$s]heeft je aangestoten[/zrl].";
+$a->strings["[Red:Notify] %s tagged your post"] = "[Red:Notificatie] %s heeft jouw bericht gelabeld";
+$a->strings["%1\$s, %2\$s tagged your post at %3\$s"] = "%1\$s, %2\$s labelde jouw bericht om %3\$s";
+$a->strings["%1\$s, %2\$s tagged [zrl=%3\$s]your post[/zrl]"] = "%1\$s, %2\$s labelde [zrl=%3\$s]jouw bericht[/zrl]";
+$a->strings["[Red:Notify] Introduction received"] = "[Red:Notificatie] Connectieverzoek ontvangen";
+$a->strings["%1\$s, you've received an new connection request from '%2\$s' at %3\$s"] = "%1\$s, je hebt een nieuw connectieverzoek ontvangen van '%2\$s' op %3\$s";
+$a->strings["%1\$s, you've received [zrl=%2\$s]a new connection request[/zrl] from %3\$s."] = "%1\$s, je hebt een [zrl=%2\$s]nieuw connectieverzoek[/zrl] ontvangen van %3\$s.";
+$a->strings["You may visit their profile at %s"] = "Je kan het profiel bekijken op %s";
+$a->strings["Please visit %s to approve or reject the connection request."] = "Bezoek %s om het connectieverzoek te accepteren of af te wijzen.";
+$a->strings["[Red:Notify] Friend suggestion received"] = "[Red:Notificatie] Kanaalvoorstel ontvangen";
+$a->strings["%1\$s, you've received a friend suggestion from '%2\$s' at %3\$s"] = "%1\$s, je hebt een kanaalvoorstel ontvangen van '%2\$s' om %3\$s";
+$a->strings["%1\$s, you've received [zrl=%2\$s]a friend suggestion[/zrl] for %3\$s from %4\$s."] = "%1\$s, je hebt [zrl=%2\$s]een kanaalvoorstel[/zrl] ontvangen voor %3\$s van %4\$s.";
+$a->strings["Name:"] = "Naam:";
+$a->strings["Photo:"] = "Foto:";
+$a->strings["Please visit %s to approve or reject the suggestion."] = "Bezoek %s om het voorstel te accepteren of af te wijzen.";
+$a->strings["[Red:Notify]"] = "[Red:Notificatie]";
+$a->strings["This event has been added to your calendar."] = "Dit evenement is aan jouw agenda toegevoegd.";
+$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."] = "Een verwijderde collectie met deze naam is gereactiveerd. Bestaande itemrechten <strong>kunnen</strong> van toepassing zijn op deze collectie en toekomstige leden. Wanneer je dit niet zo bedoeld hebt, moet je een nieuwe collectie met een andere naam aanmaken.";
+$a->strings["Default privacy group for new contacts"] = "Standaard privacy-collectie voor nieuwe kanalen";
+$a->strings["All Channels"] = "Alle kanalen";
+$a->strings["edit"] = "bewerken";
+$a->strings["Collections"] = "Collecties";
+$a->strings["Edit collection"] = "Collectie bewerken";
+$a->strings["Create a new collection"] = "Nieuwe collectie aanmaken";
+$a->strings["Channels not in any collection"] = "Kanalen die zich in geen enkele collectie bevinden";
+$a->strings["add"] = "toevoegen";
+$a->strings["General Features"] = "Algemene functies";
+$a->strings["Content Expiration"] = "Inhoud laten verlopen";
+$a->strings["Remove posts/comments and/or private messages at a future time"] = "Berichten, reacties en/of privéberichten na een bepaalde tijd verwijderen";
+$a->strings["Multiple Profiles"] = "Meerdere profielen";
+$a->strings["Ability to create multiple profiles"] = "Mogelijkheid om meerdere profielen aan te maken";
+$a->strings["Advanced Profiles"] = "Geavanceerde profielen";
+$a->strings["Additional profile sections and selections"] = "Extra onderdelen en keuzes voor je profiel";
+$a->strings["Profile Import/Export"] = "Profiel importen/exporteren";
+$a->strings["Save and load profile details across sites/channels"] = "Profielgegevens opslaan en in andere hubs/kanalen gebruiken.";
+$a->strings["Web Pages"] = "Webpagina's";
+$a->strings["Provide managed web pages on your channel"] = "Sta beheerde webpagina's op jouw kanaal toe";
+$a->strings["Private Notes"] = "Privé-aantekeningen";
+$a->strings["Enables a tool to store notes and reminders"] = "Schakelt een eenvoudige toepassing in om aantekeningen en herinneringen in op te slaan";
+$a->strings["Navigation Channel Select"] = "Kanaal kiezen in navigatiemenu";
+$a->strings["Change channels directly from within the navigation dropdown menu"] = "Kies een ander kanaal direct vanuit het dropdown-menu op de navigatiebalk";
+$a->strings["Extended Identity Sharing"] = "Uitgebreid identiteit delen";
+$a->strings["Share your identity with all websites on the internet. When disabled, identity is only shared with sites in the matrix."] = "Deel jouw RedMatrix-identiteit met alle websites op het internet. Wanneer dit is uitgeschakeld wordt je identiteit alleen binnen het RedMatrix-netwerk gedeeld. Schakel dit alleen als je weet wat je doet.";
+$a->strings["Expert Mode"] = "Expertmodus";
+$a->strings["Enable Expert Mode to provide advanced configuration options"] = "Schakel de expertmodus in voor geavanceerde instellingen";
+$a->strings["Premium Channel"] = "Premiumkanaal";
+$a->strings["Allows you to set restrictions and terms on those that connect with your channel"] = "Stelt je in staat om beperkingen en voorwaarden in te stellen voor jouw kanaal";
+$a->strings["Post Composition Features"] = "Functies voor het opstellen van berichten";
+$a->strings["Use Markdown"] = "Markdown gebruiken";
+$a->strings["Allow use of \"Markdown\" to format posts"] = "Sta het gebruik van \"markdown\" toe om berichten mee op te maken.";
+$a->strings["Post Preview"] = "Voorvertoning";
+$a->strings["Allow previewing posts and comments before publishing them"] = "Een optie om je berichten en reacties voor het definitief publiceren voor te vertonen";
+$a->strings["Channel Sources"] = "Kanaalbronnen";
+$a->strings["Automatically import channel content from other channels or feeds"] = "Automatisch inhoud uit andere kanalen of feeds importeren.";
+$a->strings["Even More Encryption"] = "Extra encryptie";
+$a->strings["Allow optional encryption of content end-to-end with a shared secret key"] = "Sta toe dat inhoud extra end-to-end wordt versleuteld met een gedeelde geheime sleutel.";
+$a->strings["Flag Adult Photos"] = "Markeer foto's als voor volwassenen";
+$a->strings["Provide photo edit option to hide adult photos from default album view"] = "Zorgt voor een optie om foto's met inhoud voor volwassenen in de standaard albumweergave te verbergen";
+$a->strings["Network and Stream Filtering"] = "Netwerk- en streamfilter";
+$a->strings["Search by Date"] = "Zoek op datum";
+$a->strings["Ability to select posts by date ranges"] = "Mogelijkheid om berichten op datum te filteren ";
+$a->strings["Collections Filter"] = "Filter op collecties";
+$a->strings["Enable widget to display Network posts only from selected collections"] = "Sta de widget toe om netwerkberichten te tonen van bepaalde collecties";
+$a->strings["Saved Searches"] = "Opgeslagen zoekopdrachten";
+$a->strings["Save search terms for re-use"] = "Sla zoekopdrachten op voor hergebruik";
+$a->strings["Network Personal Tab"] = "Persoonlijke netwerktab";
+$a->strings["Enable tab to display only Network posts that you've interacted on"] = "Sta het toe dat de tab netwerkberichten toont waarmee je interactie had";
+$a->strings["Network New Tab"] = "Nieuwe netwerktab";
+$a->strings["Enable tab to display all new Network activity"] = "Laat de tab alle nieuwe netwerkactiviteit tonen";
+$a->strings["Affinity Tool"] = "Verwantschapsfilter";
+$a->strings["Filter stream activity by depth of relationships"] = "Filter wat je in de Matrix ziet op hoe goed je iemand kent of mag";
+$a->strings["Suggest Channels"] = "Kanalen voorstellen";
+$a->strings["Show channel suggestions"] = "Voor jou mogelijk interessante kanalen voorstellen";
+$a->strings["Post/Comment Tools"] = "Bericht- en reactiehulpmiddelen";
+$a->strings["Edit Sent Posts"] = "Bewerk verzonden berichten";
+$a->strings["Edit and correct posts and comments after sending"] = "Bewerk en corrigeer berichten en reacties nadat deze zijn verzonden";
+$a->strings["Tagging"] = "Labelen";
+$a->strings["Ability to tag existing posts"] = "Mogelijkheid om bestaande berichten te labelen";
+$a->strings["Post Categories"] = "Categorieën berichten";
+$a->strings["Add categories to your posts"] = "Voeg categorieën toe aan je berichten";
+$a->strings["Ability to file posts under folders"] = "Mogelijkheid om berichten in mappen op te slaan";
+$a->strings["Dislike Posts"] = "Vind berichten niet leuk";
+$a->strings["Ability to dislike posts/comments"] = "Mogelijkheid om berichten en reacties niet leuk te vinden";
+$a->strings["Star Posts"] = "Geef berichten een ster";
+$a->strings["Ability to mark special posts with a star indicator"] = "Mogelijkheid om speciale berichten met een ster te markeren";
+$a->strings["Tag Cloud"] = "Wolk met trefwoorden/labels";
+$a->strings["Provide a personal tag cloud on your channel page"] = "Zorgt voor een persoonlijke wolk met trefwoorden of labels op jouw kanaalpagina";
$a->strings["prev"] = "vorige";
$a->strings["first"] = "eerste";
$a->strings["last"] = "laatste";
@@ -219,7 +522,7 @@ $a->strings["remove category"] = "categorie verwijderen";
$a->strings["remove from file"] = "uit map verwijderen";
$a->strings["Click to open/close"] = "Klik om te openen of te sluiten";
$a->strings["Link to Source"] = "Originele locatie";
-$a->strings["Select a page layout: "] = "Kies een paginalayout: ";
+$a->strings["Select a page layout: "] = "Kies een paginalay-out: ";
$a->strings["default"] = "standaard";
$a->strings["Page content type: "] = "Opmaakcode pagina";
$a->strings["Select an alternate language"] = "Kies een andere taal";
@@ -231,173 +534,18 @@ $a->strings["activity"] = "activiteit";
$a->strings["Design"] = "Ontwerp";
$a->strings["Blocks"] = "Blokken";
$a->strings["Menus"] = "Menu's";
-$a->strings["Layouts"] = "Layouts";
+$a->strings["Layouts"] = "Lay-outs";
$a->strings["Pages"] = "Pagina's";
-$a->strings["Tags"] = "Labels";
-$a->strings["Keywords"] = "Trefwoorden";
-$a->strings["have"] = "heb";
-$a->strings["has"] = "heeft";
-$a->strings["want"] = "wil";
-$a->strings["wants"] = "wil";
-$a->strings["like"] = "vind dit leuk";
-$a->strings["likes"] = "vindt dit leuk";
-$a->strings["dislike"] = "vind dit niet leuk";
-$a->strings["dislikes"] = "vindt dit niet leuk";
-$a->strings["__ctx:noun__ Like"] = array(
- 0 => "vindt dit leuk",
- 1 => "vinden dit leuk",
-);
-$a->strings["Default"] = "Standaard";
-$a->strings["Frequently"] = "Regelmatig";
-$a->strings["Hourly"] = "Elk uur";
-$a->strings["Twice daily"] = "Twee keer per dag";
-$a->strings["Daily"] = "Dagelijks";
-$a->strings["Weekly"] = "Wekelijks";
-$a->strings["Monthly"] = "Maandelijks";
-$a->strings["Friendica"] = "Friendica";
-$a->strings["OStatus"] = "OStatus";
-$a->strings["RSS/Atom"] = "RSS/Atom";
-$a->strings["Email"] = "E-mail";
-$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["%d invitation available"] = array(
- 0 => "%d uitnodiging beschikbaar",
- 1 => "%d uitnodigingen beschikbaar",
-);
-$a->strings["Advanced"] = "Geavanceerd";
-$a->strings["Find Channels"] = "Kanalen vinden";
-$a->strings["Enter name or interest"] = "Vul naam of interesse in";
-$a->strings["Connect/Follow"] = "Verbinden/volgen";
-$a->strings["Examples: Robert Morgenstein, Fishing"] = "Voorbeeld: Robert Morgenstein, vissen";
-$a->strings["Find"] = "Vinden";
-$a->strings["Channel Suggestions"] = "Voorgestelde kanalen";
-$a->strings["Random Profile"] = "Willekeurig profiel";
-$a->strings["Invite Friends"] = "Vrienden uitnodigen";
-$a->strings["Exammple: name=fred and country=iceland"] = "Voorbeeld: (voor naam) name=herman en (voor land) country=nederland";
-$a->strings["Advanced Find"] = "Geavanceerd zoeken";
-$a->strings["Saved Folders"] = "Bewaarde mappen";
-$a->strings["Everything"] = "Alles";
-$a->strings["Categories"] = "Categorieën";
-$a->strings["%d connection in common"] = array(
- 0 => "%d gemeenschappelijke connectie",
- 1 => "%d gemeenschappelijke connecties",
-);
-$a->strings["show more"] = "meer connecties weergeven";
-$a->strings["This event has been added to your calendar."] = "Dit evenement is aan jouw agenda toegevoegd.";
-$a->strings["Not a valid email address"] = "Geen geldig e-mailadres";
-$a->strings["Your email domain is not among those allowed on this site"] = "Jouw e-maildomein is op deze RedMatrix-hub niet toegestaan";
-$a->strings["Your email address is already registered at this site."] = "Jouw e-mailadres is al op deze RedMatrix-hub geregistreerd .";
-$a->strings["An invitation is required."] = "Een uitnodiging is vereist";
-$a->strings["Invitation could not be verified."] = "Uitnodiging kon niet geverifieerd worden";
-$a->strings["Please enter the required information."] = "Vul de vereiste informatie in.";
-$a->strings["Failed to store account information."] = "Account-informatie kon niet opgeslagen worden.";
-$a->strings["Registration confirmation for %s"] = "Registratiebevestiging voor %s";
-$a->strings["Registration request at %s"] = "Registratieverzoek op %s";
-$a->strings["Administrator"] = "Beheerder";
-$a->strings["your registration password"] = "jouw registratiewachtwoord";
-$a->strings["Registration details for %s"] = "Registratiedetails voor %s";
-$a->strings["Account approved."] = "Account goedgekeurd";
-$a->strings["Registration revoked for %s"] = "Registratie ingetrokken voor %s";
-$a->strings["Account verified. Please login."] = "Account is geverifieerd. Je kan inloggen.";
-$a->strings["%1\$s likes %2\$s's %3\$s"] = "%1\$s vindt %3\$s van %2\$s leuk";
-$a->strings["Attachments:"] = "Bijlagen:";
-$a->strings["Miscellaneous"] = "Diversen";
-$a->strings["year"] = "jaar";
-$a->strings["month"] = "maand";
-$a->strings["day"] = "dag";
-$a->strings["never"] = "nooit";
-$a->strings["less than a second ago"] = "minder dan een seconde geleden";
-$a->strings["years"] = "jaren";
-$a->strings["months"] = "maanden";
-$a->strings["week"] = "week";
-$a->strings["weeks"] = "weken";
-$a->strings["days"] = "dagen";
-$a->strings["hour"] = "uur";
-$a->strings["hours"] = "uren";
-$a->strings["minute"] = "minuut";
-$a->strings["minutes"] = "minuten";
-$a->strings["second"] = "seconde";
-$a->strings["seconds"] = "seconden";
-$a->strings["%1\$d %2\$s ago"] = "%1\$d %2\$s geleden";
-$a->strings["%1\$s's birthday"] = "Verjaardag van %1\$s";
-$a->strings["Happy Birthday %1\$s"] = "Gefeliciteerd met je verjaardag %1\$s";
-$a->strings["Sort Options"] = "Sorteeropties";
-$a->strings["Alphabetic"] = "Alfabetisch";
-$a->strings["Reverse Alphabetic"] = "Omgekeerd alfabetisch";
-$a->strings["Newest to Oldest"] = "Nieuw naar oud";
-$a->strings["Enable Safe Search"] = "Veilig zoeken inschakelen";
-$a->strings["Disable Safe Search"] = "Veilig zoeken uitschakelen";
-$a->strings["Safe Mode"] = "Veilig zoeken";
-$a->strings["Red Matrix Notification"] = "RedMatrix-notificatie";
-$a->strings["redmatrix"] = "RedMatrix";
-$a->strings["Thank You,"] = "Bedankt,";
-$a->strings["%s Administrator"] = "Beheerder %s";
-$a->strings["%s <!item_type!>"] = "%s <!item_type!>";
-$a->strings["[Red:Notify] New mail received at %s"] = "[Red:Notificatie] Nieuw privébericht ontvangen op %s";
-$a->strings["%1\$s, %2\$s sent you a new private message at %3\$s."] = "%1\$s, %2\$s zond jou een nieuw privébericht om %3\$s.";
-$a->strings["%1\$s sent you %2\$s."] = "%1\$s zond jou %2\$s.";
-$a->strings["a private message"] = "een privébericht";
-$a->strings["Please visit %s to view and/or reply to your private messages."] = "Bezoek %s om je privéberichten te bekijken en/of er op te reageren.";
-$a->strings["%1\$s, %2\$s commented on [zrl=%3\$s]a %4\$s[/zrl]"] = "%1\$s, %2\$s gaf een reactie op [zrl=%3\$s]een %4\$s[/zrl]";
-$a->strings["%1\$s, %2\$s commented on [zrl=%3\$s]%4\$s's %5\$s[/zrl]"] = "%1\$s, %2\$s gaf een reactie op [zrl=%3\$s]een %5\$s van %4\$s[/zrl]";
-$a->strings["%1\$s, %2\$s commented on [zrl=%3\$s]your %4\$s[/zrl]"] = "%1\$s, %2\$s gaf een reactie op [zrl=%3\$s]jouw %4\$s[/zrl]";
-$a->strings["[Red:Notify] Comment to conversation #%1\$d by %2\$s"] = "[Red:Notificatie] Reactie op conversatie #%1\$d door %2\$s";
-$a->strings["%1\$s, %2\$s commented on an item/conversation you have been following."] = "%1\$s, %2\$s gaf een reactie op een bericht/conversatie die jij volgt.";
-$a->strings["Please visit %s to view and/or reply to the conversation."] = "Bezoek %s om de conversatie te bekijken en/of er op te reageren.";
-$a->strings["[Red:Notify] %s posted to your profile wall"] = "[Red:Notificatie] %s heeft een bericht op jouw kanaal geplaatst";
-$a->strings["%1\$s, %2\$s posted to your profile wall at %3\$s"] = "%1\$s, %2\$s heeft om %3\$s een bericht op jouw kanaal geplaatst";
-$a->strings["%1\$s, %2\$s posted to [zrl=%3\$s]your wall[/zrl]"] = "%1\$s, %2\$s heeft een bericht op [zrl=%3\$s]jouw kanaal[/zrl] geplaatst";
-$a->strings["[Red:Notify] %s tagged you"] = "[Red:Notificatie] %s heeft je genoemd";
-$a->strings["%1\$s, %2\$s tagged you at %3\$s"] = "%1\$s, %2\$s noemde jou op %3\$s";
-$a->strings["%1\$s, %2\$s [zrl=%3\$s]tagged you[/zrl]."] = "%1\$s, %2\$s [zrl=%3\$s]noemde jou[/zrl].";
-$a->strings["[Red:Notify] %1\$s poked you"] = "[Red:Notificatie] %1\$s heeft je aangestoten";
-$a->strings["%1\$s, %2\$s poked you at %3\$s"] = "%1\$s, %2\$s heeft je aangestoten op %3\$s";
-$a->strings["%1\$s, %2\$s [zrl=%2\$s]poked you[/zrl]."] = "%1\$s, %2\$s [zrl=%2\$s]heeft je aangestoten[/zrl].";
-$a->strings["[Red:Notify] %s tagged your post"] = "[Red:Notificatie] %s heeft jouw bericht gelabeld";
-$a->strings["%1\$s, %2\$s tagged your post at %3\$s"] = "%1\$s, %2\$s labelde jouw bericht om %3\$s";
-$a->strings["%1\$s, %2\$s tagged [zrl=%3\$s]your post[/zrl]"] = "%1\$s, %2\$s labelde [zrl=%3\$s]jouw bericht[/zrl]";
-$a->strings["[Red:Notify] Introduction received"] = "[Red:Notificatie] Connectieverzoek ontvangen";
-$a->strings["%1\$s, you've received an new connection request from '%2\$s' at %3\$s"] = "%1\$s, je hebt een nieuw connectieverzoek ontvangen van '%2\$s' op %3\$s";
-$a->strings["%1\$s, you've received [zrl=%2\$s]a new connection request[/zrl] from %3\$s."] = "%1\$s, je hebt een [zrl=%2\$s]nieuw connectieverzoek[/zrl] ontvangen van %3\$s.";
-$a->strings["You may visit their profile at %s"] = "Je kan het profiel bekijken op %s";
-$a->strings["Please visit %s to approve or reject the connection request."] = "Bezoek %s om het connectieverzoek te accepteren of af te wijzen.";
-$a->strings["[Red:Notify] Friend suggestion received"] = "[Red:Notificatie] Kanaalvoorstel ontvangen";
-$a->strings["%1\$s, you've received a friend suggestion from '%2\$s' at %3\$s"] = "%1\$s, je hebt een kanaalvoorstel ontvangen van '%2\$s' om %3\$s";
-$a->strings["%1\$s, you've received [zrl=%2\$s]a friend suggestion[/zrl] for %3\$s from %4\$s."] = "%1\$s, je hebt [zrl=%2\$s]een kanaalvoorstel[/zrl] ontvangen voor %3\$s van %4\$s.";
-$a->strings["Name:"] = "Naam:";
-$a->strings["Photo:"] = "Foto:";
-$a->strings["Please visit %s to approve or reject the suggestion."] = "Bezoek %s om het voorstel te accepteren of af te wijzen.";
-$a->strings["[Red:Notify]"] = "[Red:Notificatie]";
-$a->strings["parent"] = "omhoog";
-$a->strings["Collection"] = "map";
-$a->strings["Principal"] = "principal";
-$a->strings["Addressbook"] = "Adresboek";
-$a->strings["Calendar"] = "Agenda";
-$a->strings["Schedule Inbox"] = "Planning-postvak IN";
-$a->strings["Schedule Outbox"] = "Planning-postvak UIT";
-$a->strings["%1\$s used"] = "%1\$s gebruikt";
-$a->strings["%1\$s used of %2\$s (%3\$s&#37;)"] = "%1\$s van %2\$s gebruikt (%3\$s&#37;)";
-$a->strings["Name"] = "Naam";
-$a->strings["Type"] = "Type";
-$a->strings["Size"] = "Grootte";
-$a->strings["Last Modified"] = "Laatst gewijzigd";
-$a->strings["Total"] = "Totaal";
-$a->strings["Create new folder"] = "Nieuwe map aanmaken";
-$a->strings["Create"] = "Aanmaken";
-$a->strings["Upload file"] = "Bestand uploaden";
-$a->strings["Upload"] = "Uploaden";
$a->strings["channel"] = "kanaal";
+$a->strings["%1\$s likes %2\$s's %3\$s"] = "%1\$s vindt %3\$s van %2\$s leuk";
$a->strings["%1\$s doesn't like %2\$s's %3\$s"] = "%1\$s vindt %3\$s van %2\$s niet leuk";
$a->strings["%1\$s is now connected with %2\$s"] = "%1\$s is nu met %2\$s verbonden";
$a->strings["%1\$s poked %2\$s"] = "%1\$s heeft %2\$s aangestoten";
$a->strings["__ctx:mood__ %1\$s is %2\$s"] = "%1\$s is %2\$s";
$a->strings["Select"] = "Kies";
$a->strings["Private Message"] = "Privébericht";
-$a->strings["Message is verified"] = "Bericht is geverifieerd";
+$a->strings["Message signature validated"] = "Berichtkenmerk gevalideerd";
+$a->strings["Message signature incorrect"] = "Berichtkenmerk onjuist";
$a->strings["View %s's profile @ %s"] = "Bekijk het profiel van %s @ %s";
$a->strings["Categories:"] = "Categorieën:";
$a->strings["Filed under:"] = "Bewaard onder:";
@@ -407,16 +555,15 @@ $a->strings["Expires: %s"] = "Verloopt: %s";
$a->strings["View in context"] = "In context bekijken";
$a->strings["Please wait"] = "Even wachten";
$a->strings["remove"] = "verwijderen";
-$a->strings["Loading..."] = "Aan het laden...";
$a->strings["Delete Selected Items"] = "Verwijder de geselecteerde items";
$a->strings["View Source"] = "Bron weergeven";
$a->strings["Follow Thread"] = "Conversatie volgen";
$a->strings["View Status"] = "Status weergeven";
$a->strings["View Photos"] = "Foto's weergeven";
$a->strings["Matrix Activity"] = "Activiteit in de RedMatrix";
-$a->strings["Connect"] = "Verbinden";
$a->strings["Edit Contact"] = "Contact bewerken";
$a->strings["Send PM"] = "Privébericht verzenden";
+$a->strings["Poke"] = "Aanstoten";
$a->strings["%s likes this."] = "%s vindt dit leuk.";
$a->strings["%s doesn't like this."] = "%s vindt dit niet leuk.";
$a->strings["<span %1\$s>%2\$d people</span> like this."] = array(
@@ -459,10 +606,10 @@ $a->strings["Set your location"] = "Locatie instellen";
$a->strings["set location"] = "locatie instellen";
$a->strings["Clear browser location"] = "Locatie van webbrowser wissen";
$a->strings["clear location"] = "locatie wissen";
-$a->strings["Set title"] = "Titel instellen";
-$a->strings["Categories (comma-separated list)"] = "Categorieën (door komma's gescheiden lijst)";
-$a->strings["Permission settings"] = "Privacy-rechten";
-$a->strings["permissions"] = "privacy-rechten";
+$a->strings["Title (optional)"] = "Titel (optioneel)";
+$a->strings["Categories (optional, comma-separated list)"] = "Categorieën (optioneel, door komma's gescheiden lijst)";
+$a->strings["Permission settings"] = "Permissies";
+$a->strings["permissions"] = "permissies";
$a->strings["Public post"] = "Openbaar bericht";
$a->strings["Example: bob@example.com, mary@example.com"] = "Voorbeeld: bob@voorbeeld.nl, mary@voorbeeld.be";
$a->strings["Set expiration date"] = "Verloopdatum instellen";
@@ -487,81 +634,34 @@ $a->strings["Channel"] = "Kanaal";
$a->strings["Status Messages and Posts"] = "Berichten in dit kanaal";
$a->strings["About"] = "Over";
$a->strings["Profile Details"] = "Profiel";
+$a->strings["Photo Albums"] = "Fotoalbums";
$a->strings["Files and Storage"] = "Bestanden en opslagruimte";
$a->strings["Chatrooms"] = "Chatkanalen";
$a->strings["Saved Bookmarks"] = "Opgeslagen bladwijzers";
$a->strings["Manage Webpages"] = "Webpagina's beheren";
-$a->strings["General Features"] = "Algemene functies";
-$a->strings["Content Expiration"] = "Inhoud laten verlopen";
-$a->strings["Remove posts/comments and/or private messages at a future time"] = "Berichten, reacties en/of privéberichten na een bepaalde tijd verwijderen";
-$a->strings["Multiple Profiles"] = "Meerdere profielen";
-$a->strings["Ability to create multiple profiles"] = "Mogelijkheid om meerdere profielen aan te maken";
-$a->strings["Advanced Profiles"] = "Geavanceerde profielen";
-$a->strings["Additional profile sections and selections"] = "Extra onderdelen en keuzes voor je profiel";
-$a->strings["Profile Import/Export"] = "Profiel importen/exporteren";
-$a->strings["Save and load profile details across sites/channels"] = "Profielgegevens opslaan en in andere hubs/kanalen gebruiken.";
-$a->strings["Web Pages"] = "Webpagina's";
-$a->strings["Provide managed web pages on your channel"] = "Sta beheerde webpagina's op jouw kanaal toe";
-$a->strings["Private Notes"] = "Privé-aantekeningen";
-$a->strings["Enables a tool to store notes and reminders"] = "Schakelt een eenvoudige toepassing in om aantekeningen en herinneringen in op te slaan";
-$a->strings["Navigation Channel Select"] = "Kanaal kiezen in navigatiemenu";
-$a->strings["Change channels directly from within the navigation dropdown menu"] = "Kies een ander kanaal direct vanuit het dropdown-menu op de navigatiebalk";
-$a->strings["Extended Identity Sharing"] = "Uitgebreid identiteit delen";
-$a->strings["Share your identity with all websites on the internet. When disabled, identity is only shared with sites in the matrix."] = "Deel jouw RedMatrix-identiteit met alle websites op het internet. Wanneer dit is uitgeschakeld wordt je identiteit alleen binnen het RedMatrix-netwerk gedeeld. Schakel dit alleen als je weet wat je doet.";
-$a->strings["Expert Mode"] = "Expertmodus";
-$a->strings["Enable Expert Mode to provide advanced configuration options"] = "Schakel de expertmodus in voor geavanceerde instellingen";
-$a->strings["Premium Channel"] = "Premiumkanaal";
-$a->strings["Allows you to set restrictions and terms on those that connect with your channel"] = "Stelt je in staat om beperkingen en voorwaarden in te stellen voor jouw kanaal";
-$a->strings["Post Composition Features"] = "Functies voor het opstellen van berichten";
-$a->strings["Use Markdown"] = "Markdown gebruiken";
-$a->strings["Allow use of \"Markdown\" to format posts"] = "Sta het gebruik van \"markdown\" toe om berichten mee op te maken.";
-$a->strings["Post Preview"] = "Voorvertoning";
-$a->strings["Allow previewing posts and comments before publishing them"] = "Een optie om je berichten en reacties voor het definitief publiceren voor te vertonen";
-$a->strings["Channel Sources"] = "Kanaalbronnen";
-$a->strings["Automatically import channel content from other channels or feeds"] = "Automatisch inhoud uit andere kanalen of feeds importeren.";
-$a->strings["Even More Encryption"] = "Extra encryptie";
-$a->strings["Allow optional encryption of content end-to-end with a shared secret key"] = "Sta toe dat inhoud extra end-to-end wordt versleuteld met een gedeelde geheime sleutel.";
-$a->strings["Network and Stream Filtering"] = "Netwerk- en streamfilter";
-$a->strings["Search by Date"] = "Zoek op datum";
-$a->strings["Ability to select posts by date ranges"] = "Mogelijkheid om berichten op datum te filteren ";
-$a->strings["Collections Filter"] = "Filter op collecties";
-$a->strings["Enable widget to display Network posts only from selected collections"] = "Sta de widget toe om netwerkberichten te tonen van bepaalde collecties";
-$a->strings["Saved Searches"] = "Opgeslagen zoekopdrachten";
-$a->strings["Save search terms for re-use"] = "Sla zoekopdrachten op voor hergebruik";
-$a->strings["Network Personal Tab"] = "Persoonlijke netwerktab";
-$a->strings["Enable tab to display only Network posts that you've interacted on"] = "Sta het toe dat de tab netwerkberichten toont waarmee je interactie had";
-$a->strings["Network New Tab"] = "Nieuwe netwerktab";
-$a->strings["Enable tab to display all new Network activity"] = "Laat de tab alle nieuwe netwerkactiviteit tonen";
-$a->strings["Affinity Tool"] = "Verwantschapsfilter";
-$a->strings["Filter stream activity by depth of relationships"] = "Filter wat je in de Matrix ziet op hoe goed je iemand kent of mag";
-$a->strings["Suggest Channels"] = "Kanalen voorstellen";
-$a->strings["Show channel suggestions"] = "Voor jou mogelijk interessante kanalen voorstellen";
-$a->strings["Post/Comment Tools"] = "Bericht- en reactiehulpmiddelen";
-$a->strings["Edit Sent Posts"] = "Bewerk verzonden berichten";
-$a->strings["Edit and correct posts and comments after sending"] = "Bewerk en corrigeer berichten en reacties nadat deze zijn verzonden";
-$a->strings["Tagging"] = "Labelen";
-$a->strings["Ability to tag existing posts"] = "Mogelijkheid om bestaande berichten te labelen";
-$a->strings["Post Categories"] = "Categorieën berichten";
-$a->strings["Add categories to your posts"] = "Voeg categorieën toe aan je berichten";
-$a->strings["Ability to file posts under folders"] = "Mogelijkheid om berichten in mappen op te slaan";
-$a->strings["Dislike Posts"] = "Vind berichten niet leuk";
-$a->strings["Ability to dislike posts/comments"] = "Mogelijkheid om berichten en reacties niet leuk te vinden";
-$a->strings["Star Posts"] = "Geef berichten een ster";
-$a->strings["Ability to mark special posts with a star indicator"] = "Mogelijkheid om speciale berichten met een ster te markeren";
-$a->strings["Tag Cloud"] = "Wolk met trefwoorden/labels";
-$a->strings["Provide a personal tag cloud on your channel page"] = "Zorgt voor een persoonlijke wolk met trefwoorden of labels op jouw kanaalpagina";
-$a->strings["Channel is blocked on this site."] = "Kanaal is op deze hub geblokkeerd.";
-$a->strings["Channel location missing."] = "Ontbrekende kanaallocatie.";
-$a->strings["Response from remote channel was incomplete."] = "Antwoord van het kanaal op afstand was niet volledig.";
-$a->strings["Channel was deleted and no longer exists."] = "Kanaal is verwijderd en bestaat niet meer.";
-$a->strings["Channel discovery failed."] = "Kanaal ontdekken mislukt.";
-$a->strings["local account not found."] = "lokale account niet gevonden.";
-$a->strings["Cannot connect to yourself."] = "Kan niet met jezelf verbinden";
-$a->strings["Missing room name"] = "Naam chatkanaal ontbreekt";
-$a->strings["Duplicate room name"] = "Naam chatkanaal bestaat al";
-$a->strings["Invalid room specifier."] = "Ongeldige omschrijving chatkanaal";
-$a->strings["Room not found."] = "Chatkanaal niet gevonden";
-$a->strings["Room is full"] = "Chatkanaal is vol";
+$a->strings["Not a valid email address"] = "Geen geldig e-mailadres";
+$a->strings["Your email domain is not among those allowed on this site"] = "Jouw e-maildomein is op deze RedMatrix-hub niet toegestaan";
+$a->strings["Your email address is already registered at this site."] = "Jouw e-mailadres is al op deze RedMatrix-hub geregistreerd.";
+$a->strings["An invitation is required."] = "Een uitnodiging is vereist";
+$a->strings["Invitation could not be verified."] = "Uitnodiging kon niet geverifieerd worden";
+$a->strings["Please enter the required information."] = "Vul de vereiste informatie in.";
+$a->strings["Failed to store account information."] = "Account-informatie kon niet opgeslagen worden.";
+$a->strings["Registration confirmation for %s"] = "Registratiebevestiging voor %s";
+$a->strings["Registration request at %s"] = "Registratiebevestiging voor %s";
+$a->strings["Administrator"] = "Beheerder";
+$a->strings["your registration password"] = "jouw registratiewachtwoord";
+$a->strings["Registration details for %s"] = "Registratiegegevens voor %s";
+$a->strings["Account approved."] = "Account goedgekeurd";
+$a->strings["Registration revoked for %s"] = "Registratie ingetrokken voor %s";
+$a->strings["Account verified. Please login."] = "Account is geverifieerd. Je kan inloggen.";
+$a->strings["Click here to upgrade."] = "Klik hier om te upgraden.";
+$a->strings["This action exceeds the limits set by your subscription plan."] = "Deze handeling overschrijdt de beperkingen die voor jouw abonnement gelden.";
+$a->strings["This action is not available under your subscription plan."] = "Deze handeling is niet mogelijk met jouw abonnement.";
+$a->strings["Image exceeds website size limit of %lu bytes"] = "Afbeelding is groter dan op deze hub toegestane limiet van %lu bytes";
+$a->strings["Image file is empty."] = "Afbeeldingsbestand is leeg";
+$a->strings["Unable to process image"] = "Afbeelding kan niet verwerkt worden";
+$a->strings["Photo storage failed."] = "Foto kan niet worden opgeslagen";
+$a->strings["Upload New Photos"] = "Nieuwe foto's uploaden";
$a->strings["Permission denied"] = "Toegang geweigerd";
$a->strings["(Unknown)"] = "(Onbekend)";
$a->strings["Visible to anybody on the internet."] = "Voor iedereen op het internet zichtbaar.";
@@ -578,82 +678,6 @@ $a->strings["Collection is empty."] = "Collectie is leeg";
$a->strings["Collection: %s"] = "Collectie: %s";
$a->strings["Connection: %s"] = "Connectie: %s";
$a->strings["Connection not found."] = "Connectie niet gevonden.";
-$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."] = "Een verwijderde collectie met deze naam is gereactiveerd. Bestaande itemrechten <strong>kunnen</strong> van toepassing zijn op deze collectie en toekomstige leden. Wanneer je dit niet zo bedoeld hebt, moet je een nieuwe collectie met een andere naam aanmaken.";
-$a->strings["Default privacy group for new contacts"] = "Standaard privacy-collectie voor nieuwe kanalen";
-$a->strings["All Channels"] = "Alle kanalen";
-$a->strings["edit"] = "bewerken";
-$a->strings["Collections"] = "Collecties";
-$a->strings["Edit collection"] = "Collectie bewerken";
-$a->strings["Create a new collection"] = "Nieuwe collectie aanmaken";
-$a->strings["Channels not in any collection"] = "Kanalen die zich in geen enkele collectie bevinden";
-$a->strings["add"] = "toevoegen";
-$a->strings["Unable to obtain identity information from database"] = "Niet in staat om identiteitsinformatie uit de database te verkrijgen";
-$a->strings["Empty name"] = "Ontbrekende naam";
-$a->strings["Name too long"] = "Naam te lang";
-$a->strings["No account identifier"] = "Geen account-identificator";
-$a->strings["Nickname is required."] = "Bijnaam is verplicht";
-$a->strings["Reserved nickname. Please choose another."] = "Deze naam is gereserveerd. Kies een andere.";
-$a->strings["Nickname has unsupported characters or is already being used on this site."] = "Deze naam heeft niet ondersteunde karakters of is al op deze hub in gebruik.";
-$a->strings["Unable to retrieve created identity"] = "Niet in staat om aangemaakte identiteit te vinden";
-$a->strings["Default Profile"] = "Standaardprofiel";
-$a->strings["Friends"] = "Vrienden";
-$a->strings["Requested channel is not available."] = "Opgevraagd kanaal is niet beschikbaar.";
-$a->strings["Requested profile is not available."] = "Opgevraagd profiel is niet beschikbaar";
-$a->strings["Change profile photo"] = "Profielfoto veranderen";
-$a->strings["Profiles"] = "Profielen";
-$a->strings["Manage/edit profiles"] = "Profielen beheren/bewerken";
-$a->strings["Create New Profile"] = "Nieuw profiel aanmaken";
-$a->strings["Profile Image"] = "Profielfoto";
-$a->strings["visible to everybody"] = "Voor iedereen zichtbaar";
-$a->strings["Edit visibility"] = "Zichtbaarheid bewerken";
-$a->strings["Gender:"] = "Geslacht:";
-$a->strings["Status:"] = "Status:";
-$a->strings["Homepage:"] = "Homepagina:";
-$a->strings["Online Now"] = "Nu online";
-$a->strings["g A l F d"] = "G:i, l d F";
-$a->strings["F d"] = "d F";
-$a->strings["[today]"] = "[vandaag]";
-$a->strings["Birthday Reminders"] = "Verjaardagsherinneringen";
-$a->strings["Birthdays this week:"] = "Verjaardagen deze week:";
-$a->strings["[No description]"] = "[Geen omschrijving]";
-$a->strings["Event Reminders"] = "Herinneringen voor gebeurtenissen";
-$a->strings["Events this week:"] = "Gebeurtenissen deze week:";
-$a->strings["Full Name:"] = "Volledige naam:";
-$a->strings["Like this channel"] = "Vind dit kanaal leuk";
-$a->strings["j F, Y"] = "F j Y";
-$a->strings["j F"] = "F j";
-$a->strings["Birthday:"] = "Geboortedatum:";
-$a->strings["Age:"] = "Leeftijd:";
-$a->strings["for %1\$d %2\$s"] = "voor %1\$d %2\$s";
-$a->strings["Sexual Preference:"] = "Seksuele voorkeur:";
-$a->strings["Hometown:"] = "Oorspronkelijk uit:";
-$a->strings["Tags:"] = "Trefwoorden:";
-$a->strings["Political Views:"] = "Politieke overtuigingen:";
-$a->strings["Religion:"] = "Religie:";
-$a->strings["About:"] = "Over:";
-$a->strings["Hobbies/Interests:"] = "Hobby's/interesses:";
-$a->strings["Likes:"] = "Houdt van:";
-$a->strings["Dislikes:"] = "Houdt niet van:";
-$a->strings["Contact information and Social Networks:"] = "Contactinformatie en sociale netwerken:";
-$a->strings["My other channels:"] = "Mijn andere kanalen";
-$a->strings["Musical interests:"] = "Muzikale interesses:";
-$a->strings["Books, literature:"] = "Boeken, literatuur:";
-$a->strings["Television:"] = "Televisie:";
-$a->strings["Film/dance/culture/entertainment:"] = "Films/dansen/cultuur/vermaak:";
-$a->strings["Love/Romance:"] = "Liefde/romantiek:";
-$a->strings["Work/employment:"] = "Werk/beroep:";
-$a->strings["School/education:"] = "School/opleiding:";
-$a->strings["Like this thing"] = "Vind dit ding leuk";
-$a->strings["Image/photo"] = "Afbeelding/foto";
-$a->strings["Encrypted content"] = "Versleutelde inhoud";
-$a->strings["QR code"] = "QR-code";
-$a->strings["%1\$s wrote the following %2\$s %3\$s"] = "%1\$s schreef het volgende %2\$s %3\$s";
-$a->strings["post"] = "bericht";
-$a->strings["$1 wrote:"] = "$1 schreef:";
-$a->strings["No recipient provided."] = "Geen ontvanger opgegeven.";
-$a->strings["[no subject]"] = "[geen onderwerp]";
-$a->strings["Unable to determine sender."] = "Afzender kan niet bepaald worden.";
-$a->strings["Stored post could not be verified."] = "Opgeslagen bericht kon niet worden geverifieerd.";
$a->strings["System"] = "Systeem";
$a->strings["Create Personal App"] = "Persoonlijke app maken";
$a->strings["Edit Personal App"] = "Persoonlijke app bewerken";
@@ -681,53 +705,21 @@ $a->strings["Feature settings"] = "Plug-ins";
$a->strings["Display settings"] = "Weergave";
$a->strings["Connected apps"] = "Verbonden applicaties";
$a->strings["Export channel"] = "Kanaal exporteren";
-$a->strings["Automatic Permissions (Advanced)"] = "Automatische privacy-rechten (geavanceerd)";
+$a->strings["Export content"] = "Inhoud exporteren";
+$a->strings["Connection Default Permissions"] = "Standaard permissies voor connecties";
$a->strings["Premium Channel Settings"] = "Instellingen premiumkanaal";
+$a->strings["Messages"] = "Berichten";
$a->strings["Check Mail"] = "Controleer op nieuwe berichten";
$a->strings["Chat Rooms"] = "Chatkanalen";
$a->strings["Bookmarked Chatrooms"] = "Bladwijzers van chatkanalen";
$a->strings["Suggested Chatrooms"] = "Voorgestelde chatkanalen";
-$a->strings["Save to Folder"] = "In map opslaan";
-$a->strings["View all"] = "Toon alles";
-$a->strings["__ctx:noun__ Dislike"] = array(
- 0 => "vindt dit niet leuk",
- 1 => "vinden dit niet leuk",
-);
-$a->strings["Add Star"] = "Ster toevoegen";
-$a->strings["Remove Star"] = "Ster verwijderen";
-$a->strings["Toggle Star Status"] = "Ster toevoegen of verwijderen";
-$a->strings["starred"] = "met ster";
-$a->strings["Add Tag"] = "Label toevoegen";
-$a->strings["I like this (toggle)"] = "Vind ik leuk";
-$a->strings["I don't like this (toggle)"] = "Vind ik niet leuk";
-$a->strings["Share This"] = "Delen";
-$a->strings["share"] = "delen";
-$a->strings["View %s's profile - %s"] = "Profiel van %s bekijken - %s";
-$a->strings["to"] = "aan";
-$a->strings["via"] = "via";
-$a->strings["Wall-to-Wall"] = "Kanaal-naar-kanaal";
-$a->strings["via Wall-To-Wall:"] = "via kanaal-naar-kanaal";
-$a->strings["Save Bookmarks"] = "Bladwijzers opslaan";
-$a->strings["Add to Calendar"] = "Aan agenda toevoegen";
-$a->strings["__ctx:noun__ Likes"] = "vinden dit leuk";
-$a->strings["__ctx:noun__ Dislikes"] = "vinden dit niet leuk";
-$a->strings["%d comment"] = array(
- 0 => "%d reactie",
- 1 => "%d reacties weergeven",
-);
-$a->strings["[+] show all"] = "[+] alle";
-$a->strings["This is you"] = "Dit ben jij";
-$a->strings["Comment"] = "Reactie";
-$a->strings["Submit"] = "Opslaan";
-$a->strings["Bold"] = "Vet";
-$a->strings["Italic"] = "Cursief";
-$a->strings["Underline"] = "Onderstrepen";
-$a->strings["Quote"] = "Citeren";
-$a->strings["Code"] = "Broncode";
-$a->strings["Image"] = "Afbeelding";
-$a->strings["Link"] = "Link";
-$a->strings["Video"] = "Video";
+$a->strings["photo/image"] = "foto/afbeelding";
+$a->strings["Invalid data packet"] = "Datapakket ongeldig";
+$a->strings["Unable to verify channel signature"] = "Kanaalkenmerk kon niet worden geverifieerd. ";
+$a->strings["Unable to verify site signature for %s"] = "Hubkenmerk voor %s kon niet worden geverifieerd";
$a->strings["Delete this item?"] = "Dit item verwijderen?";
+$a->strings["Comment"] = "Reactie";
+$a->strings["[+] show all"] = "[+] alle";
$a->strings["[-] show less"] = "[-] minder reacties weergeven";
$a->strings["[+] expand"] = "[+] uitklappen";
$a->strings["[-] collapse"] = "[-] inklappen";
@@ -736,8 +728,9 @@ $a->strings["Passwords do not match"] = "Wachtwoorden komen niet overeen";
$a->strings["everybody"] = "iedereen";
$a->strings["Secret Passphrase"] = "Geheim wachtwoord";
$a->strings["Passphrase hint"] = "Wachtwoordhint";
-$a->strings["Notice: Permissions have changed but have not yet been submitted."] = "Mededeling: de privacy-rechten zijn veranderd, maar zijn nog niet opgeslagen.";
+$a->strings["Notice: Permissions have changed but have not yet been submitted."] = "Mededeling: de permissies zijn veranderd, maar zijn nog niet opgeslagen.";
$a->strings["close all"] = "Alles sluiten";
+$a->strings["Nothing new here"] = "Niets nieuw hier";
$a->strings["timeago.prefixAgo"] = "timeago.prefixAgo";
$a->strings["timeago.prefixFromNow"] = "timeago.prefixFromNow";
$a->strings["ago"] = "geleden";
@@ -755,9 +748,6 @@ $a->strings["about a year"] = "ongeveer een jaar";
$a->strings["%d years"] = "%d jaren";
$a->strings[" "] = " ";
$a->strings["timeago.numbers"] = "timeago.numbers";
-$a->strings["New window"] = "Nieuw venster";
-$a->strings["Open the selected location in a different window or browser tab"] = "Open de geselecteerde locatie in een ander venster of tab";
-$a->strings["User '%s' deleted"] = "Account '%s' verwijderd";
$a->strings["Male"] = "Man";
$a->strings["Female"] = "Vrouw";
$a->strings["Currently Male"] = "Momenteel man";
@@ -770,7 +760,6 @@ $a->strings["Transsexual"] = "Transseksueel";
$a->strings["Hermaphrodite"] = "Hermafrodiet";
$a->strings["Neuter"] = "Genderneutraal";
$a->strings["Non-specific"] = "Niet gespecificeerd";
-$a->strings["Other"] = "Anders";
$a->strings["Undecided"] = "Nog niet beslist";
$a->strings["Males"] = "Mannen";
$a->strings["Females"] = "Vrouwen";
@@ -815,31 +804,67 @@ $a->strings["Uncertain"] = "Onzeker";
$a->strings["It's complicated"] = "Het is ingewikkeld";
$a->strings["Don't care"] = "Maakt mij niks uit";
$a->strings["Ask me"] = "Vraag het me";
+$a->strings["Site Admin"] = "Hubbeheerder";
+$a->strings["Address Book"] = "Connecties";
+$a->strings["Mood"] = "Stemming";
+$a->strings["Probe"] = "Onderzoeken";
+$a->strings["Suggest"] = "Voorstellen";
+$a->strings["Random Channel"] = "Willekeurig kanaal";
+$a->strings["Invite"] = "Uitnodigen ";
+$a->strings["Features"] = "Extra functies";
+$a->strings["Language"] = "Taal";
+$a->strings["Post"] = "Bericht";
+$a->strings["Profile Photo"] = "Profielfoto";
+$a->strings["Update"] = "Bijwerken";
+$a->strings["Install"] = "Installeren";
+$a->strings["Purchase"] = "Aanschaffen";
$a->strings["Logged out."] = "Uitgelogd.";
$a->strings["Failed authentication"] = "Mislukte authenticatie";
$a->strings["Login failed."] = "Inloggen mislukt.";
-$a->strings["Can view my normal stream and posts"] = "Kan mijn normale kanaalstream en berichten bekijken";
-$a->strings["Can view my default channel profile"] = "Kan mijn standaard kanaalprofiel bekijken";
-$a->strings["Can view my photo albums"] = "Kan mijn fotoalbums bekijken";
-$a->strings["Can view my connections"] = "Kan een lijst met mijn connecties bekijken";
-$a->strings["Can view my file storage"] = "Kan mijn bestanden bekijken";
-$a->strings["Can view my webpages"] = "Kan mijn pagina's bekijken";
-$a->strings["Can send me their channel stream and posts"] = "Kan mij de inhoud van hun kanaal en berichten sturen";
-$a->strings["Can post on my channel page (\"wall\")"] = "Kan een bericht in mijn kanaal plaatsen";
-$a->strings["Can comment on or like my posts"] = "Kan op mijn berichten reageren of deze (niet) leuk vinden";
-$a->strings["Can send me private mail messages"] = "Kan mij privéberichten sturen";
-$a->strings["Can post photos to my photo albums"] = "Kan foto's aan mijn fotoalbums toevoegen";
-$a->strings["Can like/dislike stuff"] = "Kan dingen leuk of niet leuk vinden";
-$a->strings["Profiles and things other than posts/comments"] = "Profielen en dingen, buiten berichten en reacties";
-$a->strings["Can forward to all my channel contacts via post @mentions"] = "Kan naar al mijn kanaalconnecties berichten doorsturen met behulp van @vermeldingen+";
-$a->strings["Advanced - useful for creating group forum channels"] = "Geavanceerd - nuttig voor kanalen met een groep- cq. forumfunctie";
-$a->strings["Can chat with me (when available)"] = "Kan met mij chatten (wanneer beschikbaar)";
-$a->strings["Can write to my file storage"] = "Kan bestanden aan mijn bestandsopslag toevoegen";
-$a->strings["Can edit my webpages"] = "Kan mijn pagina's bewerken";
-$a->strings["Can source my public posts in derived channels"] = "Kan mijn openbare berichten als bron voor andere kanalen gebruiken";
-$a->strings["Somewhat advanced - very useful in open communities"] = "Enigszins geavanceerd (erg nuttig voor kanalen van forums/groepen)";
-$a->strings["Can administer my channel resources"] = "Kan mijn kanaal beheren";
-$a->strings["Extremely advanced. Leave this alone unless you know what you are doing"] = "Zeer geavanceerd. Laat dit met rust, behalve als je weet wat je doet.";
+$a->strings["Save to Folder"] = "In map opslaan";
+$a->strings["View all"] = "Toon alles";
+$a->strings["__ctx:noun__ Dislike"] = array(
+ 0 => "vindt dit niet leuk",
+ 1 => "vinden dit niet leuk",
+);
+$a->strings["Add Star"] = "Ster toevoegen";
+$a->strings["Remove Star"] = "Ster verwijderen";
+$a->strings["Toggle Star Status"] = "Ster toevoegen of verwijderen";
+$a->strings["starred"] = "met ster";
+$a->strings["Add Tag"] = "Label toevoegen";
+$a->strings["I like this (toggle)"] = "Vind ik leuk";
+$a->strings["I don't like this (toggle)"] = "Vind ik niet leuk";
+$a->strings["Share This"] = "Delen";
+$a->strings["share"] = "delen";
+$a->strings["%d comment"] = array(
+ 0 => "%d reactie",
+ 1 => "%d reacties weergeven",
+);
+$a->strings["View %s's profile - %s"] = "Profiel van %s bekijken - %s";
+$a->strings["to"] = "aan";
+$a->strings["via"] = "via";
+$a->strings["Wall-to-Wall"] = "Kanaal-naar-kanaal";
+$a->strings["via Wall-To-Wall:"] = "via kanaal-naar-kanaal";
+$a->strings["Save Bookmarks"] = "Bladwijzers opslaan";
+$a->strings["Add to Calendar"] = "Aan agenda toevoegen";
+$a->strings["Mark all seen"] = "Markeer alles als bekeken";
+$a->strings["__ctx:noun__ Likes"] = "vinden dit leuk";
+$a->strings["__ctx:noun__ Dislikes"] = "vinden dit niet leuk";
+$a->strings["This is you"] = "Dit ben jij";
+$a->strings["Submit"] = "Opslaan";
+$a->strings["Bold"] = "Vet";
+$a->strings["Italic"] = "Cursief";
+$a->strings["Underline"] = "Onderstrepen";
+$a->strings["Quote"] = "Citeren";
+$a->strings["Code"] = "Broncode";
+$a->strings["Image"] = "Afbeelding";
+$a->strings["Link"] = "Link";
+$a->strings["Video"] = "Video";
+$a->strings["Missing room name"] = "Naam chatkanaal ontbreekt";
+$a->strings["Duplicate room name"] = "Naam chatkanaal bestaat al";
+$a->strings["Invalid room specifier."] = "Ongeldige omschrijving chatkanaal";
+$a->strings["Room not found."] = "Chatkanaal niet gevonden";
+$a->strings["Room is full"] = "Chatkanaal is vol";
$a->strings["Set your current mood and tell your friends"] = "Noteer je huidige stemming en toon het aan je connecties";
$a->strings["Menu not found."] = "Menu niet gevonden.";
$a->strings["Menu element updated."] = "Menu-onderdeel geüpdatet.";
@@ -857,11 +882,11 @@ $a->strings["Add menu element"] = "Menu-element toevoegen";
$a->strings["Delete this menu item"] = "Dit menu-item verwijderen";
$a->strings["Edit this menu item"] = "Dit menu-item bewerken";
$a->strings["New Menu Element"] = "Nieuw menu-element";
-$a->strings["Menu Item Permissions"] = "Privacy-rechten menu-item";
+$a->strings["Menu Item Permissions"] = "Permissies menu-item";
$a->strings["(click to open/close)"] = "(klik om te openen/sluiten)";
$a->strings["Link text"] = "Linktekst";
$a->strings["URL of link"] = "URL of link";
-$a->strings["Use Red magic-auth if available"] = "Gebruik Reds magische authenticatie wanneer aanwezig";
+$a->strings["Use RedMatrix magic-auth if available"] = "Gebruik RedMatrix' magic-auth wanneer beschikbaar";
$a->strings["Open link in new window"] = "Open link in nieuw venster";
$a->strings["Order in list"] = "Volgorde in lijst";
$a->strings["Higher numbers will sink to bottom of listing"] = "Hogere nummers komen onderaan de lijst terecht";
@@ -870,10 +895,145 @@ $a->strings["Menu item deleted."] = "Menu-item verwijderd.";
$a->strings["Menu item could not be deleted."] = "Menu-item kon niet worden verwijderd.";
$a->strings["Edit Menu Element"] = "Menu-element bewerken";
$a->strings["Modify"] = "Wijzigen";
-$a->strings["sent you a private message"] = "stuurde jou een privébericht";
-$a->strings["added your channel"] = "voegde jouw kanaal toe";
-$a->strings["posted an event"] = "plaatste een gebeurtenis";
-$a->strings["network"] = "netwerk";
+$a->strings["Some blurb about what to do when you're new here"] = "Welkom op de RedMatrix. Klik op de tab ontdekken of klik rechtsboven op de <a href=\"directory\">kanalengids</a>, om kanalen te vinden. Rechtsboven vind je ook onze <a href=\"directory\">apps</a>, waar je vrijwel alles van de RedMatrix kan vinden. Voor <a href=\"directory\">hulp</a> met de RedMatrix klik je op het vraagteken of als je meer vragen hebt stel je die in het <a href=\"https://zothost.me/channel/support\">supportkanaal</a> (liefst in het Engels).";
+$a->strings["Maximum daily site registrations exceeded. Please try again tomorrow."] = "Maximum toegestane dagelijkse registraties op deze RedMatrix-hub bereikt. Probeer het morgen (UTC) nogmaals.";
+$a->strings["Please indicate acceptance of the Terms of Service. Registration failed."] = "Registratie mislukt. De gebruiksvoorwaarden dienen wel geaccepteerd te worden.";
+$a->strings["Passwords do not match."] = "Wachtwoorden komen niet met elkaar overeen.";
+$a->strings["Registration successful. Please check your email for validation instructions."] = "Registratie geslaagd. Controleer je e-mail voor instructies.";
+$a->strings["Your registration is pending approval by the site owner."] = "Jouw accountregistratie wacht op goedkeuring van de beheerder van deze RedMatrix-hub.";
+$a->strings["Your registration can not be processed."] = "Jouw registratie kan niet verwerkt worden.";
+$a->strings["Registration on this site/hub is by approval only."] = "Registraties op deze RedMatrix-hub moeten eerst worden goedgekeurd.";
+$a->strings["<a href=\"pubsites\">Register at another affiliated site/hub</a>"] = "<a href=\"pubsites\">Registreer op een andere RedMatrix-hub</a>";
+$a->strings["This site has exceeded the number of allowed daily account registrations. Please try again tomorrow."] = "Deze RedMatrix-hub heeft het maximum aantal dagelijks toegestane registraties bereikt. Probeer het morgen (UTC) nogmaals.";
+$a->strings["Terms of Service"] = "Gebruiksvoorwaarden";
+$a->strings["I accept the %s for this website"] = "Ik accepteer de %s van deze RedMatrix-hub";
+$a->strings["I am over 13 years of age and accept the %s for this website"] = "Ik accepteer de %s van deze RedMatrix-hub";
+$a->strings["Registration"] = "Registratie";
+$a->strings["Membership on this site is by invitation only."] = "Registreren op deze RedMatrix-hub kan alleen op uitnodiging.";
+$a->strings["Please enter your invitation code"] = "Vul jouw uitnodigingscode in";
+$a->strings["Your email address"] = "Jouw e-mailadres";
+$a->strings["Choose a password"] = "Geef een wachtwoord op";
+$a->strings["Please re-enter your password"] = "Geef het wachtwoord opnieuw op";
+$a->strings["- select -"] = "- kies map -";
+$a->strings["Invalid profile identifier."] = "Ongeldige profiel-identificator";
+$a->strings["Profile Visibility Editor"] = "Zichtbaarheid profiel ";
+$a->strings["Click on a contact to add or remove."] = "Klik op een connectie om deze toe te voegen of te verwijderen";
+$a->strings["Visible To"] = "Zichtbaar voor";
+$a->strings["All Connections"] = "Alle connecties";
+$a->strings["Failed to create source. No channel selected."] = "Aanmaken bron mislukt. Geen kanaal geselecteerd.";
+$a->strings["Source created."] = "Bron aangemaakt.";
+$a->strings["Source updated."] = "Bron aangemaakt.";
+$a->strings["*"] = "*";
+$a->strings["Manage remote sources of content for your channel."] = "Beheer externe bronnen met inhoud voor jouw kanaal";
+$a->strings["New Source"] = "Nieuwe bron";
+$a->strings["Import all or selected content from the following channel into this channel and distribute it according to your channel settings."] = "Importeer complete of gedeelde inhoud vanuit het volgende kanaal naar dit kanaal, en verdeel het vervolgens volgens jouw kanaalinstellingen.";
+$a->strings["Only import content with these words (one per line)"] = "Importeer alleen inhoud met deze woorden (één per regel)";
+$a->strings["Leave blank to import all public content"] = "Laat leeg om alle openbare inhoud te importeren";
+$a->strings["Channel Name"] = "Kanaalnaam";
+$a->strings["Source not found."] = "Bron niet gevonden";
+$a->strings["Edit Source"] = "Bron bewerken";
+$a->strings["Delete Source"] = "Bron verwijderen";
+$a->strings["Source removed"] = "Bron verwijderd";
+$a->strings["Unable to remove source."] = "Verwijderen bron mislukt.";
+$a->strings["Poke/Prod"] = "Aanstoten/porren";
+$a->strings["poke, prod or do other things to somebody"] = "aanstoten, porren of andere dingen met iemand doen";
+$a->strings["Recipient"] = "Ontvanger";
+$a->strings["Choose what you wish to do to recipient"] = "Kies wat je met de ontvanger wil doen";
+$a->strings["Make this post private"] = "Maak dit bericht privé";
+$a->strings["Authorize application connection"] = "Geef toestemming voor applicatiekoppeling";
+$a->strings["Return to your app and insert this Securty Code:"] = "Ga terug naar je app en voeg deze beveiligingscode in:";
+$a->strings["Please login to continue."] = "Inloggen om verder te kunnen gaan.";
+$a->strings["Do you want to authorize this application to access your posts and contacts, and/or create new posts for you?"] = "Wil je deze applicatie toestemming geven om jouw berichten en connecties te zien, en/of nieuwe berichten voor jou te plaatsen?";
+$a->strings["Yes"] = "Ja";
+$a->strings["No"] = "Nee";
+$a->strings["Public access denied."] = "Openbare toegang geweigerd.";
+$a->strings["Item not available."] = "Item is niet aanwezig.";
+$a->strings["Fetching URL returns error: %1\$s"] = "Ophalen URL gaf een foutmelding terug: %1\$s";
+$a->strings["Invalid item."] = "Ongeldig item.";
+$a->strings["Channel not found."] = "Kanaal niet gevonden.";
+$a->strings["Page not found."] = "Pagina niet gevonden.";
+$a->strings["%1\$s is following %2\$s's %3\$s"] = "%1\$s volgt het %3\$s van %2\$s";
+$a->strings["Block Name"] = "Bloknaam";
+$a->strings["Red Matrix Server - Setup"] = "RedMatrix Server - Setup";
+$a->strings["Could not connect to database."] = "Could not connect to database.";
+$a->strings["Could not connect to specified site URL. Possible SSL certificate or DNS issue."] = "Could not connect to specified hub URL. Possible SSL certificate or DNS issue.";
+$a->strings["Could not create table."] = "Could not create table.";
+$a->strings["Your site database has been installed."] = "Your hub database has been installed.";
+$a->strings["You may need to import the file \"install/schema_xxx.sql\" manually using a database client."] = "You may need to import the file \"install/schema_xxx.sql\" manually using a database client.";
+$a->strings["Please see the file \"install/INSTALL.txt\"."] = "Please see the file \"install/INSTALL.txt\".";
+$a->strings["System check"] = "System check";
+$a->strings["Next"] = "Volgende";
+$a->strings["Check again"] = "Check again";
+$a->strings["Database connection"] = "Database connection";
+$a->strings["In order to install Red Matrix we need to know how to connect to your database."] = "In order to install RedMatrix we need to know how to connect to your database.";
+$a->strings["Please contact your hosting provider or site administrator if you have questions about these settings."] = "Please contact your hosting provider or site administrator if you have questions about these settings.";
+$a->strings["The database you specify below should already exist. If it does not, please create it before continuing."] = "The database you specify below should already exist. If it does not, please create it before continuing.";
+$a->strings["Database Server Name"] = "Database Server Name";
+$a->strings["Default is localhost"] = "Default is localhost";
+$a->strings["Database Port"] = "Database Port";
+$a->strings["Communication port number - use 0 for default"] = "Communication port number - use 0 for default";
+$a->strings["Database Login Name"] = "Database Login Name";
+$a->strings["Database Login Password"] = "Database Login Password";
+$a->strings["Database Name"] = "Database Name";
+$a->strings["Database Type"] = "Database Type";
+$a->strings["Site administrator email address"] = "Hub administrator email address";
+$a->strings["Your account email address must match this in order to use the web admin panel."] = "Your account email address must match this in order to use the web admin panel.";
+$a->strings["Website URL"] = "Hub URL";
+$a->strings["Please use SSL (https) URL if available."] = "Please use SSL (https) URL if available.";
+$a->strings["Please select a default timezone for your website"] = "Please select a default timezone for your hub";
+$a->strings["Site settings"] = "Hub settings";
+$a->strings["Could not find a command line version of PHP in the web server PATH."] = "Could not find a command line version of PHP in the web server PATH.";
+$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."] = "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.";
+$a->strings["PHP executable path"] = "PHP executable path";
+$a->strings["Enter full path to php executable. You can leave this blank to continue the installation."] = "Enter full path to php executable. You can leave this blank to continue the installation.";
+$a->strings["Command line PHP"] = "Command line PHP";
+$a->strings["The command line version of PHP on your system does not have \"register_argc_argv\" enabled."] = "The command line version of PHP on your system does not have \"register_argc_argv\" enabled.";
+$a->strings["This is required for message delivery to work."] = "This is required for message delivery to work.";
+$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"] = "Error: the \"openssl_pkey_new\" function on this system is not able to generate encryption keys";
+$a->strings["If running under Windows, please see \"http://www.php.net/manual/en/openssl.installation.php\"."] = "If running under Windows, please see \"http://www.php.net/manual/en/openssl.installation.php\".";
+$a->strings["Generate encryption keys"] = "Generate encryption keys";
+$a->strings["libCurl PHP module"] = "libCurl PHP module";
+$a->strings["GD graphics PHP module"] = "GD graphics PHP module";
+$a->strings["OpenSSL PHP module"] = "OpenSSL PHP module";
+$a->strings["mysqli or postgres PHP module"] = "mysqli or postgres PHP module";
+$a->strings["mb_string PHP module"] = "mb_string PHP module";
+$a->strings["mcrypt PHP module"] = "mcrypt PHP module";
+$a->strings["Apache mod_rewrite module"] = "Apache mod_rewrite module";
+$a->strings["Error: Apache webserver mod-rewrite module is required but not installed."] = "Error: Apache webserver mod-rewrite module is required but not installed.";
+$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"] = "Error: proc_open is required but is either not installed or has been disabled in php.ini";
+$a->strings["Error: libCURL PHP module required but not installed."] = "Error: libCURL PHP module required but not installed.";
+$a->strings["Error: GD graphics PHP module with JPEG support required but not installed."] = "Error: GD graphics PHP module with JPEG support required but not installed.";
+$a->strings["Error: openssl PHP module required but not installed."] = "Error: openssl PHP module required but not installed.";
+$a->strings["Error: mysqli or postgres PHP module required but neither are installed."] = "Error: mysqli or postgres PHP module required but neither are installed.";
+$a->strings["Error: mb_string PHP module required but not installed."] = "Error: mb_string PHP module required but not installed.";
+$a->strings["Error: mcrypt PHP module required but not installed."] = "Error: mcrypt PHP module required but not installed.";
+$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."] = "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.";
+$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."] = "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.";
+$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."] = "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.";
+$a->strings["You can alternatively skip this procedure and perform a manual installation. Please see the file \"install/INSTALL.txt\" for instructions."] = "You can alternatively skip this procedure and perform a manual installation. Please see the file \"install/INSTALL.txt\" for instructions.";
+$a->strings[".htconfig.php is writable"] = ".htconfig.php is writable";
+$a->strings["Red uses the Smarty3 template engine to render its web views. Smarty3 compiles templates to PHP to speed up rendering."] = "Red uses the Smarty3 template engine to render its web views. Smarty3 compiles templates to PHP to speed up rendering.";
+$a->strings["In order to store these compiled templates, the web server needs to have write access to the directory %s under the Red top level folder."] = "In order to store these compiled templates, the web server needs to have write access to the directory %s under the Red top level folder.";
+$a->strings["Please ensure that the user that your web server runs as (e.g. www-data) has write access to this folder."] = "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 %s only--not the template files (.tpl) that it contains."] = "Note: as a security measure, you should give the web server write access to %s only--not the template files (.tpl) that it contains.";
+$a->strings["%s is writable"] = "%s is writable";
+$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 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"] = "store is writable";
+$a->strings["SSL certificate cannot be validated. Fix certificate or disable https access to this site."] = "SSL certificate cannot be validated. Fix certificate or disable https access to this hub.";
+$a->strings["If you have https access to your website or allow connections to TCP port 443 (the https: port), you MUST use a browser-valid certificate. You MUST NOT use self-signed certificates!"] = "If you have https access to your hub or allow connections to TCP port 443 (the https: port), you MUST use a browser-valid certificate. You MUST NOT use self-signed certificates!";
+$a->strings["This restriction is incorporated because public posts from you may for example contain references to images on your own hub."] = "This restriction is incorporated because public posts from you may for example contain references to images on your own hub.";
+$a->strings["If your certificate is not recognized, members of other sites (who may themselves have valid certificates) will get a warning message on their own site complaining about security issues."] = "If your certificate is not recognized, members of other hubs (who may themselves have valid certificates) will get a warning message on their own hub complaining about security issues.";
+$a->strings["This can cause usability issues elsewhere (not just on your own site) so we must insist on this requirement."] = "This can cause usability issues elsewhere (not just on your own hub) so we must insist on this requirement.";
+$a->strings["Providers are available that issue free certificates which are browser-valid."] = "Providers are available that issue free certificates which are browser-valid.";
+$a->strings["SSL certificate validation"] = "SSL certificate validation";
+$a->strings["Url rewrite in .htaccess is not working. Check your server configuration.Test: "] = "Url rewrite in .htaccess is not working. Check your server configuration.Test: ";
+$a->strings["Url rewrite is working"] = "Url rewrite is working";
+$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."] = "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.";
+$a->strings["Errors encountered creating database tables."] = "Errors encountered creating database tables.";
+$a->strings["<h1>What next</h1>"] = "<h1>Wat nu</h1>";
+$a->strings["IMPORTANT: You will need to [manually] setup a scheduled task for the poller."] = "IMPORTANT: You will need to [manually] setup a scheduled task for the poller.";
$a->strings["Name is required"] = "Naam is vereist";
$a->strings["Key and Secret are required"] = "Key en secret zijn vereist";
$a->strings["Passwords do not match. Password unchanged."] = "Wachtwoorden komen niet overeen. Wachtwoord onveranderd.";
@@ -915,6 +1075,7 @@ $a->strings["Additional Features"] = "Extra functies";
$a->strings["Connector Settings"] = "Instellingen externe koppelingen";
$a->strings["No special theme for mobile devices"] = "Geen speciaal thema voor mobiele apparaten";
$a->strings["%s - (Experimental)"] = "%s - (experimenteel)";
+$a->strings["mobile"] = "mobiel";
$a->strings["Display Settings"] = "Weergave-instellingen";
$a->strings["Display Theme:"] = "Gebruik thema:";
$a->strings["Mobile Theme:"] = "Mobiel thema:";
@@ -924,7 +1085,14 @@ $a->strings["Minimum of 10 seconds, no maximum"] = "Minimaal 10 seconde, geen ma
$a->strings["Maximum number of conversations to load at any time:"] = "Maximaal aantal conversaties die per keer geladen worden:";
$a->strings["Maximum of 100 items"] = "Maximaal 100 conversaties";
$a->strings["Don't show emoticons"] = "Geen emoticons weergeven";
+$a->strings["Link post titles to source"] = "Berichtkoppen naar originele locatie linken";
$a->strings["System Page Layout Editor - (advanced)"] = "Lay-out bewerken van systeempagina's (geavanceerd)";
+$a->strings["Use blog/list mode on channel page"] = "Gebruik blog/lijst-modus op kanaalpagina";
+$a->strings["(comments displayed separately)"] = "(reacties worden afzonderlijk weergeven)";
+$a->strings["Use blog/list mode on matrix page"] = "Gebruik blog/lijst-modus op matrixpagina";
+$a->strings["Channel page max height of content (in pixels)"] = "Maximale hoogte berichtinhoud op kanaalpagina (in pixels)";
+$a->strings["click to expand content exceeding this height"] = "klik om inhoud uit te klappen die deze hoogte overschrijdt";
+$a->strings["Matrix page max height of content (in pixels)"] = "Maximale hoogte berichtinhoud op matrixpagina (in pixels)";
$a->strings["Nobody except yourself"] = "Niemand, behalve jezelf";
$a->strings["Only those you specifically allow"] = "Alleen connecties met uitdrukkelijke toestemming";
$a->strings["Approved connections"] = "Geaccepteerde connecties";
@@ -934,8 +1102,6 @@ $a->strings["Anybody in this network"] = "Iedereen in dit netwerk";
$a->strings["Anybody authenticated"] = "Geauthenticeerd";
$a->strings["Anybody on the internet"] = "Iedereen op het internet";
$a->strings["Publish your default profile in the network directory"] = "Publiceer je standaardprofiel in de kanalengids";
-$a->strings["No"] = "Nee";
-$a->strings["Yes"] = "Ja";
$a->strings["Allow us to suggest you as a potential friend to new members?"] = "Sta ons toe om jouw kanaal als mogelijke connectie voor te stellen aan nieuwe kanalen";
$a->strings["or"] = "of";
$a->strings["Your channel address is"] = "Jouw kanaaladres is";
@@ -946,8 +1112,9 @@ $a->strings["Default Post Location:"] = "Standaardlocatie bericht:";
$a->strings["Geographical location to display on your posts"] = "Geografische locatie die bij het bericht moet worden vermeld";
$a->strings["Use Browser Location:"] = "Locatie van webbrowser gebruiken:";
$a->strings["Adult Content"] = "Inhoud voor volwassenen";
-$a->strings["This channel frequently or regularly publishes adult content. (Please tag any adult material and/or nudity with #NSFW)"] = "Dit kanaal publiceert regelmatig of vaak materiaal dat alleen geschikt is voor volwassen. (Gebruik de hashtag #NSFW in berichten met een seksueel getinte inhoud of ander voor minderjarigen ongeschikt materiaal)";
-$a->strings["Security and Privacy Settings"] = "Veiligheids- privacy-instellingen";
+$a->strings["This channel frequently or regularly publishes adult content. (Please tag any adult material and/or nudity with #NSFW)"] = "Dit kanaal publiceert regelmatig of vaak materiaal dat alleen geschikt is voor volwassenen. (Gebruik de hashtag #NSFW in berichten met een seksueel getinte inhoud of ander voor minderjarigen ongeschikt materiaal)";
+$a->strings["Security and Privacy Settings"] = "Veiligheids- en privacy-instellingen";
+$a->strings["Your permissions are already configured. Click to view/adjust"] = "Jouw permissies zijn al ingesteld. Klik om ze te bekijken of aan te passen.";
$a->strings["Hide my online presence"] = "Verberg mijn aanwezigheid";
$a->strings["Prevents displaying in your profile that you are online"] = "Voorkomt dat op je kanaal te zien valt dat je momenteel op de RedMatrix aanwezig bent";
$a->strings["Simple Privacy Settings:"] = "Eenvoudige privacy-instellingen:";
@@ -962,13 +1129,14 @@ $a->strings["Expire other channel content after this many days"] = "Inhoud van a
$a->strings["0 or blank prevents expiration"] = "0 of leeg voorkomt het verlopen";
$a->strings["Maximum Friend Requests/Day:"] = "Maximum aantal connectieverzoeken per dag:";
$a->strings["May reduce spam activity"] = "Kan eventuele spam verminderen";
-$a->strings["Default Post Permissions"] = "Standaard privacy-rechten voor nieuwe berichten";
+$a->strings["Default Post Permissions"] = "Standaard permissies voor nieuwe berichten";
+$a->strings["Channel permissions category:"] = "Kanaaltype en -permissies:";
$a->strings["Maximum private messages per day from unknown people:"] = "Maximum aantal privé-berichten per dag van onbekende personen:";
$a->strings["Useful to reduce spamming"] = "Kan eventuele spam verminderen";
$a->strings["Notification Settings"] = "Notificatie-instellingen";
$a->strings["By default post a status message when:"] = "Plaats automatisch een statusbericht wanneer:";
$a->strings["accepting a friend request"] = "Een connectieverzoek wordt geaccepteerd";
-$a->strings["joining a forum/community"] = "Je lid wordt van een groep/forum";
+$a->strings["joining a forum/community"] = "Je lid wordt van een forum/groep";
$a->strings["making an <em>interesting</em> profile change"] = "Er sprake is van een <em>interessante</em> profielwijziging";
$a->strings["Send a notification email when:"] = "Verzend een notificatie per e-mail wanneer:";
$a->strings["You receive a connection request"] = "Je een connectieverzoek ontvangt";
@@ -979,126 +1147,55 @@ $a->strings["You receive a private message"] = "Je een privé-bericht ontvangt";
$a->strings["You receive a friend suggestion"] = "Je een kanaalvoorstel ontvangt";
$a->strings["You are tagged in a post"] = "Je expliciet in een bericht bent genoemd";
$a->strings["You are poked/prodded/etc. in a post"] = "Je bent in een bericht aangestoten/gepord/etc.";
+$a->strings["Show visual notifications including:"] = "Toon de volgende zichtbare notificaties:";
+$a->strings["Unseen matrix activity"] = "Niet bekeken matrix-activiteit";
+$a->strings["Unseen channel activity"] = "Niet bekeken kanaal-activiteit";
+$a->strings["Unseen private messages"] = "Niet bekeken privéberichten";
+$a->strings["Recommended"] = "Aanbevolen";
+$a->strings["Upcoming events"] = "Aankomende gebeurtenissen";
+$a->strings["Events today"] = "Gebeurtissen van vandaag";
+$a->strings["Upcoming birthdays"] = "Aankomende verjaardagen";
+$a->strings["Not available in all themes"] = "Niet in alle thema's beschikbaar";
+$a->strings["System (personal) notifications"] = "(Persoonlijke) systeemnotificaties";
+$a->strings["System info messages"] = "Systeemmededelingen";
+$a->strings["System critical alerts"] = "Kritische systeemwaarschuwingen";
+$a->strings["New connections"] = "Nieuwe connecties";
+$a->strings["System Registrations"] = "Nieuwe accountregistraties op deze hub";
+$a->strings["Notify me of events this many days in advance"] = "Herinner mij zoveel dagen van te voren aan gebeurtenissen";
+$a->strings["Must be greater than 0"] = "Moet hoger dan 0 zijn";
$a->strings["Advanced Account/Page Type Settings"] = "Instellingen geavanceerd account/paginatype";
$a->strings["Change the behaviour of this account for special situations"] = "Verander het gedrag van dit account voor speciale situaties";
$a->strings["Please enable expert mode (in <a href=\"settings/features\">Settings > Additional features</a>) to adjust!"] = "Schakel de expertmodus in (in <a href=\"settings/features\">Instellingen > Extra functies</a>) om aan te kunnen passen!";
$a->strings["Miscellaneous Settings"] = "Diverse instellingen";
$a->strings["Personal menu to display in your channel pages"] = "Persoonlijk menu om op je kanaalpagina's weer te geven";
$a->strings["Remove this channel"] = "Verwijder dit kanaal";
-$a->strings["Poke/Prod"] = "Aanstoten/porren";
-$a->strings["poke, prod or do other things to somebody"] = "aanstoten, porren of andere dingen met iemand doen";
-$a->strings["Recipient"] = "Ontvanger";
-$a->strings["Choose what you wish to do to recipient"] = "Kies wat je met de ontvanger wil doen";
-$a->strings["Make this post private"] = "Maak dit bericht privé";
-$a->strings["Authorize application connection"] = "Geef toestemming voor applicatiekoppeling";
-$a->strings["Return to your app and insert this Securty Code:"] = "Ga terug naar je app en voeg deze beveiligingscode in:";
-$a->strings["Please login to continue."] = "Inloggen om verder te kunnen gaan.";
-$a->strings["Do you want to authorize this application to access your posts and contacts, and/or create new posts for you?"] = "Wil je deze applicatie toestemming geven om jouw berichten en connecties te zien, en/of nieuwe berichten voor jou te plaatsen?";
-$a->strings["Remote authentication blocked. You are logged into this site locally. Please logout and retry."] = "Authenticatie op afstand geblokkeerd. Je bent lokaal op deze hub ingelogd. Uitloggen en opnieuw proberen.";
-$a->strings["Welcome %s. Remote authentication successful."] = "Welkom %s. Authenticatie op afstand geslaagd.";
-$a->strings["Item not available."] = "Item is niet aanwezig.";
-$a->strings["Fetching URL returns error: %1\$s"] = "Ophalen URL gaf een foutmelding terug: %1\$s";
-$a->strings["Invalid item."] = "Ongeldig item.";
-$a->strings["Channel not found."] = "Kanaal niet gevonden.";
-$a->strings["Page not found."] = "Pagina niet gevonden.";
-$a->strings["Image uploaded but image cropping failed."] = "Afbeelding geüpload, maar afbeelding kon niet worden bijgesneden. ";
-$a->strings["Image resize failed."] = "Afbeelding kon niet van grootte veranderd worden.";
-$a->strings["Shift-reload the page or clear browser cache if the new photo does not display immediately."] = "Vernieuw de pagina met shift+R of shift+F5, of leeg je browserbuffer, wanneer de nieuwe foto niet meteen wordt weergegeven.";
-$a->strings["Image exceeds size limit of %d"] = "Afbeeldingsgrootte overschrijdt het limiet van %d";
-$a->strings["Unable to process image."] = "Niet in staat om afbeelding te verwerken.";
-$a->strings["Photo not available."] = "Foto niet beschikbaar.";
-$a->strings["Upload File:"] = "Bestand uploaden:";
-$a->strings["Select a profile:"] = "Kies een profiel:";
-$a->strings["Upload Profile Photo"] = "Profielfoto uploaden";
-$a->strings["skip this step"] = "sla deze stap over";
-$a->strings["select a photo from your photo albums"] = "Kies een foto uit jouw fotoalbums";
-$a->strings["Crop Image"] = "Afbeelding bijsnijden";
-$a->strings["Please adjust the image cropping for optimum viewing."] = "Snij de afbeelding zo uit dat deze optimaal wordt weergegeven.";
-$a->strings["Done Editing"] = "Klaar met bewerken";
-$a->strings["Image uploaded successfully."] = "Uploaden afbeelding geslaagd";
-$a->strings["Image upload failed."] = "Uploaden afbeelding mislukt";
-$a->strings["Image size reduction [%s] failed."] = "Verkleinen [%s] van afbeelding mislukt.";
-$a->strings["Block Name"] = "Bloknaam";
-$a->strings["Profile not found."] = "Profiel niet gevonden.";
-$a->strings["Profile deleted."] = "Profiel verwijderd.";
-$a->strings["Profile-"] = "Profiel-";
-$a->strings["New profile created."] = "Nieuw profiel aangemaakt.";
-$a->strings["Profile unavailable to clone."] = "Profiel niet beschikbaar om te klonen";
-$a->strings["Profile unavailable to export."] = "Geen profiel beschikbaar om te exporteren";
-$a->strings["Profile Name is required."] = "Profielnaam is vereist";
-$a->strings["Marital Status"] = "Huwelijke status";
-$a->strings["Romantic Partner"] = "Romantische partner";
-$a->strings["Likes"] = "Houdt van";
-$a->strings["Dislikes"] = "Houdt niet van";
-$a->strings["Work/Employment"] = "Werk/arbeid";
-$a->strings["Religion"] = "Religie";
-$a->strings["Political Views"] = "Politieke overtuigingen";
-$a->strings["Gender"] = "Geslacht";
-$a->strings["Sexual Preference"] = "Seksuele voorkeur";
-$a->strings["Homepage"] = "Homepage";
-$a->strings["Interests"] = "Interesses";
-$a->strings["Address"] = "Kanaaladres";
-$a->strings["Location"] = "Locatie";
-$a->strings["Profile updated."] = "Profiel bijgewerkt";
-$a->strings["Hide your contact/friend list from viewers of this profile?"] = "Laat de lijst met connecties niet aan bezoekers van dit profiel zien.";
-$a->strings["Edit Profile Details"] = "Profiel bewerken";
-$a->strings["View this profile"] = "Profiel weergeven";
-$a->strings["Change Profile Photo"] = "Profielfoto wijzigen";
-$a->strings["Create a new profile using these settings"] = "Een nieuw profiel aanmaken met dit profiel als basis";
-$a->strings["Clone this profile"] = "Dit profiel klonen";
-$a->strings["Delete this profile"] = "Dit profiel verwijderen";
-$a->strings["Import profile from file"] = "Profiel vanuit bestand importeren";
-$a->strings["Export profile to file"] = "Profiel naar bestand exporteren";
-$a->strings["Profile Name:"] = "Profielnaam:";
-$a->strings["Your Full Name:"] = "Jouw volledige naam:";
-$a->strings["Title/Description:"] = "Titel/omschrijving:";
-$a->strings["Your Gender:"] = "Jouw geslacht";
-$a->strings["Birthday (%s):"] = "Geboortedag (%s)";
-$a->strings["Street Address:"] = "Straat en huisnummer:";
-$a->strings["Locality/City:"] = "Woonplaats:";
-$a->strings["Postal/Zip Code:"] = "Postcode:";
-$a->strings["Country:"] = "Land:";
-$a->strings["Region/State:"] = "Provincie/gewest/deelstaat:";
-$a->strings["<span class=\"heart\">&hearts;</span> Marital Status:"] = "<span class=\"heart\">&hearts;</span> Huwelijkse staat:";
-$a->strings["Who: (if applicable)"] = "Wie (wanneer toepasselijk):";
-$a->strings["Examples: cathy123, Cathy Williams, cathy@example.com"] = "Voorbeelden: karin123, Karin Jansen, cathy@voorbeeld.nl";
-$a->strings["Since [date]:"] = "Sinds [datum]:";
-$a->strings["Homepage URL:"] = "Adres homepage:";
-$a->strings["Religious Views:"] = "Religieuze overtuigingen";
-$a->strings["Keywords:"] = "Trefwoorden";
-$a->strings["Example: fishing photography software"] = "Voorbeeld: muziek, fotografie, software";
-$a->strings["Used in directory listings"] = "Wordt in de kanalengids gebruikt";
-$a->strings["Tell us about yourself..."] = "Vertel ons iets over jezelf...";
-$a->strings["Hobbies/Interests"] = "Hobby's/interesses";
-$a->strings["Contact information and Social Networks"] = "Contactinformatie en sociale netwerken";
-$a->strings["My other channels"] = "Mijn andere kanalen";
-$a->strings["Musical interests"] = "Muzikale interesses";
-$a->strings["Books, literature"] = "Boeken/literatuur";
-$a->strings["Television"] = "Televisie";
-$a->strings["Film/dance/culture/entertainment"] = "Film/dans/cultuur/entertainment";
-$a->strings["Love/romance"] = "Liefde/romantiek";
-$a->strings["Work/employment"] = "Werk/arbeid";
-$a->strings["School/education"] = "School/onderwijs";
-$a->strings["This is your default profile."] = "Dit is jouw standaardprofiel";
-$a->strings["Age: "] = "Leeftijd:";
-$a->strings["Edit/Manage Profiles"] = "Profielen bewerken/beheren";
-$a->strings["Add profile things"] = "Dingen aan je profiel toevoegen";
-$a->strings["Include desirable objects in your profile"] = "Voeg door jou gewenste dingen aan jouw profiel toe";
-$a->strings["Bookmark added"] = "Bladwijzer toegevoegd";
-$a->strings["My Bookmarks"] = "Mijn bladwijzers";
-$a->strings["My Connections Bookmarks"] = "Bladwijzers van mijn connecties";
-$a->strings["Invalid profile identifier."] = "Ongeldige profiel-identificator";
-$a->strings["Profile Visibility Editor"] = "Zichtbaarheid profiel ";
-$a->strings["Click on a contact to add or remove."] = "Klik op een connectie om deze toe te voegen of te verwijderen";
-$a->strings["Visible To"] = "Zichtbaar voor";
-$a->strings["All Connections"] = "Alle connecties";
+$a->strings["Event can not end before it has started."] = "Gebeurtenis kan niet eindigen voordat het is begonnen";
+$a->strings["Event title and start time are required."] = "Titel en begintijd van gebeurtenis zijn vereist.";
+$a->strings["Event not found."] = "Gebeurtenis niet gevonden";
+$a->strings["l, F j"] = "l j F";
+$a->strings["Edit event"] = "Gebeurtenis bewerken";
+$a->strings["Create New Event"] = "Nieuwe gebeurtenis aanmaken";
+$a->strings["Previous"] = "Vorige";
+$a->strings["Export"] = "Exporteren";
+$a->strings["Event details"] = "Details van gebeurtenis";
+$a->strings["Starting date and Title are required."] = "Begintijd en titel zijn vereist.";
+$a->strings["Categories (comma-separated list)"] = "Categorieën (door komma's gescheiden lijst)";
+$a->strings["Event Starts:"] = "Begin gebeurtenis:";
+$a->strings["Required"] = "Vereist";
+$a->strings["Finish date/time is not known or not relevant"] = "Einddatum/-tijd is niet bekend of niet relevant";
+$a->strings["Event Finishes:"] = "Einde gebeurtenis:";
+$a->strings["Adjust for viewer timezone"] = "Aanpassen aan de tijdzone van wie deze gebeurtenis bekijkt";
+$a->strings["Description:"] = "Omschrijving:";
+$a->strings["Title:"] = "Titel:";
+$a->strings["Share this event"] = "Deel deze gebeurtenis";
$a->strings["Public Sites"] = "Openbare hubs";
$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."] = "Op de hier weergegeven hubs kan iedereen zich voor de RedMatrix aanmelden. Alle hubs in de Matrix zijn met elkaar verbonden, dus maakt het qua lidmaatschap niet uit waar je je aanmeldt. Op sommige hubs heb je eerst goedkeuring nodig en sommige hubs vereisen betaalde abonnementen voor uitbreidingen. <strong>Mogelijk</strong> wordt hierover op de hub zelf meer informatie gegeven.";
$a->strings["Site URL"] = "URL hub";
$a->strings["Access Type"] = "Toegangstype";
$a->strings["Registration Policy"] = "Registratiebeleid";
+$a->strings["Location"] = "Locatie";
$a->strings["You must be logged in to see this page."] = "Je moet zijn ingelogd om deze pagina te kunnen bekijken.";
-$a->strings["Insufficient permissions. Request redirected to profile page."] = "Onvoldoende privacy-rechten. Doorgestuurd naar profielpagina.";
+$a->strings["Insufficient permissions. Request redirected to profile page."] = "Onvoldoende permissies. Doorgestuurd naar profielpagina.";
$a->strings["Select a bookmark folder"] = "Kies een bladwijzermap";
$a->strings["Save Bookmark"] = "Bladwijzer opslaan";
$a->strings["URL of bookmark"] = "URL van bladwijzer";
@@ -1113,28 +1210,28 @@ $a->strings["Bookmark this room"] = "Chatkanaal aan bladwijzers toevoegen";
$a->strings["New Chatroom"] = "Nieuw chatkanaal";
$a->strings["Chatroom Name"] = "Naam chatkanaal";
$a->strings["%1\$s's Chatrooms"] = "Chatkanalen van %1\$s";
-$a->strings["Maximum daily site registrations exceeded. Please try again tomorrow."] = "Maximum toegestane dagelijkse registraties op deze RedMatrix-hub bereikt. Probeer het morgen (UTC) nogmaals.";
-$a->strings["Please indicate acceptance of the Terms of Service. Registration failed."] = "Registratie mislukt. De gebruiksvoorwaarden dienen wel geaccepteerd te worden.";
-$a->strings["Passwords do not match."] = "Wachtwoorden komen niet met elkaar overeen.";
-$a->strings["Registration successful. Please check your email for validation instructions."] = "Registratie geslaagd. Controleer je e-mail voor instructies.";
-$a->strings["Your registration is pending approval by the site owner."] = "Jouw accountregistratie wacht op goedkeuring van de beheerder van deze RedMatrix-hub.";
-$a->strings["Your registration can not be processed."] = "Jouw registratie kan niet verwerkt worden.";
-$a->strings["Registration on this site/hub is by approval only."] = "Registraties op deze RedMatrix-hub moeten eerst worden goedgekeurd.";
-$a->strings["<a href=\"pubsites\">Register at another affiliated site/hub</a>"] = "<a href=\"pubsites\">Registreer op een andere RedMatrix-hub</a>";
-$a->strings["This site has exceeded the number of allowed daily account registrations. Please try again tomorrow."] = "Deze RedMatrix-hub heeft het maximum aantal dagelijks toegestane registraties bereikt. Probeer het morgen (UTC) nogmaals.";
-$a->strings["Terms of Service"] = "Gebruiksvoorwaarden";
-$a->strings["I accept the %s for this website"] = "Ik accepteer de %s van deze RedMatrix-hub";
-$a->strings["I am over 13 years of age and accept the %s for this website"] = "Ik accepteer de %s van deze RedMatrix-hub";
-$a->strings["Registration"] = "Registratie";
-$a->strings["Membership on this site is by invitation only."] = "Registreren op deze RedMatrix-hub kan alleen op uitnodiging.";
-$a->strings["Please enter your invitation code"] = "Vul jouw uitnodigingscode in";
-$a->strings["Your email address"] = "Jouw e-mailadres";
-$a->strings["Choose a password"] = "Geef een wachtwoord op";
-$a->strings["Please re-enter your password"] = "Geef het wachtwoord opnieuw op";
+$a->strings["Version %s"] = "Versie %s";
+$a->strings["Installed plugins/addons/apps:"] = "Ingeschakelde plug-ins/add-ons/apps:";
+$a->strings["No installed plugins/addons/apps"] = "Geen ingeschakelde plug-ins/add-ons/apps";
+$a->strings["Red"] = "Red";
+$a->strings["This is a hub of the Red Matrix - a global cooperative network of decentralized privacy enhanced websites."] = "Dit is een hub van de RedMatrix - een wereldwijd coöperatief netwerk van gedecentraliseerde websites met verbeterde privacy.";
+$a->strings["Running at web location"] = "Draaiend op weblocatie";
+$a->strings["Please visit <a href=\"http://getzot.com\">GetZot.com</a> to learn more about the Red Matrix."] = "Bezoek <a href=\"http://redmatrix.me\">RedMatrix.me</a> om meer te leren over de RedMatrix.";
+$a->strings["Bug reports and issues: please visit"] = "Bugrapporten en andere kwesties: bezoek";
+$a->strings["Suggestions, praise, etc. - please email \"redmatrix\" at librelist - dot com"] = "Voorstellen, lofbetuigingen, enz. - e-mail \"redmatrix\" at librelist - dot com";
+$a->strings["Site Administrators"] = "Hubbeheerders: ";
$a->strings["Away"] = "Afwezig";
$a->strings["Online"] = "Online";
$a->strings["Please login."] = "Inloggen.";
-$a->strings["Red Matrix - Guests: Username: {your email address}, Password: +++"] = "RedMatrix - gasten: Gebruikersnaam: {jouw e-mailadres}, wachtwoord: +++";
+$a->strings["Continue"] = "Ga verder";
+$a->strings["Premium Channel Setup"] = "Instellen premiumkanaal ";
+$a->strings["Enable premium channel connection restrictions"] = "Restricties voor connecties van premiumkanaal toestaan";
+$a->strings["Please enter your restrictions or conditions, such as paypal receipt, usage guidelines, etc."] = "Vul je restricties of voorwaarden in, zoals een paypal-afschrift, voorschriften voor leden, enz.";
+$a->strings["This channel may require additional steps or acknowledgement of the following conditions prior to connecting:"] = "Dit kanaal kan extra stappen of het accepteren van de volgende voorwaarden vereisen, voordat de connectie wordt geaccepteerd:";
+$a->strings["Potential connections will then see the following text before proceeding:"] = "Mogelijke connecties zullen dan de volgende tekst zien voordat ze verder kunnen:";
+$a->strings["By continuing, I certify that I have complied with any instructions provided on this page."] = "Door verder te gaan ga ik automatisch akkoord met alle voorwaarden en aanwijzingen op deze pagina.";
+$a->strings["(No specific instructions have been provided by the channel owner.)"] = "(Er zijn geen speciale voorwaarden en aanwijzingen door de kanaal-eigenaar verstrekt) ";
+$a->strings["Restricted or Premium Channel"] = "Beperkt of premiumkanaal";
$a->strings["Channel removals are not allowed within 48 hours of changing the account password."] = "Het verwijderen van een kanaal is niet toegestaan binnen 48 uur nadat het wachtwoord van het account is veranderd.";
$a->strings["Remove This Channel"] = "Verwijder dit kanaal";
$a->strings["This will completely remove this channel from the network. Once this has been done it is not recoverable."] = "Dit zal dit kanaal compleet van deze hub en uit het RedMatrix-netwerk verwijderen. Dit kan hierna niet meer te ongedaan gemaakt worden.";
@@ -1151,21 +1248,17 @@ $a->strings["Authentication failed."] = "Authenticatie mislukt.";
$a->strings["Remote Authentication"] = "Authenticatie op afstand";
$a->strings["Enter your channel address (e.g. channel@example.com)"] = "Vul jouw kanaaladres in (bijv. channel@example.com)";
$a->strings["Authenticate"] = "Authenticeren";
-$a->strings["Continue"] = "Ga verder";
-$a->strings["Premium Channel Setup"] = "Instellen premiumkanaal ";
-$a->strings["Enable premium channel connection restrictions"] = "Restricties voor connecties van premiumkanaal toestaan";
-$a->strings["Please enter your restrictions or conditions, such as paypal receipt, usage guidelines, etc."] = "Vul je restricties of voorwaarden in, zoals een paypal-afschrift, gebruikersvoorschriften, enz.";
-$a->strings["This channel may require additional steps or acknowledgement of the following conditions prior to connecting:"] = "Dit kanaal kan extra stappen of het accepteren van de volgende voorwaarden vereisen, voordat de connectie wordt geaccepteerd:";
-$a->strings["Potential connections will then see the following text before proceeding:"] = "Mogelijke connecties zullen dan de volgende tekst zien voordat ze verder kunnen:";
-$a->strings["By continuing, I certify that I have complied with any instructions provided on this page."] = "Door verder te gaan ga ik automatisch akkoord met alle voorwaarden en aanwijzingen op deze pagina.";
-$a->strings["(No specific instructions have been provided by the channel owner.)"] = "(Er zijn geen speciale voorwaarden en aanwijzingen door de kanaal-eigenaar verstrekt) ";
-$a->strings["Restricted or Premium Channel"] = "Beperkt of premiumkanaal";
-$a->strings["No such group"] = "Collectie niet gevonden";
-$a->strings["Search Results For:"] = "Zoekresultaten voor:";
-$a->strings["Collection is empty"] = "Collectie is leeg";
-$a->strings["Collection: "] = "Collectie: ";
-$a->strings["Connection: "] = "Connectie: ";
-$a->strings["Invalid connection."] = "Ongeldige connectie.";
+$a->strings["Like/Dislike"] = "Leuk/niet leuk";
+$a->strings["This action is restricted to members."] = "Deze actie kan alleen door mensen met een RedMatrix-account worden uitgevoerd.";
+$a->strings["Please <a href=\"rmagic\">login with your RedMatrix ID</a> or <a href=\"register\">register as a new RedMatrix member</a> to continue."] = "Je dient <a href=\"rmagic\">in te loggen met je RedMatrix-account</a> of <a href=\"register\">een nieuw RedMatrix-account te registreren</a> om verder te kunnen gaan.";
+$a->strings["Invalid request."] = "Ongeldig verzoek";
+$a->strings["thing"] = "ding";
+$a->strings["Channel unavailable."] = "Kanaal niet beschikbaar.";
+$a->strings["Previous action reversed."] = "Vorige actie omgedraaid";
+$a->strings["Action completed."] = "Actie voltooid";
+$a->strings["Thank you."] = "Bedankt";
+$a->strings["Remote authentication blocked. You are logged into this site locally. Please logout and retry."] = "Authenticatie op afstand geblokkeerd. Je bent lokaal op deze hub ingelogd. Uitloggen en opnieuw proberen.";
+$a->strings["Welcome %s. Remote authentication successful."] = "Welkom %s. Authenticatie op afstand geslaagd.";
$a->strings["Could not access contact record."] = "Kon geen toegang krijgen tot de connectie-gegevens.";
$a->strings["Could not locate selected profile."] = "Kon het gekozen profiel niet vinden.";
$a->strings["Connection updated."] = "Connectie bijgewerkt.";
@@ -1186,9 +1279,10 @@ $a->strings["Only show ignored connections"] = "Toon alleen genegeerde connectie
$a->strings["Only show archived connections"] = "Toon alleen gearchiveerde connecties";
$a->strings["Only show hidden connections"] = "Toon alleen verborgen connecties";
$a->strings["%1\$s [%2\$s]"] = "%1\$s [%2\$s]";
-$a->strings["Edit contact"] = "Connectie bewerken";
+$a->strings["Edit connection"] = "Connectie bewerken";
$a->strings["Search your connections"] = "Doorzoek jouw connecties";
$a->strings["Finding: "] = "Zoeken naar: ";
+$a->strings["OpenID protocol error. No ID returned."] = "OpenID-protocolfout. Geen ID terugontvangen.";
$a->strings["Edit post"] = "Bericht bewerken";
$a->strings["is now connected to"] = "is nu verbonden met";
$a->strings["Could not access address book record."] = "Kon geen toegang krijgen tot de record van de connectie.";
@@ -1206,8 +1300,8 @@ $a->strings["Channel has been approved"] = "Connectie/kanaal is geaccepteerd";
$a->strings["Channel has been unapproved"] = "Connectie/kanaal is afgewezen";
$a->strings["Connection has been removed."] = "Connectie is verwijderd";
$a->strings["View %s's profile"] = "Profiel van %s weergeven";
-$a->strings["Refresh Permissions"] = "Privacy-rechten vernieuwen";
-$a->strings["Fetch updated permissions"] = "Aangepaste privacy-rechten ophalen";
+$a->strings["Refresh Permissions"] = "Permissies vernieuwen";
+$a->strings["Fetch updated permissions"] = "Aangepaste permissies ophalen";
$a->strings["Recent Activity"] = "Recente activiteit";
$a->strings["View recent posts and comments"] = "Recente berichten en reacties weergeven";
$a->strings["Unblock"] = "Deblokkeren";
@@ -1225,12 +1319,12 @@ $a->strings["Hide or Unhide this connection"] = "Deze connectie verbergen of nie
$a->strings["Delete this connection"] = "Deze connectie verwijderen";
$a->strings["Approve this connection"] = "Deze connectie accepteren";
$a->strings["Accept connection to allow communication"] = "Keur deze connectie goed om communicatie toe te staan";
-$a->strings["Automatic Permissions Settings"] = "Automatische privacy-rechten";
$a->strings["Connections: settings for %s"] = "Connecties: instellingen voor %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."] = "Wanneer je een connectieverzoek voor een kanaal ontvangt, zullen alle privacy-rechten hier automatisch op de nieuwe connectie worden toegepast en het connectieverzoek worden geaccepteerd. Verlaat deze pagina wanneer je geen gebruik wil maken van deze functie.";
+$a->strings["Apply these permissions automatically"] = "Deze permissies automatisch toepassen";
+$a->strings["Apply the permissions indicated on this page to all new connections."] = "Permissies die op deze pagina staan vermeldt op alle nieuwe connecties toepassen.";
$a->strings["Slide to adjust your degree of friendship"] = "Schuif om te bepalen hoe goed je iemand kent en/of mag";
$a->strings["inherited"] = "geërfd";
-$a->strings["Connection has no individual permissions!"] = "Connectie heeft geen individuele privacy-rechten!";
+$a->strings["Connection has no individual permissions!"] = "Connectie heeft geen individuele permissies!";
$a->strings["This may be appropriate based on your <a href=\"settings\">privacy settings</a>, though you may wish to review the \"Advanced Permissions\"."] = "Dit is mogelijk voldoende, wanneer er naar jouw <a href=\"settings\">privacy-instellingen</a> wordt gekeken. Hoewel je wellicht de geavanceerde rechten wil nagaan.";
$a->strings["Profile Visibility"] = "Zichtbaarheid profiel";
$a->strings["Please choose the profile you would like to display to %s when viewing your profile securely."] = "Kies het profiel dat je aan %s wil tonen wanneer hij/zij ingelogd jouw profiel wil bekijken.";
@@ -1238,16 +1332,16 @@ $a->strings["Contact Information / Notes"] = "Informatie/aantekeningen over conn
$a->strings["Edit contact notes"] = "Bewerk aantekeningen over contact";
$a->strings["Their Settings"] = "Hun instellingen";
$a->strings["My Settings"] = "Mijn instellingen";
-$a->strings["Clear/Disable Automatic Permissions"] = "Verwijderen/uitschakelen automatische privacy-rechten";
-$a->strings["Forum Members"] = "Forum/groepsleden";
+$a->strings["Clear/Disable Automatic Permissions"] = "Verwijderen/uitschakelen automatische permissies";
+$a->strings["Forum Members"] = "Forumleden";
$a->strings["Soapbox"] = "Zeepkist";
$a->strings["Full Sharing (typical social network permissions)"] = "Voluit delen (vergelijkbaar met die van sociale netwerken)";
$a->strings["Cautious Sharing "] = "Voorzichtig delen";
$a->strings["Follow Only"] = "Alleen volgen";
-$a->strings["Individual Permissions"] = "Individuele privacy-rechten";
-$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."] = "Sommige privacy-rechten kunnen worden overgeërfd van de <a href=\"settings\">privacy-instellingen</a> van jouw kanaal. Wanneer je deze geërfde instellingen op deze pagina veranderd heeft dat geen effect.";
-$a->strings["Advanced Permissions"] = "Geavanceerde privacy-rechten";
-$a->strings["Simple Permissions (select one and submit)"] = "Eenvoudige privacy-rechten (selecteer er één en opslaan)";
+$a->strings["Individual Permissions"] = "Individuele permissies";
+$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."] = "Sommige permissies kunnen worden overgeërfd van de <a href=\"settings\">privacy-instellingen</a> van jouw kanaal. Wanneer je deze geërfde instellingen op deze pagina veranderd heeft dat geen effect.";
+$a->strings["Advanced Permissions"] = "Geavanceerde permissies";
+$a->strings["Simple Permissions (select one and submit)"] = "Eenvoudige permissies (selecteer er één en opslaan)";
$a->strings["Visit %s's profile - %s"] = "Profiel van %s bezoeken - %s";
$a->strings["Block/Unblock contact"] = "Connectie blokkeren/deblokkeren";
$a->strings["Ignore contact"] = "Connectie negeren";
@@ -1263,107 +1357,105 @@ $a->strings["Currently archived"] = "Momenteel gearchiveerd";
$a->strings["Currently pending"] = "Moeten nog geaccepteerd of afgewezen worden";
$a->strings["Hide this contact from others"] = "Verberg deze connectie voor anderen";
$a->strings["Replies/likes to your public posts <strong>may</strong> still be visible"] = "Reacties/vind-ik-leuks op jouw openbare berichten <strong>kunnen</strong> zichtbaar blijven";
-$a->strings["No potential page delegates located."] = "Geen gevolmachtigde personen gevonden waaraan mogelijk het accountbeheer kan worden uitbesteed.";
-$a->strings["Delegate Page Management"] = "Accountbeheer uitbesteden";
-$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."] = "Gevolmachtigde personen zijn in staat om alle aspecten van dit account te beheren, behalve enkele basisinstellingen. Besteed het beheer van je persoonlijke account niet aan iemand uit die je niet volledig vertrouwd.";
-$a->strings["Existing Page Managers"] = "Bestaande accountbeheerders";
-$a->strings["Existing Page Delegates"] = "Bestaande gevolmachtigde accountbeheerders";
-$a->strings["Potential Delegates"] = "Gevolmachtigde personen waaraan mogelijk het accountbeheer kan worden uitbesteed.";
-$a->strings["Remove"] = "Verwijderen";
-$a->strings["Add"] = "Toevoegen";
-$a->strings["No entries."] = "Geen";
-$a->strings["Public access denied."] = "Openbare toegang geweigerd.";
-$a->strings["Gender: "] = "Geslacht:";
-$a->strings["Finding:"] = "Gezocht naar:";
-$a->strings["No entries (some entries may be hidden)."] = "Niets gevonden (sommige kanalen kunnen verborgen zijn).";
-$a->strings["Status: "] = "Status: ";
-$a->strings["Sexual Preference: "] = "Seksuele voorkeur: ";
-$a->strings["Homepage: "] = "Homepage: ";
-$a->strings["Hometown: "] = "Oorspronkelijk uit: ";
-$a->strings["About: "] = "Over: ";
-$a->strings["Keywords: "] = "Trefwoorden: ";
+$a->strings["Thing updated"] = "Ding bijgewerkt";
+$a->strings["Object store: failed"] = "Opslaan van ding mislukt";
+$a->strings["Thing added"] = "Ding toegevoegd";
+$a->strings["OBJ: %1\$s %2\$s %3\$s"] = "OBJ: %1\$s %2\$s %3\$s";
+$a->strings["Show Thing"] = "Ding weergeven";
+$a->strings["item not found."] = "Item niet gevonden";
+$a->strings["Edit Thing"] = "Ding bewerken";
+$a->strings["Select a profile"] = "Kies een profiel";
+$a->strings["Post an activity"] = "Plaats een bericht";
+$a->strings["Only sends to viewers of the applicable profile"] = "Toont dit alleen aan diegene die het gekozen profiel mogen zien.";
+$a->strings["Name of thing e.g. something"] = "Naam van ding";
+$a->strings["URL of thing (optional)"] = "URL van ding (optioneel)";
+$a->strings["URL for photo of thing (optional)"] = "URL van foto van ding (optioneel)";
+$a->strings["Add Thing to your Profile"] = "Ding aan je profiel toevoegen";
+$a->strings["No valid account found."] = "Geen geldige account gevonden.";
+$a->strings["Password reset request issued. Check your email."] = "Het verzoek om je wachtwoord opnieuw in te stellen is behandeld. Controleer je e-mail.";
+$a->strings["Site Member (%s)"] = "Lid van hub (%s)";
+$a->strings["Password reset requested at %s"] = "Verzoek tot het opnieuw instellen van een wachtwoord op %s is ingediend";
+$a->strings["Request could not be verified. (You may have previously submitted it.) Password reset failed."] = "Het verzoek kon niet worden geverifieerd. (Mogelijk heb je al eerder een verzoek ingediend.) Opnieuw instellen van wachtwoord is mislukt.";
+$a->strings["Password Reset"] = "Wachtwoord vergeten?";
+$a->strings["Your password has been reset as requested."] = "Jouw wachtwoord is opnieuw ingesteld zoals je had verzocht.";
+$a->strings["Your new password is"] = "Jouw nieuwe wachtwoord is";
+$a->strings["Save or copy your new password - and then"] = "Kopieer of sla je nieuwe wachtwoord op - en";
+$a->strings["click here to login"] = "klik dan hier om in te loggen";
+$a->strings["Your password may be changed from the <em>Settings</em> page after successful login."] = "Jouw wachtwoord kan worden veranderd onder <em>instellingen</em>, nadat je succesvol bent ingelogd.";
+$a->strings["Your password has changed at %s"] = "Jouw wachtwoord op %s is veranderd";
+$a->strings["Forgot your Password?"] = "Wachtwoord vergeten?";
+$a->strings["Enter your email address and submit to have your password reset. Then check your email for further instructions."] = "Voer je e-mailadres in en verstuur deze om je wachtwoord opnieuw in te stellen. Controleer hierna hier je e-mail voor verdere instructies.";
+$a->strings["Email Address"] = "E-mailadres";
+$a->strings["Reset"] = "Opnieuw instellen";
+$a->strings["Bookmark added"] = "Bladwijzer toegevoegd";
+$a->strings["My Bookmarks"] = "Mijn bladwijzers";
+$a->strings["My Connections Bookmarks"] = "Bladwijzers van mijn connecties";
$a->strings["This site is not a directory server"] = "Deze hub is geen kanalengidshub (directoryserver)";
-$a->strings["Red Matrix - &quot;The Network&quot;"] = "RedMatrix - &quot;The Network&quot;";
-$a->strings["Welcome to %s"] = "Welkom op %s";
-$a->strings["Red Matrix Server - Setup"] = "RedMatrix Server - Setup";
-$a->strings["Could not connect to database."] = "Could not connect to database.";
-$a->strings["Could not connect to specified site URL. Possible SSL certificate or DNS issue."] = "Could not connect to specified hub URL. Possible SSL certificate or DNS issue.";
-$a->strings["Could not create table."] = "Could not create table.";
-$a->strings["Your site database has been installed."] = "Your hub database has been installed.";
-$a->strings["You may need to import the file \"install/database.sql\" manually using phpmyadmin or mysql."] = "You may need to import the file \"install/database.sql\" manually using phpmyadmin or mysql.";
-$a->strings["Please see the file \"install/INSTALL.txt\"."] = "Please see the file \"install/INSTALL.txt\".";
-$a->strings["System check"] = "System check";
-$a->strings["Next"] = "Volgende";
-$a->strings["Check again"] = "Check again";
-$a->strings["Database connection"] = "Database connection";
-$a->strings["In order to install Red Matrix we need to know how to connect to your database."] = "In order to install RedMatrix we need to know how to connect to your database.";
-$a->strings["Please contact your hosting provider or site administrator if you have questions about these settings."] = "Please contact your hosting provider or site administrator if you have questions about these settings.";
-$a->strings["The database you specify below should already exist. If it does not, please create it before continuing."] = "The database you specify below should already exist. If it does not, please create it before continuing.";
-$a->strings["Database Server Name"] = "Database Server Name";
-$a->strings["Default is localhost"] = "Default is localhost";
-$a->strings["Database Port"] = "Database Port";
-$a->strings["Communication port number - use 0 for default"] = "Communication port number - use 0 for default";
-$a->strings["Database Login Name"] = "Database Login Name";
-$a->strings["Database Login Password"] = "Database Login Password";
-$a->strings["Database Name"] = "Database Name";
-$a->strings["Site administrator email address"] = "Hub administrator email address";
-$a->strings["Your account email address must match this in order to use the web admin panel."] = "Your account email address must match this in order to use the web admin panel.";
-$a->strings["Website URL"] = "Hub URL";
-$a->strings["Please use SSL (https) URL if available."] = "Please use SSL (https) URL if available.";
-$a->strings["Please select a default timezone for your website"] = "Please select a default timezone for your hub";
-$a->strings["Site settings"] = "Hub settings";
-$a->strings["Could not find a command line version of PHP in the web server PATH."] = "Could not find a command line version of PHP in the web server PATH.";
-$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."] = "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.";
-$a->strings["PHP executable path"] = "PHP executable path";
-$a->strings["Enter full path to php executable. You can leave this blank to continue the installation."] = "Enter full path to php executable. You can leave this blank to continue the installation.";
-$a->strings["Command line PHP"] = "Command line PHP";
-$a->strings["The command line version of PHP on your system does not have \"register_argc_argv\" enabled."] = "The command line version of PHP on your system does not have \"register_argc_argv\" enabled.";
-$a->strings["This is required for message delivery to work."] = "This is required for message delivery to work.";
-$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"] = "Error: the \"openssl_pkey_new\" function on this system is not able to generate encryption keys";
-$a->strings["If running under Windows, please see \"http://www.php.net/manual/en/openssl.installation.php\"."] = "If running under Windows, please see \"http://www.php.net/manual/en/openssl.installation.php\".";
-$a->strings["Generate encryption keys"] = "Generate encryption keys";
-$a->strings["libCurl PHP module"] = "libCurl PHP module";
-$a->strings["GD graphics PHP module"] = "GD graphics PHP module";
-$a->strings["OpenSSL PHP module"] = "OpenSSL PHP module";
-$a->strings["mysqli PHP module"] = "mysqli PHP module";
-$a->strings["mb_string PHP module"] = "mb_string PHP module";
-$a->strings["mcrypt PHP module"] = "mcrypt PHP module";
-$a->strings["Apache mod_rewrite module"] = "Apache mod_rewrite module";
-$a->strings["Error: Apache webserver mod-rewrite module is required but not installed."] = "Error: Apache webserver mod-rewrite module is required but not installed.";
-$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"] = "Error: proc_open is required but is either not installed or has been disabled in php.ini";
-$a->strings["Error: libCURL PHP module required but not installed."] = "Error: libCURL PHP module required but not installed.";
-$a->strings["Error: GD graphics PHP module with JPEG support required but not installed."] = "Error: GD graphics PHP module with JPEG support required but not installed.";
-$a->strings["Error: openssl PHP module required but not installed."] = "Error: openssl PHP module required but not installed.";
-$a->strings["Error: mysqli PHP module required but not installed."] = "Error: mysqli PHP module required but not installed.";
-$a->strings["Error: mb_string PHP module required but not installed."] = "Error: mb_string PHP module required but not installed.";
-$a->strings["Error: mcrypt PHP module required but not installed."] = "Error: mcrypt PHP module required but not installed.";
-$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."] = "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.";
-$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."] = "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.";
-$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."] = "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.";
-$a->strings["You can alternatively skip this procedure and perform a manual installation. Please see the file \"install/INSTALL.txt\" for instructions."] = "You can alternatively skip this procedure and perform a manual installation. Please see the file \"install/INSTALL.txt\" for instructions.";
-$a->strings[".htconfig.php is writable"] = ".htconfig.php is writable";
-$a->strings["Red uses the Smarty3 template engine to render its web views. Smarty3 compiles templates to PHP to speed up rendering."] = "Red uses the Smarty3 template engine to render its web views. Smarty3 compiles templates to PHP to speed up rendering.";
-$a->strings["In order to store these compiled templates, the web server needs to have write access to the directory %s under the Red top level folder."] = "In order to store these compiled templates, the web server needs to have write access to the directory %s under the Red top level folder.";
-$a->strings["Please ensure that the user that your web server runs as (e.g. www-data) has write access to this folder."] = "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 %s only--not the template files (.tpl) that it contains."] = "Note: as a security measure, you should give the web server write access to %s only--not the template files (.tpl) that it contains.";
-$a->strings["%s is writable"] = "%s is writable";
-$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 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"] = "store is writable";
-$a->strings["SSL certificate cannot be validated. Fix certificate or disable https access to this site."] = "SSL certificate cannot be validated. Fix certificate or disable https access to this hub.";
-$a->strings["If you have https access to your website or allow connections to TCP port 443 (the https: port), you MUST use a browser-valid certificate. You MUST NOT use self-signed certificates!"] = "If you have https access to your hub or allow connections to TCP port 443 (the https: port), you MUST use a browser-valid certificate. You MUST NOT use self-signed certificates!";
-$a->strings["This restriction is incorporated because public posts from you may for example contain references to images on your own hub."] = "This restriction is incorporated because public posts from you may for example contain references to images on your own hub.";
-$a->strings["If your certificate is not recognized, members of other sites (who may themselves have valid certificates) will get a warning message on their own site complaining about security issues."] = "If your certificate is not recognized, members of other hubs (who may themselves have valid certificates) will get a warning message on their own hub complaining about security issues.";
-$a->strings["This can cause usability issues elsewhere (not just on your own site) so we must insist on this requirement."] = "This can cause usability issues elsewhere (not just on your own hub) so we must insist on this requirement.";
-$a->strings["Providers are available that issue free certificates which are browser-valid."] = "Providers are available that issue free certificates which are browser-valid.";
-$a->strings["SSL certificate validation"] = "SSL certificate validation";
-$a->strings["Url rewrite in .htaccess is not working. Check your server configuration."] = "Url rewrite in .htaccess is not working. Check your server configuration.";
-$a->strings["Url rewrite is working"] = "Url rewrite is working";
-$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."] = "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.";
-$a->strings["Errors encountered creating database tables."] = "Errors encountered creating database tables.";
-$a->strings["<h1>What next</h1>"] = "<h1>Wat nu</h1>";
-$a->strings["IMPORTANT: You will need to [manually] setup a scheduled task for the poller."] = "IMPORTANT: You will need to [manually] setup a scheduled task for the poller.";
+$a->strings["RedMatrix - Guests: Username: {your email address}, Password: +++"] = "RedMatrix - gasttoegang: Toegangsnaam: {jouw e-mailadres}, wachtwoord: +++";
+$a->strings["Profile not found."] = "Profiel niet gevonden.";
+$a->strings["Profile deleted."] = "Profiel verwijderd.";
+$a->strings["Profile-"] = "Profiel-";
+$a->strings["New profile created."] = "Nieuw profiel aangemaakt.";
+$a->strings["Profile unavailable to clone."] = "Profiel niet beschikbaar om te klonen";
+$a->strings["Profile unavailable to export."] = "Geen profiel beschikbaar om te exporteren";
+$a->strings["Profile Name is required."] = "Profielnaam is vereist";
+$a->strings["Marital Status"] = "Huwelijke status";
+$a->strings["Romantic Partner"] = "Romantische partner";
+$a->strings["Likes"] = "Houdt van";
+$a->strings["Dislikes"] = "Houdt niet van";
+$a->strings["Work/Employment"] = "Werk/arbeid";
+$a->strings["Religion"] = "Religie";
+$a->strings["Political Views"] = "Politieke overtuigingen";
+$a->strings["Gender"] = "Geslacht";
+$a->strings["Sexual Preference"] = "Seksuele voorkeur";
+$a->strings["Homepage"] = "Homepage";
+$a->strings["Interests"] = "Interesses";
+$a->strings["Address"] = "Kanaaladres";
+$a->strings["Profile updated."] = "Profiel bijgewerkt";
+$a->strings["Hide your contact/friend list from viewers of this profile?"] = "Laat de lijst met connecties niet aan bezoekers van dit profiel zien.";
+$a->strings["Edit Profile Details"] = "Profiel bewerken";
+$a->strings["View this profile"] = "Profiel weergeven";
+$a->strings["Change Profile Photo"] = "Profielfoto wijzigen";
+$a->strings["Create a new profile using these settings"] = "Een nieuw profiel aanmaken met dit profiel als basis";
+$a->strings["Clone this profile"] = "Dit profiel klonen";
+$a->strings["Delete this profile"] = "Dit profiel verwijderen";
+$a->strings["Import profile from file"] = "Profiel vanuit bestand importeren";
+$a->strings["Export profile to file"] = "Profiel naar bestand exporteren";
+$a->strings["Profile Name:"] = "Profielnaam:";
+$a->strings["Your Full Name:"] = "Jouw volledige naam:";
+$a->strings["Title/Description:"] = "Titel/omschrijving:";
+$a->strings["Your Gender:"] = "Jouw geslacht";
+$a->strings["Birthday :"] = "Verjaardag: ";
+$a->strings["Street Address:"] = "Straat en huisnummer:";
+$a->strings["Locality/City:"] = "Woonplaats:";
+$a->strings["Postal/Zip Code:"] = "Postcode:";
+$a->strings["Country:"] = "Land:";
+$a->strings["Region/State:"] = "Provincie/gewest/deelstaat:";
+$a->strings["<span class=\"heart\">&hearts;</span> Marital Status:"] = "<span class=\"heart\">&hearts;</span> Huwelijkse staat:";
+$a->strings["Who: (if applicable)"] = "Wie (wanneer toepasselijk):";
+$a->strings["Examples: cathy123, Cathy Williams, cathy@example.com"] = "Voorbeelden: karin123, Karin Jansen, cathy@voorbeeld.nl";
+$a->strings["Since [date]:"] = "Sinds [datum]:";
+$a->strings["Homepage URL:"] = "Adres homepage:";
+$a->strings["Religious Views:"] = "Religieuze overtuigingen";
+$a->strings["Keywords:"] = "Trefwoorden";
+$a->strings["Example: fishing photography software"] = "Voorbeeld: muziek, fotografie, software";
+$a->strings["Used in directory listings"] = "Wordt in de kanalengids gebruikt";
+$a->strings["Tell us about yourself..."] = "Vertel ons iets over jezelf...";
+$a->strings["Hobbies/Interests"] = "Hobby's/interesses";
+$a->strings["Contact information and Social Networks"] = "Contactinformatie en sociale netwerken";
+$a->strings["My other channels"] = "Mijn andere kanalen";
+$a->strings["Musical interests"] = "Muzikale interesses";
+$a->strings["Books, literature"] = "Boeken/literatuur";
+$a->strings["Television"] = "Televisie";
+$a->strings["Film/dance/culture/entertainment"] = "Film/dans/cultuur/entertainment";
+$a->strings["Love/romance"] = "Liefde/romantiek";
+$a->strings["Work/employment"] = "Werk/arbeid";
+$a->strings["School/education"] = "School/onderwijs";
+$a->strings["This is your default profile."] = "Dit is jouw standaardprofiel";
+$a->strings["Age: "] = "Leeftijd:";
+$a->strings["Edit/Manage Profiles"] = "Profielen bewerken/beheren";
+$a->strings["Add profile things"] = "Dingen aan je profiel toevoegen";
+$a->strings["Include desirable objects in your profile"] = "Voeg door jou gewenste dingen aan jouw profiel toe";
$a->strings["Item not found"] = "Item niet gevonden";
$a->strings["Edit Block"] = "Blok bewerken";
$a->strings["Delete block?"] = "Blok verwijderen";
@@ -1371,7 +1463,7 @@ $a->strings["Insert YouTube video"] = "YouTube-video invoegen";
$a->strings["Insert Vorbis [.ogg] video"] = "Vorbis-video [.ogg] invoegen";
$a->strings["Insert Vorbis [.ogg] audio"] = "Vorbis-audio [.ogg] invoegen";
$a->strings["Delete Block"] = "Blok verwijderen";
-$a->strings["Layout updated."] = "Layout bijgewerkt.";
+$a->strings["Layout updated."] = "Lay-out bijgewerkt.";
$a->strings["Edit System Page Description"] = "Systeempagina's bewerken";
$a->strings["Layout not found."] = "Lay-out niet gevonden.";
$a->strings["Module Name:"] = "Modulenaam:";
@@ -1381,84 +1473,42 @@ $a->strings["Delete layout?"] = "Lay-out verwijderen?";
$a->strings["Delete Layout"] = "Lay-out verwijderen";
$a->strings["Item is not editable"] = "Item is niet te bewerken";
$a->strings["Delete item?"] = "Item verwijderen?";
+$a->strings["Help:"] = "Hulp:";
+$a->strings["Not Found"] = "Niet gevonden";
$a->strings["Edit Webpage"] = "Webpagina bewerken";
$a->strings["Delete webpage?"] = "Webpagina verwijderen?";
$a->strings["Delete Webpage"] = "Webpagina verwijderen";
-$a->strings["Version %s"] = "Versie %s";
-$a->strings["Installed plugins/addons/apps:"] = "Ingeschakelde plug-ins/add-ons/apps:";
-$a->strings["No installed plugins/addons/apps"] = "Geen ingeschakelde plug-ins/add-ons/apps";
-$a->strings["Red"] = "Red";
-$a->strings["This is a hub of the Red Matrix - a global cooperative network of decentralized privacy enhanced websites."] = "Dit is een hub van de RedMatrix - een wereldwijd coöperatief netwerk van gedecentraliseerde websites met verbeterde privacy.";
-$a->strings["Running at web location"] = "Draaiend op weblocatie";
-$a->strings["Please visit <a href=\"http://getzot.com\">GetZot.com</a> to learn more about the Red Matrix."] = "Bezoek <a href=\"http://redmatrix.me\">RedMatrix.me</a> om meer te leren over de RedMatrix.";
-$a->strings["Bug reports and issues: please visit"] = "Bugrapporten en andere kwesties: bezoek";
-$a->strings["Suggestions, praise, etc. - please email \"redmatrix\" at librelist - dot com"] = "Voorstellen, lofbetuigingen, enz. - e-mail \"redmatrix\" at librelist - dot com";
-$a->strings["Site Administrators"] = "Hubbeheerders";
-$a->strings["Page owner information could not be retrieved."] = "Informatie over de pagina-eigenaar werd niet ontvangen.";
-$a->strings["Album not found."] = "Album niet gevonden.";
-$a->strings["Delete Album"] = "Verwijder album";
-$a->strings["Delete Photo"] = "Verwijder foto";
-$a->strings["No photos selected"] = "Geen foto's geselecteerd";
-$a->strings["Access to this item is restricted."] = "Toegang tot dit item is beperkt.";
-$a->strings["You have used %1$.2f Mbytes of %2$.2f Mbytes photo storage."] = "Je gebruiker %1$.2f MB van totaal %2$.2f MB foto-opslagruimte.";
-$a->strings["You have used %1$.2f Mbytes of photo storage."] = "Je gebruikt %1$.2f MB aan foto-opslagruimte.";
-$a->strings["Upload Photos"] = "Foto's uploaden";
-$a->strings["New album name: "] = "Nieuwe albumnaam: ";
-$a->strings["or existing album name: "] = "of een bestaande albumnaam: ";
-$a->strings["Do not show a status post for this upload"] = "Plaats geen bericht voor deze upload.";
-$a->strings["Album name could not be decoded"] = "Albumnaam kon niet gedecodeerd worden";
-$a->strings["Contact Photos"] = "Connectiefoto's";
-$a->strings["Edit Album"] = "Album bewerken";
-$a->strings["Show Newest First"] = "Nieuwste eerst weergeven";
-$a->strings["Show Oldest First"] = "Oudste eerst weergeven";
-$a->strings["View Photo"] = "Foto weergeven";
-$a->strings["Permission denied. Access to this item may be restricted."] = "Toegang geweigerd. Toegang tot dit item kan zijn beperkt.";
-$a->strings["Photo not available"] = "Foto niet aanwezig";
-$a->strings["Use as profile photo"] = "Als profielfoto gebruiken";
-$a->strings["View Full Size"] = "Volledige grootte weergeven";
-$a->strings["Edit photo"] = "Foto bewerken";
-$a->strings["Rotate CW (right)"] = "Draai met de klok mee (naar rechts)";
-$a->strings["Rotate CCW (left)"] = "Draai tegen de klok in (naar links)";
-$a->strings["New album name"] = "Nieuwe albumnaam";
-$a->strings["Caption"] = "Bijschrift";
-$a->strings["Add a Tag"] = "Label toevoegen";
-$a->strings["Example: @bob, @Barbara_Jensen, @jim@example.com, #California, #camping"] = "Voorbeeld: @bob, @Barbara_Jansen, @jan@example.com, #Friesland, #camping";
-$a->strings["In This Photo:"] = "Op deze foto:";
-$a->strings["View Album"] = "Album weergeven";
-$a->strings["Recent Photos"] = "Recente foto's";
-$a->strings["Failed to create source. No channel selected."] = "Aanmaken bron mislukt. Geen kanaal geselecteerd.";
-$a->strings["Source created."] = "Bron aangemaakt.";
-$a->strings["Source updated."] = "Bron aangemaakt.";
-$a->strings["*"] = "*";
-$a->strings["Manage remote sources of content for your channel."] = "Beheer externe bronnen met inhoud voor jouw kanaal";
-$a->strings["New Source"] = "Nieuwe bron";
-$a->strings["Import all or selected content from the following channel into this channel and distribute it according to your channel settings."] = "Importeer complete of gedeelde inhoud vanuit het volgende kanaal naar dit kanaal, en verdeel het vervolgens volgens jouw kanaalinstellingen.";
-$a->strings["Only import content with these words (one per line)"] = "Importeer alleen inhoud met deze woorden (één per regel)";
-$a->strings["Leave blank to import all public content"] = "Laat leeg om alle openbare inhoud te importeren";
-$a->strings["Channel Name"] = "Kanaalnaam";
-$a->strings["Source not found."] = "Bron niet gevonden";
-$a->strings["Edit Source"] = "Bron bewerken";
-$a->strings["Delete Source"] = "Bron verwijderen";
-$a->strings["Source removed"] = "Bron verwijderd";
-$a->strings["Unable to remove source."] = "Verwijderen bron mislukt.";
-$a->strings["- select -"] = "- kies map -";
-$a->strings["Event title and start time are required."] = "Titel en begintijd van gebeurtenis zijn vereist.";
-$a->strings["Event not found."] = "Gebeurtenis niet gevonden";
-$a->strings["l, F j"] = "l j F";
-$a->strings["Edit event"] = "Gebeurtenis bewerken";
-$a->strings["Create New Event"] = "Nieuwe gebeurtenis aanmaken";
-$a->strings["Previous"] = "Vorige";
-$a->strings["hour:minute"] = "uur:minuut";
-$a->strings["Event details"] = "Details van gebeurtenis";
-$a->strings["Format is %s %s. Starting date and Title are required."] = "Volgorde is %s %s. Begintijd en titel zijn vereist.";
-$a->strings["Event Starts:"] = "Begin gebeurtenis:";
-$a->strings["Required"] = "Vereist";
-$a->strings["Finish date/time is not known or not relevant"] = "Einddatum/-tijd is niet bekend of niet relevant";
-$a->strings["Event Finishes:"] = "Einde gebeurtenis:";
-$a->strings["Adjust for viewer timezone"] = "Aanpassen aan de tijdzone van wie deze gebeurtenis bekijkt";
-$a->strings["Description:"] = "Omschrijving:";
-$a->strings["Title:"] = "Titel:";
-$a->strings["Share this event"] = "Deel deze gebeurtenis";
+$a->strings["webpage"] = "Webpagina";
+$a->strings["block"] = "blok";
+$a->strings["layout"] = "lay-out";
+$a->strings["%s element installed"] = "%s onderdeel geïnstalleerd";
+$a->strings["Image uploaded but image cropping failed."] = "Afbeelding geüpload, maar afbeelding kon niet worden bijgesneden. ";
+$a->strings["Image resize failed."] = "Afbeelding kon niet van grootte veranderd worden.";
+$a->strings["Shift-reload the page or clear browser cache if the new photo does not display immediately."] = "Vernieuw de pagina met shift+R of shift+F5, of leeg je browserbuffer, wanneer de nieuwe foto niet meteen wordt weergegeven.";
+$a->strings["Image exceeds size limit of %d"] = "Afbeeldingsgrootte overschrijdt het limiet van %d";
+$a->strings["Unable to process image."] = "Niet in staat om afbeelding te verwerken.";
+$a->strings["Photo not available."] = "Foto niet beschikbaar.";
+$a->strings["Upload File:"] = "Bestand uploaden:";
+$a->strings["Select a profile:"] = "Kies een profiel:";
+$a->strings["Upload Profile Photo"] = "Profielfoto uploaden";
+$a->strings["skip this step"] = "sla deze stap over";
+$a->strings["select a photo from your photo albums"] = "Kies een foto uit jouw fotoalbums";
+$a->strings["Crop Image"] = "Afbeelding bijsnijden";
+$a->strings["Please adjust the image cropping for optimum viewing."] = "Snij de afbeelding zo uit dat deze optimaal wordt weergegeven.";
+$a->strings["Done Editing"] = "Klaar met bewerken";
+$a->strings["Image uploaded successfully."] = "Uploaden afbeelding geslaagd";
+$a->strings["Image upload failed."] = "Uploaden afbeelding mislukt";
+$a->strings["Image size reduction [%s] failed."] = "Verkleinen [%s] van afbeelding mislukt.";
+$a->strings["Unable to locate original post."] = "Niet in staat om de originele locatie van het bericht te vinden. ";
+$a->strings["Empty post discarded."] = "Leeg bericht geannuleerd";
+$a->strings["Executable content type not permitted to this channel."] = "Uitvoerbare bestanden zijn niet toegestaan op dit kanaal.";
+$a->strings["System error. Post not saved."] = "Systeemfout. Bericht niet opgeslagen.";
+$a->strings["You have reached your limit of %1$.0f top level posts."] = "Je hebt jouw limiet van %1$.0f berichten bereikt.";
+$a->strings["You have reached your limit of %1$.0f webpages."] = "Je hebt jouw limiet van %1$.0f webpagina's bereikt.";
+$a->strings["Contact not found."] = "Contact niet gevonden";
+$a->strings["Friend suggestion sent."] = "Kanaalvoorstel verzonden.";
+$a->strings["Suggest Friends"] = "Kanalen voorstellen";
+$a->strings["Suggest a friend for %s"] = "Stel een kanaal voor aan %s";
$a->strings["Permission Denied."] = "Toegang geweigerd";
$a->strings["File not found."] = "Bestand niet gevonden.";
$a->strings["Edit file permissions"] = "Bestandsrechten bewerken";
@@ -1467,13 +1517,17 @@ $a->strings["Include all files and sub folders"] = "Toepassen op alle bestanden
$a->strings["Return to file list"] = "Terugkeren naar bestandlijst ";
$a->strings["Copy/paste this code to attach file to a post"] = "Kopieer/plak deze code om het bestand aan een bericht te koppelen";
$a->strings["Copy/paste this URL to link file from a web page"] = "Kopieer/plak deze URL om het bestand aan een externe webpagina te koppelen";
+$a->strings["network"] = "netwerk";
+$a->strings["No potential page delegates located."] = "Geen gevolmachtigde personen gevonden waaraan mogelijk het accountbeheer kan worden uitbesteed.";
+$a->strings["Delegate Page Management"] = "Accountbeheer uitbesteden";
+$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."] = "Gevolmachtigde personen zijn in staat om alle aspecten van dit account te beheren, behalve enkele basisinstellingen. Besteed het beheer van je persoonlijke account niet aan iemand uit die je niet volledig vertrouwd.";
+$a->strings["Existing Page Managers"] = "Bestaande accountbeheerders";
+$a->strings["Existing Page Delegates"] = "Bestaande gevolmachtigde accountbeheerders";
+$a->strings["Potential Delegates"] = "Gevolmachtigde personen waaraan mogelijk het accountbeheer kan worden uitbesteed.";
+$a->strings["Remove"] = "Verwijderen";
+$a->strings["Add"] = "Toevoegen";
+$a->strings["No entries."] = "Geen";
$a->strings["Channel added."] = "Kanaal toegevoegd.";
-$a->strings["%1\$s is following %2\$s's %3\$s"] = "%1\$s volgt het %3\$s van %2\$s";
-$a->strings["Contact not found."] = "Contact niet gevonden";
-$a->strings["Friend suggestion sent."] = "Kanaalvoorstel verzonden.";
-$a->strings["Suggest Friends"] = "Kanalen voorstellen";
-$a->strings["Suggest a friend for %s"] = "Stel een kanaal voor aan %s";
-$a->strings["No suggestions available. If this is a new site, please try again in 24 hours."] = "Geen voorgestelde kanalen gevonden. Wanneer dit een nieuwe hub is, probeer het dan over 24 uur weer.";
$a->strings["Collection created."] = "Collectie aangemaakt";
$a->strings["Could not create collection."] = "Collectie kon niet aangemaakt worden";
$a->strings["Collection updated."] = "Collectie bijgewerkt.";
@@ -1486,9 +1540,29 @@ $a->strings["Collection Editor"] = "Collectiebewerker";
$a->strings["Members"] = "Kanalen";
$a->strings["All Connected Channels"] = "Alle kanaalconnecties";
$a->strings["Click on a channel to add or remove."] = "Klik op een kanaal om deze toe te voegen of te verwijderen.";
+$a->strings["Red Matrix - &quot;The Network&quot;"] = "RedMatrix - &quot;The Network&quot;";
+$a->strings["Welcome to %s"] = "Welkom op %s";
+$a->strings["No suggestions available. If this is a new site, please try again in 24 hours."] = "Geen voorgestelde kanalen gevonden. Wanneer dit een nieuwe hub is, probeer het dan over 24 uur weer.";
+$a->strings["Your service plan only allows %d channels."] = "Jouw abonnement staat maar %d kanalen toe.";
+$a->strings["Nothing to import."] = "Niets gevonden om te importeren";
+$a->strings["Unable to download data from old server"] = "Niet in staat om gegevens van de oude hub te downloaden";
+$a->strings["Imported file is empty."] = "Geïmporteerde bestand is leeg";
+$a->strings["Cannot create a duplicate channel identifier on this system. Import failed."] = "Kan geen dubbele kanaal-identificator op deze hub aanmaken. Importeren mislukt.";
+$a->strings["Channel clone failed. Import failed."] = "Het klonen van het kanaal is mislukt. Importeren mislukt.";
+$a->strings["Cloned channel not found. Import failed."] = "Gekloond kanaal niet gevonden. Importeren mislukt.";
+$a->strings["Import completed."] = "Import voltooid.";
+$a->strings["You must be logged in to use this feature."] = "Je moet ingelogd zijn om dit onderdeel te kunnen gebruiken.";
+$a->strings["Import Channel"] = "Kanaal importeren";
+$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."] = "Gebruik dit formulier om een bestaand kanaal te importeren van een andere hub. Je kan de kanaal-identiteit van de oude hub via het netwerk ontvangen of een exportbestand verstrekken. Alleen de identiteit en de connecties zullen geïmporteerd worden. Het importeren van inhoud is nog niet beschikbaar.";
+$a->strings["File to Upload"] = "Bestand om te uploaden";
+$a->strings["Or provide the old server/hub details"] = "Of vul de gegevens van de oude hub in";
+$a->strings["Your old identity address (xyz@example.com)"] = "Jouw oude kanaaladres (xyz@example.com)";
+$a->strings["Your old login email address"] = "Het e-mailadres van je oude account";
+$a->strings["Your old login password"] = "Wachtwoord van jouw oude account";
+$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."] = "Voor elke optie geldt dat je moet kiezen of je jouw primaire kanaaladres op deze hub wil instellen of dat jouw oude hub deze rol blijft vervullen.";
+$a->strings["Make this hub my primary location"] = "Stel deze hub als mijn primaire locatie in";
+$a->strings["Import existing posts if possible"] = "Importeer bestaande berichten (wanneer mogelijk)";
$a->strings["%1\$s tagged %2\$s's %3\$s with %4\$s"] = "%1\$s labelde het %3\$s van %2\$s met %4\$s";
-$a->strings["Help:"] = "Hulp:";
-$a->strings["Not Found"] = "Niet gevonden";
$a->strings["Tag removed"] = "Label verwijderd";
$a->strings["Remove Item Tag"] = "Verwijder itemlabel";
$a->strings["Select a tag to remove: "] = "Kies een label om te verwijderen";
@@ -1503,16 +1577,17 @@ $a->strings["Profile Config"] = "Profielconfiguratie";
$a->strings["DB updates"] = "Database-updates";
$a->strings["Logs"] = "Logboeken";
$a->strings["Plugin Features"] = "Plug-in-opties";
-$a->strings["User registrations waiting for confirmation"] = "Accountregistraties die op goedkeuring wachten";
+$a->strings["User registrations waiting for confirmation"] = "Accounts die op goedkeuring wachten";
$a->strings["Message queues"] = "Berichtenwachtrij";
$a->strings["Administration"] = "Beheer";
$a->strings["Summary"] = "Samenvatting";
-$a->strings["Registered users"] = "Geregistreerde gebruikers";
+$a->strings["Registered users"] = "Geregistreerde accounts";
$a->strings["Pending registrations"] = "Accounts die op goedkeuring wachten";
$a->strings["Version"] = "Versie";
$a->strings["Active plugins"] = "Ingeschakelde plug-ins";
$a->strings["Site settings updated."] = "Hub-instellingen bijgewerkt.";
-$a->strings["No special theme for accessibility"] = "Geen speciaal thema voor universele toegang";
+$a->strings["experimental"] = "experimenteel";
+$a->strings["unsupported"] = "Niet ondersteund";
$a->strings["Yes - with approval"] = "Ja - met goedkeuring";
$a->strings["My site is not a public server"] = "Mijn RedMatrix-hub is niet openbaar";
$a->strings["My site has paid access only"] = "Mijn RedMatrix-hub kent alleen betaalde toegang";
@@ -1526,23 +1601,19 @@ $a->strings["Administrator Information"] = "Informatie over de beheerder van dez
$a->strings["Contact information for site administrators. Displayed on siteinfo page. BBCode can be used here"] = "Contactinformatie voor hub-beheerders. Getoond op pagina met hub-informatie. Er kan hier bbcode gebruikt worden.";
$a->strings["System language"] = "Standaardtaal";
$a->strings["System theme"] = "Standaardthema";
-$a->strings["Default system theme - may be over-ridden by user profiles - <a href='#' id='cnftheme'>change theme settings</a>"] = "Standaardthema voor RedMatrix-hub (kan door gebruiker veranderd worden) - <a href='#' id='cnftheme'>verander thema-instellingen</a>";
+$a->strings["Default system theme - may be over-ridden by user profiles - <a href='#' id='cnftheme'>change theme settings</a>"] = "Standaardthema voor RedMatrix-hub (kan door lid veranderd worden) - <a href='#' id='cnftheme'>verander thema-instellingen</a>";
$a->strings["Mobile system theme"] = "Standaardthema voor mobiel";
$a->strings["Theme for mobile devices"] = "Thema voor mobiele apparaten";
-$a->strings["Accessibility system theme"] = "Standaardthema voor universele toegang";
-$a->strings["Accessibility theme"] = "Thema voor universele toegang";
-$a->strings["Channel to use for this website's static pages"] = "Kanaal die op deze hub als statische pagina op de homepage gebruikt moet worden";
-$a->strings["Site Channel"] = "Kanaal op deze RedMatrix-hub";
-$a->strings["Enable Diaspora Protocol"] = "Diaspora-protocol inschakkelen";
+$a->strings["Enable Diaspora Protocol"] = "Diaspora-protocol inschakelen";
$a->strings["Communicate with Diaspora and Friendica - experimental"] = "Communiceer met Diaspora en Friendica (experimenteel)";
$a->strings["Allow Feeds as Connections"] = "Sta feeds toe als connecties";
$a->strings["(Heavy system resource usage)"] = "(sterk negatieve invloed op systeembronnen hub)";
$a->strings["Maximum image size"] = "Maximale grootte van afbeeldingen";
$a->strings["Maximum size in bytes of uploaded images. Default is 0, which means no limits."] = "Maximale grootte in bytes voor afbeeldingen die worden geüpload. Standaard is 0, wat geen limiet betekend.";
-$a->strings["Does this site allow new member registration?"] = "Staat deze hub registratie van nieuwe accounts toe?";
+$a->strings["Does this site allow new member registration?"] = "Staat deze hub nieuwe accounts toe?";
$a->strings["Which best describes the types of account offered by this hub?"] = "Wat voor soort accounts biedt deze RedMatrix-hub aan? Kies wat het meest in de buurt komt.";
-$a->strings["Register text"] = "Registratietekst";
-$a->strings["Will be displayed prominently on the registration page."] = "Wordt prominent op de registratiepagina getoond.";
+$a->strings["Register text"] = "Tekst tijdens registratie";
+$a->strings["Will be displayed prominently on the registration page."] = "Tekst dat op de pagina voor het registreren van nieuwe accounts wordt getoond.";
$a->strings["Accounts abandoned after x days"] = "Accounts als verlaten beschouwen na zoveel aantal dagen:";
$a->strings["Will not waste system resources polling external sites for abandonded accounts. Enter 0 for no time limit."] = "Zal geen systeembronnen verspillen door polling van externe hubs voor verlaten accounts. Vul 0 in voor geen tijdslimiet.";
$a->strings["Allowed friend domains"] = "Toegestane domeinen";
@@ -1550,15 +1621,17 @@ $a->strings["Comma separated list of domains which are allowed to establish frie
$a->strings["Allowed email domains"] = "Toegestane e-maildomeinen";
$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"] = "Door komma's gescheiden lijst met e-maildomeinen die op deze hub mogen registeren. Wildcards zijn toegestaan.\nLaat leeg om alle domeinen toe te laten.";
$a->strings["Block public"] = "Openbare toegang blokkeren";
-$a->strings["Check to block public access to all otherwise public personal pages on this site unless you are currently logged in."] = "Vink dit aan om alle normaliter openbare persoonlijke pagina's op deze hub alleen toegankelijk te maken voor ingelogde gebruikers.";
+$a->strings["Check to block public access to all otherwise public personal pages on this site unless you are currently logged in."] = "Vink dit aan om alle normaliter openbare persoonlijke pagina's op deze hub alleen toegankelijk te maken voor ingelogde leden.";
+$a->strings["Verify Email Addresses"] = "E-mailadres verifieren";
+$a->strings["Check to verify email addresses used in account registration (recommended)."] = "Inschakelen om e-mailadressen te verifiëren die tijdens de accountregistratie worden gebruikt (aanbevolen).";
$a->strings["Force publish"] = "Dwing kanaalvermelding af";
$a->strings["Check to force all profiles on this site to be listed in the site directory."] = "Vink dit aan om af te dwingen dat alle kanalen op deze hub in de kanalengids worden vermeld.";
$a->strings["Disable discovery tab"] = "Ontdekkingstab";
$a->strings["Remove the tab in the network view with public content pulled from sources chosen for this site."] = "Verwijder de tab in de matrix-weergave waarin zich een selectie aan openbare berichten bevindt, die automatisch voor deze hub zijn uitgekozen.";
$a->strings["No login on Homepage"] = "Geen inlogformulier op de 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)."] = "Vink dit aan om het inlogformulier op de homepage van deze hub, die niet-ingelogde gebruikers te zien krijgen, te verbergen. (bijvoorbeeld wanneer je een kanaal op deze RedMatrix-hub als homepage gebruikt)";
-$a->strings["Proxy user"] = "Proxy-gebruiker";
-$a->strings["Proxy URL"] = "Proxy-URL";
+$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)."] = "Vink dit aan om het inlogformulier op de homepage van deze hub, die niet-ingelogde bezoekers te zien krijgen, te verbergen. (bijvoorbeeld wanneer je een kanaal op deze RedMatrix-hub als homepage gebruikt)";
+$a->strings["Proxy user"] = "Gebruikersnaam proxy";
+$a->strings["Proxy URL"] = "URL proxy";
$a->strings["Network timeout"] = "Netwerktimeout";
$a->strings["Value is in seconds. Set to 0 for unlimited (not recommended)."] = "Waarde is in seconden. Zet op 0 voor onbeperkt (niet aanbevolen)";
$a->strings["Delivery interval"] = "Afleveringsinterval";
@@ -1591,7 +1664,7 @@ $a->strings["%s user deleted"] = array(
);
$a->strings["Account not found"] = "Account niet gevonden";
$a->strings["User '%s' unblocked"] = "Account '%s' gedeblokkeerd";
-$a->strings["User '%s' blocked"] = "Gebruiker '%s' geblokkeerd";
+$a->strings["User '%s' blocked"] = "Lid '%s' geblokkeerd";
$a->strings["Users"] = "Accounts";
$a->strings["select all"] = "alles selecteren";
$a->strings["User registrations waiting for confirm"] = "Accounts die op goedkeuring wachten";
@@ -1606,8 +1679,8 @@ $a->strings["Service Class"] = "Abonnementen";
$a->strings["Selected users will be deleted!\\n\\nEverything these users had posted on this site will be permanently deleted!\\n\\nAre you sure?"] = "Geselecteerde accounts (met bijbehorende kanalen) worden verwijderd!\\n\\nAlles wat deze accounts op deze hub hebben gepubliceerd wordt definitief verwijderd!\\n\\Weet je het zeker?";
$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?"] = "Account {0} (met bijbehorende kanalen) wordt verwijderd !\\n\\nAlles wat dit account op deze hub heeft gepubliceerd wordt definitief verwijderd!\\n\\nWeet je het zeker?";
$a->strings["%s channel censored/uncensored"] = array(
- 0 => "%s kanalen gecensureerd/ongecensureerd",
- 1 => "%s kanaal gecensureerd/ongecensureerd",
+ 0 => "%s kanaal gecensureerd/ongecensureerd",
+ 1 => "%s kanalen gecensureerd/ongecensureerd",
);
$a->strings["%s channel deleted"] = array(
0 => "%s kanaal verwijderd",
@@ -1649,37 +1722,32 @@ $a->strings["Help text"] = "Helptekst";
$a->strings["Additional info (optional)"] = "Extra informatie (optioneel)";
$a->strings["Field definition not found"] = "Velddefinitie niet gevonden";
$a->strings["Edit Profile Field"] = "Profielveld bewerken";
-$a->strings["Thing updated"] = "Ding bijgewerkt";
-$a->strings["Object store: failed"] = "Opslaan van ding mislukt";
-$a->strings["Thing added"] = "Ding toegevoegd";
-$a->strings["OBJ: %1\$s %2\$s %3\$s"] = "OBJ: %1\$s %2\$s %3\$s";
-$a->strings["Show Thing"] = "Ding weergeven";
-$a->strings["item not found."] = "Item niet gevonden";
-$a->strings["Edit Thing"] = "Ding bewerken";
-$a->strings["Select a profile"] = "Kies een profiel";
-$a->strings["Post an activity"] = "Plaats een bericht";
-$a->strings["Only sends to viewers of the applicable profile"] = "Toont dit alleen aan diegene die het gekozen profiel mogen zien.";
-$a->strings["Name of thing e.g. something"] = "Naam van ding";
-$a->strings["URL of thing (optional)"] = "URL van ding (optioneel)";
-$a->strings["URL for photo of thing (optional)"] = "URL van foto van ding (optioneel)";
-$a->strings["Add Thing to your Profile"] = "Ding aan je profiel toevoegen";
-$a->strings["Nothing to import."] = "Niets gevonden om te importeren";
-$a->strings["Unable to download data from old server"] = "Niet in staat om gegevens van de oude hub te downloaden";
-$a->strings["Imported file is empty."] = "Geïmporteerde bestand is leeg";
-$a->strings["Cannot create a duplicate channel identifier on this system. Import failed."] = "Kan geen dubbele kanaal-identificator op deze hub aanmaken. Importeren mislukt.";
-$a->strings["Channel clone failed. Import failed."] = "Het klonen van het kanaal is mislukt. Importeren mislukt.";
-$a->strings["Cloned channel not found. Import failed."] = "Gekloond kanaal niet gevonden. Importeren mislukt.";
-$a->strings["Import completed."] = "Import voltooid.";
-$a->strings["You must be logged in to use this feature."] = "Je moet ingelogd zijn om dit onderdeel te kunnen gebruiken.";
-$a->strings["Import Channel"] = "Kanaal importeren";
-$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."] = "Gebruik dit formulier om een bestaand kanaal te importeren van een andere hub. Je kan de kanaal-identiteit van de oude hub via het netwerk ontvangen of een exportbestand verstrekken. Alleen de identiteit en de connecties zullen geïmporteerd worden. Het importeren van inhoud is nog niet beschikbaar.";
-$a->strings["File to Upload"] = "Bestand om te uploaden";
-$a->strings["Or provide the old server/hub details"] = "Of vul de gegevens van de oude hub in";
-$a->strings["Your old identity address (xyz@example.com)"] = "Jouw oude kanaaladres (xyz@example.com)";
-$a->strings["Your old login email address"] = "Het e-mailadres van je oude account";
-$a->strings["Your old login password"] = "Wachtwoord van jouw oude account";
-$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."] = "Voor elke optie geldt dat je moet kiezen of je jouw primaire kanaaladres op deze hub wil instellen of dat jouw oude hub deze rol blijft vervullen.";
-$a->strings["Make this hub my primary location"] = "Stel deze hub als mijn primaire locatie in";
+$a->strings["Location not found."] = "Locatie niet gevonden.";
+$a->strings["Primary location cannot be removed."] = "Primaire locatie kan niet worden verwijderd.";
+$a->strings["No locations found."] = "Geen locaties gevonden.";
+$a->strings["Manage Channel Locations"] = "Kanaallocaties beheren";
+$a->strings["Location (address)"] = "Locatie (adres)";
+$a->strings["Primary Location"] = "Primaire locatie";
+$a->strings["Drop location"] = "Locatie verwijderen";
+$a->strings["Unable to lookup recipient."] = "Niet in staat om ontvanger op te zoeken.";
+$a->strings["Unable to communicate with requested channel."] = "Niet in staat om met het aangevraagde kanaal te communiceren.";
+$a->strings["Cannot verify requested channel."] = "Kan opgevraagd kanaal niet verifieren";
+$a->strings["Selected channel has private message restrictions. Send failed."] = "Gekozen kanaal heeft restricties voor privéberichten. Verzenden mislukt.";
+$a->strings["Message deleted."] = "Bericht verwijderd.";
+$a->strings["Message recalled."] = "Bericht ingetrokken.";
+$a->strings["Send Private Message"] = "Privébericht versturen";
+$a->strings["To:"] = "Aan:";
+$a->strings["Subject:"] = "Onderwerp:";
+$a->strings["Your message:"] = "Jouw bericht:";
+$a->strings["Send"] = "Verzenden";
+$a->strings["Message not found."] = "Bericht niet gevonden";
+$a->strings["Delete message"] = "Bericht verwijderen";
+$a->strings["Recall message"] = "Bericht intrekken";
+$a->strings["Message has been recalled."] = "Bericht is ingetrokken.";
+$a->strings["Private Conversation"] = "Privéconversatie";
+$a->strings["Delete conversation"] = "Verwijder conversatie";
+$a->strings["No secure communications available. You <strong>may</strong> be able to respond from the sender's profile page."] = "Geen veilige communicatie beschikbaar. <strong>Mogelijk</strong> kan je reageren op de kanaalpagina van de afzender.";
+$a->strings["Send Reply"] = "Antwoord versturen";
$a->strings["Total invitation limit exceeded."] = "Limiet voor aantal uitnodigingen overschreden.";
$a->strings["%s : Not a valid email address."] = "%s : Geen geldig e-mailadres.";
$a->strings["Please join us on Red"] = "Uitnodiging voor de RedMatrix";
@@ -1692,80 +1760,35 @@ $a->strings["%d message sent."] = array(
$a->strings["You have no more invitations available"] = "Je hebt geen uitnodigingen meer beschikbaar";
$a->strings["Send invitations"] = "Uitnodigingen verzenden";
$a->strings["Enter email addresses, one per line:"] = "Voer e-mailadressen in, één per regel:";
-$a->strings["Your message:"] = "Jouw bericht:";
$a->strings["Please join my community on RedMatrix."] = "Hierbij nodig ik je uit om mij, en andere vrienden en kennissen, op de RedMatrix te vergezellen. Lees meer over de RedMatrix op https://redmatrix.me.";
$a->strings["You will need to supply this invitation code: "] = "Je moet deze uitnodigingscode opgeven:";
$a->strings["1. Register at any RedMatrix location (they are all inter-connected)"] = "1. Registreer je op een willekeurige RedMatrix-hub (ze zijn allemaal onderling met elkaar verbonden):";
$a->strings["2. Enter my RedMatrix network address into the site searchbar."] = "2. Nadat je bent ingelogd en een kanaal hebt aangemaakt kan je mijn kanaaladres in het zoekveld invullen:";
$a->strings["or visit "] = "of bezoek ";
$a->strings["3. Click [Connect]"] = "3. Klik op [+ Verbinden]";
-$a->strings["Unable to locate original post."] = "Niet in staat om de originele locatie van het bericht te vinden. ";
-$a->strings["Empty post discarded."] = "Leeg bericht geannuleerd";
-$a->strings["Executable content type not permitted to this channel."] = "Uitvoerbare bestanden zijn niet toegestaan op dit kanaal.";
-$a->strings["System error. Post not saved."] = "Systeemfout. Bericht niet opgeslagen.";
-$a->strings["You have reached your limit of %1$.0f top level posts."] = "Je hebt jouw limiet van %1$.0f berichten bereikt.";
-$a->strings["You have reached your limit of %1$.0f webpages."] = "Je hebt jouw limiet van %1$.0f webpagina's bereikt.";
+$a->strings["You have created %1$.0f of %2$.0f allowed channels."] = "Je hebt %1$.0f van totaal %2$.0f toegestane kanalen aangemaakt.";
+$a->strings["Create a new channel"] = "Nieuw kanaal aanmaken";
+$a->strings["Current Channel"] = "Huidig kanaal";
+$a->strings["Attach to one of your channels by selecting it."] = "Gebruik een van jouw kanalen door op een te klikken.";
+$a->strings["Default Channel"] = "Standaardkanaal";
+$a->strings["Make Default"] = "Als standaard instellen";
$a->strings["[Embedded content - reload page to view]"] = "[Ingesloten inhoud - ververs pagina om te bekijken] ";
$a->strings["Help with this feature"] = "Hulp voor dit onderdeel";
-$a->strings["Layout Name"] = "Naam layout";
-$a->strings["Like/Dislike"] = "Leuk/niet leuk";
-$a->strings["This action is restricted to members."] = "Deze actie kan alleen door mensen met een RedMatrix-account worden uitgevoerd.";
-$a->strings["Please <a href=\"rmagic\">login with your RedMatrix ID</a> or <a href=\"register\">register as a new RedMatrix member</a> to continue."] = "Je dient <a href=\"rmagic\">in te loggen met je RedMatrix-account</a> of <a href=\"register\">een nieuw RedMatrix-account te registreren</a> om verder te kunnen gaan.";
-$a->strings["Invalid request."] = "Ongeldig verzoek";
-$a->strings["thing"] = "ding";
-$a->strings["Channel unavailable."] = "Kanaal niet beschikbaar.";
-$a->strings["Previous action reversed."] = "Vorige actie omgedraaid";
-$a->strings["Action completed."] = "Actie voltooid";
-$a->strings["Thank you."] = "Bedankt";
+$a->strings["Layout Name"] = "Naam lay-out";
$a->strings["Remote privacy information not available."] = "Privacy-informatie op afstand niet beschikbaar.";
$a->strings["Visible to:"] = "Zichtbaar voor:";
$a->strings["No connections."] = "Geen connecties.";
$a->strings["Visit %s's profile [%s]"] = "Bezoek het profiel van %s [%s]";
$a->strings["View Connnections"] = "Connecties weergeven";
-$a->strings["No valid account found."] = "Geen geldige account gevonden.";
-$a->strings["Password reset request issued. Check your email."] = "Het verzoek om je wachtwoord opnieuw in te stellen is behandeld. Controleer je e-mail.";
-$a->strings["Site Member (%s)"] = "Lid van hub (%s)";
-$a->strings["Password reset requested at %s"] = "Verzoek tot het opnieuw instellen van een wachtwoord op %s is ingediend";
-$a->strings["Request could not be verified. (You may have previously submitted it.) Password reset failed."] = "Het verzoek kon niet worden geverifieerd. (Mogelijk heb je al eerder een verzoek ingediend.) Opnieuw instellen van wachtwoord is mislukt.";
-$a->strings["Password Reset"] = "Wachtwoord vergeten?";
-$a->strings["Your password has been reset as requested."] = "Jouw wachtwoord is opnieuw ingesteld zoals je had verzocht.";
-$a->strings["Your new password is"] = "Jouw nieuwe wachtwoord is";
-$a->strings["Save or copy your new password - and then"] = "Kopieer of sla je nieuwe wachtwoord op - en";
-$a->strings["click here to login"] = "klik dan hier om in te loggen";
-$a->strings["Your password may be changed from the <em>Settings</em> page after successful login."] = "Jouw wachtwoord kan worden veranderd onder <em>instellingen</em>, nadat je succesvol bent ingelogd.";
-$a->strings["Your password has changed at %s"] = "Jouw wachtwoord op %s is veranderd";
-$a->strings["Forgot your Password?"] = "Wachtwoord vergeten?";
-$a->strings["Enter your email address and submit to have your password reset. Then check your email for further instructions."] = "Voer je e-mailadres in en verstuur deze om je wachtwoord opnieuw in te stellen. Controleer hierna hier je e-mail voor verdere instructies.";
-$a->strings["Email Address"] = "E-mailadres";
-$a->strings["Reset"] = "Opnieuw instellen";
$a->strings["Hub not found."] = "Hub niet gevonden.";
$a->strings["Total votes"] = "Totaal aantal stemmen";
-$a->strings["Average Rating"] = "Gemiddeld cijfer";
-$a->strings["Unable to lookup recipient."] = "Niet in staat om ontvanger op te zoeken.";
-$a->strings["Unable to communicate with requested channel."] = "Niet in staat om met het aangevraagde kanaal te communiceren.";
-$a->strings["Cannot verify requested channel."] = "Kan opgevraagd kanaal niet verifieren";
-$a->strings["Selected channel has private message restrictions. Send failed."] = "Gekozen kanaal heeft restricties voor privéberichten. Verzenden mislukt.";
-$a->strings["Messages"] = "Berichten";
-$a->strings["Message deleted."] = "Bericht verwijderd.";
-$a->strings["Message recalled."] = "Bericht ingetrokken.";
-$a->strings["Send Private Message"] = "Privébericht versturen";
-$a->strings["To:"] = "Aan:";
-$a->strings["Subject:"] = "Onderwerp:";
-$a->strings["Send"] = "Verzenden";
-$a->strings["Message not found."] = "Bericht niet gevonden";
-$a->strings["Delete message"] = "Bericht verwijderen";
-$a->strings["Recall message"] = "Bericht intrekken";
-$a->strings["Message has been recalled."] = "Bericht is ingetrokken.";
-$a->strings["Private Conversation"] = "Privéconversatie";
-$a->strings["Delete conversation"] = "Verwijder conversatie";
-$a->strings["No secure communications available. You <strong>may</strong> be able to respond from the sender's profile page."] = "Geen veilige communicatie beschikbaar. <strong>Mogelijk</strong> kan je reageren op de kanaalpagina van de afzender.";
-$a->strings["Send Reply"] = "Antwoord versturen";
-$a->strings["You have created %1$.0f of %2$.0f allowed channels."] = "Je hebt %1$.0f van totaal %2$.0f toegestane kanalen aangemaakt.";
-$a->strings["Create a new channel"] = "Nieuw kanaal aanmaken";
-$a->strings["Current Channel"] = "Huidig kanaal";
-$a->strings["Attach to one of your channels by selecting it."] = "Gebruik een van jouw kanalen door op een te klikken.";
-$a->strings["Default Channel"] = "Standaardkanaal";
-$a->strings["Make Default"] = "Als standaard instellen";
+$a->strings["Average Rating"] = "Gemiddelde waardering";
+$a->strings["No such group"] = "Collectie niet gevonden";
+$a->strings["Search Results For:"] = "Zoekresultaten voor:";
+$a->strings["Collection is empty"] = "Collectie is leeg";
+$a->strings["Collection: "] = "Collectie: ";
+$a->strings["Connection: "] = "Connectie: ";
+$a->strings["Invalid connection."] = "Ongeldige connectie.";
$a->strings["Wall Photos"] = "Kanaalfoto's";
$a->strings["Profile Match"] = "Profielovereenkomst";
$a->strings["No keywords to match. Please add keywords to your default profile."] = "Je hebt geen trefwoorden waarmee overeenkomsten gevonden kunnen worden. Voeg enkele trefwoorden aan je standaardprofiel toe.";
@@ -1777,6 +1800,7 @@ $a->strings["Menu created."] = "Menu aangemaakt.";
$a->strings["Unable to create menu."] = "Niet in staat om menu aan te maken.";
$a->strings["Manage Menus"] = "Menu's beheren";
$a->strings["Drop"] = "Verwijderen";
+$a->strings["Bookmarks allowed"] = "Bladwijzers toegestaan";
$a->strings["Create a new menu"] = "Een nieuwe menu aanmaken";
$a->strings["Delete this menu"] = "Menu verwijderen";
$a->strings["Edit menu contents"] = "Bewerk de inhoud van het menu";
@@ -1796,19 +1820,69 @@ $a->strings["Conversation removed."] = "Conversatie verwijderd";
$a->strings["No messages."] = "Geen berichten";
$a->strings["D, d M Y - g:i A"] = "D, j M Y - G:i";
$a->strings["Add a Channel"] = "Kanaal toevoegen";
-$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."] = "Een kanaal is jouw eigen verzameling gerelateerde webpagina's. Een kanaal kan gebruikt worden voor een sociaal netwerk, weblog, discussiegroep of forum, een pagina over een beroemdheid, en voor veel meer. Je kan net zoveel kanalen aanmaken als dat de eigenaar/beheerder van jouw hub toestaat.";
+$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."] = "Een kanaal is jouw eigen verzameling gerelateerde webpagina's. Een kanaal kan gebruikt worden voor een sociaal netwerk, weblog, discussiegroep of forum, een pagina over een beroemdheid, en voor veel meer. Je kan net zoveel kanalen aanmaken als dat de eigenaar/beheerder van jouw hub toestaat.";
$a->strings["Examples: \"Bob Jameson\", \"Lisa and her Horses\", \"Soccer\", \"Aviation Group\" "] = "Voorbeelden: \"Bruce Springsteen\", \"Familiefoto's\", \"Voetbal\", \"Astronomie\"";
$a->strings["Choose a short nickname"] = "Kies een korte bijnaam";
$a->strings["Your nickname will be used to create an easily remembered channel address (like an email address) which you can share with others."] = "Jouw bijnaam wordt gebruikt om een makkelijk te onthouden kanaaladres (zoals een e-mailadres) aan te maken, die je dan kan delen met anderen.";
$a->strings["Or <a href=\"import\">import an existing channel</a> from another location"] = "Of <a href=\"import\">importeer een bestaand kanaal</a> vanaf een andere locatie.";
+$a->strings["Channel Type"] = "Kanaaltype";
+$a->strings["Please choose a channel type (such as social networking or community forum) and privacy requirements so we can select the best permissions for you"] = "Kies een kanaaltype (bijv. een persoonlijk kanaal voor een sociaal netwerk of eentje voor een groepsforum) en jouw behoefte aan privacy, zodat wij voor jou de beste permissies kunnen kiezen.";
$a->strings["Invalid request identifier."] = "Ongeldige verzoek identificator (request identifier)";
$a->strings["Discard"] = "Annuleren";
$a->strings["No more system notifications."] = "Geen systeemnotificaties meer.";
$a->strings["System Notifications"] = "Systeemnotificaties";
+$a->strings["Xchan Lookup"] = "Xchan opzoeken";
+$a->strings["Lookup xchan beginning with (or webbie): "] = "Zoek een xchan (of webbie) die begint met:";
+$a->strings["invalid target signature"] = "ongeldig doelkenmerk";
$a->strings["Unable to find your hub."] = "Niet in staat om je hub te vinden";
$a->strings["Post successful."] = "Verzenden bericht geslaagd.";
-$a->strings["invalid target signature"] = "ongeldig doel-kenmerk (target signature)";
-$a->strings["OpenID protocol error. No ID returned."] = "OpenID-protocolfout. Geen ID terugontvangen.";
+$a->strings["Gender: "] = "Geslacht:";
+$a->strings["Status: "] = "Status: ";
+$a->strings["Homepage: "] = "Homepage: ";
+$a->strings["Hometown: "] = "Oorspronkelijk uit: ";
+$a->strings["About: "] = "Over: ";
+$a->strings["Public Forum:"] = "Openbaar forum:";
+$a->strings["Keywords: "] = "Trefwoorden: ";
+$a->strings["Finding:"] = "Gezocht naar:";
+$a->strings["next page"] = "volgende pagina";
+$a->strings["previous page"] = "vorige pagina";
+$a->strings["No entries (some entries may be hidden)."] = "Niets gevonden (sommige kanalen kunnen verborgen zijn).";
+$a->strings["Page owner information could not be retrieved."] = "Informatie over de pagina-eigenaar werd niet ontvangen.";
+$a->strings["Album not found."] = "Album niet gevonden.";
+$a->strings["Delete Album"] = "Verwijder album";
+$a->strings["Delete Photo"] = "Verwijder foto";
+$a->strings["No photos selected"] = "Geen foto's geselecteerd";
+$a->strings["Access to this item is restricted."] = "Toegang tot dit item is beperkt.";
+$a->strings["%1$.2f MB of %2$.2f MB photo storage used."] = "%1$.2f MB van %2$.2f MB aan foto-opslag gebruikt.";
+$a->strings["%1$.2f MB photo storage used."] = "%1$.2f MB aan foto-opslag gebruikt.";
+$a->strings["Upload Photos"] = "Foto's uploaden";
+$a->strings["Enter a new album name"] = "Vul een nieuwe albumnaam in";
+$a->strings["or select an existing one (doubleclick)"] = "of kies een bestaand album (dubbelklikken)";
+$a->strings["Do not show a status post for this upload"] = "Plaats geen bericht voor deze upload.";
+$a->strings["Album name could not be decoded"] = "Albumnaam kon niet gedecodeerd worden";
+$a->strings["Contact Photos"] = "Connectiefoto's";
+$a->strings["Show Newest First"] = "Nieuwste eerst weergeven";
+$a->strings["Show Oldest First"] = "Oudste eerst weergeven";
+$a->strings["View Photo"] = "Foto weergeven";
+$a->strings["Edit Album"] = "Album bewerken";
+$a->strings["Permission denied. Access to this item may be restricted."] = "Toegang geweigerd. Toegang tot dit item kan zijn beperkt.";
+$a->strings["Photo not available"] = "Foto niet aanwezig";
+$a->strings["Use as profile photo"] = "Als profielfoto gebruiken";
+$a->strings["Private Photo"] = "Privéfoto";
+$a->strings["View Full Size"] = "Volledige grootte weergeven";
+$a->strings["Edit photo"] = "Foto bewerken";
+$a->strings["Rotate CW (right)"] = "Draai met de klok mee (naar rechts)";
+$a->strings["Rotate CCW (left)"] = "Draai tegen de klok in (naar links)";
+$a->strings["Caption"] = "Bijschrift";
+$a->strings["Add a Tag"] = "Label toevoegen";
+$a->strings["Example: @bob, @Barbara_Jensen, @jim@example.com"] = "Voorbeeld: @bob, @Barbara_Jansen, @jan@voorbeeld.nl";
+$a->strings["Flag as adult in album view"] = "Markeer als voor volwassenen in albumweergave";
+$a->strings["In This Photo:"] = "Op deze foto:";
+$a->strings["View Album"] = "Album weergeven";
+$a->strings["Recent Photos"] = "Recente foto's";
+$a->strings["sent you a private message"] = "stuurde jou een privébericht";
+$a->strings["added your channel"] = "voegde jouw kanaal toe";
+$a->strings["posted an event"] = "plaatste een gebeurtenis";
$a->strings["App installed."] = "App geïnstalleerd";
$a->strings["Malformed app."] = "Misvormde app.";
$a->strings["Embed code"] = "Insluitcode";
@@ -1828,6 +1902,7 @@ $a->strings["Remove This Account"] = "Verwijder dit account";
$a->strings["This will completely remove this account including all its channels from the network. Once this has been done it is not recoverable."] = "Deze actie verwijderd dit account volledig, inclusief al zijn kanalen. Dit kan hierna op geen enkele manier ongedaan gemaakt worden.";
$a->strings["Remove this account, all its channels and all its channel clones from the network"] = "Dit account, al zijn kanalen en alle klonen van zijn kanalen uit het RedMatrix-netwerk verwijderen";
$a->strings["By default only the instances of the channels located on this hub will be removed from the network"] = "Standaard worden alleen de kanalen die zich op deze hub bevinden uit het RedMatrix-netwerk verwijderd.";
+$a->strings["No service class restrictions found."] = "Geen abonnementsbeperkingen gevonden.";
$a->strings["Schema Default"] = "Standaardschema";
$a->strings["Sans-Serif"] = "Schreefloos";
$a->strings["Monospace"] = "Monospace";
@@ -1839,7 +1914,7 @@ $a->strings["Set iconset"] = "Pictogrammenset instellen";
$a->strings["Set big shadow size, default 15px 15px 15px"] = "Een grote schaduwgrootte instellen (standaard 15px 15px 15px)";
$a->strings["Set small shadow size, default 5px 5px 5px"] = "Een kleine schaduwgrootte instellen (standaard 5px 5px 5px)";
$a->strings["Set shadow color, default #000"] = "Schaduwkleur instellen (standaard #000)";
-$a->strings["Set radius size, default 5px"] = "Radius instellen, standaard 5px";
+$a->strings["Set radius size, default 5px"] = "Radius instellen (standaard 5px)";
$a->strings["Set line-height for posts and comments"] = "Lijnhoogte voor berichten en reacties instellen";
$a->strings["Set background image"] = "Achtergrondafbeelding instellen";
$a->strings["Set background attachment"] = "Gedrag achtergrondafbeelding instellen";
@@ -1863,9 +1938,6 @@ $a->strings["Right offset of the section element"] = "Rechter offset van het sec
$a->strings["Section width"] = "Breedte van sectie";
$a->strings["Left offset of the aside"] = "Rechter offset van aside (zijbalk)";
$a->strings["Right offset of the aside element"] = "Rechter offset van het aside-element";
-$a->strings["None"] = "Geen";
-$a->strings["Header image"] = "Header-afbeelding";
-$a->strings["Header image only on profile pages"] = "Header-afbeelding alleen op profielpagina's weergeven";
$a->strings["Light (Red Matrix default)"] = "Light (RedMatrix-standaard)";
$a->strings["Narrow navbar"] = "Smalle navigatiebalk";
$a->strings["Navigation bar background color"] = "Achtergrondkleur navigatiebalk";
diff --git a/view/php/theme_init.php b/view/php/theme_init.php
index 45eb2fc1d..f28f9aa8d 100644
--- a/view/php/theme_init.php
+++ b/view/php/theme_init.php
@@ -10,15 +10,19 @@ head_add_css('library/colorbox/colorbox.css');
head_add_css('view/css/conversation.css');
head_add_css('view/css/widgets.css');
-
+head_add_css('library/justifiedGallery/dist/css/justifiedGallery.css');
+head_add_css('library/bootstrap-tagsinput/bootstrap-tagsinput.css');
head_add_js('jquery.js');
head_add_js('jquery-migrate-1.1.1.js');
+head_add_js('library/justifiedGallery/dist/js/jquery.justifiedGallery.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/jquery-textcomplete/jquery.textcomplete.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');
@@ -30,6 +34,7 @@ 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('library/stylish_select/jquery.stylish-select.js');
head_add_js('acl.js');
head_add_js('webtoolkit.base64.js');
head_add_js('main.js');
@@ -37,6 +42,7 @@ head_add_js('crypto.js');
head_add_js('library/jslider/bin/jquery.slider.min.js');
head_add_js('docready.js');
head_add_js('library/colorbox/jquery.colorbox-min.js');
+head_add_js('library/bootstrap-tagsinput/bootstrap-tagsinput.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
deleted file mode 100644
index bc86e5fe1..000000000
--- a/view/pt-br/follow_notify_eml.tpl
+++ /dev/null
@@ -1,14 +0,0 @@
-
-Caro/a {{$myname}},
-
-Você tem um novo seguidor em {{$sitename}} - '{{$requestor}}'.
-
-Você pode ver o perfil dele em {{$url}}.
-
-Por favor, autentique-se no seu site para aprovara ou ignorar/cancelar esta solicitação.
-
-{{$siteurl}}
-
-Gratidão,
-
- {{$sitename}} administrador
diff --git a/view/pt-br/friend_complete_eml.tpl b/view/pt-br/friend_complete_eml.tpl
deleted file mode 100644
index 51adf23e3..000000000
--- a/view/pt-br/friend_complete_eml.tpl
+++ /dev/null
@@ -1,23 +0,0 @@
-
-Caro/a {{$username}},
-
- Boas notícias... '{{$fn}}' em '{{$dfrn_url}}' aceitou
-seu pedido de conexão em '{{$sitename}}'.
-
-Vocês agora são amigos mútuos e podem trocar atualizações de status, fotos,
-e email sem restrição.
-
-Por favor, visite sua página 'Conexões' em {{$sitename}} se quiser efetuar
-quaisquer mudanças nesse relacionamento.
-
-{{$siteurl}}
-
-[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}}'].
-
-Atenciosamente,
-
- {{$sitename}} Administrador
-
-
diff --git a/view/pt-br/intro_complete_eml.tpl b/view/pt-br/intro_complete_eml.tpl
deleted file mode 100644
index bd20e0a6e..000000000
--- a/view/pt-br/intro_complete_eml.tpl
+++ /dev/null
@@ -1,22 +0,0 @@
-
-Caro/a {{$username}},
-
- '{{$fn}}' em '{{$dfrn_url}}' aceitou sua solicitação de conexão
-em '{{$sitename}}'.
-
- '{{$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}}' pode escolher no futuro transformar essa relação em uma
-mais permissiva, de duas vias.
-
- Você começará a receber atualizações de status públicas de '{{$fn}}',
-que aparecerão na sua Matriz em
-
-{{$siteurl}}
-
-Atenciosamente,
-
- {{$sitename}} Administrador
diff --git a/view/pt-br/messages.po b/view/pt-br/messages.po
index 9d884507d..9de225062 100644
--- a/view/pt-br/messages.po
+++ b/view/pt-br/messages.po
@@ -16,8 +16,8 @@ msgid ""
msgstr ""
"Project-Id-Version: Red Matrix\n"
"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2014-06-06 00:02-0700\n"
-"PO-Revision-Date: 2014-06-12 15:56+0000\n"
+"POT-Creation-Date: 2014-10-03 00:04-0700\n"
+"PO-Revision-Date: 2014-10-07 15:36+0000\n"
"Last-Translator: Iske 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"
@@ -31,49 +31,22 @@ msgstr ""
msgid "Cannot locate DNS info for database server '%s'"
msgstr "Não foi possível localizar a informação de DNS para o servidor de banco de dados '%s'"
-#: ../../include/photo/photo_driver.php:643 ../../include/photos.php:51
+#: ../../include/photo/photo_driver.php:653 ../../include/photos.php:51
+#: ../../mod/photos.php:91 ../../mod/photos.php:660 ../../mod/photos.php:682
#: ../../mod/profile_photo.php:142 ../../mod/profile_photo.php:301
-#: ../../mod/profile_photo.php:421 ../../mod/photos.php:91
-#: ../../mod/photos.php:655 ../../mod/photos.php:677
+#: ../../mod/profile_photo.php:423
msgid "Profile Photos"
msgstr "Fotos do perfil"
-#: ../../include/bbcode.php:128 ../../include/bbcode.php:642
-#: ../../include/bbcode.php:645 ../../include/bbcode.php:650
-#: ../../include/bbcode.php:653 ../../include/bbcode.php:656
-#: ../../include/bbcode.php:659 ../../include/bbcode.php:664
-#: ../../include/bbcode.php:667 ../../include/bbcode.php:672
-#: ../../include/bbcode.php:675 ../../include/bbcode.php:678
-#: ../../include/bbcode.php:681
-msgid "Image/photo"
-msgstr "Imagem/foto"
-
-#: ../../include/bbcode.php:163 ../../include/bbcode.php:692
-msgid "Encrypted content"
-msgstr "Conteúdo criptografado"
-
-#: ../../include/bbcode.php:179
-msgid "QR code"
-msgstr "código QR"
-
-#: ../../include/bbcode.php:228
-#, php-format
-msgid "%1$s wrote the following %2$s %3$s"
-msgstr "%1$s escreveu a seguinte %2$s %3$s"
-
-#: ../../include/bbcode.php:230
-msgid "post"
-msgstr "publicação"
-
-#: ../../include/bbcode.php:610 ../../include/bbcode.php:630
-msgid "$1 wrote:"
-msgstr "$1 escreveu:"
+#: ../../include/network.php:590
+msgid "view full size"
+msgstr "ver na tela inteira"
-#: ../../include/oembed.php:171
+#: ../../include/oembed.php:163
msgid "Embedded content"
msgstr "Conteúdo incorporado"
-#: ../../include/oembed.php:180
+#: ../../include/oembed.php:172
msgid "Embedding disabled"
msgstr "A incorporação está desabilitada"
@@ -86,1189 +59,1184 @@ msgstr "criou uma nova publicação"
msgid "commented on %s's post"
msgstr "comentou a publicação de %s"
-#: ../../include/conversation.php:117 ../../include/text.php:1705
-#: ../../mod/subthread.php:72 ../../mod/subthread.php:174
-#: ../../mod/tagger.php:45 ../../mod/like.php:111
+#: ../../include/apps.php:123
+msgid "Site Admin"
+msgstr "Administração do site"
+
+#: ../../include/apps.php:124 ../../include/conversation.php:1566
+#: ../../include/nav.php:116
+msgid "Bookmarks"
+msgstr "Links guardados"
+
+#: ../../include/apps.php:125
+msgid "Address Book"
+msgstr "Livro de Endereços"
+
+#: ../../include/apps.php:126 ../../include/nav.php:124 ../../boot.php:1495
+msgid "Login"
+msgstr "Entrar"
+
+#: ../../include/apps.php:127 ../../include/nav.php:214
+#: ../../mod/manage.php:148
+msgid "Channel Manager"
+msgstr "Seus canais"
+
+#: ../../include/apps.php:128 ../../include/nav.php:188
+msgid "Matrix"
+msgstr "Matriz"
+
+#: ../../include/apps.php:129 ../../include/nav.php:216
+#: ../../include/widgets.php:521 ../../mod/admin.php:953
+#: ../../mod/admin.php:1158
+msgid "Settings"
+msgstr "Configurações"
+
+#: ../../include/apps.php:130 ../../include/conversation.php:1542
+#: ../../include/reddav.php:1280 ../../include/nav.php:105
+#: ../../mod/fbrowser.php:114
+msgid "Files"
+msgstr "Arquivos"
+
+#: ../../include/apps.php:131 ../../include/conversation.php:1577
+#: ../../include/nav.php:120 ../../mod/webpages.php:84
+msgid "Webpages"
+msgstr "Páginas web"
+
+#: ../../include/apps.php:132 ../../include/nav.php:191
+msgid "Channel Home"
+msgstr "Página inicial do canal"
+
+#: ../../include/apps.php:133 ../../include/identity.php:1110
+#: ../../include/identity.php:1228 ../../mod/profperm.php:112
+msgid "Profile"
+msgstr "Perfil"
+
+#: ../../include/apps.php:134 ../../include/conversation.php:1533
+#: ../../include/nav.php:104 ../../mod/fbrowser.php:25
+msgid "Photos"
+msgstr "Fotos"
+
+#: ../../include/apps.php:135 ../../include/nav.php:210
+#: ../../mod/events.php:436
+msgid "Events"
+msgstr "Eventos"
+
+#: ../../include/apps.php:136 ../../include/nav.php:177
+#: ../../mod/directory.php:226
+msgid "Directory"
+msgstr "Diretório"
+
+#: ../../include/apps.php:137 ../../include/nav.php:169 ../../mod/help.php:60
+#: ../../mod/help.php:65
+msgid "Help"
+msgstr "Ajuda"
+
+#: ../../include/apps.php:138 ../../include/nav.php:202
+msgid "Mail"
+msgstr "Mensagens"
+
+#: ../../include/apps.php:139 ../../mod/mood.php:131
+msgid "Mood"
+msgstr "Humor"
+
+#: ../../include/apps.php:140 ../../include/conversation.php:947
+msgid "Poke"
+msgstr "Cutucar"
+
+#: ../../include/apps.php:141 ../../include/nav.php:110
+msgid "Chat"
+msgstr "Bate-papo"
+
+#: ../../include/apps.php:142 ../../include/text.php:821
+#: ../../include/text.php:835 ../../include/nav.php:174
+#: ../../mod/search.php:30
+msgid "Search"
+msgstr "Pesquisar"
+
+#: ../../include/apps.php:143
+msgid "Probe"
+msgstr "Sonda"
+
+#: ../../include/apps.php:144
+msgid "Suggest"
+msgstr "Sugerir"
+
+#: ../../include/apps.php:145
+msgid "Random Channel"
+msgstr "Canal aleatório"
+
+#: ../../include/apps.php:146
+msgid "Invite"
+msgstr "Convidar"
+
+#: ../../include/apps.php:147
+msgid "Features"
+msgstr "Recursos"
+
+#: ../../include/apps.php:148
+msgid "Language"
+msgstr "Idioma"
+
+#: ../../include/apps.php:149
+msgid "Post"
+msgstr "Publicações"
+
+#: ../../include/apps.php:150
+msgid "Profile Photo"
+msgstr "Foto do perfil"
+
+#: ../../include/apps.php:239 ../../mod/settings.php:79
+#: ../../mod/settings.php:545
+msgid "Update"
+msgstr "Atualizar"
+
+#: ../../include/apps.php:239
+msgid "Install"
+msgstr "Instalar"
+
+#: ../../include/apps.php:244
+msgid "Purchase"
+msgstr "Compras"
+
+#: ../../include/apps.php:246 ../../include/page_widgets.php:8
+#: ../../include/page_widgets.php:36 ../../include/reddav.php:1289
+#: ../../include/menu.php:42 ../../include/ItemObject.php:100
+#: ../../mod/settings.php:581 ../../mod/blocks.php:99
+#: ../../mod/connections.php:381 ../../mod/connections.php:394
+#: ../../mod/connections.php:413 ../../mod/editblock.php:111
+#: ../../mod/editlayout.php:106 ../../mod/editpost.php:112
+#: ../../mod/editwebpage.php:143 ../../mod/thing.php:233
+#: ../../mod/layouts.php:121 ../../mod/menu.php:59 ../../mod/webpages.php:132
+msgid "Edit"
+msgstr "Editar"
+
+#: ../../include/apps.php:247 ../../include/conversation.php:638
+#: ../../include/reddav.php:1290 ../../include/ItemObject.php:120
+#: ../../mod/settings.php:582 ../../mod/connedit.php:462
+#: ../../mod/photos.php:1080 ../../mod/group.php:176 ../../mod/admin.php:732
+#: ../../mod/admin.php:863 ../../mod/thing.php:234
+msgid "Delete"
+msgstr "Excluir"
+
+#: ../../include/apps.php:328 ../../include/apps.php:379
+#: ../../include/conversation.php:999 ../../include/reddav.php:1202
+#: ../../mod/connedit.php:498
+msgid "Unknown"
+msgstr "Desconhecidos"
+
+#: ../../include/page_widgets.php:6
+msgid "New Page"
+msgstr "Nova página"
+
+#: ../../include/page_widgets.php:39 ../../mod/blocks.php:102
+#: ../../mod/layouts.php:125 ../../mod/webpages.php:135
+msgid "View"
+msgstr "Ver"
+
+#: ../../include/page_widgets.php:40 ../../include/conversation.php:1110
+#: ../../include/ItemObject.php:606 ../../mod/editblock.php:141
+#: ../../mod/editlayout.php:135 ../../mod/editpost.php:140
+#: ../../mod/editwebpage.php:174 ../../mod/photos.php:1031
+#: ../../mod/webpages.php:136
+msgid "Preview"
+msgstr "Pré-visualizar"
+
+#: ../../include/page_widgets.php:41 ../../mod/webpages.php:137
+msgid "Actions"
+msgstr "Ações"
+
+#: ../../include/page_widgets.php:42 ../../mod/webpages.php:138
+msgid "Page Link"
+msgstr "Link da página"
+
+#: ../../include/page_widgets.php:43 ../../mod/webpages.php:139
+msgid "Title"
+msgstr "Título"
+
+#: ../../include/page_widgets.php:44 ../../mod/webpages.php:140
+msgid "Created"
+msgstr "Criado"
+
+#: ../../include/page_widgets.php:45 ../../mod/webpages.php:141
+msgid "Edited"
+msgstr "Editado"
+
+#: ../../include/security.php:320
+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 "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."
+
+#: ../../include/zot.php:654
+msgid "Invalid data packet"
+msgstr "Pacote de dados inválido"
+
+#: ../../include/zot.php:670
+msgid "Unable to verify channel signature"
+msgstr "Não foi possível verificar a assinatura do canal"
+
+#: ../../include/zot.php:1701
+#, php-format
+msgid "Unable to verify site signature for %s"
+msgstr "Não foi possível verificar a assinatura do site para %s"
+
+#: ../../include/photos.php:15 ../../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:116 ../../include/items.php:4000
+#: ../../mod/mood.php:112 ../../mod/mitem.php:73 ../../mod/achievements.php:30
+#: ../../mod/settings.php:496 ../../mod/poke.php:128 ../../mod/api.php:26
+#: ../../mod/api.php:31 ../../mod/authtest.php:13 ../../mod/profile.php:64
+#: ../../mod/profile.php:72 ../../mod/block.php:22 ../../mod/block.php:72
+#: ../../mod/blocks.php:29 ../../mod/blocks.php:44 ../../mod/profiles.php:179
+#: ../../mod/profiles.php:560 ../../mod/bookmarks.php:46
+#: ../../mod/channel.php:89 ../../mod/channel.php:193
+#: ../../mod/channel.php:236 ../../mod/chat.php:90 ../../mod/chat.php:95
+#: ../../mod/register.php:70 ../../mod/regmod.php:17 ../../mod/common.php:35
+#: ../../mod/network.php:12 ../../mod/connections.php:169
+#: ../../mod/connedit.php:254 ../../mod/delegate.php:6 ../../mod/page.php:30
+#: ../../mod/page.php:80 ../../mod/setup.php:203 ../../mod/editblock.php:34
+#: ../../mod/pdledit.php:21 ../../mod/editlayout.php:48
+#: ../../mod/editpost.php:13 ../../mod/editwebpage.php:44
+#: ../../mod/editwebpage.php:83 ../../mod/photos.php:68
+#: ../../mod/photos.php:526 ../../mod/profile_photo.php:263
+#: ../../mod/profile_photo.php:276 ../../mod/sources.php:66
+#: ../../mod/events.php:200 ../../mod/filestorage.php:10
+#: ../../mod/filestorage.php:59 ../../mod/filestorage.php:75
+#: ../../mod/filestorage.php:98 ../../mod/fsuggest.php:78
+#: ../../mod/suggest.php:26 ../../mod/group.php:9 ../../mod/thing.php:247
+#: ../../mod/thing.php:264 ../../mod/thing.php:299 ../../mod/invite.php:13
+#: ../../mod/invite.php:104 ../../mod/item.php:178 ../../mod/item.php:186
+#: ../../mod/item.php:922 ../../mod/layouts.php:27 ../../mod/layouts.php:39
+#: ../../mod/like.php:154 ../../mod/viewconnections.php:22
+#: ../../mod/viewconnections.php:27 ../../mod/viewsrc.php:14
+#: ../../mod/mail.php:108 ../../mod/manage.php:6 ../../mod/menu.php:44
+#: ../../mod/webpages.php:40 ../../mod/message.php:16
+#: ../../mod/new_channel.php:68 ../../mod/new_channel.php:99
+#: ../../mod/notifications.php:66 ../../mod/appman.php:66
+#: ../../mod/service_limits.php:7 ../../index.php:190 ../../index.php:365
+msgid "Permission denied."
+msgstr "Permissão negada."
+
+#: ../../include/photos.php:104
+#, php-format
+msgid "Image exceeds website size limit of %lu bytes"
+msgstr "A imagem excede o limite de tamanho do site, que é de %"
+
+#: ../../include/photos.php:111
+msgid "Image file is empty."
+msgstr "O arquivo de imagem está vazio."
+
+#: ../../include/photos.php:140 ../../mod/profile_photo.php:216
+msgid "Unable to process image"
+msgstr "Não foi possível processar a imagem"
+
+#: ../../include/photos.php:212
+msgid "Photo storage failed."
+msgstr "Não foi possível armazenar a foto."
+
+#: ../../include/photos.php:340 ../../include/conversation.php:1536
+msgid "Photo Albums"
+msgstr "Ãlbuns de fotos"
+
+#: ../../include/photos.php:344
+msgid "Upload New Photos"
+msgstr "Enviar novas fotos"
+
+#: ../../include/acl_selectors.php:240
+msgid "Visible to your default audience"
+msgstr "Visível para seu público padrão"
+
+#: ../../include/acl_selectors.php:241
+msgid "Show"
+msgstr "Exibir"
+
+#: ../../include/acl_selectors.php:242
+msgid "Don't show"
+msgstr "Não exibir"
+
+#: ../../include/acl_selectors.php:248 ../../mod/chat.php:209
+#: ../../mod/photos.php:604 ../../mod/photos.php:986
+#: ../../mod/filestorage.php:128
+msgid "Permissions"
+msgstr "Permissões"
+
+#: ../../include/acl_selectors.php:249 ../../include/ItemObject.php:303
+msgid "Close"
+msgstr "Fechar"
+
+#: ../../include/activities.php:39
+msgid " and "
+msgstr " e "
+
+#: ../../include/activities.php:47
+msgid "public profile"
+msgstr "perfil público"
+
+#: ../../include/activities.php:52
+#, php-format
+msgid "%1$s changed %2$s to &ldquo;%3$s&rdquo;"
+msgstr "%1$s mudou %2$s para &ldquo;%3$s&rdquo;"
+
+#: ../../include/activities.php:53
+#, php-format
+msgid "Visit %1$s's %2$s"
+msgstr "Visite o %2$s de %1$s"
+
+#: ../../include/activities.php:56
+#, php-format
+msgid "%1$s has an updated %2$s, changing %3$s."
+msgstr "%1$s atualizou %2$s, alterando %3$s."
+
+#: ../../include/api.php:1069
+msgid "Public Timeline"
+msgstr "Linha do tempo pública"
+
+#: ../../include/attach.php:224 ../../include/attach.php:278
+msgid "Item was not found."
+msgstr "O item não foi encontrado."
+
+#: ../../include/attach.php:335
+msgid "No source file."
+msgstr "Nenhum arquivo de origem."
+
+#: ../../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:370
+msgid "Cannot locate file to revise/update"
+msgstr "Não foi possível localizar o arquivo a ser revisado/atualizado"
+
+#: ../../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: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: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: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:528 ../../include/attach.php:545
+msgid "Path not available."
+msgstr "O caminho não está disponível."
+
+#: ../../include/attach.php:590
+msgid "Empty pathname"
+msgstr "O nome do caminho está em branco"
+
+#: ../../include/attach.php:606
+msgid "duplicate filename or path"
+msgstr "nome de arquivo ou caminho duplicado"
+
+#: ../../include/attach.php:630
+msgid "Path not found."
+msgstr "Caminho não encontrado."
+
+#: ../../include/attach.php:681
+msgid "mkdir failed."
+msgstr "mkdir falhou."
+
+#: ../../include/attach.php:685
+msgid "database storage failed."
+msgstr "armazenamento de banco de dados falhou."
+
+#: ../../include/conversation.php:120 ../../include/text.php:1745
+#: ../../include/diaspora.php:1898 ../../mod/subthread.php:72
+#: ../../mod/subthread.php:174 ../../mod/tagger.php:45 ../../mod/like.php:294
msgid "photo"
msgstr "foto"
-#: ../../include/conversation.php:120 ../../include/text.php:1708
+#: ../../include/conversation.php:123 ../../include/text.php:1748
#: ../../mod/tagger.php:49
msgid "event"
msgstr "evento"
-#: ../../include/conversation.php:123
+#: ../../include/conversation.php:126 ../../mod/like.php:89
msgid "channel"
msgstr "canal"
-#: ../../include/conversation.php:145 ../../include/text.php:1711
-#: ../../mod/subthread.php:72 ../../mod/subthread.php:174
-#: ../../mod/tagger.php:53 ../../mod/like.php:111
+#: ../../include/conversation.php:148 ../../include/text.php:1751
+#: ../../include/diaspora.php:1898 ../../mod/subthread.php:72
+#: ../../mod/subthread.php:174 ../../mod/tagger.php:53 ../../mod/like.php:294
msgid "status"
msgstr "status"
-#: ../../include/conversation.php:147 ../../include/text.php:1713
+#: ../../include/conversation.php:150 ../../include/text.php:1753
#: ../../mod/tagger.php:55
msgid "comment"
msgstr "comentário"
-#: ../../include/conversation.php:161 ../../mod/like.php:142
+#: ../../include/conversation.php:164 ../../include/diaspora.php:1927
+#: ../../mod/like.php:331
#, php-format
msgid "%1$s likes %2$s's %3$s"
msgstr "%1$s gosta de %3$s de %2$s"
-#: ../../include/conversation.php:164 ../../mod/like.php:144
+#: ../../include/conversation.php:167 ../../mod/like.php:333
#, php-format
msgid "%1$s doesn't like %2$s's %3$s"
msgstr "%1$s não gosta de %3$s de %2$s"
-#: ../../include/conversation.php:201
+#: ../../include/conversation.php:204
#, php-format
msgid "%1$s is now connected with %2$s"
msgstr "%1$s agora está conectado com %2$s"
-#: ../../include/conversation.php:236
+#: ../../include/conversation.php:239
#, php-format
msgid "%1$s poked %2$s"
msgstr "%1$s cutucou %2$s"
-#: ../../include/conversation.php:240 ../../include/text.php:895
+#: ../../include/conversation.php:243 ../../include/text.php:903
msgid "poked"
msgstr "cutucado"
-#: ../../include/conversation.php:258 ../../mod/mood.php:63
+#: ../../include/conversation.php:261 ../../mod/mood.php:63
#, php-format
msgctxt "mood"
msgid "%1$s is %2$s"
msgstr "%1$s está %2$s"
-#: ../../include/conversation.php:631 ../../include/ItemObject.php:114
+#: ../../include/conversation.php:637 ../../include/ItemObject.php:126
msgid "Select"
msgstr "Selecionar"
-#: ../../include/conversation.php:632 ../../include/apps.php:215
-#: ../../include/ItemObject.php:108 ../../mod/admin.php:757
-#: ../../mod/admin.php:886 ../../mod/connedit.php:398
-#: ../../mod/settings.php:578 ../../mod/filestorage.php:175
-#: ../../mod/group.php:176 ../../mod/thing.php:236 ../../mod/photos.php:1043
-msgid "Delete"
-msgstr "Excluir"
-
-#: ../../include/conversation.php:639 ../../include/ItemObject.php:89
-#: ../../mod/photos.php:846
+#: ../../include/conversation.php:645 ../../include/ItemObject.php:89
+#: ../../mod/photos.php:878
msgid "Private Message"
msgstr "Mensagem privada"
-#: ../../include/conversation.php:646 ../../include/ItemObject.php:182
+#: ../../include/conversation.php:652 ../../include/ItemObject.php:194
msgid "Message is verified"
msgstr "A mensagem foi verificada"
-#: ../../include/conversation.php:666
+#: ../../include/conversation.php:671
#, php-format
msgid "View %s's profile @ %s"
msgstr "Ver o perfil de %s's @ %s"
-#: ../../include/conversation.php:680
+#: ../../include/conversation.php:685
msgid "Categories:"
msgstr "Categorias:"
-#: ../../include/conversation.php:681
+#: ../../include/conversation.php:686
msgid "Filed under:"
msgstr "Armazenado sob:"
-#: ../../include/conversation.php:690 ../../include/ItemObject.php:250
+#: ../../include/conversation.php:694 ../../include/ItemObject.php:264
#, php-format
msgid " from %s"
msgstr "de %s"
-#: ../../include/conversation.php:693 ../../include/ItemObject.php:253
+#: ../../include/conversation.php:697 ../../include/ItemObject.php:267
#, php-format
msgid "last edited: %s"
msgstr "última edição: %s"
-#: ../../include/conversation.php:694 ../../include/ItemObject.php:254
+#: ../../include/conversation.php:698 ../../include/ItemObject.php:268
#, php-format
msgid "Expires: %s"
msgstr "Expira: %s"
-#: ../../include/conversation.php:709
+#: ../../include/conversation.php:713
msgid "View in context"
msgstr "Ver no contexto"
-#: ../../include/conversation.php:711 ../../include/conversation.php:1127
-#: ../../include/ItemObject.php:294 ../../mod/editblock.php:120
+#: ../../include/conversation.php:715 ../../include/conversation.php:1149
+#: ../../include/ItemObject.php:308 ../../mod/editblock.php:120
#: ../../mod/editlayout.php:115 ../../mod/editpost.php:121
-#: ../../mod/editwebpage.php:152 ../../mod/mail.php:222 ../../mod/mail.php:336
-#: ../../mod/photos.php:974
+#: ../../mod/editwebpage.php:152 ../../mod/photos.php:1011
+#: ../../mod/mail.php:231 ../../mod/mail.php:346
msgid "Please wait"
msgstr "Por favor, espere"
-#: ../../include/conversation.php:838
+#: ../../include/conversation.php:839
msgid "remove"
msgstr "remover"
-#: ../../include/conversation.php:842
+#: ../../include/conversation.php:843 ../../include/nav.php:255
msgid "Loading..."
msgstr "Carregando..."
-#: ../../include/conversation.php:843
+#: ../../include/conversation.php:844
msgid "Delete Selected Items"
msgstr "Excluir os itens selecionados"
-#: ../../include/conversation.php:934
+#: ../../include/conversation.php:938
msgid "View Source"
msgstr "Ver a fonte"
-#: ../../include/conversation.php:935
+#: ../../include/conversation.php:939
msgid "Follow Thread"
msgstr "Acompanhar a discussão"
-#: ../../include/conversation.php:936
+#: ../../include/conversation.php:940
msgid "View Status"
msgstr "Ver status"
-#: ../../include/conversation.php:937 ../../include/nav.php:81
-#: ../../mod/connedit.php:351 ../../mod/connedit.php:465
+#: ../../include/conversation.php:941 ../../include/nav.php:98
+#: ../../mod/connedit.php:415 ../../mod/connedit.php:529
msgid "View Profile"
msgstr "Ver perfil"
-#: ../../include/conversation.php:938
+#: ../../include/conversation.php:942
msgid "View Photos"
msgstr "Ver fotos"
-#: ../../include/conversation.php:939
+#: ../../include/conversation.php:943
msgid "Matrix Activity"
msgstr "Atividade na matriz"
-#: ../../include/conversation.php:940
+#: ../../include/conversation.php:944 ../../include/identity.php:830
+#: ../../include/widgets.php:135 ../../include/widgets.php:175
+#: ../../include/Contact.php:107 ../../mod/directory.php:183
+#: ../../mod/dirprofile.php:164 ../../mod/suggest.php:51
+#: ../../mod/match.php:62
+msgid "Connect"
+msgstr "Conectar"
+
+#: ../../include/conversation.php:945
msgid "Edit Contact"
msgstr "Editar contato"
-#: ../../include/conversation.php:941
+#: ../../include/conversation.php:946
msgid "Send PM"
msgstr "Enviar MP"
-#: ../../include/conversation.php:942 ../../include/apps.php:132
-msgid "Poke"
-msgstr "Cutucar"
-
-#: ../../include/conversation.php:998
+#: ../../include/conversation.php:1020
#, php-format
msgid "%s likes this."
msgstr "%s gostou disso."
-#: ../../include/conversation.php:998
+#: ../../include/conversation.php:1020
#, php-format
msgid "%s doesn't like this."
msgstr "%s não gostou disso."
-#: ../../include/conversation.php:1002
+#: ../../include/conversation.php:1024
#, 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 pessoas</span> gostaram disso."
-#: ../../include/conversation.php:1004
+#: ../../include/conversation.php:1026
#, 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 pessoas</span> não gostaram disso."
-#: ../../include/conversation.php:1010
+#: ../../include/conversation.php:1032
msgid "and"
msgstr "e"
-#: ../../include/conversation.php:1013
+#: ../../include/conversation.php:1035
#, php-format
msgid ", and %d other people"
msgid_plural ", and %d other people"
msgstr[0] ""
msgstr[1] ", e mais %d outras pessoas"
-#: ../../include/conversation.php:1014
+#: ../../include/conversation.php:1036
#, php-format
msgid "%s like this."
msgstr "%s gostou disso."
-#: ../../include/conversation.php:1014
+#: ../../include/conversation.php:1036
#, php-format
msgid "%s don't like this."
msgstr "%s não gostou disso."
-#: ../../include/conversation.php:1071
+#: ../../include/conversation.php:1093
msgid "Visible to <strong>everybody</strong>"
msgstr "Visível para <strong>todos</strong>"
-#: ../../include/conversation.php:1072 ../../mod/mail.php:171
-#: ../../mod/mail.php:269
+#: ../../include/conversation.php:1094 ../../mod/mail.php:167
+#: ../../mod/mail.php:279
msgid "Please enter a link URL:"
msgstr "Por favor, digite uma URL:"
-#: ../../include/conversation.php:1073
+#: ../../include/conversation.php:1095
msgid "Please enter a video link/URL:"
msgstr "Por favor, digite o link/URL do vídeo:"
-#: ../../include/conversation.php:1074
+#: ../../include/conversation.php:1096
msgid "Please enter an audio link/URL:"
msgstr "Por favor, digite o link/URL do áudio:"
-#: ../../include/conversation.php:1075
+#: ../../include/conversation.php:1097
msgid "Tag term:"
msgstr "Etiqueta:"
-#: ../../include/conversation.php:1076 ../../mod/filer.php:49
+#: ../../include/conversation.php:1098 ../../mod/filer.php:49
msgid "Save to Folder:"
msgstr "Salvar para a pasta:"
-#: ../../include/conversation.php:1077
+#: ../../include/conversation.php:1099
msgid "Where are you right now?"
msgstr "Onde você está agora?"
-#: ../../include/conversation.php:1078 ../../mod/editpost.php:52
-#: ../../mod/mail.php:172 ../../mod/mail.php:270
+#: ../../include/conversation.php:1100 ../../mod/editpost.php:52
+#: ../../mod/mail.php:168 ../../mod/mail.php:280
msgid "Expires YYYY-MM-DD HH:MM"
msgstr "Expira YYYY-MM-DD HH:MM"
-#: ../../include/conversation.php:1088 ../../include/page_widgets.php:40
-#: ../../include/ItemObject.php:592 ../../mod/editblock.php:141
-#: ../../mod/editlayout.php:135 ../../mod/editpost.php:140
-#: ../../mod/editwebpage.php:175 ../../mod/webpages.php:123
-#: ../../mod/photos.php:994
-msgid "Preview"
-msgstr "Pré-visualizar"
-
-#: ../../include/conversation.php:1102 ../../mod/layouts.php:113
-#: ../../mod/photos.php:973
+#: ../../include/conversation.php:1124 ../../mod/photos.php:1010
+#: ../../mod/layouts.php:122
msgid "Share"
msgstr "Compartilhar"
-#: ../../include/conversation.php:1104 ../../mod/editwebpage.php:139
+#: ../../include/conversation.php:1126 ../../mod/editwebpage.php:139
msgid "Page link title"
msgstr "Título do link da página"
-#: ../../include/conversation.php:1107
+#: ../../include/conversation.php:1129
msgid "Post as"
msgstr "Publicar como"
-#: ../../include/conversation.php:1108 ../../mod/editblock.php:112
+#: ../../include/conversation.php:1130 ../../mod/editblock.php:112
#: ../../mod/editlayout.php:107 ../../mod/editpost.php:113
-#: ../../mod/editwebpage.php:144 ../../mod/mail.php:219 ../../mod/mail.php:332
+#: ../../mod/editwebpage.php:144 ../../mod/mail.php:228 ../../mod/mail.php:342
msgid "Upload photo"
msgstr "Enviar foto"
-#: ../../include/conversation.php:1109
+#: ../../include/conversation.php:1131
msgid "upload photo"
msgstr "enviar foto"
-#: ../../include/conversation.php:1110 ../../mod/editblock.php:113
+#: ../../include/conversation.php:1132 ../../mod/editblock.php:113
#: ../../mod/editlayout.php:108 ../../mod/editpost.php:114
-#: ../../mod/editwebpage.php:145 ../../mod/mail.php:220 ../../mod/mail.php:333
+#: ../../mod/editwebpage.php:145 ../../mod/mail.php:229 ../../mod/mail.php:343
msgid "Attach file"
msgstr "Anexar arquivo"
-#: ../../include/conversation.php:1111
+#: ../../include/conversation.php:1133
msgid "attach file"
msgstr "anexar arquivo"
-#: ../../include/conversation.php:1112 ../../mod/editblock.php:114
+#: ../../include/conversation.php:1134 ../../mod/editblock.php:114
#: ../../mod/editlayout.php:109 ../../mod/editpost.php:115
-#: ../../mod/editwebpage.php:146 ../../mod/mail.php:221 ../../mod/mail.php:334
+#: ../../mod/editwebpage.php:146 ../../mod/mail.php:230 ../../mod/mail.php:344
msgid "Insert web link"
msgstr "Inserir link web"
-#: ../../include/conversation.php:1113
+#: ../../include/conversation.php:1135
msgid "web link"
msgstr "link web"
-#: ../../include/conversation.php:1114
+#: ../../include/conversation.php:1136
msgid "Insert video link"
msgstr "Inserir link de vídeo"
-#: ../../include/conversation.php:1115
+#: ../../include/conversation.php:1137
msgid "video link"
msgstr "link de vídeo"
-#: ../../include/conversation.php:1116
+#: ../../include/conversation.php:1138
msgid "Insert audio link"
msgstr "Inserir link de áudio"
-#: ../../include/conversation.php:1117
+#: ../../include/conversation.php:1139
msgid "audio link"
msgstr "link de áudio"
-#: ../../include/conversation.php:1118 ../../mod/editblock.php:118
+#: ../../include/conversation.php:1140 ../../mod/editblock.php:118
#: ../../mod/editlayout.php:113 ../../mod/editpost.php:119
#: ../../mod/editwebpage.php:150
msgid "Set your location"
msgstr "Definir sua localização"
-#: ../../include/conversation.php:1119
+#: ../../include/conversation.php:1141
msgid "set location"
msgstr "definir localização"
-#: ../../include/conversation.php:1120 ../../mod/editblock.php:119
+#: ../../include/conversation.php:1142 ../../mod/editblock.php:119
#: ../../mod/editlayout.php:114 ../../mod/editpost.php:120
#: ../../mod/editwebpage.php:151
msgid "Clear browser location"
msgstr "Limpar a localização do navegador"
-#: ../../include/conversation.php:1121
+#: ../../include/conversation.php:1143
msgid "clear location"
msgstr "limpar a localização"
-#: ../../include/conversation.php:1123 ../../mod/editblock.php:132
+#: ../../include/conversation.php:1145 ../../mod/editblock.php:132
#: ../../mod/editlayout.php:126 ../../mod/editpost.php:132
#: ../../mod/editwebpage.php:167
msgid "Set title"
msgstr "Definir o título"
-#: ../../include/conversation.php:1126 ../../mod/editblock.php:135
+#: ../../include/conversation.php:1148 ../../mod/editblock.php:135
#: ../../mod/editlayout.php:129 ../../mod/editpost.php:134
-#: ../../mod/editwebpage.php:169
+#: ../../mod/editwebpage.php:169 ../../mod/events.php:560
msgid "Categories (comma-separated list)"
msgstr "Categorias (lista separada por vírgulas)"
-#: ../../include/conversation.php:1128 ../../mod/editblock.php:121
+#: ../../include/conversation.php:1150 ../../mod/editblock.php:121
#: ../../mod/editlayout.php:116 ../../mod/editpost.php:122
#: ../../mod/editwebpage.php:153
msgid "Permission settings"
msgstr "Configurações de permissão"
-#: ../../include/conversation.php:1129
+#: ../../include/conversation.php:1151
msgid "permissions"
msgstr "permissões"
-#: ../../include/conversation.php:1136 ../../mod/editblock.php:129
+#: ../../include/conversation.php:1158 ../../mod/editblock.php:129
#: ../../mod/editlayout.php:123 ../../mod/editpost.php:129
#: ../../mod/editwebpage.php:162
msgid "Public post"
msgstr "Publicação pública"
-#: ../../include/conversation.php:1138 ../../mod/editblock.php:136
+#: ../../include/conversation.php:1160 ../../mod/editblock.php:136
#: ../../mod/editlayout.php:130 ../../mod/editpost.php:135
#: ../../mod/editwebpage.php:170
msgid "Example: bob@example.com, mary@example.com"
msgstr "Por exemplo: joao@exemplo.com, maria@exemplo.com"
-#: ../../include/conversation.php:1151 ../../mod/editblock.php:146
+#: ../../include/conversation.php:1173 ../../mod/editblock.php:146
#: ../../mod/editlayout.php:140 ../../mod/editpost.php:146
-#: ../../mod/editwebpage.php:180 ../../mod/mail.php:226 ../../mod/mail.php:339
+#: ../../mod/editwebpage.php:179 ../../mod/mail.php:235 ../../mod/mail.php:349
msgid "Set expiration date"
msgstr "Definir data de expiração"
-#: ../../include/conversation.php:1153 ../../include/ItemObject.php:595
-#: ../../mod/editpost.php:148 ../../mod/mail.php:228 ../../mod/mail.php:341
+#: ../../include/conversation.php:1175 ../../include/ItemObject.php:609
+#: ../../mod/editpost.php:148 ../../mod/mail.php:237 ../../mod/mail.php:351
msgid "Encrypt text"
msgstr "Encriptar texto"
-#: ../../include/conversation.php:1155 ../../mod/editpost.php:150
+#: ../../include/conversation.php:1177 ../../mod/editpost.php:150
+#: ../../mod/events.php:567
msgid "OK"
msgstr "Ok"
-#: ../../include/conversation.php:1156 ../../mod/settings.php:516
-#: ../../mod/settings.php:542 ../../mod/editpost.php:151
-#: ../../mod/fbrowser.php:82 ../../mod/fbrowser.php:117 ../../mod/tagrm.php:11
-#: ../../mod/tagrm.php:94
+#: ../../include/conversation.php:1178 ../../mod/settings.php:520
+#: ../../mod/settings.php:546 ../../mod/editpost.php:151
+#: ../../mod/fbrowser.php:82 ../../mod/fbrowser.php:117
+#: ../../mod/events.php:566 ../../mod/tagrm.php:11 ../../mod/tagrm.php:94
msgid "Cancel"
msgstr "Cancelar"
-#: ../../include/conversation.php:1392
+#: ../../include/conversation.php:1422
msgid "Discover"
msgstr "Descubra"
-#: ../../include/conversation.php:1395
+#: ../../include/conversation.php:1425
msgid "Imported public streams"
msgstr "Fluxos públicos importados"
-#: ../../include/conversation.php:1400
+#: ../../include/conversation.php:1430
msgid "Commented Order"
msgstr "Recentes e comentados"
-#: ../../include/conversation.php:1403
+#: ../../include/conversation.php:1433
msgid "Sort by Comment Date"
msgstr "Ordenar pela data do último comentário"
-#: ../../include/conversation.php:1407
+#: ../../include/conversation.php:1437
msgid "Posted Order"
msgstr "Recentemente publicados"
-#: ../../include/conversation.php:1410
+#: ../../include/conversation.php:1440
msgid "Sort by Post Date"
msgstr "Ordenar pela data da publicação"
-#: ../../include/conversation.php:1415 ../../include/widgets.php:82
+#: ../../include/conversation.php:1445 ../../include/widgets.php:89
msgid "Personal"
msgstr "Pessoal"
-#: ../../include/conversation.php:1418
+#: ../../include/conversation.php:1448
msgid "Posts that mention or involve you"
msgstr "Publicações que mencionam ou envolvem você"
-#: ../../include/conversation.php:1424 ../../mod/connections.php:211
+#: ../../include/conversation.php:1454 ../../mod/connections.php:211
#: ../../mod/connections.php:224 ../../mod/menu.php:61
msgid "New"
msgstr "Novo"
-#: ../../include/conversation.php:1427
+#: ../../include/conversation.php:1457
msgid "Activity Stream - by date"
msgstr "Fluxo de atividades - por data"
-#: ../../include/conversation.php:1433
+#: ../../include/conversation.php:1463
msgid "Starred"
msgstr "Estrelados"
-#: ../../include/conversation.php:1436
+#: ../../include/conversation.php:1466
msgid "Favourite Posts"
msgstr "Publicações favoritas"
-#: ../../include/conversation.php:1443
+#: ../../include/conversation.php:1473
msgid "Spam"
msgstr "Spam"
-#: ../../include/conversation.php:1446
+#: ../../include/conversation.php:1476
msgid "Posts flagged as SPAM"
msgstr "Publicações marcadas como SPAM"
-#: ../../include/conversation.php:1480 ../../mod/admin.php:890
+#: ../../include/conversation.php:1512 ../../mod/admin.php:867
msgid "Channel"
msgstr "Canal"
-#: ../../include/conversation.php:1483
+#: ../../include/conversation.php:1515
msgid "Status Messages and Posts"
msgstr "Mensagens de status e publicações"
-#: ../../include/conversation.php:1492
+#: ../../include/conversation.php:1524
msgid "About"
msgstr "Sobre"
-#: ../../include/conversation.php:1495
+#: ../../include/conversation.php:1527
msgid "Profile Details"
msgstr "Detalhes do perfil"
-#: ../../include/conversation.php:1501 ../../include/nav.php:84
-#: ../../include/apps.php:126 ../../mod/fbrowser.php:25
-msgid "Photos"
-msgstr "Fotos"
-
-#: ../../include/conversation.php:1504 ../../include/photos.php:311
-msgid "Photo Albums"
-msgstr "Ãlbuns de fotos"
-
-#: ../../include/conversation.php:1510 ../../include/nav.php:85
-#: ../../include/apps.php:122 ../../mod/fbrowser.php:114
-msgid "Files"
-msgstr "Arquivos"
-
-#: ../../include/conversation.php:1513
+#: ../../include/conversation.php:1545
msgid "Files and Storage"
msgstr "Arquivos e armazenamento"
-#: ../../include/conversation.php:1522 ../../include/conversation.php:1525
+#: ../../include/conversation.php:1554 ../../include/conversation.php:1557
msgid "Chatrooms"
msgstr "Salas de bate-papo"
-#: ../../include/conversation.php:1532 ../../include/nav.php:87
-#: ../../include/nav.php:180 ../../include/apps.php:127
-#: ../../mod/events.php:377
-msgid "Events"
-msgstr "Eventos"
-
-#: ../../include/conversation.php:1535
-msgid "Events and Calendar"
-msgstr "Eventos e calendário"
-
-#: ../../include/conversation.php:1540 ../../include/nav.php:88
-#: ../../include/apps.php:116
-msgid "Bookmarks"
-msgstr "Links guardados"
-
-#: ../../include/conversation.php:1543
+#: ../../include/conversation.php:1569
msgid "Saved Bookmarks"
msgstr "Links guardados"
-#: ../../include/conversation.php:1551 ../../include/nav.php:90
-#: ../../include/apps.php:123 ../../mod/webpages.php:79
-msgid "Webpages"
-msgstr "Páginas web"
-
-#: ../../include/conversation.php:1554
+#: ../../include/conversation.php:1580
msgid "Manage Webpages"
msgstr "Administrar páginas web"
-#: ../../include/page_widgets.php:6
-msgid "New Page"
-msgstr "Nova página"
-
-#: ../../include/page_widgets.php:8 ../../include/page_widgets.php:36
-#: ../../include/apps.php:214 ../../include/menu.php:42
-#: ../../include/ItemObject.php:96 ../../mod/blocks.php:94
-#: ../../mod/connections.php:392 ../../mod/settings.php:577
-#: ../../mod/editblock.php:111 ../../mod/editlayout.php:106
-#: ../../mod/editpost.php:112 ../../mod/editwebpage.php:143
-#: ../../mod/filestorage.php:174 ../../mod/thing.php:235
-#: ../../mod/layouts.php:112 ../../mod/menu.php:59 ../../mod/webpages.php:119
-msgid "Edit"
-msgstr "Editar"
-
-#: ../../include/page_widgets.php:39 ../../mod/blocks.php:97
-#: ../../mod/layouts.php:116 ../../mod/webpages.php:122
-msgid "View"
-msgstr "Ver"
-
-#: ../../include/page_widgets.php:41 ../../mod/webpages.php:124
-msgid "Actions"
-msgstr "Ações"
-
-#: ../../include/page_widgets.php:42 ../../mod/webpages.php:125
-msgid "Page Link"
-msgstr "Link da página"
-
-#: ../../include/page_widgets.php:43 ../../mod/webpages.php:126
-msgid "Title"
-msgstr "Título"
-
-#: ../../include/page_widgets.php:44 ../../mod/webpages.php:127
-msgid "Created"
-msgstr "Criado"
-
-#: ../../include/page_widgets.php:45 ../../mod/webpages.php:128
-msgid "Edited"
-msgstr "Editado"
-
-#: ../../include/permissions.php:13
-msgid "Can view my \"public\" stream and posts"
-msgstr "Pode ver meus fluxo e publicações \"públicos\""
-
-#: ../../include/permissions.php:14
-msgid "Can view my \"public\" channel profile"
-msgstr "Pode ver o perfil \"público\" do meu canal"
-
-#: ../../include/permissions.php:15
-msgid "Can view my \"public\" photo albums"
-msgstr "Pode ver meus álbuns de fotos \"públicos\""
-
-#: ../../include/permissions.php:16
-msgid "Can view my \"public\" address book"
-msgstr "Pode ver meu livro de endereços \"público\""
-
-#: ../../include/permissions.php:17
-msgid "Can view my \"public\" file storage"
-msgstr "Pode ver meu armazenamento de arquivos \"público\""
-
-#: ../../include/permissions.php:18
-msgid "Can view my \"public\" pages"
-msgstr "Pode ver minhas páginas \"públicas\""
-
-#: ../../include/permissions.php:21
-msgid "Can send me their channel stream and posts"
-msgstr "Pode me enviar seu fluxo e publicações"
-
-#: ../../include/permissions.php:22
-msgid "Can post on my channel page (\"wall\")"
-msgstr "Pode publicar na página do meu canal (\"mural\")"
-
-#: ../../include/permissions.php:23
-msgid "Can comment on my posts"
-msgstr "Pode comentar minhas publicações"
-
-#: ../../include/permissions.php:24
-msgid "Can send me private mail messages"
-msgstr "Pode me enviar mensagens privadas"
-
-#: ../../include/permissions.php:25
-msgid "Can post photos to my photo albums"
-msgstr "Pode publicar fotos nos meus álbuns de fotos"
-
-#: ../../include/permissions.php:26
-msgid "Can forward to all my channel contacts via post @mentions"
-msgstr "Pode encaminhar para todos os contatos do meu canal via @menções na publicação"
-
-#: ../../include/permissions.php:26
-msgid "Advanced - useful for creating group forum channels"
-msgstr "Avançado - útil para criar canais de fóruns de grupos"
-
-#: ../../include/permissions.php:27
-msgid "Can chat with me (when available)"
-msgstr "Pode conversar comigo (quando disponívei)"
-
-#: ../../include/permissions.php:28
-msgid "Can write to my \"public\" file storage"
-msgstr "Pode escrever em meu armazenamento de arquivos \"público\""
-
-#: ../../include/permissions.php:29
-msgid "Can edit my \"public\" pages"
-msgstr "Pode editar minhas páginas \"públicas\""
-
-#: ../../include/permissions.php:31
-msgid "Can source my \"public\" posts in derived channels"
-msgstr "Pode usar minhas publicações \"públicas\" como fonte para canais derivados"
-
-#: ../../include/permissions.php:31
-msgid "Somewhat advanced - very useful in open communities"
-msgstr "Avançado - muito útil em comunidades abertas"
-
-#: ../../include/permissions.php:33
-msgid "Can administer my channel resources"
-msgstr "Pode administrar os recursos do meu canal"
-
-#: ../../include/permissions.php:33
-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/account.php:23
-msgid "Not a valid email address"
-msgstr "Não é um endereço de e-mail válido"
-
-#: ../../include/account.php:25
-msgid "Your email domain is not among those allowed on this site"
-msgstr "O domínio do seu e-mail não está entre os permitidos neste site"
-
-#: ../../include/account.php:31
-msgid "Your email address is already registered at this site."
-msgstr "O seu endereço de e-mail já está registrado neste site."
-
-#: ../../include/account.php:64
-msgid "An invitation is required."
-msgstr "É necessário um convite."
-
-#: ../../include/account.php:68
-msgid "Invitation could not be verified."
-msgstr "Não foi possível verificar o convite."
-
-#: ../../include/account.php:119
-msgid "Please enter the required information."
-msgstr "Por favor, forneça a informação solicitada."
-
-#: ../../include/account.php:187
-msgid "Failed to store account information."
-msgstr "Não foi possível armazenar a informação da conta."
-
-#: ../../include/account.php:273
+#: ../../include/bookmarks.php:35
#, php-format
-msgid "Registration request at %s"
-msgstr "Solicitação de registro em %s"
-
-#: ../../include/account.php:275 ../../include/account.php:302
-#: ../../include/account.php:359
-msgid "Administrator"
-msgstr "Administrador"
-
-#: ../../include/account.php:297
-msgid "your registration password"
-msgstr "sua senha de registro"
-
-#: ../../include/account.php:300 ../../include/account.php:357
-#, php-format
-msgid "Registration details for %s"
-msgstr "Detalhes do registro de %s"
-
-#: ../../include/account.php:366
-msgid "Account approved."
-msgstr "A conta foi aprovada."
-
-#: ../../include/account.php:400
-#, php-format
-msgid "Registration revoked for %s"
-msgstr "O registro de %s foi revogado"
-
-#: ../../include/photos.php:15 ../../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/items.php:3673 ../../include/chat.php:116
-#: ../../mod/mood.php:112 ../../mod/mitem.php:73 ../../mod/achievements.php:27
-#: ../../mod/poke.php:128 ../../mod/api.php:26 ../../mod/api.php:31
-#: ../../mod/authtest.php:13 ../../mod/profile.php:64 ../../mod/profile.php:72
-#: ../../mod/block.php:22 ../../mod/block.php:72
-#: ../../mod/profile_photo.php:263 ../../mod/profile_photo.php:276
-#: ../../mod/blocks.php:29 ../../mod/blocks.php:44 ../../mod/profiles.php:152
-#: ../../mod/profiles.php:453 ../../mod/bookmarks.php:46
-#: ../../mod/channel.php:89 ../../mod/channel.php:193
-#: ../../mod/channel.php:236 ../../mod/chat.php:90 ../../mod/chat.php:95
-#: ../../mod/register.php:68 ../../mod/regmod.php:18 ../../mod/common.php:35
-#: ../../mod/network.php:12 ../../mod/connections.php:169
-#: ../../mod/connedit.php:221 ../../mod/delegate.php:6 ../../mod/page.php:30
-#: ../../mod/page.php:80 ../../mod/settings.php:492 ../../mod/setup.php:203
-#: ../../mod/editblock.php:34 ../../mod/pdledit.php:21
-#: ../../mod/editlayout.php:48 ../../mod/editpost.php:13
-#: ../../mod/editwebpage.php:44 ../../mod/editwebpage.php:83
-#: ../../mod/sources.php:66 ../../mod/events.php:141
-#: ../../mod/filestorage.php:10 ../../mod/filestorage.php:59
-#: ../../mod/filestorage.php:75 ../../mod/filestorage.php:98
-#: ../../mod/fsuggest.php:78 ../../mod/suggest.php:26 ../../mod/group.php:9
-#: ../../mod/thing.php:247 ../../mod/thing.php:263 ../../mod/thing.php:298
-#: ../../mod/invite.php:13 ../../mod/invite.php:104 ../../mod/item.php:179
-#: ../../mod/item.php:187 ../../mod/item.php:872 ../../mod/layouts.php:27
-#: ../../mod/layouts.php:39 ../../mod/viewconnections.php:22
-#: ../../mod/viewconnections.php:27 ../../mod/viewsrc.php:12
-#: ../../mod/mail.php:108 ../../mod/manage.php:6 ../../mod/menu.php:44
-#: ../../mod/webpages.php:40 ../../mod/message.php:16
-#: ../../mod/new_channel.php:66 ../../mod/new_channel.php:97
-#: ../../mod/photos.php:68 ../../mod/photos.php:526
-#: ../../mod/notifications.php:66 ../../mod/appman.php:66 ../../index.php:186
-#: ../../index.php:361
-msgid "Permission denied."
-msgstr "Permissão negada."
-
-#: ../../include/photos.php:89
-#, php-format
-msgid "Image exceeds website size limit of %lu bytes"
-msgstr "A imagem excede o limite de tamanho do site, que é de %"
-
-#: ../../include/photos.php:96
-msgid "Image file is empty."
-msgstr "O arquivo de imagem está vazio."
-
-#: ../../include/photos.php:123 ../../mod/profile_photo.php:216
-msgid "Unable to process image"
-msgstr "Não foi possível processar a imagem"
-
-#: ../../include/photos.php:186
-msgid "Photo storage failed."
-msgstr "Não foi possível armazenar a foto."
-
-#: ../../include/photos.php:315 ../../mod/photos.php:693
-#: ../../mod/photos.php:1190
-msgid "Upload New Photos"
-msgstr "Enviar novas fotos"
-
-#: ../../include/acl_selectors.php:238
-msgid "Visible to everybody"
-msgstr "Visível para todos"
-
-#: ../../include/acl_selectors.php:239
-msgid "Show"
-msgstr "Exibir"
-
-#: ../../include/acl_selectors.php:240
-msgid "Don't show"
-msgstr "Não exibir"
-
-#: ../../include/acl_selectors.php:246 ../../mod/chat.php:209
-#: ../../mod/filestorage.php:126 ../../mod/photos.php:606
-#: ../../mod/photos.php:949
-msgid "Permissions"
-msgstr "Permissões"
-
-#: ../../include/acl_selectors.php:247 ../../include/ItemObject.php:289
-msgid "Close"
-msgstr "Fechar"
-
-#: ../../include/activities.php:39
-msgid " and "
-msgstr " e "
-
-#: ../../include/activities.php:47
-msgid "public profile"
-msgstr "perfil público"
-
-#: ../../include/activities.php:52
-#, php-format
-msgid "%1$s changed %2$s to &ldquo;%3$s&rdquo;"
-msgstr "%1$s mudou %2$s para &ldquo;%3$s&rdquo;"
-
-#: ../../include/activities.php:53
-#, php-format
-msgid "Visit %1$s's %2$s"
-msgstr "Visite o %2$s de %1$s"
-
-#: ../../include/activities.php:56
-#, php-format
-msgid "%1$s has an updated %2$s, changing %3$s."
-msgstr "%1$s atualizou %2$s, alterando %3$s."
-
-#: ../../include/api.php:1016
-msgid "Public Timeline"
-msgstr "Linha do tempo pública"
-
-#: ../../include/attach.php:224 ../../include/attach.php:278
-msgid "Item was not found."
-msgstr "O item não foi encontrado."
-
-#: ../../include/attach.php:335
-msgid "No source file."
-msgstr "Nenhum arquivo de origem."
-
-#: ../../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:370
-msgid "Cannot locate file to revise/update"
-msgstr "Não foi possível localizar o arquivo a ser revisado/atualizado"
-
-#: ../../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: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: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: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:528 ../../include/attach.php:545
-msgid "Path not available."
-msgstr "O caminho não está disponível."
-
-#: ../../include/attach.php:590
-msgid "Empty pathname"
-msgstr "O nome do caminho está em branco"
-
-#: ../../include/attach.php:606
-msgid "duplicate filename or path"
-msgstr "nome de arquivo ou caminho duplicado"
-
-#: ../../include/attach.php:630
-msgid "Path not found."
-msgstr "Caminho não encontrado."
-
-#: ../../include/attach.php:674
-msgid "mkdir failed."
-msgstr "mkdir falhou."
+msgid "%1$s's bookmarks"
+msgstr "Links guardados de %1$s"
-#: ../../include/attach.php:678
-msgid "database storage failed."
-msgstr "armazenamento de banco de dados falhou."
+#: ../../include/text.php:321
+msgid "prev"
+msgstr "anterior"
-#: ../../include/items.php:306 ../../mod/profperm.php:23
-#: ../../mod/subthread.php:49 ../../mod/group.php:68 ../../mod/like.php:63
-#: ../../index.php:360
-msgid "Permission denied"
-msgstr "Permissão negada"
+#: ../../include/text.php:323
+msgid "first"
+msgstr "primeiro"
-#: ../../include/items.php:830
-msgid "(Unknown)"
-msgstr "(Desconhecido)"
+#: ../../include/text.php:352
+msgid "last"
+msgstr "último"
-#: ../../include/items.php:3611 ../../mod/admin.php:159
-#: ../../mod/admin.php:921 ../../mod/admin.php:1124 ../../mod/display.php:32
-#: ../../mod/filestorage.php:18 ../../mod/home.php:65 ../../mod/thing.php:78
-#: ../../mod/viewsrc.php:18
-msgid "Item not found."
-msgstr "O item não foi encontrado."
+#: ../../include/text.php:355
+msgid "next"
+msgstr "próximo"
-#: ../../include/items.php:4035 ../../mod/group.php:38 ../../mod/group.php:140
-msgid "Collection not found."
-msgstr "A coleção não foi encontrada."
+#: ../../include/text.php:367
+msgid "older"
+msgstr "mais antigo"
-#: ../../include/items.php:4050
-msgid "Collection is empty."
-msgstr "A coleção está vazia."
+#: ../../include/text.php:369
+msgid "newer"
+msgstr "mais recente"
-#: ../../include/items.php:4057
-#, php-format
-msgid "Collection: %s"
-msgstr "Coleção: %s"
+#: ../../include/text.php:736
+msgid "No connections"
+msgstr "Nenhuma conexão"
-#: ../../include/items.php:4068
+#: ../../include/text.php:749
#, php-format
-msgid "Connection: %s"
-msgstr "Conexão: %s"
-
-#: ../../include/items.php:4071
-msgid "Connection not found."
-msgstr "A conexão não foi encontrada."
+msgid "%d Connection"
+msgid_plural "%d Connections"
+msgstr[0] "%d conexão"
+msgstr[1] "%d conexões"
-#: ../../include/bb2diaspora.php:441 ../../include/event.php:11
-msgid "l F d, Y \\@ g:i A"
-msgstr "l F d, Y \\@ g:i A"
+#: ../../include/text.php:762
+msgid "View Connections"
+msgstr "Ver conexões"
-#: ../../include/bb2diaspora.php:447 ../../include/event.php:20
-msgid "Starts:"
-msgstr "Início:"
+#: ../../include/text.php:823 ../../include/text.php:837
+#: ../../include/widgets.php:193 ../../mod/rbmark.php:28
+#: ../../mod/rbmark.php:98 ../../mod/filer.php:50 ../../mod/admin.php:1341
+#: ../../mod/admin.php:1362
+msgid "Save"
+msgstr "Salvar"
-#: ../../include/bb2diaspora.php:455 ../../include/event.php:30
-msgid "Finishes:"
-msgstr "Fim:"
+#: ../../include/text.php:903
+msgid "poke"
+msgstr "cutucar"
-#: ../../include/bb2diaspora.php:463 ../../include/event.php:40
-#: ../../include/identity.php:726 ../../mod/directory.php:156
-#: ../../mod/dirprofile.php:105 ../../mod/events.php:485
-msgid "Location:"
-msgstr "Localização:"
+#: ../../include/text.php:904
+msgid "ping"
+msgstr "pingar"
-#: ../../include/nav.php:77 ../../include/nav.php:96 ../../boot.php:1451
-msgid "Logout"
-msgstr "Sair"
+#: ../../include/text.php:904
+msgid "pinged"
+msgstr "pingou"
-#: ../../include/nav.php:77 ../../include/nav.php:96
-msgid "End this session"
-msgstr "Encerrar essa sessão"
+#: ../../include/text.php:905
+msgid "prod"
+msgstr "espetar"
-#: ../../include/nav.php:80 ../../include/nav.php:130
-msgid "Home"
-msgstr "Ver canal"
+#: ../../include/text.php:905
+msgid "prodded"
+msgstr "espetou"
-#: ../../include/nav.php:80
-msgid "Your posts and conversations"
-msgstr "Suas publicações e conversas"
+#: ../../include/text.php:906
+msgid "slap"
+msgstr "estapear"
-#: ../../include/nav.php:81
-msgid "Your profile page"
-msgstr "A página do seu perfil"
+#: ../../include/text.php:906
+msgid "slapped"
+msgstr "estapeou"
-#: ../../include/nav.php:83
-msgid "Edit Profiles"
-msgstr "Editar perfis"
+#: ../../include/text.php:907
+msgid "finger"
+msgstr "dar um toque"
-#: ../../include/nav.php:83
-msgid "Manage/Edit profiles"
-msgstr "Administrar/Editar perfis"
+#: ../../include/text.php:907
+msgid "fingered"
+msgstr "deu um toque"
-#: ../../include/nav.php:84
-msgid "Your photos"
-msgstr "Suas fotos"
+#: ../../include/text.php:908
+msgid "rebuff"
+msgstr "rebater"
-#: ../../include/nav.php:85
-msgid "Your files"
-msgstr "Seus arquivos"
+#: ../../include/text.php:908
+msgid "rebuffed"
+msgstr "rebateu"
-#: ../../include/nav.php:86 ../../include/apps.php:133
-msgid "Chat"
-msgstr "Bate-papo"
+#: ../../include/text.php:917
+msgid "happy"
+msgstr "feliz"
-#: ../../include/nav.php:86
-msgid "Your chatrooms"
-msgstr "Suas salas de bate-papo"
+#: ../../include/text.php:918
+msgid "sad"
+msgstr "triste"
-#: ../../include/nav.php:87
-msgid "Your events"
-msgstr "Seus eventos"
+#: ../../include/text.php:919
+msgid "mellow"
+msgstr "suave"
-#: ../../include/nav.php:88
-msgid "Your bookmarks"
-msgstr "Seus links guardados"
+#: ../../include/text.php:920
+msgid "tired"
+msgstr "cansad@"
-#: ../../include/nav.php:90
-msgid "Your webpages"
-msgstr "Suas páginas web"
+#: ../../include/text.php:921
+msgid "perky"
+msgstr "animad@"
-#: ../../include/nav.php:94 ../../include/apps.php:118 ../../boot.php:1452
-msgid "Login"
-msgstr "Entrar"
+#: ../../include/text.php:922
+msgid "angry"
+msgstr "nervos@"
-#: ../../include/nav.php:94
-msgid "Sign in"
-msgstr "Entrar"
+#: ../../include/text.php:923
+msgid "stupified"
+msgstr "embasbacad@"
-#: ../../include/nav.php:111
-#, php-format
-msgid "%s - click to logout"
-msgstr "%s - clique para sair"
+#: ../../include/text.php:924
+msgid "puzzled"
+msgstr "confus@"
-#: ../../include/nav.php:116
-msgid "Click to authenticate to your home hub"
-msgstr "Clique para se autenticar com seu hub de origem"
+#: ../../include/text.php:925
+msgid "interested"
+msgstr "interessad@"
-#: ../../include/nav.php:130
-msgid "Home Page"
-msgstr "Página inicial"
+#: ../../include/text.php:926
+msgid "bitter"
+msgstr "amarg@"
-#: ../../include/nav.php:134 ../../mod/register.php:206 ../../boot.php:1428
-msgid "Register"
-msgstr "Registrar"
+#: ../../include/text.php:927
+msgid "cheerful"
+msgstr "animad@"
-#: ../../include/nav.php:134
-msgid "Create an account"
-msgstr "Criar uma conta"
+#: ../../include/text.php:928
+msgid "alive"
+msgstr "viv@"
-#: ../../include/nav.php:139 ../../include/apps.php:129 ../../mod/help.php:60
-#: ../../mod/help.php:65
-msgid "Help"
-msgstr "Ajuda"
+#: ../../include/text.php:929
+msgid "annoyed"
+msgstr "aborrecid@"
-#: ../../include/nav.php:139
-msgid "Help and documentation"
-msgstr "Ajuda e documentação"
+#: ../../include/text.php:930
+msgid "anxious"
+msgstr "ansios@"
-#: ../../include/nav.php:142 ../../include/widgets.php:79
-#: ../../mod/apps.php:17 ../../mod/apps.php:36
-msgid "Apps"
-msgstr "Aplicações"
+#: ../../include/text.php:931
+msgid "cranky"
+msgstr "irritad@"
-#: ../../include/nav.php:142
-msgid "Applications, utilities, links, games"
-msgstr "Aplicações, utilitários, links, jogos"
+#: ../../include/text.php:932
+msgid "disturbed"
+msgstr "perturbad@"
-#: ../../include/nav.php:144 ../../include/text.php:813
-#: ../../include/text.php:827 ../../include/apps.php:134
-#: ../../mod/search.php:29
-msgid "Search"
-msgstr "Pesquisar"
+#: ../../include/text.php:933
+msgid "frustrated"
+msgstr "frustrad@"
-#: ../../include/nav.php:144
-msgid "Search site content"
-msgstr "Pesquisar o conteúdo do site"
+#: ../../include/text.php:934
+msgid "depressed"
+msgstr "deprimido"
-#: ../../include/nav.php:147 ../../include/apps.php:128
-#: ../../mod/directory.php:210
-msgid "Directory"
-msgstr "Diretório"
+#: ../../include/text.php:935
+msgid "motivated"
+msgstr "motivad@"
-#: ../../include/nav.php:147
-msgid "Channel Locator"
-msgstr "Localizador de canais"
+#: ../../include/text.php:936
+msgid "relaxed"
+msgstr "relaxad@"
-#: ../../include/nav.php:158 ../../include/apps.php:120
-msgid "Matrix"
-msgstr "Matriz"
+#: ../../include/text.php:937
+msgid "surprised"
+msgstr "surpres@"
-#: ../../include/nav.php:158
-msgid "Your matrix"
-msgstr "Sua matriz"
+#: ../../include/text.php:1101
+msgid "Monday"
+msgstr "Segunda"
-#: ../../include/nav.php:159
-msgid "Mark all matrix notifications seen"
-msgstr "Marcar todas as notificações da matriz como vistas"
+#: ../../include/text.php:1101
+msgid "Tuesday"
+msgstr "Terça"
-#: ../../include/nav.php:161 ../../include/apps.php:124
-msgid "Channel Home"
-msgstr "Página inicial do canal"
+#: ../../include/text.php:1101
+msgid "Wednesday"
+msgstr "Quarta"
-#: ../../include/nav.php:161
-msgid "Channel home"
-msgstr "Página inicial do canal"
+#: ../../include/text.php:1101
+msgid "Thursday"
+msgstr "Quinta"
-#: ../../include/nav.php:162
-msgid "Mark all channel notifications seen"
-msgstr "Marcar todas as notificações de canais como vistas"
+#: ../../include/text.php:1101
+msgid "Friday"
+msgstr "Sexta"
-#: ../../include/nav.php:165 ../../include/nav.php:188
-#: ../../mod/connections.php:385
-msgid "Connections"
-msgstr "Conexões"
+#: ../../include/text.php:1101
+msgid "Saturday"
+msgstr "SaÌbado"
-#: ../../include/nav.php:168
-msgid "Notices"
-msgstr "Notificações"
+#: ../../include/text.php:1101
+msgid "Sunday"
+msgstr "Domingo"
-#: ../../include/nav.php:168
-msgid "Notifications"
-msgstr "Notificações"
+#: ../../include/text.php:1105
+msgid "January"
+msgstr "Janeiro"
-#: ../../include/nav.php:169
-msgid "See all notifications"
-msgstr "Ver todas as notificações"
+#: ../../include/text.php:1105
+msgid "February"
+msgstr "Fevereiro"
-#: ../../include/nav.php:170 ../../mod/notifications.php:99
-msgid "Mark all system notifications seen"
-msgstr "Marcar todas as notificações de sistema como vistas"
+#: ../../include/text.php:1105
+msgid "March"
+msgstr "Março"
-#: ../../include/nav.php:172 ../../include/apps.php:130
-msgid "Mail"
-msgstr "Mensagens"
+#: ../../include/text.php:1105
+msgid "April"
+msgstr "Abril"
-#: ../../include/nav.php:172
-msgid "Private mail"
-msgstr "Mensagens privadas"
+#: ../../include/text.php:1105
+msgid "May"
+msgstr "Maio"
-#: ../../include/nav.php:173
-msgid "See all private messages"
-msgstr "Ver todas as mensagens privadas"
+#: ../../include/text.php:1105
+msgid "June"
+msgstr "Junho"
-#: ../../include/nav.php:174
-msgid "Mark all private messages seen"
-msgstr "Marcar todas as mensagens privadas como vistas"
+#: ../../include/text.php:1105
+msgid "July"
+msgstr "Julho"
-#: ../../include/nav.php:175
-msgid "Inbox"
-msgstr "Recebidas"
+#: ../../include/text.php:1105
+msgid "August"
+msgstr "Agosto"
-#: ../../include/nav.php:176
-msgid "Outbox"
-msgstr "Enviadas"
+#: ../../include/text.php:1105
+msgid "September"
+msgstr "Setembro"
-#: ../../include/nav.php:177 ../../include/widgets.php:536
-msgid "New Message"
-msgstr "Nova mensagem"
+#: ../../include/text.php:1105
+msgid "October"
+msgstr "Outubro"
-#: ../../include/nav.php:180
-msgid "Event Calendar"
-msgstr "Agenda de eventos"
+#: ../../include/text.php:1105
+msgid "November"
+msgstr "Novembro"
-#: ../../include/nav.php:181
-msgid "See all events"
-msgstr "Ver todos os eventos"
+#: ../../include/text.php:1105
+msgid "December"
+msgstr "Dezembro"
-#: ../../include/nav.php:182
-msgid "Mark all events seen"
-msgstr "Marcar todos os eventos como vistos"
+#: ../../include/text.php:1183
+msgid "unknown.???"
+msgstr "desconhecido.???"
-#: ../../include/nav.php:184 ../../include/apps.php:119
-msgid "Channel Select"
-msgstr "Seleção de canal"
+#: ../../include/text.php:1184
+msgid "bytes"
+msgstr "bytes"
-#: ../../include/nav.php:184
-msgid "Manage Your Channels"
-msgstr "Gerencie os seus canais"
+#: ../../include/text.php:1223
+msgid "remove category"
+msgstr "remover categoria"
-#: ../../include/nav.php:186 ../../include/apps.php:121
-#: ../../include/widgets.php:514 ../../mod/admin.php:976
-#: ../../mod/admin.php:1181
-msgid "Settings"
-msgstr "Configurações"
+#: ../../include/text.php:1293
+msgid "remove from file"
+msgstr "remover do arquivo"
-#: ../../include/nav.php:186
-msgid "Account/Channel Settings"
-msgstr "Configurações da conta/canal"
+#: ../../include/text.php:1358 ../../include/text.php:1370
+msgid "Click to open/close"
+msgstr "Clique para abrir/fechar"
-#: ../../include/nav.php:188
-msgid "Manage/Edit Friends and Connections"
-msgstr "Gerenciar/editar os amigos e as conexões"
+#: ../../include/text.php:1525 ../../mod/events.php:414
+msgid "Link to Source"
+msgstr "Link para a origem"
-#: ../../include/nav.php:195 ../../mod/admin.php:117
-msgid "Admin"
-msgstr "Admin"
+#: ../../include/text.php:1544
+msgid "Select a page layout: "
+msgstr "Selecione um layout de página:"
-#: ../../include/nav.php:195
-msgid "Site Setup and Configuration"
-msgstr "Configuração do site"
+#: ../../include/text.php:1547 ../../include/text.php:1612
+msgid "default"
+msgstr "default"
-#: ../../include/nav.php:220
-msgid "Nothing new here"
-msgstr "Nada de novo aqui"
+#: ../../include/text.php:1583
+msgid "Page content type: "
+msgstr "Tipo de conteúdo da página: "
-#: ../../include/nav.php:224
-msgid "Please wait..."
-msgstr "Por favor, aguarde..."
+#: ../../include/text.php:1624
+msgid "Select an alternate language"
+msgstr "Selecione um idioma alternativo"
-#: ../../include/bookmarks.php:42
-#, php-format
-msgid "%1$s's bookmarks"
-msgstr "Links guardados de %1$s"
+#: ../../include/text.php:1758
+msgid "activity"
+msgstr "atividade"
-#: ../../include/chat.php:10
-msgid "Missing room name"
-msgstr "Nome da sala vazio"
+#: ../../include/text.php:2030
+msgid "Design"
+msgstr "Design"
-#: ../../include/chat.php:19
-msgid "Duplicate room name"
-msgstr "Nome da sala duplicado"
+#: ../../include/text.php:2032
+msgid "Blocks"
+msgstr "Blocos"
-#: ../../include/chat.php:68 ../../include/chat.php:76
-msgid "Invalid room specifier."
-msgstr "Especificador de sala inválido."
+#: ../../include/text.php:2033
+msgid "Menus"
+msgstr "Menus"
-#: ../../include/chat.php:105
-msgid "Room not found."
-msgstr "A sala não foi encontrada."
+#: ../../include/text.php:2034
+msgid "Layouts"
+msgstr "Layouts"
-#: ../../include/chat.php:126
-msgid "Room is full"
-msgstr "A sala está cheia"
+#: ../../include/text.php:2035
+msgid "Pages"
+msgstr "Páginas"
#: ../../include/taxonomy.php:210
msgid "Tags"
@@ -1294,7 +1262,7 @@ msgstr "quero"
msgid "wants"
msgstr "quer"
-#: ../../include/taxonomy.php:254 ../../include/ItemObject.php:208
+#: ../../include/taxonomy.php:254 ../../include/ItemObject.php:220
msgid "like"
msgstr "gostei"
@@ -1302,7 +1270,7 @@ msgstr "gostei"
msgid "likes"
msgstr "gosta"
-#: ../../include/taxonomy.php:255 ../../include/ItemObject.php:209
+#: ../../include/taxonomy.php:255 ../../include/ItemObject.php:221
msgid "dislike"
msgstr "não gostei"
@@ -1310,97 +1278,80 @@ msgstr "não gostei"
msgid "dislikes"
msgstr "desgosta"
+#: ../../include/taxonomy.php:338 ../../include/identity.php:1136
+#: ../../include/ItemObject.php:146
+msgctxt "noun"
+msgid "Like"
+msgid_plural "Likes"
+msgstr[0] "gostou"
+msgstr[1] "gostaram"
+
#: ../../include/comanche.php:35 ../../view/theme/apw/php/config.php:185
-#: ../../view/theme/redbasic/php/config.php:84
msgid "Default"
msgstr "Default"
-#: ../../include/contact_selectors.php:30
-msgid "Unknown | Not categorised"
-msgstr "Desconhecido | Não categorizado"
-
-#: ../../include/contact_selectors.php:31
-msgid "Block immediately"
-msgstr "Bloquear imediatamente"
-
-#: ../../include/contact_selectors.php:32
-msgid "Shady, spammer, self-marketer"
-msgstr "Suspeito, spammer, propagandista"
-
-#: ../../include/contact_selectors.php:33
-msgid "Known to me, but no opinion"
-msgstr "Eu conheço, mas não tenho opinião a respeito"
-
-#: ../../include/contact_selectors.php:34
-msgid "OK, probably harmless"
-msgstr "Ok, provavelmente inofensivo"
-
-#: ../../include/contact_selectors.php:35
-msgid "Reputable, has my trust"
-msgstr "Boa reputação, tem minha confiança"
-
-#: ../../include/contact_selectors.php:54
+#: ../../include/contact_selectors.php:56
msgid "Frequently"
msgstr "Frequentemente"
-#: ../../include/contact_selectors.php:55
+#: ../../include/contact_selectors.php:57
msgid "Hourly"
msgstr "De hora em hora"
-#: ../../include/contact_selectors.php:56
+#: ../../include/contact_selectors.php:58
msgid "Twice daily"
msgstr "Duas vezes ao dia"
-#: ../../include/contact_selectors.php:57
+#: ../../include/contact_selectors.php:59
msgid "Daily"
msgstr "Diariamente"
-#: ../../include/contact_selectors.php:58
+#: ../../include/contact_selectors.php:60
msgid "Weekly"
msgstr "Semanalmente"
-#: ../../include/contact_selectors.php:59
+#: ../../include/contact_selectors.php:61
msgid "Monthly"
msgstr "Mensalmente"
-#: ../../include/contact_selectors.php:74
+#: ../../include/contact_selectors.php:76
msgid "Friendica"
msgstr "Friendica"
-#: ../../include/contact_selectors.php:75
+#: ../../include/contact_selectors.php:77
msgid "OStatus"
msgstr "OStatus"
-#: ../../include/contact_selectors.php:76
+#: ../../include/contact_selectors.php:78
msgid "RSS/Atom"
msgstr "RSS/Atom"
-#: ../../include/contact_selectors.php:77 ../../mod/admin.php:753
-#: ../../mod/admin.php:762 ../../boot.php:1454
+#: ../../include/contact_selectors.php:79 ../../mod/admin.php:728
+#: ../../mod/admin.php:737 ../../boot.php:1497
msgid "Email"
msgstr "E-mail"
-#: ../../include/contact_selectors.php:78
+#: ../../include/contact_selectors.php:80
msgid "Diaspora"
msgstr "Diaspora"
-#: ../../include/contact_selectors.php:79
+#: ../../include/contact_selectors.php:81
msgid "Facebook"
msgstr "Facebook"
-#: ../../include/contact_selectors.php:80
+#: ../../include/contact_selectors.php:82
msgid "Zot!"
msgstr "Zot!"
-#: ../../include/contact_selectors.php:81
+#: ../../include/contact_selectors.php:83
msgid "LinkedIn"
msgstr "LinkedIn"
-#: ../../include/contact_selectors.php:82
+#: ../../include/contact_selectors.php:84
msgid "XMPP/IM"
msgstr "XMPP/MI"
-#: ../../include/contact_selectors.php:83
+#: ../../include/contact_selectors.php:85
msgid "MySpace"
msgstr "MySpace"
@@ -1411,7 +1362,7 @@ msgid_plural "%d invitations available"
msgstr[0] "%d convite disponível"
msgstr[1] "%d convites disponíveis"
-#: ../../include/contact_widgets.php:19 ../../mod/admin.php:445
+#: ../../include/contact_widgets.php:19 ../../mod/admin.php:418
msgid "Advanced"
msgstr "Avançado"
@@ -1431,8 +1382,8 @@ msgstr "Conectar/Acompanhar"
msgid "Examples: Robert Morgenstein, Fishing"
msgstr "Por exemplo: José da Silva, Pescaria"
-#: ../../include/contact_widgets.php:26 ../../mod/connections.php:391
-#: ../../mod/directory.php:206 ../../mod/directory.php:211
+#: ../../include/contact_widgets.php:26 ../../mod/connections.php:412
+#: ../../mod/directory.php:222 ../../mod/directory.php:227
msgid "Find"
msgstr "Pesquisar"
@@ -1456,38 +1407,129 @@ msgstr "Exemplo: name=raoni and country=peru"
msgid "Advanced Find"
msgstr "Busca avançada"
-#: ../../include/contact_widgets.php:58 ../../include/features.php:66
-#: ../../include/widgets.php:296
+#: ../../include/contact_widgets.php:58 ../../include/features.php:72
+#: ../../include/widgets.php:303
msgid "Saved Folders"
msgstr "Pastas salvas"
-#: ../../include/contact_widgets.php:61 ../../include/contact_widgets.php:95
-#: ../../include/widgets.php:299
+#: ../../include/contact_widgets.php:61 ../../include/contact_widgets.php:96
+#: ../../include/widgets.php:306
msgid "Everything"
msgstr "Tudo"
-#: ../../include/contact_widgets.php:92 ../../include/widgets.php:29
+#: ../../include/contact_widgets.php:93 ../../include/widgets.php:29
msgid "Categories"
msgstr "Categorias"
-#: ../../include/contact_widgets.php:125
+#: ../../include/contact_widgets.php:126
#, php-format
msgid "%d connection in common"
msgid_plural "%d connections in common"
msgstr[0] "%d conexão em comum"
msgstr[1] "%d conexões em comum"
-#: ../../include/contact_widgets.php:130
+#: ../../include/contact_widgets.php:131
msgid "show more"
msgstr "exibir mais"
+#: ../../include/event.php:11 ../../include/bb2diaspora.php:423
+msgid "l F d, Y \\@ g:i A"
+msgstr "l F d, Y \\@ g:i A"
+
+#: ../../include/event.php:20 ../../include/bb2diaspora.php:429
+msgid "Starts:"
+msgstr "Início:"
+
+#: ../../include/event.php:30 ../../include/bb2diaspora.php:437
+msgid "Finishes:"
+msgstr "Fim:"
+
+#: ../../include/event.php:40 ../../include/bb2diaspora.php:445
+#: ../../include/identity.php:881 ../../mod/directory.php:156
+#: ../../mod/dirprofile.php:105 ../../mod/events.php:579
+msgid "Location:"
+msgstr "Localização:"
+
#: ../../include/event.php:326
msgid "This event has been added to your calendar."
msgstr "Esse evento foi adicionado ao seu calendário."
-#: ../../include/reddav.php:1045
-msgid "Edit File properties"
-msgstr "Editar propriedades do arquivo"
+#: ../../include/account.php:23
+msgid "Not a valid email address"
+msgstr "Não é um endereço de e-mail válido"
+
+#: ../../include/account.php:25
+msgid "Your email domain is not among those allowed on this site"
+msgstr "O domínio do seu e-mail não está entre os permitidos neste site"
+
+#: ../../include/account.php:31
+msgid "Your email address is already registered at this site."
+msgstr "O seu endereço de e-mail já está registrado neste site."
+
+#: ../../include/account.php:64
+msgid "An invitation is required."
+msgstr "É necessário um convite."
+
+#: ../../include/account.php:68
+msgid "Invitation could not be verified."
+msgstr "Não foi possível verificar o convite."
+
+#: ../../include/account.php:119
+msgid "Please enter the required information."
+msgstr "Por favor, forneça a informação solicitada."
+
+#: ../../include/account.php:187
+msgid "Failed to store account information."
+msgstr "Não foi possível armazenar a informação da conta."
+
+#: ../../include/account.php:245
+#, php-format
+msgid "Registration confirmation for %s"
+msgstr "Confirmação de registro para %s"
+
+#: ../../include/account.php:313
+#, php-format
+msgid "Registration request at %s"
+msgstr "Solicitação de registro em %s"
+
+#: ../../include/account.php:315 ../../include/account.php:342
+#: ../../include/account.php:399
+msgid "Administrator"
+msgstr "Administrador"
+
+#: ../../include/account.php:337
+msgid "your registration password"
+msgstr "sua senha de registro"
+
+#: ../../include/account.php:340 ../../include/account.php:397
+#, php-format
+msgid "Registration details for %s"
+msgstr "Detalhes do registro de %s"
+
+#: ../../include/account.php:406
+msgid "Account approved."
+msgstr "A conta foi aprovada."
+
+#: ../../include/account.php:440
+#, php-format
+msgid "Registration revoked for %s"
+msgstr "O registro de %s foi revogado"
+
+#: ../../include/account.php:486
+msgid "Account verified. Please login."
+msgstr "Conta verificada. Por favor faça o login."
+
+#: ../../include/account.php:647 ../../include/account.php:649
+msgid "Click here to upgrade."
+msgstr "Clique aqui para atualizar."
+
+#: ../../include/account.php:655
+msgid "This action exceeds the limits set by your subscription plan."
+msgstr "Essa ação excede o limite definido para o seu plano de assinatura."
+
+#: ../../include/account.php:660
+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/datetime.php:43 ../../include/datetime.php:45
msgid "Miscellaneous"
@@ -1572,34 +1614,38 @@ msgstr "Aniversário de %1$s "
msgid "Happy Birthday %1$s"
msgstr "Feliz Aniversário %1$s"
-#: ../../include/dir_fns.php:36
+#: ../../include/dir_fns.php:56
msgid "Sort Options"
msgstr "Opções de ordenação"
-#: ../../include/dir_fns.php:37
+#: ../../include/dir_fns.php:57
msgid "Alphabetic"
msgstr "Alfabética"
-#: ../../include/dir_fns.php:38
+#: ../../include/dir_fns.php:58
msgid "Reverse Alphabetic"
msgstr "Alfabética reversa"
-#: ../../include/dir_fns.php:39
+#: ../../include/dir_fns.php:59
msgid "Newest to Oldest"
msgstr "Das mais recentes para as mais antigas"
-#: ../../include/dir_fns.php:51
+#: ../../include/dir_fns.php:71
msgid "Enable Safe Search"
msgstr "Habilitar busca tranquila"
-#: ../../include/dir_fns.php:53
+#: ../../include/dir_fns.php:73
msgid "Disable Safe Search"
msgstr "Desabilitar busca tranquila"
-#: ../../include/dir_fns.php:55
+#: ../../include/dir_fns.php:75
msgid "Safe Mode"
msgstr "Modo tranquilo"
+#: ../../include/bb2diaspora.php:344
+msgid "Attachments:"
+msgstr "Anexos:"
+
#: ../../include/enotify.php:41
msgid "Red Matrix Notification"
msgstr "Notificação da Red Matrix"
@@ -1792,6 +1838,107 @@ msgstr "Foto:"
msgid "Please visit %s to approve or reject the suggestion."
msgstr "Por favor, visite %s para aprovar ou rejeitar a sugestão."
+#: ../../include/enotify.php:477
+msgid "[Red:Notify]"
+msgstr "[Red:Notify]"
+
+#: ../../include/reddav.php:1145 ../../include/reddav.php:1288
+msgid "parent"
+msgstr "nível superior"
+
+#: ../../include/reddav.php:1169
+msgid "Collection"
+msgstr "Coleção"
+
+#: ../../include/reddav.php:1172
+msgid "Principal"
+msgstr "Principal"
+
+#: ../../include/reddav.php:1175
+msgid "Addressbook"
+msgstr "Livro de endereços"
+
+#: ../../include/reddav.php:1178
+msgid "Calendar"
+msgstr "Calendário"
+
+#: ../../include/reddav.php:1181
+msgid "Schedule Inbox"
+msgstr "Caixa de entrada da agenda"
+
+#: ../../include/reddav.php:1184
+msgid "Schedule Outbox"
+msgstr "Caixa de saída da agenda"
+
+#: ../../include/reddav.php:1262
+#, php-format
+msgid "%1$s used"
+msgstr "%1$s usados"
+
+#: ../../include/reddav.php:1267
+#, php-format
+msgid "%1$s used of %2$s (%3$s&#37;)"
+msgstr "%1$s usados de %2$s (%3$s&#37;)"
+
+#: ../../include/reddav.php:1284 ../../mod/settings.php:521
+#: ../../mod/settings.php:547 ../../mod/admin.php:868
+msgid "Name"
+msgstr "Nome"
+
+#: ../../include/reddav.php:1285
+msgid "Type"
+msgstr "Tipo"
+
+#: ../../include/reddav.php:1286
+msgid "Size"
+msgstr "Tamanho"
+
+#: ../../include/reddav.php:1287
+msgid "Last Modified"
+msgstr "Última modificação"
+
+#: ../../include/reddav.php:1291
+msgid "Total"
+msgstr "Total"
+
+#: ../../include/reddav.php:1344
+msgid "Create new folder"
+msgstr "Criar uma nova pasta"
+
+#: ../../include/reddav.php:1345 ../../mod/mitem.php:142 ../../mod/menu.php:84
+#: ../../mod/new_channel.php:122
+msgid "Create"
+msgstr "Criar"
+
+#: ../../include/reddav.php:1346
+msgid "Upload file"
+msgstr "Enviar arquivo"
+
+#: ../../include/reddav.php:1347 ../../mod/photos.php:1241
+#: ../../mod/profile_photo.php:361
+msgid "Upload"
+msgstr "Enviar"
+
+#: ../../include/chat.php:10
+msgid "Missing room name"
+msgstr "Nome da sala vazio"
+
+#: ../../include/chat.php:19
+msgid "Duplicate room name"
+msgstr "Nome da sala duplicado"
+
+#: ../../include/chat.php:68 ../../include/chat.php:76
+msgid "Invalid room specifier."
+msgstr "Especificador de sala inválido."
+
+#: ../../include/chat.php:105
+msgid "Room not found."
+msgstr "A sala não foi encontrada."
+
+#: ../../include/chat.php:126
+msgid "Room is full"
+msgstr "A sala está cheia"
+
#: ../../include/features.php:23
msgid "General Features"
msgstr "Recursos gerais"
@@ -1813,231 +1960,331 @@ msgid "Ability to create multiple profiles"
msgstr "Possibilidade de criar múltiplos perfis"
#: ../../include/features.php:27
+msgid "Advanced Profiles"
+msgstr "Perfis avançados"
+
+#: ../../include/features.php:27
+msgid "Additional profile sections and selections"
+msgstr "Seções e seleções adicionais no perfil"
+
+#: ../../include/features.php:28
+msgid "Profile Import/Export"
+msgstr "Importar/exportar perfis"
+
+#: ../../include/features.php:28
+msgid "Save and load profile details across sites/channels"
+msgstr "Salvar e carregar detalhes de perfis entre sites/canais"
+
+#: ../../include/features.php:29
msgid "Web Pages"
msgstr "Páginas web"
-#: ../../include/features.php:27
+#: ../../include/features.php:29
msgid "Provide managed web pages on your channel"
msgstr "Fornece páginas web gerenciáveis no seu canal"
-#: ../../include/features.php:28
+#: ../../include/features.php:30
msgid "Private Notes"
msgstr "Notas privadas"
-#: ../../include/features.php:28
+#: ../../include/features.php:30
msgid "Enables a tool to store notes and reminders"
msgstr "Habilita uma ferramenta para guardar notas e lembretes"
-#: ../../include/features.php:33
+#: ../../include/features.php:34
+msgid "Navigation Channel Select"
+msgstr "Seletor de canais na navegação"
+
+#: ../../include/features.php:34
+msgid "Change channels directly from within the navigation dropdown menu"
+msgstr "Trocar canais diretamente a partir do menu expansível na navegação"
+
+#: ../../include/features.php:38
msgid "Extended Identity Sharing"
msgstr "Compartilhamento estendido de identidade"
-#: ../../include/features.php:33
+#: ../../include/features.php:38
msgid ""
"Share your identity with all websites on the internet. When disabled, "
"identity is only shared with sites in the matrix."
msgstr "Compartilhar sua identidade com todos os websites na internet. Quando desabilitado, sua identidade é compartilhada apenas com outros sites na matrix."
-#: ../../include/features.php:34
+#: ../../include/features.php:39
msgid "Expert Mode"
msgstr "Modo Expert"
-#: ../../include/features.php:34
+#: ../../include/features.php:39
msgid "Enable Expert Mode to provide advanced configuration options"
msgstr "O Modo Expert fornece opções de configurações avançadas"
-#: ../../include/features.php:35
+#: ../../include/features.php:40
msgid "Premium Channel"
msgstr "Canal premium"
-#: ../../include/features.php:35
+#: ../../include/features.php:40
msgid ""
"Allows you to set restrictions and terms on those that connect with your "
"channel"
msgstr "Permite definir restrições e termos para aqueles que se conectarem ao seu canal"
-#: ../../include/features.php:40
+#: ../../include/features.php:45
msgid "Post Composition Features"
msgstr "Recursos de composição de publicações"
-#: ../../include/features.php:41
-msgid "Richtext Editor"
-msgstr "Editor richtext"
+#: ../../include/features.php:47
+msgid "Use Markdown"
+msgstr "Usar Markdown"
-#: ../../include/features.php:41
-msgid "Enable richtext editor"
-msgstr "Habilita o editor richtext"
+#: ../../include/features.php:47
+msgid "Allow use of \"Markdown\" to format posts"
+msgstr "Permitir o uso de \"Markdown\" para formatar publicações"
-#: ../../include/features.php:42
+#: ../../include/features.php:48
msgid "Post Preview"
msgstr "Pré-visualizar a publicação"
-#: ../../include/features.php:42
+#: ../../include/features.php:48
msgid "Allow previewing posts and comments before publishing them"
msgstr "Permite visualizar publicações e comentários antes de publicá-los"
-#: ../../include/features.php:43 ../../include/widgets.php:503
+#: ../../include/features.php:49 ../../include/widgets.php:510
#: ../../mod/sources.php:88
msgid "Channel Sources"
msgstr "Fontes do canal"
-#: ../../include/features.php:43
+#: ../../include/features.php:49
msgid "Automatically import channel content from other channels or feeds"
msgstr "Importar automaticamente conteúdo de outros canais ou fontes"
-#: ../../include/features.php:44
+#: ../../include/features.php:50
msgid "Even More Encryption"
msgstr "Mais encriptação ainda"
-#: ../../include/features.php:44
+#: ../../include/features.php:50
msgid ""
"Allow optional encryption of content end-to-end with a shared secret key"
msgstr "Permitir encriptação opcional de conteúdo, ponta-a-ponta com uma chave secreta compartilhada"
-#: ../../include/features.php:49
+#: ../../include/features.php:55
msgid "Network and Stream Filtering"
msgstr "Filtragem de rede e fluxo"
-#: ../../include/features.php:50
+#: ../../include/features.php:56
msgid "Search by Date"
msgstr "Pesquisar por data"
-#: ../../include/features.php:50
+#: ../../include/features.php:56
msgid "Ability to select posts by date ranges"
msgstr "capacidade de selecionar publicações por intervalos de datas"
-#: ../../include/features.php:51
+#: ../../include/features.php:57
msgid "Collections Filter"
msgstr "Filtros de coleções"
-#: ../../include/features.php:51
+#: ../../include/features.php:57
msgid "Enable widget to display Network posts only from selected collections"
msgstr "Habilita widget para exibir publicações da rede apenas para determinadas coleções"
-#: ../../include/features.php:52 ../../include/widgets.php:265
+#: ../../include/features.php:58 ../../include/widgets.php:272
msgid "Saved Searches"
msgstr "Pesquisas salvas"
-#: ../../include/features.php:52
+#: ../../include/features.php:58
msgid "Save search terms for re-use"
msgstr "Termos de pesquisa salvos para reutilização"
-#: ../../include/features.php:53
+#: ../../include/features.php:59
msgid "Network Personal Tab"
msgstr "Aba de interações na rede"
-#: ../../include/features.php:53
+#: ../../include/features.php:59
msgid "Enable tab to display only Network posts that you've interacted on"
msgstr "Habilita uma aba para exibir apenas publicações da rede com as quais você interagiu"
-#: ../../include/features.php:54
+#: ../../include/features.php:60
msgid "Network New Tab"
msgstr "Aba de novidades da rede"
-#: ../../include/features.php:54
+#: ../../include/features.php:60
msgid "Enable tab to display all new Network activity"
msgstr "Habilita uma aba para exibir todas as novas atividades da rede"
-#: ../../include/features.php:55
+#: ../../include/features.php:61
msgid "Affinity Tool"
msgstr "Ferramenta de afinidade"
-#: ../../include/features.php:55
+#: ../../include/features.php:61
msgid "Filter stream activity by depth of relationships"
msgstr "Filtra o fluxo de atividades de acordo com o nível do relacionamento"
-#: ../../include/features.php:56
+#: ../../include/features.php:62
msgid "Suggest Channels"
msgstr "Sugerir canais"
-#: ../../include/features.php:56
+#: ../../include/features.php:62
msgid "Show channel suggestions"
msgstr "Exibir sugestões de canais"
-#: ../../include/features.php:61
+#: ../../include/features.php:67
msgid "Post/Comment Tools"
msgstr "Ferramentas de publicação/comentário"
-#: ../../include/features.php:63
+#: ../../include/features.php:69
msgid "Edit Sent Posts"
msgstr "Editar publicações enviadas"
-#: ../../include/features.php:63
+#: ../../include/features.php:69
msgid "Edit and correct posts and comments after sending"
msgstr "Edita e corrige publicações e comentários após terem sido enviados"
-#: ../../include/features.php:64
+#: ../../include/features.php:70
msgid "Tagging"
msgstr "Etiquetagem"
-#: ../../include/features.php:64
+#: ../../include/features.php:70
msgid "Ability to tag existing posts"
msgstr "Possibilidade de colocar etiquetas em publicações existentes"
-#: ../../include/features.php:65
+#: ../../include/features.php:71
msgid "Post Categories"
msgstr "Categorizar publicações"
-#: ../../include/features.php:65
+#: ../../include/features.php:71
msgid "Add categories to your posts"
msgstr "Adiciona categorias às suas publicações"
-#: ../../include/features.php:66
+#: ../../include/features.php:72
msgid "Ability to file posts under folders"
msgstr "Possibilidade de arquivar publicações em pastas"
-#: ../../include/features.php:67
+#: ../../include/features.php:73
msgid "Dislike Posts"
msgstr "Desgostar de publicações"
-#: ../../include/features.php:67
+#: ../../include/features.php:73
msgid "Ability to dislike posts/comments"
msgstr "Possibilidade de desgostar de publicações/comentários"
-#: ../../include/features.php:68
+#: ../../include/features.php:74
msgid "Star Posts"
msgstr "Destacar publicações"
-#: ../../include/features.php:68
+#: ../../include/features.php:74
msgid "Ability to mark special posts with a star indicator"
msgstr "Possibilidade de marcar publicações em destaque com uma estrela indicadora"
-#: ../../include/features.php:69
+#: ../../include/features.php:75
msgid "Tag Cloud"
msgstr "Nuvem de etiquetas"
-#: ../../include/features.php:69
+#: ../../include/features.php:75
msgid "Provide a personal tag cloud on your channel page"
msgstr "Fornece uma nuvem de etiquetas pessoais à página do seu canal"
-#: ../../include/follow.php:23
+#: ../../include/follow.php:26
msgid "Channel is blocked on this site."
msgstr "O canal está bloqueado neste site."
-#: ../../include/follow.php:28
+#: ../../include/follow.php:31
msgid "Channel location missing."
msgstr "A localização do canal foi perdida"
-#: ../../include/follow.php:54
+#: ../../include/follow.php:80
msgid "Response from remote channel was incomplete."
msgstr "A resposta do canal remoto está incompleta."
-#: ../../include/follow.php:85
+#: ../../include/follow.php:97
msgid "Channel was deleted and no longer exists."
msgstr "O canal foi deletado e não existe mais."
-#: ../../include/follow.php:132
+#: ../../include/follow.php:133 ../../include/follow.php:202
+msgid "Protocol disabled."
+msgstr "Protocolo desabilitado."
+
+#: ../../include/follow.php:176
msgid "Channel discovery failed."
msgstr "A descoberta de canais falhou."
-#: ../../include/follow.php:149
+#: ../../include/follow.php:192
msgid "local account not found."
msgstr "a conta local não foi encontrada."
-#: ../../include/follow.php:158
+#: ../../include/follow.php:219
msgid "Cannot connect to yourself."
msgstr "Não é possível conectar-se consigo mesmo."
+#: ../../include/items.php:375 ../../mod/profperm.php:23
+#: ../../mod/subthread.php:49 ../../mod/group.php:68 ../../mod/like.php:242
+#: ../../index.php:364
+msgid "Permission denied"
+msgstr "Permissão negada"
+
+#: ../../include/items.php:962 ../../include/items.php:1007
+msgid "(Unknown)"
+msgstr "(Desconhecido)"
+
+#: ../../include/items.php:1163
+msgid "Visible to anybody on the internet."
+msgstr "Visívil para todos na internet."
+
+#: ../../include/items.php:1165
+msgid "Visible to you only."
+msgstr "Visível somente para você."
+
+#: ../../include/items.php:1167
+msgid "Visible to anybody in this network."
+msgstr "Visível para todos nesta rede."
+
+#: ../../include/items.php:1169
+msgid "Visible to anybody authenticated."
+msgstr "Visível para todos autenticados."
+
+#: ../../include/items.php:1171
+#, php-format
+msgid "Visible to anybody on %s."
+msgstr "Visível para todos em %s."
+
+#: ../../include/items.php:1173
+msgid "Visible to all connections."
+msgstr "Visível para quaisquer conexões."
+
+#: ../../include/items.php:1175
+msgid "Visible to approved connections."
+msgstr "Visível para conexões aprovadas."
+
+#: ../../include/items.php:1177
+msgid "Visible to specific connections."
+msgstr "Visível para conexões específicas."
+
+#: ../../include/items.php:3938 ../../mod/display.php:32
+#: ../../mod/filestorage.php:18 ../../mod/admin.php:168
+#: ../../mod/admin.php:898 ../../mod/admin.php:1101 ../../mod/thing.php:76
+#: ../../mod/viewsrc.php:20
+msgid "Item not found."
+msgstr "O item não foi encontrado."
+
+#: ../../include/items.php:4371 ../../mod/group.php:38 ../../mod/group.php:140
+msgid "Collection not found."
+msgstr "A coleção não foi encontrada."
+
+#: ../../include/items.php:4386
+msgid "Collection is empty."
+msgstr "A coleção está vazia."
+
+#: ../../include/items.php:4393
+#, php-format
+msgid "Collection: %s"
+msgstr "Coleção: %s"
+
+#: ../../include/items.php:4404
+#, php-format
+msgid "Connection: %s"
+msgstr "Conexão: %s"
+
+#: ../../include/items.php:4407
+msgid "Connection not found."
+msgstr "A conexão não foi encontrada."
+
#: ../../include/group.php:25
msgid ""
"A deleted group with this name was revived. Existing item permissions "
@@ -2045,652 +2292,507 @@ msgid ""
"not what you intended, please create another group with a different name."
msgstr "Um grupo com esse nome, anteriormente excluído, foi reativado. Permissões de itens já existentes <strong>poderão</strong> ser aplicadas a esse grupo e qualquer futuros membros. Se não é essa a sua intenção, favor criar outro grupo com um nome diferente."
-#: ../../include/group.php:223
+#: ../../include/group.php:234
msgid "Default privacy group for new contacts"
msgstr "Grupo de privacidade padrão para novos contatos"
-#: ../../include/group.php:242 ../../mod/admin.php:762
+#: ../../include/group.php:253 ../../mod/admin.php:737
msgid "All Channels"
msgstr "Todos os canais"
-#: ../../include/group.php:264
+#: ../../include/group.php:275
msgid "edit"
msgstr "editar"
-#: ../../include/group.php:285
+#: ../../include/group.php:297
msgid "Collections"
msgstr "Coleções"
-#: ../../include/group.php:286
+#: ../../include/group.php:298
msgid "Edit collection"
msgstr "Editar coleção"
-#: ../../include/group.php:287
+#: ../../include/group.php:299
msgid "Create a new collection"
msgstr "Criar uma nova coleção"
-#: ../../include/group.php:288
+#: ../../include/group.php:300
msgid "Channels not in any collection"
msgstr "Canais que não estão em nenhuma coleção"
-#: ../../include/group.php:290 ../../include/widgets.php:266
+#: ../../include/group.php:302 ../../include/widgets.php:273
msgid "add"
msgstr "adicionar"
-#: ../../include/identity.php:30 ../../mod/item.php:1244
+#: ../../include/bbcode.php:112 ../../include/bbcode.php:645
+#: ../../include/bbcode.php:648 ../../include/bbcode.php:653
+#: ../../include/bbcode.php:656 ../../include/bbcode.php:659
+#: ../../include/bbcode.php:662 ../../include/bbcode.php:667
+#: ../../include/bbcode.php:670 ../../include/bbcode.php:675
+#: ../../include/bbcode.php:678 ../../include/bbcode.php:681
+#: ../../include/bbcode.php:684
+msgid "Image/photo"
+msgstr "Imagem/foto"
+
+#: ../../include/bbcode.php:147 ../../include/bbcode.php:695
+msgid "Encrypted content"
+msgstr "Conteúdo criptografado"
+
+#: ../../include/bbcode.php:163
+msgid "QR code"
+msgstr "código QR"
+
+#: ../../include/bbcode.php:212
+#, php-format
+msgid "%1$s wrote the following %2$s %3$s"
+msgstr "%1$s escreveu a seguinte %2$s %3$s"
+
+#: ../../include/bbcode.php:214
+msgid "post"
+msgstr "publicação"
+
+#: ../../include/bbcode.php:613
+msgid "$1 spoiler"
+msgstr "$1 spoiler"
+
+#: ../../include/bbcode.php:633
+msgid "$1 wrote:"
+msgstr "$1 escreveu:"
+
+#: ../../include/identity.php:31 ../../mod/item.php:1312
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:63
+#: ../../include/identity.php:66
msgid "Empty name"
msgstr "O nome está em branco"
-#: ../../include/identity.php:65
+#: ../../include/identity.php:68
msgid "Name too long"
msgstr "O nome é muito grande"
-#: ../../include/identity.php:166
+#: ../../include/identity.php:169
msgid "No account identifier"
msgstr "Sem identificador de conta"
-#: ../../include/identity.php:176
+#: ../../include/identity.php:181
msgid "Nickname is required."
msgstr "É necessário informar o apelido."
-#: ../../include/identity.php:190
+#: ../../include/identity.php:195
msgid "Reserved nickname. Please choose another."
msgstr "Apelido reservado. Por favor escolha outro."
-#: ../../include/identity.php:195
+#: ../../include/identity.php:200
msgid ""
"Nickname has unsupported characters or is already being used on this site."
msgstr "O apelido possui caracteres não suportados ou já está sendo usado nesse site."
-#: ../../include/identity.php:258
+#: ../../include/identity.php:281
msgid "Unable to retrieve created identity"
msgstr "Não foi possível recuperar a identidade criada"
-#: ../../include/identity.php:317
+#: ../../include/identity.php:340
msgid "Default Profile"
msgstr "Perfil padrão"
-#: ../../include/identity.php:342 ../../include/widgets.php:400
-#: ../../include/profile_selectors.php:42 ../../mod/connedit.php:431
+#: ../../include/identity.php:379 ../../include/identity.php:380
+#: ../../include/identity.php:387 ../../include/widgets.php:407
+#: ../../include/profile_selectors.php:80 ../../mod/connedit.php:495
msgid "Friends"
msgstr "Amigos"
-#: ../../include/identity.php:509
+#: ../../include/identity.php:633
msgid "Requested channel is not available."
msgstr "Canal solicitado não está disponível."
-#: ../../include/identity.php:557 ../../mod/achievements.php:8
+#: ../../include/identity.php:681 ../../mod/achievements.php:11
#: ../../mod/profile.php:16 ../../mod/blocks.php:10 ../../mod/connect.php:13
#: ../../mod/filestorage.php:40 ../../mod/layouts.php:8
-#: ../../mod/webpages.php:8
+#: ../../mod/webpages.php:8 ../../mod/hcard.php:8
msgid "Requested profile is not available."
msgstr "O perfil solicitado não está disponível."
-#: ../../include/identity.php:675 ../../include/widgets.php:128
-#: ../../include/widgets.php:168 ../../include/Contact.php:107
-#: ../../mod/directory.php:183 ../../mod/dirprofile.php:164
-#: ../../mod/suggest.php:51 ../../mod/match.php:62
-msgid "Connect"
-msgstr "Conectar"
-
-#: ../../include/identity.php:689 ../../mod/profiles.php:603
+#: ../../include/identity.php:844 ../../mod/profiles.php:750
msgid "Change profile photo"
msgstr "Mudar a foto do perfil"
-#: ../../include/identity.php:695
+#: ../../include/identity.php:850
msgid "Profiles"
msgstr "Perfis"
-#: ../../include/identity.php:695
+#: ../../include/identity.php:850
msgid "Manage/edit profiles"
msgstr "Administrar/editar perfis"
-#: ../../include/identity.php:696 ../../mod/profiles.php:604
+#: ../../include/identity.php:851 ../../mod/profiles.php:751
msgid "Create New Profile"
msgstr "Criar um novo perfil"
-#: ../../include/identity.php:699
+#: ../../include/identity.php:854 ../../include/nav.php:102
msgid "Edit Profile"
msgstr "Editar perfil"
-#: ../../include/identity.php:710 ../../mod/profiles.php:615
+#: ../../include/identity.php:865 ../../mod/profiles.php:762
msgid "Profile Image"
msgstr "Imagem do perfil"
-#: ../../include/identity.php:713 ../../mod/profiles.php:618
+#: ../../include/identity.php:868
msgid "visible to everybody"
msgstr "visível para todos"
-#: ../../include/identity.php:714 ../../mod/profiles.php:619
+#: ../../include/identity.php:869 ../../mod/profiles.php:645
+#: ../../mod/profiles.php:766
msgid "Edit visibility"
msgstr "Editar a visibilidade"
-#: ../../include/identity.php:728 ../../include/identity.php:952
+#: ../../include/identity.php:883 ../../include/identity.php:1120
#: ../../mod/directory.php:158
msgid "Gender:"
msgstr "Gênero:"
-#: ../../include/identity.php:729 ../../include/identity.php:977
+#: ../../include/identity.php:884 ../../include/identity.php:1164
#: ../../mod/directory.php:160
msgid "Status:"
msgstr "Situação:"
-#: ../../include/identity.php:730 ../../include/identity.php:988
+#: ../../include/identity.php:885 ../../include/identity.php:1175
#: ../../mod/directory.php:162
msgid "Homepage:"
msgstr "Página web:"
-#: ../../include/identity.php:731 ../../mod/dirprofile.php:151
+#: ../../include/identity.php:886 ../../mod/dirprofile.php:151
msgid "Online Now"
msgstr "Online agora"
-#: ../../include/identity.php:796 ../../include/identity.php:876
-#: ../../mod/ping.php:262
+#: ../../include/identity.php:964 ../../include/identity.php:1044
+#: ../../mod/ping.php:298
msgid "g A l F d"
msgstr "G l d F"
-#: ../../include/identity.php:797 ../../include/identity.php:877
+#: ../../include/identity.php:965 ../../include/identity.php:1045
msgid "F d"
msgstr "F d"
-#: ../../include/identity.php:842 ../../include/identity.php:917
-#: ../../mod/ping.php:284
+#: ../../include/identity.php:1010 ../../include/identity.php:1085
+#: ../../mod/ping.php:320
msgid "[today]"
msgstr "[hoje]"
-#: ../../include/identity.php:854
+#: ../../include/identity.php:1022
msgid "Birthday Reminders"
msgstr "Lembres de aniversário"
-#: ../../include/identity.php:855
+#: ../../include/identity.php:1023
msgid "Birthdays this week:"
msgstr "Aniversários nesta semana:"
-#: ../../include/identity.php:910
+#: ../../include/identity.php:1078
msgid "[No description]"
msgstr "[Sem descrição]"
-#: ../../include/identity.php:928
+#: ../../include/identity.php:1096
msgid "Event Reminders"
msgstr "Lembretes de eventos"
-#: ../../include/identity.php:929
+#: ../../include/identity.php:1097
msgid "Events this week:"
msgstr "Eventos nesta semana:"
-#: ../../include/identity.php:942 ../../include/identity.php:1031
-#: ../../include/apps.php:125 ../../mod/profperm.php:112
-msgid "Profile"
-msgstr "Perfil"
-
-#: ../../include/identity.php:950 ../../mod/settings.php:934
+#: ../../include/identity.php:1118 ../../mod/settings.php:953
msgid "Full Name:"
msgstr "Nome completo:"
-#: ../../include/identity.php:962
+#: ../../include/identity.php:1125
+msgid "Like this channel"
+msgstr "Gostar deste canal"
+
+#: ../../include/identity.php:1149
msgid "j F, Y"
msgstr "j \\d\\e F, Y"
-#: ../../include/identity.php:963
+#: ../../include/identity.php:1150
msgid "j F"
msgstr "j \\d\\e F"
-#: ../../include/identity.php:970
+#: ../../include/identity.php:1157
msgid "Birthday:"
msgstr "Aniversário:"
-#: ../../include/identity.php:974
+#: ../../include/identity.php:1161
msgid "Age:"
msgstr "Idade:"
-#: ../../include/identity.php:983
+#: ../../include/identity.php:1170
#, php-format
msgid "for %1$d %2$s"
msgstr "para %1$d %2$s"
-#: ../../include/identity.php:986 ../../mod/profiles.php:526
+#: ../../include/identity.php:1173 ../../mod/profiles.php:667
msgid "Sexual Preference:"
msgstr "Preferência sexual:"
-#: ../../include/identity.php:990 ../../mod/profiles.php:528
+#: ../../include/identity.php:1177 ../../mod/profiles.php:669
msgid "Hometown:"
msgstr "Cidade natal:"
-#: ../../include/identity.php:992
+#: ../../include/identity.php:1179
msgid "Tags:"
msgstr "Etiquetas:"
-#: ../../include/identity.php:994 ../../mod/profiles.php:529
+#: ../../include/identity.php:1181 ../../mod/profiles.php:670
msgid "Political Views:"
msgstr "Posição política:"
-#: ../../include/identity.php:996
+#: ../../include/identity.php:1183
msgid "Religion:"
msgstr "Religião:"
-#: ../../include/identity.php:998 ../../mod/directory.php:164
+#: ../../include/identity.php:1185 ../../mod/directory.php:164
msgid "About:"
msgstr "Sobre:"
-#: ../../include/identity.php:1000
+#: ../../include/identity.php:1187
msgid "Hobbies/Interests:"
msgstr "Hobbies/Interesses:"
-#: ../../include/identity.php:1002 ../../mod/profiles.php:532
+#: ../../include/identity.php:1189 ../../mod/profiles.php:673
msgid "Likes:"
msgstr "Gosta de:"
-#: ../../include/identity.php:1004 ../../mod/profiles.php:533
+#: ../../include/identity.php:1191 ../../mod/profiles.php:674
msgid "Dislikes:"
msgstr "Não gosta de:"
-#: ../../include/identity.php:1007
+#: ../../include/identity.php:1194
msgid "Contact information and Social Networks:"
msgstr "Informações de contato e redes sociais:"
-#: ../../include/identity.php:1009
+#: ../../include/identity.php:1196
msgid "My other channels:"
msgstr "Meus outros canais:"
-#: ../../include/identity.php:1011
+#: ../../include/identity.php:1198
msgid "Musical interests:"
msgstr "Interesses musicais:"
-#: ../../include/identity.php:1013
+#: ../../include/identity.php:1200
msgid "Books, literature:"
msgstr "Livros, literatura:"
-#: ../../include/identity.php:1015
+#: ../../include/identity.php:1202
msgid "Television:"
msgstr "Televisão:"
-#: ../../include/identity.php:1017
+#: ../../include/identity.php:1204
msgid "Film/dance/culture/entertainment:"
msgstr "Filmes/dança/cultura/entretenimento:"
-#: ../../include/identity.php:1019
+#: ../../include/identity.php:1206
msgid "Love/Romance:"
msgstr "Amor/romance:"
-#: ../../include/identity.php:1021
+#: ../../include/identity.php:1208
msgid "Work/employment:"
msgstr "Trabalho/emprego:"
-#: ../../include/identity.php:1023
+#: ../../include/identity.php:1210
msgid "School/education:"
msgstr "Escola/educação:"
-#: ../../include/network.php:652
-msgid "view full size"
-msgstr "ver na tela inteira"
-
-#: ../../include/text.php:320
-msgid "prev"
-msgstr "anterior"
+#: ../../include/identity.php:1230
+msgid "Like this thing"
+msgstr "Gostar desta coisa"
-#: ../../include/text.php:322
-msgid "first"
-msgstr "primeiro"
-
-#: ../../include/text.php:351
-msgid "last"
-msgstr "último"
-
-#: ../../include/text.php:354
-msgid "next"
-msgstr "próximo"
-
-#: ../../include/text.php:366
-msgid "older"
-msgstr "mais antigo"
-
-#: ../../include/text.php:368
-msgid "newer"
-msgstr "mais recente"
-
-#: ../../include/text.php:729
-msgid "No connections"
-msgstr "Nenhuma conexão"
-
-#: ../../include/text.php:742
-#, php-format
-msgid "%d Connection"
-msgid_plural "%d Connections"
-msgstr[0] "%d conexão"
-msgstr[1] "%d conexões"
-
-#: ../../include/text.php:754
-msgid "View Connections"
-msgstr "Ver conexões"
-
-#: ../../include/text.php:815 ../../include/text.php:829
-#: ../../include/widgets.php:186 ../../mod/rbmark.php:28
-#: ../../mod/rbmark.php:98 ../../mod/filer.php:50
-msgid "Save"
-msgstr "Salvar"
-
-#: ../../include/text.php:895
-msgid "poke"
-msgstr "cutucar"
-
-#: ../../include/text.php:896
-msgid "ping"
-msgstr "pingar"
-
-#: ../../include/text.php:896
-msgid "pinged"
-msgstr "pingou"
-
-#: ../../include/text.php:897
-msgid "prod"
-msgstr "espetar"
-
-#: ../../include/text.php:897
-msgid "prodded"
-msgstr "espetou"
-
-#: ../../include/text.php:898
-msgid "slap"
-msgstr "estapear"
-
-#: ../../include/text.php:898
-msgid "slapped"
-msgstr "estapeou"
-
-#: ../../include/text.php:899
-msgid "finger"
-msgstr "dar um toque"
-
-#: ../../include/text.php:899
-msgid "fingered"
-msgstr "deu um toque"
-
-#: ../../include/text.php:900
-msgid "rebuff"
-msgstr "rebater"
-
-#: ../../include/text.php:900
-msgid "rebuffed"
-msgstr "rebateu"
-
-#: ../../include/text.php:909
-msgid "happy"
-msgstr "feliz"
-
-#: ../../include/text.php:910
-msgid "sad"
-msgstr "triste"
-
-#: ../../include/text.php:911
-msgid "mellow"
-msgstr "suave"
-
-#: ../../include/text.php:912
-msgid "tired"
-msgstr "cansad@"
-
-#: ../../include/text.php:913
-msgid "perky"
-msgstr "animad@"
-
-#: ../../include/text.php:914
-msgid "angry"
-msgstr "nervos@"
-
-#: ../../include/text.php:915
-msgid "stupified"
-msgstr "embasbacad@"
-
-#: ../../include/text.php:916
-msgid "puzzled"
-msgstr "confus@"
-
-#: ../../include/text.php:917
-msgid "interested"
-msgstr "interessad@"
-
-#: ../../include/text.php:918
-msgid "bitter"
-msgstr "amarg@"
-
-#: ../../include/text.php:919
-msgid "cheerful"
-msgstr "animad@"
-
-#: ../../include/text.php:920
-msgid "alive"
-msgstr "viv@"
-
-#: ../../include/text.php:921
-msgid "annoyed"
-msgstr "aborrecid@"
-
-#: ../../include/text.php:922
-msgid "anxious"
-msgstr "ansios@"
-
-#: ../../include/text.php:923
-msgid "cranky"
-msgstr "irritad@"
-
-#: ../../include/text.php:924
-msgid "disturbed"
-msgstr "perturbad@"
-
-#: ../../include/text.php:925
-msgid "frustrated"
-msgstr "frustrad@"
-
-#: ../../include/text.php:926
-msgid "depressed"
-msgstr "deprimido"
-
-#: ../../include/text.php:927
-msgid "motivated"
-msgstr "motivad@"
-
-#: ../../include/text.php:928
-msgid "relaxed"
-msgstr "relaxad@"
-
-#: ../../include/text.php:929
-msgid "surprised"
-msgstr "surpres@"
-
-#: ../../include/text.php:1090
-msgid "Monday"
-msgstr "Segunda"
+#: ../../include/nav.php:94 ../../include/nav.php:126 ../../boot.php:1494
+msgid "Logout"
+msgstr "Sair"
-#: ../../include/text.php:1090
-msgid "Tuesday"
-msgstr "Terça"
+#: ../../include/nav.php:94 ../../include/nav.php:126
+msgid "End this session"
+msgstr "Encerrar essa sessão"
-#: ../../include/text.php:1090
-msgid "Wednesday"
-msgstr "Quarta"
+#: ../../include/nav.php:97 ../../include/nav.php:160
+msgid "Home"
+msgstr "Ver canal"
-#: ../../include/text.php:1090
-msgid "Thursday"
-msgstr "Quinta"
+#: ../../include/nav.php:97
+msgid "Your posts and conversations"
+msgstr "Suas publicações e conversas"
-#: ../../include/text.php:1090
-msgid "Friday"
-msgstr "Sexta"
+#: ../../include/nav.php:98
+msgid "Your profile page"
+msgstr "A página do seu perfil"
-#: ../../include/text.php:1090
-msgid "Saturday"
-msgstr "SaÌbado"
+#: ../../include/nav.php:100
+msgid "Edit Profiles"
+msgstr "Editar perfis"
-#: ../../include/text.php:1090
-msgid "Sunday"
-msgstr "Domingo"
+#: ../../include/nav.php:100
+msgid "Manage/Edit profiles"
+msgstr "Administrar/Editar perfis"
-#: ../../include/text.php:1094
-msgid "January"
-msgstr "Janeiro"
+#: ../../include/nav.php:102
+msgid "Edit your profile"
+msgstr "Editar seu perfil"
-#: ../../include/text.php:1094
-msgid "February"
-msgstr "Fevereiro"
+#: ../../include/nav.php:104
+msgid "Your photos"
+msgstr "Suas fotos"
-#: ../../include/text.php:1094
-msgid "March"
-msgstr "Março"
+#: ../../include/nav.php:105
+msgid "Your files"
+msgstr "Seus arquivos"
-#: ../../include/text.php:1094
-msgid "April"
-msgstr "Abril"
+#: ../../include/nav.php:110
+msgid "Your chatrooms"
+msgstr "Suas salas de bate-papo"
-#: ../../include/text.php:1094
-msgid "May"
-msgstr "Maio"
+#: ../../include/nav.php:116
+msgid "Your bookmarks"
+msgstr "Seus links guardados"
-#: ../../include/text.php:1094
-msgid "June"
-msgstr "Junho"
+#: ../../include/nav.php:120
+msgid "Your webpages"
+msgstr "Suas páginas web"
-#: ../../include/text.php:1094
-msgid "July"
-msgstr "Julho"
+#: ../../include/nav.php:124
+msgid "Sign in"
+msgstr "Entrar"
-#: ../../include/text.php:1094
-msgid "August"
-msgstr "Agosto"
+#: ../../include/nav.php:141
+#, php-format
+msgid "%s - click to logout"
+msgstr "%s - clique para sair"
-#: ../../include/text.php:1094
-msgid "September"
-msgstr "Setembro"
+#: ../../include/nav.php:146
+msgid "Click to authenticate to your home hub"
+msgstr "Clique para se autenticar com seu hub de origem"
-#: ../../include/text.php:1094
-msgid "October"
-msgstr "Outubro"
+#: ../../include/nav.php:160
+msgid "Home Page"
+msgstr "Página inicial"
-#: ../../include/text.php:1094
-msgid "November"
-msgstr "Novembro"
+#: ../../include/nav.php:164 ../../mod/register.php:220 ../../boot.php:1471
+msgid "Register"
+msgstr "Registrar"
-#: ../../include/text.php:1094
-msgid "December"
-msgstr "Dezembro"
+#: ../../include/nav.php:164
+msgid "Create an account"
+msgstr "Criar uma conta"
-#: ../../include/text.php:1172
-msgid "unknown.???"
-msgstr "desconhecido.???"
+#: ../../include/nav.php:169
+msgid "Help and documentation"
+msgstr "Ajuda e documentação"
-#: ../../include/text.php:1173
-msgid "bytes"
-msgstr "bytes"
+#: ../../include/nav.php:172 ../../include/widgets.php:86
+#: ../../mod/apps.php:33
+msgid "Apps"
+msgstr "Aplicações"
-#: ../../include/text.php:1208
-msgid "remove category"
-msgstr "remover categoria"
+#: ../../include/nav.php:172
+msgid "Applications, utilities, links, games"
+msgstr "Aplicações, utilitários, links, jogos"
-#: ../../include/text.php:1257
-msgid "remove from file"
-msgstr "remover do arquivo"
+#: ../../include/nav.php:174
+msgid "Search site content"
+msgstr "Pesquisar o conteúdo do site"
-#: ../../include/text.php:1318 ../../include/text.php:1330
-msgid "Click to open/close"
-msgstr "Clique para abrir/fechar"
+#: ../../include/nav.php:177
+msgid "Channel Locator"
+msgstr "Localizador de canais"
-#: ../../include/text.php:1485 ../../mod/events.php:355
-msgid "Link to Source"
-msgstr "Link para a origem"
+#: ../../include/nav.php:188
+msgid "Your matrix"
+msgstr "Sua matriz"
-#: ../../include/text.php:1504
-msgid "Select a page layout: "
-msgstr "Selecione um layout de página:"
+#: ../../include/nav.php:189
+msgid "Mark all matrix notifications seen"
+msgstr "Marcar todas as notificações da matriz como vistas"
-#: ../../include/text.php:1507 ../../include/text.php:1572
-msgid "default"
-msgstr "default"
+#: ../../include/nav.php:191
+msgid "Channel home"
+msgstr "Página inicial do canal"
-#: ../../include/text.php:1543
-msgid "Page content type: "
-msgstr "Tipo de conteúdo da página: "
+#: ../../include/nav.php:192
+msgid "Mark all channel notifications seen"
+msgstr "Marcar todas as notificações de canais como vistas"
-#: ../../include/text.php:1584
-msgid "Select an alternate language"
-msgstr "Selecione um idioma alternativo"
+#: ../../include/nav.php:195 ../../mod/connections.php:406
+msgid "Connections"
+msgstr "Conexões"
-#: ../../include/text.php:1718
-msgid "activity"
-msgstr "atividade"
+#: ../../include/nav.php:198
+msgid "Notices"
+msgstr "Notificações"
-#: ../../include/text.php:1977
-msgid "Design"
-msgstr "Design"
+#: ../../include/nav.php:198
+msgid "Notifications"
+msgstr "Notificações"
-#: ../../include/text.php:1979
-msgid "Blocks"
-msgstr "Blocos"
+#: ../../include/nav.php:199
+msgid "See all notifications"
+msgstr "Ver todas as notificações"
-#: ../../include/text.php:1980
-msgid "Menus"
-msgstr "Menus"
+#: ../../include/nav.php:200 ../../mod/notifications.php:99
+msgid "Mark all system notifications seen"
+msgstr "Marcar todas as notificações de sistema como vistas"
-#: ../../include/text.php:1981
-msgid "Layouts"
-msgstr "Layouts"
+#: ../../include/nav.php:202
+msgid "Private mail"
+msgstr "Mensagens privadas"
-#: ../../include/text.php:1982
-msgid "Pages"
-msgstr "Páginas"
+#: ../../include/nav.php:203
+msgid "See all private messages"
+msgstr "Ver todas as mensagens privadas"
-#: ../../include/apps.php:115
-msgid "Site Admin"
-msgstr "Administração do site"
+#: ../../include/nav.php:204
+msgid "Mark all private messages seen"
+msgstr "Marcar todas as mensagens privadas como vistas"
-#: ../../include/apps.php:117
-msgid "Address Book"
-msgstr "Livro de Endereços"
+#: ../../include/nav.php:205
+msgid "Inbox"
+msgstr "Recebidas"
-#: ../../include/apps.php:131 ../../mod/mood.php:131
-msgid "Mood"
-msgstr "Humor"
+#: ../../include/nav.php:206
+msgid "Outbox"
+msgstr "Enviadas"
-#: ../../include/apps.php:135
-msgid "Probe"
-msgstr "Sonda"
+#: ../../include/nav.php:207 ../../include/widgets.php:543
+msgid "New Message"
+msgstr "Nova mensagem"
-#: ../../include/apps.php:136
-msgid "Suggest"
-msgstr "Sugerir"
+#: ../../include/nav.php:210
+msgid "Event Calendar"
+msgstr "Agenda de eventos"
-#: ../../include/apps.php:208 ../../mod/settings.php:79
-#: ../../mod/settings.php:541
-msgid "Update"
-msgstr "Atualizar"
+#: ../../include/nav.php:211
+msgid "See all events"
+msgstr "Ver todos os eventos"
-#: ../../include/apps.php:208
-msgid "Install"
-msgstr "Instalar"
+#: ../../include/nav.php:212
+msgid "Mark all events seen"
+msgstr "Marcar todos os eventos como vistos"
-#: ../../include/apps.php:212
-msgid "Purchase"
-msgstr "Compras"
+#: ../../include/nav.php:214
+msgid "Manage Your Channels"
+msgstr "Gerencie os seus canais"
-#: ../../include/apps.php:291 ../../include/apps.php:342
-#: ../../mod/connedit.php:434
-msgid "Unknown"
-msgstr "Desconhecidos"
+#: ../../include/nav.php:216
+msgid "Account/Channel Settings"
+msgstr "Configurações da conta/canal"
-#: ../../include/zot.php:603
-msgid "Invalid data packet"
-msgstr "Pacote de dados inválido"
+#: ../../include/nav.php:224 ../../mod/admin.php:123
+msgid "Admin"
+msgstr "Admin"
-#: ../../include/zot.php:613
-msgid "Unable to verify channel signature"
-msgstr "Não foi possível verificar a assinatura do canal"
+#: ../../include/nav.php:224
+msgid "Site Setup and Configuration"
+msgstr "Configuração do site"
-#: ../../include/zot.php:810
-#, php-format
-msgid "Unable to verify site signature for %s"
-msgstr "Não foi possível verificar a assinatura do site para %s"
+#: ../../include/nav.php:260
+msgid "Please wait..."
+msgstr "Por favor, aguarde..."
#: ../../include/message.php:18
msgid "No recipient provided."
@@ -2700,293 +2802,278 @@ msgstr "Falta o destinatário."
msgid "[no subject]"
msgstr "[sem assunto]"
-#: ../../include/message.php:42
+#: ../../include/message.php:45
msgid "Unable to determine sender."
msgstr "Não foi possível determinar o remetente."
-#: ../../include/message.php:143
+#: ../../include/message.php:200
msgid "Stored post could not be verified."
msgstr "Não foi possível verificar a publicação armazenada."
-#: ../../include/plugin.php:486 ../../include/plugin.php:488
-msgid "Click here to upgrade."
-msgstr "Clique aqui para atualizar."
-
-#: ../../include/plugin.php:494
-msgid "This action exceeds the limits set by your subscription plan."
-msgstr "Essa ação excede o limite definido para o seu plano de assinatura."
-
-#: ../../include/plugin.php:499
-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/widgets.php:80
+#: ../../include/widgets.php:87
msgid "System"
msgstr "Sistema"
-#: ../../include/widgets.php:83
+#: ../../include/widgets.php:90
msgid "Create Personal App"
msgstr "Crie aplicações pessoais"
-#: ../../include/widgets.php:84
+#: ../../include/widgets.php:91
msgid "Edit Personal App"
msgstr "Edite aplicações pessoais"
-#: ../../include/widgets.php:130 ../../mod/suggest.php:53
+#: ../../include/widgets.php:137 ../../mod/suggest.php:53
msgid "Ignore/Hide"
msgstr "Ignorar/Ocultar"
-#: ../../include/widgets.php:136 ../../mod/connections.php:266
+#: ../../include/widgets.php:143 ../../mod/connections.php:267
msgid "Suggestions"
msgstr "Sugestões"
-#: ../../include/widgets.php:137
+#: ../../include/widgets.php:144
msgid "See more..."
msgstr "Veja mais..."
-#: ../../include/widgets.php:159
+#: ../../include/widgets.php:166
#, php-format
msgid "You have %1$.0f of %2$.0f allowed connections."
msgstr "Você tem %1$.0f de %2$.0f conexões permitidas."
-#: ../../include/widgets.php:165
+#: ../../include/widgets.php:172
msgid "Add New Connection"
msgstr "Adicionar nova conexão"
-#: ../../include/widgets.php:166
+#: ../../include/widgets.php:173
msgid "Enter the channel address"
msgstr "Digite o endereço do canal"
-#: ../../include/widgets.php:167
+#: ../../include/widgets.php:174
msgid "Example: bob@example.com, http://example.com/barbara"
msgstr "Por exemplo: joao@exemplo.com, http://exemplo.com/maria"
-#: ../../include/widgets.php:184
+#: ../../include/widgets.php:191
msgid "Notes"
msgstr "Notas"
-#: ../../include/widgets.php:256
+#: ../../include/widgets.php:263
msgid "Remove term"
msgstr "Remover termo"
-#: ../../include/widgets.php:335
+#: ../../include/widgets.php:342
msgid "Archives"
msgstr "Arquivos"
-#: ../../include/widgets.php:397
+#: ../../include/widgets.php:404
msgid "Refresh"
msgstr "Atualizar"
-#: ../../include/widgets.php:398 ../../mod/connedit.php:428
+#: ../../include/widgets.php:405 ../../mod/connedit.php:492
msgid "Me"
msgstr "Eu"
-#: ../../include/widgets.php:399 ../../mod/connedit.php:430
+#: ../../include/widgets.php:406 ../../mod/connedit.php:494
msgid "Best Friends"
msgstr "Melhores amigos"
-#: ../../include/widgets.php:401
+#: ../../include/widgets.php:408
msgid "Co-workers"
msgstr "Colegas de trabalho"
-#: ../../include/widgets.php:402 ../../mod/connedit.php:432
+#: ../../include/widgets.php:409 ../../mod/connedit.php:496
msgid "Former Friends"
msgstr "Amigos afastados"
-#: ../../include/widgets.php:403 ../../mod/connedit.php:433
+#: ../../include/widgets.php:410 ../../mod/connedit.php:497
msgid "Acquaintances"
msgstr "Conhecidos"
-#: ../../include/widgets.php:404
+#: ../../include/widgets.php:411
msgid "Everybody"
msgstr "Todos"
-#: ../../include/widgets.php:436
+#: ../../include/widgets.php:443
msgid "Account settings"
msgstr "Configurações da conta"
-#: ../../include/widgets.php:442
+#: ../../include/widgets.php:449
msgid "Channel settings"
msgstr "Configurações do canal"
-#: ../../include/widgets.php:448
+#: ../../include/widgets.php:455
msgid "Additional features"
msgstr "Recursos adicionais"
-#: ../../include/widgets.php:454
+#: ../../include/widgets.php:461
msgid "Feature settings"
msgstr "Configurações dos recursos"
-#: ../../include/widgets.php:460
+#: ../../include/widgets.php:467
msgid "Display settings"
msgstr "Configurações de exibição"
-#: ../../include/widgets.php:466
+#: ../../include/widgets.php:473
msgid "Connected apps"
msgstr "Aplicações conectadas"
-#: ../../include/widgets.php:472
+#: ../../include/widgets.php:479
msgid "Export channel"
msgstr "Exportar o canal"
-#: ../../include/widgets.php:484
+#: ../../include/widgets.php:485
+msgid "Export content"
+msgstr "Exportar conteúdo"
+
+#: ../../include/widgets.php:491
msgid "Automatic Permissions (Advanced)"
msgstr "Permissões automáticas (avançado)"
-#: ../../include/widgets.php:494
+#: ../../include/widgets.php:501
msgid "Premium Channel Settings"
msgstr "Configurações de canal premium"
-#: ../../include/widgets.php:531
+#: ../../include/widgets.php:538
msgid "Check Mail"
msgstr "Checar mensagens"
-#: ../../include/widgets.php:612
+#: ../../include/widgets.php:619
msgid "Chat Rooms"
msgstr "Salas de bate-papo"
-#: ../../include/widgets.php:630
+#: ../../include/widgets.php:637
msgid "Bookmarked Chatrooms"
msgstr "Salas de bate-papo guardadas"
-#: ../../include/widgets.php:648
+#: ../../include/widgets.php:655
msgid "Suggested Chatrooms"
msgstr "Salas de bate-papo sugeridas"
-#: ../../include/ItemObject.php:118
+#: ../../include/ItemObject.php:130
msgid "Save to Folder"
msgstr "Salvar para pasta"
-#: ../../include/ItemObject.php:130 ../../include/ItemObject.php:142
+#: ../../include/ItemObject.php:142 ../../include/ItemObject.php:154
msgid "View all"
msgstr "Ver tudo"
-#: ../../include/ItemObject.php:134
-msgctxt "noun"
-msgid "Like"
-msgid_plural "Likes"
-msgstr[0] "gostou"
-msgstr[1] "gostaram"
-
-#: ../../include/ItemObject.php:139
+#: ../../include/ItemObject.php:151
msgctxt "noun"
msgid "Dislike"
msgid_plural "Dislikes"
msgstr[0] "desgostou"
msgstr[1] "desgostaram"
-#: ../../include/ItemObject.php:167
+#: ../../include/ItemObject.php:179
msgid "Add Star"
msgstr "Adicione estrela"
-#: ../../include/ItemObject.php:168
+#: ../../include/ItemObject.php:180
msgid "Remove Star"
msgstr "Remove estrela"
-#: ../../include/ItemObject.php:169
+#: ../../include/ItemObject.php:181
msgid "Toggle Star Status"
msgstr "Alterna status da estrela"
-#: ../../include/ItemObject.php:173
+#: ../../include/ItemObject.php:185
msgid "starred"
msgstr "destacado"
-#: ../../include/ItemObject.php:190
+#: ../../include/ItemObject.php:202
msgid "Add Tag"
msgstr "Adiciona etiqueta"
-#: ../../include/ItemObject.php:208 ../../mod/photos.php:971
+#: ../../include/ItemObject.php:220 ../../mod/photos.php:1008
msgid "I like this (toggle)"
msgstr "Eu gostei disso (alterna)"
-#: ../../include/ItemObject.php:209 ../../mod/photos.php:972
+#: ../../include/ItemObject.php:221 ../../mod/photos.php:1009
msgid "I don't like this (toggle)"
msgstr "Eu não gostei disso (alterna)"
-#: ../../include/ItemObject.php:211
+#: ../../include/ItemObject.php:225
msgid "Share This"
msgstr "Compartilhe isso"
-#: ../../include/ItemObject.php:211
+#: ../../include/ItemObject.php:225
msgid "share"
msgstr "compartilhar"
-#: ../../include/ItemObject.php:235 ../../include/ItemObject.php:236
+#: ../../include/ItemObject.php:248 ../../include/ItemObject.php:249
#, php-format
msgid "View %s's profile - %s"
msgstr "Ver o perfil de %s - %s"
-#: ../../include/ItemObject.php:237
+#: ../../include/ItemObject.php:250
msgid "to"
msgstr "para"
-#: ../../include/ItemObject.php:238
+#: ../../include/ItemObject.php:251
msgid "via"
msgstr "via"
-#: ../../include/ItemObject.php:239
+#: ../../include/ItemObject.php:252
msgid "Wall-to-Wall"
msgstr "Mural-para-mural"
-#: ../../include/ItemObject.php:240
+#: ../../include/ItemObject.php:253
msgid "via Wall-To-Wall:"
msgstr "via Mural-para-mural"
-#: ../../include/ItemObject.php:274
+#: ../../include/ItemObject.php:288
msgid "Save Bookmarks"
msgstr "Salve Favoritos"
-#: ../../include/ItemObject.php:275
+#: ../../include/ItemObject.php:289
msgid "Add to Calendar"
msgstr "Adicione ao calendário"
-#: ../../include/ItemObject.php:283
+#: ../../include/ItemObject.php:297
msgctxt "noun"
msgid "Likes"
msgstr "Gostaram"
-#: ../../include/ItemObject.php:284
+#: ../../include/ItemObject.php:298
msgctxt "noun"
msgid "Dislikes"
msgstr "Desgostaram"
-#: ../../include/ItemObject.php:315
+#: ../../include/ItemObject.php:329
#, php-format
msgid "%d comment"
msgid_plural "%d comments"
msgstr[0] "%d comentário"
msgstr[1] "%d comentários"
-#: ../../include/ItemObject.php:316 ../../include/js_strings.php:7
+#: ../../include/ItemObject.php:330 ../../include/js_strings.php:7
msgid "[+] show all"
msgstr "[+] mostrar todos"
-#: ../../include/ItemObject.php:580 ../../mod/photos.php:990
-#: ../../mod/photos.php:1077
+#: ../../include/ItemObject.php:594 ../../mod/photos.php:1027
+#: ../../mod/photos.php:1114
msgid "This is you"
msgstr "Este(a) é você"
-#: ../../include/ItemObject.php:582 ../../include/js_strings.php:6
-#: ../../mod/photos.php:992 ../../mod/photos.php:1079
+#: ../../include/ItemObject.php:596 ../../include/js_strings.php:6
+#: ../../mod/photos.php:1029 ../../mod/photos.php:1116
msgid "Comment"
msgstr "Comentar"
-#: ../../include/ItemObject.php:583 ../../mod/mood.php:135
-#: ../../mod/admin.php:441 ../../mod/admin.php:750 ../../mod/admin.php:884
-#: ../../mod/admin.php:1017 ../../mod/admin.php:1216 ../../mod/admin.php:1303
-#: ../../mod/poke.php:166 ../../mod/profiles.php:506 ../../mod/chat.php:177
-#: ../../mod/chat.php:211 ../../mod/connect.php:92 ../../mod/connedit.php:476
-#: ../../mod/settings.php:515 ../../mod/settings.php:627
-#: ../../mod/settings.php:655 ../../mod/settings.php:679
-#: ../../mod/settings.php:749 ../../mod/settings.php:926
+#: ../../include/ItemObject.php:597 ../../mod/mood.php:135
+#: ../../mod/settings.php:519 ../../mod/settings.php:631
+#: ../../mod/settings.php:660 ../../mod/settings.php:684
+#: ../../mod/settings.php:760 ../../mod/settings.php:945
+#: ../../mod/poke.php:166 ../../mod/profiles.php:643 ../../mod/chat.php:177
+#: ../../mod/chat.php:211 ../../mod/connect.php:92 ../../mod/connedit.php:540
#: ../../mod/setup.php:307 ../../mod/setup.php:350 ../../mod/pdledit.php:58
+#: ../../mod/photos.php:563 ../../mod/photos.php:675 ../../mod/photos.php:990
+#: ../../mod/photos.php:1030 ../../mod/photos.php:1117
#: ../../mod/sources.php:104 ../../mod/sources.php:138
-#: ../../mod/events.php:492 ../../mod/filestorage.php:135
-#: ../../mod/fsuggest.php:108 ../../mod/group.php:81 ../../mod/thing.php:283
-#: ../../mod/thing.php:326 ../../mod/import.php:393 ../../mod/invite.php:156
-#: ../../mod/mail.php:223 ../../mod/mail.php:335 ../../mod/photos.php:565
-#: ../../mod/photos.php:670 ../../mod/photos.php:953 ../../mod/photos.php:993
-#: ../../mod/photos.php:1080 ../../mod/appman.php:99
+#: ../../mod/events.php:586 ../../mod/filestorage.php:137
+#: ../../mod/fsuggest.php:108 ../../mod/group.php:81 ../../mod/admin.php:414
+#: ../../mod/admin.php:725 ../../mod/admin.php:861 ../../mod/admin.php:994
+#: ../../mod/admin.php:1193 ../../mod/admin.php:1280 ../../mod/thing.php:284
+#: ../../mod/thing.php:327 ../../mod/import.php:475 ../../mod/invite.php:142
+#: ../../mod/mail.php:345 ../../mod/appman.php:99 ../../mod/poll.php:68
#: ../../view/theme/apw/php/config.php:256
#: ../../view/theme/blogga/php/config.php:67
#: ../../view/theme/blogga/view/theme/blog/config.php:67
@@ -2994,35 +3081,35 @@ msgstr "Comentar"
msgid "Submit"
msgstr "Enviar"
-#: ../../include/ItemObject.php:584
+#: ../../include/ItemObject.php:598
msgid "Bold"
msgstr "Negrito"
-#: ../../include/ItemObject.php:585
+#: ../../include/ItemObject.php:599
msgid "Italic"
msgstr "Itálico"
-#: ../../include/ItemObject.php:586
+#: ../../include/ItemObject.php:600
msgid "Underline"
msgstr "Sublinhado"
-#: ../../include/ItemObject.php:587
+#: ../../include/ItemObject.php:601
msgid "Quote"
msgstr "Citação"
-#: ../../include/ItemObject.php:588
+#: ../../include/ItemObject.php:602
msgid "Code"
msgstr "Código"
-#: ../../include/ItemObject.php:589
+#: ../../include/ItemObject.php:603
msgid "Image"
msgstr "Imagem"
-#: ../../include/ItemObject.php:590
+#: ../../include/ItemObject.php:604
msgid "Link"
msgstr "Link"
-#: ../../include/ItemObject.php:591
+#: ../../include/ItemObject.php:605
msgid "Video"
msgstr "Vídeo"
@@ -3070,76 +3157,80 @@ msgstr "Atenção: permissões foram modificadas mas ainda não foram enviadas."
msgid "close all"
msgstr "fechar tudo"
-#: ../../include/js_strings.php:19
+#: ../../include/js_strings.php:18
+msgid "Nothing new here"
+msgstr "Nada de novo aqui"
+
+#: ../../include/js_strings.php:20
msgid "timeago.prefixAgo"
msgstr "timeago.prefixAgo"
-#: ../../include/js_strings.php:20
+#: ../../include/js_strings.php:21
msgid "timeago.prefixFromNow"
msgstr "timeago.prefixFromNow"
-#: ../../include/js_strings.php:21
+#: ../../include/js_strings.php:22
msgid "ago"
msgstr "atrás"
-#: ../../include/js_strings.php:22
+#: ../../include/js_strings.php:23
msgid "from now"
msgstr "de agora"
-#: ../../include/js_strings.php:23
+#: ../../include/js_strings.php:24
msgid "less than a minute"
msgstr "menos de um minuto"
-#: ../../include/js_strings.php:24
+#: ../../include/js_strings.php:25
msgid "about a minute"
msgstr "aproximadamente um minuto"
-#: ../../include/js_strings.php:25
+#: ../../include/js_strings.php:26
#, php-format
msgid "%d minutes"
msgstr "%d minutos"
-#: ../../include/js_strings.php:26
+#: ../../include/js_strings.php:27
msgid "about an hour"
msgstr "aproximadamente uma hora"
-#: ../../include/js_strings.php:27
+#: ../../include/js_strings.php:28
#, php-format
msgid "about %d hours"
msgstr "aproximadamente %d horas"
-#: ../../include/js_strings.php:28
+#: ../../include/js_strings.php:29
msgid "a day"
msgstr "um dia"
-#: ../../include/js_strings.php:29
+#: ../../include/js_strings.php:30
#, php-format
msgid "%d days"
msgstr "%d dias"
-#: ../../include/js_strings.php:30
+#: ../../include/js_strings.php:31
msgid "about a month"
msgstr "aproximadamente um mês"
-#: ../../include/js_strings.php:31
+#: ../../include/js_strings.php:32
#, php-format
msgid "%d months"
msgstr "%d meses"
-#: ../../include/js_strings.php:32
+#: ../../include/js_strings.php:33
msgid "about a year"
msgstr "aproximadamente um ano"
-#: ../../include/js_strings.php:33
+#: ../../include/js_strings.php:34
#, php-format
msgid "%d years"
msgstr "%d anos"
-#: ../../include/js_strings.php:34
+#: ../../include/js_strings.php:35
msgid " "
msgstr " "
-#: ../../include/js_strings.php:35
+#: ../../include/js_strings.php:36
msgid "timeago.numbers"
msgstr "timeago.numbers"
@@ -3151,11 +3242,18 @@ msgstr "Nova janela"
msgid "Open the selected location in a different window or browser tab"
msgstr "Abre a localização selecionada em outra aba ou janela"
+#: ../../include/Contact.php:211 ../../mod/admin.php:649
+#, php-format
+msgid "User '%s' deleted"
+msgstr "O usuário/a '%s' foi deletado/a"
+
#: ../../include/profile_selectors.php:6
+#: ../../include/profile_selectors.php:23
msgid "Male"
msgstr "Masculino"
#: ../../include/profile_selectors.php:6
+#: ../../include/profile_selectors.php:23
msgid "Female"
msgstr "Feminino"
@@ -3200,6 +3298,9 @@ msgid "Non-specific"
msgstr "Não específico"
#: ../../include/profile_selectors.php:6
+#: ../../include/profile_selectors.php:23
+#: ../../include/profile_selectors.php:61
+#: ../../include/profile_selectors.php:97 ../../include/permissions.php:746
msgid "Other"
msgstr "Outro"
@@ -3207,195 +3308,322 @@ msgstr "Outro"
msgid "Undecided"
msgstr "Indeciso"
-#: ../../include/profile_selectors.php:23
+#: ../../include/profile_selectors.php:42
+#: ../../include/profile_selectors.php:61
msgid "Males"
msgstr "Homens"
-#: ../../include/profile_selectors.php:23
+#: ../../include/profile_selectors.php:42
+#: ../../include/profile_selectors.php:61
msgid "Females"
msgstr "Mulheres"
-#: ../../include/profile_selectors.php:23
+#: ../../include/profile_selectors.php:42
msgid "Gay"
msgstr "Gays"
-#: ../../include/profile_selectors.php:23
+#: ../../include/profile_selectors.php:42
msgid "Lesbian"
msgstr "Lésbicas"
-#: ../../include/profile_selectors.php:23
+#: ../../include/profile_selectors.php:42
msgid "No Preference"
msgstr "Sem preferência"
-#: ../../include/profile_selectors.php:23
+#: ../../include/profile_selectors.php:42
msgid "Bisexual"
msgstr "Bissexuais"
-#: ../../include/profile_selectors.php:23
+#: ../../include/profile_selectors.php:42
msgid "Autosexual"
msgstr "Autossexuais"
-#: ../../include/profile_selectors.php:23
+#: ../../include/profile_selectors.php:42
msgid "Abstinent"
msgstr "Abstinentes"
-#: ../../include/profile_selectors.php:23
+#: ../../include/profile_selectors.php:42
msgid "Virgin"
msgstr "Virgens"
-#: ../../include/profile_selectors.php:23
+#: ../../include/profile_selectors.php:42
msgid "Deviant"
msgstr "Desviantes"
-#: ../../include/profile_selectors.php:23
+#: ../../include/profile_selectors.php:42
msgid "Fetish"
msgstr "Fetiches"
-#: ../../include/profile_selectors.php:23
+#: ../../include/profile_selectors.php:42
msgid "Oodles"
msgstr "Abundância"
-#: ../../include/profile_selectors.php:23
+#: ../../include/profile_selectors.php:42
msgid "Nonsexual"
msgstr "Não sexuais"
-#: ../../include/profile_selectors.php:42
+#: ../../include/profile_selectors.php:80
+#: ../../include/profile_selectors.php:97
msgid "Single"
msgstr "Solteiro(a)"
-#: ../../include/profile_selectors.php:42
+#: ../../include/profile_selectors.php:80
msgid "Lonely"
msgstr "Solitário(a)"
-#: ../../include/profile_selectors.php:42
+#: ../../include/profile_selectors.php:80
msgid "Available"
msgstr "Disponível"
-#: ../../include/profile_selectors.php:42
+#: ../../include/profile_selectors.php:80
msgid "Unavailable"
msgstr "Não disponível"
-#: ../../include/profile_selectors.php:42
+#: ../../include/profile_selectors.php:80
msgid "Has crush"
msgstr "Tem uma paixão"
-#: ../../include/profile_selectors.php:42
+#: ../../include/profile_selectors.php:80
msgid "Infatuated"
msgstr "Apaixonado"
-#: ../../include/profile_selectors.php:42
+#: ../../include/profile_selectors.php:80
+#: ../../include/profile_selectors.php:97
msgid "Dating"
msgstr "Saindo com alguém"
-#: ../../include/profile_selectors.php:42
+#: ../../include/profile_selectors.php:80
msgid "Unfaithful"
msgstr "Infiel"
-#: ../../include/profile_selectors.php:42
+#: ../../include/profile_selectors.php:80
msgid "Sex Addict"
msgstr "Viciado(a) em sexo"
-#: ../../include/profile_selectors.php:42
+#: ../../include/profile_selectors.php:80
msgid "Friends/Benefits"
msgstr "Amigos com benefícios"
-#: ../../include/profile_selectors.php:42
+#: ../../include/profile_selectors.php:80
msgid "Casual"
msgstr "Casual"
-#: ../../include/profile_selectors.php:42
+#: ../../include/profile_selectors.php:80
msgid "Engaged"
msgstr "Envolvido(a)"
-#: ../../include/profile_selectors.php:42
+#: ../../include/profile_selectors.php:80
+#: ../../include/profile_selectors.php:97
msgid "Married"
msgstr "Casado(a)"
-#: ../../include/profile_selectors.php:42
+#: ../../include/profile_selectors.php:80
msgid "Imaginarily married"
msgstr "Casado imaginariamente"
-#: ../../include/profile_selectors.php:42
+#: ../../include/profile_selectors.php:80
msgid "Partners"
msgstr "Parceiros"
-#: ../../include/profile_selectors.php:42
+#: ../../include/profile_selectors.php:80
+#: ../../include/profile_selectors.php:97
msgid "Cohabiting"
msgstr "Coabitando"
-#: ../../include/profile_selectors.php:42
+#: ../../include/profile_selectors.php:80
msgid "Common law"
msgstr "Direito comum"
-#: ../../include/profile_selectors.php:42
+#: ../../include/profile_selectors.php:80
msgid "Happy"
msgstr "Feliz"
-#: ../../include/profile_selectors.php:42
+#: ../../include/profile_selectors.php:80
msgid "Not looking"
msgstr "Não estou procurando"
-#: ../../include/profile_selectors.php:42
+#: ../../include/profile_selectors.php:80
msgid "Swinger"
msgstr "Swinger"
-#: ../../include/profile_selectors.php:42
+#: ../../include/profile_selectors.php:80
msgid "Betrayed"
msgstr "Traído(a)"
-#: ../../include/profile_selectors.php:42
+#: ../../include/profile_selectors.php:80
+#: ../../include/profile_selectors.php:97
msgid "Separated"
msgstr "Separado(a)"
-#: ../../include/profile_selectors.php:42
+#: ../../include/profile_selectors.php:80
msgid "Unstable"
msgstr "Instável"
-#: ../../include/profile_selectors.php:42
+#: ../../include/profile_selectors.php:80
+#: ../../include/profile_selectors.php:97
msgid "Divorced"
msgstr "Divorciado(a)"
-#: ../../include/profile_selectors.php:42
+#: ../../include/profile_selectors.php:80
msgid "Imaginarily divorced"
msgstr "Divorciado imaginariamente"
-#: ../../include/profile_selectors.php:42
+#: ../../include/profile_selectors.php:80
+#: ../../include/profile_selectors.php:97
msgid "Widowed"
msgstr "Viúvo(a)"
-#: ../../include/profile_selectors.php:42
+#: ../../include/profile_selectors.php:80
msgid "Uncertain"
msgstr "Incerto(a)"
-#: ../../include/profile_selectors.php:42
+#: ../../include/profile_selectors.php:80
+#: ../../include/profile_selectors.php:97
msgid "It's complicated"
msgstr "É complicado"
-#: ../../include/profile_selectors.php:42
+#: ../../include/profile_selectors.php:80
msgid "Don't care"
msgstr "Não importa"
-#: ../../include/profile_selectors.php:42
+#: ../../include/profile_selectors.php:80
msgid "Ask me"
msgstr "Pergunte-me"
-#: ../../include/auth.php:79
+#: ../../include/auth.php:103
msgid "Logged out."
msgstr "Você saiu."
-#: ../../include/auth.php:198
+#: ../../include/auth.php:249
msgid "Failed authentication"
msgstr "Não foi possível autenticar"
-#: ../../include/auth.php:213 ../../mod/openid.php:188
+#: ../../include/auth.php:264 ../../mod/openid.php:188
msgid "Login failed."
msgstr "Não foi possível entrar."
-#: ../../include/security.php:301
+#: ../../include/permissions.php:13
+msgid "Can view my normal stream and posts"
+msgstr "Pode ver meus fluxo e publicações normais"
+
+#: ../../include/permissions.php:14
+msgid "Can view my default channel profile"
+msgstr "Pode ver o perfil padrão do meu canal"
+
+#: ../../include/permissions.php:15
+msgid "Can view my photo albums"
+msgstr "Pode ver meus álbuns de fotos"
+
+#: ../../include/permissions.php:16
+msgid "Can view my connections"
+msgstr "Pode ver minhas conexões"
+
+#: ../../include/permissions.php:17
+msgid "Can view my file storage"
+msgstr "Pode ver meu armazenamento de arquivos"
+
+#: ../../include/permissions.php:18
+msgid "Can view my webpages"
+msgstr "Pode ver minhas páginas web"
+
+#: ../../include/permissions.php:21
+msgid "Can send me their channel stream and posts"
+msgstr "Pode me enviar seu fluxo e publicações"
+
+#: ../../include/permissions.php:22
+msgid "Can post on my channel page (\"wall\")"
+msgstr "Pode publicar na página do meu canal (\"mural\")"
+
+#: ../../include/permissions.php:23
+msgid "Can comment on or like my posts"
+msgstr "Pode comentar em ou gostar de minhas publicações"
+
+#: ../../include/permissions.php:24
+msgid "Can send me private mail messages"
+msgstr "Pode me enviar mensagens privadas"
+
+#: ../../include/permissions.php:25
+msgid "Can post photos to my photo albums"
+msgstr "Pode publicar fotos nos meus álbuns de fotos"
+
+#: ../../include/permissions.php:26
+msgid "Can like/dislike stuff"
+msgstr "Pode gostar/desgostar de coisas"
+
+#: ../../include/permissions.php:26
+msgid "Profiles and things other than posts/comments"
+msgstr "Perfis e coisas que não publicações/comentários"
+
+#: ../../include/permissions.php:28
+msgid "Can forward to all my channel contacts via post @mentions"
+msgstr "Pode encaminhar para todos os contatos do meu canal via @menções na publicação"
+
+#: ../../include/permissions.php:28
+msgid "Advanced - useful for creating group forum channels"
+msgstr "Avançado - útil para criar canais de fóruns de grupos"
+
+#: ../../include/permissions.php:29
+msgid "Can chat with me (when available)"
+msgstr "Pode conversar comigo (quando disponívei)"
+
+#: ../../include/permissions.php:30
+msgid "Can write to my file storage"
+msgstr "Pode escrever em meu armazenamento de arquivos"
+
+#: ../../include/permissions.php:31
+msgid "Can edit my webpages"
+msgstr "Pode editar minhas páginas web"
+
+#: ../../include/permissions.php:33
+msgid "Can source my public posts in derived channels"
+msgstr "Pode usar minhas publicações públicas como fonte para canais derivados"
+
+#: ../../include/permissions.php:33
+msgid "Somewhat advanced - very useful in open communities"
+msgstr "Avançado - muito útil em comunidades abertas"
+
+#: ../../include/permissions.php:35
+msgid "Can administer my channel resources"
+msgstr "Pode administrar os recursos do meu canal"
+
+#: ../../include/permissions.php:35
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 "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."
+"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/permissions.php:738
+msgid "Social Networking"
+msgstr "Rede social"
+
+#: ../../include/permissions.php:739 ../../include/permissions.php:741
+#: ../../include/permissions.php:743 ../../include/permissions.php:745
+msgid "Mostly Public"
+msgstr "Padrão público"
+
+#: ../../include/permissions.php:739 ../../include/permissions.php:741
+#: ../../include/permissions.php:743
+msgid "Restricted"
+msgstr "Restrito"
+
+#: ../../include/permissions.php:739 ../../include/permissions.php:741
+msgid "Private"
+msgstr "Privado"
+
+#: ../../include/permissions.php:740
+msgid "Community Forum"
+msgstr "Fórum de comunidade"
+
+#: ../../include/permissions.php:742
+msgid "Feed Republish"
+msgstr "Republicação de feed"
+
+#: ../../include/permissions.php:744
+msgid "Celebrity/Soapbox"
+msgstr "Personalidade/Palanque"
+
+#: ../../include/permissions.php:747
+msgid "Custom/Expert Mode"
+msgstr "Personalizado/Modo expert"
#: ../../mod/mood.php:132
msgid "Set your current mood and tell your friends"
@@ -3422,7 +3650,7 @@ msgid "Unable to add menu element."
msgstr "Não foi possível adicionar o elemento de menu."
#: ../../mod/mitem.php:78 ../../mod/dirprofile.php:175 ../../mod/menu.php:120
-#: ../../mod/xchan.php:27
+#: ../../mod/xchan.php:38
msgid "Not found."
msgstr "Não encontrado."
@@ -3470,7 +3698,7 @@ 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:959
+#: ../../mod/mitem.php:134 ../../mod/mitem.php:177 ../../mod/settings.php:980
msgid "(click to open/close)"
msgstr "(clique para abrir/fechar)"
@@ -3498,10 +3726,6 @@ msgstr "Ordem na lista"
msgid "Higher numbers will sink to bottom of listing"
msgstr "Números mais altos descem para o fim da lista"
-#: ../../mod/mitem.php:142 ../../mod/menu.php:84 ../../mod/new_channel.php:117
-msgid "Create"
-msgstr "Criar"
-
#: ../../mod/mitem.php:154
msgid "Menu item not found."
msgstr "O item de menu não foi encontrado."
@@ -3522,648 +3746,493 @@ msgstr "Editar elemento de menu"
msgid "Modify"
msgstr "Modificar"
-#: ../../mod/ping.php:192
+#: ../../mod/achievements.php:34
+msgid "Some blurb about what to do when you're new here"
+msgstr "Alguma coisa sobre o que fazer quando se é novo aqui"
+
+#: ../../mod/ping.php:237
msgid "sent you a private message"
msgstr "lhe enviou uma mensagem privada"
-#: ../../mod/ping.php:250
+#: ../../mod/ping.php:288
msgid "added your channel"
msgstr "adicionou seu canal"
-#: ../../mod/ping.php:294
+#: ../../mod/ping.php:329
msgid "posted an event"
msgstr "publicou um evento"
-#: ../../mod/acl.php:239
+#: ../../mod/acl.php:244
msgid "network"
msgstr "+ rede"
-#: ../../mod/admin.php:52
-msgid "Theme settings updated."
-msgstr "As configurações de tema foram atualizadas."
-
-#: ../../mod/admin.php:92 ../../mod/admin.php:440
-msgid "Site"
-msgstr "Site"
-
-#: ../../mod/admin.php:93
-msgid "Accounts"
-msgstr "Contas"
-
-#: ../../mod/admin.php:94 ../../mod/admin.php:883
-msgid "Channels"
-msgstr "Canais"
-
-#: ../../mod/admin.php:95 ../../mod/admin.php:974 ../../mod/admin.php:1016
-msgid "Plugins"
-msgstr "Plugins"
-
-#: ../../mod/admin.php:96 ../../mod/admin.php:1179 ../../mod/admin.php:1215
-msgid "Themes"
-msgstr "Temas"
-
-#: ../../mod/admin.php:97 ../../mod/admin.php:540
-msgid "Server"
-msgstr "Servidor"
-
-#: ../../mod/admin.php:98
-msgid "DB updates"
-msgstr "Atualizações do Banco de Dados"
-
-#: ../../mod/admin.php:112 ../../mod/admin.php:119 ../../mod/admin.php:1302
-msgid "Logs"
-msgstr "Logs"
-
-#: ../../mod/admin.php:118
-msgid "Plugin Features"
-msgstr "Recursos dos plugins"
-
-#: ../../mod/admin.php:120
-msgid "User registrations waiting for confirmation"
-msgstr "Registros de usuário aguardando confirmação"
-
-#: ../../mod/admin.php:197
-msgid "Message queues"
-msgstr "Filas de mensagem"
-
-#: ../../mod/admin.php:202 ../../mod/admin.php:439 ../../mod/admin.php:539
-#: ../../mod/admin.php:748 ../../mod/admin.php:882 ../../mod/admin.php:973
-#: ../../mod/admin.php:1015 ../../mod/admin.php:1178 ../../mod/admin.php:1214
-#: ../../mod/admin.php:1301
-msgid "Administration"
-msgstr "Administração"
-
-#: ../../mod/admin.php:203
-msgid "Summary"
-msgstr "Resumo"
-
-#: ../../mod/admin.php:205
-msgid "Registered users"
-msgstr "Usuários registrados"
-
-#: ../../mod/admin.php:207 ../../mod/admin.php:543
-msgid "Pending registrations"
-msgstr "Registros pendentes"
-
-#: ../../mod/admin.php:208
-msgid "Version"
-msgstr "Versão"
-
-#: ../../mod/admin.php:210 ../../mod/admin.php:544
-msgid "Active plugins"
-msgstr "Plugins ativos"
-
-#: ../../mod/admin.php:360
-msgid "Site settings updated."
-msgstr "As configurações de site foram atualizadas."
-
-#: ../../mod/admin.php:389 ../../mod/settings.php:708
-msgid "No special theme for mobile devices"
-msgstr "Sem tema especial para aparelhos móveis"
-
-#: ../../mod/admin.php:391
-msgid "No special theme for accessibility"
-msgstr "Sem tema especial para acessibilidade"
-
-#: ../../mod/admin.php:419 ../../mod/api.php:106 ../../mod/profiles.php:484
-#: ../../mod/settings.php:876 ../../mod/settings.php:881
-#: ../../mod/settings.php:952
-msgid "No"
-msgstr "Não"
+#: ../../mod/settings.php:71
+msgid "Name is required"
+msgstr "É necessário informar o nome"
-#: ../../mod/admin.php:420
-msgid "Yes - with approval"
-msgstr "Sim - pendente aprovação"
+#: ../../mod/settings.php:75
+msgid "Key and Secret are required"
+msgstr "A chave e o segredo são obrigatórios"
-#: ../../mod/admin.php:421 ../../mod/api.php:105 ../../mod/profiles.php:483
-#: ../../mod/settings.php:876 ../../mod/settings.php:881
-#: ../../mod/settings.php:952
-msgid "Yes"
-msgstr "Sim"
+#: ../../mod/settings.php:198
+msgid "Passwords do not match. Password unchanged."
+msgstr "As senhas não correspondem. A senha não foi modificada."
-#: ../../mod/admin.php:426
-msgid "My site is not a public server"
-msgstr "Meu site não é um servidor público"
+#: ../../mod/settings.php:202
+msgid "Empty passwords are not allowed. Password unchanged."
+msgstr "Não é permitido uma senha em branco. A senha não foi modificada."
-#: ../../mod/admin.php:427
-msgid "My site has paid access only"
-msgstr "Meu site oferece somente acesso pago"
+#: ../../mod/settings.php:216
+msgid "Password changed."
+msgstr "A senha foi modificada."
-#: ../../mod/admin.php:428
-msgid "My site has free access only"
-msgstr "Meu site oferece somente acesso gratuito"
+#: ../../mod/settings.php:218
+msgid "Password update failed. Please try again."
+msgstr "Não foi possível atualizar a senha. Por favor, tente novamente."
-#: ../../mod/admin.php:429
-msgid "My site offers free accounts with optional paid upgrades"
-msgstr "Meu site oferece contas gratuitas com recursos adicionais pagos"
+#: ../../mod/settings.php:232
+msgid "Not valid email."
+msgstr "Não é um e-mail válido"
-#: ../../mod/admin.php:442 ../../mod/register.php:189
-msgid "Registration"
-msgstr "Registro"
+#: ../../mod/settings.php:235
+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/admin.php:443
-msgid "File upload"
-msgstr "Carregamento de arquivos"
+#: ../../mod/settings.php:244
+msgid "System failure storing new email. Please try again."
+msgstr "Falha do sistema ao armazenar novo e-mail. Por favor, tente novamente."
-#: ../../mod/admin.php:444
-msgid "Policies"
-msgstr "Políticas"
+#: ../../mod/settings.php:447
+msgid "Settings updated."
+msgstr "As configurações foram atualizadas."
-#: ../../mod/admin.php:449
-msgid "Site name"
-msgstr "Nome do site"
+#: ../../mod/settings.php:518 ../../mod/settings.php:544
+#: ../../mod/settings.php:580
+msgid "Add application"
+msgstr "Adicionar aplicação"
-#: ../../mod/admin.php:450
-msgid "Banner/Logo"
-msgstr "Cartaz/Logo"
+#: ../../mod/settings.php:521
+msgid "Name of application"
+msgstr "Nome da aplicação"
-#: ../../mod/admin.php:451
-msgid "Administrator Information"
-msgstr "Informações do Administrador"
+#: ../../mod/settings.php:522 ../../mod/settings.php:548
+msgid "Consumer Key"
+msgstr "Chave de consumidor"
-#: ../../mod/admin.php:451
-msgid ""
-"Contact information for site administrators. Displayed on siteinfo page. "
-"BBCode can be used here"
-msgstr "Informações de contato com administradores do site. Exibida na página siteinfo. BBCode pode ser usado aqui."
+#: ../../mod/settings.php:522 ../../mod/settings.php:523
+msgid "Automatically generated - change if desired. Max length 20"
+msgstr "Gerado automaticamente - troque se desejável. Comprimento máximo 20"
-#: ../../mod/admin.php:452
-msgid "System language"
-msgstr "Idioma do sistema"
+#: ../../mod/settings.php:523 ../../mod/settings.php:549
+msgid "Consumer Secret"
+msgstr "Segredo de consumidor"
-#: ../../mod/admin.php:453
-msgid "System theme"
-msgstr "Tema do sistema"
+#: ../../mod/settings.php:524 ../../mod/settings.php:550
+msgid "Redirect"
+msgstr "Redirecionamento"
-#: ../../mod/admin.php:453
+#: ../../mod/settings.php:524
msgid ""
-"Default system theme - may be over-ridden by user profiles - <a href='#' "
-"id='cnftheme'>change theme settings</a>"
-msgstr "Tema padrão do sistema - pode ser sobrescrito por perfis de usuário - <a href='#' id='cnftheme'>mudar configurações do tema</a>"
-
-#: ../../mod/admin.php:454
-msgid "Mobile system theme"
-msgstr "Tema do sistema móvel"
-
-#: ../../mod/admin.php:454
-msgid "Theme for mobile devices"
-msgstr "Tema para dispositivos móveis"
-
-#: ../../mod/admin.php:455
-msgid "Accessibility system theme"
-msgstr "Tema do sistema acessível"
-
-#: ../../mod/admin.php:455
-msgid "Accessibility theme"
-msgstr "Tema acessível"
-
-#: ../../mod/admin.php:456
-msgid "Channel to use for this website's static pages"
-msgstr "Canal a utilizar para as páginas estáticas desse website"
-
-#: ../../mod/admin.php:456
-msgid "Site Channel"
-msgstr "Canal do site"
-
-#: ../../mod/admin.php:458
-msgid "Maximum image size"
-msgstr "Tamanho máximo de imagens"
+"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/admin.php:458
-msgid ""
-"Maximum size in bytes of uploaded images. Default is 0, which means no "
-"limits."
-msgstr "Tamanho máximo em bytes de imagens carregadas. O padrão é 0, significando sem limites."
+#: ../../mod/settings.php:525 ../../mod/settings.php:551
+msgid "Icon url"
+msgstr "URL do ícone"
-#: ../../mod/admin.php:459
-msgid "Does this site allow new member registration?"
-msgstr "Este site permite o registro de novos membros?"
+#: ../../mod/settings.php:525
+msgid "Optional"
+msgstr "Opcional"
-#: ../../mod/admin.php:460
-msgid "Which best describes the types of account offered by this hub?"
-msgstr "Qual descreve melhor os tipos de conta oferecidas por este hub?"
+#: ../../mod/settings.php:536
+msgid "You can't edit this application."
+msgstr "Você não pode editar esta aplicação."
-#: ../../mod/admin.php:461
-msgid "Register text"
-msgstr "Texto de registro"
+#: ../../mod/settings.php:579
+msgid "Connected Apps"
+msgstr "Aplicações conectadas"
-#: ../../mod/admin.php:461
-msgid "Will be displayed prominently on the registration page."
-msgstr "Será exibido proeminentemente na página de registro."
+#: ../../mod/settings.php:583
+msgid "Client key starts with"
+msgstr "Chave do cliente começa com"
-#: ../../mod/admin.php:462
-msgid "Accounts abandoned after x days"
-msgstr "Contas abandonadas após x dias"
+#: ../../mod/settings.php:584
+msgid "No name"
+msgstr "Sem nome"
-#: ../../mod/admin.php:462
-msgid ""
-"Will not waste system resources polling external sites for abandonded "
-"accounts. Enter 0 for no time limit."
-msgstr "Não gastará recursos do sistema coletando de sites externos para contas abandonadas. Use 0 para sem limite de tempo."
+#: ../../mod/settings.php:585
+msgid "Remove authorization"
+msgstr "Remover autorização"
-#: ../../mod/admin.php:463
-msgid "Allowed friend domains"
-msgstr "Domínios permitidos para amigos"
+#: ../../mod/settings.php:596
+msgid "No feature settings configured"
+msgstr "Não foi definida nenhuma configuração do recurso"
-#: ../../mod/admin.php:463
-msgid ""
-"Comma separated list of domains which are allowed to establish friendships "
-"with this site. Wildcards are accepted. Empty to allow any domains"
-msgstr "Lista, separada por vírgulas, de domínios permitidos para estabelecer amizades com este site. <em>Wildcards</em> são aceitas. Vazio para permitir qualquer domínio"
+#: ../../mod/settings.php:604
+msgid "Feature Settings"
+msgstr "Configurações do recurso"
-#: ../../mod/admin.php:464
-msgid "Allowed email domains"
-msgstr "Domínios permitidos de e-mail"
+#: ../../mod/settings.php:627
+msgid "Account Settings"
+msgstr "Configurações da conta"
-#: ../../mod/admin.php:464
-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 "Lista, separada por vírgulas, de domínios permitidos em endereços de e-mail para registros nesse site. <em>Wildcards</em> são aceitas. Vazio para permitir qualquer domínio"
+#: ../../mod/settings.php:628
+msgid "Password Settings"
+msgstr "Configurações da senha"
-#: ../../mod/admin.php:465
-msgid "Block public"
-msgstr "Bloquear público"
+#: ../../mod/settings.php:629
+msgid "New Password:"
+msgstr "Nova senha:"
-#: ../../mod/admin.php:465
-msgid ""
-"Check to block public access to all otherwise public personal pages on this "
-"site unless you are currently logged in."
-msgstr "Marque para bloquear o acesso público a todas as páginas pessoais que seriam públicas, a não ser que se esteja autenticado."
+#: ../../mod/settings.php:630
+msgid "Confirm:"
+msgstr "Confirme:"
-#: ../../mod/admin.php:466
-msgid "Force publish"
-msgstr "Forçar publicação"
+#: ../../mod/settings.php:630
+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/admin.php:466
-msgid ""
-"Check to force all profiles on this site to be listed in the site directory."
-msgstr "Marque para forçar todos os perfis neste site a aparecerem listados no diretório do site."
+#: ../../mod/settings.php:632 ../../mod/settings.php:954
+msgid "Email Address:"
+msgstr "Endereço de e-mail:"
-#: ../../mod/admin.php:467
-msgid "Disable discovery tab"
-msgstr "Desabilitar a aba \"Descubra\""
+#: ../../mod/settings.php:633 ../../mod/removeaccount.php:61
+msgid "Remove Account"
+msgstr "Remover conta"
-#: ../../mod/admin.php:467
-msgid ""
-"Remove the tab in the network view with public content pulled from sources "
-"chosen for this site."
-msgstr "Remove da visualização de rede a aba com conteúdos públicos obtidos de fontes escolhidas para esse site."
+#: ../../mod/settings.php:634
+msgid "Remove this account from this server including all its channels"
+msgstr "Remove esta conta deste servidor incluindo todos os seus canais."
-#: ../../mod/admin.php:468
-msgid "No login on Homepage"
-msgstr "Sem formulário de autenticação na página inicial"
+#: ../../mod/settings.php:635 ../../mod/settings.php:1019
+msgid "Warning: This action is permanent and cannot be reversed."
+msgstr "Atenção: Esta ação é permanente e não pode ser revertida."
-#: ../../mod/admin.php:468
-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 "Marque para esconder o formulário de autenticação da página inicial do seu site quando visitantes chegarem sem estar autenticados (e.g. quando você inclui os conteúdos da página inicial através do canal do site)."
+#: ../../mod/settings.php:651
+msgid "Off"
+msgstr "Desligado"
-#: ../../mod/admin.php:470
-msgid "Proxy user"
-msgstr "Usuário do proxy"
+#: ../../mod/settings.php:651
+msgid "On"
+msgstr "Ligado"
-#: ../../mod/admin.php:471
-msgid "Proxy URL"
-msgstr "URL do proxy"
+#: ../../mod/settings.php:658
+msgid "Additional Features"
+msgstr "Recursos adicionais"
-#: ../../mod/admin.php:472
-msgid "Network timeout"
-msgstr "Timeout da rede"
+#: ../../mod/settings.php:683
+msgid "Connector Settings"
+msgstr "Configurações do conector"
-#: ../../mod/admin.php:472
-msgid "Value is in seconds. Set to 0 for unlimited (not recommended)."
-msgstr "Valor em segundos. Use 0 para ilimitado (não recomendado)."
+#: ../../mod/settings.php:713 ../../mod/admin.php:362
+msgid "No special theme for mobile devices"
+msgstr "Sem tema especial para aparelhos móveis"
-#: ../../mod/admin.php:473
-msgid "Delivery interval"
-msgstr "Intervalo de entrega"
+#: ../../mod/settings.php:722
+#, php-format
+msgid "%s - (Experimental)"
+msgstr "%s - (Experimental)"
-#: ../../mod/admin.php:473
-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 "Atrase os processos de entrega em segundo plano por este número de segundos para reduzir a carga do sistema. Recomendado: 4-5 para hosts compartilhados, 2-3 para servidores virtuais privados. 0-1 para grandes servidores dedicados."
+#: ../../mod/settings.php:758
+msgid "Display Settings"
+msgstr "Configurações de exibição"
-#: ../../mod/admin.php:474
-msgid "Poll interval"
-msgstr "Intervalo de coleta"
+#: ../../mod/settings.php:764
+msgid "Display Theme:"
+msgstr "Tema do perfil:"
-#: ../../mod/admin.php:474
-msgid ""
-"Delay background polling processes by this many seconds to reduce system "
-"load. If 0, use delivery interval."
-msgstr "Atrase os processos de coleta em segundo plano por este número de segundos para reduzir a carga do sistema. Se 0, use o intervalo de entrega."
+#: ../../mod/settings.php:765
+msgid "Mobile Theme:"
+msgstr "Tema móvel:"
-#: ../../mod/admin.php:475
-msgid "Maximum Load Average"
-msgstr "Carga média máxima"
+#: ../../mod/settings.php:766
+msgid "Enable user zoom on mobile devices"
+msgstr "Permitir zoom pelo usuário em dispositivos móveis"
-#: ../../mod/admin.php:475
-msgid ""
-"Maximum system load before delivery and poll processes are deferred - "
-"default 50."
-msgstr "Carga máxima do sistema antes de adiar processos de entrega e coleta - padrão 50."
+#: ../../mod/settings.php:767
+msgid "Update browser every xx seconds"
+msgstr "Atualizar navegador a cada xx segundos"
-#: ../../mod/admin.php:531
-msgid "No server found"
-msgstr "Nenhum servidor foi encontrado"
+#: ../../mod/settings.php:767
+msgid "Minimum of 10 seconds, no maximum"
+msgstr "Mínimo de 10 segundos, sem máximo"
-#: ../../mod/admin.php:538 ../../mod/admin.php:762
-msgid "ID"
-msgstr "ID"
+#: ../../mod/settings.php:768
+msgid "Maximum number of conversations to load at any time:"
+msgstr "Número máximo permitido de conversas carregadas:"
-#: ../../mod/admin.php:538
-msgid "for channel"
-msgstr "para o canal"
+#: ../../mod/settings.php:768
+msgid "Maximum of 100 items"
+msgstr "Máximo de 100 itens"
-#: ../../mod/admin.php:538
-msgid "on server"
-msgstr "no servidor"
+#: ../../mod/settings.php:769
+msgid "Don't show emoticons"
+msgstr "Não exibir emoticons"
-#: ../../mod/admin.php:538
-msgid "Status"
-msgstr "Status"
+#: ../../mod/settings.php:770
+msgid "Link post titles to source"
+msgstr "Ligar o título dos posts à fonte"
-#: ../../mod/admin.php:559
-msgid "Update has been marked successful"
-msgstr "A atualização foi designada bem sucedida"
+#: ../../mod/settings.php:771
+msgid "System Page Layout Editor - (advanced)"
+msgstr "Editor de layout de página do sistema - (avançado)"
-#: ../../mod/admin.php:569
-#, php-format
-msgid "Executing %s failed. Check system logs."
-msgstr "Execução de %s falhou. Verifique os logs do sistema."
+#: ../../mod/settings.php:807
+msgid "Nobody except yourself"
+msgstr "Ninguém exceto você mesmo"
-#: ../../mod/admin.php:572
-#, php-format
-msgid "Update %s was successfully applied."
-msgstr "A atualização %s foi aplicada com sucesso."
+#: ../../mod/settings.php:808
+msgid "Only those you specifically allow"
+msgstr "Apenas quem você der permissão"
-#: ../../mod/admin.php:576
-#, php-format
-msgid "Update %s did not return a status. Unknown if it succeeded."
-msgstr "A atualização %s não retornou um status. Situação incerta quando ao seu sucesso."
+#: ../../mod/settings.php:809
+msgid "Approved connections"
+msgstr "Conexões aprovadas"
-#: ../../mod/admin.php:579
-#, php-format
-msgid "Update function %s could not be found."
-msgstr "A função de atualização %s não foi encontrada."
+#: ../../mod/settings.php:810
+msgid "Any connections"
+msgstr "Quaisquer conexões"
-#: ../../mod/admin.php:594
-msgid "No failed updates."
-msgstr "Nenhuma falha nas atualizações."
+#: ../../mod/settings.php:811
+msgid "Anybody on this website"
+msgstr "Qualquer um neste site"
-#: ../../mod/admin.php:598
-msgid "Failed Updates"
-msgstr "Falha nas atualizações"
+#: ../../mod/settings.php:812
+msgid "Anybody in this network"
+msgstr "Qualquer um nesta rede"
-#: ../../mod/admin.php:600
-msgid "Mark success (if update was manually applied)"
-msgstr "Marque sucesso (se a atualização foi aplicada manualmente)"
+#: ../../mod/settings.php:813
+msgid "Anybody authenticated"
+msgstr "Qualquer um autenticado"
-#: ../../mod/admin.php:601
-msgid "Attempt to execute this update step automatically"
-msgstr "Tente executar este passo da atualização automaticamente"
+#: ../../mod/settings.php:814
+msgid "Anybody on the internet"
+msgstr "Qualquer um na internet"
-#: ../../mod/admin.php:627
-#, php-format
-msgid "%s user blocked/unblocked"
-msgid_plural "%s users blocked/unblocked"
-msgstr[0] "%s usuário foi bloqueado/desbloqueado"
-msgstr[1] "%s usuários foram bloqueados/desbloqueados"
+#: ../../mod/settings.php:891
+msgid "Publish your default profile in the network directory"
+msgstr "Publicar seu perfil padrão no diretório da rede?"
-#: ../../mod/admin.php:634
-#, php-format
-msgid "%s user deleted"
-msgid_plural "%s users deleted"
-msgstr[0] "%s usuário foi deletado"
-msgstr[1] "%s usuários foram deletados"
+#: ../../mod/settings.php:891 ../../mod/settings.php:896
+#: ../../mod/settings.php:973 ../../mod/api.php:106 ../../mod/profiles.php:602
+#: ../../mod/admin.php:392
+msgid "No"
+msgstr "Não"
-#: ../../mod/admin.php:665
-msgid "Account not found"
-msgstr "A conta não foi encontrada"
+#: ../../mod/settings.php:891 ../../mod/settings.php:896
+#: ../../mod/settings.php:973 ../../mod/api.php:105 ../../mod/profiles.php:601
+#: ../../mod/admin.php:394
+msgid "Yes"
+msgstr "Sim"
-#: ../../mod/admin.php:676
-#, php-format
-msgid "User '%s' deleted"
-msgstr "O usuário/a '%s' foi deletado/a"
+#: ../../mod/settings.php:896
+msgid "Allow us to suggest you as a potential friend to new members?"
+msgstr "Permitir sugerir você como amigo potencial para outros membros?"
-#: ../../mod/admin.php:685
-#, php-format
-msgid "User '%s' unblocked"
-msgstr "O usuário/a '%s' foi desbloqueado/a"
+#: ../../mod/settings.php:900 ../../mod/profile_photo.php:365
+msgid "or"
+msgstr "ou"
-#: ../../mod/admin.php:685
-#, php-format
-msgid "User '%s' blocked"
-msgstr "O usuário/a '%s' foi bloqueado/a"
+#: ../../mod/settings.php:905
+msgid "Your channel address is"
+msgstr "O endereço do seu canal é"
-#: ../../mod/admin.php:749 ../../mod/admin.php:761
-msgid "Users"
-msgstr "Usuários"
+#: ../../mod/settings.php:943
+msgid "Channel Settings"
+msgstr "Configurações do canal"
-#: ../../mod/admin.php:751 ../../mod/admin.php:885
-msgid "select all"
-msgstr "selecionar tudo"
+#: ../../mod/settings.php:952
+msgid "Basic Settings"
+msgstr "Configurações básicas"
-#: ../../mod/admin.php:752
-msgid "User registrations waiting for confirm"
-msgstr "Registros de usuário aguardando confirmação"
+#: ../../mod/settings.php:955
+msgid "Your Timezone:"
+msgstr "Seu fuso horário:"
-#: ../../mod/admin.php:753
-msgid "Request date"
-msgstr "Data de requisição"
+#: ../../mod/settings.php:956
+msgid "Default Post Location:"
+msgstr "Localização padrão de suas publicações:"
-#: ../../mod/admin.php:754
-msgid "No registrations."
-msgstr "Nenhum registro."
+#: ../../mod/settings.php:956
+msgid "Geographical location to display on your posts"
+msgstr "Localização geográfica para exibir em suas publicações"
-#: ../../mod/admin.php:755
-msgid "Approve"
-msgstr "Aprovar"
+#: ../../mod/settings.php:957
+msgid "Use Browser Location:"
+msgstr "Usar localizador do navegador:"
-#: ../../mod/admin.php:756
-msgid "Deny"
-msgstr "Negar"
+#: ../../mod/settings.php:959
+msgid "Adult Content"
+msgstr "Conteúdo adulto"
-#: ../../mod/admin.php:758 ../../mod/connedit.php:372
-#: ../../mod/connedit.php:515
-msgid "Block"
-msgstr "Bloquear"
+#: ../../mod/settings.php:959
+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/admin.php:759 ../../mod/connedit.php:372
-#: ../../mod/connedit.php:515
-msgid "Unblock"
-msgstr "Desbloquear"
+#: ../../mod/settings.php:961
+msgid "Security and Privacy Settings"
+msgstr "Configurações de segurança e privacidade"
-#: ../../mod/admin.php:762
-msgid "Register date"
-msgstr "Data de registro"
+#: ../../mod/settings.php:963
+msgid "Your permissions are already configured. Click to view/adjust"
+msgstr "Suas permissões já foram configuradas. Clique para vê-las/ajustá-las"
-#: ../../mod/admin.php:762
-msgid "Last login"
-msgstr "Última autenticação"
+#: ../../mod/settings.php:965
+msgid "Hide my online presence"
+msgstr "Esconda minha presença online"
-#: ../../mod/admin.php:762
-msgid "Expires"
-msgstr "Expira"
+#: ../../mod/settings.php:965
+msgid "Prevents displaying in your profile that you are online"
+msgstr "Previne exibir em seu perfil que você está online"
-#: ../../mod/admin.php:762
-msgid "Service Class"
-msgstr "Classe de serviço"
+#: ../../mod/settings.php:967
+msgid "Simple Privacy Settings:"
+msgstr "Configurações de privacidade simples:"
-#: ../../mod/admin.php:764
+#: ../../mod/settings.php:968
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?"
+"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/admin.php:765
+#: ../../mod/settings.php:969
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?"
+"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/admin.php:797
-#, php-format
-msgid "%s channel censored/uncensored"
-msgid_plural "%s channelss censored/uncensored"
-msgstr[0] "%s canal censurado/descensurado"
-msgstr[1] "%s canais censurados/descensurados"
+#: ../../mod/settings.php:970
+msgid "Private - <em>default private, never open or public</em>"
+msgstr "Privado - <em>privado por padrão, nunca aberto ou público</em>"
-#: ../../mod/admin.php:804
-#, php-format
-msgid "%s channel deleted"
-msgid_plural "%s channels deleted"
-msgstr[0] "%s canal deletado"
-msgstr[1] "%s canais deletados"
+#: ../../mod/settings.php:971
+msgid "Blocked - <em>default blocked to/from everybody</em>"
+msgstr "Bloqueado - <em>por padrão bloquado de/para todos</em>"
-#: ../../mod/admin.php:823
-msgid "Channel not found"
-msgstr "Canal não encontrado"
+#: ../../mod/settings.php:973
+msgid "Allow others to tag your posts"
+msgstr "Permitir que outros etiquetem suas publicações"
-#: ../../mod/admin.php:834
-#, php-format
-msgid "Channel '%s' deleted"
-msgstr "Canal '%s' deletado"
+#: ../../mod/settings.php:973
+msgid ""
+"Often used by the community to retro-actively flag inappropriate content"
+msgstr "Frequentemente utilizado pela comunidade para retroativamente sinalizar conteúdo inapropriado"
-#: ../../mod/admin.php:844
-#, php-format
-msgid "Channel '%s' uncensored"
-msgstr "Canal '%s' não censurado"
+#: ../../mod/settings.php:975
+msgid "Advanced Privacy Settings"
+msgstr "Configurações de privacidade avançadas"
-#: ../../mod/admin.php:844
-#, php-format
-msgid "Channel '%s' censored"
-msgstr "Canal '%s' censurado"
+#: ../../mod/settings.php:977
+msgid "Expire other channel content after this many days"
+msgstr "Expirar outros conteúdos do canal após este número de dias"
-#: ../../mod/admin.php:887
-msgid "Censor"
-msgstr "Censurar"
+#: ../../mod/settings.php:977
+msgid "0 or blank prevents expiration"
+msgstr "0 ou em branco previne expiração"
-#: ../../mod/admin.php:888
-msgid "Uncensor"
-msgstr "Não censurar"
+#: ../../mod/settings.php:978
+msgid "Maximum Friend Requests/Day:"
+msgstr "Número máximo de requisições de amizade por dia:"
-#: ../../mod/admin.php:891
-msgid "UID"
-msgstr "UID"
+#: ../../mod/settings.php:978
+msgid "May reduce spam activity"
+msgstr "Pode reduzir a frequência de spam"
-#: ../../mod/admin.php:891 ../../mod/settings.php:517
-#: ../../mod/settings.php:543
-msgid "Name"
-msgstr "Nome"
+#: ../../mod/settings.php:979
+msgid "Default Post Permissions"
+msgstr "Permissões padrão de publicação"
-#: ../../mod/admin.php:891 ../../mod/profiles.php:337
-msgid "Address"
-msgstr "Endereço"
+#: ../../mod/settings.php:991
+msgid "Maximum private messages per day from unknown people:"
+msgstr "Máximo número de mensagens privadas por dia de pessoas desconhecidas:"
-#: ../../mod/admin.php:893
-msgid ""
-"Selected channels will be deleted!\\n\\nEverything that was posted in these "
-"channels on this site will be permanently deleted!\\n\\nAre you sure?"
-msgstr "Os canais selecionados serão deletados!\\n\\nTudo que foi postado nesses canais nesse site será permanentemente deletado!\\n\\nVocê tem certeza?"
+#: ../../mod/settings.php:991
+msgid "Useful to reduce spamming"
+msgstr "Útil para reduzir a frequência de spam"
-#: ../../mod/admin.php:894
-msgid ""
-"The channel {0} will be deleted!\\n\\nEverything that was posted in this "
-"channel on this site will be permanently deleted!\\n\\nAre you sure?"
-msgstr "O canal {0} será deletado!\\n\\nTudo o que foi postado nesse canal nesse site será permanentemente deletado!\\n\\nVocê tem certeza?"
+#: ../../mod/settings.php:994
+msgid "Notification Settings"
+msgstr "Configurações de notificação"
-#: ../../mod/admin.php:933
-#, php-format
-msgid "Plugin %s disabled."
-msgstr "Plugin %s desabilitado."
+#: ../../mod/settings.php:995
+msgid "By default post a status message when:"
+msgstr "Por padrão, publicar uma mensagem de status quando:"
-#: ../../mod/admin.php:937
-#, php-format
-msgid "Plugin %s enabled."
-msgstr "Plugin %s habilitado."
+#: ../../mod/settings.php:996
+msgid "accepting a friend request"
+msgstr "aceitar um pedido de amizade"
-#: ../../mod/admin.php:947 ../../mod/admin.php:1149
-msgid "Disable"
-msgstr "Desabilitar"
+#: ../../mod/settings.php:997
+msgid "joining a forum/community"
+msgstr "associar-se a um fórum/comunidade"
-#: ../../mod/admin.php:949 ../../mod/admin.php:1151
-msgid "Enable"
-msgstr "Habilitar"
+#: ../../mod/settings.php:998
+msgid "making an <em>interesting</em> profile change"
+msgstr "modificar algo <em>interessante</em> em seu perfil"
-#: ../../mod/admin.php:975 ../../mod/admin.php:1180
-msgid "Toggle"
-msgstr "Alternar"
+#: ../../mod/settings.php:999
+msgid "Send a notification email when:"
+msgstr "Enviar um e-mail de notificação quando:"
-#: ../../mod/admin.php:983 ../../mod/admin.php:1190
-msgid "Author: "
-msgstr "Autor:"
+#: ../../mod/settings.php:1000
+msgid "You receive a connection request"
+msgstr "Você recebe uma solicitação de conexão"
-#: ../../mod/admin.php:984 ../../mod/admin.php:1191
-msgid "Maintainer: "
-msgstr "Mantenedor:"
+#: ../../mod/settings.php:1001
+msgid "Your connections are confirmed"
+msgstr "Suas conexões são confirmadas"
-#: ../../mod/admin.php:1113
-msgid "No themes found."
-msgstr "Nenhum tema foi encontrado."
+#: ../../mod/settings.php:1002
+msgid "Someone writes on your profile wall"
+msgstr "Alguém escrever no mural do seu perfil"
-#: ../../mod/admin.php:1172
-msgid "Screenshot"
-msgstr "Captura de tela"
+#: ../../mod/settings.php:1003
+msgid "Someone writes a followup comment"
+msgstr "Alguém comenta uma publicação"
-#: ../../mod/admin.php:1220
-msgid "[Experimental]"
-msgstr "[Experimental]"
+#: ../../mod/settings.php:1004
+msgid "You receive a private message"
+msgstr "Você recebeu uma mensagem privada"
-#: ../../mod/admin.php:1221
-msgid "[Unsupported]"
-msgstr "[Desassistido]"
+#: ../../mod/settings.php:1005
+msgid "You receive a friend suggestion"
+msgstr "Você recebe uma sugestão de amizade"
-#: ../../mod/admin.php:1248
-msgid "Log settings updated."
-msgstr "As configurações de log foram atualizadas."
+#: ../../mod/settings.php:1006
+msgid "You are tagged in a post"
+msgstr "Você é mencionado num post"
-#: ../../mod/admin.php:1304
-msgid "Clear"
-msgstr "Limpar"
+#: ../../mod/settings.php:1007
+msgid "You are poked/prodded/etc. in a post"
+msgstr "Você foi cutucado/espetado/etc. numa publicação"
-#: ../../mod/admin.php:1310
-msgid "Debugging"
-msgstr "Depuração"
+#: ../../mod/settings.php:1010
+msgid "Advanced Account/Page Type Settings"
+msgstr "Configurações avançadas de conta/tipo de página"
-#: ../../mod/admin.php:1311
-msgid "Log file"
-msgstr "Arquivo de log"
+#: ../../mod/settings.php:1011
+msgid "Change the behaviour of this account for special situations"
+msgstr "Mudar o comportamento dessa conta em situações especiais"
-#: ../../mod/admin.php:1311
+#: ../../mod/settings.php:1014
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."
+"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/admin.php:1312
-msgid "Log level"
-msgstr "Nível do log"
+#: ../../mod/settings.php:1015
+msgid "Miscellaneous Settings"
+msgstr "Configurações miscelâneas"
+
+#: ../../mod/settings.php:1017
+msgid "Personal menu to display in your channel pages"
+msgstr "Menu pessoal para exibir nas páginas dos seus canais"
+
+#: ../../mod/settings.php:1018
+msgid "Remove this channel"
+msgstr "Remover este canal"
#: ../../mod/poke.php:159
msgid "Poke/Prod"
@@ -4203,13 +4272,13 @@ 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/post.php:226
+#: ../../mod/post.php:229
msgid ""
"Remote authentication blocked. You are logged into this site locally. Please"
" logout and retry."
msgstr "Autenticação remota bloqueada. Você está autenticado neste site localmente. Por favor, saia e tente novamente."
-#: ../../mod/post.php:257 ../../mod/openid.php:72 ../../mod/openid.php:178
+#: ../../mod/post.php:261 ../../mod/openid.php:72 ../../mod/openid.php:178
#, php-format
msgid "Welcome %s. Remote authentication successful."
msgstr "Bem vindo %s. Autenticação remota realizada com sucesso."
@@ -4227,102 +4296,68 @@ msgstr "Carregar o URL retorna o erro: %1$s"
msgid "Invalid item."
msgstr "Item inválido."
-#: ../../mod/block.php:39 ../../mod/chanview.php:77 ../../mod/page.php:47
-#: ../../mod/home.php:52 ../../mod/wall_upload.php:28
+#: ../../mod/block.php:39 ../../mod/page.php:47 ../../mod/wall_upload.php:28
msgid "Channel not found."
msgstr "O canal não foi encontrado."
-#: ../../mod/block.php:75 ../../mod/page.php:83 ../../mod/display.php:100
-#: ../../mod/help.php:72 ../../index.php:236
+#: ../../mod/block.php:75 ../../mod/page.php:83 ../../mod/display.php:102
+#: ../../mod/help.php:72 ../../index.php:240
msgid "Page not found."
msgstr "Página não encontrada."
-#: ../../mod/profile_photo.php:108
-msgid "Image uploaded but image cropping failed."
-msgstr "A imagem foi enviada, mas não foi possível cortá-la."
-
-#: ../../mod/profile_photo.php:161
-msgid "Image resize failed."
-msgstr "Falha ao modificar o tamanho da imagem."
-
-#: ../../mod/profile_photo.php:205
-msgid ""
-"Shift-reload the page or clear browser cache if the new photo does not "
-"display immediately."
-msgstr "Se a nova foto não aparecer imediatamente, recarregue a página segurando a tecla \"shift\" ou limpe o cache do navegador, "
-
-#: ../../mod/profile_photo.php:232
+#: ../../mod/siteinfo.php:126
#, php-format
-msgid "Image exceeds size limit of %d"
-msgstr "A imagem excede o limite de tamanho de %d"
-
-#: ../../mod/profile_photo.php:241
-msgid "Unable to process image."
-msgstr "Não foi possível processar a imagem."
-
-#: ../../mod/profile_photo.php:290 ../../mod/profile_photo.php:339
-msgid "Photo not available."
-msgstr "A foto não está disponível."
-
-#: ../../mod/profile_photo.php:358
-msgid "Upload File:"
-msgstr "Enviar arquivo:"
-
-#: ../../mod/profile_photo.php:359
-msgid "Select a profile:"
-msgstr "Selecione um perfil:"
-
-#: ../../mod/profile_photo.php:360
-msgid "Upload Profile Photo"
-msgstr "Enviar foto do perfil"
-
-#: ../../mod/profile_photo.php:361
-msgid "Upload"
-msgstr "Enviar"
+msgid "Version %s"
+msgstr "Versão %s"
-#: ../../mod/profile_photo.php:365 ../../mod/settings.php:885
-msgid "or"
-msgstr "ou"
+#: ../../mod/siteinfo.php:145
+msgid "Installed plugins/addons/apps:"
+msgstr "Plugins/complementos/aplicações instalados:"
-#: ../../mod/profile_photo.php:365
-msgid "skip this step"
-msgstr "pule esta etapa"
+#: ../../mod/siteinfo.php:158
+msgid "No installed plugins/addons/apps"
+msgstr "Nenhum plugin/complemento/aplicação instalado"
-#: ../../mod/profile_photo.php:365
-msgid "select a photo from your photo albums"
-msgstr "selecione uma foto do seu álbum de fotos"
+#: ../../mod/siteinfo.php:166
+msgid "Red"
+msgstr "Red"
-#: ../../mod/profile_photo.php:379
-msgid "Crop Image"
-msgstr "Cortar a imagem"
+#: ../../mod/siteinfo.php:167
+msgid ""
+"This is a hub of the Red Matrix - a global cooperative network of "
+"decentralized privacy enhanced websites."
+msgstr "Este é um hub da Red Matrix - uma rede global cooperativa de websites descentralizados com privacidade aprimorada."
-#: ../../mod/profile_photo.php:380
-msgid "Please adjust the image cropping for optimum viewing."
-msgstr "Por favor, ajuste o corte da imagem para a melhor visualização."
+#: ../../mod/siteinfo.php:170
+msgid "Running at web location"
+msgstr "Sendo executado no endereço web"
-#: ../../mod/profile_photo.php:382
-msgid "Done Editing"
-msgstr "Encerrar a edição"
+#: ../../mod/siteinfo.php:171
+msgid ""
+"Please visit <a href=\"http://getzot.com\">GetZot.com</a> to learn more "
+"about the Red Matrix."
+msgstr "Para aprender mais sobre a Red Matrix, visite <a href=\"http://getzot.com\">GetZot.com</a>."
-#: ../../mod/profile_photo.php:425
-msgid "Image uploaded successfully."
-msgstr "A imagem foi enviada com sucesso."
+#: ../../mod/siteinfo.php:172
+msgid "Bug reports and issues: please visit"
+msgstr "Relatos e acompanhamentos de erros podem ser encontrados em"
-#: ../../mod/profile_photo.php:427
-msgid "Image upload failed."
-msgstr "Não foi possível enviar a imagem."
+#: ../../mod/siteinfo.php:175
+msgid ""
+"Suggestions, praise, etc. - please email \"redmatrix\" at librelist - dot "
+"com"
+msgstr "Sugestões, elogios, etc - mande um e-mail para \"redmatrix\" arrôba librelist ponto com"
-#: ../../mod/profile_photo.php:436
-#, php-format
-msgid "Image size reduction [%s] failed."
-msgstr "Não foi possível reduzir o tamanho da imagem [%s]."
+#: ../../mod/siteinfo.php:177
+msgid "Site Administrators"
+msgstr "Administradores do site"
-#: ../../mod/blocks.php:66
+#: ../../mod/blocks.php:62
msgid "Block Name"
msgstr "Nome do bloco"
-#: ../../mod/profiles.php:18 ../../mod/profiles.php:138
-#: ../../mod/profiles.php:168 ../../mod/profiles.php:463
+#: ../../mod/profiles.php:18 ../../mod/profiles.php:165
+#: ../../mod/profiles.php:222 ../../mod/profiles.php:575
msgid "Profile not found."
msgstr "O perfil não foi encontrado."
@@ -4342,231 +4377,245 @@ msgstr "O novo perfil foi criado."
msgid "Profile unavailable to clone."
msgstr "O perfil não está disponível para clonagem."
-#: ../../mod/profiles.php:178
+#: ../../mod/profiles.php:136
+msgid "Profile unavailable to export."
+msgstr "Perfil indisponível para exportar."
+
+#: ../../mod/profiles.php:232
msgid "Profile Name is required."
msgstr "É obrigatório informar o nome do perfil."
-#: ../../mod/profiles.php:294
+#: ../../mod/profiles.php:390
msgid "Marital Status"
msgstr "Estado civil"
-#: ../../mod/profiles.php:298
+#: ../../mod/profiles.php:394
msgid "Romantic Partner"
msgstr "Parceiro/a romântico/a"
-#: ../../mod/profiles.php:302
+#: ../../mod/profiles.php:398
msgid "Likes"
msgstr "Gosta de"
-#: ../../mod/profiles.php:306
+#: ../../mod/profiles.php:402
msgid "Dislikes"
msgstr "Não gosta de"
-#: ../../mod/profiles.php:310
+#: ../../mod/profiles.php:406
msgid "Work/Employment"
msgstr "Trabalho/Emprego"
-#: ../../mod/profiles.php:313
+#: ../../mod/profiles.php:409
msgid "Religion"
msgstr "Religião"
-#: ../../mod/profiles.php:317
+#: ../../mod/profiles.php:413
msgid "Political Views"
msgstr "Posição política"
-#: ../../mod/profiles.php:321
+#: ../../mod/profiles.php:417
msgid "Gender"
msgstr "Gênero"
-#: ../../mod/profiles.php:325
+#: ../../mod/profiles.php:421
msgid "Sexual Preference"
msgstr "Preferência sexual"
-#: ../../mod/profiles.php:329
+#: ../../mod/profiles.php:425
msgid "Homepage"
msgstr "Página web"
-#: ../../mod/profiles.php:333
+#: ../../mod/profiles.php:429
msgid "Interests"
msgstr "Interesses"
-#: ../../mod/profiles.php:344 ../../mod/pubsites.php:25
+#: ../../mod/profiles.php:433 ../../mod/admin.php:868
+msgid "Address"
+msgstr "Endereço"
+
+#: ../../mod/profiles.php:440 ../../mod/pubsites.php:25
msgid "Location"
msgstr "Localização"
-#: ../../mod/profiles.php:427
+#: ../../mod/profiles.php:523
msgid "Profile updated."
msgstr "O perfil foi atualizado."
-#: ../../mod/profiles.php:482
+#: ../../mod/profiles.php:600
msgid "Hide your contact/friend list from viewers of this profile?"
msgstr "Esconder sua lista de contatos/amigos dos visitantes no seu perfil?"
-#: ../../mod/profiles.php:505
+#: ../../mod/profiles.php:642
msgid "Edit Profile Details"
msgstr "Editar os detalhes do perfil"
-#: ../../mod/profiles.php:507
+#: ../../mod/profiles.php:644
msgid "View this profile"
msgstr "Ver este perfil"
-#: ../../mod/profiles.php:508
+#: ../../mod/profiles.php:646
msgid "Change Profile Photo"
msgstr "Mudar a foto do perfil"
-#: ../../mod/profiles.php:509
+#: ../../mod/profiles.php:647
msgid "Create a new profile using these settings"
msgstr "Criar um novo perfil usando estas configurações"
-#: ../../mod/profiles.php:510
+#: ../../mod/profiles.php:648
msgid "Clone this profile"
msgstr "Clonar este perfil"
-#: ../../mod/profiles.php:511
+#: ../../mod/profiles.php:649
msgid "Delete this profile"
msgstr "Excluir este perfil"
-#: ../../mod/profiles.php:512
+#: ../../mod/profiles.php:651
+msgid "Import profile from file"
+msgstr "Importar perfil dum arquivo"
+
+#: ../../mod/profiles.php:652
+msgid "Export profile to file"
+msgstr "Exportar perfil para arquivo"
+
+#: ../../mod/profiles.php:653
msgid "Profile Name:"
msgstr "Nome do perfil:"
-#: ../../mod/profiles.php:513
+#: ../../mod/profiles.php:654
msgid "Your Full Name:"
msgstr "Seu nome completo:"
-#: ../../mod/profiles.php:514
+#: ../../mod/profiles.php:655
msgid "Title/Description:"
msgstr "Título/Descrição:"
-#: ../../mod/profiles.php:515
+#: ../../mod/profiles.php:656
msgid "Your Gender:"
msgstr "Seu gênero:"
-#: ../../mod/profiles.php:516
+#: ../../mod/profiles.php:657
#, php-format
msgid "Birthday (%s):"
msgstr "Aniversário (%s):"
-#: ../../mod/profiles.php:517
+#: ../../mod/profiles.php:658
msgid "Street Address:"
msgstr "Endereço:"
-#: ../../mod/profiles.php:518
+#: ../../mod/profiles.php:659
msgid "Locality/City:"
msgstr "Localidade/Cidade:"
-#: ../../mod/profiles.php:519
+#: ../../mod/profiles.php:660
msgid "Postal/Zip Code:"
msgstr "CEP:"
-#: ../../mod/profiles.php:520
+#: ../../mod/profiles.php:661
msgid "Country:"
msgstr "País:"
-#: ../../mod/profiles.php:521
+#: ../../mod/profiles.php:662
msgid "Region/State:"
msgstr "Região/Estado:"
-#: ../../mod/profiles.php:522
+#: ../../mod/profiles.php:663
msgid "<span class=\"heart\">&hearts;</span> Marital Status:"
msgstr "Estado civil <span class=\"heart\">&hearts;</span>:"
-#: ../../mod/profiles.php:523
+#: ../../mod/profiles.php:664
msgid "Who: (if applicable)"
msgstr "Quem: (se aplicável)"
-#: ../../mod/profiles.php:524
+#: ../../mod/profiles.php:665
msgid "Examples: cathy123, Cathy Williams, cathy@example.com"
msgstr "Exemplos: fulano123, Fulano de Tal, fulano@exemplo.com"
-#: ../../mod/profiles.php:525
+#: ../../mod/profiles.php:666
msgid "Since [date]:"
msgstr "Desde [data]:"
-#: ../../mod/profiles.php:527
+#: ../../mod/profiles.php:668
msgid "Homepage URL:"
msgstr "Endereço do website:"
-#: ../../mod/profiles.php:530
+#: ../../mod/profiles.php:671
msgid "Religious Views:"
msgstr "Orientação religiosa:"
-#: ../../mod/profiles.php:531
+#: ../../mod/profiles.php:672
msgid "Keywords:"
msgstr "Palavras-chave:"
-#: ../../mod/profiles.php:534
+#: ../../mod/profiles.php:675
msgid "Example: fishing photography software"
msgstr "Exemplo: pesca fotografia software"
-#: ../../mod/profiles.php:535
+#: ../../mod/profiles.php:676
msgid "Used in directory listings"
msgstr "Usado em listas de diretório"
-#: ../../mod/profiles.php:536
+#: ../../mod/profiles.php:677
msgid "Tell us about yourself..."
msgstr "Fale um pouco sobre você..."
-#: ../../mod/profiles.php:537
+#: ../../mod/profiles.php:678
msgid "Hobbies/Interests"
msgstr "Hobbies/Interesses"
-#: ../../mod/profiles.php:538
+#: ../../mod/profiles.php:679
msgid "Contact information and Social Networks"
msgstr "Informações de contato e redes sociais"
-#: ../../mod/profiles.php:539
+#: ../../mod/profiles.php:680
msgid "My other channels"
msgstr "Meus outros canais"
-#: ../../mod/profiles.php:540
+#: ../../mod/profiles.php:681
msgid "Musical interests"
msgstr "Interesses musicais"
-#: ../../mod/profiles.php:541
+#: ../../mod/profiles.php:682
msgid "Books, literature"
msgstr "Livros, literatura"
-#: ../../mod/profiles.php:542
+#: ../../mod/profiles.php:683
msgid "Television"
msgstr "Televisão"
-#: ../../mod/profiles.php:543
+#: ../../mod/profiles.php:684
msgid "Film/dance/culture/entertainment"
msgstr "Filme/dança/cultura/entretenimento"
-#: ../../mod/profiles.php:544
+#: ../../mod/profiles.php:685
msgid "Love/romance"
msgstr "Amor/romance"
-#: ../../mod/profiles.php:545
+#: ../../mod/profiles.php:686
msgid "Work/employment"
msgstr "Trabalho/emprego"
-#: ../../mod/profiles.php:546
+#: ../../mod/profiles.php:687
msgid "School/education"
msgstr "Escola/educação"
-#: ../../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 "Este é o seu perfil <strong>público</strong>.<br />Ele <strong>pode</strong> estar visível para qualquer um que acesse a Internet."
+#: ../../mod/profiles.php:693
+msgid "This is your default profile."
+msgstr "Este é seu perfil padrão."
-#: ../../mod/profiles.php:561 ../../mod/directory.php:143
+#: ../../mod/profiles.php:704 ../../mod/directory.php:143
#: ../../mod/dirprofile.php:92
msgid "Age: "
msgstr "Idade: "
-#: ../../mod/profiles.php:600
+#: ../../mod/profiles.php:747
msgid "Edit/Manage Profiles"
msgstr "Editar/Administrar perfis"
-#: ../../mod/profiles.php:601
+#: ../../mod/profiles.php:748
msgid "Add profile things"
msgstr "Adicionar coisas ao perfil"
-#: ../../mod/profiles.php:602
+#: ../../mod/profiles.php:749
msgid "Include desirable objects in your profile"
msgstr "Inclua objetos desejáveis no seu perfil"
@@ -4598,7 +4647,7 @@ msgstr "Clique em um contato para adicionar ou remover."
msgid "Visible To"
msgstr "Visível para"
-#: ../../mod/profperm.php:139 ../../mod/connections.php:278
+#: ../../mod/profperm.php:139 ../../mod/connections.php:279
msgid "All Connections"
msgstr "Todas as conexões"
@@ -4692,78 +4741,82 @@ msgstr "Nome da sala de bate-papo"
msgid "%1$s's Chatrooms"
msgstr "Salas de bate-papo de %1$s"
-#: ../../mod/register.php:43
+#: ../../mod/register.php:42
msgid "Maximum daily site registrations exceeded. Please try again tomorrow."
msgstr "Número máximo de novos registros neste site excedido por hoje. Por favor, tente novamente amanhã."
-#: ../../mod/register.php:49
+#: ../../mod/register.php:48
msgid ""
"Please indicate acceptance of the Terms of Service. Registration failed."
msgstr "Por favor, indique a aceitação dos Termos de Serviço. Falha ao registrar."
-#: ../../mod/register.php:77
+#: ../../mod/register.php:82
msgid "Passwords do not match."
msgstr "Senhas não conferem."
-#: ../../mod/register.php:105
+#: ../../mod/register.php:115
msgid ""
"Registration successful. Please check your email for validation "
"instructions."
msgstr "O registro foi bem sucedido. Por favor, verifique seu e-mail para confirmar o registro."
-#: ../../mod/register.php:111
+#: ../../mod/register.php:121
msgid "Your registration is pending approval by the site owner."
msgstr "A aprovação do seu registro está pendente junto ao administrador do site."
-#: ../../mod/register.php:114
+#: ../../mod/register.php:124
msgid "Your registration can not be processed."
msgstr "Não foi possível processar o seu registro."
-#: ../../mod/register.php:147
+#: ../../mod/register.php:161
msgid "Registration on this site/hub is by approval only."
msgstr "O registro neste site/hub requer aprovação."
-#: ../../mod/register.php:148
+#: ../../mod/register.php:162
msgid "<a href=\"pubsites\">Register at another affiliated site/hub</a>"
msgstr "<a href=\"pubsites\">Registre em um outro site/hub afiliado</a>"
-#: ../../mod/register.php:156
+#: ../../mod/register.php:170
msgid ""
"This site has exceeded the number of allowed daily account registrations. "
"Please try again tomorrow."
msgstr "Este site excedeu o número máximo de registros de novas contas. Por favor, tente novamente amanhã."
-#: ../../mod/register.php:167
+#: ../../mod/register.php:181
msgid "Terms of Service"
msgstr "Termos de Serviço"
-#: ../../mod/register.php:173
+#: ../../mod/register.php:187
#, php-format
msgid "I accept the %s for this website"
msgstr "Eu aceito os %s deste website."
-#: ../../mod/register.php:175
+#: ../../mod/register.php:189
#, php-format
msgid "I am over 13 years of age and accept the %s for this website"
msgstr "Eu sou maior de 13 anos e aceito os %s deste website"
-#: ../../mod/register.php:194
+#: ../../mod/register.php:203 ../../mod/admin.php:415
+msgid "Registration"
+msgstr "Registro"
+
+#: ../../mod/register.php:208
msgid "Membership on this site is by invitation only."
msgstr "Novas contas neste site se dão apenas por convite."
-#: ../../mod/register.php:195
+#: ../../mod/register.php:209
msgid "Please enter your invitation code"
msgstr "Por favor, digite o código do seu convite"
-#: ../../mod/register.php:198
+#: ../../mod/register.php:212
msgid "Your email address"
msgstr "Seu endereço de e-mail"
-#: ../../mod/register.php:199
+#: ../../mod/register.php:213
msgid "Choose a password"
msgstr "Escolha uma senha"
-#: ../../mod/register.php:200
+#: ../../mod/register.php:214
msgid "Please re-enter your password"
msgstr "Por favor, digite sua senha novamente"
@@ -4775,39 +4828,45 @@ msgstr "Ausente"
msgid "Online"
msgstr "Online"
-#: ../../mod/regmod.php:12
+#: ../../mod/regmod.php:11
msgid "Please login."
msgstr "Por favor, autentique-se."
-#: ../../mod/cloud.php:112
+#: ../../mod/cloud.php:126
msgid "Red Matrix - Guests: Username: {your email address}, Password: +++"
msgstr "Red Matrix - Visitantes: Usuário: {seu endereço de e-mail}, Senha: +++"
-#: ../../mod/removeme.php:49
+#: ../../mod/removeme.php:29
+msgid ""
+"Channel removals are not allowed within 48 hours of changing the account "
+"password."
+msgstr "A remoção da canais fica desabilitada por 48 horas após uma troca de senha da conta."
+
+#: ../../mod/removeme.php:57
msgid "Remove This Channel"
msgstr "Remover este canal"
-#: ../../mod/removeme.php:50
+#: ../../mod/removeme.php:58
msgid ""
"This will completely remove this channel from the network. Once this has "
"been done it is not recoverable."
msgstr "Isso irá remover completamente este canal da rede. Uma vez que seja feito não será possível recuperá-lo."
-#: ../../mod/removeme.php:51
+#: ../../mod/removeme.php:59 ../../mod/removeaccount.php:59
msgid "Please enter your password for verification:"
msgstr "Por favor, digite a sua senha para verificação:"
-#: ../../mod/removeme.php:52
+#: ../../mod/removeme.php:60
msgid "Remove this channel and all its clones from the network"
msgstr "Remover este canal e todos os seus clones da rede"
-#: ../../mod/removeme.php:52
+#: ../../mod/removeme.php:60
msgid ""
"By default only the instance of the channel located on this hub will be "
"removed from the network"
msgstr "Por padrão, apenas a instância do canal localizada neste hub será removida da rede"
-#: ../../mod/removeme.php:53
+#: ../../mod/removeme.php:61
msgid "Remove Channel"
msgstr "Remover canal"
@@ -4837,15 +4896,15 @@ msgstr "A mensagem de erro foi:"
msgid "Authentication failed."
msgstr "A autenticação falhou."
-#: ../../mod/rmagic.php:78
+#: ../../mod/rmagic.php:82
msgid "Remote Authentication"
msgstr "Autenticação remota"
-#: ../../mod/rmagic.php:79
+#: ../../mod/rmagic.php:83
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:80
+#: ../../mod/rmagic.php:84
msgid "Authenticate"
msgstr "Autenticar"
@@ -4896,23 +4955,23 @@ msgstr "Canal restrito ou premium"
msgid "No such group"
msgstr "Este grupo não existe"
-#: ../../mod/network.php:119
+#: ../../mod/network.php:118
msgid "Search Results For:"
msgstr "Resultados da busca por:"
-#: ../../mod/network.php:173
+#: ../../mod/network.php:172
msgid "Collection is empty"
msgstr "A coleção está vazia"
-#: ../../mod/network.php:181
+#: ../../mod/network.php:180
msgid "Collection: "
msgstr "Coleção:"
-#: ../../mod/network.php:194
+#: ../../mod/network.php:193
msgid "Connection: "
msgstr "Conexão:"
-#: ../../mod/network.php:197
+#: ../../mod/network.php:196
msgid "Invalid connection."
msgstr "Conexão inválida."
@@ -4924,325 +4983,331 @@ msgstr "Não foi possível acessar o registro do contato."
msgid "Could not locate selected profile."
msgstr "Não foi possível localizar o perfil selecionado."
-#: ../../mod/connections.php:94 ../../mod/connedit.php:131
+#: ../../mod/connections.php:94 ../../mod/connedit.php:132
msgid "Connection updated."
msgstr "A conexão foi atualizada."
-#: ../../mod/connections.php:96 ../../mod/connedit.php:133
+#: ../../mod/connections.php:96 ../../mod/connedit.php:134
msgid "Failed to update connection record."
msgstr "Não foi possível atualizar o registro da conexão."
-#: ../../mod/connections.php:191 ../../mod/connections.php:291
+#: ../../mod/connections.php:191 ../../mod/connections.php:292
msgid "Blocked"
msgstr "Bloqueado"
-#: ../../mod/connections.php:196 ../../mod/connections.php:298
+#: ../../mod/connections.php:196 ../../mod/connections.php:299
msgid "Ignored"
msgstr "Ignorado"
-#: ../../mod/connections.php:201 ../../mod/connections.php:312
+#: ../../mod/connections.php:201 ../../mod/connections.php:313
msgid "Hidden"
msgstr "Oculto"
-#: ../../mod/connections.php:206 ../../mod/connections.php:305
+#: ../../mod/connections.php:206 ../../mod/connections.php:306
msgid "Archived"
msgstr "Arquivado"
-#: ../../mod/connections.php:230 ../../mod/connections.php:244
+#: ../../mod/connections.php:230 ../../mod/connections.php:245
msgid "All"
msgstr "Todos"
-#: ../../mod/connections.php:239 ../../mod/connections.php:319
-msgid "Unconnected"
-msgstr "Não conectado"
-
-#: ../../mod/connections.php:269
+#: ../../mod/connections.php:270
msgid "Suggest new connections"
msgstr "Sugerir novas conexões"
-#: ../../mod/connections.php:272
+#: ../../mod/connections.php:273
msgid "New Connections"
msgstr "Novas conexões"
-#: ../../mod/connections.php:275
+#: ../../mod/connections.php:276
msgid "Show pending (new) connections"
msgstr "Exibir conexões pendentes (novas)"
-#: ../../mod/connections.php:281
+#: ../../mod/connections.php:282
msgid "Show all connections"
msgstr "Exibir todas as conexões"
-#: ../../mod/connections.php:284
+#: ../../mod/connections.php:285
msgid "Unblocked"
msgstr "Não bloqueado"
-#: ../../mod/connections.php:287
+#: ../../mod/connections.php:288
msgid "Only show unblocked connections"
msgstr "Exibir apenas conexões não bloqueadas"
-#: ../../mod/connections.php:294
+#: ../../mod/connections.php:295
msgid "Only show blocked connections"
msgstr "Exibir apenas conexões bloqueadas"
-#: ../../mod/connections.php:301
+#: ../../mod/connections.php:302
msgid "Only show ignored connections"
msgstr "Exibir apenas conexões ignoradas"
-#: ../../mod/connections.php:308
+#: ../../mod/connections.php:309
msgid "Only show archived connections"
msgstr "Exibir apenas conexões arquivadas"
-#: ../../mod/connections.php:315
+#: ../../mod/connections.php:316
msgid "Only show hidden connections"
msgstr "Exibir apenas conexões ocultas"
-#: ../../mod/connections.php:322
-msgid "Only show one-way connections"
-msgstr "Exibir apenas conexões de mão única"
-
-#: ../../mod/connections.php:367
+#: ../../mod/connections.php:371
#, php-format
msgid "%1$s [%2$s]"
msgstr "%1$s [%2$s]"
-#: ../../mod/connections.php:368
-msgid "Edit contact"
-msgstr "Editar o contato"
+#: ../../mod/connections.php:372
+msgid "Edit connection"
+msgstr "Editar conexão"
-#: ../../mod/connections.php:389
+#: ../../mod/connections.php:410
msgid "Search your connections"
msgstr "Pesquisar em suas conexões"
-#: ../../mod/connections.php:390
+#: ../../mod/connections.php:411
msgid "Finding: "
msgstr "Pesquisando: "
-#: ../../mod/rpost.php:86 ../../mod/editpost.php:42
+#: ../../mod/rpost.php:97 ../../mod/editpost.php:42
msgid "Edit post"
msgstr "Editar a publicação"
-#: ../../mod/connedit.php:243
+#: ../../mod/connedit.php:181
+msgid "is now connected to"
+msgstr "está agora conectado a"
+
+#: ../../mod/connedit.php:296
msgid "Could not access address book record."
msgstr "Não foi possível acessar o registro do contato."
-#: ../../mod/connedit.php:257
+#: ../../mod/connedit.php:310
msgid "Refresh failed - channel is currently unavailable."
msgstr "A atualização falhou - o canal está indisponível no momento."
-#: ../../mod/connedit.php:264
+#: ../../mod/connedit.php:317
msgid "Channel has been unblocked"
msgstr "O canal foi desbloqueado"
-#: ../../mod/connedit.php:265
+#: ../../mod/connedit.php:318
msgid "Channel has been blocked"
msgstr "O canal foi bloqueado"
-#: ../../mod/connedit.php:269 ../../mod/connedit.php:281
-#: ../../mod/connedit.php:293 ../../mod/connedit.php:305
-#: ../../mod/connedit.php:320
+#: ../../mod/connedit.php:322 ../../mod/connedit.php:334
+#: ../../mod/connedit.php:346 ../../mod/connedit.php:358
+#: ../../mod/connedit.php:374
msgid "Unable to set address book parameters."
msgstr "Não foi possível definir os parâmetros do contato."
-#: ../../mod/connedit.php:276
+#: ../../mod/connedit.php:329
msgid "Channel has been unignored"
msgstr "O canal não está mais ignorado"
-#: ../../mod/connedit.php:277
+#: ../../mod/connedit.php:330
msgid "Channel has been ignored"
msgstr "O canal passou a estar ignorado"
-#: ../../mod/connedit.php:288
+#: ../../mod/connedit.php:341
msgid "Channel has been unarchived"
msgstr "O canal deixou o arquivo"
-#: ../../mod/connedit.php:289
+#: ../../mod/connedit.php:342
msgid "Channel has been archived"
msgstr "O canal foi colocado no arquivo"
-#: ../../mod/connedit.php:300
+#: ../../mod/connedit.php:353
msgid "Channel has been unhidden"
msgstr "O canal não está mais oculto"
-#: ../../mod/connedit.php:301
+#: ../../mod/connedit.php:354
msgid "Channel has been hidden"
msgstr "O canal passou a estar oculto"
-#: ../../mod/connedit.php:315
+#: ../../mod/connedit.php:369
msgid "Channel has been approved"
msgstr "O canal foi aprovado"
-#: ../../mod/connedit.php:316
+#: ../../mod/connedit.php:370
msgid "Channel has been unapproved"
msgstr "O canal deixou de estar aprovado"
-#: ../../mod/connedit.php:334
+#: ../../mod/connedit.php:398
msgid "Connection has been removed."
msgstr "A conexão foi removida."
-#: ../../mod/connedit.php:354
+#: ../../mod/connedit.php:418
#, php-format
msgid "View %s's profile"
msgstr "Ver o perfil de %s"
-#: ../../mod/connedit.php:358
+#: ../../mod/connedit.php:422
msgid "Refresh Permissions"
msgstr "Atualizar permissões"
-#: ../../mod/connedit.php:361
+#: ../../mod/connedit.php:425
msgid "Fetch updated permissions"
msgstr "Buscar as permissões atualizadas"
-#: ../../mod/connedit.php:365
+#: ../../mod/connedit.php:429
msgid "Recent Activity"
msgstr "Atividades recentes"
-#: ../../mod/connedit.php:368
+#: ../../mod/connedit.php:432
msgid "View recent posts and comments"
msgstr "Exibir publicações e comentários recentes"
-#: ../../mod/connedit.php:375
+#: ../../mod/connedit.php:436 ../../mod/connedit.php:579
+#: ../../mod/admin.php:734
+msgid "Unblock"
+msgstr "Desbloquear"
+
+#: ../../mod/connedit.php:436 ../../mod/connedit.php:579
+#: ../../mod/admin.php:733
+msgid "Block"
+msgstr "Bloquear"
+
+#: ../../mod/connedit.php:439
msgid "Block or Unblock this connection"
msgstr "Bloquear ou desbloquear esta conexão"
-#: ../../mod/connedit.php:379 ../../mod/connedit.php:516
+#: ../../mod/connedit.php:443 ../../mod/connedit.php:580
msgid "Unignore"
msgstr "Não ignorar"
-#: ../../mod/connedit.php:379 ../../mod/connedit.php:516
+#: ../../mod/connedit.php:443 ../../mod/connedit.php:580
#: ../../mod/notifications.php:51
msgid "Ignore"
msgstr "Ignorar"
-#: ../../mod/connedit.php:382
+#: ../../mod/connedit.php:446
msgid "Ignore or Unignore this connection"
msgstr "Ignorar ou deixar de ignorar esta conexão"
-#: ../../mod/connedit.php:385
+#: ../../mod/connedit.php:449
msgid "Unarchive"
msgstr "Não arquivar"
-#: ../../mod/connedit.php:385
+#: ../../mod/connedit.php:449
msgid "Archive"
msgstr "Arquivar"
-#: ../../mod/connedit.php:388
+#: ../../mod/connedit.php:452
msgid "Archive or Unarchive this connection"
msgstr "Colocar ou retirar do arquivo esta conexão"
-#: ../../mod/connedit.php:391
+#: ../../mod/connedit.php:455
msgid "Unhide"
msgstr "Não ocultar"
-#: ../../mod/connedit.php:391
+#: ../../mod/connedit.php:455
msgid "Hide"
msgstr "Ocultar"
-#: ../../mod/connedit.php:394
+#: ../../mod/connedit.php:458
msgid "Hide or Unhide this connection"
msgstr "Ocultar ou deixar de ocultar esta conexão"
-#: ../../mod/connedit.php:401
+#: ../../mod/connedit.php:465
msgid "Delete this connection"
msgstr "Deletar esta conexão"
-#: ../../mod/connedit.php:444 ../../mod/connedit.php:473
+#: ../../mod/connedit.php:508 ../../mod/connedit.php:537
msgid "Approve this connection"
msgstr "Aprovar esta conexão"
-#: ../../mod/connedit.php:444
+#: ../../mod/connedit.php:508
msgid "Accept connection to allow communication"
msgstr "Aceite a conexão para permitir comunicação"
-#: ../../mod/connedit.php:460
+#: ../../mod/connedit.php:524
msgid "Automatic Permissions Settings"
msgstr "Configurações de permissão automáticas"
-#: ../../mod/connedit.php:460
+#: ../../mod/connedit.php:524
#, php-format
msgid "Connections: settings for %s"
msgstr "Conexões: configurações para %s"
-#: ../../mod/connedit.php:464
+#: ../../mod/connedit.php:528
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 "Ao receber uma apresentação de um canal, quaisquer permissões definidas aqui serão automaticamente aplicadas à nova conexão e a apresentação aprovada. Deixe esta página se você não quer usar este recurso."
-#: ../../mod/connedit.php:466
+#: ../../mod/connedit.php:530
msgid "Slide to adjust your degree of friendship"
msgstr "Deslize para ajustar seu grau de amizade"
-#: ../../mod/connedit.php:472
+#: ../../mod/connedit.php:536
msgid "inherited"
msgstr "herdado"
-#: ../../mod/connedit.php:474
+#: ../../mod/connedit.php:538
msgid "Connection has no individual permissions!"
msgstr "A conexão não tem permissões individuais!"
-#: ../../mod/connedit.php:475
+#: ../../mod/connedit.php:539
msgid ""
"This may be appropriate based on your <a href=\"settings\">privacy "
"settings</a>, though you may wish to review the \"Advanced Permissions\"."
msgstr "Isso pode ser adequado baseado nas suas <a href=\"settings\">configurações de privacidade</a>, mas talvez você queira rever suas \"Permissões Avançadas\"."
-#: ../../mod/connedit.php:477
+#: ../../mod/connedit.php:541
msgid "Profile Visibility"
msgstr "Visibilidade do perfil"
-#: ../../mod/connedit.php:478
+#: ../../mod/connedit.php:542
#, php-format
msgid ""
"Please choose the profile you would like to display to %s when viewing your "
"profile securely."
msgstr "Por favor, selecione o perfil que você gostaria de exibir para %s quando estiver visualizando seu perfil de modo seguro."
-#: ../../mod/connedit.php:479
+#: ../../mod/connedit.php:543
msgid "Contact Information / Notes"
msgstr "Informações de contato / Notas"
-#: ../../mod/connedit.php:480
+#: ../../mod/connedit.php:544
msgid "Edit contact notes"
msgstr "Editar anotações sobre o contato"
-#: ../../mod/connedit.php:482
+#: ../../mod/connedit.php:546
msgid "Their Settings"
msgstr "Configurações dele/a"
-#: ../../mod/connedit.php:483
+#: ../../mod/connedit.php:547
msgid "My Settings"
msgstr "Minhas configurações"
-#: ../../mod/connedit.php:485
+#: ../../mod/connedit.php:549
msgid "Clear/Disable Automatic Permissions"
msgstr "Limpa/Desabilita permissões automáticas"
-#: ../../mod/connedit.php:486
+#: ../../mod/connedit.php:550
msgid "Forum Members"
-msgstr "Membros do fórum"
+msgstr "Membros de fórum"
-#: ../../mod/connedit.php:487
+#: ../../mod/connedit.php:551
msgid "Soapbox"
msgstr "Caixa de sabão"
-#: ../../mod/connedit.php:488
+#: ../../mod/connedit.php:552
msgid "Full Sharing (typical social network permissions)"
msgstr "Compartilhamento completo (permissões típicas de redes sociais)"
-#: ../../mod/connedit.php:489
+#: ../../mod/connedit.php:553
msgid "Cautious Sharing "
msgstr "Compartilhamento cauteloso"
-#: ../../mod/connedit.php:490
+#: ../../mod/connedit.php:554
msgid "Follow Only"
msgstr "Apenas seguir"
-#: ../../mod/connedit.php:491
+#: ../../mod/connedit.php:555
msgid "Individual Permissions"
msgstr "Permissões individuais"
-#: ../../mod/connedit.php:492
+#: ../../mod/connedit.php:556
msgid ""
"Some permissions may be inherited from your channel <a "
"href=\"settings\">privacy settings</a>, which have higher priority than "
@@ -5250,72 +5315,72 @@ msgid ""
"have no effect."
msgstr "Algumas permissões serão herdadas das <a href=\"settings\">configurações de privacidade</a> do seu canal, e terão prioridade sobre as configurações individuais. Modificar nesta página tais configurações herdadas não surtirá efeito algum."
-#: ../../mod/connedit.php:493
+#: ../../mod/connedit.php:557
msgid "Advanced Permissions"
msgstr "Permissões avançadas"
-#: ../../mod/connedit.php:494
+#: ../../mod/connedit.php:558
msgid "Simple Permissions (select one and submit)"
msgstr "Permissões simples (slecione uma e submeta)"
-#: ../../mod/connedit.php:498
+#: ../../mod/connedit.php:562
#, php-format
msgid "Visit %s's profile - %s"
msgstr "Ver o perfil de %s - %s"
-#: ../../mod/connedit.php:499
+#: ../../mod/connedit.php:563
msgid "Block/Unblock contact"
msgstr "Bloquear/desbloquear o contato"
-#: ../../mod/connedit.php:500
+#: ../../mod/connedit.php:564
msgid "Ignore contact"
msgstr "Ignorar o contato"
-#: ../../mod/connedit.php:501
+#: ../../mod/connedit.php:565
msgid "Repair URL settings"
msgstr "Reparar configurações de URL"
-#: ../../mod/connedit.php:502
+#: ../../mod/connedit.php:566
msgid "View conversations"
msgstr "Ver as conversas"
-#: ../../mod/connedit.php:504
+#: ../../mod/connedit.php:568
msgid "Delete contact"
msgstr "Excluir o contato"
-#: ../../mod/connedit.php:507
+#: ../../mod/connedit.php:571
msgid "Last update:"
msgstr "Última atualização:"
-#: ../../mod/connedit.php:509
+#: ../../mod/connedit.php:573
msgid "Update public posts"
msgstr "Atualizar publicações públicas"
-#: ../../mod/connedit.php:511
+#: ../../mod/connedit.php:575
msgid "Update now"
msgstr "Atualizar agora"
-#: ../../mod/connedit.php:517
+#: ../../mod/connedit.php:581
msgid "Currently blocked"
msgstr "Atualmente bloqueado"
-#: ../../mod/connedit.php:518
+#: ../../mod/connedit.php:582
msgid "Currently ignored"
msgstr "Atualmente ignorado"
-#: ../../mod/connedit.php:519
+#: ../../mod/connedit.php:583
msgid "Currently archived"
msgstr "Atualmente arquivado"
-#: ../../mod/connedit.php:520
+#: ../../mod/connedit.php:584
msgid "Currently pending"
msgstr "Atualmente pendente"
-#: ../../mod/connedit.php:521
+#: ../../mod/connedit.php:585
msgid "Hide this contact from others"
msgstr "Esconda este contato dos demais"
-#: ../../mod/connedit.php:521
+#: ../../mod/connedit.php:585
msgid ""
"Replies/likes to your public posts <strong>may</strong> still be visible"
msgstr "Respostas/reações às suas publicações públicas <strong>podem</strong> continuar visíveis."
@@ -5347,7 +5412,7 @@ msgstr "Atuais delegados da página"
msgid "Potential Delegates"
msgstr "Potenciais delegados"
-#: ../../mod/delegate.php:130 ../../mod/tagrm.php:93 ../../mod/photos.php:908
+#: ../../mod/delegate.php:130 ../../mod/photos.php:940 ../../mod/tagrm.php:93
msgid "Remove"
msgstr "Remover"
@@ -5360,8 +5425,8 @@ msgid "No entries."
msgstr "Sem entradas."
#: ../../mod/search.php:13 ../../mod/directory.php:15
-#: ../../mod/dirprofile.php:9 ../../mod/display.php:9
-#: ../../mod/viewconnections.php:17 ../../mod/photos.php:443
+#: ../../mod/dirprofile.php:9 ../../mod/display.php:9 ../../mod/photos.php:443
+#: ../../mod/viewconnections.php:17
msgid "Public access denied."
msgstr "Acesso público negado."
@@ -5369,19 +5434,19 @@ msgstr "Acesso público negado."
msgid "Gender: "
msgstr "Gênero: "
-#: ../../mod/directory.php:207
+#: ../../mod/directory.php:223
msgid "Finding:"
msgstr "Pesquisando:"
-#: ../../mod/directory.php:215
+#: ../../mod/directory.php:228
msgid "next page"
msgstr "próxima página"
-#: ../../mod/directory.php:215
+#: ../../mod/directory.php:228
msgid "previous page"
msgstr "página anterior"
-#: ../../mod/directory.php:222
+#: ../../mod/directory.php:245
msgid "No entries (some entries may be hidden)."
msgstr "Nenhuma entrada (algumas entradas podem estar escondidas)."
@@ -5413,430 +5478,6 @@ msgstr "Palavras-chave:"
msgid "This site is not a directory server"
msgstr "Este site não é um servidor de diretório"
-#: ../../mod/settings.php:71
-msgid "Name is required"
-msgstr "É necessário informar o nome"
-
-#: ../../mod/settings.php:75
-msgid "Key and Secret are required"
-msgstr "A chave e o segredo são obrigatórios"
-
-#: ../../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:443
-msgid "Settings updated."
-msgstr "As configurações foram atualizadas."
-
-#: ../../mod/settings.php:514 ../../mod/settings.php:540
-#: ../../mod/settings.php:576
-msgid "Add application"
-msgstr "Adicionar aplicação"
-
-#: ../../mod/settings.php:517
-msgid "Name of application"
-msgstr "Nome da aplicação"
-
-#: ../../mod/settings.php:518 ../../mod/settings.php:544
-msgid "Consumer Key"
-msgstr "Chave de consumidor"
-
-#: ../../mod/settings.php:518 ../../mod/settings.php:519
-msgid "Automatically generated - change if desired. Max length 20"
-msgstr "Gerado automaticamente - troque se desejável. Comprimento máximo 20"
-
-#: ../../mod/settings.php:519 ../../mod/settings.php:545
-msgid "Consumer Secret"
-msgstr "Segredo de consumidor"
-
-#: ../../mod/settings.php:520 ../../mod/settings.php:546
-msgid "Redirect"
-msgstr "Redirecionamento"
-
-#: ../../mod/settings.php:520
-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:521 ../../mod/settings.php:547
-msgid "Icon url"
-msgstr "URL do ícone"
-
-#: ../../mod/settings.php:521
-msgid "Optional"
-msgstr "Opcional"
-
-#: ../../mod/settings.php:532
-msgid "You can't edit this application."
-msgstr "Você não pode editar esta aplicação."
-
-#: ../../mod/settings.php:575
-msgid "Connected Apps"
-msgstr "Aplicações conectadas"
-
-#: ../../mod/settings.php:579
-msgid "Client key starts with"
-msgstr "Chave do cliente começa com"
-
-#: ../../mod/settings.php:580
-msgid "No name"
-msgstr "Sem nome"
-
-#: ../../mod/settings.php:581
-msgid "Remove authorization"
-msgstr "Remover autorização"
-
-#: ../../mod/settings.php:592
-msgid "No feature settings configured"
-msgstr "Não foi definida nenhuma configuração do recurso"
-
-#: ../../mod/settings.php:600
-msgid "Feature Settings"
-msgstr "Configurações do recurso"
-
-#: ../../mod/settings.php:623
-msgid "Account Settings"
-msgstr "Configurações da conta"
-
-#: ../../mod/settings.php:624
-msgid "Password Settings"
-msgstr "Configurações da senha"
-
-#: ../../mod/settings.php:625
-msgid "New Password:"
-msgstr "Nova senha:"
-
-#: ../../mod/settings.php:626
-msgid "Confirm:"
-msgstr "Confirme:"
-
-#: ../../mod/settings.php:626
-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:628 ../../mod/settings.php:935
-msgid "Email Address:"
-msgstr "Endereço de e-mail:"
-
-#: ../../mod/settings.php:629
-msgid "Remove Account"
-msgstr "Remover conta"
-
-#: ../../mod/settings.php:630
-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:646
-msgid "Off"
-msgstr "Desligado"
-
-#: ../../mod/settings.php:646
-msgid "On"
-msgstr "Ligado"
-
-#: ../../mod/settings.php:653
-msgid "Additional Features"
-msgstr "Recursos adicionais"
-
-#: ../../mod/settings.php:678
-msgid "Connector Settings"
-msgstr "Configurações do conector"
-
-#: ../../mod/settings.php:717
-#, php-format
-msgid "%s - (Experimental)"
-msgstr "%s - (Experimental)"
-
-#: ../../mod/settings.php:747
-msgid "Display Settings"
-msgstr "Configurações de exibição"
-
-#: ../../mod/settings.php:753
-msgid "Display Theme:"
-msgstr "Tema do perfil:"
-
-#: ../../mod/settings.php:754
-msgid "Mobile Theme:"
-msgstr "Tema móvel:"
-
-#: ../../mod/settings.php:755
-msgid "Update browser every xx seconds"
-msgstr "Atualizar navegador a cada xx segundos"
-
-#: ../../mod/settings.php:755
-msgid "Minimum of 10 seconds, no maximum"
-msgstr "Mínimo de 10 segundos, sem máximo"
-
-#: ../../mod/settings.php:756
-msgid "Maximum number of conversations to load at any time:"
-msgstr "Número máximo permitido de conversas carregadas:"
-
-#: ../../mod/settings.php:756
-msgid "Maximum of 100 items"
-msgstr "Máximo de 100 itens"
-
-#: ../../mod/settings.php:757
-msgid "Don't show emoticons"
-msgstr "Não exibir emoticons"
-
-#: ../../mod/settings.php:758
-msgid "System Page Layout Editor - (advanced)"
-msgstr "Editor de layout de página do sistema - (avançado)"
-
-#: ../../mod/settings.php:793
-msgid "Nobody except yourself"
-msgstr "Ninguém exceto você mesmo"
-
-#: ../../mod/settings.php:794
-msgid "Only those you specifically allow"
-msgstr "Apenas quem você der permissão"
-
-#: ../../mod/settings.php:795
-msgid "Anybody in your address book"
-msgstr "Qualquer um nos seus contatos"
-
-#: ../../mod/settings.php:796
-msgid "Anybody on this website"
-msgstr "Qualquer um neste site"
-
-#: ../../mod/settings.php:797
-msgid "Anybody in this network"
-msgstr "Qualquer um nesta rede"
-
-#: ../../mod/settings.php:798
-msgid "Anybody authenticated"
-msgstr "Qualquer um autenticado"
-
-#: ../../mod/settings.php:799
-msgid "Anybody on the internet"
-msgstr "Qualquer um na internet"
-
-#: ../../mod/settings.php:876
-msgid "Publish your default profile in the network directory"
-msgstr "Publicar seu perfil padrão no diretório da rede?"
-
-#: ../../mod/settings.php:881
-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:890
-msgid "Your channel address is"
-msgstr "O endereço do seu canal é"
-
-#: ../../mod/settings.php:924
-msgid "Channel Settings"
-msgstr "Configurações do canal"
-
-#: ../../mod/settings.php:933
-msgid "Basic Settings"
-msgstr "Configurações básicas"
-
-#: ../../mod/settings.php:936
-msgid "Your Timezone:"
-msgstr "Seu fuso horário:"
-
-#: ../../mod/settings.php:937
-msgid "Default Post Location:"
-msgstr "Localização padrão de suas publicações:"
-
-#: ../../mod/settings.php:937
-msgid "Geographical location to display on your posts"
-msgstr "Localização geográfica para exibir em suas publicações"
-
-#: ../../mod/settings.php:938
-msgid "Use Browser Location:"
-msgstr "Usar localizador do navegador:"
-
-#: ../../mod/settings.php:940
-msgid "Adult Content"
-msgstr "Conteúdo adulto"
-
-#: ../../mod/settings.php:940
-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:942
-msgid "Security and Privacy Settings"
-msgstr "Configurações de segurança e privacidade"
-
-#: ../../mod/settings.php:944
-msgid "Hide my online presence"
-msgstr "Esconda minha presença online"
-
-#: ../../mod/settings.php:944
-msgid "Prevents displaying in your profile that you are online"
-msgstr "Previne exibir em seu perfil que você está online"
-
-#: ../../mod/settings.php:946
-msgid "Simple Privacy Settings:"
-msgstr "Configurações de privacidade simples:"
-
-#: ../../mod/settings.php:947
-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:948
-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:949
-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:950
-msgid "Blocked - <em>default blocked to/from everybody</em>"
-msgstr "Bloqueado - <em>por padrão bloquado de/para todos</em>"
-
-#: ../../mod/settings.php:952
-msgid "Allow others to tag your posts"
-msgstr "Permitir que outros etiquetem suas publicações"
-
-#: ../../mod/settings.php:952
-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:954
-msgid "Advanced Privacy Settings"
-msgstr "Configurações de privacidade avançadas"
-
-#: ../../mod/settings.php:956
-msgid "Expire other channel content after this many days"
-msgstr "Expirar outros conteúdos do canal após este número de dias"
-
-#: ../../mod/settings.php:956
-msgid "0 or blank prevents expiration"
-msgstr "0 ou em branco previne expiração"
-
-#: ../../mod/settings.php:957
-msgid "Maximum Friend Requests/Day:"
-msgstr "Número máximo de requisições de amizade por dia:"
-
-#: ../../mod/settings.php:957
-msgid "May reduce spam activity"
-msgstr "Pode reduzir a frequência de spam"
-
-#: ../../mod/settings.php:958
-msgid "Default Post Permissions"
-msgstr "Permissões padrão de publicação"
-
-#: ../../mod/settings.php:970
-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:970
-msgid "Useful to reduce spamming"
-msgstr "Útil para reduzir a frequência de spam"
-
-#: ../../mod/settings.php:973
-msgid "Notification Settings"
-msgstr "Configurações de notificação"
-
-#: ../../mod/settings.php:974
-msgid "By default post a status message when:"
-msgstr "Por padrão, publicar uma mensagem de status quando:"
-
-#: ../../mod/settings.php:975
-msgid "accepting a friend request"
-msgstr "aceitar um pedido de amizade"
-
-#: ../../mod/settings.php:976
-msgid "joining a forum/community"
-msgstr "associar-se a um fórum/comunidade"
-
-#: ../../mod/settings.php:977
-msgid "making an <em>interesting</em> profile change"
-msgstr "modificar algo <em>interessante</em> em seu perfil"
-
-#: ../../mod/settings.php:978
-msgid "Send a notification email when:"
-msgstr "Enviar um e-mail de notificação quando:"
-
-#: ../../mod/settings.php:979
-msgid "You receive a connection request"
-msgstr "Você recebe uma solicitação de conexão"
-
-#: ../../mod/settings.php:980
-msgid "Your connections are confirmed"
-msgstr "Suas conexões são confirmadas"
-
-#: ../../mod/settings.php:981
-msgid "Someone writes on your profile wall"
-msgstr "Alguém escrever no mural do seu perfil"
-
-#: ../../mod/settings.php:982
-msgid "Someone writes a followup comment"
-msgstr "Alguém comenta uma publicação"
-
-#: ../../mod/settings.php:983
-msgid "You receive a private message"
-msgstr "Você recebeu uma mensagem privada"
-
-#: ../../mod/settings.php:984
-msgid "You receive a friend suggestion"
-msgstr "Você recebe uma sugestão de amizade"
-
-#: ../../mod/settings.php:985
-msgid "You are tagged in a post"
-msgstr "Você é mencionado num post"
-
-#: ../../mod/settings.php:986
-msgid "You are poked/prodded/etc. in a post"
-msgstr "Você foi cutucado/espetado/etc. numa publicação"
-
-#: ../../mod/settings.php:989
-msgid "Advanced Account/Page Type Settings"
-msgstr "Configurações avançadas de conta/tipo de página"
-
-#: ../../mod/settings.php:990
-msgid "Change the behaviour of this account for special situations"
-msgstr "Mudar o comportamento dessa conta em situações especiais"
-
-#: ../../mod/settings.php:993
-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:994
-msgid "Miscellaneous Settings"
-msgstr "Configurações miscelâneas"
-
-#: ../../mod/settings.php:996
-msgid "Personal menu to display in your channel pages"
-msgstr "Menu pessoal para exibir nas páginas dos seus canais"
-
#: ../../mod/setup.php:162
msgid "Red Matrix Server - Setup"
msgstr "Servidor Red Matrix - Configuração"
@@ -5873,7 +5514,7 @@ msgstr "Por favor, veja o arquivo \"install/INSTALL.txt\"."
msgid "System check"
msgstr "Checagem do sistema"
-#: ../../mod/setup.php:261 ../../mod/events.php:380
+#: ../../mod/setup.php:261 ../../mod/events.php:439
msgid "Next"
msgstr "Próximo"
@@ -6114,11 +5755,11 @@ msgid ""
msgstr "Red usa o engine de template Smarty3 para renderizar suas telas. Smarty3 compila templates para PHP para acelerar a renderização."
#: ../../mod/setup.php:517
+#, php-format
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 "Para guardar os templates compilados, o servidor web necessita de permissão de escrita no diretório view/tpl/smarty3/ dentro do diretório raiz da Red."
+"write access to the directory %s under the Red top level folder."
+msgstr "Para guardar os templates compilados, o servidor web necessita de permissão de escrita no diretório %s no diretório raiz da Red."
#: ../../mod/setup.php:518 ../../mod/setup.php:536
msgid ""
@@ -6127,14 +5768,16 @@ msgid ""
msgstr "Por favor, certifique-se de que o usuário sob o qual o servidor web roda (ex: www-data) tenha permissão de escrita nesse diretório."
#: ../../mod/setup.php:519
+#, php-format
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 "Nota: como uma medida de segurança, você deve fornecer ao servidor web permissão de escrita somente em view/tpl/smarty3/ e não aos arquivos de template (.tpl) que ele contém."
+"%s only--not the template files (.tpl) that it contains."
+msgstr "Nota: como uma medida de segurança, você deve fornecer ao servidor web permissão de escrita somente em %s e não aos arquivos de template (.tpl) que ele contém."
#: ../../mod/setup.php:522
-msgid "view/tpl/smarty3 is writable"
-msgstr "view/tpl/smarty3 tem permissão de escrita"
+#, php-format
+msgid "%s is writable"
+msgstr "%s tem permissão de escrita"
#: ../../mod/setup.php:535
msgid ""
@@ -6167,7 +5810,7 @@ msgstr "Essa restrição é incorporada porque publicações públicas suas pode
#: ../../mod/setup.php:572
msgid ""
-"If your certificate is not recognised, members of other sites (who may "
+"If your certificate is not recognized, members of other sites (who may "
"themselves have valid certificates) will get a warning message on their own "
"site complaining about security issues."
msgstr "Se seu certificado não for reconhecido, membros de outros sites (que podem ter certificados válidos) receberão uma mensagem de aviso nos seus próprios sites reclamando de problemas de segurança."
@@ -6299,56 +5942,213 @@ msgstr "Editar página web"
msgid "Delete webpage?"
msgstr "Deletar página web?"
-#: ../../mod/editwebpage.php:187
+#: ../../mod/editwebpage.php:186
msgid "Delete Webpage"
msgstr "Deletar página web"
-#: ../../mod/siteinfo.php:57
+#: ../../mod/photos.php:77
+msgid "Page owner information could not be retrieved."
+msgstr "As informações do dono da pagina não puderam ser obtidas."
+
+#: ../../mod/photos.php:97
+msgid "Album not found."
+msgstr "O álbum não foi encontrado."
+
+#: ../../mod/photos.php:119 ../../mod/photos.php:676
+msgid "Delete Album"
+msgstr "Excluir o álbum"
+
+#: ../../mod/photos.php:159 ../../mod/photos.php:991
+msgid "Delete Photo"
+msgstr "Excluir a foto"
+
+#: ../../mod/photos.php:453
+msgid "No photos selected"
+msgstr "Não foi selecionada nenhuma foto"
+
+#: ../../mod/photos.php:500
+msgid "Access to this item is restricted."
+msgstr "O acesso a este item está restrito."
+
+#: ../../mod/photos.php:574
#, php-format
-msgid "Version %s"
-msgstr "Versão %s"
+msgid "You have used %1$.2f Mbytes of %2$.2f Mbytes photo storage."
+msgstr "Você usou %1$.2f Mbytes de %2$.2f Mbytes de armazenamento de fotos."
-#: ../../mod/siteinfo.php:76
-msgid "Installed plugins/addons/apps:"
-msgstr "Plugins/complementos/aplicações instalados:"
+#: ../../mod/photos.php:577
+#, php-format
+msgid "You have used %1$.2f Mbytes of photo storage."
+msgstr "Você usou %1$.2f Mbytes de armazenamento de fotos."
-#: ../../mod/siteinfo.php:89
-msgid "No installed plugins/addons/apps"
-msgstr "Nenhum plugin/complemento/aplicação instalado"
+#: ../../mod/photos.php:596
+msgid "Upload Photos"
+msgstr "Enviar fotos"
-#: ../../mod/siteinfo.php:97
-msgid "Red"
-msgstr "Red"
+#: ../../mod/photos.php:600 ../../mod/photos.php:671
+msgid "New album name: "
+msgstr "Novo nome de álbum: "
-#: ../../mod/siteinfo.php:98
-msgid ""
-"This is a hub of the Red Matrix - a global cooperative network of "
-"decentralised privacy enhanced websites."
-msgstr "Este é um hub da Red Matrix - uma rede global cooperativa de websites descentralizados com privacidade aprimorada."
+#: ../../mod/photos.php:601
+msgid "or existing album name: "
+msgstr "ou nome de um álbum já existente: "
-#: ../../mod/siteinfo.php:101
-msgid "Running at web location"
-msgstr "Sendo executado no endereço web"
+#: ../../mod/photos.php:602
+msgid "Do not show a status post for this upload"
+msgstr "Não exibir uma publicação de status para este carregamento"
+
+#: ../../mod/photos.php:622
+msgid "Album name could not be decoded"
+msgstr "Não foi possível decodificar o nome do álbum"
+
+#: ../../mod/photos.php:660 ../../mod/photos.php:682 ../../mod/photos.php:1163
+#: ../../mod/photos.php:1178
+msgid "Contact Photos"
+msgstr "Fotos dos contatos"
+
+#: ../../mod/photos.php:684
+msgid "Edit Album"
+msgstr "Editar o álbum"
+
+#: ../../mod/photos.php:690
+msgid "Show Newest First"
+msgstr "Exibir primeiro os mais recentes"
+
+#: ../../mod/photos.php:692
+msgid "Show Oldest First"
+msgstr "Exibir primeiro os mais antigos"
+
+#: ../../mod/photos.php:745 ../../mod/photos.php:1210
+msgid "View Photo"
+msgstr "Ver a foto"
+
+#: ../../mod/photos.php:810
+msgid "Permission denied. Access to this item may be restricted."
+msgstr "Permissão negada. Acesso a este item pode estar restrito."
+
+#: ../../mod/photos.php:812
+msgid "Photo not available"
+msgstr "A foto não está disponível"
+
+#: ../../mod/photos.php:872
+msgid "Use as profile photo"
+msgstr "Usar como uma foto de perfil"
+
+#: ../../mod/photos.php:896
+msgid "View Full Size"
+msgstr "Ver no tamanho real"
+
+#: ../../mod/photos.php:974
+msgid "Edit photo"
+msgstr "Editar a foto"
+
+#: ../../mod/photos.php:976
+msgid "Rotate CW (right)"
+msgstr "Rotacionar H (horário)"
+
+#: ../../mod/photos.php:977
+msgid "Rotate CCW (left)"
+msgstr "Rotacionar AH (anti-horário)"
+
+#: ../../mod/photos.php:980
+msgid "New album name"
+msgstr "Novo nome para o álbum"
-#: ../../mod/siteinfo.php:102
+#: ../../mod/photos.php:983
+msgid "Caption"
+msgstr "Legenda"
+
+#: ../../mod/photos.php:985
+msgid "Add a Tag"
+msgstr "Adicionar uma etiqueta"
+
+#: ../../mod/photos.php:988
msgid ""
-"Please visit <a href=\"http://getzot.com\">GetZot.com</a> to learn more "
-"about the Red Matrix."
-msgstr "Para aprender mais sobre a Red Matrix, visite <a href=\"http://getzot.com\">GetZot.com</a>."
+"Example: @bob, @Barbara_Jensen, @jim@example.com, #California, #camping"
+msgstr "Por exemplo: @joao, @Joao_da_Silva, @joao@exemplo.com, #Minas_Gerais, #acampamento"
-#: ../../mod/siteinfo.php:103
-msgid "Bug reports and issues: please visit"
-msgstr "Relatos e acompanhamentos de erros podem ser encontrados em"
+#: ../../mod/photos.php:1141
+msgid "In This Photo:"
+msgstr "Nesta foto:"
+
+#: ../../mod/photos.php:1216
+msgid "View Album"
+msgstr "Ver álbum"
+
+#: ../../mod/photos.php:1239
+msgid "Recent Photos"
+msgstr "Fotos recentes"
+
+#: ../../mod/profile_photo.php:108
+msgid "Image uploaded but image cropping failed."
+msgstr "A imagem foi enviada, mas não foi possível cortá-la."
+
+#: ../../mod/profile_photo.php:161
+msgid "Image resize failed."
+msgstr "Falha ao modificar o tamanho da imagem."
-#: ../../mod/siteinfo.php:106
+#: ../../mod/profile_photo.php:205
msgid ""
-"Suggestions, praise, etc. - please email \"redmatrix\" at librelist - dot "
-"com"
-msgstr "Sugestões, elogios, etc - mande um e-mail para \"redmatrix\" arrôba librelist ponto com"
+"Shift-reload the page or clear browser cache if the new photo does not "
+"display immediately."
+msgstr "Se a nova foto não aparecer imediatamente, recarregue a página segurando a tecla \"shift\" ou limpe o cache do navegador, "
-#: ../../mod/siteinfo.php:108
-msgid "Site Administrators"
-msgstr "Administradores do site"
+#: ../../mod/profile_photo.php:232
+#, php-format
+msgid "Image exceeds size limit of %d"
+msgstr "A imagem excede o limite de tamanho de %d"
+
+#: ../../mod/profile_photo.php:241
+msgid "Unable to process image."
+msgstr "Não foi possível processar a imagem."
+
+#: ../../mod/profile_photo.php:290 ../../mod/profile_photo.php:339
+msgid "Photo not available."
+msgstr "A foto não está disponível."
+
+#: ../../mod/profile_photo.php:358
+msgid "Upload File:"
+msgstr "Enviar arquivo:"
+
+#: ../../mod/profile_photo.php:359
+msgid "Select a profile:"
+msgstr "Selecione um perfil:"
+
+#: ../../mod/profile_photo.php:360
+msgid "Upload Profile Photo"
+msgstr "Enviar foto do perfil"
+
+#: ../../mod/profile_photo.php:365
+msgid "skip this step"
+msgstr "pule esta etapa"
+
+#: ../../mod/profile_photo.php:365
+msgid "select a photo from your photo albums"
+msgstr "selecione uma foto do seu álbum de fotos"
+
+#: ../../mod/profile_photo.php:381
+msgid "Crop Image"
+msgstr "Cortar a imagem"
+
+#: ../../mod/profile_photo.php:382
+msgid "Please adjust the image cropping for optimum viewing."
+msgstr "Por favor, ajuste o corte da imagem para a melhor visualização."
+
+#: ../../mod/profile_photo.php:384
+msgid "Done Editing"
+msgstr "Encerrar a edição"
+
+#: ../../mod/profile_photo.php:427
+msgid "Image uploaded successfully."
+msgstr "A imagem foi enviada com sucesso."
+
+#: ../../mod/profile_photo.php:429
+msgid "Image upload failed."
+msgstr "Não foi possível enviar a imagem."
+
+#: ../../mod/profile_photo.php:438
+#, php-format
+msgid "Image size reduction [%s] failed."
+msgstr "Não foi possível reduzir o tamanho da imagem [%s]."
#: ../../mod/sources.php:32
msgid "Failed to create source. No channel selected."
@@ -6389,7 +6189,7 @@ msgid "Leave blank to import all public content"
msgstr "Deixe em branco para importar todo o conteúdo público"
#: ../../mod/sources.php:103 ../../mod/sources.php:137
-#: ../../mod/new_channel.php:110
+#: ../../mod/new_channel.php:112
msgid "Channel Name"
msgstr "Nome do canal"
@@ -6417,69 +6217,77 @@ msgstr "Não foi possível remover a fonte."
msgid "- select -"
msgstr "- selecionar -"
-#: ../../mod/events.php:72
+#: ../../mod/events.php:91
msgid "Event title and start time are required."
msgstr "O título do evento e a hora de início são obrigatórios."
-#: ../../mod/events.php:310
+#: ../../mod/events.php:105
+msgid "Event not found."
+msgstr "Evento não encontrado."
+
+#: ../../mod/events.php:369
msgid "l, F j"
msgstr "l, F j"
-#: ../../mod/events.php:332
+#: ../../mod/events.php:391
msgid "Edit event"
msgstr "Editar o evento"
-#: ../../mod/events.php:378
+#: ../../mod/events.php:437
msgid "Create New Event"
msgstr "Criar um novo evento"
-#: ../../mod/events.php:379
+#: ../../mod/events.php:438
msgid "Previous"
msgstr "Anterior"
-#: ../../mod/events.php:450
+#: ../../mod/events.php:536
msgid "hour:minute"
msgstr "hora:minuto"
-#: ../../mod/events.php:470
+#: ../../mod/events.php:556
msgid "Event details"
msgstr "Detalhes do evento"
-#: ../../mod/events.php:471
+#: ../../mod/events.php:557
#, php-format
-msgid "Format is %s %s. Starting date and Title are required."
-msgstr "O formato é %s %s. A data de início e o título são obrigatórios."
+msgid "Format is %s %s."
+msgstr "O formato é %s %s."
+
+#: ../../mod/events.php:558
+msgid "Starting date and Title are required."
+msgstr "Data de início e título são obrigatórios."
-#: ../../mod/events.php:473
+#: ../../mod/events.php:562
msgid "Event Starts:"
msgstr "Início do evento:"
-#: ../../mod/events.php:473 ../../mod/events.php:487 ../../mod/appman.php:91
+#: ../../mod/events.php:562 ../../mod/events.php:581 ../../mod/appman.php:91
#: ../../mod/appman.php:92
msgid "Required"
msgstr "Obrigatório"
-#: ../../mod/events.php:476
+#: ../../mod/events.php:570
msgid "Finish date/time is not known or not relevant"
msgstr "A data/hora de término não é conhecida ou não é relevante"
-#: ../../mod/events.php:478
+#: ../../mod/events.php:572
msgid "Event Finishes:"
msgstr "Término do evento:"
-#: ../../mod/events.php:481
+#: ../../mod/events.php:575
msgid "Adjust for viewer timezone"
msgstr "Ajustar para o fuso horário do visualizador"
-#: ../../mod/events.php:483
+#: ../../mod/events.php:577
msgid "Description:"
msgstr "Descrição:"
-#: ../../mod/events.php:487
+#: ../../mod/events.php:581
msgid "Title:"
msgstr "Título:"
-#: ../../mod/events.php:489
+#: ../../mod/events.php:583
msgid "Share this event"
msgstr "Compartilhar este evento"
@@ -6491,46 +6299,30 @@ msgstr "Permissão negada."
msgid "File not found."
msgstr "O arquivo não foi encontrado."
-#: ../../mod/filestorage.php:121
+#: ../../mod/filestorage.php:122
msgid "Edit file permissions"
msgstr "Editar permissões do arquivo"
-#: ../../mod/filestorage.php:129
+#: ../../mod/filestorage.php:131
msgid "Set/edit permissions"
msgstr "Definir/editar permissões"
-#: ../../mod/filestorage.php:130
+#: ../../mod/filestorage.php:132
msgid "Include all files and sub folders"
msgstr "Incluir todos os arquivos e subpastas"
-#: ../../mod/filestorage.php:131
+#: ../../mod/filestorage.php:133
msgid "Return to file list"
msgstr "Retornar à lista de arquivos"
-#: ../../mod/filestorage.php:133
+#: ../../mod/filestorage.php:135
msgid "Copy/paste this code to attach file to a post"
msgstr "Copiar/colar este código para anexar um arquivo a uma publicação"
-#: ../../mod/filestorage.php:134
+#: ../../mod/filestorage.php:136
msgid "Copy/paste this URL to link file from a web page"
msgstr "Copiar/colar este URL para linkar para o arquivo em uma página web"
-#: ../../mod/filestorage.php:171
-msgid "Download"
-msgstr "Baixar"
-
-#: ../../mod/filestorage.php:177
-msgid "Used: "
-msgstr "Utilizado:"
-
-#: ../../mod/filestorage.php:178
-msgid "[directory]"
-msgstr "[diretório]"
-
-#: ../../mod/filestorage.php:180
-msgid "Limit: "
-msgstr "Limite:"
-
#: ../../mod/follow.php:25
msgid "Channel added."
msgstr "Canal adicionado."
@@ -6607,7 +6399,7 @@ msgstr "Membros"
msgid "All Connected Channels"
msgstr "Todas os canais conectados"
-#: ../../mod/group.php:231
+#: ../../mod/group.php:233
msgid "Click on a channel to add or remove."
msgstr "Clique em um canal para adicionar ou remover."
@@ -6620,7 +6412,7 @@ msgstr "%1$s marcou %3$s de %2$s com %4$s"
msgid "Help:"
msgstr "Ajuda:"
-#: ../../mod/help.php:69 ../../index.php:233
+#: ../../mod/help.php:69 ../../index.php:237
msgid "Not Found"
msgstr "Não encontrada"
@@ -6636,110 +6428,750 @@ msgstr "Remover a etiqueta de item"
msgid "Select a tag to remove: "
msgstr "Selecione uma etiqueta para remover: "
-#: ../../mod/home.php:91
+#: ../../mod/admin.php:52
+msgid "Theme settings updated."
+msgstr "As configurações de tema foram atualizadas."
+
+#: ../../mod/admin.php:97 ../../mod/admin.php:413
+msgid "Site"
+msgstr "Site"
+
+#: ../../mod/admin.php:98
+msgid "Accounts"
+msgstr "Contas"
+
+#: ../../mod/admin.php:99 ../../mod/admin.php:860
+msgid "Channels"
+msgstr "Canais"
+
+#: ../../mod/admin.php:100 ../../mod/admin.php:951 ../../mod/admin.php:993
+msgid "Plugins"
+msgstr "Plugins"
+
+#: ../../mod/admin.php:101 ../../mod/admin.php:1156 ../../mod/admin.php:1192
+msgid "Themes"
+msgstr "Temas"
+
+#: ../../mod/admin.php:102 ../../mod/admin.php:515
+msgid "Server"
+msgstr "Servidor"
+
+#: ../../mod/admin.php:103
+msgid "Profile Config"
+msgstr "Configuração de perfis"
+
+#: ../../mod/admin.php:104
+msgid "DB updates"
+msgstr "Atualizações do Banco de Dados"
+
+#: ../../mod/admin.php:118 ../../mod/admin.php:125 ../../mod/admin.php:1279
+msgid "Logs"
+msgstr "Logs"
+
+#: ../../mod/admin.php:124
+msgid "Plugin Features"
+msgstr "Recursos dos plugins"
+
+#: ../../mod/admin.php:126
+msgid "User registrations waiting for confirmation"
+msgstr "Registros de usuário aguardando confirmação"
+
+#: ../../mod/admin.php:206
+msgid "Message queues"
+msgstr "Filas de mensagem"
+
+#: ../../mod/admin.php:211 ../../mod/admin.php:412 ../../mod/admin.php:514
+#: ../../mod/admin.php:723 ../../mod/admin.php:859 ../../mod/admin.php:950
+#: ../../mod/admin.php:992 ../../mod/admin.php:1155 ../../mod/admin.php:1191
+#: ../../mod/admin.php:1278
+msgid "Administration"
+msgstr "Administração"
+
+#: ../../mod/admin.php:212
+msgid "Summary"
+msgstr "Resumo"
+
+#: ../../mod/admin.php:214
+msgid "Registered users"
+msgstr "Usuários registrados"
+
+#: ../../mod/admin.php:216 ../../mod/admin.php:518
+msgid "Pending registrations"
+msgstr "Registros pendentes"
+
+#: ../../mod/admin.php:217
+msgid "Version"
+msgstr "Versão"
+
+#: ../../mod/admin.php:219 ../../mod/admin.php:519
+msgid "Active plugins"
+msgstr "Plugins ativos"
+
+#: ../../mod/admin.php:333
+msgid "Site settings updated."
+msgstr "As configurações de site foram atualizadas."
+
+#: ../../mod/admin.php:364
+msgid "No special theme for accessibility"
+msgstr "Sem tema especial para acessibilidade"
+
+#: ../../mod/admin.php:393
+msgid "Yes - with approval"
+msgstr "Sim - pendente aprovação"
+
+#: ../../mod/admin.php:399
+msgid "My site is not a public server"
+msgstr "Meu site não é um servidor público"
+
+#: ../../mod/admin.php:400
+msgid "My site has paid access only"
+msgstr "Meu site oferece somente acesso pago"
+
+#: ../../mod/admin.php:401
+msgid "My site has free access only"
+msgstr "Meu site oferece somente acesso gratuito"
+
+#: ../../mod/admin.php:402
+msgid "My site offers free accounts with optional paid upgrades"
+msgstr "Meu site oferece contas gratuitas com recursos adicionais pagos"
+
+#: ../../mod/admin.php:416
+msgid "File upload"
+msgstr "Carregamento de arquivos"
+
+#: ../../mod/admin.php:417
+msgid "Policies"
+msgstr "Políticas"
+
+#: ../../mod/admin.php:422
+msgid "Site name"
+msgstr "Nome do site"
+
+#: ../../mod/admin.php:423
+msgid "Banner/Logo"
+msgstr "Cartaz/Logo"
+
+#: ../../mod/admin.php:424
+msgid "Administrator Information"
+msgstr "Informações do Administrador"
+
+#: ../../mod/admin.php:424
+msgid ""
+"Contact information for site administrators. Displayed on siteinfo page. "
+"BBCode can be used here"
+msgstr "Informações de contato com administradores do site. Exibida na página siteinfo. BBCode pode ser usado aqui."
+
+#: ../../mod/admin.php:425
+msgid "System language"
+msgstr "Idioma do sistema"
+
+#: ../../mod/admin.php:426
+msgid "System theme"
+msgstr "Tema do sistema"
+
+#: ../../mod/admin.php:426
+msgid ""
+"Default system theme - may be over-ridden by user profiles - <a href='#' "
+"id='cnftheme'>change theme settings</a>"
+msgstr "Tema padrão do sistema - pode ser sobrescrito por perfis de usuário - <a href='#' id='cnftheme'>mudar configurações do tema</a>"
+
+#: ../../mod/admin.php:427
+msgid "Mobile system theme"
+msgstr "Tema do sistema móvel"
+
+#: ../../mod/admin.php:427
+msgid "Theme for mobile devices"
+msgstr "Tema para dispositivos móveis"
+
+#: ../../mod/admin.php:428
+msgid "Accessibility system theme"
+msgstr "Tema do sistema acessível"
+
+#: ../../mod/admin.php:428
+msgid "Accessibility theme"
+msgstr "Tema acessível"
+
+#: ../../mod/admin.php:430
+msgid "Enable Diaspora Protocol"
+msgstr "Habilitar protocolo Diaspora"
+
+#: ../../mod/admin.php:430
+msgid "Communicate with Diaspora and Friendica - experimental"
+msgstr "Comunicar com Diaspora e Friendica - experimental"
+
+#: ../../mod/admin.php:431
+msgid "Allow Feeds as Connections"
+msgstr "Permitir Feeds como conexões"
+
+#: ../../mod/admin.php:431
+msgid "(Heavy system resource usage)"
+msgstr "(Alto uso de recursos do sistema)"
+
+#: ../../mod/admin.php:432
+msgid "Maximum image size"
+msgstr "Tamanho máximo de imagens"
+
+#: ../../mod/admin.php:432
+msgid ""
+"Maximum size in bytes of uploaded images. Default is 0, which means no "
+"limits."
+msgstr "Tamanho máximo em bytes de imagens carregadas. O padrão é 0, significando sem limites."
+
+#: ../../mod/admin.php:433
+msgid "Does this site allow new member registration?"
+msgstr "Este site permite o registro de novos membros?"
+
+#: ../../mod/admin.php:434
+msgid "Which best describes the types of account offered by this hub?"
+msgstr "Qual descreve melhor os tipos de conta oferecidas por este hub?"
+
+#: ../../mod/admin.php:435
+msgid "Register text"
+msgstr "Texto de registro"
+
+#: ../../mod/admin.php:435
+msgid "Will be displayed prominently on the registration page."
+msgstr "Será exibido proeminentemente na página de registro."
+
+#: ../../mod/admin.php:436
+msgid "Accounts abandoned after x days"
+msgstr "Contas abandonadas após x dias"
+
+#: ../../mod/admin.php:436
+msgid ""
+"Will not waste system resources polling external sites for abandonded "
+"accounts. Enter 0 for no time limit."
+msgstr "Não gastará recursos do sistema coletando de sites externos para contas abandonadas. Use 0 para sem limite de tempo."
+
+#: ../../mod/admin.php:437
+msgid "Allowed friend domains"
+msgstr "Domínios permitidos para amigos"
+
+#: ../../mod/admin.php:437
+msgid ""
+"Comma separated list of domains which are allowed to establish friendships "
+"with this site. Wildcards are accepted. Empty to allow any domains"
+msgstr "Lista, separada por vírgulas, de domínios permitidos para estabelecer amizades com este site. <em>Wildcards</em> são aceitas. Vazio para permitir qualquer domínio"
+
+#: ../../mod/admin.php:438
+msgid "Allowed email domains"
+msgstr "Domínios permitidos de e-mail"
+
+#: ../../mod/admin.php:438
+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 "Lista, separada por vírgulas, de domínios permitidos em endereços de e-mail para registros nesse site. <em>Wildcards</em> são aceitas. Vazio para permitir qualquer domínio"
+
+#: ../../mod/admin.php:439
+msgid "Block public"
+msgstr "Bloquear público"
+
+#: ../../mod/admin.php:439
+msgid ""
+"Check to block public access to all otherwise public personal pages on this "
+"site unless you are currently logged in."
+msgstr "Marque para bloquear o acesso público a todas as páginas pessoais que seriam públicas, a não ser que se esteja autenticado."
+
+#: ../../mod/admin.php:440
+msgid "Verify Email Addresses"
+msgstr "Verificar endereços de email"
+
+#: ../../mod/admin.php:440
+msgid ""
+"Check to verify email addresses used in account registration (recommended)."
+msgstr "Clique para verificar endereços de email usados no registro de contas (recomendado)."
+
+#: ../../mod/admin.php:441
+msgid "Force publish"
+msgstr "Forçar publicação"
+
+#: ../../mod/admin.php:441
+msgid ""
+"Check to force all profiles on this site to be listed in the site directory."
+msgstr "Marque para forçar todos os perfis neste site a aparecerem listados no diretório do site."
+
+#: ../../mod/admin.php:442
+msgid "Disable discovery tab"
+msgstr "Desabilitar a aba \"Descubra\""
+
+#: ../../mod/admin.php:442
+msgid ""
+"Remove the tab in the network view with public content pulled from sources "
+"chosen for this site."
+msgstr "Remove da visualização de rede a aba com conteúdos públicos obtidos de fontes escolhidas para esse site."
+
+#: ../../mod/admin.php:443
+msgid "No login on Homepage"
+msgstr "Sem formulário de autenticação na página inicial"
+
+#: ../../mod/admin.php:443
+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 "Marque para esconder o formulário de autenticação da página inicial do seu site quando visitantes chegarem sem estar autenticados (e.g. quando você inclui os conteúdos da página inicial através do canal do site)."
+
+#: ../../mod/admin.php:445
+msgid "Proxy user"
+msgstr "Usuário do proxy"
+
+#: ../../mod/admin.php:446
+msgid "Proxy URL"
+msgstr "URL do proxy"
+
+#: ../../mod/admin.php:447
+msgid "Network timeout"
+msgstr "Timeout da rede"
+
+#: ../../mod/admin.php:447
+msgid "Value is in seconds. Set to 0 for unlimited (not recommended)."
+msgstr "Valor em segundos. Use 0 para ilimitado (não recomendado)."
+
+#: ../../mod/admin.php:448
+msgid "Delivery interval"
+msgstr "Intervalo de entrega"
+
+#: ../../mod/admin.php:448
+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 "Atrase os processos de entrega em segundo plano por este número de segundos para reduzir a carga do sistema. Recomendado: 4-5 para hosts compartilhados, 2-3 para servidores virtuais privados. 0-1 para grandes servidores dedicados."
+
+#: ../../mod/admin.php:449
+msgid "Poll interval"
+msgstr "Intervalo de coleta"
+
+#: ../../mod/admin.php:449
+msgid ""
+"Delay background polling processes by this many seconds to reduce system "
+"load. If 0, use delivery interval."
+msgstr "Atrase os processos de coleta em segundo plano por este número de segundos para reduzir a carga do sistema. Se 0, use o intervalo de entrega."
+
+#: ../../mod/admin.php:450
+msgid "Maximum Load Average"
+msgstr "Carga média máxima"
+
+#: ../../mod/admin.php:450
+msgid ""
+"Maximum system load before delivery and poll processes are deferred - "
+"default 50."
+msgstr "Carga máxima do sistema antes de adiar processos de entrega e coleta - padrão 50."
+
+#: ../../mod/admin.php:506
+msgid "No server found"
+msgstr "Nenhum servidor foi encontrado"
+
+#: ../../mod/admin.php:513 ../../mod/admin.php:737
+msgid "ID"
+msgstr "ID"
+
+#: ../../mod/admin.php:513
+msgid "for channel"
+msgstr "para o canal"
+
+#: ../../mod/admin.php:513
+msgid "on server"
+msgstr "no servidor"
+
+#: ../../mod/admin.php:513
+msgid "Status"
+msgstr "Status"
+
+#: ../../mod/admin.php:534
+msgid "Update has been marked successful"
+msgstr "A atualização foi designada bem sucedida"
+
+#: ../../mod/admin.php:544
#, php-format
-msgid "Welcome to %s"
-msgstr "Bem-vindo(a) a %s"
+msgid "Executing %s failed. Check system logs."
+msgstr "Execução de %s falhou. Verifique os logs do sistema."
+
+#: ../../mod/admin.php:547
+#, php-format
+msgid "Update %s was successfully applied."
+msgstr "A atualização %s foi aplicada com sucesso."
+
+#: ../../mod/admin.php:551
+#, php-format
+msgid "Update %s did not return a status. Unknown if it succeeded."
+msgstr "A atualização %s não retornou um status. Situação incerta quando ao seu sucesso."
+
+#: ../../mod/admin.php:554
+#, php-format
+msgid "Update function %s could not be found."
+msgstr "A função de atualização %s não foi encontrada."
+
+#: ../../mod/admin.php:569
+msgid "No failed updates."
+msgstr "Nenhuma falha nas atualizações."
+
+#: ../../mod/admin.php:573
+msgid "Failed Updates"
+msgstr "Falha nas atualizações"
+
+#: ../../mod/admin.php:575
+msgid "Mark success (if update was manually applied)"
+msgstr "Marque sucesso (se a atualização foi aplicada manualmente)"
+
+#: ../../mod/admin.php:576
+msgid "Attempt to execute this update step automatically"
+msgstr "Tente executar este passo da atualização automaticamente"
+
+#: ../../mod/admin.php:602
+#, php-format
+msgid "%s user blocked/unblocked"
+msgid_plural "%s users blocked/unblocked"
+msgstr[0] "%s usuário foi bloqueado/desbloqueado"
+msgstr[1] "%s usuários foram bloqueados/desbloqueados"
+
+#: ../../mod/admin.php:609
+#, php-format
+msgid "%s user deleted"
+msgid_plural "%s users deleted"
+msgstr[0] "%s usuário foi deletado"
+msgstr[1] "%s usuários foram deletados"
+
+#: ../../mod/admin.php:638
+msgid "Account not found"
+msgstr "A conta não foi encontrada"
+
+#: ../../mod/admin.php:658
+#, php-format
+msgid "User '%s' unblocked"
+msgstr "O usuário/a '%s' foi desbloqueado/a"
+
+#: ../../mod/admin.php:658
+#, php-format
+msgid "User '%s' blocked"
+msgstr "O usuário/a '%s' foi bloqueado/a"
+
+#: ../../mod/admin.php:724 ../../mod/admin.php:736
+msgid "Users"
+msgstr "Usuários"
+
+#: ../../mod/admin.php:726 ../../mod/admin.php:862
+msgid "select all"
+msgstr "selecionar tudo"
+
+#: ../../mod/admin.php:727
+msgid "User registrations waiting for confirm"
+msgstr "Registros de usuário aguardando confirmação"
+
+#: ../../mod/admin.php:728
+msgid "Request date"
+msgstr "Data de requisição"
+
+#: ../../mod/admin.php:729
+msgid "No registrations."
+msgstr "Nenhum registro."
+
+#: ../../mod/admin.php:730
+msgid "Approve"
+msgstr "Aprovar"
+
+#: ../../mod/admin.php:731
+msgid "Deny"
+msgstr "Negar"
+
+#: ../../mod/admin.php:737
+msgid "Register date"
+msgstr "Data de registro"
+
+#: ../../mod/admin.php:737
+msgid "Last login"
+msgstr "Última autenticação"
+
+#: ../../mod/admin.php:737
+msgid "Expires"
+msgstr "Expira"
+
+#: ../../mod/admin.php:737
+msgid "Service Class"
+msgstr "Classe de serviço"
+
+#: ../../mod/admin.php:739
+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:740
+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:773
+#, php-format
+msgid "%s channel censored/uncensored"
+msgid_plural "%s channels censored/uncensored"
+msgstr[0] "%s canal censurado/descensurado"
+msgstr[1] "%s canais censurados/descensurados"
+
+#: ../../mod/admin.php:780
+#, php-format
+msgid "%s channel deleted"
+msgid_plural "%s channels deleted"
+msgstr[0] "%s canal deletado"
+msgstr[1] "%s canais deletados"
+
+#: ../../mod/admin.php:799
+msgid "Channel not found"
+msgstr "Canal não encontrado"
+
+#: ../../mod/admin.php:810
+#, php-format
+msgid "Channel '%s' deleted"
+msgstr "Canal '%s' deletado"
+
+#: ../../mod/admin.php:821
+#, php-format
+msgid "Channel '%s' uncensored"
+msgstr "Canal '%s' não censurado"
+
+#: ../../mod/admin.php:821
+#, php-format
+msgid "Channel '%s' censored"
+msgstr "Canal '%s' censurado"
+
+#: ../../mod/admin.php:864
+msgid "Censor"
+msgstr "Censurar"
+
+#: ../../mod/admin.php:865
+msgid "Uncensor"
+msgstr "Não censurar"
+
+#: ../../mod/admin.php:868
+msgid "UID"
+msgstr "UID"
+
+#: ../../mod/admin.php:870
+msgid ""
+"Selected channels will be deleted!\\n\\nEverything that was posted in these "
+"channels on this site will be permanently deleted!\\n\\nAre you sure?"
+msgstr "Os canais selecionados serão deletados!\\n\\nTudo que foi postado nesses canais nesse site será permanentemente deletado!\\n\\nVocê tem certeza?"
+
+#: ../../mod/admin.php:871
+msgid ""
+"The channel {0} will be deleted!\\n\\nEverything that was posted in this "
+"channel on this site will be permanently deleted!\\n\\nAre you sure?"
+msgstr "O canal {0} será deletado!\\n\\nTudo o que foi postado nesse canal nesse site será permanentemente deletado!\\n\\nVocê tem certeza?"
+
+#: ../../mod/admin.php:910
+#, php-format
+msgid "Plugin %s disabled."
+msgstr "Plugin %s desabilitado."
+
+#: ../../mod/admin.php:914
+#, php-format
+msgid "Plugin %s enabled."
+msgstr "Plugin %s habilitado."
+
+#: ../../mod/admin.php:924 ../../mod/admin.php:1126
+msgid "Disable"
+msgstr "Desabilitar"
-#: ../../mod/thing.php:98
+#: ../../mod/admin.php:926 ../../mod/admin.php:1128
+msgid "Enable"
+msgstr "Habilitar"
+
+#: ../../mod/admin.php:952 ../../mod/admin.php:1157
+msgid "Toggle"
+msgstr "Alternar"
+
+#: ../../mod/admin.php:960 ../../mod/admin.php:1167
+msgid "Author: "
+msgstr "Autor:"
+
+#: ../../mod/admin.php:961 ../../mod/admin.php:1168
+msgid "Maintainer: "
+msgstr "Mantenedor:"
+
+#: ../../mod/admin.php:1090
+msgid "No themes found."
+msgstr "Nenhum tema foi encontrado."
+
+#: ../../mod/admin.php:1149
+msgid "Screenshot"
+msgstr "Captura de tela"
+
+#: ../../mod/admin.php:1197
+msgid "[Experimental]"
+msgstr "[Experimental]"
+
+#: ../../mod/admin.php:1198
+msgid "[Unsupported]"
+msgstr "[Desassistido]"
+
+#: ../../mod/admin.php:1225
+msgid "Log settings updated."
+msgstr "As configurações de log foram atualizadas."
+
+#: ../../mod/admin.php:1281
+msgid "Clear"
+msgstr "Limpar"
+
+#: ../../mod/admin.php:1287
+msgid "Debugging"
+msgstr "Depuração"
+
+#: ../../mod/admin.php:1288
+msgid "Log file"
+msgstr "Arquivo de log"
+
+#: ../../mod/admin.php:1288
+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:1289
+msgid "Log level"
+msgstr "Nível do log"
+
+#: ../../mod/admin.php:1336
+msgid "New Profile Field"
+msgstr "Novo campo de perfil"
+
+#: ../../mod/admin.php:1337 ../../mod/admin.php:1358
+msgid "Field nickname"
+msgstr "Nome de apresentação do campo"
+
+#: ../../mod/admin.php:1337 ../../mod/admin.php:1358
+msgid "System name of field"
+msgstr "Nome de sistema do campo"
+
+#: ../../mod/admin.php:1338 ../../mod/admin.php:1359
+msgid "Input type"
+msgstr "Tipo de entrada"
+
+#: ../../mod/admin.php:1339 ../../mod/admin.php:1360
+msgid "Field Name"
+msgstr "Nome do campo"
+
+#: ../../mod/admin.php:1339 ../../mod/admin.php:1360
+msgid "Label on profile pages"
+msgstr "Rótulo nas páginas de perfil"
+
+#: ../../mod/admin.php:1340 ../../mod/admin.php:1361
+msgid "Help text"
+msgstr "Texto de ajuda"
+
+#: ../../mod/admin.php:1340 ../../mod/admin.php:1361
+msgid "Additional info (optional)"
+msgstr "Informações adicionais (opcional)"
+
+#: ../../mod/admin.php:1351
+msgid "Field definition not found"
+msgstr "A dfinição de campo não foi encontrada"
+
+#: ../../mod/admin.php:1357
+msgid "Edit Profile Field"
+msgstr "Editar campo de perfil"
+
+#: ../../mod/thing.php:96
msgid "Thing updated"
msgstr "A coisa foi atualizada"
-#: ../../mod/thing.php:158
+#: ../../mod/thing.php:156
msgid "Object store: failed"
msgstr "Armazenamento do objeto: falhou"
-#: ../../mod/thing.php:162
+#: ../../mod/thing.php:160
msgid "Thing added"
msgstr "A coisa foi adicionada"
-#: ../../mod/thing.php:182
+#: ../../mod/thing.php:180
#, php-format
msgid "OBJ: %1$s %2$s %3$s"
msgstr "OBJ: %1$s %2$s %3$s"
-#: ../../mod/thing.php:234
+#: ../../mod/thing.php:232
msgid "Show Thing"
msgstr "Exibir coisa"
-#: ../../mod/thing.php:241
+#: ../../mod/thing.php:239
msgid "item not found."
msgstr "o item não foi encontrado"
-#: ../../mod/thing.php:269
+#: ../../mod/thing.php:270
msgid "Edit Thing"
msgstr "Editar coisa"
-#: ../../mod/thing.php:271 ../../mod/thing.php:318
+#: ../../mod/thing.php:272 ../../mod/thing.php:319
msgid "Select a profile"
msgstr "Selecione um perfil"
-#: ../../mod/thing.php:273 ../../mod/thing.php:320
-msgid "Select a category of stuff. e.g. I ______ something"
-msgstr "Escolha uma categoria de coisas. e.g. Eu ______ algo"
-
-#: ../../mod/thing.php:275 ../../mod/thing.php:321
+#: ../../mod/thing.php:276 ../../mod/thing.php:322
msgid "Post an activity"
msgstr "Publique uma atividade"
-#: ../../mod/thing.php:275 ../../mod/thing.php:321
+#: ../../mod/thing.php:276 ../../mod/thing.php:322
msgid "Only sends to viewers of the applicable profile"
msgstr "Envia apenas para a audiência do perfil aplicável"
-#: ../../mod/thing.php:277 ../../mod/thing.php:323
+#: ../../mod/thing.php:278 ../../mod/thing.php:324
msgid "Name of thing e.g. something"
msgstr "Nome da coisa e.g. coisinha"
-#: ../../mod/thing.php:279 ../../mod/thing.php:324
+#: ../../mod/thing.php:280 ../../mod/thing.php:325
msgid "URL of thing (optional)"
msgstr "URL da coisa (opcional)"
-#: ../../mod/thing.php:281 ../../mod/thing.php:325
+#: ../../mod/thing.php:282 ../../mod/thing.php:326
msgid "URL for photo of thing (optional)"
msgstr "URL para foto da coisa (opcional)"
-#: ../../mod/thing.php:316
+#: ../../mod/thing.php:317
msgid "Add Thing to your Profile"
msgstr "Adicionar a coisa ao seu perfil"
-#: ../../mod/import.php:36
+#: ../../mod/import.php:25
+#, php-format
+msgid "Your service plan only allows %d channels."
+msgstr "Seu plano de serviço permite apenas %d canais."
+
+#: ../../mod/import.php:51
msgid "Nothing to import."
msgstr "Nada a importar."
-#: ../../mod/import.php:58
+#: ../../mod/import.php:75
msgid "Unable to download data from old server"
msgstr "Não foi possível descarregar os dados do servidor antigo"
-#: ../../mod/import.php:64
+#: ../../mod/import.php:81
msgid "Imported file is empty."
msgstr "O arquivo importado está vazio."
-#: ../../mod/import.php:88
+#: ../../mod/import.php:105
msgid ""
"Cannot create a duplicate channel identifier on this system. Import failed."
msgstr "Não foi possível criar um identificador de canal duplicado neste sistema. A importação falhou."
-#: ../../mod/import.php:106
+#: ../../mod/import.php:123
msgid "Channel clone failed. Import failed."
msgstr "Clonagem do canal falhou. A importação falhou."
-#: ../../mod/import.php:116
+#: ../../mod/import.php:133
msgid "Cloned channel not found. Import failed."
msgstr "Canal a clonar não encontrado. A importação falhou."
-#: ../../mod/import.php:364
+#: ../../mod/import.php:446
msgid "Import completed."
msgstr "A importação foi completada."
-#: ../../mod/import.php:377
+#: ../../mod/import.php:458
msgid "You must be logged in to use this feature."
msgstr "Você precisa estar autenticado para usar este recurso."
-#: ../../mod/import.php:382
+#: ../../mod/import.php:463
msgid "Import Channel"
msgstr "Importar canal"
-#: ../../mod/import.php:383
+#: ../../mod/import.php:464
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 "
@@ -6747,27 +7179,27 @@ msgid ""
"be imported. Importation of content is not yet available."
msgstr "Use este formulário para importar um canal existente de um servidor/hub diferente. Você pode obter a identidade do canal do servidor/hub antigo pela rede, ou fornecer um arquivo de exportação. Somente a identidade e as conexões/relacionamentos serão importados. Importação de conteúdos ainda não está disponível."
-#: ../../mod/import.php:384
+#: ../../mod/import.php:465
msgid "File to Upload"
msgstr "Arquivo a carregar"
-#: ../../mod/import.php:385
+#: ../../mod/import.php:466
msgid "Or provide the old server/hub details"
msgstr "Ou forneça os detalhes do antigo servidor/hub"
-#: ../../mod/import.php:386
+#: ../../mod/import.php:467
msgid "Your old identity address (xyz@example.com)"
msgstr "O endereço da sua velha identidade (xyz@exemplo.com)"
-#: ../../mod/import.php:387
+#: ../../mod/import.php:468
msgid "Your old login email address"
msgstr "O endereço de e-mail da sua antiga conta"
-#: ../../mod/import.php:388
+#: ../../mod/import.php:469
msgid "Your old login password"
msgstr "A senha dua sua antiga conta"
-#: ../../mod/import.php:389
+#: ../../mod/import.php:470
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"
@@ -6775,10 +7207,14 @@ msgid ""
"primary location for files, photos, and media."
msgstr "Para qualquer das opções, por favor escolha se deseja fazer deste hub seu novo endereço primário, ou se o velho local deve continuar com esse papel. Você será capaz de publicar a partir de ambos os locais, mas somente um pode estar designado como local primário para arquivos, fotos e mídia."
-#: ../../mod/import.php:390
+#: ../../mod/import.php:471
msgid "Make this hub my primary location"
msgstr "Faça deste hub meu local primário"
+#: ../../mod/import.php:472
+msgid "Import existing posts if possible"
+msgstr "Importar publicações existentes se possível"
+
#: ../../mod/invite.php:25
msgid "Total invitation limit exceeded."
msgstr "Foi excedido o número total de convites."
@@ -6812,72 +7248,64 @@ msgstr[1] "%d mensagens enviadas."
msgid "You have no more invitations available"
msgstr "Você não possui mais convites disponíveis"
-#: ../../mod/invite.php:141
+#: ../../mod/invite.php:129
msgid "Send invitations"
msgstr "Enviar convites."
-#: ../../mod/invite.php:142
+#: ../../mod/invite.php:130
msgid "Enter email addresses, one per line:"
msgstr "Digite os endereços de e-mail, um por linha:"
-#: ../../mod/invite.php:143 ../../mod/mail.php:216 ../../mod/mail.php:328
+#: ../../mod/invite.php:131 ../../mod/mail.php:225 ../../mod/mail.php:338
msgid "Your message:"
msgstr "Sua mensagem:"
-#: ../../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 "Você está convidado a juntar-se a mim e alguns outros amigos próximos na Red Matrix - uma revolucionária nova ferramenta para comunicação e informação descentralizada."
+#: ../../mod/invite.php:132
+msgid "Please join my community on RedMatrix."
+msgstr "Por favor junte-se à minha comunidade na RedMatrix"
-#: ../../mod/invite.php:146
-msgid "You will need to supply this invitation code: $invite_code"
-msgstr "Você deve informar este código de convite: $invite_code"
+#: ../../mod/invite.php:134
+msgid "You will need to supply this invitation code: "
+msgstr "Você precisará fornecer este código de convite:"
-#: ../../mod/invite.php:147
-msgid "Please visit my channel at"
-msgstr "Por favor, visite o meu canal em"
+#: ../../mod/invite.php:135
+msgid "1. Register at any RedMatrix location (they are all inter-connected)"
+msgstr "1. Registre-se em qualquer site da RedMatrix (eles são todos interconectados)"
-#: ../../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 "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:"
+#: ../../mod/invite.php:137
+msgid "2. Enter my RedMatrix network address into the site searchbar."
+msgstr "2. Entre meu endereço da rede RedMatrix na barra de busca do site."
-#: ../../mod/invite.php:153
-msgid "Click the [Register] link on the following page to join."
-msgstr "Clique no link [Registrar] na seguinte página para participar."
+#: ../../mod/invite.php:138
+msgid "or visit "
+msgstr "ou visite"
-#: ../../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 "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/invite.php:140
+msgid "3. Click [Connect]"
+msgstr "3. Clique [Conectar]"
-#: ../../mod/item.php:147
+#: ../../mod/item.php:146
msgid "Unable to locate original post."
msgstr "Não foi possível localizar a publicação original."
-#: ../../mod/item.php:352
+#: ../../mod/item.php:379
msgid "Empty post discarded."
msgstr "A publicação em branco foi descartada."
-#: ../../mod/item.php:392
+#: ../../mod/item.php:421
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:806
+#: ../../mod/item.php:849
msgid "System error. Post not saved."
msgstr "Erro no sistema. A publicação não foi salva."
-#: ../../mod/item.php:1249
+#: ../../mod/item.php:1317
#, 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:1255
+#: ../../mod/item.php:1323
#, php-format
msgid "You have reached your limit of %1$.0f webpages."
msgstr "Você atingiu o seu limite de %1$.0f páginas web."
@@ -6891,15 +7319,53 @@ msgstr "[Conteúdo incorporado - recarregue a página para ver]"
msgid "Help with this feature"
msgstr "Ajuda com este recurso"
-#: ../../mod/layouts.php:84
+#: ../../mod/layouts.php:85
msgid "Layout Name"
msgstr "Nome do layout"
-#: ../../mod/lockview.php:30 ../../mod/lockview.php:36
+#: ../../mod/like.php:15
+msgid "Like/Dislike"
+msgstr "Gostar/Desgostar"
+
+#: ../../mod/like.php:20
+msgid "This action is restricted to members."
+msgstr "Esta ação é restrita a membros."
+
+#: ../../mod/like.php:21
+msgid ""
+"Please <a href=\"rmagic\">login with your RedMatrix ID</a> or <a "
+"href=\"register\">register as a new RedMatrix member</a> to continue."
+msgstr "Por favor <a href=\"rmagic\">entre com sua ID da RedMatrix</a> ou <a href=\"register\">registre-se como um novo membro da RedMatrix</a> para continuar."
+
+#: ../../mod/like.php:77 ../../mod/like.php:104 ../../mod/like.php:142
+msgid "Invalid request."
+msgstr "Solicitação inválida."
+
+#: ../../mod/like.php:119
+msgid "thing"
+msgstr "coisa"
+
+#: ../../mod/like.php:165
+msgid "Channel unavailable."
+msgstr "Canal não disponível."
+
+#: ../../mod/like.php:204
+msgid "Previous action reversed."
+msgstr "Ação anterior revertida."
+
+#: ../../mod/like.php:417
+msgid "Action completed."
+msgstr "Ação completada."
+
+#: ../../mod/like.php:418
+msgid "Thank you."
+msgstr "Obrigado."
+
+#: ../../mod/lockview.php:31
msgid "Remote privacy information not available."
msgstr "Não existe informação disponível sobre a privacidade remota."
-#: ../../mod/lockview.php:45
+#: ../../mod/lockview.php:52
msgid "Visible to:"
msgstr "Visível para:"
@@ -6907,12 +7373,12 @@ msgstr "Visível para:"
msgid "No connections."
msgstr "Nenhuma conexão."
-#: ../../mod/viewconnections.php:70
+#: ../../mod/viewconnections.php:71
#, php-format
msgid "Visit %s's profile [%s]"
msgstr "Ver o perfil de %s [%s]"
-#: ../../mod/viewconnections.php:85
+#: ../../mod/viewconnections.php:86
msgid "View Connnections"
msgstr "Ver conexões"
@@ -6940,7 +7406,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:1462
+#: ../../mod/lostpass.php:85 ../../boot.php:1505
msgid "Password Reset"
msgstr "Reiniciar a senha"
@@ -7029,78 +7495,78 @@ msgstr "A mensagem foi excluída."
msgid "Message recalled."
msgstr "Mensagem retirada."
-#: ../../mod/mail.php:206
+#: ../../mod/mail.php:215
msgid "Send Private Message"
msgstr "Enviar mensagem privada"
-#: ../../mod/mail.php:207 ../../mod/mail.php:323
+#: ../../mod/mail.php:216 ../../mod/mail.php:333
msgid "To:"
msgstr "Para:"
-#: ../../mod/mail.php:212 ../../mod/mail.php:325
+#: ../../mod/mail.php:221 ../../mod/mail.php:335
msgid "Subject:"
msgstr "Assunto:"
-#: ../../mod/mail.php:249
+#: ../../mod/mail.php:232
+msgid "Send"
+msgstr "Enviar"
+
+#: ../../mod/mail.php:259
msgid "Message not found."
msgstr "Mensagem não encontrada."
-#: ../../mod/mail.php:292 ../../mod/message.php:72
+#: ../../mod/mail.php:302 ../../mod/message.php:72
msgid "Delete message"
msgstr "Excluir a mensagem"
-#: ../../mod/mail.php:293
+#: ../../mod/mail.php:303
msgid "Recall message"
msgstr "Retirar mensagem"
-#: ../../mod/mail.php:295
+#: ../../mod/mail.php:305
msgid "Message has been recalled."
msgstr "A mensagem foi retirada."
-#: ../../mod/mail.php:312
+#: ../../mod/mail.php:322
msgid "Private Conversation"
msgstr "Conversa privada"
-#: ../../mod/mail.php:316
+#: ../../mod/mail.php:326
msgid "Delete conversation"
msgstr "Excluir conversa"
-#: ../../mod/mail.php:318
+#: ../../mod/mail.php:328
msgid ""
"No secure communications available. You <strong>may</strong> be able to "
"respond from the sender's profile page."
msgstr "Comunicação segura indisponível. Você <strong>talvez</strong> consiga responder pela página de perfil do remetente."
-#: ../../mod/mail.php:322
+#: ../../mod/mail.php:332
msgid "Send Reply"
msgstr "Enviar resposta"
-#: ../../mod/manage.php:64
+#: ../../mod/manage.php:136
#, 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:72
+#: ../../mod/manage.php:144
msgid "Create a new channel"
msgstr "Criar um novo canal"
-#: ../../mod/manage.php:77
-msgid "Channel Manager"
-msgstr "Administrador do canal"
-
-#: ../../mod/manage.php:78
+#: ../../mod/manage.php:149
msgid "Current Channel"
msgstr "Canal atual"
-#: ../../mod/manage.php:80
+#: ../../mod/manage.php:151
msgid "Attach to one of your channels by selecting it."
msgstr "Selecione um dos seus canais para utilizá-lo."
-#: ../../mod/manage.php:81
+#: ../../mod/manage.php:152
msgid "Default Channel"
msgstr "Canal padrão"
-#: ../../mod/manage.php:82
+#: ../../mod/manage.php:153
msgid "Make Default"
msgstr "Tornar padrão"
@@ -7220,163 +7686,54 @@ msgstr "Nenhuma mensagem."
msgid "D, d M Y - g:i A"
msgstr "D, d M Y - g:i A"
-#: ../../mod/new_channel.php:107
+#: ../../mod/new_channel.php:109
msgid "Add a Channel"
msgstr "Adicionar um canal"
-#: ../../mod/new_channel.php:108
+#: ../../mod/new_channel.php:110
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 "Um canal é uma coleção sua de páginas relacionadas. Um canal pode ser usado para um perfil de rede social, um blog, grupos de conversação e fóruns, páginas de celebridades, e muito mais. Você pode criar tantos canais quanto seu provedor de serviço permita."
+msgstr "Um canal é uma coleção sua de páginas relacionadas. Um canal pode ser usado para um perfil de rede social, um blog, grupos de conversação e fóruns temáticos, páginas de personalidades, e muito mais. Você pode criar tantos canais quanto o provedor de serviço permita."
-#: ../../mod/new_channel.php:111
+#: ../../mod/new_channel.php:113
msgid "Examples: \"Bob Jameson\", \"Lisa and her Horses\", \"Soccer\", \"Aviation Group\" "
-msgstr "Exemplos: \"Beto Salinas\", \"Elis e seus Cavalos\", \"Futebol\", \"Grupo de aviadores\""
+msgstr "Exemplos: \"Maria Caiouá\", \"Roberto Salinas\", \"Elis e sua banda\", \"Futebol de salão\", \"Fanáticos por aeromodelismo\""
-#: ../../mod/new_channel.php:112
+#: ../../mod/new_channel.php:114
msgid "Choose a short nickname"
msgstr "Escolha um apelido curto"
-#: ../../mod/new_channel.php:113
+#: ../../mod/new_channel.php:115
msgid ""
"Your nickname will be used to create an easily remembered channel address "
"(like an email address) which you can share with others."
msgstr "Seu apelido será usado para criar um endereço para o canal de fácil memorização (como um endereço de email), que você poderá compartilhar com outros."
-#: ../../mod/new_channel.php:114
+#: ../../mod/new_channel.php:116
msgid "Or <a href=\"import\">import an existing channel</a> from another location"
msgstr "Ou <a href=\"import\">importe um canal existente</a> de outro local"
-#: ../../mod/photos.php:77
-msgid "Page owner information could not be retrieved."
-msgstr "As informações do dono da pagina não puderam ser obtidas."
-
-#: ../../mod/photos.php:97
-msgid "Album not found."
-msgstr "O álbum não foi encontrado."
-
-#: ../../mod/photos.php:119 ../../mod/photos.php:671
-msgid "Delete Album"
-msgstr "Excluir o álbum"
-
-#: ../../mod/photos.php:159 ../../mod/photos.php:954
-msgid "Delete Photo"
-msgstr "Excluir a foto"
-
-#: ../../mod/photos.php:453
-msgid "No photos selected"
-msgstr "Não foi selecionada nenhuma foto"
-
-#: ../../mod/photos.php:500
-msgid "Access to this item is restricted."
-msgstr "O acesso a este item está restrito."
-
-#: ../../mod/photos.php:576
-#, php-format
-msgid "You have used %1$.2f Mbytes of %2$.2f Mbytes photo storage."
-msgstr "Você usou %1$.2f Mbytes de %2$.2f Mbytes de armazenamento de fotos."
-
-#: ../../mod/photos.php:579
-#, php-format
-msgid "You have used %1$.2f Mbytes of photo storage."
-msgstr "Você usou %1$.2f Mbytes de armazenamento de fotos."
-
-#: ../../mod/photos.php:598
-msgid "Upload Photos"
-msgstr "Enviar fotos"
-
-#: ../../mod/photos.php:602 ../../mod/photos.php:666
-msgid "New album name: "
-msgstr "Novo nome de álbum: "
-
-#: ../../mod/photos.php:603
-msgid "or existing album name: "
-msgstr "ou nome de um álbum já existente: "
-
-#: ../../mod/photos.php:604
-msgid "Do not show a status post for this upload"
-msgstr "Não exibir uma publicação de status para este carregamento"
-
-#: ../../mod/photos.php:655 ../../mod/photos.php:677 ../../mod/photos.php:1126
-#: ../../mod/photos.php:1141
-msgid "Contact Photos"
-msgstr "Fotos dos contatos"
-
-#: ../../mod/photos.php:681
-msgid "Edit Album"
-msgstr "Editar o álbum"
-
-#: ../../mod/photos.php:687
-msgid "Show Newest First"
-msgstr "Exibir primeiro os mais recentes"
-
-#: ../../mod/photos.php:689
-msgid "Show Oldest First"
-msgstr "Exibir primeiro os mais antigos"
-
-#: ../../mod/photos.php:732 ../../mod/photos.php:1173
-msgid "View Photo"
-msgstr "Ver a foto"
-
-#: ../../mod/photos.php:778
-msgid "Permission denied. Access to this item may be restricted."
-msgstr "Permissão negada. Acesso a este item pode estar restrito."
-
-#: ../../mod/photos.php:780
-msgid "Photo not available"
-msgstr "A foto não está disponível"
-
-#: ../../mod/photos.php:840
-msgid "Use as profile photo"
-msgstr "Usar como uma foto de perfil"
-
-#: ../../mod/photos.php:864
-msgid "View Full Size"
-msgstr "Ver no tamanho real"
-
-#: ../../mod/photos.php:938
-msgid "Edit photo"
-msgstr "Editar a foto"
-
-#: ../../mod/photos.php:940
-msgid "Rotate CW (right)"
-msgstr "Rotacionar H (horário)"
-
-#: ../../mod/photos.php:941
-msgid "Rotate CCW (left)"
-msgstr "Rotacionar AH (anti-horário)"
-
-#: ../../mod/photos.php:943
-msgid "New album name"
-msgstr "Novo nome para o álbum"
-
-#: ../../mod/photos.php:946
-msgid "Caption"
-msgstr "Legenda"
-
-#: ../../mod/photos.php:948
-msgid "Add a Tag"
-msgstr "Adicionar uma etiqueta"
+#: ../../mod/new_channel.php:118
+msgid "Channel Type"
+msgstr "Tipo de canal"
-#: ../../mod/photos.php:951
+#: ../../mod/new_channel.php:119
msgid ""
-"Example: @bob, @Barbara_Jensen, @jim@example.com, #California, #camping"
-msgstr "Por exemplo: @joao, @Joao_da_Silva, @joao@exemplo.com, #Minas_Gerais, #acampamento"
+"Please choose a channel type (such as social networking or community forum) "
+"and privacy requirements so we can select the best permissions for you"
+msgstr "Por favor, escolha um tipo de canal (por exemplo rede social ou fórum de comunidade) e requisito de privacidade, para que possamos configurar as melhores permissões para você"
-#: ../../mod/photos.php:1104
-msgid "In This Photo:"
-msgstr "Nesta foto:"
-
-#: ../../mod/photos.php:1179
-msgid "View Album"
-msgstr "Ver álbum"
+#: ../../mod/home.php:46
+msgid "Red Matrix - &quot;The Network&quot;"
+msgstr "Red Matrix - &quot;A Rede&quot;"
-#: ../../mod/photos.php:1188
-msgid "Recent Photos"
-msgstr "Fotos recentes"
+#: ../../mod/home.php:101
+#, php-format
+msgid "Welcome to %s"
+msgstr "Bem-vindo(a) a %s"
#: ../../mod/notifications.php:26
msgid "Invalid request identifier."
@@ -7386,11 +7743,11 @@ msgstr "Identificador de solicitação inválido"
msgid "Discard"
msgstr "Descartar"
-#: ../../mod/notifications.php:94 ../../mod/notify.php:54
+#: ../../mod/notifications.php:94 ../../mod/notify.php:53
msgid "No more system notifications."
msgstr "Sem novas notificações do sistema."
-#: ../../mod/notifications.php:98 ../../mod/notify.php:58
+#: ../../mod/notifications.php:98 ../../mod/notify.php:57
msgid "System Notifications"
msgstr "Notificações do sistema"
@@ -7458,6 +7815,46 @@ msgstr "Preço do aplicativo"
msgid "Location (URL) to purchase app"
msgstr "Endereço (URL) para comprar o aplicativo"
+#: ../../mod/poll.php:64
+msgid "Poll"
+msgstr "Votação"
+
+#: ../../mod/poll.php:69
+msgid "View Results"
+msgstr "Ver resultados"
+
+#: ../../mod/removeaccount.php:30
+msgid ""
+"Account removals are not allowed within 48 hours of changing the account "
+"password."
+msgstr "A remoção da conta fica desabilitada por 48 horas após uma troca de senha da conta."
+
+#: ../../mod/removeaccount.php:57
+msgid "Remove This Account"
+msgstr "Remover esta conta"
+
+#: ../../mod/removeaccount.php:58
+msgid ""
+"This will completely remove this account including all its channels from the"
+" network. Once this has been done it is not recoverable."
+msgstr "Isso irá remover completamente esta conta, incluindo todos os canais da rede. Uma vez feito isso eles não poderão ser recuperados."
+
+#: ../../mod/removeaccount.php:60
+msgid ""
+"Remove this account, all its channels and all its channel clones from the "
+"network"
+msgstr "Remove esta conta, todos os seus canais e todos os clones desses canais da rede."
+
+#: ../../mod/removeaccount.php:60
+msgid ""
+"By default only the instances of the channels located on this hub will be "
+"removed from the network"
+msgstr "Por padrão, apenas as instâncias dos canais localizadas neste hub serão removidas da rede"
+
+#: ../../mod/service_limits.php:19
+msgid "No service class restrictions found."
+msgstr "Não foram encontradas restrições de classe de serviço."
+
#: ../../view/theme/apw/php/config.php:202
#: ../../view/theme/apw/php/config.php:236
msgid "Schema Default"
@@ -7469,7 +7866,7 @@ msgstr "Sans-Serif"
#: ../../view/theme/apw/php/config.php:204
msgid "Monospace"
-msgstr "Monoespaçada"
+msgstr "Monospace"
#: ../../view/theme/apw/php/config.php:259
#: ../../view/theme/blogga/php/config.php:69
@@ -7505,7 +7902,7 @@ msgid "Set small shadow size, default 5px 5px 5px"
msgstr "Definir o tamanho da sombra pequena, padrão 5px 5px 5px"
#: ../../view/theme/apw/php/config.php:266
-msgid "Set shadow colour, default #000"
+msgid "Set shadow color, default #000"
msgstr "Definir a cor da sombra, padrão #000"
#: ../../view/theme/apw/php/config.php:267
@@ -7525,7 +7922,7 @@ msgid "Set background attachment"
msgstr "Definir o anexo de pano de fundo"
#: ../../view/theme/apw/php/config.php:271
-msgid "Set background colour"
+msgid "Set background color"
msgstr "Definir a cor do pano de fundo"
#: ../../view/theme/apw/php/config.php:272
@@ -7533,15 +7930,15 @@ msgid "Set section background image"
msgstr "Definir a imagem de fundo de seção"
#: ../../view/theme/apw/php/config.php:273
-msgid "Set section background colour"
+msgid "Set section background color"
msgstr "Definir a cor de fundo de seção"
#: ../../view/theme/apw/php/config.php:274
-msgid "Set colour of items - use hex"
+msgid "Set color of items - use hex"
msgstr "Definir a cor dos items - use hex"
#: ../../view/theme/apw/php/config.php:275
-msgid "Set colour of links - use hex"
+msgid "Set color of links - use hex"
msgstr "Definir a cor dos links - use hex"
#: ../../view/theme/apw/php/config.php:276
@@ -7557,7 +7954,7 @@ msgid "Set the generic content wrapper width. Default 48%"
msgstr "Definir a largura do envólucro para conteúdo genérico. Padrão 48%"
#: ../../view/theme/apw/php/config.php:279
-msgid "Set colour of fonts - use hex"
+msgid "Set color of fonts - use hex"
msgstr "Definir a cor das fontes - use hex"
#: ../../view/theme/apw/php/config.php:280
@@ -7594,7 +7991,7 @@ msgstr "Deslocamento direito do elemento de seção"
#: ../../view/theme/apw/php/config.php:288
msgid "Section width"
-msgstr "Largura de seção"
+msgstr "largura de seção"
#: ../../view/theme/apw/php/config.php:289
msgid "Left offset of the aside"
@@ -7619,52 +8016,56 @@ msgstr "Imagem de cabeçalho"
msgid "Header image only on profile pages"
msgstr "Imagem de cabeçalho apenas em páginas de perfil"
+#: ../../view/theme/redbasic/php/config.php:84
+msgid "Light (Red Matrix default)"
+msgstr "Leve (padrão da Red Matrix)"
+
#: ../../view/theme/redbasic/php/config.php:104
msgid "Narrow navbar"
msgstr "Barra de navegação estreita"
#: ../../view/theme/redbasic/php/config.php:105
-msgid "Navigation bar background colour"
+msgid "Navigation bar background color"
msgstr "Cor de fundo da barra de navegação"
#: ../../view/theme/redbasic/php/config.php:106
-msgid "Navigation bar gradient top colour"
+msgid "Navigation bar gradient top color"
msgstr "Cor no topo de gradiente da barra de navegação"
#: ../../view/theme/redbasic/php/config.php:107
-msgid "Navigation bar gradient bottom colour"
+msgid "Navigation bar gradient bottom color"
msgstr "Cor na base de gradiente da barra de navegação"
#: ../../view/theme/redbasic/php/config.php:108
-msgid "Navigation active button gradient top colour"
+msgid "Navigation active button gradient top color"
msgstr "Cor no topo de gradiente de botão ativo de navegação"
#: ../../view/theme/redbasic/php/config.php:109
-msgid "Navigation active button gradient bottom colour"
+msgid "Navigation active button gradient bottom color"
msgstr "Cor na base de gradiente de botão ativo de navegação"
#: ../../view/theme/redbasic/php/config.php:110
-msgid "Navigation bar border colour "
+msgid "Navigation bar border color "
msgstr "Cor de borda da barra de navegação"
#: ../../view/theme/redbasic/php/config.php:111
-msgid "Navigation bar icon colour "
+msgid "Navigation bar icon color "
msgstr "Cor de ícone da barra de navegação"
#: ../../view/theme/redbasic/php/config.php:112
-msgid "Navigation bar active icon colour "
+msgid "Navigation bar active icon color "
msgstr "Cor de ícone ativo da barra de navegação"
#: ../../view/theme/redbasic/php/config.php:113
-msgid "link colour"
+msgid "link color"
msgstr "cor dos links"
#: ../../view/theme/redbasic/php/config.php:114
-msgid "Set font-colour for banner"
+msgid "Set font-color for banner"
msgstr "Definir a cor da fonte para o cartaz"
#: ../../view/theme/redbasic/php/config.php:115
-msgid "Set the background colour"
+msgid "Set the background color"
msgstr "Definir a cor do pano de fundo"
#: ../../view/theme/redbasic/php/config.php:116
@@ -7672,15 +8073,15 @@ msgid "Set the background image"
msgstr "Definir a imagem do pano de fundo"
#: ../../view/theme/redbasic/php/config.php:117
-msgid "Set the background colour of items"
+msgid "Set the background color of items"
msgstr "Definir a cor de fundo dos items"
#: ../../view/theme/redbasic/php/config.php:118
-msgid "Set the background colour of comments"
+msgid "Set the background color of comments"
msgstr "Definir a cor de fundo dos comentários"
#: ../../view/theme/redbasic/php/config.php:119
-msgid "Set the border colour of comments"
+msgid "Set the border color of comments"
msgstr "Definir a cor da borda dos comentários"
#: ../../view/theme/redbasic/php/config.php:120
@@ -7688,11 +8089,11 @@ msgid "Set the indent for comments"
msgstr "Definir a indentação de comentários"
#: ../../view/theme/redbasic/php/config.php:121
-msgid "Set the basic colour for item icons"
+msgid "Set the basic color for item icons"
msgstr "Definir a cor básica para ícones de itens"
#: ../../view/theme/redbasic/php/config.php:122
-msgid "Set the hover colour for item icons"
+msgid "Set the hover color for item icons"
msgstr "Definir a cor para ícones de itens quando que o mouse está sobre eles"
#: ../../view/theme/redbasic/php/config.php:123
@@ -7700,7 +8101,7 @@ msgid "Set font-size for the entire application"
msgstr "Definir o tamanho da fonte para a aplicação como um todo"
#: ../../view/theme/redbasic/php/config.php:125
-msgid "Set font-colour for posts and comments"
+msgid "Set font-color for posts and comments"
msgstr "Definir a cor da fonte para publicações e comentários"
#: ../../view/theme/redbasic/php/config.php:126
@@ -7739,41 +8140,41 @@ msgstr "Ãlbuns de fotos desleixados"
msgid "Are you a clean desk or a messy desk person?"
msgstr "Sua mesa é do tipo limpinha ou bagunçada?"
-#: ../../boot.php:1260
+#: ../../boot.php:1293
#, php-format
msgid "Update %s failed. See error logs."
msgstr "A atualização %s falhou. Veja os logs de erro."
-#: ../../boot.php:1263
+#: ../../boot.php:1296
#, php-format
msgid "Update Error at %s"
msgstr "Erro de atualização em %s"
-#: ../../boot.php:1427
+#: ../../boot.php:1470
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:1455
+#: ../../boot.php:1498
msgid "Password"
msgstr "Senha"
-#: ../../boot.php:1456
+#: ../../boot.php:1499
msgid "Remember me"
msgstr "Lembrar de mim"
-#: ../../boot.php:1461
+#: ../../boot.php:1504
msgid "Forgot your password?"
msgstr "Esqueceu a sua senha?"
-#: ../../boot.php:1526
+#: ../../boot.php:1569
msgid "permission denied"
msgstr "permissão negada"
-#: ../../boot.php:1527
+#: ../../boot.php:1570
msgid "Got Zot?"
msgstr "Já tem Zot?"
-#: ../../boot.php:1957
+#: ../../boot.php:2000
msgid "toggle mobile"
msgstr "alternar para interface móvel"
diff --git a/view/pt-br/request_notify_eml.tpl b/view/pt-br/request_notify_eml.tpl
deleted file mode 100644
index 3f0befb3f..000000000
--- a/view/pt-br/request_notify_eml.tpl
+++ /dev/null
@@ -1,17 +0,0 @@
-
-Caro/a {{$myname}},
-
-Você acaba de receber uma solicitação de conexão em {{$sitename}}
-
-por '{{$requestor}}'.
-
-Você pode ver o perfil dele em {{$url}}.
-
-Por favor, autentique-se no seu site para ver a apresentação completa
-e aprovar ou ignorar/cancelar o pedido.
-
-{{$siteurl}}
-
-Gratidão,
-
- {{$sitename}} administrador
diff --git a/view/pt-br/strings.php b/view/pt-br/strings.php
index cdc7fbacb..eaeb012ab 100644
--- a/view/pt-br/strings.php
+++ b/view/pt-br/strings.php
@@ -7,16 +7,89 @@ function string_plural_select_pt_br($n){
;
$a->strings["Cannot locate DNS info for database server '%s'"] = "Não foi possível localizar a informação de DNS para o servidor de banco de dados '%s'";
$a->strings["Profile Photos"] = "Fotos do perfil";
-$a->strings["Image/photo"] = "Imagem/foto";
-$a->strings["Encrypted content"] = "Conteúdo criptografado";
-$a->strings["QR code"] = "código QR";
-$a->strings["%1\$s wrote the following %2\$s %3\$s"] = "%1\$s escreveu a seguinte %2\$s %3\$s";
-$a->strings["post"] = "publicação";
-$a->strings["$1 wrote:"] = "$1 escreveu:";
+$a->strings["view full size"] = "ver na tela inteira";
$a->strings["Embedded content"] = "Conteúdo incorporado";
$a->strings["Embedding disabled"] = "A incorporação está desabilitada";
$a->strings["created a new post"] = "criou uma nova publicação";
$a->strings["commented on %s's post"] = "comentou a publicação de %s";
+$a->strings["Site Admin"] = "Administração do site";
+$a->strings["Bookmarks"] = "Links guardados";
+$a->strings["Address Book"] = "Livro de Endereços";
+$a->strings["Login"] = "Entrar";
+$a->strings["Channel Manager"] = "Seus canais";
+$a->strings["Matrix"] = "Matriz";
+$a->strings["Settings"] = "Configurações";
+$a->strings["Files"] = "Arquivos";
+$a->strings["Webpages"] = "Páginas web";
+$a->strings["Channel Home"] = "Página inicial do canal";
+$a->strings["Profile"] = "Perfil";
+$a->strings["Photos"] = "Fotos";
+$a->strings["Events"] = "Eventos";
+$a->strings["Directory"] = "Diretório";
+$a->strings["Help"] = "Ajuda";
+$a->strings["Mail"] = "Mensagens";
+$a->strings["Mood"] = "Humor";
+$a->strings["Poke"] = "Cutucar";
+$a->strings["Chat"] = "Bate-papo";
+$a->strings["Search"] = "Pesquisar";
+$a->strings["Probe"] = "Sonda";
+$a->strings["Suggest"] = "Sugerir";
+$a->strings["Random Channel"] = "Canal aleatório";
+$a->strings["Invite"] = "Convidar";
+$a->strings["Features"] = "Recursos";
+$a->strings["Language"] = "Idioma";
+$a->strings["Post"] = "Publicações";
+$a->strings["Profile Photo"] = "Foto do perfil";
+$a->strings["Update"] = "Atualizar";
+$a->strings["Install"] = "Instalar";
+$a->strings["Purchase"] = "Compras";
+$a->strings["Edit"] = "Editar";
+$a->strings["Delete"] = "Excluir";
+$a->strings["Unknown"] = "Desconhecidos";
+$a->strings["New Page"] = "Nova página";
+$a->strings["View"] = "Ver";
+$a->strings["Preview"] = "Pré-visualizar";
+$a->strings["Actions"] = "Ações";
+$a->strings["Page Link"] = "Link da página";
+$a->strings["Title"] = "Título";
+$a->strings["Created"] = "Criado";
+$a->strings["Edited"] = "Editado";
+$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.";
+$a->strings["Invalid data packet"] = "Pacote de dados inválido";
+$a->strings["Unable to verify channel signature"] = "Não foi possível verificar a assinatura do canal";
+$a->strings["Unable to verify site signature for %s"] = "Não foi possível verificar a assinatura do site para %s";
+$a->strings["Permission denied."] = "Permissão negada.";
+$a->strings["Image exceeds website size limit of %lu bytes"] = "A imagem excede o limite de tamanho do site, que é de %";
+$a->strings["Image file is empty."] = "O arquivo de imagem está vazio.";
+$a->strings["Unable to process image"] = "Não foi possível processar a imagem";
+$a->strings["Photo storage failed."] = "Não foi possível armazenar a foto.";
+$a->strings["Photo Albums"] = "Ãlbuns de fotos";
+$a->strings["Upload New Photos"] = "Enviar novas fotos";
+$a->strings["Visible to your default audience"] = "Visível para seu público padrão";
+$a->strings["Show"] = "Exibir";
+$a->strings["Don't show"] = "Não exibir";
+$a->strings["Permissions"] = "Permissões";
+$a->strings["Close"] = "Fechar";
+$a->strings[" and "] = " e ";
+$a->strings["public profile"] = "perfil público";
+$a->strings["%1\$s changed %2\$s to &ldquo;%3\$s&rdquo;"] = "%1\$s mudou %2\$s para &ldquo;%3\$s&rdquo;";
+$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["Public Timeline"] = "Linha do tempo pública";
+$a->strings["Item was not found."] = "O item não foi encontrado.";
+$a->strings["No source file."] = "Nenhum arquivo de origem.";
+$a->strings["Cannot locate file to replace"] = "Não foi possível locar o arquivo a ser substituído";
+$a->strings["Cannot locate file to revise/update"] = "Não foi possível localizar o arquivo a ser revisado/atualizado";
+$a->strings["File exceeds size limit of %d"] = "O arquivo excedeu o tamanho limite de %d";
+$a->strings["You have reached your limit of %1$.0f Mbytes attachment storage."] = "Você atingiu o seu limite de %1$.0f Mbytes de armazenamento de anexos.";
+$a->strings["File upload failed. Possible system limit or action terminated."] = "Não foi possível enviar o arquivo. Provável limite do sistema ou a ação foi encerrada.";
+$a->strings["Stored file could not be verified. Upload failed."] = "Não foi possível verificar o arquivo armazenado. Falha no envio.";
+$a->strings["Path not available."] = "O caminho não está disponível.";
+$a->strings["Empty pathname"] = "O nome do caminho está em branco";
+$a->strings["duplicate filename or path"] = "nome de arquivo ou caminho duplicado";
+$a->strings["Path not found."] = "Caminho não encontrado.";
+$a->strings["mkdir failed."] = "mkdir falhou.";
+$a->strings["database storage failed."] = "armazenamento de banco de dados falhou.";
$a->strings["photo"] = "foto";
$a->strings["event"] = "evento";
$a->strings["channel"] = "canal";
@@ -29,7 +102,6 @@ $a->strings["%1\$s poked %2\$s"] = "%1\$s cutucou %2\$s";
$a->strings["poked"] = "cutucado";
$a->strings["__ctx:mood__ %1\$s is %2\$s"] = "%1\$s está %2\$s";
$a->strings["Select"] = "Selecionar";
-$a->strings["Delete"] = "Excluir";
$a->strings["Private Message"] = "Mensagem privada";
$a->strings["Message is verified"] = "A mensagem foi verificada";
$a->strings["View %s's profile @ %s"] = "Ver o perfil de %s's @ %s";
@@ -49,9 +121,9 @@ $a->strings["View Status"] = "Ver status";
$a->strings["View Profile"] = "Ver perfil";
$a->strings["View Photos"] = "Ver fotos";
$a->strings["Matrix Activity"] = "Atividade na matriz";
+$a->strings["Connect"] = "Conectar";
$a->strings["Edit Contact"] = "Editar contato";
$a->strings["Send PM"] = "Enviar MP";
-$a->strings["Poke"] = "Cutucar";
$a->strings["%s likes this."] = "%s gostou disso.";
$a->strings["%s doesn't like this."] = "%s não gostou disso.";
$a->strings["<span %1\$s>%2\$d people</span> like this."] = array(
@@ -77,7 +149,6 @@ $a->strings["Tag term:"] = "Etiqueta:";
$a->strings["Save to Folder:"] = "Salvar para a pasta:";
$a->strings["Where are you right now?"] = "Onde você está agora?";
$a->strings["Expires YYYY-MM-DD HH:MM"] = "Expira YYYY-MM-DD HH:MM";
-$a->strings["Preview"] = "Pré-visualizar";
$a->strings["Share"] = "Compartilhar";
$a->strings["Page link title"] = "Título do link da página";
$a->strings["Post as"] = "Publicar como";
@@ -123,166 +194,91 @@ $a->strings["Channel"] = "Canal";
$a->strings["Status Messages and Posts"] = "Mensagens de status e publicações";
$a->strings["About"] = "Sobre";
$a->strings["Profile Details"] = "Detalhes do perfil";
-$a->strings["Photos"] = "Fotos";
-$a->strings["Photo Albums"] = "Ãlbuns de fotos";
-$a->strings["Files"] = "Arquivos";
$a->strings["Files and Storage"] = "Arquivos e armazenamento";
$a->strings["Chatrooms"] = "Salas de bate-papo";
-$a->strings["Events"] = "Eventos";
-$a->strings["Events and Calendar"] = "Eventos e calendário";
-$a->strings["Bookmarks"] = "Links guardados";
$a->strings["Saved Bookmarks"] = "Links guardados";
-$a->strings["Webpages"] = "Páginas web";
$a->strings["Manage Webpages"] = "Administrar páginas web";
-$a->strings["New Page"] = "Nova página";
-$a->strings["Edit"] = "Editar";
-$a->strings["View"] = "Ver";
-$a->strings["Actions"] = "Ações";
-$a->strings["Page Link"] = "Link da página";
-$a->strings["Title"] = "Título";
-$a->strings["Created"] = "Criado";
-$a->strings["Edited"] = "Editado";
-$a->strings["Can view my \"public\" stream and posts"] = "Pode ver meus fluxo e publicações \"públicos\"";
-$a->strings["Can view my \"public\" channel profile"] = "Pode ver o perfil \"público\" do meu canal";
-$a->strings["Can view my \"public\" photo albums"] = "Pode ver meus álbuns de fotos \"públicos\"";
-$a->strings["Can view my \"public\" address book"] = "Pode ver meu livro de endereços \"público\"";
-$a->strings["Can view my \"public\" file storage"] = "Pode ver meu armazenamento de arquivos \"público\"";
-$a->strings["Can view my \"public\" pages"] = "Pode ver minhas páginas \"públicas\"";
-$a->strings["Can send me their channel stream and posts"] = "Pode me enviar seu fluxo e publicações";
-$a->strings["Can post on my channel page (\"wall\")"] = "Pode publicar na página do meu canal (\"mural\")";
-$a->strings["Can comment on my posts"] = "Pode comentar minhas publicações";
-$a->strings["Can send me private mail messages"] = "Pode me enviar mensagens privadas";
-$a->strings["Can post photos to my photo albums"] = "Pode publicar fotos nos meus álbuns de fotos";
-$a->strings["Can forward to all my channel contacts via post @mentions"] = "Pode encaminhar para todos os contatos do meu canal via @menções na publicação";
-$a->strings["Advanced - useful for creating group forum channels"] = "Avançado - útil para criar canais de fóruns de grupos";
-$a->strings["Can chat with me (when available)"] = "Pode conversar comigo (quando disponívei)";
-$a->strings["Can write to my \"public\" file storage"] = "Pode escrever em meu armazenamento de arquivos \"público\"";
-$a->strings["Can edit my \"public\" pages"] = "Pode editar minhas páginas \"públicas\"";
-$a->strings["Can source my \"public\" posts in derived channels"] = "Pode usar minhas publicações \"públicas\" como fonte para canais derivados";
-$a->strings["Somewhat advanced - very useful in open communities"] = "Avançado - muito útil em comunidades abertas";
-$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["Not a valid email address"] = "Não é um endereço de e-mail válido";
-$a->strings["Your email domain is not among those allowed on this site"] = "O domínio do seu e-mail não está entre os permitidos neste site";
-$a->strings["Your email address is already registered at this site."] = "O seu endereço de e-mail já está registrado neste site.";
-$a->strings["An invitation is required."] = "É necessário um convite.";
-$a->strings["Invitation could not be verified."] = "Não foi possível verificar o convite.";
-$a->strings["Please enter the required information."] = "Por favor, forneça a informação solicitada.";
-$a->strings["Failed to store account information."] = "Não foi possível armazenar a informação da conta.";
-$a->strings["Registration request at %s"] = "Solicitação de registro em %s";
-$a->strings["Administrator"] = "Administrador";
-$a->strings["your registration password"] = "sua senha de registro";
-$a->strings["Registration details for %s"] = "Detalhes do registro de %s";
-$a->strings["Account approved."] = "A conta foi aprovada.";
-$a->strings["Registration revoked for %s"] = "O registro de %s foi revogado";
-$a->strings["Permission denied."] = "Permissão negada.";
-$a->strings["Image exceeds website size limit of %lu bytes"] = "A imagem excede o limite de tamanho do site, que é de %";
-$a->strings["Image file is empty."] = "O arquivo de imagem está vazio.";
-$a->strings["Unable to process image"] = "Não foi possível processar a imagem";
-$a->strings["Photo storage failed."] = "Não foi possível armazenar a foto.";
-$a->strings["Upload New Photos"] = "Enviar novas fotos";
-$a->strings["Visible to everybody"] = "Visível para todos";
-$a->strings["Show"] = "Exibir";
-$a->strings["Don't show"] = "Não exibir";
-$a->strings["Permissions"] = "Permissões";
-$a->strings["Close"] = "Fechar";
-$a->strings[" and "] = " e ";
-$a->strings["public profile"] = "perfil público";
-$a->strings["%1\$s changed %2\$s to &ldquo;%3\$s&rdquo;"] = "%1\$s mudou %2\$s para &ldquo;%3\$s&rdquo;";
-$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["Public Timeline"] = "Linha do tempo pública";
-$a->strings["Item was not found."] = "O item não foi encontrado.";
-$a->strings["No source file."] = "Nenhum arquivo de origem.";
-$a->strings["Cannot locate file to replace"] = "Não foi possível locar o arquivo a ser substituído";
-$a->strings["Cannot locate file to revise/update"] = "Não foi possível localizar o arquivo a ser revisado/atualizado";
-$a->strings["File exceeds size limit of %d"] = "O arquivo excedeu o tamanho limite de %d";
-$a->strings["You have reached your limit of %1$.0f Mbytes attachment storage."] = "Você atingiu o seu limite de %1$.0f Mbytes de armazenamento de anexos.";
-$a->strings["File upload failed. Possible system limit or action terminated."] = "Não foi possível enviar o arquivo. Provável limite do sistema ou a ação foi encerrada.";
-$a->strings["Stored file could not be verified. Upload failed."] = "Não foi possível verificar o arquivo armazenado. Falha no envio.";
-$a->strings["Path not available."] = "O caminho não está disponível.";
-$a->strings["Empty pathname"] = "O nome do caminho está em branco";
-$a->strings["duplicate filename or path"] = "nome de arquivo ou caminho duplicado";
-$a->strings["Path not found."] = "Caminho não encontrado.";
-$a->strings["mkdir failed."] = "mkdir falhou.";
-$a->strings["database storage failed."] = "armazenamento de banco de dados falhou.";
-$a->strings["Permission denied"] = "Permissão negada";
-$a->strings["(Unknown)"] = "(Desconhecido)";
-$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.";
-$a->strings["Collection: %s"] = "Coleção: %s";
-$a->strings["Connection: %s"] = "Conexão: %s";
-$a->strings["Connection not found."] = "A conexão não foi encontrada.";
-$a->strings["l F d, Y \\@ g:i A"] = "l F d, Y \\@ g:i A";
-$a->strings["Starts:"] = "Início:";
-$a->strings["Finishes:"] = "Fim:";
-$a->strings["Location:"] = "Localização:";
-$a->strings["Logout"] = "Sair";
-$a->strings["End this session"] = "Encerrar essa sessão";
-$a->strings["Home"] = "Ver canal";
-$a->strings["Your posts and conversations"] = "Suas publicações e conversas";
-$a->strings["Your profile page"] = "A página do seu perfil";
-$a->strings["Edit Profiles"] = "Editar perfis";
-$a->strings["Manage/Edit profiles"] = "Administrar/Editar perfis";
-$a->strings["Your photos"] = "Suas fotos";
-$a->strings["Your files"] = "Seus arquivos";
-$a->strings["Chat"] = "Bate-papo";
-$a->strings["Your chatrooms"] = "Suas salas de bate-papo";
-$a->strings["Your events"] = "Seus eventos";
-$a->strings["Your bookmarks"] = "Seus links guardados";
-$a->strings["Your webpages"] = "Suas páginas web";
-$a->strings["Login"] = "Entrar";
-$a->strings["Sign in"] = "Entrar";
-$a->strings["%s - click to logout"] = "%s - clique para sair";
-$a->strings["Click to authenticate to your home hub"] = "Clique para se autenticar com seu hub de origem";
-$a->strings["Home Page"] = "Página inicial";
-$a->strings["Register"] = "Registrar";
-$a->strings["Create an account"] = "Criar uma conta";
-$a->strings["Help"] = "Ajuda";
-$a->strings["Help and documentation"] = "Ajuda e documentação";
-$a->strings["Apps"] = "Aplicações";
-$a->strings["Applications, utilities, links, games"] = "Aplicações, utilitários, links, jogos";
-$a->strings["Search"] = "Pesquisar";
-$a->strings["Search site content"] = "Pesquisar o conteúdo do site";
-$a->strings["Directory"] = "Diretório";
-$a->strings["Channel Locator"] = "Localizador de canais";
-$a->strings["Matrix"] = "Matriz";
-$a->strings["Your matrix"] = "Sua matriz";
-$a->strings["Mark all matrix notifications seen"] = "Marcar todas as notificações da matriz como vistas";
-$a->strings["Channel Home"] = "Página inicial do canal";
-$a->strings["Channel home"] = "Página inicial do canal";
-$a->strings["Mark all channel notifications seen"] = "Marcar todas as notificações de canais como vistas";
-$a->strings["Connections"] = "Conexões";
-$a->strings["Notices"] = "Notificações";
-$a->strings["Notifications"] = "Notificações";
-$a->strings["See all notifications"] = "Ver todas as notificações";
-$a->strings["Mark all system notifications seen"] = "Marcar todas as notificações de sistema como vistas";
-$a->strings["Mail"] = "Mensagens";
-$a->strings["Private mail"] = "Mensagens privadas";
-$a->strings["See all private messages"] = "Ver todas as mensagens privadas";
-$a->strings["Mark all private messages seen"] = "Marcar todas as mensagens privadas como vistas";
-$a->strings["Inbox"] = "Recebidas";
-$a->strings["Outbox"] = "Enviadas";
-$a->strings["New Message"] = "Nova mensagem";
-$a->strings["Event Calendar"] = "Agenda de eventos";
-$a->strings["See all events"] = "Ver todos os eventos";
-$a->strings["Mark all events seen"] = "Marcar todos os eventos como vistos";
-$a->strings["Channel Select"] = "Seleção de canal";
-$a->strings["Manage Your Channels"] = "Gerencie os seus canais";
-$a->strings["Settings"] = "Configurações";
-$a->strings["Account/Channel Settings"] = "Configurações da conta/canal";
-$a->strings["Manage/Edit Friends and Connections"] = "Gerenciar/editar os amigos e as conexões";
-$a->strings["Admin"] = "Admin";
-$a->strings["Site Setup and Configuration"] = "Configuração do site";
-$a->strings["Nothing new here"] = "Nada de novo aqui";
-$a->strings["Please wait..."] = "Por favor, aguarde...";
$a->strings["%1\$s's bookmarks"] = "Links guardados de %1\$s";
-$a->strings["Missing room name"] = "Nome da sala vazio";
-$a->strings["Duplicate room name"] = "Nome da sala duplicado";
-$a->strings["Invalid room specifier."] = "Especificador de sala inválido.";
-$a->strings["Room not found."] = "A sala não foi encontrada.";
-$a->strings["Room is full"] = "A sala está cheia";
+$a->strings["prev"] = "anterior";
+$a->strings["first"] = "primeiro";
+$a->strings["last"] = "último";
+$a->strings["next"] = "próximo";
+$a->strings["older"] = "mais antigo";
+$a->strings["newer"] = "mais recente";
+$a->strings["No connections"] = "Nenhuma conexão";
+$a->strings["%d Connection"] = array(
+ 0 => "%d conexão",
+ 1 => "%d conexões",
+);
+$a->strings["View Connections"] = "Ver conexões";
+$a->strings["Save"] = "Salvar";
+$a->strings["poke"] = "cutucar";
+$a->strings["ping"] = "pingar";
+$a->strings["pinged"] = "pingou";
+$a->strings["prod"] = "espetar";
+$a->strings["prodded"] = "espetou";
+$a->strings["slap"] = "estapear";
+$a->strings["slapped"] = "estapeou";
+$a->strings["finger"] = "dar um toque";
+$a->strings["fingered"] = "deu um toque";
+$a->strings["rebuff"] = "rebater";
+$a->strings["rebuffed"] = "rebateu";
+$a->strings["happy"] = "feliz";
+$a->strings["sad"] = "triste";
+$a->strings["mellow"] = "suave";
+$a->strings["tired"] = "cansad@";
+$a->strings["perky"] = "animad@";
+$a->strings["angry"] = "nervos@";
+$a->strings["stupified"] = "embasbacad@";
+$a->strings["puzzled"] = "confus@";
+$a->strings["interested"] = "interessad@";
+$a->strings["bitter"] = "amarg@";
+$a->strings["cheerful"] = "animad@";
+$a->strings["alive"] = "viv@";
+$a->strings["annoyed"] = "aborrecid@";
+$a->strings["anxious"] = "ansios@";
+$a->strings["cranky"] = "irritad@";
+$a->strings["disturbed"] = "perturbad@";
+$a->strings["frustrated"] = "frustrad@";
+$a->strings["depressed"] = "deprimido";
+$a->strings["motivated"] = "motivad@";
+$a->strings["relaxed"] = "relaxad@";
+$a->strings["surprised"] = "surpres@";
+$a->strings["Monday"] = "Segunda";
+$a->strings["Tuesday"] = "Terça";
+$a->strings["Wednesday"] = "Quarta";
+$a->strings["Thursday"] = "Quinta";
+$a->strings["Friday"] = "Sexta";
+$a->strings["Saturday"] = "SaÌbado";
+$a->strings["Sunday"] = "Domingo";
+$a->strings["January"] = "Janeiro";
+$a->strings["February"] = "Fevereiro";
+$a->strings["March"] = "Março";
+$a->strings["April"] = "Abril";
+$a->strings["May"] = "Maio";
+$a->strings["June"] = "Junho";
+$a->strings["July"] = "Julho";
+$a->strings["August"] = "Agosto";
+$a->strings["September"] = "Setembro";
+$a->strings["October"] = "Outubro";
+$a->strings["November"] = "Novembro";
+$a->strings["December"] = "Dezembro";
+$a->strings["unknown.???"] = "desconhecido.???";
+$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"] = "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: ";
+$a->strings["Select an alternate language"] = "Selecione um idioma alternativo";
+$a->strings["activity"] = "atividade";
+$a->strings["Design"] = "Design";
+$a->strings["Blocks"] = "Blocos";
+$a->strings["Menus"] = "Menus";
+$a->strings["Layouts"] = "Layouts";
+$a->strings["Pages"] = "Páginas";
$a->strings["Tags"] = "Etiquetas";
$a->strings["Keywords"] = "Palavras-chave";
$a->strings["have"] = "tenho";
@@ -293,13 +289,11 @@ $a->strings["like"] = "gostei";
$a->strings["likes"] = "gosta";
$a->strings["dislike"] = "não gostei";
$a->strings["dislikes"] = "desgosta";
+$a->strings["__ctx:noun__ Like"] = array(
+ 0 => "gostou",
+ 1 => "gostaram",
+);
$a->strings["Default"] = "Default";
-$a->strings["Unknown | Not categorised"] = "Desconhecido | Não categorizado";
-$a->strings["Block immediately"] = "Bloquear imediatamente";
-$a->strings["Shady, spammer, self-marketer"] = "Suspeito, spammer, propagandista";
-$a->strings["Known to me, but no opinion"] = "Eu conheço, mas não tenho opinião a respeito";
-$a->strings["OK, probably harmless"] = "Ok, provavelmente inofensivo";
-$a->strings["Reputable, has my trust"] = "Boa reputação, tem minha confiança";
$a->strings["Frequently"] = "Frequentemente";
$a->strings["Hourly"] = "De hora em hora";
$a->strings["Twice daily"] = "Duas vezes ao dia";
@@ -339,8 +333,29 @@ $a->strings["%d connection in common"] = array(
1 => "%d conexões em comum",
);
$a->strings["show more"] = "exibir mais";
+$a->strings["l F d, Y \\@ g:i A"] = "l F d, Y \\@ g:i A";
+$a->strings["Starts:"] = "Início:";
+$a->strings["Finishes:"] = "Fim:";
+$a->strings["Location:"] = "Localização:";
$a->strings["This event has been added to your calendar."] = "Esse evento foi adicionado ao seu calendário.";
-$a->strings["Edit File properties"] = "Editar propriedades do arquivo";
+$a->strings["Not a valid email address"] = "Não é um endereço de e-mail válido";
+$a->strings["Your email domain is not among those allowed on this site"] = "O domínio do seu e-mail não está entre os permitidos neste site";
+$a->strings["Your email address is already registered at this site."] = "O seu endereço de e-mail já está registrado neste site.";
+$a->strings["An invitation is required."] = "É necessário um convite.";
+$a->strings["Invitation could not be verified."] = "Não foi possível verificar o convite.";
+$a->strings["Please enter the required information."] = "Por favor, forneça a informação solicitada.";
+$a->strings["Failed to store account information."] = "Não foi possível armazenar a informação da conta.";
+$a->strings["Registration confirmation for %s"] = "Confirmação de registro para %s";
+$a->strings["Registration request at %s"] = "Solicitação de registro em %s";
+$a->strings["Administrator"] = "Administrador";
+$a->strings["your registration password"] = "sua senha de registro";
+$a->strings["Registration details for %s"] = "Detalhes do registro de %s";
+$a->strings["Account approved."] = "A conta foi aprovada.";
+$a->strings["Registration revoked for %s"] = "O registro de %s foi revogado";
+$a->strings["Account verified. Please login."] = "Conta verificada. Por favor faça o login.";
+$a->strings["Click here to upgrade."] = "Clique aqui para atualizar.";
+$a->strings["This action exceeds the limits set by your subscription plan."] = "Essa ação excede o limite definido para o seu plano de assinatura.";
+$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["Miscellaneous"] = "Miscelânea";
$a->strings["year"] = "ano";
$a->strings["month"] = "mês";
@@ -368,6 +383,7 @@ $a->strings["Newest to Oldest"] = "Das mais recentes para as mais antigas";
$a->strings["Enable Safe Search"] = "Habilitar busca tranquila";
$a->strings["Disable Safe Search"] = "Desabilitar busca tranquila";
$a->strings["Safe Mode"] = "Modo tranquilo";
+$a->strings["Attachments:"] = "Anexos:";
$a->strings["Red Matrix Notification"] = "Notificação da Red Matrix";
$a->strings["redmatrix"] = "redmatrix";
$a->strings["Thank You,"] = "Obrigado(a),";
@@ -407,15 +423,45 @@ $a->strings["%1\$s, you've received [zrl=%2\$s]a friend suggestion[/zrl] for %3\
$a->strings["Name:"] = "Nome:";
$a->strings["Photo:"] = "Foto:";
$a->strings["Please visit %s to approve or reject the suggestion."] = "Por favor, visite %s para aprovar ou rejeitar a sugestão.";
+$a->strings["[Red:Notify]"] = "[Red:Notify]";
+$a->strings["parent"] = "nível superior";
+$a->strings["Collection"] = "Coleção";
+$a->strings["Principal"] = "Principal";
+$a->strings["Addressbook"] = "Livro de endereços";
+$a->strings["Calendar"] = "Calendário";
+$a->strings["Schedule Inbox"] = "Caixa de entrada da agenda";
+$a->strings["Schedule Outbox"] = "Caixa de saída da agenda";
+$a->strings["%1\$s used"] = "%1\$s usados";
+$a->strings["%1\$s used of %2\$s (%3\$s&#37;)"] = "%1\$s usados de %2\$s (%3\$s&#37;)";
+$a->strings["Name"] = "Nome";
+$a->strings["Type"] = "Tipo";
+$a->strings["Size"] = "Tamanho";
+$a->strings["Last Modified"] = "Última modificação";
+$a->strings["Total"] = "Total";
+$a->strings["Create new folder"] = "Criar uma nova pasta";
+$a->strings["Create"] = "Criar";
+$a->strings["Upload file"] = "Enviar arquivo";
+$a->strings["Upload"] = "Enviar";
+$a->strings["Missing room name"] = "Nome da sala vazio";
+$a->strings["Duplicate room name"] = "Nome da sala duplicado";
+$a->strings["Invalid room specifier."] = "Especificador de sala inválido.";
+$a->strings["Room not found."] = "A sala não foi encontrada.";
+$a->strings["Room is full"] = "A sala está cheia";
$a->strings["General Features"] = "Recursos gerais";
$a->strings["Content Expiration"] = "Expiração de conteúdo";
$a->strings["Remove posts/comments and/or private messages at a future time"] = "Remover publicações/comentários e/ou mensagens privadas num momento futuro.";
$a->strings["Multiple Profiles"] = "Múltiplos perfis";
$a->strings["Ability to create multiple profiles"] = "Possibilidade de criar múltiplos perfis";
+$a->strings["Advanced Profiles"] = "Perfis avançados";
+$a->strings["Additional profile sections and selections"] = "Seções e seleções adicionais no perfil";
+$a->strings["Profile Import/Export"] = "Importar/exportar perfis";
+$a->strings["Save and load profile details across sites/channels"] = "Salvar e carregar detalhes de perfis entre sites/canais";
$a->strings["Web Pages"] = "Páginas web";
$a->strings["Provide managed web pages on your channel"] = "Fornece páginas web gerenciáveis no seu canal";
$a->strings["Private Notes"] = "Notas privadas";
$a->strings["Enables a tool to store notes and reminders"] = "Habilita uma ferramenta para guardar notas e lembretes";
+$a->strings["Navigation Channel Select"] = "Seletor de canais na navegação";
+$a->strings["Change channels directly from within the navigation dropdown menu"] = "Trocar canais diretamente a partir do menu expansível na navegação";
$a->strings["Extended Identity Sharing"] = "Compartilhamento estendido de identidade";
$a->strings["Share your identity with all websites on the internet. When disabled, identity is only shared with sites in the matrix."] = "Compartilhar sua identidade com todos os websites na internet. Quando desabilitado, sua identidade é compartilhada apenas com outros sites na matrix.";
$a->strings["Expert Mode"] = "Modo Expert";
@@ -423,8 +469,8 @@ $a->strings["Enable Expert Mode to provide advanced configuration options"] = "O
$a->strings["Premium Channel"] = "Canal premium";
$a->strings["Allows you to set restrictions and terms on those that connect with your channel"] = "Permite definir restrições e termos para aqueles que se conectarem ao seu canal";
$a->strings["Post Composition Features"] = "Recursos de composição de publicações";
-$a->strings["Richtext Editor"] = "Editor richtext";
-$a->strings["Enable richtext editor"] = "Habilita o editor richtext";
+$a->strings["Use Markdown"] = "Usar Markdown";
+$a->strings["Allow use of \"Markdown\" to format posts"] = "Permitir o uso de \"Markdown\" para formatar publicações";
$a->strings["Post Preview"] = "Pré-visualizar a publicação";
$a->strings["Allow previewing posts and comments before publishing them"] = "Permite visualizar publicações e comentários antes de publicá-los";
$a->strings["Channel Sources"] = "Fontes do canal";
@@ -464,9 +510,26 @@ $a->strings["Channel is blocked on this site."] = "O canal está bloqueado neste
$a->strings["Channel location missing."] = "A localização do canal foi perdida";
$a->strings["Response from remote channel was incomplete."] = "A resposta do canal remoto está incompleta.";
$a->strings["Channel was deleted and no longer exists."] = "O canal foi deletado e não existe mais.";
+$a->strings["Protocol disabled."] = "Protocolo desabilitado.";
$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["Permission denied"] = "Permissão negada";
+$a->strings["(Unknown)"] = "(Desconhecido)";
+$a->strings["Visible to anybody on the internet."] = "Visívil para todos na internet.";
+$a->strings["Visible to you only."] = "Visível somente para você.";
+$a->strings["Visible to anybody in this network."] = "Visível para todos nesta rede.";
+$a->strings["Visible to anybody authenticated."] = "Visível para todos autenticados.";
+$a->strings["Visible to anybody on %s."] = "Visível para todos em %s.";
+$a->strings["Visible to all connections."] = "Visível para quaisquer conexões.";
+$a->strings["Visible to approved connections."] = "Visível para conexões aprovadas.";
+$a->strings["Visible to specific connections."] = "Visível para conexões específicas.";
+$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.";
+$a->strings["Collection: %s"] = "Coleção: %s";
+$a->strings["Connection: %s"] = "Conexão: %s";
+$a->strings["Connection not found."] = "A conexão não foi encontrada.";
$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."] = "Um grupo com esse nome, anteriormente excluído, foi reativado. Permissões de itens já existentes <strong>poderão</strong> ser aplicadas a esse grupo e qualquer futuros membros. Se não é essa a sua intenção, favor criar outro grupo com um nome diferente.";
$a->strings["Default privacy group for new contacts"] = "Grupo de privacidade padrão para novos contatos";
$a->strings["All Channels"] = "Todos os canais";
@@ -476,6 +539,13 @@ $a->strings["Edit collection"] = "Editar coleção";
$a->strings["Create a new collection"] = "Criar uma nova coleção";
$a->strings["Channels not in any collection"] = "Canais que não estão em nenhuma coleção";
$a->strings["add"] = "adicionar";
+$a->strings["Image/photo"] = "Imagem/foto";
+$a->strings["Encrypted content"] = "Conteúdo criptografado";
+$a->strings["QR code"] = "código QR";
+$a->strings["%1\$s wrote the following %2\$s %3\$s"] = "%1\$s escreveu a seguinte %2\$s %3\$s";
+$a->strings["post"] = "publicação";
+$a->strings["$1 spoiler"] = "$1 spoiler";
+$a->strings["$1 wrote:"] = "$1 escreveu:";
$a->strings["Unable to obtain identity information from database"] = "Não foi possível obter a informação da identidade a partir do banco de dados";
$a->strings["Empty name"] = "O nome está em branco";
$a->strings["Name too long"] = "O nome é muito grande";
@@ -488,7 +558,6 @@ $a->strings["Default Profile"] = "Perfil padrão";
$a->strings["Friends"] = "Amigos";
$a->strings["Requested channel is not available."] = "Canal solicitado não está disponível.";
$a->strings["Requested profile is not available."] = "O perfil solicitado não está disponível.";
-$a->strings["Connect"] = "Conectar";
$a->strings["Change profile photo"] = "Mudar a foto do perfil";
$a->strings["Profiles"] = "Perfis";
$a->strings["Manage/edit profiles"] = "Administrar/editar perfis";
@@ -509,8 +578,8 @@ $a->strings["Birthdays this week:"] = "Aniversários nesta semana:";
$a->strings["[No description]"] = "[Sem descrição]";
$a->strings["Event Reminders"] = "Lembretes de eventos";
$a->strings["Events this week:"] = "Eventos nesta semana:";
-$a->strings["Profile"] = "Perfil";
$a->strings["Full Name:"] = "Nome completo:";
+$a->strings["Like this channel"] = "Gostar deste canal";
$a->strings["j F, Y"] = "j \\d\\e F, Y";
$a->strings["j F"] = "j \\d\\e F";
$a->strings["Birthday:"] = "Aniversário:";
@@ -534,106 +603,58 @@ $a->strings["Film/dance/culture/entertainment:"] = "Filmes/dança/cultura/entret
$a->strings["Love/Romance:"] = "Amor/romance:";
$a->strings["Work/employment:"] = "Trabalho/emprego:";
$a->strings["School/education:"] = "Escola/educação:";
-$a->strings["view full size"] = "ver na tela inteira";
-$a->strings["prev"] = "anterior";
-$a->strings["first"] = "primeiro";
-$a->strings["last"] = "último";
-$a->strings["next"] = "próximo";
-$a->strings["older"] = "mais antigo";
-$a->strings["newer"] = "mais recente";
-$a->strings["No connections"] = "Nenhuma conexão";
-$a->strings["%d Connection"] = array(
- 0 => "%d conexão",
- 1 => "%d conexões",
-);
-$a->strings["View Connections"] = "Ver conexões";
-$a->strings["Save"] = "Salvar";
-$a->strings["poke"] = "cutucar";
-$a->strings["ping"] = "pingar";
-$a->strings["pinged"] = "pingou";
-$a->strings["prod"] = "espetar";
-$a->strings["prodded"] = "espetou";
-$a->strings["slap"] = "estapear";
-$a->strings["slapped"] = "estapeou";
-$a->strings["finger"] = "dar um toque";
-$a->strings["fingered"] = "deu um toque";
-$a->strings["rebuff"] = "rebater";
-$a->strings["rebuffed"] = "rebateu";
-$a->strings["happy"] = "feliz";
-$a->strings["sad"] = "triste";
-$a->strings["mellow"] = "suave";
-$a->strings["tired"] = "cansad@";
-$a->strings["perky"] = "animad@";
-$a->strings["angry"] = "nervos@";
-$a->strings["stupified"] = "embasbacad@";
-$a->strings["puzzled"] = "confus@";
-$a->strings["interested"] = "interessad@";
-$a->strings["bitter"] = "amarg@";
-$a->strings["cheerful"] = "animad@";
-$a->strings["alive"] = "viv@";
-$a->strings["annoyed"] = "aborrecid@";
-$a->strings["anxious"] = "ansios@";
-$a->strings["cranky"] = "irritad@";
-$a->strings["disturbed"] = "perturbad@";
-$a->strings["frustrated"] = "frustrad@";
-$a->strings["depressed"] = "deprimido";
-$a->strings["motivated"] = "motivad@";
-$a->strings["relaxed"] = "relaxad@";
-$a->strings["surprised"] = "surpres@";
-$a->strings["Monday"] = "Segunda";
-$a->strings["Tuesday"] = "Terça";
-$a->strings["Wednesday"] = "Quarta";
-$a->strings["Thursday"] = "Quinta";
-$a->strings["Friday"] = "Sexta";
-$a->strings["Saturday"] = "SaÌbado";
-$a->strings["Sunday"] = "Domingo";
-$a->strings["January"] = "Janeiro";
-$a->strings["February"] = "Fevereiro";
-$a->strings["March"] = "Março";
-$a->strings["April"] = "Abril";
-$a->strings["May"] = "Maio";
-$a->strings["June"] = "Junho";
-$a->strings["July"] = "Julho";
-$a->strings["August"] = "Agosto";
-$a->strings["September"] = "Setembro";
-$a->strings["October"] = "Outubro";
-$a->strings["November"] = "Novembro";
-$a->strings["December"] = "Dezembro";
-$a->strings["unknown.???"] = "desconhecido.???";
-$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"] = "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: ";
-$a->strings["Select an alternate language"] = "Selecione um idioma alternativo";
-$a->strings["activity"] = "atividade";
-$a->strings["Design"] = "Design";
-$a->strings["Blocks"] = "Blocos";
-$a->strings["Menus"] = "Menus";
-$a->strings["Layouts"] = "Layouts";
-$a->strings["Pages"] = "Páginas";
-$a->strings["Site Admin"] = "Administração do site";
-$a->strings["Address Book"] = "Livro de Endereços";
-$a->strings["Mood"] = "Humor";
-$a->strings["Probe"] = "Sonda";
-$a->strings["Suggest"] = "Sugerir";
-$a->strings["Update"] = "Atualizar";
-$a->strings["Install"] = "Instalar";
-$a->strings["Purchase"] = "Compras";
-$a->strings["Unknown"] = "Desconhecidos";
-$a->strings["Invalid data packet"] = "Pacote de dados inválido";
-$a->strings["Unable to verify channel signature"] = "Não foi possível verificar a assinatura do canal";
-$a->strings["Unable to verify site signature for %s"] = "Não foi possível verificar a assinatura do site para %s";
+$a->strings["Like this thing"] = "Gostar desta coisa";
+$a->strings["Logout"] = "Sair";
+$a->strings["End this session"] = "Encerrar essa sessão";
+$a->strings["Home"] = "Ver canal";
+$a->strings["Your posts and conversations"] = "Suas publicações e conversas";
+$a->strings["Your profile page"] = "A página do seu perfil";
+$a->strings["Edit Profiles"] = "Editar perfis";
+$a->strings["Manage/Edit profiles"] = "Administrar/Editar perfis";
+$a->strings["Edit your profile"] = "Editar seu perfil";
+$a->strings["Your photos"] = "Suas fotos";
+$a->strings["Your files"] = "Seus arquivos";
+$a->strings["Your chatrooms"] = "Suas salas de bate-papo";
+$a->strings["Your bookmarks"] = "Seus links guardados";
+$a->strings["Your webpages"] = "Suas páginas web";
+$a->strings["Sign in"] = "Entrar";
+$a->strings["%s - click to logout"] = "%s - clique para sair";
+$a->strings["Click to authenticate to your home hub"] = "Clique para se autenticar com seu hub de origem";
+$a->strings["Home Page"] = "Página inicial";
+$a->strings["Register"] = "Registrar";
+$a->strings["Create an account"] = "Criar uma conta";
+$a->strings["Help and documentation"] = "Ajuda e documentação";
+$a->strings["Apps"] = "Aplicações";
+$a->strings["Applications, utilities, links, games"] = "Aplicações, utilitários, links, jogos";
+$a->strings["Search site content"] = "Pesquisar o conteúdo do site";
+$a->strings["Channel Locator"] = "Localizador de canais";
+$a->strings["Your matrix"] = "Sua matriz";
+$a->strings["Mark all matrix notifications seen"] = "Marcar todas as notificações da matriz como vistas";
+$a->strings["Channel home"] = "Página inicial do canal";
+$a->strings["Mark all channel notifications seen"] = "Marcar todas as notificações de canais como vistas";
+$a->strings["Connections"] = "Conexões";
+$a->strings["Notices"] = "Notificações";
+$a->strings["Notifications"] = "Notificações";
+$a->strings["See all notifications"] = "Ver todas as notificações";
+$a->strings["Mark all system notifications seen"] = "Marcar todas as notificações de sistema como vistas";
+$a->strings["Private mail"] = "Mensagens privadas";
+$a->strings["See all private messages"] = "Ver todas as mensagens privadas";
+$a->strings["Mark all private messages seen"] = "Marcar todas as mensagens privadas como vistas";
+$a->strings["Inbox"] = "Recebidas";
+$a->strings["Outbox"] = "Enviadas";
+$a->strings["New Message"] = "Nova mensagem";
+$a->strings["Event Calendar"] = "Agenda de eventos";
+$a->strings["See all events"] = "Ver todos os eventos";
+$a->strings["Mark all events seen"] = "Marcar todos os eventos como vistos";
+$a->strings["Manage Your Channels"] = "Gerencie os seus canais";
+$a->strings["Account/Channel Settings"] = "Configurações da conta/canal";
+$a->strings["Admin"] = "Admin";
+$a->strings["Site Setup and Configuration"] = "Configuração do site";
+$a->strings["Please wait..."] = "Por favor, aguarde...";
$a->strings["No recipient provided."] = "Falta o destinatário.";
$a->strings["[no subject]"] = "[sem assunto]";
$a->strings["Unable to determine sender."] = "Não foi possível determinar o remetente.";
$a->strings["Stored post could not be verified."] = "Não foi possível verificar a publicação armazenada.";
-$a->strings["Click here to upgrade."] = "Clique aqui para atualizar.";
-$a->strings["This action exceeds the limits set by your subscription plan."] = "Essa ação excede o limite definido para o seu plano de assinatura.";
-$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["System"] = "Sistema";
$a->strings["Create Personal App"] = "Crie aplicações pessoais";
$a->strings["Edit Personal App"] = "Edite aplicações pessoais";
@@ -661,6 +682,7 @@ $a->strings["Feature settings"] = "Configurações dos recursos";
$a->strings["Display settings"] = "Configurações de exibição";
$a->strings["Connected apps"] = "Aplicações conectadas";
$a->strings["Export channel"] = "Exportar o canal";
+$a->strings["Export content"] = "Exportar conteúdo";
$a->strings["Automatic Permissions (Advanced)"] = "Permissões automáticas (avançado)";
$a->strings["Premium Channel Settings"] = "Configurações de canal premium";
$a->strings["Check Mail"] = "Checar mensagens";
@@ -669,10 +691,6 @@ $a->strings["Bookmarked Chatrooms"] = "Salas de bate-papo guardadas";
$a->strings["Suggested Chatrooms"] = "Salas de bate-papo sugeridas";
$a->strings["Save to Folder"] = "Salvar para pasta";
$a->strings["View all"] = "Ver tudo";
-$a->strings["__ctx:noun__ Like"] = array(
- 0 => "gostou",
- 1 => "gostaram",
-);
$a->strings["__ctx:noun__ Dislike"] = array(
0 => "desgostou",
1 => "desgostaram",
@@ -722,6 +740,7 @@ $a->strings["Secret Passphrase"] = "Frase secreta";
$a->strings["Passphrase hint"] = "Dica da frase secreta";
$a->strings["Notice: Permissions have changed but have not yet been submitted."] = "Atenção: permissões foram modificadas mas ainda não foram enviadas.";
$a->strings["close all"] = "fechar tudo";
+$a->strings["Nothing new here"] = "Nada de novo aqui";
$a->strings["timeago.prefixAgo"] = "timeago.prefixAgo";
$a->strings["timeago.prefixFromNow"] = "timeago.prefixFromNow";
$a->strings["ago"] = "atrás";
@@ -741,6 +760,7 @@ $a->strings[" "] = " ";
$a->strings["timeago.numbers"] = "timeago.numbers";
$a->strings["New window"] = "Nova janela";
$a->strings["Open the selected location in a different window or browser tab"] = "Abre a localização selecionada em outra aba ou janela";
+$a->strings["User '%s' deleted"] = "O usuário/a '%s' foi deletado/a";
$a->strings["Male"] = "Masculino";
$a->strings["Female"] = "Feminino";
$a->strings["Currently Male"] = "Atualmente masculino";
@@ -801,7 +821,36 @@ $a->strings["Ask me"] = "Pergunte-me";
$a->strings["Logged out."] = "Você saiu.";
$a->strings["Failed authentication"] = "Não foi possível autenticar";
$a->strings["Login failed."] = "Não foi possível entrar.";
-$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.";
+$a->strings["Can view my normal stream and posts"] = "Pode ver meus fluxo e publicações normais";
+$a->strings["Can view my default channel profile"] = "Pode ver o perfil padrão do meu canal";
+$a->strings["Can view my photo albums"] = "Pode ver meus álbuns de fotos";
+$a->strings["Can view my connections"] = "Pode ver minhas conexões";
+$a->strings["Can view my file storage"] = "Pode ver meu armazenamento de arquivos";
+$a->strings["Can view my webpages"] = "Pode ver minhas páginas web";
+$a->strings["Can send me their channel stream and posts"] = "Pode me enviar seu fluxo e publicações";
+$a->strings["Can post on my channel page (\"wall\")"] = "Pode publicar na página do meu canal (\"mural\")";
+$a->strings["Can comment on or like my posts"] = "Pode comentar em ou gostar de minhas publicações";
+$a->strings["Can send me private mail messages"] = "Pode me enviar mensagens privadas";
+$a->strings["Can post photos to my photo albums"] = "Pode publicar fotos nos meus álbuns de fotos";
+$a->strings["Can like/dislike stuff"] = "Pode gostar/desgostar de coisas";
+$a->strings["Profiles and things other than posts/comments"] = "Perfis e coisas que não publicações/comentários";
+$a->strings["Can forward to all my channel contacts via post @mentions"] = "Pode encaminhar para todos os contatos do meu canal via @menções na publicação";
+$a->strings["Advanced - useful for creating group forum channels"] = "Avançado - útil para criar canais de fóruns de grupos";
+$a->strings["Can chat with me (when available)"] = "Pode conversar comigo (quando disponívei)";
+$a->strings["Can write to my file storage"] = "Pode escrever em meu armazenamento de arquivos";
+$a->strings["Can edit my webpages"] = "Pode editar minhas páginas web";
+$a->strings["Can source my public posts in derived channels"] = "Pode usar minhas publicações públicas como fonte para canais derivados";
+$a->strings["Somewhat advanced - very useful in open communities"] = "Avançado - muito útil em comunidades abertas";
+$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["Social Networking"] = "Rede social";
+$a->strings["Mostly Public"] = "Padrão público";
+$a->strings["Restricted"] = "Restrito";
+$a->strings["Private"] = "Privado";
+$a->strings["Community Forum"] = "Fórum de comunidade";
+$a->strings["Feed Republish"] = "Republicação de feed";
+$a->strings["Celebrity/Soapbox"] = "Personalidade/Palanque";
+$a->strings["Custom/Expert Mode"] = "Personalizado/Modo expert";
$a->strings["Set your current mood and tell your friends"] = "Marque seu humor atual e compartilhe com seus amigos";
$a->strings["Menu not found."] = "O menu não foi encontrado.";
$a->strings["Menu element updated."] = "O elemento de menu foi atualizado.";
@@ -827,167 +876,129 @@ $a->strings["Use Red magic-auth if available"] = "Usar <em>Red magic-auth</em> s
$a->strings["Open link in new window"] = "Abrir link em uma nova janela";
$a->strings["Order in list"] = "Ordem na lista";
$a->strings["Higher numbers will sink to bottom of listing"] = "Números mais altos descem para o fim da lista";
-$a->strings["Create"] = "Criar";
$a->strings["Menu item not found."] = "O item de menu não foi encontrado.";
$a->strings["Menu item deleted."] = "O item de menu foi deletado.";
$a->strings["Menu item could not be deleted."] = "Não foi possível deletar o item de menu.";
$a->strings["Edit Menu Element"] = "Editar elemento de menu";
$a->strings["Modify"] = "Modificar";
+$a->strings["Some blurb about what to do when you're new here"] = "Alguma coisa sobre o que fazer quando se é novo aqui";
$a->strings["sent you a private message"] = "lhe enviou uma mensagem privada";
$a->strings["added your channel"] = "adicionou seu canal";
$a->strings["posted an event"] = "publicou um evento";
$a->strings["network"] = "+ rede";
-$a->strings["Theme settings updated."] = "As configurações de tema foram atualizadas.";
-$a->strings["Site"] = "Site";
-$a->strings["Accounts"] = "Contas";
-$a->strings["Channels"] = "Canais";
-$a->strings["Plugins"] = "Plugins";
-$a->strings["Themes"] = "Temas";
-$a->strings["Server"] = "Servidor";
-$a->strings["DB updates"] = "Atualizações do Banco de Dados";
-$a->strings["Logs"] = "Logs";
-$a->strings["Plugin Features"] = "Recursos dos plugins";
-$a->strings["User registrations waiting for confirmation"] = "Registros de usuário aguardando confirmação";
-$a->strings["Message queues"] = "Filas de mensagem";
-$a->strings["Administration"] = "Administração";
-$a->strings["Summary"] = "Resumo";
-$a->strings["Registered users"] = "Usuários registrados";
-$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["Name is required"] = "É necessário informar o nome";
+$a->strings["Key and Secret are required"] = "A chave e o segredo são obrigatórios";
+$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 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["Remove this account from this server including all its channels"] = "Remove esta conta deste servidor incluindo todos os seus canais.";
+$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["No special theme for accessibility"] = "Sem tema especial para acessibilidade";
+$a->strings["%s - (Experimental)"] = "%s - (Experimental)";
+$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["Enable user zoom on mobile devices"] = "Permitir zoom pelo usuário em dispositivos móveis";
+$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["Link post titles to source"] = "Ligar o título dos posts à fonte";
+$a->strings["System Page Layout Editor - (advanced)"] = "Editor de layout de página do sistema - (avançado)";
+$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["Approved connections"] = "Conexões aprovadas";
+$a->strings["Any connections"] = "Quaisquer conexões";
+$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 - with approval"] = "Sim - pendente aprovação";
$a->strings["Yes"] = "Sim";
-$a->strings["My site is not a public server"] = "Meu site não é um servidor público";
-$a->strings["My site has paid access only"] = "Meu site oferece somente acesso pago";
-$a->strings["My site has free access only"] = "Meu site oferece somente acesso gratuito";
-$a->strings["My site offers free accounts with optional paid upgrades"] = "Meu site oferece contas gratuitas com recursos adicionais pagos";
-$a->strings["Registration"] = "Registro";
-$a->strings["File upload"] = "Carregamento de arquivos";
-$a->strings["Policies"] = "Políticas";
-$a->strings["Site name"] = "Nome do site";
-$a->strings["Banner/Logo"] = "Cartaz/Logo";
-$a->strings["Administrator Information"] = "Informações do Administrador";
-$a->strings["Contact information for site administrators. Displayed on siteinfo page. BBCode can be used here"] = "Informações de contato com administradores do site. Exibida na página siteinfo. BBCode pode ser usado aqui.";
-$a->strings["System language"] = "Idioma do sistema";
-$a->strings["System theme"] = "Tema do sistema";
-$a->strings["Default system theme - may be over-ridden by user profiles - <a href='#' id='cnftheme'>change theme settings</a>"] = "Tema padrão do sistema - pode ser sobrescrito por perfis de usuário - <a href='#' id='cnftheme'>mudar configurações do tema</a>";
-$a->strings["Mobile system theme"] = "Tema do sistema móvel";
-$a->strings["Theme for mobile devices"] = "Tema para dispositivos móveis";
-$a->strings["Accessibility system theme"] = "Tema do sistema acessível";
-$a->strings["Accessibility theme"] = "Tema acessível";
-$a->strings["Channel to use for this website's static pages"] = "Canal a utilizar para as páginas estáticas desse website";
-$a->strings["Site Channel"] = "Canal do site";
-$a->strings["Maximum image size"] = "Tamanho máximo de imagens";
-$a->strings["Maximum size in bytes of uploaded images. Default is 0, which means no limits."] = "Tamanho máximo em bytes de imagens carregadas. O padrão é 0, significando sem limites.";
-$a->strings["Does this site allow new member registration?"] = "Este site permite o registro de novos membros?";
-$a->strings["Which best describes the types of account offered by this hub?"] = "Qual descreve melhor os tipos de conta oferecidas por este hub?";
-$a->strings["Register text"] = "Texto de registro";
-$a->strings["Will be displayed prominently on the registration page."] = "Será exibido proeminentemente na página de registro.";
-$a->strings["Accounts abandoned after x days"] = "Contas abandonadas após x dias";
-$a->strings["Will not waste system resources polling external sites for abandonded accounts. Enter 0 for no time limit."] = "Não gastará recursos do sistema coletando de sites externos para contas abandonadas. Use 0 para sem limite de tempo.";
-$a->strings["Allowed friend domains"] = "Domínios permitidos para amigos";
-$a->strings["Comma separated list of domains which are allowed to establish friendships with this site. Wildcards are accepted. Empty to allow any domains"] = "Lista, separada por vírgulas, de domínios permitidos para estabelecer amizades com este site. <em>Wildcards</em> são aceitas. Vazio para permitir qualquer domínio";
-$a->strings["Allowed email domains"] = "Domínios permitidos de e-mail";
-$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"] = "Lista, separada por vírgulas, de domínios permitidos em endereços de e-mail para registros nesse site. <em>Wildcards</em> são aceitas. Vazio para permitir qualquer domínio";
-$a->strings["Block public"] = "Bloquear público";
-$a->strings["Check to block public access to all otherwise public personal pages on this site unless you are currently logged in."] = "Marque para bloquear o acesso público a todas as páginas pessoais que seriam públicas, a não ser que se esteja autenticado.";
-$a->strings["Force publish"] = "Forçar publicação";
-$a->strings["Check to force all profiles on this site to be listed in the site directory."] = "Marque para forçar todos os perfis neste site a aparecerem listados no diretório do site.";
-$a->strings["Disable discovery tab"] = "Desabilitar a aba \"Descubra\"";
-$a->strings["Remove the tab in the network view with public content pulled from sources chosen for this site."] = "Remove da visualização de rede a aba com conteúdos públicos obtidos de fontes escolhidas para esse site.";
-$a->strings["No login on Homepage"] = "Sem formulário de autenticação na página inicial";
-$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)."] = "Marque para esconder o formulário de autenticação da página inicial do seu site quando visitantes chegarem sem estar autenticados (e.g. quando você inclui os conteúdos da página inicial através do canal do site).";
-$a->strings["Proxy user"] = "Usuário do proxy";
-$a->strings["Proxy URL"] = "URL do proxy";
-$a->strings["Network timeout"] = "Timeout da rede";
-$a->strings["Value is in seconds. Set to 0 for unlimited (not recommended)."] = "Valor em segundos. Use 0 para ilimitado (não recomendado).";
-$a->strings["Delivery interval"] = "Intervalo de entrega";
-$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."] = "Atrase os processos de entrega em segundo plano por este número de segundos para reduzir a carga do sistema. Recomendado: 4-5 para hosts compartilhados, 2-3 para servidores virtuais privados. 0-1 para grandes servidores dedicados.";
-$a->strings["Poll interval"] = "Intervalo de coleta";
-$a->strings["Delay background polling processes by this many seconds to reduce system load. If 0, use delivery interval."] = "Atrase os processos de coleta em segundo plano por este número de segundos para reduzir a carga do sistema. Se 0, use o intervalo de entrega.";
-$a->strings["Maximum Load Average"] = "Carga média máxima";
-$a->strings["Maximum system load before delivery and poll processes are deferred - default 50."] = "Carga máxima do sistema antes de adiar processos de entrega e coleta - padrão 50.";
-$a->strings["No server found"] = "Nenhum servidor foi encontrado";
-$a->strings["ID"] = "ID";
-$a->strings["for channel"] = "para o canal";
-$a->strings["on server"] = "no servidor";
-$a->strings["Status"] = "Status";
-$a->strings["Update has been marked successful"] = "A atualização foi designada bem sucedida";
-$a->strings["Executing %s failed. Check system logs."] = "Execução de %s falhou. Verifique os logs do sistema.";
-$a->strings["Update %s was successfully applied."] = "A atualização %s foi aplicada com sucesso.";
-$a->strings["Update %s did not return a status. Unknown if it succeeded."] = "A atualização %s não retornou um status. Situação incerta quando ao seu sucesso.";
-$a->strings["Update function %s could not be found."] = "A função de atualização %s não foi encontrada.";
-$a->strings["No failed updates."] = "Nenhuma falha nas atualizações.";
-$a->strings["Failed Updates"] = "Falha nas atualizações";
-$a->strings["Mark success (if update was manually applied)"] = "Marque sucesso (se a atualização foi aplicada manualmente)";
-$a->strings["Attempt to execute this update step automatically"] = "Tente executar este passo da atualização automaticamente";
-$a->strings["%s user blocked/unblocked"] = array(
- 0 => "%s usuário foi bloqueado/desbloqueado",
- 1 => "%s usuários foram bloqueados/desbloqueados",
-);
-$a->strings["%s user deleted"] = array(
- 0 => "%s usuário foi deletado",
- 1 => "%s usuários foram deletados",
-);
-$a->strings["Account not found"] = "A conta não foi encontrada";
-$a->strings["User '%s' deleted"] = "O usuário/a '%s' foi deletado/a";
-$a->strings["User '%s' unblocked"] = "O usuário/a '%s' foi desbloqueado/a";
-$a->strings["User '%s' blocked"] = "O usuário/a '%s' foi bloqueado/a";
-$a->strings["Users"] = "Usuários";
-$a->strings["select all"] = "selecionar tudo";
-$a->strings["User registrations waiting for confirm"] = "Registros de usuário aguardando confirmação";
-$a->strings["Request date"] = "Data de requisição";
-$a->strings["No registrations."] = "Nenhum registro.";
-$a->strings["Approve"] = "Aprovar";
-$a->strings["Deny"] = "Negar";
-$a->strings["Block"] = "Bloquear";
-$a->strings["Unblock"] = "Desbloquear";
-$a->strings["Register date"] = "Data de registro";
-$a->strings["Last login"] = "Última autenticação";
-$a->strings["Expires"] = "Expira";
-$a->strings["Service Class"] = "Classe de serviço";
-$a->strings["Selected users will be deleted!\\n\\nEverything these users had posted on this site will be permanently deleted!\\n\\nAre you sure?"] = "Os usuários selecionados serão deletados!\\n\\nTudo o que esses usuários postaram neste site será permanentemente deletado!\\n\\nTem certeza?";
-$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?"] = "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?";
-$a->strings["%s channel censored/uncensored"] = array(
- 0 => "%s canal censurado/descensurado",
- 1 => "%s canais censurados/descensurados",
-);
-$a->strings["%s channel deleted"] = array(
- 0 => "%s canal deletado",
- 1 => "%s canais deletados",
-);
-$a->strings["Channel not found"] = "Canal não encontrado";
-$a->strings["Channel '%s' deleted"] = "Canal '%s' deletado";
-$a->strings["Channel '%s' uncensored"] = "Canal '%s' não censurado";
-$a->strings["Channel '%s' censored"] = "Canal '%s' censurado";
-$a->strings["Censor"] = "Censurar";
-$a->strings["Uncensor"] = "Não censurar";
-$a->strings["UID"] = "UID";
-$a->strings["Name"] = "Nome";
-$a->strings["Address"] = "Endereço";
-$a->strings["Selected channels will be deleted!\\n\\nEverything that was posted in these channels on this site will be permanently deleted!\\n\\nAre you sure?"] = "Os canais selecionados serão deletados!\\n\\nTudo que foi postado nesses canais nesse site será permanentemente deletado!\\n\\nVocê tem certeza?";
-$a->strings["The channel {0} will be deleted!\\n\\nEverything that was posted in this channel on this site will be permanently deleted!\\n\\nAre you sure?"] = "O canal {0} será deletado!\\n\\nTudo o que foi postado nesse canal nesse site será permanentemente deletado!\\n\\nVocê tem certeza?";
-$a->strings["Plugin %s disabled."] = "Plugin %s desabilitado.";
-$a->strings["Plugin %s enabled."] = "Plugin %s habilitado.";
-$a->strings["Disable"] = "Desabilitar";
-$a->strings["Enable"] = "Habilitar";
-$a->strings["Toggle"] = "Alternar";
-$a->strings["Author: "] = "Autor:";
-$a->strings["Maintainer: "] = "Mantenedor:";
-$a->strings["No themes found."] = "Nenhum tema foi encontrado.";
-$a->strings["Screenshot"] = "Captura de tela";
-$a->strings["[Experimental]"] = "[Experimental]";
-$a->strings["[Unsupported]"] = "[Desassistido]";
-$a->strings["Log settings updated."] = "As configurações de log foram atualizadas.";
-$a->strings["Clear"] = "Limpar";
-$a->strings["Debugging"] = "Depuração";
-$a->strings["Log file"] = "Arquivo de log";
-$a->strings["Must be writable by web server. Relative to your Red top-level directory."] = "É necessário que o servidor web possa escrever neste arquivo. Relativo ao diretório raiz da Red.";
-$a->strings["Log level"] = "Nível do log";
+$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["Geographical location to display on your posts"] = "Localização geográfica para exibir em 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["Your permissions are already configured. Click to view/adjust"] = "Suas permissões já foram configuradas. Clique para vê-las/ajustá-las";
+$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["Expire other channel content after this many days"] = "Expirar outros conteúdos do canal após este número de dias";
+$a->strings["0 or blank prevents expiration"] = "0 ou em branco previne expiração";
+$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 a connection request"] = "Você recebe uma solicitação de conexão";
+$a->strings["Your connections are confirmed"] = "Suas conexões são 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 comenta uma publicação";
+$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["Remove this channel"] = "Remover este canal";
$a->strings["Poke/Prod"] = "Cutucar/Espetar";
$a->strings["poke, prod or do other things to somebody"] = "Cutucar, espetar ou fazer outras coisas a alguém";
$a->strings["Recipient"] = "Destinatário";
@@ -1004,31 +1015,23 @@ $a->strings["Fetching URL returns error: %1\$s"] = "Carregar o URL retorna o err
$a->strings["Invalid item."] = "Item inválido.";
$a->strings["Channel not found."] = "O canal não foi encontrado.";
$a->strings["Page not found."] = "Página não encontrada.";
-$a->strings["Image uploaded but image cropping failed."] = "A imagem foi enviada, mas não foi possível cortá-la.";
-$a->strings["Image resize failed."] = "Falha ao modificar o tamanho da imagem.";
-$a->strings["Shift-reload the page or clear browser cache if the new photo does not display immediately."] = "Se a nova foto não aparecer imediatamente, recarregue a página segurando a tecla \"shift\" ou limpe o cache do navegador, ";
-$a->strings["Image exceeds size limit of %d"] = "A imagem excede o limite de tamanho de %d";
-$a->strings["Unable to process image."] = "Não foi possível processar a imagem.";
-$a->strings["Photo not available."] = "A foto não está disponível.";
-$a->strings["Upload File:"] = "Enviar arquivo:";
-$a->strings["Select a profile:"] = "Selecione um perfil:";
-$a->strings["Upload Profile Photo"] = "Enviar foto do perfil";
-$a->strings["Upload"] = "Enviar";
-$a->strings["or"] = "ou";
-$a->strings["skip this step"] = "pule esta etapa";
-$a->strings["select a photo from your photo albums"] = "selecione uma foto do seu álbum de fotos";
-$a->strings["Crop Image"] = "Cortar a imagem";
-$a->strings["Please adjust the image cropping for optimum viewing."] = "Por favor, ajuste o corte da imagem para a melhor visualização.";
-$a->strings["Done Editing"] = "Encerrar a edição";
-$a->strings["Image uploaded successfully."] = "A imagem foi enviada com sucesso.";
-$a->strings["Image upload failed."] = "Não foi possível enviar a imagem.";
-$a->strings["Image size reduction [%s] failed."] = "Não foi possível reduzir o tamanho da imagem [%s].";
+$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["Red"] = "Red";
+$a->strings["This is a hub of the Red Matrix - a global cooperative network of decentralized privacy enhanced websites."] = "Este é um hub da Red Matrix - uma rede global cooperativa de websites descentralizados com privacidade aprimorada.";
+$a->strings["Running at web location"] = "Sendo executado no endereço web";
+$a->strings["Please visit <a href=\"http://getzot.com\">GetZot.com</a> to learn more about the Red Matrix."] = "Para aprender mais sobre a Red Matrix, visite <a href=\"http://getzot.com\">GetZot.com</a>.";
+$a->strings["Bug reports and issues: please visit"] = "Relatos e acompanhamentos de erros podem ser encontrados em";
+$a->strings["Suggestions, praise, etc. - please email \"redmatrix\" at librelist - dot com"] = "Sugestões, elogios, etc - mande um e-mail para \"redmatrix\" arrôba librelist ponto com";
+$a->strings["Site Administrators"] = "Administradores do site";
$a->strings["Block Name"] = "Nome do bloco";
$a->strings["Profile not found."] = "O perfil não foi encontrado.";
$a->strings["Profile deleted."] = "O perfil foi excluído.";
$a->strings["Profile-"] = "Perfil-";
$a->strings["New profile created."] = "O novo perfil foi criado.";
$a->strings["Profile unavailable to clone."] = "O perfil não está disponível para clonagem.";
+$a->strings["Profile unavailable to export."] = "Perfil indisponível para exportar.";
$a->strings["Profile Name is required."] = "É obrigatório informar o nome do perfil.";
$a->strings["Marital Status"] = "Estado civil";
$a->strings["Romantic Partner"] = "Parceiro/a romântico/a";
@@ -1041,6 +1044,7 @@ $a->strings["Gender"] = "Gênero";
$a->strings["Sexual Preference"] = "Preferência sexual";
$a->strings["Homepage"] = "Página web";
$a->strings["Interests"] = "Interesses";
+$a->strings["Address"] = "Endereço";
$a->strings["Location"] = "Localização";
$a->strings["Profile updated."] = "O perfil foi atualizado.";
$a->strings["Hide your contact/friend list from viewers of this profile?"] = "Esconder sua lista de contatos/amigos dos visitantes no seu perfil?";
@@ -1050,6 +1054,8 @@ $a->strings["Change Profile Photo"] = "Mudar a foto do perfil";
$a->strings["Create a new profile using these settings"] = "Criar um novo perfil usando estas configurações";
$a->strings["Clone this profile"] = "Clonar este perfil";
$a->strings["Delete this profile"] = "Excluir este perfil";
+$a->strings["Import profile from file"] = "Importar perfil dum arquivo";
+$a->strings["Export profile to file"] = "Exportar perfil para arquivo";
$a->strings["Profile Name:"] = "Nome do perfil:";
$a->strings["Your Full Name:"] = "Seu nome completo:";
$a->strings["Title/Description:"] = "Título/Descrição:";
@@ -1080,7 +1086,7 @@ $a->strings["Film/dance/culture/entertainment"] = "Filme/dança/cultura/entreten
$a->strings["Love/romance"] = "Amor/romance";
$a->strings["Work/employment"] = "Trabalho/emprego";
$a->strings["School/education"] = "Escola/educação";
-$a->strings["This is your <strong>public</strong> profile.<br />It <strong>may</strong> be visible to anybody using the internet."] = "Este é o seu perfil <strong>público</strong>.<br />Ele <strong>pode</strong> estar visível para qualquer um que acesse a Internet.";
+$a->strings["This is your default profile."] = "Este é seu perfil padrão.";
$a->strings["Age: "] = "Idade: ";
$a->strings["Edit/Manage Profiles"] = "Editar/Administrar perfis";
$a->strings["Add profile things"] = "Adicionar coisas ao perfil";
@@ -1126,6 +1132,7 @@ $a->strings["This site has exceeded the number of allowed daily account registra
$a->strings["Terms of Service"] = "Termos de Serviço";
$a->strings["I accept the %s for this website"] = "Eu aceito os %s deste website.";
$a->strings["I am over 13 years of age and accept the %s for this website"] = "Eu sou maior de 13 anos e aceito os %s deste website";
+$a->strings["Registration"] = "Registro";
$a->strings["Membership on this site is by invitation only."] = "Novas contas neste site se dão apenas por convite.";
$a->strings["Please enter your invitation code"] = "Por favor, digite o código do seu convite";
$a->strings["Your email address"] = "Seu endereço de e-mail";
@@ -1135,6 +1142,7 @@ $a->strings["Away"] = "Ausente";
$a->strings["Online"] = "Online";
$a->strings["Please login."] = "Por favor, autentique-se.";
$a->strings["Red Matrix - Guests: Username: {your email address}, Password: +++"] = "Red Matrix - Visitantes: Usuário: {seu endereço de e-mail}, Senha: +++";
+$a->strings["Channel removals are not allowed within 48 hours of changing the account password."] = "A remoção da canais fica desabilitada por 48 horas após uma troca de senha da conta.";
$a->strings["Remove This Channel"] = "Remover este canal";
$a->strings["This will completely remove this channel from the network. Once this has been done it is not recoverable."] = "Isso irá remover completamente este canal da rede. Uma vez que seja feito não será possível recuperá-lo.";
$a->strings["Please enter your password for verification:"] = "Por favor, digite a sua senha para verificação:";
@@ -1174,7 +1182,6 @@ $a->strings["Ignored"] = "Ignorado";
$a->strings["Hidden"] = "Oculto";
$a->strings["Archived"] = "Arquivado";
$a->strings["All"] = "Todos";
-$a->strings["Unconnected"] = "Não conectado";
$a->strings["Suggest new connections"] = "Sugerir novas conexões";
$a->strings["New Connections"] = "Novas conexões";
$a->strings["Show pending (new) connections"] = "Exibir conexões pendentes (novas)";
@@ -1185,12 +1192,12 @@ $a->strings["Only show blocked connections"] = "Exibir apenas conexões bloquead
$a->strings["Only show ignored connections"] = "Exibir apenas conexões ignoradas";
$a->strings["Only show archived connections"] = "Exibir apenas conexões arquivadas";
$a->strings["Only show hidden connections"] = "Exibir apenas conexões ocultas";
-$a->strings["Only show one-way connections"] = "Exibir apenas conexões de mão única";
$a->strings["%1\$s [%2\$s]"] = "%1\$s [%2\$s]";
-$a->strings["Edit contact"] = "Editar o contato";
+$a->strings["Edit connection"] = "Editar conexão";
$a->strings["Search your connections"] = "Pesquisar em suas conexões";
$a->strings["Finding: "] = "Pesquisando: ";
$a->strings["Edit post"] = "Editar a publicação";
+$a->strings["is now connected to"] = "está agora conectado a";
$a->strings["Could not access address book record."] = "Não foi possível acessar o registro do contato.";
$a->strings["Refresh failed - channel is currently unavailable."] = "A atualização falhou - o canal está indisponível no momento.";
$a->strings["Channel has been unblocked"] = "O canal foi desbloqueado";
@@ -1210,6 +1217,8 @@ $a->strings["Refresh Permissions"] = "Atualizar permissões";
$a->strings["Fetch updated permissions"] = "Buscar as permissões atualizadas";
$a->strings["Recent Activity"] = "Atividades recentes";
$a->strings["View recent posts and comments"] = "Exibir publicações e comentários recentes";
+$a->strings["Unblock"] = "Desbloquear";
+$a->strings["Block"] = "Bloquear";
$a->strings["Block or Unblock this connection"] = "Bloquear ou desbloquear esta conexão";
$a->strings["Unignore"] = "Não ignorar";
$a->strings["Ignore"] = "Ignorar";
@@ -1237,7 +1246,7 @@ $a->strings["Edit contact notes"] = "Editar anotações sobre o contato";
$a->strings["Their Settings"] = "Configurações dele/a";
$a->strings["My Settings"] = "Minhas configurações";
$a->strings["Clear/Disable Automatic Permissions"] = "Limpa/Desabilita permissões automáticas";
-$a->strings["Forum Members"] = "Membros do fórum";
+$a->strings["Forum Members"] = "Membros de fórum";
$a->strings["Soapbox"] = "Caixa de sabão";
$a->strings["Full Sharing (typical social network permissions)"] = "Compartilhamento completo (permissões típicas de redes sociais)";
$a->strings["Cautious Sharing "] = "Compartilhamento cauteloso";
@@ -1283,109 +1292,6 @@ $a->strings["Hometown: "] = "Cidade natal:";
$a->strings["About: "] = "Sobre:";
$a->strings["Keywords: "] = "Palavras-chave:";
$a->strings["This site is not a directory server"] = "Este site não é um servidor de diretório";
-$a->strings["Name is required"] = "É necessário informar o nome";
-$a->strings["Key and Secret are required"] = "A chave e o segredo são obrigatórios";
-$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 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["%s - (Experimental)"] = "%s - (Experimental)";
-$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["System Page Layout Editor - (advanced)"] = "Editor de layout de página do sistema - (avançado)";
-$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["Allow us to suggest you as a potential friend to new members?"] = "Permitir sugerir você como amigo potencial para outros membros?";
-$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["Geographical location to display on your posts"] = "Localização geográfica para exibir em 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["Expire other channel content after this many days"] = "Expirar outros conteúdos do canal após este número de dias";
-$a->strings["0 or blank prevents expiration"] = "0 ou em branco previne expiração";
-$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 a connection request"] = "Você recebe uma solicitação de conexão";
-$a->strings["Your connections are confirmed"] = "Suas conexões são 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 comenta uma publicação";
-$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["Red Matrix Server - Setup"] = "Servidor Red Matrix - Configuração";
$a->strings["Could not connect to database."] = "Não foi possível conectar ao banco de dados.";
$a->strings["Could not connect to specified site URL. Possible SSL certificate or DNS issue."] = "Não foi possível conectar à URL especificada para o site. Provavlmente um problema de DNS ou com o certificado SSL.";
@@ -1446,16 +1352,16 @@ $a->strings["At the end of this procedure, we will give you a text to save in a
$a->strings["You can alternatively skip this procedure and perform a manual installation. Please see the file \"install/INSTALL.txt\" for instructions."] = "Você também pode pular esse procedimento e executar uma instalação manual. Por favor, dê uma olhada no arquivo \"install/INSTALL.TXT\" para instruções.";
$a->strings[".htconfig.php is writable"] = ".htconfig.php tem permissão de escrita";
$a->strings["Red uses the Smarty3 template engine to render its web views. Smarty3 compiles templates to PHP to speed up rendering."] = "Red usa o engine de template Smarty3 para renderizar suas telas. Smarty3 compila templates para PHP para acelerar a renderização.";
-$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."] = "Para guardar os templates compilados, o servidor web necessita de permissão de escrita no diretório view/tpl/smarty3/ dentro do diretório raiz da Red.";
+$a->strings["In order to store these compiled templates, the web server needs to have write access to the directory %s under the Red top level folder."] = "Para guardar os templates compilados, o servidor web necessita de permissão de escrita no diretório %s no diretório raiz da Red.";
$a->strings["Please ensure that the user that your web server runs as (e.g. www-data) has write access to this folder."] = "Por favor, certifique-se de que o usuário sob o qual o servidor web roda (ex: www-data) tenha permissão de escrita nesse diretório.";
-$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."] = "Nota: como uma medida de segurança, você deve fornecer ao servidor web permissão de escrita somente em view/tpl/smarty3/ e não aos arquivos de template (.tpl) que ele contém.";
-$a->strings["view/tpl/smarty3 is writable"] = "view/tpl/smarty3 tem permissão de escrita";
+$a->strings["Note: as a security measure, you should give the web server write access to %s only--not the template files (.tpl) that it contains."] = "Nota: como uma medida de segurança, você deve fornecer ao servidor web permissão de escrita somente em %s e não aos arquivos de template (.tpl) que ele contém.";
+$a->strings["%s is writable"] = "%s tem permissão de escrita";
$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 Red usa o diretório store para salvar arquivos carregados. O servidor web necessita de permissão de escrita no diretório store dentro do diretório raiz da Red";
$a->strings["store is writable"] = "store tem permissão de escrita";
$a->strings["SSL certificate cannot be validated. Fix certificate or disable https access to this site."] = "Não foi possível validar o certificado SSL. Corrija o certificado ou desabilite o acesso via https ao site.";
$a->strings["If you have https access to your website or allow connections to TCP port 443 (the https: port), you MUST use a browser-valid certificate. You MUST NOT use self-signed certificates!"] = "Se você oferece acesso https ao seu website ou permite conexões na porta TCP 443 (a porta https:), você DEVE usar um certificado reconhecido pelos navegadores. Você NÃO DEVE usar certificados assinados por você mesmo!";
$a->strings["This restriction is incorporated because public posts from you may for example contain references to images on your own hub."] = "Essa restrição é incorporada porque publicações públicas suas podem, por exemplo, conter referências a imagens no seu próprio hub.";
-$a->strings["If your certificate is not recognised, members of other sites (who may themselves have valid certificates) will get a warning message on their own site complaining about security issues."] = "Se seu certificado não for reconhecido, membros de outros sites (que podem ter certificados válidos) receberão uma mensagem de aviso nos seus próprios sites reclamando de problemas de segurança.";
+$a->strings["If your certificate is not recognized, members of other sites (who may themselves have valid certificates) will get a warning message on their own site complaining about security issues."] = "Se seu certificado não for reconhecido, membros de outros sites (que podem ter certificados válidos) receberão uma mensagem de aviso nos seus próprios sites reclamando de problemas de segurança.";
$a->strings["This can cause usability issues elsewhere (not just on your own site) so we must insist on this requirement."] = "Isso pode causar problemas de usabilidade (não só no seu site) então nós precisamos insistir nesse requisito.";
$a->strings["Providers are available that issue free certificates which are browser-valid."] = "Existem provedores que disponibilizam gratuitamente certificados reconhecidos por navegadores.";
$a->strings["SSL certificate validation"] = "Validação do certificado SSL";
@@ -1485,16 +1391,55 @@ $a->strings["Delete item?"] = "Deletar item?";
$a->strings["Edit Webpage"] = "Editar página web";
$a->strings["Delete webpage?"] = "Deletar página web?";
$a->strings["Delete Webpage"] = "Deletar página web";
-$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["Red"] = "Red";
-$a->strings["This is a hub of the Red Matrix - a global cooperative network of decentralised privacy enhanced websites."] = "Este é um hub da Red Matrix - uma rede global cooperativa de websites descentralizados com privacidade aprimorada.";
-$a->strings["Running at web location"] = "Sendo executado no endereço web";
-$a->strings["Please visit <a href=\"http://getzot.com\">GetZot.com</a> to learn more about the Red Matrix."] = "Para aprender mais sobre a Red Matrix, visite <a href=\"http://getzot.com\">GetZot.com</a>.";
-$a->strings["Bug reports and issues: please visit"] = "Relatos e acompanhamentos de erros podem ser encontrados em";
-$a->strings["Suggestions, praise, etc. - please email \"redmatrix\" at librelist - dot com"] = "Sugestões, elogios, etc - mande um e-mail para \"redmatrix\" arrôba librelist ponto com";
-$a->strings["Site Administrators"] = "Administradores do site";
+$a->strings["Page owner information could not be retrieved."] = "As informações do dono da pagina não puderam ser obtidas.";
+$a->strings["Album not found."] = "O álbum não foi encontrado.";
+$a->strings["Delete Album"] = "Excluir o álbum";
+$a->strings["Delete Photo"] = "Excluir a foto";
+$a->strings["No photos selected"] = "Não foi selecionada nenhuma foto";
+$a->strings["Access to this item is restricted."] = "O acesso a este item está restrito.";
+$a->strings["You have used %1$.2f Mbytes of %2$.2f Mbytes photo storage."] = "Você usou %1$.2f Mbytes de %2$.2f Mbytes de armazenamento de fotos.";
+$a->strings["You have used %1$.2f Mbytes of photo storage."] = "Você usou %1$.2f Mbytes de armazenamento de fotos.";
+$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 exibir uma publicação de status para este carregamento";
+$a->strings["Album name could not be decoded"] = "Não foi possível decodificar o nome do álbum";
+$a->strings["Contact Photos"] = "Fotos dos contatos";
+$a->strings["Edit Album"] = "Editar o álbum";
+$a->strings["Show Newest First"] = "Exibir primeiro os mais recentes";
+$a->strings["Show Oldest First"] = "Exibir primeiro os mais antigos";
+$a->strings["View Photo"] = "Ver a foto";
+$a->strings["Permission denied. Access to this item may be restricted."] = "Permissão negada. Acesso a este item pode estar restrito.";
+$a->strings["Photo not available"] = "A foto não está disponível";
+$a->strings["Use as profile photo"] = "Usar como uma foto de perfil";
+$a->strings["View Full Size"] = "Ver no tamanho real";
+$a->strings["Edit photo"] = "Editar a foto";
+$a->strings["Rotate CW (right)"] = "Rotacionar H (horário)";
+$a->strings["Rotate CCW (left)"] = "Rotacionar AH (anti-horário)";
+$a->strings["New album name"] = "Novo nome para o álbum";
+$a->strings["Caption"] = "Legenda";
+$a->strings["Add a Tag"] = "Adicionar uma etiqueta";
+$a->strings["Example: @bob, @Barbara_Jensen, @jim@example.com, #California, #camping"] = "Por exemplo: @joao, @Joao_da_Silva, @joao@exemplo.com, #Minas_Gerais, #acampamento";
+$a->strings["In This Photo:"] = "Nesta foto:";
+$a->strings["View Album"] = "Ver álbum";
+$a->strings["Recent Photos"] = "Fotos recentes";
+$a->strings["Image uploaded but image cropping failed."] = "A imagem foi enviada, mas não foi possível cortá-la.";
+$a->strings["Image resize failed."] = "Falha ao modificar o tamanho da imagem.";
+$a->strings["Shift-reload the page or clear browser cache if the new photo does not display immediately."] = "Se a nova foto não aparecer imediatamente, recarregue a página segurando a tecla \"shift\" ou limpe o cache do navegador, ";
+$a->strings["Image exceeds size limit of %d"] = "A imagem excede o limite de tamanho de %d";
+$a->strings["Unable to process image."] = "Não foi possível processar a imagem.";
+$a->strings["Photo not available."] = "A foto não está disponível.";
+$a->strings["Upload File:"] = "Enviar arquivo:";
+$a->strings["Select a profile:"] = "Selecione um perfil:";
+$a->strings["Upload Profile Photo"] = "Enviar foto do perfil";
+$a->strings["skip this step"] = "pule esta etapa";
+$a->strings["select a photo from your photo albums"] = "selecione uma foto do seu álbum de fotos";
+$a->strings["Crop Image"] = "Cortar a imagem";
+$a->strings["Please adjust the image cropping for optimum viewing."] = "Por favor, ajuste o corte da imagem para a melhor visualização.";
+$a->strings["Done Editing"] = "Encerrar a edição";
+$a->strings["Image uploaded successfully."] = "A imagem foi enviada com sucesso.";
+$a->strings["Image upload failed."] = "Não foi possível enviar a imagem.";
+$a->strings["Image size reduction [%s] failed."] = "Não foi possível reduzir o tamanho da imagem [%s].";
$a->strings["Failed to create source. No channel selected."] = "Falha ao criar a fonte. Nenhum canal selecionado.";
$a->strings["Source created."] = "A fonte foi criada.";
$a->strings["Source updated."] = "A fonte foi atualizada.";
@@ -1512,13 +1457,15 @@ $a->strings["Source removed"] = "A fonte foi removida.";
$a->strings["Unable to remove source."] = "Não foi possível remover a fonte.";
$a->strings["- select -"] = "- selecionar -";
$a->strings["Event title and start time are required."] = "O título do evento e a hora de início são obrigatórios.";
+$a->strings["Event not found."] = "Evento não encontrado.";
$a->strings["l, F j"] = "l, F j";
$a->strings["Edit event"] = "Editar o evento";
$a->strings["Create New Event"] = "Criar um novo evento";
$a->strings["Previous"] = "Anterior";
$a->strings["hour:minute"] = "hora:minuto";
$a->strings["Event details"] = "Detalhes do evento";
-$a->strings["Format is %s %s. Starting date and Title are required."] = "O formato é %s %s. A data de início e o título são obrigatórios.";
+$a->strings["Format is %s %s."] = "O formato é %s %s.";
+$a->strings["Starting date and Title are required."] = "Data de início e título são obrigatórios.";
$a->strings["Event Starts:"] = "Início do evento:";
$a->strings["Required"] = "Obrigatório";
$a->strings["Finish date/time is not known or not relevant"] = "A data/hora de término não é conhecida ou não é relevante";
@@ -1535,10 +1482,6 @@ $a->strings["Include all files and sub folders"] = "Incluir todos os arquivos e
$a->strings["Return to file list"] = "Retornar à lista de arquivos";
$a->strings["Copy/paste this code to attach file to a post"] = "Copiar/colar este código para anexar um arquivo a uma publicação";
$a->strings["Copy/paste this URL to link file from a web page"] = "Copiar/colar este URL para linkar para o arquivo em uma página web";
-$a->strings["Download"] = "Baixar";
-$a->strings["Used: "] = "Utilizado:";
-$a->strings["[directory]"] = "[diretório]";
-$a->strings["Limit: "] = "Limite:";
$a->strings["Channel added."] = "Canal adicionado.";
$a->strings["%1\$s is following %2\$s's %3\$s"] = "%1\$s está acompanhando %3\$s de %2\$s";
$a->strings["Contact not found."] = "O contato não foi encontrado.";
@@ -1564,7 +1507,163 @@ $a->strings["Not Found"] = "Não encontrada";
$a->strings["Tag removed"] = "A etiqueta foi removida";
$a->strings["Remove Item Tag"] = "Remover a etiqueta de item";
$a->strings["Select a tag to remove: "] = "Selecione uma etiqueta para remover: ";
-$a->strings["Welcome to %s"] = "Bem-vindo(a) a %s";
+$a->strings["Theme settings updated."] = "As configurações de tema foram atualizadas.";
+$a->strings["Site"] = "Site";
+$a->strings["Accounts"] = "Contas";
+$a->strings["Channels"] = "Canais";
+$a->strings["Plugins"] = "Plugins";
+$a->strings["Themes"] = "Temas";
+$a->strings["Server"] = "Servidor";
+$a->strings["Profile Config"] = "Configuração de perfis";
+$a->strings["DB updates"] = "Atualizações do Banco de Dados";
+$a->strings["Logs"] = "Logs";
+$a->strings["Plugin Features"] = "Recursos dos plugins";
+$a->strings["User registrations waiting for confirmation"] = "Registros de usuário aguardando confirmação";
+$a->strings["Message queues"] = "Filas de mensagem";
+$a->strings["Administration"] = "Administração";
+$a->strings["Summary"] = "Resumo";
+$a->strings["Registered users"] = "Usuários registrados";
+$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 accessibility"] = "Sem tema especial para acessibilidade";
+$a->strings["Yes - with approval"] = "Sim - pendente aprovação";
+$a->strings["My site is not a public server"] = "Meu site não é um servidor público";
+$a->strings["My site has paid access only"] = "Meu site oferece somente acesso pago";
+$a->strings["My site has free access only"] = "Meu site oferece somente acesso gratuito";
+$a->strings["My site offers free accounts with optional paid upgrades"] = "Meu site oferece contas gratuitas com recursos adicionais pagos";
+$a->strings["File upload"] = "Carregamento de arquivos";
+$a->strings["Policies"] = "Políticas";
+$a->strings["Site name"] = "Nome do site";
+$a->strings["Banner/Logo"] = "Cartaz/Logo";
+$a->strings["Administrator Information"] = "Informações do Administrador";
+$a->strings["Contact information for site administrators. Displayed on siteinfo page. BBCode can be used here"] = "Informações de contato com administradores do site. Exibida na página siteinfo. BBCode pode ser usado aqui.";
+$a->strings["System language"] = "Idioma do sistema";
+$a->strings["System theme"] = "Tema do sistema";
+$a->strings["Default system theme - may be over-ridden by user profiles - <a href='#' id='cnftheme'>change theme settings</a>"] = "Tema padrão do sistema - pode ser sobrescrito por perfis de usuário - <a href='#' id='cnftheme'>mudar configurações do tema</a>";
+$a->strings["Mobile system theme"] = "Tema do sistema móvel";
+$a->strings["Theme for mobile devices"] = "Tema para dispositivos móveis";
+$a->strings["Accessibility system theme"] = "Tema do sistema acessível";
+$a->strings["Accessibility theme"] = "Tema acessível";
+$a->strings["Enable Diaspora Protocol"] = "Habilitar protocolo Diaspora";
+$a->strings["Communicate with Diaspora and Friendica - experimental"] = "Comunicar com Diaspora e Friendica - experimental";
+$a->strings["Allow Feeds as Connections"] = "Permitir Feeds como conexões";
+$a->strings["(Heavy system resource usage)"] = "(Alto uso de recursos do sistema)";
+$a->strings["Maximum image size"] = "Tamanho máximo de imagens";
+$a->strings["Maximum size in bytes of uploaded images. Default is 0, which means no limits."] = "Tamanho máximo em bytes de imagens carregadas. O padrão é 0, significando sem limites.";
+$a->strings["Does this site allow new member registration?"] = "Este site permite o registro de novos membros?";
+$a->strings["Which best describes the types of account offered by this hub?"] = "Qual descreve melhor os tipos de conta oferecidas por este hub?";
+$a->strings["Register text"] = "Texto de registro";
+$a->strings["Will be displayed prominently on the registration page."] = "Será exibido proeminentemente na página de registro.";
+$a->strings["Accounts abandoned after x days"] = "Contas abandonadas após x dias";
+$a->strings["Will not waste system resources polling external sites for abandonded accounts. Enter 0 for no time limit."] = "Não gastará recursos do sistema coletando de sites externos para contas abandonadas. Use 0 para sem limite de tempo.";
+$a->strings["Allowed friend domains"] = "Domínios permitidos para amigos";
+$a->strings["Comma separated list of domains which are allowed to establish friendships with this site. Wildcards are accepted. Empty to allow any domains"] = "Lista, separada por vírgulas, de domínios permitidos para estabelecer amizades com este site. <em>Wildcards</em> são aceitas. Vazio para permitir qualquer domínio";
+$a->strings["Allowed email domains"] = "Domínios permitidos de e-mail";
+$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"] = "Lista, separada por vírgulas, de domínios permitidos em endereços de e-mail para registros nesse site. <em>Wildcards</em> são aceitas. Vazio para permitir qualquer domínio";
+$a->strings["Block public"] = "Bloquear público";
+$a->strings["Check to block public access to all otherwise public personal pages on this site unless you are currently logged in."] = "Marque para bloquear o acesso público a todas as páginas pessoais que seriam públicas, a não ser que se esteja autenticado.";
+$a->strings["Verify Email Addresses"] = "Verificar endereços de email";
+$a->strings["Check to verify email addresses used in account registration (recommended)."] = "Clique para verificar endereços de email usados no registro de contas (recomendado).";
+$a->strings["Force publish"] = "Forçar publicação";
+$a->strings["Check to force all profiles on this site to be listed in the site directory."] = "Marque para forçar todos os perfis neste site a aparecerem listados no diretório do site.";
+$a->strings["Disable discovery tab"] = "Desabilitar a aba \"Descubra\"";
+$a->strings["Remove the tab in the network view with public content pulled from sources chosen for this site."] = "Remove da visualização de rede a aba com conteúdos públicos obtidos de fontes escolhidas para esse site.";
+$a->strings["No login on Homepage"] = "Sem formulário de autenticação na página inicial";
+$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)."] = "Marque para esconder o formulário de autenticação da página inicial do seu site quando visitantes chegarem sem estar autenticados (e.g. quando você inclui os conteúdos da página inicial através do canal do site).";
+$a->strings["Proxy user"] = "Usuário do proxy";
+$a->strings["Proxy URL"] = "URL do proxy";
+$a->strings["Network timeout"] = "Timeout da rede";
+$a->strings["Value is in seconds. Set to 0 for unlimited (not recommended)."] = "Valor em segundos. Use 0 para ilimitado (não recomendado).";
+$a->strings["Delivery interval"] = "Intervalo de entrega";
+$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."] = "Atrase os processos de entrega em segundo plano por este número de segundos para reduzir a carga do sistema. Recomendado: 4-5 para hosts compartilhados, 2-3 para servidores virtuais privados. 0-1 para grandes servidores dedicados.";
+$a->strings["Poll interval"] = "Intervalo de coleta";
+$a->strings["Delay background polling processes by this many seconds to reduce system load. If 0, use delivery interval."] = "Atrase os processos de coleta em segundo plano por este número de segundos para reduzir a carga do sistema. Se 0, use o intervalo de entrega.";
+$a->strings["Maximum Load Average"] = "Carga média máxima";
+$a->strings["Maximum system load before delivery and poll processes are deferred - default 50."] = "Carga máxima do sistema antes de adiar processos de entrega e coleta - padrão 50.";
+$a->strings["No server found"] = "Nenhum servidor foi encontrado";
+$a->strings["ID"] = "ID";
+$a->strings["for channel"] = "para o canal";
+$a->strings["on server"] = "no servidor";
+$a->strings["Status"] = "Status";
+$a->strings["Update has been marked successful"] = "A atualização foi designada bem sucedida";
+$a->strings["Executing %s failed. Check system logs."] = "Execução de %s falhou. Verifique os logs do sistema.";
+$a->strings["Update %s was successfully applied."] = "A atualização %s foi aplicada com sucesso.";
+$a->strings["Update %s did not return a status. Unknown if it succeeded."] = "A atualização %s não retornou um status. Situação incerta quando ao seu sucesso.";
+$a->strings["Update function %s could not be found."] = "A função de atualização %s não foi encontrada.";
+$a->strings["No failed updates."] = "Nenhuma falha nas atualizações.";
+$a->strings["Failed Updates"] = "Falha nas atualizações";
+$a->strings["Mark success (if update was manually applied)"] = "Marque sucesso (se a atualização foi aplicada manualmente)";
+$a->strings["Attempt to execute this update step automatically"] = "Tente executar este passo da atualização automaticamente";
+$a->strings["%s user blocked/unblocked"] = array(
+ 0 => "%s usuário foi bloqueado/desbloqueado",
+ 1 => "%s usuários foram bloqueados/desbloqueados",
+);
+$a->strings["%s user deleted"] = array(
+ 0 => "%s usuário foi deletado",
+ 1 => "%s usuários foram deletados",
+);
+$a->strings["Account not found"] = "A conta não foi encontrada";
+$a->strings["User '%s' unblocked"] = "O usuário/a '%s' foi desbloqueado/a";
+$a->strings["User '%s' blocked"] = "O usuário/a '%s' foi bloqueado/a";
+$a->strings["Users"] = "Usuários";
+$a->strings["select all"] = "selecionar tudo";
+$a->strings["User registrations waiting for confirm"] = "Registros de usuário aguardando confirmação";
+$a->strings["Request date"] = "Data de requisição";
+$a->strings["No registrations."] = "Nenhum registro.";
+$a->strings["Approve"] = "Aprovar";
+$a->strings["Deny"] = "Negar";
+$a->strings["Register date"] = "Data de registro";
+$a->strings["Last login"] = "Última autenticação";
+$a->strings["Expires"] = "Expira";
+$a->strings["Service Class"] = "Classe de serviço";
+$a->strings["Selected users will be deleted!\\n\\nEverything these users had posted on this site will be permanently deleted!\\n\\nAre you sure?"] = "Os usuários selecionados serão deletados!\\n\\nTudo o que esses usuários postaram neste site será permanentemente deletado!\\n\\nTem certeza?";
+$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?"] = "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?";
+$a->strings["%s channel censored/uncensored"] = array(
+ 0 => "%s canal censurado/descensurado",
+ 1 => "%s canais censurados/descensurados",
+);
+$a->strings["%s channel deleted"] = array(
+ 0 => "%s canal deletado",
+ 1 => "%s canais deletados",
+);
+$a->strings["Channel not found"] = "Canal não encontrado";
+$a->strings["Channel '%s' deleted"] = "Canal '%s' deletado";
+$a->strings["Channel '%s' uncensored"] = "Canal '%s' não censurado";
+$a->strings["Channel '%s' censored"] = "Canal '%s' censurado";
+$a->strings["Censor"] = "Censurar";
+$a->strings["Uncensor"] = "Não censurar";
+$a->strings["UID"] = "UID";
+$a->strings["Selected channels will be deleted!\\n\\nEverything that was posted in these channels on this site will be permanently deleted!\\n\\nAre you sure?"] = "Os canais selecionados serão deletados!\\n\\nTudo que foi postado nesses canais nesse site será permanentemente deletado!\\n\\nVocê tem certeza?";
+$a->strings["The channel {0} will be deleted!\\n\\nEverything that was posted in this channel on this site will be permanently deleted!\\n\\nAre you sure?"] = "O canal {0} será deletado!\\n\\nTudo o que foi postado nesse canal nesse site será permanentemente deletado!\\n\\nVocê tem certeza?";
+$a->strings["Plugin %s disabled."] = "Plugin %s desabilitado.";
+$a->strings["Plugin %s enabled."] = "Plugin %s habilitado.";
+$a->strings["Disable"] = "Desabilitar";
+$a->strings["Enable"] = "Habilitar";
+$a->strings["Toggle"] = "Alternar";
+$a->strings["Author: "] = "Autor:";
+$a->strings["Maintainer: "] = "Mantenedor:";
+$a->strings["No themes found."] = "Nenhum tema foi encontrado.";
+$a->strings["Screenshot"] = "Captura de tela";
+$a->strings["[Experimental]"] = "[Experimental]";
+$a->strings["[Unsupported]"] = "[Desassistido]";
+$a->strings["Log settings updated."] = "As configurações de log foram atualizadas.";
+$a->strings["Clear"] = "Limpar";
+$a->strings["Debugging"] = "Depuração";
+$a->strings["Log file"] = "Arquivo de log";
+$a->strings["Must be writable by web server. Relative to your Red top-level directory."] = "É necessário que o servidor web possa escrever neste arquivo. Relativo ao diretório raiz da Red.";
+$a->strings["Log level"] = "Nível do log";
+$a->strings["New Profile Field"] = "Novo campo de perfil";
+$a->strings["Field nickname"] = "Nome de apresentação do campo";
+$a->strings["System name of field"] = "Nome de sistema do campo";
+$a->strings["Input type"] = "Tipo de entrada";
+$a->strings["Field Name"] = "Nome do campo";
+$a->strings["Label on profile pages"] = "Rótulo nas páginas de perfil";
+$a->strings["Help text"] = "Texto de ajuda";
+$a->strings["Additional info (optional)"] = "Informações adicionais (opcional)";
+$a->strings["Field definition not found"] = "A dfinição de campo não foi encontrada";
+$a->strings["Edit Profile Field"] = "Editar campo de perfil";
$a->strings["Thing updated"] = "A coisa foi atualizada";
$a->strings["Object store: failed"] = "Armazenamento do objeto: falhou";
$a->strings["Thing added"] = "A coisa foi adicionada";
@@ -1573,13 +1672,13 @@ $a->strings["Show Thing"] = "Exibir coisa";
$a->strings["item not found."] = "o item não foi encontrado";
$a->strings["Edit Thing"] = "Editar coisa";
$a->strings["Select a profile"] = "Selecione um perfil";
-$a->strings["Select a category of stuff. e.g. I ______ something"] = "Escolha uma categoria de coisas. e.g. Eu ______ algo";
$a->strings["Post an activity"] = "Publique uma atividade";
$a->strings["Only sends to viewers of the applicable profile"] = "Envia apenas para a audiência do perfil aplicável";
$a->strings["Name of thing e.g. something"] = "Nome da coisa e.g. coisinha";
$a->strings["URL of thing (optional)"] = "URL da coisa (opcional)";
$a->strings["URL for photo of thing (optional)"] = "URL para foto da coisa (opcional)";
$a->strings["Add Thing to your Profile"] = "Adicionar a coisa ao seu perfil";
+$a->strings["Your service plan only allows %d channels."] = "Seu plano de serviço permite apenas %d canais.";
$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.";
@@ -1597,6 +1696,7 @@ $a->strings["Your old login email address"] = "O endereço de e-mail da sua anti
$a->strings["Your old login password"] = "A senha dua sua antiga conta";
$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."] = "Para qualquer das opções, por favor escolha se deseja fazer deste hub seu novo endereço primário, ou se o velho local deve continuar com esse papel. Você será capaz de publicar a partir de ambos os locais, mas somente um pode estar designado como local primário para arquivos, fotos e mídia.";
$a->strings["Make this hub my primary location"] = "Faça deste hub meu local primário";
+$a->strings["Import existing posts if possible"] = "Importar publicações existentes se possível";
$a->strings["Total invitation limit exceeded."] = "Foi excedido o número total de convites.";
$a->strings["%s : Not a valid email address."] = "%s : Não é um endereço de e-mail válido.";
$a->strings["Please join us on Red"] = "Por favor, una-se a nós na Red";
@@ -1610,12 +1710,12 @@ $a->strings["You have no more invitations available"] = "Você não possui mais
$a->strings["Send invitations"] = "Enviar convites.";
$a->strings["Enter email addresses, one per line:"] = "Digite os endereços de e-mail, um por linha:";
$a->strings["Your message:"] = "Sua mensagem:";
-$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."] = "Você está convidado a juntar-se a mim e alguns outros amigos próximos na Red Matrix - uma revolucionária nova ferramenta para comunicação e informação descentralizada.";
-$a->strings["You will need to supply this invitation code: \$invite_code"] = "Você deve informar este código de convite: \$invite_code";
-$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["Please join my community on RedMatrix."] = "Por favor junte-se à minha comunidade na RedMatrix";
+$a->strings["You will need to supply this invitation code: "] = "Você precisará fornecer este código de convite:";
+$a->strings["1. Register at any RedMatrix location (they are all inter-connected)"] = "1. Registre-se em qualquer site da RedMatrix (eles são todos interconectados)";
+$a->strings["2. Enter my RedMatrix network address into the site searchbar."] = "2. Entre meu endereço da rede RedMatrix na barra de busca do site.";
+$a->strings["or visit "] = "ou visite";
+$a->strings["3. Click [Connect]"] = "3. Clique [Conectar]";
$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.";
@@ -1625,6 +1725,15 @@ $a->strings["You have reached your limit of %1$.0f webpages."] = "Você atingiu
$a->strings["[Embedded content - reload page to view]"] = "[Conteúdo incorporado - recarregue a página para ver]";
$a->strings["Help with this feature"] = "Ajuda com este recurso";
$a->strings["Layout Name"] = "Nome do layout";
+$a->strings["Like/Dislike"] = "Gostar/Desgostar";
+$a->strings["This action is restricted to members."] = "Esta ação é restrita a membros.";
+$a->strings["Please <a href=\"rmagic\">login with your RedMatrix ID</a> or <a href=\"register\">register as a new RedMatrix member</a> to continue."] = "Por favor <a href=\"rmagic\">entre com sua ID da RedMatrix</a> ou <a href=\"register\">registre-se como um novo membro da RedMatrix</a> para continuar.";
+$a->strings["Invalid request."] = "Solicitação inválida.";
+$a->strings["thing"] = "coisa";
+$a->strings["Channel unavailable."] = "Canal não disponível.";
+$a->strings["Previous action reversed."] = "Ação anterior revertida.";
+$a->strings["Action completed."] = "Ação completada.";
+$a->strings["Thank you."] = "Obrigado.";
$a->strings["Remote privacy information not available."] = "Não existe informação disponível sobre a privacidade remota.";
$a->strings["Visible to:"] = "Visível para:";
$a->strings["No connections."] = "Nenhuma conexão.";
@@ -1659,6 +1768,7 @@ $a->strings["Message recalled."] = "Mensagem retirada.";
$a->strings["Send Private Message"] = "Enviar mensagem privada";
$a->strings["To:"] = "Para:";
$a->strings["Subject:"] = "Assunto:";
+$a->strings["Send"] = "Enviar";
$a->strings["Message not found."] = "Mensagem não encontrada.";
$a->strings["Delete message"] = "Excluir a mensagem";
$a->strings["Recall message"] = "Retirar mensagem";
@@ -1669,7 +1779,6 @@ $a->strings["No secure communications available. You <strong>may</strong> be abl
$a->strings["Send Reply"] = "Enviar resposta";
$a->strings["You have created %1$.0f of %2$.0f allowed channels."] = "Você criou %1$.0f de %2$.0f canais permitidos.";
$a->strings["Create a new channel"] = "Criar um novo canal";
-$a->strings["Channel Manager"] = "Administrador do canal";
$a->strings["Current Channel"] = "Canal atual";
$a->strings["Attach to one of your channels by selecting it."] = "Selecione um dos seus canais para utilizá-lo.";
$a->strings["Default Channel"] = "Canal padrão";
@@ -1704,42 +1813,15 @@ $a->strings["Conversation removed."] = "A conversa foi removida.";
$a->strings["No messages."] = "Nenhuma mensagem.";
$a->strings["D, d M Y - g:i A"] = "D, d M Y - g:i A";
$a->strings["Add a Channel"] = "Adicionar um 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."] = "Um canal é uma coleção sua de páginas relacionadas. Um canal pode ser usado para um perfil de rede social, um blog, grupos de conversação e fóruns, páginas de celebridades, e muito mais. Você pode criar tantos canais quanto seu provedor de serviço permita.";
-$a->strings["Examples: \"Bob Jameson\", \"Lisa and her Horses\", \"Soccer\", \"Aviation Group\" "] = "Exemplos: \"Beto Salinas\", \"Elis e seus Cavalos\", \"Futebol\", \"Grupo de aviadores\"";
+$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."] = "Um canal é uma coleção sua de páginas relacionadas. Um canal pode ser usado para um perfil de rede social, um blog, grupos de conversação e fóruns temáticos, páginas de personalidades, e muito mais. Você pode criar tantos canais quanto o provedor de serviço permita.";
+$a->strings["Examples: \"Bob Jameson\", \"Lisa and her Horses\", \"Soccer\", \"Aviation Group\" "] = "Exemplos: \"Maria Caiouá\", \"Roberto Salinas\", \"Elis e sua banda\", \"Futebol de salão\", \"Fanáticos por aeromodelismo\"";
$a->strings["Choose a short nickname"] = "Escolha um apelido curto";
$a->strings["Your nickname will be used to create an easily remembered channel address (like an email address) which you can share with others."] = "Seu apelido será usado para criar um endereço para o canal de fácil memorização (como um endereço de email), que você poderá compartilhar com outros.";
$a->strings["Or <a href=\"import\">import an existing channel</a> from another location"] = "Ou <a href=\"import\">importe um canal existente</a> de outro local";
-$a->strings["Page owner information could not be retrieved."] = "As informações do dono da pagina não puderam ser obtidas.";
-$a->strings["Album not found."] = "O álbum não foi encontrado.";
-$a->strings["Delete Album"] = "Excluir o álbum";
-$a->strings["Delete Photo"] = "Excluir a foto";
-$a->strings["No photos selected"] = "Não foi selecionada nenhuma foto";
-$a->strings["Access to this item is restricted."] = "O acesso a este item está restrito.";
-$a->strings["You have used %1$.2f Mbytes of %2$.2f Mbytes photo storage."] = "Você usou %1$.2f Mbytes de %2$.2f Mbytes de armazenamento de fotos.";
-$a->strings["You have used %1$.2f Mbytes of photo storage."] = "Você usou %1$.2f Mbytes de armazenamento de fotos.";
-$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 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";
-$a->strings["Show Oldest First"] = "Exibir primeiro os mais antigos";
-$a->strings["View Photo"] = "Ver a foto";
-$a->strings["Permission denied. Access to this item may be restricted."] = "Permissão negada. Acesso a este item pode estar restrito.";
-$a->strings["Photo not available"] = "A foto não está disponível";
-$a->strings["Use as profile photo"] = "Usar como uma foto de perfil";
-$a->strings["View Full Size"] = "Ver no tamanho real";
-$a->strings["Edit photo"] = "Editar a foto";
-$a->strings["Rotate CW (right)"] = "Rotacionar H (horário)";
-$a->strings["Rotate CCW (left)"] = "Rotacionar AH (anti-horário)";
-$a->strings["New album name"] = "Novo nome para o álbum";
-$a->strings["Caption"] = "Legenda";
-$a->strings["Add a Tag"] = "Adicionar uma etiqueta";
-$a->strings["Example: @bob, @Barbara_Jensen, @jim@example.com, #California, #camping"] = "Por exemplo: @joao, @Joao_da_Silva, @joao@exemplo.com, #Minas_Gerais, #acampamento";
-$a->strings["In This Photo:"] = "Nesta foto:";
-$a->strings["View Album"] = "Ver álbum";
-$a->strings["Recent Photos"] = "Fotos recentes";
+$a->strings["Channel Type"] = "Tipo de canal";
+$a->strings["Please choose a channel type (such as social networking or community forum) and privacy requirements so we can select the best permissions for you"] = "Por favor, escolha um tipo de canal (por exemplo rede social ou fórum de comunidade) e requisito de privacidade, para que possamos configurar as melhores permissões para você";
+$a->strings["Red Matrix - &quot;The Network&quot;"] = "Red Matrix - &quot;A Rede&quot;";
+$a->strings["Welcome to %s"] = "Bem-vindo(a) a %s";
$a->strings["Invalid request identifier."] = "Identificador de solicitação inválido";
$a->strings["Discard"] = "Descartar";
$a->strings["No more system notifications."] = "Sem novas notificações do sistema.";
@@ -1760,9 +1842,17 @@ $a->strings["80 x 80 pixels - optional"] = "80 x 80 pixels - opcional";
$a->strings["Version ID"] = "ID da versão";
$a->strings["Price of app"] = "Preço do aplicativo";
$a->strings["Location (URL) to purchase app"] = "Endereço (URL) para comprar o aplicativo";
+$a->strings["Poll"] = "Votação";
+$a->strings["View Results"] = "Ver resultados";
+$a->strings["Account removals are not allowed within 48 hours of changing the account password."] = "A remoção da conta fica desabilitada por 48 horas após uma troca de senha da conta.";
+$a->strings["Remove This Account"] = "Remover esta conta";
+$a->strings["This will completely remove this account including all its channels from the network. Once this has been done it is not recoverable."] = "Isso irá remover completamente esta conta, incluindo todos os canais da rede. Uma vez feito isso eles não poderão ser recuperados.";
+$a->strings["Remove this account, all its channels and all its channel clones from the network"] = "Remove esta conta, todos os seus canais e todos os clones desses canais da rede.";
+$a->strings["By default only the instances of the channels located on this hub will be removed from the network"] = "Por padrão, apenas as instâncias dos canais localizadas neste hub serão removidas da rede";
+$a->strings["No service class restrictions found."] = "Não foram encontradas restrições de classe de serviço.";
$a->strings["Schema Default"] = "Padrão do esquema";
$a->strings["Sans-Serif"] = "Sans-Serif";
-$a->strings["Monospace"] = "Monoespaçada";
+$a->strings["Monospace"] = "Monospace";
$a->strings["Theme settings"] = "Configurações de tema";
$a->strings["Set scheme"] = "Definir esquema";
$a->strings["Set font-size for posts and comments"] = "Definir o tamanho da fonte para publicações e comentários";
@@ -1770,20 +1860,20 @@ $a->strings["Set font face"] = "Definir a face da fonte";
$a->strings["Set iconset"] = "Definir o conjunto de ícones";
$a->strings["Set big shadow size, default 15px 15px 15px"] = "Definir o tamanho da sombra grande, padrão 15px 15px 15px";
$a->strings["Set small shadow size, default 5px 5px 5px"] = "Definir o tamanho da sombra pequena, padrão 5px 5px 5px";
-$a->strings["Set shadow colour, default #000"] = "Definir a cor da sombra, padrão #000";
+$a->strings["Set shadow color, default #000"] = "Definir a cor da sombra, padrão #000";
$a->strings["Set radius size, default 5px"] = "Definir o tamanho do raio de curvatura, padrão 5px";
$a->strings["Set line-height for posts and comments"] = "Definir a altura da linha para publicações e comentários";
$a->strings["Set background image"] = "Definir a imagem do pano de fundo";
$a->strings["Set background attachment"] = "Definir o anexo de pano de fundo";
-$a->strings["Set background colour"] = "Definir a cor do pano de fundo";
+$a->strings["Set background color"] = "Definir a cor do pano de fundo";
$a->strings["Set section background image"] = "Definir a imagem de fundo de seção";
-$a->strings["Set section background colour"] = "Definir a cor de fundo de seção";
-$a->strings["Set colour of items - use hex"] = "Definir a cor dos items - use hex";
-$a->strings["Set colour of links - use hex"] = "Definir a cor dos links - use hex";
+$a->strings["Set section background color"] = "Definir a cor de fundo de seção";
+$a->strings["Set color of items - use hex"] = "Definir a cor dos items - use hex";
+$a->strings["Set color of links - use hex"] = "Definir a cor dos links - use hex";
$a->strings["Set max-width for items. Default 400px"] = "Definir a largura máxima para itens. Padrão 400px";
$a->strings["Set min-width for items. Default 240px"] = "Definir a largura mínima para itens. Padrão 240px";
$a->strings["Set the generic content wrapper width. Default 48%"] = "Definir a largura do envólucro para conteúdo genérico. Padrão 48%";
-$a->strings["Set colour of fonts - use hex"] = "Definir a cor das fontes - use hex";
+$a->strings["Set color of fonts - use hex"] = "Definir a cor das fontes - use hex";
$a->strings["Set background-size element"] = "Definir o elemento <em>background-size</em>";
$a->strings["Item opacity"] = "Opacidade de itens";
$a->strings["Display post previews only"] = "Exibir apenas a pré-visualização de publicações";
@@ -1792,33 +1882,34 @@ $a->strings["Colour of the navigation bar"] = "Cor da barra de navegação";
$a->strings["Item float"] = "Flutuação de item";
$a->strings["Left offset of the section element"] = "Deslocamento esquerdo do elemento de seção";
$a->strings["Right offset of the section element"] = "Deslocamento direito do elemento de seção";
-$a->strings["Section width"] = "Largura de seção";
+$a->strings["Section width"] = "largura de seção";
$a->strings["Left offset of the aside"] = "Deslocamento esquerdo do aparte";
$a->strings["Right offset of the aside element"] = "Deslocamento direito do aparte";
$a->strings["None"] = "Nenhum";
$a->strings["Header image"] = "Imagem de cabeçalho";
$a->strings["Header image only on profile pages"] = "Imagem de cabeçalho apenas em páginas de perfil";
+$a->strings["Light (Red Matrix default)"] = "Leve (padrão da Red Matrix)";
$a->strings["Narrow navbar"] = "Barra de navegação estreita";
-$a->strings["Navigation bar background colour"] = "Cor de fundo da barra de navegação";
-$a->strings["Navigation bar gradient top colour"] = "Cor no topo de gradiente da barra de navegação";
-$a->strings["Navigation bar gradient bottom colour"] = "Cor na base de gradiente da barra de navegação";
-$a->strings["Navigation active button gradient top colour"] = "Cor no topo de gradiente de botão ativo de navegação";
-$a->strings["Navigation active button gradient bottom colour"] = "Cor na base de gradiente de botão ativo de navegação";
-$a->strings["Navigation bar border colour "] = "Cor de borda da barra de navegação";
-$a->strings["Navigation bar icon colour "] = "Cor de ícone da barra de navegação";
-$a->strings["Navigation bar active icon colour "] = "Cor de ícone ativo da barra de navegação";
-$a->strings["link colour"] = "cor dos links";
-$a->strings["Set font-colour for banner"] = "Definir a cor da fonte para o cartaz";
-$a->strings["Set the background colour"] = "Definir a cor do pano de fundo";
+$a->strings["Navigation bar background color"] = "Cor de fundo da barra de navegação";
+$a->strings["Navigation bar gradient top color"] = "Cor no topo de gradiente da barra de navegação";
+$a->strings["Navigation bar gradient bottom color"] = "Cor na base de gradiente da barra de navegação";
+$a->strings["Navigation active button gradient top color"] = "Cor no topo de gradiente de botão ativo de navegação";
+$a->strings["Navigation active button gradient bottom color"] = "Cor na base de gradiente de botão ativo de navegação";
+$a->strings["Navigation bar border color "] = "Cor de borda da barra de navegação";
+$a->strings["Navigation bar icon color "] = "Cor de ícone da barra de navegação";
+$a->strings["Navigation bar active icon color "] = "Cor de ícone ativo da barra de navegação";
+$a->strings["link color"] = "cor dos links";
+$a->strings["Set font-color for banner"] = "Definir a cor da fonte para o cartaz";
+$a->strings["Set the background color"] = "Definir a cor do pano de fundo";
$a->strings["Set the background image"] = "Definir a imagem do pano de fundo";
-$a->strings["Set the background colour of items"] = "Definir a cor de fundo dos items";
-$a->strings["Set the background colour of comments"] = "Definir a cor de fundo dos comentários";
-$a->strings["Set the border colour of comments"] = "Definir a cor da borda dos comentários";
+$a->strings["Set the background color of items"] = "Definir a cor de fundo dos items";
+$a->strings["Set the background color of comments"] = "Definir a cor de fundo dos comentários";
+$a->strings["Set the border color of comments"] = "Definir a cor da borda dos comentários";
$a->strings["Set the indent for comments"] = "Definir a indentação de comentários";
-$a->strings["Set the basic colour for item icons"] = "Definir a cor básica para ícones de itens";
-$a->strings["Set the hover colour for item icons"] = "Definir a cor para ícones de itens quando que o mouse está sobre eles";
+$a->strings["Set the basic color for item icons"] = "Definir a cor básica para ícones de itens";
+$a->strings["Set the hover color for item icons"] = "Definir a cor para ícones de itens quando que o mouse está sobre eles";
$a->strings["Set font-size for the entire application"] = "Definir o tamanho da fonte para a aplicação como um todo";
-$a->strings["Set font-colour for posts and comments"] = "Definir a cor da fonte para publicações e comentários";
+$a->strings["Set font-color for posts and comments"] = "Definir a cor da fonte para publicações e comentários";
$a->strings["Set radius of corners"] = "Definir o raio de curvatura dos cantos";
$a->strings["Set shadow depth of photos"] = "Definir a profundidade de sombra das fotos";
$a->strings["Set maximum width of conversation regions"] = "Definir a largura máxima da área de conversas";
diff --git a/view/ru/follow_notify_eml.tpl b/view/ru/follow_notify_eml.tpl
deleted file mode 100644
index ba07b19da..000000000
--- a/view/ru/follow_notify_eml.tpl
+++ /dev/null
@@ -1,14 +0,0 @@
-
-Dear {{$myname}},
-
-You have a new follower at {{$sitename}} - '{{$requestor}}'.
-
-You may visit their profile at {{$url}}.
-
-Please login to your site to approve or ignore/cancel the request.
-
-{{$siteurl}}
-
-Regards,
-
- {{$sitename}} administrator
diff --git a/view/ru/friend_complete_eml.tpl b/view/ru/friend_complete_eml.tpl
deleted file mode 100644
index 1c647b994..000000000
--- a/view/ru/friend_complete_eml.tpl
+++ /dev/null
@@ -1,22 +0,0 @@
-
-Dear {{$username}},
-
- Great news... '{{$fn}}' at '{{$dfrn_url}}' has accepted
-your connection request at '{{$sitename}}'.
-
-You are now mutual friends and may exchange status updates, photos, and email
-without restriction.
-
-Please visit your 'Connnections' page at {{$sitename}} if you wish to make
-any changes to this relationship.
-
-{{$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}}'].
-
-Sincerely,
-
- {{$sitename}} Administrator
-
-
diff --git a/view/ru/intro_complete_eml.tpl b/view/ru/intro_complete_eml.tpl
deleted file mode 100644
index 2c2428d68..000000000
--- a/view/ru/intro_complete_eml.tpl
+++ /dev/null
@@ -1,22 +0,0 @@
-
-Dear {{$username}},
-
- '{{$fn}}' at '{{$dfrn_url}}' has accepted
-your connection request at '{{$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}}' may choose to extend this into a two-way or more permissive
-relationship in the future.
-
- You will start receiving public status updates from '{{$fn}}',
-which will appear on your 'Matrix' page at
-
-{{$siteurl}}
-
-Sincerely,
-
- {{$sitename}} Administrator
diff --git a/view/ru/request_notify_eml.tpl b/view/ru/request_notify_eml.tpl
deleted file mode 100644
index d01b8ff27..000000000
--- a/view/ru/request_notify_eml.tpl
+++ /dev/null
@@ -1,17 +0,0 @@
-
-Dear {{$myname}},
-
-You have just received a connection request at {{$sitename}}
-
-from '{{$requestor}}'.
-
-You may visit their profile at {{$url}}.
-
-Please login to your site to view the complete introduction
-and approve or ignore/cancel the request.
-
-{{$siteurl}}
-
-Regards,
-
- {{$sitename}} administrator
diff --git a/view/sv/cmnt_received_eml.tpl b/view/sv/cmnt_received_eml.tpl
deleted file mode 100644
index d87c7a1d1..000000000
--- a/view/sv/cmnt_received_eml.tpl
+++ /dev/null
@@ -1,17 +0,0 @@
-
-$username,
-
-'$from' har kommenterat något som du följer.
-
------
-$body
------
-
-Logga in på $siteurl för att se hela konversationen:
-
-$display
-
-Hälsningar,
-$sitename admin
-
-
diff --git a/view/sv/follow_notify_eml.tpl b/view/sv/follow_notify_eml.tpl
deleted file mode 100644
index 254478c7a..000000000
--- a/view/sv/follow_notify_eml.tpl
+++ /dev/null
@@ -1,14 +0,0 @@
-
-Hej {{$myname}},
-
-Du har en ny följare på {{$sitename}} - '{{$requestor}}'.
-
-Du kan besöka profilen på {{$url}}.
-
-Logga in på din server för att godkänna eller ignorera/avslå förfrågan.
-
-{{$siteurl}}
-
-Hälsningar,
-
- {{$sitename}}-administratören
diff --git a/view/sv/friend_complete_eml.tpl b/view/sv/friend_complete_eml.tpl
deleted file mode 100644
index 31916367a..000000000
--- a/view/sv/friend_complete_eml.tpl
+++ /dev/null
@@ -1,22 +0,0 @@
-
-Hej {{$username}},
-
- Goda nyheter... '{{$fn}}' med '{{$dfrn_url}}' har accepterat
-din kontaktförfrågan på '{{$sitename}}'.
-
-Ni är nu ömsesidiga vänner och kan dela statusuppdateringar, foton och
-e-post utan restriktioner.
-
-Besök sidan 'Kontakter' på {{$sitename}} om du önskar göra några
-förändringar av den här relationen.
-
-{{$siteurl}}
-
-[Du kan till exempel skapa en separat profil med information som inte är
-tillgänglig för allmänheten - och ge '{{$fn}}' visningsrättigheter].
-
-Hälsningar,
-
- {{$sitename}}-administratören
-
-
diff --git a/view/sv/intro_complete_eml.tpl b/view/sv/intro_complete_eml.tpl
deleted file mode 100644
index f0513429f..000000000
--- a/view/sv/intro_complete_eml.tpl
+++ /dev/null
@@ -1,22 +0,0 @@
-
-Hej {{$username}},
-
- '{{$fn}}' med '{{$dfrn_url}}' har accepterat
-din kontaktförfrågan på '{{$sitename}}'.
-
- '{{$fn}}' har valt att acceptera dig som ett "fan", vilket begränsar
-vissa former av kommunikation - exempelvis privata meddelanden och viss
-profilinteraktion. Om detta är en fansida eller gemenskapssida används
-de inställningarna automatiskt.
-
- '{{$fn}}' kan välja att utöka detta till en tvåvägs eller mer
-tillåtande relation i framtiden.
-
- Du kommer att börja få offentliga statusuppdateringar från '{{$fn}}',
-vilka kommer att synas på din 'Matrix'-sida på
-
-{{$siteurl}}
-
-Hälsningar,
-
- {{$sitename}}-administratören
diff --git a/view/sv/lostpass_eml.tpl b/view/sv/lostpass_eml.tpl
index f33eccfa0..923a60d7e 100644
--- a/view/sv/lostpass_eml.tpl
+++ b/view/sv/lostpass_eml.tpl
@@ -1,14 +1,14 @@
Hej {{$username}},
- En begäran mottogs nyligen på {{$sitename}} om att återställa ditt
+ En begäran mottogs nyligen på {{$sitename}} om att återställa ditt
kontolösenord. För att bekräfta begäran, följ länken nedan eller klistra
-in den i din webbläsares adressfält.
+in den i din webbläsares adressfält.
Om du INTE begärde den här ändringen, följ INTE länken och ignorera och/eller
-radera det här mailet.
+radera det här mailet.
Ditt lösenord kommer inte att ändras om vi inte kan verifiera att det
-var du som gjorde begäran.
+var du som gjorde begäran.
Följ den här länken för att bekräfta din identitet:
@@ -29,4 +29,4 @@ Användarnamn: {{$email}}
Hälsningar,
{{$sitename}}-administratören
-
+ \ No newline at end of file
diff --git a/view/sv/mail_received_html_body_eml.tpl b/view/sv/mail_received_html_body_eml.tpl
deleted file mode 100644
index a9a34c23a..000000000
--- a/view/sv/mail_received_html_body_eml.tpl
+++ /dev/null
@@ -1,25 +0,0 @@
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional //EN">
-<html>
-<head>
- <title>Meddelande p&aring; Friendika</title>
- <meta http-equiv="Content-Type" content="text/html;charset=utf-8" />
-</head>
-<body>
-<table style="border:1px solid #ccc">
- <tbody>
- <tr><td colspan="2" style="background:#3b5998; color:#FFFFFF; font-weight:bold; font-family:'lucida grande', tahoma, verdana,arial, sans-serif; padding: 4px 8px; vertical-align: middle; font-size:16px; letter-spacing: -0.03em; text-align: left;"><img style="width:32px;height:32px;" src='$siteurl/images/friendika-32.png'><span style="padding:7px;">Friendika</span></td></tr>
-
- <tr><td style="padding-top:22px;" colspan="2">$from har skickat ett personligt meddelande till dig p&aring; $siteName.</td></tr>
-
-
- <tr><td style="padding-left:22px;padding-top:22px;width:60px;" valign="top" rowspan=3><a href="$url"><img style="border:0px;width:48px;height:48px;" src="$thumb"></a></td>
- <td style="padding-top:22px;"><a href="$url">$from</a></td></tr>
- <tr><td style="font-weight:bold;padding-bottom:5px;">$title</td></tr>
- <tr><td style="padding-right:22px;">$htmlversion</td></tr>
- <tr><td style="padding-top:11px;padding-bottom:11px;" colspan="2">Logga in p&aring; <a href="$siteurl">$siteurl</a> f&ouml;r att l&auml;sa och svara p&aring; personliga meddelanden.</td></tr>
- <tr><td></td><td>H&auml;lsningar,</td></tr>
- <tr><td></td><td>$siteName admin</td></tr>
- </tbody>
-</table>
-</body>
-</html> \ No newline at end of file
diff --git a/view/sv/mail_received_text_body_eml.tpl b/view/sv/mail_received_text_body_eml.tpl
deleted file mode 100644
index ac2857b58..000000000
--- a/view/sv/mail_received_text_body_eml.tpl
+++ /dev/null
@@ -1,10 +0,0 @@
-$from har skickat ett personligt meddelande till dig på $siteName.
-
-$title
-
-$textversion
-
-Logga in på $siteurl för att läsa och svara på personliga meddelanden.
-
-Hälsningar,
-$siteName admin
diff --git a/view/sv/messages.po b/view/sv/messages.po
index 096a0334a..945ac691e 100644
--- a/view/sv/messages.po
+++ b/view/sv/messages.po
@@ -3,13 +3,15 @@
# This file is distributed under the same license as the Red package.
#
# Translators:
+# pafcu <pafcu@iki.fi>, 2014
+# pafcu <pafcu@iki.fi>, 2014
msgid ""
msgstr ""
"Project-Id-Version: Red Matrix\n"
"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2014-04-18 00:04-0700\n"
-"PO-Revision-Date: 2014-04-19 11:55+0000\n"
-"Last-Translator: Erik Lundin <erik.lundin@aol.se>\n"
+"POT-Creation-Date: 2014-11-28 00:04-0800\n"
+"PO-Revision-Date: 2014-11-29 10:37+0000\n"
+"Last-Translator: Erik Lundin <sby8zrm8v1@asdf.asdfasdf.eu>\n"
"Language-Team: Swedish (http://www.transifex.com/projects/p/red-matrix/language/sv/)\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
@@ -17,1634 +19,870 @@ msgstr ""
"Language: sv\n"
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
-#: ../../include/widgets.php:29 ../../include/contact_widgets.php:92
-msgid "Categories"
-msgstr "Kategorier"
-
-#: ../../include/widgets.php:115 ../../include/widgets.php:155
-#: ../../include/Contact.php:107 ../../include/identity.php:675
-#: ../../mod/directory.php:188 ../../mod/match.php:62
-#: ../../mod/dirprofile.php:170 ../../mod/suggest.php:51
-msgid "Connect"
-msgstr "Ta kontakt"
-
-#: ../../include/widgets.php:117 ../../mod/suggest.php:53
-msgid "Ignore/Hide"
-msgstr "Ignorera/göm"
-
-#: ../../include/widgets.php:123 ../../mod/connections.php:265
-msgid "Suggestions"
-msgstr "Förslag"
-
-#: ../../include/widgets.php:124
-msgid "See more..."
-msgstr "Se fler..."
-
-#: ../../include/widgets.php:146
-#, php-format
-msgid "You have %1$.0f of %2$.0f allowed connections."
-msgstr "Du har %1$.0f av %2$.0f tillåtna kontakter."
-
-#: ../../include/widgets.php:152
-msgid "Add New Connection"
-msgstr "Lägg till ny kontakt"
-
-#: ../../include/widgets.php:153
-msgid "Enter the channel address"
-msgstr "Ange kanaladressen"
-
-#: ../../include/widgets.php:154
-msgid "Example: bob@example.com, http://example.com/barbara"
-msgstr "Exempel: bob@example.com, http://example.com/barbara"
-
-#: ../../include/widgets.php:171
-msgid "Notes"
-msgstr "Anteckningar"
-
-#: ../../include/widgets.php:173 ../../include/text.php:805
-#: ../../include/text.php:819 ../../mod/filer.php:50 ../../mod/rbmark.php:28
-#: ../../mod/rbmark.php:98
-msgid "Save"
-msgstr "Spara"
-
-#: ../../include/widgets.php:243
-msgid "Remove term"
-msgstr "Ta bort uttryck"
-
-#: ../../include/widgets.php:252 ../../include/features.php:52
-msgid "Saved Searches"
-msgstr "Sparade sökningar"
-
-#: ../../include/widgets.php:253 ../../include/group.php:290
-msgid "add"
-msgstr "lägg till"
-
-#: ../../include/widgets.php:283 ../../include/features.php:66
-#: ../../include/contact_widgets.php:58
-msgid "Saved Folders"
-msgstr "Sparade mappar"
-
-#: ../../include/widgets.php:286 ../../include/contact_widgets.php:61
-#: ../../include/contact_widgets.php:95
-msgid "Everything"
-msgstr "Allt"
-
-#: ../../include/widgets.php:322
-msgid "Archives"
-msgstr "Arkiv"
-
-#: ../../include/widgets.php:384
-msgid "Refresh"
-msgstr "Ladda om"
-
-#: ../../include/widgets.php:385 ../../mod/connedit.php:395
-msgid "Me"
-msgstr "Mig själv"
-
-#: ../../include/widgets.php:386 ../../mod/connedit.php:397
-msgid "Best Friends"
-msgstr "Bästa vänner"
-
-#: ../../include/widgets.php:387 ../../include/identity.php:342
-#: ../../include/profile_selectors.php:42 ../../mod/connedit.php:398
-msgid "Friends"
-msgstr "Vänner"
-
-#: ../../include/widgets.php:388
-msgid "Co-workers"
-msgstr "Kollegor"
-
-#: ../../include/widgets.php:389 ../../mod/connedit.php:399
-msgid "Former Friends"
-msgstr "Tidigare vänner"
-
-#: ../../include/widgets.php:390 ../../mod/connedit.php:400
-msgid "Acquaintances"
-msgstr "Bekanta"
-
-#: ../../include/widgets.php:391
-msgid "Everybody"
-msgstr "Alla"
-
-#: ../../include/widgets.php:423
-msgid "Account settings"
-msgstr "Kontoinställningar"
-
-#: ../../include/widgets.php:429
-msgid "Channel settings"
-msgstr "Kanalinställningar"
-
-#: ../../include/widgets.php:435
-msgid "Additional features"
-msgstr "Tilläggsfunktioner"
-
-#: ../../include/widgets.php:441
-msgid "Feature settings"
-msgstr "Funktionsinställningar"
-
-#: ../../include/widgets.php:447
-msgid "Display settings"
-msgstr "Utseende"
-
-#: ../../include/widgets.php:453
-msgid "Connected apps"
-msgstr "Anslutna appar"
-
-#: ../../include/widgets.php:459
-msgid "Export channel"
-msgstr "Exportera kanal"
-
-#: ../../include/widgets.php:471
-msgid "Automatic Permissions (Advanced)"
-msgstr "Automatiska rättigheter (avancerat)"
-
-#: ../../include/widgets.php:481
-msgid "Premium Channel Settings"
-msgstr "Inställningar för premiumkanal"
-
-#: ../../include/widgets.php:490 ../../include/features.php:43
-#: ../../mod/sources.php:88
-msgid "Channel Sources"
-msgstr "Kanalkällor"
-
-#: ../../include/widgets.php:501 ../../include/nav.php:186
-#: ../../mod/admin.php:976 ../../mod/admin.php:1181
-msgid "Settings"
-msgstr "Inställningar"
-
-#: ../../include/widgets.php:518
-msgid "Check Mail"
-msgstr "Hämta meddelanden"
-
-#: ../../include/widgets.php:523 ../../include/nav.php:177
-msgid "New Message"
-msgstr "Nytt meddelande"
-
-#: ../../include/widgets.php:599
-msgid "Chat Rooms"
-msgstr "Chattrum"
-
-#: ../../include/widgets.php:617
-msgid "Bookmarked Chatrooms"
-msgstr "Bokmärkta chattrum"
-
-#: ../../include/widgets.php:635
-msgid "Suggested Chatrooms"
-msgstr "Föreslagna chattrum"
-
-#: ../../include/activities.php:39
-msgid " and "
-msgstr " och "
-
-#: ../../include/activities.php:47
-msgid "public profile"
-msgstr "offentlig profil"
-
-#: ../../include/activities.php:52
+#: ../../include/dba/dba_driver.php:142
#, php-format
-msgid "%1$s changed %2$s to &ldquo;%3$s&rdquo;"
-msgstr "%1$s ändrade %2$s till &quot;%3$s&quot;"
-
-#: ../../include/activities.php:53
-#, php-format
-msgid "Visit %1$s's %2$s"
-msgstr "Besök %1$ss %2$s"
-
-#: ../../include/activities.php:56
-#, php-format
-msgid "%1$s has an updated %2$s, changing %3$s."
-msgstr "%1$s har en uppdaterad %2$s (har ändrat %3$s)."
-
-#: ../../include/nav.php:77 ../../include/nav.php:96 ../../boot.php:1443
-msgid "Logout"
-msgstr "Logga ut"
-
-#: ../../include/nav.php:77 ../../include/nav.php:96
-msgid "End this session"
-msgstr "Avsluta sessionen"
-
-#: ../../include/nav.php:80 ../../include/nav.php:130
-msgid "Home"
-msgstr "Hem"
-
-#: ../../include/nav.php:80
-msgid "Your posts and conversations"
-msgstr "Dina inlägg och konversationer"
-
-#: ../../include/nav.php:81 ../../include/conversation.php:937
-#: ../../mod/connedit.php:318 ../../mod/connedit.php:432
-msgid "View Profile"
-msgstr "Visa profil"
-
-#: ../../include/nav.php:81
-msgid "Your profile page"
-msgstr "Din profilsida"
-
-#: ../../include/nav.php:83
-msgid "Edit Profiles"
-msgstr "Redigera profiler"
-
-#: ../../include/nav.php:83
-msgid "Manage/Edit profiles"
-msgstr "Hantera/redigera profiler"
-
-#: ../../include/nav.php:84 ../../include/conversation.php:1504
-#: ../../mod/fbrowser.php:25
-msgid "Photos"
-msgstr "Foton"
-
-#: ../../include/nav.php:84
-msgid "Your photos"
-msgstr "Dina foton"
-
-#: ../../include/nav.php:85 ../../include/conversation.php:1513
-#: ../../mod/fbrowser.php:114
-msgid "Files"
-msgstr "Filer"
-
-#: ../../include/nav.php:85
-msgid "Your files"
-msgstr "Dina filer"
-
-#: ../../include/nav.php:86
-msgid "Chat"
-msgstr "Chatt"
-
-#: ../../include/nav.php:86
-msgid "Your chatrooms"
-msgstr "Dina chattrum"
-
-#: ../../include/nav.php:87 ../../include/nav.php:180
-#: ../../include/conversation.php:1535 ../../mod/events.php:357
-msgid "Events"
-msgstr "Händelser"
-
-#: ../../include/nav.php:87
-msgid "Your events"
-msgstr "Dina händelser"
-
-#: ../../include/nav.php:88 ../../include/conversation.php:1543
-msgid "Bookmarks"
-msgstr "Bokmärken"
-
-#: ../../include/nav.php:88
-msgid "Your bookmarks"
-msgstr "Dina bokmärken"
-
-#: ../../include/nav.php:90 ../../include/conversation.php:1554
-#: ../../mod/webpages.php:79
-msgid "Webpages"
-msgstr "Webbsidor"
-
-#: ../../include/nav.php:90
-msgid "Your webpages"
-msgstr "Dina webbsidor"
-
-#: ../../include/nav.php:94 ../../boot.php:1444
-msgid "Login"
-msgstr "Logga in"
-
-#: ../../include/nav.php:94
-msgid "Sign in"
-msgstr "Logga in"
-
-#: ../../include/nav.php:111
-#, php-format
-msgid "%s - click to logout"
-msgstr "%s - klicka för att logga ut"
-
-#: ../../include/nav.php:116
-msgid "Click to authenticate to your home hub"
-msgstr "Klicka för att autentisera mot din hemmahubb"
-
-#: ../../include/nav.php:130
-msgid "Home Page"
-msgstr "Hemsida"
-
-#: ../../include/nav.php:134 ../../mod/register.php:206 ../../boot.php:1420
-msgid "Register"
-msgstr "Registrera"
-
-#: ../../include/nav.php:134
-msgid "Create an account"
-msgstr "Skapa ett konto"
-
-#: ../../include/nav.php:139 ../../mod/help.php:60 ../../mod/help.php:65
-msgid "Help"
-msgstr "Hjälp"
-
-#: ../../include/nav.php:139
-msgid "Help and documentation"
-msgstr "Hjälp och dokumentation"
-
-#: ../../include/nav.php:142
-msgid "Apps"
-msgstr "Appar"
-
-#: ../../include/nav.php:142
-msgid "Addon applications, utilities, games"
-msgstr "Tilläggsapplikationer, verktyg, spel"
-
-#: ../../include/nav.php:144 ../../include/text.php:803
-#: ../../include/text.php:817 ../../mod/search.php:29
-msgid "Search"
-msgstr "Sök"
-
-#: ../../include/nav.php:144
-msgid "Search site content"
-msgstr "Sök innehåll"
-
-#: ../../include/nav.php:147 ../../mod/directory.php:215
-msgid "Directory"
-msgstr "Katalog"
-
-#: ../../include/nav.php:147
-msgid "Channel Locator"
-msgstr "Kanalfinnare"
-
-#: ../../include/nav.php:158
-msgid "Matrix"
-msgstr "Matris"
-
-#: ../../include/nav.php:158
-msgid "Your matrix"
-msgstr "Din matris"
-
-#: ../../include/nav.php:159
-msgid "Mark all matrix notifications seen"
-msgstr "Märk alla matrisnotifieringar som lästa"
-
-#: ../../include/nav.php:161
-msgid "Channel Home"
-msgstr "Kanalhem"
-
-#: ../../include/nav.php:161
-msgid "Channel home"
-msgstr "Kanalhem"
-
-#: ../../include/nav.php:162
-msgid "Mark all channel notifications seen"
-msgstr "Märk alla kanalnotifieringar som lästa"
-
-#: ../../include/nav.php:165 ../../include/nav.php:188
-#: ../../mod/connections.php:384
-msgid "Connections"
-msgstr "Kontakter"
-
-#: ../../include/nav.php:168
-msgid "Notices"
-msgstr "Meddelanden"
-
-#: ../../include/nav.php:168
-msgid "Notifications"
-msgstr "Notifieringar"
-
-#: ../../include/nav.php:169
-msgid "See all notifications"
-msgstr "Se alla notifieringar"
-
-#: ../../include/nav.php:170
-msgid "Mark all system notifications seen"
-msgstr "Märk alla systemnotifieringar som lästa"
-
-#: ../../include/nav.php:172
-msgid "Mail"
-msgstr "Privat meddelande"
-
-#: ../../include/nav.php:172
-msgid "Private mail"
-msgstr "Privat meddelande"
-
-#: ../../include/nav.php:173
-msgid "See all private messages"
-msgstr "Se alla privata meddelanden"
-
-#: ../../include/nav.php:174
-msgid "Mark all private messages seen"
-msgstr "Märk alla privata meddelanden som lästa"
-
-#: ../../include/nav.php:175
-msgid "Inbox"
-msgstr "Inkorg"
-
-#: ../../include/nav.php:176
-msgid "Outbox"
-msgstr "Utkorg"
-
-#: ../../include/nav.php:180
-msgid "Event Calendar"
-msgstr "Kalender"
-
-#: ../../include/nav.php:181
-msgid "See all events"
-msgstr "Se alla händelser"
-
-#: ../../include/nav.php:182
-msgid "Mark all events seen"
-msgstr "Märk alla händelser som lästa"
-
-#: ../../include/nav.php:184
-msgid "Channel Select"
-msgstr "Välj kanal"
-
-#: ../../include/nav.php:184
-msgid "Manage Your Channels"
-msgstr "Hantera dina kanaler"
-
-#: ../../include/nav.php:186
-msgid "Account/Channel Settings"
-msgstr "Konto-/kanalinställningar"
-
-#: ../../include/nav.php:188
-msgid "Manage/Edit Friends and Connections"
-msgstr "Hantera/redigera vänner och kontakter"
-
-#: ../../include/nav.php:195 ../../mod/admin.php:117
-msgid "Admin"
-msgstr "Administration"
-
-#: ../../include/nav.php:195
-msgid "Site Setup and Configuration"
-msgstr "Serverinställning och -konfiguration"
-
-#: ../../include/nav.php:220
-msgid "Nothing new here"
-msgstr "Inget nytt här"
-
-#: ../../include/nav.php:225
-msgid "Please wait..."
-msgstr "Vänta..."
-
-#: ../../include/event.php:11 ../../include/bb2diaspora.php:433
-msgid "l F d, Y \\@ g:i A"
-msgstr "l j F Y \\k\\l. H.i"
-
-#: ../../include/event.php:20 ../../include/bb2diaspora.php:439
-msgid "Starts:"
-msgstr "Börjar:"
-
-#: ../../include/event.php:30 ../../include/bb2diaspora.php:447
-msgid "Finishes:"
-msgstr "Slutar:"
-
-#: ../../include/event.php:40 ../../include/identity.php:726
-#: ../../include/bb2diaspora.php:455 ../../mod/events.php:465
-#: ../../mod/directory.php:161 ../../mod/dirprofile.php:111
-msgid "Location:"
-msgstr "Plats:"
-
-#: ../../include/api.php:1016
-msgid "Public Timeline"
-msgstr "Offentlig tidslinje"
-
-#: ../../include/Contact.php:123
-msgid "New window"
-msgstr "Nytt fönster"
-
-#: ../../include/Contact.php:124
-msgid "Open the selected location in a different window or browser tab"
-msgstr "Öppna den valda platsen i ett annat fönster eller en annan webbläsarflik"
-
-#: ../../include/features.php:23
-msgid "General Features"
-msgstr "Allmänna funktioner"
-
-#: ../../include/features.php:25
-msgid "Content Expiration"
-msgstr "Tidsbegränsat innehåll"
-
-#: ../../include/features.php:25
-msgid "Remove posts/comments and/or private messages at a future time"
-msgstr "Ta bort inlägg/kommentarer och/eller privata meddelanden efter en tid"
-
-#: ../../include/features.php:26
-msgid "Multiple Profiles"
-msgstr "Flera profiler"
-
-#: ../../include/features.php:26
-msgid "Ability to create multiple profiles"
-msgstr "Möjlighet att skapa flera profiler"
-
-#: ../../include/features.php:27
-msgid "Web Pages"
-msgstr "Webbsidor"
-
-#: ../../include/features.php:27
-msgid "Provide managed web pages on your channel"
-msgstr "Tillhandahåll ordnade webbsidor i din kanal"
-
-#: ../../include/features.php:28
-msgid "Private Notes"
-msgstr "Privata anteckningar"
-
-#: ../../include/features.php:28
-msgid "Enables a tool to store notes and reminders"
-msgstr "Aktivera ett verktyg för att spara anteckningar och påminnelser"
-
-#: ../../include/features.php:33
-msgid "Extended Identity Sharing"
-msgstr "Utökad identitetsdelning"
-
-#: ../../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 "Dela din identitet med alla webbplatser på Internet. Om inaktiverat är identiteten bara delad med platser i matrisen."
-
-#: ../../include/features.php:34
-msgid "Expert Mode"
-msgstr "Expertläge"
-
-#: ../../include/features.php:34
-msgid "Enable Expert Mode to provide advanced configuration options"
-msgstr "Aktivera expertläge för att tillåta avancerade inställningar"
-
-#: ../../include/features.php:35
-msgid "Premium Channel"
-msgstr "Premiumkanal"
-
-#: ../../include/features.php:35
-msgid ""
-"Allows you to set restrictions and terms on those that connect with your "
-"channel"
-msgstr "Låter dig ange begränsningar och villkor för dem som vill ansluta till din kanal"
-
-#: ../../include/features.php:40
-msgid "Post Composition Features"
-msgstr "Skrivfunktioner"
-
-#: ../../include/features.php:41
-msgid "Richtext Editor"
-msgstr "Richtext-editor"
-
-#: ../../include/features.php:41
-msgid "Enable richtext editor"
-msgstr "Aktivera richtext-editor"
-
-#: ../../include/features.php:42
-msgid "Post Preview"
-msgstr "Förhandsgranskning"
-
-#: ../../include/features.php:42
-msgid "Allow previewing posts and comments before publishing them"
-msgstr "Tillåt förhandsgranskning av inlägg och kommentarer innan de publiceras"
-
-#: ../../include/features.php:43
-msgid "Automatically import channel content from other channels or feeds"
-msgstr "Importera kanalinnehåll från andra kanaler eller strömmar automatiskt"
-
-#: ../../include/features.php:44
-msgid "Even More Encryption"
-msgstr "Ytterligare kryptering"
-
-#: ../../include/features.php:44
-msgid ""
-"Allow optional encryption of content end-to-end with a shared secret key"
-msgstr "Tillåt änd-till-änd-kryptering av innehåll med en delad hemlig nyckel"
-
-#: ../../include/features.php:49
-msgid "Network and Stream Filtering"
-msgstr "Nätverk och strömfiltrering"
-
-#: ../../include/features.php:50
-msgid "Search by Date"
-msgstr "Sök på datum"
-
-#: ../../include/features.php:50
-msgid "Ability to select posts by date ranges"
-msgstr "Tillåter urval av inlägg baserat på datum"
-
-#: ../../include/features.php:51
-msgid "Collections Filter"
-msgstr "Sammanhangsfilter"
-
-#: ../../include/features.php:51
-msgid "Enable widget to display Network posts only from selected collections"
-msgstr "Aktivera en väljare för att visa nätverksinlägg från enbart valda sammanhang"
-
-#: ../../include/features.php:52
-msgid "Save search terms for re-use"
-msgstr "Spara sökuttryck för återanvändning"
-
-#: ../../include/features.php:53
-msgid "Network Personal Tab"
-msgstr "Personlig nätverksflik"
-
-#: ../../include/features.php:53
-msgid "Enable tab to display only Network posts that you've interacted on"
-msgstr "Aktivera en flik som visar endast de nätverksinlägg som du har deltagit i"
-
-#: ../../include/features.php:54
-msgid "Network New Tab"
-msgstr "Flik för nytt på nätverket"
-
-#: ../../include/features.php:54
-msgid "Enable tab to display all new Network activity"
-msgstr "Aktivera en flik som visar all ny nätverksaktivitet"
-
-#: ../../include/features.php:55
-msgid "Affinity Tool"
-msgstr "Samhörighetsverktyg"
-
-#: ../../include/features.php:55
-msgid "Filter stream activity by depth of relationships"
-msgstr "Filtrera strömaktivitet efter hur nära relationen är"
-
-#: ../../include/features.php:56
-msgid "Suggest Channels"
-msgstr "Föreslå kanaler"
-
-#: ../../include/features.php:56
-msgid "Show channel suggestions"
-msgstr "Visa förslag på kanaler"
-
-#: ../../include/features.php:61
-msgid "Post/Comment Tools"
-msgstr "Inläggs-/kommentarsverktyg"
-
-#: ../../include/features.php:63
-msgid "Edit Sent Posts"
-msgstr "Redigera sända inlägg"
-
-#: ../../include/features.php:63
-msgid "Edit and correct posts and comments after sending"
-msgstr "Redigera och korrigera inlägg och kommentarer efter att de skickats"
-
-#: ../../include/features.php:64
-msgid "Tagging"
-msgstr "Taggning"
-
-#: ../../include/features.php:64
-msgid "Ability to tag existing posts"
-msgstr "Möjlighet att tagga befintliga inlägg"
-
-#: ../../include/features.php:65
-msgid "Post Categories"
-msgstr "Inläggskategorier"
-
-#: ../../include/features.php:65
-msgid "Add categories to your posts"
-msgstr "Lägg till kategorier till dina inlägg"
-
-#: ../../include/features.php:66
-msgid "Ability to file posts under folders"
-msgstr "Möjlighet att lägga inlägg i mappar"
-
-#: ../../include/features.php:67
-msgid "Dislike Posts"
-msgstr "Ogilla inlägg"
-
-#: ../../include/features.php:67
-msgid "Ability to dislike posts/comments"
-msgstr "Möjlighet att ogilla inlägg/kommentarer"
-
-#: ../../include/features.php:68
-msgid "Star Posts"
-msgstr "Märk inlägg"
-
-#: ../../include/features.php:68
-msgid "Ability to mark special posts with a star indicator"
-msgstr "Möjlighet att märka speciella inlägg med en stjärna"
-
-#: ../../include/features.php:69
-msgid "Tag Cloud"
-msgstr "Taggmoln"
-
-#: ../../include/features.php:69
-msgid "Provide a personal tag cloud on your channel page"
-msgstr "Tillhandahåll ett personligt taggmoln på din kanalsida"
-
-#: ../../include/contact_selectors.php:30
-msgid "Unknown | Not categorised"
-msgstr "Okänd | Inte kategoriserad"
-
-#: ../../include/contact_selectors.php:31
-msgid "Block immediately"
-msgstr "Blockera genast"
-
-#: ../../include/contact_selectors.php:32
-msgid "Shady, spammer, self-marketer"
-msgstr "Skum, spammare, självförhärligande"
-
-#: ../../include/contact_selectors.php:33
-msgid "Known to me, but no opinion"
-msgstr "Känner till, men ingen åsikt"
-
-#: ../../include/contact_selectors.php:34
-msgid "OK, probably harmless"
-msgstr "OK, antagligen harmlös"
-
-#: ../../include/contact_selectors.php:35
-msgid "Reputable, has my trust"
-msgstr "Ansedd, har mitt förtroende"
-
-#: ../../include/contact_selectors.php:54
-msgid "Frequently"
-msgstr "Ofta"
-
-#: ../../include/contact_selectors.php:55
-msgid "Hourly"
-msgstr "Varje timme"
-
-#: ../../include/contact_selectors.php:56
-msgid "Twice daily"
-msgstr "Två gånger dagligen"
-
-#: ../../include/contact_selectors.php:57
-msgid "Daily"
-msgstr "Dagligen"
-
-#: ../../include/contact_selectors.php:58
-msgid "Weekly"
-msgstr "Varje vecka"
-
-#: ../../include/contact_selectors.php:59
-msgid "Monthly"
-msgstr "Varje månad"
-
-#: ../../include/contact_selectors.php:74
-msgid "Friendica"
-msgstr "Friendica"
-
-#: ../../include/contact_selectors.php:75
-msgid "OStatus"
-msgstr "OStatus"
-
-#: ../../include/contact_selectors.php:76
-msgid "RSS/Atom"
-msgstr "RSS/Atom"
-
-#: ../../include/contact_selectors.php:77 ../../mod/admin.php:753
-#: ../../mod/admin.php:762 ../../boot.php:1446
-msgid "Email"
-msgstr "E-post"
-
-#: ../../include/contact_selectors.php:78
-msgid "Diaspora"
-msgstr "Diaspora"
-
-#: ../../include/contact_selectors.php:79
-msgid "Facebook"
-msgstr "Facebook"
-
-#: ../../include/contact_selectors.php:80
-msgid "Zot!"
-msgstr "Zot!"
-
-#: ../../include/contact_selectors.php:81
-msgid "LinkedIn"
-msgstr "LinkedIn"
-
-#: ../../include/contact_selectors.php:82
-msgid "XMPP/IM"
-msgstr "XMPP/IM"
+msgid "Cannot locate DNS info for database server '%s'"
+msgstr "Kan inte hitta DNS-information för databasserver '%s'"
-#: ../../include/contact_selectors.php:83
-msgid "MySpace"
-msgstr "MySpace"
+#: ../../include/photo/photo_driver.php:680 ../../include/photos.php:52
+#: ../../mod/profile_photo.php:142 ../../mod/profile_photo.php:301
+#: ../../mod/profile_photo.php:423 ../../mod/photos.php:91
+#: ../../mod/photos.php:654
+msgid "Profile Photos"
+msgstr "Profilfoton"
-#: ../../include/conversation.php:117 ../../include/text.php:1697
-#: ../../mod/like.php:111 ../../mod/subthread.php:89 ../../mod/tagger.php:45
+#: ../../include/conversation.php:120 ../../include/text.php:1747
+#: ../../include/diaspora.php:1928 ../../mod/subthread.php:72
+#: ../../mod/subthread.php:174 ../../mod/like.php:290 ../../mod/tagger.php:45
msgid "photo"
msgstr "foto"
-#: ../../include/conversation.php:120 ../../include/text.php:1700
+#: ../../include/conversation.php:123 ../../include/text.php:1750
#: ../../mod/tagger.php:49
msgid "event"
msgstr "händelse"
-#: ../../include/conversation.php:123
+#: ../../include/conversation.php:126 ../../mod/like.php:89
msgid "channel"
msgstr "kanal"
-#: ../../include/conversation.php:145 ../../include/text.php:1703
-#: ../../mod/like.php:111 ../../mod/subthread.php:89 ../../mod/tagger.php:53
+#: ../../include/conversation.php:148 ../../include/text.php:1753
+#: ../../include/diaspora.php:1928 ../../mod/subthread.php:72
+#: ../../mod/subthread.php:174 ../../mod/like.php:290 ../../mod/tagger.php:53
msgid "status"
msgstr "status"
-#: ../../include/conversation.php:147 ../../include/text.php:1705
+#: ../../include/conversation.php:150 ../../include/text.php:1755
#: ../../mod/tagger.php:55
msgid "comment"
msgstr "kommentar"
-#: ../../include/conversation.php:161 ../../mod/like.php:142
+#: ../../include/conversation.php:164 ../../include/diaspora.php:1957
+#: ../../mod/like.php:336
#, php-format
msgid "%1$s likes %2$s's %3$s"
msgstr "%1$s gillar %2$ss %3$s"
-#: ../../include/conversation.php:164 ../../mod/like.php:144
+#: ../../include/conversation.php:167 ../../mod/like.php:338
#, php-format
msgid "%1$s doesn't like %2$s's %3$s"
msgstr "%1$s gillar inte %2$ss %3$s"
-#: ../../include/conversation.php:201
+#: ../../include/conversation.php:204
#, php-format
msgid "%1$s is now connected with %2$s"
msgstr "%1$s har nu kontakt med %2$s"
-#: ../../include/conversation.php:236
+#: ../../include/conversation.php:239
#, php-format
msgid "%1$s poked %2$s"
msgstr "%1$s puffade %2$s"
-#: ../../include/conversation.php:240 ../../include/text.php:885
+#: ../../include/conversation.php:243 ../../include/text.php:905
msgid "poked"
msgstr "puffade"
-#: ../../include/conversation.php:258 ../../mod/mood.php:63
+#: ../../include/conversation.php:261 ../../mod/mood.php:63
#, php-format
-msgid "%1$s is currently %2$s"
-msgstr "%1$s är för tillfället %2$s"
+msgctxt "mood"
+msgid "%1$s is %2$s"
+msgstr "%1$s är %2$s"
-#: ../../include/conversation.php:631 ../../include/ItemObject.php:114
+#: ../../include/conversation.php:633 ../../include/ItemObject.php:126
msgid "Select"
msgstr "Välj"
-#: ../../include/conversation.php:632 ../../include/ItemObject.php:108
-#: ../../mod/thing.php:236 ../../mod/settings.php:578 ../../mod/group.php:176
-#: ../../mod/admin.php:757 ../../mod/admin.php:886 ../../mod/connedit.php:365
-#: ../../mod/filestorage.php:171 ../../mod/photos.php:1043
+#: ../../include/conversation.php:634 ../../include/RedDAV/RedBrowser.php:251
+#: ../../include/apps.php:250 ../../include/ItemObject.php:120
+#: ../../mod/settings.php:626 ../../mod/connedit.php:476
+#: ../../mod/thing.php:234 ../../mod/group.php:176 ../../mod/admin.php:730
+#: ../../mod/admin.php:861 ../../mod/photos.php:1070
msgid "Delete"
msgstr "Ta bort"
-#: ../../include/conversation.php:639 ../../include/ItemObject.php:89
-#: ../../mod/photos.php:846
+#: ../../include/conversation.php:641 ../../include/ItemObject.php:89
msgid "Private Message"
msgstr "Privat meddelande"
-#: ../../include/conversation.php:646 ../../include/ItemObject.php:161
-msgid "Message is verified"
-msgstr "Meddelandet är bekräftat"
+#: ../../include/conversation.php:648 ../../include/ItemObject.php:194
+msgid "Message signature validated"
+msgstr "Meddelandesignatur bekräftad"
+
+#: ../../include/conversation.php:649 ../../include/ItemObject.php:195
+msgid "Message signature incorrect"
+msgstr "Meddelandesignatur felaktig"
-#: ../../include/conversation.php:666
+#: ../../include/conversation.php:670
#, php-format
msgid "View %s's profile @ %s"
msgstr "Visa %ss profil på %s"
-#: ../../include/conversation.php:680
+#: ../../include/conversation.php:685
msgid "Categories:"
msgstr "Kategorier:"
-#: ../../include/conversation.php:681
+#: ../../include/conversation.php:686
msgid "Filed under:"
msgstr "Postat under:"
-#: ../../include/conversation.php:690 ../../include/ItemObject.php:226
+#: ../../include/conversation.php:694 ../../include/ItemObject.php:266
#, php-format
msgid " from %s"
msgstr "från %s"
-#: ../../include/conversation.php:693 ../../include/ItemObject.php:229
+#: ../../include/conversation.php:697 ../../include/ItemObject.php:269
#, php-format
msgid "last edited: %s"
msgstr "senast redigerat: %s"
-#: ../../include/conversation.php:694 ../../include/ItemObject.php:230
+#: ../../include/conversation.php:698 ../../include/ItemObject.php:270
#, php-format
msgid "Expires: %s"
msgstr "Upphör: %s"
-#: ../../include/conversation.php:709
+#: ../../include/conversation.php:713
msgid "View in context"
msgstr "Visa sammanhang"
-#: ../../include/conversation.php:711 ../../include/conversation.php:1127
-#: ../../include/ItemObject.php:259 ../../mod/mail.php:222
-#: ../../mod/mail.php:336 ../../mod/editpost.php:121
-#: ../../mod/editblock.php:120 ../../mod/editlayout.php:115
-#: ../../mod/editwebpage.php:152 ../../mod/photos.php:974
+#: ../../include/conversation.php:715 ../../include/conversation.php:1137
+#: ../../include/ItemObject.php:317 ../../mod/editblock.php:152
+#: ../../mod/editlayout.php:148 ../../mod/editpost.php:121
+#: ../../mod/editwebpage.php:183 ../../mod/mail.php:238 ../../mod/mail.php:353
+#: ../../mod/photos.php:978
msgid "Please wait"
msgstr "Vänta"
-#: ../../include/conversation.php:838
+#: ../../include/conversation.php:831
msgid "remove"
msgstr "ta bort"
-#: ../../include/conversation.php:842
+#: ../../include/conversation.php:835 ../../include/nav.php:257
msgid "Loading..."
msgstr "Laddar..."
-#: ../../include/conversation.php:843
+#: ../../include/conversation.php:836
msgid "Delete Selected Items"
msgstr "Ta bort valda poster"
-#: ../../include/conversation.php:934
+#: ../../include/conversation.php:926
msgid "View Source"
msgstr "Visa källa"
-#: ../../include/conversation.php:935
+#: ../../include/conversation.php:927
msgid "Follow Thread"
msgstr "Följ tråd"
-#: ../../include/conversation.php:936
+#: ../../include/conversation.php:928
msgid "View Status"
msgstr "Visa status"
-#: ../../include/conversation.php:938
+#: ../../include/conversation.php:929 ../../include/nav.php:99
+#: ../../mod/connedit.php:429 ../../mod/connedit.php:544
+msgid "View Profile"
+msgstr "Visa profil"
+
+#: ../../include/conversation.php:930
msgid "View Photos"
msgstr "Visa foton"
-#: ../../include/conversation.php:939
+#: ../../include/conversation.php:931
msgid "Matrix Activity"
msgstr "Matrisaktivitet"
-#: ../../include/conversation.php:940
+#: ../../include/conversation.php:932 ../../include/identity.php:840
+#: ../../include/widgets.php:135 ../../include/widgets.php:175
+#: ../../include/Contact.php:107 ../../mod/suggest.php:51
+#: ../../mod/match.php:62 ../../mod/directory.php:235
+msgid "Connect"
+msgstr "Ta kontakt"
+
+#: ../../include/conversation.php:933
msgid "Edit Contact"
msgstr "Redigera kontakt"
-#: ../../include/conversation.php:941
+#: ../../include/conversation.php:934
msgid "Send PM"
msgstr "Skicka meddelande"
-#: ../../include/conversation.php:942
+#: ../../include/conversation.php:935 ../../include/apps.php:143
msgid "Poke"
msgstr "Puffa"
-#: ../../include/conversation.php:998
+#: ../../include/conversation.php:987 ../../include/RedDAV/RedBrowser.php:163
+#: ../../include/apps.php:331 ../../include/apps.php:382
+#: ../../mod/connedit.php:512 ../../mod/photos.php:713
+#: ../../mod/photos.php:1132
+msgid "Unknown"
+msgstr "Okända"
+
+#: ../../include/conversation.php:1008
#, php-format
msgid "%s likes this."
msgstr "%s gillar det här."
-#: ../../include/conversation.php:998
+#: ../../include/conversation.php:1008
#, php-format
msgid "%s doesn't like this."
msgstr "%s gillar inte det här."
-#: ../../include/conversation.php:1002
+#: ../../include/conversation.php:1012
#, 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> gillar det här."
msgstr[1] "<span %1$s>%2$d personer</span> gillar det här."
-#: ../../include/conversation.php:1004
+#: ../../include/conversation.php:1014
#, 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> gillar inte det här."
msgstr[1] "<span %1$s>%2$d personer</span> gillar inte det här."
-#: ../../include/conversation.php:1010
+#: ../../include/conversation.php:1020
msgid "and"
msgstr "och"
-#: ../../include/conversation.php:1013
+#: ../../include/conversation.php:1023
#, php-format
msgid ", and %d other people"
msgid_plural ", and %d other people"
msgstr[0] ", och %d annan person"
msgstr[1] ", och %d andra personer"
-#: ../../include/conversation.php:1014
+#: ../../include/conversation.php:1024
#, php-format
msgid "%s like this."
msgstr "%s gillar det här."
-#: ../../include/conversation.php:1014
+#: ../../include/conversation.php:1024
#, php-format
msgid "%s don't like this."
msgstr "%s gillar inte det här."
-#: ../../include/conversation.php:1071
+#: ../../include/conversation.php:1081
msgid "Visible to <strong>everybody</strong>"
-msgstr "Synlig för <strong>alla</strong>"
+msgstr "Kan ses av <strong>alla</strong>"
-#: ../../include/conversation.php:1072 ../../mod/mail.php:171
-#: ../../mod/mail.php:269
+#: ../../include/conversation.php:1082 ../../mod/mail.php:171
+#: ../../mod/mail.php:286
msgid "Please enter a link URL:"
msgstr "Ange en länkadress:"
-#: ../../include/conversation.php:1073
+#: ../../include/conversation.php:1083
msgid "Please enter a video link/URL:"
msgstr "Ange en videolänkadress:"
-#: ../../include/conversation.php:1074
+#: ../../include/conversation.php:1084
msgid "Please enter an audio link/URL:"
msgstr "Ange en ljudlänkadress"
-#: ../../include/conversation.php:1075
+#: ../../include/conversation.php:1085
msgid "Tag term:"
msgstr "Tagguttryck"
-#: ../../include/conversation.php:1076 ../../mod/filer.php:49
+#: ../../include/conversation.php:1086 ../../mod/filer.php:49
msgid "Save to Folder:"
msgstr "Spara i mapp:"
-#: ../../include/conversation.php:1077
+#: ../../include/conversation.php:1087
msgid "Where are you right now?"
msgstr "Var är du just nu?"
-#: ../../include/conversation.php:1078 ../../mod/mail.php:172
-#: ../../mod/mail.php:270 ../../mod/editpost.php:52
+#: ../../include/conversation.php:1088 ../../mod/editpost.php:52
+#: ../../mod/mail.php:172 ../../mod/mail.php:287
msgid "Expires YYYY-MM-DD HH:MM"
msgstr "Upphör YYYY-MM-DD HH:MM"
-#: ../../include/conversation.php:1088 ../../include/ItemObject.php:557
-#: ../../mod/webpages.php:123 ../../mod/editpost.php:140
-#: ../../mod/editblock.php:141 ../../mod/editlayout.php:135
-#: ../../mod/editwebpage.php:175 ../../mod/photos.php:994
+#: ../../include/conversation.php:1098 ../../include/page_widgets.php:40
+#: ../../include/ItemObject.php:630 ../../mod/webpages.php:166
+#: ../../mod/editblock.php:173 ../../mod/editlayout.php:168
+#: ../../mod/editpost.php:140 ../../mod/editwebpage.php:205
+#: ../../mod/photos.php:998
msgid "Preview"
msgstr "Förhandsgranska"
-#: ../../include/conversation.php:1102 ../../mod/layouts.php:113
-#: ../../mod/photos.php:973
+#: ../../include/conversation.php:1112 ../../mod/editblock.php:198
+#: ../../mod/editlayout.php:193 ../../mod/editwebpage.php:230
+#: ../../mod/layouts.php:168 ../../mod/photos.php:977
msgid "Share"
msgstr "Dela"
-#: ../../include/conversation.php:1104 ../../mod/editwebpage.php:139
+#: ../../include/conversation.php:1114 ../../mod/editwebpage.php:170
msgid "Page link title"
msgstr "Titel på sidlänk"
-#: ../../include/conversation.php:1107
+#: ../../include/conversation.php:1117
msgid "Post as"
msgstr "Posta som"
-#: ../../include/conversation.php:1108 ../../mod/mail.php:219
-#: ../../mod/mail.php:332 ../../mod/editpost.php:113
-#: ../../mod/editblock.php:112 ../../mod/editlayout.php:107
-#: ../../mod/editwebpage.php:144
+#: ../../include/conversation.php:1118 ../../mod/editblock.php:144
+#: ../../mod/editlayout.php:140 ../../mod/editpost.php:113
+#: ../../mod/editwebpage.php:175 ../../mod/mail.php:235 ../../mod/mail.php:349
msgid "Upload photo"
msgstr "Ladda upp foto"
-#: ../../include/conversation.php:1109
+#: ../../include/conversation.php:1119
msgid "upload photo"
msgstr "ladda upp foto"
-#: ../../include/conversation.php:1110 ../../mod/mail.php:220
-#: ../../mod/mail.php:333 ../../mod/editpost.php:114
-#: ../../mod/editblock.php:113 ../../mod/editlayout.php:108
-#: ../../mod/editwebpage.php:145
+#: ../../include/conversation.php:1120 ../../mod/editblock.php:145
+#: ../../mod/editlayout.php:141 ../../mod/editpost.php:114
+#: ../../mod/editwebpage.php:176 ../../mod/mail.php:236 ../../mod/mail.php:350
msgid "Attach file"
msgstr "Bifoga fil"
-#: ../../include/conversation.php:1111
+#: ../../include/conversation.php:1121
msgid "attach file"
msgstr "bifoga fil"
-#: ../../include/conversation.php:1112 ../../mod/mail.php:221
-#: ../../mod/mail.php:334 ../../mod/editpost.php:115
-#: ../../mod/editblock.php:114 ../../mod/editlayout.php:109
-#: ../../mod/editwebpage.php:146
+#: ../../include/conversation.php:1122 ../../mod/editblock.php:146
+#: ../../mod/editlayout.php:142 ../../mod/editpost.php:115
+#: ../../mod/editwebpage.php:177 ../../mod/mail.php:237 ../../mod/mail.php:351
msgid "Insert web link"
msgstr "Infoga webblänk"
-#: ../../include/conversation.php:1113
+#: ../../include/conversation.php:1123
msgid "web link"
msgstr "webblänk"
-#: ../../include/conversation.php:1114
+#: ../../include/conversation.php:1124
msgid "Insert video link"
msgstr "Infoga videolänk"
-#: ../../include/conversation.php:1115
+#: ../../include/conversation.php:1125
msgid "video link"
msgstr "videolänk"
-#: ../../include/conversation.php:1116
+#: ../../include/conversation.php:1126
msgid "Insert audio link"
msgstr "Infoga ljudlänk"
-#: ../../include/conversation.php:1117
+#: ../../include/conversation.php:1127
msgid "audio link"
msgstr "ljudlänk"
-#: ../../include/conversation.php:1118 ../../mod/editpost.php:119
-#: ../../mod/editblock.php:118 ../../mod/editlayout.php:113
-#: ../../mod/editwebpage.php:150
+#: ../../include/conversation.php:1128 ../../mod/editblock.php:150
+#: ../../mod/editlayout.php:146 ../../mod/editpost.php:119
+#: ../../mod/editwebpage.php:181
msgid "Set your location"
msgstr "Ange din plats"
-#: ../../include/conversation.php:1119
+#: ../../include/conversation.php:1129
msgid "set location"
msgstr "ange plats"
-#: ../../include/conversation.php:1120 ../../mod/editpost.php:120
-#: ../../mod/editblock.php:119 ../../mod/editlayout.php:114
-#: ../../mod/editwebpage.php:151
+#: ../../include/conversation.php:1130 ../../mod/editblock.php:151
+#: ../../mod/editlayout.php:147 ../../mod/editpost.php:120
+#: ../../mod/editwebpage.php:182
msgid "Clear browser location"
msgstr "Rensa webbläsarplats"
-#: ../../include/conversation.php:1121
+#: ../../include/conversation.php:1131
msgid "clear location"
msgstr "rensa plats"
-#: ../../include/conversation.php:1123 ../../mod/editpost.php:132
-#: ../../mod/editblock.php:132 ../../mod/editlayout.php:126
-#: ../../mod/editwebpage.php:167
+#: ../../include/conversation.php:1133 ../../mod/editblock.php:164
+#: ../../mod/editlayout.php:159 ../../mod/editpost.php:132
+#: ../../mod/editwebpage.php:198
msgid "Set title"
msgstr "Ange titel"
-#: ../../include/conversation.php:1126 ../../mod/editpost.php:134
-#: ../../mod/editblock.php:135 ../../mod/editlayout.php:129
-#: ../../mod/editwebpage.php:169
+#: ../../include/conversation.php:1136 ../../mod/events.php:574
+#: ../../mod/editblock.php:167 ../../mod/editlayout.php:162
+#: ../../mod/editpost.php:134 ../../mod/editwebpage.php:200
msgid "Categories (comma-separated list)"
msgstr "Kategorier (kommaseparerad lista)"
-#: ../../include/conversation.php:1128 ../../mod/editpost.php:122
-#: ../../mod/editblock.php:121 ../../mod/editlayout.php:116
-#: ../../mod/editwebpage.php:153
+#: ../../include/conversation.php:1138 ../../mod/editblock.php:153
+#: ../../mod/editlayout.php:149 ../../mod/editpost.php:122
+#: ../../mod/editwebpage.php:184
msgid "Permission settings"
msgstr "Behörighetsinställningar"
-#: ../../include/conversation.php:1129
+#: ../../include/conversation.php:1139
msgid "permissions"
msgstr "behörighet"
-#: ../../include/conversation.php:1136 ../../mod/editpost.php:129
-#: ../../mod/editblock.php:129 ../../mod/editlayout.php:123
-#: ../../mod/editwebpage.php:162
+#: ../../include/conversation.php:1146 ../../mod/editblock.php:161
+#: ../../mod/editlayout.php:156 ../../mod/editpost.php:129
+#: ../../mod/editwebpage.php:193
msgid "Public post"
msgstr "Offentligt inlägg"
-#: ../../include/conversation.php:1138 ../../mod/editpost.php:135
-#: ../../mod/editblock.php:136 ../../mod/editlayout.php:130
-#: ../../mod/editwebpage.php:170
+#: ../../include/conversation.php:1148 ../../mod/editblock.php:168
+#: ../../mod/editlayout.php:163 ../../mod/editpost.php:135
+#: ../../mod/editwebpage.php:201
msgid "Example: bob@example.com, mary@example.com"
msgstr "Exempel: bob@example.com, mary@example.com"
-#: ../../include/conversation.php:1151 ../../mod/mail.php:226
-#: ../../mod/mail.php:339 ../../mod/editpost.php:146
-#: ../../mod/editblock.php:146 ../../mod/editlayout.php:140
-#: ../../mod/editwebpage.php:180
+#: ../../include/conversation.php:1161 ../../mod/editblock.php:178
+#: ../../mod/editlayout.php:173 ../../mod/editpost.php:146
+#: ../../mod/editwebpage.php:210 ../../mod/mail.php:242 ../../mod/mail.php:356
msgid "Set expiration date"
msgstr "Ange utgångsdatum"
-#: ../../include/conversation.php:1153 ../../include/ItemObject.php:560
-#: ../../mod/mail.php:228 ../../mod/mail.php:341 ../../mod/editpost.php:148
+#: ../../include/conversation.php:1163 ../../include/ItemObject.php:633
+#: ../../mod/editpost.php:148 ../../mod/mail.php:244 ../../mod/mail.php:358
msgid "Encrypt text"
msgstr "Kryptera text"
-#: ../../include/conversation.php:1155 ../../mod/editpost.php:150
+#: ../../include/conversation.php:1165 ../../mod/events.php:580
+#: ../../mod/editpost.php:150
msgid "OK"
msgstr "OK"
-#: ../../include/conversation.php:1156 ../../mod/settings.php:516
-#: ../../mod/settings.php:542 ../../mod/editpost.php:151
-#: ../../mod/tagrm.php:11 ../../mod/tagrm.php:94 ../../mod/fbrowser.php:82
-#: ../../mod/fbrowser.php:117
+#: ../../include/conversation.php:1166 ../../mod/settings.php:564
+#: ../../mod/settings.php:590 ../../mod/events.php:579
+#: ../../mod/editpost.php:151 ../../mod/fbrowser.php:82
+#: ../../mod/fbrowser.php:117 ../../mod/tagrm.php:11 ../../mod/tagrm.php:134
msgid "Cancel"
msgstr "Avbryt"
-#: ../../include/conversation.php:1395
+#: ../../include/conversation.php:1410
msgid "Discover"
msgstr "Upptäck"
-#: ../../include/conversation.php:1398
+#: ../../include/conversation.php:1413
msgid "Imported public streams"
msgstr "Importerade offentliga strömmar"
-#: ../../include/conversation.php:1403
+#: ../../include/conversation.php:1418
msgid "Commented Order"
msgstr "Kommentarsordning"
-#: ../../include/conversation.php:1406
+#: ../../include/conversation.php:1421
msgid "Sort by Comment Date"
msgstr "Ordna efter kommentarsdatum"
-#: ../../include/conversation.php:1410
+#: ../../include/conversation.php:1425
msgid "Posted Order"
msgstr "Inläggsordning"
-#: ../../include/conversation.php:1413
+#: ../../include/conversation.php:1428
msgid "Sort by Post Date"
msgstr "Ordna efter när inlägget skrevs"
-#: ../../include/conversation.php:1418
+#: ../../include/conversation.php:1433 ../../include/widgets.php:89
msgid "Personal"
msgstr "Personligt"
-#: ../../include/conversation.php:1421
+#: ../../include/conversation.php:1436
msgid "Posts that mention or involve you"
msgstr "Inlägg som nämner eller berör dig"
-#: ../../include/conversation.php:1427 ../../mod/menu.php:61
-#: ../../mod/connections.php:211 ../../mod/connections.php:223
+#: ../../include/conversation.php:1442 ../../mod/connections.php:211
+#: ../../mod/connections.php:224 ../../mod/menu.php:80
msgid "New"
msgstr "Nytt"
-#: ../../include/conversation.php:1430
+#: ../../include/conversation.php:1445
msgid "Activity Stream - by date"
msgstr "Aktivitetsström - efter datum"
-#: ../../include/conversation.php:1436
+#: ../../include/conversation.php:1451
msgid "Starred"
msgstr "Märkt"
-#: ../../include/conversation.php:1439
+#: ../../include/conversation.php:1454
msgid "Favourite Posts"
msgstr "Favoritinlägg"
-#: ../../include/conversation.php:1446
+#: ../../include/conversation.php:1461
msgid "Spam"
msgstr "Skräp"
-#: ../../include/conversation.php:1449
+#: ../../include/conversation.php:1464
msgid "Posts flagged as SPAM"
msgstr "Inlägg markerade som SKRÄP"
-#: ../../include/conversation.php:1483 ../../mod/admin.php:890
+#: ../../include/conversation.php:1504 ../../mod/admin.php:865
msgid "Channel"
msgstr "Kanal"
-#: ../../include/conversation.php:1486
+#: ../../include/conversation.php:1507
msgid "Status Messages and Posts"
msgstr "Statusmeddelanden och inlägg"
-#: ../../include/conversation.php:1495
+#: ../../include/conversation.php:1516
msgid "About"
msgstr "Om"
-#: ../../include/conversation.php:1498
+#: ../../include/conversation.php:1519
msgid "Profile Details"
msgstr "Profildetaljer"
-#: ../../include/conversation.php:1507 ../../include/photos.php:311
+#: ../../include/conversation.php:1525 ../../include/nav.php:105
+#: ../../include/apps.php:137 ../../mod/fbrowser.php:25
+msgid "Photos"
+msgstr "Foton"
+
+#: ../../include/conversation.php:1528 ../../include/photos.php:341
msgid "Photo Albums"
msgstr "Fotoalbum"
-#: ../../include/conversation.php:1516
+#: ../../include/conversation.php:1534 ../../include/RedDAV/RedBrowser.php:241
+#: ../../include/nav.php:106 ../../include/apps.php:133
+#: ../../mod/fbrowser.php:114
+msgid "Files"
+msgstr "Filer"
+
+#: ../../include/conversation.php:1537
msgid "Files and Storage"
msgstr "Filer och lagring"
-#: ../../include/conversation.php:1525 ../../include/conversation.php:1528
+#: ../../include/conversation.php:1547 ../../include/conversation.php:1550
msgid "Chatrooms"
msgstr "Chattrum"
-#: ../../include/conversation.php:1538
-msgid "Events and Calendar"
-msgstr "Händelser och kalender"
+#: ../../include/conversation.php:1560 ../../include/nav.php:117
+#: ../../include/apps.php:127
+msgid "Bookmarks"
+msgstr "Bokmärken"
-#: ../../include/conversation.php:1546
+#: ../../include/conversation.php:1563
msgid "Saved Bookmarks"
msgstr "Sparade bokmärken"
-#: ../../include/conversation.php:1557
+#: ../../include/conversation.php:1571 ../../include/nav.php:121
+#: ../../include/apps.php:134 ../../mod/webpages.php:160
+msgid "Webpages"
+msgstr "Webbsidor"
+
+#: ../../include/conversation.php:1574
msgid "Manage Webpages"
msgstr "Hantera webbsidor"
-#: ../../include/datetime.php:43 ../../include/datetime.php:45
-msgid "Miscellaneous"
-msgstr "Övrigt"
+#: ../../include/follow.php:28
+msgid "Channel is blocked on this site."
+msgstr "Kanalen är blockerad på den här servern."
-#: ../../include/datetime.php:152 ../../include/datetime.php:284
-msgid "year"
-msgstr "Ã¥r"
+#: ../../include/follow.php:33
+msgid "Channel location missing."
+msgstr "Kanalplats saknas."
-#: ../../include/datetime.php:157 ../../include/datetime.php:285
-msgid "month"
-msgstr "månad"
+#: ../../include/follow.php:82
+msgid "Response from remote channel was incomplete."
+msgstr "Svar från den andra kanalen var ofullständigt."
-#: ../../include/datetime.php:162 ../../include/datetime.php:287
-msgid "day"
-msgstr "dag"
+#: ../../include/follow.php:99
+msgid "Channel was deleted and no longer exists."
+msgstr "Kanalen har tagits bort och finns inte längre."
-#: ../../include/datetime.php:275
-msgid "never"
-msgstr "aldrig"
+#: ../../include/follow.php:135 ../../include/follow.php:202
+msgid "Protocol disabled."
+msgstr "Protokoll inaktiverat."
-#: ../../include/datetime.php:281
-msgid "less than a second ago"
-msgstr "mindre än en sekund sedan"
+#: ../../include/follow.php:176
+msgid "Channel discovery failed."
+msgstr "Kanalsökning misslyckades."
-#: ../../include/datetime.php:284
-msgid "years"
-msgstr "Ã¥r"
+#: ../../include/follow.php:192
+msgid "local account not found."
+msgstr "hittade inte lokalt konto."
-#: ../../include/datetime.php:285
-msgid "months"
-msgstr "månader"
+#: ../../include/follow.php:220
+msgid "Cannot connect to yourself."
+msgstr "Du kan inte kontakta dig själv."
-#: ../../include/datetime.php:286
-msgid "week"
-msgstr "vecka"
+#: ../../include/notify.php:23
+msgid "created a new post"
+msgstr "skapade ett nytt inlägg"
-#: ../../include/datetime.php:286
-msgid "weeks"
-msgstr "veckor"
+#: ../../include/notify.php:24
+#, php-format
+msgid "commented on %s's post"
+msgstr "kommenterade %ss inlägg"
-#: ../../include/datetime.php:287
-msgid "days"
-msgstr "dagar"
+#: ../../include/page_widgets.php:6
+msgid "New Page"
+msgstr "Ny sida"
-#: ../../include/datetime.php:288
-msgid "hour"
-msgstr "timme"
+#: ../../include/page_widgets.php:8 ../../include/page_widgets.php:36
+#: ../../include/menu.php:42 ../../include/RedDAV/RedBrowser.php:250
+#: ../../include/apps.php:249 ../../include/ItemObject.php:100
+#: ../../mod/blocks.php:132 ../../mod/settings.php:625
+#: ../../mod/connections.php:381 ../../mod/connections.php:394
+#: ../../mod/connections.php:413 ../../mod/thing.php:233
+#: ../../mod/webpages.php:162 ../../mod/editblock.php:143
+#: ../../mod/editlayout.php:139 ../../mod/editpost.php:112
+#: ../../mod/editwebpage.php:174 ../../mod/layouts.php:167
+#: ../../mod/menu.php:78
+msgid "Edit"
+msgstr "Redigera"
-#: ../../include/datetime.php:288
-msgid "hours"
-msgstr "timmar"
+#: ../../include/page_widgets.php:39 ../../mod/blocks.php:135
+#: ../../mod/webpages.php:165 ../../mod/layouts.php:171
+msgid "View"
+msgstr "Visa"
-#: ../../include/datetime.php:289
-msgid "minute"
-msgstr "minut"
+#: ../../include/page_widgets.php:41 ../../mod/webpages.php:167
+msgid "Actions"
+msgstr "Åtgärder"
-#: ../../include/datetime.php:289
-msgid "minutes"
-msgstr "minuter"
+#: ../../include/page_widgets.php:42 ../../mod/webpages.php:168
+msgid "Page Link"
+msgstr "Länk"
-#: ../../include/datetime.php:290
-msgid "second"
-msgstr "sekund"
+#: ../../include/page_widgets.php:43 ../../mod/webpages.php:169
+msgid "Title"
+msgstr "Titel"
-#: ../../include/datetime.php:290
-msgid "seconds"
-msgstr "sekunder"
+#: ../../include/page_widgets.php:44 ../../mod/webpages.php:170
+msgid "Created"
+msgstr "Skapad"
-#: ../../include/datetime.php:299
-#, php-format
-msgid "%1$d %2$s ago"
-msgstr "%1$d %2$s sedan"
+#: ../../include/page_widgets.php:45 ../../mod/webpages.php:171
+msgid "Edited"
+msgstr "Ändrad"
-#: ../../include/dba/dba_driver.php:50
+#: ../../include/contact_widgets.php:14
#, php-format
-msgid "Cannot locate DNS info for database server '%s'"
-msgstr "Kan inte hitta DNS-information för databasserver '%s'"
-
-#: ../../include/bbcode.php:128 ../../include/bbcode.php:603
-#: ../../include/bbcode.php:606 ../../include/bbcode.php:611
-#: ../../include/bbcode.php:614 ../../include/bbcode.php:617
-#: ../../include/bbcode.php:620 ../../include/bbcode.php:625
-#: ../../include/bbcode.php:628 ../../include/bbcode.php:633
-#: ../../include/bbcode.php:636 ../../include/bbcode.php:639
-#: ../../include/bbcode.php:642
-msgid "Image/photo"
-msgstr "Bild/foto"
-
-#: ../../include/bbcode.php:163 ../../include/bbcode.php:653
-msgid "Encrypted content"
-msgstr "Krypterat innehåll"
+msgid "%d invitation available"
+msgid_plural "%d invitations available"
+msgstr[0] "%d inbjudan tillgänglig"
+msgstr[1] "%d inbjudningar tillgängliga"
-#: ../../include/bbcode.php:170
-msgid "QR code"
-msgstr "QR-kod"
+#: ../../include/contact_widgets.php:19 ../../mod/admin.php:416
+msgid "Advanced"
+msgstr "Avancerat"
-#: ../../include/bbcode.php:213
-#, php-format
-msgid "%1$s wrote the following %2$s %3$s"
-msgstr "%1$s skrev följande %2$s %3$s"
+#: ../../include/contact_widgets.php:22
+msgid "Find Channels"
+msgstr "Hitta kanaler"
-#: ../../include/bbcode.php:215
-msgid "post"
-msgstr "post"
+#: ../../include/contact_widgets.php:23
+msgid "Enter name or interest"
+msgstr "Ange namn eller intresse"
-#: ../../include/bbcode.php:571 ../../include/bbcode.php:591
-msgid "$1 wrote:"
-msgstr "$1 skrev:"
+#: ../../include/contact_widgets.php:24
+msgid "Connect/Follow"
+msgstr "Ta kontakt/följ"
-#: ../../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 "En borttagen grupp med det här namnet återskapades. Befintliga rättigheter till saker <strong>kan</strong> gälla för den här gruppen och alla framtida medlemmar. Om det här inte är vad du avsåg, skapa i stället en annan grupp med ett annat namn."
+#: ../../include/contact_widgets.php:25
+msgid "Examples: Robert Morgenstein, Fishing"
+msgstr "Exempel: Robert Morgenstein, Fiske"
-#: ../../include/group.php:223
-msgid "Default privacy group for new contacts"
-msgstr "Förvald integritetsgrupp för nya kontakter"
+#: ../../include/contact_widgets.php:26 ../../mod/connections.php:412
+#: ../../mod/directory.php:278 ../../mod/directory.php:283
+msgid "Find"
+msgstr "Sök"
-#: ../../include/group.php:242 ../../mod/admin.php:762
-msgid "All Channels"
-msgstr "Alla kanaler"
+#: ../../include/contact_widgets.php:27 ../../mod/suggest.php:59
+msgid "Channel Suggestions"
+msgstr "Kanalförslag"
-#: ../../include/group.php:264
-msgid "edit"
-msgstr "redigera"
+#: ../../include/contact_widgets.php:29
+msgid "Random Profile"
+msgstr "Slumpvald profil"
-#: ../../include/group.php:285
-msgid "Collections"
-msgstr "Sammanhang"
+#: ../../include/contact_widgets.php:30
+msgid "Invite Friends"
+msgstr "Bjud in vänner"
-#: ../../include/group.php:286
-msgid "Edit collection"
-msgstr "Redigera sammanhang"
+#: ../../include/contact_widgets.php:32
+msgid "Advanced example: name=fred and country=iceland"
+msgstr "Avancerat exempel: name=fred and country=iceland"
-#: ../../include/group.php:287
-msgid "Create a new collection"
-msgstr "Skapa ett nytt sammanhang"
+#: ../../include/contact_widgets.php:57 ../../include/features.php:73
+#: ../../include/widgets.php:303
+msgid "Saved Folders"
+msgstr "Sparade mappar"
-#: ../../include/group.php:288
-msgid "Channels not in any collection"
-msgstr "Kanaler utan sammanhang"
+#: ../../include/contact_widgets.php:60 ../../include/contact_widgets.php:95
+#: ../../include/widgets.php:306
+msgid "Everything"
+msgstr "Allt"
-#: ../../include/js_strings.php:5
-msgid "Delete this item?"
-msgstr "Ta bort den här posten?"
+#: ../../include/contact_widgets.php:92 ../../include/taxonomy.php:230
+#: ../../include/widgets.php:29
+msgid "Categories"
+msgstr "Kategorier"
-#: ../../include/js_strings.php:6 ../../include/ItemObject.php:547
-#: ../../mod/photos.php:992 ../../mod/photos.php:1079
-msgid "Comment"
-msgstr "Kommentar"
+#: ../../include/contact_widgets.php:125
+#, php-format
+msgid "%d connection in common"
+msgid_plural "%d connections in common"
+msgstr[0] "%d gemensam kontakt"
+msgstr[1] "%d gemensamma kontakter"
-#: ../../include/js_strings.php:7 ../../include/ItemObject.php:281
#: ../../include/contact_widgets.php:130
msgid "show more"
msgstr "visa fler"
-#: ../../include/js_strings.php:8
-msgid "show fewer"
-msgstr "visa färre"
-
-#: ../../include/js_strings.php:9
-msgid "+ Show More"
-msgstr "+ Visa fler"
-
-#: ../../include/js_strings.php:10
-msgid "- Show Less"
-msgstr "- Visa färre"
-
-#: ../../include/js_strings.php:11
-msgid "Password too short"
-msgstr "Lösenord för kort"
-
-#: ../../include/js_strings.php:12
-msgid "Passwords do not match"
-msgstr "Lösenorden stämmer inte överens"
-
-#: ../../include/js_strings.php:13 ../../mod/photos.php:39
-msgid "everybody"
-msgstr "alla"
-
-#: ../../include/js_strings.php:14
-msgid "Secret Passphrase"
-msgstr "Hemligt lösenord"
-
-#: ../../include/js_strings.php:15
-msgid "Passphrase hint"
-msgstr "Lösenordsledtråd"
+#: ../../include/oembed.php:171
+msgid "Embedded content"
+msgstr "Inbäddat innehåll"
-#: ../../include/js_strings.php:16
-msgid "Notice: Permissions have changed but have not yet been submitted."
-msgstr "Observera: Rättigheter har ändrats men har ännu inte skickats in"
+#: ../../include/oembed.php:180
+msgid "Embedding disabled"
+msgstr "Inbäddning inaktiverat"
-#: ../../include/js_strings.php:18
-msgid "timeago.prefixAgo"
-msgstr "för"
+#: ../../include/message.php:18
+msgid "No recipient provided."
+msgstr "Ingen mottagare angiven."
-#: ../../include/js_strings.php:19
-msgid "timeago.prefixFromNow"
-msgstr "om"
+#: ../../include/message.php:23
+msgid "[no subject]"
+msgstr "[inget ämne]"
-#: ../../include/js_strings.php:20
-msgid "ago"
-msgstr "sedan"
+#: ../../include/message.php:45
+msgid "Unable to determine sender."
+msgstr "Kunde inte avgöra vem som är avsändare."
-#: ../../include/js_strings.php:21
-msgid "from now"
-msgstr " "
+#: ../../include/message.php:200
+msgid "Stored post could not be verified."
+msgstr "Den sparade posten kunde inte verifieras."
-#: ../../include/js_strings.php:22
-msgid "less than a minute"
-msgstr "mindre än en minut"
+#: ../../include/activities.php:39
+msgid " and "
+msgstr " och "
-#: ../../include/js_strings.php:23
-msgid "about a minute"
-msgstr "ungefär en minut"
+#: ../../include/activities.php:47
+msgid "public profile"
+msgstr "offentlig profil"
-#: ../../include/js_strings.php:24
+#: ../../include/activities.php:52
#, php-format
-msgid "%d minutes"
-msgstr "%d minuter"
-
-#: ../../include/js_strings.php:25
-msgid "about an hour"
-msgstr "ungefär en timme"
+msgid "%1$s changed %2$s to &ldquo;%3$s&rdquo;"
+msgstr "%1$s ändrade %2$s till &quot;%3$s&quot;"
-#: ../../include/js_strings.php:26
+#: ../../include/activities.php:53
#, php-format
-msgid "about %d hours"
-msgstr "ungefär %d timmar"
-
-#: ../../include/js_strings.php:27
-msgid "a day"
-msgstr "en dag"
+msgid "Visit %1$s's %2$s"
+msgstr "Besök %1$ss %2$s"
-#: ../../include/js_strings.php:28
+#: ../../include/activities.php:56
#, php-format
-msgid "%d days"
-msgstr "%d dagar"
+msgid "%1$s has an updated %2$s, changing %3$s."
+msgstr "%1$s har en uppdaterad %2$s (har ändrat %3$s)."
-#: ../../include/js_strings.php:29
-msgid "about a month"
-msgstr "ungefär en månad"
+#: ../../include/acl_selectors.php:240
+msgid "Visible to your default audience"
+msgstr "Kan ses av förinställda mottagare"
-#: ../../include/js_strings.php:30
-#, php-format
-msgid "%d months"
-msgstr "%d månader"
+#: ../../include/acl_selectors.php:241
+msgid "Show"
+msgstr "Visa"
-#: ../../include/js_strings.php:31
-msgid "about a year"
-msgstr "ungefär ett år"
+#: ../../include/acl_selectors.php:242
+msgid "Don't show"
+msgstr "Visa inte"
-#: ../../include/js_strings.php:32
-#, php-format
-msgid "%d years"
-msgstr "%d år"
+#: ../../include/acl_selectors.php:248 ../../mod/events.php:596
+#: ../../mod/chat.php:209 ../../mod/filestorage.php:137
+#: ../../mod/photos.php:588 ../../mod/photos.php:950
+msgid "Permissions"
+msgstr "Behörighet"
-#: ../../include/js_strings.php:33
-msgid " "
-msgstr " "
+#: ../../include/acl_selectors.php:249 ../../include/ItemObject.php:312
+#: ../../mod/photos.php:1149
+msgid "Close"
+msgstr "Stäng"
-#: ../../include/js_strings.php:34
-msgid "timeago.numbers"
-msgstr "timeago.numbers"
+#: ../../include/bb2diaspora.php:384
+msgid "Attachments:"
+msgstr "Bilagor:"
-#: ../../include/message.php:18
-msgid "No recipient provided."
-msgstr "Ingen mottagare angiven."
+#: ../../include/bb2diaspora.php:463 ../../include/event.php:11
+msgid "l F d, Y \\@ g:i A"
+msgstr "l j F Y \\k\\l. H.i"
-#: ../../include/message.php:23
-msgid "[no subject]"
-msgstr "[inget ämne]"
+#: ../../include/bb2diaspora.php:465
+msgid "Redmatrix event notification:"
+msgstr "Händelsenotifiering från Redmatrix:"
-#: ../../include/message.php:42
-msgid "Unable to determine sender."
-msgstr "Kunde inte avgöra vem som är avsändare."
+#: ../../include/bb2diaspora.php:469 ../../include/event.php:20
+msgid "Starts:"
+msgstr "Börjar:"
-#: ../../include/message.php:143
-msgid "Stored post could not be verified."
-msgstr "Den sparade posten kunde inte verifieras."
+#: ../../include/bb2diaspora.php:477 ../../include/event.php:30
+msgid "Finishes:"
+msgstr "Slutar:"
-#: ../../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:655 ../../mod/photos.php:677
-msgid "Profile Photos"
-msgstr "Profilfoton"
+#: ../../include/bb2diaspora.php:485 ../../include/identity.php:891
+#: ../../include/event.php:40 ../../mod/events.php:590
+#: ../../mod/directory.php:170
+msgid "Location:"
+msgstr "Plats:"
-#: ../../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:3606
-#: ../../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/mail.php:108 ../../mod/settings.php:492
-#: ../../mod/menu.php:44 ../../mod/webpages.php:40 ../../mod/api.php:26
-#: ../../mod/api.php:31 ../../mod/editpost.php:13 ../../mod/bookmarks.php:46
-#: ../../mod/viewconnections.php:22 ../../mod/viewconnections.php:27
-#: ../../mod/delegate.php:6 ../../mod/pdledit.php:21 ../../mod/item.php:179
-#: ../../mod/item.php:187 ../../mod/item.php:860 ../../mod/mitem.php:73
-#: ../../mod/group.php:9 ../../mod/viewsrc.php:12 ../../mod/setup.php:203
-#: ../../mod/connedit.php:188 ../../mod/layouts.php:27
-#: ../../mod/layouts.php:39 ../../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/blocks.php:29
-#: ../../mod/blocks.php:44 ../../mod/chat.php:89 ../../mod/chat.php:94
-#: ../../mod/new_channel.php:66 ../../mod/new_channel.php:97
-#: ../../mod/achievements.php:27 ../../mod/editblock.php:34
-#: ../../mod/manage.php:6 ../../mod/editlayout.php:48
-#: ../../mod/profile_photo.php:187 ../../mod/profile_photo.php:200
-#: ../../mod/connections.php:169 ../../mod/notifications.php:66
-#: ../../mod/block.php:22 ../../mod/block.php:72 ../../mod/editwebpage.php:44
-#: ../../mod/editwebpage.php:83 ../../mod/profile.php:64
-#: ../../mod/profile.php:72 ../../mod/poke.php:128 ../../mod/channel.php:89
-#: ../../mod/channel.php:193 ../../mod/channel.php:236
-#: ../../mod/fsuggest.php:78 ../../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
+#: ../../include/attach.php:116 ../../include/attach.php:163
+#: ../../include/attach.php:226 ../../include/attach.php:240
+#: ../../include/attach.php:280 ../../include/attach.php:294
+#: ../../include/attach.php:318 ../../include/attach.php:511
+#: ../../include/attach.php:585 ../../include/photos.php:15
+#: ../../include/items.php:4019 ../../include/chat.php:116
+#: ../../mod/mood.php:112 ../../mod/mitem.php:106
+#: ../../mod/achievements.php:30 ../../mod/register.php:72
+#: ../../mod/sources.php:66 ../../mod/poke.php:128 ../../mod/api.php:26
+#: ../../mod/api.php:31 ../../mod/authtest.php:13 ../../mod/profile.php:64
+#: ../../mod/profile.php:72 ../../mod/block.php:22 ../../mod/block.php:72
+#: ../../mod/blocks.php:67 ../../mod/blocks.php:75 ../../mod/setup.php:207
+#: ../../mod/settings.php:540 ../../mod/events.php:195
+#: ../../mod/channel.php:89 ../../mod/channel.php:198
+#: ../../mod/channel.php:241 ../../mod/chat.php:90 ../../mod/chat.php:95
+#: ../../mod/regmod.php:17 ../../mod/common.php:35 ../../mod/like.php:154
+#: ../../mod/connections.php:169 ../../mod/connedit.php:266
+#: ../../mod/thing.php:247 ../../mod/thing.php:264 ../../mod/thing.php:299
+#: ../../mod/webpages.php:67 ../../mod/bookmarks.php:46
+#: ../../mod/profiles.php:179 ../../mod/profiles.php:550
+#: ../../mod/editblock.php:65 ../../mod/pdledit.php:21
+#: ../../mod/editlayout.php:64 ../../mod/editlayout.php:89
+#: ../../mod/editpost.php:13 ../../mod/editwebpage.php:64
+#: ../../mod/editwebpage.php:86 ../../mod/editwebpage.php:118
+#: ../../mod/profile_photo.php:263 ../../mod/profile_photo.php:276
+#: ../../mod/item.php:191 ../../mod/item.php:199 ../../mod/item.php:971
+#: ../../mod/fsuggest.php:78 ../../mod/filestorage.php:18
+#: ../../mod/filestorage.php:67 ../../mod/filestorage.php:82
+#: ../../mod/filestorage.php:109 ../../mod/delegate.php:6
+#: ../../mod/group.php:9 ../../mod/suggest.php:26 ../../mod/locs.php:71
+#: ../../mod/mail.php:111 ../../mod/invite.php:13 ../../mod/invite.php:104
+#: ../../mod/manage.php:6 ../../mod/layouts.php:67 ../../mod/layouts.php:74
+#: ../../mod/layouts.php:85 ../../mod/viewconnections.php:22
+#: ../../mod/viewconnections.php:27 ../../mod/viewsrc.php:14
+#: ../../mod/network.php:12 ../../mod/menu.php:61 ../../mod/message.php:16
+#: ../../mod/new_channel.php:68 ../../mod/new_channel.php:99
+#: ../../mod/notifications.php:66 ../../mod/page.php:28 ../../mod/page.php:78
+#: ../../mod/photos.php:68 ../../mod/appman.php:66
+#: ../../mod/service_limits.php:7 ../../index.php:190 ../../index.php:390
msgid "Permission denied."
msgstr "Behörighet saknas."
-#: ../../include/attach.php:224 ../../include/attach.php:278
+#: ../../include/attach.php:221 ../../include/attach.php:275
msgid "Item was not found."
msgstr "Posten hittades inte."
-#: ../../include/attach.php:335
+#: ../../include/attach.php:331
msgid "No source file."
msgstr "Ingen källfil."
-#: ../../include/attach.php:352
+#: ../../include/attach.php:348
msgid "Cannot locate file to replace"
msgstr "Kan inte hitta fil att ersätta"
-#: ../../include/attach.php:370
+#: ../../include/attach.php:366
msgid "Cannot locate file to revise/update"
msgstr "Kan inte hitta fil att revidera/uppdatera"
-#: ../../include/attach.php:381
+#: ../../include/attach.php:377
#, php-format
msgid "File exceeds size limit of %d"
msgstr "Filen överskrider storleksbegränsningen %d"
-#: ../../include/attach.php:393
+#: ../../include/attach.php:389
#, php-format
msgid "You have reached your limit of %1$.0f Mbytes attachment storage."
msgstr "Du har nått begränsningen %1$.0f megabyte utrymme för bilagor."
-#: ../../include/attach.php:475
+#: ../../include/attach.php:472
msgid "File upload failed. Possible system limit or action terminated."
msgstr "Filuppladdning misslyckades. Möjlig systembegränsning eller avbruten åtgärd."
-#: ../../include/attach.php:487
+#: ../../include/attach.php:484
msgid "Stored file could not be verified. Upload failed."
msgstr "Den lagrade filen kunde inte verifieras. Uppladdning misslyckad."
-#: ../../include/attach.php:528 ../../include/attach.php:545
+#: ../../include/attach.php:526 ../../include/attach.php:543
msgid "Path not available."
msgstr "Sökväg inte tillgänglig."
@@ -1660,751 +898,2303 @@ msgstr "filnamn eller sökväg finns redan"
msgid "Path not found."
msgstr "Sökväg hittas inte."
-#: ../../include/attach.php:674
+#: ../../include/attach.php:681
msgid "mkdir failed."
msgstr "mkdir misslyckades."
-#: ../../include/attach.php:678
+#: ../../include/attach.php:685
msgid "database storage failed."
msgstr "databaslagring misslyckades."
-#: ../../include/bookmarks.php:42
+#: ../../include/RedDAV/RedBrowser.php:106
+#: ../../include/RedDAV/RedBrowser.php:249
+msgid "parent"
+msgstr "en nivå upp"
+
+#: ../../include/RedDAV/RedBrowser.php:130
+msgid "Collection"
+msgstr "Samling"
+
+#: ../../include/RedDAV/RedBrowser.php:133
+msgid "Principal"
+msgstr "Bas"
+
+#: ../../include/RedDAV/RedBrowser.php:136
+msgid "Addressbook"
+msgstr "Adressbok"
+
+#: ../../include/RedDAV/RedBrowser.php:139
+msgid "Calendar"
+msgstr "Kalender"
+
+#: ../../include/RedDAV/RedBrowser.php:142
+msgid "Schedule Inbox"
+msgstr "Schemainkorg"
+
+#: ../../include/RedDAV/RedBrowser.php:145
+msgid "Schedule Outbox"
+msgstr "Schemautkorg"
+
+#: ../../include/RedDAV/RedBrowser.php:223
+#, php-format
+msgid "%1$s used"
+msgstr "%1$s använt"
+
+#: ../../include/RedDAV/RedBrowser.php:228
+#, php-format
+msgid "%1$s used of %2$s (%3$s&#37;)"
+msgstr "%1$s använt av %2$s (%3$s&#37;)"
+
+#: ../../include/RedDAV/RedBrowser.php:245 ../../mod/settings.php:565
+#: ../../mod/settings.php:591 ../../mod/admin.php:866
+msgid "Name"
+msgstr "Namn"
+
+#: ../../include/RedDAV/RedBrowser.php:246
+msgid "Type"
+msgstr "Typ"
+
+#: ../../include/RedDAV/RedBrowser.php:247
+msgid "Size"
+msgstr "Storlek"
+
+#: ../../include/RedDAV/RedBrowser.php:248
+msgid "Last Modified"
+msgstr "Senast ändrad"
+
+#: ../../include/RedDAV/RedBrowser.php:252
+msgid "Total"
+msgstr "Totalt"
+
+#: ../../include/RedDAV/RedBrowser.php:305
+msgid "Create new folder"
+msgstr "Skapa ny mapp"
+
+#: ../../include/RedDAV/RedBrowser.php:306 ../../mod/mitem.php:169
+#: ../../mod/menu.php:100 ../../mod/new_channel.php:122
+msgid "Create"
+msgstr "Skapa"
+
+#: ../../include/RedDAV/RedBrowser.php:307
+msgid "Upload file"
+msgstr "Ladda upp fil"
+
+#: ../../include/RedDAV/RedBrowser.php:308 ../../mod/profile_photo.php:361
+#: ../../mod/photos.php:738 ../../mod/photos.php:1246
+msgid "Upload"
+msgstr "Ladda upp"
+
+#: ../../include/bookmarks.php:35
#, php-format
msgid "%1$s's bookmarks"
msgstr "%1$ss bokmärken"
-#: ../../include/acl_selectors.php:238
-msgid "Visible to everybody"
-msgstr "Synlig för alla"
+#: ../../include/nav.php:95 ../../include/nav.php:128 ../../boot.php:1485
+msgid "Logout"
+msgstr "Logga ut"
-#: ../../include/acl_selectors.php:239
-msgid "Show"
-msgstr "Visa"
+#: ../../include/nav.php:95 ../../include/nav.php:128
+msgid "End this session"
+msgstr "Avsluta sessionen"
-#: ../../include/acl_selectors.php:240
-msgid "Don't show"
-msgstr "Visa inte"
+#: ../../include/nav.php:98 ../../include/nav.php:159
+msgid "Home"
+msgstr "Hem"
-#: ../../include/acl_selectors.php:246 ../../mod/chat.php:206
-#: ../../mod/filestorage.php:124 ../../mod/photos.php:606
-#: ../../mod/photos.php:949
-msgid "Permissions"
-msgstr "Behörighet"
+#: ../../include/nav.php:98
+msgid "Your posts and conversations"
+msgstr "Dina inlägg och konversationer"
-#: ../../include/acl_selectors.php:247
-msgid "Close"
-msgstr "Stäng"
+#: ../../include/nav.php:99
+msgid "Your profile page"
+msgstr "Din profilsida"
+
+#: ../../include/nav.php:101
+msgid "Edit Profiles"
+msgstr "Redigera profiler"
+
+#: ../../include/nav.php:101
+msgid "Manage/Edit profiles"
+msgstr "Hantera/redigera profiler"
+
+#: ../../include/nav.php:103 ../../include/identity.php:864
+msgid "Edit Profile"
+msgstr "Redigera profil"
+
+#: ../../include/nav.php:103
+msgid "Edit your profile"
+msgstr "Redigera din profil"
+
+#: ../../include/nav.php:105
+msgid "Your photos"
+msgstr "Dina foton"
+
+#: ../../include/nav.php:106
+msgid "Your files"
+msgstr "Dina filer"
+
+#: ../../include/nav.php:111 ../../include/apps.php:144
+msgid "Chat"
+msgstr "Chatt"
+
+#: ../../include/nav.php:111
+msgid "Your chatrooms"
+msgstr "Dina chattrum"
+
+#: ../../include/nav.php:117
+msgid "Your bookmarks"
+msgstr "Dina bokmärken"
+
+#: ../../include/nav.php:121
+msgid "Your webpages"
+msgstr "Dina webbsidor"
+
+#: ../../include/nav.php:125 ../../include/apps.php:129 ../../boot.php:1486
+msgid "Login"
+msgstr "Logga in"
+
+#: ../../include/nav.php:125
+msgid "Sign in"
+msgstr "Logga in"
+
+#: ../../include/nav.php:142
+#, php-format
+msgid "%s - click to logout"
+msgstr "%s - klicka för att logga ut"
+
+#: ../../include/nav.php:145
+msgid "Remote authentication"
+msgstr "Fjärrinloggning"
+
+#: ../../include/nav.php:145
+msgid "Click to authenticate to your home hub"
+msgstr "Klicka för att autentisera mot din hemmahubb"
+
+#: ../../include/nav.php:159
+msgid "Home Page"
+msgstr "Hemsida"
+
+#: ../../include/nav.php:163 ../../mod/register.php:224 ../../boot.php:1464
+msgid "Register"
+msgstr "Skapa konto"
+
+#: ../../include/nav.php:163
+msgid "Create an account"
+msgstr "Skapa ett konto"
+
+#: ../../include/nav.php:168 ../../include/apps.php:140 ../../mod/help.php:58
+#: ../../mod/help.php:63
+msgid "Help"
+msgstr "Hjälp"
+
+#: ../../include/nav.php:168
+msgid "Help and documentation"
+msgstr "Hjälp och dokumentation"
+
+#: ../../include/nav.php:171 ../../include/widgets.php:86
+#: ../../mod/apps.php:33
+msgid "Apps"
+msgstr "Appar"
+
+#: ../../include/nav.php:171
+msgid "Applications, utilities, links, games"
+msgstr "Applikationer, verktyg, länkar, spel"
+
+#: ../../include/nav.php:173 ../../include/text.php:826
+#: ../../include/text.php:838 ../../include/apps.php:145
+#: ../../mod/search.php:30
+msgid "Search"
+msgstr "Sök"
+
+#: ../../include/nav.php:173
+msgid "Search site content"
+msgstr "Sök innehåll"
+
+#: ../../include/nav.php:176 ../../include/apps.php:139
+#: ../../mod/directory.php:282
+msgid "Directory"
+msgstr "Katalog"
+
+#: ../../include/nav.php:176
+msgid "Channel Directory"
+msgstr "Kanalkatalog"
+
+#: ../../include/nav.php:190 ../../include/apps.php:131
+msgid "Matrix"
+msgstr "Matris"
+
+#: ../../include/nav.php:190
+msgid "Your matrix"
+msgstr "Din matris"
+
+#: ../../include/nav.php:191
+msgid "Mark all matrix notifications seen"
+msgstr "Märk alla matrisnotifieringar som lästa"
+
+#: ../../include/nav.php:193 ../../include/apps.php:135
+msgid "Channel Home"
+msgstr "Kanalhem"
+
+#: ../../include/nav.php:193
+msgid "Channel home"
+msgstr "Kanalhem"
+
+#: ../../include/nav.php:194
+msgid "Mark all channel notifications seen"
+msgstr "Märk alla kanalnotifieringar som lästa"
+
+#: ../../include/nav.php:197 ../../mod/connections.php:406
+msgid "Connections"
+msgstr "Kontakter"
+
+#: ../../include/nav.php:200
+msgid "Notices"
+msgstr "Meddelanden"
+
+#: ../../include/nav.php:200
+msgid "Notifications"
+msgstr "Notifieringar"
+
+#: ../../include/nav.php:201
+msgid "See all notifications"
+msgstr "Se alla notifieringar"
+
+#: ../../include/nav.php:202 ../../mod/notifications.php:99
+msgid "Mark all system notifications seen"
+msgstr "Märk alla systemnotifieringar som lästa"
+
+#: ../../include/nav.php:204 ../../include/apps.php:141
+msgid "Mail"
+msgstr "Privat meddelande"
+
+#: ../../include/nav.php:204
+msgid "Private mail"
+msgstr "Privat meddelande"
+
+#: ../../include/nav.php:205
+msgid "See all private messages"
+msgstr "Se alla privata meddelanden"
+
+#: ../../include/nav.php:206
+msgid "Mark all private messages seen"
+msgstr "Märk alla privata meddelanden som lästa"
+
+#: ../../include/nav.php:207
+msgid "Inbox"
+msgstr "Inkorg"
+
+#: ../../include/nav.php:208
+msgid "Outbox"
+msgstr "Utkorg"
+
+#: ../../include/nav.php:209 ../../include/widgets.php:572
+msgid "New Message"
+msgstr "Nytt meddelande"
+
+#: ../../include/nav.php:212 ../../include/apps.php:138
+#: ../../mod/events.php:442
+msgid "Events"
+msgstr "Händelser"
+
+#: ../../include/nav.php:212
+msgid "Event Calendar"
+msgstr "Kalender"
+
+#: ../../include/nav.php:213
+msgid "See all events"
+msgstr "Se alla händelser"
+
+#: ../../include/nav.php:214
+msgid "Mark all events seen"
+msgstr "Märk alla händelser som lästa"
+
+#: ../../include/nav.php:216 ../../include/apps.php:130
+#: ../../mod/manage.php:148
+msgid "Channel Manager"
+msgstr "Kanalhanterare"
+
+#: ../../include/nav.php:216
+msgid "Manage Your Channels"
+msgstr "Hantera dina kanaler"
+
+#: ../../include/nav.php:218 ../../include/widgets.php:548
+#: ../../include/apps.php:132 ../../mod/admin.php:951 ../../mod/admin.php:1156
+msgid "Settings"
+msgstr "Inställningar"
+
+#: ../../include/nav.php:218
+msgid "Account/Channel Settings"
+msgstr "Konto-/kanalinställningar"
+
+#: ../../include/nav.php:226 ../../mod/admin.php:123
+msgid "Admin"
+msgstr "Administration"
+
+#: ../../include/nav.php:226
+msgid "Site Setup and Configuration"
+msgstr "Serverinställning och -konfiguration"
+
+#: ../../include/nav.php:262
+msgid "Please wait..."
+msgstr "Vänta..."
+
+#: ../../include/network.php:590
+msgid "view full size"
+msgstr "visa full storlek"
+
+#: ../../include/comanche.php:35 ../../mod/admin.php:353
+#: ../../view/theme/apw/php/config.php:185
+msgid "Default"
+msgstr "Standard"
+
+#: ../../include/contact_selectors.php:56
+msgid "Frequently"
+msgstr "Ofta"
+
+#: ../../include/contact_selectors.php:57
+msgid "Hourly"
+msgstr "Varje timme"
+
+#: ../../include/contact_selectors.php:58
+msgid "Twice daily"
+msgstr "Två gånger dagligen"
+
+#: ../../include/contact_selectors.php:59
+msgid "Daily"
+msgstr "Dagligen"
+
+#: ../../include/contact_selectors.php:60
+msgid "Weekly"
+msgstr "Varje vecka"
+
+#: ../../include/contact_selectors.php:61
+msgid "Monthly"
+msgstr "Varje månad"
+
+#: ../../include/contact_selectors.php:76
+msgid "Friendica"
+msgstr "Friendica"
+
+#: ../../include/contact_selectors.php:77
+msgid "OStatus"
+msgstr "OStatus"
+
+#: ../../include/contact_selectors.php:78
+msgid "RSS/Atom"
+msgstr "RSS/Atom"
+
+#: ../../include/contact_selectors.php:79 ../../mod/admin.php:726
+#: ../../mod/admin.php:735 ../../boot.php:1488
+msgid "Email"
+msgstr "E-post"
+
+#: ../../include/contact_selectors.php:80
+msgid "Diaspora"
+msgstr "Diaspora"
+
+#: ../../include/contact_selectors.php:81
+msgid "Facebook"
+msgstr "Facebook"
+
+#: ../../include/contact_selectors.php:82
+msgid "Zot!"
+msgstr "Zot!"
+
+#: ../../include/contact_selectors.php:83
+msgid "LinkedIn"
+msgstr "LinkedIn"
+
+#: ../../include/contact_selectors.php:84
+msgid "XMPP/IM"
+msgstr "XMPP/IM"
-#: ../../include/identity.php:30 ../../mod/item.php:1232
+#: ../../include/contact_selectors.php:85
+msgid "MySpace"
+msgstr "MySpace"
+
+#: ../../include/identity.php:31 ../../mod/item.php:1368
msgid "Unable to obtain identity information from database"
msgstr "Kunde inte hämta från databasen"
-#: ../../include/identity.php:63
+#: ../../include/identity.php:66
msgid "Empty name"
msgstr "Tomt namn"
-#: ../../include/identity.php:65
+#: ../../include/identity.php:68
msgid "Name too long"
msgstr "För långt namn"
-#: ../../include/identity.php:166
+#: ../../include/identity.php:169
msgid "No account identifier"
msgstr "Ingen kontoidentifierare"
-#: ../../include/identity.php:176
+#: ../../include/identity.php:182
msgid "Nickname is required."
msgstr "Smeknamn måste anges."
-#: ../../include/identity.php:190
+#: ../../include/identity.php:196
msgid "Reserved nickname. Please choose another."
msgstr "Reserverat smeknamn. Välj ett annat."
-#: ../../include/identity.php:195
+#: ../../include/identity.php:201 ../../include/dimport.php:34
msgid ""
"Nickname has unsupported characters or is already being used on this site."
msgstr "Smeknamnet innehåller otillåtna tecken eller är redan upptaget på den här servern."
-#: ../../include/identity.php:258
+#: ../../include/identity.php:283
msgid "Unable to retrieve created identity"
msgstr "Kunde inte hämta den skapade identiteten"
-#: ../../include/identity.php:317
+#: ../../include/identity.php:343
msgid "Default Profile"
msgstr "Standardprofil"
-#: ../../include/identity.php:509
+#: ../../include/identity.php:387 ../../include/identity.php:388
+#: ../../include/identity.php:395 ../../include/widgets.php:431
+#: ../../include/profile_selectors.php:80 ../../mod/settings.php:318
+#: ../../mod/settings.php:322 ../../mod/settings.php:323
+#: ../../mod/settings.php:326 ../../mod/settings.php:337
+#: ../../mod/connedit.php:509
+msgid "Friends"
+msgstr "Vänner"
+
+#: ../../include/identity.php:643
msgid "Requested channel is not available."
msgstr "Den begärda kanalen är inte tillgänglig"
-#: ../../include/identity.php:557 ../../mod/webpages.php:8
-#: ../../mod/connect.php:13 ../../mod/layouts.php:8 ../../mod/blocks.php:10
-#: ../../mod/achievements.php:8 ../../mod/profile.php:16
-#: ../../mod/filestorage.php:40
+#: ../../include/identity.php:691 ../../mod/achievements.php:11
+#: ../../mod/profile.php:16 ../../mod/blocks.php:29 ../../mod/connect.php:13
+#: ../../mod/webpages.php:29 ../../mod/editblock.php:29
+#: ../../mod/editlayout.php:28 ../../mod/editwebpage.php:28
+#: ../../mod/filestorage.php:48 ../../mod/layouts.php:29 ../../mod/hcard.php:8
msgid "Requested profile is not available."
msgstr "Begärd profil är inte tillgänglig."
-#: ../../include/identity.php:689 ../../mod/profiles.php:603
+#: ../../include/identity.php:854 ../../mod/profiles.php:740
msgid "Change profile photo"
msgstr "Bytprofilfoto"
-#: ../../include/identity.php:695
+#: ../../include/identity.php:860
msgid "Profiles"
msgstr "Profiler"
-#: ../../include/identity.php:695
+#: ../../include/identity.php:860
msgid "Manage/edit profiles"
msgstr "Hantera/redigera profiler"
-#: ../../include/identity.php:696 ../../mod/profiles.php:604
+#: ../../include/identity.php:861 ../../mod/profiles.php:741
msgid "Create New Profile"
msgstr "Skapa ny profil"
-#: ../../include/identity.php:699
-msgid "Edit Profile"
-msgstr "Redigera profil"
-
-#: ../../include/identity.php:710 ../../mod/profiles.php:615
+#: ../../include/identity.php:875 ../../mod/profiles.php:752
msgid "Profile Image"
msgstr "Profilbild"
-#: ../../include/identity.php:713 ../../mod/profiles.php:618
+#: ../../include/identity.php:878
msgid "visible to everybody"
msgstr "synlig för alla"
-#: ../../include/identity.php:714 ../../mod/profiles.php:619
+#: ../../include/identity.php:879 ../../mod/profiles.php:635
+#: ../../mod/profiles.php:756
msgid "Edit visibility"
msgstr "Redigera synlighet"
-#: ../../include/identity.php:728 ../../include/identity.php:952
-#: ../../mod/directory.php:163
+#: ../../include/identity.php:895 ../../include/identity.php:1132
msgid "Gender:"
msgstr "Kön:"
-#: ../../include/identity.php:729 ../../include/identity.php:972
-#: ../../mod/directory.php:165
+#: ../../include/identity.php:896 ../../include/identity.php:1176
msgid "Status:"
msgstr "Status:"
-#: ../../include/identity.php:730 ../../include/identity.php:983
-#: ../../mod/directory.php:167
+#: ../../include/identity.php:897 ../../include/identity.php:1187
msgid "Homepage:"
msgstr "Hemsida:"
-#: ../../include/identity.php:731 ../../mod/dirprofile.php:157
+#: ../../include/identity.php:898
msgid "Online Now"
msgstr "Online nu"
-#: ../../include/identity.php:796 ../../include/identity.php:876
-#: ../../mod/ping.php:262
+#: ../../include/identity.php:976 ../../include/identity.php:1056
+#: ../../mod/ping.php:326
msgid "g A l F d"
msgstr "l j F \\k\\l G"
-#: ../../include/identity.php:797 ../../include/identity.php:877
+#: ../../include/identity.php:977 ../../include/identity.php:1057
msgid "F d"
msgstr "j F"
-#: ../../include/identity.php:842 ../../include/identity.php:917
-#: ../../mod/ping.php:284
+#: ../../include/identity.php:1022 ../../include/identity.php:1097
+#: ../../mod/ping.php:348
msgid "[today]"
msgstr "[i dag]"
-#: ../../include/identity.php:854
+#: ../../include/identity.php:1034
msgid "Birthday Reminders"
msgstr "Födelsedagspåminnelser"
-#: ../../include/identity.php:855
+#: ../../include/identity.php:1035
msgid "Birthdays this week:"
msgstr "Födelsedagar den här veckan:"
-#: ../../include/identity.php:910
+#: ../../include/identity.php:1090
msgid "[No description]"
msgstr "[Ingen beskrivning]"
-#: ../../include/identity.php:928
+#: ../../include/identity.php:1108
msgid "Event Reminders"
msgstr "Händelsepåminnelser"
-#: ../../include/identity.php:929
+#: ../../include/identity.php:1109
msgid "Events this week:"
msgstr "Händelser den här veckan:"
-#: ../../include/identity.php:942 ../../include/identity.php:1026
-#: ../../mod/profperm.php:107
+#: ../../include/identity.php:1122 ../../include/identity.php:1240
+#: ../../include/apps.php:136 ../../mod/profperm.php:112
msgid "Profile"
msgstr "Profil"
-#: ../../include/identity.php:950 ../../mod/settings.php:937
+#: ../../include/identity.php:1130 ../../mod/settings.php:1005
msgid "Full Name:"
msgstr "Fullständigt namn:"
-#: ../../include/identity.php:957
+#: ../../include/identity.php:1137
+msgid "Like this channel"
+msgstr "Gilla den här kanalen"
+
+#: ../../include/identity.php:1148 ../../include/taxonomy.php:360
+#: ../../include/ItemObject.php:146 ../../mod/photos.php:1027
+msgctxt "noun"
+msgid "Like"
+msgid_plural "Likes"
+msgstr[0] "gillar detta"
+msgstr[1] "gillar detta"
+
+#: ../../include/identity.php:1161
msgid "j F, Y"
msgstr "j F Y"
-#: ../../include/identity.php:958
+#: ../../include/identity.php:1162
msgid "j F"
msgstr "j F"
-#: ../../include/identity.php:965
+#: ../../include/identity.php:1169
msgid "Birthday:"
msgstr "Födelsedag:"
-#: ../../include/identity.php:969
+#: ../../include/identity.php:1173
msgid "Age:"
msgstr "Ã…lder:"
-#: ../../include/identity.php:978
+#: ../../include/identity.php:1182
#, php-format
msgid "for %1$d %2$s"
msgstr "i %1$d %2$s"
-#: ../../include/identity.php:981 ../../mod/profiles.php:526
+#: ../../include/identity.php:1185 ../../mod/profiles.php:657
msgid "Sexual Preference:"
msgstr "Sexuell preferens:"
-#: ../../include/identity.php:985 ../../mod/profiles.php:528
+#: ../../include/identity.php:1189 ../../mod/profiles.php:659
msgid "Hometown:"
msgstr "Hemort:"
-#: ../../include/identity.php:987
+#: ../../include/identity.php:1191
msgid "Tags:"
msgstr "Taggar:"
-#: ../../include/identity.php:989 ../../mod/profiles.php:529
+#: ../../include/identity.php:1193 ../../mod/profiles.php:660
msgid "Political Views:"
msgstr "Politisk åskådning:"
-#: ../../include/identity.php:991
+#: ../../include/identity.php:1195
msgid "Religion:"
msgstr "Religion:"
-#: ../../include/identity.php:993 ../../mod/directory.php:169
+#: ../../include/identity.php:1197
msgid "About:"
msgstr "Om:"
-#: ../../include/identity.php:995
+#: ../../include/identity.php:1199
msgid "Hobbies/Interests:"
msgstr "Fritidssysselsättning/intressen:"
-#: ../../include/identity.php:997 ../../mod/profiles.php:532
+#: ../../include/identity.php:1201 ../../mod/profiles.php:663
msgid "Likes:"
msgstr "Gillar:"
-#: ../../include/identity.php:999 ../../mod/profiles.php:533
+#: ../../include/identity.php:1203 ../../mod/profiles.php:664
msgid "Dislikes:"
msgstr "Ogillar:"
-#: ../../include/identity.php:1002
+#: ../../include/identity.php:1206
msgid "Contact information and Social Networks:"
msgstr "Kontaktinformation och sociala nätverk:"
-#: ../../include/identity.php:1004
+#: ../../include/identity.php:1208
msgid "My other channels:"
msgstr "Mina andra kanaler:"
-#: ../../include/identity.php:1006
+#: ../../include/identity.php:1210
msgid "Musical interests:"
msgstr "Musikintressen:"
-#: ../../include/identity.php:1008
+#: ../../include/identity.php:1212
msgid "Books, literature:"
msgstr "Böcker, litteratur:"
-#: ../../include/identity.php:1010
+#: ../../include/identity.php:1214
msgid "Television:"
msgstr "Tv:"
-#: ../../include/identity.php:1012
+#: ../../include/identity.php:1216
msgid "Film/dance/culture/entertainment:"
msgstr "Film/dans/kultur/underhållning:"
-#: ../../include/identity.php:1014
+#: ../../include/identity.php:1218
msgid "Love/Romance:"
msgstr "Kärlek/romantik:"
-#: ../../include/identity.php:1016
+#: ../../include/identity.php:1220
msgid "Work/employment:"
msgstr "Arbete/sysselsättning:"
-#: ../../include/identity.php:1018
+#: ../../include/identity.php:1222
msgid "School/education:"
msgstr "Skola/utbildning:"
-#: ../../include/ItemObject.php:96 ../../include/page_widgets.php:8
-#: ../../include/menu.php:42 ../../mod/thing.php:235
-#: ../../mod/settings.php:577 ../../mod/menu.php:59 ../../mod/webpages.php:119
-#: ../../mod/editpost.php:112 ../../mod/layouts.php:112
-#: ../../mod/blocks.php:94 ../../mod/editblock.php:111
-#: ../../mod/editlayout.php:106 ../../mod/connections.php:391
-#: ../../mod/editwebpage.php:143 ../../mod/filestorage.php:170
-msgid "Edit"
-msgstr "Redigera"
+#: ../../include/identity.php:1242
+msgid "Like this thing"
+msgstr "Gilla den här saken"
+
+#: ../../include/bbcode.php:112 ../../include/bbcode.php:655
+#: ../../include/bbcode.php:658 ../../include/bbcode.php:663
+#: ../../include/bbcode.php:666 ../../include/bbcode.php:669
+#: ../../include/bbcode.php:672 ../../include/bbcode.php:677
+#: ../../include/bbcode.php:680 ../../include/bbcode.php:685
+#: ../../include/bbcode.php:688 ../../include/bbcode.php:691
+#: ../../include/bbcode.php:694
+msgid "Image/photo"
+msgstr "Bild/foto"
-#: ../../include/ItemObject.php:118
-msgid "save to folder"
-msgstr "spara i mapp"
+#: ../../include/bbcode.php:147 ../../include/bbcode.php:705
+msgid "Encrypted content"
+msgstr "Krypterat innehåll"
-#: ../../include/ItemObject.php:146
-msgid "add star"
-msgstr "lägg till märke"
+#: ../../include/bbcode.php:165
+msgid "Install design element: "
+msgstr "Installera designelement: "
-#: ../../include/ItemObject.php:147
-msgid "remove star"
-msgstr "ta bort märke"
+#: ../../include/bbcode.php:171
+msgid "QR code"
+msgstr "QR-kod"
-#: ../../include/ItemObject.php:148
-msgid "toggle star status"
-msgstr "växla märke på/av"
+#: ../../include/bbcode.php:220
+#, php-format
+msgid "%1$s wrote the following %2$s %3$s"
+msgstr "%1$s skrev följande %2$s %3$s"
-#: ../../include/ItemObject.php:152
-msgid "starred"
-msgstr "märkt"
+#: ../../include/bbcode.php:222
+msgid "post"
+msgstr "post"
-#: ../../include/ItemObject.php:169
-msgid "add tag"
-msgstr "lägg till tagg"
+#: ../../include/bbcode.php:623
+msgid "$1 spoiler"
+msgstr "$1 spoiler"
-#: ../../include/ItemObject.php:184 ../../mod/photos.php:971
-msgid "I like this (toggle)"
-msgstr "Jag gillar det här (växla)"
+#: ../../include/bbcode.php:643
+msgid "$1 wrote:"
+msgstr "$1 skrev:"
-#: ../../include/ItemObject.php:184 ../../include/taxonomy.php:254
+#: ../../include/datetime.php:43 ../../include/datetime.php:45
+msgid "Miscellaneous"
+msgstr "Övrigt"
+
+#: ../../include/datetime.php:142
+msgid "YYYY-MM-DD or MM-DD"
+msgstr "Ã…Ã…Ã…Ã…-MM-DD eller MM-DD"
+
+#: ../../include/datetime.php:259
+msgid "never"
+msgstr "aldrig"
+
+#: ../../include/datetime.php:265
+msgid "less than a second ago"
+msgstr "mindre än en sekund sedan"
+
+#: ../../include/datetime.php:268
+msgid "year"
+msgstr "Ã¥r"
+
+#: ../../include/datetime.php:268
+msgid "years"
+msgstr "Ã¥r"
+
+#: ../../include/datetime.php:269
+msgid "month"
+msgstr "månad"
+
+#: ../../include/datetime.php:269
+msgid "months"
+msgstr "månader"
+
+#: ../../include/datetime.php:270
+msgid "week"
+msgstr "vecka"
+
+#: ../../include/datetime.php:270
+msgid "weeks"
+msgstr "veckor"
+
+#: ../../include/datetime.php:271
+msgid "day"
+msgstr "dag"
+
+#: ../../include/datetime.php:271
+msgid "days"
+msgstr "dagar"
+
+#: ../../include/datetime.php:272
+msgid "hour"
+msgstr "timme"
+
+#: ../../include/datetime.php:272
+msgid "hours"
+msgstr "timmar"
+
+#: ../../include/datetime.php:273
+msgid "minute"
+msgstr "minut"
+
+#: ../../include/datetime.php:273
+msgid "minutes"
+msgstr "minuter"
+
+#: ../../include/datetime.php:274
+msgid "second"
+msgstr "sekund"
+
+#: ../../include/datetime.php:274
+msgid "seconds"
+msgstr "sekunder"
+
+#: ../../include/datetime.php:283
+#, php-format
+msgid "%1$d %2$s ago"
+msgstr "%1$d %2$s sedan"
+
+#: ../../include/datetime.php:491
+#, php-format
+msgid "%1$s's birthday"
+msgstr "%1$ss födelsedag"
+
+#: ../../include/datetime.php:492
+#, php-format
+msgid "Happy Birthday %1$s"
+msgstr "Grattis på födelsedagen %1$s"
+
+#: ../../include/zot.php:664
+msgid "Invalid data packet"
+msgstr "Ogiltigt datapaket"
+
+#: ../../include/zot.php:680
+msgid "Unable to verify channel signature"
+msgstr "Kunde inte bekräfta kanalsignatur"
+
+#: ../../include/zot.php:1818
+#, php-format
+msgid "Unable to verify site signature for %s"
+msgstr "Kunde inte bekräfta signatur för servern %s"
+
+#: ../../include/taxonomy.php:210
+msgid "Tags"
+msgstr "Taggar"
+
+#: ../../include/taxonomy.php:249
+msgid "Keywords"
+msgstr "Nyckelord"
+
+#: ../../include/taxonomy.php:274
+msgid "have"
+msgstr "har"
+
+#: ../../include/taxonomy.php:274
+msgid "has"
+msgstr "har"
+
+#: ../../include/taxonomy.php:275
+msgid "want"
+msgstr "vill ha"
+
+#: ../../include/taxonomy.php:275
+msgid "wants"
+msgstr "vill ha"
+
+#: ../../include/taxonomy.php:276 ../../include/ItemObject.php:221
msgid "like"
msgstr "gilla"
-#: ../../include/ItemObject.php:185 ../../mod/photos.php:972
-msgid "I don't like this (toggle)"
-msgstr "Jag gillar inte det här (växla)"
+#: ../../include/taxonomy.php:276
+msgid "likes"
+msgstr "gillar"
-#: ../../include/ItemObject.php:185 ../../include/taxonomy.php:255
+#: ../../include/taxonomy.php:277 ../../include/ItemObject.php:222
msgid "dislike"
msgstr "ogilla"
-#: ../../include/ItemObject.php:187
-msgid "Share this"
-msgstr "Dela det här"
+#: ../../include/taxonomy.php:277
+msgid "dislikes"
+msgstr "ogillar"
-#: ../../include/ItemObject.php:187
-msgid "share"
-msgstr "dela"
+#: ../../include/api.php:1084
+msgid "Public Timeline"
+msgstr "Offentlig tidslinje"
+
+#: ../../include/dir_fns.php:56
+msgid "Directory Options"
+msgstr "Katalogalternativ"
+
+#: ../../include/dir_fns.php:57
+msgid "Alphabetic"
+msgstr "Alfabetisk"
+
+#: ../../include/dir_fns.php:58
+msgid "Reverse Alphabetic"
+msgstr "Omvänd alfabetisk"
+
+#: ../../include/dir_fns.php:59
+msgid "Newest to Oldest"
+msgstr "Nyast till äldst"
+
+#: ../../include/dir_fns.php:60
+msgid "Public Forums Only"
+msgstr "Endast offentliga forum"
+
+#: ../../include/dir_fns.php:72
+msgid "Enable Safe Search"
+msgstr "Aktivera säker sökning"
+
+#: ../../include/dir_fns.php:74
+msgid "Disable Safe Search"
+msgstr "Avaktivera säker sökning"
+
+#: ../../include/dir_fns.php:76
+msgid "Safe Mode"
+msgstr "Säkert läge"
-#: ../../include/ItemObject.php:211 ../../include/ItemObject.php:212
+#: ../../include/enotify.php:41
+msgid "Red Matrix Notification"
+msgstr "Red Matrix-meddelande"
+
+#: ../../include/enotify.php:42
+msgid "redmatrix"
+msgstr "redmatrix"
+
+#: ../../include/enotify.php:44
+msgid "Thank You,"
+msgstr "Tack,"
+
+#: ../../include/enotify.php:46
#, php-format
-msgid "View %s's profile - %s"
-msgstr "Visa %ss profil - %s"
+msgid "%s Administrator"
+msgstr "Administratören för %s"
-#: ../../include/ItemObject.php:213
-msgid "to"
-msgstr "till"
+#: ../../include/enotify.php:81
+#, php-format
+msgid "%s <!item_type!>"
+msgstr "%s <!item_type!>"
-#: ../../include/ItemObject.php:214
-msgid "via"
-msgstr "via"
+#: ../../include/enotify.php:85
+#, php-format
+msgid "[Red:Notify] New mail received at %s"
+msgstr "[Red:Meddelande] Nytt meddelande på %s"
-#: ../../include/ItemObject.php:215
-msgid "Wall-to-Wall"
-msgstr "Vägg-till-vägg"
+#: ../../include/enotify.php:87
+#, php-format
+msgid "%1$s, %2$s sent you a new private message at %3$s."
+msgstr "%1$s, %2$s skickade ett nytt privat meddelande till dig på %3$s."
-#: ../../include/ItemObject.php:216
-msgid "via Wall-To-Wall:"
-msgstr "via vägg-till-vägg"
+#: ../../include/enotify.php:88
+#, php-format
+msgid "%1$s sent you %2$s."
+msgstr "%1$s skickade %2$s till dig."
-#: ../../include/ItemObject.php:250
-msgid "Bookmark Links"
-msgstr "Bokmärk länkar"
+#: ../../include/enotify.php:88
+msgid "a private message"
+msgstr "ett privat meddelande"
-#: ../../include/ItemObject.php:280
+#: ../../include/enotify.php:89
#, php-format
-msgid "%d comment"
-msgid_plural "%d comments"
-msgstr[0] "%d kommentar"
-msgstr[1] "%d kommentarer"
+msgid "Please visit %s to view and/or reply to your private messages."
+msgstr "Besök %s för att visa och/eller svara på dina privata meddelanden."
-#: ../../include/ItemObject.php:545 ../../mod/photos.php:990
-#: ../../mod/photos.php:1077
-msgid "This is you"
-msgstr "Det här är du"
+#: ../../include/enotify.php:144
+#, php-format
+msgid "%1$s, %2$s commented on [zrl=%3$s]a %4$s[/zrl]"
+msgstr "%1$s, %2$s kommenterade [zrl=%3$s]ett %4$s[/zrl]"
-#: ../../include/ItemObject.php:548 ../../mod/events.php:472
-#: ../../mod/thing.php:283 ../../mod/thing.php:326 ../../mod/invite.php:156
-#: ../../mod/mail.php:223 ../../mod/mail.php:335 ../../mod/settings.php:515
-#: ../../mod/settings.php:627 ../../mod/settings.php:655
-#: ../../mod/settings.php:679 ../../mod/settings.php:751
-#: ../../mod/settings.php:929 ../../mod/connect.php:92
-#: ../../mod/pdledit.php:58 ../../mod/group.php:81 ../../mod/admin.php:441
-#: ../../mod/admin.php:750 ../../mod/admin.php:884 ../../mod/admin.php:1017
-#: ../../mod/admin.php:1216 ../../mod/admin.php:1303 ../../mod/setup.php:307
-#: ../../mod/setup.php:350 ../../mod/connedit.php:443
-#: ../../mod/profiles.php:506 ../../mod/sources.php:104
-#: ../../mod/sources.php:138 ../../mod/chat.php:175 ../../mod/chat.php:208
-#: ../../mod/import.php:387 ../../mod/poke.php:166 ../../mod/fsuggest.php:108
-#: ../../mod/filestorage.php:131 ../../mod/photos.php:565
-#: ../../mod/photos.php:670 ../../mod/photos.php:953 ../../mod/photos.php:993
-#: ../../mod/photos.php:1080 ../../mod/mood.php:142
-#: ../../view/theme/redbasic/php/config.php:95
-#: ../../view/theme/apw/php/config.php:256
-#: ../../view/theme/blogga/view/theme/blog/config.php:67
-#: ../../view/theme/blogga/php/config.php:67
-msgid "Submit"
-msgstr "Skicka"
+#: ../../include/enotify.php:152
+#, php-format
+msgid "%1$s, %2$s commented on [zrl=%3$s]%4$s's %5$s[/zrl]"
+msgstr "%1$s, %2$s kommenterade [zrl=%3$s]%4$ss %5$s[/zrl]"
-#: ../../include/ItemObject.php:549
-msgid "Bold"
-msgstr "Fet"
+#: ../../include/enotify.php:161
+#, php-format
+msgid "%1$s, %2$s commented on [zrl=%3$s]your %4$s[/zrl]"
+msgstr "%1$s, %2$s kommenterade [zrl=%3$s]ditt %4$s[/zrl]"
-#: ../../include/ItemObject.php:550
-msgid "Italic"
-msgstr "Kursiv"
+#: ../../include/enotify.php:172
+#, php-format
+msgid "[Red:Notify] Comment to conversation #%1$d by %2$s"
+msgstr "[Red:Meddelande] Kommentar till konversation #%1$d av %2$s"
-#: ../../include/ItemObject.php:551
-msgid "Underline"
-msgstr "Understruken"
+#: ../../include/enotify.php:173
+#, php-format
+msgid "%1$s, %2$s commented on an item/conversation you have been following."
+msgstr "%1$s, %2$s kommenterade en sak/konversation du har följt."
-#: ../../include/ItemObject.php:552
-msgid "Quote"
-msgstr "Citat"
+#: ../../include/enotify.php:176 ../../include/enotify.php:191
+#: ../../include/enotify.php:217 ../../include/enotify.php:236
+#: ../../include/enotify.php:250
+#, php-format
+msgid "Please visit %s to view and/or reply to the conversation."
+msgstr "Besök %s för att visa och/eller svara på konversationen."
-#: ../../include/ItemObject.php:553
-msgid "Code"
-msgstr "Kod"
+#: ../../include/enotify.php:182
+#, php-format
+msgid "[Red:Notify] %s posted to your profile wall"
+msgstr "[Red:Meddelande] %s postade till din profilvägg"
-#: ../../include/ItemObject.php:554
-msgid "Image"
-msgstr "Bild"
+#: ../../include/enotify.php:184
+#, php-format
+msgid "%1$s, %2$s posted to your profile wall at %3$s"
+msgstr "%1$s, %2$s postade till din profilvägg på %3$s"
-#: ../../include/ItemObject.php:555
-msgid "Link"
-msgstr "Länk"
+#: ../../include/enotify.php:186
+#, php-format
+msgid "%1$s, %2$s posted to [zrl=%3$s]your wall[/zrl]"
+msgstr "%1$s, %2$s postade till [zrl=%3$s]din vägg[/zrl]"
-#: ../../include/ItemObject.php:556
-msgid "Video"
-msgstr "Video"
+#: ../../include/enotify.php:210
+#, php-format
+msgid "[Red:Notify] %s tagged you"
+msgstr "[Red:Meddelande] %s taggade dig"
-#: ../../include/reddav.php:1069
-msgid "Edit File properties"
-msgstr "Redigera filegenskaper"
+#: ../../include/enotify.php:211
+#, php-format
+msgid "%1$s, %2$s tagged you at %3$s"
+msgstr "%1$s, %2$s taggade dig på %3$s"
-#: ../../include/network.php:652
-msgid "view full size"
-msgstr "visa full storlek"
+#: ../../include/enotify.php:212
+#, php-format
+msgid "%1$s, %2$s [zrl=%3$s]tagged you[/zrl]."
+msgstr "%1$s, %2$s [zrl=%3$s]taggade dig[/zrl]."
+
+#: ../../include/enotify.php:225
+#, php-format
+msgid "[Red:Notify] %1$s poked you"
+msgstr "[Red:Meddelande] %1$s puffade dig"
+
+#: ../../include/enotify.php:226
+#, php-format
+msgid "%1$s, %2$s poked you at %3$s"
+msgstr "%1$s, %2$s puffade dig på %3$s"
+
+#: ../../include/enotify.php:227
+#, php-format
+msgid "%1$s, %2$s [zrl=%2$s]poked you[/zrl]."
+msgstr "%1$s, %2$s [zrl=%2$s]puffade dig[/zrl]."
+
+#: ../../include/enotify.php:243
+#, php-format
+msgid "[Red:Notify] %s tagged your post"
+msgstr "[Red:Meddelande] %s taggade ditt inlägg"
+
+#: ../../include/enotify.php:244
+#, php-format
+msgid "%1$s, %2$s tagged your post at %3$s"
+msgstr "%1$s, %2$s taggade ditt inlägg på %3$s"
-#: ../../include/text.php:320
+#: ../../include/enotify.php:245
+#, php-format
+msgid "%1$s, %2$s tagged [zrl=%3$s]your post[/zrl]"
+msgstr "%1$s, %2$s taggade [zrl=%3$s]ditt inlägg[/zrl]"
+
+#: ../../include/enotify.php:257
+msgid "[Red:Notify] Introduction received"
+msgstr "[Red:Meddelande] Presentation mottagen"
+
+#: ../../include/enotify.php:258
+#, php-format
+msgid "%1$s, you've received an new connection request from '%2$s' at %3$s"
+msgstr "%1$s, du har fått en ny kontaktförfrågan från '%2$s' på %3$s"
+
+#: ../../include/enotify.php:259
+#, php-format
+msgid ""
+"%1$s, you've received [zrl=%2$s]a new connection request[/zrl] from %3$s."
+msgstr "%1$s, du har fått [zrl=%2$s]en ny kontaktförfrågan[/zrl] från %3$s."
+
+#: ../../include/enotify.php:263 ../../include/enotify.php:282
+#, php-format
+msgid "You may visit their profile at %s"
+msgstr "Du kan besöka deras profil på %s"
+
+#: ../../include/enotify.php:265
+#, php-format
+msgid "Please visit %s to approve or reject the connection request."
+msgstr "Besök %s för att bevilja eller avslå kontaktförfrågan."
+
+#: ../../include/enotify.php:272
+msgid "[Red:Notify] Friend suggestion received"
+msgstr "[Red:Meddelande] Vänförslag mottaget"
+
+#: ../../include/enotify.php:273
+#, php-format
+msgid "%1$s, you've received a friend suggestion from '%2$s' at %3$s"
+msgstr "%1$s, du har fått ett vänförslag från '%2$s' på %3$s"
+
+#: ../../include/enotify.php:274
+#, 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 har fått [zrl=%2$s]ett vänförslag[/zrl] angående %3$s från %4$s."
+
+#: ../../include/enotify.php:280
+msgid "Name:"
+msgstr "Namn:"
+
+#: ../../include/enotify.php:281
+msgid "Photo:"
+msgstr "Foto:"
+
+#: ../../include/enotify.php:284
+#, php-format
+msgid "Please visit %s to approve or reject the suggestion."
+msgstr "Besök %s för att bevilja eller avslå förslaget."
+
+#: ../../include/enotify.php:477
+msgid "[Red:Notify]"
+msgstr "[Red:Notifiering]"
+
+#: ../../include/event.php:376
+msgid "This event has been added to your calendar."
+msgstr "Händelsen har lagts till i din kalender."
+
+#: ../../include/group.php:26
+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 "En borttagen grupp med det här namnet återskapades. Befintliga rättigheter till saker <strong>kan</strong> gälla för den här gruppen och alla framtida medlemmar. Om det här inte är vad du avsåg, skapa i stället en annan grupp med ett annat namn."
+
+#: ../../include/group.php:235
+msgid "Default privacy group for new contacts"
+msgstr "Förvald integritetsgrupp för nya kontakter"
+
+#: ../../include/group.php:254 ../../mod/admin.php:735
+msgid "All Channels"
+msgstr "Alla kanaler"
+
+#: ../../include/group.php:276
+msgid "edit"
+msgstr "redigera"
+
+#: ../../include/group.php:298
+msgid "Collections"
+msgstr "Kretsar"
+
+#: ../../include/group.php:299
+msgid "Edit collection"
+msgstr "Redigera krets"
+
+#: ../../include/group.php:300
+msgid "Create a new collection"
+msgstr "Skapa en ny krets"
+
+#: ../../include/group.php:301
+msgid "Channels not in any collection"
+msgstr "Kanaler inte i någon krets"
+
+#: ../../include/group.php:303 ../../include/widgets.php:273
+msgid "add"
+msgstr "lägg till"
+
+#: ../../include/features.php:23
+msgid "General Features"
+msgstr "Allmänna funktioner"
+
+#: ../../include/features.php:25
+msgid "Content Expiration"
+msgstr "Tidsbegränsat innehåll"
+
+#: ../../include/features.php:25
+msgid "Remove posts/comments and/or private messages at a future time"
+msgstr "Ta bort inlägg/kommentarer och/eller privata meddelanden efter en tid"
+
+#: ../../include/features.php:26
+msgid "Multiple Profiles"
+msgstr "Flera profiler"
+
+#: ../../include/features.php:26
+msgid "Ability to create multiple profiles"
+msgstr "Möjlighet att skapa flera profiler"
+
+#: ../../include/features.php:27
+msgid "Advanced Profiles"
+msgstr "Avancerade profiler"
+
+#: ../../include/features.php:27
+msgid "Additional profile sections and selections"
+msgstr "Fler profilinställningar"
+
+#: ../../include/features.php:28
+msgid "Profile Import/Export"
+msgstr "Profilimport/-export"
+
+#: ../../include/features.php:28
+msgid "Save and load profile details across sites/channels"
+msgstr "Spara och ladda profiluppgifter mellan webbplatser/kanaler"
+
+#: ../../include/features.php:29
+msgid "Web Pages"
+msgstr "Webbsidor"
+
+#: ../../include/features.php:29
+msgid "Provide managed web pages on your channel"
+msgstr "Tillhandahåll ordnade webbsidor i din kanal"
+
+#: ../../include/features.php:30
+msgid "Private Notes"
+msgstr "Privata anteckningar"
+
+#: ../../include/features.php:30
+msgid "Enables a tool to store notes and reminders"
+msgstr "Aktivera ett verktyg för att spara anteckningar och påminnelser"
+
+#: ../../include/features.php:34
+msgid "Navigation Channel Select"
+msgstr "Kanalväljare i navigation"
+
+#: ../../include/features.php:34
+msgid "Change channels directly from within the navigation dropdown menu"
+msgstr "Välj kanal direkt från navigationslistens rullgardinsmeny"
+
+#: ../../include/features.php:38
+msgid "Extended Identity Sharing"
+msgstr "Utökad identitetsdelning"
+
+#: ../../include/features.php:38
+msgid ""
+"Share your identity with all websites on the internet. When disabled, "
+"identity is only shared with sites in the matrix."
+msgstr "Dela din identitet med alla webbplatser på Internet. Om inaktiverat är identiteten bara delad med platser i matrisen."
+
+#: ../../include/features.php:39
+msgid "Expert Mode"
+msgstr "Expertläge"
+
+#: ../../include/features.php:39
+msgid "Enable Expert Mode to provide advanced configuration options"
+msgstr "Aktivera expertläge för att tillåta avancerade inställningar"
+
+#: ../../include/features.php:40
+msgid "Premium Channel"
+msgstr "Premiumkanal"
+
+#: ../../include/features.php:40
+msgid ""
+"Allows you to set restrictions and terms on those that connect with your "
+"channel"
+msgstr "Låter dig ange begränsningar och villkor för dem som vill ansluta till din kanal"
+
+#: ../../include/features.php:45
+msgid "Post Composition Features"
+msgstr "Skrivfunktioner"
+
+#: ../../include/features.php:47
+msgid "Use Markdown"
+msgstr "Använd Markdown"
+
+#: ../../include/features.php:47
+msgid "Allow use of \"Markdown\" to format posts"
+msgstr "Tillåt att \"Markdown\" används för att formatera inlägg"
+
+#: ../../include/features.php:48
+msgid "Post Preview"
+msgstr "Förhandsgranskning"
+
+#: ../../include/features.php:48
+msgid "Allow previewing posts and comments before publishing them"
+msgstr "Tillåt förhandsgranskning av inlägg och kommentarer innan de publiceras"
+
+#: ../../include/features.php:49 ../../include/widgets.php:537
+#: ../../mod/sources.php:88
+msgid "Channel Sources"
+msgstr "Kanalkällor"
+
+#: ../../include/features.php:49
+msgid "Automatically import channel content from other channels or feeds"
+msgstr "Importera kanalinnehåll från andra kanaler eller flöden automatiskt"
+
+#: ../../include/features.php:50
+msgid "Even More Encryption"
+msgstr "Ytterligare kryptering"
+
+#: ../../include/features.php:50
+msgid ""
+"Allow optional encryption of content end-to-end with a shared secret key"
+msgstr "Tillåt änd-till-änd-kryptering av innehåll med en delad hemlig nyckel"
+
+#: ../../include/features.php:51
+msgid "Flag Adult Photos"
+msgstr "Flagga vuxenfoton"
+
+#: ../../include/features.php:51
+msgid "Provide photo edit option to hide adult photos from default album view"
+msgstr "Gör det möjligt att inte visa foton som är olämpliga för barn i albums standardvy"
+
+#: ../../include/features.php:56
+msgid "Network and Stream Filtering"
+msgstr "Nätverk och strömfiltrering"
+
+#: ../../include/features.php:57
+msgid "Search by Date"
+msgstr "Sök på datum"
+
+#: ../../include/features.php:57
+msgid "Ability to select posts by date ranges"
+msgstr "Tillåter urval av inlägg baserat på datum"
+
+#: ../../include/features.php:58
+msgid "Collections Filter"
+msgstr "Kretsfilter"
+
+#: ../../include/features.php:58
+msgid "Enable widget to display Network posts only from selected collections"
+msgstr "Aktivera en väljare för att visa nätverksinlägg från enbart valda kretsar"
+
+#: ../../include/features.php:59 ../../include/widgets.php:272
+msgid "Saved Searches"
+msgstr "Sparade sökningar"
+
+#: ../../include/features.php:59
+msgid "Save search terms for re-use"
+msgstr "Spara sökuttryck för återanvändning"
+
+#: ../../include/features.php:60
+msgid "Network Personal Tab"
+msgstr "Personlig nätverksflik"
+
+#: ../../include/features.php:60
+msgid "Enable tab to display only Network posts that you've interacted on"
+msgstr "Aktivera en flik som visar endast de nätverksinlägg som du har deltagit i"
+
+#: ../../include/features.php:61
+msgid "Network New Tab"
+msgstr "Flik för nytt på nätverket"
+
+#: ../../include/features.php:61
+msgid "Enable tab to display all new Network activity"
+msgstr "Aktivera en flik som visar all ny nätverksaktivitet"
+
+#: ../../include/features.php:62
+msgid "Affinity Tool"
+msgstr "Samhörighetsverktyg"
+
+#: ../../include/features.php:62
+msgid "Filter stream activity by depth of relationships"
+msgstr "Filtrera strömaktivitet efter hur nära relationen är"
+
+#: ../../include/features.php:63
+msgid "Suggest Channels"
+msgstr "Föreslå kanaler"
+
+#: ../../include/features.php:63
+msgid "Show channel suggestions"
+msgstr "Visa förslag på kanaler"
+
+#: ../../include/features.php:68
+msgid "Post/Comment Tools"
+msgstr "Inläggs-/kommentarsverktyg"
+
+#: ../../include/features.php:70
+msgid "Edit Sent Posts"
+msgstr "Redigera sända inlägg"
+
+#: ../../include/features.php:70
+msgid "Edit and correct posts and comments after sending"
+msgstr "Redigera och korrigera inlägg och kommentarer efter att de skickats"
+
+#: ../../include/features.php:71
+msgid "Tagging"
+msgstr "Taggning"
+
+#: ../../include/features.php:71
+msgid "Ability to tag existing posts"
+msgstr "Möjlighet att tagga befintliga inlägg"
+
+#: ../../include/features.php:72
+msgid "Post Categories"
+msgstr "Inläggskategorier"
+
+#: ../../include/features.php:72
+msgid "Add categories to your posts"
+msgstr "Lägg till kategorier till dina inlägg"
+
+#: ../../include/features.php:73
+msgid "Ability to file posts under folders"
+msgstr "Möjlighet att lägga inlägg i mappar"
+
+#: ../../include/features.php:74
+msgid "Dislike Posts"
+msgstr "Ogilla inlägg"
+
+#: ../../include/features.php:74
+msgid "Ability to dislike posts/comments"
+msgstr "Möjlighet att ogilla inlägg/kommentarer"
+
+#: ../../include/features.php:75
+msgid "Star Posts"
+msgstr "Märk inlägg"
+
+#: ../../include/features.php:75
+msgid "Ability to mark special posts with a star indicator"
+msgstr "Möjlighet att märka speciella inlägg med en stjärna"
+
+#: ../../include/features.php:76
+msgid "Tag Cloud"
+msgstr "Taggmoln"
+
+#: ../../include/features.php:76
+msgid "Provide a personal tag cloud on your channel page"
+msgstr "Tillhandahåll ett personligt taggmoln på din kanalsida"
+
+#: ../../include/text.php:321
msgid "prev"
msgstr "föregående"
-#: ../../include/text.php:322
+#: ../../include/text.php:323
msgid "first"
msgstr "första"
-#: ../../include/text.php:351
+#: ../../include/text.php:352
msgid "last"
msgstr "sista"
-#: ../../include/text.php:354
+#: ../../include/text.php:355
msgid "next"
msgstr "nästa"
-#: ../../include/text.php:366
+#: ../../include/text.php:367
msgid "older"
msgstr "äldre"
-#: ../../include/text.php:368
+#: ../../include/text.php:369
msgid "newer"
msgstr "nyare"
-#: ../../include/text.php:719
+#: ../../include/text.php:736
msgid "No connections"
msgstr "Inga kontakter"
-#: ../../include/text.php:732
+#: ../../include/text.php:753
#, php-format
msgid "%d Connection"
msgid_plural "%d Connections"
msgstr[0] "%d kontakt"
msgstr[1] "%d kontakter"
-#: ../../include/text.php:744
+#: ../../include/text.php:766
msgid "View Connections"
msgstr "Visa kontakter"
-#: ../../include/text.php:885
+#: ../../include/text.php:827 ../../include/text.php:839
+#: ../../include/widgets.php:193 ../../mod/filer.php:50
+#: ../../mod/rbmark.php:28 ../../mod/rbmark.php:98 ../../mod/admin.php:1339
+#: ../../mod/admin.php:1360
+msgid "Save"
+msgstr "Spara"
+
+#: ../../include/text.php:905
msgid "poke"
msgstr "puffa"
-#: ../../include/text.php:886
+#: ../../include/text.php:906
msgid "ping"
msgstr "pinga"
-#: ../../include/text.php:886
+#: ../../include/text.php:906
msgid "pinged"
msgstr "pingade"
-#: ../../include/text.php:887
+#: ../../include/text.php:907
msgid "prod"
msgstr "stöt till"
-#: ../../include/text.php:887
+#: ../../include/text.php:907
msgid "prodded"
msgstr "stötte till"
-#: ../../include/text.php:888
+#: ../../include/text.php:908
msgid "slap"
msgstr "daska till"
-#: ../../include/text.php:888
+#: ../../include/text.php:908
msgid "slapped"
msgstr "daskade till"
-#: ../../include/text.php:889
+#: ../../include/text.php:909
msgid "finger"
msgstr "fingra på"
-#: ../../include/text.php:889
+#: ../../include/text.php:909
msgid "fingered"
msgstr "fingrade på"
-#: ../../include/text.php:890
+#: ../../include/text.php:910
msgid "rebuff"
msgstr "stöt tillbaka"
-#: ../../include/text.php:890
+#: ../../include/text.php:910
msgid "rebuffed"
msgstr "stötte tillbaks"
-#: ../../include/text.php:902
+#: ../../include/text.php:919
msgid "happy"
msgstr "glad"
-#: ../../include/text.php:903
+#: ../../include/text.php:920
msgid "sad"
msgstr "ledsen"
-#: ../../include/text.php:904
+#: ../../include/text.php:921
msgid "mellow"
msgstr "lugn"
-#: ../../include/text.php:905
+#: ../../include/text.php:922
msgid "tired"
msgstr "trött"
-#: ../../include/text.php:906
+#: ../../include/text.php:923
msgid "perky"
msgstr "uppåt"
-#: ../../include/text.php:907
+#: ../../include/text.php:924
msgid "angry"
msgstr "arg"
-#: ../../include/text.php:908
+#: ../../include/text.php:925
msgid "stupified"
msgstr "virrig"
-#: ../../include/text.php:909
+#: ../../include/text.php:926
msgid "puzzled"
msgstr "förbryllad"
-#: ../../include/text.php:910
+#: ../../include/text.php:927
msgid "interested"
msgstr "intresserad"
-#: ../../include/text.php:911
+#: ../../include/text.php:928
msgid "bitter"
msgstr "bitter"
-#: ../../include/text.php:912
+#: ../../include/text.php:929
msgid "cheerful"
msgstr "munter"
-#: ../../include/text.php:913
+#: ../../include/text.php:930
msgid "alive"
msgstr "pigg"
-#: ../../include/text.php:914
+#: ../../include/text.php:931
msgid "annoyed"
msgstr "irriterad"
-#: ../../include/text.php:915
+#: ../../include/text.php:932
msgid "anxious"
msgstr "bekymrad"
-#: ../../include/text.php:916
+#: ../../include/text.php:933
msgid "cranky"
msgstr "grinig"
-#: ../../include/text.php:917
+#: ../../include/text.php:934
msgid "disturbed"
msgstr "besvärad"
-#: ../../include/text.php:918
+#: ../../include/text.php:935
msgid "frustrated"
msgstr "frustrerad"
-#: ../../include/text.php:919
+#: ../../include/text.php:936
+msgid "depressed"
+msgstr "deprimerad"
+
+#: ../../include/text.php:937
msgid "motivated"
msgstr "motiverad"
-#: ../../include/text.php:920
+#: ../../include/text.php:938
msgid "relaxed"
msgstr "avslappnad"
-#: ../../include/text.php:921
+#: ../../include/text.php:939
msgid "surprised"
msgstr "förvånad"
-#: ../../include/text.php:1082
+#: ../../include/text.php:1103
msgid "Monday"
msgstr "måndag"
-#: ../../include/text.php:1082
+#: ../../include/text.php:1103
msgid "Tuesday"
msgstr "tisdag"
-#: ../../include/text.php:1082
+#: ../../include/text.php:1103
msgid "Wednesday"
msgstr "onsdag"
-#: ../../include/text.php:1082
+#: ../../include/text.php:1103
msgid "Thursday"
msgstr "torsdag"
-#: ../../include/text.php:1082
+#: ../../include/text.php:1103
msgid "Friday"
msgstr "fredag"
-#: ../../include/text.php:1082
+#: ../../include/text.php:1103
msgid "Saturday"
msgstr "lördag"
-#: ../../include/text.php:1082
+#: ../../include/text.php:1103
msgid "Sunday"
msgstr "söndag"
-#: ../../include/text.php:1086
+#: ../../include/text.php:1107
msgid "January"
msgstr "januari"
-#: ../../include/text.php:1086
+#: ../../include/text.php:1107
msgid "February"
msgstr "februari"
-#: ../../include/text.php:1086
+#: ../../include/text.php:1107
msgid "March"
msgstr "mars"
-#: ../../include/text.php:1086
+#: ../../include/text.php:1107
msgid "April"
msgstr "april"
-#: ../../include/text.php:1086
+#: ../../include/text.php:1107
msgid "May"
msgstr "maj"
-#: ../../include/text.php:1086
+#: ../../include/text.php:1107
msgid "June"
msgstr "juni"
-#: ../../include/text.php:1086
+#: ../../include/text.php:1107
msgid "July"
msgstr "juli"
-#: ../../include/text.php:1086
+#: ../../include/text.php:1107
msgid "August"
msgstr "augusti"
-#: ../../include/text.php:1086
+#: ../../include/text.php:1107
msgid "September"
msgstr "september"
-#: ../../include/text.php:1086
+#: ../../include/text.php:1107
msgid "October"
msgstr "oktober"
-#: ../../include/text.php:1086
+#: ../../include/text.php:1107
msgid "November"
msgstr "november"
-#: ../../include/text.php:1086
+#: ../../include/text.php:1107
msgid "December"
msgstr "december"
-#: ../../include/text.php:1164
+#: ../../include/text.php:1185
msgid "unknown.???"
msgstr "okänt.???"
-#: ../../include/text.php:1165
+#: ../../include/text.php:1186
msgid "bytes"
msgstr "byte"
-#: ../../include/text.php:1200
+#: ../../include/text.php:1225
msgid "remove category"
msgstr "ta bort kategori"
-#: ../../include/text.php:1249
+#: ../../include/text.php:1295
msgid "remove from file"
msgstr "ta bort från fil"
-#: ../../include/text.php:1310 ../../include/text.php:1322
+#: ../../include/text.php:1360 ../../include/text.php:1372
msgid "Click to open/close"
msgstr "Klicka för att öppna/stänga"
-#: ../../include/text.php:1477 ../../mod/events.php:335
-msgid "link to source"
-msgstr "länk till källa"
+#: ../../include/text.php:1527 ../../mod/events.php:414
+msgid "Link to Source"
+msgstr "Länk till källa"
-#: ../../include/text.php:1496
+#: ../../include/text.php:1546
msgid "Select a page layout: "
msgstr "Välj en sidlayout: "
-#: ../../include/text.php:1499 ../../include/text.php:1564
+#: ../../include/text.php:1549 ../../include/text.php:1614
msgid "default"
msgstr "standard"
-#: ../../include/text.php:1535
+#: ../../include/text.php:1585
msgid "Page content type: "
msgstr "Typ av sidinnehåll: "
-#: ../../include/text.php:1576
+#: ../../include/text.php:1626
msgid "Select an alternate language"
msgstr "Välj ett alternativt språk"
-#: ../../include/text.php:1710
+#: ../../include/text.php:1760
msgid "activity"
msgstr "aktivitet"
-#: ../../include/text.php:1969
+#: ../../include/text.php:2046
msgid "Design"
msgstr "Design"
-#: ../../include/text.php:1971
+#: ../../include/text.php:2049
msgid "Blocks"
msgstr "Block"
-#: ../../include/text.php:1972
+#: ../../include/text.php:2050
msgid "Menus"
msgstr "Menyer"
-#: ../../include/text.php:1973
+#: ../../include/text.php:2051
msgid "Layouts"
msgstr "Layouter"
-#: ../../include/text.php:1974
+#: ../../include/text.php:2052
msgid "Pages"
msgstr "Sidor"
-#: ../../include/notify.php:23
-msgid "created a new post"
-msgstr "skapade ett nytt inlägg"
+#: ../../include/account.php:23
+msgid "Not a valid email address"
+msgstr "Inte en giltig e-postadress"
-#: ../../include/notify.php:24
+#: ../../include/account.php:25
+msgid "Your email domain is not among those allowed on this site"
+msgstr "Din e-postdomän är inte bland de som tillåts på den här servern"
+
+#: ../../include/account.php:31
+msgid "Your email address is already registered at this site."
+msgstr "Din e-postadress är redan registrerad på den här servern."
+
+#: ../../include/account.php:64
+msgid "An invitation is required."
+msgstr "En inbjudan behövs."
+
+#: ../../include/account.php:68
+msgid "Invitation could not be verified."
+msgstr "Inbjudningen kunde inte bekräftas."
+
+#: ../../include/account.php:119
+msgid "Please enter the required information."
+msgstr "Ange den begärda informationen."
+
+#: ../../include/account.php:187
+msgid "Failed to store account information."
+msgstr "Misslyckades att spara kontoinformation."
+
+#: ../../include/account.php:245
#, php-format
-msgid "commented on %s's post"
-msgstr "kommenterade %ss inlägg"
+msgid "Registration confirmation for %s"
+msgstr "Registreringsbekräftelse för %s"
+
+#: ../../include/account.php:313
+#, php-format
+msgid "Registration request at %s"
+msgstr "Registreringsförfrågan på %s"
+
+#: ../../include/account.php:315 ../../include/account.php:342
+#: ../../include/account.php:399
+msgid "Administrator"
+msgstr "Administratör"
+
+#: ../../include/account.php:337
+msgid "your registration password"
+msgstr "ditt registreringslösenord"
+
+#: ../../include/account.php:340 ../../include/account.php:397
+#, php-format
+msgid "Registration details for %s"
+msgstr "Registreringsdetaljer för %s"
+
+#: ../../include/account.php:406
+msgid "Account approved."
+msgstr "Konto godkänt."
+
+#: ../../include/account.php:440
+#, php-format
+msgid "Registration revoked for %s"
+msgstr "Registrering avslagen för %s"
+
+#: ../../include/account.php:486
+msgid "Account verified. Please login."
+msgstr "Konto bekräftat. Du kan nu logga in."
+
+#: ../../include/account.php:648 ../../include/account.php:650
+msgid "Click here to upgrade."
+msgstr "Klicka här för att uppgradera."
+
+#: ../../include/account.php:656
+msgid "This action exceeds the limits set by your subscription plan."
+msgstr "Den här funktionen går utanför vad som anges i ditt avtal."
+
+#: ../../include/account.php:661
+msgid "This action is not available under your subscription plan."
+msgstr "Den här funktionen är inte tillgänglig med ditt avtal."
+
+#: ../../include/permissions.php:13
+msgid "Can view my normal stream and posts"
+msgstr "Kan se mina normala strömmar och inlägg"
+
+#: ../../include/permissions.php:14
+msgid "Can view my default channel profile"
+msgstr "Kan se min standardkanalprofil"
+
+#: ../../include/permissions.php:15
+msgid "Can view my photo albums"
+msgstr "Kan se mina fotoalbum"
+
+#: ../../include/permissions.php:16
+msgid "Can view my connections"
+msgstr "Kan se mina kontakter"
+
+#: ../../include/permissions.php:17
+msgid "Can view my file storage"
+msgstr "Kan se mitt filutrymme"
+
+#: ../../include/permissions.php:18
+msgid "Can view my webpages"
+msgstr "Kan se mina webbsidor"
+
+#: ../../include/permissions.php:21
+msgid "Can send me their channel stream and posts"
+msgstr "Kan skicka sina kanalströmmar och inlägg till mig"
+
+#: ../../include/permissions.php:22
+msgid "Can post on my channel page (\"wall\")"
+msgstr "Kan posta inlägg på min kanalsida (\"vägg\")"
+
+#: ../../include/permissions.php:23
+msgid "Can comment on or like my posts"
+msgstr "Kan kommentera eller gilla mina inlägg"
+
+#: ../../include/permissions.php:24
+msgid "Can send me private mail messages"
+msgstr "Kan skicka privata meddelanden till mig"
+
+#: ../../include/permissions.php:25
+msgid "Can post photos to my photo albums"
+msgstr "Kan lägga till foton i mitt fotoalbum"
+
+#: ../../include/permissions.php:26
+msgid "Can like/dislike stuff"
+msgstr "Kan gilla/ogilla saker"
+
+#: ../../include/permissions.php:26
+msgid "Profiles and things other than posts/comments"
+msgstr "Profiler och annat än inlägg/kommentarer"
+
+#: ../../include/permissions.php:28
+msgid "Can forward to all my channel contacts via post @mentions"
+msgstr "Kan vidarebefordra till alla mina kanalkontakter genom @omnämnanden"
+
+#: ../../include/permissions.php:28
+msgid "Advanced - useful for creating group forum channels"
+msgstr "Avancerat - användbart för att skapa kanaler för gruppforum"
+
+#: ../../include/permissions.php:29
+msgid "Can chat with me (when available)"
+msgstr "Kan chatta med mig (när tillgänglig)"
+
+#: ../../include/permissions.php:30
+msgid "Can write to my file storage"
+msgstr "Har skrivrättigheter i mitt filutrymme"
+
+#: ../../include/permissions.php:31
+msgid "Can edit my webpages"
+msgstr "Kan redigera mina webbsidor"
+
+#: ../../include/permissions.php:33
+msgid "Can source my public posts in derived channels"
+msgstr "Kan använda mina offentliga inlägg i kanaler nedströms"
+
+#: ../../include/permissions.php:33
+msgid "Somewhat advanced - very useful in open communities"
+msgstr "Ganska avancerat - väldigt användbart i öppna gemenskaper"
+
+#: ../../include/permissions.php:35
+msgid "Can administer my channel resources"
+msgstr "Kan administrera mina kanalresurser"
+
+#: ../../include/permissions.php:35
+msgid ""
+"Extremely advanced. Leave this alone unless you know what you are doing"
+msgstr "Extremt avancerat. Låt detta vara om du inte vet vad du gör"
+
+#: ../../include/permissions.php:785
+msgid "Social Networking"
+msgstr "Socialt nätverkande"
+
+#: ../../include/permissions.php:786 ../../include/permissions.php:788
+#: ../../include/permissions.php:790
+msgid "Mostly Public"
+msgstr "Mestadels offentligt"
+
+#: ../../include/permissions.php:786 ../../include/permissions.php:788
+#: ../../include/permissions.php:790
+msgid "Restricted"
+msgstr "Begränsat"
+
+#: ../../include/permissions.php:786 ../../include/permissions.php:788
+msgid "Private"
+msgstr "Privat"
+
+#: ../../include/permissions.php:787
+msgid "Community Forum"
+msgstr "Gemenskapsforum"
+
+#: ../../include/permissions.php:789
+msgid "Feed Republish"
+msgstr "Vidarepublicering av flöde"
+
+#: ../../include/permissions.php:791
+msgid "Special Purpose"
+msgstr "Särskilt syfte"
+
+#: ../../include/permissions.php:792
+msgid "Celebrity/Soapbox"
+msgstr "Kändis/talarstol"
+
+#: ../../include/permissions.php:792
+msgid "Group Repository"
+msgstr "Gruppförråd"
+
+#: ../../include/permissions.php:793 ../../include/profile_selectors.php:6
+#: ../../include/profile_selectors.php:23
+#: ../../include/profile_selectors.php:61
+#: ../../include/profile_selectors.php:97
+msgid "Other"
+msgstr "Annat"
+
+#: ../../include/permissions.php:794
+msgid "Custom/Expert Mode"
+msgstr "Anpassat/expertläge"
+
+#: ../../include/photos.php:105
+#, php-format
+msgid "Image exceeds website size limit of %lu bytes"
+msgstr "Bild överskrider webbplatsens storleksbegränsning på %lu byte"
+
+#: ../../include/photos.php:112
+msgid "Image file is empty."
+msgstr "Bildfil är tom."
+
+#: ../../include/photos.php:141 ../../mod/profile_photo.php:216
+msgid "Unable to process image"
+msgstr "Kunde inte bearbeta bild"
+
+#: ../../include/photos.php:213
+msgid "Photo storage failed."
+msgstr "Fotolagring misslyckades."
+
+#: ../../include/photos.php:345
+msgid "Upload New Photos"
+msgstr "Ladda upp nya foton"
+
+#: ../../include/items.php:382 ../../mod/profperm.php:23
+#: ../../mod/subthread.php:49 ../../mod/like.php:246 ../../mod/group.php:68
+#: ../../index.php:389
+msgid "Permission denied"
+msgstr "Behörighet saknas"
+
+#: ../../include/items.php:969 ../../include/items.php:1014
+msgid "(Unknown)"
+msgstr "(Okänt)"
+
+#: ../../include/items.php:1171
+msgid "Visible to anybody on the internet."
+msgstr "Kan ses av vem som helst på Internet."
+
+#: ../../include/items.php:1173
+msgid "Visible to you only."
+msgstr "Kan bara ses av dig."
+
+#: ../../include/items.php:1175
+msgid "Visible to anybody in this network."
+msgstr "Kan ses av alla på det här nätverket."
+
+#: ../../include/items.php:1177
+msgid "Visible to anybody authenticated."
+msgstr "Kan ses av alla inloggade."
+
+#: ../../include/items.php:1179
+#, php-format
+msgid "Visible to anybody on %s."
+msgstr "Kan ses av alla på %s."
+
+#: ../../include/items.php:1181
+msgid "Visible to all connections."
+msgstr "Kan ses av alla kontakter."
+
+#: ../../include/items.php:1183
+msgid "Visible to approved connections."
+msgstr "Kan ses av godkända kontakter."
+
+#: ../../include/items.php:1185
+msgid "Visible to specific connections."
+msgstr "Kan ses av valda kontakter."
+
+#: ../../include/items.php:3952 ../../mod/thing.php:76
+#: ../../mod/display.php:32 ../../mod/filestorage.php:26
+#: ../../mod/admin.php:168 ../../mod/admin.php:896 ../../mod/admin.php:1099
+#: ../../mod/viewsrc.php:20
+msgid "Item not found."
+msgstr "Posten hittades inte."
+
+#: ../../include/items.php:4410 ../../mod/group.php:38 ../../mod/group.php:140
+msgid "Collection not found."
+msgstr "Kretsen hittades inte."
+
+#: ../../include/items.php:4425
+msgid "Collection is empty."
+msgstr "Kretsen är tom."
+
+#: ../../include/items.php:4432
+#, php-format
+msgid "Collection: %s"
+msgstr "Krets: %s"
+
+#: ../../include/items.php:4443
+#, php-format
+msgid "Connection: %s"
+msgstr "Kontakt: %s"
+
+#: ../../include/items.php:4446
+msgid "Connection not found."
+msgstr "Kontakten hittades inte."
+
+#: ../../include/security.php:323
+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 "Formulärets kontrollkod var inte korrekt. Antagligen beror det på att formuläret har varit öppet för länge (> 3 timmar) innan det skickades."
+
+#: ../../include/widgets.php:87
+msgid "System"
+msgstr "System"
+
+#: ../../include/widgets.php:90
+msgid "Create Personal App"
+msgstr "Skapa personlig app"
+
+#: ../../include/widgets.php:91
+msgid "Edit Personal App"
+msgstr "Redigera personlig app"
+
+#: ../../include/widgets.php:137 ../../mod/suggest.php:53
+msgid "Ignore/Hide"
+msgstr "Ignorera/göm"
+
+#: ../../include/widgets.php:143 ../../mod/connections.php:267
+msgid "Suggestions"
+msgstr "Förslag"
+
+#: ../../include/widgets.php:144
+msgid "See more..."
+msgstr "Se fler..."
+
+#: ../../include/widgets.php:166
+#, php-format
+msgid "You have %1$.0f of %2$.0f allowed connections."
+msgstr "Du har %1$.0f av %2$.0f tillåtna kontakter."
+
+#: ../../include/widgets.php:172
+msgid "Add New Connection"
+msgstr "Lägg till ny kontakt"
+
+#: ../../include/widgets.php:173
+msgid "Enter the channel address"
+msgstr "Ange kanaladressen"
+
+#: ../../include/widgets.php:174
+msgid "Example: bob@example.com, http://example.com/barbara"
+msgstr "Exempel: bob@example.com, http://example.com/barbara"
+
+#: ../../include/widgets.php:191
+msgid "Notes"
+msgstr "Anteckningar"
+
+#: ../../include/widgets.php:263
+msgid "Remove term"
+msgstr "Ta bort uttryck"
+
+#: ../../include/widgets.php:352
+msgid "Archives"
+msgstr "Arkiv"
+
+#: ../../include/widgets.php:428
+msgid "Refresh"
+msgstr "Ladda om"
+
+#: ../../include/widgets.php:429 ../../mod/connedit.php:506
+msgid "Me"
+msgstr "Mig själv"
+
+#: ../../include/widgets.php:430 ../../mod/connedit.php:508
+msgid "Best Friends"
+msgstr "Bästa vänner"
+
+#: ../../include/widgets.php:432
+msgid "Co-workers"
+msgstr "Kollegor"
+
+#: ../../include/widgets.php:433 ../../mod/connedit.php:510
+msgid "Former Friends"
+msgstr "Tidigare vänner"
+
+#: ../../include/widgets.php:434 ../../mod/connedit.php:511
+msgid "Acquaintances"
+msgstr "Bekanta"
+
+#: ../../include/widgets.php:435
+msgid "Everybody"
+msgstr "Alla"
+
+#: ../../include/widgets.php:469
+msgid "Account settings"
+msgstr "Kontoinställningar"
+
+#: ../../include/widgets.php:475
+msgid "Channel settings"
+msgstr "Kanalinställningar"
+
+#: ../../include/widgets.php:481
+msgid "Additional features"
+msgstr "Tilläggsfunktioner"
+
+#: ../../include/widgets.php:487
+msgid "Feature settings"
+msgstr "Funktionsinställningar"
+
+#: ../../include/widgets.php:493
+msgid "Display settings"
+msgstr "Utseende"
+
+#: ../../include/widgets.php:499
+msgid "Connected apps"
+msgstr "Anslutna appar"
+
+#: ../../include/widgets.php:505
+msgid "Export channel"
+msgstr "Exportera kanal"
+
+#: ../../include/widgets.php:511
+msgid "Export content"
+msgstr "Exportera innehåll"
+
+#: ../../include/widgets.php:520 ../../mod/connedit.php:538
+msgid "Connection Default Permissions"
+msgstr "Standardbehörighet för kontakt"
+
+#: ../../include/widgets.php:528
+msgid "Premium Channel Settings"
+msgstr "Inställningar för premiumkanal"
+
+#: ../../include/widgets.php:562 ../../mod/mail.php:125
+#: ../../mod/message.php:31
+msgid "Messages"
+msgstr "Meddelanden"
+
+#: ../../include/widgets.php:567
+msgid "Check Mail"
+msgstr "Hämta meddelanden"
+
+#: ../../include/widgets.php:648
+msgid "Chat Rooms"
+msgstr "Chattrum"
+
+#: ../../include/widgets.php:668
+msgid "Bookmarked Chatrooms"
+msgstr "Bokmärkta chattrum"
+
+#: ../../include/widgets.php:688
+msgid "Suggested Chatrooms"
+msgstr "Föreslagna chattrum"
+
+#: ../../include/widgets.php:817 ../../include/widgets.php:875
+msgid "photo/image"
+msgstr "foto/bild"
+
+#: ../../include/Contact.php:123
+msgid "New window"
+msgstr "Nytt fönster"
+
+#: ../../include/Contact.php:124
+msgid "Open the selected location in a different window or browser tab"
+msgstr "Öppna den valda platsen i ett annat fönster eller en annan webbläsarflik"
+
+#: ../../include/Contact.php:211 ../../mod/admin.php:646
+#, php-format
+msgid "User '%s' deleted"
+msgstr "Användare '%s' borttagen"
+
+#: ../../include/js_strings.php:5
+msgid "Delete this item?"
+msgstr "Ta bort den här posten?"
+
+#: ../../include/js_strings.php:6 ../../include/ItemObject.php:620
+#: ../../mod/photos.php:996 ../../mod/photos.php:1106
+msgid "Comment"
+msgstr "Kommentar"
+
+#: ../../include/js_strings.php:7 ../../include/ItemObject.php:337
+msgid "[+] show all"
+msgstr "[+] visa alla"
+
+#: ../../include/js_strings.php:8
+msgid "[-] show less"
+msgstr "[-] visa färre"
+
+#: ../../include/js_strings.php:9
+msgid "[+] expand"
+msgstr "[+] fäll ut"
+
+#: ../../include/js_strings.php:10
+msgid "[-] collapse"
+msgstr "[-] fäll ihop"
+
+#: ../../include/js_strings.php:11
+msgid "Password too short"
+msgstr "Lösenord för kort"
+
+#: ../../include/js_strings.php:12
+msgid "Passwords do not match"
+msgstr "Lösenorden stämmer inte överens"
+
+#: ../../include/js_strings.php:13 ../../mod/photos.php:39
+msgid "everybody"
+msgstr "alla"
+
+#: ../../include/js_strings.php:14
+msgid "Secret Passphrase"
+msgstr "Hemligt lösenord"
+
+#: ../../include/js_strings.php:15
+msgid "Passphrase hint"
+msgstr "Lösenordsledtråd"
+
+#: ../../include/js_strings.php:16
+msgid "Notice: Permissions have changed but have not yet been submitted."
+msgstr "Observera: Rättigheter har ändrats men har ännu inte skickats in"
+
+#: ../../include/js_strings.php:17
+msgid "close all"
+msgstr "stäng alla"
+
+#: ../../include/js_strings.php:18
+msgid "Nothing new here"
+msgstr "Inget nytt här"
+
+#: ../../include/js_strings.php:20
+msgid "timeago.prefixAgo"
+msgstr "för"
+
+#: ../../include/js_strings.php:21
+msgid "timeago.prefixFromNow"
+msgstr "om"
+
+#: ../../include/js_strings.php:22
+msgid "ago"
+msgstr "sedan"
+
+#: ../../include/js_strings.php:23
+msgid "from now"
+msgstr " "
+
+#: ../../include/js_strings.php:24
+msgid "less than a minute"
+msgstr "mindre än en minut"
+
+#: ../../include/js_strings.php:25
+msgid "about a minute"
+msgstr "ungefär en minut"
+
+#: ../../include/js_strings.php:26
+#, php-format
+msgid "%d minutes"
+msgstr "%d minuter"
+
+#: ../../include/js_strings.php:27
+msgid "about an hour"
+msgstr "ungefär en timme"
+
+#: ../../include/js_strings.php:28
+#, php-format
+msgid "about %d hours"
+msgstr "ungefär %d timmar"
+
+#: ../../include/js_strings.php:29
+msgid "a day"
+msgstr "en dag"
+
+#: ../../include/js_strings.php:30
+#, php-format
+msgid "%d days"
+msgstr "%d dagar"
+
+#: ../../include/js_strings.php:31
+msgid "about a month"
+msgstr "ungefär en månad"
+
+#: ../../include/js_strings.php:32
+#, php-format
+msgid "%d months"
+msgstr "%d månader"
+
+#: ../../include/js_strings.php:33
+msgid "about a year"
+msgstr "ungefär ett år"
+
+#: ../../include/js_strings.php:34
+#, php-format
+msgid "%d years"
+msgstr "%d år"
+
+#: ../../include/js_strings.php:35
+msgid " "
+msgstr " "
+
+#: ../../include/js_strings.php:36
+msgid "timeago.numbers"
+msgstr "timeago.numbers"
#: ../../include/profile_selectors.php:6
+#: ../../include/profile_selectors.php:23
msgid "Male"
msgstr "Man"
#: ../../include/profile_selectors.php:6
+#: ../../include/profile_selectors.php:23
msgid "Female"
msgstr "Kvinna"
@@ -2449,3368 +3239,2479 @@ msgid "Non-specific"
msgstr "Ospecificerat"
#: ../../include/profile_selectors.php:6
-msgid "Other"
-msgstr "Annat"
-
-#: ../../include/profile_selectors.php:6
msgid "Undecided"
msgstr "Obestämt"
-#: ../../include/profile_selectors.php:23
+#: ../../include/profile_selectors.php:42
+#: ../../include/profile_selectors.php:61
msgid "Males"
msgstr "Män"
-#: ../../include/profile_selectors.php:23
+#: ../../include/profile_selectors.php:42
+#: ../../include/profile_selectors.php:61
msgid "Females"
msgstr "Kvinnor"
-#: ../../include/profile_selectors.php:23
+#: ../../include/profile_selectors.php:42
msgid "Gay"
msgstr "Bög"
-#: ../../include/profile_selectors.php:23
+#: ../../include/profile_selectors.php:42
msgid "Lesbian"
msgstr "Lesbisk"
-#: ../../include/profile_selectors.php:23
+#: ../../include/profile_selectors.php:42
msgid "No Preference"
msgstr "Ingen preferens"
-#: ../../include/profile_selectors.php:23
+#: ../../include/profile_selectors.php:42
msgid "Bisexual"
msgstr "Bisexuell"
-#: ../../include/profile_selectors.php:23
+#: ../../include/profile_selectors.php:42
msgid "Autosexual"
msgstr "Autosexuell"
-#: ../../include/profile_selectors.php:23
+#: ../../include/profile_selectors.php:42
msgid "Abstinent"
msgstr "Avhållsam"
-#: ../../include/profile_selectors.php:23
+#: ../../include/profile_selectors.php:42
msgid "Virgin"
msgstr "Oskuld"
-#: ../../include/profile_selectors.php:23
+#: ../../include/profile_selectors.php:42
msgid "Deviant"
msgstr "Avvikande"
-#: ../../include/profile_selectors.php:23
+#: ../../include/profile_selectors.php:42
msgid "Fetish"
msgstr "Fetisch"
-#: ../../include/profile_selectors.php:23
+#: ../../include/profile_selectors.php:42
msgid "Oodles"
msgstr "Massor"
-#: ../../include/profile_selectors.php:23
+#: ../../include/profile_selectors.php:42
msgid "Nonsexual"
msgstr "Ickesexuell"
-#: ../../include/profile_selectors.php:42
+#: ../../include/profile_selectors.php:80
+#: ../../include/profile_selectors.php:97
msgid "Single"
msgstr "Singel"
-#: ../../include/profile_selectors.php:42
+#: ../../include/profile_selectors.php:80
msgid "Lonely"
msgstr "Ensam"
-#: ../../include/profile_selectors.php:42
+#: ../../include/profile_selectors.php:80
msgid "Available"
msgstr "Ledig"
-#: ../../include/profile_selectors.php:42
+#: ../../include/profile_selectors.php:80
msgid "Unavailable"
msgstr "Upptagen"
-#: ../../include/profile_selectors.php:42
+#: ../../include/profile_selectors.php:80
msgid "Has crush"
msgstr "Förälskad"
-#: ../../include/profile_selectors.php:42
+#: ../../include/profile_selectors.php:80
msgid "Infatuated"
msgstr "Förtrollad"
-#: ../../include/profile_selectors.php:42
+#: ../../include/profile_selectors.php:80
+#: ../../include/profile_selectors.php:97
msgid "Dating"
msgstr "Dejtar"
-#: ../../include/profile_selectors.php:42
+#: ../../include/profile_selectors.php:80
msgid "Unfaithful"
msgstr "Otrogen"
-#: ../../include/profile_selectors.php:42
+#: ../../include/profile_selectors.php:80
msgid "Sex Addict"
msgstr "Sexmissbrukare"
-#: ../../include/profile_selectors.php:42
+#: ../../include/profile_selectors.php:80
msgid "Friends/Benefits"
msgstr "Kompisförhållande"
-#: ../../include/profile_selectors.php:42
+#: ../../include/profile_selectors.php:80
msgid "Casual"
msgstr "Vardaglig"
-#: ../../include/profile_selectors.php:42
+#: ../../include/profile_selectors.php:80
msgid "Engaged"
msgstr "Förlovad"
-#: ../../include/profile_selectors.php:42
+#: ../../include/profile_selectors.php:80
+#: ../../include/profile_selectors.php:97
msgid "Married"
msgstr "Gift"
-#: ../../include/profile_selectors.php:42
+#: ../../include/profile_selectors.php:80
msgid "Imaginarily married"
msgstr "Inbillat gift"
-#: ../../include/profile_selectors.php:42
+#: ../../include/profile_selectors.php:80
msgid "Partners"
msgstr "Partner"
-#: ../../include/profile_selectors.php:42
+#: ../../include/profile_selectors.php:80
+#: ../../include/profile_selectors.php:97
msgid "Cohabiting"
msgstr "Bor ihop"
-#: ../../include/profile_selectors.php:42
+#: ../../include/profile_selectors.php:80
msgid "Common law"
msgstr "Sambo"
-#: ../../include/profile_selectors.php:42
+#: ../../include/profile_selectors.php:80
msgid "Happy"
msgstr "Lycklig"
-#: ../../include/profile_selectors.php:42
+#: ../../include/profile_selectors.php:80
msgid "Not looking"
msgstr "Letar inte"
-#: ../../include/profile_selectors.php:42
+#: ../../include/profile_selectors.php:80
msgid "Swinger"
msgstr "Swinger"
-#: ../../include/profile_selectors.php:42
+#: ../../include/profile_selectors.php:80
msgid "Betrayed"
msgstr "Bedragen"
-#: ../../include/profile_selectors.php:42
+#: ../../include/profile_selectors.php:80
+#: ../../include/profile_selectors.php:97
msgid "Separated"
msgstr "Separerad"
-#: ../../include/profile_selectors.php:42
+#: ../../include/profile_selectors.php:80
msgid "Unstable"
msgstr "Instabilt"
-#: ../../include/profile_selectors.php:42
+#: ../../include/profile_selectors.php:80
+#: ../../include/profile_selectors.php:97
msgid "Divorced"
msgstr "Skild"
-#: ../../include/profile_selectors.php:42
+#: ../../include/profile_selectors.php:80
msgid "Imaginarily divorced"
msgstr "Inbillat skild"
-#: ../../include/profile_selectors.php:42
+#: ../../include/profile_selectors.php:80
+#: ../../include/profile_selectors.php:97
msgid "Widowed"
msgstr "Änka"
-#: ../../include/profile_selectors.php:42
+#: ../../include/profile_selectors.php:80
msgid "Uncertain"
msgstr "Osäkert"
-#: ../../include/profile_selectors.php:42
+#: ../../include/profile_selectors.php:80
+#: ../../include/profile_selectors.php:97
msgid "It's complicated"
msgstr "Det är komplicerat"
-#: ../../include/profile_selectors.php:42
+#: ../../include/profile_selectors.php:80
msgid "Don't care"
msgstr "Bryr mig inte"
-#: ../../include/profile_selectors.php:42
+#: ../../include/profile_selectors.php:80
msgid "Ask me"
msgstr "Fråga mig"
-#: ../../include/chat.php:10
-msgid "Missing room name"
-msgstr "Rumsnamn saknas"
+#: ../../include/apps.php:126
+msgid "Site Admin"
+msgstr "Serveradministrator"
-#: ../../include/chat.php:19
-msgid "Duplicate room name"
-msgstr "Rumsnamnet finns redan"
+#: ../../include/apps.php:128
+msgid "Address Book"
+msgstr "Adressbok"
-#: ../../include/chat.php:68 ../../include/chat.php:76
-msgid "Invalid room specifier."
-msgstr "Ogiltig rumsbeskrivning."
+#: ../../include/apps.php:142 ../../mod/mood.php:131
+msgid "Mood"
+msgstr "Sinnesstämning"
-#: ../../include/chat.php:102
-msgid "Room not found."
-msgstr "Rummet hittades inte."
+#: ../../include/apps.php:146
+msgid "Probe"
+msgstr "Sond"
-#: ../../include/chat.php:123
-msgid "Room is full"
-msgstr "Rummet är fullt"
+#: ../../include/apps.php:147
+msgid "Suggest"
+msgstr "Föreslå"
-#: ../../include/comanche.php:35 ../../view/theme/redbasic/php/config.php:80
-#: ../../view/theme/apw/php/config.php:185
-msgid "Default"
-msgstr "Standard"
+#: ../../include/apps.php:148
+msgid "Random Channel"
+msgstr "Slumpvald kanal"
-#: ../../include/taxonomy.php:210
-msgid "Tags"
-msgstr "Taggar"
+#: ../../include/apps.php:149
+msgid "Invite"
+msgstr "Bjud in"
-#: ../../include/taxonomy.php:227
-msgid "Keywords"
-msgstr "Nyckelord"
+#: ../../include/apps.php:150
+msgid "Features"
+msgstr "Funktioner"
-#: ../../include/taxonomy.php:252
-msgid "have"
-msgstr "har"
+#: ../../include/apps.php:151
+msgid "Language"
+msgstr "Språk"
-#: ../../include/taxonomy.php:252
-msgid "has"
-msgstr "har"
+#: ../../include/apps.php:152
+msgid "Post"
+msgstr "Inlägg"
-#: ../../include/taxonomy.php:253
-msgid "want"
-msgstr "vill ha"
+#: ../../include/apps.php:153
+msgid "Profile Photo"
+msgstr "Profilfoto"
-#: ../../include/taxonomy.php:253
-msgid "wants"
-msgstr "vill ha"
+#: ../../include/apps.php:242 ../../mod/settings.php:81
+#: ../../mod/settings.php:589
+msgid "Update"
+msgstr "Uppdatera"
-#: ../../include/taxonomy.php:254
-msgid "likes"
-msgstr "gillar"
+#: ../../include/apps.php:242
+msgid "Install"
+msgstr "Installera"
-#: ../../include/taxonomy.php:255
-msgid "dislikes"
-msgstr "ogillar"
+#: ../../include/apps.php:247
+msgid "Purchase"
+msgstr "Köp"
-#: ../../include/auth.php:79
+#: ../../include/auth.php:116
msgid "Logged out."
msgstr "Utloggad."
-#: ../../include/auth.php:197
+#: ../../include/auth.php:257
msgid "Failed authentication"
-msgstr "Autentisering misslyckades"
+msgstr "Inloggning misslyckades"
-#: ../../include/auth.php:212 ../../mod/openid.php:188
+#: ../../include/auth.php:271 ../../mod/openid.php:190
msgid "Login failed."
msgstr "Inloggning misslyckades."
-#: ../../include/account.php:23
-msgid "Not a valid email address"
-msgstr "Inte en giltig e-postadress"
+#: ../../include/ItemObject.php:130
+msgid "Save to Folder"
+msgstr "Spara i mapp"
-#: ../../include/account.php:25
-msgid "Your email domain is not among those allowed on this site"
-msgstr "Din e-postdomän är inte bland de som tillåts på den här servern"
+#: ../../include/ItemObject.php:142 ../../include/ItemObject.php:154
+#: ../../mod/photos.php:1023 ../../mod/photos.php:1035
+msgid "View all"
+msgstr "Visa alla"
-#: ../../include/account.php:31
-msgid "Your email address is already registered at this site."
-msgstr "Din e-postadress är redan registrerad på den här servern."
+#: ../../include/ItemObject.php:151 ../../mod/photos.php:1032
+msgctxt "noun"
+msgid "Dislike"
+msgid_plural "Dislikes"
+msgstr[0] "ogillar detta"
+msgstr[1] "ogillar detta"
-#: ../../include/account.php:64
-msgid "An invitation is required."
-msgstr "En inbjudan behövs."
+#: ../../include/ItemObject.php:179
+msgid "Add Star"
+msgstr "Märk"
-#: ../../include/account.php:68
-msgid "Invitation could not be verified."
-msgstr "Inbjudningen kunde inte bekräftas."
+#: ../../include/ItemObject.php:180
+msgid "Remove Star"
+msgstr "Ta bort märkning"
-#: ../../include/account.php:119
-msgid "Please enter the required information."
-msgstr "Ange den begärda informationen."
+#: ../../include/ItemObject.php:181
+msgid "Toggle Star Status"
+msgstr "Växla märkning"
-#: ../../include/account.php:187
-msgid "Failed to store account information."
-msgstr "Misslyckades att spara kontoinformation."
+#: ../../include/ItemObject.php:185
+msgid "starred"
+msgstr "märkt"
-#: ../../include/account.php:273
-#, php-format
-msgid "Registration request at %s"
-msgstr "Registreringsförfrågan på %s"
+#: ../../include/ItemObject.php:203
+msgid "Add Tag"
+msgstr "Lägg till en tagg"
-#: ../../include/account.php:275 ../../include/account.php:302
-#: ../../include/account.php:359
-msgid "Administrator"
-msgstr "Administratör"
+#: ../../include/ItemObject.php:221 ../../mod/photos.php:975
+msgid "I like this (toggle)"
+msgstr "Jag gillar det här (växla)"
-#: ../../include/account.php:297
-msgid "your registration password"
-msgstr "ditt registreringslösenord"
+#: ../../include/ItemObject.php:222 ../../mod/photos.php:976
+msgid "I don't like this (toggle)"
+msgstr "Jag gillar inte det här (växla)"
-#: ../../include/account.php:300 ../../include/account.php:357
-#, php-format
-msgid "Registration details for %s"
-msgstr "Registreringsdetaljer för %s"
+#: ../../include/ItemObject.php:226
+msgid "Share This"
+msgstr "Dela det här"
-#: ../../include/account.php:366
-msgid "Account approved."
-msgstr "Konto godkänt."
+#: ../../include/ItemObject.php:226
+msgid "share"
+msgstr "dela"
-#: ../../include/account.php:400
+#: ../../include/ItemObject.php:236
#, php-format
-msgid "Registration revoked for %s"
-msgstr "Registrering avslagen för %s"
+msgid "%d comment"
+msgid_plural "%d comments"
+msgstr[0] "%d kommentar"
+msgstr[1] "%d kommentarer"
-#: ../../include/dir_fns.php:15
-msgid "Sort Options"
-msgstr "Sorteringsalternativ"
+#: ../../include/ItemObject.php:249 ../../include/ItemObject.php:250
+#, php-format
+msgid "View %s's profile - %s"
+msgstr "Visa %ss profil - %s"
-#: ../../include/dir_fns.php:16
-msgid "Alphabetic"
-msgstr "Alfabetisk"
+#: ../../include/ItemObject.php:252
+msgid "to"
+msgstr "till"
-#: ../../include/dir_fns.php:17
-msgid "Reverse Alphabetic"
-msgstr "Omvänd alfabetisk"
+#: ../../include/ItemObject.php:253
+msgid "via"
+msgstr "via"
-#: ../../include/dir_fns.php:18
-msgid "Newest to Oldest"
-msgstr "Nyast till äldst"
+#: ../../include/ItemObject.php:254
+msgid "Wall-to-Wall"
+msgstr "Vägg-till-vägg"
-#: ../../include/dir_fns.php:30
-msgid "Enable Safe Search"
-msgstr "Aktivera säker sökning"
+#: ../../include/ItemObject.php:255
+msgid "via Wall-To-Wall:"
+msgstr "via vägg-till-vägg"
-#: ../../include/dir_fns.php:32
-msgid "Disable Safe Search"
-msgstr "Avaktivera säker sökning"
+#: ../../include/ItemObject.php:291
+msgid "Save Bookmarks"
+msgstr "Spara bokmärken"
-#: ../../include/dir_fns.php:34
-msgid "Safe Mode"
-msgstr "Säkert läge"
+#: ../../include/ItemObject.php:292
+msgid "Add to Calendar"
+msgstr "Lägg till kalendern"
-#: ../../include/enotify.php:41
-msgid "Red Matrix Notification"
-msgstr "Red Matrix-meddelande"
+#: ../../include/ItemObject.php:301
+msgid "Mark all seen"
+msgstr "Märk alla som lästa"
-#: ../../include/enotify.php:42
-msgid "redmatrix"
-msgstr "redmatrix"
+#: ../../include/ItemObject.php:306 ../../mod/photos.php:1143
+msgctxt "noun"
+msgid "Likes"
+msgstr "gillar detta"
-#: ../../include/enotify.php:44
-msgid "Thank You,"
-msgstr "Tack,"
+#: ../../include/ItemObject.php:307 ../../mod/photos.php:1144
+msgctxt "noun"
+msgid "Dislikes"
+msgstr "ogillar detta"
-#: ../../include/enotify.php:46
-#, php-format
-msgid "%s Administrator"
-msgstr "Administratören för %s"
+#: ../../include/ItemObject.php:618 ../../mod/photos.php:994
+#: ../../mod/photos.php:1104
+msgid "This is you"
+msgstr "Det här är du"
-#: ../../include/enotify.php:81
-#, php-format
-msgid "%s <!item_type!>"
-msgstr "%s <!item_type!>"
+#: ../../include/ItemObject.php:621 ../../mod/mood.php:135
+#: ../../mod/sources.php:104 ../../mod/sources.php:138 ../../mod/poke.php:166
+#: ../../mod/setup.php:313 ../../mod/setup.php:358 ../../mod/settings.php:563
+#: ../../mod/settings.php:675 ../../mod/settings.php:704
+#: ../../mod/settings.php:728 ../../mod/settings.php:805
+#: ../../mod/settings.php:997 ../../mod/events.php:598 ../../mod/chat.php:177
+#: ../../mod/chat.php:211 ../../mod/connect.php:93 ../../mod/connedit.php:555
+#: ../../mod/thing.php:284 ../../mod/thing.php:327 ../../mod/profiles.php:633
+#: ../../mod/pdledit.php:58 ../../mod/fsuggest.php:108
+#: ../../mod/filestorage.php:146 ../../mod/group.php:81
+#: ../../mod/import.php:480 ../../mod/admin.php:412 ../../mod/admin.php:723
+#: ../../mod/admin.php:859 ../../mod/admin.php:992 ../../mod/admin.php:1191
+#: ../../mod/admin.php:1278 ../../mod/locs.php:99 ../../mod/mail.php:352
+#: ../../mod/invite.php:142 ../../mod/xchan.php:11 ../../mod/photos.php:594
+#: ../../mod/photos.php:671 ../../mod/photos.php:957 ../../mod/photos.php:997
+#: ../../mod/photos.php:1107 ../../mod/appman.php:99 ../../mod/poll.php:68
+#: ../../view/theme/apw/php/config.php:256
+#: ../../view/theme/redbasic/php/config.php:99
+msgid "Submit"
+msgstr "Skicka"
-#: ../../include/enotify.php:85
-#, php-format
-msgid "[Red:Notify] New mail received at %s"
-msgstr "[Red:Meddelande] Nytt meddelande på %s"
+#: ../../include/ItemObject.php:622
+msgid "Bold"
+msgstr "Fet"
-#: ../../include/enotify.php:87
-#, php-format
-msgid "%1$s, %2$s sent you a new private message at %3$s."
-msgstr "%1$s, %2$s skickade ett nytt privat meddelande till dig på %3$s."
+#: ../../include/ItemObject.php:623
+msgid "Italic"
+msgstr "Kursiv"
-#: ../../include/enotify.php:88
-#, php-format
-msgid "%1$s sent you %2$s."
-msgstr "%1$s skickade %2$s till dig."
+#: ../../include/ItemObject.php:624
+msgid "Underline"
+msgstr "Understruken"
-#: ../../include/enotify.php:88
-msgid "a private message"
-msgstr "ett privat meddelande"
+#: ../../include/ItemObject.php:625
+msgid "Quote"
+msgstr "Citat"
-#: ../../include/enotify.php:89
-#, php-format
-msgid "Please visit %s to view and/or reply to your private messages."
-msgstr "Besök %s för att visa och/eller svara på dina privata meddelanden."
+#: ../../include/ItemObject.php:626
+msgid "Code"
+msgstr "Kod"
-#: ../../include/enotify.php:144
-#, php-format
-msgid "%1$s, %2$s commented on [zrl=%3$s]a %4$s[/zrl]"
-msgstr "%1$s, %2$s kommenterade [zrl=%3$s]ett %4$s[/zrl]"
+#: ../../include/ItemObject.php:627
+msgid "Image"
+msgstr "Bild"
-#: ../../include/enotify.php:152
-#, php-format
-msgid "%1$s, %2$s commented on [zrl=%3$s]%4$s's %5$s[/zrl]"
-msgstr "%1$s, %2$s kommenterade [zrl=%3$s]%4$ss %5$s[/zrl]"
+#: ../../include/ItemObject.php:628
+msgid "Link"
+msgstr "Länk"
-#: ../../include/enotify.php:161
-#, php-format
-msgid "%1$s, %2$s commented on [zrl=%3$s]your %4$s[/zrl]"
-msgstr "%1$s, %2$s kommenterade [zrl=%3$s]ditt %4$s[/zrl]"
+#: ../../include/ItemObject.php:629
+msgid "Video"
+msgstr "Video"
-#: ../../include/enotify.php:172
-#, php-format
-msgid "[Red:Notify] Comment to conversation #%1$d by %2$s"
-msgstr "[Red:Meddelande] Kommentar till konversation #%1$d av %2$s"
+#: ../../include/chat.php:10
+msgid "Missing room name"
+msgstr "Rumsnamn saknas"
-#: ../../include/enotify.php:173
-#, php-format
-msgid "%1$s, %2$s commented on an item/conversation you have been following."
-msgstr "%1$s, %2$s kommenterade en sak/konversation du har följt."
+#: ../../include/chat.php:19
+msgid "Duplicate room name"
+msgstr "Rumsnamnet finns redan"
-#: ../../include/enotify.php:176 ../../include/enotify.php:191
-#: ../../include/enotify.php:217 ../../include/enotify.php:236
-#: ../../include/enotify.php:250
-#, php-format
-msgid "Please visit %s to view and/or reply to the conversation."
-msgstr "Besök %s för att visa och/eller svara på konversationen."
+#: ../../include/chat.php:68 ../../include/chat.php:76
+msgid "Invalid room specifier."
+msgstr "Ogiltig rumsbeskrivning."
-#: ../../include/enotify.php:182
-#, php-format
-msgid "[Red:Notify] %s posted to your profile wall"
-msgstr "[Red:Meddelande] %s postade till din profilvägg"
+#: ../../include/chat.php:105
+msgid "Room not found."
+msgstr "Rummet hittades inte."
-#: ../../include/enotify.php:184
-#, php-format
-msgid "%1$s, %2$s posted to your profile wall at %3$s"
-msgstr "%1$s, %2$s postade till din profilvägg på %3$s"
+#: ../../include/chat.php:126
+msgid "Room is full"
+msgstr "Rummet är fullt"
-#: ../../include/enotify.php:186
-#, php-format
-msgid "%1$s, %2$s posted to [zrl=%3$s]your wall[/zrl]"
-msgstr "%1$s, %2$s postade till [zrl=%3$s]din vägg[/zrl]"
+#: ../../mod/mood.php:132
+msgid "Set your current mood and tell your friends"
+msgstr "Ange din nuvarande sinnesstämning och visa för dina vänner"
-#: ../../include/enotify.php:210
-#, php-format
-msgid "[Red:Notify] %s tagged you"
-msgstr "[Red:Meddelande] %s taggade dig"
+#: ../../mod/mitem.php:24 ../../mod/menu.php:108
+msgid "Menu not found."
+msgstr "Menyn hittades inte."
-#: ../../include/enotify.php:211
-#, php-format
-msgid "%1$s, %2$s tagged you at %3$s"
-msgstr "%1$s, %2$s taggade dig på %3$s"
+#: ../../mod/mitem.php:67
+msgid "Menu element updated."
+msgstr "Menyval uppdaterat."
-#: ../../include/enotify.php:212
-#, php-format
-msgid "%1$s, %2$s [zrl=%3$s]tagged you[/zrl]."
-msgstr "%1$s, %2$s [zrl=%3$s]taggade dig[/zrl]."
+#: ../../mod/mitem.php:71
+msgid "Unable to update menu element."
+msgstr "Kunde inte uppdatera menyval."
-#: ../../include/enotify.php:225
-#, php-format
-msgid "[Red:Notify] %1$s poked you"
-msgstr "[Red:Meddelande] %1$s puffade dig"
+#: ../../mod/mitem.php:77
+msgid "Menu element added."
+msgstr "Menyval tillagt."
-#: ../../include/enotify.php:226
-#, php-format
-msgid "%1$s, %2$s poked you at %3$s"
-msgstr "%1$s, %2$s puffade dig på %3$s"
+#: ../../mod/mitem.php:81
+msgid "Unable to add menu element."
+msgstr "Kunde inte lägga till menyval."
-#: ../../include/enotify.php:227
-#, php-format
-msgid "%1$s, %2$s [zrl=%2$s]poked you[/zrl]."
-msgstr "%1$s, %2$s [zrl=%2$s]puffade dig[/zrl]."
+#: ../../mod/mitem.php:111 ../../mod/menu.php:136 ../../mod/xchan.php:37
+msgid "Not found."
+msgstr "Hittades inte."
-#: ../../include/enotify.php:243
-#, php-format
-msgid "[Red:Notify] %s tagged your post"
-msgstr "[Red:Meddelande] %s taggade ditt inlägg"
+#: ../../mod/mitem.php:127
+msgid "Manage Menu Elements"
+msgstr "Hantera menyval"
-#: ../../include/enotify.php:244
-#, php-format
-msgid "%1$s, %2$s tagged your post at %3$s"
-msgstr "%1$s, %2$s taggade ditt inlägg på %3$s"
+#: ../../mod/mitem.php:130
+msgid "Edit menu"
+msgstr "Redigera meny"
-#: ../../include/enotify.php:245
-#, php-format
-msgid "%1$s, %2$s tagged [zrl=%3$s]your post[/zrl]"
-msgstr "%1$s, %2$s taggade [zrl=%3$s]ditt inlägg[/zrl]"
+#: ../../mod/mitem.php:133
+msgid "Edit element"
+msgstr "Redigera menyval"
-#: ../../include/enotify.php:257
-msgid "[Red:Notify] Introduction received"
-msgstr "[Red:Meddelande] Presentation mottagen"
+#: ../../mod/mitem.php:134
+msgid "Drop element"
+msgstr "Ta bort menyval"
-#: ../../include/enotify.php:258
-#, php-format
-msgid "%1$s, you've received an new connection request from '%2$s' at %3$s"
-msgstr "%1$s, du har fått en ny kontaktförfrågan från '%2$s' på %3$s"
+#: ../../mod/mitem.php:135
+msgid "New element"
+msgstr "Nytt menyval"
-#: ../../include/enotify.php:259
-#, php-format
-msgid ""
-"%1$s, you've received [zrl=%2$s]a new connection request[/zrl] from %3$s."
-msgstr "%1$s, du har fått [zrl=%2$s]en ny kontaktförfrågan[/zrl] från %3$s."
+#: ../../mod/mitem.php:136
+msgid "Edit this menu container"
+msgstr "Redigera den här menysamlaren"
-#: ../../include/enotify.php:263 ../../include/enotify.php:282
-#, php-format
-msgid "You may visit their profile at %s"
-msgstr "Du kan besöka deras profil på %s"
+#: ../../mod/mitem.php:137
+msgid "Add menu element"
+msgstr "Lägg till menyval"
-#: ../../include/enotify.php:265
-#, php-format
-msgid "Please visit %s to approve or reject the connection request."
-msgstr "Besök %s för att bevilja eller avslå kontaktförfrågan."
+#: ../../mod/mitem.php:138
+msgid "Delete this menu item"
+msgstr "Ta bort det här menyvalet"
-#: ../../include/enotify.php:272
-msgid "[Red:Notify] Friend suggestion received"
-msgstr "[Red:Meddelande] Vänförslag mottaget"
+#: ../../mod/mitem.php:139
+msgid "Edit this menu item"
+msgstr "Redigera det här menyvalet"
-#: ../../include/enotify.php:273
-#, php-format
-msgid "%1$s, you've received a friend suggestion from '%2$s' at %3$s"
-msgstr "%1$s, du har fått ett vänförslag från '%2$s' på %3$s"
+#: ../../mod/mitem.php:158
+msgid "New Menu Element"
+msgstr "Nytt menyval"
-#: ../../include/enotify.php:274
-#, 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 har fått [zrl=%2$s]ett vänförslag[/zrl] angående %3$s från %4$s."
+#: ../../mod/mitem.php:160 ../../mod/mitem.php:203
+msgid "Menu Item Permissions"
+msgstr "Behörighet för menyval"
-#: ../../include/enotify.php:280
-msgid "Name:"
-msgstr "Namn:"
+#: ../../mod/mitem.php:161 ../../mod/mitem.php:204 ../../mod/settings.php:1032
+msgid "(click to open/close)"
+msgstr "(klicka för att öppna/stänga)"
-#: ../../include/enotify.php:281
-msgid "Photo:"
-msgstr "Foto:"
+#: ../../mod/mitem.php:163 ../../mod/mitem.php:207
+msgid "Link text"
+msgstr "Länktext"
-#: ../../include/enotify.php:284
-#, php-format
-msgid "Please visit %s to approve or reject the suggestion."
-msgstr "Besök %s för att bevilja eller avslå förslaget."
+#: ../../mod/mitem.php:164 ../../mod/mitem.php:208
+msgid "URL of link"
+msgstr "Länkens URL"
-#: ../../include/photos.php:89
-#, php-format
-msgid "Image exceeds website size limit of %lu bytes"
-msgstr "Bild överskrider webbplatsens storleksbegränsning på %lu byte"
+#: ../../mod/mitem.php:165 ../../mod/mitem.php:209
+msgid "Use RedMatrix magic-auth if available"
+msgstr "Använd RedMatrix magic-auth om tillgängligt"
-#: ../../include/photos.php:96
-msgid "Image file is empty."
-msgstr "Bildfil är tom."
+#: ../../mod/mitem.php:166 ../../mod/mitem.php:210
+msgid "Open link in new window"
+msgstr "Öppna länk i nytt fönster"
-#: ../../include/photos.php:123 ../../mod/profile_photo.php:147
-msgid "Unable to process image"
-msgstr "Kunde inte bearbeta bild"
+#: ../../mod/mitem.php:168 ../../mod/mitem.php:212
+msgid "Order in list"
+msgstr "Ordningstal i listan"
-#: ../../include/photos.php:186
-msgid "Photo storage failed."
-msgstr "Fotolagring misslyckades."
+#: ../../mod/mitem.php:168 ../../mod/mitem.php:212
+msgid "Higher numbers will sink to bottom of listing"
+msgstr "Större tal sjunker till botten av listan"
-#: ../../include/photos.php:315 ../../mod/photos.php:693
-#: ../../mod/photos.php:1190
-msgid "Upload New Photos"
-msgstr "Ladda upp nya foton"
+#: ../../mod/mitem.php:181
+msgid "Menu item not found."
+msgstr "Menyval hittas inte."
-#: ../../include/contact_widgets.php:14
-#, php-format
-msgid "%d invitation available"
-msgid_plural "%d invitations available"
-msgstr[0] "%d inbjudan tillgänglig"
-msgstr[1] "%d inbjudningar tillgängliga"
+#: ../../mod/mitem.php:190
+msgid "Menu item deleted."
+msgstr "Menyval borttaget."
-#: ../../include/contact_widgets.php:19 ../../mod/admin.php:445
-msgid "Advanced"
-msgstr "Avancerat"
+#: ../../mod/mitem.php:192
+msgid "Menu item could not be deleted."
+msgstr "Menyval kunde inte tas bort."
-#: ../../include/contact_widgets.php:22
-msgid "Find Channels"
-msgstr "Hitta kanaler"
+#: ../../mod/mitem.php:201
+msgid "Edit Menu Element"
+msgstr "Redigera menyval"
-#: ../../include/contact_widgets.php:23
-msgid "Enter name or interest"
-msgstr "Ange namn eller intresse"
+#: ../../mod/mitem.php:213 ../../mod/menu.php:130
+msgid "Modify"
+msgstr "Ändra"
-#: ../../include/contact_widgets.php:24
-msgid "Connect/Follow"
-msgstr "Ta kontakt/följ"
+#: ../../mod/achievements.php:34
+msgid "Some blurb about what to do when you're new here"
+msgstr "Lite text om vad man kan göra som ny här"
-#: ../../include/contact_widgets.php:25
-msgid "Examples: Robert Morgenstein, Fishing"
-msgstr "Exempel: Robert Morgenstein, Fiske"
+#: ../../mod/register.php:44
+msgid "Maximum daily site registrations exceeded. Please try again tomorrow."
+msgstr "Maximalt antal dagliga serverregistreringar överskridet. Försök igen i morgon."
-#: ../../include/contact_widgets.php:26 ../../mod/directory.php:211
-#: ../../mod/directory.php:216 ../../mod/connections.php:390
-msgid "Find"
-msgstr "Sök"
+#: ../../mod/register.php:50
+msgid ""
+"Please indicate acceptance of the Terms of Service. Registration failed."
+msgstr "Välj huruvida du accepterar användarvillkoren. Registrering misslyckades."
-#: ../../include/contact_widgets.php:27 ../../mod/suggest.php:59
-msgid "Channel Suggestions"
-msgstr "Kanalförslag"
+#: ../../mod/register.php:84
+msgid "Passwords do not match."
+msgstr "Lösenorden stämmer inte överens."
-#: ../../include/contact_widgets.php:29
-msgid "Random Profile"
-msgstr "Slumpvald profil"
+#: ../../mod/register.php:117
+msgid ""
+"Registration successful. Please check your email for validation "
+"instructions."
+msgstr "Registrering lyckades. Kontrollera din e-post för valideringsinstruktioner."
-#: ../../include/contact_widgets.php:30
-msgid "Invite Friends"
-msgstr "Bjud in vänner"
+#: ../../mod/register.php:123
+msgid "Your registration is pending approval by the site owner."
+msgstr "Din registrering väntar på att bli godkänd av serverägaren."
-#: ../../include/contact_widgets.php:32
-msgid "Exammple: name=fred and country=iceland"
-msgstr "Exempel: name=fred and country=iceland"
+#: ../../mod/register.php:126
+msgid "Your registration can not be processed."
+msgstr "Din registrering kan inte behandlas."
-#: ../../include/contact_widgets.php:33
-msgid "Advanced Find"
-msgstr "Sök avancerat"
+#: ../../mod/register.php:163
+msgid "Registration on this site/hub is by approval only."
+msgstr "Registrering på den här servern/hubben måste godkännas."
-#: ../../include/contact_widgets.php:125
+#: ../../mod/register.php:164
+msgid "<a href=\"pubsites\">Register at another affiliated site/hub</a>"
+msgstr "<a href=\"pubsites\">Skapa konto på en annan ansluten server/hubb</a>"
+
+#: ../../mod/register.php:174
+msgid ""
+"This site has exceeded the number of allowed daily account registrations. "
+"Please try again tomorrow."
+msgstr "Antal dagliga registreringar som tillåts på den här servern har överskridits. Försök igen i morgon."
+
+#: ../../mod/register.php:185
+msgid "Terms of Service"
+msgstr "användarvillkor"
+
+#: ../../mod/register.php:191
#, php-format
-msgid "%d connection in common"
-msgid_plural "%d connections in common"
-msgstr[0] "%d gemensam kontakt"
-msgstr[1] "%d gemensamma kontakter"
+msgid "I accept the %s for this website"
+msgstr "Jag accepterar den här webbplatsens %s"
-#: ../../include/page_widgets.php:6
-msgid "New Page"
-msgstr "Ny sida"
+#: ../../mod/register.php:193
+#, php-format
+msgid "I am over 13 years of age and accept the %s for this website"
+msgstr "Jag är över 13 år och accepterar den här webbplatsens %s"
-#: ../../include/plugin.php:475 ../../include/plugin.php:477
-msgid "Click here to upgrade."
-msgstr "Klicka här för att uppgradera."
+#: ../../mod/register.php:207 ../../mod/admin.php:413
+msgid "Registration"
+msgstr "Registrering"
-#: ../../include/plugin.php:483
-msgid "This action exceeds the limits set by your subscription plan."
-msgstr "Den här funktionen går utanför vad som anges i ditt avtal."
+#: ../../mod/register.php:212
+msgid "Membership on this site is by invitation only."
+msgstr "Medlemskap på den här servern kan endast fås genom inbjudan."
-#: ../../include/plugin.php:488
-msgid "This action is not available under your subscription plan."
-msgstr "Den här funktionen är inte tillgänglig med ditt avtal."
+#: ../../mod/register.php:213
+msgid "Please enter your invitation code"
+msgstr "Ange din inbjudningskod"
-#: ../../include/items.php:272 ../../mod/like.php:63 ../../mod/profperm.php:23
-#: ../../mod/group.php:68 ../../index.php:350
-msgid "Permission denied"
-msgstr "Behörighet saknas"
+#: ../../mod/register.php:216
+msgid "Your email address"
+msgstr "Din e-postadress"
-#: ../../include/items.php:789
-msgid "(Unknown)"
-msgstr "(Okänt)"
+#: ../../mod/register.php:217
+msgid "Choose a password"
+msgstr "Välj ett lösenord"
-#: ../../include/items.php:3544 ../../mod/thing.php:78 ../../mod/admin.php:159
-#: ../../mod/admin.php:921 ../../mod/admin.php:1124 ../../mod/viewsrc.php:18
-#: ../../mod/home.php:63 ../../mod/display.php:32 ../../mod/filestorage.php:18
-msgid "Item not found."
-msgstr "Posten hittades inte."
+#: ../../mod/register.php:218
+msgid "Please re-enter your password"
+msgstr "Ange lösenordet igen"
-#: ../../include/items.php:3928 ../../mod/group.php:38 ../../mod/group.php:140
-msgid "Collection not found."
-msgstr "Sammanhanget hittades inte."
+#: ../../mod/filer.php:49
+msgid "- select -"
+msgstr "- välj -"
-#: ../../include/items.php:3943
-msgid "Collection is empty."
-msgstr "Sammanhanget är tomt."
+#: ../../mod/profperm.php:29 ../../mod/profperm.php:58
+msgid "Invalid profile identifier."
+msgstr "Ogiltigt profil-ID."
-#: ../../include/items.php:3950
-#, php-format
-msgid "Collection: %s"
-msgstr "Sammanhang: %s"
+#: ../../mod/profperm.php:110
+msgid "Profile Visibility Editor"
+msgstr "Redigera profilsynlighet"
-#: ../../include/items.php:3961
-#, php-format
-msgid "Connection: %s"
-msgstr "Kontakt: %s"
+#: ../../mod/profperm.php:114
+msgid "Click on a contact to add or remove."
+msgstr "Klicka på en kontakt för att lägga till eller ta bort."
-#: ../../include/items.php:3964
-msgid "Connection not found."
-msgstr "Kontakten hittades inte."
+#: ../../mod/profperm.php:123
+msgid "Visible To"
+msgstr "Kan ses av"
-#: ../../include/follow.php:23
-msgid "Channel is blocked on this site."
-msgstr "Kanalen är blockerad på den här servern."
+#: ../../mod/profperm.php:139 ../../mod/connections.php:279
+msgid "All Connections"
+msgstr "Alla kontakter"
-#: ../../include/follow.php:28
-msgid "Channel location missing."
-msgstr "Kanalplats saknas."
+#: ../../mod/sources.php:32
+msgid "Failed to create source. No channel selected."
+msgstr "Misslyckades att skapa källa. Ingen kanal vald."
-#: ../../include/follow.php:54
-msgid "Response from remote channel was incomplete."
-msgstr "Svar från den andra kanalen var ofullständigt."
+#: ../../mod/sources.php:45
+msgid "Source created."
+msgstr "Källa skapad."
-#: ../../include/follow.php:85
-msgid "Channel was deleted and no longer exists."
-msgstr "Kanalen har tagits bort och finns inte längre."
+#: ../../mod/sources.php:57
+msgid "Source updated."
+msgstr "Källa uppdaterad."
-#: ../../include/follow.php:132
-msgid "Channel discovery failed."
-msgstr "Kanalsökning misslyckades."
+#: ../../mod/sources.php:82
+msgid "*"
+msgstr "*"
-#: ../../include/follow.php:149
-msgid "local account not found."
-msgstr "hittade inte lokalt konto."
+#: ../../mod/sources.php:89
+msgid "Manage remote sources of content for your channel."
+msgstr "Hantera fjärrkällor med innehåll för din kanal."
-#: ../../include/follow.php:158
-msgid "Cannot connect to yourself."
-msgstr "Du kan inte kontakta dig själv."
+#: ../../mod/sources.php:90 ../../mod/sources.php:100
+msgid "New Source"
+msgstr "Ny källa"
-#: ../../include/security.php:295
+#: ../../mod/sources.php:101 ../../mod/sources.php:133
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 "Formulärets kontrollkod var inte korrekt. Antagligen beror det på att formuläret har varit öppet för länge (> 3 timmar) innan det skickades."
+"Import all or selected content from the following channel into this channel "
+"and distribute it according to your channel settings."
+msgstr "Importera allt eller valt innehåll från följande kanal till den här kanalen och distribuera det enligt dina kanalinställningar."
-#: ../../include/oembed.php:171
-msgid "Embedded content"
-msgstr "Inbäddat innehåll"
+#: ../../mod/sources.php:102 ../../mod/sources.php:134
+msgid "Only import content with these words (one per line)"
+msgstr "Importera endast innehåll med de här orden (ett per rad)"
-#: ../../include/oembed.php:180
-msgid "Embedding disabled"
-msgstr "Inbäddning inaktiverat"
+#: ../../mod/sources.php:102 ../../mod/sources.php:134
+msgid "Leave blank to import all public content"
+msgstr "Lämna blankt för att importera allt offentligt innehåll"
-#: ../../include/permissions.php:13
-msgid "Can view my \"public\" stream and posts"
-msgstr "Kan se mina \"offentliga\" strömmar och inlägg"
+#: ../../mod/sources.php:103 ../../mod/sources.php:137
+#: ../../mod/new_channel.php:112
+msgid "Channel Name"
+msgstr "Kanalnamn"
-#: ../../include/permissions.php:14
-msgid "Can view my \"public\" channel profile"
-msgstr "Kan se min \"offentliga\" kanalprofil"
+#: ../../mod/sources.php:123 ../../mod/sources.php:150
+msgid "Source not found."
+msgstr "Källa hittades inte."
-#: ../../include/permissions.php:15
-msgid "Can view my \"public\" photo albums"
-msgstr "Kan se mina \"offentliga\" fotoalbum"
+#: ../../mod/sources.php:130
+msgid "Edit Source"
+msgstr "Redigera källa"
-#: ../../include/permissions.php:16
-msgid "Can view my \"public\" address book"
-msgstr "Kan se min \"offentliga\" adressbok"
+#: ../../mod/sources.php:131
+msgid "Delete Source"
+msgstr "Ta bort källa"
-#: ../../include/permissions.php:17
-msgid "Can view my \"public\" file storage"
-msgstr "Kan se mitt \"offentliga\" filutrymme"
+#: ../../mod/sources.php:158
+msgid "Source removed"
+msgstr "Källa borttagen"
-#: ../../include/permissions.php:18
-msgid "Can view my \"public\" pages"
-msgstr "Kan se mina \"offentliga\" sidor"
+#: ../../mod/sources.php:160
+msgid "Unable to remove source."
+msgstr "Kunde inte ta bort källa."
-#: ../../include/permissions.php:21
-msgid "Can send me their channel stream and posts"
-msgstr "Kan skicka sina kanalströmmar och inlägg till mig"
+#: ../../mod/poke.php:159
+msgid "Poke/Prod"
+msgstr "Puffa/stöt till"
-#: ../../include/permissions.php:22
-msgid "Can post on my channel page (\"wall\")"
-msgstr "Kan posta inlägg på min kanalsida (\"vägg\")"
+#: ../../mod/poke.php:160
+msgid "poke, prod or do other things to somebody"
+msgstr "puffa, stöt till eller gör andra saker mot någon"
-#: ../../include/permissions.php:23
-msgid "Can comment on my posts"
-msgstr "Kan kommentera mina inlägg"
+#: ../../mod/poke.php:161
+msgid "Recipient"
+msgstr "Mottagare"
-#: ../../include/permissions.php:24
-msgid "Can send me private mail messages"
-msgstr "Kan skicka privata meddelanden till mig"
+#: ../../mod/poke.php:162
+msgid "Choose what you wish to do to recipient"
+msgstr "Välj vad du önskar göra med mottagaren"
-#: ../../include/permissions.php:25
-msgid "Can post photos to my photo albums"
-msgstr "Kan lägga till foton i mitt fotoalbum"
+#: ../../mod/poke.php:165
+msgid "Make this post private"
+msgstr "Gör det här inlägget privat"
-#: ../../include/permissions.php:26
-msgid "Can forward to all my channel contacts via post @mentions"
-msgstr "Kan vidarebefordra till alla mina kanalkontakter genom @omnämnanden"
+#: ../../mod/api.php:76 ../../mod/api.php:102
+msgid "Authorize application connection"
+msgstr "Tillåt anslutning av applikation"
-#: ../../include/permissions.php:26
-msgid "Advanced - useful for creating group forum channels"
-msgstr "Avancerat - användbart för att skapa kanaler för gruppforum"
+#: ../../mod/api.php:77
+msgid "Return to your app and insert this Securty Code:"
+msgstr "Återgå till din applikation och ange den här säkerhetskoden:"
-#: ../../include/permissions.php:27
-msgid "Can chat with me (when available)"
-msgstr "Kan chatta med mig (när tillgänglig)"
+#: ../../mod/api.php:89
+msgid "Please login to continue."
+msgstr "Logga in för att fortsätta."
-#: ../../include/permissions.php:28
-msgid "Can write to my \"public\" file storage"
-msgstr "Har skrivrättigheter i mitt \"offentliga\" filutrymme"
+#: ../../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 "Vill du låta den här applikationen få tillgång till dina inlägg och kontakter, och/eller skapa nya inlägg åt dig?"
-#: ../../include/permissions.php:29
-msgid "Can edit my \"public\" pages"
-msgstr "Kan redigera mina \"offentliga\" sidor"
+#: ../../mod/api.php:105 ../../mod/settings.php:937 ../../mod/settings.php:942
+#: ../../mod/settings.php:1025 ../../mod/profiles.php:591
+#: ../../mod/admin.php:392
+msgid "Yes"
+msgstr "Ja"
-#: ../../include/permissions.php:31
-msgid "Can source my \"public\" posts in derived channels"
-msgstr "Kan använda mina \"offentliga\" inlägg i kanaler nedströms"
+#: ../../mod/api.php:106 ../../mod/settings.php:937 ../../mod/settings.php:942
+#: ../../mod/settings.php:1025 ../../mod/profiles.php:592
+#: ../../mod/admin.php:390
+msgid "No"
+msgstr "Nej"
-#: ../../include/permissions.php:31
-msgid "Somewhat advanced - very useful in open communities"
-msgstr "Ganska avancerat - väldigt användbart i öppna gemenskaper"
+#: ../../mod/search.php:13 ../../mod/display.php:9
+#: ../../mod/viewconnections.php:17 ../../mod/directory.php:15
+#: ../../mod/photos.php:458
+msgid "Public access denied."
+msgstr "Offentlig behörighet saknas."
-#: ../../include/permissions.php:32
-msgid "Can send me bookmarks"
-msgstr "Kan skicka bokmärken till mig"
+#: ../../mod/attach.php:9
+msgid "Item not available."
+msgstr "Post inte tillgänglig."
-#: ../../include/permissions.php:33
-msgid "Can administer my channel resources"
-msgstr "Kan administrera mina kanalresurser"
+#: ../../mod/probe.php:23 ../../mod/probe.php:29
+#, php-format
+msgid "Fetching URL returns error: %1$s"
+msgstr "Hämtning av URL returnerade fel: %1$s"
-#: ../../include/permissions.php:33
-msgid ""
-"Extremely advanced. Leave this alone unless you know what you are doing"
-msgstr "Extremt avancerat. Låt detta vara om du inte vet vad du gör"
+#: ../../mod/block.php:27 ../../mod/page.php:33
+msgid "Invalid item."
+msgstr "Ogiltig post."
-#: ../../include/zot.php:583
-msgid "Invalid data packet"
-msgstr "Ogiltigt datapaket"
+#: ../../mod/block.php:39 ../../mod/wall_upload.php:29 ../../mod/page.php:45
+msgid "Channel not found."
+msgstr "Kanalen hittas inte."
-#: ../../include/zot.php:593
-msgid "Unable to verify channel signature"
-msgstr "Kunde inte bekräfta kanalsignatur"
+#: ../../mod/block.php:75 ../../mod/display.php:102 ../../mod/help.php:70
+#: ../../mod/page.php:81 ../../index.php:241
+msgid "Page not found."
+msgstr "Sidan hittas inte."
-#: ../../include/zot.php:790
+#: ../../mod/subthread.php:103
#, php-format
-msgid "Unable to verify site signature for %s"
-msgstr "Kunde inte bekräfta signatur för servern %s"
+msgid "%1$s is following %2$s's %3$s"
+msgstr "%1$s följer %2$ss %3$s"
-#: ../../mod/common.php:10
-msgid "No channel."
-msgstr "Ingen kanal."
+#: ../../mod/blocks.php:99
+msgid "Block Name"
+msgstr "Blocknamn"
-#: ../../mod/common.php:39
-msgid "Common connections"
-msgstr "Gemensamma kontakter"
+#: ../../mod/setup.php:166
+msgid "Red Matrix Server - Setup"
+msgstr "Red Matrix-server - inställningar"
-#: ../../mod/common.php:44
-msgid "No connections in common."
-msgstr "Inga gemensamma kontakter."
+#: ../../mod/setup.php:172
+msgid "Could not connect to database."
+msgstr "Kunde inte ansluta till databasen."
-#: ../../mod/events.php:72
-msgid "Event title and start time are required."
-msgstr "Händelsen behöver titel och starttid."
+#: ../../mod/setup.php:176
+msgid ""
+"Could not connect to specified site URL. Possible SSL certificate or DNS "
+"issue."
+msgstr "Kunde inte ansluta till den angivna server-URL:en. Möjligt problem med SSL-certifikat eller DNS."
-#: ../../mod/events.php:290
-msgid "l, F j"
-msgstr "l, j F"
+#: ../../mod/setup.php:183
+msgid "Could not create table."
+msgstr "Kunde inte skapa tabell."
-#: ../../mod/events.php:312
-msgid "Edit event"
-msgstr "Redigera händelse"
+#: ../../mod/setup.php:189
+msgid "Your site database has been installed."
+msgstr "Din serverdatabas har installerats."
-#: ../../mod/events.php:358
-msgid "Create New Event"
-msgstr "Skapa ny händelse"
+#: ../../mod/setup.php:194
+msgid ""
+"You may need to import the file \"install/schema_xxx.sql\" manually using a "
+"database client."
+msgstr "Du kan behöva importera filen \"install/schema_xxx.sql\" manuellt med en databasklient."
-#: ../../mod/events.php:359
-msgid "Previous"
-msgstr "Föregående"
+#: ../../mod/setup.php:195 ../../mod/setup.php:264 ../../mod/setup.php:663
+msgid "Please see the file \"install/INSTALL.txt\"."
+msgstr "Se filen \"install/INSTALL.txt\"."
+
+#: ../../mod/setup.php:261
+msgid "System check"
+msgstr "Systemkontroll"
-#: ../../mod/events.php:360 ../../mod/setup.php:261
+#: ../../mod/setup.php:265 ../../mod/events.php:445 ../../mod/photos.php:868
msgid "Next"
msgstr "Nästa"
-#: ../../mod/events.php:431
-msgid "hour:minute"
-msgstr "timme:minut"
+#: ../../mod/setup.php:266
+msgid "Check again"
+msgstr "Kontrollera igen"
-#: ../../mod/events.php:450
-msgid "Event details"
-msgstr "Detaljer för händelse"
+#: ../../mod/setup.php:289
+msgid "Database connection"
+msgstr "Databasanslutning"
-#: ../../mod/events.php:451
-#, php-format
-msgid "Format is %s %s. Starting date and Title are required."
-msgstr "Formatet är %s %s. Startdatum och titel behövs."
+#: ../../mod/setup.php:290
+msgid ""
+"In order to install Red Matrix we need to know how to connect to your "
+"database."
+msgstr "För att kunna installera Red Matrix behöver vi veta hur databasen ska anslutas."
-#: ../../mod/events.php:453
-msgid "Event Starts:"
-msgstr "Händelsen börjar:"
+#: ../../mod/setup.php:291
+msgid ""
+"Please contact your hosting provider or site administrator if you have "
+"questions about these settings."
+msgstr "Kontakta din servervärd eller administratör om du har frågor om de här inställningarna."
-#: ../../mod/events.php:453 ../../mod/events.php:467
-msgid "Required"
-msgstr "Behövs"
+#: ../../mod/setup.php:292
+msgid ""
+"The database you specify below should already exist. If it does not, please "
+"create it before continuing."
+msgstr "Databasen du anger nedan måste finnas. Om den inte gör det, skapa den innan du fortsätter."
-#: ../../mod/events.php:456
-msgid "Finish date/time is not known or not relevant"
-msgstr "Slutdatum/tid är okänt eller inte relevant"
+#: ../../mod/setup.php:296
+msgid "Database Server Name"
+msgstr "Databasserver"
-#: ../../mod/events.php:458
-msgid "Event Finishes:"
-msgstr "Händelsen slutar:"
+#: ../../mod/setup.php:296
+msgid "Default is localhost"
+msgstr "Standard är localhost"
-#: ../../mod/events.php:461
-msgid "Adjust for viewer timezone"
-msgstr "Justera för betraktarens tidszon"
+#: ../../mod/setup.php:297
+msgid "Database Port"
+msgstr "Databasport"
-#: ../../mod/events.php:463
-msgid "Description:"
-msgstr "Beskrivning:"
+#: ../../mod/setup.php:297
+msgid "Communication port number - use 0 for default"
+msgstr "Kommunikationsportnummer - använd 0 för standardinställning"
-#: ../../mod/events.php:467
-msgid "Title:"
-msgstr "Titel:"
+#: ../../mod/setup.php:298
+msgid "Database Login Name"
+msgstr "Loginnamn till databas"
-#: ../../mod/events.php:469
-msgid "Share this event"
-msgstr "Dela den här händelsen"
+#: ../../mod/setup.php:299
+msgid "Database Login Password"
+msgstr "Lösenord till databas"
-#: ../../mod/thing.php:98
-msgid "Thing updated"
-msgstr "Föremål uppdaterat"
+#: ../../mod/setup.php:300
+msgid "Database Name"
+msgstr "Databasnamn"
-#: ../../mod/thing.php:158
-msgid "Object store: failed"
-msgstr "Objektlagring: misslyckades"
+#: ../../mod/setup.php:301
+msgid "Database Type"
+msgstr "Databastyp"
-#: ../../mod/thing.php:162
-msgid "Thing added"
-msgstr "Föremål tillagt"
+#: ../../mod/setup.php:303 ../../mod/setup.php:347
+msgid "Site administrator email address"
+msgstr "Serveradministratörens e-postadress"
-#: ../../mod/thing.php:182
-#, php-format
-msgid "OBJ: %1$s %2$s %3$s"
-msgstr "OBJ: %1$s %2$s %3$s"
+#: ../../mod/setup.php:303 ../../mod/setup.php:347
+msgid ""
+"Your account email address must match this in order to use the web admin "
+"panel."
+msgstr "Ditt kontos e-postadress måste stämma med den här för att webbgränssnittet för administration ska kunna användas."
-#: ../../mod/thing.php:234
-msgid "Show Thing"
-msgstr "Visa föremål"
+#: ../../mod/setup.php:304 ../../mod/setup.php:349
+msgid "Website URL"
+msgstr "Webbplatsens URL"
-#: ../../mod/thing.php:241
-msgid "item not found."
-msgstr "föremål hittades inte."
+#: ../../mod/setup.php:304 ../../mod/setup.php:349
+msgid "Please use SSL (https) URL if available."
+msgstr "Ange en URL med SSL (https) om tillgängligt"
-#: ../../mod/thing.php:269
-msgid "Edit Thing"
-msgstr "Redigera föremål"
+#: ../../mod/setup.php:307 ../../mod/setup.php:352
+msgid "Please select a default timezone for your website"
+msgstr "Välj en standardtidszon för din webbplats"
-#: ../../mod/thing.php:271 ../../mod/thing.php:318
-msgid "Select a profile"
-msgstr "Välj en profil"
+#: ../../mod/setup.php:335
+msgid "Site settings"
+msgstr "Serverinställningar"
-#: ../../mod/thing.php:273 ../../mod/thing.php:320
-msgid "Select a category of stuff. e.g. I ______ something"
-msgstr "Välj en kategori, t.ex. Jag ______ någonting"
+#: ../../mod/setup.php:395
+msgid "Could not find a command line version of PHP in the web server PATH."
+msgstr "Kunde inte hitta en kommandoradsversion av PHP i webbserverns PATH."
-#: ../../mod/thing.php:275 ../../mod/thing.php:321
-msgid "Post an activity"
-msgstr "Posta en aktivitet"
+#: ../../mod/setup.php:396
+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 "Om du inte har en kommandoradsversion av PHP installerad på servern kommer du inte att kunna köra bakgrundshämtning via cron."
-#: ../../mod/thing.php:275 ../../mod/thing.php:321
-msgid "Only sends to viewers of the applicable profile"
-msgstr "Skickar bara till de som tittar på den aktuella profilen"
+#: ../../mod/setup.php:400
+msgid "PHP executable path"
+msgstr "Sökväg till PHP-programmet"
-#: ../../mod/thing.php:277 ../../mod/thing.php:323
-msgid "Name of thing e.g. something"
-msgstr "Namn på föremål, t.ex. någonting"
+#: ../../mod/setup.php:400
+msgid ""
+"Enter full path to php executable. You can leave this blank to continue the "
+"installation."
+msgstr "Ange hela sökvägen till php-programfilen. Du kan lämna det här blankt för att fortsätta installationen."
-#: ../../mod/thing.php:279 ../../mod/thing.php:324
-msgid "URL of thing (optional)"
-msgstr "URL för föremål (frivilligt)"
+#: ../../mod/setup.php:405
+msgid "Command line PHP"
+msgstr "Kommandorads-PHP"
-#: ../../mod/thing.php:281 ../../mod/thing.php:325
-msgid "URL for photo of thing (optional)"
-msgstr "URL för foto på föremål (frivilligt)"
+#: ../../mod/setup.php:414
+msgid ""
+"The command line version of PHP on your system does not have "
+"\"register_argc_argv\" enabled."
+msgstr "Kommandoradsversionen av PHP på ditt system har inte \"register_argc_argv\" aktiverat."
-#: ../../mod/thing.php:316
-msgid "Add Thing to your Profile"
-msgstr "Lägg till föremål till din profil"
+#: ../../mod/setup.php:415
+msgid "This is required for message delivery to work."
+msgstr "Det här behövs för att meddelandeleverans ska fungera."
-#: ../../mod/invite.php:25
-msgid "Total invitation limit exceeded."
-msgstr "Gränsen för totalt antal inbjudningar överskriden."
+#: ../../mod/setup.php:417
+msgid "PHP register_argc_argv"
+msgstr "PHP register_argc_argv"
-#: ../../mod/invite.php:49
-#, php-format
-msgid "%s : Not a valid email address."
-msgstr "%s: Inte en giltig e-postadress."
+#: ../../mod/setup.php:438
+msgid ""
+"Error: the \"openssl_pkey_new\" function on this system is not able to "
+"generate encryption keys"
+msgstr "Fel: \"openssl_pkey_new\"-funktionen på det här systemet kan inte generera kryptonycklar"
-#: ../../mod/invite.php:76
-msgid "Please join us on Red"
-msgstr "GÃ¥ med oss i Red"
+#: ../../mod/setup.php:439
+msgid ""
+"If running under Windows, please see "
+"\"http://www.php.net/manual/en/openssl.installation.php\"."
+msgstr "Om systemet kör Windows, se \"http://www.php.net/manual/en/openssl.installation.php\"."
-#: ../../mod/invite.php:87
-msgid "Invitation limit exceeded. Please contact your site administrator."
-msgstr "Inbjudningsgränsen överskriden. Kontakta din serveradministratör."
+#: ../../mod/setup.php:441
+msgid "Generate encryption keys"
+msgstr "Generera kryptonycklar"
-#: ../../mod/invite.php:92
-#, php-format
-msgid "%s : Message delivery failed."
-msgstr "%s : Leverans av meddelande misslyckades."
+#: ../../mod/setup.php:448
+msgid "libCurl PHP module"
+msgstr "PHP-modulen libCurl"
-#: ../../mod/invite.php:96
-#, php-format
-msgid "%d message sent."
-msgid_plural "%d messages sent."
-msgstr[0] "%d meddelande sänt."
-msgstr[1] "%d meddelanden sända."
+#: ../../mod/setup.php:449
+msgid "GD graphics PHP module"
+msgstr "PHP-modulen GD graphics"
-#: ../../mod/invite.php:115
-msgid "You have no more invitations available"
-msgstr "Du har inga fler inbjudningar kvar"
+#: ../../mod/setup.php:450
+msgid "OpenSSL PHP module"
+msgstr "PHP-modulen OpenSSL"
-#: ../../mod/invite.php:141
-msgid "Send invitations"
-msgstr "Skicka inbjudan"
+#: ../../mod/setup.php:451
+msgid "mysqli or postgres PHP module"
+msgstr "PHP-modulen mysqli eller postgres"
-#: ../../mod/invite.php:142
-msgid "Enter email addresses, one per line:"
-msgstr "Ange e-postadresser, en per rad:"
+#: ../../mod/setup.php:452
+msgid "mb_string PHP module"
+msgstr "PHP-modulen mb_string"
-#: ../../mod/invite.php:143 ../../mod/mail.php:216 ../../mod/mail.php:328
-msgid "Your message:"
-msgstr "Ditt meddelande:"
+#: ../../mod/setup.php:453
+msgid "mcrypt PHP module"
+msgstr "PHP-modulen mcrypt"
+
+#: ../../mod/setup.php:458 ../../mod/setup.php:460
+msgid "Apache mod_rewrite module"
+msgstr "Apache-modulen mod_rewrite"
-#: ../../mod/invite.php:144
+#: ../../mod/setup.php:458
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 är hjärtligt inbjuden att gå med mig och några andra nära vänner i Red Matrix - ett revolutionärt nytt decentraliserat kommunikations- och informationsverktyg."
+"Error: Apache webserver mod-rewrite module is required but not installed."
+msgstr "Fel: Apache-webbserverns mod-rewrite-modul krävs men är inte installerad."
+
+#: ../../mod/setup.php:464 ../../mod/setup.php:467
+msgid "proc_open"
+msgstr "proc_open"
-#: ../../mod/invite.php:146
-msgid "You will need to supply this invitation code: $invite_code"
-msgstr "Du kommer att behöva ange den här inbjudningskoden: $invite_code"
+#: ../../mod/setup.php:464
+msgid ""
+"Error: proc_open is required but is either not installed or has been "
+"disabled in php.ini"
+msgstr "Fel: proc_open krävs men är antingen inte installerad eller har inaktiverats i php.ini"
-#: ../../mod/invite.php:147
-msgid "Please visit my channel at"
-msgstr "Besök min kanal på"
+#: ../../mod/setup.php:472
+msgid "Error: libCURL PHP module required but not installed."
+msgstr "Fel: PHP-modulen libCURL krävs men är inte installerad."
-#: ../../mod/invite.php:151
+#: ../../mod/setup.php:476
msgid ""
-"Once you have registered (on ANY Red Matrix site - they are all inter-"
-"connected), please connect with my Red Matrix channel address:"
-msgstr "När du har registrerat dig (på NÅGON Red Matrix-server - alla sitter ihop), så lägg till min Red Matrix-kanaladress:"
+"Error: GD graphics PHP module with JPEG support required but not installed."
+msgstr "Fel: PHP-modulen GD graphics med JPEG-stöd krävs men är inte installerad."
-#: ../../mod/invite.php:153
-msgid "Click the [Register] link on the following page to join."
-msgstr "Klicka på [Registrera]-länken på följande sida för att gå med."
+#: ../../mod/setup.php:480
+msgid "Error: openssl PHP module required but not installed."
+msgstr "Fel: PHP-modulen openssl krävs men är inte installerad."
-#: ../../mod/invite.php:155
+#: ../../mod/setup.php:484
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 mer information om Red Matrix-projektet och varför det har potential att förändra Internet som vi känner det, besök http://getzot.com"
+"Error: mysqli or postgres PHP module required but neither are installed."
+msgstr "Fel: en av PHP-modulerna mysqli eller postgres krävs men är inte installerad."
-#: ../../mod/mail.php:33
-msgid "Unable to lookup recipient."
-msgstr "Kunde inte hitta mottagare."
+#: ../../mod/setup.php:488
+msgid "Error: mb_string PHP module required but not installed."
+msgstr "Fel: PHP-modulen mb_string krävs men är inte installerad."
-#: ../../mod/mail.php:41
-msgid "Unable to communicate with requested channel."
-msgstr "Kunde inte kommunicera med den begärda kanalen."
+#: ../../mod/setup.php:492
+msgid "Error: mcrypt PHP module required but not installed."
+msgstr "Fel: PHP-modulen mcrypt krävs men är inte installerad."
-#: ../../mod/mail.php:48
-msgid "Cannot verify requested channel."
-msgstr "Kan inte bekräfta den begärda kanalen."
+#: ../../mod/setup.php:508
+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 "Webbinstallationen måste kunna skapa filen \".htconfig.php\" i toppkatalogen på din webbserver men kan inte göra det."
-#: ../../mod/mail.php:74
-msgid "Selected channel has private message restrictions. Send failed."
-msgstr "Den valda kanalen har restriktioner för privata meddelanden. Misslyckades att skicka."
+#: ../../mod/setup.php:509
+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 "Det är ofta en behörighetsinställning som gör att webbservern inte kan skriva filer i din katalog - även om du kan."
-#: ../../mod/mail.php:121 ../../mod/message.php:31
-msgid "Messages"
-msgstr "Meddelanden"
+#: ../../mod/setup.php:510
+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 "Efter den här proceduren kommer vi att ge dig en text att spara i filen .htconfig.php i Reds toppkatalog."
-#: ../../mod/mail.php:132
-msgid "Message deleted."
-msgstr "Meddelande borttaget."
+#: ../../mod/setup.php:511
+msgid ""
+"You can alternatively skip this procedure and perform a manual installation."
+" Please see the file \"install/INSTALL.txt\" for instructions."
+msgstr "Alternativt kan du hoppa över den här proceduren och göra en manuell installation. För instruktioner, se filen \"install/INSTALL.txt\"."
-#: ../../mod/mail.php:149
-msgid "Message recalled."
-msgstr "Meddelande återkallat."
+#: ../../mod/setup.php:514
+msgid ".htconfig.php is writable"
+msgstr ".htconfig.php är skrivbar"
-#: ../../mod/mail.php:206
-msgid "Send Private Message"
-msgstr "Skicka privat meddelande."
+#: ../../mod/setup.php:524
+msgid ""
+"Red uses the Smarty3 template engine to render its web views. Smarty3 "
+"compiles templates to PHP to speed up rendering."
+msgstr "Red använder mallmotorn Smarty3 för att rendera webbvyerna. Smarty3 kompilerar mallar till PHP för att snabba upp renderingen."
-#: ../../mod/mail.php:207 ../../mod/mail.php:323
-msgid "To:"
-msgstr "Till:"
+#: ../../mod/setup.php:525
+#, php-format
+msgid ""
+"In order to store these compiled templates, the web server needs to have "
+"write access to the directory %s under the Red top level folder."
+msgstr "För att spara de här kompilerade mallarna behöver webbservern ha skrivrättigheter till katalogen %s under Reds toppkatalog."
-#: ../../mod/mail.php:212 ../../mod/mail.php:325
-msgid "Subject:"
-msgstr "Ämne:"
+#: ../../mod/setup.php:526 ../../mod/setup.php:544
+msgid ""
+"Please ensure that the user that your web server runs as (e.g. www-data) has"
+" write access to this folder."
+msgstr "Försäkra dig om att användaren som din webbserver kör som (t.ex. www-data) har skrivrättigheter till den här katalogen."
-#: ../../mod/mail.php:249
-msgid "Message not found."
-msgstr "Meddelandet hittades inte."
+#: ../../mod/setup.php:527
+#, php-format
+msgid ""
+"Note: as a security measure, you should give the web server write access to "
+"%s only--not the template files (.tpl) that it contains."
+msgstr "Observera: som en säkerhetsåtgärd bör du ge webbservern skrivrättighet endast för %s - inte för mallfilerna (.tpl) som finns där."
-#: ../../mod/mail.php:292 ../../mod/message.php:72
-msgid "Delete message"
-msgstr "Ta bort meddelande"
+#: ../../mod/setup.php:530
+#, php-format
+msgid "%s is writable"
+msgstr "%s är skrivbar"
-#: ../../mod/mail.php:293
-msgid "Recall message"
-msgstr "Ã…terkalla meddelande"
+#: ../../mod/setup.php:543
+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 använder katalogen store för att spara uppladdade filer. Webbservern behöver ha skrivrättigheter till katalogen store under Reds toppkatalog."
-#: ../../mod/mail.php:295
-msgid "Message has been recalled."
-msgstr "Meddelandet har återkallats."
+#: ../../mod/setup.php:547
+msgid "store is writable"
+msgstr "store är skrivbar"
-#: ../../mod/mail.php:312
-msgid "Private Conversation"
-msgstr "Privat konversation"
+#: ../../mod/setup.php:577
+msgid ""
+"SSL certificate cannot be validated. Fix certificate or disable https access"
+" to this site."
+msgstr "SSL-certifikatet kan inte valideras. Fixa certifikatet eller inaktivera https-åtkomst till den här servern."
-#: ../../mod/mail.php:316
-msgid "Delete conversation"
-msgstr "Ta bort konversation"
+#: ../../mod/setup.php:578
+msgid ""
+"If you have https access to your website or allow connections to TCP port "
+"443 (the https: port), you MUST use a browser-valid certificate. You MUST "
+"NOT use self-signed certificates!"
+msgstr "Om du har https-åtkomst till din webbplats eller tillåter anslutningar till TCP-port 443 (https-porten) MÅSTE du använda ett certifikat som kan verifieras av webbläsare. Du FÅR INTE använda självsignerade certifikat!"
-#: ../../mod/mail.php:318
+#: ../../mod/setup.php:579
msgid ""
-"No secure communications available. You <strong>may</strong> be able to "
-"respond from the sender's profile page."
-msgstr "Ingen säker kommunikationskanal tillgänglig. Du kan <strong>möjligtvis</strong> svara från avsändarens profilsida."
+"This restriction is incorporated because public posts from you may for "
+"example contain references to images on your own hub."
+msgstr "Restriktionen finns eftersom offentliga inlägg från dig kan innehålla till exempel referenser till bilder på din egen hubb."
-#: ../../mod/mail.php:322
-msgid "Send Reply"
-msgstr "Skicka svar"
+#: ../../mod/setup.php:580
+msgid ""
+"If your certificate is not recognized, members of other sites (who may "
+"themselves have valid certificates) will get a warning message on their own "
+"site complaining about security issues."
+msgstr "Om ditt certifikat inte känns igen kommer medlemmar på andra webbplatser (som själv kan ha giltiga certifikat) att få en varning på sin egen webbplats om säkerhetsproblem."
+
+#: ../../mod/setup.php:581
+msgid ""
+"This can cause usability issues elsewhere (not just on your own site) so we "
+"must insist on this requirement."
+msgstr "Detta kan orsaka problem med användbarheten (inte bara på din egen server) så vi måste trycka på det här kravet."
+
+#: ../../mod/setup.php:582
+msgid ""
+"Providers are available that issue free certificates which are browser-"
+"valid."
+msgstr "Det finns leverantörer som utfärdar gratis certifikat som känns igen av webbläsare."
+
+#: ../../mod/setup.php:584
+msgid "SSL certificate validation"
+msgstr "SSL-certifikatvalidering"
+
+#: ../../mod/setup.php:590
+msgid ""
+"Url rewrite in .htaccess is not working. Check your server "
+"configuration.Test: "
+msgstr "Url rewrite i .htaccess fungerar inte. Kolla din serverkonfiguration. Test: "
+
+#: ../../mod/setup.php:592
+msgid "Url rewrite is working"
+msgstr "URL rewrite fungerar"
+
+#: ../../mod/setup.php:602
+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 "Databaskonfigurationsfilen \".htconfig.php\" kunde inte skrivas. Använd den bifogade texten för att skapa en konfigurationsfil i din webbservers rot."
-#: ../../mod/settings.php:71
+#: ../../mod/setup.php:626
+msgid "Errors encountered creating database tables."
+msgstr "Fel inträffade när databastabeller skulle skapas."
+
+#: ../../mod/setup.php:661
+msgid "<h1>What next</h1>"
+msgstr "<h1>Nästa steg</h1>"
+
+#: ../../mod/setup.php:662
+msgid ""
+"IMPORTANT: You will need to [manually] setup a scheduled task for the "
+"poller."
+msgstr "VIKTIGT: Du behöver ställa in en schemalagd för hämtningsrutinen [manuellt]"
+
+#: ../../mod/settings.php:73
msgid "Name is required"
msgstr "Namn är obligatoriskt"
-#: ../../mod/settings.php:75
+#: ../../mod/settings.php:77
msgid "Key and Secret are required"
msgstr "Nyckel och kod är obligatoriska"
-#: ../../mod/settings.php:79 ../../mod/settings.php:541
-msgid "Update"
-msgstr "Uppdatera"
-
-#: ../../mod/settings.php:195
+#: ../../mod/settings.php:211
msgid "Passwords do not match. Password unchanged."
msgstr "Lösenorden stämmer inte överens. Lösenordet har inte ändrats."
-#: ../../mod/settings.php:199
+#: ../../mod/settings.php:215
msgid "Empty passwords are not allowed. Password unchanged."
msgstr "Tomma lösenord tillåts inte. Lösenordet har inte ändrats."
-#: ../../mod/settings.php:212
+#: ../../mod/settings.php:229
msgid "Password changed."
msgstr "Lösenordet ändrat."
-#: ../../mod/settings.php:214
+#: ../../mod/settings.php:231
msgid "Password update failed. Please try again."
msgstr "Lösenordsuppdatering misslyckades. Försök igen."
-#: ../../mod/settings.php:228
+#: ../../mod/settings.php:245
msgid "Not valid email."
msgstr "Inte en giltig e-postadress."
-#: ../../mod/settings.php:231
+#: ../../mod/settings.php:248
msgid "Protected email address. Cannot change to that email."
msgstr "Skyddad e-postadress. Kan inte ändra till den."
-#: ../../mod/settings.php:240
+#: ../../mod/settings.php:257
msgid "System failure storing new email. Please try again."
msgstr "Systemfel när ny e-postadress skulle sparas. Försök igen."
-#: ../../mod/settings.php:443
+#: ../../mod/settings.php:493
msgid "Settings updated."
msgstr "Inställningar uppdaterade."
-#: ../../mod/settings.php:514 ../../mod/settings.php:540
-#: ../../mod/settings.php:576
+#: ../../mod/settings.php:562 ../../mod/settings.php:588
+#: ../../mod/settings.php:624
msgid "Add application"
msgstr "Lägg till applikation"
-#: ../../mod/settings.php:517 ../../mod/settings.php:543
-#: ../../mod/admin.php:891
-msgid "Name"
-msgstr "Namn"
-
-#: ../../mod/settings.php:517
+#: ../../mod/settings.php:565
msgid "Name of application"
msgstr "Applikationens namn"
-#: ../../mod/settings.php:518 ../../mod/settings.php:544
+#: ../../mod/settings.php:566 ../../mod/settings.php:592
msgid "Consumer Key"
msgstr "Nyckel för konsument"
-#: ../../mod/settings.php:518 ../../mod/settings.php:519
+#: ../../mod/settings.php:566 ../../mod/settings.php:567
msgid "Automatically generated - change if desired. Max length 20"
msgstr "Automatiskt genererad - ändra om så önskas. Maxlängd 20"
-#: ../../mod/settings.php:519 ../../mod/settings.php:545
+#: ../../mod/settings.php:567 ../../mod/settings.php:593
msgid "Consumer Secret"
msgstr "Kod för konsument"
-#: ../../mod/settings.php:520 ../../mod/settings.php:546
+#: ../../mod/settings.php:568 ../../mod/settings.php:594
msgid "Redirect"
msgstr "Omdirigering"
-#: ../../mod/settings.php:520
+#: ../../mod/settings.php:568
msgid ""
"Redirect URI - leave blank unless your application specifically requires "
"this"
msgstr "Omdirigerings-URI - lämna blankt om inte din applikation specifikt behöver det"
-#: ../../mod/settings.php:521 ../../mod/settings.php:547
+#: ../../mod/settings.php:569 ../../mod/settings.php:595
msgid "Icon url"
msgstr "Ikon-URL"
-#: ../../mod/settings.php:521
+#: ../../mod/settings.php:569
msgid "Optional"
msgstr "Frivillig"
-#: ../../mod/settings.php:532
+#: ../../mod/settings.php:580
msgid "You can't edit this application."
msgstr "Du kan inte redigera den här applikationen."
-#: ../../mod/settings.php:575
+#: ../../mod/settings.php:623
msgid "Connected Apps"
msgstr "Anslutna appar"
-#: ../../mod/settings.php:579
+#: ../../mod/settings.php:627
msgid "Client key starts with"
msgstr "Klientnyckel börjar med"
-#: ../../mod/settings.php:580
+#: ../../mod/settings.php:628
msgid "No name"
msgstr "Inget namn"
-#: ../../mod/settings.php:581
+#: ../../mod/settings.php:629
msgid "Remove authorization"
msgstr "Ta bort behörighet"
-#: ../../mod/settings.php:592
+#: ../../mod/settings.php:640
msgid "No feature settings configured"
msgstr "Inga funktionsinställningar konfigurerade"
-#: ../../mod/settings.php:600
+#: ../../mod/settings.php:648
msgid "Feature Settings"
msgstr "Funktionsinställningar"
-#: ../../mod/settings.php:623
+#: ../../mod/settings.php:671
msgid "Account Settings"
msgstr "Kontoinställningar"
-#: ../../mod/settings.php:624
+#: ../../mod/settings.php:672
msgid "Password Settings"
msgstr "Lösenordsinställningar"
-#: ../../mod/settings.php:625
+#: ../../mod/settings.php:673
msgid "New Password:"
msgstr "Nytt lösenord:"
-#: ../../mod/settings.php:626
+#: ../../mod/settings.php:674
msgid "Confirm:"
msgstr "Bekräfta:"
-#: ../../mod/settings.php:626
+#: ../../mod/settings.php:674
msgid "Leave password fields blank unless changing"
msgstr "Lämna lösenordsfälten blanka om lösenordet inte ska ändras"
-#: ../../mod/settings.php:628 ../../mod/settings.php:938
+#: ../../mod/settings.php:676 ../../mod/settings.php:1006
msgid "Email Address:"
msgstr "E-postadress"
-#: ../../mod/settings.php:629
+#: ../../mod/settings.php:677 ../../mod/removeaccount.php:61
msgid "Remove Account"
msgstr "Ta bort konto"
-#: ../../mod/settings.php:630
+#: ../../mod/settings.php:678
+msgid "Remove this account from this server including all its channels"
+msgstr "Ta bort det här kontot från servern, inklusive alla dess kanaler"
+
+#: ../../mod/settings.php:679 ../../mod/settings.php:1088
msgid "Warning: This action is permanent and cannot be reversed."
msgstr "Varning: Den här handlingen är permanent och kan inte återställas."
-#: ../../mod/settings.php:646
+#: ../../mod/settings.php:695
msgid "Off"
msgstr "Av"
-#: ../../mod/settings.php:646
+#: ../../mod/settings.php:695
msgid "On"
msgstr "PÃ¥"
-#: ../../mod/settings.php:653
+#: ../../mod/settings.php:702
msgid "Additional Features"
msgstr "Ytterligare funktioner"
-#: ../../mod/settings.php:678
+#: ../../mod/settings.php:727
msgid "Connector Settings"
msgstr "Anslutningsinställningar"
-#: ../../mod/settings.php:708 ../../mod/admin.php:389
+#: ../../mod/settings.php:758
msgid "No special theme for mobile devices"
msgstr "Inget särskilt tema för mobila enheter"
-#: ../../mod/settings.php:749
+#: ../../mod/settings.php:767
+#, php-format
+msgid "%s - (Experimental)"
+msgstr "%s - (experimentellt)"
+
+#: ../../mod/settings.php:803
msgid "Display Settings"
msgstr "Utseende"
-#: ../../mod/settings.php:755
+#: ../../mod/settings.php:809
msgid "Display Theme:"
msgstr "Tema för utseende:"
-#: ../../mod/settings.php:756
+#: ../../mod/settings.php:810
msgid "Mobile Theme:"
msgstr "Mobilt tema:"
-#: ../../mod/settings.php:757
+#: ../../mod/settings.php:811
+msgid "Enable user zoom on mobile devices"
+msgstr "Tillåt användare att zooma på mobila enheter"
+
+#: ../../mod/settings.php:812
msgid "Update browser every xx seconds"
msgstr "Uppdatera webbläsaren var xx sekund"
-#: ../../mod/settings.php:757
+#: ../../mod/settings.php:812
msgid "Minimum of 10 seconds, no maximum"
msgstr "Minst 10 sekunder, inget maximum"
-#: ../../mod/settings.php:758
+#: ../../mod/settings.php:813
msgid "Maximum number of conversations to load at any time:"
msgstr "Högsta antal konversationer att ladda åt gången:"
-#: ../../mod/settings.php:758
+#: ../../mod/settings.php:813
msgid "Maximum of 100 items"
msgstr "Maximalt 100 poster"
-#: ../../mod/settings.php:759
+#: ../../mod/settings.php:814
msgid "Don't show emoticons"
msgstr "Visa inte känsloikoner"
-#: ../../mod/settings.php:760
-msgid "Do not view remote profiles in frames"
-msgstr "Visa inte profiler på andra servrar i ramar"
-
-#: ../../mod/settings.php:760
-msgid "By default open in a sub-window of your own site"
-msgstr "Som standard öppnas de i ett underfönster på din lokala server"
+#: ../../mod/settings.php:815
+msgid "Link post titles to source"
+msgstr "Länka inläggstitlar till källan"
-#: ../../mod/settings.php:761
+#: ../../mod/settings.php:816
msgid "System Page Layout Editor - (advanced)"
msgstr "Redigera systemets sidlayout (avancerat)"
-#: ../../mod/settings.php:796
+#: ../../mod/settings.php:819
+msgid "Use blog/list mode on channel page"
+msgstr "Använd blogg-/listläge på kanalsida"
+
+#: ../../mod/settings.php:819 ../../mod/settings.php:820
+msgid "(comments displayed separately)"
+msgstr "(kommentarer visas separat)"
+
+#: ../../mod/settings.php:820
+msgid "Use blog/list mode on matrix page"
+msgstr "Använd blogg-/listläge på matrissida"
+
+#: ../../mod/settings.php:821
+msgid "Channel page max height of content (in pixels)"
+msgstr "Maxhöjd för innehåll på kanalsidor (i pixels)"
+
+#: ../../mod/settings.php:821 ../../mod/settings.php:822
+msgid "click to expand content exceeding this height"
+msgstr "klicka för att fälla ut innehåll som överskrider den här höjden"
+
+#: ../../mod/settings.php:822
+msgid "Matrix page max height of content (in pixels)"
+msgstr "Maxhöjd för innehåll på matrissidan (i pixels)"
+
+#: ../../mod/settings.php:856
msgid "Nobody except yourself"
msgstr "Ingen utom dig själv"
-#: ../../mod/settings.php:797
+#: ../../mod/settings.php:857
msgid "Only those you specifically allow"
msgstr "Endast utvalda"
-#: ../../mod/settings.php:798
-msgid "Anybody in your address book"
-msgstr "Vem som helst i din adressbok"
+#: ../../mod/settings.php:858
+msgid "Approved connections"
+msgstr "Godkända kontakter"
+
+#: ../../mod/settings.php:859
+msgid "Any connections"
+msgstr "Alla kontakter"
-#: ../../mod/settings.php:799
+#: ../../mod/settings.php:860
msgid "Anybody on this website"
msgstr "Vem som helst på den här servern"
-#: ../../mod/settings.php:800
+#: ../../mod/settings.php:861
msgid "Anybody in this network"
msgstr "Vem som helst i det här nätverket"
-#: ../../mod/settings.php:801
+#: ../../mod/settings.php:862
msgid "Anybody authenticated"
msgstr "Vem som helst som har autentiserat sig"
-#: ../../mod/settings.php:802
+#: ../../mod/settings.php:863
msgid "Anybody on the internet"
msgstr "Vem som helst på Internet"
-#: ../../mod/settings.php:879
+#: ../../mod/settings.php:937
msgid "Publish your default profile in the network directory"
msgstr "Publicera din standardprofil i nätverkskatalogen"
-#: ../../mod/settings.php:879 ../../mod/settings.php:884
-#: ../../mod/settings.php:955 ../../mod/api.php:106 ../../mod/profiles.php:484
-msgid "No"
-msgstr "Nej"
-
-#: ../../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
+#: ../../mod/settings.php:942
msgid "Allow us to suggest you as a potential friend to new members?"
msgstr "Tillåt oss att föreslå dig som möjlig vän för nya medlemmar"
-#: ../../mod/settings.php:888 ../../mod/profile_photo.php:288
+#: ../../mod/settings.php:946 ../../mod/profile_photo.php:365
msgid "or"
msgstr "eller"
-#: ../../mod/settings.php:893
+#: ../../mod/settings.php:951
msgid "Your channel address is"
msgstr "Din kanaladress är"
-#: ../../mod/settings.php:927
+#: ../../mod/settings.php:995
msgid "Channel Settings"
msgstr "Kanalinställningar"
-#: ../../mod/settings.php:936
+#: ../../mod/settings.php:1004
msgid "Basic Settings"
msgstr "Grundläggande inställningar"
-#: ../../mod/settings.php:939
+#: ../../mod/settings.php:1007
msgid "Your Timezone:"
msgstr "Din tidszon:"
-#: ../../mod/settings.php:940
+#: ../../mod/settings.php:1008
msgid "Default Post Location:"
msgstr "Standardplats:"
-#: ../../mod/settings.php:940
+#: ../../mod/settings.php:1008
msgid "Geographical location to display on your posts"
msgstr "Geografisk plats att visa för dina inlägg"
-#: ../../mod/settings.php:941
+#: ../../mod/settings.php:1009
msgid "Use Browser Location:"
msgstr "Använd webbläsarens position:"
-#: ../../mod/settings.php:943
+#: ../../mod/settings.php:1011
msgid "Adult Content"
-msgstr "Pornografiskt innehåll"
+msgstr "Innehåll olämpligt för barn"
-#: ../../mod/settings.php:943
+#: ../../mod/settings.php:1011
msgid ""
"This channel frequently or regularly publishes adult content. (Please tag "
"any adult material and/or nudity with #NSFW)"
-msgstr "Den här kanalen publicerar ofta eller regelbundet pornografiskt innehåll. (Tagga allt pornografiskt material och/eller nakenhet med #NSFW, tack)"
+msgstr "Den här kanalen publicerar ofta eller regelbundet innehåll som är olämpligt för barn. (Tagga allt pornografiskt material och/eller nakenhet med #NSFW, tack)"
-#: ../../mod/settings.php:945
+#: ../../mod/settings.php:1013
msgid "Security and Privacy Settings"
msgstr "Säkerhets- och integritetsinställningar"
-#: ../../mod/settings.php:947
+#: ../../mod/settings.php:1015
+msgid "Your permissions are already configured. Click to view/adjust"
+msgstr "Dina behörigheter har redan ställts in. Klicka för att visa/ändra"
+
+#: ../../mod/settings.php:1017
msgid "Hide my online presence"
msgstr "Visa inte min online-närvaro"
-#: ../../mod/settings.php:947
+#: ../../mod/settings.php:1017
msgid "Prevents displaying in your profile that you are online"
msgstr "Förhindrar att det syns i din profil att du är online"
-#: ../../mod/settings.php:949
+#: ../../mod/settings.php:1019
msgid "Simple Privacy Settings:"
msgstr "Enkla integritetsinställningar:"
-#: ../../mod/settings.php:950
+#: ../../mod/settings.php:1020
msgid ""
"Very Public - <em>extremely permissive (should be used with caution)</em>"
msgstr "Väldigt offentligt - <em>extremt tillåtande (bör användas försiktigt)</em>"
-#: ../../mod/settings.php:951
+#: ../../mod/settings.php:1021
msgid ""
"Typical - <em>default public, privacy when desired (similar to social "
"network permissions but with improved privacy)</em>"
msgstr "Typiskt - <em>offentligt som standard, privat när så önskas (liknande behörigheter som på sociala nätverk men med förbättrad integritet)</em>"
-#: ../../mod/settings.php:952
+#: ../../mod/settings.php:1022
msgid "Private - <em>default private, never open or public</em>"
msgstr "Privat - <em>privat som standard, aldrig öppet eller offentligt</em>"
-#: ../../mod/settings.php:953
+#: ../../mod/settings.php:1023
msgid "Blocked - <em>default blocked to/from everybody</em>"
msgstr "Blockera - <em>som standard blockerat till/från alla</em>"
-#: ../../mod/settings.php:955
+#: ../../mod/settings.php:1025
msgid "Allow others to tag your posts"
msgstr "Låt andra tagga dina inlägg"
-#: ../../mod/settings.php:955
+#: ../../mod/settings.php:1025
msgid ""
"Often used by the community to retro-actively flag inappropriate content"
msgstr "Ofta använt av gemenskapen för att i efterhand flagga olämpligt innehåll"
-#: ../../mod/settings.php:957
+#: ../../mod/settings.php:1027
msgid "Advanced Privacy Settings"
msgstr "Avancerade integritetsinställningar"
-#: ../../mod/settings.php:959
+#: ../../mod/settings.php:1029
msgid "Expire other channel content after this many days"
msgstr "Låt annat kanalinnehåll upphöra efter efter så här många dagar"
-#: ../../mod/settings.php:959
+#: ../../mod/settings.php:1029
msgid "0 or blank prevents expiration"
msgstr "0 eller blankt förhindrar upphörande"
-#: ../../mod/settings.php:960
+#: ../../mod/settings.php:1030
msgid "Maximum Friend Requests/Day:"
msgstr "Högsta antal vänförfrågningar per dag:"
-#: ../../mod/settings.php:960
+#: ../../mod/settings.php:1030
msgid "May reduce spam activity"
msgstr "Kan reducera spamaktivitet"
-#: ../../mod/settings.php:961
+#: ../../mod/settings.php:1031
msgid "Default Post Permissions"
msgstr "Standardbehörighet för inlägg"
-#: ../../mod/settings.php:962 ../../mod/mitem.php:134 ../../mod/mitem.php:177
-msgid "(click to open/close)"
-msgstr "(klicka för att öppna/stänga)"
+#: ../../mod/settings.php:1036
+msgid "Channel permissions category:"
+msgstr "Kanalens behörighetskategori:"
-#: ../../mod/settings.php:973
+#: ../../mod/settings.php:1044
msgid "Maximum private messages per day from unknown people:"
msgstr "Högsta antal privata meddelanden per dag från okända personer:"
-#: ../../mod/settings.php:973
+#: ../../mod/settings.php:1044
msgid "Useful to reduce spamming"
msgstr "Användbart för att minska skräputskick"
-#: ../../mod/settings.php:976
+#: ../../mod/settings.php:1047
msgid "Notification Settings"
msgstr "Notifieringsinställningar"
-#: ../../mod/settings.php:977
+#: ../../mod/settings.php:1048
msgid "By default post a status message when:"
msgstr "Skicka som standard ett statusmeddelande när:"
-#: ../../mod/settings.php:978
+#: ../../mod/settings.php:1049
msgid "accepting a friend request"
msgstr "du accepterar en vänförfrågan"
-#: ../../mod/settings.php:979
+#: ../../mod/settings.php:1050
msgid "joining a forum/community"
msgstr "du går med i ett forum/en gemenskap"
-#: ../../mod/settings.php:980
+#: ../../mod/settings.php:1051
msgid "making an <em>interesting</em> profile change"
msgstr "du gör en <em>intressant</em> ändring av profilen"
-#: ../../mod/settings.php:981
+#: ../../mod/settings.php:1052
msgid "Send a notification email when:"
-msgstr "Skicka en notifiering via e-post med när:"
+msgstr "Skicka en notifiering via e-post när:"
-#: ../../mod/settings.php:982
+#: ../../mod/settings.php:1053
msgid "You receive a connection request"
msgstr "Du får en kontaktförfrågan"
-#: ../../mod/settings.php:983
+#: ../../mod/settings.php:1054
msgid "Your connections are confirmed"
msgstr "Dina kontakter bekräftas"
-#: ../../mod/settings.php:984
+#: ../../mod/settings.php:1055
msgid "Someone writes on your profile wall"
msgstr "Någon skriver på din profilvägg"
-#: ../../mod/settings.php:985
+#: ../../mod/settings.php:1056
msgid "Someone writes a followup comment"
msgstr "Någon skriver en uppföljande kommentar"
-#: ../../mod/settings.php:986
+#: ../../mod/settings.php:1057
msgid "You receive a private message"
msgstr "Du tar emot ett privat meddelande"
-#: ../../mod/settings.php:987
+#: ../../mod/settings.php:1058
msgid "You receive a friend suggestion"
msgstr "Du tar emot ett vänförslag"
-#: ../../mod/settings.php:988
+#: ../../mod/settings.php:1059
msgid "You are tagged in a post"
msgstr "Du taggas i ett inlägg"
-#: ../../mod/settings.php:989
+#: ../../mod/settings.php:1060
msgid "You are poked/prodded/etc. in a post"
msgstr "Du puffas/stöts till/etc. i ett inlägg"
-#: ../../mod/settings.php:992
+#: ../../mod/settings.php:1063
+msgid "Show visual notifications including:"
+msgstr "Visa visuella notifieringar vid:"
+
+#: ../../mod/settings.php:1065
+msgid "Unseen matrix activity"
+msgstr "Oläst matrisaktivitet"
+
+#: ../../mod/settings.php:1066
+msgid "Unseen channel activity"
+msgstr "Oläst kanalaktivitet"
+
+#: ../../mod/settings.php:1067
+msgid "Unseen private messages"
+msgstr "Olästa privata meddelanden"
+
+#: ../../mod/settings.php:1067 ../../mod/settings.php:1072
+#: ../../mod/settings.php:1073 ../../mod/settings.php:1074
+msgid "Recommended"
+msgstr "Rekommenderas"
+
+#: ../../mod/settings.php:1068
+msgid "Upcoming events"
+msgstr "Kommande händelser"
+
+#: ../../mod/settings.php:1069
+msgid "Events today"
+msgstr "Dagens händelser"
+
+#: ../../mod/settings.php:1070
+msgid "Upcoming birthdays"
+msgstr "Kommande födelsedagar"
+
+#: ../../mod/settings.php:1070
+msgid "Not available in all themes"
+msgstr "Inte tillgänglig i alla teman"
+
+#: ../../mod/settings.php:1071
+msgid "System (personal) notifications"
+msgstr "Systemmeddelanden (personliga)"
+
+#: ../../mod/settings.php:1072
+msgid "System info messages"
+msgstr "Systemmeddelanden"
+
+#: ../../mod/settings.php:1073
+msgid "System critical alerts"
+msgstr "Systemkritiska varningar"
+
+#: ../../mod/settings.php:1074
+msgid "New connections"
+msgstr "Nya kontakter"
+
+#: ../../mod/settings.php:1075
+msgid "System Registrations"
+msgstr "Systemregistreringar"
+
+#: ../../mod/settings.php:1077
+msgid "Notify me of events this many days in advance"
+msgstr "Meddela mig om händelser så här många dagar i förväg"
+
+#: ../../mod/settings.php:1077
+msgid "Must be greater than 0"
+msgstr "Måste vara större än 0"
+
+#: ../../mod/settings.php:1079
msgid "Advanced Account/Page Type Settings"
msgstr "Avancerade konto-/sidtypsinställningar"
-#: ../../mod/settings.php:993
+#: ../../mod/settings.php:1080
msgid "Change the behaviour of this account for special situations"
msgstr "Ändra det här kontots beteende i särskilda situationer"
-#: ../../mod/settings.php:996
+#: ../../mod/settings.php:1083
msgid ""
"Please enable expert mode (in <a href=\"settings/features\">Settings > "
"Additional features</a>) to adjust!"
msgstr "Aktivera expertläge (i <a href=\"settings/features\">Inställningar > Ytterligare funktioner</a>) för att göra ändringar!"
-#: ../../mod/settings.php:997
+#: ../../mod/settings.php:1084
msgid "Miscellaneous Settings"
msgstr "Diverse inställningar"
-#: ../../mod/settings.php:999
+#: ../../mod/settings.php:1086
msgid "Personal menu to display in your channel pages"
msgstr "Personlig meny att visa i dina kanalsidor"
-#: ../../mod/menu.php:21
-msgid "Menu updated."
-msgstr "Meny uppdaterad."
-
-#: ../../mod/menu.php:25
-msgid "Unable to update menu."
-msgstr "Kunde inte uppdatera meny."
-
-#: ../../mod/menu.php:30
-msgid "Menu created."
-msgstr "Meny skapad."
-
-#: ../../mod/menu.php:34
-msgid "Unable to create menu."
-msgstr "Kunde inte skapa meny."
+#: ../../mod/settings.php:1087
+msgid "Remove this channel"
+msgstr "Ta bort den här kanalen"
-#: ../../mod/menu.php:57
-msgid "Manage Menus"
-msgstr "Hantera menyer"
+#: ../../mod/events.php:81
+msgid "Event can not end before it has started."
+msgstr "Händelser kan inte sluta innan de börjat."
-#: ../../mod/menu.php:60
-msgid "Drop"
-msgstr "Ta bort"
+#: ../../mod/events.php:86
+msgid "Event title and start time are required."
+msgstr "Händelsen behöver titel och starttid."
-#: ../../mod/menu.php:62
-msgid "Create a new menu"
-msgstr "Skapa en ny meny"
+#: ../../mod/events.php:100
+msgid "Event not found."
+msgstr "Händelsen hittades inte."
-#: ../../mod/menu.php:63
-msgid "Delete this menu"
-msgstr "Ta bort den här menyn"
+#: ../../mod/events.php:369
+msgid "l, F j"
+msgstr "l, j F"
-#: ../../mod/menu.php:64 ../../mod/menu.php:109
-msgid "Edit menu contents"
-msgstr "Redigera menyinnehåll"
+#: ../../mod/events.php:391
+msgid "Edit event"
+msgstr "Redigera händelse"
-#: ../../mod/menu.php:65
-msgid "Edit this menu"
-msgstr "Redigera den här menyn"
+#: ../../mod/events.php:443
+msgid "Create New Event"
+msgstr "Skapa ny händelse"
-#: ../../mod/menu.php:80
-msgid "New Menu"
-msgstr "Ny meny"
+#: ../../mod/events.php:444 ../../mod/photos.php:859
+msgid "Previous"
+msgstr "Föregående"
-#: ../../mod/menu.php:81 ../../mod/menu.php:110
-msgid "Menu name"
-msgstr "Menynamn"
+#: ../../mod/events.php:446
+msgid "Export"
+msgstr "Exportera"
-#: ../../mod/menu.php:81 ../../mod/menu.php:110
-msgid "Must be unique, only seen by you"
-msgstr "MÃ¥ste vara unikt, ses endast av dig"
+#: ../../mod/events.php:571
+msgid "Event details"
+msgstr "Detaljer för händelse"
-#: ../../mod/menu.php:82 ../../mod/menu.php:111
-msgid "Menu title"
-msgstr "Menytitel"
+#: ../../mod/events.php:572
+msgid "Starting date and Title are required."
+msgstr "Startdatum och titel är obligatoriska."
-#: ../../mod/menu.php:82 ../../mod/menu.php:111
-msgid "Menu title as seen by others"
-msgstr "Menytitel som andra ser den"
+#: ../../mod/events.php:576
+msgid "Event Starts:"
+msgstr "Händelsen börjar:"
-#: ../../mod/menu.php:83 ../../mod/menu.php:112
-msgid "Allow bookmarks"
-msgstr "Tillåt bokmärken"
+#: ../../mod/events.php:576 ../../mod/events.php:592 ../../mod/appman.php:91
+#: ../../mod/appman.php:92
+msgid "Required"
+msgstr "Behövs"
-#: ../../mod/menu.php:83 ../../mod/menu.php:112
-msgid "Menu may be used to store saved bookmarks"
-msgstr "Menyn kan användas för att spara bokmärken"
+#: ../../mod/events.php:582
+msgid "Finish date/time is not known or not relevant"
+msgstr "Slutdatum/tid är okänt eller inte relevant"
-#: ../../mod/menu.php:84 ../../mod/mitem.php:142 ../../mod/new_channel.php:117
-msgid "Create"
-msgstr "Skapa"
+#: ../../mod/events.php:584
+msgid "Event Finishes:"
+msgstr "Händelsen slutar:"
-#: ../../mod/menu.php:92 ../../mod/mitem.php:14
-msgid "Menu not found."
-msgstr "Menyn hittades inte."
+#: ../../mod/events.php:586
+msgid "Adjust for viewer timezone"
+msgstr "Justera för betraktarens tidszon"
-#: ../../mod/menu.php:98
-msgid "Menu deleted."
-msgstr "Meny borttagen."
+#: ../../mod/events.php:588
+msgid "Description:"
+msgstr "Beskrivning:"
-#: ../../mod/menu.php:100
-msgid "Menu could not be deleted."
-msgstr "Menyn kunde inte tas bort."
+#: ../../mod/events.php:592
+msgid "Title:"
+msgstr "Titel:"
-#: ../../mod/menu.php:106
-msgid "Edit Menu"
-msgstr "Redigera meny"
+#: ../../mod/events.php:594
+msgid "Share this event"
+msgstr "Dela den här händelsen"
-#: ../../mod/menu.php:108
-msgid "Add or remove entries to this menu"
-msgstr "Lägg till eller ta bort menyval"
+#: ../../mod/pubsites.php:16
+msgid "Public Sites"
+msgstr "Offentliga servrar"
-#: ../../mod/menu.php:114 ../../mod/mitem.php:186
-msgid "Modify"
-msgstr "Ändra"
+#: ../../mod/pubsites.php:19
+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 "De listade servrarna tillåter offentlig registrering i Red Matrix. Alla servrar i matrisen är sammankopplade, så medlemskap i en av dem medför medlemskap i matrisen som helhet. Vissa servrar kan kräva abonnemang eller erbjuda uppdelade tjänstenivåer. Leverantörslänkarna <strong>kan</strong> ge ytterligare detaljer."
-#: ../../mod/menu.php:120 ../../mod/mitem.php:78 ../../mod/xchan.php:27
-#: ../../mod/dirprofile.php:181
-msgid "Not found."
-msgstr "Hittades inte."
+#: ../../mod/pubsites.php:25
+msgid "Site URL"
+msgstr "Server-URL"
-#: ../../mod/webpages.php:122 ../../mod/layouts.php:116
-#: ../../mod/blocks.php:97
-msgid "View"
-msgstr "Visa"
+#: ../../mod/pubsites.php:25
+msgid "Access Type"
+msgstr "Ã…tkomsttyp"
-#: ../../mod/api.php:76 ../../mod/api.php:102
-msgid "Authorize application connection"
-msgstr "Tillåt anslutning av applikation"
+#: ../../mod/pubsites.php:25
+msgid "Registration Policy"
+msgstr "Registreringspolicy"
-#: ../../mod/api.php:77
-msgid "Return to your app and insert this Securty Code:"
-msgstr "Återgå till din applikation och ange den här säkerhetskoden:"
+#: ../../mod/pubsites.php:25 ../../mod/profiles.php:428
+msgid "Location"
+msgstr "Plats"
-#: ../../mod/api.php:89
-msgid "Please login to continue."
-msgstr "Logga in för att fortsätta."
+#: ../../mod/channel.php:25 ../../mod/chat.php:19
+msgid "You must be logged in to see this page."
+msgstr "Du måste vara inloggad för att se den här sidan."
-#: ../../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 "Vill du låta den här applikationen få tillgång till dina inlägg och kontakter, och/eller skapa nya inlägg åt dig?"
+#: ../../mod/channel.php:86
+msgid "Insufficient permissions. Request redirected to profile page."
+msgstr "Otillräckliga behörigheter. Förfrågan omdirigerad till profilsidan."
-#: ../../mod/apps.php:8
-msgid "No installed applications."
-msgstr "Inga installerade applikationer"
+#: ../../mod/rbmark.php:88
+msgid "Select a bookmark folder"
+msgstr "Välj en bokmärkeskatalog"
-#: ../../mod/apps.php:13
-msgid "Applications"
-msgstr "Applikationer"
+#: ../../mod/rbmark.php:93
+msgid "Save Bookmark"
+msgstr "Spara bokmärke"
-#: ../../mod/editpost.php:20 ../../mod/editblock.php:8
-#: ../../mod/editblock.php:27 ../../mod/editblock.php:53
-#: ../../mod/editlayout.php:36 ../../mod/editwebpage.php:32
-msgid "Item not found"
-msgstr "Posten hittas inte"
+#: ../../mod/rbmark.php:94
+msgid "URL of bookmark"
+msgstr "Bokmärkets URL"
-#: ../../mod/editpost.php:31
-msgid "Item is not editable"
-msgstr "Posten går ej att redigera"
+#: ../../mod/rbmark.php:95 ../../mod/appman.php:93
+msgid "Description"
+msgstr "Beskrivning"
-#: ../../mod/editpost.php:42 ../../mod/rpost.php:86
-msgid "Edit post"
-msgstr "Redigera inlägg"
+#: ../../mod/rbmark.php:99
+msgid "Or enter new bookmark folder name"
+msgstr "Eller ange nytt namn på bokmärkeskatalog"
-#: ../../mod/editpost.php:53
-msgid "Delete item?"
-msgstr "Ta bort posten?"
+#: ../../mod/chat.php:167
+msgid "Room not found"
+msgstr "Rum hittas inte"
-#: ../../mod/editpost.php:116 ../../mod/editblock.php:115
-#: ../../mod/editlayout.php:110 ../../mod/editwebpage.php:147
-msgid "Insert YouTube video"
-msgstr "Infoga Youtube-video"
+#: ../../mod/chat.php:178
+msgid "Leave Room"
+msgstr "Lämna rummet"
-#: ../../mod/editpost.php:117 ../../mod/editblock.php:116
-#: ../../mod/editlayout.php:111 ../../mod/editwebpage.php:148
-msgid "Insert Vorbis [.ogg] video"
-msgstr "Infoga Vorbis [.ogg]-video"
+#: ../../mod/chat.php:179
+msgid "Delete This Room"
+msgstr "Ta bort det här rummet"
-#: ../../mod/editpost.php:118 ../../mod/editblock.php:117
-#: ../../mod/editlayout.php:112 ../../mod/editwebpage.php:149
-msgid "Insert Vorbis [.ogg] audio"
-msgstr "Infoga Vorbis [.ogg]-ljud"
+#: ../../mod/chat.php:180
+msgid "I am away right now"
+msgstr "Jag är borta för tillfället"
-#: ../../mod/cloud.php:112
-msgid "Red Matrix - Guests: Username: {your email address}, Password: +++"
-msgstr "Red Matrix - Gäster: Användarnamn: {din e-postadress}, Lösenord: +++"
+#: ../../mod/chat.php:181
+msgid "I am online"
+msgstr "Jag är online"
-#: ../../mod/bookmarks.php:38
-msgid "Bookmark added"
-msgstr "Bokmärke tillagt"
+#: ../../mod/chat.php:183
+msgid "Bookmark this room"
+msgstr "Bokmärk det här rummet"
-#: ../../mod/bookmarks.php:58
-msgid "My Bookmarks"
-msgstr "Mina bokmärken"
+#: ../../mod/chat.php:207 ../../mod/chat.php:229
+msgid "New Chatroom"
+msgstr "Nytt chattrum"
-#: ../../mod/bookmarks.php:69
-msgid "My Connections Bookmarks"
-msgstr "Mina kontakters bokmärken"
+#: ../../mod/chat.php:208
+msgid "Chatroom Name"
+msgstr "Namn på chattrum"
-#: ../../mod/subthread.php:105
+#: ../../mod/chat.php:225
#, php-format
-msgid "%1$s is following %2$s's %3$s"
-msgstr "%1$s följer %2$ss %3$s"
+msgid "%1$s's Chatrooms"
+msgstr "%1$ss chattrum"
-#: ../../mod/update_network.php:23 ../../mod/update_channel.php:43
-#: ../../mod/update_search.php:46 ../../mod/update_display.php:25
-msgid "[Embedded content - reload page to view]"
-msgstr "[Inbäddat innehåll - ladda om sidan för att visa]"
+#: ../../mod/siteinfo.php:92
+#, php-format
+msgid "Version %s"
+msgstr "Version %s"
-#: ../../mod/chanview.php:77 ../../mod/home.php:50 ../../mod/page.php:47
-#: ../../mod/block.php:39 ../../mod/wall_upload.php:28
-msgid "Channel not found."
-msgstr "Kanalen hittas inte."
+#: ../../mod/siteinfo.php:113
+msgid "Installed plugins/addons/apps:"
+msgstr "Installerade tillägg/moduler/appar:"
-#: ../../mod/chanview.php:93
-msgid "toggle full screen mode"
-msgstr "växla helskärmsläge"
+#: ../../mod/siteinfo.php:126
+msgid "No installed plugins/addons/apps"
+msgstr "Inga installerade tillägg/moduler/appar"
-#: ../../mod/tagger.php:98
-#, php-format
-msgid "%1$s tagged %2$s's %3$s with %4$s"
-msgstr "%1$s taggade%2$ss %3$s med %4$s"
+#: ../../mod/siteinfo.php:134
+msgid "Red"
+msgstr "Red"
-#: ../../mod/acl.php:239
-msgid "network"
-msgstr "nätverk"
+#: ../../mod/siteinfo.php:135
+msgid ""
+"This is a hub of the Red Matrix - a global cooperative network of "
+"decentralized privacy enhanced websites."
+msgstr "Det här är en hubb som ingår i Red Matrix - ett globalt samverkande nätverk av decentraliserade webbplatser med bättre integritetskydd."
-#: ../../mod/viewconnections.php:17 ../../mod/search.php:13
-#: ../../mod/directory.php:15 ../../mod/display.php:9
-#: ../../mod/dirprofile.php:9 ../../mod/photos.php:443
-msgid "Public access denied."
-msgstr "Offentlig behörighet saknas."
+#: ../../mod/siteinfo.php:139
+msgid "Running at web location"
+msgstr "Kör på webbutrymmet"
-#: ../../mod/viewconnections.php:50
-msgid "No connections."
-msgstr "Inga kontakter."
+#: ../../mod/siteinfo.php:140
+msgid ""
+"Please visit <a href=\"http://getzot.com\">GetZot.com</a> to learn more "
+"about the Red Matrix."
+msgstr "Besök <a href=\"http://getzot.com\">GetZot.com</a> lära dig mer om Red Matrix."
-#: ../../mod/viewconnections.php:62
-#, php-format
-msgid "Visit %s's profile [%s]"
-msgstr "Besök %ss profil [%s]"
+#: ../../mod/siteinfo.php:141
+msgid "Bug reports and issues: please visit"
+msgstr "Buggrapporter och problem: besök"
-#: ../../mod/viewconnections.php:77
-msgid "View Connnections"
-msgstr "Visa kontakter"
+#: ../../mod/siteinfo.php:144
+msgid ""
+"Suggestions, praise, etc. - please email \"redmatrix\" at librelist - dot "
+"com"
+msgstr "Förslag, uppskattning, etc. - maila \"redmatrix\" at librelist - dot com"
-#: ../../mod/tagrm.php:41
-msgid "Tag removed"
-msgstr "Tagg borttagen"
+#: ../../mod/siteinfo.php:146
+msgid "Site Administrators"
+msgstr "Serveradministratörer"
-#: ../../mod/tagrm.php:79
-msgid "Remove Item Tag"
-msgstr "Ta bort innehållstagg"
+#: ../../mod/chatsvc.php:111
+msgid "Away"
+msgstr "Borta"
-#: ../../mod/tagrm.php:81
-msgid "Select a tag to remove: "
-msgstr "Välj en tagg att ta bort: "
+#: ../../mod/chatsvc.php:115
+msgid "Online"
+msgstr "Online"
-#: ../../mod/tagrm.php:93 ../../mod/delegate.php:130 ../../mod/photos.php:908
-msgid "Remove"
-msgstr "Ta bort"
+#: ../../mod/regmod.php:11
+msgid "Please login."
+msgstr "Logga in."
-#: ../../mod/connect.php:55 ../../mod/connect.php:103
+#: ../../mod/connect.php:56 ../../mod/connect.php:104
msgid "Continue"
msgstr "Fortsätt"
-#: ../../mod/connect.php:84
+#: ../../mod/connect.php:85
msgid "Premium Channel Setup"
msgstr "Inställning av premiumkanal"
-#: ../../mod/connect.php:86
+#: ../../mod/connect.php:87
msgid "Enable premium channel connection restrictions"
msgstr "Aktivera kontaktrestriktioner för premiumkanal"
-#: ../../mod/connect.php:87
+#: ../../mod/connect.php:88
msgid ""
"Please enter your restrictions or conditions, such as paypal receipt, usage "
"guidelines, etc."
msgstr "Ange dina restriktioner och villkor, som Paypal-kvitto, användarriktlinjer, etc."
-#: ../../mod/connect.php:89 ../../mod/connect.php:109
+#: ../../mod/connect.php:90 ../../mod/connect.php:110
msgid ""
"This channel may require additional steps or acknowledgement of the "
"following conditions prior to connecting:"
msgstr "Den här kanalen kan kräva ytterligare steg eller godkännande av följande villkor innan anslutning:"
-#: ../../mod/connect.php:90
+#: ../../mod/connect.php:91
msgid ""
"Potential connections will then see the following text before proceeding:"
msgstr "Potentiella kontakter kommer sedan att se följande text innan de går vidare:"
-#: ../../mod/connect.php:91 ../../mod/connect.php:112
+#: ../../mod/connect.php:92 ../../mod/connect.php:113
msgid ""
"By continuing, I certify that I have complied with any instructions provided"
" on this page."
msgstr "Genom att fortsätta intygar jag att jag har följt alla instruktioner som ges på den här sidan."
-#: ../../mod/connect.php:100
+#: ../../mod/connect.php:101
msgid "(No specific instructions have been provided by the channel owner.)"
msgstr "(Inga specifika instruktioner har givits av kanalägaren.)"
-#: ../../mod/connect.php:108
+#: ../../mod/connect.php:109
msgid "Restricted or Premium Channel"
msgstr "Begränsad kanal eller premiumkanal"
-#: ../../mod/delegate.php:95
-msgid "No potential page delegates located."
-msgstr "Inga potentiella sid-ombud funna."
-
-#: ../../mod/delegate.php:121
-msgid "Delegate Page Management"
-msgstr "Delegera sidhantering"
-
-#: ../../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 "Ombud kan hantera alla aspekter av det här kontot/den här sidan förutom grundläggande kontoinställningar. Delegera inte ditt personliga konto till någon som du inte litar fullständigt på."
-
-#: ../../mod/delegate.php:124
-msgid "Existing Page Managers"
-msgstr "Befintliga sid-ansvariga"
-
-#: ../../mod/delegate.php:126
-msgid "Existing Page Delegates"
-msgstr "Befintliga sid-ombud"
-
-#: ../../mod/delegate.php:128
-msgid "Potential Delegates"
-msgstr "Potentiella ombud"
-
-#: ../../mod/delegate.php:131
-msgid "Add"
-msgstr "Lägg till"
-
-#: ../../mod/delegate.php:132
-msgid "No entries."
-msgstr "Inga poster."
-
-#: ../../mod/pdledit.php:13
-msgid "Layout updated."
-msgstr "Layout uppdaterad."
-
-#: ../../mod/pdledit.php:28 ../../mod/pdledit.php:53
-msgid "Edit System Page Description"
-msgstr "Redigera systemsidbeskrivning"
-
-#: ../../mod/pdledit.php:48
-msgid "Layout not found."
-msgstr "Layout hittas inte."
-
-#: ../../mod/pdledit.php:54
-msgid "Module Name:"
-msgstr "Modulnamn:"
-
-#: ../../mod/pdledit.php:55 ../../mod/layouts.php:59
-msgid "Layout Help"
-msgstr "Layouthjälp"
-
-#: ../../mod/attach.php:9
-msgid "Item not available."
-msgstr "Post inte tillgänglig."
-
-#: ../../mod/item.php:147
-msgid "Unable to locate original post."
-msgstr "Kunde inte hitta originalinlägget."
-
-#: ../../mod/item.php:345
-msgid "Empty post discarded."
-msgstr "Tomt inlägg förkastat."
-
-#: ../../mod/item.php:385
-msgid "Executable content type not permitted to this channel."
-msgstr "Körbart innehåll tillåts inte i den här kanalen."
-
-#: ../../mod/item.php:794
-msgid "System error. Post not saved."
-msgstr "Systemfel. Inlägget inte sparat."
-
-#: ../../mod/item.php:1237
-#, php-format
-msgid "You have reached your limit of %1$.0f top level posts."
-msgstr "Du har nått din gräns på %1$.0f toppnivåinlägg."
-
-#: ../../mod/item.php:1243
-#, php-format
-msgid "You have reached your limit of %1$.0f webpages."
-msgstr "Du har nått din gräns på %1$.0f webbsidor."
-
-#: ../../mod/mitem.php:47
-msgid "Menu element updated."
-msgstr "Menyval uppdaterat."
-
-#: ../../mod/mitem.php:51
-msgid "Unable to update menu element."
-msgstr "Kunde inte uppdatera menyval."
-
-#: ../../mod/mitem.php:57
-msgid "Menu element added."
-msgstr "Menyval tillagt."
-
-#: ../../mod/mitem.php:61
-msgid "Unable to add menu element."
-msgstr "Kunde inte lägga till menyval."
-
-#: ../../mod/mitem.php:96
-msgid "Manage Menu Elements"
-msgstr "Hantera menyval"
-
-#: ../../mod/mitem.php:99
-msgid "Edit menu"
-msgstr "Redigera meny"
-
-#: ../../mod/mitem.php:102
-msgid "Edit element"
-msgstr "Redigera menyval"
-
-#: ../../mod/mitem.php:103
-msgid "Drop element"
-msgstr "Ta bort menyval"
-
-#: ../../mod/mitem.php:104
-msgid "New element"
-msgstr "Nytt menyval"
-
-#: ../../mod/mitem.php:105
-msgid "Edit this menu container"
-msgstr "Redigera den här menysamlaren"
-
-#: ../../mod/mitem.php:106
-msgid "Add menu element"
-msgstr "Lägg till menyval"
-
-#: ../../mod/mitem.php:107
-msgid "Delete this menu item"
-msgstr "Ta bort det här menyvalet"
-
-#: ../../mod/mitem.php:108
-msgid "Edit this menu item"
-msgstr "Redigera det här menyvalet"
-
-#: ../../mod/mitem.php:131
-msgid "New Menu Element"
-msgstr "Nytt menyval"
-
-#: ../../mod/mitem.php:133 ../../mod/mitem.php:176
-msgid "Menu Item Permissions"
-msgstr "Behörighet för menyval"
-
-#: ../../mod/mitem.php:136 ../../mod/mitem.php:180
-msgid "Link text"
-msgstr "Länktext"
-
-#: ../../mod/mitem.php:137 ../../mod/mitem.php:181
-msgid "URL of link"
-msgstr "Länkens URL"
-
-#: ../../mod/mitem.php:138 ../../mod/mitem.php:182
-msgid "Use Red magic-auth if available"
-msgstr "Använd Red magic-auth om tillgängligt"
-
-#: ../../mod/mitem.php:139 ../../mod/mitem.php:183
-msgid "Open link in new window"
-msgstr "Öppna länk i nytt fönster"
-
-#: ../../mod/mitem.php:141 ../../mod/mitem.php:185
-msgid "Order in list"
-msgstr "Ordningstal i listan"
-
-#: ../../mod/mitem.php:141 ../../mod/mitem.php:185
-msgid "Higher numbers will sink to bottom of listing"
-msgstr "Större tal sjunker till botten av listan"
-
-#: ../../mod/mitem.php:154
-msgid "Menu item not found."
-msgstr "Menyval hittas inte."
-
-#: ../../mod/mitem.php:163
-msgid "Menu item deleted."
-msgstr "Menyval borttaget."
-
-#: ../../mod/mitem.php:165
-msgid "Menu item could not be deleted."
-msgstr "Menyval kunde inte tas bort."
-
-#: ../../mod/mitem.php:174
-msgid "Edit Menu Element"
-msgstr "Redigera menyval"
-
-#: ../../mod/zfinger.php:23
-msgid "invalid target signature"
-msgstr "ogiltig målsignatur"
-
-#: ../../mod/profperm.php:29 ../../mod/profperm.php:58
-msgid "Invalid profile identifier."
-msgstr "Ogiltigt profil-ID."
-
-#: ../../mod/profperm.php:105
-msgid "Profile Visibility Editor"
-msgstr "Redigera profilsynlighet"
-
-#: ../../mod/profperm.php:109
-msgid "Click on a contact to add or remove."
-msgstr "Klicka på en kontakt för att lägga till eller ta bort."
-
-#: ../../mod/profperm.php:118
-msgid "Visible To"
-msgstr "Synlig för"
-
-#: ../../mod/profperm.php:134 ../../mod/connections.php:277
-msgid "All Connections"
-msgstr "Alla kontakter"
-
-#: ../../mod/group.php:20
-msgid "Collection created."
-msgstr "Sammanhang skapat"
-
-#: ../../mod/group.php:26
-msgid "Could not create collection."
-msgstr "Kunde inte skapa sammanhanget."
-
-#: ../../mod/group.php:54
-msgid "Collection updated."
-msgstr "Sammanhanget uppdatarat."
-
-#: ../../mod/group.php:86
-msgid "Create a collection of channels."
-msgstr "Skapa ett sammanhang av kanaler."
-
-#: ../../mod/group.php:87 ../../mod/group.php:183
-msgid "Collection Name: "
-msgstr "Namn på sammanhang: "
-
-#: ../../mod/group.php:89 ../../mod/group.php:186
-msgid "Members are visible to other channels"
-msgstr "Medlemmar är synliga för andra kanaler"
-
-#: ../../mod/group.php:107
-msgid "Collection removed."
-msgstr "Sammanhang borttaget."
-
-#: ../../mod/group.php:109
-msgid "Unable to remove collection."
-msgstr "Kunde inte ta bort sammanhang."
-
-#: ../../mod/group.php:182
-msgid "Collection Editor"
-msgstr "Sammanhangsredigering"
-
-#: ../../mod/group.php:196
-msgid "Members"
-msgstr "Medlemmar"
-
-#: ../../mod/group.php:198
-msgid "All Connected Channels"
-msgstr "Alla anslutna kanaler"
-
-#: ../../mod/group.php:231
-msgid "Click on a channel to add or remove."
-msgstr "Klicka på en kanal för att lägga till eller ta bort."
-
-#: ../../mod/admin.php:52
-msgid "Theme settings updated."
-msgstr "Temainställningar uppdaterade."
-
-#: ../../mod/admin.php:92 ../../mod/admin.php:440
-msgid "Site"
-msgstr "Server"
-
-#: ../../mod/admin.php:93
-msgid "Accounts"
-msgstr "Konton"
-
-#: ../../mod/admin.php:94 ../../mod/admin.php:883
-msgid "Channels"
-msgstr "Kanaler"
-
-#: ../../mod/admin.php:95 ../../mod/admin.php:974 ../../mod/admin.php:1016
-msgid "Plugins"
-msgstr "Tillägg"
-
-#: ../../mod/admin.php:96 ../../mod/admin.php:1179 ../../mod/admin.php:1215
-msgid "Themes"
-msgstr "Teman"
-
-#: ../../mod/admin.php:97 ../../mod/admin.php:540
-msgid "Server"
-msgstr "Server"
-
-#: ../../mod/admin.php:98
-msgid "DB updates"
-msgstr "Databasuppdateringar"
-
-#: ../../mod/admin.php:112 ../../mod/admin.php:119 ../../mod/admin.php:1302
-msgid "Logs"
-msgstr "Loggar"
-
-#: ../../mod/admin.php:118
-msgid "Plugin Features"
-msgstr "Tilläggsfunktioner"
-
-#: ../../mod/admin.php:120
-msgid "User registrations waiting for confirmation"
-msgstr "Användarregistreringar som behöver bekräftas"
-
-#: ../../mod/admin.php:197
-msgid "Message queues"
-msgstr "Meddelandeköer"
-
-#: ../../mod/admin.php:202 ../../mod/admin.php:439 ../../mod/admin.php:539
-#: ../../mod/admin.php:748 ../../mod/admin.php:882 ../../mod/admin.php:973
-#: ../../mod/admin.php:1015 ../../mod/admin.php:1178 ../../mod/admin.php:1214
-#: ../../mod/admin.php:1301
-msgid "Administration"
-msgstr "Administration"
-
-#: ../../mod/admin.php:203
-msgid "Summary"
-msgstr "Sammanfattning"
-
-#: ../../mod/admin.php:205
-msgid "Registered users"
-msgstr "Registrerade användare"
-
-#: ../../mod/admin.php:207 ../../mod/admin.php:543
-msgid "Pending registrations"
-msgstr "Pågående registreringar"
-
-#: ../../mod/admin.php:208
-msgid "Version"
-msgstr "Version"
-
-#: ../../mod/admin.php:210 ../../mod/admin.php:544
-msgid "Active plugins"
-msgstr "Aktiva tillägg"
-
-#: ../../mod/admin.php:360
-msgid "Site settings updated."
-msgstr "Serverinställningar uppdaterade."
-
-#: ../../mod/admin.php:391
-msgid "No special theme for accessibility"
-msgstr "Inget speciellt tema för tillgänglighet"
-
-#: ../../mod/admin.php:419
-msgid "Closed"
-msgstr "Stängd"
-
-#: ../../mod/admin.php:420
-msgid "Requires approval"
-msgstr "Kräver godkännande"
-
-#: ../../mod/admin.php:421
-msgid "Open"
-msgstr "Öppen"
-
-#: ../../mod/admin.php:426
-msgid "Private"
-msgstr "Privat"
-
-#: ../../mod/admin.php:427
-msgid "Paid Access"
-msgstr "Betald åtkomst"
-
-#: ../../mod/admin.php:428
-msgid "Free Access"
-msgstr "Fri åtkomst"
-
-#: ../../mod/admin.php:429
-msgid "Tiered Access"
-msgstr "Uppdelad åtkomst"
-
-#: ../../mod/admin.php:442 ../../mod/register.php:189
-msgid "Registration"
-msgstr "Registrering"
-
-#: ../../mod/admin.php:443
-msgid "File upload"
-msgstr "Filuppladdning"
-
-#: ../../mod/admin.php:444
-msgid "Policies"
-msgstr "Policyer"
-
-#: ../../mod/admin.php:449
-msgid "Site name"
-msgstr "Servernamn"
-
-#: ../../mod/admin.php:450
-msgid "Banner/Logo"
-msgstr "Banner/logga"
-
-#: ../../mod/admin.php:451
-msgid "Administrator Information"
-msgstr "Administratörsinformation"
-
-#: ../../mod/admin.php:451
+#: ../../mod/removeme.php:29
msgid ""
-"Contact information for site administrators. Displayed on siteinfo page. "
-"BBCode can be used here"
-msgstr "Kontaktinfo till sidadministratörer. Visas på sidinfosidan. BBCode kan användas här"
-
-#: ../../mod/admin.php:452
-msgid "System language"
-msgstr "Systemspråk"
+"Channel removals are not allowed within 48 hours of changing the account "
+"password."
+msgstr "Borttagning av kanal tillåts inte inom 48 timmar efter att kontolösenordet har ändrats."
-#: ../../mod/admin.php:453
-msgid "System theme"
-msgstr "Systemtema"
-
-#: ../../mod/admin.php:453
-msgid ""
-"Default system theme - may be over-ridden by user profiles - <a href='#' "
-"id='cnftheme'>change theme settings</a>"
-msgstr "Förvalt systemtema - kan åsidosättas i användarprofiler - <a href='#' id='cnftheme'>ändra temainställningar</a>"
-
-#: ../../mod/admin.php:454
-msgid "Mobile system theme"
-msgstr "Mobilt systemtema"
-
-#: ../../mod/admin.php:454
-msgid "Theme for mobile devices"
-msgstr "Tema för mobila enheter"
-
-#: ../../mod/admin.php:455
-msgid "Accessibility system theme"
-msgstr "Systemtema för ökad tillgänglighet"
-
-#: ../../mod/admin.php:455
-msgid "Accessibility theme"
-msgstr "Tillgänglighetstema"
-
-#: ../../mod/admin.php:456
-msgid "Channel to use for this website's static pages"
-msgstr "Kanal att använda för den här webbplatsens statiska sidor"
-
-#: ../../mod/admin.php:456
-msgid "Site Channel"
-msgstr "Sidkanal"
-
-#: ../../mod/admin.php:458
-msgid "Maximum image size"
-msgstr "Maximal bildstorlek"
-
-#: ../../mod/admin.php:458
-msgid ""
-"Maximum size in bytes of uploaded images. Default is 0, which means no "
-"limits."
-msgstr "Maximal storlek i byte för uppladdade bilder. Standard är 0, vilket innebär ingen storleksbegränsning."
-
-#: ../../mod/admin.php:459
-msgid "Register policy"
-msgstr "Registreringspolicy"
-
-#: ../../mod/admin.php:460
-msgid "Access policy"
-msgstr "Ã…tkomstpolicy"
-
-#: ../../mod/admin.php:461
-msgid "Register text"
-msgstr "Registreringstext"
-
-#: ../../mod/admin.php:461
-msgid "Will be displayed prominently on the registration page."
-msgstr "Visas tydligt på registreringssidan."
-
-#: ../../mod/admin.php:462
-msgid "Accounts abandoned after x days"
-msgstr "Konto övergivet efter x dagar"
-
-#: ../../mod/admin.php:462
-msgid ""
-"Will not waste system resources polling external sites for abandonded "
-"accounts. Enter 0 for no time limit."
-msgstr "Slösar inte systemresurser genom att fråga externa servrar efter övergivna konton. 0 innebär ingen tidsbegränsning."
-
-#: ../../mod/admin.php:463
-msgid "Allowed friend domains"
-msgstr "Tillåtna vändomäner"
+#: ../../mod/removeme.php:57
+msgid "Remove This Channel"
+msgstr "Ta bort den här kanalen"
-#: ../../mod/admin.php:463
+#: ../../mod/removeme.php:58
msgid ""
-"Comma separated list of domains which are allowed to establish friendships "
-"with this site. Wildcards are accepted. Empty to allow any domains"
-msgstr "Kommaseparerad lista med domäner som tillåts att upprätta ett vänförhållande med den här servern. Jokertecken är tillåtna. Töm för att tillåta alla domäner."
-
-#: ../../mod/admin.php:464
-msgid "Allowed email domains"
-msgstr "Tillåtna e-postdomäner"
+"This will completely remove this channel from the network. Once this has "
+"been done it is not recoverable."
+msgstr "Det här kommer att ta bort den här kanalen helt från nätverket. När det är gjort går det inte att återställa den."
-#: ../../mod/admin.php:464
-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 "Kommaseparerad lista med domäner som tillåts i e-postadresser för registreringar på den här servern. Jokertecken är tillåtna. Töm för att tillåta alla domäner."
+#: ../../mod/removeme.php:59 ../../mod/removeaccount.php:59
+msgid "Please enter your password for verification:"
+msgstr "Ange ditt lösenord för att bekräfta:"
-#: ../../mod/admin.php:465
-msgid "Block public"
-msgstr "Blockera offentlig åtkomst"
+#: ../../mod/removeme.php:60
+msgid "Remove this channel and all its clones from the network"
+msgstr "Ta bort den här kanalen och alla dess kloner från nätverket"
-#: ../../mod/admin.php:465
+#: ../../mod/removeme.php:60
msgid ""
-"Check to block public access to all otherwise public personal pages on this "
-"site unless you are currently logged in."
-msgstr "Välj för att blockera åtkomst till alla personliga sidor som annars skulle vara offentliga på den här servern om man inte är inloggad."
-
-#: ../../mod/admin.php:466
-msgid "Force publish"
-msgstr "Tvinga publicering"
+"By default only the instance of the channel located on this hub will be "
+"removed from the network"
+msgstr "Som standard kommer bara den här hubbens instans av kanalen att tas bort från nätverket"
-#: ../../mod/admin.php:466
-msgid ""
-"Check to force all profiles on this site to be listed in the site directory."
-msgstr "Välj för att tvinga alla profiler på den här servern att listas i serverkatalogen."
+#: ../../mod/removeme.php:61
+msgid "Remove Channel"
+msgstr "Ta bort kanal"
-#: ../../mod/admin.php:467
-msgid "Disable discovery tab"
-msgstr "Inaktivera upptäck-fliken"
+#: ../../mod/common.php:10
+msgid "No channel."
+msgstr "Ingen kanal."
-#: ../../mod/admin.php:467
-msgid ""
-"Remove the tab in the network view with public content pulled from sources "
-"chosen for this site."
-msgstr "Ta bort fliken i nätverksvyn med offentligt innehåll som hämtas från källor valda för den här servern."
+#: ../../mod/common.php:39
+msgid "Common connections"
+msgstr "Gemensamma kontakter"
-#: ../../mod/admin.php:468
-msgid "No login on Homepage"
-msgstr "Ingen inloggning på hemsidan"
+#: ../../mod/common.php:44
+msgid "No connections in common."
+msgstr "Inga gemensamma kontakter."
-#: ../../mod/admin.php:468
+#: ../../mod/rmagic.php:38
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 "Välj för att gömma inloggningsformuläret från serverns hemsida för oinloggade besökare (t.ex. när du lägger in hemsideinnehållet via serverkanalen)."
-
-#: ../../mod/admin.php:470
-msgid "Proxy user"
-msgstr "Proxyanvändare"
-
-#: ../../mod/admin.php:471
-msgid "Proxy URL"
-msgstr "Proxy-URL"
+"We encountered a problem while logging in with the OpenID you provided. "
+"Please check the correct spelling of the ID."
+msgstr "Vi drabbades av ett problem vid inloggningen med OpenID:t du uppgav. Kontrollera att ID:t är korrekt stavat."
-#: ../../mod/admin.php:472
-msgid "Network timeout"
-msgstr "Nätverkstimeout"
+#: ../../mod/rmagic.php:38
+msgid "The error message was:"
+msgstr "Felmeddelandet var:"
-#: ../../mod/admin.php:472
-msgid "Value is in seconds. Set to 0 for unlimited (not recommended)."
-msgstr "Värde i sekunder. Sätt till 0 för obegränsat (ej rekommenderat)."
+#: ../../mod/rmagic.php:42
+msgid "Authentication failed."
+msgstr "Inloggning misslyckades."
-#: ../../mod/admin.php:473
-msgid "Delivery interval"
-msgstr "Leveransintervall"
+#: ../../mod/rmagic.php:82
+msgid "Remote Authentication"
+msgstr "Fjärrinloggning"
-#: ../../mod/admin.php:473
-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 "Fördröj leveransprocesser som görs i bakgrunden så här många sekunder för att reducera systembelastningen. Rekommenderat: 4-5 för delade värdar, 2-3 för virtuella privata servrar. 0-1 för stora dedikerade servrar."
+#: ../../mod/rmagic.php:83
+msgid "Enter your channel address (e.g. channel@example.com)"
+msgstr "Ange din kanaladress (t.ex. kanal@example.com)"
-#: ../../mod/admin.php:474
-msgid "Poll interval"
-msgstr "Hämtningsintervall"
+#: ../../mod/rmagic.php:84
+msgid "Authenticate"
+msgstr "Autentisera"
-#: ../../mod/admin.php:474
-msgid ""
-"Delay background polling processes by this many seconds to reduce system "
-"load. If 0, use delivery interval."
-msgstr "Fördröj hämtningsprocesser som görs i bakgrunden så här många sekunder för att reducera systembelastningen. Om 0 används leveransintervallet."
+#: ../../mod/like.php:15
+msgid "Like/Dislike"
+msgstr "Gilla/ogilla"
-#: ../../mod/admin.php:475
-msgid "Maximum Load Average"
-msgstr "Maximal genomsnittsbelastning"
+#: ../../mod/like.php:20
+msgid "This action is restricted to members."
+msgstr "Den här åtgärden fungerar bara för medlemmar."
-#: ../../mod/admin.php:475
+#: ../../mod/like.php:21
msgid ""
-"Maximum system load before delivery and poll processes are deferred - "
-"default 50."
-msgstr "Maximal systembelastning innan leverans- och hämtningsprocesser skjuts upp - standard är 50."
+"Please <a href=\"rmagic\">login with your RedMatrix ID</a> or <a "
+"href=\"register\">register as a new RedMatrix member</a> to continue."
+msgstr "<a href=\"rmagic\">Logga in med ditt RedMatrix-ID</a> eller <a href=\"register\">registrera dig som ny RedMatrix medlem</a> för att fortsätta."
-#: ../../mod/admin.php:531
-msgid "No server found"
-msgstr "Ingen server hittad"
+#: ../../mod/like.php:77 ../../mod/like.php:104 ../../mod/like.php:142
+msgid "Invalid request."
+msgstr "Ogiltig begäran."
-#: ../../mod/admin.php:538 ../../mod/admin.php:762
-msgid "ID"
-msgstr "ID"
+#: ../../mod/like.php:119
+msgid "thing"
+msgstr "sak"
-#: ../../mod/admin.php:538
-msgid "for channel"
-msgstr "för kanal"
+#: ../../mod/like.php:165
+msgid "Channel unavailable."
+msgstr "Kanalen kan ej nås."
-#: ../../mod/admin.php:538
-msgid "on server"
-msgstr "på server"
+#: ../../mod/like.php:204
+msgid "Previous action reversed."
+msgstr "Föregående åtgärd återställdes."
-#: ../../mod/admin.php:538
-msgid "Status"
-msgstr "Status"
+#: ../../mod/like.php:422
+msgid "Action completed."
+msgstr "Åtgärden slutfördes."
-#: ../../mod/admin.php:559
-msgid "Update has been marked successful"
-msgstr "Uppdatering har markerats som genomförd"
-
-#: ../../mod/admin.php:569
-#, php-format
-msgid "Executing %s failed. Check system logs."
-msgstr "Körning av %s misslyckades. Kontrollera systemloggarna."
-
-#: ../../mod/admin.php:572
-#, php-format
-msgid "Update %s was successfully applied."
-msgstr "Uppdatering %s genomfördes utan problem."
-
-#: ../../mod/admin.php:576
-#, php-format
-msgid "Update %s did not return a status. Unknown if it succeeded."
-msgstr "Uppdatering %s returnerade ingen status. Oklart om den lyckades."
-
-#: ../../mod/admin.php:579
-#, php-format
-msgid "Update function %s could not be found."
-msgstr "Uppdateringsfunktion %s kunde inte hittas."
-
-#: ../../mod/admin.php:594
-msgid "No failed updates."
-msgstr "Inga misslyckade uppdateringar."
-
-#: ../../mod/admin.php:598
-msgid "Failed Updates"
-msgstr "Misslyckade uppdateringar"
-
-#: ../../mod/admin.php:600
-msgid "Mark success (if update was manually applied)"
-msgstr "Markera som genomförd (om uppdateringen gjordes manuellt)"
+#: ../../mod/like.php:423
+msgid "Thank you."
+msgstr "Tack."
-#: ../../mod/admin.php:601
-msgid "Attempt to execute this update step automatically"
-msgstr "Försök att köra den här uppdateringen automatiskt"
-
-#: ../../mod/admin.php:627
-#, php-format
-msgid "%s user blocked/unblocked"
-msgid_plural "%s users blocked/unblocked"
-msgstr[0] "%s användare blockerad/avblockerad"
-msgstr[1] "%s användare blockerade/avblockerade"
-
-#: ../../mod/admin.php:634
-#, php-format
-msgid "%s user deleted"
-msgid_plural "%s users deleted"
-msgstr[0] "%s användare borttagen"
-msgstr[1] "%s användare borttagna"
-
-#: ../../mod/admin.php:665
-msgid "Account not found"
-msgstr "Konto hittas inte"
-
-#: ../../mod/admin.php:676
-#, php-format
-msgid "User '%s' deleted"
-msgstr "Användare '%s' borttagen"
-
-#: ../../mod/admin.php:685
-#, php-format
-msgid "User '%s' unblocked"
-msgstr "Användare '%s' avblockerad"
-
-#: ../../mod/admin.php:685
-#, php-format
-msgid "User '%s' blocked"
-msgstr "Användare '%s' blockerad"
-
-#: ../../mod/admin.php:749 ../../mod/admin.php:761
-msgid "Users"
-msgstr "Användare"
-
-#: ../../mod/admin.php:751 ../../mod/admin.php:885
-msgid "select all"
-msgstr "välj alla"
-
-#: ../../mod/admin.php:752
-msgid "User registrations waiting for confirm"
-msgstr "Användarregistreringar som inväntar bekräftelse"
-
-#: ../../mod/admin.php:753
-msgid "Request date"
-msgstr "Ansökningsdatum"
-
-#: ../../mod/admin.php:754
-msgid "No registrations."
-msgstr "Inga registreringar."
-
-#: ../../mod/admin.php:755
-msgid "Approve"
-msgstr "Godkänn"
-
-#: ../../mod/admin.php:756
-msgid "Deny"
-msgstr "Avslå"
-
-#: ../../mod/admin.php:758 ../../mod/connedit.php:339
-#: ../../mod/connedit.php:481
-msgid "Block"
-msgstr "Blockera"
-
-#: ../../mod/admin.php:759 ../../mod/connedit.php:339
-#: ../../mod/connedit.php:481
-msgid "Unblock"
-msgstr "Avblockera"
-
-#: ../../mod/admin.php:762
-msgid "Register date"
-msgstr "Registreringsdatum"
-
-#: ../../mod/admin.php:762
-msgid "Last login"
-msgstr "Senaste inloggning"
-
-#: ../../mod/admin.php:762
-msgid "Expires"
-msgstr "Upphör att gälla"
-
-#: ../../mod/admin.php:762
-msgid "Service Class"
-msgstr "Tjänsteklass"
-
-#: ../../mod/admin.php:764
-msgid ""
-"Selected users will be deleted!\\n\\nEverything these users had posted on "
-"this site will be permanently deleted!\\n\\nAre you sure?"
-msgstr "Valda användare kommer att tas bort!\\n\\nAllt dessa användare har postat på den här servern kommer att raderas permanent!\\n\\nÄr du säker?"
-
-#: ../../mod/admin.php:765
+#: ../../mod/post.php:229
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 "Användaren {0} kommer att tas bort!\\n\\nAllt den här användaren har postat på den här servern kommer att raderas permanent!\\n\\nÄr du säker?"
-
-#: ../../mod/admin.php:797
-#, php-format
-msgid "%s channel censored/uncensored"
-msgid_plural "%s channelss censored/uncensored"
-msgstr[0] "%s kanal censurerad/avcensurerad"
-msgstr[1] "%s kanaler censurerade/avcensurerade"
-
-#: ../../mod/admin.php:804
-#, php-format
-msgid "%s channel deleted"
-msgid_plural "%s channels deleted"
-msgstr[0] "%s kanal borttagen"
-msgstr[1] "%s kanaler borttagna"
-
-#: ../../mod/admin.php:823
-msgid "Channel not found"
-msgstr "Kanal hittas inte"
-
-#: ../../mod/admin.php:834
-#, php-format
-msgid "Channel '%s' deleted"
-msgstr "Kanalen '%s' togs bort"
-
-#: ../../mod/admin.php:844
-#, php-format
-msgid "Channel '%s' uncensored"
-msgstr "Kanal '%s' avcensurerad"
+"Remote authentication blocked. You are logged into this site locally. Please"
+" logout and retry."
+msgstr "Fjärrinloggning blockerades. Du är inloggad på den här servern lokalt. Logga ut och försök igen."
-#: ../../mod/admin.php:844
+#: ../../mod/post.php:261 ../../mod/openid.php:72 ../../mod/openid.php:180
#, php-format
-msgid "Channel '%s' censored"
-msgstr "Kanal '%s' censurerad"
-
-#: ../../mod/admin.php:887
-msgid "Censor"
-msgstr "Censurera"
-
-#: ../../mod/admin.php:888
-msgid "Uncensor"
-msgstr "Avcensurera"
-
-#: ../../mod/admin.php:891
-msgid "UID"
-msgstr "UID"
-
-#: ../../mod/admin.php:891 ../../mod/profiles.php:337
-msgid "Address"
-msgstr "Adress"
-
-#: ../../mod/admin.php:893
-msgid ""
-"Selected channels will be deleted!\\n\\nEverything that was posted in these "
-"channels on this site will be permanently deleted!\\n\\nAre you sure?"
-msgstr "Valda kanaler kommer att tas bort!\\n\\nAllt som har postats i de kanalerna på den här servern kommer att raderas permanent!\\n\\nÄr du säker?"
+msgid "Welcome %s. Remote authentication successful."
+msgstr "Välkommen %s. Fjärrinloggning lyckades."
-#: ../../mod/admin.php:894
-msgid ""
-"The channel {0} will be deleted!\\n\\nEverything that was posted in this "
-"channel on this site will be permanently deleted!\\n\\nAre you sure?"
-msgstr "Kanalen {0} kommer att tas bort!\\n\\nAllt som har postats i den här kanalen på den här servern kommer att raderas permanent!\\n\\nÄr du säker?"
+#: ../../mod/connections.php:37 ../../mod/connedit.php:64
+msgid "Could not access contact record."
+msgstr "Kunde inte komma åt kontaktuppgifter."
-#: ../../mod/admin.php:933
-#, php-format
-msgid "Plugin %s disabled."
-msgstr "Tillägg %s inaktiverat."
+#: ../../mod/connections.php:51 ../../mod/connedit.php:86
+msgid "Could not locate selected profile."
+msgstr "Kunde inte hitta vald profil."
-#: ../../mod/admin.php:937
-#, php-format
-msgid "Plugin %s enabled."
-msgstr "Tillägg %s aktiverat."
+#: ../../mod/connections.php:94 ../../mod/connedit.php:140
+msgid "Connection updated."
+msgstr "Kontakt uppdaterad."
-#: ../../mod/admin.php:947 ../../mod/admin.php:1149
-msgid "Disable"
-msgstr "Inaktivera"
+#: ../../mod/connections.php:96 ../../mod/connedit.php:142
+msgid "Failed to update connection record."
+msgstr "Misslyckades att uppdatera kontaktuppgifter."
-#: ../../mod/admin.php:949 ../../mod/admin.php:1151
-msgid "Enable"
-msgstr "Aktivera"
+#: ../../mod/connections.php:191 ../../mod/connections.php:292
+msgid "Blocked"
+msgstr "Blockerade"
-#: ../../mod/admin.php:975 ../../mod/admin.php:1180
-msgid "Toggle"
-msgstr "Växla"
+#: ../../mod/connections.php:196 ../../mod/connections.php:299
+msgid "Ignored"
+msgstr "Ignorerade"
-#: ../../mod/admin.php:983 ../../mod/admin.php:1190
-msgid "Author: "
-msgstr "Författare:"
+#: ../../mod/connections.php:201 ../../mod/connections.php:313
+msgid "Hidden"
+msgstr "Dolda"
-#: ../../mod/admin.php:984 ../../mod/admin.php:1191
-msgid "Maintainer: "
-msgstr "Underhållare:"
+#: ../../mod/connections.php:206 ../../mod/connections.php:306
+msgid "Archived"
+msgstr "Arkiverade"
-#: ../../mod/admin.php:1113
-msgid "No themes found."
-msgstr "Inga teman funna."
+#: ../../mod/connections.php:230 ../../mod/connections.php:245
+msgid "All"
+msgstr "Alla"
-#: ../../mod/admin.php:1172
-msgid "Screenshot"
-msgstr "Skärmdump"
+#: ../../mod/connections.php:270
+msgid "Suggest new connections"
+msgstr "Föreslå nya kontakter"
-#: ../../mod/admin.php:1220
-msgid "[Experimental]"
-msgstr "[Experimentellt]"
+#: ../../mod/connections.php:273
+msgid "New Connections"
+msgstr "Nya kontakter"
-#: ../../mod/admin.php:1221
-msgid "[Unsupported]"
-msgstr "[Utan support]"
+#: ../../mod/connections.php:276
+msgid "Show pending (new) connections"
+msgstr "Visa väntande (nya) kontakter"
-#: ../../mod/admin.php:1248
-msgid "Log settings updated."
-msgstr "Logginställningar uppdaterade."
+#: ../../mod/connections.php:282
+msgid "Show all connections"
+msgstr "Visa alla kontakter"
-#: ../../mod/admin.php:1304
-msgid "Clear"
-msgstr "Rensa"
+#: ../../mod/connections.php:285
+msgid "Unblocked"
+msgstr "Ej blockerade"
-#: ../../mod/admin.php:1310
-msgid "Debugging"
-msgstr "Avlusning"
+#: ../../mod/connections.php:288
+msgid "Only show unblocked connections"
+msgstr "Visa endast ej blockerade kontakter"
-#: ../../mod/admin.php:1311
-msgid "Log file"
-msgstr "Loggfil"
+#: ../../mod/connections.php:295
+msgid "Only show blocked connections"
+msgstr "Visa endast blockerade kontakter"
-#: ../../mod/admin.php:1311
-msgid ""
-"Must be writable by web server. Relative to your Red top-level directory."
-msgstr "Måste vara skrivbar för webbservern. Anges relativt Reds toppkatalog."
+#: ../../mod/connections.php:302
+msgid "Only show ignored connections"
+msgstr "Visa endast ignorerade kontakter"
-#: ../../mod/admin.php:1312
-msgid "Log level"
-msgstr "Loggnivå"
+#: ../../mod/connections.php:309
+msgid "Only show archived connections"
+msgstr "Visa endast arkiverade kontakter"
-#: ../../mod/filer.php:49
-msgid "- select -"
-msgstr "- välj -"
+#: ../../mod/connections.php:316
+msgid "Only show hidden connections"
+msgstr "Visa endast dolda kontakter"
-#: ../../mod/home.php:89
+#: ../../mod/connections.php:371
#, php-format
-msgid "Welcome to %s"
-msgstr "Välkommen till %s"
-
-#: ../../mod/setup.php:162
-msgid "Red Matrix Server - Setup"
-msgstr "Red Matrix-server - inställningar"
-
-#: ../../mod/setup.php:168
-msgid "Could not connect to database."
-msgstr "Kunde inte ansluta till databasen."
-
-#: ../../mod/setup.php:172
-msgid ""
-"Could not connect to specified site URL. Possible SSL certificate or DNS "
-"issue."
-msgstr "Kunde inte ansluta till den angivna server-URL:en. Möjligt problem med SSL-certifikat eller DNS."
-
-#: ../../mod/setup.php:179
-msgid "Could not create table."
-msgstr "Kunde inte skapa tabell."
-
-#: ../../mod/setup.php:185
-msgid "Your site database has been installed."
-msgstr "Din serverdatabas har installerats."
-
-#: ../../mod/setup.php:190
-msgid ""
-"You may need to import the file \"install/database.sql\" manually using "
-"phpmyadmin or mysql."
-msgstr "Du kan behöva importera filen \"install/database.sql\" manuellt med phpmyadmin eller mysql."
-
-#: ../../mod/setup.php:191 ../../mod/setup.php:260 ../../mod/setup.php:641
-msgid "Please see the file \"install/INSTALL.txt\"."
-msgstr "Se filen \"install/INSTALL.txt\"."
-
-#: ../../mod/setup.php:257
-msgid "System check"
-msgstr "Systemkontroll"
-
-#: ../../mod/setup.php:262
-msgid "Check again"
-msgstr "Kontrollera igen"
-
-#: ../../mod/setup.php:284
-msgid "Database connection"
-msgstr "Databasanslutning"
-
-#: ../../mod/setup.php:285
-msgid ""
-"In order to install Red Matrix we need to know how to connect to your "
-"database."
-msgstr "För att kunna installera Red Matrix behöver vi veta hur databasen ska anslutas."
-
-#: ../../mod/setup.php:286
-msgid ""
-"Please contact your hosting provider or site administrator if you have "
-"questions about these settings."
-msgstr "Kontakta din servervärd eller administratör om du har frågor om de här inställningarna."
-
-#: ../../mod/setup.php:287
-msgid ""
-"The database you specify below should already exist. If it does not, please "
-"create it before continuing."
-msgstr "Databasen du anger nedan måste finnas. Om den inte gör det, skapa den innan du fortsätter."
-
-#: ../../mod/setup.php:291
-msgid "Database Server Name"
-msgstr "Databasserver"
-
-#: ../../mod/setup.php:291
-msgid "Default is localhost"
-msgstr "Standard är localhost"
-
-#: ../../mod/setup.php:292
-msgid "Database Port"
-msgstr "Databasport"
-
-#: ../../mod/setup.php:292
-msgid "Communication port number - use 0 for default"
-msgstr "Kommunikationsportnummer - använd 0 för standardinställning"
-
-#: ../../mod/setup.php:293
-msgid "Database Login Name"
-msgstr "Loginnamn till databas"
-
-#: ../../mod/setup.php:294
-msgid "Database Login Password"
-msgstr "Lösenord till databas"
-
-#: ../../mod/setup.php:295
-msgid "Database Name"
-msgstr "Databasnamn"
-
-#: ../../mod/setup.php:297 ../../mod/setup.php:339
-msgid "Site administrator email address"
-msgstr "Serveradministratörens e-postadress"
-
-#: ../../mod/setup.php:297 ../../mod/setup.php:339
-msgid ""
-"Your account email address must match this in order to use the web admin "
-"panel."
-msgstr "Ditt kontos e-postadress måste stämma med den här för att webbgränssnittet för administration ska kunna användas."
-
-#: ../../mod/setup.php:298 ../../mod/setup.php:341
-msgid "Website URL"
-msgstr "Webbplatsens URL"
-
-#: ../../mod/setup.php:298 ../../mod/setup.php:341
-msgid "Please use SSL (https) URL if available."
-msgstr "Ange en URL med SSL (https) om tillgängligt"
-
-#: ../../mod/setup.php:301 ../../mod/setup.php:344
-msgid "Please select a default timezone for your website"
-msgstr "Välj en standardtidszon för din webbplats"
-
-#: ../../mod/setup.php:328
-msgid "Site settings"
-msgstr "Serverinställningar"
-
-#: ../../mod/setup.php:387
-msgid "Could not find a command line version of PHP in the web server PATH."
-msgstr "Kunde inte hitta en kommandoradsversion av PHP i webbserverns PATH."
-
-#: ../../mod/setup.php:388
-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 "Om du inte har en kommandoradsversion av PHP installerad på servern kommer du inte att kunna köra bakgrundshämtning via cron."
-
-#: ../../mod/setup.php:392
-msgid "PHP executable path"
-msgstr "Sökväg till PHP-programmet"
-
-#: ../../mod/setup.php:392
-msgid ""
-"Enter full path to php executable. You can leave this blank to continue the "
-"installation."
-msgstr "Ange hela sökvägen till php-programfilen. Du kan lämna det här blankt för att fortsätta installationen."
-
-#: ../../mod/setup.php:397
-msgid "Command line PHP"
-msgstr "Kommandorads-PHP"
-
-#: ../../mod/setup.php:406
-msgid ""
-"The command line version of PHP on your system does not have "
-"\"register_argc_argv\" enabled."
-msgstr "Kommandoradsversionen av PHP på ditt system har inte \"register_argc_argv\" aktiverat."
-
-#: ../../mod/setup.php:407
-msgid "This is required for message delivery to work."
-msgstr "Det här behövs för att meddelandeleverans ska fungera."
-
-#: ../../mod/setup.php:409
-msgid "PHP register_argc_argv"
-msgstr "PHP register_argc_argv"
-
-#: ../../mod/setup.php:430
-msgid ""
-"Error: the \"openssl_pkey_new\" function on this system is not able to "
-"generate encryption keys"
-msgstr "Fel: \"openssl_pkey_new\"-funktionen på det här systemet kan inte generera kryptonycklar"
-
-#: ../../mod/setup.php:431
-msgid ""
-"If running under Windows, please see "
-"\"http://www.php.net/manual/en/openssl.installation.php\"."
-msgstr "Om systemet kör Windows, se \"http://www.php.net/manual/en/openssl.installation.php\"."
-
-#: ../../mod/setup.php:433
-msgid "Generate encryption keys"
-msgstr "Generera kryptonycklar"
-
-#: ../../mod/setup.php:440
-msgid "libCurl PHP module"
-msgstr "PHP-modulen libCurl"
-
-#: ../../mod/setup.php:441
-msgid "GD graphics PHP module"
-msgstr "PHP-modulen GD graphics"
-
-#: ../../mod/setup.php:442
-msgid "OpenSSL PHP module"
-msgstr "PHP-modulen OpenSSL"
-
-#: ../../mod/setup.php:443
-msgid "mysqli PHP module"
-msgstr "PHP-modulen mysqli"
-
-#: ../../mod/setup.php:444
-msgid "mb_string PHP module"
-msgstr "PHP-modulen mb_string"
-
-#: ../../mod/setup.php:445
-msgid "mcrypt PHP module"
-msgstr "PHP-modulen mcrypt"
-
-#: ../../mod/setup.php:450 ../../mod/setup.php:452
-msgid "Apache mod_rewrite module"
-msgstr "Apache-modulen mod_rewrite"
-
-#: ../../mod/setup.php:450
-msgid ""
-"Error: Apache webserver mod-rewrite module is required but not installed."
-msgstr "Fel: Apache-webbserverns mod-rewrite-modul krävs men är inte installerad."
-
-#: ../../mod/setup.php:456 ../../mod/setup.php:459
-msgid "proc_open"
-msgstr "proc_open"
-
-#: ../../mod/setup.php:456
-msgid ""
-"Error: proc_open is required but is either not installed or has been "
-"disabled in php.ini"
-msgstr "Fel: proc_open krävs men är antingen inte installerad eller har inaktiverats i php.ini"
-
-#: ../../mod/setup.php:464
-msgid "Error: libCURL PHP module required but not installed."
-msgstr "Fel: PHP-modulen libCURL krävs men är inte installerad."
-
-#: ../../mod/setup.php:468
-msgid ""
-"Error: GD graphics PHP module with JPEG support required but not installed."
-msgstr "Fel: PHP-modulen GD graphics med JPEG-stöd krävs men är inte installerad."
-
-#: ../../mod/setup.php:472
-msgid "Error: openssl PHP module required but not installed."
-msgstr "Fel: PHP-modulen openssl krävs men är inte installerad."
-
-#: ../../mod/setup.php:476
-msgid "Error: mysqli PHP module required but not installed."
-msgstr "Fel: PHP-modulen mysqli krävs men är inte installerad."
-
-#: ../../mod/setup.php:480
-msgid "Error: mb_string PHP module required but not installed."
-msgstr "Fel: PHP-modulen mb_string krävs men är inte installerad."
-
-#: ../../mod/setup.php:484
-msgid "Error: mcrypt PHP module required but not installed."
-msgstr "Fel: PHP-modulen mcrypt krävs men är inte installerad."
-
-#: ../../mod/setup.php:500
-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 "Webbinstallationen måste kunna skapa filen \".htconfig.php\" i toppkatalogen på din webbserver men kan inte göra det."
-
-#: ../../mod/setup.php:501
-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 "Det är ofta en behörighetsinställning som gör att webbservern inte kan skriva filer i din katalog - även om du kan."
-
-#: ../../mod/setup.php:502
-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 "Efter den här proceduren kommer vi att ge dig en text att spara i filen .htconfig.php i Reds toppkatalog."
-
-#: ../../mod/setup.php:503
-msgid ""
-"You can alternatively skip this procedure and perform a manual installation."
-" Please see the file \"install/INSTALL.txt\" for instructions."
-msgstr "Alternativt kan du hoppa över den här proceduren och göra en manuell installation. För instruktioner, se filen \"install/INSTALL.txt\"."
-
-#: ../../mod/setup.php:506
-msgid ".htconfig.php is writable"
-msgstr ".htconfig.php är skrivbar"
-
-#: ../../mod/setup.php:516
-msgid ""
-"Red uses the Smarty3 template engine to render its web views. Smarty3 "
-"compiles templates to PHP to speed up rendering."
-msgstr "Red använder mallmotorn Smarty3 för att rendera webbvyerna. Smarty3 kompilerar mallar till PHP för att snabba upp renderingen."
-
-#: ../../mod/setup.php:517
-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 "För att kunna spara de här kompilerade mallarna behöver webbservern ha skrivrättigheter i katalogen view/tpl/smarty3/ under Reds toppkatalog."
-
-#: ../../mod/setup.php:518 ../../mod/setup.php:536
-msgid ""
-"Please ensure that the user that your web server runs as (e.g. www-data) has"
-" write access to this folder."
-msgstr "Försäkra dig om att användaren som din webbserver kör som (t.ex. www-data) har skrivrättigheter till den här katalogen."
-
-#: ../../mod/setup.php:519
-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 "Observera: som en säkerhetsåtgärd bör du ge webbservern skrivrättigheter endast till view/tpl/smarty3 - inte till mallfilerna (.tpl) som den innehåller."
-
-#: ../../mod/setup.php:522
-msgid "view/tpl/smarty3 is writable"
-msgstr "view/tpl/smarty3 är skrivbar"
-
-#: ../../mod/setup.php:535
-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 använder katalogen store för att spara uppladdade filer. Webbservern behöver ha skrivrättigheter till katalogen store under Reds toppkatalog."
-
-#: ../../mod/setup.php:539
-msgid "store is writable"
-msgstr "store är skrivbar"
-
-#: ../../mod/setup.php:554
-msgid ""
-"SSL certificate cannot be validated. Fix certificate or disable https access"
-" to this site."
-msgstr "SSL-certifikatet kan inte valideras. Fixa certifikatet eller inaktivera https-åtkomst till den här servern."
-
-#: ../../mod/setup.php:555
-msgid ""
-"If you use https access, you MUST use a certification instance known by all "
-"internet browsers. You MUST NOT use self-signed certificates!"
-msgstr "Om du använder https-åtkomst MÅSTE du använda ett certifikat som känns igen av alla webbläsare. Du FÅR INTE använda självsignerade certifikat!"
-
-#: ../../mod/setup.php:556
-msgid ""
-"This restriction is incorporated because public posts from you may for "
-"example contain references to images on your own hub. If your"
-msgstr "Den här restriktionen finns för att offentliga inlägg från dig till exempel kan innehålla referenser till bilder på din egen hubb. Om ditt"
-
-#: ../../mod/setup.php:557
-msgid ""
-"certificate is not known by the internet browser of users they get a warning"
-" message complaining about some security issues. Although"
-msgstr "certifikat inte känns igen av användares webbläsare får de ett varningsmeddelande om säkerhetsproblem. Även om"
-
-#: ../../mod/setup.php:558
-msgid ""
-"these complains are not the real truth - there are no security issues with "
-"your encryption! - the users may be confused, nerved or even"
-msgstr "de här varningarna inte är helt sanna - det är inga säkerhetsproblem med din kryptering! - så kan användare bli förvirrade, nervösa eller"
-
-#: ../../mod/setup.php:559
-msgid ""
-"worse may become scared about redmatrix having security issues. Use one of "
-"the free certification instances!"
-msgstr "ännu värre, bli skrämda att redmatrix skulle ha säkerhetsproblem. Använd en av utfärdarna av gratis certifikat."
-
-#: ../../mod/setup.php:561
-msgid "SSL certificate validation"
-msgstr "SSL-certifikatvalidering"
-
-#: ../../mod/setup.php:568
-msgid ""
-"Url rewrite in .htaccess is not working. Check your server configuration."
-msgstr "URL rewrite i .htaccess fungerar inte. Kontrollera din serverkonfiguration."
-
-#: ../../mod/setup.php:570
-msgid "Url rewrite is working"
-msgstr "URL rewrite fungerar"
-
-#: ../../mod/setup.php:580
-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 "Databaskonfigurationsfilen \".htconfig.php\" kunde inte skrivas. Använd den bifogade texten för att skapa en konfigurationsfil i din webbservers rot."
-
-#: ../../mod/setup.php:604
-msgid "Errors encountered creating database tables."
-msgstr "Fel inträffade när databastabeller skulle skapas."
-
-#: ../../mod/setup.php:639
-msgid "<h1>What next</h1>"
-msgstr "<h1>Nästa steg</h1>"
-
-#: ../../mod/setup.php:640
-msgid ""
-"IMPORTANT: You will need to [manually] setup a scheduled task for the "
-"poller."
-msgstr "VIKTIGT: Du behöver ställa in en schemalagd för hämtningsrutinen [manuellt]"
-
-#: ../../mod/directory.php:148 ../../mod/profiles.php:561
-#: ../../mod/dirprofile.php:98
-msgid "Age: "
-msgstr "Ã…lder:"
-
-#: ../../mod/directory.php:151 ../../mod/dirprofile.php:101
-msgid "Gender: "
-msgstr "Kön:"
-
-#: ../../mod/directory.php:212
-msgid "Finding:"
-msgstr "Sökning efter:"
-
-#: ../../mod/directory.php:220
-msgid "next page"
-msgstr "nästa sida"
-
-#: ../../mod/directory.php:220
-msgid "previous page"
-msgstr "föregående sida"
-
-#: ../../mod/directory.php:227
-msgid "No entries (some entries may be hidden)."
-msgstr "Inga resultat (vissa resultat kan vara dolda)."
+msgid "%1$s [%2$s]"
+msgstr "%1$s [%2$s]"
-#: ../../mod/lockview.php:30 ../../mod/lockview.php:36
-msgid "Remote privacy information not available."
-msgstr "Icke-lokal integritetsinformation är inte tillgänglig"
+#: ../../mod/connections.php:372
+msgid "Edit connection"
+msgstr "Redigera kontakt"
-#: ../../mod/lockview.php:45
-msgid "Visible to:"
-msgstr "Synlig för:"
+#: ../../mod/connections.php:410
+msgid "Search your connections"
+msgstr "Sök bland dina kontakter"
-#: ../../mod/connedit.php:49 ../../mod/connections.php:37
-msgid "Could not access contact record."
-msgstr "Kunde inte komma åt kontaktuppgifter."
+#: ../../mod/connections.php:411
+msgid "Finding: "
+msgstr "Sökning efter: "
-#: ../../mod/connedit.php:63 ../../mod/connections.php:51
-msgid "Could not locate selected profile."
-msgstr "Kunde inte hitta vald profil."
+#: ../../mod/openid.php:26
+msgid "OpenID protocol error. No ID returned."
+msgstr "Protokollfel för OpenID. Inget ID returnerades."
-#: ../../mod/connedit.php:107 ../../mod/connections.php:94
-msgid "Connection updated."
-msgstr "Kontakt uppdaterad."
+#: ../../mod/rpost.php:97 ../../mod/editpost.php:42
+msgid "Edit post"
+msgstr "Redigera inlägg"
-#: ../../mod/connedit.php:109 ../../mod/connections.php:96
-msgid "Failed to update connection record."
-msgstr "Misslyckades att uppdatera kontaktuppgifter."
+#: ../../mod/connedit.php:189
+msgid "is now connected to"
+msgstr "har nu kontakt med"
-#: ../../mod/connedit.php:210
+#: ../../mod/connedit.php:310
msgid "Could not access address book record."
msgstr "Kunde inte komma åt adressboksuppgifter."
-#: ../../mod/connedit.php:224
+#: ../../mod/connedit.php:324
msgid "Refresh failed - channel is currently unavailable."
msgstr "Uppdatering misslyckades - kanalen är inte tillgänglig."
-#: ../../mod/connedit.php:231
+#: ../../mod/connedit.php:331
msgid "Channel has been unblocked"
msgstr "Kanalen är inte längre blockerad"
-#: ../../mod/connedit.php:232
+#: ../../mod/connedit.php:332
msgid "Channel has been blocked"
msgstr "Kanalen har blockerats"
-#: ../../mod/connedit.php:236 ../../mod/connedit.php:248
-#: ../../mod/connedit.php:260 ../../mod/connedit.php:272
-#: ../../mod/connedit.php:287
+#: ../../mod/connedit.php:336 ../../mod/connedit.php:348
+#: ../../mod/connedit.php:360 ../../mod/connedit.php:372
+#: ../../mod/connedit.php:388
msgid "Unable to set address book parameters."
msgstr "Kunde inte ställa in adressboksparametrar."
-#: ../../mod/connedit.php:243
+#: ../../mod/connedit.php:343
msgid "Channel has been unignored"
msgstr "Kanalen ignoreras inte längre"
-#: ../../mod/connedit.php:244
+#: ../../mod/connedit.php:344
msgid "Channel has been ignored"
msgstr "Kanalen har ignorerats"
-#: ../../mod/connedit.php:255
+#: ../../mod/connedit.php:355
msgid "Channel has been unarchived"
msgstr "Kanalen arkiveras inte längre"
-#: ../../mod/connedit.php:256
+#: ../../mod/connedit.php:356
msgid "Channel has been archived"
msgstr "Kanalen har arkiverats"
-#: ../../mod/connedit.php:267
+#: ../../mod/connedit.php:367
msgid "Channel has been unhidden"
msgstr "Kanalen döljs inte längre"
-#: ../../mod/connedit.php:268
+#: ../../mod/connedit.php:368
msgid "Channel has been hidden"
msgstr "Kanalen har dolts"
-#: ../../mod/connedit.php:282
+#: ../../mod/connedit.php:383
msgid "Channel has been approved"
msgstr "Kanalen har godkänts"
-#: ../../mod/connedit.php:283
+#: ../../mod/connedit.php:384
msgid "Channel has been unapproved"
msgstr "Kanalen är inte godkänd längre"
-#: ../../mod/connedit.php:301
+#: ../../mod/connedit.php:412
msgid "Connection has been removed."
msgstr "Kontakten har tagits bort."
-#: ../../mod/connedit.php:321
+#: ../../mod/connedit.php:432
#, php-format
msgid "View %s's profile"
msgstr "Visa %ss profil"
-#: ../../mod/connedit.php:325
+#: ../../mod/connedit.php:436
msgid "Refresh Permissions"
msgstr "Uppdatera behörigheter"
-#: ../../mod/connedit.php:328
+#: ../../mod/connedit.php:439
msgid "Fetch updated permissions"
msgstr "Hämta uppdaterade behörigheter"
-#: ../../mod/connedit.php:332
+#: ../../mod/connedit.php:443
msgid "Recent Activity"
msgstr "Senaste aktiviteten"
-#: ../../mod/connedit.php:335
+#: ../../mod/connedit.php:446
msgid "View recent posts and comments"
msgstr "Visa de senaste inläggen och kommentarerna"
-#: ../../mod/connedit.php:342
+#: ../../mod/connedit.php:450 ../../mod/connedit.php:594
+#: ../../mod/admin.php:732
+msgid "Unblock"
+msgstr "Avblockera"
+
+#: ../../mod/connedit.php:450 ../../mod/connedit.php:594
+#: ../../mod/admin.php:731
+msgid "Block"
+msgstr "Blockera"
+
+#: ../../mod/connedit.php:453
msgid "Block or Unblock this connection"
msgstr "Blockera eller häv blockering av den här kontakten"
-#: ../../mod/connedit.php:346 ../../mod/connedit.php:482
+#: ../../mod/connedit.php:457 ../../mod/connedit.php:595
msgid "Unignore"
msgstr "Sluta att ignorera"
-#: ../../mod/connedit.php:346 ../../mod/connedit.php:482
+#: ../../mod/connedit.php:457 ../../mod/connedit.php:595
#: ../../mod/notifications.php:51
msgid "Ignore"
msgstr "Ignorera"
-#: ../../mod/connedit.php:349
+#: ../../mod/connedit.php:460
msgid "Ignore or Unignore this connection"
msgstr "Ignorera eller sluta att ignorera den här kontakten"
-#: ../../mod/connedit.php:352
+#: ../../mod/connedit.php:463
msgid "Unarchive"
msgstr "Sluta att arkivera"
-#: ../../mod/connedit.php:352
+#: ../../mod/connedit.php:463
msgid "Archive"
msgstr "Arkivera"
-#: ../../mod/connedit.php:355
+#: ../../mod/connedit.php:466
msgid "Archive or Unarchive this connection"
msgstr "Arkivera eller sluta att arkivera den här kontakten"
-#: ../../mod/connedit.php:358
+#: ../../mod/connedit.php:469
msgid "Unhide"
msgstr "Sluta att dölja"
-#: ../../mod/connedit.php:358
+#: ../../mod/connedit.php:469
msgid "Hide"
msgstr "Dölj"
-#: ../../mod/connedit.php:361
+#: ../../mod/connedit.php:472
msgid "Hide or Unhide this connection"
msgstr "Dölj eller sluta att dölja den här kontakten"
-#: ../../mod/connedit.php:368
+#: ../../mod/connedit.php:479
msgid "Delete this connection"
msgstr "Ta bort den här kontakten"
-#: ../../mod/connedit.php:401
-msgid "Unknown"
-msgstr "Okända"
-
-#: ../../mod/connedit.php:411 ../../mod/connedit.php:440
+#: ../../mod/connedit.php:522 ../../mod/connedit.php:552
msgid "Approve this connection"
msgstr "Godkänn den här kontakten"
-#: ../../mod/connedit.php:411
+#: ../../mod/connedit.php:522
msgid "Accept connection to allow communication"
msgstr "Acceptera kontakten för att tillåta kommunikation"
-#: ../../mod/connedit.php:427
-msgid "Automatic Permissions Settings"
-msgstr "Automatiska behörighetsinställningar"
-
-#: ../../mod/connedit.php:427
+#: ../../mod/connedit.php:538
#, php-format
msgid "Connections: settings for %s"
msgstr "Kontakter: inställningar för %s"
-#: ../../mod/connedit.php:431
-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 "När en kanal presenterar sig för dig kommer alla behörigheter här att gälla för den nya kontakten automatiskt och presentationen att godkännas. Lämna den här sidan om du inte önskar använda den här funktionen."
+#: ../../mod/connedit.php:539
+msgid "Apply these permissions automatically"
+msgstr "Använd de här rättigheterna automatiskt"
+
+#: ../../mod/connedit.php:543
+msgid "Apply the permissions indicated on this page to all new connections."
+msgstr "Använd rättigheterna angivna på den här sidan för alla nya kontakter."
-#: ../../mod/connedit.php:433
+#: ../../mod/connedit.php:545
msgid "Slide to adjust your degree of friendship"
msgstr "Dra för att justera er vänskapsnivå"
-#: ../../mod/connedit.php:439
+#: ../../mod/connedit.php:551
msgid "inherited"
msgstr "ärvd"
-#: ../../mod/connedit.php:441
+#: ../../mod/connedit.php:553
msgid "Connection has no individual permissions!"
msgstr "Kontakten har inga individuella behörigheter!"
-#: ../../mod/connedit.php:442
+#: ../../mod/connedit.php:554
msgid ""
"This may be appropriate based on your <a href=\"settings\">privacy "
"settings</a>, though you may wish to review the \"Advanced Permissions\"."
msgstr "Det här kan vara lämpligt beroende på dina <a href=\"settings\">integritetsinställningar</a>, men du vill kanske se över de \"Avancerade inställningarna\"."
-#: ../../mod/connedit.php:444
+#: ../../mod/connedit.php:556
msgid "Profile Visibility"
msgstr "Profilsynlighet"
-#: ../../mod/connedit.php:445
+#: ../../mod/connedit.php:557
#, php-format
msgid ""
"Please choose the profile you would like to display to %s when viewing your "
"profile securely."
msgstr "Välj profilen som du vill ska synas när %s ser din profil på ett säkert sätt."
-#: ../../mod/connedit.php:446
+#: ../../mod/connedit.php:558
msgid "Contact Information / Notes"
msgstr "Kontaktinformation / anteckningar"
-#: ../../mod/connedit.php:447
+#: ../../mod/connedit.php:559
msgid "Edit contact notes"
msgstr "Redigera anteckningar för kontakten"
-#: ../../mod/connedit.php:449
+#: ../../mod/connedit.php:561
msgid "Their Settings"
msgstr "Deras inställningar"
-#: ../../mod/connedit.php:450
+#: ../../mod/connedit.php:562
msgid "My Settings"
msgstr "Mina inställningar"
-#: ../../mod/connedit.php:452
+#: ../../mod/connedit.php:564
+msgid "Clear/Disable Automatic Permissions"
+msgstr "Rensa/inaktivera automatiska behörigheter"
+
+#: ../../mod/connedit.php:565
msgid "Forum Members"
msgstr "Forummedlemmar"
-#: ../../mod/connedit.php:453
+#: ../../mod/connedit.php:566
msgid "Soapbox"
msgstr "Talarstol"
-#: ../../mod/connedit.php:454
+#: ../../mod/connedit.php:567
msgid "Full Sharing (typical social network permissions)"
msgstr "Full delning (typiska behörigheter för sociala nätverk)"
-#: ../../mod/connedit.php:455
+#: ../../mod/connedit.php:568
msgid "Cautious Sharing "
msgstr "Försiktig delning"
-#: ../../mod/connedit.php:456
+#: ../../mod/connedit.php:569
msgid "Follow Only"
msgstr "Följ endast"
-#: ../../mod/connedit.php:457
+#: ../../mod/connedit.php:570
msgid "Individual Permissions"
msgstr "Individuella behörigheter"
-#: ../../mod/connedit.php:458
+#: ../../mod/connedit.php:571
msgid ""
"Some permissions may be inherited from your channel <a "
"href=\"settings\">privacy settings</a>, which have higher priority than "
@@ -5818,153 +5719,228 @@ msgid ""
"have no effect."
msgstr "Vissa behörigheter kan ärvas från din kanals <a href=\"settings\">integritetsinställningar</a>, vilka har högre prioritet än individuella inställningar. Ändring av de ärvda inställningarna på den här sidan har ingen effekt."
-#: ../../mod/connedit.php:459
+#: ../../mod/connedit.php:572
msgid "Advanced Permissions"
msgstr "Avancerade behörighetsinställningar"
-#: ../../mod/connedit.php:460
+#: ../../mod/connedit.php:573
msgid "Simple Permissions (select one and submit)"
msgstr "Enkla behörighetsinställningar (välj en och spara)"
-#: ../../mod/connedit.php:464
+#: ../../mod/connedit.php:577
#, php-format
msgid "Visit %s's profile - %s"
msgstr "Besök %ss profil - %s"
-#: ../../mod/connedit.php:465
+#: ../../mod/connedit.php:578
msgid "Block/Unblock contact"
msgstr "Blockera/häv blockering av kontakt"
-#: ../../mod/connedit.php:466
+#: ../../mod/connedit.php:579
msgid "Ignore contact"
msgstr "Ignorera kontakt"
-#: ../../mod/connedit.php:467
+#: ../../mod/connedit.php:580
msgid "Repair URL settings"
msgstr "Reparera URL-inställningar"
-#: ../../mod/connedit.php:468
+#: ../../mod/connedit.php:581
msgid "View conversations"
msgstr "Visa konversationer"
-#: ../../mod/connedit.php:470
+#: ../../mod/connedit.php:583
msgid "Delete contact"
msgstr "Ta bort kontakt"
-#: ../../mod/connedit.php:473
+#: ../../mod/connedit.php:586
msgid "Last update:"
msgstr "Senaste uppdatering:"
-#: ../../mod/connedit.php:475
+#: ../../mod/connedit.php:588
msgid "Update public posts"
msgstr "Uppdatera offentliga inlägg"
-#: ../../mod/connedit.php:477
+#: ../../mod/connedit.php:590
msgid "Update now"
msgstr "Uppdatera nu"
-#: ../../mod/connedit.php:483
+#: ../../mod/connedit.php:596
msgid "Currently blocked"
msgstr "Blockerad"
-#: ../../mod/connedit.php:484
+#: ../../mod/connedit.php:597
msgid "Currently ignored"
msgstr "Ignorerad"
-#: ../../mod/connedit.php:485
+#: ../../mod/connedit.php:598
msgid "Currently archived"
msgstr "Arkiverad"
-#: ../../mod/connedit.php:486
+#: ../../mod/connedit.php:599
msgid "Currently pending"
msgstr "Inväntar svar"
-#: ../../mod/connedit.php:487
+#: ../../mod/connedit.php:600
msgid "Hide this contact from others"
msgstr "Dölj den här kontakten för andra"
-#: ../../mod/connedit.php:487
+#: ../../mod/connedit.php:600
msgid ""
"Replies/likes to your public posts <strong>may</strong> still be visible"
msgstr "Svar/gilla-reaktioner på dina offentliga inlägg <strong>kan</strong> fortfarande synas"
-#: ../../mod/layouts.php:62
-msgid "Help with this feature"
-msgstr "Hjälp för den här funktionen"
+#: ../../mod/thing.php:96
+msgid "Thing updated"
+msgstr "Föremål uppdaterat"
-#: ../../mod/layouts.php:84
-msgid "Layout Name"
-msgstr "Layoutnamn"
+#: ../../mod/thing.php:156
+msgid "Object store: failed"
+msgstr "Objektlagring: misslyckades"
-#: ../../mod/help.php:43 ../../mod/help.php:49 ../../mod/help.php:55
-msgid "Help:"
-msgstr "Hjälp:"
+#: ../../mod/thing.php:160
+msgid "Thing added"
+msgstr "Föremål tillagt"
-#: ../../mod/help.php:69 ../../index.php:223
-msgid "Not Found"
-msgstr "Hittas inte"
+#: ../../mod/thing.php:180
+#, php-format
+msgid "OBJ: %1$s %2$s %3$s"
+msgstr "OBJ: %1$s %2$s %3$s"
-#: ../../mod/help.php:72 ../../mod/page.php:83 ../../mod/display.php:100
-#: ../../mod/block.php:75 ../../index.php:226
-msgid "Page not found."
-msgstr "Sidan hittas inte."
+#: ../../mod/thing.php:232
+msgid "Show Thing"
+msgstr "Visa föremål"
-#: ../../mod/rmagic.php:38
+#: ../../mod/thing.php:239
+msgid "item not found."
+msgstr "föremål hittades inte."
+
+#: ../../mod/thing.php:270
+msgid "Edit Thing"
+msgstr "Redigera föremål"
+
+#: ../../mod/thing.php:272 ../../mod/thing.php:319
+msgid "Select a profile"
+msgstr "Välj en profil"
+
+#: ../../mod/thing.php:276 ../../mod/thing.php:322
+msgid "Post an activity"
+msgstr "Posta en aktivitet"
+
+#: ../../mod/thing.php:276 ../../mod/thing.php:322
+msgid "Only sends to viewers of the applicable profile"
+msgstr "Skickar bara till de som tittar på den aktuella profilen"
+
+#: ../../mod/thing.php:278 ../../mod/thing.php:324
+msgid "Name of thing e.g. something"
+msgstr "Namn på föremål, t.ex. någonting"
+
+#: ../../mod/thing.php:280 ../../mod/thing.php:325
+msgid "URL of thing (optional)"
+msgstr "URL för föremål (frivilligt)"
+
+#: ../../mod/thing.php:282 ../../mod/thing.php:326
+msgid "URL for photo of thing (optional)"
+msgstr "URL för foto på föremål (frivilligt)"
+
+#: ../../mod/thing.php:317
+msgid "Add Thing to your Profile"
+msgstr "Lägg till föremål till din profil"
+
+#: ../../mod/lostpass.php:15
+msgid "No valid account found."
+msgstr "Inget giltigt konto hittades."
+
+#: ../../mod/lostpass.php:29
+msgid "Password reset request issued. Check your email."
+msgstr "Lösenordsåterställning har skickats. Kontrollera din e-post."
+
+#: ../../mod/lostpass.php:35 ../../mod/lostpass.php:102
+#, php-format
+msgid "Site Member (%s)"
+msgstr "Servermedlem (%s)"
+
+#: ../../mod/lostpass.php:40
+#, php-format
+msgid "Password reset requested at %s"
+msgstr "Lösenordsåterställning begärd på %s"
+
+#: ../../mod/lostpass.php:63
msgid ""
-"We encountered a problem while logging in with the OpenID you provided. "
-"Please check the correct spelling of the ID."
-msgstr "Vi drabbades av ett problem vid inloggningen med OpenID:t du uppgav. Kontrollera att ID:t är korrekt stavat."
+"Request could not be verified. (You may have previously submitted it.) "
+"Password reset failed."
+msgstr "Begäran kunde inte bekräftas. (Du kan ha skickat den tidigare.) Lösenordsåterställningen misslyckades."
-#: ../../mod/rmagic.php:38
-msgid "The error message was:"
-msgstr "Felmeddelandet var:"
+#: ../../mod/lostpass.php:85 ../../boot.php:1494
+msgid "Password Reset"
+msgstr "Lösenordsåterställning"
-#: ../../mod/rmagic.php:42
-msgid "Authentication failed."
-msgstr "Autentisering misslyckades."
+#: ../../mod/lostpass.php:86
+msgid "Your password has been reset as requested."
+msgstr "Ditt lösenord har återställts som begärt."
-#: ../../mod/rmagic.php:78
-msgid "Remote Authentication"
-msgstr "Fjärrautentisering."
+#: ../../mod/lostpass.php:87
+msgid "Your new password is"
+msgstr "Ditt nya lösenord är"
-#: ../../mod/rmagic.php:79
-msgid "Enter your channel address (e.g. channel@example.com)"
-msgstr "Ange din kanaladress (t.ex. kanal@example.com)"
+#: ../../mod/lostpass.php:88
+msgid "Save or copy your new password - and then"
+msgstr "Spara eller kopiera ditt nya lösenord - "
-#: ../../mod/rmagic.php:80
-msgid "Authenticate"
-msgstr "Autentisera"
+#: ../../mod/lostpass.php:89
+msgid "click here to login"
+msgstr "klicka sedan här för att logga in"
-#: ../../mod/page.php:35 ../../mod/block.php:27
-msgid "Invalid item."
-msgstr "Ogiltig post."
+#: ../../mod/lostpass.php:90
+msgid ""
+"Your password may be changed from the <em>Settings</em> page after "
+"successful login."
+msgstr "Ditt lösenord kan bytas från sidan <em>Inställningar</em> när du är inloggad."
-#: ../../mod/network.php:79
-msgid "No such group"
-msgstr "Ingen sådan grupp"
+#: ../../mod/lostpass.php:107
+#, php-format
+msgid "Your password has changed at %s"
+msgstr "Ditt lösenord byttes på %s"
-#: ../../mod/network.php:119
-msgid "Search Results For:"
-msgstr "Sökresultat för:"
+#: ../../mod/lostpass.php:122
+msgid "Forgot your Password?"
+msgstr "Glömt lösenordet?"
-#: ../../mod/network.php:173
-msgid "Collection is empty"
-msgstr "Sammanhanget är tomt"
+#: ../../mod/lostpass.php:123
+msgid ""
+"Enter your email address and submit to have your password reset. Then check "
+"your email for further instructions."
+msgstr "Ange din e-postadress och skicka för att återställa ditt lösenord. Kontrollera sedan din e-post för vidare instruktioner."
-#: ../../mod/network.php:181
-msgid "Collection: "
-msgstr "Sammanhang: "
+#: ../../mod/lostpass.php:124
+msgid "Email Address"
+msgstr "E-postadress"
-#: ../../mod/network.php:194
-msgid "Connection: "
-msgstr "Kontakt:"
+#: ../../mod/lostpass.php:125
+msgid "Reset"
+msgstr "Återställ"
-#: ../../mod/network.php:197
-msgid "Invalid connection."
-msgstr "Ogiltig kontakt."
+#: ../../mod/bookmarks.php:38
+msgid "Bookmark added"
+msgstr "Bokmärke tillagt"
+
+#: ../../mod/bookmarks.php:60
+msgid "My Bookmarks"
+msgstr "Mina bokmärken"
+
+#: ../../mod/bookmarks.php:71
+msgid "My Connections Bookmarks"
+msgstr "Mina kontakters bokmärken"
+
+#: ../../mod/dirsearch.php:21
+msgid "This site is not a directory server"
+msgstr "Den här servern är inte en katalogserver"
+
+#: ../../mod/cloud.php:130
+msgid "RedMatrix - Guests: Username: {your email address}, Password: +++"
+msgstr "RedMatrix - Gäster: Användarnamn {din e-postadress}, Lösenord: +++"
-#: ../../mod/profiles.php:18 ../../mod/profiles.php:138
-#: ../../mod/profiles.php:168 ../../mod/profiles.php:463
+#: ../../mod/profiles.php:18 ../../mod/profiles.php:165
+#: ../../mod/profiles.php:222 ../../mod/profiles.php:565
msgid "Profile not found."
msgstr "Profil hittades inte."
@@ -5984,561 +5960,652 @@ msgstr "Ny profil skapad."
msgid "Profile unavailable to clone."
msgstr "Profil inte tillgänglig för kloning."
-#: ../../mod/profiles.php:178
+#: ../../mod/profiles.php:136
+msgid "Profile unavailable to export."
+msgstr "Profil inte tillgänglig för export."
+
+#: ../../mod/profiles.php:232
msgid "Profile Name is required."
msgstr "Profilnamn krävs."
-#: ../../mod/profiles.php:294
+#: ../../mod/profiles.php:378
msgid "Marital Status"
msgstr "Civilstånd"
-#: ../../mod/profiles.php:298
+#: ../../mod/profiles.php:382
msgid "Romantic Partner"
msgstr "Romantisk partner"
-#: ../../mod/profiles.php:302
+#: ../../mod/profiles.php:386
msgid "Likes"
msgstr "Gillar"
-#: ../../mod/profiles.php:306
+#: ../../mod/profiles.php:390
msgid "Dislikes"
msgstr "Ogillar"
-#: ../../mod/profiles.php:310
+#: ../../mod/profiles.php:394
msgid "Work/Employment"
msgstr "Arbete/sysselsättning"
-#: ../../mod/profiles.php:313
+#: ../../mod/profiles.php:397
msgid "Religion"
msgstr "Religion"
-#: ../../mod/profiles.php:317
+#: ../../mod/profiles.php:401
msgid "Political Views"
msgstr "Politisk åskådning"
-#: ../../mod/profiles.php:321
+#: ../../mod/profiles.php:405
msgid "Gender"
msgstr "Kön"
-#: ../../mod/profiles.php:325
+#: ../../mod/profiles.php:409
msgid "Sexual Preference"
msgstr "Sexuell preferens"
-#: ../../mod/profiles.php:329
+#: ../../mod/profiles.php:413
msgid "Homepage"
msgstr "Hemsida"
-#: ../../mod/profiles.php:333
+#: ../../mod/profiles.php:417
msgid "Interests"
msgstr "Intressen"
-#: ../../mod/profiles.php:344 ../../mod/pubsites.php:31
-msgid "Location"
-msgstr "Plats"
+#: ../../mod/profiles.php:421 ../../mod/admin.php:866
+msgid "Address"
+msgstr "Adress"
-#: ../../mod/profiles.php:427
+#: ../../mod/profiles.php:511
msgid "Profile updated."
msgstr "Profil uppdaterad."
-#: ../../mod/profiles.php:482
+#: ../../mod/profiles.php:590
msgid "Hide your contact/friend list from viewers of this profile?"
msgstr "Dölj din kontakt-/vänlista för de som ser den här profilen"
-#: ../../mod/profiles.php:505
+#: ../../mod/profiles.php:632
msgid "Edit Profile Details"
msgstr "Redigera profildetaljer"
-#: ../../mod/profiles.php:507
+#: ../../mod/profiles.php:634
msgid "View this profile"
msgstr "Visa den här profilen"
-#: ../../mod/profiles.php:508
+#: ../../mod/profiles.php:636
msgid "Change Profile Photo"
msgstr "Byt profilfoto"
-#: ../../mod/profiles.php:509
+#: ../../mod/profiles.php:637
msgid "Create a new profile using these settings"
msgstr "Skapa en ny profil utifrån de här inställningarna"
-#: ../../mod/profiles.php:510
+#: ../../mod/profiles.php:638
msgid "Clone this profile"
msgstr "Klona den här profilen"
-#: ../../mod/profiles.php:511
+#: ../../mod/profiles.php:639
msgid "Delete this profile"
msgstr "Ta bort den här profilen"
-#: ../../mod/profiles.php:512
+#: ../../mod/profiles.php:641
+msgid "Import profile from file"
+msgstr "Importera profil från fil"
+
+#: ../../mod/profiles.php:642
+msgid "Export profile to file"
+msgstr "Exportera profil som fil"
+
+#: ../../mod/profiles.php:643
msgid "Profile Name:"
msgstr "Profilnamn:"
-#: ../../mod/profiles.php:513
+#: ../../mod/profiles.php:644
msgid "Your Full Name:"
msgstr "Ditt fulllständiga namn:"
-#: ../../mod/profiles.php:514
+#: ../../mod/profiles.php:645
msgid "Title/Description:"
msgstr "Titel/beskrivning:"
-#: ../../mod/profiles.php:515
+#: ../../mod/profiles.php:646
msgid "Your Gender:"
msgstr "Ditt kön:"
-#: ../../mod/profiles.php:516
-#, php-format
-msgid "Birthday (%s):"
-msgstr "Födelsedag (%s):"
+#: ../../mod/profiles.php:647
+msgid "Birthday :"
+msgstr "Födelsedag:"
-#: ../../mod/profiles.php:517
+#: ../../mod/profiles.php:648
msgid "Street Address:"
msgstr "Gatuadress:"
-#: ../../mod/profiles.php:518
+#: ../../mod/profiles.php:649
msgid "Locality/City:"
msgstr "Ort:"
-#: ../../mod/profiles.php:519
+#: ../../mod/profiles.php:650
msgid "Postal/Zip Code:"
msgstr "Postnummer:"
-#: ../../mod/profiles.php:520
+#: ../../mod/profiles.php:651
msgid "Country:"
msgstr "Land:"
-#: ../../mod/profiles.php:521
+#: ../../mod/profiles.php:652
msgid "Region/State:"
msgstr "Region:"
-#: ../../mod/profiles.php:522
+#: ../../mod/profiles.php:653
msgid "<span class=\"heart\">&hearts;</span> Marital Status:"
msgstr "<span class=\"heart\">&hearts;</span> Civilstånd:"
-#: ../../mod/profiles.php:523
+#: ../../mod/profiles.php:654
msgid "Who: (if applicable)"
msgstr "Vem: (om tillämpligt)"
-#: ../../mod/profiles.php:524
+#: ../../mod/profiles.php:655
msgid "Examples: cathy123, Cathy Williams, cathy@example.com"
msgstr "Exempel: cathy123, Cathy Williams, cathy@example.com"
-#: ../../mod/profiles.php:525
+#: ../../mod/profiles.php:656
msgid "Since [date]:"
msgstr "Sedan [datum]"
-#: ../../mod/profiles.php:527
+#: ../../mod/profiles.php:658
msgid "Homepage URL:"
msgstr "Hemsideadress:"
-#: ../../mod/profiles.php:530
+#: ../../mod/profiles.php:661
msgid "Religious Views:"
msgstr "Religion/livsåskådning:"
-#: ../../mod/profiles.php:531
+#: ../../mod/profiles.php:662
msgid "Keywords:"
msgstr "Nyckelord:"
-#: ../../mod/profiles.php:534
+#: ../../mod/profiles.php:665
msgid "Example: fishing photography software"
msgstr "Exempel: fiske fotografering mjukvara"
-#: ../../mod/profiles.php:535
+#: ../../mod/profiles.php:666
msgid "Used in directory listings"
msgstr "Används i kataloglistningar"
-#: ../../mod/profiles.php:536
+#: ../../mod/profiles.php:667
msgid "Tell us about yourself..."
msgstr "Beskriv dig själv..."
-#: ../../mod/profiles.php:537
+#: ../../mod/profiles.php:668
msgid "Hobbies/Interests"
msgstr "Fritidssysselsättning/intressen"
-#: ../../mod/profiles.php:538
+#: ../../mod/profiles.php:669
msgid "Contact information and Social Networks"
msgstr "Kontaktinformation och sociala nätverk"
-#: ../../mod/profiles.php:539
+#: ../../mod/profiles.php:670
msgid "My other channels"
msgstr "Mina andra kanaler"
-#: ../../mod/profiles.php:540
+#: ../../mod/profiles.php:671
msgid "Musical interests"
msgstr "Musikintressen"
-#: ../../mod/profiles.php:541
+#: ../../mod/profiles.php:672
msgid "Books, literature"
msgstr "Böcker, litteratur"
-#: ../../mod/profiles.php:542
+#: ../../mod/profiles.php:673
msgid "Television"
msgstr "Tv"
-#: ../../mod/profiles.php:543
+#: ../../mod/profiles.php:674
msgid "Film/dance/culture/entertainment"
msgstr "Film/dans/kultur/underhållning"
-#: ../../mod/profiles.php:544
+#: ../../mod/profiles.php:675
msgid "Love/romance"
msgstr "Kärlek/romantik"
-#: ../../mod/profiles.php:545
+#: ../../mod/profiles.php:676
msgid "Work/employment"
msgstr "Arbete/sysselsättning"
-#: ../../mod/profiles.php:546
+#: ../../mod/profiles.php:677
msgid "School/education"
msgstr "Skola/utbildning"
-#: ../../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 "Det här är din <strong>offentliga</strong> profil.<br />Den <strong>kan</strong> ses av vem som helst med tillgång till Internet."
+#: ../../mod/profiles.php:683
+msgid "This is your default profile."
+msgstr "Det här är din standardprofil."
-#: ../../mod/profiles.php:600
+#: ../../mod/profiles.php:694 ../../mod/directory.php:159
+msgid "Age: "
+msgstr "Ã…lder:"
+
+#: ../../mod/profiles.php:737
msgid "Edit/Manage Profiles"
msgstr "Redigera/hantera profiler"
-#: ../../mod/profiles.php:601
+#: ../../mod/profiles.php:738
msgid "Add profile things"
msgstr "Lägg till profilsaker"
-#: ../../mod/profiles.php:602
+#: ../../mod/profiles.php:739
msgid "Include desirable objects in your profile"
msgstr "Inkludera fina prylar i din profil"
-#: ../../mod/dirsearch.php:21
-msgid "This site is not a directory server"
-msgstr "Den här servern är inte en katalogserver"
+#: ../../mod/editblock.php:79 ../../mod/editblock.php:95
+#: ../../mod/editlayout.php:78 ../../mod/editpost.php:20
+#: ../../mod/editwebpage.php:77
+msgid "Item not found"
+msgstr "Posten hittas inte"
-#: ../../mod/sources.php:32
-msgid "Failed to create source. No channel selected."
-msgstr "Misslyckades att skapa källa. Ingen kanal vald."
+#: ../../mod/editblock.php:115
+msgid "Edit Block"
+msgstr "Redigera block"
-#: ../../mod/sources.php:45
-msgid "Source created."
-msgstr "Källa skapad."
+#: ../../mod/editblock.php:125
+msgid "Delete block?"
+msgstr "Ta bort block?"
-#: ../../mod/sources.php:57
-msgid "Source updated."
-msgstr "Källa uppdaterad."
+#: ../../mod/editblock.php:147 ../../mod/editlayout.php:143
+#: ../../mod/editpost.php:116 ../../mod/editwebpage.php:178
+msgid "Insert YouTube video"
+msgstr "Infoga Youtube-video"
-#: ../../mod/sources.php:82
-msgid "*"
-msgstr "*"
+#: ../../mod/editblock.php:148 ../../mod/editlayout.php:144
+#: ../../mod/editpost.php:117 ../../mod/editwebpage.php:179
+msgid "Insert Vorbis [.ogg] video"
+msgstr "Infoga Vorbis [.ogg]-video"
-#: ../../mod/sources.php:89
-msgid "Manage remote sources of content for your channel."
-msgstr "Hantera fjärrkällor med innehåll för din kanal."
+#: ../../mod/editblock.php:149 ../../mod/editlayout.php:145
+#: ../../mod/editpost.php:118 ../../mod/editwebpage.php:180
+msgid "Insert Vorbis [.ogg] audio"
+msgstr "Infoga Vorbis [.ogg]-ljud"
-#: ../../mod/sources.php:90 ../../mod/sources.php:100
-msgid "New Source"
-msgstr "Ny källa"
+#: ../../mod/editblock.php:183
+msgid "Delete Block"
+msgstr "Ta bort block"
-#: ../../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 "Importera allt eller valt innehåll från följande kanal till den här kanalen och distribuera det enligt dina kanalinställningar."
+#: ../../mod/pdledit.php:13
+msgid "Layout updated."
+msgstr "Layout uppdaterad."
-#: ../../mod/sources.php:102 ../../mod/sources.php:134
-msgid "Only import content with these words (one per line)"
-msgstr "Importera endast innehåll med de här orden (ett per rad)"
+#: ../../mod/pdledit.php:28 ../../mod/pdledit.php:53
+msgid "Edit System Page Description"
+msgstr "Redigera systemsidbeskrivning"
-#: ../../mod/sources.php:102 ../../mod/sources.php:134
-msgid "Leave blank to import all public content"
-msgstr "Lämna blankt för att importera allt offentligt innehåll"
+#: ../../mod/pdledit.php:48
+msgid "Layout not found."
+msgstr "Layout hittas inte."
-#: ../../mod/sources.php:103 ../../mod/sources.php:137
-#: ../../mod/new_channel.php:110
-msgid "Channel Name"
-msgstr "Kanalnamn"
+#: ../../mod/pdledit.php:54
+msgid "Module Name:"
+msgstr "Modulnamn:"
-#: ../../mod/sources.php:123 ../../mod/sources.php:150
-msgid "Source not found."
-msgstr "Källa hittades inte."
+#: ../../mod/pdledit.php:55 ../../mod/layouts.php:107
+msgid "Layout Help"
+msgstr "Layouthjälp"
-#: ../../mod/sources.php:130
-msgid "Edit Source"
-msgstr "Redigera källa"
+#: ../../mod/editlayout.php:108
+msgid "Edit Layout"
+msgstr "Redigera layout"
-#: ../../mod/sources.php:131
-msgid "Delete Source"
-msgstr "Ta bort källa"
+#: ../../mod/editlayout.php:117
+msgid "Delete layout?"
+msgstr "Ta bort layout?"
-#: ../../mod/sources.php:158
-msgid "Source removed"
-msgstr "Källa borttagen"
+#: ../../mod/editlayout.php:178
+msgid "Delete Layout"
+msgstr "Ta bort layout"
-#: ../../mod/sources.php:160
-msgid "Unable to remove source."
-msgstr "Kunde inte ta bort källa."
+#: ../../mod/editpost.php:31
+msgid "Item is not editable"
+msgstr "Posten går ej att redigera"
-#: ../../mod/blocks.php:66
-msgid "Block Name"
-msgstr "Blocknamn"
+#: ../../mod/editpost.php:53
+msgid "Delete item?"
+msgstr "Ta bort posten?"
-#: ../../mod/magic.php:70
-msgid "Hub not found."
-msgstr "Hubb hittades inte."
+#: ../../mod/editwebpage.php:140
+msgid "Edit Webpage"
+msgstr "Redigera webbsida"
-#: ../../mod/chat.php:19 ../../mod/channel.php:25
-msgid "You must be logged in to see this page."
-msgstr "Du måste vara inloggad för att se den här sidan."
+#: ../../mod/editwebpage.php:150
+msgid "Delete webpage?"
+msgstr "Ta bort webbsida?"
-#: ../../mod/chat.php:166
-msgid "Room not found"
-msgstr "Rum hittas inte"
+#: ../../mod/editwebpage.php:215
+msgid "Delete Webpage"
+msgstr "Ta bort webbsida"
-#: ../../mod/chat.php:176
-msgid "Leave Room"
-msgstr "Lämna rummet"
+#: ../../mod/impel.php:33
+msgid "webpage"
+msgstr "webbsida"
-#: ../../mod/chat.php:177
-msgid "I am away right now"
-msgstr "Jag är borta för tillfället"
+#: ../../mod/impel.php:38
+msgid "block"
+msgstr "block"
-#: ../../mod/chat.php:178
-msgid "I am online"
-msgstr "Jag är online"
+#: ../../mod/impel.php:43
+msgid "layout"
+msgstr "layout"
-#: ../../mod/chat.php:180
-msgid "Bookmark this room"
-msgstr "Bokmärk det här rummet"
+#: ../../mod/impel.php:117
+#, php-format
+msgid "%s element installed"
+msgstr "%selement installerat"
-#: ../../mod/chat.php:204 ../../mod/chat.php:226
-msgid "New Chatroom"
-msgstr "Nytt chattrum"
+#: ../../mod/profile_photo.php:108
+msgid "Image uploaded but image cropping failed."
+msgstr "Bilden laddades upp men beskärning misslyckades."
-#: ../../mod/chat.php:205
-msgid "Chatroom Name"
-msgstr "Namn på chattrum"
+#: ../../mod/profile_photo.php:161
+msgid "Image resize failed."
+msgstr "Ändring av bildstorlek misslyckades."
-#: ../../mod/chat.php:222
-#, php-format
-msgid "%1$s's Chatrooms"
-msgstr "%1$ss chattrum"
+#: ../../mod/profile_photo.php:205
+msgid ""
+"Shift-reload the page or clear browser cache if the new photo does not "
+"display immediately."
+msgstr "Shift-uppdatera sidan eller rensa webbläsarcachen om det nya fotot inte visas direkt."
-#: ../../mod/siteinfo.php:57
+#: ../../mod/profile_photo.php:232
#, php-format
-msgid "Version %s"
-msgstr "Version %s"
+msgid "Image exceeds size limit of %d"
+msgstr "Bilden överskrider storleksbegränsningen %d"
-#: ../../mod/siteinfo.php:76
-msgid "Installed plugins/addons/apps:"
-msgstr "Installerade tillägg/moduler/appar:"
+#: ../../mod/profile_photo.php:241
+msgid "Unable to process image."
+msgstr "Kunde inte behandla bilden."
-#: ../../mod/siteinfo.php:89
-msgid "No installed plugins/addons/apps"
-msgstr "Inga installerade tillägg/moduler/appar"
+#: ../../mod/profile_photo.php:290 ../../mod/profile_photo.php:339
+msgid "Photo not available."
+msgstr "Fotot är inte tillgängligt."
-#: ../../mod/siteinfo.php:97
-msgid "Red"
-msgstr "Red"
+#: ../../mod/profile_photo.php:358
+msgid "Upload File:"
+msgstr "Ladda upp fil:"
-#: ../../mod/siteinfo.php:98
-msgid ""
-"This is a hub of the Red Matrix - a global cooperative network of "
-"decentralised privacy enhanced websites."
-msgstr "Det här är en hubb som hör till Red Matrix - ett globalt samverkande nätverk av decentraliserade integritetsstärkta webbplatser."
+#: ../../mod/profile_photo.php:359
+msgid "Select a profile:"
+msgstr "Välj en profil:"
-#: ../../mod/siteinfo.php:101
-msgid "Running at web location"
-msgstr "Kör på webbutrymmet"
+#: ../../mod/profile_photo.php:360
+msgid "Upload Profile Photo"
+msgstr "Ladda upp profilfoto"
-#: ../../mod/siteinfo.php:102
-msgid ""
-"Please visit <a href=\"http://getzot.com\">GetZot.com</a> to learn more "
-"about the Red Matrix."
-msgstr "Besök <a href=\"http://getzot.com\">GetZot.com</a> lära dig mer om Red Matrix."
+#: ../../mod/profile_photo.php:365
+msgid "skip this step"
+msgstr "hoppa över det här steget"
-#: ../../mod/siteinfo.php:103
-msgid "Bug reports and issues: please visit"
-msgstr "Buggrapporter och problem: besök"
+#: ../../mod/profile_photo.php:365
+msgid "select a photo from your photo albums"
+msgstr "välj ett foto från dina fotoalbum"
-#: ../../mod/siteinfo.php:106
-msgid ""
-"Suggestions, praise, etc. - please email \"redmatrix\" at librelist - dot "
-"com"
-msgstr "Förslag, uppskattning, etc. - maila \"redmatrix\" at librelist - dot com"
+#: ../../mod/profile_photo.php:381
+msgid "Crop Image"
+msgstr "Beskär bild"
-#: ../../mod/siteinfo.php:108
-msgid "Site Administrators"
-msgstr "Serveradministratörer"
+#: ../../mod/profile_photo.php:382
+msgid "Please adjust the image cropping for optimum viewing."
+msgstr "Justera bildens beskärning för bästa utseende."
-#: ../../mod/new_channel.php:107
-msgid "Add a Channel"
-msgstr "Lägg till en kanal"
+#: ../../mod/profile_photo.php:384
+msgid "Done Editing"
+msgstr "Klar med redigering"
-#: ../../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 "En kanal är din egen samling av relaterade webbsidor. En kanal kan användas för att innehålla sociala nätverksprofiler, bloggar, konversationsgrupper och forum, fansidor, och mycket mer. Du kan skapa så många kanaler som din tjänsteleverantör tillåter."
+#: ../../mod/profile_photo.php:427
+msgid "Image uploaded successfully."
+msgstr "Bilduppladdning lyckades."
-#: ../../mod/new_channel.php:111
-msgid "Examples: \"Bob Jameson\", \"Lisa and her Horses\", \"Soccer\", \"Aviation Group\" "
-msgstr "Exempel: \"Bob Jameson\", \"Lisa och hennes hästar\", \"Fotboll\", \"Flyggruppen\" "
+#: ../../mod/profile_photo.php:429
+msgid "Image upload failed."
+msgstr "Bilduppladdning misslyckades."
-#: ../../mod/new_channel.php:112
-msgid "Choose a short nickname"
-msgstr "Välj ett kort smeknamn"
+#: ../../mod/profile_photo.php:438
+#, php-format
+msgid "Image size reduction [%s] failed."
+msgstr "Krympning av bilden [%s] misslyckades."
-#: ../../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 "Ditt smeknamn används för att skapa en kanaladress som är lätt att komma ihåg (som en e-postadress) som du kan dela med andra."
+#: ../../mod/item.php:159
+msgid "Unable to locate original post."
+msgstr "Kunde inte hitta originalinlägget."
-#: ../../mod/new_channel.php:114
-msgid "Or <a href=\"import\">import an existing channel</a> from another location"
-msgstr "Eller <a href=\"import\">importera en befintlig kanal</a> från en annan plats"
+#: ../../mod/item.php:418
+msgid "Empty post discarded."
+msgstr "Tomt inlägg förkastat."
-#: ../../mod/lostpass.php:15
-msgid "No valid account found."
-msgstr "Inget giltigt konto hittades."
+#: ../../mod/item.php:460
+msgid "Executable content type not permitted to this channel."
+msgstr "Körbart innehåll tillåts inte i den här kanalen."
-#: ../../mod/lostpass.php:29
-msgid "Password reset request issued. Check your email."
-msgstr "Lösenordsåterställning har skickats. Kontrollera din e-post."
+#: ../../mod/item.php:898
+msgid "System error. Post not saved."
+msgstr "Systemfel. Inlägget inte sparat."
-#: ../../mod/lostpass.php:35 ../../mod/lostpass.php:102
+#: ../../mod/item.php:1373
#, php-format
-msgid "Site Member (%s)"
-msgstr "Servermedlem (%s)"
+msgid "You have reached your limit of %1$.0f top level posts."
+msgstr "Du har nått din gräns på %1$.0f toppnivåinlägg."
-#: ../../mod/lostpass.php:40
+#: ../../mod/item.php:1379
#, php-format
-msgid "Password reset requested at %s"
-msgstr "Lösenordsåterställning begärd på %s"
+msgid "You have reached your limit of %1$.0f webpages."
+msgstr "Du har nått din gräns på %1$.0f webbsidor."
-#: ../../mod/lostpass.php:63
-msgid ""
-"Request could not be verified. (You may have previously submitted it.) "
-"Password reset failed."
-msgstr "Begäran kunde inte bekräftas. (Du kan ha skickat den tidigare.) Lösenordsåterställningen misslyckades."
+#: ../../mod/fsuggest.php:20 ../../mod/fsuggest.php:92
+msgid "Contact not found."
+msgstr "Kontakten hittades inte."
-#: ../../mod/lostpass.php:85 ../../boot.php:1454
-msgid "Password Reset"
-msgstr "Lösenordsåterställning"
+#: ../../mod/fsuggest.php:63
+msgid "Friend suggestion sent."
+msgstr "Vänförfrågan skickad."
-#: ../../mod/lostpass.php:86
-msgid "Your password has been reset as requested."
-msgstr "Ditt lösenord har återställts som begärt."
+#: ../../mod/fsuggest.php:97
+msgid "Suggest Friends"
+msgstr "Föreslå vänner"
-#: ../../mod/lostpass.php:87
-msgid "Your new password is"
-msgstr "Ditt nya lösenord är"
+#: ../../mod/fsuggest.php:99
+#, php-format
+msgid "Suggest a friend for %s"
+msgstr "Föreslå en vän för %s"
-#: ../../mod/lostpass.php:88
-msgid "Save or copy your new password - and then"
-msgstr "Spara eller kopiera ditt nya lösenord - "
+#: ../../mod/filestorage.php:76
+msgid "Permission Denied."
+msgstr "Behörighet saknas."
-#: ../../mod/lostpass.php:89
-msgid "click here to login"
-msgstr "klicka sedan här för att logga in"
+#: ../../mod/filestorage.php:92
+msgid "File not found."
+msgstr "Filen hittas inte."
-#: ../../mod/lostpass.php:90
-msgid ""
-"Your password may be changed from the <em>Settings</em> page after "
-"successful login."
-msgstr "Ditt lösenord kan bytas från sidan <em>Inställningar</em> när du är inloggad."
+#: ../../mod/filestorage.php:131
+msgid "Edit file permissions"
+msgstr "Redigera filrättigheter"
-#: ../../mod/lostpass.php:107
-#, php-format
-msgid "Your password has changed at %s"
-msgstr "Ditt lösenord byttes på %s"
+#: ../../mod/filestorage.php:140
+msgid "Set/edit permissions"
+msgstr "Ställ in/ändra behörigheter"
-#: ../../mod/lostpass.php:122
-msgid "Forgot your Password?"
-msgstr "Glömt lösenordet?"
+#: ../../mod/filestorage.php:141
+msgid "Include all files and sub folders"
+msgstr "Inkludera alla filer och underkataloger"
-#: ../../mod/lostpass.php:123
+#: ../../mod/filestorage.php:142
+msgid "Return to file list"
+msgstr "Återgå till fillistan"
+
+#: ../../mod/filestorage.php:144
+msgid "Copy/paste this code to attach file to a post"
+msgstr "Kopiera/klistra in den här koden för att bifoga filen i ett inlägg"
+
+#: ../../mod/filestorage.php:145
+msgid "Copy/paste this URL to link file from a web page"
+msgstr "Kopiera/klistra in den här URL:en för att länka till filen från en webbsida"
+
+#: ../../mod/help.php:41 ../../mod/help.php:47 ../../mod/help.php:53
+msgid "Help:"
+msgstr "Hjälp:"
+
+#: ../../mod/help.php:67 ../../index.php:238
+msgid "Not Found"
+msgstr "Hittas inte"
+
+#: ../../mod/acl.php:245
+msgid "network"
+msgstr "nätverk"
+
+#: ../../mod/delegate.php:95
+msgid "No potential page delegates located."
+msgstr "Inga potentiella sid-ombud funna."
+
+#: ../../mod/delegate.php:121
+msgid "Delegate Page Management"
+msgstr "Delegera sidhantering"
+
+#: ../../mod/delegate.php:123
msgid ""
-"Enter your email address and submit to have your password reset. Then check "
-"your email for further instructions."
-msgstr "Ange din e-postadress och skicka för att återställa ditt lösenord. Kontrollera sedan din e-post för vidare instruktioner."
+"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 "Ombud kan hantera alla aspekter av det här kontot/den här sidan förutom grundläggande kontoinställningar. Delegera inte ditt personliga konto till någon som du inte litar fullständigt på."
-#: ../../mod/lostpass.php:124
-msgid "Email Address"
-msgstr "E-postadress"
+#: ../../mod/delegate.php:124
+msgid "Existing Page Managers"
+msgstr "Befintliga sid-ansvariga"
-#: ../../mod/lostpass.php:125
-msgid "Reset"
-msgstr "Återställ"
+#: ../../mod/delegate.php:126
+msgid "Existing Page Delegates"
+msgstr "Befintliga sid-ombud"
-#: ../../mod/editblock.php:77
-msgid "Edit Block"
-msgstr "Redigera block"
+#: ../../mod/delegate.php:128
+msgid "Potential Delegates"
+msgstr "Potentiella ombud"
-#: ../../mod/editblock.php:87
-msgid "Delete block?"
-msgstr "Ta bort block?"
+#: ../../mod/delegate.php:130 ../../mod/tagrm.php:133 ../../mod/photos.php:905
+msgid "Remove"
+msgstr "Ta bort"
-#: ../../mod/editblock.php:153
-msgid "Delete Block"
-msgstr "Ta bort block"
+#: ../../mod/delegate.php:131
+msgid "Add"
+msgstr "Lägg till"
-#: ../../mod/rbmark.php:88
-msgid "Select a bookmark folder"
-msgstr "Välj en bokmärkeskatalog"
+#: ../../mod/delegate.php:132
+msgid "No entries."
+msgstr "Inga poster."
-#: ../../mod/rbmark.php:93
-msgid "Save Bookmark"
-msgstr "Spara bokmärke"
+#: ../../mod/follow.php:25
+msgid "Channel added."
+msgstr "Kanal tillagd."
-#: ../../mod/rbmark.php:94
-msgid "URL of bookmark"
-msgstr "Bokmärkets URL"
+#: ../../mod/group.php:20
+msgid "Collection created."
+msgstr "Krets skapad."
-#: ../../mod/rbmark.php:95
-msgid "Description"
-msgstr "Beskrivning"
+#: ../../mod/group.php:26
+msgid "Could not create collection."
+msgstr "Kunde inte skapa krets."
-#: ../../mod/rbmark.php:99
-msgid "Or enter new bookmark folder name"
-msgstr "Eller ange nytt namn på bokmärkeskatalog"
+#: ../../mod/group.php:54
+msgid "Collection updated."
+msgstr "Kretsen uppdaterad."
+
+#: ../../mod/group.php:86
+msgid "Create a collection of channels."
+msgstr "Skapa en krets av kanaler."
+
+#: ../../mod/group.php:87 ../../mod/group.php:183
+msgid "Collection Name: "
+msgstr "Namn på krets: "
+
+#: ../../mod/group.php:89 ../../mod/group.php:186
+msgid "Members are visible to other channels"
+msgstr "Medlemmar kan ses av andra kanaler"
+
+#: ../../mod/group.php:107
+msgid "Collection removed."
+msgstr "Krets borttagen."
+
+#: ../../mod/group.php:109
+msgid "Unable to remove collection."
+msgstr "Kunde inte ta bort krets."
+
+#: ../../mod/group.php:182
+msgid "Collection Editor"
+msgstr "Redigera krets"
+
+#: ../../mod/group.php:196
+msgid "Members"
+msgstr "Medlemmar"
+
+#: ../../mod/group.php:198
+msgid "All Connected Channels"
+msgstr "Alla anslutna kanaler"
+
+#: ../../mod/group.php:233
+msgid "Click on a channel to add or remove."
+msgstr "Klicka på en kanal för att lägga till eller ta bort."
+
+#: ../../mod/home.php:48
+msgid "Red Matrix - &quot;The Network&quot;"
+msgstr "Red Matrix - &quot;Nätverket&quot;"
+
+#: ../../mod/home.php:101
+#, php-format
+msgid "Welcome to %s"
+msgstr "Välkommen till %s"
+
+#: ../../mod/suggest.php:35
+msgid ""
+"No suggestions available. If this is a new site, please try again in 24 "
+"hours."
+msgstr "Inga förslag tillgängliga. Om det här är en ny server, försök igen om 24 timmar."
+
+#: ../../mod/import.php:25
+#, php-format
+msgid "Your service plan only allows %d channels."
+msgstr "Din tjänstenivå tillåter bara %d kanaler."
-#: ../../mod/import.php:36
+#: ../../mod/import.php:51
msgid "Nothing to import."
msgstr "Inget att importera."
-#: ../../mod/import.php:58
+#: ../../mod/import.php:75
msgid "Unable to download data from old server"
msgstr "Kunde inte ladda ner data från den gamla servern"
-#: ../../mod/import.php:64
+#: ../../mod/import.php:81
msgid "Imported file is empty."
msgstr "Den importerade filen är tom."
-#: ../../mod/import.php:88
+#: ../../mod/import.php:105
msgid ""
"Cannot create a duplicate channel identifier on this system. Import failed."
msgstr "Kan inte skapa ett dubblerat kanal-ID på det här systemet. Import misslyckades."
-#: ../../mod/import.php:106
+#: ../../mod/import.php:123
msgid "Channel clone failed. Import failed."
msgstr "Kloning av kanalen misslyckades. Import misslyckades."
-#: ../../mod/import.php:116
+#: ../../mod/import.php:133
msgid "Cloned channel not found. Import failed."
msgstr "Den klonade kanalen hittas inte. Import misslyckades."
-#: ../../mod/import.php:358
+#: ../../mod/import.php:451
msgid "Import completed."
msgstr "Import slutförd."
-#: ../../mod/import.php:371
+#: ../../mod/import.php:463
msgid "You must be logged in to use this feature."
msgstr "Du måste vara inloggad för att kunna använda den här funktionen."
-#: ../../mod/import.php:376
+#: ../../mod/import.php:468
msgid "Import Channel"
msgstr "Importera kanal"
-#: ../../mod/import.php:377
+#: ../../mod/import.php:469
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 "
@@ -6546,27 +6613,27 @@ msgid ""
"be imported. Importation of content is not yet available."
msgstr "Använd det här formuläret för att importera en befintlig kanal från en annan server/hubb. Du kan få kanal-ID:t från den gamla servern/hubben över nätverket eller tillhandahålla en exportfil. Endast identitet och kontakter/relationer kommer att importeras. Import av innehåll stöds ännu inte."
-#: ../../mod/import.php:378
+#: ../../mod/import.php:470
msgid "File to Upload"
msgstr "Fil att ladda upp"
-#: ../../mod/import.php:379
+#: ../../mod/import.php:471
msgid "Or provide the old server/hub details"
msgstr "Eller ge uppgifter om den gamla servern/hubben"
-#: ../../mod/import.php:380
+#: ../../mod/import.php:472
msgid "Your old identity address (xyz@example.com)"
msgstr "Din gamla identitetsadress (xyz@example.com)"
-#: ../../mod/import.php:381
+#: ../../mod/import.php:473
msgid "Your old login email address"
msgstr "Din gamla e-postadress för inloggning"
-#: ../../mod/import.php:382
+#: ../../mod/import.php:474
msgid "Your old login password"
msgstr "Ditt gamla inloggningslösenord"
-#: ../../mod/import.php:383
+#: ../../mod/import.php:475
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"
@@ -6574,422 +6641,1049 @@ msgid ""
"primary location for files, photos, and media."
msgstr "Ange i bägge fallen om den här hubben ska vara din nya primära adress eller om den gamla platsen ska fortsätta att ha den rollen. Du kommer att kunna posta från båda platser, men bara en kan vara primärt utrymme för filer, foton och media."
-#: ../../mod/import.php:384
+#: ../../mod/import.php:476
msgid "Make this hub my primary location"
msgstr "Gör den här hubben till min primära plats"
-#: ../../mod/manage.php:64
+#: ../../mod/import.php:477
+msgid "Import existing posts if possible"
+msgstr "Importera befintliga inlägg om möjligt"
+
+#: ../../mod/tagger.php:98
#, php-format
-msgid "You have created %1$.0f of %2$.0f allowed channels."
-msgstr "Du har skapat %1$.0f av %2$.0f tillåtna kanaler."
+msgid "%1$s tagged %2$s's %3$s with %4$s"
+msgstr "%1$s taggade%2$ss %3$s med %4$s"
-#: ../../mod/manage.php:72
-msgid "Create a new channel"
-msgstr "Skapa en ny kanal"
+#: ../../mod/tagrm.php:44 ../../mod/tagrm.php:94
+msgid "Tag removed"
+msgstr "Tagg borttagen"
-#: ../../mod/manage.php:77
-msgid "Channel Manager"
-msgstr "Kanalhanterare"
+#: ../../mod/tagrm.php:119
+msgid "Remove Item Tag"
+msgstr "Ta bort innehållstagg"
-#: ../../mod/manage.php:78
-msgid "Current Channel"
-msgstr "Nuvarande kanal"
+#: ../../mod/tagrm.php:121
+msgid "Select a tag to remove: "
+msgstr "Välj en tagg att ta bort: "
-#: ../../mod/manage.php:80
-msgid "Attach to one of your channels by selecting it."
-msgstr "Anslut till en av dina kanaler genom att välja den."
+#: ../../mod/admin.php:52
+msgid "Theme settings updated."
+msgstr "Temainställningar uppdaterade."
-#: ../../mod/manage.php:81
-msgid "Default Channel"
-msgstr "Standardkanal"
+#: ../../mod/admin.php:97 ../../mod/admin.php:411
+msgid "Site"
+msgstr "Server"
-#: ../../mod/manage.php:82
-msgid "Make Default"
-msgstr "Gör till standard"
+#: ../../mod/admin.php:98
+msgid "Accounts"
+msgstr "Konton"
-#: ../../mod/vote.php:97
-msgid "Total votes"
-msgstr "Totala röster"
+#: ../../mod/admin.php:99 ../../mod/admin.php:858
+msgid "Channels"
+msgstr "Kanaler"
-#: ../../mod/vote.php:98
-msgid "Average Rating"
-msgstr "Genomsnittsbetyg"
+#: ../../mod/admin.php:100 ../../mod/admin.php:949 ../../mod/admin.php:991
+msgid "Plugins"
+msgstr "Tillägg"
-#: ../../mod/match.php:16
-msgid "Profile Match"
-msgstr "Profilträff"
+#: ../../mod/admin.php:101 ../../mod/admin.php:1154 ../../mod/admin.php:1190
+msgid "Themes"
+msgstr "Teman"
-#: ../../mod/match.php:24
-msgid "No keywords to match. Please add keywords to your default profile."
-msgstr "Inga nyckelord att matcha mot. Lägg till några nyckelord i din standardprofil."
+#: ../../mod/admin.php:102 ../../mod/admin.php:512
+msgid "Server"
+msgstr "Server"
-#: ../../mod/match.php:61
-msgid "is interested in:"
-msgstr "är intresserad av:"
+#: ../../mod/admin.php:103
+msgid "Profile Config"
+msgstr "Profilkonfiguration"
-#: ../../mod/match.php:69
-msgid "No matches"
-msgstr "Inga träffar"
+#: ../../mod/admin.php:104
+msgid "DB updates"
+msgstr "Databasuppdateringar"
-#: ../../mod/chatsvc.php:102
-msgid "Away"
-msgstr "Borta"
+#: ../../mod/admin.php:118 ../../mod/admin.php:125 ../../mod/admin.php:1277
+msgid "Logs"
+msgstr "Loggar"
-#: ../../mod/chatsvc.php:106
-msgid "Online"
-msgstr "Online"
+#: ../../mod/admin.php:124
+msgid "Plugin Features"
+msgstr "Tilläggsfunktioner"
-#: ../../mod/openid.php:26
-msgid "OpenID protocol error. No ID returned."
-msgstr "Protokollfel för OpenID. Inget ID returnerades."
+#: ../../mod/admin.php:126
+msgid "User registrations waiting for confirmation"
+msgstr "Användarregistreringar som behöver bekräftas"
+
+#: ../../mod/admin.php:206
+msgid "Message queues"
+msgstr "Meddelandeköer"
+
+#: ../../mod/admin.php:211 ../../mod/admin.php:410 ../../mod/admin.php:511
+#: ../../mod/admin.php:721 ../../mod/admin.php:857 ../../mod/admin.php:948
+#: ../../mod/admin.php:990 ../../mod/admin.php:1153 ../../mod/admin.php:1189
+#: ../../mod/admin.php:1276
+msgid "Administration"
+msgstr "Administration"
+
+#: ../../mod/admin.php:212
+msgid "Summary"
+msgstr "Sammanfattning"
+
+#: ../../mod/admin.php:214
+msgid "Registered users"
+msgstr "Registrerade användare"
+
+#: ../../mod/admin.php:216 ../../mod/admin.php:515
+msgid "Pending registrations"
+msgstr "Pågående registreringar"
+
+#: ../../mod/admin.php:217
+msgid "Version"
+msgstr "Version"
+
+#: ../../mod/admin.php:219 ../../mod/admin.php:516
+msgid "Active plugins"
+msgstr "Aktiva tillägg"
+
+#: ../../mod/admin.php:326
+msgid "Site settings updated."
+msgstr "Serverinställningar uppdaterade."
+
+#: ../../mod/admin.php:363
+msgid "mobile"
+msgstr "mobilt"
+
+#: ../../mod/admin.php:365
+msgid "experimental"
+msgstr "experimentellt"
+
+#: ../../mod/admin.php:367
+msgid "unsupported"
+msgstr "stöds ej"
+
+#: ../../mod/admin.php:391
+msgid "Yes - with approval"
+msgstr "Ja - med godkännande"
+
+#: ../../mod/admin.php:397
+msgid "My site is not a public server"
+msgstr "Min server är inte offentlig"
+
+#: ../../mod/admin.php:398
+msgid "My site has paid access only"
+msgstr "Min server har endast åtkomst mot betalning"
+
+#: ../../mod/admin.php:399
+msgid "My site has free access only"
+msgstr "Min server har endast gratis åtkomst"
+
+#: ../../mod/admin.php:400
+msgid "My site offers free accounts with optional paid upgrades"
+msgstr "Min server erbjuder gratis konton med uppgradering mot betalning"
+
+#: ../../mod/admin.php:414
+msgid "File upload"
+msgstr "Filuppladdning"
+
+#: ../../mod/admin.php:415
+msgid "Policies"
+msgstr "Policyer"
+
+#: ../../mod/admin.php:420
+msgid "Site name"
+msgstr "Servernamn"
+
+#: ../../mod/admin.php:421
+msgid "Banner/Logo"
+msgstr "Banner/logga"
+
+#: ../../mod/admin.php:422
+msgid "Administrator Information"
+msgstr "Administratörsinformation"
+
+#: ../../mod/admin.php:422
+msgid ""
+"Contact information for site administrators. Displayed on siteinfo page. "
+"BBCode can be used here"
+msgstr "Kontaktinfo till sidadministratörer. Visas på sidinfosidan. BBCode kan användas här"
+
+#: ../../mod/admin.php:423
+msgid "System language"
+msgstr "Systemspråk"
+
+#: ../../mod/admin.php:424
+msgid "System theme"
+msgstr "Systemtema"
+
+#: ../../mod/admin.php:424
+msgid ""
+"Default system theme - may be over-ridden by user profiles - <a href='#' "
+"id='cnftheme'>change theme settings</a>"
+msgstr "Förvalt systemtema - kan åsidosättas i användarprofiler - <a href='#' id='cnftheme'>ändra temainställningar</a>"
+
+#: ../../mod/admin.php:425
+msgid "Mobile system theme"
+msgstr "Mobilt systemtema"
+
+#: ../../mod/admin.php:425
+msgid "Theme for mobile devices"
+msgstr "Tema för mobila enheter"
+
+#: ../../mod/admin.php:427
+msgid "Enable Diaspora Protocol"
+msgstr "Aktivera protokoll för Diaspora"
+
+#: ../../mod/admin.php:427
+msgid "Communicate with Diaspora and Friendica - experimental"
+msgstr "Kommunicera med Diaspora och Friendica - experimentellt"
+
+#: ../../mod/admin.php:428
+msgid "Allow Feeds as Connections"
+msgstr "Tillåt flöden som kontakter"
+
+#: ../../mod/admin.php:428
+msgid "(Heavy system resource usage)"
+msgstr "(systemresurskrävande)"
+
+#: ../../mod/admin.php:429
+msgid "Maximum image size"
+msgstr "Maximal bildstorlek"
+
+#: ../../mod/admin.php:429
+msgid ""
+"Maximum size in bytes of uploaded images. Default is 0, which means no "
+"limits."
+msgstr "Maximal storlek i byte för uppladdade bilder. Standard är 0, vilket innebär ingen storleksbegränsning."
+
+#: ../../mod/admin.php:430
+msgid "Does this site allow new member registration?"
+msgstr "Tillåter den här servern nya medlemmar att registrera sig?"
+
+#: ../../mod/admin.php:431
+msgid "Which best describes the types of account offered by this hub?"
+msgstr "Vilket beskriver bäst kontotypen som erbjuds på den här hubben?"
+
+#: ../../mod/admin.php:432
+msgid "Register text"
+msgstr "Registreringstext"
+
+#: ../../mod/admin.php:432
+msgid "Will be displayed prominently on the registration page."
+msgstr "Visas tydligt på registreringssidan."
+
+#: ../../mod/admin.php:433
+msgid "Accounts abandoned after x days"
+msgstr "Konto övergivet efter x dagar"
+
+#: ../../mod/admin.php:433
+msgid ""
+"Will not waste system resources polling external sites for abandonded "
+"accounts. Enter 0 for no time limit."
+msgstr "Slösar inte systemresurser genom att fråga externa servrar efter övergivna konton. 0 innebär ingen tidsbegränsning."
+
+#: ../../mod/admin.php:434
+msgid "Allowed friend domains"
+msgstr "Tillåtna vändomäner"
+
+#: ../../mod/admin.php:434
+msgid ""
+"Comma separated list of domains which are allowed to establish friendships "
+"with this site. Wildcards are accepted. Empty to allow any domains"
+msgstr "Kommaseparerad lista med domäner som tillåts att upprätta ett vänförhållande med den här servern. Jokertecken är tillåtna. Töm för att tillåta alla domäner."
+
+#: ../../mod/admin.php:435
+msgid "Allowed email domains"
+msgstr "Tillåtna e-postdomäner"
+
+#: ../../mod/admin.php:435
+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 "Kommaseparerad lista med domäner som tillåts i e-postadresser för registreringar på den här servern. Jokertecken är tillåtna. Töm för att tillåta alla domäner."
+
+#: ../../mod/admin.php:436
+msgid "Block public"
+msgstr "Blockera offentlig åtkomst"
+
+#: ../../mod/admin.php:436
+msgid ""
+"Check to block public access to all otherwise public personal pages on this "
+"site unless you are currently logged in."
+msgstr "Välj för att blockera åtkomst till alla personliga sidor som annars skulle vara offentliga på den här servern om man inte är inloggad."
+
+#: ../../mod/admin.php:437
+msgid "Verify Email Addresses"
+msgstr "Bekräfta e-postadress"
+
+#: ../../mod/admin.php:437
+msgid ""
+"Check to verify email addresses used in account registration (recommended)."
+msgstr "Välj för att bekräfta e-postadresser som används för kontoregistrering (rekommenderas)."
+
+#: ../../mod/admin.php:438
+msgid "Force publish"
+msgstr "Tvinga publicering"
+
+#: ../../mod/admin.php:438
+msgid ""
+"Check to force all profiles on this site to be listed in the site directory."
+msgstr "Välj för att tvinga alla profiler på den här servern att listas i serverkatalogen."
+
+#: ../../mod/admin.php:439
+msgid "Disable discovery tab"
+msgstr "Inaktivera upptäck-fliken"
+
+#: ../../mod/admin.php:439
+msgid ""
+"Remove the tab in the network view with public content pulled from sources "
+"chosen for this site."
+msgstr "Ta bort fliken i nätverksvyn med offentligt innehåll som hämtas från källor valda för den här servern."
+
+#: ../../mod/admin.php:440
+msgid "No login on Homepage"
+msgstr "Ingen inloggning på hemsidan"
+
+#: ../../mod/admin.php:440
+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 "Välj för att gömma inloggningsformuläret från serverns hemsida för oinloggade besökare (t.ex. när du lägger in hemsideinnehållet via serverkanalen)."
+
+#: ../../mod/admin.php:442
+msgid "Proxy user"
+msgstr "Proxyanvändare"
+
+#: ../../mod/admin.php:443
+msgid "Proxy URL"
+msgstr "Proxy-URL"
+
+#: ../../mod/admin.php:444
+msgid "Network timeout"
+msgstr "Nätverkstimeout"
+
+#: ../../mod/admin.php:444
+msgid "Value is in seconds. Set to 0 for unlimited (not recommended)."
+msgstr "Värde i sekunder. Sätt till 0 för obegränsat (ej rekommenderat)."
-#: ../../mod/openid.php:72 ../../mod/openid.php:178 ../../mod/post.php:257
+#: ../../mod/admin.php:445
+msgid "Delivery interval"
+msgstr "Leveransintervall"
+
+#: ../../mod/admin.php:445
+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 "Fördröj leveransprocesser som görs i bakgrunden så här många sekunder för att reducera systembelastningen. Rekommenderat: 4-5 för delade värdar, 2-3 för virtuella privata servrar. 0-1 för stora dedikerade servrar."
+
+#: ../../mod/admin.php:446
+msgid "Poll interval"
+msgstr "Hämtningsintervall"
+
+#: ../../mod/admin.php:446
+msgid ""
+"Delay background polling processes by this many seconds to reduce system "
+"load. If 0, use delivery interval."
+msgstr "Fördröj hämtningsprocesser som görs i bakgrunden så här många sekunder för att reducera systembelastningen. Om 0 används leveransintervallet."
+
+#: ../../mod/admin.php:447
+msgid "Maximum Load Average"
+msgstr "Maximal genomsnittsbelastning"
+
+#: ../../mod/admin.php:447
+msgid ""
+"Maximum system load before delivery and poll processes are deferred - "
+"default 50."
+msgstr "Maximal systembelastning innan leverans- och hämtningsprocesser skjuts upp - standard är 50."
+
+#: ../../mod/admin.php:503
+msgid "No server found"
+msgstr "Ingen server hittad"
+
+#: ../../mod/admin.php:510 ../../mod/admin.php:735
+msgid "ID"
+msgstr "ID"
+
+#: ../../mod/admin.php:510
+msgid "for channel"
+msgstr "för kanal"
+
+#: ../../mod/admin.php:510
+msgid "on server"
+msgstr "på server"
+
+#: ../../mod/admin.php:510
+msgid "Status"
+msgstr "Status"
+
+#: ../../mod/admin.php:531
+msgid "Update has been marked successful"
+msgstr "Uppdatering har markerats som genomförd"
+
+#: ../../mod/admin.php:541
#, php-format
-msgid "Welcome %s. Remote authentication successful."
-msgstr "Välkommen %s. Fjärrautentisering lyckades."
+msgid "Executing %s failed. Check system logs."
+msgstr "Körning av %s misslyckades. Kontrollera systemloggarna."
-#: ../../mod/editlayout.php:72
-msgid "Edit Layout"
-msgstr "Redigera layout"
+#: ../../mod/admin.php:544
+#, php-format
+msgid "Update %s was successfully applied."
+msgstr "Uppdatering %s genomfördes utan problem."
-#: ../../mod/editlayout.php:82
-msgid "Delete layout?"
-msgstr "Ta bort layout?"
+#: ../../mod/admin.php:548
+#, php-format
+msgid "Update %s did not return a status. Unknown if it succeeded."
+msgstr "Uppdatering %s returnerade ingen status. Oklart om den lyckades."
-#: ../../mod/editlayout.php:146
-msgid "Delete Layout"
-msgstr "Ta bort layout"
+#: ../../mod/admin.php:551
+#, php-format
+msgid "Update function %s could not be found."
+msgstr "Uppdateringsfunktion %s kunde inte hittas."
+
+#: ../../mod/admin.php:566
+msgid "No failed updates."
+msgstr "Inga misslyckade uppdateringar."
+
+#: ../../mod/admin.php:570
+msgid "Failed Updates"
+msgstr "Misslyckade uppdateringar"
+
+#: ../../mod/admin.php:572
+msgid "Mark success (if update was manually applied)"
+msgstr "Markera som genomförd (om uppdateringen gjordes manuellt)"
+
+#: ../../mod/admin.php:573
+msgid "Attempt to execute this update step automatically"
+msgstr "Försök att köra den här uppdateringen automatiskt"
+
+#: ../../mod/admin.php:599
+#, php-format
+msgid "%s user blocked/unblocked"
+msgid_plural "%s users blocked/unblocked"
+msgstr[0] "%s användare blockerad/avblockerad"
+msgstr[1] "%s användare blockerade/avblockerade"
+
+#: ../../mod/admin.php:606
+#, php-format
+msgid "%s user deleted"
+msgid_plural "%s users deleted"
+msgstr[0] "%s användare borttagen"
+msgstr[1] "%s användare borttagna"
+
+#: ../../mod/admin.php:635
+msgid "Account not found"
+msgstr "Konto hittas inte"
+
+#: ../../mod/admin.php:655
+#, php-format
+msgid "User '%s' unblocked"
+msgstr "Användare '%s' avblockerad"
+
+#: ../../mod/admin.php:655
+#, php-format
+msgid "User '%s' blocked"
+msgstr "Användare '%s' blockerad"
+
+#: ../../mod/admin.php:722 ../../mod/admin.php:734
+msgid "Users"
+msgstr "Användare"
+
+#: ../../mod/admin.php:724 ../../mod/admin.php:860
+msgid "select all"
+msgstr "välj alla"
+
+#: ../../mod/admin.php:725
+msgid "User registrations waiting for confirm"
+msgstr "Användarregistreringar som inväntar bekräftelse"
+
+#: ../../mod/admin.php:726
+msgid "Request date"
+msgstr "Ansökningsdatum"
+
+#: ../../mod/admin.php:727
+msgid "No registrations."
+msgstr "Inga registreringar."
+
+#: ../../mod/admin.php:728
+msgid "Approve"
+msgstr "Godkänn"
+
+#: ../../mod/admin.php:729
+msgid "Deny"
+msgstr "Avslå"
+
+#: ../../mod/admin.php:735
+msgid "Register date"
+msgstr "Registreringsdatum"
+
+#: ../../mod/admin.php:735
+msgid "Last login"
+msgstr "Senaste inloggning"
-#: ../../mod/post.php:226
+#: ../../mod/admin.php:735
+msgid "Expires"
+msgstr "Upphör att gälla"
+
+#: ../../mod/admin.php:735
+msgid "Service Class"
+msgstr "Tjänsteklass"
+
+#: ../../mod/admin.php:737
msgid ""
-"Remote authentication blocked. You are logged into this site locally. Please"
-" logout and retry."
-msgstr "Fjärrautentisering blockerades. Du är inloggad på den här servern lokalt. Logga ut och försök igen."
+"Selected users will be deleted!\\n\\nEverything these users had posted on "
+"this site will be permanently deleted!\\n\\nAre you sure?"
+msgstr "Valda användare kommer att tas bort!\\n\\nAllt dessa användare har postat på den här servern kommer att raderas permanent!\\n\\nÄr du säker?"
-#: ../../mod/probe.php:23 ../../mod/probe.php:29
+#: ../../mod/admin.php:738
+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 "Användaren {0} kommer att tas bort!\\n\\nAllt den här användaren har postat på den här servern kommer att raderas permanent!\\n\\nÄr du säker?"
+
+#: ../../mod/admin.php:771
#, php-format
-msgid "Fetching URL returns error: %1$s"
-msgstr "Hämtning av URL returnerade fel: %1$s"
+msgid "%s channel censored/uncensored"
+msgid_plural "%s channels censored/uncensored"
+msgstr[0] "%s kanal censurerad/avcensurerad"
+msgstr[1] "%s kanaler censurerade/avcensurerade"
-#: ../../mod/profile_photo.php:44
-msgid "Image uploaded but image cropping failed."
-msgstr "Bilden laddades upp men beskärning misslyckades."
+#: ../../mod/admin.php:778
+#, php-format
+msgid "%s channel deleted"
+msgid_plural "%s channels deleted"
+msgstr[0] "%s kanal borttagen"
+msgstr[1] "%s kanaler borttagna"
-#: ../../mod/profile_photo.php:97
-msgid "Image resize failed."
-msgstr "Ändring av bildstorlek misslyckades."
+#: ../../mod/admin.php:797
+msgid "Channel not found"
+msgstr "Kanal hittas inte"
+
+#: ../../mod/admin.php:808
+#, php-format
+msgid "Channel '%s' deleted"
+msgstr "Kanalen '%s' togs bort"
-#: ../../mod/profile_photo.php:141
+#: ../../mod/admin.php:819
+#, php-format
+msgid "Channel '%s' uncensored"
+msgstr "Kanal '%s' avcensurerad"
+
+#: ../../mod/admin.php:819
+#, php-format
+msgid "Channel '%s' censored"
+msgstr "Kanal '%s' censurerad"
+
+#: ../../mod/admin.php:862
+msgid "Censor"
+msgstr "Censurera"
+
+#: ../../mod/admin.php:863
+msgid "Uncensor"
+msgstr "Avcensurera"
+
+#: ../../mod/admin.php:866
+msgid "UID"
+msgstr "UID"
+
+#: ../../mod/admin.php:868
msgid ""
-"Shift-reload the page or clear browser cache if the new photo does not "
-"display immediately."
-msgstr "Shift-uppdatera sidan eller rensa webbläsarcachen om det nya fotot inte visas direkt."
+"Selected channels will be deleted!\\n\\nEverything that was posted in these "
+"channels on this site will be permanently deleted!\\n\\nAre you sure?"
+msgstr "Valda kanaler kommer att tas bort!\\n\\nAllt som har postats i de kanalerna på den här servern kommer att raderas permanent!\\n\\nÄr du säker?"
-#: ../../mod/profile_photo.php:163
+#: ../../mod/admin.php:869
+msgid ""
+"The channel {0} will be deleted!\\n\\nEverything that was posted in this "
+"channel on this site will be permanently deleted!\\n\\nAre you sure?"
+msgstr "Kanalen {0} kommer att tas bort!\\n\\nAllt som har postats i den här kanalen på den här servern kommer att raderas permanent!\\n\\nÄr du säker?"
+
+#: ../../mod/admin.php:908
#, php-format
-msgid "Image exceeds size limit of %d"
-msgstr "Bilden överskrider storleksbegränsningen %d"
+msgid "Plugin %s disabled."
+msgstr "Tillägg %s inaktiverat."
-#: ../../mod/profile_photo.php:172
-msgid "Unable to process image."
-msgstr "Kunde inte behandla bilden."
+#: ../../mod/admin.php:912
+#, php-format
+msgid "Plugin %s enabled."
+msgstr "Tillägg %s aktiverat."
-#: ../../mod/profile_photo.php:214 ../../mod/profile_photo.php:262
-msgid "Photo not available."
-msgstr "Fotot är inte tillgängligt."
+#: ../../mod/admin.php:922 ../../mod/admin.php:1124
+msgid "Disable"
+msgstr "Inaktivera"
-#: ../../mod/profile_photo.php:281
-msgid "Upload File:"
-msgstr "Ladda upp fil:"
+#: ../../mod/admin.php:924 ../../mod/admin.php:1126
+msgid "Enable"
+msgstr "Aktivera"
-#: ../../mod/profile_photo.php:282
-msgid "Select a profile:"
-msgstr "Välj en profil:"
+#: ../../mod/admin.php:950 ../../mod/admin.php:1155
+msgid "Toggle"
+msgstr "Växla"
-#: ../../mod/profile_photo.php:283
-msgid "Upload Profile Photo"
-msgstr "Ladda upp profilfoto"
+#: ../../mod/admin.php:958 ../../mod/admin.php:1165
+msgid "Author: "
+msgstr "Författare:"
-#: ../../mod/profile_photo.php:284
-msgid "Upload"
-msgstr "Ladda upp"
+#: ../../mod/admin.php:959 ../../mod/admin.php:1166
+msgid "Maintainer: "
+msgstr "Underhållare:"
-#: ../../mod/profile_photo.php:288
-msgid "skip this step"
-msgstr "hoppa över det här steget"
+#: ../../mod/admin.php:1088
+msgid "No themes found."
+msgstr "Inga teman funna."
-#: ../../mod/profile_photo.php:288
-msgid "select a photo from your photo albums"
-msgstr "välj ett foto från dina fotoalbum"
+#: ../../mod/admin.php:1147
+msgid "Screenshot"
+msgstr "Skärmdump"
-#: ../../mod/profile_photo.php:302
-msgid "Crop Image"
-msgstr "Beskär bild"
+#: ../../mod/admin.php:1195
+msgid "[Experimental]"
+msgstr "[Experimentellt]"
-#: ../../mod/profile_photo.php:303
-msgid "Please adjust the image cropping for optimum viewing."
-msgstr "Justera bildens beskärning för bästa utseende."
+#: ../../mod/admin.php:1196
+msgid "[Unsupported]"
+msgstr "[Utan support]"
-#: ../../mod/profile_photo.php:305
-msgid "Done Editing"
-msgstr "Klar med redigering"
+#: ../../mod/admin.php:1223
+msgid "Log settings updated."
+msgstr "Logginställningar uppdaterade."
-#: ../../mod/profile_photo.php:340
-msgid "Image uploaded successfully."
-msgstr "Bilduppladdning lyckades."
+#: ../../mod/admin.php:1279
+msgid "Clear"
+msgstr "Rensa"
-#: ../../mod/profile_photo.php:342
-msgid "Image upload failed."
-msgstr "Bilduppladdning misslyckades."
+#: ../../mod/admin.php:1285
+msgid "Debugging"
+msgstr "Avlusning"
-#: ../../mod/profile_photo.php:351
-#, php-format
-msgid "Image size reduction [%s] failed."
-msgstr "Krympning av bilden [%s] misslyckades."
+#: ../../mod/admin.php:1286
+msgid "Log file"
+msgstr "Loggfil"
-#: ../../mod/connections.php:191 ../../mod/connections.php:290
-msgid "Blocked"
-msgstr "Blockerade"
+#: ../../mod/admin.php:1286
+msgid ""
+"Must be writable by web server. Relative to your Red top-level directory."
+msgstr "Måste vara skrivbar för webbservern. Anges relativt Reds toppkatalog."
-#: ../../mod/connections.php:196 ../../mod/connections.php:297
-msgid "Ignored"
-msgstr "Ignorerade"
+#: ../../mod/admin.php:1287
+msgid "Log level"
+msgstr "Loggnivå"
-#: ../../mod/connections.php:201 ../../mod/connections.php:311
-msgid "Hidden"
-msgstr "Dolda"
+#: ../../mod/admin.php:1334
+msgid "New Profile Field"
+msgstr "Nytt profilfält"
-#: ../../mod/connections.php:206 ../../mod/connections.php:304
-msgid "Archived"
-msgstr "Arkiverade"
+#: ../../mod/admin.php:1335 ../../mod/admin.php:1356
+msgid "Field nickname"
+msgstr "Smeknamn på fält"
-#: ../../mod/connections.php:229 ../../mod/connections.php:243
-msgid "All"
-msgstr "Alla"
+#: ../../mod/admin.php:1335 ../../mod/admin.php:1356
+msgid "System name of field"
+msgstr "Systemnamn på fält"
-#: ../../mod/connections.php:238 ../../mod/connections.php:318
-msgid "Unconnected"
-msgstr "Ej anslutna"
+#: ../../mod/admin.php:1336 ../../mod/admin.php:1357
+msgid "Input type"
+msgstr "Datatyp"
-#: ../../mod/connections.php:268
-msgid "Suggest new connections"
-msgstr "Föreslå nya kontakter"
+#: ../../mod/admin.php:1337 ../../mod/admin.php:1358
+msgid "Field Name"
+msgstr "Fältnamn"
-#: ../../mod/connections.php:271
-msgid "New Connections"
-msgstr "Nya kontakter"
+#: ../../mod/admin.php:1337 ../../mod/admin.php:1358
+msgid "Label on profile pages"
+msgstr "Beteckning på profilsidor"
-#: ../../mod/connections.php:274
-msgid "Show pending (new) connections"
-msgstr "Visa väntande (nya) kontakter"
+#: ../../mod/admin.php:1338 ../../mod/admin.php:1359
+msgid "Help text"
+msgstr "Hjälptext"
-#: ../../mod/connections.php:280
-msgid "Show all connections"
-msgstr "Visa alla kontakter"
+#: ../../mod/admin.php:1338 ../../mod/admin.php:1359
+msgid "Additional info (optional)"
+msgstr "Ytterligare info (frivilligt)"
-#: ../../mod/connections.php:283
-msgid "Unblocked"
-msgstr "Ej blockerade"
+#: ../../mod/admin.php:1349
+msgid "Field definition not found"
+msgstr "Fältdefinition hittades inte"
-#: ../../mod/connections.php:286
-msgid "Only show unblocked connections"
-msgstr "Visa endast ej blockerade kontakter"
+#: ../../mod/admin.php:1355
+msgid "Edit Profile Field"
+msgstr "Redigera profilfält"
-#: ../../mod/connections.php:293
-msgid "Only show blocked connections"
-msgstr "Visa endast blockerade kontakter"
+#: ../../mod/locs.php:19 ../../mod/locs.php:46
+msgid "Location not found."
+msgstr "Platsen hittades inte."
-#: ../../mod/connections.php:300
-msgid "Only show ignored connections"
-msgstr "Visa endast ignorerade kontakter"
+#: ../../mod/locs.php:50
+msgid "Primary location cannot be removed."
+msgstr "Huvudplatsen kan inte tas bort."
-#: ../../mod/connections.php:307
-msgid "Only show archived connections"
-msgstr "Visa endast arkiverade kontakter"
+#: ../../mod/locs.php:82
+msgid "No locations found."
+msgstr "Inga platser hittades."
-#: ../../mod/connections.php:314
-msgid "Only show hidden connections"
-msgstr "Visa endast dolda kontakter"
+#: ../../mod/locs.php:95
+msgid "Manage Channel Locations"
+msgstr "Hantera kanalplatser"
+
+#: ../../mod/locs.php:96
+msgid "Location (address)"
+msgstr "Plats (adress)"
+
+#: ../../mod/locs.php:97
+msgid "Primary Location"
+msgstr "Huvudplats"
+
+#: ../../mod/locs.php:98
+msgid "Drop location"
+msgstr "Ta bort plats"
+
+#: ../../mod/mail.php:33
+msgid "Unable to lookup recipient."
+msgstr "Kunde inte hitta mottagare."
+
+#: ../../mod/mail.php:41
+msgid "Unable to communicate with requested channel."
+msgstr "Kunde inte kommunicera med den begärda kanalen."
+
+#: ../../mod/mail.php:48
+msgid "Cannot verify requested channel."
+msgstr "Kan inte bekräfta den begärda kanalen."
+
+#: ../../mod/mail.php:74
+msgid "Selected channel has private message restrictions. Send failed."
+msgstr "Den valda kanalen har restriktioner för privata meddelanden. Misslyckades att skicka."
+
+#: ../../mod/mail.php:136
+msgid "Message deleted."
+msgstr "Meddelande borttaget."
+
+#: ../../mod/mail.php:153
+msgid "Message recalled."
+msgstr "Meddelande återkallat."
+
+#: ../../mod/mail.php:222
+msgid "Send Private Message"
+msgstr "Skicka privat meddelande."
+
+#: ../../mod/mail.php:223 ../../mod/mail.php:340
+msgid "To:"
+msgstr "Till:"
+
+#: ../../mod/mail.php:228 ../../mod/mail.php:342
+msgid "Subject:"
+msgstr "Ämne:"
+
+#: ../../mod/mail.php:232 ../../mod/mail.php:345 ../../mod/invite.php:131
+msgid "Your message:"
+msgstr "Ditt meddelande:"
+
+#: ../../mod/mail.php:239
+msgid "Send"
+msgstr "Skicka"
+
+#: ../../mod/mail.php:266
+msgid "Message not found."
+msgstr "Meddelandet hittades inte."
+
+#: ../../mod/mail.php:309
+msgid "Delete message"
+msgstr "Ta bort meddelande"
+
+#: ../../mod/mail.php:310
+msgid "Recall message"
+msgstr "Ã…terkalla meddelande"
+
+#: ../../mod/mail.php:312
+msgid "Message has been recalled."
+msgstr "Meddelandet har återkallats."
+
+#: ../../mod/mail.php:329
+msgid "Private Conversation"
+msgstr "Privat konversation"
+
+#: ../../mod/mail.php:333 ../../mod/message.php:72
+msgid "Delete conversation"
+msgstr "Ta bort konversation"
+
+#: ../../mod/mail.php:335
+msgid ""
+"No secure communications available. You <strong>may</strong> be able to "
+"respond from the sender's profile page."
+msgstr "Ingen säker kommunikationskanal tillgänglig. Du kan <strong>möjligtvis</strong> svara från avsändarens profilsida."
-#: ../../mod/connections.php:321
-msgid "Only show one-way connections"
-msgstr "Visa endast enkelriktade kontakter"
+#: ../../mod/mail.php:339
+msgid "Send Reply"
+msgstr "Skicka svar"
-#: ../../mod/connections.php:366
+#: ../../mod/invite.php:25
+msgid "Total invitation limit exceeded."
+msgstr "Gränsen för totalt antal inbjudningar överskriden."
+
+#: ../../mod/invite.php:49
#, php-format
-msgid "%1$s [%2$s]"
-msgstr "%1$s [%2$s]"
+msgid "%s : Not a valid email address."
+msgstr "%s: Inte en giltig e-postadress."
-#: ../../mod/connections.php:367
-msgid "Edit contact"
-msgstr "Redigera kontakt"
+#: ../../mod/invite.php:76
+msgid "Please join us on Red"
+msgstr "GÃ¥ med oss i Red"
-#: ../../mod/connections.php:388
-msgid "Search your connections"
-msgstr "Sök bland dina kontakter"
+#: ../../mod/invite.php:87
+msgid "Invitation limit exceeded. Please contact your site administrator."
+msgstr "Inbjudningsgränsen överskriden. Kontakta din serveradministratör."
-#: ../../mod/connections.php:389
-msgid "Finding: "
-msgstr "Sökning efter: "
+#: ../../mod/invite.php:92
+#, php-format
+msgid "%s : Message delivery failed."
+msgstr "%s : Leverans av meddelande misslyckades."
-#: ../../mod/notifications.php:26
-msgid "Invalid request identifier."
-msgstr "Ogiltigt ID på förfrågan."
+#: ../../mod/invite.php:96
+#, php-format
+msgid "%d message sent."
+msgid_plural "%d messages sent."
+msgstr[0] "%d meddelande sänt."
+msgstr[1] "%d meddelanden sända."
-#: ../../mod/notifications.php:35
-msgid "Discard"
-msgstr "Förkasta"
+#: ../../mod/invite.php:115
+msgid "You have no more invitations available"
+msgstr "Du har inga fler inbjudningar kvar"
-#: ../../mod/notifications.php:93 ../../mod/notify.php:54
-msgid "No more system notifications."
-msgstr "Inga fler systemnotifieringar."
+#: ../../mod/invite.php:129
+msgid "Send invitations"
+msgstr "Skicka inbjudan"
-#: ../../mod/notifications.php:97 ../../mod/notify.php:58
-msgid "System Notifications"
-msgstr "Systemnotifieringar"
+#: ../../mod/invite.php:130
+msgid "Enter email addresses, one per line:"
+msgstr "Ange e-postadresser, en per rad:"
-#: ../../mod/oexchange.php:23
-msgid "Unable to find your hub."
-msgstr "Kunde inte hitta din hubb."
+#: ../../mod/invite.php:132
+msgid "Please join my community on RedMatrix."
+msgstr "Gå med mig i gemenskapen på RedMatrix."
-#: ../../mod/oexchange.php:37
-msgid "Post successful."
-msgstr "Sändning lyckades."
+#: ../../mod/invite.php:134
+msgid "You will need to supply this invitation code: "
+msgstr "Du kommer att behöva den här inbjudningskoden: "
-#: ../../mod/editwebpage.php:106
-msgid "Edit Webpage"
-msgstr "Redigera webbsida"
+#: ../../mod/invite.php:135
+msgid "1. Register at any RedMatrix location (they are all inter-connected)"
+msgstr "1. Skapa konto på en RedMatrix-server (alla är ihopkopplade)"
-#: ../../mod/editwebpage.php:116
-msgid "Delete webpage?"
-msgstr "Ta bort webbsida?"
+#: ../../mod/invite.php:137
+msgid "2. Enter my RedMatrix network address into the site searchbar."
+msgstr "2. Ange min RedMatrix-adress i webbplatsens sökruta."
-#: ../../mod/editwebpage.php:187
-msgid "Delete Webpage"
-msgstr "Ta bort webbsida"
+#: ../../mod/invite.php:138
+msgid "or visit "
+msgstr "eller besök "
-#: ../../mod/follow.php:25
-msgid "Channel added."
-msgstr "Kanal tillagd."
+#: ../../mod/invite.php:140
+msgid "3. Click [Connect]"
+msgstr "3. Klicka [Ta kontakt]"
-#: ../../mod/poke.php:159
-msgid "Poke/Prod"
-msgstr "Puffa/stöt till"
+#: ../../mod/manage.php:136
+#, php-format
+msgid "You have created %1$.0f of %2$.0f allowed channels."
+msgstr "Du har skapat %1$.0f av %2$.0f tillåtna kanaler."
-#: ../../mod/poke.php:160
-msgid "poke, prod or do other things to somebody"
-msgstr "puffa, stöt till eller gör andra saker mot någon"
+#: ../../mod/manage.php:144
+msgid "Create a new channel"
+msgstr "Skapa en ny kanal"
-#: ../../mod/poke.php:161
-msgid "Recipient"
-msgstr "Mottagare"
+#: ../../mod/manage.php:149
+msgid "Current Channel"
+msgstr "Nuvarande kanal"
-#: ../../mod/poke.php:162
-msgid "Choose what you wish to do to recipient"
-msgstr "Välj vad du önskar göra med mottagaren"
+#: ../../mod/manage.php:151
+msgid "Attach to one of your channels by selecting it."
+msgstr "Anslut till en av dina kanaler genom att välja den."
-#: ../../mod/poke.php:165
-msgid "Make this post private"
-msgstr "Gör det här inlägget privat"
+#: ../../mod/manage.php:152
+msgid "Default Channel"
+msgstr "Standardkanal"
+
+#: ../../mod/manage.php:153
+msgid "Make Default"
+msgstr "Gör till standard"
+
+#: ../../mod/update_channel.php:43 ../../mod/update_display.php:25
+#: ../../mod/update_network.php:23 ../../mod/update_search.php:46
+#: ../../mod/update_home.php:21
+msgid "[Embedded content - reload page to view]"
+msgstr "[Inbäddat innehåll - ladda om sidan för att visa]"
+
+#: ../../mod/layouts.php:110
+msgid "Help with this feature"
+msgstr "Hjälp för den här funktionen"
-#: ../../mod/wall_upload.php:34
+#: ../../mod/layouts.php:130
+msgid "Layout Name"
+msgstr "Layoutnamn"
+
+#: ../../mod/lockview.php:31
+msgid "Remote privacy information not available."
+msgstr "Icke-lokal integritetsinformation är inte tillgänglig"
+
+#: ../../mod/lockview.php:52
+msgid "Visible to:"
+msgstr "Kan ses av:"
+
+#: ../../mod/viewconnections.php:58
+msgid "No connections."
+msgstr "Inga kontakter."
+
+#: ../../mod/viewconnections.php:71
+#, php-format
+msgid "Visit %s's profile [%s]"
+msgstr "Besök %ss profil [%s]"
+
+#: ../../mod/viewconnections.php:86
+msgid "View Connnections"
+msgstr "Visa kontakter"
+
+#: ../../mod/magic.php:70
+msgid "Hub not found."
+msgstr "Hubb hittades inte."
+
+#: ../../mod/vote.php:97
+msgid "Total votes"
+msgstr "Totalt antal röster"
+
+#: ../../mod/vote.php:98
+msgid "Average Rating"
+msgstr "Genomsnittsbetyg"
+
+#: ../../mod/network.php:81
+msgid "No such group"
+msgstr "Ingen sådan grupp"
+
+#: ../../mod/network.php:119
+msgid "Search Results For:"
+msgstr "Sökresultat för:"
+
+#: ../../mod/network.php:173
+msgid "Collection is empty"
+msgstr "Kretsen är tom"
+
+#: ../../mod/network.php:181
+msgid "Collection: "
+msgstr "Krets: "
+
+#: ../../mod/network.php:194
+msgid "Connection: "
+msgstr "Kontakt:"
+
+#: ../../mod/network.php:197
+msgid "Invalid connection."
+msgstr "Ogiltig kontakt."
+
+#: ../../mod/wall_upload.php:35
msgid "Wall Photos"
msgstr "Väggfoton"
-#: ../../mod/channel.php:86
-msgid "Insufficient permissions. Request redirected to profile page."
-msgstr "Otillräckliga behörigheter. Förfrågan omdirigerad till profilsidan."
+#: ../../mod/match.php:16
+msgid "Profile Match"
+msgstr "Profilträff"
-#: ../../mod/fsuggest.php:20 ../../mod/fsuggest.php:92
-msgid "Contact not found."
-msgstr "Kontakten hittades inte."
+#: ../../mod/match.php:24
+msgid "No keywords to match. Please add keywords to your default profile."
+msgstr "Inga nyckelord att matcha mot. Lägg till några nyckelord i din standardprofil."
-#: ../../mod/fsuggest.php:63
-msgid "Friend suggestion sent."
-msgstr "Vänförfrågan skickad."
+#: ../../mod/match.php:61
+msgid "is interested in:"
+msgstr "är intresserad av:"
-#: ../../mod/fsuggest.php:97
-msgid "Suggest Friends"
-msgstr "Föreslå vänner"
+#: ../../mod/match.php:69
+msgid "No matches"
+msgstr "Inga träffar"
-#: ../../mod/fsuggest.php:99
-#, php-format
-msgid "Suggest a friend for %s"
-msgstr "Föreslå en vän för %s"
+#: ../../mod/menu.php:31
+msgid "Menu updated."
+msgstr "Meny uppdaterad."
-#: ../../mod/dirprofile.php:114
-msgid "Status: "
-msgstr "Status: "
+#: ../../mod/menu.php:35
+msgid "Unable to update menu."
+msgstr "Kunde inte uppdatera meny."
-#: ../../mod/dirprofile.php:115
-msgid "Sexual Preference: "
-msgstr "Sexuell preferens: "
+#: ../../mod/menu.php:40
+msgid "Menu created."
+msgstr "Meny skapad."
-#: ../../mod/dirprofile.php:117
-msgid "Homepage: "
-msgstr "Hemsida: "
+#: ../../mod/menu.php:44
+msgid "Unable to create menu."
+msgstr "Kunde inte skapa meny."
-#: ../../mod/dirprofile.php:118
-msgid "Hometown: "
-msgstr "Hemort: "
+#: ../../mod/menu.php:76
+msgid "Manage Menus"
+msgstr "Hantera menyer"
-#: ../../mod/dirprofile.php:120
-msgid "About: "
-msgstr "Om: "
+#: ../../mod/menu.php:79
+msgid "Drop"
+msgstr "Ta bort"
-#: ../../mod/dirprofile.php:168
-msgid "Keywords: "
-msgstr "Nyckelord: "
+#: ../../mod/menu.php:81
+msgid "Bookmarks allowed"
+msgstr "Bokmärken tillåtna"
-#: ../../mod/filestorage.php:68
-msgid "Permission Denied."
-msgstr "Behörighet saknas."
+#: ../../mod/menu.php:82
+msgid "Create a new menu"
+msgstr "Skapa en ny meny"
-#: ../../mod/filestorage.php:85
-msgid "File not found."
-msgstr "Filen hittas inte."
+#: ../../mod/menu.php:83
+msgid "Delete this menu"
+msgstr "Ta bort den här menyn"
-#: ../../mod/filestorage.php:119
-msgid "Edit file permissions"
-msgstr "Redigera filrättigheter"
+#: ../../mod/menu.php:84 ../../mod/menu.php:125
+msgid "Edit menu contents"
+msgstr "Redigera menyinnehåll"
-#: ../../mod/filestorage.php:126
-msgid "Include all files and sub folders"
-msgstr "Inkludera alla filer och underkataloger"
+#: ../../mod/menu.php:85
+msgid "Edit this menu"
+msgstr "Redigera den här menyn"
-#: ../../mod/filestorage.php:127
-msgid "Return to file list"
-msgstr "Återgå till fillistan"
+#: ../../mod/menu.php:96
+msgid "New Menu"
+msgstr "Ny meny"
-#: ../../mod/filestorage.php:129
-msgid "Copy/paste this code to attach file to a post"
-msgstr "Kopiera/klistra in den här koden för att bifoga filen i ett inlägg"
+#: ../../mod/menu.php:97 ../../mod/menu.php:126
+msgid "Menu name"
+msgstr "Menynamn"
-#: ../../mod/filestorage.php:130
-msgid "Copy/paste this URL to link file from a web page"
-msgstr "Kopiera/klistra in den här URL:en för att länka till filen från en webbsida"
+#: ../../mod/menu.php:97 ../../mod/menu.php:126
+msgid "Must be unique, only seen by you"
+msgstr "MÃ¥ste vara unikt, ses endast av dig"
-#: ../../mod/filestorage.php:167
-msgid "Download"
-msgstr "Ladda ner"
+#: ../../mod/menu.php:98 ../../mod/menu.php:127
+msgid "Menu title"
+msgstr "Menytitel"
-#: ../../mod/filestorage.php:173
-msgid "Used: "
-msgstr "Använt: "
+#: ../../mod/menu.php:98 ../../mod/menu.php:127
+msgid "Menu title as seen by others"
+msgstr "Menytitel som andra ser den"
-#: ../../mod/filestorage.php:174
-msgid "[directory]"
-msgstr "[katalog]"
+#: ../../mod/menu.php:99 ../../mod/menu.php:128
+msgid "Allow bookmarks"
+msgstr "Tillåt bokmärken"
-#: ../../mod/filestorage.php:176
-msgid "Limit: "
-msgstr "Gräns: "
+#: ../../mod/menu.php:99 ../../mod/menu.php:128
+msgid "Menu may be used to store saved bookmarks"
+msgstr "Menyn kan användas för att spara bokmärken"
-#: ../../mod/suggest.php:35
-msgid ""
-"No suggestions available. If this is a new site, please try again in 24 "
-"hours."
-msgstr "Inga förslag tillgängliga. Om det här är en ny server, försök igen om 24 timmar."
+#: ../../mod/menu.php:114
+msgid "Menu deleted."
+msgstr "Meny borttagen."
+
+#: ../../mod/menu.php:116
+msgid "Menu could not be deleted."
+msgstr "Menyn kunde inte tas bort."
+
+#: ../../mod/menu.php:122
+msgid "Edit Menu"
+msgstr "Redigera meny"
+
+#: ../../mod/menu.php:124
+msgid "Add or remove entries to this menu"
+msgstr "Lägg till eller ta bort menyval"
#: ../../mod/message.php:41
msgid "Conversation removed."
@@ -7003,137 +7697,125 @@ msgstr "Inga meddelanden."
msgid "D, d M Y - g:i A"
msgstr "D, j M Y - H:i"
-#: ../../mod/pubsites.php:22
-msgid "Public Sites"
-msgstr "Offentliga servrar"
+#: ../../mod/new_channel.php:109
+msgid "Add a Channel"
+msgstr "Lägg till en kanal"
-#: ../../mod/pubsites.php:25
+#: ../../mod/new_channel.php:110
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 "De listade servrarna tillåter offentlig registrering i Red Matrix. Alla servrar i matrisen är sammankopplade, så medlemskap i en av dem medför medlemskap i matrisen som helhet. Vissa servrar kan kräva abonnemang eller erbjuda uppdelade tjänstenivåer. Leverantörslänkarna <strong>kan</strong> ge ytterligare detaljer."
-
-#: ../../mod/pubsites.php:31
-msgid "Site URL"
-msgstr "Server-URL"
-
-#: ../../mod/pubsites.php:31
-msgid "Access Type"
-msgstr "Ã…tkomsttyp"
+"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 "En kanal är din egen samling av relaterade webbsidor. En kanal kan användas för att innehålla sociala nätverksprofiler, bloggar, konversationsgrupper och forum, fansidor, och mycket mer. Du kan skapa så många kanaler som din tjänsteleverantör tillåter."
-#: ../../mod/pubsites.php:31
-msgid "Registration Policy"
-msgstr "Registreringspolicy"
+#: ../../mod/new_channel.php:113
+msgid "Examples: \"Bob Jameson\", \"Lisa and her Horses\", \"Soccer\", \"Aviation Group\" "
+msgstr "Exempel: \"Bob Jameson\", \"Lisa och hennes hästar\", \"Fotboll\", \"Flyggruppen\" "
-#: ../../mod/register.php:43
-msgid "Maximum daily site registrations exceeded. Please try again tomorrow."
-msgstr "Maximalt antal dagliga serverregistreringar överskridet. Försök igen i morgon."
+#: ../../mod/new_channel.php:114
+msgid "Choose a short nickname"
+msgstr "Välj ett kort smeknamn"
-#: ../../mod/register.php:49
+#: ../../mod/new_channel.php:115
msgid ""
-"Please indicate acceptance of the Terms of Service. Registration failed."
-msgstr "Välj huruvida du accepterar användarvillkoren. Registrering misslyckades."
+"Your nickname will be used to create an easily remembered channel address "
+"(like an email address) which you can share with others."
+msgstr "Ditt smeknamn används för att skapa en kanaladress som är lätt att komma ihåg (som en e-postadress) som du kan dela med andra."
-#: ../../mod/register.php:77
-msgid "Passwords do not match."
-msgstr "Lösenorden stämmer inte överens."
+#: ../../mod/new_channel.php:116
+msgid "Or <a href=\"import\">import an existing channel</a> from another location"
+msgstr "Eller <a href=\"import\">importera en befintlig kanal</a> från en annan plats"
-#: ../../mod/register.php:105
+#: ../../mod/new_channel.php:118
+msgid "Channel Type"
+msgstr "Kanaltyp"
+
+#: ../../mod/new_channel.php:119
msgid ""
-"Registration successful. Please check your email for validation "
-"instructions."
-msgstr "Registrering lyckades. Kontrollera din e-post för valideringsinstruktioner."
+"Please choose a channel type (such as social networking or community forum) "
+"and privacy requirements so we can select the best permissions for you"
+msgstr "Välj en kanaltyp (som till exempel socialt nätverkande eller gemenskapsforum) och integritetskrav, så kan vi välja de bästa behörigheterna åt dig"
-#: ../../mod/register.php:111
-msgid "Your registration is pending approval by the site owner."
-msgstr "Din registrering väntar på att bli godkänd av serverägaren."
+#: ../../mod/notifications.php:26
+msgid "Invalid request identifier."
+msgstr "Ogiltigt ID på förfrågan."
-#: ../../mod/register.php:114
-msgid "Your registration can not be processed."
-msgstr "Din registrering kan inte behandlas."
+#: ../../mod/notifications.php:35
+msgid "Discard"
+msgstr "Förkasta"
-#: ../../mod/register.php:147
-msgid "Registration on this site/hub is by approval only."
-msgstr "Registrering på den här servern/hubben måste godkännas."
+#: ../../mod/notifications.php:94 ../../mod/notify.php:53
+msgid "No more system notifications."
+msgstr "Inga fler systemnotifieringar."
-#: ../../mod/register.php:148
-msgid "<a href=\"pubsites\">Register at another affiliated site/hub</a>"
-msgstr "<a href=\"pubsites\">Registrera dig på en annan ansluten server/hubb</a>"
+#: ../../mod/notifications.php:98 ../../mod/notify.php:57
+msgid "System Notifications"
+msgstr "Systemnotifieringar"
-#: ../../mod/register.php:156
-msgid ""
-"This site has exceeded the number of allowed daily account registrations. "
-"Please try again tomorrow."
-msgstr "Antal dagliga registreringar som tillåts på den här servern har överskridits. Försök igen i morgon."
+#: ../../mod/xchan.php:6
+msgid "Xchan Lookup"
+msgstr "Xchan-sökning"
-#: ../../mod/register.php:167
-msgid "Terms of Service"
-msgstr "användarvillkor"
+#: ../../mod/xchan.php:9
+msgid "Lookup xchan beginning with (or webbie): "
+msgstr "Sök efter xchan som börjar med (eller webbie): "
-#: ../../mod/register.php:173
-#, php-format
-msgid "I accept the %s for this website"
-msgstr "Jag accepterar den här webbplatsens %s"
+#: ../../mod/zfinger.php:23
+msgid "invalid target signature"
+msgstr "ogiltig målsignatur"
-#: ../../mod/register.php:175
-#, php-format
-msgid "I am over 13 years of age and accept the %s for this website"
-msgstr "Jag är över 13 år och accepterar den här webbplatsens %s"
+#: ../../mod/oexchange.php:23
+msgid "Unable to find your hub."
+msgstr "Kunde inte hitta din hubb."
-#: ../../mod/register.php:194
-msgid "Membership on this site is by invitation only."
-msgstr "Medlemskap på den här servern kan endast fås genom inbjudan."
+#: ../../mod/oexchange.php:37
+msgid "Post successful."
+msgstr "Sändning lyckades."
-#: ../../mod/register.php:195
-msgid "Please enter your invitation code"
-msgstr "Ange din inbjudningskod"
+#: ../../mod/directory.php:172
+msgid "Gender: "
+msgstr "Kön:"
-#: ../../mod/register.php:198
-msgid "Your email address"
-msgstr "Din e-postadress"
+#: ../../mod/directory.php:174
+msgid "Status: "
+msgstr "Status: "
-#: ../../mod/register.php:199
-msgid "Choose a password"
-msgstr "Välj ett lösenord"
+#: ../../mod/directory.php:176
+msgid "Homepage: "
+msgstr "Hemsida: "
-#: ../../mod/register.php:200
-msgid "Please re-enter your password"
-msgstr "Ange lösenordet igen"
+#: ../../mod/directory.php:179
+msgid "Hometown: "
+msgstr "Hemort: "
-#: ../../mod/regmod.php:12
-msgid "Please login."
-msgstr "Logga in."
+#: ../../mod/directory.php:181
+msgid "About: "
+msgstr "Om: "
-#: ../../mod/removeme.php:49
-msgid "Remove This Channel"
-msgstr "Ta bort den här kanalen"
+#: ../../mod/directory.php:236
+msgid "Public Forum:"
+msgstr "Offentligt forum:"
-#: ../../mod/removeme.php:50
-msgid ""
-"This will completely remove this channel from the network. Once this has "
-"been done it is not recoverable."
-msgstr "Det här kommer att ta bort den här kanalen helt från nätverket. När det är gjort går det inte att återställa den."
+#: ../../mod/directory.php:239
+msgid "Keywords: "
+msgstr "Nyckelord: "
-#: ../../mod/removeme.php:51
-msgid "Please enter your password for verification:"
-msgstr "Ange ditt lösenord för att bekräfta:"
+#: ../../mod/directory.php:279
+msgid "Finding:"
+msgstr "Sökning efter:"
-#: ../../mod/removeme.php:52
-msgid "Remove this channel and all its clones from the network"
-msgstr "Ta bort den här kanalen och alla dess kloner från nätverket"
+#: ../../mod/directory.php:284
+msgid "next page"
+msgstr "nästa sida"
-#: ../../mod/removeme.php:52
-msgid ""
-"By default only the instance of the channel located on this hub will be "
-"removed from the network"
-msgstr "Som standard kommer bara den här hubbens instans av kanalen att tas bort från nätverket"
+#: ../../mod/directory.php:284
+msgid "previous page"
+msgstr "föregående sida"
-#: ../../mod/removeme.php:53
-msgid "Remove Channel"
-msgstr "Ta bort kanal"
+#: ../../mod/directory.php:301
+msgid "No entries (some entries may be hidden)."
+msgstr "Inga resultat (vissa resultat kan vara dolda)."
#: ../../mod/photos.php:77
msgid "Page owner information could not be retrieved."
@@ -7143,279 +7825,237 @@ msgstr "Information om sidans ägare kunde inte hittas."
msgid "Album not found."
msgstr "Albumet hittades inte."
-#: ../../mod/photos.php:119 ../../mod/photos.php:671
+#: ../../mod/photos.php:119 ../../mod/photos.php:672
msgid "Delete Album"
msgstr "Ta bort album"
-#: ../../mod/photos.php:159 ../../mod/photos.php:954
+#: ../../mod/photos.php:159 ../../mod/photos.php:958
msgid "Delete Photo"
msgstr "Ta bort foto"
-#: ../../mod/photos.php:453
+#: ../../mod/photos.php:469
msgid "No photos selected"
msgstr "Inga foton valda"
-#: ../../mod/photos.php:500
+#: ../../mod/photos.php:513
msgid "Access to this item is restricted."
msgstr "Åtkomst till den här posten är begränsat."
-#: ../../mod/photos.php:576
+#: ../../mod/photos.php:552
#, php-format
-msgid "You have used %1$.2f Mbytes of %2$.2f Mbytes photo storage."
-msgstr "Du har använt %1$.2f MB av %2$.2f MB fotoutrymme."
+msgid "%1$.2f MB of %2$.2f MB photo storage used."
+msgstr "%1$.2f MB av %2$.2f MB fotolagring använt."
-#: ../../mod/photos.php:579
+#: ../../mod/photos.php:555
#, php-format
-msgid "You have used %1$.2f Mbytes of photo storage."
-msgstr "Du har använt %1$.2f MB fotoutrymme."
+msgid "%1$.2f MB photo storage used."
+msgstr "%1$.2f MB fotolagring använt."
-#: ../../mod/photos.php:598
+#: ../../mod/photos.php:579
msgid "Upload Photos"
msgstr "Ladda upp foton"
-#: ../../mod/photos.php:602 ../../mod/photos.php:666
-msgid "New album name: "
-msgstr "Namn på nytt album: "
+#: ../../mod/photos.php:583 ../../mod/photos.php:665 ../../mod/photos.php:943
+msgid "Enter a new album name"
+msgstr "Ange ett nytt albumnamn"
-#: ../../mod/photos.php:603
-msgid "or existing album name: "
-msgstr "eller befintligt albumnamn: "
+#: ../../mod/photos.php:584 ../../mod/photos.php:666 ../../mod/photos.php:944
+msgid "or select an existing one (doubleclick)"
+msgstr "eller välj ett befintligt (dubbelklicka)"
-#: ../../mod/photos.php:604
+#: ../../mod/photos.php:585
msgid "Do not show a status post for this upload"
msgstr "Visa inte en statusuppdatering för den här uppladdningen"
-#: ../../mod/photos.php:655 ../../mod/photos.php:677 ../../mod/photos.php:1126
-#: ../../mod/photos.php:1141
+#: ../../mod/photos.php:613
+msgid "Album name could not be decoded"
+msgstr "Albumnamn kunde inte tolkas"
+
+#: ../../mod/photos.php:654 ../../mod/photos.php:1167
+#: ../../mod/photos.php:1183
msgid "Contact Photos"
msgstr "Kontaktfoton"
-#: ../../mod/photos.php:681
-msgid "Edit Album"
-msgstr "Redigera album"
-
-#: ../../mod/photos.php:687
+#: ../../mod/photos.php:678
msgid "Show Newest First"
msgstr "Visa nyast först"
-#: ../../mod/photos.php:689
+#: ../../mod/photos.php:680
msgid "Show Oldest First"
msgstr "Visa äldst först"
-#: ../../mod/photos.php:732 ../../mod/photos.php:1173
+#: ../../mod/photos.php:707 ../../mod/photos.php:1215
msgid "View Photo"
msgstr "Visa foto"
-#: ../../mod/photos.php:778
+#: ../../mod/photos.php:736
+msgid "Edit Album"
+msgstr "Redigera album"
+
+#: ../../mod/photos.php:781
msgid "Permission denied. Access to this item may be restricted."
msgstr "Behörighet saknas. Åtkomst till den här posten kan vara begränsat."
-#: ../../mod/photos.php:780
+#: ../../mod/photos.php:783
msgid "Photo not available"
msgstr "Foto inte tillgängligt"
-#: ../../mod/photos.php:840
+#: ../../mod/photos.php:841
msgid "Use as profile photo"
msgstr "Använd som profilfoto"
-#: ../../mod/photos.php:864
+#: ../../mod/photos.php:848
+msgid "Private Photo"
+msgstr "Privat foto"
+
+#: ../../mod/photos.php:863
msgid "View Full Size"
msgstr "Visa fullstorlek"
-#: ../../mod/photos.php:938
+#: ../../mod/photos.php:937
msgid "Edit photo"
msgstr "Redigera foto"
-#: ../../mod/photos.php:940
+#: ../../mod/photos.php:939
msgid "Rotate CW (right)"
msgstr "Rotera medurs (höger)"
-#: ../../mod/photos.php:941
+#: ../../mod/photos.php:940
msgid "Rotate CCW (left)"
msgstr "Rotera moturs (vänster)"
-#: ../../mod/photos.php:943
-msgid "New album name"
-msgstr "Nytt albumnamn"
-
-#: ../../mod/photos.php:946
+#: ../../mod/photos.php:947
msgid "Caption"
msgstr "Bildtext"
-#: ../../mod/photos.php:948
+#: ../../mod/photos.php:949
msgid "Add a Tag"
msgstr "Lägg till en tagg"
-#: ../../mod/photos.php:951
-msgid ""
-"Example: @bob, @Barbara_Jensen, @jim@example.com, #California, #camping"
-msgstr "Exempel: @bob, @Barbara_Jensen, @jim@example.com, #California, #camping"
+#: ../../mod/photos.php:953
+msgid "Example: @bob, @Barbara_Jensen, @jim@example.com"
+msgstr "Exempel: @bob, @Barbara_Jensen, @jim@example.com"
-#: ../../mod/photos.php:1104
+#: ../../mod/photos.php:956
+msgid "Flag as adult in album view"
+msgstr "Flagga som olämpligt för barn i albumvyn"
+
+#: ../../mod/photos.php:1133
msgid "In This Photo:"
msgstr "PÃ¥ fotot:"
-#: ../../mod/photos.php:1179
+#: ../../mod/photos.php:1221
msgid "View Album"
msgstr "Visa album"
-#: ../../mod/photos.php:1188
+#: ../../mod/photos.php:1244
msgid "Recent Photos"
msgstr "Nya foton"
-#: ../../mod/mood.php:138
-msgid "Mood"
-msgstr "Sinnesstämning"
-
-#: ../../mod/mood.php:139
-msgid "Set your current mood and tell your friends"
-msgstr "Ange din nuvarande sinnesstämning och visa för dina vänner"
-
-#: ../../mod/ping.php:192
+#: ../../mod/ping.php:265
msgid "sent you a private message"
msgstr "skickade ett privat meddelande till dig"
-#: ../../mod/ping.php:250
+#: ../../mod/ping.php:316
msgid "added your channel"
msgstr "lade till din kanal"
-#: ../../mod/ping.php:294
+#: ../../mod/ping.php:357
msgid "posted an event"
msgstr "skapade en händelse"
-#: ../../view/theme/redbasic/php/config.php:98
-#: ../../view/theme/apw/php/config.php:259
-#: ../../view/theme/blogga/view/theme/blog/config.php:69
-#: ../../view/theme/blogga/php/config.php:69
-msgid "Theme settings"
-msgstr "Temainställningar"
+#: ../../mod/appman.php:28 ../../mod/appman.php:44
+msgid "App installed."
+msgstr "App installerad."
-#: ../../view/theme/redbasic/php/config.php:99
-#: ../../view/theme/apw/php/config.php:260
-msgid "Set scheme"
-msgstr "Välj variant"
+#: ../../mod/appman.php:37
+msgid "Malformed app."
+msgstr "Felaktig app."
-#: ../../view/theme/redbasic/php/config.php:100
-msgid "Narrow navbar"
-msgstr "Smal navigeringslist"
+#: ../../mod/appman.php:80
+msgid "Embed code"
+msgstr "Bädda in kod"
-#: ../../view/theme/redbasic/php/config.php:101
-msgid "Navigation bar background colour"
-msgstr "Navigeringslistens bakgrundsfärg"
+#: ../../mod/appman.php:86
+msgid "Edit App"
+msgstr "Redigera app"
-#: ../../view/theme/redbasic/php/config.php:102
-msgid "Navigation bar gradient top colour"
-msgstr "Övre gradientfärg i navigeringslisten"
+#: ../../mod/appman.php:86
+msgid "Create App"
+msgstr "Skapa app"
-#: ../../view/theme/redbasic/php/config.php:103
-msgid "Navigation bar gradient bottom colour"
-msgstr "Undre gradientfärg i navigeringslisten"
+#: ../../mod/appman.php:91
+msgid "Name of app"
+msgstr "Namn på app"
-#: ../../view/theme/redbasic/php/config.php:104
-msgid "Navigation active button gradient top colour"
-msgstr "Övre gradientfärg på aktiv knapp i navigeringslisten"
+#: ../../mod/appman.php:92
+msgid "Location (URL) of app"
+msgstr "Adress (URL) för app"
-#: ../../view/theme/redbasic/php/config.php:105
-msgid "Navigation active button gradient bottom colour"
-msgstr "Undre gradientfärg på aktiv knapp i navigeringslisten"
+#: ../../mod/appman.php:94
+msgid "Photo icon URL"
+msgstr "Fotoikon URL"
-#: ../../view/theme/redbasic/php/config.php:106
-msgid "Navigation bar border colour "
-msgstr "Färg på navigeringslistens kant"
+#: ../../mod/appman.php:94
+msgid "80 x 80 pixels - optional"
+msgstr "80 x 80 pixlar - valfri"
-#: ../../view/theme/redbasic/php/config.php:107
-msgid "Navigation bar icon colour "
-msgstr "Färg på ikoner i navigeringslisten"
+#: ../../mod/appman.php:95
+msgid "Version ID"
+msgstr "Versions-ID"
-#: ../../view/theme/redbasic/php/config.php:108
-msgid "Navigation bar active icon colour "
-msgstr "Färg på aktiv ikon i navigeringslisten"
+#: ../../mod/appman.php:96
+msgid "Price of app"
+msgstr "Pris på app"
-#: ../../view/theme/redbasic/php/config.php:109
-msgid "link colour"
-msgstr "Länkfärg"
+#: ../../mod/appman.php:97
+msgid "Location (URL) to purchase app"
+msgstr "Adress (URL) för att köpa app"
-#: ../../view/theme/redbasic/php/config.php:110
-msgid "Set font-colour for banner"
-msgstr "Välj textfärg för sidhuvudet"
+#: ../../mod/poll.php:64
+msgid "Poll"
+msgstr "Opinionsundersökning"
-#: ../../view/theme/redbasic/php/config.php:111
-msgid "Set the background colour"
-msgstr "Välj bakgrundsfärg"
-
-#: ../../view/theme/redbasic/php/config.php:112
-msgid "Set the background image"
-msgstr "Välj bakgrundsbild"
+#: ../../mod/poll.php:69
+msgid "View Results"
+msgstr "Visa resultat"
-#: ../../view/theme/redbasic/php/config.php:113
-msgid "Set the background colour of items"
-msgstr "Välj bakgrundsfärg för inlägg"
-
-#: ../../view/theme/redbasic/php/config.php:114
-msgid "Set the opacity of items"
-msgstr "Välj opacitet för inlägg"
-
-#: ../../view/theme/redbasic/php/config.php:115
-msgid "Set the basic colour for item icons"
-msgstr "Välj basfärg för inläggsikoner"
-
-#: ../../view/theme/redbasic/php/config.php:116
-msgid "Set the hover colour for item icons"
-msgstr "Välj färg på inläggsikon under muspekare"
-
-#: ../../view/theme/redbasic/php/config.php:117
-msgid "Set font-size for the entire application"
-msgstr "Välj textstorlek för hela applikationen"
-
-#: ../../view/theme/redbasic/php/config.php:118
-#: ../../view/theme/apw/php/config.php:261
-msgid "Set font-size for posts and comments"
-msgstr "Välj textstorlek för inlägg och kommentarer"
-
-#: ../../view/theme/redbasic/php/config.php:119
-msgid "Set font-colour for posts and comments"
-msgstr "Välj textfärg för inlägg och kommentarer"
-
-#: ../../view/theme/redbasic/php/config.php:120
-msgid "Set radius of corners"
-msgstr "Välj hörnradie"
-
-#: ../../view/theme/redbasic/php/config.php:121
-msgid "Set shadow depth of photos"
-msgstr "Välj skuggdjup för foton"
-
-#: ../../view/theme/redbasic/php/config.php:122
-msgid "Set maximum width of conversation regions"
-msgstr "Välj maxbredd på konversationsfält"
-
-#: ../../view/theme/redbasic/php/config.php:123
-msgid "Center conversation regions"
-msgstr "Centrera konversationsfält"
+#: ../../mod/removeaccount.php:30
+msgid ""
+"Account removals are not allowed within 48 hours of changing the account "
+"password."
+msgstr "Borttagning av konto tillåts inte inom 48 timmar efter att kontolösenordet har ändrats."
-#: ../../view/theme/redbasic/php/config.php:124
-msgid "Set minimum opacity of nav bar - to hide it"
-msgstr "Välj lägsta opacitet för navigeringslisten - för att dölja den"
+#: ../../mod/removeaccount.php:57
+msgid "Remove This Account"
+msgstr "Ta bort kontot"
-#: ../../view/theme/redbasic/php/config.php:125
-msgid "Set size of conversation author photo"
-msgstr "Välj storlek på foto för trådskapare"
+#: ../../mod/removeaccount.php:58
+msgid ""
+"This will completely remove this account including all its channels from the"
+" network. Once this has been done it is not recoverable."
+msgstr "Det här kommer att ta bort kontot fullständigt från nätverket, inklusive alla dess kanaler. När detta har gjorts går det inte att ångra."
-#: ../../view/theme/redbasic/php/config.php:126
-msgid "Set size of followup author photos"
-msgstr "Välj storlek på svarande personers foton"
+#: ../../mod/removeaccount.php:60
+msgid ""
+"Remove this account, all its channels and all its channel clones from the "
+"network"
+msgstr "Ta bort kontot, alla dess kanaler och alla kanalkopior från nätverket"
-#: ../../view/theme/redbasic/php/config.php:127
-msgid "Sloppy photo albums"
-msgstr "Oordnade fotoalbum"
+#: ../../mod/removeaccount.php:60
+msgid ""
+"By default only the instances of the channels located on this hub will be "
+"removed from the network"
+msgstr "Som standard tas bara instanser av kanaler som finns på den här servern bort från nätverket"
-#: ../../view/theme/redbasic/php/config.php:127
-msgid "Are you a clean desk or a messy desk person?"
-msgstr "Föredrar du ett tomt eller stökigt skrivbord?"
+#: ../../mod/service_limits.php:19
+msgid "No service class restrictions found."
+msgstr "Inga tjänsteklassbegränsningar hittades."
#: ../../view/theme/apw/php/config.php:202
#: ../../view/theme/apw/php/config.php:236
msgid "Schema Default"
-msgstr "Temavariantens standard"
+msgstr "Schemats standard"
#: ../../view/theme/apw/php/config.php:203
msgid "Sans-Serif"
@@ -7423,7 +8063,22 @@ msgstr "Sans-serif"
#: ../../view/theme/apw/php/config.php:204
msgid "Monospace"
-msgstr "Fast bredd"
+msgstr "Monospace"
+
+#: ../../view/theme/apw/php/config.php:259
+#: ../../view/theme/redbasic/php/config.php:102
+msgid "Theme settings"
+msgstr "Temainställningar"
+
+#: ../../view/theme/apw/php/config.php:260
+#: ../../view/theme/redbasic/php/config.php:103
+msgid "Set scheme"
+msgstr "Välj variant"
+
+#: ../../view/theme/apw/php/config.php:261
+#: ../../view/theme/redbasic/php/config.php:124
+msgid "Set font-size for posts and comments"
+msgstr "Välj textstorlek för inlägg och kommentarer"
#: ../../view/theme/apw/php/config.php:262
msgid "Set font face"
@@ -7435,14 +8090,14 @@ msgstr "Välj ikontema"
#: ../../view/theme/apw/php/config.php:264
msgid "Set big shadow size, default 15px 15px 15px"
-msgstr "Välj stor skuggstorlek, standard 15px 15px 15px"
+msgstr "Välj stor skuggstorlek, standard 15px 15px 15px "
#: ../../view/theme/apw/php/config.php:265
msgid "Set small shadow size, default 5px 5px 5px"
msgstr "Välj liten skuggstorlek, standard 5px 5px 5px"
#: ../../view/theme/apw/php/config.php:266
-msgid "Set shadow colour, default #000"
+msgid "Set shadow color, default #000"
msgstr "Välj skuggfärg, standard #000"
#: ../../view/theme/apw/php/config.php:267
@@ -7459,10 +8114,10 @@ msgstr "Välj bakgrundsbild"
#: ../../view/theme/apw/php/config.php:270
msgid "Set background attachment"
-msgstr "Välj bakgrundsfixering"
+msgstr "Välj fixerad bakgrund"
#: ../../view/theme/apw/php/config.php:271
-msgid "Set background colour"
+msgid "Set background color"
msgstr "Välj bakgrundsfärg"
#: ../../view/theme/apw/php/config.php:272
@@ -7470,31 +8125,31 @@ msgid "Set section background image"
msgstr "Välj bakgrundsbild för avsnitt"
#: ../../view/theme/apw/php/config.php:273
-msgid "Set section background colour"
+msgid "Set section background color"
msgstr "Välj bakgrundsfärg för avsnitt"
#: ../../view/theme/apw/php/config.php:274
-msgid "Set colour of items - use hex"
+msgid "Set color of items - use hex"
msgstr "Välj färg på inlägg - använd hex"
#: ../../view/theme/apw/php/config.php:275
-msgid "Set colour of links - use hex"
+msgid "Set color of links - use hex"
msgstr "Välj färg på länkar - använd hex"
#: ../../view/theme/apw/php/config.php:276
msgid "Set max-width for items. Default 400px"
-msgstr "Välj maxbredd för inlägg. Standard 400px"
+msgstr "Välj största bredd för inlägg. Standard 400px"
#: ../../view/theme/apw/php/config.php:277
msgid "Set min-width for items. Default 240px"
-msgstr "Välj minbredd för inlägg. Standard 240px"
+msgstr "Välj minsta bredd för inlägg. Standard 240px"
#: ../../view/theme/apw/php/config.php:278
msgid "Set the generic content wrapper width. Default 48%"
msgstr "Välj bredd på fältet för allmänt innehåll. Standard 48%"
#: ../../view/theme/apw/php/config.php:279
-msgid "Set colour of fonts - use hex"
+msgid "Set color of fonts - use hex"
msgstr "Välj textfärg - använd hex"
#: ../../view/theme/apw/php/config.php:280
@@ -7541,56 +8196,165 @@ msgstr "Vänster offset för sidoelement"
msgid "Right offset of the aside element"
msgstr "Höger offset för sidoelement"
-#: ../../view/theme/blogga/view/theme/blog/config.php:47
-#: ../../view/theme/blogga/php/config.php:47
-msgid "None"
-msgstr "Inget"
+#: ../../view/theme/redbasic/php/config.php:84
+msgid "Light (Red Matrix default)"
+msgstr "Light (standard för Red Matrix)"
+
+#: ../../view/theme/redbasic/php/config.php:104
+msgid "Narrow navbar"
+msgstr "Smal navigeringslist"
+
+#: ../../view/theme/redbasic/php/config.php:105
+msgid "Navigation bar background color"
+msgstr "Navigeringslistens bakgrundsfärg"
+
+#: ../../view/theme/redbasic/php/config.php:106
+msgid "Navigation bar gradient top color"
+msgstr "Övre gradientfärg i navigeringslisten"
+
+#: ../../view/theme/redbasic/php/config.php:107
+msgid "Navigation bar gradient bottom color"
+msgstr "Undre gradientfärg i navigeringslisten"
+
+#: ../../view/theme/redbasic/php/config.php:108
+msgid "Navigation active button gradient top color"
+msgstr "Övre gradientfärg på aktiv knapp i navigeringslisten"
+
+#: ../../view/theme/redbasic/php/config.php:109
+msgid "Navigation active button gradient bottom color"
+msgstr "Undre gradientfärg på aktiv knapp i navigeringslisten"
+
+#: ../../view/theme/redbasic/php/config.php:110
+msgid "Navigation bar border color "
+msgstr "Färg på navigeringslistens kant"
+
+#: ../../view/theme/redbasic/php/config.php:111
+msgid "Navigation bar icon color "
+msgstr "Färg på ikoner i navigeringslisten"
+
+#: ../../view/theme/redbasic/php/config.php:112
+msgid "Navigation bar active icon color "
+msgstr "Färg på aktiv ikon i navigeringslisten"
+
+#: ../../view/theme/redbasic/php/config.php:113
+msgid "link color"
+msgstr "Länkfärg"
+
+#: ../../view/theme/redbasic/php/config.php:114
+msgid "Set font-color for banner"
+msgstr "Välj textfärg för sidhuvudet"
+
+#: ../../view/theme/redbasic/php/config.php:115
+msgid "Set the background color"
+msgstr "Välj bakgrundsfärg"
+
+#: ../../view/theme/redbasic/php/config.php:116
+msgid "Set the background image"
+msgstr "Välj bakgrundsbild"
+
+#: ../../view/theme/redbasic/php/config.php:117
+msgid "Set the background color of items"
+msgstr "Välj bakgrundsfärg för inlägg"
+
+#: ../../view/theme/redbasic/php/config.php:118
+msgid "Set the background color of comments"
+msgstr "Välj bakgrundsfärg för kommentarer"
+
+#: ../../view/theme/redbasic/php/config.php:119
+msgid "Set the border color of comments"
+msgstr "Välj kantfärg för kommentarer"
+
+#: ../../view/theme/redbasic/php/config.php:120
+msgid "Set the indent for comments"
+msgstr "Välj indrag för kommentarer"
+
+#: ../../view/theme/redbasic/php/config.php:121
+msgid "Set the basic color for item icons"
+msgstr "Välj basfärg för inläggsikoner"
+
+#: ../../view/theme/redbasic/php/config.php:122
+msgid "Set the hover color for item icons"
+msgstr "Välj färg på inläggsikon under muspekare"
+
+#: ../../view/theme/redbasic/php/config.php:123
+msgid "Set font-size for the entire application"
+msgstr "Välj textstorlek för hela applikationen"
+
+#: ../../view/theme/redbasic/php/config.php:125
+msgid "Set font-color for posts and comments"
+msgstr "Välj textfärg för inlägg och kommentarer"
+
+#: ../../view/theme/redbasic/php/config.php:126
+msgid "Set radius of corners"
+msgstr "Välj hörnradie"
+
+#: ../../view/theme/redbasic/php/config.php:127
+msgid "Set shadow depth of photos"
+msgstr "Välj skuggdjup för foton"
-#: ../../view/theme/blogga/view/theme/blog/config.php:70
-#: ../../view/theme/blogga/php/config.php:70
-msgid "Header image"
-msgstr "Rubrikbild"
+#: ../../view/theme/redbasic/php/config.php:128
+msgid "Set maximum width of conversation regions"
+msgstr "Välj maxbredd på konversationsfält"
+
+#: ../../view/theme/redbasic/php/config.php:129
+msgid "Center conversation regions"
+msgstr "Centrera konversationsfält"
-#: ../../view/theme/blogga/view/theme/blog/config.php:71
-#: ../../view/theme/blogga/php/config.php:71
-msgid "Header image only on profile pages"
-msgstr "Rubrikbild endast på profilsidor"
+#: ../../view/theme/redbasic/php/config.php:130
+msgid "Set minimum opacity of nav bar - to hide it"
+msgstr "Välj lägsta opacitet för navigeringslisten - för att dölja den"
+
+#: ../../view/theme/redbasic/php/config.php:131
+msgid "Set size of conversation author photo"
+msgstr "Välj storlek på foto för trådskapare"
+
+#: ../../view/theme/redbasic/php/config.php:132
+msgid "Set size of followup author photos"
+msgstr "Välj storlek på svarande personers foton"
+
+#: ../../view/theme/redbasic/php/config.php:133
+msgid "Sloppy photo albums"
+msgstr "Oordnade fotoalbum"
+
+#: ../../view/theme/redbasic/php/config.php:133
+msgid "Are you a clean desk or a messy desk person?"
+msgstr "Föredrar du ett tomt eller stökigt skrivbord?"
-#: ../../boot.php:1252
+#: ../../boot.php:1293
#, php-format
msgid "Update %s failed. See error logs."
msgstr "Uppdatering %s misslyckades. Se felloggar."
-#: ../../boot.php:1255
+#: ../../boot.php:1296
#, php-format
msgid "Update Error at %s"
msgstr "Uppdateringsfel på %s"
-#: ../../boot.php:1419
+#: ../../boot.php:1463
msgid ""
"Create an account to access services and applications within the Red Matrix"
msgstr "Skapa ett konto för att komma åt tjänster och applikationer inom Red Matrix"
-#: ../../boot.php:1447
+#: ../../boot.php:1489
msgid "Password"
msgstr "Lösenord"
-#: ../../boot.php:1448
+#: ../../boot.php:1490
msgid "Remember me"
msgstr "Kom ihåg mig"
-#: ../../boot.php:1453
+#: ../../boot.php:1493
msgid "Forgot your password?"
msgstr "Glömt lösenordet?"
-#: ../../boot.php:1518
+#: ../../boot.php:1567
msgid "permission denied"
msgstr "behörighet saknas"
-#: ../../boot.php:1519
+#: ../../boot.php:1568
msgid "Got Zot?"
msgstr "Got Zot?"
-#: ../../boot.php:1949
+#: ../../boot.php:2030
msgid "toggle mobile"
msgstr "växla mobil"
diff --git a/view/sv/passchanged_eml.tpl b/view/sv/passchanged_eml.tpl
index f0ef1a755..222a6a40a 100644
--- a/view/sv/passchanged_eml.tpl
+++ b/view/sv/passchanged_eml.tpl
@@ -1,7 +1,8 @@
Hej {{$username}},
- Ditt lösenord har bytts enligt begäran. Spara den här informationen
-(eller byt genast lösenordet till något du kan komma ihåg).
+ Ditt lösenord har bytts enligt begäran. Spara den här
+informationen (eller byt genast lösenordet till något du
+kan komma ihåg).
Dina inloggningsuppgifter är:
@@ -16,4 +17,4 @@ Du kan ändra lösenordet från kontoinställningarna när du har loggat in.
Hälsningar,
{{$sitename}}-administratören
-
+ \ No newline at end of file
diff --git a/view/sv/register_open_eml.tpl b/view/sv/register_open_eml.tpl
index 248b45246..e0446c700 100644
--- a/view/sv/register_open_eml.tpl
+++ b/view/sv/register_open_eml.tpl
@@ -1,19 +1,19 @@
-Ett konto för den här e-postadressen har skapats på {{$sitename}}.
+Ett konto för den här e-postadressen har skapats på {{$sitename}}.
Inloggningsuppgifterna är:
Serveradress: {{$siteurl}}
Användarnamn: {{$email}}
Lösenord: (lösenordet som angavs vid registreringen)
-Om kontot skapades utan din vetskap och inte är önskat kan du besöka
-webbplatsen och återställa lösenordet. Det låter dig ta bort kontot via
-länkarna på sidan Inställningar, och vi ber om ursäkt om detta har lett
-till besvär.
+Om kontot skapades utan din vetskap och inte är önskat kan du besöka
+webbplatsen och återställa lösenordet. Det låter dig ta bort kontot via
+länkarna på sidan Inställningar, och vi ber om ursäkt om detta har lett
+till besvär.
Tack och välkommen till {{$sitename}}.
Hälsningar,
{{$sitename}}-administratören
-
+ \ No newline at end of file
diff --git a/view/sv/register_verify_eml.tpl b/view/sv/register_verify_eml.tpl
index beb4f3ad6..a2d319c4e 100644
--- a/view/sv/register_verify_eml.tpl
+++ b/view/sv/register_verify_eml.tpl
@@ -1,6 +1,6 @@
-En begäran om registrering av en ny användare har mottagits på
-{{$sitename}} och behöver ditt godkännande.
+En begäran om registrering av en ny användare har mottagits på
+{{$sitename}} och behöver ditt godkännande.
Inloggningsuppgifterna är:
@@ -22,4 +22,3 @@ För att avslå begäran och ta bort kontot, besök:
Tack.
-
diff --git a/view/sv/register_verify_member.tpl b/view/sv/register_verify_member.tpl
new file mode 100644
index 000000000..0e9dbb651
--- /dev/null
+++ b/view/sv/register_verify_member.tpl
@@ -0,0 +1,24 @@
+
+Tack för att du har skapat ett konto på {{$sitename}}.
+
+Dina inloggningsuppgifter är:
+
+Serveradress: {{$siteurl}}
+Användarnamn: {{$email}}
+
+Logga in med lösenordet som du valde vid registreringen.
+
+Vi behöver bekräfta din e-postadress för att ge dig full åtkomst.
+
+Om du registrerade det här kontot, följ den här länken:
+
+{{$siteurl}}/regver/allow/{{$hash}}
+
+
+För att avbryta registreringen och ta bort kontot, gå till:
+
+
+{{$siteurl}}/regver/deny/{{$hash}}
+
+
+Tack.
diff --git a/view/sv/request_notify_eml.tpl b/view/sv/request_notify_eml.tpl
deleted file mode 100644
index e0b165258..000000000
--- a/view/sv/request_notify_eml.tpl
+++ /dev/null
@@ -1,17 +0,0 @@
-
-Hej {{$myname}},
-
-Du har precis fått en kontaktförfrågan på {{$sitename}}
-
-från '{{$requestor}}'.
-
-Du kan besöka profilen på {{$url}}.
-
-Logga in på din server och se hela presentationen och
-godkänn eller ignorera/avslå förfrågan.
-
-{{$siteurl}}
-
-Hälsningar,
-
- {{$sitename}}-administratören
diff --git a/view/sv/strings.php b/view/sv/strings.php
index 99dde6bed..3217a520e 100644
--- a/view/sv/strings.php
+++ b/view/sv/strings.php
@@ -5,195 +5,8 @@ function string_plural_select_sv($n){
return ($n != 1);;
}}
;
-$a->strings["Categories"] = "Kategorier";
-$a->strings["Connect"] = "Ta kontakt";
-$a->strings["Ignore/Hide"] = "Ignorera/göm";
-$a->strings["Suggestions"] = "Förslag";
-$a->strings["See more..."] = "Se fler...";
-$a->strings["You have %1$.0f of %2$.0f allowed connections."] = "Du har %1$.0f av %2$.0f tillåtna kontakter.";
-$a->strings["Add New Connection"] = "Lägg till ny kontakt";
-$a->strings["Enter the channel address"] = "Ange kanaladressen";
-$a->strings["Example: bob@example.com, http://example.com/barbara"] = "Exempel: bob@example.com, http://example.com/barbara";
-$a->strings["Notes"] = "Anteckningar";
-$a->strings["Save"] = "Spara";
-$a->strings["Remove term"] = "Ta bort uttryck";
-$a->strings["Saved Searches"] = "Sparade sökningar";
-$a->strings["add"] = "lägg till";
-$a->strings["Saved Folders"] = "Sparade mappar";
-$a->strings["Everything"] = "Allt";
-$a->strings["Archives"] = "Arkiv";
-$a->strings["Refresh"] = "Ladda om";
-$a->strings["Me"] = "Mig själv";
-$a->strings["Best Friends"] = "Bästa vänner";
-$a->strings["Friends"] = "Vänner";
-$a->strings["Co-workers"] = "Kollegor";
-$a->strings["Former Friends"] = "Tidigare vänner";
-$a->strings["Acquaintances"] = "Bekanta";
-$a->strings["Everybody"] = "Alla";
-$a->strings["Account settings"] = "Kontoinställningar";
-$a->strings["Channel settings"] = "Kanalinställningar";
-$a->strings["Additional features"] = "Tilläggsfunktioner";
-$a->strings["Feature settings"] = "Funktionsinställningar";
-$a->strings["Display settings"] = "Utseende";
-$a->strings["Connected apps"] = "Anslutna appar";
-$a->strings["Export channel"] = "Exportera kanal";
-$a->strings["Automatic Permissions (Advanced)"] = "Automatiska rättigheter (avancerat)";
-$a->strings["Premium Channel Settings"] = "Inställningar för premiumkanal";
-$a->strings["Channel Sources"] = "Kanalkällor";
-$a->strings["Settings"] = "Inställningar";
-$a->strings["Check Mail"] = "Hämta meddelanden";
-$a->strings["New Message"] = "Nytt meddelande";
-$a->strings["Chat Rooms"] = "Chattrum";
-$a->strings["Bookmarked Chatrooms"] = "Bokmärkta chattrum";
-$a->strings["Suggested Chatrooms"] = "Föreslagna chattrum";
-$a->strings[" and "] = " och ";
-$a->strings["public profile"] = "offentlig profil";
-$a->strings["%1\$s changed %2\$s to &ldquo;%3\$s&rdquo;"] = "%1\$s ändrade %2\$s till &quot;%3\$s&quot;";
-$a->strings["Visit %1\$s's %2\$s"] = "Besök %1\$ss %2\$s";
-$a->strings["%1\$s has an updated %2\$s, changing %3\$s."] = "%1\$s har en uppdaterad %2\$s (har ändrat %3\$s).";
-$a->strings["Logout"] = "Logga ut";
-$a->strings["End this session"] = "Avsluta sessionen";
-$a->strings["Home"] = "Hem";
-$a->strings["Your posts and conversations"] = "Dina inlägg och konversationer";
-$a->strings["View Profile"] = "Visa profil";
-$a->strings["Your profile page"] = "Din profilsida";
-$a->strings["Edit Profiles"] = "Redigera profiler";
-$a->strings["Manage/Edit profiles"] = "Hantera/redigera profiler";
-$a->strings["Photos"] = "Foton";
-$a->strings["Your photos"] = "Dina foton";
-$a->strings["Files"] = "Filer";
-$a->strings["Your files"] = "Dina filer";
-$a->strings["Chat"] = "Chatt";
-$a->strings["Your chatrooms"] = "Dina chattrum";
-$a->strings["Events"] = "Händelser";
-$a->strings["Your events"] = "Dina händelser";
-$a->strings["Bookmarks"] = "Bokmärken";
-$a->strings["Your bookmarks"] = "Dina bokmärken";
-$a->strings["Webpages"] = "Webbsidor";
-$a->strings["Your webpages"] = "Dina webbsidor";
-$a->strings["Login"] = "Logga in";
-$a->strings["Sign in"] = "Logga in";
-$a->strings["%s - click to logout"] = "%s - klicka för att logga ut";
-$a->strings["Click to authenticate to your home hub"] = "Klicka för att autentisera mot din hemmahubb";
-$a->strings["Home Page"] = "Hemsida";
-$a->strings["Register"] = "Registrera";
-$a->strings["Create an account"] = "Skapa ett konto";
-$a->strings["Help"] = "Hjälp";
-$a->strings["Help and documentation"] = "Hjälp och dokumentation";
-$a->strings["Apps"] = "Appar";
-$a->strings["Addon applications, utilities, games"] = "Tilläggsapplikationer, verktyg, spel";
-$a->strings["Search"] = "Sök";
-$a->strings["Search site content"] = "Sök innehåll";
-$a->strings["Directory"] = "Katalog";
-$a->strings["Channel Locator"] = "Kanalfinnare";
-$a->strings["Matrix"] = "Matris";
-$a->strings["Your matrix"] = "Din matris";
-$a->strings["Mark all matrix notifications seen"] = "Märk alla matrisnotifieringar som lästa";
-$a->strings["Channel Home"] = "Kanalhem";
-$a->strings["Channel home"] = "Kanalhem";
-$a->strings["Mark all channel notifications seen"] = "Märk alla kanalnotifieringar som lästa";
-$a->strings["Connections"] = "Kontakter";
-$a->strings["Notices"] = "Meddelanden";
-$a->strings["Notifications"] = "Notifieringar";
-$a->strings["See all notifications"] = "Se alla notifieringar";
-$a->strings["Mark all system notifications seen"] = "Märk alla systemnotifieringar som lästa";
-$a->strings["Mail"] = "Privat meddelande";
-$a->strings["Private mail"] = "Privat meddelande";
-$a->strings["See all private messages"] = "Se alla privata meddelanden";
-$a->strings["Mark all private messages seen"] = "Märk alla privata meddelanden som lästa";
-$a->strings["Inbox"] = "Inkorg";
-$a->strings["Outbox"] = "Utkorg";
-$a->strings["Event Calendar"] = "Kalender";
-$a->strings["See all events"] = "Se alla händelser";
-$a->strings["Mark all events seen"] = "Märk alla händelser som lästa";
-$a->strings["Channel Select"] = "Välj kanal";
-$a->strings["Manage Your Channels"] = "Hantera dina kanaler";
-$a->strings["Account/Channel Settings"] = "Konto-/kanalinställningar";
-$a->strings["Manage/Edit Friends and Connections"] = "Hantera/redigera vänner och kontakter";
-$a->strings["Admin"] = "Administration";
-$a->strings["Site Setup and Configuration"] = "Serverinställning och -konfiguration";
-$a->strings["Nothing new here"] = "Inget nytt här";
-$a->strings["Please wait..."] = "Vänta...";
-$a->strings["l F d, Y \\@ g:i A"] = "l j F Y \\k\\l. H.i";
-$a->strings["Starts:"] = "Börjar:";
-$a->strings["Finishes:"] = "Slutar:";
-$a->strings["Location:"] = "Plats:";
-$a->strings["Public Timeline"] = "Offentlig tidslinje";
-$a->strings["New window"] = "Nytt fönster";
-$a->strings["Open the selected location in a different window or browser tab"] = "Öppna den valda platsen i ett annat fönster eller en annan webbläsarflik";
-$a->strings["General Features"] = "Allmänna funktioner";
-$a->strings["Content Expiration"] = "Tidsbegränsat innehåll";
-$a->strings["Remove posts/comments and/or private messages at a future time"] = "Ta bort inlägg/kommentarer och/eller privata meddelanden efter en tid";
-$a->strings["Multiple Profiles"] = "Flera profiler";
-$a->strings["Ability to create multiple profiles"] = "Möjlighet att skapa flera profiler";
-$a->strings["Web Pages"] = "Webbsidor";
-$a->strings["Provide managed web pages on your channel"] = "Tillhandahåll ordnade webbsidor i din kanal";
-$a->strings["Private Notes"] = "Privata anteckningar";
-$a->strings["Enables a tool to store notes and reminders"] = "Aktivera ett verktyg för att spara anteckningar och påminnelser";
-$a->strings["Extended Identity Sharing"] = "Utökad identitetsdelning";
-$a->strings["Share your identity with all websites on the internet. When disabled, identity is only shared with sites in the matrix."] = "Dela din identitet med alla webbplatser på Internet. Om inaktiverat är identiteten bara delad med platser i matrisen.";
-$a->strings["Expert Mode"] = "Expertläge";
-$a->strings["Enable Expert Mode to provide advanced configuration options"] = "Aktivera expertläge för att tillåta avancerade inställningar";
-$a->strings["Premium Channel"] = "Premiumkanal";
-$a->strings["Allows you to set restrictions and terms on those that connect with your channel"] = "Låter dig ange begränsningar och villkor för dem som vill ansluta till din kanal";
-$a->strings["Post Composition Features"] = "Skrivfunktioner";
-$a->strings["Richtext Editor"] = "Richtext-editor";
-$a->strings["Enable richtext editor"] = "Aktivera richtext-editor";
-$a->strings["Post Preview"] = "Förhandsgranskning";
-$a->strings["Allow previewing posts and comments before publishing them"] = "Tillåt förhandsgranskning av inlägg och kommentarer innan de publiceras";
-$a->strings["Automatically import channel content from other channels or feeds"] = "Importera kanalinnehåll från andra kanaler eller strömmar automatiskt";
-$a->strings["Even More Encryption"] = "Ytterligare kryptering";
-$a->strings["Allow optional encryption of content end-to-end with a shared secret key"] = "Tillåt änd-till-änd-kryptering av innehåll med en delad hemlig nyckel";
-$a->strings["Network and Stream Filtering"] = "Nätverk och strömfiltrering";
-$a->strings["Search by Date"] = "Sök på datum";
-$a->strings["Ability to select posts by date ranges"] = "Tillåter urval av inlägg baserat på datum";
-$a->strings["Collections Filter"] = "Sammanhangsfilter";
-$a->strings["Enable widget to display Network posts only from selected collections"] = "Aktivera en väljare för att visa nätverksinlägg från enbart valda sammanhang";
-$a->strings["Save search terms for re-use"] = "Spara sökuttryck för återanvändning";
-$a->strings["Network Personal Tab"] = "Personlig nätverksflik";
-$a->strings["Enable tab to display only Network posts that you've interacted on"] = "Aktivera en flik som visar endast de nätverksinlägg som du har deltagit i";
-$a->strings["Network New Tab"] = "Flik för nytt på nätverket";
-$a->strings["Enable tab to display all new Network activity"] = "Aktivera en flik som visar all ny nätverksaktivitet";
-$a->strings["Affinity Tool"] = "Samhörighetsverktyg";
-$a->strings["Filter stream activity by depth of relationships"] = "Filtrera strömaktivitet efter hur nära relationen är";
-$a->strings["Suggest Channels"] = "Föreslå kanaler";
-$a->strings["Show channel suggestions"] = "Visa förslag på kanaler";
-$a->strings["Post/Comment Tools"] = "Inläggs-/kommentarsverktyg";
-$a->strings["Edit Sent Posts"] = "Redigera sända inlägg";
-$a->strings["Edit and correct posts and comments after sending"] = "Redigera och korrigera inlägg och kommentarer efter att de skickats";
-$a->strings["Tagging"] = "Taggning";
-$a->strings["Ability to tag existing posts"] = "Möjlighet att tagga befintliga inlägg";
-$a->strings["Post Categories"] = "Inläggskategorier";
-$a->strings["Add categories to your posts"] = "Lägg till kategorier till dina inlägg";
-$a->strings["Ability to file posts under folders"] = "Möjlighet att lägga inlägg i mappar";
-$a->strings["Dislike Posts"] = "Ogilla inlägg";
-$a->strings["Ability to dislike posts/comments"] = "Möjlighet att ogilla inlägg/kommentarer";
-$a->strings["Star Posts"] = "Märk inlägg";
-$a->strings["Ability to mark special posts with a star indicator"] = "Möjlighet att märka speciella inlägg med en stjärna";
-$a->strings["Tag Cloud"] = "Taggmoln";
-$a->strings["Provide a personal tag cloud on your channel page"] = "Tillhandahåll ett personligt taggmoln på din kanalsida";
-$a->strings["Unknown | Not categorised"] = "Okänd | Inte kategoriserad";
-$a->strings["Block immediately"] = "Blockera genast";
-$a->strings["Shady, spammer, self-marketer"] = "Skum, spammare, självförhärligande";
-$a->strings["Known to me, but no opinion"] = "Känner till, men ingen åsikt";
-$a->strings["OK, probably harmless"] = "OK, antagligen harmlös";
-$a->strings["Reputable, has my trust"] = "Ansedd, har mitt förtroende";
-$a->strings["Frequently"] = "Ofta";
-$a->strings["Hourly"] = "Varje timme";
-$a->strings["Twice daily"] = "Två gånger dagligen";
-$a->strings["Daily"] = "Dagligen";
-$a->strings["Weekly"] = "Varje vecka";
-$a->strings["Monthly"] = "Varje månad";
-$a->strings["Friendica"] = "Friendica";
-$a->strings["OStatus"] = "OStatus";
-$a->strings["RSS/Atom"] = "RSS/Atom";
-$a->strings["Email"] = "E-post";
-$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["Cannot locate DNS info for database server '%s'"] = "Kan inte hitta DNS-information för databasserver '%s'";
+$a->strings["Profile Photos"] = "Profilfoton";
$a->strings["photo"] = "foto";
$a->strings["event"] = "händelse";
$a->strings["channel"] = "kanal";
@@ -204,11 +17,12 @@ $a->strings["%1\$s doesn't like %2\$s's %3\$s"] = "%1\$s gillar inte %2\$ss %3\$
$a->strings["%1\$s is now connected with %2\$s"] = "%1\$s har nu kontakt med %2\$s";
$a->strings["%1\$s poked %2\$s"] = "%1\$s puffade %2\$s";
$a->strings["poked"] = "puffade";
-$a->strings["%1\$s is currently %2\$s"] = "%1\$s är för tillfället %2\$s";
+$a->strings["__ctx:mood__ %1\$s is %2\$s"] = "%1\$s är %2\$s";
$a->strings["Select"] = "Välj";
$a->strings["Delete"] = "Ta bort";
$a->strings["Private Message"] = "Privat meddelande";
-$a->strings["Message is verified"] = "Meddelandet är bekräftat";
+$a->strings["Message signature validated"] = "Meddelandesignatur bekräftad";
+$a->strings["Message signature incorrect"] = "Meddelandesignatur felaktig";
$a->strings["View %s's profile @ %s"] = "Visa %ss profil på %s";
$a->strings["Categories:"] = "Kategorier:";
$a->strings["Filed under:"] = "Postat under:";
@@ -223,11 +37,14 @@ $a->strings["Delete Selected Items"] = "Ta bort valda poster";
$a->strings["View Source"] = "Visa källa";
$a->strings["Follow Thread"] = "Följ tråd";
$a->strings["View Status"] = "Visa status";
+$a->strings["View Profile"] = "Visa profil";
$a->strings["View Photos"] = "Visa foton";
$a->strings["Matrix Activity"] = "Matrisaktivitet";
+$a->strings["Connect"] = "Ta kontakt";
$a->strings["Edit Contact"] = "Redigera kontakt";
$a->strings["Send PM"] = "Skicka meddelande";
$a->strings["Poke"] = "Puffa";
+$a->strings["Unknown"] = "Okända";
$a->strings["%s likes this."] = "%s gillar det här.";
$a->strings["%s doesn't like this."] = "%s gillar inte det här.";
$a->strings["<span %1\$s>%2\$d people</span> like this."] = array(
@@ -245,7 +62,7 @@ $a->strings[", and %d other people"] = array(
);
$a->strings["%s like this."] = "%s gillar det här.";
$a->strings["%s don't like this."] = "%s gillar inte det här.";
-$a->strings["Visible to <strong>everybody</strong>"] = "Synlig för <strong>alla</strong>";
+$a->strings["Visible to <strong>everybody</strong>"] = "Kan ses av <strong>alla</strong>";
$a->strings["Please enter a link URL:"] = "Ange en länkadress:";
$a->strings["Please enter a video link/URL:"] = "Ange en videolänkadress:";
$a->strings["Please enter an audio link/URL:"] = "Ange en ljudlänkadress";
@@ -299,79 +116,77 @@ $a->strings["Channel"] = "Kanal";
$a->strings["Status Messages and Posts"] = "Statusmeddelanden och inlägg";
$a->strings["About"] = "Om";
$a->strings["Profile Details"] = "Profildetaljer";
+$a->strings["Photos"] = "Foton";
$a->strings["Photo Albums"] = "Fotoalbum";
+$a->strings["Files"] = "Filer";
$a->strings["Files and Storage"] = "Filer och lagring";
$a->strings["Chatrooms"] = "Chattrum";
-$a->strings["Events and Calendar"] = "Händelser och kalender";
+$a->strings["Bookmarks"] = "Bokmärken";
$a->strings["Saved Bookmarks"] = "Sparade bokmärken";
+$a->strings["Webpages"] = "Webbsidor";
$a->strings["Manage Webpages"] = "Hantera webbsidor";
-$a->strings["Miscellaneous"] = "Övrigt";
-$a->strings["year"] = "Ã¥r";
-$a->strings["month"] = "månad";
-$a->strings["day"] = "dag";
-$a->strings["never"] = "aldrig";
-$a->strings["less than a second ago"] = "mindre än en sekund sedan";
-$a->strings["years"] = "Ã¥r";
-$a->strings["months"] = "månader";
-$a->strings["week"] = "vecka";
-$a->strings["weeks"] = "veckor";
-$a->strings["days"] = "dagar";
-$a->strings["hour"] = "timme";
-$a->strings["hours"] = "timmar";
-$a->strings["minute"] = "minut";
-$a->strings["minutes"] = "minuter";
-$a->strings["second"] = "sekund";
-$a->strings["seconds"] = "sekunder";
-$a->strings["%1\$d %2\$s ago"] = "%1\$d %2\$s sedan";
-$a->strings["Cannot locate DNS info for database server '%s'"] = "Kan inte hitta DNS-information för databasserver '%s'";
-$a->strings["Image/photo"] = "Bild/foto";
-$a->strings["Encrypted content"] = "Krypterat innehåll";
-$a->strings["QR code"] = "QR-kod";
-$a->strings["%1\$s wrote the following %2\$s %3\$s"] = "%1\$s skrev följande %2\$s %3\$s";
-$a->strings["post"] = "post";
-$a->strings["$1 wrote:"] = "$1 skrev:";
-$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."] = "En borttagen grupp med det här namnet återskapades. Befintliga rättigheter till saker <strong>kan</strong> gälla för den här gruppen och alla framtida medlemmar. Om det här inte är vad du avsåg, skapa i stället en annan grupp med ett annat namn.";
-$a->strings["Default privacy group for new contacts"] = "Förvald integritetsgrupp för nya kontakter";
-$a->strings["All Channels"] = "Alla kanaler";
-$a->strings["edit"] = "redigera";
-$a->strings["Collections"] = "Sammanhang";
-$a->strings["Edit collection"] = "Redigera sammanhang";
-$a->strings["Create a new collection"] = "Skapa ett nytt sammanhang";
-$a->strings["Channels not in any collection"] = "Kanaler utan sammanhang";
-$a->strings["Delete this item?"] = "Ta bort den här posten?";
-$a->strings["Comment"] = "Kommentar";
+$a->strings["Channel is blocked on this site."] = "Kanalen är blockerad på den här servern.";
+$a->strings["Channel location missing."] = "Kanalplats saknas.";
+$a->strings["Response from remote channel was incomplete."] = "Svar från den andra kanalen var ofullständigt.";
+$a->strings["Channel was deleted and no longer exists."] = "Kanalen har tagits bort och finns inte längre.";
+$a->strings["Protocol disabled."] = "Protokoll inaktiverat.";
+$a->strings["Channel discovery failed."] = "Kanalsökning misslyckades.";
+$a->strings["local account not found."] = "hittade inte lokalt konto.";
+$a->strings["Cannot connect to yourself."] = "Du kan inte kontakta dig själv.";
+$a->strings["created a new post"] = "skapade ett nytt inlägg";
+$a->strings["commented on %s's post"] = "kommenterade %ss inlägg";
+$a->strings["New Page"] = "Ny sida";
+$a->strings["Edit"] = "Redigera";
+$a->strings["View"] = "Visa";
+$a->strings["Actions"] = "Åtgärder";
+$a->strings["Page Link"] = "Länk";
+$a->strings["Title"] = "Titel";
+$a->strings["Created"] = "Skapad";
+$a->strings["Edited"] = "Ändrad";
+$a->strings["%d invitation available"] = array(
+ 0 => "%d inbjudan tillgänglig",
+ 1 => "%d inbjudningar tillgängliga",
+);
+$a->strings["Advanced"] = "Avancerat";
+$a->strings["Find Channels"] = "Hitta kanaler";
+$a->strings["Enter name or interest"] = "Ange namn eller intresse";
+$a->strings["Connect/Follow"] = "Ta kontakt/följ";
+$a->strings["Examples: Robert Morgenstein, Fishing"] = "Exempel: Robert Morgenstein, Fiske";
+$a->strings["Find"] = "Sök";
+$a->strings["Channel Suggestions"] = "Kanalförslag";
+$a->strings["Random Profile"] = "Slumpvald profil";
+$a->strings["Invite Friends"] = "Bjud in vänner";
+$a->strings["Advanced example: name=fred and country=iceland"] = "Avancerat exempel: name=fred and country=iceland";
+$a->strings["Saved Folders"] = "Sparade mappar";
+$a->strings["Everything"] = "Allt";
+$a->strings["Categories"] = "Kategorier";
+$a->strings["%d connection in common"] = array(
+ 0 => "%d gemensam kontakt",
+ 1 => "%d gemensamma kontakter",
+);
$a->strings["show more"] = "visa fler";
-$a->strings["show fewer"] = "visa färre";
-$a->strings["+ Show More"] = "+ Visa fler";
-$a->strings["- Show Less"] = "- Visa färre";
-$a->strings["Password too short"] = "Lösenord för kort";
-$a->strings["Passwords do not match"] = "Lösenorden stämmer inte överens";
-$a->strings["everybody"] = "alla";
-$a->strings["Secret Passphrase"] = "Hemligt lösenord";
-$a->strings["Passphrase hint"] = "Lösenordsledtråd";
-$a->strings["Notice: Permissions have changed but have not yet been submitted."] = "Observera: Rättigheter har ändrats men har ännu inte skickats in";
-$a->strings["timeago.prefixAgo"] = "för";
-$a->strings["timeago.prefixFromNow"] = "om";
-$a->strings["ago"] = "sedan";
-$a->strings["from now"] = " ";
-$a->strings["less than a minute"] = "mindre än en minut";
-$a->strings["about a minute"] = "ungefär en minut";
-$a->strings["%d minutes"] = "%d minuter";
-$a->strings["about an hour"] = "ungefär en timme";
-$a->strings["about %d hours"] = "ungefär %d timmar";
-$a->strings["a day"] = "en dag";
-$a->strings["%d days"] = "%d dagar";
-$a->strings["about a month"] = "ungefär en månad";
-$a->strings["%d months"] = "%d månader";
-$a->strings["about a year"] = "ungefär ett år";
-$a->strings["%d years"] = "%d år";
-$a->strings[" "] = " ";
-$a->strings["timeago.numbers"] = "timeago.numbers";
+$a->strings["Embedded content"] = "Inbäddat innehåll";
+$a->strings["Embedding disabled"] = "Inbäddning inaktiverat";
$a->strings["No recipient provided."] = "Ingen mottagare angiven.";
$a->strings["[no subject]"] = "[inget ämne]";
$a->strings["Unable to determine sender."] = "Kunde inte avgöra vem som är avsändare.";
$a->strings["Stored post could not be verified."] = "Den sparade posten kunde inte verifieras.";
-$a->strings["Profile Photos"] = "Profilfoton";
+$a->strings[" and "] = " och ";
+$a->strings["public profile"] = "offentlig profil";
+$a->strings["%1\$s changed %2\$s to &ldquo;%3\$s&rdquo;"] = "%1\$s ändrade %2\$s till &quot;%3\$s&quot;";
+$a->strings["Visit %1\$s's %2\$s"] = "Besök %1\$ss %2\$s";
+$a->strings["%1\$s has an updated %2\$s, changing %3\$s."] = "%1\$s har en uppdaterad %2\$s (har ändrat %3\$s).";
+$a->strings["Visible to your default audience"] = "Kan ses av förinställda mottagare";
+$a->strings["Show"] = "Visa";
+$a->strings["Don't show"] = "Visa inte";
+$a->strings["Permissions"] = "Behörighet";
+$a->strings["Close"] = "Stäng";
+$a->strings["Attachments:"] = "Bilagor:";
+$a->strings["l F d, Y \\@ g:i A"] = "l j F Y \\k\\l. H.i";
+$a->strings["Redmatrix event notification:"] = "Händelsenotifiering från Redmatrix:";
+$a->strings["Starts:"] = "Börjar:";
+$a->strings["Finishes:"] = "Slutar:";
+$a->strings["Location:"] = "Plats:";
$a->strings["Permission denied."] = "Behörighet saknas.";
$a->strings["Item was not found."] = "Posten hittades inte.";
$a->strings["No source file."] = "Ingen källfil.";
@@ -387,12 +202,103 @@ $a->strings["duplicate filename or path"] = "filnamn eller sökväg finns redan"
$a->strings["Path not found."] = "Sökväg hittas inte.";
$a->strings["mkdir failed."] = "mkdir misslyckades.";
$a->strings["database storage failed."] = "databaslagring misslyckades.";
+$a->strings["parent"] = "en nivå upp";
+$a->strings["Collection"] = "Samling";
+$a->strings["Principal"] = "Bas";
+$a->strings["Addressbook"] = "Adressbok";
+$a->strings["Calendar"] = "Kalender";
+$a->strings["Schedule Inbox"] = "Schemainkorg";
+$a->strings["Schedule Outbox"] = "Schemautkorg";
+$a->strings["%1\$s used"] = "%1\$s använt";
+$a->strings["%1\$s used of %2\$s (%3\$s&#37;)"] = "%1\$s använt av %2\$s (%3\$s&#37;)";
+$a->strings["Name"] = "Namn";
+$a->strings["Type"] = "Typ";
+$a->strings["Size"] = "Storlek";
+$a->strings["Last Modified"] = "Senast ändrad";
+$a->strings["Total"] = "Totalt";
+$a->strings["Create new folder"] = "Skapa ny mapp";
+$a->strings["Create"] = "Skapa";
+$a->strings["Upload file"] = "Ladda upp fil";
+$a->strings["Upload"] = "Ladda upp";
$a->strings["%1\$s's bookmarks"] = "%1\$ss bokmärken";
-$a->strings["Visible to everybody"] = "Synlig för alla";
-$a->strings["Show"] = "Visa";
-$a->strings["Don't show"] = "Visa inte";
-$a->strings["Permissions"] = "Behörighet";
-$a->strings["Close"] = "Stäng";
+$a->strings["Logout"] = "Logga ut";
+$a->strings["End this session"] = "Avsluta sessionen";
+$a->strings["Home"] = "Hem";
+$a->strings["Your posts and conversations"] = "Dina inlägg och konversationer";
+$a->strings["Your profile page"] = "Din profilsida";
+$a->strings["Edit Profiles"] = "Redigera profiler";
+$a->strings["Manage/Edit profiles"] = "Hantera/redigera profiler";
+$a->strings["Edit Profile"] = "Redigera profil";
+$a->strings["Edit your profile"] = "Redigera din profil";
+$a->strings["Your photos"] = "Dina foton";
+$a->strings["Your files"] = "Dina filer";
+$a->strings["Chat"] = "Chatt";
+$a->strings["Your chatrooms"] = "Dina chattrum";
+$a->strings["Your bookmarks"] = "Dina bokmärken";
+$a->strings["Your webpages"] = "Dina webbsidor";
+$a->strings["Login"] = "Logga in";
+$a->strings["Sign in"] = "Logga in";
+$a->strings["%s - click to logout"] = "%s - klicka för att logga ut";
+$a->strings["Remote authentication"] = "Fjärrinloggning";
+$a->strings["Click to authenticate to your home hub"] = "Klicka för att autentisera mot din hemmahubb";
+$a->strings["Home Page"] = "Hemsida";
+$a->strings["Register"] = "Skapa konto";
+$a->strings["Create an account"] = "Skapa ett konto";
+$a->strings["Help"] = "Hjälp";
+$a->strings["Help and documentation"] = "Hjälp och dokumentation";
+$a->strings["Apps"] = "Appar";
+$a->strings["Applications, utilities, links, games"] = "Applikationer, verktyg, länkar, spel";
+$a->strings["Search"] = "Sök";
+$a->strings["Search site content"] = "Sök innehåll";
+$a->strings["Directory"] = "Katalog";
+$a->strings["Channel Directory"] = "Kanalkatalog";
+$a->strings["Matrix"] = "Matris";
+$a->strings["Your matrix"] = "Din matris";
+$a->strings["Mark all matrix notifications seen"] = "Märk alla matrisnotifieringar som lästa";
+$a->strings["Channel Home"] = "Kanalhem";
+$a->strings["Channel home"] = "Kanalhem";
+$a->strings["Mark all channel notifications seen"] = "Märk alla kanalnotifieringar som lästa";
+$a->strings["Connections"] = "Kontakter";
+$a->strings["Notices"] = "Meddelanden";
+$a->strings["Notifications"] = "Notifieringar";
+$a->strings["See all notifications"] = "Se alla notifieringar";
+$a->strings["Mark all system notifications seen"] = "Märk alla systemnotifieringar som lästa";
+$a->strings["Mail"] = "Privat meddelande";
+$a->strings["Private mail"] = "Privat meddelande";
+$a->strings["See all private messages"] = "Se alla privata meddelanden";
+$a->strings["Mark all private messages seen"] = "Märk alla privata meddelanden som lästa";
+$a->strings["Inbox"] = "Inkorg";
+$a->strings["Outbox"] = "Utkorg";
+$a->strings["New Message"] = "Nytt meddelande";
+$a->strings["Events"] = "Händelser";
+$a->strings["Event Calendar"] = "Kalender";
+$a->strings["See all events"] = "Se alla händelser";
+$a->strings["Mark all events seen"] = "Märk alla händelser som lästa";
+$a->strings["Channel Manager"] = "Kanalhanterare";
+$a->strings["Manage Your Channels"] = "Hantera dina kanaler";
+$a->strings["Settings"] = "Inställningar";
+$a->strings["Account/Channel Settings"] = "Konto-/kanalinställningar";
+$a->strings["Admin"] = "Administration";
+$a->strings["Site Setup and Configuration"] = "Serverinställning och -konfiguration";
+$a->strings["Please wait..."] = "Vänta...";
+$a->strings["view full size"] = "visa full storlek";
+$a->strings["Default"] = "Standard";
+$a->strings["Frequently"] = "Ofta";
+$a->strings["Hourly"] = "Varje timme";
+$a->strings["Twice daily"] = "Två gånger dagligen";
+$a->strings["Daily"] = "Dagligen";
+$a->strings["Weekly"] = "Varje vecka";
+$a->strings["Monthly"] = "Varje månad";
+$a->strings["Friendica"] = "Friendica";
+$a->strings["OStatus"] = "OStatus";
+$a->strings["RSS/Atom"] = "RSS/Atom";
+$a->strings["Email"] = "E-post";
+$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["Unable to obtain identity information from database"] = "Kunde inte hämta från databasen";
$a->strings["Empty name"] = "Tomt namn";
$a->strings["Name too long"] = "För långt namn";
@@ -402,13 +308,13 @@ $a->strings["Reserved nickname. Please choose another."] = "Reserverat smeknamn.
$a->strings["Nickname has unsupported characters or is already being used on this site."] = "Smeknamnet innehåller otillåtna tecken eller är redan upptaget på den här servern.";
$a->strings["Unable to retrieve created identity"] = "Kunde inte hämta den skapade identiteten";
$a->strings["Default Profile"] = "Standardprofil";
+$a->strings["Friends"] = "Vänner";
$a->strings["Requested channel is not available."] = "Den begärda kanalen är inte tillgänglig";
$a->strings["Requested profile is not available."] = "Begärd profil är inte tillgänglig.";
$a->strings["Change profile photo"] = "Bytprofilfoto";
$a->strings["Profiles"] = "Profiler";
$a->strings["Manage/edit profiles"] = "Hantera/redigera profiler";
$a->strings["Create New Profile"] = "Skapa ny profil";
-$a->strings["Edit Profile"] = "Redigera profil";
$a->strings["Profile Image"] = "Profilbild";
$a->strings["visible to everybody"] = "synlig för alla";
$a->strings["Edit visibility"] = "Redigera synlighet";
@@ -426,6 +332,11 @@ $a->strings["Event Reminders"] = "Händelsepåminnelser";
$a->strings["Events this week:"] = "Händelser den här veckan:";
$a->strings["Profile"] = "Profil";
$a->strings["Full Name:"] = "Fullständigt namn:";
+$a->strings["Like this channel"] = "Gilla den här kanalen";
+$a->strings["__ctx:noun__ Like"] = array(
+ 0 => "gillar detta",
+ 1 => "gillar detta",
+);
$a->strings["j F, Y"] = "j F Y";
$a->strings["j F"] = "j F";
$a->strings["Birthday:"] = "Födelsedag:";
@@ -449,41 +360,169 @@ $a->strings["Film/dance/culture/entertainment:"] = "Film/dans/kultur/underhålln
$a->strings["Love/Romance:"] = "Kärlek/romantik:";
$a->strings["Work/employment:"] = "Arbete/sysselsättning:";
$a->strings["School/education:"] = "Skola/utbildning:";
-$a->strings["Edit"] = "Redigera";
-$a->strings["save to folder"] = "spara i mapp";
-$a->strings["add star"] = "lägg till märke";
-$a->strings["remove star"] = "ta bort märke";
-$a->strings["toggle star status"] = "växla märke på/av";
-$a->strings["starred"] = "märkt";
-$a->strings["add tag"] = "lägg till tagg";
-$a->strings["I like this (toggle)"] = "Jag gillar det här (växla)";
+$a->strings["Like this thing"] = "Gilla den här saken";
+$a->strings["Image/photo"] = "Bild/foto";
+$a->strings["Encrypted content"] = "Krypterat innehåll";
+$a->strings["Install design element: "] = "Installera designelement: ";
+$a->strings["QR code"] = "QR-kod";
+$a->strings["%1\$s wrote the following %2\$s %3\$s"] = "%1\$s skrev följande %2\$s %3\$s";
+$a->strings["post"] = "post";
+$a->strings["$1 spoiler"] = "$1 spoiler";
+$a->strings["$1 wrote:"] = "$1 skrev:";
+$a->strings["Miscellaneous"] = "Övrigt";
+$a->strings["YYYY-MM-DD or MM-DD"] = "Ã…Ã…Ã…Ã…-MM-DD eller MM-DD";
+$a->strings["never"] = "aldrig";
+$a->strings["less than a second ago"] = "mindre än en sekund sedan";
+$a->strings["year"] = "Ã¥r";
+$a->strings["years"] = "Ã¥r";
+$a->strings["month"] = "månad";
+$a->strings["months"] = "månader";
+$a->strings["week"] = "vecka";
+$a->strings["weeks"] = "veckor";
+$a->strings["day"] = "dag";
+$a->strings["days"] = "dagar";
+$a->strings["hour"] = "timme";
+$a->strings["hours"] = "timmar";
+$a->strings["minute"] = "minut";
+$a->strings["minutes"] = "minuter";
+$a->strings["second"] = "sekund";
+$a->strings["seconds"] = "sekunder";
+$a->strings["%1\$d %2\$s ago"] = "%1\$d %2\$s sedan";
+$a->strings["%1\$s's birthday"] = "%1\$ss födelsedag";
+$a->strings["Happy Birthday %1\$s"] = "Grattis på födelsedagen %1\$s";
+$a->strings["Invalid data packet"] = "Ogiltigt datapaket";
+$a->strings["Unable to verify channel signature"] = "Kunde inte bekräfta kanalsignatur";
+$a->strings["Unable to verify site signature for %s"] = "Kunde inte bekräfta signatur för servern %s";
+$a->strings["Tags"] = "Taggar";
+$a->strings["Keywords"] = "Nyckelord";
+$a->strings["have"] = "har";
+$a->strings["has"] = "har";
+$a->strings["want"] = "vill ha";
+$a->strings["wants"] = "vill ha";
$a->strings["like"] = "gilla";
-$a->strings["I don't like this (toggle)"] = "Jag gillar inte det här (växla)";
+$a->strings["likes"] = "gillar";
$a->strings["dislike"] = "ogilla";
-$a->strings["Share this"] = "Dela det här";
-$a->strings["share"] = "dela";
-$a->strings["View %s's profile - %s"] = "Visa %ss profil - %s";
-$a->strings["to"] = "till";
-$a->strings["via"] = "via";
-$a->strings["Wall-to-Wall"] = "Vägg-till-vägg";
-$a->strings["via Wall-To-Wall:"] = "via vägg-till-vägg";
-$a->strings["Bookmark Links"] = "Bokmärk länkar";
-$a->strings["%d comment"] = array(
- 0 => "%d kommentar",
- 1 => "%d kommentarer",
-);
-$a->strings["This is you"] = "Det här är du";
-$a->strings["Submit"] = "Skicka";
-$a->strings["Bold"] = "Fet";
-$a->strings["Italic"] = "Kursiv";
-$a->strings["Underline"] = "Understruken";
-$a->strings["Quote"] = "Citat";
-$a->strings["Code"] = "Kod";
-$a->strings["Image"] = "Bild";
-$a->strings["Link"] = "Länk";
-$a->strings["Video"] = "Video";
-$a->strings["Edit File properties"] = "Redigera filegenskaper";
-$a->strings["view full size"] = "visa full storlek";
+$a->strings["dislikes"] = "ogillar";
+$a->strings["Public Timeline"] = "Offentlig tidslinje";
+$a->strings["Directory Options"] = "Katalogalternativ";
+$a->strings["Alphabetic"] = "Alfabetisk";
+$a->strings["Reverse Alphabetic"] = "Omvänd alfabetisk";
+$a->strings["Newest to Oldest"] = "Nyast till äldst";
+$a->strings["Public Forums Only"] = "Endast offentliga forum";
+$a->strings["Enable Safe Search"] = "Aktivera säker sökning";
+$a->strings["Disable Safe Search"] = "Avaktivera säker sökning";
+$a->strings["Safe Mode"] = "Säkert läge";
+$a->strings["Red Matrix Notification"] = "Red Matrix-meddelande";
+$a->strings["redmatrix"] = "redmatrix";
+$a->strings["Thank You,"] = "Tack,";
+$a->strings["%s Administrator"] = "Administratören för %s";
+$a->strings["%s <!item_type!>"] = "%s <!item_type!>";
+$a->strings["[Red:Notify] New mail received at %s"] = "[Red:Meddelande] Nytt meddelande på %s";
+$a->strings["%1\$s, %2\$s sent you a new private message at %3\$s."] = "%1\$s, %2\$s skickade ett nytt privat meddelande till dig på %3\$s.";
+$a->strings["%1\$s sent you %2\$s."] = "%1\$s skickade %2\$s till dig.";
+$a->strings["a private message"] = "ett privat meddelande";
+$a->strings["Please visit %s to view and/or reply to your private messages."] = "Besök %s för att visa och/eller svara på dina privata meddelanden.";
+$a->strings["%1\$s, %2\$s commented on [zrl=%3\$s]a %4\$s[/zrl]"] = "%1\$s, %2\$s kommenterade [zrl=%3\$s]ett %4\$s[/zrl]";
+$a->strings["%1\$s, %2\$s commented on [zrl=%3\$s]%4\$s's %5\$s[/zrl]"] = "%1\$s, %2\$s kommenterade [zrl=%3\$s]%4\$ss %5\$s[/zrl]";
+$a->strings["%1\$s, %2\$s commented on [zrl=%3\$s]your %4\$s[/zrl]"] = "%1\$s, %2\$s kommenterade [zrl=%3\$s]ditt %4\$s[/zrl]";
+$a->strings["[Red:Notify] Comment to conversation #%1\$d by %2\$s"] = "[Red:Meddelande] Kommentar till konversation #%1\$d av %2\$s";
+$a->strings["%1\$s, %2\$s commented on an item/conversation you have been following."] = "%1\$s, %2\$s kommenterade en sak/konversation du har följt.";
+$a->strings["Please visit %s to view and/or reply to the conversation."] = "Besök %s för att visa och/eller svara på konversationen.";
+$a->strings["[Red:Notify] %s posted to your profile wall"] = "[Red:Meddelande] %s postade till din profilvägg";
+$a->strings["%1\$s, %2\$s posted to your profile wall at %3\$s"] = "%1\$s, %2\$s postade till din profilvägg på %3\$s";
+$a->strings["%1\$s, %2\$s posted to [zrl=%3\$s]your wall[/zrl]"] = "%1\$s, %2\$s postade till [zrl=%3\$s]din vägg[/zrl]";
+$a->strings["[Red:Notify] %s tagged you"] = "[Red:Meddelande] %s taggade dig";
+$a->strings["%1\$s, %2\$s tagged you at %3\$s"] = "%1\$s, %2\$s taggade dig på %3\$s";
+$a->strings["%1\$s, %2\$s [zrl=%3\$s]tagged you[/zrl]."] = "%1\$s, %2\$s [zrl=%3\$s]taggade dig[/zrl].";
+$a->strings["[Red:Notify] %1\$s poked you"] = "[Red:Meddelande] %1\$s puffade dig";
+$a->strings["%1\$s, %2\$s poked you at %3\$s"] = "%1\$s, %2\$s puffade dig på %3\$s";
+$a->strings["%1\$s, %2\$s [zrl=%2\$s]poked you[/zrl]."] = "%1\$s, %2\$s [zrl=%2\$s]puffade dig[/zrl].";
+$a->strings["[Red:Notify] %s tagged your post"] = "[Red:Meddelande] %s taggade ditt inlägg";
+$a->strings["%1\$s, %2\$s tagged your post at %3\$s"] = "%1\$s, %2\$s taggade ditt inlägg på %3\$s";
+$a->strings["%1\$s, %2\$s tagged [zrl=%3\$s]your post[/zrl]"] = "%1\$s, %2\$s taggade [zrl=%3\$s]ditt inlägg[/zrl]";
+$a->strings["[Red:Notify] Introduction received"] = "[Red:Meddelande] Presentation mottagen";
+$a->strings["%1\$s, you've received an new connection request from '%2\$s' at %3\$s"] = "%1\$s, du har fått en ny kontaktförfrågan från '%2\$s' på %3\$s";
+$a->strings["%1\$s, you've received [zrl=%2\$s]a new connection request[/zrl] from %3\$s."] = "%1\$s, du har fått [zrl=%2\$s]en ny kontaktförfrågan[/zrl] från %3\$s.";
+$a->strings["You may visit their profile at %s"] = "Du kan besöka deras profil på %s";
+$a->strings["Please visit %s to approve or reject the connection request."] = "Besök %s för att bevilja eller avslå kontaktförfrågan.";
+$a->strings["[Red:Notify] Friend suggestion received"] = "[Red:Meddelande] Vänförslag mottaget";
+$a->strings["%1\$s, you've received a friend suggestion from '%2\$s' at %3\$s"] = "%1\$s, du har fått ett vänförslag från '%2\$s' på %3\$s";
+$a->strings["%1\$s, you've received [zrl=%2\$s]a friend suggestion[/zrl] for %3\$s from %4\$s."] = "%1\$s, du har fått [zrl=%2\$s]ett vänförslag[/zrl] angående %3\$s från %4\$s.";
+$a->strings["Name:"] = "Namn:";
+$a->strings["Photo:"] = "Foto:";
+$a->strings["Please visit %s to approve or reject the suggestion."] = "Besök %s för att bevilja eller avslå förslaget.";
+$a->strings["[Red:Notify]"] = "[Red:Notifiering]";
+$a->strings["This event has been added to your calendar."] = "Händelsen har lagts till i din kalender.";
+$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."] = "En borttagen grupp med det här namnet återskapades. Befintliga rättigheter till saker <strong>kan</strong> gälla för den här gruppen och alla framtida medlemmar. Om det här inte är vad du avsåg, skapa i stället en annan grupp med ett annat namn.";
+$a->strings["Default privacy group for new contacts"] = "Förvald integritetsgrupp för nya kontakter";
+$a->strings["All Channels"] = "Alla kanaler";
+$a->strings["edit"] = "redigera";
+$a->strings["Collections"] = "Kretsar";
+$a->strings["Edit collection"] = "Redigera krets";
+$a->strings["Create a new collection"] = "Skapa en ny krets";
+$a->strings["Channels not in any collection"] = "Kanaler inte i någon krets";
+$a->strings["add"] = "lägg till";
+$a->strings["General Features"] = "Allmänna funktioner";
+$a->strings["Content Expiration"] = "Tidsbegränsat innehåll";
+$a->strings["Remove posts/comments and/or private messages at a future time"] = "Ta bort inlägg/kommentarer och/eller privata meddelanden efter en tid";
+$a->strings["Multiple Profiles"] = "Flera profiler";
+$a->strings["Ability to create multiple profiles"] = "Möjlighet att skapa flera profiler";
+$a->strings["Advanced Profiles"] = "Avancerade profiler";
+$a->strings["Additional profile sections and selections"] = "Fler profilinställningar";
+$a->strings["Profile Import/Export"] = "Profilimport/-export";
+$a->strings["Save and load profile details across sites/channels"] = "Spara och ladda profiluppgifter mellan webbplatser/kanaler";
+$a->strings["Web Pages"] = "Webbsidor";
+$a->strings["Provide managed web pages on your channel"] = "Tillhandahåll ordnade webbsidor i din kanal";
+$a->strings["Private Notes"] = "Privata anteckningar";
+$a->strings["Enables a tool to store notes and reminders"] = "Aktivera ett verktyg för att spara anteckningar och påminnelser";
+$a->strings["Navigation Channel Select"] = "Kanalväljare i navigation";
+$a->strings["Change channels directly from within the navigation dropdown menu"] = "Välj kanal direkt från navigationslistens rullgardinsmeny";
+$a->strings["Extended Identity Sharing"] = "Utökad identitetsdelning";
+$a->strings["Share your identity with all websites on the internet. When disabled, identity is only shared with sites in the matrix."] = "Dela din identitet med alla webbplatser på Internet. Om inaktiverat är identiteten bara delad med platser i matrisen.";
+$a->strings["Expert Mode"] = "Expertläge";
+$a->strings["Enable Expert Mode to provide advanced configuration options"] = "Aktivera expertläge för att tillåta avancerade inställningar";
+$a->strings["Premium Channel"] = "Premiumkanal";
+$a->strings["Allows you to set restrictions and terms on those that connect with your channel"] = "Låter dig ange begränsningar och villkor för dem som vill ansluta till din kanal";
+$a->strings["Post Composition Features"] = "Skrivfunktioner";
+$a->strings["Use Markdown"] = "Använd Markdown";
+$a->strings["Allow use of \"Markdown\" to format posts"] = "Tillåt att \"Markdown\" används för att formatera inlägg";
+$a->strings["Post Preview"] = "Förhandsgranskning";
+$a->strings["Allow previewing posts and comments before publishing them"] = "Tillåt förhandsgranskning av inlägg och kommentarer innan de publiceras";
+$a->strings["Channel Sources"] = "Kanalkällor";
+$a->strings["Automatically import channel content from other channels or feeds"] = "Importera kanalinnehåll från andra kanaler eller flöden automatiskt";
+$a->strings["Even More Encryption"] = "Ytterligare kryptering";
+$a->strings["Allow optional encryption of content end-to-end with a shared secret key"] = "Tillåt änd-till-änd-kryptering av innehåll med en delad hemlig nyckel";
+$a->strings["Flag Adult Photos"] = "Flagga vuxenfoton";
+$a->strings["Provide photo edit option to hide adult photos from default album view"] = "Gör det möjligt att inte visa foton som är olämpliga för barn i albums standardvy";
+$a->strings["Network and Stream Filtering"] = "Nätverk och strömfiltrering";
+$a->strings["Search by Date"] = "Sök på datum";
+$a->strings["Ability to select posts by date ranges"] = "Tillåter urval av inlägg baserat på datum";
+$a->strings["Collections Filter"] = "Kretsfilter";
+$a->strings["Enable widget to display Network posts only from selected collections"] = "Aktivera en väljare för att visa nätverksinlägg från enbart valda kretsar";
+$a->strings["Saved Searches"] = "Sparade sökningar";
+$a->strings["Save search terms for re-use"] = "Spara sökuttryck för återanvändning";
+$a->strings["Network Personal Tab"] = "Personlig nätverksflik";
+$a->strings["Enable tab to display only Network posts that you've interacted on"] = "Aktivera en flik som visar endast de nätverksinlägg som du har deltagit i";
+$a->strings["Network New Tab"] = "Flik för nytt på nätverket";
+$a->strings["Enable tab to display all new Network activity"] = "Aktivera en flik som visar all ny nätverksaktivitet";
+$a->strings["Affinity Tool"] = "Samhörighetsverktyg";
+$a->strings["Filter stream activity by depth of relationships"] = "Filtrera strömaktivitet efter hur nära relationen är";
+$a->strings["Suggest Channels"] = "Föreslå kanaler";
+$a->strings["Show channel suggestions"] = "Visa förslag på kanaler";
+$a->strings["Post/Comment Tools"] = "Inläggs-/kommentarsverktyg";
+$a->strings["Edit Sent Posts"] = "Redigera sända inlägg";
+$a->strings["Edit and correct posts and comments after sending"] = "Redigera och korrigera inlägg och kommentarer efter att de skickats";
+$a->strings["Tagging"] = "Taggning";
+$a->strings["Ability to tag existing posts"] = "Möjlighet att tagga befintliga inlägg";
+$a->strings["Post Categories"] = "Inläggskategorier";
+$a->strings["Add categories to your posts"] = "Lägg till kategorier till dina inlägg";
+$a->strings["Ability to file posts under folders"] = "Möjlighet att lägga inlägg i mappar";
+$a->strings["Dislike Posts"] = "Ogilla inlägg";
+$a->strings["Ability to dislike posts/comments"] = "Möjlighet att ogilla inlägg/kommentarer";
+$a->strings["Star Posts"] = "Märk inlägg";
+$a->strings["Ability to mark special posts with a star indicator"] = "Möjlighet att märka speciella inlägg med en stjärna";
+$a->strings["Tag Cloud"] = "Taggmoln";
+$a->strings["Provide a personal tag cloud on your channel page"] = "Tillhandahåll ett personligt taggmoln på din kanalsida";
$a->strings["prev"] = "föregående";
$a->strings["first"] = "första";
$a->strings["last"] = "sista";
@@ -496,6 +535,7 @@ $a->strings["%d Connection"] = array(
1 => "%d kontakter",
);
$a->strings["View Connections"] = "Visa kontakter";
+$a->strings["Save"] = "Spara";
$a->strings["poke"] = "puffa";
$a->strings["ping"] = "pinga";
$a->strings["pinged"] = "pingade";
@@ -524,6 +564,7 @@ $a->strings["anxious"] = "bekymrad";
$a->strings["cranky"] = "grinig";
$a->strings["disturbed"] = "besvärad";
$a->strings["frustrated"] = "frustrerad";
+$a->strings["depressed"] = "deprimerad";
$a->strings["motivated"] = "motiverad";
$a->strings["relaxed"] = "avslappnad";
$a->strings["surprised"] = "förvånad";
@@ -551,7 +592,7 @@ $a->strings["bytes"] = "byte";
$a->strings["remove category"] = "ta bort kategori";
$a->strings["remove from file"] = "ta bort från fil";
$a->strings["Click to open/close"] = "Klicka för att öppna/stänga";
-$a->strings["link to source"] = "länk till källa";
+$a->strings["Link to Source"] = "Länk till källa";
$a->strings["Select a page layout: "] = "Välj en sidlayout: ";
$a->strings["default"] = "standard";
$a->strings["Page content type: "] = "Typ av sidinnehåll: ";
@@ -562,8 +603,149 @@ $a->strings["Blocks"] = "Block";
$a->strings["Menus"] = "Menyer";
$a->strings["Layouts"] = "Layouter";
$a->strings["Pages"] = "Sidor";
-$a->strings["created a new post"] = "skapade ett nytt inlägg";
-$a->strings["commented on %s's post"] = "kommenterade %ss inlägg";
+$a->strings["Not a valid email address"] = "Inte en giltig e-postadress";
+$a->strings["Your email domain is not among those allowed on this site"] = "Din e-postdomän är inte bland de som tillåts på den här servern";
+$a->strings["Your email address is already registered at this site."] = "Din e-postadress är redan registrerad på den här servern.";
+$a->strings["An invitation is required."] = "En inbjudan behövs.";
+$a->strings["Invitation could not be verified."] = "Inbjudningen kunde inte bekräftas.";
+$a->strings["Please enter the required information."] = "Ange den begärda informationen.";
+$a->strings["Failed to store account information."] = "Misslyckades att spara kontoinformation.";
+$a->strings["Registration confirmation for %s"] = "Registreringsbekräftelse för %s";
+$a->strings["Registration request at %s"] = "Registreringsförfrågan på %s";
+$a->strings["Administrator"] = "Administratör";
+$a->strings["your registration password"] = "ditt registreringslösenord";
+$a->strings["Registration details for %s"] = "Registreringsdetaljer för %s";
+$a->strings["Account approved."] = "Konto godkänt.";
+$a->strings["Registration revoked for %s"] = "Registrering avslagen för %s";
+$a->strings["Account verified. Please login."] = "Konto bekräftat. Du kan nu logga in.";
+$a->strings["Click here to upgrade."] = "Klicka här för att uppgradera.";
+$a->strings["This action exceeds the limits set by your subscription plan."] = "Den här funktionen går utanför vad som anges i ditt avtal.";
+$a->strings["This action is not available under your subscription plan."] = "Den här funktionen är inte tillgänglig med ditt avtal.";
+$a->strings["Can view my normal stream and posts"] = "Kan se mina normala strömmar och inlägg";
+$a->strings["Can view my default channel profile"] = "Kan se min standardkanalprofil";
+$a->strings["Can view my photo albums"] = "Kan se mina fotoalbum";
+$a->strings["Can view my connections"] = "Kan se mina kontakter";
+$a->strings["Can view my file storage"] = "Kan se mitt filutrymme";
+$a->strings["Can view my webpages"] = "Kan se mina webbsidor";
+$a->strings["Can send me their channel stream and posts"] = "Kan skicka sina kanalströmmar och inlägg till mig";
+$a->strings["Can post on my channel page (\"wall\")"] = "Kan posta inlägg på min kanalsida (\"vägg\")";
+$a->strings["Can comment on or like my posts"] = "Kan kommentera eller gilla mina inlägg";
+$a->strings["Can send me private mail messages"] = "Kan skicka privata meddelanden till mig";
+$a->strings["Can post photos to my photo albums"] = "Kan lägga till foton i mitt fotoalbum";
+$a->strings["Can like/dislike stuff"] = "Kan gilla/ogilla saker";
+$a->strings["Profiles and things other than posts/comments"] = "Profiler och annat än inlägg/kommentarer";
+$a->strings["Can forward to all my channel contacts via post @mentions"] = "Kan vidarebefordra till alla mina kanalkontakter genom @omnämnanden";
+$a->strings["Advanced - useful for creating group forum channels"] = "Avancerat - användbart för att skapa kanaler för gruppforum";
+$a->strings["Can chat with me (when available)"] = "Kan chatta med mig (när tillgänglig)";
+$a->strings["Can write to my file storage"] = "Har skrivrättigheter i mitt filutrymme";
+$a->strings["Can edit my webpages"] = "Kan redigera mina webbsidor";
+$a->strings["Can source my public posts in derived channels"] = "Kan använda mina offentliga inlägg i kanaler nedströms";
+$a->strings["Somewhat advanced - very useful in open communities"] = "Ganska avancerat - väldigt användbart i öppna gemenskaper";
+$a->strings["Can administer my channel resources"] = "Kan administrera mina kanalresurser";
+$a->strings["Extremely advanced. Leave this alone unless you know what you are doing"] = "Extremt avancerat. Låt detta vara om du inte vet vad du gör";
+$a->strings["Social Networking"] = "Socialt nätverkande";
+$a->strings["Mostly Public"] = "Mestadels offentligt";
+$a->strings["Restricted"] = "Begränsat";
+$a->strings["Private"] = "Privat";
+$a->strings["Community Forum"] = "Gemenskapsforum";
+$a->strings["Feed Republish"] = "Vidarepublicering av flöde";
+$a->strings["Special Purpose"] = "Särskilt syfte";
+$a->strings["Celebrity/Soapbox"] = "Kändis/talarstol";
+$a->strings["Group Repository"] = "Gruppförråd";
+$a->strings["Other"] = "Annat";
+$a->strings["Custom/Expert Mode"] = "Anpassat/expertläge";
+$a->strings["Image exceeds website size limit of %lu bytes"] = "Bild överskrider webbplatsens storleksbegränsning på %lu byte";
+$a->strings["Image file is empty."] = "Bildfil är tom.";
+$a->strings["Unable to process image"] = "Kunde inte bearbeta bild";
+$a->strings["Photo storage failed."] = "Fotolagring misslyckades.";
+$a->strings["Upload New Photos"] = "Ladda upp nya foton";
+$a->strings["Permission denied"] = "Behörighet saknas";
+$a->strings["(Unknown)"] = "(Okänt)";
+$a->strings["Visible to anybody on the internet."] = "Kan ses av vem som helst på Internet.";
+$a->strings["Visible to you only."] = "Kan bara ses av dig.";
+$a->strings["Visible to anybody in this network."] = "Kan ses av alla på det här nätverket.";
+$a->strings["Visible to anybody authenticated."] = "Kan ses av alla inloggade.";
+$a->strings["Visible to anybody on %s."] = "Kan ses av alla på %s.";
+$a->strings["Visible to all connections."] = "Kan ses av alla kontakter.";
+$a->strings["Visible to approved connections."] = "Kan ses av godkända kontakter.";
+$a->strings["Visible to specific connections."] = "Kan ses av valda kontakter.";
+$a->strings["Item not found."] = "Posten hittades inte.";
+$a->strings["Collection not found."] = "Kretsen hittades inte.";
+$a->strings["Collection is empty."] = "Kretsen är tom.";
+$a->strings["Collection: %s"] = "Krets: %s";
+$a->strings["Connection: %s"] = "Kontakt: %s";
+$a->strings["Connection not found."] = "Kontakten hittades inte.";
+$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."] = "Formulärets kontrollkod var inte korrekt. Antagligen beror det på att formuläret har varit öppet för länge (> 3 timmar) innan det skickades.";
+$a->strings["System"] = "System";
+$a->strings["Create Personal App"] = "Skapa personlig app";
+$a->strings["Edit Personal App"] = "Redigera personlig app";
+$a->strings["Ignore/Hide"] = "Ignorera/göm";
+$a->strings["Suggestions"] = "Förslag";
+$a->strings["See more..."] = "Se fler...";
+$a->strings["You have %1$.0f of %2$.0f allowed connections."] = "Du har %1$.0f av %2$.0f tillåtna kontakter.";
+$a->strings["Add New Connection"] = "Lägg till ny kontakt";
+$a->strings["Enter the channel address"] = "Ange kanaladressen";
+$a->strings["Example: bob@example.com, http://example.com/barbara"] = "Exempel: bob@example.com, http://example.com/barbara";
+$a->strings["Notes"] = "Anteckningar";
+$a->strings["Remove term"] = "Ta bort uttryck";
+$a->strings["Archives"] = "Arkiv";
+$a->strings["Refresh"] = "Ladda om";
+$a->strings["Me"] = "Mig själv";
+$a->strings["Best Friends"] = "Bästa vänner";
+$a->strings["Co-workers"] = "Kollegor";
+$a->strings["Former Friends"] = "Tidigare vänner";
+$a->strings["Acquaintances"] = "Bekanta";
+$a->strings["Everybody"] = "Alla";
+$a->strings["Account settings"] = "Kontoinställningar";
+$a->strings["Channel settings"] = "Kanalinställningar";
+$a->strings["Additional features"] = "Tilläggsfunktioner";
+$a->strings["Feature settings"] = "Funktionsinställningar";
+$a->strings["Display settings"] = "Utseende";
+$a->strings["Connected apps"] = "Anslutna appar";
+$a->strings["Export channel"] = "Exportera kanal";
+$a->strings["Export content"] = "Exportera innehåll";
+$a->strings["Connection Default Permissions"] = "Standardbehörighet för kontakt";
+$a->strings["Premium Channel Settings"] = "Inställningar för premiumkanal";
+$a->strings["Messages"] = "Meddelanden";
+$a->strings["Check Mail"] = "Hämta meddelanden";
+$a->strings["Chat Rooms"] = "Chattrum";
+$a->strings["Bookmarked Chatrooms"] = "Bokmärkta chattrum";
+$a->strings["Suggested Chatrooms"] = "Föreslagna chattrum";
+$a->strings["photo/image"] = "foto/bild";
+$a->strings["New window"] = "Nytt fönster";
+$a->strings["Open the selected location in a different window or browser tab"] = "Öppna den valda platsen i ett annat fönster eller en annan webbläsarflik";
+$a->strings["User '%s' deleted"] = "Användare '%s' borttagen";
+$a->strings["Delete this item?"] = "Ta bort den här posten?";
+$a->strings["Comment"] = "Kommentar";
+$a->strings["[+] show all"] = "[+] visa alla";
+$a->strings["[-] show less"] = "[-] visa färre";
+$a->strings["[+] expand"] = "[+] fäll ut";
+$a->strings["[-] collapse"] = "[-] fäll ihop";
+$a->strings["Password too short"] = "Lösenord för kort";
+$a->strings["Passwords do not match"] = "Lösenorden stämmer inte överens";
+$a->strings["everybody"] = "alla";
+$a->strings["Secret Passphrase"] = "Hemligt lösenord";
+$a->strings["Passphrase hint"] = "Lösenordsledtråd";
+$a->strings["Notice: Permissions have changed but have not yet been submitted."] = "Observera: Rättigheter har ändrats men har ännu inte skickats in";
+$a->strings["close all"] = "stäng alla";
+$a->strings["Nothing new here"] = "Inget nytt här";
+$a->strings["timeago.prefixAgo"] = "för";
+$a->strings["timeago.prefixFromNow"] = "om";
+$a->strings["ago"] = "sedan";
+$a->strings["from now"] = " ";
+$a->strings["less than a minute"] = "mindre än en minut";
+$a->strings["about a minute"] = "ungefär en minut";
+$a->strings["%d minutes"] = "%d minuter";
+$a->strings["about an hour"] = "ungefär en timme";
+$a->strings["about %d hours"] = "ungefär %d timmar";
+$a->strings["a day"] = "en dag";
+$a->strings["%d days"] = "%d dagar";
+$a->strings["about a month"] = "ungefär en månad";
+$a->strings["%d months"] = "%d månader";
+$a->strings["about a year"] = "ungefär ett år";
+$a->strings["%d years"] = "%d år";
+$a->strings[" "] = " ";
+$a->strings["timeago.numbers"] = "timeago.numbers";
$a->strings["Male"] = "Man";
$a->strings["Female"] = "Kvinna";
$a->strings["Currently Male"] = "Just nu man";
@@ -576,7 +758,6 @@ $a->strings["Transsexual"] = "Transsexuell";
$a->strings["Hermaphrodite"] = "Hermafrodit";
$a->strings["Neuter"] = "Könlös";
$a->strings["Non-specific"] = "Ospecificerat";
-$a->strings["Other"] = "Annat";
$a->strings["Undecided"] = "Obestämt";
$a->strings["Males"] = "Män";
$a->strings["Females"] = "Kvinnor";
@@ -621,227 +802,238 @@ $a->strings["Uncertain"] = "Osäkert";
$a->strings["It's complicated"] = "Det är komplicerat";
$a->strings["Don't care"] = "Bryr mig inte";
$a->strings["Ask me"] = "Fråga mig";
+$a->strings["Site Admin"] = "Serveradministrator";
+$a->strings["Address Book"] = "Adressbok";
+$a->strings["Mood"] = "Sinnesstämning";
+$a->strings["Probe"] = "Sond";
+$a->strings["Suggest"] = "Föreslå";
+$a->strings["Random Channel"] = "Slumpvald kanal";
+$a->strings["Invite"] = "Bjud in";
+$a->strings["Features"] = "Funktioner";
+$a->strings["Language"] = "Språk";
+$a->strings["Post"] = "Inlägg";
+$a->strings["Profile Photo"] = "Profilfoto";
+$a->strings["Update"] = "Uppdatera";
+$a->strings["Install"] = "Installera";
+$a->strings["Purchase"] = "Köp";
+$a->strings["Logged out."] = "Utloggad.";
+$a->strings["Failed authentication"] = "Inloggning misslyckades";
+$a->strings["Login failed."] = "Inloggning misslyckades.";
+$a->strings["Save to Folder"] = "Spara i mapp";
+$a->strings["View all"] = "Visa alla";
+$a->strings["__ctx:noun__ Dislike"] = array(
+ 0 => "ogillar detta",
+ 1 => "ogillar detta",
+);
+$a->strings["Add Star"] = "Märk";
+$a->strings["Remove Star"] = "Ta bort märkning";
+$a->strings["Toggle Star Status"] = "Växla märkning";
+$a->strings["starred"] = "märkt";
+$a->strings["Add Tag"] = "Lägg till en tagg";
+$a->strings["I like this (toggle)"] = "Jag gillar det här (växla)";
+$a->strings["I don't like this (toggle)"] = "Jag gillar inte det här (växla)";
+$a->strings["Share This"] = "Dela det här";
+$a->strings["share"] = "dela";
+$a->strings["%d comment"] = array(
+ 0 => "%d kommentar",
+ 1 => "%d kommentarer",
+);
+$a->strings["View %s's profile - %s"] = "Visa %ss profil - %s";
+$a->strings["to"] = "till";
+$a->strings["via"] = "via";
+$a->strings["Wall-to-Wall"] = "Vägg-till-vägg";
+$a->strings["via Wall-To-Wall:"] = "via vägg-till-vägg";
+$a->strings["Save Bookmarks"] = "Spara bokmärken";
+$a->strings["Add to Calendar"] = "Lägg till kalendern";
+$a->strings["Mark all seen"] = "Märk alla som lästa";
+$a->strings["__ctx:noun__ Likes"] = "gillar detta";
+$a->strings["__ctx:noun__ Dislikes"] = "ogillar detta";
+$a->strings["This is you"] = "Det här är du";
+$a->strings["Submit"] = "Skicka";
+$a->strings["Bold"] = "Fet";
+$a->strings["Italic"] = "Kursiv";
+$a->strings["Underline"] = "Understruken";
+$a->strings["Quote"] = "Citat";
+$a->strings["Code"] = "Kod";
+$a->strings["Image"] = "Bild";
+$a->strings["Link"] = "Länk";
+$a->strings["Video"] = "Video";
$a->strings["Missing room name"] = "Rumsnamn saknas";
$a->strings["Duplicate room name"] = "Rumsnamnet finns redan";
$a->strings["Invalid room specifier."] = "Ogiltig rumsbeskrivning.";
$a->strings["Room not found."] = "Rummet hittades inte.";
$a->strings["Room is full"] = "Rummet är fullt";
-$a->strings["Default"] = "Standard";
-$a->strings["Tags"] = "Taggar";
-$a->strings["Keywords"] = "Nyckelord";
-$a->strings["have"] = "har";
-$a->strings["has"] = "har";
-$a->strings["want"] = "vill ha";
-$a->strings["wants"] = "vill ha";
-$a->strings["likes"] = "gillar";
-$a->strings["dislikes"] = "ogillar";
-$a->strings["Logged out."] = "Utloggad.";
-$a->strings["Failed authentication"] = "Autentisering misslyckades";
-$a->strings["Login failed."] = "Inloggning misslyckades.";
-$a->strings["Not a valid email address"] = "Inte en giltig e-postadress";
-$a->strings["Your email domain is not among those allowed on this site"] = "Din e-postdomän är inte bland de som tillåts på den här servern";
-$a->strings["Your email address is already registered at this site."] = "Din e-postadress är redan registrerad på den här servern.";
-$a->strings["An invitation is required."] = "En inbjudan behövs.";
-$a->strings["Invitation could not be verified."] = "Inbjudningen kunde inte bekräftas.";
-$a->strings["Please enter the required information."] = "Ange den begärda informationen.";
-$a->strings["Failed to store account information."] = "Misslyckades att spara kontoinformation.";
-$a->strings["Registration request at %s"] = "Registreringsförfrågan på %s";
-$a->strings["Administrator"] = "Administratör";
-$a->strings["your registration password"] = "ditt registreringslösenord";
-$a->strings["Registration details for %s"] = "Registreringsdetaljer för %s";
-$a->strings["Account approved."] = "Konto godkänt.";
-$a->strings["Registration revoked for %s"] = "Registrering avslagen för %s";
-$a->strings["Sort Options"] = "Sorteringsalternativ";
-$a->strings["Alphabetic"] = "Alfabetisk";
-$a->strings["Reverse Alphabetic"] = "Omvänd alfabetisk";
-$a->strings["Newest to Oldest"] = "Nyast till äldst";
-$a->strings["Enable Safe Search"] = "Aktivera säker sökning";
-$a->strings["Disable Safe Search"] = "Avaktivera säker sökning";
-$a->strings["Safe Mode"] = "Säkert läge";
-$a->strings["Red Matrix Notification"] = "Red Matrix-meddelande";
-$a->strings["redmatrix"] = "redmatrix";
-$a->strings["Thank You,"] = "Tack,";
-$a->strings["%s Administrator"] = "Administratören för %s";
-$a->strings["%s <!item_type!>"] = "%s <!item_type!>";
-$a->strings["[Red:Notify] New mail received at %s"] = "[Red:Meddelande] Nytt meddelande på %s";
-$a->strings["%1\$s, %2\$s sent you a new private message at %3\$s."] = "%1\$s, %2\$s skickade ett nytt privat meddelande till dig på %3\$s.";
-$a->strings["%1\$s sent you %2\$s."] = "%1\$s skickade %2\$s till dig.";
-$a->strings["a private message"] = "ett privat meddelande";
-$a->strings["Please visit %s to view and/or reply to your private messages."] = "Besök %s för att visa och/eller svara på dina privata meddelanden.";
-$a->strings["%1\$s, %2\$s commented on [zrl=%3\$s]a %4\$s[/zrl]"] = "%1\$s, %2\$s kommenterade [zrl=%3\$s]ett %4\$s[/zrl]";
-$a->strings["%1\$s, %2\$s commented on [zrl=%3\$s]%4\$s's %5\$s[/zrl]"] = "%1\$s, %2\$s kommenterade [zrl=%3\$s]%4\$ss %5\$s[/zrl]";
-$a->strings["%1\$s, %2\$s commented on [zrl=%3\$s]your %4\$s[/zrl]"] = "%1\$s, %2\$s kommenterade [zrl=%3\$s]ditt %4\$s[/zrl]";
-$a->strings["[Red:Notify] Comment to conversation #%1\$d by %2\$s"] = "[Red:Meddelande] Kommentar till konversation #%1\$d av %2\$s";
-$a->strings["%1\$s, %2\$s commented on an item/conversation you have been following."] = "%1\$s, %2\$s kommenterade en sak/konversation du har följt.";
-$a->strings["Please visit %s to view and/or reply to the conversation."] = "Besök %s för att visa och/eller svara på konversationen.";
-$a->strings["[Red:Notify] %s posted to your profile wall"] = "[Red:Meddelande] %s postade till din profilvägg";
-$a->strings["%1\$s, %2\$s posted to your profile wall at %3\$s"] = "%1\$s, %2\$s postade till din profilvägg på %3\$s";
-$a->strings["%1\$s, %2\$s posted to [zrl=%3\$s]your wall[/zrl]"] = "%1\$s, %2\$s postade till [zrl=%3\$s]din vägg[/zrl]";
-$a->strings["[Red:Notify] %s tagged you"] = "[Red:Meddelande] %s taggade dig";
-$a->strings["%1\$s, %2\$s tagged you at %3\$s"] = "%1\$s, %2\$s taggade dig på %3\$s";
-$a->strings["%1\$s, %2\$s [zrl=%3\$s]tagged you[/zrl]."] = "%1\$s, %2\$s [zrl=%3\$s]taggade dig[/zrl].";
-$a->strings["[Red:Notify] %1\$s poked you"] = "[Red:Meddelande] %1\$s puffade dig";
-$a->strings["%1\$s, %2\$s poked you at %3\$s"] = "%1\$s, %2\$s puffade dig på %3\$s";
-$a->strings["%1\$s, %2\$s [zrl=%2\$s]poked you[/zrl]."] = "%1\$s, %2\$s [zrl=%2\$s]puffade dig[/zrl].";
-$a->strings["[Red:Notify] %s tagged your post"] = "[Red:Meddelande] %s taggade ditt inlägg";
-$a->strings["%1\$s, %2\$s tagged your post at %3\$s"] = "%1\$s, %2\$s taggade ditt inlägg på %3\$s";
-$a->strings["%1\$s, %2\$s tagged [zrl=%3\$s]your post[/zrl]"] = "%1\$s, %2\$s taggade [zrl=%3\$s]ditt inlägg[/zrl]";
-$a->strings["[Red:Notify] Introduction received"] = "[Red:Meddelande] Presentation mottagen";
-$a->strings["%1\$s, you've received an new connection request from '%2\$s' at %3\$s"] = "%1\$s, du har fått en ny kontaktförfrågan från '%2\$s' på %3\$s";
-$a->strings["%1\$s, you've received [zrl=%2\$s]a new connection request[/zrl] from %3\$s."] = "%1\$s, du har fått [zrl=%2\$s]en ny kontaktförfrågan[/zrl] från %3\$s.";
-$a->strings["You may visit their profile at %s"] = "Du kan besöka deras profil på %s";
-$a->strings["Please visit %s to approve or reject the connection request."] = "Besök %s för att bevilja eller avslå kontaktförfrågan.";
-$a->strings["[Red:Notify] Friend suggestion received"] = "[Red:Meddelande] Vänförslag mottaget";
-$a->strings["%1\$s, you've received a friend suggestion from '%2\$s' at %3\$s"] = "%1\$s, du har fått ett vänförslag från '%2\$s' på %3\$s";
-$a->strings["%1\$s, you've received [zrl=%2\$s]a friend suggestion[/zrl] for %3\$s from %4\$s."] = "%1\$s, du har fått [zrl=%2\$s]ett vänförslag[/zrl] angående %3\$s från %4\$s.";
-$a->strings["Name:"] = "Namn:";
-$a->strings["Photo:"] = "Foto:";
-$a->strings["Please visit %s to approve or reject the suggestion."] = "Besök %s för att bevilja eller avslå förslaget.";
-$a->strings["Image exceeds website size limit of %lu bytes"] = "Bild överskrider webbplatsens storleksbegränsning på %lu byte";
-$a->strings["Image file is empty."] = "Bildfil är tom.";
-$a->strings["Unable to process image"] = "Kunde inte bearbeta bild";
-$a->strings["Photo storage failed."] = "Fotolagring misslyckades.";
-$a->strings["Upload New Photos"] = "Ladda upp nya foton";
-$a->strings["%d invitation available"] = array(
- 0 => "%d inbjudan tillgänglig",
- 1 => "%d inbjudningar tillgängliga",
-);
-$a->strings["Advanced"] = "Avancerat";
-$a->strings["Find Channels"] = "Hitta kanaler";
-$a->strings["Enter name or interest"] = "Ange namn eller intresse";
-$a->strings["Connect/Follow"] = "Ta kontakt/följ";
-$a->strings["Examples: Robert Morgenstein, Fishing"] = "Exempel: Robert Morgenstein, Fiske";
-$a->strings["Find"] = "Sök";
-$a->strings["Channel Suggestions"] = "Kanalförslag";
-$a->strings["Random Profile"] = "Slumpvald profil";
-$a->strings["Invite Friends"] = "Bjud in vänner";
-$a->strings["Exammple: name=fred and country=iceland"] = "Exempel: name=fred and country=iceland";
-$a->strings["Advanced Find"] = "Sök avancerat";
-$a->strings["%d connection in common"] = array(
- 0 => "%d gemensam kontakt",
- 1 => "%d gemensamma kontakter",
-);
-$a->strings["New Page"] = "Ny sida";
-$a->strings["Click here to upgrade."] = "Klicka här för att uppgradera.";
-$a->strings["This action exceeds the limits set by your subscription plan."] = "Den här funktionen går utanför vad som anges i ditt avtal.";
-$a->strings["This action is not available under your subscription plan."] = "Den här funktionen är inte tillgänglig med ditt avtal.";
-$a->strings["Permission denied"] = "Behörighet saknas";
-$a->strings["(Unknown)"] = "(Okänt)";
-$a->strings["Item not found."] = "Posten hittades inte.";
-$a->strings["Collection not found."] = "Sammanhanget hittades inte.";
-$a->strings["Collection is empty."] = "Sammanhanget är tomt.";
-$a->strings["Collection: %s"] = "Sammanhang: %s";
-$a->strings["Connection: %s"] = "Kontakt: %s";
-$a->strings["Connection not found."] = "Kontakten hittades inte.";
-$a->strings["Channel is blocked on this site."] = "Kanalen är blockerad på den här servern.";
-$a->strings["Channel location missing."] = "Kanalplats saknas.";
-$a->strings["Response from remote channel was incomplete."] = "Svar från den andra kanalen var ofullständigt.";
-$a->strings["Channel was deleted and no longer exists."] = "Kanalen har tagits bort och finns inte längre.";
-$a->strings["Channel discovery failed."] = "Kanalsökning misslyckades.";
-$a->strings["local account not found."] = "hittade inte lokalt konto.";
-$a->strings["Cannot connect to yourself."] = "Du kan inte kontakta dig själv.";
-$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."] = "Formulärets kontrollkod var inte korrekt. Antagligen beror det på att formuläret har varit öppet för länge (> 3 timmar) innan det skickades.";
-$a->strings["Embedded content"] = "Inbäddat innehåll";
-$a->strings["Embedding disabled"] = "Inbäddning inaktiverat";
-$a->strings["Can view my \"public\" stream and posts"] = "Kan se mina \"offentliga\" strömmar och inlägg";
-$a->strings["Can view my \"public\" channel profile"] = "Kan se min \"offentliga\" kanalprofil";
-$a->strings["Can view my \"public\" photo albums"] = "Kan se mina \"offentliga\" fotoalbum";
-$a->strings["Can view my \"public\" address book"] = "Kan se min \"offentliga\" adressbok";
-$a->strings["Can view my \"public\" file storage"] = "Kan se mitt \"offentliga\" filutrymme";
-$a->strings["Can view my \"public\" pages"] = "Kan se mina \"offentliga\" sidor";
-$a->strings["Can send me their channel stream and posts"] = "Kan skicka sina kanalströmmar och inlägg till mig";
-$a->strings["Can post on my channel page (\"wall\")"] = "Kan posta inlägg på min kanalsida (\"vägg\")";
-$a->strings["Can comment on my posts"] = "Kan kommentera mina inlägg";
-$a->strings["Can send me private mail messages"] = "Kan skicka privata meddelanden till mig";
-$a->strings["Can post photos to my photo albums"] = "Kan lägga till foton i mitt fotoalbum";
-$a->strings["Can forward to all my channel contacts via post @mentions"] = "Kan vidarebefordra till alla mina kanalkontakter genom @omnämnanden";
-$a->strings["Advanced - useful for creating group forum channels"] = "Avancerat - användbart för att skapa kanaler för gruppforum";
-$a->strings["Can chat with me (when available)"] = "Kan chatta med mig (när tillgänglig)";
-$a->strings["Can write to my \"public\" file storage"] = "Har skrivrättigheter i mitt \"offentliga\" filutrymme";
-$a->strings["Can edit my \"public\" pages"] = "Kan redigera mina \"offentliga\" sidor";
-$a->strings["Can source my \"public\" posts in derived channels"] = "Kan använda mina \"offentliga\" inlägg i kanaler nedströms";
-$a->strings["Somewhat advanced - very useful in open communities"] = "Ganska avancerat - väldigt användbart i öppna gemenskaper";
-$a->strings["Can send me bookmarks"] = "Kan skicka bokmärken till mig";
-$a->strings["Can administer my channel resources"] = "Kan administrera mina kanalresurser";
-$a->strings["Extremely advanced. Leave this alone unless you know what you are doing"] = "Extremt avancerat. Låt detta vara om du inte vet vad du gör";
-$a->strings["Invalid data packet"] = "Ogiltigt datapaket";
-$a->strings["Unable to verify channel signature"] = "Kunde inte bekräfta kanalsignatur";
-$a->strings["Unable to verify site signature for %s"] = "Kunde inte bekräfta signatur för servern %s";
-$a->strings["No channel."] = "Ingen kanal.";
-$a->strings["Common connections"] = "Gemensamma kontakter";
-$a->strings["No connections in common."] = "Inga gemensamma kontakter.";
-$a->strings["Event title and start time are required."] = "Händelsen behöver titel och starttid.";
-$a->strings["l, F j"] = "l, j F";
-$a->strings["Edit event"] = "Redigera händelse";
-$a->strings["Create New Event"] = "Skapa ny händelse";
-$a->strings["Previous"] = "Föregående";
+$a->strings["Set your current mood and tell your friends"] = "Ange din nuvarande sinnesstämning och visa för dina vänner";
+$a->strings["Menu not found."] = "Menyn hittades inte.";
+$a->strings["Menu element updated."] = "Menyval uppdaterat.";
+$a->strings["Unable to update menu element."] = "Kunde inte uppdatera menyval.";
+$a->strings["Menu element added."] = "Menyval tillagt.";
+$a->strings["Unable to add menu element."] = "Kunde inte lägga till menyval.";
+$a->strings["Not found."] = "Hittades inte.";
+$a->strings["Manage Menu Elements"] = "Hantera menyval";
+$a->strings["Edit menu"] = "Redigera meny";
+$a->strings["Edit element"] = "Redigera menyval";
+$a->strings["Drop element"] = "Ta bort menyval";
+$a->strings["New element"] = "Nytt menyval";
+$a->strings["Edit this menu container"] = "Redigera den här menysamlaren";
+$a->strings["Add menu element"] = "Lägg till menyval";
+$a->strings["Delete this menu item"] = "Ta bort det här menyvalet";
+$a->strings["Edit this menu item"] = "Redigera det här menyvalet";
+$a->strings["New Menu Element"] = "Nytt menyval";
+$a->strings["Menu Item Permissions"] = "Behörighet för menyval";
+$a->strings["(click to open/close)"] = "(klicka för att öppna/stänga)";
+$a->strings["Link text"] = "Länktext";
+$a->strings["URL of link"] = "Länkens URL";
+$a->strings["Use RedMatrix magic-auth if available"] = "Använd RedMatrix magic-auth om tillgängligt";
+$a->strings["Open link in new window"] = "Öppna länk i nytt fönster";
+$a->strings["Order in list"] = "Ordningstal i listan";
+$a->strings["Higher numbers will sink to bottom of listing"] = "Större tal sjunker till botten av listan";
+$a->strings["Menu item not found."] = "Menyval hittas inte.";
+$a->strings["Menu item deleted."] = "Menyval borttaget.";
+$a->strings["Menu item could not be deleted."] = "Menyval kunde inte tas bort.";
+$a->strings["Edit Menu Element"] = "Redigera menyval";
+$a->strings["Modify"] = "Ändra";
+$a->strings["Some blurb about what to do when you're new here"] = "Lite text om vad man kan göra som ny här";
+$a->strings["Maximum daily site registrations exceeded. Please try again tomorrow."] = "Maximalt antal dagliga serverregistreringar överskridet. Försök igen i morgon.";
+$a->strings["Please indicate acceptance of the Terms of Service. Registration failed."] = "Välj huruvida du accepterar användarvillkoren. Registrering misslyckades.";
+$a->strings["Passwords do not match."] = "Lösenorden stämmer inte överens.";
+$a->strings["Registration successful. Please check your email for validation instructions."] = "Registrering lyckades. Kontrollera din e-post för valideringsinstruktioner.";
+$a->strings["Your registration is pending approval by the site owner."] = "Din registrering väntar på att bli godkänd av serverägaren.";
+$a->strings["Your registration can not be processed."] = "Din registrering kan inte behandlas.";
+$a->strings["Registration on this site/hub is by approval only."] = "Registrering på den här servern/hubben måste godkännas.";
+$a->strings["<a href=\"pubsites\">Register at another affiliated site/hub</a>"] = "<a href=\"pubsites\">Skapa konto på en annan ansluten server/hubb</a>";
+$a->strings["This site has exceeded the number of allowed daily account registrations. Please try again tomorrow."] = "Antal dagliga registreringar som tillåts på den här servern har överskridits. Försök igen i morgon.";
+$a->strings["Terms of Service"] = "användarvillkor";
+$a->strings["I accept the %s for this website"] = "Jag accepterar den här webbplatsens %s";
+$a->strings["I am over 13 years of age and accept the %s for this website"] = "Jag är över 13 år och accepterar den här webbplatsens %s";
+$a->strings["Registration"] = "Registrering";
+$a->strings["Membership on this site is by invitation only."] = "Medlemskap på den här servern kan endast fås genom inbjudan.";
+$a->strings["Please enter your invitation code"] = "Ange din inbjudningskod";
+$a->strings["Your email address"] = "Din e-postadress";
+$a->strings["Choose a password"] = "Välj ett lösenord";
+$a->strings["Please re-enter your password"] = "Ange lösenordet igen";
+$a->strings["- select -"] = "- välj -";
+$a->strings["Invalid profile identifier."] = "Ogiltigt profil-ID.";
+$a->strings["Profile Visibility Editor"] = "Redigera profilsynlighet";
+$a->strings["Click on a contact to add or remove."] = "Klicka på en kontakt för att lägga till eller ta bort.";
+$a->strings["Visible To"] = "Kan ses av";
+$a->strings["All Connections"] = "Alla kontakter";
+$a->strings["Failed to create source. No channel selected."] = "Misslyckades att skapa källa. Ingen kanal vald.";
+$a->strings["Source created."] = "Källa skapad.";
+$a->strings["Source updated."] = "Källa uppdaterad.";
+$a->strings["*"] = "*";
+$a->strings["Manage remote sources of content for your channel."] = "Hantera fjärrkällor med innehåll för din kanal.";
+$a->strings["New Source"] = "Ny källa";
+$a->strings["Import all or selected content from the following channel into this channel and distribute it according to your channel settings."] = "Importera allt eller valt innehåll från följande kanal till den här kanalen och distribuera det enligt dina kanalinställningar.";
+$a->strings["Only import content with these words (one per line)"] = "Importera endast innehåll med de här orden (ett per rad)";
+$a->strings["Leave blank to import all public content"] = "Lämna blankt för att importera allt offentligt innehåll";
+$a->strings["Channel Name"] = "Kanalnamn";
+$a->strings["Source not found."] = "Källa hittades inte.";
+$a->strings["Edit Source"] = "Redigera källa";
+$a->strings["Delete Source"] = "Ta bort källa";
+$a->strings["Source removed"] = "Källa borttagen";
+$a->strings["Unable to remove source."] = "Kunde inte ta bort källa.";
+$a->strings["Poke/Prod"] = "Puffa/stöt till";
+$a->strings["poke, prod or do other things to somebody"] = "puffa, stöt till eller gör andra saker mot någon";
+$a->strings["Recipient"] = "Mottagare";
+$a->strings["Choose what you wish to do to recipient"] = "Välj vad du önskar göra med mottagaren";
+$a->strings["Make this post private"] = "Gör det här inlägget privat";
+$a->strings["Authorize application connection"] = "Tillåt anslutning av applikation";
+$a->strings["Return to your app and insert this Securty Code:"] = "Återgå till din applikation och ange den här säkerhetskoden:";
+$a->strings["Please login to continue."] = "Logga in för att fortsätta.";
+$a->strings["Do you want to authorize this application to access your posts and contacts, and/or create new posts for you?"] = "Vill du låta den här applikationen få tillgång till dina inlägg och kontakter, och/eller skapa nya inlägg åt dig?";
+$a->strings["Yes"] = "Ja";
+$a->strings["No"] = "Nej";
+$a->strings["Public access denied."] = "Offentlig behörighet saknas.";
+$a->strings["Item not available."] = "Post inte tillgänglig.";
+$a->strings["Fetching URL returns error: %1\$s"] = "Hämtning av URL returnerade fel: %1\$s";
+$a->strings["Invalid item."] = "Ogiltig post.";
+$a->strings["Channel not found."] = "Kanalen hittas inte.";
+$a->strings["Page not found."] = "Sidan hittas inte.";
+$a->strings["%1\$s is following %2\$s's %3\$s"] = "%1\$s följer %2\$ss %3\$s";
+$a->strings["Block Name"] = "Blocknamn";
+$a->strings["Red Matrix Server - Setup"] = "Red Matrix-server - inställningar";
+$a->strings["Could not connect to database."] = "Kunde inte ansluta till databasen.";
+$a->strings["Could not connect to specified site URL. Possible SSL certificate or DNS issue."] = "Kunde inte ansluta till den angivna server-URL:en. Möjligt problem med SSL-certifikat eller DNS.";
+$a->strings["Could not create table."] = "Kunde inte skapa tabell.";
+$a->strings["Your site database has been installed."] = "Din serverdatabas har installerats.";
+$a->strings["You may need to import the file \"install/schema_xxx.sql\" manually using a database client."] = "Du kan behöva importera filen \"install/schema_xxx.sql\" manuellt med en databasklient.";
+$a->strings["Please see the file \"install/INSTALL.txt\"."] = "Se filen \"install/INSTALL.txt\".";
+$a->strings["System check"] = "Systemkontroll";
$a->strings["Next"] = "Nästa";
-$a->strings["hour:minute"] = "timme:minut";
-$a->strings["Event details"] = "Detaljer för händelse";
-$a->strings["Format is %s %s. Starting date and Title are required."] = "Formatet är %s %s. Startdatum och titel behövs.";
-$a->strings["Event Starts:"] = "Händelsen börjar:";
-$a->strings["Required"] = "Behövs";
-$a->strings["Finish date/time is not known or not relevant"] = "Slutdatum/tid är okänt eller inte relevant";
-$a->strings["Event Finishes:"] = "Händelsen slutar:";
-$a->strings["Adjust for viewer timezone"] = "Justera för betraktarens tidszon";
-$a->strings["Description:"] = "Beskrivning:";
-$a->strings["Title:"] = "Titel:";
-$a->strings["Share this event"] = "Dela den här händelsen";
-$a->strings["Thing updated"] = "Föremål uppdaterat";
-$a->strings["Object store: failed"] = "Objektlagring: misslyckades";
-$a->strings["Thing added"] = "Föremål tillagt";
-$a->strings["OBJ: %1\$s %2\$s %3\$s"] = "OBJ: %1\$s %2\$s %3\$s";
-$a->strings["Show Thing"] = "Visa föremål";
-$a->strings["item not found."] = "föremål hittades inte.";
-$a->strings["Edit Thing"] = "Redigera föremål";
-$a->strings["Select a profile"] = "Välj en profil";
-$a->strings["Select a category of stuff. e.g. I ______ something"] = "Välj en kategori, t.ex. Jag ______ någonting";
-$a->strings["Post an activity"] = "Posta en aktivitet";
-$a->strings["Only sends to viewers of the applicable profile"] = "Skickar bara till de som tittar på den aktuella profilen";
-$a->strings["Name of thing e.g. something"] = "Namn på föremål, t.ex. någonting";
-$a->strings["URL of thing (optional)"] = "URL för föremål (frivilligt)";
-$a->strings["URL for photo of thing (optional)"] = "URL för foto på föremål (frivilligt)";
-$a->strings["Add Thing to your Profile"] = "Lägg till föremål till din profil";
-$a->strings["Total invitation limit exceeded."] = "Gränsen för totalt antal inbjudningar överskriden.";
-$a->strings["%s : Not a valid email address."] = "%s: Inte en giltig e-postadress.";
-$a->strings["Please join us on Red"] = "GÃ¥ med oss i Red";
-$a->strings["Invitation limit exceeded. Please contact your site administrator."] = "Inbjudningsgränsen överskriden. Kontakta din serveradministratör.";
-$a->strings["%s : Message delivery failed."] = "%s : Leverans av meddelande misslyckades.";
-$a->strings["%d message sent."] = array(
- 0 => "%d meddelande sänt.",
- 1 => "%d meddelanden sända.",
-);
-$a->strings["You have no more invitations available"] = "Du har inga fler inbjudningar kvar";
-$a->strings["Send invitations"] = "Skicka inbjudan";
-$a->strings["Enter email addresses, one per line:"] = "Ange e-postadresser, en per rad:";
-$a->strings["Your message:"] = "Ditt meddelande:";
-$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 är hjärtligt inbjuden att gå med mig och några andra nära vänner i Red Matrix - ett revolutionärt nytt decentraliserat kommunikations- och informationsverktyg.";
-$a->strings["You will need to supply this invitation code: \$invite_code"] = "Du kommer att behöva ange den här inbjudningskoden: \$invite_code";
-$a->strings["Please visit my channel at"] = "Besök min kanal på";
-$a->strings["Once you have registered (on ANY Red Matrix site - they are all inter-connected), please connect with my Red Matrix channel address:"] = "När du har registrerat dig (på NÅGON Red Matrix-server - alla sitter ihop), så lägg till min Red Matrix-kanaladress:";
-$a->strings["Click the [Register] link on the following page to join."] = "Klicka på [Registrera]-länken på följande sida för att gå med.";
-$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 mer information om Red Matrix-projektet och varför det har potential att förändra Internet som vi känner det, besök http://getzot.com";
-$a->strings["Unable to lookup recipient."] = "Kunde inte hitta mottagare.";
-$a->strings["Unable to communicate with requested channel."] = "Kunde inte kommunicera med den begärda kanalen.";
-$a->strings["Cannot verify requested channel."] = "Kan inte bekräfta den begärda kanalen.";
-$a->strings["Selected channel has private message restrictions. Send failed."] = "Den valda kanalen har restriktioner för privata meddelanden. Misslyckades att skicka.";
-$a->strings["Messages"] = "Meddelanden";
-$a->strings["Message deleted."] = "Meddelande borttaget.";
-$a->strings["Message recalled."] = "Meddelande återkallat.";
-$a->strings["Send Private Message"] = "Skicka privat meddelande.";
-$a->strings["To:"] = "Till:";
-$a->strings["Subject:"] = "Ämne:";
-$a->strings["Message not found."] = "Meddelandet hittades inte.";
-$a->strings["Delete message"] = "Ta bort meddelande";
-$a->strings["Recall message"] = "Ã…terkalla meddelande";
-$a->strings["Message has been recalled."] = "Meddelandet har återkallats.";
-$a->strings["Private Conversation"] = "Privat konversation";
-$a->strings["Delete conversation"] = "Ta bort konversation";
-$a->strings["No secure communications available. You <strong>may</strong> be able to respond from the sender's profile page."] = "Ingen säker kommunikationskanal tillgänglig. Du kan <strong>möjligtvis</strong> svara från avsändarens profilsida.";
-$a->strings["Send Reply"] = "Skicka svar";
+$a->strings["Check again"] = "Kontrollera igen";
+$a->strings["Database connection"] = "Databasanslutning";
+$a->strings["In order to install Red Matrix we need to know how to connect to your database."] = "För att kunna installera Red Matrix behöver vi veta hur databasen ska anslutas.";
+$a->strings["Please contact your hosting provider or site administrator if you have questions about these settings."] = "Kontakta din servervärd eller administratör om du har frågor om de här inställningarna.";
+$a->strings["The database you specify below should already exist. If it does not, please create it before continuing."] = "Databasen du anger nedan måste finnas. Om den inte gör det, skapa den innan du fortsätter.";
+$a->strings["Database Server Name"] = "Databasserver";
+$a->strings["Default is localhost"] = "Standard är localhost";
+$a->strings["Database Port"] = "Databasport";
+$a->strings["Communication port number - use 0 for default"] = "Kommunikationsportnummer - använd 0 för standardinställning";
+$a->strings["Database Login Name"] = "Loginnamn till databas";
+$a->strings["Database Login Password"] = "Lösenord till databas";
+$a->strings["Database Name"] = "Databasnamn";
+$a->strings["Database Type"] = "Databastyp";
+$a->strings["Site administrator email address"] = "Serveradministratörens e-postadress";
+$a->strings["Your account email address must match this in order to use the web admin panel."] = "Ditt kontos e-postadress måste stämma med den här för att webbgränssnittet för administration ska kunna användas.";
+$a->strings["Website URL"] = "Webbplatsens URL";
+$a->strings["Please use SSL (https) URL if available."] = "Ange en URL med SSL (https) om tillgängligt";
+$a->strings["Please select a default timezone for your website"] = "Välj en standardtidszon för din webbplats";
+$a->strings["Site settings"] = "Serverinställningar";
+$a->strings["Could not find a command line version of PHP in the web server PATH."] = "Kunde inte hitta en kommandoradsversion av PHP i webbserverns PATH.";
+$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."] = "Om du inte har en kommandoradsversion av PHP installerad på servern kommer du inte att kunna köra bakgrundshämtning via cron.";
+$a->strings["PHP executable path"] = "Sökväg till PHP-programmet";
+$a->strings["Enter full path to php executable. You can leave this blank to continue the installation."] = "Ange hela sökvägen till php-programfilen. Du kan lämna det här blankt för att fortsätta installationen.";
+$a->strings["Command line PHP"] = "Kommandorads-PHP";
+$a->strings["The command line version of PHP on your system does not have \"register_argc_argv\" enabled."] = "Kommandoradsversionen av PHP på ditt system har inte \"register_argc_argv\" aktiverat.";
+$a->strings["This is required for message delivery to work."] = "Det här behövs för att meddelandeleverans ska fungera.";
+$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"] = "Fel: \"openssl_pkey_new\"-funktionen på det här systemet kan inte generera kryptonycklar";
+$a->strings["If running under Windows, please see \"http://www.php.net/manual/en/openssl.installation.php\"."] = "Om systemet kör Windows, se \"http://www.php.net/manual/en/openssl.installation.php\".";
+$a->strings["Generate encryption keys"] = "Generera kryptonycklar";
+$a->strings["libCurl PHP module"] = "PHP-modulen libCurl";
+$a->strings["GD graphics PHP module"] = "PHP-modulen GD graphics";
+$a->strings["OpenSSL PHP module"] = "PHP-modulen OpenSSL";
+$a->strings["mysqli or postgres PHP module"] = "PHP-modulen mysqli eller postgres";
+$a->strings["mb_string PHP module"] = "PHP-modulen mb_string";
+$a->strings["mcrypt PHP module"] = "PHP-modulen mcrypt";
+$a->strings["Apache mod_rewrite module"] = "Apache-modulen mod_rewrite";
+$a->strings["Error: Apache webserver mod-rewrite module is required but not installed."] = "Fel: Apache-webbserverns mod-rewrite-modul krävs men är inte installerad.";
+$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"] = "Fel: proc_open krävs men är antingen inte installerad eller har inaktiverats i php.ini";
+$a->strings["Error: libCURL PHP module required but not installed."] = "Fel: PHP-modulen libCURL krävs men är inte installerad.";
+$a->strings["Error: GD graphics PHP module with JPEG support required but not installed."] = "Fel: PHP-modulen GD graphics med JPEG-stöd krävs men är inte installerad.";
+$a->strings["Error: openssl PHP module required but not installed."] = "Fel: PHP-modulen openssl krävs men är inte installerad.";
+$a->strings["Error: mysqli or postgres PHP module required but neither are installed."] = "Fel: en av PHP-modulerna mysqli eller postgres krävs men är inte installerad.";
+$a->strings["Error: mb_string PHP module required but not installed."] = "Fel: PHP-modulen mb_string krävs men är inte installerad.";
+$a->strings["Error: mcrypt PHP module required but not installed."] = "Fel: PHP-modulen mcrypt krävs men är inte installerad.";
+$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."] = "Webbinstallationen måste kunna skapa filen \".htconfig.php\" i toppkatalogen på din webbserver men kan inte göra det.";
+$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."] = "Det är ofta en behörighetsinställning som gör att webbservern inte kan skriva filer i din katalog - även om du kan.";
+$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."] = "Efter den här proceduren kommer vi att ge dig en text att spara i filen .htconfig.php i Reds toppkatalog.";
+$a->strings["You can alternatively skip this procedure and perform a manual installation. Please see the file \"install/INSTALL.txt\" for instructions."] = "Alternativt kan du hoppa över den här proceduren och göra en manuell installation. För instruktioner, se filen \"install/INSTALL.txt\".";
+$a->strings[".htconfig.php is writable"] = ".htconfig.php är skrivbar";
+$a->strings["Red uses the Smarty3 template engine to render its web views. Smarty3 compiles templates to PHP to speed up rendering."] = "Red använder mallmotorn Smarty3 för att rendera webbvyerna. Smarty3 kompilerar mallar till PHP för att snabba upp renderingen.";
+$a->strings["In order to store these compiled templates, the web server needs to have write access to the directory %s under the Red top level folder."] = "För att spara de här kompilerade mallarna behöver webbservern ha skrivrättigheter till katalogen %s under Reds toppkatalog.";
+$a->strings["Please ensure that the user that your web server runs as (e.g. www-data) has write access to this folder."] = "Försäkra dig om att användaren som din webbserver kör som (t.ex. www-data) har skrivrättigheter till den här katalogen.";
+$a->strings["Note: as a security measure, you should give the web server write access to %s only--not the template files (.tpl) that it contains."] = "Observera: som en säkerhetsåtgärd bör du ge webbservern skrivrättighet endast för %s - inte för mallfilerna (.tpl) som finns där.";
+$a->strings["%s is writable"] = "%s är skrivbar";
+$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 använder katalogen store för att spara uppladdade filer. Webbservern behöver ha skrivrättigheter till katalogen store under Reds toppkatalog.";
+$a->strings["store is writable"] = "store är skrivbar";
+$a->strings["SSL certificate cannot be validated. Fix certificate or disable https access to this site."] = "SSL-certifikatet kan inte valideras. Fixa certifikatet eller inaktivera https-åtkomst till den här servern.";
+$a->strings["If you have https access to your website or allow connections to TCP port 443 (the https: port), you MUST use a browser-valid certificate. You MUST NOT use self-signed certificates!"] = "Om du har https-åtkomst till din webbplats eller tillåter anslutningar till TCP-port 443 (https-porten) MÅSTE du använda ett certifikat som kan verifieras av webbläsare. Du FÅR INTE använda självsignerade certifikat!";
+$a->strings["This restriction is incorporated because public posts from you may for example contain references to images on your own hub."] = "Restriktionen finns eftersom offentliga inlägg från dig kan innehålla till exempel referenser till bilder på din egen hubb.";
+$a->strings["If your certificate is not recognized, members of other sites (who may themselves have valid certificates) will get a warning message on their own site complaining about security issues."] = "Om ditt certifikat inte känns igen kommer medlemmar på andra webbplatser (som själv kan ha giltiga certifikat) att få en varning på sin egen webbplats om säkerhetsproblem.";
+$a->strings["This can cause usability issues elsewhere (not just on your own site) so we must insist on this requirement."] = "Detta kan orsaka problem med användbarheten (inte bara på din egen server) så vi måste trycka på det här kravet.";
+$a->strings["Providers are available that issue free certificates which are browser-valid."] = "Det finns leverantörer som utfärdar gratis certifikat som känns igen av webbläsare.";
+$a->strings["SSL certificate validation"] = "SSL-certifikatvalidering";
+$a->strings["Url rewrite in .htaccess is not working. Check your server configuration.Test: "] = "Url rewrite i .htaccess fungerar inte. Kolla din serverkonfiguration. Test: ";
+$a->strings["Url rewrite is working"] = "URL rewrite fungerar";
+$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."] = "Databaskonfigurationsfilen \".htconfig.php\" kunde inte skrivas. Använd den bifogade texten för att skapa en konfigurationsfil i din webbservers rot.";
+$a->strings["Errors encountered creating database tables."] = "Fel inträffade när databastabeller skulle skapas.";
+$a->strings["<h1>What next</h1>"] = "<h1>Nästa steg</h1>";
+$a->strings["IMPORTANT: You will need to [manually] setup a scheduled task for the poller."] = "VIKTIGT: Du behöver ställa in en schemalagd för hämtningsrutinen [manuellt]";
$a->strings["Name is required"] = "Namn är obligatoriskt";
$a->strings["Key and Secret are required"] = "Nyckel och kod är obligatoriska";
-$a->strings["Update"] = "Uppdatera";
$a->strings["Passwords do not match. Password unchanged."] = "Lösenorden stämmer inte överens. Lösenordet har inte ändrats.";
$a->strings["Empty passwords are not allowed. Password unchanged."] = "Tomma lösenord tillåts inte. Lösenordet har inte ändrats.";
$a->strings["Password changed."] = "Lösenordet ändrat.";
@@ -851,7 +1043,6 @@ $a->strings["Protected email address. Cannot change to that email."] = "Skyddad
$a->strings["System failure storing new email. Please try again."] = "Systemfel när ny e-postadress skulle sparas. Försök igen.";
$a->strings["Settings updated."] = "Inställningar uppdaterade.";
$a->strings["Add application"] = "Lägg till applikation";
-$a->strings["Name"] = "Namn";
$a->strings["Name of application"] = "Applikationens namn";
$a->strings["Consumer Key"] = "Nyckel för konsument";
$a->strings["Automatically generated - change if desired. Max length 20"] = "Automatiskt genererad - ändra om så önskas. Maxlängd 20";
@@ -874,33 +1065,40 @@ $a->strings["Confirm:"] = "Bekräfta:";
$a->strings["Leave password fields blank unless changing"] = "Lämna lösenordsfälten blanka om lösenordet inte ska ändras";
$a->strings["Email Address:"] = "E-postadress";
$a->strings["Remove Account"] = "Ta bort konto";
+$a->strings["Remove this account from this server including all its channels"] = "Ta bort det här kontot från servern, inklusive alla dess kanaler";
$a->strings["Warning: This action is permanent and cannot be reversed."] = "Varning: Den här handlingen är permanent och kan inte återställas.";
$a->strings["Off"] = "Av";
$a->strings["On"] = "PÃ¥";
$a->strings["Additional Features"] = "Ytterligare funktioner";
$a->strings["Connector Settings"] = "Anslutningsinställningar";
$a->strings["No special theme for mobile devices"] = "Inget särskilt tema för mobila enheter";
+$a->strings["%s - (Experimental)"] = "%s - (experimentellt)";
$a->strings["Display Settings"] = "Utseende";
$a->strings["Display Theme:"] = "Tema för utseende:";
$a->strings["Mobile Theme:"] = "Mobilt tema:";
+$a->strings["Enable user zoom on mobile devices"] = "Tillåt användare att zooma på mobila enheter";
$a->strings["Update browser every xx seconds"] = "Uppdatera webbläsaren var xx sekund";
$a->strings["Minimum of 10 seconds, no maximum"] = "Minst 10 sekunder, inget maximum";
$a->strings["Maximum number of conversations to load at any time:"] = "Högsta antal konversationer att ladda åt gången:";
$a->strings["Maximum of 100 items"] = "Maximalt 100 poster";
$a->strings["Don't show emoticons"] = "Visa inte känsloikoner";
-$a->strings["Do not view remote profiles in frames"] = "Visa inte profiler på andra servrar i ramar";
-$a->strings["By default open in a sub-window of your own site"] = "Som standard öppnas de i ett underfönster på din lokala server";
+$a->strings["Link post titles to source"] = "Länka inläggstitlar till källan";
$a->strings["System Page Layout Editor - (advanced)"] = "Redigera systemets sidlayout (avancerat)";
+$a->strings["Use blog/list mode on channel page"] = "Använd blogg-/listläge på kanalsida";
+$a->strings["(comments displayed separately)"] = "(kommentarer visas separat)";
+$a->strings["Use blog/list mode on matrix page"] = "Använd blogg-/listläge på matrissida";
+$a->strings["Channel page max height of content (in pixels)"] = "Maxhöjd för innehåll på kanalsidor (i pixels)";
+$a->strings["click to expand content exceeding this height"] = "klicka för att fälla ut innehåll som överskrider den här höjden";
+$a->strings["Matrix page max height of content (in pixels)"] = "Maxhöjd för innehåll på matrissidan (i pixels)";
$a->strings["Nobody except yourself"] = "Ingen utom dig själv";
$a->strings["Only those you specifically allow"] = "Endast utvalda";
-$a->strings["Anybody in your address book"] = "Vem som helst i din adressbok";
+$a->strings["Approved connections"] = "Godkända kontakter";
+$a->strings["Any connections"] = "Alla kontakter";
$a->strings["Anybody on this website"] = "Vem som helst på den här servern";
$a->strings["Anybody in this network"] = "Vem som helst i det här nätverket";
$a->strings["Anybody authenticated"] = "Vem som helst som har autentiserat sig";
$a->strings["Anybody on the internet"] = "Vem som helst på Internet";
$a->strings["Publish your default profile in the network directory"] = "Publicera din standardprofil i nätverkskatalogen";
-$a->strings["No"] = "Nej";
-$a->strings["Yes"] = "Ja";
$a->strings["Allow us to suggest you as a potential friend to new members?"] = "Tillåt oss att föreslå dig som möjlig vän för nya medlemmar";
$a->strings["or"] = "eller";
$a->strings["Your channel address is"] = "Din kanaladress är";
@@ -910,9 +1108,10 @@ $a->strings["Your Timezone:"] = "Din tidszon:";
$a->strings["Default Post Location:"] = "Standardplats:";
$a->strings["Geographical location to display on your posts"] = "Geografisk plats att visa för dina inlägg";
$a->strings["Use Browser Location:"] = "Använd webbläsarens position:";
-$a->strings["Adult Content"] = "Pornografiskt innehåll";
-$a->strings["This channel frequently or regularly publishes adult content. (Please tag any adult material and/or nudity with #NSFW)"] = "Den här kanalen publicerar ofta eller regelbundet pornografiskt innehåll. (Tagga allt pornografiskt material och/eller nakenhet med #NSFW, tack)";
+$a->strings["Adult Content"] = "Innehåll olämpligt för barn";
+$a->strings["This channel frequently or regularly publishes adult content. (Please tag any adult material and/or nudity with #NSFW)"] = "Den här kanalen publicerar ofta eller regelbundet innehåll som är olämpligt för barn. (Tagga allt pornografiskt material och/eller nakenhet med #NSFW, tack)";
$a->strings["Security and Privacy Settings"] = "Säkerhets- och integritetsinställningar";
+$a->strings["Your permissions are already configured. Click to view/adjust"] = "Dina behörigheter har redan ställts in. Klicka för att visa/ändra";
$a->strings["Hide my online presence"] = "Visa inte min online-närvaro";
$a->strings["Prevents displaying in your profile that you are online"] = "Förhindrar att det syns i din profil att du är online";
$a->strings["Simple Privacy Settings:"] = "Enkla integritetsinställningar:";
@@ -928,7 +1127,7 @@ $a->strings["0 or blank prevents expiration"] = "0 eller blankt förhindrar upph
$a->strings["Maximum Friend Requests/Day:"] = "Högsta antal vänförfrågningar per dag:";
$a->strings["May reduce spam activity"] = "Kan reducera spamaktivitet";
$a->strings["Default Post Permissions"] = "Standardbehörighet för inlägg";
-$a->strings["(click to open/close)"] = "(klicka för att öppna/stänga)";
+$a->strings["Channel permissions category:"] = "Kanalens behörighetskategori:";
$a->strings["Maximum private messages per day from unknown people:"] = "Högsta antal privata meddelanden per dag från okända personer:";
$a->strings["Useful to reduce spamming"] = "Användbart för att minska skräputskick";
$a->strings["Notification Settings"] = "Notifieringsinställningar";
@@ -936,7 +1135,7 @@ $a->strings["By default post a status message when:"] = "Skicka som standard ett
$a->strings["accepting a friend request"] = "du accepterar en vänförfrågan";
$a->strings["joining a forum/community"] = "du går med i ett forum/en gemenskap";
$a->strings["making an <em>interesting</em> profile change"] = "du gör en <em>intressant</em> ändring av profilen";
-$a->strings["Send a notification email when:"] = "Skicka en notifiering via e-post med när:";
+$a->strings["Send a notification email when:"] = "Skicka en notifiering via e-post när:";
$a->strings["You receive a connection request"] = "Du får en kontaktförfrågan";
$a->strings["Your connections are confirmed"] = "Dina kontakter bekräftas";
$a->strings["Someone writes on your profile wall"] = "Någon skriver på din profilvägg";
@@ -945,68 +1144,81 @@ $a->strings["You receive a private message"] = "Du tar emot ett privat meddeland
$a->strings["You receive a friend suggestion"] = "Du tar emot ett vänförslag";
$a->strings["You are tagged in a post"] = "Du taggas i ett inlägg";
$a->strings["You are poked/prodded/etc. in a post"] = "Du puffas/stöts till/etc. i ett inlägg";
+$a->strings["Show visual notifications including:"] = "Visa visuella notifieringar vid:";
+$a->strings["Unseen matrix activity"] = "Oläst matrisaktivitet";
+$a->strings["Unseen channel activity"] = "Oläst kanalaktivitet";
+$a->strings["Unseen private messages"] = "Olästa privata meddelanden";
+$a->strings["Recommended"] = "Rekommenderas";
+$a->strings["Upcoming events"] = "Kommande händelser";
+$a->strings["Events today"] = "Dagens händelser";
+$a->strings["Upcoming birthdays"] = "Kommande födelsedagar";
+$a->strings["Not available in all themes"] = "Inte tillgänglig i alla teman";
+$a->strings["System (personal) notifications"] = "Systemmeddelanden (personliga)";
+$a->strings["System info messages"] = "Systemmeddelanden";
+$a->strings["System critical alerts"] = "Systemkritiska varningar";
+$a->strings["New connections"] = "Nya kontakter";
+$a->strings["System Registrations"] = "Systemregistreringar";
+$a->strings["Notify me of events this many days in advance"] = "Meddela mig om händelser så här många dagar i förväg";
+$a->strings["Must be greater than 0"] = "Måste vara större än 0";
$a->strings["Advanced Account/Page Type Settings"] = "Avancerade konto-/sidtypsinställningar";
$a->strings["Change the behaviour of this account for special situations"] = "Ändra det här kontots beteende i särskilda situationer";
$a->strings["Please enable expert mode (in <a href=\"settings/features\">Settings > Additional features</a>) to adjust!"] = "Aktivera expertläge (i <a href=\"settings/features\">Inställningar > Ytterligare funktioner</a>) för att göra ändringar!";
$a->strings["Miscellaneous Settings"] = "Diverse inställningar";
$a->strings["Personal menu to display in your channel pages"] = "Personlig meny att visa i dina kanalsidor";
-$a->strings["Menu updated."] = "Meny uppdaterad.";
-$a->strings["Unable to update menu."] = "Kunde inte uppdatera meny.";
-$a->strings["Menu created."] = "Meny skapad.";
-$a->strings["Unable to create menu."] = "Kunde inte skapa meny.";
-$a->strings["Manage Menus"] = "Hantera menyer";
-$a->strings["Drop"] = "Ta bort";
-$a->strings["Create a new menu"] = "Skapa en ny meny";
-$a->strings["Delete this menu"] = "Ta bort den här menyn";
-$a->strings["Edit menu contents"] = "Redigera menyinnehåll";
-$a->strings["Edit this menu"] = "Redigera den här menyn";
-$a->strings["New Menu"] = "Ny meny";
-$a->strings["Menu name"] = "Menynamn";
-$a->strings["Must be unique, only seen by you"] = "MÃ¥ste vara unikt, ses endast av dig";
-$a->strings["Menu title"] = "Menytitel";
-$a->strings["Menu title as seen by others"] = "Menytitel som andra ser den";
-$a->strings["Allow bookmarks"] = "Tillåt bokmärken";
-$a->strings["Menu may be used to store saved bookmarks"] = "Menyn kan användas för att spara bokmärken";
-$a->strings["Create"] = "Skapa";
-$a->strings["Menu not found."] = "Menyn hittades inte.";
-$a->strings["Menu deleted."] = "Meny borttagen.";
-$a->strings["Menu could not be deleted."] = "Menyn kunde inte tas bort.";
-$a->strings["Edit Menu"] = "Redigera meny";
-$a->strings["Add or remove entries to this menu"] = "Lägg till eller ta bort menyval";
-$a->strings["Modify"] = "Ändra";
-$a->strings["Not found."] = "Hittades inte.";
-$a->strings["View"] = "Visa";
-$a->strings["Authorize application connection"] = "Tillåt anslutning av applikation";
-$a->strings["Return to your app and insert this Securty Code:"] = "Återgå till din applikation och ange den här säkerhetskoden:";
-$a->strings["Please login to continue."] = "Logga in för att fortsätta.";
-$a->strings["Do you want to authorize this application to access your posts and contacts, and/or create new posts for you?"] = "Vill du låta den här applikationen få tillgång till dina inlägg och kontakter, och/eller skapa nya inlägg åt dig?";
-$a->strings["No installed applications."] = "Inga installerade applikationer";
-$a->strings["Applications"] = "Applikationer";
-$a->strings["Item not found"] = "Posten hittas inte";
-$a->strings["Item is not editable"] = "Posten går ej att redigera";
-$a->strings["Edit post"] = "Redigera inlägg";
-$a->strings["Delete item?"] = "Ta bort posten?";
-$a->strings["Insert YouTube video"] = "Infoga Youtube-video";
-$a->strings["Insert Vorbis [.ogg] video"] = "Infoga Vorbis [.ogg]-video";
-$a->strings["Insert Vorbis [.ogg] audio"] = "Infoga Vorbis [.ogg]-ljud";
-$a->strings["Red Matrix - Guests: Username: {your email address}, Password: +++"] = "Red Matrix - Gäster: Användarnamn: {din e-postadress}, Lösenord: +++";
-$a->strings["Bookmark added"] = "Bokmärke tillagt";
-$a->strings["My Bookmarks"] = "Mina bokmärken";
-$a->strings["My Connections Bookmarks"] = "Mina kontakters bokmärken";
-$a->strings["%1\$s is following %2\$s's %3\$s"] = "%1\$s följer %2\$ss %3\$s";
-$a->strings["[Embedded content - reload page to view]"] = "[Inbäddat innehåll - ladda om sidan för att visa]";
-$a->strings["Channel not found."] = "Kanalen hittas inte.";
-$a->strings["toggle full screen mode"] = "växla helskärmsläge";
-$a->strings["%1\$s tagged %2\$s's %3\$s with %4\$s"] = "%1\$s taggade%2\$ss %3\$s med %4\$s";
-$a->strings["network"] = "nätverk";
-$a->strings["Public access denied."] = "Offentlig behörighet saknas.";
-$a->strings["No connections."] = "Inga kontakter.";
-$a->strings["Visit %s's profile [%s]"] = "Besök %ss profil [%s]";
-$a->strings["View Connnections"] = "Visa kontakter";
-$a->strings["Tag removed"] = "Tagg borttagen";
-$a->strings["Remove Item Tag"] = "Ta bort innehållstagg";
-$a->strings["Select a tag to remove: "] = "Välj en tagg att ta bort: ";
-$a->strings["Remove"] = "Ta bort";
+$a->strings["Remove this channel"] = "Ta bort den här kanalen";
+$a->strings["Event can not end before it has started."] = "Händelser kan inte sluta innan de börjat.";
+$a->strings["Event title and start time are required."] = "Händelsen behöver titel och starttid.";
+$a->strings["Event not found."] = "Händelsen hittades inte.";
+$a->strings["l, F j"] = "l, j F";
+$a->strings["Edit event"] = "Redigera händelse";
+$a->strings["Create New Event"] = "Skapa ny händelse";
+$a->strings["Previous"] = "Föregående";
+$a->strings["Export"] = "Exportera";
+$a->strings["Event details"] = "Detaljer för händelse";
+$a->strings["Starting date and Title are required."] = "Startdatum och titel är obligatoriska.";
+$a->strings["Event Starts:"] = "Händelsen börjar:";
+$a->strings["Required"] = "Behövs";
+$a->strings["Finish date/time is not known or not relevant"] = "Slutdatum/tid är okänt eller inte relevant";
+$a->strings["Event Finishes:"] = "Händelsen slutar:";
+$a->strings["Adjust for viewer timezone"] = "Justera för betraktarens tidszon";
+$a->strings["Description:"] = "Beskrivning:";
+$a->strings["Title:"] = "Titel:";
+$a->strings["Share this event"] = "Dela den här händelsen";
+$a->strings["Public Sites"] = "Offentliga servrar";
+$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."] = "De listade servrarna tillåter offentlig registrering i Red Matrix. Alla servrar i matrisen är sammankopplade, så medlemskap i en av dem medför medlemskap i matrisen som helhet. Vissa servrar kan kräva abonnemang eller erbjuda uppdelade tjänstenivåer. Leverantörslänkarna <strong>kan</strong> ge ytterligare detaljer.";
+$a->strings["Site URL"] = "Server-URL";
+$a->strings["Access Type"] = "Ã…tkomsttyp";
+$a->strings["Registration Policy"] = "Registreringspolicy";
+$a->strings["Location"] = "Plats";
+$a->strings["You must be logged in to see this page."] = "Du måste vara inloggad för att se den här sidan.";
+$a->strings["Insufficient permissions. Request redirected to profile page."] = "Otillräckliga behörigheter. Förfrågan omdirigerad till profilsidan.";
+$a->strings["Select a bookmark folder"] = "Välj en bokmärkeskatalog";
+$a->strings["Save Bookmark"] = "Spara bokmärke";
+$a->strings["URL of bookmark"] = "Bokmärkets URL";
+$a->strings["Description"] = "Beskrivning";
+$a->strings["Or enter new bookmark folder name"] = "Eller ange nytt namn på bokmärkeskatalog";
+$a->strings["Room not found"] = "Rum hittas inte";
+$a->strings["Leave Room"] = "Lämna rummet";
+$a->strings["Delete This Room"] = "Ta bort det här rummet";
+$a->strings["I am away right now"] = "Jag är borta för tillfället";
+$a->strings["I am online"] = "Jag är online";
+$a->strings["Bookmark this room"] = "Bokmärk det här rummet";
+$a->strings["New Chatroom"] = "Nytt chattrum";
+$a->strings["Chatroom Name"] = "Namn på chattrum";
+$a->strings["%1\$s's Chatrooms"] = "%1\$ss chattrum";
+$a->strings["Version %s"] = "Version %s";
+$a->strings["Installed plugins/addons/apps:"] = "Installerade tillägg/moduler/appar:";
+$a->strings["No installed plugins/addons/apps"] = "Inga installerade tillägg/moduler/appar";
+$a->strings["Red"] = "Red";
+$a->strings["This is a hub of the Red Matrix - a global cooperative network of decentralized privacy enhanced websites."] = "Det här är en hubb som ingår i Red Matrix - ett globalt samverkande nätverk av decentraliserade webbplatser med bättre integritetskydd.";
+$a->strings["Running at web location"] = "Kör på webbutrymmet";
+$a->strings["Please visit <a href=\"http://getzot.com\">GetZot.com</a> to learn more about the Red Matrix."] = "Besök <a href=\"http://getzot.com\">GetZot.com</a> lära dig mer om Red Matrix.";
+$a->strings["Bug reports and issues: please visit"] = "Buggrapporter och problem: besök";
+$a->strings["Suggestions, praise, etc. - please email \"redmatrix\" at librelist - dot com"] = "Förslag, uppskattning, etc. - maila \"redmatrix\" at librelist - dot com";
+$a->strings["Site Administrators"] = "Serveradministratörer";
+$a->strings["Away"] = "Borta";
+$a->strings["Online"] = "Online";
+$a->strings["Please login."] = "Logga in.";
$a->strings["Continue"] = "Fortsätt";
$a->strings["Premium Channel Setup"] = "Inställning av premiumkanal";
$a->strings["Enable premium channel connection restrictions"] = "Aktivera kontaktrestriktioner för premiumkanal";
@@ -1016,310 +1228,59 @@ $a->strings["Potential connections will then see the following text before proce
$a->strings["By continuing, I certify that I have complied with any instructions provided on this page."] = "Genom att fortsätta intygar jag att jag har följt alla instruktioner som ges på den här sidan.";
$a->strings["(No specific instructions have been provided by the channel owner.)"] = "(Inga specifika instruktioner har givits av kanalägaren.)";
$a->strings["Restricted or Premium Channel"] = "Begränsad kanal eller premiumkanal";
-$a->strings["No potential page delegates located."] = "Inga potentiella sid-ombud funna.";
-$a->strings["Delegate Page Management"] = "Delegera sidhantering";
-$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."] = "Ombud kan hantera alla aspekter av det här kontot/den här sidan förutom grundläggande kontoinställningar. Delegera inte ditt personliga konto till någon som du inte litar fullständigt på.";
-$a->strings["Existing Page Managers"] = "Befintliga sid-ansvariga";
-$a->strings["Existing Page Delegates"] = "Befintliga sid-ombud";
-$a->strings["Potential Delegates"] = "Potentiella ombud";
-$a->strings["Add"] = "Lägg till";
-$a->strings["No entries."] = "Inga poster.";
-$a->strings["Layout updated."] = "Layout uppdaterad.";
-$a->strings["Edit System Page Description"] = "Redigera systemsidbeskrivning";
-$a->strings["Layout not found."] = "Layout hittas inte.";
-$a->strings["Module Name:"] = "Modulnamn:";
-$a->strings["Layout Help"] = "Layouthjälp";
-$a->strings["Item not available."] = "Post inte tillgänglig.";
-$a->strings["Unable to locate original post."] = "Kunde inte hitta originalinlägget.";
-$a->strings["Empty post discarded."] = "Tomt inlägg förkastat.";
-$a->strings["Executable content type not permitted to this channel."] = "Körbart innehåll tillåts inte i den här kanalen.";
-$a->strings["System error. Post not saved."] = "Systemfel. Inlägget inte sparat.";
-$a->strings["You have reached your limit of %1$.0f top level posts."] = "Du har nått din gräns på %1$.0f toppnivåinlägg.";
-$a->strings["You have reached your limit of %1$.0f webpages."] = "Du har nått din gräns på %1$.0f webbsidor.";
-$a->strings["Menu element updated."] = "Menyval uppdaterat.";
-$a->strings["Unable to update menu element."] = "Kunde inte uppdatera menyval.";
-$a->strings["Menu element added."] = "Menyval tillagt.";
-$a->strings["Unable to add menu element."] = "Kunde inte lägga till menyval.";
-$a->strings["Manage Menu Elements"] = "Hantera menyval";
-$a->strings["Edit menu"] = "Redigera meny";
-$a->strings["Edit element"] = "Redigera menyval";
-$a->strings["Drop element"] = "Ta bort menyval";
-$a->strings["New element"] = "Nytt menyval";
-$a->strings["Edit this menu container"] = "Redigera den här menysamlaren";
-$a->strings["Add menu element"] = "Lägg till menyval";
-$a->strings["Delete this menu item"] = "Ta bort det här menyvalet";
-$a->strings["Edit this menu item"] = "Redigera det här menyvalet";
-$a->strings["New Menu Element"] = "Nytt menyval";
-$a->strings["Menu Item Permissions"] = "Behörighet för menyval";
-$a->strings["Link text"] = "Länktext";
-$a->strings["URL of link"] = "Länkens URL";
-$a->strings["Use Red magic-auth if available"] = "Använd Red magic-auth om tillgängligt";
-$a->strings["Open link in new window"] = "Öppna länk i nytt fönster";
-$a->strings["Order in list"] = "Ordningstal i listan";
-$a->strings["Higher numbers will sink to bottom of listing"] = "Större tal sjunker till botten av listan";
-$a->strings["Menu item not found."] = "Menyval hittas inte.";
-$a->strings["Menu item deleted."] = "Menyval borttaget.";
-$a->strings["Menu item could not be deleted."] = "Menyval kunde inte tas bort.";
-$a->strings["Edit Menu Element"] = "Redigera menyval";
-$a->strings["invalid target signature"] = "ogiltig målsignatur";
-$a->strings["Invalid profile identifier."] = "Ogiltigt profil-ID.";
-$a->strings["Profile Visibility Editor"] = "Redigera profilsynlighet";
-$a->strings["Click on a contact to add or remove."] = "Klicka på en kontakt för att lägga till eller ta bort.";
-$a->strings["Visible To"] = "Synlig för";
-$a->strings["All Connections"] = "Alla kontakter";
-$a->strings["Collection created."] = "Sammanhang skapat";
-$a->strings["Could not create collection."] = "Kunde inte skapa sammanhanget.";
-$a->strings["Collection updated."] = "Sammanhanget uppdatarat.";
-$a->strings["Create a collection of channels."] = "Skapa ett sammanhang av kanaler.";
-$a->strings["Collection Name: "] = "Namn på sammanhang: ";
-$a->strings["Members are visible to other channels"] = "Medlemmar är synliga för andra kanaler";
-$a->strings["Collection removed."] = "Sammanhang borttaget.";
-$a->strings["Unable to remove collection."] = "Kunde inte ta bort sammanhang.";
-$a->strings["Collection Editor"] = "Sammanhangsredigering";
-$a->strings["Members"] = "Medlemmar";
-$a->strings["All Connected Channels"] = "Alla anslutna kanaler";
-$a->strings["Click on a channel to add or remove."] = "Klicka på en kanal för att lägga till eller ta bort.";
-$a->strings["Theme settings updated."] = "Temainställningar uppdaterade.";
-$a->strings["Site"] = "Server";
-$a->strings["Accounts"] = "Konton";
-$a->strings["Channels"] = "Kanaler";
-$a->strings["Plugins"] = "Tillägg";
-$a->strings["Themes"] = "Teman";
-$a->strings["Server"] = "Server";
-$a->strings["DB updates"] = "Databasuppdateringar";
-$a->strings["Logs"] = "Loggar";
-$a->strings["Plugin Features"] = "Tilläggsfunktioner";
-$a->strings["User registrations waiting for confirmation"] = "Användarregistreringar som behöver bekräftas";
-$a->strings["Message queues"] = "Meddelandeköer";
-$a->strings["Administration"] = "Administration";
-$a->strings["Summary"] = "Sammanfattning";
-$a->strings["Registered users"] = "Registrerade användare";
-$a->strings["Pending registrations"] = "Pågående registreringar";
-$a->strings["Version"] = "Version";
-$a->strings["Active plugins"] = "Aktiva tillägg";
-$a->strings["Site settings updated."] = "Serverinställningar uppdaterade.";
-$a->strings["No special theme for accessibility"] = "Inget speciellt tema för tillgänglighet";
-$a->strings["Closed"] = "Stängd";
-$a->strings["Requires approval"] = "Kräver godkännande";
-$a->strings["Open"] = "Öppen";
-$a->strings["Private"] = "Privat";
-$a->strings["Paid Access"] = "Betald åtkomst";
-$a->strings["Free Access"] = "Fri åtkomst";
-$a->strings["Tiered Access"] = "Uppdelad åtkomst";
-$a->strings["Registration"] = "Registrering";
-$a->strings["File upload"] = "Filuppladdning";
-$a->strings["Policies"] = "Policyer";
-$a->strings["Site name"] = "Servernamn";
-$a->strings["Banner/Logo"] = "Banner/logga";
-$a->strings["Administrator Information"] = "Administratörsinformation";
-$a->strings["Contact information for site administrators. Displayed on siteinfo page. BBCode can be used here"] = "Kontaktinfo till sidadministratörer. Visas på sidinfosidan. BBCode kan användas här";
-$a->strings["System language"] = "Systemspråk";
-$a->strings["System theme"] = "Systemtema";
-$a->strings["Default system theme - may be over-ridden by user profiles - <a href='#' id='cnftheme'>change theme settings</a>"] = "Förvalt systemtema - kan åsidosättas i användarprofiler - <a href='#' id='cnftheme'>ändra temainställningar</a>";
-$a->strings["Mobile system theme"] = "Mobilt systemtema";
-$a->strings["Theme for mobile devices"] = "Tema för mobila enheter";
-$a->strings["Accessibility system theme"] = "Systemtema för ökad tillgänglighet";
-$a->strings["Accessibility theme"] = "Tillgänglighetstema";
-$a->strings["Channel to use for this website's static pages"] = "Kanal att använda för den här webbplatsens statiska sidor";
-$a->strings["Site Channel"] = "Sidkanal";
-$a->strings["Maximum image size"] = "Maximal bildstorlek";
-$a->strings["Maximum size in bytes of uploaded images. Default is 0, which means no limits."] = "Maximal storlek i byte för uppladdade bilder. Standard är 0, vilket innebär ingen storleksbegränsning.";
-$a->strings["Register policy"] = "Registreringspolicy";
-$a->strings["Access policy"] = "Ã…tkomstpolicy";
-$a->strings["Register text"] = "Registreringstext";
-$a->strings["Will be displayed prominently on the registration page."] = "Visas tydligt på registreringssidan.";
-$a->strings["Accounts abandoned after x days"] = "Konto övergivet efter x dagar";
-$a->strings["Will not waste system resources polling external sites for abandonded accounts. Enter 0 for no time limit."] = "Slösar inte systemresurser genom att fråga externa servrar efter övergivna konton. 0 innebär ingen tidsbegränsning.";
-$a->strings["Allowed friend domains"] = "Tillåtna vändomäner";
-$a->strings["Comma separated list of domains which are allowed to establish friendships with this site. Wildcards are accepted. Empty to allow any domains"] = "Kommaseparerad lista med domäner som tillåts att upprätta ett vänförhållande med den här servern. Jokertecken är tillåtna. Töm för att tillåta alla domäner.";
-$a->strings["Allowed email domains"] = "Tillåtna e-postdomäner";
-$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"] = "Kommaseparerad lista med domäner som tillåts i e-postadresser för registreringar på den här servern. Jokertecken är tillåtna. Töm för att tillåta alla domäner.";
-$a->strings["Block public"] = "Blockera offentlig åtkomst";
-$a->strings["Check to block public access to all otherwise public personal pages on this site unless you are currently logged in."] = "Välj för att blockera åtkomst till alla personliga sidor som annars skulle vara offentliga på den här servern om man inte är inloggad.";
-$a->strings["Force publish"] = "Tvinga publicering";
-$a->strings["Check to force all profiles on this site to be listed in the site directory."] = "Välj för att tvinga alla profiler på den här servern att listas i serverkatalogen.";
-$a->strings["Disable discovery tab"] = "Inaktivera upptäck-fliken";
-$a->strings["Remove the tab in the network view with public content pulled from sources chosen for this site."] = "Ta bort fliken i nätverksvyn med offentligt innehåll som hämtas från källor valda för den här servern.";
-$a->strings["No login on Homepage"] = "Ingen inloggning på hemsidan";
-$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)."] = "Välj för att gömma inloggningsformuläret från serverns hemsida för oinloggade besökare (t.ex. när du lägger in hemsideinnehållet via serverkanalen).";
-$a->strings["Proxy user"] = "Proxyanvändare";
-$a->strings["Proxy URL"] = "Proxy-URL";
-$a->strings["Network timeout"] = "Nätverkstimeout";
-$a->strings["Value is in seconds. Set to 0 for unlimited (not recommended)."] = "Värde i sekunder. Sätt till 0 för obegränsat (ej rekommenderat).";
-$a->strings["Delivery interval"] = "Leveransintervall";
-$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."] = "Fördröj leveransprocesser som görs i bakgrunden så här många sekunder för att reducera systembelastningen. Rekommenderat: 4-5 för delade värdar, 2-3 för virtuella privata servrar. 0-1 för stora dedikerade servrar.";
-$a->strings["Poll interval"] = "Hämtningsintervall";
-$a->strings["Delay background polling processes by this many seconds to reduce system load. If 0, use delivery interval."] = "Fördröj hämtningsprocesser som görs i bakgrunden så här många sekunder för att reducera systembelastningen. Om 0 används leveransintervallet.";
-$a->strings["Maximum Load Average"] = "Maximal genomsnittsbelastning";
-$a->strings["Maximum system load before delivery and poll processes are deferred - default 50."] = "Maximal systembelastning innan leverans- och hämtningsprocesser skjuts upp - standard är 50.";
-$a->strings["No server found"] = "Ingen server hittad";
-$a->strings["ID"] = "ID";
-$a->strings["for channel"] = "för kanal";
-$a->strings["on server"] = "på server";
-$a->strings["Status"] = "Status";
-$a->strings["Update has been marked successful"] = "Uppdatering har markerats som genomförd";
-$a->strings["Executing %s failed. Check system logs."] = "Körning av %s misslyckades. Kontrollera systemloggarna.";
-$a->strings["Update %s was successfully applied."] = "Uppdatering %s genomfördes utan problem.";
-$a->strings["Update %s did not return a status. Unknown if it succeeded."] = "Uppdatering %s returnerade ingen status. Oklart om den lyckades.";
-$a->strings["Update function %s could not be found."] = "Uppdateringsfunktion %s kunde inte hittas.";
-$a->strings["No failed updates."] = "Inga misslyckade uppdateringar.";
-$a->strings["Failed Updates"] = "Misslyckade uppdateringar";
-$a->strings["Mark success (if update was manually applied)"] = "Markera som genomförd (om uppdateringen gjordes manuellt)";
-$a->strings["Attempt to execute this update step automatically"] = "Försök att köra den här uppdateringen automatiskt";
-$a->strings["%s user blocked/unblocked"] = array(
- 0 => "%s användare blockerad/avblockerad",
- 1 => "%s användare blockerade/avblockerade",
-);
-$a->strings["%s user deleted"] = array(
- 0 => "%s användare borttagen",
- 1 => "%s användare borttagna",
-);
-$a->strings["Account not found"] = "Konto hittas inte";
-$a->strings["User '%s' deleted"] = "Användare '%s' borttagen";
-$a->strings["User '%s' unblocked"] = "Användare '%s' avblockerad";
-$a->strings["User '%s' blocked"] = "Användare '%s' blockerad";
-$a->strings["Users"] = "Användare";
-$a->strings["select all"] = "välj alla";
-$a->strings["User registrations waiting for confirm"] = "Användarregistreringar som inväntar bekräftelse";
-$a->strings["Request date"] = "Ansökningsdatum";
-$a->strings["No registrations."] = "Inga registreringar.";
-$a->strings["Approve"] = "Godkänn";
-$a->strings["Deny"] = "Avslå";
-$a->strings["Block"] = "Blockera";
-$a->strings["Unblock"] = "Avblockera";
-$a->strings["Register date"] = "Registreringsdatum";
-$a->strings["Last login"] = "Senaste inloggning";
-$a->strings["Expires"] = "Upphör att gälla";
-$a->strings["Service Class"] = "Tjänsteklass";
-$a->strings["Selected users will be deleted!\\n\\nEverything these users had posted on this site will be permanently deleted!\\n\\nAre you sure?"] = "Valda användare kommer att tas bort!\\n\\nAllt dessa användare har postat på den här servern kommer att raderas permanent!\\n\\nÄr du säker?";
-$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?"] = "Användaren {0} kommer att tas bort!\\n\\nAllt den här användaren har postat på den här servern kommer att raderas permanent!\\n\\nÄr du säker?";
-$a->strings["%s channel censored/uncensored"] = array(
- 0 => "%s kanal censurerad/avcensurerad",
- 1 => "%s kanaler censurerade/avcensurerade",
-);
-$a->strings["%s channel deleted"] = array(
- 0 => "%s kanal borttagen",
- 1 => "%s kanaler borttagna",
-);
-$a->strings["Channel not found"] = "Kanal hittas inte";
-$a->strings["Channel '%s' deleted"] = "Kanalen '%s' togs bort";
-$a->strings["Channel '%s' uncensored"] = "Kanal '%s' avcensurerad";
-$a->strings["Channel '%s' censored"] = "Kanal '%s' censurerad";
-$a->strings["Censor"] = "Censurera";
-$a->strings["Uncensor"] = "Avcensurera";
-$a->strings["UID"] = "UID";
-$a->strings["Address"] = "Adress";
-$a->strings["Selected channels will be deleted!\\n\\nEverything that was posted in these channels on this site will be permanently deleted!\\n\\nAre you sure?"] = "Valda kanaler kommer att tas bort!\\n\\nAllt som har postats i de kanalerna på den här servern kommer att raderas permanent!\\n\\nÄr du säker?";
-$a->strings["The channel {0} will be deleted!\\n\\nEverything that was posted in this channel on this site will be permanently deleted!\\n\\nAre you sure?"] = "Kanalen {0} kommer att tas bort!\\n\\nAllt som har postats i den här kanalen på den här servern kommer att raderas permanent!\\n\\nÄr du säker?";
-$a->strings["Plugin %s disabled."] = "Tillägg %s inaktiverat.";
-$a->strings["Plugin %s enabled."] = "Tillägg %s aktiverat.";
-$a->strings["Disable"] = "Inaktivera";
-$a->strings["Enable"] = "Aktivera";
-$a->strings["Toggle"] = "Växla";
-$a->strings["Author: "] = "Författare:";
-$a->strings["Maintainer: "] = "Underhållare:";
-$a->strings["No themes found."] = "Inga teman funna.";
-$a->strings["Screenshot"] = "Skärmdump";
-$a->strings["[Experimental]"] = "[Experimentellt]";
-$a->strings["[Unsupported]"] = "[Utan support]";
-$a->strings["Log settings updated."] = "Logginställningar uppdaterade.";
-$a->strings["Clear"] = "Rensa";
-$a->strings["Debugging"] = "Avlusning";
-$a->strings["Log file"] = "Loggfil";
-$a->strings["Must be writable by web server. Relative to your Red top-level directory."] = "Måste vara skrivbar för webbservern. Anges relativt Reds toppkatalog.";
-$a->strings["Log level"] = "Loggnivå";
-$a->strings["- select -"] = "- välj -";
-$a->strings["Welcome to %s"] = "Välkommen till %s";
-$a->strings["Red Matrix Server - Setup"] = "Red Matrix-server - inställningar";
-$a->strings["Could not connect to database."] = "Kunde inte ansluta till databasen.";
-$a->strings["Could not connect to specified site URL. Possible SSL certificate or DNS issue."] = "Kunde inte ansluta till den angivna server-URL:en. Möjligt problem med SSL-certifikat eller DNS.";
-$a->strings["Could not create table."] = "Kunde inte skapa tabell.";
-$a->strings["Your site database has been installed."] = "Din serverdatabas har installerats.";
-$a->strings["You may need to import the file \"install/database.sql\" manually using phpmyadmin or mysql."] = "Du kan behöva importera filen \"install/database.sql\" manuellt med phpmyadmin eller mysql.";
-$a->strings["Please see the file \"install/INSTALL.txt\"."] = "Se filen \"install/INSTALL.txt\".";
-$a->strings["System check"] = "Systemkontroll";
-$a->strings["Check again"] = "Kontrollera igen";
-$a->strings["Database connection"] = "Databasanslutning";
-$a->strings["In order to install Red Matrix we need to know how to connect to your database."] = "För att kunna installera Red Matrix behöver vi veta hur databasen ska anslutas.";
-$a->strings["Please contact your hosting provider or site administrator if you have questions about these settings."] = "Kontakta din servervärd eller administratör om du har frågor om de här inställningarna.";
-$a->strings["The database you specify below should already exist. If it does not, please create it before continuing."] = "Databasen du anger nedan måste finnas. Om den inte gör det, skapa den innan du fortsätter.";
-$a->strings["Database Server Name"] = "Databasserver";
-$a->strings["Default is localhost"] = "Standard är localhost";
-$a->strings["Database Port"] = "Databasport";
-$a->strings["Communication port number - use 0 for default"] = "Kommunikationsportnummer - använd 0 för standardinställning";
-$a->strings["Database Login Name"] = "Loginnamn till databas";
-$a->strings["Database Login Password"] = "Lösenord till databas";
-$a->strings["Database Name"] = "Databasnamn";
-$a->strings["Site administrator email address"] = "Serveradministratörens e-postadress";
-$a->strings["Your account email address must match this in order to use the web admin panel."] = "Ditt kontos e-postadress måste stämma med den här för att webbgränssnittet för administration ska kunna användas.";
-$a->strings["Website URL"] = "Webbplatsens URL";
-$a->strings["Please use SSL (https) URL if available."] = "Ange en URL med SSL (https) om tillgängligt";
-$a->strings["Please select a default timezone for your website"] = "Välj en standardtidszon för din webbplats";
-$a->strings["Site settings"] = "Serverinställningar";
-$a->strings["Could not find a command line version of PHP in the web server PATH."] = "Kunde inte hitta en kommandoradsversion av PHP i webbserverns PATH.";
-$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."] = "Om du inte har en kommandoradsversion av PHP installerad på servern kommer du inte att kunna köra bakgrundshämtning via cron.";
-$a->strings["PHP executable path"] = "Sökväg till PHP-programmet";
-$a->strings["Enter full path to php executable. You can leave this blank to continue the installation."] = "Ange hela sökvägen till php-programfilen. Du kan lämna det här blankt för att fortsätta installationen.";
-$a->strings["Command line PHP"] = "Kommandorads-PHP";
-$a->strings["The command line version of PHP on your system does not have \"register_argc_argv\" enabled."] = "Kommandoradsversionen av PHP på ditt system har inte \"register_argc_argv\" aktiverat.";
-$a->strings["This is required for message delivery to work."] = "Det här behövs för att meddelandeleverans ska fungera.";
-$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"] = "Fel: \"openssl_pkey_new\"-funktionen på det här systemet kan inte generera kryptonycklar";
-$a->strings["If running under Windows, please see \"http://www.php.net/manual/en/openssl.installation.php\"."] = "Om systemet kör Windows, se \"http://www.php.net/manual/en/openssl.installation.php\".";
-$a->strings["Generate encryption keys"] = "Generera kryptonycklar";
-$a->strings["libCurl PHP module"] = "PHP-modulen libCurl";
-$a->strings["GD graphics PHP module"] = "PHP-modulen GD graphics";
-$a->strings["OpenSSL PHP module"] = "PHP-modulen OpenSSL";
-$a->strings["mysqli PHP module"] = "PHP-modulen mysqli";
-$a->strings["mb_string PHP module"] = "PHP-modulen mb_string";
-$a->strings["mcrypt PHP module"] = "PHP-modulen mcrypt";
-$a->strings["Apache mod_rewrite module"] = "Apache-modulen mod_rewrite";
-$a->strings["Error: Apache webserver mod-rewrite module is required but not installed."] = "Fel: Apache-webbserverns mod-rewrite-modul krävs men är inte installerad.";
-$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"] = "Fel: proc_open krävs men är antingen inte installerad eller har inaktiverats i php.ini";
-$a->strings["Error: libCURL PHP module required but not installed."] = "Fel: PHP-modulen libCURL krävs men är inte installerad.";
-$a->strings["Error: GD graphics PHP module with JPEG support required but not installed."] = "Fel: PHP-modulen GD graphics med JPEG-stöd krävs men är inte installerad.";
-$a->strings["Error: openssl PHP module required but not installed."] = "Fel: PHP-modulen openssl krävs men är inte installerad.";
-$a->strings["Error: mysqli PHP module required but not installed."] = "Fel: PHP-modulen mysqli krävs men är inte installerad.";
-$a->strings["Error: mb_string PHP module required but not installed."] = "Fel: PHP-modulen mb_string krävs men är inte installerad.";
-$a->strings["Error: mcrypt PHP module required but not installed."] = "Fel: PHP-modulen mcrypt krävs men är inte installerad.";
-$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."] = "Webbinstallationen måste kunna skapa filen \".htconfig.php\" i toppkatalogen på din webbserver men kan inte göra det.";
-$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."] = "Det är ofta en behörighetsinställning som gör att webbservern inte kan skriva filer i din katalog - även om du kan.";
-$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."] = "Efter den här proceduren kommer vi att ge dig en text att spara i filen .htconfig.php i Reds toppkatalog.";
-$a->strings["You can alternatively skip this procedure and perform a manual installation. Please see the file \"install/INSTALL.txt\" for instructions."] = "Alternativt kan du hoppa över den här proceduren och göra en manuell installation. För instruktioner, se filen \"install/INSTALL.txt\".";
-$a->strings[".htconfig.php is writable"] = ".htconfig.php är skrivbar";
-$a->strings["Red uses the Smarty3 template engine to render its web views. Smarty3 compiles templates to PHP to speed up rendering."] = "Red använder mallmotorn Smarty3 för att rendera webbvyerna. Smarty3 kompilerar mallar till PHP för att snabba upp renderingen.";
-$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."] = "För att kunna spara de här kompilerade mallarna behöver webbservern ha skrivrättigheter i katalogen view/tpl/smarty3/ under Reds toppkatalog.";
-$a->strings["Please ensure that the user that your web server runs as (e.g. www-data) has write access to this folder."] = "Försäkra dig om att användaren som din webbserver kör som (t.ex. www-data) har skrivrättigheter till den här katalogen.";
-$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."] = "Observera: som en säkerhetsåtgärd bör du ge webbservern skrivrättigheter endast till view/tpl/smarty3 - inte till mallfilerna (.tpl) som den innehåller.";
-$a->strings["view/tpl/smarty3 is writable"] = "view/tpl/smarty3 är skrivbar";
-$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 använder katalogen store för att spara uppladdade filer. Webbservern behöver ha skrivrättigheter till katalogen store under Reds toppkatalog.";
-$a->strings["store is writable"] = "store är skrivbar";
-$a->strings["SSL certificate cannot be validated. Fix certificate or disable https access to this site."] = "SSL-certifikatet kan inte valideras. Fixa certifikatet eller inaktivera https-åtkomst till den här servern.";
-$a->strings["If you use https access, you MUST use a certification instance known by all internet browsers. You MUST NOT use self-signed certificates!"] = "Om du använder https-åtkomst MÅSTE du använda ett certifikat som känns igen av alla webbläsare. Du FÅR INTE använda självsignerade certifikat!";
-$a->strings["This restriction is incorporated because public posts from you may for example contain references to images on your own hub. If your"] = "Den här restriktionen finns för att offentliga inlägg från dig till exempel kan innehålla referenser till bilder på din egen hubb. Om ditt";
-$a->strings["certificate is not known by the internet browser of users they get a warning message complaining about some security issues. Although"] = "certifikat inte känns igen av användares webbläsare får de ett varningsmeddelande om säkerhetsproblem. Även om";
-$a->strings["these complains are not the real truth - there are no security issues with your encryption! - the users may be confused, nerved or even"] = "de här varningarna inte är helt sanna - det är inga säkerhetsproblem med din kryptering! - så kan användare bli förvirrade, nervösa eller";
-$a->strings["worse may become scared about redmatrix having security issues. Use one of the free certification instances!"] = "ännu värre, bli skrämda att redmatrix skulle ha säkerhetsproblem. Använd en av utfärdarna av gratis certifikat.";
-$a->strings["SSL certificate validation"] = "SSL-certifikatvalidering";
-$a->strings["Url rewrite in .htaccess is not working. Check your server configuration."] = "URL rewrite i .htaccess fungerar inte. Kontrollera din serverkonfiguration.";
-$a->strings["Url rewrite is working"] = "URL rewrite fungerar";
-$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."] = "Databaskonfigurationsfilen \".htconfig.php\" kunde inte skrivas. Använd den bifogade texten för att skapa en konfigurationsfil i din webbservers rot.";
-$a->strings["Errors encountered creating database tables."] = "Fel inträffade när databastabeller skulle skapas.";
-$a->strings["<h1>What next</h1>"] = "<h1>Nästa steg</h1>";
-$a->strings["IMPORTANT: You will need to [manually] setup a scheduled task for the poller."] = "VIKTIGT: Du behöver ställa in en schemalagd för hämtningsrutinen [manuellt]";
-$a->strings["Age: "] = "Ã…lder:";
-$a->strings["Gender: "] = "Kön:";
-$a->strings["Finding:"] = "Sökning efter:";
-$a->strings["next page"] = "nästa sida";
-$a->strings["previous page"] = "föregående sida";
-$a->strings["No entries (some entries may be hidden)."] = "Inga resultat (vissa resultat kan vara dolda).";
-$a->strings["Remote privacy information not available."] = "Icke-lokal integritetsinformation är inte tillgänglig";
-$a->strings["Visible to:"] = "Synlig för:";
+$a->strings["Channel removals are not allowed within 48 hours of changing the account password."] = "Borttagning av kanal tillåts inte inom 48 timmar efter att kontolösenordet har ändrats.";
+$a->strings["Remove This Channel"] = "Ta bort den här kanalen";
+$a->strings["This will completely remove this channel from the network. Once this has been done it is not recoverable."] = "Det här kommer att ta bort den här kanalen helt från nätverket. När det är gjort går det inte att återställa den.";
+$a->strings["Please enter your password for verification:"] = "Ange ditt lösenord för att bekräfta:";
+$a->strings["Remove this channel and all its clones from the network"] = "Ta bort den här kanalen och alla dess kloner från nätverket";
+$a->strings["By default only the instance of the channel located on this hub will be removed from the network"] = "Som standard kommer bara den här hubbens instans av kanalen att tas bort från nätverket";
+$a->strings["Remove Channel"] = "Ta bort kanal";
+$a->strings["No channel."] = "Ingen kanal.";
+$a->strings["Common connections"] = "Gemensamma kontakter";
+$a->strings["No connections in common."] = "Inga gemensamma kontakter.";
+$a->strings["We encountered a problem while logging in with the OpenID you provided. Please check the correct spelling of the ID."] = "Vi drabbades av ett problem vid inloggningen med OpenID:t du uppgav. Kontrollera att ID:t är korrekt stavat.";
+$a->strings["The error message was:"] = "Felmeddelandet var:";
+$a->strings["Authentication failed."] = "Inloggning misslyckades.";
+$a->strings["Remote Authentication"] = "Fjärrinloggning";
+$a->strings["Enter your channel address (e.g. channel@example.com)"] = "Ange din kanaladress (t.ex. kanal@example.com)";
+$a->strings["Authenticate"] = "Autentisera";
+$a->strings["Like/Dislike"] = "Gilla/ogilla";
+$a->strings["This action is restricted to members."] = "Den här åtgärden fungerar bara för medlemmar.";
+$a->strings["Please <a href=\"rmagic\">login with your RedMatrix ID</a> or <a href=\"register\">register as a new RedMatrix member</a> to continue."] = "<a href=\"rmagic\">Logga in med ditt RedMatrix-ID</a> eller <a href=\"register\">registrera dig som ny RedMatrix medlem</a> för att fortsätta.";
+$a->strings["Invalid request."] = "Ogiltig begäran.";
+$a->strings["thing"] = "sak";
+$a->strings["Channel unavailable."] = "Kanalen kan ej nås.";
+$a->strings["Previous action reversed."] = "Föregående åtgärd återställdes.";
+$a->strings["Action completed."] = "Åtgärden slutfördes.";
+$a->strings["Thank you."] = "Tack.";
+$a->strings["Remote authentication blocked. You are logged into this site locally. Please logout and retry."] = "Fjärrinloggning blockerades. Du är inloggad på den här servern lokalt. Logga ut och försök igen.";
+$a->strings["Welcome %s. Remote authentication successful."] = "Välkommen %s. Fjärrinloggning lyckades.";
$a->strings["Could not access contact record."] = "Kunde inte komma åt kontaktuppgifter.";
$a->strings["Could not locate selected profile."] = "Kunde inte hitta vald profil.";
$a->strings["Connection updated."] = "Kontakt uppdaterad.";
$a->strings["Failed to update connection record."] = "Misslyckades att uppdatera kontaktuppgifter.";
+$a->strings["Blocked"] = "Blockerade";
+$a->strings["Ignored"] = "Ignorerade";
+$a->strings["Hidden"] = "Dolda";
+$a->strings["Archived"] = "Arkiverade";
+$a->strings["All"] = "Alla";
+$a->strings["Suggest new connections"] = "Föreslå nya kontakter";
+$a->strings["New Connections"] = "Nya kontakter";
+$a->strings["Show pending (new) connections"] = "Visa väntande (nya) kontakter";
+$a->strings["Show all connections"] = "Visa alla kontakter";
+$a->strings["Unblocked"] = "Ej blockerade";
+$a->strings["Only show unblocked connections"] = "Visa endast ej blockerade kontakter";
+$a->strings["Only show blocked connections"] = "Visa endast blockerade kontakter";
+$a->strings["Only show ignored connections"] = "Visa endast ignorerade kontakter";
+$a->strings["Only show archived connections"] = "Visa endast arkiverade kontakter";
+$a->strings["Only show hidden connections"] = "Visa endast dolda kontakter";
+$a->strings["%1\$s [%2\$s]"] = "%1\$s [%2\$s]";
+$a->strings["Edit connection"] = "Redigera kontakt";
+$a->strings["Search your connections"] = "Sök bland dina kontakter";
+$a->strings["Finding: "] = "Sökning efter: ";
+$a->strings["OpenID protocol error. No ID returned."] = "Protokollfel för OpenID. Inget ID returnerades.";
+$a->strings["Edit post"] = "Redigera inlägg";
+$a->strings["is now connected to"] = "har nu kontakt med";
$a->strings["Could not access address book record."] = "Kunde inte komma åt adressboksuppgifter.";
$a->strings["Refresh failed - channel is currently unavailable."] = "Uppdatering misslyckades - kanalen är inte tillgänglig.";
$a->strings["Channel has been unblocked"] = "Kanalen är inte längre blockerad";
@@ -1339,6 +1300,8 @@ $a->strings["Refresh Permissions"] = "Uppdatera behörigheter";
$a->strings["Fetch updated permissions"] = "Hämta uppdaterade behörigheter";
$a->strings["Recent Activity"] = "Senaste aktiviteten";
$a->strings["View recent posts and comments"] = "Visa de senaste inläggen och kommentarerna";
+$a->strings["Unblock"] = "Avblockera";
+$a->strings["Block"] = "Blockera";
$a->strings["Block or Unblock this connection"] = "Blockera eller häv blockering av den här kontakten";
$a->strings["Unignore"] = "Sluta att ignorera";
$a->strings["Ignore"] = "Ignorera";
@@ -1350,12 +1313,11 @@ $a->strings["Unhide"] = "Sluta att dölja";
$a->strings["Hide"] = "Dölj";
$a->strings["Hide or Unhide this connection"] = "Dölj eller sluta att dölja den här kontakten";
$a->strings["Delete this connection"] = "Ta bort den här kontakten";
-$a->strings["Unknown"] = "Okända";
$a->strings["Approve this connection"] = "Godkänn den här kontakten";
$a->strings["Accept connection to allow communication"] = "Acceptera kontakten för att tillåta kommunikation";
-$a->strings["Automatic Permissions Settings"] = "Automatiska behörighetsinställningar";
$a->strings["Connections: settings for %s"] = "Kontakter: inställningar 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."] = "När en kanal presenterar sig för dig kommer alla behörigheter här att gälla för den nya kontakten automatiskt och presentationen att godkännas. Lämna den här sidan om du inte önskar använda den här funktionen.";
+$a->strings["Apply these permissions automatically"] = "Använd de här rättigheterna automatiskt";
+$a->strings["Apply the permissions indicated on this page to all new connections."] = "Använd rättigheterna angivna på den här sidan för alla nya kontakter.";
$a->strings["Slide to adjust your degree of friendship"] = "Dra för att justera er vänskapsnivå";
$a->strings["inherited"] = "ärvd";
$a->strings["Connection has no individual permissions!"] = "Kontakten har inga individuella behörigheter!";
@@ -1366,6 +1328,7 @@ $a->strings["Contact Information / Notes"] = "Kontaktinformation / anteckningar"
$a->strings["Edit contact notes"] = "Redigera anteckningar för kontakten";
$a->strings["Their Settings"] = "Deras inställningar";
$a->strings["My Settings"] = "Mina inställningar";
+$a->strings["Clear/Disable Automatic Permissions"] = "Rensa/inaktivera automatiska behörigheter";
$a->strings["Forum Members"] = "Forummedlemmar";
$a->strings["Soapbox"] = "Talarstol";
$a->strings["Full Sharing (typical social network permissions)"] = "Full delning (typiska behörigheter för sociala nätverk)";
@@ -1390,29 +1353,47 @@ $a->strings["Currently archived"] = "Arkiverad";
$a->strings["Currently pending"] = "Inväntar svar";
$a->strings["Hide this contact from others"] = "Dölj den här kontakten för andra";
$a->strings["Replies/likes to your public posts <strong>may</strong> still be visible"] = "Svar/gilla-reaktioner på dina offentliga inlägg <strong>kan</strong> fortfarande synas";
-$a->strings["Help with this feature"] = "Hjälp för den här funktionen";
-$a->strings["Layout Name"] = "Layoutnamn";
-$a->strings["Help:"] = "Hjälp:";
-$a->strings["Not Found"] = "Hittas inte";
-$a->strings["Page not found."] = "Sidan hittas inte.";
-$a->strings["We encountered a problem while logging in with the OpenID you provided. Please check the correct spelling of the ID."] = "Vi drabbades av ett problem vid inloggningen med OpenID:t du uppgav. Kontrollera att ID:t är korrekt stavat.";
-$a->strings["The error message was:"] = "Felmeddelandet var:";
-$a->strings["Authentication failed."] = "Autentisering misslyckades.";
-$a->strings["Remote Authentication"] = "Fjärrautentisering.";
-$a->strings["Enter your channel address (e.g. channel@example.com)"] = "Ange din kanaladress (t.ex. kanal@example.com)";
-$a->strings["Authenticate"] = "Autentisera";
-$a->strings["Invalid item."] = "Ogiltig post.";
-$a->strings["No such group"] = "Ingen sådan grupp";
-$a->strings["Search Results For:"] = "Sökresultat för:";
-$a->strings["Collection is empty"] = "Sammanhanget är tomt";
-$a->strings["Collection: "] = "Sammanhang: ";
-$a->strings["Connection: "] = "Kontakt:";
-$a->strings["Invalid connection."] = "Ogiltig kontakt.";
+$a->strings["Thing updated"] = "Föremål uppdaterat";
+$a->strings["Object store: failed"] = "Objektlagring: misslyckades";
+$a->strings["Thing added"] = "Föremål tillagt";
+$a->strings["OBJ: %1\$s %2\$s %3\$s"] = "OBJ: %1\$s %2\$s %3\$s";
+$a->strings["Show Thing"] = "Visa föremål";
+$a->strings["item not found."] = "föremål hittades inte.";
+$a->strings["Edit Thing"] = "Redigera föremål";
+$a->strings["Select a profile"] = "Välj en profil";
+$a->strings["Post an activity"] = "Posta en aktivitet";
+$a->strings["Only sends to viewers of the applicable profile"] = "Skickar bara till de som tittar på den aktuella profilen";
+$a->strings["Name of thing e.g. something"] = "Namn på föremål, t.ex. någonting";
+$a->strings["URL of thing (optional)"] = "URL för föremål (frivilligt)";
+$a->strings["URL for photo of thing (optional)"] = "URL för foto på föremål (frivilligt)";
+$a->strings["Add Thing to your Profile"] = "Lägg till föremål till din profil";
+$a->strings["No valid account found."] = "Inget giltigt konto hittades.";
+$a->strings["Password reset request issued. Check your email."] = "Lösenordsåterställning har skickats. Kontrollera din e-post.";
+$a->strings["Site Member (%s)"] = "Servermedlem (%s)";
+$a->strings["Password reset requested at %s"] = "Lösenordsåterställning begärd på %s";
+$a->strings["Request could not be verified. (You may have previously submitted it.) Password reset failed."] = "Begäran kunde inte bekräftas. (Du kan ha skickat den tidigare.) Lösenordsåterställningen misslyckades.";
+$a->strings["Password Reset"] = "Lösenordsåterställning";
+$a->strings["Your password has been reset as requested."] = "Ditt lösenord har återställts som begärt.";
+$a->strings["Your new password is"] = "Ditt nya lösenord är";
+$a->strings["Save or copy your new password - and then"] = "Spara eller kopiera ditt nya lösenord - ";
+$a->strings["click here to login"] = "klicka sedan här för att logga in";
+$a->strings["Your password may be changed from the <em>Settings</em> page after successful login."] = "Ditt lösenord kan bytas från sidan <em>Inställningar</em> när du är inloggad.";
+$a->strings["Your password has changed at %s"] = "Ditt lösenord byttes på %s";
+$a->strings["Forgot your Password?"] = "Glömt lösenordet?";
+$a->strings["Enter your email address and submit to have your password reset. Then check your email for further instructions."] = "Ange din e-postadress och skicka för att återställa ditt lösenord. Kontrollera sedan din e-post för vidare instruktioner.";
+$a->strings["Email Address"] = "E-postadress";
+$a->strings["Reset"] = "Återställ";
+$a->strings["Bookmark added"] = "Bokmärke tillagt";
+$a->strings["My Bookmarks"] = "Mina bokmärken";
+$a->strings["My Connections Bookmarks"] = "Mina kontakters bokmärken";
+$a->strings["This site is not a directory server"] = "Den här servern är inte en katalogserver";
+$a->strings["RedMatrix - Guests: Username: {your email address}, Password: +++"] = "RedMatrix - Gäster: Användarnamn {din e-postadress}, Lösenord: +++";
$a->strings["Profile not found."] = "Profil hittades inte.";
$a->strings["Profile deleted."] = "Profil borttagen.";
$a->strings["Profile-"] = "Profil-";
$a->strings["New profile created."] = "Ny profil skapad.";
$a->strings["Profile unavailable to clone."] = "Profil inte tillgänglig för kloning.";
+$a->strings["Profile unavailable to export."] = "Profil inte tillgänglig för export.";
$a->strings["Profile Name is required."] = "Profilnamn krävs.";
$a->strings["Marital Status"] = "Civilstånd";
$a->strings["Romantic Partner"] = "Romantisk partner";
@@ -1425,7 +1406,7 @@ $a->strings["Gender"] = "Kön";
$a->strings["Sexual Preference"] = "Sexuell preferens";
$a->strings["Homepage"] = "Hemsida";
$a->strings["Interests"] = "Intressen";
-$a->strings["Location"] = "Plats";
+$a->strings["Address"] = "Adress";
$a->strings["Profile updated."] = "Profil uppdaterad.";
$a->strings["Hide your contact/friend list from viewers of this profile?"] = "Dölj din kontakt-/vänlista för de som ser den här profilen";
$a->strings["Edit Profile Details"] = "Redigera profildetaljer";
@@ -1434,11 +1415,13 @@ $a->strings["Change Profile Photo"] = "Byt profilfoto";
$a->strings["Create a new profile using these settings"] = "Skapa en ny profil utifrån de här inställningarna";
$a->strings["Clone this profile"] = "Klona den här profilen";
$a->strings["Delete this profile"] = "Ta bort den här profilen";
+$a->strings["Import profile from file"] = "Importera profil från fil";
+$a->strings["Export profile to file"] = "Exportera profil som fil";
$a->strings["Profile Name:"] = "Profilnamn:";
$a->strings["Your Full Name:"] = "Ditt fulllständiga namn:";
$a->strings["Title/Description:"] = "Titel/beskrivning:";
$a->strings["Your Gender:"] = "Ditt kön:";
-$a->strings["Birthday (%s):"] = "Födelsedag (%s):";
+$a->strings["Birthday :"] = "Födelsedag:";
$a->strings["Street Address:"] = "Gatuadress:";
$a->strings["Locality/City:"] = "Ort:";
$a->strings["Postal/Zip Code:"] = "Postnummer:";
@@ -1464,77 +1447,99 @@ $a->strings["Film/dance/culture/entertainment"] = "Film/dans/kultur/underhållni
$a->strings["Love/romance"] = "Kärlek/romantik";
$a->strings["Work/employment"] = "Arbete/sysselsättning";
$a->strings["School/education"] = "Skola/utbildning";
-$a->strings["This is your <strong>public</strong> profile.<br />It <strong>may</strong> be visible to anybody using the internet."] = "Det här är din <strong>offentliga</strong> profil.<br />Den <strong>kan</strong> ses av vem som helst med tillgång till Internet.";
+$a->strings["This is your default profile."] = "Det här är din standardprofil.";
+$a->strings["Age: "] = "Ã…lder:";
$a->strings["Edit/Manage Profiles"] = "Redigera/hantera profiler";
$a->strings["Add profile things"] = "Lägg till profilsaker";
$a->strings["Include desirable objects in your profile"] = "Inkludera fina prylar i din profil";
-$a->strings["This site is not a directory server"] = "Den här servern är inte en katalogserver";
-$a->strings["Failed to create source. No channel selected."] = "Misslyckades att skapa källa. Ingen kanal vald.";
-$a->strings["Source created."] = "Källa skapad.";
-$a->strings["Source updated."] = "Källa uppdaterad.";
-$a->strings["*"] = "*";
-$a->strings["Manage remote sources of content for your channel."] = "Hantera fjärrkällor med innehåll för din kanal.";
-$a->strings["New Source"] = "Ny källa";
-$a->strings["Import all or selected content from the following channel into this channel and distribute it according to your channel settings."] = "Importera allt eller valt innehåll från följande kanal till den här kanalen och distribuera det enligt dina kanalinställningar.";
-$a->strings["Only import content with these words (one per line)"] = "Importera endast innehåll med de här orden (ett per rad)";
-$a->strings["Leave blank to import all public content"] = "Lämna blankt för att importera allt offentligt innehåll";
-$a->strings["Channel Name"] = "Kanalnamn";
-$a->strings["Source not found."] = "Källa hittades inte.";
-$a->strings["Edit Source"] = "Redigera källa";
-$a->strings["Delete Source"] = "Ta bort källa";
-$a->strings["Source removed"] = "Källa borttagen";
-$a->strings["Unable to remove source."] = "Kunde inte ta bort källa.";
-$a->strings["Block Name"] = "Blocknamn";
-$a->strings["Hub not found."] = "Hubb hittades inte.";
-$a->strings["You must be logged in to see this page."] = "Du måste vara inloggad för att se den här sidan.";
-$a->strings["Room not found"] = "Rum hittas inte";
-$a->strings["Leave Room"] = "Lämna rummet";
-$a->strings["I am away right now"] = "Jag är borta för tillfället";
-$a->strings["I am online"] = "Jag är online";
-$a->strings["Bookmark this room"] = "Bokmärk det här rummet";
-$a->strings["New Chatroom"] = "Nytt chattrum";
-$a->strings["Chatroom Name"] = "Namn på chattrum";
-$a->strings["%1\$s's Chatrooms"] = "%1\$ss chattrum";
-$a->strings["Version %s"] = "Version %s";
-$a->strings["Installed plugins/addons/apps:"] = "Installerade tillägg/moduler/appar:";
-$a->strings["No installed plugins/addons/apps"] = "Inga installerade tillägg/moduler/appar";
-$a->strings["Red"] = "Red";
-$a->strings["This is a hub of the Red Matrix - a global cooperative network of decentralised privacy enhanced websites."] = "Det här är en hubb som hör till Red Matrix - ett globalt samverkande nätverk av decentraliserade integritetsstärkta webbplatser.";
-$a->strings["Running at web location"] = "Kör på webbutrymmet";
-$a->strings["Please visit <a href=\"http://getzot.com\">GetZot.com</a> to learn more about the Red Matrix."] = "Besök <a href=\"http://getzot.com\">GetZot.com</a> lära dig mer om Red Matrix.";
-$a->strings["Bug reports and issues: please visit"] = "Buggrapporter och problem: besök";
-$a->strings["Suggestions, praise, etc. - please email \"redmatrix\" at librelist - dot com"] = "Förslag, uppskattning, etc. - maila \"redmatrix\" at librelist - dot com";
-$a->strings["Site Administrators"] = "Serveradministratörer";
-$a->strings["Add a Channel"] = "Lägg till en kanal";
-$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."] = "En kanal är din egen samling av relaterade webbsidor. En kanal kan användas för att innehålla sociala nätverksprofiler, bloggar, konversationsgrupper och forum, fansidor, och mycket mer. Du kan skapa så många kanaler som din tjänsteleverantör tillåter.";
-$a->strings["Examples: \"Bob Jameson\", \"Lisa and her Horses\", \"Soccer\", \"Aviation Group\" "] = "Exempel: \"Bob Jameson\", \"Lisa och hennes hästar\", \"Fotboll\", \"Flyggruppen\" ";
-$a->strings["Choose a short nickname"] = "Välj ett kort smeknamn";
-$a->strings["Your nickname will be used to create an easily remembered channel address (like an email address) which you can share with others."] = "Ditt smeknamn används för att skapa en kanaladress som är lätt att komma ihåg (som en e-postadress) som du kan dela med andra.";
-$a->strings["Or <a href=\"import\">import an existing channel</a> from another location"] = "Eller <a href=\"import\">importera en befintlig kanal</a> från en annan plats";
-$a->strings["No valid account found."] = "Inget giltigt konto hittades.";
-$a->strings["Password reset request issued. Check your email."] = "Lösenordsåterställning har skickats. Kontrollera din e-post.";
-$a->strings["Site Member (%s)"] = "Servermedlem (%s)";
-$a->strings["Password reset requested at %s"] = "Lösenordsåterställning begärd på %s";
-$a->strings["Request could not be verified. (You may have previously submitted it.) Password reset failed."] = "Begäran kunde inte bekräftas. (Du kan ha skickat den tidigare.) Lösenordsåterställningen misslyckades.";
-$a->strings["Password Reset"] = "Lösenordsåterställning";
-$a->strings["Your password has been reset as requested."] = "Ditt lösenord har återställts som begärt.";
-$a->strings["Your new password is"] = "Ditt nya lösenord är";
-$a->strings["Save or copy your new password - and then"] = "Spara eller kopiera ditt nya lösenord - ";
-$a->strings["click here to login"] = "klicka sedan här för att logga in";
-$a->strings["Your password may be changed from the <em>Settings</em> page after successful login."] = "Ditt lösenord kan bytas från sidan <em>Inställningar</em> när du är inloggad.";
-$a->strings["Your password has changed at %s"] = "Ditt lösenord byttes på %s";
-$a->strings["Forgot your Password?"] = "Glömt lösenordet?";
-$a->strings["Enter your email address and submit to have your password reset. Then check your email for further instructions."] = "Ange din e-postadress och skicka för att återställa ditt lösenord. Kontrollera sedan din e-post för vidare instruktioner.";
-$a->strings["Email Address"] = "E-postadress";
-$a->strings["Reset"] = "Återställ";
+$a->strings["Item not found"] = "Posten hittas inte";
$a->strings["Edit Block"] = "Redigera block";
$a->strings["Delete block?"] = "Ta bort block?";
+$a->strings["Insert YouTube video"] = "Infoga Youtube-video";
+$a->strings["Insert Vorbis [.ogg] video"] = "Infoga Vorbis [.ogg]-video";
+$a->strings["Insert Vorbis [.ogg] audio"] = "Infoga Vorbis [.ogg]-ljud";
$a->strings["Delete Block"] = "Ta bort block";
-$a->strings["Select a bookmark folder"] = "Välj en bokmärkeskatalog";
-$a->strings["Save Bookmark"] = "Spara bokmärke";
-$a->strings["URL of bookmark"] = "Bokmärkets URL";
-$a->strings["Description"] = "Beskrivning";
-$a->strings["Or enter new bookmark folder name"] = "Eller ange nytt namn på bokmärkeskatalog";
+$a->strings["Layout updated."] = "Layout uppdaterad.";
+$a->strings["Edit System Page Description"] = "Redigera systemsidbeskrivning";
+$a->strings["Layout not found."] = "Layout hittas inte.";
+$a->strings["Module Name:"] = "Modulnamn:";
+$a->strings["Layout Help"] = "Layouthjälp";
+$a->strings["Edit Layout"] = "Redigera layout";
+$a->strings["Delete layout?"] = "Ta bort layout?";
+$a->strings["Delete Layout"] = "Ta bort layout";
+$a->strings["Item is not editable"] = "Posten går ej att redigera";
+$a->strings["Delete item?"] = "Ta bort posten?";
+$a->strings["Edit Webpage"] = "Redigera webbsida";
+$a->strings["Delete webpage?"] = "Ta bort webbsida?";
+$a->strings["Delete Webpage"] = "Ta bort webbsida";
+$a->strings["webpage"] = "webbsida";
+$a->strings["block"] = "block";
+$a->strings["layout"] = "layout";
+$a->strings["%s element installed"] = "%selement installerat";
+$a->strings["Image uploaded but image cropping failed."] = "Bilden laddades upp men beskärning misslyckades.";
+$a->strings["Image resize failed."] = "Ändring av bildstorlek misslyckades.";
+$a->strings["Shift-reload the page or clear browser cache if the new photo does not display immediately."] = "Shift-uppdatera sidan eller rensa webbläsarcachen om det nya fotot inte visas direkt.";
+$a->strings["Image exceeds size limit of %d"] = "Bilden överskrider storleksbegränsningen %d";
+$a->strings["Unable to process image."] = "Kunde inte behandla bilden.";
+$a->strings["Photo not available."] = "Fotot är inte tillgängligt.";
+$a->strings["Upload File:"] = "Ladda upp fil:";
+$a->strings["Select a profile:"] = "Välj en profil:";
+$a->strings["Upload Profile Photo"] = "Ladda upp profilfoto";
+$a->strings["skip this step"] = "hoppa över det här steget";
+$a->strings["select a photo from your photo albums"] = "välj ett foto från dina fotoalbum";
+$a->strings["Crop Image"] = "Beskär bild";
+$a->strings["Please adjust the image cropping for optimum viewing."] = "Justera bildens beskärning för bästa utseende.";
+$a->strings["Done Editing"] = "Klar med redigering";
+$a->strings["Image uploaded successfully."] = "Bilduppladdning lyckades.";
+$a->strings["Image upload failed."] = "Bilduppladdning misslyckades.";
+$a->strings["Image size reduction [%s] failed."] = "Krympning av bilden [%s] misslyckades.";
+$a->strings["Unable to locate original post."] = "Kunde inte hitta originalinlägget.";
+$a->strings["Empty post discarded."] = "Tomt inlägg förkastat.";
+$a->strings["Executable content type not permitted to this channel."] = "Körbart innehåll tillåts inte i den här kanalen.";
+$a->strings["System error. Post not saved."] = "Systemfel. Inlägget inte sparat.";
+$a->strings["You have reached your limit of %1$.0f top level posts."] = "Du har nått din gräns på %1$.0f toppnivåinlägg.";
+$a->strings["You have reached your limit of %1$.0f webpages."] = "Du har nått din gräns på %1$.0f webbsidor.";
+$a->strings["Contact not found."] = "Kontakten hittades inte.";
+$a->strings["Friend suggestion sent."] = "Vänförfrågan skickad.";
+$a->strings["Suggest Friends"] = "Föreslå vänner";
+$a->strings["Suggest a friend for %s"] = "Föreslå en vän för %s";
+$a->strings["Permission Denied."] = "Behörighet saknas.";
+$a->strings["File not found."] = "Filen hittas inte.";
+$a->strings["Edit file permissions"] = "Redigera filrättigheter";
+$a->strings["Set/edit permissions"] = "Ställ in/ändra behörigheter";
+$a->strings["Include all files and sub folders"] = "Inkludera alla filer och underkataloger";
+$a->strings["Return to file list"] = "Återgå till fillistan";
+$a->strings["Copy/paste this code to attach file to a post"] = "Kopiera/klistra in den här koden för att bifoga filen i ett inlägg";
+$a->strings["Copy/paste this URL to link file from a web page"] = "Kopiera/klistra in den här URL:en för att länka till filen från en webbsida";
+$a->strings["Help:"] = "Hjälp:";
+$a->strings["Not Found"] = "Hittas inte";
+$a->strings["network"] = "nätverk";
+$a->strings["No potential page delegates located."] = "Inga potentiella sid-ombud funna.";
+$a->strings["Delegate Page Management"] = "Delegera sidhantering";
+$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."] = "Ombud kan hantera alla aspekter av det här kontot/den här sidan förutom grundläggande kontoinställningar. Delegera inte ditt personliga konto till någon som du inte litar fullständigt på.";
+$a->strings["Existing Page Managers"] = "Befintliga sid-ansvariga";
+$a->strings["Existing Page Delegates"] = "Befintliga sid-ombud";
+$a->strings["Potential Delegates"] = "Potentiella ombud";
+$a->strings["Remove"] = "Ta bort";
+$a->strings["Add"] = "Lägg till";
+$a->strings["No entries."] = "Inga poster.";
+$a->strings["Channel added."] = "Kanal tillagd.";
+$a->strings["Collection created."] = "Krets skapad.";
+$a->strings["Could not create collection."] = "Kunde inte skapa krets.";
+$a->strings["Collection updated."] = "Kretsen uppdaterad.";
+$a->strings["Create a collection of channels."] = "Skapa en krets av kanaler.";
+$a->strings["Collection Name: "] = "Namn på krets: ";
+$a->strings["Members are visible to other channels"] = "Medlemmar kan ses av andra kanaler";
+$a->strings["Collection removed."] = "Krets borttagen.";
+$a->strings["Unable to remove collection."] = "Kunde inte ta bort krets.";
+$a->strings["Collection Editor"] = "Redigera krets";
+$a->strings["Members"] = "Medlemmar";
+$a->strings["All Connected Channels"] = "Alla anslutna kanaler";
+$a->strings["Click on a channel to add or remove."] = "Klicka på en kanal för att lägga till eller ta bort.";
+$a->strings["Red Matrix - &quot;The Network&quot;"] = "Red Matrix - &quot;Nätverket&quot;";
+$a->strings["Welcome to %s"] = "Välkommen till %s";
+$a->strings["No suggestions available. If this is a new site, please try again in 24 hours."] = "Inga förslag tillgängliga. Om det här är en ny server, försök igen om 24 timmar.";
+$a->strings["Your service plan only allows %d channels."] = "Din tjänstenivå tillåter bara %d kanaler.";
$a->strings["Nothing to import."] = "Inget att importera.";
$a->strings["Unable to download data from old server"] = "Kunde inte ladda ner data från den gamla servern";
$a->strings["Imported file is empty."] = "Den importerade filen är tom.";
@@ -1552,226 +1557,373 @@ $a->strings["Your old login email address"] = "Din gamla e-postadress för inlog
$a->strings["Your old login password"] = "Ditt gamla inloggningslösenord";
$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."] = "Ange i bägge fallen om den här hubben ska vara din nya primära adress eller om den gamla platsen ska fortsätta att ha den rollen. Du kommer att kunna posta från båda platser, men bara en kan vara primärt utrymme för filer, foton och media.";
$a->strings["Make this hub my primary location"] = "Gör den här hubben till min primära plats";
+$a->strings["Import existing posts if possible"] = "Importera befintliga inlägg om möjligt";
+$a->strings["%1\$s tagged %2\$s's %3\$s with %4\$s"] = "%1\$s taggade%2\$ss %3\$s med %4\$s";
+$a->strings["Tag removed"] = "Tagg borttagen";
+$a->strings["Remove Item Tag"] = "Ta bort innehållstagg";
+$a->strings["Select a tag to remove: "] = "Välj en tagg att ta bort: ";
+$a->strings["Theme settings updated."] = "Temainställningar uppdaterade.";
+$a->strings["Site"] = "Server";
+$a->strings["Accounts"] = "Konton";
+$a->strings["Channels"] = "Kanaler";
+$a->strings["Plugins"] = "Tillägg";
+$a->strings["Themes"] = "Teman";
+$a->strings["Server"] = "Server";
+$a->strings["Profile Config"] = "Profilkonfiguration";
+$a->strings["DB updates"] = "Databasuppdateringar";
+$a->strings["Logs"] = "Loggar";
+$a->strings["Plugin Features"] = "Tilläggsfunktioner";
+$a->strings["User registrations waiting for confirmation"] = "Användarregistreringar som behöver bekräftas";
+$a->strings["Message queues"] = "Meddelandeköer";
+$a->strings["Administration"] = "Administration";
+$a->strings["Summary"] = "Sammanfattning";
+$a->strings["Registered users"] = "Registrerade användare";
+$a->strings["Pending registrations"] = "Pågående registreringar";
+$a->strings["Version"] = "Version";
+$a->strings["Active plugins"] = "Aktiva tillägg";
+$a->strings["Site settings updated."] = "Serverinställningar uppdaterade.";
+$a->strings["mobile"] = "mobilt";
+$a->strings["experimental"] = "experimentellt";
+$a->strings["unsupported"] = "stöds ej";
+$a->strings["Yes - with approval"] = "Ja - med godkännande";
+$a->strings["My site is not a public server"] = "Min server är inte offentlig";
+$a->strings["My site has paid access only"] = "Min server har endast åtkomst mot betalning";
+$a->strings["My site has free access only"] = "Min server har endast gratis åtkomst";
+$a->strings["My site offers free accounts with optional paid upgrades"] = "Min server erbjuder gratis konton med uppgradering mot betalning";
+$a->strings["File upload"] = "Filuppladdning";
+$a->strings["Policies"] = "Policyer";
+$a->strings["Site name"] = "Servernamn";
+$a->strings["Banner/Logo"] = "Banner/logga";
+$a->strings["Administrator Information"] = "Administratörsinformation";
+$a->strings["Contact information for site administrators. Displayed on siteinfo page. BBCode can be used here"] = "Kontaktinfo till sidadministratörer. Visas på sidinfosidan. BBCode kan användas här";
+$a->strings["System language"] = "Systemspråk";
+$a->strings["System theme"] = "Systemtema";
+$a->strings["Default system theme - may be over-ridden by user profiles - <a href='#' id='cnftheme'>change theme settings</a>"] = "Förvalt systemtema - kan åsidosättas i användarprofiler - <a href='#' id='cnftheme'>ändra temainställningar</a>";
+$a->strings["Mobile system theme"] = "Mobilt systemtema";
+$a->strings["Theme for mobile devices"] = "Tema för mobila enheter";
+$a->strings["Enable Diaspora Protocol"] = "Aktivera protokoll för Diaspora";
+$a->strings["Communicate with Diaspora and Friendica - experimental"] = "Kommunicera med Diaspora och Friendica - experimentellt";
+$a->strings["Allow Feeds as Connections"] = "Tillåt flöden som kontakter";
+$a->strings["(Heavy system resource usage)"] = "(systemresurskrävande)";
+$a->strings["Maximum image size"] = "Maximal bildstorlek";
+$a->strings["Maximum size in bytes of uploaded images. Default is 0, which means no limits."] = "Maximal storlek i byte för uppladdade bilder. Standard är 0, vilket innebär ingen storleksbegränsning.";
+$a->strings["Does this site allow new member registration?"] = "Tillåter den här servern nya medlemmar att registrera sig?";
+$a->strings["Which best describes the types of account offered by this hub?"] = "Vilket beskriver bäst kontotypen som erbjuds på den här hubben?";
+$a->strings["Register text"] = "Registreringstext";
+$a->strings["Will be displayed prominently on the registration page."] = "Visas tydligt på registreringssidan.";
+$a->strings["Accounts abandoned after x days"] = "Konto övergivet efter x dagar";
+$a->strings["Will not waste system resources polling external sites for abandonded accounts. Enter 0 for no time limit."] = "Slösar inte systemresurser genom att fråga externa servrar efter övergivna konton. 0 innebär ingen tidsbegränsning.";
+$a->strings["Allowed friend domains"] = "Tillåtna vändomäner";
+$a->strings["Comma separated list of domains which are allowed to establish friendships with this site. Wildcards are accepted. Empty to allow any domains"] = "Kommaseparerad lista med domäner som tillåts att upprätta ett vänförhållande med den här servern. Jokertecken är tillåtna. Töm för att tillåta alla domäner.";
+$a->strings["Allowed email domains"] = "Tillåtna e-postdomäner";
+$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"] = "Kommaseparerad lista med domäner som tillåts i e-postadresser för registreringar på den här servern. Jokertecken är tillåtna. Töm för att tillåta alla domäner.";
+$a->strings["Block public"] = "Blockera offentlig åtkomst";
+$a->strings["Check to block public access to all otherwise public personal pages on this site unless you are currently logged in."] = "Välj för att blockera åtkomst till alla personliga sidor som annars skulle vara offentliga på den här servern om man inte är inloggad.";
+$a->strings["Verify Email Addresses"] = "Bekräfta e-postadress";
+$a->strings["Check to verify email addresses used in account registration (recommended)."] = "Välj för att bekräfta e-postadresser som används för kontoregistrering (rekommenderas).";
+$a->strings["Force publish"] = "Tvinga publicering";
+$a->strings["Check to force all profiles on this site to be listed in the site directory."] = "Välj för att tvinga alla profiler på den här servern att listas i serverkatalogen.";
+$a->strings["Disable discovery tab"] = "Inaktivera upptäck-fliken";
+$a->strings["Remove the tab in the network view with public content pulled from sources chosen for this site."] = "Ta bort fliken i nätverksvyn med offentligt innehåll som hämtas från källor valda för den här servern.";
+$a->strings["No login on Homepage"] = "Ingen inloggning på hemsidan";
+$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)."] = "Välj för att gömma inloggningsformuläret från serverns hemsida för oinloggade besökare (t.ex. när du lägger in hemsideinnehållet via serverkanalen).";
+$a->strings["Proxy user"] = "Proxyanvändare";
+$a->strings["Proxy URL"] = "Proxy-URL";
+$a->strings["Network timeout"] = "Nätverkstimeout";
+$a->strings["Value is in seconds. Set to 0 for unlimited (not recommended)."] = "Värde i sekunder. Sätt till 0 för obegränsat (ej rekommenderat).";
+$a->strings["Delivery interval"] = "Leveransintervall";
+$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."] = "Fördröj leveransprocesser som görs i bakgrunden så här många sekunder för att reducera systembelastningen. Rekommenderat: 4-5 för delade värdar, 2-3 för virtuella privata servrar. 0-1 för stora dedikerade servrar.";
+$a->strings["Poll interval"] = "Hämtningsintervall";
+$a->strings["Delay background polling processes by this many seconds to reduce system load. If 0, use delivery interval."] = "Fördröj hämtningsprocesser som görs i bakgrunden så här många sekunder för att reducera systembelastningen. Om 0 används leveransintervallet.";
+$a->strings["Maximum Load Average"] = "Maximal genomsnittsbelastning";
+$a->strings["Maximum system load before delivery and poll processes are deferred - default 50."] = "Maximal systembelastning innan leverans- och hämtningsprocesser skjuts upp - standard är 50.";
+$a->strings["No server found"] = "Ingen server hittad";
+$a->strings["ID"] = "ID";
+$a->strings["for channel"] = "för kanal";
+$a->strings["on server"] = "på server";
+$a->strings["Status"] = "Status";
+$a->strings["Update has been marked successful"] = "Uppdatering har markerats som genomförd";
+$a->strings["Executing %s failed. Check system logs."] = "Körning av %s misslyckades. Kontrollera systemloggarna.";
+$a->strings["Update %s was successfully applied."] = "Uppdatering %s genomfördes utan problem.";
+$a->strings["Update %s did not return a status. Unknown if it succeeded."] = "Uppdatering %s returnerade ingen status. Oklart om den lyckades.";
+$a->strings["Update function %s could not be found."] = "Uppdateringsfunktion %s kunde inte hittas.";
+$a->strings["No failed updates."] = "Inga misslyckade uppdateringar.";
+$a->strings["Failed Updates"] = "Misslyckade uppdateringar";
+$a->strings["Mark success (if update was manually applied)"] = "Markera som genomförd (om uppdateringen gjordes manuellt)";
+$a->strings["Attempt to execute this update step automatically"] = "Försök att köra den här uppdateringen automatiskt";
+$a->strings["%s user blocked/unblocked"] = array(
+ 0 => "%s användare blockerad/avblockerad",
+ 1 => "%s användare blockerade/avblockerade",
+);
+$a->strings["%s user deleted"] = array(
+ 0 => "%s användare borttagen",
+ 1 => "%s användare borttagna",
+);
+$a->strings["Account not found"] = "Konto hittas inte";
+$a->strings["User '%s' unblocked"] = "Användare '%s' avblockerad";
+$a->strings["User '%s' blocked"] = "Användare '%s' blockerad";
+$a->strings["Users"] = "Användare";
+$a->strings["select all"] = "välj alla";
+$a->strings["User registrations waiting for confirm"] = "Användarregistreringar som inväntar bekräftelse";
+$a->strings["Request date"] = "Ansökningsdatum";
+$a->strings["No registrations."] = "Inga registreringar.";
+$a->strings["Approve"] = "Godkänn";
+$a->strings["Deny"] = "Avslå";
+$a->strings["Register date"] = "Registreringsdatum";
+$a->strings["Last login"] = "Senaste inloggning";
+$a->strings["Expires"] = "Upphör att gälla";
+$a->strings["Service Class"] = "Tjänsteklass";
+$a->strings["Selected users will be deleted!\\n\\nEverything these users had posted on this site will be permanently deleted!\\n\\nAre you sure?"] = "Valda användare kommer att tas bort!\\n\\nAllt dessa användare har postat på den här servern kommer att raderas permanent!\\n\\nÄr du säker?";
+$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?"] = "Användaren {0} kommer att tas bort!\\n\\nAllt den här användaren har postat på den här servern kommer att raderas permanent!\\n\\nÄr du säker?";
+$a->strings["%s channel censored/uncensored"] = array(
+ 0 => "%s kanal censurerad/avcensurerad",
+ 1 => "%s kanaler censurerade/avcensurerade",
+);
+$a->strings["%s channel deleted"] = array(
+ 0 => "%s kanal borttagen",
+ 1 => "%s kanaler borttagna",
+);
+$a->strings["Channel not found"] = "Kanal hittas inte";
+$a->strings["Channel '%s' deleted"] = "Kanalen '%s' togs bort";
+$a->strings["Channel '%s' uncensored"] = "Kanal '%s' avcensurerad";
+$a->strings["Channel '%s' censored"] = "Kanal '%s' censurerad";
+$a->strings["Censor"] = "Censurera";
+$a->strings["Uncensor"] = "Avcensurera";
+$a->strings["UID"] = "UID";
+$a->strings["Selected channels will be deleted!\\n\\nEverything that was posted in these channels on this site will be permanently deleted!\\n\\nAre you sure?"] = "Valda kanaler kommer att tas bort!\\n\\nAllt som har postats i de kanalerna på den här servern kommer att raderas permanent!\\n\\nÄr du säker?";
+$a->strings["The channel {0} will be deleted!\\n\\nEverything that was posted in this channel on this site will be permanently deleted!\\n\\nAre you sure?"] = "Kanalen {0} kommer att tas bort!\\n\\nAllt som har postats i den här kanalen på den här servern kommer att raderas permanent!\\n\\nÄr du säker?";
+$a->strings["Plugin %s disabled."] = "Tillägg %s inaktiverat.";
+$a->strings["Plugin %s enabled."] = "Tillägg %s aktiverat.";
+$a->strings["Disable"] = "Inaktivera";
+$a->strings["Enable"] = "Aktivera";
+$a->strings["Toggle"] = "Växla";
+$a->strings["Author: "] = "Författare:";
+$a->strings["Maintainer: "] = "Underhållare:";
+$a->strings["No themes found."] = "Inga teman funna.";
+$a->strings["Screenshot"] = "Skärmdump";
+$a->strings["[Experimental]"] = "[Experimentellt]";
+$a->strings["[Unsupported]"] = "[Utan support]";
+$a->strings["Log settings updated."] = "Logginställningar uppdaterade.";
+$a->strings["Clear"] = "Rensa";
+$a->strings["Debugging"] = "Avlusning";
+$a->strings["Log file"] = "Loggfil";
+$a->strings["Must be writable by web server. Relative to your Red top-level directory."] = "Måste vara skrivbar för webbservern. Anges relativt Reds toppkatalog.";
+$a->strings["Log level"] = "Loggnivå";
+$a->strings["New Profile Field"] = "Nytt profilfält";
+$a->strings["Field nickname"] = "Smeknamn på fält";
+$a->strings["System name of field"] = "Systemnamn på fält";
+$a->strings["Input type"] = "Datatyp";
+$a->strings["Field Name"] = "Fältnamn";
+$a->strings["Label on profile pages"] = "Beteckning på profilsidor";
+$a->strings["Help text"] = "Hjälptext";
+$a->strings["Additional info (optional)"] = "Ytterligare info (frivilligt)";
+$a->strings["Field definition not found"] = "Fältdefinition hittades inte";
+$a->strings["Edit Profile Field"] = "Redigera profilfält";
+$a->strings["Location not found."] = "Platsen hittades inte.";
+$a->strings["Primary location cannot be removed."] = "Huvudplatsen kan inte tas bort.";
+$a->strings["No locations found."] = "Inga platser hittades.";
+$a->strings["Manage Channel Locations"] = "Hantera kanalplatser";
+$a->strings["Location (address)"] = "Plats (adress)";
+$a->strings["Primary Location"] = "Huvudplats";
+$a->strings["Drop location"] = "Ta bort plats";
+$a->strings["Unable to lookup recipient."] = "Kunde inte hitta mottagare.";
+$a->strings["Unable to communicate with requested channel."] = "Kunde inte kommunicera med den begärda kanalen.";
+$a->strings["Cannot verify requested channel."] = "Kan inte bekräfta den begärda kanalen.";
+$a->strings["Selected channel has private message restrictions. Send failed."] = "Den valda kanalen har restriktioner för privata meddelanden. Misslyckades att skicka.";
+$a->strings["Message deleted."] = "Meddelande borttaget.";
+$a->strings["Message recalled."] = "Meddelande återkallat.";
+$a->strings["Send Private Message"] = "Skicka privat meddelande.";
+$a->strings["To:"] = "Till:";
+$a->strings["Subject:"] = "Ämne:";
+$a->strings["Your message:"] = "Ditt meddelande:";
+$a->strings["Send"] = "Skicka";
+$a->strings["Message not found."] = "Meddelandet hittades inte.";
+$a->strings["Delete message"] = "Ta bort meddelande";
+$a->strings["Recall message"] = "Ã…terkalla meddelande";
+$a->strings["Message has been recalled."] = "Meddelandet har återkallats.";
+$a->strings["Private Conversation"] = "Privat konversation";
+$a->strings["Delete conversation"] = "Ta bort konversation";
+$a->strings["No secure communications available. You <strong>may</strong> be able to respond from the sender's profile page."] = "Ingen säker kommunikationskanal tillgänglig. Du kan <strong>möjligtvis</strong> svara från avsändarens profilsida.";
+$a->strings["Send Reply"] = "Skicka svar";
+$a->strings["Total invitation limit exceeded."] = "Gränsen för totalt antal inbjudningar överskriden.";
+$a->strings["%s : Not a valid email address."] = "%s: Inte en giltig e-postadress.";
+$a->strings["Please join us on Red"] = "GÃ¥ med oss i Red";
+$a->strings["Invitation limit exceeded. Please contact your site administrator."] = "Inbjudningsgränsen överskriden. Kontakta din serveradministratör.";
+$a->strings["%s : Message delivery failed."] = "%s : Leverans av meddelande misslyckades.";
+$a->strings["%d message sent."] = array(
+ 0 => "%d meddelande sänt.",
+ 1 => "%d meddelanden sända.",
+);
+$a->strings["You have no more invitations available"] = "Du har inga fler inbjudningar kvar";
+$a->strings["Send invitations"] = "Skicka inbjudan";
+$a->strings["Enter email addresses, one per line:"] = "Ange e-postadresser, en per rad:";
+$a->strings["Please join my community on RedMatrix."] = "Gå med mig i gemenskapen på RedMatrix.";
+$a->strings["You will need to supply this invitation code: "] = "Du kommer att behöva den här inbjudningskoden: ";
+$a->strings["1. Register at any RedMatrix location (they are all inter-connected)"] = "1. Skapa konto på en RedMatrix-server (alla är ihopkopplade)";
+$a->strings["2. Enter my RedMatrix network address into the site searchbar."] = "2. Ange min RedMatrix-adress i webbplatsens sökruta.";
+$a->strings["or visit "] = "eller besök ";
+$a->strings["3. Click [Connect]"] = "3. Klicka [Ta kontakt]";
$a->strings["You have created %1$.0f of %2$.0f allowed channels."] = "Du har skapat %1$.0f av %2$.0f tillåtna kanaler.";
$a->strings["Create a new channel"] = "Skapa en ny kanal";
-$a->strings["Channel Manager"] = "Kanalhanterare";
$a->strings["Current Channel"] = "Nuvarande kanal";
$a->strings["Attach to one of your channels by selecting it."] = "Anslut till en av dina kanaler genom att välja den.";
$a->strings["Default Channel"] = "Standardkanal";
$a->strings["Make Default"] = "Gör till standard";
-$a->strings["Total votes"] = "Totala röster";
+$a->strings["[Embedded content - reload page to view]"] = "[Inbäddat innehåll - ladda om sidan för att visa]";
+$a->strings["Help with this feature"] = "Hjälp för den här funktionen";
+$a->strings["Layout Name"] = "Layoutnamn";
+$a->strings["Remote privacy information not available."] = "Icke-lokal integritetsinformation är inte tillgänglig";
+$a->strings["Visible to:"] = "Kan ses av:";
+$a->strings["No connections."] = "Inga kontakter.";
+$a->strings["Visit %s's profile [%s]"] = "Besök %ss profil [%s]";
+$a->strings["View Connnections"] = "Visa kontakter";
+$a->strings["Hub not found."] = "Hubb hittades inte.";
+$a->strings["Total votes"] = "Totalt antal röster";
$a->strings["Average Rating"] = "Genomsnittsbetyg";
+$a->strings["No such group"] = "Ingen sådan grupp";
+$a->strings["Search Results For:"] = "Sökresultat för:";
+$a->strings["Collection is empty"] = "Kretsen är tom";
+$a->strings["Collection: "] = "Krets: ";
+$a->strings["Connection: "] = "Kontakt:";
+$a->strings["Invalid connection."] = "Ogiltig kontakt.";
+$a->strings["Wall Photos"] = "Väggfoton";
$a->strings["Profile Match"] = "Profilträff";
$a->strings["No keywords to match. Please add keywords to your default profile."] = "Inga nyckelord att matcha mot. Lägg till några nyckelord i din standardprofil.";
$a->strings["is interested in:"] = "är intresserad av:";
$a->strings["No matches"] = "Inga träffar";
-$a->strings["Away"] = "Borta";
-$a->strings["Online"] = "Online";
-$a->strings["OpenID protocol error. No ID returned."] = "Protokollfel för OpenID. Inget ID returnerades.";
-$a->strings["Welcome %s. Remote authentication successful."] = "Välkommen %s. Fjärrautentisering lyckades.";
-$a->strings["Edit Layout"] = "Redigera layout";
-$a->strings["Delete layout?"] = "Ta bort layout?";
-$a->strings["Delete Layout"] = "Ta bort layout";
-$a->strings["Remote authentication blocked. You are logged into this site locally. Please logout and retry."] = "Fjärrautentisering blockerades. Du är inloggad på den här servern lokalt. Logga ut och försök igen.";
-$a->strings["Fetching URL returns error: %1\$s"] = "Hämtning av URL returnerade fel: %1\$s";
-$a->strings["Image uploaded but image cropping failed."] = "Bilden laddades upp men beskärning misslyckades.";
-$a->strings["Image resize failed."] = "Ändring av bildstorlek misslyckades.";
-$a->strings["Shift-reload the page or clear browser cache if the new photo does not display immediately."] = "Shift-uppdatera sidan eller rensa webbläsarcachen om det nya fotot inte visas direkt.";
-$a->strings["Image exceeds size limit of %d"] = "Bilden överskrider storleksbegränsningen %d";
-$a->strings["Unable to process image."] = "Kunde inte behandla bilden.";
-$a->strings["Photo not available."] = "Fotot är inte tillgängligt.";
-$a->strings["Upload File:"] = "Ladda upp fil:";
-$a->strings["Select a profile:"] = "Välj en profil:";
-$a->strings["Upload Profile Photo"] = "Ladda upp profilfoto";
-$a->strings["Upload"] = "Ladda upp";
-$a->strings["skip this step"] = "hoppa över det här steget";
-$a->strings["select a photo from your photo albums"] = "välj ett foto från dina fotoalbum";
-$a->strings["Crop Image"] = "Beskär bild";
-$a->strings["Please adjust the image cropping for optimum viewing."] = "Justera bildens beskärning för bästa utseende.";
-$a->strings["Done Editing"] = "Klar med redigering";
-$a->strings["Image uploaded successfully."] = "Bilduppladdning lyckades.";
-$a->strings["Image upload failed."] = "Bilduppladdning misslyckades.";
-$a->strings["Image size reduction [%s] failed."] = "Krympning av bilden [%s] misslyckades.";
-$a->strings["Blocked"] = "Blockerade";
-$a->strings["Ignored"] = "Ignorerade";
-$a->strings["Hidden"] = "Dolda";
-$a->strings["Archived"] = "Arkiverade";
-$a->strings["All"] = "Alla";
-$a->strings["Unconnected"] = "Ej anslutna";
-$a->strings["Suggest new connections"] = "Föreslå nya kontakter";
-$a->strings["New Connections"] = "Nya kontakter";
-$a->strings["Show pending (new) connections"] = "Visa väntande (nya) kontakter";
-$a->strings["Show all connections"] = "Visa alla kontakter";
-$a->strings["Unblocked"] = "Ej blockerade";
-$a->strings["Only show unblocked connections"] = "Visa endast ej blockerade kontakter";
-$a->strings["Only show blocked connections"] = "Visa endast blockerade kontakter";
-$a->strings["Only show ignored connections"] = "Visa endast ignorerade kontakter";
-$a->strings["Only show archived connections"] = "Visa endast arkiverade kontakter";
-$a->strings["Only show hidden connections"] = "Visa endast dolda kontakter";
-$a->strings["Only show one-way connections"] = "Visa endast enkelriktade kontakter";
-$a->strings["%1\$s [%2\$s]"] = "%1\$s [%2\$s]";
-$a->strings["Edit contact"] = "Redigera kontakt";
-$a->strings["Search your connections"] = "Sök bland dina kontakter";
-$a->strings["Finding: "] = "Sökning efter: ";
+$a->strings["Menu updated."] = "Meny uppdaterad.";
+$a->strings["Unable to update menu."] = "Kunde inte uppdatera meny.";
+$a->strings["Menu created."] = "Meny skapad.";
+$a->strings["Unable to create menu."] = "Kunde inte skapa meny.";
+$a->strings["Manage Menus"] = "Hantera menyer";
+$a->strings["Drop"] = "Ta bort";
+$a->strings["Bookmarks allowed"] = "Bokmärken tillåtna";
+$a->strings["Create a new menu"] = "Skapa en ny meny";
+$a->strings["Delete this menu"] = "Ta bort den här menyn";
+$a->strings["Edit menu contents"] = "Redigera menyinnehåll";
+$a->strings["Edit this menu"] = "Redigera den här menyn";
+$a->strings["New Menu"] = "Ny meny";
+$a->strings["Menu name"] = "Menynamn";
+$a->strings["Must be unique, only seen by you"] = "MÃ¥ste vara unikt, ses endast av dig";
+$a->strings["Menu title"] = "Menytitel";
+$a->strings["Menu title as seen by others"] = "Menytitel som andra ser den";
+$a->strings["Allow bookmarks"] = "Tillåt bokmärken";
+$a->strings["Menu may be used to store saved bookmarks"] = "Menyn kan användas för att spara bokmärken";
+$a->strings["Menu deleted."] = "Meny borttagen.";
+$a->strings["Menu could not be deleted."] = "Menyn kunde inte tas bort.";
+$a->strings["Edit Menu"] = "Redigera meny";
+$a->strings["Add or remove entries to this menu"] = "Lägg till eller ta bort menyval";
+$a->strings["Conversation removed."] = "Konversation borttagen.";
+$a->strings["No messages."] = "Inga meddelanden.";
+$a->strings["D, d M Y - g:i A"] = "D, j M Y - H:i";
+$a->strings["Add a Channel"] = "Lägg till en kanal";
+$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."] = "En kanal är din egen samling av relaterade webbsidor. En kanal kan användas för att innehålla sociala nätverksprofiler, bloggar, konversationsgrupper och forum, fansidor, och mycket mer. Du kan skapa så många kanaler som din tjänsteleverantör tillåter.";
+$a->strings["Examples: \"Bob Jameson\", \"Lisa and her Horses\", \"Soccer\", \"Aviation Group\" "] = "Exempel: \"Bob Jameson\", \"Lisa och hennes hästar\", \"Fotboll\", \"Flyggruppen\" ";
+$a->strings["Choose a short nickname"] = "Välj ett kort smeknamn";
+$a->strings["Your nickname will be used to create an easily remembered channel address (like an email address) which you can share with others."] = "Ditt smeknamn används för att skapa en kanaladress som är lätt att komma ihåg (som en e-postadress) som du kan dela med andra.";
+$a->strings["Or <a href=\"import\">import an existing channel</a> from another location"] = "Eller <a href=\"import\">importera en befintlig kanal</a> från en annan plats";
+$a->strings["Channel Type"] = "Kanaltyp";
+$a->strings["Please choose a channel type (such as social networking or community forum) and privacy requirements so we can select the best permissions for you"] = "Välj en kanaltyp (som till exempel socialt nätverkande eller gemenskapsforum) och integritetskrav, så kan vi välja de bästa behörigheterna åt dig";
$a->strings["Invalid request identifier."] = "Ogiltigt ID på förfrågan.";
$a->strings["Discard"] = "Förkasta";
$a->strings["No more system notifications."] = "Inga fler systemnotifieringar.";
$a->strings["System Notifications"] = "Systemnotifieringar";
+$a->strings["Xchan Lookup"] = "Xchan-sökning";
+$a->strings["Lookup xchan beginning with (or webbie): "] = "Sök efter xchan som börjar med (eller webbie): ";
+$a->strings["invalid target signature"] = "ogiltig målsignatur";
$a->strings["Unable to find your hub."] = "Kunde inte hitta din hubb.";
$a->strings["Post successful."] = "Sändning lyckades.";
-$a->strings["Edit Webpage"] = "Redigera webbsida";
-$a->strings["Delete webpage?"] = "Ta bort webbsida?";
-$a->strings["Delete Webpage"] = "Ta bort webbsida";
-$a->strings["Channel added."] = "Kanal tillagd.";
-$a->strings["Poke/Prod"] = "Puffa/stöt till";
-$a->strings["poke, prod or do other things to somebody"] = "puffa, stöt till eller gör andra saker mot någon";
-$a->strings["Recipient"] = "Mottagare";
-$a->strings["Choose what you wish to do to recipient"] = "Välj vad du önskar göra med mottagaren";
-$a->strings["Make this post private"] = "Gör det här inlägget privat";
-$a->strings["Wall Photos"] = "Väggfoton";
-$a->strings["Insufficient permissions. Request redirected to profile page."] = "Otillräckliga behörigheter. Förfrågan omdirigerad till profilsidan.";
-$a->strings["Contact not found."] = "Kontakten hittades inte.";
-$a->strings["Friend suggestion sent."] = "Vänförfrågan skickad.";
-$a->strings["Suggest Friends"] = "Föreslå vänner";
-$a->strings["Suggest a friend for %s"] = "Föreslå en vän för %s";
+$a->strings["Gender: "] = "Kön:";
$a->strings["Status: "] = "Status: ";
-$a->strings["Sexual Preference: "] = "Sexuell preferens: ";
$a->strings["Homepage: "] = "Hemsida: ";
$a->strings["Hometown: "] = "Hemort: ";
$a->strings["About: "] = "Om: ";
+$a->strings["Public Forum:"] = "Offentligt forum:";
$a->strings["Keywords: "] = "Nyckelord: ";
-$a->strings["Permission Denied."] = "Behörighet saknas.";
-$a->strings["File not found."] = "Filen hittas inte.";
-$a->strings["Edit file permissions"] = "Redigera filrättigheter";
-$a->strings["Include all files and sub folders"] = "Inkludera alla filer och underkataloger";
-$a->strings["Return to file list"] = "Återgå till fillistan";
-$a->strings["Copy/paste this code to attach file to a post"] = "Kopiera/klistra in den här koden för att bifoga filen i ett inlägg";
-$a->strings["Copy/paste this URL to link file from a web page"] = "Kopiera/klistra in den här URL:en för att länka till filen från en webbsida";
-$a->strings["Download"] = "Ladda ner";
-$a->strings["Used: "] = "Använt: ";
-$a->strings["[directory]"] = "[katalog]";
-$a->strings["Limit: "] = "Gräns: ";
-$a->strings["No suggestions available. If this is a new site, please try again in 24 hours."] = "Inga förslag tillgängliga. Om det här är en ny server, försök igen om 24 timmar.";
-$a->strings["Conversation removed."] = "Konversation borttagen.";
-$a->strings["No messages."] = "Inga meddelanden.";
-$a->strings["D, d M Y - g:i A"] = "D, j M Y - H:i";
-$a->strings["Public Sites"] = "Offentliga servrar";
-$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."] = "De listade servrarna tillåter offentlig registrering i Red Matrix. Alla servrar i matrisen är sammankopplade, så medlemskap i en av dem medför medlemskap i matrisen som helhet. Vissa servrar kan kräva abonnemang eller erbjuda uppdelade tjänstenivåer. Leverantörslänkarna <strong>kan</strong> ge ytterligare detaljer.";
-$a->strings["Site URL"] = "Server-URL";
-$a->strings["Access Type"] = "Ã…tkomsttyp";
-$a->strings["Registration Policy"] = "Registreringspolicy";
-$a->strings["Maximum daily site registrations exceeded. Please try again tomorrow."] = "Maximalt antal dagliga serverregistreringar överskridet. Försök igen i morgon.";
-$a->strings["Please indicate acceptance of the Terms of Service. Registration failed."] = "Välj huruvida du accepterar användarvillkoren. Registrering misslyckades.";
-$a->strings["Passwords do not match."] = "Lösenorden stämmer inte överens.";
-$a->strings["Registration successful. Please check your email for validation instructions."] = "Registrering lyckades. Kontrollera din e-post för valideringsinstruktioner.";
-$a->strings["Your registration is pending approval by the site owner."] = "Din registrering väntar på att bli godkänd av serverägaren.";
-$a->strings["Your registration can not be processed."] = "Din registrering kan inte behandlas.";
-$a->strings["Registration on this site/hub is by approval only."] = "Registrering på den här servern/hubben måste godkännas.";
-$a->strings["<a href=\"pubsites\">Register at another affiliated site/hub</a>"] = "<a href=\"pubsites\">Registrera dig på en annan ansluten server/hubb</a>";
-$a->strings["This site has exceeded the number of allowed daily account registrations. Please try again tomorrow."] = "Antal dagliga registreringar som tillåts på den här servern har överskridits. Försök igen i morgon.";
-$a->strings["Terms of Service"] = "användarvillkor";
-$a->strings["I accept the %s for this website"] = "Jag accepterar den här webbplatsens %s";
-$a->strings["I am over 13 years of age and accept the %s for this website"] = "Jag är över 13 år och accepterar den här webbplatsens %s";
-$a->strings["Membership on this site is by invitation only."] = "Medlemskap på den här servern kan endast fås genom inbjudan.";
-$a->strings["Please enter your invitation code"] = "Ange din inbjudningskod";
-$a->strings["Your email address"] = "Din e-postadress";
-$a->strings["Choose a password"] = "Välj ett lösenord";
-$a->strings["Please re-enter your password"] = "Ange lösenordet igen";
-$a->strings["Please login."] = "Logga in.";
-$a->strings["Remove This Channel"] = "Ta bort den här kanalen";
-$a->strings["This will completely remove this channel from the network. Once this has been done it is not recoverable."] = "Det här kommer att ta bort den här kanalen helt från nätverket. När det är gjort går det inte att återställa den.";
-$a->strings["Please enter your password for verification:"] = "Ange ditt lösenord för att bekräfta:";
-$a->strings["Remove this channel and all its clones from the network"] = "Ta bort den här kanalen och alla dess kloner från nätverket";
-$a->strings["By default only the instance of the channel located on this hub will be removed from the network"] = "Som standard kommer bara den här hubbens instans av kanalen att tas bort från nätverket";
-$a->strings["Remove Channel"] = "Ta bort kanal";
+$a->strings["Finding:"] = "Sökning efter:";
+$a->strings["next page"] = "nästa sida";
+$a->strings["previous page"] = "föregående sida";
+$a->strings["No entries (some entries may be hidden)."] = "Inga resultat (vissa resultat kan vara dolda).";
$a->strings["Page owner information could not be retrieved."] = "Information om sidans ägare kunde inte hittas.";
$a->strings["Album not found."] = "Albumet hittades inte.";
$a->strings["Delete Album"] = "Ta bort album";
$a->strings["Delete Photo"] = "Ta bort foto";
$a->strings["No photos selected"] = "Inga foton valda";
$a->strings["Access to this item is restricted."] = "Åtkomst till den här posten är begränsat.";
-$a->strings["You have used %1$.2f Mbytes of %2$.2f Mbytes photo storage."] = "Du har använt %1$.2f MB av %2$.2f MB fotoutrymme.";
-$a->strings["You have used %1$.2f Mbytes of photo storage."] = "Du har använt %1$.2f MB fotoutrymme.";
+$a->strings["%1$.2f MB of %2$.2f MB photo storage used."] = "%1$.2f MB av %2$.2f MB fotolagring använt.";
+$a->strings["%1$.2f MB photo storage used."] = "%1$.2f MB fotolagring använt.";
$a->strings["Upload Photos"] = "Ladda upp foton";
-$a->strings["New album name: "] = "Namn på nytt album: ";
-$a->strings["or existing album name: "] = "eller befintligt albumnamn: ";
+$a->strings["Enter a new album name"] = "Ange ett nytt albumnamn";
+$a->strings["or select an existing one (doubleclick)"] = "eller välj ett befintligt (dubbelklicka)";
$a->strings["Do not show a status post for this upload"] = "Visa inte en statusuppdatering för den här uppladdningen";
+$a->strings["Album name could not be decoded"] = "Albumnamn kunde inte tolkas";
$a->strings["Contact Photos"] = "Kontaktfoton";
-$a->strings["Edit Album"] = "Redigera album";
$a->strings["Show Newest First"] = "Visa nyast först";
$a->strings["Show Oldest First"] = "Visa äldst först";
$a->strings["View Photo"] = "Visa foto";
+$a->strings["Edit Album"] = "Redigera album";
$a->strings["Permission denied. Access to this item may be restricted."] = "Behörighet saknas. Åtkomst till den här posten kan vara begränsat.";
$a->strings["Photo not available"] = "Foto inte tillgängligt";
$a->strings["Use as profile photo"] = "Använd som profilfoto";
+$a->strings["Private Photo"] = "Privat foto";
$a->strings["View Full Size"] = "Visa fullstorlek";
$a->strings["Edit photo"] = "Redigera foto";
$a->strings["Rotate CW (right)"] = "Rotera medurs (höger)";
$a->strings["Rotate CCW (left)"] = "Rotera moturs (vänster)";
-$a->strings["New album name"] = "Nytt albumnamn";
$a->strings["Caption"] = "Bildtext";
$a->strings["Add a Tag"] = "Lägg till en tagg";
-$a->strings["Example: @bob, @Barbara_Jensen, @jim@example.com, #California, #camping"] = "Exempel: @bob, @Barbara_Jensen, @jim@example.com, #California, #camping";
+$a->strings["Example: @bob, @Barbara_Jensen, @jim@example.com"] = "Exempel: @bob, @Barbara_Jensen, @jim@example.com";
+$a->strings["Flag as adult in album view"] = "Flagga som olämpligt för barn i albumvyn";
$a->strings["In This Photo:"] = "PÃ¥ fotot:";
$a->strings["View Album"] = "Visa album";
$a->strings["Recent Photos"] = "Nya foton";
-$a->strings["Mood"] = "Sinnesstämning";
-$a->strings["Set your current mood and tell your friends"] = "Ange din nuvarande sinnesstämning och visa för dina vänner";
$a->strings["sent you a private message"] = "skickade ett privat meddelande till dig";
$a->strings["added your channel"] = "lade till din kanal";
$a->strings["posted an event"] = "skapade en händelse";
+$a->strings["App installed."] = "App installerad.";
+$a->strings["Malformed app."] = "Felaktig app.";
+$a->strings["Embed code"] = "Bädda in kod";
+$a->strings["Edit App"] = "Redigera app";
+$a->strings["Create App"] = "Skapa app";
+$a->strings["Name of app"] = "Namn på app";
+$a->strings["Location (URL) of app"] = "Adress (URL) för app";
+$a->strings["Photo icon URL"] = "Fotoikon URL";
+$a->strings["80 x 80 pixels - optional"] = "80 x 80 pixlar - valfri";
+$a->strings["Version ID"] = "Versions-ID";
+$a->strings["Price of app"] = "Pris på app";
+$a->strings["Location (URL) to purchase app"] = "Adress (URL) för att köpa app";
+$a->strings["Poll"] = "Opinionsundersökning";
+$a->strings["View Results"] = "Visa resultat";
+$a->strings["Account removals are not allowed within 48 hours of changing the account password."] = "Borttagning av konto tillåts inte inom 48 timmar efter att kontolösenordet har ändrats.";
+$a->strings["Remove This Account"] = "Ta bort kontot";
+$a->strings["This will completely remove this account including all its channels from the network. Once this has been done it is not recoverable."] = "Det här kommer att ta bort kontot fullständigt från nätverket, inklusive alla dess kanaler. När detta har gjorts går det inte att ångra.";
+$a->strings["Remove this account, all its channels and all its channel clones from the network"] = "Ta bort kontot, alla dess kanaler och alla kanalkopior från nätverket";
+$a->strings["By default only the instances of the channels located on this hub will be removed from the network"] = "Som standard tas bara instanser av kanaler som finns på den här servern bort från nätverket";
+$a->strings["No service class restrictions found."] = "Inga tjänsteklassbegränsningar hittades.";
+$a->strings["Schema Default"] = "Schemats standard";
+$a->strings["Sans-Serif"] = "Sans-serif";
+$a->strings["Monospace"] = "Monospace";
$a->strings["Theme settings"] = "Temainställningar";
$a->strings["Set scheme"] = "Välj variant";
-$a->strings["Narrow navbar"] = "Smal navigeringslist";
-$a->strings["Navigation bar background colour"] = "Navigeringslistens bakgrundsfärg";
-$a->strings["Navigation bar gradient top colour"] = "Övre gradientfärg i navigeringslisten";
-$a->strings["Navigation bar gradient bottom colour"] = "Undre gradientfärg i navigeringslisten";
-$a->strings["Navigation active button gradient top colour"] = "Övre gradientfärg på aktiv knapp i navigeringslisten";
-$a->strings["Navigation active button gradient bottom colour"] = "Undre gradientfärg på aktiv knapp i navigeringslisten";
-$a->strings["Navigation bar border colour "] = "Färg på navigeringslistens kant";
-$a->strings["Navigation bar icon colour "] = "Färg på ikoner i navigeringslisten";
-$a->strings["Navigation bar active icon colour "] = "Färg på aktiv ikon i navigeringslisten";
-$a->strings["link colour"] = "Länkfärg";
-$a->strings["Set font-colour for banner"] = "Välj textfärg för sidhuvudet";
-$a->strings["Set the background colour"] = "Välj bakgrundsfärg";
-$a->strings["Set the background image"] = "Välj bakgrundsbild";
-$a->strings["Set the background colour of items"] = "Välj bakgrundsfärg för inlägg";
-$a->strings["Set the opacity of items"] = "Välj opacitet för inlägg";
-$a->strings["Set the basic colour for item icons"] = "Välj basfärg för inläggsikoner";
-$a->strings["Set the hover colour for item icons"] = "Välj färg på inläggsikon under muspekare";
-$a->strings["Set font-size for the entire application"] = "Välj textstorlek för hela applikationen";
$a->strings["Set font-size for posts and comments"] = "Välj textstorlek för inlägg och kommentarer";
-$a->strings["Set font-colour for posts and comments"] = "Välj textfärg för inlägg och kommentarer";
-$a->strings["Set radius of corners"] = "Välj hörnradie";
-$a->strings["Set shadow depth of photos"] = "Välj skuggdjup för foton";
-$a->strings["Set maximum width of conversation regions"] = "Välj maxbredd på konversationsfält";
-$a->strings["Center conversation regions"] = "Centrera konversationsfält";
-$a->strings["Set minimum opacity of nav bar - to hide it"] = "Välj lägsta opacitet för navigeringslisten - för att dölja den";
-$a->strings["Set size of conversation author photo"] = "Välj storlek på foto för trådskapare";
-$a->strings["Set size of followup author photos"] = "Välj storlek på svarande personers foton";
-$a->strings["Sloppy photo albums"] = "Oordnade fotoalbum";
-$a->strings["Are you a clean desk or a messy desk person?"] = "Föredrar du ett tomt eller stökigt skrivbord?";
-$a->strings["Schema Default"] = "Temavariantens standard";
-$a->strings["Sans-Serif"] = "Sans-serif";
-$a->strings["Monospace"] = "Fast bredd";
$a->strings["Set font face"] = "Välj teckensnitt";
$a->strings["Set iconset"] = "Välj ikontema";
-$a->strings["Set big shadow size, default 15px 15px 15px"] = "Välj stor skuggstorlek, standard 15px 15px 15px";
+$a->strings["Set big shadow size, default 15px 15px 15px"] = "Välj stor skuggstorlek, standard 15px 15px 15px ";
$a->strings["Set small shadow size, default 5px 5px 5px"] = "Välj liten skuggstorlek, standard 5px 5px 5px";
-$a->strings["Set shadow colour, default #000"] = "Välj skuggfärg, standard #000";
+$a->strings["Set shadow color, default #000"] = "Välj skuggfärg, standard #000";
$a->strings["Set radius size, default 5px"] = "Välj radie, standard 5px";
$a->strings["Set line-height for posts and comments"] = "Välj radhöjd för inlägg och kommentarer";
$a->strings["Set background image"] = "Välj bakgrundsbild";
-$a->strings["Set background attachment"] = "Välj bakgrundsfixering";
-$a->strings["Set background colour"] = "Välj bakgrundsfärg";
+$a->strings["Set background attachment"] = "Välj fixerad bakgrund";
+$a->strings["Set background color"] = "Välj bakgrundsfärg";
$a->strings["Set section background image"] = "Välj bakgrundsbild för avsnitt";
-$a->strings["Set section background colour"] = "Välj bakgrundsfärg för avsnitt";
-$a->strings["Set colour of items - use hex"] = "Välj färg på inlägg - använd hex";
-$a->strings["Set colour of links - use hex"] = "Välj färg på länkar - använd hex";
-$a->strings["Set max-width for items. Default 400px"] = "Välj maxbredd för inlägg. Standard 400px";
-$a->strings["Set min-width for items. Default 240px"] = "Välj minbredd för inlägg. Standard 240px";
+$a->strings["Set section background color"] = "Välj bakgrundsfärg för avsnitt";
+$a->strings["Set color of items - use hex"] = "Välj färg på inlägg - använd hex";
+$a->strings["Set color of links - use hex"] = "Välj färg på länkar - använd hex";
+$a->strings["Set max-width for items. Default 400px"] = "Välj största bredd för inlägg. Standard 400px";
+$a->strings["Set min-width for items. Default 240px"] = "Välj minsta bredd för inlägg. Standard 240px";
$a->strings["Set the generic content wrapper width. Default 48%"] = "Välj bredd på fältet för allmänt innehåll. Standard 48%";
-$a->strings["Set colour of fonts - use hex"] = "Välj textfärg - använd hex";
+$a->strings["Set color of fonts - use hex"] = "Välj textfärg - använd hex";
$a->strings["Set background-size element"] = "Välj bakgrundsskala";
$a->strings["Item opacity"] = "Inläggsopacitet";
$a->strings["Display post previews only"] = "Visa endast förhandsgranskning av inlägg";
@@ -1783,9 +1935,37 @@ $a->strings["Right offset of the section element"] = "Höger offset för avsnitt
$a->strings["Section width"] = "Avsnittsbredd";
$a->strings["Left offset of the aside"] = "Vänster offset för sidoelement";
$a->strings["Right offset of the aside element"] = "Höger offset för sidoelement";
-$a->strings["None"] = "Inget";
-$a->strings["Header image"] = "Rubrikbild";
-$a->strings["Header image only on profile pages"] = "Rubrikbild endast på profilsidor";
+$a->strings["Light (Red Matrix default)"] = "Light (standard för Red Matrix)";
+$a->strings["Narrow navbar"] = "Smal navigeringslist";
+$a->strings["Navigation bar background color"] = "Navigeringslistens bakgrundsfärg";
+$a->strings["Navigation bar gradient top color"] = "Övre gradientfärg i navigeringslisten";
+$a->strings["Navigation bar gradient bottom color"] = "Undre gradientfärg i navigeringslisten";
+$a->strings["Navigation active button gradient top color"] = "Övre gradientfärg på aktiv knapp i navigeringslisten";
+$a->strings["Navigation active button gradient bottom color"] = "Undre gradientfärg på aktiv knapp i navigeringslisten";
+$a->strings["Navigation bar border color "] = "Färg på navigeringslistens kant";
+$a->strings["Navigation bar icon color "] = "Färg på ikoner i navigeringslisten";
+$a->strings["Navigation bar active icon color "] = "Färg på aktiv ikon i navigeringslisten";
+$a->strings["link color"] = "Länkfärg";
+$a->strings["Set font-color for banner"] = "Välj textfärg för sidhuvudet";
+$a->strings["Set the background color"] = "Välj bakgrundsfärg";
+$a->strings["Set the background image"] = "Välj bakgrundsbild";
+$a->strings["Set the background color of items"] = "Välj bakgrundsfärg för inlägg";
+$a->strings["Set the background color of comments"] = "Välj bakgrundsfärg för kommentarer";
+$a->strings["Set the border color of comments"] = "Välj kantfärg för kommentarer";
+$a->strings["Set the indent for comments"] = "Välj indrag för kommentarer";
+$a->strings["Set the basic color for item icons"] = "Välj basfärg för inläggsikoner";
+$a->strings["Set the hover color for item icons"] = "Välj färg på inläggsikon under muspekare";
+$a->strings["Set font-size for the entire application"] = "Välj textstorlek för hela applikationen";
+$a->strings["Set font-color for posts and comments"] = "Välj textfärg för inlägg och kommentarer";
+$a->strings["Set radius of corners"] = "Välj hörnradie";
+$a->strings["Set shadow depth of photos"] = "Välj skuggdjup för foton";
+$a->strings["Set maximum width of conversation regions"] = "Välj maxbredd på konversationsfält";
+$a->strings["Center conversation regions"] = "Centrera konversationsfält";
+$a->strings["Set minimum opacity of nav bar - to hide it"] = "Välj lägsta opacitet för navigeringslisten - för att dölja den";
+$a->strings["Set size of conversation author photo"] = "Välj storlek på foto för trådskapare";
+$a->strings["Set size of followup author photos"] = "Välj storlek på svarande personers foton";
+$a->strings["Sloppy photo albums"] = "Oordnade fotoalbum";
+$a->strings["Are you a clean desk or a messy desk person?"] = "Föredrar du ett tomt eller stökigt skrivbord?";
$a->strings["Update %s failed. See error logs."] = "Uppdatering %s misslyckades. Se felloggar.";
$a->strings["Update Error at %s"] = "Uppdateringsfel på %s";
$a->strings["Create an account to access services and applications within the Red Matrix"] = "Skapa ett konto för att komma åt tjänster och applikationer inom Red Matrix";
diff --git a/view/sv/update_fail_eml.tpl b/view/sv/update_fail_eml.tpl
index 26fc33db0..0abbf2cfa 100644
--- a/view/sv/update_fail_eml.tpl
+++ b/view/sv/update_fail_eml.tpl
@@ -1,13 +1,13 @@
Hej,
Jag är webbservern på {{$sitename}};
-Red Matrix-utvecklarna släppte nyligen uppdateringen {{$update}},
-men när jag försökte installera den gick något fruktansvärt fel.
-Detta behöver fixas snart och kräver en människas ingripande.
-Kontakta en Red-utvecklare om du inte kan lösa problemet själv.
-Min databas kan ha gått sönder.
+Red Matrix-utvecklarna släppte nyligen uppdateringen {{$update}},
+men när jag försökte installera den gick något fruktansvärt fel.
+Detta behöver fixas snart och kräver en människas ingripande.
+Kontakta en Red-utvecklare om du inte kan lösa problemet själv.
+Min databas kan ha gått sönder.
-Felmeddelandet är '{{$error}}'.
+Felmeddelandet är '{{$error}}'.
-Ursäkta besväret,
- din webbserver på {{$siteurl}}
+Ursäkta besväret,
+ din webbserver på {{$siteurl}} \ No newline at end of file
diff --git a/view/sv/wall_received_eml.tpl b/view/sv/wall_received_eml.tpl
deleted file mode 100644
index fc450a06d..000000000
--- a/view/sv/wall_received_eml.tpl
+++ /dev/null
@@ -1,16 +0,0 @@
-$username,
-
-'$from' har skrivit på din profilsida.
-
------
-$body
------
-
-Logga in på $siteurl för att kolla eller ta bort:
-
-$display
-
-Hälsningar,
-$sitename admin
-
-
diff --git a/view/theme/redbasic/css/blockmode.css b/view/theme/redbasic/css/blockmode.css
new file mode 100644
index 000000000..cc1db209e
--- /dev/null
+++ b/view/theme/redbasic/css/blockmode.css
@@ -0,0 +1,15 @@
+
+.wall-item-content.conv-list-mode {
+ max-width: 280px;
+ height:200px;
+ min-height: 200px;
+ overflow: hidden;
+}
+
+.thread-wrapper.toplevel_item.conv-list-mode {
+ width: 300px;
+ height: 300px;
+ float: left;
+ margin-left: 5px;
+ margin-bottom: 35px;
+}
diff --git a/view/theme/redbasic/css/style.css b/view/theme/redbasic/css/style.css
index bcbaec3d0..961572652 100644
--- a/view/theme/redbasic/css/style.css
+++ b/view/theme/redbasic/css/style.css
@@ -9,10 +9,11 @@
/* generals */
html {
height: 100%;
+ font-size: 100%;
}
body {
- font-family: arial,freesans,sans-serif;
+ font-family: sans-serif, arial, freesans;
font-size: $body_font_size;
background-color: $bgcolour;
background-image: url('$background_image');
@@ -22,8 +23,21 @@ body {
margin: 0px;
height: 100%;
}
+
+h1, .h1, h2, .h2 {
+ font-size: 1.667em;
+}
+
+h3, .h3, h4, .h4 {
+ font-size: 1.334em;
+}
+
+h5, .h5, h6, .h6 {
+ font-size: 0.75rem;
+}
+
.jslider {
- font-family: arial,freesans,sans-serif;
+ font-family: sans-serif, arial, freesans;
}
abbr {
@@ -31,6 +45,10 @@ abbr {
}
/* icons */
+.tool-icons {
+ color: $toolicon_colour;
+}
+
.icon {
background-color: transparent ;
background-repeat: no-repeat;
@@ -48,7 +66,7 @@ abbr {
}
a, a:visited, a:link, .fakelink, .fakelink:visited, .fakelink:link {
- font-weight: bold;
+ font-weight: $link_font_weight;
color: $link_colour;
text-decoration: none;
}
@@ -59,21 +77,30 @@ a:hover, .fakelink:hover { color: $link_colour; text-decoration: underline; }
cursor: pointer;
}
+a.btn-default {
+ color: #333;
+}
+
+a.btn-success {
+ color: #fff;
+}
input[type="text"],
input[type="password"],
input[type="submit"],
+input[type="file"],
select,
textarea {
- font-family: arial,freesans,sans-serif;
+ font-family: sans-serif, arial, freesans;
font-size: $body_font_size;
}
input {
+ padding: 5px;
+ line-height: 1.5;
border: 1px solid $input_border;
-moz-border-radius: $radiuspx;
border-radius: $radiuspx;
- padding: 3px;
}
input[type="submit"] {
@@ -84,10 +111,6 @@ input[type="submit"] {
padding: 6px 12px;
}
-input[type="submit"]:hover {
- text-decoration: underline;
-}
-
button, input, optgroup, select, textarea {
color: #000;
}
@@ -97,15 +120,11 @@ pre code {
}
code {
- font-family: Courier, monospace;
font-size: 1em;
- display: block;
- overflow: auto;
+ padding: 5px;
border: 1px solid $code_borderc;
background: $code_bgcolour;
color: $code_txtcolour;
- padding: 10px;
- margin-top: 20px;
}
pre {
@@ -114,13 +133,7 @@ pre {
border:1px solid $pre_borderc;
}
-blockquote {
- background-color: $blockquote_bgcolour;
- border-left: 4px solid $blockquote_bordercolour;
- padding: 0.4em;
- color: $blockquote_colour;
- margin-left: 20px;
-}
+
.ccollapse-wrapper {
border: 1px solid #CCC;
@@ -149,6 +162,19 @@ header {
filter:alpha(opacity=$nav_percent_min_opacity);
}
+#powered-by {
+ font-size: 0.5rem;
+ position: absolute;
+ top: 50px;
+ left: 16px;
+}
+
+#powered-by img {
+ margin-top: -2px;
+ height: 10px;
+ width: 10px;
+}
+
.error-message {
color: #FF0000;
font-size: 1.1em;
@@ -244,21 +270,6 @@ footer {
margin-bottom: 15px;
}
-aside ul {
- list-style-type: none;
- margin: 0;
- padding: 0;
- /* border-left: 1px solid #eee; This and a 5px left border on the li is "interesting"
- to delineate the list from the surrounding bits
- */
-}
-
-aside li {
- margin-top: 5px;
- /* in order to achieve consistent indentation cross-browser, set margin-left on the li element e.g. */
- /* margin-left: 10px; */
-}
-
/*TODO: we should use one class for all this. */
.group-selected, .fileas-selected, .categories-selected, .search-selected, .active {
color: $selected_active_colour !important;
@@ -358,10 +369,6 @@ aside li {
clear: both;
}
-
-.aprofile dt {
- font-weight: bold;
-}
#page-profile .title {
font-weight: bold;
}
@@ -406,15 +413,6 @@ aside li {
font-weight: normal;
}
-#profile-like {
- margin-left: 15px;
-}
-
-#profile-like-wrapper {
- margin-bottom: 15px;
-}
-
-
.fn {
font-weight: bold;
font-size: 16px;
@@ -431,11 +429,6 @@ aside li {
border-radius: $radiuspx;
}
-.vcard .title {
- margin-bottom: 10px;
-
-}
-
.vcard dl {
margin-top: 10px;
margin-bottom: 0px;
@@ -500,6 +493,11 @@ aside li {
height: 197px;
}
+#profile-photo-wrapper {
+ margin-top: 10px;
+}
+
+
#profile-in-dir-yes-label,
#profile-in-dir-no-label,
#profile-in-netdir-yes-label,
@@ -640,7 +638,7 @@ aside li {
list-style: none;
}
-.profile-match-photo img, #photo-photo img, .directory-photo-img, .photo-album-photo, .photo-top-photo {
+.profile-match-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;
@@ -675,10 +673,6 @@ aside li {
margin: auto;
}
-.photo-top-image-wrapper, .photo-album-image-wrapper {
- width: 240px;
-}
-
.photo-top-photo-link, .photo-album-photo-link {
display: block;
width: 100%;
@@ -688,15 +682,6 @@ aside li {
overflow: hidden;
}
-.photo-album-image-wrapper .caption {
- background-color: $acpopup_bgcolour;
- border-bottom: 2px solid $acpopup_bordercolour;
-}
-
-.photo-top-album-name {
- background-color: $acpopup_bgcolour;
-}
-
#photos-upload-perms-menu, #photos-upload-perms-menu:visited, #photos-upload-perms-menu:link {
color: #8888FF;
text-decoration: none;
@@ -709,16 +694,10 @@ aside li {
cursor: pointer;
}
-#photo-caption {
- font-size: 110%;
- font-weight: bold;
-}
-
-#in-this-photo-text {
- color: #0080FF;
+#photo-view-wrapper {
+ background-color: $item_colour;
}
-
#side-follow-wrapper {
margin-top: 20px;
}
@@ -859,12 +838,9 @@ aside li {
margin-bottom: 25px;
}
-#search-submit {
- margin-left: 15px;
-}
-#search-box {
- margin-bottom: 25px;
+#conversation-end {
+ clear: both;
}
#nav-searchbar {
@@ -886,6 +862,7 @@ aside li {
}
#nav-search-text {
+ font-size: 12px;
height: 20px;
margin: 15px;
padding: 0px 5px 0px 5px;
@@ -903,19 +880,6 @@ aside li {
font-family: FontAwesome;
}
-#search-text {
- border: 1px solid #ccc;
- font-size: 1em;
-}
-
-#search-text::-webkit-input-placeholder {
- font-family: FontAwesome;
-}
-
-#search-text::-moz-placeholder {
- font-family: FontAwesome;
-}
-
.profile-clear {
clear: both;
}
@@ -1253,21 +1217,6 @@ aside li {
text-decoration: underline;
}
-#lang-select-icon {
- cursor: pointer;
- position: absolute;
- left: 4px;
-/*because of the shape, if this is lined up properly it looks like it's lined up wrong...
-lining it up too high is the only way to make it look correctly aligned. The human
-brain is weird like that */
- top: 2px;
-}
-
-#lang-select-icon:hover {
- opacity: 1;
- filter:alpha(opacity=100);
-}
-
.notif-image {
height: 80px;
width: 80px;
@@ -1357,38 +1306,6 @@ brain is weird like that */
.field.radio .field_help { margin-left: 0px; }
-
-
-/*
- * UPDATE
- */
-.popup {
- width: 100%; height: 100%;
- top:0px; left:0px;
- position: absolute;
- display: none;
-}
-
-.popup .background {
- background-color: rgba(0,0,0,128);
- opacity: 0.5;
- width: 100%; height: 100%;
- position: absolute;
- top:0px; left:0px;
-}
-.popup .panel {
- top:25%;left:25%;width:50%;height:50%;
- padding: 1em;
- position: absolute;
- border: 4px solid #000000;
- background-color: #FFFFFF;
-}
-.popup .panel .panel_text { display: block; overflow: auto; height: 80%; }
-.popup .panel .panel_in { width: 100%; height: 100%; position: relative; }
-.popup .panel .panel_actions { width: 100%; bottom: 4px; left: 0px; position: absolute; }
-.panel_text .progress { width: 50%; overflow: hidden; height: auto; border: 1px solid #cccccc; margin-bottom: 5px}
-.panel_text .progress span {float: right; display: block; width: 25%; background-color: #eeeeee; text-align: right;}
-
/**
* OAuth
*/
@@ -1416,63 +1333,6 @@ brain is weird like that */
float: left;
}
-/**
- * ICONS
- */
-.iconspacer {
- display: block; width: 16px; height: 16px;
-/* visibility: hidden; */
-}
-
-.iconspacer:hover {
-/* visibility: visible; */
-}
-
-.icon {
- display: block; width: 16px; height: 16px;
- background-image: url('../../../../images/icons.png');
-}
-.article { background-position: 0px 0px;}
-.audio { background-position: -16px 0px;}
-.block { background-position: -32px 0px;}
-.drop { background-position: -48px 0px;}
-.drophide { background-position: -64px 0px;}
-.delete { background-position: -64px 0px;}
-.edit { background-position: -80px 0px;}
-.camera { background-position: -96px 0px;}
-.dislike { background-position: -112px 0px;}
-.like { background-position: -128px 0px;}
-.link { background-position: -144px 0px;}
-
-.globe { background-position: 0px -16px;}
-.noglobe { background-position: -16px -16px;}
-.no { background-position: -32px -16px;}
-.pause { background-position: -48px -16px;}
-.play { background-position: -64px -16px;}
-.pencil { background-position: -80px -16px;}
-.small-pencil { background-position: -96px -16px;}
-.recycle { background-position: -112px -16px;}
-.remote-link { background-position: -128px -16px;}
-.share { background-position: -144px -16px;}
-
-.tools { background-position: 0px -32px;}
-.lock { background-position: -16px -32px;}
-.unlock { background-position: -32px -32px; }
-.video { background-position: -48px -32px;}
-.youtube { background-position: -64px -32px;}
-.attach { background-position: -80px -32px; }
-.language { background-position: -96px -32px; }
-.prev { background-position: -112px -32px; }
-.next { background-position: -128px -32px; }
-.on { background-position: -144px -32px; }
-
-.off { background-position: 0px -48px; }
-.tagged { background-position: -48px -48px; }
-.yellow { background-position: -64px -48px; }
-
-.icon.dim { opacity: 0.3;filter:alpha(opacity=30); }
-
-
.body-attach {
margin-top: 10px;
@@ -1538,7 +1398,7 @@ div.jGrowl div.jGrowl-notification {
#nav-search-text-ac .autocomplete {
position: fixed;
- top: 51px;
+ top: 50px;
border: 1px solid $nav_bd;
border-top: none;
}
@@ -1548,6 +1408,7 @@ div.jGrowl div.jGrowl-notification {
margin-left: $radiuspx;
border: 1px solid #ccc;
border-top: none;
+ width: calc(197px - $radiuspx * 2) !important;
}
#recip-ac .autocomplete,
@@ -1607,14 +1468,6 @@ a.rconnect:hover {
color: #0080FF;
}
-#profiles-menu li a {
- color: #ffffff;
-}
-
-#profiles-menu li a:hover {
- color: #000000;
-}
-
/* header */
header {
@@ -1798,17 +1651,6 @@ header {
font-size : 2.8em !important;
}
-.profile-thing-list {
- list-style-type: none;
-}
-
-.profile-thing-list img {
- margin-bottom: 5px;
-}
-
-.profile-thing-list li {
- margin-bottom: 15px;
-}
div.page-list-item {
margin: 20px;
@@ -1904,44 +1746,23 @@ img.mail-list-sender-photo {
max-width: $converse_width;
}
-#jot-title,
-#jot-category,
-#jot-pagetitle {
+.jothidden {
font-weight: bold;
- border: solid 1px #ffffff;
border-radius: $radiuspx;
}
-#jot-category::-webkit-input-placeholder {
+.jothidden input::-webkit-input-placeholder {
font-weight: bold;
}
-#jot-category:-moz-placeholder {
+.jothidden input::-moz-placeholder {
font-weight: bold;
}
-#jot-title::-webkit-input-placeholder {
- font-weight: bold;
-}
-
-#jot-title:-moz-placeholder {
- font-weight: bold;
-}
-
-#jot-pagetitle::-webkit-input-placeholder {
- font-weight: bold;
+.jothidden >input, .jothidden >input {
+ border: 1px solid #fff;
}
-
-#jot-pagetitle:-moz-placeholder {
- font-weight: bold;
-}
-
-#jot-title:hover,
-#jot-title:focus,
-#jot-pagetitle:hover,
-#jot-pagetitle:focus,
-#jot-category:hover,
-#jot-category:focus {
+.jothidden >input:hover, .jothidden >input:focus {
border: 1px solid #cccccc;
}
@@ -1984,6 +1805,10 @@ img.mail-list-sender-photo {
/* conversation */
+.wall-item-title {
+ font-size: $font_size;
+}
+
.hide-comments-outer,
.thread-wrapper .wall-item-comment-wrapper,
.wall-item-content-wrapper.comment {
@@ -1997,13 +1822,16 @@ img.mail-list-sender-photo {
.wall-item-content-wrapper {
background-color: $item_colour;
padding: 10px;
-}
-
-.wall-item-content-wrapper {
border-top-right-radius: $radiuspx;
border-top-left-radius: $radiuspx;
}
+.generic-content-wrapper-styled {
+ background-color: $genericcontent_bgcolour;
+ padding: 10px;
+ border-radius: $radiuspx;
+}
+
.comment .wall-item-body {
padding-left: $comment_padding;
}
@@ -2073,11 +1901,11 @@ img.mail-list-sender-photo {
.wall-item-ago {
color: #777;
- font-size: 0.8em;
+ font-size: 0.833em;
}
.wall-item-ago i {
- font-size: 0.8em;
+ font-size: 0.833em;
}
.wall-item-content {
@@ -2095,7 +1923,7 @@ img.mail-list-sender-photo {
}
.comment-icon {
- font-size: 0.8em;
+ font-size: 0.833em;
color: $toolicon_colour;
}
@@ -2121,7 +1949,7 @@ img.mail-list-sender-photo {
border-bottom-right-radius: $radiuspx;
border-bottom-left-radius: $radiuspx;
text-align: center;
- font-weight: bold;
+ font-size: $body_font_size;
color: $link_colour;
cursor: pointer;
}
@@ -2152,10 +1980,6 @@ img.mail-list-sender-photo {
-moz-border-radius: $radiuspx;
}
-#saved-search-ul {
- list-style-type: none;
-}
-
.fileas-ul {
list-style-type: none;
}
@@ -2165,15 +1989,6 @@ img.mail-list-sender-photo {
border-radius: $radiuspx;
-moz-border-radius: $radiuspx;
}
-/*
-.categories-ul {
- list-style-type: none;
-}
-
-#sidebar-group-list ul, #posted-date-selector {
- list-style-type: none;
-}
-*/
.profile-thing-list img, .thing-show img, .thing-edit-links a {
margin-top: 8px;
@@ -2184,6 +1999,10 @@ img.mail-list-sender-photo {
background-color: $abookself_bgcolour;
}
+.abook-pending-contact, .abook-permschange {
+ background: $abook_changebg;
+}
+
.online-now {
color: red;
cursor: pointer;
@@ -2200,22 +2019,8 @@ img.mail-list-sender-photo {
/* 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;
}
@@ -2260,8 +2065,24 @@ nav .dropdown-menu>li>a:hover,nav .dropdown-menu>li>a:focus{
}
/* bootstrap overrides */
+
+
blockquote {
- font-size: 1em;
+ font-size: $font_size;
+ font-style: italic;
+ background-color: $blockquote_bgcolour;
+ border-left: 3px solid $blockquote_bordercolour;
+ padding: 0.4em;
+ color: $blockquote_colour;
+ margin: 0px 0px 0px 20px;
+}
+
+.badge {
+ border-radius: $radiuspx;
+}
+
+nav .badge:hover {
+ background-color: #999;
}
.dropdown-menu {
@@ -2281,6 +2102,11 @@ blockquote {
$dropdown_bgimghover
}
+aside .nav > li > a:hover, aside .nav > li > a:focus {
+ text-decoration: $navtabs_decohover;
+ background-color: $navaside_bghover;
+}
+
.dropdown-menu img {
border-radius: $radiuspx;
}
@@ -2311,6 +2137,7 @@ blockquote {
.navbar-inverse .navbar-nav > li > a {
+ font-size: 12px;
color: $nav_icon_colour;
text-shadow: 0px 0px 0px;
}
@@ -2404,28 +2231,61 @@ blockquote {
.btn-default {
background-color: $editbuttons_bgcolour;
border-color: $editbuttons_bordercolour;
- color: $editbuttons_colour;
+ color: $editbuttons_colour;
text-shadow: none;
box-shadow: none;
}
.btn-default:hover, .btn-default:focus, .btn-default:active .btn-default.active {
- background-color: $editbuttons_bghover;
- border-color: $editbuttons_bordercolourhover;
- color: $input_colourhover;
- text-decoration: $input_decohover;
+ background-color: $editbuttons_bghover;
+ border-color: $editbuttons_bordercolourhover;
+ color: $input_colourhover;
+ text-decoration: $input_decohover;
}
.btn-default.btn-sm:hover, .btn-default.btn-sm:focus, .btn-default.btn-sm:active .btn-default.btn-sm.active {
text-decoration: none;
}
+.alert-info {
+ color: $alert_txtcolour;
+ background-color:$alert_bgcolour;
+ border-color: $alert_bordercol;
+ background-image: linear-gradient(to bottom, $alert_bgcolour 0px, $alert_gradientcol 100%);
+}
+
.well {
background-color: $advperm_bgcolour;
border: 1px solid $advperm_bordercol;
background-image: linear-gradient(to bottom, $advperm_gradientcol 0px, $advperm_bgcolour 100%);
}
+.section-title-wrapper {
+ padding: 7px 10px;
+ background-color: $item_colour;
+ border-top-left-radius: $radiuspx;
+ border-top-right-radius: $radiuspx;
+ margin-bottom: 3px;
+}
+
+.section-title-wrapper h2 {
+ margin-top: 0px;
+ margin-bottom: 0px;
+}
+
+.section-content-tools-wrapper {
+ padding: 7px 10px;
+ background-color: $comment_item_colour;
+ margin-bottom: 3px;
+}
+
+.section-content-wrapper {
+ padding: 7px 10px;
+ background-color: $comment_item_colour;
+ border-bottom-left-radius: $radiuspx;
+ border-bottom-right-radius: $radiuspx;
+}
+
@media screen and (max-width: 767px) {
aside#region_1 {
background: rgba(0, 0, 0, .1);
@@ -2467,3 +2327,48 @@ blockquote {
}
}
+
+/* release the navbar in landscape view on small devices */
+@media screen and (max-height: 320px) {
+ .navbar-fixed-top {
+ position: absolute;
+ }
+}
+
+.shareable_element_text {
+ height: 300px;
+ width: 300px;
+}
+
+.bb_observer {
+ color: red;
+}
+
+.bb_observer img {
+ border: 3px solid red !important;
+}
+
+.bootstrap-tagsinput .tag:before {
+ /* Copied from icon-asterisk, is there a better way to do it? */
+ font-family: FontAwesome;
+ font-weight: normal;
+ font-style: normal;
+ text-decoration: inherit;
+ content:"\f069";
+}
+
+/* Modified original CSS to match input in Redbasic */
+.bootstrap-tagsinput {
+ border-color:#fff;
+ background-color: #fff;
+ box-shadow: none;
+ display: inline-block;
+ border-radius: $radiuspx;
+ cursor: text;
+ padding: 0 6px;
+ width: 70% !important;
+}
+
+.jothidden .bootstrap-tagsinput:hover, .jothidden .bootstrap-tagsinput:focus {
+ border: 1px solid #cccccc;
+}
diff --git a/view/theme/redbasic/php/style.php b/view/theme/redbasic/php/style.php
index 4ffdcbef8..50ec9613b 100644
--- a/view/theme/redbasic/php/style.php
+++ b/view/theme/redbasic/php/style.php
@@ -64,7 +64,7 @@ if(! $a->install) {
// should leave it for admins to define for themselves.
if (! $schema) {
if(file_exists('view/theme/redbasic/schema/default.php')) {
- $schemefile = 'view/theme/redbasic/schema/' . 'default.php';
+ $schemefile = 'view/theme/redbasic/schema/default.php';
require_once ($schemefile);
}
}
@@ -108,7 +108,11 @@ if(! $a->install) {
if (! $navtabs_bgchover)
$navtabs_bgchover = "rgba(238,238,238,0.8)";
if (! $link_colour)
- $link_colour = "#428BCA";
+ $link_colour = "#337AB7";
+ if (! $navaside_bghover)
+ $navaside_bghover = "#eee";
+ if (! $link_font_weight)
+ $link_font_weight = "normal";
if (! $banner_colour)
$banner_colour = "#fff";
if (! $search_background)
@@ -121,6 +125,8 @@ if(! $a->install) {
$item_colour = "rgba(238,238,238,0.8)";
if (! $comment_item_colour)
$comment_item_colour = "rgba(254,254,254,0.4)";
+ if (! $genericcontent_bgcolour)
+ $genericcontent_bgcolour = $comment_item_colour;
if (! $comment_border_colour)
$comment_border_colour = "rgba(238,238,238,0.8)";
if (! $toolicon_colour)
@@ -142,17 +148,17 @@ if(! $a->install) {
if (! $widget_brdrcolour)
$widget_brdrcolour = "rgba(238,238,238,0.8)";
if (! $blockquote_colour)
- $blockquote_colour = "#000";
+ $blockquote_colour = "#4d4d4d";
if (! $blockquote_bgcolour)
- $blockquote_bgcolour = "#f4f8f9";
+ $blockquote_bgcolour = "";
if (! $blockquote_bordercolour)
- $blockquote_bordercolour = "#dae4ee";
+ $blockquote_bordercolour = "#ccc";
if (! $code_borderc)
- $code_borderc = "#444";
+ $code_borderc = "#ccc";
if (! $code_bgcolour)
- $code_bgcolour = "#EEE";
+ $code_bgcolour = "#ccc";
if (! $code_txtcolour)
- $code_txtcolour = "#444";
+ $code_txtcolour = "#000";
if (! $pre_borderc)
$pre_borderc = "#ccc";
if (! $pre_bgcolour)
@@ -220,7 +226,7 @@ if(! $a->install) {
if (! $input_linksubmit)
$input_linksubmit = "#0080FF";
if (! $input_border)
- $input_border = "#666";
+ $input_border = "#ccc";
if (! $input_colourhover)
$input_colourhover = "#333";
if (! $input_decohover)
@@ -250,16 +256,24 @@ if(! $a->install) {
$reply_photo = '32px';
if(! $infomess_bgcolour)
$infomess_bgcolour = "#F0F0F0";
- if(! $advperm_bgcolour)
- $advperm_bgcolour = "#F5F5F5";
- if(! $advperm_bordercol)
- $advperm_bordercol = "#E3E3E3";
- if(! $advperm_gradientcol)
- $advperm_gradientcol = "#E8E8E8";
- if(! $cal_bgcolour)
- $cal_bgcolour = "#FCF8E3";
- if(! $fancybox_bgcolour)
- $fancybox_bgcolour = "#FFF";
+ if(! $alert_txtcolour)
+ $alert_txtcolour = "#31708F";
+ if(! $alert_bgcolour)
+ $alert_bgcolour = "#D9EDF7";
+ if(! $alert_bordercol)
+ $alert_bordercol = "#BCE8F1";
+ if(! $alert_gradientcol)
+ $alert_gradientcol = "#B9DEF0";
+ if(! $advperm_bgcolour)
+ $advperm_bgcolour = "#F5F5F5";
+ if(! $advperm_bordercol)
+ $advperm_bordercol = "#E3E3E3";
+ if(! $advperm_gradientcol)
+ $advperm_gradientcol = "#E8E8E8";
+ if(! $cal_bgcolour)
+ $cal_bgcolour = "#FCF8E3";
+ if(! $fancybox_bgcolour)
+ $fancybox_bgcolour = "#FFF";
if (!$comment_padding)
$comment_padding="0px";
if (!$comment_border_left)
@@ -276,6 +290,8 @@ if(! $a->install) {
$dirpopup_txtcol="";
if (!$dirpopup_linkcol)
$dirpopup_linkcol="";
+ if (!$abook_changebg)
+ $abook_changebg="orange";
if($nav_min_opacity === false || $nav_min_opacity === '') {
$nav_float_min_opacity = 1.0;
@@ -310,11 +326,14 @@ $options = array (
'$navtabs_linkchover' => $navtabs_linkchover,
'$navtabs_bgchover' => $navtabs_bgchover,
'$navtabs_decohover' => $navtabs_decohover,
+'$navaside_bghover' => $navaside_bghover,
'$link_colour' => $link_colour,
+'$link_font_weight' => $link_font_weight,
'$banner_colour' => $banner_colour,
'$search_background' => $search_background,
'$bgcolour' => $bgcolour,
'$background_image' => $background_image,
+'$genericcontent_bgcolour' => $genericcontent_bgcolour,
'$item_colour' => $item_colour,
'$comment_item_colour' => $comment_item_colour,
'$comment_border_colour' => $comment_border_colour,
@@ -382,6 +401,10 @@ $options = array (
'$top_photo' => $top_photo,
'$reply_photo' => $reply_photo,
'$infomess_bgcolour' => $infomess_bgcolour,
+'$alert_txtcolour' => $alert_txtcolour,
+'$alert_bgcolour' => $alert_bgcolour,
+'$alert_bordercol' => $alert_bordercol,
+'$alert_gradientcol' => $alert_gradientcol,
'$advperm_bgcolour' => $advperm_bgcolour,
'$advperm_bordercol' => $advperm_bordercol,
'$advperm_gradientcol' => $advperm_gradientcol,
@@ -400,6 +423,7 @@ $options = array (
'$admintable_hoverbgcol' => $admintable_hoverbgcol,
'$dirpopup_txtcol' => $dirpopup_txtcol,
'$dirpopup_linkcol' => $dirpopup_linkcol,
+'$abook_changebg' => $abook_changebg,
);
echo str_replace(array_keys($options), array_values($options), $x);
diff --git a/view/theme/redbasic/php/theme_init.php b/view/theme/redbasic/php/theme_init.php
index 2da04a389..dd4542e8a 100644
--- a/view/theme/redbasic/php/theme_init.php
+++ b/view/theme/redbasic/php/theme_init.php
@@ -4,15 +4,14 @@ head_add_css('library/font_awesome/css/font-awesome.min.css');
head_add_css('library/bootstrap/css/bootstrap-theme.min.css');
head_add_css('library/bootstrap/css/bootstrap.min.css');
head_add_css('view/css/bootstrap-red.css');
-head_add_css('library/bootstrap-datetimepicker/css/bootstrap-datetimepicker.min.css');
+head_add_css('library/datetimepicker/jquery.datetimepicker.css');
//head_add_css('library/colorpicker/css/colorpicker.css');
head_add_css('library/bootstrap-colorpicker/dist/css/bootstrap-colorpicker.min.css');
require_once('view/php/theme_init.php');
head_add_js('library/bootstrap/js/bootstrap.min.js');
head_add_js('library/bootstrap/js/bootbox.min.js');
-head_add_js('library/bootstrap-datetimepicker/js/moment.js');
-head_add_js('library/bootstrap-datetimepicker/js/bootstrap-datetimepicker.min.js');
+head_add_js('library/datetimepicker/jquery.datetimepicker.js');
//head_add_js('library/colorpicker/js/colorpicker.js');
head_add_js('library/bootstrap-colorpicker/dist/js/bootstrap-colorpicker.js');
//head_add_js('library/bootstrap-colorpicker/src/js/docs.js');
diff --git a/view/theme/redbasic/schema/dark.php b/view/theme/redbasic/schema/dark.php
index 69fcf403f..51a6d23a4 100644
--- a/view/theme/redbasic/schema/dark.php
+++ b/view/theme/redbasic/schema/dark.php
@@ -34,8 +34,12 @@
$navtabs_bgchover = "#222";
if (! $navtabs_decohover)
$navtabs_decohover = "underline";
+ if (! $navaside_bghover)
+ $navaside_bghover = "#222";
if (! $link_colour)
$link_colour = "#fff";
+ if (! $link_font_weight)
+ $link_font_weight = "bold";
if (! $selected_active_colour)
$selected_active_colour = "#fff";
if (! $selected_active_deco)
@@ -50,6 +54,8 @@
$item_colour = "rgba(28,28,28,0.8)";
if (! $comment_item_colour)
$comment_item_colour = "rgba(18,18,18,0.4)";
+ if (! $genericcontent_bgcolour)
+ $genericcontent_bgcolour = "rgba(28,28,28,0.8)";
if (! $comment_border_colour)
$comment_border_colour = "rgba(28,28,28,0.8)";
if (! $toolicon_colour)
@@ -154,19 +160,29 @@
$abookself_bgcolour = "#251111";
if(! $infomess_bgcolour)
$infomess_bgcolour = "#333";
- if(! $advperm_bgcolour)
- $advperm_bgcolour = "#1E1E1E";
- if(! $advperm_bordercol)
- $advperm_bordercol = "#222";
- if(! $advperm_gradientcol)
- $advperm_gradientcol = "#111";
- if(! $cal_bgcolour)
- $cal_bgcolour = "#333";
- if(! $fancybox_bgcolour)
- $fancybox_bgcolour = "#1E1E1E";
+ if(! $alert_txtcolour)
+ $alert_txtcolour = "#CCC";
+ if(! $alert_bgcolour)
+ $alert_bgcolour = "#333";
+ if(! $alert_bordercol)
+ $alert_bordercol = "#444";
+ if(! $alert_gradientcol)
+ $alert_gradientcol = "#333";
+ if(! $advperm_bgcolour)
+ $advperm_bgcolour = "#1E1E1E";
+ if(! $advperm_bordercol)
+ $advperm_bordercol = "#222";
+ if(! $advperm_gradientcol)
+ $advperm_gradientcol = "#1E1E1E";
+ if(! $cal_bgcolour)
+ $cal_bgcolour = "#333";
+ if(! $fancybox_bgcolour)
+ $fancybox_bgcolour = "#1E1E1E";
if (!$admintable_hoverbgcol)
$admintable_hoverbgcol="#222";
if (!$dirpopup_txtcol)
$dirpopup_txtcol="#111";
if (!$dirpopup_linkcol)
$dirpopup_linkcol="#000";
+ if (!$abook_changebg)
+ $abook_changebg="#402900";
diff --git a/view/theme/redbasic/schema/simple_black_on_white.php b/view/theme/redbasic/schema/simple_black_on_white.php
new file mode 100644
index 000000000..2bf002bca
--- /dev/null
+++ b/view/theme/redbasic/schema/simple_black_on_white.php
@@ -0,0 +1,188 @@
+<?php
+
+ if (! $nav_bg)
+ $nav_bg = "#fff";
+ if (! $nav_gradient_top)
+ $nav_gradient_top = "#fff";
+ if (! $nav_gradient_bottom)
+ $nav_gradient_bottom = "#fff";
+ if (! $nav_active_gradient_top)
+ $nav_active_gradient_top = "#fff";
+ if (! $nav_active_gradient_bottom)
+ $nav_active_gradient_bottom = "#fff";
+ if (! $nav_bd)
+ $nav_bd = "#fff";
+ if (! $nav_icon_colour)
+ $nav_icon_colour = "#111";
+ if (! $nav_active_icon_colour)
+ $nav_active_icon_colour = "#000";
+ if (! $navmenu_bgchover)
+ $navmenu_bgchover = "#F5F5F5";
+ if (! $navmenu_bgimage)
+ $navmenu_bgimage = "background-image: none;";
+ if (! $navtabs_borderc)
+ $navtabs_borderc = "#000";
+ if (! $navtabs_fontcolour)
+ $navtabs_fontcolour = "#000";
+ if (! $navtabs_bgcolour)
+ $navtabs_bgcolour = "#fff";
+ if (! $navtabs_linkcolour)
+ $navtabs_linkcolour = "color: #000;";
+ if (! $navtabs_linkchover)
+ $navtabs_linkchover = "color: #000;";
+ if (! $navtabs_bgchover)
+ $navtabs_bgchover = "#fff";
+ if (! $navtabs_decohover)
+ $navtabs_decohover = "underline";
+ if (! $navaside_bghover)
+ $navaside_bghover = "#F5F5F5";
+ if (! $link_colour)
+ $link_colour = "#000";
+ if (! $link_font_weight)
+ $link_font_weight = "bold";
+ if (! $selected_active_colour)
+ $selected_active_colour = "#000";
+ if (! $selected_active_deco)
+ $selected_active_deco = "underline";
+ if (! $banner_colour)
+ $banner_colour = "#fff";
+ if (! $search_background)
+ $search_background = "#F5F5F5";
+ if (! $bgcolour)
+ $bgcolour = "#fff";
+ if (! $genericcontent_bgcolour)
+ $genericcontent_bgcolour = 'rgba(255,255,255,0.8)';
+ if (! $item_colour)
+ $item_colour = "rgba(255,255,255,0.8)";
+ if (! $comment_item_colour)
+ $comment_item_colour = "rgba(255,255,255,0.4)";
+ if (! $comment_border_colour)
+ $comment_border_colour = "rgba(255,255,255,0.8)";
+ if (! $toolicon_colour)
+ $toolicon_colour = '#111';
+ if (! $toolicon_activecolour)
+ $toolicon_activecolour = '#000';
+ if (! $font_colour)
+ $font_colour = "#000";
+ if (! $widget_brdrcolour)
+ $widget_brdrcolour = "#fff";
+ if (! $blockquote_colour)
+ $blockquote_colour = "#111";
+ if (! $blockquote_bgcolour)
+ $blockquote_bgcolour = "#fff";
+ if (! $blockquote_bordercolour)
+ $blockquote_bordercolour = "#000";
+ if (! $code_borderc)
+ $code_borderc = "#000";
+ if (! $code_bgcolour)
+ $code_bgcolour = "#fff";
+ if (! $code_txtcolour)
+ $code_txtcolour = "#000";
+ if (! $pre_borderc)
+ $pre_borderc = "#000";
+ if (! $pre_bgcolour)
+ $pre_bgcolour = "#fff";
+ if (! $pre_txtcolour)
+ $pre_txtcolour = "#111";
+ if (! $item_bordercolour)
+ $item_bordercolour = "#000";
+ if (! $notif_itemcolour)
+ $notif_itemcolour = "#000";
+ if (! $notif_itemhovercolour)
+ $notif_itemhovercolour = "#000";
+ if (! $acpopup_bgcolour)
+ $acpopup_bgcolour = "#fff";
+ if (! $acpopup_bordercolour)
+ $acpopup_bordercolour = "#000";
+ if (! $acpopup_tgbl_bgcolour)
+ $acpopup_tgbl_bgcolour = "#fff";
+ if (! $acpopup_hovercolour)
+ $acpopup_hovercolour = "#000";
+ if (! $editbuttons_bgcolour)
+ $editbuttons_bgcolour = "#fff";
+ if (! $editbuttons_bordercolour)
+ $editbuttons_bordercolour = "#000";
+ if (! $editbuttons_colour)
+ $editbuttons_colour = "#111";
+ if (! $editbuttons_bghover)
+ $editbuttons_bghover = "#fff";
+ if (! $dropdown_bgcolour)
+ $dropdown_bgcolour = "#fff";
+ if (! $dropdown_textcolour)
+ $dropdown_textcolour = "#000";
+ if (! $dropdown_txtcolhover)
+ $dropdown_txtcolhover = "#000";
+ if (! $dropdown_bgcolhover)
+ $dropdown_bgcolhover = "#F5F5F5";
+ if (! $dropdown_bgimghover)
+ $dropdown_bgimghover = "background-image: none;";
+ if (! $dropdown_togglecol)
+ $dropdown_togglecol = "#000";
+ if (! $dropdown_togglebgcol)
+ $dropdown_togglebgcol = "#fff";
+ if (! $dropdown_bordercol)
+ $dropdown_bordercol = "#fff";
+ if (! $preview_backgroundimg)
+ $preview_backgroundimg = "gray_and_white_diagonal_stripes_background_seamless.gif";
+ if (! $notify_bgcolour)
+ $notify_bgcolour = "#fff";
+ if (! $notify_linkcolour)
+ $notify_linkcolour = "#000";
+ if (! $notify_bghover)
+ $notify_bghover = "#fff";
+ if (! $notify_topmargin)
+ $notify_topmargin = "-1px";
+ if (! $notifyseen_bgcolour)
+ $notifyseen_bgcolour = "#fff";
+ if (! $notifyseen_linkcolour)
+ $notifyseen_linkcolour = "#fff";
+ if (! $notifyseen_bghover)
+ $notifyseen_bghover = "#fff";
+ if (! $notifyseen_linkhover)
+ $notifyseen_linkhover = "#000";
+ if (! $input_bgsubmit)
+ $input_bgsubmit = "#fff";
+ if (! $input_linksubmit)
+ $input_linksubmit = "#000";
+ if (! $input_border)
+ $input_border = "#000";
+ if (! $input_colourhover)
+ $input_colourhover = "#000";
+ if (! $input_decohover)
+ $input_decohover = "underline";
+ if (! $acl_bgcolour)
+ $acl_bgcolour = "#fff";
+ if (! $acl_bordercolour)
+ $acl_bordercolour = "#fff";
+ if (! $aclbutton_linkcolour)
+ $aclbutton_linkcolour = "color: #000;";
+ if (! $abookself_bgcolour)
+ $abookself_bgcolour = "#fff";
+ if(! $infomess_bgcolour)
+ $infomess_bgcolour = "#fff";
+ if(! $alert_txtcolour)
+ $alert_txtcolour = "#000";
+ if(! $alert_bgcolour)
+ $alert_bgcolour = "#fff";
+ if(! $alert_bordercol)
+ $alert_bordercol = "#000";
+ if(! $alert_gradientcol)
+ $alert_gradientcol = "#fff";
+ if(! $advperm_bgcolour)
+ $advperm_bgcolour = "#fff";
+ if(! $advperm_bordercol)
+ $advperm_bordercol = "#000";
+ if(! $advperm_gradientcol)
+ $advperm_gradientcol = "#fff";
+ if(! $cal_bgcolour)
+ $cal_bgcolour = "#fff";
+ if(! $fancybox_bgcolour)
+ $fancybox_bgcolour = "#fff";
+ if (!$admintable_hoverbgcol)
+ $admintable_hoverbgcol="#fff";
+ if (!$dirpopup_txtcol)
+ $dirpopup_txtcol="#fff";
+ if (!$dirpopup_linkcol)
+ $dirpopup_linkcol="#fff";
+ if (!$abook_changebg)
+ $abook_changebg="#fff";
diff --git a/view/theme/redbasic/schema/simple_green_on_black.php b/view/theme/redbasic/schema/simple_green_on_black.php
new file mode 100644
index 000000000..15adcf198
--- /dev/null
+++ b/view/theme/redbasic/schema/simple_green_on_black.php
@@ -0,0 +1,188 @@
+<?php
+
+ if (! $nav_bg)
+ $nav_bg = "#000";
+ if (! $nav_gradient_top)
+ $nav_gradient_top = "#000";
+ if (! $nav_gradient_bottom)
+ $nav_gradient_bottom = "#000";
+ if (! $nav_active_gradient_top)
+ $nav_active_gradient_top = "#000";
+ if (! $nav_active_gradient_bottom)
+ $nav_active_gradient_bottom = "#000";
+ if (! $nav_bd)
+ $nav_bd = "#000";
+ if (! $nav_icon_colour)
+ $nav_icon_colour = "#32962D";
+ if (! $nav_active_icon_colour)
+ $nav_active_icon_colour = "#50f148";
+ if (! $navmenu_bgchover)
+ $navmenu_bgchover = "#143D12";
+ if (! $navmenu_bgimage)
+ $navmenu_bgimage = "background-image: none;";
+ if (! $navtabs_borderc)
+ $navtabs_borderc = "#143D12";
+ if (! $navtabs_fontcolour)
+ $navtabs_fontcolour = "#46D43F";
+ if (! $navtabs_bgcolour)
+ $navtabs_bgcolour = "#000";
+ if (! $navtabs_linkcolour)
+ $navtabs_linkcolour = "color: #50f148;";
+ if (! $navtabs_linkchover)
+ $navtabs_linkchover = "color: #50f148;";
+ if (! $navtabs_bgchover)
+ $navtabs_bgchover = "#000";
+ if (! $navtabs_decohover)
+ $navtabs_decohover = "underline";
+if (! $navaside_bghover)
+ $navaside_bghover = "#143D12";
+ if (! $link_colour)
+ $link_colour = "#50f148";
+ if (! $link_font_weight)
+ $link_font_weight = "bold";
+ if (! $selected_active_colour)
+ $selected_active_colour = "#50f148";
+ if (! $selected_active_deco)
+ $selected_active_deco = "underline";
+ if (! $banner_colour)
+ $banner_colour = "#000";
+ if (! $search_background)
+ $search_background = "#000";
+ if (! $bgcolour)
+ $bgcolour = "#000";
+ if (! $genericcontent_bgcolour)
+ $genericcontent_bgcolour = 'rgba(0,0,0,0.8)';
+ if (! $item_colour)
+ $item_colour = "rgba(0,0,0,0.8)";
+ if (! $comment_item_colour)
+ $comment_item_colour = "rgba(0,0,0,0.4)";
+ if (! $comment_border_colour)
+ $comment_border_colour = "rgba(0,0,0,0.8)";
+ if (! $toolicon_colour)
+ $toolicon_colour = '#32962D';
+ if (! $toolicon_activecolour)
+ $toolicon_activecolour = '#50f148';
+ if (! $font_colour)
+ $font_colour = "#46D43F";
+ if (! $widget_brdrcolour)
+ $widget_brdrcolour = "#000";
+ if (! $blockquote_colour)
+ $blockquote_colour = "#32962D";
+ if (! $blockquote_bgcolour)
+ $blockquote_bgcolour = "#000";
+ if (! $blockquote_bordercolour)
+ $blockquote_bordercolour = "#143D12";
+ if (! $code_borderc)
+ $code_borderc = "#143D12";
+ if (! $code_bgcolour)
+ $code_bgcolour = "#000";
+ if (! $code_txtcolour)
+ $code_txtcolour = "#32962D";
+ if (! $pre_borderc)
+ $pre_borderc = "#143D12";
+ if (! $pre_bgcolour)
+ $pre_bgcolour = "#000";
+ if (! $pre_txtcolour)
+ $pre_txtcolour = "#32962D";
+ if (! $item_bordercolour)
+ $item_bordercolour = "#143D12";
+ if (! $notif_itemcolour)
+ $notif_itemcolour = "#50f148";
+ if (! $notif_itemhovercolour)
+ $notif_itemhovercolour = "#50f148";
+ if (! $acpopup_bgcolour)
+ $acpopup_bgcolour = "#000";
+ if (! $acpopup_bordercolour)
+ $acpopup_bordercolour = "#143D12";
+ if (! $acpopup_tgbl_bgcolour)
+ $acpopup_tgbl_bgcolour = "#000";
+ if (! $acpopup_hovercolour)
+ $acpopup_hovercolour = "#50f148";
+ if (! $editbuttons_bgcolour)
+ $editbuttons_bgcolour = "#000";
+ if (! $editbuttons_bordercolour)
+ $editbuttons_bordercolour = "#143D12";
+ if (! $editbuttons_colour)
+ $editbuttons_colour = "#32962D";
+ if (! $editbuttons_bghover)
+ $editbuttons_bghover = "#000";
+ if (! $dropdown_bgcolour)
+ $dropdown_bgcolour = "#000";
+ if (! $dropdown_textcolour)
+ $dropdown_textcolour = "#32962D";
+ if (! $dropdown_txtcolhover)
+ $dropdown_txtcolhover = "#50f148";
+ if (! $dropdown_bgcolhover)
+ $dropdown_bgcolhover = "#143D12";
+ if (! $dropdown_bgimghover)
+ $dropdown_bgimghover = "background-image: none;";
+ if (! $dropdown_togglecol)
+ $dropdown_togglecol = "#50f148";
+ if (! $dropdown_togglebgcol)
+ $dropdown_togglebgcol = "#000";
+ if (! $dropdown_bordercol)
+ $dropdown_bordercol = "#143D12";
+ if (! $preview_backgroundimg)
+ $preview_backgroundimg = "gray_and_black_diagonal_stripes_background_seamless.gif";
+ if (! $notify_bgcolour)
+ $notify_bgcolour = "#000";
+ if (! $notify_linkcolour)
+ $notify_linkcolour = "#50f148";
+ if (! $notify_bghover)
+ $notify_bghover = "#000";
+ if (! $notify_topmargin)
+ $notify_topmargin = "-1px";
+ if (! $notifyseen_bgcolour)
+ $notifyseen_bgcolour = "#000";
+ if (! $notifyseen_linkcolour)
+ $notifyseen_linkcolour = "#000";
+ if (! $notifyseen_bghover)
+ $notifyseen_bghover = "#000";
+ if (! $notifyseen_linkhover)
+ $notifyseen_linkhover = "#50f148";
+ if (! $input_bgsubmit)
+ $input_bgsubmit = "#000";
+ if (! $input_linksubmit)
+ $input_linksubmit = "#50f148";
+ if (! $input_border)
+ $input_border = "#143D12";
+ if (! $input_colourhover)
+ $input_colourhover = "#50f148";
+ if (! $input_decohover)
+ $input_decohover = "underline";
+ if (! $acl_bgcolour)
+ $acl_bgcolour = "#000";
+ if (! $acl_bordercolour)
+ $acl_bordercolour = "#000";
+ if (! $aclbutton_linkcolour)
+ $aclbutton_linkcolour = "color: #fff;";
+ if (! $abookself_bgcolour)
+ $abookself_bgcolour = "#000";
+ if(! $infomess_bgcolour)
+ $infomess_bgcolour = "#000";
+ if(! $alert_txtcolour)
+ $alert_txtcolour = "#50f148";
+ if(! $alert_bgcolour)
+ $alert_bgcolour = "#000";
+ if(! $alert_bordercol)
+ $alert_bordercol = "#143D12";
+ if(! $alert_gradientcol)
+ $alert_gradientcol = "#000";
+ if(! $advperm_bgcolour)
+ $advperm_bgcolour = "#000";
+ if(! $advperm_bordercol)
+ $advperm_bordercol = "#143D12";
+ if(! $advperm_gradientcol)
+ $advperm_gradientcol = "#000";
+ if(! $cal_bgcolour)
+ $cal_bgcolour = "#000";
+ if(! $fancybox_bgcolour)
+ $fancybox_bgcolour = "#000";
+ if (!$admintable_hoverbgcol)
+ $admintable_hoverbgcol="#000";
+ if (!$dirpopup_txtcol)
+ $dirpopup_txtcol="#000";
+ if (!$dirpopup_linkcol)
+ $dirpopup_linkcol="#000";
+ if (!$abook_changebg)
+ $abook_changebg="#000";
diff --git a/view/theme/redbasic/schema/simple_white_on_black.php b/view/theme/redbasic/schema/simple_white_on_black.php
new file mode 100644
index 000000000..96450d835
--- /dev/null
+++ b/view/theme/redbasic/schema/simple_white_on_black.php
@@ -0,0 +1,188 @@
+<?php
+
+ if (! $nav_bg)
+ $nav_bg = "#000";
+ if (! $nav_gradient_top)
+ $nav_gradient_top = "#000";
+ if (! $nav_gradient_bottom)
+ $nav_gradient_bottom = "#000";
+ if (! $nav_active_gradient_top)
+ $nav_active_gradient_top = "#000";
+ if (! $nav_active_gradient_bottom)
+ $nav_active_gradient_bottom = "#000";
+ if (! $nav_bd)
+ $nav_bd = "#000";
+ if (! $nav_icon_colour)
+ $nav_icon_colour = "#eee";
+ if (! $nav_active_icon_colour)
+ $nav_active_icon_colour = "#fff";
+ if (! $navmenu_bgchover)
+ $navmenu_bgchover = "#030303";
+ if (! $navmenu_bgimage)
+ $navmenu_bgimage = "background-image: none;";
+ if (! $navtabs_borderc)
+ $navtabs_borderc = "#fff";
+ if (! $navtabs_fontcolour)
+ $navtabs_fontcolour = "#fff";
+ if (! $navtabs_bgcolour)
+ $navtabs_bgcolour = "#000";
+ if (! $navtabs_linkcolour)
+ $navtabs_linkcolour = "color: #fff;";
+ if (! $navtabs_linkchover)
+ $navtabs_linkchover = "color: #fff;";
+ if (! $navtabs_bgchover)
+ $navtabs_bgchover = "#000";
+ if (! $navtabs_decohover)
+ $navtabs_decohover = "underline";
+ if (! $navaside_bghover)
+ $navaside_bghover = "#030303";
+ if (! $link_colour)
+ $link_colour = "#fff";
+ if (! $link_font_weight)
+ $link_font_weight = "bold";
+ if (! $selected_active_colour)
+ $selected_active_colour = "#fff";
+ if (! $selected_active_deco)
+ $selected_active_deco = "underline";
+ if (! $banner_colour)
+ $banner_colour = "#000";
+ if (! $search_background)
+ $search_background = "#000";
+ if (! $bgcolour)
+ $bgcolour = "#000";
+ if (! $genericcontent_bgcolour)
+ $genericcontent_bgcolour ='rgba(0,0,0,0.8)';
+ if (! $item_colour)
+ $item_colour = "rgba(0,0,0,0.8)";
+ if (! $comment_item_colour)
+ $comment_item_colour = "rgba(0,0,0,0.4)";
+ if (! $comment_border_colour)
+ $comment_border_colour = "rgba(0,0,0,0.8)";
+ if (! $toolicon_colour)
+ $toolicon_colour = '#eee';
+ if (! $toolicon_activecolour)
+ $toolicon_activecolour = '#fff';
+ if (! $font_colour)
+ $font_colour = "#fff";
+ if (! $widget_brdrcolour)
+ $widget_brdrcolour = "#000";
+ if (! $blockquote_colour)
+ $blockquote_colour = "#eee";
+ if (! $blockquote_bgcolour)
+ $blockquote_bgcolour = "#000";
+ if (! $blockquote_bordercolour)
+ $blockquote_bordercolour = "#fff";
+ if (! $code_borderc)
+ $code_borderc = "#eee";
+ if (! $code_bgcolour)
+ $code_bgcolour = "#000";
+ if (! $code_txtcolour)
+ $code_txtcolour = "#eee";
+ if (! $pre_borderc)
+ $pre_borderc = "#fff";
+ if (! $pre_bgcolour)
+ $pre_bgcolour = "#000";
+ if (! $pre_txtcolour)
+ $pre_txtcolour = "#eee";
+ if (! $item_bordercolour)
+ $item_bordercolour = "#fff";
+ if (! $notif_itemcolour)
+ $notif_itemcolour = "#fff";
+ if (! $notif_itemhovercolour)
+ $notif_itemhovercolour = "#fff";
+ if (! $acpopup_bgcolour)
+ $acpopup_bgcolour = "#000";
+ if (! $acpopup_bordercolour)
+ $acpopup_bordercolour = "#fff";
+ if (! $acpopup_tgbl_bgcolour)
+ $acpopup_tgbl_bgcolour = "#000";
+ if (! $acpopup_hovercolour)
+ $acpopup_hovercolour = "#fff";
+ if (! $editbuttons_bgcolour)
+ $editbuttons_bgcolour = "#000";
+ if (! $editbuttons_bordercolour)
+ $editbuttons_bordercolour = "#fff";
+ if (! $editbuttons_colour)
+ $editbuttons_colour = "#eee";
+ if (! $editbuttons_bghover)
+ $editbuttons_bghover = "#000";
+ if (! $dropdown_bgcolour)
+ $dropdown_bgcolour = "#000";
+ if (! $dropdown_textcolour)
+ $dropdown_textcolour = "#fff";
+ if (! $dropdown_txtcolhover)
+ $dropdown_txtcolhover = "#fff";
+ if (! $dropdown_bgcolhover)
+ $dropdown_bgcolhover = "#030303";
+ if (! $dropdown_bgimghover)
+ $dropdown_bgimghover = "background-image: none;";
+ if (! $dropdown_togglecol)
+ $dropdown_togglecol = "#fff";
+ if (! $dropdown_togglebgcol)
+ $dropdown_togglebgcol = "#000";
+ if (! $dropdown_bordercol)
+ $dropdown_bordercol = "#000";
+ if (! $preview_backgroundimg)
+ $preview_backgroundimg = "gray_and_black_diagonal_stripes_background_seamless.gif";
+ if (! $notify_bgcolour)
+ $notify_bgcolour = "#000";
+ if (! $notify_linkcolour)
+ $notify_linkcolour = "#fff";
+ if (! $notify_bghover)
+ $notify_bghover = "#000";
+ if (! $notify_topmargin)
+ $notify_topmargin = "-1px";
+ if (! $notifyseen_bgcolour)
+ $notifyseen_bgcolour = "#000";
+ if (! $notifyseen_linkcolour)
+ $notifyseen_linkcolour = "#000";
+ if (! $notifyseen_bghover)
+ $notifyseen_bghover = "#000";
+ if (! $notifyseen_linkhover)
+ $notifyseen_linkhover = "#fff";
+ if (! $input_bgsubmit)
+ $input_bgsubmit = "#000";
+ if (! $input_linksubmit)
+ $input_linksubmit = "#fff";
+ if (! $input_border)
+ $input_border = "#fff";
+ if (! $input_colourhover)
+ $input_colourhover = "#fff";
+ if (! $input_decohover)
+ $input_decohover = "underline";
+ if (! $acl_bgcolour)
+ $acl_bgcolour = "#000";
+ if (! $acl_bordercolour)
+ $acl_bordercolour = "#000";
+ if (! $aclbutton_linkcolour)
+ $aclbutton_linkcolour = "color: #fff;";
+ if (! $abookself_bgcolour)
+ $abookself_bgcolour = "#000";
+ if(! $infomess_bgcolour)
+ $infomess_bgcolour = "#000";
+ if(! $alert_txtcolour)
+ $alert_txtcolour = "#fff";
+ if(! $alert_bgcolour)
+ $alert_bgcolour = "#000";
+ if(! $alert_bordercol)
+ $alert_bordercol = "#fff";
+ if(! $alert_gradientcol)
+ $alert_gradientcol = "#000";
+ if(! $advperm_bgcolour)
+ $advperm_bgcolour = "#000";
+ if(! $advperm_bordercol)
+ $advperm_bordercol = "#fff";
+ if(! $advperm_gradientcol)
+ $advperm_gradientcol = "#000";
+ if(! $cal_bgcolour)
+ $cal_bgcolour = "#000";
+ if(! $fancybox_bgcolour)
+ $fancybox_bgcolour = "#000";
+ if (!$admintable_hoverbgcol)
+ $admintable_hoverbgcol="#000";
+ if (!$dirpopup_txtcol)
+ $dirpopup_txtcol="#000";
+ if (!$dirpopup_linkcol)
+ $dirpopup_linkcol="#000";
+ if (!$abook_changebg)
+ $abook_changebg="#000";
diff --git a/view/tpl/abook_edit.tpl b/view/tpl/abook_edit.tpl
index f7bcb56c3..c2c11e4b1 100755
--- a/view/tpl/abook_edit.tpl
+++ b/view/tpl/abook_edit.tpl
@@ -1,4 +1,4 @@
-<div class="generic-content-wrapper">
+<div class="generic-content-wrapper-styled">
<h2>{{$header}}</h2>
<h3>{{$addr}}</h3>
@@ -9,9 +9,6 @@
</div>
{{/if}}
-{{if $self}}
-<div id="autoperm-desc" class="descriptive-paragraph">{{$autolbl}}</div>
-{{/if}}
<div id="contact-edit-wrapper">
@@ -31,6 +28,15 @@
<form id="abook-edit-form" action="connedit/{{$contact_id}}" method="post" >
+
+{{if $self}}
+<div class="abook-autotext">
+<div id="autoperm-desc" class="descriptive-paragraph">{{$autolbl}}</div>
+{{include file="field_checkbox.tpl" field=$autoperms}}
+</div>
+{{/if}}
+
+
<input type="hidden" name="contact_id" value="{{$contact_id}}">
<input id="contact-closeness-mirror" type="hidden" name="closeness" value="{{$close}}" />
@@ -58,31 +64,10 @@
<h3>{{$permlbl}}</h3>
<div id="perm-desc" class="descriptive-text">{{$permnote}}</div>
-
-{{* {{if $noperms}}
-<div id="noperm-msg" class="warning-text">{{$noperms}}</div>
-<div id="noperm-text" class="descriptive-text">{{$noperm_desc}}</div>
-{{/if}}
-*}}
-
-
-
<br />
-<h3>{{$quick}}</h3>
-<ul>
-{{if $self}}
-<li><span class="fakelink" onclick="connectClear();">{{$clear}}</span></li>
-<li><span class="fakelink" onclick="connectForum();">{{$forum}}</span></li>
-<li><span class="fakelink" onclick="connectSoapBox();">{{$soapbox}}</span></li>
-{{/if}}
-<li><span class="fakelink" onclick="connectFullShare();">{{$full}}</span></li>
-<li><span class="fakelink" onclick="connectCautiousShare();">{{$cautious}}</span></li>
-<li><span class="fakelink" onclick="connectFollowOnly();">{{$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;">
diff --git a/view/tpl/acl_selector.tpl b/view/tpl/acl_selector.tpl
index 4babf5669..e8b779622 100755
--- a/view/tpl/acl_selector.tpl
+++ b/view/tpl/acl_selector.tpl
@@ -31,14 +31,14 @@
</div><!-- /.modal -->
<script>
-$(document).ready(function() {
- setTimeout( function () {
+//$(document).ready(function() {
+// setTimeout( function () {
if(typeof acl=="undefined"){
acl = new ACL(
baseurl+"/acl",
[ {{$allowcid}},{{$allowgid}},{{$denycid}},{{$denygid}} ]
);
}
- }, 5000 );
-});
+// }, 5000 );
+//});
</script>
diff --git a/view/tpl/admin_aside.tpl b/view/tpl/admin_aside.tpl
index cb3827bf2..2ab3edcc2 100755
--- a/view/tpl/admin_aside.tpl
+++ b/view/tpl/admin_aside.tpl
@@ -10,35 +10,41 @@
});
});
</script>
-<h4><a href="{{$admurl}}">{{$admtxt}}</a></h4>
-<ul class='admin linklist'>
- <li class='admin link button {{$admin.site.2}}'><a href='{{$admin.site.0}}'>{{$admin.site.1}}</a></li>
- <li class='admin link button {{$admin.users.2}}'><a href='{{$admin.users.0}}'>{{$admin.users.1}}</a><span id='pending-update' title='{{$h_pending}}'></span></li>
- <li class='admin link button {{$admin.channels.2}}'><a href='{{$admin.channels.0}}'>{{$admin.channels.1}}</a></li>
- <li class='admin link button {{$admin.plugins.2}}'><a href='{{$admin.plugins.0}}'>{{$admin.plugins.1}}</a></li>
- <li class='admin link button {{$admin.themes.2}}'><a href='{{$admin.themes.0}}'>{{$admin.themes.1}}</a></li>
- <li class='admin link button {{$admin.hubloc.2}}'><a href='{{$admin.hubloc.0}}'>{{$admin.hubloc.1}}</a></li>
- <li class='admin link button {{$admin.dbsync.2}}'><a href='{{$admin.dbsync.0}}'>{{$admin.dbsync.1}}</a></li>
+<div class="widget">
+<h3>{{$admtxt}}</h3>
+<ul class="nav nav-pills nav-stacked">
+ <li><a href='{{$admin.site.0}}'>{{$admin.site.1}}</a></li>
+ <li><a href='{{$admin.users.0}}'>{{$admin.users.1}}<span id='pending-update' title='{{$h_pending}}'></span></a></li>
+ <li><a href='{{$admin.channels.0}}'>{{$admin.channels.1}}</a></li>
+ <li><a href='{{$admin.plugins.0}}'>{{$admin.plugins.1}}</a></li>
+ <li><a href='{{$admin.themes.0}}'>{{$admin.themes.1}}</a></li>
+ <li><a href='{{$admin.hubloc.0}}'>{{$admin.hubloc.1}}</a></li>
+ <li><a href='{{$admin.dbsync.0}}'>{{$admin.dbsync.1}}</a></li>
</ul>
+</div>
{{if $admin.update}}
-<ul class='admin linklist'>
- <li class='admin link button {{$admin.update.2}}'><a href='{{$admin.update.0}}'>{{$admin.update.1}}</a></li>
- <li class='admin link button {{$admin.update.2}}'><a href='https://kakste.com/profile/inthegit'>Important Changes</a></li>
+<ul class="nav nav-pills nav-stacked">
+ <li><a href='{{$admin.update.0}}'>{{$admin.update.1}}</a></li>
+ <li><a href='https://kakste.com/profile/inthegit'>Important Changes</a></li>
</ul>
{{/if}}
-{{if $admin.plugins_admin}}<h4>{{$plugadmtxt}}</h4>{{/if}}
-<ul class='admin linklist'>
+{{if $admin.plugins_admin}}
+<div class="widget">
+<h3>{{$plugadmtxt}}</h3>
+<ul class="nav nav-pills nav-stacked">
{{foreach $admin.plugins_admin as $l}}
- <li class='admin link button {{$l.2}}'><a href='{{$l.0}}'>{{$l.1}}</a></li>
+ <li><a href='{{$l.0}}'>{{$l.1}}</a></li>
{{/foreach}}
</ul>
+</div>
+{{/if}}
-
-<h4>{{$logtxt}}</h4>
-<ul class='admin linklist'>
- <li class='admin link button {{$admin.logs.2}}'><a href='{{$admin.logs.0}}'>{{$admin.logs.1}}</a></li>
+<div class="widget">
+<h3>{{$logtxt}}</h3>
+<ul class="nav nav-pills nav-stacked">
+ <li><a href='{{$admin.logs.0}}'>{{$admin.logs.1}}</a></li>
</ul>
-
+</div>
diff --git a/view/tpl/admin_channels.tpl b/view/tpl/admin_channels.tpl
index b26e67687..817eb939a 100755
--- a/view/tpl/admin_channels.tpl
+++ b/view/tpl/admin_channels.tpl
@@ -10,7 +10,7 @@
return false;
}
</script>
-<div class = "generic-content-wrapper" id='adminpage'>
+<div class = "generic-content-wrapper-styled" id='adminpage'>
<h1>{{$title}} - {{$page}}</h1>
<form action="{{$baseurl}}/admin/channels" method="post">
diff --git a/view/tpl/admin_hubloc.tpl b/view/tpl/admin_hubloc.tpl
index 06a8cdf6a..1bd1f0122 100755
--- a/view/tpl/admin_hubloc.tpl
+++ b/view/tpl/admin_hubloc.tpl
@@ -1,4 +1,4 @@
-<div class="generic-content-wrapper" id='adminpage'>
+<div class="generic-content-wrapper-styled" id='adminpage'>
<h1>{{$title}} - {{$page}}</h1>
<table id='server'>
diff --git a/view/tpl/admin_logs.tpl b/view/tpl/admin_logs.tpl
index 3d2adc660..6d2d7834c 100755
--- a/view/tpl/admin_logs.tpl
+++ b/view/tpl/admin_logs.tpl
@@ -1,4 +1,4 @@
-<div class="generic-content-wrapper" id='adminpage'>
+<div class="generic-content-wrapper-styled" id='adminpage'>
<h1>{{$title}} - {{$page}}</h1>
<form action="{{$baseurl}}/admin/logs" method="post">
diff --git a/view/tpl/admin_plugins.tpl b/view/tpl/admin_plugins.tpl
index 40821c534..0f76cc4fe 100755
--- a/view/tpl/admin_plugins.tpl
+++ b/view/tpl/admin_plugins.tpl
@@ -1,4 +1,4 @@
-<div class="generic-content-wrapper" id='adminpage'>
+<div class="generic-content-wrapper-styled" id='adminpage'>
<h1>{{$title}} - {{$page}}</h1>
<ul id='pluginslist'>
diff --git a/view/tpl/admin_plugins_details.tpl b/view/tpl/admin_plugins_details.tpl
index 1c1a59879..bdcc82c08 100755
--- a/view/tpl/admin_plugins_details.tpl
+++ b/view/tpl/admin_plugins_details.tpl
@@ -1,4 +1,4 @@
-<div class = "generic-content-wrapper" id='adminpage'>
+<div class = "generic-content-wrapper-styled" id='adminpage'>
<h1>{{$title}} - {{$page}}</h1>
<p><i class='toggleplugin {{if $status==on}}icon-check{{else}}icon-check-empty{{/if}} admin-icons'></i> {{$info.name}} - {{$info.version}} : <a href="{{$baseurl}}/admin/{{$function}}/{{$plugin}}/?a=t&amp;t={{$form_security_token}}">{{$action}}</a></p>
diff --git a/view/tpl/admin_site.tpl b/view/tpl/admin_site.tpl
index 930486b5f..0003ddfc0 100755
--- a/view/tpl/admin_site.tpl
+++ b/view/tpl/admin_site.tpl
@@ -34,7 +34,7 @@
});
});
</script>
-<div id="adminpage" class="generic-content-wrapper">
+<div id="adminpage" class="generic-content-wrapper-styled">
<h1>{{$title}} - {{$page}}</h1>
<form action="{{$baseurl}}/admin/site" method="post">
@@ -46,8 +46,6 @@
{{include file="field_select.tpl" field=$language}}
{{include file="field_select.tpl" field=$theme}}
{{include file="field_select.tpl" field=$theme_mobile}}
- {{include file="field_select.tpl" field=$theme_accessibility}}
- {{include file="field_input.tpl" field=$site_channel}}
{{include file="field_checkbox.tpl" field=$no_login_on_homepage}}
@@ -65,6 +63,7 @@
<h3>{{$corporate}}</h3>
{{include file="field_checkbox.tpl" field=$block_public}}
+ {{include file="field_checkbox.tpl" field=$verify_email}}
{{include file="field_checkbox.tpl" field=$diaspora_enabled}}
{{include file="field_checkbox.tpl" field=$feed_contacts}}
{{include file="field_checkbox.tpl" field=$force_publish}}
diff --git a/view/tpl/admin_summary.tpl b/view/tpl/admin_summary.tpl
index 24cdd57cc..7f752a773 100755
--- a/view/tpl/admin_summary.tpl
+++ b/view/tpl/admin_summary.tpl
@@ -1,4 +1,4 @@
-<div class="generic-content-wrapper" id='adminpage'>
+<div class="generic-content-wrapper-styled" id='adminpage'>
<h1>{{$title}} - {{$page}}</h1>
<dl>
diff --git a/view/tpl/admin_users.tpl b/view/tpl/admin_users.tpl
index 65fffd17c..5bf64b4df 100755
--- a/view/tpl/admin_users.tpl
+++ b/view/tpl/admin_users.tpl
@@ -10,7 +10,7 @@
return false;
}
</script>
-<div class = "generic-content-wrapper" id='adminpage'>
+<div class = "generic-content-wrapper-styled" id='adminpage'>
<h1>{{$title}} - {{$page}}</h1>
<form action="{{$baseurl}}/admin/users" method="post">
diff --git a/view/tpl/album_edit.tpl b/view/tpl/album_edit.tpl
index 61653c47c..f5495f149 100755
--- a/view/tpl/album_edit.tpl
+++ b/view/tpl/album_edit.tpl
@@ -1,15 +1,22 @@
-<div id="photo-album-edit-wrapper">
-<form name="photo-album-edit-form" id="photo-album-edit-form" action="photos/{{$nickname}}/album/{{$hexalbum}}" method="post" >
-
-
-<label id="photo-album-edit-name-label" for="photo-album-edit-name" >{{$nametext}}</label>
-<input type="text" size="64" name="albumname" value="{{$album}}" >
-
-<div id="photo-album-edit-name-end"></div>
+<div id="photo-album-edit-wrapper" class="section-content-tools-wrapper">
+ <form name="photo-album-edit-form" id="photo-album-edit-form" action="photos/{{$nickname}}/album/{{$hexalbum}}" method="post" >
+ <div class="form-group">
+ <label id="photo-album-edit-name-label" for="photo-album-edit-name">{{$nametext}}</label>
+ <input type="text" name="albumname" placeholder="{{$name_placeholder}}" value="{{$album}}" class="form-control" list="dl-album-edit" />
+ <datalist id="dl-album-edit">
+ {{foreach $albums as $al}}
+ {{if $al.text}}
+ <option value="{{$al.text}}">
+ {{/if}}
+ {{/foreach}}
+ </datalist>
+ </div>
+ <div class="form-group">
+ <button id="photo-album-edit-submit" type="submit" name="submit" class="btn btn-primary btn-sm pull-right" />{{$submit}}</button>
+ <button id="photo-album-edit-drop" type="submit" name="dropalbum" value="{{$dropsubmit}}" class="btn btn-danger btn-sm pull-left" onclick="return confirmDelete();" />{{$dropsubmit}}</button>
+ </div>
+ </form>
+ <div id="photo-album-edit-end" class="clear"></div>
+</div>
-<input id="photo-album-edit-submit" type="submit" name="submit" value="{{$submit}}" />
-<input id="photo-album-edit-drop" type="submit" name="dropalbum" value="{{$dropsubmit}}" onclick="return confirmDelete();" />
-</form>
-</div>
-<div id="photo-album-edit-end" ></div>
diff --git a/view/tpl/app_select.tpl b/view/tpl/app_select.tpl
index 5cf3f40d6..527d01eae 100644
--- a/view/tpl/app_select.tpl
+++ b/view/tpl/app_select.tpl
@@ -1,7 +1,7 @@
{{if $authed}}
<div class="widget">
<h3>{{$title}}</h3>
-<ul>
+<ul class="nav nav-pills nav-stacked">
<li><a href="appman">{{$new}}</a></li>
<li><a href="apps/edit">{{$edit}}</a></li>
</ul>
diff --git a/view/tpl/attach_edit.tpl b/view/tpl/attach_edit.tpl
index e91b4c0c6..a2a4af16b 100644
--- a/view/tpl/attach_edit.tpl
+++ b/view/tpl/attach_edit.tpl
@@ -5,7 +5,7 @@
<form action="filestorage/{{$channelnick}}/{{$file.id}}/edit" method="post" >
<div id="attach-edit-perms" >
-<button class="btn btn-default btn-sm" data-toggle="modal" data-target="#aclModal" title="{{$permset}}" onclick="return false;">
+<button id="dbtn-acl" class="btn btn-default btn-sm" data-toggle="modal" data-target="#aclModal" title="{{$permset}}" onclick="return false;">
<i id="jot-perms-icon" class="icon-{{$lockstate}} jot-icons"></i>
</button>
{{$aclselect}} {{$file.filename}}
@@ -30,7 +30,7 @@
<input type="text" id="linkpasteinput" name="cutpasteextlink" value="{{$cloudpath}}" onclick="this.select();"/><br />
<div class="clear"></div>
-<input id="attach-edit-submit" type="submit" name="submit" value="{{$submit}}" />
+<input id="dbtn-submit" type="submit" name="submit" value="{{$submit}}" />
</form>
diff --git a/view/tpl/blocklist.tpl b/view/tpl/blocklist.tpl
index adf61f788..4068375cb 100644
--- a/view/tpl/blocklist.tpl
+++ b/view/tpl/blocklist.tpl
@@ -4,9 +4,9 @@
{{foreach $pages as $key => $items}}
{{foreach $items as $item}}
<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="block/{{$channel}}/{{$item.title}}" title="{{$view}}"><i class="icon-external-link design-icons design-view-icon"></i></a> {{/if}}
- {{if $preview}}<a href="block/{{$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}}
+ {{if $edit}}<a href="{{$baseurl}}/{{$item.url}}" title="{{$edit}}"><i class="icon-pencil design-icons design-edit-icon btn btn-default"></i></a> {{/if}}
+ {{if $view}}<a href="block/{{$channel}}/{{$item.title}}" title="{{$view}}"><i class="icon-external-link design-icons design-view-icon btn btn-default"></i></a> {{/if}}
+ {{*if $preview}}<a href="block/{{$channel}}/{{$item.title}}?iframe=true&width=80%&height=80%" title="{{$preview}}" class="webpage-preview" ><i class="icon-eye-open design-icons design-preview-icon btn-btn-default"></i></a> {{/if*}}
{{$item.title}}
</div>
{{/foreach}}
diff --git a/view/tpl/build_query.tpl b/view/tpl/build_query.tpl
index 204b5114a..8110b70b1 100755
--- a/view/tpl/build_query.tpl
+++ b/view/tpl/build_query.tpl
@@ -22,6 +22,7 @@
var bParam_order = "{{$order}}";
var bParam_file = "{{$file}}";
var bParam_cats = "{{$cats}}";
+ var bParam_tags = "{{$tags}}";
var bParam_dend = "{{$dend}}";
var bParam_dbegin = "{{$dbegin}}";
var bParam_mid = "{{$mid}}";
@@ -46,6 +47,7 @@
if(bParam_order != "") bCmd = bCmd + "&order=" + bParam_order;
if(bParam_file != "") bCmd = bCmd + "&file=" + bParam_file;
if(bParam_cats != "") bCmd = bCmd + "&cat=" + bParam_cats;
+ if(bParam_tags != "") bCmd = bCmd + "&tag=" + bParam_tags;
if(bParam_dend != "") bCmd = bCmd + "&dend=" + bParam_dend;
if(bParam_dbegin != "") bCmd = bCmd + "&dbegin=" + bParam_dbegin;
if(bParam_mid != "") bCmd = bCmd + "&mid=" + bParam_mid;
diff --git a/view/tpl/categories_widget.tpl b/view/tpl/categories_widget.tpl
index 2c0b3bcc2..ea6d28dfc 100755
--- a/view/tpl/categories_widget.tpl
+++ b/view/tpl/categories_widget.tpl
@@ -2,10 +2,10 @@
<h3>{{$title}}</h3>
<div id="categories-sidebar-desc">{{$desc}}</div>
- <ul class="categories-ul">
- <li class="tool"><a href="{{$base}}" class="categories-link categories-all{{if $sel_all}} categories-selected{{/if}}">{{$all}}</a></li>
+ <ul class="nav nav-pills nav-stacked">
+ <li><a href="{{$base}}"{{if $sel_all}} class="categories-selected"{{/if}}>{{$all}}</a></li>
{{foreach $terms as $term}}
- <li class="tool"><a href="{{$base}}?f=&cat={{$term.name}}" class="categories-link{{if $term.selected}} categories-selected{{/if}}">{{$term.name}}</a></li>
+ <li><a href="{{$base}}?f=&cat={{$term.name}}"{{if $term.selected}} class="categories-selected"{{/if}}>{{$term.name}}</a></li>
{{/foreach}}
</ul>
diff --git a/view/tpl/channel_import.tpl b/view/tpl/channel_import.tpl
index f7635ea52..f76594934 100755
--- a/view/tpl/channel_import.tpl
+++ b/view/tpl/channel_import.tpl
@@ -22,6 +22,11 @@
<input type="password" name="password" id="import-old-pass" class="import-input" value="{{$pass}}" />
<div id="import-old-pass-end" class="import-field-end"></div>
+ <input type="checkbox" name="import_posts" id="import-posts" value="1" />
+ <label for="import-posts" id="label-import-posts">{{$label_import_posts}}</label>
+ <div id="import-posts-end" class="import-field-end"></div>
+
+
<div id="import-common-desc" class="descriptive-paragraph">{{$common}}</div>
<input type="checkbox" name="make_primary" id="import-make-primary" value="1" />
diff --git a/view/tpl/channels.tpl b/view/tpl/channels.tpl
index 2c31cb498..0dec68a53 100755
--- a/view/tpl/channels.tpl
+++ b/view/tpl/channels.tpl
@@ -1,6 +1,6 @@
+<div class="generic-content-wrapper-styled">
<h3>{{$header}}</h3>
-
{{if $links}}
{{foreach $links as $l}}
<a class="channels-links" href="{{$l.0}}" title="{{$l.1}}">{{$l.2}}</a>
@@ -30,3 +30,5 @@
</div>
<div class="channels-end all"></div>
+
+</div>
diff --git a/view/tpl/chatroom_new.tpl b/view/tpl/chatroom_new.tpl
index 287f95cc0..a559dba54 100644
--- a/view/tpl/chatroom_new.tpl
+++ b/view/tpl/chatroom_new.tpl
@@ -2,12 +2,12 @@
<form action="chat" method="post" >
{{include file="field_input.tpl" field=$name}}
-<button class="btn btn-default btn-xs" data-toggle="modal" data-target="#aclModal" onclick="return false;">{{$permissions}}</button>
+<button id="dbtn-acl" class="btn btn-default btn-xs" data-toggle="modal" data-target="#aclModal" onclick="return false;" >{{$permissions}}</button>
{{$acl}}
<div class="clear"></div>
<br />
<br />
-<input type="submit" name="submit" value="{{$submit}}" />
+<input id="dbtn-submit" type="submit" name="submit" value="{{$submit}}" />
</form>
diff --git a/view/tpl/cloud_actionspanel.tpl b/view/tpl/cloud_actionspanel.tpl
index 69931b292..00f243c1e 100644
--- a/view/tpl/cloud_actionspanel.tpl
+++ b/view/tpl/cloud_actionspanel.tpl
@@ -1,3 +1,5 @@
+<div class="generic-content-wrapper-styled">
+
<table>
<tr>
<td><strong>{{$folder_header}}</strong>&nbsp;&nbsp;&nbsp;</td>
@@ -20,4 +22,6 @@
</form>
</td>
</tr>
-</table> \ No newline at end of file
+</table>
+
+</div>
diff --git a/view/tpl/cloud_directory.tpl b/view/tpl/cloud_directory.tpl
index 5d22e4a16..639a6bf61 100644
--- a/view/tpl/cloud_directory.tpl
+++ b/view/tpl/cloud_directory.tpl
@@ -1,3 +1,4 @@
+<div class="generic-content-wrapper-styled">
<h1>{{$header}}</h1>
<table id="cloud-index">
<tr>
@@ -40,4 +41,5 @@
{{if $quota.limit || $quota.used}}
<p><strong>{{$total}}</strong> {{$quota.desc}}</p>
-{{/if}} \ No newline at end of file
+{{/if}}
+</div>
diff --git a/view/tpl/comment_item.tpl b/view/tpl/comment_item.tpl
index 351cc8e14..ab67bc196 100755
--- a/view/tpl/comment_item.tpl
+++ b/view/tpl/comment_item.tpl
@@ -21,35 +21,41 @@
{{/if}}
<div class="clear"></div>
<div id="comment-tools-{{$id}}" class="comment-tools">
- <div id="comment-edit-bb-{{$id}}" class="btn-group pull-left">
- <button class="btn btn-default btn-xs" title="{{$edbold}}" onclick="insertbbcomment('{{$comment}}','b', {{$id}}); return false;">
- <i class="icon-bold comment-icon"></i>
- </button>
- <button class="btn btn-default btn-xs" title="{{$editalic}}" onclick="insertbbcomment('{{$comment}}','i', {{$id}}); return false;">
- <i class="icon-italic comment-icon"></i>
- </button>
- <button class="btn btn-default btn-xs" title="{{$eduline}}" onclick="insertbbcomment('{{$comment}}','u', {{$id}}); return false;">
- <i class="icon-underline comment-icon"></i>
- </button>
- <button class="btn btn-default btn-xs" title="{{$edquote}}" onclick="insertbbcomment('{{$comment}}','quote', {{$id}}); return false;">
- <i class="icon-quote-left comment-icon"></i>
- </button>
- <button class="btn btn-default btn-xs" title="{{$edcode}}" onclick="insertbbcomment('{{$comment}}','code', {{$id}}); return false;">
- <i class="icon-terminal comment-icon"></i>
- </button>
- <button class="btn btn-default btn-xs" title="{{$edimg}}" onclick="insertbbcomment('{{$comment}}','img', {{$id}}); return false;">
- <i class="icon-camera comment-icon"></i>
- </button>
- <button class="btn btn-default btn-xs" title="{{$edurl}}" onclick="insertbbcomment('{{$comment}}','url', {{$id}}); return false;">
- <i class="icon-link comment-icon"></i>
- </button>
- <button class="btn btn-default btn-xs" title="{{$edvideo}}" onclick="insertbbcomment('{{$comment}}','video', {{$id}}); return false;">
- <i class="icon-facetime-video comment-icon"></i>
- </button>
+ <div id="comment-edit-bb-{{$id}}" class="btn-toolbar pull-left">
+ <div class='btn-group'>
+ <button class="btn btn-default btn-xs" title="{{$edbold}}" onclick="insertbbcomment('{{$comment}}','b', {{$id}}); return false;">
+ <i class="icon-bold comment-icon"></i>
+ </button>
+ <button class="btn btn-default btn-xs" title="{{$editalic}}" onclick="insertbbcomment('{{$comment}}','i', {{$id}}); return false;">
+ <i class="icon-italic comment-icon"></i>
+ </button>
+ <button class="btn btn-default btn-xs" title="{{$eduline}}" onclick="insertbbcomment('{{$comment}}','u', {{$id}}); return false;">
+ <i class="icon-underline comment-icon"></i>
+ </button>
+ <button class="btn btn-default btn-xs" title="{{$edquote}}" onclick="insertbbcomment('{{$comment}}','quote', {{$id}}); return false;">
+ <i class="icon-quote-left comment-icon"></i>
+ </button>
+ <button class="btn btn-default btn-xs" title="{{$edcode}}" onclick="insertbbcomment('{{$comment}}','code', {{$id}}); return false;">
+ <i class="icon-terminal comment-icon"></i>
+ </button>
+ </div>
+ <div class='btn-group'>
+ <button class="btn btn-default btn-xs" title="{{$edimg}}" onclick="insertbbcomment('{{$comment}}','img', {{$id}}); return false;">
+ <i class="icon-camera comment-icon"></i>
+ </button>
+ <button class="btn btn-default btn-xs" title="{{$edurl}}" onclick="insertbbcomment('{{$comment}}','url', {{$id}}); return false;">
+ <i class="icon-link comment-icon"></i>
+ </button>
+ <button class="btn btn-default btn-xs" title="{{$edvideo}}" onclick="insertbbcomment('{{$comment}}','video', {{$id}}); return false;">
+ <i class="icon-facetime-video comment-icon"></i>
+ </button>
+ </div>
{{if $feature_encrypt}}
- <button class="btn btn-default btn-xs" title="{{$encrypt}}" onclick="red_encrypt('{{$cipher}}','#comment-edit-text-' + '{{$id}}',''); return false;">
- <i class="icon-key comment-icon"></i>
- </button>
+ <div class='btn-group'>
+ <button class="btn btn-default btn-xs" title="{{$encrypt}}" onclick="red_encrypt('{{$cipher}}','#comment-edit-text-' + '{{$id}}',''); return false;">
+ <i class="icon-key comment-icon"></i>
+ </button>
+ </div>
{{/if}}
</div>
<div class="btn-group pull-right" id="comment-edit-submit-wrapper-{{$id}}">
@@ -58,7 +64,7 @@
<i class="icon-eye-open comment-icon" ></i>
</button>
{{/if}}
- <button id="comment-edit-submit-{{$id}}" class="btn btn-primary btn-xs" type="submit" name="submit" onclick="post_comment({{$id}}); return false;">{{$submit}}</button>
+ <button id="comment-edit-submit-{{$id}}" class="btn btn-primary btn-xs" type="submit" name="button-submit" onclick="post_comment({{$id}}); return false;">{{$submit}}</button>
</div>
</div>
<div class="clear"></div>
diff --git a/view/tpl/connection_template.tpl b/view/tpl/connection_template.tpl
index 44866c323..47f01ef5d 100755
--- a/view/tpl/connection_template.tpl
+++ b/view/tpl/connection_template.tpl
@@ -1,9 +1,9 @@
<div class="contact-entry-wrapper" id="contact-entry-wrapper-{{$contact.id}}" >
<div class="contact-entry-photo-wrapper" >
- <a href="{{$contact.url}}" title="{{$contact.img_hover}}" /><img class="contact-block-img {{if $contact.classes}}{{$contact.classes}}{{/if}}" src="{{$contact.thumb}}" alt="{{$contact.name}}" /></a>
+ <a href="{{$contact.url}}" title="{{$contact.img_hover}}" ><img class="contact-block-img {{if $contact.classes}}{{$contact.classes}}{{/if}}" src="{{$contact.thumb}}" alt="{{$contact.name}}" /></a>
</div>
<div class="contact-entry-photo-end" ></div>
- <a href="{{$contact.url}}" title="{{$contact.img_hover}}" /><div class="contact-entry-name" id="contact-entry-name-{{$contact.id}}" >{{$contact.name}}</div></a>
- <div class="contact-entry-edit btn btn-default"><a href="{{$contact.link}}"><i class="icon-pencil connection-edit-icons"></i> {{$edit}}</a></div>
+ <a href="{{$contact.url}}" title="{{$contact.img_hover}}" ><div class="contact-entry-name" id="contact-entry-name-{{$contact.id}}" >{{$contact.name}}</div></a>
+ <div class="contact-entry-edit btn btn-default"><a href="{{$contact.link}}"><i class="icon-pencil connection-edit-icons"></i> {{$contact.edit}}</a></div>
<div class="contact-entry-end" ></div>
</div>
diff --git a/view/tpl/connections.tpl b/view/tpl/connections.tpl
index c69dcde50..8e5266978 100755
--- a/view/tpl/connections.tpl
+++ b/view/tpl/connections.tpl
@@ -1,3 +1,5 @@
+<div class="generic-content-wrapper-styled">
+
<h1>{{$header}}{{if $total}} ({{$total}}){{/if}}</h1>
{{if $finding}}<h4>{{$finding}}</h4>{{/if}}
@@ -13,14 +15,13 @@
{{$tabs}}
-
+<div id="connections-wrapper">
{{foreach $contacts as $contact}}
{{include file="connection_template.tpl"}}
{{/foreach}}
+<div id="page-end"></div>
+</div>
<div id="contact-edit-end"></div>
-
-{{$paginate}}
-
-
-
-
+</div>
+<script>$(document).ready(function() { loadingPage = false;});</script>
+<div id="page-spinner"></div>
diff --git a/view/tpl/contact_slider.tpl b/view/tpl/contact_slider.tpl
index 33cd3fb71..93d0cc625 100755
--- a/view/tpl/contact_slider.tpl
+++ b/view/tpl/contact_slider.tpl
@@ -1,4 +1,4 @@
<div id="contact-slider" class="slider" style="height: 32px; position: relative; left: 5%; width: 90%;"><input id="contact-range" type="text" name="fake-closeness" value="{{$val}}" /></div>
<script>
- $("#contact-range").slider({ from: 0, to: 99, step: 1, scale: ['{{$me}}', '|', '{{$intimate}}', '|', '{{$friends}}', '|', '{{$oldfriends}}', '|', '{{$acquaintances}}', '|', '{{$world}}' ], onstatechange: function(v) { $("#contact-closeness-mirror").val(v); } });
+ $("#contact-range").slider({ from: {{$min|default:'0'}}, to: 99, step: 1, scale: ['{{$me}}', '|', '{{$intimate}}', '|', '{{$friends}}', '|', '{{$oldfriends}}', '|', '{{$acquaintances}}', '|', '{{$world}}' ], onstatechange: function(v) { $("#contact-closeness-mirror").val(v); } });
</script>
diff --git a/view/tpl/contact_template.tpl b/view/tpl/contact_template.tpl
index 7feefa655..3d1bfa4a4 100755
--- a/view/tpl/contact_template.tpl
+++ b/view/tpl/contact_template.tpl
@@ -1,6 +1,6 @@
<div class="contact-entry-wrapper" id="contact-entry-wrapper-{{$contact.id}}" >
<div class="contact-entry-photo-wrapper" >
- <a href="{{$contact.link}}" title="{{$contact.img_hover}}" /><img class="contact-block-img" src="{{$contact.thumb}}" alt="{{$contact.name}}" /></a>
+ <a href="{{$contact.link}}" title="{{$contact.img_hover}}" ><img class="contact-block-img" src="{{$contact.thumb}}" alt="{{$contact.name}}" /></a>
</div>
<div class="contact-entry-photo-end" ></div>
<div class="contact-entry-name" id="contact-entry-name-{{$contact.id}}" >{{$contact.name}}</div>
diff --git a/view/tpl/contactsajax.tpl b/view/tpl/contactsajax.tpl
new file mode 100644
index 000000000..1cce0f105
--- /dev/null
+++ b/view/tpl/contactsajax.tpl
@@ -0,0 +1,3 @@
+{{foreach $contacts as $contact}}
+ {{include file="connection_template.tpl"}}
+{{/foreach}}
diff --git a/view/tpl/conv_item.tpl b/view/tpl/conv_item.tpl
index bfa62f1b7..f30ca7fc0 100755
--- a/view/tpl/conv_item.tpl
+++ b/view/tpl/conv_item.tpl
@@ -15,7 +15,9 @@
<div class="wall-item-photo-end" style="clear:both"></div>
</div>
{{if $item.title}}
- <div class="wall-item-title" id="wall-item-title-{{$item.id}}"><h3>{{$item.title}}</h3></div>
+ <div class="wall-item-title" id="wall-item-title-{{$item.id}}">
+ <h3>{{if $item.title_tosource}}{{if $item.plink}}<a href="{{$item.plink.href}}" title="{{$item.title}} ({{$item.plink.title}})">{{/if}}{{/if}}{{$item.title}}{{if $item.title_tosource}}{{if $item.plink}}</a>{{/if}}{{/if}}</h3>
+ </div>
{{/if}}
{{if $item.lock}}
<div class="wall-item-lock dropdown">
@@ -26,7 +28,7 @@
<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}}&nbsp;{{$item.via}}&nbsp;<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}}
</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}}{{if $item.location}}<span class="wall-item-location" id="wall-item-location-{{$item.id}}">{{$item.location}},&nbsp;</span>{{/if}}<span class="autotime" title="{{$item.isotime}}">{{$item.localtime}}{{if $item.editedtime}}&nbsp;{{$item.editedtime}}{{/if}}{{if $item.expiretime}}&nbsp;{{$item.expiretime}}{{/if}}</span>{{if $item.editedtime}}&nbsp;<i class="icon-pencil"></i>{{/if}}&nbsp;{{if $item.app}}<span class="item.app">{{$item.str_app}}</span>{{/if}}
+ {{if $item.verified}}<i class="icon-ok item-verified" title="{{$item.verified}}"></i>&nbsp;{{elseif $item.forged}}<i class="icon-remove item-forged" title="{{$item.forged}}"></i>&nbsp;{{/if}}{{if $item.location}}<span class="wall-item-location" id="wall-item-location-{{$item.id}}">{{$item.location}},&nbsp;</span>{{/if}}<span class="autotime" title="{{$item.isotime}}">{{$item.localtime}}{{if $item.editedtime}}&nbsp;{{$item.editedtime}}{{/if}}{{if $item.expiretime}}&nbsp;{{$item.expiretime}}{{/if}}</span>{{if $item.editedtime}}&nbsp;<i class="icon-pencil"></i>{{/if}}&nbsp;{{if $item.app}}<span class="item.app">{{$item.str_app}}</span>{{/if}}
</div>
<div class="wall-item-content" id="wall-item-content-{{$item.id}}">
<div class="wall-item-title-end"></div>
diff --git a/view/tpl/conv_list.tpl b/view/tpl/conv_list.tpl
new file mode 100755
index 000000000..59bb8f918
--- /dev/null
+++ b/view/tpl/conv_list.tpl
@@ -0,0 +1,179 @@
+{{if $item.comment_firstcollapsed}}
+<div class="hide-comments-outer fakelink" onclick="showHideComments({{$item.id}});">
+ <span id="hide-comments-{{$item.id}}" class="hide-comments">{{$item.hide_text}}</span>&nbsp;<span id="hide-comments-total-{{$item.id}}" class="hide-comments-total">{{$item.num_comments}}</span>
+</div>
+<div id="collapsed-comments-{{$item.id}}" class="collapsed-comments" style="display: none;">
+{{/if}}
+ <div id="thread-wrapper-{{$item.id}}" class="thread-wrapper {{$item.toplevel}} conv-list-mode">
+ <a name="{{$item.id}}" ></a>
+ <div class="wall-item-outside-wrapper {{$item.indent}}{{$item.previewing}}" id="wall-item-outside-wrapper-{{$item.id}}" >
+ <div class="wall-item-content-wrapper {{$item.indent}}" id="wall-item-content-wrapper-{{$item.id}}" style="clear:both;">
+ <div class="wall-item-info" id="wall-item-info-{{$item.id}}" >
+ <div class="wall-item-photo-wrapper{{if $item.owner_url}} wwfrom{{/if}}" id="wall-item-photo-wrapper-{{$item.id}}">
+ <a href="{{$item.profile_url}}" title="{{$item.linktitle}}" class="wall-item-photo-link" id="wall-item-photo-link-{{$item.id}}"><img src="{{$item.thumb}}" class="wall-item-photo{{$item.sparkle}}" id="wall-item-photo-{{$item.id}}" alt="{{$item.name}}" /></a>
+ </div>
+ <div class="wall-item-photo-end" style="clear:both"></div>
+ </div>
+ {{if $item.title}}
+ <div class="wall-item-title" id="wall-item-title-{{$item.id}}">
+ <h3>{{if $item.title_tosource}}{{if $item.plink}}<a href="{{$item.plink.href}}" title="{{$item.title}} ({{$item.plink.title}})">{{/if}}{{/if}}{{$item.title}}{{if $item.title_tosource}}{{if $item.plink}}</a>{{/if}}{{/if}}</h3>
+ </div>
+ {{/if}}
+ {{if $item.lock}}
+ <div class="wall-item-lock dropdown">
+ <i class="icon-lock lockview dropdown-toggle" data-toggle="dropdown" title="{{$item.lock}}" onclick="lockview(event,{{$item.id}});" ></i><ul id="panel-{{$item.id}}" class="lockview-panel dropdown-menu"></ul>&nbsp;
+ </div>
+ {{/if}}
+ <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}}&nbsp;{{$item.via}}&nbsp;<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}}
+ </div>
+ <div class="wall-item-ago" id="wall-item-ago-{{$item.id}}">
+ {{if $item.verified}}<i class="icon-ok item-verified" title="{{$item.verified}}"></i>&nbsp;{{elseif $item.forged}}<i class="icon-remove item-forged" title="{{$item.forged}}"></i>&nbsp;{{/if}}{{if $item.location}}<span class="wall-item-location" id="wall-item-location-{{$item.id}}">{{$item.location}},&nbsp;</span>{{/if}}<span class="autotime" title="{{$item.isotime}}">{{$item.localtime}}{{if $item.editedtime}}&nbsp;{{$item.editedtime}}{{/if}}{{if $item.expiretime}}&nbsp;{{$item.expiretime}}{{/if}}</span>{{if $item.editedtime}}&nbsp;<i class="icon-pencil"></i>{{/if}}&nbsp;{{if $item.app}}<span class="item.app">{{$item.str_app}}</span>{{/if}}
+ </div>
+ <div class="wall-item-content conv-list-mode" id="wall-item-content-{{$item.id}}">
+ <div class="wall-item-title-end"></div>
+ <div class="wall-item-body wall-item-listbody" id="wall-item-body-{{$item.id}}" >
+ {{$item.body}}
+ {{if $item.tags}}
+ <div class="body-tag">
+ {{foreach $item.tags as $tag}}
+ <span class='tag'>{{$tag}}</span>
+ {{/foreach}}
+ </div>
+ {{/if}}
+ {{if $item.has_cats}}
+ <div class="categorytags">
+ <span>{{$item.txt_cats}} {{foreach $item.categories as $cat}}{{$cat.name}} <a href="{{$cat.removeurl}}" title="{{$remove}}">[{{$remove}}]</a> {{if $cat.last}}{{else}}, {{/if}}{{/foreach}}
+ </div>
+ {{/if}}
+ {{if $item.has_folders}}
+ <div class="filesavetags">
+ <span>{{$item.txt_folders}} {{foreach $item.folders as $cat}}{{$cat.name}} <a href="{{$cat.removeurl}}" title="{{$remove}}">[{{$remove}}]</a> {{if $cat.last}}{{else}}, {{/if}}{{/foreach}}
+ </div>
+ {{/if}}
+ </div>
+ </div>
+ <div class="wall-item-tools">
+ <div class="wall-item-tools-right btn-group pull-right">
+ {{if $item.like}}
+ <button type="button" class="btn btn-default btn-sm" onclick="dolike({{$item.id}},'like'); return false">
+ <i class="icon-thumbs-up-alt" title="{{$item.like.0}}"></i>
+ </button>
+ {{/if}}
+ {{if $item.dislike}}
+ <button type="button" class="btn btn-default btn-sm" onclick="dolike({{$item.id}},'dislike'); return false">
+ <i class="icon-thumbs-down-alt" title="{{$item.dislike.0}}"></i>
+ </button>
+ {{/if}}
+ <button type="button" class="btn btn-default btn-sm dropdown-toggle" data-toggle="dropdown" id="wall-item-menu-{{$item.id}}">
+ <i class="icon-caret-down"></i>
+ </button>
+ <ul class="dropdown-menu" role="menu" aria-labelledby="wall-item-menu-{{$item.id}}">
+ {{if $item.share}}
+ <li role="presentation"><a role="menuitem" href="#" onclick="jotShare({{$item.id}}); return false"><i class="icon-retweet" title="{{$item.share.0}}"></i> {{$item.share.0}}</a></li>
+ {{/if}}
+ {{if $item.plink}}
+ <li role="presentation"><a role="menuitem" href="{{$item.plink.href}}" title="{{$item.plink.title}}" ><i class="icon-external-link"></i> {{$item.plink.title}}</a></li>
+ {{/if}}
+ {{if $item.edpost}}
+ <li role="presentation"><a role="menuitem" href="{{$item.edpost.0}}" title="{{$item.edpost.1}}"><i class="editpost icon-pencil"></i> {{$item.edpost.1}}</a></li>
+ {{/if}}
+ {{if $item.tagger}}
+ <li role="presentation"><a role="menuitem" href="#" onclick="itemTag({{$item.id}}); return false;"><i id="tagger-{{$item.id}}" class="icon-tag" title="{{$item.tagger.tagit}}"></i> {{$item.tagger.tagit}}</a></li>
+ {{/if}}
+ {{if $item.filer}}
+ <li role="presentation"><a role="menuitem" href="#" onclick="itemFiler({{$item.id}}); return false;"><i id="filer-{{$item.id}}" class="icon-folder-open" title="{{$item.filer}}"></i> {{$item.filer}}</a></li>
+ {{/if}}
+ {{if $item.bookmark}}
+ <li role="presentation"><a role="menuitem" href="#" onclick="itemBookmark({{$item.id}}); return false;"><i id="bookmarker-{{$item.id}}" class="icon-bookmark" title="{{$item.bookmark}}"></i> {{$item.bookmark}}</a></li>
+ {{/if}}
+ {{if $item.addtocal}}
+ <li role="presentation"><a role="menuitem" href="#" onclick="itemAddToCal({{$item.id}}); return false;"><i id="addtocal-{{$item.id}}" class="icon-calendar" title="{{$item.addtocal}}"></i> {{$item.addtocal}}</a></li>
+ {{/if}}
+ {{if $item.star}}
+ <li role="presentation"><a role="menuitem" href="#" onclick="dostar({{$item.id}}); return false;"><i id="starred-{{$item.id}}" class="icon-star {{$item.star.isstarred}}" title="{{$item.star.toggle}}"></i> {{$item.star.toggle}}</a></li>
+ {{/if}}
+ {{if $item.item_photo_menu}}
+ <li role="presentation" class="divider"></li>
+ {{$item.item_photo_menu}}
+ {{/if}}
+ {{if $item.drop.dropping}}
+ <li role="presentation" class="divider"></li>
+ <li role="presentation"><a role="menuitem" href="item/drop/{{$item.id}}" onclick="return confirmDelete();" title="{{$item.drop.delete}}" ><i class="icon-remove"></i> {{$item.drop.delete}}</a></li>
+ {{/if}}
+ </ul>
+ </div>
+ <div id="like-rotator-{{$item.id}}" class="like-rotator"></div>
+ <div class="wall-item-tools-left{{if $item.unseen_comments || $item.like_count || $item.dislike_count}} btn-group{{/if}}">
+
+
+ <div class="wall-item-list-comments btn-group"><button class="btn btn-default btn-sm" onclick="window.location.href='{{$item.viewthread}}'; return false;">{{$item.comment_count_txt}}{{if $item.unseen_comments}}
+<span class="unseen-wall-indicator-{{$item.id}}">, {{$item.list_unseen_txt}}{{/if}}</span></button></div>{{if $item.unseen_comments}}<div class="unseen-wall-indicator-{{$item.id}} btn-group"><button class="btn btn-default btn-sm" title="{{$item.markseen}}" onclick="markItemRead({{$item.id}}); return false;"><i class="icon-check"></i></div>{{/if}}
+
+ {{if $item.like_count}}
+ <div class="btn-group">
+ <button type="button" class="btn btn-default btn-sm wall-item-like dropdown-toggle" data-toggle="dropdown" id="wall-item-like-{{$item.id}}">{{$item.like_count}} {{$item.like_button_label}}</button>
+ {{if $item.like_list_part}}
+ <ul class="dropdown-menu" role="menu" aria-labelledby="wall-item-like-{{$item.id}}">{{foreach $item.like_list_part as $liker}}<li role="presentation">{{$liker}}</li>{{/foreach}}</ul>
+ {{else}}
+ <ul class="dropdown-menu" role="menu" aria-labelledby="wall-item-like-{{$item.id}}">{{foreach $item.like_list as $liker}}<li role="presentation">{{$liker}}</li>{{/foreach}}</ul>
+ {{/if}}
+ </div>
+ {{/if}}
+ {{if $item.dislike_count}}
+ <div class="btn-group">
+ <button type="button" class="btn btn-default btn-sm wall-item-dislike dropdown-toggle" data-toggle="dropdown" id="wall-item-dislike-{{$item.id}}">{{$item.dislike_count}} {{$item.dislike_button_label}}</button>
+ {{if $item.dislike_list_part}}
+ <ul class="dropdown-menu" role="menu" aria-labelledby="wall-item-dislike-{{$item.id}}">{{foreach $item.dislike_list_part as $disliker}}<li role="presentation">{{$disliker}}</li>{{/foreach}}</ul>
+ {{else}}
+ <ul class="dropdown-menu" role="menu" aria-labelledby="wall-item-dislike-{{$item.id}}">{{foreach $item.dislike_list as $disliker}}<li role="presentation">{{$disliker}}</li>{{/foreach}}</ul>
+ {{/if}}
+ </div>
+ {{/if}}
+ </div>
+ {{if $item.like_list_part}}
+ <div class="modal" id="likeModal-{{$item.id}}">
+ <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">{{$item.like_modal_title}}</h4>
+ </div>
+ <div class="modal-body">
+ <ul>{{foreach $item.like_list as $liker}}<li role="presentation">{{$liker}}</li>{{/foreach}}</ul>
+ </div>
+ <div class="modal-footer clear">
+ <button type="button" class="btn btn-default" data-dismiss="modal">{{$item.modal_dismiss}}</button>
+ </div>
+ </div><!-- /.modal-content -->
+ </div><!-- /.modal-dialog -->
+ </div><!-- /.modal -->
+ {{/if}}
+ {{if $item.dislike_list_part}}
+ <div class="modal" id="dislikeModal-{{$item.id}}">
+ <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">{{$item.dislike_modal_title}}</h4>
+ </div>
+ <div class="modal-body">
+ <ul>{{foreach $item.dislike_list as $disliker}}<li role="presentation">{{$disliker}}</li>{{/foreach}}</ul>
+ </div>
+ <div class="modal-footer clear">
+ <button type="button" class="btn btn-default" data-dismiss="modal">{{$item.modal_dismiss}}</button>
+ </div>
+ </div><!-- /.modal-content -->
+ </div><!-- /.modal-dialog -->
+ </div><!-- /.modal -->
+ {{/if}}
+ </div>
+ <div class="clear"></div>
+ </div>
+ <div class="wall-item-wrapper-end"></div>
+ <div class="wall-item-outside-wrapper-end {{$item.indent}}" ></div>
+ </div>
+ </div>
+{{if $item.comment_lastcollapsed}}
+</div>
+{{/if}}
diff --git a/view/tpl/design_tools.tpl b/view/tpl/design_tools.tpl
index 80a538231..53d90be74 100644
--- a/view/tpl/design_tools.tpl
+++ b/view/tpl/design_tools.tpl
@@ -2,7 +2,7 @@
<h3>{{$title}}</h3>
<ul>
<li><a href="blocks/{{$who}}">{{$blocks}}</a></li>
-<li><a href="menu">{{$menus}}</a></li>
+<li><a href="menu{{if $sys}}?f=&sys=1{{/if}}">{{$menus}}</a></li>
<li><a href="layouts/{{$who}}">{{$layout}}</a></li>
<li><a href="webpages/{{$who}}">{{$pages}}</a></li>
</ul>
diff --git a/view/tpl/diaspora_vcard.tpl b/view/tpl/diaspora_vcard.tpl
index 9d234a398..f9dac9306 100644
--- a/view/tpl/diaspora_vcard.tpl
+++ b/view/tpl/diaspora_vcard.tpl
@@ -2,7 +2,7 @@
<dl class='entity_nickname'>
<dt>Nickname</dt>
<dd>
- <a class="nickname url uid" href="{{$diaspora.podloc}}/" rel="me">{{$diaspora.nickname}}</a>
+ <a class="nickname url uid" href="{{$diaspora.podloc}}/" rel="me">{{$diaspora.fullname}}</a>
</dd>
</dl>
<dl class='entity_fn'>
diff --git a/view/tpl/dir_sort_links.tpl b/view/tpl/dir_sort_links.tpl
index d78aec1f5..d9ecd22c6 100644
--- a/view/tpl/dir_sort_links.tpl
+++ b/view/tpl/dir_sort_links.tpl
@@ -1,6 +1,10 @@
<div class="widget" id="dir_sort_links">
<h3>{{$header}}</h3>
-<a href="directory?f=&order=normal">{{$normal}}</a><br />
-<a href="directory?f=&order=reverse">{{$reverse}}</a><br />
-<a href="directory?f=&order=date">{{$date}}</a><br />
+{{$sort}}: <select onchange='window.location.href="{{$sorturl}}&order="+this.value'>
+<option value='normal' {{if $selected_sort == 'normal'}}selected='selected'{{/if}}>{{$normal}}</option>
+<option value='reverse' {{if $selected_sort == 'reverse'}}selected='selected'{{/if}}>{{$reverse}}</option>
+<option value='date' {{if $selected_sort == 'date'}}selected='selected'{{/if}}>{{$date}}</option>
+<option value='reversedate' {{if $selected_sort == 'reversedate'}}selected='selected'{{/if}}>{{$reversedate}}</option>
+</select><br />
+<input type='checkbox' {{if $pubforumsonly}}checked='checked'{{/if}} onchange='window.location.href="{{$forumsurl}}&pubforums="+(this.checked ? 1 : 0)'/> {{$pubforums}}<br />
</div>
diff --git a/view/tpl/directory_header.tpl b/view/tpl/directory_header.tpl
index 01356597e..477df8a63 100755
--- a/view/tpl/directory_header.tpl
+++ b/view/tpl/directory_header.tpl
@@ -1,3 +1,4 @@
+<div class="generic-content-wrapper-styled">
<h1>{{$dirlbl}}</h1>
{{if $search}}
@@ -8,9 +9,8 @@
{{include file="direntry.tpl"}}
{{/foreach}}
-
<div id="page-end"></div>
<div class="directory-end"></div>
+</div>
<script>$(document).ready(function() { loadingPage = false;});</script>
<div id="page-spinner"></div>
-
diff --git a/view/tpl/direntry.tpl b/view/tpl/direntry.tpl
index e5f12944e..cdc6f1f97 100755
--- a/view/tpl/direntry.tpl
+++ b/view/tpl/direntry.tpl
@@ -1,16 +1,38 @@
<div class="directory-item lframe" id="directory-item-{{$entry.id}}" >
-<div class="generic-content-wrapper">
<div class="contact-photo-wrapper" id="directory-photo-wrapper-{{$entry.id}}" >
<div class="contact-photo" id="directory-photo-{{$entry.id}}" >
<a href="{{$entry.profile_link}}" class="directory-profile-link" id="directory-profile-link-{{$entry.id}}" ><img class="directory-photo-img" src="{{$entry.photo}}" alt="{{$entry.alttext}}" title="{{$entry.alttext}}" /></a>
+{{if $entry.connect}}
+<div class="directory-connect btn btn-default"><a href="{{$entry.connect}}"><i class="icon-plus connect-icon"></i> {{$entry.conn_label}}</a></div>
+{{/if}}
+{{if $entry.ignlink}}
+<div class="directory-ignore btn btn-default"><a href="{{$entry.ignlink}}"> {{$entry.ignore_label}}</a></div>
+{{/if}}
</div>
</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 btn btn-default"><a href="{{$entry.connect}}"><i class="icon-plus connect-icon"></i> {{$entry.conn_label}}</a></div>
+<div class='contact-info'>
+<div class="contact-name" id="directory-name-{{$entry.id}}" ><a href='{{$entry.profile_link}}' >{{$entry.name}}</a>{{if $entry.online}} <i class="icon-asterisk online-now" title="{{$entry.online}}"></i>{{/if}}</div>
+
+{{if $entry.public_forum}}
+<div class="contact-forum">
+{{$entry.forum_label}} @{{$entry.nickname}}+
+</div>
{{/if}}
+
<div class="contact-details">{{$entry.details}}</div>
+{{if $entry.hometown}}
+<div class="directory-hometown">{{$entry.hometown}} </div>
+{{/if}}
+{{if $entry.about}}
+<div class="directory-about">{{$entry.about}} </div>
+{{/if}}
+{{if $entry.homepage}}
+<div class="directory-homepage">{{$entry.homepage}}{{$entry.homepageurl}} </div>
+{{/if}}
+{{if $entry.kw}}
+<div class="directory-keywords">{{$entry.kw}} {{$entry.keywords}}</div>
+{{/if}}
</div>
</div>
diff --git a/view/tpl/direntry_large.tpl b/view/tpl/direntry_large.tpl
deleted file mode 100755
index da6ea1a44..000000000
--- a/view/tpl/direntry_large.tpl
+++ /dev/null
@@ -1,43 +0,0 @@
-<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 btn btn-default"><a href="{{$connect}}"><i class="icon-plus connect-icon"></i> {{$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/display-head.tpl b/view/tpl/display-head.tpl
index 3d4e7e96a..007d33fe8 100755
--- a/view/tpl/display-head.tpl
+++ b/view/tpl/display-head.tpl
@@ -1,8 +1,8 @@
<script>
$(document).ready(function() {
- $(".comment-edit-wrapper textarea").contact_autocomplete(baseurl+"/acl");
+ $(".comment-edit-wrapper textarea").contact_autocomplete(baseurl+"/acl?f=&n=1");
// make auto-complete work in more places
- $(".wall-item-comment-wrapper textarea").contact_autocomplete(baseurl+"/acl");
+ $(".wall-item-comment-wrapper textarea").contact_autocomplete(baseurl+"/acl?f=&n=1");
});
</script>
diff --git a/view/tpl/event_form.tpl b/view/tpl/event_form.tpl
index 95ebe0351..a4717415e 100755
--- a/view/tpl/event_form.tpl
+++ b/view/tpl/event_form.tpl
@@ -1,13 +1,15 @@
+<div class="generic-content-wrapper-styled">
+
<h3>{{$title}}</h3>
<p>
-{{if ! $bootstrap}}
-{{$format_desc}} {{/if}}{{$desc}}
+{{$desc}}
</p>
<form action="{{$post}}" method="post" >
<input type="hidden" name="event_id" value="{{$eid}}" />
+<input type="hidden" name="event_hash" value="{{$event_hash}}" />
<input type="hidden" name="xchan" value="{{$xchan}}" />
<input type="hidden" name="mid" value="{{$mid}}" />
@@ -15,11 +17,7 @@
<input type="text" id="event-summary" name="summary" value="{{$t_orig}}" />
<div id="event-start-text">{{$s_text}}</div>
-{{if $bootstrap}}
-<i class="icon-calendar btn btn-default" onclick="eventGetStart(); return false;" /></i> <input type="text" name="start_text" id="start-text" value="{{$stext}}" />
-{{else}}
-{{$s_dsel}} {{$s_tsel}}
-{{/if}}
+{{$s_dsel}}
<div class="clear"></div><br />
@@ -29,11 +27,7 @@
<div id="event-finish-wrapper">
<div id="event-finish-text">{{$f_text}}</div>
-{{if $bootstrap}}
-<i class="icon-calendar btn btn-default" onclick="eventGetFinish(); return false;" /></i> <input type="text" name="finish_text" id="finish-text" value="{{$ftext}}" />
-{{else}}
-{{$f_dsel}} {{$f_tsel}}
-{{/if}}
+{{$f_dsel}}
</div>
<div id="event-datetime-break"></div>
@@ -47,14 +41,12 @@
{{if $catsenabled}}
<div id="event-category-wrap">
- <input name="category" id="event-category" type="text" placeholder="{{$placeholdercategory}}" value="{{$category}}" class="jothidden" style="display:none" />
+ <input name="category" id="event-category" type="text" placeholder="{{$placeholdercategory}}" value="{{$category}}" class="event-cats" style="display: block;" />
</div>
{{/if}}
-
-
<div id="event-desc-text">{{$d_text}}</div>
<textarea id="event-desc-textarea" name="desc">{{$d_orig}}</textarea>
@@ -66,87 +58,11 @@
<input type="checkbox" name="share" value="1" id="event-share-checkbox" {{$sh_checked}} /> <div id="event-share-text">{{$sh_text}}</div>
<div id="event-share-break"></div>
-{{$acl}}
+<button id="event-permissions-button" class="btn btn-default btn-xs" data-toggle="modal" data-target="#aclModal" onclick="return false;">{{$permissions}}</button>
+ {{$acl}}
<div class="clear"></div>
<input id="event-submit" type="submit" name="submit" value="{{$submit}}" />
</form>
-<!-- Modal for item expiry-->
-<div class="modal" id="startModal" 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="startModalLabel">{{$s_text}}</h4>
- </div>
- <!-- <div class="modal-body"> -->
- <div class="modal-body form-group" style="width:90%">
- <div class="input-group input-group-sm date" id="datetimepickerstart">
- <span class="input-group-addon"><!-- <span class="glyphicon glyphicon-calendar"></span> -->
- <span class="icon-calendar"></span>
- </span>
- <input id="start-date" value='{{$stext}}' 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">{{$ModalCANCEL}}</button>
- <button id="start-modal-OKButton" type="button" class="btn btn-primary">{{$ModalOK}}</button>
- </div>
- </div><!-- /.modal-content -->
- </div><!-- /.modal-dialog -->
-</div><!-- /.modal -->
-<script type="text/javascript">
- $(function() {
- $('#datetimepickerstart').datetimepicker({
- language: 'us',
- icons: {
- time: "icon-time",
- date: "icon-calendar",
- up: "icon-arrow-up",
- down: "icon-arrow-down"
- }
- });
- });
-</script>
-
-<!-- Modal for item expiry-->
-<div class="modal" id="finishModal" 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="finishModalLabel">{{$s_text}}</h4>
- </div>
- <!-- <div class="modal-body"> -->
- <div class="modal-body form-group" style="width:90%">
- <div class="input-group input-group-sm date" id="datetimepickerfinish">
- <span class="input-group-addon"><!-- <span class="glyphicon glyphicon-calendar"></span> -->
- <span class="icon-calendar"></span>
- </span>
- <input id="finish-date" value='{{$ftext}}' 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">{{$ModalCANCEL}}</button>
- <button id="finish-modal-OKButton" type="button" class="btn btn-primary">{{$ModalOK}}</button>
- </div>
- </div><!-- /.modal-content -->
- </div><!-- /.modal-dialog -->
-</div><!-- /.modal -->
-<script type="text/javascript">
- $(function() {
- $('#datetimepickerfinish').datetimepicker({
- language: 'us',
- icons: {
- time: "icon-time",
- date: "icon-calendar",
- up: "icon-arrow-up",
- down: "icon-arrow-down"
- }
- });
- });
-</script>
-
+</div>
diff --git a/view/tpl/event_head.tpl b/view/tpl/event_head.tpl
index 8388187d1..bcb1e07f6 100755
--- a/view/tpl/event_head.tpl
+++ b/view/tpl/event_head.tpl
@@ -24,10 +24,11 @@
eventClick: function(calEvent, jsEvent, view) {
showEvent(calEvent.id);
},
-
+
eventRender: function(event, element, view) {
//console.log(view.name);
if (event.item['author']['xchan_name']==null) return;
+
switch(view.name){
case "month":
element.find(".fc-event-title").html(
@@ -115,10 +116,10 @@
$('#event-share-checkbox').change(function() {
if ($('#event-share-checkbox').is(':checked')) {
- $('#acl-wrapper').show();
+ $('#event-permissions-button').show();
}
else {
- $('#acl-wrapper').hide();
+ $('#event-permissions-button').hide();
}
}).trigger('change');
diff --git a/view/tpl/events-js.tpl b/view/tpl/events-js.tpl
index c87d20529..9812291bf 100755
--- a/view/tpl/events-js.tpl
+++ b/view/tpl/events-js.tpl
@@ -1,6 +1,18 @@
{{$tabs}}
+<div class="generic-content-wrapper-styled">
<h2>{{$title}}</h2>
-<div id="new-event-link"><a href="{{$new_event.0}}" >{{$new_event.1}}</a></div>
+
+<div id="export-event-link"><button class="btn btn-default btn-sm" onclick="exportDate(); return false;" >{{$export.1}}</button></div>
+<div id="new-event-link"><button class="btn btn-default btn-sm" onclick="window.location.href='{{$new_event.0}}'; return false;" >{{$new_event.1}}</button></div>
+
+<script>
+function exportDate() {
+ var moment = $('#events-calendar').fullCalendar('getDate');
+ var sT = 'events/' + moment.getFullYear() + '/' + (moment.getMonth() + 1) + '/export';
+ window.location.href=sT;
+}
+</script>
<div id="events-calendar"></div>
+</div>
diff --git a/view/tpl/failed_updates.tpl b/view/tpl/failed_updates.tpl
index 68c0bcdf2..f53f1f478 100755
--- a/view/tpl/failed_updates.tpl
+++ b/view/tpl/failed_updates.tpl
@@ -1,3 +1,4 @@
+<div class="generic-content-wrapper-styled">
<h2>{{$banner}}</h2>
<div id="failed_updates_desc">{{$desc}}</div>
@@ -14,4 +15,4 @@
<hr />
{{/foreach}}
{{/if}}
-
+</div>
diff --git a/view/tpl/fileas_widget.tpl b/view/tpl/fileas_widget.tpl
index 70d68c56e..a92440cb0 100755
--- a/view/tpl/fileas_widget.tpl
+++ b/view/tpl/fileas_widget.tpl
@@ -2,10 +2,10 @@
<h3>{{$title}}</h3>
<div id="nets-desc">{{$desc}}</div>
- <ul class="fileas-ul">
- <li class="tool"><a href="{{$base}}" class="fileas-link fileas-all{{if $sel_all}} fileas-selected{{/if}}">{{$all}}</a></li>
+ <ul class="nav nav-pills nav-stacked">
+ <li><a href="{{$base}}"{{if $sel_all}} class="fileas-selected"{{/if}}>{{$all}}</a></li>
{{foreach $terms as $term}}
- <li class="tool"><a href="{{$base}}?f=&file={{$term.name}}" class="fileas-link{{if $term.selected}} fileas-selected{{/if}}">{{$term.name}}</a></li>
+ <li><a href="{{$base}}?f=&file={{$term.name}}"{{if $term.selected}} class="fileas-selected"{{/if}}>{{$term.name}}</a></li>
{{/foreach}}
</ul>
diff --git a/view/tpl/generic_links_widget.tpl b/view/tpl/generic_links_widget.tpl
index 5ae52aa8a..d7c234a84 100755
--- a/view/tpl/generic_links_widget.tpl
+++ b/view/tpl/generic_links_widget.tpl
@@ -2,9 +2,9 @@
{{if $title}}<h3>{{$title}}</h3>{{/if}}
{{if $desc}}<div class="desc">{{$desc}}</div>{{/if}}
- <ul>
+ <ul class="nav nav-pills nav-stacked">
{{foreach $items as $item}}
- <li class="tool"><a href="{{$item.url}}" class="{{if $item.selected}}active{{/if}}">{{$item.label}}</a></li>
+ <li><a href="{{$item.url}}" class="{{if $item.selected}}active{{/if}}">{{$item.label}}</a></li>
{{/foreach}}
</ul>
diff --git a/view/tpl/group_side.tpl b/view/tpl/group_side.tpl
index 8c5d3927d..4afe1286f 100755
--- a/view/tpl/group_side.tpl
+++ b/view/tpl/group_side.tpl
@@ -1,31 +1,25 @@
<div class="widget" id="group-sidebar">
-<h3>{{$title}}</h3>
-
-
-<div id="sidebar-group-list">
- <ul id="sidebar-group-ul">
- {{foreach $groups as $group}}
- <li class="sidebar-group-li">
+ <h3>{{$title}}</h3>
+ <div>
+ <ul class="nav nav-pills nav-stacked">
+ {{foreach $groups as $group}}
+ <li>
{{if $group.cid}}
- <input type="checkbox"
- class="{{if $group.selected}}ticked{{else}}unticked {{/if}} action"
- onclick="contactgroupChangeMember('{{$group.id}}','{{$group.cid}}');return true;"
- {{if $group.ismember}}checked="checked"{{/if}}
- />
- {{/if}}
+ <a class="pull-right group-edit-tool fakelink" onclick="contactgroupChangeMember('{{$group.id}}','{{$group.enc_cid}}'); return true;"/>
+ <i id="group-{{$group.id}}" class="{{if $group.ismember}}icon-check{{else}}icon-check-empty{{/if}}"></i>
+ </a>
+ {{/if}}
{{if $group.edit}}
- <a class="groupsideedit" href="{{$group.edit.href}}" title="{{$edittext}}"><i id="edit-sidebar-group-element-{{$group.id}}" class="group-edit-icon iconspacer icon-pencil"></i></a>
+ <a class="pull-right group-edit-tool" href="{{$group.edit.href}}" title="{{$edittext}}"><i class="group-edit-icon icon-pencil"></i></a>
{{/if}}
- <span class="sidebar-group-name"><a id="sidebar-group-element-{{$group.id}}" class="sidebar-group-element {{if $group.selected}}group-selected{{/if}}" href="{{$group.href}}">{{$group.text}}</a></span>
+ <a{{if $group.selected}} class="group-selected"{{/if}} href="{{$group.href}}">{{$group.text}}</a>
</li>
- {{/foreach}}
- </ul>
-</div>
-
- <div id="sidebar-new-group">
- <a href="group/new">{{$createtext}}</a>
- </div>
-
+ {{/foreach}}
+ <li>
+ <a href="group/new">{{$createtext}}</a>
+ </li>
+ </ul>
+ </div>
</div>
diff --git a/view/tpl/head.tpl b/view/tpl/head.tpl
index 703b08547..9c9e7b970 100755
--- a/view/tpl/head.tpl
+++ b/view/tpl/head.tpl
@@ -25,6 +25,7 @@
var updateInterval = {{$update_interval}};
var localUser = {{if $local_user}}{{$local_user}}{{else}}false{{/if}};
var zid = {{if $zid}}'{{$zid}}'{{else}}null{{/if}};
+ var justifiedGalleryActive = false;
</script>
diff --git a/view/tpl/install_db.tpl b/view/tpl/install_db.tpl
index 3968d2a54..1a58de129 100755
--- a/view/tpl/install_db.tpl
+++ b/view/tpl/install_db.tpl
@@ -22,7 +22,7 @@
{{include file="field_input.tpl" field=$dbuser}}
{{include file="field_password.tpl" field=$dbpass}}
{{include file="field_input.tpl" field=$dbdata}}
-
+{{include file="field_select.tpl" field=$dbtype}}
<input id="install-submit" type="submit" name="submit" value="{{$submit}}" />
diff --git a/view/tpl/install_settings.tpl b/view/tpl/install_settings.tpl
index d6fc66c87..f4fd82fdb 100755
--- a/view/tpl/install_settings.tpl
+++ b/view/tpl/install_settings.tpl
@@ -14,6 +14,7 @@
<input type="hidden" name="dbuser" value="{{$dbuser}}" />
<input type="hidden" name="dbpass" value="{{$dbpass}}" />
<input type="hidden" name="dbdata" value="{{$dbdata}}" />
+<input type="hidden" name="dbtype" value="{{$dbtype}}" />
<input type="hidden" name="pass" value="4" />
{{include file="field_input.tpl" field=$adminmail}}
diff --git a/view/tpl/jot-header.tpl b/view/tpl/jot-header.tpl
index abf446ba9..bdbb7d09c 100755
--- a/view/tpl/jot-header.tpl
+++ b/view/tpl/jot-header.tpl
@@ -309,7 +309,7 @@ function enableOnUser(){
function jotClearLocation() {
$('#jot-coord').val('');
- $('#profile-nolocation-wrapper').hide();
+ $('#profile-nolocation-wrapper').attr('disabled', true);
}
diff --git a/view/tpl/jot.tpl b/view/tpl/jot.tpl
index c4fdba0f5..00ef77d93 100755
--- a/view/tpl/jot.tpl
+++ b/view/tpl/jot.tpl
@@ -19,64 +19,72 @@
<span class="channel-id-select-desc">{{$id_seltext}}</span> {{$id_select}}
</div>
{{/if}}
- <div id="jot-title-wrap">
- <input name="title" id="jot-title" type="text" placeholder="{{$placeholdertitle}}" value="{{$title}}" class="jothidden" style="display:none">
+ <div id="jot-title-wrap" class="jothidden" style="display:none">
+ <input name="title" id="jot-title" type="text" placeholder="{{$placeholdertitle}}" value="{{$title}}">
</div>
{{if $catsenabled}}
- <div id="jot-category-wrap">
- <input name="category" id="jot-category" type="text" placeholder="{{$placeholdercategory}}" value="{{$category}}" class="jothidden" style="display:none" />
+ <div id="jot-category-wrap" class="jothidden" style="display:none">
+ <input name="category" id="jot-category" type="text" placeholder="{{$placeholdercategory}}" value="{{$category}}" data-role="tagsinput"/>
</div>
{{/if}}
{{if $webpage}}
- <div id="jot-pagetitle-wrap">
- <input name="pagetitle" id="jot-pagetitle" type="text" placeholder="{{$placeholdpagetitle}}" value="{{$pagetitle}}" class="jothidden" style="display:none" />
+ <div id="jot-pagetitle-wrap" class="jothidden" style="display:none">
+ <input name="pagetitle" id="jot-pagetitle" type="text" placeholder="{{$placeholdpagetitle}}" value="{{$pagetitle}}" />
</div>
{{/if}}
<div id="jot-text-wrap">
<textarea class="profile-jot-text" id="profile-jot-text" name="body" placeholder="{{$share}}">{{$content}}</textarea>
</div>
<div id="profile-jot-submit-wrapper" class="jothidden">
- <div id="profile-jot-submit-left" class="btn-group pull-left">
+ <div id="profile-jot-submit-left" class="btn-toolbar pull-left">
{{if $visitor}}
- <button id="wall-image-upload" class="btn btn-default btn-sm" title="{{$upload}}" >
- <i class="icon-camera jot-icons"></i>
- </button>
- <button id="wall-file-upload" class="btn btn-default btn-sm" title="{{$attach}}" >
- <i id="wall-file-upload" class="icon-paper-clip jot-icons"></i>
- </button>
- <button id="profile-link-wrapper" class="btn btn-default btn-sm" title="{{$weblink}}" ondragenter="linkdropper(event);" ondragover="linkdropper(event);" ondrop="linkdrop(event);" onclick="jotGetLink(); return false;">
- <i id="profile-link" class="icon-link jot-icons"></i>
- </button>
- <button id="profile-video-wrapper" class="btn btn-default btn-sm" title="{{$video}}" onclick="jotVideoURL();return false;">
- <i id="profile-video" class="icon-facetime-video jot-icons"></i>
- </button>
- <button id="profile-audio-wrapper" class="btn btn-default btn-sm" title="{{$audio}}" onclick="jotAudioURL();return false;">
- <i id="profile-audio" class="icon-volume-up jot-icons"></i>
- </button>
- <button id="profile-nolocation-wrapper" class="btn btn-default btn-sm" style="display: none;" title="{{$noloc}}" onclick="jotClearLocation();return false;">
- <i id="profile-nolocation" class="icon-circle-blank jot-icons"></i>
- </button>
- <button id="profile-location-wrapper" class="btn btn-default btn-sm" title="{{$setloc}}" onclick="jotGetLocation();return false;">
- <i id="profile-location" class="icon-globe jot-icons"></i>
- </button>
+ <div class='btn-group'>
+ <button id="wall-image-upload" class="btn btn-default btn-sm" title="{{$upload}}" >
+ <i class="icon-camera jot-icons"></i>
+ </button>
+ <button id="wall-file-upload" class="btn btn-default btn-sm" title="{{$attach}}" >
+ <i id="wall-file-upload-icon" class="icon-paper-clip jot-icons"></i>
+ </button>
+ <button id="profile-link-wrapper" class="btn btn-default btn-sm" title="{{$weblink}}" ondragenter="linkdropper(event);" ondragover="linkdropper(event);" ondrop="linkdrop(event);" onclick="jotGetLink(); return false;">
+ <i id="profile-link" class="icon-link jot-icons"></i>
+ </button>
+ <button id="profile-video-wrapper" class="btn btn-default btn-sm" title="{{$video}}" onclick="jotVideoURL();return false;">
+ <i id="profile-video" class="icon-facetime-video jot-icons"></i>
+ </button>
+ <button id="profile-audio-wrapper" class="btn btn-default btn-sm" title="{{$audio}}" onclick="jotAudioURL();return false;">
+ <i id="profile-audio" class="icon-volume-up jot-icons"></i>
+ </button>
+ </div>
+ <div class='btn-group'>
+ <button id="profile-location-wrapper" class="btn btn-default btn-sm" title="{{$setloc}}" onclick="jotGetLocation();return false;">
+ <i id="profile-location" class="icon-globe jot-icons"></i>
+ </button>
+ {{if $noloc}}
+ <button id="profile-nolocation-wrapper" class="btn btn-default btn-sm" title="{{$noloc}}" onclick="jotClearLocation();return false;" disabled="disabled">
+ <i id="profile-nolocation" class="icon-circle-blank jot-icons"></i>
+ </button>
+ {{/if}}
+ {{else}}
+ <div class='btn-group'>
{{/if}}
{{if $feature_expire}}
- <button id="profile-expire-wrapper" class="btn btn-default btn-sm" title="{{$expires}}" onclick="jotGetExpiry();return false;">
- <i id="profile-expires" class="icon-eraser jot-icons"></i>
- </button>
+ <button id="profile-expire-wrapper" class="btn btn-default btn-sm" title="{{$expires}}" onclick="jotGetExpiry();return false;">
+ <i id="profile-expires" class="icon-eraser jot-icons"></i>
+ </button>
{{/if}}
{{if $feature_encrypt}}
- <button id="profile-encrypt-wrapper" class="btn btn-default btn-sm" title="{{$encrypt}}" onclick="red_encrypt('{{$cipher}}','#profile-jot-text',$('#profile-jot-text').val());return false;">
- <i id="profile-encrypt" class="icon-key jot-icons"></i>
- </button>
+ <button id="profile-encrypt-wrapper" class="btn btn-default btn-sm" title="{{$encrypt}}" onclick="red_encrypt('{{$cipher}}','#profile-jot-text',$('#profile-jot-text').val());return false;">
+ <i id="profile-encrypt" class="icon-key jot-icons"></i>
+ </button>
{{/if}}
+ </div>
</div>
<div id="profile-rotator-wrapper">
<div id="profile-rotator"></div>
</div>
<div id="profile-jot-submit-right" class="btn-group pull-right">
{{if $showacl}}
- <button class="btn btn-default btn-sm" data-toggle="modal" data-target="#aclModal" title="{{$permset}}" onclick="return false;">
+ <button id="dbtn-acl" class="btn btn-default btn-sm" data-toggle="modal" data-target="#aclModal" title="{{$permset}}" onclick="return false;">
<i id="jot-perms-icon" class="icon-{{$lockstate}} jot-icons">{{$bang}}</i>
</button>
{{/if}}
@@ -85,7 +93,7 @@
<i class="icon-eye-open jot-icons" ></i>
</button>
{{/if}}
- <button class="btn btn-primary btn-sm" type="submit" name="submit">{{$share}}</button>
+ <button id="dbtn-submit" class="btn btn-primary btn-sm" type="submit" name="button-submit" >{{$share}}</button>
</div>
<div id="profile-jot-perms-end"></div>
<div id="profile-jot-plugin-wrapper">
@@ -108,12 +116,7 @@
</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 class='date'><input type='text' placeholder='yyyy-mm-dd HH:MM' name='start_text' id='expiration-date' class="form-control" /></div><script type='text/javascript'>$(function () {var picker = $('#expiration-date').datetimepicker({format:'Y-m-d H:i', minDate: 0 }); })</script>
</div>
<!-- </div> -->
<div class="modal-footer">
diff --git a/view/tpl/jot_geotag.tpl b/view/tpl/jot_geotag.tpl
index 7a398b612..60f128850 100755
--- a/view/tpl/jot_geotag.tpl
+++ b/view/tpl/jot_geotag.tpl
@@ -1,7 +1,7 @@
if(navigator.geolocation) {
navigator.geolocation.getCurrentPosition(function(position) {
$('#jot-coord').val(position.coords.latitude + ' ' + position.coords.longitude);
- $('#profile-nolocation-wrapper').show();
+ $('#profile-nolocation-wrapper').attr('disabled', false);
});
}
diff --git a/view/tpl/js_strings.tpl b/view/tpl/js_strings.tpl
index 515e3107f..eb78c669f 100755
--- a/view/tpl/js_strings.tpl
+++ b/view/tpl/js_strings.tpl
@@ -15,6 +15,7 @@
'passhint' : "{{$passhint}}",
'permschange' : "{{$permschange}}",
'closeAll' : "{{$closeAll}}",
+ 'nothingnew' : "{{$nothingnew}}",
't01' : "{{$t01}}",
't02' : "{{$t02}}",
diff --git a/view/tpl/layoutlist.tpl b/view/tpl/layoutlist.tpl
index 96c692c1c..0a0085497 100644
--- a/view/tpl/layoutlist.tpl
+++ b/view/tpl/layoutlist.tpl
@@ -4,10 +4,10 @@
{{foreach $pages as $key => $items}}
{{foreach $items as $item}}
<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 $share}}<a href="layouts/{{$channel}}/share/{{$item.mid}}" title="{{$share}}"><i class="icon-share design-icons"></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}}
+ {{if $edit}}<a href="{{$baseurl}}/{{$item.url}}" title="{{$edit}}"><i class="icon-pencil design-icons design-edit-icon btn btn-default"></i></a> {{/if}}
+ {{if $view}}<a href="page/{{$channel}}/{{$item.title}}" title="{{$view}}"><i class="icon-external-link design-icons design-view-icon btn btn-default"></i></a> {{/if}}
+ {{if $share}}<a href="layouts/{{$channel}}/share/{{$item.mid}}" title="{{$share}}"><i class="icon-share design-icons btn btn-default"></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}}
diff --git a/view/tpl/locmanage.tpl b/view/tpl/locmanage.tpl
new file mode 100644
index 000000000..5a25850a1
--- /dev/null
+++ b/view/tpl/locmanage.tpl
@@ -0,0 +1,26 @@
+<h2>{{$header}}</h2>
+
+<script>
+function primehub(id) {
+ $.post('locs','primary='+id,function(data) { window.location.href=window.location.href; });
+}
+function drophub(id) {
+ $.post('locs','drop='+id,function(data) { window.location.href=window.location.href; });
+}
+</script>
+
+<table>
+<tr><td>{{$loc}}</td><td>{{$mkprm}}</td><td>{{$drop}}</td></tr>
+{{foreach $hubs as $hub}}
+<tr><td>
+{{if $hub.deleted}}<strike>{{/if}}
+{{$hub.hubloc_url}} ({{$hub.hubloc_addr}}){{if $hub.deleted}}</strike>{{/if}}</td>
+<td>
+
+{{if $hub.primary}}<i class="icon-check"></i>{{else}}<button class="btn btn-std"><i class="icon-check-empty" onclick="primehub({{$hub.hubloc_id}}); return false;" ></i></button>{{/if}}
+</td>
+<td>{{if $hub.primary}}{{else}}{{if ! $hub.deleted}}<button class="btn btn-std" onclick="drophub({{$hub.hubloc_id}}); return false;"><i class="icon-remove"></i></button>{{/if}}{{/if}}</td>
+</tr>
+{{/foreach}}
+</table>
+
diff --git a/view/tpl/mail_list.tpl b/view/tpl/mail_list.tpl
index e17a206a0..6b06f6127 100755
--- a/view/tpl/mail_list.tpl
+++ b/view/tpl/mail_list.tpl
@@ -3,6 +3,6 @@
<span class="mail-list">{{$from_name}}</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>
+ <span class="mail-list mail-list-remove" class="btn btn-default btn-sm"><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>
</div>
diff --git a/view/tpl/menulist.tpl b/view/tpl/menulist.tpl
index 271bace82..bb862fef0 100644
--- a/view/tpl/menulist.tpl
+++ b/view/tpl/menulist.tpl
@@ -1,3 +1,5 @@
+<div class="generic-content-wrapper-styled">
+
<h1>{{$title}}</h1>
<a href="menu/new" title="{{$hintnew}}">{{$hintnew}}</a>
@@ -7,10 +9,9 @@
{{if $menus }}
<ul id="menulist">
{{foreach $menus as $m }}
-<li><a href="menu/{{$m.menu_id}}" title="{{$hintedit}}"><i class="icon-pencil design-icons design-edit-icon"></i></a> <a href="menu/{{$m.menu_id}}/drop" title={{$hintdrop}}><i class="icon-remove drop-icons design-icons design-remove-icon"></i></a>&nbsp;&nbsp;&nbsp;&nbsp;<a href="mitem/{{$m.menu_id}}/new" title="{{$hintcontent}}">{{$m.menu_name}}</a></li>
+<li><a href="menu/{{$m.menu_id}}" title="{{$hintedit}}"><i class="icon-pencil design-icons design-edit-icon btn btn-default"></i></a> <a href="menu/{{$m.menu_id}}/drop" title="{{$hintdrop}}"><i class="icon-remove drop-icons design-icons design-remove-icon btn btn-default"></i></a>&nbsp;&nbsp;&nbsp;&nbsp;{{if $m.bookmark}}<i class="icon-bookmark" title="{{$bmark}}" ></i>&nbsp;{{/if}}<a href="mitem/{{$m.menu_id}}/new" title="{{$hintcontent}}">{{$m.menu_name}}</a></li>
{{/foreach}}
</ul>
{{/if}}
-
-
+</div>
diff --git a/view/tpl/message_side.tpl b/view/tpl/message_side.tpl
index 723a64019..3e32eae14 100755
--- a/view/tpl/message_side.tpl
+++ b/view/tpl/message_side.tpl
@@ -1,11 +1,14 @@
-<div id="message-sidebar" class="widget">
- <div id="message-check" class="btn btn-default"><a href="{{$check.url}}" class="{{if $check.sel}}checkmessage-selected{{/if}}">{{$check.label}}</a> </div>
- <div id="message-new" class="btn btn-default"><a href="{{$new.url}}" class="{{if $new.sel}}newmessage-selected{{/if}}">{{$new.label}}</a> </div>
-
- <ul class="message-ul">
+<div class="widget">
+ <h3>{{$title}}</h3>
+ <ul class="nav nav-pills nav-stacked">
+ <li><a href="{{$check.url}}"{{if $check.sel}} class="checkmessage-selected"{{/if}}>{{$check.label}}</a></li>
+ <li><a href="{{$new.url}}"{{if $new.sel}} class="newmessage-selected"{{/if}}>{{$new.label}}</a></li>
+ </ul>
+ {{if $tabs}}
+ <ul class="nav nav-pills nav-stacked">
{{foreach $tabs as $t}}
- <li class="tool"><a href="{{$t.url}}" class="message-link{{if $t.sel}}message-selected{{/if}}">{{$t.label}}</a></li>
+ <li><a href="{{$t.url}}"{{if $t.sel}} class="message-selected"{{/if}}>{{$t.label}}</a></li>
{{/foreach}}
</ul>
-
+ {{/if}}
</div>
diff --git a/view/tpl/mitemedit.tpl b/view/tpl/mitemedit.tpl
index 482005e44..a18fbb0ef 100644
--- a/view/tpl/mitemedit.tpl
+++ b/view/tpl/mitemedit.tpl
@@ -26,7 +26,7 @@
<div class="mitemedit-submit-wrapper" >
-<input type="submit" name="submit" class="mitemedit-submit" value="{{$submit}}" />
+<input id="dbtn-submit" type="submit" name="submit" class="mitemedit-submit" value="{{$submit}}" />
</div>
</form>
diff --git a/view/tpl/msg-header.tpl b/view/tpl/msg-header.tpl
index b6cff7c74..85fa51b0a 100755
--- a/view/tpl/msg-header.tpl
+++ b/view/tpl/msg-header.tpl
@@ -49,38 +49,38 @@ else
<script>
$(document).ready(function() {
var uploader = new window.AjaxUpload(
- 'prvmail-upload',
+ 'prvmail-upload-wrapper',
{ action: 'wall_upload/{{$nickname}}',
name: 'userfile',
- onSubmit: function(file,ext) { $('#profile-rotator').spin('tiny'); },
+ onSubmit: function(file,ext) { $('#prvmail-rotator').spin('tiny'); },
onComplete: function(file,response) {
- addeditortext(response);
- $('#profile-rotator').spin(false);
+ addmailtext(response);
+ $('#prvmail-rotator').spin(false);
}
}
);
var file_uploader = new window.AjaxUpload(
- 'prvmail-attach',
+ 'prvmail-attach-wrapper',
{ action: 'wall_attach/{{$nickname}}',
name: 'userfile',
- onSubmit: function(file,ext) { $('#profile-rotator').spin('tiny'); },
+ onSubmit: function(file,ext) { $('#prvmail-rotator').spin('tiny'); },
onComplete: function(file,response) {
- addeditortext(response);
- $('#profile-rotator').spin(false);
+ addmailtext(response);
+ $('#prvmail-rotator').spin(false);
}
}
);
});
- function jotGetLink() {
+ function prvmailJotGetLink() {
reply = prompt("{{$linkurl}}");
if(reply && reply.length) {
- $('#profile-rotator').spin('tiny');
+ $('#prvmail-rotator').spin('tiny');
$.get('parse_url?url=' + reply, function(data) {
- addeditortext(response);
- $('#profile-rotator').spin(false);
+ addmailtext(data);
+ $('#prvmail-rotator').spin(false);
});
}
}
@@ -103,15 +103,15 @@ else
event.target.textContent = reply;
event.preventDefault();
if(reply && reply.length) {
- $('#profile-rotator').spin('tiny');
+ $('#prvmail-rotator').spin('tiny');
$.get('parse_url?url=' + reply, function(data) {
- addeditortext(response);
- $('#profile-rotator').spin(false);
+ addmailtext(data);
+ $('#prvmail-rotator').spin(false);
});
}
}
- function addeditortext(data) {
+ function addmailtext(data) {
if(plaintext == 'none') {
var currentText = $("#prvmail-text").val();
$("#prvmail-text").val(currentText + data);
diff --git a/view/tpl/nav.tpl b/view/tpl/nav.tpl
index 2953f3b41..4241c0a92 100755
--- a/view/tpl/nav.tpl
+++ b/view/tpl/nav.tpl
@@ -16,12 +16,12 @@
{{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>
+ <li role="presentation"><a href="{{$usermenu.0}}" title="{{$usermenu.3}}" role="menuitem" id="{{$usermenu.4}}">{{$usermenu.1}}</a></li>
{{/foreach}}
<li role="presentation" class="divider"></li>
- {{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.settings}}<li role="presentation"><a href="{{$nav.settings.0}}" title="{{$nav.settings.3}}" role="menuitem">{{$nav.settings.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.profiles}}<li role="presentation"><a href="{{$nav.profiles.0}}" title="{{$nav.profiles.3}}" role="menuitem" id="{{$nav.profiles.4}}">{{$nav.profiles.1}}</a></li>{{/if}}
+ {{if $nav.settings}}<li role="presentation"><a href="{{$nav.settings.0}}" title="{{$nav.settings.3}}" role="menuitem" id="{{$nav.settings.4}}">{{$nav.settings.1}}</a></li>{{/if}}
+ {{if $nav.manage}}<li role="presentation"><a href="{{$nav.manage.0}}" title="{{$nav.manage.3}}" role="menuitem" id="{{$nav.manage.4}}">{{$nav.manage.1}}</a></li>{{/if}}
{{if $nav.channels}}
{{foreach $nav.channels as $chan}}
<li role="presentation" class="nav-channel-select"><a href="manage/{{$chan.channel_id}}" title="{{$chan.channel_name}}" role="menuitem">{{$chan.channel_name}}</a></li>
@@ -29,11 +29,11 @@
{{/if}}
{{if $nav.admin}}
<li role="presentation" class="divider"></li>
- <li role="presentation"><a href="{{$nav.admin.0}}" title="{{$nav.admin.3}}" role="menuitem">{{$nav.admin.1}}</a></li>
+ <li role="presentation"><a href="{{$nav.admin.0}}" title="{{$nav.admin.3}}" role="menuitem" id="{{$nav.admin.4}}">{{$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>
+ <li role="presentation"><a href="{{$nav.logout.0}}" title="{{$nav.logout.3}}" role="menuitem" id="{{$nav.logout.4}}">{{$nav.logout.1}}</a></li>
{{/if}}
</ul>
{{else}}
@@ -47,21 +47,28 @@
</div>
<div class="collapse navbar-collapse" id="navbar-collapse-1">
<ul class="nav navbar-nav navbar-left">
+ {{if $nav.register}}<li class="{{$nav.register.2}}"><a href="{{$nav.register.0}}" title="{{$nav.register.3}}" id="{{$nav.register.4}}">{{$nav.register.1}}</a></li>{{/if}}
{{if !$userinfo}}
- {{if $nav.lock}}
- <li>
- <a title="{{$nav.lock.3}}" href="{{$nav.lock.0}}"><i class="{{if $nav.locked}}icon-lock{{else}}icon-unlock{{/if}}"></i></a>
- </li>
- {{/if}}
+ {{if $nav.loginmenu}}
+ <li class="{{$nav.loginmenu.0.2}} hidden-xs">
+ <a data-toggle="dropdown" data-target="#" href="{{$nav.loginmenu.0.0}}" title="{{$nav.loginmenu.0.3}}" id="{{$nav.loginmenu.0.4}}">{{$nav.loginmenu.0.1}} <span class="caret" id="loginmenu-caret"></span></a>
+ <ul class="dropdown-menu" role="menu">
+ {{foreach $nav.loginmenu as $loginmenu}}
+ <li role="presentation"><a class="{{$loginmenu.2}}" href="{{$loginmenu.0}}" title="{{$loginmenu.3}}" role="menuitem" id="{{$loginmenu.4}}">{{$loginmenu.1}}</a></li>
+ {{/foreach}}
+ </ul>
+ </li>
+ {{foreach $nav.loginmenu as $loginmenu}}
+ <li role="presentation"><a class="{{$loginmenu.2}} visible-xs" href="{{$loginmenu.0}}" title="{{$loginmenu.3}}" role="menuitem">{{$loginmenu.1}}</a></li>
+ {{/foreach}}
+ {{/if}}
{{/if}}
-
- {{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.alogout}}<li class="{{$nav}}-alogout.2"><a href="{{$nav.alogout.0}}" title="{{$nav.alogout.3}}" id="{{$nav.alogout.4}}">{{$nav.alogout.1}}</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>
+ <a href="{{$nav.network.0}}" title="{{$nav.network.3}}" id="{{$nav.network.4}}"><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> *}}
@@ -77,7 +84,7 @@
{{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>
+ <a class="{{$nav.home.2}}" href="{{$nav.home.0}}" title="{{$nav.home.3}}" id="{{$nav.home.4}}"><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> *}}
@@ -91,11 +98,10 @@
</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>
+ <a class="{{$nav.messages.2}}" href="{{$nav.messages.0}}" title="{{$nav.messages.3}}" id="{{$nav.messages.4}}"><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>
@@ -111,7 +117,7 @@
{{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>
+ <a class="{{$nav.all_events.2}}" href="{{$nav.all_events.0}}" title="{{$nav.all_events.3}}" id='{{$nav.all_events.4}}'><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>
@@ -127,7 +133,7 @@
{{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>
+ <a class="{{$nav.intros.2}}" href="{{$nav.intros.0}}" title="{{$nav.intros.3}}" id="{{$nav.intros.4}}"><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>
@@ -142,7 +148,7 @@
{{if $nav.notifications}}
<li class="{{$sel.notifications}} hidden-xs">
- <a href="{{$nav.notifications.0}}" title="{{$nav.notifications.1}}"><i class="icon-exclamation"></i></a>
+ <a href="{{$nav.notifications.0}}" title="{{$nav.notifications.1}}" id="{{$nav.notifications.4}}"><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>
@@ -159,28 +165,31 @@
<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();" />
+ <div id="nav-search-spinner"></div><input class="icon-search" id="nav-search-text" type="text" value="" placeholder="&#xf002; {{$help}}" name="search" title="{{$nav.search.3}}" onclick="this.submit();"/>
</form>
</li>
<li class="visible-xs">
<a href="/search" title="{{$nav.search.3}}"><i class="icon-search"></i></a>
</li>
+ {{if $powered_by}}
+ <div id="powered-by">{{$powered_by}}</div>
+ {{/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>
+ <a class="{{$nav.directory.2}}" href="{{$nav.directory.0}}" title="{{$nav.directory.3}}" id="{{$nav.directory.4}}"><i class="icon-sitemap"></i></a>
</li>
{{/if}}
{{if $nav.apps}}
<li class="{{$sel.apps}}">
- <a class="{{$nav.apps.2}}" href="{{$nav.apps.0}}" title="{{$nav.apps.3}}" ><i class="icon-cogs"></i></a>
+ <a class="{{$nav.apps.2}}" href="{{$nav.apps.0}}" title="{{$nav.apps.3}}" id="{{$nav.apps.4}}"><i class="icon-cogs"></i></a>
</li>
{{/if}}
{{if $nav.help}}
<li class="{{$sel.help}}">
- <a class="{{$nav.help.2}}" target="redmatrix-help" href="{{$nav.help.0}}" title="{{$nav.help.3}}" ><i class="icon-question"></i></a>
+ <a class="{{$nav.help.2}}" target="redmatrix-help" href="{{$nav.help.0}}" title="{{$nav.help.3}}" id="{{$nav.help.4}}"><i class="icon-question"></i></a>
</li>
{{/if}}
</ul>
diff --git a/view/tpl/new_channel.tpl b/view/tpl/new_channel.tpl
index 261f965da..241846eb4 100755
--- a/view/tpl/new_channel.tpl
+++ b/view/tpl/new_channel.tpl
@@ -1,11 +1,20 @@
<h2>{{$title}}</h2>
-<form action="new_channel" method="post" id="newchannel-form">
+<form action="new_channel" method="post" id="newchannel-form" class="stylish-select">
<div id="newchannel-desc" class="descriptive-paragraph">{{$desc}}</div>
+ <div id="newchannel-role-help" class="descriptive-paragraph">{{$help_role}}</div>
+
+ <label for="newchannel-role" id="label-newchannel-role" class="newchannel-label" >{{$label_role}}</label>
+ {{$role_select}}
+ <div class="newchannel-role-morehelp"><a href="help/roles" title="{{$what_is_role}}" target="_blank">{{$questionmark}}</a></div>
+ <div id="newchannel-role-end" class="newchannel-field-end"></div>
+
+
<label for="newchannel-name" id="label-newchannel-name" class="newchannel-label" >{{$label_name}}</label>
<input type="text" name="name" id="newchannel-name" class="newchannel-input" value="{{$name}}" />
+ <div id="name-spinner"></div>
<div id="newchannel-name-feedback" class="newchannel-feedback"></div>
<div id="newchannel-name-end" class="newchannel-field-end"></div>
@@ -13,6 +22,7 @@
<label for="newchannel-nickname" id="label-newchannel-nickname" class="newchannel-label" >{{$label_nick}}</label>
<input type="text" name="nickname" id="newchannel-nickname" class="newchannel-input" value="{{$nickname}}" />
+ <div id="nick-spinner"></div>
<div id="newchannel-nickname-feedback" class="newchannel-feedback"></div>
<div id="newchannel-nickname-end" class="newchannel-field-end"></div>
diff --git a/view/tpl/notifications.tpl b/view/tpl/notifications.tpl
index 285efbae0..0b24da7c3 100755
--- a/view/tpl/notifications.tpl
+++ b/view/tpl/notifications.tpl
@@ -1,7 +1,11 @@
+<div class="generic-content-wrapper-styled">
+
<h1>{{$notif_header}}</h1>
+
{{if $notifications_available}}
<a href="#" onclick="markRead('notify'); setTimeout(function() { window.location.href=window.location.href; },1500); return false;">{{$notif_link_mark_seen}}</a>
{{/if}}
<div class="notif-network-wrapper">
{{$notif_content}}
</div>
+</div>
diff --git a/view/tpl/peoplefind.tpl b/view/tpl/peoplefind.tpl
index 55bf1575f..ba71c1e80 100755
--- a/view/tpl/peoplefind.tpl
+++ b/view/tpl/peoplefind.tpl
@@ -1,22 +1,19 @@
<div id="peoplefind-sidebar" class="widget">
<h3>{{$findpeople}}</h3>
- <div class="descriptive-text">{{$desc}}</div>
<form action="directory" method="post" />
- <input class="icon-search" id="side-peoplefind-url" type="text" name="search" size="24" title="{{$hint}}" placeholder="&#xf002;"/>
- <input id="side-peoplefind-submit" class="btn btn-default" type="submit" name="submit" value="{{$findthem}}" />
- <br />
- {{if $advanced_search}}
- <a href="#" onclick="openClose('advanced-people-search-div'); return false;">{{$advanced_search}}</a>
- <div id="advanced-people-search-div" style="display: none;">
- <input class="icon-search" id="side-advanced-peoplefind-url" type="text" name="query" size="24" title="{{$advanced_hint}}" placeholder="&#xf002;"/>
- <input id="side-advanced-peoplefind-submit" class="btn btn-default" type="submit" name="submit" value="{{$find_advanced}}" />
+ <div class="form-group">
+ <div class="input-group">
+ <input class="widget-input" type="text" name="search" title="{{$hint}}{{if $advanced_search}}{{$advanced_hint}}{{/if}}" placeholder="{{$desc}}" />
+ <div class="input-group-btn">
+ <button class="btn btn-default btn-sm" type="submit" name="submit"><i class="icon-search"></i></button>
+ </div>
+ </div>
</div>
- <br />
- {{/if}}
</form>
- {{if $similar}}<a href="match" >{{$similar}}</a><br />{{/if}}
- {{if $loggedin}}<a href="suggest" >{{$suggest}}</a><br />{{/if}}
- <a href="randprof" >{{$random}}</a><br />
- {{if $loggedin}}{{if $inv}}<a href="invite" >{{$inv}}</a>{{/if}}{{/if}}
+ <ul class="nav nav-pills nav-stacked">
+ {{if $similar}}<li><a href="match" >{{$similar}}</a></li>{{/if}}
+ {{if $loggedin}}<li><a href="directory?suggest=1" >{{$suggest}}</a></li>{{/if}}
+ <li><a href="randprof" >{{$random}}</a></li>
+ {{if $loggedin}}{{if $inv}}<li><a href="invite" >{{$inv}}</a></li>{{/if}}{{/if}}
+ </ul>
</div>
-
diff --git a/view/tpl/photo_album.tpl b/view/tpl/photo_album.tpl
index a63bff78c..5506b01f2 100755
--- a/view/tpl/photo_album.tpl
+++ b/view/tpl/photo_album.tpl
@@ -1,7 +1,28 @@
-<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}}" />
- <p class='caption'>{{$desc}}</p>
- </a>
+<div class="section-title-wrapper">
+ <div class="pull-right">
+ <a class="btn btn-default btn-xs" href="{{$order.1}}" title="{{$order.0}}"><i class="icon-sort"></i></a>
+ <div class="btn-group btn-group">
+ {{if $album_edit.1}}
+ <i class="icon-pencil btn btn-default btn-xs" title="{{$album_edit.0}}" onclick="openClose('photo-album-edit-wrapper'); closeMenu('photo-upload-form');"></i>
+ {{/if}}
+ {{if $can_post}}
+ <button class="btn btn-xs btn-success btn-xs" title="{{$usage}}" onclick="openClose('photo-upload-form'); closeMenu('photo-album-edit-wrapper');"><i class="icon-upload"></i>&nbsp;{{$upload.0}}</button>
+ {{/if}}
+ </div>
+ </div>
+
+ <h2>{{$album}}</h2>
+
+ <div class="clear"></div>
</div>
-<div class="photo-album-image-wrapper-end"></div>
+{{$upload_form}}
+{{$album_edit.1}}
+<div id="photo-album-contents" class="generic-content-wrapper">
+ {{foreach $photos as $photo}}
+ {{include file="photo_top.tpl"}}
+ {{/foreach}}
+ <div id="page-end"></div>
+</div>
+<div class="photos-end"></div>
+<script>$(document).ready(function() { loadingPage = false; justifyPhotos(); });</script>
+<div id="page-spinner"></div>
diff --git a/view/tpl/photo_albums.tpl b/view/tpl/photo_albums.tpl
index 7ff4a8cc0..de1105bbc 100755
--- a/view/tpl/photo_albums.tpl
+++ b/view/tpl/photo_albums.tpl
@@ -1,15 +1,13 @@
<div id="side-bar-photos-albums" class="widget">
-<h3><a href="{{$baseurl}}/photos/{{$nick}}" title="{{$title}}" >{{$title}}</a></h3>
-{{if $albums}}
-<ul>
-{{foreach $albums as $al}}
-{{if $al.text}}
-<li><a href="{{$baseurl}}/photos/{{$nick}}/album/{{$al.bin2hex}}">{{$al.text}}</a> ({{$al.total}})</li>
-{{/if}}
-{{/foreach}}
-</ul>
-{{/if}}
-{{if $upload}}
-<div id="photo-albums-upload-link"><a href="{{$baseurl}}/photos/{{$nick}}/upload" title="{{$upload}}">{{$upload}}</a></div>
-{{/if}}
+ <h3>{{$title}}</h3>
+ <ul class="nav nav-pills nav-stacked">
+ <li><a href="{{$baseurl}}/photos/{{$nick}}" title="{{$title}}" >Recent Photos</a></li>
+ {{if $albums}}
+ {{foreach $albums as $al}}
+ {{if $al.text}}
+ <li><a href="{{$baseurl}}/photos/{{$nick}}/album/{{$al.bin2hex}}"><span class="badge pull-right">{{$al.total}}</span>{{$al.text}}</a></li>
+ {{/if}}
+ {{/foreach}}
+ {{/if}}
+ </ul>
</div>
diff --git a/view/tpl/photo_item.tpl b/view/tpl/photo_item.tpl
index e7d25fd55..16f9a76c2 100755
--- a/view/tpl/photo_item.tpl
+++ b/view/tpl/photo_item.tpl
@@ -1,22 +1,27 @@
-<div class="wall-item-outside-wrapper{{$indent}}" id="wall-item-outside-wrapper-{{$id}}" >
- <div class="wall-item-photo-wrapper" id="wall-item-photo-wrapper-{{$id}}" >
- <a href="{{$profile_url}}" title="View {{$name}}'s profile" class="wall-item-photo-link" id="wall-item-photo-link-{{$id}}">
- <img src="{{$thumb}}" class="wall-item-photo" id="wall-item-photo-{{$id}}" style="height: 80px; width: 80px;" alt="{{$name}}" /></a>
- </div>
+<div class="wall-item-outside-wrapper {{$indent}}" id="wall-item-outside-wrapper-{{$id}}" >
+ <div class="wall-item-content-wrapper {{$indent}}" id="wall-item-content-wrapper-{{$id}}" style="clear:both;">
+ <div class="wall-item-info" id="wall-item-info-{{$item.id}}" >
+ <div class="wall-item-photo-wrapper" id="wall-item-photo-wrapper-{{$id}}" >
+ <a href="{{$profile_url}}" title="View {{$name}}'s profile" class="wall-item-photo-link" id="wall-item-photo-link-{{$id}}">
+ <img src="{{$thumb}}" class="wall-item-photo" id="wall-item-photo-{{$id}}" style="height: 80px; width: 80px;" alt="{{$name}}" /></a>
+ </div>
+ </div>
+ <div class="wall-item-wrapper" id="wall-item-wrapper-{{$id}}" >
+ <div class="wall-item-author">
+ <a href="{{$profile_url}}" title="View {{$name}}'s profile" class="wall-item-name-link"><span class="wall-item-name" id="wall-item-name-{{$id}}" >{{$name}}</span></a>
+ </div>
+ <div class="wall-item-ago" id="wall-item-ago-{{$id}}">{{$ago}}</div>
+ </div>
+ <div class="wall-item-content" id="wall-item-content-{{$id}}" >
+ <div class="wall-item-title" id="wall-item-title-{{$id}}">{{$title}}</div>
+ <div class="wall-item-body" id="wall-item-body-{{$id}}" >{{$body}}</div>
+ </div>
+ {{$drop}}
+ <div class="wall-item-wrapper-end"></div>
- <div class="wall-item-wrapper" id="wall-item-wrapper-{{$id}}" >
- <a href="{{$profile_url}}" title="View {{$name}}'s profile" class="wall-item-name-link"><span class="wall-item-name" id="wall-item-name-{{$id}}" >{{$name}}</span></a>
- <div class="wall-item-ago" id="wall-item-ago-{{$id}}">{{$ago}}</div>
- </div>
- <div class="wall-item-content" id="wall-item-content-{{$id}}" >
- <div class="wall-item-title" id="wall-item-title-{{$id}}">{{$title}}</div>
- <div class="wall-item-body" id="wall-item-body-{{$id}}" >{{$body}}</div>
- </div>
- {{$drop}}
- <div class="wall-item-wrapper-end"></div>
- <div class="wall-item-comment-separator"></div>
- {{$comment}}
+ {{$comment}}
-<div class="wall-item-outside-wrapper-end{{$indent}}" ></div>
+ <div class="wall-item-outside-wrapper-end{{$indent}}" ></div>
+ </div>
</div>
diff --git a/view/tpl/photo_top.tpl b/view/tpl/photo_top.tpl
index 944928f85..a86aa7f80 100755
--- a/view/tpl/photo_top.tpl
+++ b/view/tpl/photo_top.tpl
@@ -1,7 +1,4 @@
-<div class="photo-top-image-wrapper lframe {{$photo.twist}}" id="photo-top-image-wrapper-{{$photo.id}}">
- <a href="{{$photo.link}}" class="photo-top-photo-link" id="photo-top-photo-link-{{$photo.id}}" title="{{$photo.title}}">
- <img src="{{$photo.src}}" alt="{{$photo.alt}}" title="{{$photo.title}}" class="photo-top-photo" id="photo-top-photo-{{$photo.id}}" />
- </a>
- <div class="photo-top-album-name"><a href="{{$photo.album.link}}" class="photo-top-album-link" title="{{$photo.album.alt}}" >{{$photo.album.name}}</a></div>
-</div>
+<a href="{{$photo.link}}" id="photo-top-photo-link-{{$photo.id}}" title="{{$photo.title}}">
+ <img src="{{$photo.src}}" alt="{{if $photo.album.name}}{{$photo.album.name}}{{elseif $photo.desc}}{{$photo.desc}}{{elseif $photo.alt}}{{$photo.alt}}{{else}}{{$photo.unknown}}{{/if}}" title="{{$photo.title}}" id="photo-top-photo-{{$photo.id}}" />
+</a>
diff --git a/view/tpl/photo_view.tpl b/view/tpl/photo_view.tpl
index a0ca7e0f9..45a7cd7e5 100755
--- a/view/tpl/photo_view.tpl
+++ b/view/tpl/photo_view.tpl
@@ -1,99 +1,186 @@
<div id="live-photos"></div>
-<h3><a href="{{$album.0}}">{{$album.1}}</a></h3>
-
-<div id="photo-edit-link-wrap">
-{{if $tools}}
-<a id="photo-toprofile-link" href="{{$tools.profile.0}}">{{$tools.profile.1}}</a>
-{{/if}}
-{{if $lock}} | <i class="lockview icon-lock" title="{{$lock}}" onclick="lockview(event,'photo/{{$id}}');"></i> {{/if}}
-</div>
+<div class="generic-content-wrapper">
+
+ <div class="section-title-wrapper">
+ <div class="pull-right">
+
+ {{if $tools}}
+ <a class="btn btn-default btn-xs" title="{{$tools.profile.1}}" href="{{$tools.profile.0}}"><i class="icon-user"></i></a>
+ {{/if}}
+
+ <div class="btn-group btn-group dropdown">
+ {{if $edit}}
+ <i class="icon-pencil btn btn-default btn-xs" title="{{$edit.edit}}" onclick="openClose('photo-edit');"></i>
+ {{/if}}
+ {{if $lock}}
+ <i id="lockview" class="icon-lock btn btn-default btn-xs dropdown-toggle" data-toggle="dropdown" title="{{$lock}}" onclick="lockview(event,{{$id}});" ></i><ul id="panel-{{$id}}" class="lockview-panel dropdown-menu"></ul>
+ {{/if}}
+ </div>
+ <div class="btn-group btn-group">
+ {{if $prevlink}}
+ <a href="{{$prevlink.0}}" class="btn btn-default btn-xs" title="{{$prevlink.1}}"><i class="icon-backward"></i></a>
+ {{/if}}
+ {{if $nextlink}}
+ <a href="{{$nextlink.0}}" class="btn btn-default btn-xs" title="{{$nextlink.1}}"><i class="icon-forward"></i></a>
+ {{/if}}
+ </div>
+ </div>
-{{if $prevlink}}<div id="photo-prev-link"><a href="{{$prevlink.0}}"><i class="icon-backward photo-icons"></i></div>{{/if}}
-<div id="photo-view-wrapper">
-<div id="photo-photo"><a href="{{$photo.href}}" title="{{$photo.title}}" onclick="$.colorbox({href: '{{$photo.href}}'}); return false;"><img style="max-width: 100%;" src="{{$photo.src}}"></a></div>
-<div id="photo-photo-end"></div>
-<div id="photo-caption">{{$desc}}</div>
-{{if $tags}}
-<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}}
+ <h2>{{if $desc}}{{$desc}}{{elseif $filename}}{{$filename}}{{else}}{{$unknown}}{{/if}}</h2>
-{{if $edit}}
-<div id="photo-edit-edit-wrapper" class="btn btn-default fakelink" onclick="openClose('photo-edit-edit'); closeOpen('photo-photo-delete-button')">{{$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">
+ <div class="clear"></div>
- <input type="hidden" name="item_id" value="{{$edit.item_id}}">
+ </div>
+ <div id="photo-edit" class="section-content-tools-wrapper">
+ <form action="photos/{{$edit.nickname}}/{{$edit.resource_id}}" method="post" id="photo_edit_form">
+ <input type="hidden" name="item_id" value="{{$edit.item_id}}" />
+ <div class="form-group">
+ <label id="photo-edit-albumname-label" for="photo-edit-albumname">{{$edit.newalbum_label}}</label>
+ <input id="photo-edit-albumname" class="form-control" type="text" name="albname" value="{{$edit.album}}" placeholder="{{$edit.newalbum_placeholder}}" list="dl-albums" />
+ {{if $edit.albums}}
+ <datalist id="dl-albums">
+ {{foreach $edit.albums as $al}}
+ {{if $al.text}}
+ <option value="{{$al.text}}">
+ {{/if}}
+ {{/foreach}}
+ </datalist>
+ {{/if}}
+ </div>
+ <div class="form-group">
+ <label id="photo-edit-caption-label" for="photo-edit-caption">{{$edit.capt_label}}</label>
+ <input id="photo-edit-caption" class="form-control" type="text" name="desc" value="{{$edit.caption}}" />
+ </div>
+ <div class="form-group">
+ <label id="photo-edit-tags-label" for="photo-edit-newtag">{{$edit.tag_label}}</label>
+ <input name="newtag" id="photo-edit-newtag" class="form-control" title="{{$edit.help_tags}}" type="text" />
+ </div>
+ <div class="form-group">
+ <label class="radio-inline" id="photo-edit-rotate-cw-label" for="photo-edit-rotate-cw"><input id="photo-edit-rotate-cw" type="radio" name="rotate" value="1" />{{$edit.rotatecw}}</label>
+ <label class="radio-inline" id="photo-edit-rotate-ccw-label" for="photo-edit-rotate-ccw"><input id="photo-edit-rotate-ccw" type="radio" name="rotate" value="2" />{{$edit.rotateccw}}</label>
+ </div>
+ {{if $edit.adult_enabled}}
+ <div class="form-group">
+ {{include file="field_checkbox.tpl" field=$edit.adult}}
+ </div>
+ {{/if}}
+
+ {{$edit.aclselect}}
+
+ <div class="form-group pull-left">
+ <button class="btn btn-danger btn-sm" id="photo-edit-delete-button" type="submit" name="delete" value="{{$edit.delete}}" onclick="return confirmDelete();" />{{$edit.delete}}</button>
+ </div>
+ <div class="form-group btn-group pull-right">
+ <button id="dbtn-acl" class="btn btn-default btn-sm" data-toggle="modal" data-target="#aclModal" onclick="return false;">
+ <i id="jot-perms-icon" class="icon-{{$edit.lockstate}}"></i>
+ </button>
+ <button id="dbtn-submit" class="btn btn-primary btn-sm" type="submit" name="submit" >{{$edit.submit}}</button>
+ </div>
+ </form>
+ <div id="photo-edit-end" class="clear"></div>
+ </div>
- <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}}" list="dl-albums">
-{{if $edit.albums}}
- <datalist id="dl-albums">
- {{foreach $edit.albums as $al}}
- {{if $al.text}}
- <option value="{{$al.text}}">
- {{/if}}
- {{/foreach}}
- </datalist>
-{{/if}}
- <div id="photo-edit-albumname-end"></div>
+ <div id="photo-view-wrapper">
- <label id="photo-edit-caption-label" for="photo-edit-caption">{{$edit.capt_label}}</label>
- <input id="photo-edit-caption" type="text" size="84" name="desc" value="{{$edit.caption}}">
+ <div id="photo-photo"><a href="{{$photo.href}}" title="{{$photo.title}}" onclick="$.colorbox({href: '{{$photo.href}}'}); return false;"><img style="width: 100%;" src="{{$photo.src}}"></a></div>
+ <div id="photo-photo-end" class="clear"></div>
- <div id="photo-edit-caption-end"></div>
+ {{if $tags}}
+ <div class="photo-item-tools-left" id="in-this-photo">
+ <span id="in-this-photo-text">{{$tag_hdr}}</span>
+ {{foreach $tags as $t}}
+ {{$t.0}}{{if $edit}}<span id="tag-remove">&nbsp;<a href="{{$t.1}}" onclick="return confirmDelete();"><i class="icon-remove"></i></a>&nbsp;</span>{{/if}}
+ {{/foreach}}
+ </div>
+ {{/if}}
- <label id="photo-edit-tags-label" for="photo-edit-newtag" >{{$edit.tag_label}}</label>
- <input name="newtag" id="photo-edit-newtag" size="84" title="{{$edit.help_tags}}" type="text">
+ <div class="photo-item-tools">
+ {{if $like_count || $dislike_count}}
+ <div class="photo-item-tools-left pull-left">
+ <div class="{{if $like_count && $dislike_count}}btn-group{{/if}}">
+ {{if $like_count}}
+ <div class="btn-group">
+ <button type="button" class="btn btn-default btn-sm wall-item-like dropdown-toggle" data-toggle="dropdown" id="wall-item-like-{{$id}}">{{$like_count}} {{$like_button_label}}</button>
+ {{if $like_list_part}}
+ <ul class="dropdown-menu" role="menu" aria-labelledby="wall-item-like-{{$id}}">{{foreach $like_list_part as $liker}}<li role="presentation">{{$liker}}</li>{{/foreach}}</ul>
+ {{else}}
+ <ul class="dropdown-menu" role="menu" aria-labelledby="wall-item-like-{{$id}}">{{foreach $like_list as $liker}}<li role="presentation">{{$liker}}</li>{{/foreach}}</ul>
+ {{/if}}
+ </div>
+ {{/if}}
+ {{if $dislike_count}}
+ <div class="btn-group">
+ <button type="button" class="btn btn-default btn-sm wall-item-dislike dropdown-toggle" data-toggle="dropdown" id="wall-item-dislike-{{$id}}">{{$dislike_count}} {{$dislike_button_label}}</button>
+ {{if $dislike_list_part}}
+ <ul class="dropdown-menu" role="menu" aria-labelledby="wall-item-dislike-{{$id}}">{{foreach $dislike_list_part as $disliker}}<li role="presentation">{{$disliker}}</li>{{/foreach}}</ul>
+ {{else}}
+ <ul class="dropdown-menu" role="menu" aria-labelledby="wall-item-dislike-{{$id}}">{{foreach $dislike_list as $disliker}}<li role="presentation">{{$disliker}}</li>{{/foreach}}</ul>
+ {{/if}}
+ </div>
+ {{/if}}
+ </div>
+ {{if $like_list_part}}
+ <div class="modal" id="likeModal-{{$id}}">
+ <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">{{$like_modal_title}}</h4>
+ </div>
+ <div class="modal-body">
+ <ul>{{foreach $like_list as $liker}}<li role="presentation">{{$liker}}</li>{{/foreach}}</ul>
+ </div>
+ <div class="modal-footer clear">
+ <button type="button" class="btn btn-default" data-dismiss="modal">{{$modal_dismiss}}</button>
+ </div>
+ </div><!-- /.modal-content -->
+ </div><!-- /.modal-dialog -->
+ </div><!-- /.modal -->
+ {{/if}}
+ {{if $dislike_list_part}}
+ <div class="modal" id="dislikeModal-{{$id}}">
+ <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">{{$dislike_modal_title}}</h4>
+ </div>
+ <div class="modal-body">
+ <ul>{{foreach $dislike_list as $disliker}}<li role="presentation">{{$disliker}}</li>{{/foreach}}</ul>
+ </div>
+ <div class="modal-footer clear">
+ <button type="button" class="btn btn-default" data-dismiss="modal">{{$modal_dismiss}}</button>
+ </div>
+ </div><!-- /.modal-content -->
+ </div><!-- /.modal-dialog -->
+ </div><!-- /.modal -->
+ {{/if}}
+ </div>
+ </div>
+ {{/if}}
- <div id="photo-edit-tags-end"></div>
- <div id="photo-edit-rotate-wrapper">
- <div id="photo-edit-rotate-label">
- {{$edit.rotatecw}}<br>
- {{$edit.rotateccw}}
+ {{if $likebuttons}}
+ <div class="photo-item-tools-right btn-group pull-right">
+ <button type="button" class="btn btn-default btn-sm" onclick="dolike({{$id}},'like'); return false">
+ <i class="icon-thumbs-up-alt" title="{{$likethis}}"></i>
+ </button>
+ <button type="button" class="btn btn-default btn-sm" onclick="dolike({{$id}},'dislike'); return false">
+ <i class="icon-thumbs-down-alt" title="{{$nolike}}"></i>
+ </button>
</div>
- <input type="radio" name="rotate" value="1"><br>
- <input type="radio" name="rotate" value="2">
+ <div id="like-rotator-{{$id}}" class="photo-like-rotator pull-right"></div>
+ {{/if}}
+ <div class="clear"></div>
</div>
- <div id="photo-edit-rotate-end"></div>
-
- <div id="settings-default-perms" class="settings-default-perms">
- <span id="jot-perms-icon" class="{{$edit.lockstate}}"></span>
- <button class="btn btn-default btn-xs" data-toggle="modal" data-target="#aclModal" onclick="return false;">{{$edit.permissions}}</button>
- {{$edit.aclselect}}
- <div id="settings-default-perms-menu-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();">
-
- <div id="photo-edit-end"></div>
-</form>
-</div>
-
-<form action="photos/{{$edit.nickname}}/{{$edit.resource_id}}" method="post">
- <input id="photo-photo-delete-button" type="submit" name="delete" value="{{$edit.delete}}" onclick="return confirmDelete();">
-</form>
-{{/if}}
-
-{{if $likebuttons}}
-<div id="photo-like-div">
- {{$likebuttons}}
- {{$like}}
- {{$dislike}}
</div>
-{{/if}}
{{$comments}}
+{{if $commentbox}}
+<div class="wall-item-comment-wrapper{{if $comments}} wall-item-comment-wrapper-wc{{/if}}" >
+ {{$commentbox}}
</div>
-
-{{if $nextlink}}<div id="photo-next-link"><a href="{{$nextlink.0}}"><i class="icon-forward photo-icons"></i></a></div>{{/if}}
+{{/if}}
<div class="clear"></div>
diff --git a/view/tpl/photos_recent.tpl b/view/tpl/photos_recent.tpl
index 43a22a017..7727abcea 100755
--- a/view/tpl/photos_recent.tpl
+++ b/view/tpl/photos_recent.tpl
@@ -1,11 +1,17 @@
-<h3>{{$title}}</h3>
-{{if $can_post}}
-<a id="photo-top-upload-link" href="{{$upload.1}}">{{$upload.0}}</a>
-{{/if}}
-
-<div class="photos">
-{{foreach $photos as $photo}}
- {{include file="photo_top.tpl"}}
-{{/foreach}}
+<div class="section-title-wrapper">
+ {{if $can_post}}
+ <button class="btn btn-xs btn-success pull-right" title="{{$usage}}" onclick="openClose('photo-upload-form');"><i class="icon-upload"></i>&nbsp;{{$upload.0}}</button>
+ {{/if}}
+ <h2>{{$title}}</h2>
+ <div class="clear"></div>
+</div>
+{{$upload_form}}
+<div id="photo-album-contents" class="generic-content-wrapper">
+ {{foreach $photos as $photo}}
+ {{include file="photo_top.tpl"}}
+ {{/foreach}}
+ <div id="page-end"></div>
</div>
<div class="photos-end"></div>
+<script>$(document).ready(function() { loadingPage = false; justifyPhotos(); });</script>
+<div id="page-spinner"></div>
diff --git a/view/tpl/photos_upload.tpl b/view/tpl/photos_upload.tpl
index 62591c648..10fc82648 100755
--- a/view/tpl/photos_upload.tpl
+++ b/view/tpl/photos_upload.tpl
@@ -1,41 +1,53 @@
-<h3>{{$pagename}}</h3>
-
-<div id="photos-usage-message" class="usage-message">{{$usage}}</div>
-
-<form action="photos/{{$nickname}}" enctype="multipart/form-data" method="post" name="photos-upload-form" id="photos-upload-form" >
- <input type="hidden" id="photos-upload-source" name="source" value="photos" />
- <div id="photos-upload-new-wrapper" >
- <div id="photos-upload-newalbum-div">
- <label id="photos-upload-newalbum-text" for="photos-upload-newalbum" >{{$newalbum}}</label>
- </div>
- <input id="photos-upload-newalbum" type="text" name="newalbum" />
+<div id="photo-upload-form" class="generic-content-wrapper">
+ <div class="section-content-tools-wrapper">
+ <form action="photos/{{$nickname}}" enctype="multipart/form-data" method="post" name="photos-upload-form" id="photos-upload-form">
+ <input type="hidden" id="photos-upload-source" name="source" value="photos" />
+
+ <div class="form-group">
+ <label for="photos-upload-album">{{$newalbum_label}}</label>
+ <input type="text" class="form-control" id="photos-upload-album" name="newalbum" placeholder="{{$newalbum_placeholder}}" value="{{$selname}}" list="dl-photo-upload">
+ <datalist id="dl-photo-upload">
+ {{foreach $albums as $al}}
+ {{if $al.text}}
+ <option value="{{$al.text}}">
+ {{/if}}
+ {{/foreach}}
+ </datalist>
+ </div>
+
+ {{$aclselect}}
+
+ {{if $default}}
+ <div class="pull-left">
+ <input id="photos-upload-choose" type="file" name="userfile" />
+ </div>
+ <div class="btn-group pull-right">
+ <button id="dbtn-acl" class="btn btn-default btn-sm" data-toggle="modal" data-target="#aclModal" onclick="return false;">
+ <i id="jot-perms-icon" class="icon-{{$lockstate}}"></i>
+ </button>
+ <button id="dbtn-submit" class="btn btn-primary btn-sm" type="submit" name="submit" >{{$submit}}</button>
+ </div>
+ {{/if}}
+
+ <div class="clear"></div>
+
+ <div class="checkbox">
+ <label class="checkbox-inline" for="photos-upload-noshare" >
+ <input class="checkbox-inline" id="photos-upload-noshare" type="checkbox" name="not_visible" value="1" />{{$nosharetext}}
+ </label>
+ </div>
+
+ {{if $uploader}}
+ <div id="photos-upload-perms" class="pull-right">
+ <button class="btn btn-default btn-sm" data-toggle="modal" data-target="#aclModal" onclick="return false;">
+ <i id="jot-perms-icon" class="icon-{{$lockstate}}"></i>
+ </button>
+ <div class="pull-right">
+ {{$uploader}}
+ </div>
+ </div>
+ {{/if}}
+ </form>
</div>
- <div id="photos-upload-new-end"></div>
- <div id="photos-upload-exist-wrapper">
- <div id="photos-upload-existing-album-text">{{$existalbumtext}}</div>
- {{$albumselect}}
- </div>
- <div id="photos-upload-exist-end"></div>
-
- <div id="photos-upload-noshare-div" class="photos-upload-noshare-div" >
- <input id="photos-upload-noshare" type="checkbox" name="not_visible" value="1" />
- <label id="photos-upload-noshare-text" for="photos-upload-noshare" >{{$nosharetext}}</label>
- </div>
-
-
- <div id="photos-upload-perms" class="photos-upload-perms" >
- <span id="jot-perms-icon" class="icon-{{$lockstate}}" ></span>
- <button class="btn btn-default btn-xs" data-toggle="modal" data-target="#aclModal" onclick="return false;">{{$permissions}}</button>
- </div>
- {{$aclselect}}
- <div id="photos-upload-perms-end"></div>
-
- <div id="photos-upload-spacer"></div>
-
- {{$uploader}}
-
- {{$default}}
-
- <div class="photos-upload-end" ></div>
-</form>
-
+ <div id="photos-upload-end" class="clear"></div>
+</div>
diff --git a/view/tpl/photosajax.tpl b/view/tpl/photosajax.tpl
new file mode 100755
index 000000000..632aab2b3
--- /dev/null
+++ b/view/tpl/photosajax.tpl
@@ -0,0 +1,4 @@
+{{foreach $photos as $photo}}
+ {{include file="photo_top.tpl"}}
+{{/foreach}}
+<script>justifyPhotosAjax()</script>
diff --git a/view/tpl/posted_date_widget.tpl b/view/tpl/posted_date_widget.tpl
index 0867ab392..6298ca0aa 100755
--- a/view/tpl/posted_date_widget.tpl
+++ b/view/tpl/posted_date_widget.tpl
@@ -1,16 +1,46 @@
+<script>
+
+function toggle_posted_date_button() {
+ if($('#posted-date-dropdown').is(':visible')) {
+ $('#posted-date-icon').removeClass('icon-caret-up');
+ $('#posted-date-icon').addClass('icon-caret-down');
+ $('#posted-date-dropdown').hide();
+ }
+ else {
+ $('#posted-date-icon').addClass('icon-caret-up');
+ $('#posted-date-icon').removeClass('icon-caret-down');
+ $('#posted-date-dropdown').show();
+ }
+}
+</script>
+
+
<div id="datebrowse-sidebar" class="widget">
<h3>{{$title}}</h3>
-<script>function dateSubmit(dateurl) { window.location.href = dateurl; } </script>
-<ul id="posted-date-selector">
-{{foreach $dates as $y => $arr}}
-<li id="posted-date-selector-year-{{$y}}" class="fakelink" onclick="openClose('posted-date-selector-{{$y}}');">{{$y}}</li>
-<div id="posted-date-selector-{{$y}}" style="display: none;">
-<ul class="posted-date-selector-months">
-{{foreach $arr as $d}}
-<li class="posted-date-li"><a href="#" onclick="dateSubmit('{{$url}}?f=&dend={{$d.1}}&dbegin={{$d.2}}'); return false;">{{$d.0}}</a></li>
-{{/foreach}}
-</ul>
-</div>
-{{/foreach}}
-</ul>
+ <script>function dateSubmit(dateurl) { window.location.href = dateurl; } </script>
+ <ul id="posted-date-selector" class="nav nav-pills nav-stacked">
+ {{foreach $dates as $y => $arr}}
+ {{if $y == $cutoff_year}}
+ </ul>
+ <div id="posted-date-dropdown" style="display: none;">
+ <ul id="posted-date-selector-drop" class="nav nav-pills nav-stacked">
+ {{/if}}
+ <li id="posted-date-selector-year-{{$y}}">
+ <a href="#" onclick="openClose('posted-date-selector-{{$y}}'); return false;">{{$y}}</a>
+ </li>
+ <div id="posted-date-selector-{{$y}}" style="display: none;">
+ <ul class="posted-date-selector-months nav nav-pills nav-stacked">
+ {{foreach $arr as $d}}
+ <li>
+ <a href="#" onclick="dateSubmit('{{$url}}?f=&dend={{$d.1}}{{if $showend}}&dbegin={{$d.2}}{{/if}}'); return false;">{{$d.0}}</a>
+ </li>
+ {{/foreach}}
+ </ul>
+ </div>
+ {{/foreach}}
+ {{if $cutoff}}
+ </div>
+ <button class="btn btn-default btn-sm" onclick="toggle_posted_date_button(); return false;"><i id="posted-date-icon" class="icon-caret-down"></i></button>
+ {{/if}}
+ </ul>
</div>
diff --git a/view/tpl/profile_advanced.tpl b/view/tpl/profile_advanced.tpl
index cbb078710..1f99bf1ad 100755
--- a/view/tpl/profile_advanced.tpl
+++ b/view/tpl/profile_advanced.tpl
@@ -1,233 +1,229 @@
<div id="profile-content-wrapper" class="generic-content-wrapper">
-<h2>{{$title}}</h2>
-
-{{if $profile.canlike || $profile.like_count}}
-<div id="profile-like-wrapper">
-{{if $profile.canlike}}
- <button type="button" class="btn btn-default btn-sm" onclick="doprofilelike('profile/' + '{{$profile.profile_guid}}','like'); return false;" title="{{$profile.likethis}}" >
- <i class="icon-thumbs-up-alt" title="{{$profile.likethis}}"></i>
- </button>
-{{/if}}
-
-
-{{if $profile.like_count}}
-<div class="btn-group">
-<button type="button" class="btn btn-default btn-sm dropdown-toggle" data-toggle="dropdown" id="profile-like">{{$profile.like_count}} {{$profile.like_button_label}}</button>
-{{if $profile.likers}}
-<ul class="dropdown-menu" role="menu" aria-labelledby="profile-like">{{foreach $profile.likers as $liker}}<li role="presentation"><a href="{{$liker.url}}">{{$liker.name}}</a></li>{{/foreach}}</ul>
-{{/if}}
-</div>
-{{/if}}
-</div>
-{{/if}}
-
-<dl id="aprofile-fullname" class="aprofile">
- <dt>{{$profile.fullname.0}}</dt>
- <dd>{{$profile.fullname.1}}</dd>
-</dl>
-
-{{if $profile.gender}}
-<dl id="aprofile-gender" class="aprofile">
- <dt>{{$profile.gender.0}}</dt>
- <dd>{{$profile.gender.1}}</dd>
-</dl>
-{{/if}}
-
-{{if $profile.birthday}}
-<dl id="aprofile-birthday" class="aprofile">
- <dt>{{$profile.birthday.0}}</dt>
- <dd>{{$profile.birthday.1}}</dd>
-</dl>
-{{/if}}
-
-{{if $profile.age}}
-<dl id="aprofile-age" class="aprofile">
- <dt>{{$profile.age.0}}</dt>
- <dd>{{$profile.age.1}}</dd>
-</dl>
-{{/if}}
-
-{{if $profile.marital}}
-<dl id="aprofile-marital" class="aprofile">
- <dt><span class="heart">&hearts;</span> {{$profile.marital.0}}</dt>
- <dd>{{$profile.marital.1}}{{if $profile.marital.with}} ({{$profile.marital.with}}){{/if}}{{if $profile.howlong}} {{$profile.howlong}}{{/if}}</dd>
-</dl>
-{{/if}}
-
-{{if $profile.sexual}}
-<dl id="aprofile-sexual" class="aprofile">
- <dt>{{$profile.sexual.0}}</dt>
- <dd>{{$profile.sexual.1}}</dd>
-</dl>
-{{/if}}
-
-{{if $profile.keywords}}
-<dl id="aprofile-tags" class="aprofile">
- <dt>{{$profile.keywords.0}}</dt>
- <dd>{{$profile.keywords.1}}</dd>
-</dl>
-{{/if}}
-
-{{if $profile.homepage}}
-<dl id="aprofile-homepage" class="aprofile">
- <dt>{{$profile.homepage.0}}</dt>
- <dd>{{$profile.homepage.1}}</dd>
-</dl>
-{{/if}}
-
-{{if $profile.hometown}}
-<dl id="aprofile-hometown" class="aprofile">
- <dt>{{$profile.hometown.0}}</dt>
- <dd>{{$profile.hometown.1}}</dd>
-</dl>
-{{/if}}
-
-{{if $profile.politic}}
-<dl id="aprofile-politic" class="aprofile">
- <dt>{{$profile.politic.0}}</dt>
- <dd>{{$profile.politic.1}}</dd>
-</dl>
-{{/if}}
-
-{{if $profile.religion}}
-<dl id="aprofile-religion" class="aprofile">
- <dt>{{$profile.religion.0}}</dt>
- <dd>{{$profile.religion.1}}</dd>
-</dl>
-{{/if}}
-
-{{if $profile.about}}
-<dl id="aprofile-about" class="aprofile">
- <dt>{{$profile.about.0}}</dt>
- <dd>{{$profile.about.1}}</dd>
-</dl>
-{{/if}}
-
-{{if $profile.interest}}
-<dl id="aprofile-interest" class="aprofile">
- <dt>{{$profile.interest.0}}</dt>
- <dd>{{$profile.interest.1}}</dd>
-</dl>
-{{/if}}
-
-{{if $profile.likes}}
-<dl id="aprofile-likes" class="aprofile">
- <dt>{{$profile.likes.0}}</dt>
- <dd>{{$profile.likes.1}}</dd>
-</dl>
-{{/if}}
-
-{{if $profile.dislikes}}
-<dl id="aprofile-dislikes" class="aprofile">
- <dt>{{$profile.dislikes.0}}</dt>
- <dd>{{$profile.dislikes.1}}</dd>
-</dl>
-{{/if}}
-
-{{if $profile.contact}}
-<dl id="aprofile-contact" class="aprofile">
- <dt>{{$profile.contact.0}}</dt>
- <dd>{{$profile.contact.1}}</dd>
-</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">
- <dt>{{$profile.music.0}}</dt>
- <dd>{{$profile.music.1}}</dd>
-</dl>
-{{/if}}
-
-
-{{if $profile.book}}
-<dl id="aprofile-book" class="aprofile">
- <dt>{{$profile.book.0}}</dt>
- <dd>{{$profile.book.1}}</dd>
-</dl>
-{{/if}}
-
-
-{{if $profile.tv}}
-<dl id="aprofile-tv" class="aprofile">
- <dt>{{$profile.tv.0}}</dt>
- <dd>{{$profile.tv.1}}</dd>
-</dl>
-{{/if}}
-
-
-{{if $profile.film}}
-<dl id="aprofile-film" class="aprofile">
- <dt>{{$profile.film.0}}</dt>
- <dd>{{$profile.film.1}}</dd>
-</dl>
-{{/if}}
-
-
-{{if $profile.romance}}
-<dl id="aprofile-romance" class="aprofile">
- <dt>{{$profile.romance.0}}</dt>
- <dd>{{$profile.romance.1}}</dd>
-</dl>
-{{/if}}
-
-
-{{if $profile.work}}
-<dl id="aprofile-work" class="aprofile">
- <dt>{{$profile.work.0}}</dt>
- <dd>{{$profile.work.1}}</dd>
-</dl>
-{{/if}}
-
-{{if $profile.education}}
-<dl id="aprofile-education" class="aprofile">
- <dt>{{$profile.education.0}}</dt>
- <dd>{{$profile.education.1}}</dd>
-</dl>
-{{/if}}
-
-{{foreach $profile.extra_fields as $f}}
-{{if $profile.$f}}
-<dl id="aprofile-{{$f}}" class="aprofile">
- <dt>{{$profile.$f.0}}</dt>
- <dd>{{$profile.$f.1}}</dd>
-</dl>
-{{/if}}
-{{/foreach}}
-
-
-{{if $things}}
-{{foreach $things as $key => $items}}
-<b>{{$profile.fullname.1}} {{$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>
-{{if $profile.canlike}}<br />
-<button type="button" class="btn btn-default btn-sm" onclick="doprofilelike('thing/' + '{{$item.term_hash}}','like'); return false;" title="{{$likethis}}" >
-<i class="icon-thumbs-up-alt" title="{{$likethis}}"></i>
-</button>
-{{/if}}
-{{if $item.like_count}}
-<div class="btn-group">
-<button type="button" class="btn btn-default btn-sm dropdown-toggle" data-toggle="dropdown" id="thing-like-{{$item.term_hash}}">{{$item.like_count}} {{$item.like_label}}</button>
-{{if $item.likes}}
-<ul class="dropdown-menu" role="menu" aria-labelledby="thing-like-{{$item.term_hash}}">{{foreach $item.likes as $liker}}<li role="presentation"><a href="{{$liker.xchan_url}}">{{$liker.xchan_name}}</a></li>{{/foreach}}</ul>
-{{/if}}
-</div>
-{{/if}}
-</li>
-{{/foreach}}
-</ul>
-<div class="clear"></div>
-{{/foreach}}
-{{/if}}
-
+ <div class="section-title-wrapper">
+ <div class="pull-right dropdown">
+ {{if $profile.like_count}}
+ <button type="button" class="btn btn-default btn-xs dropdown-toggle" data-toggle="dropdown" id="profile-like">{{$profile.like_count}} {{$profile.like_button_label}}</button>
+ {{if $profile.likers}}
+ <ul class="dropdown-menu" role="menu" aria-labelledby="profile-like">{{foreach $profile.likers as $liker}}<li role="presentation"><a href="{{$liker.url}}">{{$liker.name}}</a></li>{{/foreach}}</ul>
+ {{/if}}
+ {{/if}}
+ {{if $profile.canlike}}
+ <button type="button" class="btn btn-success btn-xs" onclick="doprofilelike('profile/' + '{{$profile.profile_guid}}','like'); return false;" title="{{$profile.likethis}}" >
+ <i class="icon-thumbs-up-alt" title="{{$profile.likethis}}"></i>
+ </button>
+ {{/if}}
+ </div>
+ <h2>{{$title}}</h2>
+ <div class="clear"></div>
+ </div>
+ <div class="section-content-wrapper">
+ <dl id="aprofile-fullname" class="aprofile">
+ <dt>{{$profile.fullname.0}}</dt>
+ <dd>{{$profile.fullname.1}}</dd>
+ </dl>
+
+ {{if $profile.gender}}
+ <dl id="aprofile-gender" class="aprofile">
+ <dt>{{$profile.gender.0}}</dt>
+ <dd>{{$profile.gender.1}}</dd>
+ </dl>
+ {{/if}}
+
+ {{if $profile.birthday}}
+ <dl id="aprofile-birthday" class="aprofile">
+ <dt>{{$profile.birthday.0}}</dt>
+ <dd>{{$profile.birthday.1}}</dd>
+ </dl>
+ {{/if}}
+
+ {{if $profile.age}}
+ <dl id="aprofile-age" class="aprofile">
+ <dt>{{$profile.age.0}}</dt>
+ <dd>{{$profile.age.1}}</dd>
+ </dl>
+ {{/if}}
+
+ {{if $profile.marital}}
+ <dl id="aprofile-marital" class="aprofile">
+ <dt><span class="heart">&hearts;</span> {{$profile.marital.0}}</dt>
+ <dd>{{$profile.marital.1}}{{if $profile.marital.with}} ({{$profile.marital.with}}){{/if}}{{if $profile.howlong}} {{$profile.howlong}}{{/if}}</dd>
+ </dl>
+ {{/if}}
+
+ {{if $profile.sexual}}
+ <dl id="aprofile-sexual" class="aprofile">
+ <dt>{{$profile.sexual.0}}</dt>
+ <dd>{{$profile.sexual.1}}</dd>
+ </dl>
+ {{/if}}
+
+ {{if $profile.keywords}}
+ <dl id="aprofile-tags" class="aprofile">
+ <dt>{{$profile.keywords.0}}</dt>
+ <dd>{{$profile.keywords.1}}</dd>
+ </dl>
+ {{/if}}
+
+ {{if $profile.homepage}}
+ <dl id="aprofile-homepage" class="aprofile">
+ <dt>{{$profile.homepage.0}}</dt>
+ <dd>{{$profile.homepage.1}}</dd>
+ </dl>
+ {{/if}}
+
+ {{if $profile.hometown}}
+ <dl id="aprofile-hometown" class="aprofile">
+ <dt>{{$profile.hometown.0}}</dt>
+ <dd>{{$profile.hometown.1}}</dd>
+ </dl>
+ {{/if}}
+
+ {{if $profile.politic}}
+ <dl id="aprofile-politic" class="aprofile">
+ <dt>{{$profile.politic.0}}</dt>
+ <dd>{{$profile.politic.1}}</dd>
+ </dl>
+ {{/if}}
+
+ {{if $profile.religion}}
+ <dl id="aprofile-religion" class="aprofile">
+ <dt>{{$profile.religion.0}}</dt>
+ <dd>{{$profile.religion.1}}</dd>
+ </dl>
+ {{/if}}
+
+ {{if $profile.about}}
+ <dl id="aprofile-about" class="aprofile">
+ <dt>{{$profile.about.0}}</dt>
+ <dd>{{$profile.about.1}}</dd>
+ </dl>
+ {{/if}}
+
+ {{if $profile.interest}}
+ <dl id="aprofile-interest" class="aprofile">
+ <dt>{{$profile.interest.0}}</dt>
+ <dd>{{$profile.interest.1}}</dd>
+ </dl>
+ {{/if}}
+
+ {{if $profile.likes}}
+ <dl id="aprofile-likes" class="aprofile">
+ <dt>{{$profile.likes.0}}</dt>
+ <dd>{{$profile.likes.1}}</dd>
+ </dl>
+ {{/if}}
+
+ {{if $profile.dislikes}}
+ <dl id="aprofile-dislikes" class="aprofile">
+ <dt>{{$profile.dislikes.0}}</dt>
+ <dd>{{$profile.dislikes.1}}</dd>
+ </dl>
+ {{/if}}
+
+ {{if $profile.contact}}
+ <dl id="aprofile-contact" class="aprofile">
+ <dt>{{$profile.contact.0}}</dt>
+ <dd>{{$profile.contact.1}}</dd>
+ </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">
+ <dt>{{$profile.music.0}}</dt>
+ <dd>{{$profile.music.1}}</dd>
+ </dl>
+ {{/if}}
+
+
+ {{if $profile.book}}
+ <dl id="aprofile-book" class="aprofile">
+ <dt>{{$profile.book.0}}</dt>
+ <dd>{{$profile.book.1}}</dd>
+ </dl>
+ {{/if}}
+
+
+ {{if $profile.tv}}
+ <dl id="aprofile-tv" class="aprofile">
+ <dt>{{$profile.tv.0}}</dt>
+ <dd>{{$profile.tv.1}}</dd>
+ </dl>
+ {{/if}}
+
+
+ {{if $profile.film}}
+ <dl id="aprofile-film" class="aprofile">
+ <dt>{{$profile.film.0}}</dt>
+ <dd>{{$profile.film.1}}</dd>
+ </dl>
+ {{/if}}
+
+
+ {{if $profile.romance}}
+ <dl id="aprofile-romance" class="aprofile">
+ <dt>{{$profile.romance.0}}</dt>
+ <dd>{{$profile.romance.1}}</dd>
+ </dl>
+ {{/if}}
+
+
+ {{if $profile.work}}
+ <dl id="aprofile-work" class="aprofile">
+ <dt>{{$profile.work.0}}</dt>
+ <dd>{{$profile.work.1}}</dd>
+ </dl>
+ {{/if}}
+
+ {{if $profile.education}}
+ <dl id="aprofile-education" class="aprofile">
+ <dt>{{$profile.education.0}}</dt>
+ <dd>{{$profile.education.1}}</dd>
+ </dl>
+ {{/if}}
+
+ {{foreach $profile.extra_fields as $f}}
+ {{if $profile.$f}}
+ <dl id="aprofile-{{$f}}" class="aprofile">
+ <dt>{{$profile.$f.0}}</dt>
+ <dd>{{$profile.$f.1}}</dd>
+ </dl>
+ {{/if}}
+ {{/foreach}}
+
+
+ {{if $things}}
+ {{foreach $things as $key => $items}}
+ <b>{{$profile.fullname.1}} {{$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>
+ {{if $profile.canlike}}<br />
+ <button type="button" class="btn btn-default btn-sm" onclick="doprofilelike('thing/' + '{{$item.term_hash}}','like'); return false;" title="{{$likethis}}" >
+ <i class="icon-thumbs-up-alt" title="{{$likethis}}"></i>
+ </button>
+ {{/if}}
+ {{if $item.like_count}}
+ <div class="btn-group">
+ <button type="button" class="btn btn-default btn-sm dropdown-toggle" data-toggle="dropdown" id="thing-like-{{$item.term_hash}}">{{$item.like_count}} {{$item.like_label}}</button>
+ {{if $item.likes}}
+ <ul class="dropdown-menu" role="menu" aria-labelledby="thing-like-{{$item.term_hash}}">{{foreach $item.likes as $liker}}<li role="presentation"><a href="{{$liker.xchan_url}}">{{$liker.xchan_name}}</a></li>{{/foreach}}</ul>
+ {{/if}}
+ </div>
+ {{/if}}
+ </li>
+ {{/foreach}}
+ </ul>
+ <div class="clear"></div>
+ {{/foreach}}
+ {{/if}}
+ </div>
</div>
diff --git a/view/tpl/profile_edit.tpl b/view/tpl/profile_edit.tpl
index b453b1cfa..535aa19dd 100755
--- a/view/tpl/profile_edit.tpl
+++ b/view/tpl/profile_edit.tpl
@@ -1,4 +1,4 @@
-{{if $is_default}}
+<div class="generic-content-wrapper-styled">{{if $is_default}}
<p id="profile-edit-default-desc">{{$default}}</p>
{{/if}}
@@ -363,4 +363,5 @@
</form>
</div>
+</div>
diff --git a/view/tpl/profile_entry.tpl b/view/tpl/profile_entry.tpl
index cc0f3477c..ab81a7fbc 100755
--- a/view/tpl/profile_entry.tpl
+++ b/view/tpl/profile_entry.tpl
@@ -1,3 +1,4 @@
+<div class="generic-content-wrapper-styled">
<div class="profile-listing" >
<div class="profile-listing-photo-wrapper" >
<a href="profiles/{{$id}}" class="profile-listing-edit-link"><img class="profile-listing-photo" id="profile-listing-photo-{{$id}}" src="{{$photo}}" alt="{{$alt}}" /></a>
@@ -7,4 +8,4 @@
<div class="profile-listing-visible">{{$visible}}</div>
</div>
<div class="profile-listing-end"></div>
-
+</div>
diff --git a/view/tpl/profile_hide_friends.tpl b/view/tpl/profile_hide_friends.tpl
new file mode 100644
index 000000000..1d748cd4e
--- /dev/null
+++ b/view/tpl/profile_hide_friends.tpl
@@ -0,0 +1,17 @@
+<p id="hide-friends-text">
+{{$desc}}
+</p>
+ <div id="hide-friends-yes-wrapper">
+ <label id="hide-friends-yes-label" for="hide-friends-yes">{{$yes_str}}</label>
+ <input type="radio" name="hide-friends" id="hide-friends-yes" {{$yes_selected}} value="1" />
+
+ <div id="hide-friends-break" ></div>
+ </div>
+
+ <div id="hide-friends-no-wrapper">
+ <label id="hide-friends-no-label" for="hide-friends-no">{{$no_str}}</label>
+ <input type="radio" name="hide-friends" id="hide-friends-no" {{$no_selected}} value="0" />
+
+ <div id="hide-friends-end"></div>
+ </div>
+
diff --git a/view/tpl/profile_listing_header.tpl b/view/tpl/profile_listing_header.tpl
index c4bc367ba..09d00f982 100755
--- a/view/tpl/profile_listing_header.tpl
+++ b/view/tpl/profile_listing_header.tpl
@@ -1,3 +1,4 @@
+<div class="generic-content-wrapper-styled">
<h1>{{$header}}</h1>
<p id="profile-listing-desc" class="btn btn-default" >
<a href="profile_photo" >{{$chg_photo}}</a>
@@ -8,4 +9,3 @@
<p id="profile-listing-new-link-wrapper" class="btn btn-default" >
<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 3c83cd685..6904c2fec 100755
--- a/view/tpl/profile_vcard.tpl
+++ b/view/tpl/profile_vcard.tpl
@@ -41,7 +41,7 @@
{{if $marital}}<dl class="marital"><dt class="marital-label"><span class="heart">&hearts;</span>{{$marital}}</dt><dd class="marital-text">{{$profile.marital}}</dd></dl>{{/if}}
- {{if $homepage}}<dl class="homepage"><dt class="homepage-label">{{$homepage}}</dt><dd class="homepage-url"><a href="{{$profile.homepage}}" >{{$profile.homepage}}</a></dd></dl>{{/if}}
+ {{if $homepage}}<dl class="homepage"><dt class="homepage-label">{{$homepage}}</dt><dd class="homepage-url">{{$profile.homepage}}</dd></dl>{{/if}}
{{if $diaspora}}
{{include file="diaspora_vcard.tpl"}}
diff --git a/view/tpl/prv_message.tpl b/view/tpl/prv_message.tpl
index 118bd846f..c6f393aa4 100755
--- a/view/tpl/prv_message.tpl
+++ b/view/tpl/prv_message.tpl
@@ -26,29 +26,29 @@
<div id="prvmail-submit-wrapper" >
<input type="submit" id="prvmail-submit" name="submit" value="{{$submit}}" tabindex="13" />
- <div id="prvmail-upload-wrapper" >
+ <button id="prvmail-upload-wrapper" class="btn btn-default btn-sm" >
<i id="prvmail-upload" class="icon-camera jot-icons" title="{{$upload}}"></i>
- </div>
+ </button>
- <div id="prvmail-attach-wrapper" >
+ <button id="prvmail-attach-wrapper" class="btn btn-default btn-sm" >
<i id="prvmail-attach" class="icon-paper-clip jot-icons" title="{{$attach}}"></i>
- </div>
+ </button>
- <div id="prvmail-link-wrapper" >
- <i id="prvmail-link" class="icon-link jot-icons" title="{{$insert}}" onclick="jotGetLink(); return false;"></i>
- </div>
+ <button id="prvmail-link-wrapper" class="btn btn-default btn-sm" onclick="prvmailJotGetLink(); return false;" >
+ <i id="prvmail-link" class="icon-link jot-icons" title="{{$insert}}" ></i>
+ </button>
{{if $feature_expire}}
- <div id="prvmail-expire-wrapper" >
- <i id="prvmail-expires" class="icon-eraser jot-icons" title="{{$expires}}" onclick="prvmailGetExpiry();return false;"></i>
- </div>
+ <button id="prvmail-expire-wrapper" class="btn btn-default btn-sm" onclick="prvmailGetExpiry();return false;" >
+ <i id="prvmail-expires" class="icon-eraser jot-icons" title="{{$expires}}" ></i>
+ </button>
{{/if}}
{{if $feature_encrypt}}
- <div id="prvmail-encrypt-wrapper" >
- <i id="prvmail-encrypt" class="icon-key jot-icons" title="{{$encrypt}}" onclick="red_encrypt('{{$cipher}}','#prvmail-text',$('#prvmail-text').val());return false;"></i>
- </div>
+ <button id="prvmail-encrypt-wrapper" class="btn btn-default btn-sm" onclick="red_encrypt('{{$cipher}}','#prvmail-text',$('#prvmail-text').val());return false;">
+ <i id="prvmail-encrypt" class="icon-key jot-icons" title="{{$encrypt}}" ></i>
+ </button>
{{/if}}
<div id="prvmail-rotator-wrapper" >
- <img id="prvmail-rotator" src="images/rotator.gif" alt="{{$wait}}" title="{{$wait}}" style="display: none;" />
+ <div id="prvmail-rotator"></div>
</div>
</div>
<div id="prvmail-end"></div>
diff --git a/view/tpl/safesearch.tpl b/view/tpl/safesearch.tpl
index e0b2ab538..58ce22741 100644
--- a/view/tpl/safesearch.tpl
+++ b/view/tpl/safesearch.tpl
@@ -1,4 +1,6 @@
<div id="directory_safemode" class="widget">
<h3>{{$safemode}}</h3>
-<a href="toggle_safesearch">{{$toggle}}</a>
+<ul class="nav nav-pills nav-stacked">
+ <li><a href="toggle_safesearch">{{$toggle}}</a></li>
+</ul>
</div>
diff --git a/view/tpl/saved_searches.tpl b/view/tpl/saved_searches.tpl
index 1a9f51af9..73987f192 100644
--- a/view/tpl/saved_searches.tpl
+++ b/view/tpl/saved_searches.tpl
@@ -1,12 +1,12 @@
-<div class="widget" id="saved-search-list">
+<div class="widget saved-search-widget">
<h3 id="search">{{$title}}</h3>
{{$searchbox}}
- <ul id="saved-search-ul">
+ <ul id="saved-search-list" class="nav nav-pills nav-stacked">
{{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 saved-search-icon" ></i></a>
- <a id="saved-search-term-{{$search.id}}" class="savedsearchterm{{if $search.selected}} search-selected{{/if}}" href="{{$search.srchlink}}">{{$search.displayterm}}</a>
+ <li id="search-term-{{$search.id}}">
+ <a class="pull-right group-edit-icon" 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" ></i></a>
+ <a id="saved-search-term-{{$search.id}}"{{if $search.selected}} class="search-selected"{{/if}} href="{{$search.srchlink}}">{{$search.displayterm}}</a>
</li>
{{/foreach}}
</ul>
diff --git a/view/tpl/saved_searches_aside.tpl b/view/tpl/saved_searches_aside.tpl
index 0258a7632..e0983f0dd 100755
--- a/view/tpl/saved_searches_aside.tpl
+++ b/view/tpl/saved_searches_aside.tpl
@@ -2,10 +2,10 @@
<h3 id="search">{{$title}}</h3>
{{$searchbox}}
- <ul id="saved-search-ul">
+ <ul id="saved-search-ul" class="nav nav-pills nav-stacked" >
{{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="network/?f=&amp;remove=1&amp;search={{$search.encodedterm}}"><i id="dropicon-saved-search-term-{{$search.id}}" class="icon-remove drop-icons iconspacer savedsearchdrop saved-search-icon" ></i></a>
+ <a title="{{$search.delete}}" class="pull-right" onclick="return confirmDelete();" id="drop-saved-search-term-{{$search.id}}" href="network/?f=&amp;remove=1&amp;search={{$search.encodedterm}}"><i id="dropicon-saved-search-term-{{$search.id}}" class="icon-remove drop-icons iconspacer savedsearchdrop saved-search-icon" ></i></a>
<a id="saved-search-term-{{$search.id}}" class="savedsearchterm{{if $search.selected}} search-selected{{/if}}" href="network/?f=&amp;search={{$search.encodedterm}}">{{$search.displayterm}}</a>
</li>
{{/foreach}}
diff --git a/view/tpl/search_item.tpl b/view/tpl/search_item.tpl
index 6719f2e75..014cf4192 100755
--- a/view/tpl/search_item.tpl
+++ b/view/tpl/search_item.tpl
@@ -20,7 +20,7 @@
<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}}&nbsp;{{$item.via}}&nbsp;<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}}
</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}}{{if $item.location}}<span class="wall-item-location" id="wall-item-location-{{$item.id}}">{{$item.location}},&nbsp;</span>{{/if}}<span class="autotime" title="{{$item.isotime}}">{{$item.localtime}}{{if $item.editedtime}}&nbsp;{{$item.editedtime}}{{/if}}{{if $item.expiretime}}&nbsp;{{$item.expiretime}}{{/if}}</span>{{if $item.editedtime}}&nbsp;<i class="icon-pencil"></i>{{/if}}&nbsp;{{if $item.app}}<span class="item.app">{{$item.str_app}}</span>{{/if}}
+ {{if $item.verified}}<i class="icon-ok item-verified" title="{{$item.verified}}"></i>&nbsp;{{elseif $item.forged}}<i class="icon-remove item-forged" title="{{$item.forged}}"></i>&nbsp;{{/if}}{{if $item.location}}<span class="wall-item-location" id="wall-item-location-{{$item.id}}">{{$item.location}},&nbsp;</span>{{/if}}<span class="autotime" title="{{$item.isotime}}">{{$item.localtime}}{{if $item.editedtime}}&nbsp;{{$item.editedtime}}{{/if}}{{if $item.expiretime}}&nbsp;{{$item.expiretime}}{{/if}}</span>{{if $item.editedtime}}&nbsp;<i class="icon-pencil"></i>{{/if}}&nbsp;{{if $item.app}}<span class="item.app">{{$item.str_app}}</span>{{/if}}
</div>
<div class="wall-item-content" id="wall-item-content-{{$item.id}}">
<div class="wall-item-title-end"></div>
diff --git a/view/tpl/searchbox.tpl b/view/tpl/searchbox.tpl
new file mode 100644
index 000000000..f4301f0f5
--- /dev/null
+++ b/view/tpl/searchbox.tpl
@@ -0,0 +1,12 @@
+<form action="{{$action_url}}" method="get" >
+ <input type="hidden" name="f" value="" />
+ <div id="{{$id}}" class="input-group">
+ <input class="widget-input" type="text" name="search" id="search-text" value="{{$s}}" onclick="this.submit();" />
+ <div class="input-group-btn">
+ <button type="submit" name="submit" class="btn btn-default btn-sm" id="search-submit" value="{{$search_label}}"><i class="icon-search"></i></button>
+ {{if $savedsearch}}
+ <button type="submit" name="searchsave" class="btn btn-default btn-sm" id="search-save" value="{{$save_label}}"><i class="icon-save"></i></button>
+ {{/if}}
+ </div>
+ </div>
+</form>
diff --git a/view/tpl/settings.tpl b/view/tpl/settings.tpl
index 443e63696..7fa52677b 100755
--- a/view/tpl/settings.tpl
+++ b/view/tpl/settings.tpl
@@ -1,4 +1,4 @@
-<div class="generic-content-wrapper">
+<div class="generic-content-wrapper-styled">
<h1>{{$ptitle}}</h1>
{{$nickname_block}}
@@ -22,47 +22,44 @@
<h3 class="settings-heading">{{$h_prv}}</h3>
-{{include file="field_checkbox.tpl" field=$hide_presence}}
-
-
-<h3 id="settings-privacy-macros">{{$lbl_pmacro}}</h3>
-<ul id="settings-privacy-macros">
-<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-default" data-toggle="collapse" data-target="#settings-permissions-wrapper">{{$lbl_p2macro}}</button>
+<div class="field custom">
+<label for="privacy-role-select">{{$role_lbl}}</label>
+{{$role_select}}
+</div>
+<div id="advanced-perm" style="display:{{if $permissions_set}}none{{else}}block{{/if}};">
+{{include file="field_checkbox.tpl" field=$hide_presence}}
+<button type="button" class="btn btn-default" 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}}
{{foreach $permiss_arr as $permit}}
- {{if $expert}}
- {{include file="field_select.tpl" field=$permit}}
- {{else}}
- {{include file="field_select_disabled.tpl" field=$permit}}
- {{/if}}
+ {{include file="field_select.tpl" field=$permit}}
{{/foreach}}
-
-{{if $expert}}
<div class="settings-submit-wrapper" >
<input type="submit" name="submit" class="settings-submit" value="{{$submit}}" />
</div>
-{{/if}}
+</div>
+<div id="settings-default-perms" class="settings-default-perms" >
+ <button class="btn btn-default" data-toggle="modal" data-target="#aclModal" onclick="return false;">{{$permissions}}</button>
+ {{$aclselect}}
+ <div id="settings-default-perms-menu-end"></div>
</div>
-<div class="settings-common-perms">
+<br/>
+<div id="settings-default-perms-end"></div>
+{{$group_select}}
{{$profile_in_dir}}
+</div>
+
+<div class="settings-common-perms">
+
+
+
{{$suggestme}}
{{include file="field_yesno.tpl" field=$blocktags}}
@@ -72,15 +69,6 @@
</div>
-<div id="settings-default-perms" class="settings-default-perms" >
- <button class="btn btn-default btn-xs" data-toggle="modal" data-target="#aclModal" onclick="return false;">{{$permissions}}</button>
- {{$aclselect}}
- <div id="settings-default-perms-menu-end"></div>
-</div>
-<br/>
-<div id="settings-default-perms-end"></div>
-
-{{$group_select}}
<div class="settings-submit-wrapper" >
@@ -112,6 +100,27 @@
{{include file="field_intcheckbox.tpl" field=$notify8}}
</div>
+<div id="settings-vnotify-desc">{{$lbl_vnot}}</div>
+
+<div class="group">
+{{include file="field_intcheckbox.tpl" field=$vnotify1}}
+{{include file="field_intcheckbox.tpl" field=$vnotify2}}
+{{include file="field_intcheckbox.tpl" field=$vnotify3}}
+{{include file="field_intcheckbox.tpl" field=$vnotify4}}
+{{include file="field_intcheckbox.tpl" field=$vnotify5}}
+{{include file="field_intcheckbox.tpl" field=$vnotify6}}
+{{include file="field_intcheckbox.tpl" field=$vnotify10}}
+{{include file="field_intcheckbox.tpl" field=$vnotify7}}
+{{include file="field_intcheckbox.tpl" field=$vnotify8}}
+{{include file="field_intcheckbox.tpl" field=$vnotify9}}
+
+{{*include file="field_intcheckbox.tpl" field=$vnotify11*}}
+</div>
+
+{{include file="field_input.tpl" field=$evdays}}
+
+
+
</div>
<div class="settings-submit-wrapper" >
@@ -122,6 +131,8 @@
{{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">
diff --git a/view/tpl/settings_account.tpl b/view/tpl/settings_account.tpl
index 1e28d8b84..36bb494d8 100755
--- a/view/tpl/settings_account.tpl
+++ b/view/tpl/settings_account.tpl
@@ -1,4 +1,4 @@
-<div class="generic-content-wrapper">
+<div class="generic-content-wrapper-styled">
<h1>{{$title}}</h1>
diff --git a/view/tpl/settings_addons.tpl b/view/tpl/settings_addons.tpl
index 3e447cd0a..f0d5195bf 100755
--- a/view/tpl/settings_addons.tpl
+++ b/view/tpl/settings_addons.tpl
@@ -1,4 +1,4 @@
-<div class="generic-content-wrapper">
+<div class="generic-content-wrapper-styled">
<h1>{{$title}}</h1>
diff --git a/view/tpl/settings_connectors.tpl b/view/tpl/settings_connectors.tpl
index a8bde4c1e..8bea9ca63 100755
--- a/view/tpl/settings_connectors.tpl
+++ b/view/tpl/settings_connectors.tpl
@@ -1,3 +1,4 @@
+<div class="generic-content-wrapper-styled">
<h1>{{$title}}</h1>
<form action="settings/connectors" method="post" autocomplete="off">
@@ -6,4 +7,4 @@
{{$settings_connectors}}
</form>
-
+</div>
diff --git a/view/tpl/settings_display.tpl b/view/tpl/settings_display.tpl
index 6eda6a6ec..8bf4dc0cc 100755
--- a/view/tpl/settings_display.tpl
+++ b/view/tpl/settings_display.tpl
@@ -1,4 +1,4 @@
-<div class="generic-content-wrapper">
+<div class="generic-content-wrapper-styled">
<h1>{{$ptitle}}</h1>
<form action="settings/display" id="settings-form" method="post" autocomplete="off" >
@@ -11,8 +11,12 @@
{{/if}}
{{include file="field_input.tpl" field=$ajaxint}}
{{include file="field_input.tpl" field=$itemspage}}
+{{include file="field_input.tpl" field=$channel_divmore_height}}
+{{include file="field_input.tpl" field=$network_divmore_height}}
{{include file="field_checkbox.tpl" field=$nosmile}}
-
+{{include file="field_checkbox.tpl" field=$title_tosource}}
+{{include file="field_checkbox.tpl" field=$channel_list_mode}}
+{{include file="field_checkbox.tpl" field=$network_list_mode}}
<div class="settings-submit-wrapper" >
<input type="submit" name="submit" class="settings-submit" value="{{$submit}}" />
diff --git a/view/tpl/settings_features.tpl b/view/tpl/settings_features.tpl
index a03817f82..3291162fa 100755
--- a/view/tpl/settings_features.tpl
+++ b/view/tpl/settings_features.tpl
@@ -1,4 +1,4 @@
-<div class="generic-content-wrapper">
+<div class="generic-content-wrapper-styled">
<h1>{{$title}}</h1>
diff --git a/view/tpl/settings_oauth.tpl b/view/tpl/settings_oauth.tpl
index 9be0035ff..f7b4a0b1a 100755
--- a/view/tpl/settings_oauth.tpl
+++ b/view/tpl/settings_oauth.tpl
@@ -1,4 +1,4 @@
-<div class="generic-content-wrapper">
+<div class="generic-content-wrapper-styled">
<h1>{{$title}}</h1>
diff --git a/view/tpl/siteinfo.tpl b/view/tpl/siteinfo.tpl
index d956a7228..a6105227e 100755
--- a/view/tpl/siteinfo.tpl
+++ b/view/tpl/siteinfo.tpl
@@ -4,6 +4,9 @@
{{if $version}}
<p>{{$version}}{{if $commit}}+{{$commit}}{{/if}}</p>
{{/if}}
+{{if $tag}}
+<p>Tag: {{$tag}}</p>
+{{/if}}
<p>{{$web_location}}</p>
<p>{{$visit}}</p>
<p>{{$bug_text}} <a href="{{$bug_link_url}}">{{$bug_link_text}}</a></p>
diff --git a/view/tpl/smarty3/README b/view/tpl/smarty3/README
deleted file mode 100644
index 78ff8d9a1..000000000
--- a/view/tpl/smarty3/README
+++ /dev/null
@@ -1,4 +0,0 @@
-view/tpl/smarty3
-
-This directory must exist and be writeable by the webserver in order to store compiled template files, which are created dynamically. Please see the installation instructions.
-
diff --git a/view/tpl/suggest_widget.tpl b/view/tpl/suggest_widget.tpl
index eba8b496e..7b9afa668 100644
--- a/view/tpl/suggest_widget.tpl
+++ b/view/tpl/suggest_widget.tpl
@@ -1,4 +1,4 @@
-<div class="widget">
+<div class="widget suggestions-widget">
<h3>{{$title}}</h3>
{{if $entries}}
{{foreach $entries as $child}}
@@ -7,4 +7,4 @@
{{/if}}
<div class="clear"></div>
<div class="suggest-widget-more"><a href="suggest">{{$more}}</a></div>
-</div> \ No newline at end of file
+</div>
diff --git a/view/tpl/uexport.tpl b/view/tpl/uexport.tpl
new file mode 100644
index 000000000..5de995ba0
--- /dev/null
+++ b/view/tpl/uexport.tpl
@@ -0,0 +1,9 @@
+<div class="generic-content-wrapper">
+<h1>{{$title}}</h1>
+<b><a href="uexport/basic">{{$basictitle}}</a></b></p>
+<p>{{$basic}}</p>
+
+<p><b><a href="uexport/complete">{{$fulltitle}}</a></b></p>
+<p>{{$full}}</p>
+
+</div>
diff --git a/view/tpl/viewcontact_template.tpl b/view/tpl/viewcontact_template.tpl
index 18fed6bb4..cde24525c 100755
--- a/view/tpl/viewcontact_template.tpl
+++ b/view/tpl/viewcontact_template.tpl
@@ -1,3 +1,4 @@
+<div class="generic-content-wrapper generic-content-wrapper-styled">
<h3>{{$title}}</h3>
{{foreach $contacts as $contact}}
@@ -5,5 +6,5 @@
{{/foreach}}
<div id="view-contact-end"></div>
-
{{$paginate}}
+</div>
diff --git a/view/tpl/webpagelist.tpl b/view/tpl/webpagelist.tpl
index 4ae153423..8335ebd62 100644
--- a/view/tpl/webpagelist.tpl
+++ b/view/tpl/webpagelist.tpl
@@ -1,6 +1,7 @@
+{{$listtitle}}
{{if $pages}}
- <div id="pagelist-content-wrapper" class="generic-content-wrapper">
+ <div id="pagelist-content-wrapper" class="generic-content-wrapper-styled">
<table class="webpage-list-table">
<tr><td>{{$actions_txt}}</td><td>{{$pagelink_txt}}</td><td>{{$title_txt}}</td><td>{{$created_txt}}</td><td>{{$edited_txt}}</td></tr>
{{foreach $pages as $key => $items}}
@@ -9,7 +10,7 @@
<td>
{{if $edit}}<a href="{{$baseurl}}/{{$item.url}}" title="{{$edit}}"><i class="icon-pencil design-icons design-edit-icon btn btn-default"></i></a> {{/if}}
{{if $view}}<a href="page/{{$channel}}/{{$item.pagetitle}}" title="{{$view}}"><i class="icon-external-link design-icons design-view-icon btn btn-default"></i></a> {{/if}}
- {{if $preview}}<a href="page/{{$channel}}/{{$item.pagetitle}}?iframe=true&width=80%&height=80%" title="{{$preview}}" class="webpage-preview" ><i class="icon-eye-open design-icons design-preview-icon btn btn-default"></i></a> {{/if}}
+ {{if $preview}}<a href="page/{{$channel}}/{{$item.pagetitle}}" title="{{$preview}}" class="webpage-preview" ><i class="icon-eye-open design-icons design-preview-icon btn btn-default"></i></a> {{/if}}
</td>
<td>
{{if $view}}<a href="page/{{$channel}}/{{$item.pagetitle}}" title="{{$view}}">{{$item.pagetitle}}</a>